nFactors/0000755000175100001440000000000013532443753012060 5ustar hornikusersnFactors/NAMESPACE0000644000175100001440000000171511264613762013302 0ustar hornikusers importFrom(graphics, boxplot) export("bentlerParameters", "componentAxis", "corFA", "diagReplace", "eigenBootParallel", "eigenComputes", "eigenFrom", "generateStructure", "is.nFactors", "is.nScree", "is.structureSim", "iterativePrincipalAxis", "makeCor", "moreStats", "nBartlett", "nBentler", "nCng", "nMreg", "nScree", "nSeScree", "parallel", "plotnScree", "plotParallel", "plotuScree", "principalAxis", "principalComponents", "rRecovery", "structureSim", "studySim") S3method("print", "nFactors") S3method("summary", "nFactors") S3method("plot", "nScree") S3method("print", "nScree") S3method("summary", "nScree") S3method("boxplot", "structureSim") S3method("plot", "structureSim") S3method("print", "structureSim") S3method("summary", "structureSim") nFactors/data/0000755000175100001440000000000011673405056012767 5ustar hornikusersnFactors/data/dFactors.rda0000644000175100001440000000201413532440511015210 0ustar hornikusersVkHTAnfQ ř,"{MMv{҃D?*Qʊ("Bzx,+Q沚Xkji;3gnm̜}gssS)fIRHA2h/dµ9:ONslo\jv$ԧ!1׍ #_+@שּV@ǖA ^R)37Bta7 &~>oP7mGJn{z{*<^Pt4aQU/k $>9Vb bAm_ muf)i ՟D~xbxg垟?9 t,xв3PKݻrTOP< Ͽylr-:_䌿ϠBb@<ۋZ>ԣ]8!"]UzGuUkO$ դj4t`ܛ9x* %;gWs=+u-gMXύRpW7ˁ=51ՃN"(WoRg'z2#"/)ɥh> *nꥰ:t6ޚBK1.^ bZd=Z'1p=BG@/Ǽ@K7-z!^rE|zh/'^chІalk nEO͎9 uxҷӭPEs5TMKȫvף^JƼ4|`%:_ x`]j&SDZq0qD!X;ԉ?cjCD}`h7et >o輬Me!$'1`}13߹ ,A/ѯ i-6k?𻕘oȷ߫?JZy~;zoxG/EȿBtϼESي͑JYrF<s3,hdU$&le̴ EYLۨx]IS nFactors/man/0000755000175100001440000000000011673405052012625 5ustar hornikusersnFactors/man/eigenBootParallel.rd0000644000175100001440000000646411357206032016552 0ustar hornikusers\name{eigenBootParallel} \alias{eigenBootParallel} \title{ Bootstrapping of the Eigenvalues From a Data Frame} \description{ The \code{eigenBootParallel} function samples observations from a \code{data.frame} to produce correlation or covariance matrices from which eigenvalues are computed. The function returns statistics about these bootstrapped eigenvalues. Their means or their quantile could be used later to replace the eigenvalues inputted to a parallel analysis. The \code{eigenBootParallel} can also compute random eigenvalues from empirical data by column permutation (Buja and Eyuboglu, 1992). } \usage{ eigenBootParallel(x, quantile=0.95, nboot=30, option="permutation", cor=TRUE, model="components", ...) } \arguments{ \item{x}{ data.frame: data from which a correlation matrix will be obtained} \item{quantile}{ numeric: eigenvalues quantile to be reported } \item{nboot}{ numeric: number of bootstrap samples } \item{option}{ character: \code{"permutation"} or \code{"bootstrap"}} \item{cor}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix (\code{eigenComputes})} \item{model}{ character: bootstraps from a principal component analysis (\code{"components"}) or from a factor analysis (\code{"factors"}) } \item{...}{ variable: additionnal parameters to give to the \code{cor} or \code{cov} functions} } \value{ \item{values}{ data.frame: mean, median, quantile, standard deviation, minimum and maximum of bootstrapped eigenvalues } } \seealso{ \code{\link{principalComponents}}, \code{\link{iterativePrincipalAxis}}, \code{\link{rRecovery}} } \references{ Buja, A. and Eyuboglu, N. (1992). Remarks on parallel analysis. \emph{Multivariate Behavioral Research, 27}(4), 509-540. Zwick, W. R. and Velicer, W. F. (1986). Comparison of five rules for determining the number of components to retain. \emph{Psychological bulletin, 99}, 432-442. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Example from the iris data eigenvalues <- eigenComputes(x=iris[,-5]) # Permutation parallel analysis distribution aparallel <- eigenBootParallel(x=iris[,-5], quantile=0.95)$quantile # Number of components to retain results <- nScree(x = eigenvalues, aparallel = aparallel) results$Components plotnScree(results) # ...................................................... # ...................................................... # Bootstrap distributions study of the eigenvalues from iris data # with different correlation methods eigenBootParallel(x=iris[,-5],quantile=0.05, option="bootstrap",method="pearson") eigenBootParallel(x=iris[,-5],quantile=0.05, option="bootstrap",method="spearman") eigenBootParallel(x=iris[,-5],quantile=0.05, option="bootstrap",method="kendall") } \keyword{ multivariate } nFactors/man/nFactorsObjectMethods.rd0000644000175100001440000000532711357605572017425 0ustar hornikusers\name{nFactorsObjectMethods} \alias{is.nFactors} \alias{print.nFactors} \alias{summary.nFactors} \title{ Utility Functions for nFactors Class Objects} \description{ Utility functions for \code{nFactors} class objects. } \usage{ \method{is}{nFactors} (object) \method{print}{nFactors} (x, ...) \method{summary}{nFactors}(object, ...) } \arguments{ \item{x}{ nFactors: an object of the class nFactors} \item{object}{ nFactors: an object of the class nFactors} \item{...}{ variable: additionnal parameters to give to the \code{print} function with \code{print.nFactors} or to the \code{summary} function with \code{summary.nFactors}} } \value{ Generic functions for the nFactors class: \item{is.nFactors}{ logical: is the object of the class nFactors? } \item{print.nFactors }{ numeric: vector of the number of components/factors to retain: same as the \code{nFactors} vector from the \code{nFactors} object} \item{summary.nFactors }{ data.frame: details of the results from a nFactors object: same as the \code{details} data.frame from the \code{nFactors} object, but with easier control of the number of decimals with the \code{digits} parameter} } \seealso{ \code{\link{nBentler}}, \code{\link{nBartlett}}, \code{\link{nCng}}, \code{\link{nMreg}}, \code{\link{nSeScree}} } \references{ Raiche, G., Riopel, M. and Blais, J.-G. (2006). \emph{Non graphical solutions for the Cattell's scree test}. Paper presented at the International Annual meeting of the Psychometric Society, Montreal. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ ## SIMPLE EXAMPLE data(dFactors) eig <- dFactors$Raiche$eigenvalues N <- dFactors$Raiche$nsubjects res <- nBartlett(eig,N); res; is.nFactors(res); summary(res, digits=2) res <- nBentler(eig,N); res; is.nFactors(res); summary(res, digits=2) res <- nCng(eig); res; is.nFactors(res); summary(res, digits=2) res <- nMreg(eig); res; is.nFactors(res); summary(res, digits=2) res <- nSeScree(eig); res; is.nFactors(res); summary(res, digits=2) ## SIMILAR RESULTS, BUT NOT A nFactors OBJECT res <- nScree(eig); res; is.nFactors(res); summary(res, digits=2) } \keyword{ multivariate } nFactors/man/dFactors.Rd0000644000175100001440000000766311357205272014676 0ustar hornikusers\name{dFactors} \alias{dFactors} \docType{data} \title{ Eigenvalues Vectors From the Litterature } \description{ Classical examples of eigenvalues vectors used to study the number of factors to retain in the litterature. These examples generally give the number of subjects use to obtain these eigenvalues. The number of subjects is used with the parallel analysis. } \usage{data(dFactors)} \format{ A list of examples. For each example, a list is also used to give the eigenvalues vector and the number of subjects. } \details{ Other datasets will be added in future versions of the package. } \source{ Lawley and Hand dataset: Bartholomew \emph{et al}. (2002, p. 123, 126) Bentler dataset: Bentler and Yuan (1998, p. 139-140) Buja datasets: Buja and Eyuboglu (1992, p. 516, 519) < Number of subjects not specified by Buja and Eyuboglu > Cliff datasets: Cliff (1970, p. 165) Raiche dataset: Raiche, Langevin, Riopel and Mauffette (2006) Raiche dataset: Raiche, Riopel and Blais (2006, p. 9) Tucker datasets: Tucker \emph{et al}. (1969, p. 442) } \references{ Bartholomew, D. J., Steele, F., Moustaki, I. and Galbraith, J. I. (2002). \emph{The analysis and interpretation of multivariate data for social scientists}. Boca Raton, FL: Chapman and Hall. Bentler, P. M. and Yuan, K.-H. (1998). Tests for linear trend in the smallest eigenvalues of the correlation matrix. \emph{Psychometrika, 63}(2), 131-144. Buja, A. and Eyuboglu, N. (1992). Remarks on parallel analysis. \emph{Multivariate Behavioral Research, 27}(4), 509-540. Cliff, N. (1970). The relation between sample and population characteristic vectors. \emph{Psychometrika, 35}(2), 163-178. Hand, D. J., Daly, F., Lunn, A. D., McConway, K. J. and Ostrowski, E. (1994). \emph{A handbook of small data sets}. Boca Raton, FL: Chapman and Hall. Jaejon Song, B. A., Walls, T. A. and Raiche, G. (2008). \emph{Numerical solutions for Cattel's scree test: application to the adolescent smoking consequences questionnaire (ASCQ)}. Paper presented at the International Annual meeting of the Psychometric Society, Durham, New Hamphire. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] Lawley, D. N. and Maxwell, A. E. (1971). \emph{Factor analysis as a statistical method} (2nd edition). London: Butterworth. Raiche, G., Langevin, L., Riopel, M. and Mauffette, Y. (2006). Etude exploratoire de la dimensionnalite et des facteurs expliques par une traduction francaise de l'Inventaire des approches d'enseignement de Trigwell et Prosser dans trois universite quebecoises. \emph{Mesure et Evaluation en Education, 29}(2), 41-61. Raiche, G., Riopel, M. and Blais, J.-G. (2006). \emph{Non graphical solutions for the Cattell's scree test}. Paper presented at the International Annual meeting of the Psychometric Society, Montreal. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] Tucker, L. D., Koopman, R. F. and Linn, R. L. (1969). Evaluation of factor analytic research procedures by mean of simulated correlation matrices. \emph{Psychometrika, 34}(4), 421-459. Zoski, K. and Jurs, S. (1993). Using multiple regression to determine the number of factors to retain in factor analysis. \emph{Multiple Linear Regression Viewpoint, 20}(1), 5-9. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # EXAMPLES FROM DATASET data(dFactors) # COMMAND TO VISUALIZE THE CONTENT AND ATTRIBUTES OF THE DATASETS names(dFactors) attributes(dFactors) dFactors$Cliff1$eigenvalues dFactors$Cliff1$nsubjects # SCREE PLOT plotuScree(dFactors$Cliff1$eigenvalues) } \keyword{datasets} nFactors/man/plotnScree.Rd0000644000175100001440000000541211357612066015240 0ustar hornikusers\name{plotnScree} \alias{plotnScree} \title{ Scree Plot According to a nScree Object Class } \description{ Plot a scree plot adding information about a non graphical \code{nScree} analysis. } \usage{ plotnScree(nScree, legend = TRUE, ylab = "Eigenvalues", xlab = "Components", main = "Non Graphical Solutions to Scree Test" ) } \arguments{ \item{nScree}{ Results of a previous \code{nScree} analysis } \item{legend}{ Logical indicator of the presence or not of a legend } \item{xlab}{ Label of the x axis (default to \code{"Component"}) } \item{ylab}{ Label of the y axis (default to \code{"Eigenvalue"}) } \item{main}{ Main title (default to \code{"Non Graphical Solutions to the Scree Test"}) } } \value{ Nothing returned. } \references{ Raiche, G., Riopel, M. and Blais, J.-G. (2006). \emph{Non graphical solutions for the Cattell's scree test}. Paper presented at the International Annual meeting of the Psychometric Society, Montreal. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotParallel}}, \code{\link{parallel}} } \examples{ ## INITIALISATION data(dFactors) # Load the nFactors dataset attach(dFactors) vect <- Raiche # Use the second example from Buja and Eyuboglu # (1992, p. 519, nsubjects not specified by them) eigenvalues <- vect$eigenvalues # Extract the observed eigenvalues nsubjects <- vect$nsubjects # Extract the number of subjects variables <- length(eigenvalues) # Compute the number of variables rep <- 100 # Number of replications for the parallel analysis cent <- 0.95 # Centile value of the parallel analysis ## PARALLEL ANALYSIS (qevpea for the centile criterion, mevpea for the mean criterion) aparallel <- parallel(var = variables, subject = nsubjects, rep = rep, cent = cent)$eigen$qevpea # The 95 centile ## NOMBER OF FACTORS RETAINED ACCORDING TO DIFFERENT RULES results <- nScree(eig = eigenvalues, aparallel = aparallel ) results ## PLOT ACCORDING TO THE nScree CLASS plotnScree(results) } \keyword{ Graphics } nFactors/man/nBartlett.rd0000644000175100001440000001274411357212414015120 0ustar hornikusers\name{nBartlett} \alias{nBartlett} \title{ Bartlett, Anderson and Lawley Procedures to Determine the Number of Components/Factors} \description{ This function computes the Bartlett, Anderson and Lawley indices for determining the number of components/factors to retain. } \usage{ nBartlett(x, N, alpha=0.05, cor=TRUE, details=TRUE, correction=TRUE, ...) } \arguments{ \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data (eigenFrom)} \item{N}{ numeric: number of subjects} \item{alpha}{ numeric: statistical significance level } \item{cor}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix} \item{details}{ logical: if \code{TRUE} also returns detains about the computation for each eigenvalue} \item{correction}{ logical: if \code{TRUE} uses a correction for the degree of freedom after the first eigenvalue} \item{...}{ variable: additionnal parameters to give to the \code{cor} or \code{cov} functions} } \details{ The hypothesis tested is: \cr \cr (1) \eqn{\qquad \qquad H_k: \lambda_{k+1} = \ldots = \lambda_p} \cr This hypothesis is verified by the application of different version of a \eqn{\chi^2} test with different values for the degrees of freedom. Each of these tests shares the compution of a \eqn{V_k} value: \cr (2) \eqn{\qquad \qquad V_k = \prod\limits_{i = k + 1}^p {\left\{ {{{\lambda _i } \over {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 q}}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$q$}}\sum\limits_{i = k + 1}^p {\lambda _i } }}} \right\}} } \eqn{p} is the number of eigenvalues, \eqn{k} the number of eigenvalues to test, and \eqn{q} the \eqn{p-k} remaining eigenvalues. \eqn{n} is equal to the sample size minus 1 (\eqn{n = N-1}). \cr The Anderson statistic is distributed as a \eqn{\chi^2} with \eqn{(q + 2)(q - 1)/2} degrees of freedom and is equal to: \cr (3) \eqn{\qquad \qquad - n\log (V_k ) \sim \chi _{(q + 2)(q - 1)/2}^2 } \cr An improvement of this statistic from Bartlett (Bentler, and Yuan, 1996, p. 300; Horn and Engstrom, 1979, equation 8) is distributed as a \eqn{\chi^2} with \eqn{(q)(q - 1)/2} degrees of freedom and is equal to: \cr (4) \eqn{\qquad \qquad - \left[ {n - k - {{2q^2 q + 2} \over {6q}}} \right]\log (V_k ) \sim \chi _{(q + 2)(q - 1)/2}^2 } \cr Finally, Anderson (1956) and James (1969) proposed another statistic. \cr (5) \eqn{\qquad \qquad - \left[ {n - k - {{2q^2 q + 2} \over {6q}} + \sum\limits_{i = 1}^k {{{\bar \lambda _q^2 } \over {\left( {\lambda _i - \bar \lambda _q } \right)^2 }}} } \right]\log (V_k ) \sim \chi _{(q + 2)(q - 1)/2}^2 } \cr Bartlett (1950, 1951) proposed a correction to the degrees of freedom of these \eqn{\chi^2} after the first significant test: \eqn{(q+2)(q - 1)/2}. \cr } \value{ \item{nFactors}{ numeric: vector of the number of factors retained by the Bartlett, Anderson and Lawley procedures. } \item{details}{ numeric: matrix of the details for each index.} } \references{ Anderson, T. W. (1963). Asymptotic theory for principal component analysis. \emph{Annals of Mathematical Statistics, 34}, 122-148. Bartlett, M. S. (1950). Tests of significance in factor analysis. \emph{British Journal of Psychology, 3}, 77-85. Bartlett, M. S. (1951). A further note on tests of significance. \emph{British Journal of Psychology, 4}, 1-2. Bentler, P. M. and Yuan, K.-H. (1996). Test of linear trend in eigenvalues of a covariance matrix with application to data analysis. \emph{British Journal of Mathematical and Statistical Psychology, 49}, 299-312. Bentler, P. M. and Yuan, K.-H. (1998). Test of linear trend in the smallest eigenvalues of the correlation matrix. \emph{Psychometrika, 63}(2), 131-144. Horn, J. L. and Engstrom, R. (1979). Cattell's scree test in relation to Bartlett's chi-square test and other observations on the number of factors problem. \emph{Multivariate Behavioral Reasearch, 14}(3), 283-300. James, A. T. (1969). Test of equality of the latent roots of the covariance matrix. \emph{In} P. K. Krishna (Eds): \emph{Multivariate analysis, volume 2}. New-York, NJ: Academic Press. Lawley, D. N. (1956). Tests of significance for the latent roots of covariance and correlation matrix. \emph{Biometrika, 43}(1/2), 128-136. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{plotParallel}} } \examples{ ## SIMPLE EXAMPLE OF A BARTLETT PROCEDURE data(dFactors) eig <- dFactors$Raiche$eigenvalues results <- nBartlett(x=eig, N= 100, alpha=0.05, details=TRUE) results plotuScree(eig, main=paste(results$nFactors[1], ", ", results$nFactors[2], " or ", results$nFactors[3], " factors retained by the LRT procedures", sep="")) } \keyword{ multivariate } nFactors/man/plotuScree.Rd0000644000175100001440000000346111357615114015246 0ustar hornikusers\name{plotuScree} \alias{plotuScree} \title{ Plot of the Usual Cattell's Scree Test } \description{ \code{uScree} plot a usual scree test of the eigenvalues of a correlation matrix. } \usage{ plotuScree(Eigenvalue, x = Eigenvalue, model = "components", ylab = "Eigenvalues", xlab = "Components", main = "Scree Plot", ... ) } \arguments{ \item{Eigenvalue}{depreciated parameter: eigenvalues to analyse (not used if x is used, recommended) } \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{main}{ character: title of the plot (default is \code{Scree Plot}) } \item{xlab}{ character: label of the x axis (default is \code{Component}) } \item{ylab}{ character: label of the y axis (default is \code{Eigenvalue}) } \item{...}{ variable: additionnal parameters to give to the \code{eigenComputes} function} } \value{ Nothing returned with this function. } \references{ Cattell, R. B. (1966). The scree test for the number of factors. \emph{Multivariate Behavioral Research, 1}, 245-276. } \seealso{ \code{\link{nScree}}, \code{\link{parallel}} } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ ## SCREE PLOT data(dFactors) attach(dFactors) eig = Cliff1$eigenvalues plotuScree(x=eig) } \keyword{ Graphics } nFactors/man/nMreg.rd0000644000175100001440000000544511357605754014246 0ustar hornikusers\name{nMreg} \alias{nMreg} \title{ Multiple Regression Procedure to Determine the Number of Components/Factors} \description{ This function computes the \eqn{\beta} indices, like their associated Student \emph{t} and probability (Zoski and Jurs, 1993, 1996, p. 445). These three values can be used as three different indices for determining the number of components/factors to retain. } \usage{ nMreg(x, cor=TRUE, model="components", details=TRUE, ...) } \arguments{ \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data (eigenFrom)} \item{cor}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{details}{ logical: if \code{TRUE} also returns details about the computation for each eigenvalue.} \item{...}{ variable: additionnal parameters to give to the \code{eigenComputes} and \code{cor} or \code{cov} functions} } \value{ \item{nFactors}{ numeric: number of components/factors retained by the \emph{MREG} procedures. } \item{details}{ numeric: matrix of the details for each indices.} } \details{ When the associated Student \emph{t} test is applied, the following hypothesis is considered: \cr (1) \eqn{\qquad \qquad H_k: \beta (\lambda_1 \ldots \lambda_k) - \beta (\lambda_{k+1} \ldots \lambda_p), (k = 3, \ldots, p-3) = 0} \cr } \references{ Zoski, K. and Jurs, S. (1993). Using multiple regression to determine the number of factors to retain in factor analysis. \emph{Multiple Linear Regression Viewpoints, 20}(1), 5-9. Zoski, K. and Jurs, S. (1996). An objective counterpart to the visual scree test for factor analysis: the standard error scree test. \emph{Educational and Psychological Measurement, 56}(3), 443-451. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{plotParallel}} } \examples{ ## SIMPLE EXAMPLE OF A MREG ANALYSIS data(dFactors) eig <- dFactors$Raiche$eigenvalues results <- nMreg(eig) results plotuScree(eig, main=paste(results$nFactors[1], ", ", results$nFactors[2], " or ", results$nFactors[3], " factors retained by the MREG procedures", sep="")) } \keyword{ multivariate } nFactors/man/makeCor.rd0000644000175100001440000000276511357615324014553 0ustar hornikusers\name{makeCor} \alias{makeCor} \title{ Create a Full Correlation/Covariance Matrix from a Matrix With Lower Part Filled and Upper Part With Zeros} \description{ This function creates a full correlation/covariance matrix from a matrix with lower part filled and upper part with zeros. } \usage{ makeCor(x) } \arguments{ \item{x}{ numeric: matrix.} } \value{ \item{values}{ numeric: full correlation matrix. } } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{plotParallel}} } \examples{ ## LOWER CORRELATION MATRIX WITH ZEROS ON UPPER PART ## From Gorsuch (table 1.3.1) gorsuch <- c( 1,0,0,0,0,0,0,0,0,0, .6283, 1,0,0,0,0,0,0,0,0, .5631, .7353, 1,0,0,0,0,0,0,0, .8689, .7055, .8444, 1,0,0,0,0,0,0, .9030, .8626, .6890, .8874, 1,0,0,0,0,0, .6908, .9028, .9155, .8841, .8816, 1,0,0,0,0, .8633, .7495, .7378, .9164, .9109, .8572, 1,0,0,0, .7694, .7902, .7872, .8857, .8835, .8884, .7872, 1,0,0, .8945, .7929, .7656, .9494, .9546, .8942, .9434, .9000, 1,0, .5615, .6850, .8153, .7004, .6583, .7720, .6201, .6141, .6378, 1) ## UPPER CORRELATION MATRIX FILLED WITH UPPER CORRELATION MATRIX gorsuch <- makeCor(gorsuch) gorsuch } \keyword{ manip } nFactors/man/nFactors-parameters.rd0000644000175100001440000004065211360063336017101 0ustar hornikusers\name{nFactors-parameters} \alias{nFactors-parameters} \alias{nFactors-parameters} \docType{package} \title{ Argument and Value Parameters Common to the Different Functions Available in Package nFactors} \description{ This help file describes the argument and value parameters used in the different functions available in package \pkg{nFactors}. \cr \emph{Arguments}: \enumerate{ \item{\emph{adequacy}:}{ logical: if \code{TRUE} prints the recovered population matrix from the factor structure (\code{structureSim})} \item{\emph{all}:}{ logical: if \code{TRUE} computes he Bentler and Yuan index (very long computing time to consider) (\code{structureSim, studySim})} \item{\emph{alpha}:}{ numeric: statistical significance level (\code{nBartlett, nBentler})} \item{\emph{aparallel}:}{ numeric: results of a parallel analysis (\code{nScree}) } \item{\emph{cent}:}{ depreciated numeric (use quantile instead): quantile of the distribution (\code{moreStats, parallel})} \item{\emph{communalities}:}{ character: initial values for communalities (\code{"component"}, \code{"ginv"}, \code{"maxr"}, or \code{"multiple"}) (\code{iterativePrincipalAxis, principalAxis})} \item{\emph{cor}:}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix (\code{eigenComputes, nBartlett, nBentler, nCng, nMreg, nScree, nSeScree})} \item{\emph{correction}:}{ logical: if \code{TRUE} uses a correction for the degree of freedom after the first eigenvalue (\code{nBartlett})} \item{\emph{criteria}:}{ numeric: by default fixed at \eqn{\hat{\lambda}}. When the \eqn{\lambda}s are computed from a principal components analysis on a correlation matrix, it corresponds to the usual Kaiser \eqn{\lambda >= 1} rule. On a covariance matrix or from a factor analysis, it is simply the mean. To apply the \eqn{\lambda >= 0} sometimes used with factor analysis, fixed the criteria to \eqn{0} (\code{nScree})} \item{\emph{details}:}{ logical: if \code{TRUE} also returns details about the computation for each eigenvalues (\code{nBartlett, nBentler, nCng, nMreg, structureSim})} \item{\emph{diagCommunalities}:}{ logical: if \code{TRUE}, the correlation between the initial solution and the estimated one will use a correlation of one in the diagonal. If \code{FALSE} (default) the diagonal is not used in the computation of this correlation or covariance matrix (\code{rRecovery})} \item{\emph{dir}:}{ character: directory where to save output (\code{studySim})} \item{\emph{eig}:}{ depreciated parameter (use x instead): eigenvalues to analyse (\code{nScree, plotParallel})} \item{\emph{Eigenvalue}:}{ depreciated parameter (use x instead): eigenvalues to analyse (\code{plotuScree})} \item{\emph{fload}:}{ matrix: loadings of the factor structure (\code{structureSim})} \item{\emph{graphic}:}{ logical: specific plot (\code{bentlerParameters, structureSim})} \item{\emph{index}:}{ numeric: vector of the index of the selected indices (\code{plot.structureSim, print.structureSim, summary.structureSim}} \item{\emph{iterations}:}{ numeric: maximum number of iterations to obtain a solution (\code{iterativePrincipalAxis})} \item{\emph{legend}:}{ logical indicator of the presence of a legend (\code{plotnScree, plotParallel}) } \item{\emph{loadings}:}{ numeric: loadings from a factor analysis solution (\code{rRecovery, generateStructure, studySim})} \item{\emph{log}:}{ logical: if \code{TRUE} does the minimization on the log values (\code{bentlerParameters, nBentler})} \item{\emph{main}:}{ character: main title (\code{plotnScree, plotParallel, plotuScree, boxplot.structureSim, plot.structureSim}) } \item{\emph{maxPar}:}{ numeric: maximums for the coefficient of the linear trend (\code{bentlerParameters, nBentler})} \item{\emph{minPar}:}{ numeric: minimums for the coefficient of the linear trend (\code{bentlerParameters, nBentler})} \item{\emph{method}:}{ character: actually only \code{"giv"} is supplied to compute the approximation of the communalities by maximum correlation (\code{corFA, nCng, nMreg, nScree, nSeScree})} \item{\emph{mjc}:}{ numeric: number of major factors (factors with practical significance) (\code{generateStructure}) } \item{\emph{pmjc}:}{ numeric: number of variables that load significantly on each major factor (\code{generateStructure})} \item{\emph{model}:}{ character: \code{"components"} or \code{"factors"} (\code{nScree, parallel, plotParallel, plotuScree, structureSim, eigenBootParallel, eigenBootParallel, studySim})} \item{\emph{N}:}{ numeric: number of subjects (\code{nBartlett, bentlerParameters, nBentler, studySim})} \item{\emph{nboot}:}{ numeric: number of bootstrap samples (\code{eigenBootParallel}) } \item{\emph{nFactors}:}{ numeric: number of components/factors to retained (\code{componentAxis, iterativePrincipalAxis, principalAxis, bentlerParameters, boxplot.structureSim, studySim})} \item{\emph{nScree}:}{ results of a previous nScree analysis (\code{plotnScree})} \item{\emph{option}:}{ character: \code{"permutation"} or \code{"bootstrap"} (\code{eigenBootParallel})} \item{\emph{object}:}{ nScree: an object of the class nScree \code{is.nScree, summary.nScree} } \item{\emph{object}:}{ structureSim: an object of the class structureSim (\code{is.structureSim, summary.structureSim})} \item{\emph{parallel}:}{ numeric: vector of the result of a previous parallel analysis (\code{plotParallel})} \item{\emph{pmjc}:}{ numeric: number of major loadings on each factor factors (\code{generateStructure, studySim}) } \item{\emph{quantile}:}{ numeric: quantile that will be reported (\code{parallel, moreStats, eigenBootParallel, structureSim, studySim}) } \item{\emph{R}:}{ numeric: correlation or covariance matrix (\code{componentAxis, iterativePrincipalAxis, principalAxis, principalComponents, rRecovery, corFA})} \item{\emph{r2limen}:}{ numeric: R2 limen value for the R2 Nelson index (\code{structureSim, nSeScree, studySim})} \item{\emph{rep}:}{ numeric: number of replications of the correlation or the covariance matrix (default is 100) (\code{parallel})} \item{\emph{reppar}:}{ numeric: number of replications for the parallel analysis (\code{structureSim, studySim})} \item{\emph{repsim}:}{ numeric: number of replications of the matrix correlation simulation (\code{structureSim, studySim})} \item{\emph{resParx}:}{ numeric: restriction on the \eqn{\alpha} coefficient (x) to graph the function to minimize (\code{bentlerParameters})} \item{\emph{resolution}:}{ numeric: resolution of the 3D graph (number of points from \eqn{\alpha} and from \eqn{\beta}).} \item{\emph{resPary}:}{ numeric: restriction on the \eqn{\beta} coefficient (y) to graph the function to minimize (\code{bentlerParameters})} \item{\emph{sd}:}{ numeric: vector of standard deviations of the simulated variables (for a parallel analysis on a covariance matrix) \code{parallel})} \item{\emph{show}:}{ logical: if \code{TRUE} prints the quantile chosen (\code{moreStats}) } \item{\emph{stats}:}{ numeric: vector of the statistics to return: mean(1), median(2), sd(3), quantile(4), min(5), max(6) (\code{studySim})} \item{\emph{subject}:}{ numeric: number of subjects (default is 100) (\code{parallel})} \item{\emph{tolerance}:}{ numeric: minimal difference in the estimated communalities after a given iteration (\code{iterativePrincipalAxis})} \item{\emph{trace}:}{ logical: if \code{TRUE} gives details of the status of the simulations (\code{studySim})} \item{\emph{typePlot}:}{ character: plots the minimized function according to a 3D plot: \code{"wireframe"}, \code{"contourplot"} or \code{"levelplot"} (\code{bentlerParameters})} \item{\emph{unique}:}{ numeric: loadings on the non significant variables on each major factor (\code{generateStructure, studySim}) } \item{\emph{upper}:}{ logical: if \code{TRUE} upper diagonal is replaced with lower diagonal. If \code{FALSE}, lower diagonal is replaced with upper diagonal (\code{diagReplace})} \item{\emph{use}:}{ character: how to deal with missing values, same as the parameter from the \code{corr} function (\code{eigenBootParallel}) } \item{\emph{var}:}{ numeric: number of variables (default is 10) (\code{parallel, generateStructure, studySim}) } \item{\emph{vLine}:}{ character: color of the vertical indicator line in the eigen boxplot (\code{boxplot.structureSim})} \item{\emph{x}:}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data (\code{eigenFrom, nBartlett, nCng, nMreg})} \item{\emph{xlab}:}{ character: label of the x axis (\code{plotnScree, plotParallel, plotuScree, boxplot.structureSim})} \item{\emph{x}:}{ data.frame: data from which a correlation or covariance matrix will be obtained (\code{eigenBootParallel})} \item{\emph{x}:}{ depreciated: (\code{plotParallel})} \item{\emph{x}:}{ nScree: an object of the class nScree (\code{plot.nScree, print.nScree})} \item{\emph{x}:}{ numeric: matrix (\code{makeCor})} \item{\emph{x}:}{ numeric: matrix or data.frame (\code{moreStats})} \item{\emph{x}:}{ structureSim: an object of the class structureSim (\code{boxplot.structureSim, plot.structureSim, print.structureSim})} \item{\emph{ylab}:}{ character: label of the y axis (\code{plotnScree, plotParallel, plotuScree, boxplot.structureSim}) } } \emph{Values}: \enumerate{ \item{\emph{cor}:}{ numeric: Pearson correlation between initial and recovered estimated correlation or covariance matrix. Compution depend on the logical value of the \code{communalities} argument (\code{rRecovery}) } \item{\emph{details}:}{ numeric: matrix of the details for each index (\code{nBartlett, bentlerParameters, nCng, nMreg})} \item{\emph{difference}:}{ numeric: difference between initial and recovered estimated correlation or covariance matrix (\code{rRecovery})} \item{\emph{iterations}:}{ numeric: maximum number of iterations to obtain a solution (\code{iterativePrincipalAxis})} \item{\emph{loadings}:}{ numeric: loadings of each variable on each component or factor retained (\code{componentAxis, iterativePrincipalAxis, principalAxis, principalComponents}) } \item{\emph{nFactors}:}{ numeric: vector of the number of components or factors retained by the Bartlett, Anderson and Lawley procedures (\code{nBartlett, bentlerParameters, nCng, nMreg}) } \item{\emph{R}: }{ numeric: correlation or covariance matrix (\code{diagReplace, rRecovery})} \item{\emph{recoveredR}:}{ numeric: recovered estimated correlation or covariance matrix (\code{rRecovery}) } \item{\emph{tolerance}:}{ numeric: minimal difference in the estimated communalities after a given iteration (\code{iterativePrincipalAxis})} \item{\emph{values}:}{ numeric: data.frame of information (\code{nScree, parallel, plotnScree, plotParallel, plotuScree, structureSim})} \item{\emph{values}:}{ numeric: data.frame of statistics (\code{moreStats}) } \item{\emph{values}:}{ numeric: full matrix of correlation or covariance (\code{makeCor}) } \item{\emph{values}:}{ numeric: variance of each component or factor (\code{iterativePrincipalAxis, principalComponents}) } \item{\emph{values}:}{ data.frame: mean, median, quantile, standard deviation, minimum and maximum of bootstrapped eigenvalues (\code{eigenBootParallel})} \item{\emph{values}:}{ numeric: matrix of correlation or covariance with communalities in the diagonal (\code{corFA})} \item{\emph{values}:}{ numeric: variance of each component or factor retained (\code{componentAxis, principalAxis}) } \item{\emph{values}:}{ numeric: matrix factor structure (\code{generateStructure})} \item{\emph{varExplained}:}{ numeric: variance explained by each component or factor retained (\code{componentAxis, iterativePrincipalAxis, principalAxis, principalComponents}) } \item{\emph{varExplained}:}{ numeric: cumulative variance explained by each component or factor retained (\code{componentAxis, iterativePrincipalAxis, principalAxis, principalComponents}) } } } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} \cr \cr David Magis \cr Departement de mathematiques \cr Universite de Liege \cr \email{David.Magis@ulg.ac.be} } \references{ Raiche, G., Riopel, M. and Blais, J.-G. (2006). \emph{Non graphical solutions for the Cattell's scree test}. Paper presented at the International Annual meeting of the Psychometric Society, Montreal. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] } \seealso{ Other packages are also very useful for principal component and factor analysis. The \emph{R} psychometric view is instructive at this point. See \url{http://cran.stat.sfu.ca/web/views/Psychometrics.html} for further details. } \keyword{ package } nFactors/man/bentlerParameters.rd0000644000175100001440000001742611360062764016647 0ustar hornikusers\name{bentlerParameters} \alias{bentlerParameters} \title{ Bentler and Yuan's Computation of the LRT Index and the Linear Trend Coefficients} \description{ This function computes the Bentler and Yuan's (1996, 1998) \emph{LRT} index for the linear trend in eigenvalues of a covariance matrix. The related \eqn{\chi^2} and \emph{p}-value are also computed. This function is generally called from the \code{nBentler} function. But it could be of use for graphing the linear trend function and to study it's behavior. } \usage{ bentlerParameters(x, N, nFactors, log=TRUE, cor=TRUE, minPar=c(min(lambda) - abs(min(lambda)) + .001, 0.001), maxPar=c(max(lambda), lm(lambda~I(length(lambda):1))$coef[2]), resParx=c(0.01, 2), resPary=c(0.01, 2), graphic=TRUE, resolution=30, typePlot="wireframe", ...) } \arguments{ \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data} \item{N}{ numeric: number of subjects.} \item{nFactors}{ numeric: number of components to test.} \item{log}{ logical: if \code{TRUE} the minimization is applied on the log values.} \item{cor}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix} \item{minPar}{ numeric: minimums for the coefficient of the linear trend.} \item{maxPar}{ numeric: maximums for the coefficient of the linear trend.} \item{resParx}{ numeric: restriction on the \eqn{\alpha} coefficient (x) to graph the function to minimize.} \item{resPary}{ numeric: restriction on the \eqn{\beta} coefficient (y) to graph the function to minimize.} \item{graphic}{ logical: if \code{TRUE} plots the minimized function \code{"wireframe"}, \code{"contourplot"} or \code{"levelplot"}.} \item{resolution}{ numeric: resolution of the 3D graph (number of points from \eqn{\alpha} and from \eqn{\beta}).} \item{typePlot}{ character: plots the minimized function according to a 3D plot: \code{"wireframe"}, \code{"contourplot"} or \code{"levelplot"}.} \item{...}{ variable: additionnal parameters from the \code{"wireframe"}, \code{"contourplot"} or \code{"levelplot"} \code{lattice} functions. Also additionnal parameters for the \code{eigenFrom} function.} } \details{ The implemented Bentler and Yuan's procedure must be used with care because the minimized function is not always stable. In many cases, constraints must applied to obtain a solution. The actual implementation did, but the user can modify these constraints. The hypothesis tested (Bentler and Yuan, 1996, equation 10) is: \cr \cr (1) \eqn{\qquad \qquad H_k: \lambda_{k+i} = \alpha + \beta x_i, (i = 1, \ldots, q)} \cr The solution of the following simultaneous equations is needed to find \eqn{(\alpha, \beta) \in} \cr (2) \eqn{\qquad \qquad f(x) = \sum_{i=1}^q \frac{ [ \lambda_{k+j} - N \alpha + \beta x_j ] x_j}{(\alpha + \beta x_j)^2} = 0} \cr \cr and \eqn{\qquad \qquad g(x) = \sum_{i=1}^q \frac{ \lambda_{k+j} - N \alpha + \beta x_j x_j}{(\alpha + \beta x_j)^2} = 0} \cr The solution to this system of equations was implemented by minimizing the following equation: \cr (3) \eqn{\qquad \qquad (\alpha, \beta) \in \inf{[h(x)]} = \inf{\log{[f(x)^2 + g(x)^2}}]} \cr The likelihood ratio test \eqn{LRT} proposed by Bentler and Yuan (1996, equation 7) follows a \eqn{\chi^2} probability distribution with \eqn{q-2} degrees of freedom and is equal to: \cr (4) \eqn{\qquad \qquad LRT = N(k - p)\left\{ {\ln \left( {{n \over N}} \right) + 1} \right\} - N\sum\limits_{j = k + 1}^p {\ln \left\{ {{{\lambda _j } \over {\alpha + \beta x_j }}} \right\}} + n\sum\limits_{j = k + 1}^p {\left\{ {{{\lambda _j } \over {\alpha + \beta x_j }}} \right\}} } \cr With \eqn{p} beeing the number of eigenvalues, \eqn{k} the number of eigenvalues to test, \eqn{q} the \eqn{p-k} remaining eigenvalues, \eqn{N} the sample size, and \eqn{n = N-1}. Note that there is an error in the Bentler and Yuan equation, the variables \eqn{N} and \eqn{n} beeing inverted in the preceeding equation 4. A better strategy proposed by Bentler an Yuan (1998) is to use a minimized \eqn{\chi^2} solution. This strategy will be implemented in a future version of the \pkg{nFactors} package. } \value{ \item{nFactors}{ numeric: vector of the number of factors retained by the Bentler and Yuan's procedure. } \item{details}{ numeric: matrix of the details of the computation.} } \references{ Bentler, P. M. and Yuan, K.-H. (1996). Test of linear trend in eigenvalues of a covariance matrix with application to data analysis. \emph{British Journal of Mathematical and Statistical Psychology, 49}, 299-312. Bentler, P. M. and Yuan, K.-H. (1998). Test of linear trend in the smallest eigenvalues of the correlation matrix. \emph{Psychometrika, 63}(2), 131-144. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} \cr \cr David Magis \cr Departement de mathematiques \cr Universite de Liege \cr \email{David.Magis@ulg.ac.be} } \seealso{ \code{\link{nBartlett}}, \code{\link{nBentler}} } \examples{ ## ................................................ ## SIMPLE EXAMPLE OF THE BENTLER AND YUAN PROCEDURE # Bentler (1996, p. 309) Table 2 - Example 2 ............. n=649 bentler2<-c(5.785, 3.088, 1.505, 0.582, 0.424, 0.386, 0.360, 0.337, 0.303, 0.281, 0.246, 0.238, 0.200, 0.160, 0.130) results <- nBentler(x=bentler2, N=n, details=TRUE) results # Two different figures to verify the convergence problem identified with # the 2th component bentlerParameters(x=bentler2, N=n, nFactors= 2, graphic=TRUE, typePlot="contourplot", resParx=c(0,9), resPary=c(0,9), cor=FALSE) bentlerParameters(x=bentler2, N=n, nFactors= 4, graphic=TRUE, drape=TRUE, resParx=c(0,9), resPary=c(0,9), scales = list(arrows = FALSE) ) plotuScree(x=bentler2, model="components", main=paste(results$nFactors, " factors retained by the Bentler and Yuan's procedure (1996, p. 309)", sep="")) # ........................................................ # Bentler (1998, p. 140) Table 3 - Example 1 ............. n <- 145 example1 <- c(8.135, 2.096, 1.693, 1.502, 1.025, 0.943, 0.901, 0.816, 0.790,0.707, 0.639, 0.543,0.533, 0.509, 0.478, 0.390, 0.382, 0.340, 0.334, 0.316, 0.297,0.268, 0.190, 0.173) results <- nBentler(x=example1, N=n, details=TRUE) results # Two different figures to verify the convergence problem identified with # the 10th component bentlerParameters(x=example1, N=n, nFactors= 10, graphic=TRUE, typePlot="contourplot", resParx=c(0,0.4), resPary=c(0,0.4)) bentlerParameters(x=example1, N=n, nFactors= 10, graphic=TRUE, drape=TRUE, resParx=c(0,0.4), resPary=c(0,0.4), scales = list(arrows = FALSE) ) plotuScree(x=example1, model="components", main=paste(results$nFactors, " factors retained by the Bentler and Yuan's procedure (1998, p. 140)", sep="")) # ........................................................ } \keyword{ multivariate } nFactors/man/principalAxis.rd0000644000175100001440000000663311357606710015775 0ustar hornikusers\name{principalAxis} \alias{principalAxis} \title{ Principal Axis Analysis } \description{ The \code{PrincipalAxis} function returns a principal axis analysis without iterated communalities estimates. Three different choices of communalities estimates are given: maximum corelation, multiple correlation or estimates based on the sum of the squared principal component analysis loadings. Generally statistical packages initialize the the communalities at the multiple correlation value (usual inverse or generalized inverse). Unfortunately, this strategy cannot deal with singular correlation or covariance matrices. If a generalized inverse, the maximum correlation or the estimated communalities based on the sum of loading are used instead, then a solution can be computed. } \usage{ principalAxis(R, nFactors=2, communalities="component") } \arguments{ \item{R}{ numeric: correlation or covariance matrix} \item{nFactors}{ numeric: number of factors to retain} \item{communalities}{ character: initial values for communalities (\code{"component", "maxr", "ginv" or "multiple"})} } \value{ \item{values}{ numeric: variance of each component/factor } \item{varExplained}{ numeric: variance explained by each component/factor } \item{varExplained}{ numeric: cumulative variance explained by each component/factor } \item{loadings}{ numeric: loadings of each variable on each component/factor } } \references{ Kim, J.-O. and Mueller, C. W. (1978). \emph{Introduction to factor analysis. What it is and how to do it}. Beverly Hills, CA: Sage. Kim, J.-O. and Mueller, C. W. (1987). \emph{Factor analysis. Statistical methods and practical issues}. Beverly Hills, CA: Sage. } \seealso{ \code{\link{componentAxis}}, \code{\link{iterativePrincipalAxis}}, \code{\link{rRecovery}} } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Example from Kim and Mueller (1978, p. 10) # Population: upper diagonal # Simulated sample: lower diagnonal R <- matrix(c( 1.000, .6008, .4984, .1920, .1959, .3466, .5600, 1.000, .4749, .2196, .1912, .2979, .4800, .4200, 1.000, .2079, .2010, .2445, .2240, .1960, .1680, 1.000, .4334, .3197, .1920, .1680, .1440, .4200, 1.000, .4207, .1600, .1400, .1200, .3500, .3000, 1.000), nrow=6, byrow=TRUE) # Factor analysis: Principal axis factoring # without iterated communalities - # Kim and Mueller (1978, p. 21) # Replace upper diagonal with lower diagonal RU <- diagReplace(R, upper=TRUE) principalAxis(RU, nFactors=2, communalities="component") principalAxis(RU, nFactors=2, communalities="maxr") principalAxis(RU, nFactors=2, communalities="multiple") # Replace lower diagonal with upper diagonal RL <- diagReplace(R, upper=FALSE) principalAxis(RL, nFactors=2, communalities="component") principalAxis(RL, nFactors=2, communalities="maxr") principalAxis(RL, nFactors=2, communalities="multiple") # ....................................................... } \keyword{ multivariate } nFactors/man/eigenComputes.rd0000644000175100001440000000411311356725166015773 0ustar hornikusers\name{eigenComputes} \alias{eigenComputes} \title{ Computes Eigenvalues According to the Data Type } \description{ The \code{eigenComputes} function computes eigenvalues from the identified data type. It is used internally in many fonctions of the \pkg{nFactors} package in order to apply these to a vector of eigenvalues, a matrix of correlations or covariance or a data frame. } \usage{ eigenComputes(x, cor=TRUE, model="components", ...) } \arguments{ \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data} \item{cor}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{...}{ variable: additionnal parameters to give to the \code{cor} or \code{cov} functions} } \value{ \item{value}{ numeric: return a vector of eigenvalues } } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Different data types # Vector of eigenvalues data(dFactors) x1 <- dFactors$Cliff1$eigenvalues eigenComputes(x1) # Data from a data.frame x2 <- data.frame(matrix(20*rnorm(100), ncol=5)) eigenComputes(x2, cor=TRUE, use="everything") eigenComputes(x2, cor=FALSE, use="everything") eigenComputes(x2, cor=TRUE, use="everything", method="spearman") eigenComputes(x2, cor=TRUE, use="everything", method="kendall") # From a covariance matrix x3 <- cov(x2) eigenComputes(x3, cor=TRUE, use="everything") eigenComputes(x3, cor=FALSE, use="everything") # From a correlation matrix x4 <- cor(x2) eigenComputes(x4, use="everything") # ....................................................... } \keyword{ multivariate } nFactors/man/iterativePrincipalAxis.rd0000644000175100001440000001021711357207154017642 0ustar hornikusers\name{iterativePrincipalAxis} \alias{iterativePrincipalAxis} \title{ Iterative Principal Axis Analysis } \description{ The \code{iterativePrincipalAxis} function returns a principal axis analysis with iterated communality estimates. Four different choices of initial communality estimates are given: maximum correlation, multiple correlation (usual and generalized inverse) or estimates based on the sum of the squared principal component analysis loadings. Generally, statistical packages initialize the communalities at the multiple correlation value. Unfortunately, this strategy cannot always deal with singular correlation or covariance matrices. If a generalized inverse, the maximum correlation or the estimated communalities based on the sum of loadings are used instead, then a solution can be computed. } \usage{ iterativePrincipalAxis(R, nFactors=2, communalities="component", iterations=20, tolerance=0.001) } \arguments{ \item{R}{ numeric: correlation or covariance matrix} \item{nFactors}{ numeric: number of factors to retain} \item{communalities}{ character: initial values for communalities (\code{"component", "maxr", "ginv" or "multiple"})} \item{iterations}{ numeric: maximum number of iterations to obtain a solution} \item{tolerance}{ numeric: minimal difference in the estimated communalities after a given iteration} } \value{ \item{values}{ numeric: variance of each component } \item{varExplained}{ numeric: variance explained by each component } \item{varExplained}{ numeric: cumulative variance explained by each component } \item{loadings}{ numeric: loadings of each variable on each component } \item{iterations}{ numeric: maximum number of iterations to obtain a solution} \item{tolerance}{ numeric: minimal difference in the estimated communalities after a given iteration} } \references{ Kim, J.-O. and Mueller, C. W. (1978). \emph{Introduction to factor analysis. What it is and how to do it}. Beverly Hills, CA: Sage. Kim, J.-O. and Mueller, C. W. (1987). \emph{Factor analysis. Statistical methods and practical issues}. Beverly Hills, CA: Sage. } \seealso{ \code{\link{componentAxis}}, \code{\link{principalAxis}}, \code{\link{rRecovery}} } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Example from Kim and Mueller (1978, p. 10) # Population: upper diagonal # Simulated sample: lower diagnonal R <- matrix(c( 1.000, .6008, .4984, .1920, .1959, .3466, .5600, 1.000, .4749, .2196, .1912, .2979, .4800, .4200, 1.000, .2079, .2010, .2445, .2240, .1960, .1680, 1.000, .4334, .3197, .1920, .1680, .1440, .4200, 1.000, .4207, .1600, .1400, .1200, .3500, .3000, 1.000), nrow=6, byrow=TRUE) # Factor analysis: Principal axis factoring with iterated communalities # Kim and Mueller (1978, p. 23) # Replace upper diagonal with lower diagonal RU <- diagReplace(R, upper=TRUE) nFactors <- 2 fComponent <- iterativePrincipalAxis(RU, nFactors=nFactors, communalities="component") fComponent rRecovery(RU,fComponent$loadings, diagCommunalities=FALSE) fMaxr <- iterativePrincipalAxis(RU, nFactors=nFactors, communalities="maxr") fMaxr rRecovery(RU,fMaxr$loadings, diagCommunalities=FALSE) fMultiple <- iterativePrincipalAxis(RU, nFactors=nFactors, communalities="multiple") fMultiple rRecovery(RU,fMultiple$loadings, diagCommunalities=FALSE) # ....................................................... } \keyword{ multivariate } nFactors/man/nScreeObjectMethods.rd0000644000175100001440000000704611357606342017061 0ustar hornikusers\name{nScreeObjectMethods} \alias{is.nScree} \alias{plot.nScree} \alias{print.nScree} \alias{summary.nScree} \title{ Utility Functions for nScree Class Objects} \description{ Utility functions for \code{nScree} class objects. Some of these functions are already implemented in the \code{nFactors} package, but are easier to use with generic functions like these. } \usage{ \method{is}{nScree} (object) \method{plot}{nScree} (x, ...) \method{print}{nScree} (x, ...) \method{summary}{nScree}(object, ...) } \arguments{ \item{x}{ nScree: an object of the class \code{nScree}} \item{object}{ nScree: an object of the class \code{nScree}} \item{...}{ variable: additionnal parameters to give to the \code{print} function with \code{print.nScree}, the \code{plotnScree} with \code{plot.nScree} or to the \code{summary} function with \code{summary.nScree}} } \value{ Generic functions for the nScree class: \item{is.nScree}{ logical: is the object of the class \code{nScree}? } \item{plot.nScree }{ graphic: plots a figure according to the \code{plotnScree} function} \item{print.nScree }{ numeric: vector of the number of components/factors to retain: same as the \code{Components} vector from the \code{nScree} object} \item{summary.nScree }{ data.frame: details of the results from a nScree analysis: same as the \code{Analysis} data.frame from the \code{nScree} object, but with easier control of the number of decimals with the \code{digits} parameter} } \seealso{ \code{\link{plotuScree}}, \code{\link{plotnScree}}, \code{\link{parallel}}, \code{\link{plotParallel}}, } \references{ Raiche, G., Riopel, M. and Blais, J.-G. (2006). \emph{Non graphical solutions for the Cattell's scree test}. Paper presented at the International Annual meeting of the Psychometric Society, Montreal. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ ## INITIALISATION data(dFactors) # Load the nFactors dataset attach(dFactors) vect <- Raiche # Use the example from Raiche eigenvalues <- vect$eigenvalues # Extract the observed eigenvalues nsubjects <- vect$nsubjects # Extract the number of subjects variables <- length(eigenvalues) # Compute the number of variables rep <- 100 # Number of replications for the parallel analysis cent <- 0.95 # Centile value of the parallel analysis ## PARALLEL ANALYSIS (qevpea for the centile criterion, mevpea for the mean criterion) aparallel <- parallel(var = variables, subject = nsubjects, rep = rep, cent = cent )$eigen$qevpea # The 95 centile ## NOMBER OF FACTORS RETAINED ACCORDING TO DIFFERENT RULES results <- nScree(x=eigenvalues, aparallel=aparallel) is.nScree(results) results summary(results) ## PLOT ACCORDING TO THE nScree CLASS plot(results) } \keyword{ multivariate } nFactors/man/nCng.rd0000644000175100001440000000613011357614274014050 0ustar hornikusers\name{nCng} \alias{nCng} \title{ Cattell-Nelson-Gorsuch CNG Indices} \description{ This function computes the \emph{CNG} indices for the eigenvalues of a correlation/covariance matrix (Gorsuch and Nelson, 1981; Nasser, 2002, p. 400; Zoski and Jurs, 1993, p. 6). } \usage{ nCng(x, cor=TRUE, model="components", details=TRUE, ...) } \arguments{ \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data } \item{cor}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{details}{ logical: if \code{TRUE} also returns detains about the computation for each eigenvalue.} \item{...}{ variable: additionnal parameters to give to the \code{eigenComputes} function} } \details{ Note that the \code{nCng} function is only valid when more than six eigenvalues are used and that these are obtained in the context of a principal component analysis. For a factor analysis, some eigenvalues could be negative and the function will stop and give an error message. The slope of all possible sets of three adjacent eigenvalues are compared, so \emph{CNG} indices can be applied only when more than six eigenvalues are used. The eigenvalue at which the greatest difference between two successive slopes occurs is the indicator of the number of components/factors to retain. } \value{ \item{nFactors}{ numeric: number of factors retained by the CNG procedure. } \item{details}{ numeric: matrix of the details for each index.} } \references{ Gorsuch, R. L. and Nelson, J. (1981). \emph{CNG scree test: an objective procedure for determining the number of factors}. Presented at the annual meeting of the Society for multivariate experimental psychology. Nasser, F. (2002). The performance of regression-based variations of the visual scree for determining the number of common factors. \emph{Educational and Psychological Measurement, 62(3)}, 397-419. Zoski, K. and Jurs, S. (1993). Using multiple regression to determine the number of factors to retain in factor analysis. \emph{Multiple Linear Regression Viewpoints, 20}(1), 5-9. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{plotParallel}} } \examples{ ## SIMPLE EXAMPLE OF A CNG ANALYSIS data(dFactors) eig <- dFactors$Raiche$eigenvalues results <- nCng(eig, details=TRUE) results plotuScree(eig, main=paste(results$nFactors, " factors retained by the CNG procedure", sep="")) } \keyword{ multivariate } nFactors/man/studySim.rd0000644000175100001440000000721411357607364015012 0ustar hornikusers\name{studySim} \alias{studySim} \title{ Simulation Study from Given Factor Structure Matrices and Conditions} \description{ The \code{structureSim} function returns statistical results from simulations from predefined congeneric factor structures. The main ideas come from the methodology applied by Zwick and Velicer (1986). } \usage{ studySim(var, nFactors, pmjc, loadings, unique, N, repsim, reppar, stats=1, quantile=0.5, model="components", r2limen=0.75, all=FALSE, dir=NA, trace=TRUE) } \arguments{ \item{var}{ numeric: vector of the number of variables} \item{nFactors}{ numeric: vector of the number of components/factors} \item{pmjc}{ numeric: vector of the number of major loadings on each component/factor} \item{loadings}{ numeric: vector of the major loadings on each component/factor} \item{unique}{ numeric: vector of the unique loadings on each component/factor} \item{N}{ numeric: vector of the number of subjects/observations} \item{repsim}{ numeric: number of replications of the matrix correlation simulation} \item{reppar}{ numeric: number of replications for the parallel and permutation analysis} \item{stats}{ numeric: vector of the statistics to return: mean(1), median(2), sd(3), quantile(4), min(5), max(6)} \item{quantile}{ numeric: quantile for the parallel and permutation analysis} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{r2limen}{ numeric: R2 limen value for the R2 Nelson index} \item{all}{ logical: if \code{TRUE} computes the Bentler and Yuan index (very long computing time to consider)} \item{dir}{ character: directory where to save output. Default to NA} \item{trace}{ logical: if \code{TRUE} outputs details of the status of the simulations} } \value{ \item{values}{ Returns selected statistics about the number of components/factors to retain: mean, median, quantile, standard deviation, minimum and maximum.} } \seealso{ \code{\link{generateStructure}}, \code{\link{structureSim}} } \references{ Zwick, W. R. and Velicer, W. F. (1986). Comparison of five rules for determining the number of components to retain. \emph{Psychological Bulletin, 99}, 432-442. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ \dontrun{ # .................................................................... # Example inspired from Zwick and Velicer (1986) # Very long computimg time # ................................................................... # 1. Initialisation # reppar <- 30 # repsim <- 5 # quantile <- 0.50 # 2. Simulations # X <- studySim(var=36,nFactors=3, pmjc=c(6,12), loadings=c(0.5,0.8), # unique=c(0,0.2), quantile=quantile, # N=c(72,180), repsim=repsim, reppar=reppar, # stats=c(1:6)) # 3. Results (first 10 results) # print(X[1:10,1:14],2) # names(X) # 4. Study of the error done in the determination of the number # of components/factors. A positive value is associated to over # determination. # results <- X[X$stats=="mean",] # residuals <- results[,c(11:25)] - X$nfactors # BY <- c("nsubjects","var","loadings") # round(aggregate(residuals, by=results[BY], mean),0) } } \keyword{ multivariate } nFactors/man/rRecovery.rd0000644000175100001440000000631111357615354015144 0ustar hornikusers\name{rRecovery} \alias{rRecovery} \title{ Test of Recovery of a Correlation or a Covariance matrix from a Factor Analysis Solution } \description{ The \code{rRecovery} function returns a verification of the quality of the recovery of the initial correlation or covariance matrix by the factor solution. } \usage{ rRecovery(R, loadings, diagCommunalities=FALSE) } \arguments{ \item{R}{ numeric: initial correlation or covariance matrix} \item{loadings}{ numeric: loadings from a factor analysis solution} \item{diagCommunalities}{ logical: if \code{TRUE}, the correlation between the initial solution and the estimated one will use a correlation of one in the diagonal. If \code{FALSE} (default) the diagonal is not used in the computation of this correlation.} } \value{ \item{R}{ numeric: initial correlation or covariance matrix } \item{recoveredR}{ numeric: recovered estimated correlation or covariance matrix } \item{difference}{ numeric: difference between initial and recovered estimated correlation or covariance matrix} \item{cor}{ numeric: Pearson correlation between initial and recovered estimated correlation or covariance matrix. Computations depend on the logical value of the \code{communalities} argument. } } \seealso{ \code{\link{componentAxis}}, \code{\link{iterativePrincipalAxis}}, \code{\link{principalAxis}} } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Example from Kim and Mueller (1978, p. 10) # Population: upper diagonal # Simulated sample: lower diagnonal R <- matrix(c( 1.000, .6008, .4984, .1920, .1959, .3466, .5600, 1.000, .4749, .2196, .1912, .2979, .4800, .4200, 1.000, .2079, .2010, .2445, .2240, .1960, .1680, 1.000, .4334, .3197, .1920, .1680, .1440, .4200, 1.000, .4207, .1600, .1400, .1200, .3500, .3000, 1.000), nrow=6, byrow=TRUE) # Replace upper diagonal with lower diagonal RU <- diagReplace(R, upper=TRUE) nFactors <- 2 loadings <- principalAxis(RU, nFactors=nFactors, communalities="component")$loadings rComponent <- rRecovery(RU,loadings, diagCommunalities=FALSE)$cor loadings <- principalAxis(RU, nFactors=nFactors, communalities="maxr")$loadings rMaxr <- rRecovery(RU,loadings, diagCommunalities=FALSE)$cor loadings <- principalAxis(RU, nFactors=nFactors, communalities="multiple")$loadings rMultiple <- rRecovery(RU,loadings, diagCommunalities=FALSE)$cor round(c(rComponent = rComponent, rmaxr = rMaxr, rMultiple = rMultiple), 3) # ....................................................... } \keyword{ utilities } nFactors/man/generateStructure.rd0000644000175100001440000001075611357206532016701 0ustar hornikusers\name{generateStructure} \alias{generateStructure} \title{ Generate a Factor Structure Matrix.} \description{ The \code{generateStructure} function returns a \emph{mjc} factor structure matrix. The number of variables per major factor \emph{pmjc} is equal for each factor. The argument \emph{pmjc} must be divisible by \emph{nVar}. The arguments are strongly inspired from Zick and Velicer (1986, p. 435-436) methodology. } \usage{ generateStructure(var, mjc, pmjc, loadings, unique) } \arguments{ \item{var}{ numeric: number of variables} \item{mjc}{ numeric: number of major factors (factors with practical significance) } \item{pmjc}{ numeric: number of variables that load significantly on each major factor } \item{loadings}{ numeric: loadings on the significant variables on each major factor } \item{unique}{ numeric: loadings on the non significant variables on each major factor } } \value{ \item{values}{ numeric matrix: factor structure } } \seealso{ \code{\link{principalComponents}}, \code{\link{iterativePrincipalAxis}}, \code{\link{rRecovery}} } \references{ Zwick, W. R. and Velicer, W. F. (1986). Comparison of five rules for determining the number of components to retain. \emph{Psychological Bulletin, 99}, 432-442. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Example inspired from Zwick and Velicer (1986, table 2, p. 437) ## ................................................................... unique=0.2; loadings=0.5 zwick1 <- generateStructure(var=36, mjc=6, pmjc= 6, loadings=loadings, unique=unique) zwick2 <- generateStructure(var=36, mjc=3, pmjc=12, loadings=loadings, unique=unique) zwick3 <- generateStructure(var=72, mjc=9, pmjc= 8, loadings=loadings, unique=unique) zwick4 <- generateStructure(var=72, mjc=6, pmjc=12, loadings=loadings, unique=unique) sat=0.8 ## ................................................................... zwick5 <- generateStructure(var=36, mjc=6, pmjc= 6, loadings=loadings, unique=unique) zwick6 <- generateStructure(var=36, mjc=3, pmjc=12, loadings=loadings, unique=unique) zwick7 <- generateStructure(var=72, mjc=9, pmjc= 8, loadings=loadings, unique=unique) zwick8 <- generateStructure(var=72, mjc=6, pmjc=12, loadings=loadings, unique=unique) ## ................................................................... # nsubjects <- c(72, 144, 180, 360) # require(psych) # Produce an usual correlation matrix from a congeneric model nsubjects <- 72 mzwick5 <- sim.structure(fx=as.matrix(zwick5), n=nsubjects) mzwick5$r # Factor analysis: recovery of the factor structure iterativePrincipalAxis(mzwick5$model, nFactors=6, communalities="ginv")$loadings iterativePrincipalAxis(mzwick5$r , nFactors=6, communalities="ginv")$loadings factanal(covmat=mzwick5$model, factors=6) factanal(covmat=mzwick5$r , factors=6) # Number of components to retain eigenvalues <- eigen(mzwick5$r)$values aparallel <- parallel(var = length(eigenvalues), subject = nsubjects, rep = 30, quantile = 0.95, model="components")$eigen$qevpea results <- nScree(x = eigenvalues, aparallel = aparallel) results$Components plotnScree(results) # Number of factors to retain eigenvalues.fa <- eigen(corFA(mzwick5$r))$values aparallel.fa <- parallel(var = length(eigenvalues.fa), subject = nsubjects, rep = 30, quantile = 0.95, model="factors")$eigen$qevpea results.fa <- nScree(x = eigenvalues.fa, aparallel = aparallel.fa, model ="factors") results.fa$Components plotnScree(results.fa) # ...................................................... } \keyword{ multivariate } nFactors/man/principalComponents.rd0000644000175100001440000000511511357614702017210 0ustar hornikusers\name{principalComponents} \alias{principalComponents} \title{ Principal Component Analysis } \description{ The \code{principalComponents} function returns a principal component analysis. Other R functions give the same results, but \code{principalComponents} is customized mainly for the other factor analysis functions available in the \pkg{nfactors} package. In order to retain only a small number of components the \code{componentAxis} function has to be used. } \usage{ principalComponents(R) } \arguments{ \item{R}{ numeric: correlation or covariance matrix} } \value{ \item{values}{ numeric: variance of each component } \item{varExplained}{ numeric: variance explained by each component } \item{varExplained}{ numeric: cumulative variance explained by each component } \item{loadings}{ numeric: loadings of each variable on each component } } \references{ Joliffe, I. T. (2002). \emph{Principal components analysis} (2th Edition). New York, NJ: Springer-Verlag. Kim, J.-O. and Mueller, C. W. (1978). \emph{Introduction to factor analysis. What it is and how to do it}. Beverly Hills, CA: Sage. Kim, J.-O. and Mueller, C. W. (1987). \emph{Factor analysis. Statistical methods and practical issues}. Beverly Hills, CA: Sage. } \seealso{ \code{\link{componentAxis}}, \code{\link{iterativePrincipalAxis}}, \code{\link{rRecovery}} } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Example from Kim and Mueller (1978, p. 10) # Population: upper diagonal # Simulated sample: lower diagnonal R <- matrix(c( 1.000, .6008, .4984, .1920, .1959, .3466, .5600, 1.000, .4749, .2196, .1912, .2979, .4800, .4200, 1.000, .2079, .2010, .2445, .2240, .1960, .1680, 1.000, .4334, .3197, .1920, .1680, .1440, .4200, 1.000, .4207, .1600, .1400, .1200, .3500, .3000, 1.000), nrow=6, byrow=TRUE) # Factor analysis: Principal component - # Kim et Mueller (1978, p. 21) # Replace upper diagonal with lower diagonal RU <- diagReplace(R, upper=TRUE) principalComponents(RU) # Replace lower diagonal with upper diagonal RL <- diagReplace(R, upper=FALSE) principalComponents(RL) # ....................................................... } \keyword{ multivariate } nFactors/man/eigenFrom.rd0000644000175100001440000000366411357206336015103 0ustar hornikusers\name{eigenFrom} \alias{eigenFrom} \title{ Identify the Data Type to Obtain the Eigenvalues} \description{ The \code{eigenFrom} function identifies the data type from which to obtain the eigenvalues. The function is used internally in many functions of the \pkg{nFactors} package to be able to apply these to a vector of eigenvalues, a matrix of correlations or covariance or a \code{data.frame}. } \usage{ eigenFrom(x) } \arguments{ \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data} } \value{ \item{value}{ character: return the data type to obtain the eigenvalues: \code{"eigenvalues"}, \code{"correlation"} or \code{"data"} } } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Different data types # Examples of adequate data sources # Vector of eigenvalues data(dFactors) x1 <- dFactors$Cliff1$eigenvalues eigenFrom(x1) # Data from a data.frame x2 <- data.frame(matrix(20*rnorm(100), ncol=5)) eigenFrom(x2) # From a covariance matrix x3 <- cov(x2) eigenFrom(x3) # From a correlation matrix x4 <- cor(x2) eigenFrom(x4) # Examples of inadequate data sources: not run because of errors generated # x0 <- c(2,1) # Error: not enough eigenvalues # eigenFrom(x0) # x2 <- matrix(x1, ncol=5) # Error: non a symetric covariance matrix # eigenFrom(x2) # eigenFrom(x3[,(1:2)]) # Error: not enough variables # x6 <- table(x5) # Error: not a valid data class # eigenFrom(x6) # ....................................................... } \keyword{ multivariate } nFactors/man/plotParallel.Rd0000644000175100001440000000502411357614622015554 0ustar hornikusers\name{plotParallel} \alias{plotParallel} \title{ Plot a Parallel Analysis Class Object } \description{ Plot a scree plot adding information about a parallel analysis. } \usage{ plotParallel(parallel, eig = NA, x = eig, model = "components", legend = TRUE, ylab = "Eigenvalues", xlab = "Components", main = "Parallel Analysis", ... ) } \arguments{ \item{parallel}{ numeric: vector of the results of a previous parallel analysis } \item{eig}{ depreciated parameter: eigenvalues to analyse (not used if x is used, recommended)} \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{main}{ character: title of the plot } \item{xlab}{ character: label of the x axis } \item{ylab}{ character: label of the y axis } \item{legend}{ logical: indicator of the presence or not of a legend } \item{...}{ variable: additionnal parameters to give to the \code{cor} or \code{cov} functions} } \details{ If \code{eig} is \code{FALSE} the plot shows only the parallel analysis without eigenvalues. } \value{ Nothing returned. } \references{ Raiche, G., Riopel, M. and Blais, J.-G. (2006). \emph{Non graphical solutions for the Cattell's scree test}. Paper presented at the International Annual meeting of the Psychometric Society, Montreal. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{parallel}} } \examples{ ## SIMPLE EXAMPLE OF A PARALLEL ANALYSIS ## OF A CORRELATION MATRIX WITH ITS PLOT data(dFactors) eig <- dFactors$Raiche$eigenvalues subject <- dFactors$Raiche$nsubjects var <- length(eig) rep <- 100 cent <- 0.95 results <- parallel(subject,var,rep,cent) results ## PARALLEL ANALYSIS SCREE PLOT plotParallel(results, x=eig) plotParallel(results) } \keyword{ Graphics } nFactors/man/structureSim.rd0000644000175100001440000001004411357607142015667 0ustar hornikusers\name{structureSim} \alias{structureSim} \title{ Population or Simulated Sample Correlation Matrix from a Given Factor Structure Matrix} \description{ The \code{structureSim} function returns a population and a sample correlation matrices from a predefined congeneric factor structure. } \usage{ structureSim(fload, reppar=30, repsim=100, N, quantile=0.95, model="components", adequacy=FALSE, details=TRUE, r2limen=0.75, all=FALSE) } \arguments{ \item{fload}{ matrix: loadings of the factor structure} \item{reppar}{ numeric: number of replications for the parallel analysis} \item{repsim}{ numeric: number of replications of the matrix correlation simulation} \item{N}{ numeric: number of subjects} \item{quantile}{ numeric: quantile for the parallel analysis} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{adequacy}{ logical: if \code{TRUE} prints the recovered population matrix from the factor structure} \item{details}{ logical: if \code{TRUE} outputs details of the \code{repsim} simulations } \item{r2limen}{ numeric: R2 limen value for the R2 Nelson index } \item{all}{ logical: if \code{TRUE} computes the Bentler and Yuan index (very long computing time to consider)} } \value{ \item{values}{ the output depends of the logical value of details. If \code{FALSE}, returns only statistics about the eigenvalues: mean, median, quantile, standard deviation, minimum and maximum. If \code{TRUE}, returns also details about the \code{repsim} simulations. If \code{adequacy} = \code{TRUE} returns the recovered factor structure} } \seealso{ \code{\link{principalComponents}}, \code{\link{iterativePrincipalAxis}}, \code{\link{rRecovery}} } \references{ Zwick, W. R. and Velicer, W. F. (1986). Comparison of five rules for determining the number of components to retain. \emph{Psychological Bulletin, 99}, 432-442. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ \dontrun{ # ....................................................... # Example inspired from Zwick and Velicer (1986, table 2, p. 437) ## ................................................................... nFactors <- 3 unique <- 0.2 loadings <- 0.5 nsubjects <- 180 repsim <- 30 zwick <- generateStructure(var=36, mjc=nFactors, pmjc=12, loadings=loadings, unique=unique) ## ................................................................... # Produce statistics about a replication of a parallel analysis on # 30 sampled correlation matrices mzwick.fa <- structureSim(fload=as.matrix(zwick), reppar=30, repsim=repsim, N=nsubjects, quantile=0.5, model="factors") mzwick <- structureSim(fload=as.matrix(zwick), reppar=30, repsim=repsim, N=nsubjects, quantile=0.5, all=TRUE) # Very long execution time that could be used only with model="components" # mzwick <- structureSim(fload=as.matrix(zwick), reppar=30, # repsim=repsim, N=nsubjects, quantile=0.5, all=TRUE) par(mfrow=c(2,1)) plot(x=mzwick, nFactors=nFactors, index=c(1:14), cex.axis=0.7, col="red") plot(x=mzwick.fa, nFactors=nFactors, index=c(1:11), cex.axis=0.7, col="red") par(mfrow=c(1,1)) par(mfrow=c(2,1)) boxplot(x=mzwick, nFactors=3, cex.axis=0.8, vLine="blue", col="red") boxplot(x=mzwick.fa, nFactors=3, cex.axis=0.8, vLine="blue", col="red", xlab="Components") par(mfrow=c(1,1)) # ...................................................... } } \keyword{ multivariate } nFactors/man/parallel.Rd0000644000175100001440000001005611357606520014714 0ustar hornikusers\name{parallel} \alias{parallel} \title{ Parallel Analysis of a Correlation or Covariance Matrix} \description{ This function gives the distribution of the eigenvalues of correlation or a covariance matrices of random uncorrelated standardized normal variables. The mean and a selected quantile of this distribution are returned. } \usage{ parallel(subject = 100, var = 10, rep = 100, cent = 0.05, quantile = cent, model = "components", sd = diag(1,var), ...) } \arguments{ \item{subject}{ numeric: nmber of subjects (default is 100)} \item{var}{ numeric: number of variables (default is 10) } \item{rep}{ numeric: number of replications of the correlation matrix (default is 100)} \item{cent}{ depreciated numeric (use quantile instead): quantile of the distribution on which the decision is made (default is 0.05)} \item{quantile}{ numeric: quantile of the distribution on which the decision is made (default is 0.05)} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{sd}{ numeric: vector of standard deviations of the simulated variables (for a parallel analysis on a covariance matrix) } \item{...}{ variable: other parameters for the \code{"mvrnorm"}, \code{corr} or \code{cov} functions } } \details{ Note that if the decision is based on a quantile value rather than on the mean, care must be taken with the number of replications (\code{rep}). In fact, the smaller the quantile (\code{cent}), the bigger the number of necessary replications. } \value{ \item{eigen}{ Data frame consisting of the mean and the quantile of the eigenvalues distribution } \item{eigen$mevpea}{ Mean of the eigenvalues distribution} \item{eigen$sevpea}{ Standard deviation of the eigenvalues distribution} \item{eigen$qevpea}{ quantile of the eigenvalues distribution} \item{eigen$sqevpea}{ Standard error of the quantile of the eigenvalues distribution} \item{subject}{ Number of subjects} \item{variables}{ Number of variables} \item{centile}{ Selected quantile} Otherwise, returns a summary of the parallel analysis. } \references{ Drasgow, F. and Lissak, R. (1983) Modified parallel analysis: a procedure for examining the latent dimensionality of dichotomously scored item responses. \emph{Journal of Applied Psychology, 68}(3), 363-373. Hoyle, R. H. and Duvall, J. L. (2004). Determining the number of factors in exploratory and confirmatory factor analysis. In D. Kaplan (Ed.): \emph{The Sage handbook of quantitative methodology for the social sciences}. Thousand Oaks, CA: Sage. Horn, J. L. (1965). A rationale and test of the number of factors in factor analysis. \emph{Psychometrika, 30}, 179-185. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{plotParallel}} } \examples{ ## SIMPLE EXAMPLE OF A PARALLEL ANALYSIS ## OF A CORRELATION MATRIX WITH ITS PLOT data(dFactors) eig <- dFactors$Raiche$eigenvalues subject <- dFactors$Raiche$nsubjects var <- length(eig) rep <- 100 quantile <- 0.95 results <- parallel(subject, var, rep, quantile) results ## IF THE DECISION IS BASED ON THE CENTILE USE qevpea INSTEAD ## OF mevpea ON THE FIRST LINE OF THE FOLLOWING CALL plotuScree(x = eig, main = "Parallel Analysis" ) lines(1:var, results$eigen$qevpea, type="b", col="green" ) ## ANOTHER SOLUTION IS SIMPLY TO plotParallel(results) } \keyword{ multivariate } nFactors/man/corFA.rd0000644000175100001440000000336411357615240014155 0ustar hornikusers\name{corFA} \alias{corFA} \title{ Insert Communalities in the Diagonal of a Correlation or a Covariance Matrix} \description{ This function inserts communalities in the diagonal of a correlation/covariance matrix. } \usage{ corFA(R, method="ginv") } \arguments{ \item{R}{ numeric: correlation matrix.} \item{method}{ character: actually only \code{"giv"} is supplied to compute the approximation of the communalities by maximum correlation.} } \value{ \item{values}{ numeric: matrix of correlation/covariance with communalities in the diagonal. } } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{plotParallel}} } \examples{ ## LOWER CORRELATION MATRIX WITH ZEROS ON UPPER PART ## From Gorsuch (table 1.3.1) gorsuch <- c( 1,0,0,0,0,0,0,0,0,0, .6283, 1,0,0,0,0,0,0,0,0, .5631, .7353, 1,0,0,0,0,0,0,0, .8689, .7055, .8444, 1,0,0,0,0,0,0, .9030, .8626, .6890, .8874, 1,0,0,0,0,0, .6908, .9028, .9155, .8841, .8816, 1,0,0,0,0, .8633, .7495, .7378, .9164, .9109, .8572, 1,0,0,0, .7694, .7902, .7872, .8857, .8835, .8884, .7872, 1,0,0, .8945, .7929, .7656, .9494, .9546, .8942, .9434, .9000, 1,0, .5615, .6850, .8153, .7004, .6583, .7720, .6201, .6141, .6378, 1) ## UPPER CORRELATION MATRIX FILLED WITH UPPER CORRELATION MATRIX gorsuch <- makeCor(gorsuch) ## REPLACE DIAGONAL WITH COMMUNALITIES gorsuchCfa <- corFA(gorsuch) gorsuchCfa } \keyword{ manip } nFactors/man/componentAxis.rd0000644000175100001440000000432511360063122015776 0ustar hornikusers\name{componentAxis} \alias{componentAxis} \title{ Principal Component Analysis With Only n First Components Retained} \description{ The \code{componentAxis} function returns a principal component analysis with the first \emph{n} components retained. } \usage{ componentAxis(R, nFactors=2) } \arguments{ \item{R}{ numeric: correlation or covariance matrix} \item{nFactors}{ numeric: number of components/factors to retain} } \value{ \item{values}{ numeric: variance of each component/factor retained } \item{varExplained}{ numeric: variance explained by each component/factor retained } \item{varExplained}{ numeric: cumulative variance explained by each component/factor retained } \item{loadings}{ numeric: loadings of each variable on each component/factor retained } } \references{ Kim, J.-O. and Mueller, C. W. (1978). \emph{Introduction to factor analysis. What it is and how to do it}. Beverly Hills, CA: Sage. Kim, J.-O. and Mueller, C. W. (1987). \emph{Factor analysis. Statistical methods and practical issues}. Beverly Hills, CA: Sage. } \seealso{ \code{\link{principalComponents}}, \code{\link{iterativePrincipalAxis}}, \code{\link{rRecovery}} } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Example from Kim and Mueller (1978, p. 10) # Simulated sample: lower diagnonal R <- matrix(c( 1.000, 0.560, 0.480, 0.224, 0.192, 0.16, 0.560, 1.000, 0.420, 0.196, 0.168, 0.14, 0.480, 0.420, 1.000, 0.168, 0.144, 0.12, 0.224, 0.196, 0.168, 1.000, 0.420, 0.35, 0.192, 0.168, 0.144, 0.420, 1.000, 0.30, 0.160, 0.140, 0.120, 0.350, 0.300, 1.00), nrow=6, byrow=TRUE) # Factor analysis: Selected principal components - Kim and Mueller # (1978, p. 20) componentAxis(R, nFactors=2) # ....................................................... } \keyword{ multivariate } nFactors/man/nSeScree.rd0000644000175100001440000000732111357606450014672 0ustar hornikusers\name{nSeScree} \alias{nSeScree} \title{ Standard Error Scree and Coefficient of Determination Procedures to Determine the Number of Components/Factors} \description{ This function computes the \emph{seScree} (\eqn{S_{Y \bullet X}}) indices (Zoski and Jurs, 1996) and the coefficient of determination indices of Nelson (2005) \eqn{R^2} for determining the number of components/factors to retain. } \usage{ nSeScree(x, cor=TRUE, model="components", details=TRUE, r2limen=0.75, ...) } \arguments{ \item{x}{ numeric: eigenvalues.} \item{cor}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{details}{ logical: if \code{TRUE} also returns details about the computation for each eigenvalue.} \item{r2limen}{ numeric: criterion value retained for the coefficient of determination indices.} \item{...}{ variable: additionnal parameters to give to the \code{eigenComputes} and \code{cor} or \code{cov} functions} } \details{ The Zoski and Jurs \eqn{S_{Y \bullet X}} index is the standard error of the estimate (predicted) eigenvalues by the regression from the \eqn{(k+1, \ldots, p)} subsequent ranks of the eigenvalues. The standard error is computed as: (1) \eqn{\qquad \qquad S_{Y \bullet X} = \sqrt{ \frac{(\lambda_k - \hat{\lambda}_k)^2} {p-2} } } \cr A value of \eqn{1/p} is choosen as the criteria to determine the number of components or factors to retain, \emph{p} corresponding to the number of variables. The Nelson \eqn{R^2} index is simply the multiple regresion coefficient of determination for the \eqn{k+1, \ldots, p} eigenvalues. Note that Nelson didn't give formal prescriptions for the criteria for this index. He only suggested that a value of 0.75 or more must be considered. More is to be done to explore adequate values. } \value{ \item{nFactors}{ numeric: number of components/factors retained by the seScree procedure. } \item{details}{ numeric: matrix of the details for each index.} } \references{ Nasser, F. (2002). The performance of regression-based variations of the visual scree for determining the number of common factors. \emph{Educational and Psychological Measurement, 62(3)}, 397-419. Nelson, L. R. (2005). Some observations on the scree test, and on coefficient alpha. \emph{Thai Journal of Educational Research and Measurement, 3(1)}, 1-17. Zoski, K. and Jurs, S. (1993). Using multiple regression to determine the number of factors to retain in factor analysis. \emph{Multiple Linear Regression Viewpoints, 20}(1), 5-9. Zoski, K. and Jurs, S. (1996). An objective counterpart to the visuel scree test for factor analysis: the standard error scree. \emph{Educational and Psychological Measurement, 56}(3), 443-451. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{plotParallel}} } \examples{ ## SIMPLE EXAMPLE OF SESCREE AND R2 ANALYSIS data(dFactors) eig <- dFactors$Raiche$eigenvalues results <- nSeScree(eig) results plotuScree(eig, main=paste(results$nFactors[1], " or ", results$nFactors[2], " factors retained by the sescree and R2 procedures", sep="")) } \keyword{ multivariate } nFactors/man/nScree.Rd0000644000175100001440000001762211357614540014346 0ustar hornikusers\name{nScree} \alias{nScree} \title{ Non Graphical Cattel's Scree Test} \description{ The \code{nScree} function returns an analysis of the number of component or factors to retain in an exploratory principal component or factor analysis. The function also returns information about the number of components/factors to retain with the Kaiser rule and the parallel analysis. } \usage{ nScree(eig=NULL, x=eig, aparallel=NULL, cor=TRUE, model="components", criteria=NULL, ...) } \arguments{ \item{eig}{ depreciated parameter (use x instead): eigenvalues to analyse } \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data} \item{aparallel}{ numeric: results of a parallel analysis. Defaults eigenvalues fixed at \eqn{\lambda >= \bar{\lambda}} (Kaiser and related rule) or \eqn{\lambda >= 0} (CFA analysis) } \item{cor}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix} \item{model}{ character: \code{"components"} or \code{"factors"} } \item{criteria}{ numeric: by default fixed at \eqn{\bar{\lambda}}. When the \eqn{\lambda}s are computed from a principal component analysis on a correlation matrix, it corresponds to the usual Kaiser \eqn{\lambda >= 1} rule. On a covariance matrix or from a factor analysis, it is simply the mean. To apply \eqn{\lambda >= 0}, sometimes used with factor analysis, fix the criteria to \eqn{0}.} \item{...}{ variabe: additionnal parameters to give to the \code{cor} or \code{cov} functions} } \details{ The \code{nScree} function returns an analysis of the number of components/factors to retain in an exploratory principal component or factor analysis. Different solutions are given. The classical ones are the Kaiser rule, the parallel analysis, and the usual scree test (\code{\link{plotuScree}}). Non graphical solutions to the Cattell subjective scree test are also proposed: an acceleration factor (\emph{af}) and the optimal coordinates index \emph{oc}. The acceleration factor indicates where the elbow of the scree plot appears. It corresponds to the acceleration of the curve, i.e. the second derivative. The optimal coordinates are the extrapolated coordinates of the previous eigenvalue that allow the observed eigenvalue to go beyond this extrapolation. The extrapolation is made by a linear regression using the last eigenvalue coordinates and the \eqn{k+1} eigenvalue coordinates. There are \eqn{k-2} regression lines like this. The Kaiser rule or a parallel analysis criterion (\code{\link{parallel}}) must also be simultaneously satisfied to retain the components/factors, whether for the acceleration factor, or for the optimal coordinates. If \eqn{\lambda_i} is the \eqn{i^{th}} eigenvalue, and \eqn{LS_i} is a location statistics like the mean or a centile (generally the followings: \eqn{1^{st}, \ 5^{th}, \ 95^{th}, \ or \ 99^{th}}). The Kaiser rule is computed as: \deqn{ n_{Kaiser} = \sum_{i} (\lambda_{i} \ge \bar{\lambda}).} Note that \eqn{\bar{\lambda}} is equal to 1 when a correlation matrix is used. The parallel analysis is computed as: \deqn{n_{parallel} = \sum_{i} (\lambda_{i} \ge LS_i).} The acceleration factor (\eqn{AF}) corresponds to a numerical solution to the elbow of the scree plot: \deqn{n_{AF} \equiv \ If \ \left[ (\lambda_{i} \ge LS_i) \ and \ max(AF_i) \right].} The optimal coordinates (\eqn{OC}) corresponds to an extrapolation of the preceeding eigenvalue by a regression line between the eigenvalue coordinates and the last eigenvalue coordinates: \deqn{n_{OC} = \sum_i \left[(\lambda_i \ge LS_i) \cap (\lambda_i \ge (\lambda_{i \ predicted}) \right].} } \value{ \item{Components }{ Data frame for the number of components/factors according to different rules } \item{Components$noc }{ Number of components/factors to retain according to optimal coordinates \emph{oc}} \item{Components$naf }{ Number of components/factors to retain according to the acceleration factor \emph{af}} \item{Components$npar.analysis }{Number of components/factors to retain according to parallel analysis } \item{Components$nkaiser }{ Number of components/factors to retain according to the Kaiser rule } \item{Analysis }{ Data frame of vectors linked to the different rules } \item{Analysis$Eigenvalues }{ Eigenvalues } \item{Analysis$Prop }{ Proportion of variance accounted by eigenvalues } \item{Analysis$Cumu }{ Cumulative proportion of variance accounted by eigenvalues } \item{Analysis$Par.Analysis }{ Centiles of the random eigenvalues generated by the parallel analysis. } \item{Analysis$Pred.eig }{ Predicted eigenvalues by each optimal coordinate regression line } \item{Analysis$OC}{ Critical optimal coordinates \emph{oc}} \item{Analysis$Acc.factor }{ Acceleration factor \emph{af}} \item{Analysis$AF}{ Critical acceleration factor \emph{af}} Otherwise, returns a summary of the analysis. } \seealso{ \code{\link{plotuScree}}, \code{\link{plotnScree}}, \code{\link{parallel}}, \code{\link{plotParallel}}, } \references{ Cattell, R. B. (1966). The scree test for the number of factors. \emph{Multivariate Behavioral Research, 1}, 245-276. Dinno, A. (2009). \emph{Gently clarifying the application of Horn's parallel analysis to principal component analysis versus factor analysis}. Portland, Oregon: Portland Sate University \cr [\url{http://doyenne.com/Software/files/PA_for_PCA_vs_FA.pdf}] Guttman, L. (1954). Some necessary conditions for common factor analysis. \emph{Psychometrika, 19, 149-162}. Horn, J. L. (1965). A rationale for the number of factors in factor analysis. \emph{Psychometrika, 30}, 179-185. Kaiser, H. F. (1960). The application of electronic computer to factor analysis. \emph{Educational and Psychological Measurement, 20}, 141-151. Raiche, G., Riopel, M. and Blais, J.-G. (2006). \emph{Non graphical solutions for the Cattell's scree test}. Paper presented at the International Annual meeting of the Psychometric Society, Montreal. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ ## INITIALISATION data(dFactors) # Load the nFactors dataset attach(dFactors) vect <- Raiche # Uses the example from Raiche eigenvalues <- vect$eigenvalues # Extracts the observed eigenvalues nsubjects <- vect$nsubjects # Extracts the number of subjects variables <- length(eigenvalues) # Computes the number of variables rep <- 100 # Number of replications for PA analysis cent <- 0.95 # Centile value of PA analysis ## PARALLEL ANALYSIS (qevpea for the centile criterion, mevpea for the ## mean criterion) aparallel <- parallel(var = variables, subject = nsubjects, rep = rep, cent = cent )$eigen$qevpea # The 95 centile ## NUMBER OF FACTORS RETAINED ACCORDING TO DIFFERENT RULES results <- nScree(x=eigenvalues, aparallel=aparallel) results summary(results) ## PLOT ACCORDING TO THE nScree CLASS plotnScree(results) } \keyword{ multivariate } nFactors/man/structureSimObjectMethods.rd0000644000175100001440000001004611357607272020350 0ustar hornikusers\name{structureSimObjectMethods} \alias{boxplot.structureSim} \alias{is.structureSim} \alias{plot.structureSim} \alias{print.structureSim} \alias{summary.structureSim} \title{ Utility Functions for nScree Class Objects} \description{ Utility functions for \code{structureSim} class objects. Note that with the \code{plot.structureSim} a dotted black vertical line shows the median number of factors retained by all the different indices. } \usage{ \method{boxplot}{structureSim} (x, nFactors=NULL, eigenSelect=NULL, vLine="green", xlab="Factors", ylab="Eigenvalues", main="Eigen Box Plot", ...) \method{is}{structureSim} (object) \method{plot}{structureSim} (x, nFactors=NULL, index=NULL, main="Index Acuracy Plot", ...) \method{print}{structureSim} (x, index=NULL, ...) \method{summary}{structureSim} (object, index=c(1:15), eigenSelect=NULL, ...) } \arguments{ \item{eigenSelect}{ numeric: vector of the index of the selected eigenvalues} \item{index}{ numeric: vector of the index of the selected indices} \item{main}{ character: main title} \item{nFactors}{ numeric: if known, number of factors} \item{object}{ structureSim: an object of the class \code{structureSim}} \item{vLine}{ character: color of the vertical indicator line of the initial number of factors in the eigen boxplot} \item{x}{ structureSim: an object of the class \code{structureSim}} \item{xlab}{ character: x axis label} \item{ylab}{ character: y axis label} \item{...}{ variable: additionnal parameters to give to the \code{boxplot}, \code{plot}, \code{print} and \code{summary functions.} } } \value{ Generic functions for the \code{structureSim} class: \item{boxplot.structureSim }{ graphic: plots an eigen boxplot } \item{is.structureSim}{ logical: is the object of the class \code{structureSim}? } \item{plot.structureSim }{ graphic: plots an index acuracy plot} \item{print.structureSim }{ numeric: data.frame of statistics about the number of components/factors to retain according to different indices following a \code{structureSim} simulation} \item{summary.structureSim }{ list: two data.frame, the first with the details of the simulated eigenvalues, the second with the details of the simulated indices} } \seealso{ \code{\link{nFactors-package}} } \references{ Raiche, G., Riopel, M. and Blais, J.-G. (2006). \emph{Non graphical solutions for the Cattell's scree test}. Paper presented at the International Annual meeting of the Psychometric Society, Montreal. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ \dontrun{ ## INITIALISATION library(xtable) library(nFactors) nFactors <- 3 unique <- 0.2 loadings <- 0.5 nsubjects <- 180 repsim <- 10 var <- 36 pmjc <- 12 reppar <- 10 zwick <- generateStructure(var=var, mjc=nFactors, pmjc=pmjc, loadings=loadings, unique=unique) ## SIMULATIONS mzwick <- structureSim(fload=as.matrix(zwick), reppar=reppar, repsim=repsim, details=TRUE, N=nsubjects, quantile=0.5) ## TEST OF structureSim METHODS is(mzwick) summary(mzwick, index=1:5, eigenSelect=1:10, digits=3) print(mzwick, index=1:10) plot(x=mzwick, index=c(1:10), cex.axis=0.7, col="red") boxplot(x=mzwick, nFactors=3, vLine="blue", col="red") } } \keyword{ multivariate } nFactors/man/moreStats.rd0000644000175100001440000000256411357207352015146 0ustar hornikusers\name{moreStats} \alias{moreStats} \title{ Statistical Summary of a Data Frame} \description{ This function produces another summary of a \code{data.frame}. This function was proposed in order to apply some functions globally on a \code{data.frame}: \code{quantile}, \code{median}, \code{min} and \code{max}. The usual \emph{R} version cannot do so. } \usage{ moreStats(x, quantile=0.95, show=FALSE) } \arguments{ \item{x}{ numeric: matrix or \code{data.frame}.} \item{quantile}{ numeric: quantile of the distribution.} \item{show}{ logical: if \code{TRUE} prints the quantile choosen.} } \value{ \item{values}{ numeric: \code{data.frame} of statistics: mean, median, quantile, standard deviation, minimum and maximum. } } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \seealso{ \code{\link{plotuScree}}, \code{\link{nScree}}, \code{\link{plotnScree}}, \code{\link{plotParallel}} } \examples{ ## GENERATION OF A MATRIX OF 100 OBSERVATIONS AND 10 VARIABLES x <- matrix(rnorm(1000),ncol=10) ## STATISTICS res <- moreStats(x, quantile=0.05, show=TRUE) res } \keyword{ multivariate } nFactors/man/nBentler.rd0000644000175100001440000001345011360063262014724 0ustar hornikusers\name{nBentler} \alias{nBentler} \title{ Bentler and Yuan's Procedure to Determine the Number of Components/Factors} \description{ This function computes the Bentler and Yuan's indices for determining the number of components/factors to retain. } \usage{ nBentler(x, N, log=TRUE, alpha=0.05, cor=TRUE, details=TRUE, minPar=c(min(lambda) - abs(min(lambda)) +.001, 0.001), maxPar=c(max(lambda), lm(lambda ~ I(length(lambda):1))$coef[2]), ...) } \arguments{ \item{x}{ numeric: a \code{vector} of eigenvalues, a \code{matrix} of correlations or of covariances or a \code{data.frame} of data} \item{N}{ numeric: number of subjects.} \item{log}{ logical: if \code{TRUE} does the maximization on the log values.} \item{alpha}{ numeric: statistical significance level.} \item{cor}{ logical: if \code{TRUE} computes eigenvalues from a correlation matrix, else from a covariance matrix} \item{details}{ logical: if \code{TRUE} also returns detains about the computation for each eigenvalue.} \item{minPar}{ numeric: minimums for the coefficient of the linear trend to maximize.} \item{maxPar}{ numeric: maximums for the coefficient of the linear trend to maximize.} \item{...}{ variable: additionnal parameters to give to the \code{cor} or \code{cov} functions} } \details{ The implemented Bentler and Yuan's procedure must be used with care because the minimized function is not always stable, as Bentler and Yan (1996, 1998) already noted. In many cases, constraints must applied to obtain a solution, as the actual implementation did, but the user can modify these constraints. The hypothesis tested (Bentler and Yuan, 1996, equation 10) is: \cr \cr (1) \eqn{\qquad \qquad H_k: \lambda_{k+i} = \alpha + \beta x_i, (i = 1, \ldots, q)} \cr The solution of the following simultaneous equations is needed to find \eqn{(\alpha, \beta) \in} \cr (2) \eqn{\qquad \qquad f(x) = \sum_{i=1}^q \frac{ [ \lambda_{k+j} - N \alpha + \beta x_j ] x_j}{(\alpha + \beta x_j)^2} = 0} \cr \cr and \eqn{\qquad \qquad g(x) = \sum_{i=1}^q \frac{ \lambda_{k+j} - N \alpha + \beta x_j x_j}{(\alpha + \beta x_j)^2} = 0} \cr The solution to this system of equations was implemented by minimizing the following equation: \cr (3) \eqn{\qquad \qquad (\alpha, \beta) \in \inf{[h(x)]} = \inf{\log{[f(x)^2 + g(x)^2}}]} \cr The likelihood ratio test \eqn{LRT} proposed by Bentler and Yuan (1996, equation 7) follows a \eqn{\chi^2} probability distribution with \eqn{q-2} degrees of freedom and is equal to: \cr (4) \eqn{\qquad \qquad LRT = N(k - p)\left\{ {\ln \left( {{n \over N}} \right) + 1} \right\} - N\sum\limits_{j = k + 1}^p {\ln \left\{ {{{\lambda _j } \over {\alpha + \beta x_j }}} \right\}} + n\sum\limits_{j = k + 1}^p {\left\{ {{{\lambda _j } \over {\alpha + \beta x_j }}} \right\}} } \cr With \eqn{p} beeing the number of eigenvalues, \eqn{k} the number of eigenvalues to test, \eqn{q} the \eqn{p-k} remaining eigenvalues, \eqn{N} the sample size, and \eqn{n = N-1}. Note that there is an error in the Bentler and Yuan equation, the variables \eqn{N} and \eqn{n} beeing inverted in the preceeding equation 4. A better strategy proposed by Bentler an Yuan (1998) is to used a minimized \eqn{\chi^2} solution. This strategy will be implemented in a future version of the \pkg{nFactors} package. } \value{ \item{nFactors}{ numeric: vector of the number of factors retained by the Bentler and Yuan's procedure. } \item{details}{ numeric: matrix of the details of the computation.} } \references{ Bentler, P. M. and Yuan, K.-H. (1996). Test of linear trend in eigenvalues of a covariance matrix with application to data analysis. \emph{British Journal of Mathematical and Statistical Psychology, 49}, 299-312. Bentler, P. M. and Yuan, K.-H. (1998). Test of linear trend in the smallest eigenvalues of the correlation matrix. \emph{Psychometrika, 63}(2), 131-144. } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} \cr \cr David Magis \cr Departement de mathematiques \cr Universite de Liege \cr \email{David.Magis@ulg.ac.be} } \seealso{ \code{\link{nBartlett}}, \code{\link{bentlerParameters}} } \examples{ ## ................................................ ## SIMPLE EXAMPLE OF THE BENTLER AND YUAN PROCEDURE # Bentler (1996, p. 309) Table 2 - Example 2 ............. n=649 bentler2<-c(5.785, 3.088, 1.505, 0.582, 0.424, 0.386, 0.360, 0.337, 0.303, 0.281, 0.246, 0.238, 0.200, 0.160, 0.130) results <- nBentler(x=bentler2, N=n) results plotuScree(x=bentler2, model="components", main=paste(results$nFactors, " factors retained by the Bentler and Yuan's procedure (1996, p. 309)", sep="")) # ........................................................ # Bentler (1998, p. 140) Table 3 - Example 1 ............. n <- 145 example1 <- c(8.135, 2.096, 1.693, 1.502, 1.025, 0.943, 0.901, 0.816, 0.790, 0.707, 0.639, 0.543, 0.533, 0.509, 0.478, 0.390, 0.382, 0.340, 0.334, 0.316, 0.297, 0.268, 0.190, 0.173) results <- nBentler(x=example1, N=n) results plotuScree(x=example1, model="components", main=paste(results$nFactors, " factors retained by the Bentler and Yuan's procedure (1998, p. 140)", sep="")) # ........................................................ } \keyword{ multivariate } nFactors/man/nFactors-package.rd0000644000175100001440000000433211360062712016321 0ustar hornikusers\name{nFactors-package} \alias{nFactors-package} \alias{nFactors} \docType{package} \title{ Parallel Analysis and Non Graphical Solutions to the Cattell Scree Test} \description{ Indices, heuristics and strategies to help determine the number of factors/components to retain: \enumerate{ \item{- }{ Acceleration factor (\emph{noc} with or without Parallel Analysis) } \item{- }{ Optimal Coordinates (\emph{noc} with or without Parallel Analysis) } \item{- }{ Parallel analysis (components, factors and bootstrap) } \item{- }{ \eqn{\lambda >= \bar{\lambda}} (Kaiser, CFA and related rule) } \item{- }{ Cattell-Nelson-Gorsuch (\emph{CNG}) } \item{- }{ Zoski and Jurs Multiple regression (\eqn{\beta}, \emph{t} and \emph{p}) } \item{- }{ Zoski and Jurs standard error of the regression coefficient (sescree, \eqn{S_{Y \bullet X}}) } \item{- }{ Nelson \eqn{R^2} } \item{- }{ Bartlett \eqn{\chi^2} } \item{- }{ Anderson \eqn{\chi^2} } \item{- }{ Lawley \eqn{\chi^2} and } \item{- }{ Bentler-Yuan \eqn{\chi^2}. } } } \details{ \tabular{ll}{ Package: \tab nFactors \cr Type: \tab Package \cr Version: \tab 2.3.2 \cr Date: \tab 2010-04-10 \cr Depends: \tab R (>= 2.9.2), MASS, psych, boot \cr License: \tab GPL \cr } } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} \cr \cr David Magis \cr Departement de mathematiques \cr Universite de Liege \cr \email{David.Magis@ulg.ac.be} } \references{ Raiche, G., Riopel, M. and Blais, J.-G. (2006). \emph{Non graphical solutions for the Cattell's scree test}. Paper presented at the International Annual meeting of the Psychometric Society, Montreal. [\url{http://www.er.uqam.ca/nobel/r17165/RECHERCHE/COMMUNICATIONS/}] } \seealso{ Other packages are also very useful for principal component and factor analysis. The \emph{R} psychometric view is instructive at this point. See \url{http://cran.stat.sfu.ca/web/views/Psychometrics.html} for further details. } \keyword{ package } nFactors/man/diagReplace.rd0000644000175100001440000000334211357615254015364 0ustar hornikusers\name{diagReplace} \alias{diagReplace} \title{ Replacing Upper or Lower Diagonal of a Correlation or Covariance Matrix} \description{ The \code{diagReplace} function returns a modified correlation or covariance matrix by replacing upper diagonal with lower diagonal, or lower diagonal with upper diagonal. } \usage{ diagReplace(R, upper=TRUE) } \arguments{ \item{R}{ numeric: correlation or covariance matrix} \item{upper}{ logical: if \code{TRUE} upper diagonal is replaced with lower diagonal. If \code{FALSE}, lower diagonal is replaced with upper diagonal.} } \value{ \item{R }{ numeric: correlation or covariance matrix } } \author{ Gilles Raiche \cr Centre sur les Applications des Modeles de Reponses aux Items (CAMRI) \cr Universite du Quebec a Montreal\cr \email{raiche.gilles@uqam.ca}, \url{http://www.er.uqam.ca/nobel/r17165/} } \examples{ # ....................................................... # Example from Kim and Mueller (1978, p. 10) # Population: upper diagonal # Simulated sample: lower diagnonal R <- matrix(c( 1.000, .6008, .4984, .1920, .1959, .3466, .5600, 1.000, .4749, .2196, .1912, .2979, .4800, .4200, 1.000, .2079, .2010, .2445, .2240, .1960, .1680, 1.000, .4334, .3197, .1920, .1680, .1440, .4200, 1.000, .4207, .1600, .1400, .1200, .3500, .3000, 1.000), nrow=6, byrow=TRUE) # Replace upper diagonal with lower diagonal RU <- diagReplace(R, upper=TRUE) # Replace lower diagonal with upper diagonal RL <- diagReplace(R, upper=FALSE) # ....................................................... } \keyword{ manip } nFactors/TODO0000644000175100001440000000112511360062210012525 0ustar hornikusers ****************************************************** * * * Future Developments for the nFactors Package * * * ****************************************************** o Use of the polycor package to take in account correlation matrices from discrete variables. o Add a gui, probably from the fgui package. ****************************************************** ****************************************************** nFactors/DESCRIPTION0000644000175100001440000000244313532443753013571 0ustar hornikusersPackage: nFactors Type: Package Title: Parallel Analysis and Non Graphical Solutions to the Cattell Scree Test Version: 2.3.3.1 Date: 2010-04-10 Encoding: latin1 Author: Gilles Raiche (Universite du Quebec a Montreal) and David Magis (Universite de Liege) Maintainer: Gilles Raiche Depends: R (>= 2.9.2), MASS, psych, boot, lattice Suggests: xtable Description: Indices, heuristics and strategies to help determine the number of factors/components to retain: 1. Acceleration factor (af with or without Parallel Analysis); 2. Optimal Coordinates (noc with or without Parallel Analysis); 3. Parallel analysis (components, factors and bootstrap); 4. lambda > mean(lambda) (Kaiser, CFA and related); 5. Cattell-Nelson-Gorsuch (CNG); 6. Zoski and Jurs multiple regression (b, t and p); 7. Zoski and Jurs standard error of the regression coeffcient (sescree); 8. Nelson R2; 9. Bartlett khi-2; 10. Anderson khi-2; 11. Lawley khi-2 and 12. Bentler-Yuan khi-2. License: GPL (>= 2) Packaged: 2019-08-31 09:43:37 UTC; hornik Repository: CRAN Date/Publication: 2019-08-31 10:11:55 UTC NeedsCompilation: no nFactors/NEWS0000644000175100001440000001205011673414276012557 0ustar hornikusers ****************************************************** * * * Changes and Developments in the nFactors Package * * * ****************************************************** ------------------------------------------ - Changes in nFactors 2.3.3 (2011-12-16) - ------------------------------------------ Changes done because the functions mean() and sd() in the moreStats() function were depreciated with data.frames. xMean <- sapply(x, mean) # mean(x) before change xSd <- sapply(x, sd) # sd(x) before change ------------------------------------------ - Changes in nFactors 2.3.2 (2010-10-04) - ------------------------------------------ Changes in this version are stricly limited to orthographical correction of the documentation. ------------------------------------------ - Changes in nFactors 2.3.1 (2009-14-10) - ------------------------------------------ o Two bugs were fixed inside the function structureSim. The first one, at line 21, is related to permutation analysis where the quantile paramater of the function call stayed fixed at 0.95 even if the value is different in the call. The variable quantile is now formally use in the call to eigenBootParallel. The second bug was realted to an error in the column names of the data.frame return from structureSim: the per and mean.eig columns were unfortunalely inrerchanged. Version 2.3.1 fixed it. o Bug fixing was the occasion to introduce a new function used for a paper proposed to Behaviormetrika, studySim. But this function is useful for many other simulation settings. ---------------------------------------- - Changes in nFactors 2.3 (2009-15-09) - ---------------------------------------- This version of nFactors is a major upgrade and so presents important additions and modifications. Care was taken to not modified parameters from version 2.2 calls so that functions and packages already requiring nFactors will yet operate correctly in the future. But like with all mojor upgrades, care must be taken and it is recommanded that developpers verify their results. All the future upgrades won't have this potentiel problems. o Many new procedures to determine the number of components or factors to retain are added: permutation and bootstrap parallel analysis, CNG, Bentler and Yuan, Bartlett, Anderson, Lawley, Zosky and Jurs, etc. o Care is taken to uniformise the labelling of new functions and new variables. According to the Java coding practice, with this labelling, the names begin with a small character, and capitals are used inside for added concepts. o It is now possible to do most of the nfactors package analysis on a covariance matrix. o It is now possible to do most of the nfactors package analysis in the CFA context. o The permutation parallel analysis of Buja and Eyuboglu (1992) is added. o It is now possible to bootstrap the eigenvalues from an empirical data matrix. o New heuristic numerical indices are added to determine the number of components/factores to retain: CNG, Zoski and Jurs multiple regression, Joski and Jurs standard error of the scree, and Nelson R. o Likelihood ratio tests are added: Bartlet, Anderson, Lawley, and Bentler and Yuan chi-squared. o The eigenComputes function computes eigenvalues conditional of the class of the object from which data come from: eigenvalues from vector, correlation/covariance matrix, or data from a data.frame. o The eigenFrom function determine the class of the object. o The corFA function is added to insert commulalities in the diagonal of a correlation or a covariance matrix. o The makeCor function creates a full correlation/covariance matrix from a matrix with lower part filled and upper part with zeros. o Functions are added to generate a factor structure (generateStructure) and to simulate data and correlation matrices from a predefined factor structure (structureSim). o A function, moreStats, is added to be computes additionnal statistics on a numeric data.frame. o Utility functions for \code{nScree} class objects werw implemented: is.nScree, plot.nScree, plot.nScree and summary.nScree. ---------------------------------------- - Changes in nFactors 2.2 (2009-02-06) - ---------------------------------------- o Considering the instabillity of the function factanal with ill conditionned correlation matrices, new functions for computing factor analysis are added: componentAxis, iteratePrincipalAxix, principalAxis and principalComponents. o The diagReplace function replace the upper or the lower diagonal of a correlation matrix with the respective lower or lower diagonal. o The rRecovery function is added for a verification of the quality of the recovery of an initial correlation matrix. nFactors/R/0000755000175100001440000000000011673637537012272 5ustar hornikusersnFactors/R/bentlerParameters.r0000644000175100001440000000515011252663526016123 0ustar hornikusersbentlerParameters <- function(x, N, nFactors, log=TRUE, cor=TRUE, minPar=c(min(lambda) - abs(min(lambda)) +.001, 0.001), maxPar=c(max(lambda), lm(lambda ~ I(length(lambda):1))$coef[2]), resParx=c(0.01, 2), resPary=c(0.01, 2), graphic=TRUE, resolution=30, typePlot="wireframe", ...){ stopMessage <- paste("\n These indices are only valid with a principal component solution.\n", " ...................... So, only positive eugenvalues are permitted.\n", sep="") lambda <- eigenComputes(x, cor=cor, ...) if (length(which(lambda <0 )) > 0) {cat(stopMessage);stop()} k <- nFactors p <- length(lambda) q <- p-k i <- 1:q x <- q-i l <- lambda[k+i] n <- N - 1 # Bentler (1996, p. 133) maximization of equations 8 and 9 f1 <- function(n,l,x,alpha,beta) sum((n*l-(n+1)*(alpha+beta*x))/((alpha+beta*x)^2)) f2 <- function(n,l,x,alpha,beta) sum((n*l-(n+1)*(alpha+beta*x))*x/((alpha+beta*x)^2)) f <- function(alpha,beta) f1(n,l,x,alpha,beta)^2+f2(n,l,x,alpha,beta)^2 if (log == FALSE) F <- function(y) f(y[1],y[2]) else F <- function(y) log(f(y[1],y[2])) figure <- NULL if (graphic == TRUE) { p1 <- seq(resParx[1], resParx[2], length=resolution) p2 <- seq(resPary[1], resPary[2], length=resolution) data <- expand.grid(Alpha = p1, Beta = p2) data <- data.frame(data, y=numeric(length(data$Alpha))) for( i in 1:length(data$Alpha)) data$y[i] <- F(c(data$Alpha[i],data$Beta[i])) if (log == FALSE) zlab <- "y" else zlab <- "log(y)" if (typePlot == "wireframe") figure <- wireframe( y ~ Alpha * Beta, data=data, zlab=zlab, ...) if (typePlot == "contourplot") figure <- contourplot(y ~ Alpha * Beta, data=data, region=TRUE, ...) if (typePlot == "levelplot") figure <- levelplot( y ~ Alpha * Beta, data=data, region=TRUE, ...) } res <- nlminb(objective=F,start=lm(l~x)$coefficients,lower=c(minPar[1],minPar[2]),upper=c(maxPar[1],maxPar[2])) para <- res$par[1] parb <- res$par[2] # Bentler (1996, p. 133) equation 7 # !!! Warning: Bentler and Yuan (1998) were in error for the definition of LRT !!! # !!! So N and n must be inversed in the first logarithm !!! lrt <- N*(k-p)*(log(n/N)+1)-N*sum(log(lambda[(k+1):p]/(para+parb*x))) + n*sum(lambda[(k+1):p]/(para+parb*x)) df <- q-2 resp <- list(convergence=res$convergence, figure=figure, coefficients=res$par, lrt=lrt, df=df,k=k,p.value=1-pchisq(lrt,df)) names(resp$coefficients)<-c("alpha","beta") return(resp) }nFactors/R/nBartlett.r0000644000175100001440000000643411254132672014404 0ustar hornikusersnBartlett <- function(x, N, alpha=0.05, cor=TRUE, details=TRUE, correction=TRUE, ...) { stopMessage <- paste("\n These indices are only valid with a principal component solution.\n", " ...................... So, only positive eugenvalues are permitted.\n", sep="") x <- eigenComputes(x, cor=cor, ...) if (length(which(x<0)) > 0) {cat(stopMessage);stop()} n <- length(x) detail <- NULL bartlett.n <- anderson.n <- lawley.n <- 0 bartlett <- bartlett.chi <- bartlett.df <- bartlett.p <- numeric(n) anderson.chi <- anderson.df <- anderson.p <- numeric(n) lawley.chi <- lawley.df <- lawley.p <- numeric(n) for (k in 0:(n-1)) { i <- k+1 bartlett[i] <- prod(x[(k+1):n]) / (sum(x[(k+1):n])/(n-k))^(n-k) # From Horn et Engstrom (1979) bartlett.chi[i] <- -(N - 1 - ((2*n+5)/6) - ((2*k)/3)) * log(bartlett[i]) bartlett.df[i] <- .5 * (n-k) * (n-k-1) # Bartlett without correction, from Horn and Engstrom (1979. p. 291, equation 8) if (correction==TRUE & bartlett.n > 0) bartlett.df[i] <- .5 * (n-k+2) * (n-k-1) # From Bentler and Yuan (1996, p. 300) bartlett.p[i] <- pchisq(bartlett.chi[i] , bartlett.df[i], lower.tail = FALSE) # Conditions to stop when non significant test are obtained anderson.chi[i] <- -N * log(bartlett[i]) # From Bentler and Yuan (1996, p. 300, equations 3-4) anderson.df[i] <- .5 * (n-k+2) * (n-k-1) # From Bentler and Yuan (1996, p. 300) anderson.p[i] <- pchisq(anderson.chi[i] , anderson.df[i], lower.tail = FALSE) lMean <- mean(x[(k+1):n]) lawley.chi[i] <- -(N - 1 - ((2*n+5)/6) - ((2*k)/3) + sum((lMean^2)/((x[k]+lMean)^2))) * log(bartlett[i]) # From Bentler and Yuan (1996, p. 300, equation 6) lawley.df[i] <- .5 * (n-k) * (n-k-1) # From Horn and Engstrom (1979. p. 291, equation 8) lawley.p[i] <- pchisq(lawley.chi[i] , lawley.df[i], lower.tail = FALSE) # print(c(bartlett[i], bartlett.chi[i], bartlett.df[i], bartlett.p[i]),2) ############ TEST ############# if (i == 1) { bartlett.n <- bartlett.n + as.numeric(bartlett.p[i] <= alpha) anderson.n <- anderson.n + as.numeric(anderson.p[i] <= alpha) lawley.n <- lawley.n + as.numeric(lawley.p[i] <= alpha) } if (i > 1) { if(bartlett.p[i-1] <= 0.05) bartlett.n <- bartlett.n + as.numeric(bartlett.p[i] <= alpha) if(anderson.p[i-1] <= 0.05) anderson.n <- anderson.n + as.numeric(anderson.p[i] <= alpha) if(lawley.p[i-1] <= 0.05) lawley.n <- lawley.n + as.numeric(lawley.p[i] <= alpha) } } if (bartlett.n == 0) bartlett.n <- n # If no test if significant, retain all components if (anderson.n == 0) anderson.n <- n if (lawley.n == 0) lawlwy.n <- n if (details == TRUE) detail <- data.frame(v=(1:(n)),values=x[1:(n)], bartlett, bartlett.chi, bartlett.df, bartlett.p, anderson.chi, anderson.df, anderson.p, lawley.chi, lawley.df, lawley.p) res <- list(detail=detail, nFactors=c(bartlett=bartlett.n, anderson=anderson.n, lawley=lawley.n)) class(res) <- c("nFactors","list") return(res) } nFactors/R/generateStructure.r0000644000175100001440000000103511250215210016132 0ustar hornikusersgenerateStructure <- function(var, mjc, pmjc, loadings, unique) { if (var/mjc != ceiling(var/mjc)) stop("Bad pmjc value") fload <- matrix(unique, ncol=mjc, nrow=var) for (i in 1:mjc) { if (i == 1) fload[i:(pmjc),i] <- loadings min <- ((i-1)*pmjc+1) max <- ((i-1)*pmjc+pmjc) if (min > dim(fload)[1]) min <- dim(fload)[1] if (max > dim(fload)[1]) max <- dim(fload)[1] if (i > 1) fload[min:max,i] <- loadings if (min > dim(fload)[1]) fload[dim(fload)[1],i] <- unique } return(data.frame(fload)) }nFactors/R/nScree.R0000644000175100001440000000647711252664456013643 0ustar hornikusers"nScree" <- function(eig=NULL, x=eig, aparallel = NULL, cor=TRUE, model="components", criteria=NULL, ...) { # Initialisation eig <- eigenComputes(x, cor=cor, model=model, ...) if (is.null(aparallel)) aparallel <- rep(1,length(eig)) # default to 1 in the diagonal nk <- length(eig) k <- 1:nk proportion <- eig/sum(eig) cumulative <- proportion if (is.null(criteria)) criteria <- mean(eig) for (i in 2:nk) cumulative[i] = cumulative[i-1] + proportion[i] proportion[proportion < 0] <- 0# To constraint negative proportions to be zero cond1 <- TRUE; cond2 <- TRUE; i <- 0; pred.eig <- af <- rep(NA,nk) while ((cond1 == TRUE) && (cond2 == TRUE) && (i < nk)) { i <- i + 1 ind <- k[c(i+1,nk)] #### Optimal coordinate based on the next eigenvalue regression (scree) vp.p <- lm(eig[c(i+1,nk)] ~ ind) vp.prec <- pred.eig[i] <- sum(c(1,i)* coef(vp.p)) cond1 <- (eig[i] >= vp.prec) cond2 <- (eig[i] >= aparallel[i]) nc <- i-1 } # Second derivative at the i eigenvalue (acceleration factor, elbow) # See Yakowitz and Szidarovszky (1986, p. 84) tag <- 1 for (j in 2:(nk-1)) { if (eig[j-1] >= aparallel[j-1]) { af[j] <- (eig[j+1] -2* eig[j]) + eig[j-1] } } if (model == "components") p.vec <- which(eig >= aparallel,TRUE) else p.vec <- which((eig-aparallel)>=0 & eig >= criteria) ###if (model == "components") p.vec <- which(eig >= aparallel,TRUE) else p.vec <- which((eig-aparallel)>=0 & eig > 0) npar <- sum(p.vec == (1:length(p.vec))) nkaiser <- sum(eig >= rep(criteria,nk)) #### if (model == "components") nkaiser <- sum(eig >= rep(criteria,nk)) else nkaiser <- sum(eig >= rep(0,nk)) #### if (model == "components") nkaiser <- sum(eig >= rep(1,nk)) else nkaiser <- sum(eig >= rep(mean(eig),nk)) naf <- which(af == max(af,na.rm=TRUE),TRUE) - 1 # Assure that all the optimal coordinates will be computed for (i in (nc+1):(nk-2)) { ind <- k[c(i+1,nk)] vp.p <- lm(eig[c(i+1,nk)] ~ ind) vp.prec <- pred.eig[i] <- sum(c(1,i)* coef(vp.p)) } # Assure that all the acceleration factors will be computed for (j in 2:(nk-1)) af[j] <- (eig[j+1] - 2 * eig[j]) + eig[j-1] # Return values by the function coc <- rep("",nk); coc[nc] = "(< OC)" caf <- rep("",nk); caf[naf] = "(< AF)" result <- (list(Components = data.frame(noc = nc, naf = naf, nparallel = npar, nkaiser = nkaiser), Analysis = data.frame(Eigenvalues = eig, Prop = proportion, Cumu = cumulative, Par.Analysis = aparallel, Pred.eig = pred.eig, OC = coc, Acc.factor = af, AF = caf), Model = model)) class(result) <- 'nScree' return(result) } nFactors/R/nSeScree.r0000644000175100001440000000212711254133542014144 0ustar hornikusersnSeScree <- function(x, cor=TRUE, model="components", details=TRUE, r2limen=0.75, ...) { x <- eigenComputes(x, cor=cor, model=model, ...) detail <- NULL n <- length(x) criteria <- 1/n seScreeCriteria <- R2Criteria <- 0 if (n < 3) stop("The number of variables must be at least 3.") i <- 1 seScree <- R2 <- numeric(n-3) while ((i) <= (n-2)) { xa <- c(i:n) ya <- x[i:n] ma <- lm(ya ~ xa) seScree[i] <- sd(ya)*sqrt((1-summary(ma)$r.squared) * ((length(ya)-1)/(length(ya)-2))) # Howell(2008, p. 253) seScreeCriteria <- seScreeCriteria + as.numeric(seScree[i] > criteria) R2[i] <- summary(ma)$r.squared R2Criteria <- R2Criteria + as.numeric(R2[i] < r2limen) i <- i + 1 } if (details == TRUE) detail <- data.frame(v=(1:(n-2)),values=x[1:(n-2)], seScree, R2) seScree <- seScreeCriteria R2 <- R2Criteria res <- list(detail=detail, nFactors=c(se=seScree, R2=R2)) class(res) <- c("nFactors","list") return(res) }nFactors/R/makeCor.r0000644000175100001440000000033511244203634014014 0ustar hornikusersmakeCor <- function(x) { if (is.matrix(x)) stop("x is not a vector.") upper <- matrix(x,ncol=10, byrow=FALSE) diag(upper) <- 0 lower <- matrix(x,ncol=10, byrow=TRUE) res <- lower + upper return(res) }nFactors/R/nFactorsObjectMethods.r0000644000175100001440000000173411254144016016670 0ustar hornikusers## ................................................................. is.nFactors <- function(object) { if (any(class(object) == "nFactors")) return(TRUE) else return(FALSE) } ## ................................................................. ## ................................................................. print.nFactors <- function(x, ...) { if (!is.nFactors(x)) stop("Not a nFactors object") res <- x$nFactors print(res, ...) } ## ................................................................. ## ................................................................. summary.nFactors <- function(object, ...) { if (!is.nFactors(object)) stop("Not a nFactors object") cat("Report For a nFactors Class \n\n") NextMethod() cat(paste("Details:","\n\n")) print(object$detail, ...) cat(paste("\n\n Number of factors retained by index","\n\n")) print(object$nFactors) } ## ................................................................. nFactors/R/rRecovery.r0000644000175100001440000000062711250217170014414 0ustar hornikusers"rRecovery" <- function(R, loadings, diagCommunalities=FALSE) { recoveredR <- loadings %*% t(loadings) recovery <- list(R = R, recoveredR = recoveredR, difference = R - recoveredR) if (diagCommunalities == FALSE) {diag(R) <- NA; diag(recoveredR) <- NA } corr <- cor(c(R),c(recoveredR), use="pairwise.complete.obs") recovery <- list(recovery, cor = corr) return(recovery) } nFactors/R/eigenComputes.r0000644000175100001440000000141311252667022015244 0ustar hornikuserseigenComputes <- function(x, cor=TRUE, model="components", ...) { dataType <- eigenFrom(x) if (model == "components") { res <- switch(dataType, eigenvalues = as.vector(x), correlation = {if (cor == FALSE) eigen(x)$values else eigen(cov2cor(x))$values}, data = {if (cor == TRUE) eigen(cor(x, ...))$values else eigen(cov(x, ...))$values} ) } if (model == "factors") { res <- switch(dataType, eigenvalues = as.vector(x), correlation = {if (cor == FALSE) eigen(corFA(x, method="ginv"))$values else eigen(cov2cor(corFA(x, method="ginv")))$values}, data = {if (cor == TRUE) eigen(corFA(cor(x, ...),method="ginv"))$values else eigen(corFA(cov(x, ...),method="ginv"))$values} ) } return(res) } nFactors/R/nBentler.r0000644000175100001440000000402411254133160014200 0ustar hornikusersnBentler <- function(x, N, log=TRUE, alpha=0.05, cor=TRUE, details=TRUE, minPar=c(min(lambda) - abs(min(lambda)) +.001, 0.001), maxPar=c(max(lambda), lm(lambda ~ I(length(lambda):1))$coef[2]), ...) { stopMessage <- paste("\n These indices are only valid with a principal component solution.\n", " ...................... So, only positive eugenvalues are permitted.\n", sep="") lambda <- eigenComputes(x, cor=cor, ...) if (length(which(lambda <0 )) > 0) {cat(stopMessage);stop()} n <- N significance <- alpha min.k <- 3 LRT <- data.frame(q=numeric(length(lambda)-min.k), k=numeric(length(lambda)-min.k), LRT=numeric(length(lambda)-min.k), a=numeric(length(lambda)-min.k), b=numeric(length(lambda)-min.k), p=numeric(length(lambda)-min.k), convergence=numeric(length(lambda)-min.k)) bentler.n <- 0 for (i in 1:(length(lambda)-min.k)) { temp <- bentlerParameters(x=lambda, N=n, nFactors=i, log=log, cor=cor, minPar=minPar, maxPar=maxPar) LRT[i,3] <- temp$lrt LRT[i,4] <- ifelse(is.null(temp$coef[1]), NA, temp$coef[1]) LRT[i,5] <- ifelse(is.null(temp$coef[2]), NA, temp$coef[2]) LRT[i,6] <- ifelse(is.null(temp$p.value), NA, temp$p.value) LRT[i,7] <- ifelse(is.null(temp$convergence), NA, temp$convergence) LRT[i,2] <- i LRT[i,1] <- length(lambda) - i } #LRT <- LRT[order(LRT[,1],decreasing = TRUE),] for (i in 1:(length(lambda)-min.k)) { if (i == 1) bentler.n <- bentler.n + as.numeric(LRT$p[i] <= significance) if (i > 1) {if(LRT$p[i-1] <= 0.05) bentler.n <- bentler.n + as.numeric(LRT$p[i] <= significance)} } if (bentler.n == 0) bentler.n <- length(lambda) if (details == TRUE) details <- LRT else details <- NULL res <- list(detail=details, nFactors=bentler.n) class(res) <- c("nFactors","list") return(res) }nFactors/R/parallel.R0000644000175100001440000000451011251064056014167 0ustar hornikusers"parallel" <- function(subject=100, var=10, rep=100, cent=0.05, quantile=cent, model="components", sd=diag(1,var), ...) { r <- subject c <- var y <- matrix(c(1:r*c), nrow=r, ncol=c) ycor <- matrix(c(1:c*c), nrow=c, ncol=c) evpea <- NULL leg.txt <- "Pearson" # Simulation of k samples to obtain k random eigenvalues vectors # for Pearson correlation coefficients for (k in c(1:rep)) { # y <- rnorm(y, sd=sqrt(mean(diag(sd)))) # Old version without covariance # y <- matrix(y, nrow=r, ncol=c) # Old version without covariance y <- mvrnorm(n = r, mu=rep(0,var), Sigma=sd, empirical=FALSE) corY <- cov(y, ...) # The previous version was only cor(y) if (model == "components") diag(corY) <- diag(sd) # To constraint the diagonal to sd for PCA if (model == "factors") corY <- corY - ginv(diag(diag(ginv(corY)))) # To constraint the diagonal to communalities for FCA evpea <- rbind(evpea, eigen(corY)[[1]]) } # Temporay function to compute the standard error of a quantile SEcentile <- function(sd, n = 100, p = 0.95) {return(sd/sqrt(n) * sqrt(p*(1-p))/dnorm(qnorm(p))) } # Summary statistics sprob <- c(cent) mevpea <- sapply(as.data.frame(evpea), mean) # Eigenvalues means sevpea <- sapply(as.data.frame(evpea), sd ) # Eigenvalues Standard deviations qevpea <- moreStats(evpea, quantile=quantile)[3,] # Would be more in line with version 2.3 #quant <- function(x, sprobs = sprobs) {return(as.vector(quantile(x, probs = sprob))) } #qevpea <- sapply(as.data.frame(evpea), quant) # Eigenvalues centiles sqevpea <- sevpea sqevpea <- sapply(as.data.frame(sqevpea), SEcentile, n = rep, p = cent) # Standard error of the centiles # List of results return result <- list(eigen = data.frame(mevpea, sevpea, qevpea, sqevpea), subject = r, variables = c, centile = cent ) class(result) <- 'parallel' # For future use return(result) } nFactors/R/studySim.r0000644000175100001440000000473611357176410014273 0ustar hornikusersstudySim <- function(var, nFactors, pmjc, loadings, unique, N, repsim, reppar, stats=1, quantile=0.5, model="components", r2limen=0.75, all=FALSE, dir=NA, trace=TRUE) { nsubjects <- N result <- NULL id <- 0 nid <- length(nFactors) * length(loadings) * length(pmjc) * length(var) * length(unique) * length(nsubjects) for (i in 1:length(nFactors)) { for (j in 1:length(loadings)) { for (l in 1:length(pmjc)) { for (n in 1:length(var)) { for (k in 1:length(unique)) { for (m in 1:length(nsubjects)) { id <- id + 1 kid <- paste(id,"/",nid,sep="") ident <- c(nFactors=nFactors[i], loadings=loadings[j], unique=unique[k], quantile=quantile, pmjc=pmjc[l], nsubjects=nsubjects[m], var=var[n], reppar=reppar, repsim=repsim, id=kid, model=model) if (trace == TRUE) print(ident) fStruct <- generateStructure(var=var[n], mjc=nFactors[i], pmjc=pmjc[l], loadings=loadings[j], unique=unique[k]) fSim <- structureSim(fload=as.matrix(fStruct), reppar=reppar, repsim=repsim, details=FALSE, all=all, N=nsubjects[m], quantile=quantile, model=model, r2limen=r2limen)[[2]][stats,] if (length(stats) == 1) { fSim <- data.frame(var=var[n], nsubjects=nsubjects[m], nfactors=nFactors[i], pmjc=pmjc[l], loadings=loadings[j], unique=unique[k], t(fSim), repsim=repsim, reppar=reppar) } if (length(stats) > 1) { ls <- length(stats) info <- data.frame(stats =rownames(fSim), id =rep(id, ls), var =rep(var[n], ls), nsubjects=rep(nsubjects[m], ls), nfactors=rep(nFactors[i], ls), pmjc =rep(pmjc[l], ls), loadings=rep(loadings[j], ls), unique =rep(unique[k], ls), repsim =rep(repsim, ls), reppar =rep(reppar, ls)) fSim <- data.frame(info, fSim) } result <- rbind(result, fSim) rownames(result) <- 1:dim(result)[1] fString <- paste("RES_", paste(ident,"_", sep="", collapse=""), sep="") # if (!is.na(dir)) save("fSim", file=paste(dirPack, fString,".Rdata", sep="")) # Old erroneous code if (!is.na(dir)) save("fSim", file=paste(dir, fString,".Rdata", sep="")) }}}}}} return(result) } nFactors/R/plotParallel.R0000644000175100001440000000326111250203656015030 0ustar hornikusers"plotParallel" <- function(parallel, eig = NA, x = eig, model = "components", legend = TRUE, ylab = "Eigenvalues", xlab = "Components", main = "Parallel Analysis", ... ) { if (any(!is.na(x))) eig <- eigenComputes(x, ...) if (!inherits(parallel, "parallel")) stop("Method is only for parallel objects") if (model == "factors") xlab <- "Factors" var <- length(parallel$eigen$qevpea) if (length(eig) == 1) { Component <- var:1 Location <- seq(from = 0, to = max(parallel$eigen$qevpea)*3, length.out = var) plot.default(as.numeric(Component), as.numeric(Location), type = "n", main = main, xlab = xlab, ylab = ylab) } if (length(eig) > 1) {plotuScree(eig, main = main, xlab = xlab, ylab = ylab) } lines(1:var, parallel$eigen$qevpea , col = "green", type = "p", pch = 2) lines(1:var, parallel$eigen$mevpea, col = "red") if (legend == TRUE) { if (length(eig) == 1) { leg <- c("Mean Eigenvalues", "Centiles of the Eigenvalues") tco <- c("red", "green") co <- c("red", "green") pc <- c(NA, 2) } if (length(eig) > 1) { leg <- c("Eigenvalues", "Mean Eigenvalues", "Centiles of the Eigenvalues") tco <- c("black", "red", "green") co <- c("black", "red", "green") pc <- c(1, NA, 2) } legend("topright", legend = leg, text.col = tco, col = co, pch = pc ) } } nFactors/R/plotnScree.R0000644000175100001440000000457211252407156014524 0ustar hornikusers"plotnScree" <- function (nScree, legend = TRUE, ylab = "Eigenvalues", xlab = "Components", main = "Non Graphical Solutions to Scree Test") { if (!inherits(nScree, "nScree")) stop("Method is only for nScree objects") #if (!exists("legend", mode="logical") ) legend <- TRUE # To develop #if (!exists("ylab")) ylab <- "Eigenvalues" # To develop #if (!exists("xlab")) xlab <- "Components" # To develop #if (!exists("main")) main <- "Non Graphical Solutions to Scree Test" # To develop if (nScree$Model == "components") nkaiser = "Eigenvalues (>mean = " else nkaiser = "Eigenvalues (>0 = " if (nScree$Model == "factors") xlab = "Factors" par(col = 1, pch = 1) # Color and symbol for usual scree par(mfrow = c(1,1)) eig <- nScree$Analysis$Eigenvalues k <- 1:length(eig) #plotuScree(x=eig, ...) # To develop plotuScree(x=eig, main=main, xlab=xlab, ylab=ylab) nk <- length(eig) noc <- nScree$Components$noc vp.p <- lm(eig[c(noc+1,nk)] ~ k[c(noc+1,nk)]) x <- sum(c(1,1) * coef(vp.p)) y <- sum(c(1,nk)* coef(vp.p)) par(col = 10) # Color for optimal coordinates lines(k[c(1,nk)],c(x,y)) par(col = 11,pch=2) # Color and symbol for parallel analysis lines(1:nk, nScree$Analysis$Par.Analysis, type = "b") if (legend == TRUE) { leg.txt <- c(paste(nkaiser,nScree$Components$nkaiser,")"), c(paste("Parallel Analysis (n = ",nScree$Components$nparallel,")")), c(paste("Optimal Coordinates (n = ",nScree$Components$noc,")")), c(paste("Acceleration Factor (n = ",nScree$Components$naf,")")) ) legend("topright", legend = leg.txt, pch = c(1,2,NA,NA), text.col = c(1,3,2,4), col = c(1,3,2,4) ) } naf <- nScree$Components$naf text(x = noc , y = eig[noc], label = " (OC)", cex = .70, adj = c(0,0), col = 2) text(x = naf + 1, y = eig[naf + 1], label = " (AF)", cex = .70, adj = c(0,0), col = 4) } nFactors/R/plotuScree.R0000644000175100001440000000124111252310100014477 0ustar hornikusers"plotuScree" <- function(Eigenvalue, x=Eigenvalue, model = "components", ylab = "Eigenvalues", xlab = "Components", main = "Scree Plot" , ...) { Eigenvalue <- eigenComputes(x, ...) if (!inherits(Eigenvalue, "numeric")) stop("use only with \"numeric\" objects") if (model == "factors") xlab <- "Factors" par(mfrow = c(1,1)) nk <- length(Eigenvalue) Component <- 1:nk plot.default(as.numeric(Component), as.numeric(Eigenvalue), type = 'b',col = "black", pch = 1, ylab = ylab, xlab = xlab, main = main ) } nFactors/R/nMreg.r0000644000175100001440000000352511254133474013514 0ustar hornikusersnMreg <- function(x, cor=TRUE, model="components", details=TRUE, ...) { x <- eigenComputes(x, cor=cor, model=model, ...) nlength <- 3 detail <- NULL n <- length(x) if (n < 6) stop("The number of variables must be at least 6.") i <- 1 mreg <- tmreg <- tmreg2 <-pmreg <- numeric(n-5) while (i <= (length(x)-5)) { xa <- c(1:(i+2)) ya <- x[1:(i+2)] ma <- lm(ya ~ xa) Syx.a <- sd(ya)*sqrt((1-summary(ma)$r.squared) * ((length(ya)-1)/(length(ya)-2))) # Howell(2008, p. 253) compa <- ma$coef[2] seCompa <- summary(ma)$coef[2,2] xb <- c((i+1+nlength):length(x)) yb <- x[(i+1+nlength):length(x)] mb <- lm(yb ~ xb) Syx.b <- sd(yb)*sqrt((1-summary(mb)$r.squared) * ((length(yb)-1)/(length(yb)-2))) # Howell(2008, p. 253) compb <- mb$coef[2] seCompb <- summary(mb)$coef[2,2] mreg[i] <- compb - compa semreg <- sqrt((Syx.a^2)/((length(xa)-1)*sd(xa)^2) + (Syx.b^2)/((length(xb)-1)*sd(xb)^2)) # Se_dif_b -> Howell(2008, p. 259, 266) tmreg[i] <- (compb - compa)/(semreg) tmreg2[i] <- (mreg[i])/sqrt(seCompa^2 + seCompb^2) # Il semble, selon moi, qu'il y aurait une erreur dans la formule de Zoski et Just. Et ce serait la bonne formul, comme celle plu shaut, mais plus rapide de calcul. pmreg[i] <- pt(tmreg[i],(length(xa)-1) + (length(xb)-1) - 4, lower=FALSE, log=TRUE) i <- i + 1 } if (details == TRUE) detail <- data.frame(v=(1:(n-5)),values=x[1:(n-5)], mreg=mreg, tmreg=tmreg, pmreg=pmreg) mreg <- as.numeric(which(mreg ==max( mreg, na.rm=TRUE)) + nlength) tmreg <- as.numeric(which(tmreg==max(tmreg, na.rm=TRUE))) pmreg <- as.numeric(which(pmreg==min(pmreg, na.rm=TRUE))) res <- list(detail=detail, nFactors=c(b=mreg,t.p=tmreg,p.b=pmreg)) class(res) <- c("nFactors","list") return(res) }nFactors/R/componentAxis.r0000644000175100001440000000132611142610726015264 0ustar hornikusers"componentAxis" <- function(R, nFactors=2) { nVar <- dim(R)[2] acp <- principalComponents(R) values <- acp$values[(1:nFactors)] varExplained <- round((values/nVar)*100, 2) cumVarExplained <- round(cumsum(varExplained), 2) loadings <- acp$vectors[,(1:nFactors)] %*% diag(values^0.5) # F1 * diag(E) communalities <- apply(loadings*loadings,1,sum) apa <- list(values = values, varExplained = varExplained, cumVarExplained = cumVarExplained, loadings = loadings, communalities = communalities) return(apa) } nFactors/R/nCng.r0000644000175100001440000000152711254132160013320 0ustar hornikusersnCng <- function(x, cor=TRUE, model="components", details=TRUE, ...) { x <- eigenComputes(x, cor=cor, model=model, ...) detail <- NULL nlength <- 2 n <- length(x) if (n < 6) stop("The number of variables must be at least 6.") i <- 1 cng <- numeric(n-5) while ((i+2*nlength+1) <= n) { xa <- c(i:(i+nlength)) ya <- x[i:(i+nlength)] compa <- lm(ya ~ xa)$coef[2] xb <- c((i+1+nlength):(i+2*nlength+1)) yb <- x[(i+1+nlength):(i+1+2*nlength)] compb <- lm(yb ~ xb)$coef[2] cng[i] <- compb - compa i <- i + 1 } if (details == TRUE) detail <- data.frame(v=(1:(n-5)),values=x[1:(n-5)], cng) cng <- as.numeric(which(cng==max(cng, na.rm=TRUE))+nlength) res <- list(detail=detail, nFactors=c(cng)) class(res) <- c("nFactors","list") return(res) } nFactors/R/principalComponents.r0000644000175100001440000000121211142617340016455 0ustar hornikusers"principalComponents" <- function(R) { nVar <- dim(R)[2] acp <- eigen(R) values <- acp$values vectors <- acp$vectors # Normed vecteurs to 1 varExplained <- round((values/nVar)*100, 2) cumVarExplained <- round(cumsum(varExplained), 2) loadings <- vectors %*% diag(values^0.5) # F1 * diag(E) acp <- list(values = values, varExplained = varExplained, cumVarExplained = cumVarExplained, vectors = vectors, loadings = loadings) return(acp) } nFactors/R/principalAxis.r0000644000175100001440000000116411244114606015242 0ustar hornikusers"principalAxis" <- function(R, nFactors=2, communalities="component") { if (communalities == "component") diag(R) <- componentAxis(R)$communalities if (communalities == "maxr") { RT <- R; diag(RT) <- 0; diag(R) <- apply(RT, 1, max)} if (communalities == "ginv") diag(R) <- sqrt(1-1/diag(ginv(R))) if (communalities == "multiple") { if (all(eigen(R)$values > 0)) diag(R) <- sqrt(1-1/diag(solve(R))) # Gorsuch (1983, p. 106) else return("Not all eigenvalues are greater than 0") # Verication of positive definiteness } apa <- componentAxis(R, nFactors) return(apa) } nFactors/R/eigenFrom.r0000644000175100001440000000155711252560746014366 0ustar hornikuserseigenFrom <- function(x) { classType <- class(x) res <- switch (classType, data.frame = "data", matrix = "correlation", numeric = "eigenvalues", stop("Not a data.frame, a matrix, or a numeric vector") ) switch (res, data = if (dim(x)[2] <= 2) stop("At least 3 variables must be supplied"), correlation = if (dim(x)[2] <= 2) stop("At least 3 variables must be supplied"), eigenvalues = if (length(x) <= 2) stop("A vector of 3 eigenvalues or more must be supplied") ) if (res == "correlation") if (any(x[lower.tri(x)] != t(x)[lower.tri(t(x))])) { stop("A correlation/covariance matrix must be symetric, empirical data must come from a data.frame, or eigenvalues must directly come from a vector. Verify the documentation about the eigenFrom function.") } invisible(res) } nFactors/R/structureSimObjectMethods.r0000644000175100001440000000675711254155220017633 0ustar hornikusers## ................................................................. summary.structureSim <- function(object, index=c(1:15), eigenSelect=NULL, ...) { if (!is.structureSim(object)) stop("Not a structureSim object") if (is.null(eigenSelect)) eigenSelect <- c(1:dim(object$details$eigenvalues)[2]) cat("Report For a structureSim Class \n\n") NextMethod() cat(paste("Simulated eigenvalues","\n\n")) object$details$eigenvalues <- round(object$details$eigenvalues[,eigenSelect], ...) colnames(object$details$eigenvalues) <- paste("E",eigenSelect,sep="") print(object$details$eigenvalues) cat(paste("\n\n Number of factors retained by each index for each simulation","\n\n")) object$details$components <- round(object$details$components[,index], ...) print(object$details$components) } # summary(mzwick, index=1:5, eigenSelect=1:10, digits=2) # summary.structureSim(x) # summary(x) ## ................................................................. ## ................................................................. print.structureSim <- function(x, index=NULL, ...) { if (!is.structureSim(x)) stop("Not a structureSim object") if (is.null(index)) index <- c(1:dim(x$nFactors)[2]) res <- x$nFactors[,index] print(res, ...) } # print(mzwick, index=c(1:13), 2) # print.structureSim(x) # print(x) ## ................................................................. ## ................................................................. boxplot.structureSim <- function(x, nFactors=NULL, eigenSelect=NULL, vLine="green", xlab="Factors", ylab="Eigenvalues", main="Eigen Box Plot", ...) { if (!is.structureSim(x)) stop("Not a structureSim object") if (is.null(eigenSelect)) eigenSelect <- c(1:dim(x$details$eigenvalues)[2]) boxplot(x$details$eigenvalues[,eigenSelect], xlab=xlab, ylab=ylab, main=main, ...) abline(v=nFactors, lty=2, col=vLine) } # boxplot(mzwick, nFactors=3, eigenSelect=1:5, vLine="blue", col="red") # boxplot.structureSim(x) # boxplot(x) ## ................................................................. ## ................................................................. plot.structureSim <- function(x, nFactors=NULL, index=NULL, main="Index Acuracy Plot", ...) { if (!is.structureSim(x)) stop("Not a structureSim object") if (is.null(index)) index <- c(1:dim(x$details$components)[2]) if (!exists("col") == TRUE) col <- "black" ylab <- "Average Number of Factors Retained" tx <- t(x[[2]][,index]) tx <- data.frame(Index=rownames(tx),tx) colnames(tx)[2] <- "Mean" tx <- tx[order(tx[,1]),] plot(Mean ~ Index, type="n", data=tx, main=main, ...) #plot(Mean ~ Index, data=tx, cex.lab=1, cex.axis=0.7, type="n", ylab=ylab) abline(h=nFactors, ...) abline(h=median(tx[2,], na.rm=TRUE), lty=2, col="black") for (i in 1:length(tx[,2])) lines(y=c(0,tx[i,2]), x=c(i,i), lty=2) } # plot.structureSim(x=mzwick, nFactors=3, index=c(1:10), cex.axis=0.7, col="red") # plot.structureSim(x) # plot(x) ## ................................................................. ## ................................................................. is.structureSim <- function(object) { if (class(object) == "structureSim") return(TRUE) else return(FALSE) } # is.structureSim(mzwick) # is.structureSim(x) ## .................................................................nFactors/R/eigenBootParallel.r0000644000175100001440000000256411251057072016032 0ustar hornikusers"eigenBootParallel" <- function(x, quantile=0.95, nboot=30, option="permutation", cor=TRUE, model="components", ...) { if (eigenFrom(x) != "data") stop("Only data from a data.frame must be used as input") x <- data.frame(x) res <- data.frame(matrix(NA, ncol=dim(x)[2], nrow=nboot)) if (model == "components") { names(res) <- paste("C", 1:dim(x)[2], sep="") } else names(res) <- paste("F", 1:dim(x)[2], sep="") if (option == "permutation") { for (i in 1:nboot) { rPerm <- apply(x,2,sample, replace=TRUE) if (cor == TRUE) corY <- cor(rPerm, ...) if (cor == FALSE) corY <- cov(rPerm, ...) if (model == "factors") corY <- corFA(corY, method="ginv") res[i,] <- eigen(corY, only.values=TRUE)$values } } if (option == "bootstrap") { for (i in 1:nboot) { rBoot <- sample(1:dim(x)[1], dim(x)[1], replace=TRUE) if (cor == TRUE) corY <- cor(x[rBoot,], ...) if (cor == FALSE) corY <- cov(x[rBoot,], ...) if (model == "factors") corY <- corFA(corY, method="ginv") res[i,] <- eigen(corY, only.values=TRUE)$values #if (cor == TRUE) res[i,] <- eigen(cor(x[rBoot,], ...), only.values=TRUE)$values #if (cor == FALSE) res[i,] <- eigen(cov(x[rBoot,], ...), only.values=TRUE)$values } } res <- data.frame(t(moreStats(res, quantile=quantile))) return(res) } nFactors/R/iterativePrincipalAxis.r0000644000175100001440000000245211244114614017117 0ustar hornikusersiterativePrincipalAxis <- function(R, nFactors=2, communalities="component", iterations=20, tolerance=0.001) { if (communalities == "component") diag(R) <- componentAxis(R)$communalities if (communalities == "maxr") { RT <- R; diag(RT) <- 0; diag(R) <- apply(RT, 1, max)} if (communalities == "ginv") diag(R) <- sqrt(1-1/diag(ginv(R))) if (communalities == "multiple") { if (all(eigen(R)$values > 0)) diag(R) <- sqrt(1-1/diag(solve(R))) # Gorsuch (1983, p. 106) else return("Not all eigenvalues are grater than 0") # Verication of positive definiteness } iter <- 1; tol <- 1 while ((iter < iterations) && (tol > tolerance)) { # for (i in (1:iterations)) oldR <- diag(R) diag(R) <- componentAxis(R, nFactors)$communalities tol <- max(abs(diag(R) - oldR)) iter <- iter + 1 } if (tol > tolerance) warning("Maximum number of iterations needed before the desired tolerance: cautious solution.") iapa <- componentAxis(R, nFactors) iapa <- list(values = iapa$values, varExplained = iapa$varExplained, cumVarExplained = iapa$cumVarExplained, loadings = iapa$loadings, iterations = iter, tolerance = tol) return(iapa) } nFactors/R/corFA.r0000644000175100001440000000020011250221334013406 0ustar hornikusers"corFA" <- function(R, method="ginv") { R <- as.matrix(R) if (method == "ginv") return(R - ginv(diag(diag(ginv(R))))) } nFactors/R/moreStats.r0000644000175100001440000000142511673410252014417 0ustar hornikusersmoreStats <- function(x, quantile=0.95, show=FALSE) { cent <- quantile # The old parameter was labeled cent x <- data.frame(x) xMean <- sapply(x, mean) # mean(x) xSd <- sapply(x, sd) # sd(x) xMin <- xMax <- xMedian <- xQuantile <- numeric(ncol(x)) for (i in 1:ncol(x)) { xMin[i] <- min(x[,i]) xMax[i] <- max(x[,i]) xMedian[i] <- median(x[,i]) xQuantile[i] <- quantile(x[,i],probs=cent,names=FALSE, na.rm=TRUE) # quantile(rnorm(1000),probs=cent) } names <- colnames(x) results <- rbind(mean=xMean, median=xMedian, quantile=xQuantile, sd=xSd, min=xMin, max=xMax) if (show==TRUE) { cat("------------------------ \n") cat("Quantile specified:", cent, "\n") cat("------------------------ \n") } return(results) } nFactors/R/diagReplace.r0000644000175100001440000000065111142624334014635 0ustar hornikusersdiagReplace <- function(R, upper=TRUE) { RT <- R if (upper == TRUE) { Rtranspose <- t(RT) # Replacing upper diagonal with lower diagonal RT[upper.tri(RT)] <- Rtranspose[upper.tri(Rtranspose)] return(RT) } if (upper == FALSE) { Rtranspose <- t(RT) # Replacing lower diagonal with upper diagonal RT[lower.tri(RT)] <- Rtranspose[lower.tri(Rtranspose)] return(RT) } } nFactors/R/nScreeObjectMethods.r0000644000175100001440000000226511254135040016325 0ustar hornikusers## ................................................................. summary.nScree <- function(object, ...) { if (!is.nScree(object)) stop("Not a nScree object") cat("Report For a nScree Class \n\n") #digits <- 2 NextMethod() cat(paste("Details:",object$Model,"\n\n")) object$Analysis[,c(1:5,7)] <- round(object$Analysis[,c(1:5,7)], ...) print(object[[2]]) cat(paste("\n\n Number of factors retained by index","\n\n")) print(object[[1]]) } ## ................................................................. ## ................................................................. print.nScree <- function(x, ...) { res <- x[[1]] print(res, ...) } ## ................................................................. ## ................................................................. plot.nScree <- function(x, ...) { plotnScree(x, ...) } ## ................................................................. ## ................................................................. is.nScree <- function(object) { if (class(object) == "nScree") return(TRUE) else return(FALSE) } ## ................................................................. nFactors/R/structureSim.r0000644000175100001440000000563411263216052015152 0ustar hornikusersstructureSim <- function(fload, reppar=30, repsim=100, N, quantile=0.95, model="components", adequacy=FALSE, details=TRUE, r2limen=0.75, all=FALSE) { simulation <- sim.structure(fx=fload, n=N, raw=TRUE) if (adequacy == TRUE) print(factanal(covmat=simulation$model, factors=dim(fload)[2])) # Verification of the adequacy of the model eigenvalues <- eigenComputes(simulation$r, cor=TRUE, model=model) variables <- length(eigenvalues) # Compute the number of variables aparallel <- parallel(var=dim(fload)[1],subject=N,rep=reppar,cent=quantile,model=model)$eigen$qevpea # The percentile components <- matrix(NA, ncol=15,nrow=repsim) analysis <- NA values <- matrix(NA, ncol=length(eigenvalues),nrow=repsim) for (i in 1:repsim) { simulation <- sim.structure(fx=fload, n=N, raw=TRUE) aparallel <- parallel(var=dim(fload)[1],subject=N,rep=reppar,cent=quantile,model=model)$eigen$qevpea eigenvalues <- eigenComputes(simulation$r, cor=TRUE, model=model) values[i,] <- eigenvalues results <- nScree(x=eigenvalues,aparallel = aparallel, cor=TRUE, model=model) components[i,(1:4)] <- t(results$Components) ### PERMUTATIONS if (eigenFrom(data.frame(simulation$observed)) == "data") { permutation <- eigenBootParallel(x=data.frame(simulation$observed), quantile=quantile, model=model)$quantile } results <- nScree(x=eigenvalues,aparallel = permutation, cor=TRUE, model=model) components[i, 5] <- results$Components$nparallel ### ... components[i, 6] <- nCng(x=eigenvalues, model=model)$nFactors components[i, (7:9)] <- nMreg(x=eigenvalues, model=model)$nFactors components[i, (10:11)] <- nSeScree(x=eigenvalues, model=model, r2limen=r2limen)$nFactors if (model == "components") { components[i, (12:14)] <- nBartlett(x=eigenvalues, N=N, alpha=1-quantile, cor=TRUE, correction=TRUE)$nFactors if (all == TRUE) { cat(paste("-- repsim = ", i, "/",repsim,"\n", sep="")) components[i, (15)] <- nBentler(x=eigenvalues, N=N, alpha=1-quantile, cor=TRUE)$nFactors } } # analysis <- rbind(analysis, results$Analysis) #components[2,] <- t(results$Components);components } names <- colnames(results$Components) names <- c("oc", "af", "par", "mean.eig", "per") components <- data.frame(components) colnames(components) <- c(names,"cng","b","t.b","p.b","sescree","R2","Bartlett","Anderson","Lawley","Bentler") if (details == TRUE) analysis <- list(components=components, eigenvalues=values) if (repsim > 1) components <- moreStats(components, quantile=quantile) else components <- NA res <- list(details=analysis, nFactors=components) class(res) <- 'structureSim' return(res) } ## LIGNE 21 MODIFIEE: ETAIT quantile=0.95 ## LIGNE 42 MODIFIEE: EAIT c("oc", "af", "par", "per", "mean.eig")nFactors/MD50000644000175100001440000000702613532443753012375 0ustar hornikusersfcf8ca340956f268468a0db5cda666c8 *DESCRIPTION 96f663ae7aa55e0539ff9afe9e479609 *NAMESPACE 4344dcf1f93ff487b6ae039fc0104a98 *NEWS 1d8ebb87b865d1b679fcf02a2bcab8ea *R/bentlerParameters.r e0dace37cf5fa0b1c84927b3ed0c2902 *R/componentAxis.r 267dca6cc1ba296e53b655ce5cd04d74 *R/corFA.r 4890b5c174c07d71dadd6fcf6c09667d *R/diagReplace.r a636930be5c8023007fcfcc7bf81e365 *R/eigenBootParallel.r b3766379633eb3ab8746e913ca43e7b8 *R/eigenComputes.r feb84e9e6d8cdf3736a42a05fba067e1 *R/eigenFrom.r cb63f4ac57b52b879a48da0f9fda3e5c *R/generateStructure.r 49d8c9ac74c27fb57fca58c8bacd1467 *R/iterativePrincipalAxis.r f0f7e4bb0e2f068e92a2c42697268be1 *R/makeCor.r bfbb3f5c5c1f96c033af28a5b9e48982 *R/moreStats.r fefe02f4e00a0bc91e88c13c2efe6118 *R/nBartlett.r 908d39259816ca6b1bce0db396add949 *R/nBentler.r bc95cb1c29d3f8c4211e5b48a3feaca0 *R/nCng.r d4a117058bcd0f01e9a9ea5969eb34c5 *R/nFactorsObjectMethods.r 779f3ecd4bbb942aaf8a7d242b99c61c *R/nMreg.r de7fe0715d90b855d82d98376ef72532 *R/nScree.R a626001ab56b0d27e90b1a43717b4bb2 *R/nScreeObjectMethods.r 42e3a546e1a08e72c41b8675bec26ec7 *R/nSeScree.r bbee17d658d3627e8f6c01a4fbc62140 *R/parallel.R bb70145bdebe242d84d69c0f05bc57dd *R/plotParallel.R fe920f39153be1a462548813781aebc4 *R/plotnScree.R 63a5949e29876b458a1c12e14e01c68f *R/plotuScree.R a4a2395fca644f2dd720b34a97f1fdc5 *R/principalAxis.r a529f0dfd9461640ae75f41383ffd8cc *R/principalComponents.r d32b25f885e78c9f1ceda8d0009b9c97 *R/rRecovery.r cf9e49b4efe0c85abc00e81d27860480 *R/structureSim.r 0eba153dcca9789d3d81bce25a06debc *R/structureSimObjectMethods.r e668d7ce864061c3050ce2987e6a8b1d *R/studySim.r 62e10a87b133ff96b95c0de43c7a3ad6 *TODO dfeb8fdce2bc86473efde1dd747e4670 *data/dFactors.rda 213804be48ab54c08e1ed0c9ff4d3825 *inst/CITATION 4e27d34d6964e7731972d93c08f74ce8 *inst/doc/nFactors-manual.pdf 908105f0d74e61d86f5bdd545aae48f0 *inst/doc/nFactorsExample01.pdf d49bfae8f976af7e9b404032cf2c0e36 *man/bentlerParameters.rd 0a342a6a12a3ccfae0250551635430f8 *man/componentAxis.rd 346522f3ec3b40aee767cafc19b5648a *man/corFA.rd 7688c885c878ec91e0a6774b3fded473 *man/dFactors.Rd 390e3377d2206b0204f795d6c034a01a *man/diagReplace.rd a6b30a866f9a4471a85658b465740ae3 *man/eigenBootParallel.rd 8170405431b87e1c3c765acf33f90a98 *man/eigenComputes.rd da8863a01a4b4c236c9f017c2f66b235 *man/eigenFrom.rd bacc3956b813a6df57e015757dfc2fc3 *man/generateStructure.rd 0ba39faab6f427a1a2ba770a23ce6519 *man/iterativePrincipalAxis.rd 96f5f15cc89111d36b8075bcd146afc0 *man/makeCor.rd 03fc6a34f331ef805edf9b048f9b2b35 *man/moreStats.rd e7d155a2d3c097e649004118d7bbb6fb *man/nBartlett.rd 5b9b1541921dc920667834acf7a0f216 *man/nBentler.rd e0ab73250cd2b51c79e09f44c2b893f3 *man/nCng.rd 1772f659602ede88f7d944e401c92ec7 *man/nFactors-package.rd dee5e20641c4895cae41e006f54cf740 *man/nFactors-parameters.rd ca5d45ebc210a3a3f5f208a9e9bd7938 *man/nFactorsObjectMethods.rd 58d383e0be22feb24a1b32f507707924 *man/nMreg.rd addc7eb67c48d69cfe8cd1c16a668fbd *man/nScree.Rd ac96ca836406a16db58a6ecdb3804488 *man/nScreeObjectMethods.rd 157edc4d33d3914036ca0ec26283487a *man/nSeScree.rd 13e5923c1e796404396321d01b1b8b44 *man/parallel.Rd 83428644f728688cc11b5e93d3fbdd1f *man/plotParallel.Rd 21646e3e705899a69f3af69e47c21b4f *man/plotnScree.Rd 8f3af1764650fb0e041debb3420d29d7 *man/plotuScree.Rd 39f2f9e67878b1be2c0293c33fb96d39 *man/principalAxis.rd eab9f721a8e3678e9a4d88bdd8b4fe82 *man/principalComponents.rd 46c87f21c04ef1f70e04dc7a4a1796a8 *man/rRecovery.rd 85c2828139a9ad859de4f7d4cb03c874 *man/structureSim.rd 79786c4dec56d8be18f8a2e28fa02083 *man/structureSimObjectMethods.rd 93d4aee4156383c7689f800f7a6c33ac *man/studySim.rd nFactors/inst/0000755000175100001440000000000011673637537013046 5ustar hornikusersnFactors/inst/doc/0000755000175100001440000000000011673405056013600 5ustar hornikusersnFactors/inst/doc/nFactorsExample01.pdf0000644000175100001440000016440711674072717017550 0ustar hornikusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 2200 /Filter /FlateDecode /N 46 /First 346 >> stream xYr7}߯[qTtŖtÈP$:~elÖHh4ݧL2ä2-$s(2ey.cRLK&% J3XIuB^B7KPLR$''k.jS27uRTi9SB&{7<oguOdIeTy2ym._ǹfsn>7os|qz0-s#7vv}qvsw 7&ɏ39]+2Y&ceJ&.cףK_#=a[/UC+G+4[7Ea˧s#6R-6wRׁƞa!1˶av<-N`NVBJ `zvg8H!bQA٫Ŭ>~,겗3b-ޯ;B]x.V*v!!0:UpR~ɻr4)Iւu#^+ ;xvkG{[þny[NOnN94NKGe鬉/,scY tmtJT 鑏z#Vcl$Q)?7RKpZ ͜ ٮP,֭\Abަ$FP[ӌM l mˌ<ұ(̒3&RC<V=:`p'̡ lK#>tcQۊ5/aGs@t8~GFb8-q[鼺vK9a;݂,'2Cl¯őgme ,~˻'3]@#&7|@[>OA1%Q|r't 7uMI1-}'a̫#T=y=W1e"ª#uG>"7qˈAFdMYVF>l?lOM1ǕKyDv:99=̪X7wk_d.-V| zJ&0EZ >yBY}'aY{lr@ l@RVW.t={uLM=-#!2Ұ`{<#E7U? zF0z0XqZwa3_> stream xXK4ѩ{m8@,̄GY+[RSoV^5BUV] mzQ"3^֋ߒR%oKxiO~\%o`#=l/Z[U/ЈmTTՊ6nebZUrOH\d*[\n7v23W ΉȢ[Y]LU2tB),~X(ӽq\O<`]%xPq̈v,k9dA{|3v'n+وG=Ft[iq2kkF*Y\") j|=L8;sD@5ld9N!n<61\N»M4ȞTY"1k+v‘?[d#)zOLm2֡ɫLյ(Qk0Pށп,AAݡ~6=S ڕ7$s>lnlF' ϚĚ 00Xg C ul(lA$D#uizDu;ɳyc "Q5~:v\a{٬,\,8?D66= .1y"3Jg͜ADEۅkLB4k'6hHNjb(0F@iydDpL;)/[եFN{}p*M ms Qߍpb7'KļG*&X >Pez|1FpKSx_%I9SJK{t>ex֟8Y `s3 cc AC2FƏ1a_7|ڠL&Tȶx|Su3s<>EsÎ4N!Oاps@Uʱ2ɶ!h3*~CBe Kj+8\!T+3MFՐ:n|."$Еā)'v|P: r4'W! ˹= c bYgvTQFc d3O{ZCITySI ΎjD'6ӽpp] q'XbVeڻC 'r4mtD&!o e̒:طEݣ,4y0t1tȲeI 6R26Q K1(1`= %̓܅Z?pSK#y5Rn|uaGDžj/)-y׈&$; iRS*S@;k3rҫ7Wخendstream endobj 49 0 obj << /Filter /FlateDecode /Length 790 >> stream xV=o0+N3")Q,E:fmqkK#I}ȣDn2gӺw_gN.URGm$."\,5{A k&>]ʸL(qN`oc+g(ʸz k6KL} ʄ bkroˢA*HR7 [l0z&xi(ֶ c_nC,s{2gR$"8\2 ˌԡK}zJ*W Xԛo6vXϓøh9۩=n7kM;DYIJ=.fmlɸPRݾ jvk@+Y:S(PA0Drg`_Pp,p 䁚Sa'DatTŰGC'{:,]Lh5[[깵?}Xur[t6՝u4't1AISPG,I7^\|賘ܛOdܒw7CܟdV+m\Bͨ!gt|ӓbQ/ @[*/s<_f`$V2,r#]J,U/u#_{p&ԜS~v M#% 4p.ݘ!K-eгo^{KwܲfaК!Vd-> stream xVKs6 WH|=v=쭭o=(i %*Ɨ2!<qBXbhEAimE_}V6/6 g`pUuf/H*^@J;G$Do=`{vjIvȝޒ-y@q;5>g/:ENé0@f֟7W6ǗVney[S6-B@d`z]pIz"I1k;/m*xb4OUMP À=$ee"xE3v5GTGئN$RLb*cyQJ!qږ>XtD bV45 Eƅ$x})e oάeCf Uef0FA˽`t7Z!vW"}fjuЈyyX+񻘫YVvwㅱKqxK?tz.[vnC٭ΐQ̗,ˎ{> stream xYKo6rZYoJEs z(fsrrZg}8+q;%J+i"ڢ3rMfu&tΜ5Ie*/?^y}Rׇ-L8\H7=kO6 <&(My(w~ϒ{X>Ú(+pl.>,BBk/XaH۠Vj~ Ԡ0WͯمEex}W{~@l(Y-Q?}^ru8z8;밝^H*p` NS׀oK{؃L#yFI.XTe?4LJ1p&9_ kgd\]{`.$ˤPX N_sn Dq߉8E$/Fv% z`ҞAB$eiR!Yvڐ /a-ћ Ɵ$q9`:]ri&<<ӒBʬ.?lDSE}ƥL DW'_4f:ɔsA gCCs pV˯:yv:`Bkdoi,F<Ӹi;*?c4AxO3Li 8u^4U4~3NR5w~Vؖf5=0~*T*e9\33?u6( ؗQ- ĝFwm_v]7U)б2tcgᛢ}Lq1I \KC5 !PPg]1*.BӁPmǮoC ȠPϑ{+0( VOQQ|5E@iQO]kھߙ@݋gK'?4JYu¥ݎCx< ҆v++tE's$W(#] X"sS\9]Nk}-mrs@+Khr@,R 7BV}U *s2]OUh+X}uɴJxbBZqkL4#)S`Zr wչSu#ӮO8b"jznb~芇(,SR?--DY Iw(Z _ Eh/#_%X \{qAaFx"f"unڼ}q p0R pk[A4IKۦH䧍-pa?:R"@z,N1Dendstream endobj 52 0 obj << /Filter /FlateDecode /Length 1146 >> stream xWK60rI==$AHNE[ӃVbdXv_yQlm7)z܃%qf8o?lg\IVzLڬ8Uƫn{]o"Z#<+ O8t.'[oLpGYc,c;d w4h& P?Hcuf^W&wH-*}3l6:Ry[<0$(1QP#;"yHqh X9p-6z@ܢ% *z Z| _C.~hiX&y=P`oވʷ sC8`̛  ԥfc1&9\T' qō;f S(\~?{NT}Tm, :y!aU8灙KѲjq}UM)b-8>2^(A$AQȬa>Jyt0ubEIA61znc`lL gtWb1;<2gfc:yoCF g}TԌ >,a"CNbp 0I3'UL~#_HJ7Ze6J-e'Jw`2%sCC/`e؅;v(1bjGZeFT߱/'/pL\̧ mҖibp|VX#3Ϝ[ASj/FB]Sgd: y (|:g s;NNRDŽ`x=2AGV85q dcŏQ.:/,U0pϜ^mb@@50 ~}g̮{JERŅ墄uSSEU\ѐ3TtK1_Amm-R;6 {ͬ. R?<~""{:L_Ļa$Jw1֟|u/.#%Q5G΃%l)= OK: Eވ3XyCܯtxug9!7+[ cl? ~,^9ǔnUR]kuN៚W\.0cIendstream endobj 53 0 obj << /BBox [ 0 0 432 432 ] /FormType 1 /PTEX.FileName (nFactorsExample01-004.pdf) /PTEX.InfoDict 20 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << >> /Font << /F2 21 0 R /F3 22 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 2378 /Filter /FlateDecode >> stream xYn6+a9hm  td8N@v'@ۿ/wx;\!aͲ퍜pVF<ވ}RJ(c'39XqIN*,t:H篝fto %wJ`;`qSN1Z??)y(ؖ=NvF3r$[(d|1cӫ$2RXmF9 ydTJhnAkMpn{P굚|ݑ;<(_̘8iC]M0 ,Yiՠ (GӃ:; wxP871qgkuk.>B6k@s<L&|Mpj0aQA.(385U~MXX=!sY#4j47ӨQ:|Mpn{CXYǃŹ3EI2M߂,Yi9&8`5p~?x>6$cӃŹ9)C dcR_dKBY#$j,7Ө~P4!Ak`OB6k@s<C!GӃՠWaeA$/fLqk0=نC;peDmրyZ5'Ehz.|Tx'q/fLq|<cU@&)} ;dhBNš`X[#cHȸx^5{ cGB#W`<Lje^1u8nxuy'ή>O/!ߓ:t#};ơwNZ|wsu/ongH zo1q웳s^3|+K= <\="5{l ^k}yכ׏77LqYA ΤװU[JAnFK3=Ad4 "o=Ma~O~<Te[j=;Ps}s{k~?&Ɩ熛cB\Ahi^lz+6s O"~|j9K8ꇫ ˿NrǷ3v5<E@I1~)蔍w]bƜ⣗NSX/NDN3߄i'r- vp ݈ P!#Ht`F H7<]eGn:ҍ$zӑn$y[t#Ƀ;ҍDvH7<#H/yu&yRp gk%T0ض>>bԖ#1sZ2=iQ(tQ57a'Ci`eIj%CtشW55IP0r |?D:C2ښ%'X n^;c([NbtpHafg,:Cٚ%٧X щx^U;Ja([NbtpHad:򤁥6@Bٚ%'X æ*wԽm' 1:d01=X#K}D5٧A4 "ޅ3=_̘)bʬ,*8o&٧X эئ$rl ;e!A$!“~=! dUb1D3ְSRnDZ7#R! k˒SJ,v^U`&5!F׋.֑>BV `t GUB`|qn0cc$lufFZ!Q alT,>a FBUa 'V838~n#OO-V|LEl^!P'_/پBdOMP'i.=m,Ş :hk-Y3,џ_AD^A$8Z*ϐ+W(h b֭ 4 T+E~{$sԌV}γynTP=AdQ6)=Mav;57kS+t4JOS}_NRt84 [Urzk.zsg U]tPS;A}6C=Xb0;SN֨u:'|yyBsrW m*ܶB8èP M]&j+SpFCmY nP[@B+hRW(P ziP_@B 7j,Qݴendstream endobj 54 0 obj << /Filter /FlateDecode /Length 1067 >> stream xWKo@WXl ^]JE\)ql~=Z?ڀ(r;3;of6QN娬T\:qJ^|^AgiB"51u |,˷ZgUAE8*<+8̝y^ysslx~殺 H\]:WK;X7=o {}4r΋rAF쑄jXy>|>Uh(:$q1Y{ 7RAHW71jxiYC/{ 94ʐhJ%A$ =݃{i/+"ڠ[QS6a1[v $GkpZk>(lYDE?pZ n񊅈-#A|fQ$2Pb:heSe ~C[1IKXt_$EY>b\I#?{QhTU *U[YTf Q.>ä|+라mlO$Gl9f[ۊ"?0ROz7}s~M_&%hk>CTD;I*96/ ~u_`Vȃ"d(x\|Bendstream endobj 55 0 obj << /BBox [ 0 0 432 432 ] /FormType 1 /PTEX.FileName (nFactorsExample01-005.pdf) /PTEX.InfoDict 28 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << >> /Font << /F1 29 0 R /F2 30 0 R /F3 31 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 2724 /Filter /FlateDecode >> stream xZɎ$W04dt5.@0\4IJb+&'s*7e+J05[6  !|b ƳS6 MsMDPT\?_/\1Ưd Yl0ًGySr)crњq z8gÒ̚^K\zq;// B8έu "Ϳ-5YkS(?ɝ—"dRB. N{PUs-UF5f$z\=&fffx5Xq1(ѬiZТ=@/< 8ٛlkkh ]i SŸ.׌ͣgd*Lj׌֌ՌdHpǁU(9_\&XXM uxMs5<'TT\+WyqxW @o1ZHGfG)fٸ2z\36yTeTwmXə6Y'$D1d2eduXDŽ׌֌ՌcPR}p] ޛ5F ^ƨPy[pz0Zdƣk1{i(*#\ln2edyT׌֌ՌOc|a݊A+Ě󨉞GG1P^5xͅՙPkrh,)/Ay1ddfl=#{TzLxhXH<TG#=hrin:5;c ^ Ar[sQrk`]mڃz>fr 7XGU&1q_8ҿ[_nvLکA t$Kâ;4͡d[xhrheK@hx==hxMAh~>P{ZTSxKGHR}>H?zp84 ^z1-p(/XTvhd;.$*jv=|v;NwԯD^ L,k[#jw_ I;qla] ;SZfy?;V]%GOu~$Z㵖׿_^ջ{R?}qyvUv:3?~=ӛOwAW*#f{Wzyo؍?|}:P#!yj1D2/T;r+i5S[a"TkΈ;]E;rc䎃},yӊw%"wZ;NF Bll'Qȝ=;NNs;PN~iNXKa;@0+g4h"ճGlא'&|&t&lXd)*Me4U&#ߣJˀf׷eo6%ez8 V !^E_4&|&t&l#msم0}wգ2uEmT/|5!"M4gW)HSu^lzhCh ag,l !QQ%ITDIChgBgfu$)GAaES\e(F!(H3+w.20N83ѳ&Єτ΄ˀS;6ù)NHE MqOZ$m6=]$'و& Q=۫XЄτ΄;.3BT4{WH/އoBhgBgfw-ƞ}3_5v웙Ee+}|K C^VF6& C^5\=Ag%Dڜ[{ykk^"oK䭍y//LiG#ΰtӼzcpaq[IT,*wHd;b'Q٩n6GQ7so_qW"8`wNK߅O||'߲[,VV7'ӧw?>p/wZ wk^tgχCkD7ݼ|[t򧣺Ճo,endstream endobj 56 0 obj << /Filter /FlateDecode /Length 764 >> stream xmUn0+t+TIboM "MrPl96jIe7wVBEƙ7ohDT'kK$)%*xu> stream xڭRya;L$OJ#֟'5C 8 D=4 @  PA40O]hh<kRS "(#Hi//P H+AA)&"@@G_M B!@'H#̲zf;~]=犯t,>A[~ n Y oe}YnixKLo>6_Ph{5BzuJS`݋HU{,MZIE1KLO7xR> >$qWp,/Е;}I";5aaԩ^PS~5x"~Lc_rA7~^?7\'7kw=.T>B=;+U:>2v`.Liy^jIPT^wg<ߣ=]7FŶ7<ª1z5:rJs ~f=w fC:VrA_1YMRtܴ>ϩ2E/5yw]ݢ 6ޗLH7Ƃ6+A%1Zۨ" X%W;uӷ++[Kmnk3FM{#?V$F"$'ʷ;NP\ib{؊p:wLOBg³'t`^)$WGOWJja5/%ϣIt+")!<,ՃvS&ɵeJ [bSD+S1AZciJhH<3 vvb%%5'Ojwp՛evapBR!~,O.P[Rǃtj xmUeF5XXy)n-_NK uY 6oB<}7&(<^&3ǒ5e9撯կnҝXj@s ={uh\ⳣ >y߼S-ӸGໝ;T.!FzEXuw!ӭϐ'{._jLyZgJp폴)0Q.u+mUtؔK c[NsڤWkYIŔxLjb`Z0w9}D<[Ѫu!"L1gIpY%njHF ç/V32bR¥+/+!Gn, (d^bҾ@zq 7K6 Uy|җN3Lum${(wuAcTyC8`sݡvPUzc*6kǫ-uɺ:&{ = ljZ1]gsW(Ѱ]bO=@1'QkcZMf5ȺwF*˘ ~!LF!9'SѪMĎL5L}VwX;ҸWMz_e Q8GmsofHE"]c𕳆?ΔS3V4fJ\3p5%vpb]mah<^$P=F]wns$8_["(ɣ6B ޕ,gp˟a'JK7 /<4iw,}_ZYv1>)^grqk׊XRG65P"K֙+`R,{<&Pɑ8 fzp_˴u{3ibʗ:/Y묶:QĬygkBU1nB23[1Pp^+-5&ex3/<Ÿ_*Խ^̕[nil 9HLu~طRn|۲7P4ݾKkGljlN^W;6(}xx 7w)zfW){%ݾT~ L.tp9+t'}E[0 j9v 7=bsP! Up)xM EH +e:Z !>)I &՟Ħ:g=˷k~0<^ea &Ǽi |LR\.Xk*}>]ʁ$4J9Բңa+v03>]8sCbX~J566tyI;? \W:={8hM~W [F@"rܼIm[uendstream endobj 58 0 obj << /Filter /FlateDecode /Length1 1670 /Length2 11899 /Length3 0 /Length 12832 >> stream xڭePq(!@VݝNpwwww)PZܥ{w>_$oݲZOLIM쌀bv :&z&.#Q\h1L17+3<9@' ht06́6= v@;=@O@ tt31L,A#-|O7 Z)g]Ov)f@?rߏhW_/|7/|w/|/^jka +>1v+>{3{CG5]LwNyw'w'}l?Z!_;ogCw sG_GjWu.{_1w3{߽;FH͓]?O 'e;;~UZ_l@~eΘ;29Gp\Ȭ%Nk\Br: XKcof;Xjhp jCyk+jRTe(\+ڥ]3c!\^V,q'1/L}PTZL#`zNiT20#6OT{R4Ls[ 9fɎ> yr1EB]U4 垳S:Ӗ߹J"(?ZMZ ͒ [k #sӃ :KOԞ?Y CWл bRGG0;HF_ ۑ(FP;}햎\ W79Rir`k[YlR)ohSR8](JX} WfLkzQSf<|nBh $ar׽Gax-HSZv]&\v/6Ju?\&à'@0*YKf &oƴ4!CȄa2|V2HCnhr$$:^җ Ӡ#Qe `%P/T˂.Ǩ~ {"!",/5 g!>}3GwdOX,:1DܨWɻTX6Rzا o3)By79_?tdL"!27K۬E$#?˱rtwJ"RmvbVkݩ txq_׻Rۡ a%pTs9uc4ɘ?(>%Xgsoo#'fdu֦<܊ЖQsJ|p1S2\r>uw %C:!{dnH?*GewIIo dX9j-b~gPj0?Z(K7&%;+,R ]R M .|^Q~I~!<;gMc +K;kw tӕhпi_ _֨2NQǿZ$[~&uVvcwV42"FH7 wt]@=_9Vc6sSNUpY9>x~E甎YՔIJ7Rs%c?Q3"GtyTS%u8IM5ŃNv^ިi: r.B i>4vAbڪRpzmЛ kX}rgVyh܃m_F-o3jsoTJvᤞH-7$$ }Z2=W8J$MۥVS>?nP>墭yE\JT⹏~X4j!WDb'+kɵG-qK@a \M75h]ͬ`W_uۈ=ǝTm|y5 #Nuyny@~W%!|O juM_C6!0rb-9Q9< ,?_Pɮ"_sy%_a[꺱wn%q]}} `7$a}E݂ -+Sipe$1pxFTUcW.Ƶ?4G'}]9!`f];VԱ,5VU4dE\. T nugX7Ÿ۶y 9@;W&mPWPe֪+KR4Ee q=ᳩ@DB|l >ۯ_Jd=B/޶<4toIbLRk3C~A"wS`w '3N'A0Gej,:yJ{|Pƪ\=j_"Nv^SӔ8 uc}lzRQYss6 SG9ѫjXHKo_W0c SǹtP8|8Go GCιm)Žؑe n@)9P&(#_ye Onj7v=5w\G% N(>D-#Cb߹G4̵Rgr2OxaHqB6DE+ O,<4)a"aKN{| m^_ G6F QG͘e4pR[SU-@MUnMtH%-V a vuw\Qm[Dl$vݹ cFk-)Ta薖 f2=M|sS"\rijs{l5&Z{RMs"^m;[?Qn*Y#X8}4j6,s ;SV|ہsf:j'다J Ӵ3 .:͇c%z$&÷r[Ќͽmʍ,|Si]MdDB_XxRW,m*ַwQ P aǮ`s0LL* ]1&|g[fi:M{ iP: mTs.7u,}~c a/wQCc? 8e"i$cA,KRz8Vqdu/uY:h &%MD۵ҭ_jBuF.}>k5c/!-3X>@Ab n2%ǶYF d .0 Zϟ ?ݔ'~GAx[|6.J||BD Nz%U3Mۢ+;alDZ+#77ilDf4lLH*1MAhoK-AroZ+ˇP˯e+LPSwË:an(cUF ;+.lXMq wb+Xy"M2gso0B$E'&ӏy#8$'`^e08~Kח `)~1?J_XKcm DT? 6&*hde`;lo'=oh0;m0wpe!Ͳ%QY"~`~Յh}^XqS@=c@IgkV>,"Wri-bfM Y m7[Ɨ0q!Q:,RQ$%q.DTo %*p\@m.(#:!F_W̌rfE\hr G3~^/-y/,[6ChUSgt<`d~8f^U jrAIb^[Xs4 !/AA(s8}h'XLϬY蜏!:Ӓ\C* r!ŏr݌N}MV M2f9^'x/VI`4&S+Sϓѓ]2M^rd[#"+}Eoeed8݌&·&FE$(Sfm s$n7g{s垝y׎ii9"z\x;o+C(Jn|LsdTTJgo' 1UK7v,hN̥7a;[@%'=9,3zTuEw灩e4)F"10xW-'?ϩB2*Ò/#%f(Y|{d~{\DNPhL-%B.>{G:XlIRGm@ m-"EӌE23oD-*Y0{5[wAiZ:m+dwpSF8}#b<;·FN.N0۰ Z*: ɛ3N٤kAsju$tU>Ŭ!Ԋ׌Ԁrh7o+ŧ֮>UT+s[ LhO.䖊ůU]'JuӦb-TךT~#t9ٕ.#v;u=6f+γZѫðHUk UwM% ʼUޡ k$]W-f>gK3fW-,P\O>ѵqdgݼJտq*+/& J£5 3=y3m> af_4EL"^F}& nj:5f\-R$ MeEVO:'f)!z[^)ݹqQz E"EUɩƆ'G"Pmخ.u .~߽,H9!2E> gvL֢nNnn1;h lg`@iCvc\?Ӷ@㑂Sߪ[ 6!_Θ)6M1ա۳}V*qb]v)j5 F2\ H^Fz*B_L/;*Iz ~ \aA1FWCM5ְ.2 )#7-OC/~naN)8 S[Ʉ:'vc(qLOUދzO:Z! ' Z2ϨZN;;8zF`Ԥ:xܪl-oI}6R/UBso{?$am<'iFs] 0G/ӣ n櫈fn~w2ȿ-bKNdBǕdbH.X(I]:R| 9%[!ˆAZx,CoF|H=喝k+`<#q]C…y;TRL WidJQsJ c~%o*¸gdu >qL>G鋛%GVo}Av /7H@ySOԚ&A1fa]i-u}!OL赆?U"cVs,WS՞(+~.G>Y.!TY8LWrQ| rW*q[?hTuX#N Ɛ %u/0~]]oQЧWF?0;הzW5̄7;nX<7T3(6d՛Updc|1Qf?~*obwEe|5HK.dXS+RR@jb]ȌЏ$Qx$h$!$* |$ +sL 2N m3#1B!S$fqOˆU-t,гkcn Oq>WĎC$ s )iWŽ eHڐ H2H*o*aW 'uo|??.{QsV O򦪘 Ͱ> m_dܢBT>~a&y h<:/vkFvÍJ ܪujf qϥR>/a_ vaPi" ߒudK! L"buS}sP|Bi#s=q画wf:?sòbEVx |dh|,..,|{gN4$ozKk#HBU֞CmVىG#?20G,SC dm"‚MMy@C]gV~e]R~EbbwDkpxTtbrR<XuDg&m'ao}RnpL;6,t^BXƶ<ܖ| кa 9)}ilDf8ZF9"h]N+>*~Y"y-;zV )Kv91 ьlAпGʭg6̰A4L[ȮMU" <} AMY,.a &c!j가䢰5d4tKX"Th vt>~ݪi De沶I7}Mca9\5^ʹKM+ؓvH* Ĵ>XfKC7JcՁI=%hvl5_WMX` ["'jՇ;CÏ.I/-'4 -$|Qk,k ,~%6UŒyx*IFdQ>ձ-ek@؁řR˧h4,7dCh]0Gl?6 X{:wc8+fd z]3P#C*]Q#x& P_NuU鄒A}wp 1B2ZR/_A_(K;6xhgUn]Aͳ| &*4w}D+4Gb}nvRiܝo|Sj)$HX.TɈ_pmO`VKGHtf gqVzs WR4-0(G„&v/|\jl:FZi *JҎUk~§"e a/C!=߱Z?ٛbD&\o~p}w.KH Fxձ9^UR ZE0?>PgPYSOBv11  xۊc۝j]H*4U~yb~(XTTNyIi^#RwaX٣<%;c,;8rsz=[UT:cz 0r:B7vEG6v _+Dٯz`yv'rY(/,i.ȶ4\#1f^,yfmVxo? U؈П8i43pPV|Xmm%%It -:g =Q+7}ʕIVba\$7]!8Whݏ'ϬT¡v# {U.X+a /}P$?EÿOwӚ?ɍ࡮Ni($^(;Gauq$6G6DjFhR3rb){RnK@@eg| {!Zk(9pC.IqS_a8LѥN"ST<ּR, b1 ~]+|pVŴ@ϗlLA`}O~<+0ad 769B_g$2#o\eMTj}xŵً͟FD)>]FDkڪiNyv_?j9~H~kД<\T;r:}W-o7VP0ȿiip`SUXy2 ַf`*o*jyӰ"wEcS3D&JxzjvAs|?Abdx1DЗ /zpؖ F2FT?äLJQ6\m cQ &u+)e04'F! *ߛ !я,⨺ @#7g>ڲ =´?ھV6iLи[ ;_?639_ï~r8f VxY(^dsԞ%$Vl{jf.VT[G?Jڭ@* eJ=BP:>;|2EN;%0x*gzF.eZcB)hhfͪâ#]dr8bIn Jфm<4BҰy淋F4N_ E"V:TʲS[k${HS3 XSEV;^@2}#κʅʉ:䎺[Gcю d6$%oLG֥R1!xS:[ΰd2meva(|,U#A=]y8j-o} w423.4-1a\@k-3dKj$4YcȬhCWP$0Ԩ (@}SЈ<{<-0i t6f:u]0U.p3G*pEmȬUAaOM_i-s<qۥfn>g5W'mȥkI%"c8 |`Ƙk\H:! F_Y5}),껿.RDwƝÿ[Tq+N ͱy[%{[ٕw~B ArVkc Ϋr;nz` DcxAF*U. [ gExNCefcWdqy }:b^ffۃd]{bԽC Ͼ^QϜ 4Hq\ ӧrB#%ѹ1Wt$f!\S’V: [O,|F7 n"mMo-4&v0!CQTuq&Ľ9TE }RƒA#ZL_;XI z d͵}6Voz|m70ˮr6Q=D!a5J%0u3ZGCaHJ;hRWpgͪ!*@Ɔ"uf.UOLH,Z9'mW= ˦G6`b'osjW9ei17(L%}~RR-:l(+zF17g}]]@iv@E#Lݺ2SS{|3P 猛s*KaRxq?[St[bUٲp jCC{,%=WyAmn±; 8s[(KG]+oendstream endobj 59 0 obj << /Filter /FlateDecode /Length1 977 /Length2 3620 /Length3 0 /Length 4260 >> stream xڭy<3Ⱦg5m5[e,cf03ېBB֐%&{ȾETHJȾ智]y]\s\K\RuF^b%!Re@ "@5qH7 тy#PqdEeiyja@Cy,R=8 anH̱p_ PG'3DHQC ( 5!] P;O"D&X @ ]FX]HSF<~la(`=<}8@0.F@x; CW4;#&(oC{!őĿMT]HyʙPo Tbo&vvRb!ϛbX C\yA$y@aH< 0Xoؓ 9NXg)B?tQCax7)`?$'G$j;+@y?([HXZ$jy4Q:;CoI27^奃OCb]P=A"H8yA}Ti0`@.F,ih+M{$W7jld"wh:pu=fRON2m63 <"24׏mʓ̽.M-x5DTbbLomgVLeY~31rѳ~)dC7)}Ƕ0Pq}{e[=fp|m/Hjl:>,_IJnje߇)@_-pKό~g'#Uq m'h9kOJbjSgdFdJ.sAwQI]c/*i Geb.3Vpv^zo6zSvEvkl˷䯵Tbg|k2ӥ&#/Ȟpn]Iê+GW'a]۹ߩRꑤ(&?ֹ!Oh] _! 7 #]pP.fr!Vz "WRĕTF@gYSGPgM{q?(gKHupi1 }/ot%M~~wy׈@>y9Qt}Ed Jqņ̃KLn>9ū+5XP[߿ {`{Cq4]h֙&tk|D9v!JQVT-˜:/)2řRG@$ Il灳sVbUʹsB#O'm':Qɏ3H*̙f#k9~!Gz?> .{358p6Tmᓾoxq"0}c(a=Z}JFjĻ:U<^͐yypTZ[Oݢ%Y/~H!,cޠW0kt2E/K kvAݡ.ti|7o.XDB>|u,X~j]{/?|zޙ[.RQ<3of/)a>8͙&㞾Nq?/,W_ek;7".Z"YD7cO,[΋E\S7l=g`3J9"|w|xR#wkaJRYm9V;L==TxIFO,2hKĞ^Ӄ\֨yq{>#^pb}~Ĩ[ :& ]N) j\ʊ*j+B(}3.UE!-]_-ZwFs54*FlUf R6X㬼,^yqs}^ז1۩D}dZqxZaؚJޖ|x,bQg܌=Uh.Eo-:Y+qf Աb[ukm} :VEJF]"XK+W̾C2Tw4+.lQz|Q ůT$ŅOn)RX-~)ʭdՍK@ 64k=AQ!ՠ0H-4&SWhAcvw~2T~X_ g pWtRJ #U'/m%9B"h$bR!8j!6g6SƋ:/ $i50G?Qf" =ƻD;wo%z'fL= [$c}*s*)>熑;Ѝ#,v Tw, ċ{y.<{RwáS/n֣8`$tO- EsЅH1K&jRi¶yZyYG$z0a&+s{ݴ\ȼ01t=ͭTݨM{V˛BKLIwZeT} #k1&FqBYe(Zw1Vg_Q\R,7~$!I4ϭI|u|}wь ͡!ц|S8gS'ᨼT3vxIӺEe{*3J[j\c*(peHmYiY|Xjٲkph 5 o{ >b⟷݅  :LN7diL*,-A3d^Y[.M-WU?go/u7hY"+t̀Q$ RvK&k [µٸ^߇IWyAV }vzqpmKtqaևL;q:пǔMݯ6L:JMJǽr"vaM=޴nx{۲"\WQP$5m#$y/  Ϸ2>N)T-9)d +V_t%o>dv%"NtͰQ} aF7o wV;|'a)v/% X;;x@mj@h5m#/&c[.Uޡ ; Yxxͻmp?Gendstream endobj 60 0 obj << /Filter /FlateDecode /Length1 962 /Length2 3305 /Length3 0 /Length 3938 >> stream xڭy}{:{ "HM,/*&PY*.T!xs G*Pyy($L $c83_%T]8HWJ 80:x8F&Nx&H$ AN( ː6 Fx'yPL`K"A1Rz!)N?L'mwUא+ wE +y8@@0Z D<](U HByh|#p=H &(smn|COP}Q謹ĿSCPֿzi`r!e8'(7BҀ@aHC1 `#e&wG,k2DW7JͿ/(&( 7JIg3B@yJir QX 4 RR{2Ro-a}$%1 O Y)G!1?eaGb >H{Õڰb*5'RAuPT肷"U7KR0/,x^7\Lu{1ŅR n|;Y^_2.oh_1_3[=lElN Z%$kr*ٽ(B*|Tw\D'b=Y~f+Vi'2/*1 y}I(CXxvxxb"g[t)qU*ὔ/ixffsz: |%>V5;^ۯiQyFϦQtKhݓgIsE ļ̍Kh-oq] e0W,>5YWe+TNo썋r8&fOy/ᓋ<{X826ݾ"p^Q) |c Z|"bopLx,'e -ܥѹzW$vw˰'/,Bac>jQ&($R<RRdQq=g4sg"VzQomq[+c4 &C 2_? qa|pmC^,sݹE3Si"?O=1iqWݿ) QZ@GIms[s<>lg<=my@DQaXұ ?DkcRw=i}ƒ*8g=%Fǚ0b*Ǵٌq/֜y`'VJ³˳5.aw[tYQWQGP KVL"{F>TEsNL|cЗtſn88rz+ߗ=VZ͏J0f ?]!^%铂 )/]\Js.b)N}X wGj+/Y?bv5RԾ盏v)k#ӜgyVJpcɋ)%'^[?DGܦi`l JjoyX/YQ>c;z4ՂRXзqT)`~2H6.>Ms'V Zȳ7L&1&->=8*cYnn#ey6f̂G47e_]X%WOf*ҸI;teV3Aܞ|hs ֩ӺM8dj1 $˖j8Zrauhkg7e:|s *|ZZWxTɜasH׏R gzkAȓ"K3$f,%Pf6W_<̑`؃!IGrjϦDJ793̤̋pD?⑽y.`7$$.D^2xgDZqx"2 H~+> !-{Э޷E{@v%Q:ִ A8tFKtRJ5ŕgi_l%=1_Z?WA:u}q޽8fg&=]׮ig$e 8zLzD|k6:MIS=h>%z~e}\WcytFqV|sq&Y7HX`e_I._[X1<59v?M$mS6QPe,i<*y֧[bs'Έ^mq)*+OSրq+߯WNa}>_əOeI7Dw!eH ڏ$wFZ>f{ "bh_No>3tu}&b?j %@9q']F޾*V6L(O`>`826 '] s8i!1Q m;0JߏG@O&qY]W*|xB]EI_07 l㣩ΥOt9C%n aww ލd೽{ _-sO) yb 8=XqӦ^/]e\]kn\faz!0ōOkж굦.`k3~}۵um 7 ^3 =Jrpة:{!˴>p]o+!VEx^SxfiS\[8ȶ qlQUm .O;Gq# 1/> stream xڭe\Tk۷AEBDAb$KJ)Ayf3yJUYfAl,l@ %M96V  +8N l p0?( 6C| ^~.n~6nP$ ك P)lanjԀCpP g: `- p $ycpqd[&#!Z- evS6ߓ?~S{F\`'w)- .M bP+;0?v4l [-MP+Ao M-99ڿ(\ d7fĐ @}VĔ_j&5Y@V@v.nDz!P ;P b b2>@K{2x RxY C &Do!NNG!ʖ d"@. ":FA ! [)b2Yc@Xw"B" Bh!7#4ywa^l@fvDD_n 7is_  vaA6)BJ|J3:H+ j K`[ tjS@*@\ļzigb?eM@?230z>+l{ráh|ŵq6<҃pԒS_[9T d$J ,6 ~siv;/T-&+0-ÖrN'OnuZ5mVȱ f1!O >zjf@d3P]B)j~i6̻A2VaIGQדAAJ#+Rg9W ɇhIfmsYJ<!X,Z#^< ,B߉~f=CpkpR' 7޼^KuS"TVćK.ʤ7܇{|B@sCtvX'MYSp$PkqM=0vQH\`@hIO&Os1]ITtG,?hF;xE7ey-a ʤT|TTa6.PUnیF$hH#%hK磉E|P){EЪGV^J@"Bk u?T-ZT{YJa'- S G5:)ZP=b b'gښd"ބ6a 81`!rtdrVEO_dm%I; ZBO)S~viՖ:?yfZGB"53Llmn{9riFƭUGs0ܷ<)ϼ!mRl8F7溷Qj[u9?mztVXp};5|R,>IP~q M,EGp̭K/AhV sGazڛ.ʛs$fbY&΅mQ%ћdc}xd۰|*]YcdVvH|yӑ^r!Hc):R՞Lѭ?ѠrKA4-LJW[YE?-!a lnT&styP^^BJDr;p ~1.yc$DqTvќc]ڶ=m10X~hy<$g\ uL^ĎGӱ+ R)  ́>g#6jRf~80)M)$ }tR4Qf/ĨS|4Pmjldd[&mUBz,ɮdZre6[g𨕥嫦naYBċY_tKE A6i8Y,no7GR%UJ|2VZ| eDҐɲϣuU$հ(z;tOaԱrv"'p/9FrTVU3ߘJ^Ý&N _O_VvA$9baqڝ"lP3}$12Wצ_}i˟X՚:\ȚL[k3lLޠVo]ms/={RO"aPw3;i ,KdkR_ö?HPu$D{gj7M!GPs?$e} zбKhxͤdžq:'' &'A2ݛg;vݟe6{f \R-:]|¥C|yyN|nzUNT_n?l\$Aw5ySx(p\$fWIWl ,TAJ2kR#*_T ϛɎl lʈ1;Љ$EIZT_{>@cD,JivlT'򯈪Ң9}2JTHl^'YSN'EQT:Qs;n (+\w\qPb6fCE6Xm -W/2He5Aɷd<(v 䴬z*}Q&Uj9O0%}gk*i7cZ֘Ŷ w`o}9G_:S 3)6!!:G|8!)W=ٟv>NaN:3ody5\S'+V╨ $q*Nlz.3N\țXs ]uꌿQ, a`ŘvS! sveAd$-|7f DZi؊ԣ5=$bofH/F~dk߃QJo, .HųH.(5L)vUTXeJm]қgH2O55HWSYD.d\|ͼ0pbKJgx-GS0W5 {/&|ؓLva0vTu>BDR&],X^(W )Ud'ЀUzC QxP&o0݉/@2KHx/)&% 0g'O_SLX"r{7Qd\-;ЏI iFH9>HQ)~v$2Cv7FTY3VC%[L!61Q{p_kj*X9ng% =dyMQЩo/aP厱ɬf|Ϭ;7 Q=ҷ[HӶΚHq 0.%腶70+ֲo]ol231X9-Z]^jU-"*JimxfJUn!'ˁ7: ayot*Ii LѶCGXؐ9~ K3HV䉓ϙ8¥l1{D|יL\mAFF4=)t{u Bگotxb&'88Y0 Fn dMnG%.9ph=RsT%-xƕ8RKf RTBH<736|uNz}=NQfLsž䖌eoQ͛?8['>k|+إq͸}ѳ=+9pesVx0Maͷ`p6 ݦQX#'utֻoCݩ{7r$8WnCv8;7&HdyeM;hC9m,-^wYs(pc&*8rwZPSñR[mbUpR+9@;~UvKK|ءUc{je T߬=zĽ;c=gI>endstream endobj 62 0 obj << /Filter /FlateDecode /Length1 1658 /Length2 9763 /Length3 0 /Length 10705 >> stream xڭe\nffjFPFin)i)nF0;}kY  Xdtt '7 u<i7-b0d.n[;,_Ei'favamІZCiGG_-;   l qK  0?)/;Lo,H`pCa0-?d N-S'oqwPn[850YeKG#]i@<n`gj9j2l>Կg_Vof=n17_ /&l Am<K77K_ ?8>L03yau.B"Aop&a?$ RM.S`x\ڿ`t!M V #7Kk#w? V!~bPG}O﯈@n.@ l$ k_yWO۹6kz+a~Kcbv0U A?`syaחQ [  # ی4 _wφJ@ps aE`?⇕b`ssq>MxxChaxFXx`0~;[Qes8xx@;ʬ=`zj^ >`k9hWeȬ2! /\YW ~g">E9p5>mqb7ï6=QikzK: yl[eXO:Q?1 PKo$:L@{ŸxO6w׳}aឆ(3@C{wE|;dHk+Bu\g5N94H^)$txcarlLEjv9Za%*}"]'+$~ZVSeA@$ӌblGb`;sg"7]vYBZnr(K/ceced ݐ`(gL[4nf.n5t:' %DX<T()R"q}kh5l>J0~.HOʆ.7%rΓuRLW ȏS:5[ͬ8 ywIA2`7\uʑDKp%2-AZ q F&T`+bp~g]֋jbQ8vE=3:g⧀eTjF{&]-"ݓyn7״cY5-MdO4z6#A.)v)^=ninܰ}<|ďrCrO:V13r!pȖѤ +t隒Q83B0$0n;&]¼6PWM% h qY]\"/8i3(n_BwwV|ܔ vJՏ'!D{( r_@pFؕ{^84]}7ڌ#I][bM BbG!p/a D;(N_{ZASoD7EefC?XIP711xs.fL &#:vbyV]aZV)a,@yo[@c:LD4BASt@R]An/q2Vy1/eTXljxR`:C[)Faawb֠8͟E[Hp5GY>IkwYq 7D/Zl34?%\v҅eX75;TZWEytK.iv /ʟ~cW#?_y] @$&l_MaXCX)= OmtEK}ãU93EI 5[q.t Yʎx %in:.w^(و,&QȳqQސ\ln%g.}U6+N9N,IBypỴDF|]z+Ј@QT^@.aGQ(4OwzĮfGF׶&"?7U KY+{PT'4TG 3,+NX~O1&abM. ,!تÖW10XпQd4%}b3Cr/kO`l9bT!Kl|VAh(2K;vjWDK1!JW:8TA%&*jM'i߻$MC1X`O2H8!6D'QIKMc;}t}lKs+'t ,V6MnR=&medkO 43N;_i G~o.Iyv؜3Z1/wqVe93Jӻk^cs&R܋[^5JY#G)n R N}?ܭz8DHEb|C1Lp v#9$'. ¥m2o.]?~ZL]E}^.Rw0Ws ֏p]?@QAi 5śC9u[U6v7 S]Q H@]N(/\(31j;A%hcos֛y@vTƀ4cQ! {7B4<8b#`u g-v3)f[hlw:S]L'GQ<^.V)3L|t׎<ҦNX"Aj"f4$Cſ >Y<˫]e4B2B} O#9G="U;St²%Ww~I*Z&g5y\}[869`XfN>Qdj&BvcH[;rtT}ƬQozZ:f!0/INIoh570s%Zت_$3q(H&~Qq#K2M_~Wܪ8y(oNhB9(T@0y^DH. M+W H(5 tz}fNtRe kpˀ!}2 m$ԍv6z\O@-'*#J eZ 'Z`T3&ZKy*{ښ%_շ O`=a37FjSX5˝ ; oV{Ͼиi7 iXnfC~qa+{foș}D#eȭ!|г㏀TC6^3guk쪥L5cc5&?"H&+R$SF#RE]L:1>'OGeN*o4iR"dأlSr42_W.D4zvq߂&OXeLöCh4HqrTʕg **xkn oe>[MlPQu '+ :h as +u^ 2a-O-YٍOX׷; pz4(׍C?HM3ڽh0ͺ1Bk]-UAt=<}t}چ#qsv9r#ob#dQ.@)M 0f-͊Nܙ.sՍ`Aﴔ T ki oD:t k8톮eC#zʙfޱTF %lbqURnמ,MF`P0?yaLN!9lN0|LNqj*y,aDB_awҩ*2ۺ#z尞jd?gMwޟF8r4SHۡkbἼ:"B["b͑ rF5l%l c˳!W=>_C_wi|DQ-6F#䫧Ҋ_7uaӗ +|B*66k-Kii]嘊„Z )]:->W8e/5^Ž~wKv|ůѕԡܹ~#^_< S.,ciKh/XxdS[mAK~j#Sk1'!1|/yg1+ЊXp #^!77J<us SΙ:؛QR :.b:Aavԏ8w2E3lj:u4NuBG~OQ7"Ӓou;b~=֑<8lWv@;#.adQB2wK~!YE _ltqX&D*E"UYe//2p"T)Z߉ `D8iYؔݖ3ӀF]o&h !hnDT(?s6σ+udܳǑc,+n"r換GS-J=\^}ƾsR B6'h٦ J.BCG_#ٜfq=>?KrtJM%^ԋk0s_)ol1uڨaw4AVX1y (~2@|Nc7l!RhۋHS}IMwMuV7N]8q|N46نRqEni[ٻsA݊(t7;檪ykO*zeiTeeNr ?'4ΒkXQ0EyrZp(| 3#G/u^45HnvKzJwסťob=:ōuҔsb%5_^Ϯّq=4c$;CxmPW0[ }S愨  +fjL|pPSM1⩡3~2jr@Fr/3sdءƄ{rG8)mb8)#p[U^sR7wOPx𶦂m27kaSYƸN KL*>*#k>+[u=dYd5 w<āa~X>NQڶ*8=ۜIoX(T>MAǥbk|(`.vOdOU>#^~ŕ Rrqdژ OھX^dzP(qJ3r]Nagy<'s,˰=н^2َ`QW~ .yk/uǩMqZWiF@Ξ޷//UCuG řIK+D]Dŕ4ٸ_*R?C$Z{#jp$A*l!Zҥr>Yřu9Ȏz+[~pK)`ν_j+]! OOb@=n)lL=af+ݭע)L#m):fࢡ)ާJi}opҺ? ZL\p0 1 >qg!$a̺ E)Jз_ɇfR~͉&t!U nT}֙Un+WZTt-8㴯0ŨyY7?yr-(e$ء҈j45Lh tI b$2@1tܵtQ)Ӄ^ JDNQWrPZ=#Z_zy<8#H,'ostjYd3=JJωí)/^TTb=viFxE'L? }~%( X02!O.cà!iv~ݣ륑U"g i&@԰[%ζUwrJs nW\_I_e,_ eǝXK<ΦS 1!"?>/kD$_XM[7LCսR-+gŚ}V8j.NO}[o:7Ƽ9oKWjKszX(AA/ @5t'Zϛo1Ņ5іjWKBC}LA8קqʱt!8t*̅8.M`}ec=SA{nGj+c!'AQPEfIO?Ax==x^zz LnʄCe3>X SI9V4AfPn/IngV:e _߼m@S=FhR$ʜlp$)twjHӘNW~tu6(j~ yU}IC4!z؆MɄ%d}Dwz( RGFv] K5›nx̑0r1|̭܃I4 t0NVOV M1>dg|8Uy/Nm' \1ˎAݒ ()m>ƤG0Sרq!4CcLI(Dy1'Pȁ4t׃0G)A7GWބ>;/V;XZ7ȉ{s†\ q'3aei&MLB%O{ JD# 6J2 Fv ,/pם⇳aȪ'kyy-pF IXʥh,^ p'НbG5m[2n, j&9Ñ@`:ܺ|J )dݯz7 "T7_N#3x Y0(pS7ɿ,ɐ #a0Qb "=;Uj ^ȽƺmI҃7/lp6%q-UΡ!>f;[^E<q"76wDĴvV ~\XjN4ux jb@3KËl.1V"'䧛ۇȈ|OaY +7Q]f YQL4_$c X$ߟXnDMd(O=zsX[\>-p;mG!JͯiU n%*d 17q˶MISu @/H#(b h~vCPwQX.3r؛Be=읓TNtN?{i,6m:hΩfl[T JbNU%dH9Z L?j#U0졮NC)Љt]ʘ\/ M1:#Y+GOc!"oYKo\y9.d: m}{#zJTwʺoq2dI;)at.hL6Xz_8)$|RR>Lz>*:}#XgGw8%\Cu.B%\+@zq<;OѰ$_͡:1q Np;_JaǣYM44؍Xcb~oPxu'8iNMΉ[&CgA\_&7O D ɾ:k;+ Hp۵pC$Kni'4oXJfƴ7HV@wJϊdyH9ɉW=~ 0SB'xllDr%L-(Ԫ)Ӑ_(>=:B&?I+IAKMy"0GJqPz60-f"ľ.f" , 瞛M& 7 ?hI_(Tqł[YCۍ 7?bϱX9^{@c)7Dr93Mtd>|?zU_5ҕʯޜQbIOoL,kFs_T.)+*k t_'ϲl܆]`vhɽzEa?\{6&Džn0X+8Bdy'LuMta?W"K!({;.c>T2S!"&ʎl'g-</€Ai4 퍕g䏫7Gbҽ@̥~ItYYO%FPc[foi+tS;YXP,mE9gkс `<ܗּK6t@o+\6Ұ%c3V"ޏ7O\%3tPO!} @׌ ^h<mbܒO6%rE6VUh-ՎV̧"*DdJm ŮqJΚYr;yz @5"'-R$.V,~\K_\2hZ%i:~e҄XO0li /-f #|Zy-?*Ӎ` iN]VfǡxD@rSmfOsZgJٺs49vЈ/ٽYdSi[ 2c @%F-wO=ҦU)gEe:/j]gۗ"BuHg5\9+p\.mMBlvnrFϜj% i,'.Wh?+]<>'&EVX+#>}_{ս8+CPuۆi\.Rr>[,#Œ Sa:6m&:A le")f5ּR hlBwWB;omXޛ^ }φWEݎ{^eT > <>&,s]|Κbܝf-m56AS2chaˋPAY_gb˩SG8СtwX\i_NtZ]wYykhl+[2語w5E#Q*~!V>(vH8hg4#X~zف{}fdQ{z,a-Ȧ+Bs;-U˰ߡk1w=DtN"&(;ϕދhxQ4 &!mѲ\ZySZxײ|@Ev`odc"kj~g:z`l,Gn :2]*^fW!IX/K'fM4AOw)ˀ/U%nlfBO\U;%PsX0j*2#6㌧ V8 A@q=$i]jQc|QUˑ|nl~PSaXendstream endobj 63 0 obj << /Type /XRef /Length 85 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Info 47 0 R /Root 46 0 R /Size 64 /ID [<382d7f2a8510b69778d82f97f5105525>] >> stream xcb&F~ cNL l^e@3mw3HH.@ 0$E ! $q endstream endobj startxref 59297 %%EOF nFactors/inst/doc/nFactors-manual.pdf0000644000175100001440000076707611674072717017361 0ustar hornikusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 5315 /Filter /FlateDecode /N 94 /First 766 >> stream x\io;>:A#Uŝl4H/v8ۛ~r{Hr}%TZl˲3 Xݸ2za6-p /"(BV"RƀDHm(!M0xHR% 9*KBQ#2E( /^ dmPH, ]Q9+B&v ꅶE(TXR S<(ai- iC4Bea|q?j VCGa'DK)Ey\@"*^8~LΡ& X%\p " 5"r CPyQ 55&|֋ YDPŸhTrƣ1)3pHh*PH NId( Æ 㪈5*ì1ccj*eCCiHe뀚' 1Dà#(: @X_z>(  $@beNjH2e!nkYA ٭pC]Gl*jP#Sǩ4p9QtQD@& ro<#>Ic- FjMPtդ_BbONInb ܧf3hV"Mt'wu2c?n]ct!Yq2;VUa- i1UQA`' ҲBQŭЉ`TwΎD )ŏ,3AÌSBБSNЅ ;2Bйj%v,#C{b ;Pنv/lÍ7u10r;pIsn* U) g;ਪVXa/5 ˭ف^yD[v":oǧL`2&4(zڟ .g \蠗H oX6?NgS go%Ύ곫9Sf=釣xW$+lfl.[{+CWi+&]lSNStM Fzz/0c)w<0?K9"cR:!pvn"Aw8!f;vv`o: q+nv: i6;^vAVV#v!l.$GT !Emم$VN CgE],ͲֲLf_f1P!:^l57;UW}B@-bfsSkbQف[Jw"fV-oDDOquJeNghˏ;<܇wږ'LY>-V;rr헿x;߫ooַ/ mW㭗׷|bׄ Zf]da?G)lv{QO+GzXNΖo|\ @E5#sJBO{%~l#ʽ7_=>}CLa ,,1ÝԟFt֛/WԫImPo?z6bxc,_egJK7\v[މ+1ڱyguU5{{huɰJ ]v\hݷ]pjDVW7l]k?~' CV@v- O_Ԑ Zj. ׫"z2^?9Z$_ۜ fQb ^ME_\DyKr:MEz2x>̾nv>qbL~tIjשр*C2Sbo-_(:>=BLdz3x2E1π1!|-7PQ b y (YDYdYE_`%Ā zp/z v(16(f*JC+Q~wQ0B`6dXl<1R"PݽLL nRL}&VR0i7_kη-ZOs=kWȜZ  w)r4Tj*3/AJpS;9GܜmlvXJv6gI.7=U\!)I$ץpьbs7\ZUU5Vsd+kK IvRk&)y r>io)<ڢ\ $"wU90Z1it@TBҸx ƗS8iTUQ:G bF B/fxSY CjUYl$ EP 3HK)m@Dt$L1Ms s@>ir/4)=@sמ HA}dQ\NjFpwAS#A|]I4MXJz91<&ILGB[a*"Ѻ.# et2-}nNZJ7h~lp9r6}{19Antص\kqap5t&Hm4n~MuGg ⑮qm>ɚD/ohF/_A|SC+{^yRze|_Kyl.NN{E9*eޙ)9S&azH4_ZK.tn#iĀ bO%P͸A4، !mJ!^D-CxD5"\о?. aGxg-mAhGr4BoF#m5 hw6,8KVEL;0eUD? 7Aý~߰wG'R/ [wfw k;vѹ;KH R0hiSoTI5dWQS[%jz-oUސ6M5)/#b0M6D$G쟤eeq+iuᰞn3i3KdGX~g!Y)vZH<-` AyȮmv?\M;JKكNݠa6;€b-2Xpܛ)yپFeS@==4ׇgVV jQFgJEv8[ךCyTndڃ$9<3bJL]H:dTQ˨Z`%TnA֭hH]da}._Ҿ;٪~mb`(nQ׫IC5l\W+ӛ>^Hێcb1itzYF,x/( Ə7mr"tT`hZ$K򾑔L)p\7x+[Y,lH[ʹ!~tn֛  +dCnFE9eL7G=䓭M9.3D|5g/S=\i 9p9\93skh?y^i =pBɰ.*%rQVfc.[ S>9tp| y?O5曨$B{=U9$~\Zz *D<_/M9s;?ٹ֓IE\Y{U>+ n#٧9bhT`*p <Pi!?TQ*5ASt7]^֧Pp' mendstream endobj 96 0 obj << /Filter /FlateDecode /Length 1406 >> stream xYr6}WL KfKijvM;S%)R$.@$Y6xpv.T-;;]< GDŽz7!q$Aqzs߲)HUf'0FD&(MeAl99_͸4s zYMb|LSfLQR34&wk=2$aoy1gG8C N'BpJH2(xa=,YqWܱrn.V8l9ݯQ*mUvip̔Kn3jIcq0HY蘟[97 Q8 e.JvUX:RR@#DSq)jps[j%|KꖼXtT\ 4lRݘT+]^j]ThEBEX`u!ȴy & ]왅(#'U͗KΗo]_U%Aǀ-&Fֈ;Aft,[IAEhDx5[q{mg3:~fd0îDb N(1)%]eYwσ(5g{iSwf2iJZc=ߏ;;vg ']b<[x+vNaxt4ҝ1i;`# |]08"D$) &r'X-s=ߏ1ݦ=&$ݧ{ NKVp"4įlrH}x=ĵPWc;)\YavQ>Ww:ى_q"qUI?~'{Ɵ&8-~y?endstream endobj 97 0 obj << /Type /ObjStm /Length 2532 /Filter /FlateDecode /N 94 /First 826 >> stream xZ[o7}_ sȏw(z] ^dX2ɓdNgGrx>%+JQ(k/xZ%9)9S.W^"AzQzI*ZʭQ u*]P:=^ xo*cA-j m_zBPХ|\{a ^PޡkBqAv,$40BpAD8a$xRdW*W!-]rB\F'J(oT()`~ fGxVvPPz6lUTHPŏ1C47VIDPѫ>VQHK>bE >(*aJTCXOCar ΒO.`99-"Y``Ԩ,Q6W F SS6:WT, ؿ}jN6띪_havV w_=߿Z5n6o; >;Qwv jOe97ŭj>߼[/vrq О-7γ:]*}z߶nV͏wmY zàm5,>[;:etmtck:@#k!m}?!iduW8zkl` 8d^FW7Y0d#k6$m"h?Z: "#'B>\]й eh0@.qzCINt:\=J]Q 9hM~P&JttDmc6ztXj{XnԵ=wa?Qsռ^su[t'\B0L'\; &LLk Ӏ@<!p0<5svHX@ 9 L3'z3q x.-kOGw48g!Pn9W{;yOB_ԅ5˻If(k昁p;1󃷻jf^TEemQ#5(,s[ A/T;͝)xDCSÎ/ 9O3+fG 1~&xX]ˣ$%@ T;HF6xĞZ%PR%dϼk?>(iC}YZpӬa>gdn:%L4<b>kA}ì'X Ct˳d"rpw^#vd*ѻ9Vw.écn+h3h{W]x})uϮ} 3vϮr%.@:͋Nޡyu9Q Z0r[o բVMϟ| ;kmc{N!G7*y+QsҼh^6oE9o5梹l.\U}n6usl]s "fǼל\-.ʷ6UqX\MxmR崷u|x?-Vhzly]j|Dz{ *oINσ,^U%%D Ʌ'cL+`uz9׳Pq_s!$xToJyWm^I9Jۈ0 N`zK=JQ+a+%^`p6-챹!h I($$|0# 'Z׼rR;,})qr{%=8} bxŷW1 K6Ir4'=#'$endstream endobj 192 0 obj << /Type /ObjStm /Length 2165 /Filter /FlateDecode /N 94 /First 861 >> stream x[]o7}_pxEQVMuj@2hH,7sgHىƭGjPܯC^JPb c<^؈{)QDqM"QZ тhA(4pBhpWs|ojJhx!|ȣ=wHx.j&#tDV* ϸ Mx(M$хU3p[r #sxX[aC hh"5gQ8Jpa,aH8﹡ 1% +bq qP6Pee(oIh@*E$b%Y-1 kD0P[+p")!4_s# IDQS"?a:- |Lj  'b xZKJG]ɰ\z43TO"|Ҹ[74Dx4A76ZKZHJ**n p><>Q;GmD O:Qd gcb\Bou5¤#J&v$F%cƭ"ƀ7}D&bzfGU{NKyzV-!絛7߈x|U/OWFOE wa RZI_\jk:el>_0-Oģx\F.^.5aS - Fflۀ)xIf /50, ?asnnBiq\ikbi[JѪJI(֔6jsLR܌}zΖEWgON Q~AY+Ljɡ":!04z#֯tX$r6^ P[y}^Nfin=7O9.-p]6k&3nv ӵv;pO`77Ʊ&Ig>qz$tw ֮Ye{}ITwb̂6'l<+َDu]4 F{gze7% wlwKɻ.i]R2rJIOT'NEOL cJUaWl(C 2Q7) ʘ( j\2̅.s776E;7>B2Ĝq?͂„ۇtdyh2>Wv,t RNvkXh7 vX)wɻ| JT:\Ҿh;hNGݭd:KV0U7`|XNȀ֜%2BUa]A7|Ɨ>}f QK}#]lpg1:yKi}J wz8G<ݔ C//~>"aP6dCf|B\v[h";6B5iI*-^F;5|ě|>SA1.'጑cbA#& <@j&ܷ;Uz >Bjfd=_W}1oCu2uVy&ǜ! d:bs`x6_bUH/2rXnjPv $UʤsbѠG:>Bendstream endobj 287 0 obj << /Filter /FlateDecode /Length 1492 >> stream xZKFWpUydďxY(@b^.fÀfOofLziIwsS#wΩ%A T0Hz12ˋ& ? Y0̐[PeoQy\9Ozw/F{S'[gAB4n0)! {t^H?  GkS!94Qܔlib>xX!Hyq޸rc`5\1V8My!|HGv=֣MKd^VW$+ۜO`j0p*hSg 4[_6~=#J62rtc;ٶ/J9G[P_,Xj%cC7E8rQQ }Hv63wt:;?dYi9 (UEH/mzT0 2fR3Q$n,0Sp_;% GK_A'7 &f!ś..^dsbҋWFR#`+4RP^4#+ ym(|&1 TUnMQifgMaj&[ˁP^Xo2)aӢaUu~P?V' 0hokhSRE5($$-z;!R:XhI6,u !m8~FXhg_ðendstream endobj 288 0 obj << /Filter /FlateDecode /Length 1662 >> stream xڝW[s8~3DͲ2eZ.ixP%c[iH:G:\uA2AEXcĸQhXUR5"[UF_8XDPڊ1r[Nz M̦y,ʱ aH")sN_VO +kb@H0!eqQû Xمc'"`rQWCf )PL jeknsq_(C6:䮽7k=e,<w9ȏC@8˂IJ`ӧ*{Y(sRO 1>"/gtÛ&S$}2i"aC\_+Fe[߂k!pRcZiVTrNfsέVwb'K'[(h;MbX`Y޵E JF1w| x?@8 D8M 8M:(DPnݪ0=&M¢ju9k EN/Cd0dy#+jQ nm^l`ahpGa8Mm V]p*l:\|=!: %YoO>}Π tL8 O?@)>l'ا<NnmBV8D,e4dJs8vV*dʑ9;A'~t=gQ)ٌ5EǡȕoóZL1V'P:2;'#?!@A(vߨ, ,*wN4zU3Wف؇,\⣝m\KV&dxb|C ~<1|oEw=Oa" i^7G.nQEiaUVA7SFdcAY?}y15Ye?e5EDRĴ]3[$aJiڭ’ q%0$5LQơ ╥#>vp=t8I/c?6sq7 CaGacR8aCU#:$4㉡WMuތ}z>4 * 7^53gYҿUbng&^KK0)zJUF{[y/>T?@Fe2endstream endobj 289 0 obj << /Filter /FlateDecode /Length 2192 >> stream xYs۸d:Sia vg7!C'Ɂ([TD*{ؿ}>Hln{0Nn1d(T&` FUq矯;=BC,.wD])rm؝ ob`J/Z6vMl{hvǎ24Y4if޻y}g\]ןg'QHd!(ž8a:,W9̈岰CDk; =Q0(XXIP!M^kLg|[\gc= /E͒0$2M=mBd3 X5WEsI˫?C`V8ҤkR`)\h]8rGߍ" S:%A2} Aq8anwXyUǟ8>m\hg f[Dǻ^>lӫBf\Yg(Wcwݶt+nzWvV,>`K?4єdL͚ `8wO~ٵp/ݱ["{ 4۪tMcuc8;U/wu@ېujΖs 쏊 hպ"w[6Zߏt=WB$Lx o砒m~7Zk]cG0PGpC~nZ~{"xUw9HI@>O!k_PYodbT?; 4S,evTSTGr; ƧLE0@SG^G r NP/U)@b4l $>3 pB!"38rj$UCB@oOB8'UQb_st]u=x PE*= j/'A8q[#)q=nm]evT}M0%)C{fIJQs4ojL6 &x2 &h2S!4IbU8ZHXn>LϹ!Bf lT q}!F6jqh ٗ!'*PcxUvdTc* 9ș e"-yrh(L pTMoN\gZ`h_>` Nn|~@ȥB] ͎O˅8! eJpnEbs3NV# Ț&wtH> :?) 81ha%ELҷҸ:C8 OMY,8e1endstream endobj 290 0 obj << /Filter /FlateDecode /Length1 1265 /Length2 3768 /Length3 0 /Length 4482 >> stream xڭw<Ǖ*)=9 '89389l%tLd Y%ߩϿ}=z_}ߏ7?!T\b @MO$@z~~5Gb10e`n!ͻkaޕw+dt}c޷iK_o_4RH;CbY0TF\3 e\@ǘ)HmT!t56 ̻tt5UzΟ9,4Iq-jD1@[?+ꌽ~u1%g rzx*4#僌8h؉G7+S eu@6-RMYt_fuRIצ7u*0TƟ,,hIW"_PvP-MQ] &5n7Iyrv^%[g LjxflrӨ>r߃Q'OXߤ6NL8}T}~]@_GIwT"˞r8C- R)b"n%tɳhJ)Jd{Ʌj_ 4;]%|Tj_izؼ.pi:n~pc<0gܪαbɂO2Fs⢩:m"ZRdLt濯?k;ve>WψP<ᵍL?.N|;'(i乩l{MyzK.11Kw|f VT(tSK6<=3_? NrduXCXF].YV7-WQڗ!g#ei2+2(0uSЕNq4맫Q)5rXAȒ~z;Vnۄj7%٦?-Jf,uWs\[Ok6>:#+?UHB.ȣ&YxJ&z:l=$)a;0лhQ'ثh1f=Ƒ[rz`UJ$ߕ&%w-NdܥjZo,-d퍥9:s+Ձxzy!N^i֏!;9 գ:KL2pi*cnluN0rTq+9ՙ޽y>=$'HM<.+319r,7 {mui$ }N璗m.OI0V96wY!nL{ /bL%i>?;@7Z24;]t7%WZlqΘ!̍B끐Dݖ1灶UOIW"Wd3İ a-4\ZEY ^NB>wD$ٸӍQ"sNF|Y kR]S~]aLA( <:}mpkrH*W 8٤6C=`j{_;8#x'ri̊ь`bLcL%<(ojzݨ{BAY!`TFvKU2S&ϡw--M|<7ԯE[v`Il}ښ,dÔ\DArHg-ign2Z^"]2xIi-5sOAѼʁ,$a<+N7}cq #xAe; 8hxYJorj Le+paZw7Whw3 _P_BwŽK| R[aD;ؠU 7j^},LGZnr'L9ӓE헹Aɬc,K)p ϕWDHb=Ǜ=gǼk4ֵ =CʚSYC5[ڒeⱽ='tC?x TJ=J,y 2ī(C54c+ق|*YCWu mi_W.:x;fkDgrǝ @~c/iS1m ).XCԿ/$ZG'_^տ'$Qc"XUz}#>LC]?-.F1a{Voút44Bi'C3pk]= 9?:m;-9e*$P!!7\FN*/ 84FvS):1hr5Im)I[ ;~mv&TLW4c\D6VuMN} } å\IJ\z`oà̜28O-53sUԂfSn~evB*2Y/ҽ}ZsZ4,t(F+Xz12|螞+ T}jwϯVkUżX >̼3$IHA^[ /,yK{񥈩q9O0\LXd("Vgr<ԝ^Ƽ0GeoTN`|"!ȄzNs4NhyWTlN Z(|+̤k]L46Yc)\ z Q[,T3*~p{pQ3FlR/:E9bMufwC6m'RE%+0'7Q7*i5zɧ&\`nhSڱRw(=J ~y!lDt_;,GKLa#ҕ'ĝu7D*UZݍ˅F -Zk> e~ŽW$N {Nf0p [geePN=)6~ˡ{P3VcTfN\{8'`|9 +"/wtۮ&PHF*0y̳WU" :DG'v7?`02Kصn]#Mw4WCLG1X.N,eW!Sendstream endobj 291 0 obj << /Filter /FlateDecode /Length1 1256 /Length2 7804 /Length3 0 /Length 8578 >> stream xڭeX\˶hq{ph$4%{xn%4Kp'w N\>}f5WzC,f1ػ0$eـw  '^`ȹ9@~.~.7 @'AW@defbP4qٽ03A̬@.,1[[_3 gȜ `ne0Yrx6wuE @&=Ebo 0Y *A^Vw񷮶J&vSg3 v. '"dT-AVvu12ۂl,@ĭZyU\,&Π {oVU -u-Xٻ{:3o~i@$<}3bRfs+{0`dr^ 7y@/Ƭ,), N}Wn._UX&vo&no*&>?RE7TQMVRSz9B&ˁe5u#R;bfishA|ٟR|q +r~[/_mA[;S?^ԋ28K^ ;/ve_9ۚ8ϯ8Ûk.hwr V/!/CӚB;d|  i`9\ujT L=b5 lVc YBå/TC<5;7Űˉ["vhf<]_8labc %ݜj' ]!-~HRY*ϼyZ"]YESz@{XlN eِ/iɩ"@ Qdh +>E"uZ67UFKV㚸۬VHTӫNؾ'l] MWvd67Ʒo~R]߯z"|jME F7Kč~H?>Dcb"&""5hEdӧF7;_NĎ.-IQe(Q_OE?;zg`4ǰ.es1 A2j{o a2.xs/%# f:[P'>(j,PV6>YYʲD^oCoxۚ%shn>K2S1ƿƛ|q1IIL$S%8=}ߥZ\ٞ6 / Q)E}֌Dfu|,"}`H}lw}4c~@:NxoS> |ڱr~ޖ } GsN Cd=vʶInlJeך Q&ƛoSLݳ4&ln; 3ւw[ Cəz &jG?} joɅKG̠2{ t$(fp<J03L>jYVgaBgJ~.m'VD#"p`u栶䱅Lt\rӷ 0$ͷ K0>c~yG$ GNovU~9ѣz*H)0xu{`Qtn $0M7k"Xs`bn"{|V(㭒_9w<;h`"ɂdfG-S<4_/儂f^3!wj)Q(,l6U,!0ɴg#~8B,WG٦}3Dy`>soOezG;'}^{0e9Rwq<"kZgfaQyqg6Ys!򨾑N2 wZ{o-4L -Yg Ȧl4v{]j"nK ȻwƋ .u au,UyhN:{ J{H:sc~.bИY*iPc&;)x@I( 4^|o]yG{x$G^fO9'*wN1W)fR!ݳآI()] 'K"ēU:OZl8sBt9CA羆a浕AѤ<*=j\&R!w8KG},EWʛZnr>ě$ܸqN-_WF6Y~΢-(!9 N0I:il2)nM9(w9ɋcE9~5wdB+G)!-X~ѦLg iX9'yZr?Г^#>g_A ]O-tfRlctYr`hG?y~@Q\G$Gy l6pO*[$G]0Z)h3E06.ˋ0p"ً1HGNrRv˟ ϡ*_d-x@z'aN;)Ct@@(|{MT&ri<>{mJHWD ?9{v[g.%Ex@7{Შ]'^iC4)U@} w`oN,pejKEҨ1uff"G`JYmͻ3qOx|6LB_p(IMb959JѸ\Nl6ֳj;.Hl[QLl³c0+[& `n>mzE$D E5oԸo7x{&CߞX#ɟ21OS?EI*\-E`&;qG<`ͨp]=aOB)QA^S+ ~:Y]ޅ0Qoc^ۊ$@ӳ;ic)*&V ^EA,ki0e6EN|+ b:pB;.Dy2G_iPnC>[ #B&Cd,sS`t3hy#sg02m>葂)|^X&ƻޗңį;,$ﱶQ-3hI5By!'ߣ']{ϝsajޫ"Qq/T4(sZpI;~+M[>I=6'1y]wsÊO,czTllV!: zL46YGrQBGaXZa6ߴg[GJT ɼ o8狉! FvuML OvYg^ubKǩ;ao4šu#~zڝfe-6پZ -)1G䲯,Ѯ#|"J鷧evY$mHV`}P9 "d3lqB$5HϼߛҮUĸѸNd/Oo $C \ >TeG00ҫDAKRQvgqk'>yzb]+0ѝ%_]sƠ+YFjx kUDS{Ve#* i##)ڐdz⫓"cOo@S/DQ(MF溌g;*+ 6CW߇(9U]'F(u,358%A||͒0v܅#û#:olL琶B.W-Ӏx):rы*&muo7ύCt/)Q)+K_dͷ$s&Apb+{o8[C>AHܴ$ڗJ#teTa*!1 f b|vRRxM+m%v]w7O[ 0*^v '56&NV!ћgdzˬQ| >oB=mzьj-urw&K M`vBrŗiWIJb鱹F| :V!C*_|o~rMܺ]@ ~t1E`Yxj14iY]ɈS_*nNr3ƻc|+wy^ꋼlWj>P~h곑.4|IW"5p$K܆P}C"+ueF^<8bܞ`vx@_ذc!P'CȒ"`y6Jg:m&Qo}VS>=>C 1TK6qsݾK\⹳ SK$$>˭ctd? sw,?}D9[Aňh{&x0ƍݛ 8⩕"lhe`&zXY꫷xd]ZgyLfaѰx3rXz|Yib&?m0ouC|S3whqP<N;@0oYȁTiqv/̟B鲪Qpe="ulL/I/ؓX Mǟ&9?tq5}&׳\`n#p7-(oLiDMln}\̎uV(?nƼYW5NDHZ' ޒ5 i`}8~ Ll5:+:q\}p/݊q3 Q+^~4 ;a[KDzs <ӏR=RY|GOjB\ ӗC1^-C=$#׾_Q0)Vgٲm Ʀ_=6̨6?G~?Ih?5ﴆv~(|?~Aލ5[u@=7:c.q b<$ 9ɚi|u낉꣘9$?Ά ÿdzLXCT?Exf_.%wH7m2cc8щτ@rQ־@m,׺^]&u;E:!M;RYu~|wVUaJJ S6pD׮b㰄+ak[ "j%%EÊu`c`$_K+k-|e0by<+5WR ,)$$+&U͜ O,%\lz1NRdPJN5O)fkrƃDɟq<ϔܷ]tc6n7eEM};@M;գ3Q‹q^)&4+"F_`e^a؍4heb SK᛺@8BNt"\<*B-iB1UL-[Y[8D7M6+6_Z-@6j*H6f%5%Q}g4UZZуc{dai Etl%ak!k,e_x1(;ūṆ(Vf_Kx5X@49{qj^xrO#8W蹓䥉RpWI6A)s޲YǪ;y[^1v~˞So6n1pI} f bl${ Wzq׾X9BU` /|yWv=f9qD`‰ [Db>L2j]N [ZHeyǀ~h򠮘=Y.yNVKJ0S[=Rx~iF_Ar{b}?RH5{}sv7xjvJ98ri<C%:9smgڨp݊dD4aih!:4JG}OQ+7Q#z ?`Yx+CL<|T:1?4(&_7dP;[ltcJ"HIto ;b0y5]*̹pX"ɱͻk ,[ CrMFDyT{5 Ik[˛E<|_ z.eC90:#Wco8"GTya' ㈂k : Z,zO,m"Y@"U)f;>GBn_Cp2bp!]GjH{E1T:6HHc/O$>9C#uD d/Z>3* X }i/M_O2+^o=0$! 7" PJÊAzը M9泎boM_ŃVIl&G #jGo~I!b6!xA+7VB/ &72aJ%*"#Bc#7-d#(1?~0߰?'g6Z2̓w&CʉeU$xC9؎b}\Yӏi5~@f{튯w"n߲&l&L[ŽDz%1jWendstream endobj 292 0 obj << /Filter /FlateDecode /Length1 1151 /Length2 6806 /Length3 0 /Length 7523 >> stream xڭeX]װK@:Df!n[AATP>}޿q]?s>呃9Y•<MM5Q'. +pB*B~qq3 OTBXe(89"ll +( u;>:tpw^@nVK  KI iW'A &Atָ@-.Z\A WPG/prtp4`pW !<;u@X!m~!^>no8 pXCH^>>‡_k/% P\V?~ {@^`^\q:UaPпHTC?$jCH!g=C=\; h w' 4߃|h@?Av`xhu)7|Pu@?A|Pqgn?ȹ1}坼<'/p4|G+p=ֈ {ípg@viMeJn%a Eɤ=8 q=Qz%f-L$O6C܃OƑuhkfڛ1+jsag;F6h>~4zԯSY0T95R[K7{*NNEf礿g_hM{/N1KdV#j!K2HJ;IVuc'2ihq"-k=xJs}U1ީkжpL4ȝa+ʕ]mxjC\SZ-rcdK8SLc瀉t+jg%ic^Y4b%|sմ:CEU9q"ΡyC zPV ǰߍI㔺\s+NfOevm?iA#`k_N/x[&*QI9yV3iFc%M)޶gD4-/gӸ^|1t+_@_xj>XO"="*X!k(|ѯnV2pbѳ6qPWѰ׾.D d `ɋVqry[oF  &LzD>TԁK.P@Sof*N'CU^ubdž՗d&^A4s2j.d y-]Fg7 ƨ{TKThk=!?423؇r?7r3"޾Da\!?PC2]!ۜA܋;[nukJY]仒S0apO[C Q4jʰGxB5*g|fF*K_SaZDO Q =wZ 5kXTO]u;ܐ4/?n*]!.:;gx3ez-SM, KyRAIX=lG|=k'&jɎ /-R2},tGD]VVB|~ͮ$Ӈ&8fkHT =z}7*9FQgБf{u`S27{ew_֟MW MYt[ cTn'Ք{2abWNi d{I 2ORAm5&Y@&{7:b(1=KB;=]WDşij Z|XdxäaqݦOyh?Jj$6 z{1nv7dh)p^;Zlu^OGu er{lWAmĘH_e{Mv}0@_)}WOE>֮+-Kdz(59&iUE cl"{Ry#"Di9^XzJ,FJ/5QЫ&VQP MG* [ nмoh̅7pKPK`ȩ-۔2qsxk?9[ ^"xk2,, :S&E/,Kt|$nkeϖ ؂1ZUF\]8Ϥ d<cs7y.j^wPN!JN#/[DmR#u?Ͳ2i4ܣXo8;ZJ+1 ʮ"-F)w<^㤗A< (cCWƞJQ Aٜ3{>W:D~8R6[z@g;ZOde %_W!?33RzxB׍"!CSZK=,@O"&40@eDY[+ ()X@mm ٦ޣ:~gd7ߋԎ!et"TO p=(s~B6Ɛ䬻OΦ$ &KeXc9'LʃJU=6":PAaT;h#BDj/J.'^܂(SMJ[af{c=ŵV£7\#%r.͘Ru61K囋 V]*L <38Z4w͏E "c,L{auaNEyE_Ǔ -$, 9`Aw=<ߏ +2|Sr7rˈP+MfegC^9$S.ۀk{J53i#b^մmqlyz@ҮH/+*VNЋXl,Lǩ L>R]֣Ǻī󯚶ʘ>6ҕY^mשI[+ &pKXQh_j u3n6ďTBh}^dBqqqz~۾)bY%mRŤ5teL?s 6Jpl2ʗZo?P1 1k&.ƨ ?|`>UK-1ԡ1XƳ~K`j(^lYyJv8n6LTc/='KM*ƫ0yM5$hxs!,:ƿ%"}iߢh2Qc1oa =)$NbUٱ@L<+C&|)c5s]FP qo. W-"Sț60ҢZ 2VZl'\zX$IBvΔ֬#${zԾM~E H_Z]9?{w+`}Dޓ2~%"ؾT; r K=Ƹ¿|&{N . P͑Bד ظ 7nMh**nX4 :iM^a zWݜ(TE7qm}mWobep؅ov !/﷞~s_IKy'H0,Ti*.k}kS3w[GDW(ݱz-Ct<SP,BΡ ;;˭o>ATWYҤ썇7o!5(S||ExD'\GٷU n]5G̋+nfj^@HBW `&뤅>Zジ=ɪCDž,~E2ܖʛpMd@c'jA֪."p<]F=^fd51WrN%Q_M`YbB1񫰐Ȧ_NZ=Gi%JW]HFzi֥hⅫ;prȐ'mc+MG sueQonKHPiW4߉+`mFuN6o P;TQAk}ɥ AV^Bwst)04N?9i^jd)xggUɳVJ&\QO{Rhь8LFl533 M\Ϋ'w uM dMov8:Ĺ+UCybf% WIpNGx 4 9OñhZxv_Qdw/'nIdլ@@~lcS&]% 4+~<p.:96RȞl)5FNS7fJq 4@m%K?5w1pvWhYpo?ͳȴ&ơ΢Un^O`fUHzC LMB}nFDi[oms[pȈl?T#ߢbRg7h5XMKFI$7k\[cCf<UIift°{:W:bpyQOzGi֔}0 N .> nek)@k7 wjyἓ-FΦ4q*mϫaZ&UX&07 fIwf y$wr"_qmC(Na~ΑN@ΤHhr׽R!Qx="՘5m+G&2ºSܸDQiZ=^7l&G361ퟖw6V3U^w]ȸ5唽1h^L.l=7G a e.]w: ,3K 6- 7()穸'ɿ!PAh-ǢN 4P0h4L?q"zb'tF]g<#dfWG24?< 3b"@;j^4$E~YL'/Ve1TGDMb%c4Mf0Kx|s,|,H>M8W砳<_J@J `فBn&s42R  B'S88xA=t~RY^)k(my5^C<Wh;6y7f Ssmv>ϳA+mgid࠵-\P(yݸzʩn(KTVoG*yendstream endobj 293 0 obj << /Filter /FlateDecode /Length1 1107 /Length2 4458 /Length3 0 /Length 5168 >> stream xڭSuTTmAZ$EF:Ar$a`fNERP DAso 84QnXa11yH U)0rS`a199q&>$)j(w_4 J( `ax ( 0EA0@~@0 s8 X}B%7G@7g Mt@!}0G QC ֿ5=HC/_0O C P0ۿS-``!HT S&`BG9sXW777=?b_bc|wo>yW- 7(@h/~{H /@9|0aQ7I 5P91}4"a_߼_Bh#/'-%QHNHaɈ_pDx3NRQ? bx-Wb d}rx$; sFH6H⭺#=1WahzRx=?п]UU8^IW&ݟRBAoG85Di_ Tuj|dX1N>Y=!H=oKZ {`~+ΜL=Q?1f7T(n+\{*gڨc(iNUݧ{x3)^7 -PՇ"@? ^ xM@".*JLTKkHq__T;kH$&-&]|W/n.9-͊h8z62,&o]`b;~ڈfDcqʈ}AUmv Y)``Y2). xKE"y7T)rډeC!k++kEc`ǣ7p'.u泸=٥T2ie)W|jBvR>Kd#&54z?Ub5N$}ȴQZɑ<#4G0`8X3ǬMsU3g喤F"hR`RqڨA=%74T3U{Grg(."J귧l}S~Ʒeh3+5{U*$9_岒{lPjs:̒4ozR>|563L+n5qh&p ^2kG\F94|2o LFuJݖܓMD;VVπ&pC] %ި/eh-U"M:YVjXcX/MO[ _sEsސ*[&ɵ?QU>V6x\w<[9Sv: |\vzU> mu4yUòT[r{U ˠ k<޽6]MPd(&@|HddG1N#Ϸ~v4>:ٵ1uL_`R.z)d9҈F>KIC_((/8m^.=-fܭ>(?H,䂄{e߾n?˹LUar)CҪLtsQ+!`OWӓ=hodlؿc9:UˤoA\a)֢n`qQ/EJi9_ g-VcPp^ R]d\`.@'>VQyIѶcajbxdHRhFxuuôQ9b=t`Q\!t qFIQԩe5pyg=SI{0)<޴wKDlCH/L/ɲV>Ԝww-ГP>EЀk`?yF^=uhzlaꕖ,T|;j) g1Fӆ'ɍpɎ=so>.՘>׾.oSlp,$ z u:<.R: %WOӎ&KGex,/ueAPZScV鳾ʞf]TZSƠ}nɕʵFW21f]|&>+ ?sޔN= h>=j/> {nCJa=7Ù_<*ЩP @ r"sSSmv)ykR":&ӧBm+du(O0ՋPK,c&.]V2t߂yCdztF keF؉F$:CjLajk3qԲI.;YTq1gW4Fo{9/$UUu P2޻Ъ9eV;jj<;x P!Ѻ^1Ch$)nIƙiDj֊F|ltf 8zۍbuo>9Ƨ9`%. M s$9ũ@Om@HKMV GWjE,+8^Y5҅ԕfhG'8m5%r|>e 2Nڣ"0/bamXI;e8I[^`,`*9CI׃{YpuH&+iPΉ-$.(6=%Q]5ϣ5fejCM\_UuA:+aс+v7OdNo=oUܞS#b%%ؙl mGDtSH/+$=av߈M gX 8^Ϸ9Vua}f`N:@$=n]Jo2"G*뵕a.OuqF7Wb_ڍZfѱmDJ獪6l}l#wֹpMexpedV!G*E 9O0vvwawj6'PqVۏV//rx>/\zTiK&4!^xzDL[#k-zm2I6:yr.zB _W%C`dd}zəE]} Ir;Cy"ǵA`SھhK73c.y^}Ffgӧ Hm=> stream xڭR}8TiNeik2Qcf"c*֘9tqΘ/)ׄVBMPcJ aUD5fQ(r>m}~~}߃7AA:6${$ ;@BK$* @l}=N(W̃ S'y- 6 ,A0fʆ@80? @G"-`Y;rCP3rD LlIb,wm at! dηrW h(W(y`>kXp ,]w|,&P`A[vX6<(#b0!a 8"֊LQ$B8`F`~- *X$  Ä0z(K.,MP ]mЈV$`#SՆrl!"GAX q=OP!g* b ͕W,{|{K{g(SAAzĚh6XlXٮOHD&C<5ݪ(P^nq䢇){H7EwD7fg»L g Y'􅫧.{( IPGkRܴOOjk /W1_NPW>w~C2[$Z"W; Ïxwv*.UJ[NWu=μd*wՔMY׵ىj~S B̂M$ k떈'GtEIvJO_PBcAش~yc[oBC"F&7~PgW?o~?f2WNUxVۺj[L׷G ڶm^bz$]RC&xG;aՐKdPم%ߣg`Xo/-$5j*neH%r #bB4Nu' oǯ9%O®׽SZE~|"^QGUΏz0`b{ @s* ߙE/gFGh9ã_j:OU#fU;{'\duKr'3+ݙ^_?yL>SYF2^3wjz H櫣nT>Z}U֨>G??NxVpݕ" |xT|o41°$b3+N+Ֆy݌RqIf:DQ~i˨Tp!JZh7'e[&n_:y4endstream endobj 295 0 obj << /Filter /FlateDecode /Length1 956 /Length2 2204 /Length3 0 /Length 2838 >> stream xڭy8{Ǎ8Ddf0!vƖ1 ,b CeJRDv"vD%Yڐl,Out}{}_(;4%1@,Dj! s3@j!DTT̙ Ma-l@#S7BH=}RD0g0)>ln@&H8AD8 R@v`J_Ng2A (D6zS"_xld&8S ApR I :5 dm{ HPc9T=e 4 5I»Dk˦+*~sЊEu? FZF5X杖^K J ^}#J 뵷Iy5Iu0't~2[gOm?;Y*8ڍޕ+8|&ۓ|%QqanF' e a`W,jW4ۺe5됐VtYE>t-e[hLIoX|b%E 3rFFW*4rV#'W0gƴw C L86ꑱ4gfOV9c0^68u畫1Qm&>O[VR[vv.n x@QT ی?3i?IЬ/*qqշ1puU&tCygqj)ͮo2׵ w߽6Jcҁtc2H{ߖ fskfG>I~x!@IUdŚ ]P6Ns[/J;y+*貋f)nXse;V?9I}T>,&Qa;&ýBHNwS=aɳ/  vˬ0N_~@_ R8yt]0^1Y{iQqJvU;o,%ZI* %̕FAPٍ^YY{6~hJ#=qJfR ~ݍ{Bq~ł"T;rMm[.L1SU ωnu+b׬.9|-'ȉWz[\mrOϩf݋QoZIΣ\NƇfF|=,KWdGs~zT??1vVrERАɳwW*?NVv TX7\|S)Ck6GyMJo6uqKR[HTn:^m-7únw[ɮӱrgB^m-M) LuehRrl\IlKendstream endobj 296 0 obj << /Filter /FlateDecode /Length1 886 /Length2 1443 /Length3 0 /Length 2054 >> stream xڭR{8T>-rK[a5 i02dr1Ռ5hK HNEE%%)Idk.$Y=y?2]9C!h`  gfF,1"@Yb@pDHd#ghx!słFBB7K̅l0l+N,RCA l1G\p@#3̑|PI YP~<8 Ɯ?L}C/No<+DHİx 8V6 sI,C#lW4kȖ@|&"9,^al|FBHT->ZcS"2J"H&ľ/ۿlp4 )v%qa!X`H@bF"BB6aBD<,SHhA+A,>bA F-l+,h,/b+VOk(BYEusd``=쀽=%/BD( /,˗:a<RwT-KT Qm|GfPmb!I`Ro]%.;~Cl|maAOf) W3N Iz?e_?P.б^8x4}Uڤf.ײ˵4]eS:?0ܹumRA3^/#c}GӬCҎ箷Fs>hnɬM3{<#H4?jQ%m<̏[pnMO^F̓6W5}"=Q|^kpo hӉΰxE5yb9e%6W*S,XiSzhsQi.u'f{;lV3N+Uxw6_4ؾ9`@5omaλE |0[pGr$=FЄsme)knWr:nY/&1}FζeG$7_qzK^Fd〓* ֦cᮕqӲ̄ ytl/պ|xǼ=kׂy[8;A4Pwtgɨէwq;]h *Yr]IL>%ZUUG=r[gqj&߷禼?q<+ңuK,RڜO+ɨl_GSOXZ\躛>!]xF>d !}le>lJZih~dpt!cEݵԤs2bv9.e`IjfR jD% "|P/w,Mv!G> stream xڭRkPWmԚ&jmaZ>0FXj0&T*Β nlh""XPHB0JEEˣ;LѶ P#>-2cP)?;|=\.TLHFhHNP!c`4@ 7,ZDR~PPF+Mrqd@n4H1`zNiXE@׃4w A!.# r b!%lgT>M)̚ E"VC-_BgAaj^!@cBoW@f !MΕfYo'̆FNd:Kqhrӛ$> Lj8IL }UYg5B y.͈&, K"HVȮg sΊ'5N: E#FӘ/aGIQ qhHa[L!R4gBƍ{ l/^,.>aDJl?B!xϳZKBh~/ّw]'|Y̛v4^Rv Q{rslٽ>&ib*3~e)ُjN(Knْ0}sơoE_G*K9;qk[zyB:9oX*߽On^o SKzzkwuM.OժzE5}r˫m;ƵAo!,^yസ92-Z4?udMŭ[U1?lB#_QO72a*AlQQŲ撫 c_RE^MF5~x7ԻE;-5:].z^U) lZm2+ahA1"JiڕT&oxoOڨ_vz-}UY܉%>\|kU=K_1qZվ#wl腾WrT~^2{Cg;y&kw: IT~e@Sqc]>{8ij~Gm(v&hb.;w;'=nYȽDLlɧbyλv/'4yoMt\x3K]=] &ں/8yGUJocٴv;.pEݲ*/L 4endstream endobj 298 0 obj << /Filter /FlateDecode /Length1 1612 /Length2 17905 /Length3 0 /Length 18745 >> stream xڬcx-;xb۶mzb۶mQǶy]kk}U5GQsNrb%Uza3s +=3@E(Gbnkd#'u67vv4b37779@@IMKK_B&^w%@z9`amgUTҖVPI*$́v%7;kS9Ŝ` `44X.cm枦...Kgc:vnfkp!Gg}\\]L]*I?]#L)_0@?Lf.v^sst 7k18[;ٙOwNV׿v;+qvu1`cfonKk ?" p03n?}j?3C `fnǨ7%Ne>$oEF!{ZNar;cWajf- ooeW;Y*f虙çfemj v_EQBGNLC?E)U/QZ!" {YX9r13 Ʈ֞ݿ%31J?`āf̊1x/?nS7g翪-5pk69Y XcbCcajŁu;Fa -3<^K24vE~ԃ(ݜYg>Wr:LU Ct:\=Q=:"f4%` 6Q?=RǣO%5O;%Nu2ro6|uë\p7Jt=*!<YfM5?ZZ(hYzf'z].ݒc ^b3m*:ͱBH:"4|pE"esg0Za"[zW"|{'t;cŴdco~""cl3l/S cylN|צhVfmfWOw{`!HH",5, Gv88l3䲥4Sh{TZu۵ЀbDG HsV%Zd(sH-wTsHv2+=zf= G#R"RHN:LZ7>u0姧ԔU 8h~kw+ue]dӽ _/h?&4>TCD?8LvS /}:$,w]*7*qumwPg tuv]MDQZMbHELMW-NqS:mVVWbmn ;lgqk1H=?|N7?e_6ϱ&AYuae5?w=hՊy^KC$\ Tg2a"0N#j@ +8` v|h#$p)sψEjWW`c?WXoVB0wt:]5|53G1(ٳksu*`:LC~:r\"[D~D[W1 "}j yMԍx*0}/\v% 9>x/V9oz WI̺Q&Za ׆7/P`嶝҉1b撩ZmFvgn4Ɲwu/^V(mL(\!S2" ˪w)"Ү>-s"ăJ.$G@spb8֙ͺY'[rqn/鼴Q FiY˘.Xї0WR?3cja\ k "Kݯݠ|L#[A5ì,F2ѶDT.hVn.^FU.7W r=N[ؿHx[ ?XOM:1!]鐩K[L҈ zْ-PܽEsZLI0hw'ZeB4} qXr'x-] ρjW"It9I:sB1fK< u,tҺdILXn-(K˰ST߁@T^n"@6 .h+?qI [K-G0bV0nx7|:|~* /haPq?\^QS $$䡋e^]5+Vo?7"zͽ0>@h/%Zq_ZHd.AH⚼ܟE-o2o1,eS~=4t)%bÝI|$jP dWJ|fPҁ J<~& xo}] WZN6?v0./c?@уkVnB'EN|KQGNmFt ws, Ba] 0ӵJn񎇦韔DMS WNX^iQZj)r!7 =&ҕsY'Og~ԤԠNS{ܐ#%ق*H+-pZbUiD8tߍRaY=PA;kɮ}( 0\׀pչ:!k+A.qjBlR>۴-wOd֩\Ց &_-K?( J^̤¢:*2,>h2쯌/[]icw4-K^L[kR` ZNى3g7e? Q6H:Sa If-F(>kZGhw[o<|Gq8} f=m`ބ/`bվԻ~[5b=x}$+@J Z7_dp:ζߢ؈O0wj'R?g0GGȕw Tr;{v\K&Y뎅yijdj\cDǃV=-P0<e_|m=h’,j P+PK3i-MgϠbC=RLPI' 4vD9> Ҏn,LVYQK[G!,oBe5LJ0Ir%럩ڭ&ޞbay\>N_cdGJ}6 l`_4b;]Plw9% ~Mr8Kßl 잽ʉY0a&%*}b;\^Pj(aV0Yt*8;$1 X** JsdK0-./4֓ _uyL+!.Zs? [`z`2v. &i$*?vޣtʩ)D%Z!W2OC KF~=(,&#Ug4mm?vj` b;ec]ƤCtY`(3LV㧁ɍ="J`{QΦ<2}\6[2dr>.Zmj[AsL۬`$)A`|S˕^]bhucͪ}X:|S %&"Zѝd|)_. jv+9ROz7$Z>42 -d)#kr=P )?r&EdE3*4]!LM9LQ NɚrZ)D0Xφg|<A=GG)Ze½LFH1 L͡O8;y nt;:KOi{ g*6nG2o]212d{ja%Uf_!G\"sQj5%8ԛ?FE15<3TvH?UlDm<l섐g)mf#&YWZTjB6k8f(u$ʷ$QD_*mjۄ'@(>')4kp#nit s=B_F0'"zU}dԳ¢<6I v8^BAlJ T}5anFn8.\_OY >$)wyw<eXF4M:Mb_#nՐaI{57ßһHaKZi _=yG1,oqiߠʿIxf {_B=ʸcu9Rv&}d-e:v'{ǜ<+G2V%pޕW{/ڕȊSKߋR {i,VْJ /tprb=c;d Y7t#"aC6kz7RFzR~~e<+|c-j4;NYp(/{~qaќ~قIm˖vw,)5V#ǃV77m &Um/1JN!(utwmz^1_x_yʻ,dB\x8C`Ҙd9Z;XHKb:n}Ty3-& -'LF*{"-CPl 8w1^6F C!?"=4(GZD-sp#YMW@R\u>HgbQx*sc-v-aF7贀x8o; DN~~q|Se\ubZ tD EL_Y4zk}n@ᴑ]]8̥a®VF/k .5XvCj~Δߨ+ &f@̀cWyoUє#sҁs6<`DpWՖ֦O?T,}fdsh@;Fdum}aV?#~YcfO&wm(O<ٻ)#('-rT3[SyJ'mlj|q7z1#sK6׈X˃9/!˳5KJu2!;fI:k\:p}E]?MКQlU*;Vca: R!u(dHw"S\=Aa0kco@aMI}.%=X'ɿQ/<%Ik-y oy3y̷pwyVRV5 pYKи`\M7={91R9 j10Tgi$畻=[g`',7 Lʣ}e9 o[noa$![3_R@j'}K`l_`DNN? Ì:).U+Hgil[=@KѡR]@_{;+9n%ի+RNqDM wTބЕ;Ģ;p_Ү aHg*M[0ЊN7xcQ <%qbƃ[RucI+k̨p=HjxjudL|qZ d"h0EէRZz=#"u }OE UA:I_p7ŎQٮpBk(zxNl)B|%Vu 0}2Ts~@"SNGKlb #ܴ']yjax@HUǨ۾ܩj[hYCFDL2\O}:zwp,c\oA =<[ +k)0tOHA#yv?6no?M"۽ /1e6K.5O}SYE ycV&h5Lz?"b*4Ԍ!gd.ۗrE2C+£:KtIwsS2/:]O8L봨-&& s N9ZxGÊ1`Q(o ; u51Es%ũɞ=8Y! 47ʰ88D:|U*񓝢#26  ikMr Q}P/M#*,#JH62E$K.v{g^kkd!!2y(o.(XIaW ;66K]x^5r'Ax5Sl$1GqD_k9j:x.%99(exg}n]_y Ң.w>3C[GvV~ȇ$JXSA A˰~Mi \ TV ?@_ kw 6K,զow>}ǖa&L[+3\ Ѓ9ey;j&!/+S \yo3r!)W~h*bU\:tP5$^jhCB`q_W9Mxrƒ f~{ ZӮ˔4KyU4gU2|A2q2Cq8 U_w2=r25Mɱ>Y?;OO Tʕr '7wR*ޣ CX`~6Ar$ ttؼHks2^2nCS:Sނ9@x,1 n10>$7)͚I!I.|@Q fu[ o>\e(c`GFs-RSYD1vahdRh:ϨDF$f"90&YH0m@@4{u[uD_k7p7<6z-i,0$@Tçx9H[\trM8BMWa%ɮ+PtE7\1 aKXH *zvEYE iAZ%O#`2 gZp~ovlDm&'+4i;B}C.F:&)5Ʈo=LL!-(Ack#Tm7Y8Ԧ:_L6qon 1=B`_8گYiOzx+1xsDx60ƒ:'p03~v&Hk]oR+\!*AQd#1钏$o19ۙWtYOTߗ54 @`ֻ@}6W(ܴ(`x̫T1 ([DI)՟KZ}}{iCux"c2H5ik!r- q!?cq:TP懐rIig)rGawshV_L}"/J/X!6X*\#+q&1qQ7>S攐d!{'x'4?|5\_F%nUvPvVLf7 yWeqE'l lk9NiZbsǩnYuS/FBά (5wLH9~;g r]Š3o_6b.?IHզ'attJwK5lcz*7ڙPcHݼC^%!trtuY hOV(N`#{OKҘQ ݻp=SzMWv`"[eo6n[!pߺzBpO/tt=+&2NŻqϱ V;C:x| !WH|F,{ڢo݅Bt4ݹ-%ATK:ϦN &6sa,@Zݫ7 jl_/@$0+ L,$JE!"ÉF|蒁Ln?W,IOfQ mM3rǶMR@]C8m-c wzWM4j&T^Vd0  AެtR'v-PwEm*Bbs*_E\nߕX=QCSraјhu< Aho ®՛883 P8 p|vֱؾOh5JYuT&w5 ]+2S<aV!Xnzh.EwkEwP鵢KQqZ)+'X1ԏ/126|/޾Z^I+}m!V'<*mƖvƗנsb|,Ah OHZwqw3 ]S0XS!:l B.PjxBDylrD eNcJ2 >l8C8K 4hjP-KJT\_#jhٱ2ĉB  H_ }~1`!9 1~q"]wVxԜIcmس e׽9ޙPկ)dҩO΅Ӄ %>am# "օiB~y=5|vU:_gq8axTe`aKfb%' |V86~ºU l*zg';AJ!$<'3W۬u*&aC=+(H ;Sa/e+٧&=ayN M#+\9 GI>CNdzVɜfЊB R\$mihrW6첵 R4Aq*nNPd/9wo>\5g/ MD5PXT"d+E\?xYPs8CQ\z=GvXCtAFIU޴tE2fѴTBC;6 st``ͬOtD4l1DVv%nRvXKTe1FG8Fvfa D |,q,:9fx'VZ1̂ 3峃^\BˤxXexmt D6`?ħxAEot#ܧZ, EˬKGxAug`1Тt>ò_6YPWWth9R 7 qOb9 G`JSZ8VY{<^D;d>@<& ;HˊWW_dp (;Ch|>\^w4l*`)"ǁ`׵hjR=lH^2A Gtgm;"D <#74r5 @M ye Vf\|(-ZvJK=_~5Dr/;PrˡNIKY/+|+K`&1psru%&gxWnC6%pD;l{,;4Jl9N!j= _)ϡ؂O׬ 1ըWjz hk9̻вZf?_k$H:q/1L y!0>,=*C1\*1O m=]oSԚ̪b͏nw2Jon̯pF֓H#[h%$/+\@qb CN9sdV -$Us18%|#VEĕQu"Y S]2(۞ިZ1@7&s<#B5Nu><\c*.HyΩwmbŒaMtB%˚ )R-hQ'Ʌˆ}/ ߹ҷ# _ XmTӭ{AʧT\1頂_ uX#4$#_/p!O{.41s-3tQ +y!4^6LxnxfrK #^*BvDp~~ŜRY!CkL ^7 +Zep"EPU7 ?H#4ZV?# ̠|~\I qS3o" 9%ij!:|Z9 o$l ze'}"σيN㲏d\rr˲+?ڹnoJQ{b- zz &,#@(wBD)U>V!Zzc$ςz&ݐ;B'Bcۯ]ׇ݅0YYp-qBԢÈ7-^?$ uܟZ)--n>Ӥ ]nC)Jg"R  $YUj0LjKꦞB!>AϯScC-h=MxdMHSQ[ŴY((4/T&;9aXO*N9ņhWG$e. ď4㽥eS\^Y=yUaR<j!AE#B `XCe}\ev U<5Ƿ2AΠ_ < }Br&A*YG}W :N ns,Q TmVѝۓ[IAM>GYG8?N뿭3M%̶ncZY=}+cZr yZxOma&& IF&h κb]"[Qwx88 «@gW 4՚}orW6}" Tx_]|/{nU]Nܶ )>aDAyrCҰsf/ZΤJ.N ZKB~(*]aLmƠ kqK@WmyTdki:ehD1:3Y夕0k[o9hiH_a2Xm3HT^ ZFPT*րIe$9[Y)*$ >aW.,m23 1p . -|di_VbD|٪ϥUW ` Ojg+4H=VjO52&gOZH'~RFz|ݠڗvP 1]lW{`/|Yrpg]?èl_ߎmx5A,@q5\}֏&ZنiCwўwdw"mBXӢ^YLr+ cCD}* O\@7Y%̌1#) PSVsCʘ9U׻_t(f{fԡe^أ[ຈR"HJft9Z -Me%isǷȋ$ 5ɀ>YAV`%?"Ѹ@vo("UỦlTƱp 7zcx0,k٬*UfԵm< ^51 3Bzq.aB! ʡPM2-#Ttw roD>:$Q)ܠ%j@OEzU':0qI|L.{yH* *Fd$YkmiT4 kka%GbLy53n0h_5+*7g ?pnlFm $;,朓s4X>'޳UA^d킝|E^=`-Sś>==kR}̥h7e:,.b⦍?xbuc ;nU9l0tzm\..^O)5"8)8hݢG=QƨrrF\>Q': l+KڱZ[Bz8re&SFycd&|+͟ Gn?A۔ GK]|-aXN7OCZ*/zf2ћ olB ME^t&rL{ojrV}p¾0` Ì̝q^60& $]03 *"^nm~<?:BlUUh6BDmӼv2J֝>A$?v[Z50Ԅ3 iDVT`L7H^И9l gR uȋm9QPn[kR-%%_wŀŅtf5Ej/(yPW3j,&'.fA~h\cߊ9nUg>$?>2~KHVR{']`N*> O7PEJYP"&:мKTnS גV9qIsqdz]@#@dH ;) Ϯ?'Yj)TV5ph|ɒ mDWHlTxh9.#F9--+א@ΌЗ9=V s4~0$$P#eޠl2±b;aͤROu[]zFa(?%0, T)<ȊG% D~&&$R+M *9 Bۥ>ҖTX_kM(͍ZBdU2t*v"Jz$x;xk]AD|_63a^52QE32G2>y:e+C֚`zd qrw W2ڷnY'endstream endobj 299 0 obj << /Filter /FlateDecode /Length1 1626 /Length2 11845 /Length3 0 /Length 12686 >> stream xڭtctݖmRƶSqRmxc[۪NŨبض͛;}zO s͵ڛH^NDHD 1tvR㒦11|`ȄM v"@n1@ `%ٻ;Z*jT440tOg- NT21M&a9y Y1 @ lhma02u29q[՚'dobdffdb`ohcp9?gXY;Enj7!{GO'*/"@s_,>;Hc;#Z X:&nj- ?k;ZM h&f&NN0M}[g_,N&֦L̟5,la [S;?s1q{@ ' c;[kw),$2O-K{ZZs>[;8_)6V3[!;kI >G"hk) #=?Nn&@#s8Z[ؚ|HtLS60KLlTgQU׿?n?Z3_0BBvnO:&vN +$?g@oF'nkdg( l?7 ?vwvi[ejF+g`LD l ؾ^g_]oj&Wku0}/?o{Cݘ]&y$T=(km4{ i'j?H۞#Pn3ptK!$CB2+¨ m ҹ\C`⩆գ+7 ^s骦-aa&,֓o*>x>qG@ iEMʙ_!(؏Rs8Qt!{0A, SRsRR`Q_dX,QrVy3:"xS3 rVZ}n*:2Õէ'c( xZŦZO}L눻7 k9{/j,-\UBO_{A%'p3 tf k5Ʒ4g{q}[a!7Y 򳟿.*Ҝ:Xݴk>b&Nj휙N aը o6hYҰٕƕK-k ).{/ J 5aTKHi)۾طN]D o&v-3@C,XMl>cKs㧱wj #G9Prxj 3.p _~Mln3& _ sl'm593Qz#%ˈl_+')G]vWR!52#m򿡿j_F,cb܇oj[ree+8R5ͪ[\u%\Otɔ424*$0C,tC$]I!ꖐ$CIG:}\tеa;txTY Z5?M5BZB߂ n,d_yKP]g#DOqkbw$*k5F cUXnMMIt==OUʎ/iXCP_iJ1QnYB+fNB1$b l6~G+ .XgT7P+pИ ;C- SehhFQA~15tT)skIz Ҩ!E #ӡz"5ËC_pK!/Hkgna[ƏZ{8\-ҟ,oɝ+YRPO g+I1,Et #iG 3R `o)CjggT6vB=%$V|";2"uQ\~ak9yJ|d4l6&B ;/wU*"ehDOh6D*<` Nŧſ,dl<1x)$M\ n\N6EoYh:Hv=W FGuڂQ#*/%q1"jYU({r3h# F\JjL[Sdcfac؋nj jRUѳKt eD<*4MIw޳-% lG}1H+6UDy ,:f ._)ُTz:8W',*NqnM1ɫ4yqoS1*4餘z*>5)a{"g{z(ӇdLѢ0Xiu T{迼zq xKR8ó **8"`[uzy[Ml ;'sU _~T+(Zv- M4N4cP![SK]35>4cEB&˒4rYion?`i%~Q=3l0o]/9DvBy- ϐ`d6zm*^dUw0lN DA\&܋zsnsa3w'&פdx%sʸӲuNE׈ʖY)c[$@/ˈT)$,y)T_@K=9S>k8l!CqXnf#Wj$ A~.¾IЋjO|@z<e޺>1p4KLd/x=H(RIGҶL4PٔKUߪ-tcO O~uv[QBoz|1HR]WPrx>pH Hex}XN^ GW^^miƟ :`[$>":[I%Q2%Ie=i5`5mxL }ߟ>pb2.x x"4֝&kNv`ZZb#jL+ZIP6Cw'N)rͰ+gf Q ^Y&W|TжLD|dJ1@jfzgq+$zNQMә9{`Ax̎Zcun Wv\;zv$g>ţ_;e%f!ړJ?FJ4:y's 8@Nͱ+M`w!%ڗXt"y=0 :jlD%D+tp~eJ֒(I _BY6lxk~3WN^/BVuM0Aށ^]R|g-\ax[ZkIFblyMmrB2"9>F8PhG\E^F;k<RW5P]vhJĔ>P5Bٮhon~0LmI!~ 00>p6놇1֦,ȚoOƞa]^ܜOɯ,btLс; $AN]_5G똼IMK<©**{3': f:=TiSްQ`S6[F̚JU5'VeV` va5`t%!&"oQ9arӿA3e .K8rRadKGlX6ķ?_#Б/KU*`yr-BUA!{E#:1Yɾ0ZWzmfIneK\ّM[sC`r԰_(Xr̎ S^8sZ#¯U&#'~ߝELz'tCvcet9h{rIt)2Ro" f&:g}Jy\T**b~E5KU#[~#d)2s"pJ5ZWc[ťV,a5o_JHL}w֊fqNsBYZ#sC2@vQCt}y j_N "!y$_i(Lc!{P},Q]GT*4f,R~O543 7/kN{߰:Z֏c aI7 R :J|l{vA`%!p(\Hz[{4<Te{9vO 4nfE׏WHBP&Ap#RCf)4eNj%$'N{/{K4.8v2=<ߛ^[|@q aWzj1EotR@Y ŲDθ$z# \FriJߍW$^5/iؚ%s_Uw6}YCሡRp.ghԨ=4"ۍm}6y_U[hͲIn 5u\lV,2,q;!nIS"+C/))]m{F&USKee.MΘ`kGC|^CivHĨ߫JxC$  :Rtm^Әs2tMNJIl6ޏSUĎ6+v?'nnx}gJ!AirԜ]= |:~`v:"dv+7Wשo!xLUp:BuQDD/'ԾRhHXd$s/0i]Q հA8V,fhT%rf3zב`k.U?fw|ZYQ"׺v.X,}.6a](Cr=>C|(vX ܞ 7~RH 3vc$(/S1>e8r=pBOi y4neN'>}!&@_t[e쌝+$'ܢl%Ǩ=g'1VƷS-Ix&k ba޿M)zlȓ8:n ,,bZEPru)j`?q}C*rNc-MFSy<{t DУ-xO)Q=ߺ o~e/w{s=h*$ɆE>$&RZiMԱxx^Җ l g bU]1Up%Oۻzqx Hu"Q Mv6e M@( M! f4*%M](7ЊwSAy}$] hyP+E )ײ: ^ 73?| ϲZqci̮r騻kqH&/u@ hu_,˿tYS*_aBΘΛfτ+o{\yǹ͒L&uH7 _ᯓ8qռbN,઀ltuE)$UoQyBxHy4)Y J Y+TGPLQxm~(KgƂrkތηd'Q,|sE2:DQ}5V#D^~ۙ6诛9Υ?(oc/ideRFw5m6o+ 9ۙzę t:7t[^ =J*wS= JH U{zKR@XNJgTJDȚ ]6UZR#[f ڐj9ƉkWˢ&i_2.LX3 28rzʿ@FõZr2Y#Ɲ5.r9nޭ\ȵB٤fV(&kWFzu'eŠ\QڴS (B16&A4GdwZO"~At aOӰd8WAC@HFѾj-X.* KOE97巵 <_ ` Ð}yasNa+Vq䃁ObAV|'="а5)B m+H=M葔{j˕Vq2i67Å|.t] 0әc\(^cOV7~/Rj|{\bcM-5*nV{C匶sH>0[cGYiu#[ܦ- g{GLZo; qԡE{hi<>*m M҄{e]x [P5ڛbg/)<:Cv2ŢbLWE=I135ԓE]8ظ0g뜽]igd1$q=L!Kc% Z"߱2/M3I27ne~aT;cx-S)rz*+Rj YCS?7]N@*lzUN1'Q\lU(G#fUU^-4+{#R3Yq7KE=]nIݴ`LkGCMPlK&Oa7XצWxcR89?tSΜ;󯢻qf?{7TF7`a*_SC0S1톛XpZܻ+f_iq|K&xTjz.hۜbI=m,oaF+(k~Y`ftUT^A[{T^&=SLVjh`MA# +)UG#=A~xD @U03{/!r-(%+v΅Wv&SPFt mXhߖVFm/x:5R\]Byɇ9T+n޹-{rw e=m[őŦ"'XG UNu8l*f]}-~yJ61ظi͈eUs=<;oWZtT,:w\|3z̙Է}3[{NO}\del/'NӴi3 q$~U;njS?ޛ g9;b)f4oNBәM&whY2e=(vU{IL:ߵsB}qN+Op uPf'8'$"f2_D[$-$7&0kCÊ4ObC2#%xZ Nwa:` F y#%CD)o'jgQ^=ѹtG| >wG9/'}F~εyn >F\ wwEuhJQii0=S(}dMאX@v+,iֲ{ Iw  aź#Ђ#.W.Gŭ W]C<ڿ|T%71I?׆du T^FXIJ HtG1N"Ңqts,f|i>cn3BH Yxs ˞_Akq`:݇ KB  ;$1z:K1JHʯly aQ/=8:wB|ho2<]˝'|QxI&l;7 Zy7𾌟^ &c6Gdii6Y=HܵfF`^M@VŬKx|8zWP{ýd!ƄgB,8&pt%T1#ՈҁкF _UWw3Cn;:g0P t88lh$.4Hxg|t?;½TS~c/|IeYw#=]"zS;_W1%gd`H}As&ȯ=CQ)̤]'6>0?)Ucf9U:|:#S(-ydy?I&1SlYW>#T7MH!a [!Pyܹ\meWPϭ$_xK`@`M*U&|lHJ +/q ,_{K.QQAuC)R (xb6QYh]͹tysO $pAqGz]|0cP*~N4ӏnyjeRlj((R{d:Ţ C -}a<"=T|dQm5ny:ԳnR{Yjb2%zފE]J8ܺh=`/w(Xhȴ5lm&)D#:eP+L۳ aě "08܅sa0H=Ez0R_vb\kD@4_iQKNM>.͓g0C$VF.\0^B:ާE\Ue#m *R\Zb۾+yiW^YeRrXˣD-%i[a4RL*8K< @xMT; w`/.b?@r~Yp+;w!׊/!R|4H7yCc!/x7&[;Ln#)|u W3ϝ|Kq!Y=h#"3gBP7NQ#~Ǫ'3TN]ٛl Gt,$ 8J? rȼ24E-C.f3GJ2v!1Up];"W bv|"22oNjyџ8iO6[ eiG'Wv 4=5v]1] ,#mOd~JAz) G})J0:[X"[ٸ Y&ڠL!Iy!a !҆?cZ]-֩An䗄(Љi+3Ok/Ģ5Ѱ8[:_km)\1|DT+7] \c\da"@ Yh[7`4e(l`L-))R٬(uD;w oaendstream endobj 300 0 obj << /Filter /FlateDecode /Length1 1630 /Length2 17371 /Length3 0 /Length 18206 >> stream xڬct]&b;vlVŶm۶m۶mvz޷9=15qM\{M/@g`g(lm@MOC6sf74v3C :Z[ :rT =;;;41@@$BNII_Lziojl dhamcihQ`b020ȪID"VvYG= S}!9`@ibt6 ] mQQl ,M>LvV{` 0ҷp4'r#%dcg/oTYA`Ol{ӿj_Kk}J/_=XzS{ ]׿ؙ+ G{S+ʀ `ghkg`aho/?:S66``ohaDM7ƦVд̊5rG9Ad $t ,\FдCXG;r;GK>whaG i]˿dt @ϢеZZ߀9m _jh-46u145u7ZٿJVvVW[ttMhbon VZ ieE( _Aon)k<opgaP3}&/ :K:ؙ_4?kewSZ/ZPzuZ3,%=ա#{hBO_@zł<*nr@)V3qÑt $ë\lOB}:%h (8n*1iEqڎ%:n(S%/$e2^сtXQe:6T95ӬLxyk|Fvy # Y@* =eK% X)`X@kCJRoХJ"П"vZ!΃KV[q% p Β. razD΅P6F˕ Kő*;RHqK~OɇmMP=lQגkTĀ;\m;f~oea>L.5 Ju#rmhh tb`,p!;^+MO񭇇?Dxc7#[-@ R7( o?轡kMJϑ;y hWtw0#+WMq`c'yJx{M>dQɐbaW(R( n\̷itNc['e'Xaz$c.&?\ne('tUuiD{UK,Ag7Jw`ö>V8ಸ3)I'!]ya3}WE^#'ڪϪҥ:wE+uB.z\ "τf~'csTUM<ڛZTʣ\p*H]>z[߭l78ĂeUd*@RJ{{W-j;dBKyR7* Ot7;{py o]{.I|)cPDd% Oa|"×@$֮Us5xOO%bn NE]#8lLWo2_7gj^F]H&x" d\#]ҩo{fE .GʩhhYvlcC^-]?!9>o%@JB׫5qI'/ȸ䰧2GoH-H>.s'=;J2ϝ1dwWYS1_ Jʫv~FJ:QTvrGʸC;*lԜXL͋me,X#ti]%К! ~R0bo|!Ae7 }f2I'챽 `@7NK٦vɑlwfs{!l`&cGɛ챻we( iAs'Ew5@aN{$DjWA5֏"OOߧN_](^0:;$Y\.D^X&ԴNu<4tRpXtT~_:)k {nvNADh 3[;RQ9 !b'A'F䫯4UJ9Ɵmcz,>Nj`rIIE㍊l0y;{6K9^ 1^Y`'ur򵑆1A1 I/78?5E',VC~!Y1. :qf[De5 EK'!􎩁jI,+Ìm1hv{kBlB UvM샧dxI~ HX R-( 9~ y Ff4AN LRKh-rJȫ $H>k#㜞o4go NHle3s-Ƭl2X5Jfj"O7Jd;n^39NZhtܕ=7]HXgSΓ{jM$Tȕex]y?a:._%MB,T_0%Wcјk2=R">^įLgy*BcE,@%ߦhBΞdƒ$f4g=n|z`(ALk"N˪1KzUS>>\ T#~s"}:I ^]1oRr$;-yczB]ڄZ܁뮭"@FRx2)IhY}$)toUi$n7ɩZ@f[ʚ>(LDUҎڲ;2zq46tp/q@n'uLxWg_/nm6Q_pR`mI\L S'㩄Pȴ0S?Z(u5z4݋w5؉,ox]ir,Ofruzh,xzƆ Q)mN5U>pm0"`"^,7m"ʥk*YWo)&q! SSM3`(d$y200é}׳]r$<[ EÅ!VbfU!`%ķcq O6a[V]̠HW@?qv AIDGjq^Ia:+*}mUo@9W JO#qM3(۞8}XuKU1krdԚՈ~f¸)$xgPU'v"sGSF… _{k~oT1ޥqdʀZ/?w0Kܟ4E%G[}2(P*I|ܢz ))K~9YfUҹQᴇ{5Cd)#09rw95\TXmοO<<=u;r"N˖' ݂M&9R^&Yh"hH$!UC?lJD!{Ś?f3KּU! J$b3-m*-y,E,P|_/$c?5ͩA~CInY4FҽhRnJE2Ǵ [`['{)|?LըǠ є"fM-!Jjij7 Hi<[ـ$L)YX_^ʅ=Jyqz[8m[Hh?S%q"xjN=IES_*W ?ڕa [ʹpFp 3&.emo^gju"n 3]#q$ ~3ί7aE [peͥ 4 [5˸e0"iU^a ᰥ׎.eLMXSg"+B{(I{k2wﲃ!`津8*J0Ϳ`J hq9]`I&Dž'"%۪zuW 3<֝㕅 6/:bvu79)I@HY| 1HiE|:ypa#\Q0eAv5\n^k'"03R6\񨢿xg|ޏv>r IM!iqHg*K)v~/v@u2SfDYL22$UtXP1" 1`[DqMXP}­q`n#6RRWm1}<dof~Wj M6YVf1 WTACp|'mn..X|y^Sל]EAuO|8۽p6v`(m!4 .3ARzqNh9?^|w0# _{ò9lYM)Ti| ;/Gxfy퀭T$}u'tJZC J'/(;I~2?ׯ9iLpnuЭ0~| So7R෰q v5{.?-x`ɗ jbɂ3V5l 7L˚K^ 6c9{.Ҩ$0*n`\8sx!4TC12eirk Yۊ UvfN|7]װLSnS4l>LjP,ž3]ڞ2!~CO*B1/_qȝ6<4;IȚ]W:~6&$|9ԙ7Z rvp=Evi&ȫE&Uٮ2cIw/S / vV xn5B*o}^a:{ t| :6M$F ]i`ƥjX^U+aU*FGN\alEe<6_uA(bޑeH(#iy]ٸ/JK:@0i\ì^uW@!a"\ڔ/:8970켂4ֈjrx << 5~:+!wk<8oC }!nGʶ`t!r-NA?cÊ޺P`Cߏ Pqò-yc060H`O!SOFX@G;V_1 \9EQΜSߝUj vUzN`!B .nvgb#|뫴KΪmCZcP7Y߰6l5 ֔eih>G.QҾbiMgnͣ-mSA[  %9.a}]ߵx7F~)[z!—r !401ov:0n(iLSdGVi+E1+Qr<~#Ӈ3W! uk) #g_kj\%s7]'"͸ ]TeDIr"} ;rߤjϳ7aCxWγѸ#/\LS["G6AidЊ^*ȳMbǿXC+AeZ^ZAּ) 92jPxE l* } !(?XI"k\7P(J2XvRj.b8ĠX4Yޣl X J[((ЩJ@|Q LS UjG\:9YD4Ïͤٓ*4ǒˤ}0xR= JĬ>@ l%ߦ}RD+j8WzbP暈X'E^J ~VjLe${JB:2V R1XǝBmiX#msV}:G#lqӧfVeO R˅k߫~ǭ, $Py' qZ?v)A`l`ADPz'=փxsA꓂K _sk{n*-]j2`7]T:1aކtRZ:#Pz򆞔K5̳vVw<5]DP bA&Vc(yjG73vvhN^㾱v廈% l]nbpeV;f:DT'TP1.띘XC"CƟQb{+L5 P(z8ܯ;f_/"n">Nؖ=难XxoXĮrtڢ'Ew9.ٔp]ЊD eٯZ뺕N"}ێÙ}Ɉ{\!1K{l=_I7/?=췤,mstswn2ȽNv{tSIAF۫n=>a/u(sy)0x-!~onɇ;;Wi2#_mt4xJe!.1ʬb2Mun"bb­,ir J2;` ,bBG\)9o`ŚI:mHӓۀ}cԥO.i s?Lλ\laog} &/1O5x73ceJB"/}"@w`5i&k\},) cKf!k;s ZR^! <}<+杀YJq<^aQ`B}ϩW*Hu}g ۱4龚@];"k̀|!FRh4#/ے;i f (rJv0[`;'Ұb~" 8OS{n)cЁi1וEH $ Vص&3䙦nqPĈrC].Ĝ VQA)7VCi)8BfH`f4981p6_HLGW {l\ɏڦ2E Xp;J@(? !_ Ec>L,<#Hscc!Sf!G=hy8=} (v sƩUN8Z21Pr7,$3c]`YmbAF?$M,%eRTʔԯVDA>!|?!i[ v`痝H ݓBW$i~T"U Xg lJ&7>8  Kpͷ5pBv=0SQfv4Hsy>*}"I7w4~M5{Y|朿"l[`kN*1֛2UIy9]O > hSMK&CQ ^72Y'7PZ#r@~40,R(EJqbW=Mɾ65ji9ri%('UmNԖ{b AOSSKՠ,b й yԻ:ߠ00-XZ=\ 8ݱmZtqeԢ}Ks~ajkOl:bHEƦC$[?Ƒbv1vP3 iWN glU|~]F*KUq*Mo4۪N_ SƉBO.CSjlQSƻ Wv3#m3'02K  *F2o 9/~|D q{|!EߴSP_]*FoF[4ņBI5$l$?bAw!́qg欋=GXzJmCjRfO[{xNb龖%G'2f+ӣ27TE4E&tUHВ=6*VqcEK_d:f!,_*@DPx7X<ӛ%0VL>B>N(UɃܦK<K2+1-߀]YÀr'T[[o|@3Zy=fiG1F(O5וBF+0.s oڅ 0ᅨ5 Ub 2TJ!Q|Egq}TĦ>l1v[-vP ;־&dB | gY1$G~i3Ì_Zϧ$Bv'>2Y>VwK#|>mU͊Ph[̪2|d`Kr2 B$}re%ZAiqdneZ?z9۝ž Te܈9+Sfb^0z `wF!JS8 m7d1yrדp^8LeP $G~ +\hMQcمHI"!Yu=1yR|řWjSؿm Zا(mgD*&rQͳi^%$-zEŪ,ZrSPy2mݖF3RTFI #B?_b8;A&1ؚku[^pE@ssQ Fx^T!K1<J,`XwI&HL_a4etY%7KNXۏ;Z$=|;AV옪ʤ[hDqgԳy<`zes=(.Xhk({IJ<'_ʢnv-pk*S1wzy9><k G/K= ݍ}f'42jUFcT;0FnW:j}Uy/y)V"랑ҹA n?-Nv% =6Iʭ2=]>b<^3ޑ"u/vvO@$Y7: RG ?giI#̫(Ŷ &5]XOɴj"Ws˂.'kA#NAtې6E*O;!Ե>ń-ۄ&xvz<BnP % @ת4@1moۥ[\t<) L({?tV%0IyQ Xc>zSp, ='A#{uw>²ʣ4p -jtԇO3Coğ6#oQS,}j-?-:)hE#hQ3SX z\Vb99aMjD`$'[taͿpҲS&z\m[I?SEgihb}Dj%>S4#ϙwᕌvz`L=x*qjuA5$[L8ޖ lUa 4|QO$Ec&7*amb:vh,caKVz`k,k͓T7dhNKU'h;p\"A#->L1WTD]a??7yx_[APlEf&/紘}}(Yl!9AcU" Bx06 Cea܈ej(0ׇ@on,|e^(caQUfKӈ8]  &ɴTW~Ԅ/(8t),"ds uAqkƹj|i⵷ENUT =U=rϿئb>4`\=P]NSKno!DwߗBE@"~3[R.btM+}JVNk5UngX{c%3`yxۓK8847pV^nglh^eMEB[ah"1-Jr(/KH#,t^,vrFwl=C"ü~h i&7cwqZCmhgAF]Ȅ؇?T8]Rf ֜'!.w%OMB ҕd)B: e\ɕzcN9 o@qXj[h[wF0AJaw0>c̈́pĊ<\-W <:>i12W*) ](Y˯+J~뜧M:6n#4ƌWs馭QQ蒖\_ϔ85ҜES[hL!`}3 OJ z-Bx%łFEHn^H{ustV`I JCu ע {Nm ru?N<5KV˜o]6/F; _rR'NGS~& B| ?xn9qƌ_6V qeA3=,ٸ ַ̦Tmf`8PְL؇'[~#A0ۅyy*D4ZP4ԡn]S+xY9!YN oqׄ{ J.ԤM>3)BȦ/Snr`P4 d"d-Xhg)_5$2>zQҎXkNF!1xׄŗFmTыǸpЫ.E۰Tu"+]$&AHWx:ݮѷ <6Iax;NK!/ 6:S}bI[``јVgwt ||OXO hR \b9LcN ͮɩ ̰<蓗 9ӫWcvVjժTٽLpuVu8rdK"z o?ЬlH1ڵM&;M }f*ԙjRh$vv!Q~G8pHY0m(x>3:U?{rS0AL9b==J$g:T* 2|8S$6xDdTxfVLh{ȄOq]ΫVS_YY>/t =d?[_OkWiUm윜>*Kv1.8LZ`"zaCTu̸.+yZ.9CIeyF@!'T钶3ZK.`ЛLd2o#Ð#$&ჅQhDgCa\}%DO [{cׇ3,H#. z0?fd]d)/ "DB0A֯R=XCQ۝ y ;N |S t  qb=Ѩ>c'r f6E e6ԆZ^=jʞ,8WTqUd2!UcQMҎ(H:vY/@BܮP=mS /%8in'͜% +@^M NL+d\L1Sy U6z Ҏ-s=p^'[;{j8:A&ХvBFkJKy50pkTl%jvlJhccDЬ2_6;K d?qW#-=1y}.j'R>nɌ6355z 'آve9DNi~|TOyލ m#FFdzlY ,7(3{Ҏ XlW3H󫺤v2\%rѬ3 JvC,`(^B^"|L/KÇ9fMa' Sd2H^ "q%8 }5;4nƺ3Q^+Ӻܿ ؔ&WH2dvb_ߎ^ G! OϙWV, b`9̝5xS.X?ne۹w Pr2x^ }`I.!!apo&r`TPu\}8) (mtCìoaՙ˕/>"`^EppY)Z{e-Q/>p`~)T bv$.a+ v1\Ȧ>DTm b 4cNϕ k3l%5ݶ[T1|-敃R 6 fxQ0Sؕ !j:D_mn--ޖU|"YM:|O[)yfYRD _ zDzs!Ƣ>-T]mQgGl ߈Ksdˎ }0?5\'ߓQ:'l: "3@C?o=zއ5\NYTt@Rɖ܃˃wq+ oz` `{m1mbq;J֩Uux~E>lVX-7%> i Ϥe"p,Xe4ZRV%D?騹 Q4-dR6|?jWHze "J^CkߵJE` _Ѣek72Ƙf!YLrc`Wq=Kh3ձȥL@5:SנH6Ysd p`wAaIj@"-ZEoo2^NM\1E҉yŽz:*ߟ\$ EfTWB@`j;N̬* `$i?HrO-:vmXT<:dvvWQ˂AXpva"~Х`@t +h9 $9:=!g7O'g>@&TM2DOvlendstream endobj 301 0 obj << /Filter /FlateDecode /Length1 1644 /Length2 11721 /Length3 0 /Length 12571 >> stream xڭyUX]% wm,4и7%858A|sgf\kZ%v4% Hޅheg VuStgPYb 8 AVV "%@@ECGG_W&{,?@v {wgG5b [قbJ:2Rj)E  (ZLA` `oi`w.0;L@ ǿ=lg g{\Vfx; wL6urtGUW.@V0ߒiQ=p0;=c9:[+28,f 0owNR=ongV.`9#" {LSVLgE/`n Dwfhޓ9z@L.!o*3 -/=;"}cKhx3yEc t|vV7W2{[D-ޥaadf`)[Ź}ǮaorOk ,[Z_߫x$%%ˠf>lF,\rQ~ uOGRp0_BQQ7 '75.V=fFffwҿc`o4fIho>{i :;K:x?d`l'op\\z0ıQ0֡?=|.iseWvoۖ't^@KNWn/ɰSƉVŜ/]NfͽqUg86g{rL;Gd?Ӵ8N&E'慨 蹂%ˍC&x;4>q[jђ4ܽ,Pnbd[@0 /ɹ~e-N'R5\9Y\9mMZ≵ N^̱I-,}.K74LZ5CEG3J`_RB9JkHepIa/1@7Dz@}Ή2à4C ˾{?u(I݇' Xm~|&l ꟃ˰қcw(ٞФHxe(}S [{%8? O7ɕn{6HwA!*螼 ϙhj׋:߬"&ɹG`&Q:)#y6Wt[#& f#Zm_nyCATҖ?PPUkQ)w|ܲjw_]{S qtfJ3צWS-MlMkRa 1'Te *<t=5RfU?Jsk8Pxԃ5Q<1Yn D -<7ڨ("gZ5dlVfF*pPf+~0mugwJ 5l`#{+lhq}t*@T淭 {XE#k=yKs4bȳ醲܌ؕ |<Gf,kKG2A/l_劏'ξ4hꚡW3?~'Uʂ|܌ڵb%eRȥtQ*o+տ&zMT[*uJa`+\".uL4IC fbY];mτ&_bAa Lԛ q~!̎!V"k踄͢baIV%r1O~F(S`;;1N,VpOIbV)\!ZDws &i mv _q!SdUR{P&dp1$cNSpaw{ƺi GCL JޫѨ*utG6XNH;T:i^$#M&%>]8A呦YN!_#>Y=Җ&(Q%~kG+}XF1IYQlV66inXhA ܡHR7:l/d8D2@Y4n 3XTo0αVCD<-z{C ÓыQ\rW_$f/,ʤD5,)_.(iF!U7jĶ(po}"T qA3w˪N!w|QzC.Ǐ%kSF30Ϥ\z `gRr8Bke?ڪV Ȧ +^?L0i;Ur/p==9Ԅzy^\W/a5Kg)8Uˡzt)JNT9RԷ{Q%uGT Lo7IW3VLWw]FW'͈!Jo`5cMzH o1(?RXo:ʂ'cV7>M:h5.E+v8 (F{de`6CÖ7w"Ȉ5ZZ>p<_!f E bD/WPB6ǻ!kNh^4[!nNGZ4la0F!бP%K7ڷMh!hB0l,N#ZrJ#C-Ka]lMU~?]tb}{ K<_&ŎC ЏMϳϰ\cC@lt"S`OzR~PW CgJժ4jڰBj=84߯׊i8\ )1UaFhlN YJ:j~;I>+ɔ]ZC#rfM^]Q^r[ HX GmS菬L_=C<9\\EϻF#fU쬝L-#檩4]֎$@MehqT"^soc@5Iz+p;j;FB{-\³"f|ڹ1=\ 5@Gx 55iУDmE-3sMr܏ 5ţBA$XJyT/5MsL O"* mw}H>|lc3VUh܊tv!|\P KƤxg} {攉e}A^MOG $kG2L m|3}"7Z!ߕC`yFS T "jx?}LYD41>4RBziD@q.U}pgcܾb15wY}6v F=wG7[jx9)$ļ#ÞҿH)0h;⥖b)[y'f[znvr\Y0YkY+6^Bu:i"PFu`Y =E">YF,n-+rzyj[|,FruBCOGHz9 u ؚNGu,-V%ŵ S񲑒|sMp|)%ރuqR`Zv|G=[?G vn)@+d{< cq Z!`a_n^(I!lvpx;qnmR'(փ!eۚ_H. =vDg(=}q/ f4V^kbOhj3kyDmkՍk6`* Ui5y|l7+;f٢⍇8;eRI2=#K{>f#V%~ izHF fj/ӳHquG+aS vvA:X.J*EwBA"9lss-Yc*ǬPhy_{_57'5RYe٥#(C HȺ~BbꉺMj-:J!*Op!8*x0eal=x J~v’g+KI\$ n?lOdgP"KM}Ylቀ^B\B 'RD.҆='#,{Hv,UkOyI-o? PĮ Jڊ& ̺nQH-t iJ@5$Ud/S7 ɸDB-jP{$NأL}m!&L3E84ª-=g9$TZڊxW^=7d0ӝIJŜbKoz(DQ߮L)zܻ>-; J?zLgJg ɤخT7(A4F?b4eiEmoz,l {յM!A"~1/jZu78 / FnAMH)DMj@MؔlĂu%cmO)bdcǵryqj DBg"W: {Z2ba7E,`9l|*dxzk ~4 sQS!!5?x8t2:Xi)bg%L+]))MF0]0֎j{my)Lyq$ @ݕq4:oN-5Gu]ЧwCNӁQFE~5K@r W% ds6?1}2AN hd׵rRA.7D R}me׎ @ƀqނ B:ΛTSHz=c.S/*kQhɖxVLkq`=Sk-`. \tsIEL>_JU1VZPmAB/2ʪ厰䒨 J$b߸r|bTƲ+VG@Dۻ(b+?Pgӥj&3YaBf??RҊkb7\uU [P+HJDMf=7P3>J39Z˨94+]t_9/ ǔN[Џ@?PRFdܨsuNO%1-òV FfIYa$v>g/©J) naaým.Bޏc45#h'g:-'vKڙ!Rc8 gk򀫶}$Ӈ|=q=޵,> az`W rCf]/hXU''8KIކf`LS̹rʯRE[?IEY00*\*7<|4P&zRCA!K8:yHc mi=+%v~b ){F(Z4W.sWꄥɂ~1m.b;&pKah|IkPEI<>-hL3*Ɣt׉%jr>@pT#>82Àw~wҞ}R5iB?v3Y=6*)v7i-[RO[2.I;M˾Ȣi1  _Ke ˀ]9rfl˲AFQJ⡋ i#t1yĞ)/v?ᘡ➋zm .Gn[ \VM' 夈T$n^WكB2X@:Ҡ# ,{5R_7 )5mړ,# \4ܔd~=9/V6c}p,q|O&Yyc嚾ҦDCC~$5WAӞJ^ƐU{oFo҉)հzSMg(x$Ӊ@>fRx R''݇JSZcŻK¶/Gi;^JU ~Q*RBF7J_DZ^BLH25XVop4@><b>%!I4I܇hrpIh Vt"‡5jlňD&TeièZLd-V=BeU2<~]V-hhaTlx/ a7^eKtـThWMO P!QO6Z__R'N~BuNWix_N)arLɜ"׺<қB%h2d@ק"Wi]fٷչP3Y\Ԅĉ?=rPv-*9w!ѫ\j^7U(ŪV]ű ٺ+̯ kSeÞ>O8й'BvfN ~ȋUxUE"1. {?',n$AoIB;nli8r G9efwU#Fo28,-3.@-tEBo?ΨɉcV|t]LD2 idav A t-7!NU}OsO4/'V"%'dZwMߊs4骪 A ~*^$铽zk3S%(~ T{:.b,{XgKz",7s4 N *bL}dlX#,'Փ^i,Dg+/.٬!:É &u2nٱZC%B֦e~To+@\۸IUrS$d _ OJ9΄L||$_H&c!5)h?x1_ҽ"l2yA>- U9,EeT!rMfISm9BfZXYRn֚ckZGQlvC~eZ98D~rK r$޵H[o 7|$ƦG W4;Id4H {񘃣;_X8] 2*7bݾ[iR U, n}~ \0!]؜FNJgRJ19r:L9U);xP}brڝD&bD5<*QvGh8'1\SVhP v(2YME٬fMtsShW,b$eh <ޥ=XuvQnx3Y^ZfJ=j_|uW]OG~" ~I5--۾]]B#?>XU9!fcS՟L=K(8U&&mO ѯwLX&˔`i6FWQ7^wH#ƝS]K“9s>X}YSurw;= X?sMm۳y#QꝶI ,)h NHAq8>Dv cIuqptM›|3]*5Ff /9N4~OU 4![p(WH?q\OrlY Vj:b`f]j lRd=|iIݘY1 Hy-,{H+D["l<M uhՖK1! O6dA}ɕnvo5)+Xv ֌mCښ?{2]ZFAqzODt m}ݽX{,7f.F#z RR nձi'6Qy >'+LNq9 CvbOGX,E12\S)u#IWZ&[Fɋw!{C#`a4%X߼87?+h>1e{)ɮ҇W9SÄͻЀ(.X㭷6"pR|!|y2,P=VKgripy /{Η2xiIs.g4{phWæ.\18oѭ7'wF ;Cyڕ#x?dv~qg;G+'Ulu=yIswHL\xi_^ׯ'XS=pܦ^…u3#Z?m^dHH9BU9 Sw>Rk<lSE4YXKLUuFiկcRL+hS,w=_E ;Xsb''jŔ0}s4)%,L ͍6Wv uIgPKs`H0+z3~F4hL BzXBN~eIdCsҲljglg"y&Z7iVcS"8^9;9ZIꖊ" s>bR=:fy ̲}a!hy$ԭ/$c60,V!V,c3!+]BDf B_h `$jȹ'7i=#y wEׇ.FK>x̥?.'aRǩ*ie],>m9kщ,f* dZbo^3PE3 0r8ge`?KnfM 8,%E2ymK ;'FI#uh *{Vu=5ٰ:X%;Z]m҆m/lnX-y @S<^RecaEg,{PsF,nc9S'CK* BHڹe>F$,VC:X3 ={4pzsP}-m9"񅓂k?ߛ?XZϺxZ)@C!f`&[·-vGƳE>e@(Q6 H=Mf=߱}[&oㄐD]$F2½$T$>@݈7O+Fn5ݮF#,Y!8%UED}aE a{ v'{?AtAYbX=?kyy`(T7^~\aJ|gA- 4KS*nB9f͍CeI`w?m>?LvP w">c,uoM=@-]_jMc* 1x= **QkטּBk lЮ(7y?]HжER"[ ^m/tQo2L-5endstream endobj 302 0 obj << /Filter /FlateDecode /Length1 1647 /Length2 16155 /Length3 0 /Length 17020 >> stream xڬeT]]%;w9wwww nݝܝ}qt{jUf:P*19%A ,̼E+;gU;EyU @sōA@^ 4Xxxx(bNV  Z0䯧=+hK@@- MFQ @-bbke 2;iN/fVK` pvZu@';+g+g=V.f$n%Svp9:Y9*K;O1Vaߝf.//_dle A2̬m=Kd4\-3z/?um=]++3֜oLSVL􋌽v3\N: zof39oHʌ}"7H"oWKz+4 g;8VWc;+[ݭw!boW!F%܁fV SK] dke+3-LmQWU$MCK^0mYoW=IK-upx1pX^ƿב'쿈Xs` rr2323ϕ7u0@f[M]*iX@S%S` PNЄn_ PFBnJƟS#=ضTݩB2BMv.@&gZ^W P:̚*o0DSlNpWO4d䏎(i qX?N(Fo{ r)q|SNIAFN/\.n^.d_=YM鉦97Zd eryH֑Ś^=|a&L٢th\IEdf-] 愸L~MQ?8Ҋ)݅G]%xIWd1✊T64N/ͩW*[F !J.@|/*mbF5I$. _HPmk"x̯s7Y12,eJg'*oߝ U*1n6?AX!c^*HQSv5=p>ˌ7% n< ocJSWV޾iG%R+ {=rJ(Ze}olQbN H։uW O.\c~-g"%5ȭ0= \Tk |M He% Ì! yXR"6h%s܆렢MߩuhqŸ̰jz̓]li ^Zf5K'7к*Qx3S`-x}+sfq0am֞Ԅٞv'zy?sE] "J>2۾U{٪ w#ˉGi1}l "+X^D˪?(C76m^1:W`UxIN|{Kr)3Lrr+t;QjAS!P#e*\|nO=wN'9b 3ƬEm_Ӕ'Ӎ$ nF/#q XO^͚piwqAyo3 m4|y[2ex.k[C~~۪V?*qjByP+##.w{Ώ0`mjM~h %Z47g\S2]` F#Az~}PWdBW \sHq؛QYo_3iYjh[؟B~ǝor$br_zvͣYϨRz?N1a2Ywio"cwV-;ȭg`t#tiݧa^*6`7=//ԋXJviЭQ_>]w;4n˟)KB_IL&m}Mh_;<!&n9K)>e]sp0ɉ٬ŵ.ö`."5iBP0 쭠==}_Ztz RP,CȺρdn&DGzR(PWyڞo1*\DIM w;oTbg0dNſFXR(\@$ pVZCH^EIlRv_>Z,R8# ZȐrrj It;u192!4Pm0`4ëRl:yf#a,A!t !@\'rlP ՐG<lӋV3և.st-k Kfr{-4gsf㑰$q1|͕ q%R}S됂YZ0 I?8sї~hRJ/Q)pu1O,D 3{%Rvtg iiD-@yuX^($c?w~,niKRU.vPػ blO P.TpXh{p̎l>xghQ\b2 7.xgC t+,H[)24&a E2~C\ ^HSbb"9VlKNw\!8dnVVOOx1[\_q^l틌haGsP)D١!Hɹ#Y^~\'.~ZH۰n@*@3"슨U{ N[i13\#|}Vrٝ ro!5#5sP{ 4 Y2jiey3D;rG`.,x~$`wHg٤A y"bBZi:yzt//uBI9RSbeό_JutsE n%;CP2֦& c>KNN6,n'%`{ sr(7^^…]pTJ[tYo3{mRh,D&bJ9j(fsG2Wbwլ6̭4(m*03!jy 0luJ;ɖ;E. oմ6=/gR ,᫓d*9; {[U>Mxa{E{1n*Пllנ?Vx;xNȗljoտ|/9")~T %j+? S!e۬/Z/ί}Jȕҍp @bJj *C8PZ7tFXv1O# qҵݑyx)GͺY8o3ʛ m*hThעq۳OGӲa Ҝ$00)o:ermƇq~z1G`BF/hI[j $at{8^:PJ`R}~V{TȔ45l)d} %sj4S2iT6R˜R8;Ŭ|+=Ғ_KcCYP:#(e9fuQ{j,%_c^$nUF=F)C./Iԁj|wr crWa1nDs%Odg`=>*DV5$b;z5)|rhϚ!\W%cZzcTSc oI =󪻉liet~-|e^˹[ctu IJۨ z(q*zc+3&$4n 50E@SI0~M jμ (V9ܾR~ Pf1q7.6b[,qh 8L8wNXL\<_ n`ˡvnъz2)8W[)L]P@9ʞybcm${R8ׁ)bƴ&赤ΑqL D|ɹàLjst@1ۮ$U}؇~5DMF;>Nj @ YO 0TZ>c^'=dM8{?<7lWELi)뙕1?VvqUCE/.lgHwp0-cTzK \؁? )WZ㯱zȞ*~R$rڴxa޻ ϝ^`o^nOBL7ؤ;*dL:%3q݁F`S -@BS؏g0I{yk(AүⰩO%,r͖1uږ2 kAKt 358ǞƱ=Z9̾枀7-2#`Y"[zBmN=벱4`^WH^Wt懁uoDO@8$y*ߓ}"my& һ3(Mc8UE2KVyȵlGY䙠U:ZJH{djL_ Hh)U@Mt0[s jp& +0 =Hڂ@N=j`[4P4\ }o#z,[Io1̀S`ea=e04t̴+@M&ņvvo4pяQ1{`42 KfSIћeŬj:j(_zY)j'\AϽJB% ;]+|wzgƠقO$ w>=Rւ/yҶ[G6fDzǖr˟zEY(GFi3&ZHbV 8ޫl Asx56if7'Z164܂6!W70}T'܀:e<>^Rݍ4!;oDBJ>"XQ'Hf`dvw*/ŝ92Q#|^YDF(a£/W>Y;ֻ ULS_l?R0s"Y)5շ~P9ٗ{b"^*A"slP0q$,/tikz0}PK%I7MGW_4?;E8K 7*#hTfFSk5Br"ٚ rh7-HqR~9+% Om,L%9ilEVJM6JMXIϋ'S'U O8e-_| `04r~"&I5a$y%X@K6 97b䊦?B' Ԝq$C7GtNٌ#'%$-5zCwnm+ov76> ^L._aRNe,Hʫ/3;\Cr,>k*ǚRiE I+T t%kSPK*?(WC{{VJ% Ϲ%~tci%Ů]v9罰+Gث75T&lDI}@Il,)qt쮝RTyڊ-fr^TX΢烫蹛'fc/^i;zx3ȣ b;#Q!^oA 5ޥ(=3pgpgDX9 W}J5?~],,jRO\ ^bp*?%䒜sh%4X22AΊ-T (K?\s&פztC-eMy(*uZVPӈ\EP}s!BCnM~򡎊5ዙ o=WSc8%{ۖ(/Ḧ)"fn*KfQC?YlN2lBz^#^r*͟>Mb* Slkjz,KћBx_uE(҃mp\A+ xڬ,Ah5[r7S#'F|?fg 5 Z)8+;i珶xD>p]'у!Y LDJ':T=i1/\' x!߇Uv3ȍA @ZkƼ"No):c%`xvVSڎ7K 6tn,v{nNO?pB8MXߋﰘy\]b)-鉊Ɛ;e;(9$ U#.Aa2kݤj+6;캀v xg(!5탮Vx27I,#xH{[4h,6X2Y$6JݙqJWu^bl>c2A%UEIQX\Wv((2d|-dȑ_(j5'M^J_q,1b U{Z?$sŅa{|=WoMZLE̽OssD@~GiܵU$y w J ׋N +\ ں0ju{[!zYXNP{0WZ5pI>|KVlص|+ !` r xMŴD=٫cezn2-ÒXuLH;)¥.<8ɯcu 1BNc;#6 Tաt3PgmYȩqGȝ묣EuxsCXmta!4P@슨 5*&06zQ;bT-?bzVI(KgTaR5E[~W$ dga2{S'דrĐ6.7e=\asb[95FJQEf۩?c׀]#]^I#~]Iv v8LSttuIoxvRrYk G T=7dQ[=\1NEoK/t?Ys&M<(EfZ0RʙZK/0W8c?egɣ9nlt"vŅvG5YEI3nR)=z3!2FoX+t,}zH;`+c~fz"Q^J?'kN#3Nm;>aK;@zP^OHT^TZ#|@ERIhU`Fd-&ިM)7=vnU: ox1e=H>jZr}xyr˧]8Ѓr2aYe]{8 =g.jzO. 0 c0;SK-qk$a[8 W՘ғM.ZXdLWa>GL+"(z Um _A ۠J3q'Ʊatpow(r(ώvVWv }KJ 'o<<&˘ip5#O}t« o|gʆ 3{dʶY\[#^k9 Tvtޡw#OQLI'ӑw#9iOzpi}́j&Sx@,;<|;I$PX]i7Yy2V;yO؁7w~΄\`_aWZmt/zc rM]. U\R8 4ĐW 5yrٯXNVᴰ!'ЦlWeT &E09KOw W–h1@tǵ"+Z//"W`6vMسb,ٙ=Q ŋihb$*LooUU--!)ȅo,Q vM0EI&=tWB$*FeV0:)ƷBsʩ$ْlR ]l]a)|bXbB ,.|5؜mTTsTNw,PoqVQTyƱxu->ݜ'o#w/G\j ϽWܲ#y,~0Tna['܆+Sr=BD}mMt1u~2I|隯.%8nǝ^#[9rW=Ve _$T<#W,ZҞYptR&|g853Jauy! ػ?<* ˭D(j1Rd]5a&TS}w2s{aC]IPuw8%1ڏSYNsH2M1>_p ysۯk֘ċ72GK ?Zea0lCId ?#$)n^",Y1dәZٲlhe'_rŹ_㺼ٳڅ爦muHWry8+p}d$?5p|? cf_ ȅ2U!`. 3!2/T([Q =To=xK_$XW'!I!a;nsJdq,A!=]wą Hx=3OϯסbD y% ;y{ˡ.&^ OQ+ f 9kX*N`& 3w9-_HlpiSBOH ƻl׫٠M KζGais}~fUg% |L"џ&x帘ë b/j-\6?/G`vSYs<7*!US4_I3?O0$6Qzo.?96#WW "nomdft17)ԅV qb>*E?֨B؂$ ؁?l{{8kU?++f>(1]٣m>2"g;wX7MnTh ?ƔCTk9/_9Dkk#sq}uMq<@w'6aFEcJ/cp䬑#Q$ p v1iS~H 9j-y]G7j 8'tR%򪢻[5㰪vF̫Y 6i܃cS\B@NQ޳"!imG}֭}q!V9%Gk6>"Yc#O-[E\gh/S;⁷|Ius ^ ,+f Mzhzօ T ?= @TjV!X+ʕdCt@7-H~T`@m{ǩIDmq<"}sԘFo`'iH23MTW(a qvNΆ* Lś^Z$=wdb٘b{w#ՒQ\@B:?2_ #[%FXoEs[O⾰ABXۃX|Mtnj]V+,&pR ƿۗU7V_f u8?qߕL+j~^Û4E(t" @(U]:h;07HəS L||2i.'# A)HN-'~ ,9oVd<"wMQ=v7ԣYCh&V<:w^,K&,ݖjf |ijWyXLg>nP%]sg4o+-,m=vV< *7;H懎(AL5h1m&? V.m̕Zq:շڂHpn2ZdZqAܳ c&;(M6ww#SP$~oq83r&5$/4ZWFח 3^~"W؅cyݴ%1=~Jl,X48btЩĵ'Gc# /Ķϖ~R"} z[O;i`w)6 n5~X@p2gKh."j'}Wfv)NF%Q/K\5Gn~HZ !G!1.6;4H M3ʇ'Xn5{pVgJ֎e“RsE20r(Y雨oE%voDL̸ tW͛y9DUJ 9,ݐ|>JTx+L}ڞz<[ R[He57#ISF A;Y@ ǔ6Pؑ0A ˃_=EQhNB,Y`(j@ȉҔ"~|D6S &,3a@ro㐣[X=U[6(]9^7a)maިʎ=Q K%mYh!5[#쩎Qo1%{ ^wop{~ 0)8 !^4=i{N"xdEE[~M5}BeLk*70~w[APze$.??v[0_ O0Z-o[(N(O!Ѐ@y`7sA<A OB~aq[X:&&GΑ5U=xpnMy9ks.%Uw_e.kR  d\Nke>i JtZOܫ(QHA@F''(_ (TUha3 ^ģ$:99uA FL>4h8b{$ͨao O ϱSy TKqjlR=PRD,͑A"'q̩j%b=~pPxR?7v!SUf,}Bendstream endobj 303 0 obj << /Type /ObjStm /Length 1655 /Filter /FlateDecode /N 94 /First 820 >> stream xYn7+x\h> NA /yE )-gCsfDM 7:1DF.ԈK6^Z/jB3{>_pF=qɨMr&)۫I,or%g0%'DS*:]t#sPq0&:E(0xFcčKpS٥G0 C`V^|sbh`RsQ3&0ƗfsE&vecW m < ƨ hF"Q0 Q0k`I`N;&0I!%d$,&0gGd YŤ/ a 1V036'\iX 92sL՘5U<#f SuBeHgj(\ؕ#g"]ňR!$3ァ:n *r!#ZVc2e\W_μ?Q2Aa3׏h%ЁC\].<څ$:9 ?CcيAOD*qXFT,(ZŢ;Osv5ÃXPpWl5Ƕ^NpA"!gcjRzۇ`эS9 g=bG*+:\I@>\0xe%X{U؃Z۳:\axv&`a~ xHY`akEɌ3ndeŘm[^ĺx>i{[!{𐭬\+W0Э|qv,a&ցx|Ljðtqզi/>[0;m5Me+[mtࡤ;o')}e{=cċ+~:ݥ ^lv KK%NYI"|jҴ44-iQز*.ĩ|Ӑi>iZ4|mBMiM¨cMãn4)6)mMJqIiS,m rBOm'&imIm֦D-èKR|V:c6IkSMڔ(WZm88ϼ.'q9&m],5%&}B)&m풶,jGy8א&mmʴI[2֦LR['y=\6RցBRRK .֥BR[I[6I5ФԚTQnM*4)y-T(M;͆.֥JrRKuҥܖaEqŻn/w?=\67=-U[*}+o3vu~-p x]o>o~ ۫8C\> stream xYɎF+@ā/c| c+2ϫ&%Ȓf`r_WZmRRXCdBY m4Nha!S O<()УZȼxZUNKs TB"Ɣu&}ZO+B 2*MC/PxXM XⰎNdХ,n&, 33dEL7iQ͞%49xCsTܧBs"a5x`hVh~UfyDX=ZGJ 9!&X㱞vKfhpp: JGt$М"LCg69ِCB!l6X`4ۄY8Jh$)|IdWo,76$GQDJ?DD'PF/\.H k;&I)6)d-y\ők3dPw0ڽFkeKdkjK 1QE3arj.L*ʵ^U<m=!LK$@۩]ɢ.&k=.0)C!5pMAc*۠%[4I05ܛؓbkj\'ST}aD캏@)h;sӾ\,ZG COi_9LOumVB_57:*x}׵sa(TZmnt&Xu x.\yhۭEǜo^}~۬ž^ŒgV ZR^*F ovyk|p}`j6o7}O.Fzt<@+&?.vq4t_ݏ Mŧn/Ϊ@y [>6/7* )ӡ OHґ%cK/ptvZkl.XH'ㅸ×2#:4a6Pl[~hq&< cI=%h %F$|.0.VWO3o_7\GYtH7buٽ~k(v dSZ;vXs $w-͒E[ ͩ0_Q/GhM{rIr=xa o|::ns |0#_nVr%/V?hgZ2gRU>{质cV[4,:D`QA o>5/UC;{SV4;F71,a+DDžm< cq/66kn8N867$ci; A_->u|]ϵUlo>jvu/P| VHL X!qU!+$7R7Ʌ#98rʷmXKB|wTNTH99X閈tI=]3Ȟz3^W\5Yendstream endobj 493 0 obj << /Type /ObjStm /Length 1472 /Filter /FlateDecode /N 94 /First 820 >> stream xXˎ6+xrВl>çS` `SR+άUꮮ&wW+ B<)μw#xr+-iQx6Ph3`n$. ћIPx<֨JVizxgCv|;L1P6ꏾ+/ ㇯~gٞTendstream endobj 588 0 obj << /Type /ObjStm /Length 1723 /Filter /FlateDecode /N 94 /First 826 >> stream xYMo7W(MrC)CpsrPm*T [)7k)Yi)7Ïsm.܂"Jr)3JviRG}8C[($\FI愒]mZfJA).JT1(!Bd#T&H.1I Z" h!hEo#*`., QsU IsE%U95T*) K T!X eTຐ蓀+qn)}O fa5&<8A)J^v f7D>G+m82szȰ֮p<%{ 8(ߒg- 2szp6k' Μ1) |Gi 36y>Z`l-͹V Ć1mғ\[p|Q`jxԵxԵxԵxtڪC3s8>]azňfkMkxյbZU|X)jq-jq-jq-jq-V{*rv'eB So[,j1ZL}2 #(/qJZLŢSo[}Q7^UxN{I'˄vgD-soqQ'ʐz,)j1{5gUЋK+h]8W8W8W8ɨ2>v,єx8 tߣK?HB/io|MhW^wAb-nj7XzZ,}2 e[[>]qXQO{~+׫2Kڗ/S08)vw'X^},endstream endobj 683 0 obj << /Type /ObjStm /Length 2281 /Filter /FlateDecode /N 94 /First 863 >> stream x[[o~? mȢ(MְӧyuIoV֫].q8 WF6*-`Ծ)+ƳgRDFXE6H)ƣ1s9brQ(G8)k04,1M!e^zL)!cv@&(Qk19|(r6YbvLHDr9+l>A= ʊ4;bC. '; 5_ɑWjf|ǯ&,l:/5W%AK7jb; %lrL.zV,;53+Ɖ^C8 :s"[Pʼn ՈN+ND;wF{Z5)妥.]Yz`tu*bmdo|S mf*Ҩ-k]Vw}YvANKEye9bTC9z8*w:=?1d\CICzb.b7:?,|ZHAhRHEUK!CPY )E,!WWL3.Iiw/3ڽݝ[;Ϧn+\n*s̶HٔC$%>$Cq Tʍf.@..N]sߺa} y-+֠LŵT2}\^}>-N;uz w6-3Pendstream endobj 778 0 obj << /Filter /FlateDecode /Length 743 >> stream xWn0+tLxmA tACV[ E-ɖJ=>0f$vz< 0`#2PrgŻoo\~q f2 )5aS8FH.dµ+Ux:A*? C-.$V8op^pVLv]eǗ ޭW)]INcWeD ыmrjsfh7ū+PD{jVsH\*u+Y/7U]ۭ-UJpmsA`ko.2'ǧa5LuuslW=/"ӣ43OCZ\! 36 2rڃ3Nf"׉zWBQ,4)@\U`4.qƻ(/k\QkOCvPRg/vDwt'] etEijCW^5ҴSM"_RkQ 2zj?s7Fڢ3KWDYt]hWܫ캍wG7wBfRr=t<y=s44h «_}ߌ8endstream endobj 779 0 obj << /Type /ObjStm /Length 2488 /Filter /FlateDecode /N 94 /First 860 >> stream x[s5BUtEQ 9Rw{X6{$zg `fl_|S%\pb+K}rU\+AժQLh+-T7 4{QF#4[v Y?..v0L,9 F 8xwY_c^%9XRBCUqܺ^%b}\P)6J%)CD)CɥZ0.oUq>.gjh4`\. 'ADYW#;$1;E^('jNP#xaar%&|FĘVDg ,++I{0X&ܱTn0' #HUԽwe<g[`+֢R^ 2TaN{6q8[ABTQdhGRupr2Z"V;@Է>:WE1(U0/$A21e}1b'C1Zg8*@a)+E~+Za3xlvwڭןť[cj>-^w{nh-^zקT`y5Bh_|uW]}w߼8{ŷ\N dO뚗*y:sLS"E}%OAu2W2@\tHʨٰGrU/Xg:#(u<yHj $kkk믭 ;SnGyG]t.ַۻj}EݣˊO0t{KdxxŒQ\KaRw r . MNfyJ>)Qjfڜh"h$V,k~:~[~Y6L1e@d>C)܁d=jHPl{Z.ZѮ|l2ʓH *IAL>1=  j:a+XpOiTfP=1sMK}-y@_mZ2Az0spGcd1e`C;X9chxJ0wcݏ%pil~,쵞t؀pcޜd8Tcvw 3C̯4d2ߌ:ΠCg" !z4 c 4B$DAUȯHTη?fu>ES"5r;N~:ryy~3 V}R󞌮 հ')O(U>_ݭx,W?Cr'2=Uh(-U'lGJ1,뱅m?Zs|3=ܛU)V+|Pƿ+=r]d}"5c{R=yQ9I9،FC~wNeF룖%\<nPWofmC 9GHmcz gO'DVHHSZ P=N5z<<[ Iƪj'? {ėѻm:P LW<27 gRw$up(Ҟo;fǶOz4m0U>OxVH71txXG2Ջ&tō5d-:$E`$/zN5L c:UWaeIN)iog4IyhS>+VW8i3 Ɯ}Xz[ņIgyAZոaN{4slk@Í:@ug YSMkX~QFoxfzzJ[|G|ӖY058kn׃%$=U& P- WrFP'irt8ӽ610I{x1Tw{3o=SħnE3O Ol0 $I{ba] |>i [>yZaU wtE S buObݶ'OX uϴ9&鯪ϡajipadUlllllF/l'FO=1zb'FbJOK<[ dT YPGVe%U| 4d%2~񓌟d$'?IO2~񓌟d$'?IO2~񓌟$G+#Pݗ # endstream endobj 874 0 obj << /Filter /FlateDecode /Length1 1630 /Length2 7750 /Length3 0 /Length 8584 >> stream xڭVeX&E:$Djn a``b(iQF$$\ze;X@<|- \^[bmaffguW" #8G3`35b >?B`v{=9P !K( P1VR)k!g r Av3rC璃# !.# ?p3q?jpotSý=vOGAPG>_u"߹{`y vnvOs"P{8qGepGy 8_p!V@g0 sο0h?^C`<89AVP{ˢjovq q3 ;~_`CK^-}JMe#GwK}NiKp84qr07w4UVE"gou/ 7_f(\ @ k%v??v{0kgA|| ["A/^?hks& 1tG^- M?4:kPw+>>>~?~:={s@{8;ko?kC@8S @ɈrWm-]AyUٙoBŋ̯˂x$n 'wo86zZa͉ joFLEQ y{FK/E 7Vν~@3 ݗ5ӗ̑24w>b^H> *Fً݃;4Đ ͬy̜<ͧD^@oN/ݔR P[5 CۅU(֜w8utJT٧(p{DЙB冃-X7Vc(oIyuet᧞[Q#ABוm"+~մ5X'X1U_h_)&[[10 S# W"i&)l4]OT'2^UI8F1AZiiA7h*|3ʄp: J5N֐g+Ɣt,lu[WZ{}gW"0$+C:aR0q5j|%"oFGз.7~!a!CE:A2#~Dj҆ o(.n+R{os|h' *勌䉺ֺk'g~nƵuy[iy˱U@nrʉA"෻_Qgixq4S|!k|\B92z%G@*M'|l@j~c]w`Zrd"LEXM=eJApdA26?,.xvؤi)zgdTVa[@/k<P6BAQ+0?KwE{A TEk 5SkRV~F7Z;̯9)'w2j4xf,? ʚ3fM` t?8o-7~T!I>7+,x=uQƔi\X'#\/6 ^ͤ<*6Et[, G|pf>k-Ks EI$Rݬhaϩ'Pޗ|EgAbtIhc9zI X]9_ q@~97?gznf6zc]ho7.$~!Lt]JSNbUPXCɋ:M²elWeBIV d?ȹn^ Z-DwQw}q ":#j /0i%m,["7Xy=gW+kF)KȤ Kӧg*ݮU[UzēB)vKyb妿1w7PԦɯwpSzJ>6ӕiӿB dK\ 篂OݲGq_40'L(Oc˾g8 jMO+Q|#S**'$-|Nηf 7?yf8:љ|'E%*WPrl5}u–eY"[]҆ىB@K>}񤊺=jG ^  b^ y׻&г4g8L։շBx:v9Ò_+~/ޕb&.V4KEF@'2H O3 ^8a|NH V_:Kt4V8yOUG >i@F1 ٦@r4`AdM4XPEiiw+Z0w,2[+S*Ll%٩eSwO"ur[O& 'cOFG*fVDZчjKq!W`- 9(9Q#aޞlxOI"P|bg$~RYu=7vȀqI03π߼YYfӧm >VE#:= '{AOUT*XqiGƬFn +D|~˷ăTFk$G8x̶jkU.okKRaO*G! h1Cq}ڽ.{ X4 XΦS~eHȿunM3OS<{[ÑWLrksQ)u+nv!WptLq i*^˃D_b]mֆ1L$"SDAOw22zKxBx?h-$(Vn@@m𪥜$iƚJD)xs G6|wI%V 1nT;03&i  dJ|2 (X<"rDjvVQ#ւ@/URO.$WnVn=Uӆ3CwSVS&𥳐msk6Ei냔>:P~MN S *-}6ۤYzId2S1|:tNRa :ȁܩz+;Lh{ۊ.o0l"ч⛺TS6Fxe`"IqNO(}I={'#O+NI0 }FXoor CѠLEhXh\g9='mQtI*:iXEf.[ž3l:i$3-+"LN.{GS1?9&0UBQz /c4%5 sNքtT1>,}"NQC{E /B_"S^K*i_=H6fۮpvZc`Fm--aUܘԊ9PjktĴV>Eqp)%]6'),hYή^Xd UiC5\|05oX&RdRyY;rHӸ<)&YX=cgn6i'oQ:|8xS ]_ӿ㇁d QTl+R"\ ?)M)dǛk<R,$r0-fymy>g n3gO朡tr-7.f:fZ n`<,58^ԯK &"ugh|P{u*=о M>M3m5 &M[K.ga\;18(R6Iq3bds{F>zҘ͏ iq{üLs;QA))ޡmfT~3;"еxS榷}pNp$5ov1kכY?"rY7|s.߄c|80vxx"i4 = q35O.Gj vj0EjzMq'z 6hJڧRu驶xxj6/3nU4B4kbs9o%$a_ꝃۻu.@/)2lF% m4\Оڹ~9܎iI`i2 @+]q` %Tb"9"Qb[JƦKv:">;]3.ᇯs?ZsPnZ'yzY\1 %|GkCDy5N}J 6ƣ"N0ܳZ=ӻ9ft_; goqĈ7}nK*WSG U*n&Pa4"8M"=ׇx=뷖 :kkGXԩHn ۻBerKG߭W͞ԭA _[wIXp˪o(s) k jjFfOU]$_1aUC]BUcTbY6U[h 6"ӤA$܏Z4z>V^`v mqd'8X۪q݊Qw4?&z`!$"y,&)] ʑլ/dɌFM R3)ђƈKD>6m}WOcP-]C=d-~7 io|OƇ;j7UDdqGˢ?oz&$~YMf)Svj;y4jXFɬWo8>xM؋׭7Ŧ-s~ {{HwGvI"Y~0tp@|n e1V6M4[fr鵅՛=horaUL ,*op-qy=/r^B63X^P`ư>փ~)#Hd8}PX8wN jv)+I@39swAb@2>\NXJ"咇/CZyCd9E9OTL!qĈ)~ʤh! {bs.qJC:ė{.92]s9sƛltP_HI}c?ļR=߫/>Fd{ɝТE|dAnƹ~@W G>OiHWEwc؞97WXWIwS\ H3$uIڹ&k>7l^2ܣu{iv`%ɥPJo7U*fsJ62 Ui En[RB> oTu/+7I7->|=J͘e TX%`%BEK+}/jrt*@{y h[x%VDH9¾sXZYd-x/WdҊYd̮m, <:,E05KrNO&a_U= d~;L9r&7 ?~Q/4Fp?_$[J%d`l{@m3EC!ϞeUvX9fI8q2)!O=O&1WGXCжe/dBЈԉ>cfk5Tϭt>.D /ɉF)ˆqa[z;1K$4 0<ȡ܌ Ce\ /8BM؛Cy7cM( zn&V]&aq*T$HOӐs楱>"2Az+3ز~'syAA}թ(,N}/U8"zo ;hjhԭ/d}endstream endobj 875 0 obj << /Filter /FlateDecode /Length1 1166 /Length2 1528 /Length3 0 /Length 2255 >> stream xuSyMc펼qܛFo;nirC|4٥Eogsܙe3^vm;UvshAh =V0d,L$vi鱲(}ipF7BԦ}>~Y޺%YZʗ,bJÍ 6>+TؖoƷhmqf.^Lk 7Ʃ=@K8uSf1R_M=c-6͝w0/b{K1s{oG4*oyEbJ$MqTܳ ^ȋ{dEiǗ UӇw̘,DZzKFSfOF|Y+NBݍ.~%OJT2ƇR*Gȵy ME/ֈJ_,J,11o SaKSNƎj=O;3g0&vj:GUڍS~,w' JCXd_ޜlL}8#>oNۮI(bAoW W4^KxEbʋ&{rQosd՜oofduٳ4eakStOь3>lh>83\&-f-R 5W EPetl;eѦc;ҞtUGnb&C;'םCi# ׶uR{CÊY Y`p {6 ܓw!%#!ۄA#+vϲ knz=QH$ȑibdѴgͥڻC~X\dZn$ai&2?:szl5QUfaHh^hL3.pZ!'5 NygE%|L'MCw3_w> stream xYms6_oGM"$rNWgRMtHd;^Uh '[/Trg;$!.5bNr7VOKr29fsplo 'TNuM$sȜ܍F }r;n~7, Uh,;8k(zEofs3%"qo> һ5ܽBLdrz|p@c̘䇚N8=!2d. e\́a+yrg%׉dTɻ_\M@wiQОGcD, N3Ϝ6"#p(aI 2!νs8B9sS$ 00yqӶv]YoܯN{}vWo݌?kCrO.7\K\UUϨH~g=9[7g&|Ő1g1_!t^>PKJMxЩ DqB|rcLy>AXNA:F >͌v"j qt(qv[HGUWY(\@3Du8(( D6cWO!Ɂ>2H?*oLꪼk >7鶋Y)E|>Edm!6n-/f KW:ASؗ!8!chA'^G.i݇Edef`١ 13(1q|*ssZsQD$6~XUyJ\mהiwew3,3 &4z#?؉\VԳW4\ЪYP;wGsB1T)fcNQ*@,"<Ʀ JMo?4qfXI2x0 1E9,<Ū͡*PՑ4.c^p)$hPнP~_N r&2M\n>GT@DC1I<4@%iIJ*0h&ey0CnG&bX `Ť_UsC wo(Gݛ!݌I`"C#5R9a>8]|O;wbG!rDG]F6bvlz@сY>tR6' ?V duPc&Ă}-prtޗbIq`9'V3E*1T ʆS,v=&en'TWzcVEXmMtyϚ,یm͎p&^i <^]DF;GX?>hFrc\*f(ӊF;YV j h\XOtlD""rjT|O,= ^͠7ugIEN fh˾c8!4u6A=+eԛs{w ۔Ţm,^gLe{hɡ!taAht3\nsl&Lݜ : pS`Ѯ35k>:ftahA m~:wͲ17O/k;$ƹm3G$KF`+3^HGs &rsυ>r'ٻ5g};&;aj keWGobyS\i:.$2m?IsAĤ/g^ P40Z7dy:LrflfM^uD;}b(upJȌxLC0@t, |d8RYvapu5Cĸ{;>]W8Gm3aDu_ )yQ.xGGk݋*VY҃k8[Gُ^1s^k˿nJeCvwN/rg9CQyhS]Y|-hY|K8P|Id>;=CA~MiC2"}Nm4 )Qz;+hƩPuN1P\:N֏v&UWX& AK` zD@4ڡ"aPl,\T F"ڠxkAvNeCƍ({&'h`B<1P7g*cКZ X]E6E-[OI\!?^6eW^OfC+`28!t3 ΰ_̼m?-6R;P9Rbi<#`ERoT)0 EL1> stream xW[S0~W0kܙ%MHd<ؖeQ٬2l@VZ{ANn9;'4 15`ԢF2j84>9!60͖ V /SdE/T#slL˩'%O}"3\q&tW`!m[bOM xO[f}wGOzq.[5?98<~-ci-N>_;:C;!I/І1:/L =H4-1UxLFzUlQqmuXS&"[Tj;چxB EMz@`h"®F7Ælỵ(xIrj"qBx-! KgjWa^proz6k:2^x!*܈rP=xnܕybȋLZ⥀W1_u\] Ejm ~gix,=5èʊSNeWqP)Qbךּ"*o"RMd6»kΚ{|ɥۡ(+ѩ.m'&M= XxtjQJⲪE]4%ku9uM6Q +lɓJU?C:S/˪AR7YK`^uw䖖qMӶ/voO!S|_ v퍊RLJYܛLu_75?Hqw2@*WPřC۸V榡]񠷚cpG -Q`mC-*.^ 0?3jiSچz8ZʷI-tE#|>-hu)ue!i_hOA8;3ӟnQ~܍#nҿ@{|endstream endobj 878 0 obj << /Filter /FlateDecode /Length 1230 >> stream xW[o6~У4)Qlܬ!CEcR^Ȋl)^9w.<ΝR'F1\;cPpQr|qr+ Q-f!|sew !vȣxcɗoYKq֭C A0ΝN_c>G~? G}G̊4%74r[13vE?T P/~YPf0eV@\e,Tʧ?1NBգt#?B-q=q̍DlWgeqD#yG@"gDhd/7ˑ8 yKKcģn)RmDZ+EȢRݣl0tS_,CW} цO,)lE=A9Ӏ(ulh6ZdMA!JĨFP[ڿ/xS[\$i]gfɘ]8|juX5kmFb2HͮMf7 @wZJ)GRH=?t%E*6ev?T׷mj'Z[~Nn5\&2[+V߄ʘ?bj_^Iވ|acd )-\>\[~?D壇O7]ۇ 6*1a1wPeʊC;LuHo6`&jM)U]2f,υH\,TXs.R]̪].W۷8٤7Zl휂t>^\:ڊ^5c#nEj( pc?mtlQ2r#m1@\C`'Jߦwgp@B"oV"I gà=áB + Sbl ׵ϩ{ Hb:[>kAY=I"WD# n-#@غm@O+$YjY_}7hq0bzĵ~@#aW1A~g[ыܖ!x7f|>?3PϪ6Q8N[>:BMZiV jZ˨Et-@JTАM ]Ր׹Y (6j`N* ПP N%J_jlo*iX"vx}^G9FxAxbڿI^t/ǑTx wy "-B>cǿ='endstream endobj 879 0 obj << /Filter /FlateDecode /Length 1264 >> stream xڽWn8}WhRu)zӦH/>(2Эd'CEJyfp. 6>M\MWoE(Z=XczQױVk4}[}_y`ՖW. NgrQge*ak -(Da6}m?b"H5yE|)j/DAx%R#BC-Ϛ4ƬZ$-vǛ㴅 Mۗj{[Y\ $mJm k{q^&VwhZ<Zca2@ӝPӿc{Py1 o  dEcv# ;EČ֫8 A>WzRq\ 'xmIERsG950#evOK}:WU}uPj&W.aKI6 [k^#vA炜Z/RhXށ#aPkaqAQHZWL3uȲ*xs5֏L x<#xi+UR<1 Bpʠ"W2=RƂ}mPl9rz~()~H9lDuX/;l2Cz:zrEn)1V-r&cy')ng{ U@\ cwUaw=(8ČՏlY&uH| i!ڈkfa\=3pA T>< uLm#B4)Hc 0Bs r3wZ )# Op{{w "vhuiՔee BL/ qYg/ҢIiK-qB{#sG,6ً>?,K+[Ed׏?_Nff1S ğYYuxre!ig2找~ *U#П[ KZ6ʺtSYo {խƍ&f^.].nc|`]%[I=;5~i=KzSHԃ `:p{6-74 %G> stream xڝW[6~Wx&/L0-r')eaK 6yX n%dG|5MIABueo0! ݐyZ[!' rYhGS[C9&>k܀yKK[P1ى4aFJuzBlahXgtV ߚ0]Ƌ{MVwb! OMNSb՛EX%Rop>?նi˾uFO~]>k$(p^匇,9!SOhPޜKcw B+y [r'// ieFu|8 3+6_Ӽi~ 'D!iP^MF<(>YPô3miaj~BVCn=;` =X{.Nrh6l]«Lր!DsC67F;_ER{9c[*}NJ!VA[Y2-Gk^x~Tj> stream xڵYYs8~ϯP>3U#'N,;k+s<@lqL ; 4(Rfgq4@_wCqN޽:_:$aI腓Ä.~8B›6N]}8"hLK{Ao̮ye[Myjcpx21 cZ/Ϸ \Gxߵ6jLgιm;5`1]R VtAO1_-~qs]pO4½h8 7n/|vJ􊲡J_@_3_}2{Β wNey0wM>57cɆwR,ݪ1Ut-GmYACwYW5QMg O`t\fp']Miӧ)ٲΘD,Eљ}߳>).~8_F$A4P"UUǰ) }Ts9);,ۺOuhU̝w2_W2k fZ`«aE dfh;ɊFUj*"G Y_ldL%Ѯ͛YVlziZ%K]$ /zL4?/Sx':Ӹf/n9l"E84-76lh,HuB?V*%yV(IRy!6֛U'}Fy/jϴ*M}3^so)-9,x$P,]MaC| {G+v#g/7RdžE}yH^gdTy/~B9斫1Q B-fV>gG̒ᝪQ7F\?.h!Y=n2 |i<'['A "rS>'2RA}L[j >t8&\87%M#rÖ8ir(&ҁaJ 8 ڞml{si[n^ ?_ Jq[7UCHm4DLퟂw=}n8n,LO3@BeEQ4#21~+5PNgsМXDP;j),d1[0Weޢ7ԦK854Mթ`c*m 7p)wJj )!.LޕOYh:)J}iMnGS#Bf,8k /˝:|懃01aC*5_%4rIl^nȍuV |btGkR1m3jcL0:JW~vThԦ=I{IR u.?TN3?HE*CTڪ ?h樢]=;kJ|d OU:XH}A$X >k.Z.{5˗Le_fEcMk`P/>_B_u?:&Lb`@o c2?Mg:ϗwyw4~뷌$H(^dsiuGz 6B\߼5խxuy~}ӂ/,jq2n|:> stream xWMs6Wp9H3& @zN]θ,@SE2i9 DNnXݷ ;;&/'KJEcrOF9˕yJBYKPL%DL.Jyz\m7qRrF i$YG87[AΜɧ6bc#b/G0a^B樗pCQHl4\/ we)z #OMǙ^)Z9Bʙϧ"ȍXq}l2 M\酠b$:x`k.i8^}EqN僭AB#f#r :OLJQ2ߩDֶ*'Vz@仨^ÌǙLm5u{ӺtuI J$͹ !`O-e?T;BuVGb?JLH|q(7,Nt3i|{\]ؖp ؀ɦuzg[>8b,r&t`{H^NF)ۮ<5\Mcҹ{YI8'NHaQ qvHE CY[Q@Pc=Yӣ*'5SRr{ӫ1x{D㤞eҟ|Z@2(z V"=<˱EY<}Zloӭ.KugE['Bu^)QQ?{TDZD 2<!<(`- 崅H:hNBeC-xw0) Q=:g6<>Pdu J jW@<{2ZP"VbΦk_,ݛoGxli|0οWendstream endobj 883 0 obj << /Filter /FlateDecode /Length 1697 >> stream xڥXKs6Wp܋4cĝ:I&i4%v Hο.R$E; D`YzxY]9ȷ}ksk1JVS9IKfm>]@qA2УdDślZ1o%25I~kZ*joVkEXC=z}۪|s}s qBPHB7-l돬,xf?P>ȋa/Gs֗ X 8_|F?Xֽ-1ά/MG00`eC$Mba>\o&QnbZ]zlBLw+FXtydzVzjyKre?yG"xD.FρMxć㟢eZ5iYd('1N"޾ F8\wH-m+ֶM5ϫLaje[JZV*aQ¢^@J6;ѦZ+Y&--rZ'8陰"8w 0FhmLy q=Lc/8O㽞T Ru SWm#F<ތVcR4,IuFMj|0eۀPI !L\lHޖ K+VhmӄSPQRABZj j/T#CEQyľ|] ~$>c^ژcmjEґ̬`E*ÂIGzˬ *F6&q ʛ_N6<ݖ=՟,l1ĸ<5;1@34ہ|X}t4T.αܙܡT|x~2pTh@c|ٝOBM}rWӮ06HBbYٵ9*y)Mx6? |y17c8DAAx8ۚYntGMcؚh *>tͣ1` ,^`R6/WKAӯJs*+{Ȥ 6[Fr43db){3B=>53;kUVnoЗ, ^ l&k/cǎL:yC@ z2Ӎ АM9՘%A@?_o;]th,s73E/ŵk@`iX U\EVXp'f#dzx9` Cr6qGT)-?8  }򰑦[`Jρ4 qu G/]\۬.qT .$\y}1^!9(";,`wd]n+> stream xWYo6~}[KP?lvHo 4#]#ǿ IɒۢLg9IAs3b; Jz]ئƕŞ˼ZX۟ޞGFQRSIDvWNkȆxmEn،ȁ0HݟliJh=u7>G cF KN9_jXͲg=W=5 X5z~VܳZç݋4MnxYmn׊R;} g`00P%'O[qմ+~"j׉,@pgn*qWRjL$`+θ7 4>!& H^zRXo#\] ;@Lҥu. QN{N7Dc(5,x6 Tc[&9sFMaA{<)YiQbE&D7C|=g-&s9Zi8q|c; \rN˚r6TO5_E"*?tUkwE~G ' I\IyWS6׎t*{!Kd؈cSpUVąm y<ᨅTL NDeoєL,븦~I=8\#ëʿpWF1t i8kpbOZ>Ѵ$lc1O˲G.YogzD=>꤃sLe8ӌDTJ3/(Pjf;2LjΥja=RKEkVkLC >slg>=$S\zizMۥOS!,:a6]a @`ލgy{[k|ňp)'7=2'Ku. s A$gIxAvyAe C'D䋫kb `qd> stream xڵWKs6Wp$S׵2ӉS) D)c&`o_mm,z?}9/\f(`k 6r *̤1ϣ,SHL15Ȉ(Yf(*mj=ne%ODiTJ3L!Lԁ(v8D!!yhZAMufɮȁ}U/Z@)F#:z_G%S26FۡyH)cpԢ5V"Nl咇}:TX=zAZ֩!F_Gh4Xm}\궽B >1.!ZE*\)5;R<ӿH)THDM}>1ON7avxf]Zݒ]TеϰV< 2_ӍOvd)BU'*4e.W=~DW@)6?qwHv<}ű0qǣP4[{ M Dwз6zeVթw9*l_7H̞rrkЧrzUa+=iY3 NDMo7ړęRö$,dh]O<ߝHHdΛٽ{w&nCгL _їGѷ.?1u&/_mk/R4LL8dxopB[Nslެ`pD͵\.V˩G&0HWܿshmn=zdt9endstream endobj 886 0 obj << /Filter /FlateDecode /Length 1327 >> stream xڝWKs6Wp |'uL:C=J.IIRx"iXVow]@8tb6'A X;cԉ(F9m³ /M,}S0AQ ֔$ 6A6ɺF"U>*پb۳?:QDZ}UҗEu H)RpxQg1x%W褆֊L=כkyZ{flz\,3v;+ 4NX M]'-%"FRTXd,dEEH+$J+k\wa'$QHV1WӺ(JVx؆SL[]߷O5nWG#Pb\(X%GKÎ"; R3%#y%2V|,aMI$lmLPVY2>UM@d%U|DmţC|Ć䷚7bJd젌p;pw~"I8Md5$ wAyaڱWq#/ȋGyKֹGh+VrT~ ,Ú8EJ$>5VzV:M<7q4gN"2 `F ^7BuD议TWWRm(Xpmy(7/r8ze1$@^4Le161F؏; -;D.e<.iC(aVoޖB6mz>{UÍRUcőjV=߃ds|άIno?n})2I}*Uஹ+,adP@lR%Dކq8$# fzdW$޶׳#fELpvGP:$s^1-( z,h[M]K ' `AdGN(vީ/Vg$֪I{_o7,Wjcd]l)Mw 4#6wFGNq $Kad;CY3pvYC  BZ10Z^pYJ]Ec<̚*NF!`xWļLrZ1 ^fk/x{ިsx~m[ R=8I_eVW\1ە*kC_|j Zendstream endobj 887 0 obj << /Filter /FlateDecode /Length 1439 >> stream xڵW[o6~iRnE1,͚n<(c-$~ɒM5@I<<v6v^_Vgw"\\9cD>Fu:'_3')#ܣlxel\̰UZ"'Y)%%. H,@]hm1f|4c_fo,K3/Lb3Lfƍ]Lm`ג`yH;ə,siu6'E]؂|䳯߱&h:7h0BP(3Cd8f<q|!_F7( IJvA9/㯆EISJ|A=y7R> ( 0.{EE.rAR')FAɎBbDŖP"bp .D"&-)&sAj@8,`^_#@w9Q4#X2ij Wfmp!R, :\PH<|xF.Rj?J;rYK]$*~ƙЩq=Rys xvc(pis^4F̰Guc.JRbح m!E.S|^B)!}I ȻOFݒ݃(Mvg~u̾+XMc"D-U%Q0?+pHޒQ]FΛmY[qKA:IN`yRB|Ue./LLYfebS۟m![޽wJHU]Xӹ3eq_ |hn_IOIEnn5v6>z^ٛd Gm蹌:*oD&a]$B|M"(ߪgvnilT}[tTms/Tc`~#+|7 MZѭ<$bƵa?Z: \w+`c5Ua;.@wA*GxSYu,C4<Ђ&r'UZ]I2ްVL5<tӓ O YsY\?'#}^*r\J@u$}ZPOس&([Bt}TYlmjussDVߪ(/y$ :ߣW\~Jm|7u >Z00b6 Ϗd(|hJ.,yN˼ךqMQmd+JM5URpڏ]G:QK .=kJ3E, 4=#DX]AӌenQXE8"Gu $YOLJ#8(ei6J"U@#"/`xl66Ŏԟ܊S<> stream xWn0+ԇjM1zr`daͤ:"iST4pp‚ѻāXӹeC\/uv75mҺŕ =h0^v(LFPm}v'N(kWfC-w[_x-j+ЍWgSpO Llb?xT "hN\"OEg$TCqanKGMU@rc MA N pȭH`|[nK۷iGB4qu}~%6yCpU!͆Im 9k#1pFO62zǀ Tj.HZ+k%IR _RDY3v.Xs{Ӛu ImӽRZPlbkZΚ[ kP դTrTS} m]I%2.g888>>A8[[FrL b@BcJP+ͶCĨ<.PZTFk\a G\=|sc%3=,ZYkJT(\j-:< iqAi LjYr D1֥ʣoa8<.P S/0py]f|oC:182beʤ[ꟛVxUYBk.njD%`KkiTe~%Oٚ*hBe/Mv9|6qŬ!2\,jq@,6x'9d;KUw_-TDP{u+dKWxWFJc}aP̚l*nRSgdH,q"74R`GF+<[\ee*6> stream xڭWKs6WpTHigS89(cʇ‡lw)Rfǭ]svM9)I#?rnsQJ9qDId'72cN6S?tFUڋj5Z2uq-c!%Q9k(DO/R@(I}EթB%{W/.,׹ȺiА]HWyKaxР 6틮%@?zVFJDQR39iD {ш̅:.yN,:ps]JV]$|_ɱI|HdN^gvuE6"1P9Y:[8sI&΃Z:1qND9aIJP>+y84aXC+ѕ`Dm˝Zw8T'|nwuǵ^%^mM+GotuWtהPʆI"F8̓^;i|0<7Zg|cq?> stream xڽXYs6~Ф}f$ A$*;MZOSٞ<}( %.R-ʼn%=vGxQ"zD0Fea{v55/Z]yK'b~]ybL$Kΰ1>aO3BOn[rMcd`0`( `dx$M֤ca .E'fΜZ>8h))mcc(nE}@ʏb= h>HP/?"k2L-yi3/kHc+9HLL"SZ%7,r3vԚRLAq*j+"^ O:=} t"71 Du.Ck⟏?SG@a jމ4&MX$n9 ZiX5&ݾvU;u]xne4,8PjGf5̘ b~x߆5D.ZV1_ _bu!ck(]* нs$H$^h q2ݷl/7ˋ%Og% gC[ )c &g lБ. @P`+-\7);fՅYiYI yD@w 1R4SDR([I]qX x,t>mZOZ/M3J ZQɬQH j.oy9g~T-_ϵpsGP{^yS{$@yZδP08 5#qTϹ%CCYU׶ Դ CjxuRp@Oj"ᆛ1Oh5B(Tukħu;n/P'O841h5}͕ |r7@rgD9z A!@LS^וzEF~YE%(F-(K-@Ҷ~"$:ZXl@ݶ:W"/r}6~#*єS-SL)2DP؄ Uހi+ُZ>:(Ĉm2|֩Ѐv*\jvQM,L`8ui/DvYx<h @Z-`'4!ض {Ts^7m:vqwّ}2f7 -^E>_ e/O3+C>N-鏊tټ]b+l't!T `+Qޘ.&=v*UkWZ_tߓV0_r wƑ̛V4"QOm3V޼NW:s1e:Ԟ|qc!ا:яC>gP^} rK!ZcMZ uJV`0F_=1endstream endobj 891 0 obj << /Filter /FlateDecode /Length 1270 >> stream xڽW[o6~=H@LEd ː,>2-W8ۯ)R(Yttx9G VL~\Lfy2oq!&̋bC|\2;%d # 4"A_@AWJh)MH2M^g\jM5E*a˴_ ͑6/eYUGA/du\&ɳ:wZS.߷_y| 4+c [3{Vr@Dsz֕iCT B"?RxBB 8:.2e0%i熡|V1:;l.)1 &*x Ԓofus|nQwdov3~\uN)'*)Zr0 A=yH\V/E2\]̭^/ߝĆrl/ead5@Sڣqt! !vFTxј;=ÞFU4bl?/._"h_h>Fၗ=v? ͝F=Yq2"H> h2pHPJ7ep/!x~q=Έd(t,GzLYzn Kendstream endobj 892 0 obj << /Filter /FlateDecode /Length 1407 >> stream xڽWYo8~iR")h&NECv tH-ߡHɖ"HSù!6ޏޭGsJ-"#r1ǶֱmR*'~pb\56Q$#loy@˩:aEMW&SE`q1_/?}uKϗ3s۠Ő F>M!:j7Sf?ⴐcw6YוՋLjHHoBՖn/Qo2, mO odi|{#P6 Ql38JN۪ڽnooțŵHgq*Fku%KiY> stream xڝYIs6WHUb46bSLwO*Jf\9%sFl%> R,bB m06}՛LdiAEvƈqIQhv)]yӛG+HIr懲UߛW!(s-wW)WZe] A3o^:ț?t|$X!VTLvR  []\3U.λ}3Xerjp]"/ա]0W)U_|8"p p׋kZ_㾩{~!\{=XmRmj( DrZe[?5 :;C)v=Ԁ "_d3ʿAl9:Ǜ ~.ȍ9 U րf _jOc9amзf蜉ͳns *ډ+7U1שl_,q?Cy.rw)XV:,BNL!<^[n;كΝyz/3 ‘VtG^x~xMcٜz+eX8:,HI^՛YpZPp5odSB!*d+r1Af,Ӯ°iecnX is6%#hJQ",h*rW%4>SPfY޷] );_WP3@'k̀iAp?qwV /tuj`֫Qo#ti ZQc?0b}~KG˴7FЎ _0B S(u ٌo:_ܒMDv5L gU-%A2,(Ͻ;ۋ`5ç%(s PnL(Yj~Cσ?3LW uGMU5HQO"EH9,:t6lj[yh0X2aV VU+C9\|q #)! !^mIXV9ci9gVl1Mߘ#'2ZSb K&r0Jb>=+&Ԋ]` Wo~|ixX@-(:Wu}r㺻 E"Ӱ$@2VIb=~+pLP1n*Aܤ>m܀GL M}LF8A7XIM&/8h|M هOr`=/ p>&!# MaezҨHuD kAr?tn;0(|T]6AuB즼ίU~ = ͩXw}Ҥ $@lV; > }um0 =MCRi0rݐ{cjG{( id$$:rb/3vPAE(lO h3~KKC&1.[kBֵD 笏IAy5wu=r@L,P| 5h:3+TEq0:szD@$ $4xQБc @Рr1 EO'_*E@8PpA_e]s`d?-3d/S~~hbj$D¸ӓslDE:f|o'L/mG P3IW!Ik' M`hͤڶ1L]$ dfcqDS 2i\% uX3?%աR$@͇"K9C^^~Hdl3f4p$'L|UẌ́y> ֥_n6ؿ,OۂS.8MU]W2It@ʞ,ӱjaUn˭ zBMl;6B2N >$f4S̟QcZTc_bmM0X M_cXt~R=@gTAOz:[?Px8h||A_z=~̤W#IET)f>x, cG`ℬњ9 WnS</h*ܿfendstream endobj 894 0 obj << /Filter /FlateDecode /Length 2898 >> stream xڽYmsܶ_qʛ pNNlGV$@Q'%4 Qtt73$~?Y5!ʙ _g՚&Q>C pkш NiL&,pɛօ=fi!Aɶ0*mTm鿩ǐ ^cmfC#C#SUL9)Bɞ@HRGHR~!B)F&Y#; eHPmD?d8hj\ Snj=+`>.(Nh$ 2iDj*#^ی"xȜN"؅Q Ti.<.  [t_l }ll@"= 'D6`6P6>/(%@\>SSہIx$n|fj?J-wb_jŃYQ{Lutʮ:LTFE|'$@; $[gx iN$z\u}H V?='yCzU} KVS#`;+pJfZ01H \,S %AX P! T ).a{V;/wۦ-(\[ -R$$6rYWhe*@>18+lMC_@eAMvs U Yaڗ iwNl&Z;"BI4])(s?WT~n1qeLESowoЫ]Sy>nƵ]Ĭk0ς.,#c]ʨN*Q';.Av,NPfvMUz.@y!Dj!'ҝT!lrY)l663d+LLճ߻%#ӻ"jMdS^VJc{LEa h0i=9Xfڐ)eY3ރ I<8\VG@fZ*+„C=z%6d~qi"|pkA|7 El6`Q=ش!,D`0t=/9`fVfm꾛1WU}ͩ9M W6~9 KA_0~w.XT\}hG<{6ɒo/hD=]Cu黝{ƫ| kcjf}Sڻ]`[@}V_y2@iq֫"}rQD_v}9#fnWvGD.^7 C;Einy>^w-BO|e:jLrJ5tȡaZ"Bb8&x[ 8%Ooڅ75"foqO,ҭ՜t݇lpo*_5P)EDܸJ@-yO1{~K(|ZM>w!%sBDa7n?yuɷE-C Ԩ1J(&?6~ry R8UB;qW<, "&fCH12[BʙЕzFDb%.?Age[?r[ĸ,tϟ;-n[LS=?eQX=P^TIgµg Fˋp"pendstream endobj 895 0 obj << /Filter /FlateDecode /Length 1452 >> stream xWIs6WpϔF\2NN:i:L30 pQIu{o&2z o#~,'OKP[<1 XE!F<2M/>el2"ĀDV]!E9V>{,33:4Qn 8ZAb2mnH$2^B=0ǧS|a\Ooワ/)GH%EKD'cSvužhR V`|=JO3#qFסN#ظ!!q` y'۴7]^Wu (˾m 3R-Em']`wQP: juJ1aܷ{I4@ItNڵŴn1Ҕ7PL3Sj)Dy ]Zkqَ?"Վ^]~)nzf(pEIi<'>,OВ<^jߞHUSD"63rVf%9zzwIn YN}<DѪ"3ĶXcPv~mD\uy9˃x&[j*-] .CZ_0@ H5 _,Ӌˌ~~,ۮ. i(,W9V9|a>yqȑsB/]m`I/A1c|$ߩ|endstream endobj 896 0 obj << /Filter /FlateDecode /Length 2859 >> stream xZ[۶~_J%wvש;qtl?PwDjI*{p! PVN=δ/K.sg3<닫2I*g731b\ΔH0:^̫_3 13 =;0Wxs79J%ϊ./7m[E`)V.+ Sx^nwb <k;0ʍkA !5XGjo;lFmOCٷU_f%]жm+,@ aپW+ygU}toOcMqH8 B?VHx!1,X`e-[i|iؿXEpm s7cE{H$Dj&/N&HE v(Kyer;֛VʥV2°ը38;wjrmrAhѮڊZPluyR*mRꉆe1z>'-@QZ/&5dx~׆ g.ZecDƘ2J=C32R=#E4% S{;+($̛(@wz-*L6(%4&q1 }"!Pr+NnvH(E)'>Du)x/z!#r鸩Q:'U4K~CڇNt=4y@x N4'a־ԛMu+~UQ0>*ulbZ#\}_%׏q-Yb612pihuF&YpsȘ# 7GpW.Kk,l&qDA, \އcF@숽I2,Պ1n,Tlқj'>`;>MGҁWyXy넀h,=k‘>b` d :ĥB] NwxFfA VRTj{# >ۙTg~S (,=G;# j Vnb$P3N VT.j%xa(\&#AB" q%'1?B~^Ij `rX\A%s㜓~3N4.8dѬP$4 R,֘^viOx7 -*/:7{{4LRybO2cr1q.q.-\Dp?E+\OG=1|PMJf̐1.Ÿ4LNP nXr,D"jT1tU\=ibC>1{0@$۠ ~Z$ WugwJ jhe_1UvR4u>U샚5j6gؤiAWn&5nSm<eT*)?.tq| [e5c+:Y?jH, :saXCnt¥^ u%tF̅x&ts.LK"@^&()婒3é-ݬ' +21H LYlq8ҕ vߙMo}@wx򪫛6",k`|>-PlBT/EF Foy#{nY:&mєGFI\I@AQoLk>4:[e_'0uݙza 6=U-3drӅ}ѡϽ#Ky+SݻYúM`zYaQx]`f?^tŶoXS^:І`z=},VA )w ?6F}Eة O Zxր 軮=*ej"R\ʄpjJ'ñK庳K e~[F#YH 2g=*-.gY"w-WhY|h(ZQ`1endstream endobj 897 0 obj << /Filter /FlateDecode /Length1 805 /Length2 2143 /Length3 0 /Length 2701 >> stream xڭyF`C1{ DT~(YHgjG8G# ʧjtg#}l~Eb#dzǸlA_d2䶢5EdOb7f_ ǾH'Jz;;Qa&կ>.IĊp?r@ u2I3כأ)~_SYQb&hNԨV6^F5uzQ[Udeam<-'͉Z5MY <3C7> n':L6'pd]W2p ' zb1/08DZ?q3yҴ)'xuA;dhKKߎe9/H3[n<%dqjnPcTT[(}yfcٔ7ֺ.]kڸ#K?k?O-ЩK}x;XgMzGHs\}bVÚҨ7^"҃VLcOF^Y9iO8t5yoV9󲂛kL&⧇РTuԧ#31«Nעp,0S$tkD'o'lO$K bv'.;] %*I.,nMo\XVQMEƂs_KZ%%^ܐMUh߼d٩+ǝC'XU_:}N !RWjKDtv.̗͠girl_[U:( OL;bQ2]V8o`,Puiݟ2&J\].$Ǟ^ti W΅b i+gL?)a!7}]F xU-(ս:{KCFn֬ . *x% nV*K}$Qzʏy^<3Ɛ!b/m![Q!aQE>[+ <=nT]<^3b{,נZw"e;dhDQCPef/u*5#w#iXZ?o!Z`˶81.YpGm3Kʹs,tikP=*S 4TFӇܼOo?wMQ̸f8ZM IKjPRu͇%yݏKu qp~x| _97?[*endstream endobj 898 0 obj << /Type /ObjStm /Length 1614 /Filter /FlateDecode /N 94 /First 820 >> stream xY;$5Y-@D-wUkVVk^u'*Z/2E%F0m@2Y]pGk%0^0N%Qa>\3yc .CteavK&dn~iÃݩ^f`f ́?yl>f + iPPVD03<EYI1/M0 !I|nˀ`fs`oy" r&L?B5 ~dx` @3kȼv *Xx`U&F2qH`6&C:8753t-̎-m03{3xc]>v ~4Qw!>9:(Fc^L>{ļb|W|ÏVi1/?/D6" .|h`R Q;pY^7#.å#vI}GZ!IҙR3V1mȼR *̯g5#egWT&biVSfɔͣNI#5H;svlI`ԙ > %6"8\%Yk_ڒX4k>F Lu*JMmֈtҰ#w5ĞV8Yq DZz\kD] ۪3_38+N>\#J,&|{]''pAgҹVdѫ;_K\ex*GzS Cԗ .&/|y?n' :V@fp]20Ηp쐵'tB}cVplx j+]2x1GKLr:wdp;F׉728^o7x_~~ܞow;n>^n˛cwrr_v9v~OK' vA:3n cwKy_7~t覄^K,4ۭ84\6Ífp 7F+u6 "Ɠo"lq9nt\6l3^޽Y8@ oqǧ9t\7ǝ"t+Tû"I"n;q9Ψ&mq !L+=Dm9>ͶBe0q}-b>9Ams|qmt6ǃV/5LQ>D}xqJP _XO"9q9>t|lX5=kXgq :>vt|lO:>6'[2޿uWmA->6 Ec3|ꔱZqtJƟ&ؕ^;6mةw6+#V=Z-kWqx0G1_Ymo`yJ /endstream endobj 993 0 obj << /Type /ObjStm /Length 1600 /Filter /FlateDecode /N 94 /First 908 >> stream x7 tٓ#Әe6ZHP~g%M ïuOw\kX#W\~#|t< ~X8̳U`Mŭk *ɫ 8fֈY+"air,GUe|P<BE%@5;f|-@+"G™{C Ũ*bJNqg$+쫷o˛o˯ё?7?wH\ʠoݻĚe t+[I*:@\;h]hD\$b1=+^)S1llXz\z)ʨLs@&r|s^.yڮiel[f [L j^aF:^⤱:GLN)L(kɕ,t`M9-=wpl+Kj*]l*Gs*W,f^^ N*R*'[5meSu4ݪS W(ǝ+ih*ޫ[u.U93x׮(RvcO 9d&sST՟ 3KTޱ%Yz,rW{*gÖdY/rZ\%{zNjD ^arX թܔ*NFr^gOHy )%_L"6Ԝ{&HT.I:;LMmdjLŽ}UN[^OHWKR j{UyF$;ޑ$Zyy&;=#29ɺwiʡ wE[ 2JFs2\wǿ?㚯?ǿ>}wO~~E( 8Ÿl㺍K61~l._nqXqGm|S_1Nqzo^nBv/ @/z @/z ҷ(B(&/;{S={S׍=?7^7uc^7uc^ʋM(rO8N-ƞm#¶%VM^D6q/ Xm%_m%Vm]eބ|7wo#׀߷ HTn#"р7K| }o5|5v!uH ǂ؂#0V +>"bhg#vѸ휈9Gif|i Y:'hY:>:ΰ3hG>ďr>F3OhS:>ZϛO_VBɓ1l'c>ͱMz?lq%w[=9endstream endobj 1088 0 obj << /Type /ObjStm /Length 1139 /Filter /FlateDecode /N 83 /First 795 >> stream xn6y C,ȦHö/٬e(r} %[cl.PCP(YB %k񪄡ojExuᇂ !"0A21Wۇf5tofy7Wv雗8]{\r ywfEb_n2ML~'q^]P^F>?oܥP+]!&ai7ѷ!ol8'{o4հcwFb $s3t~{lcnW!d %C#GR 24?}gs헦ÐCg05hD8TO!GHooqL`NR `1sVbZ=׆£.FLs4rݼXƕъ2HAy0u!q 5?urĪ8)qHb_=B}ؔ| +2٧Uk뚢5RQ8:Քը Brsڲ{BY{yv>7V[6VÍu*#aڲZ#q|J?]m]9xݘ9eٗ;½֕3IG:ǽ֕rݝ_e ,1qսW/z`9澵?FQZǽv.@؝ˇse* vi_*;q(;'4&v .;'J2)̳~Iendstream endobj 1172 0 obj << /Filter /FlateDecode /Length 1440 >> stream xXKs6Wp 8#qmei#6'T.CƝ^ꃹv n<,&τ b+u(%B@+J"*xr5xL)a9 O~8 Ap4`3"׶2|i9;` Qؼ@t& / kL45$o72{Np(cOKbihȘMJ\KۊNs\͝AMAAm9Dz3i@uR7 ַUl6YLBn:,yUiE|`BܝiV^KgP-8vfI}k8Л*VrUr5عλ"/ixs7&CT2Fv#I1IFx}cC9B1 )p !@ Ep0:C8CNZ8!hP,NQn΍``YGe,Z!Wb$rAy{E0#LҫܭrbP PZ!.2ٲaӊhdtAnkp[G3EiHס]YW/^_#=yssp2?__S$޽=>GyxOViҶC||B'tړOEcmŸlwΑt?>l鬊 7KiF`4%-iE{Z螦$̮5p:V.{q\h6Pm״V0Y MhsvK=?;BJI&+ղvTX`Y7E[D4d&FWK~,뢬:@%Ȃ/A]ۧ;|6};t6_@26emiUvstpD ޭ/XL2ːSzsw@h͢l/en BvgDbP) 7i_icp`}-+=Aє;u4 [ .24yh=Z7($Q7{B5 F~Q84|12a͵u P8LG`lkú$\Q@gW8w.uH(;L/p\NY6;pgϊ/x<=ċ|樻Ls"iwѭhdV24wԍF|{stcwSD.^ LrÄ  f̾8Ik\7<xg0\  x;$~IUuc[= HJ=E9'5 /  ƒ #endstream endobj 1173 0 obj << /Filter /FlateDecode /Length 2119 >> stream xڽXYsF~` G+ZvYCpH" = @ATm=}|un/޾7qEv|_DqH_(\nz7Q2ZH3d).yhX+GkWx8F[>j'z|$-D‚\DQzR߾\,W{Ec~?FW?,ñuݵ/yb;UVx$l wr n+ |oPW9"8˹Ngsv x\y)t, dt[=iWbHĔ.2."n*"#FuJl:eplU X$CxID ?/U+ UAd$\h##3@'ǭ0 /N4Zh`T~& <$y'>f[QEͫ91Ix6r\7DVaAY?*D?k0[xIDT6zcS3 H9 [7}G^[DbOC'S@eqM| [Wt6UE <*dGK]C]z:Fτ>" w5ecgua=7Sw")r]8 Vpyth GO$C!< RQ{@ ^z7=mh~yá1ixC܅+ԷEz3霵u*?-#kDf^Z9&t4c+Djy?he3Ь=e+ޠ ''[),m0o2%^X9U9Նpfրvu@NcۗQP뾬8qڮ9͈6nC# ͑ɑVV4plڶVwta7o ÐK] 8+ I;_x;'-MYapO]3Xx8uG[7zvO>t}'gֹBQ"윟{z.UAT5W XG_A/3D3qAxY7:}_]^ mwY7k]] y?4$a0h }Kx {[!j|O*^Mͫ,F01b^2if4%30ԬPx,cF6N<\me]BHR+$";N<6!)u)x< hlC`DK Ǧ 'ZwVOMQ5iXC_^'&97@xޭ9-#!> stream xڥYms6_q󁚱Pf4.msf 9H.ɐ\}X> fAߟ9Jċ17 F)2^$1%JzKכ~{%d0CicTWK,]&ۚ4-.<~;KM$z+!J3_y$ ciOXBb-oYbJ?|εrt~//?|PDIAκ3Ut}. mfR؟Tn)6˕@^9W"3`r.5ݗ]\1>R6=,bMe?=9́6yc\6+׻wT+5[&Ng<~ԹYs~ikvEݜ~`"]U ͷgJkH⫝]HH"ߏZst&pXR({x$ n9R$f5UYUklKƠ >|\jeu;ےѨusm]y]]qd:5va}wE] IUϵT*˾ +uȗ ϰ?~Bi8^LKr}I{\3m;[T)ID~]]xtgDRP'Y-DFH'$6\y ;1r?ѩx"t Znz;6A)ݩne}HpjLN&3K-O =$TŠtp9._;ƉT, F$+ET֛"JۓM)AQ(~q@8I˯Mwh2ѧvwn_fֆmuM6v&%nۜ)mH՚ϭ9>p1P5  OzRQ3: peؖa2Li= {a$X{$zݾCg: qiq -a3D P bྡྷ=Ənk][p/~8Xjݺ@SD}o1 0 LN tL4 $*^. wNe&^4E{mv@[l:Ϫ܇$D޻WyRQL ;VoP:G=%&J - MADK;҄\B:Im %uY' VYimAɠ.ON90Gx$1!0nu6&I#B8NAĨ}TTgk<5nxJkLH0>;SȪ>a5'Ϲ>N() iB4?ˀO\KT   *sH;8q,Ge)o1ac:f dji8'I!.|)gy99*'5#[&twJF?߂PU6Kxf<%+<{ReC^d,H RSV)&jKeizc j"HO$ R[/ܸb={8 /lх.yDMaHP!O{>^ٞab|?4fh0t`5QR)8 /W}xH`bx\6M$X:.D8A@{.h|A7> #kk0(Elvn" լGe&):I5<"/Ar*d &(ym*)>^S`sG/dvzvF@2V7iYLDvLL ih {%cug1x*c nxTݨބ8Q&TWB==&s/Ubw}80pBdV |w.ٿs;φͿeEg3%TۇV/Te̋ٗSF?U>|{wo;>ж5=iя^VskNEN |tm4d=na*5rc6"\K19DŽ"P[kݝEL뗋>zNٓ#aˁN  &LIp2%R;7n†'_Hא*pGl,sKCIs4:3}#6Xz!A+$ATrڟ>Dk´8uwH Fz7T%Qw?=)\zEy&Di>g#iq'ݜendstream endobj 1175 0 obj << /Filter /FlateDecode /Length 2388 >> stream xZKo8W4r "%m2X`A9Aݦmz(z)8%QUW_w;7>\GN")ƈEb 8ݿ}zj:uZV7p'0wz;l~wW,JՌ&͆Û(b6'%\1 ^íJ/pE9P26^Ruk?1r~J`-M>͊H1J(qa:2[7 1]bg6<[N ΀GpE$6z]ʦU~u; {|$[cl9όNF8#{ݗMA+_$=:TپPRӞvfpƩԦ-w/kM⽓*==jc) kQTn% d#6jKmt@]T4^OUi7!F2"D & 9M!M=l^JQRyͤ[}ѷ)?V/p^?fK!{jFzq2;~S1gdhܯ(?5uxd,Wo _ePUGr((JbY9bikbҳ۝)ιK+]\v~xU&1Cl74iGp1]Vu^Cx1ޙ 6$ʆ|wAK6NX7G{[,w`>,RݺVMMv1:;pt'{?elPlfl<չ׼h8hyG6RiYE:0K95$4gG+[3 dsĞ-MX,ۻ=HmbOy}5ZQO 54nbyBFaRgu5TZJbQ5&P J![ԹHv-C؀$(~g!t5OwڂeTNaS\ tcoUl&*]]OM 0%>3+3,"?n!ZͥhtPfy(-B|JYnGչΫ 2]^/ -jljkqH2r_Bd >[;Ydhh[)Y o9 ͒,is j^w_M1J_>"S:i\زl5"P堧4P U8zW+VS DO7ݎx5endstream endobj 1176 0 obj << /Filter /FlateDecode /Length 2575 >> stream xZKPI`Af;TRNՔwKGfPLRȯOABf6~|uCxu«?ݷ\i%Ê`+%1n~<T6D]W77tiw8|}sp-U/ Lϋx q79=E~w-|])v%l4-j]ocNe˻MMcJ7$kD#L7y3~c5ų+xo|gچo AZ!-ѡ)yg(KS&(ecF ؀@ pzb`Sґnh#݄ iNuc{uDoCV^K[їbdN5]wnf+1)3byB+D^<Ȓ]/6o! Zml/ViDdZHc=5yjR *Lji7\<'ȱD.Dn[;/8[ XI$`OñKFrŘ Su;V'j}䧇qp |},X M깠k^4;QiI@<$"Lzm5aPa#V3wk=:I'twS]T]M}LWLb y_\e"V%xijLLhq6ӆbzISߒ,-h|KR %%/X֋%R_zRe\w.9qqe\\ ući@ʘwAѲ#c#μooہ޷jcT<ېs>;G" 4aXF:{O0s"x߇^3j8>-)Nj3:S\v' BZ!q20/)MTXfG?UW{[S-]JXEw) )-H*8KU_# &Ę(ab;C<vvŮ /jSUXhJw'I-%6t ǜض\-r@؃iGOEy<0C;4wx.A;tifpaSX1yO^Mi2kW Y,'םWFR/qr7]^lq|T˞Y%W P3,]$ܔu FO끃w`J}Dt_?MKڗ}Q݇I[ئ]dBуm*s4}*#I,eR#`8sc7Z7{np4ţ'4x>0*~?'=X!2OSֹ5xS͊7X 6]37| d֓eh 7K dW|4{&o-@O("1e YAF<>A[:d65Am5As^5r",uY7./S$.lMx\NOETq7nGv:-%>rs*@z7>ϱS ?h~]׷ǿ5>efZ!*|"ԇ%.e`". &.,0]TxNes xxg@"XسW}5؎)@ڮsk\7d$\=BhQG.ۧ%SeSQ o.x/&xSm?6 MXж|7 [ =bK DbوOǾF_{rit+60}?yS傦^kBWc- kjR]cJ"2޲q,~L(3B8\T<BL+jBW#e$ >0qYr%:E1G wOBWa62פV/ tAt*hta&3am혧 !3t^;~endstream endobj 1177 0 obj << /Filter /FlateDecode /Length 2083 >> stream xYKsFWHVyHm"q*ʫhO9 !  ~{x A+r.u ^x˛wwo>pHP"\cĸ\D#n"bҺN룪A׺:Ű]Ljb"5R7`6&QkwNjtI;՚tY4]eo}Ҫ:jMcivtQkȊTغJAJn} Xk/$~XQTj./d<%mQ[$l{:rVx)y]?ف @#Li*,c٪Zxȋݓ1Pu$E?, 3~׉CCQ̈́BC[e4FHMV*˧K% {1i9$jz1/ƶ3Va^J[Vl, H̑E+FNUuj-13.Y}<P0芛b+(u<w##wV,ZjcRфwChB">"µ{rn /Sn Cfa{kLj! PEe`G6 O9yƗiFWCmJ?)ܻrS{.#$Y<l?UYfG_N;G3xr E0~Qs˅#̩>HFv*@¡2ǑȁG@Q9jJGi.b3:miƉKʂ cˉ  x^ 6STMV gCV ōrʂz6!#N3?Jojc\b'RWGH#C-?T`ip9F8P-\@Dp5y~΀-Sԉ9Jz::wNPXq"BFV^-A- /̄„ɴ$f fɴ)b9qmo>e|sxÙ  }A⭱Q Mܨrmb iPkl2kjLi&ؔռtiNMYuxRlc3\%]Vc+{ڝ&H*N"^E??jzy\av`+|Ǭo'>60/&-azIr~v7Cj"3]U<$OT5 K(9.,|ƐF) #fޱvq5!kH1Cֱ@~şUd>&jYm6̀u x:mZx1 T!f`P9k(IH bRW&_ ̥Ngk:z)Fxw%[7Xvhxf]yM϶Xnu7owɩUg_k}/7om5?Ѹѩ?AmRd9i'^Tzk0<}]z||DB"j佁k)TҤ(n^(gSŏjb5s *kSJ3{+Y!j=R)'-7Lendstream endobj 1178 0 obj << /Filter /FlateDecode /Length 1583 >> stream xX[o6~Ї@M"꒗!͚tILd;Ȗl%u  ;WW% e1y@0F,$ƈ3ς!oQHg.DŽ"unzYϔ9:^ HɄ&cu+4U.;|zZdGAROXWE\#, JQ(M'18  SDpֺ]]sc,rQO.7+}K ,_?7cR&/mBʸVKf}0U ᘄV҈&Qn37ڍN# ZS 6•nRW^I;{Wԏ㘇 u)J:;CJ4OZd]L"Fv/^MmŴd9mHBb>}}[M/n?{sq~]2b>{q$1NQD!wpqx^g`} 4"[, :L4f~j.Z6nQr)mqgy4EkQyZ4a v.Q  ǠICĈrXljKbӤh rLyuB1 Jf¬9 fKlJe^N 1b~RZh|[5zFuD^ᎀpFq0Ԣ( ї]f)Aqj3feYlUIdR{܍8)@8"#hKBs=N4Ya{cgvw;M DK!(6h~9V"ùfD= qpߞKP#5gՀUu!mbԻ,wx\cC y_M5M!Jyf'(;&ئJ#JuEwWt6`R+ tdo #='4N%72ch/XP`wQ`0Bؤ Xat9(tCe(qd%]6\tEDmYxfza]> uٯEYS+ȟf0m3ZpxZVҾAt+vccKQP{ qrcѵ¥WQPھ~8.F&Ktҍ:ZIg[qc!(-x^mJW[OPqCY)Y(wn؃4 wOVtwnvoi&MBn 3ѠcÍvblosA]u,`> ;luf2/VT  vhBYR~eq0^endstream endobj 1179 0 obj << /Filter /FlateDecode /Length 1503 >> stream xڽX[s8~Wxά=d,$%SH dfg>[Ʀܴ~,޶s?'2q9wzc(lϘ/ 1gF.yb5q,+wA Ttn/Ԗbx]\?'%H1a\4eյA4I)K ]Wq X& E۔Ǒygfi'lǗh Sf6>+b$FItԸuhm-5?BN*}SCd4=%yQU}6( v6"8l23oU G5WvH}$ݣ'80M{l$)B4 uc8ppa#5f7'OמC ;#}bq G,Ħ<%Z)Us0SXk1K*E/ Ϛ&&fQ#-ktAݽeTXD:ηV=m(^2|+17ao]5ueBF18^ ׄz.KgI;L#6D̳uY^v )") 㙨@O4!k9+t<p 1MFxrB:a$aHkҖgABx1p#xޅ'ͩ( N6/B/!qHendstream endobj 1180 0 obj << /Filter /FlateDecode /Length 1992 >> stream xڽX[w~q<AwWIzʺjINyX-Aj.\F’  |<ճ^?[39Q,]ofcĸ#z=%`|wsG3Y$).*5'"ϰњEhAC=h9ݩ'[f H+㓅Ѡ.Ve|Ac$|Ҧ4912HI*ws*$oU}ޭd ;O*-JIEmG@Oۚfh`&U2Vֶtprju&A*)dTz+WC.Z@x^n4p. g({^_;  Rroȇ8؁hv܂>8ku@#2E_k>kWg#k_V &U6:"Xf>* }˟{,r{L?¨G&ї 땅؂9bMe$/q0 s8&ݤ$KN2WV y7ens밴Fl{=|t]'vB=FJ, ~^gZ"ul}#>]MimiU/!X!þ߱#dԻ^RI6e_|A\0!.᥼Kqv$U@c,nşA09|JLQkip;]kCH@[Ws>@Mڡ۹>KRw6SekUK`PĖN0f7יteyNXIInW,2~vV4Rhʩo+OAcHD$9)*p@;:lƦ:/dB߰($F=b&'Xwlc[ˌ79۱>Uϼ>K~kN'[S^Ʒp?(`>@\AM\{<Oe31J9ݰ/Hu 3OGJr/H4߀7e<iۡcIVtg9ZvqyWm`DDܾ*Sn+U?) ^S[8;EA&CbNCcn8î氨mnJ_2yb}rZ]&YjAޯ[霙9\hQѤu&{ݨ]=]/Wc*ΚʭmlՍJѩϐft mmP{G}> xV{y>6tGBneQި|YJ,|  ]\ KEZWG^wYNl=pO#ڪv߮7g؄4d9%k&so0pMk[)Ю5 A;}^NH3>ɺ¤_*O@' 5^ Guo@Ӥ<[5j ?4y3 "#JH :N|'5b#K+)gQ(aC6`T~*oOH? @ScG 5u iBGa 04A>t(ieUUf:f["Dh0֭ ]F_NSO}[vD%: jc`69[pmxOg@'Fq;JW?㺗}^6핱O( A{v|5ٕ݇ ê>S:mR%1cuGX}1sD PtWP#xpnەm X+s$^Qcf 4<i,n K0^';79#!~c?ur,4> stream xڝY[۸~_a FcEJ $hݢY}Hi%Û(YL$<<\LW]4])d"WQJx*WDd;ޯ_֛<eDRF2d\ uZ@+S& xpPݟžo= w%l%룥u>{m_vi> p松@sWo B2#T|#]`"\φJH$^~Oi$$ɔ^K>+0^3_zM]i7L}/*;c&Ύۨd+9 ؛4#,atoK_F[Ah\vޛD97+`ǡ.K;օ,ҕn9Qcx8P;A?oΗuָѵip.ض+ñx"'g VBX5jR5m+$</}y1<g|'mÙl(Df~p|xQ`wv > ERz;h,WCf8].12Q rDX`V&< PzuN7ʧ;`~Ijc< |p'mqЯƋ+?P<7V c1p4"Z|&mOh  D 1[J`S Xz$Q:ryG|7eHW<&Yx_IxA0k"?di0 YcNBd63̬jN衙IK8IbX76AdaYZlI ;APSاBd/4@1B!+԰黰ǧ vnbIS!wAYJKF uY0.X\$#$TO,0 x48L%)x ((%[^ז'CL}|y ]YO$1vq 9:tR,PHk7jSGQ n}D*|shy-:GVD@G0dHǖ0 8eC<3 N Ć|xZ[ʂ'dHLغ3F`OƠy<י|՞VuC]8P@?,u51ZA`3[f٩M $"qQ3ȅhe?P[Od"^ܵ1Le~$u65v!S)Ƞ8."9HɝiU}['ͥ/V,ie]d`=f5F3YKGPyυ"fB1ǃr7ﵕxy@?]l? v3Ict.c ̣.]G;ͺBo6k^pDZkLmBK1(c:Ĉ[bKEʃ.u`؃5BxLu Y*\~Iѻӫ*)桹Jk,i <睹#C3-AI&7k8LҪ`Pk69ta+ҝl&Fu]c4 m>V0 ~uz'/pn/PT4&O`κa]8dc,BKoB@IjmBӱ(+XG# \*C<22sg92uA_M$5fO *ʃĥ:144"OJOb|"sׁBj"4_nhendstream endobj 1182 0 obj << /Filter /FlateDecode /Length 1807 >> stream xYo6_<@b=dY;l MYNR&M(QhQ@^H<~wG 8;&giIr=##LIŗ˿^G$>EEl^2)Kf_VIy1W%l^E\If(YUyUyQE1͖u^4[^Q˳fibrGwU Sc#ط$i!+> stream xڵX[o6~_a*1-ꮢST:Nj;n1`d:Ѯ,d&~yHYRt>$\s#mFt8v5Mb;Lhfd۸|ta{-jǤ$}AT́mNƮic^t\ lh@*IS^'p۰$~ $t]*8Ru\t:I̪$^o]{ ?^eW,+~Tk¤YtYj er1u ^IXkZ{+ZaK3(=? I~"}vz` pn"T{ӏ/_/7{N SϝB< 2/40x%6*_5.ד> C}cqQ//+9T,q~PTc .15$6r]b:'V$R\/#{J@[blF,/d>Vu'qo 'OsCe Ͷ%hiK|NOWv3Sd8Gm`$|?E؁)HR X\&%2rEW$Y")J^(fO"DP85/z)P{7Elb<ُ}2]^ԉg4DKX۷Mlw?,nC|zHLoog""ml˂jҶ%UDJҫ,`l6V/3P::9!-fơ xigDo 1OqxA%UZ= A?ײ3&(Pҕ* 5}7 "ĶezAI@BGOPN4v"U =UR2XʑL9AX&J$Jr}84ls߅ذ:P )\.ij+,!dA(вLc1LCrFd{jd UgIsQVJ3Q{ķe Ch6huy#;(Ms!NM3qCSNH{˄RMhk и"jIOZҎe QJS,ӂhZz=`;8=bZW0PWV⪥*i2%`D;hz+AFкq*F0X^Om#ʲǎq伒=SLd, Pm'bڛqugnY[ެ7ۇu;g}3"ᖫe>xcF$6KoSWuzMi7$"s… /SoHr|X[u |x&ڴ#v˷Ͽ)}0fG0`2τz[FVLȼ1!o$޳_`㔯=0fG2i [6+fGɫ !Z(7AqOÓ9+s'e8bC;DgO,+j$ %l[-UFЯ¨}z@vV撉%6mO+߆vgQKw3,|gAZ$iVĭ¹/չ"~ /;m(ё$q0(hIeA3A7oMZW8g?Ӊ5 q[Hɂ8?vtvΑǭƗ5.zYoX}s=~몣bsM_3m1p񺗥 Q 1ӿ^i'i;C]@Bްwח o]DFy~3EfaRoaX7N[ͷ}G5u &I_߷ZOO: >*ްBjef *7Wv;w\eendstream endobj 1184 0 obj << /Filter /FlateDecode /Length 1499 >> stream xXYoF~ׯ  V{pwIhqFK5PH*N}ghIQ}!9;;7&7AbAEpƈ"#hp,Z|y' Q,@)Z?oI{ۻ*m̦G9qnK(IK*H'dWs\f Ċzq34# ST!!bR:Oq[" A2d@MA0! HTKA Kr/mYu/vefUٸuU;`r{~ӛnqA-|> BQV?t(<2{QBE`yDt`8#|npgD_>25<[[,[.HBmYJ(`I6dZL%&8U~iϯ[ [k5biCL3Ś'73v.= nzE#a݅5ܵrC~^X4`6q-b 3ND澮Լb}ٝQ$V]D ,d=d́: 8~&KjB/` fVۻ,hn?\$4+7ꁲp{ZQDq&tA,]!4<эFY[Opy4c)xFiY.܆[=@TŶ*M]McX֭JJ /N5cW1=yԗC;lUq*hKǓ5B6s2*۸\0vUhm:d 2mڰߧ݃󄡔c߃}k5ú8&2G\;x=B&A.P54iC=fWq`{m2ˑw(C'UUl{},UI~0Ϧ: 7i$H]z&LqvST#Fv0Ck3gYeyaW*KEG5 庇f竱wy0R^•ho#^h˫W@`ӝ[NF䂆)Q@vTD (ha$?ɫ#L _%mg=5V竚H"aOendstream endobj 1185 0 obj << /Filter /FlateDecode /Length 1706 >> stream xڥrF$1ˮC xiXZ!IEb6rܯ`U;гq.?ޕ]la )K`a VβT \qDyTdɡ7Y.-!-K$tlMwmߔ5)j=BP躒fɊF]q11o$W&YҒ喖+9r6izk1Vd7SvH]fQʧ\66MO(r! DMje||D,Gt"O;s/FÏl2&ٲ곺^m7@0|SoƷ`PB.= )VRa!򹐵>CvC`īP 0wV:ZOӢ9MDu b>*4-i'g2YKf 0zNmlpn؜&`:Y "9"G^ӒӨ.3Sft-W"l"UrqLOWY萊Afq[O) #3;I&v-X|@=bi9זFz)gA>+X-p07kodghF~myLvJ9a}) .@a#&rPG8 m. s0SPىn/%*&KۓfA"A36ot:`6~^NrǍ=='k31`Pͅ^|c4=yWG@5:欂aQ/O\@?1^3/(WԻ/N.ΛW{yTW$\JDU3Ueyg\; WbLf|a2Ra2Jg =!3Ge&Y~\j6%Y'g]@G\ֹD^R nG6$/tzQO#]^x5oa3Zuw H=X5]7lCvtg8Ћ Xv~?[lԀ-!I+ X0P1@%yqMvY b+F mc o:p~`#vlэA,y&: jkE* *Cw}Ax%|9oǂ0 uܖJ+aB1^1FFR{|J-k 8W-RNG YVݴs@z @ੑ2#>+([09?Z SFIv\qJ7\?XnN`>@Ip$ #T&7͏dϮNo[l !MR''F ~X< k!X`,(NVyJrކXTڑ}G J?¼YI 7d-={Pg!LU^M(/WQdkgoQksR谹;^b!TS!'_endstream endobj 1186 0 obj << /Filter /FlateDecode /Length 2491 >> stream xڭYY۸~_ڗPOxL{ڕo%Yo( 0Hn4xIĞ!_C{wWσSL2va%1gQ կw/2HB'14խhe=Y'iu]ubSs^So-Kxz\$f*ۚ"Zp.ZnYHOļnyVaŎԻ# X԰3K4?(Sp;݂P2u 5H2]f]QW4Ⱥx ?B8lF OA0E+;"r,#nZ.\}dy'.J[-7BơXS)cɴYf 62 CbE[eE>_]"XY@mMit7UK?̏lS {kJ3/8{;:#J!S, H )F&GFF fBxù wts(j[/q M1}p@.FT!P)/p{O\A*ѧI9ܹRt ںL )a5.'LCo𔅱<<ݧrqW9jQ <"Z@Ў8b3:GwKA۷c3o,B̕(Y{ EWp *XPSxE8)=:? z5GhIn@2!͂R]5z#~l4PCU Y8#cy7m-b\LNDV!dR\FҜCRPl4@}Z @O'>.1,Y zҌmKCc%3DFZun 7Xðh%qr&`k $BwQ}i}K(›=eIBޙ&< Ob@Jp˯"L}0/*һ|2Zb" D"`qy\€pU 2JHdQ:Dތꧽ0Yh=!V_vqt+KkpxvTD:L4L$& mh! %zT8:*,-u*H"Y`- [ʈE"]#YZ`BЮ4;Jdx[~_׭Gf' *N^P'7Fo;O ^ڶw1`\&PHfX--E 9#d + tܯjRUomz0^b}]CjUGp0ݴ_t j:Я+=?Sa&7h44sKsێFMk9Ul5 Jˑ gڲ+K+%#%e ( E{Iaz[u畒$U=+Ljzͧ@Թ~#KKBb+* %WU;m/R[n"vO0~w}qޣ0Vi?t`P/o~:eu5K4M[ S7: YhOCcF7egts]XbpXÛ3\@;> ]UFWHD]=-F 5*׏zHx-uU(竔 ˜HBD 1ucҾ}6Igd-EE.E_ymvy9ēK2z@:S"bH&Fhg۞b8悃r.k>ZSʃtՒCc̞@%gk$EZ}IUGb7kYk"o){C[K"8DZѻ^8awV3ŅsT}VA/o*iR.><7ՙQ=hn'oQЩDa>IXY#J '&)|kv0T`-[m.:}9j5e3X>Ƃ +!TvC~S[8*x GD}?Y3XsҞ3?YFǺ,aM Z1$C,Isb@jUՔ"Z<ė늖t-}:fMGtFP ̆1=" znXe W/l Y\TLZaBbg.  :Dm*߳endstream endobj 1187 0 obj << /Filter /FlateDecode /Length 1444 >> stream xڽXKo6Vň EM." =6I;áZv7"9f֮uk/.^h]-. |ϺʬˍldQ¾ŅY2-(8,\dc/5:Rv]m=9VSԺݠ,EmWi $,S#zm%ן?`qyᛪMxׇu)c/,}Yn >͈Ac(GFHA=u?;v/Y< }\zٻWoWh0xd'p7iW7-|P $0/S;'_kI]X/)EV eB]8?1@u }w'27ݹaJuBdOҺa-8\rn$ٛc=;{ LJzz} nKI>{ՉIWBQ͔3Fäګ5+bOΡ5AiO&Bev>P:a?6 Ɔf!5Fx$/I#,Mq'Cr\WzqQ,p3t[mY1Ư_@ɹHҍQ2S@.L1ԸLx~ xJ2endstream endobj 1188 0 obj << /Filter /FlateDecode /Length 1747 >> stream xڽX[o6~0<@HA1˥u\f{[u8Zdɥ;!eUҴ<9$_h0I`q=plP/M|s.y^$Qg6L<<ߺ22wFn(x,˫v`D$EYڮU߰Z] GBʓY%x$pӖukwC׷XY9P#ӵ֜aV„!n+hnmBľg  vTa]J;|g w>ھqw4 x=}` prpxԚ(Z*̒ZZ;ժS'"ٍЄuf.%Vl_eZ.Q8ڳ6nt}[Q~ bm{hm:HHt֟Eq8lPx a@5N8a5@ CZ5J@ᬪb[>+7I&X%x54ۑϳw)Hrvԇe}ڎiFOB'n`6=+h_+?,?jkVK2OhA 0/.% ;#4:}~B^־?ϏEONLo[1GX}H?9^Th \-RMίdƅuS|M)dUdAms3%ec xn 0y\9N*~ŤkMgcվBuCLJWefn/y y)m`yO`wAV7l?5I} 5k `_/g_45M]o D;,%:dS@O5<'nOVt0-qhΆmu4VL GTP4dmZ GЁQ <#ʄ[D_l]L t.C;*X->nl ˳)urU%PM>ckW`N=e MdKwaWC"͹)Rvǫ١D}\Bwt5Ŗ0JtaM 4~iewJC2Y` #jS_OG'[]r}>9_k۞=;M 7}4UnJQ!!+%Pʨ@lqxks#Z~+4c$<LӤm)މ|G ^Ϛ3T5!#eY>ɾ.85$;}s!;Tc (yFٔL2 KdMدq&I' <t-ܾdp#\ي]5pbV| w LJN.0q9zbutf?@Plj %.qbϸe@!""ecPrEwuB cþj~ޠ݊?:*Dk3#,ttendstream endobj 1189 0 obj << /Filter /FlateDecode /Length 1124 >> stream xڭWQs8~`>3A@Bpsyp'kbr77m8t0" 0Υ>iݕv1q>\Qjxs, 1cp#f[6 ()*bÕ<(&p4vi lZښ6w5L#.*I,CӁ5 D3Ū8S R&R-=#֤6-<6(U&CT{\4VbgZPb|JToZxO)?]Va<585& _l뺮xIyT輿 ͑ylտU|z5bfFj 7))VA~G FlR!'/߰%l5[WjޟQm`zk9c j!%K1-7pFU"U0ިDZ\r/ _)caG:B.¥WYa7P:ej9v?䯓e=tCQ>ɶP)ɮyF\6Y> ]Բ)^I]d32 <#mY/iyQrwyT3>VW8; qf50cA0ºAO05ۗ(X;֘l\SDo8"٦I,|p%A`)H] r,ȟUdD^n !näQK'1ʆe-~6%Tظ:"VQFZl&u]a=H0.K)#LHޜ4(ոaS5->\+j[ĐAW84t<,d=`)!?됞C^9kq_6R9C-yw'gV$v<4jsK~uY+mN䔾=mM%ͼ9ϊ<>,äxweZ_)bk 5Dvڥi%kY?JϒageXΓ?Hendstream endobj 1190 0 obj << /Filter /FlateDecode /Length 1538 >> stream xڥXoH篰JkKUZ@ a`W|$s~13N1j0[5]eUav5cj|Um[<۶r8ijQQc`=D#nztK5P澨5&`O$g0 넨5$(1B8uRk|WVe&1j"3n%͢'& ui,&[f:#Wuћxc3R+@鄻\v %{hZ}T/xG& "AVi}ӔOOOW@ zu?MHv] ) Z-48 ֿ`t+k ER8@n|CP/Sb3Я: i.'!`&F2+rηX$R>Ui+R*oH2bMUĕfy*ɭwzQopݜ 1-3P[bjYT!j[D YrV ha &w|PlopS%1]qguTum6*s!7S n6||2 #ZӺ8+IAtҎ.9x{ToQGWX]7)s愑yx^o9LzbBL:Ѵ']{G}N]&jN'K. E!A i3FqST%CTi6bI\#*ēF N|1iM}й\q}0G8.ra 0*2N]P3zn.m)0}Bj; K L^xF^4®6Byow@?';?hJPM GS9§X׸z̐ODArƴKڼt`&l$*AkNqkXI,lY6 60%uPO$TB tcWTG웃HD>I qIzT tUc)R7-zuLrHB gdy(XbtX6."Ј~ʚaeBzYMSSIIҠ~UܑՐyxpQ'yiﰅR֭:|hN|=2Zpz>q8Z"hNfѕh4_\MfB&qf+s7gBm."uyp_*lXۛ/ c#CtVV>E:> stream xڵXYo6~ϯ06ӢJZEn6͢n/}ʴM@\J!YRI\̐v3<8|Abb5< BspCZ4eGZ|Q$əcmТ=rW5p=5iq4C< GD-}83sy QQh3e4&0L5c舦ۏ9R[͗1v|3'ek-5Y.~iZ'?晽ҖRU/M%g!lBDAPPAp0"HNvj+|=T"Zm!Gn dgo1J"Eʞ(C>ydgx:\G o(nhez'45Zl TAφLYK_@vy ӚOSf %u:±fb:r\sT~F[*  ]ٙ/DRAXL S'wZY4vd: ~ hn(>NanPr˰=,=j2GY!yCŮbyorٺ*Y2NGQ 㔏#ɿ9F{3TUQv.Z5FVֻ2Jٓͦڪ.k%lQra^VzbY)C׹4P@kߪ%W B"?j|3?*w֔b2&YaR`C+'9[1xDCVߧ^ zqQɇf CJyi>~BK]DӀ:EiR&4ߺPF6'Uie&d*dF`iL$ Lc{\K]RX#"d9Goڡ~ =j`rߊL凲{"*==*r!{gKyH69,x h> stream xڵWQo6~%%R˜΃duȴA=IΜHɒ"I=;}wHckca͕[ "#1bk-W!/_\Qڰ|灟f"ʤTlvr*rc'2o!ύQX}ZXc}ze;>lOӏ+=p3g,~~_L*! &ڞ;.l^ 6]gl8^ ¨e9I_$2$8N+yGw5X>LA?eTqp/0ĐtSܩasgr߁AF2<ܰT_}lg0Id2 D0RΛ O碀v{|Ӊii6i,Vr׀ [>TȳlEKíE AXgOV T ΧĢA.d@2<ܭXI=DO/âIM0K4K[COСӗg=rI= :dewiuS} _8hc):P?yAӧH' EqL&aO ,>"bKߙ_>biy7CkvxTOjg3[l18ykLEw)(F~󐄷 .]Lcm8@thbqJ+  7J5lVEd![JrU>Qr䬔,d vaS#iZnihWX)`Zkͤn/5nbW(_m=D ~N:Pȼ:!ξY aVYendstream endobj 1193 0 obj << /Filter /FlateDecode /Length 1416 >> stream xڝWKs6Wp"H$3udҩDVzIsIH”]<(2qrbvWsfz) :(S'OiEgwn~_HȏШqXxɈwiahFo/ ]V|"90 ){QeHo+ݭ{ά}IQWudbA>@' A?LDF{Q޿f"kGArby%[n5Y"ctKɇ:jX8*䥥). \ /$NH:Sϯyf/LQ>7HϭӱJ?c E2d8-$.:+&hKټYnoo}UU_bբQz$1:|[%.24Ι(N |)q>|_SRJUQnܜuYRNնn9U}y[CLzȭξ<6$!t}! kV[g7.h@kqzQf׉oI\dIp 1BAgjj{gEWϦC%|$UW:G?lL!&mX5$~ /XOp>_Q Լ~-iW _Kn\ioΙd ;`iRJM epr3y![yuzD7'uw~(ŷ9@X&+_NԏĹլ1`]8WOOTw)~4ԏS]tC( g}7t5$TNBq8CfF(8ƨ8Ѩn#Uoc:gzSG:-0c@g6|8jc.jf{i6ZyeuY,(\`aRܠ.cY]#(ت Mz!eZ &NnҤVZr7oI-/]-/p2iX[fZFku:*2$qԢ7Sn'zʍo.a`1a-xt(jħWuMN`m_ vz TmppX_${2eE]<,̓Mpg|kYn;´_0O{BvUT`V{sMƪ4Efl~9,$Lj!t}n2Zx05b̜N‘ʩjth9?tVp(@PWKS} `OdߨZ $go2r꫋ޘavq&gv)a4FN)PMI"&tjaeix2$짯ՓPEٚendstream endobj 1194 0 obj << /Filter /FlateDecode /Length 1460 >> stream xX[o6~ϯ/  @:%lu;ImAb$f`nF+u#-󝋿sl-FxcEe`S4O2&i%am,==(:n D[fzp8rH(~tCQs&v<B,"V!3)l[/[H 3}š̪-J!31WzcI)F8GSNNNQzxGL8p?{;NNNonE7S )O.ގ6" 7 `.ې*Ա< LI2JIPJh /SnX]"$xoZVU], ,Ei{ڥu]#eźwP>!TM䨧ɐBAcLF!52\pgf-F!;@04|AЀv.xD=$w l)/%.62 KPd? q$D(}7?+ $y"X_x~oӧN[Z ĀVNgoVIm5]/_eGSu)H-SؖZhb,#HպKީu8fqy>VOӵ5gsP[53U}Һw+Sx^~f8ӱ,knendstream endobj 1195 0 obj << /Filter /FlateDecode /Length 1544 >> stream xXYs6~/B!MAHbJ x&Q~t87vIOv:.r>^k#"j~uRM#bՠ +QF^XsSWF8R~WW" E˶HQύ7mULmvd2"gY˚ !7h/@a@ d6@n.7\π69f5E ؾq\1l<z_lt+i_<9EI,]*@:8lxtU+#GP}"AbzX'[q$BUV)v΄RAmU:gYm~c!@_.uf&(ݣḧ{F#QCKkmS ϶):D>rc}*cj]XGHrp=G{ ~JE/*MY%jW~Y1D8Cdgl" jMJ"1笩1c_m3B6Zo(_ 9K{l>]&P 4ƶ"Q@fr}V3褅fx3<U3YRQ;;k)>kg)3Gf]Vf]͸oTd7ϙHtVfanM~fM&a0v)R ͲV.9r` z] hSբ1V?_'f郾bOJV ,G XOSTGEo f8? Yn4vEBfiQlZt ~ /&GaR¼&DH?h+cWb~u.\dm=穐&|[wnp.ixqP㚼)l uK<ů"?] DTHS9>ԙy+29ce<.H˒wmDe˾ vA4ZXVэQ+#Ap=nP}r Tmp6뢠.jPmG==/PP/R\CM; "?j.a RC<2W7P2=PzϴM%5 kӂ@Ao#ݽendstream endobj 1196 0 obj << /Filter /FlateDecode /Length 1335 >> stream xڥn6_!`/2DR=d]2l̀q>2%W&^tsd'i<$&&a.bq1g"DpC&9ljґ|y2C DN 7PB_OQ F@ El)|s'[`~I&1{fMYuɔO]njDS6ΐ<Ω+yLL{Ple{u7M9iaW#SL3Vm g<1QoN#Nզnޠ9o&(~9,֋o bz"駕Hz~ 6p  ڃA{ܻ]wّh2Ox(J^Ka8}Y7zƉrkW;6aߤvy_V2}iۑ{]p8i"6 o%en#˘i6d/"s] `sn˼5B( g3C(eh#nFSY=MNCԷ0 >;AcPan"sޠįdV u̍3aƻ6k\5OTm{ύX^UꋡAڷ6=-H$tڽ.wgedu;CCnʠG{pqqy{,hÄd%2mTa[GQ:)9(g~聮C;9(@qL頀NE= T Dd `(v#l,io3<!Ǻ09JN5b D[3.T280]Xtr09t%&f"tFo 6oLYy Sh*B8jzmqVm;>h @oABendstream endobj 1197 0 obj << /Filter /FlateDecode /Length 1273 >> stream xW]O6}W0#8j"aKۇ!R&I= ױ`˖ľ=ڃg}>q} #d5v;3[!hx<([8q!Ȣ*-rm(dAHQ mFLƾD!n+z/HL[ #G8whnIz{ $QLx#~ԗ(OuBe62,e,ʠPPq(!qo$K]: UGs$Q]<)qǸ֋3ؖuՐω(ECKANFVlҸa#5*zm?X#qyb7QFVH.o@BfUH#HSz dp\ 4ˀcZ(uxN4 杔e%i?]%a%JZA7Tbkl*ӓ՗61.THzP؄ц(gm נ9UtЖ%<衉y$4@r=8=`)Q]B vcNRdGt*kQ{]iwo.q7^]us C+gˢX[  {уz .`4\T)|?_gU H`f;]eE'1ξc3똩06mj4n_7u!kl^_(CɃO.2g냿PBendstream endobj 1198 0 obj << /Filter /FlateDecode /Length 1568 >> stream xڵXY6~$k.IwM:$ZPCeY{xXE|[ [foV9"#=0rVv}aq`%uANe׍iVϰqb⽀p+g_c+,m48! ƙu9?ljy`[f€tn.MiY8sv)2uO"13Q̈́-to֏Q-;5tkǻFQNǞsDqpLu݉<`%L[bn[w!ޅz?p*D.7i: Ci6s{MS/mE_"md{eTXIvp\:FZ*0C܀coB厂-.(k`GpU,i *ڈI &0F2.0߰Y%'FrJ%d?L,1Dऍ#ADdWqoBu"gf2ufrudN$\w;AYe+d2 /9S}#T*86Mlz4黟mFOmݽv ԫitBk3V7on͉>k̄+!Yc_wfJGd-*J_pO6 !v]RhB̧G\#ZtW/5"ߒmAm\ zVrGӧRNb@A[ece5е{wNE=XĺE[*S!GUiĥC\Ff0wAy1}.shdH8s$$X*S 벧q{MmjMq*p!Oz\vT6Rȓ~َ_IFlOȗVh!ơзf̓$ȴHJ %`sdS`Ѿ;4jgO5x|)V/mk8v!69޾ҽɠ/#SЦx^0h}[Yu;!!U# jCsQ:=oJG=(|X~AS ~W{BC(`!ms8yO-~wP:^OW5ceʠѥcb..$UUC90)\> R%̇ˇH;a+/H&ZdI[vE:y̛\v0ȣ; y a|Ɵ*[A>~F=6"$Ea0pY(J$(nmƁO{H egr :bv7$ש(aލԁ]M}]*&UG'ߥ/4xs-0]jLnx}:@=zӦEnKoO?^HAڈN܈+a.Qg!& E@665?ѯ @I.O4o^3u]׋-}BxQ?[)endstream endobj 1199 0 obj << /Filter /FlateDecode /Length 1141 >> stream xV[o6~ϯYRu)H C$^ t- ;Jt)*qG-J-0?X sH\0Y9ȓ( ApiQXVm[.y5{3 tb@0VzF d^xvͩ\5SS.Ys>03t,v>t<8ͣ1ËCZ!2K1Ϧql|F7`Roy?#@`BǨSL?YmQ4~VH^dbYGA:[^M物Rj7;xH6x >7uክldF]pîݤ/jMF~i7Ʃ' &g3ZjL8eӴ5RDcBҕiH;@:hgV. Ql+i̽qx<*@նe Yn*pV,`5u$iJ#.} B~.жOJsѦ4 Cˑm ˍ삽*6ofT/;;BW}JoՊ;ӹwH ڂTtvӴvn,)<& zcb>^Cc_Zs QRTrD1Y;Mq> stream xXKoFWE HZ;h-@Qkitɕ-r4P@zr3;o^t:Gf7Ww"wfu]…K<Μ<Û+!Z'Y:SbM!o_2ѿH!ǻ ! d=uyA) u܌~oPV ܐH#,(u81ԙgMITdX F&S㏹WՃҫzOAYH54i v&gCV?-r};O+.'B$Nq'UEC'?XDZ.TYmsiєZxM;:q/ԭV2ӸJ$Xuocgj|CǗRf@m3N W&Su7* q]EYX.ڮ2 2oboskRݾuvfIٍL\v۰Q@O|gB̒ox~qf!%UG.=qeM.7>E(jK#JXȻ5}䮀ז(l0˺ 1crK?H6qPk^(4VAR:.vȚ}zN=#(2xHxhK¤f |2MB75$5:CO)HӲP9D d7q7^V h" _UKgjER]aW>5hLB!,5t*N1QY|Ͱgʉwض͇e5SL]`Գ}^#4"+W54/iC#a%^/;c]S֬iUB2nSVQ 0aʱol#fxl dzvJ#e_xJwB,3߁Pҥy׹yz2/{%p|\hODӝhM`=u p13=I }˅l1GFx=ѷ4SX tck4c00O6GF;|fIR@`Yv@0;NE|j agsҩɑ|L-H<͗LԵ?4 u%oBAd]F[[ +endstream endobj 1201 0 obj << /Filter /FlateDecode /Length 1481 >> stream xڥr8=_ 3AH;SlMR:%yj n}~]ttt7v7'o'k(,o va`|W8[$ Ōb]>/MmpW+QNW@hv`K 't%w8H=`L,C6]9[.\If#WPhGF0 <%Ak=X[c.[#K,9x(Lӊ-y=A-Y\k -\SW˃޹m oZm;t,Ѣ/F@SAK#ǚD h.7I5I|`.!yu$VISvͬXom8NYCieTEy"#( e"jWzb+%bT6д`h|Wf(}n]a!u҃+xcŜAHdoNa8Af3OKa`Bx dx&Ii.ߡ񍹗0d8Ӷ"8q Gm z p Tie2M \uI YƥL `0 s\LVM UQMTUk)\ՇË<f Au69~(2&-Ӵ"NxyPzHgtSF6 ~#5Wo\fˋv1Y]H4}]ݴ^0SiYf @i/]EeGuDNߟHZ00¢d@~g4.iC;<7g}:Fzirrz-h6b:AxD=>J7R(JH/RE?ҋ5#Z_~59fHU4I"ɖ'jA˫Rڙdv|{H 'q֘ާ >"91wY,Jpd2WdG|>UzcySS'%8دAEr>}!xzUȩK" }t1/_M+endstream endobj 1202 0 obj << /Filter /FlateDecode /Length 1444 >> stream xڽnH>_ H6͛H>8;RkiI$ =cLn!U|U~Z˵-ެ'~d$Z-"+\*v9_WO.`q( W⩕JHF gŒb|,#׵y ˦ý9"xZ|_PZt1J|׋_]\u@k+āʺZ906"ұ"KZQ0LjIj}ueÝSJZ8Ah75ޕL\8qhgy#6GG։2g-do /ʥd_i!]]7:{\[F> QD_0t} ~6̈́d =ύ9b[0-n veUN߮ t`_\heChlg`HgQ PݣNA*e(:+9ʂe-M#k4ES5{ɶ۪L=B}W{>9RUnbγd4dW,I=Ilf}a7V \f~edE7ͥ 6[IWJ$N} JiOg++v SM`mW54IgUuzqչF(Jqzy7rvdɩ1[R"y&mZ2 7;zb.{{&8^"^uhh3k7k '2XsO/iD_geyg]dλtgξx-eDđ 8<|n02q4YݯN{\L`ﺗC<~,sE?lЙ0Oɶf{|}0kcAxp=3#A@Րnkn" d1#Nʠa5X_1 m cSO"cө]5?U %ZcLǏF:0Qȁ .s%&[x1A~} 7`J17ԄΌ;VM*Q{<>'(\k%Y0vbz^ lw01]D$H-6}KQC1"J/_HXPB] eePqr4ύGR9gONadY P? ?-UoC<5hDczy*&|U*#jj'Khrꍩ0"1LkRDIŁ*)OɬWBXnendstream endobj 1203 0 obj << /Filter /FlateDecode /Length 1193 >> stream xڭW[o6~ϯ0>HLY aI)bs,]Emv4~Hrj+==̀7= PL4UHA,x2RS'R(̽?BÊa l"ϠEyުBm6#F]:U~c#-3z52;b=f[=.*[<t=;M?:u[>JBm N" 40yB0ON5InC(ͶpԼkMCV/BKd)$/Y)_g!tva҇1H!%oE}QxL%7oIF`orhOB0\%k#u3kn8AH:aԌ,Fp؂+ Z$g>@&D]=FxncQ-(0:k9/FP7>p-*ubr |(Sf2C̝lPfa2؃1G<#6+tQO=MlZ_nTq;8:Wh#._EygJcڞN}.8wprWHw7e:]@OlYZF-cQK-zy[uK]L%Z޼5\qp7x4pRɢ1; }0m3[j+3?ucW\ >jկ+b(V+We˝]F䤻}yWGPendstream endobj 1204 0 obj << /Filter /FlateDecode /Length 1505 >> stream xZ[o6~ϯc `6X݃"sV2d9H(KEH jca`p;w)a@! \0y\5)A"y+L>BRVyQMMYI%9ǛiOF-($2+OI.A!x#Sm /M>>\&k;v(5R. *A>* J|Ta7P 19qoeiY5i QC\AYM_thwφq0ZX#Y=Oţ,rZ5iƯ>M#R#U^-8OB:\Kh% i(^y$IdkԤP}`%NB ˬ krr0~<["c%O@.sOEK].FDZ/kt/O("0(|ԱF*(q1;c}f(#XU5k~텪^z&ϔaXӭ?IE?1Uk`ثXZ×\.ƘN넁3U &*=Bb>IL _,N=ػGR}3 4m'$Cދd[>ׁd7e;Bsp1ogF/&ڊDi1X=PQ ۂ XXQ/]qǮHiJW!I"_cM4'ƫ45R:^>okekINMOԔP齫g3XdI@r1Ar@FG -ފ1hݩqf &@LF;9bJGT }*74ƀ ~~BL)!=;i^iV_O.>uiCXSUD}Ňqs"TϞt Z, p nKP#NBkԔTmO N.6B[$\M#ӑ!lኾCwʥcwI%Ƶĸ: Ag`DærEs>uJ^;:/An$NG{ˋ-s^dVfC syx:RBWv Ġj3ȡtHG# >=sS[[cK͜Tp(,QlX跪\𕪥̙dujsP3o w!̇72$XR4KJGP:|4ڌyϟmU|^?AAb8|Kn~V !p%iJ6\G͹(s-O')捜) /ni! \w M!|> /W [ 1 3 1 ] /Info 95 0 R /Root 94 0 R /Size 1206 /ID [<462ae6daf99487630812a35399f30349>] >> stream xM(DQϽ޹O骩$a)eBَB,,["Vl-)5`7?͌l.vVO; i(" Ă w%N#'Iz\͈9B=sZy\?K)b ,sFnޞ׋B-3MbPϜy 9B=s\sz1GgN 'p_+Pϟ|^r,yYٝ`#399Yqk$o׷y+& 2`,33j9>3'ĜĂ1ٴɚ)go Ω&&6r60y-v,ZLFj kNC(E&}Ieqeul endstream endobj startxref 256905 %%EOF nFactors/inst/CITATION0000644000175100001440000000127613532440133014165 0ustar hornikuserscitHeader("To cite package 'nFactors' in publications use:") citEntry(entry = "Manual", title = "an R package for parallel analysis and non graphical solutions to the Cattell scree test", author = personList(as.person("Gilles Raiche")), year = "2010", note = paste("R package version ",meta$Version,".",sep=""), url = "https://CRAN.R-project.org/package=nFactors", textVersion = paste("Raiche, G. (2010). ", "nFactors: an R package for parallel analysis and non graphical solutions to the Cattell scree test.", "R package version ",meta$Version,".",sep="") )