ellipse/0000755000176200001440000000000014456303212011707 5ustar liggesusersellipse/NAMESPACE0000644000176200001440000000103114456227360013132 0ustar liggesusersexport(ellipse,plotcorr,pairs_profile, pairs) importFrom("graphics", "axis", "box", "lines", "mtext", "par", "plot", "plot.new", "polygon", "strwidth", "text") importFrom("stats", "approx", "qchisq", "qf", "spline") S3method(ellipse,arima0) S3method(ellipse,default) S3method(ellipse,glm) S3method(ellipse,lm) S3method(ellipse,nls) S3method(ellipse,profile) S3method(ellipse,profile.glm) S3method(ellipse,profile.nls) S3method(pairs,profile) S3method(pairs,default,.pairs_default) S3method(pairs,formula,.pairs_formula) ellipse/README.md0000644000176200001440000000347314411030435013170 0ustar liggesusers # ellipse [![R-CMD-check](https://github.com/dmurdoch/ellipse/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/dmurdoch/ellipse/actions/workflows/R-CMD-check.yaml) [![CRAN status](https://www.r-pkg.org/badges/version/ellipse)](https://CRAN.R-project.org/package=ellipse) `ellipse` contains ellipse drawing routines designed for pairwise confidence regions, including distorted ellipses for nonlinear regression regions. It also includes a routine `plotcorr()` for plotting correlation matrices using ellipses. ## Installation It is on CRAN, and can be installed using ``` r install.packages("ellipse") ``` You can install the development version of ellipse from [GitHub](https://github.com/) with: ``` r # install.packages("devtools") devtools::install_github("dmurdoch/ellipse") ``` ## Example Plot approximate pairwise confidence regions and profile trace plots for a nonlinear fit: ``` r data(Puromycin) Purboth <- nls(formula = rate ~ ((Vm + delV * (state == "treated")) * conc)/(K + conc), data = Puromycin, start = list(Vm = 160, delV = 40, K = 0.05)) Pur.prof <- profile(Purboth) ellipse::pairs(Pur.prof) ``` The `plotcorr()` function can plot a matrix of ellipses: ``` r library(ellipse) #> #> Attaching package: 'ellipse' #> The following object is masked from 'package:graphics': #> #> pairs corr.mtcars <- cor(mtcars) ord <- order(corr.mtcars[1,]) xc <- corr.mtcars[ord, ord] colors <- c("#A50F15","#DE2D26","#FB6A4A","#FCAE91","#FEE5D9","white", "#EFF3FF","#BDD7E7","#6BAED6","#3182BD","#08519C") plotcorr(xc, col=colors[5*xc + 6]) ``` ellipse/man/0000755000176200001440000000000014456231120012460 5ustar liggesusersellipse/man/pairs.profile.Rd0000644000176200001440000000603414456232001015526 0ustar liggesusers\name{pairs_profile} \alias{pairs_profile} \alias{pairs.profile} \alias{ellipse-deprecated} \alias{pairs} \title{ Profile pairs } \description{ This function produces pairwise plots of profile traces, profile sketches, and ellipse approximations to confidence intervals. } \usage{ pairs_profile(x, labels = c(names(x), "Profile tau"), panel = lines, invert = TRUE, plot.tau = TRUE, plot.trace = TRUE, plot.sketch = TRUE, plot.ellipse = FALSE, level = 0.95, \dots) # Deprecated generic function. Use graphics::pairs instead. pairs(x, ...) } \arguments{ \item{x}{ An object of class \code{profile}, generally the result of the \code{profile()} function. } \item{labels}{ The labels to use for each variable. These default to the variable names. } \item{panel}{ The function to use to draw the sketch in each panel. } \item{invert}{ Whether to swap the axes so things look better. } \item{plot.tau}{ Whether to do the profile tau (profile t) plots. } \item{plot.trace}{ Whether to do the profile trace plots. } \item{plot.sketch}{ Whether to do the profile sketch plots. } \item{plot.ellipse}{ Whether to do the ellipse approximations. } \item{level}{ The nominal confidence level for the profile sketches and ellipses. } \item{\dots}{ Other plotting parameters. }} \section{Side Effects}{ Produces a plot on the current device for each pair of variables in the profile object. } \details{ This function implements the plots used in Bates and Watts (1988) for nonlinear regression diagnostics. Prior to \pkg{ellipse} version 0.5, the \code{pairs_profile} function was a \code{profile} method for the \code{pairs} generic. This caused various conflicts, because \pkg{graphics} also exports a \code{pairs} generic, and package \pkg{MASS} exported a \code{profile} method for \code{graphics::pairs}. As of \R version 4.4.0, the \pkg{MASS} method will be in \pkg{stats} instead. If \code{x} is a profile object then \code{pairs_profile(x)} will call the function from this package. If you'd rather use the \pkg{MASS}/\pkg{stats} method, then make sure the appropriate package is loaded, and call \code{pairs(x)}. (Prior to \pkg{ellipse} 0.5, there were complicated rules to determine what \code{pairs(x)} would do; those should still work for now, but \code{ellipse::pairs} will disappear in a future release.) } \references{ Bates and Watts (1988). Nonlinear Regression Analysis and Its Applications. Wiley. \doi{10.1002/9780470316757}. } \seealso{ \code{\link{pairs}}, \code{\link{profile}}, \code{\link{ellipse.profile}}, \code{\link{ellipse.nls}} } \examples{ # Plot everything for the Puromycin data data(Puromycin) Purboth <- nls(formula = rate ~ ((Vm + delV * (state == "treated")) * conc)/(K + conc), data = Puromycin, start = list(Vm = 160, delV = 40, K = 0.05)) Pur.prof <- profile(Purboth) pairs_profile(Pur.prof, plot.ellipse = TRUE) # Show the corresponding plot from MASS/stats: if (getRversion() < "4.4.0") { loadNamespace("MASS") } else loadNamespace("stats") graphics::pairs(Pur.prof) } \keyword{dplot} \keyword{regression} \keyword{nonlinear} ellipse/man/ellipse.profile.nls.Rd0000644000176200001440000000373114245466215016655 0ustar liggesusers\name{ellipse.profile.nls} \alias{ellipse.profile.nls} \title{ Pairwise profile sketch } \description{ This routine approximates a pairwise confidence region for a nonlinear regression model. } \usage{ \method{ellipse}{profile.nls}(x, which = c(1, 2), level = 0.95, t = sqrt(2 * qf(level, 2, attr(x, "summary")$df[2])), npoints = 100, \dots) } \arguments{ \item{x}{ An object of class \code{\link{profile.nls}}. } \item{which}{ Which pair of parameters to use. } \item{level}{ The \code{level} argument specifies the confidence level for an asymptotic confidence region. } \item{t}{ The square root of the value to be contoured. } \item{npoints}{ How many points to use in the ellipse. } \item{\dots}{ Extra parameters which are not used (for compatibility with the generic). } } \value{ An \code{npoints} x \code{2} matrix with columns having the chosen parameter names, which approximates a contour of the function that was profiled. } \details{ This function uses the 4 point approximation to the contour as described in Appendix 6 of Bates and Watts (1988). It produces the exact contour for quadratic surfaces, and good approximations for mild deviations from quadratic. If the surface is multimodal, the algorithm is likely to produce nonsense. } \references{ Bates and Watts (1988). Nonlinear Regression Analysis and Its Applications. Wiley. \doi{10.1002/9780470316757}. } \seealso{ \code{\link{profile}}, \code{\link{ellipse.nls}} } \examples{ # Plot an approximate 95\% confidence region for the Puromycin # parameters Vm and K, and overlay the ellipsoidal region data(Puromycin) Purboth <- nls(formula = rate ~ ((Vm + delV * (state == "treated")) * conc)/(K + conc), data = Puromycin, start = list(Vm = 160, delV = 40, K = 0.05)) Pur.prof <- profile(Purboth) plot(ellipse(Pur.prof, which = c('Vm', 'K')), type = 'l') lines(ellipse(Purboth, which = c('Vm', 'K')), lty = 2) params <- Purboth$m$getPars() points(params['Vm'],params['K']) } \keyword{dplot} \keyword{models} ellipse/man/plotcorr.Rd0000644000176200001440000000552114245466215014631 0ustar liggesusers\name{plotcorr} \alias{plotcorr} \title{ Plot correlation matrix ellipses } \description{ This function plots a correlation matrix using ellipse-shaped glyphs for each entry. The ellipse represents a level curve of the density of a bivariate normal with the matching correlation. } \usage{ plotcorr(corr, outline = TRUE, col = 'grey', numbers = FALSE, type = c("full","lower","upper"), diag = (type == "full"), bty = "n", axes = FALSE, xlab = "", ylab = "", asp = 1, cex.lab = par("cex.lab"), cex = 0.75*par("cex"), mar = 0.1 + c(2,2,4,2), ...) } \arguments{ \item{corr}{ A matrix containing entries between \code{-1} and \code{1} to be plotted as correlations. } \item{outline}{ Whether the ellipses should be outlined in the default colour. } \item{col}{ Which colour(s) to use to fill the ellipses. } \item{numbers}{ Whether to plot numerical correlations in place of ellipses. If numbers is \code{TRUE}, then the correlations will be rounded to a single decimal place and placed on the plot. } \item{type}{Character. Plot \code{"full"} matrix or just \code{"upper"} or \code{"lower"} triangular part of it.} \item{diag}{Logical. Plot diagonal elements or not. } \item{bty, axes, xlab, ylab, asp, mar, cex.lab, ...}{Graphical parameters which will be passed to \code{\link{plot}} when plotting.} \item{cex}{Graphical parameter which will be passed to \code{\link{text}} when plotting.} } \details{ The ellipses being plotted will be tangent to a unit character square, with the shape chosen to match the required correlation. If \code{numbers = FALSE}, the \code{col} vector will be recycled to colour each of the ellipses; if \code{TRUE}, it will be ignored. } \references{ Murdoch, D.J. and Chow, E.D. (1996). A graphical display of large correlation matrices. The American Statistician 50, 178-180. \doi{10.2307/2684435}. } \seealso{ \code{\link{ellipse}} } \author{Duncan Murdoch; Gregor Gorjanc suggested the \code{type} and \code{diag} options.} \examples{ save.par <- par(ask = interactive()) # Plot the correlation matrix for the mtcars data full model fit data(mtcars) fit <- lm(mpg ~ ., mtcars) plotcorr(summary(fit, correlation = TRUE)$correlation) # Plot a second figure with numbers in place of the # ellipses plotcorr(summary(fit, correlation = TRUE)$correlation, numbers = TRUE) # Colour the ellipses to emphasize the differences. The color range # is based on RColorBrewer's Reds and Blues (suggested by Gregor Gorjanc) corr.mtcars <- cor(mtcars) ord <- order(corr.mtcars[1,]) xc <- corr.mtcars[ord, ord] colors <- c("#A50F15","#DE2D26","#FB6A4A","#FCAE91","#FEE5D9","white", "#EFF3FF","#BDD7E7","#6BAED6","#3182BD","#08519C") plotcorr(xc, col=colors[5*xc + 6]) plotcorr(xc, col=colors[5*xc + 6], type = "upper") plotcorr(xc, col=colors[5*xc + 6], type = "lower", diag = TRUE) par(save.par) } \keyword{hplot} ellipse/man/ellipse.lm.Rd0000644000176200001440000000252313663503243015024 0ustar liggesusers\name{ellipse.lm} \alias{ellipse.lm} \title{ Outline a pairwise confidence region for a linear model fit. } \description{ This function produces the ellipsoidal outline of a pairwise confidence region for a linear model fit. } \usage{ \method{ellipse}{lm}(x, which = c(1, 2), level = 0.95, t = sqrt(2 * qf(level, 2, x$df.residual)), \dots) } \arguments{ \item{x}{ The first argument should be an \code{lm} object, usually resulting from a call to \code{lm()}. } \item{which}{ Which selects the pair of parameters to be plotted. The default is the first two. } \item{level}{ The confidence level of the region. Default 95\%. } \item{t}{ The t statistic on the boundary of the ellipse. } \item{\dots}{ Other \code{ellipse.default} parameters may also be used. }} \value{ A matrix with columns \code{x} and \code{y} to outline the confidence region. } \details{ The summary function is used to obtain the covariance matrix of the fitted parameters. } \seealso{ \code{\link{ellipse.default}} } \examples{ # Plot the estimate and joint 90\% confidence region for the displacement and cylinder # count linear coefficients in the mtcars dataset data(mtcars) fit <- lm(mpg ~ disp + cyl , mtcars) plot(ellipse(fit, which = c('disp', 'cyl'), level = 0.90), type = 'l') points(fit$coefficients['disp'], fit$coefficients['cyl']) } \keyword{dplot} \keyword{regression} ellipse/man/ellipse.glm.Rd0000644000176200001440000000367013663503243015177 0ustar liggesusers\name{ellipse.glm} \alias{ellipse.glm} \title{ Outline an approximate pairwise confidence region } \description{ This function produces the ellipsoidal outline of an approximate pairwise confidence region for a generalized linear model fit. } \usage{ \method{ellipse}{glm}(x, which = c(1, 2), level = 0.95, t, npoints = 100, dispersion, \dots) } \arguments{ \item{x}{ The first argument should be a \code{glm} object, usually resulting from a call to \code{glm()}. } \item{which}{ Which selects the pair of parameters to be plotted. The default is the first two. } \item{level}{ The confidence level of the region. Default 95\%. } \item{t}{ The t statistic on the boundary of the ellipse. For Binomial or Poisson families, \code{sqrt(qchisq(level, 2))} is used; for other distributions, \code{sqrt(2*qf(level, 2, df))} where \code{df} is the residual degrees of freedom. } \item{npoints}{ How many points to return in the ellipse. } \item{dispersion}{ The value of dispersion to use. If specified, it is treated as fixed, and the chi-square limits for \code{t} are used. If missing, it is taken from \code{summary(x)}. } \item{\dots}{ Other \code{ellipse.default} parameters may also be used. }} \value{ A matrix with columns named according to which to outline the confidence region. } \details{ The summary function is used to obtain the approximate covariance matrix of the fitted parameters, the dispersion estimate, and the degrees of freedom. } \seealso{ \code{\link{ellipse.default}} } \examples{ ## Dobson (1990) Page 93: Randomized Controlled Trial : counts <- c(18,17,15,20,10,20,25,13,12) outcome <- gl(3,1,9) treatment <- gl(3,3) glm.D93 <- glm(counts ~ outcome + treatment, family=poisson()) # Plot an approximate 95 \% confidence region for the two Outcome parameters plot(ellipse(glm.D93, which = c(2,3)), type = 'l') points(glm.D93$coefficients[2], glm.D93$coefficients[3]) } \keyword{dplot} \keyword{regression} ellipse/man/ellipse.profile.Rd0000644000176200001440000000411414245466215016056 0ustar liggesusers\name{ellipse.profile} \alias{ellipse.profile} \title{ Pairwise profile sketch } \description{ This routine approximates a contour of a function based on the profile of that function. } \usage{ \method{ellipse}{profile}(x, which = c(1, 2), level = 0.95, t = sqrt(qchisq(level, 2)), npoints = 100, \dots) } \arguments{ \item{x}{ An object of class \code{\link{profile}}, e.g. from \link[MASS:confint]{profile.glm} in the MASS package. } \item{which}{ Which pair of parameters to use. } \item{level}{ The \code{ellipse.profile} function defaults assume that the profiled function is -2 times the log likelihood of a regular model. With this assumption the \code{level} argument specifies the confidence level for an asymptotic confidence region. } \item{t}{ The square root of the value to be contoured. } \item{npoints}{ How many points to use in the ellipse. } \item{\dots}{ Extra arguments are not used. } } \value{ An \code{npoints} x \code{2} matrix with columns having the chosen parameter names, which approximates a contour of the function that was profiled. } \details{ This function uses the 4 point approximation to the contour as described in Appendix 6 of Bates and Watts (1988). It produces the exact contour for quadratic surfaces, and good approximations for mild deviations from quadratic. If the surface is multimodal, the algorithm is likely to produce nonsense. } \references{ Bates and Watts (1988). Nonlinear Regression Analysis and Its Applications. Wiley. \doi{10.1002/9780470316757}. } \seealso{ \code{\link{profile}}, \code{\link{ellipse.nls}} } \examples{ # Plot an approximate 95\% confidence region for the Puromycin # parameters Vm and K, and overlay the ellipsoidal region data(Puromycin) Purboth <- nls(formula = rate ~ ((Vm + delV * (state == "treated")) * conc)/(K + conc), data = Puromycin, start = list(Vm = 160, delV = 40, K = 0.05)) Pur.prof <- profile(Purboth) plot(ellipse(Pur.prof, which = c('Vm', 'K')), type = 'l') lines(ellipse(Purboth, which = c('Vm', 'K')), lty = 2) params <- Purboth$m$getPars() points(params['Vm'],params['K']) } \keyword{dplot} \keyword{models} ellipse/man/ellipse.Rd0000644000176200001440000000506014411031702014400 0ustar liggesusers\name{ellipse} \alias{ellipse} \alias{ellipse.default} \title{ Make an ellipse } \description{ A generic function returning an ellipse or other outline of a confidence region for two parameters. } \usage{ ellipse(x, \dots) \method{ellipse}{default}(x, scale = c(1, 1), centre = c(0, 0), level = 0.95, t = sqrt(qchisq(level, 2)), which = c(1, 2), npoints = 100, center = centre, \dots) } \arguments{ \item{x}{ An object. In the default method the parameter \code{x} should be a correlation between -1 and 1 or a square positive definite matrix at least 2x2 in size. It will be treated as the correlation or covariance of a multivariate normal distribution. } \item{\dots}{ Descendant methods may require additional parameters. } \item{scale}{ If \code{x} is a correlation matrix, then the standard deviations of each parameter can be given in the scale parameter. This defaults to \code{c(1, 1)}, so no rescaling will be done. } \item{centre}{ The centre of the ellipse will be at this position. } \item{level}{ The confidence level of a pairwise confidence region. The default is 0.95, for a 95\% region. This is used to control the size of the ellipse being plotted. A vector of levels may be used. } \item{t}{ The size of the ellipse may also be controlled by specifying the value of a t-statistic on its boundary. This defaults to the appropriate value for the confidence region. } \item{which}{ This parameter selects which pair of variables from the matrix will be plotted. The default is the first 2. } \item{npoints}{ The number of points used in the ellipse. Default is 100. } \item{center}{ An alternative to \code{centre} to accommodate US spelling. } } \value{ An \code{npoints} x \code{2} matrix is returned with columns named according to the row names of the matrix \code{x} (default \code{'x'} and \code{'y'}), suitable for plotting. } \details{ The default method uses the \code{(cos(theta + d/2), cos(theta - d/2))} parametrization of an ellipse, where \code{cos(d)} is the correlation of the parameters. } \seealso{ \code{\link{ellipse.lm}}, \code{\link{ellipse.nls}}, \code{\link{ellipse.profile}}, \code{\link{ellipse.profile.nls}}, \code{\link{ellipse.arima0}}, \code{\link{plotcorr}} } \references{ Murdoch, D.J. and Chow, E.D. (1996). A graphical display of large correlation matrices. The American Statistician 50, 178-180. \doi{10.2307/2684435}. } \examples{ # Plot an ellipse corresponding to a 95\% probability region for a # bivariate normal distribution with mean 0, unit variances and # correlation 0.8. plot(ellipse(0.8), type = 'l') } \keyword{dplot} ellipse/man/ellipse.profile.glm.Rd0000644000176200001440000000500614411031702016615 0ustar liggesusers\name{ellipse.profile.glm} \alias{ellipse.profile.glm} \title{ Pairwise profile sketch for GLM profiles } \description{ This routine approximates a pairwise confidence region for a \code{glm} model. } \usage{ \method{ellipse}{profile.glm}(x, which = c(1, 2), level = 0.95, t, npoints = 100, dispersion, \dots) } \arguments{ \item{x}{ An object of class \code{\link[MASS]{profile.glm}}. } \item{which}{ Which pair of parameters to use. } \item{level}{ The \code{level} argument specifies the confidence level for an asymptotic confidence region. } \item{t}{ The square root of the value to be contoured. By default, this is \code{qchisq(level, 2)} for models with fixed dispersion (i.e. binomial and Poisson), and \code{2 * qf(level, 2, df)} for other models, where \code{df} is the residual degrees of freedom. } \item{npoints}{ How many points to use in the ellipse. } \item{dispersion}{ If specified, fixed dispersion is assumed, otherwise the dispersion is taken from the model. } \item{\dots}{ Extra parameters which are not used (for compatibility with the generic). } } \value{ An \code{npoints} x \code{2} matrix with columns having the chosen parameter names, which approximates a contour of the function that was profiled. } \details{ This function uses the 4 point approximation to the contour as described in Appendix 6 of Bates and Watts (1988). It produces the exact contour for quadratic surfaces, and good approximations for mild deviations from quadratic. If the surface is multimodal, the algorithm is likely to produce nonsense. } \references{ Bates and Watts (1988). Nonlinear Regression Analysis and Its Applications. Wiley. \doi{10.1002/9780470316757}. } \seealso{ \code{\link{profile}}, \code{\link{glm}}, \code{\link{ellipse.glm}} } \examples{ ## MASS has a pairs.profile function that conflicts with ours, so ## do a little trickery here noMASS <- is.na(match('package:MASS', search())) if (noMASS) require(MASS) ## Dobson (1990) Page 93: Randomized Controlled Trial : counts <- c(18,17,15,20,10,20,25,13,12) outcome <- gl(3,1,9) treatment <- gl(3,3) glm.D93 <- glm(counts ~ outcome + treatment, family=poisson()) ## Plot an approximate 95\% confidence region for the two outcome variables prof.D93 <- profile(glm.D93) plot(ellipse(prof.D93, which = 2:3), type = 'l') lines(ellipse(glm.D93, which = 2:3), lty = 2) params <- glm.D93$coefficients points(params[2],params[3]) ## Clean up our trickery if (noMASS) detach('package:MASS') } \keyword{dplot} \keyword{models} ellipse/man/figures/0000755000176200001440000000000014411030433014117 5ustar liggesusersellipse/man/figures/README-plotcorr-1.png0000644000176200001440000027721414411030433017577 0ustar liggesusersPNG  IHDRz4iCCPkCGColorSpaceGenericRGB8U]hU>+$΃Ԧ5lRфem,lAݝi&3i)>A['!j-P(G 3k~s ,[%,-:t} }-+*&¿ gPG݅ج8"eŲ]A b ;l õWϙ2_E,(ۈ#Zsێ<5)"E6N#ӽEkۃO0}*rUt.iei #]r >cU{t7+ԙg߃xuWB_-%=^ t0uvW9 %/VBW'_tMۓP\>@y0`D i|[` hh)Tj0B#ЪhU# ~yhu fp#1I/I"0! 'Sdd:J5ǖ"sdy#R7wAgdJ7kʕn^:}nWFVst$gj-tԝr_װ_7Z ~V54V }o[G=Nd>-UlaY5V}xg[?k&>srq߀].r_r_qsGjy4k iQܟBZ-<(d=dKO a/zv7]ǰod}sn?TF'|3Nn#I?"mzv~K=گsl<b|_|4>?pߋQrib 2* (Ѧh{28oIyes8';Z9h6g>xRx'b8ՃWOϫ[xn%|^z}%x c8eXIfMM*i_@IDATx|'B !ޤ7 HQ+ Q" XK, T Cm{xrWrrqywo{ 7;oB"B@! BM4 #B@! Q@FB@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! p+Q@݊[B@! T! B@ԭe0! B@Q@B@! <(|dB@:ܹsӗ_~xnO< &P9h޽pu駟v! ! " S`! >>Z>}۷kgϞvܩ =)Rf̘Aݺu3>%:wmذW˭111TP! wKƲkbb>/_f_,%B,g͚5v_0`6Sa˖ZzSڅ`7(|D@POZ2W!:Dm۶5;-Z(_J;9qbۣG4iխ[ɣ"տ;1cĶ|%(He)/@K4/)Ν;a,ڵkG 3A(/ժU˰ٮwCG%|ѢEwy'gméS4^rWsZ|,+5 `,8ilqӪVqH+j/%NXΟ?"ʦ:pz}W_&|ME'Дo! u֩B* aQ={vra9322ڷo%(g-[65kz믿&Rի;I۵kpaKi?P~+2R&9*X߲eD#M?$!u=8r7 oҗ@NT=*@}_sT"ԩSUZ'('8 =cǎиLaV\1\ >P|oݺEXfINV$ p@Q.[+iӦcKjIWf)KrB 2Hz '6mZi)8*"!::6?x8/'k>JAP"ץ˕㸣W_}{;Sd2tϞ=*خB O gҥU<ᓖDO^v9i!`āl ɽ{y$mG}(U{;wnMksG`"~P؟~ZUDx#/W~`儒 n #ׯ'}.]:tep*? ,=Rl]ADZI+Ε+fG?ȑcXDk…Af}V7<맪@A0X E^1(!Z"<>e, 8׷da޽J-PBaE%E$+֐j cpBd:1 Y)aY/&jziҞ={J+pU9r!C!,ƙLw!Q<9J. _c &G|'+9/"9EcVeExZ^LxrJBD+*P;*q.JTK P QGuiFʥ}!~kŊaګq|@F~0{Ș1c4^7O6 O$ Pz\ $k [Ra!9a3WѳUy䴄QWDB_v۶meK{RbŔ灤t*K4Lk;;s )eك05Hzm6m>M4?ʕ+g6֬YC , .ǚx\,#!H rj & LQX4D!)tYD͛d)?'~s(eJßɜǒn޼Ē/8t~) &H_!*U]6[oRaƍUiTgCUHO?͛W-O#"2oF~j^Vvihr_p!}ʽG(Vb Hfo ?Q! >z2AAkxOF\%ef ~aDFuQ/ ?=rDݛJՋ@,!o# 0H_M6+Dtc^,qSXE!Ws#" 955K.r\t8HKTG5>4*XtAX"G2'7>ΑϨ5mD#=M_k| |}rO265~kh|WHJ54W* CDZG"9 S_R$N?r1G 6hAybX*T!/r**AAx`˪ _0C5\P]U Օ@Rn ) LvP)f͉%%s8p3]SLJ%"RQ@SUsHvڥ+X`Ļve-ZrLΛ7 (׮][E">gKĺx#9F]wD"ƒ@ù9+5ƍSsB o!(H n(? ъ5PP6( Pޠ!oR2070J-;ʵ# VgK'2`u-[&ZA1,@}]C(șkjRVJ)c=V 9 P9`aQweX{a X|M?x '-</j7NK}r$kdjO"GK=',kֺ-*/#+:-/' >;e1/vPH 8o|f%QCNPW g=yM\1ԩS'? BuC$R9`1oNŔ8|,H-KᏆssT{=B &6C*w,;;#X2Ř3LBVpʕ+'Ka8|:'\ `=DTw JVrt|ܣϟWy9 p3yy`ubOQ8J@PGqBPS$ÊeeDCgoܸfرݑꤖ _Aij !C( Ac(|]%) JrNi5nj*dzD9+pI[;w,sVg N;J"\zA` 搣yH :3s~Xh8~ w$GЂ'|<{P?1U 8dX޽KPs HZiT33 /*I)nΈ@/6":bGlр0WyZ)5Plc?WD#A(Sk={Ý>X34PЗ/_2:ŘH6nDA /s"B pDx CbmRtE"rEOs5\%Zwa4(΅視ȻʹJR!+3Yyq=bhNVK *6^SUxjhiTtw, 3HO"B@<q* p[\=~V1>rÁ`߿kw$$$HR gPTz>sYTRJP1բT!W 5T& \2č7RKKjG66Tr68 @<#d >زDR+`it9^=J;ݿ?=xxK>c'OLݻGOvIW^U|K\~Ξ=K09p?~J_03wI6 R-B /+N_#4/oo-`chͿݤiW tVx oPL.-sZs;:<άY1kZ2iLXΣɨ4vqZj+Z:fTQso~~vR~^_{0-2:jÖA8PcS KhR۹p6gHq4VV4p֭c}v)Q\9MʩW|ݒڈiӪ}qݻ? ފXmwtfmcT7$?@mϞ5Ɗ]k\v-Džh ʪsbYRyja3  >sܶo>.?m'enDJP-孽ҴsvT;´CZ_GӧqBxaV!ͣ 3v˴U@;wlL%?dV W_Q=7$2H:0 M{zW7j/Td5*n0EΜV>W6n`nwm,)2& .7>Oϟ%V<({ƻgXaw7zntz/zJK.… 6IޥK_V<~(~ -^EGG6}̘1ԓnƍ=yD}Ӧwj*`Be-5ns׮]itfK.6*T`i͛7fȌaâ飻 tNjhرGfY7X?0"W]OX,}B s{Y܅ĉ]|Ν;cbH9eD2ݻC~ @IŠEX)_'Q>_N;oR&^?w5|UEYe²-2sѢEcV>_}Z'GM_y%lRcFR>A-־ /{*V8Y gͤY}eZ)QKٶ6nٲb ޾m(9+gL+k޽{r >ӍYEsԢE hzlnɶ~*7ըQ bk7nPQח~>T:7MjhԏA=ߴ mWϚBSz(]7쏮1B-2b}q7lsf֭Z3Eq~ e@ǖPߘ%Ʈgnߥ/@I%s?ڱcnJeNeh2~T%9sQk;PdN&udO&ēR.lR3CoVUPVcBBխ[WEfɒ2eDm۶MT*l nTxAU#pٳ'[S)B\雜֦2^XylS ϙNKJ<xgt04a„$-{|m~A`R ,oӡi!ʴWʳcp(uU~ȡ:n/ܴfSPk%|tC|۶iDVB?56e;b_޷mf6ڹn=5ۛЇ g(U9PBѯ2l(9T YxZn-R'$3`:kDO$/y]Ve#:?_Kt&kժM T-- y_2:tv;" ogYyf7n{7&ܸN'W> VR}K1o=_l pY71lrh'?fϝ;7ue~`W\Y^J^A{nدg9Ex31S o8?b{oW ԠǬZgqڽu;ի]bC<DDes%C*K+9 X,:cs5M!*!w3Z͸KJM(s*~WM6cb)(c~PűݹN'̝;b;P7| Z7}ܹJ,oz DݼyZuӧ<o~ݕ45)~[̰%ٳљӧ5)K -sp a9?H/Zܴ?6|EgΜO>1oyrh!Mm8A~, ?Q\8+NsڵkMH_ooݼMoo>`?s~X']ݜ\hn5p$kUŇS5aBݘSM/p)?|s!ɺ/m+]Q>x F&,)E CAYѣG,(TEEE ׇF/sA}TW(VCJ6=&O=:v|NET~B"T:ʕꑰ0:wwy:zH8wM|H)Y# `~j-k5CɬRy>㼟f޿Zb_mlAXb m׎2stf*u,^h(|5g ރ ,DKiڅl&S~TS)r 溸r eʞ. ،|Xq1iVXN= ~?x.\l?Jb#wPͶѳe\$m(| O" ']-ke? (t5DZd?Ml1sA(q򉠑˗.QtMs˴Tz"(`bԫ߀(Mi?wizS;XI?O{6m(_V6ۙ6ѩ=܎Kkcٿݲ.۶IҪ%Aٚi,{xB.Kejx!ER3[m]P9Bg'40A]9"AZx$1AJo^ӑ.)00vI\Zعߋ] 6ԞXyOƟtihG_vL3\vDS-?L+6T1\va-3VX_ CW) /[bl_\3 #ڸ}.[?\+6^oזVXaOת-9f,O0Nsg)sn^MD7[9x ѱ{iÆ ʍxp@ZVXkjs_CTNZ$k֬xc8/|]=˾s䯿wCqRFC{;Sռ_\P59z*/_{إ9)~l1,g/r<2{8Aj~ԃO! \)3IK * a9 _?sfwJ/8%'Ԏ(J$m0]#7֦Ra:wG{5(YIC?DǾcc #-[6tyֶ#ѪQoQ68l’^A藯G=V1Z>W9~8]ʨX4D=;&]{Htlm5O܏/S..PzNyBÊ^➺.+%9'(޴$ϾtjTis.ܤ, Һ+x b _useқ|/aׂ9MPqkΏSJ4'|>͗! D$sL}2?ʧ1'l3LV3WXziz?p'7N|jTU8/(8tF Qvsä]?)KÔ)S㷸dpb$-Ed홣V @B!xLyO˜%ƕw -_ڧ~ҼˋZ^^Zf9CZt:-.$XmONׯ&i;慨2s 3Fe\T p-=Λ'iyW]J+jΝK2gcW*5 J<-\Xۺu3k NSΣܹө`!)?!'Z{uBlx(co/Em9x.?^z̙\?Ҧ ޡ{qT;U9#2(kZbw6DW΢'/ԩ}ӅEKw-ڙ=|~xtZ`AҦvbnTlDqѡt=jVED;"y9!N:6[Ƀuq$}{"yquZ9d9 W2̒7}/1m3\W.R&6Az@ܧ\wޡQql志3 sr˖|=)DqIOK\}]:!5jؐ]J*'Z رrUwQv(kfO~NQf; wAϗ+O۷m-9ˉӻsv?>ݸ)yH$ih]<[:|.l+/2Kl} ԩT?s6{o{[:o]4;ccciOb3i,K9}:8NO y|yHgt~i Gq4ֻӸH´j]Bo剳uNѧPI.C:o+TA}8#O?N+V ֩kinxr%*9uu.!]ܹawTԗ%ɹwwȋo-Y*k@i$A ^gߔ->W |Q7<(./4fEO sFO s~=P&&Q>1 K9pX\jEEC'Rζߒ9;*W6 r!Ky]':=| r}.r|bKıM2E%bhUXQb;z4KDή,$NDx%(#KD_ dltp?efeN]dk?*<6ӜI(]O{x;"="DyA`Qx hڵ ScKv\n.ɓt#n! S#O%[KUK޾-Y [ԁ#]%17,9c *Ɓ$ޑ(ɟލ5t9ƙiYg$R d)rq'n\\JqĈƛ~FqԴ6}LfTݏoܸQ5%4(-G!Su`u54dGk邨Tɒ6}6l@сɗ {{k&aTFubGs͒lkRcM—KxB @emwy${[H:Ŋ*@D kG*:h!\ Rך&o [/L?֕Ś?PMmi'i0m4PWx *K{Vej8Xm'('ٳoE+߱z_PTԺ!_䋭ߠW:{7^vup$j۶U'R (|< ڎmޢ?OEp}zݹpfbWRA6^}zkv66>bE nZlպ1]䲐Jy.)9tjUVY=ٵ`T&Kme$zՒ,C>GEt#|$uU-"Ju<+2 U>Ô rEǸ )8?T94B7्н oo(K /t\IRaQ2TR+Ud#͗7IWiF'١K/S),5Һm=ZnR!y*`k3ewXuzC==-V, jrZ[ ,)~K6Nߴs&jPGŋ鉿}uP|آi6%dL@POz2w !W91,jժ'&T[\2e]X\ o&D.2+8en*fF/> U IAz -o3ϯOvb E:=Cj׶au̍PX6k!>HCli|lYO}٢l,p!͌lٮ AFu, sENueaKzܲGM֬&*;~1v{7,PI$H/^a94KP o}^·%(N!=`aѴfjj+6XK8 nNZm%t$N7-WնS<D}֯/ yMP^?$-؟PSkԨ!.]݉Vm=!O݇όQXZf-:[Tti4;m,m|sؚoQLYjCtq7*$Gx[˗/?Z:x~@ix%*J](֘d󀇷RflL!#abfmiܟS iVɋoOnU֯><,M,~d+0gS7u:`fzp[ŋImfۭaAYF[KzNiuH{HE?H`ߊ0XR׉ۗ\I;я_/HP+^Qг\޻wob /r-f%N7zjU)qAxQ@=bT]K _|trĎ"6AB K,IJl͈^ n8[v5ںT .GeȑyC]|BnѢ%EoLa/?ᒆ&NE n ,F+ݨ')3gd?ewwέ[,m N_uW?AIqf*UDŊ7۝vC(6M 3m4NA'LwY\ϭ_!g+m,_:* 닑? [!cdnߠ+C؅Ɵy1|[g:[K)Czk +ӯi4򋑉^YW g(U9L&Mj֬_^!˲* $7I" TWH;}`8*8?X_\44Jข]μB]:4e+W9MR­;0y6Tt)f۶ÒMꏜ67ߌ۬2G7(kSxۀOnNP3}焹vmk43V&Lw,oiJV1h6+t*m4RB-o؎4m7ݍKt`S~E9X:cC -t)Vʌ{Kcv!oߠ.c>pBW\9ʕ+q~ J?_|y'1{,X<3ꫯ9l(8!p]펁WH5AAK> tQr=jBfϦz}yVytr{P2Z\?)k|Vsӄ4q]g͙C2Q'|15H\H4٘ ,䓿F:Kw<5.9A*wU].;'*%cΰ;?b++v;:?˖ʵڒ8E1.mgGz[-09VNl Ͼ}<[[KA'TfzU9R\]J'NR闰X$#SEaÆW4C Oi) t}(ڷ{BC$uwT_w휯0K[))TANq(M\!:+Y:SOA8B# ij_Bzwa%4G Panbvw.Yq^W{$fGĶ4}WA%{D%o9r|@: %A _[1-kZÜ+2=Xݵcx 2{N4i$Zu&ȫc> x|-zO/W~6ܿզUpJ˽=a&W>h+֖$,B& }dg~ȰLHo88%axBS߻u~ۈ.H֭S顬`e'M]]^0\/OP(EJ~>p?oޮ(Mb9 k3Lvի^W|?|f0J~r5cAϭv&xp0跡׷IdJ[CFfNo<0kPhh]Ӄ *0^bxDgKc՚5wqߥ^ cCJ7ǠݯlM0pMc, .[[lz h)H)!PnFe^(&, ek3O$GATSVc'#v.i,H?/]2&?=9*P3U.yK+לN7w/`+4.:Ρ{J{w{5i>%X2|q }{)߾OQQ62㏩;v]KS(+z\"XU_zٙPUɘ4@= V&sI[X?#[Gpß;en+O/`j߈#2tPZ>`Vd I}V/?ȅD'_!?4NI={|Қ֥3pP3NyED諌dz\Tq&g̟CkTyt~U4qxQ`lɎG6jGat:>)+q߾}Cf10epjU9u!T.]L8I3fΤnPSIsov=ޤmg0m>yQ3I ԳW/,~9锳(ΩSY)֨s#,,߭g}s(= g.2Q+Äj5ҜsU,Q+|yh(+悭Jjwv!8!V &@)Ы''xvZ4 {!eQGXHb@+_jr,*@\i:^ΓݍNYKEtVts|U;zl- '/ *ߟו&oXGOL/E[.<D\^ciVzwqha~ۣW;}C(r&j|w[>s[@ V9{.Ky3lԄ^zQiEhΙ+434Z388GVLiIP5J[BW`+%^4Ҋo?~d6Gq;[Tɉ\l=[Cfzb >C}{HHZW^."B{Oǜ)\ҡ6L˜1yr*$-_蟗ܵ6mRÄ-ʼnc fqi۷otۗ.]͝y qF4>W4~PU1vi%qߧ{Ze˖.[:)M M+"HOD.72Ag(Zxbuk}ΜO-cO[ *URcqqqX/SJݫ0iSYrB@! ]|xi]GHc! YRk #y?r"8y (ҡ={vTS! iXq<ȩ qnZ{v׮]` ]v2eqw秊+W<.hystn8\p+,OH5~_'e'1;/|`D0F\>q94eݙC GǨ~lP&L˧d/3/jY{̙Zsb_>vx? S~}gΜڇժUS>{ "5ds>@~>|OرVg%sL|, ~_پ dzK~Zuj%̩/6Leɪq'H٨O"!sHJI|UPLHZ&jռ9@.;# Ӽ}b<]gkqP bQڴiUqvߨh9+5Sk9iza 3#@cW_{zmڥZר W8/<+Fj{j6):^;OF-sHjS\9ܹsLSV:~Z<}c#Kh=sgԢUU559"|PZ\Zc4_1+Xά^DdkA0NJ~1lTc NcgT?$LRĉ'm -4 ALslo^xD'@ rog/~@!Мݩrqhڴe'əE#>rr6W}@ X!S\V3>8B(  >j~Dij/ղ7Ocu RT r |~Jn_! 4iʕKFxH.{逓/}pdj{哷x+,)1'3^}E6(LٕOEO{{d+uaf"o4d2r%CYblkغQ'3:lX'Ϟavl&Em2jDV60TtTqUě JK ԡ(_*LL14ᆼl K3+ĕӧPJp7?Z +4gR:qx(NRJ\ ]CTI&EH,Csˑ}w:d:ς, S` 6l0\KzJ 5H@U@S]RE$ЬY3͛L=Yᭅ32+u׉z*.RPJ!cHkXx*1z*fl``0j3q +aM0`6rWkUgx(R2%L9,vF\R 6kFb([8;R]ťp"c(@U޽K\yGw)nP W+W/aj_RYlk}Ԯep f on->A)<)FT2~ڑ -QreL EJiƌxFvJ{t@G ԬYƍHPT{ԍ'Wh1yj k)F ඁIXOxte2uxlrKȗ? j3 mPxyy)RDjY">7#3ßy&ENٵk7t3,qj3"J܊xHJ+Q\YsJ•ظscɇG!8w.p-Z[&5(OD UX5h>)_Ǜ\]qiU֪U+|$ez[2оXPB5h秋4I~6=Cݺu6H0_xo$.7N` 'k$ ]71%'onnnb|[54|pX{)Sj|ϵkׂ\׀_^]>&m)ɯR/!#r}{%MilOݻw(SXsUh(9c70˨;xt(̞-.c֨Qu76͘9i'㬆ڼ4wRy,)@rP/yU+Ru:(3 UMZxIZI//D3Ʒ%ԥʶwB9+[\cɗOǪUXz MY3gvH-Pr}%ѣG#Xlq.NJ6>}Zd6Aaʔ)ҥKSSdN6MT@]h"tYR۵kj׮ .Rv}CReKt9s 锭xqi7St2D=kܖqq-N,Y1H /TJj!eV %CרQJ(aꌅRF̡Lx^5On17 %c՚ ci'b+8㥎/Ϗ^&TH/z.ܕWxbA\=w5V;F 8-ۄ[TV*xgvvb:"N3w.-"!kx䡸%˵JRT4AuI$n)$$l޽;#"rȖ+r)-rDs[c9kߵ`d7B}|M<>@Ltt: 3ÿz?71\*W¨Q$rX>oܸaD9[(bbgi"C!Q`!nfAA3 cM7p6*"c JbxQ?Ĕ6/㬎ݨ4+8RyP&,B]oU~p_@ˆd2<(J״]T cc4M?;"*!L i5>aKu(vGRQI@j;[VW^8S$'$q3dž\ݸQ9Kw5d3J:5ҫDsY^c~^IqE{14~'{' f c0@INc\'K]e{O#ѐx;v #$mR۾;(k&Wx/ h~J2r.yo>LgL;K+z M\>3zx#֪%6rHKIKR 2CJ߿^ %~FYsz;^=AxBOi +I AЎ;0ST  h*Ig2QDA39BhhgIGD%]zF8t`.b'886AYֻ'bX8$֮1zy˳طp *)9yǏNȒCXge+%=1Q (]ebjJ#*͉Ҳ'>lHM[Udɒh~t6 Q6qdWʠuPlrhB XFRF-Z@\Q,eEY@'0 ^%NhJq9Q)oy Էl=VHJ I-KTؘ㭴7P%%*_X*_$',Ζ6hI+}\ؽ7`=86Q1! b4?AX|G#eY{7E8BV LKGR %LJ I@U@SSkPjI~)Ö .Hekkka`XM'Pi "errdJ 0ΧyۋZZ%<#7W^`A8d?rKޜHxἘ,5Θp>̕&tnɶE kW0Xň+ ƺ5ˊXrZjqR0c5]~'MW_e/g̓j {10?"wΞ;/ii\09HKY([ۡl TJ= zՌt@ ўt#FNJk~HIPДt7ԽMXJÝ].]ָ1`NK#83esr'Op,[K٢''2M8>Ej>ĝ%)1*6[#9Pc˖aK+(apl#f|26 0iڧ"{&T^P|"a'&03'lM^lK@[kDG}Fo)<ӬG "'=/;G-̾eZg[Q)#FJ:H%t0% =PiGp^:SrcǑ&sIE'%)%߱cnNHڂ  X"$\B؉ U_@-I IrKq<[L]1\rgRCJKGh߮'3QI*1vި\ٔOU 4?C0Қ`1W|2cN:~԰+Mk'+EJOGG7cmxxWJ06'.B^Q˄:\ Ðw KeVqu,.& gIx5TɈDvT.(ܱEpDr'9,HYM' ˍj@g(<:Z&[ߛڏfyjiZvnի:ZiogNGغyBelLcoFltȲIpFg^Fz .͖[3I u>NL Mɍ?DOI3J'\-H)e]) j7v*1JA)k[DDġ7@E"EP֘ZYr+%n,wci=K_ JgjeEtb ~M@J;'EJ`С܀n]U<1{psƷx M6ƲN4pHZݽSb-vVAeJG\nw;ut}/W\j'#!+OvDm"#w/6mPa+|1ˏYuK_2iҊ[VBu6ˉx Nz=s"Y{qI_Ny:.U˖G T$+/BMyrx1H5e8БB6IviibT/1KJRLRJ`KO֬Yʓ3`Xu0#WA(๘?~᳧O]Ȇl[ @pޜxyS5edիWɇ]C$HmƛgQ. 6@xBo68 `pbXtt鵄8JRT9)>}j+g(yq# >cHMg1b ,0j)q|7īd$={IC1 ŷ>z)N;$ =Ļ`ngK2ɓ[{3c-^%/uΝ;͖(C݋';EQ(f$ȑ#xli^`$b -08 I%U()5uc?% mCN9v>6&Ylk0#B RDJm9U}ĶY w6$%W T(\XhױЫUB"{#d*kֵ5޾}+P=wFHKk9 {} = U|\[K Qd-L3עUZ\+,S3@Gh+3nk&}lԨ`.`IC (YIhֆk$듊.V/^QpON\2ş'Sֺ5sfPVhKkԲ2e̘5P%'X~X `#CǪRܓ"^1U)G[[!X1FYd !((`&YʧfMV^2g"8:9 ~%/_tѼy%J //oB2e*)*P&הcsN0nAA.( PX*KM31uXqrw2 x$ f1Ow7!P~}!**ʜˈ.]*%8: YHa4sYDVxsd \?oobr͹D"^Tt@ȟ/Ŀ?}J 5H@a_JT P%J@*UOJT P%J@*U$UUR8g/P^pusGJ""{@߁2Bٳoܸ!VW1W9KLJ)k3`A|NŒuԭ+ɊzRey8/si-Z w\$gw +9SDHp0== ?_%KۚBśtuD@\:KPLL :wY 7gd˜"O.e$W;-ylJR66T H 5 {T%J8ޱhP1ASLS;@.Obu?OHυ+Y; NK ŚPVz2=sS1(SB?֎:fYGIS?$mT-)[VLD߼Ņ 9|+QdX"~ukkZ ]IlVTg)Xɓ7ɡC@~jTt MUST^R'b'Z@IDATKk}].vB|لÄTzV).ϝEps;gF=s#߫VB/Ws[!?r=s,`he)s $\48Y]val k`$&+Sr&*l4?u*&5UC.3Hvn|^A\֝cqpj?th|0l0_:[gx \޺ɲ2jMд}vxf΃; a >XԦ0~"Vsj3g.ʵ&9D'" 5|%+.28ܼ͛IAbxi-{a.U$c6^ZD;b[鼲S 5E1&(ץWB*m=D_4-fƿF:*SvzJ?#eJ%M6Q)Igwe{MAaK$OE*lJ\>{Je݊5GV)m-0dk @sQa$'3KDgggQ,]tK.3fFVQs܆$'o̴cʮo&&ElH)~za%K9'8̀ns*Nxh!\ܱ&?Dxxi!w>+/ Ы|2lѻΌ脛΋5Y)G\U8I ] TV-*+[IrFV4nҞzO+{zePgx,dpV.t1پ};(nT ^PHa>C\jju&n{ܲS޾E5kNb@pQ=TTAg_4KTUEJ5" X쁩b*Vr`,5v;„A޴vU\ڵ{Ilws9nGXYȎ㻣dVԫl'Մ8c77zbcI0.A2Z\9y~>>OեΟ{']V"+2Ct4UII_$@X%4>ł+KN%e)S`a"ÛѣFIk,B?LE' P}Cqq_bSJ2/_^,=w-5mvĒtD~̩~+zI<2)S+Z8+ꃻ'#rq&c1Yʕ(ѽ3-al}`3fΚ%E#G@Rp6ض[3X%] ei.HO5sdNQrJdrל*-RBsX wCSSl*㩏ru"+x\ƞT W$*;^NTŞ{Pur1^ƈLj߾zR*[Ap8dhT\"[JS >j%,ep{W.ݐ*'N;%W)tXŊ0{1J:@C KRZ˂bkR I" %OzJŠ) '0wQK*9QEfp(^dӒ.JZ*! "OԲ_ȃi|䫉tnĽN `QWH}/o՞YXيJ U/E">J/`Xhh(LÇo߾ߐ-[6p]={$1AlݲU~Z gߌF}d P-CcNCug̜ᚯ]{tbt;CXˣ=a+aWEEY[>9IT m,llLCĂb̡h%4nw|:SRʢ],}@G(U*?mЪỔ2YX"3aR={V,yq-LQdӸxaYV\Wv:*Dw^N^sʔ}k285nX>9s4pb'7 lڸQzpީSĘ(B2`»7c_j3'$Lz(LqR-}d]FBiJvH wm╁*$;HDg ;,%B8;vTQm!-[B RcX`flQ0BL%UQ/"?? J6^@@@B]aG@U<SCިϋ#C!q/c|'{zî7s2P) zJh:t* Vv_?}3A% 29Ā/ Q>֦4S]:+V,4%!؞ATRuxxΞFh߾}`cmQ_B"K~k\,f)Hjp A%H/&30vKn&9*[ ^{(mT_7'EEFP,hBTӇ邤L+)56U)Q"V:F>9/ĸߠT_MbŊ癕gMeA} 5kp!@v+ngUPCMOV8xpΨwYԔ PM)|O␞ [tx8Y= OFmx|%78C/jcu8w+fLӧOvÛc'iONCz_oqPBd5Le̻/OPzoy q'E\ǎ:m:n@Ikce\0x@Y^|9w AR7o*ӲT+u#NxCk̙3"y5M&}2?LA=qcжa߀t0 ՇX^ `*EP"CGe,ZЄ!?<̒lQd%###rеkWkz24j݈]8fhp? 18JBhoZmP[$8ehy9LC@|HsjN `@xc(UL%F5aAv5;a8k^3Gqٌx{NTy`u.X@>U)N=ReR%%Nx"nݺ%e!PΝaEfː&M֢E 9B" 4G!i3[E˙ [6m0Y 5̘Z_T >WǰWiժk6'''" yakwGwDR8tj'ݽ膏%WoޯUzC,D㪑H\VJ&>s5xAe=%C|:lٲEq1՟+?J%^2ݶMNU)M+ga7=[MtrBrh)a(fI,׏,Yc %q_[,G|ޚ*Tݻ+lyxbFcoQBpvĪKE DFp+i[`hhYj&jwrq<-[Cc0 Dؠ<"u%$&vEM:^v3 S89jD9Y/߾^:P~7y3Ffu$8ŒI!OVi7am^wE"b_C9N-(cUR%Z$*NbғYB8nP>}'4qV<׉fhBVBCG.Օ[4-iϢp0C9լU6^I?&g e͂۶*V>y͚?30|cn^7tfvs í͛7QXDbeNߜ71~x4KP}U7{w#ql&.}axYKfnГM$6[1bLvqKH6/aRcÆ nN8fxVD&ϲD1l7D25)m(˜.t->J H@U@S˝Rb$I>4"e3Y<-rU&Coݺ j9nV\1NYa㡃PRqCD޽+$`IxxǗ5kVIKr%T';8v nK#;*Nĉ0nЄ{DEeK;0hGm؏+wvu~#^Sl@oi i1v6hX:+, <_97#{a N*UJ]%EYbJPǩPЯ*~u"IYxٷˊv|l+ݔpU4n;D_5 j֭p.wV֎v=rGqR̦̹C [ܚSGaUr)/s+zQ@I n t&9::;$[V5:.;д>ر0~A|?}n±h&MU+}<*+泴GVQ@%w|×i A]kr/0uSv`J2}<*H Pp=~u p%xM\OmL8p{h=.\Hd5iG{QQ{d@)suc*={ 6Y,E6̡k(OR٘;RmVJGO.}FZًyZc/Qj<%/El |q[G+'_uuIa.)^޾P$&QgaTD3DN81<95^cbʮ:ur!?RO(N'oT{,Oe5{yVz88#<7ǘˆa=}F֭^x4 EBzfn:KٻﵧǪRPbwnL\jNA xů"qiDߊl0ӼsMd'2;&ثDآ)N9w\!+4yL|Ɠܺsx>Q,#׽xrI|2/Wqahߓ;GpY|Y| 2b(1^dcio)3ƒ/*8c |wza)V/'UK7 P!K WZ}F U;Nb :]466͚6zpGh_rv|wŴ=~w㗚֭[HcY[P 0d!e=20q□Yv(6 =67*|~{=UDRkLi!NONł)HQ$džJ KPT zx/Bi3x+tM>\mDyxz &6? .."ROWW7p(3Q\\u> J6iai)-*oڿ-4o\pw{ț%K%, AAAYGNH5[ZIظqQ<rСCK\u:<g''Yfϥ'mŊB޿o2 &AY|]f Wg&ȿ'*:!x'i/7MmW%$Z@_lT  0WWruu{O'Oa` 4yɔ=0TLLcsWl7ׯ_dfȐX5㩬1pϱ˨[,#Nޙ>}:W]g J[1~~-b@lwvv-م 6v*kA|\9L=s e _غO! "?[jժ*\2bmUfV엖_IHQfT @DD@;l7w8@AI,BlLKN.#W\0*ah,ǯ 2D'^i(Rppw2)do?VxJ_/888a)=~~\YysH)I%FPH*Jk;88 bLo4Hqʕ"##o)C@؞r)_+!LTAoxQ=F;~Y R* )t۷o.]<\umml7Wt|e˖FMBZ,kzu$sץS%5%Y*P%%@5܅9s N֜a1~aœ[4)W+]sTи~UܱY (TE/Mb! \8C*))l.lt͢z٭NF!|Λ?\@QҼnu̝0BKWӠQ#Fa2eGŭ˗k9ZEwbM%7EUPЯ|U HIV#GϓQ40ɶu gbđ O{"ӠIIfvn}纘M,;:8cN(\V)XͯXGrcYy[lQt8x + $;@F$׬XS{8+K򘻟v[ZbΝɡe_*T1Ueq~[2,b<2ǻ޿(<>( 3gΜ$9%yT͕c8*V} 1ɕXI=Błr[UR%%*{$J.cEw&&-#f2e F^C sq[?@QN# i$C2e!ulh沕'@M'Ϣ U28]RD eAK7v7w~Mv\GXX)\p.݇鸦Mi+V&YJ*`TFiHK?*i`"Y9#NPy{!ZKw ҝjcwBmpJ0n=TfT%UYˇX\2EH9&常ZI1R|?{1gm fJIf"MŁAFJ$#.7c=I,;⍳dwڵ+v!_cҤIT* o_n-Z#(&f)e>]K <1̤nUƁGQp$U24ظu>ż_F\WC ފ4) \"K՛\P\1Su* U BWT% %*Gt55^NJv~P3LjsIbuqըF*o'x"kyɢEu)JKpp M6w礠g*WLqN:|b։uϟ>A{.UYYs%j7ƍkHY9R~ |_ rÒǾ5S\h#Ċŋ%/;3Xdkc'fykxucacuM>Xe&?e⹹}Ga+Ofߊ2y _[+U82y\>:dxp%( 5 W_qiǁur9O%UIj)tԽD3Cp[ [.6m 4nԩ"/V<x&;<==űP' k405+{Pǫ0Vj)VjիW\暍jb^glтaˇVboK+4l[ÃcxGӔ?GƷ]tI>2b# N4-,z $j7Ic MCe)+җۍ0jƾ5XjU (  I'l /IpG;zd @[;k׮xIړppnt>Ę`\!a\7&/=1L/{ TlYpuj.MSμdϣhAu*3H@U@ DEʐ#.;ТM{L͛7A&8nNᥝpi{d&… aemCKI?zk7u_~ nQSFKJp] uM:QѫW/sx,/1;\L^0hs1w8-}t='޿d 5~t?{w?g<ڒs2z mJvF|rk %[V9P8]إ]2|BL%+va-*5=4U⫻-[GO&3t>6_ b^:ƪRT4%uf@9pȑD~Wd˖MTL9Õ^+g IJfIHVV< 'ݻwAA}[A~ۤ~z +\C7b۪EXF1l%eȚ5nI\ERMoᗷ8\glu!L"HKNhXY9uJ W#[0.b(=fP6aZc~1mֱr,5+a,&/D-o՜g=6M:ToL]0zr!52k>aO(> ׬]n?Ƽۦ+|-ٝݫzJPPsJS%Ffp\% H,p2?̶m&ZVaHMܜnŰ7n dc1J|5~-^|hJQ Yj*cJn;}^LEu!j?v"N4gk4%Yi0KqjDϘݯ3,Ըq㴻r܌\~8L,}c#ჾi7o~ξִYzxnX EcƌcoDZ 2l<.7`{]?W;ZIܼ P XaS^Tө!*x:""UR%$*.{T,Jg+0V'XqL nVL&'(i d Y[y_A99bj,bc3t͇dεQg c?8#[8[3dQcߧ3X9b@Xox1{vkO,Êе=prxt?(W‡GrqgΜYR2ǔ1 9rL3_:[2P&aC C|1رcvZl)Iv%b[ I e0{dۭՖg6l !|j2,JJb[_i63cL 0j!u*3H g1~FnWrnb7KXDQ]ucՋiQqDhLam^ }; (U )̌r(㍥D^Ο3Z>º5pNѥm㋥7G{%|TxҤKW,*dLme47(BÐVM4㴕enD"pJI x.+ڌ۹a^n(BoeA +JQق{>P2R:<v *姎S%%%*_R*oU$%KfʄN ܽt$,_ 22R, W+:q:k ʃgl+^ݻ#(;v޽{EX,}ݼyHopr/Xק&2z",l64Ov2տM\rD0\L #(LDCΙ3;wlFӆ.^<|у=:\`-%4h@1ϾpآE ~G(Y+/8rMLT1u2T#Ujgݯ_89tp3n>7<ȧ(F TR%$*.{OK dB CDR 'Gy|cߔp=gQh]{mEh[ƒN"f5]fʕ|-php64[Ic8+MA KsF޳kcERw%+3$%4g``H WRAr MihRDTM⻷hCSmb%Cl߶V_}P0KJQ!'Rs/]rr[5+ٚR۸iRxnkcWHeװ?Rov.ݼEѡpIWnFzߢQ1kl9z uNdW+Zwtf.v7%@l*P%%@إE}A .U^(Yp Io(ʤRK++!{`HXY7 햖N7f/WxyeUm,PUȜ%`aaIZ;wh)lа7w1! ⟉Vu릘| *}#wke-*Z Vb[^d~,=_/[Q]Pr !{\k"QAIDU%+x@qWƍ TW h4{G/!J5fڴiBz?_zmPwGPEp u@1OJO.) 4VQ[Z0$VHiU@B(>Tҿ턊t uZ5iڇگJH˫*U)@ @׮]GxS" [ڴi#o'w =ARe~{s`v}q2[8vRʮY9(')>Rm'VtNYޭ[)5RCMjc'-OVǔJe3O"|(k'6DΝ{#meȲe9iJYnS٪Z_8)x-&7:ówXb3f8@=bLde/'|qٗ}VK/ y \ͣ"!t0//*c%*JLJ@*UT P%, 57Y[Q'P%J@*UT ?H@U@zNHqx+g1!L6n"XKr_{iŊ/U܃6Z 1Uܒ춵%xt*ϼI,$Ɔ amXV)8|@@%G ^^$GkX=r |}?TwC#2f-eCߍ*DB6[LK uה%7Se79?.lYuIب!!h7WJ I@u;?-ӧ{bu$Jp@ő+[K[wc$RWHH0,V92Ŗvꋲ^xOx'b8Cߓ!C$KKV<% -RN_}]q|kxkE0RBn[(˹= =B-~x4ZČqV L%~2v}twFN K<(.8rPŋc)w4u/(\II+5WRs{Zl􅽵^b;s.F?/%CKrIQ7gT̝%e#|`;8w19tPc0jHKlm}d M(Y I3 KCѢpf<8%s׮]6F}rB'](&;"|O?WڡJ_KVQ%O\ȥǡ~ &[yeʔ6 ^0@IDATܧD ^rC[6'F.T59 u'(5폞ىHkmgg SELofƾq/EѣFQ10]:ơwsXu EeV (ls]\fB~=e~X߼y \ALeˊkoAPJkI 'M>qDx@鮿B"{TU@Yc -+]vU53!/E[DdUkt+hm0ogDP`EsA 5wJ?.csF),U#vl߾-[|+))v'xƆծS(΃۶BxiL ڊb2*̳+U AOٽ 8;'v[ep.Lj_mqyD"EDq_M|2,kҞ(e"kwp6\`]kYb{' "ӅAD !тhE[Zd{e۷ޛyG-93oߙSg+\<@& Jqt+`%7Ti?EpX*`kEܾxByi _8TĈ ^x+~WC,‹>!4c~'xQOXK$IJ 5H@*.=%Kw؇cHji.,5!…R@\]l٬VQy.gj!n]u'ŚG͇$0BB!:ueaT-UVMZח1K/sl^7zzRWƀlJ˿E9+9ҢlY>VխmC^|YsNi]08{/+}t !bꪂg:N1C띢9.q^H'SRq{dl̽U)Jp[7SML/EE=ضAYBlHsRΝEyHAf9Ab,91cS2G nçp,-1Db^N8 4DW{[6Q$d,f># [5OjqP&##sR:Pj(b"s`UAC+\=J%؅sXw.PjU:{n5听b/M6Md E<֦PF̕^qN+=?jǐGlkiѓƔ66W*P_ܹc-۰bލP+NJM\jT3hP N@o.}ՙ^C|"9y­ ݷ| B)!ɏ=L:Ҭ g@, gF;MZLX7f7 رcu6)N"Ø%K\ [̻eqCc"_d/WvuuK-%?j1AiŎ; &kdjbpc텒9+W`-YD(2XC`͞%ӓѯWWVV^lކ JR6zil\|m׸5g0״TBBX!YF;+m<}A4eSa2޵:N ӧd9X4Xٝޡrq~.! ,Zڭ99zLW.v" ӛ~--]h1I}Q%5E8ٕQԜ4h(^tLݼSE[) %+( Y_B8ૄQF l>$rb T39 j СC"+Ȗ-/XhS T(,Ra> 8v-p317) ViNΠ5AZء,td ǖb,c¸kgug|9nU!~l1t', x6gX&knmg7/^T¾1֫(+Fe1x \w Mַᔖ5M;^εv';vH2!=˖-~JANnʸ)rk_׶c@9L%`fݻI]|qDג(YXHHBU#Y}Ո%dǿ%Zhd'w}z|>{+C(ZVP/ f;9k_!@h .Hgʒ=48$g;B2f%N\P0T>~z"#9Kdϱ:4OmTt!UXۑY#+^7s i K+b{ 2ah޾n%%p.gX[OI 8*:*A9K ::d(b@P夐E wԺ^x1R;wu (?ć" 1ǩD)2A5)Mkڛ\+i>3TCj( P)Xs1(2PZ:,=l%Z%_3[ܷ2 %VЪ!5'%֜JSEQs(P q&3d&286b U0s,T)W*RJPE] < |dQ+BEV;JT~lUX&P EcPJvZ ŠjT+3qB{[]Ǧ :p,n96!"F1Z9:9sDP̻:;=~\FDw.*Cur,i+N\ΥCEn D366O#\ܨ{zj5,pACV{%!ܾK 5%J쏇s rX3"!?'T1zmwi1e8ࡁwp*ZJVq Jv1{w\_ػ#IJ H@*N}ZyFaFi2r $@}d7(j?$-M0AdZ`g_ոqc?qpUBĊZij2~I㇏kud_kiUmq~ؐ-[lK)@q]yG ' /h߁t4B7.YbO{\xXF(i}u>$a5~9Fn^ƅr$vw6A6*}.ө8bfU>HlzǔPq {廼A5tm :uH C%KƟ%KoAPP3JY)\zjG! RSv3% H_\JVJT ,J#IO&`yY&^ %dϛDQ3rO-:;$&"$/cSv{N޷/tl}}%ռut=GFp{=3|emy_z~ rlEC <?L)^TkƒPn8Fm@S0` EU{]/_~ş5ӛ9&^ƨmx9eךU\xHS ^uGS٢; ȉR% PS`";ᦊʪ5:"~ԟ}A2eVjƯ޵N9G8Fg>5FL]ڗ_-ؗ2g-Αk;Kk5[ "nJֺmLA1d'p6;?JowǷb7"Uơ׀ߏZ#㢝q7$4[;£NF' O]&M.ɓ'Yf6ǫ 80 {tgPߤW/N3x'g<^%,K 286=p,>"jJ#kAX3rxѝ}BPU{hP}?dhp&c_8އWU3qZ]i:+7a9v' TudzdX-|"PS$i}ȗqMJjdɒ& fis OxJqJߌI!QE,@_K׉Ҽx&w,B?LL_zU8{uOMKDҡq+IJ I@*Q(5~X[ڼCija>'Ƽp_0Ŷh)J%[Ó_OآK֧|8 8**aPt.tz ج"ȲAeX6 ]w-ڱ+nނn:LbO]')q^[;p}$ݰY=?ء+ʞ*;eK)*H6BŮWEa>e1._V-j͋?ġC#; IIr"Xhn^=s}ޠyk"&toz+C3Gy`$BnZX̵k̩Z]mD-+x~ް?[^d@ T@SM[P%&2p})[ԩP]CE)SVTUf-YwjN$hL:}j2\Y>/ANZ[cZV9LNmCRoXn -cl#ߧl h㇤ jܫ'\̀[zՄ$KPP,j"J`k-f&j,֭. ;`π#76G@t CK}p]܎Uk5:7Ϙ[`%y1 !񶸗qC%?~<'"Mf4$™ԣy=Сc֣lG,$)T-ē$% %%q-KtJbEz+綬P+[>W{J`5 [2r(ϛWaS8W&eghq2F)19zٲ* chMg*EpIT o6(L,5!3 榸MsP VgVfUykqQKms,n: %(J/e࿇i[Ѣy$p %$iN@ .#2a]'Svq2J_D0'O(\AM4ɧ ^bUw~[[8J<ʕ+W4fB^ /RޝK\%W7O?y7T3cv|u٫Zac\Wak1,iӦ~klaU77wA7) w6OJHLbm?|5vOJ UIPR._KJ ~pBVZ) +,*!AIuuqQ8P.TPtwOƿd Wrrx sX3*gNr'd 3Lܻ%%`DR5"-9VJ@J@J@J@J@J@J@Ja 8A2p\N%EQ0RFC6D zh}mMsSpa8@C3ZtN8$lٲEâIHD1oۉ^קB {z&T;vq= nq݀\Qs*eI"|; f&˳gųPtil<%hYC\ _g"&d$$!%%%sf;\N" ~nJ$==Db19xyr ~c.)2(Hr&!anݺ bD\p/W]į"F1 M aYΎ񀮮nJY\Qy/Vu-7h"!G3)y2*QC@/^GujVΞ=\^"͍|ò(i8 k@.zi֬Y`CN)3eVrΧȑSzYD4V4OO*}l"A 2ݼ.ZHAe~5"!K6BipԢ6`/ а 3 J^.]feyժUԜqMoݺIUզ}SB]F\UZjM4kM6Fm622`oSA\|ʺXrvXls,]]',#FP=LM6FkסǏ1gQ*ֲe̞8nVby_fMb,ՌjP@rk1bNFgM,gk3#Ɯ2e yP.SI &Sŋ^}FH`kg,^m߃D$ۤoiQ4w\]F1 RAR} BKJ @V>,Q-%-_nֱcG~רp"5@>E7qYILxoD(gREZ~?xF"ܡ6l ~n.ߥ{~nK>Fi'I-huI'Q)t%̜1un+Jk9H"EGbޭyYzs\jVΜ\ȬQU>QSNfNCÆ̑TJ!)"C(n:i Uk/Х_r LπK^n=JL󞔣 T>jۚPe^^}XNEJWON[d}ۿ;mܸ#IJ K@*)%1͡Cբu]',%݃6q̡޸MT, / -k 8q)AXlQ?ee?56w4E^B-[7}띖8.tEB̡,Ec4gJKI鳞E-CUBeC:ͺ?M8)+Y7Uo޼Yɇ!;Xq:V OP5i̘4q,j;c,5"?kOjܸ W+givĿ{lI,ZnH+Nju'!՗sE/iLlv94H#uS)'릐]!)pNEExŨGZX=v=vΙI1 du 2-]*Y. Rwv_7=rfV\+1=q{o٥|bCP:#A IY=9a۶DHnJ]tlG]ޡ!$MY;XU>vD/X d ZKXl+U4W+*'%fh М?1(5U"V%du ˍJpq #߆(>zIqo [nq%|@hڲm;kJkHb[%x` +ӊ$A?em ql v jjr~%ʜ5V>޳'ɘlXD6'vjٍ]<ǥr|IU>XlY;4p2 kϯɗCq8d_Ye jf +T0,ԳK.C{Q֟u)}jѢڔԩSi̯Rj͙dǏ͛幔@T@SmG7o^(=zJ(A7oIݻw'Έ%&$\H(5Qq[\&q $.))~rM3fL3r#Sǎ>BIf rbNxCY{њEi2ˢ>xZ"b/yKJBo߾ZCP_9غpN-snZZʐјٜ_oS~A⃇z͇>_ڽe$E݀|bH:_u9*6ʟ|6[vzBwdc`%ڵ+3Q>U Ak׮SO-~^l95\N^A,5@[E#4iZCt%ijO rkT@_Εש+ċ5Eϔ`=͛7/۷o/Po!(r:t*z%2JNJ\9Y\UHH ˎ=Н' t3U SԀ!oK3iuK6۳{y%Zr׬Y޳?_6ÖСC F>lI4O=CH05Y>H q~;B⣷Օ Zbyzw [zy/ޜ :SSO($9YT) (@[ڹetI5P8ǧ}VYצBxDf6CEZڹllnq˶Zԑvc/H 8SRu4%&;?pM n((`Dn'`bh 5mJXFϐ!+ Od/MbL/-SZ5KfyVlmIÆ VCڵ].-X1-Z M'Jvޜ9L:~t%qM!Ѝnq4/"7e réSF&*?K+I5ͳG®4kdz*1d}6ʕ7-H'wj5sAkœ_O6Զ&b_Cs`)% _RN-5PTgZ׷bŊBfjzjqWMcJ M W-z}.Cmﲫ,+uҜG] :pBA+VH6ի.]vG9)K0oԭgI=y4A,O=weߩEd O ` PM'ߙbt MVM@$B/UsCqEd?&6\ }G(޹c%] m3{:~>&̒xI>8!M@jT@S]{) #HEJǏ\f/Ey;$(q ќU O.nc% //Vuآ愐 Oi%sMzs8i޺G'eS=0]חH\qc"[sW})l߶Y |?.ϼ˜H|+n0v<\q2_@eW쳷q]\Cs:uZTsIqɗc?GmaR^6y4cpRgIRARM wIѦX"N<?y,p`@r$E E,˯FU;cA/@4@-r9AYߠ>}|ysoV`YIJNPCL=x17 S>E׮]KlrㅢiSl/@VP sʕ+68SOԠ:#Ta\}t%7ٛ,Y8w,W02j/ɽx1FhxZHrk5No^BWn`ZcXN6ܶiXjr딀T@_N@~k&Lx(\4:u­d# ǰr"Yqs0!4c\09u kfꛎ8zVtZ[5g4kl)}}y#(ĄS9)[@1#46:=fEI0*͏_Fe㕞p2J.oeK25[Y)I'9$zy|9jA߿?P.O7/#~q֊+;Snzk7  .4E?lesAz_|A~?EVPN$%Z$ r>mJL39q[o%>ո>(- dſMXȜGriBc p9r$׫>N}U!=\^pIKUC5J:rۻ+h$Tk,K,4czs%%G\xO_3/Sִ9 M>y'{ P )ctdJ⽎YM؛Li~sX>aݟ>}h*O#e)=f'8C|A4h :;<_an$(ͦk8J`ڬ8=Z9UP bqB~Y.^~#d$)$Y35-W@Ҍ3HPR0ч .jNx=)(!kJ=ص,uZ_(ZYŹÇB,|?曭ID[)E#{(}*PB جw``[mG)5ǑvԻ [SmÕ=7Woj+'xۦL! DΠ&\JZ/Om6Mwks p;T{ЯZv3ѕ3 G߼9/̙22$ݍ55S$iu.ftc6q-&J:Z'fTTUіZ*R4!{%O0Hqqq,wSÛ-[6MS`迩|b]TqUv 4&Ăsܹs5ndoOʳ e|( 4"g%X"j<94kCmr3a2̙CMUKS㯿AK :r&͗&+Ul d`6XczOU(>Q>E&VNP^r+gϜYf&HoZ;7h~14p5ByYfc6TR*6%%D H4%'$|'ď2@%E̮EI~49V t'(Z#|h J &%L&x|ila|5f}Ք~7~_dl5AeX؝-XXk}zw'Qs(G(SU ,3n?ISU>Q%S;u"*}<=R lҔc]Vf-t"~~ cO?Ο?K.7]q*%hı0B `vpCqeXFt{ EɓEžqFڑt:tfx;:brms sg`y=;|Trd1`>t;}-یJ=ݾqM:wGR!>quH hJCr% Lw-, R_`^CM>̙3[|XBs쩴ei,j,j[l񉰺:i-á%OÏ^9t]N*uXZ~܇~3))G85i"rGEZKnE1{vU̫qi1%&c<ʘփGZì=r~ٲFYdU("( Ȓ"˛ѼN)>4d$ %x6*ULkw_\ըZZj%**i>^Z7L1ݓj5o3#`UKubKNii5_SK $ H4% )3 C}Ȝrr,:%zjݺ\ ԌF[RMp3iݵSVwU^ZƍO_LyV[>Ea-B2 >=Z%(B.]}iZ/ \̡nټrGЮ[,YE%8[Q4n߶Z#~fat|Ynw᫝w =iŗRtͫN5jJ_>F$a=oׂ{[?ZĄGw,̶{ tN`@_mroѢ)헍;nP7;m#GbfuSJ K@*)B>LHӯ%?SؓtME,E`k*_jtՋ.E5YvS[A\ʖ|+wSҥZ:FcCd/R*c57u"d,TRq*ƍgn+בWԱOg#qU|9 k@юΐ?*#f9~JMUBC IƤY=w5e6bl{Yԣ4c:HU>dzmþ_d3N>KQzdy%< w0j~&AI0w:oEY3"m:ǰ޹tn=lISiQڴmԲ;||4R_(;yԤmԧM3j]=ex'8qHJ 5Kf$I H " 0΢ àVJ*^R g}EWͫҢK0ާR,G)<|nD)UTQ\])iyl>y_P"hu( %(rE*% Tϫk4{aו+镜(1J)*3fV})ժUWN<\*Vkz+fPJFfQ ozOў-K 0Xdlq\Vu")>Aa =4FPp?񬆆{{;RKQ#lvJpoH&6OZ~Jμ )dS\\]4l*pȄ%]J J@_LIRQ(! W"OsBb>aup[Κ5q6=|||D)Ν;S g;VXA>:R*ɔI2~ $5H0B-Z t \+25~NzǨ`tThB5`G-`Z#s6lhm}xWV}b3Ɇj |5ʵ@h֬UZUnX}Hs8v@aM{3Bΐw% Wr5)))))))1))))))))WRw-WH&إDKǐ<„ ZN6$deW WJRft1Nt2Ӄz:Uz71hr5k'¤纰'#|=,o߾ zXHJLõԫ[ZҐ;ɝzEμ=""vP5MWI>zׁl <|vx7m^HZq6ErhF:NR |%܋>}LqpIRJ6zUn\J? $pI982?xx)HB>$ QۧXfeUʥzŕ5* P*+ ?\E"x#Kjr^ e}łJ\D2'"{v%Up l!C/UVv|Ngᡝ6Qͫ{yD9<WXQ8V5JT5L5Y98YvH  ,pUFYjڜhû"y uׯN6!+zY%shv{&JP9peڢFVm S]f8\t}\ops:`µ4tjڤELu Ȣ?qڬ@Hy]| 3/ږ0 ֊r?ձz? תU[T ؔJ[sg 4]nZTsFЁ:ط2B|a0xl $u Uժa܌(CW_gRJхVCH@IDAT?\jddkvirY)Cߙ-jM3#<-[fkJ[wР|ْY;U8RvnDUʗUq$W)䣯jPNO:V}=W:udm;It-t2|IFiuy4}$|NFQP Vw}WStvdC'xWVzq-'|&X!a~f '9~1thQɰ|'bKd PaF̱=իg }gΜaںs8ۦ ?MPzV7ޟ*iiX]'F*뻪grT@_%)+(V]U2eWzB.`Kic7OR~^tn1p`[nٜ‰M6G%Mt+&N@ﵴm}>y#({Rf:Ee7Z PT6U{~}T)']q-z;QKZ 0MxSqk)(<ְĶkf](kTѣG)[6/Kp{#'0dp˖-K[n=QQ%05v dɩk7mRre*U&yAϟ=Px +d-%`KCw83d? > tT]eh\X=. ;vRٙd3]d ?cWLf0>B떷9ڀr_-qPR%`S)!!_H8n^5_VB[uWWb'KjT_l*0w.{W/ AP>ss5x((駟Zj,18pͱpU>kTtRv|t.Am믿(`Qx!VNGA /IJ 5H@*.=:Uτe V(JHAu(~&::ZTE1L\wk׮U*6CCi濝އ?VP;No3MЕӧy]$Ǩt$mzOʅѢ2y'ߗVd8P՘O| g#tY`m۶$(q`/Dtgi"ėj0fǎK#OO?"?.۽{wed@T@SmzUq8P Fj|U{1ûkY +:Ky3YLi/:ܥ`_ń$ )kS;ɸdic(QBX/^L/#G/vqPꡭN }G"*4S\1:mD|$%$ t^EOd%# BaJ'iCV|nTݓ6ދ8xOZxM@|M\C s2vӷ/m=qnaAtK3,ư9;d7zfmꬵ2еA*uO.nEF{Su‘bfQ\sĂS(("e/aoST2ZmJd͛7S4Q;V#Xb T|fJ`Cy+kHOޠ+WLv5(-]Ug( $%$ v~@ipB9LX͎MpchoY  Fȃ l3-NrB9 Oc %;(|7 e"XMi<+sn?@ǔ+ X;~y`i}U+0cik4g; Fd ZI*A.ttXnCm]?'s Qz,s;Pc/kpeJb@@$G}#OBP4?=/m}>a9s)ȣ@A:SJ %JAJ '))UB͈#h[B2ŕ,Iyb|"\ٳgns9E O!TO֭|?KtgwK~E`'b>?o%<~D6N*RǩMRMmwLzp Ҝ5zd抶$ ;}vKݢ?1?P䟻j6%&{< o/1Nh9<+woUd}4.x åK%)p1nƄ^X1mCvX%֭[ڴiCu,TP^.ݹOMôqQaJ 6>u4 [*xZ99]ݷ6lؐL:٬Պ;;SI($E+X^ܳuEneo{PЍҡ=;ubt:fQr딀T@_R:$РA:C4}mapsy, ?zAo }6-f]Q!tֻNRla' d)J4v]~-eO?9P8>VWb۳xZ73m׃> eT ?kdsDԷR.qRg#X]\vJ " H VpzxfgWGI(]Nx"h${W74ƊqÒ]Ò:ءvSi=(l.j$ų ^<ݹ8U"[BVDLLn޵2Щ+%|-tB K(l0.U 7H1ăJ[N1" ˧6:P: #Lɓ'R}NzݿxObc GZؚX&${'Yl̙*j~DUqr_GScvZ{(**Jӭy0zT.:X8iw޻$)dN#$I/8 ܨ:'}™AAt-ٽ%ömA>TJqiL״ih+x"kRJl؏C&':a~TkҮS"F鴴}ڦuk:Ή*قjp?'E18;hϹ+pQZq$C|.jZ^faMWVJw0HAv)۠\@^|Cw"W0k'C|<-k~u<6vPCuı"&ܶta ztU sA>}Jqd*UݻE)q_Eb*!v˖-{Xmi@`iӹRO#wo?;.ZM׏vϩgϞS WjTXIzqVC:'uKZC R)MȂ$% %$9lJDl+GJ/o^A gkRpaSa%KI&e0"7̊RfM%8_z/_`HӡjJ ϖUa *?.O%=_ r|]2zŠ¡ Ƕ ˆ}%k֬;Cp}MJڵ@qs52eJ+#l eų \~<#1F9e,[}h*aaa +0^–q0?ÇW>}jh-V3kL凜(YJ5k!>yblb_ZطR|y_`lMRZ~1,/OJ@J@J@J@J@J@J I%mHGJnJƍ3grI0GfC(ӂyF|qV'vR5dZK"2_lfdzӢE {XY8~I޼ySŵ8Y$nƎ+,"gنcq,>}:!v"5<yu{ O6 7nܠ:} bpx^iٛ%Y+VH֭Kn~}V*T7S9>|89c*cB}.'5]sI#P 6lH=,Ճ7oh%x^%߿_X)')zVԮ];zrP@pr݈B+G2 t{GX9ks!dfoUo*gW;C9B?)Oy,%*% W)][JՋPNޖvk{3+WACR8V@Ӛ(y6*PGkׯ1>g ``w%Te^ͩgDu\Elߣ'uiT)_r0=s6غ @#`_/$g&.MFZ:Z܀M?%kW^S2pd1Z f%Kvo0JP{ygrFXgX:q>=`ZIR)]/!)}rRA L<2{|+1F1^@z5q!XK=MԔs{R0je9=FSqCP&r|"9F45Ę[2RE%-UZծWd\ҤVKk+I'jЍS)4$D('^Rela;7lU%ae[ ԟR>q\LJ5 q8p 6V,*qF ,UXM(5*SKE}WV>7B/sPLYի7jډ}}) Zz#I 8[-'% %DN,c G2y?S:tC\=\hs_o PF)LϓF*?_NfB-YQlɉCPao;3Sx`TH){2a6@tFK+T p 5*O^ڶ3|d{I*6-j=14c"ߠm"D(mڴ `p5#ly*[|‚zE8[zof7e0U KGTuWQv?@-|ZҺ+I n Huk t<[:Rհ_-]'cNO MMڥ u ^#9Kݽh,+cٵJiDS~pI+, ۷@y)k8I dzKDQ ԤI~ռ9^NӵU1 Խ{dc;s/4Tvd4,)'(рh9ԿdFF%3[;F9|Hz1aT+EM^Ej ϡ-[Q}85C2ۚUd8PH H4@+O+:XVoKl(pb 崴l "yGM(ٱC(U7+ԋ9H/]> lkCUl'z1m+r%-̲k]a:xGv\g$xSݡ(-_P 0 Pj:QVVǴ|CN:l ʔ)C]~)J6٬J %[< 7a% !l7P%kܺ}Wy^;s䧔뒀T@_)JDq$>j-[Fģ!S+ygN"ݜS|F*^";K,˙Fbw, ԸEHʸ-1zC`F*25=6j߲=[BX]X% ^{*XEþ*xyyӀ_'볧n…mjD?F;BpU>&gTG > ZP\yZ7zw.K,8}}![kJ-A 0^rYn~_xq gIf[7~ǡіp & xYB 0065EE,dI{x,QݤM6j7^Sײu{Bi=9"uTdr X[82zvd3tP瘑_BJU}m;MGaiz6yÄ=r $t.'@H7`+[}^C틫k4ƵpL> otf:͵4%! 6_7dg.!FjyFB,ĘΝPM)G"[1JK,9OvhRW{H8o#]9s~1*y2(Ge|Pqͪ`4gAAA԰Ø9d#1Y۫V"-ig1%}GOHĘۅ$DO7b m˞3b>K2qi aӓ@L6-g)]Wh[^P7B7dv/^_u{ؽ{whݸ>,Ֆkd˯TTGƥarJB \ŕ}@5 ,.J*P~joV5;9hk;~R B@S˝|@0?vT;A leXq@UEAUtz:airu| OďE;YވU`Ohe^bmW{c۷hkRlo<s%g02W9;mui, fÆ*GR֭wn>x+fV3tp`mMUTPz̼z}gL#`ڕ[A$dƎ?NrR vh9|Na}SǏИ1cl[1Ԧ̅{HX>^vo4FA C@vCt܇C YĶl㬠K0hMebˆ b̕z1h頙am-"U >}$n6HB[4+Wr?uቃ %<:Cpڱs,Y |[Υp8}C~gHc9wP2c֐ }|՚Sdⶇu??ݸK;t ש@º=`,Sv087n*q /s.pC%Vj7<>u:ofݾ{bbh@';TՏ;pt<:c5-^%dYo-9&!FTK~KQQQIՐA ķA?vR?ҼK[ _Ig&O:?dwxĥ8$oXUC‰#4hի_]mb١.vC{FNla-5ao{j ?l|},-=TP} ׷#}N>TEǘZ(:m83f]SW١88}GISHb(7o*nnذ^:;*v>)_!$fnvӧЙk^9wd7m4ߙC4OV# ŀtH1'|B!1 [ ^ö-'vE1b(u|e FQBM#C2O/և#Ka.?,T駟JsB_ uyN$Ø^eo:f~1eLfW<u cH4CBJiMk˦)bOAe;ggu﷡KQE:Ory1Yҭ=Ly& @’kILLT地`m٪ǶX>Ed6.n;9IO?Tz֬Y-I@" _Jj3nԢE ]S F@R=niBmB qqlcwejȀ!qHjM-F Л= F Ǚ^ ʗM_ƃu#۸y ըUʮMN9qNz2 I67Y'lJJk|.N7nzِAT./G0_Ӷ-rjL4 ?q9U=,qmDB-"铖^cONub9n[>G}IZܸl9h7qVԎ~Zs6`~5)X.\ 8t1?OzӉ -qߋt oiQ42񚚜h@>) >"7j^y͑XPyه^zZm}\&KeY>AοYݼDV8 Ɍy"jYqu?8AQ̐; ötxhK6 cE ;X3-4@ GR{kA %+tpҝ,{OqNj0K9Aɤͬ$HZƅG7]:[Eok /5kh]=c+sG֙ k'YRe_?~І6OJoNK!5Wܪ[-Z8ѩq~7:XYV[z2hbH$ ##K n̙/A[=cl#S5hҗi8pm[&Pߢmm$]B}a? >-wREB{Mf³y.sr[`Iz5+{s_2}Ə:&p3X @oiLDX#5CڬD2W칳4!4N"\V#EÞC;cHI\^Fmzx&`~tasZP-z(˂oqƺւ=N_T X-,Mih@'x[)i~S%ж 5mT߫9[]놔#Kmߺ@&O׶*c={v.=y1/Je;>j˻jFxy+<q.Yu`t~:V?/Y%kpRL:D*Y|өk.^\o+o!ʎ;\r>W@&B!JPڕKֲ7 z*E0\k 1ݎ')jV7=e(d̔Iz@7˲+˛%]q3m\Ilx%xxM;3SI_A⋘   슈Rd̮>?HIω#% SLުWXQ] P*)޼F8)BBA럴V~JB)u0xZy9+%7b,*kr Ǒr5YU/ۇ*T;n2JT K9u۶mSɣ^k*_|a1$K7M%8Q,y0aIaphEZQJ`znWpf1Hj޼pV+ш9ID/խyUʔ22fV묌X}I+]|PܳGȴN;vzH?^Vz]A3*tR~ |՛̘1#%XA?C@b@_1A]\ޚۘ!)}'^++44Є_s0@q+Qը\ :$XTXٺϬ7h r}lA NP_nw4yl_,ߨQ#jV6͜VdmbRߠ=&d~%;=4zh5 BH{c$U!ɧI))yP発t)e"t觙wd7-Y@d/vnSe *@SpYբ1\ bMH9r?Ey&f Hƺzu};E:[[tqgJey+$BZ4@`nOo#3a\[LNP_R Ap{ NO_DYɬ]<\K#@+CjK_xԪT<^'֖,>!wɓ5,K(oj@A>_n٣Ȟ6b|*MsBy!тH,rkO b5:W@={uS/%74*h O`'M#KO9gqOԃsBMO9t|1.pG/ǍǍ/ I zҟLDOK3f4U"HAJICwߥ,c҇U+z{ch3W׏oaNx.C~Je Ӽ9sv"au֑Ћeh;|yWԒ;># e.]tjׯoW]kv:ԟun6}o2XiZyyh#*3d^և5߿u7gxʖ-8M]*=^G=Ӭ-+mL{S:<H5QWS|p.y_LH 755%9G"nGO9u̓j8aĢ*.t ,jt>>D#ݩM@06s%ʬai4RtX1]ۗ0HyQˍ99hkeY!WVw[vg˨ ^K$Nmj1 I*СjdN׬U֬[GBkL%Ge0A]ϔ^F!rZ}zy` j߻wkVإ^CA,ZbsfA.NmģM^'!Oꝑz@Sb@.c=!"]5|9Cۓt5r3A\TڍoM\A9o&3Zˇ*sL |N2r:}ұgS{O4j._Ԏʗ,F2N#8Cj<Ix1+Wִo:r1ggxck~'7$Q%SN{ejcDrHXzf#F:j**VYiӦ5݆8Z2 6S5AIE@zg伞x,)1x'+q$"7c6vAvdDmxy%4,#m۽ʖ,PgsDEG7XOT9IDAT ƽXZvZzn s_r$\3)cD*\ qs'Sbm'OVksuYJDT@PeA7ncWa<<{/^օSQdw6ʔ-c*XE(CSVH6qvc]e?g'8F6c2TfzIgA]uy$Ico="۠ 75jPE1q:T@X2eʔ!qz&riwnѾ;M1=CfǞPxv 8>W*sck׮RySeLVxZ@gJļquu3Ls(qnӚ8dvnw`CpqzOaΝK>ޤ|b.eSP3.ŋ95^ B@u;L|XHKWК77uliߟ㝎 V~j腫Iↄaa4|k MLN8Ԭzٽ}>{SoݺMX&iYr c~$!5Xc6,by:4?>`GkXs9Rx@_"辖C.{q 83eJizK'i,oϰ2/ 0aErӒRJ| RjunWv&CXNӦM.)!x5ŴP{U|.C3ZsI _# F\ Z^LhZ <A@(ATR.u%{1Bյx?KٴQcݱ:hyk K&YO8!(=lud8vJ^7c]C(#ǃ2$ަh7KYiȑI4h@{X]}D؈!e+?TU}}u_e#R#Ů5j܄¢Mgvck8؞`ﰩ1M>^3vK mQ 'MOS&qRB@S5@INf6< dn@Yl_Q?4#ϒ%PċZ &Xzx˓j]2OӁٯ,Z&WLgCe=w)5 w0 } 9{tW l ޞAIe"R+O׮I 9Vsӎ=Im)}s.|"^ԕߡ)\fK@;wJPhck!! 6cy4-͚iݽk'UiNn -хn]>KfL ,x *W]nofZ1&/{c?c5aSJ>_rZzp|N(K6͙=^7ih>ѷGN.%@[{tc^ :|Q2, sfjT`AZlqQx9!O$ ۝Vb֬Yuq)=x@CCCU%VB,( x_6-%8 {xngnMNITFc3wnjr2!ϔEs092dërɒ%mf.[j?e-O6ޞwk2e*=xfNl I!Wؗvyue 5#[z!jdH{RҾ{Hޘ-\UÂ8x~JLV5gݦ_p֮_+ɉ F ڵS|b,=+i^}ٲyc!6uBYHDŽi1AF?:ƟƉ'Ԥ $/i"1qOs2 =FX 4J}\UfmSU^7b\%ڬ(-KOl( ;ʛ_5d |ITY Tauܡ!i[ T(!$A*PN܁-zTo5Dcm̜9pm2Dj%``1~cTY#ݓ9{7eiKIF!ld'p,#iR~`<5 $!`_'\jod~ r?'@E>1?Emud""ըmbӅ{6k46Ke5j:Wkj0 ?eѢEv8):D Ҷc~9Ra-F[7nJ hD?j_[icTrh6<.pgl#YPӖ|b_ۮϙ\(C NMin+*3]CAblK l_z68m-^epl["cXLY_qM>z*<} `ws)̾R8q&/Hj5ݷ7MWsJ>0XVx3w;sb,9( ǃzxSTf-j/^dǠ'z z[>@vTnsZjYv[ g)/-%Ɓ8iˌ}TN5 zC(cO{|l;iҏskD#szEd{ԛ=wی׏vlXM/0ouzh]ơСC7TkɁHA߫gwSb 3gИMԉy  W3FRUΐɛ=X+d*ք ]搂b+Q[ mdɉ e=w|(>|-D;ID5?Ҷ=#:>,y=To>jѼA@ߞ-[LiعUjCo(O}Sdd#A1+VT-wٓ@@bX]; L RE ENs&p&aiV{ZaԨQZ ɀx euI^swJtx6[ # JbYbe֔?G5_;e9&:$429aA觟~;s/r2PE/8.9U͔׉TCex-WٳbҚ6l}:LY>_ϱw;//׷h 'Q>J?'}&9OG'R7en?HgJKPE(*sFՙv8Hk6m5i7dG# _k֬zF9*kmܸQUu@?Ly=uޖ_ Tj Ń[)r3uDy_\?. ︘ T"`b JJƍ _oo%RdI^ P)ݺuSέ+Deɢ,KaV͚Jd_aA/QQJDW]~Xllһwo͕ {NrSrdϮ MgM^J\ Lj*^j RN|Kk 'q)\I rŏa9/WN:ed>i?c52fʬk5ݑCr,υJ^#<c;O5F 9rϙ-[v5^WEF\pNjyWܹeT%1NjF%]P:pb@@(mڴQʒGPB8\'kR|/s\Φv:P[%KRG߿urȩ8]R/3S?gTMu,tʕQi-B)uRH9ekjMJNQ9NkfΖCzJ픚Z(y S<<<ڥ ^7%6h %} *YBur,JqCua-Tʔ5RZ^RF]%($CarX'U)]H]/(D\z3%G:{Eа1Lm%oJDڿϝ5& n:L<1AA@b@Scӊ@e tbfꯄ$]4AmbHKX>Qs@;oA)1oxz@=k~֯WA,bqԝ5ty&oΞ̙-[Ljy튈J& ]X#u5Ι.YLwz-Z[|3o49$?EP19{b[5~`j%RBhRJ(jƠʫu_H8޺B~:Qdw{.=Ӭ-滚t]P:իwꑓՀg<)stПB|7jї(Qv1# صܹzs*5'7=}G- EW<@`|cA@ 2 ` H{&hC43TIjЧ,dM&<AӺe)˔b{7%mګɷ?} J޺Oy.>Oq*e[&! U2Sgm\@Ffy޿g|bY%hi"m*͛gt ~<3|wb]򉉀sWSxDFgxPVR:V庍iԽPMu@8~n6uq\\h􍇨;5'晲|yB9;;p~&ļz2%Po9"T^CZZSD T}G'g/]hʔ).{FO)[@n޿OǬ!0A{?(~ԷO_?t)9% zܲ]r BѷK 1rt2\aSc+UңGZ6#u{4-4ڢXKә3Ƽn#B16K5mڄP?>%UxUIn~&Yf9{}hX:tz]峣W\;N1VUSG[Pǰ7p(k˖agAP@LÚy"n5snݹ6*v9uO@͵nK{J*+ϔ)k׈z(!Y^Ctāܼn=UzgK>Vzײ ȞW:cC65G7 LoJg'@5%c?cWx{P#z K祙.ِGM0ʔ-'djxBs另ɓ'뎃72'Tf3nۃZv\m3g*r],d en;Ͼ(0bkRiyFs#SwUBrf_.Y]o8Mf?r֒%KB>Q!n_v=@Z7r\"yW_}EThQ.2BŘJ*s&ed'Z8 z׬Y;qD~f?,eWqZ0&nllQQtAnm쒑]3ݺqڵkghGZhAK>tR9/@\?VkjC2gܸq*ay@2z-N:ة$P,drZbqD_x t(qSjns]uJsMx3KS?=dw?o֪Z͐z?CڌMՌ>^wV6/aT˔B抳 -sv]O& UPYӦz]bo"#*GS93%^h{Ix>K0WB4g dD-{'ᇽi(cNmx,=쳶>Cb,88 @A5D׿n;k"CimbjRҧ~pܛtu>_u!C~ YrQ.:lmƵj;^LlO/=l9SNR]vA ԅ &Yi~=, =C7B}yߋ)@>3uG|Ԍ|5@<lOނ3Ç[۷Oq yֶm[)~${'tuV;lL=ig0x\G4~&U8F?F YˉLoيU h54dKש,tQ[ES9Ndstm:tuQ&}0*K%^g 76lMT8m #FZϷrLUݺ,+VKvSnjx2l|Rhhj0t!C7~!ExHg#hk?O_j#kYv&zWY&_~*iOMwN. ֆ @cmh5l[[LT87BV *֦h\k Ɋ3 h_d&Zk֮UV8 mIL&&AW2W*Kۊjm90dya$ w綑!j ,T˛b8DT#η0ߏv0%߀.֌yC@=kذ!ݾe|knڱotj(nGH\$MXBRB@S}`b)E3?1jt&C_ގof +3nRecB{21jHZdr=Ls=4V!QɈ-\[ꚱ9g't9#מAXxA{] y{ky3G?#_mu#SPˮiwa'rB^sv|۶D]"~F=DoYUl%׺_߾G +){_>m%޹cvĜɃ0vwtHeMe7LN!%xc}tyi'x ٵkW=zc;MLAsHB,Ԙ3Q F'x[ӓuӯY85xAgE^# cܨJ!ӛF/GGBNk4ܐrH6{P]~?18w+[fCܸ}WKӯ|ݸ~dk=M>ϗUkqh^ivv|B:qJ>piϞg{T*>biԛU팡ԋ 2IG@~3WzȲϕpPq0Oxb6mWWWБ#t+CqtJO䂖Qhȱ f ǽIV{$k`딧dql2!` 9Hv(ts1A17@_K``Kgᆪ.`|ժi3%){}h_z.m:ڪz ި 2fDU7 F2NZ%9޸$6-CϤB%Tjު.e˚qu{IPn݆ZsugHk| ;;=˖=yfGU{|~kPA[0yvAZ0ZJSpt0`K>1￯zL,H؞:t(U-I> ׿9{^:^&L=t31mcWK}NGdzߟzkAEkmRϊ5/=@zĜBu9{B_f,A,Isԗel1B St񖾾yN%]V>׋t=*/!:.XXn *RLRIum",Ë=ΒϦsR4@#XO? &\E/x#ӧ [ n]B{T:tsO[TӊЧulB$zҌ3\d )|b9`W's&L:-^0z.gCdȭ灗"W/F8t6{y%DWqqȑپ(Gy!Z޹_U?~be,tBLwQ\i=j|F_Wi5闚K̞?T|Z6}OH` ADPlka}cG~ᄡ#Ftg۳m-^;bm!Mx]+v[9ܠC7f;$jWӑ{K?MzjNhՈ<х)|coA->xP'czu}"xyhޢ ff\*/W퍄̔/chbO5?,Zq%޸A kK3Ӿ5cdWU&>m1JF_҂w[RYNv1ÒJÄ|&F><}o\1jI>>>'Aa_q2ϿBA:*t:6V%Μ#Jc"9i?x ilRR^,VX셢i'Yd{YUGB.cRT._>OvVi;NVk5y5-^iժBBBԇ_n7c'NKGRU|r;؟ӧP)2}g:+=`zCKP罵]̃Ȏ,1> lAGF*D \Of= ՔqTXu3P#^϶:+Ks&MƎUzxxЁS.+0mae SNvhȟ??]@}=^lBysfS F ;wA=:ֵ+ z?L%"Ud,,:;0h :wBF]yҤ&'}Ӥ4GUw4~tV*)%<r!6ǴA #pM}$Ւ[zK`u~/}v.]cɒ%J|kⲧ.Y=bJgU|fgϞuz NPSd==t9<,Taewٳg+LԾ>>J`P~f/_A6) (խsb ߐPUV I5x(AA7bP^Lm֬:'g+>{E/0O;8oO/0XudΒUA]ւ$ij Ixsu i!iu   &$M˲  U;/- &eYA@A@*B@ꝗA@AMu  i!iu   & xYVA@дzA@A@pB@,+ @ZE@hZr݂   !n^A@A " 4ynA@A@܄P7/   VV\  nB@eA@A@HMw^[A@7! M˲  U;/- &eYA@A@*B@ꝗA@AMu  i!iu   & xYVA@дzA@A@pB@,+ @ZE@hZr݂   !n^A@A " 4ynA@A@܄P7/   VV\  nB@eA@A@HMw^[A@7! M˲  U;/- &eYA@A@*B@ꝗA@AMu  i!iu   & xYVA@дzA@A@pB@,+ @ZE@hZr݂   !n^A@A " 4ynA@A@܄P7/   VV\  nB@eA@A@HMw^[A@7! M˲  U;/- &eYA@A@*B@ꝗA@AMu  i!iu   & xYVA@дzA@A@pB@,+ @ZE@hZr݂   !n^A@A " 4ynA@A@܄P7/   VV\  nB@eA@A@HMw^[A@7!?+mKIENDB`ellipse/man/figures/README-pairs.profile-1.png0000644000176200001440000014652514411030433020510 0ustar liggesusersPNG  IHDRz4iCCPkCGColorSpaceGenericRGB8U]hU>+$΃Ԧ5lRфem,lAݝi&3i)>A['!j-P(G 3k~s ,[%,-:t} }-+*&¿ gPG݅ج8"eŲ]A b ;l õWϙ2_E,(ۈ#Zsێ<5)"E6N#ӽEkۃO0}*rUt.iei #]r >cU{t7+ԙg߃xuWB_-%=^ t0uvW9 %/VBW'_tMۓP\>@y0`D i|[` hh)Tj0B#ЪhU# ~yhu fp#1I/I"0! 'Sdd:J5ǖ"sdy#R7wAgdJ7kʕn^:}nWFVst$gj-tԝr_װ_7Z ~V54V }o[G=Nd>-UlaY5V}xg[?k&>srq߀].r_r_qsGjy4k iQܟBZ-<(d=dKO a/zv7]ǰod}sn?TF'|3Nn#I?"mzv~K=گsl<b|_|4>?pߋQrib 2* (Ѧh{28oIyes8';Z9h6g>xRx'b8ՃWOϫ[xn%|^z}%x c8eXIfMM*i_@IDATx T?PQJTTKDeɒ}V*Yʾ[D ٷDY"?Mou]gzMi.;9yNTڜL! B@J!GB@! P]B@! " 4T3! B@9B@! BE@hpkgB@! r@u ! B@P΄B@! B@! 9­ ! B@5 B@!*r@C[;B@! k@! B T䀆 v&B@! T׀B@! @ nL! B@! B@P*ڙB@! P]B@! " 4T3! B@9B@! BE@hpkgB@! r@u ! B@P΄B@! B@! 9­ oZwOw0J}.wPyEz.s[_ eu+l?Ǚqа~~{nmu[m8q~衇\V&l ޼曮~7͍3t-[tM6uǏ_o8 z-w}oƵm~ڶp/[ڍ5>}? mPT7~{=_wu,Nj/v;w{V6m<݊U,uk*:kviw7o>}syk]gF٥ Y&O?uxT-9sRi/wߥ~TJ;>uͤ(m&Uv_ >`jO# 1vS?s*c_>"_-]^?Ӝ8`T=w`믟-\0u1ǤZkT>}rڌK;i=ғTrv!5a(=Nq%g$taE@ lBÉnݺv\& Όy=t電[EI}@{Yg^z_~٢y]Æ ݇~2ԩI꫻W^ف:(J+ݻgy&ݕYh+дV]uU7c v]^f0@@&M\zrk8i[~_r]wժUs뮻Y/sݜ{饗\fn]IwOKoĈ`20?Ct]}6/=3l#VO5n!g.rp3&_x_N[qƕ '1M7jݺmѣ]:=±_c Ktn|.]A8j[B$Lƌc5jȥi&]v{up-z)\6m}MV'I^p8Yw24r^="eWrSOHt޽+Z,K?3ЏT'B@`ԩG4QP \!KQGZƍ/om$Et8EOHό13.ɓ'94mƾ:c<ld3ǬBo8Ԑ!Cla HqSCS`*?p SAZrW: _zU-ʶ_ဦN1Ksܫ+{fTR|Q(ЮJDDD( tdwcJϭt"5$_:-Ʊy\ڶ(D~S%E} ׊a!} qO! E ! B l䀆'B@"G@h_:|! B@аB@!P- @/B@6ڟB@! 9E~B@!6r@F\B@! @# /B@! F`PZj/j-Ң4Z!.\0!ؾ-Z2"Lڌ\l[`AdӖ~lQtK.bnɒ%_~dQΝk18tpv߉_߽Ƴ_F+ݯ͹82 Upہoo^wqo}l'Nt͛7w묳Ne7O?nGn뭷vm۶jQ_o׮>wql,ksҤIiӦ^z!dn= m%w矻ƍ<ǞuQ /+͜9=^Vm[nŭ~m3 ͘1Üߖ-[fo\p۴i6l_vW\qYfuͭZ.SK~Ccǎ\8[lEN^inm| b|n]w-kϟ}Ǯnݺn 7n_9?Jg͚fΝ^UWu=zz-X."ôZjÏ:WV-a?kfuԉ< ꫻VZlU2aT3 ׺灉{ :u@ 0 k\DnGTF w5׸SO=Zp z>F뮻εn{bQBy 7X`uuZ@J 4'@B@pȵbD B39vFuSXorKkd&)][ p%mƑDsګzʝ~nȑD{U wLhQOhذT;8R1kB  4tMn̘16LhW_}=XFO>$0U > !P ۻSN9+KmJBzڵܻ+U :$w~u>AZhכFPP__谅@P~9s8x7``w @Ct;zu-3-+{G &Lqj`B  kVܳ>Xc$\(Xlr@CA /ot>s7sL*~l"4.[nR,YR4sjӦMռys#C`_{C9D@*rSNuNCCo@ Z[[guC̤I{ EٺLZlvqG;ګhNA;mb.K>]j*^HZ$'Z.}WjG܀pV^ϯO>款+eگAZ4dC>K/Y^{޵7?~]ɤh?#=$i5jd2J%7DB<@׶m[wwUVY6|[;M :ꨂ2S} \ߧzM(#h /?9!@'|FYouvz8oV"DE[Acv3DW~ (r2vXHDHn!bBuԩrӦMs<| ^qsjiF)ѤG}1 \ N.\L^z%,tM, :,jY-߷ /,]Բ_pΤ&[@BDID:TC*%Q @.ї{*mn@%\&HAqn& B$v09=M8v~h"D~{?6YfDH3|@yp@(ƅagvs1u0>֮]R7}9h{"@ 7n6A^'xK5zI'^x 2řPT4ԓM(Dγ:N9DAڪE <,ihP(+\bbl%2=Xht@\8PhD "&A7'x"̰ 7ypRq%+5j#@tp}q(+㏍W̤%zyG_ŅthaPiNTdc_qI21%3B1WYa"0eSГ^2o.r;BY<0"D^)R"*vXf" գR'f͚e)v90"HqҨ!LÙGk<zx$kpmS.d+PZ`U~Y~Ezs?,F!9"DQ7>0[q4~gaC&\her @ ѽ 5eqVD“J )HKk&d%*L.. {YXG o-9D: d|M㧅={vߙ_Ya!@t#OǓvڸڴica\Fe;Q`dL>Q'QZBiذaTC~CB{?M4 iυ Ց\Э%*`b n} {,DCtmBұac"' "|4DSǐ 9/}Ω.*{1Y)x4ͳ;|@tSKƯ@3K.?pGǍn2#C[om@*eCZ4dӈ D_H-E|rSyVIii}nAg.F5$ 2+->E￷T7}ӧ[JF/"t5G*J#* <8Ĉz\Qb}c1n#?a)M8Va*~$L(Iu֡F:fr.\hP*Aq|+8γ2V#I*jG0$8X!U,K5/zDwH+#+CװNID)KcD -%q)zBR =Pʊ?emjzPMp":BC'"-qڵD|Qe%Jv"aQA۫IzpoW|%}r@}R*txQ !EDƋ/h> 8dC/6T(@ nQohb~%QG ĘDe1\³ӨgpJ!SA^#D^V=&3o{ڳd.-H![E{o29a!$xHՔ66\r [`u{a?0dhGe &ZAg|"q-1}GK[KH EiW\qQF(x} p&ԫWϲDW)̥')eeŋm2Ƥ7QJG;(94!S݄yv1i 䀆QXYt/=I3d nj?0Z駟 ePe#9믿T Pu҈7nNg,>Մ7c w]w&m>}ⵢ,qw:++,BG4pѸ/'3B6H(va"4 A.H?xCzfYV"Oi,r-Mcǎ~S\( D'r+tkS6lI!qIK\MnݬX/"sεc+J6OwL8esK2QOy[Գ䙤a*yV^T ҈D75x B̞4Ndw;ׇV 6UΤjpVNǂ,w"{S5W9jc;vlNӌ y0!zE7@;^ݜbv<3ghGiY9xdX'֤U_!4!N<9.ҴiSׯ_?sDnII{2E8p{w#r%=ᆒ^yG"|..#GƒO/Op>`A ;uTwe|"JF7&{ɒQO'(\ƐuI#d&jCĽK.]W^ڡt;AzR/cԲ!|zh"GLtQ,דT8'д"馛/kY^W^|r s=Wd26Rw|]a?~!ҋ>ي#@9Ţ/OhjUJ^uDz.T*X4ڐ! %Z|e˖Yaҥ|B:Gࢋ.Q._{%G5 DܺlP1CL5B<޽{ u&O EOOFs=M $oB/ڢÁ%/!2t3*KޑU=bBD c|$v9tzðD:TiE]dB!:D;=T9'=@(Ydh|Қ5kf7ުvwzMqmU'&Ö|M44ILD~Wnָy\% -p>oXPr:"_3X&44](@ֲU_dp âcqt3I/GfUWǁSJt}" A]:(UȤ!ѨE$o0rFpHKGsH-IJnky퇈M]̆It.?DA I&f&q>ɾ@QI,YU0Ylng )Xw}=n󙴼}|C *#aTOjQb5Og獃ɹ,dDIsAWqp>oM75Qr) {.'vr>?6E@>h3" -[\viX:^Popp@_g{*CSN9xgȐ! &j̸X!%R wqWM>ؐ~# b0~DIcg8Q74pO"*7$F~'d ^%}(@/5!pșFZ]$ҝ]RQ"ǮA@m*to*݂z%WH/Sb*0.q,ߧ|0vRiT:J뚦loA#.j*}+q XtemtzWHS)RtW?N3J{RuM'1!uRm"\Vu4U!>M~i>_JY 4=J:n| |\,H4"Vߗ:!Cj>q6#!Ct6v@U?t84/E.jwU:='27H&t)FubUhKHAzq)?zُ:ԩJ>/)g@F"<=q R8r$C_qx*!Dg8AF>JlIrT|ʤ lO#zȈ#d.H,!O OYoܓSl++\ՑE;4Xޞ8 P(kD^*+>r@ #@ Ci~"]@#% ǔHtRാ<ԁnͺQ9c%vFd Iu+$LTGEВE~(Ӌَ>BCġl10]hhk_E4`('| +(ҁ k^"eyTn(aq-Y"4y¡Ѵ>WҞL2:DBfMÉJwǠd!c.q>[nɃ!GQ@_^RH{бi]Ӊr"Rn?ӛ yjpkxW9?)[o&tOñ ̾Bk`GwC 5T.-heE"?dW E@u hTvLw3]{ |:tqE+*ELC oyrR8<ܒhD6p5[lI1@^.@U97'h D@h\GPYs3i(idF&r@D[*z—$e[#(D*HSC2f͚Yz*o*ѹ$nfR>lOQ4C30:& n\VHFH6H̪2ڲ"_6nc g]L^=&JSL"#繊jTr@B^-Z C T,SXަk[\:0Pz@y晖߳-;ƛ4={)qn;8 RdD!aD5"U\C*nד.dҹTT\P[sU~@9TfBOH7l.xieXI5/^bv٭Y ~-v8&V&M 5y01)alwI!,Rzx2ݘ'I+ IDQ /0UV6( :SgK~'Tp=P<oZO2&=kS>$Z"PnDC+IG%@nt!hѢXiY"dpџxٳ[ C.dR& ܹs'ZԜ ^QS۷#RŵG$:F#D9>N\pcpL:,gGb:PA P"P׾}{Km]|KExPc'ZzP L<4I%<4qc7Rkt&WD7Q8^zC5/#ruI'Y4;#by97h&/x-; uh2!+r@sEN ALG9@Di>q26։Rs}vDI6l\n8kQI`_D I9s~g}fN>|W?m̙VLd= C* Q3kfk׎b8gGjmo Ʉ@>=+B@AV#W' 8E0q[2I&-(f;JVA c_"9p\èόBJLϗ^zɨDl8@'~YTwG_ZUfm7=&2!r@@Q! E]d݃p2*Zť:|J&΃2}ZoE>he˖SLj* "bwn.o~ٽE*/t% cX#Kr@v4ޢGG9I'#Y|ᇭݿ46XFmD؝aPb8Uɱ1y (B. ))\"o$Nte)reBo'B@_|;Ӭ:iYEHiI3*q0RޤR i8-$.XO;d- ! 0ڇ&Q`$@T5ĩ 71/NxҌjtTi8wpN4r^&Be;qLI$L4,b /kФje~BK tpꩧ*i}{{HڽGxW_}uCK&F@h؈kB d ?E52\/8vP%~^pzP:_~ky`r@;L9bFqSzw,Z飹sZ,lÆ +_GA$]NjV).^Q AFRJ-$g qp5-&pƏo)"&ʌ'W:u2ܩC3/> $ځiӦRp/cb48@s,%N6 LZD8(N) C9^CH$NDϟoQSR,GI*qq%NTh"DZjf㇟ˋ:qqs >,'H`UWI|%.^ o&UG|I&P ۂdMLWgXHk?B*WU@DKy@ʲGU5jTԒK/dQOLRBȄ@E@!==EAJTڇ(rp, ET*)!C!xlj*lРAƯ( Oba#_&@2g4ydK''ce]^HoVd$dŅsOD*E&BGbܹs`&Dů!!`o,rB\O̒8x.8P!լYs)p xQ%F;2c]]O WpMj+j}f͚y:QF7xUVzZ?ZkM ݧ~kDAe\.]\*򴃓O>5o5lzZ_Bͳgtm iH7oݣ>i{Mꉍy:^-_~ѣիWv+lD_ 4,^VW^yezz\a;_Ajnvr[V(\deaN::u.8:2|嗞׉ lh,B@! (_W&c @IDATh>so[`Akh1! @q#?MK7:z!#vHw1-w59Y-q/r-&(jy!@I ! (@[m5k㏽z8IT/R-zXK ! ~s1y:j!# -y;&ruqk]MsC%kUgB@}~ׁh@[ܹs?<Uz20|VJ^<1y#N-{9?23<3kB@"㏻:A&@YƍZje4^Ot뭷&V2(kYҡe'T79hM! @a!O>JG#|@`ɒ%{Np~=zthLGof̘az\j@aYgZwuꫯj׮^{m#slᆮ^zQ [B@?[pBfQ"-W_}Ս?ZO`5j:6mLW^yŝ~}UV䀖_ek>GͶI&Yf˝K僋) ]hF={l7g1~-¶n6l3WZrF >ӈ_E%NlM6q묳Mq(k֬i$TƄ!6s|y͛7ϭZ"QnjԨ@! o]1cƸ#FPǕ1˖-3>/@ѯܹE97h fݶm[ sg|kW_S:8R_~ݐwqG.6m؋L!x 믻I&?М@8j >cmcĻ2CFgϞOl1￷T&]hkvnJsN-C'8 pm w@IvmnȐ!tҵ;(g gԓ29Fi뭷W/^}7a#xg}=Qu/B@gy=pׯ~Ju8Dy ժPxdrY#hMO20eB EoA87JCd5n 0Z|($\ 8q*'C]0 i=! H?rD=9׷o_skЖh+ oH*/짟~rl^psi}`bBNN,EEVt@IZ')8dz$z{ꩧW_]Mͤy0P;J)v;nt*NҥK>|w}v4B*@͛=N3n>6 9?cvmzXM S>gM8MD=t>3cdLj.Qz8EG'B$ˑqe98, a) ҪWnxৢ뮻*ܿ-C߂g}&\]v l7ȗ}jB NQŅR/^zAϡphgXFd~VvF<^yvol=}'rE"dØN;庩\(P8CTX;~RyW $MzM7Ga(|P*BpHRnԨQ&gߵ^\3#G 厨(f>S`+ 2 <_~e+fZwtE.gXmHA) C (8Q+:h 1C Ca"8*E"kF-} 6t>_qP  @`gm1ZՐy@;pH>8 аdB+p U d#P(-[+wr_s5$0RDby@Q:3ɄHƱt^K1S|> .7 NȄ@U:t5gw}S%YRD->h)5h#:A-.igկ_ߤ&z F,murLڷU# ňpnݺu\T8jժeY!Pڏ %@[onFo,%pw믿ပ4ty\+}.EP5 ~:,ɄDw=Q%9t0%J8r>K?.,9\߯JF8pQrݎ֋7dЂ7F]I+ /OD - ՜8 L >HtEܹs:E9A i6icYm\t-.Vvq=SW @`T3N9ܹ8GhH֌,XY!y"d\ȢC 4('4j֬z+PHI"c,CQ1?{lsL2&d"G@QV\ , B"B`s" c= #URz jPx2—cK8Cq@&G E.XSO=hC9 klUʐ'f܄u֭7n2F*1nD8Df$w4>! Pzx2l֏b"W/$#%J. X^x(% NBq@!% J+HC=}y ~ٙ3gz2ZD#jnyo 9NV0xBnt"T*Xh|BO$;3sHAiЌASdD߃8OH@@(hpD- 郪 2}]=WC:.$:)EW^yf=8N).>\0 (n UР CPTs"8d|dC) "3h۶mF=ڗ"8}P>)8hz9sF{Ƕ41s(IOO> -/@P4 1^򂄛OHcYVhm<9wN %2p@7tS^{oWҺkڴiVQO<~מǺDk|J<DͣjWY2ͦ)%KM>ᄼe>#@ &sdt)Su,A,+-sV(.PPv*W֧QLpy. (I)x-WHP1K<2P;< Q B@R Px7pm&Oa8ѽ(VtANs>|wߙ.4 YG I224t!TF6k&ӱq :xd89/KfF\pBÈ60/Q`>YZ#3J)0L3(믿Aї񖖣LJ-JyڿRKQ˃"P0aBs 蠃*(']B0(#)JON8 #,w$X",ǎl23q/^l#e/Mߒ/iNBd*Y'\fW"КY! B&kмA%s@-&IٺuH qRռ@vFŎ3BIۻn4!jR0r:efh xYf&(@F4! >ƇF1nQigMqӆ/8"4vWZY)ZʢA% Fhp@qHIiQtAYvAxOԟwA$ ڕ!^,h_yoҥKwu˫Pxyjd"u34uChPN%±'3zEiĈ=iqF6mC9rZ@{dOtK/5DzeV(jÁ JhɨS `;d'3w?98bƙY/D:1$/Ie:Ve ׭[I(ge!@L g膇}{*j(AP;}=\ }Gw4=)iӦG;(-*\<3E+HPɢAg84}d0,DիرXp%8U -[,CԱ䁀JC~qcR%GDd({9*$1P y'jT݃Is^pdBXC5<X:=i5+O>D ntb#₀,TE;~РAWg1DG$"T0 E=YsuzݤIfkg8TBʄ@"o$`<ђ%KL? v3iUbв믿,L_}US_}ZP噅,^sOޤʜ+~وfӟ(ѯfkg[@vH'|]܍$k~p۷ɴnF'NhUOPJA&*B@hEȔ9ZIpqVߩS'+N j|RO4"$]O41| ~)մqe;!Pqm q?P5B1,CIH,7;<ϫ5PdB2VN9Q1^n/gYDe<t P~g̘a7'wڛvŸfJtf2!PPbhbLzT2 Ѷk)c Ŏ*kܸ . p@@LZ'~ 6E~#Jv#F'!C$P"O<᠎ WlZP+{YNBt!QshLRQ](`=R{CTQ ף:،uƆp}\lΜ9{x駟6ǔ)jiB{#0acNF8YSHƝp _J&,{219vXy~m-)*F k?8r9B24-A[/QA! O7H^JQ-4h`2OZ^BqDK(HvGBOgW%Qc~52!8 =:$А_xb}5i o]qTr$p#"駟lӦMA'sϵٳBNLqV8x}!rD#&`\{$6|˚U0HɲC8&Mr]t:-PP"Wٝc#=R>dСZƈP;}uӐg38}/ DeMשSĢi9u%OU `$m„ V$ٓ8wA?l;2,D?e!@UW]eΝ;`fͲ[YK EqZJDA86ŋ#A(7d/:|ps#7%0 /`38*oI'(dЪK"$0CQ ٸ?cP(A,{D"#.%x|&iʝI&vC'7R[}=JDžrGƤR>T3S A!DQL 0ft AZ&@0i$ u U LDe!Fj%3+^hE<}Y9Pb  É$zqǙE*ի@]zVu8-Ojspu%y-h h RD4Z*Bjpzi %ʃnsq@xAk] 5 Gc-%;vt'JBsy9#MB"lp `+~Wd4C`6SQZi{B`bJ߶pˡ?^=եKOF%Pbx≎ 3 裏WxC IVU@((a~{RD0UQ%Dt3հ$KE>FDY1PTaHjlWd !JC4P(.Vw *mqsfY2L:՜QxDd>s,(*Ȅ@⢧MI#ąK7縉GП D01bqxOurD8DWRwFCI %hG{wͨIØ2y>9ABpǏ9sF_1nc֬YňW^y8^Ug7s8KqYt;ɤhɋh#(TN^zVvpo,Tdt !5CiUW0UL.X~eB@c=yHiT;fd:묓rq@qzQ&yĉ֜NdjS5F'F rO&΄i(P i(@hn.ttOJg7c0 eB@D)3Hp@,":>p@5ox_}'/Ecpُ^~qSf2E JPїDA~(2!G0&xof (E 8D%pRĹ;m)DQE42Qk2RddB p|D/Jk6] !0p@Ro{t  ʄ@R38I JD !PDH hRt*IB@hVDcKlDn07z\C x h_~19x@Q(jȖzZ/55XGדW y 5^{*&R\a/wbP*9怮Ld_?yUYlPբ I5Wm$T˄@L#G7\Oh3X &$X"S.B@!8Biř8T4`! B@ڰB@! @y-}&B@!r@VB@! (9塢τB@! C@h`jB@! ! B@!  9A ! B@PgB@! !P=-3g6mڸF'm>IR)6۸aÆykN>dxZO 6˖-s't;s=護WvmOiF`ҥnРA]vk׮nɮz>=oֽ[q٭ة) 8M>u9Pq ð;5.R@(B_~qw/Z>Ў;/4&Mr{{1?ӑiX dGP& #FD*4$a7?pףGb8܂=;̽{|:0! @ }0м!2\~n…| DS1Vϛ,@={u]] ܀@A"9xqrrU{=#}.).*C.]$H?C@`„ /toW^{.BJ*v amW!P]pw_?0_(AD:8n{9'(Df̘8C-Zg*̙c m ! P;qeYqe˖+.PXc Zb*hl,G쪫rO}ay^uTB@~nѢEw묳NT iҴGy9tr@ <(7t1ګZt'gGh؎϶bvwB@xAnX;urDsUVz,|>opo^8#B@zFm - qSNu_o̙3ܹs?~'G4X?D>l`+!O}뭷vz|FZݴiܬYΟ?9_,X ?Gߚkinzg/n5kfZuEW!hkT nܸq<,!+Mȉ{8~v?tSL1Gr-p5r7v[6n if? Կ}N䌴8:סC#Xse{8D9}cM&Maij믿98jԨw 7VZ_S1yEaÆyie±ۺ8Ml[&E25kv|4wa-_Ǝ}뭷yYDy愔 Ѓ:!8_Zm41cƸgyֻ+)^z%;c=ܹ́9L$Up4wa#(!L<W^y m۶u۷s/mجBB@ fhQ}駻}f}/.@(2D{gs=g)vkv'2vWCQJpc릛nrwy9't%m/"Տ>9%::GtRQ~_Uf{キ2 KS9&6[miwqY;mB }K.qFٙur@sE.3!E[̧~"`x}Ps1k}uEqx'Bǎ׆l6\ϲrBsO=\]8Wdɒ: wq-qQ Gmf:i4]֭5N<צLӧOƄO̽/tJ%4aSihxIU2+N۵kgS#e{@Ǐ "#F^D@@ XxvR K/J&ʁb">{3nN4 NP1fϞm/p*(`DDQӦMM&oդF>|>Љо{m4=_3Vl^oF&CʹiL&Mlj@ 0qͽk6w5i* @9`5jܹmgSh@1HiC34DSտ b"EpVhQ׿U!"iIb o Of1oب\̋T[G}t.m=K~ٛa֭[s2TD@! ye-c Zr7mh@QpQlĉ&P'(pݻwqƙ{̦|SP$v#/~(%o#=68&/7i|֭[g3 a{cʕ;&!4hIp3j" "&Xntb*I1F`hDKXVf.XXhҀ:A9cP8}:'}0(Ց RV[8nG7ʁ} $!|ћy=FenVd/p L7U8HKMD@@>#s^>aZÆ mJj8>'4NPN&hHJ\N4Rbz'Ɇ>6e $4N/"=B|bqSJ\muK#:֭[T!cǎule{ &.C;vfl?O<5~fnԀ.K?4.X7(N h\N>dC ?N"⼍@I O? zR&sg_$x"⒚ĉs*( |"! !%Ӱ&ڇ`_;<%pN1W]uUm&:p=hFJtlR~khu 2*ŠJ\eKJ%܈Qc1R7x'WSF%34(q{B%q>y@q}ryRsqǙM69(MN>azw7z2FOlqa~& a ~~kܸWJt7? *vn@F!\3:t`;p-^kyj`" '@%qrUJLvAq…6AHRT-[N9O Nq6YMaEI\ѣGh0%Pi̘1VӉ@"vvaY ؕ+W̟?]nN~K1ɞIL:LbθȞ={hwXW~yI{3 >^VZe;<& /3nc| '4D^|a))h{V*8)eo~~‰D@D X(Iu}R-jqb@L3,:\r%6rΉENT9c9W^ms}>VCI䑈FYm4g,+i\MׄOW4^Hkծ];Iא "<pXbUA77#>srӒlzV뉦& b|. `. r s0&:th"~{ w?.=~x$9sNE@D ,uT2b!S`ɉܒ^& mk6C=/bO* p u{->|TA^K.fi~{g'+eo-`/ q^3G_/ JD$ѻ %1 6ش0TkASf&OݺuKbFo/tΝ;TV- ~[O2_/6/ klx+PcCAD5bʔ)]r$$W|rճ "|.UHN#]o$-?`*| Eћn)a|_7x]ISԫ l^mhYQprGT H"z {LIn3g6x`~3L)"%# G hoZn?MD ?Rjޢ=J\ Du\r^F.-[.TV4>&'.K#Gd j2P;K@h|a$pǤY:^eטFeϟoxjM"Ru]gRdu>G c#&EOɒ%u(!@$&>$4wn^|E[l~1+B"x"L~gu,g%DXSTU^os̱O'w'X!z9S^Fz!/oFfB_}}=0  乥*ZH׆ ~ѲOE=di~(J-2}%@cϏZJj;6C(c?{RJ{mσS10C`EnJCy꫶t^=D"xD?[rݺuVDd\rJ^O K> p$0 7Ccr/|r,EpGIZ ̡h$e˖O>8D}67'_N8Z0/Y&G\oJx4 t/1Tr \?mJ2<`.O}"K(ad6rVG;5p7ӦMRé@ze F<Ʃ  |6mڔQ<)7InlTtxmR\Dmӧۨ\ mJ?!g\1[yÚ߾}-0CkOZ0^?';~EsK.+Mj" s /Lfw_nKCב<)f4,[l#> 4"Y|֭NZnQCD$"8}֬9]Döm ͛7&-E,y&,EeEEQ-Rm+>/?䕥~;+=jFhر76J>u]7 &Xk7'4}"xuE' E.XPm5D˔)cYuG^y+pw~(@\5~3{4 s807hrq+~oT/tpG.R"Iqr>q?xd5)'.ڑ8^?;D?4?Ҏ}!3ZD$ ׍7Z#rf= ~%R,A8G%˝wiS!Q^2tCCp'.nl|Q KCsH@%ϪU#8#d^Sh #|{?I{"#y1Jj󎷠S k5/2M׭[׻"IԞF C "Op-Zdp@*GZ׮]mV~hh K2eUEMD{XCпӽ{w ̢\Ϳ{v,!_f"AٸКQ#ŋ԰Ň э'Sr,Gd~fy) =h$P:/CM7& g|_~ A<("~~h R d~ӱ 0GAFZ d mOlʟY5ڵ$ƔƬS_F$ '%>"|.\j>)I 5|$@zK O?PsˁB `wrJ A9Q o߾65Zl7HO$;E͛7瞛omy<OۄORU_Z*Qax2 gz!K_ ށu?V4<?к;`#s )kzizJJ]tO,(={`~&Gɝ(]6( ͳ I֩3/#7I05; ;?oxhg@!੧jVX!3cN+4>R.3TCAF H'Z`4G (I3HI%h1g϶> 3M7desKAU#UΧv{1 <nRFtK%T}DX(H$%Kn;ĚPe [.MmesUe938~zjT^P:t Bğ9Uqi$k wλN6qLDJ/7 ]~5y$~3}"s:ӭ'ZOLG4ptOD9gyfL׬Yc"Z &vL G}tJ}r BbpC:uLF ËuϝءCC4nY8$3od`j= G Oӻwo 1>;#!y:7Ĩߊ@slD,`3Qh]}ݼ\rʙz^;*U2M6:qKhWjpI'y)~&@"s,y<3<] 32Q2U>_۸qA)D15 ݋!͟?֝GC5>}dUҫW/αsUA ͝L$Ŀuzi˃SM(@q#=՗xZf =(5,'uf$Ki $H:2ˠP-5ILjKfΜiXҲeKGSyRM䔣1!!~f'ө+A ֮]; |,V%|H, yi/ۍ^ tï<(Z9wOv{ ('"+w B๾l$$I )Soj"ӭF9`|kA1mڴl9a~:&Qd (K/u]F_8}I%= XyVRL2dA<8ze˖E"uQ*aFX:dv5jd %Ϙ1[Xz ,gA2:u&"/J@Ji /0a0R3fp[4OEOG D]|%9q~.B'{uˊ @nˢ謳βÇh)7<\'uԱK:մN'/,D˖-&ug)؅I/yh""2 x]]Sz:)O刀*!ntUGDNBIiDx* 0VXѦ5TJAhAX@ԏ?D$PHCD $\\YL2jK(a:h=XAzޱc۹s!-'(U->ժU3Լw[ekiC-'>Hp+ ƒnݺ/Nh4)oCڶmk5><)QpLzCmzpͲ0uCHEcߴiSRIu&"-,JIG60V o 6h~'m%#)/D1VPqִ)NMDx>!xH@q㬛?fYѧ{ICF $@,\GD@Awޱi*᳍x4)WMLcj" !7 K:9 L$p%|H_8NASLJرc3C}ydDu'H?zJϷ'd,Zf+Hv_m_ׯ7kmҢl*ɒ@ 6Bpڠ/H-/썙˙d7xcR!+fj"D B ڵ3ɖڥc+$tye*Q͈j"!@J;ċͳak" " " " ( ^W$:[k@D@D@D@DQ@ŭH5 " " " "( D@D@D@D@$pPGq`" " " " @u 8J@u0 D@D@D@D@%pG.]jԩcJ,^Օ ?rfŊIM3ڵ5o_믿<3IMCfԨQwiFmnƤ&[fMzjShѤ&cdsiyr@g͚etbz!OנC6+VLyY!uIKO?dg|r3w\&@[?… Gҫ{׼@sq-pTR8R۷o7EIitR띸&K*TS=Fm,lu |@pyhD ^{53sLt>D@D@ @ڝ֬YcZhaf̘jT!wߙ/<v/g`k" "$R>s駛3:`&Xpds[VT ۴iӤ+V̚/~̙cjժeM$2d4U?m!AF Ӛ4ib>c#ӕ3 {fϞmNj|M 9(2D^lh@4bހ-[aÆً5ѭ[7O 5H 7lc9&ծx\Ț@ӧʕ H#Px;nb{! p gm@]0AF;v4W\qu@C%3cxvxvy̤I$|JЄA14W&ᤓN2-2K.CѢE=)>g!c.(lBY/}5A7ԍgc޹sgӠA+x~KQm:\Wj",իW={PLG`d'58&E5Xfi޼ѣy/l$|xm$h::CuZa ^;/P(ʵC# K$ ,LIt Zޚ^<~]lt;F5ZOJ@^@CXhE4Ν;}ܰ*\j޽)RH0h־# DIXd"/6O|~MWc&pS 46#uoᆜC.s38̲eT ˻S#C#"d"/6O ^1[y~h&6mM(O9b˖-Nw7(D Gm}]p MYsįe˖6%X{ Hsnذj;ϟo~iAi&I%B x≞,_~x+6עE:;MD -Ҁ;T}>}ʳ>?jΩN Y`4tP1ӻOߜbM$@ NfK.UBH_" U2m,ptz6xM9bc ]we*Ud̙K~xP,'JmJhN8x!hʁ 3kLDX,Y2y߬?yR#@XBI *֑#xbs7k cHs^ 4Hi f D9Τ[/q9%Sʑh8{MLnݬvSM!͏5b$r5פӝ r1׿e3i$t5 auՋ  7'|2mNhKWn}, -~ldYx^ztV!Zt:| 2?xŊbŊ>#%@pa9#JwGPCmlDlr@0܎x̙a:i_~;5HڵkMΝmpѨQy睗~HD_ B:͔)S$|:xD4lJ^`OPqO%|DgaN܏zS9묳lZ% Y.E#Ӏzo9c Zg}fTu76gANMձrvS}x.3{4Xj%H Ohъ"w%bXR"ꫯfɮ1~xFؼ m)b TRj^ٲeu @KE-K.Ĵh.&OlwE-bsF4;\+?PB;8[B󨣎1u=n5xl-j$ 6qƍꩧjVjv\fo_^/hn YA 6ly 3bB 6; ֭ZO-gyfA{`J\î=3FyG/\4o|g0\Ga31T8pմr|j# 4w>2eHeyRC;@4C2)KM "_?#Pע bsylcr4HD"2WvmwmSK={m;M&M좉}Q_]-<9s X~GWu0qH ™I ޣGy=%|fz&<1m?],O\2Kᄏ /`+JvԈyXd9cga|=cfiH߄`Kc]weP):˔)ceJy!! !y|]8+8jg]t§n~>m֬Y7E %&믿ƓO> Eߋ@LGq%KL8'&tZGϱ?%uVCbDe@e4<ڶmk?|Cu7ߧ/7~8xxyRK Y_۪UM7d͛7F%u3ȟx,l.BgxڦoF*E`PhUBiQ~(QtсkDGH#)Ұ b.X|yŪyf+p EIt<OhMi$̧XM^Z#x#0'a׽nY@I35\c># 29m"FWn]7I W ,0e =9Y"E>X,3fyH+[lL?Q/ xՓP/7vzעzHD |w1>OSDEIEj$BLۈ$C@dhei[*I=PL:Ffp6H=x`CF\>p30E̡܏D9aO%3@]8@@P ;m4ߎoCO>8UI]M!@D-iCQ"Դ@*$B-B:sg}֦@"H7#i6384$pO.$֦" "<gZ8\5klߍC$}5$GW\VHD@CHx>h6;StGcǎL:S?'D V"Xk2w}O/4mڴEI .3 HÔѬT%@d@DA9@qN3{ڽ{y衇̹k:wl~msQGeZ!l?bktD a垄ӨQUhѢmD@D1㏭ Gu(?xWl,+WVYޜ{ 'J/_>{S" " 6ZJcعu׮]6ѣu]'@#6xWZE <Jɓ'() O("ŋ7#GLbٔḍժU~y2xq$t]p'U§R+yLn̸4qL>L6͜~,"  ȉ\~ /DW]uƧxEV\`SJMB#)?z`D.)$\DrJqp@#9DgX@p4nr->Y 5mVFYs;y>%|%4q^zW_}PNEqW"P0͛oٜvi핂D f-&믿B|4{D@25k47nqBM6fРAhw FQ>SSvmqc…ҜG[o|٭[7sWy-okO4bąK. M7ƍg4ib~a3tPO~!"4oݺV*VXF믿ޚG )[lFWg"@N:L4ԯ_?X4ی`QLWzND@M`˖-66tҞ'5D c̔ y]vy%|zRvπC1b'>s~45kk~3K.饓@ ! !yyR *M6|ѢEVIdzh}zAF|C7ߴi(ymӕ!rvaS9ȓh& _0?>|D#ОקOӱcGU 楐޳gOo+|DՁ R]d9RVj"*?FSkŊV;j_/~gsW4r/SLh" %ITݻ.2N*Mck0Z_]§. TNs4>SFE@<@ 0(Nj$/[UV8=[ Gj%5V"mJW/،5(TP]i?ߛ0`y'OdxϤ:t`Lb6mDFk&3/?U%JHuW'z]>h@ B)t.h@BLހ-[aÆHn@N:f" "P0kz6ݷEr_? 4fSx"EؼTFd!dZhќ [n5˗8-[lի;6l?l+W&k,Y9 k7 Q?X4; VZ)H'اGnݺWXJ~{9dwM{\~[gS4j(1?߾}mقɕ@Lev_meC_pᴻ#kζm2,_9-0Abg*>~2gmN6h@cx1OQ׮]Mǎc~ ifͲ_EfÆ SOyRܹF2uXWTi)٘kyݺu;?A\Yh-]Ԯ];ϨS/ dUC 1Y(vBa)>=X!ԱQrs]?mڦxL9V? [ aND@D@D@D > [ aND@D@D@D > [ aND@D@D@D > [ aND@D@D@D >O NQ8- m'7Q~-[,;>HvIXĺ'$:XF6'>~m:k,Snݽr-/Ǐoj֬i*Wl|I?;w6o9SV-ӤI_tT^wqfܹ{IM^O=)_^^{=ڵkMƍ6mj~tg,oӡCSvm{̙3gmb`F|J OޛoUVIot'3L׮]I'd=\no{G+ѻ}α7gq}n7@G  8Caan1p o&ؿBa/?6o:BaoRϦMBW_}u={hٲehj(|su֡4pGڽ{Ry0ضm[Zj{",t#twrb„ +nbŊЉ'hg^DĻw}Gڵ+u4IDATaZ$}_5k,l +Bܣm?/ 8cC۷o5tq*VںuרQ#=QMD tÆ O?5&MksN믿C9j<@?4jTP-[\s5歷kT3#̲eʛX,7 .0H.Y\uUf3:u2hCmŊ3aAՠ &A '}O>1ᅸVH7I V)485kLR"}op< >%K5tofIܟ-j֯_xBD3(ۘ1ca &Mxui0s=SO5?l>ɉmmڴ1a+uYV?o<{?5X,"3Ϙ>}؏g̘2q̏馛LXaXk7ngEdzH6g޽СCo^KY~#Ļϰ0GcA D[~oڑ#GZW>;z=vr嬫VJ+ϧ;/1^h*U ׷SA8ھH}#g_mƎk6lh5>ywl+Hc_63&`CT9>2#F_z%|r+/]4',Y}t/[!"|c6֚DZ~#&> K֟o~?k~lODo0~W\i do4hy.\tEO@WB83zL~#mƍRxƱ: +|?AH|cGc"(* 3{e5sLVOA_ڵkg?x3'좐 zHaJ&VNj*LK~wλM}.Byŭedѻ|.ֽvѢEv[V2-cO6 ^zu QMD N R-cƌ6ڛ,|@}sԩP/XK%rxFM?pTys%؍76}1ŋQT54Eb}f ִfc>86T)Xlw B#/l{v |6dl?|B>kB|(,ATp}I,%? ~aÆٮ"ձk? x%(vSu{71.DpPgRSo83}źτ%\ # /) } \references{ Bates and Watts (1988) Nonlinear Regression Analysis and Its Applications. Wiley. \doi{10.1002/9780470316757}. Murdoch, D.J. and Chow, E.D. (1996). A graphical display of large correlation matrices. The American Statistician 50, 178-180. \doi{10.2307/2684435}. } \keyword{ package } \keyword{ dplot } ellipse/man/ellipse.arima0.Rd0000644000176200001440000000243713663503243015571 0ustar liggesusers\name{ellipse.arima0} \alias{ellipse.arima0} \title{ Outline an approximate pairwise confidence region } \description{ This function produces the ellipsoidal outline of an approximate pairwise confidence region for an ARIMA model fit. } \usage{ \method{ellipse}{arima0}(x, which = c(1, 2), level = 0.95, t = sqrt(qchisq(level, 2)), \dots) } \arguments{ \item{x}{ The first argument should be an \code{arima0} object, usually resulting from a call to \code{arima0()}. } \item{which}{ Which selects the pair of parameters to be plotted. The default is the first two. } \item{level}{ The confidence level of the region. Default 95\%. } \item{t}{ The t statistic on the boundary of the ellipse. } \item{\dots}{ Other \code{ellipse.default} parameters may also be used. }} \value{ A matrix with columns \code{x} and \code{y} to outline the confidence region. } \details{ The \code{summary} function is used to obtain the approximate covariance matrix of the fitted parameters. } \seealso{ \code{\link{ellipse}} } \examples{ data(USAccDeaths) fit <- arima0(USAccDeaths, order = c(0, 1, 1), seasonal = list(order = c(0, 1, 1))) # Plot the approximate 95\% confidence region for the first two parameters # of the model plot(ellipse(fit), type = 'l') points(fit$coef[1], fit$coef[2]) } \keyword{dplot} \keyword{ts} ellipse/DESCRIPTION0000644000176200001440000000162414456303212013420 0ustar liggesusersPackage: ellipse Version: 0.5.0 Title: Functions for Drawing Ellipses and Ellipse-Like Confidence Regions Author: Duncan Murdoch and E. D. Chow (porting to R by Jesus M. Frias Celayeta) Maintainer: Duncan Murdoch Description: Contains various routines for drawing ellipses and ellipse-like confidence regions, implementing the plots described in Murdoch and Chow (1996, ). There are also routines implementing the profile plots described in Bates and Watts (1988, ). Depends: R (>= 2.0.0),graphics,stats Suggests: MASS LazyLoad: yes License: GPL (>= 2) URL: https://github.com/dmurdoch/ellipse, https://dmurdoch.github.io/ellipse/ BugReports: https://github.com/dmurdoch/ellipse/issues NeedsCompilation: no Packaged: 2023-07-20 18:27:17 UTC; murdoch Repository: CRAN Date/Publication: 2023-07-20 19:10:02 UTC ellipse/build/0000755000176200001440000000000014456276203013017 5ustar liggesusersellipse/build/partial.rdb0000644000176200001440000000007514456276203015146 0ustar liggesusersb```b`afd`b1 H020piּb C"{7ellipse/R/0000755000176200001440000000000014456227630012121 5ustar liggesusersellipse/R/ellipse.default.R0000644000176200001440000000200714411246067015317 0ustar liggesusers"ellipse.default" <- function (x, scale = c(1, 1), centre = c(0, 0), level = 0.95, t = sqrt(qchisq(level, 2)), which = c(1, 2), npoints = 100, center = centre, ...) { if(!missing(centre) && !missing(center)){ warning("Specify centre or center, not both. The value from center will be used.") } names <- c("x", "y") if (is.matrix(x)) { xind <- which[1] yind <- which[2] r <- x[xind, yind] if (missing(scale)) { scale <- sqrt(c(x[xind, xind], x[yind, yind])) if (scale[1] > 0) r <- r/scale[1] if (scale[2] > 0) r <- r/scale[2] } if (!is.null(dimnames(x)[[1]])) names <- dimnames(x)[[1]][c(xind, yind)] } else r <- x r <- min(max(r,-1),1) # clamp to -1..1, in case of rounding errors d <- acos(r) a <- seq(0, 2 * pi, len = npoints) matrix(c(t * scale[1] * cos(a + d/2) + center[1], t * scale[2] * cos(a - d/2) + center[2]), npoints, 2, dimnames = list(NULL, names)) } ellipse/R/ellipse.arima0.R0000644000176200001440000000027213663503265015052 0ustar liggesusersellipse.arima0<- function(x, which = c(1, 2), level = 0.95, t = sqrt(qchisq(level, 2)), ...) { ellipse.default(x$var.coef[which, which], centre = x$coef[which], t = t, ...) } ellipse/R/ellipse.R0000644000176200001440000000006613663503265013703 0ustar liggesusers"ellipse" <-function (x, ...) UseMethod("ellipse") ellipse/R/ellipse.glm.R0000644000176200001440000000102013663503265014450 0ustar liggesusers"ellipse.glm" <- function (x, which = c(1, 2), level = 0.95, t, npoints = 100, dispersion, ...) { s <- summary(x) est.disp <- missing(dispersion) & !(x$family$family %in% c('poisson','binomial')) if (missing(dispersion)) dispersion <- s$dispersion if (missing(t)) t <- ifelse(est.disp,sqrt(2 * qf(level, 2, s$df[2])), sqrt(qchisq(level, 2))) ellipse.default(dispersion * s$cov.unscaled[which, which], centre = x$coefficients[which], t = t, npoints = npoints, ...) } ellipse/R/ellipse.nls.R0000644000176200001440000000045313663503265014476 0ustar liggesusers"ellipse.nls" <- function (x, which = c(1, 2), level = 0.95, t = sqrt(2 * qf(level, 2, s$df[2])), ...) { s <- summary(x) ellipse.default(s$sigma^2 * s$cov.unscaled[which, which], centre = x$m$getPars()[which], t = t, ...) } ellipse/R/ellipse.profile.glm.R0000644000176200001440000000104713663503265016120 0ustar liggesusers"ellipse.profile.glm" <- function (x, which = c(1, 2), level = 0.95, t, npoints = 100, dispersion, ...) { if (missing(dispersion)) dispersion <- ifelse(attr(x,"original.fit")$family$family %in% c('poisson','binomial'), 1, NA) if (missing(t)) t <- ifelse(is.na(dispersion),sqrt(2 * qf(level, 2, attr(x,"summary")$df[2])), sqrt(qchisq(level, 2)*dispersion/attr(x,"summary")$dispersion)) ellipse.profile(x, which = which, level = level, t = t, npoints = npoints) } ellipse/R/plotcorr.R0000644000176200001440000000563013663503265014114 0ustar liggesusers"plotcorr" <- function (corr, outline = TRUE, col = 'grey', numbers = FALSE, type = c("full","lower","upper"), diag = (type == "full"), bty = "n", axes = FALSE, xlab = "", ylab = "", asp = 1, cex.lab = par("cex.lab"), cex = 0.75*par("cex"), mar = 0.1 + c(2,2,4,2), ...) { savepar <- par(pty = "s", mar = mar) on.exit(par(savepar)) if (is.null(corr)) return(invisible()) if ((!is.matrix(corr)) || (round(min(corr, na.rm = TRUE), 6) < -1) || (round(max(corr, na.rm = TRUE), 6) > 1)) stop("Need a correlation matrix") plot.new() par(new = TRUE) rowdim <- dim(corr)[1] coldim <- dim(corr)[2] rowlabs <- dimnames(corr)[[1]] collabs <- dimnames(corr)[[2]] if (is.null(rowlabs)) rowlabs <- 1:rowdim if (is.null(collabs)) collabs <- 1:coldim rowlabs <- as.character(rowlabs) collabs <- as.character(collabs) col <- rep(col, length = length(corr)) dim(col) <- dim(corr) type <- match.arg(type) cols <- 1:coldim rows <- 1:rowdim xshift <- 0 yshift <- 0 if (!diag) { if (type == "upper") { cols <- 2:coldim rows <- 1:(rowdim - 1) xshift <- 1 } else if (type == "lower") { cols <- 1:(coldim-1) rows <- 2:rowdim yshift <- -1 } } maxdim <- max(length(rows), length(cols)) plt <- par('plt') xlabwidth <- max(strwidth(rowlabs[rows],units='figure',cex=cex.lab))/(plt[2]-plt[1]) xlabwidth <- xlabwidth*maxdim/(1-xlabwidth) ylabwidth <- max(strwidth(collabs[cols],units='figure',cex=cex.lab))/(plt[4]-plt[3]) ylabwidth <- ylabwidth*maxdim/(1-ylabwidth) plot(c(-xlabwidth-0.5, maxdim + 0.5), c(0.5, maxdim + 1 + ylabwidth), type = "n", bty = bty, axes = axes, xlab = "", ylab = "", asp = asp, cex.lab = cex.lab, ...) text(rep(0, length(rows)), length(rows):1, labels = rowlabs[rows], adj = 1, cex = cex.lab) text(cols-xshift, rep(length(rows) + 1, length(cols)), labels = collabs[cols], srt = 90, adj = 0, cex = cex.lab) mtext(xlab,1,0) mtext(ylab,2,0) mat <- diag(c(1, 1)) plotcorrInternal <- function() { if (i == j && !diag) return() if (!numbers) { mat[1, 2] <- corr[i, j] mat[2, 1] <- mat[1, 2] ell <- ellipse(mat, t = 0.43) ell[, 1] <- ell[, 1] + j - xshift ell[, 2] <- ell[, 2] + length(rows) + 1 - i - yshift polygon(ell, col = col[i, j]) if (outline) lines(ell) } else { text(j + 0.3 - xshift, length(rows) + 1 - i - yshift, round(10 * corr[i, j], 0), adj = 1, cex = cex) } } for (i in 1:dim(corr)[1]) { for (j in 1:dim(corr)[2]) { if (type == "full") { plotcorrInternal() } else if (type == "lower" && (i >= j)) { plotcorrInternal() } else if (type == "upper" && (i <= j)) { plotcorrInternal() } } } invisible() } ellipse/R/ellipse.profile.nls.R0000644000176200001440000000040313663503265016130 0ustar liggesusers"ellipse.profile.nls" <- function (x, which = c(1, 2), level = 0.95, t = sqrt(2 * qf(level, 2, attr(x, "summary")$df[2])), npoints = 100, ...) { ellipse.profile(x, which = which, level = level, t = t, npoints = npoints) } ellipse/R/ellipse.lm.R0000644000176200001440000000046113663503265014311 0ustar liggesusers"ellipse.lm" <- function (x, which = c(1, 2), level = 0.95, t = sqrt(2 * qf(level, 2, x$df.residual)), ...) { s <- summary(x) ellipse.default(s$sigma^2 * s$cov.unscaled[which, which], centre = x$coefficients[which], t = t, ...) } ellipse/R/ellipse.profile.R0000644000176200001440000000452613663503265015347 0ustar liggesusers"ellipse.profile" <- function (x, which = c(1, 2), level = 0.95, t = sqrt(qchisq(level, 2)), npoints = 100, ...) { aa <- x[[which[1]]][[2]][, which[1]] ar <- x[[which[1]]][[2]][, which[2]] ra <- x[[which[2]]][[2]][, which[1]] rr <- x[[which[2]]][[2]][, which[2]] atau <- x[[which[1]]][[1]] rtau <- x[[which[2]]][[1]] arange <- range(c(aa, ra)) rrange <- range(c(ar, rr)) atau <- atau/t rtau <- rtau/t getad <- function(tau1, tau2) { if (abs(tau1) > 1) tau1 <- tau1/abs(tau1) if (abs(tau2) > 1) tau2 <- tau2/abs(tau2) acos1 <- acos(tau1) acos2 <- acos(tau2) d <- abs(acos1 - acos2) a <- (acos1 + acos2)/2 if (acos1 < acos2) a <- -a c(a, d) } myapprox <- function(x, y, where) { good <- is.finite(x) & is.finite(y) x <- x[good] y <- y[good] if (length(x) > 1) { result <- approx(x[good], y[good], where)$y bad <- is.na(result) if (any(bad)) { for (i in 1:length(result)) { if (bad[i]) { if (where[i] > x[length(x)]) { x1 <- x[length(x) - 1] y1 <- y[length(x) - 1] x2 <- x[length(x)] y2 <- y[length(x)] } else if (where[i] < x[1]) { x1 <- x[1] y1 <- y[1] x2 <- x[2] y2 <- y[2] } else stop("Unexpected NA") result[i] <- y1 + (where[i] - x1)/(x2 - x1) * (y2 - y1) } } } } else result <- rep(y, length(where)) result } ad <- matrix(NA, nrow = 5, ncol = 2) ad[1, ] <- getad(1, myapprox(rr, rtau, myapprox(aa, ar, myapprox(atau, aa, 1)))) ad[2, ] <- getad(myapprox(aa, atau, myapprox(rr, ra, myapprox(rtau, rr, 1))), 1) ad[3, ] <- getad(-1, myapprox(rr, rtau, myapprox(aa, ar, myapprox(atau, aa, -1)))) ad[4, ] <- getad(myapprox(aa, atau, myapprox(rr, ra, myapprox(rtau, rr, -1))), -1) i <- order(ad[1:4, 1]) ad[1:4, ] <- ad[i, ] ad[5, 1] <- ad[1, 1] + 2 * pi ad[5, 2] <- ad[1, 2] ad <- ad[!duplicated(ad[, 1]), ] adv <- spline(ad, n = npoints, method= "periodic") avals <- adv$x dvals <- adv$y matrix(c(myapprox(atau, aa, cos(avals + dvals/2)), myapprox(rtau, rr, cos(avals - dvals/2))), length(avals), 2, dimnames = list(NULL, names(x[which]))) } ellipse/R/pairs.profile.R0000644000176200001440000001000114456265506015015 0ustar liggesuserspairs <- function(x, ...) { if (inherits(x, "profile")) .Deprecated("pairs_profile", msg = "ellipse::pairs is deprecated for profile objects. Use ellipse::pairs_profile instead.") UseMethod("pairs") } .pairs_default <- function(x, ...) graphics::pairs(x, ...) .pairs_formula <- function(formula, data = NULL, ..., subset, na.action = stats::na.pass) { # This code is copied from graphics:::pairs.formula # because the non-standard evaluation wouldn't survive # the indirect call. m <- match.call(expand.dots = FALSE) if (is.matrix(eval(m$data, parent.frame()))) m$data <- as.data.frame(data) m$... <- NULL m$na.action <- na.action m[[1L]] <- quote(stats::model.frame) mf <- eval(m, parent.frame()) graphics::pairs(mf, ...) } pairs_profile <- function (x, labels = c(names(x), "Profile tau"), panel = lines, invert = TRUE, plot.tau = TRUE, plot.trace = TRUE, plot.sketch = TRUE, plot.ellipse = FALSE, level = 0.95, ...) { stopifnot(inherits(x, "profile")) doaxis <- function(which, dolabel = TRUE) axis(which, labels = dolabel) # outer = TRUE, line = -0.5, labels = dolabel) setup <- function(x, y, ...) plot(range(x[!is.na(x)]), range(y[!is.na(y)]), type = "n", axes = FALSE, ...) if (is.character(panel)) panel <- get(panel, mode = "function") n <- length(x) if (plot.tau) n <- n + 1 oldpar <- par("oma", "mar", "cex", "tck", "mgp", "mex", "mfrow") oldcex <- par("cex") CEX <- oldcex * max(7.7/(2 * n + 3), 0.6) par(mfrow = c(n, n), mgp = c(2, 0.8, 0), oma = rep(3, 4), mar = rep(0.5, 4), tck = -0.03/n) on.exit({ par(oldpar) }) par(cex = CEX) if (length(labels) < n) labels <- paste(deparse(substitute(x)), "[,", 1:n, "]", sep = "") if (par("pty") == "s") { dif <- diff(par("fin"))/2 if (dif > 0) par(omi = c(dif * n, 0, dif * n, 0) + par("omi")) else par(omi = c(0, (-dif) * n, 0, (-dif) * n) + par("omi")) } alltau <- unlist(lapply(x, function(x) x[[1]]), use.names = FALSE) order <- if (invert) 1:n else n:1 for (i in order) { for (j in 1:n) { if (i <= length(x)) { icomp <- x[[i]] ipars <- as.matrix(icomp[[2]]) } if (j <= length(x)) { jcomp <- x[[j]] jpars <- as.matrix(jcomp[[2]]) } xx1 <- NA xx2 <- NA yy1 <- NA yy2 <- NA if (i <= length(x)) { yy1 <- ipars[, i] if (j <= length(x)) { xx1 <- ipars[, j] xx2 <- jpars[, j] yy2 <- jpars[, i] } else { xx1 <- icomp[[1]] } } else { yy1 <- jcomp[[1]] if (j <= length(x)) { xx1 <- jpars[, j] } } xx <- c(xx1, NA, xx2) yy <- c(yy1, NA, yy2) if (i <= length(x)) { if (j <= length(x)) setup(xx, yy, ...) else setup(alltau, yy, ...) } else { if (j <= length(x)) setup(xx, alltau, ...) else setup(alltau, alltau) } box() if (i == 1) doaxis(3, j%%2 == 0) if (i == n) doaxis(1, j%%2 == 1) if (j == 1) doaxis(2, i%%2 == 0) if (j == n) doaxis(4, i%%2 == 1) if (i != j) { if ((i <= length(x)) && (j <= length(x))) { if (plot.trace) panel(xx, yy, ...) if (plot.sketch) for (l in level) panel(ellipse(x, which = c(j, i), level = l), ...) if (plot.ellipse && !is.null(fit <- attr(x, "original.fit"))) for (l in level) panel(ellipse(fit, which = c(j, i), level = l), ...) } else if (plot.tau) panel(xx, yy, ...) } else { par(usr = c(0, 1, 0, 1)) text(0.5, 0.5, labels[i], cex = 1.5 * CEX) } } } invisible() } pairs.profile <- pairs_profileellipse/NEWS.md0000644000176200001440000000303214456276007013016 0ustar liggesusers## Version 0.5.0 * The `pairs()` generic and `pairs.profile()` method have both been deprecated, and replaced with the `pairs_profile()` function. ## Version 0.4.5 * `center` was ignored in `ellipse.default()`. ## Version 0.4.4 * Put source on Github. * Added a `NEWS.md` file to track changes to the package. * Added `README.Rmd`. * Added `pkgdown` site. * Added US spelling `center` to `ellipse.default()` (thanks to James Curran). ## Version 0.4.3 - At request of CRAN, fixed some references. ## Version 0.4.2 - Update maintainer email. ## Version 0.4.1 - At request of CRAN, added `pairs()` generic function to avoid clash with `MASS::pairs.profile()` - other minor cleanups. ## Version 0.3.8 - Minor fix (no more `\synopsis` tag in help) ## Version 0.3.7 - Minor fix (clean up DESCRIPTION file) ## Version 0.3.6 - Bug fix: `...` was not being passed from methods to `ellipse.default()`. ## Version 0.3.5 - License clarification ## Version 0.3.4 - Update to strict test compliance ## Version 0.3.3 - Nicer colors in `plotcorr()` example (from Gregor Gorjanc) ## Version 0.3.2 - Remove deprecated `install.R` ## Version 0.3.1 - Added NAMESPACE, package overview topic - Allowed `plotcorr()` to plot just upper or lower triangle of matrix. ## Version 0.2.14 - Allowed separate colors for each ellipse in `plotcorr()` and fixed some `.Rd` errors. ## Version 0.2.12 - Bug fix for missing values in `plotcorr()`, doc error ## Version 0.0.1 - First CRAN release ellipse/MD50000644000176200001440000000301014456303212012211 0ustar liggesusers2393b07c5b3d4f084aee653e22bd61e1 *DESCRIPTION c36867f0ca9e93bbe4cb76e43d071e5b *NAMESPACE 410b363885c52f4b1ab38185511cabd1 *NEWS.md 73fea51373da9bbc4ff85c413745b526 *R/ellipse.R 4be8275a614fcb4065c37b8762941247 *R/ellipse.arima0.R fa50df8672315eda7e472a308039914d *R/ellipse.default.R 3c552169931b0006165ac5b1ae888eb3 *R/ellipse.glm.R f3a81546119e55c3f45191add9fea049 *R/ellipse.lm.R 84a3d7dd1aa99c82424453da914feaaa *R/ellipse.nls.R 1f6cc6a9602728096e1a5c17db75a3d1 *R/ellipse.profile.R 179ff82c9db9ac24d7c28250d7dbd4ac *R/ellipse.profile.glm.R e9db7c17f6821149220b411bfd6441a6 *R/ellipse.profile.nls.R 7e7874f0597fde230d8112ce1262e282 *R/pairs.profile.R f410502cb27f5f2cfaee61bcf133abe3 *R/plotcorr.R ba3be347e3ed8272ffa6fd5e39a4de87 *README.md 7080893e02c49cd296d4424b9be55069 *build/partial.rdb 9d18b036d7fe5945f3878be9871c0c05 *man/ellipse-package.Rd 9409a7bef609ccc13a41970539583435 *man/ellipse.Rd 2a7bc110f3041d43ddd9ae601bf81912 *man/ellipse.arima0.Rd 13796f5667a8b5b3c3eda8778ec508b1 *man/ellipse.glm.Rd 8de4342bb0e4fd05f84cd2f244d3a58a *man/ellipse.lm.Rd a44b6aebadb5c6335f6e711b23152475 *man/ellipse.nls.Rd 144c1f7486400314ca265a1c98278628 *man/ellipse.profile.Rd 15b9baaa7097e4c553b36d4039c808ea *man/ellipse.profile.glm.Rd 9648870599fe1802b3c344d74825dffa *man/ellipse.profile.nls.Rd a748689269d7422ec285351a622f049b *man/figures/README-pairs.profile-1.png 0349c605fbc4848a60234ab396386459 *man/figures/README-plotcorr-1.png 569f000c9673298db43faa2a95578db9 *man/pairs.profile.Rd 1e4a078912e531deddde4170a259cc48 *man/plotcorr.Rd