colorspace/0000755000175400001440000000000012222207031012566 5ustar zeileisuserscolorspace/inst/0000755000175400001440000000000012222205476013556 5ustar zeileisuserscolorspace/inst/CITATION0000644000175400001440000000346412077677107014736 0ustar zeileisuserscitHeader("To cite colorspace in publications use") ## R >= 2.8.0 passes package metadata to citation(). if(!exists("meta") || is.null(meta)) meta <- packageDescription("colorspace") year <- sub("-.*", "", meta$Date) note <- sprintf("R package version %s", meta$Version) citEntry(entry = "Manual", title = "{colorspace}: Color Space Manipulation", author = personList(as.person("Ross Ihaka"), as.person("Paul Murrell"), as.person("Kurt Hornik"), as.person("Jason C. Fisher"), as.person("Achim Zeileis")), year = year, note = note, url = "http://CRAN.R-project.org/package=colorspace", textVersion = paste("Ross Ihaka, Paul Murrell, Kurt Hornik, Jason C. Fisher, Achim Zeileis", sprintf("(%s).", year), "colorspace: Color Space Manipulation.", paste(note, ".", sep = ""), "URL http://CRAN.R-project.org/package=colorspace") ) citEntry(entry = "Article", title = "Escaping {RGB}land: Selecting Colors for Statistical Graphics", author = personList(as.person("Achim Zeileis"), as.person("Kurt Hornik"), as.person("Paul Murrell")), journal = "Computational Statistics \\& Data Analysis", year = "2009", volume = "53", pages = "3259--3270", doi = "10.1016/j.csda.2008.11.033", textVersion = paste("Achim Zeileis, Kurt Hornik, Paul Murrell (2009).", "Escaping RGBland: Selecting Colors for Statistical Graphics.", "Computational Statistics & Data Analysis, 53, 3259-3270.", "doi:10.1016/j.csda.2008.11.033"), header = "If you use HCL-based color palettes, please cite:" ) colorspace/inst/doc/0000755000175400001440000000000012222205476014323 5ustar zeileisuserscolorspace/inst/doc/hcl-colors.R0000644000175400001440000002354212222205476016521 0ustar zeileisusers### R code from vignette source 'hcl-colors.Rnw' ################################################### ### code chunk number 1: preliminaries ################################################### options(prompt = "R> ", continue = "+ ") library("colorspace") library("vcd") library("mvtnorm") library("kernlab") library("KernSmooth") ################################################### ### code chunk number 2: pal ################################################### pal <- function(col, border = "light gray", ...) { n <- length(col) plot(0, 0, type="n", xlim = c(0, 1), ylim = c(0, 1), axes = FALSE, xlab = "", ylab = "", ...) rect(0:(n-1)/n, 0, 1:n/n, 1, col = col, border = border) } ################################################### ### code chunk number 3: pal-q (eval = FALSE) ################################################### ## pal(rainbow_hcl(4, start = 30, end = 300), main = "dynamic") ## pal(rainbow_hcl(4, start = 60, end = 240), main = "harmonic") ## pal(rainbow_hcl(4, start = 270, end = 150), main = "cold") ## pal(rainbow_hcl(4, start = 90, end = -30), main = "warm") ################################################### ### code chunk number 4: pal-q1 ################################################### par(mfrow = c(2, 2), mar = c(0, 0, 3, 0)) pal(rainbow_hcl(4, start = 30, end = 300), main = "dynamic") pal(rainbow_hcl(4, start = 60, end = 240), main = "harmonic") pal(rainbow_hcl(4, start = 270, end = 150), main = "cold") pal(rainbow_hcl(4, start = 90, end = -30), main = "warm") ################################################### ### code chunk number 5: pal-s (eval = FALSE) ################################################### ## pal(sequential_hcl(12, c = 0, power = 2.2)) ## pal(sequential_hcl(12, power = 2.2)) ## pal(heat_hcl(12, c = c(80, 30), l = c(30, 90), power = c(1/5, 2))) ## pal(terrain_hcl(12, c = c(65, 0), l = c(45, 90), power = c(1/2, 1.5))) ## pal(rev(heat_hcl(12, h = c(0, -100), c = c(40, 80), l = c(75, 40), ## power = 1))) ################################################### ### code chunk number 6: pal-s1 ################################################### par(mfrow = c(5, 1), mar = c(0, 0, 0, 0)) pal(sequential_hcl(12, c = 0, power = 2.2)) pal(sequential_hcl(12, power = 2.2)) pal(heat_hcl(12, c = c(80, 30), l = c(30, 90), power = c(1/5, 2))) pal(terrain_hcl(12, c = c(65, 0), l = c(45, 90), power = c(1/2, 1.5))) pal(rev(heat_hcl(12, h = c(0, -100), c = c(40, 80), l = c(75, 40), power = 1))) ################################################### ### code chunk number 7: pal-d (eval = FALSE) ################################################### ## pal(diverge_hcl(7)) ## pal(diverge_hcl(7, c = 100, l = c(50, 90), power = 1)) ## pal(diverge_hcl(7, h = c(130, 43), c = 100, l = c(70, 90))) ## pal(diverge_hcl(7, h = c(180, 330), c = 59, l = c(75, 95))) ################################################### ### code chunk number 8: pal-d1 ################################################### par(mfrow = c(4, 1), mar = c(0, 0, 0, 0)) pal(diverge_hcl(7)) pal(diverge_hcl(7, c = 100, l = c(50, 90), power = 1)) pal(diverge_hcl(7, h = c(130, 43), c = 100, l = c(70, 90))) pal(diverge_hcl(7, h = c(180, 330), c = 59, l = c(75, 95))) ################################################### ### code chunk number 9: seats-data ################################################### seats <- structure(c(226, 61, 54, 51, 222), .Names = c("CDU/CSU", "FDP", "Linke", "Gruene", "SPD")) seats ################################################### ### code chunk number 10: seats-colors ################################################### parties <- rainbow_hcl(6, c = 60, l = 75)[c(5, 2, 6, 3, 1)] names(parties) <- names(seats) ################################################### ### code chunk number 11: seats (eval = FALSE) ################################################### ## pie(seats, clockwise = TRUE, col = parties, radius = 1) ################################################### ### code chunk number 12: seats1 ################################################### par(mar = rep(0.8, 4)) pie(seats, clockwise = TRUE, col = parties, radius = 1) ################################################### ### code chunk number 13: votes-data ################################################### data("Bundestag2005", package = "vcd") votes <- Bundestag2005[c(1, 3:5, 9, 11, 13:16, 2, 6:8, 10, 12), c("CDU/CSU", "FDP", "SPD", "Gruene", "Linke")] ################################################### ### code chunk number 14: votes (eval = FALSE) ################################################### ## mosaic(votes, gp = gpar(fill = parties[colnames(votes)])) ################################################### ### code chunk number 15: votes (eval = FALSE) ################################################### ## mosaic(votes, gp = gpar(fill = parties[colnames(votes)]), ## spacing = spacing_highlighting, labeling = labeling_left, ## labeling_args = list(rot_labels = c(0, 90, 0, 0), ## varnames = FALSE, pos_labels = "center", ## just_labels = c("center", "center", "center", "right")), ## margins = unit(c(2.5, 1, 1, 12), "lines"), ## keep_aspect_ratio = FALSE) ################################################### ### code chunk number 16: votes1 ################################################### mosaic(votes, gp = gpar(fill = parties[colnames(votes)]), spacing = spacing_highlighting, labeling = labeling_left, labeling_args = list(rot_labels = c(0, 90, 0, 0), varnames = FALSE, pos_labels = "center", just_labels = c("center", "center", "center", "right")), margins = unit(c(2.5, 1, 1, 12), "lines"), keep_aspect_ratio = FALSE) ################################################### ### code chunk number 17: bkde-fit ################################################### library("KernSmooth") data("geyser", package = "MASS") dens <- bkde2D(geyser[,2:1], bandwidth = c(0.2, 3), gridsize = c(201, 201)) ################################################### ### code chunk number 18: bkde1 (eval = FALSE) ################################################### ## image(dens$x1, dens$x2, dens$fhat, xlab = "duration", ylab = "waiting time", ## col = rev(heat_hcl(33, c = 0, l = c(30, 90), power = c(1/5, 1.3)))) ################################################### ### code chunk number 19: bkde2 (eval = FALSE) ################################################### ## image(dens$x1, dens$x2, dens$fhat, xlab = "duration", ylab = "waiting time", ## col = rev(heat_hcl(33, c = c(80, 30), l = c(30, 90), power = c(1/5, 1.3)))) ################################################### ### code chunk number 20: bkde3 ################################################### par(mfrow = c(1, 2)) image(dens$x1, dens$x2, dens$fhat, xlab = "duration", ylab = "waiting time", col = rev(heat_hcl(33, c = 0, l = c(30, 90), power = c(1/5, 1.3)))) box() image(dens$x1, dens$x2, dens$fhat, xlab = "duration", ylab = "waiting time", col = rev(heat_hcl(33, c = c(80, 30), l = c(30, 90), power = c(1/5, 1.3)))) box() ################################################### ### code chunk number 21: bkde-fit2 ################################################### library("KernSmooth") geyser2 <- cbind(geyser$duration[-299], geyser$waiting[-1]) dens2 <- bkde2D(geyser2, bandwidth = c(0.2, 3), gridsize = c(201, 201)) ################################################### ### code chunk number 22: bkde4 (eval = FALSE) ################################################### ## image(dens2$x1, dens2$x2, dens2$fhat, xlab = "duration", ylab = "waiting time", ## col = rev(heat_hcl(33, c = 0, l = c(30, 90), power = c(1/5, 1.3)))) ################################################### ### code chunk number 23: bkde5 (eval = FALSE) ################################################### ## image(dens2$x1, dens2$x2, dens2$fhat, xlab = "duration", ylab = "waiting time", ## col = rev(heat_hcl(33, c = c(80, 30), l = c(30, 90), power = c(1/5, 1.3)))) ################################################### ### code chunk number 24: bkde6 ################################################### par(mfrow = c(1, 2)) image(dens2$x1, dens2$x2, dens2$fhat, xlab = "duration", ylab = "waiting time", col = rev(heat_hcl(33, c = 0, l = c(30, 90), power = c(1/5, 1.3)))) box() image(dens2$x1, dens2$x2, dens2$fhat, xlab = "duration", ylab = "waiting time", col = rev(heat_hcl(33, c = c(80, 30), l = c(30, 90), power = c(1/5, 1.3)))) box() ################################################### ### code chunk number 25: arthritis-data ################################################### art <- xtabs(~ Treatment + Improved, data = Arthritis, subset = Sex == "Female") ################################################### ### code chunk number 26: arthritis (eval = FALSE) ################################################### ## set.seed(1071) ## mosaic(art, gp = shading_max, gp_args = list(n = 5000)) ################################################### ### code chunk number 27: arthritis1 ################################################### set.seed(1071) mosaic(art, gp = shading_max, gp_args = list(n = 5000)) ################################################### ### code chunk number 28: svm-data ################################################### library("mvtnorm") set.seed(123) x1 <- rmvnorm(75, mean = c(1.5, 1.5), sigma = matrix(c(1, 0.8, 0.8, 1), ncol = 2)) x2 <- rmvnorm(75, mean = c(-1, -1), sigma = matrix(c(1, -0.3, -0.3, 1), ncol = 2)) X <- rbind(x1, x2) ex1 <- data.frame(class = factor(c(rep("a", 75), rep("b", 75))), x1 = X[,1], x2 = X[,2]) ################################################### ### code chunk number 29: svm-fit ################################################### library("kernlab") fm <- ksvm(class ~ ., data = ex1, C = 0.5) ################################################### ### code chunk number 30: svm (eval = FALSE) ################################################### ## plot(fm, data = ex1) ################################################### ### code chunk number 31: svm1 ################################################### plot(fm, data = ex1) colorspace/inst/doc/hcl-colors.Rnw0000644000175400001440000005067212222205476017072 0ustar zeileisusers\documentclass[nojss]{jss} %% need no \usepackage{Sweave} \SweaveOpts{engine=R, eps=FALSE, echo=FALSE, results=hide, keep.source = TRUE, pdf = TRUE, png = FALSE, resolution = 100} \title{HCL-Based Color Palettes in \proglang{R}} \Plaintitle{HCL-Based Color Palettes in R} \author{Achim Zeileis\\Universit\"at Innsbruck \And Kurt Hornik\\WU Wirtschafts-\\universit\"at Wien \And Paul Murrell\\The University\\of Auckland} \Plainauthor{Achim Zeileis, Kurt Hornik, Paul Murrell} \Keywords{HCL colors, qualitative palette, sequential palette, diverging palette} \Abstract{ The package \pkg{colorspace} provides various functions providing perceptually-based color palettes for coding categorical data (qualitative palettes) and numerical variables (sequential and diverging palettes). We illustrate how these functions can be employed to generate various flavours of these palettes (with different emphases) and how they can be plugged into \proglang{R} graphics functions. } \Address{ Achim Zeileis\\ Department of Statistics\\ Faculty of Economics and Statistics\\ Universit\"at Innsbruck\\ Universit\"atsstra{\ss}e~15\\ 6020 Innsbruck, Austria\\ E-mail: \email{Achim.Zeileis@R-project.org}\\ URL: \url{http://eeecon.uibk.ac.at/~zeileis/}\\ Kurt Hornik\\ Institute for Statistics and Mathematics\\ Department of Finance, Accounting and Statistics\\ WU Wirtschaftsuniversit\"at Wien\\ Augasse 2--6\\ 1090 Wien, Austria\\ E-mail: \email{Kurt.Hornik@R-project.org}\\ URL: \url{http://statmath.wu.ac.at/~hornik/}\\ Paul Murrell\\ Department of Statistics\\ The University of Auckland\\ Private Bag 92019\\ Auckland, New Zealand\\ E-mail: \email{paul@stat.auckland.ac.nz}\\ URL: \url{http://www.stat.auckland.ac.nz/~paul/} } \begin{document} %\VignetteIndexEntry{HCL-Based Color Palettes in R} %\VignetteDepends{colorspace,vcd,MASS,KernSmooth,mvtnorm,kernlab} %\VignetteKeywords{HCL colors, qualitative palette, sequential palette, diverging palette} %\VignettePackage{colorspace} <>= options(prompt = "R> ", continue = "+ ") library("colorspace") library("vcd") library("mvtnorm") library("kernlab") library("KernSmooth") @ \section{Introduction} \label{sec:intro} This is a companion vignette to \cite{color:Zeileis+Hornik+Murrell:2009} providing further technical details on the construction of the palettes as well as \proglang{R} code illustrating the use of varying palettes in practice. The palettes as well as some graphical functions demonstrated are contained in the package \pkg{colorspace}.\footnote{In addition to the discussion here, a graphical user interface for choosing colors based on the ideas of \cite{color:Zeileis+Hornik+Murrell:2009} is provided in the package as \code{choose\_palette()}.} As a simple convenience function we will use the function <>= pal <- function(col, border = "light gray", ...) { n <- length(col) plot(0, 0, type="n", xlim = c(0, 1), ylim = c(0, 1), axes = FALSE, xlab = "", ylab = "", ...) rect(0:(n-1)/n, 0, 1:n/n, 1, col = col, border = border) } @ which displays a set of colors using a sequence of shaded rectangles. In the remainder of this vignette, we first outline how different types of palettes can be constructed and generated using the tools from \pkg{colorspace}. Subsequently, we present a collection of examples illustrating the tools in practice. \pagebreak \section{Color palettes} \label{sec:palettes} \subsection{Qualitative palettes} \label{sec:qualitative} Qualitative palettes are sets of colors for depicting different categories, i.e., for coding a categorical variable. To give the same perceptual weight to each category, chroma and luminance are kept constant and only the hue is varied for obtaining different colors (which are consequently all balanced towards the same gray). In \pkg{colorspace}, qualitative palettes are implemented in the function \begin{Soutput} rainbow_hcl(n, c = 50, l = 70, start = 0, end = 360*(n-1)/n, ...) \end{Soutput} where \code{n} controls the number of colors in the palette. The arguments \code{c} and \code{l} give the fixed chroma and luminance levels, respectively, and \code{start} and \code{end} specify the range of hue angles. The function is named after the base \proglang{R} function \code{rainbow()} which has a similar interface but chooses colors in HSV coordinates. Figure~\ref{fig:pal-q-examples} depicts examples for generating qualitative sets of colors $(H, 50, 70)$ produced by <>= pal(rainbow_hcl(4, start = 30, end = 300), main = "dynamic") pal(rainbow_hcl(4, start = 60, end = 240), main = "harmonic") pal(rainbow_hcl(4, start = 270, end = 150), main = "cold") pal(rainbow_hcl(4, start = 90, end = -30), main = "warm") @ From left to right and top to down, this shows a palette from the full spectrum ($H = 30, 120, 210, 300$) creating a `dynamic' set of colors, a `harmonic' set with $H = 60, 120, 180, 240$, cold colors (from the blue/green part of the spectrum: $H = 270, 230, 190, 150$) and warm colors (from the yellow/red part of the spectrum: $H = 90, 50, 10, 330$), respectively. \setkeys{Gin}{width=0.75\textwidth} \begin{figure}[p!] \begin{center} <>= par(mfrow = c(2, 2), mar = c(0, 0, 3, 0)) <> @ \caption{\label{fig:pal-q-examples} Examples for qualitative palettes. Hue is varied in different intervals for given $C = 50$ and $L = 70$.} \end{center} \end{figure} \subsection{Sequential palettes} \label{sec:sequential} Sequential palettes are used for coding numerical information that ranges in a certain interval where low values are considered to be uninteresting and high values are interesting. Suppose we need to visualize an intensity or interestingness $i$ which (without loss of generality) is scaled to the unit interval. Potentially, all three dimensions of HCL space can be used for coding the intensity, leading to colors from an interval of hues (i.e., differing types of colors), an interval of chroma values (i.e., differing colorfulness) and an interval of luminance (i.e., differing intensity of gray). If we allow chroma and luminance to increase non-linearly via a function of type $i^p$, the resulting formula is: \[ (H_2 - i \cdot (H_1 - H_2), C_{\max} - i^{p_1} \cdot (C_{\max} - C_{\min}), L_{\max} - i^{p_2} \cdot (L_{\max} - L_{\min})). \] Two different ``flavors'' of this formula are readily implemented in \pkg{colorspace}, employing different defaults. For single hue palettes with $H_1 = H_2$ the function \begin{Soutput} sequential_hcl(n, h = 260, c = c(80, 0), l = c(30, 90), power = 1.5, ...) \end{Soutput} is provided where the first element of \code{c} and \code{l} give the starting chroma and luminance coordinate (by default colorful and dark) and the second element the ending coordinate (by default gray and light). The \code{power} argument implements the parameter $p$ from the $i^p$ function (and can be a vector of length 2). Sequential palettes using an interval of hues are provided by \begin{Soutput} heat_hcl(n, h = c(0, 90), c = c(100, 30), l = c(50, 90), power = c(1/5, 1), ...) \end{Soutput} named after the HSV-based \proglang{R} function \code{heat.colors()} and by default starts from a red and going to a yellow hue. The defaults in \code{heat_hcl()} are set differently compared to \code{sequential_hcl()} as to make the default HCL heat colors more similar to the HSV version. The defaults of \code{sequential_hcl()}, on the other hand, are set as to achieve a large contrast on the luminance axis. In addition \code{terrain_hcl()} is a wrapper for \code{heat_hcl()} producing colors similar to the HSV-based \code{terrain.colors()} from base \proglang{R}. Various palettes produced from these functions are shown in Figure~\ref{fig:pal-s-examples} using different pairs of hues as well as different chroma and luminance contrasts. <>= pal(sequential_hcl(12, c = 0, power = 2.2)) pal(sequential_hcl(12, power = 2.2)) pal(heat_hcl(12, c = c(80, 30), l = c(30, 90), power = c(1/5, 2))) pal(terrain_hcl(12, c = c(65, 0), l = c(45, 90), power = c(1/2, 1.5))) pal(rev(heat_hcl(12, h = c(0, -100), c = c(40, 80), l = c(75, 40), power = 1))) @ \setkeys{Gin}{width=.75\textwidth} \begin{figure}[p!] \begin{center} <>= par(mfrow = c(5, 1), mar = c(0, 0, 0, 0)) <> @ \caption{\label{fig:pal-s-examples} Examples for sequential palettes, varying only luminance (first panel), chroma and luminance (second panel), and hue, chroma and luminance (remaining panels).} \end{center} \end{figure} \subsection{Diverging palettes} \label{sec:diverging} Diverging palettes are also used for coding numerical information ranging in a certain interval---however, this interval includes a neutral value. Analogously to the previous section, we suppose that we want to visualize an intensity or interestingness $i$ from the interval $[-1, 1]$ (without loss of generality). Given useful sequential palettes, deriving diverging palettes is easy: two different hues are chosen for adding color to the same amount of `gray' at a given intensity $|i|$. Diverging palettes are implemented in the function \begin{Soutput} diverge_hcl(n, h = c(260, 0), c = 80, l = c(30, 90), power = 1.5, ...) \end{Soutput} which has the same arguments as \code{sequential_hcl()} but takes a pair of hues \code{h}. Figure~\ref{fig:pal-d-examples} shows various examples of conceivable combinations of hue, chroma and luminance. The first palette uses a broader range on the luminance axis whereas the others mostly rely on chroma contrasts. <>= pal(diverge_hcl(7)) pal(diverge_hcl(7, c = 100, l = c(50, 90), power = 1)) pal(diverge_hcl(7, h = c(130, 43), c = 100, l = c(70, 90))) pal(diverge_hcl(7, h = c(180, 330), c = 59, l = c(75, 95))) @ \setkeys{Gin}{width=.8\textwidth} \begin{figure}[t!] \begin{center} <>= par(mfrow = c(4, 1), mar = c(0, 0, 0, 0)) <> @ \caption{\label{fig:pal-d-examples} Examples for diverging palettes with different pairs of hues and decreasing luminance contrasts.} \end{center} \end{figure} \pagebreak \section{Illustrations} \label{sec:illustrations} \subsection{Qualitative palettes: Seats and votes in the German Bundestag} In this section, we show a collection of examples for the various types of palettes applied to statistical graphics. The first example illustrates qualitative palettes and visualizes data from the 2005 election for the German parliament ``Bundestag''. In this election, five parties were able to obtain enough votes to enter the Bundestag, the numbers of seats are given by <>= seats <- structure(c(226, 61, 54, 51, 222), .Names = c("CDU/CSU", "FDP", "Linke", "Gruene", "SPD")) seats @ We choose colors that are rough metaphors for the political parties, using a red hue $H = 0$ for the social democrats SPD, a blue hue $H = 240$ for the conservative CDU/CSU, a yellow hue $H = 60$ for the liberal FDP, a green hue $H = 120$ for the green party ``Die Gr\"unen'' and a purple hue $H = 300$ for the leftist party ``Die Linke''. To obtain rather intense colors, we set chroma to $C = 60$ and luminance to $L = 75$: <>= parties <- rainbow_hcl(6, c = 60, l = 75)[c(5, 2, 6, 3, 1)] names(parties) <- names(seats) @ The distribution of seats is depicted in a pie chart in Figure~\ref{fig:seats}. showing clearly that neither the governing coalition of SPD and Gr\"une nor the opposition of CDU/CSU and FDP could assemble a majority. Given that no party would enter a coalition with the leftists, this lead to a big coalition of CDU/CSU and SPD. <>= pie(seats, clockwise = TRUE, col = parties, radius = 1) @ \setkeys{Gin}{width=.6\textwidth} \begin{figure}[p] \begin{center} <>= par(mar = rep(0.8, 4)) <> @ \caption{\label{fig:seats} Seats in the German parliament.} \end{center} \end{figure} To take a closer look at the regional distribution, we load the \code{Bundestag2005} data set containing a contingency table with the number of votes for each party stratified by province (Bundesland). Then, we re-order the provinces from north to south, first the 10 western provinces (the former Federal Republic of Germany, FRG), then the 6 eastern provinces (the former German Democratic Republic, GDR). <>= data("Bundestag2005", package = "vcd") votes <- Bundestag2005[c(1, 3:5, 9, 11, 13:16, 2, 6:8, 10, 12), c("CDU/CSU", "FDP", "SPD", "Gruene", "Linke")] @ The data can then be visualized using a highlighted mosaic display via <>= mosaic(votes, gp = gpar(fill = parties[colnames(votes)])) @ The annotation for this plot is clearly sub-optimal, hence we use the flexible \code{strucplot()} framework provided by \pkg{vcd} and display the data via <>= mosaic(votes, gp = gpar(fill = parties[colnames(votes)]), spacing = spacing_highlighting, labeling = labeling_left, labeling_args = list(rot_labels = c(0, 90, 0, 0), varnames = FALSE, pos_labels = "center", just_labels = c("center", "center", "center", "right")), margins = unit(c(2.5, 1, 1, 12), "lines"), keep_aspect_ratio = FALSE) @ The output is shown in Figure~\ref{fig:votes} highlighting that the SPD performed better in the north and the CDU/CSU better in the south; furthermore, Die Linke performed particularly well in the eastern provinces and in Saarland. \setkeys{Gin}{width=.8\textwidth} \begin{figure}[p] \begin{center} <>= <> @ \caption{\label{fig:votes} Votes in the German election 2005.} \end{center} \end{figure} \subsection{Sequential palettes: Old Faithful geyser eruptions} To illustrate sequential palettes, a bivariate density estimation for the Old Faithful geyser eruptions data \code{geyser} from \pkg{MASS} is visualized. The Old Faithful geyser is one of the most popular sites in Yellowstone National Park and it is of some interest to understand the relation ship between the duration of a geyser eruption and the waiting time for this eruption. To look at the data, we use a bivariate kernel density estimate provided by the function \code{bkde2D()} from package \pkg{KernSmooth}. <>= library("KernSmooth") data("geyser", package = "MASS") dens <- bkde2D(geyser[,2:1], bandwidth = c(0.2, 3), gridsize = c(201, 201)) @ Subsequently, we look at the estimated kernel density by means of a heatmap (produced via \code{image()}) using two different sequential palettes: first with only gray colors <>= image(dens$x1, dens$x2, dens$fhat, xlab = "duration", ylab = "waiting time", col = rev(heat_hcl(33, c = 0, l = c(30, 90), power = c(1/5, 1.3)))) @ and then using heat colors balanced towards the sam gray levels as above <>= image(dens$x1, dens$x2, dens$fhat, xlab = "duration", ylab = "waiting time", col = rev(heat_hcl(33, c = c(80, 30), l = c(30, 90), power = c(1/5, 1.3)))) @ Figure~\ref{fig:bkde} shows the resulting heatmaps revealing a multi-modal bivariate distribution: short waiting times (around 50 minutes) are typically followed by a long eruption (around 4 minutes) whereas long waiting times (around 80 minutes) can be followed by either a long or short eruption (around 4 minutes). \setkeys{Gin}{width=\textwidth} \begin{figure}[t!] \begin{center} <>= par(mfrow = c(1, 2)) <> box() <> box() @ \caption{\label{fig:bkde} Bivariate density estimation for duration and waiting time for an eruption.} \end{center} \end{figure} Another interesting question in this data set would be ask how long the waiting time for the next eruption is following a short or long eruption respectively. This can be visualized using another bivarate density estimate for the transformed data set matching the previous duration with the following waiting time: <>= library("KernSmooth") geyser2 <- cbind(geyser$duration[-299], geyser$waiting[-1]) dens2 <- bkde2D(geyser2, bandwidth = c(0.2, 3), gridsize = c(201, 201)) @ Again, we look at this density using two heatmaps generated via <>= image(dens2$x1, dens2$x2, dens2$fhat, xlab = "duration", ylab = "waiting time", col = rev(heat_hcl(33, c = 0, l = c(30, 90), power = c(1/5, 1.3)))) @ and <>= image(dens2$x1, dens2$x2, dens2$fhat, xlab = "duration", ylab = "waiting time", col = rev(heat_hcl(33, c = c(80, 30), l = c(30, 90), power = c(1/5, 1.3)))) @ Figure~\ref{fig:bkde2} shows the result that illustrates that long and short waiting times follow long and short eruption durations, resepectively. \setkeys{Gin}{width=\textwidth} \begin{figure}[t!] \begin{center} <>= par(mfrow = c(1, 2)) <> box() <> box() @ \caption{\label{fig:bkde2} Bivariate density estimation for previous duration and following waiting time for an eruption.} \end{center} \end{figure} \subsection{Diverging palettes: Arthritis and SVM classification} Diverging palettes are particularly useful when visualizing residuals or correlations (with natural neutral value 0) or probabilities in 2-class supervised learning (with neutral value 0.5). Examples for both situations are provided here. First, we look at the outcome for the female patients from a double-blind clinical trial investigating a new treatment for rheumatoid arthritis. <>= art <- xtabs(~ Treatment + Improved, data = Arthritis, subset = Sex == "Female") @ For visualizing the data, we use a mosaic display with maximum shading \citep[as derived by][]{color:Zeileis+Meyer+Hornik:2007} via <>= set.seed(1071) mosaic(art, gp = shading_max, gp_args = list(n = 5000)) @ The mosaic rectangles in Figure~\ref{fig:arthritis} signal that the treatment lead to higher improvement compared to the placebo group; this effect is shown to be significant by the shading that codes the size of the Pearon residuals. Positive residuals, corresponding to more observations in the corresponding cell than expected under independence, are depicted in blue, negative residuals in red. Light colors signal significance at 10\% level, full colors significance at 1\% level. The palette implicitly used in this plot is \code{diverge_hcl(5, c = c(100, 0), l = c(50, 90), power = 1)}, it can be modified using the arguments of \code{shading_max()} which has an interface similar to \code{diverge_hcl()}. \setkeys{Gin}{width=.7\textwidth} \begin{figure}[p] \begin{center} <>= <> @ \caption{\label{fig:arthritis} Extended mosaic display for arthritis data.} \end{center} \end{figure} To illustrate the use of diverging palettes in 2-class classification, we generate some artificial date from a mixture of two bivariate normal distributions with different means and covariance matrices. The data are generated using \pkg{mvtnorm} and collected in a data frame \code{ex1}: <>= library("mvtnorm") set.seed(123) x1 <- rmvnorm(75, mean = c(1.5, 1.5), sigma = matrix(c(1, 0.8, 0.8, 1), ncol = 2)) x2 <- rmvnorm(75, mean = c(-1, -1), sigma = matrix(c(1, -0.3, -0.3, 1), ncol = 2)) X <- rbind(x1, x2) ex1 <- data.frame(class = factor(c(rep("a", 75), rep("b", 75))), x1 = X[,1], x2 = X[,2]) @ We fit a support vector machine (SVM) with a radial basis function kernel to this data set, using the function \code{ksvm()} from \pkg{kernlab} <>= library("kernlab") fm <- ksvm(class ~ ., data = ex1, C = 0.5) @ which can subsequently be easily visualized via <>= plot(fm, data = ex1) @ The resulting plot in Figure~\ref{fig:class} shows a heatmap with the fit of the SVM. The circles and triangles show the original observations, solid symbols correspond to the support vectors found. The shading underlying the plot visualizes the fitted decision values: values around 0 are on the decision boundary and are shaded in light gray, while regions that are firmly classified to one or the other class are shaded in full blue and red respectively. The palette used by the \code{plot()} method for \code{ksvm} objects cannot be easily modified---however, the colors employed are equivalent to \code{diverge_hcl(n, c = c(100, 0), l = c(50, 90), power = 1.3)}. \setkeys{Gin}{width=.7\textwidth} \begin{figure}[p] \begin{center} <>= <> @ \caption{\label{fig:class} SVM classification plot.} \end{center} \end{figure} \bibliography{color} \end{document} colorspace/inst/doc/hcl-colors.pdf0000644000175400001440000060117512222205503017064 0ustar zeileisusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 3212 /Filter /FlateDecode /N 63 /First 508 >> stream xZmS۸~vvjIdwv:Sl&|6qX>Gj^v ƒ,KGѱb&beűb)mXŒQ2jXKK$wR*QǤx$Cba *,,SSLT./1-5өAaF+ RزDj<q )KPL $2%"a*f6Ncim&菡p92=*ei`ƠXrjZDk, hj»:AP h)@!>ZpOŲhևpx:hf0A3V:G`FP )%?I:LvWb8C00`l%9*:T_eodv^ClϳaϦ;"c?;RT ac,$O~9 1;o3L'^>Q_E󫂥0p}u"g+fiAzU:?p4fAl j\Y ?*V3NgcCp 0 ;Y = 8nn0D2!AB%A-#A4)^ٴ|YZ<eF;XEvS`/ jrRa|(XX R9_vŊ)ͦɄ~G%R2RJQM /tҭgnSL5ia*m6?)If&TOIQ5b~[>!P!<"CTl.YH6`(Ȁ%)TD BDϣӱOU4yu9Xzr~)Uy}:0B@ňu6N[~eV^W2\d~Fɇ_WFh6Χ]L/su?ɔ}dM4h(>TR3SK@F٬;Dy/Vג\!&\{Pa5bʠࠈ4L|{O]C55ճTj=^Hŀ(_ i_-w.=|'~ʇ|GlvJ\3j#2N[9b׎&edjfv?>/ܾ[uVT9r{<[ ggps9xha#|3DdQly}ڠ)`yz|)P+'0XUB__[F2Zd ańo gYÅ7Z_r"H{ׇ:{BNC`ӗEnX{:$m{ĥ~n"֑HMÃo]4$iuMov0׶=j͞z|H2\DR =LUhzضz4W=0f'5PGW>yVׅal) °F7eԸ&ɫ[vz!w=y Xw7ckuǏʸ#7+?NӾiJ!їlD5B~dx`o*Ցv(#]W2Һ1hQ2u?yg^^W ua @pN`(ϋ|2J$p\ {ûd2]<+QeyMŢ?#v5Y.j Dgwat< ieig7-چ1ƺ{s0I rɏAuG? I,{A7VN'MՕ֖޸h64FK-7zalS)2S&SSsDZF$IE#]D^9uO?mژ)~u}oÔ)Նv짞UV( m^x6& 9z:ڑ= IT o`pJmΒMʲIQ?H[Yėɰ2HFrwTUQmULo/ׅY3jhy{64lC.ty~.xs=c!@&)&DlaCB筳OjeS::-z܍w|Aӷ%啥׵N_ui\{#jJ*ն~s|SZ7t4?"5&ER!ǟ[pm&MePqcmwol}SDrPMUtG$&P]vX.NFi~' GOBvy`o4 +w Y7ٍ5_墴jz%g^_ʯ/_t'voOęFբaǰ5St*;&Kp,t*өȪPc(#TP` IXu*dpY}sX`,ǬLv<|(+`Q b[`-L*tdƠN 22Awُ{ȷ!Ӛ{VM6Ί|4|57w_V4+^2U֑s"hjIJ8J:F1ʉH3«}(>I1)SRѡf%uM@ܚ˫SMok#.!' hioD1"PvD2) RE$;Bߔ; q}x%ۚ V`N@K8/UvyUJ-l"y y Yendstream endobj 65 0 obj << /Subtype /XML /Type /Metadata /Length 1338 >> stream 2013-09-30T07:25:18+02:00 2013-09-30T07:25:18+02:00 David M. Jones CMBX12 endstream endobj 66 0 obj << /Type /ObjStm /Length 2694 /Filter /FlateDecode /N 63 /First 524 >> stream xZr8}߯cw0555O2MlT9)D2{"%mnTABw>nv%&e.ef^2 3FᏥ2oLn*ŽZ2lHO*04e@ JfA1%1pLieY0LY疩`Ii>0RHI҄#t`U1Z褙Uf-J CYoqaD~WX2H#`6Ph=F#aX rLg]C%X) 45ER^{3 VGKX2)S4TI% .(C @ 0P $C*HU84)A4Ǐ?2q4[/* o~ Fi\N\I(<˿TDx[61'WE5ٝt6g4|駨%j4p4jDY pGVWe6-*>hx;bzbM Q%RiOI tlDv܇IӢ<O婔+irԇ=ME5ȳr-NL0蚎?W8Y`Y9afxUg9%g%;\h:(~UV@%>'Ev8n8 f$,8V$_̖1__FP3c|?5t('Loaڡ"Oz]T*yjt;[7u7 ;ΊrN|5~iLBa ;!~tHP7Wcou+ fcl^TŊWOx-Ňb|OJ"Fn 6jZ=B=2Y+zB64P[-X +eF&A}xRlVJ67R-R-*n[:)/7NpktrASN<^*C4wN! 3CX #T*ktRԞ:ef P`HPѯ߭՛8,;wB(}Z VQifQQӲң?~ {L0mUkb-Pc 23;(m Lc^\B,/yb](QsDjIiKz0HB&OY" [yp#H{h0etئS˙sӹa>_W$5LtƩidܪEW[PAVoq$z^F j9` i"mmH_c1|@-ND.>3Q8J,gE&V"0uisǎ\ rido<9CWt+xLic\}[mK|NuyJZXW_=Ҭ7M*{&#{yV42#W@($]P@O|>04&CB%X=~>?;zv~8mH=VM>9wC Yvm, M=sj(_뫁ĠjQk!z a+׶{\F;i~o,>5.Q:IJp"t JmiR 7gٹI?pn$x{B5&F:y>=գ;gUuqO>|6?2҉?x18~Qr6 Bs;} %l@p &nLN$>X)쥔 m4+z z8O҈Bꈀo"kWa7)7vM(Xu%uC hh^<+8os瓻s>.O,s(oyд+cޯءxzt}O9U}YTMmUENjUZ+ &yg%_?l̳J1b/_$)N\*Uh fTr^yY|v:CVL>sx>T~=Ϫ3y٠|5PJSF26ŴU|-?<[?NrBcf&VȷvOx<ϟ?ꊿɐUPWi,[T{`?(x~endstream endobj 130 0 obj << /Filter /FlateDecode /Length 4970 >> stream x\[o$u~#~IvZuQٰ#'2[4 %7Kr(^ZAzέN5{RzؚfuթsέZoh7nN>ˇ<_7W0Ó<: j761Ύ_f Ƈ_ow0:| MM?~?>aOMN605f |Bη;X)aCBe#[i=We-LOvQV=0EM[vorY.{3 c7atnvn_RH gx Fgp4?Dpv.f<O^cBgTKtZ7fgC)Lna5W 8ulQ:!vRDpr䜐G=lg28?NP۳ {x{7*VX%4閎ZkΎw=RuxmF}=ۺ3B[i.o:3*xŇ^1QgZ& ^+g[4x8`ʑCAuڻ侽0 kBE`IvfzP EĠͼ`2Z4z2Sݙڎ1 v ߮.|מ2Aq/s~ZлF%$A>m!:Ǣ-޵s( f D4,փ7w mHK_ ?}̘XAa KJ"}8A!ضKE_ Rr`CCe)(-YO3۞XE` U6M ` ն'2.uz|ɖWIUkV>,: i\ d}#^mVOSH@/}p5֡Rdwpu9$ɀ`NRf )D@#xPcnfTKTt`0pH1kT/b(S}QϧHCZe|:t.u"~DWoFp?rCw*] W|X:Ni"zJ0ӯW*,%YBň?Np.9juQޘɆauyEs$(MAEgÚy +y,(KYsRLa͂CW4-W|%f|ig7r,y`1?yӳUetq5plS+THTzCH Rb=;>fUF C_\[ , _s /i1$* AJ.L5TU^WIdZQHjw HT`G3&jD%8ywVL X&v 1L4UP*iɌhr|R uI(w9 slFMSlrؗ}h /sf < u%Mq!`V e)һQ\b%c{:{TyՓm-Eq=%"! )8Upl ~G>U=bKV _]A!`#e?4W[^.KjC O-a7hPu V6OY IKEB X,,_$09qB߶EHnvƓ)ʩ)ut^7:7?>ANP\z@D Tov.AUˁj/K\u~Ƃ>r!J nWeY!$ԘSW'^`];z^:J7daX]Dy@Oc(+Mg5 9{.E&@5p_j\8|RZv%ԹQR|jxeslh{LQ!0;q]W,SiAVqMrw(bleX ګju[Fַ0L= S&0 +kk^aɡb"XeSy1X/ID "Qbb~ &JY/MTC';0l A!MU zo,A(p-!DB#[lR1Й6K@V8C8H) T}2%RJ5`a?DMb{skɇ:E&^cȞh_ e{OA/MsBg86VrY@-p^+R>9D֋d|irޙh3/qL.j9D*Oޓt@ =ufJom3繀1è/4B4 b42M!؈9G"Okcz)ynՌ|#^;nL@^L鐱̊"a_>V`.OJ .j.`Ё&-:T~ S[*U :AZ+YSBv̛=7kUslbnLˠ`MqlG[w[7]b&RvPzsb):8N G"'iB=ݵӧ6mó6|l7mxX}*ϗ8hp ϫBmiyzh6_`׆3y{*}t}Wz}Ђ{Bky\X')޷V+3Lӧx}5ϻ՚58ѣ ʕ@o"Do$D:ДJ۝2%D[rny/M'3u :ÉnՇauOvJ\\ӽ]urƒ GCh]*MBUФy`J& Eb3/HiNb^ru@UTNy儍RdOhòE 9 *7*$w*[Uw=fw ^~ga?!V'"KY_]ܜXCTBD*W.n,@*k$h6פD_{H|}XOqäR:7^ka@e=(lȂ&`?$s6 ˨YHrAf.gkOzC @RfR +,ӗ%QZJƏE8%K_0> v#I0'B5/^I9.sOt*(Y޽ KD>\D @SB:_`_5gQX.D8K%w"A@O~$0 N7ˎLVʱL|R|?_Q%eVRT|5_].`!:Ms+5OQE'u"` a&N1'FPWI>ج᣺Mo7`ۤXy Ewp ,TE&GaHy:h郣\N#`7N"PB/p:T%xK[z+5cf{ (ڤi6yؔMNYS-M"4xVU$ VmxцކwmoWjT3yݮ8GzeU'RWZendstream endobj 131 0 obj << /Filter /FlateDecode /Length 6119 >> stream x=r$7r`b nȇHEr8Ih8;( Q]ݜ|Q0 G3 |F}ٗߙ|~to~>yϗ0:ϓ>>ˇl.Ӎz_^0|,ibƨmVq3S pJQz\XkG씳7 1qta{Ó:%gorJEdۜ/i`ʆ4<s?.OCǙ1#cN` su&|a_X?C)= 蕅SòZy놝wnEt^m 9yp>F{#M0k \E Yrq+Zh xIVe]I`>,)@HuI&I۷|z_Y]W}:DWkj\`–a mpQJK 4043:3C]Fr1@|Rb"Ni[U(Yw@Zώ 5!-8lRyn%6zoCC$j֜9@uS_-ry#|3#u7Ioҙ/L_MK0G$[mY-upS<BI= wtC*0m!7+$sɥF{f[R0NR_V\*F.bTYx߂ =%mCv^DǦl 'd$0D9$:cf:kݻN0SS;V;'ipֶ:l)#&zuܵe찥z7&\2?O8"<еb( d+Csk?'mfĆkibI[btDDX{VZ1kSUwE =Cb̄wW^'//e:f_֭7$&S) Nvϗgߞ?ktPܫFw2˞CIeLo%?M}L7f<*ZTN°H5no>vj"^6٣+Eu0Dž(5|,ػqlwC_ +N`s4ofBWy0[KɃK<[gINp7Tt; |?9l0xU?L/A*ұSM ?Y!bW>,A&l^lI$m1.23M &eٶJ5T5EF"ICHj)CAbry)Кwy!&p{s.=Ffl9dfckM["1)&Hh9'%N}#CDT] 4|O4#nEgwN/>E&ieDY(+9MkXHǦeW^\6-'(N/ő)Yg bٽAwS]wS"u%fݽ,{Y@ W<r;6ׯFM>v!P$Voh@2Pᔔ @io\,EwJ,P?2‰I-{dtU_͢<;#pοJ|Y16X.:ɧϘMULܵ\WrB׋aj斛`*)3̞yӇ9L<2˞+Y4oG k> `Yrn45[QjT/|5qG 1K֎ Dq6ӛљƱyp,c'N 0eAy"bb.Z )h~@INQ}DNƔn=y&-$@S@ vc Vd̘`Ke7fFC=9_Qt KgR1sfgǙԜ3^^fWL\aD`VQp_D<֞DD^7bg!dkZr\Vt^ޞI`1zNɳB'.,gP-OpO ok8mAu;d,b"ei$B3G˧Om>KuM(_ |\עmsWb1Sx ,&`EYF] wN-Rʱ}lu)J wÖyuf/ѯd:߁ert7?>8|F]o5M1s0aeփ.3R5$lL$~+9#75lOks>bm'ږ%X TƘe"jw6GOlQ4(B,>L*luw :h2> HlM|`@lmh60'UAZ߰"qa&YF̆m#( %N,>wY9m+[q~Q9(c*'2o59NJw?4h?>zܞ{}"D.o%,WxӋR§} "g>tCE W=K 2-JWoo-Z D0xlQTOn 炼iʼn-z~Ea '9  {IU{ ݶ. Co8q5'BFݶ)ol0tC_D6_xc/jާxI$雷_H]rS?'-9*0VUgOa+in=5]Tf1{y,M?sa<}ŐTyӚ?MiMQ5Eyr}#hYbOc\~seo/,,wyӚۃ_\j Nߚ'Yaendstream endobj 132 0 obj << /Filter /FlateDecode /Length 5400 >> stream x ߝ<_ɏDNޝHi?Y/ <={}Jlͩn==:y>J͛Yj7]Y0B~Z-5D' vS2ftIm!8[U gXnOy3Ry at|0&Coo+rӖ^ H~J0 y_,mg'^dm<]k>noWkF3E xhfP/Ppc:GܡP!^{^~!gTt@ !19CGA#Dr g%^Іv{@:BMO׸yJH@.>%ҡ'w<וWJG r *!dSWDӃP0,pw24YiKId\3"@#]`\)sRl) OKldE4qV%Tsmja {ko{:ia# .RnjY YPiLEAtI?[`K&^K,h *D|ytoLknD sUp-oF fgq}q תwg?ў4!9haBLq.TZ˲WmYZƏVS"o 09a(şamdTӼZt0%;-i\%"ӻJ R0laN{[bnP cB''fHjc m4f(HD1JP 0!*Coh,ɒ9ZE; ]IB;̡)0r.cL\.%3xQ㸋wF&L/2o,z,y1S|CQ'AQh73KjC)6N'yP}]^ "bЯ\lXɍnpDJ] jG=PF)EZX)nxB$C[I$*'L+*`="{ q y"m!nOƌ5_u9 Ⱦ6Wѭ0U%1(W{*mvl9GBE&,d5o#<, _ץ`f#{W_$}bm Ux.߀x^|m|]OW$[@ݫ\)ЁI!3!۶F5ɊS8QD4uȥ|A!CBA!I{2 իzߎHQI AZMnK$1c0ڌI E`Y+<&Q=Z2|S_M:Qֵdʮxq` |"-N[x,Z$4zQ,ۺ=./K%kQap3XvnsxP\oZbSx9/U+Hl:6w{P)w(y{2(]`1;.LyUֱ(їI dב,> Bƃ+zE)lV>MK}RbF-յ0 I*Ʃ4̘-y]yc0IELLaK*׃(W]`xjD"Y:^rS{'ى]#^GheX=ԟ$vӛ宸. @ {vu2)IP N |jqZ -Z?@T(LVuț;R|x+X `|Iek\MB1˲MkG|:_U?qUDN0ZfcF:dM>A>(<V,M%} v 1i#]m@ź`\.#j O|ݰ F}L5q\pAFp6ÓWJ!hp1Dv͘ʺTu ؋\_wy ˪_7,|HJ3m;j",׈Z\G۝ 1ƛAcϔWbG?uɚ uS}+ep#VƍNּ"ǹ9qI{J|wmxX-{"5us3߬J`BF=8ߨ@zh/zB\g^d0w7xI[]!, bx+-1@w)xn8 ώ"VVh]Jޢ@,QZJ2Ă@yWOzeczc&[{F3.<4]eAIT4QjxJAvgNA م.(rSz_=>WܛJ., *Vm6 64AM҂-2/f^J6u64bN5YChk&Sτ:O{pۧj!bj@lh `lw_ms+Jq1dX2$r(߰jixt򶋩(T}.Nj0줏 &d{J06gCi*4P^ 9my./$Y$rya)AU iBͣ^wMrX1X壓-DGIu;Hn8zhW#*<^>>P ^-MF&w KE߷va"i4Հ|OpGSҊ-H ܎Q`EMS4!Pkw0Ԕ{[e3iIriu eK͠\51d8[qearCތ` C% 8ol\L;lc''"KtjP>ЩwE 9/9ּ_q(;r'-y/ 6bGZ4:#us훦 48o?'Kjи0 /YMr8b`7fI?o;Ru|.Cɺ@B9ɛawM#;ȣBGv#;e,$GFhQ[r|2N/nڽ5XI>oyLKn{ C}G WWUى*z)ޚay6qAckT%J*出~vQ8G˒3NKnRe3{o1hHFYG2Tg 4{m֡$8{FKe% swkk'KӋ=/N>8u!-VґHچcS_t~TAhdՠy.Uxҙ X,m=(o\oK9oCm} ?޸+*\ KMq18> #:עL PD9) )>6;CS8\b`>KZȱC ^zԍUџD_T*xڶ0ǐuoxm{jLƄǚ햩*Ai|.> stream xis&?b˟f4}P!Us`QTŦRkٖҮZKz3z5;*jy[?-U W{qxZ^.~Zhf9@;}VY/_,S4e/o]L胶{R]heCnVgj{u(U|3v)9h$v{؏? )S naiUk*voo R.uH)')ϰ}ZhMt2 I)r>Ia<_I|+g`y-ߟ N*[@ _|5x_,\iܹwH$ _՝J`+E7 mC*,]u^ŋE7`,_\g|]#P&z@9{ @=:=Fj߫4 Djg28@ђ$l$-ldzgџD`>"@ޓqhK,nџ5{]o4s=R͞Y41ʾ¿ 唒i~Hz9y @6?8b FsC1D"YǁcsOjm{Ys="B=y(nc{һZo9,)>:1ޓxAܷ\G Ⱥ5[Id=!v8 KX #0hmzpju{eG:-s0كO2ʦU= 6/{q .NA6sTlx @>PrM%ϣ?qikO*v?mm%tAeݡ^EmvK6л~:CBOTPsK qd0P1j#El$pp?==-[;]2[>Ƭ dN|E{No0ŲO\dtެD+F4K<[FAHNš0ڸf{]ԑf>֛> NǕ4\w Z(QXh n`tgUʙwb#2WٸX;u4?XR: +v[wp^!oΔ^AtDs F7 N 3!8WQ[ 'B6 K$l=ΚҮZ˭1P9=qp6`# !YCj:D[gqB5d3;&Ohb kZ! %^Y "(e^`ЃhA& )e`@# BihswRABl1 jPV| % h|9H'iɣ#Xor ոtS!6 4D326ϡ_:rql6>c8ǽE1$ b>56d+\DN&O  |@`,Z*mEcٸm~%l&vSShVkqH:.H5`"$Ŝ[K, yIG&VGH-Uh!m4aNfPm6Vcl]v:(9LFjgEG)C+hhl-+˾&)#< 6ɤCqgMۨ$CE$Qe@g„vN!ԗ$"`aRq5K&A3p/D7"ZH @?SCn+) =WB2C Y[0uض)4djӖ6ګ q+keޑ6Ls_,uqw2b kƓ=8VS[$N Z3 dlO+p|;*~RJ9Mg$6@olBaU w@urɓXtl> jzʘů/Y?qh(x(]c`׵8r[/,РJ,-VA2jYrb㲢S@Y mAr-cO(eA]Xh3H,3arw j>< +Gl[㡕Ѣ536 VK"mgb,$&y6()8y+*4Yn>{M:9J&:o&[.*ﻧ zo `];("n8 K,%ِ*Wc/TAbtdmplΆ z ߬p N `OƮKeu> _YM~v[wuy1 {7IGkҀrL.C]7P䮞u0MX>YPc`&{J_꺙܇uyqO~Pú.߇%.u`RٵE~-|[]ڵ%( p&2̈́͋!Rڇl#$ʡф-TX齪ߊ#Eb-`yG[ގ*䭨]X#f< vx\RH'KRGt[=fݘᠶdݭ#KV M'KO8)ʑTUR+㓈8y; wmdiH:Ńhz^WTMQcY IOؒs6#4pBpAnt®QWyf`2"р|SbЪ9Jڳ j$#;ӡt?fvF^Ts0z0ÅS7|0K}E!c:/tŮsl|1#ox raYq.h`J-8(H(5B"@54k'vfB,*R(ݒG|LcF Ah@RٴS]GC͂FqHNi$Q=~[ccܥ7YWPT|&xK9+})&R?H70UV;LjAsu_Gh9p0̍0)woSFZn::GǿصQ aLYI-,cW[&,,F~=NJ~5&}EF[Iur&h7\c.=%KM 1\%uҳ:yQ?OZR{īv 8G4D&7F/9Mr{'X#S+ &4z5Ȋi&ߣ#M]>m]Ԏe]u]Q.?eϮ'?VL$ŒL?yܝfN2P7~jH6m(I-M~[WNuySbVnX`{=buxr>|UI٪[p5*(- WPmpaV^28;8o@oo,Cf)ʆTDs&]rGAoYIQaf"D6 98hNZ^}]"A%&߸Ra ^<2UH\>Z.ٛx"'Y׶4fw|'Xy]w %5'4L?5.ߣttҰU/賭A:NI"=>)rs+8] ( qT}8 jD0:AچAFzX"&endstream endobj 134 0 obj << /Filter /FlateDecode /Length 5443 >> stream x\o$u $q4! 2`K-X2YrDrW=$w%C@Ş:^ՠ+^}#u|~_ǟ@ɐU'ϏU}qq\Z| i:0ᅓWy9VojfWssJaN) (:[o>ֵԭ6qp 'uJ4z/*Ugd}XyJzlHs䷸> Aq_`Sܹ% sZ=!e~My\fvx4ÊoضO6v7kui#:e (w%X($Hf|W9)OS9Em{=nx[O dC9X-z  Y j#8MQڣ4":ԗEONfy,#8#gRuڔi89mZte{|:ؖHØA40rfY=3_)^)$6rqekQkxJv.8\ Fr~N9(HHeaR)UNz'тb `05 4F[duqg&#B\G^7.8Ød<tQаf-Q.KA _::@p)'A6X8z^%ٍh`䴺"JdfȤ0'i*Ĵ9$BM.Hi@}Zy{3{>: _;; S $.DFK *̔Q8 ~BRidFf^VĬ/V("(J\٤ZMe\-iu-L7BrpY&&|N6̰_7\zV/SPEacBle_6|U<\& 4 I)^/kum>yڼڼoVk;(E36.vеi`_&Dc߬k[͟xoU۾6UwNM2Mk n_pPTmM>1xDeP qC~ hE"qŤ݀ԚWA"A-4@4D(}qVHQZ#9zphX-" 9}@2`1Vf#iPM8c_H{%b AȝlS-@iMY nFQeGϼb{k8S1YG`qn6ulVVV%Z>XZ5Ż6xG*4IfQŤ( &D%N?| \Dƚ ěrsHYݭGM=o7 %M }iɴ{^!ވoX &"j)CSzPʐ@,RhqJqVmFBdOVC.h}按|:u}6&Ql`HR|SerHR֋e?cxR] ew^b[ς{/ ] >(]ahq&=Y@Oq"4Dq#Z3N楆(+]c?6$pܜi`4cHeӽMZ@5@yJ횉6hhT  | *ݧw}am^wڼ]wN 󣓟-sb CmYy6iʷr)tS*kGuf'po33f?`*)wY*AyϻDvC$M'NOӃs8qڼ,/j@lb~C֟b>H6EwCr`;F.oߞ-L*& ;ˍ`g}B3B;ĸ/<#2(R"T-mc}.VE} DT]_>`ޢazgUiO1K71y)LwHYy,8mQ @Mx[9M%J7˖I0|`x:}΢G3@ q&ܛWWVNF3*hP?-펶om l-LHN R>LkݛIw>oa#~X0KJE `w*[+UbRTD=e:5eaJQi=qأS(y)]MYըAGf&\2h&}8d K<?BndՄ}%,ۑ,aKT{F_aAMY:г7;3/]$83kwp2Dy{JCVp+ Nw:P}cᾏ)QKq v*`}zrȑ?YoQR =/Loݫ*J$-hop-R '3-.>kr(T2-NpKԿ;Y*7E/Ž C*TྖPi3~FBpY%p|^` )TTbI۩bKR)fȠԛ32!Ϧy< ߲sԄ!kᄀ>Wxj͗@ʲKIۭ0w B\? ֛=U] pkђRx8btGz.Jqq8eo\P8TE?źŜ=YMn4tGZZ h*ye*6^i<ђtU,)fA]Re|/ .XT3bfά-1ՑK,YRV wz͸k=W)n,)V^#,En ng JsdmVYh! !zGA?Ϡ*bR\&- 4Lr3DCBq)"L|D{O/>M0\hEiMSfk]rezVup#4NSSnbf33&*QU02*'1 $Y$;KU^jO`)o ]&Qe% 4Y.}DU+ XH[\αkۛ]XT]";e B #tMRR(<~UWYSPCw$q084F_EJeNRx٢||Y sЅz2-Ep+4CQ-η 68 =PLv'Idv|R>dV~}A ,xR# ~lK_ j>mѺ'6R`1F78vV 0Im S)0_z .=_0I1Z A׀.6XeU'ko0Dc;KʊGA\qLe~xqG;|l E90>N(A#F`KA0Z[%k{^ſ{fThs+ ۡ*ĕ`Dk9M@* ?U'Sb)Pǣ)endstream endobj 135 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4434 >> stream xX TTW}eA"D8šM((8T!$S!SաPfEdA( $tb~!vhy%k[@Mzz{뜽甌1d2eqM:Hdn;r ^]JVfεBmO\݋dANA["C|}oa7nʔI;:NQh P?m >',lԱc#""ƨBx0b]oRPsP`"U])(`KxWKWH 0cg rڲfVps蜰Ԫ #7xz-g2?S3nk,f3f >3Y,c1˙ fɸ13̻f383f3c&0Bƅ,b05ӓaz3}dGSƌeɖȪV ffyyB0($v {`reQw{X/FY=Qg-ZӪg}/^+flV؄ۜ=}vJƇ`@G4H&7NivBh#IZAE*tA (|l5gNbyhRQ{ uP @Y,/m# dhR/C9p=Al8I9|+hLO0W2S$לl:їEv˅š #4̏XjPƙyc{)+~BEVp^W+{Fʠ!2w劲!P p]Q<Œמ&4RDz.dӪJeI? K?`r؇ʃ]ɕ$ZhOWĒ8FETioK ˄A*T`J@,<G(R=Du08d3hI\Ek?^z#p[G <(7>nU(&:H+M}TϣFOuY'Odu0iћ[×M_RlCf={=1gv&nHCL_v}jU\A&n+qD*7* u”88o@sfTTPɎ"Xq}a؈*̄ X8f!=F8I/U+r!_QIRRcSn.w J˓I;HPq8z½"m6Ԑ& :[$(< VڞG=j|3V,] 'CtBZtŐ^*Z䨸 Mc*-ePjo #d7V^@-]/x oc2ʜ5\ZFUM(촀Xqˁ/߄o BT07.P/Jf^|8  o0P5 ;2kL̔l 4j;9k:ardRdg:hv$'jA' Cx1?mPifM;gqVMV]r),]v$=zDFa*J<ŷu#u6\9zzY+ϔ/six!˕ih1~iP?{`S=WHgsuZM %Gg9ᄡ37?lzz~tv7Dá~|"3"ԕͪoKy S̃IdHDlJU[]#3ȱ/O| ~96&Gػg.5 ќzV)=ԑjcg* 9ⶭ>(K7oMr ŹwK*B `K6@r23ˬv'n8OwƵh7%}yȧ==j]&"zJ_sM8В3 I8@ }Jy.򣢵 Z1cyB G+xy lT{bu8 7Ú5Ni"#=xnnғt"Jm}1V_QQTsxڽoI039`x>LcjcNuh߯wt d]"Χg|&q}+@uLIp/M\<}OіK= [Z1y:@6wTRKMiA-҃pRډ}/RK!&11(6WyzzyU62̣E*_….ݸHLJ{71SZ/I{f}ג~B]]#.61U/(ׄIKڵ{v&= {)QUR=M b%:$}['ɦeٻήm/=C"+L9C=6f_5{&Zg0,N۟шd>q00%NٽyKa?3Z.ѭͰ;gi;Sc7wb`Ͽy}dF#gޙs_ ԬgI <&OT>_3ӌ/*]C+~kr ~9O6t~ˍj"Gϥ1#뎳dy"Nj8o#-cP'ppg#WhOM1mU*AKƑ\{ l_D.֑wX)hж ;}hGNtKHQd*꪿2?^iGZ}A-|+ QUw G,GNW:y(E@")#mIMWGm>uޥ# v_QKq UP5VxUc8 -+|r:ODb6u*/Y)46\ s@@:?17X㥉FhS4I)ܶ s_ LD0Dxa Aut d͗_-'[5 5B@|N"ꬭeNL䚍rd]&kDYwlREMJzYY3.endstream endobj 136 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 8132 >> stream xy TSJz+uu<+$Sd0$"A0 UЪuZNjZ[[=n^V{9{Q]P"H2gc]XJٖd=гށ3}QMo%ÒG w1qԩG93fn}<k=`)S ÆoI9wcF:fl&ԃQ+Jj5ZEOMޡPC0j5ZO6P(j5zLͥFS[y{|j K-QbjH-&Q˨rj eO9P@JBqT.P;nTwj:LP@ʖ zS}YT_ʎRSR ޤ"~ZR<+~w_vku6g$S$i59\6z4 {jz}K}=iwI7WI?~9xw:πN{KּqӹOdNYs(N.NqNYNUN~dЙv.2cH ߾Сʶ- h_dմږ25{g#vwi ͱPS^Ɏ~6$4@0O/>8G4Mj(ze)jlsYdo`Ėo3o$7ڡ.~è zrzi[t׺B/WN^8n5 4{`+5xAc'?-=|9;e̶m#E#oCIywae5siݤK6ObٷIӲK཯\{ [^AK_xpa@ rxo^|2|}%ZD+F/a-R1FQ]箘C,zcK E/f^?ά+ =gÉC47!8(ttU ްN" KDfw_c~^W{hVB${2>M)Sq9^>Jd8sf[5lպJ![Qwx^m?\zPpU~ZG۶ymN>BMONX&h9!&LpxT,f9޸Ȥ?VaY$z8ctq*2H@"- M7 'xcWVތFyPKn?S!ߓH!2d)]d;>۫mUnhQ:#iݗX$#*>n.rFXFWn7y@,``ly{̢K&~Ijf呯b%Dpk% ,1I͞;h Ylݡ(@Pnd $cYx0xĶ-}^L\6;ډ.4qhZVh,)oݑg39$o{peDX{sDUx9a0 }βx!JN{>w? }Rp࠱#;$ vfF=.߽vizg̨v |6H$Foq^4Dz֘U a6x̘}HNUIO&Rd؞ @WZv`>$|kgeE^tQ:NC$)2OB!!S%&#>W)D6ĵwDVIwDRLB=";:BOWY\(Ee|9J^ԒNԄClE[;e&/"!Ixg㮨FY@s\5pmW!]Y`dK-HI%.[*l1sA,+@ئ.[1FNs쇡|СwY5PQعjs3yYq(dH'Lú4Xq U~jO( ¿ @o;10h33V>ѮƖh򥫤Gd=v5S~dzURv8C44~7of|EʪRCe~jVlwNEKߨZ L{z#\#eL Gٱm{ݱ*OfB4+;xQyjaA ݨ $ILLNq=@94b]3r!!`;iļZsp:ؙpHhBk1y5vϾ}G+*X4!uVX㉏IOU.a?$e:@QQrf:v6Zˠ4[VTRgVB54+}ZO)"0Vמˡي`aJأ=3_3(]x5c!?`#jYfbe!|fnfGË6]i%D9gsL1S,r yO~]>³]K"pNOu +C) JYka<6Tx;wVBw\YC8SiT"7c=^N➘Oh[yE[ " urk}̚h2$jԩ `=#cZ:8kX }Јv}j|2^6hH";l#3mM8uWS$8 L8 hWMsk8w2♐҈JCɞg}S'}qk377TDj.p/`Dar+m8dT1xk/yeL;Z8@n_]23^@4mW$jn%>?d&! ФD3$`0Lvm6'O< 8|8Qg\րS"^I PCC\)K p.!Autv4 ;|n,cvӎ؟w\'6|i~q-EiYײ[_ t_N3 w?^> 4xK&WN>#(zPs??(t]g]fPr)8gHNN38Ic+\U{H4Gk0ʓdQ_7dvH2s9oQE=srhɅj՛PCmnʶ#IM,E#2W] g&v@ _r@3!? (+u<2B4(--VWBD//_&J-jFDyN_SrN$Ui?ѕs[^rEFl!B(k[gЯu\g PamNʶm†՟k;ΈYq`c`+jcpN@syc (ٖ2Sv }^-/o=x]9PHc?O~Id%z6cɬd2C/n#Z}mOTpHHIp}Z.KƈHo|`?C#(:m q%qQE2;-~+k$MUQa+Ō2C/|ԅBCӡp>aLP7 ʴuGTw43㒹$M @"#m H7b_Ϥp]I+˅ S}ë\(qՉ@i̝Ϟ ;YfCan&,:V R,]&KHwDK'a#Zz^>IC&~ [;".Q4jF k8N/(JMOULvtw%ֿfc}5яNaIE.l-xH^8v6. XL|F19{_ Lf>KQ yvҳpSzE6+P&LKS@]%a)<'^x.ISe>I?ZP|${B-ըF(FX6x5i#~XZHgϞ<#lEDe@\dW1TVphݛUrcP@DHX!dOXuB7DzhcCw!쑬xw>/]RFHF;xܞpVA [_kWO6{l"Ki% ڪN Ye/bq~fv.h%A]eJ%Un!u(͠M}KI 7[i#mίНPf,F,%yk9!KJIʎ-Q=HǷ%-ޒآhiQ*j=KW GFib> e49mV?- VD|3 X7.-1Q6;5 DEs ssBx/I+NcQ.ʾ+]Unnf:އyp}Y~軚K7Uv;4E}8OsLP ʆ宁%Vl4 ̇MQsl¹eK3\ldbkjV}0y]|@̯^kfTÏAj5+]> stream xV{PT+"h㭠I0/Dc|Ql@%cy KAy{C^*  Jl43Sڦe8jM:K&ܙ;;GD"Ho ~_¿*|+n!WR( OE"$PNIJVƿ)ۼy*u62X,4VȈ ?pU|B/[-Yܲvmnn :gohe:G R) ssk@UFfVj%A LFHOK >"OD$XE;5."x@!B-'\bJ,¸ |-?p=]?K"$MY<+CK8>,7%ņ|ȇ"(3Ͻ+ XRBPr`7%ogz]h0MuR!KޑKl0VmЏq+NjH6!Cwq=,<Oɰ_HKZH;Ar0jVrB ]=cgpgF6QE +VQZb> h1^'[+{jCDP_j1Fz XuiuG@) $4 Yvф(RhZ/vI.hO ܿz #v-T&JH,AVKj?Lwu ={aY1DN byQʡO# %כj0|ԑX/o>ae8/Y>E$S,g֫N* W/;ܙxBڛ6Xz^:vB@%w(Sy5r<(i5Bc S]udW]5^o6IS-Iq'po8;Ycd J3PP}N܎(C͢H2ʼn!~qx KM*,yJ $1yu2ܐGǒp,ɷW9Kל1ՌőjUC r}X缅Ln79 g@DSEwHbfN}V t@UCAG˭(voZPFt~p {EzΞKͬi:i$Ë`9ΓíL|\\l,2H&hV K~Mo Vi/"xxN xȉ/VЮNSgÑ46$0 :u/CFpdeOfbm)we5R|RS+au`uZ0KN9 #k_"pr9µi=+DZ(* 3EZs NY 4T )DH4sMh&]dpG .)-:Zjvoa^lP6*JD%SIޖo˷0B4qK^w*x|ЂW4ْsL Q der \d0#z3r1&0@H>^u|PT݈_xf>[-OS>pq)]A>3is}x߶#E[SW4D!5nZ6)OKfڤDU@`QO- k`=}*tGab_oD/[[⨾Bٻ?'^؏+W&DN tpᱱ3*aѤ׊8C!31>猿2 #.]Zc:S(kd [qJv/!:{Nэde ٳQ:u+~M?+rͻL{UUr*I9(HqkՌZ<H1z=oj[:GtMQա >RKr˸n2{̱zx cÓ kendstream endobj 138 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 329 >> stream xcd`ab`dddw 641H3a!O/nn߷}O=J19(3=DA#YS\GR17(391O7$#57QOL-Tа())///K-/JQ(,PJ-N-*KMQp+QKMU8OB9)槤1000103012)ٽgf|;?̿ܥ;~3>,}} |g|Waq6;7<_s/wt\7Xp9|zaendstream endobj 139 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 996 >> stream xRLgށ2cʶ A26"Ri +A@Wxv8PfXPX@6Mōl+dB;*Y}~>yy/L ;gq[, M/Femlo= UJg T-ӥYfVn[|=oz^TrF|996IoNڎeky#[UsͱZx@oГm5W9o-leџ,7LA \TbӈBĒ[IP n8rIS>_]-0m*&j|aK 1Q7?\jZfja}4ݫ}M>l~lY^&4<^ԥem{|}O_:bFg蹹tMU ܩ}`_˥0.Í[u5eQ79NL2|;8Es1*q^^x7}A@ iT, LD B}^VlB̦#:u& v8捉Eho)Cձ6kYIfkqv2t\ݐ. =Nw_IZ7}r4 m CjVIy4$p~kTǍOpaD@mwF6?: 3nՈRo ,K_3q^"YWGr*'O;w: y^9M2뫁~ I|o=ZmmdJ oVkAV ~E9-c4)Ɯ?|c$#u\y [[ aQuz!7=-)3t)G[z NdF]RY#H[FO[Qk GmspLs&-(T5b[($}7ZD+#}.rWXendstream endobj 140 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6391 >> stream xy TS1׋R章^*-T<<+ "@ )$$B HTk}mUU:NϞ$A{ok)ܛ}o#v!x<^UWn0a0n0҅{\ kf-`DodiDq#B&L>mt㧇KGG%$F !1⬐3eddJL+1:$#^.&5F'd0I:*1&cg019M# Y%#J"bټ- ,-N]"N["sʬU=c[~߆>tWgΚ=|Qw1n|I9L%D81%k׈uDFl MHb3O& 16b!1N,"%b)D,'&+)Jb*XMD &CDѝI/D/b.ћC ]D"@b9ѕ x']ft9ȟ/Z- zrynjw@`{`wc>=b{<\/鹦gk/7h<[o@?]!oEb8g`ZМ ]#4h +~oIO a#(ee @S*~)dQ &I ?.SAqC ~? r@^^A( xk|p?cH{>"=A訾Tq`t^ EL`NnA,MT'5Ծu P'3u9:a_t7dW}aFa`&9l(-< BރE@pGh Ey$GJ7. ~p~T&? W;ٟoSm2Aj![3XƾFnGG0]_&3.]axw*}[9#аcPz#Q.=a 9I/p>zs1C'(\\]7鋀*-ː)BΏ?YPh,zFs/a/MeORfMFQ@MW8;vij`zOD".oNQK@` so_3%3e{ IO180U 34C/Ee~Pm^ %'SdB"HiԇE}Vߓ_(DC');Ew v&6,ݯE3r{8QOĿ3gWq(VɇU‘$[̝'=vʥ*b͆B/#\<p+dJP6KLů+vlTO"4l!5i{J*(o6֘5iϧyKǒl9c(uB DTT( PU'K\®MsS",+ϟ}t *GY@>jJ5j;v<i8Tg-PQI`1xw_+.`` @ c1KnBI>oKs\|n)7qnR\iQL&q6{"\Ii(l֒ FЖ'DSn|JbWV V3oA~|HFCb5)4ϲmTMIH~O]r  CHY+b4_xNr.}О„&kwIҭfjې ! G=~m|=2ZafF8*e^R5+hZ"а;XUstzNՀ6`UZovgZO;jI0GphY~R =N0W=H˃g\^NUԌlBuV`x~$8rϳfׁhhU4vǞZuTig͍FsF~r7{'>N@y4j oc ]0PGNSvܫE2`ʕIxMc.}^#|<_Lȣ˔e4*[Ɉc"vj:.>5Z=$ ձ`;Z6:೏b89m,,5Rzr$@!!>ol2443H#i,ґ"aHY%ـ @'Nx2&XWo)737a\[(K9YŠ LyjUN܊OR(l6_0x?ܼ õ6XL5'1sgJn&m~$jH _\RGD2])cPotfu: PRP>ڪz6}7 󶳲鋖[z8P?S@NPXU7HCo5U5V`Tyйy@23"Z`vUdB}޳1%Lꔇ+]P3~4Ұ7 >].¢ p~^3qO|԰"ze0v.yw+;T_D<HU#kW4K_=U9lcX7y6@9 u⨂l#޲PM8.֞`Pb>U \H[F]^hi';N^:uֆfЏCF \Ç`עDzxc1NG#Hխ/jE~R}xUu}M$`вwn}uG@cPsL;rZ?R)HrkZt@)M 6s5՚@)O C{RHJ/XA~Ѻ%j㺥#CgsøtmS RMuuM @~80]xӛ{-|c@>׭=S%/0@2 =Xw=yZau:ۘ\Avi3PL@q iVD &ˑ*xx(_BrJLSh]9HeHցԅ߁lZWduz7LM4v01FsFӄʍF=V)4K!8 ǟ":7ϫ+:35S$%o0UXr4%wE |ND׆m:X6m x"W @\%v?!1h e=?wm<LJJ-J!knS\_6@YtJO(d7l7B`<~wBȏ/MzU] hd%G3;1uVkMG%$Bno6ڍL;;\ VKEh03[,_󣱆pC N:y tw!>}y,EZtuAF|cƏIj'a룳ͬg5ӫswwTi12e^6RY⦷ oWv8feMJy:Y#IQ3Z&S_-ꖱ 0]=H4 .bz3 FCY #>͞ N`}%S lzSEϘ Vc5RWG ʨ2z% xR eGM1X֬۸Pq\6m-,JʙU*QisEe*@ Jf5ܗ=CZ8ToƊ\!LO,H2"4JrwڀCT4&* e9MV n{P><$*.S2(yIM"Sb֧ݸ?Ch}ތU̖ 0*@k;xp\uޖu;ؗ\}aw62nOq5o\ ^T{*۞/gn|F%U6k!\=߹皸4W@khZPЕW~/p`P9^`W7OFE<<(]M5E kJ-ёaR6Ф+`H Օݡ䰪80P~َ ԫDX="[z/VpPҐ\qMCYn+nn -V<]Ph*.] )Ep{Yt`7nvJ.[~m{Rw|A}?^D]W%GMUeScg\G; L`WMREAo<$+@%(5X bϟSdi`Ar/Y"8-CP4Oب+dut hV&xU Hi OʍTi)ZFjU{-Vc/U7 ηZ ,:!dn*>)S1U/ 56 l5u;ϛ=L25l(Oz{ ?|N* @6.ג_RS[d+(zPkP%IJIb&'jk2'g Nyp>|ZtiNUVn:_HAPY$Ux fUZ &T[-JVyR@2pqE#,O'/qmm`!G, zJ@v'2 e~+d#WJɵgy,lq).ޭoa-N5~R:U\$*WMI-h0ߺdnTG ~RZv+e5II|> MPmT'/?N|r=} 8trU&{1%.jp֗BN:4`78G ߘ|NBdIo:d> stream xcd`ab`dddu 21T~H3a!cO]nn?G ~(Ș[_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*\"s JKR|SR Ab?M?o>҇]ޝ+ڝ͑¾lzٳTR> 7Qޔ=c<ȨߟgxwS?0X_4ѳժ?wk=9jʕ[u_.oߢfZ-Y1wºrxa[+'Woߍss$-<{ ~'Ncu[|>I<<20Fhendstream endobj 142 0 obj << /Filter /FlateDecode /Length 2638 >> stream xZMo$O#x:d@.661 bV1vllT&{FCN>>ck> bҟ׏a{݈ni#_"Ɩ) U^θ)(3\=nFX#'~uyA:?ۊIv{;_/Zx+@fSJMX< aI-IKp@p/L0o(zK`2v|C"@ eDsiKhlYOvCwW `ѓF ipOr!780v rr70ᲅ `"'k-h]'z;O˦kIj%Mw&Yi /wd3ߛIAavac&7\Dn74΅Sa0',]"ziOvk/jidD''!;}{ߣ|hkLx߉^Yxy|~B?DI Y1:/kh4h2Nb7\*5+@@4 bC\GI^ k>-{"=+@JcxJsN0ILx OxzsCAx"{}&2p6z&F,(FRyF 쁒> bG[ƩZ }B fQ)|*<'^y:j -%\3玝GZ[>;iĪ:(kl: {/":\ a ⬩Iq%1B@p1ncd{BQ+r|v%Wjt -Gv'A:Ww%W{#8`Əp$X>EA;C4qSFNZq:5;iOTAS>T)Y4$O?۸RcGGnw<ʓ$7 ߴ-1hpRFwbj }o R_+e[BҒ(f #p%]4?e{qG;xXN:cq(gj30AbH:L+@h1g A:}1:Iv7av1̇_rcnЅ;0ȇ^>(<->(Z:q#PX m>h`)(#Гc)F@ z[VJw$;89Y2ZR 3G*ofd^*Y K Jl̐4 f=1d$2M.8ADi1|˘F$?=c@t1Rd^͟Mg]jZU>efjѯdM>hd`1u[oh۱%3zF@Z06E| mj|9YR.J@-em>נkORe3S2޸Z}ɯgu%fm.4>騔I} G6Z̚r.;o֩6{T v5b!fmAL)J̚+@e)RM)T;ClqyژY/Mv^jbFʨ h^/'EIDuJ,Z<}yw^:Vb'}Ȫdbma>d 6$G-lM>YcGΚ4LTrQLfjѯFim>heЫ,Pc^D3 Ri4!\o6W`j-kbNS,Tbz9[UM.Բ癄!,L/I]LsSM>|&gM2>&j0GK)kAL1m>ogjŰ> ͦɂf.*I'x썭vMջqG d" :sQT!n-L,Ȥѩ *W,J=o>WpYI*bQU$* ܼ-7`ׂ^BBz(;B81b8uDTӭ ADJ`,'kfe,s)Ee\+uQ*?Vէ]T~xSB6 |F[m> U_hk:K:qbO)DlN?̹)ɯ1?Y.Z:>DEIܩI:J Uqj)&fߵ߬PoMtL@,x [eL<ʥUGC2|:Ur,..Fff|Rӊ>3빞Zϯ UZvNdT/Z1endstream endobj 143 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2934 >> stream xW tSU~!%8yQ(#[PV m&t_4FK mR( PAGQ#3}v- x$9ɽEA E Ǐy;\VȏP_@%<>`2 B EqdI&yvܸI!tC"1(=6*!mlRjK#GcBt[uBf'%CE%Bzэ} OJH6u!ItE 8#)|uj~!jtKbbF'0j 5ZNLER# j45IfQQ)5LBPՊ9>pFF{͈dk<WSǩ-2Vy5Vl\ba6nou 2DŤ(FV 5pVhsLK S w/lYZ&>tpP/RB*fpJ;@v*l1B^rNЗlm<:UaK6Ex[gZcE`)w4B#v@sT,ppEp>reG =5krR.!4drz ݻRsqu챑Srj+ghO!wVQ-#jGXh~dOl|, i Rܽ}=%_x3Wj-j_y^4s36)jpnZ8S|A<Ϋ8}X)")_SI 8 bQ zZ˰MPw>7#VڕfL◽S gNxA+M"#fE R䲚 8 ęx@}Gntm SjlL֒=}ů,"gǁ'Ѽ @S>Gp0(\Ci9X np@1:`OSFf{aʬ^FUC?BoF 5.3FJa^-הH>g+`)SѦޞ#K,|&ZuvtЈ4^頣LlT*s2|rp'o ҙKyC}MKkrݦWLӪemW~Zq8Z~\)rq']fy9|`ҴnX&ۡo20·ELl_^RZ\`3xh`쌥^䒤ZUQr5vj {#!KlIqE-Y^G _V_qyBZS,ܕN9pMQ 5b+-h!)uyC鵸$ 4-|U*&Ο!楘stD4IRaoNߡﲮ²KxiҾ14&h'!gK-[5&Ù*|ދL.c[h~:Ѷ8!2h =L;?">]w^:%T@*Wu JI^b(@(^Ok,ۊ[+ׯす!vTjDhCΪ3. fo߮RVs'.I(l ["g=Z4ɫ81~ Ӭ=ś y9,Ғ#rZ8s/*53$DY 0Z֬2Z"<'E<ɊX楯_?tX;ucmɚ ۴rؽ]-ۜ}(ȣ |~E6^W[,ҡuR4d>!"!ekJ#&f曭\7@̢hAA2sŮ -ʱ As^j~Q)FWݿ|]W2ǰ-x Ld!_}4 ? /W\RЀھՠ8ׅo*!JL M{ o12`+ӾFC@K-Y-smY vDcw*:fNv?D)x't4ڧAs`t^xG݋$>Ul8^(!Ž!$=3a,M)K\:HGu_>W9-ҫF 1^y%6xڭwND8' !8Og:q3.@Cn~g5~UlWjR9u;^V.*\FE@lgxT;7 XE+AAtePd2 vMjhXa䵹͈jqiֲ[끹# ŞL-qG#z_+QzESh4=z 22暼 GUsX&nĹ1vw'F.tuVf.NZp~4ul]V]BR\ZtbmV٧27 'AZz CO6]"<Rzr )&I>E谕gˊ: y$/(ב kLyz?rYNl#%'}{Zh^ ʻՅ7ϯMS2B>kN!!vhw֬\w!ͽ6TDᨰ؛);S@a+֥hf9='EA=xy%E*n%ZP]xy. μ%flKii*Zܩ؏#Uq b(m}}/ P[HQendstream endobj 144 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 331 >> stream xcd`ab`ddp 44H3a!3kc7s7{' ~O+XP_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*@ݧs JKR|SRYBt^}ω33G[7]z}r[~kb}vEly~_d}{O!lYwVWG g/d4mn9.<'yx\Qxendstream endobj 145 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4894 >> stream xX TS־!*8NUXCL $@ ddLdJq85VqhkZ_m j^VsD"tIG ׭`يu.AX5DrU\yFtmɎ3;L49W'G$`JØYJeĉjzOHoJ_E&Pb_&X>CTJ_|"Ρ+]a+" UjEQ47{̘&O;m:EI}L9RoQPKQoS˩JʅORyj>ZHRS)7jN-Qp5P}7(՟@͡R(;JF !Pjq4eMibDϭfX5mvQ]?hNj`F3{O]]8[߈~ :`ց( r:r;A$˪d38j]V~7{BE3h(pMܫF(%~/ tHRSRP,RJgtYoP#?7 L+ߒQpH*ѥ5~Gl>e i *6M<ڍFG&4 } N`o\1TݻgS"bAbxoO>؉"Vovi^NuZ8 W@Tӹ3 ^b8߰ .6&ihWJ~5FI^a 'S5=.w57xDzuʼF27ִ8Aw, p:A29{q\]| 9IgF%:ZK,kF>TS{ eh_.nC q,X]<\iqji'H=S1jzҽL^?8ەO *; XxgeDS/٩lEb:< _p'lFx3D]#7iPb74}C3IM u' S0f1H($2D'ukT`O?>I5e^B-9Kv!BHE;_C*NyO%5]^yy}4c@8oj Z-?X>c*Ӈ=]ף5)pk:}+0AzT̜QT_\!}J;e7c 9XShYk]aѸN}7$hm賝u Yϓ.9{Ǘ;~t֥]z, 6Nk,e E!fh"Wm&ikT2Z,Q9Gc~`2βEWϜHa9 ΧNugNGIK :.9|ԁ?lrodv[^e+b\QX] vdU&oGLiea]eTòuygޜKxcU!Ñ"? }i`fѕ;\ɈO'Xi.u(eeemgcG,QW䣫 =g.$tIԩ-b8Ě撙]2rs6W!#j1 Fb`+Yd? r#ja~Ҳ7ףFyE$R!BʃJCjcsꋽ(h}H:9Z8+:AWM~7؁|]ZJ7{vܯWxxz=ҬkUrJ%Wjk+*j{8X?C;?OE#p0`"(.SI62H*:_P 9C׿ݲ>`cUXR^ބ6x:/ _ ^ʄ^eMkv-=a)!jG/_o'aV/>һ<6淹 #ٴz5 &v_d ZI:WP*kh9RYa4%T.ISB6ns&yY bd7P.BeFPAh6NGG8 a+Fwq ,31r;:Dc. *8!vL\>bxl;v֬pv fybnMmYNV}~9> G8Yf2>w/p]:l{l)6|82"KsTi utHPtlXMx_k&,Z7n:K<֛s)svaXPٿ ƀK>;c2Qb;ʊK2xE釻‹:30wG.*gPFYGQ`bhkf8s4ձmTAʎdD`ꓸ߂Bq0JZx+ ODv]u_t.oR<`G3jy×Xژ- [5HhK}VMzoT)vfdv"꒨M$-MPoFe:Οd7/Wl_m4ԋN łܒ 2mZM!1%k;r, EGM)h(faHh<P'0<}7 c`񵫗ƣ7>h*ykRR9+b#ӐQ=p$Q[ס$4t MMW=%p"};v<Qqw͵\ 'suS^Xgt|afpmS{ }\sK5 uz[q ţ~^!Z0HKآE(j=%~4i|vv.)(BMy<$.=Zo!l.݁_ʾ\mIL|JjJ2"ё7)?0v"x[wQ*N%r2uMÉ6x `D[v`" "kC: mjUrsrҳye#tܴRR= zskrƾ&FnhkkGQ Oendstream endobj 146 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1095 >> stream xO[u<9  MaMXB[ ޶۞'p-!D,3c0j\4jE3k{a89$'|?'_"H̫oj:\Q9N=Gvfu I ;|won-O"uzAթd=mEtEUUe1Jyy]QTmr-$g ,61{j .+3LrTg-*M*FIW^E;ݠ2FAo+j:Q&] %"^Qj5AD#uIb2lD61B:H+X$=tI@oHݎq+tZ,3 "![p@XFG6̪e4k8>_M|ުPb06G&Ip*cڻ&"H6 h}6Ϩ{."\虀h>Ԅv^yFx;ލ_^?~w_v5~qn@_lV 5<«ѫK“6YFo,{&a@+qѣj!ϬTO;;DIk_'bL\˸G頞Ӂm0Y0G8NQjBf-<_r`cJpܰBadfB_u<5 1g  eסԷx.̕ Ll48 t $dLfZT#85h5f>"T-7> stream xSCMMI8(sVM    ^[XnsCopyright (c) 1997, 2009 American Mathematical Society (), with Reserved Font Name CMMI8.CMMI8Computer ModernpQV+N kc}xՋӋ #}[ҩ tg"%K;O[bmnvHgrt{lt^XĴtss{Z^fu mPqU[_\G{ْvCp`  7 רendstream endobj 148 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 355 >> stream x%KPsKIX.0!(CvȃЗ3f۳1/Atxc w"菐eD/ϗ P\šV9: 8*C6y(mSk5%R4*сV]TPY$E2ר[(+ ȊU^:)ֱvPU:e*rCjk  7!G7cԷXׅu֍-j&&ރ]E(~8vz(+3HL]!/b fw+dRӶe%v#0|y'̺ς0endstream endobj 149 0 obj << /Filter /FlateDecode /Length 4499 >> stream x\KoWq~VwGlÉ Ťc AeMJ0_﫞r9+1t ŪwM ߘn ~>:{W6/oGV~<|v q9ڍ36)9:Wc'Xc+.>:k{{`#$-0@e N%]*~!"*ԛ?qaxJl͹{)TbR]͘k"LW~ħ*ٱKX֥\v_KRrŽs} T^u엣K7dl/n4\ FH\>KP"vs{dB__"p*$}"b~~؊ RUd^NqXP |\=f2>XOynq}>+ C(<@*<3! d)"2+Hw /'v\“59@^[HZAɠʢWLlǩu}V^ /?Iz؎KFDeq , Ne2 q$d0_zy W2}V+H@q COz9'jAOn)٘CpɆ grń]8`*Cٱ;U4CAEi' dv꧇`R=@9)eWo(xl.b*=΃[q!)!RQ`0* Փ|rO.e>̹˼8:S$NOkz W@FcUՑz59B.w^!}AU]GӒeAYt'?De6ZLh~vqk@B( $ ^΄>#j ]GѧTER%B`_A!Z2G-6HIk\_#1Ii)('@Qm+u8)C:9t0IC.BԚQp!y#NT#db] B5E# U/TX QAV e$tod0Sb^3kC$uc^OXNX$1UIPi,T$6-"Hb*Z9inUCK2à9 TMf#Δg `0wB}RԪױ1j? l5_^ˀb? 4Ւ2BؼniecWRcdaZc`pX@oST!bDCϸ1<Tއ.; ~*k-"vdTE 4PZЎNɄmPN^Fv \[3Ti㭳!WUjOeHUQzmd!p=VyV0 A"O}Ѩ/4jإb/ Y? rȐ ׅ=|/=.ȃ#5!`N%UќNؽjD;4Ս;H 9tD whlR!%"W 1,J!tV6[/=GŁ^;'G(哣|rւ]PWXG}'D /;߲_7 ]ӂ]/uǸ3:/rbF3vsFrŸO$ԝGr$C$Q7fGw[G|q <.]aMt%t_q{(aS8 :ֆ& 閭.ǝ| 戒/N[ SCtG tЪ8 NAj\ 3T{SCp m趥ed([ `iR6xDOxeS{눧g#c7 'uvWsYx2HX#>,~@f%;s '˵w膷.ncbz?x^L5՜3t-+gUW%j_ookmwo^ 7p qyU@ʞ=X=Gݫ"e%zI__Uhzؗ gp/.zy7c8n[ﱪw::Yt, ~t=V du*^y|):; v/!˙Niqq29ub1qΌ8x/]8xgxq: 9{),wz tIϹM?!endstream endobj 150 0 obj << /Filter /FlateDecode /Length 1299 >> stream xWn#E}FM߻z%@,,@"apd;NdTx8KvWQQͩǷB+#4 U/6mesۘV _zDw5jb" bjWFKʛhChv䪝83^N&^&3),~xo 䜒bu:[ؓ!e&<:Y'zSiI^3׾^_Nk^r|2*჏X5>-ђLe絷\5E d? l\҈^D4*9r ئ, >3¿3z@ƎEv |#GR=x7@cĈ3dGѐ}|-]<:C1WHJgN Yy8]=Z8<]<8*")>iCj8(ޘr&ˤ gl=-7%!<%6uf~];*ses̤|`4(e/+,5B  5XP*`QQ;jht,:βpr@zȺ,fny4$ `FnWr1`z~1LL޴ Vv7?Gx=3&(q\bwutsw'A%v`b4>,)Pw^Y)m㖵3*'"H Dt68TZu<81ᢱ_PDG?/𮭤,w!E9*Kv,!{ƣl\o0Ȏjrb[܎m+eٱ> stream x=~?0uJ*jeϰ_wGp0~ԣNWkc;(WھE ᛕtR Ax_;Vo|RL[Tu2`ڸM00 T2ז_|g dĤlt,@l72@j;V'%w}~3&h6zi*l"%BFo]EQ׼2DA&ÎaÍ%„cy˓_ppa=.,I$4%|JbZD@<ֶ؜dY!: CdVV}B2\ ܫڥJ j_?R6rD= rnF5hCsDHw < )a6ekl&̨yOmm <\;qB7,zgy肓<7c:.Ӱ{YS43>Bwe)@ו@{^jSQUl،h c:<Ȓ-aj71s6j .Qsզ_)\Dׇ۲/j`^J +cQ 61kʓ9a3Jz7yv.#c90: JMR8d7h;J-3޿-,5[MF2޳דּ4KQ]ch}mnk6umݦRgmFU*gK2)VSXZg͹1jjj' ò2Ay =G*uD ~@QUH?9_"G(Ǩ413y\{Jn VLl;Vĭj\LظwqE}?tݷU۠nat˖y8O1T:#2=2XAeA. I%4tU{vX4t-?#Ly3cnegW >j6kS!| wOMw^6nӭ&;E}ĂYEPah>[冷6޺|V]]X1)/}}kS|=F6OxT_ewGM#punNe٭'mFlEWܐ5}[:9DMvF1j4/4۷$ !)tupV08zn!jQ"4'-G 'QCM|# :Ǻ.aԞ{ݕqBQ# $f qvS{0d@{J6D_˹N)trVLm!._K Xf|v$غ9C.;ٰY׎/wB\rU3(bI2rcdh7~$iLOO xVZzkŪ6# jm|M3H6aAEɯiѨiuF+r\2'_@{&SVvޥ0"V{rg?Zo062p?s[yR76w-}Qz.0 =سq[]UpƤvAX֞Jł`¿e;m&įVgGhS*,C,$<ltuX.F,/h u7ޮzN @-3<<تE|7Dai/E :.9|q6/zx}r~& P1ݣ/GxRI /s*٩܄+$Z'HL$5e>1_vaDGr*lpOZZp `mxWzDzVqo:.s}/8.6M!#NN#;>(~{8BK+ixi >bʩ;~af|߱-ϼJZ'1ڷljx2pS,w|O侶^x|m /5Y}qWuyu֦8 v}Q?J9MG$QEdK _}4xS5^ɱ?㼴{}N XMV!/\o߷IS94by69dyϸNJɘ-D ;Gl.{uZ0ĦVCa&)o1_ "P$&.IH~˄@)3})R/ *Q4{(Cjv 6Lu!dTh0?sOzhY 9691E 46?+R9ksĿLd Zg0њt1FGDĺ)/#6VOD':=? $ ;l1'IHꔲƵٔv/rC01͚=,ٹ)J{5ߖA݄v ps/F[߉:UWe_SeȊc:J0xDf t+Oj`c,íS81j \4aj1NY FvY0h=Rl \9Z \g1v)$slJP)1) |T74Cdf2MRfaTSӉ;$cؼ:b`)."n^(yKQ緫)Y#3Ȱ=/x{*4JS#Ro.M8v3km`4q3;g=+p0([ t5H1@(XG FT o)Qt8n쮩Tf&`mTN&t~_B,Z0 ]!\ -K\45 J8TDqJ}4+-8cS*Em&߹54wmQg fNMWv{oa|:3ZڂΌ>jf0S/0Aq AZtj0F\N23 k{4& 6|DȜ:»j=/m)찢`;^> эryo2J67%ӗ 2ˌ_o~& a0'K%u lFa uLZN8" h5> ך2.~_c"6 /SaCNSCx]vz.x]sm.TuqzjݲR;9)P֊aae,/r目'º/ w,OC}X:ZVGpS>Xv;\ u՗+#iϲr!ѹ|dUlwpR'] બ=%q8endstream endobj 152 0 obj << /Filter /FlateDecode /Length 3711 >> stream xn#]Gpl#B .6DYC=uLW={Z5uW/ ٧ߛbw˙.ʏ/ zq? :x>󛳧ۥ mjt0>/4ZِZ ^J%`W:#2,ǜ;!sF"h*'HzIiH\pU! U'jJ4"BN9aivi"5q$koS e´ؒέZ{sw!/{wg,4e邌Q~"ezmo=\wxI/\@$e@$,YJˁSxΕ(]7ϖ3lr=Iܓ$Z^`I0i pAŽ6҆].zW \vJwqF}*0ID>Pýֶz=9uQ-stE ڀ[h|bp 8UޓUS2'"ه3jw~ӛ[v"(Qм#ධ}1a]X(8/˕7v IR< *xY _t1n+x|]A]'#[-4lA-W𪂛 >t7]w?{Vq?+`EdzǛ% d|z]MU+(~ *>M/+ed ۪x ^W%]}}ٷ.0 lU -vlۧ*leCSl}W`J2]eV`L'5ttEkPw]A+XW#_+:}pz6fK\(|ana3| !NY z`&IiQ`I; +iIh0JDKưX A)r<0 Q! (zDpy('B~!3&Y+*ŷl&{yfT{²Quo lVwRV';0Ŀv^F+j3"KEr^>$8EARE3UmQ5ڸO4J ^z(=X>#"ȫWRXx.W<*{9k$/h3fF6$ 0$ 17TP_c>nf?s5-{-,{KV<%\6kXXcB΂.Z֘ᖴ7,|t J l%hL!*ɇʡ@*ȸ f ,Vغ/h3dj-8Z; {{ÿཆoxUc%OF_6o(%(eі| ٗC=- ? ~/I *w-扦[N58L25ڥpjLPh| ޲`38j|$1Lϡ,{maFDm!1<ؼa"kG|((OM[F(@&GG)Fz5ZՕtuv#7,m 1\T<^4'wHR6 i]a9`qר=wMqII7ҶIdE rXg))4I(yk3ݎs0JݱzQNij 6>X-ht~ ~Hi9>!cm8NH0&LR刊z V&C ;}A*Ss /qSq.ҿW|aۣu39~VE Bp=sEG"QNq(oMSCk2dKSjgP|%M*S]]VA1^mUj]&N GBI֥pWA1l?곾Կ >"ՃdUeOV 1E}-qU}MW]\Alvu( .L&-u_ɷy\HJ;iG npmׯ '%MdKBZK\{y^V"8ķ2JG[']^@w\Qmrj7e̖3diB7L¤pyU\pal4mm~u$Z=rtXsU8%C'pojI'?@G6i3/>+RJqaW h擖S 4GLA06G;'ceX~.pȨR_r2'ְLy1fj (~~wx!x* Š>˾˥H9Sm˹dgœ$" X' &^> stream xcd`ab`ddt v04qH3a!Skc7s7˚ﷄ ~O XX_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*c8)槤1000103012ԽK2>}wy߯jcws~7yŞ>~nSg>;3wߛgO^-ym̾^];ǂXπ| wt\eXp~`:endstream endobj 154 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1586 >> stream x= PSW_ {Ր4{ (ZTcUZlG, M$|D"HrB (HIGЩvgVֲٝng\z樷o?ǎn\8` Q˚o*4bPכd&;FY ]wt'4P5e#I@Bq~0/`>ɰ;,zc,-jk$0Fx"ˡ:<w4ԏ| n`1 0v̗˳9}MH3 EPGRH/ћS5uh_uq2bvx7.rկ ۗ06a$Tɖ sRU |ڠޖߓD^氯bsRGz;>M*O-6&1Vbǖ~㘬HW, _m3Q!ďy,F\d+1lɳ?+7$앚W[#/%> 1<[2L( }77 ʁoUÞ^BSA 0RJɻK]dfB p%d\'avW W|l6^.܆` EX tF8-E;6^ay'3Nx5=[a u2D %qL$!. D%K(|urkͅc /h~-i؟acmo_3.BU M*|5c0zp!"6rrKN3JAWݲ]2J{eN endstream endobj 155 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3478 >> stream xWyTSw1ԦKݪkRk7 @$!@ &1;!a'("BZ[h[ێשf/FԞ33oNNN~?ɓ05eC-+W. a 6̘ԣ(=falK,lK̬EiVFG$+4(*%3G EQ^ϗ|yaa2~N24K YQyi =jX#nqD/FŊRaO7Hސmʗm-o+JKdd wYasNl>-vc{E^l{[%bo`1Flۊbl 6v:&-t˾4y[#ar)gR:0T{8W<*ؐ+Y4K/nh⢹ -y;q);HўIeR? =%;x&k:bL9ʍ:PUoOW<:Φeto :*Vj^K?m5/pͽԌV@۷?V@v[L5GBhɽ;g~>6Sxðƪ<ڠfQY`s-Gn^ܜzxL="o;v$d EdHRWFLs.]׮l.FISbW~a1Y2<g7F>⪅Z&*FN&ECмBsI2ޯBz%yqgt|v=SDx2q5fqldx ZՀ\2(-ܨk ڠ^2d/u[jUnuژ SsuEuf%*;7вa_'4P;?w({|ْ5eq3 N+䋋d~E_Mu?m'olZVTR?z| =5x"eeQh̏"݌\[u pjzky )dI D] *7xI5j08(Pjy*GL!Hz3GZC c1~h{Ig/ v0,n<b F/'0{Sf\ r -:Rff/)~ JWp4?ʀ*RE\v19z`,C+W`l3YHm$^tE`(Ţd*N;q`:|?eYH;!sovpېW.Q1!_5":XGGQ_[=V0W*EɴrM!ZTwOu{vX.fw e rj-jAIpВb84RɩFF_z%xBnWHfu23Tཾc-Nxukc%qZ9!v`zSUWk-7 {+1I\!lj188!pノhû|i~~]cMl(ũ;45O'+6#"aqb9̩7"6^)(םSiG0[#QD@<:{ͦK/|LF~ N 瑝{SgǾxգ~4$<68Ǭx Ήy)7ƺw~g9L.vUCԐY CDkKArRV1.*.Q>tt: nYC ՐijIpCsļݛng9'p"єN[ -JF; -=q㈗ti*@1 ̯W"|K40;Gl PZM&DP7(Ee}·?7 &.aG&m9_2yMSqʇzLD -v`S`&7A˘Ɉ+܊&_PJ϶cB}תvU&/}^_ ^ȹֿ&/w 0N0zSYedM8\ -XF!)@,RQ* < N5C)PD]Z◴,O5 佶&rg8/FVRD 7jC#5 6+HFjvu;21+OV{]V[\hFiF@GKcI@׽[LT]z:z纙zEN?1u~\%D 0%wŖj xjai|&ܢvXRiaVRA}(z[j| ^tKHUr5xj∷=noHnݫ9++0`9Q5؅ߜ@_y܇G$y9!Cڙxo 3 ź|<=T"Y]zy=/ޔzQ"+] \PH zuU}[];(WЁq<NyQ0vQ#4yN6O)8[0nd+>u?4Z[-n&3CeP Z6rʖNg{%gGD횾NR/,i[;uf~uNۦF/#(eCI1rO\'5]YB(8[!jc2JtB#-ɷoо_\>?rA_"шVk j u}W0&!99P_KxH0hho쳯#>AhK';Mb6iCKQ[#T("k99!jklj,v+46fz4~^W25h9}eAy>b쩁^/3'Lv|?VSE]p ]A-cc7F=M?IG0+)&:h, |KQ4_C.ʆ ^> stream xV{PSg1{&RvZ҂V_@ !!HxIN"A ( (RVխJn[nz;|3?1DLFOk=[ m1uOPbH7 q*Q3]>;(hn|άYA%Z!.F _0ZQb4Bј8RRRڤ@Ahz<%ΨU&) ;!uV)w iJ|nҐ@QԤ]C1y.EteJ 8kEPoP uzjAmRԫkTJ-SaJj5z|1zZ( APߋRDZ8 &cww%$m4K3;sE=vkx-xtL_pE!ױ.+۲#v,4 {$2d\O'Тk76+6C DdDzL5yjŹ[dZn>_bjg8E-1,S1E/Nqd=E;ˑnxLc>8 gݭ*:,t+l᠀Xx۾=Eltaҵy!nΙ`>>X˝#4:?"UVn;X_)Ա+Qe_mF}Lr|f#D!hF-;^Ϻ"ONcm$`(~6nn4ԌZEmy[S H`5)U?"7SNtBa|fXv!z q֍N[ ^|'G W`f! {vi"i{-0p 6vv BtjRRyO',4}xo! g[_ h͗{ u_ d9AEy,snU7uel&c~yal l1ެl3p^a#|4_qpG'}xoI%,ӜM;Gֿ9 5?@T n•n4anmsm1P֙W/ԯk[.8gɃ4TZ_^YR[I0\bݎra. oUUY,:5lJUSZxzL,lc^v-Cwk E^=$pUYXQ\gmU f`n f̖Ea_(KN,yoXhBȹĸAkmV0f `FjGH-zWd;S7RPfad;N5A1 ֆV %ݿ"&inpZ o_eLȘeԌ`;-B[lY0_0C"Z6<2 ki.CjfQ[b\[Pem(藟:gvy_&LQkG\bjt4 g<8O@ߛM詁ďH5<U6@R;ܜl8V!؂!YsB'{OkkDw.+By"¢\ B+gpbA}?2Eyhuf !HsR` dDL!L k7dYryvsQM8L dl%SSs~>1f{NIͫ(:͝[nȆZ|)9VNZ`eE?^ݡNMLLNlwVT87}­ϑci%ɩ& I? $`S5¾k,\2?jq'EΌɛ!>w቗>L?Psϗ hS3 2|Tz拋ڠ.T\/JXs"%Y&[7.=RGkNbٛfoB"+Ͼ;w' pCإgܛW\ZѺNgk>paamhM2l1 cx'„: .]^C9/5ޏ9CޏS?6Iendstream endobj 157 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 745 >> stream xU[HSqggUBcB `JX+晻6L5t3Q^.v z*z^^~|OK 2* R*u$x,PV+\ W,G$A46Bb 5m~ 9mdLXycB̆شf|s`+޸zk,-\-S*4Q ~_7YE˜Z҈YJTJ -CR" )_=)i6&'񐔫G`( = =]н:\hXV.ڥrzj<vVGtp \J4R2OX@JREp[[?M?y漹Wffúȩi [Sp,s? -C:<WU|;`+'uW_>yBAoO'ϥ>SzC$va<Xn`i\&+_}I:::|%@ c󺞔.-<LspHTzmkfMp u9;VB8̮{ ?V8Nbbg/[׀a-+ΤPǛy1rm|(H;c#*,^XBg+ TZOUQendstream endobj 158 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1272 >> stream xURmLSW-;5f{ *M |#CM-J[[*"e"`(h*uSMA]%73v9-=DD$)MQnglx21$_QMCPT-'$iTM%fv-PG*E+bcbIEN2(*N)RqBWl4uDL+-l UEFU *6h,s&Oh"b\3XdrBiӘ AȌ& RkȭIdOdb5H%$"H$sb-qT=DM$Nw5~tO@1CzH@v!37P`hxi;2+08]lιPQf+}J]sd oeŠ Y6|M@>Suxf.DR GF<ӥ;@yebh& Aڶt Q$g}=|D&kLTP ~~u/|ɺW6<ۀݞs!'YKp4~z M_FSn1eN80ãX<MGo ;bֲa=T@Q_/DJ"h lv;+m089;Mw>gP{&..kF&{yi,uW})3 ;+AF4\u5֪=,f`$YrJY9twpszਛ>FE-'D>bUi5}p hS) &3al_& ȦĿ=!endstream endobj 159 0 obj << /Filter /FlateDecode /Length 3026 >> stream xZ[o\~_pnxMiPyhR9F+ՒVŶ;9YIF( 93|7+9\ξQv&ٻL_'o`60"ћ}*AνrօѿaS\+WR٫^,a˅Xy78b u[a60 %dwXjW8ȹ.9  WF*߭/pzRhUt~(cu;J Bw3lޫGC1j?lC8/GfB}TJؕs+])G":考 s"MGBE5U"6Rvb_y8~H lLy 40CEˬq{E*y°^zׯ0ny:geコ,<3>J2]rkO]s'lmToe N؍RTs @B@-A3ݭϙ')=2A-s{k>0,~P84\\譚( \ (a u.IYaԎ* Om{H|i*ݻ̈ΘiJ 4u!ЧW- /zSzXHUȁo|覐Wl}SȳB y\s_ LB<&y!wM5h@Z0IR~( -6M켐wѫBn Bn dxY -% R Eu'Ův(U!og g'Mk$Z7Iv'M#͹͹'~Z4'_7mCaoN>hY/ i /B8zjr4,{VK19Ή &Q@4v9V2mIt7U ^ Wf42ƺQZܰ9pQRh|c\VKX7W*wɄ J q "GVR x8ϚV t:L&"҃Mgp`g5zMCUiT)sX@_-rKAZSs(1K=W섐&A1L+?+*UɨgvbvnĆLhG>U=҇N 5!(e$&J6ށsBdLP5`C:ڪ9,w45N8\U0T%(oUXp hGnЦ /d_ W\'WP|R1ichknNcgzʖq<A,4-vFbEo2+5a֑[.ࢤLp`ج ɬm/MzKԽfܩEĵ[4Bz_2}ӜO RgUu%Cu+G9~XxƂ#dmLʃdAdn]١F\3DN gc], soi.^.б:M%`y$> ʥNfKXr4hХoir Ki"41^ItZiqւ7y5{>X>-TF;zXÍp^!L87]NWq$&dmZ(DY!=֖=/v3F1tO"ñ9RۤuLNy T2Tjy P+[3]S^0OtӽO Uxo= թuG ,;gj'֓:j G-n͎ ?[V'ɚnrca0{՛= s_J(4솾Ęoi*|9שzxD;eredžb䞝UB8,\Ab#q ߔC`w :puoZdjOR&y8ߐk lSdTd5;lwY\/ROx@~~G=ODOq 'űUh,Og}cP.7ް:eh+Ձteϡ(n_= /xM&[unQ?uX-n>w(( i`wM8XurY{ׇ6ݒd>*?e=inysNۻ'e󡐬X=bh5B. I.$kl }OIAгdZn Nʲ3&=c-ۖV6 m6@~DsdNiwӏ6~d LϞ6dcDpT-msň67HoƁVM;e}G>%}]S']8|_ftf@`@!+GzBG'=zħQYjGARQ8u 6{/,S^[hD,Rϊ."ȯ¨o l}ۜ!=cFuPfQRendstream endobj 160 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 600 /Subtype /Image /Width 1200 /Length 30565 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKX" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( dҤHRǠi ݴw[N7ERAzxeæ:͹*[t}hVZD%;YIhQ@mڝΣ,ږ/eV+EUSk&Tj_'Euo z??+k֥Q][^OEebWVףjQ@؟տ5ZP_'Euo z??+k֥Q][^OEebWVףjQ@؟տ5ZP_'Euo z??+k֥Q][^OEebWVףjQ@؟տ5ZP_'Euo zVжkjǀynOG ObWV׭J(/؟տ5RG'Euo zԢ2?+kQ][^( ObWV׭J(/؟տ5RG'Euo zԢ2?+kQ][^( ObWV׭J(/؟տ5RG'Euo zԢ2?+kQ][^( ObWV׭J(/؟տ5RG'Euo zԢ2?+k[Y˝:Xu-E,,kz_`Ш(((((JB#K3IxC$Ѭ&- (XpBջki觍q`auxRfŠ^[-Ҁ:d O€5,o -"}J2 U4"guL,}$5n ,fu)fԵ){,J\*ι]jB6/)G)ZV<3/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw1=ڱo[4اk eReb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E eΛ,:b[uec5+}/0UVkQQZQEQEQES%f|u*vSG#)PFYHf04 [%Ğc XB~gkA ƙǙ#HܜI={]Xo&8Pg'޷,{kdKnYsf۹;@(VPUA5Ƒ>ƵC±$QD6p3Vdxoa; ֽQEQEQEQEQEQEQEQEQEQEQEQE>t*e>O?ʀEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPYZ]/0UYZ]/0TEQEQEQEQEcYx;]JT%o WyU'!bT8 Vd],\e}r3X~ GSqyW坬vV&Cgd#rs1$jVPUA5mlIq-.s,w79hۥM@i_k$QD6p3W_\?+a; u~5袊QEQEQEQEQEQEQE'9݀Z(Q@Q@Q@Q@G|x?P(((((((((((((((+^_`ЫW^_`Ы_(((((((<7Uk^<7Uk^ ( ( ( ( ( ( ( ( ( ( ( ( |x?2'@ (((((((((((((((a?*լa?*h((((((+'s+'sίQ\ ( ( ( ( ( ( ( ( ( ( ( (/)~t!LEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPVWU\WU]QZQEQEQEQECws3AH@MEaék:52e !P}~5_ǩEw+ VS# tQErNC5YNC5@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@>O?ʙOGQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEVVKjVKu4QEQEQEQEQET7w1Ms9} VL:q \C[]C*K{RNw@UM*=N+_ `JpA[?Ww??Ww? kE0((((((((((((BOGQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEek{KuU{KuUKQEQ@Q@Q@Cy}?n5CwmӍOFH q}Iv/oپm{~5_bȶ6z99P)onaE -@2C'oZ:UzeV3IwĖf>E#(u* Y?heoa; ֽbxV$ J(lq7 (((((@&h-4斀(((('LP(((((((((((((((++_F k+_F :( ( ( ( (!>?o7َsOٓf^߳}wkki觍q`auxRfŠ^[-Ҁ:d O€._bȶ6z99SJL&wT.yؒܒOVCV`Z91_ fI:Q.nGY@ۢ+aEPEPEPEPHHme: !wJLfror:qf4)5XLh(AEPEPEP2/)=(((((((((((((((׾a?*꫕׾a?*ꫢ +@ ( ( ( dt [%Ğc XB~gkA ƙǙ#HܜI={(<7Uk^<7Uk^ ( ( ( ( CE!4M&-@nuBZuL 85=Z$0u-(('LP(((((((4f (3EQEQEQEQEQEQE#Z#@MQ@Q@Q@Q@Q@ 5'ԩN ?Vyuq'_Bq%AÁtTP6v[$ iy4,ē׹ 91_ f91_ fEW8Š((( Za9.T 4h&\$8najnzK A04j%jx5i oZZ+xThu+d )QE~t!L ep ( ( ( ( ( ($R@-&REQMh KDvE ";(`QEQEQEQEQEek{KuU{KuUKQEQ@Q@Q@Q@Q@Q@jkGjkEPEPEPAXғQTl9Y@-Fz6(ҽ=ZԪiZ WV\ uQE'Q6JQ@Q@Q@Q@ (&hh;4fE:JQ@ ((((((_`ЫV_`Ш(((((((OßkOßk:QEs(((F=\i cQ9\ 5F^QTMUZrq-JM37pi٨։4<p9 Zq!RZM5tHQHZP$;FBDxS*eU`)M]( ( ('KVZE&kSl E&i*.1ԙ; Zm\VN4KWr4>HQE((((׾a?*꫕׾a?*ꫢ +@ ( ( ( (ڋG=X\§>,\E΀q{+<&$R|95-%k2;KĮ 4<7Uk^<7Uk^ ( ( ( CKHhҢsڤsC!C!TjךBbi1@J$k5e⦎LGnx1hښS@ ))hLG|x?EQEQEQA4M!4(FZwI"K$`S (K@ E((((++_F k+_F :( ( ( ( ( *OfV0σ~xF@{8m`P)UsmvVo&Ef]iaؕ#֕sbusbgW^(qQ@Q@ctc+FA!s)Y1ۊHy%o咩4YxbMNYɑVcs#9DJF:iIiբf-*Rfp$W e:_?_)Ru)㠭)=,(AEPL'&4=I_BI X6ZCIL!jauGލԮ;Ru8Jwi&CCөr+дQEl ((((+^_`ЫW^_`Ы_((((*rzuq^^E?U(2\i''v Do2NyCFMWE(@+{d{ My >&)HTE[ET@UF VPUA"ѿ5Er R% zª?YNC5@Q@Q@Q@4ө#n^J*VSTnj1n A$OZ&4 K/b)zVXxs@1I*-Lr9v ۊMUsVT E- (/txPQH)hE3Fh ӘLh R3TeBԛ"ѻ@ P@fS@Nx ZJZ((((++_F k+_F :( ( ( ( (+jW/g]\X r]BK"D8a(MW;8#>n<}M8"R27Úmy(Q$)[ Wp85J#R" DP:2?ѿ5hu(bPǨ*]r~3Y@ע+aEPEPAh4Fj6RW bWKVdsk&t3pjb5Bi*⎘L/U4M!8Uؤj沔lD UۊϷj9*jAQ)R Z((IuSB*-*J)\E47.] q&H[ғ52M&klɥcQ3Vm ZFZ[Dw҆@X5;5jx42x55"$pimQH:RbQE0 ( ( (2・F u・F (((((((S}5_ f#}5_ f(((4#~ZJ*BY֍_Ʋ[uTdެ\\ztJ%ҳCV~4lԵl-r?zشniri*vJ:ө:(/txPisIE-PIEFih,jۭ#5jGj!j]sJ' N R) +ҥZzTF*Aր)E4SQEQEQEQE#Z#@MQ@Q@Q@Q@Q@Q@Q@r~3]er~3Y@ע+aEPEPAhF*SQJ⑤JU)5zQ?_Ʊ:ekBɹn髝+I&;bZi9ܡXdkNnֵa\cb$fhCȬVVv%BuGZ*AҭEUQE0$W W `.iiRQIIEњJLұ-!jnijAPjM,K B4L =MB(!uD*FR$iš:ӅhKM_JuvAl( ( ( (2・F u・F ((IY`)cVm)c Z4N3m}5cxvb9<€:'E)2: z-<f-{ }+N ( ( (9O 's׬ 'sנ(((V[VPY7]Z=kڀ2._e1Z\gY"=j8PE[ ^{Jų8e=jҀ5 UphhaJ 5M:E6/txPh(NhIBj6\ZePFWͼ11?0Ϛ9sJqӡr]y`>g׶;Uڥ}No[loGst*[Q{@+ Tg?hp+FW^ݫkT8ZCh`iZx@Q@@K6/( n)PiJR)Jct\n^F z nck:4^Yy5Qw'Ҁ-rzڳRNy?"5pH7e"!'-VF ԋQ)8S p ( ( ( BZB((*+m!3\ʑDݰ$Ϲ P3'Z;Pī(<QkNZCuy7_^\ZePFWͼ11?0Ϛ9sJ{{Hnn:E](OfV0σ~xF@{8m`P)Usmu̖Z]II"'R@+.=OS6۪Ȗq]=#hzgCɮm9.YqXv%pH5YRѭ6X¶+{g&PUT{'NC5@?1éC=FUG@+:tQEs(((kuۥHi\7eĭ/CTn:քFsϭs3v>V=c]Mv1UhO1Ua!LՈJ)T.6KJ6n)Q7JZ+U'V䪓: f\Oҳ'kNuɁɭq(){"/5ե 0hUGЀr+/EW#+'CҦ^*HH͒` RW:6QEXQ@Q@Z#]Ur#]UtRDQEhEP\l__=yb3?QNARu70Bf" `Hr@<Ǧߤ>-Ksm,LO#>h9_|(kGQlEձk's͓OMm-zt3}vnc|8NWh(((MWw?zMWw?z((((CQHi(2pkA֫ȃҀ2eQjؒ/j('gcڮ>"Cӊ*Ih,)fFTʝ\m!5(iQJm޳eTy3U^j3.tYGɭIⴋeW ={ClD K1 >V:;=%o?.}X88mF"V@ K+`ʪ89MmPE[Q{@+ Tg?={?͐ȁf!*ߧ\KmF"V@ K+`ʪ89MmQEQUO{4rOF|r6:%hJGh|95-%k2;KĮ OßkOßk:QEs((()+ ԤbM+:PUZfѬdS1 |¾݂ƊEp"HS`rVE=ERFM(i NMl@1KEI+"G e>_?S))-#tZ+B*YHC"ҬsYkP=5U>iqMGIUss?jҞ#U)6'!b(1TԊ*L$QTҘҙ:ԋQ"#6/#9W4eH r*tUE T`0P2RR0AY? bC°o (8UQYNC5@Q@Q@Q@Q@Q@ HE:PdSJԸEڍ&(0-8 P)q@R( ( |x?2'@ (4Rbm4y4-DVPfJZ+0ViBUmBSԛh4 Sp8ڞ GN%SO5>hPi٨@ ( ( BZB((([ ]63]C˗+°F*CCt}M2̩E*Ó'=)u\l]x{Kywq,kNX++Ry O5Ib<*U [(3iavXdt8*B=fYϫvVI ūD1gh'dY"J8`x QBU ( >/#9W4eH r*(u*#PG"جo C:0HnUGWa\?+a; u~5袊QEQEQEQEL#g8sddSH ⛊Zܴm1F*,]ȶӂӱJ (5ISbaNڲ (QE~t!L ep FKE&(#Z2%:ԴjcL" eDVS PѪebݕ`}/%(Zo}b0vFzpZx=ZH =MD 8dLi L͢LӁ0QZFV؆(ڝ]q ( (2・F u・F (((((((S}5_ f#}5_ f((((((%-R@ F)h((('LP((1IKE%!Za!T2bLRZBh)M'ҀP} @S թԊh`ixQ@ ( BZB(((((((?Ww??Ww? kE0(((((+KEK{J)`zVNf;E.4 P1KEi(EUQEQE~t!L ep ( BT #Sb-)1zӍ!Ha!L=jLRH1F)hJRisHbhɤ&zEX585B (4bpH ;04j5")S9Oj+36QEHQE}/0UW+}/0UWE/AEVQEQEQEQEQEQErNC5YNC5@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@>O?ʙOGQEQEQECJi 4۩50QPQ-I$-M-L/L-@-L-L-M-IJ7sQ"&jp409BLPޥQQ/z?HQQjhb)8PZAK@Q@ektVektPSEPEPEPEPEPmE#ܬ.aSџh\΀q{+<&$R9Ӯ͞(] ~&[VkhSZ[t[73,@4ɮm9.YqXv%pH5YR-6a_ @`=eX`P'NC5@?+o (p0 ίQ\ ( ( ( ( ( ( ( ( ( ( ( (/)~t!LEPEPMcNYvVӍD";TiY(Vzaz_փU})1zij{w{Qa؛qzZ:HHQQW3&=EH*5GZd rra3c (׾a?*꫕׾a?*ꫢ +@ ( ( ( (3e5Ibrdkt,OqZ ;R@Q@jkGjkEPEPEPEPEPEPEPEPEPEPEPEPOGSQEQEQE%4өҀ"VZ^VByةjP^F[M€& iw{T@ 7 PqQҫcML)P52SPR@^0 bREPYZ]/0UYZ]/0TEQEQEQEQEVlѦ762LNLn+J@h 91_ f91_ fEW8Š(((((((((((( e>_?S({QEQES)¯AJ*YD!5VBy2R5L]2ԮqPsTDCpw{RSPSPڞeMJ!YCRWCS)ɢeEB"F,Ruh(H (2・F u・F (((((((S}5_ f#}5_ f((((((((((((S)}T( ( (iƚh:Yjۊ( 5RZ0jP-֛fNJ))w >-ZޥGaɩoNTclըێqSUcna(JzTJ)VVKjVKu4QEQEQEQEQEQEQEsbusbgW^(qQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@G|x?P((}55V#5jcQ8Iĩ'z/SW5NQP)IPSS WZ:MUL\[)XV& N U}iCJb=LRGjhSu(zbHZ*UV$GJZh 1{S{WD'ѐ(}/0UW+}/0UWE/AEVQEQEQEQUO{4rOF|Y[Wk}yMBHW#mrk[i/Kev\=MiQExoa; ֽdxoa; ֽQEQEQEQEQEQEQEQEQEQEQEQE>t*e>O?ʀEPEPEPiHh'5ZQV4BUT(9WE֢#:TLKzQTPzԈy@JҪD0j](}EYZQVV&^ QJKI@PVKjVKu4QEQEQEQEQEUmE#ܬ.aSџh\΀q{+<&$RMu>m%=u̻ñ+G*+'s+'sίQ\ ( ( ( ( ( ( ( ( ( ( ( (/)~t!LEPEPH)h= L3Q8ɩM1F**֯8P"W]ҩ32R2sҘVM-N4.@oZm( PV#01MulA pIX[*.ɂģCuM}ca_k=2>JHƑFƊ*@:2? ahcRXQTE ¹?Ww? kE0((((((((((((BOGQEQEQE0T)Zew^Eն -`ѼYFDh:T/#xȠQW>)hP)M)W.)U>b^Y**0s"sSĕ #R.BFU^FiqF2cbQLQRT1K Z(}"Z+̭{iB]{iB)|$QZQEQEQEQEQEQExoa; ֽdxoa; ֽQEQEQEQEQEQEQEQEQEQEQEQE>t*e>O?ʀEPEPEPAJiM""ej´Yh4Thul4SߗG@V.#@T JxJbH(Zv(( 1KEQE#Z#@MQ@Q@Q@Q@Q@Q@Q@r~3]er~3Y@ע+aEPEPEPEPEPEPEPEPEPEPEPEP2/)=(((CҘjJk Ƥo#"RHEs4hYVJJT4hUdLhe)=jlZS.+҈՟.#X94J&JxJ,K<-<%<-RFnC@1KV`)h4+X[ ҁZ+xDQVVWU\WU]QZQEQEQEQEQEQExoa; ֽdxoa; ֽQEQEQEQEQEQEQEQEQEQEQEQE>t*e>O?ʀEPEPEPEPF(1@ "m>P{i6*LQjoҍJb-;RP( ( ( BZB(((((((?Ww??Ww? kE0((((((((((((BOGQEQEQEQE!_Ji+)SOaGB)})e)1ijLQùߥ~&=ǵ+{~jLQ|4-.)ؠT¸ྴɸ)zZƚBQE(( {iB]{iB)|" ((((ڋG=X\§>sLbau%CcFF}q:%hJGkS_o]˸,;$z c ٯn+V4yfE܏|023,m^I󹡌x$;R2R) "? *eoa; ֽcfa4(  w@;VQEQEQEQEQEQEQEQEQEQEQEQE>t*e>O?ʀEPEPEPEPEPEPF(Z(( QEQEQEQEQEQEVVKjVKu4QEQEQEQEQEV^=>==vg"[jE*9P {mq)A"T.lqϸP<@}O[cKYd]g̼ 9Ó]OI}`r]v.㴰JkJ[Ay$RO2yGRR) "?Ww?_Eti Y>+h`"=BuDE¨՝_ (QEQEQEQEQEQEQEQEQEQEQEQE>_?S)BC((((((#ҚA+7M1e*}\f 8--JAp*QE0 ( ( ( (2・F u・F (((((.lS@Xt#= OEQE'7[򴬑L=Huƭ cVh]1B5E`.տ!'"XB]ԝTꂺdn4Cbt?€2Ok?h{Ok??Ok?h{Ok??Ok?hn_ kB?~EVѼ^UE?9+WQ7Ы=r:\{Ok??,Ok?h{Ok??,Ok?h{Ok??, k;}S͚%v8'W_ 쎝Zٳh#X EoMoMoEoMoMoEoMoMoE1ZqjǑ*ʩ,БޢvQ@Q@Q@Q@Q@Q@Q@Q@Q@V>:uXu1\nPs@QEQEQEQEQEVvw{k+ڋX|Iw8Ȩt{o4D[Ū'lFW݀A$6 z( ( ( ( ( +MkX[Im!XV CR1.hzti_yO$q2Ԑ+z ( ( ( ( (?3h|ViR3#:䓵H'xEbgRah.x$, Jڠ(((((((((((((5{In7-)Wʑsǭi@Q@Q@Q@Q@Q@)}XYo$$LHv d3)<3E4MK/-J1K$&((((▊^Uk&;i[$(?26>c]uPEPEPEPEP\|3swqcus f\'=]U RAnpd @ ( ( ( (3Gp vL0Uk{ou+ah I7G%LlQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@7zC›͔ Hִ袀 ( ( ( ( K({y%y%fDGHs'q[TP'citѐIZf=I`ēPEPEPEPEPW$݋^6LHP j!@a먠(((((WľXEkp3.TrI) H{Q̲ PTPEPEPEPEPY# tbhHd;KXpy (F}FRpDoSqq\VPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPfŧGjWwCa&q*ڬKvo <p۱4 -m }ŲC$bUFFFbein.t q4/zCʼK(ue,@#py(fĶvEđ\%q-!@sE׈cO;A@JI r1ҳ-4NKԹHMUX,_e 5k]&c>2r_X`"xum.+;;-/!U("!X1qf=r}:[smAČ=OzSLK4ߒ˝HTTuq PZ!h`Wn.67yG;d~ 8nn!6F$`H*A cO㽾k'P\F@@$`Ȭ7Rԅb gʬ8Ow55KK;9g cEoʀ4袊((((((((((((((((((((((((((((((((+3S[kC!08r@?XWZ6";dHĪOy~ZgڬKvo <p۱5=l싉"fKg ZC03 汴7XN{Ie^%: 8<5z7v:ɻ*+!>4C}̰SHPsUi%':,$?J؏\Ng[xD> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKX" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( dҤHRǠi ݴw[N7ERAzxeæ:͹*[t}hVZD%;YIhQ@mڝΣ,ږ/eV+EUSk&Tj_'Euo z??+k֥Q][^OEebWVףjQ@؟տ5ZP_'Euo z??+k֥Q][^OEebWVףjQ@؟տ5ZP_'Euo z??+k֥Q][^OEebWVףjQ@؟տ5ZP_'Euo zVжkjǀynOG ObWV׭J(/؟տ5RG'Euo zԢ2?+kQ][^( ObWV׭J(/؟տ5RG'Euo zԢ2?+kQ][^( ObWV׭J(/؟տ5RG'Euo zԢ2?+kQ][^( ObWV׭J(/؟տ5RG'Euo zԢ2?+k[Y˝:Xu-E,,kz_`Ш(((((JB#K3IxC$Ѭ&- (XpBջki觍q`auxRfŠ^[-Ҁ:d O€5,o -"}J2 U4"guL,}$5n ,fu)fԵ){,J\*ι]jB6/)G)ZV<3/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw/WVףWV׭J(p2Ouo z?Ouo zԢiw1=ڱo[4اk eReb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E_)G)ZQ.eb b E eΛ,:b[uec5+}/0UVkQQZQEQEQES%f|u*vSG#)PFYHf04 [%Ğc XB~gkA ƙǙ#HܜI={]Xo&8Pg'޷,{kdKnYsf۹;@(VPUA5Ƒ>ƵC±$QD6p3Vdxoa; ֽQEQEQEQEQEQEQEQEQEQEQEQE>t*e>O?ʀEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPYZ]/0UYZ]/0TEQEQEQEQEcYx;]JT%o WyU'!bT8 Vd],\e}r3X~ GSqyW坬vV&Cgd#rs1$jVPUA5mlIq-.s,w79hۥM@i_k$QD6p3W_\?+a; u~5袊QEQEQEQEQEQEQEQEQEQEQEQE~t!L ep ( ( ( ( ( ( ( ( ( ( ( ( ( ( (2・F u・F (((((((S}5_ f#}5_ f((((((((((((S)}T( ( ( ( ( ( ( ( ( ( ( ( ( ( ( BZB(((((((?Ww??Ww? kE0((((((((((((BOGQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEek{KuU{KuUKQEQ@Q@Q@T7w1Ms9} PV:q \C[]C*K{RNwZ:UzWq+"AGe>? EP)ᾚ3Zᾚ3ZQEQEQEQEQEQEQEQEQEQEQEQES>t*eQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ektVektPSEPEPEPEPEPECws3AH@dék:52e !P}~4ETү"Y ?F)U+'s+'sίQ\ ( ( ( ( ( ( ( ( ( ( ( (/)~t!LEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPVWU\WU]QZQEQEQET7G'^߳m1}ST7vZMm8n=T~̟`7hvۿ]>/ooɜ99ss[–6Pn$8R}XGXEi;dIfcI' tR2R2Ə>K}7_jk'bH Ԣvp=z۠(((((((((((('LP(((((((((4Z)( ( ( ( BZB(((((od$ٻGs?.q)hz?trY0Wt!“ ؿ-sM&s<9yjTҬ#,"2Kv$1$զPUA"?Ww?_F4_Ʊ-AK8Qu~6袊QEQEQEQEQEQEQEQEQEQEQEQE~t!L ep ( ( ( ( ( ( ( (Ȥ*\[ғ&C)RAaS(*X}+QQL(( {iB]{iB)|" ((((KTbЎGSwO02^]_I9WМ|Ppd.[v[$ iy4,ē׹(S}5_ f#}5_ f((((((((((((S)}T( ( ( ( (4QIE.h&i3@ )vi3M&?4fzPh٥74RRH)h((a?*լa?*h((((d_?S)BC((((E7u&Mf$;$Si3R꾁a 4fu*é3M&\v3L>;Fh;4ZwL'mEWA!EPEPVWU\WU]QZQEQEQEQEQEQExoa; ֽdxoa; ֽQEQEQEQEQEQEQEQEQEQEQEQE>t*e>O?ʀEPEPEPEJ(4&M;4 Te]-n })A@N >Si)hh(++_F k+_F :( ( ( ( ( ( ( 91_ f91_ fEW8Š(((((((((((( e>_?S({QEQEQESzұjHJ3IHMdV4M-SrZZZZ(-I.)7{ҹ\wT;p(4j iӹ-NNL Zm(DO5NWVdQEj (+^_`ЫW^_`Ы_(((((j/qthas ;GEq:%hJGkS_o]˸,;$zҢ(MWw?zMWw?z(((((((((((()}T|x?2(((I44e'z{50BL/Lwd&@7{S`iZ+Ti iӁ@RPQ@ EPYZ]/0UYZ]/0TEQEQEQEQEQUO{4rOF|r6:%hJGh|95-%k2;KĮ OßkOßk:QEs((((((((((((|x?S2Q@Q@R!l!54j&jɳD-Lf;L75Q%/L/L/ K&꯼>RjzV R+qA-T5"2& B <% 8h}⒖MQ#OO(+^_`ЫW^_`Ы_((((*rzuq^^E?U(2\i''v Do2NyCFMWE(@+{d{ My >&)HTE[ET@UF VPUA"ѿ5Er R% zª?YNC5@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@>O?ʙOGQEQEQEiF5 =A#Pnj֫I'<Iޢy*#%Oލ[@P?*=\VUJ@E5YZF jE5MJiŧ(Q@ BZB((((( ڕW1exay1d@q\PHM)բ!9iiDh$׾a?*꫕׾a?*ꫢ +@ ( ( ( ( ( (9O 's׬ 'sנ(((((((((((('LP(())M%!44j4+ue~IdRL,P[L zӃ{뚐J[ҤVH@UejRsր-TN6(ښjg&/jzJbuZ(++_F k+_F :( ( ( ( ( ( ( 91_ f91_ fEW8Š(((((((((((( e>_?S({QEQE#tݕiHii- cQ9ơ&beoz#榕)RuA ZId⫼DjZP]bpiޕ> >-ZV*KDZVQ=jhڥm UCMN$TV^ Z0ҝM@:6Š(+^_`ЫW^_`Ы_((+*ĚE Qn1f9 `|ծ:Lo6w#]NK69Kk#\3(x`h$Y"C#`zjJޟ.NSM>bGҴ(((MWw?zMWw?z(((((((((((()}T|x?2((RJiQ9J*:PyI3[Yך,95BY?HZMQJ~ty[*>jelޔ}*H4aMJj:PjUXjc",Gڬ/j5*s@IL^@ KH)h(a?*լa?*h((¸]:H/.]i!tb@g<3Zj6pڿ˹;箴-R N{9 KQp̌9rGOOz.C'鹝33l$P( ( ( 91_ f91_ fEW8Š(((((((((((( e>_?S({QER7JZFS- ct6hjk&oU>wY~J̞NMTUθ"9dQM'劮"OS%P-+zT*jEjɡUu9ThVb,f>2*'Zj$^hp rFLuQ]Q@Z#]Ur#]UtRDQEhEP\4RϨjkjhCGAHL2QwlIsHhE^E4ku{o >tG :j);EיNs|}{c]Z=fev$p77NO"UO{4rOF|Y̖Z]II"'R@(9/|EvG$$U|r<@]/&Ef]iaؕ#=]jzlU,3C{IFь9×Z55Vwc4E#(u**F='}4ᾚ3ZXcR% zªVQEQEQEQEQEQEQEQEQEQEQEQE>t*e>O?ʀEPEPi)M!J%N*(沮J5vq@2rqYYc{d͚54G8 "#UHUP9IS"ҬF3P"V^z)q%q VTIS )8P)i-QE#Z#@MQ@Q@TW70Bf" `Hr@.)lg55Nu4wn щWPy\ Y['9>nڹfns#ymbb~a4s<kӡu:u<EPmE#ܬ.aSџh\΀q{+<&$Ru[,˨̒DOW-]jzlU,3C{IFь9Ó]OI}`r]v.㴰JkJ<9.[\m[zAmWp8ZLԫ  OßkW}5hcR% zªVu~6袊QEQEQEQEQEQEQEQEQEQEQEQE~t!L ep ( FKM'5i BS8[r3DA%SչzqɬYLͺnv{9 Vuǥb]ss]4s4Uo;wޫ <^it(i/JgVU#b.#e9ь"*:T(ajɒ1)"^zո޲frdZ1YARsɒ(QR a!œikh( (2・F u・F ((LdY@$~F&POitK2F6@9W;Oz,tki඙YTy|Ƕs@R^cR-XGFX88ux[v^oM.n[>SoEP]LJtT61Ī'-ܡG| ЂH`c5 @((S}5_ f#}5_ f((((((((((((S)}T(%.i(-!!4ҫHsS P=l ɺ^O^r5(>s&L F)J<()ȫhآj8ڀSڧD,gҦHMZyMDY9 "QVb^*8֬"@ )’ ZJZ(++_F k+_F :( ( ̰9H`>E>GjZ(B)>em/xvo;GیuVƺw.і$q+"=oYXm3²5O0=l֟x[v^oM.n[>SoEV]LJtT61Ī'-ܡG| Ԣ#H`c5 @( 91_ f91_ fEW8Š(((((((((((( e>_?Td┚ZSKzRRV$)945LcPIIҨ\j*ɬΪf5b][Kұc]c& ʜ B1ZR}*4kэEcu-+F4+[ss &kR($9$ zmCdw63惜6}[[h!(w9H,<{dR>קC7-wg7#tyv ( ( (9O 's׬ 'sנ((((((((((((~t!L e&h4PM&hMƢ~!ߥRsurkVUOJÞ⩼ҷ%Vkz[j8qگ QR,A⬤]8RTJccV:c>*dNiʞ2%2- "9E< QE-QEQE#Z#@MQ@Q@TW70Bf" `Hr@JV/n M( \ }[[h!(w9H,<{d)MH|[۬XF|sWQ}No[loGst(Q@Q@Q@r~3]er~3Y@ע+aEPEPEPEPEPEPEPEPEPEPEfUv$Tt~uc96 QHMdH ( 1S K)ҩ92*I YÖ,\E΀q{+<&$R|95-%k2;KĮ 4<7Uk^<7Uk^ ( ( ( ( ( ( (4QFhQ3@4(N2/(Ju&(fx1I Jc 뚯"UZҀ3hkEt@CR,\#8GcV:GޤTxU*E^(5N*EZxZxZjH(P)h(((_`ЫV_`Ш((TvXP>A+R}j;xnb1\DFH%$Pr8>P?cweAumRy>Xc{r+cI[ŰFh%_s$q+GTwJG=t6C"%x~s]/]X1,h*g2y4EPEV^=>==vg"[jE*9P {mފS_o]˸,;$zҠ?Ww??Ww? kE0((((((".q]BMFj^!f:ijBsRꮃ“w%!\J(m(1Tu$|TtKv)ch#4Rbqi\SHb!aPՖZ)HZHEҡhFF{CMd \bȩV?jGxN\"%*=RT QxZ,CZV-< p p#!< QEuF &mQVEPEPVWU\WU]QZQEW q|m{m˕X#!ԡ滪nK˯iwwo3.%bvev*O<@_%DL*|J99~U4O5Ib<*U [/#9W4eH r*(u*#PG"جo C:0HnUGWa\?+a; u~5袊QEQEQEQEPN) 4s(%!4yMH\њfzMX4f J斛)VE%-1&ii(`%QHd}!Qԓ}!QӖ Z,!1F)@&oJ-␊~ %K[dS SHhj2daZa!@ )hPEPJZ("E%0iZcڀ#-Ij1@  \RbP( ( ( ( ( ( BZB(((((((?Ww??Ww? kE0(((FI+h4-! FMf٢BQ7Ӕ5WOVq,NV&CCE hi -6\QHcBO|BU%PhGh$) IRbXJE&0i%&+ZMJcڦøSKv .)i@[ؖ4%+AQ@Q@Q@Q@Q@Z#]Ur#]UtRDQEhEPEPEPEPEPEP)ᾚ3Zᾚ3ZQEQEQEQEik=@PWw 7҇۽CS#U$oz&-ԫ@RE-- |x?S2P((((QE%PQKE&)h ( ( ( ( ( ( ( BZB(((((((?Ww??Ww? kE0(((Zu2ІcO5䑤F1]x͛|S7nޕz KTzFN%lԪjdi"`iŧbťҊ-Q@W e>_?_)*+P)hR!ES((iVraqS=(O2-:Iu )hI-QE0 ( ( ( ( ( (2・F u・F ((((j/qthas ;G犳U9Ӯ͞(] ~&9[Wk}yMBHW#mrk[i/Kev\=MbZ]j[Bۢ%8ɝ`xp2?0ɭ MhW|0 0?iHJHE/ߑ@~NC5X;x5(aE(EQ?VQEQEQEQA8lh75^FRyҷ >V<4T=i~6Zr*'4qTjTJ)N@ OG|x?EQEQEQEQEQEQEQEQEQEQEQEQEQEQEVVKjVKu4QEQEQEQEQEV^=>==vg"[jE*9P {mS[m:{x8kf5EKq q; *d~a@~}K{뵙wbWSZU-o `YFр&PU*F=-r~3Zh_ "- vP‹Q7 @~ mE0(((SJa*Q9kFDR7^*SJ9ZQTETEzvPGQ7"BheUHj})DjAQ-H*уE QKH)j>_?_(!@+x|LQEl ((((((((((((((+^_`ЫW^_`Ы_(((((͗4]&Iɑб>hpKEQErNC5YNC5@Q@Q@Q@C@j7jMҨ+UONhZȭ~Ee۞oڀ/jj?v$ANQE.(*I>t*e>O?ʀEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPYZ]/0UYZ]/0TEQEQEQEQEQEQEW'NC5W'NC5_ z(QEQEQAH)Ƙ+Ljǚ)RXp͝<ˆdZqD/&)Nj)btkcB&ZEeBx֝V4=+d֥jAVi N3 8ZZ4['|x?VAEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPVWU\WU]QZQEQEQEQEV^=>==vf-ntK] 5 "_(=Kɮm9.YqXv%pH4EP)ᾚ3Zᾚ3ZQEQEQERZC@ҫMՙ:Uiϸ85rp i ̺h.uۄQ> ajEl @` ].jT|сp*(UȒ%xSTPQE-QE>t*e>O?ʀEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPYZ]/0UYZ]/0TEQEQEQEQEC_AԮ!fH*8ӯtʷ `(`s@n]SEgdWwci2RR0AE$qQq N EX:cxZԡ8nF+Oßk:QEs(((@0n3R15gcDʲ:քUe^kt mKkHTdc4S@((S)}T( ( ( ( ( ( ( ( ( ( ( ( ( ( ( BZB(((((((?Ww??Ww? kE0(((qL5%0VcԤȜT.j h,櫼^բQ33#= ,#>wɥ{PW9EUҜTʔ$e)R #1@Bڳ6Š(QE>_?S)BC((((((((((((((( {iB]{iB)|" (((((((MWw?zMWw?z(((() -)jJLP%)6{TD\P@F)hQ@Q@Q@>O?ʙOGQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEVVKjVKu4QEQEQEQEQEQEQEsbusbgW^(qQ@Q@Q@!Rj0H4,ZdEi*lRbq)Ha Rr-< \RUܖ pb4!+QQ@Q@G|x?P(((((((((((((((+^_`ЫW^_`Ы_((((*OfV0σ~x5SE]IP q@e΀q{+<&$R|95-%k2;KĮ =CXkۭ>n U-dbw#2 滋5[dE$hc(0 $q5ԫF=Eti @~NC5X+h`"=BuDE¨ձ@Q@Q@Q@Q@Q@&)hLR(((((S)}T( ( ( ( ( ( ( ( ( ( ( ( ( ( ( BZB((((( ڋG=X\§>[Wk}yMBHW#m%0H dYԕ 2Lj/^iWqik ̋`dg4xrk[i/Kev\=MiT6kr/$IQO<`HVPUe#P'NC5@M;S+'Pm QGNUڳEW8Š((((InIOtA`iP.q-V%(EPEPEP2/)=(((((((((((((((׾a?*꫕׾a?*ꫢ +@ ( ( ( ( SyN$O1maЌ5=PEP O,:oҲE0 bE/[P"A[uƭ cVk?SОL-cU utbrgRvR?/ 몝Z\#- SO"E?9+9E?9(SO"(SO"E?9+9E?9(SO"(SO"E?9+9|,R'ak H[Fi7rz{xp eE.qUCaٳkx"`JSO"E?9+9E?9(SO"(SO"E?9+9E?9(SO"(SO"xOOO]ZM_ZyvB&\گ)QcZFN"cP)QcG"?@"?)Qc] )QcG"?@"?)Qc] )QcTuMKFzR&2O=FB 1<~G5EsXWCEssXQG5Et4P=G5EsXWCEssXQG5Et4P=G5EsXWCEssXU=B{}cTf][T{#iVl3_ jM5o_& E/G"A[(uƭ cVkz]1B4GhͨjD*BF+z(((((* ;k/0E7D6CS@Q@`h èj|+$SR+z-p0?_ ?_ ߢoMoMoEΙZƨΤ~>_TwOk?տ7w|‹K1}cW(SO"E?9+ 9E?9(SO"(SO"E?9+ 9E?9(SO"(SO"/D5c!IO"Jl6\p" 9M}X˭I̠eޮ)QcZUك `0?Z{Ok??,Ok?h{Ok??,Ok?htxLk'pe6j֭]P?0l©u;˲BƋ 2Ok?h{Ok??,Ok?h{Ok??,Ok?h?T$k!>"m/ zW]FB 1<~r 9E?9(SO"(SO"E?9+ 9E?9(SO"(SO"E?9+ 9E?9(SO"(t&ѬO6hl ^]/kOG:vkf!`0*@`.տ4.տ5E@`.տ4.տ5E@`.տ4.տ5E@`hͨjD*BF+z)QEQEQEQEQEQEQEQEQEQXskIbE7r?ջa@9clQEQEQEQEQEQYj..'c A%c"ene!_v{"5袊(((((a5b)m'a[C\*m Np}H<]=QEQEQEQEQX>.hzti_yO$q2Ԑ(z(((((n6-f S23I;TxNΥs;]]YѸ]I !FYA鎔EPEPEPEPEPEPEPEPEPEPEPEPEPEPEc:ͮY%SV?/q@Q@Q@Q@Q@Vvw{k+ڋX|Iw8Ƞ +#GOE\Zrye}H#iЊנ((((+MkX[Im!XV CR1XDQ)$(9OJ̴9/R#'Y7eVE`}`>6מխvPTF[kUd~A`Frq4WմdfsT$9`F[wyŘmnf{%Cw2P:=C5M2}/~KgO.u!RYQH%@{k+P)^UHZ@<#=.7,ⱹO"o`p szU?[/Aq_1z2".tKRY%[$Kc*;3vn<֓7-.f扟#g*Ӣ(((((((((((((((((((((((((((((((((O[Om +hLq 'Va_ǨYkoX؋-#223?7=hƣoj-]O(hpA/n<%.$/#1i ^` ۚ4cL]:h^&)xPXGT֚^%\ڤd&Ȭ/܆ӚӺ vCi2'h"O!AF2zUT+\Vvw2Z^C39ڪQDC#a-c> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKX " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e-F^&kk9W#*3Wi\G5t?V~%~QNq@4e$Z7d00nc'u۫}^\^iw ɱSuV[Kk=7zM5[I\Ɖ3 sZ"{8ٗ^FznU?@ϋF ]7|qBDd}ykhxP _Rinrogo=*ĝ5t:mcĄT%6o >K+]PYZu U W 0K6U]_Go]9>|r MM뛴/z F2 fڜ.HRHS#8튭oM 2]H:v#Q֣}l_&6~!T~S ӎ|^gk;i[Ug ?czV\oU)kIXVdm>I)i $VC>\(c}=HFMlds6mz#X?:awc}sG=+;yXePr'')&p`%#ؒk\I.I^/.ۋ;A!@##p1OY"T23P|=~$Ȫ B]G*^V_ofDbnEʣLF}utۤ:BUvI' GRӵ𮟩Q$Ie|(, w'YU#RemO\//<sv&n lLd}ާn[o u%D|pH?(k9ZΥbM,@o^מ|<[gtI8 T< zr?1^@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Eqo F+c&(`R@l-<0 3 u͍VN6HIx=*^PC{k A0\>ދi'ǙMY+XXFZm6Xc zwTE4SFF =@- h$AGJr/O פJcc&@ `iKq\Bq^ԓe.4Ig< EWEwm cKqt=ll-E+vPI XgyqqAMC4\ggՊ$j^Gb9\rgzשgP)Wg˞]SΡGS5-R _Kڷב#:TTaQQE!EPEPEPEPEPEPEPLXcYe  (Cß뵿 O+f9[ҶjQEQEQEQEQEQEQEQEQEQEQEQEQEQJ WQE(((444èȦdzIRnQfjMƀ)&}ĔG&@I7 7{T{7P>RMƒI4#֓uGRoRBIZabi)DyJi9&I Q'!8L/AJ#)֒vzQEA7i L;j((W:РUrB sA)Mv m_:kŘϹ?& O~kB_̮ggJDC%FDPt_gZ+ȨHJ(s(//-cY.eXѝcR{&nn7#kV=6r8'<֝QEQEQEQEQEQEQEr]R[5'T ((((((((((((p0QE ( ( ) v4,44Rn}i zPRԙ>ƚXzR!#֍¢)7PW).MM/h)6I%sIR!6֍֡=)ǩB?]v^?ECW?]U*cԿ!._OZTW]߱_OU"t|ڄ*[kp~?Jڪwп)5UTw;+YA [1Z+79g=7v9J `kyDdWuV8,q^?ChDm?P@?QCh܌ C2= 2{ti#ۚ<+,+^],[Paf1=Y(((((((Cß뵿 O+f9[ҶjQEQEQEQEQEQEQEQEQEQEQEQJzP1ET((q@8)qAI N)'ZC44S Aj#M.{TeҘ{)(0*"4Aj!Vso= " Ǯi7zd4O{Ro>k9 %!sb㹤.X.;!qUh=!9vCTa޴N\YznG|~w֍@I``; E{S㡨,F$SkjvUn 䘗/ӑ[g~kNy57I{ A{V孠ŵYE$V|g8qTi˛c*($:-ovWǿ *Ů7繙֝g܃3-t3uo/N y[P!Vk:z;EWlQEQEQEQEQEQEQET՚tΘH~PIOsV.\>qYuXᄴ"T0J96έousa,V7?e81W A?ZRn"ZmI,XFlhi*=dMI_&3³%ıQ9%J|5X]R[5B ( ( ( ( ( ( ( ( ( ( (ɧP:QI(@QEm搜 qL&4sQf*6mZF6>6y4lrj6lAb8FS1ңg jHd=3y59>£.#Ec )$̲}w qˎ ޙadfEӭrԆCT[w2/ր y$Xe$TWG VSGkzIicm0)c;^k"MhN#bیS3Rn-nVW5et$Ā+ܷCӯnue2e<jM420IN/q<9&#HY<ׯnիzβ4-5ݬ1o1'zd'=tHRz\7ցXwJzLlOE63S |_{) Cr қ7iP`{S_Zh¯ڊ(<ࢊ(hRIv6N}pqW7VO o7]?g_U]T/fg#3~>6n[Ӣ5IVO o7U.zm? r9=ެ[?/ EK=F=&(P(((((((((o“J٬o)?Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@U@ ET() MALcNcLRǵ1)95 5ӜҢFCYɨK#vH(k8j&84d,ۍ#Tg'S e<6O̿܁xǚ RW[>뚆%:as}5X]Kiİ\@?ƥɧEBM(Pr 9>ƶ(L|JER((*6UmUA2>q1_jYz͟ڞ$#aw'"t+i:0οg4@ջ\[EYl⌘\oO9 x9>~%4UC2Sj|:=ҀZ8󎿁QVoi-%KgT12d-;DE!Y#v"Y_CVd[v6zg) (q-"HOQj "(>ڕm.2sQ]_Zs~;*( (9 ɤZq_BBc\5⫤ Mّ#'횇T}P</*ICyqu.,|# 5^^[EWQEQEQEQEQEQEQEQEQExsvaIl/HkVT!hn):nKPIQPIQzIFG-Q@Q@Q@Q@*R&1h@QE6 c1S֑CXTDOs*)R5N95 =I!soFNNj9cR“P7gRjZq3}Qf9c)ӕ5frWv X ]S*MZ!HX/SKH@aHj㡬=j!sh{Jo#bRI'$ƙDWBXdS@ 9Ҭ)^څTsJBv}J+6{Qxp@c5iP(˙Q@Im FM yMx>tBCQE"Š( DMw67zuq)mRQT=8#4eZsAGG9nm~F˂;=Nգ֐s]]c_F,MA'RE$c2* ΙYAJ>G=G:( (9i6} ڃ,~nz]ca?*[ҽ ?z[Vd@G7sHlƩ4aGSZ'^ksh,((((((((nUsSL4VGr Ѳ6Ѐ=EP'X_R[kaQL((((((}hIE RtEJ)- UI@@*FQA@ =iҝLnCONn8Da95 JNjF#sT2u=!q6)ت2qSS#dAd Ԉ2~ڙFRcd61jX9c&9F*Ƙ?VdmC>t#oC)EP5Z]X²mM׍UmM̟4l j+K?6&k/Z`E"#sU2aɮC:v`;?YqVe 33hr eյlMյrm)ݜHGӧ<տ s͚e7dIW_-};+ɐ"EtGN{ KcmgmmrT,6 NOb]dzcrWjp]j:r GD8#=x×S N).Kw3cA!9 y5PEPEPEPEPEP_%UC%21uv 6ݏoZԮIRX%2+2.éʯs[vv/-⸄Lru'j -K3Yivґ0*6=2N(T8$pqVO5 /ֽhKk ,dS3۸;VYsJ=h ho;)Eu.HLFj,}M>ڍX2}M34GڍX 7Z7jx=ho *<ފVj* qҜ֕>JZ@IE5Ni 8tijFҖ*:{t!֣sڟQAC$݌Ki|ؠlE%TSnAYkfF≺4Y?6Ql^P$D|@7F VuO #Qi [2ѶcC)2"x!2$|tܠZlM^\F1a\GSϦ0^ܖm-[xqH' b-+Q@Švb*z4BAk R eJvn* l{oQLIV3i}P\D\5qWsOʷlUMF4@=Ngx?ZmN#psNx<{ s(ICP$ )lqN2(803R;1jF)2~(8c&9FUa\g~iMu4QE3(+/fc Փ &A:yXB A3MtIBζ &A:u{ +Kj1U<'k_ƃa{JMQEAEPEPEPEPEPEPEPEPEP ]k_V;Fz:QrMޢ=i7zQ\xxwz7z9BǽǽC{Ѽ{&==3ڏ3ڎP>FPyyrz7zxx.MzKz ҂GCPGJpr:JrpzTɁ➭Di*-<Ӕc$ii:)-4456Onui1F皆C) '5 >Cڢso1ME! 5HJCJњTQI҂럲Cc2JͶ8v]YQYUYM#Kk-(~{vZmKhFzcU5˃͂3az~O[}C8 p֬_K,6<%P3aVJM0z}SR"7=IfHDvQў#Gn{'?ZٍƮT`=qM3үV´H"$v>r] fg0ECO=CT'Vڈ2ڛnfN*E"t$씶3''TgFz赩,k$lR;UKU 0zLխVG10I8=zh6qz.S$82:f 2qz }c-s8cxo {Ek !p6 v>ձEc`)W(nq4?i7)qmmT# 5z!5-39B-ݭBQ1TF25թc2Rb J'dǠjT ♃cdMK>4KR_֙QÊ(s$Z}-J*S@# ߰YϤ\XSkK_kK_`H? >g>߱W֗A+?YZeuwmyo3ZUcp t`H? 7: EQʠހwQEf0(((((((((ϴNoZUsֻu=Kސ]) (Wa\`5 ~yޟ(\ 3'==3h y\{ 9sNC` d}N@OKߋ;R]HǦOy-MkYebs&B,E ?Ā}ySWl~92rQoTo,۴zT䑙--d>Z36|נ^s 6tBu_wn.2 'օO Y;%Qه=G4/6P1rUH3GzԚ쌶B#$s9Etۄ{rJZFEPJXJ[RMw}%83Ɗ?QR,24Q%Sv7p3ڸm?G-5&Frҁ4c8)Gz TN{ jcSHmNL)zQ{1AZb f2cwHHb=Lbm3uFMS?iGKES (f@hASu{ d#jGt_i T'OU?*?['Z}+h;#OT :AC[xT8 {Rl@*FQEQEQEQEQEQEQETWM2[[DȎsʳ|1yy}<ϴ8@ gkHK1Td B0[kJo*r}\a ΞV7w F7n8׵r nss5+yd::s׶kQQVɫS rZMT]i)wEE; `2£ 'GQE\ 0`{(-'3eGihy89ŒO9vJzX0~m[%G220G< "2±J⫩3Rsf r3S!ȪqSGRE"t9Z~cS'JE"QSڟY2ҞQ*yo6J<$?Ƿ28V=Mxߌ5ItG-›{NFJ$pN;WM4=Ż[L/0m#zt黻fM@&o:Ia*f.]?.8R/V4fxP;Jxsr,rsJҡwTR88PI$CJHQDPj}&u'*c!lYS]^QMJC s[YlDJZ>kG{ F5+u4E1t13@4ởKlE#ukR,k8@a/85ƥ#U,\}b'%qQU/5HDjdd/`?Hջ+7 ̇d;0wU 8wW n#6@E8_δc1gkd\;+HH*q:ʓ4y^#{,VV%,zd =pz$ZtExiSJ$SJbԽ:R5B}y҅'MJ[=c43؊i꥾ߕHx "&94}jELd TgJ=*E\te) T1BsO4[Sb&._Zfl(QE`x=tUxcaK$dnOEt$⩁Ed+ϴ'G"GIT\ zW5O>DUek%wk VRLd$Qp= (EPEPEPEPE2YQ<R*'rObN̷Q<; 27hlR'%E|faU#M@Q@g2X[O]O0I^VqkB([O_qAlqJo*Z([Q[tMw'rC 4STtUY ̍,ǹN)$*买&@[H"WV΃Yk0\B"0Ēs#NJ|:=Ɠ a8e:gnճRFW)|(wJM3or:n niqUʒ Mc֦S\ > NxV,z:T ֧NDڝMiՋ(k t[B知IQçfcGP閌x >C v $p>eZ!N jUGsS;ȁ>?Z"%45舡@Xvk7VM7OQ~'ԒZy }tv) x󥵼+NcCFGq𾿽66ш4w9Avѧgt15BOl@GInn.cX)c YKjHғӊY8f ڣ$KU!Yn /!$G>6^Ժ[[.-;\tzשcf 4`|/oV&M5&1(~sT- 5Gi,QH8Af?t=ںba)FA(`8>ҵqIN F$2]׹$%!S*Kf7 KH8VR&&YcHyc?UeICIhIEP :Ex[FV/!,⺶mʻ#k}ij]jm9%sC|rjK'R v;9qkK{"h.dKtfs$s[U]hO;Rv̎=@2z JEQEW)sk_\a{daY^[e לlb[MuuB-O豹bAɓГvMIu-o p\6KG2p3Y}:uv1`g,TN2yY(((3? MMPa)գ4a-±[-Z4c0`dt$2 䑏p3MlW%̚%h?wz 5 ),=}=k>jeU8E+RwaEV ( ( (35coo!lԜ}I⣳#E4pO=p?wfI"#"oG_B2=tB$9fT=d';ucP҃ 5TRzTT rEe"aVS5^3T1XȤZOSJjkEuN!SQ_N㊁ZXU?xՙ;UY RգiV.QP\}v0%Ys08#5ZwAEPW71*  Q ]1JN dA Faoىg7EFX'wYʶ($(#Ӫ(-Ch3Tv@j`r3Y psSV3J6k"r3*t<}*6G:H\CԠUdofx_% 9"8Qs{ga$R6T*SZ-oVt^~V˒pA.IUsZUOʥP"Gej}d=lx-N}1t6ISNqߌ8s:^^4WvlfwlpzRҶI6'Giu"I,jH8oQH۶O? O;@L&:TNJ/uqpB]UI8~urZ?G< *#!d)ǯ53MjBHudIf@H.@{qWIɨ/76s@) zr*W*]ZƑK$F$brNH'B77-hDwvu*6?.Nq+FAQV"ipFDLravۥ]GXѝ*(%)$\]Cmb }U,&\&\2B;˒K%DTg99|tv$3\\ILWj631 ;ź(W&8u<>2+2q{{YTD^`.7asqXՌnGbק#mkT@(~9W<~u=Jk58Kʣ8>Kaw^kCc8}NܚӠE8D;jߔ?iD?tʠtU#4B=PҦX#=(!ȉP/ְA01b 8'w9H#'gi+3#L5$[?l+:]PS2i ]EY T*T4 )}iv֙Ф(fNCBӀ41A NKJ6 (HQEQEQE 4Nj??@-QH(_F 8e,oiu,3=irjY[55"ZG֬lOG㕕/4/\ZIP2.iJ(QEQEQEQEQEQEQE]A$H]d0=Anc&;;;: '=:U((`a^ _F^ݜo|={wբ`7 Jy]~ xT;G9V+ʹ*$R2:zPnQ݉2udd9*pO@@RXA)" =gnTBVtRWO,ft׊X%RA+3}׎¯K{k )n"IjazOEVQ@Jvo΢rJ-fDKhmcw\qՊ*UnⳔJLt)nK;FIĊïI$&n peg8O0Ha$_n/6gq`u|/ 9oIPhlV'Ai'YhB4VY9=:L=&(`QEQEQEQEQEQEQEQEQEy'#7rrj5a)ױChEVąQ@J[ pE#Vu{ep8/8-FEb^"0:GgDFVzFܗ?*MݼN{T݄hSCAdqis.1  5Kv1+->t;rʪ@-C#O%I#'b.;ߵEZ1" 0IgJe:b0 r}k5)NdHX?l]]OGX|ˣ˩d]]OF d;=S`QL9KޤsJ~(WKEP ((BhI4E0 (((j??@-QR0(xB Ix6?1Y_:/Rf5S(??)‘X"uO _nPEi]Nsdp8& =:n@059)Tu("xn;YN9p 9RMc_/ b]sЄhj,UU&xF\*qۚ |7kqay+eIVEQEQEQEQEQEQE?eMJo*JΏUxYR=u #ہΑ855ckQ('Qm2Z˜ Ԋư.dX}R=B7tVh!㊷BiES mDB Zv@WrQjyp$j!OBGwN@ʞQqxǶ%ݭNdZD|L۽@ndj 8wl[BD1jFs8ۗn* T(Ş9;]_5=W܂kTC;7TNvk߳E1R1#2,rHd! g0jH~h;\ӦbDh$=\(j9m™"?+NC)Ab*_vzw/47T_S'ATZpޗ ]KTӄ槐.ZJ>Ӄ\cu֝ 3KQ(ȣ4)XcFiQ`2)Q`u&MPESQEQEQEQEU Sv_ZT5OgGh*FQEs6 AT'ǥٺ\en$O?&tٚTVo?ڗ㔍iVFZ.?}}+?TBI,.m|O+PK* k Os$=4YmVLC#rF3@ h |W_jKyD;| uzᲹwh] F08''EQEQEQEQEQEEu+An2N2#dJ}WN770 yDbJl85>igٍ1ι^齎:t I.63\ʣ ZWeG{g Jd0wc;sVC'j.-#efޮ XLF%ӣ,䘴 e$=^Cz?U+N;GB-#TXSDTkEUEPEPEPEPEPEPEPEPEPۮuhS1STvֿ%7e-8b (s9x8:EŠ-)ڈ2N:mrGCGe.bI>V}EmvXȁlӮ8 x!MĒ]։+ؖ$'v9\FhĂ3"=)c"@/EQ+~ȶ2AsݹvfG~C|spцpXUQS b`#H*9{{WM>v#=j${iH-W-8d(itVN-j4<(QA čߐj˙\MXu{/+z`&+|;,Bl/Ԧ?UE|nP鑜RQ62whw2!}N:Vk4|)Un_)!8v9Z{M[0b*I gsQN`$=}j@ 2z )Y Ԋ jVZ٭DPw d:qFL/*I%y^=_ƹ)8vi\ GJ[pԀr)2ʾ8=*Ppr*9#nƲhe9lpzT楬((ݍ>hdl})-HzjS41iA"x9iXQIKH((((j??@-QR0(, j R"I/$O{N~_*YۆiEѢ;{?t.fVi©^jv38 81(FudQEgQEQEQEQEQEQEQEQEQEyDJo*Cab:nJ>@k`m Os{ӧ7Z!6 fQ{ΥIspCkg<`z:m" M#upGzw(((GV( U&+Xڞw 4hyk۷vjbߟc9"1M܊o mw@9&$ jjR$CZ͔OOVk&KRENCYRQRc$+cM=(/ZZ:SRQE876@IEGSz`E'ZZ@QEQECT]֯ Sv_ZhQ@׏i_UZdHtki%uDKK33\A_R+J.EP#kWh#kWi\_K?/ /A_U.u++OC j '4#:ҋ=^(<(((((((쨥Ng~]r2}hQ@uabUtћhNoV }7)n@3PɒBi`LMh"S3OA撬uIzʫV ھ: 9i"2ѐ@u##޳ͭbHQTބ82kCҼ)ê$ƑA*r@9 hMSVCm+AQ@Q@֊(ue)a^a6?{k5;m0pɽN:hOoqrYݺ=MMS0{s[&$R!jJ0 E!W5AS g!qRT#Q*zSqRȬDli =_֥GJx`j:*l2Z)p`j:)X O + uQH876@IE0S (j??@-QR0(- kw 홈_C{s\/Tɨ~m?b_ة;nt/ AX]E}{u4B'$ i̫zWJmY9񅢊$ZcX6 +¥˂xڀ6(z}1Ҷ:A'VEE{e G/|t ( ( ( ( (059bԴk,$4F|;Fn;,}`j`4e0GPJ ) >x+ST-5{3i}`CrG*AUiU9BI{d3ڀ4vӷzfM5Ey\ji׿FIQt^e3yҥ#iuVC}j"<֩W#3֦*1#5ig\i[I~v@x?5]1 ^9 {cvNO=j ),g\tȧ V,PFF(J\4=k+S`–`R{S.cޟ]Jb=F67ҕG}(ǽ?i4"3iH*j(X=6B=UaQE0 (i1ۊ}\JڛV)!XVREE3<ќ:TN$(mRq\³dz u82MDOlh(C c9cCHj,dmژ{ TJjE`~ \ꆔ1*lҜ֢;ӳ- zQPӃךVPSQ%cO EE+5Z}H€qEsKQH T5OgGjP?i(QE|DEDGPװ<%e>vº?sU,I8*gYϝ_:|Zbuߥ Z."S#'P?4_4c^+KNeik~W*@ Z*s]^Ew)bݗ2"pr2OzT7VI>S0Cmp34EF:*Ӣ3Ki5;MGNxplcI6}YjڅG`+&c !~f<((((((((Od9n?T잕!ZPj2H ~*B=IZMS'=+֏,{XskK}*o,{Q!=-M}(=+hb *zb ZԆ?CNBcB=LAi)Tdpj2ӃQMHU&+JAAEPEP75P>^6TlWj6sŘrJ{N~+5))>N%v} OEmMB1\=5K^82%2 9=:t館ATIH](QESSh 覡)՘\cQQIdj@ASaGHVzJ1TdiTT uW:}KC%89"HӪ*z7cRSѻe ME5NE:a@84Q@U Sv_Z??RhQ@Ĉ]u y #"}b K%RWO"}bȰX*E#ò)dXϬ_-<0"7C {պb_F?F8ERK4QEQQ@Q@Q@Q@Q@Q@Q@Q@Q@u?JPXΧ_J@=kx d%A=zSqBAhzԛANI{'iJƏ/ަ ll/K{"ؾm.FG0XQ*]ދHP}*S(E7SPFz\D=iLLP@#7֣ VJTd`lr*KERv_SlGapIMN*r=5JI+ ES((((oi7kbPm'|ڷ| -pM8 NyJnw\VtSgG:*QE PH%CQE$FHʈf8@HJ3Śv6Ʌ|s9 #=jncݩRjU89dR'%#4SSTrjXŠ(Z??VQU5OgGjX-QR0(=pnW?!ug2'G|ޟ$GñW>OU%P3!>i]_Bjj[o h0ӂ&C袊gQ@Q@Q@Q@Q@Q@Q@Q@Q@jK[ȌdurqqMf?[tS(f?[tQv"A ?CV]³k*x#ȸ<[Tk#Y:)2F~v⋰1 j? j騢g k֣ k֮. j? j騢g k֣ k֮. j? j騢*±˭^6ypC W9c&{*!6?/[pY[E\r6JE!6?/G!b9B-+_Z5 WQEϸX_j?_j(  _տ+G _տ+]UVG|3g[I+ensV4_&iP4JV =MvIi6@}21IeیQ;b9@#WZ@#WZ)˸S+֣+֮9,S+֣+֮9,S+֣+֮9,S+֪7>Y]GTgl)jF]V8 oW?֎yw #K/ j֣K/ j֮9,WK/ j֣K/ j֮9,WK/ j֣K/ j֮9,WK/ j֣K/ j֮9,WK/ j֣K/ j֮9,DK.`a%uV +[M ɚi2>7bR}c X95UVSuA:WWEϸXhvwoCp{MSWuP@sZWWZWWtQco ֣o ֮.5? Ga6TOul {V"A ԬpMLr38]<1n:_j—? mE)?[TRC?QEb5?-c d:VQEQEh.Uzhk:`+3u? W_E)J;3w?j?]OZ(?+3u? T~-/mo Y.#@:z6( (((((((((((((k7wZtڵH83 ]4J=\iڠwݧC YA  w[E-c9@Ҭh:Tr"TbSd{@QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE:Nt|=mP&i6bs[P;ᨮ-$6"[˛yH V'j訢 ( ( ( a pfySG8#qNj$GsvĖcBQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEendstream endobj 163 0 obj << /Filter /FlateDecode /Length 1694 >> stream xXKoG!e~?|I@Z@9 ]B䯧{ff̾[楴" ;BS4 0o[ =& :֖r" 4<0.e1<ׂ2f dAi=.({'=eMܤ1ZvѦb”W=ާCp4 I9q FEl5m_q+Ч%u9%GKNh&fg0%7 Ia8!_Y.1"]IBF_XJ*^xtN J:e6ܦz\w!Wt |1 ȴ~4:gdȓq~R鐉_HP{T}Wwܭ6bI'uGBer't0T y鴽YHA1c\]+v ':={ W5b4.U<龤KiKBT/v vT_Z{&;|aTnu&V\%!"3NBe25gX~endstream endobj 164 0 obj << /Type /XRef /Length 168 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 165 /ID [<0646212036a98b74d176588314332bd6>] >> stream xcb&F~0 $8Jҕxf»-00 kpKH$) "zAZ "9_H DJH&Q=L^,•`"`r/̻`X-_@$IQ#y "` v1ش  v endstream endobj startxref 196802 %%EOF colorspace/tests/0000755000175400001440000000000012213624621013740 5ustar zeileisuserscolorspace/tests/Examples/0000755000175400001440000000000012213624621015516 5ustar zeileisuserscolorspace/tests/Examples/colorspace-Ex.Rout.save0000644000175400001440000003414212131470020022025 0ustar zeileisusers R version 3.0.0 (2013-04-03) -- "Masked Marvel" Copyright (C) 2013 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > pkgname <- "colorspace" > source(file.path(R.home("share"), "R", "examples-header.R")) > options(warn = 1) > library('colorspace') > > base::assign(".oldSearch", base::search(), pos = 'CheckExEnv') > cleanEx() > nameEx("HLS") > ### * HLS > > flush(stderr()); flush(stdout()) > > ### Name: HLS > ### Title: Create HLS Colors > ### Aliases: HLS > ### Keywords: color > > ### ** Examples > > # A rainbow of full-intensity hues > HLS(seq(0, 360, length=13)[-13], 0.5, 1) H L S [1,] 0 0.5 1 [2,] 30 0.5 1 [3,] 60 0.5 1 [4,] 90 0.5 1 [5,] 120 0.5 1 [6,] 150 0.5 1 [7,] 180 0.5 1 [8,] 210 0.5 1 [9,] 240 0.5 1 [10,] 270 0.5 1 [11,] 300 0.5 1 [12,] 330 0.5 1 > > > > cleanEx() > nameEx("HSV") > ### * HSV > > flush(stderr()); flush(stdout()) > > ### Name: HSV > ### Title: Create HSV Colors > ### Aliases: HSV > ### Keywords: color > > ### ** Examples > > # A rainbow of full-intensity hues > HSV(seq(0, 360, length=13)[-13], 1, 1) H S V [1,] 0 1 1 [2,] 30 1 1 [3,] 60 1 1 [4,] 90 1 1 [5,] 120 1 1 [6,] 150 1 1 [7,] 180 1 1 [8,] 210 1 1 [9,] 240 1 1 [10,] 270 1 1 [11,] 300 1 1 [12,] 330 1 1 > > > > cleanEx() > nameEx("LAB") > ### * LAB > > flush(stderr()); flush(stdout()) > > ### Name: LAB > ### Title: Create LAB Colors > ### Aliases: LAB > ### Keywords: color > > ### ** Examples > > ## Show the LAB space > set.seed(1) > x <- RGB(runif(1000), runif(1000), runif(1000)) > y <- as(x, "LAB") > head(x) R G B [1,] 0.2655087 0.5308088 0.871805 > head(y) L A B [1,] 76.00763 -4.987872 -28.84153 > plot(y) > > > > cleanEx() > nameEx("LUV") > ### * LUV > > flush(stderr()); flush(stdout()) > > ### Name: LUV > ### Title: Create LUV Colors > ### Aliases: LUV > ### Keywords: color > > ### ** Examples > > ## Show the LUV space > set.seed(1) > x <- RGB(runif(1000), runif(1000), runif(1000)) > y <- as(x, "LUV") > head(x) R G B [1,] 0.2655087 0.5308088 0.871805 > head(y) L U V [1,] 76.00763 -25.7427 -45.3886 > plot(y) > > > > cleanEx() > nameEx("RGB") > ### * RGB > > flush(stderr()); flush(stdout()) > > ### Name: RGB > ### Title: Create RGB Colors > ### Aliases: RGB > ### Keywords: color > > ### ** Examples > > # Create a random set of colors > set.seed(1) > RGB(R = runif(20), G = runif(20), B = runif(20)) R G B [1,] 0.26550866 0.93470523 0.82094629 [2,] 0.37212390 0.21214252 0.64706019 [3,] 0.57285336 0.65167377 0.78293276 [4,] 0.90820779 0.12555510 0.55303631 [5,] 0.20168193 0.26722067 0.52971958 [6,] 0.89838968 0.38611409 0.78935623 [7,] 0.94467527 0.01339033 0.02333120 [8,] 0.66079779 0.38238796 0.47723007 [9,] 0.62911404 0.86969085 0.73231374 [10,] 0.06178627 0.34034900 0.69273156 [11,] 0.20597457 0.48208012 0.47761962 [12,] 0.17655675 0.59956583 0.86120948 [13,] 0.68702285 0.49354131 0.43809711 [14,] 0.38410372 0.18621760 0.24479728 [15,] 0.76984142 0.82737332 0.07067905 [16,] 0.49769924 0.66846674 0.09946616 [17,] 0.71761851 0.79423986 0.31627171 [18,] 0.99190609 0.10794363 0.51863426 [19,] 0.38003518 0.72371095 0.66200508 [20,] 0.77744522 0.41127443 0.40683019 > > > > cleanEx() > nameEx("USSouthPolygon") > ### * USSouthPolygon > > flush(stderr()); flush(stdout()) > > ### Name: USSouthPolygon > ### Title: Polygon for County Map of US South States: Alabama, Georgia, and > ### South Carolina > ### Aliases: USSouthPolygon > ### Keywords: datasets > > ### ** Examples > > ## generate color palette > pal <- diverge_hcl(9) > n <- length(pal) > > ## draw shaded polygons > plot(0, 0, type = "n", xlab = "", ylab = "", xaxt = "n", yaxt = "n", bty = "n", + xlim = c(-88.5, -78.6), ylim = c(30.2, 35.2), asp = 1) > polygon(USSouthPolygon, col = pal[cut(na.omit(USSouthPolygon$z), breaks = 0:n/n)]) > > > > cleanEx() > nameEx("XYZ") > ### * XYZ > > flush(stderr()); flush(stdout()) > > ### Name: XYZ > ### Title: Create XYZ Colors > ### Aliases: XYZ > ### Keywords: color > > ### ** Examples > > ## Generate white in XYZ space > XYZ(95.047, 100.000, 108.883) X Y Z [1,] 95.047 100 108.883 > > > > cleanEx() > nameEx("choose_palette") > ### * choose_palette > > flush(stderr()); flush(stdout()) > > ### Name: choose_palette > ### Title: Graphical User Interface for Choosing HCL Color Palettes > ### Aliases: choose_palette > ### Keywords: misc > > ### ** Examples > > > > > cleanEx() > nameEx("color-class") > ### * color-class > > flush(stderr()); flush(stdout()) > > ### Name: color-class > ### Title: Class "color" > ### Aliases: color-class RGB-class sRGB-class XYZ-class HSV-class HLS-class > ### LAB-class LUV-class polarLAB-class polarLUV-class [,color-method > ### coerce,color,RGB-method coerce,color,sRGB-method > ### coerce,color,XYZ-method coerce,color,LAB-method > ### coerce,color,polarLAB-method coerce,color,HSV-method > ### coerce,color,HLS-method coerce,color,LUV-method > ### coerce,color,polarLUV-method coords,color-method plot,color-method > ### show,color-method > ### Keywords: classes > > ### ** Examples > > x = RGB(runif(1000),runif(1000),runif(1000)) > plot(as(x, "LUV")) > > > > cleanEx() > nameEx("coords") > ### * coords > > flush(stderr()); flush(stdout()) > > ### Name: coords > ### Title: Extract the numerical coordinates of a color > ### Aliases: coords > ### Keywords: color > > ### ** Examples > > x <- RGB(1, 0, 0) > coords(as(x, "HSV")) H S V [1,] 360 1 1 > > > > cleanEx() > nameEx("desaturate") > ### * desaturate > > flush(stderr()); flush(stdout()) > > ### Name: desaturate > ### Title: Desaturate Colors by Chroma Removal in HCL Space > ### Aliases: desaturate > ### Keywords: color > > ### ** Examples > > ## rainbow of colors and their desaturated counterparts > rainbow_hcl(12) [1] "#E495A5" "#DB9D85" "#C7A76C" "#ABB065" "#86B875" "#5CBD92" "#39BEB1" [8] "#4CB9CC" "#7DB0DD" "#ACA4E2" "#CD99D8" "#E093C3" > desaturate(rainbow_hcl(12)) [1] "#ABABAB" "#ABABAB" "#ABABAB" "#ABABAB" "#ABABAB" "#ABABAB" "#ABABAB" [8] "#ABABAB" "#ABABAB" "#ABABAB" "#ABABAB" "#ABABAB" > > ## convenience demo function > wheel <- function(col, radius = 1, ...) + pie(rep(1, length(col)), col = col, radius = radius, ...) > > ## compare base and colorspace palettes > ## (in color and desaturated) > par(mar = rep(0, 4), mfrow = c(2, 2)) > ## rainbow color wheel > wheel(rainbow_hcl(12)) > wheel(rainbow(12)) > wheel(desaturate(rainbow_hcl(12))) > wheel(desaturate(rainbow(12))) > > > > graphics::par(get("par.postscript", pos = 'CheckExEnv')) > cleanEx() > nameEx("hex") > ### * hex > > flush(stderr()); flush(stdout()) > > ### Name: hex > ### Title: Convert Colors To Hexadecimal Strings > ### Aliases: hex > ### Keywords: color > > ### ** Examples > > hsv = HSV(seq(0, 360, length = 7)[-7], 1, 1) > hsv H S V [1,] 0 1 1 [2,] 60 1 1 [3,] 120 1 1 [4,] 180 1 1 [5,] 240 1 1 [6,] 300 1 1 > hex(hsv) [1] "#FF0000" "#FFFF00" "#00FF00" "#00FFFF" "#0000FF" "#FF00FF" > barplot(rep(1,6), col = hex(hsv)) > > > > cleanEx() > nameEx("hex2RGB") > ### * hex2RGB > > flush(stderr()); flush(stdout()) > > ### Name: hex2RGB > ### Title: Convert Hexadecimal Color Specifications To RGB Objects > ### Aliases: hex2RGB > ### Keywords: color > > ### ** Examples > > hex2RGB(c("#FF0000","#00FF00", "#0000FF")) R G B [1,] 1 0 0 [2,] 0 1 0 [3,] 0 0 1 > > > > cleanEx() > nameEx("mixcolor") > ### * mixcolor > > flush(stderr()); flush(stdout()) > > ### Name: mixcolor > ### Title: Compute the convex combination of two colors > ### Aliases: mixcolor > ### Keywords: color > > ### ** Examples > > mixcolor(0.5, RGB(1, 0, 0), RGB(0, 1, 0)) R G B [1,] 0.5 0.5 0 > > > > cleanEx() > nameEx("polarLAB") > ### * polarLAB > > flush(stderr()); flush(stdout()) > > ### Name: polarLAB > ### Title: Create polarLAB Colors > ### Aliases: polarLAB > ### Keywords: color > > ### ** Examples > > ## Show the polarLAB space > set.seed(1) > x <- RGB(runif(1000), runif(1000), runif(1000)) > y <- as(x, "polarLAB") > head(x) R G B [1,] 0.2655087 0.5308088 0.871805 > head(y) L C H [1,] 76.00763 29.26965 260.1883 > plot(y) > > > > cleanEx() > nameEx("polarLUV") > ### * polarLUV > > flush(stderr()); flush(stdout()) > > ### Name: polarLUV > ### Title: Create polarLUV Colors > ### Aliases: polarLUV > ### Keywords: color > > ### ** Examples > > ## Show the polarLUV space > set.seed(1) > x <- RGB(runif(1000), runif(1000), runif(1000)) > y <- as(x, "polarLUV") > head(x) R G B [1,] 0.2655087 0.5308088 0.871805 > head(y) L C H [1,] 76.00763 52.18057 240.4397 > plot(y) > > > > cleanEx() > nameEx("rainbow_hcl") > ### * rainbow_hcl > > flush(stderr()); flush(stdout()) > > ### Name: rainbow_hcl > ### Title: HCL and HSV Color Palettes > ### Aliases: rainbow_hcl diverge_hcl diverge_hsv heat_hcl sequential_hcl > ### terrain_hcl > ### Keywords: color > > ### ** Examples > > ## convenience demo functions > wheel <- function(col, radius = 1, ...) + pie(rep(1, length(col)), col = col, radius = radius, ...) > > pal <- function(col, border = "light gray") + { + n <- length(col) + plot(0, 0, type="n", xlim = c(0, 1), ylim = c(0, 1), axes = FALSE, xlab = "", ylab = "") + rect(0:(n-1)/n, 0, 1:n/n, 1, col = col, border = border) + } > > ## qualitative palette > wheel(rainbow_hcl(12)) > > ## a few useful diverging HCL palettes > par(mar = rep(0, 4), mfrow = c(4, 1)) > pal(diverge_hcl(7)) > pal(diverge_hcl(7, h = c(246, 40), c = 96, l = c(65, 90))) > pal(diverge_hcl(7, h = c(130, 43), c = 100, l = c(70, 90))) > pal(diverge_hcl(7, h = c(180, 70), c = 70, l = c(90, 95))) > pal(diverge_hcl(7, h = c(180, 330), c = 59, l = c(75, 95))) > pal(diverge_hcl(7, h = c(128, 330), c = 98, l = c(65, 90))) > pal(diverge_hcl(7, h = c(255, 330), l = c(40, 90))) > pal(diverge_hcl(7, c = 100, l = c(50, 90), power = 1)) > > ## sequential palettes > pal(sequential_hcl(12)) > pal(heat_hcl(12, h = c(0, -100), l = c(75, 40), c = c(40, 80), power = 1)) > pal(terrain_hcl(12, c = c(65, 0), l = c(45, 95), power = c(1/3, 1.5))) > pal(heat_hcl(12, c = c(80, 30), l = c(30, 90), power = c(1/5, 1.5))) > > ## compare base and colorspace palettes > ## (in color and desaturated) > par(mar = rep(0, 4), mfrow = c(2, 2)) > ## rainbow color wheel > wheel(rainbow_hcl(12)) > wheel(rainbow(12)) > wheel(desaturate(rainbow_hcl(12))) > wheel(desaturate(rainbow(12))) > > ## diverging red-blue colors > pal(diverge_hsv(7)) > pal(diverge_hcl(7, c = 100, l = c(50, 90))) > pal(desaturate(diverge_hsv(7))) > pal(desaturate(diverge_hcl(7, c = 100, l = c(50, 90)))) > > ## diverging cyan-magenta colors > pal(cm.colors(7)) > pal(diverge_hcl(7, h = c(180, 330), c = 59, l = c(75, 95))) > pal(desaturate(cm.colors(7))) > pal(desaturate(diverge_hcl(7, h = c(180, 330), c = 59, l = c(75, 95)))) > > ## heat colors > pal(heat.colors(12)) > pal(heat_hcl(12)) > pal(desaturate(heat.colors(12))) > pal(desaturate(heat_hcl(12))) > > ## terrain colors > pal(terrain.colors(12)) > pal(terrain_hcl(12)) > pal(desaturate(terrain.colors(12))) > pal(desaturate(terrain_hcl(12))) > > > > graphics::par(get("par.postscript", pos = 'CheckExEnv')) > cleanEx() > nameEx("readRGB") > ### * readRGB > > flush(stderr()); flush(stdout()) > > ### Name: readRGB > ### Title: Read RGB Color Descriptions > ### Aliases: readRGB > ### Keywords: color > > ### ** Examples > > ## Not run: > ##D rgb <- readRGB("pastel.rgb") > ##D hsv <- readRGB("pastel.rgb", "HSV") > ## End(Not run) > > > > cleanEx() > nameEx("readhex") > ### * readhex > > flush(stderr()); flush(stdout()) > > ### Name: readhex > ### Title: Read Hexadecimal Color Descriptions > ### Aliases: readhex > ### Keywords: color > > ### ** Examples > > ## Not run: > ##D rgb <- readhex("pastel.txt") > ##D hsv <- readhex("pastel.txt", "HSV") > ## End(Not run) > > > > cleanEx() > nameEx("sRGB") > ### * sRGB > > flush(stderr()); flush(stdout()) > > ### Name: sRGB > ### Title: Create sRGB Colors > ### Aliases: sRGB > ### Keywords: color > > ### ** Examples > > # Create a random set of colors > set.seed(1) > sRGB(R = runif(20), G = runif(20), B = runif(20)) R G B [1,] 0.26550866 0.93470523 0.82094629 [2,] 0.37212390 0.21214252 0.64706019 [3,] 0.57285336 0.65167377 0.78293276 [4,] 0.90820779 0.12555510 0.55303631 [5,] 0.20168193 0.26722067 0.52971958 [6,] 0.89838968 0.38611409 0.78935623 [7,] 0.94467527 0.01339033 0.02333120 [8,] 0.66079779 0.38238796 0.47723007 [9,] 0.62911404 0.86969085 0.73231374 [10,] 0.06178627 0.34034900 0.69273156 [11,] 0.20597457 0.48208012 0.47761962 [12,] 0.17655675 0.59956583 0.86120948 [13,] 0.68702285 0.49354131 0.43809711 [14,] 0.38410372 0.18621760 0.24479728 [15,] 0.76984142 0.82737332 0.07067905 [16,] 0.49769924 0.66846674 0.09946616 [17,] 0.71761851 0.79423986 0.31627171 [18,] 0.99190609 0.10794363 0.51863426 [19,] 0.38003518 0.72371095 0.66200508 [20,] 0.77744522 0.41127443 0.40683019 > > > > cleanEx() > nameEx("writehex") > ### * writehex > > flush(stderr()); flush(stdout()) > > ### Name: writehex > ### Title: Write Hexadecimal Color Descriptions > ### Aliases: writehex > ### Keywords: color > > ### ** Examples > > set.seed(1) > x <- RGB(runif(10), runif(10), runif(10)) > writehex(x, "random.txt") [1] "random.txt" > > > > ### *