latex-xcolor-2.11/0000755000175000017500000000000010532615750013432 5ustar mohuramohuralatex-xcolor-2.11/README0000644000175000017500000000345310554446444014325 0ustar mohuramohuraPackage `xcolor' by Dr. Uwe Kern (xcolor at ukern dot de) v2.11 (2007/01/21) `xcolor' provides easy driver-independent access to several kinds of colors, tints, shades, tones, and mixes of arbitrary colors by means of color expressions like \color{red!50!green!20!blue}. It allows to select a document-wide target color model and offers tools for automatic color schemes, conversion between nine color models, alternating table row colors, color blending and masking, color separation, and color wheel calculations. Installation instructions ========================= Extract all package files: `latex xcolor.ins' Put the generated files to their respective locations within the TeX installation: *.sty -> /tex/latex/xcolor/ *.def -> /tex/latex/xcolor/ *.pro -> /dvips/xcolor/ Create the documentation: `latex xcolor.dtx' `latex xcolor.dtx' `makeindex -s gind.ist xcolor.idx' `latex xcolor.dtx' `latex xcolor.dtx' Run the test files (N=1,2,...): `latex xcolorN.tex' `latex xcolorN.tex' Notes ===== - `xcolor1.tex' should run with both LaTeX and pdfLaTeX, it yields a 50-page document with several systematic color conversion examples - `xcolor2.tex' is a 3-page `pstricks' example document that won't run with pdfLaTeX - `xcolor3.tex' is a 2-page example for demonstrating several display and logging facilities - `xcolor4.tex' is a 1-page driver test file; uncomment the relevant code line in the header and run it with the appropriate program, e.g., `latex xcolor4' or any other processor; apply any desired post-processing like dvips, dvipdfm, etc. - If the file `xcolor.ins' is missing, run `latex xcolor.dtx' once and quit the LaTeX compiler as soon as the first error message appears. History ======= See file `ChangeLog'. latex-xcolor-2.11/xcolor.dtx0000644000175000017500000125221210554446444015474 0ustar mohuramohura% \iffalse meta-comment %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2007 by Dr. Uwe Kern %% ---------------------------------------------------------------- %% %<*package> %% Please send error reports and suggestions for %% improvements to the above email address. %% %% This package contains code copied from %% %% color.dtx [1999/02/16 v1.0i Standard LaTeX Color (DPC)] %% Copyright (C) 1994--1999 David Carlisle %% %% which is part of the Standard LaTeX `Graphics Bundle'. %% % %<*extract|driver|test1|test2|test3|test4> \def\XCfileversion{v2.11}% \def\XCfiledate{2007/01/21}% % % % This file may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.2 % 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.2 or later is part of all distributions of LaTeX % version 1999/12/01 or later. % % \fi % % \CheckSum{4864} % % \DoNotIndex{\def,\gdef,\edef,\xdef,\long,\let} % \DoNotIndex{\ifnum,\ifdim,\iftrue,\iffalse,\ifx,\ifcase,\else,\or,\fi} % \DoNotIndex{\bgroup,\egroup,\begingroup,\endgroup,\begin,\end} % \DoNotIndex{\relax,\endinput} % \DoNotIndex{\csname,\endcsname,\string,\the,\noexpand,\expandafter} % \DoNotIndex{\advance,\count,\dimen} % \DoNotIndex{\m@ne,\z@,\@ne,\tw@,\p@,\@@tmp} % % \CharacterTable % {Upper-case \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 % Lower-case \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 % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % % \iffalse %<*batchfile> \IfFileExists{xcolor.ins}{\let\uknext=\relax}{\let\uknext=\stop} \begin{filecontents*}{xcolor.ins} %% Package `xcolor' by Dr. Uwe Kern %% %% Extract all package files: %% `latex xcolor.ins' %% %% Put the generated files to their respective locations %% within the TeX installation: %% *.sty -> /tex/latex/xcolor/ %% *.def -> /tex/latex/xcolor/ %% *.pro -> /dvips/xcolor/ %% %% Create the documentation: %% `latex xcolor.dtx' %% `latex xcolor.dtx' %% `makeindex -s gind.ist xcolor.idx' %% `latex xcolor.dtx' %% `latex xcolor.dtx' %% %% Run the test files (N=1,2,...): %% `latex xcolorN.tex' %% `latex xcolorN.tex' %% \def\batchfile{xcolor.ins} \input docstrip.tex \askforoverwritefalse \generate{\file{xcolor.lox}{\from{xcolor.dtx}{extract}}} \batchinput{xcolor.lox} \endbatchfile \end{filecontents*} % % %<*driver> \listfiles \ProvidesFile{xcolor.dtx}[\XCfiledate\space\XCfileversion\space `xcolor' source and documentation (UK)] \documentclass{ltxdoc} \usepackage[table,showerrors,dvipsnames,hyperref]{xcolor}[2005/06/06] \usepackage{chngpage,varioref,tabularx,amsmath,amsthm} \usepackage [\GinDriver,hyperindex=false,bookmarks,bookmarksopen,bookmarksopenlevel=1,% pdftitle={xcolor \XCfileversion{} (\XCfiledate)},pdfauthor={Dr. Uwe Kern},% pdfsubject={Color extensions for LaTeX and pdfLaTeX},% pdfkeywords={xcolor,color,colour,model,tint,tone,shade,harmony,spot,latex,pdftex,dvips,% conversion,blend,mix,mask,separation,rgb,cmy,cmyk,hsb,gray,html,wave,thsb,wheel}]{hyperref} \OnlyDescription \EnableCrossrefs \CodelineIndex \makeatletter \def\Meaning#1{\texttt{\expandafter\expandafter\expandafter\strip@prefix\expandafter\meaning\csname #1\endcsname}} \makeatother \pagestyle{myheadings} \markright{\hskip-2.5cm xcolor \XCfileversion\space(\XCfiledate)} \begin{document} \DocInput{xcolor.dtx} \let\Section\section\def\section*#1{\Section*{#1}\addcontentsline{toc}{section}{#1}} \begin{adjustwidth}{-2.5cm}{} \def\markboth#1#2{}\PrintIndex \end{adjustwidth} \end{document} % % %<*extract> \def\ukfile#1#2#3#4% {\def\ukhead {\ifnum#1>2 \perCent!^^J\fi \defaultpreamble^^J\MetaPrefix^^J% \ifcase#1 \string\ProvidesPackage{#2}^^J\or \string\ProvidesFile{#2}^^J\or \string\ProvidesFile{#2.def}^^J\or \MetaPrefix\space #2.pro (PostScript/dvips header file)^^J\MetaPrefix\space \fi \space[\XCfiledate\space\XCfileversion\space#4\space(UK)]} \usepreamble\ukhead \file{#2.\ifcase#1sty\or tex\or def\or pro\fi}{\from{xcolor.dtx}{#3}}} \generate{ \ukfile0{xcolor}{package}{LaTeX color extensions} \ukfile2{svgnam}{svgnames}{Predefined colors according to SVG 1.1} \ukfile2{x11nam}{x11names}{Predefined colors according to Unix/X11} \ukfile1{xcolor1}{test1}{Color conversion test} \ukfile1{xcolor2}{test2}{Pstricks color test} \ukfile1{xcolor3}{test3}{Color logging test} \ukfile1{xcolor4}{test4}{Color driver test} \def\PStail{\MetaPrefix\space End of file `\outFileName'.} \usepostamble\PStail \ukfile3{xcolor}{dvips}{LaTeX color extensions} } % % \fi % % % % \iffalse %------------------------------------------------------------------------------- % \fi % % % \makeatletter % % \def\testclr#1#{\@testclr{#1}} % \def\@testclr#1#2{{\fboxsep\z@\fbox{\colorbox#1{#2}{\phantom{XX}}}}} % \def\Testclr#1#{\@Testclr{#1}} % \def\@Testclr#1#2#3{\testclr#1{#2}~\rlap{\Color[-]{#3}}\\} % \def\TestClr#1#{\@TestClr{#1}} % \def\@TestClr#1#2#3{\testclr#1{#2}~\rlap{\Color[+]{#3}}\\} % \newif\if@Meta % \DeclareRobustCommand*\Meta{\@ifstar{\@Metatrue\@Meta}{\@Metafalse\@Meta}} % \newcommand*\@Meta[2][]{\meta{#2}\@ifxempty{#1}{}{\ensuremath{\mskip-1mu\rule[-.4ex]{0pt}{1ex}_{#1}}}\if@Meta\index{arguments\levelchar\meta{#2}\string|usage}\fi} % \def\DescribeArg#1{\leavevmode\@bsphack\marginpar{\raggedleft\Meta*{#1}}\@esphack\ignorespaces} % \def\DescribeFunc#1{\leavevmode\@bsphack\marginpar{\raggedleft\Function{#1}\strut}\@esphack\ignorespaces} % % \makeatother % % \def\Index#1{#1\index{#1\string|usage}} % \def\Package#1{\textsf{#1}\index{packages\levelchar\textsf{#1}\string|usage}} % \def\Program#1{\textsf{\itshape#1}\index{programs\levelchar\textsf{\itshape#1}\string|usage}} % \def\Model#1{\textsf{\bfseries#1}\index{color models\levelchar\textsf{\bfseries#1}\string|usage}} % \def\nModel#1{`#1'\index{color models\levelchar`#1'\string|usage}} % \def\pModel#1{\textbf{\itshape #1}} % \def\People#1#2{#1 #2\index{people\levelchar#2, #1\string|usage}} % \newcommand*\Color[2][+]{\textsl{#2}\ifx#1+\index{color names\levelchar\textsl{#2}\string|usage}\fi} % \def\Option#1{\texttt{#1}\index{package options\levelchar\texttt{#1}\string|usage}} % \def\oOption#1{\texttt{#1}\index{package options (obsolete)\levelchar\texttt{#1}\string|usage}} % \def\Key#1{\textit{#1}\index{keys\levelchar\textit{#1}\string|usage}} % \def\File#1{\texttt{#1}\index{files\levelchar\texttt{#1}\string|usage}} % \def\Function#1{\textit{#1}\index{color functions\levelchar\textit{#1}\string|usage}} % \def\Op#1#2{#1\nolimits_{\,\Model{#2}}} % \def\med{\mathop{\textrm{med}}} % \def\mix{\mathop{\textrm{mix}}} % \def\rd{\mathop{\textrm{round}}} % \def\tint{\mathop{\textrm{tint}}} % \def\shade{\mathop{\textrm{shade}}} % \def\tone{\mathop{\textrm{tone}}} % \def\LC{\Package{color}} % \def\LCP{\Package{color} package} % \def\XC{\Package{xcolor}} % \def\XCP{\Package{xcolor} package} % \def\XCW{\texttt{\href{http://www.ukern.de/tex/xcolor.html}{www.ukern.de/tex/xcolor.html}}} % \def\URL#1{\texttt{\url{#1}}} % \def\CTAN#1#2{\texttt{\href{http://www.ctan.org/tex-archive/#1}{CTAN/#1#2}}} % \newtheorem{lemma}{Lemma} % \def\RtoI#1{\Gamma_{\!#1}} % \def\ItoR#1{\Delta_{#1}} % \def\bbbN{\textrm{I\kern-.333ex N}} % \def\bbbR{\textrm{I\kern-.333ex R}} % \def\Circ{\textsuperscript{$\circ$}} % % \newdimen\XCdim % % \parindent0pt % \extrarowheight1pt % \def\textfraction{0.01} % \def\topfraction{0.99} % \def\bottomfraction{0.99} % \def\floatpagefraction{0.70} % \setlength\abovecaptionskip{12pt} % \setlength\belowcaptionskip{10pt} % \colorlet{tableheadcolor}{gray!25} % \colorlet{tablerowcolor}{gray!12.5} % % % % \title{Extending \LaTeX's color facilities: the \XCP} % \author{\href{mailto:xcolor@ukern.de}{\fboxrule0pt\fboxsep2pt\fbox{Dr. Uwe Kern}}} % \date{\XCfileversion{} (\XCfiledate) % \thanks{This package can be downloaded from \CTAN{macros/latex/contrib/xcolor/}{}. % There is also an \textsf{xcolor} homepage: \XCW. % Please send error reports and suggestions for improvements to the author: % \texttt{\href{mailto:xcolor@ukern.de}{xcolor@ukern.de}}.}} % \maketitle % % \begin{abstract} % \noindent % \XC{} provides easy driver-independent access to several kinds of colors, tints, shades, tones, and mixes of arbitrary colors by means of color expressions like |\color{red!50!green!20!blue}|. % It allows to select a document-wide target color model and offers tools for automatic color schemes, conversion between twelve color models, alternating table row colors, color blending and masking, color separation, and color wheel calculations. % \end{abstract} % % \phantomsection\pdfbookmark[1]{\contentsname}{toc} % \tableofcontents\listoftables\listoffigures\newpage % % % % % \clearpage % \section{Introduction} % % \subsection{Purpose of this package} % % The \LCP{} provides a powerful and stable tool for handling colors within (pdf)\LaTeX{} in a consistent and driver-independent way, supporting several color models (slightly less driver-independent). % % Nevertheless, it is sometimes a bit clumsy to use, especially in cases where slight color variations, color mixes or color conversions are involved: % this usually implies the usage of another program that calculates the necessary parameters, which are then copied into a |\definecolor| command in \LaTeX. % Quite often, also a pocket calculator is involved in the treatment of issues like the following: % \begin{itemize} % \item My company has defined a corporate color, and the printing office tells me how expensive it is to use more than two colors in our new brochure, whereas all kinds of tints (e.g., a 75\% version) of our color can be used at no extra cost. % But how to access these color variations in \LaTeX?\\ % (Answer: |\color{CorporateColor!75}| etc.) % \item My friend uses a nice color which I would like to apply in my own documents; unfortunately, it is defined in the \Model{hsb} model which is not supported in my favorite application pdf\LaTeX. % What to do now?\\ % (Answer: just use the \Model{hsb} definitions, \XC{} will do the necessary calculations) % \item How does a mixture of 40\% \Color{green} and 60\% \Color{yellow} look like?\\ % (Answer: 40\% \testclr{green} $+$ 60\% \testclr{yellow} $=$ \testclr{green!40!yellow}, e.g., |\color{green!40!yellow}|) % \item And how does its complementary color look like?\\ % (Answer: \testclr{-green!40!yellow}, accessible via |\color{-green!40!yellow}|) % \item Now I want to mix three parts of the last color with two parts of its complement and one part of \Color{red}. % How does that look?\\ % (Answer: $3\times$ \testclr{-green!40!yellow} $+ 2\times$ \testclr{green!40!yellow} $+ 1\times$ \testclr{red} $=$ \testclr{rgb:-green!40!yellow,3;green!40!yellow,2;red,1}, the last color being accessible via |\color{rgb:-green!40!yellow,3;green!40!yellow,2;red,1}|) % \item I know that light waves of 485nm are within the visible range. But which color do they represent?\\ % (Answer: approximately \testclr[wave]{485}, via |\color[wave]{485}|) % \item My printing office wants all color definitions in my document to be transformed into the \Model{cmyk} model. % How can I do the calculations efficiently?\\ % (Answer: |\usepackage[cmyk]{xcolor}| or |\selectcolormodel{cmyk}|) % \item I have a table with 50 rows. % How can I get alternating colors for entire rows without copying 50 |\rowcolor| commands? The alternating scheme should start in the 3rd row.\\ % (Answer: something like |\rowcolors{3}{OddColor}{EvenColor}|) % \end{itemize} % These are some of the issues solved by the \XCP. % Its purpose can be summarized as to maintain the characteristics of \LC, while providing additional features and flexibility with (hopefully) easy-to-use interfaces. % % % % \subsection{Color tints, shades, tones, and complements} % % According to \cite{smith} we define the terms % \begin{itemize} % \item \textbf{\Index{tint}}: a color with \Color{white} added, % \item \textbf{\Index{shade}}: a color with \Color{black} added, % \item \textbf{\Index{tone}}: a color with \Color{gray} added. % \end{itemize} % These are special cases of a general function % $\mix(C,C',p)$ which constructs a new color, consisting of $p$ parts of color $C$ and $1-p$ parts of color $C'$, where $0\le p\le1$. % Thus, we set % \begin{align} % \tint(C,p) &:= \mix(C,|white|,p)\\ % \shade(C,p) &:= \mix(C,|black|,p)\\ % \tone(C,p) &:= \mix(C,|gray|,p) % \end{align} % where |white|, |black|, and |gray| are model-specific constants, see table \vref{tab.const}. % Further we define the term % \begin{itemize} % \item \textbf{complement}: a color $C^*$ that yields \Color{white} if superposed with the original color $C$, % \end{itemize} % knowing that there are also different concepts of complementarity in place (e.g., opposite colors on \emph{color wheels}). % See section \vref{sec.cnv} for calculation details and section \vref{sec.harmony} for some remarks on color wheels. % % % % \subsection{Color models} % % A color model is a tool to describe or represent a certain set of colors in a way that is suitable for the desired target device, e.g., a screen or a printer. % There are proprietary models (like \Index{Pantone} or \Index{HKS}) that provide finite sets of colors (often called \emph{\Index{spot color}s}), where the user has to choose from without caring about parametrisations; on the other hand, there are parameter-driven models like \Model{gray}, \Model{rgb}, and \Model{cmyk}, that aim to represent large finite or even (theoretically) infinite sets of colors, built on very small subsets of base colors and rules, how to construct other colors from these base colors. % For example, a large range of colors can be constructed by linear combinations of the base colors \Color{red}, \Color{green}, and \Color{blue}. % On the other hand, usually \Index{spot color}s can only be \emph{approximated} by parameter values in models like \Model{cmyk} or \Model{rgb}; the original colors are being physically mixed even dependent on the targeted kind of paper. % Finally, there are certain colors like \Color{gold} and \Color{silver} that are hardly reproducable by any parameter-driven color model on standard ink or laser printers. % % % % \subsection{Color wheels and color harmony}\label{sec.harmony} % % There has been a long history of placing colors (hues) on wheels in order to discuss theoretical or practical color issues (e.g., \People{Isaac}{Newton}, \People{Johann Wolfgang von}{Goethe}). % One reason may be that the circle itself is a natural tool to demonstrate common relationships as well as opposite properties. % % Nowadays, there exists some confusion about notions, since both major areas related to color --- art and graphics design on one hand, scientific color theory on the other hand --- tend to use the same words to describe color properties, however meaning sometimes very different facts! % Thus, the appearance of color wheels differs as well as the meaning of concepts like `primary' or `complementary' colors. % % % \paragraph{Typical color wheel construction} % First, three \emph{primary colors} are placed at 0\Circ, 120\Circ, 240\Circ (artists often choose \Color{red}, \Color{yellow}, \Color{blue}, whereas color scientists might prefer \Color{red}, \Color{green}, \Color{blue}). % Next, three \emph{secondary colors} are put at 60\Circ, 180\Circ, 300\Circ. % Then, six \emph{tertiary colors} may be placed in between (30\Circ, 90\Circ, \dots). % This is why color wheels are frequently described to consist of twelve equidistant colors, although the algorithm can be repeated arbitrarily often. % % % \paragraph{Color harmonies derived from a wheel} % We start with an arbitrary color wheel: % \begin{itemize} % \item \textbf{complementary colors} have a distance of 180\Circ{} on the wheel, % \item \textbf{color triads} consist of three colors in 120\Circ{} steps, % \item \textbf{color tetrads} consist of four colors in 90\Circ{} steps. % \end{itemize} % We assume now that the wheel is partitioned into $2n$ sectors of equal size: % \begin{itemize} % \item \textbf{split complementary colors} of a given color are the two immediate neighbours of its complementary color, characterised by the positions $\frac{n\pm1}{2n}\cdot360^\circ$, % \item \textbf{analogous colors} to a given color are its two or four neighbours, characterised by the positions $\pm\frac{1}{2n}\cdot360^\circ$ and $\pm\frac{2}{2n}\cdot360^\circ$. % \end{itemize} % Given these methods to generate `color harmonies', we conclude that the results depend heavily on how we constructed the wheel! % Moreover, the choice of $n$ will affect the visual results as well. % Examples are shown in figure \vref{fig.harmony}. % % % % % \clearpage % \section{The User Interface} % % \subsection{Preparation} % % \subsubsection{Package installation} % % First of all, put \File{xcolor.sty} and all the \File{.def} files to some place where (pdf)\LaTeX{} finds them. % A typical place according to the \emph{\TeX\ Directory Structure} (TDS) would be the directory |texmf/tex/latex/xcolor|, where |texmf| denotes the main directory of your \TeX\ installation. % Additionally, put \File{xcolor.pro} to a place where \Program{dvips} finds it, typically |texmf/dvips/xcolor|. % Usually, you will have to run some kind of filename database update in order to make the files known and quickly searchable to the \TeX\ system. % Then simply use \XC{} (instead of \LC) in your document. % Thus, the general command is |\usepackage|\oarg{options}|{xcolor}| in the document preamble. % Table \vref{tab.package} shows what has to be taken into account with respect to the package loading order. % % % \subsubsection{Package options} % % In general, there are several types of options: % \begin{itemize} % \item options that determine the color driver as explained in \cite{dpc} and \cite{color}, currently: \Option{dvips}, \Option{xdvi}, \Option{dvipdf}, \Option{dvipdfm}, \Option{dvipdfmx}, \Option{pdftex}, \Option{dvipsone}, \Option{dviwindo}, \Option{emtex}, \Option{dviwin}, \Option{oztex}, \Option{textures}, \Option{pctexps}, \Option{pctexwin}, \Option{pctexhp}, \Option{pctex32}, \Option{truetex}, \Option{tcidvi}, \Option{vtex}, \Option{xetex}, % \item options that determine the target color model\footnote{Section \vref{sec.tgt} explains how this setting can be overridden at any point in a document.} (\Option{natural}, \Option{rgb}, \Option{cmy}, \Option{cmyk}, \Option{hsb}, \Option{gray}, \Option{RGB}, \Option{HTML}, \Option{HSB}, \Option{Gray}) or disable colored output (\Option{monochrome}), % \item options that control whether and how certain sets of predefined colors are being loaded: \Option{dvipsnames}, \Option{dvipsnames*}, \Option{svgnames}, \Option{svgnames*}, \Option{x11names}, \Option{x11names*}, % \item options that determine which other packages are to be loaded or supported: \Option{table}, \Option{fixpdftex}, % \Option{hyperref}, % \item options that influence the behaviour of other commands: \Option{prologue}, \Option{kernelfbox}, \Option{xcdraw}, \Option{noxcdraw}, \Option{fixinclude}, \Option{showerrors}, \Option{hideerrors}, % \item obsolete options: % \oOption{pst}, % \oOption{override}, \oOption{usenames}, \oOption{nodvipsnames}. % \end{itemize} % All available package options (except driver selection and obsolete options) are listed in table \vref{tab.opt}. % \DescribeMacro\GetGinDriver % \DescribeMacro\GinDriver % In order to facilitate the co-operation with the \Package{hyperref} package, there is a command |\GetGinDriver|\footnote{This command is executed automatically if the package option \Option{hyperref} is used.} that grabs the driver actually used and puts it into the command |\GinDriver|. % The latter can then be used within \Package{hyperref} (or other packages), see the code example on page \pageref{ex.range}. % If there is no corresponding \Package{hyperref} option, \Option{hypertex} will be taken as default. % % Warning: there is a substantial difference between \XC{} and \LC{} regarding how the \Option{dvips} option is being handled. % The \LCP{} implicitly invokes the \Option{dvipsnames} option, whenever one of the |dvips|, |oztex|, |xdvi| drivers is selected. % This makes documents less portable, since whenever one of these colors is used without explicit \Option{dvipsnames} option, other drivers like |pdftex| will issue error messages because of unknown colors. % Therefore, \XC{} always requires an explicit \Option{dvipsnames} option to use these names --- which then works for all drivers. % % % \begin{table}[p]\caption{Package options}\label{tab.opt} % \extrarowheight2pt % \begin{adjustwidth}{-2.5cm}{} % \advance\textwidth2.5cm % \rowcolors{3}{tablerowcolor}{} % \begin{tabularx}{\linewidth}{lX} % \hline % \rowcolor{tableheadcolor} % \em Option & \em Description\\ % \Option{natural}& (Default.) Keep all colors in their model, except \Model{RGB} (converted to \Model{rgb}), \Model{HSB} (converted to \Model{hsb}), and \Model{Gray} (converted to \Model{gray}).\\ % \Option{rgb}& Convert all colors to the \Model{rgb} model.\\ % \Option{cmy}& Convert all colors to the \Model{cmy} model.\\ % \Option{cmyk}& Convert all colors to the \Model{cmyk} model.\\ % \Option{hsb}& Convert all colors to the \Model{hsb} model.\\ % \Option{gray}& Convert all colors to the \Model{gray} model. Especially useful to simulate how a black \& white printer will output the document.\\ % \Option{RGB}& Convert all colors to the \Model{RGB} model (and afterwards to \Model{rgb}).\\ % \Option{HTML}& Convert all colors to the \Model{HTML} model (and afterwards to \Model{rgb}).\\ % \Option{HSB}& Convert all colors to the \Model{HSB} model (and afterwards to \Model{hsb}).\\ % \Option{Gray}& Convert all colors to the \Model{Gray} model (and afterwards to \Model{gray}).\\ % \hline % \Option{dvipsnames}, \Option{dvipsnames*}& Load a set of predefined colors.\footnotemark[1]\\ % \Option{svgnames}, \Option{svgnames*}& Load a set of predefined colors according to \Index{SVG} 1.1.\footnotemark[1]\\ % \Option{x11names}, \Option{x11names*}& Load a set of predefined colors according to \Index{Unix}/\Index{X11}.\footnotemark[1]\\ % \hline % \Option{table}& Load the \Package{colortbl} package, in order to use the tools for coloring rows, columns, and cells within tables.\\ % \Option{fixpdftex}& Load the \Package{pdfcolmk} package, in order to improve |pdftex|'s color behaviour (see section \vref{sec.fixpdftex}).\\ % \Option{hyperref}& Support the \Package{hyperref} package in terms of color expressions by defining additional keys (see section \vref{sec.hyperref}).\\ % \hline % \Option{prologue}& Write prologue information to \File{.xcp} file for every color definition (as described in section \vref{sec.prologue}).\\ % \hline % \Option{kernelfbox}& Use \LaTeX{} kernel method to draw \texttt{\string\f(rame)box} frames\footnotemark[2].\\ % \Option{xcdraw}& Use driver-specific commands to draw frames and color boxes.\footnotemark[2]\\ % \Option{noxcdraw}& (Default.) Use generic code to draw frames and color boxes.\footnotemark[2]\\ % \Option{fixinclude}& Prevent |dvips| color reset before \File{.eps} file inclusion (see section \vref{sec.fixinclude}).\\ % \hline % \Option{showerrors}& (Default.) Display an error message if an undefined color is being used (same behaviour as in the original \LCP).\\ % \Option{hideerrors}& Display only a warning if an undefined color is being used, and replace this color by \Color{black}.\\ % \hline\hline % \multicolumn2{c}{\footnotemark[1]\,See section \vref{sec.additionalcolors}.\quad \footnotemark[2]\,See section \vref{sec.fbox}.}\\ % \hline % \end{tabularx} % \end{adjustwidth} % \end{table} % % % \begin{table}[htbp]\caption{Package loading order}\label{tab.package} % \begin{adjustwidth}{-2.5cm}{} % \raggedleft % \extrarowheight2pt % \rowcolors{3}{tablerowcolor}{} % \begin{tabular}{l*{6}{c}} % \hline % \rowcolor{tableheadcolor} % \em Action/Package & \Package{colortbl}& \Package{pdfcolmk}& \Package{hyperref}& \Package{pstricks}& \LC& \Package{pstcol}\\ % load before \XC & no & no & allowed & allowed\rlap{\footnotemark[1]} & no & no \\ % load with \XC{} option& \Option{table} & \Option{fixpdftex} & --- & --- & --- & --- \\ % load after \XC & no & allowed & allowed & allowed & no & no \\ % \hline\hline % \multicolumn6{c}{\footnotemark[1]\,recent \Package{pstricks} versions do load \XC\ by default}\\ % \hline % \end{tabular} % \end{adjustwidth} % \end{table} % % % \begin{table}[htbp]\caption{Supported color models}\label{tab.mod} % \raggedleft % \extrarowheight2pt % \rowcolors{3}{tablerowcolor}{} % \begin{tabular}{l>{\em}l>{$}l<{$}rl} % \hline % \rowcolor{tableheadcolor} % \emph{Name} & Base colors/notions & \emph{Parameter range}& \multicolumn2{>{\columncolor{tableheadcolor}}l}{\emph{Default}}\\ % \Model{rgb} & red, green, blue & \left[0,1\right]^3&& \\ % \Model{cmy} & cyan, magenta, yellow & \left[0,1\right]^3&& \\ % \Model{cmyk} & cyan, magenta, yellow, black & \left[0,1\right]^4&& \\ % \Model{hsb} & hue, saturation, brightness & \left[0,1\right]^3&& \\ % \Model{Hsb} & hue\Circ\!, saturation, brightness & \left[0,H\right]\times\left[0,1\right]^2&$H=$& $\mkern-15mu\rangeHsb$\\ % \Model{tHsb} & hue\Circ\!, saturation, brightness & \left[0,H\right]\times\left[0,1\right]^2&$H=$& $\mkern-15mu\rangeHsb$\\ % \Model{gray} & gray & \left[0,1\right]&& \\ % \Model{RGB} & Red, Green, Blue & \{0,1,\dots,L\}^3& $L\,=$& $\mkern-15mu\rangeRGB$\\ % \Model{HTML} & RRGGBB & \{\texttt{000000},\dots,\texttt{FFFFFF}\}&& \\ % \Model{HSB} & Hue, Saturation, Brightness & \{0,1,\dots,M\}^3& $M=$& $\mkern-15mu\rangeHSB$\\ % \Model{Gray} & Gray & \{0,1,\dots,N\}& $N\,=$& $\mkern-15mu\rangeGray$\\ % \Model{wave} & lambda \emph{(nm)}& \left[363,814\right]&& \\ % \hline\hline % \multicolumn5{c}{$L,M,N$ are positive integers; $H$ is a positive real number}\\ % \hline % \end{tabular} % \end{table} % % % \subsubsection{Executing additional initialisation commands} % % \DescribeMacro\xcolorcmd % Here is a simple interface to pass commands that should be executed at the end of the \XCP{} (immediately before the initialising |\color{black}| is executed). % Just say |\def\xcolorcmd|\marg{commands} at some point before \XC{} is loaded. % % Example: assuming that |a.tex| is a complete \LaTeX{} document, a command like % `|latex \def\xcolorcmd{\colorlet{black}{red}}\input{a}|' % at the console generates a file |a.dvi| with all occurences of \Color{black} being replaced by \Color{red}, without the necessity to change the source file itself. % (The exact spelling of the console command might vary across operating systems and \TeX{} distributions.) % % % % \subsection{Color models} % % \subsubsection{Supported color models} % % The list of supported color models and their parameter ranges is given in table \vref{tab.mod}. % We emphasize that this color support is independent of the chosen driver. % % `Color model support' also means that it is possible to specify colors directly with their parameters, e.g., by saying |\textcolor[cmy]{0.7,0.5,0.3}{foo}| (\textcolor[cmy]{0.7,0.5,0.3}{foo}) or |\textcolor[HTML]{AFFE90}{foo}| (\textcolor[HTML]{AFFE90}{foo}). % % \paragraph{\Model{rgb}, \Model{cmyk}, \Model{hsb}, \Model{gray}} % These are the models supported by \Index{PostScript} directly. % We therefore refer to \cite{plrm} for a description of their properties and relations. % There is a special command % \DescribeMacro\adjustUCRBG % to fine-tune the mechanisms of \emph{undercolor-removal} and \emph{black-generation} during conversion to the \Model{cmyk} model, see section \vref{sec.cmy2cmyk} for details. % % \paragraph{\Model{cmy}} % This is mainly a model for intermediary calculation steps. % With respect to that, it is a simple complement of \Model{rgb}. % As far as visualisation is concerned, \Model{cmy} is treated as \Model{cmyk} with $k=0$. % % \paragraph{\Model{HTML}} % This is a model derived from \Model{rgb} in order to enable input of color parameters from web pages or CSS files. % Therefore, it is not really a color model of its own right, but rather a user interface for convenience. % It is worth mentioning that \Model{HTML} accepts any combination of the characters |0|--|9|, |A|--|F|, |a|--|f|, as long as the string has a length of exactly 6~characters. % However, outputs of conversions to \Model{HTML} will always consist of numbers and \emph{uppercase} letters. % % \paragraph{\Model{Hsb}, \Model{tHsb}} % Firstly, \Model{Hsb} is a `user interface' model, mapping $\emph{hue}\in[0,1]$ onto $\emph{hue\Circ}\in[0,H]$, where $H$ is given by |\def\rangeHsb|\marg{H}. % \DescribeMacro\rangeHsb % Thus, if $H=360$, we can think of a circle or wheel to specify the \emph{hue\Circ} parameter. % Secondly, \Model{Hsb} is the basis for \Model{tHsb}, also named \pModel{tuned} \Model{Hsb}, which enables the user to apply a piecewise linear transformation on \emph{hue\Circ} by shifting selected \emph{hue\Circ} values forward or backward on the circle. % This transformation is defined by |\def\rangetHsb{|$x_1,y_1;x_2,y_2;\dots$|}| % \DescribeMacro\rangetHsb % which specifies that $\emph{hue\Circ}=x_1$ in \Model{tHsb} means $\emph{hue\Circ}=y_1$ in \Model{Hsb}, etc. % For example, \Color{yellow} is at 60\Circ{} in the \Model{Hsb} circle (\Color{red} being at 0\Circ), however, in most color wheels used by artists, \Color{yellow} is at 120\Circ. % Therefore, a `|120,60|' entry would make sense if we planned to replicate an artist's color wheel via \Model{tHsb}. % See section \vref{sec.tHsb2Hsb} for the exact transformation formula and further restrictions, and section \vref{sec.harmony} for color wheels and color harmonies. % Figure \vref{fig.tHsb} may serve for comparison purposes. % % Example: `|\def\rangetHsb{|\texttt{\rangetHsb}|}|' is in fact \XC's default setting. % % \paragraph{\Model{wave}} % With this model we try to make wavelengths transformable to standard color models, in order to approximate the visual appearance of light waves. % While the visible spectrum covers a range of approximately 400--750\,nm, the implementation in \XC{} generally allows for all real `wavelengths' $\lambda$ that have an absolute value less than \csname strip@pt\endcsname\maxdimen{} (the biggest number \TeX{} can represent as a dimension). % However, the probability of getting any non-black color outside the range of $\lambda\in[363,814]$ is exactly zero. % Therefore, figure \vref{fig.spectrum} illustrates only the mentioned wavelength interval. % Note that it is not possible to convert other models to \Model{wave} in a sensible way, since the latter covers only a limited range of colors. % % \paragraph{\Model{RGB}, \Model{HSB}, \Model{Gray}} % These are derived models, turning the continuous $[0,1]$ parameter ranges of \Model{rgb}, \Model{hsb}, and \Model{gray} to finite sets of integers; we therefore use the term \emph{integer models}. % The constants $L, M, N$ of table \ref{tab.mod} are defined via the commands |\def\rangeRGB|\marg{L}, % \DescribeMacro\rangeRGB % |\def\rangeHSB|\marg{M}, % \DescribeMacro\rangeHSB % and |\def\rangeGray|\marg{N}. % \DescribeMacro\rangeGray % Changes of these constants can be done \emph{before} or \emph{after} the \XCP{} is loaded, e.g., % \label{ex.range}\begin{verbatim} % \documentclass{article} % ... % \def\rangeRGB{15} % \usepackage[dvips]{xcolor} % ... % \GetGinDriver % \usepackage[\GinDriver]{hyperref} % ... % \begin{document} % ... % \def\rangeRGB{63} % ... % \end{verbatim} % % % \subsubsection{Substituting individual color models}\label{sec.subst} % % \DescribeMacro\substitutecolormodel % \marg{source model}\marg{target model-list}\\ % Substitute \Meta{source model} by the first actually present model that occurs in \Meta{target model-list}. % Only color models of type \Meta{num model} are allowed; % all changes are local to the current group, but a prepended |\xglobal| is obeyed. % % Example: assume the actual driver has an incorrect implementation of \Model{hsb} whereas \Model{rgb} looks well. % Then |\substitutecolormodel{hsb}{rgb}| could be a good choice, since it converts --- from that point onwards --- all definitions of \Model{hsb} colors by \XC's algorithms into \Model{rgb} specifications, without touching other models. % % % \subsubsection{Changing the target color model within a document}\label{sec.tgt} % % \DescribeMacro\selectcolormodel % \marg{num model}\\ % Sets the target model to \Meta{num model}, where the latter is one of the model names allowed as package option (i.e., \Option{natural}, \Option{rgb}, \Option{cmy}, \Option{cmyk}, \Option{hsb}, \Option{gray}, \Option{RGB}, \Option{HTML}, \Option{HSB}, \Option{Gray}), see figure \vref{fig.tgt} for an example. % There are two possible hooks, where the conversion to the target model can take place: % \begin{itemize} % \item \DescribeMacro\ifconvertcolorsD at color \emph{definition} time\footnote{This means that all \emph{newly} defined colors will be first converted to the target model, then saved.} (i.e., within |\definecolor| and friends); this is controlled by the switch |\ifconvertcolorsD|; % \item \DescribeMacro\ifconvertcolorsU at time of color \emph{usage} (immediately before a color is displayed, therefore covering colors that have been defined in other models or that are being specified directly like |\color[rgb]{.1,.2,.3}|); this is controlled by the switch |\ifconvertcolorsU|. % \end{itemize} % Both switches are set to `true' by selecting any of the models, except \Option{natural}, which sets them to `false'. % This applies for selection via a package option as well as via |\selectcolormodel|. % Why don't we simply convert all colors at time of usage? % If many colors are involved, it can save some processing time when all conversions are already done during color definitions. % Best performance can be achieved by |\usepackage[rgb,...]{xcolor}\convertcolorsUfalse|, which is actually the way how \XC{} worked up to version 1.07. % % % \begin{table}[p]\caption{Arguments and terminology}\label{tab.term} % \def\RS{\ensuremath{\to}\space} % \footnotesize\raggedleft % \extrarowheight2pt % \begin{adjustwidth}{-2.5cm}{} % \advance\textwidth2.5cm % \tabcolsep.25em % \rowcolors{3}{tablerowcolor}{} % \begin{tabularx}{\textwidth}{lX} % \hline % \rowcolor{tableheadcolor} % \em Element & \em Replacement string\\ % \Meta*{empty}& \RS empty string `'\\ % \Meta*{minus}& \RS non-empty string consisting of one or more minus signs `|-|'\\ % \Meta*{plus}& \RS non-empty string consisting of one or more plus signs `|+|'\\ % \hline % \Meta*{int}& \RS integer number\hfill(\emph{integer})\\ % \Meta*{num}& \RS non-negative integer number\hfill(\emph{number})\\ % \Meta*{dec}& \RS real number\hfill(\emph{decimal})\\ % \Meta*{div}& \RS non-zero real number\hfill(\emph{divisor})\\ % \Meta*{pct}& \RS real number from the interval $[0,100]$\hfill(\emph{percentage})\\ % \hline % \Meta*{id}& \RS non-empty string consisting of letters and digits\hfill(\emph{identifier})\\ % \Meta*{ext id}& \RS \Meta{id}\newline % \RS \Meta[1]{id}|=|\Meta[2]{id}\\ % \Meta*{id-list}& \RS \Meta[1]{ext id}|,|\Meta[2]{ext id}|,...,|\Meta[l]{ext id}\\ % \Meta*{name}& \RS \Meta{id}\hfill(\emph{explicit name})\newline % \RS `|.|'\hfill(\emph{implicit name})\\ % \Meta*{core model}& \RS `|rgb|', `|cmy|', `|cmyk|', `|hsb|', `|gray|'\hfill(\emph{core models})\\ % \Meta*{num model}& \RS \Meta{core model}\newline % \RS `|RGB|', `|HTML|', `|HSB|', `|Gray|'\hfill(\emph{integer models})\newline % \RS `|Hsb|', `|tHsb|', `|wave|'\hfill(\emph{decimal models})\\ % \Meta*{model}& \RS \Meta{num model}\hfill(\emph{numerical models})\newline % \RS `|named|'\hfill(\emph{pseudo model})\\ % \Meta*{model-list}& \RS \Meta[1]{model}|/|\Meta[2]{model}|/.../|\Meta[m]{model} \hfill(\emph{multiple models})\newline % \RS \Meta{core model}|:|\Meta[1]{model}|/|\Meta[2]{model}|/.../|\Meta[m]{model}\\ % \Meta*{spec}& \RS comma-separated list of numerical values\hfill(\emph{explicit specification})\newline % \RS space-separated list of numerical values\hfill(\emph{explicit specification})\newline % \RS name of a `named' color\hfill(\emph{implicit specification})\\ % \Meta*{spec-list}& \RS \Meta[1]{spec}|/|\Meta[2]{spec}|/.../|\Meta[m]{spec} \hfill(\emph{multiple specifications})\\ % \Meta*{type}& \RS \Meta{empty}\newline % \RS `|named|', `|ps|'\\ % \hline % \Meta*{expr}& \RS \Meta{prefix}\Meta{name}\Meta{mix expr}\Meta{postfix}\hfill(\emph{standard color expression})\\ % \Meta*{prefix}& \RS \Meta{empty}\newline % \RS \Meta{minus}\hfill(\emph{complement indicator})\\ % \Meta*{mix expr}& \RS |!|\Meta[1]{pct}|!|\Meta[1]{name}|!|\Meta[2]{pct}|!|\Meta[2]{name}|!...!|\Meta[n]{pct}|!|\Meta[n]{name} \hfill(\emph{complete mix expr.})\newline % \RS |!|\Meta[1]{pct}|!|\Meta[1]{name}|!|\Meta[2]{pct}|!|\Meta[2]{name}|!...!|\Meta[n]{pct} \hfill(\emph{incomplete mix expr.})\\ % \Meta*{postfix}& \RS \Meta{empty}\newline % \RS |!!|\Meta{plus}\hfill(\emph{series step})\newline % \RS |!![|\Meta{num}|]|\hfill(\emph{series access})\\ % \hline % \Meta*{ext expr}& \RS \Meta{core model}|,|\Meta{div}|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|,|\Meta[k]{dec}\newline % \RS \Meta{core model}|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|,|\Meta[k]{dec}\\ % \hline % \Meta*{func expr}& \RS |>|\Meta{function}|,|\Meta[1]{arg}|,|\Meta[2]{arg}|,...,|\Meta[j]{arg}\hfill(\emph{color function expression})\\ % \Meta*{function}& \RS `|wheel|', `|twheel|'\hfill(\emph{color functions})\\ % \hline % \Meta*{color}& \RS \Meta{color expr}\Meta[1]{func expr}\Meta[2]{func expr}|...|\Meta[i]{func expr}\\ % \Meta*{color expr}& \RS \Meta{name}\newline % \RS \Meta{expr}\newline % \RS \Meta{ext expr}\\ % \hline\hline % \rowcolor{white} % Remarks:& Each \RS denotes a possible replacement string for the element in the left column; % however, further context-dependent restrictions may apply. % See main text for details. % A string `|foo|' is always to be understood without the quotes. % $i,j,k,l,m,n$ denote non-negative integers, $k,l,m,n>0$, $m\le8$.\\ % \hline % \end{tabularx} % \end{adjustwidth} % \end{table} % % % % \subsection{Arguments and terminology}\label{sec.term} % % Before we describe \XC's color-related commands in detail, we define several elements or identifiers that appear repeatedly within arguments of those commands. % A general syntax overview is given in table \vref{tab.term}. % % % \subsubsection{Additional remarks and restrictions on arguments} % % \paragraph{Basic strings and numbers} % \DescribeArg{empty} % \DescribeArg{minus} % \DescribeArg{plus} % \DescribeArg{int} % \DescribeArg{num} % \DescribeArg{dec} % \DescribeArg{pct} % \DescribeArg{div} % These arguments do not need much explanation. % However, as far as numerical values are concerned, it is noteworthy that real numbers in (La)\TeX{} are --- as long as they are to be used in the context of lengths, dimensions, or skips --- are restricted to a maximum absolute value $<16384$. % Certainly, in a chain of numerical calculations, this constraint has also to be obeyed for every single interim result, which usually implies further range restrictions. % Since \XC{} makes extensive use of \TeX's internal dimension registers for most types of calculations, this should be kept in mind whenever \Meta{ext expr} expressions are to be used. % % % \paragraph{Color names} % \DescribeArg{name} % A \Meta{name} denotes the declared name (or the name to be declared) of a \emph{color} or a \emph{color series}; % it may be declared \emph{explicitly} by one of the following commands: |\definecolor|, |\providecolor|, |\colorlet|, |\definecolorset|, |\providecolorset|, |\definecolorseries|, |\definecolors|, |\providecolors|. % On the other hand, the reserved color name `|.|' is declared \emph{implicitly} and denotes the \emph{current color}. % Actually, besides letters and digits, certain other characters do also work for \Meta{name} declarations, but the given restriction avoids misunderstandings and ensures compatibility with future extensions of \XC. % % Examples: `|red|', `|MySpecialGreen1980|', `|.|'. % % % \paragraph{Color models} % \DescribeArg{core model} % \DescribeArg{num model} % \DescribeArg{model} % The differentiation between \emph{core models} (\Model{rgb}, \Model{cmy}, \Model{cmyk}, \Model{hsb}, \Model{gray}), \emph{integer models} (\Model{RGB}, \Model{HTML}, \Model{HSB}, \Model{Gray}), \emph{decimal models} (\Model{Hsb}, \Model{tHsb}, \Model{wave}) and \emph{pseudo models} (currently \nModel{named}, \nModel{ps}) has a simple reason: core models with their parameter ranges based on the unit interval $[0,1]$ are best suited for all kinds of calculations, whereas the purpose of the integer models is mainly to facilitate the input of parameters, followed by some transformation into one of the core models. % Finally, the decimal models \Model{Hsb} and \Model{tHsb} are special-purpose versions of \Model{hsb}, whereas \Model{wave} and the pseudo model \nModel{named} have a special status, since they are `calculation-averse': it is usually only possible to convert such a color into one of the other models, but not the other way round. % Even worse for the pseudo model \nModel{ps}: since such colors contain \Index{PostScript} code, they are absolutely intransparent for \TeX. % % % \paragraph{Color specifications} % \DescribeArg{spec} % The \Meta{spec} argument --- which specifies the parameters of a color --- obviously depends on the underlying color model. % We differentiate between \emph{explicit} and \emph{implicit} specification, the former referring to numerical parameters as explained in table \vref{tab.mod}, the latter --- ideally --- referring to driver-provided names. % % Examples: `|.1,.2,.3|', `|.1 .2 .3|', `|0.56789|', `|89ABCD|', `|ForestGreen|'. % % % \paragraph{Multiple models and specifications} % \DescribeArg{model-list} % \DescribeArg{spec-list} % These arguments always appear in (explicit or implicit) pairs within the following color definition commands: % |\definecolor|, |\providecolor|, |\definecolorset|, |\providecolorset|. % First, \Meta{model-spec} is being reconciled with the current target model (as set by a package option or the |\selectcolormodel| command); in case there is no exact match, the first model of the list is chosen. % Then, the corresponding color specification will be selected from \Meta{spec-list}, such that we arrive at a proper $(\Meta{model}, \Meta{spec})$ pair. % Therefore, in the actual executed color definition there is no ambiguity anymore. % The extended form \Meta{core model}|:|\Meta[1]{model}|/|\Meta[2]{model}|/.../|\Meta[m]{model} causes an immediate conversion of the relevant \Meta{spec} to \Meta{core model}; an unknown target model will be silently ignored here. % % Examples: `|rgb/cmyk/named/gray|', `|0,0,0/0,0,0,1/Black/0|', `|rgb:cmy/hsb|'. % % % \paragraph{The type argument} % \DescribeArg{type} % This is used only in the context of color defining commands, see the description of |\definecolor| and friends. % % % \paragraph{Standard color expressions} % \DescribeArg{expr} % \DescribeArg{prefix} % \DescribeArg{mix expr} % \DescribeArg{postfix} % These expressions serve as a tool to easily specify a certain form of cascaded color mixing which is described in detail in section~\ref{sec.expr-meaning}. % The \Meta{prefix} argument controls whether the color following thereafter or its complement will be relevant: % an odd number of minus signs indicates that the color resulting from the remaining expression has to be converted into its complementary color. % An \emph{incomplete mix expression} is just an abbreviation for a \emph{complete mix expression} with $\Meta[n]{name} = |white|$, in order to save some keystrokes in the case of tints. % The \Meta{postfix} string is usually empty, but it offers some additional functionality in the case of a \emph{color series}: % the non-empty cases require that % \begin{itemize} % \item \Meta{name} denotes the name of a \emph{color series}, % \item \Meta{mix expr} is a \emph{complete} mix expression. % \end{itemize} % Examples: `|red|', `|-red|', `|--red!50!green!12.345|', `|red!50!green!20!blue|', `|foo!!+|', `|foo!![7]|', `|foo!25!red!!+++|', `|foo!25!red!70!green!![7]|'. % % % \paragraph{Extended color expressions} % \DescribeArg{ext expr} % These expressions provide another method of color mixing, see section \vref{sec.extexpr-meaning} for details. % The shorter form % \begin{align*} % \Meta{core model}&|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|!|\Meta[k]{dec}\\ % \intertext{is an abbreviation for the special (and probably most used) case} % \Meta{core model}|,|\Meta{div}&|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|!|\Meta[k]{dec}\\ % \intertext{with the following definition (requiring a non-zero sum of all \Meta[\kappa]{dec} coefficients):} % \Meta{div} &:= \Meta[1]{dec} + \Meta[2]{dec} + \dots + \Meta[k]{dec} \neq0. % \end{align*} % Examples: `|rgb:red,1|', `|cmyk:red,1;-green!25!blue!60,11.25;blue,-2|'. % % % \paragraph{Function expressions} % \DescribeArg{func expression} % \DescribeArg{function} % These expressions extend the functionality of \emph{standard} or \emph{extended} expressions by taking the result of such an expression to perform additional calculations. % The number of arguments may vary between different functions, see section \vref{sec.functions} for details. % % Examples: `|>wheel,30|', `|>wheel,30,|', `|>twheel,1,12|', `|>twheel,-11,12|'. % % % % \paragraph{Colors} % \DescribeArg{color} % \DescribeArg{color expr} % Finally, \Meta{color} is the `umbrella' argument, covering the different concepts of specifying colors. % This means, whenever there is a \Meta{color} argument, the full range of names and expressions, as explained above, may be used. % % % \subsubsection{Meaning of standard color expressions}\label{sec.expr-meaning} % % We explain now how an expression % \begin{gather*} % \Meta{prefix}\Meta{name}|!|\Meta[1]{pct}|!|\Meta[1]{name}|!|\Meta[2]{pct}|!|\dots|!|\Meta[n]{pct}|!|\Meta[n]{name}\Meta{postfix} % \end{gather*} % is being interpreted and processed: % \begin{enumerate} % \item First of all, the model and color parameters of \Meta{name} are extracted to define a temporary color \Meta{temp}. % If \Meta{postfix} has the form `|!![|\Meta{num}|]|', then \Meta{temp} will be the corresponding (direct-accessed) color \Meta{num} from the series \Meta{name}. % \item Then a color mix, consisting of \Meta[1]{pct}\% of color \Meta{temp} and $(100-\Meta[1]{pct})$\% of color \Meta[1]{name} is computed; this is the new temporary color \Meta{temp}. % \item The previous step is being repeated for all remaining parameter pairs (\Meta[2]{pct},\Meta[2]{name}), \dots, (\Meta[n]{pct},\Meta[n]{name}). % \item If \Meta{prefix} consists of an odd number of minus signs `-', then \Meta{temp} will be changed into its complementary color. % \item If \Meta{postfix} has the form `|!!+|', `|!!++|', `|!!+++|', etc., a number of step commands (=~number of `|+|' signs) are performed on the underlying color series \Meta{name}. % This has no consequences for the color \Meta{temp}. % \item Now the color \Meta{temp} is being displayed or serves as an input for other operations, depending on the invoking command. % \end{enumerate} % Note that in a typical step 2 expression \Meta{temp}|!|\Meta[\nu]{pct}|!|\Meta[\nu]{name}, if \Meta[\nu]{pct}=100 resp.{} \Meta[\nu]{pct}=0, the color \Meta{temp} resp.{} \Meta[\nu]{name} is used without further transformations. % In the true mix case, $0<$\Meta[\nu]{pct}$<100$, the two involved colors may have been defined in different color models, e.g., |\definecolor{foo}{rgb}{...}| and |\definecolor{bar}{cmyk}{...}|. % In general, the second color, \Meta[\nu]{name}, is transformed into the model of the first color, \Meta{temp}, then the mix is calculated within that model.\,\footnote{Exception: in order to avoid strange results, this rule is being reversed if \Meta{temp} origins from the \Model{gray} model; in this case it is converted into the underlying model of \Meta[\nu]{name}.} % Thus, \Meta{temp}|!|\Meta[\nu]{pct}|!|\Meta[\nu]{name} and \Meta[\nu]{name}|!|\Meta[\nu]{$100-$pct}|!|\Meta{temp}, which should be equivalent theoretically, will not necessarily yield identical visual results. % % Figures \vrefrange{fig.expr}{fig.ex} show some first applications of colors and expressions. % More examples are given in figure \vref{fig.progress}. % Over and above that, a large set of color examples can be found in \cite{chroma}. % % % \subsubsection{Meaning of extended color expressions}\label{sec.extexpr-meaning} % % An \emph{extended color expression} % \begin{gather*} % \Meta{core model}|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|,|\Meta[k]{dec} % \end{gather*} % mimes color mixing as painters do it: specify a list of colors, each with a \Meta{dec} factor attached to. % For such an \Meta{ext expr}, each standard color expression \Meta[\kappa]{expr} will be converted to \Meta{core model}, then the resulting vector is multiplied by $\Meta[\kappa]{dec}/\Meta{div}$, where % \begin{gather*} % \Meta{div} := \Meta[1]{dec} + \Meta[2]{dec} + \dots + \Meta[k]{dec}. % \end{gather*} % Afterwards the sum of all of these vectors is calculated. % % Example: mixing 4~parts of \testclr{red} \Color{red}, 2~parts of \testclr{green} \Color{green}, and 1~part of \testclr{yellow} \Color{yellow}, we get \testclr{rgb:red,4;green,2;yellow,1} via |\color{rgb:red,4;green,2;yellow,1}|. % Trying the same with $-1$ parts of \Color{yellow} instead, we get \testclr{rgb:red,4;green,2;yellow,-1}. % Note that this mechanism can also be used to display an individual color (expression) in a certain color model: |\color{rgb:yellow,1}| results in such a conversion. % The general form % \begin{gather*} % \Meta{core model}|,|\Meta{div}|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|,|\Meta[k]{dec} % \end{gather*} % does the same operation with the only difference that the divisor \Meta{div} is being specified instead of calculated. % In the above example, we get a shaded version \testclr{rgb,9:red,4;green,2;yellow,1} via |\color{rgb,9:red,4;green,2;yellow,1}|. % Note that it is not forbidden to specify a \Meta{div} argument which is smaller than the sum of all \Meta[\kappa]{dec}, such that one or more of the final color specification parameters could be outside the interval $[0,1]$. % However, the mapping of equation (\ref{eq.U}) takes care of such cases. % % % \subsubsection{Color functions}\label{sec.functions} % % Color functions take a comma-separated list of arguments, and they serve to transform the \emph{given color} (i.e., the result of all calculations prior to the function call) into a new color. % % \paragraph{Color wheel calculations} % \DescribeFunc{wheel} % \DescribeFunc{twheel} % Arguments: \Meta{angle} or \Meta{angle}|,|\Meta{full circle}, the former being an abbreviataion of \Meta{angle}|,\rangeHsb|. % These functions allow to calculate related colors by harmonic relations based on color wheels (cf.~section \vref{sec.harmony}). % The second argument \Meta{full circle} declares how many units a full circle consists of, the first argument states by how many units the given color has to be rotated. % To this end, the given color is first converted to \Model{Hsb} (in case of \Function{wheel}), yielding \emph{hue\Circ}, \emph{saturation}, and \emph{brightness}, respectively. % Then % \begin{gather} % \displaystyle\emph{hue\Circ} := \emph{hue\Circ} + \frac{\Meta{angle}}{\Meta{full circle}}\cdot H, \qquad \emph{hue} := u\Bigl( \frac{\emph{hue\Circ}}{H} \Bigr) % \end{gather} % where $u$ is the range-reduction function of equation~(\ref{eq.U}) and $H = \texttt{\string\rangeHsb}$. % With \emph{saturation} and \emph{brightness} left untouched, the final model is \Model{hsb}. % The \Function{twheel} function works similarly, but its arguments refer to \Model{tHsb} instead of \Model{Hsb}. % Examples are shown in figure \vref{fig.harmony}. % % % \subsection{Predefined colors} % % \subsubsection{Colors that are always available} % % \def\test#1{\testclr{#1}~\Color{#1}} % Within \File{xcolor.sty}, the following color names are defined: % \test{red}, \test{green}, \test{blue}, \test{cyan}, \test{magenta}, \test{yellow}, \test{black}, \test{gray}, \test{white}, \test{darkgray}, \test{lightgray}, \test{brown}, \test{lime}, \test{olive}, \test{orange}, \test{pink}, \test{purple}, \test{teal}, \test{violet}. % % This base set of colors can be used without restrictions in all kinds of color expressions, as explained in section \vref{sec.term}. % % % \subsubsection{Additional sets of colors}\label{sec.additionalcolors} % % There are also sets of color names that may be loaded by \XC{} via package options, available in two variants: % a `normal' version (e.g., \Option{dvipsnames}) and a `starred' version (e.g., \Option{dvipsnames*}). % The first variant simply defines all the colors \emph{immediately}, whereas the second applies the mechanism of \emph{deferred} definition. % In the latter case, individual color names have to be activated by |\definecolors| or |\providecolors| commands, as described in section \vref{sec.deferred}, before they can be applied in a document. % \begin{itemize} % \item \Option{dvipsnames}/\Option{dvipsnames*} loads a set of 68 \Model{cmyk} colors as defined in the |dvips| driver. However, these colors may be used in all supported drivers. % \item \Option{svgnames}/\Option{svgnames*} loads a set of 151 \Model{rgb} color names\footnote{In fact, these names represent 141 different colors.} according to the \Index{SVG}~1.1 specification \cite{svg}\footnote{Actually, the cited specification lists only lowercase names, and the original definitions are given in \Model{RGB} parameters, converted to \Model{rgb} by the author.}, enhanced by~4 names taken from the file \File{rgb.txt} which is part of \Index{Unix}/\Index{X11} distributions. Note that \Index{HTML4} accepts a subset of 16~color keywords (using identical specifications), see \cite{HTML4} and section \vref{sec.names}. % \item \Option{x11names}/\Option{x11names*} loads a set of 317 \Model{rgb} color names\footnote{These names represent 315 different colors.} that are basically variations of a subset of the \Index{SVG} set mentioned before, according to the file \File{rgb.txt} which is part of \Index{Unix}/\Index{X11} distributions\footnote{Again, the original definitions are given in \Model{RGB} parameters, converted to \Model{rgb} by the author.}. % We describe now how to access all 752 color names of \File{rgb.txt} without much effort: % \begin{itemize} % \item Load \Option{x11namees} as well as \Option{svgnames}. % \item Capitalise initials and skip blanks: \Color[-]{DarkSlateGray} instead of \Color[-]{dark slate gray}. % \item \Index{X11} names without numbers are identical to the corresponding \Index{SVG} colors, except in 5~cases: % use \Color{Gray0}, \Color{Grey0}, \Color{Green0}, \Color{Maroon0}, \Color{Purple0} instead of \Color[-]{Gray}, \Color[-]{Grey}, \Color[-]{Green}, \Color[-]{Maroon}, \Color[-]{Purple} to obtain the original \Index{X11} colors. % \item For $N=0,1,\dots,100$ use `|[gray]{|$N/100$|}|' or `|black!|$100-N$' instead of \Color[-]{grayN} or \Color[-]{greyN}. % \end{itemize} % \end{itemize} % The color names and corresponding displays are listed in section \vref{sec.names}. % Section \vref{sec.clash} describes how to deal with name clashs while using both \Option{svgnames} and \Option{dvipsnames} in the same document. % See also \cite{chroma} for a systematic set of color and mix examples. % % % \subsection{Color definition}\label{sec.def} % % \subsubsection{Ordinary and named colors}\label{sec.prologue} % % In the \LCP{} there is a distinction between `colors' (defined by the command |\definecolor|) and `named colors' (defined by |\DefineNamedColor|, which is allowed only in the preamble). % Whenever an ordinary color is being used in a document, it will be translated into a |\special| command that contains a --- driver-specific --- numerical description of the color which is written to the \File{.dvi} file. % On the other hand, named colors offer the opportunity to store numerical values at a central place whereas during usage, colors may be identified by their names, thus enabling post-processing if required by the output device. % % All drivers delivered with the standard \Package{graphics} package support the \emph{formalism} of defining and invoking `named colors'. % However, real support for the \emph{concept} behind that, i.e.~employing names instead of parameters, ranges from `none' to `complete'. % We demonstrate the current situation for three different drivers: % \begin{itemize} % \item \Option{dvips} has very good support for the `named' concept; the \Index{PostScript} equivalents to the color names defined by \Option{dvipsnames} are being loaded -- unless switched off -- by \Program{dvips} automatically. % However, additional names have to be made known to the \Index{PostScript} interpreter by some kind of header file. % Since version 2.01, \XC{} offers an integrated solution for this task: by invoking the package option \Option{prologue}, a \Index{PostScript} header file \File{xcolor.pro} is loaded by \Program{dvips}. % Additionally, under this option every color definition command\footnote{This is not only true for the document preamble, but for the document body as well.} (|\definecolor|, |\colorlet|, etc.) will generate some \Index{PostScript} code that is written to an auxiliary file with the extension \File{.xcp} (shortcut for \textbf{xc}olor \textbf prologue). % This file is as well loaded by \Program{dvips} as a prologue, thus making all color names available to the \Index{PostScript} interpreter. % Of course, the \File{.xcp} file may be edited before \Program{dvips} is applied, making it easy to change device-specific color parameters at a central place. % Note that the \Index{PostScript} code is designed similar to \File{color.pro}: only \emph{new} names are defined. % This allows to preload other prologue files with color definitions that are not being destroyed by \XC. % On the other hand, it requires the user to take care about redefining color names.\\ % Example: |\colorlet{foo}{red}\colorlet{foo}{blue}\color{foo}| will switch to \Color{blue} in the usual \XC{} logic, however the \File{.ps} file would display \Color{red} (unless \Color{foo} had been defined differently before).\\ % It should be stressed that this mechanism is only employed by the \Option{prologue} option. % Without that, the predefined `named' colors activated by the \Option{dvipsnames} option (without employing any tints, shades, color expressions, etc.) may be used in this way, all other `named' colors are unknown to \Index{PostScript}. % \item \Option{dvipdfm} supports only the standard \Option{dvipsnames} colors since these are hard-coded in the \Program{dvipdfm} program itself; there seems to be no way to load any user-defined prologue files. % \item \Option{pdftex} does not offer conceptual support, all `named' colors are converted immediately to their numerical representation. It therefore allows unrestricted definition and usage of named colors (although offering no added value through this). % \end{itemize} % % Typically, a \File{.dvi} viewer will have difficulties to display user-defined `named' colors. % For example, \Index{MiK\TeX}'s viewer \Program{Yap} currently displays only `named' colors from the \Option{dvipsnames} set. % Thus, whenever the \Option{prologue} option is invoked together with \Option{dvips}, \emph{all} other colors will appear black. % However, after employing \Program{dvips}, a \Index{PostScript} viewer should display the correct colors. % % % \subsubsection{Color definition in \XC} % % \DescribeMacro\definecolor % \oarg{type}\marg{name}\marg{model-list}\marg{spec-list}\footnote{Prior to version 2.00, this command was called \cs{xdefinecolor}, the latter name still being available for compatibility reasons.}\\ % This is one of the commands that may be used to assign a \Meta{name} to a specific color. % Afterwards, this color is known to the system (in the current group) and may be used in \emph{\Index{color expression}s}, as explained in section \vref{sec.term}. % It replaces both \LC's |\DefineNamedColor| and |\definecolor|. % Note that an already existing color \Meta{name} will be overwritten. % The variable |\tracingcolors| controls whether such an overwriting will be logged or not (see section \vref{sec.info} for details). % The arguments are described in section \vref{sec.term}. % Hence, valid expressions for color definitions are % \begin{itemize} % \item |\definecolor{red}{rgb}{1,0,0}|, % \item |\definecolor{red}{rgb/cmyk}{1,0,0/0,1,1,0}|, % \item |\definecolor{red}{hsb:rgb/cmyk}{1,0,0/0,1,1,0}|, % \item |\definecolor[named]{Black}{cmyk}{0,0,0,1}|, % \item |\definecolor{myblack}{named}{Black}|, % \end{itemize} % where the last command is equivalent to |\colorlet{myblack}{Black}| (see below); the second command defines \Color{red} in the \Model{rgb} or \Model{cmyk} model, depending on the current setting of the \emph{target model}, whereas the third will additionally transform the color to \Model{hsb} prior to saving. % Note that there is a special \Package{pstricks}-related version as described in section \vref{sec.pstricks}. % % \medskip % % \DescribeMacro\providecolor % \oarg{type}\marg{name}\marg{model-list}\marg{spec-list}\\ % Similar to |\definecolor|, but the color \Meta{name} is only defined if it does not exist already. % % \medskip % % \DescribeMacro\colorlet % \oarg{type}\marg{name}\oarg{num model}\marg{color}\\ % Copies the actual color which results from \Meta{color} to \Meta{name}. % If \Meta{num model} is non-empty, \Meta{color} is first transformed to the specified model, before \Meta{name} is being defined. % The pseudo model \nModel{named} is \emph{not} allowed here, it may, however, be specified in the \Meta{type} argument. % Note that an already existing color \Meta{name} will be overwritten. % % Example: we said |\colorlet{tableheadcolor}{gray!25}| in the preamble of this document. % In most of the tables we then formatted the first row by using the command |\rowcolor{tableheadcolor}|. % % % \subsubsection{Defining sets of colors} % % \DescribeMacro\definecolorset % \oarg{type}\marg{model-list}\marg{head}\marg{tail}\marg{set spec}\\ % This command facilitates the construction of \emph{\Index{color set}s}, i.e.~(possibly large) sets of individual colors with common underlying \Meta{model-list} and \Meta{type}. % Here, \Meta{set spec} = \Meta[1]{name},\Meta[1]{spec-list};\dots;\Meta[l]{name},\Meta[l]{spec-list} ($l\ge1$ name/specification-list pairs). % Individual colors are being constructed by single % \begin{center} % |\definecolor|\oarg{type}|{|\Meta{head}\Meta[\lambda]{name}\Meta{tail}|}|\marg{model-list}|{|\Meta[\lambda]{spec-list}|}| % \end{center} % commands, $\lambda=1,\dots,l$. % For example, % \begin{itemize} % \item |\definecolorset{rgb}{}{}{red,1,0,0;green,0,1,0;blue,0,0,1}|\\ % could be used to define the basic colors \Color{red}, \Color{green}, and \Color{blue};\footnote{Actually, \XC{} uses a more complicated variant to provide the basic colors for different underlying models (see the source code for the full command):\\ % \cs{definecolorset\string{rgb/hsb/cmyk/gray\string}\string{\string}\string{\string}\string{red,1,0,0/0,1,1/0,1,1,0/.3;green,...\string}}.} % \item |\definecolorset{rgb}{x}{10}{red,1,0,0;green,0,1,0;blue,0,0,1}|\\ % would define the colors \Color[-]{xred10}, \Color[-]{xgreen10}, and \Color[-]{xblue10}. % \end{itemize} % % \DescribeMacro\providecolorset % \oarg{type}\marg{model-list}\marg{head}\marg{tail}\marg{set spec}\\ % Similar to |\definecolorset|, but based on |\providecolor|, thus the individual colors are defined only if they do not exist already. % % % \subsubsection{Immediate and deferred definitions}\label{sec.deferred} % % Traditionally, the definition of a color as described above leads to the immediate construction of a command that holds at least the information needed by the driver to display the desired color. % Thus, defining 300 colors, e.g., by loading a huge set of predefined colors, will result in 300 new commands, although most of them --- except for the purpose of displaying lists of colors --- will hardly ever be used within a document. % Along the development of computer memory --- increasing in size, decreasing in price --- recent \TeX{} implementations have increased their provisions for internal memory stacks that are available for strings, control sequences, etc. % However, as memory continues to be finite, it may still be useful (or occasionally necessary) to have a method at hand that allows to reduce memory requirements a bit. % This is the point where \emph{deferred color definition} comes into play. % Its principle is simple: for every definition of this type (e.g., via |\preparecolor|), all necessary information is saved on a specific global \emph{\Index{definition stack}}, where it can be taken from later (e.g., via |\definecolors|) in order to construct the actual color command. % % Note that the following commands are only to be used in the document preamble, since the definition stack of colors for deferred definitions is deleted at the begin of the document body --- in order to save memory. % % \medskip % % \DescribeMacro\preparecolor % \oarg{type}\marg{name}\marg{model-list}\marg{spec-list}\\ % Similar to |\definecolor|, but the color \Meta{name} is not yet being defined: the arguments \Meta{model-list} and \Meta{spec-list} are evaluated immediately, then all necessary parameters (i.e.~\Meta{type}, \Meta{name}, \Meta{model}, \Meta{spec}) are put onto the \emph{\Index{definition stack}} for later usage. % % \medskip % % \DescribeMacro\preparecolorset % \oarg{type}\marg{model-list}\marg{head}\marg{tail}\marg{set spec} % \DescribeMacro\ifdefinecolors\\ % Similar to |\definecolorset|, but depending on the |\ifdefinecolors| switch: if set to `true', to each element of the set the command |\definecolor| (i.e.~immediate definition) is applied; if set to `false', |\preparecolor| (i.e.~deferred definition) is applied. % For example, the package option \Option{svgnames} performs something like |\definecolorstrue\preparecolorset|, whereas \Option{svgnames*} acts like |\definecolorsfalse\preparecolorset|. % Both options set |\definecolorstrue| at the end, in order to have a proper starting point for other color sets. % % \medskip % % \DescribeMacro\DefineNamedColor % \marg{type}\marg{name}\marg{model-list}\marg{spec-list} % is provided mainly for compatibility reasons, especially to support the predefined colors in \File{dvipsnam.def}. % It is the same as \Meta{cmd}\oarg{type}\marg{name}\marg{model}\marg{spec}, where \Meta{cmd} is either |\definecolor| or |\preparecolor|, depending on the state of |\ifdefinecolors|. % Note that \LC's restriction to allow |\DefineNamedColor| only in the document preamble has been abolished in \XC. % % \medskip % % \DescribeMacro\definecolors % \marg{id-list}\\ % Recall that \Meta{id-list} has the form \Meta[1]{ext id}|,...,|\Meta[l]{ext id} where each \Meta[\lambda]{ext id} is either an identifier \Meta[\lambda]{id} or an assignment \Meta[\lambda']{id}|=|\Meta[\lambda]{id}. % We consider the first case to be an abbreviation for \Meta[\lambda]{id}|=|\Meta[\lambda]{id} and describe the general case: % the \Index{definition stack} is searched for the name \Meta[\lambda]{id} and its corresponding color parameters; if there is no match, nothing happens; if the name \Meta[\lambda]{id} is on the stack and its color parameters are \Meta[\lambda]{type}, \Meta[\lambda]{model}, and \Meta[\lambda]{spec}, then the command |\definecolor[|\Meta[\lambda]{type}|]{|\Meta[\lambda']{id}|}{|\Meta[\lambda]{model}|}{|\Meta[\lambda]{spec}|}| is executed. % Thus, the user may control by which names the \emph{prepared} colors are to be used in the document. % Note that the entry \Meta[\lambda]{id} is not removed from the stack, such that it can be used several times (even within the same |\definecolors| command). % % \medskip % % \DescribeMacro\providecolors % \marg{id-list}\\ % Similar to |\definecolors|, but based on |\providecolor|, thus the individual colors are defined only if they do not exist already. % % % \subsubsection{Global color definitions} % % \DescribeMacro\ifglobalcolors % By default, definitions via |\definecolor|, |\providecolor|, \dots{} are available only within the current group. % By setting |\globalcolorstrue|, all such definitions are being made globally available --- until the current group ends.\footnote{The switch may also be set in the preamble in order to control the whole document.} % \DescribeMacro\xglobal % Another method to specify that an individual color definition is to be made global is to prefix it by |\xglobal|, e.g., |\xglobal\definecolor{foo}...|. % % % % \subsection{Color application} % % \subsubsection{Standard color commands} % % Here is the list of user-level color commands, as known from the \LCP, but with an extended syntax for the colors, allowing for expressions etc.:\\ % \DescribeMacro\color\marg{color}\\ % \oarg{model-list}\marg{spec-list}\\ % Switches to the color given either by name/expression or by model/specification. % This color will stay in effect until the end of the current \TeX\ group.\\ % \DescribeMacro\textcolor\marg{color}\marg{text}\\ % \oarg{model-list}\marg{spec-list}\marg{text}\\ % are just alternative syntax for |\color|, in which the groups are added implicitly. % Thus \meta{text} appears in the specified color, but then the color reverts to its previous value. % Additionally, it calls |\leavevmode| to ensure the start of horizontal mode.\\ % \DescribeMacro\pagecolor\marg{color}\\ % \oarg{model-list}\marg{spec-list}\\ % Specifies the background color for the current, and all following, pages. % It is a global declaration which does not respect \TeX\ groups. % % Remark: all of these commands except |\color| require that the \Meta{color} resp.\ \Meta{spec} arguments are put into curly braces |{}|, even if they are buried in macros. % % For example, after |\def\foo{red}|, one may say |\color\foo|, but one should always write |\textcolor{\foo}{bar}| instead of |\textcolor\foo{bar}| in order to avoid strange results. % % Note that color-specific commands from other packages may give unexpected results if directly confronted with color expressions (e.g., \Package{soul}'s |\sethlcolor| and friends). % However, one can turn the expression into a name via |\colorlet| and try to use that name instead. % % % \subsubsection{Colored boxes}\label{sec.fbox} % % \DescribeMacro\colorbox\marg{color}\marg{text}\\ % \oarg{model-list}\marg{spec-list}\marg{text}\\ % Takes the same argument forms as |\textcolor|, but the color specifies the \emph{background} color of the box.\\ % \DescribeMacro\fcolorbox\marg{frame color}\marg{background color}\marg{text}\\ % \oarg{model-list}\marg{frame spec-list}\marg{background spec-list}\marg{text}\\ % \oarg{fr.~model-list}\marg{fr.~spec-list}\oarg{backgr.~model-list}\marg{backgr.~spec-list}\marg{text}\\ % \marg{frame color}\oarg{background model-list}\marg{background spec-list}\marg{text}\\ % Puts a frame of the first color around a box with a background specified by the second color. % If only the first optional argument is given, it specifies the color model for both colors. % Besides the possibility to specify color \emph{expressions} as arguments, |\fcolorbox| now offers more flexibility for its arguments than the \LC{} version: % \begin{itemize} % \item \fcolorbox{gray}{yellow}{test} |\fcolorbox{gray}{yellow}{test}|, % \item \fcolorbox[cmyk]{0,0,0,0.5}{0,0,1,0}{test} |\fcolorbox[cmyk]{0,0,0,0.5}{0,0,1,0}{test}|, % \item \fcolorbox[gray]{0.5}[wave]{580}{test} |\fcolorbox[gray]{0.5}[wave]{580}{test}|, % \item \fcolorbox{gray}[wave]{580}{test} |\fcolorbox{gray}[wave]{580}{test}|. % \end{itemize} % Additionally, |\fcolorbox| uses a new approach to frame drawing, which is an extension of \People{Donald}{Arseneau}'s suggestion in bug report latex/3655 \cite{fbox}. % The main difference to \LaTeX's implementation is that box construction and frame drawing are split into separate operations, such that the frame is drawn \emph{after} the box contents has been constructed. % This ensures that the frame is always on top of the box. % \People{Donald}{Arseneau} improved speed as well as memory requirements of this approach. % Furthermore, a new macro is introduced: % % \DescribeMacro\boxframe\marg{width}\marg{height}\marg{depth}\\ % Draws a frame with a linewidth of |\fboxrule|. % Returns a |\hbox| with outer dimensions \meta{width}, \meta{height}, \meta{depth}. % By this approach, a frame-primitive may also be provided by a driver file, in order to exploit driver-specific drawing facilities (see below). % Again, this macro was optimised by \People{Donald}{Arseneau}. % % The new frame approach is used for |\fcolorbox| as well as \LaTeX's |\fbox| and |\framebox| commands, unless the \Option{kernelfbox} option is specified, which returns to \LaTeX's original definitions of |\f(rame)box|. % % Option \Option{xcdraw} uses \Index{PostScript} commands to draw frames and color boxes in case of the \Option{dvips} driver and \Index{PDF} code to draw frames in case of the \Option{pdftex} and \Option{dvipdfm} drivers. % This is still experimental code that may confuse \File{.dvi} viewers. % The opposite option \Option{noxcdraw} forces usage of the generic (driver-independent) code. % % % \subsubsection{Using the current color} % % Within a color expression, `.' serves as a placeholder for the current color. % See figure \vref{fig.cc} for an example. % % It is also possible to save the current color for later use, e.g., via the command |\colorlet{foo}{.}|. % % Note that in some cases the current color is of rather limited use, e.g., the construction of an |\fcolorbox| implies that at the time when the \Meta{background color} is evaluated, the current color equals the \Meta{frame color}; in this case `|.|' does not refer to the current color \emph{outside} the box. % % % \subsubsection{Color testing} % % \DescribeEnv{testcolors} % \oarg{num models}\\ % This is a simple tabular environment in order to test (display) colors in different models, showing both the visual result and the model-specific parameters. % The optional \Meta{num models} argument is a comma-separated list of \emph{numerical} color models (as usual without spaces) which form the table columns; the default list is % {\makeatletter\ttfamily\let\@protected@testopt\@gobbletwo\edef\tmp{\testcolors}\expandafter\@firstofone\tmp}. % % \DescribeMacro\testcolor % \marg{color}\\ % \oarg{model-list}\marg{spec-list}\\ % Each |\testcolor| command generates a table row, containing a display sample plus the respective parameters for each of the models. % If the column-model matches the model of the color in question, its parameters are underlined. % Note that this command is only available within the |testcolors| environment. % % For applications see figure \vref{fig.testcolors} and figures \ref{fig.tHsb}, \ref{fig.harmony}. % % % % \subsection{Color blending} % % The purpose of \emph{color blending} is to add some mixing color (expression) to all subsequent explicit color commands. % Thus, it is possible to perform such a mix (or blend) operation for many colors without touching the individual commands. % % \medskip % % \DescribeMacro\blendcolors % \marg{mix expr}\\ % \DescribeMacro{\blendcolors*} % \marg{mix expr}\\ % Initialises all necessary parameters for color blending. % The actual (completed) color blend expression is stored in |\colorblend|. % In the starred version, the argument will be appended to a previously defined blend expression. % An empty \Meta{mix expr} argument will switch blending off. % % Example: after |\blendcolors{!50!yellow}|, the colors \testclr{red} \testclr{green} \testclr{blue} are transformed into {\blendcolors{!50!yellow}\testclr{red} \testclr{green} \testclr{blue}, an additional |\blendcolors*{!50}| yields \blendcolors*{!50}\testclr{red} \testclr{green} \testclr{blue}}. % \DescribeMacro\xglobal % In order to achieve global scope, |\blendcolors| may be prefixed by |\xglobal|. % % Remark: color blending is applied only to \emph{explicit} color commands, i.e.~|\color|, |\fcolorbox| and the like. % In the previous example the frames are not being blended because their color is set by an driver-internal command (switching back to the `current color'). % Thus, to influence these \emph{implicit} colors as well, we have to set the current color \emph{after} the blending: % |\blendcolors{!50!yellow}\color{black}| results in {\blendcolors{!50!yellow}\color{black}\testclr{red} \testclr{green} \testclr{blue}, an additional |\blendcolors*{!50}\color{black}| yields \blendcolors*{!50}\color{black}\testclr{red} \testclr{green} \testclr{blue}}. % % % % \subsection{Color masks and separation} % % The purpose of \emph{color separation} is to represent all colors that appear in the document as a combination of a finite subset of base colors and their tints. % Most prominent is \Model{cmyk} separation, where the base colors are \Color{cyan}, \Color{magenta}, \Color{yellow}, and \Color{black}, as required by the printers. % This can be done by choosing the package option \Option{cmyk}, such that all colors will be converted in this model, and post-processing the output file. % We describe now another --- and more general --- solution: \emph{color masking}. % How does it work? % Color masking is based on a specified color model \Meta{m-model} and a parameter vector \Meta{m-spec}. % Whenever a color is to be displayed in the document, it will first be converted to \Meta{m-model}, afterwards each component of the resulting color vector will be multiplied by the corresponding component of \Meta{m-spec}. % For example, let's assume that \Meta{m-model} equals |cmyk|, and \Meta{m-spec} equals $(\mu_c,\mu_m,\mu_y,\mu_k)$. % Then an arbitrary color \Color{foo} will be transformed according to % \begin{gather} % \Color{foo} \mapsto (c,m,y,k) \mapsto (\mu_c\cdot c,\mu_m\cdot m,\mu_y\cdot y,\mu_k\cdot k) % \end{gather} % Obviously, color separation is a special case of masking by the vectors $(1,0,0,0)$, $(0,1,0,0)$, etc. % An interesting application is to shade or tint all colors by masking them with $(x,x,x)$ in the \Model{rgb} or \Model{cmy} model, see the last two rows in figure \vref{fig.mask}. % % \medskip % % \DescribeMacro\maskcolors % \oarg{num model}\marg{color}\\ % Initialises all necessary parameters for color masking: % if \Meta{num model} is not specified (or empty), \Meta{m-model} will be set to the natural model of \Meta{color}, otherwise to \Meta{num model}; % the color specification of \Meta{color} is extracted to define \Meta{m-spec}. % Additionally, |\maskcolorstrue| is performed. % \DescribeMacro\ifmaskcolors % Color masking can be switched off temporarily by |\maskcolorsfalse|, or --- in a more radical way --- by |\maskcolors{}|, which in addition clears the initialisation parameters. % \DescribeMacro\xglobal % In general, the scope of |\maskcolors| is the current group (unless it is prefixed by the |\xglobal| command), but it may be used in the document preamble as well. % The final remark of the color blending section applies here similarly. % % Now it is easy to separate a complete document without touching the source code: % |latex| |\def\xcolorcmd{\maskcolors[cmyk]{cyan}}\input{a}| will do the \Color{cyan} part of the job for |a.tex|. % % \DescribeMacro\colormask % Caution: \XC{} has no idea about colors in files that are included via the command |\includegraphics|, e.g., images of type \File{.eps}, \File{.pdf}, \File{.jpg}, or \File{.png}. % Such files have to be separated separately. % Nevertheless, \XC{} offers some basic support by storing the mask color in |\colormask|, which can be used to decide which file is to be included: % \begin{verbatim} % \def\temp{cyan}\ifx\colormask\temp \includegraphics{foo_c}\else % \def\temp{magenta}\ifx\colormask\temp \includegraphics{foo_m}\else % ... % \fi\fi % \end{verbatim} % % % % \subsection{Color series}\label{sec.series} % % Automatic coloring may be useful in graphics or chart applications, where a --- potentially large and unspecified --- number of colors are needed, and the user does not want or is not able to specify each individual color. % Therefore, we introduce the term \emph{color series}, which consists of a base color and a scheme, how the next color is being constructed from the current color. % % The practical application consists of three parts: % definition of a color series (usually once in the document), initialisation of the series (potentially several times), and application --- with or without stepping --- of the current color of the series (potentially many times). % % % \subsubsection{Definition of a color series} % % \DescribeMacro\definecolorseries % \marg{name}\marg{core model}\marg{method}\oarg{b-model}\marg{b-spec}\oarg{s-model}\marg{s-spec}\\ % Defines a color series called \Meta{name}, whose calculations are performed within the color model \Meta{core model}, where \Meta{method} selects the algorithm (one of |step|, |grad|, |last|, see below). % The method details are determined by the remaining arguments: % \begin{itemize} % \item \oarg{b-model}\marg{b-spec} specifies the \emph{base} (= first) color in the algorithm, either directly, e.g., |[rgb]{1,0.5,0.5}|, or as a \Meta{color}, e.g., |{-yellow!50}|, if the optional argument is missing. % \item \oarg{s-model}\marg{s-spec} specifies how the \emph{step} vector is calculated in the algorithm, according to the chosen \Meta{method}: % \begin{itemize} % \item |step|,\ |grad|:\ the optional argument is meaningless, and \Meta{s-spec} is a parameter vector whose dimension is determined by \Meta{core model}, e.g., |{0.1,-0.2,0.3}| in case of |rgb|, |cmy|, or |hsb|. % \item |last|:\ the last color is specified either directly, e.g., |[rgb]{1,0.5,0.5}|, or as a \Meta{color}, e.g., |{-yellow!50}|, if the optional argument is missing. % \end{itemize} % \end{itemize} % This is the general scheme: % \begin{gather} % \emph{color}_1 := \emph{base},\qquad % \emph{color}_{n+1} := U\bigl(\emph{color}_{n} + \emph{step}\bigr) % \end{gather} % for $n=1,2,\dots$, where $U$ maps arbitrary real $m$-vectors into the unit $m$-cube: % \begin{gather} % U(x_1,\dots,x_m) = (u(x_1),\dots,u(x_m)),\qquad % u(x) = % \begin{cases} % 1 & \text{if $x=1$}\\ % x-[x]& \text{if $x\neq1$}\\ % \end{cases}\label{eq.U} % \end{gather} % Thus, every step of the algorithm yields a valid color with parameters from the interval $[0,1]$. % % \medskip % Now, the different methods use different schemes to calculate the \emph{step} vector: % \begin{itemize} % \item |step|,\ |grad|:\ the last argument, \marg{s-spec}, defines the directional vector \emph{grad}. % \item |last|:\ \marg{s-spec} resp.\ \oarg{s-model}\marg{s-spec} defines the color parameter vector \emph{last}. % \end{itemize} % Then, during |\resetcolorseries|, the actual \emph{step} vector is calculated: % \begin{gather} % \emph{step} := % \begin{cases} % \emph{grad} & \text{if $\Meta{method} = |step|$}\\ % \frac1{\Meta{div}}\cdot\emph{grad} & \text{if $\Meta{method} = |grad|$}\\ % \frac1{\Meta{div}}\cdot(\emph{last}-\emph{base}) & \text{if $\Meta{method} = |last|$}\\ % \end{cases}\label{eq.cs} % \end{gather} % Please note that it is also possible to use the current color placeholder `.' within the definition of color series. % Thus, |\definecolorseries{foo}{rgb}{last}{.}{-.}| will set up a series that starts with the current color and ends with its complement. % Of course, similar to \TeX's |\let| primitive, the \emph{current} definition of the current color at the time of execution is used, there is no relation to current colors in any later stage of the document. % % % \subsubsection{Initialisation of a color series} % % \DescribeMacro\resetcolorseries % \oarg{div}\marg{name}\\ % This command has to be applied at least once, in order to make use of the color series \Meta{name}. % It resets the current color of the series to the base color and calculates the actual step vector according to the chosen \Meta{div}, a non-zero real number, for the methods |grad| and |last|, see equation (\ref{eq.cs}). % \DescribeMacro\colorseriescycle % If the optional argument is empty, the value stored in the macro |\colorseriescycle| is applied. % Its default value is \colorseriescycle, which can be changed by |\def\colorseriescycle|\marg{div}, applied \emph{before} the \XCP{} is loaded (similar to |\rangeRGB| and friends). % The optional argument is ignored in case of the |step| method. % % % \subsubsection{Application of a color series} % % There are two ways to display the current color of a color series: % any of the \emph{color expressions} in section \vref{sec.term} used within a |\color|, |\textcolor|, \dots{} command will display this color according to the usual syntax of such expressions. % However, in the cases when \Meta{postfix} equals `|!!+|', |\color{|\Meta{name}|!!+}| etc., will not only display the color, but it will also perform a step operation. % Thus, the current color of the series will be changed in that case. % An expression |\color{|\Meta{name}|!![|\Meta{num}|]}| enables direct access to an element of a series, where \Meta{num} = $0,1,2,\dots$, starting with~0 for the base color. % See figure \vref{fig.csx} for a demonstration of different methods. % % % \subsubsection{Differences between colors and color series} % % Although they behave similar if applied within color expressions, the objects defined by |\definecolor| and |\definecolorseries| are fundamentally different with respect to their scope/availability: % like \LC's original |\definecolor| command, |\definecolor| generates \emph{local} colors, whereas |\definecolorseries| generates \emph{global} objects (otherwise it would not be possible to use the stepping mechanism within tables or graphics conveniently). % E.g., if we assume that |bar| is an undefined color, then after saying % \begin{verbatim} % \begingroup % \definecolorseries{foo}{rgb}{last}{red}{blue} % \resetcolorseries[10]{foo} % \definecolor{bar}{rgb}{.6,.5,.4} % \endgroup % \end{verbatim} % commands like |\color{foo}| or |\color{foo!!+}| may be used without restrictions, whereas |\color{bar}| will give an error message. % However, it is possible to say |\colorlet{bar}{foo}| or |\colorlet{bar}{foo!!+}| in order to save the current color of a series locally --- with or without stepping. % % % % % \subsection{Border colors for hyperlinks}\label{sec.hyperref} % % The \Package{hyperref} package offers all kinds of support for hyperlinks, pdfmarks etc. % There are two standard ways to make hyperlinks visible (see the package documentation \cite{hyperref} for additional information on how to set up these features): % \begin{itemize} % \item print hyperlinks in a different color than normal text, using the keys \Key{citecolor}, \Key{filecolor}, \Key{linkcolor}, \Key{menucolor}, \Key{pagecolor}, \Key{runcolor}, \Key{urlcolor} with color expressions, e.g., |\hypersetup{urlcolor=-green!50}|; % \item display a colored border around hyperlinks, using the keys \Key{citebordercolor}, \Key{filebordercolor}, \Key{linkbordercolor}, \Key{menubordercolor}, \Key{pagebordercolor}, \Key{runbordercolor}, \Key{urlbordercolor} with explicit numerical \Model{rgb} parameter specification, e.g., |\hypersetup{urlbordercolor={1 0.5 0.25}}|. % \end{itemize} % Obviously, the second method is somewhat inconvenient since it does not allow for color names or even color expressions. % Therefore, \XC{} provides --- via the package option \Option{hyperref} --- a set of extended keys \Key{xcitebordercolor}, \Key{xfilebordercolor}, \Key{xlinkbordercolor}, \Key{xmenubordercolor}, \Key{xpagebordercolor}, \Key{xrunbordercolor}, \Key{xurlbordercolor} which are being used in conjunction with color expressions, e.g., |\hypersetup{xurlbordercolor=-green!50}|. % % Another new key, \Key{xpdfborder}, provides a way to deal with a \Program{dvips}-related problem: % for most of the drivers, a setting like |pdfborder={0 0 1}| will determine the width of the border that is drawn around hyperlinks in points. % However, in the \Program{dvips} case, the numerical parameters are interpreted in relation to the chosen output resolution for processing the \File{.dvi} file into a \File{.ps} file. % Unfortunately, at the time when the \File{.dvi} is constructed, nobody knows if and at which resolution a transformation into \File{.ps} will take place afterwards. % Consequently, any default value for \Key{pdfborder} may be useful or not. % Within \Package{hyperref}, the default for \Program{dvips} is |pdfborder={0 0 12}|, which works fine for a resolution of 600 or 1200 dpi, but which produces an invisible border for a resolution of 8000 dpi, as determined by the command-line switch |-Ppdf|. % On the other hand, setting |pdfborder={0 0 80}| works fine for \Program{dvips} at 8000 dpi, but makes a document unportable, since other drivers (or even |dvips| in a low resolution) will draw very thick boxes in that case. % This is were the \Key{xpdfborder} key comes in handy: it rescales its arguments for the |dvips| case by a factor 80 (ready for 8000 dpi) and leaves everything unchanged for other drivers. % Thus one can say |xpdfborder={0 0 1}| in a driver-independent way. % % % % \subsection{Additional color specification in the \Package{pstricks} world}\label{sec.pstricks} % % For \Package{pstricks} users, there are different ways of invoking colors within command option keys: % \begin{itemize} % \item |\psset{linecolor=green!50}| % \item |\psset{linecolor=[rgb]{0.5,1,0.5}}| % \item |\psframebox[linecolor={[rgb]{0.5,1,0.5}}]{foo}| % \end{itemize} % Note the additional curly braces in the last case; without them, the optional argument of |\psframebox| would be terminated too early. % % \DescribeMacro\definecolor % |[ps]|\marg{name}\marg{core model-list}\marg{code}\\ % Stores \Index{PostScript} \Meta{code} --- that should not contain slash~`|/|' characters --- within a color. % Example: % after |\definecolor[ps]{foo}{rgb}{bar}|, the \Package{pstricks} command |\psline[linecolor=foo]...| inserts `|bar setrgbcolor|' where the linecolor information is required --- at least in case of the \Option{dvips} driver. % See also \href{xcolor2.pdf}{\File{xcolor2.tex}} for an illustrative application. % % % % \subsection{Color in tables} % % \DescribeMacro\rowcolors % \oarg{commands}\marg{row}\marg{odd-row color}\marg{even-row color}\\ % \DescribeMacro{\rowcolors*} % \oarg{commands}\marg{row}\marg{odd-row color}\marg{even-row color}\\ % One of these commands has to be executed \emph{before} a table starts. % \Meta{row} tells the number of the first row which should be colored according to the \Meta{odd-row color} and \Meta{even-row color} scheme. % Each of the color arguments may also be left empty (= no color). % In the starred version, \Meta{commands} are ignored in rows with inactive \emph{rowcolors status} (see below), whereas in the non-starred version, \Meta{commands} are applied to every row of the table. % Such optional commands may be |\hline| or |\noalign|\marg{stuff}. % % \DescribeMacro\showrowcolors % \DescribeMacro\hiderowcolors % The \emph{rowcolors status} is activated (i.e., use coloring scheme) by default and/or |\showrowcolors|, it is inactivated (i.e., ignore coloring scheme) by the command |\hiderowcolors|. % \DescribeMacro\rownum % The counter |\rownum| may be used within such a table to access the current row number. % An example is given in figure \vref{fig.row}. % These commands require the \Option{table} option (which loads the \Package{colortbl} package). % % Note that table coloring may be combined with color series. % This method was used to construct the examples in figure \vref{fig.csx}. % % % % \subsection{Color information}\label{sec.info} % % \DescribeMacro\extractcolorspec % \marg{color}\marg{cmd}\\ % Extracts the color specification of \Meta{color} and puts it into \Meta{cmd}; equivalent to |\def\cmd{|\marg{model}\marg{spec}|}|. % % \DescribeMacro\extractcolorspecs % \marg{color}\marg{model-cmd}\marg{color-cmd}\\ % Extracts the color specification of \Meta{color} and puts it into \Meta{model-cmd} and \Meta{color-cmd}, respectively. % % \medskip % \DescribeMacro\tracingcolors % |=|\Meta{int}\\ % Controls the amount of information that is written into the |log| file: % \begin{itemize} % \item \mbox{$\Meta{int}\le0$:}~no specific color logging. % \item \mbox{$\Meta{int}\ge1$:}~ignored color definitions due to |\providecolor| are logged. % \item \mbox{$\Meta{int}\ge2$:}~multiple (i.e.~overwritten) color definitions are logged. % \item \mbox{$\Meta{int}\ge3$:}~every command that defines a color will be logged. % \item \mbox{$\Meta{int}\ge4$:}~every command that sets a color will be logged. % \end{itemize} % Like \TeX's |\tracing...| commands, this command may be used globally (in the document preamble) or locally/block-wise. % The package sets |\tracingcolors=0| as default. % Remark: since registers are limited and valuable, no counter is wasted for this issue. % % Note that whenever a color is used that has been defined via \LC's |\definecolor| command rather than \XC's new |\definecolor| and friends, a warning message `Incompatible color definition' will be issued.\footnote{This should not happen since usually there is no reason to load \LC{} in parallel to \XC{}.} % % % % \subsection{Color conversion} % % \DescribeMacro\convertcolorspec % \marg{model}\marg{spec}\marg{target model}\marg{cmd}\\ % Converts a color, given by the \Meta{spec} in model \Meta{model}, into \Meta{target model} and stores the new color specification in |\cmd|. % \Meta{target model} must be of type \Meta{num model}, whereas \Meta{model} may also be `named', in which case \Meta{spec} is simply the name of the color. % % Example: |\convertcolorspec{cmyk}{0.81,1,0,0.07}{HTML}\tmp| acts like |\def| |\tmp{1F00ED}|. % % % % \subsection{Problems and solutions} % % \subsubsection{Name clashs between \Option{dvipsnames} and \Option{svgnames}}\label{sec.clash} % % Due to the fixed option processing order (which does not depend on the order how the options were specified in the |\usepackage| command), the \Option{svgnames} colors will always overrule \Option{dvipsnames} colors with identical names. % This can lead to undesired results if both options are used together. % For instance, \Color{Fuchsia} yields \testclr[cmyk]{0.47,0.91,0,0.08} under the regime of \Option{dvipsnames} and \testclr[rgb]{1,0,1} with respect to \Option{svgnames}. % However, there is a simple trick --- based on \emph{deferred color definition} --- that allows us to use colors from both sets in the desired way: % \begin{verbatim} % \usepackage[dvipsnames*,svgnames]{xcolor} % \definecolors{Fuchsia} % \end{verbatim} % Now all colors from the \Index{SVG} set are available (except \Color{Fuchsia}) plus \Color{Fuchsia} from the other set. % % \subsubsection{Page breaks and pdf\TeX}\label{sec.fixpdftex} % % Since pdf\TeX{} does not maintain a \emph{\Index{color stack}} --- in contrast to \Program{dvips} --- a typical problem is the behaviour of colors in the case of page breaks, as illustrated by the following example: % \begin{verbatim} % \documentclass{minimal} % \usepackage{xcolor} % \begin{document} % black\color{red}red1\newpage red2\color{black}black % \end{document} % \end{verbatim} % This works as expected with |dvips|, i.e., `red1' and `red2' being \Color{red}, however, with |pdftex|, `red2' is displayed in \Color{black}. % The problem may be solved by using the \Option{fixpdftex} option which simply loads Heiko Oberdiek's \Package{pdfcolmk} package \cite{pdfcolmk}. % However, its author also lists some limitations: % \begin{itemize} % \item Mark limitations: page breaks in math. % \item LaTeX's output routine is redefinded. % \begin{itemize} % \item Changes in the output routine of newer versions of LaTeX are not detected. % \item Packages that change the output routine are not supported. % \end{itemize} % \item It does not support several independent text streams like footnotes. % \end{itemize} % % \subsubsection{Change color of included \File{.eps} file}\label{sec.fixinclude} % % In general, \XC{} cannot change colors of an image that is being included via the |\includegraphics| command from the \Package{graphics} or \Package{graphicx} package. % There is, however, a limited opportunity to influence the current color of included \Index{PostScript} files. % Consider the following file |foo.eps| which draws a framed gray box: % \begin{verbatim} % %!PS-Adobe-3.0 EPSF-3.0 % %%BoundingBox: 0 0 60 12 % 0 0 60 12 rectfill % 0.75 setgray % 2 2 56 8 rectfill % \end{verbatim} % Now run the following code through \LaTeX{} and \Program{dvips}: % \begin{verbatim} % \documentclass{minimal} % \usepackage[fixinclude]{xcolor} % \usepackage{graphics} % \begin{document} % \includegraphics{foo} \textcolor{red}{\includegraphics{foo}} % \end{document} % \end{verbatim} % The resulting \File{.ps} file will display two gray boxes: the first with a black frame, the second with a red frame. % If we had omitted the \Option{fixinclude} option, the second box would also display a black frame. % This is because \Program{dvips} usually resets the current color to black immediately before including an \File{.eps} file. % % % % % \clearpage % \begin{adjustwidth}{-2.5cm}{} % \section{Examples} % % % \begin{figure}[htbp]\caption{Color spectrum}\label{fig.spectrum} % \small % \newcount\WL \unitlength.75pt % \begin{picture}(460,60)(355,-10) % \sffamily \tiny \linethickness{1.25\unitlength} \WL=360 % \multiput(360,0)(1,0){456}% % {{\color[wave]{\the\WL}\line(0,1){50}}\global\advance\WL1} % \linethickness{0.25\unitlength}\WL=360 % \multiput(360,0)(20,0){23}% % {\picture(0,0) % \line(0,-1){5} \multiput(5,0)(5,0){3}{\line(0,-1){2.5}} % \put(0,-10){\makebox(0,0){\the\WL}}\global\advance\WL20 % \endpicture} % \end{picture} % \vspace*{3ex} % \begin{verbatim} % \newcount\WL \unitlength.75pt % \begin{picture}(460,60)(355,-10) % \sffamily \tiny \linethickness{1.25\unitlength} \WL=360 % \multiput(360,0)(1,0){456}% % {{\color[wave]{\the\WL}\line(0,1){50}}\global\advance\WL1} % \linethickness{0.25\unitlength}\WL=360 % \multiput(360,0)(20,0){23}% % {\picture(0,0) % \line(0,-1){5} \multiput(5,0)(5,0){3}{\line(0,-1){2.5}} % \put(0,-10){\makebox(0,0){\the\WL}}\global\advance\WL20 % \endpicture} % \end{picture} % \end{verbatim} % \end{figure} % % % \begin{figure}[htbp]\caption{Color testing}\label{fig.testcolors} % \small % \begin{adjustwidth}{-2.5cm}{} % \raggedleft % \sffamily % \begin{testcolors}[rgb,cmyk,hsb,HTML,gray] % \testcolor{olive} % \testcolor{red!50!green} % \testcolor{-cyan!50!magenta} % \testcolor[cmyk]{0,0,1,0.5} % \testcolor[cmyk]{0,0,.5,.5} % \testcolor[rgb:cmyk]{0,0,.5,.5} % \end{testcolors} % \end{adjustwidth} % \vspace*{3ex} % \begin{adjustwidth}{2.5cm}{} % \begin{verbatim} % \sffamily % \begin{testcolors}[rgb,cmyk,hsb,HTML,gray] % \testcolor{olive} % \testcolor{red!50!green} % \testcolor{-cyan!50!magenta} % \testcolor[cmyk]{0,0,1,0.5} % \testcolor[cmyk]{0,0,.5,.5} % \testcolor[rgb:cmyk]{0,0,.5,.5} % \end{testcolors} % \end{verbatim} % \end{adjustwidth} % \end{figure} % % % \def\ukColor{MyGreen} % \definecolor{\ukColor}{cmyk}{0.92,0,0.87,0.09} % \colorlet{\ukColor-rgb}[rgb]{\ukColor} % \colorlet{\ukColor-cmy}[cmy]{\ukColor} % \colorlet{\ukColor-hsb}[hsb]{\ukColor} % \colorlet{\ukColor-gray}[gray]{\ukColor} % % \begin{figure}[htbp]\caption{Progressing from one to another color}\label{fig.progress} % \small % \begin{adjustwidth}{-2.5cm}{} % \makeatletter % \def\ColorLoop#1#2{\@tfor\@@tmp:={}{-rgb}{-cmy}{-hsb}{-gray}\do % {\ifcase#1 % \expandafter\Colorloop\expandafter{\expandafter\ukColor\@@tmp}{#2}\or % \expandafter\Colorshow\expandafter{\expandafter\ukColor\@@tmp}\fi}\\[-2ex]\ignorespaces} % \def\Colorloop#1#2{\@ifxempty{#1}{}{\texttt{#1!}}& % \count@105 \@whilenum\count@>\z@\do % {\advance\count@-5 % \@ifxempty{#1}{\hb@xt@\XCdim{\hss\textsf{\the\count@}\hss}}{\testclr{#1!\the\count@!#2}}\hskip-\fboxrule}\hskip\fboxrule& % \@ifxempty{#1}{}{\texttt{!#2}}\\} % \def\Colorshow#1{\texttt{#1}& % \multicolumn2{l@{}}{\expandafter\let\expandafter\@@tmp\csname\string\color@#1\endcsname % \edef\@@tmp{\expandafter\@gobbletwo\@@tmp}\Meaning{@@tmp}}\\} % \makeatother % \sbox0{\testclr{red}}\XCdim\wd0 % \begin{tabular}{@{}lll@{}} % \Colorloop{}{}\\[-2ex] % \ColorLoop0{white} % \ColorLoop0{gray} % \ColorLoop0{black} % \ColorLoop0{red} % \ColorLoop0{blue} % \ColorLoop0{yellow} % \\\noalign{\vspace*{-2.5ex}}\hline\noalign{\vspace*{1.5ex}} % \itshape Color&\itshape Definition/representation (\textup{\Option{\csname XC@@drv\endcsname}} driver)\\ % \ColorLoop1{} % \end{tabular} % \end{adjustwidth} % \end{figure} % % % \begin{figure}[htbp]\caption{Target color model}\label{fig.tgt} % \small % \begin{adjustwidth}{-2.5cm}{} % \raggedleft % \extrarowheight2pt % \makeatletter % \def\X#1% % {\def\tmp{{#1}}\dots\Meaning{tmp}& % \selectcolormodel{#1}\testclr{red} \testclr{green} \testclr{blue} \testclr{cyan} \testclr{magenta} \testclr{yellow} \testclr{brown} \testclr{lime} \testclr{olive} \testclr{orange} \testclr{pink} \testclr{purple} \testclr{teal} \testclr{violet} \testclr{black} \testclr{darkgray} \testclr{gray} \testclr{lightgray} \testclr{white}\\} % \makeatother % \begin{tabular}{@{}>{\ttfamily}l@{ }l@{}} % \string\selectcolormodel&\\ % \X{natural} % \X{rgb} % \X{cmy} % \X{cmyk} % \X{hsb} % \X{gray} % \end{tabular} % \end{adjustwidth} % \end{figure} % % % \begin{figure}[htbp]\caption{Standard color expressions}\label{fig.expr} % \centering\small % \def\test#1{\testclr{#1}& \texttt{#1}} % \def\X#1{\test{#1}& \test{-#1}} % \begin{tabular}{@{}l@{ \ }ll@{ \ }l@{}} % \X{red}\\ % \X{red!75}\\ % \X{red!75!green}\\ % \X{red!75!green!50}\\ % \X{red!75!green!50!blue}\\ % \X{red!75!green!50!blue!25}\\ % \X{red!75!green!50!blue!25!gray}\\ % \end{tabular} % \end{figure} % % % \begin{figure}[htbp]\caption{Standard color expressions}\label{fig.ex} % \begin{minipage}{\textwidth}\small % \begin{verbatim} % \fboxrule6pt % \fcolorbox % {red!70!green}% outer frame % {yellow!30!blue}% outer background % {\fcolorbox % {-yellow!30!blue}% inner frame % {-red!70!green}% inner background % {Test\textcolor{red!72.75}{Test}\color{-green}Test}} % \end{verbatim} % \end{minipage}\relax % \llap{\fboxrule6pt \fcolorbox % {red!70!green}{yellow!30!blue}{\fcolorbox % {-yellow!30!blue}{-red!70!green}{Test\textcolor{red!72.75}{Test}\color{-green}Test}}} % \end{figure} % % % \begin{figure}[htbp]\caption{Current color}\label{fig.cc} % \begin{minipage}{\textwidth}\small % \begin{verbatim} % \def\test{current, \textcolor{.!50}{50\%}, % \textcolor{-.}{complement}, % \textcolor{yellow!50!.}{mix}} % \textcolor{blue}{\test}\\ % and \textcolor{red}{\test}\\ % \def\Test{\color{.!80}Test} % \textcolor{blue}{\Test\Test\Test\Test\Test}\\ % and \textcolor{red}{\Test\Test\Test\Test\Test} % \end{verbatim} % \end{minipage}\relax % \llap{\begin{minipage}{.5\textwidth}\small\raggedleft % \def\test{current, \textcolor{.!50}{50\%}, % \textcolor{-.}{complement}, % \textcolor{yellow!50!.}{mix}} % \textcolor{blue}{\test}\\ % and \textcolor{red}{\test}\\ % \def\Test{\color{.!80}Test} % \textcolor{blue}{\Test\Test\Test\Test\Test}\\ % and \textcolor{red}{\Test\Test\Test\Test\Test} % \end{minipage}} % \end{figure} % % % \begin{figure}[htbp]\caption{Color series}\label{fig.csx} % \centering % \def\tabulartest#1{\definecolorseries{test}#1\resetcolorseries[12]{test}% % \rowcolors[\hline]{1}{test!!+}{test!!+}% % \begin{tabular}{c} % \number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\ % \number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\ % \number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\ % \number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\ % \end{tabular}} % % \begin{tabular}{@{}*{9}{c}@{}} % $S_1$ & $S_2$ & $G_1$ & $G_2$ & $L_1$ & $L_2$ & $L_3$ & $L_4$ & $L_5$ \\[3pt] % \tabulartest{{rgb}{step}[rgb]{.95,.85,.55}{.17,.47,.37}}& % \tabulartest{{hsb}{step}[hsb]{.575,1,1}{.11,-.05,0}}& % \tabulartest{{rgb}{grad}[rgb]{.95,.85,.55}{3,11,17}}& % \tabulartest{{hsb}{grad}[hsb]{.575,1,1}{.987,-.234,0}}& % \tabulartest{{rgb}{last}[rgb]{.95,.85,.55}[rgb]{.05,.15,.55}}& % \tabulartest{{hsb}{last}[hsb]{.575,1,1}[hsb]{-.425,.15,1}}& % \tabulartest{{rgb}{last}{yellow!50}{blue}}& % \tabulartest{{hsb}{last}{yellow!50}{blue}}& % \tabulartest{{cmy}{last}{yellow!50}{blue}}\\ % \end{tabular} % % \bigskip % % \footnotesize % \rowcolors{3}{tablerowcolor}{} % \begin{tabular}{>{$}l<{$}l} % \hline % \multicolumn2{>{\columncolor{tableheadcolor}}c}{\em Individual definitions}\\ % S_1& |\definecolorseries{test}{rgb}{step}[rgb]{.95,.85,.55}{.17,.47,.37}|\\ % S_2& |\definecolorseries{test}{hsb}{step}[hsb]{.575,1,1}{.11,-.05,0}|\\ % G_1& |\definecolorseries{test}{rgb}{grad}[rgb]{.95,.85,.55}{3,11,17}|\\ % G_2& |\definecolorseries{test}{hsb}{grad}[hsb]{.575,1,1}{.987,-.234,0}|\\ % L_1& |\definecolorseries{test}{rgb}{last}[rgb]{.95,.85,.55}[rgb]{.05,.15,.55}|\\ % L_2& |\definecolorseries{test}{hsb}{last}[hsb]{.575,1,1}[hsb]{-.425,.15,1}|\\ % L_3& |\definecolorseries{test}{rgb}{last}{yellow!50}{blue}|\\ % L_4& |\definecolorseries{test}{hsb}{last}{yellow!50}{blue}|\\ % L_5& |\definecolorseries{test}{cmy}{last}{yellow!50}{blue}|\\ % \hline % \multicolumn2{>{\columncolor{tableheadcolor}}c}{\em Common definitions}\\ % \hiderowcolors % &|\resetcolorseries[12]{test}|\\ % &|\rowcolors[\hline]{1}{test!!+}{test!!+}|\\ % &|\begin{tabular}{c}|\\ % &|\number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\|\\ % &|\number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\|\\ % &|\number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\|\\ % &|\number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\|\\ % &|\end{tabular}|\\ % \hline % \end{tabular} % \end{figure} % % % \begin{figure}[htbp]\caption{Color masking}\label{fig.mask} % \begin{adjustwidth}{-2.5cm}{} % \small\raggedleft % \extrarowheight2pt % \makeatletter % \def\X#1#2{\edef\tmp{\@ifxempty{#1}{}{[#1]}{#2}}\dots\Meaning{tmp}& % \maskcolors[#1]{#2}\testclr{red} \testclr{green} \testclr{blue} \testclr{cyan} \testclr{magenta} \testclr{yellow} \testclr{brown} \testclr{lime} \testclr{olive} \testclr{orange} \testclr{pink} \testclr{purple} \testclr{teal} \testclr{violet} \testclr{black} \testclr{darkgray} \testclr{gray} \testclr{lightgray} \testclr{white}\\}\relax % \makeatother % \begin{tabular}{@{}>{\ttfamily}l@{ }l@{}} % \string\maskcolors&\\ % \hline % \X{}{} % \hline % \X{cmyk}{cyan} % \X{cmyk}{magenta} % \X{cmyk}{yellow} % \X{cmyk}{black} % \hline % \X{cmyk}{red} % \X{cmyk}{green} % \X{cmyk}{blue} % \hline % \X{rgb}{red} % \X{rgb}{green} % \X{rgb}{blue} % \hline % \X{hsb}{red} % \X{hsb}{green} % \X{hsb}{blue} % \hline % \X{rgb}{gray} % \X{cmy}{gray} % \end{tabular} % \end{adjustwidth} % \end{figure} % % % \begin{figure}[htbp]\caption{Alternating row colors in tables: \cmd\rowcolors{} vs. \cmd\rowcolors\texttt*}\label{fig.row} % \centering % \begin{minipage}{\textwidth} % \begin{verbatim} % \rowcolors[\hline]{3}{green!25}{yellow!50} \arrayrulecolor{red!75!gray} % \begin{tabular}{ll} % test & row \number\rownum\\ % test & row \number\rownum\\ % test & row \number\rownum\\ % test & row \number\rownum\\ % \arrayrulecolor{black} % test & row \number\rownum\\ % test & row \number\rownum\\ % \rowcolor{blue!25} % test & row \number\rownum\\ % test & row \number\rownum\\ % \hiderowcolors % test & row \number\rownum\\ % test & row \number\rownum\\ % \showrowcolors % test & row \number\rownum\\ % test & row \number\rownum\\ % \multicolumn{1}% % {>{\columncolor{red!12}}l}{test} & row \number\rownum\\ % \end{tabular} % \end{verbatim} % \end{minipage} % \hskip-.5\textwidth % \rowcolors[\hline]{3}{green!25}{yellow!50} \arrayrulecolor{red!75!gray} % \begin{tabular}{ll} % test & row \number\rownum\\ % test & row \number\rownum\\ % test & row \number\rownum\\ % test & row \number\rownum\\ % \arrayrulecolor{black} % test & row \number\rownum\\ % test & row \number\rownum\\ % \rowcolor{blue!25} % test & row \number\rownum\\ % test & row \number\rownum\\ % \hiderowcolors % test & row \number\rownum\\ % test & row \number\rownum\\ % \showrowcolors % test & row \number\rownum\\ % test & row \number\rownum\\ % \multicolumn{1}% % {>{\columncolor{red!12}}l}{test} & row \number\rownum\\ % \end{tabular} % \qquad % \rowcolors*[\hline]{3}{green!25}{yellow!50}\arrayrulecolor{red!75!gray} % \begin{tabular}{ll} % test & row \number\rownum\\ % test & row \number\rownum\\ % test & row \number\rownum\\ % test & row \number\rownum\\ % \arrayrulecolor{black} % test & row \number\rownum\\ % test & row \number\rownum\\ % \rowcolor{blue!25} % test & row \number\rownum\\ % test & row \number\rownum\\ % \hiderowcolors % test & row \number\rownum\\ % test & row \number\rownum\\ % \showrowcolors % test & row \number\rownum\\ % test & row \number\rownum\\ % \multicolumn{1}% % {>{\columncolor{red!12}}l}{test} & row \number\rownum\\ % \end{tabular} % \arrayrulecolor{black} % \end{figure} % % % \begin{figure}[htbp]\caption{\Model{Hsb} and \Model{tHsb}: \emph{hue\Circ} in $15^\circ$ steps}\label{fig.tHsb} % \begin{adjustwidth}{-2.5cm}{} % \footnotesize\sffamily\raggedleft % \extrarowheight.5pt % \begin{testcolors}[rgb,cmyk,hsb,Hsb,tHsb] % \testcolor[Hsb]{0,1,1} % \testcolor[Hsb]{15,1,1} % \testcolor[Hsb]{30,1,1} % \testcolor[Hsb]{45,1,1} % \testcolor[Hsb]{60,1,1} % \testcolor[Hsb]{75,1,1} % \testcolor[Hsb]{90,1,1} % \testcolor[Hsb]{105,1,1} % \testcolor[Hsb]{120,1,1} % \testcolor[Hsb]{135,1,1} % \testcolor[Hsb]{150,1,1} % \testcolor[Hsb]{165,1,1} % \testcolor[Hsb]{180,1,1} % \testcolor[Hsb]{195,1,1} % \testcolor[Hsb]{210,1,1} % \testcolor[Hsb]{225,1,1} % \testcolor[Hsb]{240,1,1} % \testcolor[Hsb]{255,1,1} % \testcolor[Hsb]{270,1,1} % \testcolor[Hsb]{285,1,1} % \testcolor[Hsb]{300,1,1} % \testcolor[Hsb]{315,1,1} % \testcolor[Hsb]{330,1,1} % \testcolor[Hsb]{345,1,1} % \testcolor[Hsb]{360,1,1} % \noalign{\medskip} % \testcolor[tHsb]{0,1,1} % \testcolor[tHsb]{15,1,1} % \testcolor[tHsb]{30,1,1} % \testcolor[tHsb]{45,1,1} % \testcolor[tHsb]{60,1,1} % \testcolor[tHsb]{75,1,1} % \testcolor[tHsb]{90,1,1} % \testcolor[tHsb]{105,1,1} % \testcolor[tHsb]{120,1,1} % \testcolor[tHsb]{135,1,1} % \testcolor[tHsb]{150,1,1} % \testcolor[tHsb]{165,1,1} % \testcolor[tHsb]{180,1,1} % \testcolor[tHsb]{195,1,1} % \testcolor[tHsb]{210,1,1} % \testcolor[tHsb]{225,1,1} % \testcolor[tHsb]{240,1,1} % \testcolor[tHsb]{255,1,1} % \testcolor[tHsb]{270,1,1} % \testcolor[tHsb]{285,1,1} % \testcolor[tHsb]{300,1,1} % \testcolor[tHsb]{315,1,1} % \testcolor[tHsb]{330,1,1} % \testcolor[tHsb]{345,1,1} % \testcolor[tHsb]{360,1,1} % \end{testcolors} % \end{adjustwidth} % \end{figure} % % % \begin{figure}[htbp]\caption{Color harmony}\label{fig.harmony} % \begin{adjustwidth}{-2.5cm}{} % \small\sffamily\raggedleft % \extrarowheight1.5pt % \begin{testcolors}[rgb,cmyk,Hsb,tHsb] % \noalign{\smallskip} % \rlap{\em complementary colors (two-color harmony):}\\ % \testcolor{yellow>wheel,1,2} % \testcolor{yellow} % \testcolor{yellow>twheel,1,2} % \noalign{\medskip} % \rlap{\em color triad (three-color harmony):}\\ % \testcolor{yellow>wheel,2,3} % \testcolor{yellow>wheel,1,3} % \testcolor{yellow} % \testcolor{yellow>twheel,1,3} % \testcolor{yellow>twheel,2,3} % \noalign{\medskip} % \rlap{\em color tetrad (four-color harmony):}\\ % \testcolor{yellow>wheel,3,4} % \testcolor{yellow>wheel,2,4} % \testcolor{yellow>wheel,1,4} % \testcolor{yellow} % \testcolor{yellow>twheel,1,4} % \testcolor{yellow>twheel,2,4} % \testcolor{yellow>twheel,3,4} % \noalign{\medskip} % \rlap{\em split complementary colors:}\\ % \testcolor{yellow>wheel,7,12} % \testcolor{yellow>wheel,5,12} % \testcolor{yellow} % \testcolor{yellow>twheel,5,12} % \testcolor{yellow>twheel,7,12} % \noalign{\medskip} % \rlap{\em analogous (adjacent) colors:}\\ % \testcolor{yellow>wheel,11,12} % \testcolor{yellow>wheel,10,12} % \testcolor{yellow>wheel,2,12} % \testcolor{yellow>wheel,1,12} % \testcolor{yellow} % \testcolor{yellow>twheel,1,12} % \testcolor{yellow>twheel,2,12} % \testcolor{yellow>twheel,10,12} % \testcolor{yellow>twheel,11,12} % \end{testcolors} % \end{adjustwidth} % \end{figure} % % \end{adjustwidth} % % % \clearpage % % \begin{adjustwidth}{-2.5cm}{} % \raggedcolumns\columnsep2.5em % % \section{Colors by Name}\label{sec.names} % % \begin{multicols}{5}[\subsection{Base colors (always available)}\label{sec.basenam}] % \footnotesize\def\0#1{\Testclr{#1}{#1}} % \0{black} % \0{blue} % \0{brown} % \0{cyan} % \0{darkgray} % \0{gray} % \0{green} % \0{lightgray} % \0{lime} % \0{magenta} % \0{olive} % \0{orange} % \0{pink} % \0{purple} % \0{red} % \0{teal} % \0{violet} % \0{white} % \0{yellow} % \end{multicols} % % % \begin{multicols}{5}[\subsection{Colors via \Option{dvipsnames} option}\label{sec.dvipsnam}] % \footnotesize\def\0#1{\Testclr{#1}{#1}} % \0{Apricot} % \0{Aquamarine} % \0{Bittersweet} % \0{Black} % \0{Blue} % \0{BlueGreen} % \0{BlueViolet} % \0{BrickRed} % \0{Brown} % \0{BurntOrange} % \0{CadetBlue} % \0{CarnationPink} % \0{Cerulean} % \0{CornflowerBlue} % \0{Cyan} % \0{Dandelion} % \0{DarkOrchid} % \0{Emerald} % \0{ForestGreen} % \0{Fuchsia} % \0{Goldenrod} % \0{Gray} % \0{Green} % \0{GreenYellow} % \0{JungleGreen} % \0{Lavender} % \0{LimeGreen} % \0{Magenta} % \0{Mahogany} % \0{Maroon} % \0{Melon} % \0{MidnightBlue} % \0{Mulberry} % \0{NavyBlue} % \0{OliveGreen} % \0{Orange} % \0{OrangeRed} % \0{Orchid} % \0{Peach} % \0{Periwinkle} % \0{PineGreen} % \0{Plum} % \0{ProcessBlue} % \0{Purple} % \0{RawSienna} % \0{Red} % \0{RedOrange} % \0{RedViolet} % \0{Rhodamine} % \0{RoyalBlue} % \0{RoyalPurple} % \0{RubineRed} % \0{Salmon} % \0{SeaGreen} % \0{Sepia} % \0{SkyBlue} % \0{SpringGreen} % \0{Tan} % \0{TealBlue} % \0{Thistle} % \0{Turquoise} % \0{Violet} % \0{VioletRed} % \0{White} % \0{WildStrawberry} % \0{Yellow} % \0{YellowGreen} % \0{YellowOrange} % \end{multicols} % % % \makeatletter % \def\ColorList#1#2#3#4{\begin{multicols}{#1}[\subsection{Colors via \Option{#2names} option}\label{sec.#2nam}] % \footnotesize % \def\preparecolorset % {\def\XC@@cmd[####1]####2####3####4{\definecolor[####1]{@test}{####3}{####4}#4{@test}{####2}}\@testopt{\XC@definecolorset}{}} % \edef\restore{\catcode`\noexpand\%\the\catcode`\%\relax} % \catcode`\%14\relax\input{#3nam.def}\restore % \end{multicols}} % \makeatother % % \ColorList4{svg}{svg}\Testclr % \medskip % \begin{adjustwidth}{1cm}{1cm} % \footnotesize\raggedright Duplicate colors: % \Color[-]{Aqua} = \Color[-]{Cyan}, % \Color[-]{Fuchsia} = \Color[-]{Magenta}; % \Color[-]{Navy} = \Color[-]{NavyBlue}; % \Color[-]{Gray} = \Color[-]{Grey}, % \Color[-]{DarkGray} = \Color[-]{DarkGrey}, % \Color[-]{LightGray} = \Color[-]{LightGrey}, % \Color[-]{SlateGray} = \Color[-]{SlateGrey}, % \Color[-]{DarkSlateGray} = \Color[-]{DarkSlateGrey}, % \Color[-]{LightSlateGray} = \Color[-]{LightSlateGrey}, % \Color[-]{DimGray} = \Color[-]{DimGrey}. % \par\smallskip % \Index{HTML4} color keyword subset: % \Color[-]{Aqua}, \Color[-]{Black}, \Color[-]{Blue}, \Color[-]{Fuchsia}, % \Color[-]{Gray}, \Color[-]{Green}, \Color[-]{Lime}, \Color[-]{Maroon}, % \Color[-]{Navy}, \Color[-]{Olive}, \Color[-]{Purple}, \Color[-]{Red}, % \Color[-]{Silver}, \Color[-]{Teal}, \Color[-]{White}, \Color[-]{Yellow}. % \par\smallskip % Colors taken from \Index{Unix}/\Index{X11}: % \Color[-]{LightGoldenrod}, % \Color[-]{LightSlateBlue}, % \Color[-]{NavyBlue}, % \Color[-]{VioletRed}. % \end{adjustwidth} % % \ColorList4{x11}{x11}\Testclr % \medskip % \begin{adjustwidth}{1cm}{1cm} % \footnotesize\raggedright Duplicate colors: % \Color[-]{Gray0} = \Color[-]{Grey0}, % \Color[-]{Green0} = \Color[-]{Green1}. % \end{adjustwidth} % % \end{adjustwidth} % % % % % \clearpage % \section{Technical Supplement} % % \subsection{Color models supported by drivers} % % Since some of the drivers only pretend to support the \Model{hsb} model, we included some code to bypass this behaviour. % The models actually added by \XC{} are shown in the log file. % Table \vref{tab.drv} lists mainly the drivers that are part of current MiK\TeX{} \cite{mik} distributions and their color model support. % Probably, other distributions behave similarly. % % \begin{table}[htbp]\caption{Drivers and color models}\label{tab.drv} % \centering\small % \extrarowheight1pt % \tabcolsep3pt % \rowcolors{3}{tablerowcolor}{} % \begin{tabular}{ll*{9}{c}} % \rowcolor{tableheadcolor} % \hline % \em Driver&\em Version&\Model{rgb}&\Model{cmy}&\Model{cmyk}&\Model{hsb}&\Model{gray}&\Model{RGB}&\Model{HTML}&\Model{HSB}&\Model{Gray}\\ % \Option{dvipdf}&1999/02/16 v3.0i&d&n&d&n&d&i&n&n&n\\ % \Option{dvips}&1999/02/16 v3.0i&d&n&d&d&d&i&n&n&n\\ % \Option{dvipsone}&1999/02/16 v3.0i&d&n&d&d&d&i&n&n&n\\ % \Option{pctex32}&1999/02/16 v3.0i&d&n&d&d&d&i&n&n&n\\ % \Option{pctexps}&1999/02/16 v3.0i&d&n&d&d&d&i&n&n&n\\ % \hline % \Option{pdftex}&2006/03/02 v0.03p&d&n&d&n&d&i&n&n&n\\ % \hline % \Option{dvipdfm}&1998/11/24 vx.x\,\footnotemark[1]&d&n&d&a&d&i&n&n&n\\ % \Option{dvipdfm}&1999/9/6 vx.x\,\footnotemark[2]&d&n&d&a&d&i&n&n&n\\ % \hline % \Option{dvipdfmx}&?&d&n&d&f&d&i&n&n&n\\ % \hline % \Option{textures}&1997/5/28 v0.3&d&n&d&a&i&n&n&n&n\\ % \hline % \Option{vtex}&1999/01/14 v6.3&d&n&d&n&i&i&n&n&n\\ % \hline % \Option{xetex}&2004/05/09 v0.7&i&n&i&i&i&i&d&n&n\\ % \hline % \Option{tcidvi}&1999/02/16 v3.0i&i&n&i&n&i&d&n&n&n\\ % \Option{truetex}&1999/02/16 v3.0i&i&n&i&n&i&d&n&n&n\\ % \hline % \Option{dviwin}&1999/02/16 v3.0i&n&n&n&n&n&n&n&n&n\\ % \Option{emtex}&1999/02/16 v3.0i&n&n&n&n&n&n&n&n&n\\ % \Option{pctexhp}&1999/02/16 v3.0i&n&n&n&n&n&n&n&n&n\\ % \Option{pctexwin}&1999/02/16 v3.0i&n&n&n&n&n&n&n&n&n\\ % \hline\hline % \multicolumn{11}c{\Option{dviwindo} = \Option{dvipsone}; \Option{oztex} = \Option{dvips}; \Option{xdvi} = \Option{dvips} + \Option{monochrome}}\\ % \multicolumn{11}c{\footnotemark[1]\,part of \Package{graphics} package\quad \footnotemark[2]\,additionally distributed with MiK\TeX}\\ % \hline % \multicolumn{11}c{Driver's color model support: d\,=\,direct, i\,=\,indirect, a\,=\,alleged, n\,=\,none, f\,=\,faulty}\\ % \hline % \end{tabular} % \end{table} % % % % \subsection{How \XC{} handles driver-specific color models} % % Although there is a variety of drivers that implement different approaches to color visualisation, they all have some features in common, as defined by the original \LCP. % One of these features is that any color model `foo' requires a |\color@foo|\marg{cmd}\marg{spec} command in order to translate the `foo'-dependent color \Meta{spec} into some driver-specific code that is stored in \Meta{cmd}. % Therefore, \XC{} in general detects driver-support for the `foo' model via the existence of |\color@foo|. % % By this mechanism, \XC{} can also change the behaviour of certain models without touching the driver file itself. % A good example is the |\substitutecolormodel| command which is used during the package initialisation process to provide support for models that are not covered by the actual driver (like \Model{hsb} for \Option{pdftex}) or that have incorrect implementations (like \Model{hsb} for \Option{dvipdfm}). % % % \subsection{Behind the scenes: internal color representation} % % Every definition of a color in order to access it by its name requires an internal representation of the color, i.e.~a macro that contains some bits of information required by the driver to display the color properly. % % \LC's |\definecolor{foo}{...}{...}| generates a command |\\color@foo|\footnote{The double backslash is intentional.} which contains the color definition in a driver-dependent way; therefore it is possible but non-trivial to access the color model and parameters afterwards (see the \Package{colorinfo} package \cite{colorinfo} for a solution). % % \LC's |\DefineNamedColor{named}{foo}{...}{...}| generates |\col@foo|\footnote{The single backslash is intentional.} which again contains some driver-dependent information. % In this case, an additional |\\color@foo| will only be defined if the package option \Option{usecolors} is active. % % \XC's |\definecolor{foo}{...}{...}| generates\footnote{This was introduced in version 1.10; prior to that, a command \cs{\string\xcolor@foo} with a different syntax was generated.} a command |\\color@foo| as well, which combines the features of the former commands and contains both the driver-dependent and driver-independent information, thus making it possible to access the relevant parameters in a standardised way. % Although it has now a different syntax, |\\color@foo| expands to the same expression as the original command. % On the other hand, |\col@foo| commands are no longer needed and therefore not generated in the `named' case: \XC{} works with a single color data structure (as described). % % Table \vref{tab.internal} shows some examples for the two most prominent drivers. % See also figure \vref{fig.progress} which displays the definitions with respect to the driver that was used to process this document. % % % \begin{table}[htb]\caption{Driver-dependent internal color representation}\label{tab.internal} % \centering\small % \def\X{\hspace*{-.845\textwidth}\\} % \extrarowheight1pt % \tabcolsep8pt % \begin{tabular}{l>{\color{blue}(}r<{)}l} % \hline % \multicolumn3{>{\columncolor{tableheadcolor}}l}{\Option{dvips} driver}\\ % \hline % |\\color@Plum=macro:| & |\definecolor{Plum}{rgb}{.5,0,1}| & \LC\\ % |->rgb .5 0 1.|\X % \hline % |\\color@Plum=macro:| & |\definecolor{Plum}{rgb}{.5,0,1}|& \XC\\ % |->\xcolor@ {}{rgb 0.5 0 1}{rgb}{0.5,0,1}.|\X % \hline % |\col@Plum=macro:| & |\DefineNamedColor{Plum}{rgb}{.5,0,1}|& \LC\\ % |->\@nil .|\X % |\\color@Plum=macro:| & with option \oOption{usenames}\\ % |-> Plum.|\X % \hline % |\\color@Plum=macro:| & |\definecolor[named]{Plum}{rgb}{.5,0,1}|& \XC\\ % |->\xcolor@ {named}{ Plum}{rgb}{0.5,0,1}.|\X % \hline % \multicolumn3{>{\columncolor{tableheadcolor}}l}{\Option{pdftex} driver}\\ % \hline % |\\color@Plum=macro:| & |\definecolor{Plum}{rgb}{.5,0,1}|& \LC\\ % |->.5 0 1 rg .5 0 1 RG.|\X % \hline % |\\color@Plum=macro:| & |\definecolor{Plum}{rgb}{.5,0,1}|& \XC\\ % |->\xcolor@ {}{0.5 0 1 rg 0.5 0 1 RG}{rgb}{0.5,0,1}.|\X % \hline % |\col@Plum=macro:| & |\DefineNamedColor{Plum}{rgb}{.5,0,1}|& \LC\\ % |->.5 0 1 rg .5 0 1 RG.|\X % |\\color@Plum=macro:| & with option \oOption{usenames}\\ % |->.5 0 1 rg .5 0 1 RG.|\X % \hline % |\\color@Plum=macro:| & |\definecolor[named]{Plum}{rgb}{.5,0,1}|& \XC\\ % |->\xcolor@ {}{0.5 0 1 rg 0.5 0 1 RG}{rgb}{0.5,0,1}.|\X % \hline % \end{tabular} % \end{table} % % % % \subsection{A remark on accuracy} % % Since the macros presented here require some computation, special efforts were made to ensure a maximum of accuracy for conversion and mixing formulas --- all within \TeX's limited numerical capabilities.\footnote{For example, applying the `transformation' \cs{dimen0=0.}\Meta{int}\texttt{pt} \cs{the\string\dimen0} to all 5-digit numbers \Meta{int} of the range 00000\dots 99999, exactly 34464 of these 100000 numbers don't survive unchanged. We are not talking about gobbled final zeros here \dots} % We decided to develop and include a small set of commands to improve the quality of division and multiplication results, instead of loading one of the packages that provide multi-digit arithmetic and a lot more, like \Package{realcalc} or \Package{fp}. % The marginal contribution of the latter packages seems not to justify their usage for our purposes. % Thus, we stay within a sort of fixed-point arithmetic framework, providing at most 5~decimal digits via \TeX's dimension registers. % % % % % \clearpage % \section{The Formulas} % % \subsection{Color mixing} % % In general, we use linear interpolation for color mixing: % \begin{align} % \mix(C, C', p) = p \cdot C + (1-p) \cdot C'\label{eq.mix} % \end{align} % Note that there is a special situation in the \Model{hsb} case: % if $\emph{saturation}=0$ then the color equals a gray color of level \emph{brightness}, independently of the \emph{hue} value. % Therefore, to achieve smooth transitions of an arbitrary color to a specific gray (like white or black), we actually use the formulas % \begin{align} % \Op\tint{hsb}(C, p) &= p \cdot C + (1-p) \cdot \bigl(\emph{hue},0,1\bigr)\\ % \Op\shade{hsb}(C, p) &= p \cdot C + (1-p) \cdot \bigl(\emph{hue},0,0\bigr)\\ % \Op\tone{hsb}(C, p) &\textstyle= p \cdot C + (1-p) \cdot \bigl(\emph{hue},0,\frac12\bigr) % \end{align} % where $C=(\emph{hue},\emph{saturation},\emph{brightness})$. % % From equation (\ref{eq.mix}) and the way how color expressions are being interpreted, as described in section \vref{sec.term}, it is an easy proof by induction to verify that a color expression % \begin{gather} % C_0!P_1!C_1!P_2!\dots!P_n!C_n % \end{gather} % with $n\in\{0,1,2,\dots\}$, colors $C_0,C_1,\dots,C_n$, and percentages $P_1,\dots,P_n\in [0,100]$ will result in a parameter vector % \begin{equation} % \begin{split} % C &= \sum_{\nu=0}^n \Biggl(\prod_{\mu=\nu+1}^n p_\mu \Biggr) (1-p_\nu)\cdot C_\nu\\ % &= p_n\cdots p_1\cdot C_0\\ % &\quad + p_n\cdots p_2(1-p_1)\cdot C_1\\ % &\quad + p_n\cdots p_3(1-p_2)\cdot C_2\\ % &\quad + \dots\\ % &\quad + p_n(1-p_{n-1})\cdot C_{n-1}\\ % &\quad + (1-p_n)\cdot C_n % \end{split} % \end{equation} % where $p_0 := 0$ and $p_\nu := P_\nu/100$ for $\nu=1,\dots,n$. % We note also a split formula: % \begin{equation} % \begin{split} % C_0!P_1!C_1!\dots!P_{n+k}!C_{n+k} % &= p_{n+k}\cdots p_{n+1}\cdot C_0!P_1!C_1!\dots!P_n!C_n\\ % &\quad - p_{n+k}\cdots p_{n+1}\cdot C_n\\ % &\quad + C_n!P_{n+1}!C_{n+1}!\dots!P_{n+k}!C_{n+k} % \end{split} % \end{equation} % % % \begin{table}[p]\caption{Color constants}\label{tab.const} % \centering % \extrarowheight2pt % \rowcolors{3}{tablerowcolor}{} % \begin{tabular}{*4{c}} % \hline % \rowcolor{tableheadcolor} % \emph{model/constant} & % \ttfamily white & \ttfamily black & \ttfamily gray\\[2pt] % \Model{rgb}& $(1,1,1)$ & $(0,0,0)$ & $(\frac12,\frac12,\frac12)$ \\[2pt] % \Model{cmy}& $(0,0,0)$ & $(1,1,1)$ & $(\frac12,\frac12,\frac12)$ \\[2pt] % \Model{cmyk}& $(0,0,0,0)$ & $(0,0,0,1)$ & $(0,0,0,\frac12)$ \\[2pt] % \Model{hsb}& $(h,0,1)$ & $(h,0,0)$ & $(h,0,\frac12)$ \\[2pt] % \Model{Hsb}& $(h^\circ,0,1)$ & $(h^\circ,0,0)$ & $(h^\circ,0,\frac12)$ \\[2pt] % \Model{tHsb}& $(h^\circ,0,1)$ & $(h^\circ,0,0)$ & $(h^\circ,0,\frac12)$ \\[2pt] % \Model{gray}& $1$ & $0$ & $\frac12$ \\[2pt] % \Model{RGB}& $(L,L,L)$ & $(0,0,0)$ & $(\lfloor\frac {L+1}2\rfloor,\lfloor\frac {L+1}2\rfloor,\lfloor\frac {L+1}2\rfloor)$ \\[2pt] % \Model{HTML}& \texttt{FFFFFF}& \texttt{000000}& \texttt{808080}\\[2pt] % \Model{HSB}& $(H,0,M)$ & $(H,0,0)$ & $(H,0,\lfloor\frac {M+1}2\rfloor)$ \\[2pt] % \Model{Gray}& $N$ & $0$ & $\lfloor\frac {N+1}2\rfloor$ \\[2pt] % \hline % \end{tabular} % \end{table} % % % \begin{table}[p]\caption{Color conversion pairs}\label{tab.cnv} % \begin{adjustwidth}{-2.5cm}{} % \small\raggedleft % \def\Em#1{\Model{#1}} % \def\sp{\hbox to3em{\hfil$\ast$\hfil}} % \def\id{\textrm{id}} % \extrarowheight1pt % \tabcolsep3pt % \rowcolors{3}{tablerowcolor}{} % \begin{tabular}{c*{11}{>{\sffamily}c}} % \rowcolor{tableheadcolor} % \hline % \emph{from/to}& % \Em{rgb}& \Em{cmy}& \Em{cmyk}& \Em{hsb}& \Em{Hsb} & \Em{tHsb} & \Em{gray}& \Em{RGB}& \Em{HTML}& \Em{HSB}& \Em{Gray}\\ % \Em{rgb}& \id & \sp & (cmy) & \sp & (hsb) & (hsb) & \sp & \sp & \sp & (hsb) & (gray)\\ % \Em{cmy}& \sp & \id & \sp & (rgb) & (rgb) & (rgb) & \sp & (rgb) & (rgb) & (rgb) & (gray)\\ % \Em{cmyk}& (cmy) & \sp & \id & (cmy) & (cmy) & (cmy) & \sp & (cmy) & (cmy) & (cmy) & (gray)\\ % \Em{hsb}& \sp & (rgb) & (rgb) & \id & \sp & (Hsb) & (rgb) & (rgb) & (rgb) & \sp & (rgb)\\ % \Em{Hsb}& (hsb) & (hsb) & (hsb) & \sp & \id & \sp & (hsb) & (hsb) & (hsb) & (hsb) & (hsb)\\ % \Em{tHsb}& (Hsb) & (Hsb) & (Hsb) & (Hsb) & \sp & \id & (Hsb) & (Hsb) & (Hsb) & (Hsb) & (Hsb)\\ % \Em{gray}& \sp & \sp & \sp & \sp & \sp & \sp & \id & \sp & \sp & \sp & \sp\\ % \Em{RGB}& \sp & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & \id & (rgb) & (rgb) & (rgb)\\ % \Em{HTML}& \sp & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & \id & (rgb) & (rgb)\\ % \Em{HSB}& (hsb) & (hsb) & (hsb) & \sp & (hsb) & (hsb) & (hsb) & (hsb) & (hsb) & \id & (hsb)\\ % \Em{Gray}& (gray) & (gray) & (gray) & (gray) & (gray) & (gray) & \sp & (gray) & (gray) & (gray) & \id\\ % \Em{wave}& (hsb) & (hsb) & (hsb) & \sp & (hsb) & (hsb) & (hsb) & (hsb) & (hsb) & (hsb) & (hsb)\\ % \hline\hline % \multicolumn{12}{c}{\id{} = identity function; $\ast$ = specific conversion function;}\\ % \multicolumn{12}{c}{\textsf{(model)} = conversion via specified model}\\ % \hline % \end{tabular} % \end{adjustwidth} % \end{table} % % % % \subsection{Conversion between integer and real models} % % We fix a positive integer $n$ and define the sets $\mathcal I_n:=\{0,1,\dots,n\}$ and $\mathcal R:= [0,1]$. % The complement of $\nu\in\mathcal I_n$ is $n-\nu$, the complement of $x\in\mathcal R$ is $1-x$. % % \subsubsection{Real to integer conversion}\label{sec.real2int} % % The straightforward mapping for this case is % \begin{gather} % \textstyle\RtoI n : \mathcal R \to \mathcal I_n,\ x \mapsto \rd(n\cdot x,0) = \left\lfloor \frac12+n\cdot x\right\rfloor % \end{gather} % where $\rd(r,d)$ rounds the real number $r$ to $d\ge0$ decimal digits. % This mapping nearly always preserves complements, as shown in the next lemma. % \begin{lemma}[Preservation of complements] % For $x\in\mathcal R$, % \begin{gather} % \textstyle\RtoI n(x) + \RtoI n(1-x) = n \iff x \notin \mathcal R_n^\circ := \left\{ \frac1n\bigl(\nu - \frac12\bigr) \bigm\vert \nu=1,2,\dots,n\right\}. % \end{gather} % \end{lemma} % \begin{proof} % Let $\nu:=\RtoI n(x)$, then from $-\frac12 \le \eta := n\cdot x - \nu < \frac12$ we conclude % \begin{gather*} % \textstyle \RtoI n(1-x) = \rd(n(1-x),0) = \rd(n-\nu-\eta,0) = % \begin{cases} % n-\nu & \text{if $\eta\neq-\frac12$}\\ % n-\nu+1 & \text{if $\eta=-\frac12$} % \end{cases} % \end{gather*} % Now, $\eta = -\frac12 \iff x = \frac1n\bigl(\nu-\frac12\bigr) \iff x\in\mathcal I_n'$. % \end{proof} % Remark: the set $\mathcal R_n^\circ$ is obviously identical to the set of points where $\RtoI n$ is not continuous. % % % \subsubsection{Integer to real conversion}\label{sec.int2real} % % The straightforward way in this case is the function % \begin{gather} % \ItoR n^*: \mathcal I_n \to \mathcal R,\ \nu \mapsto \frac \nu n. % \end{gather} % This is, however, only one out of a variety of solutions: every function $\ItoR n:\mathcal I_n\to\mathcal R$ that obeys the condition % \begin{gather} % \nu\in\mathcal I_n \Rightarrow \Gamma_n\bigl(\ItoR n(\nu)\bigr) = \nu % \end{gather} % which is equivalent to % \begin{gather} % \nu\in\mathcal I_n \Rightarrow \nu + \frac12 > n\cdot\ItoR n(\nu) \ge \nu - \frac12\label{eq.round} % \end{gather} % does at least guarantee that all integers $\nu$ may be reconstructed from $\ItoR n(\nu)$ via multiplication by $n$ and rounding to the nearest integer. % Preservation of complements means now % \begin{gather} % \nu\in\mathcal I_n \Rightarrow \ItoR n(\nu) + \ItoR n(n-\nu) = 1 % \end{gather} % which is obviously the case for $\ItoR n = \ItoR n^*$. % If we consider, more generally, a transformation % \begin{gather} % \ItoR n(\nu) = \frac{\nu + \alpha}{n + \beta} % \end{gather} % with $\beta\neq-n$, then the magic inequality (\ref{eq.round}) is equivalent to % \begin{gather} % \frac12 > \frac{\alpha n - \beta\nu}{n + \beta} \ge -\frac12 % \end{gather} % which is obeyed by the function % \begin{gather} % \ItoR n':\mathcal I_n\to\mathcal R,\ \nu \mapsto % \begin{cases} % \frac\nu{n+1}& \text{if $\nu\le\frac{n+1}2$}\\[0.25ex] % \frac{\nu+1}{n+1}& \text{if $\nu>\frac{n+1}2$} % \end{cases} % \end{gather} % that has the nice feature $\ItoR n'\bigl(\frac{n+1}2\bigr) = \frac12$ for odd $n$. % \begin{lemma}[Preservation of complements] % For odd $n$ and each $\nu\in\mathcal I_n$, % \begin{gather} % \textstyle\ItoR n'(\nu) + \ItoR n'(n-\nu) = 1 \iff \nu \notin \mathcal I_n^\circ := \left\{ \frac{n-1}2, \frac{n+1}2 \right\}. % \end{gather} % \end{lemma} % \begin{proof} % The assertion is a consequence of the following arguments: % \begin{itemize} % \item $\nu<\frac{n-1}2 \iff n-\nu>\frac{n+1}2$ \ and \ $\frac{n-1}2 + \frac{n+1}2 = n$; % \item $\nu<\frac{n-1}2 \,\Rightarrow\, \ItoR n'(\nu) + \ItoR n'(n-\nu) = \frac\nu{n+1} + \frac{n-\nu+1}{n+1} = 1$; % \item $\nu=\frac{n-1}2 \,\Rightarrow\, \ItoR n'(\nu) + \ItoR n'(n-\nu) = \frac{n-1}{2(n+1)} + \frac12 = \frac n{n+1} \neq1$.\qedhere % \end{itemize} % \end{proof} % % For the time being, we choose \fbox{$\ItoR n := \ItoR n^*$} as default transformation function. % % \medskip % Another variant --- which is probably too slow for large-scale on-the-fly calculations --- may be used for constructing sets of predefined colors. % The basic idea is to minimize the number of decimal digits in the representation while keeping some invariance with respect to the original resolution: % \begin{gather} % \textstyle\ItoR n'':\mathcal I_n\to\mathcal R,\ \nu \mapsto \rd\bigl(\frac\nu n, d_n(\frac\nu n)\bigr) % \end{gather} % where % \begin{gather} % d_n:[0,1]\to\bbbN,\ x \mapsto \min\bigl\{ d\in\bbbN \bigm\vert \RtoI n\bigl(\rd(\ItoR n^*(\RtoI n(x)),d)\bigr) = \RtoI n(x)\bigr\} % \end{gather} % In the most common case $n=255$ it turns out that we end up with at most 3 decimal digits; preservation of complements is only violated for $\nu\in\{25,26,76,77,127,128,178,179,229,230\}$ where the corresponding set of decimal numbers is $\{0.098,0.1,0.298,0.3,0.498,0.5,0.698,0.7,0.898,0.9\}$. % % % % \subsection{Color conversion and complements}\label{sec.cnv} % % We collect here the specific conversion formulas between the supported color models. % Table \vref{tab.cnv} gives an overwiew of how each conversion pair is handled. % In general, \Index{PostScript} (as described in \cite{plrm}) is used as a basis for most of the calculations, since it supports the color models \Model{rgb}, \Model{cmyk}, \Model{hsb}, and \Model{gray} natively. % Furthermore, \People{Alvy Ray}{Smith}'s paper \cite{smith} is cited in \cite{plrm} as reference for \Model{hsb}-related formulas. % % First, we define a constant which is being used throughout the conversion formulas: % \begin{gather} % E := (1,1,1) % \end{gather} % % % \subsubsection{The \Model{rgb} model} % % \paragraph{Conversion \Model{rgb} to \Model{cmy}}\label{sec.rgb2cmy} % Source: \cite{plrm}, p. 475. % \begin{gather} % (\emph{cyan}, \emph{magenta}, \emph{yellow}) := E-(\emph{red}, \emph{green}, \emph{blue}) % \end{gather} % % % \paragraph{Conversion \Model{rgb} to \Model{hsb} (1)} % We set % \begin{align} % x & := \max\{\emph{red}, \emph{green}, \emph{blue}\}\\ % y & := \med\{\emph{red}, \emph{green}, \emph{blue}\}\\ % z & := \min\{\emph{red}, \emph{green}, \emph{blue}\}%\\ % \end{align} % where `$\med$' denotes the median of the values. % Then, % \begin{align} % \emph{brightness} & := x\\ % \intertext{Case $x=z$:} % \emph{saturation} & := 0\\ % \emph{hue} & := 0\\ % \intertext{Case $x\neq z$:} % \emph{saturation} & := \frac{x - z}x\\ % f & := \frac{x - y}{x - z} % \end{align} % \begin{gather} % \emph{hue} := \frac 16\cdot % \begin{cases} % 1-f & \text{if $x=\emph{red}\ge\emph{green}\ge\emph{blue}=z$}\\ % 1+f & \text{if $x=\emph{green}\ge\emph{red}\ge\emph{blue}=z$}\\ % 3-f & \text{if $x=\emph{green}\ge\emph{blue}\ge\emph{red}=z$}\\ % 3+f & \text{if $x=\emph{blue}\ge\emph{green}\ge\emph{red}=z$}\\ % 5-f & \text{if $x=\emph{blue}\ge\emph{red}\ge\emph{green}=z$}\\ % 5+f & \text{if $x=\emph{red}\ge\emph{blue}>\emph{green}=z$} % \end{cases}\label{eq.rgb2hsb1} % \end{gather} % % \medskip % % This is based on \cite{smith}, \emph{RGB to HSV Algorithm (Hexcone Model)}, which reads (slightly reformulated): % \begin{gather} % r := \frac{x - \emph{red}}{x - z},\qquad % g := \frac{x - \emph{green}}{x - z},\qquad % b := \frac{x - \emph{blue}}{x - z}\\ % \emph{hue} := \frac 16\cdot % \begin{cases} % 5+b & \text{if $\emph{red}=x$ and $\emph{green}=z$}\\ % 1-g & \text{if $\emph{red}=x$ and $\emph{green}>z$}\\ % 1+r & \text{if $\emph{green}=x$ and $\emph{blue}=z$}\\ % 3-b & \text{if $\emph{green}=x$ and $\emph{blue}>z$}\\ % 3+g & \text{if $\emph{blue}=x$ and $\emph{red}=z$}\\ % 5-r & \text{if $\emph{blue}=x$ and $\emph{red}>z$} % \end{cases} % \end{gather} % Note that the singular case $x=z$ is not covered completely in Smith's original algorithm; we stick here to \Index{PostScript}'s behaviour in real life. % % Because we need to sort three numbers in order to calculate $x,y,z$, several comparisons are involved in the algorithm. % We present now a second method which is more suited for \TeX. % % % \paragraph{Conversion \Model{rgb} to \Model{hsb} (2)} % Let $\beta$ be a function that takes a Boolean expression as argument and returns 1 if the expression is true, 0 otherwise; set % \begin{gather} % i := 4\cdot\beta(\emph{red}\ge\emph{green}) + 2\cdot\beta(\emph{green}\ge\emph{blue}) + \beta(\emph{blue}\ge\emph{red}), % \intertext{and} % (\emph{hue},\emph{saturation},\emph{brightness}) := % \begin{cases} % \Phi(\emph{blue},\emph{green},\emph{red},3,1) & \text{if $i=1$}\\ % \Phi(\emph{green},\emph{red},\emph{blue},1,1) & \text{if $i=2$}\\ % \Phi(\emph{green},\emph{blue},\emph{red},3,-1) & \text{if $i=3$}\\ % \Phi(\emph{red},\emph{blue},\emph{green},5,1) & \text{if $i=4$}\\ % \Phi(\emph{blue},\emph{red},\emph{green},5,-1) & \text{if $i=5$}\\ % \Phi(\emph{red},\emph{green},\emph{blue},1,-1) & \text{if $i=6$}\\ % (0,0,\emph{blue}) & \text{if $i=7$} % \end{cases}\label{eq.rgb2hsb2} % \intertext{where} % \Phi(x,y,z,u,v) := \Bigl( \frac{u\cdot(x-z)+v\cdot(x-y)}{6(x-z)}, \frac{x-z}x, x\Bigr) % \end{gather} % % The singular case $x=z$, which is equivalent to $\emph{red}=\emph{green}=\emph{blue}$, is covered here by $i=7$. % % \medskip % % It is not difficult to see that this algorithm is a reformulation of the previous method. % The following table explains how the transition from equation (\ref{eq.rgb2hsb1}) to equation (\ref{eq.rgb2hsb2}) works: % % \medskip % % \begin{tabular*}{\textwidth}{@{\extracolsep\fill}*5{>{$}c<{$}}l@{}} % 6\cdot\emph{hue}& \emph{Condition}& \emph{red}\ge\emph{green}& \emph{green}\ge\emph{blue}& \emph{blue}\ge\emph{red}& $i$\\\hline % 1-f & \emph{red}\ge\emph{green}\ge\emph{blue}& 1& 1& *& \textbf6/7\\ % 1+f & \emph{green}\ge\emph{red}\ge\emph{blue}& *& 1& *& \textbf2/3/6/7\\ % 3-f & \emph{green}\ge\emph{blue}\ge\emph{red}& *& 1& 1& \textbf3/7\\ % 3+f & \emph{blue}\ge\emph{green}\ge\emph{red}& *& *& 1& \textbf1/3/5/7\\ % 5-f & \emph{blue}\ge\emph{red}\ge\emph{green}& 1& *& 1& \textbf5/7\\ % 5+f & \emph{red}\ge\emph{blue}\ge\emph{green}& 1& *& *& \textbf4/5/6/7\\ % \end{tabular*} % % \medskip % % Here, $*$ denotes possible 0 or 1 values. % Bold $i$~values mark the main cases where all $*$~values of a row are zero. % The slight difference to equation (\ref{eq.rgb2hsb1}) in the last inequality is intentional and does no harm. % % % \paragraph{Conversion \Model{rgb} to \Model{gray}} % Source: \cite{plrm}, p. 474. % \begin{align} % \emph{gray} & := 0.3\cdot\emph{red} + 0.59\cdot\emph{green} + 0.11\cdot\emph{blue} % \end{align} % % % \paragraph{Conversion \Model{rgb} to \Model{RGB}} % As described in section \vref{sec.real2int}. % \begin{gather} % (\emph{Red},\emph{Green},\emph{Blue}) := \bigl(\RtoI L(\emph{red}), \RtoI L(\emph{green}), \RtoI L(\emph{blue})\bigr) % \end{gather} % % % \paragraph{Conversion \Model{rgb} to \Model{HTML}} % As described in section \vref{sec.real2int}. % Convert to 6-digit hexadecimal afterwards. % Certainly, multiplication and summation can be replaced by simple text concatenation of 2-digit hexadecimals. % \begin{gather} % \emph{RRGGBB} := \bigl( 65536\cdot\RtoI L(\emph{red}) + 256\cdot \RtoI L(\emph{green}) + \RtoI L(\emph{blue}) \bigr)_{\emph{hex}} % \end{gather} % % % \paragraph{Complement of \Model{rgb} color} % We simply take the complementary vector: % \begin{gather} % (\emph{red}^*, \emph{green}^*, \emph{blue}^*) := E - (\emph{red}, \emph{green}, \emph{blue}) % \end{gather} % % % \subsubsection{The \Model{cmy} model} % % \paragraph{Conversion \Model{cmy} to \Model{rgb}} % This is simply a reversion of the $\Model{rgb}\to\Model{cmy}$ case, cf. section \vref{sec.rgb2cmy}. % \begin{gather} % (\emph{red}, \emph{green}, \emph{blue}) := E - (\emph{cyan}, \emph{magenta}, \emph{yellow}) % \end{gather} % % % \paragraph{Conversion \Model{cmy} to \Model{cmyk}}\label{sec.cmy2cmyk} % This is probably the hardest of our conversion tasks: many sources emphasize that there does not exist any universal conversion algorithm for this case because of device-dependence. % The following algorithm is an extended version of the one given in \cite{plrm}, p. 476. % \begin{align} % k & := \min\{\emph{cyan},\emph{magenta},\emph{yellow}\}\\ % \emph{cyan} & := \min\{1,\max\{0,\emph{cyan} - \emph{UCR}_c(k)\}\}\\ % \emph{magenta} & := \min\{1,\max\{0,\emph{magenta} - \emph{UCR}_m(k)\}\}\\ % \emph{yellow} & := \min\{1,\max\{0,\emph{yellow} - \emph{UCR}_y(k)\}\}\\ % \emph{black} & := \emph{BG}(k) % \end{align} % Here, four additional functions are required: % \begin{align} % \emph{UCR}_c, \emph{UCR}_m, \emph{UCR}_y & : [0,1] \to [-1,1]\tag*{\em undercolor-removal}\\ % \emph{BG} & : [0,1] \to [0,1]\tag*{\em black-generation} % \end{align} % These functions are device-dependent, see the remarks in \cite{plrm}. % Although there are some indications that they should be chosen as nonlinear functions, as long as we have no further knowledge about the target device we define them linearly: % \begin{align} % \emph{UCR}_c(k) &:= \beta_c\cdot k\\ % \emph{UCR}_m(k) &:= \beta_m\cdot k\\ % \emph{UCR}_y(k) &:= \beta_y\cdot k\\ % \emph{BG}(k) &:= \beta_k\cdot k % \end{align} % \DescribeMacro\adjustUCRBG % where the parameters are given by |\def\adjustUCRBG{|\Meta{$\beta_c$},\Meta{$\beta_m$},\Meta{$\beta_y$},\Meta{$\beta_k$}|}| at any point in a document, defaulting to |{|$\adjustUCRBG$|}|. % % % \paragraph{Conversion \Model{cmy} to \Model{gray}} % This is derived from the conversion chain $\Model{cmy}\to\Model{rgb}\to\Model{gray}$. % \begin{align} % \emph{gray} & := 1 - (0.3\cdot\emph{cyan} + 0.59\cdot\emph{magenta} + 0.11\cdot\emph{yellow}) % \end{align} % % % \paragraph{Complement of \Model{cmy} color} % We simply take the complementary vector: % \begin{gather} % (\emph{cyan}^*, \emph{magenta}^*, \emph{yellow}^*) := E - (\emph{cyan}, \emph{magenta}, \emph{yellow}) % \end{gather} % % % \subsubsection{The \Model{cmyk} model} % % \paragraph{Conversion \Model{cmyk} to \Model{cmy}}\label{sec.cmyk2cmy} % Based on \cite{plrm}, p. 477, in connection with $\Model{rgb}\to\Model{cmy}$ conversion. % \begin{align} % \emph{cyan} & := \min\{1,\emph{cyan} + \emph{black}\}\\ % \emph{magenta} & := \min\{1,\emph{magenta} + \emph{black}\}\\ % \emph{yellow} & := \min\{1,\emph{yellow} + \emph{black}\} % \end{align} % % % \paragraph{Conversion \Model{cmyk} to \Model{gray}} % Source: \cite{plrm}, p. 475. % \begin{align} % \emph{gray} & := 1 - \min\{1,0.3\cdot\emph{cyan} + 0.59\cdot\emph{magenta} + 0.11\cdot\emph{yellow} + black\} % \end{align} % % % \paragraph{Complement of \Model{cmyk} color} % The simple vector complement does not yield useful results. % Therefore, we first convert %$C=(\emph{cyan}, \emph{magenta}, \emph{yellow}, \emph{black})$ % to the \Model{cmy} model, calculate the complement there, and convert back to \Model{cmyk}. % % % \subsubsection{The \Model{hsb} model} % % \paragraph{Conversion \Model{hsb} to \Model{rgb}} % \begin{gather} % (\emph{red},\emph{green},\emph{blue}) := % \emph{brightness}\cdot( E - \emph{saturation}\cdot F)\\ % \intertext{with} % i := \left\lfloor 6\cdot\emph{hue}\right\rfloor,\qquad f := 6\cdot\emph{hue} - i\\ % \intertext{and} % F := % \begin{cases} % (0,1-f,1) & \text{if $i=0$}\\ % (f,0,1) & \text{if $i=1$}\\ % (1,0,1-f) & \text{if $i=2$}\\ % (1,f,0) & \text{if $i=3$}\\ % (1-f,1,0) & \text{if $i=4$}\\ % (0,1,f) & \text{if $i=5$}\\ % (0,1,1) & \text{if $i=6$} % \end{cases}\label{eq.hsb2rgb2} % \end{gather} % % \medskip % % This is based on \cite{smith}, \emph{HSV to RGB Algorithm (Hexcone Model)}, which reads (slightly reformulated): % \begin{align} % m & := 1-\emph{saturation}\\ % n & := 1-f\cdot\emph{saturation}\\ % k & := 1-(1-f)\cdot\emph{saturation}\\ % (\emph{red},\emph{green},\emph{blue}) & := \emph{brightness}\cdot % \begin{cases} % (1,k,m) & \text{if $i=0,6$}\\ % (n,1,m) & \text{if $i=1$}\\ % (m,1,k) & \text{if $i=2$}\\ % (m,n,1) & \text{if $i=3$}\\ % (k,m,1) & \text{if $i=4$}\\ % (1,m,n) & \text{if $i=5$} % \end{cases}\label{eq.hsb2rgb1} % \end{align} % Note that the case $i=6$ (which results from $\emph{hue}=1$) is missing in Smith's algorithm. % Because of % \begin{align} % \lim_{f\to1} (0,1,f) = (0,1,1) = \lim_{f\to0} (0,1-f,1) % \end{align} % it is clear that there is only one way to define $F$ for $i=6$ in order to get a continuous function, as shown in equation (\ref{eq.hsb2rgb2}). % This has been transformed back to equation (\ref{eq.hsb2rgb1}). % A similar argument shows that $F$ indeed is a continuous function of \emph{hue} over the whole range $[0,1]$. % % % \paragraph{Conversion \Model{hsb} to \Model{Hsb}} % Only the first component has to be changed. % \begin{gather} % (\emph{hue\Circ}, \emph{saturation}, \emph{brightness}) := (H\cdot\emph{hue}, \emph{saturation}, \emph{brightness}) % \end{gather} % % % \paragraph{Conversion \Model{hsb} to \Model{HSB}} % As described in section \vref{sec.real2int}. % \begin{gather} % (\emph{Hue}, \emph{Saturation}, \emph{Brightness}) := \bigl(\RtoI M(\emph{hue}), \RtoI M(\emph{saturation}), \RtoI M(\emph{brightness})\bigr) % \end{gather} % % % \paragraph{Complement of \Model{hsb} color} % We have not found a formula in the literature, therefore we give a short proof afterwards. % \begin{lemma} % The \textup{\Model{hsb}}-complement can be calculated by the following formulas:\em % \begin{align} % \emph{hue}^* & := % \begin{cases} % \emph{hue} + \frac12 & \text{if $\emph{hue}<\frac12$}\\[1ex] % \emph{hue} - \frac12 & \text{if $\emph{hue}\ge\frac12$}\\ % \end{cases}\\[1ex] % \emph{brightness}^* & := 1 - \emph{brightness}\cdot(1-\emph{saturation})\\[1ex] % \emph{saturation}^* & := % \begin{cases} % 0 & \text{if $\emph{brightness}^*=0$}\\[1ex] % \displaystyle\frac{\emph{brightness}\cdot\emph{saturation}}{\emph{brightness}^*} & \text{if $\emph{brightness}^*\ne0$} % \end{cases} % \end{align} % \end{lemma} % % \begin{proof} % Starting with the original color $C=(h,s,b)$, we define color $C^*=(h^*,s^*,b^*)$ by the given formulas, convert both $C$ and $C^*$ to the \Model{rgb} model and show that % \begin{gather} % C_{\Model{rgb}} + C_{\Model{rgb}}^* = b\cdot(E - s\cdot F) + b^*\cdot(E - s'\cdot F^*) \stackrel!= E,\label{eq.hsbcompl1} % \end{gather} % which means that $C_{\Model{rgb}}$ is the complement of $C_{\Model{rgb}}^*$. % First we note that the parameters of $C^*$ are in the legal range $[0,1]$. % This is obvious for $h^*,b^*$. % From % $b^* = 1-b\cdot(1-s) = 1 - b + b\cdot s$ % we derive $b\cdot s = b^* - (1-b) \le b^*$, therefore $s^*\in[0,1]$, and % \begin{gather*} % b^* = 0 \Leftrightarrow s=0 \text{ and } b=1. % \end{gather*} % Thus, equation (\ref{eq.hsbcompl1}) holds in the case $b^*=0$. % Now we assume $b^*\ne0$, hence % \begin{align*} % C_{\Model{rgb}} + C_{\Model{rgb}}^* % &= b\cdot(E - s\cdot F) + b^*\cdot\Bigl(E - \frac{b\cdot s}{b^*}\cdot F^*\Bigr) \\ % &= b\cdot E - b\cdot s\cdot F + b^*\cdot E - b\cdot s\cdot F^*\\[1ex] % &= E - b\cdot s\cdot(F+F^*-E) % \end{align*} % since $b^*=1-b+bs$. % Therefore, it is sufficient to show that % \begin{gather} % F+F^*=E.\label{eq.hsbcompl2} % \end{gather} % From % \begin{gather*}\textstyle % h<\frac12 \Rightarrow h^*=h+\frac12 \Rightarrow 6h^* = 6h+3 \Rightarrow i^*=i+3 \text{ and } f^*=f % \end{gather*} % it is easy to see from (\ref{eq.hsb2rgb2}) that equation (\ref{eq.hsbcompl2}) holds for the cases $i=0,1,2$. % Similarly, % \begin{gather*}\textstyle % h\ge\frac12 \Rightarrow h^*=h-\frac12 \Rightarrow 6h^* = 6h-3 \Rightarrow i^*=i-3 \text{ and } f^*=f % \end{gather*} % and again from (\ref{eq.hsb2rgb2}) we derive (\ref{eq.hsbcompl2}) for the cases $i=3,4,5$. % Finally, if $i=6$ then $f=0$ and $F+F^* = (0,1,1) + (1,0,0) = E$. % \end{proof} % % % \subsubsection{The \Model{Hsb} model} % % \paragraph{Conversion \Model{Hsb} to \Model{hsb}} % Only the first component has to be changed. % \begin{gather} % (\emph{hue}, \emph{saturation}, \emph{brightness}) := (\emph{hue\Circ}/H, \emph{saturation}, \emph{brightness}) % \end{gather} % % % \paragraph{Conversion \Model{Hsb} to \Model{tHsb}} % Under the settings of (\ref{eq.tHsb1})--(\ref{eq.tHsb3}) we simply have to exchange the letters $x$ and $y$ in equation (\ref{eq.tHsb4}) to get the inverse transformation: % \begin{gather} % \displaystyle \emph{hue\Circ}\in\left[y_{\eta-1},y_\eta\right] \Rightarrow % \emph{hue\Circ} := x_{\eta-1} + \frac{x_\eta - x_{\eta-1}}{y_\eta - y_{\eta-1}}\cdot(\emph{hue\Circ} - y_{\eta-1}) % \end{gather} % while \emph{saturation} and \emph{brightness} are left unchanged. % % % \subsubsection{The \Model{tHsb} model} % % \paragraph{Conversion \Model{tHsb} to \Model{Hsb}}\label{sec.tHsb2Hsb} % \DescribeMacro\rangeHsb % \DescribeMacro\rangetHsb % We assume that $\texttt{\string\rangeHsb}=H$ and |\rangetHsb| expands to % \begin{gather} % x_1,y_1;x_2,y_2;\dots;x_{h-1},y_{h-1}\label{eq.tHsb1} % \intertext{where} % x_0:=00$. % Now the $x$ and $y$ values determine a piecewise linear transformation: % \begin{gather} % \displaystyle \emph{hue\Circ}\in\left[x_{\eta-1},x_\eta\right] \Rightarrow % \emph{hue\Circ} := y_{\eta-1} + \frac{y_\eta - y_{\eta-1}}{x_\eta - x_{\eta-1}}\cdot(\emph{hue\Circ} - x_{\eta-1}) % \label{eq.tHsb4} % \end{gather} % while \emph{saturation} and \emph{brightness} are left unchanged. % % % \subsubsection{The \Model{gray} model} % % \paragraph{Conversion \Model{gray} to \Model{rgb}} % Source: \cite{plrm}, p. 474. % \begin{gather} % (\emph{red}, \emph{green}, \emph{blue}) := \emph{gray}\cdot E % \end{gather} % % % \paragraph{Conversion \Model{gray} to \Model{cmy}} % This is derived from the conversion chain $\Model{gray}\to\Model{rgb}\to\Model{cmy}$. % \begin{gather} % (\emph{cyan}, \emph{magenta}, \emph{yellow}) := (1-\emph{gray})\cdot E % \end{gather} % % % \paragraph{Conversion \Model{gray} to \Model{cmyk}} % Source: \cite{plrm}, p. 475. % \begin{gather} % (\emph{cyan}, \emph{magenta}, \emph{yellow}, \emph{black}) := (0,0,0,1-\emph{gray}) % \end{gather} % % % \paragraph{Conversion \Model{gray} to \Model{hsb}} % This is derived from the conversion chain $\Model{gray}\to\Model{rgb}\to\Model{hsb}$. % \begin{gather} % (\emph{hue}, \emph{saturation}, \emph{brightness}) := (0,0,\emph{gray}) % \end{gather} % % % \paragraph{Conversion \Model{gray} to \Model{Hsb}/\Model{tHsb}} % This is derived from the conversion chain $\Model{gray}\to\Model{hsb}\to\Model{Hsb}$, followed by $\Model{Hsb}\to\Model{tHsb}$ if applicable. % \begin{gather} % (\emph{hue\Circ}, \emph{saturation}, \emph{brightness}) := (0,0,\emph{gray}) % \end{gather} % % % \paragraph{Conversion \Model{gray} to \Model{Gray}} % As described in section \vref{sec.real2int}. % \begin{gather} % \emph{Gray} := \RtoI N(\emph{gray}) % \end{gather} % % % \paragraph{Complement of \Model{gray} color} % This is similar to the \Model{rgb} case: % \begin{gather} % \emph{gray}^* := 1 - \emph{gray} % \end{gather} % % % \subsubsection{The \Model{RGB} model} % % \paragraph{Conversion \Model{RGB} to \Model{rgb}} % As described in section \vref{sec.int2real}. % \begin{gather} % (\emph{red}, \emph{green}, \emph{blue}) := \bigl(\ItoR L(\emph{Red}), \ItoR L(\emph{Green}), \ItoR L(\emph{Blue})\bigr) % \end{gather} % % % \subsubsection{The \Model{HTML} model} % % \paragraph{Conversion \Model{HTML} to \Model{rgb}} % As described in section \vref{sec.int2real}: starting with \emph{RRGGBB} set % \begin{gather} % (\emph{red}, \emph{green}, \emph{blue}) := \bigl(\ItoR{255}(\emph{RR}_{\emph{dec}}), \ItoR{255}(\emph{GG}_{\emph{dec}}), \ItoR{255}(\emph{BB}_{\emph{dec}})\bigr) % \end{gather} % % % \subsubsection{The \Model{HSB} model} % % \paragraph{Conversion \Model{HSB} to \Model{hsb}} % As described in section \vref{sec.int2real}. % \begin{gather} % (\emph{hue}, \emph{saturation}, \emph{brightness}) := \bigl(\ItoR M(\emph{Hue}), \ItoR M(\emph{Saturation}), \ItoR M(\emph{Brightness})\bigr) % \end{gather} % % % \subsubsection{The \Model{Gray} model} % % \paragraph{Conversion \Model{Gray} to \Model{gray}} % As described in section \vref{sec.int2real}. % \begin{gather} % \emph{gray} := \ItoR N(\emph{Gray}) % \end{gather} % % % \subsubsection{The \Model{wave} model} % % \paragraph{Conversion \Model{wave} to \Model{rgb}} % Source: based on \People{Dan}{Bruton}'s algorithm \cite{Bruton}. % Let $\lambda$ be a visible wavelength, given in nanometers (nm), i.e., $\lambda\in\left[380,780\right]$. % We assume further that $\gamma>0$ is a fixed number ($\gamma=0.8$ in \cite{Bruton}). % First set % \begin{align} % (r,g,b) & := % \begin{cases} % \displaystyle \Bigl(\frac{440-\lambda}{440-380},0,1\Bigr) & \text{if $\lambda\in[380,440[$}\\[1.75ex] % \displaystyle \Bigl(0,\frac{\lambda-440}{490-440},1\Bigr) & \text{if $\lambda\in[440,490[$}\\[1.75ex] % \displaystyle \Bigl(0,1,\frac{510-\lambda}{510-490}\Bigr) & \text{if $\lambda\in[490,510[$}\\[1.75ex] % \displaystyle \Bigl(\frac{\lambda-510}{580-510},1,0\Bigr) & \text{if $\lambda\in[510,580[$}\\[1.75ex] % \displaystyle \Bigl(1,\frac{645-\lambda}{645-580},0\Bigr) & \text{if $\lambda\in[580,645[$}\\[2.5ex] % \displaystyle (1,0,0) & \text{if $\lambda\in[645,780]$}\\ % \end{cases}\label{eq.gamma2rgb1}\\ % \intertext{then, in order to let the intensity fall off near the vision limits,} % f & := % \begin{cases} % \displaystyle 0.3 + 0.7\cdot\frac{\lambda-380}{420-380} & \text{if $\lambda\in\left[380,420\right[$}\\[1.25ex] % \displaystyle 1 & \text{if $\lambda\in[420,700]$}\\[1ex] % \displaystyle 0.3 + 0.7\cdot\frac{780-\lambda}{780-700} & \text{if $\lambda\in\left]700,780\right]$}\\ % \end{cases}\label{eq.gamma2rgb2}\\ % \intertext{and finally} % (\emph{red},\emph{green},\emph{blue}) & := \bigl((f\cdot r)^\gamma, (f\cdot g)^\gamma, (f\cdot b)^\gamma\bigr) % \end{align} % The intermediate colors $(r,g,b)$ at the interval borders of equation (\ref{eq.gamma2rgb1}) are well-known: % for $\lambda=380,440,490,510,580,645$ we get \Color{magenta}, \Color{blue}, \Color{cyan}, \Color{green}, \Color{yellow}, \Color{red}, respectively. % These turn out to be represented in the \Model{hsb} model by $\emph{hue}=\frac56,\frac46,\frac36,\frac26,\frac16,\frac06$, whereas $\emph{saturation}=\emph{brightness}=1$ throughout the 6~colors. % Furthermore, these \Model{hsb} representations are independent of the actual $\gamma$ value. % Staying within this model framework, we observe that the intensity fall off near the vision limits --- as represented by equation (\ref{eq.gamma2rgb2}) --- translates into decreasing \emph{brightness} parameters towards the margins. % A simple calculation shows that the edges $\lambda=380,780$ of the algorithm yield the colors |magenta!|$0.3^\gamma$|!black|, |red!|$0.3^\gamma$|!black|, respectively. % We see no reason why we should not extend these edges in a similar fashion to end-up with true \Color{black} on either side. % Now we are prepared to translate everything into another, more natural algorithm. % % % \paragraph{Conversion \Model{wave} to \Model{hsb}} % Let $\lambda>0$ be a wavelength, given in nanometers (nm), and let % \begin{gather} % \varrho : \bbbR \to \left[0,1\right],\ x \mapsto \bigl( \min\{ 1, \max\{ 0,x\} \} )^\gamma % \end{gather} % with a fixed correction number $\gamma>0$. % Then % \begin{align} % \emph{hue} & := \displaystyle \frac16\cdot % \begin{cases} % \displaystyle 4 + \varrho\Bigl(\frac{\lambda-440}{380-440}\Bigr) & \text{if $\lambda<440$}\\[1.75ex] % \displaystyle 4 - \varrho\Bigl(\frac{\lambda-440}{490-440}\Bigr) & \text{if $\lambda\in[440,490[$}\\[1.75ex] % \displaystyle 2 + \varrho\Bigl(\frac{\lambda-510}{490-510}\Bigr) & \text{if $\lambda\in[490,510[$}\\[1.75ex] % \displaystyle 2 - \varrho\Bigl(\frac{\lambda-510}{580-510}\Bigr) & \text{if $\lambda\in[510,580[$}\\[1.75ex] % \displaystyle 0 + \varrho\Bigl(\frac{\lambda-645}{580-645}\Bigr) & \text{if $\lambda\in[580,645[$}\\[2.5ex] % \displaystyle 0 & \text{if $\lambda\ge645$}\\ % \end{cases}\label{eq.gamma2hsb1}\\[1ex] % \emph{saturation} & := 1\\[1ex] % \emph{brightness} & := % \begin{cases} % \displaystyle \varrho\Bigl(0.3 + 0.7\cdot\frac{\lambda-380}{420-380}\Bigr) & \text{if $\lambda<420$}\\[1.5ex] % \displaystyle 1 & \text{if $\lambda\in[420,700]$}\\[1ex] % \displaystyle \varrho\Bigl(0.3 + 0.7\cdot\frac{\lambda-780}{700-780}\Bigr) & \text{if $\lambda>700$}\\ % \end{cases}\label{eq.gamma2hsb2} % \end{align} % For the sake of completeness we note that, independent of $\gamma$, % \begin{gather*} % (\emph{hue},\emph{saturation},\emph{brightness}) = % \begin{cases} % \bigl(\frac56,1,0\bigr) & \text{if $\lambda\le 380 - \frac{3\cdot(420-380)}7 = 362.857\dots$}\\[1.5ex] % \bigl(0,1,0\bigr) & \text{if $\lambda\ge 780 + \frac{3\cdot(780-700)}7 = 814.285\dots$}\\ % \end{cases}\label{eq.gamma2hsb3} % \end{gather*} % What is the best (or, at least, a good) value for $\gamma$? % In the original algorithm \cite{Bruton}, $\gamma=0.8$ is chosen. % However, we could not detect significant visible difference between the cases $\gamma=0.8$ and $\gamma=1$. % Thus, for the time being, \XC's implementation uses the latter value which implies a pure linear approach. % In the \Package{pstricks} examples file \href{xcolor2.pdf}{\File{xcolor2.tex}}, there is a demonstration of different $\gamma$ values. % % \clearpage % % % % \begin{adjustwidth}{-2.5cm}{} % \begingroup\raggedright % \begin{thebibliography}{00} % \addcontentsline{toc}{section}{References} % % \bibitem{plrm}% % {Adobe Systems Incorporated: ``PostScript Language Reference Manual''. Addison-Wesley, third edition, 1999. % \URL{http://www.adobe.com/products/postscript/pdfs/PLRM.pdf}} % % \bibitem{fbox}% % {\People{Donald}{Arseneau}: ``Patch so \cmd\fbox{} draws frame on top of text''. \LaTeX{} bug report, latex/3655, 2004/03/18. % \URL{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3655}} % % \bibitem{url}% % {\People{Donald}{Arseneau}: \Package{url} package, ``2005/06/27 ver 3.2 Verb mode for urls, etc.''. % \CTAN{macros/latex/contrib/misc/}{url.sty}} % % \bibitem{Bruton}% % {\People{Dan}{Bruton}: ``Approximate RGB values for Visible Wavelengths'', 1996. % \URL{http://www.physics.sfasu.edu/astro/color/spectra.html}} % % \bibitem{dpc}% % {\People{David P.}{Carlisle}: ``Packages in the `graphics' bundle'', 2005. % \CTAN{macros/latex/required/graphics/}{grfguide.*}} % % \bibitem{color}% % {\People{David P.}{Carlisle}: \LCP, ``2005/11/14 v1.0j Standard \LaTeX{} Color''. % \CTAN{macros/latex/required/graphics/}{color.dtx}} % % \bibitem{colortbl}% % {\People{David P.}{Carlisle}: \Package{colortbl} package, ``2001/02/13 v0.1j Color table columns''. % \CTAN{macros/latex/contrib/colortbl/}{}} % % \bibitem{pstcol}% % {\People{David P.}{Carlisle}, \People{Herbert}{Vo\ss}, \People{Rolf}{Niepraschk}: \Package{pstcol} package, ``2005/11/16 v1.2 LaTeX wrapper for `PSTricks'{}''. % \CTAN{macros/graphics/pstricks/latex/}{pstcol.sty}} % % \bibitem{chroma}% % {\People{Uwe}{Kern}: ``Chroma: a reference book of \LaTeX{} colors''. % \CTAN{info/colour/chroma/}{} and % \URL{http://www.ukern.de/tex/chroma.html}} % % \bibitem{xcolor}% % {\People{Uwe}{Kern}: \Package{xcolor} package, ``\LaTeX{} color extensions''. % \CTAN{macros/latex/contrib/xcolor/}{} and % \URL{http://www.ukern.de/tex/xcolor.html}} % % \bibitem{mik}% % {MiK\TeX{} Project: % \URL{http://www.miktex.org/}} % % \bibitem{colorinfo}% % {\People{Rolf}{Niepraschk}: \Package{colorinfo} package, ``2003/05/04 v0.3c Info from defined colors''. % \CTAN{macros/latex/contrib/colorinfo/}{}} % % \bibitem{pdfcolmk}% % {\People{Heiko}{Oberdiek}: \Package{pdfcolmk} package, ``2006/02/20 v0.8 PDFtex COLor MarK''. % \CTAN{macros/latex/contrib/oberdiek/}{pdfcolmk.*}} % % \bibitem{hyperref}% % {\People{Sebastian}{Rahtz}, \People{Heiko}{Oberdiek}: \Package{hyperref} package, ``2006/09/06 v6.75e Hypertext links for \LaTeX''. % \CTAN{macros/latex/contrib/hyperref/}{}} % % \bibitem{smith}% % {\People{Alvy Ray}{Smith}: ``Color Gamut Transform Pairs''. \emph{Computer Graphics} (ACM SIGGRAPH), Volume 12, Number 3, August 1978. % \URL{http://alvyray.com/Papers/PapersCG.htm}} % % \bibitem{HTML4}% % {World Wide Web Consortium: ``HTML4 color keywords''. % \URL{http://www.w3.org/TR/css3-color/\#html4}} % % \bibitem{svg}% % {World Wide Web Consortium: ``Scalable Vector Graphics (\Index{SVG}) 1.1 Specification --- Basic Data Types and Interfaces''. % \URL{http://www.w3.org/TR/SVG11/types.html\#ColorKeywords}} % % \end{thebibliography} % \endgroup % \clearpage % % \columnsep2.25em % \begin{multicols}{2}[\section*{Appendix}% % \addcontentsline{toc}{section}{Appendix}] % % \subsection*{Acknowledgement} % \addcontentsline{toc}{subsection}{Acknowledgement} % This package is based on and contains code copied from \cite{color} (Copyright (C) 1994--1999 \People{David P.}{Carlisle}), which is part of the Standard \LaTeX{} `Graphics Bundle'. % Although many commands and features have been added and most of the original \LC{} commands have been rewritten or adapted within \XC, the latter package would not exist without \LC. % Thus, the author is grateful to \People{David P.}{Carlisle} for having created \LC{} and its accompanying files. % % \subsection*{Trademarks} % \addcontentsline{toc}{subsection}{Trademarks} % Trademarks appear throughout this documentation without any trademark symbol; they are the property of their respective trademark owner. % There is no intention of infringement; the usage is to the benefit of the trademark owner. % % \raggedright % \leftmargini1em % \leftmarginii1em % \leftmarginiii1em % % \subsection*{Known Issues} % \addcontentsline{toc}{subsection}{Known Issues} % \begin{itemize} % \item |\rowcolors[\hline]...| does not work with \Package{longtable}. % \end{itemize} % % \subsection*{History} % \addcontentsline{toc}{subsection}{History} % % \subsubsection*{2007/01/21 v2.11} % \begin{itemize} % \item New features: % \begin{itemize} % \item color names \Color{lime} and \Color{teal} added to the set of predefined colors. % \end{itemize} % \item Bugfix: % \begin{itemize} % \item incorrect |\XC@strip@comma| call within \Package{hyperref}-related options. % \end{itemize} % \end{itemize} % % \subsubsection*{2006/11/28 v2.10} % \begin{itemize} % \item New features: % \begin{itemize} % \item \Option{fixinclude} option prevents \Program{dvips} from explicitly resetting current color to \Color{black} before actually inserting an \File{.eps} file via |\color{red}\includegraphics{foo}|. % \end{itemize} % \item Changes: % \begin{itemize} % \item |\colorbox| and |\fcolorbox| made robust; % \item obsolete package option \oOption{pst} removed; % \item several changes to internal macros. % \end{itemize} % \item Bugfixes: % \begin{itemize} % \item incorrect processing of \Model{cmyk}-type current color `.'. % \end{itemize} % \end{itemize} % % \subsubsection*{2005/12/21 v2.09} % \begin{itemize} % \item New features: % \begin{itemize} % \item |\definecolor| and |\color| now accept space-separated color specifications, e.g., |\color| |[rgb]{1 .5 0}|; % \item experimental \Option{xcdraw} option extended to \Option{pdftex} and \Option{dvipdfm} drivers. % \end{itemize} % \item Changes: % \begin{itemize} % \item test file \File{xcolor2.tex} made compatible with recent changes in \Package{pstricks}; % \item test file \File{xcolor3.tex} extended; % \item driver test file \File{xcolor4.tex} extended to demonstrate the different frame drawing approaches; % \item more efficient implementation of driver-specific code. % \end{itemize} % \end{itemize} % % \subsubsection*{2005/11/25 v2.08} % \begin{itemize} % \item New features: % \begin{itemize} % \item more flexibility for |\fcolorbox| arguments, e.g., |\fcolorbox| |[gray]{0.5}[wave]{580}{test}|; % \item |\boxframe| returns a frame of given dimensions; % \item new implementation of |\f(rame)box| and |\fcolorbox| as an extension of bug report latex/3655 to reduce pixel positioning errors in output devices; % \item \Option{kernelfbox} option for those who prefer the previous |\f(rame)box| approach; % \item experimental \Option{xcdraw} option uses \Index{PostScript} commands to draw frames and color boxes in case of \Option{dvips}. % \end{itemize} % \item Bugfixes: % \begin{itemize} % \item insufficient expression type detection within |\colorlet|; % \item wrong calculation in the unit interval reduction for negative integers (affecting color series and extended color expressions). % \end{itemize} % \end{itemize} % % \subsubsection*{2005/11/12 v2.07} % \begin{itemize} % \item New features: % \begin{itemize} % \item color model \Model{Hsb} allows to specify \emph{hue} in degrees; % \item color model \Model{tHsb} (\pModel{tuned} \Model{Hsb}) for user-defined \emph{hue} configuration on color wheels; % \item easy generation of color harmonies derived from \Model{Hsb} or \Model{tHsb} color wheels, e.g., |\color{red>wheel,1,12}| yields an `analogous' color to \Color{red} on a 12-spoke wheel; % \item additional 317 predefined color names according to \File{rgb.txt}, which is part of \Index{Unix}/\Index{X11} distributions; % \item \Option{svgnames} option extended by~4~colors taken from \File{rgb.txt}; % \item enhanced syntax for immediate conversion, e.g., |\definecolor| |{foo}{rgb:gray}{0.3}| or |\color| |[rgb:wave]{478}|; % \item |\@ifundefinedcolor| and |\@ifundefinedmodel| commands; % \end{itemize} % \item Changes: % \begin{itemize} % \item enhanced documentation; % \item several changes to internal macros. % \end{itemize} % \item Bugfixes: % \begin{itemize} % \item wrong calculation of color series components in some cases of negative step parameters. % \end{itemize} % \end{itemize} % % \subsubsection*{2005/10/15 v2.06} % \begin{itemize} % \item New features: % \begin{itemize} % \item color model \Model{wave} for (approximate) visualisation of light wavelengths, still somewhat experimental; % \item pseudo-model \nModel{ps} for colors defined by literal \Index{PostScript} code in conjunction with \Package{pstricks} and \Option{dvips}; an illustrative example for a $\gamma$-correction approach is given in \href{xcolor2.pdf}{\File{xcolor2.tex}}; % \item |\substitutecolormodel| command for replacement of missing or faulty driver-specific color models; % \item improved detection and handling of driver-specific color models; % \item \Option{dvipdfmx} and \Option{xetex} options to support these drivers; % \item generic driver test file \File{xcolor4.tex}. % \end{itemize} % \item Changes: % \begin{itemize} % \item |\XC@strip@comma| doesn't generate a trailing space anymore, which improves also the output of the |testcolors| environment. % \end{itemize} % \end{itemize} % % \subsubsection*{2005/09/30 v2.05} % \begin{itemize} % \item New features: % \begin{itemize} % \item |testcolors| environment helps to test colors in different models, showing both the visual result and the model-specific parameters; % \item |\extractcolorspecs| puts model/color specification into two separate commands, as opposed to |\extractcolorspec|; % \item color names \Color{pink} and \Color{olive} added to the set of predefined colors. % \end{itemize} % \item Bugfixes: % \begin{itemize} % \item |\definecolor{foo}{named}{bar}| did not work in v2.04. % \end{itemize} % \end{itemize} % % \subsubsection*{2005/09/23 v2.04} % \begin{itemize} % \item New features: % \begin{itemize} % \item preparation for usage of additional -- driver-provided -- color models; % \item \Package{pstricks} users may now specify explicit color parameters within |\psset| and related commands, e.g., |\psset{linecolor=[rgb]{1,0,0}}|; an illustrative example is given in \href{xcolor2.pdf}{\File{xcolor2.tex}}. % \end{itemize} % \item Changes: % \begin{itemize} % \item color model names sanitized (i.e., turned to catcode~12) throughout the package; % \item |\@namelet| command deprecated because of name clash with \Package{memoir} --- please use |\XC@let@cc| instead (more |\XC@let@..| commands are available as well); % \item simplified color conversion code by using the new |\XC@ifxcase| command; % \item some minor changes to internal macros. % \end{itemize} % \end{itemize} % % \subsubsection*{2005/06/06 v2.03} % \begin{itemize} % \item New features: % \begin{itemize} % \item \Option{fixpdftex} option loads \Package{pdfcolmk} package in order to improve pdf\TeX's color behaviour during page breaks. % \end{itemize} % \item Changes: % \begin{itemize} % \item some minor changes to internal macros. % \end{itemize} % \item Bugfixes: % \begin{itemize} % \item due to an incorrect |\if| statement within |\XC@info|, |\colorlet| caused trouble whenever its second argument started with two identical letters, e.g., |\colorlet{rab}{oof}|; % \item argument processing of |\XC@getcolor| caused incompatibility with \Package{msc} package; % \item \Option{prologue} option caused incompatibility with \Package{preview} package. % \end{itemize} % \end{itemize} % % \subsubsection*{2005/03/24 v2.02} % \begin{itemize} % \item New features: % \begin{itemize} % \item |\aftergroupedef| command to reproduce |\aftergroupdef|'s behaviour prior to v2.01; % \item \XC's homepage \XCW{} now provides also a ready-to-run TDS-compliant archive containing all required files. % \end{itemize} % \item Changes: % \begin{itemize} % \item |\rowcolors| and friends are solely enabled by the \Option{table} option; % \item |\@ifxempty| changed back to more robust variant of v2.00. % \end{itemize} % \item Bugfixes: % \begin{itemize} % \item |\psset{linecolor=\ifcase\foo| |red\or green\or blue\fi}| did not work with \Package{pstricks} (error introduced in v2.01). % \end{itemize} % \end{itemize} % % \subsubsection*{2005/03/15 v2.01} % \begin{itemize} % \item New features: % \begin{itemize} % \item \Option{prologue} option for comprehensive `named' color support in conjunction with \Option{dvips}: on-the-fly generation of \Index{PostScript} prologue files with all color definitions, ready for \Program{dvips} inclusion and/or post-processing with device-specific parameters (e.g., spot colors); % \item \Program{dvips} prologue file \File{xcolor.pro} to support additional `named' colors; % \item |\colorlet| may now also be used to create named colors from arbitrary color expressions; % \item enhanced color definition syntax to allow for target-model specific color parameters, e.g., |\definecolor| |{red}{rgb/cmyk}{1,0,0/0,1,1,0}|, facilitating the usage of tailor-made colors both for displays and printers; % \item `deferred definition' of colors: |\preparecolor| and |\definecolors| enable decoupling of color specification and control sequence generation, especially useful (= memory saving) for large lists of colors, of which only a few names are actually used; % \item \Option{dvipsnames*} and \Option{svgnames*} options to support deferred definition. % \end{itemize} % \item Changes: % \begin{itemize} % \item higher accuracy: most complement calculations are now exact for all 5-digit decimals; % \item |\rangeRGB| and similar variables may now be changed at any point in a document; % \item |\aftergroupdef| now performs only a first-level expansion of its code argument; % \item |\XCfileversion| and similar internal constants removed from \File{.sty} and \File{.def} files; % \item improved memory management (reduced generation of `multiletter control sequences' by |\@ifundefined| tests); % \item several internal macros improved and/or renamed. % \end{itemize} % \item Bugfixes: % \begin{itemize} % \item |\XC@getcolor| could cause unwanted spaces when |\psset| was used inside |pspicture| environments (\Package{pstricks}); % \item arithmetic overflow could happen when too many decimal digits were used within color parameters, e.g., as a result of \Package{fp} calculations. % \end{itemize} % \end{itemize} % % \subsubsection*{2004/07/04 v2.00} % \begin{itemize} % \item New features: % \begin{itemize} % \item extended functionality for color expressions: mix colors like a painter; % \item support for color blending: specify color mix expressions that are being blended with every displayed color; % \item |\xglobal| command for selective control of globality for color definitions, blends, and masks; % \item multiple step operations (e.g., |\color{foo!!+++}|) and access to individual members (e.g., |\color{foo!![7]}|) in color series; % \item |\providecolor| command to define only non-existent colors; % \item |\definecolorset| and |\providecolorset| commands to facilitate the construction of color sets with common underlying color model; % \item additional 147 predefined color names according to \Index{SVG}~1.1 specification; % \item \Key{xpdfborder} key for setting the width of hyperlink borders in a more driver-independent way if \Program{dvips} is used. % \end{itemize} % \item Changes: % \begin{itemize} % \item \LCP{} now completely integrated within \XC; % \item \oOption{override}, \oOption{usenames}, \oOption{nodvipsnames} options and |\xdefinecolor| command no longer needed; % \item \Option{dvips} and \Option{dvipsnames} options now independent of each other; % \item |\tracingcolors|'s behaviour changed to make it more versatile and reduce log file size in standard cases; % \item |\rdivide|'s syntax made more flexible (divide by numbers and/or dimensions); % \item code restructured, some internal commands renamed; % \item documentation rearranged and enhanced. % \end{itemize} % \item Bugfixes: % \begin{itemize} % \item |\definecolor{foo}{named}{bar}| did not work (error introduced in v1.11); % \item more robust behaviour of conditionals within \Package{pstricks} key-values. % \end{itemize} % \end{itemize} % % \subsubsection*{2004/05/09 v1.11} % \begin{itemize} % \item New features: % \begin{itemize} % \item switch |\ifglobalcolors| to control whether color definitions are global or local; % \item option \Option{hyperref} provides color expression support for the border colors of hyperlinks, e.g., |\hypersetup| |{xurlbordercolor=red!50!yellow}|; % \item internal hooks |\XC@bcolor|, |\XC@mcolor|, and |\XC@ecolor| for additional code that has to be executed immediately before/after the current color is being displayed. % \end{itemize} % \item Changes: % \begin{itemize} % \item |\XC@logcolor| renamed to |\XC@display|, which is now the core color display command; % \item improved interface to \Package{pstricks}. % \end{itemize} % \end{itemize} % % \subsubsection*{2004/03/27 v1.10} % \begin{itemize} % \item New features: % \begin{itemize} % \item support for \nModel{named} model; % \item support for \Program{dvips} colors (may now be used within color expressions); % \item internal representation of `ordinary' and `named' colors merged into unified data structure; % \item allow multiple `-' signs at the beginning of color expressions. % \end{itemize} % \item Bugfixes: % \begin{itemize} % \item commands like |\color[named]{foo}| caused errors when color masking or target model conversion were active; % \item incompatibility with \Package{soul} package: commands |\hl|, |\ul|, etc. could yield unexpected results. % \end{itemize} % \item Documentation: % \begin{itemize} % \item added formula for general color expressions; % \item enhanced text and index; % \item removed dependence of index generation on local configuration file. % \end{itemize} % \end{itemize} % % \subsubsection*{2004/02/16 v1.09} % \begin{itemize} % \item New features: % \begin{itemize} % \item color model \Model{HTML}, a 24-bit hexadecimal \Model{RGB} variant; allows to specify colors like |\color[HTML]{AFFE90}|; % \item color names \Color{orange}, \Color{violet}, \Color{purple}, and \Color{brown} added to the set of predefined colors. % \end{itemize} % \item New \XC{} homepage: \XCW % \item Bugfix: |\xdefinecolor| sometimes did not normalise its parameters. % \item Changes: % \begin{itemize} % \item slight improvements of the documentation; % \item example file |xcolor1.tex| reorganised and abridged. % \end{itemize} % \end{itemize} % % \subsubsection*{2004/02/04 v1.08} % \begin{itemize} % \item New commands: % \begin{itemize} % \item |\selectcolormodel| to change the target model within a document; % \item |\adjustUCRBG| to fine-tune undercolor-removal and black-generation during conversion to \Model{cmyk}. % \end{itemize} % \item Bugfix: color expressions did not work correctly in connection with active `!' character, e.g., in case of |\usepackage[frenchb]babel}|. % \item Code re-organisation: % \begin{itemize} % \item |\XC@xdefinecolor| merged into |\xdefinecolor|, making the first command obsolete; % \item several internal commands improved/streamlined. % \end{itemize} % \end{itemize} % % \subsubsection*{2004/01/20 v1.07} % \begin{itemize} % \item New feature: support for color masking and color separation. % \item New commands: % \begin{itemize} % \item |\rmultiply| to multiply a dimension register by a real number; % \item |\xcolorcmd| to pass commands that are to be executed at the end of the package. % \end{itemize} % \item Changes: % \begin{itemize} % \item more consistent color handling: extended colors now always take precedence over standard colors; % \item several commands improved by using code from the \LaTeX{} kernel. % \end{itemize} % \item Documentation: some minor changes. % \item Example files: additional \Package{pstricks} examples (file \href{xcolor2.pdf}{\File{xcolor2.tex}}). % \end{itemize} % % \subsubsection*{2003/12/15 v1.06} % \begin{itemize} % \item New feature: extended color expressions, allowing for cascaded mix operations, e.g., |\color{red!30!green!40!blue}|. % \item Documentation: new section on color expressions. % \item Bugfix:~color series stepping did not work correctly within non-displaying commands like |\extractcolorspec{foo!!+}| (this bug was introduced in v1.05). % \item Renamed~commands:~|\ukfileversion| and similar internal constants renamed to |\XCfileversion| etc. % \item Removed~commands:~|\ifXCpst| and |\ifXCtable| made obsolete by a simple trick. % \end{itemize} % % \subsubsection*{2003/11/21 v1.05} % \begin{itemize} % \item Bugfixes: % \begin{itemize} % \item package option \Option{hideerrors} should now work as expected; % \item usage of `.' in the first color expression in a document caused an error due to incorrect initialisation. % \end{itemize} % \item Code re-organisation: |\extractcolorspec| now uses |\XC@splitcolor|, making |\XC@extract| obsolete. % \end{itemize} % % \subsubsection*{2003/11/09 v1.04} % \begin{itemize} % \item New feature: easy access to current color within color expressions. % \item New option: \oOption{override} to replace |\definecolor| by |\xdefinecolor|. % \item New command: |\tracingcolors| for logging color-specific information. % \end{itemize} % % \subsubsection*{2003/09/21 v1.03} % \begin{itemize} % \item Change: bypass strange behaviour of some drivers. % \item New feature: driver-sharing with \Package{hyperref}. % \end{itemize} % % \subsubsection*{2003/09/19 v1.02} % \begin{itemize} % \item Change: |\extractcolorspec| and |\colorlet| now also accept color series as arguments. % \end{itemize} % % \subsubsection*{2003/09/15 v1.01} % \begin{itemize} % \item New feature: |\definecolorseries| and friends. % \item Documentation: removed some \Package{doc}-related side-effects. % \item Code re-organisation: all calculation-related tools put to one place. % \item Bugfixes: % \begin{itemize} % \item |\@rdivide|: added |\relax| to fix problem with negative numerators; % \item |\rowc@l@rs|: replaced |\@ifempty| by |\@ifxempty|. % \end{itemize} % \end{itemize} % % \subsubsection*{2003/09/09 v1.00} % \begin{itemize} % \item First published release. % \end{itemize} % % \end{multicols} % \end{adjustwidth} % % \StopEventually{} % \clearpage % % \section{The Implementation} % % Some commands have been copied unchanged from \cite{color} (Copyright (C) 1994--1999 \People{David P.}{Carlisle}), which is part of the Standard \LaTeX{} `Graphics Bundle'. % Additionally, also some parts of the code documentation were copied from \cite{color}. % % % % \subsection{Preparation} % % \subsubsection{File identification} % % \renewcommand*\MacroFont{\footnotesize\ttfamily} % \renewcommand*\AltMacroFont{\footnotesize\ttfamily\slshape} % % \begin{macrocode} %<*package> % \end{macrocode} % % \fbox{\MacroFont\string\ProvidesPackage\string{xcolor\string}[\XCfiledate\space\XCfileversion\space LaTeX color extensions (UK)]} % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} % \end{macrocode} % % % \subsubsection{Safety first} % % \begin{macro}{\XC@catcodes} % Save catcodes for later restore: % \begin{macrocode} \expandafter\edef\csname XC@catcodes\endcsname {\catcode33 \the\catcode33 % ! \catcode34 \the\catcode34 % " \catcode39 \the\catcode39 % ' \catcode42 \the\catcode42 % * \catcode44 \the\catcode44 % , \catcode45 \the\catcode45 % - \catcode46 \the\catcode46 % . \catcode47 \the\catcode47 % / \catcode58 \the\catcode58 % : \catcode59 \the\catcode59 % ; \catcode60 \the\catcode60 % < \catcode61 \the\catcode61 % = \catcode62 \the\catcode62 % > \catcode63 \the\catcode63 % ? \catcode64 \the\catcode64 % @ \catcode94 \the\catcode94 % ^ \catcode96 \the\catcode96 % ` \catcode`\noexpand\^^A\the\catcode`\^^A\relax} % \end{macrocode} % \end{macro} % % \begin{macrocode} \catcode64 11 % \@makeother\! \@makeother\" \@makeother\' \@makeother\* \@makeother\, \@makeother\- \@makeother\. \@makeother\/ \@makeother\: \@makeother\; \@makeother\< \@makeother\= \@makeother\> \@makeother\? \@makeother\` \catcode94 7 % \catcode`\^^A=14 % % \end{macrocode} % % % \subsubsection{Constants} % % \begin{macro}{\XC@@} % Macro consisting of the macro |\\XC@@|, serves as a delimiter. % \begin{macrocode} \edef\XC@@{\expandafter\noexpand\csname\string\XC@@\endcsname} % \end{macrocode} % \end{macro} % % % \subsubsection{Switches} % % \begin{macro}{\ifcolors@} % This boolean can be tested by higher level macros that may want to alter their behaviour if a monochrome driver is being used. % \begin{macrocode} \newif\ifcolors@ \colors@true % \end{macrocode} % \end{macro} % % \begin{macro}{\ifcolorerrors@} % Controls whether missing color models/names result in error or warning messages. % \begin{macrocode} \newif\ifcolorerrors@ % \end{macrocode} % \end{macro} % % \begin{macro}{\ifglobalcolors} % Controls whether |\definecolor| and |\colorlet| generate global or local color definitions. % \begin{macrocode} \newif\ifglobalcolors \globalcolorsfalse % \end{macrocode} % \end{macro} % % \begin{macro}{\ifdefinecolors} % Controls whether |\definecolorset| should \emph{define} or \emph{prepare} colors. % \begin{macrocode} \newif\ifdefinecolors \definecolorstrue % \end{macrocode} % \end{macro} % % \begin{macro}{\ifconvertcolorsD} % \begin{macro}{\ifconvertcolorsU} % Control whether conversion to target models take place at \emph{definition} time (|\ifconvertcolorsD|) and/or \emph{usage} (|\ifconvertcolorsU|). % \begin{macrocode} \newif\ifconvertcolorsD \newif\ifconvertcolorsU % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\ifblendcolors} % \begin{macro}{\ifmaskcolors} % Control whether colors are to be blended and/or masked at display time. % \begin{macrocode} \newif\ifblendcolors \newif\ifmaskcolors % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\ifXC@@fbox} % \begin{macro}{\ifXC@@tst} % Auxiliary test variables. % \begin{macrocode} \newif\ifXC@@fbox \XC@@fboxtrue \newif\ifXC@@tst % \end{macrocode} % \end{macro} % \end{macro} % % % \subsubsection{Error handling} % % \begin{macro}{\c@lor@error} % Multi-purpose error handler (issues warnings instead of errors if the \Option{hideerrors} option is used). % This command is used already in the options section. % \begin{macrocode} \def\c@lor@error#1% {\ifcolorerrors@\PackageError{xcolor}{Undefined color #1}\@ehc \else\PackageWarning{xcolor}{Undefined color #1}\fi} % \end{macrocode} % \end{macro} % % % \subsubsection{Macro concatenation} % % \begin{macro}{\XC@append} % \marg{cmd}\marg{token list}\\ % Append \Meta{token list} to the definition of \Meta{cmd}. % This command is used already in the options section. % \begin{macrocode} \def\XC@append#1#2% {\ifx#1\@undefined\def#1{#2}\else\ifx#1\relax\def#1{#2}\else \toks@\expandafter{#1#2}\edef#1{\the\toks@}\fi\fi} % \end{macrocode} % \end{macro} % % % \subsubsection{Macro definition} % % The following |\XC@let@..| commands mimic \LaTeX3's coding syntax for the type of arguments used: % the `c' type is for brace delimited arguments which turn into a control sequence inside |\csname ... \endcsname|, whereas `N' is just a single token. % Thanks to \People{Morten}{H\o gholm} for pointing me to that. % % \begin{macro}{\XC@let@cc} % \marg{target character string}\marg{source character string}\\ % Performs |\let\|\Meta{target character string}|=\|\Meta{source character string}. % \begin{macrocode} \def\XC@let@cc#1{\expandafter\XC@let@Nc\csname#1\endcsname} % \end{macrocode} % \end{macro} % % \begin{macro}{\@namelet} % This is provided for compatibility reasons only, although deprecated because of a name clash with \Package{memoir}. % \begin{macrocode} \providecommand*\@namelet[1]{\expandafter\XC@let@Nc\csname#1\endcsname} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@let@Nc} % \marg{target name}\marg{source character string}\\ % Performs |\let|\Meta{target name}|=\|\Meta{source character string}. % Formerly called |\@@namelet|. % \begin{macrocode} \def\XC@let@Nc#1#2{\expandafter\let\expandafter#1\csname#2\endcsname} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@let@cN} % \marg{target character string}\marg{source name}\\ % Performs |\let\|\Meta{target character string}|=|\Meta{source name}. % \begin{macrocode} \def\XC@let@cN#1{\expandafter\let\csname#1\endcsname} % \end{macrocode} % \end{macro} % % \begin{macro}{\@namexdef} % \marg{character string}\marg{code}\\ % Performs |\xdef\|\Meta{character string}|{|\Meta{code}|}|. % Similar to the \LaTeX{} internal |\@namedef| command. % \begin{macrocode} \def\@namexdef#1{\expandafter\xdef\csname #1\endcsname} % \end{macrocode} % \end{macro} % % \begin{macro}{\aftergroupdef} % \begin{macro}{\aftergroupedef} % \marg{cmd}\marg{code}\\ % Defines \meta{cmd} with the first-level or complete expansion of \meta{code} after the end of the current group. % \begin{macrocode} \def\aftergroupdef#1#2% {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{#2}} \def\aftergroupedef#1#2% {\edef\@@tmp{\def\noexpand#1{#2}}\expandafter\endgroup\@@tmp} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\XC@edef} % \begin{macro}{\XC@mdef} % \begin{macro}{\XC@sdef} % \marg{cmd}\marg{code}\\ % Defines \Meta{cmd} as a safe expansion of \Meta{code}; needed for color expressions in certain languages. % The second form is a streamlined version that takes only care of active `|/|' and `|:|' characters that may occur in \Meta{model-list} and \Meta{spec-list} arguments. % The third form defines a sanitized expansion without considering active characters. % It is faster since it needs no grouping operation. % \begin{macrocode} \begingroup \catcode`\!=13 \catcode`\:=13 \catcode`\-=13 \catcode`\+=13 \catcode`\;=13 \catcode`\/=13 \catcode`\"=13 \catcode`\>=13 \gdef\XC@edef#1#2% {\begingroup \ifnum\catcode`\!=13 \edef!{\string!}\fi \ifnum\catcode`\:=13 \edef:{\string:}\fi \ifnum\catcode`\-=13 \edef-{\string-}\fi \ifnum\catcode`\+=13 \edef+{\string+}\fi \ifnum\catcode`\;=13 \edef;{\string;}\fi \ifnum\catcode`\"=13 \edef"{\string"}\fi \ifnum\catcode`\>=13 \edef>{\string>}\fi \edef#1{#2}\@onelevel@sanitize#1\aftergroupdef#1#1} \gdef\XC@mdef#1#2% {\begingroup \ifnum\catcode`\/=13 \edef/{\string/}\fi \ifnum\catcode`\:=13 \edef:{\string:}\fi \edef#1{#2}\@onelevel@sanitize#1\aftergroupdef#1#1} \endgroup \def\XC@sdef#1#2{\edef#1{#2}\@onelevel@sanitize#1} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % \subsubsection{Conditional processing} % % \begin{macro}{\@ifxempty} % \marg{arg}\marg{empty}\marg{non-empty}\\ % Tests without expanding, whether the argument \Meta{arg} is empty and executes the following code accordingly; \Meta{arg} must not start with the token |\XC@@|. % Can also be used within |\edef|. % \begin{macrocode} \def\@ifxempty#1{\@@ifxempty#1\@@ifxempty\XC@@} \def\@@ifxempty#1#2\XC@@ {\ifx#1\@@ifxempty \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@ifxcase} % \marg{cmd}|{{|\Meta[1]{cmd}|}{|\Meta[1]{code}|}...{|\Meta[n]{cmd}|}{|\Meta[n]{code}|}}|\marg{default code}\\ % Performs the test |\ifx|\Meta{cmd}\Meta[k]{cmd} for $k=1,\dots,n$. % If for some $k$ the test is `true', then the attached code \Meta[k]{code} is executed. % If all tests are `false', then \Meta{default code} is executed. % \begin{macrocode} \long\def\XC@ifxcase#1#2#3% {\long\def\@@tmp##1##2% {\ifx#1##1% \toks@{##2}\expandafter\remove@to@nnil\else\expandafter\@@tmp\fi}% \@@tmp#2#1{#3}\@nnil\the\toks@} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@ifcase} % \marg{str}|{{|\Meta[1]{str-list}|}{|\Meta[1]{code}|}...{|\Meta[n]{str-list}|}{|\Meta[n]{code}|}}|\marg{default code}\\ % Tests whether \Meta{str} appears in one of the comma-separated lists \Meta[k]{str-list}. % Performs the test |\if|\Meta{str}\Meta[kl]{str} for $k=1,\dots,n$ and $l=1,\ldots,m_n$. % If for some $k,l$ the test is `true', then the attached code \Meta[k]{code} is executed. % If all tests are `false', then \Meta{default code} is executed. % \begin{macrocode} \long\def\XC@ifcase#1#2#3% {\long\def\@@tmp##1##2% {\@expandtwoargs\in@{,#1,}{,##1,}\ifin@ \toks@{##2}\expandafter\remove@to@nnil\else\expandafter\@@tmp\fi}% \@@tmp#2{#1}{#3}\@nnil\the\toks@} % \end{macrocode} % \end{macro} % % % % \subsection{Package options} % % \begin{macro}{\XC@@opt} % Initialise the macro to hold the names of \emph{executed} \XCP{} options. % \begin{macrocode} \def\XC@@opt{,} % \end{macrocode} % \end{macro} % % \begin{macro}{\@ifXCopt} % \marg{option}\marg{executed}\marg{not executed}\\ % Performs action dependent on whether a specific \XCP{} option has been executed or not. % \begin{macrocode} \def\@ifXCopt#1% {\@expandtwoargs\in@{,#1,}{\XC@@opt}% \ifin@\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@@pkg} % Initialise the macro to hold the names of packages that are to be loaded by \XC. % \begin{macrocode} \let\XC@@pkg\relax % \end{macrocode} % \end{macro} % % \begin{macro}{\DeclareOption} % |\DeclareOption| has to be redefined in order to collect every executed package option in |\XC@@opt|. % This is being restored immediately before |\ProcessOptions|; thus, other packages use the original definition. % \begin{macrocode} \let\XC@declareoption\@declareoption \long\def\@declareoption#1#2% {\XC@declareoption{#1}{\edef\XC@@opt{\XC@@opt#1,}#2}} % \end{macrocode} % \end{macro} % % % \subsubsection{Color model selection} % % \begin{macro}{\selectcolormodel} % \marg{num model}\\ % Determines the target model for color definitions with |\definecolor| and friends. % \begin{macrocode} \def\selectcolormodel#1% {\@ifundefined{XC@mod@#1}% {\c@lor@error{target model `#1'}}% {\expandafter\ifx\csname XC@mod@#1\endcsname\XC@mod@natural \def\XC@tgt@mod##1{##1}\convertcolorsDfalse\convertcolorsUfalse \else\expandafter\ifx\csname XC@mod@#1\endcsname\XC@mod@named \c@lor@error{target model `#1'} \else \edef\XC@tgt@mod##1{#1}\convertcolorsDtrue\convertcolorsUtrue \fi\fi}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@mod@Hsb} % \begin{macro}{\XC@mod@tHsb} % \begin{macro}{\XC@mod@ignore} % \begin{macro}{\XC@mod@named} % \begin{macro}{\XC@mod@ps} % \begin{macro}{\XC@mod@wave} % \begin{macro}{\XC@mod@natural} % \begin{macro}{\XC@mod@rgb} % \begin{macro}{\XC@mod@cmy} % \begin{macro}{\XC@mod@cmyk} % \begin{macro}{\XC@mod@hsb} % \begin{macro}{\XC@mod@gray} % \begin{macro}{\XC@mod@RGB} % \begin{macro}{\XC@mod@HTML} % \begin{macro}{\XC@mod@HSB} % \begin{macro}{\XC@mod@Gray} % Put model names into commands and define package options % \Option{natural}, \Option{rgb}, \Option{cmy}, \Option{cmyk}, \Option{hsb}, \Option{gray}, \Option{RGB}, \Option{HTML}, \Option{HSB}, \Option{Gray}. % \begin{macrocode} \@tfor\@@tmp:={Hsb}{tHsb}{ignore}{named}{ps}{wave}\do {\expandafter\XC@sdef\csname XC@mod@\@@tmp\endcsname{\@@tmp}} % \end{macrocode} % % \begin{macrocode} \@tfor\@@tmp:={natural}{rgb}{cmy}{cmyk}{hsb}{gray}{RGB}{HTML}{HSB}{Gray}\do {\expandafter\XC@sdef\csname XC@mod@\@@tmp\endcsname{\@@tmp}% \edef\@@tmp {\noexpand\DeclareOption{\@@tmp}{\noexpand\selectcolormodel{\@@tmp}}}% \@@tmp} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % The \Option{monochrome} option should be used \emph{in addition} to one of the standard driver options. % \begin{macrocode} \DeclareOption{monochrome} {\ExecuteOptions{hideerrors}% \AtEndOfPackage {\colors@false \def\set@color{\c@lor@special\m@ne {color push \current@color}\aftergroup\reset@color}% \def\reset@color{\c@lor@special\m@ne{color pop}}% \def\set@page@color{\c@lor@special\m@ne{background \current@color}}}} % \end{macrocode} % % % \subsubsection{Sets of predefined colors} % % \begin{macro}{\XC@@names} % Initialise the macro to hold the names of files that contain predefined colors; these files are loaded near to the end of this package. % \begin{macrocode} \let\XC@@names\relax % \end{macrocode} % \end{macro} % % \begin{macro}{\colornameprefix} % \begin{macro}{\XC@@nameprefix} % Initialise the macro to hold the string that is prefixed to driver-specific color names. % Save the value for later restore. % \begin{macrocode} \providecommand*\colornameprefix{XC@} \let\XC@@nameprefix\colornameprefix % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\XC@declarenames} % \marg{base name}\marg{file name}\marg{initial commands}\\ % Construct package options for color names. % \begin{macrocode} \def\XC@declarenames#1#2#3% {\DeclareOption{#1}{\XC@append\XC@@names {#3\definecolorstrue\input{#2.def}\definecolorstrue \let\colornameprefix\XC@@nameprefix}} \DeclareOption{#1*}{\XC@append\XC@@names {#3\definecolorsfalse\input{#2.def}\definecolorstrue \let\colornameprefix\XC@@nameprefix}}} % \end{macrocode} % \end{macro} % % \begin{macrocode} \XC@declarenames{dvipsnames}{dvipsnam}{\let\colornameprefix\@empty} \XC@declarenames{svgnames}{svgnam}{} \XC@declarenames{x11names}{x11nam}{} \XC@declarenames{hksnames}% {hks\ifcase\paperquality k\or n\or k\or z\else n\fi nam}{} \XC@declarenames{pmsnames}{pmsnam}{} \XC@declarenames{ralnames}{ralnam}{} % \end{macrocode} % % % \subsubsection{Support for other packages} % % Use this option to load \People{David P.}{Carlisle}'s \Package{colortbl} package: % \begin{macrocode} \DeclareOption{table}{\XC@append\XC@@pkg{\RequirePackage{colortbl}}} % \end{macrocode} % % Use this option to load \People{Heiko}{Oberdiek}'s \Package{pdfcolmk} package: % \begin{macrocode} \DeclareOption{fixpdftex}{\XC@append\XC@@pkg{\RequirePackage{pdfcolmk}}} % \end{macrocode} % % \begin{macro}{\KV@Hyp@xcitebordercolor} % \begin{macro}{\KV@Hyp@xfilebordercolor} % \begin{macro}{\KV@Hyp@xlinkbordercolor} % \begin{macro}{\KV@Hyp@xmenubordercolor} % \begin{macro}{\KV@Hyp@xpagebordercolor} % \begin{macro}{\KV@Hyp@xrunbordercolor} % \begin{macro}{\KV@Hyp@xurlbordercolor} % \begin{macro}{\KV@Hyp@xpdfborder} % Use this option to define the extended keys for the \Package{hyperref} package. % \begin{macrocode} \DeclareOption{hyperref} {\@tfor\@@tmp:={cite}{file}{link}{menu}{page}{run}{url}\do {\expandafter\edef\csname KV@Hyp@x\@@tmp bordercolor\endcsname #1% {\noexpand\XC@bordercolor{\@@tmp}{#1}}}% \AtEndOfPackage {\GetGinDriver\def\KV@Hyp@xpdfborder#1{\edef\@pdfborder{#1}}% \@tfor\@@tmp:={dvips}\do {\ifx\GinDriver\@@tmp \def\KV@Hyp@xpdfborder#1% {\edef\@pdfborder{#1}\expandafter\XC@pdfborder\@pdfborder\relax}% \@break@tfor\fi}}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % % \subsubsection{Driver options} % % \begin{macro}{\Gin@driver} % Initialise the macro to hold the driver file name. % \begin{macrocode} \providecommand*\Gin@driver{} % \end{macrocode} % % Drivers that come with their individual definition files: % \begin{macrocode} \@tfor\@@tmp:={dvipdf}{dvipdfm}{dvipdfmx}{dvips}{dvipsone}{dviwin}% {emtex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}% {tcidvi}{textures}{truetex}{vtex}{xetex}\do {\edef\@@tmp{\noexpand\DeclareOption{\@@tmp}% {\def\noexpand\Gin@driver{\@@tmp.def}}}% \@@tmp} % \end{macrocode} % % Drivers that are derivatives of others: % \begin{macrocode} \DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}} \DeclareOption{oztex}{\ExecuteOptions{dvips}} \DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}} % \end{macrocode} % % Options used by (some) drivers. % \begin{macrocode} \DeclareOption{xcdraw}{\def\XC@@xcd@{1}} \DeclareOption{noxcdraw}{\def\XC@@xcd@{-1}} \DeclareOption{fixinclude}{\def\XC@@xcf@{1}} \DeclareOption{prologue}{\def\XC@@xcp@{1}} % \end{macrocode} % \end{macro} % % % \subsubsection{Other options} % % Switch to original kernel |\fbox| command instead of new \XC{} version. % \begin{macrocode} \DeclareOption{kernelfbox}{\XC@@fboxfalse} % \end{macrocode} % % These options control how non-existing colors are treated: % \begin{macrocode} \DeclareOption{showerrors}{\colorerrors@true} \DeclareOption{hideerrors}{\colorerrors@false} % \end{macrocode} % % The \Option{debugshow} option turns on debugging info (perhaps). % \begin{macrocode} \DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout} % \end{macrocode} % % All other options (including \LC's \oOption{usenames}, \oOption{nodvipsnames}) are being ignored. % \begin{macrocode} \DeclareOption*% {\PackageInfo{xcolor}{Package option `\CurrentOption' ignored}} % \end{macrocode} % % Choose default options: % \begin{macrocode} \def\XC@@xcd@{-1} \def\XC@@xcf@{-1} \def\XC@@xcp@{-1} \ExecuteOptions{natural,showerrors} % \end{macrocode} % % % \subsubsection{Processing options} % % A local configuration file may declare more options. % It should also make one driver option the default, by calling |\ExecuteOptions| with the appropriate option. % \begin{macrocode} \InputIfFileExists{color.cfg}{}{} % \end{macrocode} % % After the options are processed, load the appropriate driver file. % If a site wants a default driver (e.g., \Option{dvips}) it just needs to put |\ExecuteOptions{dvips}| in a \File{color.cfg} file. % \begin{macrocode} \let\@declareoption\XC@declareoption \ProcessOptions\relax % \end{macrocode} % % \begin{macro}{\XC@@drv} % Holds the name of the loaded driver (without \File{.def} extension). % \begin{macrocode} \edef\Gin@driver{\Gin@driver} \if!\Gin@driver! \PackageError{xcolor} {No driver specified} {You should make a default driver option in a file \MessageBreak color.cfg\MessageBreak eg: \protect\ExecuteOptions{dvips}} \else \PackageInfo{xcolor}{Driver file: \Gin@driver} \@ifundefined{ver@\Gin@driver}{\input{\Gin@driver}}{} \def\@@tmp#1.def{\def\XC@@drv{#1}} \expandafter\@@tmp\Gin@driver \fi % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@@xcd@} % \begin{macro}{\XC@@xcf@} % \begin{macro}{\XC@@xcp@} % These are used firstly by the \Option{xcdraw} and \Option{prologue} options, indicating whether either option is switched on or off. % Secondly, the macros serve as test variables for |\ifcase| expressions, storing the intended type of output: $-1=\text{dvi}, 0=\text{ps}, 1=\text{pdf}$. % \begin{macrocode} \count@\XC@@xcd@ \advance\count@\XC@@xcf@ \advance\count@\XC@@xcp@\relax \ifnum\count@>-3 % \end{macrocode} % % \begin{macro}{\XC@special} % \meta{code}\\ % Driver-specific variant of |\special|. % Even if the intended type of output is the same (e.g., pdf), the |\special| commands may differ. % \begin{macrocode} \XC@ifcase\XC@@drv {{dvips,pctex32}% {\def\@tempa{0} \def\XC@special#1{\special{ps:XC!b}\special{"#1}\special{ps:XC!e}}}% {pdftex}% {\def\@tempa{1} \def\XC@special#1{\pdfliteral{ q #1 Q }}}% {dvipdfm}% {\def\@tempa{1} \def\XC@special#1{\special{pdf: content #1}}}% }{\def\@tempa{-1}} % \end{macrocode} % \end{macro} % % Since the options are independent of each other, we have to adjust the affiliated test variables independently as well. % \begin{macrocode} \ifnum\XC@@xcd@>\m@ne\let\XC@@xcd@\@tempa\fi \ifnum\XC@@xcf@>\m@ne\let\XC@@xcf@\@tempa\fi \ifnum\XC@@xcp@>\m@ne\let\XC@@xcp@\@tempa\fi % \end{macrocode} % % \begin{macrocode} \ifnum\@tempa=0 \AtBeginDvi{\special{header=xcolor.pro}}\fi \ifcase\XC@@xcf@ \AtBeginDvi{\special{! XCfixnormalscale}} \fi \ifcase\XC@@xcp@ \AtBeginDvi{\special{header=\jobname.xcp}} \newwrite\XC@@xcp\immediate\openout\XC@@xcp=\jobname.xcp \immediate\write\XC@@xcp{\@percentchar!} \immediate\write\XC@@xcp{TeXDict begin} \AtEndDocument {\immediate\write\XC@@xcp{end}\immediate\closeout\XC@@xcp} \fi % \end{macrocode} % % End of driver-specific part. % \begin{macrocode} \fi % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % \subsubsection{Required packages} % % All packages within the list |\XC@pkg| % receive a pretended \LC. % \begin{macrocode} \@namedef{ver@color.sty}{1999/02/16} \XC@@pkg % \end{macrocode} % % % \subsection{Macro tools} % % \subsubsection{General tools} % % \begin{macro}{\@secondoffive} % \begin{macro}{\@thirdoffive} % Argument grabbing, similar to \LaTeX{} kernel. % \begin{macrocode} \long\def\@secondoffive#1#2#3#4#5{#2} \long\def\@thirdoffive#1#2#3#4#5{#3} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\xglobal} % \begin{macro}{\xglobal@test} % If |\foo| occurs in the token list |\xglobal@@|, then the command |\xglobal\foo| will set the switch |\xglobal@true| which can be used inside |\foo| to determine whether certain definitions are to be made explicitely global. % |\foo| is responsible for resetting |\xglobal@false| in order to avoid side effects. % To include |\foo| in the magic list, simply say |\XC@append\xglobal@list{\foo}|. % If |\foo| is not in the list, |\xglobal\foo| will behave like |\global\foo|, thus |\xglobal\let| will be like |\global\let| etc. % \begin{macrocode} \def\xglobal{\xglobal@stop\begingroup\futurelet\@@tok\xglobal@test} % \end{macrocode} % % \begin{macrocode} \def\xglobal@test {\expandafter\@tfor\expandafter\@@tmp \expandafter:\expandafter=\xglobal@list\do {\expandafter\ifx\@@tmp\@@tok \aftergroup\let\aftergroup\xglobal@\@break@tfor\fi}% \endgroup\global} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\xglobal@stop} % Resetting |\xglobal@|. % \begin{macrocode} \def\xglobal@stop{\let\xglobal@\@empty} \xglobal@stop % \end{macrocode} % \end{macro} % % \begin{macro}{\xglobal@list} % Initial list of commands that may be prefixed by |\xglobal|. % \begin{macrocode} \def\xglobal@list {\definecolor\definecolors\definecolorset\colorlet\providecolor \providecolors\providecolorset\blendcolors\maskcolors \substitutecolormodel} % \end{macrocode} % \end{macro} % % \begin{macro}{\xglobalize@} % Globalisation command: makes a local definition global. % \begin{macrocode} \def\xglobalize@#1{\ifx\xglobal@\global\global\let#1#1\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\GetGinDriver} % Transforms the chosen driver option ready for \Package{hyperref}. % \begin{macrocode} \def\GetGinDriver {\@tempswafalse \@tfor\@@tmp:={dvips}{pdftex}{dvipdf}{dvipdfm}{dvipsone}{vtex}{textures}% \do{\ifx\XC@@drv\@@tmp\@tempswatrue\@break@tfor\fi}% \edef\GinDriver{\if@tempswa\XC@@drv\else hypertex\fi}} % \end{macrocode} % \end{macro} % % % \subsubsection{String manipulation} % % \begin{macro}{\@hex@Hex} % \Meta{hex-string}|\relax|\\ % Converts \Meta{hex-string} to a string where all letters a--f are changed into their uppercase variants. % All other letters are left unchanged. % May be used inside |\edef|. % \begin{macrocode} \def\@hex@Hex#1{\ifx#1\relax\else\expandafter\@hex@@Hex\expandafter#1\fi} \def\@hex@@Hex#1% {\if a#1A\else \if b#1B\else \if c#1C\else \if d#1D\else \if e#1E\else \if f#1f\else #1\fi\fi\fi\fi\fi\fi \@hex@Hex} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@strip@comma} % \Meta[1]{string}|,|\Meta[2]{string}|,...,|\Meta[n]{string}|,,\@nnil|\\ % Converts a comma-separated list into a space-separated list. % The evaluation stops at the first empty argument, skipping all remaining tokens until (and including) |\@nnil|. % Thus, the list to be converted should always contain at least one `|,,|' sequence. % May be used inside |\edef|. % \begin{macrocode} \def\XC@strip@comma#1,#2% {\ifx,#2% #1\expandafter\remove@to@nnil\else#1 \expandafter\XC@strip@comma\fi #2} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@replace} % \marg{cmd}\marg{search}\marg{replace}\\ % Replace all occurences of \meta{search} within the first-level expansion of \meta{cmd} by \meta{replace} and save the result in \meta{cmd}. % The replacement is recursive, so don't put the search pattern into the replacement text! % Note that this macro is incapable of seeing `into' braces. % The code and its explanation is taken from \People{Donald}{Arseneau}'s \Package{url} package \cite{url}, with only minor changes and renamings applied. % The original name of the game is |\Url@Edit|. % Thanks to \People{Donald}{Arseneau} for giving me valuable hints. % \begin{macrocode} {\catcode`Q=3 \gdef\XC@replace#1#2#3% {\begingroup % \end{macrocode} % % If finished, then remove |\@empty|'s and redefine macro else, re-iterate. % \begin{macrocode} \def\XC@repl@ce##1#2##2Q##3% {\@ifxempty{##2}{\XC@r@pl@ce##1Q}{\XC@repl@ce##1##3##2Q{##3}}}% \def\XC@r@pl@ce##1\@empty Q% {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{##1}}% % \end{macrocode} % % The leading |\@empty| preserves braces, as does the trailing pattern. % \begin{macrocode} \expandafter\XC@repl@ce\expandafter\@empty #1\@empty#2Q{#3}} } % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@clean} % \marg{cmd}\\ % Makes a proper comma-separated list from \meta{cmd}'s contents and stores it again in \meta{cmd}. % Firstly, all commas are changed into spaces, secondly, `|. |' strings are changed to spaces. % Thirdly, non-trailing spaces are turned into commas (using a technique similar to \LaTeX's |\zap@space|). % Finally, the two leading commas are gobbled. % For example, `| 1 2. , 3 |' is mapped to `|1,2,3|'. % \begin{macrocode} \def\XC@clean#1% {\edef#1{ #1 }% \XC@cle@n#1,{ }\XC@cle@n#1{. }{ }\XC@cle@n#1{ },% \edef#1{\expandafter\@gobbletwo#1}} \def\XC@cle@n#1#2#3% {\def\XC@cl@@n##1#2##2{#3##1\ifx##2\@empty\else\expandafter\XC@cl@@n\fi##2}% \edef#1{\expandafter\XC@cl@@n#1#2\@empty}}% % \end{macrocode} % \end{macro} % % % \subsubsection{Scalar arithmetic} % % \begin{macro}{\rdivide} % \marg{dimension register}\marg{div}\\ % Divides \Meta{dimension register} by a real number \Meta{div}, which may also be buried in a dimension (register), and stores the resulting rounded dimension in \Meta{dimension register}. % The denominator \Meta{div} is assumed to be non-zero. % \begin{macrocode} \def\rdivide#1#2% {\begingroup\toks@{#1}\edef\@@tmp{\noexpand\@tempdima\the#1}% \@defaultunits\@tempdimb=#2pt\relax\@nnil \@@tmp\relax \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else \def\@sign{}\fi \ifdim\@tempdimb<\z@ \@tempdimb-\@tempdimb\edef\@sign{\@sign-}\fi \ifdim\@tempdima<.1\maxdimen \ifdim\@tempdimb<.01\maxdimen \lshift\@tempdima \lshift\@tempdimb \fi\fi \@tempcnta=\@tempdima \@tempcntb=\@tempdimb \count@=\@tempcnta \divide\count@\@tempcntb \edef\@@tmp{\number\count@.}% \@tempswatrue \@rdivide \@rdivide \@rdivide \@rdivide \@rdivide \@tempswafalse \@rdivide \dimen@\@@tmp\p@ \ifnum\count@>4\advance\dimen@1sp\fi \dimen@\@sign\dimen@ \edef\@@tmp{\the\toks@\the\dimen@}% \expandafter\endgroup\@@tmp} % \end{macrocode} % % \begin{macrocode} \def\@rdivide {\multiply\count@\@tempcntb \advance\@tempcnta-\count@ \multiply\@tempcnta10 \count@=\@tempcnta \divide\count@\@tempcntb \if@tempswa\edef\@@tmp{\@@tmp\number\count@}\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\rmultiply} % \marg{dimension register}\marg{dec}\\ % Multiplies \Meta{dimension register} by \Meta{dec} and stores the resulting dimension in \Meta{dimension register}. % \begin{macrocode} \def\rmultiply#1#2% {\begingroup \edef\@@mul{#2}\@tempdima\the#1\relax \afterassignment\@tempdimb\@tempcntb=\@@mul\p@ \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else \def\@sign{}\fi \ifnum\@tempcntb<\z@ \@tempcntb-\@tempcntb\edef\@sign{\@sign-}\fi \lshift\@tempdima \dimen@\z@ \expandafter\@rmultiply\@@mul.0.\@nil \advance\dimen@\@tempcntb\@tempdima \rshift\dimen@ \dimen@\@sign\dimen@ \edef\@@tmp{#1\the\dimen@}% \expandafter\endgroup\@@tmp} % \end{macrocode} % % \begin{macrocode} \def\@rmultiply#1.#2.#3\@nil {\def\@@tmp{}% \@tfor\@@mul:=#2\do {\edef\@@tmp {\advance\dimen@\@@mul\@tempdima \divide\dimen@10 \@@tmp}}% \@@tmp} % \end{macrocode} % \end{macro} % % \begin{macro}{\lshift} % \begin{macro}{\llshift} % \marg{dimension register}\\ % Multiplies \Meta{dimension register} safely by 10 resp. 100. % \begin{macrocode} \def\lshift#1{#1\expandafter\lshift@\the#1} \def\llshift#1{\lshift#1\lshift#1} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\lshiftnum} % \begin{macro}{\llshiftnum} % \marg{decimal number}\\ % Multiplies \Meta{decimal number} by 10 resp. 100. % \begin{macrocode} \def\lshiftnum#1{\expandafter\lshiftnum@#1.00.:} \def\lshiftnum@#1.#2#3.#4:{#1#2\ifnum0#3>\z@.#3\fi} \def\llshiftnum#1{\expandafter\llshiftnum@#1\@empty.00.:} \def\llshiftnum@#1.#2#3#4.#5:% {#1#2\ifnum0#3>\z@#3\else0\fi\ifnum0#4>\z@.#4\fi} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\lshiftset} % \begin{macro}{\llshiftset} % \marg{dimension register}\marg{decimal number}\\ % Multiplies \Meta{decimal number} by 10 resp. 100 and puts it into \Meta{dimension register}. % \begin{macrocode} \def\lshiftset#1#2{\edef\@@XC{\noexpand\lshiftnum{#2}}#1\@@XC\p@} \def\llshiftset#1#2{\edef\@@XC{\noexpand\llshiftnum{#2}}#1\@@XC\p@} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\rshift} % \begin{macro}{\rrshift} % \marg{dimension register}\\ % Divides \Meta{dimension register} safely by 10 resp. 100. % \begin{macrocode} \def\rshift#1{#1\expandafter\rshift@\the#1} \def\rrshift#1{\rshift#1\rshift#1} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\lshift} % \begin{macro}{\llshift} % \marg{dec}\\ % Multiplies \Meta{dec}, which may be either a number or something like |\the\dimen@|, safely by 10 resp. 100. % The following definitions are similar to the way how |\strip@pt| is defined in the \LaTeX{} kernel. % \begin{macrocode} \begingroup \catcode`P=12 \catcode`T=12 \lowercase {\def\@@tmp{\def\lshift@##1.##2##3PT{##1##2\ifnum0##3>\z@.##3\fi\p@} \def\rshift@##1.##2PT{\rshift@@##1\relax##2\p@}}} \expandafter\endgroup\@@tmp % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macrocode} \def\rshift@@#1#2% {\ifx#2\relax.#1\else#1\expandafter\rshift@@\expandafter#2\fi} % \end{macrocode} % % % \subsubsection{Vector arithmetic} % % \begin{macro}{\XC@inflate} % \marg{core model}\marg{first}\marg{second}\marg{cmd}\\ % Constructs an 8-dimensional vector based on two vectors \Meta{first}, \Meta{second} (of common dimension $1,3,4$) and an underlying color model (stored in the macro \Meta{core model}). % The resulting vector is stored in \Meta{cmd}. % \begin{macrocode} \def\XC@inflate#1#2#3#4% {\edef#4{#2,\ifx#1\XC@mod@cmyk #3\else \ifx#1\XC@mod@gray ,,,#3,,,\else ,#3,\fi\fi}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@vec} % \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\ % Generic vector calculation for two vectors (of common dimension $1,3,4$), puts the result into \Meta{cmd}. % \begin{macrocode} \def\XC@vec#1,#2,#3,#4,#5,#6,#7,#8,#9% {\def\@@tmp{}% \XC@vec@{#1}{#5}% \ifx,#2,\else \XC@vec@{#2}{#6}\XC@vec@{#3}{#7}\ifx,#4,\else\XC@vec@{#4}{#8}\fi\fi \aftergroupdef#9\@@tmp} % \end{macrocode} % % \begin{macrocode} \def\XC@vec@@{\edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip@pt\dimen@}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@add} % \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\ % Calculates the sum of two vectors (of common dimension $1,3,4$) and puts it into \Meta{cmd}. % \begin{macrocode} \def\XC@add{\begingroup \let\XC@vec@\XC@add@ \XC@vec} % \end{macrocode} % % \begin{macrocode} \def\XC@add@#1#2% {\llshiftset\dimen@{#1}\llshiftset\@tempdima{#2}% \advance\dimen@\@tempdima \rrshift\dimen@ \XC@vec@@} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@sub} % \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\ % Calculates the difference of two vectors (of common dimension $1,3,4$) and puts it into \Meta{cmd}. % \begin{macrocode} \def\XC@sub{\begingroup \let\XC@vec@\XC@sub@ \XC@vec} % \end{macrocode} % % \begin{macrocode} \def\XC@sub@#1#2{\XC@add@{#1}{-#2}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@mul} % \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\ % Calculates the (component-wise) product of two vectors (of common dimension $1,3,4$) and puts it into \Meta{cmd}. % \begin{macrocode} \def\XC@mul{\begingroup \let\XC@vec@\XC@mul@ \XC@vec} % \end{macrocode} % % \begin{macrocode} \def\XC@mul@#1#2% {\llshiftset\dimen@{#1}\rmultiply\dimen@{#2}\rrshift\dimen@ \XC@vec@@} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@mix} % \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\ % Calculates the linear interpolation of two color parameter vectors and puts it into \Meta{cmd}. % The percentage parameter $p$ is input via register |\dimen@|. % \begin{macrocode} \def\XC@mix% {\begingroup \@tempdima\dimen@ \@tempdimb100\p@ \advance\@tempdimb-\@tempdima \let\XC@vec@\XC@mix@ \XC@vec} % \end{macrocode} % % \begin{macrocode} \def\XC@mix@#1#2% {\dimen@#1\@tempdima \advance\dimen@#2\@tempdimb \rrshift\dimen@ \XC@vec@@} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@calc@} % \Meta{x}|,|\Meta{y}|,|\Meta{z}|,|\Meta{w}|,|\Meta{dummy}|:|\marg{function}\\ % Performs, dependent on the number of non-empty parameters, |\edef\@@tmp{|$f(x)$|}| or |\edef\@@tmp{|$f(x),f(y),f(z)$|}| or |\edef\@@tmp{|$f(x),f(y),f(z),f(w)$|}|, where the function $f$ is determined by the parameter \Meta{function}. % \begin{macrocode} \def\XC@calc@#1,#2,#3,#4,#5:#6% {\XC@let@Nc\@@cmd{XC@calc#6}\@@cmd{#1}\@@tmp \ifx,#2,\else \@@cmd{#2}\@tempa\@@cmd{#3}\@tempb \ifx,#4,% \edef\@@tmp{\@@tmp,\@tempa,\@tempb}\else \@@cmd{#4}\@tempc\edef\@@tmp{\@@tmp,\@tempa,\@tempb,\@tempc}\fi\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcC} % \marg{x}\marg{cmd}\\ % \textbf Complement of $x$: performs |\def|\Meta{cmd}|{|$1-x$|}|. % Yields exact results for all numbers within $[0,1]$ with 5 decimal digits. % \begin{macrocode} \def\XC@calcC#1#2% {\llshiftset\dimen@{-#1}\advance\dimen@100\p@ \rrshift\dimen@ \XC@calcN{\strip@pt\dimen@}#2} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcD} % \marg{x}\marg{cmd}\\ % \textbf Division of $x$ by $s$: performs |\def|\Meta{cmd}|{|$x/s$|}|. % The parameter $s$ is input via |\@@scl|. % \begin{macrocode} \def\XC@calcD{\XC@c@lcD\@@scl{}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@c@lcD} % \marg{s}\marg{string}\marg{x}\marg{cmd}\\ % \textbf Division of $x$ by $s$, appending \Meta{string}: performs |\def|\Meta{cmd}|{|$x/s$\Meta{string}|}|. % \begin{macrocode} \def\XC@c@lcD#1#2#3#4% {\dimen@#3\p@ \rdivide\dimen@{#1}\edef#4{\strip@pt\dimen@#2}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcF} % \marg{x}\marg{cmd}\\ % \textbf Format $x$ with 5 decimals, no range checks. % \begin{macrocode} \def\XC@calcF#1#2% {\edef#2{#1}\expandafter\XC@c@lcF#2.0.:#2} % \end{macrocode} % % Special treatment of integer part because of so many possible variations ($---.0$, $7$, \dots). % \begin{macrocode} \def\XC@c@lcF#1.#2.#3:#4% {\edef#4{\XC@c@@cR#200000:}% \dimen@#1.5\p@ \afterassignment\dimen@\count@=\the\dimen@ \edef#4% {\ifnum#4>0 \ifnum\count@=0 \ifdim#1.5\p@<\z@ -\fi\fi\fi \number\count@.#4}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcH} % \marg{x}\marg{cmd}\\ % \textbf Hexadecimal transformation of $x\in\{0,1,\dots,255\}$: performs |\def|\Meta{cmd}|{|$x_{16}$|}|. % \begin{macrocode} \def\XC@calcH#1#2% {\count@#1 \divide\count@\sixt@@n \edef\XC@@tmp{\hexnumber@\count@}% \multiply\count@-\sixt@@n \advance\count@#1 \edef#2{\XC@@tmp\hexnumber@\count@}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcM} % \marg{x}\marg{cmd}\\ % \textbf Multiplication of $x$ by $s$ plus rounding: performs |\def|\Meta{cmd}|{|$[s\cdot x+0.5]$|}|. % The parameter $s$ is input via |\@@scl|. % \begin{macrocode} \def\XC@calcM#1#2% {\dimen@#1\p@ \dimen@\@@scl\dimen@ \advance\dimen@.5\p@ \afterassignment\dimen@\count@=\the\dimen@ \edef#2{\number\count@}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcN} % \marg{x}\marg{cmd}\\ % \textbf Normalisation of $x$: similar to |\XC@calcR|, but trailing zeros are eliminated. % \begin{macrocode} \def\XC@calcN#1#2% {\XC@calcR{#1}#2\edef#2{\expandafter\XC@c@lcN#200000:}} % \end{macrocode} % % Gobble trailing zeros. % \begin{macrocode} \def\XC@c@lcN#1.#200000#3:{#1\ifnum0#2=0 \else.#2\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcR} % \marg{x}\marg{cmd}\\ % \textbf Reduction of $x$ to the unit interval: performs |\def|\Meta{cmd}|{|$\min\{1,\max\{0,x\}\}$|}|. % Numbers are output with 5 decimals. % This could also be done using |\XC@calcF|, followed by a range check, but perhaps less efficiently. % \begin{macrocode} \def\XC@calcR#1#2{\edef#2{#1}\edef#2{\expandafter\XC@c@lcR#2.0.:}} % \end{macrocode} % % Check interval. % \begin{macrocode} \def\XC@c@lcR#1.#2.#3:% {\ifnum#10>0 1.00000\else 0.\ifnum#11<0 00000\else \XC@c@@cR#200000:\fi\fi} % \end{macrocode} % % Normalize to 5 digits. % \begin{macrocode} \def\XC@c@@cR#1#2#3#4#5#6:{#1#2#3#4#5} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcS} % \marg{x}\marg{cmd}\\ % \textbf Scaling of $x$ by $s$: performs |\def|\Meta{cmd}|{|$s\cdot x$|}|. % The parameter $s$ is input via |\@@scl|. % \begin{macrocode} \def\XC@calcS{\XC@c@lcS\@@scl{}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@c@lcS} % \marg{s}\marg{string}\marg{x}\marg{cmd}\\ % \textbf Scaling of $x$ by $s$, appending \Meta{string}: performs |\def|\Meta{cmd}|{|$s\cdot x$\Meta{string}|}|. % \begin{macrocode} \def\XC@c@lcS#1#2#3#4% {\lshiftset\dimen@{#3}% \ifdim#1\p@<100\p@ \dimen@\lshiftnum#1\dimen@ \rrshift\dimen@ \else \dimen@#1\dimen@ \rshift\dimen@ \fi \edef#4{\strip@pt\dimen@#2}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcT} % \marg{x}\marg{cmd}\\ % \textbf Translate $x$ by $a$ and cut to unit interval: performs |\def|\Meta{cmd}|{|$\min\{1,\max\{0,x+a\}\}$|}|. % The parameter $a$ is input via |\@@arg|. % \begin{macrocode} \def\XC@calcT#1#2% {\lshiftset\dimen@{#1}\advance\dimen@\lshiftnum\@@arg\p@ \rshift\dimen@ \edef#2% {\ifdim\dimen@>\p@1\else\ifdim\dimen@<\z@0\else\strip@pt\dimen@\fi\fi}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@calcU} % \marg{x}\marg{cmd}\\ % \textbf Unit interval mapping of $x$: performs |\def|\Meta{cmd}|{|$x-[x]$|}| if $x\neq1$, $1$ otherwise. % \begin{macrocode} \def\XC@calcU#1#2% {\dimen@#1\p@ \ifdim\dimen@=\p@\else \afterassignment\dimen@\count@=\the\dimen@ \relax\ifdim\dimen@=\z@\else \ifdim#1\p@<\z@ \dimen@-\dimen@ \advance\dimen@\p@ \fi \fi \fi \edef#2{\strip@pt\dimen@}} % \end{macrocode} % \end{macro} % % % \subsection{Color definition} % % \subsubsection{Constants} % % \begin{macro}{\rangeRGB} % \begin{macro}{\rangeHSB} % \begin{macro}{\rangeHsb} % \begin{macro}{\rangetHsb} % \begin{macro}{\rangeGray} % Scaling ranges for `integer' and other special models: % \begin{macrocode} \providecommand*\rangeRGB{255} \providecommand*\rangeHSB{240} \providecommand*\rangeHsb{360} \providecommand*\rangetHsb{60,30;120,60;180,120;210,180;240,240} \providecommand*\rangeGray{15} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\adjustUCRBG} % Parameters for undercolor-removal (UCR) and black-generation (BG) during \Model{cmy} to \Model{cmyk} conversion: % \begin{macrocode} \providecommand*\adjustUCRBG{1,1,1,1} % \end{macrocode} % \end{macro} % % \begin{macro}{\paperquality} % Parameter for choosing different color sets according to the paper quality; yet supported only for the HKS colors. % \begin{macrocode} \providecommand*\paperquality{1} % \end{macrocode} % \end{macro} % % \begin{macro}{\colorseriescycle} % Default cycle length for color series: % \begin{macrocode} \providecommand*\colorseriescycle{16} % \end{macrocode} % \end{macro} % % Model-dependent base colors: % \begin{macrocode} \def\XC@clr@rgb@white{1,1,1} \def\XC@clr@cmy@white{0,0,0} \def\XC@clr@cmyk@white{0,0,0,0} \def\XC@clr@hsb@white{\@@hue,0,1} \def\XC@clr@hsb@gray{\@@hue,0,0.5} \def\XC@clr@hsb@black{\@@hue,0,0} \def\XC@clr@gray@white{1} % \end{macrocode} % % \begin{macro}{\XC@met@grad} % \begin{macro}{\XC@met@last} % \begin{macro}{\XC@met@step} % Methods for color series: % \begin{macrocode} \@tfor\@@tmp:={grad}{last}{step}\do {\XC@let@cN{XC@met@\@@tmp}\@@tmp} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % \subsubsection{Colors}\label{sec.definition} % % \begin{macro}{\definecolor} % \oarg{type}\marg{name}\oarg{prefix}\marg{model-list}\marg{spec-list}\\ % Extends the facilities of \LC's |\definecolor|. % The optional argument \Meta{type} has currently to be either empty (= normal color definition) or `named' or `ps'. % \Meta{prefix} is an argument used for the internal driver-dependent representation. % |\definecolor| creates a new command |\\color@|\Meta{name} that contains the \emph{internal representation} % |\xcolor@|\marg{type-spec}\marg{driver-spec}\marg{n-model}\marg{n-color-spec} of the color, where % \begin{itemize} % \item \Meta{type-spec} is either empty (if \Meta{type} was empty), or a driver-dependent macro or expression (if \Meta{type} was `named', `ps'); % \item \Meta{driver-spec} is a driver-dependent representation of the color, which also depends on \Meta{type}; % \item \Meta{n-model} is either \Meta{model} or the name of another color model, dependent on the desired transformation(s) at definition time; % \item \Meta{n-color-spec} are the comma-separated normalised parameter values of the color with respect to \Meta{n-model}. % \end{itemize} % See table \vref{tab.internal} for some examples. % \begin{macrocode} \def\definecolor{\@testopt{\XC@definecolor}{}} \def\XC@definecolor[#1]#2% {\@testopt{\XC@definec@lor[#1]{#2}}\colornameprefix} % \end{macrocode} % % \begin{macrocode} \def\XC@definec@lor[#1]#2[#3]#4#5% {\begingroup \XC@sdef\@@cls{#1}\XC@edef\@@nam{#2}\edef\colornameprefix{#3}% \XC@logdef\@@nam \XC@getmodclr02{#4}{#5}{\let\@@tmp\relax}% {\ifx\@@mod\XC@mod@named \XC@c@l@rlet\@@nam\@@clr \else \ifx\@@cls\XC@mod@ps \edef\@@drv{\@@mod\space\@@clr}\def\@@hue{0}% \edef\@@clr{\@nameuse{XC@clr@\@@mod @white}}% \else \ifconvertcolorsD \let\@@tmp\@@mod\XC@sdef\@@mod{\XC@tgt@mod\@@tmp}% \convertcolorspec\@@tmp\@@clr\@@mod\@@clr \fi \XC@coremodel\@@mod\@@clr % \end{macrocode} % % Determine driver-dependent color definition: % \begin{macrocode} \csname color@\@@mod\expandafter\endcsname \expandafter\@@drv\expandafter{\@@clr}% % \end{macrocode} % % Handle prologue and `named' colors: % \begin{macrocode} \ifcase\XC@@xcp@ \immediate\write\XC@@xcp{/\colornameprefix\@@nam{\expandafter \XC@strip@comma\@@clr,,\@nnil}XC\@@mod}% \let\@@cls\XC@mod@named \fi \ifx\@@cls\@empty\else \let\@@tmp\@@cls \@nameuse{define@color@\@@cls}\@@nam\@@drv \csname color@\@@tmp\expandafter\endcsname \expandafter\@@drv\expandafter{\@@nam}% \fi \fi % \end{macrocode} % % Finally write all information into macro |\\color@|\Meta{name}: % \begin{macrocode} \toks@\expandafter{\@@drv}% \edef\@@tmp {\ifglobalcolors\global\else\xglobal@\fi \noexpand\@namedef{\string\color@\@@nam}% {\noexpand\xcolor@{\@@cls}{\the\toks@}{\@@mod}{\@@clr}}}% \fi}% \expandafter\endgroup\@@tmp\xglobal@stop} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@getmodclr} % \marg{mod-opt}\marg{clr-opt}\marg{model-list}\marg{spec-list}\marg{undefined}\marg{defined}\\ % Depending on \Meta{mod-opt}, different tasks are performed: % \begin{itemize} % \item[0:] Retrieve color model and target model from \Meta{model-list} if |\XC@@getmod| is `true'. % \item[1:] Retrieve color model and target model from \Meta{model-list} always. % \end{itemize} % The color model is stored in |\@@mod|, its position in |\XC@@pos|, a possible target model in |\@@Mod|. % Depending on \Meta{clr-opt}, different tasks are performed: % \begin{itemize} % \item[0:] Don't pick color specification from \Meta{spec-list}. % \item[1:] Pick color specification from \Meta{spec-list}, convert it from model |\@@mod| to |\@@Mod|, unless the latter is `ignore' or |\@@cls| is `ps'. % \item[2:] Like the former case, additionally |\let\@@mod\@@Mod|. % \end{itemize} % The color specification is stored in |\@@clr|. % Color specification picking relies on the position |\XC@@pos|, conversion relies on the model |\@@mod|, and the target model |\@@Mod|. % If |\@@mod| represents an undefined color model, then \Meta{undefined} is executed at the end of the macro, else \Meta{defined}. % \begin{macrocode} \def\XC@getmodclr#1#2#3#4% {\ifnum\ifcase#1 \ifXC@@getmod1\else0 \fi \or1 \fi>0 \XC@mdef\@@mod{#3}\expandafter\XC@getmod\@@mod////////\XC@@ \@ifundefinedmodel\@@Mod{\let\@@Mod\XC@mod@ignore}{}\fi \@ifundefined{XC@mod@\@@mod}% {\c@lor@error{model `\@@mod'}\@firstoftwo}% {\ifcase#2\else \XC@mdef\@@clr{#4}% \edef\@@clr{\expandafter\XC@getclr\@@clr////////\XC@@}% \ifx\@@cls\XC@mod@ps\else\XC@clean\@@clr\fi \ifx\@@Mod\XC@mod@ignore\else \convertcolorspec\@@mod\@@clr\@@Mod\@@clr \ifnum#2>1 \let\@@mod\@@Mod\fi \fi \fi \@secondoftwo}} % \end{macrocode} % % \begin{macro}{\XC@getmod} % Retrieve model position |\XC@@pos|, model |\@@mod|, and target model |\@@Mod| from multiple definitions (up to~8), separated by `|/|'. % \begin{macrocode} \def\XC@getmod#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@ {\XC@g@tm@d0#1::\XC@@ \XC@getm@d1{#2}\XC@getm@d2{#3}% \XC@getm@d3{#4}\XC@getm@d4{#5}\XC@getm@d5{#6}\XC@getm@d6{#7}% \XC@getm@d7{#8}\def\XC@@pos{0}\def\@@mod{#1}\@gobble\@nnil}% % \end{macrocode} % % \begin{macrocode} \def\XC@getm@d#1#2% {\edef\XC@@pos{#2}\XC@sdef\@@mod{\XC@tgt@mod\XC@@pos}% \ifx\XC@@pos\@@mod\def\XC@@pos{#1}\expandafter\remove@to@nnil\fi}% % \end{macrocode} % % \begin{macrocode} \def\XC@g@tm@d#1#2:#3:#4\XC@@ {\@ifxempty{#3}{\let\@@Mod\XC@mod@ignore\XC@getm@d0{#2}}% {\def\@@Mod{#2}\XC@getm@d0{#3}}}% % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@getclr} % Pick color specification on position |\XC@@pos| from multiple definitions (up to~8), separated by `|/|'. % Expandable. % \begin{macrocode} \def\XC@getclr#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@ {\ifcase\XC@@pos\space #1\or#2\or#3\or#4\or#5\or#6\or#7\or#8\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\ifXC@@getmod} % Switch used to determine whether the model has to be retrieved (e.g., ordinary |\definecolor|) or not (e.g., |\definecolor| acting as subroutine to |\definecolorset|). % \begin{macrocode} \newif\ifXC@@getmod \XC@@getmodtrue % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\xdefinecolor} % This command is identical with |\definecolor|, it is kept only for compatibility reasons. % \begin{macrocode} \let\xdefinecolor\definecolor % \end{macrocode} % \end{macro} % % \begin{macro}{\providecolor} % \oarg{type}\marg{name}\marg{model-list}\marg{spec-list}\\ % Similar to |\definecolor|, but the color \Meta{name} is only defined if it does not exist already. % \begin{macrocode} \def\providecolor{\@testopt{\XC@providecolor}{}} \def\XC@providecolor[#1]#2% {\@testopt{\XC@providec@lor[#1]{#2}}\colornameprefix} % \end{macrocode} % % \begin{macrocode} \def\XC@providec@lor[#1]#2[#3]% {\XC@edef\XC@@tmp{#2}% \@ifundefinedcolor\XC@@tmp{\XC@definecolor[#1]{#2}[#3]}% {\ifnum\XC@tracing>0 \PackageInfo{xcolor}{Ignoring color definition `\XC@@tmp'}\fi \@gobbletwo}} % \end{macrocode} % \end{macro} % % \begin{macro}{\xcolor@} % \marg{type-spec}\marg{driver-spec}\marg{model}\marg{spec}\\ % Simply grabs the driver-specific part of the color definition. % Therefore, the command |\\color@|\Meta{name} behaves like in the original case, when first-level expanded. % \begin{macrocode} \def\xcolor@#1#2#3#4{#2} % \end{macrocode} % \end{macro} % % \begin{macro}{\colorlet} % \oarg{type}\marg{name}\oarg{num model}\marg{color}\\ % Create a color `name' consisting of \Meta{color}, converted to \Meta{num model} if non-empty. % \begin{macrocode} \def\colorlet{\@testopt{\XC@colorlet}{}} \def\XC@colorlet[#1]#2{\@testopt{\XC@col@rlet[#1]{#2}}{}} \def\XC@col@rlet[#1]#2[#3]#4% {\begingroup \edef\@@cls{#1}\XC@edef\@@nam{#2}\XC@sdef\@@mod{#3}\XC@edef\@@clr{#4}% % \end{macrocode} % % Check whether |#4| is an explicit name, |#3| is empty and |#1| is either empty or equal to the corresponding parameter of |#4|: in this case, a simple |\let| command will do the job. % \begin{macrocode} \XC@info\@@clr\@@tmp\XC@@tstfalse \ifnum\@@tmp=\@ne\ifx\@@mod\@empty \ifx\@@cls\@empty \XC@@tsttrue \else \edef\@@tmp {\expandafter\expandafter\expandafter\@secondoffive \csname\string\color@\@@clr\endcsname}% \ifx\@@cls\@@tmp\XC@@tsttrue\fi \fi \fi\fi \ifXC@@tst \XC@logdef\@@nam\XC@c@l@rlet\@@nam\@@clr \else \extractcolorspec\@@clr\@@clr \ifx\@@mod\@empty\else \expandafter\convertcolorspec\@@clr\@@mod\@@clr \edef\@@clr{{\@@mod}{\@@clr}}\fi \edef\@@tmp{\noexpand\XC@definecolor[\@@cls]{\@@nam}\@@clr}% \fi \expandafter\endgroup\@@tmp\xglobal@stop} % \end{macrocode} % % \begin{macrocode} \def\XC@c@l@rlet#1#2% {\@ifundefinedcolor{#2}% {\c@lor@error{`#2'}\let\@@tmp\@empty}% {\edef\@@tmp {\ifglobalcolors\global\else\xglobal@\fi \noexpand\XC@let@cc{\string\color@#1}{\string\color@#2}}}} % \end{macrocode} % \end{macro} % % \begin{macro}{\DefineNamedColor} % \marg{type}\marg{name}\marg{model-list}\marg{spec-list} % \begin{macrocode} \def\DefineNamedColor#1% {\@nameuse{XC@\ifdefinecolors defin\else prepar\fi ecolor}[#1]} % \end{macrocode} % \end{macro} % % % \subsubsection{Deferred definition} % % \begin{macro}{\preparecolor} % \oarg{type}\marg{name}\oarg{prefix}\marg{model-list}\marg{spec-list}\\ % \begin{macrocode} \def\preparecolor{\@testopt{\XC@preparecolor}{}} \def\XC@preparecolor[#1]#2% {\@testopt{\XC@preparec@lor[#1]{#2}}\colornameprefix} % \end{macrocode} % % \begin{macrocode} \def\XC@preparec@lor[#1]#2[#3]#4#5% {\XC@sdef\@@cls{#1}\XC@edef\@@nam{#2}% \XC@getmodclr01{#4}{#5}{}% {\xdef\XC@@stack {\ifx\XC@@stack\@empty\else\XC@@stack,\fi{#1}{\@@nam}{#3}% {\ifx\@@Mod\XC@mod@ignore\@@mod\else\@@Mod\fi}{\@@clr}}}} % \end{macrocode} % % \begin{macrocode} \let\XC@@stack\@empty % \end{macrocode} % \end{macro} % % \begin{macro}{\definecolors} % \marg{id-list} % \begin{macrocode} \def\definecolors#1% {\let\XC@@cmd\definecolor\let\XC@@glb\xglobal@ \expandafter\XC@definecolors#1,,} % \end{macrocode} % % \begin{macrocode} \def\XC@definecolors#1,% {\@ifxempty{#1}{}{\expandafter\XC@definec@lors#1=#1=:\XC@definecolors}} % \end{macrocode} % % \begin{macrocode} \def\XC@definec@lors#1=#2=#3:% {\XC@edef\@@nam{#1}\XC@edef\@@arg{#2}% \let\next\XC@definec@l@rs\expandafter\next\XC@@stack,,\@nnil} % \end{macrocode} % % \begin{macrocode} \def\XC@definec@l@rs#1,% {\ifx,#1,\let\next\remove@to@nnil\else\XC@defin@c@l@rs#1\fi\next} % \end{macrocode} % % \begin{macrocode} \def\XC@defin@c@l@rs#1#2#3#4#5% {\def\@@tmp{#2}% \ifx\@@tmp\@@arg \let\xglobal@\XC@@glb\XC@@cmd[#1]{\@@nam}[#3]{#4}{#5}% \let\next\remove@to@nnil \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\providecolors} % \marg{id-list}\\ % Similar to |\definecolor|, but based on |\providecolor|, thus the individual colors are defined only if they do not exist already. % \begin{macrocode} \def\providecolors#1% {\let\XC@@cmd\providecolor\let\XC@@glb\xglobal@ \expandafter\XC@definecolors#1,,} % \end{macrocode} % \end{macro} % % % \subsubsection{Sets of colors} % % \begin{macro}{\definecolorset} % \oarg{type}\marg{model-list}\marg{head}\marg{tail}\marg{set spec}\\ % This command facilitates the construction of \emph{color sets} with common underlying \Meta{model-list} and \Meta{type}. % Here, \Meta{set spec} = \Meta[1]{name},\Meta[1]{spec-list};\dots;\Meta[k]{name},\Meta[k]{spec-list} ($k\ge1$ name/specification-list pairs). % Individual colors are being constructed by |\definecolor|\oarg{type}|{|\Meta{head}\Meta[1]{name}\Meta{tail}|}|\marg{model-list}|{|\Meta[1]{spec-list}|}| etc. % \begin{macrocode} \def\definecolorset {\let\XC@@cmd\definecolor\@testopt{\XC@definecolorset}{}} % \end{macrocode} % % \begin{macrocode} \def\XC@definecolorset[#1]#2#3#4#5% {\XC@getmodclr10{#2}{}{}% {\XC@@getmodfalse\XC@edef\XC@@tmp{#5}\let\XC@@glb\xglobal@ \def\XC@definec@lorset##1,##2;% {\@ifxempty{##1}{}% {\let\xglobal@\XC@@glb \XC@@cmd[#1]{#3##1#4}{\@@mod}{##2}\XC@definec@lorset}}% \expandafter\XC@definec@lorset\XC@@tmp;,;\XC@@getmodtrue}} % \end{macrocode} % \end{macro} % % \begin{macro}{\providecolorset} % \oarg{type}\marg{model-list}\marg{name-prefix}\marg{name-postfix}\marg{set spec}\\ % Similar to |\definecolorset|, but based on |\providecolor|, thus the individual colors are defined only if they do not exist already. % \begin{macrocode} \def\providecolorset {\let\XC@@cmd\providecolor\@testopt{\XC@definecolorset}{}} % \end{macrocode} % \end{macro} % % \begin{macro}{\preparecolorset} % \oarg{type}\marg{model-list}\marg{name-prefix}\marg{name-postfix}\marg{set spec}\\ % Similar to |\definecolorset|, but dependent on |\ifdefinecolors|, either a |\definecolor| or a |\preparecolor| command will be executed for each single set member. % \begin{macrocode} \def\preparecolorset {\ifdefinecolors\let\XC@@cmd\definecolor\else\let\XC@@cmd\preparecolor\fi \@testopt{\XC@definecolorset}{}} % \end{macrocode} % \end{macro} % % % \subsubsection{Color series} % % \begin{macro}{\definecolorseries} % \marg{name}\marg{core model}\marg{method}\oarg{b-model}\marg{base color}\oarg{l-model}\marg{delta} % \begin{macrocode} \def\definecolorseries#1#2#3% {\@testopt{\XC@definecolorseries{#1}{#2}{#3}}{}} % \end{macrocode} % % \begin{macrocode} \def\XC@definecolorseries#1#2#3[#4]#5% {\@testopt{\XC@definec@lorseries{#1}{#2}{#3}[#4]{#5}}{}} % \end{macrocode} % % \begin{macrocode} \def\XC@definec@lorseries#1#2#3[#4]#5[#6]#7% {\begingroup \XC@sdef\@@mod{#2}% \@ifxempty{#4}{\extractcolorspec{#5}\@@clr}{\edef\@@clr{{#4}{#5}}}% \expandafter\convertcolorspec\@@clr\@@mod\@@clr \@namexdef{\string\colorB@#1}{{\@@mod}{\@@clr}}% \edef\@@met{#3}% \ifx\@@met\XC@met@last \@ifxempty{#6}{\extractcolorspec{#7}\@@tmp}{\edef\@@tmp{{#6}{#7}}}% \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp \XC@inflate\@@mod\@@tmp\@@clr\@@tmp \expandafter\XC@sub\@@tmp,\@@tmp \else \edef\@@tmp{#7}% \fi \@namexdef{\string\colorD@#1}{{\@@met}{\@@tmp}}% \endgroup} % \end{macrocode} % \end{macro} % % \begin{macro}{\resetcolorseries} % \oarg{div}\marg{name} % \begin{macrocode} \def\resetcolorseries{\@testopt{\XC@resetcolorseries}{}} \def\XC@resetcolorseries[#1]#2% {\begingroup \@namexdef {\string\color@#2}{\noexpand\xcolor@{}{}\@nameuse{\string\colorB@#2}}% \XC@let@Nc\@@tmp{\string\colorD@#2}% \edef\@@met{\expandafter\@firstoftwo\@@tmp}% \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}% \ifx\@@met\XC@met@step\else \edef\@@scl{\@ifxempty{#1}\colorseriescycle{#1}}% \expandafter\XC@calc@\@@tmp,,,,:D% \fi \@namexdef{\string\colorS@#2}{\@@tmp}% \endgroup} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@step} % \begin{macro}{\XC@stepabs} % \marg{name}\\ % Perform a relative or absolute (= direct access) step within a color series \Meta{name}. % In the relative case, the (non-negative) number of single steps is supposed to be stored in |\@tempcnta|. % \begin{macrocode} \def\XC@step#1% {\let\xcolor@\@gobbletwo\edef\@@tmp{\@nameuse{\string\color@#1}}% \expandafter\XC@st@p\@@tmp{#1}% \@namexdef{\string\color@#1}{\noexpand\xcolor@{}{}{\@@mod}{\@@tmp}}} % \end{macrocode} % % \begin{macrocode} \def\XC@st@p#1#2#3% {\def\@@mod{#1}\def\@@tmp{#2}\edef\@@vec{\@nameuse{\string\colorS@#3}}% \@whilenum\@tempcnta>\z@\do {\XC@inflate\@@mod\@@tmp\@@vec\@@tmp \expandafter\XC@add\@@tmp,\@@tmp \expandafter\XC@calc@\@@tmp,,,,:U% \advance\@tempcnta\m@ne}} % \end{macrocode} % % \begin{macrocode} \def\XC@stepabs#1% {\edef\@@tmp{\@nameuse{\string\colorB@#1}}% \expandafter\XC@st@p\@@tmp{#1}% \edef\@@tmp {\def\noexpand\@@mod{\@@mod}\def\noexpand\@@clr{\@@tmp}}} % \end{macrocode} % \end{macro} % \end{macro} % % % \subsubsection{Color blending} % % \begin{macro}{\blendcolors} % \begin{macro}{\blendcolors*} % \marg{mix expr}\\ % Initialises all necessary parameters for color blending. % The actual (completed) color blend expression is stored in |\colorblend|. % In the starred version, the argument will be appended to a previously defined blend expression. % An empty \Meta{mix expr} argument will switch blending off. % \begin{macrocode} \def\blendcolors{\@ifstar{\XC@blendcolors\colorblend}{\XC@blendcolors{}}} \def\XC@blendcolors#1#2% {\edef\colorblend{#1}\XC@edef\XC@@tmp{#2}% \ifx\XC@@tmp\@empty \xglobal@\blendcolorsfalse \else \xglobal@\blendcolorstrue \expandafter\XC@blendc@lors\XC@@tmp!!\@nil \fi \xglobalize@\colorblend \xglobal@stop} % \end{macrocode} % % \begin{macrocode} \def\XC@blendc@lors!#1!#2!#3\@nil {\@ifxempty{#1}{}% {\@ifxempty{#2}% {\edef\colorblend{\colorblend!#1!white}}% {\edef\colorblend{\colorblend!#1!#2}\XC@blendc@lors!#3!\@nil}}} % \end{macrocode} % % \begin{macrocode} \blendcolors{} % \end{macrocode} % \end{macro} % \end{macro} % % % \subsubsection{Color masks and separation} % % \begin{macro}{\maskcolors} % \oarg{core model}\marg{color}\\ % Initialises all necessary parameters for color masking. % The actual color mask expression is stored in |\colormask|. % An empty \Meta{color} argument will switch masking off. % The optional \Meta{core model} argument may be used to determine the underlying color model. % \begin{macrocode} \def\maskcolors{\@testopt{\XC@maskcolors}{}} \def\XC@maskcolors[#1]#2% {\XC@edef\colormask{#2}% \ifx\colormask\@empty \xglobal@\maskcolorsfalse \def\XC@mmod{}\def\XC@mclr{}% \else \xglobal@\maskcolorstrue \extractcolorspecs\colormask\XC@mmod\XC@mclr \@ifxempty{#1}{}% {\convertcolorspec\XC@mmod\XC@mclr{#1}\XC@mclr \XC@sdef\XC@mmod{#1}}% \XC@coremodel\XC@mmod\XC@mclr \fi \xglobalize@\colormask \xglobalize@\XC@mmod \xglobalize@\XC@mclr \xglobal@stop} % \end{macrocode} % % \begin{macrocode} \maskcolors{} % \end{macrocode} % \end{macro} % % % % \subsection{Color application} % % \subsubsection{Standard color commands} % % \begin{macro}{\color} % \marg{color}\\ % \oarg{model-list}\marg{spec-list}\\ % Switches to the color given either by name/expression or by model/specification. % This color will stay in effect until the end of the current \TeX\ group. % \begin{macrocode} \DeclareRobustCommand\color {\@ifnextchar[\@undeclaredcolor\@declaredcolor} % \end{macrocode} % \end{macro} % % \begin{macro}{\@undeclaredcolor} % \oarg{model-list}\marg{spec-list}\\ % Display a color that is given by \Meta{model} name and numerical \Meta{spec}. % \begin{macrocode} \def\@undeclaredcolor[#1]#2% {\begingroup \let\@@cls\@empty \XC@getmodclr12{#1}{#2}{}% {\ifblendcolors \ifx\colorblend\@empty\else \edef\@@mix{\expandafter\@gobble\colorblend}\@tempswafalse \XC@coremodel\@@mod\@@clr\@xcolor@{}{}\@@mod\@@clr \fi \fi \ifconvertcolorsU \edef\@@tmp{\XC@tgt@mod{\@@mod}}% \convertcolorspec\@@mod\@@clr\@@tmp\@@clr \let\@@mod\@@tmp \fi \ifmaskcolors \convertcolorspec\@@mod\@@clr\XC@mmod\@@clr \let\@@mod\XC@mmod \XC@inflate\@@mod\XC@mclr\@@clr\@@tmp \expandafter\XC@mul\@@tmp,\@@clr \fi \edef\@@tmp{\noexpand\XC@undeclaredcolor{\@@mod}{\@@clr}}% \expandafter\endgroup\@@tmp}} % \end{macrocode} % % \begin{macrocode} \def\XC@undeclaredcolor#1#2% {\@ifundefinedmodel{#1}% {\c@lor@error{model `#1'}}% {\@nameuse{color@#1}\current@color{#2}% \edef\XC@current@color{\noexpand\xcolor@{}{\current@color}{#1}{#2}}% \XC@display}} % \end{macrocode} % \end{macro} % % \begin{macro}{\@declaredcolor} % \marg{color}\\ % Display a color that is given by an arbitrary \Meta{color}. % \begin{macrocode} \def\@declaredcolor#1% {\XC@edef\XC@@tmp{#1}\XC@@tstfalse \ifcase\XC@type\XC@@tmp\relax \XC@@tsttrue\or \relax\else \ifblendcolors\XC@@tsttrue\fi \ifmaskcolors\XC@@tsttrue\fi \ifconvertcolorsU\XC@@tsttrue\fi \fi \ifXC@@tst \expandafter\XC@declaredcolor\else \expandafter\XC@declaredc@lor\fi} % \end{macrocode} % % \begin{macrocode} \def\XC@declaredcolor {\XC@split\XC@@tmp \edef\@@tmp{\noexpand\@undeclaredcolor[\@@mod]{\@@clr}}% \expandafter\endgroup\@@tmp} % \end{macrocode} % % \begin{macrocode} \def\XC@declaredc@lor {\XC@let@Nc\XC@current@color{\string\color@\XC@@tmp}% \edef\current@color{\XC@current@color}% \XC@display} % \end{macrocode} % \end{macro} % % \begin{macro}{\textcolor} % \marg{color}\marg{text}\\ % \oarg{model-list}\marg{spec-list}\marg{text}\\ % are just alternative syntax for |\color|, in which the groups are added implicitly. % Thus \emph{text} appears in the specified color, but then the color reverts to its previous value. % The naming is by analogy with |\textrm| (as opposed to |\rm| and |\rmfamily|) although it is slightly a misnomer as the command also works in math-mode. % Additionally, it calls |\leavevmode| to ensure the start of horizontal mode. % \begin{macrocode} \def\textcolor#1#{\@textcolor{#1}} \def\@textcolor#1#2#3{\protect\leavevmode{\color#1{#2}#3}} % \end{macrocode} % \end{macro} % % \begin{macro}{\pagecolor} % \marg{color}\\ % \oarg{model-list}\marg{spec-list}\\ % Specifies the background color for the current, and all following, pages. % It is a global declaration which does not respect \TeX\ groups. % \begin{macrocode} \def\pagecolor {\begingroup \let\ignorespaces\endgroup \let\set@color\set@page@color \color} % \end{macrocode} % \end{macro} % % % \subsubsection{Colored boxes} % % \begin{macro}{\colorbox} % \marg{color}\marg{text}\\ % \oarg{model}\marg{spec}\marg{text}\\ % Takes the same argument forms as |\textcolor|, but the color specifies the \emph{background} color of the box. % \begin{macrocode} \def\colorbox#1#{\protect\color@box{#1}} \def\color@box#1#2{\color@b@x\relax{\color#1{#2}}} % \end{macrocode} % \end{macro} % % \begin{macro}{\fcolorbox} % \marg{frame color}\marg{background color}\marg{text}\\ % \oarg{model}\marg{frame spec}\marg{background spec}\marg{text}\\ % \oarg{frame model}\marg{frame spec}\oarg{background model}\marg{background spec}\marg{text}\\ % \marg{frame color}\oarg{background model}\marg{background spec}\marg{text}\\ % Puts a frame of the first color around a box with a background specified by the second color. % If only the first optional argument is given, it specifies the color model for both colors. % \begin{macrocode} \def\fcolorbox#1#{\color@fbox{#1}} \def\color@fbox#1#2#3#{\protect\color@fb@x{#1}{#2}{#3}} \def\color@fb@x#1#2#3#4% {\color@b@x{\fboxsep\z@\color#1{#2}\XC@fbox}% {\@ifxempty{#3}{\color#1}{\color#3}{#4}}} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@b@x} % Internal macro for |\colorbox| and |\fcolorbox|. % \begin{macrocode} \long\def\color@b@x#1#2#3% {\leavevmode \setbox\z@\hbox{\kern\fboxsep{\set@color#3}\kern\fboxsep}% \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@ \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@ {#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@frameb@x} % Common part of |\framebox| and |\fbox|. % |#1| is a negative kern in the |\framebox| case so that the vertical rules do not add to the width of the box. % Optimised by \People{Donald}{Arseneau}. % \begin{macrocode} \def\XC@frameb@x#1% {\hbox {\@tempdima\fboxrule \advance\@tempdima\fboxsep \advance\@tempdima\dp\@tempboxa \setbox\@tempboxa\hbox {\lower\@tempdima\hbox {\vbox {\kern\fboxrule \hbox{\kern\fboxrule#1% \vbox{\kern\fboxsep\box\@tempboxa\kern\fboxsep}% #1\kern\fboxrule}% \kern\fboxrule}}}% \@tempdima\wd\@tempboxa \edef\@tempa{{\the\@tempdima}{\the\ht\@tempboxa}{\the\dp\@tempboxa}}% \box\@tempboxa\kern-\@tempdima\expandafter\boxframe\@tempa}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@fbox} % \begin{macro}{\@frameb@x} % If no \Option{kernelfbox} option was specified, switch to the new method in general, else only for |\fcolorbox|. % \begin{macrocode} \ifXC@@fbox \let\@frameb@x\XC@frameb@x \let\XC@fbox\fbox \else \def\XC@fbox{\let\@frameb@x\XC@frameb@x\fbox} \fi % \end{macrocode} % \end{macro} % \end{macro} % % % \subsubsection{Driver-specific and generic drawing} % % \begin{macro}{\color@block} % \marg{width}\marg{height}\marg{depth}\\ % Should take up no space for \TeX, but produce a block in the current color of the specified size. % It is mainly used for producing box backgrounds. % \begin{macro}{\boxframe} % \marg{width}\marg{height}\marg{depth}\\ % Draw a frame with a linewidth of |\fboxrule|. % Return a |\hbox| with outer dimensions \meta{width}, \meta{height}, \meta{depth}. % \begin{macro}{\XC@boxframe} % \marg{width}\marg{height}\marg{depth}\marg{frame construction}\\ % Wrapper for |\boxframe| commands that return zero-dimension frames. % \begin{macrocode} \ifnum\XC@@xcd@>\m@ne \def\XC@boxframe#1#2#3#4% {\hbox{\sbox\z@{\ifdim\fboxrule>\z@ #4\fi}% \wd\z@#1\relax\ht\z@#2\relax\dp\z@#3\relax\box\z@}} \fi % \end{macrocode} % \end{macro} % % \textbf{\Option{dvips}-optimised code} % \begin{macrocode} \ifcase\XC@@xcd@ % \end{macrocode} % % \begin{macrocode} \providecommand*\color@block[3]% {{\set@color\hbox {\dimen@#3\edef\@tempa{ \number\dimen@\space}% \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}% \dimen@#1\relax \XC@special{\number\dimen@\@tempa XCcolorblock}}}} % \end{macrocode} % % \begin{macrocode} \providecommand*\boxframe[3]% {\XC@boxframe{#1}{#2}{#3}% {\dimen@#3\edef\@tempa{ \number\dimen@\space}% \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}% \dimen@#1\relax \XC@special{\number\fboxrule\space\number\dimen@\@tempa XCboxframe}}} % \end{macrocode} % % \textbf{\Option{pdftex}-optimised code } % There seems to be no improvement by adding a specific |\color@block| command, since the PDF format doesn't offer higher accuracy than \TeX. % For |\boxframe| we want to achieve this PDF pseudo-code (besides initial scaling):\\[1ex] % \centerline{\ttfamily $l$ w [] $0$ d $2$ J $0$ j $4$ M % $1$ $0$ $0$ $1$ $\frac12\,l$ $\frac12\,l$ cm % $0$ $-d$ $(w-l)$ $(h+d-l)$ re s} % \begin{macrocode} \or % \end{macrocode} % % \begin{macrocode} \providecommand*\boxframe[3]% {\XC@boxframe{#1}{#2}{#3}% {\dimen@#3\edef\@tempa{ 0 -\strip@pt\dimen@\space}% \edef\@tempb{\advance\dimen@\the\dimen@}% \dimen@#2\advance\dimen@-\fboxrule\@tempb \edef\@tempb{ \strip@pt\dimen@\space re s}% \dimen@#1\advance\dimen@-\fboxrule \edef\@tempb{ cm\@tempa\strip@pt\dimen@\@tempb}% \dimen@.5\fboxrule\edef\@tempa{ \strip@pt\dimen@}% \XC@special {0.996264 0 0 0.996264 0 0 cm \strip@pt\fboxrule\space w [] 0 d 2 J 0 j 4 M 1 0 0 1\@tempa\@tempa\@tempb}}} % \end{macrocode} % % \begin{macrocode} \fi % \end{macrocode} % % \textbf{Generic code } % The definition here works by selecting a color, and then drawing a \TeX\ rule (unless |\ifcolors@false|). % \begin{macrocode} \providecommand*\color@block[3]% {{\set@color\rlap{\ifcolors@\vrule\@width#1\@height#2\@depth#3\fi}}} % \end{macrocode} % % The following definition was optimised by \People{Donald}{Arseneau}. % \begin{macrocode} \providecommand*\boxframe[3]% {\hbox {\dimen@#2\advance\dimen@#3\relax \lower#3\vbox {\hrule\@height\fboxrule \@tempdima-0.5\fboxrule \ifodd\fboxrule\advance\@tempdima\m@ne sp\fi \kern\@tempdima \hbox {\advance\dimen@-\fboxrule \vrule\@width\fboxrule\@height\dimen@\@depth\z@ \@tempdima#1\advance\@tempdima-\tw@\fboxrule \kern\@tempdima \vrule\@width\fboxrule\@height\dimen@\@depth\z@}% \kern-0.5\fboxrule \hrule\@height\fboxrule}}} % \end{macrocode} % \end{macro} % \end{macro} % % % \subsubsection{Color argument processing} % % \begin{macro}{\@xcolor@} % \marg{type-spec}\marg{driver-spec}\marg{model}\marg{spec}\\ % This is the `work-horse' that does all necessary conversions and calculations if a color (expression) has to be displayed. % \Meta{type-spec} and \Meta{driver-spec} are ignored. % |\@@mix| may contain a mix expression without leading `!'. % \begin{macrocode} \def\@xcolor@#1#2#3#4% {\XC@sdef\@@mod{#3}\edef\@@clr{#4}% \ifx\@@mix\@empty\else\expandafter\@xcolor@@\@@mix!!!!\@nil\fi \if@tempswa \XC@let@Nc\@@tmp{XC@cnv@\@@mod @compl}% \ifx\@@tmp\relax \expandafter\XC@calc@\@@clr,,,,:C\else \expandafter\@@tmp\@@clr,\fi \let\@@clr\@@tmp \fi} % \end{macrocode} % % \begin{macrocode} \def\@xcolor@@#1!#2!#3!#4!#5\@nil {\dimen@\@ifxempty{#1}{100}{#1}\p@ \edef\@@mix{\@ifxempty{#2}{white}{#2}}% \ifdim\dimen@=100\p@ \expandafter\XC@postfix\@@mix]\relax \else\ifdim\dimen@=\z@ \extractcolorspecs\@@mix\@@mod\@@clr \else \XC@let@Nc\@@tmp{XC@clr@\@@mod @\@@mix}% \ifx\@@tmp\relax \extractcolorspec\@@mix\@@tmp \ifx\@@mod\XC@mod@gray \edef\@@mod{\expandafter\@firstoftwo\@@tmp}% \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}% \convertcolorspec\XC@mod@gray\@@clr\@@mod\@@clr \else \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp \fi \else \ifx\@@mod\XC@mod@hsb\expandafter\XC@extract@hue\@@clr:\@@hue\fi \fi \XC@inflate\@@mod\@@clr\@@tmp\@@tmp \expandafter\XC@mix\@@tmp,\@@clr \fi\fi \@ifxempty{#3}% {\@ifxempty{#4}{}{\@xcolor@@!#4!#5\@nil}}% {\@xcolor@@#3!#4!#5\@nil}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@split} % \marg{ext expr}\\ % Split \Meta{ext expr} into all of its components, do the necessary calculations, and save the model of the resulting color in |\@@mod| and the parameters in |\@@clr|. % Note: |\XC@split| opens a group which has to be closed afterwards by |\endgroup|. % \begin{macrocode} \def\XC@split#1% {\begingroup\XC@edef\@@tmp{#1}\expandafter\XC@split@i\@@tmp>>\@nnil} % \end{macrocode} % % \begin{macro}{\XC@split@i} % Separate first part of expression chain and apply function(s) afterwards as requested. % \begin{macrocode} \def\XC@split@i#1>% {\def\@@tmp{#1}\XC@split@ii#1:\@nil \XC@func} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@split@ii} % Check whether it is an \emph{extended} or \emph{standard} color expression. % \begin{macrocode} \def\XC@split@ii#1:#2\@nil {\@ifxempty{#2}{\XC@split@vi}{\XC@split@iii#1,,:#2}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@split@iii} % Initialisation for extended color expressions. % The magic \Meta{div} is either given as second argument, or calculated as the sum of all weights. % \begin{macrocode} \def\XC@split@iii#1,#2,#3:#4:% {\edef\XC@@mod{#1}\let\@tempa\@empty \ifx,#2,\XC@@tsttrue\@tempdima\z@\else\XC@@tstfalse\@tempdima#2\p@\fi \XC@split@iv#4;,;} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@split@iv} % \marg{expr}\marg{dec}\\ % Step through the list of \Meta{expr},\Meta{dec} pairs. % Add \Meta{dec} to the sum of weights (in order to calculate the ultimate \Meta{div}) and append pair information to |\@tempa| command. % At the end of the list, execute |\@tempa| and map resulting parameter vector into unit cube. % Finally, |\@@mod| and |\@@clr| contain the desired information about color model and parameters. % \begin{macrocode} \def\XC@split@iv#1,#2;% {\@ifxempty{#1}% {\let\XC@@clr\@empty \@tempa \expandafter\XC@calc@\XC@@clr,,,,:U% \let\@@mod\XC@@mod \let\@@clr\@@tmp} {\XC@append\@tempa{\XC@split@v{#1}{#2}}% \ifXC@@tst\advance\@tempdima#2\p@\fi \XC@split@iv}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@split@v} % \marg{expr}\marg{dec}\\ % Extract color specification from \Meta{expr}, convert to target model, multiply the resulting vector by the quotient of \Meta{dec} and \Meta{div}, add that vector to the overall parameter vector. % \begin{macrocode} \def\XC@split@v#1#2% {\def\@@tmp{#1}\XC@split@vi \ifx\@@mod\XC@@mod\else \convertcolorspec\@@mod\@@clr\XC@@mod\@@clr \fi \dimen@#2\p@ \rdivide\dimen@\@tempdima \edef\@@scl{\strip@pt\dimen@}% \expandafter\XC@calc@\@@clr,,,,:S% \ifx\XC@@clr\@empty\let\XC@@clr\@@tmp\else \XC@inflate\XC@@mod\XC@@clr\@@tmp\@@tmp \expandafter\XC@add\@@tmp,\XC@@clr \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@split@vi} % Start splitting process for standard color expression. % \begin{macrocode} \def\XC@split@vi{\count@\z@ \expandafter\XC@split@vii\@@tmp!\@nil} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@split@vii} % Count number of `-' signs at the beginning of the string. % \begin{macrocode} \def\XC@split@vii#1% {\ifx#1-\advance\count@\@ne\expandafter\XC@split@vii \else\expandafter\XC@split@viii\expandafter#1\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@split@viii} % Extract \Meta{name} and \Meta{mix expr} part of color expression. % Delegate control to |\@xcolor@|. % \begin{macrocode} \def\XC@split@viii#1!#2\@nil {\edef\@@nam{#1}\edef\@@mix{#2}% \ifodd\count@\@tempswatrue\else\@tempswafalse\fi \@ifundefinedcolor\@@nam {\c@lor@error{`\@@nam'}\def\@@nam{black}}{}% \let\xcolor@\@xcolor@\@nameuse{\string\color@\@@nam}} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\XC@postfix} % Examine the postfix of a color expression and derive the actions to be taken for color series. % \begin{macrocode} \def\XC@postfix#1#2]#3\relax {\begingroup \if[#1\@tempcnta#2\relax\XC@stepabs\@@nam \else\@tempcnta\z@ \@tfor\@@tok:=#1#2\do {\if+\@@tok\advance\@tempcnta\@ne \else\if-\@@tok\advance\@tempcnta\m@ne \else\@tempcnta\z@\expandafter\@break@tfor\fi\fi}% \ifnum\@tempcnta=\z@\relax\else\XC@step\@@nam\fi \let\@@tmp\@empty \fi\expandafter\endgroup\@@tmp} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@func} % \marg{function}|,{|\Meta[1]{arg}|,...,{|\Meta[n]{arg}|}>...\@nnil>|\\ % General macro to handle color functions. % The number of arguments depends on the function. % Multiple consecutive functions may be applied. % Color model and specifications are input and output via |\@@mod| and |\@@clr|. % \begin{macrocode} \def\XC@func#1>{\@ifxempty{#1}{\remove@to@nnil}{\XC@fun@#1,>\XC@func}} \def\XC@fun@#1,#2>{\@nameuse{XC@func@#1}#2,,>} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@func@wheel} % \begin{macro}{\XC@func@twheel} % \marg{angle}|,|\marg{full circle}|,>|\\ % Calculate color wheel position according to \Model{Hsb} or \Model{tHsb} model: \emph{hue} is rotated by \meta{angle} relative to \meta{full circle}. % The latter value is taken from |\rangeHsb| if left empty. % Finally, |\@@mod| is changed to \Model{hsb}. % \begin{macrocode} \def\XC@func@wheel#1,#2,#3>{\XC@func@wh@el{#1}{#2}0} % \end{macrocode} % % \begin{macrocode} \def\XC@func@twheel#1,#2,#3>{\XC@func@wh@el{#1}{#2}1} % \end{macrocode} % % \begin{macrocode} \def\XC@func@wh@el#1#2#3% {\convertcolorspec\@@mod\@@clr {\ifcase#3 \XC@mod@Hsb\or\XC@mod@tHsb\fi}\@@clr \expandafter\XC@extract@hue\@@clr:\@@hue \dimen@#1\p@ \@ifxempty{#2}{}% {\rdivide\dimen@{#2}\lshift\dimen@ \dimen@\rangeHsb\dimen@\rshift\dimen@}% \advance\dimen@\@@hue\p@ \rdivide\dimen@\rangeHsb \edef\@@hue{\strip@pt\dimen@}\XC@calcU\@@hue\@@hue \ifcase#3 \expandafter\XC@replace@hue\@@clr:\@@hue,\@@clr \or \XC@c@lcS\rangeHsb{}\@@hue\@@hue \expandafter\XC@replace@hue\@@clr:\@@hue,\@@clr \convertcolorspec\XC@mod@tHsb\@@clr\XC@mod@hsb\@@clr \fi \let\@@mod\XC@mod@hsb} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\XC@display} % Write information to log file and display the current color. % \begin{macrocode} \def\XC@display {\XC@bcolor\XC@let@cN{\string\color@.}\XC@current@color \ifnum\XC@type{.}=1 \PackageWarning{xcolor}{Incompatible color definition}\else \ifnum\XC@tracing>2 \begingroup \let\xcolor@\@empty \def\@nil{\string\@nil}% \PackageInfo{xcolor}{Setting color `\XC@current@color'}% \endgroup \fi\fi \XC@mcolor\set@color\XC@ecolor\ignorespaces} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@bcolor} % \begin{macro}{\XC@mcolor} % \begin{macro}{\XC@ecolor} % Hooks that may be used to execute additional code within |\XC@display| immediately before/after a color is being displayed. % Note that |\XC@bcolor| can use the current color information given by |\current@color| and |\XC@current@color| if further manipulation of the color is necessary. % These hooks are intended for class/package writers and not used by \XC{} itself. % In order to prevent unwanted side effects, please make sure that all internal \XC{} variables are restored properly at the end of |\XC@display|. % \begin{macrocode} \let\XC@bcolor\relax \let\XC@mcolor\relax \let\XC@ecolor\relax % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % \subsubsection{Border colors for hyperlinks} % % \begin{macro}{\XC@bordercolor} % \marg{type}\marg{color}\\ % Basic macro to transform \Meta{color} into the format required by \Package{hyperref}. % Here, \Meta{type} corresponds to the key `x\Meta{type}bordercolor'. % \begin{macrocode} \def\XC@bordercolor#1#2% {\extractcolorspec{#2}\XC@@tmp \expandafter\convertcolorspec\XC@@tmp\XC@mod@rgb\XC@@tmp \expandafter\edef\csname @#1bordercolor\endcsname {\expandafter\XC@strip@comma\XC@@tmp,,\@nnil}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@pdfborder} % \Meta[1]{number}| |\Meta[2]{number}| |\Meta[3]{number}|\relax|\\ % Basic macro to transform a pdfborder expression into a suitable format for \Program{dvips} with a resolution of 8000~dpi. % \begin{macrocode} \def\XC@pdfborder#1 #2 #3\relax {\def\@@scl{80}\XC@calc@#1,#2,#3,,:S% \edef\@pdfborder{\expandafter\XC@strip@comma\@@tmp,,\@nnil}} % \end{macrocode} % \end{macro} % % % \subsubsection{Colored rows in tables} % % The following definitions make only sense if the \Package{colortbl} package has been loaded by the \Option{table} option. % \begin{macrocode} \@ifXCopt{table}{% % \end{macrocode} % % \begin{macro}{\rowcolors} % \begin{macro}{\rowcolors*} % \oarg{commands}\marg{row}\marg{odd-row color}\marg{even-row color}\\ % Defines alternating colors for the next tabular environment. % Starting with row \Meta{row}, odd and even rows get their respective colors. % The color arguments may also be left empty (= no color). % Optional commands may be |\hline| or |\noalign|\marg{stuff}. % \begin{macrocode} \def\rowcolors {\@ifstar{\@rowcmdfalse\rowc@lors}{\@rowcmdtrue\rowc@lors}} % \end{macrocode} % % \begin{macrocode} \def\rowc@lors{\@testopt{\rowc@l@rs}{}} % \end{macrocode} % % \begin{macrocode} \def\rowc@l@rs[#1]#2#3#4% {\global\rownum=\z@ \global\@rowcolorstrue \@ifxempty{#3}% {\def\@oddrowcolor{\@norowcolor}}% {\def\@oddrowcolor{\gdef\CT@row@color{\CT@color{#3}}}}% \@ifxempty{#4}% {\def\@evenrowcolor{\@norowcolor}}% {\def\@evenrowcolor{\gdef\CT@row@color{\CT@color{#4}}}}% \if@rowcmd \def\@rowcolors {#1\if@rowcolors \noalign{\relax\ifnum\rownum<#2\@norowcolor\else \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}% \fi}% \else \def\@rowcolors {\if@rowcolors \ifnum\rownum<#2\noalign{\@norowcolor}\else #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi \fi}% \fi \CT@everycr{\@rowc@lors\the\everycr}% \ignorespaces} % \end{macrocode} % % \begin{macrocode} \def\@rowc@lors{\noalign{\global\advance\rownum\@ne}\@rowcolors} \let\@rowcolors\@empty % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\showrowcolors} % \begin{macro}{\hiderowcolors} % Switch coloring mode on/off. % \begin{macrocode} \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors} \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}} \def\@norowcolor{\global\let\CT@row@color\relax} \@norowcolor % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\if@rowcolors} % \begin{macro}{\if@rowcmd} % \begin{macrocode} \newif\if@rowcolors \newif\if@rowcmd % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\rownum} % Reserve a counter register. % \begin{macrocode} \@ifundefined{rownum}{\newcount\rownum}{} % \end{macrocode} % \end{macro} % % \begin{macro}{\CT@extract} % This is a fix for active `!' character to enable color expressions; it is apparently only necessary for |\columncolor| commands within |\multicolumn|. % \begin{macrocode} \def\CT@extract#1\columncolor#2#3\@nil {\if!#2% \let\CT@column@color\@empty \else \if[#2% \expandafter\CT@extractb \else \XC@edef\XC@@tmp{#2}% \edef\CT@column@color{\noexpand\CT@color{\XC@@tmp}}% \expandafter\CT@extractd \fi {#1}#3\@nil \fi} % \end{macrocode} % \end{macro} % % End of conditional code for colored tables. % \begin{macrocode} }{} % \end{macrocode} % % % \subsubsection{Color information} % % \begin{macro}{\extractcolorspec} % \marg{color}\marg{cmd}\\ % Extracts the color specification of \Meta{color} and puts it into \Meta{cmd}; equivalent to % |\def|\Meta{cmd}|{|\marg{model}\marg{spec}|}|. % \begin{macrocode} \def\extractcolorspec#1#2% {\XC@split{#1}\edef\@@tmp{{\@@mod}{\@@clr}}\aftergroupdef#2\@@tmp} % \end{macrocode} % \end{macro} % % \begin{macro}{\extractcolorspecs} % \marg{color}\marg{model-cmd}\marg{color-cmd}\\ % Extracts the color specification of \Meta{color} and puts it into \Meta{model-cmd} and \Meta{color-cmd}, respectively. % \begin{macrocode} \def\extractcolorspecs#1#2#3% {\extractcolorspec{#1}#3% \edef#2{\expandafter\@firstoftwo#3}% \edef#3{\expandafter\@secondoftwo#3}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@extract@hue} % Extract first entry of comma-separated value list. % \begin{macrocode} \def\XC@extract@hue#1,#2:#3{\edef#3{#1}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@extract@hue} % Change first entry of comma-separated value list. % \begin{macrocode} \def\XC@replace@hue#1,#2:#3,#4{\edef#4{#3,#2}} % \end{macrocode} % \end{macro} % % \begin{macro}{\@ifundefinedcolor} % \marg{name}\marg{undefined}\marg{defined}\\ % Checks whether \Meta{name} is a defined color name and executes the respective code. % \begin{macrocode} \def\@ifundefinedcolor#1{\@ifundefined{\string\color@#1}} % \end{macrocode} % \end{macro} % % \begin{macro}{\@ifundefinedmodel} % \marg{model}\marg{undefined}\marg{defined}\\ % Checks whether \Meta{model} is a defined color model and executes the respective code. % \begin{macrocode} \def\@ifundefinedmodel#1{\@ifundefined{color@#1}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@type} % \marg{name}\\ % Determines the \emph{type} of color \Meta{name}, expressed as a natural number (here, $t_1,t_2,\dots$ denote the tokens of |\\color@|\Meta{name}): % \begin{center} % \begin{tabular}{cll} % \em type& \em description& \em conditions\\ % 0 & undefined\\ % 1 & unidentified& $t_1\neq|\xcolor@|$\\ % 2 & named & $t_1=|\xcolor@|\quad t_2\neq\emptyset$\\ % 3 & declared & $t_1=|\xcolor@|\quad t_2=\emptyset\quad t_3\neq\emptyset$\\ % 4 & undeclared & $t_1=|\xcolor@|\quad t_2=\emptyset\quad t_3=\emptyset$\\ % \end{tabular} % \end{center} % \begin{macrocode} \def\XC@type#1% {\expandafter\expandafter\expandafter\XC@typ@ \csname\string\color@#1\endcsname\@empty\@empty\@empty\XC@@} % \end{macrocode} % % \begin{macrocode} \def\XC@typ@#1#2#3#4\XC@@ {\ifx#1\relax 0\else \ifx#1\xcolor@ \ifx$#2$% \ifx$#3$4\else3\fi\@gobbletwo \else2\fi\@gobbletwo \else1\fi \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@info} % \marg{color}\marg{cmd}\\ % Determines the \emph{type} of color \Meta{color}, expressed as a natural number; the result is stored in \Meta{cmd}. % \begin{center} % \begin{tabular}{cll} % \em type& \em description& \em examples\\ % 0 & implicit name& `|.|'\\ % 1 & explicit name& `|red|', `|green|'\\ % 2 & standard color expression& `|-red|', `|green!50|'\\ % 3 & extended color expression& `|rgb:-red,1;green!50,2|'\\ % 4 & color function expression& `|rgb:-red,1;green!50,2>wheel,30|'\\ % \end{tabular} % \end{center} % \begin{macrocode} \def\XC@info#1#2% {\XC@edef#2{#1}% \if.#2\def#2{0}\else\expandafter\in@\expandafter>\expandafter{#2}% \ifin@\def#2{4}\else\expandafter\in@\expandafter:\expandafter{#2}% \ifin@\def#2{3}\else\expandafter\in@\expandafter!\expandafter{#2}% \ifin@\def#2{2}\else\edef#2{\noexpand\in@{/-}{/#2}}#2% \edef#2{\ifin@2\else1\fi}\fi\fi\fi\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\tracingcolors} % Put the integer following |\tracingcolors| into the macro |\XC@tracing|. % \begin{macrocode} \def\tracingcolors{\begingroup\afterassignment\XC@tracingcolors\count@} \def\XC@tracingcolors{\aftergroupdef\XC@tracing{\the\count@}} % \end{macrocode} % % \begin{macrocode} \tracingcolors=0 % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@logdef} % \marg{name}\\ % Issue a log file information if color \Meta{name} is being (re)defined. % \begin{macrocode} \def\XC@logdef#1% {\ifnum\XC@tracing>1 \@ifundefinedcolor{#1}% {\ifnum\XC@tracing>2 \PackageInfo{xcolor}{Defining color `#1'}% \fi}% {\PackageInfo{xcolor}{Redefining color `#1'}}% \fi} % \end{macrocode} % \end{macro} % % % \subsubsection{Color testing} % % \begin{environment}{testcolors} % \oarg{num models}\\ % This is a simple tabular environment in order to test (display) colors in different models, showing both the visual result and the model-specific parameters. % The optional \Meta{num models} argument is a comma-separated list of \emph{numerical} color models. % \begin{macrocode} \newenvironment*{testcolors}[1][rgb,cmyk,hsb,HTML]% {\let\@@nam\@empty\count@\z@ \@for\@@tmp:=#1\do {\advance\count@\@ne \XC@sdef\@@tmp{\@@tmp}\edef\@@nam{\@@nam{\@@tmp}}}% \edef\@@num{\the\count@}% % \end{macrocode} % % Check whether the actual font belongs to a set of OT1-encoded monospaced fonts in order to display |>| instead of |\textgreater|. % \begin{macro}{\XC@@gt} % \begin{macrocode} \def\XC@@gt{\textgreater}\def\@@tmp{OT1}% \ifx\f@encoding\@@tmp \@expandtwoargs\in@{,\f@family,}{,cmtt,pcr,}% \ifin@\def\XC@@gt{>}\fi \fi % \end{macrocode} % \end{macro} % % Disable prologue and tracing commands for temporary color definitions. % \begin{macrocode} \def\XC@@xcp@{-1}\ifnum\XC@tracing>1 \def\XC@tracing{1}\fi % \end{macrocode} % % \begin{macro}{\testcolor} % \marg{color}\\ % \oarg{model-list}\marg{spec-list}\\ % Each |\testcolor| command generates a table row. % If the column-model matches the model of the color in question, its parameters are underlined. % \begin{macrocode} \def\testcolor{\@testopt{\@testcolor}{}}% \def\@testcolor[##1]##2% {\XC@mdef\@@mod{##1}\XC@edef\@@clr{##2}% \ifx\@@mod\@empty \let\@@arg\@@clr\XC@replace\@@arg>\XC@@gt\else \edef\@@arg{[\@@mod]{\@@clr}}\XC@definecolor[]{*}\@@mod\@@clr \def\@@clr{*}\fi \XC@append\@@arg{&}\extractcolorspecs\@@clr\@@mod\@@clr \@testc@lor}% % \end{macrocode} % \end{macro} % % Common loop macro for table head and |\testcolor| rows. % Note that this command is only available within the |testcolors| environment. % \begin{macrocode} \def\@testc@lor {\count@\z@ \expandafter\@tfor\expandafter\@@tmp\expandafter:\expandafter=\@@nam\do {\ifx\@@clr\@empty \edef\@@cmd{\noexpand\textbf{\@@tmp}}% \else \convertcolorspec\@@mod\@@clr\@@tmp\@@cmd \edef\@@cmd {\noexpand\@testc@l@r{\@@tmp}{\@@cmd}% \ifx\@@mod\@@tmp\noexpand\underline\fi {\expandafter\XC@strip@comma\@@cmd,,\@nnil}}% \fi \expandafter\XC@append\expandafter\@@arg\expandafter{\@@cmd}% \advance\count@\@ne \ifnum\count@=\@@num\XC@append\@@arg{\\}\else\XC@append\@@arg{&}\fi}% \@@arg}% % \end{macrocode} % % Display color sample box: % \begin{macrocode} \def\@testc@l@r##1##2% {\fboxsep\z@\fbox{\colorbox[##1]{##2}{\phantom{XX}}} }% % \end{macrocode} % % Now start the table: % \begin{macrocode} \tabular{@{}l*{\@@num}{l}@{}}% \def\@@arg{\textbf{color}& }\let\@@clr\@empty\@testc@lor}% % \end{macrocode} % % End of environment: % \begin{macrocode} {\endtabular\ignorespacesafterend} % \end{macrocode} % \end{environment} % % % \subsubsection{Extra groups} % Turning on extra groups in the standard \LaTeX\ commands, so that color commands are scoped corectly. % % Like |\normalcolor|, the following five commands are defined in the kernel, with empty definitions (|\relax|). % This means that they can be used to make macros in packages `color safe'. % The commands will not have any effect unless a user also uses a color package, when the `active definitions' here will take effect and keep color commands correctly scoped. % % \begin{macro}{\color@setgroup} % This is to be used in contexts (e.g., `lrbox') where text is to be saved and used after some other, unknown, text that may contain color commands. % A matching |\color@endgroup| should be used at the end of the text. % \begin{macrocode} \def\color@setgroup{\begingroup\set@color} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@begingroup} % This is to be used at the start of contexts that may contain color commands, but where it is not necessary to save the current color. % Examples of this are in the box commands of \File{ltboxes.dtx} where user-supplied text is saved internally in a box between |\color@begingroup|, |\color@endgroup|, but the box is used before any other color commands could intervene. % A matching |\color@endgroup| should be used at the end of the text. % \begin{macrocode} \let\color@begingroup\begingroup % \end{macrocode} % \end{macro} % % \begin{macro}{\color@endgroup} % To be used to close the `group' started by one of the above two commands. % The |\endgraf| in its definition is required in the case of groups of text in vertical `par' mode, but doesn't do any harm in horizontal `LR' contexts. % \begin{macrocode} \def\color@endgroup{\endgraf\endgroup} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@hbox} % To be used to open a `colored hbox' % \begin{macrocode} \def\color@hbox{\hbox\bgroup\color@begingroup} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@vbox} % To be used to open a `colored hbox' % \begin{macrocode} \def\color@vbox{\vbox\bgroup\color@begingroup} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@endbox} % To be used to close a `colored (h/v)box' % \begin{macrocode} \def\color@endbox{\color@endgroup\egroup} % \end{macrocode} % \end{macro} % % % % \subsection{Color calculation} % % \subsubsection{Color conversion} % % \begin{macro}{\convertcolorspec} % \marg{source model}\marg{spec}\marg{target model}\marg{cmd}\\ % General color conversion command. % \begin{macrocode} \def\convertcolorspec#1#2#3#4% {\begingroup \XC@sdef\sm{#1}\XC@sdef\tm{#3}\edef\@@tmp{#2}% \ifx\sm\XC@mod@named\extractcolorspecs\@@tmp\sm\@@tmp\fi \ifx\sm\tm\else\csname XC@cnv@\sm\expandafter\endcsname\@@tmp,\fi \aftergroupdef#4\@@tmp} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@coremodel} % \marg{model-cmd}\marg{color-cmd}\\ % Convert color, given by \marg{model-cmd} and \marg{color-cmd}, into parametrisation in one of the \emph{core} models. % The result is again saved in \marg{model-cmd} and \marg{color-cmd}. % \begin{macrocode} \def\XC@coremodel#1#2% {\XC@ifxcase#1% {\XC@mod@RGB {\convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb}% \XC@mod@HTML{\convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb}% \XC@mod@Hsb {\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% \XC@mod@tHsb{\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% \XC@mod@HSB {\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% \XC@mod@Gray{\convertcolorspec#1#2\XC@mod@gray#2\let#1\XC@mod@gray}% \XC@mod@wave{\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% \XC@mod@named{}% \XC@mod@ps{}}% {\expandafter\XC@calc@#2,,,,:N\let#2\@@tmp}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@rgb} % \Meta{red}|,|\Meta{green}|,|\Meta{blue}|,| % \begin{macrocode} \def\XC@cnv@rgb#1,#2,#3,% {\XC@ifxcase\tm {\XC@mod@cmy {\XC@calc@#1,#2,#3,,:C}% \XC@mod@cmyk {\XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@cmy@cmyk\@@tmp,}% \XC@mod@RGB {\edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:M}% \XC@mod@HTML{\edef\@@scl{\@cclv}\XC@calc@#1,#2,#3,,:M% \expandafter\XC@calc@\@@tmp,,:H% \expandafter\XC@cnv@rgb@HTML\@@tmp,}% \XC@mod@gray{\XC@cnv@rgb@gray#1,#2,#3,}% \XC@mod@Gray{\XC@cnv@rgb@gray#1,#2,#3,\XC@cnv@gray\@@tmp,}}% {\XC@cnv@rgb@hsb#1,#2,#3,\XC@cnv@hsb@}} % \end{macrocode} % % \begin{macro}{\XC@cnv@rgb@} % \begin{macrocode} \def\XC@cnv@rgb@ {\ifx\tm\XC@mod@rgb\else\expandafter\XC@cnv@rgb\@@tmp,\fi} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\XC@cnv@rgb@hsb} % \Meta{red}|,|\Meta{green}|,|\Meta{blue}|,| % \begin{macrocode} \def\XC@cnv@rgb@hsb#1,#2,#3,% {\count@\z@ \ifdim#2\p@>#1\p@ \else\advance\count@4 \fi \ifdim#3\p@>#2\p@ \else\advance\count@2 \fi \ifdim#1\p@>#3\p@ \else\advance\count@1 \fi \ifcase\count@\or \XC@c@v@rgb@hsb{#3}{#2}{#1}3{}\or \XC@c@v@rgb@hsb{#2}{#1}{#3}1{}\or \XC@c@v@rgb@hsb{#2}{#3}{#1}3-\or \XC@c@v@rgb@hsb{#1}{#3}{#2}5{}\or \XC@c@v@rgb@hsb{#3}{#1}{#2}5-\or \XC@c@v@rgb@hsb{#1}{#2}{#3}1-\or \def\@tempa{0}\def\@tempb{0}\XC@calcN{#3}\@tempc \fi \edef\@@tmp{\@tempa,\@tempb,\@tempc}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@c@v@rgb@hsb} % \marg{max}\marg{med}\marg{min}\marg{const}\marg{sign} % \begin{macrocode} \def\XC@c@v@rgb@hsb#1#2#3#4#5% {\XC@calcN{#1}\@tempc \llshiftset\dimen@{#1}% \llshiftset\@tempdimb{-#3}\advance\@tempdimb\dimen@ \llshiftset\@tempdima{-#5#2}\advance\@tempdima#5\dimen@ \advance\@tempdima#4\@tempdimb \rdivide\@tempdima{6\@tempdimb}% \edef\@tempa{\ifdim\@tempdima>\p@1\else\strip@pt\@tempdima\fi}% \rdivide\@tempdimb\dimen@ \edef\@tempb{\strip@pt\@tempdimb}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@rgb@gray} % \Meta{red}|,|\Meta{green}|,|\Meta{blue}|,| % \begin{macrocode} \def\XC@cnv@rgb@gray#1,#2,#3,% {\llshiftset\dimen@{#1}\@tempdima30\dimen@ \llshiftset\dimen@{#2}\advance\@tempdima59\dimen@ \llshiftset\dimen@{#3}\advance\@tempdima11\dimen@ \rrshift\@tempdima \rdivide\@tempdima{100}% \edef\@@tmp{\strip@pt\@tempdima}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@rgb@HTML} % \Meta{red}|,|\Meta{green}|,|\Meta{blue}|,| % \begin{macrocode} \def\XC@cnv@rgb@HTML#1,#2,#3,% {\edef\@@tmp{#1#2#3}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@cmy} % \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,| % \begin{macrocode} \def\XC@cnv@cmy#1,#2,#3,% {\XC@ifxcase\tm {\XC@mod@cmyk{\XC@cnv@cmy@cmyk#1,#2,#3,}% \XC@mod@gray{\XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp}% \XC@mod@Gray{\XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp \XC@cnv@gray\@@tmp,}}% {\XC@calc@#1,#2,#3,,:C\XC@cnv@rgb@}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@cmy@cmyk} % \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,|\\ % This transformation includes linear \emph{undercolor-removal} and \emph{black-generation}, as specified by the 4-dimensional parameter vector |\adjustUCRBG|. % \begin{macrocode} \def\XC@cnv@cmy@cmyk#1,#2,#3,% {\edef\@@scl {\ifdim#1\p@<#2\p@ \ifdim#1\p@<#3\p@ #1\else #3\fi \else \ifdim#2\p@<#3\p@ #2\else #3\fi \fi}% \expandafter\XC@calc@\adjustUCRBG,:S% \expandafter\XC@c@v@cmy@cmyk\@@tmp,#1,#2,#3,} % \end{macrocode} % % \begin{macrocode} \def\XC@c@v@cmy@cmyk#1,#2,#3,#4,#5,#6,#7,% {\XC@add#5,#6,#7,,-#1,-#2,-#3,,\@@tmp \edef\@@tmp{\@@tmp,#4}% \expandafter\XC@calc@\@@tmp,:N} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@cmyk} % \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,|\Meta{black}|,| % \begin{macrocode} \def\XC@cnv@cmyk#1,#2,#3,#4,% {\XC@ifxcase\tm {\XC@mod@gray{\XC@cnv@rgb@gray#1,#2,#3,\edef\@@arg{#4}% \XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp}% \XC@mod@Gray{\XC@cnv@rgb@gray#1,#2,#3,\edef\@@arg{#4}% \XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp \XC@cnv@gray\@@tmp,}}% {\XC@cnv@cmyk@cmy#1,#2,#3,#4,% \ifx\tm\XC@mod@cmy\else\expandafter\XC@cnv@cmy\@@tmp,\fi}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@cmyk@cmy} % \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,|\Meta{black}|,| % \begin{macrocode} \def\XC@cnv@cmyk@cmy#1,#2,#3,#4,% {\edef\@@arg{#4}\XC@calc@#1,#2,#3,,:T} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@hsb} % \Meta{hue}|,|\Meta{saturation}|,|\Meta{brightness}|,| % \begin{macrocode} \def\XC@cnv@hsb#1,#2,#3,% {\XC@ifxcase\tm {\XC@mod@Hsb {\XC@cnv@hsb@Hsb#1,#2,#3,}% \XC@mod@tHsb{\XC@cnv@hsb@Hsb#1,#2,#3,\expandafter\XC@cnv@Hsb\@@tmp,}% \XC@mod@HSB {\edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:M}}% {\XC@cnv@hsb@rgb#1,#2,#3,\XC@cnv@rgb@}} % \end{macrocode} % % \begin{macro}{\XC@cnv@hsb@} % \begin{macrocode} \def\XC@cnv@hsb@ {\ifx\tm\XC@mod@hsb\else\expandafter\XC@cnv@hsb\@@tmp,\fi} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\XC@cnv@hsb@rgb} % \Meta{hue}|,|\Meta{saturation}|,|\Meta{brightness}|,| % \begin{macrocode} \def\XC@cnv@hsb@rgb#1,#2,#3,% {\llshiftset\dimen@{#1}\dimen@6\dimen@ \rrshift\dimen@ \afterassignment\dimen@\count@=\the\dimen@ \edef\@@tmp{\strip@pt\dimen@}% \ifodd\count@\else\XC@calcC\@@tmp\@@tmp\fi \edef\@@tmp {\ifcase\count@ 0,\@@tmp,1\or \@@tmp,0,1\or 1,0,\@@tmp\or 1,\@@tmp,0\or \@@tmp,1,0\or 0,1,\@@tmp\or 0,\@@tmp,1\fi}% \edef\@@scl{#2}\expandafter\XC@calc@\@@tmp,,:S% \expandafter\XC@calc@\@@tmp,,:C% \edef\@@scl{#3}\expandafter\XC@calc@\@@tmp,,:S% \expandafter\XC@calc@\@@tmp,,:N} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@hsb@Hsb} % \Meta{hue}|,|\Meta{saturation}|,|\Meta{brightness}|,| % \begin{macrocode} \def\XC@cnv@hsb@Hsb#1,#2,#3,% {\XC@c@lcS\rangeHsb{,#2,#3}{#1}\@@tmp} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@gray} % \Meta{gray}|,| % \begin{macrocode} \def\XC@cnv@gray#1,% {\XC@ifxcase\tm {\XC@mod@rgb {\XC@calcN{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% \XC@mod@cmy {\XC@calcC{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% \XC@mod@cmyk{\XC@calcC{#1}\@@tmp \edef\@@tmp{0,0,0,\@@tmp}}% \XC@mod@RGB {\edef\@@scl{\rangeRGB}\XC@calcM{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% \XC@mod@HTML{\edef\@@scl{\@cclv}\XC@calcM{#1}\@@tmp \XC@calcH\@@tmp\@@tmp \edef\@@tmp{\@@tmp\@@tmp\@@tmp}}% \XC@mod@HSB {\edef\@@scl{\rangeHSB}\XC@calcM{#1}\@@tmp \edef\@@tmp{0,0,\@@tmp}}% \XC@mod@Gray{\edef\@@scl{\rangeGray}\XC@calcM{#1}\@@tmp}}% {\XC@calcN{#1}\@@tmp \edef\@@tmp{0,0,\@@tmp}}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@RGB} % \Meta{Red}|,|\Meta{Green}|,|\Meta{Blue}|,| % \begin{macrocode} \def\XC@cnv@RGB#1,#2,#3,% {\edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:D\XC@cnv@rgb@} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@HTML} % \Meta{RRGGBB}|,| % \begin{macrocode} \def\XC@cnv@HTML#1,% {\edef\@@tmp{\expandafter\@hex@Hex#1\relax}\expandafter\XC@cnv@HTML@\@@tmp \edef\@@scl{\@cclv}\expandafter\XC@calc@\@@tmp,,:D\XC@cnv@rgb@} % \end{macrocode} % % \begin{macrocode} \def\XC@cnv@HTML@#1#2#3#4#5#6% {\edef\@@tmp{\number"#1#2,\number"#3#4,\number"#5#6}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@Hsb} % \Meta{hue\Circ}|,|\Meta{saturation}|,|\Meta{brightness}|,| % \begin{macrocode} \def\XC@cnv@Hsb#1,#2,#3,% {\ifx\tm\XC@mod@tHsb\XC@cnv@@Hsb#1,#2,#3,\XC@cnv@Hsb@ \else\XC@cnv@Hsb@hsb#1,#2,#3,\XC@cnv@hsb@\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@Hsb@hsb} % \Meta{hue\Circ}|,|\Meta{saturation}|,|\Meta{brightness}|,| % \begin{macrocode} \def\XC@cnv@Hsb@hsb#1,#2,#3,% {\XC@c@lcD\rangeHsb{,#2,#3}{#1}\@@tmp} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@@Hsb} % \Meta{hue\Circ}|,|\Meta{saturation}|,|\Meta{brightness}|,|\marg{cmd} % \begin{macrocode} \def\XC@cnv@@Hsb#1,#2,#3,#4% {\dimen@\rangeHsb\p@ \advance\dimen@\p@ \edef\@@tmp{\strip@pt\dimen@}% \edef\@@tmp{0,0;\rangetHsb;\rangeHsb,\rangeHsb;\@@tmp,\@@tmp;}% \dimen@#1\p@ \expandafter#4\@@tmp\@nnil \edef\@@tmp{\strip@pt\dimen@,#2,#3}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@Hsb@} % \Meta{x}|,|\Meta{y}|;|\Meta{x'}|,|\Meta{y'}|;| % \begin{macrocode} \def\XC@cnv@Hsb@#1,#2;#3,#4;% {\ifdim\dimen@<#4\p@ \@tempdima#3\p@ \advance\@tempdima-#1\p@ \@tempdimb#4\p@ \advance\@tempdimb-#2\p@ \rdivide\@tempdima\@tempdimb \advance\dimen@-#2\p@ \rmultiply\dimen@{\strip@pt\@tempdima}% \advance\dimen@#1\p@ \expandafter\remove@to@nnil \else \def\@@tmp{\XC@cnv@Hsb@#3,#4;}\expandafter\@@tmp \fi} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@tHsb} % \Meta{hue\Circ}|,|\Meta{saturation}|,|\Meta{brightness}|,| % \begin{macrocode} \def\XC@cnv@tHsb#1,#2,#3,% {\XC@cnv@@Hsb#1,#2,#3,\XC@cnv@tHsb@ \ifx\tm\XC@mod@Hsb\else\expandafter\XC@cnv@Hsb\@@tmp,\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@tHsb@} % \Meta{x}|,|\Meta{y}|;|\Meta{x'}|,|\Meta{y'}|;| % \begin{macrocode} \def\XC@cnv@tHsb@#1,#2;#3,#4;% {\ifdim\dimen@<#3\p@ \@tempdima#4\p@ \advance\@tempdima-#2\p@ \@tempdimb#3\p@ \advance\@tempdimb-#1\p@ \rdivide\@tempdima\@tempdimb \advance\dimen@-#1\p@ \rmultiply\dimen@{\strip@pt\@tempdima}% \advance\dimen@#2\p@ \expandafter\remove@to@nnil \else \def\@@tmp{\XC@cnv@tHsb@#3,#4;}\expandafter\@@tmp \fi} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@HSB} % \Meta{Hue}|,|\Meta{Saturation}|,|\Meta{Brightness}|,| % \begin{macrocode} \def\XC@cnv@HSB#1,#2,#3,% {\edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:D\XC@cnv@hsb@} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@Gray} % \Meta{Gray}|,| % \begin{macrocode} \def\XC@cnv@Gray#1,% {\XC@c@lcD\rangeGray{}{#1}\@@tmp \XC@cnv@gray\@@tmp,} % \end{macrocode} % \end{macro} % % % \begin{macro}{\XC@cnv@wave} % \Meta{lambda}|,| % \begin{macrocode} \def\XC@cnv@wave#1,% {\XC@cnv@wave@hsb#1,\XC@cnv@hsb@} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@wave@hsb} % \Meta{lambda}|,| % \begin{macrocode} \def\XC@cnv@wave@hsb#1,% {\@tempdima#1\p@ % \end{macrocode} % % Calculate hue: % \begin{macrocode} \ifdim\@tempdima<440\p@ \XC@c@v@wave@hsb{-.0166667}{7.33333}4{}\else \ifdim\@tempdima<490\p@ \XC@c@v@wave@hsb{.02}{-8.8}4-\else \ifdim\@tempdima<510\p@ \XC@c@v@wave@hsb{-.05}{25.5}2{}\else \ifdim\@tempdima<580\p@ \XC@c@v@wave@hsb{.0142857}{-7.28571}2-\else \ifdim\@tempdima<645\p@ \XC@c@v@wave@hsb{-.0153846}{9.92308}0{}\else \dimen@\z@ \fi\fi\fi\fi\fi \divide\dimen@6\relax \edef\@@tmp{\strip@pt\dimen@,1,}% % \end{macrocode} % % Calculate brightness: % \begin{macrocode} \ifdim\@tempdima<420\p@ \XC@c@v@wave@hsb{.0175}{-6.35}0{}\else \ifdim\@tempdima>700\p@ \XC@c@v@wave@hsb{-.00875}{7.125}0{}\else \dimen@\p@ \fi\fi \edef\@@tmp{\@@tmp\strip@pt\dimen@}} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@c@v@wave@hsb} % \marg{factor}\marg{const}\marg{offset}\marg{sign}\\ % Calculates $\Meta{offset} + \Meta{sign}\cdot\varrho\bigl(\Meta{const} + \Meta{factor}\cdot\lambda\bigr)$, where $\varrho$ is the reduction function. % The result is stored in |\dimen@|. % \begin{macrocode} \def\XC@c@v@wave@hsb#1#2#3#4% {\dimen@#1\@tempdima \advance\dimen@#2\p@ \XC@calcR{\strip@pt\dimen@}\@tempa \dimen@#4\@tempa\p@ \advance\dimen@#3\p@} % \end{macrocode} % \end{macro} % % % \subsubsection{Color complement} % % \begin{macro}{\XC@cnv@cmyk@compl} % \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,|\Meta{black}|,| % \begin{macrocode} \def\XC@cnv@cmyk@compl#1,#2,#3,#4,% {\XC@cnv@cmyk@cmy#1,#2,#3,#4,% \expandafter\XC@calc@\@@tmp,,:C\expandafter\XC@cnv@cmy@cmyk\@@tmp,} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@cnv@hsb@compl} % \Meta{hue}|,|\Meta{saturation}|,|\Meta{brightness}|,| % \begin{macrocode} \def\XC@cnv@hsb@compl#1,#2,#3,% {\lshiftset\dimen@{#1}\advance\dimen@\ifdim\dimen@<5\p@-\fi-5\p@ \rshift\dimen@ \edef\@@tmp{\strip@pt\dimen@}% \lshiftset\dimen@{#3}\@tempdima#2\dimen@ \@tempdimb\@tempdima \advance\@tempdimb10\p@ \advance\@tempdimb-\dimen@ \ifdim\@tempdimb=\z@ \edef\@@tmp{\@@tmp,0,0}% \else \rdivide\@tempdima\@tempdimb \rshift\@tempdimb \edef\@@tmp{\@@tmp,\strip@pt\@tempdima,\strip@pt\@tempdimb}% \fi} % \end{macrocode} % \end{macro} % % % % \subsection{Color initialisation} % % \subsubsection{Support for missing color models} % % These macros provide generic support for missing color models in specific drivers. % For example, \File{pdftex.def} does not support the \Model{hsb} model. % It is assumed that at least one of the models \Model{rgb}, \Model{RGB}, \Model{HTML}, \Model{hsb}, \Model{Hsb}, \Model{HSB}, \Model{cmy}, \Model{cmyk}, \Model{gray}, \Model{Gray} exists. % % \begin{macro}{\substitutecolormodel} % \marg{source model}\marg{target model-list}\\ % Substitute \Meta{source model} by the first actually present model from \Meta{target model-list}: % each reference to the driver-specific command |\color@|\Meta{source model} is replaced by a color model conversion, followed by the driver-specific command |\color@|\Meta{target model}. % \begin{macrocode} \def\substitutecolormodel#1#2% {\XC@sdef\XC@@tmp{\expandafter\XC@substitutecolormodel#2/ignore/\@nnil}% \ifx\XC@@tmp\XC@mod@ignore \XC@let@cN{color@#1}\color@ignore \else \expandafter\edef\csname color@#1\endcsname##1##2% {\noexpand\convertcolorspec \expandafter\noexpand\csname XC@mod@#1\endcsname{##2}% \expandafter\noexpand\csname XC@mod@\XC@@tmp\endcsname \noexpand\XC@@tmp\noexpand\expandafter \expandafter\noexpand\csname color@\XC@@tmp\endcsname \noexpand\expandafter##1\noexpand\expandafter{\noexpand\XC@@tmp}}% \fi \expandafter\xglobalize@\csname color@#1\endcsname \xglobal@stop \PackageInfo{xcolor}{Model `#1' substituted by `\XC@@tmp'}} % \end{macrocode} % % \begin{macrocode} \def\XC@substitutecolormodel#1/% {\@ifundefinedmodel{#1}{\XC@substitutecolormodel}{#1\remove@to@nnil}} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@ignore} % \marg{cmd}\marg{spec}\\ % Empty color model: no driver-specific representation at all. % \begin{macrocode} \def\color@ignore#1#2{\def#1{}} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@rgb} % \marg{cmd}\marg{spec}\\ % Takes the color specification \Meta{spec}, turns it into a driver-specific representation and puts the result into the macro \Meta{cmd}. % For example, if \File{dvips.def} is loaded, then |\color@rgb\foo{1,0,0}| will be equivalent to |\def\foo{rgb 1 0 0}|. % In the case of \File{pdftex.def}, it will act like |\def\foo{1 0 0 rg 1 0 0 RG}| instead. % \begin{macrocode} \@ifundefinedmodel{rgb}% {\substitutecolormodel{rgb}{RGB/HTML/hsb/Hsb/HSB/cmy/cmyk/gray/Gray}}{} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@cmyk} % \marg{cmd}\marg{spec} % \begin{macrocode} \@ifundefinedmodel{cmyk}{\substitutecolormodel{cmyk}{cmy/rgb}}{} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@cmy} % \marg{cmd}\marg{spec} % \begin{macrocode} \@ifundefinedmodel{cmy}% {\PackageInfo{xcolor}{Model `cmy' substituted by `cmy0'} \def\color@cmy#1#2{\color@cmyk#1{#2,0}}}{} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@hsb} % \marg{cmd}\marg{spec}\\ % Since the \Option{dvipdfm} and \Option{textures} drivers only pretend to support \Model{hsb}, we have to check for these drivers. % \begin{macrocode} \@ifundefinedmodel{hsb}{\@tempswatrue}% {\XC@ifcase\XC@@drv{{dvipdfm,textures}\@tempswatrue}\@tempswafalse} \if@tempswa \substitutecolormodel{hsb}{Hsb/HSB/rgb} \fi % \end{macrocode} % \end{macro} % % \begin{macro}{\color@RGB} % \marg{cmd}\marg{spec}\\ % If the model is supported and |\rangeRGB| equals 255, we stick to the algorithm provided by the driver. % \begin{macrocode} \@ifundefinedmodel{RGB}% {\substitutecolormodel{RGB}{HTML/rgb}} {\PackageInfo{xcolor}{Model `RGB' extended} \let\XC@color@RGB\color@RGB \def\color@RGB#1#2% {\relax\ifnum\rangeRGB=255 \XC@color@RGB#1{#2}% \else \convertcolorspec\XC@mod@RGB{#2}\XC@mod@rgb\XC@@tmp \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}% \fi}} % \end{macrocode} % \end{macro} % % \begin{macro}{\color@gray} % \begin{macro}{\color@HTML} % \begin{macro}{\color@Hsb} % \begin{macro}{\color@tHsb} % \begin{macro}{\color@HSB} % \begin{macro}{\color@Gray} % \begin{macro}{\color@wave} % \marg{cmd}\marg{spec} % \begin{macrocode} \@ifundefinedmodel{gray}{\substitutecolormodel{gray}{Gray/rgb}}{} \@ifundefinedmodel{HTML}{\substitutecolormodel{HTML}{rgb}}{} \@ifundefinedmodel{Hsb}{\substitutecolormodel{Hsb}{hsb}}{} \@ifundefinedmodel{tHsb}{\substitutecolormodel{tHsb}{hsb}}{} \@ifundefinedmodel{HSB}{\substitutecolormodel{HSB}{hsb}}{} \@ifundefinedmodel{Gray}{\substitutecolormodel{Gray}{gray}}{} \@ifundefinedmodel{wave}{\substitutecolormodel{wave}{hsb}}{} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % % \subsubsection{\Index{PostScript}-related stuff} % % \begin{macro}{\XC@getcolor} % \marg{color}\marg{cmd}\\ % \marg{color command}\marg{cmd}\\ % |{|\oarg{model}\marg{spec}|}|\marg{cmd}\\ % Transformation of a color, given by the first argument, especially needed for \Package{pstricks}. % The result will always be an internal color representation (as described in section \vref{sec.definition}) and is stored in \Meta{cmd}. % There are different ways of specifying the color: % \begin{itemize} % \item \Meta{color} is a color name, expression, etc., e.g., |\XC@getcolor{green!50}\foo|; % \item \Meta{color command} is a macro whose \emph{first level} expansion is an internal color representation, e.g., |\XC@getcolor\pslinecolor\foo|; % \item \Meta{model} and \Meta{spec} provide, as usual, explicit parameter specifications. % \end{itemize} % \begin{macrocode} \def\XC@getcolor#1#2% {\begingroup\toks@{#1}\XC@getc@lor#1\XC@@\aftergroupdef#2{\@@tmp}} % \end{macrocode} % % Check whether the argument consists of one or more tokens. % In the first case, expand by one level and go to next check. % In the second case, assume it's a \Meta{color} and simulate its display, but without performing the real |\set@color| command (which would insert |\special|s, possibly causing trouble with blank spaces). % This simulation ensures that we get exactly the same color --- including all blending, masking --- as if we had executed an explicit |\color| command at that point. % \begin{macrocode} \def\XC@getc@lor#1#2\XC@@ {\@ifxempty{#2}% {\expandafter\XC@getc@l@r#1\XC@@}% {\let\set@color\relax \ifx#1[% \expandafter\@undeclaredcolor\the\toks@\else \expandafter\@declaredcolor\expandafter{\the\toks@}\fi \let\@@tmp\XC@current@color}} % \end{macrocode} % % Check whether the first token is |\xcolor@|. % In that case, |#1#2| is assumed to be a complete internal color representation. % Otherwise, perform a simulation as described before. % \begin{macrocode} \def\XC@getc@l@r#1#2\XC@@ {\ifx#1\xcolor@ \def\@@tmp{\xcolor@#2}% \else \let\set@color\relax \expandafter\@declaredcolor\expandafter{\the\toks@}% \let\@@tmp\XC@current@color \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\XC@usecolor} % \marg{name}\\ % \marg{color command}\\ % Transformation of a color into \Index{PostScript} code. % The argument may be either a command whose \emph{first-level} expansion is an internal color representation (e.g., the outcome of an |\XC@getcolor| command: |\XC@usecolor\pslinecolor|), or a \Meta{name} (e.g., |\XC@usecolor{green}|). % Note that non-trivial color expressions like |green!50| are forbidden and that |\XC@usecolor| is fully expandable, for example, |\edef\foo{\XC@usecolor{green}}| is valid. % \begin{macrocode} \def\XC@usecolor#1{\expandafter\XC@usec@lor#1\XC@@} \def\XC@usec@lor#1#2\XC@@ {\ifx#1\xcolor@ \expandafter\expandafter\expandafter\c@lor@to@ps#1#2\@@ \else \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter \expandafter\c@lor@to@ps\csname\string\color@#1#2\endcsname\@@ \fi \space} % \end{macrocode} % % For compatibility reasons, we need the following command temporarily; however, |\XC@c@lor@to@ps| will disappear! % \begin{macrocode} \let\XC@c@lor@to@ps\XC@usecolor % \end{macrocode} % \end{macro} % % \begin{macrocode} \let\pst@getcolor\XC@getcolor \let\pst@usecolor\XC@usecolor % \end{macrocode} % % % \subsubsection{Whatsit \ldots} % % \begin{macro}{\c@lor@special} % Some drivers do not support all the features of this package. % They should always put a \Meta{whatsit} in the current list though. % The following macro has most of the features of |\special|, but does not put anything into the \File{.dvi} file. % It does write to the |log| file or the terminal (depending on the value of |#1|). % \begin{macrocode} \def\c@lor@special#1#2{\edef\@tempa{\write#1{#2}}\@tempa} % \end{macrocode} % \end{macro} % % % \subsubsection{Default color} % % \begin{macro}{\normalcolor} % |\normalcolor| is defined (to |\relax|) in the \LaTeX\ kernel, so it is safe to use this in macros that may possibly be used in conjunction with color. % It will have no effect until the \XCP{} is also loaded. % \begin{macrocode} \def\normalcolor{\let\current@color\default@color\set@color} % \end{macrocode} % \end{macro} % % \begin{macro}{\default@color} % Internal macro to store the `default' color used by |\normalcolor|. % \begin{macrocode} \AtBeginDocument{\let\default@color\current@color} % \end{macrocode} % \end{macro} % |\current@color| (which is the expansion of |\XC@current@color|) contains an internal representation of the color at this point in the document. % This can only be an approximation to the truth as the `macro layer' of \TeX\ does not know where the output routine is going to re-insert floats. % This is why drivers must maintain their own stack of colors in order to fully support these commands. % % % \subsubsection{Driver-specific definitions for named colors} % % \begin{macro}{\c@lor@@named} % \begin{macro}{\define@color@named} % We have to modify a few driver-specific commands in order to avoid generation of superfluous macros. % \begin{macrocode} \XC@ifcase\XC@@drv {{dvipdf,dvipdfm,dvipdfmx,dvips,pctex32}% {\def\c@lor@@named#1,#2,#3\@@#4% {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive \csname\string\color@#1\endcsname}} \def\define@color@named#1#2% {\@namedef{\string\color@#1}{{}{}{ \colornameprefix#1}{}{}}}}% % \end{macrocode} % % \begin{macrocode} {dvipsone,pctexps,pdftex,tcidvi,truetex,vtex,xetex}% {\def\c@lor@@named#1,#2,#3\@@#4% {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive \csname\string\color@#1\endcsname}} \def\define@color@named#1#2% {\let\@@cls\@empty\@namedef{\string\color@#1}{{}{}{#2}{}{}}}}% % \end{macrocode} % % \begin{macrocode} {textures}% {\def\c@lor@@named#1,#2,#3\@@#4% {\edef\@tempa{\color@P@custom{#1}{\if!#2!1\else#2\fi}}% \expandafter\def\expandafter#4\@tempa} \def\define@color@named#1#2% {\edef\@tempa{{#1}{#2}}\expandafter\AddCustomColor\@tempa} \def\c@lor@ps@#1 #2\@@ {\expandafter\expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\c@lor@to@ps@ \csname\string\color@#1\expandafter\endcsname\space #2. \@@{#1}}}% % \end{macrocode} % % \begin{macrocode} }{} % \end{macrocode} % \end{macro} % \end{macro} % % % \subsubsection{Basic color definitions} % % \Model{rgb}-minded colors.\footnote{Generic definitions: % \Color{brown} = \Color{violet}|!|50|!|\Color{yellow}, % \Color{lime} = \Color{green}|!|25|!|\Color{yellow}, % \Color{orange} = \Color{red}|!|50|!|\Color{yellow}, % \Color{pink} = \Color{red}|!|25, % \Color{purple} = \Color{violet}|!|50|!|\Color{red}, % \Color{teal} = \Color{green}|!|50|!|\Color{blue}, % \Color{violet} = \Color{blue}|!|50|!|\Color{red}.} % \begin{macrocode} \definecolorset{rgb/hsb/cmyk/gray}{}{}% {red,1,0,0/0,1,1/0,1,1,0/.3;% green,0,1,0/.33333,1,1/1,0,1,0/.59;% blue,0,0,1/.66667,1,1/1,1,0,0/.11;% brown,.75,.5,.25/.083333,.66667,.75/0,.25,.5,.25/.5475;% lime,.75,1,0/.20833,1,1/.25,0,1,0/.815;% orange,1,.5,0/.083333,1,1/0,.5,1,0/.595;% pink,1,.75,.75/0,.25,1/0,.25,.25,0/.825;% purple,.75,0,.25/.94444,1,.75/0,.75,.5,.25/.2525;% teal,0,.5,.5/.5,1,.5/.5,0,0,.5/.35;% violet,.5,0,.5/.83333,1,.5/0,.5,0,.5/.205}% % \end{macrocode} % % \Model{cmyk}-minded colors.\footnote{Generic definitions: % \Color{olive} = \Color{red}|!|50|!|\Color{green}.} % \begin{macrocode} \definecolorset{cmyk/rgb/hsb/gray}{}{}% {cyan,1,0,0,0/0,1,1/.5,1,1/.7;% magenta,0,1,0,0/1,0,1/.83333,1,1/.41;% yellow,0,0,1,0/1,1,0/.16667,1,1/.89;% olive,0,0,1,.5/.5,.5,0/.16667,1,.5/.39} % \end{macrocode} % % \Model{gray}-minded colors. % \begin{macrocode} \definecolorset{gray/rgb/hsb/cmyk}{}{}% {black,0/0,0,0/0,0,0/0,0,0,1;% darkgray,.25/.25,.25,.25/0,0,.25/0,0,0,.75;% gray,.5/.5,.5,.5/0,0,.5/0,0,0,.5;% lightgray,.75/.75,.75,.75/0,0,.75/0,0,0,.25;% white,1/1,1,1/0,0,1/0,0,0,0} % \end{macrocode} % % Load predefined sets of colors (e.g., \File{dvipsnam.def}). % \begin{macrocode} \XC@@names % \end{macrocode} % % % \subsubsection{Finale} % % Clear color stack and restore catcodes. % \begin{macrocode} \AtBeginDocument{\let\XC@@stack\@empty} \let\colornameprefix\XC@@nameprefix \XC@catcodes % \end{macrocode} % % \begin{macrocode} \csname xcolorcmd\endcsname \color{black} % % \end{macrocode} % % % \iffalse %------------------------------------------------------------------------------- % \fi % % \subsection{Auxiliary definitions} % % \subsubsection{\Index{PostScript} prologue file \File{xcolor.pro}} % % \begin{macrocode} %<*dvips> userdict begin /setcmycolor{0 setcmykcolor}def /XCbd{bind def}bind def /XCed{exch def}XCbd % \end{macrocode} % % \Index{PostScript} version of |\providecommand|. % \begin{macrocode} /XCdef{exch dup TeXDict exch known{pop pop}{XCed}ifelse}XCbd % \end{macrocode} % % \Index{PostScript} version of |\providecolor|. % \begin{macrocode} /XCsetcolor{cvx counttomark array astore cvx exch pop XCdef}XCbd % \end{macrocode} % % Now define model-dependent color definition commands. % \begin{macrocode} /XCcmy{mark exch exec/setcmycolor XCsetcolor}XCbd /XCcmyk{mark exch exec/setcmykcolor XCsetcolor}XCbd /XCgray{mark exch exec/setgray XCsetcolor}XCbd /XChsb{mark exch exec/sethsbcolor XCsetcolor}XCbd /XCrgb{mark exch exec/setrgbcolor XCsetcolor}XCbd % \end{macrocode} % % This is a fix for \File{special.pro}'s behaviour to perform a |0 setgray| during |normalscale|. % \begin{macrocode} /XCfixnormalscale{/normalscale{Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale}if}def}def % \end{macrocode} % % Grouping operators. % We have to call |XCfixnormalscale| since |normalscale| is invoked by |@beginspecial| as defined by \File{special.pro}. % \begin{macrocode} /XC!b{save XCfixnormalscale}XCbd /XC!e{restore}XCbd % \end{macrocode} % % Scale `sp' coordinates back to `bp' units. % \begin{macrocode} /XCsp2bp{1 65781.76 div dup scale}XCbd % \end{macrocode} % % \begin{macro}{XCsetline} % \meta{linewidth} |XCsetline|\\ % Common line definition. % \begin{macrocode} /XCsetline {setlinewidth [] 0 setdash 2 setlinecap 0 setlinejoin 4 setmiterlimit}XCbd % \end{macrocode} % \end{macro} % % \begin{macro}{XCboxframe} % \meta{linewidth} \meta{width} \meta{height} \meta{depth} |XCboxframe|\\ % Draw a frame in `sp' coordinates using LanguageLevel~2. % \begin{macrocode} /XCboxframe{/d XCed/h XCed/w XCed/l XCed w 0 gt{h d neg gt{l 0 gt {XCsp2bp l XCsetline l 2 div dup translate 0 d neg w l sub h l sub d add rectstroke}if}if}if}XCbd % \end{macrocode} % \end{macro} % % \begin{macro}{XCcolorblock} % \meta{width} \meta{height} \meta{depth} |XCcolorblock|\\ % Draw a colored box in `sp' coordinates using LanguageLevel~2. % \begin{macrocode} /XCcolorblock{/d XCed/h XCed/w XCed w 0 gt{h d neg gt {XCsp2bp 0 XCsetline 0 d neg w h d add rectfill}if}if}XCbd % \end{macrocode} % \end{macro} % % \begin{macrocode} end % % \end{macrocode} % % % \clearpage % \Finale % \endinput % % % \iffalse %------------------------------------------------------------------------------- %<*svgnames|x11names|hksknames|hksnnames|hksznames|pmsnames|ralnames> \def\colornameprefix{XC@} % % %<*svgnames> \preparecolorset{rgb}{}{}{% AliceBlue,.94,.972,1;% AntiqueWhite,.98,.92,.844;% Aqua,0,1,1;% Aquamarine,.498,1,.83;% Azure,.94,1,1;% Beige,.96,.96,.864;% Bisque,1,.894,.77;% Black,0,0,0;% BlanchedAlmond,1,.92,.804;% Blue,0,0,1;% BlueViolet,.54,.17,.888;% Brown,.648,.165,.165;% BurlyWood,.87,.72,.53;% CadetBlue,.372,.62,.628;% Chartreuse,.498,1,0;% Chocolate,.824,.41,.116;% Coral,1,.498,.312;% CornflowerBlue,.392,.585,.93;% Cornsilk,1,.972,.864;% Crimson,.864,.08,.235;% Cyan,0,1,1;% DarkBlue,0,0,.545;% DarkCyan,0,.545,.545;% DarkGoldenrod,.72,.525,.044;% DarkGray,.664,.664,.664;% DarkGreen,0,.392,0;% DarkGrey,.664,.664,.664;% DarkKhaki,.74,.716,.42;% DarkMagenta,.545,0,.545;% DarkOliveGreen,.332,.42,.185;% DarkOrange,1,.55,0;% DarkOrchid,.6,.196,.8;% DarkRed,.545,0,0;% DarkSalmon,.912,.59,.48;% DarkSeaGreen,.56,.736,.56;% DarkSlateBlue,.284,.24,.545;% DarkSlateGray,.185,.31,.31;% DarkSlateGrey,.185,.31,.31;% DarkTurquoise,0,.808,.82;% DarkViolet,.58,0,.828;% DeepPink,1,.08,.576;% DeepSkyBlue,0,.75,1;% DimGray,.41,.41,.41;% DimGrey,.41,.41,.41;% DodgerBlue,.116,.565,1;% FireBrick,.698,.132,.132;% FloralWhite,1,.98,.94;% ForestGreen,.132,.545,.132;% Fuchsia,1,0,1;% Gainsboro,.864,.864,.864;% GhostWhite,.972,.972,1;% Gold,1,.844,0;% Goldenrod,.855,.648,.125;% Gray,.5,.5,.5;% Green,0,.5,0;% GreenYellow,.68,1,.185;% Grey,.5,.5,.5;% Honeydew,.94,1,.94;% HotPink,1,.41,.705;% IndianRed,.804,.36,.36;% Indigo,.294,0,.51;% Ivory,1,1,.94;% Khaki,.94,.9,.55;% Lavender,.9,.9,.98;% LavenderBlush,1,.94,.96;% LawnGreen,.488,.99,0;% LemonChiffon,1,.98,.804;% LightBlue,.68,.848,.9;% LightCoral,.94,.5,.5;% LightCyan,.88,1,1;% LightGoldenrod,.933,.867,.51;% LightGoldenrodYellow,.98,.98,.824;% LightGray,.828,.828,.828;% LightGreen,.565,.932,.565;% LightGrey,.828,.828,.828;% LightPink,1,.712,.756;% LightSalmon,1,.628,.48;% LightSeaGreen,.125,.698,.668;% LightSkyBlue,.53,.808,.98;% LightSlateBlue,.518,.44,1;% LightSlateGray,.468,.532,.6;% LightSlateGrey,.468,.532,.6;% LightSteelBlue,.69,.77,.87;% LightYellow,1,1,.88;% Lime,0,1,0;% LimeGreen,.196,.804,.196;% Linen,.98,.94,.9;% Magenta,1,0,1;% Maroon,.5,0,0;% MediumAquamarine,.4,.804,.668;% MediumBlue,0,0,.804;% MediumOrchid,.73,.332,.828;% MediumPurple,.576,.44,.86;% MediumSeaGreen,.235,.7,.444;% MediumSlateBlue,.484,.408,.932;% MediumSpringGreen,0,.98,.604;% MediumTurquoise,.284,.82,.8;% MediumVioletRed,.78,.084,.52;% MidnightBlue,.098,.098,.44;% MintCream,.96,1,.98;% MistyRose,1,.894,.884;% Moccasin,1,.894,.71;% NavajoWhite,1,.87,.68;% Navy,0,0,.5;% NavyBlue,0,0,.5;% OldLace,.992,.96,.9;% Olive,.5,.5,0;% OliveDrab,.42,.556,.136;% Orange,1,.648,0;% OrangeRed,1,.27,0;% Orchid,.855,.44,.84;% PaleGoldenrod,.932,.91,.668;% PaleGreen,.596,.985,.596;% PaleTurquoise,.688,.932,.932;% PaleVioletRed,.86,.44,.576;% PapayaWhip,1,.936,.835;% PeachPuff,1,.855,.725;% Peru,.804,.52,.248;% Pink,1,.752,.796;% Plum,.868,.628,.868;% PowderBlue,.69,.88,.9;% Purple,.5,0,.5;% Red,1,0,0;% RosyBrown,.736,.56,.56;% RoyalBlue,.255,.41,.884;% SaddleBrown,.545,.27,.075;% Salmon,.98,.5,.448;% SandyBrown,.956,.644,.376;% SeaGreen,.18,.545,.34;% Seashell,1,.96,.932;% Sienna,.628,.32,.176;% Silver,.752,.752,.752;% SkyBlue,.53,.808,.92;% SlateBlue,.415,.352,.804;% SlateGray,.44,.5,.565;% SlateGrey,.44,.5,.565;% Snow,1,.98,.98;% SpringGreen,0,1,.498;% SteelBlue,.275,.51,.705;% Tan,.824,.705,.55;% Teal,0,.5,.5;% Thistle,.848,.75,.848;% Tomato,1,.39,.28;% Turquoise,.25,.88,.815;% Violet,.932,.51,.932;% VioletRed,.816,.125,.565;% Wheat,.96,.87,.7;% White,1,1,1;% WhiteSmoke,.96,.96,.96;% Yellow,1,1,0;% YellowGreen,.604,.804,.196} % % %<*x11names> \preparecolorset{rgb}{}{}{% AntiqueWhite1,1,.936,.86;% AntiqueWhite2,.932,.875,.8;% AntiqueWhite3,.804,.752,.69;% AntiqueWhite4,.545,.512,.47;% Aquamarine1,.498,1,.83;% Aquamarine2,.464,.932,.776;% Aquamarine3,.4,.804,.668;% Aquamarine4,.27,.545,.455;% Azure1,.94,1,1;% Azure2,.88,.932,.932;% Azure3,.756,.804,.804;% Azure4,.512,.545,.545;% Bisque1,1,.894,.77;% Bisque2,.932,.835,.716;% Bisque3,.804,.716,.62;% Bisque4,.545,.49,.42;% Blue1,0,0,1;% Blue2,0,0,.932;% Blue3,0,0,.804;% Blue4,0,0,.545;% Brown1,1,.25,.25;% Brown2,.932,.23,.23;% Brown3,.804,.2,.2;% Brown4,.545,.136,.136;% Burlywood1,1,.828,.608;% Burlywood2,.932,.772,.57;% Burlywood3,.804,.668,.49;% Burlywood4,.545,.45,.332;% CadetBlue1,.596,.96,1;% CadetBlue2,.556,.898,.932;% CadetBlue3,.48,.772,.804;% CadetBlue4,.325,.525,.545;% Chartreuse1,.498,1,0;% Chartreuse2,.464,.932,0;% Chartreuse3,.4,.804,0;% Chartreuse4,.27,.545,0;% Chocolate1,1,.498,.14;% Chocolate2,.932,.464,.13;% Chocolate3,.804,.4,.112;% Chocolate4,.545,.27,.075;% Coral1,1,.448,.336;% Coral2,.932,.415,.312;% Coral3,.804,.356,.27;% Coral4,.545,.244,.185;% Cornsilk1,1,.972,.864;% Cornsilk2,.932,.91,.804;% Cornsilk3,.804,.785,.694;% Cornsilk4,.545,.532,.47;% Cyan1,0,1,1;% Cyan2,0,.932,.932;% Cyan3,0,.804,.804;% Cyan4,0,.545,.545;% DarkGoldenrod1,1,.725,.06;% DarkGoldenrod2,.932,.68,.055;% DarkGoldenrod3,.804,.585,.048;% DarkGoldenrod4,.545,.396,.03;% DarkOliveGreen1,.792,1,.44;% DarkOliveGreen2,.736,.932,.408;% DarkOliveGreen3,.635,.804,.352;% DarkOliveGreen4,.43,.545,.24;% DarkOrange1,1,.498,0;% DarkOrange2,.932,.464,0;% DarkOrange3,.804,.4,0;% DarkOrange4,.545,.27,0;% DarkOrchid1,.75,.244,1;% DarkOrchid2,.698,.228,.932;% DarkOrchid3,.604,.196,.804;% DarkOrchid4,.408,.132,.545;% DarkSeaGreen1,.756,1,.756;% DarkSeaGreen2,.705,.932,.705;% DarkSeaGreen3,.608,.804,.608;% DarkSeaGreen4,.41,.545,.41;% DarkSlateGray1,.592,1,1;% DarkSlateGray2,.552,.932,.932;% DarkSlateGray3,.475,.804,.804;% DarkSlateGray4,.32,.545,.545;% DeepPink1,1,.08,.576;% DeepPink2,.932,.07,.536;% DeepPink3,.804,.064,.464;% DeepPink4,.545,.04,.312;% DeepSkyBlue1,0,.75,1;% DeepSkyBlue2,0,.698,.932;% DeepSkyBlue3,0,.604,.804;% DeepSkyBlue4,0,.408,.545;% DodgerBlue1,.116,.565,1;% DodgerBlue2,.11,.525,.932;% DodgerBlue3,.094,.455,.804;% DodgerBlue4,.064,.305,.545;% Firebrick1,1,.19,.19;% Firebrick2,.932,.172,.172;% Firebrick3,.804,.15,.15;% Firebrick4,.545,.1,.1;% Gold1,1,.844,0;% Gold2,.932,.79,0;% Gold3,.804,.68,0;% Gold4,.545,.46,0;% Goldenrod1,1,.756,.145;% Goldenrod2,.932,.705,.132;% Goldenrod3,.804,.608,.112;% Goldenrod4,.545,.41,.08;% Green1,0,1,0;% Green2,0,.932,0;% Green3,0,.804,0;% Green4,0,.545,0;% Honeydew1,.94,1,.94;% Honeydew2,.88,.932,.88;% Honeydew3,.756,.804,.756;% Honeydew4,.512,.545,.512;% HotPink1,1,.43,.705;% HotPink2,.932,.415,.655;% HotPink3,.804,.376,.565;% HotPink4,.545,.228,.385;% IndianRed1,1,.415,.415;% IndianRed2,.932,.39,.39;% IndianRed3,.804,.332,.332;% IndianRed4,.545,.228,.228;% Ivory1,1,1,.94;% Ivory2,.932,.932,.88;% Ivory3,.804,.804,.756;% Ivory4,.545,.545,.512;% Khaki1,1,.965,.56;% Khaki2,.932,.9,.52;% Khaki3,.804,.776,.45;% Khaki4,.545,.525,.305;% LavenderBlush1,1,.94,.96;% LavenderBlush2,.932,.88,.898;% LavenderBlush3,.804,.756,.772;% LavenderBlush4,.545,.512,.525;% LemonChiffon1,1,.98,.804;% LemonChiffon2,.932,.912,.75;% LemonChiffon3,.804,.79,.648;% LemonChiffon4,.545,.536,.44;% LightBlue1,.75,.936,1;% LightBlue2,.698,.875,.932;% LightBlue3,.604,.752,.804;% LightBlue4,.408,.512,.545;% LightCyan1,.88,1,1;% LightCyan2,.82,.932,.932;% LightCyan3,.705,.804,.804;% LightCyan4,.48,.545,.545;% LightGoldenrod1,1,.925,.545;% LightGoldenrod2,.932,.864,.51;% LightGoldenrod3,.804,.745,.44;% LightGoldenrod4,.545,.505,.298;% LightPink1,1,.684,.725;% LightPink2,.932,.635,.68;% LightPink3,.804,.55,.585;% LightPink4,.545,.372,.396;% LightSalmon1,1,.628,.48;% LightSalmon2,.932,.585,.448;% LightSalmon3,.804,.505,.385;% LightSalmon4,.545,.34,.26;% LightSkyBlue1,.69,.888,1;% LightSkyBlue2,.644,.828,.932;% LightSkyBlue3,.552,.712,.804;% LightSkyBlue4,.376,.484,.545;% LightSteelBlue1,.792,.884,1;% LightSteelBlue2,.736,.824,.932;% LightSteelBlue3,.635,.71,.804;% LightSteelBlue4,.43,.484,.545;% LightYellow1,1,1,.88;% LightYellow2,.932,.932,.82;% LightYellow3,.804,.804,.705;% LightYellow4,.545,.545,.48;% Magenta1,1,0,1;% Magenta2,.932,0,.932;% Magenta3,.804,0,.804;% Magenta4,.545,0,.545;% Maroon1,1,.204,.7;% Maroon2,.932,.19,.655;% Maroon3,.804,.16,.565;% Maroon4,.545,.11,.385;% MediumOrchid1,.88,.4,1;% MediumOrchid2,.82,.372,.932;% MediumOrchid3,.705,.32,.804;% MediumOrchid4,.48,.215,.545;% MediumPurple1,.67,.51,1;% MediumPurple2,.624,.475,.932;% MediumPurple3,.536,.408,.804;% MediumPurple4,.365,.28,.545;% MistyRose1,1,.894,.884;% MistyRose2,.932,.835,.824;% MistyRose3,.804,.716,.71;% MistyRose4,.545,.49,.484;% NavajoWhite1,1,.87,.68;% NavajoWhite2,.932,.81,.63;% NavajoWhite3,.804,.7,.545;% NavajoWhite4,.545,.475,.37;% OliveDrab1,.752,1,.244;% OliveDrab2,.7,.932,.228;% OliveDrab3,.604,.804,.196;% OliveDrab4,.41,.545,.132;% Orange1,1,.648,0;% Orange2,.932,.604,0;% Orange3,.804,.52,0;% Orange4,.545,.352,0;% OrangeRed1,1,.27,0;% OrangeRed2,.932,.25,0;% OrangeRed3,.804,.215,0;% OrangeRed4,.545,.145,0;% Orchid1,1,.512,.98;% Orchid2,.932,.48,.912;% Orchid3,.804,.41,.79;% Orchid4,.545,.28,.536;% PaleGreen1,.604,1,.604;% PaleGreen2,.565,.932,.565;% PaleGreen3,.488,.804,.488;% PaleGreen4,.33,.545,.33;% PaleTurquoise1,.732,1,1;% PaleTurquoise2,.684,.932,.932;% PaleTurquoise3,.59,.804,.804;% PaleTurquoise4,.4,.545,.545;% PaleVioletRed1,1,.51,.67;% PaleVioletRed2,.932,.475,.624;% PaleVioletRed3,.804,.408,.536;% PaleVioletRed4,.545,.28,.365;% PeachPuff1,1,.855,.725;% PeachPuff2,.932,.796,.68;% PeachPuff3,.804,.688,.585;% PeachPuff4,.545,.468,.396;% Pink1,1,.71,.772;% Pink2,.932,.664,.72;% Pink3,.804,.57,.62;% Pink4,.545,.39,.424;% Plum1,1,.732,1;% Plum2,.932,.684,.932;% Plum3,.804,.59,.804;% Plum4,.545,.4,.545;% Purple1,.608,.19,1;% Purple2,.57,.172,.932;% Purple3,.49,.15,.804;% Purple4,.332,.1,.545;% Red1,1,0,0;% Red2,.932,0,0;% Red3,.804,0,0;% Red4,.545,0,0;% RosyBrown1,1,.756,.756;% RosyBrown2,.932,.705,.705;% RosyBrown3,.804,.608,.608;% RosyBrown4,.545,.41,.41;% RoyalBlue1,.284,.464,1;% RoyalBlue2,.264,.43,.932;% RoyalBlue3,.228,.372,.804;% RoyalBlue4,.152,.25,.545;% Salmon1,1,.55,.41;% Salmon2,.932,.51,.385;% Salmon3,.804,.44,.33;% Salmon4,.545,.298,.224;% SeaGreen1,.33,1,.624;% SeaGreen2,.305,.932,.58;% SeaGreen3,.264,.804,.5;% SeaGreen4,.18,.545,.34;% Seashell1,1,.96,.932;% Seashell2,.932,.898,.87;% Seashell3,.804,.772,.75;% Seashell4,.545,.525,.51;% Sienna1,1,.51,.28;% Sienna2,.932,.475,.26;% Sienna3,.804,.408,.224;% Sienna4,.545,.28,.15;% SkyBlue1,.53,.808,1;% SkyBlue2,.494,.752,.932;% SkyBlue3,.424,.65,.804;% SkyBlue4,.29,.44,.545;% SlateBlue1,.512,.435,1;% SlateBlue2,.48,.404,.932;% SlateBlue3,.41,.35,.804;% SlateBlue4,.28,.235,.545;% SlateGray1,.776,.888,1;% SlateGray2,.725,.828,.932;% SlateGray3,.624,.712,.804;% SlateGray4,.424,.484,.545;% Snow1,1,.98,.98;% Snow2,.932,.912,.912;% Snow3,.804,.79,.79;% Snow4,.545,.536,.536;% SpringGreen1,0,1,.498;% SpringGreen2,0,.932,.464;% SpringGreen3,0,.804,.4;% SpringGreen4,0,.545,.27;% SteelBlue1,.39,.72,1;% SteelBlue2,.36,.675,.932;% SteelBlue3,.31,.58,.804;% SteelBlue4,.21,.392,.545;% Tan1,1,.648,.31;% Tan2,.932,.604,.288;% Tan3,.804,.52,.248;% Tan4,.545,.352,.17;% Thistle1,1,.884,1;% Thistle2,.932,.824,.932;% Thistle3,.804,.71,.804;% Thistle4,.545,.484,.545;% Tomato1,1,.39,.28;% Tomato2,.932,.36,.26;% Tomato3,.804,.31,.224;% Tomato4,.545,.21,.15;% Turquoise1,0,.96,1;% Turquoise2,0,.898,.932;% Turquoise3,0,.772,.804;% Turquoise4,0,.525,.545;% VioletRed1,1,.244,.59;% VioletRed2,.932,.228,.55;% VioletRed3,.804,.196,.47;% VioletRed4,.545,.132,.32;% Wheat1,1,.905,.73;% Wheat2,.932,.848,.684;% Wheat3,.804,.73,.59;% Wheat4,.545,.494,.4;% Yellow1,1,1,0;% Yellow2,.932,.932,0;% Yellow3,.804,.804,0;% Yellow4,.545,.545,0;% Gray0,.745,.745,.745;% Green0,0,1,0;% Grey0,.745,.745,.745;% Maroon0,.69,.19,.376;% Purple0,.628,.125,.94} % % %<*test1> \documentclass[a4paper]{article} \usepackage{array,multicol,multido,textcomp} \usepackage{xcolor}[2005/03/24] \usepackage[hmargin={1.25cm,.75cm},vmargin=1.25cm,footskip=.5cm,nohead]{geometry} \newdimen\Argwd \newdimen\Errsum \newdimen\Errmax \newcount\Colors \newcount\Errors \newcount\Loops \newif\ifColor \makeatletter \def\DisplayColor#1#2#3% {\global\advance\Loops\@ne \@tempdima=#1\p@ \edef\@tempa{\the\@tempdima}% \edef\Colori{\strip@pt\@tempdima}% \ifColor \@tempdimb=#2\p@ \edef\@tempb{\the\@tempdimb}% \@tempdimc=#3\p@ \edef\@tempc{\the\@tempdimc}% \edef\Colori{\Colori,\strip@pt\@tempdimb,\strip@pt\@tempdimc}% \fi \Make12\Make23\Make34\Make45\Make56\Make67% \begin{tabular}{@{}ll*4{@{ }p{\Argwd}}@{}} \Row1\Row2\Row3\Row4\Row5\Row6\noalign{\medskip} \end{tabular} \global\advance\Colors1 \relax\ifnum\Colors=30 \newpage\global\Colors=0 \fi} \def\Make#1#2% {\edef\@@tmp {\noexpand\definecolor{Color\romannumeral#1}% {\@nameuse{Model\romannumeral#1}}{\@nameuse{Color\romannumeral#1}}% }\@@tmp \relax\ifnum#1<6 \convertcolorspec {\@nameuse{Model\romannumeral#1}}{\@nameuse{Color\romannumeral#1}}% {\@nameuse{Model\romannumeral#2}}\@@tmp \XC@let@cN{Color\romannumeral#2}\@@tmp \fi} \def\Row#1% {\edef\@@tmp{\@nameuse{Color\romannumeral#1}\@nameuse{Row\romannumeral#1}}% \expandafter\@Row\@@tmp} \def\@Row#1,#2,#3,#4,#5#6% {\fcolorbox{black}{Color\romannumeral#5}{\phantom{000}}& \csname Model\romannumeral#5\endcsname & \ifodd#6 \@Error{#1}\@tempa \else #1\fi & \ifColor\ifodd#6 \@Error{#2}\@tempb \else #2\fi\else #2\fi & \ifColor\ifodd#6 \@Error{#3}\@tempc \else #3\fi\else #3\fi & #4\\} \def\defModel#1#2#3#4% number, name, commas, check {\@namedef{Model\romannumeral#1}{#2}\@namedef{Row\romannumeral#1}{#3#1#4}} \def\@Error#1#2% {\ifdim#1\p@=#2\relax #1\else \textcolor{red}{#1}\global\advance\Errors\@ne \dimen@#2\advance\dimen@-#1\p@ \ifdim\dimen@<\z@\dimen@-\dimen@\fi \global\advance\Errsum\dimen@ \ifdim\dimen@>\Errmax \global\Errmax\dimen@ \dimen@\@tempa \edef\@@tempa{\strip@pt\dimen@}% \ifColor \dimen@\@tempb \edef\@@tempb{\strip@pt\dimen@}% \dimen@\@tempc \edef\@@tempc{\strip@pt\dimen@}% \xdef\Errcase{\@@tempa\noexpand~\@@tempb\noexpand~\@@tempc}% \else \xdef\Errcase{\@@tempa}% \fi \fi \fi} \newenvironment{ColorTest}[1]% {\addcontentsline{toc}{section}{Color conversion chain: #1} \Colors\z@ \Errors\z@ \Loops\z@ \Errsum\z@ \Errmax\z@ \begin{multicols}{3}\centering}% {\end{multicols}\bigskip \begin{tabular}{@{}l@{ = }l@{}} \multicolumn2{@{}l@{}}{Rounding error statistics of color conversion test}\\ \multicolumn2{@{}l@{}}% {$\textbf\Modeli\rightarrow \textbf\Modelii\rightarrow \textbf\Modeliii\rightarrow \textbf\Modeliv\rightarrow \textbf\Modelv\rightarrow \textbf\Modelvi$:}\\[1ex] number of examples& \number\Loops\\ number of errors& \number\Errors\\ sum of absolute errors& \strip@pt\Errsum\\ \ifnum\Errors>\z@ average error& \Errsum100\Errsum \dimen@\Errors\p@ \divide\dimen@\@m \rdivide\Errsum\dimen@ \strip@pt\Errsum\textperiodcentered10\textsuperscript{-5}\\ maximum error& \strip@pt\Errmax{} @ \Modeli~\Errcase\\ \fi \end{tabular}\newpage} \def\thepage{\sffamily\footnotesize\@nameuse{@arabic}\c@page} \makeatother \parindent0pt \setcounter{secnumdepth}{-1} \begin{document} \title{Color conversion with the \textsf{xcolor} package --- Examples} \author{Dr. Uwe Kern\thanks{This file is part of the \textsf{xcolor} distribution which can be downloaded from the CTAN mirrors (\texttt{macros/latex/contrib/xcolor/}) or the homepage \texttt{www.ukern.de/tex/xcolor.html}. Please send error reports and suggestions for improvements to \texttt{xcolor@ukern.de}.}} \date{\XCfileversion{} (\XCfiledate)} \maketitle \begin{center} \begin{minipage}{.75\textwidth} \tableofcontents \end{minipage} \end{center} \newpage \sffamily\footnotesize \fboxrule.25pt \settowidth\Argwd{0.00000} \defModel1{rgb}{,,}0 \defModel2{cmy}{,,}0 \defModel3{cmyk}{,}0 \defModel4{hsb}{,,}0 \defModel5{rgb}{,,}1 \defModel6{gray}{,,,,}0 \Colortrue \begin{ColorTest}{rgb, cmy, cmyk, hsb, rgb, gray} \multido{\nR=1+-.1}{11}% {\multido{\nG=1+-.1}{11}% {\multido{\nB=1+-.1}{11}% {\DisplayColor{\nR}{\nG}{\nB}}}}% \end{ColorTest} \defModel1{gray}{,,,,}0 \defModel2{rgb}{,,}0 \defModel3{cmy}{,,}0 \defModel4{cmyk}{,}0 \defModel5{hsb}{,,}0 \defModel6{gray}{,,,,}1 \Colorfalse \begin{ColorTest}{gray, rgb, cmy, cmyk, hsb, gray} \multido{\nG=1+-.01}{101}{\DisplayColor{\nG}{}{}}% \end{ColorTest} \end{document} % % %<*test2> \listfiles \documentclass{article} \usepackage{pstricks,pst-tree,pst-slpe,multido} \makeatletter \makeatother \usepackage{fvrb-ex} \def\textfraction{0.01} \def\topfraction{0.99} \def\bottomfraction{0.99} \def\floatpagefraction{0.70} \setlength\abovecaptionskip{12pt} \setlength\belowcaptionskip{10pt} \parindent0pt \begin{document} \title{Color extensions with the \textsf{xcolor} package --- \textsf{pstricks} examples} \author{Dr. Uwe Kern\thanks{This file is part of the \textsf{xcolor} distribution which can be downloaded from the CTAN mirrors (\texttt{macros/latex/contrib/xcolor/}) or the homepage \texttt{www.ukern.de/tex/xcolor.html}. Please send error reports and suggestions for improvements to \texttt{xcolor@ukern.de}.}} \date{\XCfileversion{} (\XCfiledate)} \maketitle \centerline{\fcolorbox{red}{yellow!50}{This document is not suitable for pdf\LaTeX! Please use \LaTeX{} + \texttt{dvips} etc.}} \begin{figure}[htb]\caption{Modified version of an example from the \textsf{pstricks} manual; requires \textsf{pst-tree}} \begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth] \begin{pspicture}(-0.5,-2)(3,2) \cnode(0,0){.5cm}{root} \cnode*[linecolor=red](3,1.5){4pt}{A} \cnode*[linecolor=red!72.5375!blue](3,0){4pt}{B} \cnode*[linecolor=-red](3,-1.5){4pt}{C} \psset{nodesep=3pt} \ncline[linecolor=green!50!red]{root}{A} \ncline[linecolor=blue]{root}{B} \ncline[linecolor=-green!50!red]{root}{C} \end{pspicture} \end{SideBySideExample} \end{figure} \begin{figure}[htb]\caption{Moving from one color to its complement; requires \textsf{pst-slpe}} \begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth] \begin{pspicture}(4,1) \psframe[fillstyle=slope, slopeangle=30, slopebegin=red!72.5375!blue, slopeend=-red!72.5375!blue](4,1) \end{pspicture} \end{SideBySideExample} \end{figure} \begin{figure}[htb]\caption{Explicit color specification via a loop command; requires \textsf{multido}} \begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth] \psset{unit=1.75}% \begin{pspicture}(0,-1)(2,1) \multido{\rHue=0.00+0.01}{100}% {\pscircle[linewidth=0.01, linecolor={[hsb]{\rHue,1,1}}](1,0){\rHue}} \end{pspicture} \end{SideBySideExample} \end{figure} \begin{figure}[htb]\caption{Color series --- modified version of an example from the \textsf{pst-fill} manual; note that the \texttt{\string\multirput} command does not give the desired result here} \begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth] \newcommand*\Sheep {\begin{pspicture}(3,1.5) \pscustom[liftpen=2,fillstyle=solid,fillcolor=sheep!!+]% {\pscurve(0.5,-0.2)(0.6,0.5)(0.2,1.3)(0,1.5)(0,1.5) (0.4,1.3)(0.8,1.5)(2.2,1.9)(3,1.5)(3,1.5)(3.2,1.3) (3.6,0.5)(3.4,-0.3)(3,0)(2.2,0.4)(0.5,-0.2)} \pscircle*(2.65,1.25){0.12\psunit}% Eye \psccurve*(3.5,0.3)(3.35,0.45)(3.5,0.6)(3.6,0.4)% Muzzle \pscurve(3,0.35)(3.3,0.1)(3.6,0.05)% Mouth \pscurve(2.3,1.3)(2.1,1.5)(2.15,1.7) \pscurve(2.1,1.7)(2.35,1.6)(2.45,1.4)% Ear \end{pspicture}} \definecolorseries {sheep}{rgb}{step}[rgb]{.95,.85,.55}{.17,.47,.37} \resetcolorseries{sheep} \psset{unit=0.4} \begin{pspicture}(-3,-6)(0,7.5) \Multido{\ry=6.0+-1.5}{5}% {\rput(0,\ry){\Multido{}{5}{\Sheep}}} \resetcolorseries{sheep}% \multirput(-6,-6)(3,0)5{\Sheep} \end{pspicture} \end{SideBySideExample} \end{figure} \begin{figure}[htb]\caption{Interaction with native PostScript code --- $\gamma$-corrected wavelengths} \begin{Example}[fontsize=\footnotesize,xrightmargin=.45\textwidth] \newcount\WL \unitlength.75pt \def\WaveToPS#1% {\definecolor{tmp}{rgb:wave}{#1}\extractcolorspecs{tmp}\tmpm\tmpc \expandafter\WaveToPSi\tmpc,} \def\WaveToPSi#1,#2,#3,{\pstVerb{/Red{#1}def /Green{#2}def /Blue{#3}def}} \def\DisplayBar#1#2% {\linethickness{1.25\unitlength}\WL=360 \pstVerb{/Gamma{#1}def}% \multiput(360,#2)(1,0){456}% {\WaveToPS{\the\WL}{\color{lambda}\line(0,1){50}}\global\advance\WL1}% \linethickness{0.25\unitlength}\WL=360 \multiput(360,#2)(20,0){23}% {\picture(0,0) \line(0,-1){5}\multiput(5,0)(5,0){3}{\line(0,-1){2.5}}% \put(0,-10){\makebox(0,0){\the\WL}}\global\advance\WL20 \endpicture}% \put(350,#2){\makebox(0,50)[r]{\small$\gamma$\,=\,#1}}} \pstVerb{/Corr{dup 0 gt {Gamma exp}if}def} \definecolor[ps]{lambda}{rgb}{Red Corr Green Corr Blue Corr}% \begin{picture}(510,345)(310,-10) \sffamily\tiny \DisplayBar{0.4}{0}% \DisplayBar{0.6}{70}% \DisplayBar{0.8}{140}% \DisplayBar{1.0}{210}% \DisplayBar{1.2}{280}% \end{picture} \end{Example} \end{figure} \end{document} % % %<*test3> \listfiles \documentclass[a4paper]{article} \usepackage[showerrors,table,dvipsnames*,hyperref]{xcolor}[2005/12/21] \usepackage[margin=2.25cm]{geometry} \usepackage [\GinDriver,hyperindex=false,bookmarks,bookmarksopen,bookmarksopenlevel=1,% pdftitle={xcolor3 \XCfileversion{} (\XCfiledate)},pdfauthor={Dr. Uwe Kern},% pdfsubject={Color extensions for LaTeX and pdfLaTeX},% pdfkeywords={xcolor,color,colour,model,tint,tone,shade,harmony,spot,latex,pdftex,dvips,% conversion,blend,mix,mask,separation,rgb,cmy,cmyk,hsb,gray,html,wave,thsb,wheel}]{hyperref} \tracingcolors=4 %%\tracingcolors=3 %%\tracingcolors=2 %%\tracingcolors=1 %%\tracingcolors=0 \parindent0pt \pagecolor{gray!25} \definecolors{JungleGreen,DarkOrchid} \begin{document} \title{Color extensions with the \textsf{xcolor} package --- various examples} \author{\href{mailto:xcolor@ukern.de}{\fboxrule0pt\fboxsep2pt\fbox{Dr. Uwe Kern}}} \date{\XCfileversion{} (\XCfiledate) \thanks{This file (\texttt{\jobname.tex}) is part of the \textsf{xcolor} distribution which can be downloaded from the CTAN mirrors \texttt{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/xcolor/}{CTAN/macros/latex/contrib/xcolor/}} or the homepage \texttt{\href{http://www.ukern.de/tex/xcolor.html}{www.ukern.de/tex/xcolor.html}}. Please send error reports and suggestions for improvements to \texttt{\href{mailto:xcolor@ukern.de}{xcolor@ukern.de}}.}} \maketitle The purpose of this file is to demonstrate a variety of capabilities including the logging facilities of the \textsf{xcolor} package. By playing around with different values of \texttt{\string\tracingcolors}, one can observe the different behavior in the \texttt{log} file. \section{Predefined colors} \begingroup \small\sffamily \rowcolors1{}{} \begin{testcolors}[rgb,cmyk,hsb,HTML,gray] \testcolor{red} \testcolor{green} \testcolor{blue} \testcolor{cyan} \testcolor{magenta} \testcolor{yellow} \testcolor{orange} \testcolor{violet} \testcolor{purple} \testcolor{brown} \testcolor{pink} \testcolor{olive} \testcolor{black} \testcolor{darkgray} \testcolor{gray} \testcolor{lightgray} \testcolor{white} \noalign{\medskip}\hline\noalign{\medskip} \testcolor{-red} \testcolor{-green} \testcolor{-blue} \testcolor{-cyan} \testcolor{-magenta} \testcolor{-yellow} \testcolor{-orange} \testcolor{-violet} \testcolor{-purple} \testcolor{-brown} \testcolor{-pink} \testcolor{-olive} \testcolor{-black} \testcolor{-darkgray} \testcolor{-gray} \testcolor{-lightgray} \testcolor{-white} \noalign{\medskip}\hline\noalign{\medskip} \testcolor{JungleGreen} \testcolor{DarkOrchid} \noalign{\medskip}\hline\noalign{\medskip} \testcolor{-JungleGreen} \testcolor{-DarkOrchid} \end{testcolors} \endgroup \vfill \clearpage \pagecolor{white} \section{Color definition and application} \providecolor{dummy}{rgb}{.6,.5,.4} \definecolor{dummy}{rgb}{.6,.5,.4} \providecolor{dummy}{rgb}{.6,.5,.4} \hbox{\textcolor{dummy}{Test with \texttt{\string\definecolor}}} \bigskip Comma-separated and space-separated definitions: \definecolor{c1}{rgb}{.7,.6,.5} \definecolor{c2}{rgb}{.7 .6 .5} \colorlet{c1a}{c1} \colorlet{c2a}{c2} \textcolor{c1}{identical} = \textcolor{c2}{identical} = \textcolor{c1a}{identical} = \textcolor{c2a}{identical} = \textcolor[rgb]{.7,.6,.5}{identical} = \textcolor[rgb]{.7 .6 .5}{identical} = \textcolor{rgb,10:red,7;green,6;blue,5}{identical} \textcolor{rgb,15:red,10.5;green,9;blue,7.5}{identical} \medskip \begingroup \sffamily \begin{testcolors} \testcolor{c1} \testcolor{c2} \testcolor{c1a} \testcolor{c2a} \testcolor[rgb]{.7,.6,.5} \testcolor[rgb]{.7 .6 .5} \testcolor{rgb,10:red,7;green,6;blue,5} \testcolor{rgb,15:red,10.5;green,9;blue,7.5} \end{testcolors} \endgroup \bigskip \textcolor{rgb:red!50,4;green!25,2}{Another extended color expression (rgb:red!50,4;green!25,2)}. \bigskip \begingroup \color{black} Test with named colors:\par \color{blue} Test: \textcolor[named]{JungleGreen}{JungleGreen}; Test: \textcolor{JungleGreen}{JungleGreen}; Test: \textcolor{JungleGreen!50!DarkOrchid}{JungleGreen!50!DarkOrchid}; Test: \textcolor{green!50!red}{green!50!red}. \endgroup \bigskip {\color[rgb]{.4,.5,.6}Test with \texttt{\string\color}} \bigskip Current color application:\par \def\test{current, \textcolor{.!50}{50\%}, \textcolor{-.}{complement}, \textcolor{yellow!50!.}{mix}} \textcolor{blue}{\test} and \textcolor{red}{\test},\par \def\Test{\color{.!80}Test} \textcolor{blue}{\Test\Test\Test\Test\Test} and \textcolor{red}{\Test\Test\Test\Test\Test}. \bigskip Current color test with \texttt{\string\definecolorseries}:\par \begingroup \color{blue} \definecolorseries{foo}{rgb}{last}{.}{-.} \resetcolorseries[5]{foo} \def\test{\hbox to 1em{{\color{foo!!+}\vrule width 1em height 1.5ex}}} Test\test\test\test\test\test\test Test \resetcolorseries[5]{foo} \def\test{\hbox to 1em{{\color{foo!!++}\vrule width 1em height 1.5ex}}} Test\test\test\test\test\test\test Test \resetcolorseries[5]{foo} \def\test{\hbox to 1em{{\color{foo!![2]}\vrule width 1em height 1.5ex}}} Test\test\test\test\test\test\test Test \endgroup \section{Color in tables} \rowcolors[\hline]{1}{green!25}{yellow!50} \begin{tabular}{ll} test & row \number\rownum\\ test & row \number\rownum\\ \rowcolor{blue!25} test & row \number\rownum\\ test & row \number\rownum\\ \hiderowcolors test & row \number\rownum\\ test & row \number\rownum\\ \showrowcolors test & row \number\rownum\\ test & row \number\rownum\\ \multicolumn{1}% {>{\columncolor{red!12}}l}{test} & row \number\rownum\\ \end{tabular} \section{Color information} Type test: \makeatletter \@namedef{\string\color@foo1}{foo1{}{}{}{}}\edef\tempa{\XC@type{foo1}}\tempa \@namedef{\string\color@foo2}{\xcolor@{foo2}{}{}{}}\edef\tempb{\XC@type{foo2}}\tempb \@namedef{\string\color@foo3}{\xcolor@{}{foo3}{}{}}\edef\tempc{\XC@type{foo3}}\tempc \@namedef{\string\color@foo4}{\xcolor@{}{}{foo4}{}}\edef\tempd{\XC@type{foo4}}\tempd \makeatother \end{document} % % %<*test4> \listfiles \documentclass[a4paper]{article} %%\PassOptionsToPackage{dvipdf}{xcolor} %%\PassOptionsToPackage{dvipdfm}{xcolor} %%\PassOptionsToPackage{dvipdfmx}{xcolor} %%\PassOptionsToPackage{dvips}{xcolor} %%\PassOptionsToPackage{dvipsone}{xcolor} %%\PassOptionsToPackage{dviwin}{xcolor} %%\PassOptionsToPackage{dviwindo}{xcolor} %%\PassOptionsToPackage{emtex}{xcolor} %%\PassOptionsToPackage{oztex}{xcolor} %%\PassOptionsToPackage{pctex32}{xcolor} %%\PassOptionsToPackage{pctexhp}{xcolor} %%\PassOptionsToPackage{pctexps}{xcolor} %%\PassOptionsToPackage{pctexwin}{xcolor} %%\PassOptionsToPackage{pdftex}{xcolor} %%\PassOptionsToPackage{tcidvi}{xcolor} %%\PassOptionsToPackage{textures}{xcolor} %%\PassOptionsToPackage{truetex}{xcolor} %%\PassOptionsToPackage{vtex}{xcolor} %%\PassOptionsToPackage{xdvi}{xcolor} %%\PassOptionsToPackage{xetex}{xcolor} %%\PassOptionsToPackage{prologue}{xcolor} %%\PassOptionsToPackage{kernelfbox}{xcolor} %%\PassOptionsToPackage{xcdraw}{xcolor} \usepackage[emtex]{graphics} \usepackage{xcolor} \usepackage[margin=1.25cm,noheadfoot]{geometry} \pagestyle{empty} \parindent0pt \nofiles \let\familydefault\sfdefault \makeatletter %% special code for driver list construction via %% latex \def\xcdriverlist{1}\input{xcolor4} %% writes list in file xcolor4.tmp \@ifundefined{xcdriverlist}{}{% %% optional * (skips test whether #1.def exists) %% #1 = driver %% #2 = additional options (stored in \options@#2) %% #3 = processor 1 %% #4 = output format 1 %% #5 = processor 2 %% #6 = output format 2 %% #7 = processor 3 %% #8 = output format 3 \def\0{\@ifstar {\def\@@tmp####1{\@firstoftwo}\1}{\def\@@tmp####1{\IfFileExists{####1.def}}\1}} \def\1#1#2#3#4#5#6#7#8{\@@tmp{#1}% {\XC@let@Nc\@@tmp{options@#2} \ifx\@@tmp\@empty\else \edef\@@tmp{,\@@tmp}\XC@replace\@@tmp,{;#1-}\XC@replace\@@tmp;, \fi \edef\@@tmp{:=#1\@@tmp} \expandafter\@for\expandafter\@tempa\@@tmp\do {\let\@@tmp\@tempa\XC@replace\@@tmp-, \edef\@@tmp{\@tempa\space\string\PassOptionsToPackage{\@@tmp}{xcolor}} \@namexdef{list@#4}{\@nameuse{list@#4},#3 \@@tmp} \@namexdef{list@#6}{\@nameuse{list@#6},#5 \@@tmp} \@namexdef{list@#8}{\@nameuse{list@#8},#7 \@@tmp}}}% {\typeout{No file `#1.def' found.}}} \def\list@{} \def\list@dvi{} \def\list@ps{} \def\list@pdf{} \@namedef{options@0}{} \@namedef{options@1}{kernelfbox,prologue,xcdraw,kernelfbox-xcdraw,prologue-xcdraw} \0{dvips}1{latex}{dvi}{dvips}{ps}{ps2pdf}{pdf} \0{pctex32}0{latex}{dvi}{dvips}{ps}{ps2pdf}{pdf} \0{dvipdf}0{latex}{dvi}{dvipdf}{pdf}{}{} \0{dvipdfm}1{latex}{dvi}{dvipdfm}{pdf}{}{} \0{dvipdfmx}0{latex}{dvi}{dvipdfmx}{pdf}{}{} \0{dvipsone}0{latex}{dvi}{}{}{}{} \0{dviwin}0{latex}{dvi}{}{}{}{} \0*{dviwindo}0{latex}{dvi}{}{}{}{} \0{emtex}0{latex}{dvi}{}{}{}{} \0*{oztex}0{latex}{dvi}{}{}{}{} \0{pctexhp}0{latex}{dvi}{}{}{}{} \0{pctexps}0{latex}{dvi}{}{}{}{} \0{pctexwin}0{latex}{dvi}{}{}{}{} \0{tcidvi}0{latex}{dvi}{}{}{}{} \0{textures}0{latex}{dvi}{}{}{}{} \0{truetex}0{latex}{dvi}{}{}{}{} \0*{xdvi}0{latex}{dvi}{}{}{}{} \0{pdftex}1{pdflatex}{pdf}{}{}{}{} \0{vtex}0{vlatex}{pdf}{}{}{}{} \0{xetex}0{xelatex}{pdf}{}{}{}{} \newwrite\@tempa\immediate\openout\@tempa=\jobname.tmp \@tfor\@tempb:={dvi}{ps}{pdf}\do {\edef\@@tmp{\@nameuse{list@\@tempb}}\edef\@@tmp{:=\expandafter\@gobble\@@tmp} \expandafter\@for\expandafter\@@tmp\@@tmp\do {\immediate\write\@tempa{\@@tmp}}} \immediate\closeout\@tempa \@@end}% end of driver list construction code \edef\Options{\expandafter\@gobble\XC@@opt} \@tfor\@@tmp:={dvipdf}{dvipdfm}{dvipdfmx}{dvips}{dvipsone}{dviwin}{dviwindo}% {emtex}{oztex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}% {tcidvi}{textures}{truetex}{vtex}{xdvi}{xetex}% {natural}{table}{fixpdftex}{hyperref}{showerrors}{hideerrors}% {override}{usenames}{nodvipsnames}{debugshow}\do {\expandafter\XC@replace\expandafter\Options\expandafter{\@@tmp,}{}} \edef\Options{\XC@@drv,\Options} \def\@@tmp#1,#2% {\ifx,#2#1\expandafter\remove@to@nnil\else#1', `\expandafter\@@tmp\fi#2} \edef\Options{`\expandafter\@@tmp\Options,,\@nnil'} \makeatother \begin{document} \vbox to\textheight{\vss\centering {\Large\textbf{xcolor} driver test: \Options} \vskip0.5cm \begin{testcolors}[rgb,hsb,cmyk,gray,HTML] \testcolor{magenta} \testcolor[rgb]{1,0,1} \testcolor[hsb]{0.83333,1,1} \testcolor[cmyk]{0,1,0,0} \testcolor[gray]{0.41} \noalign{\medskip} \testcolor{blue} \testcolor[rgb]{0,0,1} \testcolor[hsb]{0.66667,1,1} \testcolor[cmyk]{1,1,0,0} \testcolor[gray]{0.11} \noalign{\medskip} \testcolor{cyan} \testcolor[rgb]{0,1,1} \testcolor[hsb]{0.5,1,1} \testcolor[cmyk]{1,0,0,0} \testcolor[gray]{0.7} \noalign{\medskip} \testcolor{green} \testcolor[rgb]{0,1,0} \testcolor[hsb]{0.33333,1,1} \testcolor[cmyk]{1,0,1,0} \testcolor[gray]{0.59} \noalign{\medskip} \testcolor{yellow} \testcolor[rgb]{1,1,0} \testcolor[hsb]{0.16667,1,1} \testcolor[cmyk]{0,0,1,0} \testcolor[gray]{0.89} \noalign{\medskip} \testcolor{red} \testcolor[rgb]{1,0,0} \testcolor[hsb]{0,1,1} \testcolor[cmyk]{0,1,1,0} \testcolor[gray]{0.3} \noalign{\medskip} \testcolor{black} \testcolor[rgb]{0,0,0} \testcolor[hsb]{0,0,0} \testcolor[cmyk]{0,0,0,1} \testcolor[gray]{0} \noalign{\medskip} \testcolor{gray} \testcolor[rgb]{0.5,0.5,0.5} \testcolor[hsb]{0,0,0.5} \testcolor[cmyk]{0,0,0,0.5} \testcolor[gray]{0.5} \noalign{\medskip} \testcolor{white} \testcolor[rgb]{1,1,1} \testcolor[hsb]{0,0,1} \testcolor[cmyk]{0,0,0,0} \testcolor[gray]{1} \noalign{\medskip\smallskip} f(color)box & \multicolumn5{c}{\def\i{\fbox{\a}}\def\ii{\fcolorbox{red}{yellow}{\a}}\def\iii{\scalebox{3}}% \def\a{{\setbox0=\hbox to3ex{\hss\textcolor{blue}{\vrule width .75ex height1.5ex depth1.5ex}\hss}\ht0=0pt\dp0=0pt\box0}}% \fboxsep0.333ex \i\quad\ii\quad\iii\i\quad\iii\ii\quad\fboxrule.75ex \iii\i\quad\iii\ii} \end{testcolors} \vskip0.5cm {\footnotesize This table was generated with \textbf{xcolor4.tex} which is part of the \textbf{xcolor} package \XCfileversion{} (\XCfiledate) by Uwe Kern.} \vss} \end{document} % % % \fi \endinput %% %% End of file `xcolor.dtx'. latex-xcolor-2.11/xcolor.ins0000644000175000017500000000133310554446444015461 0ustar mohuramohura%% Package `xcolor' by Dr. Uwe Kern %% %% Extract all package files: %% `latex xcolor.ins' %% %% Put the generated files to their respective locations %% within the TeX installation: %% *.sty -> /tex/latex/xcolor/ %% *.def -> /tex/latex/xcolor/ %% *.pro -> /dvips/xcolor/ %% %% Create the documentation: %% `latex xcolor.dtx' %% `latex xcolor.dtx' %% `makeindex -s gind.ist xcolor.idx' %% `latex xcolor.dtx' %% `latex xcolor.dtx' %% %% Run the test files (N=1,2,...): %% `latex xcolorN.tex' %% `latex xcolorN.tex' %% \def\batchfile{xcolor.ins} \input docstrip.tex \askforoverwritefalse \generate{\file{xcolor.lox}{\from{xcolor.dtx}{extract}}} \batchinput{xcolor.lox} \endbatchfile latex-xcolor-2.11/xcolor.pdf0000644000175000017500000254767510554446444015473 0ustar mohuramohura%PDF-1.3 %쏢 93 0 obj <> stream x\]7}mGL2}D) TB6UTaƻ]덝+[W33IQ)^Js4v!z74.}hgb{s}tsΧ}| JZxr&s?z5g>?_^k^){Iݚn>X%+~JFBR /<&kqGZc\HGk%_27aO/9)em.h@胳s\j-]4h-?x_m{ }wYZ6wI{rNu[S67ǟH,H7u>_zlMhq9*ae'z#<|:(PiJ iJ`2/Zxȑov|YUA7\J sqhEFٹU8SK=7 ނ|9'~G;2Va0]ojl7ΕGT0䰐?f& )uccCm-ᕄ4_u1;F ;USSLp%L?0m0'9%=AXot˱6`Cg/Cв])C3%`;R"__&VZL<<1+MWJVCH"&y~ `I(Yp( SZG"&Ġ} π׿.Ǣ#{Sisc؉.Ƕy%.EafŒ`0  PE4v \u+f\/@#Q7i;3G-? ܜk¸"I!Tl ]n_ǩ&nQѓ4ru'e?`rTK7 $UP2C:C# W;Y[:w(K_'bYg`VS |gl CSo9ZgX+7j vwCNC|v),e%Cs/E{r{#+>[7)ۇn* >\TD0`+A+gLZuvBOt~κsa;Bvk-nK|뒁gll_N%j*ǝM]ٸ&ֵ5#ۧz]%(=sKbPsv I F }kNpyJ 8($5HnlŞtVM|< 3<׼lQ]$#b4Fҍ̱ɠJD+ Qy! =)T2q!f&6*~Wz%`z'wA5n8l*HoBV60aBg2X*uvW{'xr0v~>h5ܫe7L :nU.WpvB/=w0oP-oy uOL9/}X} .c92p| c6v/j\Ǫ%›j$&T٦Į'"CJoLO9[,l'}ؓy|4+1]}stYsZs~[ٻGĉ1I~*l콹q@֞Fkv>{1 ;z.hPL~9z=1^˝ͨ|s9Dg^0 ߱IafUxG`EayIքty =Y%k__#MuJT8⃋;Q糡v.$d>pBFY>yF }1TTcyq좼$myVhCQ 7k | դ U^-6Ŗ._eD$Jwi#44|[– t~/|i2]jkޛ2J(*|~9z#LI"vw|fL?~YvQ_jv_]mO46׵zlIcleOk;SN{7ek2OMqoZs0+JKu~A4&J~e ш أXoꇍfcDfEymH|(,Af|[u47Mk.pFC c_&]h:U50k6MB!d15څbfr wQ6M*Py"7*f@fLɀ9->m٢P0޽˳ȋZBqc1*AE ,̆y=SlcuxaOf#@O02)[m7P&+r&uw$}uXj:p6ƓRWgendstream endobj 94 0 obj 3819 endobj 154 0 obj <> stream x\Y~Gqى$0k @9KZI}z&{HɕV`WWG gN8].9|__v!,ֺ8^&\|a$`Փ8qy&Ns)g[e5Z)CuZ.*2z:SJ3M.' \5ye+FEszZa#|RJ*F*m8{.;$!-3F.].`W$ bBr +MU.7{Ѩ4<xN#g\~qq{8N-u85^sns{6!i*9rUH[E)#Jh>rU嬭JtSsS Y"\HS~ #p(cQ"nreػ_tq 9v-32^.HjA2xOV# j}_Fo}1O*jIdGf)5}?WSDOL8~ZmCF:]{%Qy@-*%G9)"_:X&#m#^5bJJÔX2JYMh2W]&k$X1g@zhg,$@"}+˵Hsq xBwEeuٞ=Sc__nT̻,Q+p7.^NW-(14A$ES=px05#L ro$SuNZz!o8Y"O2݃n|1]+8]mh02݇<3|옜[Hq@UsJo^65C|='o|2EОɑg)zK侵`V۠q m hQ)omZ( Tt_ޘ! `=n)oYgL =$v%di!eB&=ٙ]ĂN wPC S$ɝGjp0gKƼˎ&DK04z.*]ޥmEvhTwɃ:p_\uZȖ6+@ ͳ'Ù4{w L#J2*NYV'hSrC-$ '_FWڸh`(DB{h<W*I6?"!m7O%bxۤH~rC]MA*v_kΩZC.%i\IkWIwn{~B]0Ӑ lf4 B"Z5|gFj{oxGG^ 7>➂ٷw]ujtף4J\޶;mStĸLB3_uT*iC "0f&.gk"7bVs6^q*|u;>iCf t6@ 4k9$Pw$g/լ!^=oӿW"sDɄ?{pg%çEk=ȋM(.H u$iBFA|K" QEcV{4$\3! 5DmH=:y/u]ѣ=9T0Lׯ2O$4/2e,7.sk+Αjz2]hH^\{RI 4_ҝoj߷DqE' /PQ=ĮwP>0|dmbo0բ&7&JoW8:P$]I d?؛H3=M=`?Q5?r{ ?}2ǿXCK>K H1xQuZg 5cWOQi@Lƃ֏CJfN1ǁf|0|!\ohj*5leM 2uPbӑPP7~G37o\eI|}5#¿q8OϷ-eraNysVlx]_ʃ퉿jtv S@49O'.`UF&o̿#ryHBn ٶICBkZә'c5D9o k~H ٜ3[mXC'qa[j X+;]ugu:9;TXmXXkCzsY5!zdXKUj? yىlb$D8tH}zHKu@)_vږCN-D?`%>6@[nQ|:;0"djk#uIBiOgpa/4}$J;EE(''D%(O1Zendstream endobj 155 0 obj 3017 endobj 213 0 obj <> stream x\˒۶"ߠ%*!hGvyܛĩJl,&#yy8ߧ>ФH ;T.W8}O7@1BډON.;{}Xauo_LS@7 "XedʎzM7MPҢWj 4 vt`>ߧL!ۼPd(286rp}!ݦz;<mC\!| i Z;4Hᵞ%òcXy xW\N˹(\P mU=+,8jjX|h޷uP&=R"Xr@BX&X %ڦeBn7h›-ԝVBNTۃ~NwB[ ZnсmЃ0f_Ffop28c{OUy@;Pաl<yz0cXnL|/ovDc؝vE4l h؀a@!5y'H1hSMyP)nW~;۱nD{zOKy_|]|s?qc 16]j oSM$^4>碔eRb=FE47'BnwY@ҪBY([=hN:4"Ó3aOE`47bzspw$ vF# wU:*E2Ό0d]JZd H`'XB4ђbn‚)^XFQ]]Mk܊!q2h(_ki+y9@}CKN\fT, RwMf4 VL =Mǚ~ԏoU)G@2iV~!\w1}vfki60KyF3GL[T: Dz&6z^ fBֆl &ъ&C9IPzdr2 %:CJޔElbP(ԐLSW-Im]ͺyUn|/~P=4*.f1p!ώItHk16uX9Ie%<9#G 9 uym\*<6PXҿ| Z8M*lKDumJcl0U̫"+m>ևH 'ͱlgJQZo8Na94 Ȼ-M]:,i\p,w+5cHWH`,Art.YEbF۴a'c>"HA+Yi54X5ΥmɪNq/)qD,!-#{fnIE*ƨ0%eyzxֿdv^=}6KLa]#,K]F;K/:W #qZxLd9]`'ŵA91)Q[$ֹ3䔃?CݿΧ4eM7j3ʛ)c\9N䒥YO[, k @WpS#q9#H}ΣdMڒW2UJבvxb*6|=~4s0ѼTOi-45J;.ʊ&G䄚R̲NUneg]_.IKk,{uH׻zarauG/;Yn,/6Ւ WˏҾpBɽ3jv, fkπ[:gmEN$5|gѹTsJ 4sM#~@Ͱo {t Ԓ#U Mztpb׳ @\XNcvZl$<7.iXpmOamф/Uŷdϧⷹ&nDWuӡl v4{?}s"kK ?;o~="VOn۞ş1/ Z_sJo/2+ z AhG}kʾ7|]V|:(ɨ|< ^麒LN{LGBZGgqI:!~ҺΐIܩvfBoNvp&1xtF oydSۢt>mQˁUȤiΛw^ <7XX5endstream endobj 214 0 obj 2386 endobj 260 0 obj <> stream x&I4}X88:`p$G(1]gu~3Cr x쩾M̬닟՛ 5s n&c {wsڮ0j++'g*6yz~} 3ډ=|+)w8g|MZ?lR(qb7'͚VY/֡Y e֯mm_CS )'%`%`Ej$M|Lvɹpn6[8?n}H>i#L1o`>0B~Zъ]Tù~2c# gIrOb>y9X3Xo.-\9}80yXq\^3݄5+L 4-|J%,,V5)a.8U"nOJ۾E`T0]xsH)kR#`i00eRjp6D7<9lrfr9Grpx\env^ ؤvM~}S?Mڸܯc,"v<'ƞs>-p8`4L!@-q`έwq0LZgepxFBHQWDS? >MD}[YrׇMWt/7y'x,` O憎\7rE UjL6pA&9K`'k'$m@iy$6"߀NbӓVB(tuL <%m:U>N3oLH0]j@ l5Hh@J4ː?xv-iZ_$#C-]g.Ҵi a7N`Q6[l7{#)m5I('nQO1˖BGy{!"!sDo 2Dbb5w顱ARG=W-O0<@: zr@YTP܄Eh! '0¹SD^ NyOt|;7,.Τ O`I1Z=\gAؑ#8D0t||j )ߑI2_kXa1pP`|sl1A$Uc ;~V+ܳmuƥs X+Jl[MEJ 5A?d玆[|[43U]X "]w9Gqj<'Cvh}WtaўhYwͮ!0Z0}Ѫ;]&0`߅).o#ԁLcncIS7=Y ibTV <ցO2gL=IxOno} t?[c88C^ E'2ihbہVό.jTqc}΁I]jyTUAf{ /$L {*mHK;yȯ9:tTr'%urh``SM]@οue )aÐN\뭁L&PTt)Q4yO sdE麴)w^7ap3#К|b xڶB/)Wk8 NZÎ S$(QSfgXwHa8# ġDOmh1=6.@ IbDJ@cjBZC$*'k%ϑ tRBi\i~61oBA:3)bTF8F^z&J:L8͜@gOX ASfV6 &+E^BNqHh.=ݜ( U1%ZY!ay2i8ӟgjg kv+}_GJPr` KT>A۸ ڜoBLRj׶=\W௚{0_K귿ـa W /d#aK@"/h[A$8 @PiA(`’ TCfԀ@gwr>;], 8X[a.fRr2KxU`GH ǼAYn(y@;TZty+ :y 6[x*ȍ@" f?v"2gc*qQTpS澋.$iX[wqsu,SbJ?UhXDXԞ۠UsL?{ݩsN\,(4@JOrE(7P4]qt8 3®`)\ ) -[Z 4H3C݇nnTJ;Hmf{DnD'HLKjIЛsf[ς|uEO^垒Ac -hRllRR_+ja<֗A+{g` o ?!;qWλ>}&-"b3a$\mބ(wy )YlK6I@aYھCYtRj#Ȯ37fʵ+o{M{ U]=fpDS!'N)Bs:kJuQ:,t'ubH'vΩQ_ȓ+mGէ'jK@=`fh<Vum0:V́E*Pi @yLZ]+(BP5yS}h~ ŭ;,Xi21"ZwH/a%{.BH/{~#tjYy` Yhϗ ?*Uz[[IDuNk}71mӲr5c ⱏ,{9o;h_w8>jpwCGj ÁiEGhj)N5}{7$uDH&TzyMz֣coY- tB;wDr~/=vB0B]_z`Վ)3d͛ȳ.-ǻE'!.PRY(4BHSḋ$&v}pe| >s^_&",y#bvģ"xiH"Ūp8^-Hf pVmv m-6ƊZ“+mq|u-ru6Qh|JdlFƏ!5x樟$ CSbg"+r5H v#9s|+v:۷wcC7pʢhUt|owF/n_s!u>4K#2kTñ{yI` 62!FewC/ +<oI P;֚_Z ,Źmь/4O]  '?w[34tkR]"M.CUs+rYT VdkԻFxrA1Z@_ 9kDLiR}V_Z(JKbx>h>8Cb7\` 1J|ۿwM^>Bdl+/_Zendstream endobj 261 0 obj 5839 endobj 269 0 obj <> stream x\Ko$q6x_x6K~x-Ȳ%ò->ttrFiRCrw +"32"+$aX'G/ ܅/~^\߿tsΧ?^BiES\\~N^ owm~ڊA goڛFJ!7v8;i6C*0/wl< O|n_vHT¿JHF*!#`)]@*l.; ~ <&(DP"jNJe6?GI-cLB&`ηuamUZ|j9xoᧆf'p-Zt>b_= [V0P[gS^9:nMz )`KqNkZi-o,?մr[ 9K Rlˮv_]wq1h7=0K^5?\=e4J%kq:d~6?nU.8ko &|;Y:ҭaa3\LfbwEY)ItZb=|JKX؇GT@ ^4:Nn3 BEPYzܪUd^RyMm'GrDQP>UŬa'ekkNĕ(W]$wi!O%89mʯ@1 pWc`DZ1.c| s f(˕Rrg=ùTq>lz+"#UygY 9`#UOh Kf%4 Q= ?SDa- ۥ"#498د!Ε0pLED!oE_x6w- /Xn*&$=J5۠` ZZ-Z{2}wlPo<۱\q \O9oJaZ?fJHS.Os+Fb(Ota'3Hqĸ]hm8k . Fh`)b2Ӵ@&~pƟ6<㥦6@MԼϭo6zZlלc"~Ve6~JsP+>q7F=Uy &60r[8)|o|gXMePʰʠ2A -NP":!2SD҉z_:"!x&-ST&( d׫l3BKq渫x12} ,>և:έk1iGk&,ѲK]}mMF7 / r1Zt\#?Y (z5n )(ߥ>1T9%iBnAI!9mgyii̛o|n|4 {_L{ H'fwiZg6" :\nlY?[~.^,ۧe帙 FDAqCB5zVv-8 ΊXeo9xKv(__6m)ni?!LtLbƋ(}3Ʉ&Th෥ʐz,d$Ha~La:\ybv1=v`vWBiu-|{_@~Ԁ*Tmǫ :_hN\UED!Qܡ gk(~sMWh%hKLP:Ӣu1ɠ/ vcbdް|_ay\ #~aA$kjcCQt$ɽgVuչ|.Op{ eee;4~jѲBV뜀%|W464)4F{av#"x+UVs4E|Z.ڞ̲Tb"˘'kP:ACOE0bY+GWi`ep ;K{JS$5l.ێE0Ue $rmJ" (u0"[5LFR u7_bc_{IH{I{E-p~07|>&d>S0Cm1H>77jR[qaҗQym)2v^ـ P%t/`, R#lBb.w+D)_-pdO}[sSJ\G.u OTR)HrxFizm^6y6Щ:ed|n%:;q649؛~DQAz~݌Y1=sO,(+FxlP%3~Ȅ$T?m Q-OU' u0 я~IQ~3Y#z,dT><7%j} S_wE*XSlm8$ܰ3 h_d@mm#,FV+my@5㕴j6x*jC+,teIMYm W1 wk"w\q_lc;1o"I>!O f'O#bq͋q3=g]:R/ @~y|瞹IV~*m)Vsv=_EBV{ʦ +G.dOU[:%Qr1|OiZMJ+#Ѕ!1.5U5Ϲw笑FlҦy|ak&q4^lޚ^ͱhƢX7aN)ֳIMRgR%٤ίx4ާ= \XD$51ySj h"a U(qHՇDS/ѹ||^<#G(F[2M^]reZ\Qȁd8"pscgnU:rT8+eY_!xxG}q -L[5/i/i9xCڤ◑z2#h1enL xZD(KxzrZbka,/+3y !ޯol5lȂ^rg;hx$K/aZZ> }1{ jFY0pPgx\Z gáXXh^x#e6nVR ?@HH&)nT%Cw}LO^;H5a4|k(Hzȩ8:hldiCuo|RGHHI~N2 hӴ:h5Sv&Lcg]ӓi3Wl-zgbڷvp\H){Vo|4νp/֪Ly{ʏu ˲X%w_&/4gn&y ~&w !wP^ 0ĸ͘6#!< S@D9İXJy+/AJLSUism)/D)lŊNΎ6^̒ {9,+WX Bu^i!ŸFʶdbCr8pM#66e,qEV iƕa/ ށ.Ψ7^kA.aM|;[@ɰ(6pڡ0O1V҂%RXE2#0iw ߶Mf,iKrXXW/ &XJ$GRA\E#{[⋘E ?;ứ$pL7 /#ռ ܳߤ~HiJ\2)b_ z)h;(EeA&5Mum,RebQ(rj Wŕ ɶ((0h#9R -(rw]uYMzKͲaFےQ.}ԦwLJ\A?IkIy ua_^_n"h~h8:Y>'/nEz҃O[  +pغC#~@`!{s ۘ]\d{x}'p 2o醆]2z*>u_zk:cVT*q}>ԸDi\S3YȦRtiK3|ߟyWendstream endobj 270 0 obj 5247 endobj 282 0 obj <> stream x[[o%G/<)sОI/g Kv{fz>u"hQ._U~#z6?/OkWN+{uts'}~)GٜO u<͋}ۥaiW?e&iIv\$ 5ddZqxM]|Lr݁7w.(th9[pc/[B`{݉^C!u -8YQ%}*aeVP3*MQvwy[ŹpQwðUX|u1;,$-QTpד(73(&1tsQ_L YHG6:97u 4$cwxOJa CA\^ejx:ڻʐ8G" bl7Ot±3& eb̊pMJ4P[/)&HÜ$:/q;lsNte#g JJǹc]'<7ڛt%8-,4^:?dʆ^ʀ48bU-|H;xq8Yؔpұr16B䈲 ܋Y[ ^2V":f4T|UEcZJUPMuyߕ 'YmʛEHӘ˓N>e)>,ZQYw^y ],l$_|Mc89*sCRs<)$eNZ¯&dZ:1*(%)Ԥnv205ą SDT$>UD+qMB͐Ԡ]Yl}"$Ϸb]ZDEĎa[6nnR:M7fH2*,=҇QS=aIYӉ>d3*8J #[bxcŨ>DB:z1@;my )Vt#"X9xKRO0ԈԌE( TU$eQXA>*yFz>FⅪTzQnsֆ EىJ-+kԪ7iZOT.teeڟu. P|Oǀ2k:_ tVS+]ɇ)ZD{vs-7 _ax'6Qjυu854t:tAd%ԨIĴƢQ]5ۅ/U߷­3 AA=JFNIuH s}^I+ݨ! 9l5-vfTW֕f4!TxzMOVq]4wf _mӡ 2f}ԣ['+Omf`T}Sl+dqcp| Un2kuA|LDS~j"r3{,8o-Lq5Xhd.ݱ8[&U lypy"e WLa2͓QMt> cO*ZilO=2758Tb\B!W#a\,qC`a\Z W "`[@a|6O0gS* Xuu=ܞv(,6U1սuNY]g(Օ8OxlüvNgczV C'C_޴_+y4񺂇³FOYcAĺ;YxnGCX_BEh}R,Rz`0ʙK(\ CrIQM033f(ߙ3wgxdPTSkLażϣFxဴ]UY5Xw6f]rW]bԦBYY>H֖{s&z"i9Ex/WV gFYyRz};Y&H6NeqIy9%*f_fGY|QLS:'y)2f['`>/OO'r[z) \ 0axs#^dD_d Ejy?V@ A3.څnf/ u$F0YYfd7ӻG;Dt !xGo)|vN~&$?boJUd\oeԟx$#(vqQzN2~(ˆX@F#(V28(n_?#, J8Wrc '-pǷP?ia8=$K#͂8a*M8AisgAGKۡx|F:y=6xzMN@5M)8 )byKQfأ8z+j넷FF[-GÏ gx?R5|K2> !̪ɯRȏrfH<"DQȈ$@Bku0Tu2갼AY)I>7GŋޣTZ r`sE7)t4pJ]l'N\0x_jorԴ״&?L}f8$Rlu MdQYVTv3 #=Bhߴjj?.hJ^R|Y%_|&Zp=Ze_A-tw>ϺQ]v[ Y9]:Dmg~fkV .o FVOCkSOi*5OHm>W]_ cEWz2!Iw^zuUL W5}#jӚf{ ٻ*MO뮀]qEЧژ8R :|}?endstream endobj 283 0 obj 3722 endobj 291 0 obj <> stream x][o%7r~W_8ۼ7]+?htH9#k$Wdw20CZWE/jw'[0'{uˉ sƭBzuD+zonu/J9DJoOϔҽզTaS3l'rH],6rnF.t.YWb3٬t# )EQTqueWJ|w+|ޙF ! ;Gs1(!}wMh w?c1x} B G*륊F]gﶧJFZQ;='v(uj۽\wxo [1$$K^A9 #=X;(@ n RJ:+R9" >b;6{O ))|cJbW1VeOX뼤9R`0%blٽ97߯r^VFaZXI7Y!p^|Q,iؽ k6Q:_bV "G)b9s<{#ޜIHBJwT J|&I?G TS^)dTYz?A]/gri>Yl׉rƊ Ik7uCx#qجsj!NϽMjf!6PbοzGUaé24ZwzfDdU>כb*d3>Z9X̹^{~O'%왅5SD^F¬d?h5OhnsRu?&%QtV4:N(:&&bcyQWX`XZE+-ڮAx AzAeH]Y5vMki. D; }{GUY^2^໸f d{5.Kޢu(HP3.,p&WKd#0mA4D2H=V 1J *uJ<*TI,O˙Tm"c2ݏ' jjSE{ZG@zbэ0fVIq+3s"g )T jVLoPҬ[#?RͺoECjVa+ bVz;msTt,@}ZI^X04MWs͖idLjk)2Ob%4lB$[΍*X4;`~9P2;iHEH(bB<ֶ mV ֨P-_˶T)PX*0<,ؓP K&`L0Mnvj Y"6>B-:0A!3+Y?:eLJ2n0uٱ*{8:ِ+f,N2>I-I}ئ{M g'^y$mݟլaƙpdUC$ABMR -FwC_:}iR{݌] S P[*~F^"r&ɟ(ϛ|ݫ+UzA2V-)-@QXm _܇TSy11Lk)ng53U{t7(G62SihYNb gԇ]A%wqϖ}I O|cR)2r %΄?rBD++nF5( Љ<KxKJDeep8) 6O1/!d9 X&r ţi ,k12,«oOH̪)IYu9es9TuW t 7(WVȢgiD)6P7]TҖF,my@cVqwt&;NZ)`}\hzf<R3[ڞ`%.`DJ'|UqnZLJW L Rl1튐Pa .0pYS))xYLadBUZW6\oya]@)FP`C^MM+۵9]!ǪDVxH,cYs qϥQˏJ6#Cy`ǵb (m"Ck0%dlvPqJ>n_Lcqy<`#I"̛Vs~>=h?UɭٳOg _ 6YUۛJgbteFbfv|n0&O|K(xq)},iBn<3b#_kT8Եquix8XwWɍQS Gk}%Q9~z SADX )ai:r!:+ӡi}aSl@vrN&>8v@a_u0094`:Xy.Dcz+;y_>pՅjڥ\zOҳ|/y+Z̟>+G~[_xP6PES9^ClMxR`_!~Wlndn^iQ{~`%>ܠYԌmI{U TG 4rRӉ!|'dUq$7ׇ hfiɺp4C9CB1!z+rElכCn>$B`mâ=uH9- ǣOzLQ\UОՈ#-JQn«ݫ2z!qح0,6/n7[z~crqs.IA-qtJ*I=}z*Pa\?wgfvZo r- 3W|U 盦d9dZ۰8|:ȣӤgS6w}vdzv /> gg||_ÈuEšA͚gv[/,o0e>d}o>+q:b w|[7meHQK$>VݜS7{v}QXҿ{ gMe|\R^3 t{64^S%QQMf[U~=_j.+_NO *wuCuݴ#Qc _iѪ<,;F]vN&%^R:`8`6~l~s1UD{QORwBd0z?cjW(NN\*G[1~UDI]^.?',plxz^aK$g}UںCP&)ˤiG(7v"ױrXpKB|*y2RTQXYsJ Q qaTNoUN {Qmxқjx<4ElҚ05A"Kg{JP‘իԳ)ϔjW"kG mgio˻a#bQVi?42 | .1e\HLwLG^8uSicŗC7zHxvB8z@ib}jm*[_PNw<ݶY#dH V*_t Tzg/Ehd#([qퟒc\tC Dw,!PyaB$u#x0Rք޹ɗ.|{"0 9 $7۴L .cͪ:H8WT7/ L,eqtV #:z$ "um3,w&2P8߮yaMقA 5"[!(QΆ,8i".1ɕV7> 1M\e9Nd%?̏%4vdC7|kGq1AAK/ 1CPM+¥9La_R{%|Eʅ'~/8%[4ۼv(1..{ﳦ]j'u󓿞8էz ;CJj jջ0ɏGRPPK9s+J<8~+G?(.Z(tGn eD1O#cosO9Oyӆ`)8)3 m |Dce.窋BeE+`1q;k쐒S5& ,BreC]`IC61I$C{i^.2i:͋ќ$`MTsSwR%eowOc6lYWyᗹ2·T%b(*_IKf c*iIM*!3Qy$ܚM1YbҞү3oPv:}{﨑Mhʗp~H۔LYue͸1$ Pܳg+WVIL&2/\!ӱ.F *8ق%t /'[W ߹uUCP2_N.m-tXV=GYggK3q-R+R@*͊U~Y?:*0_% P^ZbB'\Y.՞|XLk> stream x]7r.{MG3K@V3#'ivIqOݬbgf%] 48|UzJ] 7~l:G2WN_y#诮<{mnhM^㧑RȎޭZZک\AHYЮTf^IaTΗ/ue]!5S OVOR[J[Jڄ}6W9]EwvV@]|7ld 9CY/i/o\!nksCGuRG&RR%Uw(o|ޔ7ٮլI_k{at'DHp(!#F:tۻ-1F:uPWi|W\W&ސ !y!})%{wzwRzÄ&z G`*o뎻L9iDlRΆ K@Uyowt(zdn|Qvkzt #6:?y#UyK2q*+`Iھ֍20e&Si=(tt*6tiԁ{ 8Hqwc!(<vЛ&zK}!oڼbdR G:U5ˡ0ǵұ7^qd>?C)}[JTxSJwfKb).$? [,BHYuaaFuT;"PX@.C+p8`U,q_$29&rdfK0Ŧԧ Yzj$a G%3z7@5H@aG70T9PDK Ap$ژɶT} />]^a]=%@xV:'@s%Bk;G-&'1Qk/&8~B62m,SiqD`܅.RX#ieZT~Sp(C1TOvJ6|4j8IXc:gC%vȩ@^ajȗ)ߦ:dqp&C@}'m:i{|*J~;"I鐥A{ɻۻ͛ U1fC HUh 6b 5,AHL@`脁ܯV sL>w+acWڒ*l-$=c Zn,UpN+fES5TiDv[sBO&cS>o Fy]ϻ[|lvUԬ5^pHXJ)AnWN.#ͫS[`Pc֤: +y tm(I|P2EɉQᶐnWJHwGoiF,mkWJlOM"HġmVVJ]}Nq.RdI #921΢ @'j?F6lWi]-Iʐ\!!\N*f` Yd譳}jG<4Ϡq$ar=H*b(AuDed#:-M;>n{:+)fZb[añ}%1.ޣ,ln Nma/1bq8v`_}Vy9M}yHK#P N/'WmB(#t֨Wpr0>R K9gWKަceȨ͑]FłɏAg(-جv|ڎ_\[{iRa⾔XV?D_wsSjܖUOi^Zg9ܳf@,7#s o lbK|=qE-膎.?}<"]iC+3Sa,u~)W)Bbl{ jm~DVy-Xt`ںL:rBJ~Ba'Z{ʶ͑";|Bd\hP' L]~H-9ä()j״MRNH̀:_T] tdlGBЂ 8/̆GG&vfR$}nِ諉@*Je(lAc\Xf\@-mgU5:@uX0̭C~6i#(V~2c&,/uXOp!f$3/' ٹ. #q;XE'sh!@qy#ǯ,S'zPD;؎ ]Rل\AGJaU@38۶ Efxvl^yw$a2GXdv i1XDi FԾZM "jפmC6$0ނG9%{I:(>| rN(9ʦ`Foe!d=Ae/΀(T咤ʾ9ܻϋFJlCѯXNI2!=I3c/FLvKO0 1obH (mf4OW4`J(&U|?L }eRLT mSr LhhH*$y]i:fGܝDD"@3#i;Ib%WC)ŌFMRaGTTrU7ݮ*IIPaz3JCbHuZՉU|omO7})}Z>_LϾ4SfД<n[8;#SXG~;FvWO P_^]^McHG7.W~HHgq$bLl0``F:'Sp| =A7O^;7aJJORz]>T*|_JJRv_X*ξg[" k T0Ȳ S}3!_LꢅƆgI}/SbzpH$X标JMm xH '~wPKf3Bwۣd2H h;~[.z(JT1.i ]-+JAWGtLnwجrw 솳q/jjtya ;>pv0Dp0L> Ktf KB_dAXG{+$͍>(t 0u埬éd=5x6cC-I `f`NL@ 2мe%NGŢoB[rJ/R~Meh$)6ԸiTi홒+tFFRx&3H~UnxysJgmp7ۿW?ۜ\MytE.q_Eҍd JLb=}?PaEM*or\5 T*iwFXpoz td!3i_id~WDb2@d0Kw+ߜ/]2q}ffx#h-3]%Ccj)F>D֗= 8Խ 4G'IN{R u,U9v;kЛܶ|! $͝mAI hu2M9fngtR.!ݡj*J5E.4s|u>O@xDXY֓rg'G<ܩg3s}(F% DS_P }LqQI^ C#jfҥ#bl&GhrL4&ғP0,ajj/ecy{VL7߰sm5Zo˞7"Ðj)Y fƵlD^#<) l)]qХ 1)% s(!Ϋ䷘.Έ.DZCzmt'z_MPuZ~4k,ҟ 7b`PI70f.z0:?H(U0PZ#*rn v :r% VQlLP8rNAuLAأnKоrib;Kxkp_]-֯<q J8X'c߷X{tabq@"ADfg&S2`#S=\̙pv/Xc0›-f!eK$$9 Z9܊#@KQo=44ճCut!9?^EZс9O>I<\Q'q 3Yb=>dBBfɹh'F mL5m? ?o;qW U|P߳x8o>Eu5C'6À5gm\cnh\b*T J8xL/5& 0x_r[CX`'ːr,lVj=j3NR_'.oNKFS#r! ]/aeyKz2I`KT! kvQ$ NcTk}bT=)^3oAaR| ѓQO;=ձտة~, Q"q3z49P9M6 쎝Є bNҽa|3⟰ܾIk פ2ɵ$'Ȩ퐕ѐe&|v\RX/=osN<1rۂ^Ҷ˽¡QEuV21߲ ,r|s)Ro߂S;O44(RlQ[x/,Π=:r bkVboW QɏGPYJ󩚋jTj;m$4@pl`y6?Դ Ӗ=Xo\e~UMendstream endobj 310 0 obj 6459 endobj 321 0 obj <> stream x\[o~# Nim& eڕ,_}p70##.!ΕYzay{Nͮw}3;vg\4rv3#:Ⱦsfvq{x+xB7(ٜ-΅jC ìsVZYfz76͊a8o?|ܸ)_7a?7;<[/H!($sRt8sIU> +:ŵ__­öRq!R1;qm't傛9^(?u&]uL?~9+J9n)q=UZ8d%Dpk3`$#D w@̅<:qW5q13Edž)ciu@y]CQ2>|[qO_ IV r>Uh)c]G ֈpEQyYG?M=u$1D)ܣ4ʒb9b ]/H|$:Z/XR˪HJbwr^+?;9hlEw'*/7eqt-/sksYv7Uey#w>Sr#^Dbv^Dpf&:lhLd  oߧS7 Forv@&`8fo2xJl֦<2| u)=ߤ`$eKW4~vU,5èЪrâ.ڭM0cv6 |84m>>?I"V`Ihɀ844T,qR:o|BritU k/ ]8iY0彈C ϱ@_j'm)K1_a͸ÿemˆxt[J2ZrjKIoBRa:zà+*Op85|n X_ֹ1?TsHTCl{.M mCՔ_\7ӋQkR0r%s*ivB\$pxY$.q0? 5Cŀ{S')M8` Z.2m X05`VPX;D=0N)fWŪM&b>]h taKoJ<ϏmPeH > XB=:^5\!`'o4M܂F*Myj*ZN[,}G<^om Vns`Z{dWp.qS z92"EMAd<&d'vRIK}k/@0bg5+y @zA)(Ki^"낤mqv1)9DGܮF>tv <'Xp`gYGvBnQ@HaA]uT5j_XuqjjZw$D 5>BF>p +H7pIaJ-' Lxc^p|3DX-+!ڱ.DQ6z4NhWLU>5FR [R@##HeZMG+IS21tw`!{ZLHv`FO /1jj+Ŗ,UC=c ^ u'[|> >QSiRK}{hF( '3ʸSJѝrcl~ ĤA1h^5v4ۦZtjUM+c5ێW`w.޻#̪1}QsΫAXB!8Hu+8=KEI:jVu%Fee P1݄$>ƫ%rĹ];6s_:8qz}@(]i,呸^*㸫 0VR2TȠd|a0l-x 3di8A;@UJ^EH\#d}씩ՄU"j UI_, SIiplJvsx,73Ǎ(Vᾢf}@\0RBWQ^Dh7fkxĎmJ5܄[,~UΒVFO$c̶ ȁoVt>7fF/pF1&ڊGDtN`j^ u'qp:ʱ*H8pE[ѿ6jHl:]o׸tCr) >Oh@ WoZ`8r=S/15+m{Z{Z&עA>n rI꽪:Ha.5CZjbvTlx6|pB#t*gc,3RL銜N1C.q 썛ZFl4$&jؐ@/Gx-w*D_}ͦ&?Q/r H:vzϪEO4V}A 1ОtCg "`֚ɛQjTS) tۉwb $A~NtrK {`WlNK-ӆG i> x^5=*z@Q`‡aOKjE vg4 Nl题MtPksɄW{SDaߝ;(13 $/%-SPM-ȳ?Dendstream endobj 322 0 obj 4253 endobj 338 0 obj <> stream x][oGrH,󶇁θy`w $@$RVhIqS==]s.ԑ. Cf_U^AgF~s&V_g>npT~_ެUSά.\q^y#W7g߯ߟA gZ_o7q?BIfpƮT YYn-kͼTl R>}-[WR3խ NjEH9dG_\WD6 a`16F>\<*O*O yڑT1f2\AKh1ZӹkO{=QztEK5I*0* K,]r}Qgnvdř z%va0z*xyݙjbF0h S 6BI/ʪK-y9Xc󹕃*DrV%,U*1b-e %09X1*Vk9Wm iy]¥)7gy;I.02c%'Oc@zd-qфn6+<tIE0mIݝo~4V+J3aRz}_^XNzgj'qseyYic+$s:Hi8[bK|ngiH9T+$V RVi.뺐vYIhD (??TsFNơb3 AŰH=[œyUBR|(A$ W#o/}U͵J..lz^  -x #"%Zpp<]¬C2 Ѱr+=8< ;O)oVgW]($b5sHݏ%GqCV"Hٻe >GlPy_ %Xz&U^tw{>_Iњ@Z%P~>O̶c,Ns fȟ`dCOA 4`dz1#>#nF.:D (,PW@ P0=hB Hkpv]L֕-A$[#r%OL^.a@JU, `#L\<XmM~}m7c W a ('4ߧ|D{2I'єVSc,]Y0Ycle 9/bJa.Q|2I0 p5Tn24AhZ4!XHk2:f;%-N"": = `˄3Mqy)`**& d-LK11IPkd³Үpc1Jd127gYo/׵cu*dmd_䄝iR)C1V@/hE`i IP:`unHWG4Ŗs+Ыq:@Ote SF 0)X>d'i |[~1Y`$-cӰZ0Ŭ D܀Fj&I>Ɯ0rAR23 UˊRHw ɆO>2S&-:-"VaSjx1InAIGD@e9G@d]Sb-xLќ]KN93Po 8@o(ef.'+)`ԫ 6A`K`(./5"nq iPא>/.#B #k(Tp4])b8C8%c`9ʥWÃ)部IDH0";LYl;]=ZeGտT_N|l>x_S`(_uJ'q|#ﱯܾ;2l$g"_ZuH4>k#WIH$A(:Yx}_e'zZ肀^dž5U R뽣I7!þ%GɯNΰ0Y7oF1u$$$ٱ|`tR"RvY |5j@6: s+d;ة`<;wmnɹ@yhRv{_7}Km'X+8ǂ9NN$lae^}KO/ÅY qjuRv x 3"7&ğla3/Bۙ$F?{P)?ɉ} iߦe^ x FHwqO˻/|y*qØTsjrgN1H"&ڽ]JLh gSo0§3_Oܦ~vq*3G8; 9l?C3rQj.as(ӥ*Eg~GJ=g(Rt_E>U%Ȥ(Ms<=nYO=X Bɸ @JU9ߥc!(%t"*W]3+K;a;q'6a랈.h9nJ5qcB=RGz]4#;-:m#peek,ۮwH5"n>C;³пC#RG"Cw[enٵk?ݮ<FGtiz,T&k/&!Oܒ#aGZ-ؓGeܠYnJoraʙ*x qx#CPyTϋt{$ J!h—@+hx1P!wz}EV4U8əzz~8h'5b: /Z+LmnB*v7؍5G辜DuP:~l? [T&Rf"ް`} Xp്=J`U\+DW/pUCm-}VKiIq[K7@q*gtxs#{]m{z6q{jOLOX`BwѦ=c;N%j Yh D]=0ǝ>/Ta  3ht g>K@rg69tھw=<'2YPV z-9hL2^ڢqr{'?QTkv޳^!E9;VGx5`aҹ(;^X쒠ig~$O>K'j+s o<9˗߂P ?VX!0zzX3)ƵFA>Rrɾ0SxU/9t8?efnp!ٍj"UwRQk#tfz1_m"殏d#6Mqdx~ jRiR CpTJߚF%Pm_:fM靧沢P 8/L#kwuUZ?cv<{V&ԣV:\CXu_mn~+M)ON};L".|{+|< H@esix4Sy׈7Ċk>*]yUe+ I"*IUl i/mV6'as7䠛jB$>7_#AfԂv>X+O(}*,J" RX 5"gf";B6@(gd_fXnqDp̏_X*_^줜Z4gOߐL@́UW|YWW?a\_4^ *IœR͒UeoR n Z¸~3:ٜQx exdkGֲŢ|YLN\gLӖ%{gvv,c=׿9vf61s]nLͳtojݧ'9HV~ZW-w-7k;˟aen/ f}"[f(~(MʹȒ㩃.|xdF7xڼ5PAєq_j\6qe|S<6^$a1)︍#ꇻlr2?Ä/ZVࣆuٴ8\@$ǖoM'74ˇ~ т -8  gFc[D`!m7b5L' dN`C; M $Gȍ ,-y;%ߗyHNpF%xnc^D.'Ge tj4PasrF$-6{I!N; L9n"W}y?@ .}ӎNlfyS)aTzn,8l;ӊ1xsa A?NZ(]0"xwV-P2t$Ad)Ih>Ԍw>C͘|`v;&C6X&q֫ы$ ?;e%ӾirF3g<)?C-uh^tAGfLLjۤwLҩs tBe٪H0Ci1MbaO*K\$ЖOnsƦ YPH*^Ҍ]4LuJ!x :)!ON C340/weDzRIe]]N$ebg7 14>zR;Kq+JJ`byo ݮOjRkHI66 m:fF?Q^jf\faniuRYx"-b|3;lGf ?IY8_{Uxg8Kibk"5kp'/Z,Zu_'$k< St$ź33_Sd!íjFE,81)LgI4j hsDp8\(=xP9۱^fhV LxGŜaDd6?dFAœᴘr{nȂmebH6mM1sIٗ+!~B-C4{tb<qtngl.XWj F|EQLƖn28vb!HJ6 ^E%jendstream endobj 339 0 obj 6081 endobj 351 0 obj <> stream xMN0.o[Ii^)ͥTQz%q54'͔QY?Oð4\՟BX?yMX^i l"R\u"OW>isdgsVGLs it> вWx''2fr8יdL0Ko_4'LDžVG[ǣy`ep8c:KoTg}\y ' —TǙpi{rXIKw1aW ku'|n<Ȼ%vxb6a51BXg(@i8,#'BX*rJWI@ԒZ (Q.ZX¤[ߚ*(ZѴJ v@p|p[2i҈v Ƨ C"a'2k2ysBK,;6;H|8^R@A.d&CZ1mb9(5"`|ghDi"!HYt K+q'9RFQXfԑu#=c$V{$6sNm 'V:R CE!,E=OHjX<:@vX*Q:bdzBN}f#z$b}|E7` xxPq9r/3% GջyYkկvZ%! ~b+mȑ})02 m ¦#nۛ~Y^/-7W0A+t];q #I{lEi_׷``1}y %p*P]>9N.MbTdH!j? 8P[0)Ҩ^ah\?䘸#  Q!c;ADyS񪈒h,=ZkܛbpK{׆xWasnNon12qWavojfӶ4ּ6G*+GKDMDhp ވ&GHѹx)gĆ0"y3}HR<, !0qBj0Yһ+҅EBʼn ߼Dr`Ȭ6 !WugkRJ1̋QuBCK/IL?^UMu,cR|gA]Ooh;f͑%~Pu 9y;X ېo*爘˨U4+qsyzM Pe# #āĪҟܰ.wScT&C8pLS edqر1c<Py,܅>Uo xBmET {[BΏq/;~͟$M|GoY$KEj2{/?rv۪d=uҽs: Bz"=rG+XSh-i꼪9G,vkQTcYb VvNhT"*e]qn}Zn\MgV(BZUfoY: p,d@<]ԝ 8|Hs|Ĺi+4Z,YwLm-FL/bޒ)1(eZY4׊P.lOYE]blLbd6+6&^Uqڶ KJIR]$/ӜV n#{ټoi OLksQӄPvB| li'H,eXaD[y;`*-Rl1RƃaH_&XbO _v4-!*e-I @pLi}@@J86M6=3,+ x}SXnXoitWW(b-.ogxiM44b$jZ(ne`UZ n1?T.-rM1lN.E{`7PH6h7YrsO{"(lEj.40,,X5o5M15mQInWvE˝GG& b˶Ms!y2o9Thٔi"?.W'!2O0jkVi9uW!r``WC2|͘ueX1†h-{CwI{`NUH`=yyئW{b6C 9қT!Gg3(&u2*Pa&'ksHd{ylG-UK'cSJ(vT8mTyJIm*=5d6@o^;%y,zĹ 0_iIܪ*8 c8js@~XU\:F(Yof< `]%J!;5>Rvɹ;"Uc}KF`Gm~;&(fAjy,Gm.6E #tםĆ֑j I˧ sslg~._~ݫԌ}i4/k^4a@0 %+SN冴W 'Du~ +jJX9}C4(Q$p\,LZELV4e!,irƿ;kTW-]zL^JM,SԯVpq72BXR)̩xf\ꡡqod#.I,W&rIxK9gѝ/ztR;8ڞ$^Dn5ݮPBOa]HrJK~Gvv*ePX*Щ _#:M> a=ڛ8о)"O=b[tJ|N?.zv̶wFLrtIr':3Ni{;&K^1ʺ%Œ8E*{Yݴ:+dO^ʟ pFB? ʍXDFi)rt?kš[{u]cv'Gk^7崵e>nMj\|eGVK56545UI~!0ZGX<@o;ɲĽT̹Xn,S#Y9L,[4\0/_Si+}UOVUTpPG2AouH5uRgXHwؐk9OD!VSUN*i60|(@$Y9w<ΖVC8QU&5uWs@U[UnC( ѯZE)C#Կ4{O /UjJo cNh[XF8D! tTװr~Y)ZSFFb!jXxw38Jy}W tGp_qC5d!H jpc-77wK^I!9[33ǖ;P-SŽO[N҃9槚Kx}[OQi@ϧ:>>* <"c=]JےЁ4 ܢ\^oB7eJ2:4}ӛ~ң +6閫LD $Dpb e75RT rǔ)/ jgh0[ !Yb!Tx٤w4: C'E#2%f2( vHuד9endstream endobj 352 0 obj 5260 endobj 361 0 obj <> stream x=kqv&]8 l$S"͌ʭFk|B"Yf̬dע(./a#>}]ro<3}{_p䵷/^?SE0C"qHŻg|9z.=|[cMJjZ?\^cocsQ͐E7<,iÆcuHP[Um~ſ T. _+ 2 A]\-<`rHn.@7X6o+CJ&)L80<>\dG)4I)y{ۘ6f>yIzZ'X~[gd;ﰃv[ICؘ׈KeOPQ6q[1Z- P*艠 tɟK(3F?V"b]_$f_oO F7<܊;q{|q0zwcOx] ~S*At9mB2> +ۥ ~{|%+7md77]îrx[մ="xm WpGDRlvH٥/,?r~;*㔷qlMW͞ˇ<.$B-)/4 j3f.Ta1@BF ~=p-}džQejW#h PW*?^JG $8l%c.EuJӴYf# N ` K䥬a_97z px>.(֜Ե,^'z<Dv2pf}bߐ|>ے'^rK3tzbLiFPf3U-H̓0Y=NhF~ϠȉHǚ1w`dSea;ܒWlotU5A 5Iem!>{R>Tvte+wOmj}ӝ7ëuI~ύF[ϛn:kkFZv>}313dyiO%Gm}]?BZWa4X)j\98ᎌH6FpDOYk#̩~5:0&% CbRX]I" X柲b[~nTkYC2TZHsN#™mTbԣc.3QUZ~2U `'ڙ-~8'-7lJt'2d֡]qpaӞ!pW$3y(<;Ȃ16p> z DzMG[6hB3 ZQu,@*R4au.spCqAeVfаu. ,( 7k; c&VFQuiGbXzYKJ*g*\[y܄.=? 5f䵱<33ИvHc8 * 8 d6wyؾ# p+1? [usTO.U J3 P`sWG`qyr-^5fh+v:ee@UNҭK ;/ aS'q1&7NNy UNf>r 28 q\t>eڑxNM1 Λz^#tC ˘`T|̜%\T|V$dݷStFAԑ/I4LuVAReo|ЖiؕO.TQHI5mtQ9'F=xlAGPX-$y{N/X-8T-Q|S;? :H!*X$;&6 jڊuK4S+Q%'Nzj!!MM0m.24Z8W^ѠP| zt}jX~v@pgeֆ_HTlx90r{ؓ}, )Bcö́EW$B|#JEt&u =c[N dE^96_1dW(|P.i`Qy@{Q '&V)LF9DD^L/4 #U}H5KpR3s!帻K5ZY*M>sOo=9@b\ї#QV$'Ccgt ݏ6"0KՇfCp:&dE00هAC5_Ao+xCv`&cpbLy?Q~6kq<҉A4Y U+jC4wJ}Np3=d\kog36ʈVr`諃7Id4 55T|C6:i܆_(|9ȻUr|CS`Sޕh?{`Oe\q Y}:[9B >i;ESfs*JWf"Es)E0IJ5 e2&Mg8Lms[R:+33*,s7}B |x,Ƿ(S#9݃FT>?zʪnX}·Mw*mY@y_q6eCy'Y@ &~lʽ]༐"M.6,HvP 2OÎO,$mjk"0Tb İ= dX  B&nɇ)Dg\$ЂuΑV{󘓧:1Y9 0$ ,eB@9_/4.twy/xV0VT)!zzB׵Dʰ9"/oI[mZyȓBll3/'M SI9J|JP3BŸ%M{"&uc weώ_V=U *um}[[Y*>Zy_Da h>XYTkpO.sKBRD-Aj/NxCo5,by? VW?5x~>Ѭl&jZ +p\հc3k%dg'$OV+qMCq.:_db@ꏫf&IB(L`<+$~z9S8Wdc>mʁg<6qݧۆ4aEL?_%LØjY; 쬡ֹ:V,l1_r֡ATy#Irʲ\W%ļ`p.8GE<//ѯYpZRR}>aSy.VvqfDX0fB2  SaO6ñiX.$slج{lh3Ǥ 8dD%&[/%J T0 dˎ5 `qB] .?Eb52UN4.[x 0e=z$}m4F[W6yԃ7B?Q䉒Nƚ y<"*OUsN/3Rt;kq4ל Fr=ma 6DCq%>#7.h~yyYe!0k4l0*0WE4mq,DU_{faaZ >ǡpeq/pIj\ƪ^]Т.//Z(%<"6`Nh4}84yinye^NyZDB2Bk2L= j4>?L:Ci,Ub(`[yq!.ŞS䔅s9}[@xa< `_lujs+hjx2y콿1f̀ǥi#ɴN*ݢPȄ콾&&S51i]8kYX:)Q6?㛓ۇR$s[hY+u^c{Qf.̠5*$G >cX>wQ!:{Q$9j+KEG^H l"j =KWP:}>TٻGjFI'Fmۖ_SэW:Mw_t׺gia`XVgwNO!pBh@Yq“$'Ƕ}_8;˫Hyh,KU4܏?.|]m#ekI[\lһw~GY%~WGT(վΉfcYN04)[Ι27patEӋ|[`ù( %}!yjM_^Un_d|]> stream x][o7~q ux$f d l+ؒ8dVM>}9}$ybFMcYu̜3/]\>o~>c_ÿθ16<@_ <ϵ=7¨'/x|yn=ۋ_/Y'N\\* /_o/TQ}i'.6s\rf\Zf^6 [~|D\{߈!U-"9(%mv%TWF"<>N /a<#/Ty+T繻{ccI&x-pc]ϱ,s-; g_.{(+/B[[Ezr3Y}/ θcKgN2ӹrϸsҊy/~H? 2<#H` 8A=wnT䃯p\"浶}P!-qўK E E_Y~s@:o.9BG s>e4\ڥ(3 v D%Rkm,2yMxdgTlsWw  },Nxy(.Avho`\戄<0)@D> 0JVtQ> at8JNr#7ů0ôV 6J*#:\aLߩ 葪vs7Ul˳IUOgb{Y%J@Jy'R8SCoŘI&vCk4zƩDI0dHpe5,q ":֏`e}&|t3p뇣nY>Rdce*e(W4lSr2ߔO%4Kc+֏RygL<A< ʘ]F$H0 逎$}*APR:KJx`[MR9"G"mtһt:!M($aWُћil@י{)(鄍=E֨#d&QLgt IzB yQ:FYek /ɖt!2JPd@9N:7 ØX+PXnN*IAn/BtѫVF IBG(OC}P({{RV WU4 !ꪾ8HX0^Şxײ(- '̝eK׬y}wZm+ oa6 pzh 퉻ڂcd{ qdY.-,lUu։NΫ::1U}qSBpW?Ct9+ ge$v3UnV};N 25iUܩ53gpPPG6ls7~JL(\^q6ү2 6:x|) TRnrp\DEϕ p~2Z;ߧv<&ϑva9k1ϯ8H&Uֱ + Tiu^5,'C鹙ϫS\ g>9=H rNp[ cU'g,A+H DZMEB1:TLjڢIT6Z>#^O;x9%`ƴ0 FEbżl\)M e;mV?vf"VE֭0 )A3Xkb] q]<Ԍ>D @ۊp-T`tVDzf61T놢iᆹ|{,_Q@=rwX3xO-z{TDfH-Fn0PVwNv"Gqr@Љm4hFE0%rF5c̙7D.93 ;11 1;ˑB? >ֱ}TpN0DFJnxvC2ƂUwNY BjYBdu#C9%$e;Ss|)x`TeSy圂O3SN)n\O<e`%en\&d  mW~1';T=E~LgјcM^Bi[ z&=) iCk<k9mg'ekY=\k2F^X\@D{(e%(^>qjq#j*+|'*eP)eo( &u̸^uv]4%Xk4Mh!9c}F6DUltq!XzG:KyNtv ȶ\t0INwWG'}ޡV?a+H%I9pr~fg~=wPI3l3fSF,M{a ' Zccdᖬ&ke4+_4eTit(qOo\YX2D`zKB,<zˀ$v~Ifކ`)L;]9ƾNؙXuqfa_O?g>vl/^5oa{j]\/O\F,{q|?;*G(1B'% tP8I ߂gNG g2$to=c\ aLwqy?j^K5{ּ4X0i ( XCIv۷^Ha2y'Њ,=ulS)tA8i=#e 9z:=NnGfVw}ɄYQ(+惇! a0O5Ԍ$>JC5@^BF?Ni)'jvJyZr.Lΰexx|?ҏ칬뺜mA0 mXY:G KCz @;WR8|En^I]=ǧp|(O'ok="X;hRjݾ4.5sId_5˴8T٤{)h 0v4id T9 >V]]F>p] F#b -LN υ`Qb@a70c b(;JzʡTOe‰ho!s<0 ܃HM7VB&@jNT&GVE:ChVide)a2wYfd2ڃ*`ƲZ{I0Vw Rz{}HRQV$e"Q[* %Ja7rH0cyUf%aK)gX2s  F:UeK2Zqf5~T- 㑞92 Z&ZdAuW3Xߓ {&zsLl\|mow\S4p8Ep;sZ"L|PW9$+dd=;s.p&bաK<]$8=f Tb8k_ثFj0C۞%U*0f=C8 NaR:9p6Θ Up:4P*M > stream x][\7r~W /yC I2G3h%?>U9Un\ J8jsFko ~)\wk]/T Y Yn%KͼTl R>|)YWR3լ|g+$#]!#`=-4u3Gуg!xhcy,``EP VbXRZ@)vu +&jUP{Pso*U tܾn/M" ZiaJXVB9K[(9Ė%_Ge |9׼I`4,|9/p@ePz)=td{%B Wmn DŅ-QJ~O5W'+Mn&%1r2 nTc! C^w@ J'v 1Vi\5|Zⴹ.7W+?}saCr@RjBD0?%raj%l(mjeFN]Alwۛ<Кvi"ӥVw-4Db!눅WyrݐQ+1qXZ u]o8_[ :*,)91#glI;儳lx/OwGH" @6=}iW;a^켛eQtRM&5/Ra\*0mjV*1~ۦWF: S:`$7 K'1mrtIy1o\ʼnS,IJ"iFJw1UّN'oB:?NGSrV[8U÷~3vuYu[Aye2x Ek'Yqh0߫]6{MLWe-<=d/Iϻ܃zs3 ;_ B4+"ҏ&lGV 0XՉ +WQ5A"Z:^ THdijJ=Q*n)Jg HV7"t l;GPhwEu Km߹(&:2}i)J* z."L#K r*( xlUIGKBR=vɄ_{t:eYeQ'tزrgRw] AZMf Uĥ~- WN>"xhy$Tn鍫}˭a|sS+!itMw8j6ϓR@+f1//HE@_DɩDڍ2,i{ʂzmMb€$ټzƑvA_H6 A@S חgX/.kEph;Iېc~7ڜw 8"8ni$Ds /3bI*FAL͞/"ȗžk;MM3j>~󉧅 {|/7}n1Owbw`,xkQC^R2}U7nJ&E,TvX]\7 6BE}wmH~[_ 3k1"8PUv'Д@9;X˷n3Gp.udK& *!iEF#NH` Ay}.WF"2h'Xnw_cGķa|'s99 60an'&9l0$ZY=,-GMR FW\K;(j.̀ImwU8Sӻ]%p@1@sё&L+c5&rp 2%iGmR3A~ZaD{W;E c,/Lp,HcF Y`ڇDbdncxEdͻ|Lm0?J(AJ5w(Tw/pzzlG).:LV x͌2*|{E@G)kri`|iѥ , ;)= yAWV*DC z1)2RoGVMl:Q`XW .tR$o4QׄtA| lXb](mhY'Џt @R VI1W$IFi =~~d`p5]#p[?RѤ~T hN f= rDGڠä0(5Mfǝ|v 3vu@U8 o ufp+st`?LFlvzYJ.$]|~,~h6#im$$*U|Wu}Th}xeO0ׂ=-T.&UwQJ_z\Ma(h8E!$ [ME>V.KMozGatN Xp JxJCt:fz&6d\AzG'kF5S-,2|ȱňq SJ{*6V܁ r˭WI'sIMfnڰX$F$mnf`ܲJi~^Uq _έj^Rhtrm0,b(i޶ 6 WKO*gQUZ* Ԧ7K@xڛ1q&6\,4k&CzFux73]S5Pb8阈FEp "nrQHotjGx! Ѧ1 $MCbT#V~-P Kl55[[*/RV>-5) b%3DY"ϯ}*Xo ܊M(䋮ǥ= ]Jͬ] 5 r6޲SREv.1.؍)uqZΙq'y;:Az *[𩂍mBaL(!0Dع C{JOZyD8TZIކI A\6׮b4(ߎp8EBR~UqRiLN2(rH WE{%xed)0YebxӹȧmnUh-`G3c * 4pbA>h n*D)6 _ӻ47%EOKE[tvGݘ6^yorb]Mu^X'AVq6cC57! g[[s ,Gc81ݾ`ncaʖ'UxJB} Z,ձ !ZjmivI|GJ#d̝j,#!sZw Bm3,;RM1 [t]B TGt ]jM g4QKvR Dt'dDkb o\rMF _\w[թtHNB@c$t%]QgOow,ZM2LBDSƟ& @"'Ago`]uqa@Ǿ(1#K/xG@6jГu))Phi'aFŧCd'@i}h7$$O~FwwqȂX4vk=h ˗,xǠC&U{pޜm?x| ,A8nw!Tʌ(m\"lS85{d%S׎E<ضuar(O #x"gnN 6J3]rM2cEHտ?[3W#]1>J;c k%ڤk"^3 2e9UQ owRWY=j[5L7.QIǤLqf-=0Q pWl61}jhv,`g3Tżdc: @As!TY3&6ݑ2dAow{r:*=-JژwSoRcl riBRT rC'G6"*ɄKo{d#؞`@x7eOiFW02CNn#eL?Nmļ#c%mcD;X9 Ҭ 0/SBDXK0t$(6|Y>m$XER V[;I|Y?9KMO8ZM{z˶4X2Lw!:+h ZmFa{deyrU)Z\}K{d~W>}a!M:>Kx6y>"|~U}U)^V<)%+%KP P,s2 b'[. i>& ÆB14/NWx3o)`}Pt]ᱲ;\twFirh'J;lǻ=W4H$NFFDӜ%K.tŤB>=g9Phۆ鉎Ń#(zч݈ڞN=WtmJWE^Trs˄{߾> kxŶ˯[|q1.fR ru ;~㳷ϴ |cSD+rRkw[i |+bE~]_S<` 00f^ tJxM>(b> stream x]K9r'v`cװaр,UVu< 2-`l>/dtzf>6o>{ ;gՓpcl@7osm|0+Y;#Ϭbgob`F;m[Ii.SqxGJ߭R(ۉXq㹔fYa5Bh&tH!)WH-PԴZ*[~ձG!w{/݇qBѲ]*Բ{ߵ7 ᰆu սه?I MjؐkA6{/E)lvv7Z'g}ՒK1XZ&."= 'rԹ5Hۼ]Z #Nʠ/Oyr?ҧ]zM:h5|f"B|^қX.m|K3Y3;oO]g5 >~c5; _\yڦ)Fϟ"> GMlJT T8 -%(: !`^Ǻ P@8''VwÍvmIU1"K׃Bq=RaGui 2V}\!nMS~hA6!&qkiA >9M-' H&PI;`" 9iw AX#]nB~e#35 4;-:2hAOGUN c6S8gciD ~ڽc_.2͵#M4t@B ו"i`-Ǣ8Nyw8M@ d]V2v,T⤦me.Ǝco$A'^ xtP3e?a!`9# 0U?BW"@7+nH{adؠa{tqn }4vdWÜ恊sh0Iȏ ܪ6%pu-DL^T nS6i3?P$jJ~%# k/eѩ$ҶCUPN-xr HR8:3?AiLv?kg뀀tY)~dxGPҖ3Lhxd ~ }<8O:.:@M˝.OsUHJU2J*`*?B)} lի#X]S%_d~뚡-Ǐ{apRb{^\AR:hR͙ܿu5ADl9bܬi5פA;ϳ.2ufdR*.V-k-t\݁wsVbźKְs&Y'g?W P158/vh4ejd'Пe%ڷ=r QuV\A;k| pFA&ceq#WBq5jE <U(tVDg|݁֙-pƾ0Kp.U >Y蝖C#*@u BtkGS`&K`+'QҫhL|c-۬. MZh-fR nXfw]`cu e,NH5leT(-<24@^ΔFyq {>tOͿ4)!R=.]<^۾)!iqH"1,L}/8Xf9)> 'Ux0L) dj:.\PW{4-̄UpKx}>Vў]osߒa1iBQcg1On@:"E Ã4D݌棜B"لKmMW&Ȑ'HJ F㟺G4{Wd˴49NQhR{ T4am-ƎO, K2;R.64CbD]'ih2܁ shXGZ2H KJ-MH{ CaT7(L%m"=RzJ[mQWƦ2< ȇ`L)\XsphC\46 <)p'KiER2P.jPD:TFs9BJEJ`&m\ꕕ)blKV{4ɞja#Z9lq2K)Mz&)MРL15挦/L{LT?4R00l>N>$=ؠ ASv$7Y,5̅= ^]8|D ([Ʀ&f," YQӥ0ˠ-4 bjEDR! fGAI-5 0$}tլ5c=nΝHOE9#*I9- аN@a“Ú  Keរ80#jbjlء`Lż%ia<68SgȵKćl')Qj>6a;oh;uى)x!$ڟVH4-\&>WPSYq Ĺ[}^ ͻL:D{șvJd<Dw1RSrpxm6|k!XMLAJ>XAٚ4M':I /p3G_"L?Uha*ⓔ1iBD<9y v$x}SYէf|T:PjKvXU^KNI` JdqZx@@d ',oٜԫGnARVCG؋xc-P xC-`ha;lԭ)+Vl][<E0c:n4cK[נeŞ{hKc4zx̀*Ͱv<+?9*m^w3}/qD=kUN[ic ЄcYmwsi$Nf P.J-rJ--SlZ-AcS3YHv);hmc` 3c]Q;;ebiȊXZɱ/T;~ P,U)(n}+S5+{(,S~sR>aaaP[\m*e 1P"4v >9f6fub[m8vfڨ*qLILͤ N.9oǪ(}WQPG`XQu)tȒN j3v_収"*@]ś1tkE O(l :p^sy@ Y o[ZE؃"LѢ߮^+E50250bVysb"ϛ'gM܈}R qj9Z'}hF6 xgF}- T, Ahi')<>XrS%Io,ظ{F 5!=?J96cJfdD(~DEɅ@/,uob̬BMƻ"G-MygBUC1('GkKDⱃz%PIN.nٍDw;:w,N@cXZYf' &g@^)1tw 647!x>t-PeHrAC{}D:o'yAE |g| n2/c aNt37 Zf A/OC@ˋVGSunz mwgJ "f t7HWO䬡t:5{,Q52V T*hM0Gb>e~M|pu.Ew3g |M[>@p^b&0mӶvqn1y=@ڟǷkFĂ OxpɄ*wh!;~V u]=f0Bild%?zp_Dy\ۉð4 x~\ʳsqЗ\WK6p\}>8rzN!~E6+7X*c ) R&1q='|mԭpU^OݣjIݤ@@91nJ"y UH^`=~ fNBhW}9 Ys,gHAcdN.0€WieCυ]fG/)G9|LdUz]<YR[=$2jk"ܺ ETѯTzc2>15`T9G }`f~n7 uHގ(ٳUU~.^7s_Ս*H)yhW?7^UX\/}f혓GFSf7Τָ Q \̥or>ҫ\z,%?k$?.<˥n6#_Bf6﷍ u$Rc\#A4;n?*o gz7y@ZX?JP*!M[zR  IxmnNqZϨYN*p@9[-uC#p1 zb٨Pum*Xj|XotxÔyiئl3ꗴfŸش榈Uǒ^6 D¿*endstream endobj 387 0 obj 5483 endobj 392 0 obj <> stream x=rqo=6BYZq! PߝUݕU]W zU9߭~;~lߞ.oφ˳΄:?Ca*JWDrVVoϾ~X۾oӡ{ZAtfQJVD]dqfd T -O @J["nDob0% $RCdPR&C%b߬gs;6p}(2kc W!>z_7Z>:o+|ܱrptX .(#)ỻykc6@עtk߿nh!k>jm{q큮^E jM&L>j}ʍ0Ұ6v]l&'xmj?G %Q(vH@`$,n:c81 *ckL[џ& :u-ȩ?;oPG _^2VH@?-°ſ38-<гxWq8e=1v >}^5x&Z|nj; {Wsȃyfؘb\#$@\!3u!niS~=q AmPDF \g;8:7#BHa#nIp $ @P-ֽ3,Y3^0J,?>Lbyl}"neT y^悙j~^ ʫhtҜj؃ichI_i'T4Ϳ";0#AT}ڵ^ ]xFCۏ6,6&91 !'·Zpp'nk 7 @OsH6oSzbcO641u@M-%%`ԃa`o1 _QDX-QR?h=B@Ң@:G\EѨRq>bQ`VK̔YH 78}4] Ε4 n- кG=[0V[]/]o`u(۲:gւz uo_&CC詓 lP趓*bYp1C1ukGPȦ??h^]^e%Qۖ; s(N"r:w]űVZh:feճA n;9+52ye$hcI(|L¿S`f v0^J%ʂyQD8)f|*OB1GB}:_`ahߓSK{ІVr\,@3Ebc2TW,T heMZʼnh2sHGOW`Uuo;^%T3SmR(Y+IA|" u3#&TG0,ǯ@^>mo'=G")z r, 0xɂ6W'=JfɴRi7S,,d>@gaЖL!ב{FXYeH}Bܦ u_uhI0`Ofk */2rIQkG'"\fp>yҘRNG%SV᧝|Wxz#,r'ϑtq &_?E$J&|+NI)0X(0 v%v)zQ,Du;0-̄ wKI$If:0n뽈㙜z:첽k8WŀQe}y )"/ c%{eS  ],eu~;8rL^}M^1+_QCǩ1 \7 O &`]^c;&׶uxq9r;=:-]Wh vќ8˜*~9sgšCXװ5/{Őfս5֠-C q;&M=0:)v~hch.:B; Đ lNg违e f?gC P?Ķ#F?@(tWS2N Ӹ܄q@ɝ +&D|~7,1%FK1(kG1\\"'}r_6l36H>T[Dn}9~zDnԝc6=ۙȀJG,r2q$Ha1ٛQ|,=~_eY*`B^Cޥ]c+ۛzHDų+BM ;Ӕvϓ΍t %0~/AM YLll㕋1QcL-5A04ԂaRW ]D &8N].i)Q-Z>IzgIQ|i+|2nf$ hJh;&U$QQX.&;&~}QRbƸYZIT*hT[1 \<$ap9L^3VX#5NkRxv7 w `' d}@ԷYcpv!8Dy{b;!z [+XU"=tUx˭o7O [ٽ2ȭs뾹ڛ4yñ zIuz`,f$s}\J?{$1h9qżJ9W\!SLpDŽq_Z k&ϗZ=#I'd_xO?eS&;W%c"W!PeObiǙ΁R2Ъ[zꄛ/D?uZ(v u"qtcʞwwDCW~ئI̾ڦ9n+&,uwn6;0e?17Ai.%MvRy֙v&s̵K>F!Űʝnʟ&z7\ 0jh܂_ =@rQx8ZQk%қX -9 g K0gK-ifc"}ʛFaڢ1e+g~gyյnzLD=ƨBXL,) *M&MaJgV`Vg>{-⨗SgY[zz>8Go1̱[GV>bbu11@BxNmkؗqTmXltoFb-sf,?<+AtR:mYO҃.<ՉYK8^_Wi 4I pፕH4TsąTw)#tjO ªH-PiS?/FP;nus~7oXg֜иuS=VBڤ+eSWJ4 J$.k5J`9i>onÌfC(Nz Ƹol,k@O_椗qw80!M_W [RZ/jư/f>L)L>}rJNYEUon r+PS{K.{|.`4=-dSIr_NE͍LP^`nk[L2u$肰C @DDڡ?RTH9~qª#7i#2nܝ^ <LmG EL 1+.^2/ܭKKwzo'պdY-;vŌ"Z/HQ4U`0bڢ\Be֎$(Ou68 a6G=wBѯMgb Wf7MwĺG@B?qiV # $?۴XA[MX@M[,| .D |^<ڀ!rhNXwl }Onq\B| /fA jE R|Y8A~׬,ʒ,*,xx X^ .YCV" P6Ϯme來4W8}$~v1VOΖvcnŦocE ̙70NbA/Poڡ^.8Zͣ{x*л!e*"%pF{,,0.1Xy)~ 2rx$>51+,ڏ"y:5X~Ȓ=|>=ĹZ 5x1mĭf,}Ԫ|X񏱫??)T md!Kz\yo*OސJf[&\x#S&܃xeybP͓zBƵ.c٤j$qw+Gk1uf!M%a0U|lΜ| zOT3>Jq^=h<%UyD1e!=6cCJ+񩸂s2TԠV wp3Tt4k .bھA w5b$i+{1oTtsQ:/0{=䤾&ւ.b7Mq*=mfO5X <괆A=Pb@qQ˴AW.mH!jzity_π `^ *P\2#RXh ƛ%XdFޗŝ)ЯA`VzmAs07fUa쏪5 *")I;ʎyBPh2W w(N<|"n,S1[׬.CG2@q̌ԓPטpۃ ^'kt)b^L4$0b \c.IH(L>#O9I VpީLt^dVqE&&x2ҤD Mr`|TpN4o<,O ( I)qפBf]Ja)fAWM˽bLZ|vL|=&Sj$642>2er+hYcAŚT"9~!b+`Y#S&`tendstream endobj 393 0 obj 6571 endobj 406 0 obj <> stream x][oqF^!oY:q/`Ʊc'm%c "wE[#Q?g{fv"ƁGշWuu1Å|n.p! _8Dټzs!3!8F o^ObP٠m&nҧR-krOB퐻͋z*h\*/ uS__N?d2 _YVy6zrH)2~Y%۫ˠ;ma~S!=_ C2ۛ6ħK O3V"r"FxcZQ;1F5Y.b/5Ssֱ2IA='>j└^4.EPrPiƾ 8 &h7$BM뷪aI{5eE-}K VB$( PQ]!"ۗeO#{.:eImz=0s_ܤ_=' Rqo"X9b6:Lу(Ec"fޫElnAZpU:<l :@@-NGhO t "玸Wz^ô, Z n'eDUoT6.#$ƯGZYr%"$q$Y91gҼZaPƘ"u\z 4:jAIh'/(`KCqyX7xL#G- > 6, F"dt\ic{M< WD`g2Z劆N/_Ц𱾹0X 7RJwPZ^ [)o!0nr5[rCeB Y) -Q}AD؜Bv\z LvCЅkc[\?o'mecgXv=$}&Èfx v+D-uZ^ vaqgPFe!< %< @ @F'<cp'oNLCn@! c&g9||$S:$K୓Fb#c0"$VM"m jf6wuxzi8po>0g欁 4iZMD#ȺO|hf^ò̾uW85PSxp+빸Y 1Z׫}d!1$m؀' I Wp$]5jID^難yni²Z֦<֣r1Jz`Cc?("M3𘜓$d3XH?ð ".;D>Fu4nPs+Bs!'E'aƴs!pr2#ҩ.nݭڳI.<5o_0'ayrV1/ɐq{v~SI8.n A4l&T /^}7)R6w>f=2joY!9bB%F#L۞pگi~Q!(m 'BHYMIM0I/ArdRi9<:Q "*r$ XiOԾo0kNΫQ,H,RVEq1 =6{aNXEn4G57?/%XELP4ӥ6~F3ۉF0F3ljup&?ɣ}_[.~[? ~KrP,%2Ȯ0q }9WIfǪڼ9Fw4InYUm_iv /(>%=mvQp˯{vSOٻ@"K 3 ;JM- / (@Mc dj) T jj9/-r Pa5%bJaZhHYR8Y=4;a D"!`Hop O cKq%RAƩTσcں7+[2.<Ӭ)#|ӶL:+rq$@b=L H@ӑ#84]lIXt,*׏uWL<VX)Qu2hj@tJe ῖLH0al/fRTFS|‘}IdBgЌZ% "Q3VWڔFS(45piBig! %E NUJ=ͷ_Lh>ǜz~@NZ~Ku0kDKqMO=!ݑgNC;,7:%`w*fg aib degAUW<@49qiLH"M:>&Ƅbtt ) te砄TXDk W\Z$=qC.*e!Z 14pzH7 hj@ttB -=y˩Б|C\pqxѯذX:64/?sx Huo84]Ӎ Otx5b Qd9,VXug!;A@;B(mqZIU+1'h #0G|GaL#YO5ѶTV«7ZxmˢJcUsnөnJP󡹄~X;ufڼ{ڕk1Tw7 vzގN4d3¾u%%Nt4~S-%}<,JI/ SܶJ r C~*,&yS&4UQ̊rm'YWGe1eAXXʱ){Ya>:łGG+RDG*^ *f,$t2^1ĚYQP gT\'vv2cܙ`4W rFCй^R?I0`"|Bƃ;`s`\h{\XsU;]qeW 6IDitUg90ו%+PR7k:"bT&wIY].#Ni$V[Uk|$(OwoO;w8DKqJCf>G_DI͌'&wJEOBgQnUY(J;gEރ[OZXw_[?Ovu|W. L('}Q]nF>ϋOIp4w*(1OJ٘pg;/QE5\peKUTauwMh?'=Uɂ0bV:9Q`Cnld0PVWQ9yut| BHiZ@ Wfk5wn:k^Ee9' 1%D kbAdVb8Kw>ݜVwr:TK3[3LQ!Wy_"rEjδVw[.w$r}Sm~;3RwPc9wasȌGQi2]1/Фf,."a~tl&w$] sH *J?տbXe>3>3gTŇ [v~'Rq/.~K'4Ngg(?-aӃ9 hŘCXIJh&YK,45)O'=tYHeM73$rҵNMꝰn$8:_ֳrj^"Y6GTT&b.eܾ2{ϝuv h<:e)s`"|35mcWbx3V"z(e^gM * ֝| hGR(pك\!\V/SN\zEtx[ׅp#f}GRuO?Hxe~E%9X {6] "=QզŔ%~ 2497y8 eɄ[>OGl=Yj#9劌Yp250@[m.A0sG B4ˮK~KLyʙ&#kt9!Jz"DlmUw5D%̇}l\e9jUI{?&UXNJ]v$e\I6GkW5_~EZT5~M$p]3%ޒlQȼI/X?;C/.:d gϸvMؒi>~:3Nmz^?Y.ciubqJtm i ^>NSXVscΧX:qE:t1s'VQMX? U'ևtb;ω eOqbu~?7yx!oZ,K^ӐskpR svDaGt@M癓T{2?hz6VT'&Y %gq8Lw%_{|yW 8gvYrp#ƀ~leN6 ,ڑhOFl.cu.IMUJW^2mXZ N}Ym MƳ=Ly|ta]<\2T= Z+ˠ3TH9=wZ#3q3fǮ ;, Amwʷ#nFQH_gS .lt^ta j *ێdrAdv{JjdЩL1GG3;J`m5m2l抎v-}1G{>/N?L$/pJ'F废ⴒOu!\Ϝ)T#>gQކ?E;V-dg:2< ̶_!6BnD+ L24;zfbnurdUz'$JF_?&ݝ4[bd#HpMtS!*Gi֑r}4Mh1 >H,(&BfZ-DW+-C}SNNc~˚ilyW5t=~I"ŧ}3jj(e-W3CN 5ctG&QC1F4|`YmRgYDn$\s^<@+CӳgI;}cuL 1(2նk]G `}',2vez!)Erj NNqF>oR"J—x+a*Qs}^ AL&fȋwn*GoJ*3 |H[EwE L)E[!dr]wkރ0#>0A6#FcɌ8k4#0i!hwg?n- mԅZ)CO$گXqKF}%1NGCqJendstream endobj 407 0 obj 7570 endobj 424 0 obj <> stream x]7r=&h~ȇw$Hw:ޝ]kYdgfWr0bX{߰ ů  nFc ^BƏ6/\qcXFo7/o.~ڲQ0.oYIiQq@ZmwR(=PjkNV_ Y5BX?n_vnoy?CQ[=pT5C_IfGfsVǷw4Lsq6Zg ^j-??Ж%0f;adCw`0q3avT0GZolhq3a_3kthkd߄QB^D /g^(l~^h0#Y=|in5L 3o6݈D-SctCH2Fi<~Ʉ')E8+nv^8JK3|&2)Fq?/mgF;>SZ4hJ9i itKsX]m{x [aGn5Hj {9p)c3}_-δ)6oOYMbzܝ?EN> bN*}ڬ3b݆S h8* w|J]Q[hjzX `QWS 5r@)dFN TO$@ez07;GNO ICm63 LVɲ'DJXO9B:'lh+_Pyxa$rAáTFf2e'83a8;GXS)xʦ/;nhT}B8QF.t+ O;[@U.Ϭ:y[t ܤO.i(Yv{8K[yHs9 y2yfԿ4T6Q"ϐ< oT6 ]y#cF_m_rcZ8 +yJe<` @=`;'iD A3ԿghF/@۩U%q%:>1gՉsO&2=/^4bv+}8a۹-LRd ҆,P#.eFf? :/bM@4`h J^J_9hḱߓD%⒊ٙEిp 69c6`*PhRB e1@W{ ]U+25Ei`Qc e8"NҷFI'B @zSҡ u`f^+5l]J-w=B@w*'@|Euo *T'/rR;ഁx1M%鸍KU0e}[|Uu GNQ  dL4qфF{虮1JqD="}kA n4Õ-K$6jsAbQu3'с=B2lǕWNUηe \ל D diB8B|4d8<#lj0HXuѰʤK0 ;p or? _5.OPq]y=4Wa`CEy'rc\I"nOIl՝osŜj~a ܯB*iiDtAw1X+#S<zIKQׯj9  H ~++},w/!+ (. w[ ɫk 7`\ ȦZ5԰_Qyi*l*-1H2hr]%1_-d6ygyM&giE(0D&.*eвWƅf?n-ٴ~M1R7]@l=A%^w[G0f Iwl-54{[Y1ya\׫i|M Hޏ~S ߔo J}mi%A8sU$(kr}?f6q=%\pGRGw5V+狼;ؑejYa0ަzRH"@iTrZ S67,g"%Hsp݀=CY;['rBA4ܰ!![~wWIhu˧cq p]8bF鯄*M>lcB"+1:$#;CֵXht\i$cygXHm*" 䠑 P楻1 ]*ZXNP>!W'>(,*GY\X%pml@|u_U 5#Z#*rU,Gd˶Rx"\"KԳ.W"+TûL׵^?t5)7zi?21|٭Fd8w]ѧк Nkh&u?pC X ҄X’2kתԹ壍MXu<,x 0b{bpQ $f{<լ*xɟx  ]7L?2 '膩*@GbV)>ڜйsp`㍸jW``Qۿ}aes.*8kx~;W4S 2qR{x?Wތ]%}FB'v](Ŋ,TJ*rߏq#iK%:+ka8fQ@)n G ~6(%jiU*Mj }DTxi]Jzy\c,jo58$G8 ">frԠٞ`NpԺjz5SJE)lJ?WC1TWSiv(%-$bPiFgSipIuRoVߺS 55!8 gq'9_mq|YTiDil gpH^T8ӶĢI0 1ZHl.s;v|ť:0=fSQ0]IB [Td.HT`-/M;R"J4EpéSXY*xUb:ʩX!NdN[\[7boy_m'L@oQYfh-gP|ؾ^TbX;碋P{I BEբhw{(h0+<PXO|:Gi*dV3 U"l%\➵|?+u.{RL.卭=7~ȍ 7 wWp,^P].yǰN|dg@5΅5/- BQf 9δ:U*zSƫhCK+}Z9SbM8e49!7( ohupСka~:.N7JadFbt Pp^^u[DeC:?aJZm !lua5urƮ1^ek>݆@ D/'a-JaGZ"<4XQ80/vrs!Ւ|1#fgdCWrNxtsGK9&cx֪5mh-`{RM ?rBaPk=^X " pܗ@ٸ,ٵOFp%:CNvb.N#ݴNd懦W]殿RV|Mm2W;kg$VJPʬ61u>$Xr-Nl朊`/T}݋!kB\0ZƄɈR5V!Όw'1;RJ!4^hM(- ^7ZVs. ;d1L>Yxkn‡DJW*wнx7%Ǔ҈1;jnO؁]U /jv*}9m .CIl;}qaD:وFxi::zwׂJ0feZ!0K{W0i%ҔlR9 ?Wp .k_+})%8BZse4<,ݝ'k7NF^(BNp,ÐVx~ͅ)g˴-0ⓝH5.כ&i\Y t{$0XӘMU+7 48hI{lQ#[=93pF:CeUf\_kpV]&6T(n|6ǤzHm#>MV +}N-3rp 95V>mҖ  b9C5-W1р ^cUX{g4sA}>e^U[ɫŒ$xpD㦉E=; : IkJ[t% #v.9M/A$$(VںZx/MPQ` Ja1k)Tx VCy.}n{3|8LgY:oq߾#&% t$FĎmn@V-y}?"[C*gڵI%|ۊ[P+iqJn@[y,WNhtN#@1o+.y\Ǣ7TQ(@BV6' 1E[iyQxр= 0y1;?P,O w\NkRsXA?F}OCon8erkU=?MEK;#0!ez/*;78~ǤWDf{%w澔L<.y|R>[h<@G.g1-"O1dpa`y|lxb{{endstream endobj 425 0 obj 6349 endobj 434 0 obj <> stream xNNעX i%3|;y0!z͜?!: )Ko jZֽr\K:ǍkCz4Y8q.s퓸u3 ^&9k8c ABnM+M9C7@iOH6Mz2R"!^i}=9zBvwdy;SdmVhmbE=N}\+57#e,8Ny;mݞn.g<4g~!l!]/00n?|uO @C6%|@P3\&'rOQ82.ƭi^=.Q&ܚ/QOqK ; g{y!hK8sc=I$a?Nc)<Սt@I8@34w#d9omܤE,moX8`[j(ev@ :S\@\<™ދIys $G{c27rsiayځ q x) >v`?a}[gT ĠX-R B(;+- БWUDU)v#mjq$4bۇSPbhxo ZR4=9oހa!u˽yMZ5 Ϋ̤9VUdh9Ag(,Gt2gaZ]sXx6FaH.(B{,;B TPu@`J ZAjJLڠo2c]6 z>(;O(0]zfxKO>G82rqdjamd`=Dq;Dd$WjQg9m;s"J{хödd>_Ֆc)%ǏXz$c/rc.HQ`<ݡPA^ Ơ6p1וK#T/~I\1r:îb繙!MY[(v^7=O 2K0CTtB`o=v=2}_]iro`^ sJ2 2$$&gO 3eDĝRM_ W6Ʌ2ʚ沍i ӀfmS %Y9&X=ǀ@)Ddܝ2 {(nm~FgmtX[R˅F =RRl-za*+>!LeĄ» h_0gCDc%b/I:C;&p=nP IXm k1T!@@}I@]be$Dႁ ^[6*rkrAN; LՇә G,# (6'xsiRkk͕R0ee֤0#z^v*J `MOvO^VŰƍ,"B$ kZ6+OXMM݇T$C1sTh>.]{%L%gSc 0~),m5˻2O);I|a>^9\q~L"{1 eɀe{]0}oC0M MjAUP N`D0sQ0EӁ{ʸ#4kFhq*šzlnaL~ȽhgJɄpZd9d. v!4 ?TP |4h{f/{ʳ5e]P6]e/Ad`U 1ŐTFA@k)}\U*A΃& ? ۢ[~wSXJ^DR QݿP3rìmi7؅F1<X >Vb",(0B)3nIm H@~n5R60 'dGD#aUFK3(H`G8@ 7xhr( ILB\I?/'pT rFնT<˰֝*.W!E27h qbV/ZT0ʀLHJZ#j"RߌgB. ,zeQ u> b gQp‚% m#t:#Hs(?1&Ks$$Ak -t3%jW 70>m'^‡jME6gl[0,Thxijy̆i;]-qJp궕(. I_/2a) l"VM]03,2d. ԋ2:+抌H*rwϱe]${rҶK59U{+5i [o2ߨM9H[Z;jRki+/5훙ٝ;Wr b">{;8*nANgBQb7^َ/p/Q &UXIKIJpD7I/X8V36h\ i1ҔK#I-eBkiJ6_m\c_\]J#7v}v=5+Ll.;s/z󪹉7LpaIKn|~|^׼nV|ߐX'qC,R~A\Lj%r/+ >f{˽>Ͻ?}]Ƿdwgql:NͯsU3B6Eq*p>oM|*6?w_oǒygu&X.^;J9ˆKnR̕_G@?[G3^GbM(ցZMXmY v kcy{>_!cMvϑ-2p>/Tѐ/A4$p~B$q1bm̈;k[JNbغM[S箰nBR \;+0l`Yoe8[% q:NF|یkEE(&Zxa h/>G쪪@'C޵/u,'Av%m.'Շu*K Sn!YotMA^ ʮw!D6{@ z*[іpfQ(c< %0H-$6 Xgi"2///<2J,"+r/9 XFP-k_MPHk+W+YJaH#l9{`Za7GW #^Cƺ.B4$)7`_zu*;^i]!i%("Rd.r mQNYۏ0W7#q.i_;G(pȊrZ*q;GngUWuUXSʶXokm/^E6*䂌t#}U31$TC2L ^mTL/rC@Fh'i"]jU) M?o. iu,]$QQPen[vtĊ(~F5ϺFк{p7~svN*iK9Qֲ'XT>>9XSI}|fAw,6V%7ZThA'>zr*4q-t|cE%^#?Э|zsaA}Ȫ3.!u*kIkdȽ;Iovs3ǝiDB >1H!hz(PG)O> $ 01Ȭ!,$б"C[KO{ʭ! C!T[ONf?>7ܼkz]nޖO&/~^HPg{80" ,>L$Ňb D,&҇3SkN%n*6F<Π(:3M\M({ʃ8GhKZ1"D>I]Q*HH^;^PZ4X8@84 wd 4R:<X nΥaBJ X>]2b0 w endstream endobj 435 0 obj 5825 endobj 447 0 obj <> stream x=]o$7rySf6?l%w%\N"ʹViGJc{Onx cabŪb}z:f ׋7Ol/t/a޻ܻ>އ{_>fFtVװSbzkC}^a. paıNzeZ\],9,~[]hAH PD{ dZ#{ l0텅a g;&ӧ }ZnW~; Oyn(K; v,{莬:kGAJILHIwܛŚ. z* */}rߍnqˑcTB ??S/ (x\i 'T4o]ǴsQ|e{ Rs9_1SΟaΟyk_~WTI[[KRL)ˇ[wL \p jB\gg8+ lg2bMpgb`:aow2Tt5d<.OAs,5] 6$u jG [Np=gf ᖀY s(@M]y{L/uA έPRV6U"k wު2g胟^ wֶs`BkX8AjB9c% T;h-Au'S:6pXn`Z[Z#;rBwmx-G+6+Dg>p:O>05%J)0ߴWT% v1sLF_;*n(LzCe88<[,; ֣p>$k!{|iwtd~QPu၍=ۯf:i'.t`EDݽA,/x^@ny`P0ӂҢ0٣2L1Oqʼn{Qp 29!` 1Fh@hC&A0;=@H|aWlV-z8@\a7 2 j?Ʃ؃0s\ZJE%ONZJ.+[Z/Zw{ܼm^϶wӄd?4}?{}n]nn-17hX'ꢶSzUה/uz*z[xAj+%U)9 .(x)Mi lYJϠ`ɤ33qZc uXZym;Zˡ}N$2@g̗F sd)aÃ^+TPk E-Y@1uԤؒZ90rt\X ̼89W@Δƽ^aY# uA(D9ډiʵsGTͮMәa,c2~,X5%Նԙ(Jd~J;fl 3Vlf)XT(^Vt!+9&%'DlrFeI̞uQVqQ(v2Fs~+֪2 ~] Jp8us >jZX"ްaiK5/dۓX}; vGa1?ߥQ³DޞQq?g }Ѽ@[i =%ji{D$ln{-`PY,Z ,S2xaؒ_Eܸ_EMooG巿FkQ;e)@GAw.?iYY2*$ ?~A$5#P{[Y޸jxDLX| 8[!blO3$ L Sso<=$_&oY_T Lrv2}$0 3 s<;X X였, *譙trR&C)͞hiBУ Gʗue-aU/n@0*c-IoR((7<cL`NQk$$\%je()ͅaJZpAnx7vЕ9F5 WrW`-,:M-/bw^~:tRl"k\~my@.O&8; %vIqԾ Ik'E$E o?bXby⡈? SOY>n @ɐH4 /-ցSŭmU]>_hÂJFf۸BJ)$xV2a*S}ƪ2x7=|s=RUfHr(?!X(6`57kIZ{䗅huf %ge"΁᳾ZgUͺ\k8ЫYFE(M׿ͻZO5'yvH$`K >X*K8}-M135E神HMFds|U)H a(hI1 b4s;yl =_0NrOf9Ry!^p쎃wbV(_@Vު4SB鍇/|PvwLknE6pKX%aFia6E3ʽs ZBR ni2%RfV Φ6*si@à= Gs`Vկ`VUa>3@P4'ûz^h)SB&EH{`d͋B4bMaWg`#i- %21Qau9<^GkWU E<ץCBx'`XF{j酂*VWDS4]);Xf / *)s譄@0Z"[|'Vb/\ŷ뿍;tZp!JC S!Z0>3mcrz|۶"Oml/A5!$7m UɫQiQv~e1{J,~Qm@H䓦( ~,,ZNXtAc$%ŸŒ?џeۄ :vqK/D`ꍠ42q_] s3%tn.xH#,Uz% XO1vNy=#W~c'^2e OF`SpͨɁKfDԐ`(Sַ;eC ͜ :_Sg_Pl#_L;g|:*.KMD4ŦOcX:o(H U ޢrG?e£(3X~h{~_ wDVUJ <+jv)lM$yض}&N-N[66#qwFBTuk=>n3&Bk,/(Ͻ/31|FN\2JּD@ê~+iA6aR>K}V:p {l1[3lWn*N7=@}y؂ "8NU(m :q6U0?L{p3yzS fJX6D~3@JxBrXʦj4A34ƶME~Sx3OQ=>x3FU({"FSepj⃠`jo`| x!v2Eu23ǺTm>,3U]:JC@^~59f'<Ź+u<3И/bl~5ʉ!tvB}0kS8գfޙ cz A[%/Csh9\44[7,xzoݐ$OK](KGO|f~n['TiO ,o-l 81Py,ǚAKvνWV*aA U_Vr/*.dU O[#iH Qk',s|3{ͬcd<=7\Uc;P|5}%:65f^ q%Mp^|{w`0텲?_D&\!:Ծ  S.4p\nhʑsZ >TH ߄=W6P'No rvwHt2⸖@`F7(,\]0wbD4^ETy:nxk|<=9e Έv6Y4us2b 0!ex?&.xa xGTfݍ-2U CC5~oGP5B枌!. U0=SCtHc*&6ZU`XLGXI܁@Otf7yMnR.7ɒ{o~&7sܼm.1 fJ¤s]U|Cgl^5'!7?,A׹ɛXg3cC5q{~|*2x:U[{ύ(dtQQ`0wlګevwYӎvyc0/aendstream endobj 448 0 obj 6274 endobj 452 0 obj <> stream x]Ko$ }{6e|?Îkb1m>TU-ɣ.մv7fAf&Lf$ugdQ$ x0㌵?,ޝ^ϮOnZc sϵa gVșUvv)k3ډfqJJ|ssRt.j͇N ͜4 O<677XG!ol*u./+fZ9BV["Qrl.l-[gu{H~T_ L4X0Msj< ﻩ~}:KZKU+GJl_׮Y-cUUv+<4 }_Bxlصqެo)3U"kB0PA:n"-26,q{3ZA3t׼GɭJã2ZУ̊Hw8mc[{)5 u? U2 ?h ˮa\3H^!}Bfq/S%<{u!W=&)cN٢E>JBV:3skrWyy565JHY`"̯[ ] L n0CextSm*I؀ދT.ަGR>=i0S$n`iB[FFep li=զ x*К"x$ŷ=uY@k1bǰ# ߷^& a-.)~ =sX*V{QK9wMLI#Ld;|eLR0=q.~BRү>a `Jns>ӗ%ΚGPA@0Ԃ  keH&f%R4dR3*̑3 =9w] !R،՛u߹,IɌ-\j8g&xxhXʁpv5>vgwNIRV+聂~j3C_MEjC"u/ eX虯8.sΦqf<9S/~) "ouץݯh5U;4{}:u0`xHTsp=DnM+%4kG$pT4T::9ͫhZ [̈/IPW gFt`Krh܄j9< nC1艠jλC}bThG~&:U~OƲTS ^ZY I>+f*Djy\_-nޟm[Bg5O [M\")ns"VXһTz[D݆;b~J 61E0 E 'S Tc,l\fLPv+B|k}àӬɴ"0 8ؗDRz@uh\3PqX/K0VՃ$F s{X5+I^ETi'.vFô>t0]l;:D{~, ,hЃslܙNelfD;TwYR2 BdJl+B̑#F7"4z׫ŪЃ'4ڞ{Aο``nrQz/)=eCm">AfVU*I,צ1I{}:̮PJ1#tkZ=1z::f2 l6| un6A]ɝ;qInp2U28r?)T݋XԮ3pzJL_5N󣮡2QFXh^>ǯIҭCT^l h6%RnExqGJMg% $$ImPNA< 0©j޼]ެU7 m?wZz0Zܷy:FurEC*˺Ϡ<.R[Jw:LČIT**TY-YIib:2|]F)jLs|.*qV P[{Ve e) ǿ'NWL'ǘOI4XAxiXq@M. T"q}δaGunZT?[rjLEg(#DMqUڎ|>Ω'A IG,(n`tSh4w-Fv~P'Wڀ`^ B_iésݟumn!jZM^>PX]n] nʛTw u>2A#ܡVcZ2qՒ}Ilj/_m#XZ C=>rbrv2vP7 '@,"ަqO^U؏ן{ -#7B@gp5oi MP p:y@nsimJ=m'gkPDHm>l0.M!] g}]LL\Iܺ8AB/jEm4$U+80Bܾ᷌Zc!'cQӮ(几Z9O<^>_B_wȢ/^#V }եl664ڎ/P2O$9T]Hmv02ӡ5G.1|{nd4g`R2_d.@>櫐LT@NV3`K'WjXznSi~1&K,(Xz-bU-ж B $+ d9B_X 2J]Ϡ&8e_6|b:I/*_8Kh2D = ]: X K|S( hOi``DA$8K̴ke VsȺ  h#ߦ]e~_?돑 [k붊`-,,f#?nZe=O ]u}]1yKq^jfǍ{`ev#2)AWZpb:'OGTH6BjQ\ge0ا4ʏenCܷߦf;G65{j"&No pbiQN`s NGL]ڂ"kAuθNO|vm5;.#fb$Q=/E,/ɘoGQtvؙ`3wwϹQHuK9jYg*KƎlB$'nu񖗑fgxh[I vV]\{( Hu/&Ecc]+ XF=*̗ k<>Ʌ.I8vj>i`P=O:G!SIۊ &`\3[g{@Ym8:S3Jn2v1>p[XZJBn\3*\׭L-@'bl sJ`Hff\n}o^f 5|vmtK+:OxߌM)QFr<1Dή9/1   }Njz [O&,e#A$Ki RpP,IՂ21L'2&0!&W3v}SymƆ7xU{Ħ%[&(V6oAi/M)x3 u`Ȁ} U/*Lx4j%wvON[#mE=_M^HP7͗g9ҍ;sb#5ܡ춫u.>^\LoNVלÖZiAҠ`ߴJ(DX $Jp= m Ǯ^jfu=j4BEl~+Gz#&wLdtCsO:@O/#a&'`}H?* e`Gy0MqHAA;2iJ #gSK]'bE SAjFIbFP@1=̆|G8ELus~~e%h^ȷpfh㽺[+'/</瓻\q35?VIH OgCCWYxЏ'icukGga^wVAH'ܤX_, Y#HQʏ&z[sq j5X'j9^>kqt)n1mXCvOb*vLÉ'^`Hvi|x,ѕ>9Ozg<8*:s#e^Ĵ->)gvM%j,>!9ǤfHTeN̔ȹT#ҷ ♥&v!LFTrWݐ>򞦺_ǐ>׫l:B~;,:&Çt![5-\HtJeiqoh?S@;,N Nc"de@.qXҤ@wdB3WZLi4 "ҕ{xhKM*q$-=doxY| ,=I41u]e!XJrq1 u|q:zx8سvڻѶ[K4.O}\&G2ZM˾-Wj臜hPmsRH\qڷLyMzo%O\#;n,jKt};Dm}Yn A3m0~JBɳP^g^kVBpBLGȃc6j?V[V p")n^QR,j1,FWz Q݌H\~^Zʶ ?C>!ۨBB5}'%hi^ UBe]EQ-!,D\CC,xanJӝS_ۯ:dhC Z*F(?5p+. *wzLx8J8?09-~O* (N!P-oR:('ӊw ]+;D5bRk!\H2qYg$;MP` khV|`NqbkhV(Իܘp!4h -UH648_aT̀iɱ V:bT ſy{u{wyq+W,Hf1L 8 %Eҡdv4qY)%&}Aj˩Toc1Wg82=^TESTQWg Jӟ5lYB: E@+gb2_`2SS2YOZ cO{Tur*:lϞj.qwjiBٝ P@3Ale*Q`9̳@1VN2\wP2B0cD**#JA.S!|c&/ ӋЧ<|"iױ&[ǞfG{OrCe *JU]X#tޕ:&[-'7i\&O0}Dž+gy_>S>ٹʄI0L] J"UH΃G)6ΡJJfN C;hgH`oU(~GH쟊GrfNZ*Car\?o'|vs"0 w'Z6=ɏ'2!'Ż70z3<ն:%g0enw5  ?<8Cm(?`96Ҍ7%|TGqQ ,躩r}JR7SxUs?t}<# &ow"hL06viJb@w4rm}27r<^ڤ5.v+g־X:r iYrW6/\!21Nl&MUr*I8AR V,endstream endobj 453 0 obj 6504 endobj 459 0 obj <> stream xrqU~a2Ҏq~SSC,?KJ6I%%O703h`0{P,[,c4}aZff ?W'^pMk~/f_ԙ+'`N0/}c ΅nh~{˕WNi $n4/UJ)mnC"KBJNǸV9|F`ܖIl囌vD@oߚúɡO8ޘpqؾJ2h{  `3`eЁ{pfq|;?*4+CqـjyX3瘮2aaN ַAXd=_ vUŻ* Ye륢rwM#fJylv2ap68VyG‘*aD|i8|r 5.ppB "E+0FOhlF<& hq$[å3qQ# /[TFJHnNȾ [*Bk]? Yr.lZ ʁ[Ja#p"(1!g{TѢt m9]:B,L7c Jf-zZg lRG:U2tۮۈNY :;Y"DȆVS#¸4\XZY3&ST"(MnZcu"ͲMH}wz0+k댢0BVy϶/s *t&1@T;\se%M6*X2; 0(+6{H,E^w1=l⽤yO |v@" pBE9{z*PFJ9JDec%? ^!vӤ[ \7(`-Id VVD; Uhi0Jr߮т䥢Tug  Ej%Z.:\70:':s7z6t!J8 k?X_ZX7A H ì_|bsޭt-듨TE7ipdͧ/^Ƹ@qx~m2v҂H x0> ͷ5ͳlֿ "6e@ 9`QK> P܏?dg;e-奌£j蜧Ӂp?`Q-D|@ ]xtg ;wDr1rNJu{sH,vrSe]a 6+ sק6s‘1I_vT9"qT"!2w|L\̾ŽLrrJ㊅܍4}=U:SC=L37 Y)<nbtڣU!ezȅ<g> vH̆IςE]:!ј%XFR^e+_zhA.9'&B V1G0)3|%cB;oW‚(ؚ.>gߺVfc9 zZl$7Cެ'd k5Wa+HH5p`<~Eza\bèc$84%dW*#LbZ>6Lr8Gh]H=)'LV́15Lt:i`zu%k]rdE p׆FC0%D T]ιqN!F"DeX^O?b3(̗}>OfExA('c <1͋H<%kbK ![IZٗz Fp o0$JU5Y1҂T]=(Csf}W<υsIb].MQldkڳ̽9Pv^^&&q^/&z&@+xڐwWr*ܳxOט5媙9l,I"ʝͳJgͷ}ֹ*֊DX2Nd `fZö́sz9I]7d"l:?] :Ă9Akйe <91U}g$};.HnY#wUme-,3xUD<Z2]^&ZΉMGZD/p7, 4Y*}i'}|̱EͧݕHD57!+R}Ffv {6V$x]cǩbwroYZW#M r"` Cy]U#'Je$!cþH 2Ʊjڡd8h 'bK*F$ \)(Ső;\G~T0'^4_kZPR4s*z7@ <4߬#y%3Xo<@z3Q%쳖IѼs;IUh},!ܳ4%\ |8PNMzg}GTIi_(Dwe>W5S>/8Iu>˭v~֜n$v[VWXQ<&4G=.tEA}ۑ P IDKnFw=MY9vk@+U#3еf*ڬU㲫(Z$NȪ+^3vj P.rSNZI e1w* i@)5v;Pw0 /(擉e^*u|e4}{X-4e%aX]#b9elHu{ݖfɪ+caUO"Z{&8yY؊VS!$;]=u^!,18% M٣J>@ZuQ - \In\$, uKa )s"bX nɝixAD4_ṡτtZ[2t [jhSt\$ThC]QؘʉaJӞ‹qE0~Jgz&-l OQ7'Sv^”ݑ^ql>W?8'W;R+*56uuz,3>Q~NSL:Bϊ[0X聗p@'EU*?TǗ+#cgڣ0(gdE򼠊0fW^ӠQ29N಺Jp;PY %8vd_(kZwSy:>(m}55&EG̗I"|GD\?zNV%_ 2!o&!E wGv Y}ea<()N( /eR7bpH+nl7_]5.GVD+zy,}UoIZ:qe^Hu׷f;TSA`iaɷ\^9AL9egھ̳}fܹgp^e\5 @~.g\ɠgHj[p^E5訾 5zl8D$gno$ǜ{61[ q8ŧ:0R~=}~K+w*c4·fu#8V.Mfŝ@)?6r`?e0ԙS,ި$b^SOXUmQuEc?D0@f^_`3C qvu"#\pyu~(3n%>I:XJj]RX1 nYl+f0:[Dv\l~34$~d])Nzx:)ѕIF ަݯyY$7n |)+mH!W Q9>7b H@}3Cox<2XP3-Tt $2`O@h-&Z<X-#y>}VYwnϊYmӧ.$gty5v`K]i!jcxO߮` wʷ@COxc Kmfx na3`w-`C fhH0d$cl^!dU&Siau;LX_%QXfLj+Wlv '^yq!s;ܵPq[f( ,Pq[M\)a~v..n?3}8pN*,6endstream endobj 460 0 obj 5185 endobj 464 0 obj <> stream xuۋ__BiES\\{%s 7_֢S٠V;6Z{W7irEZM]}(T YuyXn%Kü7l4 R>|iU;az\EH!dG_*jڥ6 }zLi_5M>?rqzjvݽ>KAIoi+7uk|(ޖaUلu]~qD ?e'UXگ :b~ }ka>5Ρ:" %WYTq c zrt&8޿/ӽ^o𝂭פgBJw,=O_'j2i|tp >s2;D r7J8ohX 8Y h@&b4 ߲<䳧}* G`K./'_oaUnEc;,F JPOIOaBH0PTMrgJ)eWߗTA"RΪV pAH\K 4Hԕ~;Q@o{ \uqWaw ~w :$\b'/T' ఈaW-5 8"E>JH}~}vRC3].*IO$`'SO2A*J'M1rfIX(@$Iގ"\i XQ%iD~݂<0-H&i˧ e$^]mMohaEm0-z,^#q؞3*==%a`E/NaB}P0oy`xo&3&Lh0 it 6(炃s̮xaV5N#D4d"}IC7$%jdoAuނ}~SP 3(Tcr}( .3#Eu>?O]p9,Sj8B8uO@^#fGN6-_,v.tuPB׍i7w_ywW& UfBTFqr=(6:BrPb5$Z*C`⒉? -j@+Z%$%l{{[X޻y,#P>oʰ~e*cZ{t1 C<__ʌ5l׺.Z>3hՆXg ]MlOeM4L2O혅(q#Lm[mTh #3 U"p穊1al;0 c:M}ylDshuG}niÖ,b!N n"MQ)?@D_+_|GqVB'U'uQED2@ɇeC O tQ%0al CfL!|֫ohM*v؛G.]Umj@_:* =M!s2 Xب4Ow&Fp'&lݨy ()ƭTROZʲovr & u(8ɪC\wާT5}W~ Q4NUJ?Yi0Rʏ2E),?NJPUlLjDHR"f𪒮h!xNGjtK+|6Y(l^lڎ14m,. =DO )v,Rw&~)(]i%䪴~>2.E4F bȍƩVHs LdEyheF-s^@Ä--i,\t9r=q=/+5S&ϊPGWMLQT8zo6fH4p:lNe%[&RPz_ZКJɣ-W4 pbos}r 0뇑U3T~W/"踪ܗ=4M!?6#LJh%r\S2*dqY`0b1uoLV\ܱXftC5мP8φΈ`+"R?x)J8XlcM%F9(ir/k)j0XIѡg3k[&QsT)jm, L^vl@z:ʹ %v=RD@Z]SFLbmҥm·{ެװşVJXd8LwJDT9B fܒ,Ρ@ STxˌPW<|``R!'KD`Vͩ0BssI 'xwJ19`4j"%Ân2ܻT 7T\ue.Fd7uvq͋cfzVb =}.#!1nj/45#'@΂,p@Ub:IzI?e8a}V]Yʰ10+Dth4z]Kјv}/NcGdFFۨ%iyD>$_@F*M"D6fŢ Dw#-TSg.Ϸ7J$J[y)P4wU_i*7],3Dfyƹ@'q,\~YROLN3jXù%e1tGEh,<յ"Nxi>5rM.:b8Ph`IgbnV[XpU/L9#):Qs[N`OaD '˕[()N^pKjR``[P:Y,8< 7?'eXob;r)Jh\5}ZMuƄX?bv /BޮՖM O8Z?ORTHu1 М@wB jBFU$dK|>j6`9a:_BRoX*`ʼntF/rdi9vyctK8J<}L!{FXM /#ί{OOXiPޢ8U7cq'\[*0ꤜҎ_6oozDn/Fc1Qah4Hxfrt?  ]LS q fQMEN)eo0.f]95I$NW  mBb3wFN tt&9n9vP A%!:4tIP,h32}n'T( K*&-7dqtFjA. Rq fFuEiyHy|=Q4~ɽ/<4= dujT*^ *mFK5j<Ԧ5v]Φ+Gu'}MT i3Þ`LUӳt)9#:Y51.bg%˚z*J\s\&v4>X N4eC$l#OHf$̙#;.e'pYAJ #-ƅ.H O*0T  Er'ߕډy!PqpjaqjV?1y^ϊLg'k8Y:`߱c\9&b? ,EI.ըRaq^_0`!iE=| X*9&.,go2=UR O!_j}]ZI(*~j.,>W:\+߭kk< Hqb8}RKh{#QüAN'dpGTOoD\g~_beulm H`ȷ$&uZԟJcFַKi~BLFdbHOĜGuf]6xL# HR?S06&WzZ?KR-?;^L.sYSb GVWTEs4PE̼ v?L$X5HeE8G+% q/Х|1!r':ͪتAsLMv5A|Y}˰oԕKfS[zжMlu?]Ҳ)F˭7''4TE]c,.摼#4K1;6CzY:g1΄ r9Gc@ҹ<p#|^^iAaGC/vS.?xC3np9] Zrzvm=s(|@ڛ|1,^]Rݞ>H[~.ѭ}UVD^wWd*2zx{T5Udj&/JT醂'_#fFؖX|EۃfOo礨=W iendstream endobj 465 0 obj 5661 endobj 476 0 obj <> stream x=]qZ~^?yָm$$N@3#"jON8&lھ t-d]$ܹggM9OCiySΜ?u&Ss7b7^I glóڛyFJ!7ťfrnXSf3ׂvY[ez͋yfk8qkχ}e߁^S/._C2r i&wUVi̹SVks/KRI?!1v&}6W鼿veWfTk mHf:?9bB ݙF Tap4<;ߴxE1Ŵe_Э~ޜ텕0uDDc0;z68Ӵ򄽠J**+*͈ ˰ W Vۨ!y_1  F5 x|Yiyg,*]Fu#Y+ͬF\N@tNUB?' K\ J[s;)g輖as&fHܲgzFQ0KE0pm=yǠqNN>/!P;/`'ӚP1osdozsڴKgޑsJAz[ĕyn[0&OmeU^sԄ4gH `+xovHSh_\ɬ6e}sop`;I-ZK>ŒI>Gce·7CdV(ް!>;B}[cTG4膩* qvw/9yA;\#L ;2]ȝ 7ȝt**0/韤)嶅ehHDPK;Hvq:*|i@eFrNR@~aS͋Wm߿{Y '3?bUW8B2f[iu+@GGƗCY#QpڋR3{.fr3cmnف\(9OTl?-(0z3yUg Ͱ0?p~}LO4;38|}F;5SP{UP#phqinN0u ֣f)OG}.`TY"ˠ'aWЬT?N*j l𢛔J*OW*ӍB* tR|ŬAl`!+ʖ;7p,47Nd(AtDL;$9c@te*Q]d9`UPH) ^56P98N |öin*Xy5?YԒM̀D{2-*3iAe lJ-OW@+1|VHPl-$4"T; m<> 7^P9q7rd>|gzXQsym[DҖ zH3-bw V3q{/Q5*PkZ=F9ݖF$%txyBte\$ͧB, IrȢ=Љ٪s_u4 - i <*h//$6|/ƤjBހ`+/ l0't |tO Vڊ) y'0֮)=tNVgGQ$<$svmadvmuD baW{@!|8Mk` Ҷv pRZyhRr+Rl20sa+>@e̗ {K_|7 sA=H@l=$o+bNq9RȟBS@a~0Bܮd:~GA W6Xϩ0jPEp0[>tM8LD?ʟ/F@wyf_g(I\/r^ȱமWu=گjڷu侢l\9՚eVA4"pC3/1ˈ! 67 OYȘ'F+Ŕю!5dȆh[wMO,hk:8o_pҨ)gk{U]5Y79}N ͎%+AKZzs6$X9xGz?(pf-EKq xx:nMXĀ%}8.?)YEn2jzD("3+VelŇ|"d0 "_H`H`ʸe!88KwUIsK11aT9 DTt0ٲ'Bd}˻fLjy4ePyM|p=5\]jǜ'ќ"4'[cXW*,뎿"F@OLtrQK]š#%êC4>D۞"^x[]"j#JP(D/t֣ y8$S79ă=P"`d :Y&4JJqorDqkl9Kʊw|U @mo:biXAe_w1F4]O߅N{h׵zNsn<4Nt)/5MDV0#*G 62%fE`zXJsAD^i[hCrPѡiVPHPA &T(JKBcH:P'Ҏ*Xm99XEq4YVb^ %x++}IyON i,&sSMJS9'/@]Lҗ< ~`ʤVXs25IT^TtC<2U89DLKȪaO.MX:{*r-UTנUVf`sWWy`:/{aGz S1i 'M+0Eoeȉ׈֭Ii͈DbrQSa7䒴AAӧQSTj3q &N mK2u$籒„_.FNTvG4akˀmw)Mi@Ltzr'%OBmf;]\@;P'x:eSyd͡>&vEe&B. PL YV еHcK< 4<:,Pn7ϦUbsrΈ] dluwuBJsrH Ex%ֵª5ᶯ£:S4 _HSR`\hWZ xY"W,;[c%B ̊~LEQ0~yAj v'5ilWOwZEĪ)VS<4a};7yJJ[ @RE+ѩ#YЫd(,5C Pa)r~}Qk:SԃT"e⤿s!Ʃ- U1Z@`CA%L+@U|W*y켕]hjm҇ %gu@;z+5yW>>jErl~QBLP Yw-^8AGSl]0Ր +b~ݛ%M-#2&3)=*ۂIx?w6^/]P 3ݽLu07zoi \YY۷DMrG ٢`i%$?_Vݞ$&4u4ȳ@rIc"@$gOC岣`CRݍL6WoCt@8VL*bMBI0.ݲc(㹵R:3 j7\GA# fn߇$[,ҏdYe{1.`BxeTJ|`'t1yG]A,r: dn=2u@^TC}$;0G߃""Ay%DaAufK N9L3}2 guc+N< /Ō2rv)TN|ݱbEu`rkWN,xyRK?#G &rO-~m]4ӹT v- Am(V7ؑҏ0p;;Mꀎ؁FyGJnwҠM<(+OV:[fH;c~LK y/.xhE9AJN&[{8Vj 8 bcL`Ҥ(eh2. q ~Ɨqy5 4'qsQ rW6.iVW݈n׌XES۩ىH7m-<1}mCOId4)РClOk+7Y+cA\İ…iDz:no>sڏSŚTvg]-`9dr޾K(p`L4_%y?7LW\8[p.>ad8W` . o˅%ڼw \!5ކ{v>޿4$\eb2G`pHkkD[ɉ"D|.9 ǮD+˝ИlyjO!>(q5;tM˫(M"B.f:f,*OI5;t{.[0h.~EhNq& 90&b#:e$#bqx|nO"k( x~ g>Izᱟ-b/&{)Ͱ770uy/ۏP]>qݿr}-0JZA["}#0>`Vcys CxGT;, c`X$ ;1"=l"b˅Ï>wn',cr.ӆO[ t/JնqbrrB{7ɜ,~E)!+jEɲ6!+0?X*8|>R"K\]50$V=* s="6g/99 =Ăa ~Nc1Kg?WwyPbLϤ#ܴb+]mʅltWf1Ys!G?XR-TЁ7d9$mʥ5:&Cna?YJ<%5sT4v9qS~m9`# V^DB9trk:B|2eRi`V׸/4> ξG_2j5sЋEoQd(FiFe6'bu*peL]|&:b)ڳQ$zsSo(tT,*@up:P舜v\wN­Xr<89&C۱$Bb?9L5m.ݼ g#:}h p,6'N @x[m +XRrM,Ѯ{{ut Vv3Da}:jk&f,Ag>h^#ъlüpZf?J>eE]IɭB1k'QbO}*}7Rw:C$̮L JMHGPCz=+!|| o^y[apwþn|i$D?'uj$:+B(zϻtmRw:{ *K}F=_wendstream endobj 477 0 obj 7333 endobj 483 0 obj <> stream xc'cC=Sϵ=7¨ӋwbqZRu>Rj}u᳊;# "wvquheaeVp->lH.uS@qht@{ *Gja* diCX:xC~ox|4n9[h+%M[.uDiV4u]-{"'HDtdtfy]\cu'+D$ <ЖE,OZߕdj\ HOȎ\h=tTxvd]I}I}|>{<čz]@6&H?_)~ -a\"Z [^.A. v".ab>DW4*Jzy]cy< ຂ n8RJ„Y$ѫ*PppلpJXp'^V=F8<i88T][; >-؞Z$^[9~OCܘc&a6i 2JFPtiQG@㡽ߒCs{9 ,׏v>R*ILXJigعδQu{ d.U@X|'{+5aRj@Av.`8O ]׎mBC#t.a|o(<ҞwAfN๋#0L).΅j/TBukULVʒ8 it^wѝ`D{P*v+a,-|U *O+AI~"md\˸)'FӰrqGQrϼi]|#͖d` HA j& 508)D}`rfb :#eH=A""N\TEb$j;2bkBAѢ!V7ͤQ1 1Gh̺ؓfg}>)EPgh>J9Ie]bKđ]o-( Ie^|m3o˕ 60V.vW뇯wwXø!Z^>0FW=lg1Sܖ}[4MO4H//|Ivv/]K))˕:M//|~d .AwS}wiHuҙ)AF hy7]8Yw'!!긯T ADΛ#$N­' Q8xV NMVpKO4qCfΕ Jc^'8ОTdSpց.쿖}0S.F~?.)|bZFq}D998:$<6췔600Cok;ح#ʅ0 ~(Xm ^ɆlnJZM18, (!yHa%3Q/ 4Nҕ6 5e^C$ː˄ 18xK\$%fP\./ĠftxϤ64h~%3.'0[4 X Lg8~.Ka1@fBFmRzhZ >M#9VZ k ȸz7zγ;jyBBȞsꉋ%ʉ-r;keKІHW19K}0GqQtۆXy4>FjS!ôZPB]s8t=p4=J5[2: 7BϭZ9PDʄh~BRD^K>Que2Y8..t{KYbHwZeVE_%cşZl v.^UEݑ˼+ctBx#:]&<="^ *OP1M >m^sO3^TT=‡z5dK8]dW_OHQY`bU29O\U~Esل|t!d[%ֽ?FJԍR`܊qlv1eH]MêsR^Kp9®)d\qh 7ʪ'R|`yR3sY>7 b-Tϥם1U`{-5‡vHKVH(kC9lXq'.P؀Ĩ(rTNQFخ¼Os cr_Ѩ4VrB}'K}`"15" juk3=еfNT]ن/`ͪR~B9x@J&B%'tS$?aMX\x\I,_ά-}&E DwO$2 !?ette} u7:C`e֪4vzhPm?79yIMl#kg vNcv3rw\պM0U$Yp}'"HbW J#k+!wz U*l8|@0<C%<3sBXU- ԓP7 ==m;bC8;=|,F+|KyQxWǶ, ǖH#Ke ^ O}_傱ydi y9b󬥱X8$ҟUV*vHǨe1O4'a!؊itypDG. @}K+tʞNnR\$4Z >vQȒ(,Ka燵y4Z U8>@=kO7j"T|CS8`6֗C@L#'XLByV g{}ӄ#T~3`BE|0"TQ1JGc^%BgB=1Ƭ\p1)1).EłG%EAV4Rk@2g\|C _~f~-ay^Qmx|;_u h`Xd7^c黿Ÿendstream endobj 484 0 obj 5305 endobj 488 0 obj <> stream x]o$qO*_t=N&/96`8 ;efWK#SEE69#\bQǯ[ W3>l~Vφ/gߝ1ko@׫C{Ns-WXh2ZzgVg>ZYmoY aQ26[odׇϬKoY {׊OaCȹqIo\m3^mz="L /*|ma+o mϱgΚ_?Wuhk+[#i] W{C/swoB/ZZw508=^ckf`Mke:,+Nnx/jL/]+Lp{󠬖{?I4`1 &99i :!pkSЃ[e|ͺ&zn_4/7Ln1܈3[>vՁJoO ΁rG)G ]A3c8F{ Pj r_*4Cxڮ_ 78/;#4 ^ԠGH=cV-)9_>M8O 'n̫Tʉj D+OИ4zfa&4,sH\uƶ7&}pSJ%FZZ\ZPֱ42کirR{:82pgǾ^nDLˎPx:+!n ,Ge`xs?3M}0L &@^GFB lo?eFиZ-8l]l mMu#|-㮣cU=JlN{oAT" a|(h[ Z@^&'OZ&ظt^;Èa&ҠuȾ9&`i8\a!bn~s4ݺ5gܨQ#iuuTXπ ;$:C33yWiY!IM{ RѶǨ*~*嬂T20ɼbPd:F10&P p:Jg`ƃA9Ϸ ^Cd#4R.o`(]$ ȋXۺҵY` xf ZB]|SL?J2d-' m}6~ 5 P@[ ;bTIk, c uQK!u'? pL@nW㞠[ewᭆ X9#*nljX~uϔ cGYQHp>6NRBۏk`sMc^^mS٘"{Z_HG6+yMlF2g< [1{ob @qS1@恋 tDY]l) ۷i>cUY4\\/uV:ԃB/`<nrrZ1ZR>XbAؕP. 9Ƀ8۠e具lW僃@3~KIo/N0@^)Se361bZ|b^@'NC!IO1?Zu(`=. 0En@o1(4lS0q.b 8761·|X fe 5BX5/CTiL"M6|p6bf(2Z̵1YX`` TM_0TPZWEPOQWI$e2yD! aPEC)`NgY~ÔBl PHpYl¦dZ);Dtfc);,Y8{ies.L,M\M}dI)/Wvl X؅A 9ũsJTR 4[8y5wK؃H3G`f-pXL~մƋ]te?jXD$G2qyyd3~3z)PMQc׾ʜYޢ\V972YHa }g=kݬR3 _=d)}WUGten; pg)F{S<)NE?#g'hF}`́:"mx$q n49t6gQh#j:}M|͖s4~*E W*R^cyϏL#,*EZUb$XA*/☠wi |ȈxXy !noܰh͢UCom+86 _e1 2fXqYuɿi [4i[@DB I(.PɆ|{*0L_X w91c f생R, 6 1<$ݾD_arK |lK_wۛ@:!"(xV:w*| )Vo) *\aOuoSpfRzKc0MxrcOfǔXE5h4σR6rHBQ]4zDd` +PB} ~`Rlpţ8,'N$Q,/p؟1^xjv"N$cq/ZVo BI*\s?i="!Q܅ڸƜ|6/%`Lvó+;e^im})069+aF*#^6.yC /# 0YwF9\{j 6IYvhD"5E=(ʽC͛.Gˍk`eG7r%^@zs*11i\eKfBɜG bɕˊRJ{f99vㄠT}4waX{X]MG]XR@~f.Y H@_+,_sKjhKRbY+gw hũ2蛂- ^/ ?T8c8h|_wFR^n_nf>WSUے `t,r@ڔȈȣ ؑwZVYDr̪0GgYo#|XD.th}B]\vKoKsW;PE> ɍ=䱯9*?)y Cr4-c9}v+|pz3YJ~}}ռH$'"ŝCoʓəcOW-L 4ai[N)q^iYBkPOI&xKݐIXQ5yt[d+55>e\w]x}h m4Į:,(9l0Ԝȩ~E RP@7鳟f{ZOYE,|"KH3O! Jr$-4΁bOƂ XY<;!Um8!/O-^LIoCʟ%I큠C8^DGj)2)~ry<5Lou[Il([m v|ZEO~byC]h@h:&Ӑ,ϯ?숭f f6 %Hc )6,j߇_[|3Eȭ#%EZ6!;)do{S<@&1t Ø8$qᲧŜ@D%gzX XLg3=<~5Rĕ%vꝽ31=EI HBu,1^q0$` ٙy)~挍MzR'}j /RcTʐ0oA f 4ҵnB^^t(MsOOsyc^FvG~zd bQ&Co~[,/vʻ: N#ajq~$p4 R.8 e^xOLX؄|i$(s6Uxاg׈k=&}g?Ʀт=%O4xѴ}h#.[ND~z6ṝ"ْhxb$]PBjS#HI !nˤ&uֺ@'j,Lp/=rTIWjW\7.xb̡Bc!+Ϙ)jr|VLcHl~B ^oDCȇÇ/n5wVVuˉ%~` >N9 ol TIEz+LIXJ뱏3ɷ/`.QĴ }#gR0S~v9PYtixfB9X+Y~_ѷgXXC,>r0D% c!,`l+*TiVc/SQ|=5M,&&p1v 4e2@~PU"|w.ioKMSK)g Ք_}~67OZ?SՐi\o=Oqcx1ݎ^^qUƹWMep#;VejA<2qOLz(IC!t9F?Tp9>9kW}NÑ{nA|9Ff䔾oDucJ5Am >41l*lP2L|imfV8@/hMx6 M).TlG|@J"^GaV/>dendstream endobj 489 0 obj 6120 endobj 500 0 obj <> stream x]YGr~ /TcKy2k/l ^I358iͰ%YUpaygdG>c-3g wg7Oٿ7~~Mk^;ڞa++Y:#Ϭbg^}D~o%UO9 )}<_IZt!ic3'MS),M(bjSJeLT+p>qOwHqj;~],mf+dkuVXV·捯j T)fMsGj]vjt gB(8 -OR'Ӭj0j4|V Ux?XC>V -Q@Fa9NԵ e2}X`3lb+ɃЌseIܑB;UN_]ͿwkzyOtK&}ߞʹrES^<NM {7MӜI^RJƪ0-hAjwaIpLCv%M7bDa'.0[} $"a݀vagݸ8ɸφNGk /śp"@gp::5$=#qSb$M ^x㴬\zB|X?'= Npy(NwO]NP?-1IȧߜWۻ|]qM$sNw/ujFVph] UUwƻt-D*6#?0(JˉtD?I6Ϗ8ks͆\ xle7GÀ;O W ҸEvBیKWZ#[0"W V+ȇ pΒ@iQZ5Apw]rKUY#$w2yXnGF8`J []?㑚LVU ڏ} wBi7Vyڝ:dzMa_( gX|e 2~fH8`V8wn4 ǐ sWo$tFerO5$,efP Zk=_NU2-߬6gdm0m_L +5Æ!9Y4=*vH^Os&J>4q[';h]ڵVt1kS32yR|Cs'^TBTSg!d]]so ]%yYe. +I,.\TrV JȨJ:΂876l} -)q^'GЅM6PH~C H94XHPvm&z Wa=ghA5~tw}~x|ﺧO?=\}t>OW7C{O~ُ9T̻tu8tښ7~Ӫi&]Sf~i]5<2a Z¡oU3$~V4hT9jHZpf)y @ c5݂CD~Sjv`&!;tI i-n.$f,5vM,RӺI`>V+]f c K ;^cTzJI%pIԏ+Y.QӗJRR53McUC~0idH~-;܉ NUm8$I9q""@Z)R`sKI:D^ Uػ`d_sч 9`?^y:|N/@6ORU*vڬdq sh= }y<@4U!p?9IDdM@I*N C!sKMp ynI rF @؆n ~fƖVP̎wkOK#Fy`t<2>CiGx|@(pP.S*,0TӁEW%=xמ+Hx,p+̓ĢGW넎 &.cW^D6?s5\,`\FәQц&j{顋0=9[&9Y&hSet$%p]X6]s*GCr>i8 )5~iYoIhx 5>TtO> 4š` ~M@bYP Kz_ufL-ɴ6wڄ_'OEo+?(%Z' #WϨBVG/ulyv[Z`4yG >5ۊyr||UoUOVUصm$г!iu]}5Kb 8N1^ y4YhG/Z3 |rƱ r aՊ6:fgclb'NОkct@̆ sL&6 b*)pR\b07Gԙ8)Dz(1%^oZh$c) hmDj*BH 3G0> i*P |Q8A^%Q3fSƳF2͠C gZ\8D1du@ƱR!f*RIg ĩ03]ORa"=.}Rݛjݮ٧ft'K<`܀xT]`Hgsf8Pzz%:£+r<" )xrp/h]hJA!;%,hIфJ%V x1dݛSB,ܰ1AfeNRs`*Lл8 sbM=ct˷ȯt5BIx;Xų,UxbbuYze<}9z($b+ɜGEH(n h)cgG_7*j̱>;{EBl u _8ӵFlWR'uf:50F?UpV !2$@/3>7&CWSPBtjAQ&9UfۢR$bݒl8_pU*< 73/&3E]R)_7!T,\H 5J䉖KcfXsV~:^ˬkAsz*G%E`WUwefsf!V!ojG띂=gUكgJa1h"&>XM0'7R8 `5G/|%5k'K/?,0&~2Eva׺@ kItIYd{K頍{$QO1M2C*_N T3 fA1XQ엎á0?/ڔSR3YZ"%# F2Qa=k5v+1ҙ[1WQn%*X o!@ yƾWë"j&ZlWD YK%a}Pɖ<u9j!Pf6XȊ,T%,הh.$ę=f&Eb5;qdYe96SYiO3C2V]TzxtcԳ^*eCMcg}3lP]8raRl ![/LAyË.%"Y//3s{dw4|i+!}_Nܒp?Niu,Z&|G(aI/HSۈU</xKsᡅBGZ?afX q-?͸Ǧ)0 "$+c,C̄3}<%dx8zKm2I=/D;l /D뭭p%32[cLsv<8u ^BMXºUdRm  7״`s1ZyTa]va&In:I]2gPh8CųM0S 1UkW*GΕy0ws2@| >`K+3?FYo-)  :'QĈTIaHWKSLhܵ4U.f/f*5)3 3b类6> stream xn$}@~Ayr+i>l! k6ifڬ4#K=SEv7l\ZFb)&u'e?}c~z};ϸi16 `<ķN.8ybk=9ypZv7T3ސ޻ә5J7<06Ns4<82|ۄn-i.+BXyu,/i:ߝ!=!~aNI%[O࿭:}^-OgBVinh< X-foRs+r+k%L߇eҖN; zaOy0y8; O[lJ'hrhV!) ә5R5[uѲ 3aZD:G\! PZXGoeZEGMG/aszשyWLȀRd3 &P!CǰW/a!u2'{*ơ dD6!ryXpZ$GxEcT˼u=8 9tÊxi9r+_GAZ=,N!Hu@$6 q be7kcE ] p 4b8jǀel"#j+ʘJfu&*<a/M872s Q'3:'Z"aIW`a6CZ59Z , @JqcH!޸aIu-+Sւ'be)Rh/EiP,BG\w4rI+tҝHIŮ Kx%txb #z#{$8E@@DUD;epb^sw @L8@#㍞qlHJज़ =5'h籜:@,ke+> ``]rX42PqNM sM rb#0ѵ}:rgt {wXҴ\0LO1r'5I 9ԔvՍ@bAʯ@װNM+22>2{B KGC5o2mU:~>=8q nUWC|Xaթ *U[LD.HM#r:, U=50__ ll"}f±!5HSԻJđ7OԼNJX2`Ymߤ^MI!h 쯪`D. z/4^\!NKwh<5o}QKz_wXł9Ss]6u-"N.q"N#(UEvFFʺaAe&sWn(2{ ,U!7!ok\N|CEin~_dȽWh+/iVXGqzLO`_D~ zDo l $52)[@&a΍2p"CS :i7Q[x~r&ydcXR*i -b|\_F4(mQL&7N7s?PTJ}Z3ڈGu.`:/ܴWn{YH<|\ a]'K#$̀v9]X5-9WHzA)wm#e8 \n0u/:}$ 7؜{)@r gMlI *;LE8 i'PZ o|ZӳWE7 ~IG%pt05j/ۇ9,Iw4I;(m~ |DROF!q3V*̸_ j 2;ē~: ]v @|L \ ɪà!=q=D jt<Ծ#9LT/Mn tf4-@ q$)E&X9y*~`_ri[1!ޤcl,4ƈNb-Y._7&iקS0l$ 4U' W2^9ѭ`+X1}'X|ؽrgd!n̨8!~c>TG ;ogAYG)$KQ,GAY ]>f)JJ)p թKo 'xj`T8TK-u7~ّOZQ@S.Rv&XN{t" 7JI`m j kPCp{Z]Jtt OU!Ye\c7B3cGD0+Ug,p]q%\cSu]84xJC KmkĻ" G]%MI ә+X3Q(6C&GM&T*-t{[2؜'*( %2ھڞ y}A1dE!V"F9Cɲ"$ 0*@$md=5>ݏIW-x3MH38n4ԿD A}*`R=. 0($1qܠ"t}zGOu@۳aHqf 3$WgQ@]eȵ-Է1Kثgx403s$mj+0Is2)ܿp_8/hd%([ȟ6`ћ,plۼeNVtbr]<+XN Z`(~fI,YEUL ]cfQg\C2c%헞ljlCwm;WݪM0)Kb4QtHD 7B0R, <1*yOkG.CD޼!'z3%VB쩵 Wz!ɜm$c$Eb$Ho Ik*ymrmP*(! b&'.Ѷ U ac~ אg "aiq")%+ `|,C$9MehK̎ # }4I! 0$;YSZ&4IIIU@"*f-1ᤫs*#3WLԳ$ig-|Z!=GRCw"3|cA)1J*/BOI-d y>wLB# (ةɰ$ PC DTdC%rYs|D ,JՋo׫7e1MYM'GWeOwI0&z<`0js` k ñ*~FΜFv@dvP+'q䀋Xg&R|,=C(+biyUH[>sB32h&?)WH]UHJf 2I͛zoӓ:~('ڷpjPsֺ"V#83?(}Mb7aiWSF>`2R1طT}JR)X6잼0޶-tu `g.3X~x#UFDa|psR}cZW_WJyzd&QZL䍮npo~V"i LP-:й'4+1TGj9r_!Yܖd{ﰾb5VL/Ki>MCSiY\),U IVeXa}F{3zf][YU}+,IƯ݆ ;4R@ dɽi0oV,`/?MtaFC1SYrB x ح"ɬ<}՘EYTS?}нWt(;z3(f@ytfbI*KSrZQY}G ;zg>!22 /MD5U؜dP<-/^ -vSܗ /%야(QC([ 8Q>,c),$|: +D/ 8 n1?6FX9Ӗ:54;xH8LJ|?emRK;N_ϯQh@`x&aԟM&ģSY+W>{翐jendstream endobj 507 0 obj 5710 endobj 516 0 obj <> stream x\[o$7v~Ko^˼_ K^o'z ghk4zsHVjۣ c`w/X̂ca}}ŷ^/.kwy3nzc hy}shϵ]a VȅUvq~}]ÒD*߽â-WR(ݽDlI\c7| ZLp\Vf[^7D8_ )=)~i J/:vpK}ѴpS)'Zp`vl^jGHV08),3*,᪹ !zf.isiN>9 ۼF 6  'T!;p^ǜ[C.cP2e^摄!B"e{N´H!h |mcM)Q(\#j2-(O#`QA`Ł*Nq/q= ߹O{:c=d!1X|Mxm:X5vXT p60=}y71ԻQ+X'~>& _k㒤  GooVLr&$M.2«%9N@Us8D^ʾ ,bSd'a/q; v!PU2+_BӄcDG=-T8eyG27=L )@Zwd.=B55( 1ݘ6T@ `MzP",]RULFC냲%yXwER}gd ,fj_KMClҚ_ͰM` z/8dXdzjd8+M{U@F/ph-ݼjq@ q`lb;#x7,ƈ>9R?p+ ` \) o¸0y׏aP?Vƒƪ` FDp un.'gK K8!kv !/yDVQ`=\7)Ka_UGD` &qr::m/S?ElC'j4U,㬤3`CY¡mu %iC jT>=Lcn%slyFS)EZ""t \ls(=##E8a6;hrBǸ3Ke}cBZ P[BUy};&9#I ia-*EP „kePA`IcN;hT6ހI=xsY1XXuj6ճEU>A4LI9)=~;KFBה4F{.ߐ `sݩ=mFT'S꙳ OIC{ԳSf~) ASǥĐJGW$f/@~8-4KdY<&f?Jqb[j|C;{ 'Auh}sM2 gzmIFz+?Y)@0M1%MNbjx`饕,GRɌ`i'p~c;:#j'd XNZÃ}eG$01aivf(u&lK@ <͕$̲Ӎ!Nogq5 5h ̡xjjQ7tRWRnqY!3!¤)@11x3 *@OXeliw/|!c3dϩ +^/7;ܽN+G\ӠSpV:y~oF8$ +_\"l%ݶD*GkB8i` 8HܶS` ϗFê< U ܻD5hٟA惮ߟ4sz+Ƭ?` L2U;˙߇cA{8G¥*=4 یHȠXAӅFL*>UlJFn!&~ kH=!6]dկ>iv Rns/pֿT 3|ݛ5!L+|AL_0 j_idH^rƈ.wy <NpTA&oJ{Ȍƶ5~=C'/g51Hǜb 723c-022:lό(9ΦZUHMuI7h 6TS#t``_Z㻬&)QlEc_SĚjb M"/s])z܂^,Hh *@/-桑j:K~ sؘP~*4̈́ y h w*QXiQN#W;y-O|:)$f´_V!ַlf\?}4˻aET9RQ.ۋۋp__!yt!:nW!OibBr> stream xn0_>-S/yKuk=T]jiw:6\{!gC.W:$ϜM?X̌i}y==c?g?=7@w'ϵa3+{g*{;;}{?g`F;-7VRZ\*|!ݻ|NDUcN]Y.lkὬ^ a}gDt>=_BS )zm'+LXRwV "=<"uX gp)ؽK['\w2}wNZtɽ)q'5`*= 6+ۥ&.QL@¦e[|JRQ 4$轜ȅaXJ49 >قŌ2^`$誉^am/qV6>,,E%>=Ⱦ%YFZ5Ԅ@6Hfsb[x)>KpB+4Ț6\a];^&%JK{_ -x~.zB" xV#wDFqAM'a%/)v~)C_|-O𻈇O9J})j98 hkH'0GiN&=-hmfhɉmG?39f*2KT qL6R TB1s.!E,GMGܻf˛?`HQA~@n؞-ߞ]/77O|^.~>^q7pi8nX}t={ ;X8)7֫C百Uȥ +Bp# CkdIfvS%5r&T;tݰ,%<%|"󑧮88 /Ym~@KK'8 iwmmɉ*gzUeri]0+>H[D}Ѹ:٫C4AKΩ|eޤ ”+ݓKRҤprd[8xT,';60\eYȻywȻӲIA(I\^CXjnUn'SOM^tJFs}M?I")Lެ5`[ 1p$+xpX$gڔt.^Us⯨|u_7u)s30 mpĀc^1@ڀ+^ҋFbGdVvcQn2ݛ<l!x}Xl߅w #[;W NKÅ]NAp=FKS؛JL661IurAEBSnj!#@(OмYpUik&vMJ:{/>XADRfSPB)elH&DM{5S߀V׊?!? ]bB<=V"?̋D`연Xq2EuҼEUv?*+ٛnu"r -U5<_UML vR^# vd˰;RYFW֡Ƀ:,➪yQ š U@>0c6 )̙6VՕdT((x9ȓ2 F; M DTa%Qi5,B(5Y1&9fo>"1H)pTZPޝbsV~xp{`4[ Eևd0hl3iu5۩h[5pC&$k.F_l4|!u*/FCUh%2@iS7= p5L4r>-ɝ84"n_ǭ&@H] Ώ4٢\S5Ka{;ˠ?^/ 8+ۓK|Yⵑ 6r,dI%!k[5u]ݛKR%5˼{w.^5qX3U&)7ُq @E6UХV2xmi#wt0UvD1(fs EJF L8]V~@!GrӅdmUA:9<\7Z\cqXfyZ-H:Y8h_N0]|[CCMJVn?InLrOPpΠ<{b7/WVWqU_v ɘ%Ւ閫(%=]2\(@hn0DN!u32^=i#.BA*T6AզZFK@֨h)R菉Ve45䊔A8V~*%hpca.?$zd` S.c߾|v9 WSv߿|ǰJXS⫯׫w#i0di44`:.u&UB:k p,|$,=y;ZR|+O]&"MQjܯ}U}h\e9tE -#"D[Hm*jșjJchD)VS#(šHaoIr5qN'9$eϵ.iOu ' R9c+ N@o._c5dCA۫a e:=}l>Zzuzz?E>UW" ER-CMf@I,Ԁ_J _G<1H qɌ@$LLٌ*$o5]4Ut܃+7cy&&a8+0O`L'[anb<__P U,9 GjB!- i()Oi ])V%ոvR\5,'&pш;2u^.&/jS5F^J(`rQgNhU5X9rIm*j^YN@`]F-)S6j,.+坎}[£LQt[+_n+jwd:ځVXA? iڦ+3qA”P )ްAF`Zc ( zi_V*Pۜ^rpJl;yCʹآOyQVXQnLH]/hB ln' YPendstream endobj 522 0 obj 3899 endobj 527 0 obj <> stream x]I\Gr9.v[>&EPEJ@;r{]mh_Ȍ|/_uڍ˷W=_p}uWܖRT_gs/o[5^?Omp%pz>k7c&t[R>OEkJUOOSj?UY]TpVng<\d0.!{[MN,.-N"`m2jy!}lngI憖HbIM@uR.)!S }E8ζ%/w}T@-/v})`Kն.wT@ cS"M~]lN\]stw&*~K* 5?[ HiY3m}m!2Ic$E?>fIem1<\ޚԖ#0J6={ʝj![ Ģ"NdcC+'[k,򭝠W%]؜lzX=yɞiuqsmF]142v"a ;aв3]2f`KB"LlksiD @iDqe  u2:5)H$Iوd+qZ鵨ba+<JJ$CbxR! ߩȬjkMf)x4HTp;q0~pN3T~)P2<00ֻrINB1 E \HIjHP2p0Vex`fѰ|YoN7}jWhi'Hx(Bim2h|4/ҩ aFi@ &$y!)YI:BCRfP?TڜhPdHP*>pXc2'C'^B략 ۜfP7vzP*Ǒk֠,IT4']G/FS=N}#t@' ݞL.n~$Sjƽ##iէ{+ VOjǽ{Z1m)mٱ? ^=JjyJSAߡT|mijȌVDէ{$j¹l)IP*dҥ*) T PYJP#lIVq9W^gJ2T1.S&Ѽm?CPF/HǍ2![ čq^ *Q(wm%**7@%wyr7ZT %R C-w(_id 3r|7BIE68&6#yZ ):†`|̱Lk60Fj¡ 1X&b6x[ }*JbT1o{We%[ e@@QYwe^({bTTהuPR~a/8!zR!0A!8߽rCc=%ubդp-CZF3. 5b`) E `c ^cPIaR6(9hӊ`upV m1p^#{4QT ]5vT[z FiZQA b1<*CJNVy40ObN%`dD(98Wm)X=jNͩx`͌ebr"-;ɖPv*>pSc x`͈Pv*>pa9ٖ ~c2 Ӽ9D=n:iA٩v$gN@T|<9@#i%B٩qcdNe@d#2(;8u?99Ֆ2ڌegm-u;aPv*>pR[h>ၱnzmFS1rF-ٖ:lFSÇ5&ںSѠT|;R;Pw*F%pLӚ*$o>0(#oDgcolx`]fFM_kHƺCD Fθs*QLeHFy "8[cF<so@!J-Px2<0s2׊`>_ĺAsxՎиj Oƺ Od`i OdPi +OdNʓ!2|sϷ"%HkP2<0IX >P(" KP2<0iX >ph"v0=B)',@H$@(E&^| QdjhB| PfᰡlP@abU.. KVrRըP>*:͖FPpIMbh5bZ 'QOb &݌ ¡012Ĝ`丵-9V{lbR0p^ڜ5C`q(Tk)ym.NwP30ƺ]#5`D)c< k qk~s2 \4>s`ؑT$ A7c"rj7Yf Zô F1pj]9mE#Ʀ0T8vd[D< bgׅlE$qޯF I1px|qZ /WPA)Θ>ڊJe}R ygH9V\y@8u>.f+2P)8^&U3#u f3tCP~*R9C ) $(@# |h|-:+P*-hd#@)R:{d-CA:MQfA>RTjT*oW '[#kc? uuFhf6a *F+[2𱓑(41goN'kpyL1uMR=*o~DSExS͵x0SKT %:,9Ę:BSE"fgTqAǛ:~$LK46u>m੄/q=@%3 {DhSqq( L5zUSmy4U$bƼy Du(ɣ"yfZXdVlj%_b6K*y_Jo긽\qiiUj6UbL/Q$bƸKDu^>|HojL5OGSE]g0U%|sWLU :"y7 n5- 4J4:~oUVfvS鍧OrR}uFso_u7U<>~8o^?Ӹ`/P*kt^rt5ifaK:}o//~7^Wz>՛߾x~~o໇]ݳm ?ϟ^:N_vj>A7Ӣ ΫOϟVw?}_w"sݻ8o76jl$8wC%g|. z~\rJ܎i?Vyt^6|Z% ߌ&Kw;'qi\|xb?a<j?:~'D1xwP4l]FKu|GHM8hdɮ`w'=Iz#$E^*,ݔt4ul~|Y~'K =eIl،%iE*,nH% 79$62'6gID%i KD?sSP9t*ޒ4z]]ڌ$q/D¾*,nJM]]E Lrљ4f${[sx浞^4|:XfJ?x@u%L1pJ͔%ʂ)zޡ<Rs[?6)uj5HF%Fi77tbmejrR3KN$:ΌF%Fi7'.ߝ-Ȗ2͵?X[+Sά '<햙lpUwD͙((qc)Kd3fWuήxSzzwz(ҵҒfY6aoOL=-Dߪ%Uns$PQbU%\-)U\X$$8'8/ɞ WH%X%nN]_O/^ۡ'ٳdGf^=4ߎ3lۅȷ8&n ޚ|KFA%XԱA2 e.zՏuU7ZoJWpv>.+$]d^$cQbUIWHs銝'~[fIg,YPdXv%Ê 7&n^]ǒrτsќsYXv%Ŋ 7'.kɹGeI=0ɂ0΂ac"0+J,Jܜ88>u;ԑCvso=# >}8_}_xoӳ_͓?gᔂǻ^xw3Lx7߾xuχv'=Oi@=ܢѼOU~?gpF]/K endstream endobj 528 0 obj 9038 endobj 532 0 obj <> stream xK-q7Q=;Gz)! I`|yVxU2 zϫ*w=3?|7?;׷_a^۶w~߾?/㺿s&}^/5 zL_~OeeD S[9nw}0үiC9<,6,$ݎ*iyO["9堘FzǃNB#k$e6R@J:sYE:1_7+2C%-o냴|<1R/$]}[׺muc{s -'ehD>R|͓f1@ArmuگE:qO`H7? ui>o'izl,FB?QQMzϛtُu˹uD1 ˋ@Zޤ#iQN c#Ӄ嚤z[;-?.0]l7YTuEQmYюXYZ.\zqrnZN'>`V< TYhGw\u~Pm('>e tڇkHhE6t(Tҡ\|'XXNjȺX c%Q;f1:2'5N)GN|[R}=^}}{y'YhGYY:ӰC2z}Q:JYV빞>,FBGrmD݊*GE#*j]А)zXw'+1!,iYoxd1h,hXi:{opZNm*5{?^ \sV2HojqgC9o?ȹM1AH*1/J# 讬!ňdd-|ZOAa?rxRБ gFTj/b#+I(cz\F늮M kZfBJ Y =YlӖ}-qN~Ꚏ0FMV3Ҝ9kK-f1:2FVlxYpFmVttgGA,F$g 6Y/:^S9+g'49aڜ9i΄RYnrnm{\P짮@Jc&E@LH\j!#S mǥ[\z7EY!ꚬYΜµюLB6뉣bJ}kPumV3€ k U 6YGu-jJ`kҟLX((H`E&}PZ>Xnڠg<.Z%kb?]4uWGZj&7gNjYhO}d`<>srm<7Vv8jӲC>-f1z2?hQI|?ۭ^*7,aiڰa!vY XlÖsIklفQ-5vqBG'>`q]9v#)]ARX4'cp,FB?) 6I irrz.HKiצG#,UqPp1ГZP`vꨟ֗suñ|+hڴ0iI>*.f1=MsɋsX񦅶#,R&4iGA,FBG#u /~+R4ap,LGҖwG"&yIDD}ku[,F InPSw5|z7F.zʻq.?=iewô)6F!ňdܕ%<0Rwiia8ZhĤ >-f1e6+{&'~Gw-VX4E. [HX`oh6SW"c:#:jR Am1Ў1`)+e۾H!ZI)ЄvYHRlڔn׀%Q %PfY^<] w ^G*)Q]3!bp,~L IqylYFA.Ij1Rltu#tHaZTgD>:-f1amRh]Ä= uF W"8#)ę1Pj1ЏAmRdgѡ 骨EIkJZ3Z,dyD{d&%+&A8ER5Xd3s> WYbD;΃t+c)'XZlYā&YVl a-XB k= (f'`>; ZlX˄M<a獕>=z%0b•9f+,f1<0Q1Hwʥu=,3Vʹ+LQYԂDe6+0HwѸ䛏Zdd'> ,f1de6+FK8Gw \v3X+<YɄY>64y5b6,vR`(. w[Hh``69kА4dNӷNwpbDZа|ۏVT]9/{+WgZD̝gyhRY_*bz2*Yh]YrݟZ8UWE\Z] }&$ ГZaQ0=x>V7XeU9.tY,FbS˂mܱZy87jV3fjLY( $ ؑ1`z}\%N2V'e g5gX(LiI"֓۬XۡuZe]jLX= }&$ ؑj}_S\L9,QFki͢.-b$ ۴p2]ܳX2]'&Z6iGS>.B$'LhQ>]ِL 飌pjm).B$d~Z66ݷt]}L pتl9.B$dxZNוsZh ɴ@YE6>ۨO-ucL )pԔK=YV0=z ƘtNhMeժ @aK= :, irbQg8a JZxmjBk^-q,DBOjAEzK&,v[eRZW }$ ؑ5`'>a&vj)cNZ-vQy##S`exm /ϗK! y@(x52Ap)˅ub@_ B z6s 7 :,}\%f kBhu1$@K *tTH`@B Ps@@u ()|E@B6P91.t9ɉL)˅ b\ 9JuJ`}\f  %@#4Y$AB""}`Zd0VH( )Gi#ؑ a R2ob $A# R A z~ Y^cr$X ĎdG>_0, 3dm.E$*#A1uS FkB ұ\7d-r$آ6 }`f  Ḟ-Jȑ$34N͢H/҄]ȉP(Aq$x4#A( a] 9 %H]\q"3 kQϗ  y@(U@ BE>].2)P H͍iI Ru0g仍^ּ,?}@2DX$8vAp XW,D4 宬'ͤ8ɝ sqRÀ,DBKjAgE8Ent\| qc YĦ,۸u%XsmVg> zB$vd(6 (:ER`k$haqų,+(؆mB0^Sv))<XP< ۇYĖFS} otX,va0ؒ)`4_~jò> zB$tXL`LG%~ˤJ`|ax"%Z#twM JaM))lg![2=``)T?'%n".tv 1+H\Lp\3@)2mZoiD mg!zb iL` ad5E}IH` kcs{(2'e7kJq@`< ؔk۸ [HmKѓR.Z(f1b - s_QZ67fʳ=YVMڥ`w sZ.,DbSN nce>}{*Z.5[渰eYԂm^K ]kn)5PiJYĞn=[wU:,SVMa0ƘHl`Y09uLfL$&02ϳ 䵠30}|Ệ#YCѾ{ׂ\=dvޕu>g!Y(we> f/$rއcJgKXͶ9*qy"'â`ۭ]ܖkjKn#/uvЃ1ؕ%`»/:-]6x+(&ڰm &}`HlaQ @▜i8KG5ŔDmS>X0BD`zV5n\ P0m ڇYvP- pӲ`fTH6G5ɦ}P_Hl@ n4{+IBzMAhHh$( &>.ܿuMtZ867ׄ˳ =Nk۴|x=vx{+J)e3HkMi8< ؓAkiǦm8ƛ+F)e3Hk~Mi8`< ؓAkZ<|4laQJh B)m =E,{]ݿ:+.M 5!c,Db?LH UϰY ^YZ~(ecy|e R􁤰jJ`K b?Hj3Rlacy#v VS. .Ϣ-, fRO6wv܏7 =5׆e+ &}^ZrX+b+3F@`%kNk~La0LyI$Xl]Phkh˻#2X55}$ ",dzւ#yp8)}R FT5E킀,ZАZQ` 1[G.:ImZoiM mdԂB[ &\=DžPJp ]S>^ 2?pk w'ʻ,f\_F)e7kzMq@zI(ˠs9y6 $P= b ^9ePGnʬVTg@A bNe29xVPfg=A O(+@ $C"bu,f9 (#eXћ)ǂ'ic95L Vϒq[1Dzb֭EE9HEjbR%0>?X5_wr,2X=Ka}x`Y k j(Eݑ`X>ձd0VX(` g@`XNM,<ճd З˰cԝ (2T2ճdx bNbZ7E (2}X7ճdh 赘cXur* Qá0F(ˠw7@H (X0E rSbJ,j<3ӳVJ ̵|⼥ θawp\G²Hf'eB傲ȕ5?,D4 宬g.i(A53 ۇYԂΊ nk㾓t\Zq)v YĦ,۸fR`~Y{GX(hg< ؑ1`GJ5+Z+"Ha0`m< ͲmlIkpX"À,DbK lco wW:,,Jk ,őva0ؒ)`2˲ݕk V8,ax"%â`+֬V fVȳ- &VR8Mt%pOiI9< ؍iۜ$pRąR.#f1b ncE\X6.Zɳ Mk۸>MnVpVXGYĎV+6>'Qn\(p\[YĦ \+m}tvT? .A\/b#)V(ڻǃi!ڴlӚ>*+B$dyZ6mkc7+2.5?^YĦu0͕ I7s\x3,DBSjAE6nsUwW ٥քB)mg!{FZLh{~wB=% R)l-, `Ɯ{p: ϳ |[ʛ^p;ʿlǃc\˸ϳHɁgո5>|gQI]Y<{4\}DkkpG3B%jDWʾvytHL9YޭMK8!BM8h6,tc ,q99 p3c?jSR*)OY`cDr+ao)M%phCʾmydYAD.Iry蝔Ni(<#%PR˳(B/H)e"(r>JRB%ftk&]bЋ)P`Fgr.>Miz I[FH2[>-gti+jADQ /v=Ni^.&#&4P˳B/jAǴ) 8 أ7O: ~cطtX+Ϣ mV0\Vsra N&(&`vV1ˍ6 S\g*ϢnXA紂gyY.)6? 'e9!ÄʳB7L9c*g9_߷pӤs$`>)Ϣ V097th-I8I%]RrsݰDs܃e7L:'L[9!:ʳB78rmrzV~isMб9([ EN*/C,ʪЎs` ZDw K:(Z EP.C,z*mG-(8lK%-qӽN ENj.#~,*Ѝ5r`y)Y*' .bЌ)`` Fį" ̳ؔt6js??Ǩg9MDɔPo\&wdQRI>M .]2'2F."p eM?I.(V0笓pr}~8'Z N7\EY.B7)]/jJM0I(iHI}뇀,JЋ1RZ]x̦5r'"$@-dQI!` iCo!cwr'"%PdQ^ u5l+fw2J.PʮC@yKЋ)P`Jicn݋O eUj % )ioPEIMwJ+S|M(R(i %}7 %Y4UwAS#Yr7J-" -dQ6LZ0\lxscdT\.'rGݨ u✖i {9I訴wSN~hq=.ԄNIEN(.#0$YtT9yؼ P\G`IB7g-r<ǻ qRqK8<vNN+sk;iN-tEN(.#~,*ЍY 6̂RNSj' 1idPn\ uH\1.WN3j'9)dPi7iSNN8SZ}NM0(HI%}7$YTk9%>x;ӄ]f}2J-PʮCLy˫Ћ)P`tT֠" 햓L(ؔ6I|Nױ-u>{83fD0-xtZ]lڝE)A;px59\\:&Pj ' 1i:9SҍZAQ,a=y5=hKTZ .N 9.K@e6jF??˅|WsPs )[B FP 0!bv.(u /YN 疐B LH{(`C%ݨŜ>IU^dMX%`D h+ci;ֈb9f[[>IR0  j-nLZoNb= =)gn̡Z)PL([ sFf^h6dq=s_el˹5露XyJ9ODQs$ D\ճ`'M x-L(Z'bψE{`Ah˅`u, 9} X,`:ʴMLWԳ^J%P;)P,a-#qe&"M@,9tLc /P&d(h)BQK TςCkB6\΃+ /B$PpPr%P B#%Py]Wr([m( 'BQ89Tς)CU$൘CXUX*ˡLe%PK]C0rHk1bm.ʡL^%PIO0HKa"IEy,#X2r\#%X=y!Zʱ HXnSX=Ka [1Dzb xm#,ؐZXBճdP(bmZ]/Xp gP3̡Qem+(:,`VǒaFЭP,*i \Rwgɔ.̡Qea.Gq`吊.Gz :E9c8a 4QsC.Y3t s(\s.Kr =DGC(:Y0 sV|P(@q[NWPǀ}Pu&9Z| T,֢q?IcHA=+ambNbB0}:&uE24%6 :h|Е>nb,D4 ,g/xkXE_IE}3E )GQ>B$thL/{@\=[=ĦOJMG(dHlYzocYސqtHȑaƳ#2 &=wwz3_]H6]@[KHps< π(؆>}po\~^H6[;HPz< ؖ5`l{ʵpAaΣn`*P- дK ݅C,Fbk͂mh W;][uOV7ЦhC> tUg!Zc?B`m{ӎa׍i#k3Y7qҡM%аSNmIp< ؚZЩ`m{r=چ~fJ6U@^9+Áh,DbklCcÀz輮vXo$0OB Eb-%bb#/V(۞{1ߡCtl(66&ʳ Vm{zzC}s0D 5Ŕ ˳V0]ʿ8\]A\Nn `+mL< ؜mM\>!*k;2MÔ`+ĆWS. *0f1Q0 C"%>sb61Ħ܄v̳}YVM^ǀ=a[5/6%0myYlau,8ٓ^V;7z06c0vYԂml4Pλq4_%OʥئjSzN }2B$4'Lp?@pa\tq)n,g!2?p`} )E7|y") &~moN .A\x8c#)h?pQ[7 Fe'APy"! Q)>@x^3o k}$`H]qQ0pKxM9/y"+`jmRkq˳MY#. &z~M lJA%,FbO@˂-wVϱ굱Xlշ`: aV昰jS.f0 X& 1n6BYRi6M ͦ)0\a(@%A=h-0~N`r3`ZMFj3g"l e&7H Bm@^A|C* 4 "d1i Y(Uds $Zfs,@`&$ !yY\iL( #  SZUj7kHJ>!2BbNhZ,~~*f0=B$D6 v=L@ &U)T7&jcR`0Ǭ,`~ab3FL+`s<L>&U!LHy҈iL|і ٓa 40?b(Ƽ?hA4 Xu"~Hj#+lv 2jDU´g 9% %)都lZY` Cn cP:ʪq2ȪҔV,g mX#$ !}热ҬNFi= %TV҉ H@B-ʧ3:),|c[WBݮ񗓡 lmf,}W l+m8Ք]ITA@rPq[f/k9իUCބ,3{x0PJسz(% ]ڌRQ#7I7G"K\J;OBbmr޿}}/ mBhΦ k倰Vسx$ 0F@kMb&mh&4|R&1A bms=I64_BY)`a@hQ x=Xԋ7]s<GYxKCBSc6}v8q2&fڀw@*Y<s&X bm}ru=l K!t,9&bNhڀYx&-4R9Y*Y<sMV x:m_KsB Tر|#0mbDDvao EDș6";gFA@ۀvъ%1k?Nу9"L8)EY>smV,CӰkP`N'NhfJ {V]BKz03sD: ""v,9 hn XhiMGx3!%t=+%b˃Ί%t_p/MeLaDQN=ˇ!b w1'D nB<C)aꡇvsBK˾afMv9A)`a@hQ,5^4E@ H+B Sd;HHv$((AY.sPl.PLw}\7D$s\;5oถ鸷d`Jz̃1A;7sꥵm5/t9%LWBi!!f9h/j1D>/Tx+!5ER:(%"BK e66{oHfbڔQN %=DA tb(P΃=anQ/D~9 ӺQ]$-''%2ٮBsI8 -= FA b(p|,Ȁ_ #'Mi] 'rv0P!Ћ)pXY'ڜsBS g-s^Xɉbm}˸Oұ/D9AM=)gdsԊ%GB s!K8!Ӥr0(1Ћi! n_(#(MB wER+%XB +FRKH> B}BI'5%=KA@ԊIq֭j3'IH'5=LA tc~Zt%M_>sRpR3ZJCB7KH[7XjHJ$R '0@Ab i=5'QkNjKH{(h@ bmR6 BŚB%JI{(`@]AQ,!ۙRPl Y/gRH) Ŝ~:cp65prN/abkD8WH )ZHJ TVa tc ,"}ɔ[  &H=˥acm% w+gzա\uvuئq~M*8d n*2~ˠRweAkfܕ%矈&צm0C%Kx< ЛZСQ0㶋~¼ilfĦ0S. ,f1lL.O`[m }gGCYΌ3fp}Ay:Y-!4\Bry"e3h~bs[6TS>.B$e(/u,A6ԡ:84RMp辘HlY0ڶ͞ABC tEg!ZS :4 &6 &OjFۦ幭@Kޜ By"5S[ ˎI>uh~ 4DCS>2B$fz@[{?4+=c屭C%r$S.2f1bI͑Nڨ>{`CJ+6;'}@fHhtl+a2۲CpRgJ2S>3B$vf~0[fPaYn~SJbS> 4B$6gx`[ ۮnG~w:86UͮOh֘Hh$6 &x}۸_֮ oFT Py"1 f6{+ݮ `sj9m,DbsNvuZ6ܷ֮ `sl(>|,DBsjAF3GGnO{lذa 6l?c#9Sf&7:6(X} `,D|-X((Xr]涙5ڡE,@E28l ^q\_oW@I9篍lpܷJq?]LL9DěibhrF<{a,slaΏ4 ="R)b٘CڰDK ۺIFДUagpj0F@+bi.G0瀦@N{os $@+6S9PJO@:Y2ρ@ MX#dyڏCep@SÍ1,4a (r/r}1 >4$>ag`1M 2 2瀦@X6'4E=79` w1!r[3{f.aLs6iֳn[[-qutXD "ac0Y̡6bhrDlnN9"P;@D3eس|+ρ6bXV0Om&Dv&g&<*a~ b9"R?9\#B$M)bMHy Uh@RDnCu ; ";D/EX>sh #Z&\60jmDMp b!<)ay b)"J8O0爰g ,'RĞXІZ#zRsDĕ#B\)bM"y.&V,E ᾿FftLBh ᨔg<)taV,'Iڑf&!?cPG̡K ]!e}96%H=˅/ž S^}{mq/`=JK7D|7 kND|Iu$Ne`F{67ėE9\9hj1D౜2C0_(2RF)c)@Y,c?6@MǴ a6J{VO{BHb)!;('a~Bh>&!? gGA@rXFIOB(%Y=s]X#!}sӊjF&!?)cHa ta ,rmX_BXWBH~H aivsBK Aɨ>XVBI9))%Y=<s]ъeϴ϶AF*288)3'p= AbΊp`ﻐe^ idD8)"I)biÀRDqTӄJ- I)aY?s>X1gbp,< N&ad hVJ{BKY5B= R&ad hZJ{Btñ V&ad /EB+FFKtF $X y)AY>-smXV,Cr} ,Xhb!gHA .(2bSqY0L9#̔2"9hj1gD7z.[Ԕ#BM)ba@hQ,E~Q~'jD4tSر|%00Dk!>E U HpSԳ\0 ص# }+Dž_acuk+`4V᷀e`Dm53`;1 ^tnsxқ%h& ~I>_:t3pZP(ǫ zS}9Wg>xQ銐4` x,Ny> /3ӆr8(|D@@B9,83pfa8J>_: 3`r8JpuдɨIN8(|C@@B99tC$h͓}pZ!d0 S@c6-(o>%pfpD'}t !f áPg`,6s[ tÙ?RW r8+Uqgn+nr8M aO8+ dY<&A5)ާB+D<pӒmZ 3]BҦsxҙdN  9IoTr%#=/)狇aҀg2m 2%t* IgfI>_;3Ag2kSMuTƸJ%#=  o" ex~ SݽVu2%xWm<' %|T=@@蝂2HzW❵ǠI"rW{ 2ۄrR8ԑB)k̎g!:R :* ipUVJh$&Ii8zHhY0 pWjnM JB@Y~džܫ@tjIX 2)k4g!YVYQ0a}lJ n9 +Q y"#kdE6scY P1 +:VZ(e&b##S`e9#Y~Y BJ kg!:R :+ & w0g5BR9'eE,DbGjAm&ܿ@䘳KXᬜ՜Q@)y"#Ӄ & 2$PXR.*&f1zbI cci!uڴ Қ>'B$ :Lhp/UiN ɓв5å}0PHm@՚$lix)mg!{2Lh8< ؓAkARp 1R>+B$.(ئ}?V1s 2/S>-B$tt^Lxptk)a5}gGYĎwen⎴PL -zZ4b#'Se&S9 6&X} ,D|-X((X-}0y ֱ\[-1D27 [M bo8'b:bϳ,O{c9v;: kk P{ 6G.S>0B$tXLx{潾noh༔{ 6ҵ)o 5]Y/ yw=pFk 欰mGA YĎֹ}ޟ߿5v0ZL i۔"̳,+(ئݎ}m_ Z¸)mTg!{FZLhkh1ܷiaZiܔ2YĞL۴}Rirܰ@hMi u>0B$tZLh{+4ڳa;q͞)mg!{R :LhjmQ Z75}bHmzdb8.uS F^7"c#+V( ߙ@x!ڼl}>J1B$t :l~Nk{ߔ@pa\tqM)ng!2?p`{߻Pyyһ)E;y"+à y}:&߆yi^PpEB3,FBW yQ0᭟3ݸ[}z-үn898,DbSlӉo㦷 s\4#,DbW ?:cÉ/_kyaᔷz̳ ]ۼ%:,vcSk"q!~̳MY#. &F| =N*^"Ni8͘HhYI{Y?2s Wߊ)< @_ : w\w[ۏ?kqkWfuX?D27 }CL\}o9"Gߕ]9gcj#^;^*s:'&2N88b ii1ϡ9nԊ%ܿT/C~7Ac3mPQ,CŞi<˯Mfto!9tfڌ1Z < 㤃|ZUS FPj709ec=wP+Nu&ZC& m` shɴkb $7$vQ!cZ0ـM0;྘zL[1L0{2'%l`sX/ϡ^Ԗ;8(`k2'Uetk$[^C'͸ i-rQZ.r$=/V#(@0m5؎r=NsFȣ . ti7`҈Z!X EV1=A5qF#*4`@my헴X]Dj9ޞ2'2T*4B jY-ϡvZ,AޡAu(at>OHeg$< YCXFBoj9!:0E*P.9vZu T`K0ݗ1{Gl\BJAFT2!b͖vsT+`"{XKHiH C&=Y̡nLR+14S %td#,ڒVX1bXzs~!,t 5fuIFVH2gbݖÊ9kҙɋ>zDr(a%#+,p@f1vK1?XXŠA072B'C +=YɄ69[ڏjV|_rd"JX)JQ&TZq%bdE6ʰ Nh62r”9gus跴˃ӊ93>X23'r +LQiʄ:9[ڏXŠ d +\ SFV2ab sVKX1(9V>+'T2R js踴kDE6 r"qI %e`u[&T]q+5Yߩ9g25f-#m3j9tu]9 wcvF_òc`؎Lm>}j^5WNv%i~lG9\Rw?{L 0pr 4gPW̡ܒ6bNb 亮$qa"Tq "ݎ b)ZK۰Dk#+L$jҊV{OY,mQ,,'&p:f@0҆ `ᩘC9VQ x=N9 "aسx)P`ib :-"^`}-" ,9Sڄhu[[͸6$[@ĎS9!ǥڈe- 9"TNѭag4M̡6X1Gb \Q'A""d ,9TPچhڈ۵"$TX$žC+1I0<XBClaxT6 "ic4Jq$mbDD6=T>5G!k#""#,"9TMچhĽnY^b,A"!] ,94LچXaZ>,A"" ,ވ94K҆ZQ,A𺲎$8ɢD,5S|ۢbx.FCsH8PKYIڌZ)Q0_C:FN. YB7ɂp.x/4#Ӧ"%Sȳ(B/HP#74-PJVJ(mY4Kesys3'43BKZJsYKk$D\eꌔ3 %(N e)b ,% 'Μ|XTTNٷ~:$Ϣf^ԂNPbe*U2k挦FZ*BR cꡑ<)ttH+3rDiFSK(H U%}I,ʦЋAis3ù:cFB TUصx$flFXA"}/sNؚ6*rW9gug8i7sZ81:˪OhL(ΊpVYN 昜-ۤOfNx抜0WGYtOà ~q>te䤼I8I}%]KrݰD/n2g,k3"#3zɳhB'fsuY22K@aI%}LEqtNlV:Hg (\Aɳ裴`('Ϣ X#& ~ئyCLj ˓`kӽ`vB1EUh0Y0Ì"͹LE\}+9,5 eZ,!Ӫ%+׃t˥@ym-`iߦ4_|_~+m؇埮m+=򛯗 XyA{_~ۺ/{>h]/?~>^a?Wz?:x|ZC򛵔_%,Ǧ rikU_[Hض/o|[ÿ1\qּ_|Zm?51N[Xп00KIJnseߦryR֭;~C[c;ZR~}6~ʗcPjtx}O\ ?_a"/_M;>~,uuR' w)-P"ڨS+c>}n?ss݌`_>/ö>F?]Wﴟ7G=o㱖MtG~ucA?Bendstream endobj 533 0 obj 26014 endobj 539 0 obj <> stream xݝ͓qW4 5h/Z&%g8jV*TiPHjF毐(TmԦ~N?ݴo_y&/O,)fy<=SeNal5ӶyZw8 a\oñ,ч068ןgAۍ&?ms.?-y O=}Xj`{Z_<?u؍҈?{Ge`>st; YOofy?>lV-~qpM>Ev(C3z~u=qXԟ8JQ]pM}??ݛ_{]:Ƴfޜ/|z{vn:%֟~sӇ؞],_סonp37!=#]}ofh6 !!鐌$ՔUAU ( s$. hh/=*;eH56EEq{)#^n|bS1"*&$VVC"bǶGP8?jZf)q}2"NKl?= +PnnIKI9Π"-K J84ݢ2".KS1"*$$vƴ}W؅ L0)¦^dZ86>q*U&&6_b!xgsٖ*7b|naI5) GEشTg0 ӴS1"*&$'ԃDMc\OހS\ l5k#2*OU + 645Z}l%`ڗ"HKܼ*F +`󲶲f ]L^°_/EQ(WB3w*(%'x}5$0vb)ta)Kab)+A]ީQl$$[,r\Z](е 0\(Ey-h.@ZC[NyDDHx4*C\KhipyDGKuQB{qc/7`AUYùd$^B {qxDTbD ː@6 U8|-WPHq\c1Dr(B|qeC=cYB!rJh/C ~`_ *7Hqى:kǁ||n&VBDTbDtt4 xtG@ %!"*T1Rk(]Lx[ t?Nnh*D\TcYB!yЖ *b)ЂaDx-FUE'tG[qI85k" Mq17G r&87TΛQ!ᰖVHwe;zLcPnLT' |rzu*FDńt*&NWTt%T4 H@A^F^zT1"*&4*ݻKHteDA#BBCb ʻD?D{Peīu*f(0]{P4#T ހSz*ZT1"*&4*kщ ;Pň 6hCԱ ]t#U9\ ȕ=*[Ă%T8^FU j3р  :r. vU \5$6DP'@0BF53"5kQ!1]|0\\pNsр=@#Jo 3ݒiN|w @4BFkFD2Pň#!]u蜌h:bi1Pň[Bc0tEǡLn<03y* v`7T|O:/@#:HhtHwxC3@4z u6nɆY,Pňtwxn4TAUyyOPpL~grOED)Pň[Bcb:0=aԶ: CY 6 ?GJ[ FDEC*Fcy0d'^ ^"@#ű:UKdd {aDT4b8%UNxpvv`7Թ'R ˆh.PHqى,ab9CH-4X #r*ǚCV.mv @2R3MVÈh2PHq,K(NC? i= ^TEU1"* T1RkjRd kUlhp~C0*7HqPD-ˏP,U.G@*b)5*$ +BDT4!bDe ]se-Ś:pWÈbqPy8D3KܑaRch0&h N ADT!bDA ch4&l @ "*T1Rk(]Lmt[pnK}-&܄#z,K"$, /vO `N9/?A>u>m |Jx)t3%\DBDNr:4HπL , khQ(&KWPԡh@ҠzaGP@Y:tP *Ă[X0#be^hN VNwp~@x&x HG@̉iMHfD΄r:txgD >'.!d^2\ܖι e_6`8\` ""t• M:=#0 fzR9.%!"K'`9!Xd#QGA@2fWMCB6E#D XhF ̽݋D` R7lLх.Q Q3̵}۩Orx|TX~zJzͻ<9B?w/^ûo_0Ӱ,tmnX;juN\?}Kv~/Vϟ9p>^矶?}zM?t^:C6q9>O14mٽ6>|w㛻xy!.7syioi~w|̕tݭ1#ӿݜ_!A`m]# ͓Z[7gvCR=SN0m0lnM>_ /ca66ojnojnw769vtxƹߦnCXοٮ1̣ejza1|i? jۍ:KƩ?>e78aYz9>_: K _Wu# L/; ce>Tw[-K3WXXPz`=z/Ïw难.}:6c,vz#`zqE}jeڝ.hwe~zWջ_2F+]*5_V>|+=7'endstream endobj 540 0 obj 7344 endobj 544 0 obj <> stream xK$qی) aI{#usň]CC*3Օ3]Z45RHĀ HW,&]L/>{{xyݝ|{};Rgo/ 1_RK;x~)_r0K͗Wo>8bq}}M+k>qrN=ݜ&r4C'(۫_OǿsAvip sś9hH:sf)& {#q2Z dM4ـp,0fdkoVzB$,X3&(T _5W$f{|wnJ.N-\5ƷK5QFو yWWG ^!+k$F*gJй4CN)`<[1ÿnr~X!m%oJ7ʛZ8nKƬ +{-X,$/޴e`e i`x ma䨂qy`]tU}*690l|{=E]e,-b/ r`+ɁTɁ|]}_@{+XGʁ+&RtaC +a25'2V9 P7Y79*690Cfh)W)=}G0uo Ux_KȰL)X3M:M:]xq> wLOR"n4reb .Iia c2'EXJ5G1m#Ul#$pV(/\!7ɑ*9KvH4 K۲~[6=AL,i$!;͵HE0$LJX  V#Hk7ds\P.Bzk鿯S nT1˜ ys]b.")VnY[-*6Rj7ܒZN"6g*{P UJl1n GJG0$Vc?X VC9 W-7vҰHc+ HC1;HC+e~k- 0 36t H3Գóȶf?HFb,2R3 찬/A$ ,c#H C9 _9FM@0 0 1#=P`>o"Tb؋c/R3 h~q>[% ta)EVB)Ѕb4 #8m h˙n4܊."nml ¦0M,68 i:U X~`ӄEaauK襳V`[pE\\@xc*6 vH}mO spM)5x u)<Q\KƳH|G)6P I#,^8hf؈Dl5"͂+p}(\vQѠ+R= jޘ8,"g{zs R@gT|I/8"W{z#Q60ȹ\^i|=|=)c<`ŽE7}00rg1 eG]^c,8Ӹ9cXBf<Ȑhځ#hdnhϚcHcE Xs ?ȴƁf9ڳΘXl鎥ihV84#{.MyME;d@<{ 7=24e'JُL?򷇿/7)wd9H#MCAt`wnddmC5j܎om7_OGkj43i@h`~葙cGZu1RKqv^z9hG>dץ(XW}ߓXqWd\o? 1#5ud#F%072譋Q7Lwf@[k>1b#-غu,йڂTV#4R3Yj3n6}lPYo= 1$#-ȺR b2&I+aC!t RV9F^49DwPK#6_u6\Z,"Sg)T r6˺[\wjpUo; Y"U,>JɝC a3 ͧQ:KQk@Tץ>4#zAN,l"SgT jd>.;)Bv'D&uQ #X@.F4.BWt ,ES\LcK9;q8$J򮽶Rz4N*C26i($VbKX0+ٻ?Ѳw2BM5&pSvasU1=QYľa~"= qDRI&)lAR[FTSf*^,b7Ǡ0Te+LnL+6u H ^PI|0Z9L!-rtH X+k#F.3 - Ba:uCu|d0읥/EMqQFF1&qy;a$1t) FhO3LLd,0&20Y͸0 j،L3wHR?;e*1k0P#og9$1*.B&1QY̆O# cd#atڒ-5P F=>$>k_?18,TCKI0,,3Ar G+q9nRIaLc5 9X κ~5`B =$4ĈƂ4F !o<qYxaVuVXsܶϫ&-n)&-tC4f;%N{jegOZyŒI7]:[7G1C;y%Ix pW߈pwC85ylywyMoz ld%BFw:8d{S}k#Ʋ߆m>} {L _◣(~(~3ooG`Հd ׊?E(Opj~~!~tkwꉗQGcˉcCQƶf1'蟽:i2=cY\X^H>!\@%88ʷJ5'v0SeRjxXKX.Ncm+#S7r+djF^r>f?g NE):ҀEux_},P>i:=֐,~f7꘺yޟ,{^?cqQmhLnkMops\pn*gEy_Gx_~kwx*O kQ=ݿr>U{[S۟co>_r.np֭A1ਾ#zcD1,xt2Vs]iK3OF$y˿t._ϥӋ/]ty-ˋn,x*p'xc2ie~}Wf:58endstream endobj 545 0 obj 6069 endobj 549 0 obj <> stream x͝M#ו+J dfațhn2I`&uyebG=O&ToO_?ezzo/t:׆O?Lew9P|:<2?}nܟ0/a?ꗝա~ټ<|-Ol|y]ej/e9B%q8y9^~7We7Pp:}L?|\Nv9|q?|u<wߖ긟2MM䵿w5sOrPNrP^ nOrtq}o}ỗⴛx9< syq>O^_mswM+/}v?  K>{1Χe|؝(rUXfj=/~v[.y^~RzvC\ !T.-M&V&-W~tg|TK<4;ƸxeM*ѥ0Q1njZʳowj}p<P;'x)OWw:vcOWKab T}~\ x/;t*W䳑LҲ9*1xVx*g+_5q7Ui(obq%KRFL-ur TNan'\76ccϧKb׃uxO{bZ.C꼼ijڟxK"y, q۷]H߾D>4 ~a=_LeJ0KR~\ˉO$[-q5Na|CˁUOKRkk!rk/a]p]E`?4.UbK]DĥeC~Ox8wMܝ5wM廍]+\ڻ&WarKkW/ TjN˵tZn]Ω͝Si{"Wl:_ VW=]lLi8v}ݗ#R%&.ŭe{yLs~4Ri;!W<_*Wap)Jyjn0oa>|f| r%}ӥJb3LD<ʀQaq4C(Q* ȕunn\Inq+^p.Ry6nŷG0G;퍏+D#Vߝ>+ Ks[t^zۢrcۢASʥ97]$3DTN˱iG؃r?}~Oo~z͊HkIN[~Z虄SyVZ0-MXN76A]DZ NX%/4n&@8xf u] M& 29u2"dFYA]Dn+^aLfQ%&IP*hB _ar [XҺO0%aTĶ r%]5p~A` d^Eƕd6 F QP*ѥ誁d "\X'/0A&iTԥJt10Fܷ l2 h\?4*N] 'MA\1Ry~S*hUJVA]DnSI3KaLȸĂQ%fXP*ѥ誁d eX/,-%YTԥJt10@*Iu*o*kVP*Ɏ@71p=Vټ ,x VMfA]``tͽ[8c "hX'/0A&iXԥJ#M &v :mlKð-J#0_qK%!.U.KQ ð\rR%.nsDL&bLr@dA&iXԥJ30T$X'# AIAxV<\I~dRX-U,#< +%.UtTPw(Wo~^NjM؀ZiX.~F?,].UeoǽuOPVT6¢ 0EuZ4KR BK;JaJ@TA%ɠyUy%ԥJt)T:WTrXg @0I0hZUbZ u] u֙J0I.hZU<\ &V(m'AI5Ry7SY,h^UJbA]DAŸ5*i&Ӱ_\ZL^A##+Kb u%ŰčLIBAӪi-J0129nIzALU/y}Y&hVUH2A]Dĸէ} \XҮ/.%UԥJt)\~Y-naLV%IP*@P)nk&֡ʛ,8+"A]$:+6^U TX/,A%yY *)u 6_YV RX/,m%Y%ԥJ#X:[ NXgvO&o$yiYr%X$ &U&ofo&OJ0IK$g $ (iu*mVTW@]$;AŸ-*)RY!Sq'70x^ vP۠>*y1i7ee%$ ԥJ#L#ӧ3Í:wŅ!0^Ez`(WYk5֘zeíT. <0ܘBRyWySp^W<=T.qT@T2TZEU> 4*1Ȥ 4*1X. =`2zW{aO2jJLq.V&C2%t}rQxbVrbw]4׸>eq't +~rQxbVbb u\ {\7N`t dZM5?Ȥ<3+IF.V&C`JQ*tذ{~!xjVrjZw]4WN׺-tа M~Q%xhVbhuh u*T Pp+@c! h:d\M?(<3+93X. ٍb0C [ɸ'f%Sp+م@1:q1tKkpI)hbUbbIw@q)p;M:aO6dZp+@>-`2qO2r]45` C 0z!&F%&`P* } % `0hbQI.Jw#`E`0zUɠ!fF%ghp+ ?M;dt"{AL: ɨbfTbfu@)p`\T.醘pp+ } 4SDYMۏwoe;+: Ps+ 4 bܷpmj?=,D®-ͯ0[e%N%`,؀l*xb= 3֩>SQ=thLT A=,DL; P&X#$%e!bP у0#1l_aC@P4DyY Q!&(3}nXo*lA%Y*= 3:Tc5t,hhbhz=3VV$E/,EYr Q!&,m? tu DZ?d4- ADaFBXxEo.,EYiB0\ʢ]0B ˾']Ff!FIP у0S157h(6}Ai(FP ^ŊV0:|aO.JόBpQ!dGv%`.Jv|cqO.*όBLaWA AQ(tߋI}2Qx^<{TH&&m3Q& 2aIԁE!(Br#PD`(zSaO*jOBLLiaB*JQI"t J;}RQxb<{TH&(mSQ  atE!( Br031,!17G3 pփr\ؗyl~ y\aC E]547dg _Xo2F%bd b.Y F`0*~aO0!GS.ZB`;` e`a7ĂTr`hhȮT\ҫAX ,X 10MC L.B%`.u0`T 12eCA.DuCv!0jӐF`6 h v!oȩ!j`!>h:d"H2!fbpC@1C&0j]:L`!wH,xy.W ~;ޡF`0f)rdz.X `.xT !xȁ!!j`P! qQ=t`%\4 X!&k.ڇh.n7=aL:d Ր#C>$dCtQ?450jѨ:h0&H4؆!o.\ w h :X’H, "rp$D 4;gl)0<:ԀѠ!gH2袊hk`{EQFt?hp94lD ]V^$&%a%,A@p15d%#p 4h%+EQ`,Zȁ% "(&k``!0>U;+p[Yap^nXXrs 4a>pma!zvmj`;L(9SVK9au# ¡PAS7a}l*zHM?(4. 1.UzXa穊#A4{"Q4h\<4{T$ag! :P ?$40 EŠaBX<]/B 뾩'Ff!F]P у0S1l\U`&|!iO$˂ǕV` 0!)ΙTLIRAHT a!zf&CR&(7|caO,*BLaBXk&W5 UB '&f!&OP у0C1l~U Ja6J*xX5L@ H*zsaO,B`Q#DG} L S afb6Tf>!aD>(x\5LH =ƩQAUAJԁ'F!(B#X6*hxcaO,jBLiaBؽK: z\ > <3 Y€=*${ 6 w#q{$B QĮaFbX }*(O1> јӾ:\/oL*)`v|Ct]\``K`L ɰFV%Fp+@!64`40.`]d m0Xstț|bQx`Vr`jw]4`Es2/..EQY ԥJb1P\ |}`L dGf% Jv1`-w2FaVo4nFcYɩ Jv!h >iF`a6Ģ5R%(,nbQ$*֡ۛ }@x\V]dMm(SQ%t }xdVrdw] 4/yJ`46|qO2JL.V cKG UpaDĪbR`kĵhѴ ~Q$Ш$UXi͆{h F_a7WDNQɡ)JsjycC k'B J ,.U(,{3 aLѰB̌JQ,FC\:h\?ѨbhTrhw boAM ٨bjTbj u(4n9 aX%X bb`b-^A5q,o=Z!5~O bL[na 4f0^e@c]h3.V KبT:D LB##Cb F3a0E ##Cb 3a.D( CB3!,E( CKb%3a.u0Az$DLN+BDDv!0j`/Wj(z|ƣ4H>"'.J쪁g-`)zt£8H:H"榖pDE!x\Ձ4S<0AQLT5]مુg J؊%!)r"槮'"j`@"{χ|l`,ztDH:"榢pE@1sk|I$"!()bnj.B`k`.G`>Ȅ䃨ɩ.rr袼._ }l/ڋ("Ʀȱ+#j`!ux <9218Eta4h<nϗ.#2: ^HF2#!/:950 k`Jf7=B(R1$!EC`DFsa4Âf4CbAa10%5kyrvFUj0 TCQc]TQX7>rAãn0tCAe98dFtQo4^ ܺ3[&wB9P! 3rvB]RqwqWu,jcQ;F ɑXE_ x}~7ynZj*(^/_)%*Cr}`a]yl?VF70!זK+BсҰۧua7HcI:L$QC,> A$^; #!h, L$HQ:$-|2VHPB 4!600z`iڡ 110}:􂡠J>#a@eAB:2X bt Flcr tat h bZy!*ʋ\#GzP֡twPWc$`&@|H`aH*jSA$=fØ| 2Txh(:`P2H0: ͇16:0:d.m|fBP4(AIDY=:0k{ O2TXrH,E>Lp Ah E0@b@phLv A[w^ApR 8lbpT =4CįAbSnh0D:~Cq(Eɀ>Ld(ԧڃ&޼o$ܡ57BG L`&JG7]d&Xs \+~IhnUbn w] 4tV0B۾'=f%Kp+@!pU6.tȰKQ'xfVrf*w]4WA2C_hV33,K$c!ӫMht lRf6OJQ0b||SPwZ:ҡ `Fe4 b%hFn@$>C) :InܬRR%(: V>]E:Nstb%h<.+F#a6E  ƒSCbËc!0 DxGYi#Jv!x ܺ: Qt'u|\\b]4GOkZWbPIH?tb94"7./IHsaB!)"fG%gp+qd'1£/N~!h.bnTbn u(: #a4% R1=*H.V#@C"[ R& 8!2bxTrx w[BCrJAJ=$%F̏J/.UcQ`\}.yp+ } 4ew9ca*t( ׹_*/a_,0篖ÇWDσ;?|u,o_Ju,k4ouxy@pz%C}:ٹ$u8_2:-_xyYeÙ絿×~wv_q>5'r͗|}rb9J}P2p8XT}sPn}bQnO‰t|5bX/L^#^eUp)aw~_|w_?~q޾{폿|l;z>k<%2>}?^/~7?޽?][ʒ|w/ Us#9 e@֗o~x׹?(6AMh/߽~]ͧo'o{?}bؿ˳4_ax/ |ܕ\_k80˻_~^+jeQ)أ'G?e8= ~b|*ndeGY}~<^[S!m˩){p`лr ?C'!*#,yxcvrpo[+|0Mj5ӲCxРpq Swĵct?o^r #/;^ө㇝s|eљAIqI_usjr5u,Ȣ|PxܙZ~8޻הq{x|EW;V_>k}ZPxi9w/ԭ46+Iz򳀼rj0^-2OqVǝ |Vbf|԰<+9ݳ2=+8w>lR 7+ǝü/WFf9Ysr8_.+udp{D/T.] +)qnY9EtlY?EͶVQrxZq>l\q38|p"Vݼy;,|pNOyT>lV/9;㽳WΎMt?Jϗgqhﮢ!I %ppOeVE2/~d̼?e˵9/w_!ct\~IavC2f|ظsAƦqh> stream x՝KroeLS$$mH 񒺢C/==|TEW.6^ӫɄHkL_G_O__K;M4oIvoM_~eC_ƥ~o}9m~ ަauioo?[[gs~o{yg6/n^^= /qs]CC;/\)~mYT53l7y7_"nn;ifI?0t(%7&Ec븮0/R|z:u1χ̥~?_vSej}~8Nbϸ/|;^ؐ~oalLVUtO[7~v?K:Z_fSϯ~9(ݗ??fFW ~g+?H&{ZӼ͛+I5tLfTyU1^TO̱<ͱ44$wcm3fޚ9_m~t,ӗ~L.6^f[1ɢI3-ѤPӱ*~]ϜtWKר>4ކ谦tiizNoK4 4=gB?QW,~o늖CCrJM?Jiamox7k <{i'}g6ӧ6 5?&$՘DC?ӿCP l+>Hw~cggc8e3q׷.9]^ӛ<=g*ؔiFW\E?}!af3M/[s?%_?3>7 cr3GZ`f< Ӹ Q0D+AEE%{_81΄S21s28yb#&r;H/ez(x`I(8'bp>i9@xURy%{.cv2·9bsW94F1&a+AW)U 1/Z(T< Slwl0*[neHr.eҸOˉZ6ՙZPQ *:nZJjImZ>C-G_.OS-(@EN{ŝvDAE%OqЯB@Kܐ͜-gfQ.,``Cx0N(+n **A~ ~Y`P]ҏrrFRB9@xr(+T^qwTtޱFvB]pk)+yz YĢtX@ lOWuTTJ *$dw%/K,7ҍ]r.oBQɑKY @AK:*ҦG{# nDC$EÝo',rEQ\rFu _! NnogEwrYA\^r eWw#p8,]6!Yx)+gl-IoINr6*' m粎AǣS1 O3\@:Qm`U*\E֯A06ΠTwXhSIGl˩ަF>cJ>T6xꨨ7UTӯ٢i<\s(/?v5]}) _ i\z7g=**A~J~Ba?L|K]@hOtX0 sq^qǝPQ *S. tp5L|)]S(G!g J́ossI{ eQ̆hӅ<{tJP_\K}Ϊ\}U~YהINp/:%Me]f_JRMwJ ~pΤ# e~τ\Db$I@)n5`8%T*GW#QKvK0s:K +\ҤcQfng *uTS;Z ,3w&f8$%e $ 9{ ~X~5J^Gqx fflƾ T`T *Wl0k&Wsǣn@r >̕sXl 7X@@*: "|_9a\\ezLsp0-./?}_i44Sl=0T_(4Ѩ4k9U2/<6}I0C/ih02lGBX/PQ0fЇOwȀT r,ĢIbd9 @BX/bQ@\SAP/>Yt_rxnРrhrRc`EB#ݪ'rqfӏt7BJ`H9%a! BF@hTEDU#!"vB~ %Iwg) G$3ɵ +\L⿷>[JF2i؝Nl)WU긩S*VB3Sz>x)eC(SCxA‹TϰT*GW# paO~> ۧfr!@! WU֏ԯF@m@յ(Ϊl魁k9֜pS =p#  4JPёX%@N 0Le+V^s^sy =K҂jȁJq*QeKjd\d5GNrWf;BN-K܈ 'D8*t͔q6ѐ#5k2Jӫ(;F=yHycA& f`fCpH 5 իKt.g7 4*Ix J(){$s =AS ~ h`X/~TL~ev *}|wq P@N!DpƐ1 ݈nU2}N |)K4YBd U`uepyY;UZz\goff޲]v*oSWU긩CV2mã٢@8ʁhffvh*hUD# xv1\4Es=288*Uȅ]R8X>#gl7-2 5Ȣؘ!7@DD@ TTG*iE#GԹ JtBPI9(9BLP #R%)_Xʸi-({}; .୹1g8iJ'*\̲[B3K@3`5*횸JIi'94r4e.00-b"|>[\BX/PI119rA3\b`XP-N F^^5Bb} TeYa(F[#xh☋D"&j!  ЍV%81Ln*OO?+R21)TxH1#! Sp,Q!hWPʱVbf2_p 6Q^fގ'JF/sl l._ *&qSe~TB0>7[ow>pSQv"{ ln " *뇕WI$ZY&E.rm,ʞ2)=pq݂\PS)gSKO7YnI24@ @9ϊaw Ut$:VIBLWwi~5\4eye&Lfº o1]ń*WaNDn_s ZQ Lז >l< [(X%ےOG4ha/FvM<Jyva]x{XOf:ihЌ% ؐ\>SphTEU# y<'?[DP@&@A9 iBѐ2Q!hWPXQE(Z:eq_PB@rf tBc%BݪjD<$!A Dd$"mQ!h WXO|H z / eH/1|C+xt p*d =-(JRMJIyzd}YT"44*UHqzg?,Ŝ \r0 X``,,Z\JTY?Q2Ze@x|ƐSN 6"܂JPёX%9LLX2ʔ^"*U )| 3z1hѷ,݁ W@7+[^ hn?4FxA߸FvMv>*5`fH,͟v * `6 4N/]\cZj8-Pɬ~7BYN Ht@n:!CL0@zaz0]rz}SU6u*;!|'`}g/qAC7"[ 7ʓL&31-dhX/V  ^b 3?x w! Wc*4pGLؐ*UJ7U~*U@`Ipo wn?rq3&0F7qht4|| \JTY?PY xN/lʱt0B )i|z*zUD# Xq5V|,MgFqF77(/J@E%H~t#X\rЅ@r^ N rrU\JTY?RY/Տ\_~tk{n_vbx!g^%Nz%}??AJ~;p36E F A$c&P&a}=փ ԣF ޹g;xF2H"# "!n1y(E,}AQ#6ӡs.:+^~Mr~\<,EXOKX}]&ZtS<qE: qCFTbPދG}=փhԣF2g%#$i2-̓ordi6Q5h8*m{lҲ'3D*%qn*U0eJۇ"wM!\y] d2T,Hap y[ߥx Wflf H`N *Wlkx%.V\}Zq7@(C9J'0`6rpɅUK`yM[N$ϐ@glfJˌ~s6pWAAe0Yjx pivOu+\Mi5Vɦ8~6њt4*회!ReE0v]gTA6C1ih02ͨGBX/PQ0fλƾcbRʱhpw,r AcEj$r ---DX!$ (X'5z lP$<A ѭJp\^ N7BJ`H9%a! BF@hTEDU#!􅉰}yS ֤;X `qOJ0}ޒ-Kl,*UJ7U~*U f?o~<{C'Cʔ^"`8`8*Uyʓ0bbeʹ/E|r]pJpxq*QeEjr:>qOo>8 e )g\pR\ȃJvAE%Hltp&VO_BLbbe1/HI|B]Jxq*QeHjD|VDi>vs7;X iG%C߲l%4kmdk2V3tY\?B)-L) 6kJds 6$hX/VF(s6#uA < sC~:'"qs;y~?>zg]'.vQ}G=p.8}ѭJFXQ+_ɂL&31- dh`X/VkJd,Ƈ|>Ǽ|B =U1 0M5V.\JTOXʨOCnVY@?&,P3yh<8M%w*QeHCj4^%y1#7pXr.rpJp>p*QeEjŠE?MXf{-EdAj@D95:1Cn0P @  UӚELW" w*UU G W\';o 83K G%̴΁fvQ~kTu5*UP&q~<ْ sݬga$sGad2wYzz ^\|{x"H *<)ר4֋HԫF$L>|ۯLK:$*LvZLsx3O+Bݪ&zgxF &<"P)ר4֋ԫF>#%;"L,;b+fYҋl)d2=SL@RMQ 4EwNȨ7Ee7! @.9K` ~X~5<^"6`)PQ.O)[*P"_ O9]RzyǠgρL|l{Y>3˖ >t=&AeXj8):)nlyzua۸qSݴO a]=.Tcr-*&Nq/7K~Dž*5m̛-jЖ@ cjCo=O=jWob#õ죆>jO].U̶1>/&20jaXpx8C9`!߷5Ӑ|ٿ'>qG`|?c-Qp5mU-}®:TD:v'vYPʠLM~|jfŁم wFmz~Paܒm9B"( 0_J)*UȃypJ?oxk N2Lr4Dadc:`:UD#VO?KYKDn-lix|M@@nA97F51CrP U,m^_}fa QEӟL4C$ fS fR%_@~n)qZn8,8`Cxvh EU# x%fk;dS\xEs|,&K"x)*FTpWo#=^ϝN/.B8C܃A >驒 (߃5*H#Ta!%?`( .|μi/\M! xA>Sp4*" xV]w߱ 6")h(@#cdv1hX/Q5y=ܥ6'"hʙ@L툃 5֋LԫF&m&4S޲׽m3d[9˴9ǐS˩B9UxbPp! E4t#2UL 3vdzz-y6r_ʹT9@ p5֋PԫF&K̤oe:٭.%_fvV _Ic*_5.(?KXCEҭ?C[?I/x-!n)! DBp,Lq%h^a#"B\ʩ&HE4R8 T\#r b"rMth}bC- kdv%f&z!3襜Gzw;էkš WS}"gQɦE=6A8Y sݪ'?|PgKWn(SDRN BPHgG>(^D^5F.j'[YXQ3Ԍωp5wx2̰J5Æ RŦOKR%qSevT6٧LxٖjCTSCA"T`T*GW# aO~p ɫߐ|SHA@b8TT*G@W# 6!j#z^ =`rpPA!:PPTTdG*sbxa/l7SKB\"pCTBT*GXW#+"vV YzldQv-Q Wӧc񐁇U2m6&:FvMv*U0g{m.wRܶ]w.'p8,! F6Spa4*" #|F "!ЦPL!@F~Sp4*" X; Շx馛u#+dp㙉j )gcRaOkFlt&/R|ʍ$!$PЂ!"ESp4*"!sZQ@mu=bØ6v^u+\AL ܴϰdӦQ̦N*&qS姽Rd-M{[!9(&d 3!%w pdT+կHL"9\HX E=eS&{ 4s6 *뇧WS,񐶱; cGg2h#\PN'bI98\EGc$Wwo?%"5q^va+1s|Ի{LrW1apX7ڝl_VZbhO 4 WӹIhGUӹ_u%y lvFsXCY@*O/鹻Ωܛ C6ICӽ-ahچ,4>kF=h^=F.Ϯ,t0F7" 8B@ S 7R%_ ۀN܇ۈ|4J:*^ pDžO s<0``TTG* ubΧeyx.($*U ~+V;컻c+ޙlr8*L$&sAFvMFWV:酼SK|b.p8;8~xvh EU# PaA9Xtx, ,wr E,U#6u.]++ ΄UۆL3c{4c+=cJF3ɪc j*;޸JRMR 455ub&@ . R. 0Y]HC PNC04C}L}fQ!hQW$x.XoP r*ढ R8w:@BX/RQnSI*|dP3c=>(  ЍV%7[_74BHH9$BDChTEBU# gCW*&M݇1۟c+麅U ,J1m{4;tl *uTyTA%}o;W$d{dDC0"r0Pr2<ÝqpUPNPY?RQ@5Sy=k^0bbiʹ\@wqǁW9AeEjr:>i[[q8b i )g攡М2<5uu {| '<5EjLxbc‡ (PQ *:$\yY/ AxPb $N1$@%J~~5Bb-B WW\ru'+\ܭljqT2}3}%}??JIof|u'>}fΐpx x9\["P 01|яbaa 0 lG3V3 ܒq[=ܒƺmCfb[r2t!,Хr#'D9 cߧ yѥJ`•XKLGB:J9A trxb%}E߷D5Q>+ [|%R\"%lzU2@?kҋT*u1?JX^Y==F~3wSQvS%dKTKT*뇕WI#ZYiQy^({YSWUOկ1)<<0C7?N},g-g98ΘN*N=**AEG\cu$ڞj}I8q]vY5YnjkܣchJ~X~5,HEendstream endobj 555 0 obj 14825 endobj 559 0 obj <> stream xw$U+tF0aьx=6=qQG!h9˯>e23*q1ݏ~/_}{7$Wws밮kˏ>a_:߿ŝ;au8ǻql7y¼_~E{0M|oۦo ~ˋ緥;^}/?jfu ox!+?T&>ʠ}$>~x0:|}eˑ}wwτc<>yԩ=2ltT[H5VLm1]Q6?_~xiKxܺ s<@~_KG8_Uj6nx7saN!l[cٗ>wnsqp}@)n#˰,i[ğ1E ލ2!Ò?t6hBp#4?LJ 펌C%npP԰~!-6<.V:Zk ɵ?k+ÏwjlTJ\5S +~_RPJ;Z!ښPGpob|ӗmX/Ӱry=t#{JR((&~5T U(53hօV}J9[>h$/l3LԺCaqCA>{dRB-XonA|3 t!gYcwQOc$[HddJ{[z R&y|795ՓBHKkR3ɷ99🚓%jr"&w"G))b DNnapr[ )] q1Aޚk<#y]4>x&4Ӝ9KBӜPY1BEBY}=Ü@9I3 CL1T)g8ib8-ЎTѮTj"u}OSyse2NgZT*,~I?KR6PPi2JqBOe>V55~WG{|=y50?^O\ ܯzrA㺔yGDmT}W*G^ BHKx\ɖ>%\TRƊa-ЎpѮ [[پn=|JIFU[ ff=R nK.5ab(j "!#T꾁3 $*m[E.Ж˶)lڣrٶǃܒCRB(h˙]KN#'Nb2!A:,B(h Ck^| 307 % a!4#IgT DhX懡mV0 p` !#DP]3T~owu&Gdކ8ZG&)][PPi3ռ->ҭ/CMd(9^A B;2D.1o lKX˵r<@PcH0r3"f)e*nj-FK#. ppcA7 !#_끗|M Ps.>>+ʉcT@2P;l(dT>bZrN[}JyIV\BHKZc-sְu8IK)=b RZX1ZPڑ)uA 4ΥIBaOĜ˜:!>V b!T$0 L(W0IPM,?b ZzX1j4Pڑ.KunWwZ)3Sꙣptoz 3f<.nn9U&!YBGvsC*j|wqzf["z͘5 +ѢD,!YB1- HE@-uíbec +=DIl` J͌+uK++XnߐX!HТPs -l\ * diׅ#-4My]<#c؉,S?L 0M'Z}aK Ba ff=0Bևz8nM 4r) R@E0ЎTѮT:y?,h;7YQVʉc\S^nTRS^nBEB]T1qĆ^n/ Ƹ2m䊹/Xicň*BEBhGh+4X_gCKѴßt9/Br9BH(7#[6Q}71pM)?b UX1`tP,JeMCy|P|U[ڋ-寣˖A߲wǓ|k=+ܡ^7nw^C-yo|-kPQ WV"0RZR*.bkW[,zrwz]ekLlO~ƴOBƋX% #hEhimd%oݺ^gl!}FSЪqc UHnDl,$[m/6u>Y{3Ez F5Z|*TA+2EH 5>{y-:e$N2[!P91:B2ʴzϵ\**RX ݲQC9I] Ê3,ЎѮ DxD!O؞Fm Ҥ58aN 'V-a!T$$@Is(Xu RDQ rz"0C1X 1]疙UK8[tR8q_z;T*G:rj4 .gvq&v|3h"'SpAJ? B~` ]0"}~> 9--i&c1g06Gm0r3f)k4 B0Md/hiPcA& !#]~n/Xٟȋ>^Ї fFͺ ONx w(5Z8C\A$Cg(BpJ;#XuHg(@|ߣSؖjRhiz4T]wAˡ],JڕJat/^LMD1(9ué B;"D.1u &OrmMF%=ʳΩJR ʂ\f fdf=s. KcI@19'5P 8BAChGh׃(-7ڼMB*'YiuLT*,רPH!wePPi3iJi4[oi# .4 h hPڑ)uA 4|OK1I_&ƂPMBACYԋ}~2R9IC^ R!ÂBBAChGh#7o"ޚ%6XosʉMfۜR$mrLBHKj3T)Wq=wwŸNXT6TxRŀyb "!#Uzk>g\-LA㞔93UBABH(7#c6n!ﴏ=AY*h6Y:paK+*B;Etr^ݢX|w(zjųC7ftc#*ŷ {/I.BkG7!-'u}c`oNR WŐ7 v|#v}77~.V߄Z89!|8x : A/p$\4BQsGcPqNR Uŀ8 ~#v]8ugKsnwUendstream endobj 560 0 obj 6958 endobj 568 0 obj <> stream x}ے-uOG`(P"l$A mHw2WVw9(q^\3k:{uuVv۰< o}~Oo_ܖeYS~? n^۾ezq9io2>pקO~?p2ooii*~ܳDqn4?`?s[m\E]u؟³;?zϫE |3oQ~!+Bnv)} ߶89A̯˾%|ͻ}Ax[]8|\@[>ގ67C([i]bZu{"|tQxw?~\o봄xuȞ6?׭y3_~ 8e>) |[CT;@s:ܴOۄq/T|K+neasDf§}](9&o1v)ſf U_$_N9"7{֞.߿q>@OnX=}M~s'o[8mۜ9.bnH~ c#1kYo,F$%+́rgB{`pk-vg}7;N#-`Np=^`<v6W#x7~pc'㝗@ XbDXPrBH|ֈU`"qoSp\B<9_oZ;FTr2-bVga1~pY-T΃[o,=ʱӭB9jݼH83bkߖ0J89Bw;t;Ȧs7~ۦzwH?(t}>Y[mڤeZk𗮚ňd$گk[9}3adLu󗧔.O- bgjr6= ֟ oTX5ňd$3|4^ ƻ>_l6۲hr-h3a,ٲP ]uhDU_Xw{ZhɆo%ё퐭%hfk2BAtd+ء%cmy41ysJ5W7;ۢ"֦Cj3d%`fCڧnGB⧯Ⱥx>[}$=jĴќyhv֜ ?tTX5ňd%`LD9 z뾜cE89>ϵYmQpG&mP-@m(1 l̆2 B1o+ס}wm­8ܣp}NgdVMpNjmkDWueYH w[k;OiqMOs9><~1ǛX~TEB*BAKByC?'\F:kp \>ܨ nQHѨHQl@2BAKBjVh@=ÖsJܺFs&l|iΆ,ڮ϶k2з,Csr3 ˏƝu$Eݘh61к>k볆,D71n\ 4nخ4J]ݶz?0lszꦻƻӠ]X;]-uP"T vhQ%[A`Atl0d4 /qn_4_M"Y Sf1"Y((I`K&sṯukQD!1F%ͮkr麆'`~jx20,C׵r.֮<]a}*╔_)| n1wٜ6 4&?Nݙ aeYtf' I|ϙ!Cf!/$'#HkEgh.mWewip ])\y2NV7blDG? #}]5]qM r1]-2 Nn[ITyYb)gb%e Ppr7tjͻ mKst(Vn8UG78 gkutDxWծ<@ۭ|=kӺ9CAa}r>“d%\cFuyxZ*7w"гZ \ڗam됧HI=Xb%Ї-5C@ȶO${P nnLgaD =B!#>Z6qNa܊O܅C/+#zr|N!r~XS99H-V}Y˙ˋ'lljb =ضGN6Ub$(tp@ňAQr;e%B%}X[x[Ϭ|? A:`Hj&[i'wnxC0 !\LrR"/Py>T^e̍u8J^L %\7\;np)ZCp 澲B=$\߿-S<H-ַGV:W̮.iK3SpJ,&ς A@rJ1*,C%A* A:-[S7=wB8z{W@ȁKr*.kxK.]ϒ "aU Re*. Rd@uAwï^~m[@zO[, l =]FD%fTYK2Tmm{EGe[8KU0-YzPG5fIxL3`1bSQbf3SqSn]˴U+7ۮZc7 Lr2alL!) 9sHbTY *9YNo*B,beP]4߾ G7qy0݅,肹 FsZFD%KfsYKT޾r,Eke\ᦝ blA-,L*c -)(ƲX1+#}[Yo̟4_=Y[ԕSPT4UZ1S5rL%Ez$J˂=TZҡ*Ɇu lPkCCARCAJ 2"(1,D4ʂ=4Tꋨ{S-s( ں*pJDW%-L0͔0)ŨX]$2IEuYn\lʖ9RJNhSrd9U롯J_RY4pR$WKEW)RG[JDR H? jB)/*T! Roe,ZD󡹹@pY DVCDV`nb)p,#Y(Ed%*>Bŏ3ĭ^z5 ਷8[TFDI%Sf[YJToϚv{z@ >.BOP=mYpA5L%\0J9rJ1ʲ,C%7*~Ҿu؉//6/À!@NuY@u(:K2`+fSQe,!WuV!?gjb&ʰ-"ʰHdXX ?sR2,aɇʰ|WпDU_H=Çjo*+~j~Jp-KV)H{[UV['KИ/q!0>5degSa*lYlTX,*,rʀ)XrR*,Pas*GN_oO77'2ct2Ge̵Y e4eDAw5*}eH_+o, Pfɚ*wBB/4C}YضZW*&HA@rJ1,C|%*/l ΃M7WB 1ŕpSK5FLK%EN$ʂ=Wr맢uWoɿnBZVW%>@CgABC"gȳ+#"pBDJAʳ,C%*ep\XZD2ǖ=\R",i@,Qd@peWR$(b=DYRz\妩zXF+o+`+jPM%!SQqe+GI[AF[n>[ȭ>jb*/*V![-0_Kۭj0ΣNjA-! dM.5M.E%+4Q\EU@g1}WE%*5&vq YDVTWRI=SIe!Y UW졺JU]]\mNe[ddPȨVE.),j;؄In}%M7J 01L>БubÅuSrbczun@ȑd`W8ϬVHKA>mXL=GW x̫K(c%pA&2 JY(qf` CYϭw3k (3r; rՎT8/vHIXQRKa:1U0jDY¿%P3uTA`9$rP,(?%Ї4v0zΣ o5?e:V P>^9F9H-V}PbnC/_Iw[}8B+~YK 1[nWOY%K ,]>(fY$`p{yPazU2H["1KEy:liC0ܪ[CPF aC (>vLY#%KV)tHmo]m늂^.I]p\KzՆ5bD.؛)e@ޚ^4R^s$R\ann~lJ,Fm[V_]*BwZp T[KeNeb)G@tkw6C-JJдne[O\3p+rg +eMeYLPpj*>M.~Fz塧WpK$~!ܖf`ҽH\mg'_doo0MWn"1R${-> *f2ۦ#rōzcUT8wؒ2e4""[%eR>Dc"$t "dzSJȸǩ#&[[ؐR,H#D3:f:QbcE6zgӰΧM}Z~VkzJ*ֽ޻2%J 9(rWBw2VoTOX""1k?nYh , S!Z28%pEj@ETD%Yԟ6LY*Q!Ѕ@w=A8=YFݍ\ !}qKWƻ`E䊜89.=|)b:c*(2*Nĉ0b;wiɈ1\D҅聵JB}pCnd!$5!b)Gg >bw綝;;J J&WMw~Y:A@[KUT!k9H-V}]qN7Fzc},xXXw_UT,,TZ"1׍E,Y*>"Ї6>DW6AKi`II4I*,\I =dGiw%3JyoApCr .Yk?? jOfdD,I,{?ɜ?ߍI ;mwz=7.\_ 2RK{){)u9 9(F{)I>drҼ8r/FE)jM AMMd9rPnS6%]6CW(ØJԘn޼NM,L &B `_5l_%6_%t5L%Er$ _EUw#zy]\+ep|qV ]M+,ѣʈ\Ie!Y(H+, ’.>Nii-m>.ig̶֨ -a5-X31k.Z&YdVJAږ]Qx4cܶqf611Pw3;$h3F6c6wt3nh˯]a~B\`i*&F4#1{00gb4XS1 QS}d^ӗ>2( Ӿ.? ?$j!8$qbW"k||/j(D?0 0.ܿw_mjWD3妿{{*9w, zBA{Y`A˒h{_@fF^@N^0b]Fģ F,BAyYE\T0!^C-wO0`9(F{-_t۳Ȕj{j~|M|9ӝ0%u34Ђ?kkKc1eZ >*!y+@3Ę.&w*<z`0,GbʲX,PK8\tF=[VTf!{S iM2,iZg YgIMƔbI+BA:gYuܨuݸ 7:}W t_ _/}2BA_YU//,6Cm#1  @7jA¬JU5̬ ͆jD  [aYyUQYYyWGC! ZJ[Je|9 XZb=D\Hx K9ݺ_q6gx-UI >4q{>0'Gb4Xg(PgFƕFݻIO6qe/R/(kzA%yA]F<LBAZAYMn#ضxNptw*; ;}oL0BA;YܨSOـ\Z?ړYӘ}&E kʷ)2G'k= %ܞ=Ʀ9MBA=YݓܩSkr/_?'Jyy*3}It i$f!Sź>I>%BW׃sYo.1c̅`IIfdܛd9 Xb=dF=I+rm~vtߺ\Ȳ nObקaeO@CQeN2,#˲POa$9j|;Hߛ^k^xn8*FR4fH I"-E,2BAHY'+v*{M۔WxZӢi^%KKf^I@[(fKI,;Q, ]eUyOjmz68cO{ ^VF++/+NU~5*j(D++ 3e/_EtjjѝJbc1h`eV2%;Pڔ-l'-tVڮՂVV #0A1VYkkQVk O6bU2+p@JJOeDYH ʂ=\dF]2I[dQ!iS_.K;J5VdUcьdYƢe ݭ,JڃR+ݮTaż^’=\0+Cb²X/,T/l.ufKfO+d٭s|?I>^bZCj CՒfAw!smZ%YAq%oE.G^n^%Ae,GaMC.!lˀmIrzrɤrL]#gޓ&u9fuXm-/l5P-\_?&g>yӠʔV*)~x+݌nӴw43hb&m3"m,F$zXɑZ8jE_+ ؄ "9 " hb9skªwgӴZ;&>M2iCuGhMÀӹT4PyCP^ZGwж* }І sAgx w0ܡ@t@_~Zȭ!pډa֡}Ơ*WЬ!2 s!Z0`9,Er.çLէeyZ 5?Uendstream endobj 569 0 obj 14004 endobj 577 0 obj <> stream x}ے$u'LS[dfH.$( \n&a%wa]zxTEfW4`SsƻO{f\Npև!O߿~߽˺[_W?_:Wnm-o_<2 ۧ_&|^y[2(~a˺?M0%>Ec1w8M,&v ^ZWVf~K?zw| O_E^2ٻqqûqYe~nl.f2^K?\D|-;ض.~HD-nk.5>Np VeBhtvBxƓg8ys?o-reխ"e\s~~q0~]x.518BTa X+ rPy83+9PK01_PDt%Q #jׄ9GmQir^rE,^n Lo^kEia/5um5 sMJq c4G5I jMÉGUS9+M2 ń s~‰E(~U04ѨڐfFmY1ZQY1Z2 ń(0a Ȯ6eXװs,Ta| <&LfW Eih#hȑhL_, @ #0 4L֡@CA@gcץ5K|[kbucJ *1,j,qK#bBTbC%|k%&/:}Z5|xC^ޗJ0"$Y-e;^EN2r d7O.öx7N*+]Ƶbh\AB$b!$2t D _'on4ո6WfŇk܃ F!?n|Mjʢj,=,Ȟ,LT#,b(FńY0aҚŁ\vEN|×wn&!l.7lV,,GPf5Bj"#-MpQDAm4k# j#&E ń1aH~pu'wzcZ6Q ͪ.5P0P+7,b(&#:T5ȤV5I9Tȍ3v 4zDj\Y"lڷRvh)֝R؆ _f,bcj"tJQ}tbU]J |,-jA6R{ei Ra 4KBIU*o D oD,*%]2TvNmp5t랩>,XSBJEaF5JA ˆ"X*)JE E #^A]<^0"TZ9KT?8V6yP0ye u™1L ',b (ҡQu(aP"-a䧼1S^&!*T}+fB( rqBq A/Ŋgv5ӕzDfa5/+3P LCQ L]xVPV#,njs3u?ܮ<1^ыΊ NB$Pu Zu8.z} Y0P(Мv!aggEˣWz 'ÿrk84KB[7ɚ M>=L>>rG*O.5z&x0F\8=ܶL6ignF<"fp,_v]H!Z|U}껅}ې=E.WY/k]N-w334y޲^b)GϪ@d.-9A7y;OO=,_r=q]UI>f=|{x^2ɘ.PZo~[oW)_ߦfmQ6Z~Ƃ-he,|)__:ҷL~0uqxj/r MwguVOj; 0Pe~,o/Y9@Αz9Krmo9e Ĝ.pӌ`ڜ z%򩇶G!ѭy7󑓻T >z Kׄ7_a[t%4Η8ŋg_˾+v:} [;9h:<χWNXw&5rGp@}g7.~F4l7w$'͡6r:BUnzP`Ìkkg̸Wޒj["ݛi.fq v?'Oo^V= 028Ķ5œ]HP՚"lKNӏ/29Յ/lrԆ71{+uR06 xSVw-;pxAM_1Vш=)jerѶYO"Y3f P,q >Vc> t,< L|Ñ+d~0/Jo4/Uy+/pZ_\|S~Z4 ;/DLRP&eÇ\} 񇖘y?i5n.iBatL}' soSNг4IZMS Yo!NS,嗎ۦhZ"GƇ@I)΁JS֬4ަĆAV3"Rm :.0n Czi|\ Z"G.o*AUT3d JK8sm ZE"CRɰ^SG:CXT@c!r5 ah,a rjp? NXZ͕ovKt6M.aax ;[__a=]5.#q]|JnpCJ:C!($I#],X&אlB.^Ό 49oVxaʨHDxBDQHQ&,>E&?u$8w5baG)ѮDZ/"PiKڟcJi$KvȟI).l&㒳X9kT)na# Rn+/B  YT@Xv?cԔ:xt`Tu?ۑg]V}R.dFT/jj3FTu "7 sYƺAyV9p$|7FJ`Z2!QJC!($(c `s7vϑ`>#1*JHY$*JE!+ EYi#º^i8CҞƗ޲ۚ^";FMGaUO (.l $Xa"paYڦ]OlFx{F絮!r kUCbkA@0H02!GZG p6[-vc _wݔ۴U *7P{JCQA!aDUz@ p?R =I šR]9p$ۆL@%MeTC$+ 0Њ@ buH M%pD2N؟f%U5KP@PH8 IX} X6;;Gky7:\"GNnT~7tկ4 AKPZ'vv_׃9vkUB@TosmW*b b(2B*tu4Oz2'ZoWa\\.~Ւ}ϜA5ĐJ SĞSls8uwhQFVmH>1/z54הOU#i&v*ݴ* #J)|39kVn>5.eꛝq]Tkov YU}x_' LZ:aAyk'>{U;A}7 'PBaPu@C^y&OKuؖr7ݣA TtNwR=8])* Їef/_ݦ?ˎ%ϱFW>ze]OEmMaZ=D3~Cp 3h@@ՙw; uuPP( #JkgQi+'TG ]lUm_/\G"R\D r]r (w]reF\#ҴXO(]/?>Pׅ5ZtfAHؙQ7T:W71hd 'E ()5:]|ެ\-N|u)#q*8Kt8C d @qZZ/xllZ~_^>FT9R)Yz Ji]bP*`,a4Y tQi굾JgQ~,nJtעQIV,*a=&սGAQ6A!aDi>2d:iӐ|:Ut BWu*T/W0 :)$L(6"G00|R{JRfh3{F@fcu3Ҭa %e 4.}2a|Ч5.ҩDGV#Ѷ Pε jaa,aT#Z PYVO]fCH5՞*ՖdP1F@p͍ukgb+>zõ$ {j]@%<^ꆫ(xcU)>Ż:|َ'4yWWnE8-\UJq$ԕw@P( #JK-P' gm*qZ pkwe@Hז*¥]((Fe *20Nцfw9+nZ d2ۜLs̈xFnA!($3 {8ʙ^U6s5b6/T.:WxLh<b<<3"bc(D4#a1ǜ1h'Pm771y371eSؔSC dt#Y71ER7mϛ}DwNE|t_zx6| l`_$%})*.9^ 0__t_TӉkjdz E~]~ݗ4̻O%np^4]䃮[![M?-#%݆BDQHH-pRuݾTqoS~}徆f YPaBfa;,"BBfiܫi>jΫvymT?*F$WW*B E3 d=TH챟Pڱ. Rh@mW,9++zʀ9^1EXTb?BWX^-X$uYc YeY*A?e~Xja(%($k {f)f?<'!BA vAKeD$P( EZʡ缔l i;A7햵[onYKI`>Xk(J ($[ {eIeEɔ![?0iA+6+L $2lI K ,OFD ^X?8~’h\0+& H K , ۴= d W;z^y{%th%"BB^t=37s50,<7Ι!>`F-O K-m:j5Z^YF+K) Z$ᨥ}N'rKcòR 0Bܦ׸\Rҙkr3Rr E]7(|".gه8;׋ n?L3``JI A2Ҫ JH)M9,uneH-e ]ɔdgJDId咨o,I̿5Gcu7~[tBM [W"mq4974Ņ7Ԧ7C dO#Y4oY w +zC#*0i&4rs1rSOZ65"BB"-|6.a蟫\Lie7a'ffBBƑii-{ъU _(Ts<1;#b{@BDQHHs<0S35NwΞѕ'i7`'fd=TNA0zZ\z#ziz ߼II<"RGz*Ϡ&.^SgCCݞ\n.nO`gԉd#Y=A-aO#G {(40ߓC3SMBS!CQDA!!H|O|<ݾJI\GCm4EQm> MM *$4~IŦOEզf=S3mĞgP~HڶbA) u`~$a吏b3rOޏyrDr\;O`7}izP_ HO9f<;cKMH*Ti@`g dld=PAmr,x%6箪X;,I&O`^Nd`TqI;PF0㒠xc\NHأSNoP۳i4#e;h&@MTK7*>H*i(D&= P[&=S`XwSovxlwZEJPו`}L];=w8l%]֛~5}-lMuoBe]!bDPHLأ7A|oSݛ@4mg~+뙟4 otO+x slQ"#F~ș#$4t$D1"($d;&я"I?O]7pnwv[@v+RNF""h3`$#؉z">ڊ t 8pdج3* gҬzֈzÀa G >@'{T} FyAǚz%0u-'1wh^@=ye8xK}G:mܲdhwɚ Aiw@Ȁid@bDPHnLأ%vAA~,If}f} &jHdP & {Ih'3v2a3ֺʢmDkM `ZJ"["P `LCb]G &m>^g5qt>ŭK~8b DJʃ X A26Q`]WEACw|K~u^kTvR8æO:5)7S0ެ5a:%PL8C!!)0a~ J)Pg۩gP6 Uc' )0" Q m {[Znu:[ٞwb@حr5>4k0[aS0PLAC!!50an K5^žq/WChc&MJi@) dz< Q&G"BD_i}J"@D<A@a0HL֣C"]EqAcBtjv sh.aYw ¾&.DtBB6`%(vxÐQ "UYcR'" @0"m Q + {4V,U:en NBʚ=P q0 2h@qكc0ړ7uxzԢVÀaGA]sl pcH4U"H3%C@. di ܗQdٖpnK#GW;rkK@r8g N +hKϠ|\.ODžu{fo8[7IqV5 @73>xRye8}z6P*ۻşoşмo™ye gʤWiO;ANCoѶOķOmgR(u܂_Rdv}cT^|ӎ^|*iG Ѯd=J"#G>4i: dIT Wۓ_ D43QG>PGMA D4趝qjfgD`P gvzv~~^_ 7<~Ozit7 Nz2 t3a;< W;K ?//̄v0@ ;; ?^`0 d=<[=/yH?m9܈09Id$c2d3Y9YW_qt^Uw}HRO ;IzR >s&Fs 9f" 0`$Ϝz͡Pe4 m"WyY5} r|唃qS(PHH[9S#RNc@C\@#:ŋFm8(QS $48vqS#uRhֈf uڦoE77偡3tS`0 d=LߔFLTok~XpuATw$jRw"m2їM1A2Zww,°*O:R!Kې &SbȦ 0[3`fk A2!!,uCywUh(M35ijIJ㍑Pxm0/50SS5SIW@E`"M 4̈?Q fh*8Wu@Mk/߳qϾ>>M͐mj}4>15Sڕ-o,Hv05^bj~%ŽbCkfsXކ,x9gy2,ߘ^boVdFĊ~l3ѱ+/S8eʯ&Aբyr$Lx]Ɍ+ň圮szs:2s˅13.SM1)01LErNöLqԶꔎɧQb#%/И)W2Ɇsl`0 SіS$}$FÆL>d#FBI5ŦI6Q6䜮594Jcb43!b)&4 3"faM#b:zsbC%YT95\78q`m_F ň-ԫ-?'OKn[fZuKh3}0d#bXzk6_*%0JK5I% 0m9U/ɿk߶ w5iе.k`0 SѳS0ʰb-Ae)B}Çkd[0.i֔0-&ʴ0ц{྘'FC߬QKڛZ2AOmfB VYF*KbDPLGGmNNKNyYJ-GnoA=i,hyw-ZJNZngsk t[6-壗$6/-#$6rRP۾ApK }QA͛ A̹d̰Xs!_1RM3B@4]RoEf7Ӝ I.lw0 aqRH8s0g.09U.[2^򀍊k/5lz{W{ b욨٥fDb:Z{s^ʨ^Q!=ns >,}ơ:> Sd^̺թ'L zÀaNMW6,iYP:)lnd^6;euݔ6:$ʴ6S[TO`]ؙ᥈E;j{=qCS,CCQ,A!YS.>w>I1\!zYZ3;j{?qS.0W;09U;(u6GG@PtS؛՞fx)G;uƔ#ϩzX)Z_G')ި~^%3̛L 靊Àa--髛n@GzU[o5MF. S,Md(Stq>aj 7a{ ܓQ3⸧\3"^zE#b:Zs~{ ~(}2 Ii m>̩)7v$CYؑ̅_ub6f{2rendstream endobj 578 0 obj 14101 endobj 582 0 obj <> stream x͝_$_O*Ȉ # ekk.^?3v7905n[yNf2 m ?<~?>2w[!}.?=|pE1η-2?i)xO&$ɼ<-l)mB_ssoܲ7g͇pk=969z6(d}-OI~JV-EXд̂_bkL2ӗXrTSMe{˧o~w~.q}O~MOӾu~M~}?ce{w~xyӿ/u[2X]zՆs).7`cX59aQhs SMYrʒ5fբ KaHaO?3"K8/)NKض6eߪȲTf.obm)Y_6YK<%I +԰YmV crͅq15czfe-?X ޷9i Mr7yF*֖Bc2qY*J*VDņYiRey@*\.~ K <@Wb 1?hFRhCLqm&U8Hj*6UiX cB ͧfXZ䡤Y] vrsv wsknl|}VBp4E$MlUhX c][W@㽚i@: zQӭ{N .V>-m,˖*KTlUzV cMOxvW}/ SZVfݫݥTd|ʗ*VDņYWe0&ym pwuo]WWBr70M͕h-SY|hSUc͒ekaProKo?͇?/~Kʧ?N.J)6?nn7i-Z>Yɪ!U EU˜}ǽz!^u1ish'r7D6@R;f&ͳ1*VDf*JaLΥ)uXAy}?=r7?c{Y mS[CuZ3j*6IoJl~W-ߚދ:@NV{f[i վEL-Q;4 AC#( jsz}GV!o- ɪ^Y~{:MlceǺs43ZŶA"X?Pɪ9D06;1q<㸺Uok'[^UZDmK)4A7=F3ݚ LhDYe|BaLg3f`,3G]S~o[.1a"iR}u<`DfF?jaHD+KձnKӧ-)V@k^GD: BC6WDm0aӠ١f0&mKvlWhӭ2u?m &BKqԫM1q1bi+*Pr1˜$c^XIHһyG"{(<-~ܺhL#uB[2;4jPhRݼm3US1gQaV/ cR {`\~T/wSΫ[&eq|%G3{ P\CeCuZF*BìeD:iLga z2,{NoRw(y'6ʽXӳn@Qhb]'SUMFkW.E(s͛G^8l9]D^4 (4A@yLӠ 4;4f- sIM:?B/ƯͯF_gA/.ˏ!mcǼ ueפfP [l.(QhrT?QRq:L0F-I+oBW;n;ŕ>O]T0t1q4 eۏnmۓXp'G\ i-. : Uf1ikw.?+r' ʐv*\ߡ$]{LUț1)cV(XQe/:?SU~o}Ksl ~Mo,S-ӨܴS0"jKQa>K(4k{*+Sz(z!{@/CZݻ"Xw!½dC o\ Pv!QaވZf\5~2gw~oU½t+(4!eͨdz T JQbq7r!^[]^;,7?%綹CInByNBEUhU˜}h%h$*,>M="=L/-\gٓ(?9OI{ooij{M>]K4uIC0 cPE#olƤ%A}.MsOaJٚv;i[>)iФc{ǚLhhZ0&%j,i]Л[f?5s5R-܋*ћ;y@AUQR4k(-?cLדlK^jY,R-KfM^F}]BLO͆Cu!*TTY(Ib^1U ~NT SN={JyK !c^C8>^7>G߆LCRzēJ1WH1ߑX1˩XLņJh(=C|&u@c~C? cvc`sljX̀ahh!ָpd?5^6"`sQcC׌ccX$T"*65 PsRs>SL⾶&*qU#U69G6GCg*6Ui8èz-]<+ԡܘi4#0i,%Q!S1w:0%|si-6͵kL$ >FsͅSL@HpDXLTYpb3kn1)zkgeWm]is3˗1w;Ɨ1Ac|X/Æ2C2Cx\Oanyt0b45SB1 E!żK4l: XBC}WYj 0.ż*p1bETl(py(eHˢh0.|)XYU bSŊLTX CPX˯ >]@4FݿceGEzTF;ʠeaP]*xc{IdT*TlX,lf* R*u5,6QԊeL$ |3$KuN, PLhЌH4dAP >Ot-EX Z;Z蝱Z 8,9,̅&g4#FZZ?M_|>a4p[LBmWma"@&a*TTĶl Ql|S݂'ŶٖGfq!o^t Ree_ರ_".Յ! U!/h8Xuzzn,: )J rdgdd#040 l4#@FddL*azL A} m&6 1Â1f!5(ȡAf+V!c;4 dSӼñ1ƱAxdXd <0^fƱ͆plrlOeGLz.5QU#:kq- $Rq38Y8 VuXMАD4AaJڂ}~?[#bv ;3;;9TZThH 0X%|m>tJSvh4);0Z(;̑VMА4AaJڒ[tw|KKhnc;X,&| a~Ԡ 4#bF v"v,N@-aٚ{GQ_VCvqm!"sOcCˌ8@ñHa00Ӡ9h6|~=vijnk=cx t 8x%`x&#x$!*d 8Q)M8e.Hv!Ҧ'ژc 1#0"j,4c0"S14Q!6h8hÈh~]oAmlA8}. "f Y8ÊgPQK#4pigENo!,yA88C>9|9>96.@. - f` 4"9Fchc^gCC+2N ^ /A/tBAA4hF t!ǶogfDT ,ZhI-0AH-4 VBMА4AjJjy/|v 2VymJzYoj*Z/*4$c G0Vh2VU u* ?ݔ2 KY)0X)ec"x,*TTdV ]WVʫ\tH\''f''tT 1# =Wɫ<tOG<'Q% Z  `*Pk;pFJw*y{Rvȗ/qh>R@]="xąXp!tT aPڭPG=Ttѻ" AFBsH9B~"zo*TT:P:Ȑ4w$[g}w{B|m'ƃxvS*4$ G>>q-sT> Qø0{=tX@|D4ǟʣ6`W)r>N'A`xDfdr&mW&G+_{u hS@O1f1hbpz1 4"@F44^S/i}J/h"ԂF U!h8}Ao}񢷏\go4 >U,TfA'ɩ`E8tT I@4 z4}a)e]˗efTq*|DtLxT,OB(RNb*6, kfNŜ粻o9r'.m cCڷ~/MWu[6.jKk@`X0. q t t **6`X a!= B!u9 8 V*а0l)=zh3( Kg\gF8+,b*6\0$\gH^>_>\] lt` 3r-,-, ($/"+, $/ؐ"6`: hvo[nglmyBz0~pt)1f}SpLUYU`DPX6bTY6: G,,)EmDC#,-Z\8E8E8EE`a ,",)AǥOS hLKQYQFq*,b*6Y0YS2/Юs@b-̧J B"B(6š ZX(|, >ݯ S-h xf-u@(b * )b@ &@'~Qi(H :S f:0V1XULfcPcxþM{81tLU3V@QH8DQPI8TaUX7++ ]s<8;ja(`r(6,c^SÂiЌ 6 Bs kp gEwM1ͧ'O>A0nj>4@H`X^Ԡl6>x>~\A0?=K  UdO*O0b%XQ!l8>l>~\NBbަedHb$)K0V8bEThHH0 H_@s(gN*F@4}¬2"9@cQQfAs˱eh PK8D: >~@,k`p Lf$:QûЬw-j2w 4 t3 AEEMmft4g`2gxdȬ~M6g:, .ev@lO`E L*VD,Q» פg0$ .%>`>%1`Q1PeQ I` N X$>Le\Db hp <SŊАX65`5! >ސG@oH@``4Lf P ^G۟ȡ55 X0 vh,jЌ6` w[>% Zv[V5 5f64a e ( =oݾ{+?M Y1430LL*ThH0  JjGyY3+v >8@{@`Et*VDp!Ay\~Rztoxȣ= =`@¢`<_/@_/@`Lf Cf`3L+G *˴L$%.hcaPŊА 6A"`>J"xǀ.lAM2;(@ .€``€yN`yPe I0`&wLrϫ;6՝jB}A5h0Lq@yQ!il8ww ] >1mB2 HʘKeE f# F?;rkMڭWQe;;6AF"C) >J@dJ` amF#P A)|%֛Ā xG3!b*X`.TYTl5b`X bN亄 "*`&%T%Un5t/`+۵]au'O#WXXRXT @cp+r+4μp[2xvP|^NJ?㪶f\atf4WX@RXŐTV1`Fxnj&BS[\[? 1,`TUNT+1:Ӿp[5 0,/@,_F`NX  х@R 3;"pN+b;2 JA<4fp2 2E`P1!΁CcPVd>V#Abx!V!c ݁1|: ,CÂi؊tjځ1(a@Ww >iFow f 7h, `455hetWt9izOM5}w4lʡܓs "P@q( Up(F>KHˉ?y> ΁!uy590r,640,6SqCRg ;$<)Q􍬇⛀ PŊ؎n1)t=OK=u]oSc"1!  ,ށ@Âi؊ j)⯏iV1ZN = 25(B"TaQ3Fs#@cQVDV# J %9.]-ocTI0M'Q"1JCJB1cLh7$$Yrzh"61/&T5aށ5Q3"B33ۑ4QڍL0*L|^8J2-g%aHP0>AQ|C!Y!K0X@QڍOXLBc_7ݛ>vev_]# s CNDEaiP6dN6#^? 3M>n7Q<HImhX0 [6QZ@M~AM| m٤I.N'Q &&DlXۑ&Qڍ@IEI>sK\zCؓ>yBY}>Y}S(V(oElj9B|7OSa?`XPڍ >~%>>5j?Ov0Gvׁv`!j,w>B``jՁ+?v߳@:BXCqDH aPv5TCi3Nd|Bh ) A0lbpNULe`_~Kdt({d4v |&+zI+BCT"*#4ALJLG.~}= x!0M+9T"*# BBx_ij/m>Y`BXSc!z!踒/^Q>}oԬ<>r}t)ZCBBFL }a4lE>Bi5i:q ,jců2ӥ|fw?)ѣP枂ҔɊ\7u̪zb}>/Z?@[,{<N]{w=o9xĴɞ_"Og)Ғ?_'o=oӟV(ގ[bM-:>m.endstream endobj 583 0 obj 10853 endobj 587 0 obj <> stream x]mo$qG7_2b-"03yqI9A{zvv9a$ tuu==U?̊as{vW׏gl-w}71Ɔ yssmW~F|wcŕ3re]]ޞ}?|>g`F;1lYIi>>TQzTۉXq5fൔf(Ͱ_6}ҋٺ|Z!4ޜt/(!W(-HE|LTF`Tr|ձ>_s.4,pyv 9l%bB><*3l5YK >Oa<$s k)[\?jߙt|ZsMb0ߞ]-zPNh43/QQR qɽĕWN%l]!NT:`Z R>*kx^(bxL}p L2Ѝ>mq0`&V<^x1w[59:KQ*x%nI }Vkֆe}ݵ t)nw *E3 W yVlKȵ ";&ׅζسM΢*01FVJLDztUN3y0g[Ȥ&;`X1KʂAKT}Gܻ`6k q3.~Lᶙo.BM&35W[α58U|Tc}W Y H6Q!Cĵ5%ϧʜ )[[X:xt SPT6xDng5FgfsOpd~&`7V^KD=spdm)piF-X8~[[;h~x[Qcͮ#(,pޢ&x:B XK"< 3hP8?y ÀmPw0'#aG4s ST5#KTns pvU LîyvE k'P-Xs<\2ЀS`G,, q?1o u.!ޠ2͜YRXpYOX$ZTT% sjŧ#N&Hgs>BE` xg:"7-_F$@p)B쀴zj3>N`BeJO &.gk`PcJqs/R'N$8@Q ږ )l7D`?e4|7DxP2WHJA|^!nlW}z3iD{!R \)w6yL ̿Y?zuRJsF>wE~ +J-G)8)ͱ}n RKHB$ S!Yi LAJ,XJfA4SY)\?Lgc@DT&Z jVHA*LXç*v9ȵS~2מ ٦N >٦Bxo-YT0m20t*u<o '+М$hA0f.u[dFYޟD"^3E7QtT(L E]1%)Rr)M)Qr)e2?vÔ(zEw(  e^vSJP  %~Ҕ8R"rۅ.8j>' 0z"п#>uvSVv~nZp._W\wع80X’+\aNܬPd5pN{ Nr Ep  Cp*hc ӎ4mѠ^hTH膩8G`<Rr4Ki: !\r`6N.DdbpwT.(E],V)]堢wQ1%.){Axbt\ǻACYמi`Wu9)0Мȥ_BE(@E N_(Lr>e>>|zY^Ӵ_ڷB5ATF+}C;HRn2}/^)0%^)wD!r;L̝ pt ȗ?Ϟ?8R (;7w*GƍGhw{ ޯs+]'>_7O B0_)3xŔxD-B e _)sxŔ9Z&wi|9Sa^ /4@LA%&/2qveB \ANʹb fВ3˶Nf9ͶOo%#u_ؖ_¶Rfn .Ɣؖ`dRbZmAlSb[)Q]?Lmc@lTf"VLa*lBe~2.ٶbJlRf M'k Q[H[Z)|#bmz{7 o?P<)mf] 1E|҂Ը\]G#1dCh`~!>Q^7T۾0۩>ow۴R#\ Z0yk{*#La:fp.TnI\YKH3#&Z#M f5,-T q=; ~P ]$s , f QΟ(*d%w1ֺ^մ.(&1 sFeiQ%w~K:y"a]+Ov7Qut!bRJa.2N:Ǟ Sao\5*0y GVP / y^c*0Lr5J%s?#ve %+J(B# qDY`nd޻FOȈ&'TVq龊oF$K`R`|TmlGU4B?Kҹe3&|t枎BznŰ^3xE_'б0"1pۆGu gK>3Nn"]zXh#;\ѝnfXrPE0Wl"7&`jRn}~~% FM"8C /e *,S!&{L8F#C?{ux1?h98X;&DHpdV7|Uql AV.[&ŮbIQ6)t"k@ nv6/w7Im>ߠUDwCLqCQ6cӹl.Xkc̐C2,r$0=%n͔BZn5= M4qQpeF,`PfBLI^M#iފfff$G<;Q~JW$ybh''-ڤkͪ@90(jCSw 0qa3UrX F vdhOtp9me/co$:W&M0Ic$GB%`IfH9D[[L,r$f=pH:`&cA<=rjaiFH{;Ҫib KUG`kT[$a@*eMJi&EI2,< %?Z]%O撀`qvA*;ϰZ6ȏն;{=Zeʾ0$Ř Ykl_$F)+gĉWqh@ϓv|J,B.RH2:yG,_UQaꦣǓu[Jߜkys+]k7CS9a/f@qMm^1jQMsNu:t0:ߎPZ#.~B_84,?8DBr8ѫoUwȾ\bG]Cgd y'zAWDִUSQ{yf'!b腩BhsƮUk{C]U:*bRA_32lFsԞ#kt_Gv{ːy6ĸ |S" wG1Y||Fl46{HLIi||ͶCD Zu4zJ&44vJxszC HxjXH<'jGC^G115X'4UMԣHᯭ5@s:V#wuguGr[",Mɝih׏qxjO(&dR!tXI-}5󧾘dϨ2fM_d5Ysɛo2w$(^=O31_hkP3zO5V -\ 7C?hUx-[<6I19i <:m=Jsf 5x9WFLݻjm8Os7Poڗ38{ߟ/Sendstream endobj 588 0 obj 6313 endobj 594 0 obj <> stream x~PqRhtV"5\PqeЃj[)q#VA&_M]|5q\)M1<%2NkqC8U义:(.۩Y =nWs@8ϬmYH~!4fAHEP"֛;AxA )u2ہ:Z˨ҽb{;1@{>dc0ɎP`q? n6WrP6i9x88"/A:RMAJ A8݀1sC ?^u.M6m(?۝w}4yo otTV H-v}uT)I>5Ӊx{W0|Ci~}>r(r, Y?XJN@I3 5}ևb <pHaJF2y_s-1Z"F9|)~!)b&6mm-f%Y4b?pw܏G̑ oa%XH##n*E ~ňKZ9ӉѓG3zl7so\lݫ83WOhӷ O3 ,ZHDZ\{ #Z0ɐh[;v}9#(94 nڇ|xS QU@ 5˵pD&Z7v8 ~sG%Z?遊`3>M`[zeoJsLpVqBs'Mi\kƃO'6w޿kB});v_zn%{3Xz/KfYf^gO[`f&~7ڡ.5]g6C(mu}0`VS {j[M6v S1gkkY On>QP3k2#e=,P?9'4GG8ԕ]-<:ӌ|fP*64™rl}765[r+~IHJ͇2뮒-'`¤9XxěvOq&<,qUC2h+MTi~!WEO~}SNpsROE=vLOFiZYK4 ` h:_9Q">p]T4Z/u938In f]1"zyȀ4/BvFe;a`-0ImљE"(]F5rJ4jNjc.99"6tCWLA.{.ޙjzU;cWCQ -`T|dd~?Om ѳK4vI J0V此K likNi)`P! ٠+:OĪQwemadN_@.^1jZƻ+#&<=MF,8y_@L2ddnA;s"}jlJۦ.r ҼE?U}͵O!M,0ӧ;/=D۾F yL :k77JwwE2C!y*]ăXS!dV5z5Ӯ gF:Ī+?S>LvsG> 'w}/#UvktL i{*p᜵C`PSGf%M8; >W}tuXj5m<.Vƥ<1QQY0RNwqa"oYaH€i }h? qmlhx-A\ i*_PFF- tfuLca0$QF@q$dHB#OV{pLINSU{\UX$*`^׻dd>'&z2: 3 9Lyk|XЪ^v <YQ(`O!;I؃ ֤kٻ5O<.Sq<7k(/a<:*r [d 3W2qҞ8?hۈ9yM3] ?u'˫`ݬ,;Q>R9$/Tsg#/ѫ,N/_էrz/LNr>*S&(X4eeߦ{zi!}Lp[r4( B=1l2cX.PvMk*a+k)ɵ).=|XH1e rMx$z\m1ۓ_^T 0c0ԗ d' {@n| 8b`j,zzW /inG/p XrjHB5>Wש^G{LTŻ8EMBuWu^nOۇk?&XRU5V>o4J41(ݰ!b)YҷEUxȻ.m*>*pf|G`Cu=,ھIp]|nOͯ ÜCW2463ݼN@uc-q $3 #3¸ ? lM4X 2H Q˒0m CF.[|/[UjNtJ_5+(x72n-5ԓ42d%Â?ruw@]ӈ3A'*՜1!O$l+m$p I1 AfH^C tn+ޭ (Z8KIڂ. W'HW3iWQP)XȁVY€{* F N 1cc!:c`I,u ;%熽 ;42_*HfULdAmdj˅H1fY2 0~L*:#?=|KpW/5%ji,JƋJ/eږ!)y}n)< `u-Ə-n0DQWg.Ǫ}} %B](  W{1ysB,^?%)x+ӧ$t=0vR~B Tċ\ 'Y{'NQ|tlQo!&kKZ7D* Nne.#vקJ&|eεӳpc)|Sټ4wyWK¼4.JY>2pei=r䞡L'PSpbLE՝CMyAj|x&^Z 9c!ܢ錎+ Rs(:s^24IMj9)w?HgA/)h6]v$~/x LYWjrpnY/ҐL*5gVց5ƼGQ\f뎎MQ[FHb!|OK]r7):Cd * z>E ÖU$ԉ@¨#~٣Ͼ٠󾢌 dž Km{_]ujMPVDb\fȭ?pmr%W'J?xU0ܑAmr$rZ+ QH$P4 ^&O~l~8(UV""%q@ [#@0VeTz%+519E>*L16Ov"_;fs5w<ֺvN;:[!N{uY:z{暛g hClCJND.PlC 6#?0٦MT7 PDA(a8*l@R:+"7ȸiVRn> stream x\ُ'd_B(Y){wvw cl}W̬3~==W/Nnzc ﳧ?b_oTQ{8qqWY4Z՟BXgͱߟ(}N!U-QTQV*4m#-_´:N6 B)fs&p#4ZqmAc^F Py g9Vk{Í^qZwi7^y۽yi3`y` JSNhƜ`^"˰+૴t0cq6!4k2 qEX2L⮗!Rc%(r>A{'!-TdZ8 Qda hL]`UqfL"! w?MbVll |rX!"- 1=X= VҬ{ 7]`3K`LS"3q3 W), X R"̥D@HJUmz.뾠O[e iBd%!I+C J T]{ 3)&e;># `0oJGa6:X[7# p 3i VWF6&Xʧ]p4 09,}>&$.b\A˳0d0DJlS- NJ2jD ]RNyyf@Z~>-(6Q"J~$qmϲÏ3}H0?}V1 Lքʅq01WZ5ϕ @ |=~n2Z'tg9K*s`ENKKq5X1ep >Jۑ;}֜,j,Zl9sɭf { b^3mD#:4jC )]^0h#t~`(౬n: C PMw&)&kSO~Q[/.!j^L[paWvwԔFr)4ِB,1A3ySfi惡`h޶׾cC Qdd. a#ȼ#cWG432b)r/IHN&xif:=z _=>1 zr"qRM{WPފF~t~HߢfLd z8+-+FX2z\UQϳ 6sG"+f)!bZ"Qy <2xP*]DUe¯VgšSu܍Rǟ ;$\6;VEVUۤ3K ˌmZb@A׊P :Gg*fX5ηyxKz#)fr:9[$۳mQNAI;I ae(*Àj0BZ$8TvVgTU= ǃ#+8.? p89G[_mNǛMiMbTНBlf# b9S`>9:hߏYm ֠T=+|n.v3m]BW~~AP3(VE1/d`ŜaՀe72.~p]\U7Wj|sg]2"7oJ PDS)hޤ`gXS~ o 'hrYB?Rp}D,3u= Yi>X5ᷳ8rAy_uZ\P-oxm)XCwW CіLR3XgH«Ljv7">L+J1uOf!I.$?؏u::ӜgEpfb j {=A>IV)崵U~|Dy(cUq݌lnKo)Zy!~,˗Z&Ńt)T[N OÏ0G7(凄oBPRY%N-4J:uhX:tgG WY=ѵiN2DZ){tj\BB Ⱦ|V?$\9Ln:Zm.Ur' %X~S 3] AAؔϚU Lnt/r{5]@et/H{rmQ- Nw릖M\x,u넺Sy(mDԬhkU*+1תzmo (0˶w;&w(QV RV)!r CcL)(z7:Ӹa]3Ҳ W /W8ޥ夓(ݮ崮FHuz㥿F?D3͹yC}ރzn7(/6E;?{Rwf=]Š]uMPל dg[xCW{C^VuCz 4L§'}-]j.l >|k,{\MWO PQ.n6[Ry|sBMhJX e/ _E-8OK<IlS{p_*Y|_!8FCf~⏯<U=%^G7=UGKCݍ η\N\CYiȼ j ֳ/E`JX% f,nԫ^LãjwhЁ7vU-'U p1R&'O rՎoull sF~t[O@ vgKyu~7 >' &bUUxg)u"*1NFUbb٪mu6ܪ2h&.:;w8h|wǧ?3ևyns]yx'=1l..1ZS+n-% cٽ*z爮&3RU%_*p|endstream endobj 609 0 obj 4366 endobj 616 0 obj <> stream x]F/!~C_S n $sp H6 %=jݞN6!HnlT9O<<o?︙16h:\ۃFzc3`=<{6 fqC9j2J׉XqueN#gy2NkQ.P돶}o, bW**u{I6'& 0q=q %~uRJMLo`nzttso❴­&ߖҍoעEd>3ՇNx:rOѓlr*Ԥp¡H>AQKnBV|H7%ȕA%|n}Ar1Bp,fJzss8pz7P:;Li-ʒ^I^C#eR{=L=l9gfsn.3CHO<1 {p[s܉<f8-*%c´W~q>Npn&>ټ([2gBͅaM709֗q20\^|w%zb޽v87#0zث$S#*ǰaeEadʉ'`>9 rD/;;5Oғuq&3SVYfx]RԽYKf`43d k孽`Y3c7ə7g?d;gL/d"JJ /D7+IBIeHrY^z+4Q9|aE[.dˉ'. J&=g7h4G}Q± )T6K^ϭ|8;̌1.yuƵFSzwK>r7AI{gH);|J oW >)W"Wf)_q=Z,t?wX+pRކ+X-aj{0inpBica {ZUs;C7mv@w`bBD0+Т.lynm x7c "\f7Fᖣk_~~DPYR8tYe.Zv S *4s$[Lh/ BR(T0z<>I BtzhIWE}!B*#|,;]4Q[;9nTP,PbeLWoco^l/՝aF C}[NԹ%=$̤ɌgB{YJod>nI"1Ra(FqXϥv蕕SZ}hg?g;Pl0SF XSIl FTtq{FVK?@ %1BreeTU-"\ڈ*36NEf"n%]̨ia}y.Ӑ(G No?Z?Qm\j{ ]Tt68L@ډE#?Ry!Q923ZyQV*5Y#m܆0T}8JB%)gG dVxm dS}e?KͧIb^\x9F*5!v+RGKh%_ci.BUG`5*hfWy1 V *A "-iB3i| %FQ$6ȴjUGfBVGډ?h=(P9c]9`nՠE2./9ċE0-5*#׹5_Yu^B2W1a:l܌e#<0erNgq;G+^@㔧wK3 SV7Ny+YWT+{5ʆLoul'8EhsOս^OM}3V) [e1xr~6O\Ӈѿ}Wб.k_Yv2ʋJ_F_ksrmfwi75[5&ݭru2Scaf*` E@W3( w۰6Hyc4`؆9(%;s̻^qǣl >r_Wܐ0h&ff\-lWeqv&t+a`yB۫9  tZ*Gs/}ɑ]"jo>q&}:y@X7K"Q-ˣKR4W.tMW04oP$Uޭqg"oCņÌ4};z N! $7<ۈ nUIaL@D](|:ʈLԷ3 0#"RΆ^qlHL}C#:Gِv6t+U3AZ8K+{3!p$>lA:>T J'Rj\I)~ }x[OH RДB5'֫ކO]tS?ĥsFUA8UTok54-r~;dڏ'vA^q"q BaA%zүBxk&Qy3B <},lׁN8wɖECGd.s[z?qh]-tw u;@O5j4t葊h9Q];jzVc/gf" ,nendstream endobj 617 0 obj 4822 endobj 623 0 obj <> stream x\[$uHƂ1zJu]D~6VM΃<]G;Xu9dgf0AE~;7; pgG{J >J9S|jh/>:+;oDݟW٠x6Z{H)d~?hmzglǹ 4]:9]^[5uqEV R7lIHF.!#Mo=IR1,]nmt탷sb]AVy-_C8RZS9VJ(#B)}IҾtP=xuo^ZAӽcD+eswC/qW4C>ڎgCyl\'2r>3͹k*E*+@&bUsd%B'?4]^99.+w3`6J˳a֥q\lN [i߆/6} Nı5[5dQ&BOEgz4۴ uiǶ $Á}sAzc޽rHϰ4F+K9G#lgU1Ƞa,׀Ϥ6z^ߏ&E:!6ަjPtb@z2Ynаn+eA㶂c-t ⷏S~>A:{C z9@Szgn`Z-,׹+Lj{*[/؂#t vQvE~=n+`3\Ҭs7z]W[1dcvh5e*;{ T֛ Zr,3E1iK3Wx3 zI09}bm6&FSރ &Mg 9jw9F* q_N S>}P6ݝ &Z;iλ/-n覃gc ş`4ca3!(dpMGZ0&@7niTL4-=*6i(i(&{U(*KCQݙZ0*P%)W'<']u39j`šG"Jcg<- [4y>W"]?3n|A1РXQi4%r+c q`&*^5L [9]T:xBҧKBK6{N ">ݏIdKҶ)wۿ;jv3T&F<9P%{;R,#d59)29c`=6$ݜZHՂ]/ՎE(5 4xf/I1W|ƇL$d6#&!wI=?7>&qCút?O$wbI'˹T0sB[M©\{o[#^'3[/o93_dѫUN7ϼ̉VCȃ&m28%Bu~R3_%q5zl6IOxmgpPAb/ M-#Oˍ<\D &Ӛ ̈́96J.0Ns@= ~B.]EȐLO^PB$gyx(G;KYϐ:H(_ =w X،jWd/JRLID JoJ)iCµRl 8_S+mz԰4)ӎ Y0zz|r9I1nA6h$a7!~_AP>WHS7*0?/8ݩΫ99K\ !:I}Tȟ ™,x~ 9Lt\>0CՉgK.BݛAT6a\R\yڞWQUmo}r f[a;=9bzwDiTo,ǐo{6/{r? m}L[dTI R@2x!72ޒ oR#9ſ6vFoU01l<熩HLו'sr.U AcQUgԧrQ_rF֑@fLƤ#yB)Me\޷yL>J9A'S<]Bo 4lhE՗!3Q)1hQͨǗ|aarn\=B4<|;̲Hy y.R7BǿV?]Uy8+K9 㩨ʯUDvmPa(Xc=Gun *=0j ilʽѧ:%2K*ַj(Fq_2.#e,8ִokI&U5uAl&aQ~!GB83T=9WWCNpl@ՓwT޵5[9ɬ| ՂT<(*!'Tal\HlScvG\8zK)MQۛ{a\BwH}n(qꎪ)kmAh^ˊ5hf?y2D@F2IJ>q`+'}bw\VH(^p0bCGnh%@-+|0Z , jf|n*pf,n ե"{s255fa(Kvw,^sҧ.UQFE5 o*obcRXB3n+mqv .sY7ES4-]L뇥u/b[~75.2n[b~}k-YVl,%h#Udz> stream x][ud!$/:~rOi"G ,rwD*&Wɕ ?>ߩ˩깐k0 u9:UFmgqW_FyJl}vtsΧͿ=Bi&)g6>8Fozq+z% 4R ٱ۝֦wv?ߩAH]'V?"v_w٪3W?s믚}e!}ގd2݀*fZѽo}Jߦ+ewU{wogV;o8qnw*q$h=c{Gto>]!HUn>|M$Q ÷Zʼ +]&f >:X"}K@A_7>z15:l%2Fi67aOM ;˿vo;L;ٛzU M/<{m|%Zi=|5T^0۝PuSbJSB˅1_l:QPKD{s@$fg{ô e|ͣ߁qaN`2 Q՛WC UPiz'{l(%S4Q'Z?Nv@K+|[e@ } YN3MvO#H#5$XOT0Lk"~ό42^rQ\kA00TŃj;'znv9mJacƑYhr Zl /˶#uL"yJ^B$G"yo$M- (LVUɘ%.0{r$A~2٧$<W\-c> n_L3r8cZuӀǗ2d '{kʉG_!-X/3s{;,{I僄S\'[գkTPJ8*y<̹T낰P){˜JziY҄.C-h0Yx*20$xk \wsmKFb.t (1*𪔎AK{'ByN!DrO#{ V`?A>em9O,ZDQ@= 度Y 6HoƈFqhj~9٢UI5S36v_A}@>h9󊾴 Z@g[rK%u. TPaﶬA_jAҗ Ͱ({Z})j P_EA3M qG#3(Ef%5&rh>/p 'dat58)"򝕵-9}[2-Aa59C ,G t%Ӊ{_2|T"Gȳ 9!Ef*X1WeJYJ6% B?=<Y!? Urormv+wԸY`wmDaqC(oBp;tϲʌ_b7c2lB gn@* WR$E6(5uޭN[r*y)To/C%C};LG P8ôY\IZ@H+iiۇEv% ]89,Uiy/!|5 pM_Q 짟ͅ#UrZ#+#Nӕ.71 `HF2P_>p`|wh5Uv1%A`>l>NVvXK'{a(V)5| nc1 ;HS(P4p pL,42O-?BoLT8©IPU)7+=F{Lc&'?.BMʟGMg19!+%OlЌ4Nջ I[>6 -$m-@Z`+ 0"!+ȕ|)}r:DvTV @ZR9SsQ>;1ah8=3g0633`94x_ރt 6K7?*jR,2Yg L+ _)ӽ1zxE} c†]<2R,#eЄ,܈ O5A `lw0Ct_L$=09\A yb4; ]A^pAOES"͟:KwT2:9߶eR zMxh.[Ikd+6EQDgrN*}1;EGT!fX9N Hh!g[t{W@`.x9 {W}r{1;$>nh0N~B^ 8D#@Ico[oO ҕQoSq}1s2o_ W? eF0U\^Th_{I5a ),w=.~BLJNg<9ӷ*99*pw!bhB!b^m,־eđ3BRhugh\ 7FmXV:YW {;.$CRTTDg%Rm)X[VQA("Z9ktoC\k>]5cQxAty罷qTPU)K+BY`ybNLD(+GChm4.sv_S3D@MvZeUxnHGd.^Hi۷i6-I2IoКZPji^5Xג0\An%uJR#םѯ,ۅnj\mP0v-D@@1:"?p>b>$[Cx "냰.Ј>a.NcuM1!lE {?&s7ѵ3,hQ^OwX}zJ!^N \;0W]Di?D0 Yƺh|Je S/[.bsҠm{iZ>0G쭛n^j!6t^ů| @HSUcם< "EFv(L3N={i+H_Xֵו0_ ]pBn D}^4(ŋ$c)Ywr}p6NUgNq~EJN<~ҥ*Pstq#2G<|J%a{4)AqYJ$GJ;ɣu;OP~5ʕ)U= @4"c EnwDZGn>`ܽվ(Q40%n["3y`Fg:OnXu''yc-o4M'HJ LY2j B]蚶M:OsPLR;dN{Dzٔqga Ym Fj){NZf)tcM%zf~٫g0lw4,*Rne`-/:c+O{yKiBQOh>z/2Axhh^9jk9e̹0ڝoL pN$ղ$~ LFNES9Ln3G8U#^^ٌc@s7gݫ4u3 ĨfYctm`Lpd қr@ng>Lof'& &( (jst*M4@/X1R ivޤ4CG`DuRP5CQkPX^h XÊaQާ"aBz~ ȋQ/02 d8}6J {9(\E34΋o!1TnaYt^{G .sN 9j-jJ~t=,ĔQA Xޣ{9NR&f.[V9̦.K$8ܿ{ՎxLI(wZ\bӁ7VYҞVzI6ުPÄuLxnߗ(RG &kI@oV7?UYC3Z׼S#vY' Vݍ(/:BX5M\6l#.q̸+i ?0达@>K@ a%+~H}Rc/k|~-j 2x*WlS3/dƗ4տBVx=t0ՏO/csfI-KCt:fM@ LӖZSwW}lR{;t JtH/?K/:vurbwrTABS/sM;oJ1ӄX*8RZHw꼝7F&Dxچh7`WrPz 1m @1N/è ?ҙk棑;Dt:̭ˢ|cWR濭  2?ڶ%3ԿR?v{g^t^%Ps#.BN& |rbhקs5?xJv'kG&nDž5E_βqH8L,{6sSTܡǢkO A +R;4\8VvnHbuJǗ.O> stream x\[\7y}|<T*[@*ɮ^Z:I3;7;q*XѥE|%G_<}ۅZb| 㖁+^})Z:Ypˣg[ew|oӡ{AZ.jfV8:p;ye;14}f#a4/?tsSG;f/W_8$B!-438~tJ_Ҋ9ğ;C܄;twRyX/e6R৲ Kg52^41_heU*Z yuJMu\Ia0ʹJS8bXSۆ~Mjnn$QH). r;+/7!I`P% lySQ:UQ:MX%(P87mxGzR߮ysj=txzjɧ%ȉߌFȅ*[؇A+#tր$?`ms̳bVf) BWֹl J8I@7iq\h(ir]8X܉+ -5v4j3kSB_ƶG2ƫ6q76'9aMR.f܍6qڤ=ҜKRM*p{IhN qñrݸ38`53^܀{d[ķ`"xםm^ 4 .W0ɶwZ=JQ;\d&t)h5Adg:h/>ߤV.ԗbkcCTY@~C#A[ltGEgǃ6%( W}ģث,{>M)٤pA9i@߮C7 M[6%XzT*R)QlR/$,ه1yT+k6mq/83ΦƝaMx BA,Yd:ѭ;..Q!cFrWkHfnhɉ5#4׆]c?Hs3k\/4)k`Ζ1~6<42;Vqb5@ |z|5B,/tYz-r%L-/O^ջWJQ(W{=䯮1keѳwGR.yN=sR,H A"T7AV'(Az&^zdž O 0eFv#nm8H:x5;2adb{#fBP!"YlhUc~Ie)Ԏ'm} t}ּ4O;Y#vPFHuȝ>8*KJVIxtX"ގE gIOngԺۧqNXM:hU$bQL5N>Zd(ZnW28Fq)ָb)(.QrReeק*vh"*T!-~!KůL^kpvͻZ !2Jp@,]wG@5> eN렧sYrY:Xk"["37}?6= !ex6wg!ʛ}Zv}L}wS{H[ K}&U2@.CHMalT !ͮ3ܣArk Z5.S$TP6zC/|sq:1}EXvǙ|g3/ {;0hAar6I 8T97YEǗ)U0yA&b8IkT"h%%`ʲClK@_@vm$ǩQ Jn| ,)7RYtɛûAz{}py! J]iԓ|≝/.ho cժކW22ƟPj|siׁP$99X۰$xCyr`N WcbmP P[`L 5PÚ~b`U*ROdN 5#vNNh"ٶ,-po&?>[Uچ%]0Cր].Wi U%Jl$' Tڸn NL'Kcg INM6zLI=@D)d 6d1L/qY?Wڙ׶Yreifg:g ]wWPIOBI򷽛IMH8ڊ#W9hD>/N&&ϗ3/Ʉ.vvt`"zd#IfEglVcYk[&l?Z.]>:=駫s].:~endstream endobj 641 0 obj 3255 endobj 646 0 obj <> stream x]IqءY|RpPVPAs#ugM8_/AQ+++J­3~\\Io33zO/_>:ٙW^7~u~}EZJ8TwFkob-})XFk;ce4]:YZeERU0WJž퐆_Džv'CFz%b&(c;amt 탷y0D#l̸t7k- e,R>|O`^y}`.BOGs.CDPSyf#4V-nH>2ŕ+_ɍ JJm57[ X"q/3NAEz)p( vDy]}_Ly61 h2:;jQ*n\M\L8%Nd/0Gi={=~fB@Mj!OQ=Du vF309z@Ff aݫ׉cZ%.oV@r&q#FXX}Z i #oMP|{MC"&em7yjm t&Az!ydYnr]ŕ q|O,׸$o jQ63W{jկ>ƺ}KA{'9ОV`!̢9RsbR x~C걲5QyXJUW?ϧ)aatkaMdjDl$+¸tdWu??~3!DoU: ߣǎ~%>  |W)nv$j8n SiP|mwFmԭӏ;nnYT4 ? =SɅ(&:ȇ'ppp-(ȶ7ڝhN;CeZi51p? ]8ϲc߬{ov =)hWrwV@Kw3 c\}G>h}H~tma㏆b7BFl(r̶Uv!!=fAޙfB`;5wB"<m1`{|7'cxb}NaJ6ӘlV?ԠHIݻFr F.F R L Q-,h<ˉ:YamxoP!(%w{il|lV!`_T/v5&kx~|Izwyq|K ÏيIi9§{w,b?~y{8ڠ)hkq@{x\}}f UPFXDS÷g=$ϫQJbP+918aYp'ՁU%3d{,~Hb 5Nc$q+m5} aA8f&R'`YQR=dBG$,]}nK"۵yOyWR+AcE%hۗԿIlHi19zd(mĮ.G ũe_MI{jɘ nevYOaZ;Ii_4AdKS8482sóa9ΩiKE.RI#c+uUnFnO$/Zr9OK\c^O!܋q?tծI"nzYFӡɽ$(#X[-my7Ǥ닎gUXe'3Bi4&ʐ T~8|*ўE옗V'& d4tG1:ʽktM#}D?{ ˒N2:*'~?9z5?:]7x쥛qnËg+g&8Chc%&L~jL.5Wfh3>齷`JS>]C<{:q F~l6=N\c8ͩLԪ8M/SH>=SKp 5ƈ;9g7n \^ձ^z!.Uז&Jics{|UUZx[թ}j_~K8ЃtۆE]aU ^nPT$a9a*|qϟV8 u4ֵh]t:T FnHknUP[KS,엕 eB5jƯ ە3cUjQDOPU\7M˧«Y !i QchtAȠ*2dc7U/p˷ɗyQߨq( IrF5.҂eЄYt5sp%E/p2PuI}%FLt_=Zj!5?]NS>iA-A'7/&=7CI{ ♭ 6WofM~d u PR=&]pnU$+UrD f/ s$EX|xgW}(4 RqJ"4jOͼ;.sbj 5!efI4-UY^*MNo{:1Gr;:>$`ms S\,BqYCB+ԣ=mߦJӉg9{JU|S:i֟Y.SuMְp]&6z҇)v0bKSw ui[F~ u*HigY b^ stfSiKRbe?!툧_~|;'Bc%ζyjd!U1z16M3@O%)MSfӨhJ!K9-,$HkD5ek1}*{CTn8]IweD?qRH#xLwE`;/>G&~/2[\(v'gQE"=+ў ZO`{".4'#R+6)$*xw!P\eAڮb e)!G 5'F7$W h)^fr8` Mw^ʭBy?d`Hendstream endobj 647 0 obj 4582 endobj 659 0 obj <> stream x\KsN*76cN\rr$H-.i>d+t3CK),Fn?/X̂_q| 'W{lMk>>[<;\ۅoF-^Xqae\XZog{/_h'sVRZ囷8g!})Uknޥv"V`\5mlix*屙eyՄb-f/+?j]^VD«e?GqO9jE+z m/l-_:6HwHPr\9Ts{o 0%TѼYcm΄kbݫfu©xdg2e$S0Gt5L~v'whtsp)ΐV{ǡe$=+Q,s_@VU7_K'Z F$* +M&_ix;rƔ x$㧥p40ؓTh Y}u(Yo¶kQ2Ly$R|5|y/Eu?0rr_ZwrV'Zd $` =k4pViija@QI1/`t7EkbeGbˠYTH8? J2pi6v4[f~ஃJag;ϙGIfpH  ~,MfQgmе6Ktm@ k[E).a|*rcz-cA-}`˩@5x7* 4QhL۸FK 6X%±m0 ځ5e$#&bϹƟP@@|sbU43܂F,נh{_ joACs[5D93K0vA;`+%7BrSy2V٫M sȃveI]\yT%ch0Pƙ *m؃doO$]H(MT4s܃کணufp-FBftX rLRbfAŻ^1w ۈR^_22N`!;t_= kX-|iCnƅ h5wGZ&b?adTE45ѨtpMt3P0u?th(H)ZJqۃA@YJsG*ZI. Hh1Ć ;$X\ej }%8 Ve#TtPJڰJ40f&8ΤDDd6YX6`꽘@PV@_ !n,mY )3D]$,G P)Ka1 wDccN1:N^ CзeGɢ)A ;O_cPZR+8Us <&̈+bo2`@½S;(^h˛XhI_ Vd !Eq6s/mtˍw^pkbb\`y\`ȴn6dQ;y "#4P9Ii{z{z&G 1&^C%mVPw7[nWA'gN [X oy~OC?<.k@:1z$eMxfxR Ġ3@˰-A`$ub6[gTƣAfto&cg)}=Z tU@]UTNtG_G IP@ E~Dh* u S9Q\%gvycaOgYL{ jbA‰9ow8cy'$SA:@V՘DԈ4*K:f[:b0H;;u^8~4jsChH܄+i4e;MhyiFʙiXܧMEo'wF1SA.§!nz wVpohu&1j $A—Ss]Z)ht9r{wP7YωtmhrqTyzЁ$E&pP’)FN=߉6|jljY@*/w0X?9E%ωV9yEQÉȈm0`f֡J,qIv5`u?om#@i@f+AwIx5L9u?Lo9( R3s~=Ϧ0=e8,i$ NO㴕[3a* Ч'; .!JalLbc]d\"|\T,5J|.2AڤMvaC|ZgR%1do Py&U}l5~9pê?qΨ#D}doDftnʹFML+ǻD|No$W72N%AeK37D;' ΤK]SMrf(Mg)e*:;54pPT}%r9鄇G^>6Ye*\$<ׅF/l+Sl4 rEʼn9s֋teq[[Z0;#-Sx:^v~3!2`3X]Eƙt Pqd31s?:순 XrdF܎ ԥ<`-d$*䮗X5Pb»$ԅ!$im|K9nu{3 拉y;c*|VzshJ!B " 뮔V>1IW:}~>I^gyYKܧAjNow$CJnlt)79MBӗvd}"3gF A['1Y#H>ͅ W4\s-CioaGQ/ <.Kf&th+.i}p߼x5| p7<`z"qH*¥'GjTo"8˱w!+/=)F XCĻT#"< ~}옂孂]Gnp#^}Bkf/;V yuګkUG`P*1GtB]zi[Bܔ ViiThL cTGfɖ,̤DpU'?x=b֬GYi>W]B՞#5G/y3`&{)7@endstream endobj 660 0 obj 4039 endobj 668 0 obj <> stream x\IsNLYQT*9fb GK$2%YthJbR0~^~;cÀywusm}0ϭV󋫳犯7h' V=*6JW?y"`\Uu椩xz4|}^kMuQ+~^ˇ4Q9%_\+|V*Y[~ߵ:N64Ec_ǖϚWrsMUF9Fs1՞&r&4rç-;f£_^ܬTN$lrWDWN3=J^syu/<8+L8p[gjư֖;DT)ŴrҎI9cCﰟ4oxku"׬%8)cw0ަ37rQU vǝ־ #V_xmil95w9MTKY>ZTJZVik^iP(%!n:H~[$>$Y=LsM <ߔo^̻}[k< kT]ſ ˋJ=)]/u+)?GkcSJ@<>@׮y]N3c\^7GF1d/pfȎDќ"Ó`.MH2af+,N5q) D9׹Vda3痂roէ1JʆQgwG:aOG0"x8WM T]»IvQk+#;A m~ct}z̵bpt~A$‚Q%'`v`'3r^*LYF {ԼuG֔dBy2Mx _ +cE(Q#+TQLDyAKs넷XtHd^-5-mk4=vH\|>GzWLuz!T/!w*8D ^̱̀.L;%eYTf94Y\[jSy J\"/ˍy9YAίR$gg Iߥѿ^{FzbEϠ%xď`Ff!~"p2ÏJx {)SEgN!3D!¶܃V*SB²ޕ]5wz!k|Wy/|t}YGg0`LSǚ C ¾'yeYDR,yUPb:Vef)<#.:Aiw^8TJNtOq9x6nx xNf 7aN #D2K0ԨJCdjyƷ[}ԃǩFg#4Lq 7aVZcVž1&28J,'znHbYzٗ,~ΟЇ)QQ­d<뺲NaZh-ŀ!4 tHu{~efZЊQVh_'6zI+߰3GnA% aVk4'7ʗ¹u1㤽QJs$T\ꌒrNc'Q<Phǖi Zn4ErYHiMn_miy ND!y=U/+kc{" *l̘~3J,3Uq9$0 9zPd9wF2)n{5,\[B|+ THE0 d!BrIkJv2 au" D0(f7$'Є3vET~d 7%e>v FmV%b`۳ׂ>9Dj ^(3e 48˼/'4ژ-D íi]n>R!oT8FAr;ݙdH~bAJ>:>5<{kj2%XS4Qf(~Tc3JOQ,I 9e@WĎ()-gIŁ3;ȋC;%ʾɦ+awwA1JiR;u7H@+Dk(`&`AHe)J>TFBLB_mHCܽ&䣨R.Ѩ7_k̭LQ~>O"G_;\3AYt%̚v?Z0Id#'aѼ^ȋ{VIv-Ncw&9G4ϖ}킢H1uTrGIRղ\!bC] RોϿ{endstream endobj 669 0 obj 3339 endobj 676 0 obj <> stream x\YGroa{vڼ22d/~8&/2k,5yFEdd~pA W.~nn]?.s>UW6_^~32Wx7ވ.嫋zo7q>BnY^k9c?LT vYn+Ryߦbfԯ?q_5ʺBj~d2t/A[ͲoFw^nou 5d &ZN }*| EC3W^tΡ5_Kءa%ߢ)"i;tbң:uV[#})a۾v␫ Rn_x#5H*wnkI؉qôůy`wLzAH$CKaCڂ|(J/¯>4h# [Fa1J :'RqNa]=[Y}Ao6fKNaX3i7{)B2&c;t3ߐmlrl&n$ ҁJXz!Q-se獃(*K`fqKk}N @ pi G&3Ԡ" kCϲھk ՅogrSL$ Mbw#)ڪŽOHk*Kg;^bn#$6DL)h\'0k_5i; QsgT Jȹ6o*>xS&tHv=>XPҪda֦pdal,'! 0d}_PbhdG}7.@ںT SoR #rQmBno<~][[ Hxha`sҗ64,S2 ݆B}$"z?ϩ~C`Ѫj,IܓXvhNpBا;+Vɵ}"@y_UBbnn[kHBwYMfb>fcdU'yv72W cse؆MMqu,GiSOlgJ;{YMv:'`,Fo _&0s'#ÛԼ7g;4]3)R#Ŷ!1Вhp})8j~[7PD=4`[+-C#Dž8`Hqͣsn׶b>y>)4ҜM3kaK;fەG`qt;&k_i4B +UH1R=)*Lpe]rFSN 2Ѩ,6p[A8sq3.0 "3`ddc LNˑ)ڈ3$ |퓣뾡O=UVj 2;q Q?:c(6YJSIxہGQ_v +NC;MJ!޶O XX҂V|:W9*,Cp'-Ei n D4RLi@,b:db;ӟϙtfn5g֔iDb4 'lDAeWp/ :H+ټBˋ':׳S)M9Yi9JRa[gg2M z?4ꁃz5-^ a6`=3P|j^4(u+it1Tſ9;~Ǝ.Ri@(]w@lXOgXXiI;0cwds)gXmᘗ6|#EMA{R`v 'N8c,>OV21tZ>k^-1?J x6 ŒV#)}|A}Zȝ,D2D8@%wLݎϤ~`>WA-HOb XJ(H:6z =]'09eѾ{{󼨚}wAaUYCdHBufc#WE '↊MGP$pçŴpXil!a:)@iQ`Qlg=jI"`M6t?Va~۪ǿ4V3yTUy>n\L9ǧS ;{ܛzLZFoʒY7W5AMJY_0Eo))]4W8\GR!HyVOcGҕ.YzfnɅ^Pt`,I_;wSwV! GyŽC=Ng' ^LJ!Xж;R5I5k]\Fy+tړd-[.-h̢x1xs؉G=0qsйH:,zDr4z',qʅAUjg9n4?19'D"BZB_a>&tJŠ+ԎCRmjE2#n ;Bң6] 7|BvI j{ UWɌ&]b#uI2 |IeI%VX4T~VMW*E u:_sR/,.spXGJҍ+XmAv=+oט^uc }}Xy2{؜Mr&g2L)dF8+F6f^f^UDm~Fv^a Ҙ6 ! `m1,x,Ӌ|帇<F'#`!?#`f鹤kvN_Fj?spTE;kaNcYѪ`q-^ -$m<色z}+mDCHl~NgUNJl^zp{d>;G.lh+{s?y?t{yئ^tc;P YJZl[KwT(ȷ_x'_Ǣf!_ސRࡱtja5 z]tu6?Oʙ2_Θ,n9z[{p__I':ȻJ4J'ϣ+R;3N~I#)oFGY8g 3!s^[GA^//qcBsdqbUjw2V Eb#kx?_endstream endobj 677 0 obj 5267 endobj 686 0 obj <> stream x\K"0CsA׫˛3<cÀϵ]aWVȕUvu53ډ9V;zT3eo_7R(qgN<~fvg4/'ͱ>ߜ8}!U-q '*eF*[{gu{ް^bcoۮ/블2_J^17xMfI7je t XH;6,ZP;ǥn4(PFX qeXBY,(D$`}QbMT^902r3jNz z꽐9mU0Mw}彗>% ?(xНawۏImEqoգ>M#-Tå-뵰Zl8򞛽Tʻ%*> 1%Ar2 f:nSH\`i07 t\CݭkF )Y/ڃv>I!mQVG#553s,c+6rGt njv!11)̀㕨puGɹm]"0XZ0]DL$38O@F31 n}6S{B99 28wgR\6=WY$&gff~piWVX9fV[C#槣[5apWmcf> pGY3;awe7@\*ӆ\):vd/:+w`}RiG~#t(Nz=Ct_iM&ЍV8 _A@]"[N#)̈́1ONyT-yxҩpup&Pu Pw(ˎA{qhNu27c|o__nj7ZVus.`0MII@$DH4XJЬzK68T7x>xG,dϏ[#/FYU*fQP9xg<IQnUș'ٶӖ3]6uB2C^ _mαgpdb莃(6(< xhYT٩iʅ,:*/di_ 6I &lD=<[[{w=jSblBNB;m4bɩP%=+ s]NoZ ;E7d'7 )惆7a)_o|w@QpJ@E| z)YRB7 x:Y&al_qǜn'dOmv+%7'o @PּGQF0z6(qp8ComAUE{A[OJrF\ʌa`$gf(¬]V BH!S "bPcQfN\;|,sBzOLo bF4'ٰzV0=s EAj]^Λ O@r}jE_M>G.cHGxKǤ|޿ E5T+w&bT5HC%5.O!Qh4z'&GVQ?y;-\, z=fir4/D X'&|Էq{L7p`(ml@G,õBy)mʊMA40v Peyngb pjKP&?״P$%:$<*&꾳 ez^Q |mtԄ|oG,:o f ^wm^3{$l He!}}Nf_۪",50| FV0F`j_]_*}e0DifkIY`k,AAٍ懲N0fZb^, \uD%T]vz+ VVjUOR&4Weh(/NtGFwfec\; X5=<ׇow{[r9=n!-$U[YAJe5hzs`]͐6X Ewɠ+)Z ]9x߉+[73Ed =qM;Hq^j /D쐘{PvW&M$4&i×nQ\[W"xN(Mj i3(G*vDdaRa_?4d׾.ߐ5ݓmݩ1F&^dCۨ>Ri'HG;ʓQ/ q?$usCt$LǎeՑ0}u-r7$XW(8vJ#=/ Ґڬ!a|sdžo_]g jm dhHzDo;hG}ex/\?vEvkv :#FZ~_GbG'G Ԧ{h-G-uE]B'uLkcݚ:-[3Iv|/@0* ^~t[).Z&Ҵ0q~:b Rek[[YCO2d@rKikk3[ZTd‰?eyvi\2^kvMm%lR{jeX`Ϗp8c'n,ʿ> stream x\[>7LzLQ QBdaEI~`e!a/ؘTuwU\zv] Ynzz.Ni~Zpӟ`N JBۇͶb v?,<IHRBZhfIbUi7[v[) ygR翢Қdgݽ]*PÓ2tRjT!yLzXFz" lZ\!\ olw|8wG4w&5S0~y#acsZ;"I0tgaSj,{:[JkH,;Lp݋(%FO/Rk ռ$ d4kfC=Uj =H ]JB0N@z>g믆H#[b .Wse[A0n6 iM << 4u?nh Ro!F=IdN}̪ʬ(@j!+b%T&ucwŀPWsoD 2QPM c9Uə$4O& Ɲ\Eֆj˸$ Fl: RTٱ>e1'sDY`+vvZ!4tQv?;r*ވVnA[GMqcKKZ`B[ClSr'ԆW/2*VF|al-C;\óW#2hL/C$&*޸{M@@7 :˞qm)USK`9GgE`(`r)WY.(PM=Kĭ[7e+EJh"RRoXz , y:BK2^g2pkH+mmT^utCϜw8M{gpneHX5ht, TnY S[۔xv6n!8QjK:()[|8voht5B-oj#N0#8L+"Uαi d½9mecmj<ʜwq 0q1x 7hZ )=qJ!U³>G0~#S )gzTGt4bƾ h&Wt&\ }^SgoI c9y{E8dN=o ˪24#iOM{BLI:m0hu pA!!/yڋh1dg0 .D$~Q5CBss3 .v@6LN2ۡB !k@0~_Dq [tcX/O"ٴv3I:,>W[ @aaq}p8?Ɲ֦}ƌT,\*u`D#>0r׫/{=M !JT)[;3`’ \lo/Wlq_ۛ6%4 3m@'"2wӷD LheA NatYnuՔs@Pbu)FC>>/U\vۦۀJCVI>&>ؗCz&^sm w LDm G%`Mi"N # GaDo'J9FVF~+ !+UǼM\p|sSstL #Z!g35t=2XjLְu!l-WDUn"oGIMKf}"@#F|,=qUl)FW%ݎӇ,)N8e MAm@>~;Rōэ&y} :_Y@^G"8Wݟ{#—VEeNG-?Qk>ҍf'G>jmh )QG+"}M эZn҉S^kNw+z=tk[;tL}Ll;9c!& W]y!A& r<햘1,go!RJ{éZ5`1hNf$ t-a2B*t\UqdZ^p~jo(}M*h'%]=fmz%-;ꗮ 9leE2;a[ 0wID]~i{:cǂt ɿ/]endstream endobj 700 0 obj 3162 endobj 715 0 obj <> stream x\ɏ7z\;sHss^W}fL`` ` u?-$[ݲ#Kj+@`fH~ ~zfV7o~W/_տW_qcloެp\ەF_8pee\YzoWo~Z^0nޢw8gzXoTQqgN^?wt[3M!lms,Ds7qo0}!U-aX.u?H%{WwVǏ }.czlw-5a#7w/1{43!T܎`.ߎQ=WPV)M!>$Lmi8s:az!8ۛ0Z9xb#y-m`ᙍcsxf[mX6/bG&Xح1bh)'|7xIc|OPUZoK8Cs渒/At//8]88N/Z;,@3Mn8L*}۴&w7'rg{4 zƠR1&gG0XT@eNWwKM&47 ZxfgEM+JcZ/м7i 6u,j )PsXmYYP@y5RWy${-Wa{߉ǖq*ԓ!C qa: ,)0pC G׮2|gd9Avqa|nNvQ߄n!3wۜiYHL—@)n3:G?65ަ4)K&KJ+˸wF 4!ѯ{ J?ߌGeBKM +r N~w8.m yxAA!` %oGbIIY H: @m='Ƈ3@SL\ {&ֺbm ?Nc=9K24T/J8[Kep,Čg3 #X Sg@y'`1(ΰhf6m?O5[#".a d }N8RRFBލ,eÙa'W;9*8;s(ljpaX@|nA5O"({f T63M XaƏ+m 6? OW`߀XG?6~GZi?b'AigV$w '`UԽJR5dmS5\½ET'G3;f?_G3+7L$zIhlW_`V&8[I?DT,ilRI3F0n L<1k,[*n_>rϥӣT5дI rQ qRuRLEq 4&lpY)Uٖ\Jvca~39k~ f<*"H>A01sPR{i`t1 jw&qV@16[{L%[,d4'YZ&s&P=%ݤv"½ 0!3I 6ۻ+vұRYڒ)>:otfGe sXF0-Žm^WhIIʰO1ZQ!hKk x+.5c-/q`tǗKe3c}% xHΧvx"e4!\½1:iWR2+5Ye{}*9ǁꦰ7aY"PnT^Y|zc Sx"J7fȒ"дBVN]Al끤).w_@5o9,:\B]l%jZ=m{oj%h2̸w 0~Ll{XJ(_ha܋qb/]$1C ,Rsgճ#łe/xR…<W;jz=Tfb -lmsntnLTҒU758!ܻc:mИfDJr.%o (VE:UqqMjK=8y[/GD?'ߑ9?:D4bJ*+{^AW:+BNM[ ot&Zޛ )=ʒ.9oz7B瀪)9k`_T0= T,iH|`^q`cqH" ؑ', *cx N^J(c薦v~Kg[+]:,K ʢKڍO!qS=*1xxH הwn^k1% U?",V=CTqzLPNcC~1gW<C"5CDSOM# '}IcI%vTۛx`KhH=LF|fpϔ &jѨy0d>o)nAm-ȵ(p>J$V @غ/e=(8Qib>UuԬ~j÷qnO/CF3{]ne!=q_x;k0;^[z PƳ5AloOǦ;بؗ*jWNK izq:]` 9BԊ% aP-qv󶹷MR?5Й2h{) uC30Tݥ]_O{%e?mh5wY0 *EQp?3u4,5_'eHI۔Rxo9Uwk[ӫ۴ԻFыUL7^H܋Db.^}HBBg S{zQ(T(O\x*Rs=u; PUN(Xv@0kw0Ǿ2U%>b* |QӇrYA;1U`90r%P|ךendstream endobj 716 0 obj 5211 endobj 724 0 obj <> stream x[Io %p)׾8qȊ\A&Ǣcq$Ӣ域Uuw-ݣG fWmUMƏ˛G {wV߬eZ;ߗ7ݟ._r%R),fY3ɭ|oӡNZ.vQJ3M]'S.t0l/rH>69 yy) ˭-m8L.vx!Jiq+pLTrFiŜ/Τ}i_M3\K?/@Q۫Ԯdn 2}2OբvÒFS:Zz/֛u[̜8#tG996+^:qD!Qh/."׸D"HxH^KXap e-ވesAT}I\ ,:MD:n@W+-at+eV;1@mh*L3RmE eM9C[ |`.k1"1__ ‹ W)I?N!H3wC9>Ə =t‚BJFv8 Bq]/1a' Ǎb3Lh"P8 !Ҙ_  ۥi$nJqI\TbvKjC'#02Ha:8`|jAQ1|g8.tʔ=@R10;eLؚ$K+gYX!M;tH'â:&$i)TA: 8kyxvGlYBpd>8A,8΃ 'eNpr@#]|,S2cIu:65rbuA[3EVVx?f2WQx5W~mh8^%G0g x= <\P6wxyƒ߈牕my`3J\(F cy.=G?uAG%ԅ ^ku WsƋqE k;ԃsAhΥ^IS# y612PB+ۿd*[X۵LzSL*OVѮxspۮ/3/.P**C ֣j` k۞^3MG6ӉG69#*),#] 2oL 0 EXv&랴Y~w| Ly/b=#IJ*4{%fW1&JXhV zJ X>a)CL6n† HhHWocK!g|X[(gwU]W%`!bIy<5( tmw-bb8<"ZML<ƾấQYtоwсqLmudѹMU{Z!0Kѣؗwi* @Q]}Rzh}z?erܺͭO'LDx8BPQ"=! Z3Smʗr6#J41Lӹڑ~=bMPuq| @B;=Jd1endstream endobj 725 0 obj 3233 endobj 731 0 obj <> stream x\[o}& !9(MֹT]I"Y]#93~MXfsYNb p6禤O!{4М-UŋnVg.IEr%Em.4!(MT8}Vu1R fC˻y].*ݯ _ӇW~唛:+Xۧυ{+斡lUX.Ҹ*ϻ9VvVX\A nXquBْw猕VL\I+blˊw j a xLdY㿠 RP;]S6pl]j*\2/h9XFt ZگI }I䈒J 3kW^T*+G#eׁ9s?әN# %4@Tu)SJ~WѨИv jhWAPZ!Fe*ʑF/k6}#pѥT$엝,N~–AzuguJVQoA)EPޏ"p}O`cR/ ,OUU}J崷u1姱aڮ=K˦% *he,sBET[3QF Nl4Y9VF UJACŎ׽ v~f:@HA3Un"u4~vy 4e8ҊɓǛMF&}{ h uР6poƝ́MUC2R:dv = #{0ѽxp ݤTIu#vRUI;)4j'׵|7RٹohrCswp;$@k(@oiYc!&vŨlF|<=$XG,X `"[m?LK>tbJ'C1o6z7E6I0f_ nr[i/EOW$ɼ CLB/?TN< N& :VX xԣ7JFt^FغyKS>7%$G$`n!>w.Ɨqch8;>xQvчi*4ں^3>Sq`oe PmފN+[.^UCOzo4no~BT>"iw\Ox{_ S,t v8$'==`ڀF7@28H+ݭ#rqڠ9A>KmIFpށj_DJC A4ظYMFRԽ\RyK:[+4k4Ir.n#sɛQZy/Z|܏~:{NҀ@.n@l4uWO0?FȎEyڜvPikخߛO l1 7t}-`d"60Xꍺ^h҈ў8 rYA.r7PKVPbXm'7)D*ޙUɝ)uVQu=vφԮzFFP3M7e"xvhnx1y ,6"ْvzɀϾzLrh 4A\g[XfN(TН(Șx@.q YďUm?hlX仆JT[QVsI(1̍ZDȞR(ޯ:N7Ac}8Mb%41 8{@:N92Pxr7xYuZ+&ߌybj r^LZw|9A#*UqG (%{"B 5pj/eZcmȅT+MՊ4E)>Z REʙG#=5ٲ~א Cav8=|jC YktEt`6 ^GVAz't'Νo t|&$҉,*AˢE5 V! \䩟.Mj%\Sjߓ.Qdbj rI+ _;yJpu6&l?u]6z{eDؔUUWT½F1oGx;K[xf 5uWKti\8HIr"RjW>} "ܾ6(Â3)ņW17/;W<@ʎ,g}Avn IȰp8{.A(gTŇQ[ь> stream x\Y~ ߜJ%o  *-T]VwF;dA&V=.g_D0C?Mͻg/שgo>cZ?7.~q 2wkyq /F3}}z>heyH׽Ŧdl`}Z !{-UmÀɮӬ˽,L3^v[4 &u&he?7\M}{sB^)m=M^P!5iig stܨnM-\ 3زWhEf:p29R DofRnf%sNYX>LJ.=a \Ez:Ʀ\)ֽEQ)w~ K{(fLRMDÑp7o,ޭҹ޺n*vwNqR`#1LWtE +2/! <8pM1z:}/2h{a荓)]WH:D+Ǟ6LusX8!QaP]UU^B }.2bmJӫ4 lA. #$菤ꦷ2}d]s54'ZBA)\QcHTǕx<w:Y\¥&$#lW2ǽnĕa3(0Zha>X0dPuJXZ=wk/H~@Je?}mà43af_ AV#ŮI$+:cc~ԊMczbȟwA\iC& (.7 Hmf<M, YtD^ =5卻Mf\hYё3,J I) 43aE9pd)I Dɐ|J/z y` (/89ƕ]y6PvBMLnIN4[NF&a$unz6Գ dYZhjBD58߮8@{2 ȡc@"E!߂Zȹ@]s΋#\H8XXt!#SD▢d D pA0j&@9jr s3|2*q] ;ajcd<+Q& RRߍq r4 p0n&FEN^s׃zcS \Q3L\+;<6t A,$yJ ӤN t0kꐂ $p@xB]mNtܶM dx*J&ݽT=1 wxHmz4^DKpjr&nV\P' DbP)5Q<8Xpc!%)yJ SΐHd"` mHq, wq߇U4 jl;nf\@f;e@I/]COϓ@;>⟘ǟyi_7a+y}٢87l"(4pe\u@[E1T؈)RU X[D ࢎ\aU. Y sއycD'*ΛZu`#8uuUj!K.lUFJ?` 4Em9bLԮ NM~ ߥ|P睋0,2V#bֻPF~!+a򄖼D,!qp![b) .wE_1S +1?,v nr"fk\$QR .hD|b08a2ԧSzI-LŦ!˗# >:6o}{7|ۜޯrowY%C*rPp^ s /q? 2X5$K*3'MΤ UC.VN{5QŒ)^K@rσsLj(.ɒx]wp Bqط+KC4_1/d4S"OJ͏*aVm f4n>fM޻ԻTv"EarUv^<>}K1U;q-n(7n௻hU4=U^`sb3cq;g7 MTNzxXb/RJP!h(Iy՜]m{UpIʖ}3? ֱ_W7 i7M;vsLD;S'2U"k{ ՔVe䋩V \!÷iă_Q@G#P=}OC_gӥ[Rh .ϼ#6*/Q-LqJY60)>h1 섔̄+l(b~CpCu0.pBYΰ+IEI8î>ưweATg LfģL- 1q'$L{L/NPPF~R>3|_R5<^$).Am jB9R|Y[^ ,l0pǼGFH%c}$S즔D+R@'rQ1a}mʂG>%Nѹ`&BO US:E*&͜c+Zy| < hJt59X,ʝ|!)h96_/>(tˤ?U;ODJ$7~ RiV1gB)a!trsGɈ#l6zʕMy^q]xB<ӏgDI 17s65ΟO鲩n**mRzxf{ %+x>7){p^8 o Iw#  @,1G& e:^ BjZ<$M—W,='TOIDmS_cK»v0;Ӊp>1$p4G9TjmFII>OT.|Grt-G~&o,# 3Dˈ;A2d/+9'zKj-nUR~ }!/'*)Fdx^8{:ÀrހQ~HK+l jbs"H:Qe Lx ~Qze9#|#4Hɞ5GLo\@Wk ^Pn O#0OtABX0 sbu[ymQ&; f*h[E0g;g@27k^l =կ3@I(k{v9??O 3wjNNUf9)BNT{j\9_4aHJf鶬ďD5upԐWt_:̙59ӽF:gaYC,*Q#pWrT݂>^=T?1xjkN ً<@:w*bl(}LV L#rBY(}9%E3,?/ 7 E^nPOåh+!}wX0:?,Ή{ֶ endstream endobj 756 0 obj 4977 endobj 761 0 obj <> stream x\mo_з zI.- T[KN%grw63/{ߟMN[_lnOW'OjRW0I}jN/0T(qYVI;hwB.^fXRQ\xвnфnjP ,<[xݒ{۲ɹ cY9?ƫʼn;!f ukv'~Si|Lǖ]+N=ex{D imu*6ʼn޺YBm.㙻\ӃrjfK!bېѯ1V/+zAaG\1XO/|r'ݪ[)a]xDuJّ,FKO:5ΤY# cxV)A+7w\tpM֭J#s~umփEpD ͺ_Nj-2ZE@1e'`",τl! +;piO\6AyM uKBclj1>zQLF7 }r&ZڒљuzEW2"k:O\S2_`4Vgٰ<0y_Utm[|5;͌9]29n`{Zzdn%S0`u#uX'o PZ#Z\rr+w|Lph%uvqKɫNEεd 8[+1\$!iaeV O$ 49|p6\L_Ь֘ NKLcD*akt{_̩%!VJ䃄% c$aN$\JCF GMfJD|@ 3ngVgi p Z*LigQ}ja9I+&\6`ӪxIu5 T6gP:ZJfhK+BG{ K ynz"݋R3  Ղ2MF%p#}ukxqMu&sW ;FO.̍+NӪ/Uʨ4Sca,72ᆇ0%6c{oX_]92l˱[ τ4ɯN/m6Nt*§Uv&-MRYG#ś ϣGY#g >Z±UZWtm`iHf9 0co`1Cǘi7=b,^2c3n.X)t D" yf8귈d=? m`$$q dcКDq✑U Ҽ- mWr?aV_&xȮ%eY#Q.2rՎ:a,,p@xJ<;O!oJq?!"9c 6YA}}0i)#{W05u;{D,RaC h^|Նe =2e$58˪l`c5SLԽK`)6Th:Q2z^іʂ yς ^Wȫ=WF|78=tRDd|zvNڎeZn䅏Km9/H*4K7M MGOa8yV71LNM0fN`'s1O̥ .2wˣ@=Ƙ {y[Nڮ1Q6l¸nMNc9i \@Meo,K1GU%.%͒,]˳*mRe'|Ww{nm,m}]&AL,o2 1X0Zr9 i$afAa9hmhpW]U\aLF|c`^O ` \bn_u)2seB&EYJ$!h]=FH7.s(5||_3KHݠy*%ˇ55 48]"g.2{xdItm?V+(S>hw9o.)9׽ !(8` zS k-Ϫ8c`j\&yʍjKSGV2 6y6կd_IXjCMGs?{D˘'s pe,m;!)}1TEjGQ溳w)Z.}\k1A9niq+r06䴠=1q=e2*aNKRB̎ҖqNk~Y냋qlIмJ5'ea" R2+|~xZ2E+p; :GHoL2EW>U[Ɛ]MoR`^xz;/p١dUM5ȯNk+ j)}RX2f@VGx y/Lmueln ʪBV?O͈*EL&!H4>qGEM ƼM-g~{YqA[˦xk,7g2,xGtΎ Vec/Te?qTo31TJlZDk)ZOO.st"d}(`p3MU~\DBP)o Ɣ<|.;WF эUU+W``ҏwYx#p磇8-dTX 9c" ^x\erendstream endobj 762 0 obj 4546 endobj 768 0 obj <> stream x\mܸn_oeI1A`7ApKat3^۽"bgr(ꩪmZuպSc˿yuY{'ϘjRշx&i⪻z hz%t6F_o/m[%{Mc(H($ R>]8+q_. Az[3=# %y~ ] u($piz6Dž 6=0vY}^;8:vj|m""W29f_]"%5E+'w\Y]kt^t͂[ u; R|_Mr9ަ旤ԻMM@ pO4'8ŕ٧9Nx "oAISF4v`6Bs 'S{hP3B#G `j r)d򽺞bo:Zς7LZKGLNʆxfa4Sp}(Ĥ#ݢ}p߸xwYz[m3hl P`E/M%!Dž=񾋛.J5 c qi.b!KO`nRcl0_TV5f.:C L<3md.M05-7Dđqb.9]nU]=5}lk;eɐ. .?[">$\ :D[Ok O%#7QktUPkbuqiK2]Ltŧk{Hf끚%a|pd}j9O U┦*gτ&R  ׻۔Q*%-l˲1EܓsPެRu*!;$)h80O4Iea7:d6JPBI;8VRsk qWk61y2?ʴRc} ]E@}$% tagZeuF$*j2C<" 9R(3xoDGNmG+JX ^EUB y*d|P8Œ3,2+j8'+ܡgr Ϥ;uKB$˃qI$)Fb j *#(=(k ?ؓFyB*mඝZ#vn#Q>OcEVV0'S2ecYNhK f/*A> >R?%цWHB z..'ϼ)ߨލLPkMqXK @xɁ~uI}e'z?,5}s[~ 4BslYKYBMLHBCDCeaM(bZ߮K%nՇZҞES54P;n23"\<Ԧ^X a 0hWR#iɶhvp1ҝ%9Ve,ʉF12 ciكh4BlN_1N9zLs%9:3t~Uef$b*́-R T*/12dT.jL jUUN'!2yNֈwPqqJdSX gTX+jw%zheKfXGe`of"LVـx\ Xͫ3w2BYDDli[ٳs}GN9 wHW 1XkʾyF9 Bt2ꮙЍݡV]蜴_VPQwi.XГ% {y<`>/A~6* i-Wdoeª VzTY|̯Xӑz $?=!LyQ隐*/|xԃ,&bAn)f[gW _ẹ%4tؔprOʣyEwԼ{tS6 >g\gzH9n"#E 1k4?6q):&g‡8mvXKeԐ"U'smY ^K륔U!- ]103#Pj^Oʰ'Ҩ`?&}^ݦޗ_eRE-zC-plly_ 9[9`YcN. ;jQ/(D8=Ehdɜ숩<fWJ1ɾ(xx[2Z%xz?):Y}[q&\,NϨLdƅsoߚ 08j.鐉۞*k;~3ȹs,Og ܃l")De`84IF2ֵw\Q΀EN}eOmS?t7Ë;EUը 8rrqrǕM)a"yNf$nN>:]彃e|}xS3^9Ѫ>&Ec< yt,?u;PIټp8gklAt(d-Os;,Fz_g|ǪGK]Cc_& wN4m:zݟȗPȴg-i:1lƄa!OFN\P ƒ ddr>׃;PMZE29H+.`D͡bQ7<@6P9GRV_tg lhht+S,jJtT"3GhkLۤw%RV#ѽOқ6g?FC9`&P%5.v3*ԯC凖|g;˲晴[=o| rI5bWϏ*Mzz XWn%7#!SX"E? $:sJGFǵ㠛C4%)`|3)%9c 8pk:WL5N4e{)@ܙgdv+a?Zxr0% b2*C.l0~o;>M 헦a _w8QO(C:L& }ǹ8E@YP|gi8F1!}J&^BtSHCnvy8}J_/P^,ӝOQq$,>˧+(KQ,I< Z& t%N!z'甄s KEtt}^ko9APX M ]|b },lP^RYӗWdNKE#,aw"GL+NGN ?,,ʀZ}C|?;fendstream endobj 769 0 obj 5042 endobj 774 0 obj <> stream x\mܶn_|^EI$E((r+[_^4ɇhZQ9p:+Rln=W'Ϯ^?*ϾHB)onϾ~Jg]ѩJ5gO?n᙮Vg)N=}yYTmڼqS׺V7fQޟ)T#Wos[PfUZD1]vg+;-yoJw+gkE>V oBC 5)6%K>V)sk:_{̰.״lJWj5uYNVWɞB7ZٚDSæ~6OZv~Sm򔠧ҳgXmG[.NцWqol%H8{އYtJn6Q` ['oW XD͚~w^dzw^Zt+x8fka+k!h{B J Wkߝ쐪Jfĺzg_&iuWӿvtRmNm H.qđ?EEvd]qx"n0v$je!iJ`dKCݛ6Hn-K)#J%,V9vDe!D|TJ(8n덙tmkU:x׉楙VB׎Uu֩d&r)ِ5Ć ouҏ%VI"Hk$rQ8* 6[3lWDMtճ{ pΪ>Ƽ\Þ=wwq^ݽ?~zEoЅlKeuEze*:M򒚥j}0K%}%=ۀ\ MDh(*nE%c*P!1د\ٺGR:>F]bQ`WQpl5 v0 IBN :%Ͱޛ<7,:քEcnUIes`7, 6SX+LؿwU)ބ$ @U;q!7q V cnA*uBm][SX r|?yN06kNw^4uG_Y>9a_Yj ZP6RLSta;:\^ b;ZZjg>35TEfIuq4:^)J3.xI~]2L5AėwD>:@0ahm1$ ~*[ srPR碧(!ɨIt2/t +H E[4N߂l%qldgb 0^uMQݤBc2-6R~b۬TDsK0YQ殼H̙!cAk!p<.D](C D1P]_9GϳtS7qU^L/D \ĥ2v^qC+oʭ W9jAnn򗍼 udM9_P+4\@0[&''wԅѶ>ctrO'7jnp 2d!ygH6:4 |ibJA\GyCTyaAԪ2wt}ho*wy>XcPK.})Y ~3s|u>=}bв6_GCYQmc?ƨ]3F ϱ7lОo[FD9X;VY3>juL_$b %#>T܍- 9>i 5|8qm.fngp.=T{э$Gd8#Yv:}iM6O!x,HX;`l,{JJ: )6YUIA:%V{|V vE O!ӣI :GB 6F`nIOU%%lF=4>]x3c ϥɇ|O[=Z! ]0pr|]!W,Ta;k!8t( {^DO&G"ѳRDK9J|7/"7B B hP)ܑQ;~499jtѐ~`$4$x׵P~}rz>%2 }~Hɪw\s&!r!}†2[e!/EqJţ\[[+I)i'8;%:2 K[iMT\Z}b8ﶍ_C| .ǵM9Ib&#[łLI?׋tƽBu. 6\`}6 p˂)!,KW.udG;G>9FsMO >}O?1Ѳendstream endobj 775 0 obj 4808 endobj 779 0 obj <> stream x\7r.ȿfOI6_;_m 3-#i4HS|tW]= 8v,WU۴ ͓g?x}I{Oi16oa7H]]x"+gԕ۫7O~ZlbڝRס ъ}\)5ӋLZ-Sf!Wl?/bcmݔgXQIva_3PHxJNtVI3UFlY=A_u; O(No^7_h֫Vs3/<ɯ+QPmOkdZj<Tv]H}183DzD+`ն5ߤ% $-S*ME`it!^j /#X&9j X ecGVyL)l٤I_:+Kh;qZ"lFÖ^1 㑼Isyܠ }EjSVb@_ޞfiQ_ "s f΅%jo免Z|J8MRe)mglT[)(Nm#Հe5ΦHEEJ=^AӸL߷ˁLƢ1HPɠQ=YTLۧd{*qn݈N-ͨgxPRøx)M[t+赁6a+l#Z\ uٵLcx^W^ w׋cb;/֔{Dқř ]D^HE!#nETmP+0S5}`]\fu-;*H0UTظYMI~m_&>a69rỴwg[|ۭVe~`|^BdTG"8r7QnX6(8"]ixpFoϱ4Y'#CB{!Tߧ :QU-xuWd<8klEupOw{o=cq_/glq?}\7Q lK(D6tGqIxPs;$&+7`@rq^c/\s@[Ʈ5;:̞A| ,٩&9+R.)*URvD:zg UPl[=) ;nK L89!CH|9ّm0ʁz-*lEDRvƮwj &$pg5읯GTؓfԛ =n`oϰ>{csv}7[pǮM245 .F2g`Χ$K~*n+{C) ڤ?#uuve+2!c%֦0RvƩ\x^3'IzЅ>>(sӦ V {+(=@lG)YrWQ[ώ,s$ʛ\M?]B>'ȘknNYE_Pd Pe (l-n+kЎ+m\:pZ|EX:DeRMp͈ۙyCews6XPXB(̍bP$ӖL[V?U]2S' IuK Z8H[}{བྷ#=/Ƅ,GPn6u ZRA,ȱlWyUXAyx~B62Ažg>>GD&9^ܳ\?{oc w} ^{,*?YFYɹŊi6Hz3&rqū۬% *#]b6= eݗ Qk;?Ee$9Y;+ z3‚ `'#RΪDw<=?-L BQKģDq]qm.ǁXSIX]I§4h vҷ砥e-x!Cv.6X0`$kguf)DR=8umIWYY =j:{ .1_SC1ox!g,(yݠy0?a/c~\xWǺ7uKs&!MI;Yu:0Fph»*)zA_-xlXw{؉?4eV{L09ڌנ0yuSZ}/ zlYR|H<7bHSg2beWBR4J0?|3nQ 3!'gzS -@/{t!E2.,#"2!jz{S +@BJifTRر+ޛ!.CJҫ\4&H v|,l (3?P>ai⿞S$>1/*P], >JQ`;9UAՋ̧(Y) /V#W;]k?񜼋^PRֈX.]ka5$jGĒOb*P#rq7{};|46Y*jݘ`.؆/Gnn ĭֿ-%UZoao K`Ʃ'__ZX$A0)CTv*:dH}3혽Val6k'lVoYn$Cj7JNݔ9]O!F3<&쁞n.0&@QU}}K%zQ+\} %\tKi<{Y*y%#*w~yGΐCpq ,f$xň2vE]Ȇ cbAEwm+,KIX Ƥk~Wx};*yk`1}Û!rK,Հ8M7r^)̘ҺF=  "gst!8 HO j9yIse$^ztmA{ˋvTj^&= Wcч*趣TWV9hJ+ٴtBAVJ>7:BxzxxH7Z1"`iL(B1@QqU 19W|hKoh5 h|1҂n~\YiqȨ y<[G{ wA_> 5M+2KNj&7얓w7J-kkI1OJA߷>9p}>"v3 w 9[x ;:+)e,z,x8J:>P*NjVv %6IA0 .%G>2„k;lX.:RK-hj@z Зa[mel+\fRݽ,ߓ[cR@W*Ѭ cѴx9񺨺Wkf65kȽaB +pb!1Fkqn42wKq UU/ոAL&Fdg&IMMqM=;?kCNF'Ia Ρ}eݧ-PE$Q`LJ#t¥o5|N%T*)d7_ ~O)B8MRDb'J)*oة#L~e@i*~UtOR3֡M~P*Zaqnuś18-܂ʳW:n/$*5ud0${ݱ+#{41̻U;I%xn/_uH"RTwhJ;4e5(|Ɉɂ&ڱO*z-/3J0bd:NDٗ7 = ޡi4^fW$7U 7<.͒QmVs%m=&H1Ll4;Z%.f/J堸i~8"|NJwʼny6눵:.8fد2oܒJHo&8Bf n@;5 {}-RIa"&5%CGk?jZz%鰃l\g>f7]0:_B%#8@Fscf1-MHZV(;w|Ϊϲ2ؓ`jFg~eg{i?1 Þj_MT>KN4.!bftW>C,|Ag-k&:|@> stream x][8v~w*ߢqp$dgMU&uҖvo޶{{@ (R%=* \`oX{ݏ^_ܼ.~o^71Ɔzw sm/|0 ;^XY9#/bW^yUbum%U~qM9 rr)ҋ}"v`\-xfUo/^-e-,o a¦CM;l߫@ qO%E_A*o3es笎wh}=[ڄxwZxg4d2}+*9YFw U؋?͟؊(3lJ')qQyoP0:C+GCabR)]9;߇@ۘp K cԝoN)2}8_{/Ţ3p%Xz硸8(?b?ⱋtw9[UW/6їnYm[ڽj f4£-b9dJIRsm6O:m%\; 5^?Ĕ>mjK%hh]==S\L@w y*+Ldo}CsnO+^}- c*l#חVf >UrmПtu)o[T*]%&rW:PXm:E!2N4 Qx inhv=DW^RÇ\15@CQbTZaI34m<p<:5DCj{p; [PXRD~\6^Y mUD;.tF7ArF/r#?qS{cKl&1^juI\'6C'납Rl?LX!?OѶH4Twx_p]޴ AC '`t6G#~Fr8]ӿ n[2c"$SЃP҆p{n P6Sz칩U:kE[\_h8$ineQf(`=gD,g&(Fz+E)fiZC=Yifl%*!u,ЩdX*5KIWC15IMIk}iuR!; mS7#Yi4"!0fy1E8bO!p3y]m* JKK1%>˚{! !#6)Uc žS8=)Yw!E?=yzm^$o\e- 農>O/SSx65Y̡&^KMr15 ln"Vv'R?!tsz"l*Z!ڮkB=gUkX&AŪAi}ኦ2D72!#eMR$L$TMR셈WbrZ.&[@!rכ+VZ h$xvO1lI ީ.ŵ19 DQcBK ڔ$2''F|@t+ߍXnB .Q:)8Sﲫ$#g@4d_cuCRjȮ̵"o$]j>&lYW7+BbWODxulATQc 9@jکN~Rz`9,[}ʨN]f5o[r2RL Y/b.:UR {w121fr !%%89)iwJYqW. u yuq~- +)+n_wr20$a! ۜtH6i>D4Qm'lGyIt.:Aj>ƁT ]t)=^A@ӖUWh\hNp]BNn eӎK)ьcU`ՍJ#)"F&%3.\up񠻘VqӪ0ms \5|hmB<% &8йK)/쐤o"U+IY)<] X5 aYL@E1Y6 |3p\\FPV@"g*\HLfB{kU8dJ=W)]Ãis. Pv:ɪ@x4:z乥TO,NHrWi8@BNomqJ$ms*L$ 0IǠL8vڢ(m!$UtmK E- #VwD(/+q&ܬi$C 2]?gBϣc5uk kJ[e] țˑ{ :F|]X!hezXȓ)&V=g& r> dI<S!9!1 0ni3L*ܙKQrLIʯGf!d%]^N7fћ|[n? R*ZvV.-eaM M;#ť\9+}ѩ&&C(;N9;A A 6gecUh7>ubfEҧsz|:8K7ȸU!b.h 'G,b(M.Gihv`&5㹑b*fPv'pMw M%}ECD ]HaͲ2 =\)q/pX u4t趖ԐZ,wެ:y3udˏB]u1 5uIU3QYVǞ0Fqs(q6CC$Ofq֙k#ػ^%" p@?Rq5xynm7 /l;6H+7,JV zf a_j%Yn<Gdulת9(x6۳@•j&v8pZy;4(h*tb\]N0]W4>> tCм8`Dk46< eDuOnC} _+STxyUV.܇TFԪ9֋詭ɰ6DzAi9+a3(yfVq>C>_#TQ:!h*OV 0gWay }fbd~j~g;DO|ђZ&liC2NW.M 5RT|?  t /mŴF^J X^l׫S*Od Ne"Ho46o }Gc1?y~).\VRbeI =2{ao=QlqK1XNQA/siTТoy׮t'`fVs_Z eZK R2 oav~ݶ~q+vf],U}K^.9Y8a!(ibT"71wxvoK9ڠ[ dv'r-/ws>c| @) O{KPQM/`ma73l*2*Yd]ud$,sN(>~ ]݅]DȈzONxUח&tIW*M;$քHP?D 1 GOKbS%)3 3Ə'"//G\w} I9szP{H4lќNxT,Rt1}'DD"r8e(\cD«ţ𪅨Sܬj~&E䭊~4(:/HwYF2[y_=LEZK> stream x][o~_G./}Ln&E@lulK,{ /^ERW0˜> ?1Y>ÓowD") /po.z" #w$pҒMȨ_ (B`cΘ&LbG9F`ݦ HzD)lAxZmwqRe{-_F|H˿Yq#,Wܽ%ަhM2mo2cdr2?((82 9a^DP%(vM^ Y !F^$PFXf ͤB\SP)Nl#b2%,I?1-( "hą]~Iby(LJ1/@Ճ[{sƙ+xm3PY:DM$* Oyx<k#jƗ+ `=1W C,0iBsȥ88a4u»~N/fsp_8"P)W}ItM^iTc! p#=m隂XA_1"X* )}UN;028 簽sTS3ws{Ђ#BɡM+4ΫN48{7 lO[8I Ȍ,sUky2Vw6@v<+4S2xp"ѐK̖ShE]H\iiwE2Fs).JDdMYݦV,ѶIdIt/]g7ep9-r9#'o/qܟ~ۣ8jf]j JՓph8 geֻGxv۪g.GAY'!e*@&jOSPk֍G"j92OOcæV%iroV&Typ{156(1Dh r>wop (0NĴlob6Qi(+%oH)+z bsx^DAF"9iOW28>z2=f!9fQ%,3Hx ·ncQjq}Zx1}'H;˓i,TOLڶvVjhrq'YMZJEj_)e(1E |υV<+'+a'l9rF;)OTpMXasTW& 8|gbr-LUf{.˛lpw3@bE +‘Yq[b=ZKZ:f6v3/Gd$K(DI 9ySU+_>i=T:mݦ|˰k fTp Cq\\\ޭ? m|E?.XM`h'WY%iɕ2J$nB+)Xb^Jgx?_2In~nVK3|6Ln$kk\ ݤy#;_'C{L_; 5CьCͨ<*L5FMq)~~47w2;$Px2af-{zIx0u#*5a`T&͜i<xXߦ\n7m I*pMjT665nY82NR vd|$bTz\xhŮe'Dj+dlTKPIЪ jnAYZ:p 7q1Z%]i9g7Xя#~q~Sa?[0jnWgiQlWl&` 2'DiB(0;E8U[^6j7^+-ͬͶҾY\1 fU{w@/cZ/oW.1_0mW81/QߟUt?ȹW,ϸkĸbg|ʢO)"Nco+:$m$l^9-͆s%b0=z3sJl|D!ArA.Ef%x&|VRvoJu JewbRR$,ۖەqQ5?"^ b8VdނFϼڌż~<)(:[l @ ^Y(zlh֪zAPYتW JiTځ4ZWt$CDj~**)"c^0{?ج`}N*qҾt[625"UAd˅>uy[3Y>=}fsK]!ɸ3~ kk:{0XJBZCwמQ.u~@<9Bp5nòn|J4 IQ;dl㗃֟/YEmV 4#˒f =Ycڻ+ǯ!' jb1ї{`u+u aSaE EѢ_QTWO2Kԭ ߈mSkbs};qee.UglfshoIe9:2.nsVp.endstream endobj 794 0 obj 4541 endobj 798 0 obj <> stream x]Ys~?9xsT9Zv+Ze%Qc? Rr3___@?(zFN.O wq Dkm|}v=3ef8͵tҁ3#bf$%NO~LpF_J(KЯwh>L&$ WfK%gŋsisSyt,w>#FH2I񈟞*gn9-`}(wp:[_ P|4Di %l `"] OG3)# I/QGSc97¹"\ksUW;H]Ȁnm>aD*Wo}lJ#ơ\@ju8r9Ux?&aZF}i /=U/dtMk?>']y#!I@K9;[>E*4Tqv6RbY1z#©?^sjOlc59ԝCĶb$}&`\*Fcrbœٜ[¬Rǹ2 ! ^ +6'o ;Tyh k>#v~ \35dj!kh^9kH'F"W 7k ] p;sœxs|Ob &J&X>&* a5D8A"WfGl@LoUXF19/!Sjlj㑣gp75)(AJuxƗa*p(T"I! p-qiM1Np"Eɒz*j{2MJ(&\+jL#1]ҋq<Ӱ9Q!sBhML@# ʷ|$_^egEPu&F5DZc%JuX:K2k3/MBD,e$Uʐkfx+0a22 2h^Q%;`'e}򞖌;_zmdc Ŀpx lugt3A!|*$F' ǒ BI-ƫRi3q49ዣىaM!wU$.2` Uit>f !H_T[ C8qp8Jh..m;e-6=A+K2 ҧ|-'-| x܈.  g skr.$ԛ| .?TIV*F-GT-0%]2^liZҶc>-A79봫RP4PZn8B a7v,iE Օ W#eHӆP'A{* }rPlc4-!ΚVrxY4OP g25r#2/KtN6ۋxJ2}=!"j$4eg|#n6\0͂'J9_g'rj*{\O +rh֓jj@ms˫ODQJ]b 8g3Ufؙj-M~HH⑺q6GN9ZjO1XRkbfޘ>⡬8W (>M5G42Sg9aVcAQ?54LԏFqEw2|%*^p u?V7Pެl|&>K<^lvͅ EԀRg=3-4d,[W}3{E.~x閉`yY&W oN֢ $☓wnhbYCER#An&kGo|*ȱ7ޠzv 8Js|}p<6{S`KظQ+џ|wLZ/sOD=.pꖫLDvꖕ?Os!WqrEhƲA&٢W2ͳPY- |@{+aV,!rӇWc iꇸk&_^b-k@m@hđnH*K.!] ?W夏^@ Ũ$hyl_߼A^/]c*yFwY3:5 'Q+HjtJ^u%|a%sPivړ Ny5I8#AUo y 0c/Qp{L qxGL` Oה%bјSHb%2M4k=Y=7V*ؗB.v#QA ɷ^bsDĄtU3  F4crűAL$/2EH%=c%zr`yY$'E!b3W m/D55(_e~ [D69}ӆPU*M_nZjױչ=xIgu&4[+/ O"|h X2Ag!}ǚ*f22$_F[.:*`@'wJ\kJW/N@t}_xd\[9\[*,oA,n~hZ_> a'K|3D{k%6;}{ {b?p+dbk$5eFE5-Aݞ"C_Tc3-g)DŽQhFi?[FQ#4!&5c ;mኇ]&h Y0j/ 7roiz_ҫBDΏJfMoM߶LZX[~Yc5'҆Sg9r,8Wgz_Zgdܿ?FTmsWuHYU;|7kަU坺5ɶ} _.[>yS[f\pGTSyE,$65UQ*:Pk[ Y,{#r1BTsjk!@]_]RWr>_]' ;meJT0xtwWN9`c oފN|X?u{HVy IJ=Ŵ5ކܖ[> /Annots[102 0 R 117 0 R 120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 146 0 R 149 0 R 150 0 R]/Contents 93 0 R >> endobj 153 0 obj <> /Annots[158 0 R 159 0 R 160 0 R 163 0 R 164 0 R 165 0 R 166 0 R 167 0 R 168 0 R 169 0 R 170 0 R 171 0 R 172 0 R 173 0 R 174 0 R 175 0 R 176 0 R 177 0 R 178 0 R 179 0 R 180 0 R 181 0 R 182 0 R 183 0 R 184 0 R 187 0 R 188 0 R 189 0 R 190 0 R 191 0 R 192 0 R 193 0 R 194 0 R 195 0 R 196 0 R 197 0 R 198 0 R 199 0 R 200 0 R 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R 209 0 R]/Contents 154 0 R >> endobj 212 0 obj <> /Annots[215 0 R 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R 221 0 R 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 255 0 R 256 0 R]/Contents 213 0 R >> endobj 259 0 obj <> /Contents 260 0 R >> endobj 268 0 obj <> /Annots[271 0 R 274 0 R 275 0 R 276 0 R 277 0 R 278 0 R]/Contents 269 0 R >> endobj 281 0 obj <> /Annots[286 0 R 287 0 R]/Contents 282 0 R >> endobj 290 0 obj <> /Annots[295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 304 0 R 305 0 R]/Contents 291 0 R >> endobj 308 0 obj <> /Annots[311 0 R 312 0 R 313 0 R 314 0 R 315 0 R]/Contents 309 0 R >> endobj 320 0 obj <> /Annots[323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R]/Contents 321 0 R >> endobj 337 0 obj <> /Annots[340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R]/Contents 338 0 R >> endobj 350 0 obj <> /Annots[353 0 R 354 0 R 355 0 R]/Contents 351 0 R >> endobj 360 0 obj <> /Annots[363 0 R]/Contents 361 0 R >> endobj 366 0 obj <> /Contents 367 0 R >> endobj 375 0 obj <> /Annots[378 0 R 379 0 R 380 0 R 381 0 R 382 0 R]/Contents 376 0 R >> endobj 385 0 obj <> /Annots[388 0 R]/Contents 386 0 R >> endobj 391 0 obj <> /Annots[394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R]/Contents 392 0 R >> endobj 405 0 obj <> /Annots[410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R]/Contents 406 0 R >> endobj 423 0 obj <> /Annots[426 0 R 427 0 R 428 0 R 429 0 R 430 0 R]/Contents 424 0 R >> endobj 433 0 obj <> /Annots[436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R]/Contents 434 0 R >> endobj 446 0 obj <> /Contents 447 0 R >> endobj 451 0 obj <> /Contents 452 0 R >> endobj 458 0 obj <> /Contents 459 0 R >> endobj 463 0 obj <> /Annots[466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R]/Contents 464 0 R >> endobj 475 0 obj <> /Annots[478 0 R 479 0 R]/Contents 476 0 R >> endobj 482 0 obj <> /Contents 483 0 R >> endobj 487 0 obj <> /Annots[492 0 R 493 0 R 494 0 R 495 0 R 496 0 R]/Contents 488 0 R >> endobj 499 0 obj <> /Annots[502 0 R]/Contents 500 0 R >> endobj 505 0 obj <> /Annots[508 0 R 509 0 R 510 0 R 511 0 R 512 0 R]/Contents 506 0 R >> endobj 515 0 obj <> /Contents 516 0 R >> endobj 520 0 obj <> /Annots[523 0 R]/Contents 521 0 R >> endobj 526 0 obj <> /Contents 527 0 R >> endobj 531 0 obj <> /Contents 532 0 R >> endobj 538 0 obj <> /Contents 539 0 R >> endobj 543 0 obj <> /Contents 544 0 R >> endobj 548 0 obj <> /Contents 549 0 R >> endobj 553 0 obj <> /Contents 554 0 R >> endobj 558 0 obj <> /Contents 559 0 R >> endobj 567 0 obj <> /Contents 568 0 R >> endobj 576 0 obj <> /Contents 577 0 R >> endobj 581 0 obj <> /Contents 582 0 R >> endobj 586 0 obj <> /Annots[589 0 R 590 0 R]/Contents 587 0 R >> endobj 593 0 obj <> /Annots[596 0 R 597 0 R 598 0 R 599 0 R]/Contents 594 0 R >> endobj 602 0 obj <> /Contents 603 0 R >> endobj 607 0 obj <> /Annots[610 0 R 611 0 R 612 0 R]/Contents 608 0 R >> endobj 615 0 obj <> /Contents 616 0 R >> endobj 622 0 obj <> /Annots[625 0 R]/Contents 623 0 R >> endobj 628 0 obj <> /Annots[631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R]/Contents 629 0 R >> endobj 639 0 obj <> /Annots[642 0 R]/Contents 640 0 R >> endobj 645 0 obj <> /Annots[648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R]/Contents 646 0 R >> endobj 658 0 obj <> /Annots[661 0 R 662 0 R 663 0 R 664 0 R]/Contents 659 0 R >> endobj 667 0 obj <> /Annots[670 0 R 671 0 R 672 0 R]/Contents 668 0 R >> endobj 675 0 obj <> /Annots[678 0 R 679 0 R 680 0 R 681 0 R 682 0 R]/Contents 676 0 R >> endobj 685 0 obj <> /Annots[688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R]/Contents 686 0 R >> endobj 698 0 obj <> /Annots[701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R 707 0 R 708 0 R 709 0 R 710 0 R 711 0 R]/Contents 699 0 R >> endobj 714 0 obj <> /Annots[717 0 R 718 0 R 719 0 R 720 0 R]/Contents 715 0 R >> endobj 723 0 obj <> /Annots[726 0 R 727 0 R]/Contents 724 0 R >> endobj 730 0 obj <> /Annots[733 0 R 734 0 R 735 0 R 736 0 R 737 0 R 738 0 R 739 0 R 740 0 R 741 0 R 742 0 R 743 0 R 744 0 R 745 0 R 746 0 R 747 0 R 748 0 R 749 0 R 750 0 R 751 0 R]/Contents 731 0 R >> endobj 754 0 obj <> /Annots[757 0 R]/Contents 755 0 R >> endobj 760 0 obj <> /Annots[763 0 R 764 0 R]/Contents 761 0 R >> endobj 767 0 obj <> /Annots[770 0 R]/Contents 768 0 R >> endobj 773 0 obj <> /Contents 774 0 R >> endobj 778 0 obj <> /Annots[781 0 R 782 0 R]/Contents 779 0 R >> endobj 785 0 obj <> /Contents 786 0 R >> endobj 792 0 obj <> /Contents 793 0 R >> endobj 797 0 obj <> /Contents 798 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 153 0 R 212 0 R 259 0 R 268 0 R 281 0 R 290 0 R 308 0 R 320 0 R 337 0 R 350 0 R 360 0 R 366 0 R 375 0 R 385 0 R 391 0 R 405 0 R 423 0 R 433 0 R 446 0 R 451 0 R 458 0 R 463 0 R 475 0 R 482 0 R 487 0 R 499 0 R 505 0 R 515 0 R 520 0 R 526 0 R 531 0 R 538 0 R 543 0 R 548 0 R 553 0 R 558 0 R 567 0 R 576 0 R 581 0 R 586 0 R 593 0 R 602 0 R 607 0 R 615 0 R 622 0 R 628 0 R 639 0 R 645 0 R 658 0 R 667 0 R 675 0 R 685 0 R 698 0 R 714 0 R 723 0 R 730 0 R 754 0 R 760 0 R 767 0 R 773 0 R 778 0 R 785 0 R 792 0 R 797 0 R ] /Count 65 /Rotate 0>> endobj 6 0 obj << /Count 10 /First 7 0 R /Last 92 0 R >> endobj 1 0 obj <> endobj 7 0 obj << /Title(Contents) /Dest/toc.1 /Parent 6 0 R /Next 8 0 R >> endobj 9 0 obj << /Title(Purpose of this package) /Dest/subsection.1.1 /Parent 8 0 R /Next 10 0 R >> endobj 10 0 obj << /Title(Color tints, shades, tones, and complements) /Dest/subsection.1.2 /Parent 8 0 R /Prev 9 0 R /Next 11 0 R >> endobj 11 0 obj << /Title(Color models) /Dest/subsection.1.3 /Parent 8 0 R /Prev 10 0 R /Next 12 0 R >> endobj 12 0 obj << /Title(Color wheels and color harmony) /Dest/subsection.1.4 /Parent 8 0 R /Prev 11 0 R >> endobj 8 0 obj << /Title(Introduction) /Dest/section.1 /Count -4 /Parent 6 0 R /Prev 7 0 R /Next 13 0 R /First 9 0 R /Last 12 0 R >> endobj 15 0 obj << /Title(Package installation) /Dest/subsubsection.2.1.1 /Parent 14 0 R /Next 16 0 R >> endobj 16 0 obj << /Title(Package options) /Dest/subsubsection.2.1.2 /Parent 14 0 R /Prev 15 0 R /Next 17 0 R >> endobj 17 0 obj << /Title(Executing additional initialisation commands) /Dest/subsubsection.2.1.3 /Parent 14 0 R /Prev 16 0 R >> endobj 14 0 obj << /Title(Preparation) /Dest/subsection.2.1 /Count -3 /Parent 13 0 R /Next 18 0 R /First 15 0 R /Last 17 0 R >> endobj 19 0 obj << /Title(Supported color models) /Dest/subsubsection.2.2.1 /Parent 18 0 R /Next 20 0 R >> endobj 20 0 obj << /Title(Substituting individual color models) /Dest/subsubsection.2.2.2 /Parent 18 0 R /Prev 19 0 R /Next 21 0 R >> endobj 21 0 obj << /Title(Changing the target color model within a document) /Dest/subsubsection.2.2.3 /Parent 18 0 R /Prev 20 0 R >> endobj 18 0 obj << /Title(Color models) /Dest/subsection.2.2 /Count -3 /Parent 13 0 R /Prev 14 0 R /Next 22 0 R /First 19 0 R /Last 21 0 R >> endobj 23 0 obj << /Title(Additional remarks and restrictions on arguments) /Dest/subsubsection.2.3.1 /Parent 22 0 R /Next 24 0 R >> endobj 24 0 obj << /Title(Meaning of standard color expressions) /Dest/subsubsection.2.3.2 /Parent 22 0 R /Prev 23 0 R /Next 25 0 R >> endobj 25 0 obj << /Title(Meaning of extended color expressions) /Dest/subsubsection.2.3.3 /Parent 22 0 R /Prev 24 0 R /Next 26 0 R >> endobj 26 0 obj << /Title(Color functions) /Dest/subsubsection.2.3.4 /Parent 22 0 R /Prev 25 0 R >> endobj 22 0 obj << /Title(Arguments and terminology) /Dest/subsection.2.3 /Count -4 /Parent 13 0 R /Prev 18 0 R /Next 27 0 R /First 23 0 R /Last 26 0 R >> endobj 28 0 obj << /Title(Colors that are always available) /Dest/subsubsection.2.4.1 /Parent 27 0 R /Next 29 0 R >> endobj 29 0 obj << /Title(Additional sets of colors) /Dest/subsubsection.2.4.2 /Parent 27 0 R /Prev 28 0 R >> endobj 27 0 obj << /Title(Predefined colors) /Dest/subsection.2.4 /Count -2 /Parent 13 0 R /Prev 22 0 R /Next 30 0 R /First 28 0 R /Last 29 0 R >> endobj 31 0 obj << /Title(Ordinary and named colors) /Dest/subsubsection.2.5.1 /Parent 30 0 R /Next 32 0 R >> endobj 32 0 obj << /Title(Color definition in xcolor) /Dest/subsubsection.2.5.2 /Parent 30 0 R /Prev 31 0 R /Next 33 0 R >> endobj 33 0 obj << /Title(Defining sets of colors) /Dest/subsubsection.2.5.3 /Parent 30 0 R /Prev 32 0 R /Next 34 0 R >> endobj 34 0 obj << /Title(Immediate and deferred definitions) /Dest/subsubsection.2.5.4 /Parent 30 0 R /Prev 33 0 R /Next 35 0 R >> endobj 35 0 obj << /Title(Global color definitions) /Dest/subsubsection.2.5.5 /Parent 30 0 R /Prev 34 0 R >> endobj 30 0 obj << /Title(Color definition) /Dest/subsection.2.5 /Count -5 /Parent 13 0 R /Prev 27 0 R /Next 36 0 R /First 31 0 R /Last 35 0 R >> endobj 37 0 obj << /Title(Standard color commands) /Dest/subsubsection.2.6.1 /Parent 36 0 R /Next 38 0 R >> endobj 38 0 obj << /Title(Colored boxes) /Dest/subsubsection.2.6.2 /Parent 36 0 R /Prev 37 0 R /Next 39 0 R >> endobj 39 0 obj << /Title(Using the current color) /Dest/subsubsection.2.6.3 /Parent 36 0 R /Prev 38 0 R /Next 40 0 R >> endobj 40 0 obj << /Title(Color testing) /Dest/subsubsection.2.6.4 /Parent 36 0 R /Prev 39 0 R >> endobj 36 0 obj << /Title(Color application) /Dest/subsection.2.6 /Count -4 /Parent 13 0 R /Prev 30 0 R /Next 41 0 R /First 37 0 R /Last 40 0 R >> endobj 41 0 obj << /Title(Color blending) /Dest/subsection.2.7 /Parent 13 0 R /Prev 36 0 R /Next 42 0 R >> endobj 42 0 obj << /Title(Color masks and separation) /Dest/subsection.2.8 /Parent 13 0 R /Prev 41 0 R /Next 43 0 R >> endobj 44 0 obj << /Title(Definition of a color series) /Dest/subsubsection.2.9.1 /Parent 43 0 R /Next 45 0 R >> endobj 45 0 obj << /Title(Initialisation of a color series) /Dest/subsubsection.2.9.2 /Parent 43 0 R /Prev 44 0 R /Next 46 0 R >> endobj 46 0 obj << /Title(Application of a color series) /Dest/subsubsection.2.9.3 /Parent 43 0 R /Prev 45 0 R /Next 47 0 R >> endobj 47 0 obj << /Title(Differences between colors and color series) /Dest/subsubsection.2.9.4 /Parent 43 0 R /Prev 46 0 R >> endobj 43 0 obj << /Title(Color series) /Dest/subsection.2.9 /Count -4 /Parent 13 0 R /Prev 42 0 R /Next 48 0 R /First 44 0 R /Last 47 0 R >> endobj 48 0 obj << /Title(Border colors for hyperlinks) /Dest/subsection.2.10 /Parent 13 0 R /Prev 43 0 R /Next 49 0 R >> endobj 49 0 obj << /Title(Additional color specification in the pstricks world) /Dest/subsection.2.11 /Parent 13 0 R /Prev 48 0 R /Next 50 0 R >> endobj 50 0 obj << /Title(Color in tables) /Dest/subsection.2.12 /Parent 13 0 R /Prev 49 0 R /Next 51 0 R >> endobj 51 0 obj << /Title(Color information) /Dest/subsection.2.13 /Parent 13 0 R /Prev 50 0 R /Next 52 0 R >> endobj 52 0 obj << /Title(Color conversion) /Dest/subsection.2.14 /Parent 13 0 R /Prev 51 0 R /Next 53 0 R >> endobj 54 0 obj << /Title(Name clashs between dvipsnames and svgnames) /Dest/subsubsection.2.15.1 /Parent 53 0 R /Next 55 0 R >> endobj 55 0 obj << /Title(Page breaks and pdfTeX) /Dest/subsubsection.2.15.2 /Parent 53 0 R /Prev 54 0 R /Next 56 0 R >> endobj 56 0 obj << /Title(Change color of included .eps file) /Dest/subsubsection.2.15.3 /Parent 53 0 R /Prev 55 0 R >> endobj 53 0 obj << /Title(Problems and solutions) /Dest/subsection.2.15 /Count -3 /Parent 13 0 R /Prev 52 0 R /First 54 0 R /Last 56 0 R >> endobj 13 0 obj << /Title(The User Interface) /Dest/section.2 /Count -15 /Parent 6 0 R /Prev 8 0 R /Next 57 0 R /First 14 0 R /Last 53 0 R >> endobj 57 0 obj << /Title(Examples) /Dest/section.3 /Parent 6 0 R /Prev 13 0 R /Next 58 0 R >> endobj 59 0 obj << /Title(Base colors \(always available\)) /Dest/subsection.4.1 /Parent 58 0 R /Next 60 0 R >> endobj 60 0 obj << /Title(Colors via dvipsnames option) /Dest/subsection.4.2 /Parent 58 0 R /Prev 59 0 R /Next 61 0 R >> endobj 61 0 obj << /Title(Colors via svgnames option) /Dest/subsection.4.3 /Parent 58 0 R /Prev 60 0 R /Next 62 0 R >> endobj 62 0 obj << /Title(Colors via x11names option) /Dest/subsection.4.4 /Parent 58 0 R /Prev 61 0 R >> endobj 58 0 obj << /Title(Colors by Name) /Dest/section.4 /Count -4 /Parent 6 0 R /Prev 57 0 R /Next 63 0 R /First 59 0 R /Last 62 0 R >> endobj 64 0 obj << /Title(Color models supported by drivers) /Dest/subsection.5.1 /Parent 63 0 R /Next 65 0 R >> endobj 65 0 obj << /Title(How xcolor handles driver-specific color models) /Dest/subsection.5.2 /Parent 63 0 R /Prev 64 0 R /Next 66 0 R >> endobj 66 0 obj << /Title(Behind the scenes: internal color representation) /Dest/subsection.5.3 /Parent 63 0 R /Prev 65 0 R /Next 67 0 R >> endobj 67 0 obj << /Title(A remark on accuracy) /Dest/subsection.5.4 /Parent 63 0 R /Prev 66 0 R >> endobj 63 0 obj << /Title(Technical Supplement) /Dest/section.5 /Count -4 /Parent 6 0 R /Prev 58 0 R /Next 68 0 R /First 64 0 R /Last 67 0 R >> endobj 69 0 obj << /Title(Color mixing) /Dest/subsection.6.1 /Parent 68 0 R /Next 70 0 R >> endobj 71 0 obj << /Title(Real to integer conversion) /Dest/subsubsection.6.2.1 /Parent 70 0 R /Next 72 0 R >> endobj 72 0 obj << /Title(Integer to real conversion) /Dest/subsubsection.6.2.2 /Parent 70 0 R /Prev 71 0 R >> endobj 70 0 obj << /Title(Conversion between integer and real models) /Dest/subsection.6.2 /Count -2 /Parent 68 0 R /Prev 69 0 R /Next 73 0 R /First 71 0 R /Last 72 0 R >> endobj 74 0 obj << /Title(The rgb model) /Dest/subsubsection.6.3.1 /Parent 73 0 R /Next 75 0 R >> endobj 75 0 obj << /Title(The cmy model) /Dest/subsubsection.6.3.2 /Parent 73 0 R /Prev 74 0 R /Next 76 0 R >> endobj 76 0 obj << /Title(The cmyk model) /Dest/subsubsection.6.3.3 /Parent 73 0 R /Prev 75 0 R /Next 77 0 R >> endobj 77 0 obj << /Title(The hsb model) /Dest/subsubsection.6.3.4 /Parent 73 0 R /Prev 76 0 R /Next 78 0 R >> endobj 78 0 obj << /Title(The Hsb model) /Dest/subsubsection.6.3.5 /Parent 73 0 R /Prev 77 0 R /Next 79 0 R >> endobj 79 0 obj << /Title(The tHsb model) /Dest/subsubsection.6.3.6 /Parent 73 0 R /Prev 78 0 R /Next 80 0 R >> endobj 80 0 obj << /Title(The gray model) /Dest/subsubsection.6.3.7 /Parent 73 0 R /Prev 79 0 R /Next 81 0 R >> endobj 81 0 obj << /Title(The RGB model) /Dest/subsubsection.6.3.8 /Parent 73 0 R /Prev 80 0 R /Next 82 0 R >> endobj 82 0 obj << /Title(The HTML model) /Dest/subsubsection.6.3.9 /Parent 73 0 R /Prev 81 0 R /Next 83 0 R >> endobj 83 0 obj << /Title(The HSB model) /Dest/subsubsection.6.3.10 /Parent 73 0 R /Prev 82 0 R /Next 84 0 R >> endobj 84 0 obj << /Title(The Gray model) /Dest/subsubsection.6.3.11 /Parent 73 0 R /Prev 83 0 R /Next 85 0 R >> endobj 85 0 obj << /Title(The wave model) /Dest/subsubsection.6.3.12 /Parent 73 0 R /Prev 84 0 R >> endobj 73 0 obj << /Title(Color conversion and complements) /Dest/subsection.6.3 /Count -12 /Parent 68 0 R /Prev 70 0 R /First 74 0 R /Last 85 0 R >> endobj 68 0 obj << /Title(The Formulas) /Dest/section.6 /Count -3 /Parent 6 0 R /Prev 63 0 R /Next 86 0 R /First 69 0 R /Last 73 0 R >> endobj 86 0 obj << /Title(References) /Dest/section*.62 /Parent 6 0 R /Prev 68 0 R /Next 87 0 R >> endobj 88 0 obj << /Title(Acknowledgement) /Dest/section*.64 /Parent 87 0 R /Next 89 0 R >> endobj 89 0 obj << /Title(Trademarks) /Dest/section*.65 /Parent 87 0 R /Prev 88 0 R /Next 90 0 R >> endobj 90 0 obj << /Title(Known Issues) /Dest/section*.66 /Parent 87 0 R /Prev 89 0 R /Next 91 0 R >> endobj 91 0 obj << /Title(History) /Dest/section*.67 /Parent 87 0 R /Prev 90 0 R >> endobj 87 0 obj << /Title(Appendix) /Dest/section*.63 /Count -4 /Parent 6 0 R /Prev 86 0 R /Next 92 0 R /First 88 0 R /Last 91 0 R >> endobj 95 0 obj <>endobj 102 0 obj <> /Subtype/Link>>endobj 117 0 obj <>endobj 120 0 obj <>endobj 121 0 obj <>endobj 122 0 obj <>endobj 123 0 obj <>endobj 124 0 obj <>endobj 125 0 obj <>endobj 126 0 obj <>endobj 127 0 obj <>endobj 128 0 obj <>endobj 129 0 obj <>endobj 130 0 obj <>endobj 131 0 obj <>endobj 132 0 obj <>endobj 133 0 obj <>endobj 134 0 obj <>endobj 135 0 obj <>endobj 136 0 obj <>endobj 137 0 obj <>endobj 138 0 obj <>endobj 139 0 obj <>endobj 146 0 obj <> /Subtype/Link>>endobj 149 0 obj <> /Subtype/Link>>endobj 150 0 obj <> /Subtype/Link>>endobj 151 0 obj <> endobj 152 0 obj <> endobj 158 0 obj <>endobj 159 0 obj <>endobj 160 0 obj <>endobj 163 0 obj <>endobj 164 0 obj <>endobj 165 0 obj <>endobj 166 0 obj <>endobj 167 0 obj <>endobj 168 0 obj <>endobj 169 0 obj <>endobj 170 0 obj <>endobj 171 0 obj <>endobj 172 0 obj <>endobj 173 0 obj <>endobj 174 0 obj <>endobj 175 0 obj <>endobj 176 0 obj <>endobj 177 0 obj <>endobj 178 0 obj <>endobj 179 0 obj <>endobj 180 0 obj <>endobj 181 0 obj <>endobj 182 0 obj <>endobj 183 0 obj <>endobj 184 0 obj <>endobj 187 0 obj <>endobj 188 0 obj <>endobj 189 0 obj <>endobj 190 0 obj <>endobj 191 0 obj <>endobj 192 0 obj <>endobj 193 0 obj <>endobj 194 0 obj <>endobj 195 0 obj <>endobj 196 0 obj <>endobj 197 0 obj <>endobj 198 0 obj <>endobj 199 0 obj <>endobj 200 0 obj <>endobj 201 0 obj <>endobj 202 0 obj <>endobj 203 0 obj <>endobj 204 0 obj <>endobj 205 0 obj <>endobj 206 0 obj <>endobj 209 0 obj <>endobj 210 0 obj <> endobj 211 0 obj <> endobj 215 0 obj <>endobj 216 0 obj <>endobj 217 0 obj <>endobj 218 0 obj <>endobj 219 0 obj <>endobj 220 0 obj <>endobj 221 0 obj <>endobj 222 0 obj <>endobj 223 0 obj <>endobj 224 0 obj <>endobj 225 0 obj <>endobj 226 0 obj <>endobj 227 0 obj <>endobj 228 0 obj <>endobj 229 0 obj <>endobj 230 0 obj <>endobj 231 0 obj <>endobj 232 0 obj <>endobj 233 0 obj <>endobj 234 0 obj <>endobj 235 0 obj <>endobj 236 0 obj <>endobj 237 0 obj <>endobj 238 0 obj <>endobj 239 0 obj <>endobj 240 0 obj <>endobj 241 0 obj <>endobj 242 0 obj <>endobj 243 0 obj <>endobj 244 0 obj <>endobj 245 0 obj <>endobj 246 0 obj <>endobj 247 0 obj <>endobj 248 0 obj <>endobj 249 0 obj <>endobj 250 0 obj <>endobj 255 0 obj <>endobj 256 0 obj <>endobj 257 0 obj <> endobj 258 0 obj <> endobj 266 0 obj <> endobj 267 0 obj <> endobj 271 0 obj <>endobj 274 0 obj <>endobj 275 0 obj <>endobj 276 0 obj <>endobj 277 0 obj <>endobj 278 0 obj <>endobj 279 0 obj <> endobj 280 0 obj <> endobj 286 0 obj <>endobj 287 0 obj <>endobj 288 0 obj <> endobj 289 0 obj <> endobj 295 0 obj <>endobj 296 0 obj <>endobj 297 0 obj <>endobj 298 0 obj <>endobj 299 0 obj <>endobj 300 0 obj <>endobj 301 0 obj <>endobj 304 0 obj <>endobj 305 0 obj <>endobj 306 0 obj <> endobj 307 0 obj <> endobj 311 0 obj <>endobj 312 0 obj <>endobj 313 0 obj <>endobj 314 0 obj <>endobj 315 0 obj <>endobj 318 0 obj <> endobj 319 0 obj <> endobj 323 0 obj <>endobj 324 0 obj <>endobj 325 0 obj <>endobj 326 0 obj <>endobj 327 0 obj <>endobj 328 0 obj <>endobj 329 0 obj <>endobj 330 0 obj <>endobj 331 0 obj <>endobj 332 0 obj <>endobj 333 0 obj <>endobj 334 0 obj <>endobj 335 0 obj <> endobj 336 0 obj <> endobj 340 0 obj <>endobj 341 0 obj <>endobj 342 0 obj <>endobj 343 0 obj <>endobj 344 0 obj <>endobj 345 0 obj <>endobj 346 0 obj <>endobj 347 0 obj <>endobj 348 0 obj <> endobj 349 0 obj <> endobj 353 0 obj <>endobj 354 0 obj <>endobj 355 0 obj <>endobj 358 0 obj <> endobj 359 0 obj <> endobj 363 0 obj <>endobj 364 0 obj <> endobj 365 0 obj <> endobj 373 0 obj <> endobj 374 0 obj <> endobj 378 0 obj <>endobj 379 0 obj <>endobj 380 0 obj <>endobj 381 0 obj <>endobj 382 0 obj <>endobj 383 0 obj <> endobj 384 0 obj <> endobj 388 0 obj <>endobj 389 0 obj <> endobj 390 0 obj <> endobj 394 0 obj <>endobj 395 0 obj <>endobj 396 0 obj <>endobj 397 0 obj <>endobj 398 0 obj <>endobj 399 0 obj <>endobj 400 0 obj <>endobj 401 0 obj <>endobj 402 0 obj <>endobj 403 0 obj <> endobj 404 0 obj <> endobj 410 0 obj <>endobj 411 0 obj <>endobj 412 0 obj <>endobj 413 0 obj <>endobj 414 0 obj <>endobj 415 0 obj <>endobj 416 0 obj <>endobj 417 0 obj <>endobj 418 0 obj <>endobj 419 0 obj <>endobj 420 0 obj <>endobj 421 0 obj <> endobj 422 0 obj <> endobj 426 0 obj <>endobj 427 0 obj <>endobj 428 0 obj <>endobj 429 0 obj <>endobj 430 0 obj <>endobj 431 0 obj <> endobj 432 0 obj <> endobj 436 0 obj <>endobj 437 0 obj <>endobj 438 0 obj <>endobj 439 0 obj <>endobj 440 0 obj <>endobj 441 0 obj <>endobj 442 0 obj <>endobj 443 0 obj <>endobj 444 0 obj <> endobj 445 0 obj <> endobj 449 0 obj <> endobj 450 0 obj <> endobj 456 0 obj <> endobj 457 0 obj <> endobj 461 0 obj <> endobj 462 0 obj <> endobj 466 0 obj <>endobj 467 0 obj <>endobj 468 0 obj <>endobj 469 0 obj <>endobj 470 0 obj <>endobj 471 0 obj <>endobj 472 0 obj <>endobj 473 0 obj <> endobj 474 0 obj <> endobj 478 0 obj <>endobj 479 0 obj <>endobj 480 0 obj <> endobj 481 0 obj <> endobj 485 0 obj <> endobj 486 0 obj <> endobj 492 0 obj <>endobj 493 0 obj <>endobj 494 0 obj <>endobj 495 0 obj <>endobj 496 0 obj <>endobj 497 0 obj <> endobj 498 0 obj <> endobj 502 0 obj <>endobj 503 0 obj <> endobj 504 0 obj <> endobj 508 0 obj <> /Subtype/Link>>endobj 509 0 obj <>endobj 510 0 obj <>endobj 511 0 obj <>endobj 512 0 obj <>endobj 513 0 obj <> endobj 514 0 obj <> endobj 518 0 obj <> endobj 519 0 obj <> endobj 523 0 obj <>endobj 524 0 obj <> endobj 525 0 obj <> endobj 529 0 obj <> endobj 530 0 obj <> endobj 536 0 obj <> endobj 537 0 obj <> endobj 541 0 obj <> endobj 542 0 obj <> endobj 546 0 obj <> endobj 547 0 obj <> endobj 551 0 obj <> endobj 552 0 obj <> endobj 556 0 obj <> endobj 557 0 obj <> endobj 565 0 obj <> endobj 566 0 obj <> endobj 574 0 obj <> endobj 575 0 obj <> endobj 579 0 obj <> endobj 580 0 obj <> endobj 584 0 obj <> endobj 585 0 obj <> endobj 589 0 obj <>endobj 590 0 obj <>endobj 591 0 obj <> endobj 592 0 obj <> endobj 596 0 obj <>endobj 597 0 obj <>endobj 598 0 obj <>endobj 599 0 obj <>endobj 600 0 obj <> endobj 601 0 obj <> endobj 605 0 obj <> endobj 606 0 obj <> endobj 610 0 obj <>endobj 611 0 obj <>endobj 612 0 obj <>endobj 613 0 obj <> endobj 614 0 obj <> endobj 620 0 obj <> endobj 621 0 obj <> endobj 625 0 obj <>endobj 626 0 obj <> endobj 627 0 obj <> endobj 631 0 obj <>endobj 632 0 obj <>endobj 633 0 obj <>endobj 634 0 obj <>endobj 635 0 obj <>endobj 636 0 obj <>endobj 637 0 obj <> endobj 638 0 obj <> endobj 642 0 obj <>endobj 643 0 obj <> endobj 644 0 obj <> endobj 648 0 obj <>endobj 649 0 obj <>endobj 650 0 obj <>endobj 651 0 obj <>endobj 652 0 obj <>endobj 653 0 obj <>endobj 654 0 obj <>endobj 655 0 obj <>endobj 656 0 obj <> endobj 657 0 obj <> endobj 661 0 obj <>endobj 662 0 obj <>endobj 663 0 obj <>endobj 664 0 obj <>endobj 665 0 obj <> endobj 666 0 obj <> endobj 670 0 obj <>endobj 671 0 obj <>endobj 672 0 obj <>endobj 673 0 obj <> endobj 674 0 obj <> endobj 678 0 obj <>endobj 679 0 obj <>endobj 680 0 obj <>endobj 681 0 obj <>endobj 682 0 obj <>endobj 683 0 obj <> endobj 684 0 obj <> endobj 688 0 obj <>endobj 689 0 obj <>endobj 690 0 obj <>endobj 691 0 obj <>endobj 692 0 obj <>endobj 693 0 obj <>endobj 694 0 obj <>endobj 695 0 obj <>endobj 696 0 obj <> endobj 697 0 obj <> endobj 701 0 obj <>endobj 702 0 obj <>endobj 703 0 obj <>endobj 704 0 obj <>endobj 705 0 obj <>endobj 706 0 obj <>endobj 707 0 obj <>endobj 708 0 obj <>endobj 709 0 obj <>endobj 710 0 obj <>endobj 711 0 obj <>endobj 712 0 obj <> endobj 713 0 obj <> endobj 717 0 obj <>endobj 718 0 obj <>endobj 719 0 obj <>endobj 720 0 obj <>endobj 721 0 obj <> endobj 722 0 obj <> endobj 726 0 obj <>endobj 727 0 obj <> /Subtype/Link>>endobj 728 0 obj <> endobj 729 0 obj <> endobj 733 0 obj <> /Subtype/Link>>endobj 734 0 obj <> /Subtype/Link>>endobj 735 0 obj <> /Subtype/Link>>endobj 736 0 obj <> /Subtype/Link>>endobj 737 0 obj <> /Subtype/Link>>endobj 738 0 obj <> /Subtype/Link>>endobj 739 0 obj <> /Subtype/Link>>endobj 740 0 obj <> /Subtype/Link>>endobj 741 0 obj <> /Subtype/Link>>endobj 742 0 obj <> /Subtype/Link>>endobj 743 0 obj <> /Subtype/Link>>endobj 744 0 obj <> /Subtype/Link>>endobj 745 0 obj <> /Subtype/Link>>endobj 746 0 obj <> /Subtype/Link>>endobj 747 0 obj <> /Subtype/Link>>endobj 748 0 obj <> /Subtype/Link>>endobj 749 0 obj <> /Subtype/Link>>endobj 750 0 obj <> /Subtype/Link>>endobj 751 0 obj <> /Subtype/Link>>endobj 752 0 obj <> endobj 753 0 obj <> endobj 757 0 obj <>endobj 758 0 obj <> endobj 759 0 obj <> endobj 763 0 obj <> /Subtype/Link>>endobj 764 0 obj <> /Subtype/Link>>endobj 765 0 obj <> endobj 766 0 obj <> endobj 770 0 obj <> /Subtype/Link>>endobj 771 0 obj <> endobj 772 0 obj <> endobj 776 0 obj <> endobj 777 0 obj <> endobj 781 0 obj <> /Subtype/Link>>endobj 782 0 obj <> /Subtype/Link>>endobj 783 0 obj <> endobj 784 0 obj <> endobj 790 0 obj <> endobj 791 0 obj <> endobj 795 0 obj <> endobj 796 0 obj <> endobj 800 0 obj <> endobj 801 0 obj <> endobj 110 0 obj <> endobj 843 0 obj <> endobj 491 0 obj <> endobj 844 0 obj <>stream x]A Eh1iMa!J^Vc\<g y.斂Cy` k@''\PtU=SE 9t0D!)?7W Yd++EQvrM%Ȋ8@Wrٶ<֊:3[`y~UOzM |֍p 1DLyy] endstream endobj 254 0 obj <> endobj 845 0 obj <> endobj 108 0 obj <> endobj 846 0 obj <>stream x];0D{bo_ M \Y#Y[Sp{b((fռL5NI\=?:1#f,NTӒqί\^uPx U͇`o͈ZAA̟uf{Afuhn̅7xʬ2#pCN!M endstream endobj 455 0 obj <> endobj 847 0 obj <> endobj 252 0 obj <> endobj 848 0 obj <> endobj 106 0 obj <> endobj 849 0 obj <>stream x]= wN "tЪR{b!zv,}\ur6=<1ID匋uiN o:e6 p7 [P u"%ЙVw t:/bQOʨ+ (Vƶ *VƎה;%^Iw+JcD\Z7eJf[Y endstream endobj 409 0 obj <> endobj 850 0 obj <> endobj 208 0 obj <> endobj 851 0 obj <>stream x]1 EwN ܨU%]2^1!Co@%=W]MzF/JX#~H|:&kiIVuwޟ@|5abs4u-[c$#N-0yE"Y+Ypnuvrq85%Fr@Ȍg >_žHS endstream endobj 104 0 obj <> endobj 852 0 obj <> endobj 186 0 obj <> endobj 101 0 obj <> endobj 789 0 obj <> endobj 372 0 obj <> endobj 853 0 obj <> endobj 162 0 obj <> endobj 99 0 obj <> endobj 854 0 obj <>stream x];0D{boM&4 $G.&V3yp\%52hD5-iYU 7^&,A3 뾳WgS_Զ͹'WbkT Fpy!hM endstream endobj 619 0 obj <> endobj 855 0 obj <> endobj 370 0 obj <> endobj 856 0 obj <> endobj 157 0 obj <> endobj 97 0 obj <> endobj 857 0 obj <> endobj 357 0 obj <> endobj 858 0 obj <> endobj 148 0 obj <> endobj 573 0 obj <> endobj 317 0 obj <> endobj 145 0 obj <> endobj 571 0 obj <> endobj 859 0 obj <> endobj 303 0 obj <> endobj 143 0 obj <> endobj 860 0 obj <> endobj 564 0 obj <> endobj 294 0 obj <> endobj 141 0 obj <> endobj 861 0 obj <> endobj 562 0 obj <> endobj 285 0 obj <> endobj 862 0 obj <> endobj 119 0 obj <> endobj 863 0 obj <> endobj 535 0 obj <> endobj 864 0 obj <> endobj 865 0 obj <>stream x]=n0 wB7'%Y2(^CdCq޾1MO|:eOm$v˒MUiI/iLa3۰}}obQ i Iʐ/bzb?H11nbU 8kdj6A\-D8SDLQ\3)dgDmrCŎV[ZurN{;v襀ηDy*z"sנ΁Ρ3p ^ :>7<}MR$a(wd uc? endstream endobj 273 0 obj <> endobj 866 0 obj <> endobj 116 0 obj <> endobj 867 0 obj <> endobj 868 0 obj <>stream x]n <o iȗæI 0U%}miɶd~]ve_˸P݋GeMBVN.?2Jj(t[[vKR0SWҶM,O+c6@jCU-4ԢY#T2<v 5^jACzh=52J)*c]rYKWKʱ҂.9-THCMgʑ~+J/^Ask߿[)I'D~ endstream endobj 265 0 obj <> endobj 869 0 obj <> endobj 114 0 obj <> endobj 870 0 obj <> endobj 263 0 obj <> endobj 112 0 obj <> endobj 109 0 obj <> endobj 802 0 obj <>stream xyXTG+99X+wl"Rw̬60 MEi"*-jbIzcIL4Ę>ͽ5{3 ϳ{z>"gJ$X?C{k6S1:j @M@EwX{ysuk=rl%ξ=-99{8d9L\"YwY89:fw\דkx:ٮ[w]6.u]f[Vo]$sܶ&cc}4n 'Ιd5yySGM[0bLD vR)+j25EmQS&j95EQJj ZE͠R[G8j5OmR -ZJͦ&R;55zEYR,՛zLR9՗QCj 5HIAGQ#M!qh"MLMJ$9L op0{r1 f.f˲s fjn"ŐF|3tЀ>͇?qC9{,-_ 7\2|E2~^NCd!b'zI $(S|]Wi)u`ed EYD( 9_.ALȯ(:ְY0e\\v?i.&׋P庘ߏRXʽ˜vdpXŨH(S rXEޤ)P7C3dڄhCՉe?iK22~=KPe{pd| JKuysf&X⁘}1FJ7-S 9(C8}lYcuESo5:N'~ϲh8kpK  ^V^`Vq<A[)l j=$yY6a9^w^ ݪ=EPG`ݚ2ȁ4YXEȀP'z 6c;]8BU5'FbؘB<_V,F}< F`d[HsT'GAAWj5RJH HJKLCSsʤkHh/&u8OO/TfJ"Vq+6@y`'>ףZwЕ#wpq}>řg_wncsǗY@WiR8\>I)"=*Ah~E#Ё2^ďGi$rLNro9cR&I~_LA=%&p! K|=!/IG$@{枘FX4x /Ƣ_Pa[v8ԫBHEh#ն.k G`'cȥ^]addM-ay4s._F2L)^yPv"t*9 *)pQc@sf y/6c @U&i}ΚU/|D"R |mD*vNPovyK;d?,|Aܱci Etghsz4Xmx4OG[_чW:G@lJ'b%#Wno&BL.$یhY&zy <-+ԧjE>c4 3uGgyJr흒7U*3T39VI# 0 ;7A: ]b~$ a@L'Ơ~_(ElJot{ U[TgQih28g=!R*cZX#"85M%\Oh:O;KCHF|8KgTt5VG<~7 ZB$v,ڈlMKZvfK8ckp=)eցk^*iHQ2{1Zˏdc}䇖ʄt.*!,|!Vp/~6MCRm!!Fl rdN,xnJzA4 s1GRG,EV*FO] Nɒh_jS ŶFF)Bc |H`!&DߣC!:3Y.34*Dz!P,w5eIO,hg*@T_ 8ِR }% όJ&̨cIXv3S[PDRԪGADPfN"r? aᾷ1Q n8O&ii&d* Ή .p>&ovnr9ɹ_ DǨke~29yaL^tQ帆sї3(]4M%耹it4كE]oRNpb%R/W;8ҙFe%P"]K~x"DX- ǽ]PW!GWkZʤy5nd@ZkcfDs EJAsG(K6riۥ WvJ.û"Jn1w~%2_Ob_cEIIu\H#{N} rIi!W'$b|)L%}ر+X*2Iڿ=pI=uԂ]Ixvp>62+v.*SE )JALfZeGE'c *U$+!Ţ *{pOp&4#TEA&%鞑LR|-F}ze-M$̓ 2c! "c0ǜߩ4zu=B_8yСҾ"7 5™(E%C$+P.o?]_u ~Kl)(C T?࿠7GA̡N= oGl5#r_>Gc)۷mwUPJ(6(q-rw?8S'Gr,b"R*'AQAڝ㎁>[tHNȱ~pppRvTM F2N;kG#[-h-JR݊=$2bwa|%2YNeTV8|"ʊzS á.`&p"x>.Rꔙn!wbFbstW|01*Q9MOLg^l[cvf6BZޤUwGGzѵhL@:UvG\ekdRCAaQ$PڜVLk ~+ݭcҷuʲ$rףܒBa+4rK=?:~K4){-]0k;]x'q! RPѢ*'V` Aആ.ATU * ?;'XZ9ڼ <(Q~ V=QpH؆Q2!!o3  C` ;E~T3큻ձ#9~Te&C0oռHG{XFמ5: OO]WgV5֑sدԱA8O8m;p. ב =-Ǿb?߰9 gBe wN8јPʸ{WvjYb̰.AV>B"sd616KoXYܠrKFD=mu\3Eȵ3Efc PQtP;*P$:CסC\(p‡p5r'!Ʊ 叉 |Tm?lR$>PɋGuq~znoB "b}Kü1t%M]}fM{=WnX|_`EΤH,N=| h\$ۖzH<l956,41mW_)U -je1Zd bcS2n@]]Qs_/ҌʚI#/vn3&6jlO./89S׃3췕DCԓ%;<3?2c~d= P|塋7m]ln'nF'/c?o3_-BΉ2A:6{azb?jdlmpTT8̔zyxjsxXr#/TM/Nx06q2vh>ُ0Psu}h=UC)Ĩl,?b%F'r?=/_ϷfyqrvDju\(jGXm&Qx L-TD+ @flZnbFfyd%먟0 k6ED$D9R䴋gV( Iq)Qc5o`ZmtdO5ouL4.}u&YĤ8w ҋCļ%=-*`sa֌?:i7a9\/RWp2%$3GLey UP &gl쨍X$^z(AThsZ$|;tdRdG 3:[3{|75nK|BYd}=gC&9"=v:4ljy'R!""=:3#)55+槲ldu1Sֺd԰mJ8E]O9]w.|QbaU_nݚ)PSgd)әMdd]8GAׁ;=Y^H12;fw,wؒ]@T8H;_J@@ 1KR؁)"]0K;%"z\9t =(j}{2Ky/ /@smA[?Lh|ZQEnME`,^ʅʓ<|9KS.^ԇz2啊f~&Ijѳfl e72uJ(6kE'f6퟽nX.R  dQ}sm>Q X?,89=K$A9 9:Hrݓ^WDž^w|YYiFV@\*JBAl_!S6JnNf/#6E&͍ LϗIUwǹ:qz|Go,Ar*UX"G)"!WL:aC̐=>\ M{MM endstream endobj 490 0 obj <> endobj 803 0 obj <>stream x_LSW{{;=:sۜzdFft#l"flF19(?R(-PZJ˟R ?Q SɦSٟlm۶=-5qe#ne9/K:qhWE//^t[~b#Ƭ+ԣc?xS?fvFsN25t^L4&a t荼:1YgyW 'LASx18 iqˣ/4+*SpT4}a _{:|E' |.oNzW+tE䷒;89NJR\&op:q%}_ύ }KntE>vrko(hoՠZ&UEit7y<,P8+42$ w;.ͱVG%E!qMRKho:4r})K%X֜9\*}# iuE57/vܤ ,ǩ#^XC?xq@@9b<=ܣ_pΈR Ļ~q5+ď=+'V/>KfSV\))vM endstream endobj 253 0 obj <> endobj 804 0 obj <>stream xU]L[e߷r:MՍz1EI ..:vSbOK_ӏHK̄-N^h,L?oM!Y#o6a(ZD;iFZ޴ #(ho# vi9f~uv&}e=S-/>w::\} k`8'sW{@O{@0i"8^48Hk ij/{ЏOzOW*x:Co͛/xCWU&-{'7d%C>vI&I6ȦwwO߃#[ n-Z<3em̭_]N4CDb6HR-RRdqz&9n&t{+=\.LMECaBzIV %q:%Ap竤 (`ˁB&/Ҹcm.B9O#~c Z Z*/JK|.1^(^+HXU}'Hx (uKL!.^\d>)F/t_e g{FeǶ Eڞ"DG7p۽&mھ3=j < >)pZ|]qĢGuŻ21'hb})LDЬ1r%V(dEQ ibT̡P6!T2晴5"EAP\J3S#R9OOP)VĒrUG/r{;"~{ endstream endobj 107 0 obj <> endobj 805 0 obj <>stream xmV{\LiNӜ9]بc)rb]F)%EFR2rWOEVVfDܪ!Yee k~'gey>9ޞC!u5DQiC)?WSI`>amχEF'0M(irؤp$_ZXEK"BVI%AR&3&$B"Mf`eڱCV kCLtlTg*[2NZ+Y6\ >!r]TPbtI'M57b/g"!G GhZh)F."{ -BHi iQhFÐpA#Hr =R"*jT3T TKW>_]^?HS%2a<t2M%VZaZI-A\F$Ay#RPsh"^Bwu>yJIˣZ3W\㙈7bd;:/itVzr\p-h1Tٍp/z)m_36?Z*l;T7;ÎJ!P46fc]4 3-NJVQ+ʻYXSMίQ/(qé>[ȩR^bYt"]3 OF@3%$ ČqՇ3^CRb9PSzY+RC{, ca=)}uA!qZذ0̈j@/[`*fJ4,ϳ0S.>%n՛ zޡʫ9~a<:2,j: uДSS@ Ow6J0COˆ r+r p¶].p%n^x'%eI oGN=BHxMn=$^F"HɊ͘bg?Q4ֵchdJ*'̧^3`˟~`ZaLRՓ*Hpv^m@%kqv2Y&.rC?Lx(1ns41_O^c'D2sp:)_ߝg8<3:o>\,ڹg fE,cď(i;z|j;KiWl@~z#\JĝWԋ.8$4j"FkGtg%h P?q*eĈr9p]*4ȡNwVcVXpHl!f̸K"ė$hn`L8t>xqhV-?i<}̿u[ R6֭h̋gÜ79a,v\/6t5 Ypv;pk칾o*1SW2͢ĴtF!x|b?7 zhkNѽ3.f`d?.aQ,Y942s t JD$േ<(I$L(2r2= 0Э¼%h\9RSh3d1b6Hљ#u1CڂLnpɂ;`! s"G_:D[&:D˓Rf7S=x0S`H3y:Ĵe{cLCI;y/* s?XFO 7-!~*oM9H|5wrpSBX9 &2xʹFx2"bܑӢ >WFԇa KuúϚ2nCit^9UѯHq(^ O-P`}lUv87# 泉?& }CA@5dc?-z I T1we,6@0gz7۴5 49Uym,;o#!yW쐬w0LO4MyɒG@?xH&i_)+c.ܸysz2qΓuW[VM[9&*yp <&Rp2yluXuj Gg D D4D˗Ƕ)Ϸܧ«<ō'Y.ɖ1p ^fqZ[R,;~UUerU\/pƼe51QU5(|̵j݄&+rqwXh=W]v-w˰cbߜ]؉!te΍5zJqmOf8_VDCIt֙}LNRH' ݤLn< ˃As6^ 6quQf+ ;CY̵=w)8%=˅]Zቢz3ˢIQ@&˕3.sx,r_WN ?2(>B  -YlmmE0. endstream endobj 454 0 obj <> endobj 806 0 obj <>stream xcd`ab`ddds 4T~H3a!ann߫[~7n$_PYQᬩ`hiiZXX('gT)8(t+mv-(-I-ROI-+(Me```4``b`bddϸ'?J3Oͱ&wIvr}fco?nmݝ]ukL6QxOlŧ}xZN endstream endobj 251 0 obj <> endobj 807 0 obj <>stream xYxWX %p( BI F b{A.B%KVבdurel1&PC l ҮyWI`Cl)2JHļuK2#_a *`yt aɱVm^%5#!|͜a1Ll'BbH '7Jb1L"[da2p"SC^2tk::U#?vdd䏣l73.3jL؜ߏSF}' ՓӞ {R)juӠ{YnY)g;m~H;RPک7p3F@FJ5ZL3ZqJJ6(=9.!89@O&GPP r'Ѯ7x/_ὠnϪ2֩Gh ㆾJu,Б}Ք4@ !Vc )V\VVF Y䗞*;csZ}_9J Xth/GEV(d<.҃ԎR.5=w <j=dwgh*%? 9:]oX^)\IVr^Nn4:q XBWd!4:Vy_Au{S<׹EO1__lUrhO!JCݥCjZ93o8&S,FD @tՈDK]z!~S^[<.BSwDw}ӛ!42 Ժ%73|&a^q P0b=G2P)Hm̨̫/`I4ls /}U@t0l3[~y^ԑ&wZ|&p̗xfKu^MdUwgfp,`{hL\"ӳ+_l">µ6afXZ:GbeF/ ~~HFr$Eҫ p,dG􁵓2+̓}-ÖB/}kZ!,=^H}ቺrKÖ́1f3M@;Q4JEJoZ:7аB4 Aw@~^ļu6a \WUDEB 9h#ڌZ? f.g2=AACnļJ3ݿ-pn~C^!{dJ޵3vӱ!@29?o56aRy: FVBqMŔGŮaE# eTws"(tDZ%hHܺ$z IZ4%<#uWΞA:k7<4DLT\S0}J TZaVbpd)@YsuPg}ɜ2-N/Wrt :0~&2qT)eT tqy#&$UDI#K:Rg5xubw\.ktMߣ/i rBiIq ̚_dAnxqdDs?zR sseeX{fn2M+`qPɺˈ8˘VZ-1/1ox]x*@vÚw}4z䑷n)=@K<&k  ia엒oEUEόcf~}~\,MTdxi9# FpN#e:C"C5Lîxsuuϟqd{\#y*^FRbn YOwS}}%UtHYPc{yzB[Y  w7cG+yXbeJ9ef rfޛ`2z{4qlTZjގؔ+_`6B''4XA6AAIFUb[SE/޳DC<ùr܉)”EaVP{|Jv2y ƞ5Q"!c??=v'BtR]^?u?ZDU`#ֈQ숰X\-g0~ɫd[J R7ѦrC\ZQVQX^^:u8t^Pł']%-ՙMEQVDY>XSv}@}x<{~Ӈe< w@oiej0z}o 1o1AjR [hsu-é^*ti &/m]}6! U'7$C+tF Nih;XnhtD'g2Dtͦtmފ+K &??9zm;'~FitjU:d>RVSU@+D2\9M0NY`u当0z{S=9Vp Z4Y!80UG* iZ) ?\h#4E `U\>gЫyG*%.VbuDo=g2Vsc~=3dTV!ӂ)>dD|uȺҔѴ4\)Zrd*ڪIV%Baڞȶ-T٦cj DO DW/D.t6ю6YkcaW[G0VAث dWc`/;~2-[Hk_ [ kxZ vٽ;_.}Oܛ/wMෑ﫥}N# (ނG 杂Eť(MpO}uC[*,kmijyФ߰1oƢlT( { -h)`@z=.Xڨ21_Axf L@ۺU6i3?qg' re^ PZd }*t*4f|MMAhm~+O]M>݅[Vh=2K9Un'sGmߗ.ϡ,skk ΡPopw.D1} !C.d& ̙~k~Qg9o09y1!)}_Zj`jTB~F۝B51*,%1((Gc"Gɻ>N>Cf6zpK1f> c DTexG.V(x3b#9KTߓgoIVu[Pw%!X[u BTϏO)Jmr7aQwRy>oɕ\p}#n56o+ g˗gognũodؐ)ܴ;:[1TCQf*#beuC+B3pEC2bN#Zn+Y ꏃ4RMb6Tmf&g,SSV{'wod$X-)[h,zV$k4l鐞]Xa*-*:AJ*[rϩ.ꨳMHubj(aC/ >lmp? J endstream endobj 105 0 obj <> endobj 808 0 obj <>stream xV TT>9%I(!! ߯b<i,E@" Kffi¹asUpy0K-g`jݵ:k͚{߷cod26 ?r]|R&NC/!$'iɘ6 W>Lr* 1)39nTWπg\},Y+69.&:58:u{T9/>5L"5,6%69=vRc]&'0 3/&2?`EH`ʔSÃ֭Zf ø1+%f:3qg|L8c1zf> b2l&q1|#kg{sWgqe~o?stt\ڸd$fyM,8"i 92 $Rj\d^^U%~8m𮆷pId=a4 ÛtG~t$$o3)t@|\.,PdlܔA"H,J}.ÝHN]pN}pGWE8E.^©ъ--9.$UmtDMF IVZ tXigbH4`z/kPVw;ğ/ #[u'܅kˆXH  7YcWU:b󢝻rNl4ȡ~1qUݡ߅!?-Db8`Fj,&Mp<ȶRZ)~eL ä&"* P+Vo5$slETI|CtB'SdANY@܉ˆٰ*" oU@z-@>+W %f%E{a;P)YOe7=jn'8L6,Pr,d)-OTJC7ų#?|8~ǡWi=<ڢ)UX8& +y2GI^/9·YjOn#B$FK$T\{"_ه~"p.:2cIkՍFݞ&E{Q2#CI z^NdNmh С% T@9lUK/! fQ)zaOϲ.~=A 2*^@R<繻~oRCh~P3E٩!,OGٔUY< n85D+j!-ruz! ROsn,+\rKhˬUnzs_~6@HRBS76IKar;-hDe!zgl*>/duƇÿF=tܔ|s]A:; \ɔ]NU ro {&LD3Nfqaedt-"?*T#Gṅ {i{ʩ=xgիߖSa<3<=åsˉBm (ł1ET 8Bfax$~u4s.ξ=|[-394Jc%DZȮ|׾I f4B {8aVU* YXq|N޽r==?pG@k/kAB|"x8|aʳoRRC7l ABin0A7I ;D|GnՉ0&C | $ktC™4xGW -W>Z1zqF;"8y,w1TGN >Q.>fdNyLǎk:^cPT48 ']ۖ+wrd)Y=qҞO>=kV?+,hnʂ<=&8^ő= 4Y.F\$_55vpN'z u5FmΠ=JqƏvDsq9וE *ڔZ.kQqQuĵcӣ]ȋM7}m%cJ~O^粈=ple6ӪhؐM# 7 UV*RfĨFVYơx8ENF''tluzD4a$ endstream endobj 408 0 obj <> endobj 809 0 obj <>stream xuT{PT]^ ݊uwI @э#<*eYEؽEh$_LN&ZmG;6NbpVһhԘ;s˨ek2B0sfY-NaS6KQA:05110d).5g[ M%Vذ,dM1/.6ʨ0f0YLyA+&!,d)ͱd皊MVYRαltCJQACg5\TPQYRVWTa.ζ=JSfKY^e+ m!Q*F4Gw0 =夹q6CΏ|zaEXuma^mew;6,c6=!ʤLUY= ?%~Ϧ}xc1R%K -\ƕw$ :Q5y>•KnݧݒK ]o+ CQk0(`N89%n,`2 6ʣd"&6ɝ`Ǒoj wVzvM$tRG_ܓz]p ч] OvQ%['Ig? a װ=lGhMsE IGe4Nv%;ޭM.1ia?J)V\&m|+{÷p̗-J6Tud1[U( Vz]1'tshB;5}iݔ*hO@.Aݨ? B;r6&Xۿ?n>㲚-Ҁ*u0jeC0*9 o[QEE\"J'*56_^->@0pt|H~׀K՟gO{5XA[E'l:y׽˜`[N}-48'֝WIEZp9/؀olp9fsI=/S`}bd'Yi+tęo0V(SU8w@`ь/!Ax3ʕ/ӧܹ}0F7 P{-~(ߖgX Ef 3_-B \͓!6%6|GK@("l(DZ8Q8uWٰ\@_)Uxj`AiRncH[vj0Jp-#\>i]RMtg>q1(| M`8_ uI;4$_׹=48؎7@@)mp! Ipޞ'zg! UgACPpfc*\^mJذI.Gӫq#0/10ȸ=n74X(2rD1} S& `4Π4s~$|7t[6tjG?P"Gy##/a E-Y| endstream endobj 207 0 obj <> endobj 810 0 obj <>stream xV Tg hz,Vm}"*V۳>Wm*PA y+ !! bY5Z[,mwvju[lv_؟Plwəs2g|_@QcM`HE /98| Dsh8 G}ᦠf2nRB`[kRӲ3⥾]|2U) ђi|lD?$F'JJN v ͌͐Ԕ446705&6c/EQϽ:5-6#.3>҄ [IYɒ})Q5zZKͧfRAj=BmRljPKPM* VS[ʇ/Q~  vq}C"?F|CaO'/`o+5Z,!|5_@#Kq1hb-(܈̄G|nعJE J*%&E0B4ǴÖb^ 3YC^|e\K^f~Ee f8IByYPX`NG $&`,]:ze"l Bync :q*^27]@fF?lw<x2:29Q[X8qm> mbw߬8p=e7 }&HHde1=Dh 28X,)a_U&:y ZWŀ2u?,ۃ &ď%pHVB_"loNax;{&`<޳[Ơ q܉_c ~N_t<;uPb݇IŹ;*ǜD  qc!F|AUTC3KeA0p1we ,\-E\kd,+/U7i\qdC2J#ZCKw#!,%ri{ ԰,!-(4ހЫ{/_u@ѓ]i7 bnĬ.,Syq IѾ0 dWRb١'eK7*NCyq:8myQ^[V U+*R$d^㫧\.Ϗt7ؤE\(|< msJ9EP28秚8Y@Vf lKW_{`YqM^W L:}FA0`9ټD,\hf6-ˬlC,3o&qcgZm@{i yр87ɗ],gg g8uD:><4 Xx,9nTeqtISYฌnr_1vi@wi`Z3Vs-S(-/fGDiɀ\" u6mxgҹ1㬒V:h)gN1 5<|YihnȂ<:TN^ ӽksԹ*ATc^^&e`zh l%PrmK_7Cюլ , ^}^E6Uc$Ȫx^c K0Y>&^UpGSdvޚ^e_U%θN0W1?Y+i~b?i|tOiin1xE?2W^A,/Pk@-B}Q]λ:BMb/'Z2kU_|ret#;.h$i"Wޢ&v!^@%/zs%oFo[On|U7HyiP@2r @HhX 2XŝQ(1؎9yg >kV3OKUjq#uڭ,5HxH`gb4+Iz]Ɣ066WX۝re ŝyz_y}{W9;?y< &A#!| G7`.qd*2&$Rt}Ƌ=ݗO@˄g&RԿfE endstream endobj 103 0 obj <> endobj 811 0 obj <>stream xUMLpT%j1  -c6nxS/x5ot$Qoy_`e: Py`jׂ9]N^0azXYXXFI='0{{|dgG9 rthv<mqnN'~pA$MRCdO q x"<=${<%irks})[w?I߭0̠?S (VUtXJk9ugubk4@Dqŷc]D8bPbVn 1Ep9l7 )tI\y`ǣ~HU@aM (|"lAV.H /Rf}\j*¡8Wa,Y.؇ D4ثCa z'I)ch^X_$Gaqt7y%"gD;d<r2LYz1&j俦nV_qVP.G Ϛ_ (` 'ncW e8RBiCE1k\ y`:F3{ڿ V~:r6fYm-vEk  htDywa$,4[IP18.PJhVc=2K*^*ɔ3Gwm*+17Sj endstream endobj 185 0 obj <> endobj 812 0 obj <>stream xyXTEsbA1PP CgmfA )boX"AM2{M4E1hb}o 2w?}>wk27D"d)_CE034)l,Ҽa؈jka))HdA#>^2q ?:gGR.2owiۯ )loFFOiN v<.A;=Ep ˂+lQU^KB,].}>7Ϛ壉÷Ξ4gH?=i5Am>QsHj3ZL}HVSK)hj JR˨+DMQ(gjZNͤ6P+Y HmVR )7R({zSéATj.5>l5QC(+ʜJQ-5Q6Jx]37/a>|%DdaOQ/ޣ{3O2/oJcV# ^_>𥵕u5I{Av([>=H;qp`.ͮm!C:j趡G9LHn3{'7mc~B rD:HщapmjQCc0,::TbS,}M|D4>(<[S$ ׂVN&Q FoVd(EbTʽ˪Ȓȋfѕ#-RUE֠{PPa_Y`[,#~C@y܋*T O쮔d;%ZI. ɶ}FFY HvH!+ tR(*;e#ˤ"h}ql 8]몵~W`0mB;tL]}"rF)6XLۜxqEAq8|0V?nRq1Ϗ]_7E Ҋn C,[R\JlGZxu C(Wy˫S)=aӱϣ8(8|Â,*.t4ڶUy0B]Ʈ`UCXI%v"dߍӄ [Bڥ_AFM:R Zэ6n1J L dt©PI"9bwAM|\5Ð/$[a׬<^䜤Be9Ug0ޗ&M (Mw7O:m&~`$@P4Eú Zss8TMY)m % W:6_w(p!m 8nvCUGtbae5jU&*e?}|i\ dHuLGQv>F%I9 y I7.ꠚD|8<2g`aw$C=(ߠ_}+lVW]EL7tz؍5M@ r?gǖ_},C->ײ=wb`ĦBaE7GӮhmXOw3m=:{'#$,y8Ha%gЗSW#B]R;:+\y~TDqE#cAD^Nj+"Хշ;䰈]~}qt5۶mzV<}!>VeULރʈu>[򭈙h C "i~Z♙oV@3rSNB()#"e= Wٱ/ojR%6b:6خ^`>:0e:=3 c}K qZ`pXYVx4;0ki!:45]Q@p&ʈj"GDϻ!idM EX67QO֤ocٵwʖ\jYZA0bhK!DRȵzWҜ1! N,| 'Y%N ϘZ6vYt:5hB-U7/Տ\0?~➉9s.G )" "wJ#j՗HJ%N+zF^`dqD*ƠD<٪JCf'9G8liz8| I߾|UR>#*'˗y7(v'δb'wl}.mT(A#n־V>Tg=r^0#NO:ʐW)]֐33йnu5xXB<څ!&F V ܎iQm^ ЊРк:]>wJ{^O l]whaAjwpiGeRe_j9EMm5[֣k^Gw~Rؼt(s/lFζ 'p)wֶ5NjT@ѼЍX[<e' ᳔eE=uћىg {_{O oC~(ۻKUiPbz JxACq~sѾ&*8 }Ȟ$? #w~ݍ"9FQ3{?pQ\FL(B?g# `сl + pP_`Sp5ՊR"|E$i)]9Dn҇3"+X4ȗ{(xhoq6mSzMo~`ަ92wu"bw =wڰassLQ/^<|VziQbD [vW!(hF:2PF|BIĞ;y5%si|g-Z25WpG,30;2˴ՏTEЂ{e%FBԂ2K*L:" 5Arr.SAZ B&5SWa,}3x\=}4Z*oQq(ORg|"^6NS\<`IHrCIq$>L1/nѠf~>ĖmF Ydz#ZT[L (?YUv꘮ט. I<8f7ݭtPB/Ǚ]c?!^Q࣏) 48+(+P-8ӗ5]>0azq?izleuL>}}U)Fp?5q+kG#!/JlZ;:RYa$❨AuHD3TP<$1"T`Lx2Ae=+GaD9V#Jo4-[LV3ϻ̢:tbCYވ"+s |D2möimjQ0E,6?goޤ\#xUE<&'&;Yy\I~*Ȩ1 xg[ lہ ΂[.޼ķZTIoc3^n1޻Cy`K&-@浞og^vŔ Nٹ9HTEiW<0'OonԠ*b" qﷂs 0䧒,T䥪vlqS7r]KV3kwu{S$RXtӳ%-"}]MNkb4INB̫C~q <1v0;Q=99?S5PZ9ȝ6AHgc3ɍdcʥYf[Zz_rDTel8)\:T,+Z"B#M O)HNa6D݅yؘgb ÝgG:h#2/KX_QBC4#5WN$+?ylhlL"z;@"4v7ږH6] 79яH$k*ޓ6)7N,pxg-ϻDKW/+ H9`~{ ~%eYFBlsE,,(0wo.*gP_Q}71Pa<_]xldLDA^lUZPaR+P]"ݷ˯W~>7k3Pb{ˊK*^Zt_pc# HI,|/k:Y.IρS=HցvCwl0\="Gh?*N%RP$R^S.mhb<Bn ~ѯ߃%;ن QnI_GXg5\Q搟,[U2WQrگg:Y} |rÆ | U, Qs7Ifoox$݌ yGqȻ .4PL-$L{JCYUťeyi{s -ҺĎ}jxލ#Gͥ\6$X.@EޖN)ԫwrCc^a9qJ<8`yhYgt_N*#%a81 1\Yi}nPנ$deBu]\t,|oyЅ9 ow<jyF=N˵$$ \+Nvˉsmwq5.֞hE>kNn&y=?lC?ɣw/;jԦ^ӓ+V.qZ;[(T0&9&Dܤ`ٜvh!0m{4$qP"RdegR*R, +[ Yml"8,M1 Gܹ#'8<*uX՝7n5P*P*J͊F5 >ӻz ýv%S→!`ucaF܀17`Z,l fOԝ2cq.IvKȞdq1>g2Wt$cPR2EQ Y~sAޭݗ$3:8D;PM0a/UVƒ _ 籟8-1ܾ9ޟQw,F3>h61 (vzLAQ3UB^WWF d]@r_Qz:;HPr;xTv!4bHUX/U%xX&FFN?px }E("ZwG)qq he--K-.?s80EbY0Ehp AU, p.RҐViplQ t/i!ٸ!R;bKlbRJ*3'F"p"}쳻_m;y }ˀ嘻=wά]uF71+>ybkśV; (ki+zGYZZ,R =3 endstream endobj 100 0 obj <> endobj 813 0 obj <>stream xcd`ab`dddw 641U~H3a!k7s7˺B``fdtv/,L(QpT04WpM-LNSM,HM,rr3SK*sr@:RSRS 6;)槤100&T000032D20}F |~bh>)5יP;?kzbwC7o1߬~> endobj 814 0 obj <>stream xWitWB\7I(-P9!i686x#dm-o-yW&؆`v44%ei839y~yt}̜::GuN{߻ES(!;6M<v,A< xb4T$8ZţMC22eIs煼xŊWץIcӃcsKbsMjdila7rKs҄C22r tM4МsS RcQnj+ZHMAmBbj&<AQH-j'LEQzj B=I z 4דFxkxALdNcAX>uԖ頦0INXO-.KХaC`39 t>PC@I&yթeAYX&8h^`+$TSVIXҰ0LIoviϷ%HIHAa Y`Zzt;I􂺻y:֡TN[`2AWhKC1I+z'ZMC&kr9.ۆZЌޣd{U):-BeoLu)y;r La<VO{3oyW8?C.ߣ'QQ VDN̖c.`h? x=0F{iyBurҘfvE]>Q% bUEcO@~Dg26>(+oYm*3ʝ lChl xq:<Ĺu8 .9N`cUvW%M\^u-W @ En>s!$g~MA4%uLx`y l#{{2LP6egDn`{=(qt-! LprQC b<O!2wݻt-G V'RamL*SH,,KMTsG]=9q=T n3QjkA3ml}VAb42WMRpWվkp•9XB_xnp9/H&t"\gXDp~ hڇ_oU[**tjMXLDx=Weo5](v`׿N:;ɾ{ђ2ӾJn1? ~LЈG]Nk+uru^ 32GAGu8|[%*\/ו37 c=BfY 4U~GJP_;x]U4=q] W=AcQ#?lUڄyg6H/BLu º?Z[ :>P/ &ўvOhjgOol1:Yp6gmHF׎B.:nP+ S(m({Աђڽ w6[(KOhHpV)BG^&}4ow_xVHP'=unSݝ7fw lo[k`p=KU^ , I[M l=:Pf] 0܅ ۖE<;FU_h& !Zp$L+e~dIA`Qk7M =d2ϐn[眪\^KF_5|Zh2{iɄUR,jE;Gy+JNTjmBy$}/ e<ةf/VFsxmmDߠw0)+U6rI,fg%PuA_Їe,7ٶ߲*ζ#L{ۓvTEayOQ ոyseTzĽ?^Vy CU ɤ )nzeNyY-\rO?v6Z=z=qvOlIAPVL &08rPI־qr>Qw\D)nODT2$teϧ.=q'hs A'9/jZ`V_+:zS'i1:w > endobj 815 0 obj <>stream x_lSU]e 61M ĉfBA v::mmﺮ]o_wwkGAWtJ`P|cAq1n&_N=/ 0+jڭ+M xicY9p{%y9 7Ouhh˓ߖFi5՘e/ּ$۲}6.ܨ):df˲]+7LjحnY}F22Em0 ԵkЮǰL>܏<3V}]#+Ǫ4,u:{S fkQ^?⍤lj @&'lvNgm n[hJca2 epͳȩ3g2cs @| Jf="mn lD٣#x MRuMꁰ $6J}ʡHRnS;d2>Wz:{!#5$)sΠ3&~Oq(Ʌ"PDaCr% y@d>s˸6Ѧrkzi?jurp2>-YSJ MA'˛TԝLL'$ e |@(04cS$ ީj*}Dyt/@bì+mСD"J/g>4eۼMk>>#֕fq  z?'tIl>?8N>o0^/Jx!W2:l|` W=?Pg_h jKwfЦU!GռIjIA`(#]Y ^gsljvfs!1_ĩqꡛht'O *?l>L~pj'xcs Zb$~vb_QS"7u w/<(o%ObOKG|Ua p>Î95Z ߬&ڞ{HGrJpmo>k{*MmMHii >Mj?R3:w0`^5?c @ .-ٴYa9=J@f?/" G%r(0\k^{|^oyUwv:MFGF*8Urf5mc3!mU endstream endobj 161 0 obj <> endobj 816 0 obj <>stream xmTkPWM 1ӐD Y `x(00 b` WuŰyD# R#qX!U\Wc%냘r{Z}~|Ρ Q%SFx;^^9N«4&8)vulx:O%S ,Qi)03,so{-ҙ)) ]VEEeח*ǭmOXgNfzvHB8|]p$oڢPۡBvidD&&Tr^wp}mf >`yqE+m}eSwa;8!^)dn EϩCDaW[v(i9"f}syH~M;N˄FIcv_p!= g'LZwт/9R93]T)Η\]^RfҁGvwl>/; T;Iu^!B8u)LanzbCOV\;/'(!T/%|T|+W$d&C?r邷/vAFu4KxLJ5xy.,1YIiuVZ\MԙI>W[bU|wܶwG-`Ѣ6~Wm%{x2h4uȹ3ƀdA> [(L5jHǡsut"hx qFͧ+1k&JД7֗Jm.l?ް(mW8Hx6~q ܎mi-֜U+v&wqݑ2}%c9v$LAWF?s8u+ J='#3ޏML_75) {LybvO+:)u{YL1xq!f06_׋i@ڙ،!?kWrWlHޡH|b?@WY5 _ÂU˒b!:(`)~ M0"O DqMP<٦wǒ+Dqi ph+jMN:;8y:Ǿ(M 1|^b?4gav(p@h#7&DQc6 'ߑ k6ci%l,Yhu[l endstream endobj 98 0 obj <> endobj 817 0 obj <>stream xuUkPSg>9xtA1ImEeUNE0\ƶjAZd\W($!\.!!% [GEzaъeնnwn߉wPtff}y;4G4-KJ^F ble @c܆yh\3C141!=N;޻ϠZ\:**RggehTI} 9RYjUUW%Bq\]AW%iwhԢe#WEJQ-Fj BKҨ *M͡R<"b)h }/oY| ̲lzc&oҟ/]k_o,r-R.ȅ('M[%[# }ثI%TȓH|;tΑ:}ku.N *!:(z3E#Kq]k-I~^ۺhgvz[HI蜶e;EK4b3Zkv!~vK 8dsHV"'.#.#GNh;h3!L/vBl4]QPVSUP/sh=_~tTnH.Spz[iJˢEIVk!B]j9^(|N0pIT(8,~E?fП0y /!E蝏H94P.h*▧+ *aa Qw~g~sxJzظZ;os޽nD Hk g7[IIFhy7e,u\,Y;ZF/0ph%B; 5YSqq]ZϞ>}%zMA^qw_ۣx:[ݏS\8c};v)G45VWX* Ě+>\pZ9lϰ.}z536&wgNuٳ^hJLAxS70|K\.l(FcHh~>l|͙  x_b>xfyNy7t'wCC"_}+@M"r`Z**r4>>D']ki^7{=!m,%L5U$Nu_@!Wo so,{- XݽGwjx(:?p #֥$'(N\/lPƽG g8X\-cm(3 endstream endobj 618 0 obj <> endobj 818 0 obj <>stream xUkQXCBc2.]ąE%).`;&42Ig&;i23 M ta{׮Bwuqs8| :!4=KqwS k:U;JE,wʧ˘//K'ٌ;c~#:Bf>*Lz(O(VAr) l6 ޱ#Jz(ͼ&HhkY0@tS+ml^gI0@,C+ z@28YיVfl펄Ť&%JLTTP+Ydywsݼx:d3s/f!BW]"xTz[:{&%^h#$Ir?H4fjWΈcz<iP Ur )!OV TD%V kUTꢲje<ik+y!s:JcCCj9]AXGMtb0??-~\ endstream endobj 369 0 obj <> endobj 819 0 obj <>stream x}lMFi+od܎Q6jxĢ0CMCIyu$8>;}$Nb8 6$]Ci VQ6uՊU*46MgR埢Hw:~"%e5JͷE '_C+RӏaAPq5"C{k=f}{kQ)[lRlרM eMi2J]vѼQKAR>u˝_h5=F^ԶT~KA~G#3d/D!-RUr%@e-)ܔG觀eyHOxOFYdpn ,K A5U&ǝ#Dᕲ$px,  i%֍b0A A0i#Ię-YU l?16\ vjPXf';zC{ 8tҸaKS0Oq"1 χOl=\NV-]` Ύ3X&5{LqYP6nRgn=P1銏&b1ดAV9җ,Cߺ!+ـ/AsI]ێ^=DhDX-WWOδ}@h$}F~eCH,NL(O] Zf *U a@Kݺ&ٹk~`EMaGya77V]:eaC Uswk䟢_ν/ ˰Qm[R4.[{vq@?V?_XK̀947!I~2zoER553$D9ݣP/N(*/ ^{\yk'8|9c-]>M[8}=ԋp/nȄ RE3F 8` A i`1@0NXh|f&ӳB;,n3tӹ'&l,"@`𷵣Gى|>?C;#Xubrz⵼uTxJ?`!Ӊq)[r]j&|e5qV/RRөD%ޑ,DsAcuV d*Gq {R+nOj~>` |&6;{6H]5~R#a5O|M/NMkոIjܡjU>3z>ˡ vIMn}3^6~R|TVlzP$$ 9Bׄk4`vncnpVL.K_eqZD]L؟CMTR4H\a7Kcmh{Il:1Ƌ3|4Z&6'tXlA endstream endobj 156 0 obj <> endobj 820 0 obj <>stream xXitTeEaiJ@˦(- "!![eK{{k_/*!YU 4bȢ(vJ7~@=39s۞yyKBEI$1+6D_0,^x(R };p)7m3mZ8J$ֿ"#0;91I3}9=Na&)!m|POؓ)?}Z=}ShEM 9 y #gH$dOߐNQԬ=̄{W$EjsRջ fY<EPv9j%5PST$VSQ/Pkfj-JQEj#K$j23j 5zAuQޖK2Z?Oaa,cƍFg=qq>; OLڤ{'YՔS ˩[ڧb7ɆĿ4H~RP^jƣVGPfK!`T0)\ݖ2CYز5vve ԫJќ`e5oV_TX8`.(Ѥ&ā l=6[ŹE{z_>SEn AQ闈QHQk@Yz9S4-4%1C[Vt ' 'nE \}w;<=hzC~L WI1bJzd叶pܰ0^[Zo^UBn*9E{[$\F_Hŧi9tt77^s ]yhm <5R"7< =BGw[uK`&M ($Aɾۡ&^/Ӎ_{yFNì%;/t=Qk-.;Upen&"i:(8軡 A6w=s*]\Yk ~xM֗96IT 8:0L(oQLq_2x \.#Sb ߏ'@HLa! Ղ (mV{ ( .[]_"kU@aG1}'N6  WLҏkOZ 7TmɝcTX ;gSkbJtj#WyAYVxJaou k\ FZ Bl:[F[a8E"f_U&♼'V'-$2OFo<igoD}!sY %h77,e^WYtlD:^31BȧZ- ̦u۷lQgqMh鏚PEIՉnukP*z+-]R_mw%tMʏDăJQ'@l@-"`Q]Xda~"<JDвsFZE 1/{˜8=pǏACO%K-ӺBK?^/zEsťr'$v: JTZ=)}'a.ػMCӦ ZH'g=M0phA<j= NOb6-. 44J5O٬'[ k@c7cW+V6ଵ0K(VGTs+bETO;Qp }ǵ#Cnwv b!91 )!L<*vS^>"$=弹U%[g&[5pƯ3ߠh\wFUrj9/Ԅ.&dknUt R%1G?v."v/? rw.$z잵;"t~!KeV P8 JYGBx۰}ů|z\[ꐮ㵆*TJGܜfV'I*JzWj9aAI$72G[Mh^8U( 55n )).i:}' fm"wX3_ӷ3Es7O=hdp|i1V`NSZye.!+2Nů!u9uoH~im޲3Keһ%YO5GuiV̽(E/kb nS VXC|_қ;+Dc8b|ZSJqyyި@?a<ĭG15~MZPL䤎V/'qfx#!%Ub3^qXeҮgW۝ q[>HM[@̬89 <j7~Ueeyt&#_S a, TcU8GhaH\-zTlɯex:9wqj cp endstream endobj 96 0 obj <> endobj 821 0 obj <>stream xU{Tw!03k[©gJuUQ|*UB !#$/@*Z">պtwgm>NgvgΙI߽$@$I_(|z$J|ɸ &i3C~7=>"%D$fJHKJc_xtBɐ%gKcrE?dI㕲 V)]%*rq&OzuR5Xe\Meە*+5i9ڌ̬Al$VMjb3XKlqNH,l ߪ=#RXêi;??oK]Q:*/@#eKS^-. RwJnZn\Ϫ60uL^oƹ'[лڸ콌+qҕzgmWUg==Y-yѣ݈**8 QG'~E~=>vqBA9ئ9'#E~# s֚0/- R_QƇ|8ʪ㪠* uMf|L\Djmf-|(I}+05j9mB5.pZk( |` }trz1=geNtɍ GȎ˨_$OFƬd"hĻ@֩Ԝ0a8fyw;3?iKRMU;  )9FDrykh`~>'sZd%M5$[ASi3dţ툩PJy~O~=s7GQeR/h#ݕ|L5 ̗hF6'SJޥ8Q}׈Z}oO\BRp1 0KqcD\] p0|SO/|gsAߴSg*1k2A$F"ʘŵhz*\o?;',tZ}EqU"bDx=L}xFC՛*@è=w$U®Y>dO=vtj)QCG;g@n.^¯s)=cč:jQyF,T:Ģ(4ܱ |r:hJMs\Ip}׸9h WTя߫匵,Vs뽵=VI8DR<^cᏛ 3doE;/!zQ\ԻO?t:hj<^);mgs'S^V4G&0K.MsI*Am+NA"VD#|8,ӦͲuB?en"<|~x"?H|ų׌u7uy]&3(LXu*moè9AFCyѐٷǼOL$ۼyK^CYͅ4&9gܨ+uz`/g:3Wc5mVV瀹9z#z;6ٖP^g| cia͕Vlw$K~ eBw XWXZ!E["RL?ob "b߅q.^ڝ-~l &։\ثk费Vo7c;gC;v*lOa\aHth2`rxjϫܔE7tHpc۸f#ӌX:e>c> wc|Jzu/Իm.\"1GD|tn $,5PkomO\† Ub3R 9p/X~9v| T[vn9@1Kc \@RbypNɗ?G <"^G)Oz1\Wzx[b׽rTlu7TrQr鬻3c{J9+6A,8wtl 2.~Y/N׆٭mؽ '9G/:ƪ{,if9#G\tN*ڻlepte+"B g5 & ǔ\ BY7)?j1YX4DIKٲˠM~<-AsZmן`ݓJ닠 {# UPd~0 9c6T^{xMr "eg&xo=R(>NGC@rC.ǴiiĿj endstream endobj 356 0 obj <> endobj 822 0 obj <>stream xW PgC$RԞJOmnֵBhU wr'DkKu=]v;_ߝPs3L{}y>1!`XeV"ۋљ謸lY! ³MG'کh4bf2~DP/Ll^ŋ%/) rJS,!8~NO(Y8yc?*7*xo%eB 9'(%b4kY/7EWQXPJTU%.N|uAl'ˉ4"Cl 'V/+Mfb5xH'RbXFSij_b"*`]{ TM:FVL'J=Չ'7MOO;m߳T)MZ@0ޛ(b_|ʎD]F#X]VT[S+*띕g_{n['Odg3JhSZ^$k d)ֹ|C"o7sPLisCT%%@}Ǻ AZ+̀^mЁ.Imhml>SAroQ}މWQmvt[t27S #e;0K/\Xg4Ɵ]JgƠQSW-ދGZl?w}9]SDoS/d̬Ki$Ph@૽'C[qcCy)EWE6G_x,1*h1nAex^=C`p Fթ j##u I`&3s\suH[nʍ>h zÁS`"cSN ˀ^G4UoS{P~ȳo:Ex+Dї",ףorfS#Ik^ *5iF1r4y4MD+;J:k@]=μJ ^9^iCs?G}_|Nytt"N 8b̖?+TnmFRqd5e3ťj\Vnvd3i$R K۴{mZ?]LQ"‘VX7}G}t}F( JF ͞ !4)oJ Թ5Z$\܈9*@/34o5l& Mf0Ph_8dPO5-p nchs[ ,I"-U^m rN#M>! %sЄ=eT:1 Z-)skyM-31_=y[-6ku4tS]QJ:jhl餛 D_\{6 X'&ZEr%A%;`CVQ.RwHi [1ƒGCQnL4F'qVs3أtH*-1$V/pETYҢ GYcԁ%įpU gW{( V#S? >{xޫ[^#;Gop]?Aώ/D'rPzRZE WHY? WVL(<(KO%*Te}p"Z؇xWh2 lGO]ۥ*v`hSVP] ?><:Eܮ7~)4'C ׀O ɜk{22u|-Ɂ*rѕ_%z^X+nM#׷/y s9Hߜ/>/ϖ.ݲޘ*F]L~} 8^Xa2zgcq IUVuQm /H& $Jv9:uJ-Ϊb  >fĞ 㑼0=~hzR~d- KYu|(6x }W50+|[nc"fh1B^y : 밣)Wk13s5uCRlfd?8Cmb>xdq=41dҿbG} ܳ%v_W4_dCKgL| \rrjlk=&8%+λRvu]8# g5>|Z­Pa(($bcߴ whP $h^*y6 0ssnD+*~AS(g;g"]OfX\ c: c & ;qvR, mCogRKW=~=+*|-5ǩxAu,.se\X'o hW](zc-TIc?%;>DBm7/ѴN?eFGI,' CM]P!Hv*M\}:Wav0n+ٿih6ti2dm{ƠSB^҂ck"MEѼ!O5#;G7mA=/rp)'os7[8FYngSd_[0^C8`P8uA :Ĥ!_^XR;ڃݗ3o[2oђ?0|N+TT!N oЛ(>|GgXwP+]Ee5˒L6G)OJ/5n,4ųSy%Ay==Q`aGB#ɴO$\yJȟ8)dML$ endstream endobj 147 0 obj <> endobj 823 0 obj <>stream xU}TgaH2" &Q*K@Q(Em!U+ح]|YV=P j(GPqY,[;9/;T=̙}~C!k+DQ082.N6{ܬ7iL*,R~u{lx Vh )L({H=|법y 4RQV/qLeAJ]37|en_9(<B9U_qמ/o.[s B!(šM(yHb|䏜 C!\xHP5dT!ujZEX5[M~[{тTAh+TR!AJO3ĬH̬6.8hmnUv%|acbn5ؿr )cSZ\+ ,,D Eo? n=Dעv "3yd9&۾ȭ*4e\mץ8TqqPoscV;rJn'Zi G~kC$]Kqzgtn =ꈇp!~ݙ*>xYboُ5p] 5l.!t,y6 7), j(#?<ƎYkx B"#A&6ERHV@ !13T3x/ڄ\QaOBjiDTaZqeSm3Uy;{Yig[N?re/8)`#񦠈耐{%u<6rNKM|y'Z=Z!~)[w4'S"nLȡ4B1m יiѫOB$ 2ȂXmu_յbb8gjfLBy ٪o!⤙2SO4l*gyz֋TI*?`nϒPsC_Ӡ=Th)V̿d.:FBo+'ndObψؐ_mm7޿z ҍ; vn]?l5}zxԣp1m8^Mo-mJ @|AIQTP!'@}!q1 xoY' N2pR .[}b8zVjXCT3/Y`f ף.4S#,aζ﷘p2(NIZ[F(ewtow7ڞ[!Uऺo!f *9|pE=-ogǾ/ 4>D\#!IM9[K1 ;gOzq݅`ߟȢř⶘Zc v5xʶn'.TnT1Ad[c ӐjHHoc+uBW endstream endobj 572 0 obj <> endobj 824 0 obj <>stream xT}Lwz*b.٢22') ( tDQi9":Ңȷ!?ԹefSi̘L"\.{yy$E$)ɂ<\/ĆR}t.Gf~hL"ȵ#4ZNKFHBCIWf)td46YTd%=E4ARM+33#_H9 ]"m;B+tXMB&WUYAXM'!6D"'{"G~F{eS%N{G{_8'f~G.$sQR4>FmU>hLlP۠ -۠=M?v,.Hw=JiM1B#wl^&r`J:` c;O]mM|2] baq>rNnčraI$c'͝A۵}j'0?D߲'˷(ݓ? N*lSܸ:94G nt?D2 Дxf-3pCj2]f^SfOL9mשK,Nd^19QSp'v-٦u|sQWq/0~a{XuG LI3VUū?ʭQI獚,(嗚RYSHcBzl=|WClb C_oo0>8dk[pߐ÷*Wd(1D&ǬRr0冨Rn#ij/ c$;qe :`2hI e?[!`P, ̖`z8|:)2*컅{wIsⷬЬ :]hnvp8 es4]G1…6*ãe-@JJX¶э=ZO#pИ70n8FAe&x l͌\xI =;?s߇HmSD%5-U`V.]4ް'nw!1M:D1.y4לqj1`QUن">2 zK1*@90u_xލOvD=H" pS+c;6oSVތCi8г!>IzAAw.gT&81#%&"'kTlrfk͐ꝥy`&ktV[yk[c> endobj 825 0 obj <>stream xO[ur:czNl&YvRev[6-V8QJP:R8Ov-muUl LoLd^h1Ƹk=u{|?C2"b#K._K__pN9 .Knލ%瑐 ZN]TIc+ʎ466:ƤTemjsSA+S:5=$k2ei_do 3Řr}c@D- :DE\TVBS"nDʙy/? PE^^GMW`Tݽ\;?c1{(g5%cJFǷq%G-BK+5k0i}j <- w1Hbߦ  J7xF`j |py~*hߋ_Oq^ A,gx{χ dc0q\:zS~3||ev5=됅tzr# ~ԪL.y= -}!]7'p8|_inbtNvo6 7!50II_l(be!#{(7^;S;UK!}6޽rj.5a242l@kiz2#ljyi55Wt`]g[ B|/O(0fȵ`rȅθ/8n~1; z6 7 .p׼0-i8Rw}@:ϴjC࣏| W{j 56ɪDOb QrڙW;ZK1PƯ9 ZZ=jP> endobj 826 0 obj <>stream xX TS־1psUWýXOUU"HPDũ a&yxIHAYq%sV:w|N^ֿֿ++{go'l%h{ Mѿ%п=D0Gk_2GBdao10 f[Q2?Pj=kyvAb=WJ륞~Шv.7.bX.qm/  ˬ^bvQOR5bo!o Aq6ͱmg>6|pf̬ų)j:.ZK}J͠&Q2Cj2ZN9Pj%>ZE͡JRsM#rR[5=⩱KMQ( j1eEP6j$&5zMM>ޠ8ʒZDI.A!C~nVYe\j~C֋3nCh?1[[hFqnhd3|11?֖ˆecs~.a}qŎ6~jF|"^tBXog;z$A nX/ٗNmo[\a~d~"naA D?yos:P K! fO#gӀxy p;]/;ΙJZ~ Pw2v;,|:9ȧ!g5uEna g]ٮX}Xy i 2R_qm( 1z+VOWI"\ﭤՎ(j=-EL]gE'Τ/#U*)4NRTlYABB^`~w?6K".,-4߅)bB`"LyˣϸٖYY1MiAʾb!I.bk\[}AG?%6#Z÷A%0ѡ('/]0wevNq PrW_lţc6sQGa >bVEZQv.Ң'zY#;0\+$b€0.#I ,>}Da;71eWD=U1s1դ{RSiG !V {9K.CL&7d|X`KL<9]'`CKt. =rES\bߺ9~_B%_UT,W++mޙ'劫7#fݜ"_uHR,-uKG@%GtXgsAJ I6Wgr'-;Ϟ=~NM;\y^>3􉇽_|z3AS EZ~BCSR9 OJ@l6wƯ1Iw9|As<_seiĈ,-EҦŠByTEhǃz޳+wYCњBt4xT5h{Et*([2s`ne<{ix`` À'my6F5!:$9 ZR+Gd weбQ^N^7q~2ZAI/<Ҙ6ZZBΰe|z P]9}^d[xv[Ź*g/*6` V -!D:xIϹGW" n|c~#iL=^_BL.'X;tDvtho%]U9A ˃4Nؒx xQq#LtpLuh.ԻQwt._/Jvېvi*Hק܊nSX]/Nׄǔaȸh뎅?pU>}]-{ڠ<;U$m01Gyqk`UȳgN?vDgp9ը𿻡W HzZ#jWmvb/p}R=M=Гz?bT_?)V^|{ˑhP)bn {zFpD 7ӑH҃['Ё)޼hi-&27ǡZA>5A,cU$VnE i7bN5سeHҢc7f(c&M:T_ĕ40..=SPY$7eBz-ٱp1ieL =퓇xIcxkc9vouNhU;MF6a TW*KTdb?콁ƛdx?;PP«O voOhq⤬lQWoWfmұaS-JDL 6`\Br tcڄ{rg0 ,kUs?@U}>V .琁lanIqWm_2^\f쀛](|BheL (H \[!W _|yy踘W*R-D*U!BLMd$$4o3Wo為rGsצ xQ{k򴜴\qeG^i޾D&XI&Z=CNa+(٤x™T5aM#,?.pY;GPE>G:[86!/@E˹ߜxWĐ;</`$~&?~xq_ Rg$&A L XÔ?8⻛w؝;߹wlmnTYZ|dž9hƒ{hE/D(,7]=n[#TWCCb}~ϏAr3<,=-l_M `VsyŰFg~w&5qhri&Q]5,I}"TEUxOV'p$_(|jA<Zè_V .g W3ԢrXy*9'/ȈA*J59ESN@8r`D$n9l.ϫ{ ?+38|U J՚sa^ -lr*6^,y'G0&,bo@t𶝲jߣYJeN?ֿInϲn9 p[jmJ)ԐULT.ϐW^}8]a4cOJp<7-B4niuh 3L>Ί U܂톣O;v9-7lf|ީ:w^N.B՝^ZHaUz2\tPPxPʾ%d|=涺fkF|5/Zj8WD(DFɒS9Kwd"> endobj 827 0 obj <>stream xXytSeڿi岨,FrsučEYEYd eoK[}Mfɓ$M./i- (;Ƞ (#2P89_MϹ~=Gd2zS_O~c8xD (}ZFpq(L6wq [“F ӦM93&,!"$8v$OH#gFG\!H",1,!%,q1Ia #ą%R5iؐ%2B,^K271|żɑo,HZjQ̦'>0~ (yj4zCQ˨רqrj.5zZAMDS󩧨7ԋj%H=MQgj1,ZB͢PQKTaJIR!PYj2՗,~SJYЧ^1F7Ef~g?P5)}HЖ. 2^2!C. <ᘇ/(ˏ=v{mx-y#Fzlǿd_W *VF[ނx 0c-:{l)68 J;`ɂ1RUM*Х-{d66D*NH@J{] Q/>WeądV C-tA'lU]n]UY:H)\gvn3Ն {2^s#j{epC.ѧʎVWƛ! r!CR40yTsX6ئPvx6VBS`5oHsZt@d 9{M)0 ̈ >{Q6\j| A21C9*(#Lbֳ# &fǓ_n#n02`^ vK&Ci\;*рo:sXIЁOBwW#J(wX6 J ˗[,Xm!!]Ji[Ў[-7k8WbAä%7ԴZx?b+>]z.bNӪ̢{(zdp.KIQPg:(2{̐&qS|f)A) -4h"H!gbJ}X%U|r~cLy0$\J̰2P)ne*{PZG%: t/NI?ވHbN&wP#*/=1C^>bp Pc3>܅^pu8ƶ+LrxLsvr ot.iXb-"C-SVU0EZT/<]B~_~4 h2L<יLG~B+tV$C&J95UBqTut J7:C?)A4h 58]nVV skn[s&\f—r. 75"׈ºdg[ \+XYks8 =8 X< H y.Ec ^e+9mJ>Yq×7 Yޣܶ4_˃W@jūʶ]jNYII'!  Q1;Wd\D8ٺ6[;ID]]ZX.XL|pb3TE55B# 9*^_mJƵU_^ 鞠ԕ!1v-Ͱ9%r޴ 7ӥ&``Eߧ,'8-V*OK` 5VZ>cl#U{6H29J~Hx"Wߖw~I 6[Xٕ+(OkN.KJax NpB ]>!weq.LyaUP^{{+ag+Q͐z4Qv:>#נ4e #ٜ}R>f) |C~7晸 ^DB)zVhfȵ.`N6{f [dă0<} ތ!< Aqh=ڀվ >gBTƣqh-xZxܽDZ&{ALh9Z˘Ax ?U)Z_oo%x8Ls3aG}ҳ7[Dҫ_j;2a?oNjVWq|ZJgHu_A+XmR.9Ӧp[w>Qb,gΒ8}@ftzrԅN+BЀ+sc%< ħǀ=Ftz2X_%آIi4'~^ԼM֝cfbR=_NTē c,BwJךcn;r"MaB ҅RlYG^''=M\~nF?Yވk xf)dIY߈=7p$'Cj'^(S14sh9r8YR N0/}%zkU[9n[6iG*)vSmI2_$+6ִ}kJc!ye O>xzc(jҘfu8RX 8j+t9[SdPo/Q/j!V']lwjL<3y5gŹ ݁4 NT@@\nigd r?`7gp)xn.pV^YN{ͅyiSqa|DWj+y /XV[>KMH͎ $iyKE%~BHؚXWЮJ%)o@oXxno4kfB-Y*Z22.)&k{O^ߋTw씉 J{m~~P`k r,RUNJOjz9N%n4f]jv!+sJeю% Ep(C b:ln驚{m-r-Qm0cČZd> *9͛l" =CD:窲YVEU0r¹sP9ߜ.ZK~ k FjI ƑF :! !%EWg# ' Xiu4t: o1u~(1 o/v]|V%5|.lDRcZh)ԓ35&b/b,BO]7^s{n^z,kNy,N iLSKڴJCb%- )B^ꣲI;dREzQi| ¦1/zfҥr)}y[[ws Zo' zBהH!$q "ҽREf٤HsXd[Lna $j%/ñE 9-OcuTޝ{2pmS Y6m瓎j(nZ ˙.nT.GV*p dQB]cWCXTB[-FLmp:4 s?KWHC暚MQ]p^Ú`1,Fti1`:3Ǭ7:VYoIk}_{*RRZ<ϡ4B#R7Ͷ&$Cw?[Mв+w>nNVR #z&+Ea9Ia/ +wA++aӄ)*{+#: nhuFq٧fePK,o$htl7; L~tZh BO2"$$wx%dH"'vJoHwu[[c⢋/{ئʝʏcVEA2 OE1lيʼn֩uW_\MXM7pb68$vCV{-P3mi$ EY jov>~K( u=É9 " % ԧV"z]6&i`KOm;wiJ o@H F(vi WAXl[}sTtsm;uw׭6Һ `7o*!æmq:ݨT,P BMNS 4HmT R>V/;HB7տ:-ӳSNp T`͒$9p*5(oiW4Til}.;*ݙ48M\Ț >L ͼ k﵈7VDKcJhS]Œ|kuyߙ3޲y%0 []i݃EI33BX jh+!&,/w0$6}pw|N f Ew\E-HWhGtRm>OI*QڵNs4\e>$+GOPT߶'rm'n; l}q8otzHbENX~\-ur{:At/:x;yZr1 e5M5._ըqnL~wλJ:U R}ѱ ۡ1[fA$M|5kӈexAhF/Eqnz_gJ~)6At endstream endobj 302 0 obj <> endobj 828 0 obj <>stream x=yPSW_ (-E}uI ŅET-RԂ8 U $ K&:€H0ĐJe@V[ؑq:6N93g9AH G wt~$'Ӑ {;3  O߹b/<3V S%cc'Kg͒zxIW((Y4P]%ۛi**V&] z)4 uBJPKUr: .c>Esj,5OM\QhjSr =ntV`>}+DXbÂWlpi|0mAӉ?|eҴ[%\&E$.L, ƣ̧CO{H { wQ߼vLDز ʆʤBLC(ܩޘ0K$-/I 9yya"+LJ7?!oYA+A--AWU ^m#*)]66CH9:@.!Ļ @1{T /)IPlIհ"Ԛ\0 (<_fmXjR<;d vD/'~զ-P u5hv)ˑ#u[O'd.Hb;EW:X z]纶m Bcb7 Fa~|ʻy4o0gyz<i3r`!.ݨ:w pFsD Q, !|a.i#c=`ckv02Xc_'p~C.op=ʷbSJX0cWj_f܇ \=k=aƢ%0b&fz2rѥ^B/\!.B< ma S97LH;{v1d"EǪ|Agbilv%da<<煞Җ=Vy*Ӻn8yЫ֥a !ʜ> endobj 829 0 obj <>stream xYTT־+6Ac%j,XHP^P@@ދԡ3g C *(*ƒS1QC^s%=yZ:.uϹEDCD"+1Mďÿ.dW ÀM#[,Q`4тDoY;f 6Sg~f~g[JpopuA>ѓm۬V٬ ! ( 8"3fe@;Ώؼ2&hǂ`υ!^\6g҈"6D p4}fl9`I'yk)Sߝ6?EMFQNBj65JQ5bj ZBMR먥8j=NmSoS ʖD9R3JʁBPW~KSRv0*HGYS`5ʂO,!G 9@Kdۢ@}kR}7s2%Y i b.ӛb~]b9~:b?mA?P`4Иb'Kdox0%ʬF)_E7AC(qQ86X Je|+kD/iw L|J$~*y'l]KYy";A"aw#ƗnОh:8`: j! 46di%x Ai 8_V'Yv,!)[>Egf!L9CbO7do+7B ],pHSe6XnTZȰWWpFE" 8(=4ȀE i2jCdaDTxA{Gdp4 a0P(ઘAyv LƩ1fݩNR\D`A!!iBxV-}v~]E%գKEMC1ߗ% .2K-CGC&dT*IFٍf#h<}r nZoϿ’m^SW $ V A; xHR&c lgG LY畖'aEpY ֐P\a^ӷ#XMPgnդCh!'MBVg'*!aWlĚv0@5 >;!Wl7(kJ%$[B1JJ3Ifv9R} G$o "шVj4%|>#Kzv#B(HZ8 qSopVr pvI^j@ 6^]K綠n+DNeŶŃt544cfd?bEy8mg k'?J8}#aur"]㌢Χ|VkSrRUdn}33.h.\ꃬѠȎMTȓT<[, L8Gh_=DR,_j_W% P. jc0s! I|~#s PdDJ旿/FQ,`ăÇU\t<]RAڍmpپ7ا= UI#vP(I1YS0էb.h Fo<{<-Qox%B> REe=}*AE.`;mDu{]KM?F9N mi=*0EFI(g%(ʬn {؍B$u2A8:§ZU|YUyQmuӺHNLGAZ0Onh(VT׉Rn4vYmh 쁪}*`\ޘ0 X~T!O()(ή,Nhtٚ̅(xn{GI#BS +b6ŻgfwD}k-V;`fLZ\iȫKx3KG^ L֠a0w{ٷvu."D 2=@֓ˎ8q˦GO&)I?уLn2ҼZށRb w'xxofϘ "!+`J]a{ASZ`nݬ˄xHLUIAJkFCSO'}42.")eJ@έf 8,sj%Ӆ?ЈfPhDlmO@L}qѭSzRSDjZѸ=FXpG1w5!~޵Z=m*?N#.Y§Tp@}R{%9۶Ny=>/F<ɜێY3x$S_m(-'W' ciLAT蝨B;'&C@4NEL4ݭdqن$|@hj'﮽7EFToЕ.¾$3I9>p b远wrsz+@wy޺ˁqތE㉂Lb `2zK:N=G&`STܟƛf?r(Ene5P$eio4k ?a=7ilM-YK^PZ1_t(x6We%[DU7IB<Iv\3^a"gH*燑}9[u1e[Nڕm/4,M$<=:+l!4{Hem+gAVlLR@n]ދE)Qfo_]tJaxī]55HȨ4<3V|0>ODa_;=/vhA]˺0(( <☘] %{" :cgCf!(FɗY=@0+Hc3k<C~4~YؠQh3='P/yv#[hCH/S)S'bhn/Zߠ"ۡI?w4ҍoaTdf^(1B&ťo 4?ʌ&dGVFi2r2r^0n]rOP9eB (@o^&|:>>e|ezCiYMU\qkN1[OQ,U, |߆||Sy_HOb#5?t.):"YjƦ&y!;H]@{_̐FXCVfa0CM4E"UW557 n$Y$ }oMb@I^VW]WS5ʤBJj|а L-%Aj%$BFSJGUAާ-gX.ڲ` ΋뷕G_ݼo~oz`mzzϹ*6ϋ`32 d=:F]ph Kj / (.;tٖKȣ:dEG*3~po-5&)|46uԆA)O؎! Ӏֺ8 c'HPT$P ȺX:u Ӻ^w yu?g@fvF>ZB 23dE&e D֑v^tȝE.{}(lkye'{+ ~A1I CEl7l欱חU6D״%详^+ WJߥJQn.>|O?+}wA`-;2T|)~>h@kZ j1-S8< /E#|q;R? 3. ^c`wdJKfi >'џ&'ч)Hq$=7cp"99eX$Y̝LITy:(dRd  dw3rmjNQl h)<{{;L$-l~H?ZR d8g*NyI:%a RJS/ڭح  9{WN3/Ն ]a98~A$f %́Q~Iۧ^hd#dw[xJ{k[i!V1"V:rWWSHqV4f8 U',>.ytKMKj/_uc9/B`B=INߺ:7"$0< O~{],l:qt8N3btȞיl;&0+ߧ:+Pہ-;:AbG$BOKl1SR`[Zhbn\iu gP"ɢĢ~>ޜٟΏRhQj6M?!}-G#,V`mM&m}0w(Ck.8,:0s)u*|Q>#0h2cU X GH넖{HG_L+/wR Q^^H,F' CcE)ȳwB:)bޫk ˃ 0I9 2?s=II/ӽؗ&;(i=ԢӑMd'ggaUNmUF}tgprbZ+N\O-fay-i)JLܻ9oL%34tD{b>]by]gNzCyR|Nx˴cme Ɲ'͗E>K< I{s>)摮}5L8zo0",!FuY5Ju01l{"35Lw1{DWr@{qzyBW'EhNk+a ˠ2 ?ąAxxJbo<XJȓ*Łno=6N> endobj 830 0 obj <>stream xcd`ab`dddsT~H3a!3nn ~#_PYQᬩ`hiiZXX('gT)8(t+-v-(-I-ROI-c```c`g`bddY>!bcdc\tڄ)gvhں;9'l?Omim뮗lX;gBr| /lڴil-b>sDi endstream endobj 293 0 obj <> endobj 831 0 obj <>stream x}mL[eǟ{wؖ\B7,ݲe5Z@0@[Q m)P2Sc0KL&* ͘ qa20AYbI69~8Jua+}.')DעZI($ ܁؎sp6@AxB]6̦*y(_@!|8CtG'~ק bp֚u,geȮw\cf.{.\uu p0K4.@|O䰈靦 ͌[So#i >i}RmRKG3L^d27%FjՂo3pc ^;2 #*vg]ZT,}`mciևrȤ/k}zpfo9-\]En4vG[d~1c=6 b'g9\ӘA?`H:<wB3>S0$vGGG&l_f7XZW93E_r|뺊.>ǓӇ%2O=ya]VǛ|ntC $́_G.˼=Mvv)\SbKCP;b-X.0كg#ѬC]k"Fz{B9Y,|$n6tIm)x7EEf7>UօR޻%"^yJ&;G  endstream endobj 140 0 obj <> endobj 832 0 obj <>stream xcd`ab`ddds 4H3a!cTnn }wnF;*9(3=DAYS\17(391O7$#57QOL-SpQ(VJ-N-*KM[[PZZZX dggg0000230v10122-TaR~W2ar7njy.8A>bA5K̞8}R|Z:~;uN͌ʪ꺪ކv~<-YWQ_Z6mVw-ߚխ-咥gL<]ӮzF-֪usΚ1iifp/i4\/Oa`㏐ endstream endobj 561 0 obj <> endobj 833 0 obj <>stream xUiPgfְlt1GS¢xFQP.9aA@`Pof@9E#Q^qUKh8jJkw+mpT鮮}(dh(2rt`OitڂhG.1 M0IWX9)yc"^2p42s24Pi"S#d*#3*0T!A Ux {"ggKu@]ϻ'46|O*_Y|NdVJKkj6.8=bf]7VMZPTF=~? '9`V>M,2Hga6" 9N9-.ĈHLUF>#3i aXEvη]ol gOLƬ=~ CJu(FV K^ޚ>/ńa `ڍT4Ch )0E4iM{b&0V ;o\`Jґ:>8əstmR-6qTݡH9O:'2L&sɌ9lEcF6*tMc6ѕJ7sz.[l/ ZaK)4S*:< &MWcq!u %8[`kXfLY>j*Ked r^ofeaLf}Q:+89W h[ *}4_)+CwcvAmpR(KaNIKt 녣X^O0{z35+JN>_޼y{6TfT貯q>Og Mbv>%H #DVU+:]Iݺ,̹¢̲ޣ{׏0 ͻ_> endobj 834 0 obj <>stream xV{p±`A&Qj[Aʀ#A- !B@$ijYt,2t@ip_9A,'-1kvX_"εfUB뱴:oh{ΠҾȢO~iu^pEk2 _eWk0:?ਪwӷ{Ny\x(胈Tm7}ԁDQ~ 4jb1l\;\擦,ԋeI.\"Wh剷~nOL}ݴ35e~(0+8޴&{Ӧ]8`Z-Ev/]۷#YRZ;:&F3F3:ȹӒ.'nwE?>tԐo $!gѝHEN!` x_'Ky]q.'nU,m}F)jQqqy`Op#ؗAzMlfM̜1cI}œI(?=:lvBu[:X+N18y/`4^E1kĚ(_{dѵlditgIYTGm_C1fJ;Grs\)f0J[3Io2+,jyƶ] `8NA>WӷF;>ac}/ccbװ hUX(Uv=섢h8jP ~96`VEKȟ<cZ:N?|e; &&~pٝ'V=)C49Yii:!h隆н0B>xe[H kh([wphAE&G>$6YIgg-{f/q)3OEل%%>_>tؙ 4 endstream endobj 118 0 obj <> endobj 835 0 obj <>stream xZ X֞Ȍډ[.UԺ+*.;D $aߗv Pw[ֺbnZm7qyxH2s=93"ʬ%$V:Eo?Xƿ-vW8s%^fC& m~D$ZrvgE~;=NEm]ee~k,p_aǺ%A]ano>NW:o>f3o{w|Y>{bIs';7坩MP}(j"5JP9$jZK}HMFR%j=Jle4j4ZNMPv j5HfRM*]jovTvs0"=Eh}M@h/f^V# ;(PNgpyc|JkZP?|BI8[rZo_&"!hef(;5Chjj5c40G 9'j H·} Q7c8miL8Dn}QPx1>[~Ed`.u06DC`TG@ QcGa%#CR*롈3A'!LRĄl[! gCCb|P2TL mz$FuV*|! ( ,|pɘcU^{@JR]VĺqA4ͺt<ڣV vQTھ^̏"?F k^. \!oJ <NKL')lCA B4MP$mDT@!dӲpnxm. V(Vw Ua$Sv>3BJ)Dzq%.JLP`?3'G5pTU+d$4W:  VYKOBޖ˒.Hu ɾTYu2f]Jx$@:Y0#;C q3O>("5]MkP?ɓw7: e'E.W̽ɷ[\G7/? zpo\lj|MBZiӤe7!(D|w1?-$39+9i^&I}^T$\;N*HN#Bmdc(=v jI^)/㧐mC{ļ7b/qoqb?#(?x>:*47!8RXv<.dGÎ][1Qni Ƚi@E i$F̍iGeO48؇Xn7>X$px_u a'(J!MBry6blhzOl@<) b-u+lgwT i1rPQs5x>ԂZѦ}#)x^e.0+Ҁ7oX6%f!lUѪ`|<βvq7ˢAzfYJdX=H:)6#$T&}r+k;d5sU[bI]ߧo1Z (5:fHwFxmbJy {` .B)fS;eyKw?G.»ㅸ =b#O/ 쌝$<-A+x49p-;l4{hb ۳& ߾(./}&mIm&A#Akz<Mex߇$$f$Ul<_72BY5j\Y^L>`~x_?BM1>q>` B 2a0BbY> u/ھ4c 8SMԈfI7Gh ?E#ɷ}tH y\lRx 2Uyzq}nk7{@ӬhikAuɕV +|g\ѱb.hBԭg?-/V&*JTSKtH]j猨f_Z&nix.?dy++CrqT 1=+AbC>1e?bq +DI7^ŗw-т,DiZPk9:4(CaYvuOBeќFcXع?sAɀЫhV /(-`g Mu^,={0:_( sfL:{QYKGեj:<)QLDNl~fQZIAlkT fҒ%0D{'#m7cM#0n@}PZFl6V5N9B;y!J QKZ_H';+`-c7T*g)31ƢǿAghZNA@JGZ(j*I{⒔nEHmg_E:Re4Ƶw&v1tٳ`MF?J`: L=7CIqj%h}4,ʦe] <@fI%AsٳI:=9ٟWrܙ.B%A,2X.n'{^p2HK H][!%qM [k6 Na-(ȿc@*<LB@rʧħ7|I.x.~Vflq~+No/zh]N!e ~ON [f}BiIV(ψfE?]BZ-#xZ(Q:6 WѸغ˕/p7־naiD9/\}!чpiu5' ֚<)Lc2, 7+ˊGbϦT8Up}~a#d@<p_GlTNEVp$ձ z*i$YӇ>,+%F"aoB{q@&-f횟rt#N׌ddFƁF9ny>ad?nϖߞ7#g4sx*7w)܊bZ@wٌ5o6A]!t-`8URnP"H֪U۪ڜdEej61r 9#9֒U(I5|VML$_>~I[,a2HZ-H)OpK>S! BAZ_N^d VaIaJYm1TAJ8B[nt,> GZ Ozxb0D?x$N+t ZB6NmZ7-! [Rs 3~QԈػbta'oݨX g_K7y;Tnj{pF6VG12lM.fl1cN0aKujC8yUba9U'e8z.fU.S!_M -' }b0x} IQ! h2%Z/C#|GV93AƤ"0`Ekˠo00DwqŃ m{f]Rf!_.N{Kv*Ж^{%N=Mjz[3gr_}Dye<;fFVQ{4]IٖoV~\`g&}x⑆".fGt\{dS @+nF׾M.oU QHli\  mmy"|ULr 6p4Sadꆢ:^Y(s))4."H~!-QaқpNӨ05 rB]?VE4bP7e@+ Fs\ ;gN=ZEټFЊXvGKˍuyBTڨXd1,I"jyyU5)f-m@e~ۺ@(5DTBt 9rMؒ.ω$ {5҈P5]A6J?͡;^(:t[=,7km*r=?s~"*jE ,tqѤV43Ҩ༦-_ ~=1K9ڇGt8E4&+pJʝuU6vy CҠbR I8(q __ #)<}0pW&+ML"EK'lg1dU*g8K;Au8 Őa:L^֩@/ ɉȾRۓi9hbv>2}!⹗Z/1*m = Vj`T\Odق꘴DMŠrm|9l 2O4!wa!:~foWn0?j|/CXQo:fQŜ:`OLU !ݶSW ^=C.OvұxȒ];& 1r$B}>|~{Ŝ%Wz3bt'$ڈ FMp?Z9]טS왺KrqX,&P{p߻+2IM֥ 5^*F~npQeO1EZЀ'k+uĜqbj;KK?ќ&bEumdxxlɰqA x&ώWS>;k/[HDsXT4C!a`+)7Mpvr=mR#Bsu4Geoa):Ibׄt,\ ;S+JP~sOx;^1%HNJ|9ZPl$;L'fP*hp6# o!CYs3Lms&ZI aN2%AM~5Q5t+Td)fGQ4.5ʯ?q Zl{zx0W!9l'xY#ij JK#ʼ=ϼ4X%H*z^V! &wsA= Sj4`䝰hjY) )I)Ym_LV^Mh buløW4;/i{@>ZBځ,-F_]Kibr(Cތv|4ă1dWXŏӾr'ʮsfIzG`+tͰX-6If ^ě7(EՒ" ZQ$BC!,5P/dDC^Ej#~0D 1F:#i12\Wfx@\Z4+O406Kmdoݞ`=RA$USTR&If,֙bkل.y%!J1$r@v&}.?|NvZubQ"GE!^S`/,wÙ\ 'u'O$=Ikv&8.'X\j4~kv rIɾq]^-?;5=p})F'5^܁m(M|6Xe.ESSDy~ J;sA2򄗒u_iV5IZ\g2ñv? 40؋GʨJ..)r@xzTG$l]:a z[ɖ)ǂC,,~;}o>(`> wf/돶EѴSFϵuhb"ufڎ4wm5qaő+NleDG>a;Dխl3s'mg/|,$clΈPU! .\'` D'$:BL${t)|#@L1z8fuv}ܡcP^HoԇބȀϧm9;;v,2L }Fv9^(csj,pN^ۙ;M%LL c>|'^UyNb~E=#m&+.Cguab c%ψMue4Kwf]Ka|ue#8 b"jF10VVj|eԄ86 m/CsVy5vjVޓ,]>eZ vy3,r+#\h*Xb| -dڲSb QHRf\f69++'s\ާ9[cjӢM29o1O#^"zkY 덇%FRsWNoғഖ3yiN弅&4׽&қ̪}o6|my4 BY+6x?r#7\,/~*;,Sw,,DMmqcLw ĹϿ&2r$mj ÜRNBC}3ߜ=XS]9 ڻLjdo*πP]{Fϝ9|.Tr?`f?9qk_݉VYWQJ*R*RP_#t^)j@D'l񽤫FnG:&z]_C?Qtg㡘xl$7aǞ ^&yMAܹ I}i@WPX^+D`;-oX-\x$Ȋ;'1ȍpQPqU  g} g>9ߋI6 FYƓ>Wzũ@h4Z3ԨRG0]-粴EP"sC#b]=ܽ}zak鲊8>,=oVQ 9 }&G,L\c~’xB6sM&m3LRC'li<1jd#x p4? }˟'КIl8=ӦaY9MP<^xŜWHB̷w ӻ|6 kqtXvJ/jn-״arT)Ąs-HL|*s+$mbc(Ez:¥v]% "{b~p76H|O4gv[R"6 ل̡ h/YdN?0"LZ S@2tzG5]>cܚےw(8N_:3w'^? ǿ5q˻<ܳ{Ζ&Up D) ʒ`lRO,}^.{R)G endstream endobj 534 0 obj <> endobj 836 0 obj <>stream xXy\Sg>1GE2=KVVq) l Ⱦo'dy$*(+Qرӱuڙt:iv$8=>1v b|~yy~?ٌ Cq߱KF]SQShbmN:bWVZ&->;@lz\%5`wƁ\5+>'>;?>n̼쀭qA,Ȉ ̌_}0'17)/? 560m/.}WU ‰:bM$6snm""BMD(B%kD$!&b"1xH#f  ~FL!Oӈ08xui̬1N+Y|_4Nz&TO=&]]{iq~yJ5e'>iͱO_:=}nWVFWBo<\,ղA4Gg JH!2EXS}N,PMKjz)#ަ֗(c}o/i(iB:yJəUږCT23mnȄL^ Z[, M:|k)Yy*yRk[gvJk3V44謍'@v%a&Eтd ɐΌtyr>y*EXn+o1Е= FDdQ Dn| 젫S:0SeY*9}o%oď؞sVATJŻ֮΋2,ZoWM'Nr8tE* rc4k# 3y_}:v={6S94Yf&3wt fRq>*zDK/}7&2>Q})@~(0 \ZZЂU)R Qq$b(e``h|Bj ;m̻15;kk-F37{R <(%u6<I%ck L"o!U ..4l,; N?gfL3rǣFon+9Nk$sf^MPXnP/hm8Q&}b!p*htA!( o,yǧσT$2~_);d7>d2_@]HSeB3u65W;-zbeG!lG>hW}d#Z(>(R,T48:#q{bER*+Ty~l%w4 WUfJc3>.Pr?yg JQcC0EQQ~v_d_9G~NN~vF⪩ʇs9?z'mqZK3T#-(G RT8V!soz;9wOr4T{ÎHI:[v+?[Gz;z({֟l{Ox̥WMh <8g3"MILa:>2-Q1㷕p^k*ɕ3/BlKsgʝ؀V@-\gKw?~fҙ hl؋=Cɋ@brsoґCu5UTm.$XQvZW:ݕ5{L.Gm͕' J+@HV5z۳lس rh~;t?R1(*f@6H 3r y@MGDןisqb&2wp=|AF/:,8KX7!.a$Rҷrbhl} ^s%R7z0ѕCktD[̙ꎪ2h0+^B큟'<[C9f0!\t_mw,25T&^*U@t 1JKZ9>\@Ϲ/P'mܩ=n]* :u}X-BwԺn)2u=I#~@%O]޶2SNJh;QoȤ2R-()X/2)9;3WYk{7Й3_ZljY8݅3Slƈ9Uj⚽ẃMFTJH,f,V3ӘWa]uVYf5drj]Zf(dUXb9bXʄuC/++ y*VWkm9mޡijH3KΈy;jM>W9u/dv e#z-3pCzPf襛m $r,IWwXMRf5^2Ew`}z ;'}s/\(c!*@iGU1<1E*Cd6X[Au[_TښsMǜm}gyD*JDowW?p|$F1_.ɨY+riUgT|+le \W@%oǼ Krfԙ?u=9;ET{.:>8xwgO zk- ]qU+uX햾9qVWSZW ٽ&UaG}XR5kqF [ {; ȯd2f9zkA0ż5?YShM򎪚Zh|5%c-kJq/SdTNV|6[Z"<{2W3f `Aj&2=$jվ\__o$ endstream endobj 272 0 obj <> endobj 837 0 obj <>stream xX xSU!P.ȮV{qA*:C&}mҦ͞mӤI4P((AP@\Għ>q9N:㸍6_9o_1zǯHww  (>Lr秡w"di 1[zgbjzvP/.HKΌ{`LNJaFRbDazJN=sc^RFPggn(!($%yqy9”™y)ى9ssrA^-M/K^niaڲWdmN[ԓO/.eƄSgbxxI,%&%ˉ}Fbq?XI  [<"XBl'qML$&SnUKmmrXX \Ee<rNT@Y`%'}t9%8q LUx++Y[a(bU*_[]m77^04JQkpX-ko&-ȚC} d=53~w[^Z!KAF:sgs(#P37W9 zA3nU2Jsf_(@,gT-9|{o:jr?g+*%2PE2oĮg;g.ڪtJ5 '>o{: mp*}h+ =u v9PFsQh7x)y&~%H?]t€lZIeYO2R/VX[#ٍ۠|+k6:ѝ#l& RV'Xfk8v`"~g0c"_c+FhCsHKdKRo'K6?rmx(=/8HI)4TΒ"(i# 2\Pƨ f;ڠSFHD|n>9e 1  hijŷs(r=%A 8nm2kJNbhsDP bK5-1`}EJR:E ]ԫ5PIW7S;rvތps9-+-@q8@M}  *{NnL`5yUUt=[1:bwG'/WWujh@Lu64Xo䴙ʀt#:]}zg nh UY!>Qa3a,Ũezʬ1 VF7(Rt!ڤY ףeF!]u( ^?uVd҅9>>IWpn>М&Vrt)Cho`F+&%f+ZG=Ŧ5@ʡu=16D1Y72T"#k: 1(4%w~4*ld-^C410ht1vqMᚨ&:tC7v>I5НZ˖&o0>,h,w0.Z=gGRvEun?ﵫpVx#uUiZJܑޘs&wouW_q:hV_tbػ@llY#gu~^}uXT"b<D^NtubՓ O->(zBX-QsX\qRiZ`IJq#)crTB< ߵ7: uB!h|ZWt{+E{1׌:^Dr.8J !Vr!Șp*3Tkzoz0 b}<}i18:C{/Sgy$NO`Y |PzAMC 4rWIAN }IѼChbwAs{i$+ts7W%WGZ( sEK2=ܬ״C4W1c3bZЙ&MȋHۜJO%Eɖg7}?)tu[,rґūwf'C-ք*BYҝC|n,w^N?셍#K :&c8YCKת1)1HEğmg ЍB[Ǎҁ}hNȁ MO/~߶)F?C;]|10F૨䋪-j+dpsR~nD(Qh崲`7GTfB -8.,?-^fH-Us̍#<2\ČVWH z6ɈU1?] u'Yv2ۻQyV \'E&uI'[j:TQ@6yDv)`Mk3zP*38~8) >CIѥtZ`i ||PuyB(亪[Rfn=8Am4 tMx(gHf{@CJ9&),Jx#JmO>$h^ӪttEY@&aǷͨL .J,-wMve4IW<63ɆBʬ5;y]6 EEEE`}}f8c7}3]<ћ% Lb }?췠:hX_9,V382:PUR/pU2R4NMVaHtR =GL,eס>*G)w_S#qJ=uZ2'Z> ;>\]X/.K5;yHSAk9"7uxa nỏssj5hk76 ITW|蒳ݻĵ)m:ޯ7ƝƋwqA)Z*U,؝[A#Bz }3#ׇ7(@NXFaT -ޑGf[uV.&_Hr&%E֑+ [P|mNh}y_7TXo(p8Iх_t*ZGCo.Wh4 ~+\%+fsԈ>^Gp[~ʏ~^<{ZX"Ja6F#e67ۺм'}$vsG]s scpfdR(6M0[mPyVŠ,$9@df*8 UAp~- tN&a5q@>;j{;m@G!-G$+܎p\V]UadBcu-X)SKr8 HYesT}G)dp&wo[].ɱtT uvIC7?/:tbکKr;8"-6B0k~XZZy֭EԿh}+v_rU5 '\;d :X_Z 4`3gU VЭt+<-r(v3A'Uy ֛Un1՟MK68Fd {>e1њlS.7:zgV \cCBo¸˄ OR7 endstream endobj 115 0 obj <> endobj 838 0 obj <>stream xX XW4J[jq׈[+&n,Ⱦ}DEZdJ܈kLL\їL2FcLĜL-,3y}}ACʘ޽L.\6Q^&_10wX@?98|7V` @ǁ\&[yaHhlx؅̚5nAoxV`^A^vkBFƾa`;WvѾ>={/ [0;. b-w Y0wmG. Xu;wxyO;}܌7֮͜YoLv25Čd61+E, fqf&3bƑ,a0]ƁY˼Lc2똥tf=3l`\77f9ldV0 Lg2Ck&a3L3 d1VR֗Mɰ2C$;KC3{ZpW\ag,|>ޯZ,Z&Z^`5`sM0glT7}!ܐ}yַlllخmаa~%c,XÀ >d# CF8L%K->aCKd <|MшY_価h/KKeMbpt>* %٤kSQ4Nk8Ǵ>)`PXD-&e>eYȣX }ShAV\4BSU! 5B~o^&,%VXuSz7]tŕ]#"7Gm\lwΐjͨ(zh7ҝ WRKl zyZ*ᒱ>Ea=',F_e?+"}AӺֻwaT {%| MLZ8Qր ɱKEC QsV% Srۉyݐ%\6ǸGԀmAHݧ~ąf#q6 &ۃ,8 \nOGǨOtZbCڐQ A᭝[`+L BSu@N]~'pE}YC,e4, A'fFD J U7!Ѭ^+}ǞA" OUII$\%D!ͅK:Owl3DN73Mzs``I΂|-X+C7f#h׷#06 )O"G+ZZxG"ֈXK٧ųn^>^8/韑5P$g\#g$2x/hĕh-cKH8zJ90˚kx߄}Wg(Pݼr4tUUdzGEYFPX`(,ll:UܵW+2y8E P}BEh" 8רF[owFߵrFc0ŷ{X\$,σC5i6Ro3/^LA>}4D0gԖE1KߕGꣽ eG XJ$5w*3';w1I,QdيvTvbp zz*p:+7\5MU^IH{ 2p;k'u 9\F9:t*~ō8Cx&uFڮ< {#"ݹ-g D>p%vn-D㙀q 2p1E 4:Iu3d D inef&UI1yT-kjk30^Be?_s[Pi&l֦d8m8Iک;xtVPȹ{+y[5Uçju 0NX5tdv%Q^H51Rme**Mƶ3P \ h߲ڧ:0k>{ʨTfI$C~en}Tz|]WS>:'Fvz$1IpkXS~pS]hX}Yab EfqB4ܑGSKJ5׊4ӊ͚VdVy_Hѫ p`QWRIyʩ!'' X )7қu3w__[y@U;652ľqvke|爳|M襰l a~5&M¶NF۳J3`F+ 7!` O9= wO 6'J62>3^9E9-;3Sj88TWcd`bk4 æc_!:qcF8huI_Eg+z6ihz6`WWdyyM<\J,$4WL0CN q'h39gCf_[ Ն^ KR`椒d{;uchcp%c"Q(gn6YCUt:Oz{uz0%Tpe]JUALڻ/#碄@$#iQ듴4V=x_P7h`^]tEl#@{uZ/-yax᤮qɕ`[ yEϱ9){+ytȐCFK?BQGmI5٢{b•Gp٪A8]j2b;pꤢV$@z`чd+;xQu8Pzy*$;:~\)Dvp'LOV.^PO}W!}:FcB(ٛ{gNEӻ!|;]tBBC\Py>x.J<eCv1ʰbQT.B-5$^ke{UsL]P>ska{j&_[]8rr-_ p8Ƕ?c=PRT|S洯{0 =&}K8m "ngOVwPh ֆݓ|%hR uhq&p$[uJ;'yݙwٯYgMhCke TOi=d.ZSeWRlN(禁16d٬>[Y M\k`۔+%~x|v1UO&Ʋ2d$>o>8{|~2dSj׶Xq$# 2(%a[\N)?S5MLK%OT\ca8KqH'ȏ]YhJPo `z}SD#]G?ciMޠn7$RV}ƌlsy=i凞/p<2Rzߐͻo@kTu'q`D*Av8Zم._*ZΙ/N[ A\@Ex}0 'fL}i0ӈ9-?j RD>7@js8w>%fpZcCE^.{0 _qKQh% eˏ.KOPťVΧ:|U @2ڇQ9AWi$O0g}E4sQ1ѱQHdu@HIl!Z/(q{)JdKGǦkBst_s!ӵE&S{ncuk ):ٍ_^),#Xu"n9[gO(vR>uP*,ߧe6VyKX!cljcѰ9i8wm/b\ r~Yl)Af|.lm+uy>Uq>[C,J L <+/1`I&#ǾMz!zȽp'+'g y$s 3έ-zK}}?1XS**Ec*>{wk?HO4p~ _X\ endstream endobj 264 0 obj <> endobj 839 0 obj <>stream xuU}pSU/Od 2f$Z]\iقEVEZXRm!m$6w6i+H HADt`]Y\g]DEgukoV&gϹs;Ԕiyʧ- VHҜ6'֎;Ja MyzOgJ?fP7C6lXf_={ҷ5}SCQug]޻H`FߴYݢZ66jFrѪmn;V=ժV, UFSeIuQWm["7j^gRjŨKQj MAQˢ|E^Gh5͚VN/) NZ5Ƣcdk1hՆfu(ULoJzλnY͍MՋ(G05BTCtQ:FEjiUBt3}dnI_I^˞bKX`/0/E >҈+쮐/yaOO='Dc1l?sd$,OIȤQPߪ嘮,W}D Gp0+5f, xphȊv`v#toHYaɎ>=x>W31HN6֣$pE/aycŞ-I4u ށeMK2Bm[>K؞$Q&*3#Ы5B3N`-MUxEKݠ+;$Y.wع~U+7Zn8%hO*ߓly6Qh?#$k^RcƌccjA'YUgT/kMB< wˋ_ʣb0Lx1` G|S[?'X}?,=$gH 0MuļQQ.=KĈ(u~PEO:[/tu} ҁ..*Xz4z}qWpvxkH/Kx<)v>?R,oc9lnoz_% B#dO,K^`mxiXpx lqG2$@$I⺟v}P\)^}kY\٫֛|~C\#O1oR'CpB`w{ݏfxFd~c.?|[Ce{xe|~QlU7޷(+aFiݷyu۶Ÿ~ڜ#LIǮۥ3"~_s5kh⟓/>hyb +M(M<@[ 8HRC\3QŤBn9]oԑqJ\#J,(3 SĨe:EX0x6Vp_ ~p&iV&[R: .]BQHfEo<ɠG)0'O2NL'x#q|"".|G~xK*LݑCENiS4K*yO|%fhd?ŕg幩nNYvC.=mE^ endstream endobj 113 0 obj <> endobj 840 0 obj <>stream xX T׶D)Y1$(#šAQEO7=E. KjגS={})cՃdoK)!!%ۈDk7oa@te2^!b7G8v0y 'A~aܼ#6yG?3Y,`0+Tf yˬb3OƍÌgV3Kg5'36@f fz3:Ӈyg0i +&#a#eE%{hk.SM?^ziz}e6m4vn ׻_Mg#V k+^;[)|g xkA%b/"8Xa%кƒ|hoQѽ +a9CT):z;:Zą2q} ^[aKCXЅB$p1*n :FјюIq8ZOP) WYrG#I|i;C֚- $Y}TmetҒiJғ"a "\7B !gѭsD:.8Em~ 2|hᦠ𨀵-gnR.uX٘e(G6O?|Lz8m0@cdbf|b+`,27HX;1-Q(kB[6rq3@׫Sm'G?|ڀpPi]^ii;!޻Tz+ Kie Ja7:dq~Q=7tL }lיT1&=K~qURN`^7V.`oLzH&@2NwbR y>)kTV<\jOq[IH?/n:"f2hV&IGxz6lC+БSpڟh-3Pb5ºiRY"^O>IYtf%-eɭrtL5yzC4/KD1h} p*E.B8x7@'Y1Fz=Z_8 f[Nd(];,>%8beG1f9Rz~,e3y+>xܱ8 5+Qcw{CTtm8[CmxGER /Od]}j78GCOB%p⛯ۂչ⪌cZ m;\Tݻ LU1 *(7ǓSXK`OsrMdXƹ>㻷_~imXUֶR ,uA(^Tp\s\׭שʓċu͛R?tI$=9^~0`1۝K %*`?]c ~9hI0NXN0LSzN!MѠ?Ps5}_, v& qMI )ޔI%-2p(OQ֤3`0>p(BrapQ$,EYF(.v|JGRހ>ʃwL0`ϖ4-S?# U 89ʂhUDM8dЀnF%8=z /IWp?;0RuEh]51pl }pPX]+SVF"~t/]{0fژy*>}~*y@Y *JsѻY Џ=:rԳCnD\r]|YI۶lz&.;->~~ d.Y@W*5a{|WX/ ,q1?"rmYK(З=GY]4&QP 3>0a&Ƶqc$?x* ON>Bu82IЗBz w3`r O/5 />DV|qK]+^kx EseNkX{ kw9n[BY|*.yi*fz=Fi9i;N1EFʹU}N2:ݫf"E}F2ӹǽйА`Xeϱ8vcJ%C1~@wjBc_sr. E)#<\ _)B2ZT5p,Tbo88+nYi!NPU/h`B4wB4$S %ʥnI%=B;vSՏ%F.%69_?%wY2)Yn֝w|VIz))xzw| 4PR@XlTai=AWӘlzҮpH]V6,L,#ij uE~Y1 ϣ]Ks"?+ =3{!2⃶n X]H\|=ަ}jpY*<ߛs 6)N 15u2m#,F;y IuV^x5tZCxr;N'h<2 hKQ:te1J"V25d"j^OS·]9F0h_b/pzf)3G0Djzb~oR SP}ٱT"vAZ.vM,%Zc1 85hv(I u FCn_r{0}gFlZ\i`Echͦ-1k~焽p⃻!omJڪRq(kEq?x,m>:טV8撖3?J3I!58o^!~O͎35OQa/c$aKO%Tlr5BtPnSM^ʦO؎ LM7ta3'>&m$XK;% -1ư ].Vl!@%y97s@Am tw'\dXo‚, huDVp65Qx}H.d*)\b&-||mo--^%ޥP]3פɊd-xR Ʈ芯@WowUayP95*wZ=dc>:/3cĨmHwoTu1p{/yGw9Z#؉p=Y>s#^d`ڜ0?$ \xZ1?8J4kV5tˎ .'<Љ71KK1hI(VW.KP` <@ѕr~kc<5J AǗa"8n'v,>4Z㤷xLv8 jL|(/^m -Tp>XKYgw:Q]X$ag\PPt6M8p/tMLP"ơv| :zL3pDbVz=2PyoN=KHq+HҺ$igN$ES_R_}m.z+-;+MGM#&/-:\R I..~8Sw'Y9\Aelm{ͱEYmoʂ endstream endobj 262 0 obj <> endobj 841 0 obj <>stream xU{TSWͅ܋"VMhgZ>](ŅV)D@@7 ; ,|P#(3itՎ7sp9UY?q)/EӴ*4,f8g1@NO7261#'ډ?*]6&֨ \2HkIP1V6J]Vc28!AA1hi?tɩF^(^2web5)5j*C8jKMd Uj5)$iNeJEf S5+{or3:>n߱bg=Tvp^wldz>#2fi87,֒rYKdVE3t,İ6脛bΝ~.tδ5hCl$c(2΁ߝÿHʹ#Fazw!KAzO^=GlupXI z'~YCS)5ʈ_JBGQkm+1pZy,n[jކjɠ$y4F%˅gtndMC42 $%i/B6aQ6}A-) F]Rt<_;Zܕoo ]xw럘fKIZ_Ru+v,[V`77slK&!ڟq9^L1u%Y 8g=I~LišE[m\T4rd/ ɯO $=>vU+KQv9&Qm{b9ʺm_< ~b*ʲw^O8ڱ8 AbLPLGza[1+vsMEK!7/z?5 FtOI)=|٢6l\Ty^J8Ȟ#hbhkɦְsh#w>G_!gO_ZGqT<+4PUHw{n,xV rSjަ켂}k!K`{mkQ' ?hN7qmZ|h'p֬Z>>FA|0nHnm'jL*u7<^dqN? endstream endobj 111 0 obj <> endobj 842 0 obj <>stream xX TS׺>1prT{c[j<:(8(81H002&̣Z!F:z[׻oӵ$k"8#,<\nsxܧ}i?Y+>}6#@ 8u0Vݾ,X#3a1ϟ;fig1|<EMȩchFؘa[/ Ec{x~id:ۨ`˄˽Wz ٸJios$`ODE3'̚d$9s'cޔSw-6N:}73b 9p S/‘XAKl VUtbCT!h>)JP6uMWِ}.(^^ ,YbqC4j·orڸl_@ő Nu[GV< '>%JjX($I!d%4i)帨)1 Up}"P YLPJ(dT0Ɉ.HbӕUxJKg&J2Fr*䆨3 r}陹HA?"O_[i{A H-݃bC%МH@GFvq;=Rqe{|Q~LuJ1~u2]9d.2v\Jnc{{~#8.jS̞"~:xUǻ/ZY8&L,j @YyɺOS@QRTTߪB@Ui4UwWt=5 8~QKۋkPɇǹt{[BcBM\]ltg{j)3Բ]bA`!F@V ò!봽Y!dU]N@Uv+RuyXP[pe,.2&[:S=8Hˌ,d+!dL!!y{置O`V֞~gPOCg8P@>[j%:@C!%xP|ƹ=WvA.,=%} ED͠C1@bmʀiUi%` ݠ3&-BBCРg Z]s-i t[^h C14r7@ &ޗwT0J\E+!ȋ .Ԕ3ri\{j=v@FC~A hݭ'OvrڽۙU3W?Pksi=0|xp#[XIp?Rd7 tSœMmRn=%Of\,z(rƹ3?ԠgX[؟zg5y%<ӟ7\,s)6L>݊2 r:lB&UI*je 7HI7zŸ&!m|nid|x N+T: ,|B:{!&SL7}oqۦ6+&@NOMMg qYb6 Rt $*\6MAa&:+![t(.o@!ȠJdybrrb7@uFalЗhYdGk~Y #M&}e4 xdxe%]m>|҄X QJSR{8WӉHO(yrdSȒw9VW@?*asfJvoj1o w>;M!ߓ9}vdTRU-TgUUgU:)+/&TSlcz,L}dvmg|?cpK>Wt \̽܅W^qNE, Pą뇋;싙 3':ݽm,` v>~raM AυZ:h>* et p TtPDE %;! GAp cqg<7nt:h;p;)xl뭺[uu-E:AJ}*/aWސIaߞW]}kōq=lbYG#Z  oa0֭koƼ+p|k i IED($I }2!9m‹\:ҷ;8691JMMϛp!iEYsӭ ~MeQV9RyPw^`.ڔE ?"2تJo5  + endstream endobj 92 0 obj << /Title(Index) /Dest/section*.92 /Parent 6 0 R /Prev 87 0 R >> endobj 5 0 obj <> /Doc-Start<> /section*.1<> /toc.1<> /section*.2<> /page.2<> /page.3<> /section*.3<> /section*.4<> /page.4<> /section.1<> /subsection.1.1<> /page.5<> /subsection.1.2<> /equation.1<> /equation.2<> /equation.3<> /subsection.1.3<> /subsection.1.4<> /page.6<> /section*.5<> /section*.6<> /page.7<> /section.2<> /subsection.2.1<> /subsubsection.2.1.1<> /subsubsection.2.1.2<> /page.8<> /subsubsection.2.1.3<> /subsection.2.2<> /subsubsection.2.2.1<> /section*.7<> /section*.8<> /section*.9<> /section*.10<> /page.9<> /table.1<> /page.10<> /table.2<> /table.3<> /section*.11<> /page.11<> /section*.12<> /subsubsection.2.2.2<> /subsubsection.2.2.3<> /page.12<> /subsection.2.3<> /subsubsection.2.3.1<> /section*.13<> /section*.14<> /section*.15<> /page.13<> /table.4<> /page.14<> /section*.16<> /section*.17<> /section*.18<> /section*.19<> /section*.20<> /page.15<> /section*.21<> /section*.22<> /subsubsection.2.3.2<> /Item.1<> /Item.2<> /Item.3<> /Item.4<> /Item.5<> /Item.6<> /page.16<> /subsubsection.2.3.3<> /subsubsection.2.3.4<> /section*.23<> /page.17<> /equation.4<> /subsection.2.4<> /subsubsection.2.4.1<> /subsubsection.2.4.2<> /page.18<> /subsection.2.5<> /subsubsection.2.5.1<> /page.19<> /subsubsection.2.5.2<> /page.20<> /subsubsection.2.5.3<> /subsubsection.2.5.4<> /page.21<> /subsubsection.2.5.5<> /page.22<> /subsection.2.6<> /subsubsection.2.6.1<> /subsubsection.2.6.2<> /page.23<> /subsubsection.2.6.3<> /subsubsection.2.6.4<> /page.24<> /subsection.2.7<> /subsection.2.8<> /equation.5<> /page.25<> /subsection.2.9<> /subsubsection.2.9.1<> /page.26<> /equation.6<> /equation.7<> /equation.8<> /subsubsection.2.9.2<> /subsubsection.2.9.3<> /page.27<> /subsubsection.2.9.4<> /subsection.2.10<> /page.28<> /subsection.2.11<> /subsection.2.12<> /subsection.2.13<> /page.29<> /subsection.2.14<> /subsection.2.15<> /subsubsection.2.15.1<> /page.30<> /subsubsection.2.15.2<> /subsubsection.2.15.3<> /page.31<> /section.3<> /figure.1<> /figure.2<> /page.32<> /figure.3<> /page.33<> /figure.4<> /figure.5<> /figure.6<> /figure.7<> /page.34<> /figure.8<> /page.35<> /figure.9<> /figure.10<> /page.36<> /figure.11<> /page.37<> /figure.12<> /page.38<> /section.4<> /subsection.4.1<> /subsection.4.2<> /subsection.4.3<> /page.39<> /subsection.4.4<> /page.40<> /page.41<> /section.5<> /subsection.5.1<> /table.5<> /subsection.5.2<> /page.42<> /subsection.5.3<> /subsection.5.4<> /page.43<> /table.6<> /page.44<> /section.6<> /subsection.6.1<> /equation.9<> /equation.10<> /equation.11<> /equation.12<> /equation.13<> /equation.14<> /equation.15<> /subsection.6.2<> /page.45<> /table.7<> /table.8<> /page.46<> /subsubsection.6.2.1<> /equation.16<> /lemma.1<> /equation.17<> /subsubsection.6.2.2<> /equation.18<> /equation.19<> /equation.20<> /equation.21<> /equation.22<> /equation.23<> /page.47<> /equation.24<> /lemma.2<> /equation.25<> /equation.26<> /equation.27<> /subsection.6.3<> /equation.28<> /subsubsection.6.3.1<> /section*.24<> /equation.29<> /page.48<> /section*.25<> /equation.30<> /equation.31<> /equation.32<> /equation.33<> /equation.34<> /equation.35<> /equation.36<> /equation.37<> /equation.38<> /equation.39<> /equation.40<> /equation.41<> /page.49<> /section*.26<> /equation.42<> /equation.43<> /equation.44<> /section*.27<> /equation.45<> /section*.28<> /equation.46<> /section*.29<> /equation.47<> /page.50<> /section*.30<> /equation.48<> /subsubsection.6.3.2<> /section*.31<> /equation.49<> /section*.32<> /equation.50<> /equation.51<> /equation.52<> /equation.53<> /equation.54<> /AMS.35<> /AMS.36<> /equation.55<> /equation.56<> /equation.57<> /equation.58<> /section*.37<> /equation.59<> /section*.38<> /equation.60<> /page.51<> /subsubsection.6.3.3<> /section*.39<> /equation.61<> /equation.62<> /equation.63<> /section*.40<> /equation.64<> /section*.41<> /subsubsection.6.3.4<> /section*.42<> /equation.65<> /equation.66<> /equation.67<> /equation.68<> /equation.69<> /equation.70<> /equation.71<> /page.52<> /equation.72<> /section*.43<> /equation.73<> /section*.44<> /equation.74<> /section*.45<> /lemma.3<> /equation.75<> /equation.76<> /equation.77<> /equation.78<> /page.53<> /equation.79<> /subsubsection.6.3.5<> /section*.46<> /equation.80<> /section*.47<> /equation.81<> /subsubsection.6.3.6<> /section*.48<> /equation.82<> /equation.83<> /equation.84<> /equation.85<> /subsubsection.6.3.7<> /section*.49<> /equation.86<> /page.54<> /section*.50<> /equation.87<> /section*.51<> /equation.88<> /section*.52<> /equation.89<> /section*.53<> /equation.90<> /section*.54<> /equation.91<> /section*.55<> /equation.92<> /subsubsection.6.3.8<> /section*.56<> /equation.93<> /subsubsection.6.3.9<> /section*.57<> /equation.94<> /subsubsection.6.3.10<> /section*.58<> /equation.95<> /subsubsection.6.3.11<> /section*.59<> /equation.96<> /page.55<> /subsubsection.6.3.12<> /section*.60<> /equation.97<> /equation.98<> /equation.99<> /section*.61<> /equation.100<> /page.56<> /equation.101<> /equation.102<> /equation.103<> /page.57<> /section*.62<> /cite.plrm<> /cite.fbox<> /cite.url<> /cite.Bruton<> /cite.dpc<> /cite.color<> /cite.colortbl<> /cite.pstcol<> /cite.chroma<> /cite.xcolor<> /cite.mik<> /cite.colorinfo<> /cite.pdfcolmk<> /cite.hyperref<> /cite.smith<> /cite.HTML4<> /cite.svg<> /page.58<> /section*.63<> /section*.64<> /section*.65<> /section*.66<> /section*.67<> /section*.68<> /section*.69<> /section*.70<> /section*.71<> /page.59<> /section*.72<> /section*.73<> /section*.74<> /section*.75<> /page.60<> /section*.76<> /section*.77<> /section*.78<> /page.61<> /section*.79<> /section*.80<> /section*.81<> /page.62<> /section*.82<> /section*.83<> /section*.84<> /section*.85<> /section*.86<> /page.63<> /section*.87<> /section*.88<> /section*.89<> /section*.90<> /section*.91<> /section*.92<> /page.64<> /page.65<>>>endobj 2 0 obj <>endobj xref 0 871 0000000000 65535 f 0000421882 00000 n 0000690535 00000 n 0000421244 00000 n 0000408290 00000 n 0000648870 00000 n 0000421825 00000 n 0000422006 00000 n 0000422530 00000 n 0000422082 00000 n 0000422183 00000 n 0000422317 00000 n 0000422421 00000 n 0000427988 00000 n 0000423010 00000 n 0000422663 00000 n 0000422768 00000 n 0000422881 00000 n 0000423513 00000 n 0000423138 00000 n 0000423245 00000 n 0000423379 00000 n 0000424158 00000 n 0000423655 00000 n 0000423788 00000 n 0000423923 00000 n 0000424058 00000 n 0000424540 00000 n 0000424313 00000 n 0000424430 00000 n 0000425283 00000 n 0000424687 00000 n 0000424797 00000 n 0000424921 00000 n 0000425042 00000 n 0000425174 00000 n 0000425867 00000 n 0000425429 00000 n 0000425537 00000 n 0000425648 00000 n 0000425769 00000 n 0000426014 00000 n 0000426121 00000 n 0000426738 00000 n 0000426240 00000 n 0000426353 00000 n 0000426483 00000 n 0000426610 00000 n 0000426880 00000 n 0000427002 00000 n 0000427148 00000 n 0000427257 00000 n 0000427368 00000 n 0000427848 00000 n 0000427478 00000 n 0000427607 00000 n 0000427728 00000 n 0000428130 00000 n 0000428683 00000 n 0000428225 00000 n 0000428337 00000 n 0000428458 00000 n 0000428577 00000 n 0000429315 00000 n 0000428821 00000 n 0000428934 00000 n 0000429074 00000 n 0000429215 00000 n 0000431410 00000 n 0000429459 00000 n 0000429773 00000 n 0000429551 00000 n 0000429662 00000 n 0000431260 00000 n 0000429945 00000 n 0000430043 00000 n 0000430154 00000 n 0000430266 00000 n 0000430377 00000 n 0000430488 00000 n 0000430600 00000 n 0000430712 00000 n 0000430823 00000 n 0000430935 00000 n 0000431047 00000 n 0000431160 00000 n 0000431546 00000 n 0000432023 00000 n 0000431645 00000 n 0000431737 00000 n 0000431837 00000 n 0000431939 00000 n 0000648789 00000 n 0000000015 00000 n 0000003906 00000 n 0000432157 00000 n 0000563693 00000 n 0000496920 00000 n 0000553575 00000 n 0000495095 00000 n 0000545484 00000 n 0000493861 00000 n 0000432199 00000 n 0000537214 00000 n 0000492832 00000 n 0000528695 00000 n 0000490987 00000 n 0000518169 00000 n 0000489535 00000 n 0000507400 00000 n 0000487826 00000 n 0000642067 00000 n 0000506919 00000 n 0000634136 00000 n 0000506109 00000 n 0000624757 00000 n 0000504427 00000 n 0000432362 00000 n 0000603804 00000 n 0000502094 00000 n 0000432499 00000 n 0000432641 00000 n 0000432783 00000 n 0000432924 00000 n 0000433066 00000 n 0000433203 00000 n 0000433345 00000 n 0000433491 00000 n 0000433637 00000 n 0000433783 00000 n 0000433925 00000 n 0000434071 00000 n 0000434218 00000 n 0000434364 00000 n 0000434505 00000 n 0000434652 00000 n 0000434799 00000 n 0000434946 00000 n 0000435093 00000 n 0000435235 00000 n 0000597801 00000 n 0000500968 00000 n 0000589123 00000 n 0000499965 00000 n 0000575414 00000 n 0000498750 00000 n 0000435380 00000 n 0000570281 00000 n 0000497872 00000 n 0000435580 00000 n 0000435756 00000 n 0000435919 00000 n 0000435952 00000 n 0000408652 00000 n 0000003927 00000 n 0000007018 00000 n 0000558757 00000 n 0000496526 00000 n 0000436165 00000 n 0000436312 00000 n 0000436454 00000 n 0000551394 00000 n 0000494845 00000 n 0000436601 00000 n 0000436748 00000 n 0000436895 00000 n 0000437041 00000 n 0000437188 00000 n 0000437330 00000 n 0000437477 00000 n 0000437624 00000 n 0000437771 00000 n 0000437915 00000 n 0000438057 00000 n 0000438199 00000 n 0000438341 00000 n 0000438488 00000 n 0000438635 00000 n 0000438781 00000 n 0000438928 00000 n 0000439071 00000 n 0000439213 00000 n 0000439356 00000 n 0000439499 00000 n 0000439641 00000 n 0000538291 00000 n 0000493367 00000 n 0000439784 00000 n 0000439932 00000 n 0000440080 00000 n 0000440228 00000 n 0000440365 00000 n 0000440502 00000 n 0000440643 00000 n 0000440784 00000 n 0000440925 00000 n 0000441067 00000 n 0000441204 00000 n 0000441346 00000 n 0000441487 00000 n 0000441629 00000 n 0000441771 00000 n 0000441908 00000 n 0000442049 00000 n 0000442191 00000 n 0000442338 00000 n 0000442485 00000 n 0000534092 00000 n 0000492269 00000 n 0000442627 00000 n 0000442774 00000 n 0000442807 00000 n 0000409185 00000 n 0000007040 00000 n 0000009500 00000 n 0000442907 00000 n 0000443054 00000 n 0000443201 00000 n 0000443348 00000 n 0000443495 00000 n 0000443642 00000 n 0000443788 00000 n 0000443935 00000 n 0000444081 00000 n 0000444229 00000 n 0000444377 00000 n 0000444525 00000 n 0000444664 00000 n 0000444803 00000 n 0000444941 00000 n 0000445080 00000 n 0000445219 00000 n 0000445358 00000 n 0000445496 00000 n 0000445631 00000 n 0000445766 00000 n 0000445901 00000 n 0000446036 00000 n 0000446170 00000 n 0000446305 00000 n 0000446440 00000 n 0000446574 00000 n 0000446709 00000 n 0000446845 00000 n 0000446981 00000 n 0000447117 00000 n 0000447253 00000 n 0000447389 00000 n 0000447524 00000 n 0000447660 00000 n 0000447796 00000 n 0000522250 00000 n 0000490429 00000 n 0000516866 00000 n 0000488941 00000 n 0000447933 00000 n 0000448070 00000 n 0000448207 00000 n 0000448240 00000 n 0000409654 00000 n 0000009522 00000 n 0000015435 00000 n 0000639796 00000 n 0000506670 00000 n 0000631282 00000 n 0000505341 00000 n 0000448366 00000 n 0000448399 00000 n 0000409811 00000 n 0000015457 00000 n 0000020778 00000 n 0000448525 00000 n 0000618736 00000 n 0000503796 00000 n 0000448662 00000 n 0000448796 00000 n 0000448931 00000 n 0000449073 00000 n 0000449215 00000 n 0000449357 00000 n 0000449390 00000 n 0000410024 00000 n 0000020800 00000 n 0000024596 00000 n 0000600954 00000 n 0000501578 00000 n 0000449542 00000 n 0000449679 00000 n 0000449816 00000 n 0000449849 00000 n 0000410205 00000 n 0000024618 00000 n 0000030925 00000 n 0000596499 00000 n 0000500735 00000 n 0000449988 00000 n 0000450123 00000 n 0000450258 00000 n 0000450394 00000 n 0000450532 00000 n 0000450667 00000 n 0000450802 00000 n 0000587371 00000 n 0000499774 00000 n 0000450940 00000 n 0000451086 00000 n 0000451232 00000 n 0000451265 00000 n 0000410442 00000 n 0000030947 00000 n 0000037480 00000 n 0000451469 00000 n 0000451603 00000 n 0000451738 00000 n 0000451874 00000 n 0000452012 00000 n 0000574187 00000 n 0000498547 00000 n 0000452151 00000 n 0000452184 00000 n 0000410647 00000 n 0000037502 00000 n 0000041829 00000 n 0000452388 00000 n 0000452535 00000 n 0000452683 00000 n 0000452826 00000 n 0000452969 00000 n 0000453116 00000 n 0000453263 00000 n 0000453409 00000 n 0000453554 00000 n 0000453700 00000 n 0000453845 00000 n 0000453990 00000 n 0000454136 00000 n 0000454169 00000 n 0000410908 00000 n 0000041851 00000 n 0000048006 00000 n 0000454282 00000 n 0000454420 00000 n 0000454559 00000 n 0000454701 00000 n 0000454843 00000 n 0000454979 00000 n 0000455116 00000 n 0000455251 00000 n 0000455386 00000 n 0000455419 00000 n 0000411137 00000 n 0000048028 00000 n 0000053362 00000 n 0000455584 00000 n 0000455718 00000 n 0000455854 00000 n 0000566553 00000 n 0000497366 00000 n 0000455990 00000 n 0000456023 00000 n 0000411326 00000 n 0000053384 00000 n 0000060428 00000 n 0000456227 00000 n 0000456362 00000 n 0000456395 00000 n 0000411499 00000 n 0000060450 00000 n 0000066467 00000 n 0000556679 00000 n 0000496167 00000 n 0000549888 00000 n 0000494424 00000 n 0000456547 00000 n 0000456580 00000 n 0000411656 00000 n 0000066489 00000 n 0000072709 00000 n 0000456719 00000 n 0000456853 00000 n 0000456988 00000 n 0000457135 00000 n 0000457282 00000 n 0000457429 00000 n 0000457462 00000 n 0000411861 00000 n 0000072731 00000 n 0000078288 00000 n 0000457601 00000 n 0000457748 00000 n 0000457781 00000 n 0000412034 00000 n 0000078310 00000 n 0000084955 00000 n 0000457920 00000 n 0000458056 00000 n 0000458192 00000 n 0000458328 00000 n 0000458464 00000 n 0000458600 00000 n 0000458738 00000 n 0000458875 00000 n 0000459017 00000 n 0000459158 00000 n 0000459191 00000 n 0000412271 00000 n 0000084977 00000 n 0000092621 00000 n 0000531609 00000 n 0000491535 00000 n 0000459408 00000 n 0000459546 00000 n 0000459683 00000 n 0000459820 00000 n 0000459962 00000 n 0000460104 00000 n 0000460251 00000 n 0000460398 00000 n 0000460531 00000 n 0000460668 00000 n 0000460804 00000 n 0000460940 00000 n 0000460973 00000 n 0000412524 00000 n 0000092643 00000 n 0000099066 00000 n 0000461190 00000 n 0000461327 00000 n 0000461464 00000 n 0000461612 00000 n 0000461758 00000 n 0000461897 00000 n 0000461930 00000 n 0000412729 00000 n 0000099088 00000 n 0000104987 00000 n 0000462121 00000 n 0000462263 00000 n 0000462405 00000 n 0000462548 00000 n 0000462691 00000 n 0000462832 00000 n 0000462972 00000 n 0000463115 00000 n 0000463256 00000 n 0000463289 00000 n 0000412958 00000 n 0000105009 00000 n 0000111357 00000 n 0000463493 00000 n 0000463526 00000 n 0000413115 00000 n 0000111379 00000 n 0000117957 00000 n 0000521672 00000 n 0000490175 00000 n 0000463730 00000 n 0000463763 00000 n 0000413272 00000 n 0000117979 00000 n 0000123238 00000 n 0000463954 00000 n 0000463987 00000 n 0000413429 00000 n 0000123260 00000 n 0000128995 00000 n 0000464126 00000 n 0000464262 00000 n 0000464398 00000 n 0000464534 00000 n 0000464670 00000 n 0000464805 00000 n 0000464942 00000 n 0000465079 00000 n 0000465112 00000 n 0000413650 00000 n 0000129017 00000 n 0000136424 00000 n 0000465238 00000 n 0000465374 00000 n 0000465509 00000 n 0000465542 00000 n 0000413831 00000 n 0000136446 00000 n 0000141825 00000 n 0000465694 00000 n 0000465727 00000 n 0000413988 00000 n 0000141847 00000 n 0000148041 00000 n 0000515416 00000 n 0000488472 00000 n 0000465866 00000 n 0000466004 00000 n 0000466146 00000 n 0000466288 00000 n 0000466424 00000 n 0000466560 00000 n 0000466593 00000 n 0000414193 00000 n 0000148063 00000 n 0000154148 00000 n 0000466797 00000 n 0000466937 00000 n 0000466970 00000 n 0000414366 00000 n 0000154170 00000 n 0000159954 00000 n 0000467135 00000 n 0000467303 00000 n 0000467440 00000 n 0000467577 00000 n 0000467711 00000 n 0000467845 00000 n 0000467878 00000 n 0000414571 00000 n 0000159976 00000 n 0000165387 00000 n 0000468030 00000 n 0000468063 00000 n 0000414728 00000 n 0000165409 00000 n 0000169382 00000 n 0000468254 00000 n 0000468395 00000 n 0000468428 00000 n 0000414901 00000 n 0000169404 00000 n 0000178516 00000 n 0000468580 00000 n 0000468613 00000 n 0000415058 00000 n 0000178538 00000 n 0000204626 00000 n 0000613291 00000 n 0000502877 00000 n 0000468726 00000 n 0000468759 00000 n 0000415215 00000 n 0000204649 00000 n 0000212067 00000 n 0000468846 00000 n 0000468879 00000 n 0000415372 00000 n 0000212089 00000 n 0000218232 00000 n 0000468953 00000 n 0000468986 00000 n 0000415529 00000 n 0000218254 00000 n 0000232158 00000 n 0000469112 00000 n 0000469145 00000 n 0000415686 00000 n 0000232181 00000 n 0000247080 00000 n 0000469219 00000 n 0000469252 00000 n 0000415843 00000 n 0000247103 00000 n 0000254135 00000 n 0000598504 00000 n 0000501208 00000 n 0000595908 00000 n 0000500579 00000 n 0000469352 00000 n 0000469385 00000 n 0000416000 00000 n 0000254157 00000 n 0000268235 00000 n 0000580868 00000 n 0000499207 00000 n 0000572488 00000 n 0000498225 00000 n 0000469485 00000 n 0000469518 00000 n 0000416157 00000 n 0000268258 00000 n 0000282433 00000 n 0000469605 00000 n 0000469638 00000 n 0000416314 00000 n 0000282456 00000 n 0000293383 00000 n 0000469738 00000 n 0000469771 00000 n 0000416471 00000 n 0000293406 00000 n 0000299793 00000 n 0000469845 00000 n 0000469980 00000 n 0000470116 00000 n 0000470149 00000 n 0000416652 00000 n 0000299815 00000 n 0000305740 00000 n 0000470340 00000 n 0000470482 00000 n 0000470617 00000 n 0000470752 00000 n 0000470888 00000 n 0000470921 00000 n 0000416849 00000 n 0000305762 00000 n 0000307073 00000 n 0000471099 00000 n 0000471132 00000 n 0000417006 00000 n 0000307095 00000 n 0000311535 00000 n 0000471219 00000 n 0000471357 00000 n 0000471499 00000 n 0000471640 00000 n 0000471673 00000 n 0000417195 00000 n 0000311557 00000 n 0000316453 00000 n 0000555820 00000 n 0000495664 00000 n 0000471838 00000 n 0000471871 00000 n 0000417352 00000 n 0000316475 00000 n 0000321455 00000 n 0000472075 00000 n 0000472214 00000 n 0000472247 00000 n 0000417525 00000 n 0000321477 00000 n 0000327735 00000 n 0000472399 00000 n 0000472533 00000 n 0000472667 00000 n 0000472804 00000 n 0000472942 00000 n 0000473079 00000 n 0000473214 00000 n 0000473247 00000 n 0000417738 00000 n 0000327757 00000 n 0000331086 00000 n 0000473425 00000 n 0000473563 00000 n 0000473596 00000 n 0000417911 00000 n 0000331108 00000 n 0000335764 00000 n 0000473722 00000 n 0000473861 00000 n 0000474000 00000 n 0000474139 00000 n 0000474275 00000 n 0000474422 00000 n 0000474568 00000 n 0000474714 00000 n 0000474860 00000 n 0000474893 00000 n 0000418140 00000 n 0000335786 00000 n 0000339899 00000 n 0000475045 00000 n 0000475184 00000 n 0000475323 00000 n 0000475459 00000 n 0000475596 00000 n 0000475629 00000 n 0000418337 00000 n 0000339921 00000 n 0000343334 00000 n 0000475794 00000 n 0000475930 00000 n 0000476066 00000 n 0000476204 00000 n 0000476237 00000 n 0000418526 00000 n 0000343356 00000 n 0000348697 00000 n 0000476363 00000 n 0000476502 00000 n 0000476641 00000 n 0000476788 00000 n 0000476935 00000 n 0000477074 00000 n 0000477107 00000 n 0000418731 00000 n 0000348719 00000 n 0000353131 00000 n 0000477272 00000 n 0000477411 00000 n 0000477548 00000 n 0000477686 00000 n 0000477825 00000 n 0000477964 00000 n 0000478102 00000 n 0000478241 00000 n 0000478376 00000 n 0000478409 00000 n 0000418960 00000 n 0000353153 00000 n 0000356389 00000 n 0000478587 00000 n 0000478724 00000 n 0000478871 00000 n 0000479018 00000 n 0000479165 00000 n 0000479311 00000 n 0000479457 00000 n 0000479603 00000 n 0000479750 00000 n 0000479897 00000 n 0000480044 00000 n 0000480191 00000 n 0000480224 00000 n 0000419213 00000 n 0000356411 00000 n 0000361696 00000 n 0000480402 00000 n 0000480540 00000 n 0000480678 00000 n 0000480817 00000 n 0000480955 00000 n 0000480988 00000 n 0000419410 00000 n 0000361718 00000 n 0000365025 00000 n 0000481153 00000 n 0000481292 00000 n 0000481459 00000 n 0000481492 00000 n 0000419591 00000 n 0000365047 00000 n 0000369477 00000 n 0000481644 00000 n 0000481839 00000 n 0000482043 00000 n 0000482241 00000 n 0000482435 00000 n 0000482639 00000 n 0000482843 00000 n 0000483045 00000 n 0000483249 00000 n 0000483441 00000 n 0000483617 00000 n 0000483818 00000 n 0000483994 00000 n 0000484156 00000 n 0000484360 00000 n 0000484563 00000 n 0000484766 00000 n 0000484944 00000 n 0000485122 00000 n 0000485314 00000 n 0000485347 00000 n 0000419908 00000 n 0000369499 00000 n 0000374550 00000 n 0000485460 00000 n 0000485597 00000 n 0000485630 00000 n 0000420081 00000 n 0000374572 00000 n 0000379192 00000 n 0000485782 00000 n 0000485950 00000 n 0000486118 00000 n 0000486151 00000 n 0000420262 00000 n 0000379214 00000 n 0000384330 00000 n 0000486303 00000 n 0000486479 00000 n 0000486512 00000 n 0000420435 00000 n 0000384352 00000 n 0000389234 00000 n 0000486625 00000 n 0000486658 00000 n 0000420592 00000 n 0000389256 00000 n 0000394065 00000 n 0000486784 00000 n 0000486958 00000 n 0000487125 00000 n 0000487158 00000 n 0000420773 00000 n 0000394087 00000 n 0000399566 00000 n 0000546293 00000 n 0000494069 00000 n 0000487284 00000 n 0000487317 00000 n 0000420930 00000 n 0000399588 00000 n 0000404203 00000 n 0000487521 00000 n 0000487554 00000 n 0000421087 00000 n 0000404225 00000 n 0000408268 00000 n 0000487667 00000 n 0000487700 00000 n 0000507884 00000 n 0000515638 00000 n 0000517163 00000 n 0000518557 00000 n 0000521910 00000 n 0000522608 00000 n 0000528951 00000 n 0000532063 00000 n 0000534360 00000 n 0000537473 00000 n 0000538850 00000 n 0000545701 00000 n 0000546563 00000 n 0000550115 00000 n 0000551652 00000 n 0000553856 00000 n 0000556056 00000 n 0000556924 00000 n 0000559083 00000 n 0000563962 00000 n 0000566833 00000 n 0000570597 00000 n 0000572726 00000 n 0000574407 00000 n 0000575866 00000 n 0000581204 00000 n 0000587628 00000 n 0000589581 00000 n 0000596125 00000 n 0000596730 00000 n 0000598046 00000 n 0000598796 00000 n 0000601217 00000 n 0000604403 00000 n 0000613656 00000 n 0000619084 00000 n 0000625155 00000 n 0000631718 00000 n 0000634524 00000 n 0000640097 00000 n 0000642605 00000 n 0000488343 00000 n 0000488683 00000 n 0000489334 00000 n 0000489952 00000 n 0000490341 00000 n 0000490899 00000 n 0000491291 00000 n 0000491915 00000 n 0000492591 00000 n 0000493211 00000 n 0000494760 00000 n 0000495440 00000 n 0000496038 00000 n 0000496438 00000 n 0000497273 00000 n 0000497787 00000 n 0000499683 00000 n 0000500464 00000 n 0000501114 00000 n 0000501977 00000 n 0000502670 00000 n 0000503332 00000 n 0000503428 00000 n 0000504272 00000 n 0000504918 00000 n 0000505017 00000 n 0000505762 00000 n 0000506585 00000 n trailer << /Size 871 /Root 1 0 R /Info 2 0 R /ID [<705CC74CECCBF48D5F1B897775950EC0><705CC74CECCBF48D5F1B897775950EC0>] >> startxref 690964 %%EOF latex-xcolor-2.11/ChangeLog0000644000175000017500000003423710554446444015223 0ustar mohuramohuraPackage `xcolor' by Dr. Uwe Kern (xcolor at ukern dot de) History ======= 2007/01/21 v2.11 * New features: - color names `lime' and `teal' added to the set of predefined colors. * Bugfix: - incorrect \XC@strip@comma call within `hyperref'-related options. 2006/11/28 v2.10 * New features: - `fixinclude' option prevents dvips from explicitly resetting current color to `black' before actually inserting an .eps file via \color{red}\includegraphics{foo}. * Changes: - \colorbox and \fcolorbox made robust; - obsolete package option `pst' removed; - several changes to internal macros. * Bugfixes: - incorrect processing of cmyk-type current color `.'. 2005/12/21 v2.09 * New features: - \definecolor and \color now accept space-separated color specifications, e.g., \color[rgb]{1 .5 0}; - experimental `xcdraw' option extended to `pdftex' and `dvipdfm' drivers. * Changes: - test file xcolor2.tex made compatible with recent changes in `pstricks'; - test file xcolor3.tex extended; - driver test file xcolor4.tex extended to demonstrate the different frame drawing approaches; - more efficient implementation of driver-specific code. 2005/11/25 v2.08 * New features: - more flexibility for \fcolorbox arguments, e.g., \fcolorbox[gray]{0.5}[wave]{580}{test}; - \boxframe returns a frame of given dimensions; - new implementation of \f(rame)box and \fcolorbox as an extension of bug report latex/3655 to reduce pixel positioning errors in output devices; - `kernelfbox' option for those who prefer the previous \f(rame)box approach; - experimental `xcdraw' option uses PostScript commands to draw frames and color boxes in case of `dvips'. * Bugfixes: - insufficient expression type detection within \colorlet; - wrong calculation in the unit interval reduction for negative integers (affecting color series and extended color expressions). 2005/11/12 v2.07 * New features: - color model `Hsb' allows to specify hue in degrees; - color model `tHsb' (`tuned Hsb') for user-defined hue configuration on color wheels; - easy generation of color harmonies derived from `Hsb' or `tHsb' color wheels, e.g., \color{red>wheel,1,12} yields an `analogous' color to `red' on a 12-spoke wheel; - additional 317 predefined color names according to rgb.txt, which is part of Unix/X11 distributions; - `svgnames' option extended by 4 colors taken from rgb.txt; - enhanced syntax for immediate conversion, e.g., \definecolor{foo}{rgb:gray}{0.3} or \color[rgb:wave]{478}; - \@ifundefinedcolor and \@ifundefinedmodel commands. * Changes: - enhanced documentation; - several changes to internal macros. * Bugfixes: - wrong calculation of color series components in some cases of negative step parameters. 2005/10/15 v2.06 * New features: - color model `wave' for (approximate) visualisation of light wavelengths, still somewhat experimental; - pseudo-model `ps' for colors defined by literal PostScript code in conjunction with `pstricks and `dvips'; an illustrative example for a gamma-correction approach is given in xcolor2.tex; - \substitutecolormodel command for replacement of missing or faulty driver-specific color models; - improved detection and handling of driver-specific color models; - `dvipdfmx' and `xetex' options to support these drivers; - generic driver test file xcolor4.tex. * Changes: - \XC@strip@comma doesn't generate a trailing space anymore, which improves also the output of the `testcolors' environment. 2005/09/30 v2.05 * New features: - `testcolors' environment helps to test colors in different models, showing both the visual result and the model-specific parameters; - \extractcolorspecs puts model/color specification into two separate commands, as opposed to \extractcolorspec; - color names `pink' and `olive' added to the set of predefined colors. * Bugfixes: - \definecolor{foo}{named}{bar} did not work in v2.04. 2005/09/23 v2.04 * New features: - preparation for usage of additional - driver-provided - color models; - `pstricks' users may now specify explicit color parameters within \psset and related commands, e.g., \psset{linecolor=[rgb]{1,0,0}}; an illustrative example is given in xcolor2.tex. * Changes: - color model names sanitized (i.e., turned to catcode 12) throughout the package; - \@namelet command deprecated because of name clash with `memoir' - please use \XC@let@cc instead (more \XC@let@.. commands are available as well); - simplified color conversion code by using the new \XC@ifxcase command; - some minor changes to internal macros. 2005/06/06 v2.03 * New features: - `fixpdftex' option loads `pdfcolmk' package in order to improve pdfTeX's color behaviour during page breaks. * Changes: - some minor changes to internal macros. * Bugfixes: - due to an incorrect \if statement within \XC@info, \colorlet caused trouble whenever its second argument started with two identical letters, e.g., \colorlet{rab}{oof}; - argument processing of \XC@getcolor caused incompatibility with `msc' package; - `prologue' option caused incompatibility with `preview' package. 2005/03/24 v2.02 * New features: - \aftergroupedef command to reproduce \aftergroupdef's behaviour prior to v2.01; - xcolor's homepage www.ukern.de/tex/xcolor.html now provides also a ready-to-run TDS-compliant archive containing all required files. * Changes: - \rowcolors and friends are solely enabled by the `table' option; - \@ifxempty changed back to more robust variant of v2.00. * Bugfixes: - \psset{linecolor=\ifcase\foo red\or green\or blue\fi} did not work with `pstricks' (error introduced in v2.01). 2005/03/15 v2.01 * New features: - `prologue' option for comprehensive `named' color support in conjunction with `dvips': on-the-fly generation of PostScript prologue files with all color definitions, ready for dvips inclusion and/or post-processing with device-specific parameters (e.g., spot colors); - dvips prologue file xcolor.pro to support additional `named' colors; - \colorlet may now also be used to create named colors from arbitrary color expressions; - enhanced color definition syntax to allow for target-model specific color parameters, e.g., \definecolor{red}{rgb/cmyk}{1,0,0/0,1,1,0}, facilitating the usage of tailor-made colors both for displays and printers; - `deferred definition' of colors: \preparecolor and \definecolors enable decoupling of color specification and control sequence generation, especially useful (= memory saving) for large lists of colors, of which only a few names are actually used; - `dvipsnames*' and `svgnames*' options to support deferred definition. * Changes: - higher accuracy: most complement calculations are now exact for all 5-digit decimals; - \rangeRGB and similar variables may now be changed at any point in a document; - \aftergroupdef now performs only a first-level expansion of its code argument; - \XCfileversion and similar internal constants removed from .sty and .def files; - improved memory management (reduced generation of `multiletter control sequences' by \@ifundefined tests); - several internal macros improved and/or renamed. * Bugfixes: - \XC@getcolor could cause unwanted spaces when \psset was used inside |pspicture| environments (`pstricks'); - arithmetic overflow could happen when too many decimal digits were used within color parameters, e.g., as a result of `fp' calculations. 2004/07/04 v2.00 * New features: - extended functionality for color expressions: mix colors like a painter; - support for color blending: specify color mix expressions that are being blended with every displayed color; - \xglobal command for selective control of globality for color definitions, blends, and masks; - multiple step operations (e.g., \color{foo!!+++}) and access to individual members (e.g., \color{foo!![7]}) in color series; - \providecolor command to define only non-existent colors; - \definecolorset and \providecolorset commands to facilitate the construction of color sets with common underlying color model; - additional 147 predefined color names according to SVG 1.1 specification; - `xpdfborder' key for setting the width of hyperlink borders in a more driver-independent way if `dvips' is used. * Changes: - `color' package now completely integrated within `xcolor'; - `override', `usenames', `nodvipsnames' options and \xdefinecolor command no longer needed; - `dvips' and `dvipsnames' options now independent of each other; - \tracingcolors's behaviour changed to make it more versatile and reduce log file size in standard cases; - \rdivide's syntax made more flexible (divide by numbers and/or dimensions); - code restructured, some internal commands renamed; - documentation rearranged and enhanced. * Bugfixes: - \definecolor{foo}{named}{bar} did not work (error introduced in v1.11); - more robust behaviour of conditionals within `pstricks' key-values. 2004/05/09 v1.11 * New features: - switch \ifglobalcolors to control whether color definitions are global or local; - option `hyperref' provides color expression support for the border colors of hyperlinks, e.g., \hypersetup{xurlbordercolor=red!50!yellow}; - internal hooks \XC@bcolor, \XC@mcolor, and \XC@ecolor for additional code that has to be executed immediately before/after the current color is being displayed. * Changes: - \XC@logcolor renamed to \XC@display, which is now the core color display command; - improved interface to `pstricks'. 2004/03/27 v1.10 * New features: - support for `named' model; - support for `dvips' colors (may now be used within color expressions); - internal representation of `ordinary' and `named' colors merged into unified data structure; - allow multiple `-' signs at the beginning of color expressions. * Bugfixes: - commands like \color[named]{foo} caused errors when color masking or target model conversion were active; - incompatibility with `soul' package: commands \hl, \ul, etc. could yield unexpected results. * Documentation: - added formula for general color expressions; - enhanced text and index; - removed dependence of index generation on local configuration file. 2004/02/16 v1.09 * New features: - color model `HTML', a 24-bit hexadecimal `RGB' variant; allows to specify colors like \color[HTML]{AFFE90}; - color names `orange', `violet', `purple', and `brown' added to the set of predefined colors. * New xcolor homepage: www.ukern.de/tex/xcolor.html * Bugfix: \xdefinecolor sometimes did not normalise its parameters. * Changes: - slight improvements of the documentation; - example file xcolor1.tex reorganised and abridged. 2004/02/04 v1.08 * New commands/features: - \selectcolormodel to change the target model within a document; - \adjustUCRBG to fine-tune undercolor-removal and black-generation during conversion to `cmyk'. * Bugfix: color expressions did not work correctly in connection with active `!' character, e.g., in case of \usepackage[frenchb]{babel}. * Code re-organisation: - \XC@xdefinecolor merged into \xdefinecolor, making the first command obsolete; - several internal commands improved/streamlined. 2004/01/20 v1.07 * New feature: support for color masking and color separation. * New commands: - \rmultiply to multiply a dimension register by a real number; - \xcolorcmd to pass commands that are to be executed at the end of the package. * Changes: - more consistent color handling: extended colors now always take precedence over standard colors; - several commands improved by using code from the LaTeX kernel. * Documentation: some minor changes. * Example files: additional `pstricks' examples (file xcolor2.tex). 2003/12/15 v1.06 * New feature: extended color expressions, allowing for cascaded mix operations, e.g., \color{red!30!green!40!blue}. * Documentation: new section on color expressions. * Bugfix: color series stepping did not work correctly within non-displaying commands like \extractcolorspec{foo!!+} (this bug was introduced in v1.05). * Renamed commands: \ukfileversion and similar internal constants renamed to \XCfileversion etc. * Removed commands: \ifXCpst and \ifXCtable made obsolete by a simple trick. 2003/11/21 v1.05 * Bugfixes: - package option `hideerrors' should now work as expected; - usage of `.' in the first color expression in a document caused an error due to incorrect initialisation. * Code re-organisation: \extractcolorspec now uses \XC@splitcolor, making \XC@extract obsolete. 2003/11/09 v1.04 * New feature: easy access to current color within color expressions. * New option: `override' to replace \definecolor by \xdefinecolor. * New command: \tracingcolors for logging color-specific information. 2003/09/21 v1.03 * Change: bypass strange behaviour of some drivers. * New feature: driver-sharing with `hyperref'. 2003/09/19 v1.02 * Change: \extractcolorspec and \colorlet now also accept color series as arguments. 2003/09/15 v1.01 * New feature: \definecolorseries and friends. * Documentation: removed some `doc'-related side-effects. * Code re-organisation: all calculation-related tools put to one place. * Bugfixes: - \@rdivide: added \relax to fix problem with negative numerators; - \rowc@l@rs: replaced \@ifempty by \@ifxempty. 2003/09/09 v1.00 * First published release. latex-xcolor-2.11/xcolor2.pdf0000644000175000017500000027170510554446444015537 0ustar mohuramohura%PDF-1.3 %쏢 5 0 obj <> stream x\ێu}qv~a c `IA"EIZ{WwW)"%ŎCpOZU{ڗ't2p{+s%{|MKJ)˿Ϸ>@zyq6ӃGWVbl:?{~m-,.Zcݹ{K|Ƿ %6?c5־3Ƿ;ޓ?>gA&.UCHKaָ-~<#sV%c2޻x2%]J2=źdWҹ?}s:AO[|QYxoyפT(>8܍qInfclSt]1REcޥ62{c: 1#WsvЁڴ$O&RYjdcU'%DWr}(Tŵ˘#9ԡ!H+х1HGLP?`<㳷&?c!?XO1M-(0MK$*sor=}, ag=T}xL6p^\ *]J<}]}|+MXB}tg& BD6z~5}9F}tםvm-zAlSNpruOhQ0 )\<؄%X@9ݲH5g c?f.;sy.|VY{6$ w 6$S&ZJ^}C|?~,>8WlH.!neS61kusW ._gx]31YVtn4ް+[kZml|G^|cyq4 1{ox%tcaS $5D%p y )!#X wnp5OYG| bOӶw_JK}O\W3!J<⓻`yOSh!0RQ- O$ӀrL.n;iXAzU}KuMf0:0HB:$8>,8A.7oҝ ^& 2EmDeo|A" ᔑ,՟pP^[8%aq^mo ~iE1SX9ֿ֋0۫'p :_> K\=h1M'_sa!LA+-%3XߔĔxuhz㸽zte0cS1CeMD!)ӭ;nku@+*->dmchwCno^68dt St S D+<T/[ֿAn-6o L†B8 7[/qrkތpNUܣp4BC!%ŔNHloyc1DkzKn®€QRUIí:?폏Ǐgvl|?vGghe?sz!濣G+W~0v*Θ|~LO!{l$rߢD~?a|6?"]~<ۄ#zؙͻX_HOM>t~63mrѷ7Vߔ&3E9t%n|s<|UlzDO7܎7ܻ w/sS2.sУ)zbn"d[blh϶)ݷM+%;1ogX֙퇿62ayY^εGu\W\]Yx%=kܳ+*%OKkyK8hV+ t++Ow͓?=.| r= *kd/רڂ#)2$(} [BYr>qcđ(K9ɲxk&\_6yPL1x<#*yƦ%ɲbr1+F;XR$eKKxc2ױ 8.Gh$u0kR@ICS,,*2wVIR0HbJPd,,UIawNi%CZ+?fR^YFT3'10g#u2M.LDžh'y'"31"QC 7Fm(X "d LSf1 Uj#*yl j,."$xMXl PpƓf zDXxBlצ' bI>h2~HmJb,n,QaQӿHҔYy' AQ< _E}ɛ)iՀ.q@$(;,p;L*LHAHy QHSifkK+JsD bYT!AĨ^LÇ_l-gep\V|lI"Ej?j*"*!1!aW$@`Dx{L\%/ȋF2(0e/  L e$_F l~qiԑWXG'q0(Rq:gfGT &gQӘLPt4rgG$Tr" ,c$:Dl Q|4iThPr$:C-_qјUOGfၲ$2r<Āi!Պ3kN,4FhpLbqE!.Bc~F,49kaR.FL 5)J@0$WB:.Ec%'OcP3n ɢL!!_E6c&OKɓ$ P FdM3_mXh 1gҌ!^,8{)>Q%a16`8e$ BI3.MyDRjx\$Pr*͈J`0" #T}Kj: Mhf7#&I Gi+NJNy%Y)`8uT#A!:UeLQ.@Bjftt%Aš1 pD&^8xz}..U5m9jm@),L/rAPbό5yAIC nR+ ci:*I+9Sm4 ,UP)ÂXz Ec\?$;uP{F뛧_/!<"eha-Gu̶ ڇ@Yqgn O)!G^C,R=O3z^@noX\n2:,/(ۗ gPOvK#9yqDH5$-R޿@ɏ4L>CE 0~,Q^g#"_ zuc+r^Aa+zc y tk[/Dm 1NrҵHs0oy?D_Xi r|ŸTUlbq61P)nv~ CЇg]wt;z搼e5i`J}w Ap4-u}}p],SK<+s#?~9qoCa8y~ƯaoD*)ŝiz0Rnfp7wӢ˻3ȎY]ЅO)5rڶ{7r=bI (Ug٩ cqk#HXk}0/mNJI[nZCa{ʯ#s]NK?>ux3mo o4%k; -:7pRrGU?#!{'g"Θνlz%9ͮl7+φO#d´/endstream endobj 6 0 obj 6682 endobj 35 0 obj <> stream x_.qFϛ&& o ;H#˲ᆲ*_hcgyYfWٿr[EwyXq_?Ͽ=ǣz9uoXmm{ÏGoۺX~rk<\~ӗ_HԧO?zmmOkiz9~0kYYYloeIݎv[ixu{zU46L/rߨk}7-K)OVi,;ZgpmO SK?:>f'cnh֣cN~ g9c _?ﹿI{_Quxeroz'u̓&U1āX۾?}).{{;5e#4v:vn%f$Wd?[=H?>VoK۶=˖z(ޤ,]#Ve1S}8 ܲ18oe}` (~mQ8v;{_?l)q z+[څu( ֠h`"zH0ct9JKn]=n8jCw%>RටY@ihנ2:=XY# ADZ%0s9RZ嶉Hncۑ:Rkj2FSllOʲ]`  RP*?J8Hi=v'G+(gQmi#XZJ-[8={5%[h׭;O!1yHѺe]9N:\Rq[v YNA²[mgdE]6sC =NQu(vֱRo[I-Ҳ4;y.X^{.qh~2za$C΁Hߍ3{ZYc-2΍V[2˲q>n),A'DD};zS2CX79ʲH,<Ƅ-cOo!+,h`-3jLƪ^x z.qhG/LE8n2z5Z,!z;*ĦQ(a9{QYG٤ A޽C#}_cw\INrVq4#1Ħ0y[0:r y&@Sۑ5#D<(2e+$z,q[:5v4@4Sj8GO,rR\P@@%@{Όe MoKFNq|jYH[j3[̈́B#VX1G60B)SGYb5'QDsi2r26f%Ǫeҽe\58k!+,K{{d cW5XkKp#yю2M al$t}vk9Z-kr*W3x ,ha92~YO,њ^~k)ў6O" n$wde(G;R{=˴sٚ˜lz55a81abkwnOe$v,cղ:~1=Oo+,8ӪskNVHNckj >QvN 2ۢ=J.oZF 'p!m)TcB?,7_^~kZm,"-2o!!eRАu,Ha9%^GeZ@Y"5}F ;Nw}K}";)Q۶:-USaXΡrS&l#O%XkopѮrn1O6AC [)g-c+]ka6^^Ki]%%s"sECupeF?-8ce{r"2* 53ZH뾌qD:(UX&2dj9،}\((-Sf3ps>-q=F <1SmB9ZX eԳT }tZ,Z y57ZhK+ޣ]LW8WYjY'ҳZwP̱ 2~ie U]t-\`Y&=GHTϫVXq$RvQNrqb cܦ5\kopӤv2.K.5Jɩ@4m^r^:2C=Ƶ sQ@6/@F(H^ϳy; ,~&GrWpVYsK=Eklb z9v/ZY-v,#b)Z`y ,Bз1cK.(KנhGvӮXnjYWe:45T+jYƢC&VopIm>)Ӛ 54Z1:4Z>nc2/bK(-hs^2PjԨHLKX"k(r-m\UנhGvsKyYMYmCo Xbˠ8FTݔ&-,un޷qΦdEQͿYl}u~ (&k1 F:غu圕b,u?OlX΁rڰ*%coQeU  \ȱ2zMpSj#]rK2ZQ+iYF ] Z ,Oklo9-,^Nrg9 t ysWOW1G;HO;[3,uVJsrTdV^PP A5)ˎh ,:G=n$%]S&uݟe9 1.}C ,q=F r}DVuXM5FCXR+kʃR m+,6UPuZwAYcU/F 8Xe).ڸܝ]`uEcR4NrVh ]@1jc{v]BVie \t-\`#V"+^]`Ouq9cHK2ȉ.qX̄}pK.(kנhCDzr[#YM",AVUq򊋕5r ek,OEV=I6Q^qA>x zQX5GUiJ,z69M 圮䬬Rsfey)m>Y5Tukip "B=r?\`!hj1ZKԨ{g-CEVwzuZvA^x x.AHՆȁF-eYەKSo=t ge]ݕ= :ne6r] _j-/XQTw!D?p;ŶW#h,uTqeX }ށ,UrV8ͲCh ]w^iAYU/F 8RKnYzh-ceV}-tNj z551E*ϬW(:;jtBNCWb'Ysʨ`h *[PX A5و|o="6D4`onWqۃ'Rky[slɓ'ؾ˂[^rAYôW*=F r9۰C%,⫮6yHQ+k RuvX5\P` AkSu\Y툵_\`(GQ&Oގ :2CJXΡ²3:*eZpAYCl. \ȱ歱kyqU'M)>ZYCЉY]9VX6>BGtz :5F1* yb*1ܞ(,=9V34$l0yeTt \C /sq%e~ , G6?Hn nOimC2~~?yw?o[c$]ߝ! ~|~᦮;)?%~~/~y?~n2;'no.5lw}/ͤr_9LL#/_.?w+}?[)64 ~V͝߶cns\%ΧNu/ہ)tR?^~Mqtdrf8^Nġ?)~~??SM^)x=ҹRoC]Y>1卼n?"C~ԘM="~ʷ \/Ǿ?}`|c{?O_>TZ}Gc:Wv[]o|]-[f֥-QW^k?>j$8Od3yb.{C;κӏ~B~vqD]4:/+>` ѵK :G^Sҷe!SCy6R ], S~d'\U]t.nB`/I+½T=-a}߆yXl6"pe+$9](؟ڞw҉DtZ][?+N;E؇Z[~H2 zXMI<˝{zw~O:]k/es5ϗEpQ\^N(Sii.KzpD(*زآn*6>pV,Ëq5deHx Fm/.ԥ< /O`s/W|gex.KXZO}@(<5)-w]vK1zJ*r#l˿>8[6ٹ<9"NrPț$WSE>v!o Rd]g49.q^G(ׯ.S_.Y~LhZn쪢cOXgY|PQcEہ53 U \vb(k+h8D9:rDXy,M$^t7ɫP]cE-be+#|ގ(`áõ٠S{'W+UQڨ@e?1H\>0d':CI9^# vhp.5y? "/rs`*ϵANzs<-n\Ύcrz9ڪodwFni`{`6{zGUSޓ4y(bvНZ$qv=pHR¬rIJ@´RN;r[LB]錉Z\)*XTĔ @k}.׀~ Axʴn1-T)#LbJ˻Z(n,R,Ц0*xpŗ,. 1rzu)v}iH&RLϓZ\\hѓuŸ05Mj[QlΗPjΗz/3Ls*fʗW[ڞ~kʗA/U)_sԗh|*r-ȗȗ×#Kwr]R/KG:/CR[cq^2{R^QbeD8}u7/S^ -(@⭄S9ۮ%E YMۣHttSfbx uc^)Q3ć~;# <9v >b pJ+ԣ- -J|*=_bи80B95VcyCI5VxRb}c+q2 > Q\G}E؈:^fנ kPNp kY A YN{pMY 3@25<93)uks5p{NEFtp͘sl27]\s&F^\z Lp&Ny\5kk[0Ru\>.ֲ˲{aE4&![('dkۣh;pdkLIul NL p)eSγ PWJFS^$hqw:#w7M&\R+zZs u#lqlm~-ME]Z-l-l$ dksDSevB`KȖN%%K-e_)Ie%i%!Ѽl!Ya$TɒP %ϕj"W&P q&@5^P C5,AtrG&rbQո Xjs@5,x%ϖj<[lIɒP %dIɒP %&j,aqq:>ܸQ-`7:&u5W L"C0}bl?Qn1  *Z@\}xgr  ;p 5Ch%jr  T%' vT5Q-CW.ŽjAJ*[QjAr& vTk_$T0J4)W\i0i`؃b9,Vp% ̒K3*Nfm]o;/ %dv}(r'v|d~,@s &2kkBDf5Ȭmφ&4K?YPs}"x83áㄬx"9ɷɧi ̂),Mʇe,˒yCY|`)$PeUGJ,ϖ [:?dK3LgR?h)Lg-c -g-D$?lI~rbD0[Nԉ}>X$lj0[a$ %K3. [:>ln{t~Ʋ3Ȗ5qAz\ %v QY\IWyWʰ(}pO!LxV([䳨ħBϢϢ 'E!&Eb wJ| b\gQgТPbY($BgQg%-Š(ŤBAg͚MsÐɬȕh+ D$D\ > ȕh"2s9SDMJ9h˓4HxtY?5x1ttc, %Ys, %YHdi,0YNȖPOA1/@i+d rF0YN }PP ԄԠA$ҁ$Kj, xtҁ$Kړ5,A3@ eMz[tlͼVqXLHIKAfr!vkۣHto@kń؁-1q*b lA}؂;=Pbwфl;!v`˅؉-1=!&B `BL*Vb߆BL\BL\+ 1YY%BkY~NVzi䣢%4miVYK4:Ěh=g&n<3zfDhAivTihMn9&f:!#.҄di(YwYt4rb XIvkbi쮉)cԉ)_KS*θ۲ 'F.`iQ$U{C[KSO]jס!jv jB/}iy ð|{mijG7/O;(@Tp% Ӫc'LaMZ6Zˊ{ĴR wOiy;UHV{@1aZ^.'L ALd0ZL ?aZ/τi,L}&L 'R`Zm ̒0qp'LL id´t0aZY ]/͗f~ jytYϖ [a$Kɒ,39L`i-Ii, , [:KYdKgi-30Id@HID$MMْ$ %IH$i.I0]tIIdKw۳4-AS$ uMzZrh͐LF:B:L+XLń0=Pր~ aB&E&CBUUw8!-0!-,w:LH5E% r&E&2LH2쮻;:y+biFTbBZb\ i;59&G"Ya$Jɒ( %PDiȺZ.a1%u~e +ao"E l2ds2a ħ\Ђ ;a.w@ 2T{pv@Ek2d-a ˰Z. [ Ђ ;2PЂ ;2쀖ɰ#Z ZjjqopZž8- ozV9uZ('Nkۣh;N!ɯB98-Vp%Ӓ%uZKi䝉uZKiI:EN索i5RuZMnNഢG5N AdNkԩ봚i.(ΜGz(ni,NKuZ8Ӫ:i)qZ:LN&Nk%R Ըc<ҊlIQϖ [a$Jɒ(g39L@i-II( , [:JQdKGi-gb$4Ȗ3244ap0 %afK.xL0MK4̖i-vdK4Ȗi-5LlyHz\r%v SRY\ ZypXʰ5Rl6@)X.r) %v  UHZaZa \AjbIAjy J| "Z \Aj%!B쮻;Jء+b'NjFbZb'\Ij;5)~@\i"ɰ$N+%K4, D$Ld '?aOx:3')Ya$L90 %a&K4, 0Ya YʄӸߎ Viqi_ Y:ɒ8 %q&K4,0Yaۑ,0YdI.pOI:>Y-Wb7:'uʕ$ˮn+؀lJ>\SJSbgĎR%vV JANVJLV:Պ"DfBjQjբdBjQ]բJJ̍\jQjR%&5)83|NdwMoc#[atƳ4Ȗ_I< SK֙xdKiRO4Ȗxtyd˙D DLDM8N I԰H0[Hd Ɠ%OFԤ\ Ɠ%O:%K5H$j,3QdyGz[cÎ JH1X)*1aPbV^h,E9dwBLPD&Z+-PbZTbT!ĤŤ6 Rr)Bk{HJ Z+*ė 2K1h$Š\+ZĤ N^ւ;:Pւ;B촖(ZGE񘎞kZ+Z)[lI&%fK"5r zT3T(@5zvc=PS P7jsSc׌) *U8zZth͸V[,Kk#5^VP+GvV9c.n`,;A4p !Z4k^qVk=)G$(ꗽq`gAvcMVkU=gi'}V V+*пgm` Zc' `Vjn،jW}:~ ଖI!gTWEj`ƉJRȰmAk ݥOIk5x5ݤ l GVBx$RlI&%fK 5,Ԥd &4Sҙ,0[9ǐZ0[lIْH s#-0[:p_-0X25s05-0[IHHK 5.DRlIْ^{$QlIْ]N_ 5̖qqס:>К`a7 k ŊXLń Pgb5"BȰVakˌrHXH-WaZ>Aj rtA&BAj 2Lϓ &E!&tBLRJLR++oJ VBLV+u t D$K5,Ԥd Ɠ5~dI&33%K5,ԤƓ%OjRP@'KR#,A0Y:n_-A0X59v$K , 0Ya$P@ %&Kzɒ<'K5,5PrGzZC v(1),AaV\:Mr!jEn?Qᰈ\Ӣ VN:LN:MN:LN*;ӊtABiQiӢYi%: *08-apZsa#\Aj%6Ru7ar,0YdIɒ8Mei<=s9S1ɒ8MN9Bɒ8M$K4Li,dIƓ%apb cO<Oh+xNp*xNNGM\I=N_4̕aIב:>Ț9$n%2 *0@Vl"E Ql$6;.!dN+ɰ[␖˰!TIir!: HU{pdA r: Fu'&2 H*L*TEVaEUV01-0I0 H`iz5YbiO?u ^}a8lC7|o^% ɝ󼎪m=kXmzQgog̎mNY_e*T1{W^/9{cl2L-8jMWHS>9/N,x/K}r';SV= ;ڼڷW4zf]O qޣ|5:Zt[nc_6`.]`m7wzVn}_{_{_Ok<%}p?QE{AZWJKX }?T:>`IrޮIr,JOB}p6*|˜+ǽwuw|{ߐHW,ʧNKW߿y33uSZ_s!ݾLnE1}Iwd:ozyp_s@mGV fg/Ca97Bm?Qnk?줒˾zt?bendstream endobj 36 0 obj 20311 endobj 40 0 obj <> stream xܽ[/u^"nT0HF0b=Bσ$˚Qɲ.MrތSL=c:`\Wܸe{ݎmO&~?}88ͷ/u/OzQ^/ս|r\5o_?o_~#3k))mdg>ףll~U5O*ӗ_R^>v#Or?_~;ku]ywS\/TO2=]ڽ ~Fis ?_uOQ?'9}:O7؟sKǧ_o˯~},|~ۯuu+cm~zonWJvQ_?IW,q]Oaa'r_ߥo}̩aB{_i,#׽-RU.^K:^J7/tz?olmw6_~U\_ Gl&OsW+NbR '8[w6Ϗml?،'SD'GG9Ζh~W?\PQM>~k`M}YH;4ggZ?8˂R:ӖƳ>'&ym*"^S#=БڑZh]&gwˤx>[;u Ov޸k<^]沅|\ z[s݅@a=/OH a _B >{G8s~Ex8^//_|/\_!/KGyӕ&x=j|g,Kictrז^/dI蹝u'&'`%9Wer;֔S#&'.)n{K`pMn9ђ'ʓ+-%%Oirѷdzf''oyy@X-]~''grhɉY|m.MN8_q8xɉUYosߏ`_N!DwI~''ܚX_wyrI#]n!ݎB@s;NrȺM}M& [ߔXh-}!L%%Ǟ6Vk9 ӳS9N:eHg}.c {nwD5UD MeZ9XEhIcr}Mc+ocpH| *Vކ=vc o!צ?VJjNӳSx{ӸA\UQ^۞ pαSxs7K±7w+ct*}i'zpbշW;Va‡r]Xʛq&› =\KE8L؄ۋF3b*Onk yѕ*ʛ' Bp_›fkT;Ž&@BtE|eȂRYy1WIHGY .JtDb,Mc戗 j HLNeZP`%^ezCũo9M>՟)^=\skx1JJjT W$f?#Vm tOBvFmloWp$f֔i)Z|V 3=x{s09zV5nTK7OBdt%m<+ 3w"2f=iѷP}̻PW0$Dl)?XY,: SfLޜjri4c}jRD7Ba3pSբfec8`IXa|y(Lj0t2c&-Biq*\0uxUP㎃4 C|( Eh"n{A;L20Warq+ Sҹ+%#ee6m,,̼PTVJ;3}핕H:Q{_+n{%aae߃ei0yށd+B]UowYXnug,ԸuKy43W,)>3;0H=]Q"umǸ!t‚$8+[:ey%Tuh.tUgp,]2ռeaajM'ၕC^? cR`vEYyW?:0 +B]mݴ J_1xSs .W*˽R7rYx`擉كeEd2%\Q(Yj6Fﳖz+JmR#y3b/]@p6UV6mqkm$x(#*3}mpkQ}m6OUV•=GJCz3=4FJSȬ2uKB`:m%!0< R@^J$ĻPU-.+~WvKB6ZʴhqY.,. 7p.c%Pݨ,. >&vfrm}YU%ެ25Z\V}`Dgx73-Z\VE/ (uKB>`n[|aT^h}WD#dxB|2+SQR,xf K+JR7,Fn`rE T7,DfmeL^W@n9*ʷ(6J^5uE eVG[D"S[]<Ӷ7=+JI[]OL VW@e<v ,+{"L6XWVDo'jq r:Jq4ޔWV6ܟ`I zaW@ J5wY̵E%R]Bʤ`wEEwʛCr֗`wE azBd.gR8:e!0՝(Bۯe!0R2)]Qu`߳с(j{ q'Iၕ@+J _G:6sYX3)\QVj.8vsYXZE̔sEYywm. +¯\M6ӤNR_]YEJCSqdR,Mj6Im.+ EΙ撰0[O9eevzdRg$DOb\沲Pt$m撰0'=m.++5o0WZYY(LWROφPuӥpT2Zd*[++ E2um~k%aa}YbJBѓ?P %Kڣe%R*㒰2FB5zrBG$,]+1sFBkL]㒰0dm W*v.ܹDfqEY(ST'SeqWNÛ\"N &WjY7޹!׶>m䊲P6褒7,, Obf&W/\&eaad8R WIYPw>pEY(z. #_D f߂eOGA?'eaaH_Fwd s&~+ T>T0},ToM c!2{M)( 5v>e l./(گ] Cw ~E_Okace%P\^p[) XܯKr*YU}a_[XU}͌_ӗ߬XU}͈_ӂUWAkrp" P_uzȂi⪺Gq|M N_{ ǂ⫪h,#Z2V|, EŊ:`H5)Z*V|, &GĊ"#Z"V|, EÊ!toV|\ &GŠ*kgD &~$ j(*|‡<,#K ů_V|U_*nkB9e֯(/_4_S‰Z_u3 gQ|Ug]Fiwע<*%f!2Dep>޳RٟY|pL {Q"'mLwW.ןR7]%BeX|K(-Q ")nD2uxB`Ƀjs;"J5SC]%R5rȨ Έ}3*{{Bd[bJ;9*uxBd:3gCDJ%y{B`F<3WKDJ>TIhf3]߃SR"3?%Pra ƈ(yHT0įbD?U bX L_%nC%!2).1*+LU6T"#׈PY <`=:e+o(_<<QS"73SV"ؽd!0#[)J [Qd!0hl(mMo$b;/DYHx۟HF7,J)S{0$LP&GSJ2L. 96-35\V"Xܛ@B`XKƴhrYTcq_@B`!1m&HpjDwF3'Ze%R]+CFJvKBdo-\VnWp$Dn<с@P4DF].+r.W| !0xtjD eĴqY >a!2!ǫ Ja~%l[0F@w"[\ܵ-~#Jv4jmsfpo%Pm}l"%P*q ̌h4;zXYCƔ7VQuMi)f>6J6lyB`*sE TA#-,&I޴gף { FW@mxm{Ft1G0äQ]ӝlc~+J7=. pcR0n]<1%X]QNrVCZ>SVyB` `uE ʎBHL%+Jzm. *RS*_Vqʘ#X]QSiwZ~8++8]QTi~?<+N⊂yLKdH~L}}k T>G.}+CZGU១1ssU@UroUE:ƨ6~po_/~tw/[^q|M+=w_|_42{vz c vUm?AoǠ z;ts( c 3{+ V|ފ*eގ ]oEގq|oE~|oEqU)XvO_W9n"@o0eCQsX9ȕ*&\-[Y zvz cߓ*[Q>%{Ѯpz+v"! c\?D9 [|Doɷ`[8Jͱ?\oEα1GފaVm_5?mVկg6<߉W[|DoK9-zv\Bު_boUqUm zKQj~gz+v|{+ c|{+ V/pKV#z;J{ G[ eCQ+TqU$DގQ #[S[QC[Qj~ezGO V|?㖬 c[*p-v>us( -UR#z{t;'#- VTqUAm/QÖvܺvw U~%U[|Do+(ԗ6ޙiGͪ>wu.yȿqǷ ܎t 6n?4vz~FXeK?/cjs{X3fM[fj(ܧߺ%W 4-Q9jz:K<}kFr`*F)rx^xlFfa$K$Mޖ˨5=Lޚɨly藍41-Q9jz0j-Aiz_rOޚlyge/*GMҸ│a#_4xb~Iz( GMRs͖~!I=ON%4EfcE`zM$7Q8jzI)4Q?,~=R'iLq3`kxG% 7[;ĉE»$ GM6yVbnLTn&JmyQ3vkVr屋_Q"nIT;?By{H-Q(n:pRшV4ǜ-Q9j4HDf+`Fr[r|JN>nb[`KĦrpbo?ofJN:nZmL Gͷ64JCfM!%P8j񸊷&*6[o6Lf GDG 4n: `e(5:B#2G8su͉JxS &(4|e Gp<5dfs5aUp|^l&BlIW[Zls0b蕴A },l7m *TXucCtZ~K>4禹t󁐗ƴ=x$ L(Doc `_0Yfnz`N^Zl ي3Dkp;75Vߜ-榿 {}f27=b9f*/xvw$^PxqٿH, Q[m?f$ʕ41DKX>rC mqJ{ߵ[jk8^rhe};:Yj~նY}v#Tb˜:Rcq/zAhW6|*7#[9 /WJ6 H[/!v܊$*KTȋ} (@&E_Sw1 0"P35 .P9zJW4zB߆Sa0P=zHw5Pg+(@ cX??zYjF?f+w^.OjFC1OjzI<-O}/} )?|̂ۢ(1ԁ;1Ok/!Q8_#b-B8t~ \/|1Ojz"%)/p^} _B: P_8/8?-Ɨm.O)Т/|ѡ)\tb _`[cV=d)/Fr5OK+h ' P1| }Zy.F5O[4TB7(͵ޒ6Z9<> ~íY| ҀE=ji<}| &w3O8W?H#-~F#ܖAբ6R˟ޖ'1[>/vpɚV PV;HA{oS.vpICܖIy[l=b瀜\O Kl-IckK56ߕZ"Xʩ.pdB3H-__8)Z/y pف |}j 7Í0TV3rK> r3{) tVo% O3w3=<fa?!"x p3!HC}vn3))PֻudX}unx; R+ܷ̭A}sn8?F\& >;nx)m|'Yk3Ai qeKB$NzOkJK ;z(q䖫'R/v p:r2  7 ©LdE+'3iu˃f(Aux2:amI'h%Bnz RP>ԭ-䖯x-'| AMOA`|C'5=Aω :%a9~Nj:"rj39'@pP(S8kNxV+`J̜j 2||9j Df"oV7 7#B Po8e`<9ƴ!|ܹ 4=?Gq9|5=RPUrׇĺP8D"3s:Ciz6+q3/qZyEK8o]@ķf @XZBiFB5+N=Xd%f$H&5XY_,SG8%Lfc:EO8o@f)O81LR(&DEOHXe&=$*tkg^;yBnF"[&D1@Xc&@p' AHȠ7iyY6kv7-f$ 7ܤ~by[ԌDgouS`b}totȐ_mV!Rأd}Ije[7<6\_f 3qV?!Q8L:*AjjYFҌwk\#o#l ]& An͎&@np,P8zhgt8,{rؤږj{q97#!Ǧ@*pUxƧtrݽ/MWos roKUrؗ7g;gI5]Il1)&T0FrbR@MWAbR0[ Ԥ*8q2i2nwOb \ܶ%8q+S<0En1\ȭp{<7J3 32Lʏמxf 6O0Z]}- qЅpB >$ks4="2J rʼn`˳A pϲBP' ЖgY B/g| rjzp.f+g%nzb"<Bf_r"*Lp)%w! oοq\R˫ɝ%}nzbs'~`Oˋ8>;HR{& Aj2.%mKAF B[%@[/ 9bAjR#%]ngwFT-)ϫ?%@Y4-j}Di p.vhm>G";hC,zIbpNΒ}q6 g ,Ѕ 7=f\̠ -@͙AnzH/|[>)Mñf `I2ԯCwoK>g7޹7#@*bd4=qnR+-_>҃: J/K4msJ%Z=28jMϣVPH*>h鉴Uf7AsZ`?Zoc!A8u j!` ]4!~}JK^M' U7U@MY*P} ֏ oPYUy)GQJWEc+_r}ȑS0**V#J/PaBPAEy)GQ\Na+P%SVG\( VqT(| Xr) + #OJJC`E**Q\Pa+_r}1T0**VJbJ/SaDUAEyh*GQJh*#aUVSiUk{/c^8J@jFJ/΋Tq[j$xv%[sGǣN۲%ו[󫀝m=W%$?y[3mm< Mޖb$ 틎sx+ gہ}I]4y[$x4G_W<iel{po}uoƱVFζ+gH$xJ5)N2r=x 9L­d8x@z+ I(7C ͜qel͝mn˼^}r *wk@ sn Jlk-BIK4J9*/Wɘ_9 'H$ o4 X@vg+#IxorH$V+#ge$ oXF[9&$͏5 ~kcomX@.4 O;6.$!I66@a9<EcIBBUI[KUZ,D&!A0` +yE3R0,Dٽsv :5XL ɋe7ukPR]-Jõ 8YumՂ-f!2XajGu䍰2ds:[$/w^-@JBM3Nr r7. yMCޚ}] .CXL %kwVۑ{0 َD%2Ȑfq2ۑQso 2َِ]@.@HL6,(Rڑ8=k !I2dZegGsK%ː2ц`Bކnx.@Z/: ZlR=-Cv ߸0q!] } aeH6tn ,69 <. \lK kΆr;63]` bC_t 2ڑ^2 cs܎3U !" 6{N2FBNK&vr..v.CZ4D-rV eW- }50Rq^@T]a$I[ !b%WH!j>iLVZ/Cb>i]C.o>EXq+s6MFkRͧ+trVv Wi 8/Cj>a[#LtN' +ư;4=EbǮ6Fj/ĸiS\/EXW[_e|~ƒJQ< O!Cdfsgcf#ٚŖhė1$+N@o+1ގU#1whԗ,x&ޘ'=q~$B ({ Ҷ 2.u{R;ܣ߶тd!5e.=vגf V [ɛOj{b>h`>Y9>'=A=+Qd!7]!`=x֤^,C/o>Mr6o>E{=Ƥ v2^|ͧ.vAVR{H$!uڏ7yI(r\{F4>Ep&3s9mO$ "d0EXL.+9mO$`&^3S'j$!̐jí(s8mO(6I 3/8On{bM z<@('K20CF3S'p\FT?E n,f { Pb!퉐ƑaƩaPdžBg uRì|}%6<89̐ `TwesvDK[/3Zͧ!'|cF䭧9XV]–ĈPV7Mzr!Sаʜ{r4"xnÑbPH^ͧ).c wf(|MV'Nwl1C|fNg> 7Wttg'Sڑ8!G2 IuNƅur;b{$g̐]dd[uNB^-z #NU6hx:Yi{k!ԎJuz0m'#Qy 3Dۙ23NjG,8d!2pg0b ЙN Sڑ8-G# ItҝE2cH 2SpX=r !2fmFflGx2id~= $3d#ᢷ8L"s@2ۑK*!{tɰs0!e[I X2rޔu#d2Cn:-Q 9 Fm'#!HW!o ,$4ݘF(3dn]3Sv$bvיl'#яy%YevNf,̵!pmKuґ)Bdy2CRYwyv_+v J+{V!2NnGbh%O]f}dJ)M|'#x_ Ifi`NnbjK{^1fvT伢9f'cl>qnw"Dfk i3YdrzKȜ5 $j:JbKT/!Of+VMݚkf'Z&ٙK͌gM{]s,K~2ËD#δPgVB3+mW9gVB3+mWYgVB3+mWѼkf䭞fw֎ۮ"{+'κqUުjNg͸*b"` Gi ]EnKW;wmWT瞸*Xp5wGv-!#Ѵڮ"ÂٽͰj*rz‚9;hj.>%,ݻ j x@mW>C*g " yjgv3\lۮӬb]Y Ԭd]'Y PsrpUpj(HJfUmWq&=#IT3gQ I )BpgG,+BcӲ;r; V3ēv8$ӟE^ i5>ffOkYr'un{bY$!k$?^Z9k<H{T Z3OPeg v#E [3\6yk)`"5C) nDžDf`r!yy 2$v͐> )cfȱ> 'E5X &k\CzXG3[z!`3`x :TvD+<#7?p;1#IlFc@/Ό۞8\L ?UUS U϶..T !3%r(!~ԀKR !!0.볞'gf 1^fl;9Ka3͝8͐=ōq ٓ6Cr4zBnN8͐rĭQ 0Q3> 9SCDĵҢQ_S17D?2z6EX19͐=œDFGR9z6Cjmqmmгl;q9wZ% HU# Jz}Smt!MJvGm@m- YRl/mmHO!oq^Фy0ӷ!=bܐ%%}C)5 )t>'&orCKpNf(>ΉSs[&Ľo ?11oCv >7n CxiDZB%:7e&Iݖ ,)z;M9 X`@F襑\OsYoIeH8r?yr$]Nl5p1ȘGUГH8`Ig*N]5')D /畷%!KJ4'~aVBSF?riq[!4hG1e1@Dwr>qF@SLM}:+Wzs:넽+rk3,+R\x KV*DR[Ӗ5+^>Bz-fۏdt<~tn86suofEJ8SLJ!u SN/,@9X#긨6l%H).Tye #y.#XYɒ#xVӜIX#]͠;+ FVOCZL21+ 5{`IXnC&|I B_RߦrQs'3k83qo2-pVJR n CZ7jui$)$B41t}16DU&-Bk]o \Bhx:S"ɥ!V3=oX.YX6B mw,,̱*=9`0}c!!R"3k0;I@,T/904mat0m~qt1~?о9&q@yq/ C5XH%!t%5oyYX}oKCZ-~؎t02m u}08!TViGsEȝPG5-j-k/:4D¸=x^QJS5xyٹ[TVkW\P] _:WK^UKZ@man˯Cz*rQ "aext2.KSʫեu9Ht@N:jta:. kKy"$Nq\m cti6>5:]e΃+1"Q]V[V]g4h Pm'vF.SuSmUl-=dVG_w40M"%^׾Aތ79704bW0$,w@o88~%|(qwASp/ TSe%#x^~=/+gOyIB % VE8+%!0j*'wۼ{OJ$Zxէۼ}-XG$fiws{y ψ)#Jbw,)\%>F / Y1+J|3.:e!yx)Źy@8:)r;3):栠Bq|A$(y(N)h )T Z5K J5yY;oj@׃=H=HL=҃m6c+ Z_%PrӇ. gNIx<&R,&](L "3<2)x]Q8ONh_nL+(2Y. qɡ`u/zE[]YZ<Kq=HX$qxIPӷ!G3%\QJ5mdҸ/}.+JNRO/q}.+ sIXY[PZ|d[CڣϝDs[,Ben3U%!2.O:;s>b >ښI*PDjd5Fb4zd>@HY*9),LiU|P/5),LD}PDOrH@S 'x3GB!Tǝ|s[zButs;A<. ׬qйxIm*ə}]mr|+B^|B)z̬DaqEY(aT9mQ&}N*=. йxx@9k[T-on .W- eaaMIF`rEY{sل8MdҶUej0DjX&w2}S2\Li`&1HA,TX&%orYXоIR*{BdR;!+Bu#F:̮|[2Yb^FfrOJI%|z80Մ nI@g Ohhzz8{pS^,V2,D&aXˈ(W2,&g{ďeD <,`*|,B`\FcOB "%R.gs B`΄ѥ\)LGҟ^%R5B|% VHv$YOϓC,<1D YyzQш³fZ4u(uJB`*y0# ڣ̆F2 ʋ@L`tILhm$`tCJGtF7I!@膤<7Zn? V`$ Vi{8b_~eI!3D1`sI1߭VFJjnsKB`x՘m.+~Ҿ%!0F b%P:H Q{$DfC[#[czPYmn\`Tlnne`?I>\mn?Dآe%PWa酏eXx2(r$ L2j<׊=|(ӯ ;QuX>P?Ѐ%Su`P!EJZ?p@x"DB`.I)#$"49]S"%Pa=`DR\P$'#DJrz2WJ y;(q9Sh4}}wqKJ"0ӰzB`11Gp;qZ"@mu_.XpWpj|yw,3%B"I.  fJp*}w,f+ 3Gpx rx"@mu[;+]DrQ$5 `vE_T^n?Aa vWK rĞJ"Pǃ26Kmt;DJ"0׃:aeqa$8ʊS`CbmI/P2*| P"Ԉ55&h{Ƿ&cٷ*q͟ VñVP Ԉ~r΢CТS?NUSj(UjDNUOY~>,Z?EPE?CFEχE0hP"Ԉ55&T#mTT"F3]?B"q͟ PCP#pը~rĢCƢS?TSj8PjT TONX~>E,Z?E+Z?E0E?F0EtEχxE0hP"Ԉ55&|JW~Q6*X G)Z PCQP#IيM`8IfO$Ejj&hݬ)`5h5*@ )B&'+~>D+Z?EE?sFE1`EχdE 0I_Z(Z PC1P#ɹϧ`E0hpը`5h5*hc/w,N_B\(B'*~>*Z?E E?3F E1PEχTE 0h5~rCS?NPSj8AjTNPOT~[d*&T>x T~݃E(bUE(M9u]cu["?q/p\EYxAomɊHqyaU$DH*<}["Ҭx_]"ӷ*"M{_nrfNߚ4 %4y["88TONtے VﴡɊȒQq4y["xXNɊHasN?1-YIV䍅ך/I,E`I|",+>.N'pk"$tN(Ar"D7dH[%M^"-\YVޚi(E@IxkIg[IR4VK"btk"$á8e%n<[%!;(s$e%~󬒻Iwz1FImъȲ7{Qy9S"$c7޳VDp\G_F+B 6?"tsIj B^ ۲,4pde{E Y gKB3:5YY*11 ,+>YB)DBpC=dED KNLVD촹`EdX /Io"{ay+"t<]-ǶCpgƷ3'1Ȓ c a+GQf_/֏&(}"Rey r%Hoî̯0[s[yi!Z`DzL^~MP!0Eo/J#q^gWWEVD,nԲkD)W3?l.JԱc"R筕m$J"Pmug+"u-}GSR4Dlk&: 'zhE F^ܜHik9V[>otdWD\`jw(dtB`wh*)q7#$̶*G4x-BdN*9c+"VGA͘еXyv\S4HHsD5LXDh_-!!0%u ~t<TԶW$O V"5/o"!0!^Y?rA,D%L}ue !2L8 Sw\knW:NS.w^Ro4m}[jﵫhеJb!0.QW;( ʋ0%_U"uquk[ȹ:)jI"@j}_B*#)B`2Q%L}@9MxEj{_t"WD.eʾ+"t(,E@by_`\ h@[baaqm'ffW8n WD(^wY]7qQ;jօQ&wU:|ƽ5[\@oj"@׃˥aDžъ@ZӸ7p[""ɝ؎W䊰2zKQ*&z+`_:ef+"VKc~̣͎"aư'-=IR4Jp:-K#!Pu5Rp-7u,EHWi me"+i;LьI"0i~c. NIgh-R4Jp_fw Kࡐ(a@J`wYt.gё4E*mЧ=(^?(/]zl(Xۨ簇JnDK=X -Z^Q2ptE{87TE#/c_DI@~͂Ew뽷?m¬6Y,) /׸E^D) t Ө mbb$A>2p*% 8䠪 I5 8) ĩvONQ@Hj,NC/fS"l!qtmS'm!q4G_$&HU A>2pfH@`sCcR)v369 8d(A-!KyqeC4Fb[Ww8QҸSQwv8T;sa7Sgڕi؍Ĩle,>2pE@u0BN.g6sR(6vq)DP y |MϏQ @2Ӯ317LՅ>EJs:Ek}(%>2H[`Q5l0<2o @2[9]Q5>9Kr$&nvEkȝ4" iz^CHQ=s̙\&7e R̘p.Lm;&Q IxfEEu"H2[¬P ÛXQ$q_jAfݍŊ1T]!VT){B(Py jn$לEpPQv~(ЖۇiWpp$S6L-'~h$S}]!ه[ҝB\XpIvY/<>ɬi$StpіAFri$SejA9B(vIO(Мۇ9%B5>" 0Km^2i$S(Жgۇe fH25a/ yyP!&GXl0"ƒ&H2.?d 3= YӀIʴśEр;OG[ڇn_ Rhm ka^IRp} 2Se}d{b fbǯ{y/YzhsIdhFE$FQ8$Ρ^@C(EHyV!QX 4RĪGQZ`5G<#ѪǤKM9MXUI,itĪVX͖FHjQiDQEfN]$VU|c`5K"G5VьUiC`5Gh<ybbU% SfZmXz6߷<1= C:Ӵ@kQELi,yzabU5M+&/0ĪJ"V EbUi9H*-b`5yO$V0QX 4RĪGQZ`5(JG1X 4RĪGQZ`55}QGbU?3=}?GbU?3ibE(x;[( T^sP3p&)kĩ$Jqף,&ʢFQ5? * E<`4/DTTbu%8uLGQ%ϳQΣLNP QhGRA>0H QGL氢FQ28zS˳@0pU) Σ&EyT>iVĉ>[Qȳ$( RPݢW$ d`M d86DOJ d8s^WռJ&DXjMd8EaZLH:Bb( g}Dҡ( h_EAދ$.:;ĩ{L**Ty/ ,2. j^WZ_C}]PhC}^fW*CQ3oߔV&F]oeREJbߴ-9g2=x;\ (:qi30y#ϸLEzHgq8) b5cQe*S1iV:Z3rUoO3.gc߈E\ r%*;ġ=MJq8s%*Z#r:iELY7i#.8?yp( G s;'\&{Q[v**^$s1sy);Cih2 Eq 18GS(`uLYG:D}R܍6mi4&x] (BT PgmR7"!q@5@-0f>ܙZISEZQ'џ(!OxOvU3M$z[8[%(9M8UW_>EAW?}xkr#I43@{ʝK9&q#niʍĩrSO ˨9siu#A`Ȥ' 3ܗHp1C;՘HUL@{̝mJR(6sF~BQ=N]fy3M8V4;Bi-"5AQy0N^(ZTU4( UT5S٩wyeI%j:L"gw#I}n?csu#P:{4ܼӞ?RN25ċ@^)²(DgQhLR^gׁ|rSziQvעT1f[*$_J:0WnJ-1.[*$REb^)a^GFWehp.JjEBE1j#[妴 mEBUk>@V!cV2FAZyQv6T1f_*$_J!:2WnJ/1._*&REc^Cʨ56{40rx.`*&V,Z^)f^GbFMF?&>ĪQ|+@^)(DQH*/zQ{Hkl^idc]||UH蕢Fu jdܔ^aec](UL fFbE5JoYcy_|`{x=}rXz( ]endstream endobj 41 0 obj 30467 endobj 4 0 obj <> /Contents 5 0 R >> endobj 34 0 obj <> /Contents 35 0 R >> endobj 39 0 obj <> /Contents 40 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 34 0 R 39 0 R ] /Count 3 /Rotate 0>> endobj 1 0 obj <> endobj 7 0 obj <>endobj 32 0 obj <> endobj 33 0 obj <> endobj 37 0 obj <> endobj 38 0 obj <> endobj 48 0 obj <> endobj 49 0 obj <> endobj 31 0 obj <> endobj 29 0 obj <> endobj 65 0 obj <> endobj 27 0 obj <> endobj 66 0 obj <> endobj 25 0 obj <> endobj 23 0 obj <> endobj 67 0 obj <> endobj 21 0 obj <> endobj 19 0 obj <> endobj 17 0 obj <> endobj 68 0 obj <> endobj 15 0 obj <> endobj 69 0 obj <> endobj 13 0 obj <> endobj 11 0 obj <> endobj 47 0 obj <> endobj 9 0 obj <> endobj 70 0 obj <> endobj 45 0 obj <> endobj 71 0 obj <> endobj 43 0 obj <> endobj 72 0 obj <> endobj 30 0 obj <> endobj 50 0 obj <>stream xEyPSW#!UL18J`diD#F (r.T-NTVTu`Y" ԔӊzsqhP[;g|c,JQNU˘RW C|Z|`L @ ikS5&} e2I_53[ue oS*1u5˓KK嚩fFg֙*u*߮Й:!_d4VG.U(/A(e ,ġ BP(ĻLԈl6Ƶ]/ f)soDITՇO~`$&r)c;Jj~ XOY*GzL2)L¸ ` $ A`OpJil 5TM !b,s[+37Ék\b$zRc.hS w ѦWv!hk¬-j~BȟndNBz;1보g" ؟r扨e"N4W1m\9H N7k>[P.sM=i4XiW.d:\Z y$0c_TQWk*t{w#\T.!t.-M Y9v7ǎʺ{VSG7`v( b!\f _|L>b{޾ BzіkⲪdywϏ81Č0@k~a?a!@䕟Iuֲ#"[<#lDf4ءw8aQx٭]=E1I=yUU$0zS48l\)>im#% 3Z".;>;!'0mݭ|Obc!@v&.>mAm]W?&,5㜖6~"0AE*dNSFCW}'\~Hr`۩!;GKerI;;Jv]FVUʰ= MbIu\mMP`Q>=]룰M\ endstream endobj 28 0 obj <> endobj 51 0 obj <>stream xV TT~ÃyO-k!1aJШIjPI MD(,î;? 8l28 1IҒIԤ16Msz.g9URmQ+߫g{@,+w߅Yf.ɰ*/i sRv$?tc349)5yG61EWyzEM&@xfdiri49 ܷ<3Q>,Ky) vg$,d3032f%3U&f5YD2Q:f c0L3i ǘU$%U+6/vcqq\Ǧ|횺e|yVT%3o1(LJ~b<\5EPJ;oyVr,/A31n.Μ `jk0Ń$Z z0eDVL޷Tp>{>)BON "~c}8 BR1c" $,J<9]__* VhOc ܨ%(=^Fs\8t "d/ Ef}Bk8K$d 9 #p''Zp2#+޼ !ƸQ[d]B͠H( K> <ˆ-pA{6"B'^hwjcr!;sF`^rp:' + W_,5;'R]fFl].Υ= aRz2N;%N\Vj͒<9g5DC6=kp fKf,SV]\ MP[Re2TQw]52H y,Yq$zN{qAWn*B23l ?^lW?|8Y̕F`k&N6qKݫBv {/D8\ G<<ލhgLKz<2Jȑ ?&4߈PS8vfGuQ"\X1ΤI0C N 1A-_9dfpIdQ}ˎCmIjQPӖq*zxSS1)Nq) VH{+,F &3Kۑ&T#V芠njnq޼M"\Q .V+]C=Ҽ89xIjS߹qme M귪˶Kvcb~Z!W驆|ic݀dF[j)s5Q TbiF[K+EJ;v5uVm(M7oeߍƲnU|-9]p:m9Gu_}#ErRcmĬ7tP647:19 |OE;vJ9i E{ S,8ι-Ka!|>`uh.wSCڴB2 Olz:&p^smMSyB5a9e9֨ P\,M0eR O@ п^:\xOʎY47JD}_ $2+}fsKh5XC F2F?9S2]C- ='>FORmhl7mBoɊB_WGb" E^UO~N4ߤ1Uc8IMW',XhW#SzثϧoVoׄM"53/`胬2|,FBw^Wjfv^Zrw)`{)(y8 t,VG%ƌ;e+ nIeK'ψk,P3%̅B?[Ej #xDL |ĎG_dW8B ~c\9K=5 2p5@p߅~Ivpm5ni$OްM[%:5 i#$@tE(|(rN_A5KsojAe]P[!MyXH`r׶{%FN_ t&/(.SmYuTEK {U Ho:u `?!s'ud O̘tXkټo ֛jufhZ,  SyjuZݷR6|}_>kIM'1ZF+Hq@+[ s9]0slCpm!Ve:]-]Vq9'-ҹ g3ϲ:~]jAk߯Pz9}#`;C K#OJ0Sc CZ6X, 1+KuW|gG6o~mSOіU^Δaw{A+:mEe@^}{`m~G[3Yɰ;bKR)\f-mP!?GtE_5&sIDC!.> endobj 52 0 obj <>stream xcd`ab`ddds 4H3a!cTnn }wnF;*9(3=DAYS\17(391O7$#57QOL-SpQ(VJ-N-*KM[[PZZZX dggg0000230v10122-TaR~W2ar7njy.8A>bA5K̞8}R|Z:~;uN͌ʪ꺪ކv~<-YWQ_Z6mVw-ߚխ-咥gL<]ӮzF-֪usΚ1iifp/i4\/Oa`㏐ endstream endobj 24 0 obj <> endobj 53 0 obj <>stream xYt׶!{43`Sf $ L p{lٖ+*qt0-E肐)BH;]g&Z-xg߽g$LQپ}48n a<U`̤̄n<g #(@fnk_[ķߞ8gWx%N>mk6_'wq@;WxyMܪtVT,{ K&:%>E޴"fOvUumueA^vގ;5m73'/;e9KR, j7!zLlj JPӨm:j;GE6P);jDlB#j3eM-RS)BMFSC%ʌZJYPèA2ʒNFP&85ʔI(̩5jJD6% ~v]cx3lZO hh3 b1x131S1lǰVo7bGN8jިK_u-}2z?1&q%Qg-~tLk56|qq7= ^> s+jxoI5?F];AԢFtC|cpF7fg6DjT&@G|љ jt>Bb[Brͺ-ί#!)̥Kgz9,6ZN4Utt_wEѕkB-B(]BZN .3+QXjf>N$ӉqŎ@ :|lT񪠒8>=Lo)1D?$fX$7H԰W~lFl^GGPpuN :T~5*GPw:Vha(̗A\mp 0Zs\ 'ܡB=9aGlA>DyLp{+"΅X--(aR9W^JP4sY"<5YX>g`f4<|:HOHwYkO^rƕMg۬fԀ@#8."UN:! ߚE@mtEt[cحKm|Hu\j .A#8wpxb\ sX'5x- `,Џ)XLO E̻`ڃ_䌽Uڈ=}afˌnXig7]*?>aܟǎr_W-^Xu!'O^~qk7^7yig>{BreK*P x7 }>Ä#V%(W$*h%Zy"sF\xJ1\2ܿoC%U"i|D <ǦNLјƢ 2&* `#)MJ|1ʉv.ų*1†OefgzO9pt# &m @LyĐC, #hz~zXf@[ghhmn;u35gQڋ=+da튂z5]\9< vA.z@E=O[Mub\EjZN2Ȃ޽gʹ&1ʐCKa'uKa/-Xn^!I}.Xu w E[EScmyvæ4'GYJG ^Ro..߅+VqS1~9H}v<>$r0ҷwLL引+|R}27%C?>~#:ώW5`wvxsڪmQƹr4BjRKPnm86n$ه{/LAIB0ۘ]R͝8J~\sP\;9]9dJ+?N Qr*JJr詿%6/UXѹSNpԌZ +c#@أͧ%曥-duTf!c&'Z*Qy0 Enn^q?65\2b8EEh5x~ܾa?Ut ZPD lYe_4x6Z1C,/ TaHrΩ9 W 2Fkhbl'|<-+ +=PR"".xXqmOej -\_g 88'G ֱ d*ԺzDER/!g}UTJ> 7G-oLǷDtX!> X}v.#e5*C٭+HXdfC.'b5*YشȈNx2g)%Me~E1!qhKY0w.o#/&!Ƴws"Oi2H%Zw_9%ܑ3ā[Ez{WzTUE i \C3׎\ܼxogҖy2;EijXaEEQqxs)ۇ׎>EL^tcq"8 !@IHxEp'`He8>y!cn/xb^s xPãYq\Cܾ޶`ڄfbvHDL< e³@Cƀm;RKpN" g#3$YfM.6A(IŖx5^ Xz/%&EEn L+Li/~z~-߽lۖ}oh`FMoG2CR7feqM_ 5Vp㮢`>5530bio 0_|rHcn,1䦾fs3E''Gr3ٲ*H* vQ:\3U12L/ˍˋ>e{d\x Y H)~<\,sꂼfg<;*L2SΩ*͊} H%ѫ/֗ kaS/ gG7r/-4+5ol ws#Q$#)+Qמq>7'$x<@pcLϷ8.XJRQVB:A哷n]ܲtƭV.]CP%wa)6.@) ӊZZ(tj;#q$Ghċ[s 8/f aw"ɐ0i*&-/\)DťiI9#ړE c~9^--ʦBNG`;Y)(7}tla0;xi0PW j֚UlX*qN CP^|s tx~g2?Oe/\MYVu>MAܓ0a'WTLk W_|sO fig]o}0bخ\B9|vvE担 !d%p+oA˙YOfhw].`=}ܱ;wk^+_2YNM׹vduQ߂PzWpA7_0@k 6@Oci-|#Mr6X:{6J@nHV@ n.*d*Cʽe>a`oaɋ>338FkҝW@I(^Qy9qB*YV?F ]ɫT3܍#M,QGrT8Y4}cԞ#gq+$y,SSu'"?޹e&}3S= >i!Qr(QD(*ȣ9ş+cCWf |up~6W/)_EuGٓ1<ϸ(ԲjuM^B`ιDFKުwM?KD{2#ڳ22|p7ar(|QM,)m}!]ɬcms5|Fkǝwk1`SONhU'W0bz )zͯx  X{ct00٭[ {F,`qUASɏP065GF<F8,!*)Y϶2a ٹn>̩ Znz6:HIYFVa_p`,wnfji붓g:o<^R]W?ﭡ?̎u cTLno FҝodzL_ I.=.ѝt$h/ v~!$4)I2ZZQ~$x3E(}'x%'E"eu'kssZ C?8n-DN>':܉e淡1RߴBLFfV8i(AVx'&꾧RK[;k/tB=b Յљ\Q󡚳~ክw:[3i. 冘 ֘i͆Q&^M endstream endobj 22 0 obj <> endobj 54 0 obj <>stream x]}LSW- "*8֖}L?!+ pZ+R88FD`aNPи7+*:˚!茛"d9w?Λ=H*AcVo0$%w0'_g5 C0`B' OHB Zi-]RҾNZpZSnqZWW]k,]BQ6؋WlLLV̲\g1쭵;\Zo7[)v\V r d@ˑe"FzH%XAr܃a$%ՒfɯQ1UEs7縷A|#ɥ2)Cc agI9:㷷:6p*?(OG6nU;7UVi?Ჵ? |d`\g)>3q9y̅޴gA9&m>y>V.p^z?NWA};Αm󅢋KKI2Ir̃7@q͗?w$kh%MsDac'"-| 0_pd^'o[0#O!1pmEWI KUgUkx،"Éʚ%G7x#$xHζ?)ںI='MGJ5NmS7~g@O KaZ67ur]?Ԯ0PVc#%;@ܐpR仲:Mdrx$+H-sT#K3JG RPhЁ^eYCn|KvR -,IF?0~Y5> vSxC$I,S$`fV|"AP!lFۍ%a.ђO_;a*zx%=Rĉ )qV . eq iKCg D6x|{Kk]AUΆ jru DMލ/L ^ #yȪPf+m?2ZW NVK|;`"JKX endstream endobj 20 0 obj <> endobj 55 0 obj <>stream x}LuhFa#{.q1%ʒT4ѕҖµZ1^ (Me HCtʈF`ŗf╗'y}=`8 EXω " B30z ݉pq>NQH'kyg/8 >)Sg ʤ DE!Y3 j/t{{|Qh/}@8LM8ַwh  \ZuQCvg|{1⣳Fht@(aX `)储 (3ֲuSI@6]~-]chOxvЭ3TY?3HHUȟVZ-\ڞgsBOҕU-@ d1`M5ZQXK>p$shթ&wpe$JkM[HN%W9@tVɻhchC"r$%sy]Ym;mU؂Rd{b^J=R uZ endstream endobj 18 0 obj <> endobj 56 0 obj <>stream xPCMR7$]  0-*FJYCopyright (C) 1997 American Mathematical Society. All Rights ReservedCMR7Computer ModernA"KBSBUFxx{{rz_1gՇ_o&oUpgˍֈwHw?na  7 ڛ ԃ endstream endobj 16 0 obj <> endobj 57 0 obj <>stream xXyXSgֿ!{UJԹUUZEVk]@ "!&9I@^qF2jթ|Vk|P y<}s޳coLjD"g>MNY'Y#$mh>xh,Y/0bh-Min w ?1,8?>Dm 2#2mmGۆACDG3 3sMt<68.+wloZ3)?9*`y3_9woA3w,Cf3YϬd602f#lbV3{\ƋLg63[2f+̋#1Nf"3qfTECİvoڵLjؗ?qHulfpxkɑFFezщ8 ^?t~"]",M7z׸q~d`~,^C=/Q6%P*nY[ؽP_BE !LEֳWP`=R-$DZk$N?1`:MhwnE 8^چvx'FvV l樶jpHkGO? r3ăÍ,KdGFua=,oY!T'Q_0cwfޛ;1|2/ 2CutMƾNwUpB+:e O%Dz/+89pοs|9uhi ,"~`:AS~ R{!A _mC"RrDB=U(t2S ^rC$ՄhZ$bq! H~FRpd;4=6脓С|4P{tz|C\ -~j@ =pXݣ,4;vZ8{,EЭZ]ylˑőD+X<>j TLFCbeet%zTv ^<IE_NwJ!ֳZBKԹ)$fU0[gDM7<&cR C@7,tP3'65p@ixCS+U=VW820^n}$ũz "Of}ĒkDҾhωdO^EC{[24R@Hڶ]!!a_\NCF˾=TPA͗ e`Etklx`b#lrdudCH IeȕBqve9Dd^ ing^~(%lWsU \WQpn},O5һMޚHػS}$a$O^b!"%F ܲ.랹^68rF sIV+yX$ヺJȭ R2!KJjl4wyx%"+Ϝj`?~P;Y[Cћ6,K]3yi%8@L=oYV1ѷ~ B/Tp# s[dAY.\&Ȉ "VjA[S{H=ϏGd[JK8镍U'7tB"HCϕCQk|de ʂ]HjcXUL\הy M ٸE/|]ʩc?}hrbʩE` H^WpMD0mZ'4d̝M ob)eYzfpc~7ߓG̝V m=Y.(IZƘHyl\)d6 álv󩆸^ _C OYVӮNoȂM&}Vg aߠSO<K /+ͺI46J!{gK'P>+)hhtCiɌ}|ty8։xw'?'m%SFm._{Lo~sotv1NlY4 )0cI?P5DI2;%8 gPF*c( 2^#%ݺp~nwPƢ5zZ3@WWy}c37_rCC&4X$aE!N^=J"!(kC ]0t* Q5Cl=u.Hl*Z MP٩'B2P*]-)q!ؚWNP5RoT%B,j(eAa^y$N&;C_P)?Z3!|KyͪZC4l&۬vM))TWLMֵ hz* zh'TJ3QHkh/N>[?dxiBm@,]2t96'*`CY˵tÎ7ڀW KlhךLusl`S#sew84_ lu٩VZ?%X6MR3o.s?2w! R߇KyK2xj4%4=gqidwJLGx `)hU]N!舫nmQ޾328Ӧk:A G Utu8gf!ݒK GFKp1Ԍ)K- 7%7[ #ސ.X.w}RZ+ڶCQ'r!G]tP(jFȤѾ~K? [L5D'DdξEtkboLX {p!smCic_z>%~JXZ؝0rfp_$J *#.vp t>r)=z~Om~ianf ymp̥廕Ej(eI%@)6TTr 'MFȩ(v }JRBA>0XC dOujNҶjs}}9<#,ghÿ֋xfa:SylTԂ 2Ҋm MJ 66#jBIV?c1 a(87)%9\ #uqV1K\U4"Io kg- B*/ҸںO7x"@$K+ x}ѭb40oM i59eZ "M5Ef n םF͸?Mj??|ryϋUxqoN͡r \Kϰظ؎"-h4BF-)憺i9hab׃6QX>c `%%YB|K~vDJ}I:RE OOҰ7O~EtG-j\]9JJ™+Jܿ&N76]u{YwCJCX J':OwuѦ2+ VV$7 ,1jKH@kyq0~qiEh} endstream endobj 14 0 obj <> endobj 58 0 obj <>stream xcd`ab`ddds H3a!#G*kc7s7; ~n#_PYQᬩ`hiiZXX('gT)8(t+-w-(-I-ROI-K,33fgv`X| G^"tʥݓ9N=kn~ ~3rZbj8&v.ɐ1vEݒݵ5}~}Z7(Z_]S1ujw*ލuE侫m2dqs8_[h2N';g00 endstream endobj 12 0 obj <> endobj 59 0 obj <>stream xuPwY "j.{DR&35DjE<;<?{ػq8*FF 5F`%DkLӼ{]dgwy<}i*0iZr%-iWA!#y(g."bhzƬ$]A}ޞҤeq>/7GN1G:C1\NWEtMF_5stؠѫSu4z-EQaZM$teq+b_&Q*zZCmbg`*CQsy|j.BB Xd>X88A&E"MT5r'MTv(!A~ -ISM ۍײ}xc'p>vc%U4GTn=Xrԍ PB4Vv]<+V/a8A4bЬ4Ղ,Ľa.'ʋT]l} s~|}2hM鹯uJn3V=-$TWWRQ&^bUxL%fgS: Q  r6o2D7DCPi{nлc6"F^~=X)(8OK#-ѝb_}\Oj#%p~-rZ(#TVK3VGD t>V/ Hơ5;VhC8H [t+:&~Q/=˞\>EZ(x("OQx ^@&KG7f8 dtdyo P9ԧ#= >/;dz %cggB(+ԙbq[K][$x :a'O3Ap Gm53EC5e#)rŹ#XF[asG N5ڝ2*EbR}d{"8J`3<*(5U%">'|IF)LK'dYF#ojnCWaDY4 (k59B7C-fz>#=}p=PI~p7Ơ?br@,x h'PpKLk0uI˲Q59(5Cnopgw 2|J2 mF!FBrqxෲ* W P<&#}z'O3O+{p-g8;[alp9qL(#: C.< hY/޿"KyD] JQ%QRǕ }ᢡW:ΘVRp!tWtʯT@})_Tmb Y!{T~.#ϷOϮWҌ5"=ה Kyӡt`*{> (C7Ȇח <}mz˺tUX-|'cOɱk7v\T$lhǿ΃ڐEs/xry22=' endstream endobj 10 0 obj <> endobj 60 0 obj <>stream x5}LSWfH08MG*kuZ>"V&)Mi)A̸d;cseH eٖL&|LlW'd.,cL6G$yHCcZp/U2,)+Bki;K 1J'ހl(ɂ}@KXzBRul.,MnkB K$/UkAtmjk5䖥@[nFe-r0mDȆN@P 2T(S:Q5ywxV't܊hq4(HNSGl,a,3\CrOGc&\OK)Sia隧TO(v퇼xZV:_,.~}FD9psXͤW*|Ίl!GUv[^O݁O64dA.Wˑ: _,B Գ8B Xh=FevlA㢎F{T1C7R' ~ endstream endobj 46 0 obj <> endobj 61 0 obj <>stream x=oPTe^ؽl+[CHflR D ˜iW\\Z"L#ӟ\ CO;;7mR!+jq޻;Zַ|8y(Ac]:Δ=匶9cʩ8]FKIbbl+Vmlwŏ9Dksz֟[-fUw6U^$1.64~':.ɷ!=g1)z!ݏ2b-C&t/JK&Fz]6 _d.;QgU*ɅkA ԇGu3QZFi廔aeh t<!.a{@V Qɚ0t̰3lW ͦQ"Bq8㞨v%K!CB8:0p:vroOls:vK47xdA('TƓW[WY%|'2S(Mi͑S~*9̙ߜ#("]yhd/rF;jX*`hB^ц oX114UQe5ܛ7_>8Y [y{Y`K +8t(|DO_y{ᒝi&lBg/?d-5/6w_jx,IKq ߤPs߇;%ޥ2IrPȒR8' d? } Bb^*.APMH{m4 t wKX3`)'3nϞ#N[~˳6V7a=m&kkOe%^cfEGwW {LucڅwhqB endstream endobj 8 0 obj <> endobj 62 0 obj <>stream xV PSg@UYm]IglպtZ"jAGH AHrOB$BKh]1Uc:;mWVߩ{kn3;;̝{ssIߏ IJbrN\:zEEiM#BG}1GW̛v3XCܾ IƎɁ (2C wh{k.m<eK}j05,[權-L:j$Z~ze|rlQ P7e М1ɐ\_.F$"f3x/Nqr$npxu10?ƥ|8Sڷ6A6cEg>5Ů.y9s5TiYV]$%9/Ʃ8 -oh-4QV0Uh@W 5XMLP3ZW(",lՠFI.z]f'xPR_CUx 4=?&!S,~L[P@3 ך.|̏ HOk}O&,uBoAC\ɑeL`+}ojxɭ~{}+YZoɐܩpg$GZhG"2`3<*>rj}=g 2'YӟXNZ.dr8Wf/Aj8'8%o"91j@'O%h+? >siFe}žG`Pi -ӥđ%Yw5 舍+cҭBRr]b#oD|wg*je*ڂ 8ۜ%{ܸ(,+.w ^Mj0#>mعWTzyW6]P!:]%jF(iymۖ+/ujUMjg>)y;fpCZòBoS398h:YgNu8(&Ar)tZ5p.,,bNjo)E& ܨRZҩ'ja@E~|v\&-crKqe֧oUA.T+KpWk脾^gSklRS ~@߾y)nZV7qzR2̅|Ȁt h~d*BփX -1! 55&Y|dm|*9._TϧmF|C)#$[33݃sOWQ~m5Oۇ>9&L⺽^]Y fg|1&@{ 'T4N褸<}2 p2DEAF}m@**;w vpph}hUvsYKCPb#\Xp@)y=aU7%Ƽ>!>UZɩɊ?$P1,_}}};D@17j³FF=E ۷kŶ56lDr3'[(t fJ8f 4 3% endstream endobj 44 0 obj <> endobj 63 0 obj <>stream xcd`ab`dddsTH3a!;~<<,+n)݌ #wTs~AeQfzFcnjQfrbobIFjnb ZRQZZT9?$H7?%(/=177?o(& s8~w ю+5sf]Y[fVô}Wx1{M7w Ckj T 8ZkfN}bN3w.WT^XcW˦M;q*r\,y8La`L endstream endobj 42 0 obj <> endobj 64 0 obj <>stream xcd`ab`dddw441UH3a!;~<<,+n-݂ #Ots~AeQfzFcnjQfrbobIFjnb ZRQZZT9?$H7?%(/=177 |Xw1^e0o>Itw=Ӻ9kOlVR._aBn&#zg蟱oM>}aw?ΎpddU]SH[NN| /lڴl-b>sDW endstream endobj 2 0 obj <>endobj xref 0 73 0000000000 65535 f 0000058292 00000 n 0000093366 00000 n 0000058210 00000 n 0000057753 00000 n 0000000015 00000 n 0000006767 00000 n 0000058340 00000 n 0000089620 00000 n 0000062704 00000 n 0000087244 00000 n 0000062290 00000 n 0000085108 00000 n 0000061947 00000 n 0000084422 00000 n 0000061711 00000 n 0000079405 00000 n 0000061157 00000 n 0000078770 00000 n 0000061004 00000 n 0000077266 00000 n 0000060776 00000 n 0000075746 00000 n 0000060307 00000 n 0000069170 00000 n 0000059832 00000 n 0000068470 00000 n 0000059596 00000 n 0000065119 00000 n 0000059097 00000 n 0000063552 00000 n 0000058774 00000 n 0000058381 00000 n 0000058411 00000 n 0000057904 00000 n 0000006787 00000 n 0000027170 00000 n 0000058562 00000 n 0000058592 00000 n 0000058057 00000 n 0000027192 00000 n 0000057731 00000 n 0000092722 00000 n 0000063319 00000 n 0000092079 00000 n 0000063087 00000 n 0000088395 00000 n 0000062506 00000 n 0000058657 00000 n 0000058687 00000 n 0000063809 00000 n 0000065408 00000 n 0000068713 00000 n 0000069672 00000 n 0000075992 00000 n 0000077534 00000 n 0000078974 00000 n 0000079754 00000 n 0000084665 00000 n 0000085386 00000 n 0000087473 00000 n 0000088643 00000 n 0000089873 00000 n 0000092293 00000 n 0000092937 00000 n 0000059512 00000 n 0000059739 00000 n 0000060692 00000 n 0000061616 00000 n 0000061854 00000 n 0000062998 00000 n 0000063232 00000 n 0000063465 00000 n trailer << /Size 73 /Root 1 0 R /Info 2 0 R /ID [] >> startxref 93559 %%EOF