mstate/0000755000176200001440000000000014644047336011562 5ustar liggesusersmstate/MD50000644000176200001440000001435214644047336012077 0ustar liggesusers71248772a97fba80a63c144d80334eba *DESCRIPTION bec6aaa8dd4f02b2ea3063f214dabeb1 *NAMESPACE be4ad42d10c9448940af658c01353450 *NEWS.md 42da38c525de69ff8a9932b9e51a55d4 *R/Cuminc.R 7b275ac2c34f90dde56c6aa5b67bd783 *R/ELOS.R aadfa0ddb6216b035bf5eed82b9bfbd1 *R/LMAJ.R 0b19535d2d6ebe8ca837e164ce64b3be *R/MarkovTest.R 22bf5f84cce96947b6df7f102cb82f82 *R/create.wData.omega.R d992498fde1cd92d1d230d48b2b516ad *R/crprep.R 09338a642de5a3360aa7f788d2ad27e4 *R/cutLMms.R 855af72052624c072f34c32fe964afb0 *R/datasets.R e4067e1e4dbb7b186c63dd6463485603 *R/etm2msdata.R 1a82cdd6f7f23a692fd3b8d5077ef2a1 *R/events.R b70f81425994d7b9d58761a737797ff0 *R/expand.covs.R 2bd97334e7afeb956714983eeb188c13 *R/ggplot.Cuminc.R a86ac53fedc5d97a23ab6c3aba97402e *R/ggplot.helpers.R 8539eb84c1463edeb01c45dccf8278c7 *R/ggplot.msfit.R f913ee401d762f4ee6bac8927160b601 *R/ggplot.probtrans.R 6bd34f1b71d3c1593c31e7eb9e080f1a *R/imports.R acf6392406eb0d54acec19acf28859da *R/misc.R 8d57a4672a167725272a07c942c64387 *R/msboot.R 4fd2d2ee36b0f3e1926276ccc55ee9e2 *R/msfit.R 8d56438fa39be229c51107238dc3b698 *R/msprep.R 412eb8df510598c2c8b54b1cd737120f *R/mssample.R 84af7dc78589c47af45421396f429a55 *R/paths.R 3fe1c438e5c68194ca538c5f1b42bb2c *R/plot.Cuminc.R 77cc2e08164abc8bfbf4dffe82dd3f22 *R/plot.MarkovTest.R 836e073a65b2c7ae49f8e98397ba27ac *R/plot.msfit.R c6a824b5f8d04a759a74ba55926a1555 *R/plot.probtrans.R d9929b1713dd232fb520ccde6c6e6840 *R/print.Cuminc.R 50b4a6fb95abb49a6e96c7083920fb73 *R/print.MarkovTest.R e87ed12aafa02624a5a4068f83dc72d1 *R/print.msdata.R 3ec150800c707c52ef632927080ca6e0 *R/probtrans.R b609717c0c431d21f8189216097ef8c7 *R/redrank.R 968bb8e1bd3128dd485f9916000b342f *R/relsurv.haz_function.R faadb0827aab4054bedb16e7d3606146 *R/relsurv.match.ratetable.R deba45e36cbcf9473231c18d602231da *R/relsurv.msboot.relsurv.R 0fb3eb290622f77ba7660fc877a4c08d *R/relsurv.msboot.relsurv.boot.R 4007bc1317dc1f4bacbf288c2e97de87 *R/relsurv.msfit.relsurv.R b81a0252b38b15bc06d138adab81b943 *R/relsurv.rformulate.R b287b5bf705b5248f95d780985f6939a *R/relsurv.transMat.R f69962ed69bfd7c0577bf2fab099536b *R/relsurv.varHaz.fixed.R 80b2aca970ff09b494946b95ab988449 *R/summary.Cuminc.R 5febbd212bca394a1beea434e7a21f21 *R/summary.msfit.R 77067754b30008fd5787904a4d6dee77 *R/summary.probtrans.R 4e488ad91612dba0d0e7df79a2d5e5ee *R/trans.R 0ed3592df0b331050f5c5eec5d5612ad *R/transMat.R 9fceee4c8a67f32791a57205a0c2003c *R/transhelp.R 13515e110d3d50ed05c893afae38a2af *R/vis.mirror.pt.R 307b1f9b62f32eeeb7bbf04f7d8fe20a *R/vis.multiple.pt.R f99c48d7dcbbd0a125f236851c28a009 *R/xsect.R 6f91c228de1e3d82fad640a54a125e77 *README.md 8de25926f4fa268558555997af7304ba *build/vignette.rds b3e829108c3ba4c2e9608f6bc162f981 *data/aidssi.RData 2a9dd89d650c4ddce0a78fabcde20219 *data/aidssi2.RData b646f096fad989d70c8e95166f9a6a97 *data/bmt.RData cece4edb8f444d47e21186e77567c269 *data/ebmt1.RData 4c34d40a850cbefe0f8bc77098c158f0 *data/ebmt2.RData 3484e0128c2708e64b33e3a436b00d25 *data/ebmt3.RData 6a0a03f249e8a3a24ba7d5e5149b279a *data/ebmt4.RData 99614ac11305b572b6bf74ca21127a93 *data/prothr.RData c3a7229eb97a3171d8de7544a378a351 *inst/CITATION 9174816420eda00608ad1ad5f00683ab *inst/doc/Tutorial.R 34696bb69642b7804f4aef458a10115b *inst/doc/Tutorial.Rnw fd5d9ec8d3560ce546d6c8540c175146 *inst/doc/Tutorial.pdf abd1c82eb7b39e856848d473935e20cc *inst/doc/visuals_demo.R f8294883a4311d5a6b9ac4822e58f89b *inst/doc/visuals_demo.Rmd fe8c278d579fb16754753b03f4707754 *inst/doc/visuals_demo.html 89e56f34285dade97a69b52bf50b4472 *man/Cuminc.Rd a0e4c9046b4780f22344418377965d84 *man/EBMT-cause-of-death-data.Rd 92035fe317e6da40bb46c055bf25f28b *man/EBMT-data.Rd 22b9fe4cf6caa14ad75ee4cb66d3c0de *man/EBMT-platelet-recovery-data.Rd e610e0eddcb155edc8ad9d14bcc23767 *man/EBMT-year-of-relapse-data.Rd d87cd039cbb9d1e8f0eb044b4acded49 *man/ELOS.Rd 8a1d555709871dab9828b70a7eab14ba *man/LMAJ.Rd 5990aaa734667cb645725f6210e672f0 *man/Liver-cirrhosis-data.Rd f9a81c91710b3a4ea4af29d76c22b8c8 *man/MarkovTest.Rd bed02587ce452b88bc5c703f85fa4db7 *man/aidssi.Rd 67d5ea7434eec68f601f7ef9922bd6e7 *man/bmt.Rd 56fb15065a905d02d85c8bf58e410b64 *man/crprep.default.Rd 1404ef887807a03cd9f6b9e7a5bb48d5 *man/cutLMms.Rd aa83f5e1ec3d5851dae90c9e1175bd59 *man/etm2msdata.Rd 9af7db77bd633b4d816e5c0121aa2c6f *man/events.Rd ed54939bd11c15035ee47290e234885e *man/expand.covs.Rd 8760d5664deed9280016713c1daa05b4 *man/expand.covs.msdata.Rd d8c2bfa1b90ba75f3b1d680c0ef9a021 *man/haz_function.Rd fdac4b92e0f4059821db59bb1e72086c *man/modify_transMat.Rd 688c424212bf0e532cb7f05eae7fa8d4 *man/msboot.Rd fd0d4c400caa327985a598773dc88f4c *man/msboot.relsurv.Rd be123b661593415d0f1612e70deea5be *man/msboot.relsurv.boot.Rd b7843dc97275c7bb9893a303bf3c5a90 *man/msdata2etm.Rd 8e3abbe660e2272667da37948783fe34 *man/msfit.Rd 5cf6b248f160ef94b89489bad5c4ac39 *man/msfit.relsurv.Rd a5e84500df7d20e1ba4c6ecd0b211ffe *man/msprep.Rd a754336d577881c3dce77f709c5d73c9 *man/mssample.Rd 46fa3631488bdd70c656ee310dff9cf5 *man/mstate-package.Rd 8557e05d890ddebe220054a814b8d1fa *man/paths.Rd fcafce675e749ddd25595ffacdf2ae92 *man/plot.Cuminc.Rd 2739fb7e96f8f5725cceaaf931f36fce *man/plot.MarkovTest.Rd af7c01f8bfc193321ca10d0b1bb8962b *man/plot.msfit.Rd 6924d5cbf348333f52a940cb01b6061e *man/plot.probtrans.Rd f441e4034a202731b8a20ac794913f0a *man/print.MarkovTest.Rd 2ec8cbd0ca3e3912211414ee0183c78f *man/print.msdata.Rd a511c760b25a9d2fed8731587ca645ee *man/print.summary.msfit.Rd 81cd35145ee5a66c0f6667363111cd21 *man/print.summary.probtrans.Rd b2a4041d152a5999bd891761c4972e2f *man/probtrans.Rd 6b81536e1d19631c66a7cce5c40f19ff *man/redrank.Rd 07f87cc2422a1713c7aa5c2c18f81fb2 *man/summary.Cuminc.Rd 2686aa2255d1d7bb3a65e71d787d3466 *man/summary.msfit.Rd 48bfadbf7c960773554b5fae21c6d97f *man/summary.probtrans.Rd 7fde1a6572152f31fdbe4e419d005e33 *man/trans2tra.Rd 19151b940e040b8b5f4bec5e5d54535d *man/transMat.Rd d429d49a72942f53d7a03fd46cc5699c *man/transhelp.Rd 6a44eb0841f683b387469af821adb669 *man/varHaz.fixed.Rd 95338e486da6e06f32881cbb358a2cc1 *man/vis.mirror.pt.Rd d86f79312708d7cb7796aa043c9f6a5a *man/vis.multiple.pt.Rd 06168fd2b036055a06e08c0d9e499b5f *man/xsect.Rd b82b99b4cfce15e8bc284daec18e0fb5 *src/agmssurv.c 62353ac3eefc346b934822be3d4070a9 *src/mstate_init.c 34696bb69642b7804f4aef458a10115b *vignettes/Tutorial.Rnw a67e9f6a3c72ffb002f76e9022bbd195 *vignettes/Tutorial.bib f8294883a4311d5a6b9ac4822e58f89b *vignettes/visuals_demo.Rmd mstate/R/0000755000176200001440000000000014630077067011762 5ustar liggesusersmstate/R/relsurv.haz_function.R0000644000176200001440000001332514627637077016312 0ustar liggesusers#' Helper function that calculates excess and population hazards for a given transition #' #' A function that calculates the excess and population hazards #' for a given transition. Code is based on function rs.surv from #' the relsurv package. #' @param formula A non-parametric Surv-based formula, e.g. Surv(times, status)~1 #' @param data A subset of the msprep object (dataset) where there's #' only data for the chosen transition #' @param ratetable A table of event rates, organized as a ratetable object, such as slopop #' @param na.action A missing-data filter function, applied to the model.frame, after any subset argument has been used. Default is options()$na.action #' @param add.times Additional times at which the hazards should be evaluated #' @param rmap An optional list to be used if the variables are not organized and named in the same way as in the ratetable object #' @param include.all.times Should hazards be evaluated at all times in seq(minimum time, maximum time, by=1). Default is FALSE #' @return A list containing the needed hazards. #' #' @author Damjan Manevski \email{damjan.manevski@@mf.uni-lj.si} #' @seealso \code{\link{msfit.relsurv}} #' @export `haz_function` <- function(formula = formula(data), data, ratetable = relsurv::slopop, na.action, add.times, rmap, include.all.times=FALSE ){ call <- match.call() if(!missing(rmap)) rmap <- as.call(rmap) # if(data$trans[1]==3){ browser()} # Adjust the dataset: # status_indicator <- as.character(terms(formula)[[2]][3]) # find the name of the status indicator # data[data[, status_indicator] != failcode, status_indicator] <- 0 # censor those that don't go to the desired state # data[data[, status_indicator] == failcode, status_indicator] <- 1 # make sure the status indicator is equal to 1 data_yi <- data # Save original data # Prepare rform: if(nrow(data)==0) browser() rform <- rformulate.mstate(formula,data,ratetable,na.action,rmap) # relsurv:::rformulate data <- rform$data # dataset # Adjust year/age for left truncation: # if(left.truncation){ # # Tstart <- round(data_yi$Tstart) # # data: # rform$data$year <- rform$data$year + Tstart # rform$data$age <- rform$data$age + Tstart # # # R: # rform$R[,"year"] <- rform$R[,"year"] + Tstart # rform$R[,"age"] <- rform$R[,"age"] + Tstart # } # Check covariates: p <- rform$m if (p > 0) stop("There shouldn't be any covariates in the formula. This function gives non-parametric estimates of the hazards.") else data$Xs <- rep(1, nrow(data)) #if no covariates, just put 1 out <- NULL out$n <- table(data$Xs) #table of strata out$time <- out$n.risk <- out$n.event <- out$n.censor <- haz.excess <- haz.pop <- out$std.err <- NULL kt <- 1 # the only stratum inx <- which(data$Xs == names(out$n)[kt]) #individuals within this stratum tis <- sort(unique(rform$Y[inx])) #unique times if(include.all.times){ # Include all times between 1 and maximum time (by 1 day): all.steps <- seq(min(rform$Y[inx]), max(rform$Y[inx]), by = 1) tis <- sort(union(rform$Y[inx],as.numeric(all.steps))) } # Include add.times, if needed: if(!missing(add.times)){ # add.times <- pmin(as.numeric(add.times),max(rform$Y[inx])) tis <- sort(union(tis,as.numeric(add.times))) #1-day long intervals used - to take into the account the continuity of the pop. part } # Left-truncation in R: # if(left.truncation){ # # Prepare at-risk matrix: # mat <- lapply(1:nrow(data_yi), function(x) ifelse((data_yi$Tstart[x] < tis) & (tis <= data_yi$Tstop[x]), 1, 0)) # mat2 <- matrix(unlist(mat), nrow = nrow(data_yi), byrow = TRUE) # # The sum of the individual at-risk processes: # yi_left <- colSums(mat2) # yi_left[yi_left == 0] <- Inf # # # Calculate yidli (part of pop. hazard) for left-truncated data. # # Prepare matrix: # max_year <- as.character(max(as.integer(colnames(ratetable)))) # Maximum year in ratetable # data$year_helper <- as.Date(data$year, origin="1960-01-01") # Helper column # # # mat4 <- lapply(1:nrow(data_yi), function(i) lt_fun(i, mat2, tis, ratetable, data, max_year)) # mat5 <- matrix(unlist(mat4), nrow = nrow(data), byrow = TRUE) # # # mat5 <- lt_fun2(mat2, tis, ratetable, data, max_year) # # # yidli_by_hand <- colSums(mat3) # do the summation across individuals # yidli_by_hand <- colSums(mat5) # do the summation across individuals # } # data$year_helper <- NULL # remove helper column # Calculate the values for each interval of time: temp <- relsurv::expprep2(rform$R[inx,,drop=FALSE],rform$Y[inx],rform$ratetable,rform$status[inx],times=tis,fast=TRUE, cmp=FALSE, ys=data_yi$Tstart) # Fix at-risk process, if needed: temp$yi[temp$yi==0] <- Inf # for(ii in 1:length(temp$yi)){ # if(temp$yi[ii]==0){ # temp$yi[ii] <- Inf # } # else{ # break # } # } out$time <- c(out$time, tis) #add times out$n.risk <- c(out$n.risk, temp$yi) #add number at risk for each time out$n.event <- c(out$n.event, temp$dni) #add number of events for each time out$n.censor <- c(out$n.censor, c(-diff(temp$yi),temp$yi[length(temp$yi)]) - temp$dni) #add number of censored for each time # Calculate hazards: haz.excess <- temp$dni/temp$yi - temp$yidli/temp$yi haz.pop <- temp$yidli/temp$yi out$std.err <- c(out$std.err, sqrt(cumsum(temp$dni/(temp$yi)^2))) #standard error on each interval out$haz.excess <- c(out$haz.excess,haz.excess) out$haz.pop <- c(out$haz.pop,haz.pop) out$n <- as.vector(out$n) out$call <- call out }mstate/R/paths.R0000644000176200001440000000420714627637077013240 0ustar liggesusers#' Find all possible trajectories through a given multi-state model #' #' For a given multi-state model, specified through a transition matrix, #' \code{paths} recursively finds all the possible trajectories or paths #' through that multi-state starting from a specified state. DO NOT USE for #' reversible or cyclic multi-state models. #' #' The function is recursive. It starts in \code{start}, looks at what states #' can be visited from \code{start}, and appends the results of the next call #' to the current value (matrix). If the transition matrix contains loops, the #' function will find infinitely many paths, so do not use \code{paths} for #' reversible or cyclic multi-state models. A warning is not yet incorporated! #' #' @param trans The transition matrix describing the multi-state model, see #' \code{\link{msprep}} #' @param start The starting state for the trajectories #' @return A matrix, each row of which specifies a possible path through the #' multi-state model. #' @author Hein Putter #' @keywords array #' @examples #' #' tmat <- matrix(NA,5,5) #' tmat[1,2:3] <- 1:2 #' tmat[1,5] <- 3 #' tmat[2,4:5] <- 4:5 #' tmat[3,4:5] <- 6:7 #' tmat[4,5] <- 8 #' paths(tmat) #' paths(tmat, start=3) #' #' @export paths `paths` <- function(trans,start=1) { ### Find all paths through a multi-state model from a starting state ### All direct transitions are specified through transition matrix ### trans ### Input: ### start: numeric, specifying the starting state ### trans: transition matrix ### Output: ### matrix specifying all possible paths ### Details: recursive if (is.circular(trans)) stop("transition matrix is circular, so there will be infinitely many paths") nstates <- trans[start,] nstates <- which(!is.na(nstates)) if (length(nstates)==0) ## i.e. in absorbing state return(matrix(start,1,1)) else { fpmat <- startmat <- matrix(start,1,1) for (nstate in nstates) { fpmat <- my.rbind(fpmat, my.cbind2(start,Recall(trans,start=nstate))) } } return(fpmat) } mstate/R/relsurv.transMat.R0000644000176200001440000001141414627637077015411 0ustar liggesusers#' Upgrade the transMat object for the multi-state/relsurv setting. #' #' A function that upgrades the transMat object so that the population #' and excess-related transitions are included in the transition matrix. #' @param trans The original transition matrix (usually generated using function #' transMat from mstate). Also often present in the msfit object. #' @param split.transitions The transitions that should be split. #' @return An upgraded transition matrix that contains the population and #' excess transitions. #' @author Damjan Manevski \email{damjan.manevski@@mf.uni-lj.si} #' @seealso \code{\link{transMat}} #' @examples #' #' # transition matrix for illness-death model #' trans <- transMat(list(c(2,3),c(4), c(), c()), #' names = c("Alive", "Relapse","Non-relapse mortality", "Death after relapse")) #' split.transitions <- c(2,3) #' modify_transMat(trans, split.transitions) #' #' @export `modify_transMat` <- function(trans, split.transitions){ # Define objects: trans_tmp <- trans companions <- c() split.transitions <- sort(split.transitions) split.states <- sapply(split.transitions, function(x) which(trans == x, arr.ind=TRUE)[,2]) # The function works in three steps: # 1. Add pop. and excess states and the additional transitions in trans: for(j in 1:ncol(trans)){ check_trans <- trans[!is.na(trans[,j]),j] %in% split.transitions # If state j shouldn't be split, or all transitions going to j # have to be split, then: if(sum(check_trans) %in% c(0, length(check_trans))){ add_col <- TRUE for(i in 1:nrow(trans)){ if(!is.na(trans[i,j])){ if(j %in% split.states){ if(add_col){ # Add column: trans_tmp <- cbind(trans_tmp, NA) colnames(trans_tmp)[ncol(trans_tmp)] <- paste0(colnames(trans_tmp)[j], ".e") colnames(trans_tmp)[j] <- paste0(colnames(trans_tmp)[j], ".p") # Add row: trans_tmp <- rbind(trans_tmp, NA) rownames(trans_tmp)[nrow(trans_tmp)] <- paste0(rownames(trans_tmp)[j], ".e") rownames(trans_tmp)[j] <- paste0(rownames(trans_tmp)[j], ".p") # Save companions (.p and .e) companions[j] <- ncol(trans_tmp) add_col <- FALSE } if(trans_tmp[i,j] %in% split.transitions){ trans_tmp[i, ncol(trans_tmp)] <- trans_tmp[i,j] + 1 } } } } } # Else if some transitions going to state j have to be split, others not: else{ # First make new state where transitions are not splitted: # Add column: trans_tmp <- cbind(trans_tmp, trans_tmp[,j]) last_col <- ncol(trans_tmp) colnames(trans_tmp)[last_col] <- paste0(colnames(trans_tmp)[j], "") # Which values have to be removed: remove_values <- trans_tmp[,last_col] %in% split.transitions trans_tmp[remove_values, last_col] <- NA # Add row: trans_tmp <- rbind(trans_tmp, NA) rownames(trans_tmp)[nrow(trans_tmp)] <- paste0(rownames(trans_tmp)[j], "") ########################### # Now add pop and excess states: # Which values have to be removed: remove_values <- !(trans_tmp[,j] %in% split.transitions) remove_values <- remove_values & !is.na(trans_tmp[,j]) # remove NAs trans_tmp[remove_values, j] <- NA # Add column: trans_tmp <- cbind(trans_tmp, NA) colnames(trans_tmp)[ncol(trans_tmp)] <- paste0(colnames(trans_tmp)[j], ".e") colnames(trans_tmp)[j] <- paste0(colnames(trans_tmp)[j], ".p") # Add row: trans_tmp <- rbind(trans_tmp, NA) rownames(trans_tmp)[nrow(trans_tmp)] <- paste0(rownames(trans_tmp)[j], ".e") rownames(trans_tmp)[j] <- paste0(rownames(trans_tmp)[j], ".p") # Save companions (.p and .e) companions[j] <- ncol(trans_tmp) trans_tmp[, ncol(trans_tmp)] <- trans_tmp[,j] + 1 } } # 2. Order the columns/rows in a sensible way # (splitted states .p, .e. are put next to each other): comp_vek <- which(!is.na(companions)) ordered_cols <- setdiff(1:ncol(trans_tmp), c(comp_vek, companions[comp_vek])) ordered_cols <- c(ordered_cols, unlist(lapply(comp_vek, function(x) c(x, companions[x])))) trans_tmp <- trans_tmp[ordered_cols, ordered_cols] # 3. Make the numbering of transitions uniform: val <- 1 for(i in 1:nrow(trans_tmp)){ for(j in 1:ncol(trans_tmp)){ if(!is.na(trans_tmp[i,j])){ trans_tmp[i,j] <- val val <- val+1 } } } # Add from/to as dimension names (this gets lost when cbind/rbind is used): names(dimnames(trans_tmp)) <- names(dimnames(trans)) return(trans_tmp) } mstate/R/redrank.R0000644000176200001440000002764014627637077013555 0ustar liggesusers`redrank.iter` <- function(data, cols, colsR, fullcols, R, clock, strata, Gamma.iter, print.level = 0) { if (!inherits(data, "msdata")) stop("'data' must be an 'msdata' object") trans <- attr(data, "trans") data[,c(cols,colsR,fullcols)] <- unlist(data[,c(cols,colsR,fullcols)]) nfull <- length(fullcols) covariates <- names(data)[cols] fullcovariates <- names(data)[fullcols] n <- nrow(data) K <- max(trans,na.rm=TRUE) p <- length(cols) for (k in 1:K) { ### W[k,r] = Gamma.iter[r,k] * Z wh <- which(data$trans == k) for (r in 1:R) { data[wh, colsR[r,]] <- Gamma.iter[r,k] * data[wh, colsR[r,]] } } data$trans <- factor(data$trans) ### lost in the unlist above covs.R <- names(data)[as.vector(t(colsR))] if (is.null(strata)) strata <- "trans" strata.expr <- paste("strata(",strata,")+") if (clock=="forward") expr1 <- paste("cox.itr1 <- coxph(Surv(Tstart,Tstop,status)~", strata.expr, paste(covs.R, collapse = "+"),sep="") else expr1 <- paste("cox.itr1 <- coxph(Surv(time,status)~", strata.expr, paste(covs.R, collapse = "+"),sep="") if (!is.null(fullcols)) expr1 <- paste(expr1, "+", paste(fullcovariates, collapse = "+"),sep="") expr1 <- paste(expr1,", data=data, na.action=\"na.exclude\")", sep = "") cox.itr1 <- eval(parse(text = expr1, n = 1)) if (print.level > 0) { cat("\nStratified Cox regression:\n\n") print(cox.itr1) } loglik <- cox.itr1$loglik[2] if (print.level > -1) cat("\nAlpha =", round(cox.itr1$coef, 5)) Alpha <- matrix(cox.itr1$coef[1:(p*R)],p,R) Beta2 <- cox.itr1$coef[-(1:(p*R))] ncd <- ncol(data) data <- cbind(data,as.matrix(data[, cols]) %*% Alpha) AlphaX.R <- paste("AlphaX",as.character(1:R),sep="") names(data)[((ncd+1):(ncd+R))] <- AlphaX.R attr(data, "trans") <- trans class(data) <- c("msdata", "data.frame") data <- expand.covs(data,AlphaX.R) AlphaX.RK <- names(data)[((ncd+R+1):(ncd+R+R*K))] if (clock=="forward") expr2 <- paste("cox.itr2 <- coxph(Surv(Tstart,Tstop,status)~", strata.expr, paste(AlphaX.RK, collapse = "+"),sep="") else expr2 <- paste("cox.itr2 <- coxph(Surv(time,status)~", strata.expr, paste(AlphaX.RK, collapse = "+"),sep="") if (!is.null(fullcols)) expr2 <- paste(expr2, "+", paste(fullcovariates, collapse = "+"),sep="") expr2 <- paste(expr2,", data=data, na.action=\"na.exclude\")", sep = "") cox.itr2 <- eval(parse(text = expr2, n = 1)) if (print.level > 0) { cat("\n\nCox regression on scores\n\n") print(cox.itr2) } Gamma.iter <- t(matrix(cox.itr2$coef[1:(K*R)],K,R)) Beta2 <- cox.itr2$coef[-(1:(K*R))] return(list(Gamma = Gamma.iter, Alpha = Alpha, Beta2 = Beta2, loglik = loglik, cox.itr1 = cox.itr1)) } #' Reduced rank proportional hazards model for competing risks and multi-state #' models #' #' This function estimates regression coefficients in reduced rank proportional #' hazards models for competing risks and multi-state models. #' #' For details refer to Fiocco, Putter & van Houwelingen (2005, 2008). #' #' @param redrank Survival formula, starting with either Surv(time,status) ~ or #' with Surv(Tstart,Tstop,status) ~, followed by a formula containing #' covariates for which a reduced rank estimate is to be found #' @param full Optional, formula specifying that part which needs to be #' retained in the model (so not subject to reduced rank) #' @param data Object of class 'msdata', as prepared for instance by #' \code{\link{msprep}}, in which to interpret the \code{redrank} and, #' optionally, the \code{full} formulas #' @param R Numeric, indicating the rank of the solution #' @param strata Name of covariate to be used inside the #' \code{\link[survival:strata]{strata}} part of #' \code{\link[survival:coxph]{coxph}} #' @param Gamma.start A matrix of dimension K x R, with K the number of #' transitions and R the rank, to be used as starting value #' @param method The method for handling ties in #' \code{\link[survival:coxph]{coxph}} #' @param eps Numeric value determining when the iterative algorithm is #' finished (when for two subsequent iterations the difference in #' log-likelihood is smaller than \code{eps}) #' @param print.level Determines how much output is written to the screen; 0: #' no output, 1: iterations, for each iteration solutions of Alpha, Gamma, #' log-likelihood, 2: also the Cox regression results #' @return A list with elements \item{Alpha}{the Alpha matrix} \item{Gamma}{the #' Gamma matrix} \item{Beta}{the Beta matrix corresponding to #' \code{covariates}} \item{Beta2}{the Beta matrix corresponding to #' \code{fullcovs}} \item{cox.itr1}{the \code{\link[survival:coxph]{coxph}} #' object resulting from the last call giving \code{Alpha}} \item{alphaX}{the #' matrix of prognostic scores given by \code{Alpha}, n x R, with n number of #' subjects} \item{niter}{the number of iterations needed to reach convergence} #' \item{df}{the number of regression parameters estimated} \item{loglik}{the #' log-likelihood} #' @author Marta Fiocco and Hein Putter \email{H.Putter@@lumc.nl} #' @references Fiocco M, Putter H, van Houwelingen JC (2005). Reduced rank #' proportional hazards model for competing risks. \emph{Biostatistics} #' \bold{6}, 465--478. #' #' Fiocco M, Putter H, van Houwelingen HC (2008). Reduced-rank proportional #' hazards regression and simulation-based prediction for multi-state models. #' \emph{Statistics in Medicine} \bold{27}, 4340--4358. #' #' Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing #' risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, #' 2389--2430. #' @keywords survival #' @examples #' #' \dontrun{ #' # This reproduces the results in Fiocco, Putter & van Houwelingen (2005) #' # Takes a while to run #' data(ebmt2) #' # transition matrix for competing risks #' tmat <- trans.comprisk(6,names=c("Relapse","GvHD","Bacterial","Viral","Fungal","Other")) #' # preparing long dataset #' ebmt2$stat1 <- as.numeric(ebmt2$status==1) #' ebmt2$stat2 <- as.numeric(ebmt2$status==2) #' ebmt2$stat3 <- as.numeric(ebmt2$status==3) #' ebmt2$stat4 <- as.numeric(ebmt2$status==4) #' ebmt2$stat5 <- as.numeric(ebmt2$status==5) #' ebmt2$stat6 <- as.numeric(ebmt2$status==6) #' covs <- c("dissub","match","tcd","year","age") #' ebmtlong <- msprep(time=c(NA,rep("time",6)), #' stat=c(NA,paste("stat",1:6,sep="")), #' data=ebmt2,keep=covs,trans=tmat) #' #' # The reduced rank 2 solution #' rr2 <- redrank(Surv(Tstart,Tstop,status) ~ dissub+match+tcd+year+age, #' data=ebmtlong, R=2) #' rr3$Alpha; rr3$Gamma; rr3$Beta; rr3$loglik #' # The reduced rank 3 solution #' rr3 <- redrank(Surv(Tstart,Tstop,status) ~ dissub+match+tcd+year+age, #' data=ebmtlong, R=3) #' rr3$Alpha; rr3$Gamma; rr3$Beta; rr3$loglik #' # The reduced rank 3 solution, with no reduction on age #' rr3 <- redrank(Surv(Tstart,Tstop,status) ~ dissub+match+tcd+year, full=~age, #' data=ebmtlong, R=3) #' rr3$Alpha; rr3$Gamma; rr3$Beta; rr3$loglik #' # The full rank solution #' fullrank <- redrank(Surv(Tstart,Tstop,status) ~ dissub+match+tcd+year+age, #' data=ebmtlong, R=6) #' fullrank$Beta; fullrank$loglik #' } #' #' @export redrank `redrank` <- function(redrank, full = ~1, data, R, strata = NULL, Gamma.start, method = "breslow", eps = 1e-5, print.level = 1) { if (!inherits(data, "msdata")) stop("'data' must be an 'msdata' object") trans <- attr(data, "trans") # Now we need only the data data <- as.data.frame(data) # Get model matrices of reduced rank and full rank parts mmrr <- model.matrix(redrank, data=data) mmrr <- mmrr[,-1,drop=FALSE] # without intercept p <- ncol(mmrr) if (p==0) stop("Empty reduced rank part; please consider full model") mmrr <- data.frame(mmrr) covs <- names(mmrr) mmfull <- model.matrix(full, data=data) mmfull <- mmfull[,-1,drop=FALSE] # without intercept p2 <- ncol(mmfull) # Construct working data if (p2>0) { mmfull <- data.frame(mmfull) fullcovs <- names(mmfull) rrdata <- as.data.frame(data[,c("id","from","to","trans","Tstart","Tstop","time","status")]) rrdata <- cbind(rrdata,mmrr,mmfull) cols <- 8 + (1:p) fullcols <- 8 + p + (1:p2) } else { rrdata <- as.data.frame(data[,c("id","from","to","trans","Tstart","Tstop","time","status")]) rrdata <- cbind(rrdata,mmrr) cols <- 8 + (1:p) fullcols <- NULL } # Get and store whether clock is forward or reset cx <- coxph(redrank, data=data) if (attr(cx$y, "type") == "counting") clock <- "forward" else if (attr(cx$y, "type") == "right") clock <- "reset" else stop("Surv object should be either of type 'counting' or 'right'") # Preparations for iterative algorithm trans2 <- to.trans2(trans) K <- nrow(trans2) if (!is.null(dimnames(trans))) tnames <- paste(trans2$fromname,"->",trans2$toname) else tnames <- as.character(1:K) ### add to the data set R replicates of columns with covariates Z_1...Z_p colsR <- matrix(0,R,p) for (r in 1:R) { ncd <- ncol(rrdata) rrdata <- cbind(rrdata,rrdata[,cols]) colsR[r,] <- ((ncd+1):(ncd+p)) names(rrdata)[((ncd+1):(ncd+p))] <- paste(covs, as.character(r), sep=".rr") } if (missing(Gamma.start)) Gamma.start <- matrix(rnorm(R*K),R,K) Gamma.iter <- Gamma.start iter <- 1 prev.loglik <- 0 loglik <- 100 Delta <- loglik - prev.loglik while(abs(Delta) > eps) { if (print.level > 0) { cat("\n\nIteration", iter, "... \n") flush.console() } iter <- iter + 1 attr(rrdata, "trans") <- trans class(rrdata) <- c("msdata", "data.frame") ms.it <- redrank.iter(data = rrdata, cols = cols, colsR = colsR, fullcols = fullcols, R = R, clock = clock, strata = strata, Gamma.iter = Gamma.iter, print.level = print.level - 1) Gamma.iter <- ms.it$Gamma if (print.level > 0) cat("\nGamma = ", round(Gamma.iter, 5)) prev.loglik <- loglik loglik <- ms.it$loglik Delta <- - loglik + prev.loglik if (print.level > 0) { cat("\nPrevious loglik =", round(prev.loglik, 5), ", present loglik =", round(loglik, 5), " Delta = ", round(Delta, 8)) flush.console() } } Alpha <- ms.it$Alpha Gamma.final <- as.matrix(ms.it$Gamma) B <- Alpha %*% Gamma.final ### To make Alpha and Gamma unique, use singular value decomposition svd.B <- svd(B) Gamma.final <- (diag(sqrt(svd.B$d)) %*% t(svd.B$v))[1:R,] Gamma.final <- matrix(Gamma.final,R,K) rnames <- paste("r",1:R,sep="") dimnames(Gamma.final) <- list(rnames,tnames) Alpha <- (svd.B$u %*% diag(sqrt(svd.B$d)))[,1:R] if (R>1) norm.Alpha <- apply(Alpha^2,2, function(x) sqrt(sum(x))) else norm.Alpha <- sqrt(sum(Alpha^2)) norm.Alpha.mat <- matrix(norm.Alpha,p,R,byrow=TRUE) Alpha <- Alpha/norm.Alpha.mat dimnames(Alpha) <- list(covs,rnames) AlphaX <- as.matrix(rrdata[,cols]) %*% Alpha Gamma.final <- Gamma.final * matrix(norm.Alpha,R,K) dimnames(B) <- list(covs,tnames) return(list(Alpha = Alpha, Gamma = Gamma.final, Beta = B, Beta2 = ms.it$Beta2, cox.itr1 = ms.it$cox.itr1, AlphaX = AlphaX, niter = iter, df = R*(p+K-R), loglik = loglik)) } mstate/R/MarkovTest.R0000644000176200001440000004602514627637077014224 0ustar liggesusers#' Log-rank based test for the validity of the Markov assumption #' #' Log-rank based test for the validity of the Markov assumption #' #' Function MarkovTest performs the log-rank test described in Titman & Putter #' (2020). Function optimal_weights_matrix implements the optimal weighting for #' the state-specific trace. Function optimal_weights_multiple implements the #' optimal weighting for the chi-squared trace. #' #' @aliases MarkovTest optimal_weights_multiple optimal_weights_matrix #' @param data Multi-state data in \code{msdata} format. Should also contain #' (dummy codings of) the relevant covariates; no factors allowed #' @param id Column name in \code{data} containing subject id #' @param formula Right-hand side of the formula. If NULL will fit with no #' covariates (formula="1" will also work), offset terms can also be specified. #' @param transition Transition number of the transition to be tested (in the #' transition matrix as attribute to \code{data}) #' @param grid Grid of time points at which to compute the statistic #' @param B Number of wild bootstrap replications to perform #' @param fn A list of summary functions to be applied to the individual zbar #' traces (or a list of lists) #' @param fn2 A list of summary functions to be applied to the overall #' chi-squared trace #' @param dist Distribution of wild bootstrap random weights, either "poisson" #' for centred Poisson (default), or "normal" for standard normal #' @param min_time The minimum time for calculating optimal weights #' @param other_weights Other (than optimal) weights can be specified here #' @return MarkovTest returns an object of class "MarkovTest", which is a list #' with the following items: \item{orig_stat}{Summary statistic for each of the #' starting states} \item{orig_ch_stat}{Overall chi-squared summary statistic} #' \item{p_stat_wb}{P-values corresponding to each of the summary statistics #' for each starting state} \item{p_ch_stat_wb}{P-values for overall #' chi-squared summary statistic} \item{b_stat_wb}{Bootstrap summary statistics #' for each of the starting states} \item{zbar}{Individual traces for each of #' the starting states} \item{nobs_grid}{The number of events after time s for #' each s in the grid} \item{Nsub}{Number of patients who are ever at risk of #' the transition of interest} \item{est_quant}{Pointwise 2.5 and 97.5 quantile #' limits for each of the traces} \item{obs_chisq_trace}{Trace of the #' chi-squared statistic} \item{nch_wb_trace}{Individual values of the #' chi-squared statistic trace for the wild bootstrap samples} #' \item{n_wb_trace}{Individual values of the log-rank z statistic traces for #' the wild bootstrap samples} \item{est_cov}{Estimated covariance matrix #' between the log-rank statistics at each grid point} \item{transition}{The #' transition number tested} \item{from}{The from state of the transition #' tested} \item{to}{The to state of the transition tested} \item{B}{The number #' of wild bootstrap replications} \item{dist}{The distribution used in the #' wild bootstrap} \item{qualset}{Set of qualifying states corresponding to the #' components of the above traces} \item{coxfit}{Fitted coxph object} #' \item{fn}{List of functions applied to state-specific trace} \item{fn2}{List #' of functions applied to overall trace} #' @author Andrew Titman \email{a.titman@@lancaster.ac.uk}, transported to #' mstate by Hein Putter \email{H.Putter@@lumc.nl} #' @references Titman AC, Putter H (2020). General tests of the Markov property #' in multi-state models. \emph{Biostatistics} To appear. #' @keywords univar #' @examples #' #' \dontrun{ #' # Example provided by the prothrombin data #' data("prothr") #' # Apply Markov test to grid of monthly time points over the first 7.5 years #' year <- 365.25 #' month <- year / 12 #' grid <- month * (1 : 90) #' # Markov test for transition 1 (wild bootstrap based on 25 replications, 1000 recommended) #' MT <- MarkovTest(prothr, id = "id", transition = 1, #' grid = grid, B = 25) #' #' # Plot traces #' plot(MT, grid, what="states", idx=1:10, states=rownames(attr(prothr, "trans")), #' xlab="Days since randomisation", ylab="Log-rank test statistic", #' main="Transition Normal -> Low") #' plot(MT, grid,what="overall", idx=1:10, #' xlab="Days since randomisation", ylab="Chi-square test statistic", #' main="Transition Normal -> Low") #' #' # Example using optimal weights and adjustment for covariates #' oweights_fun <- #' optimal_weights_matrix(prothr, id = "id", grid=grid, transition = 1, #' other_weights=list( #' function(x) mean(abs(x),na.rm=TRUE), #' function(x) max(abs(x),na.rm=TRUE))) #' #' oweights_chi <- optimal_weights_multiple(prothr, id = "id", grid=grid, transition = 1) #' #' # Formula in MarkovTest only works for continuous covariates and dummy coded variables #' # No factors allowed #' prothr$prednisone <- as.numeric(prothr$treat == "Prednisone") #' MT <- MarkovTest(prothr, id = "id", #' formula = "prednisone", #' transition = 1, #' grid = grid, B = 25, #' fn = oweights_fun, #' fn2 = list( #' function(x) weighted.mean(x, w=oweights_chi, na.rm=TRUE), #' function(x) mean(x, na.rm=TRUE), #' function(x) max(x, na.rm=TRUE))) #' } #' #' @export MarkovTest MarkovTest <- function(data, id, formula = NULL, transition, grid, B = 1000, fn = list(function(x) mean(abs(x), na.rm = TRUE)), fn2 = list(function(x) mean(x, na.rm = TRUE)), min_time = 0, other_weights = NULL, dist = c("poisson", "normal")) { dist <- match.arg(dist) if (missing(id)) id <- "id" # Remove "empty" lines in the data wh <- which(data$Tstop <= data$Tstart) if (length(wh)>0) { warning(length(wh), " lines with Tstart <= Tstop, have been removed before applying tests!") data <- data[-wh, ] } # Convert data to etm data # Make sure to retain all covariates (possibly way to many) in msdata (needed in formula perhaps) mtch <- match(c("id", "from", "to", "trans", "Tstart", "Tstop", "status"), names(data)) covcols <- 1:ncol(data) covcols <- covcols[!covcols %in% mtch] ncovs <- length(covcols) trans <- attr(data, "trans") etmdata <- msdata2etm(data, id) if (ncovs > 0) etmdata <- msdata2etm(data, id, names(data)[covcols]) trans2 <- to.trans2(trans) tfrom <- trans2$from[trans2$transno == transition] tto <- trans2$to[trans2$transno == transition] # Determine qualifying set qualset <- c(tfrom, which(trans2Q(trans)[, tfrom] > 0)) qualset <- sort(unique(qualset)) # for circular models, tfrom is included twice # Functions if (!is.list(fn)) fn <- list(fn) # coerce to be list if a single function is provided if (is.list(fn) & is.function(fn[[1]])) { # coerce to be a list of lists, by repeating the same list each time tempfn <- list() for (i in 1:length(qualset)) tempfn[[i]] <- fn fn <- tempfn } if (!is.list(fn2)) fn2 <- list(fn2) # coerce to be list if a single function is provided # Establish the relevant patients who ever enter tfrom relpat <- sort(unique(etmdata$id[etmdata$from == tfrom])) rdata <- etmdata[etmdata$from == tfrom, ] # only need time periods in the relevant state... rdata$status <- 1 * (rdata$to == tto) if (!is.null(formula)) { form <- as.formula(paste("Surv(entry, exit, status) ~ ", formula, sep = "")) progfit <- coxph(form, data = rdata) if (length(progfit$coefficients) > 0) { Zmat <- as.matrix(rdata[, match(names(progfit$coefficients), names(rdata))]) Ncov <- dim(Zmat)[2] } else { Ncov <- 0 } if (!is.null(progfit$offset)) { offset <- progfit$offset } else { offset <- rep(0, dim(rdata)[1]) } } else { Ncov <- 0 offset <- rep(0, dim(rdata)[1]) progfit <- NULL } # Minimal data, change names progdat <- rdata[, match(c("id", "entry", "exit", "status"), names(rdata))] names(progdat) <- c("id", "T0", "T1", "D") nobs_grid <- sapply(grid, function(x) sum(progdat$D[progdat$T1 > x])) # Have the extra dimension of indexes index_gM <- array(0, c(length(relpat), length(grid), length(qualset))) for (indx in 1:length(qualset)) { qualstate <- qualset[indx] index_g <- sapply(grid, function(y) sapply(relpat, function(x) which(etmdata$entry < y & etmdata$exit >= y & etmdata$id == x))) index_g <- array(1 * (etmdata$from[sapply(index_g, function(y) ifelse(length(y) > 0, y, dim(etmdata)[1] + 1))] == qualstate), c(length(relpat), length(grid))) index_g[is.na(index_g)] <- 0 index_gM[, , indx] <- index_g } # Need a separate Z3mat for each group as well... Z3mat <- index_gM[match(progdat$id, relpat), , , drop = FALSE] N1 <- dim(progdat)[1] if (Ncov > 0) { LP <- c(Zmat %*% progfit$coefficients) + offset } else { LP <- rep(0, N1) + offset } S0 <- sapply(1:N1, function(x) sum(exp(LP) * (progdat$T0 < progdat$T1[x] & progdat$T1 >= progdat$T1[x]))) incr <- progdat$D / S0 cumhaz <- approxfun(c(0, sort(unique(progdat$T1)), Inf), c(0, cumsum(tapply(incr, progdat$T1, sum)), sum(incr)), method = "constant") resid_mat <- sapply(grid, function(x) progdat$D * (progdat$T1 > x) - exp(LP) * (cumhaz(pmax(x, progdat$T1)) - cumhaz(pmax(x, progdat$T0)))) # Have a separate trace for each qualifying state... obs_trace <- array(0, c(length(grid), length(qualset))) for (indx in 1:(length(qualset))) { obs_trace[, indx] <- sapply(1:length(grid), function(k) sum(resid_mat[, k] * Z3mat[, k, indx] * (progdat$T1 > grid[k]))) } nqstate <- length(qualset) if (Ncov > 0) Ifish <- progfit$var N1 <- dim(progdat)[1] if (Ncov > 0) Zbar0 <- array(0, c(N1, Ncov)) Zbar <- array(0, c(N1, length(grid), nqstate)) for (i in 1:N1) { x <- i if (Ncov > 0) { for (j in 1:Ncov) { Zbar0[i, j] <- sum(Zmat[, j] * exp(LP) * (progdat$T0 < progdat$T1[x] & progdat$T1 >= progdat$T1[x])) / sum(exp(LP) * (progdat$T0 < progdat$T1[x] & progdat$T1 >= progdat$T1[x])) } } for (j in 1:length(grid)) { for (k in 1:nqstate) Zbar[i, j, k] <- sum(Z3mat[, j, k] * exp(LP) * (progdat$T0 < progdat$T1[x] & progdat$T1 >= progdat$T1[x])) / sum(exp(LP) * (progdat$T0 < progdat$T1[x] & progdat$T1 >= progdat$T1[x])) } } NAe <- incr if (Ncov > 0) { Hmat <- array(0, c(length(grid), Ncov, nqstate)) for (j in 1:Ncov) { # for (k in 1:nqstate) Hmat[,j,k] <- sapply(1:length(grid),function(y) # sum(sapply(1:N1,function(x) sum(exp(LP) *Zmat[,j]* (Z3mat[x,y,k] - # Zbar[x,y,k]) * NAe[x] * (progdat$T0[x] > grid[y] & progdat$T1[x] <= # progdat$T1))))) for (k in 1:nqstate) Hmat[, j, k] <- sapply(1:length(grid), function(y) sum(sapply(1:N1, function(x) sum(exp(LP[x]) * ((Zmat[x, j] - Zbar0[, j]) * (Z3mat[x, y, k] - Zbar[, y, k])) * NAe * (progdat$T1[x] > grid[y]) * (progdat$T1 > progdat$T0[x] & progdat$T1 <= progdat$T1[x]))))) } } if (Ncov > 0) { multiplier <- array(0, dim(Hmat)) for (k in 1:nqstate) multiplier[, , k] <- Hmat[, , k] %*% Ifish est_cov <- array(0, c(length(grid), nqstate, nqstate)) for (indx1 in 1:nqstate) { for (indx2 in (indx1):nqstate) { est_var <- sapply(1:length(grid), function(k) sum(sapply(1:N1, function(v) sum(((Z3mat[v, k, indx1] - Zbar[, k, indx1]) * (progdat$T1 > grid[k]) - c(multiplier[k, , indx1, drop = FALSE] %*% t(Zmat[v, ] - Zbar0))) * ((Z3mat[v, k, indx2] - Zbar[, k, indx1]) * (progdat$T1 > grid[k]) - c(multiplier[k, , indx2, drop = FALSE] %*% t(Zmat[v, ] - Zbar0))) * exp(LP[v]) * (progdat$T0[v] < progdat$T1 & progdat$T1[v] >= progdat$T1) * NAe)))) est_cov[, indx1, indx2] <- est_cov[, indx2, indx1] <- est_var } } } else { est_cov <- array(0, c(length(grid), nqstate, nqstate)) for (indx1 in 1:nqstate) { for (indx2 in (indx1):nqstate) { est_var <- sapply(1:length(grid), function(k) sum(sapply(1:N1, function(v) sum((Z3mat[v, k, indx1] - Zbar[, k, indx1]) * (Z3mat[v, k, indx2] - Zbar[, k, indx2]) * exp(LP[v]) * (progdat$T1 > grid[k] & progdat$T0[v] < progdat$T1 & progdat$T1[v] >= progdat$T1) * NAe)))) est_cov[, indx1, indx2] <- est_cov[, indx2, indx1] <- est_var } } } # First obtain the individually normalized traces... est_var <- obs_norm_trace <- array(0, c(length(grid), nqstate)) for (k in 1:nqstate) { est_var[, k] <- est_cov[cbind(1:length(grid), k, k)] # This should be the same as before... obs_norm_trace[, k] <- obs_trace[, k] / sqrt(est_var[, k] + 1 * (est_var[, k] == 0)) } # Find singular matrices obs_chisq_trace <- rep(0, length(grid)) for (k in 1:length(grid)) { sol <- tryCatch(solve(est_cov[k, -1, -1]), error = function(e) return(diag(0, nqstate - 1))) obs_chisq_trace[k] <- (obs_trace[k, -1]) %*% sol %*% (obs_trace[k, -1]) # do something about singular matrices... } ############## n_wb_trace <- wb_trace0 <- wb_trace <- array(0, c(B, length(grid), nqstate)) nch_wb_trace <- array(0, c(B, length(grid))) for (wb in 1:B) { if (dist == "poisson") { G <- rpois(dim(progdat)[1], 1) - 1 } else if (dist == "normal") { G <- rnorm(dim(progdat)[1], 0, 1) } else stop("argument dist should be poisson or normal") trace0 <- array(0, c(length(grid), nqstate)) for (k in 1:nqstate) { trace0[, k] <- apply(sapply(1:length(grid), function(x) progdat$D * (Z3mat[, x, k] - Zbar[, x, k]) * (progdat$T1 > grid[x]) * G), 2, sum) if (Ncov > 0) { Imul <- sapply(1:Ncov, function(x) sum(progdat$D * (Zmat[, x] - Zbar0[, x]) * G)) trace1 <- (Hmat[, , k] %*% Ifish %*% Imul)[, 1] } else { trace1 <- 0 } wb_trace[wb, , k] <- trace0[, k] - trace1 n_wb_trace[wb, , k] <- wb_trace[wb, , k]/sqrt(est_var[, k] + 1 * (est_var[, k] == 0)) for (w in 1:length(grid)) { sol <- tryCatch(solve(est_cov[w, -1, -1]), error = function(e) return(diag(0, nqstate - 1))) nch_wb_trace[wb, w] <- (wb_trace[wb, w, -1]) %*% sol %*% (wb_trace[wb, w, -1]) # do something about singular matrices... } } } # Need to have one of these per nqstate NS <- length(fn[[1]]) orig_stat <- array(sapply(1:nqstate, function(y) sapply(fn[[y]], function(g) g(obs_norm_trace[, y]))), c(NS, nqstate)) orig_ch_stat <- sapply(fn2, function(g) g(obs_chisq_trace)) p_stat_wb <- array(0, c(NS, nqstate)) wb_stat <- array(0, c(B, NS, nqstate)) for (k in 1:nqstate) { wb_stat[, , k] <- array(t(apply(n_wb_trace[, , k, drop = FALSE], 1, function(x) sapply(fn[[k]], function(g) g(x)))), c(B, NS)) p_stat_wb[, k] <- sapply(1:NS, function(x) mean(wb_stat[, x, k] > orig_stat[x, k])) } est_quant <- array(0, c(2, length(grid), nqstate)) for (k in 1:nqstate) est_quant[, , k] <- apply(n_wb_trace[, , k, drop = FALSE], 2, quantile, c(0.025, 0.975), na.rm = TRUE) NS2 <- length(fn2) p_ch_stat_wb <- rep(0, NS2) wb_ch_stat <- array(t(apply(nch_wb_trace, 1, function(x) sapply(fn2, function(g) g(x)))), c(B, NS2)) p_ch_stat_wb <- sapply(1:NS2, function(x) mean(wb_ch_stat[, x] > orig_ch_stat[x])) # Is a question whether should use Nsub as number of subjects or number # of spells within the state MTres <- list(orig_stat = orig_stat, orig_ch_stat = orig_ch_stat, p_stat_wb = p_stat_wb, p_ch_stat_wb = p_ch_stat_wb, b_stat_wb = wb_stat, zbar = obs_norm_trace, nobs_grid = nobs_grid, Nsub = length(relpat), est_quant = est_quant, obs_chisq_trace = obs_chisq_trace, nch_wb_trace = nch_wb_trace, n_wb_trace = n_wb_trace, est_cov = est_cov, transition = transition, from = tfrom, to = tto, B = B, dist = dist, qualset = qualset, coxfit = progfit, fn = fn, fn2 = fn2) class(MTres) <- c("MarkovTest") return(MTres) } #' @export optimal_weights_multiple <- function(data, id, grid, transition, min_time = 0) { # Convert data to etm data trans <- attr(data, "trans") etmdata <- msdata2etm(data, id) trans2 <- to.trans2(trans) from <- trans2$from[trans2$transno == transition] to <- trans2$to[trans2$transno == transition] numbers <- sapply(grid, function(x) table(factor(etmdata$from)[(etmdata$entry <= x & etmdata$exit > x)])) subevent <- sapply(grid, function(x) sum(etmdata$from == from & etmdata$to == to & etmdata$exit > x)) tnumbers <- apply(numbers, 2, sum) weights <- sapply(1:dim(numbers)[1], function(x) subevent * numbers[x, ] * (tnumbers - numbers[x, ])/tnumbers^2) weights[is.nan(weights)] <- 0 weight <- apply(weights, 1, max) weight * diff(c(min_time, grid)) } #' @export optimal_weights_matrix <- function(data, id, grid, transition, min_time = 0, other_weights = NULL) { # Convert data to etm data trans <- attr(data, "trans") etmdata <- msdata2etm(data, id) trans2 <- to.trans2(trans) from <- trans2$from[trans2$transno == transition] to <- trans2$to[trans2$transno == transition] numbers <- sapply(grid, function(x) table(factor(etmdata$from)[(etmdata$entry <= x & etmdata$exit > x)])) subevent <- sapply(grid, function(x) sum(etmdata$from == from & etmdata$to == to & etmdata$exit > x)) tnumbers <- apply(numbers, 2, sum) weights <- sapply(1:dim(numbers)[1], function(x) sqrt(subevent * numbers[x, ] * (tnumbers - numbers[x, ]))/tnumbers) weights[is.nan(weights)] <- 0 fn_list <- list() for (i in 1:dim(numbers)[1]) { # Take into account the distance between grids val <- weights[, i] * diff(c(min_time, grid)) fn_list[[i]] <- list(fn = function(x) weighted.mean(abs(x), w = val, na.rm = TRUE)) if (!is.null(other_weights)) { nother <- length(other_weights) fn_list[[i]][2:(nother + 1)] <- other_weights } } # Store the weights as an attribute attr(fn_list, "weights") <- weights fn_list } mstate/R/LMAJ.R0000644000176200001440000001252714627637077012650 0ustar liggesusers#' Landmark Aalen-Johansen method #' #' This function implements the landmark Aalen-Johansen method of Putter & #' Spitoni (2016) for non-parametric estimation of transition probabilities in #' non-Markov models. #' #' #' @param msdata An \code{"msdata"} object, as for instance prepared by #' \code{link{msprep}} #' @param s The prediction time point s from which transition probabilities are #' to be obtained #' @param from Either a single state or a set of states in the state space #' 1,...,S #' @param method The method for calculating variances, as in #' \code{\link{probtrans}} #' @return A data frame containing estimates and associated standard errors of #' the transition probabilities P(X(t)=k | X(s) in \code{from}) with \code{s} #' and \code{from} the arguments of the function. #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @author Edouard F. Bonneville \email{e.f.bonneville@@lumc.nl} #' @references H. Putter and C. Spitoni (2016). Estimators of transition #' probabilities in non-Markov multi-state models. Submitted. #' @keywords survival #' @examples #' #' data(prothr) #' tmat <- attr(prothr, "trans") #' pr0 <- subset(prothr, treat=="Placebo") #' attr(pr0, "trans") <- tmat #' pr1 <- subset(prothr, treat=="Prednisone") #' attr(pr1, "trans") <- tmat #' c0 <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data=pr0) #' c1 <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data=pr1) #' msf0 <- msfit(c0, trans=tmat) #' msf1 <- msfit(c1, trans=tmat) #' # Comparison as in Figure 2 of Titman (2015) #' # Aalen-Johansen #' pt0 <- probtrans(msf0, predt=1000)[[2]] #' pt1 <- probtrans(msf1, predt=1000)[[2]] #' par(mfrow=c(1,2)) #' plot(pt0$time, pt0$pstate1, type="s", lwd=2, xlim=c(1000,4000), ylim=c(0,0.61), #' xlab="Time since randomisation (days)", ylab="Probability") #' lines(pt1$time, pt1$pstate1, type="s", lwd=2, lty=3) #' legend("topright", c("Placebo", "Prednisone"), lwd=2, lty=1:2, bty="n") #' title(main="Aalen-Johansen") #' # Landmark Aalen-Johansen #' LMpt0 <- LMAJ(msdata=pr0, s=1000, from=2) #' LMpt1 <- LMAJ(msdata=pr1, s=1000, from=2) #' plot(LMpt0$time, LMpt0$pstate1, type="s", lwd=2, xlim=c(1000,4000), ylim=c(0,0.61), #' xlab="Time since randomisation (days)", ylab="Probability") #' lines(LMpt1$time, LMpt1$pstate1, type="s", lwd=2, lty=3) #' legend("topright", c("Placebo", "Prednisone"), lwd=2, lty=1:2, bty="n") #' title(main="Landmark Aalen-Johansen") #' #' @export LMAJ LMAJ <- function(msdata, s, from, method=c("aalen", "greenwood")) { tmat <- attr(msdata, "trans") if (is.null(tmat)) stop("msdata object should have a \"trans\" attribute") K <- nrow(tmat) if (any(is.na(match(from, 1:K)))) stop("from should be subset of 1:K with K number of states") xss <- xsect(msdata, s) infrom <- xss$id[xss$state %in% from] if (length(infrom) == 0) { msdata_from <- msdata[msdata$from == from, ] if (nrow(msdata_from) == 0) { stop(paste0("No transitions are made from state ", from, "!")) } else { first_entering <- round(min(msdata_from$Tstart), 4) stop_mssg <- paste0( "At landmark time s = ", s, ", no individual has yet made it into state ", from, ". The first individual enters at t = ", first_entering, "." ) stop(stop_mssg) } } msdatas <- cutLMms(msdata, LM=s) msdatasfrom <- msdatas[msdatas$id %in% infrom, ] msdatasfrom$trans <- factor(msdatasfrom$trans) # Feed to coxph factor (for easier matching) c0 <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data=msdatasfrom) msf0 <- msfit(c0, trans=tmat) # Check if only subset of transitions left cond_subset_trans <- length(levels(msdatasfrom$trans)) < length(unique(msdata$trans)) if (cond_subset_trans) { # Prepare original levels and re-coded ones recoded_levels <- levels(factor(as.numeric(msdatasfrom$trans))) orig_levels <- as.numeric(c0$xlevels$`strata(trans)`) # Match in the msf0 object accordingly msf0$Haz$trans <- orig_levels[match(as.character(msf0$Haz$trans), recoded_levels)] msf0$varHaz$trans1 <- orig_levels[match(as.character(msf0$varHaz$trans1), recoded_levels)] msf0$varHaz$trans2 <- orig_levels[match(as.character(msf0$varHaz$trans2), recoded_levels)] } # The warning is just for not being able to calculate variance at landmark time, # see probtrans.R, line 172 pt0 <- probtrans(msf0, predt=s, method=method)[from] if (length(from) == 1) return(pt0[[1]]) else { xsss <- xss[xss$state %in% from, ] xsss$state <- factor(xsss$state, levels=from) tbl <- table(xsss$state) p <- tbl / sum(tbl) varp <- (diag(p) - p %*% t(p)) / sum(tbl) # Relying on fact that all items from list have exactly the same size and structure # and that the sum of p equals 1; sorry for the double for-loop res <- tmp1 <- tmp2 <- 0 for (j in 1:length(from)) { ptj <- pt0[[j]] res <- res + p[j] * ptj[, 1 + (1:K)] tmp2 <- tmp2 + p[j] * (1 - p[j]) * (ptj[, K+1 + (1:K)])^2 for (k in 1:length(from)) { ptk <- pt0[[k]] tmp1 <- tmp1 + varp[j,k] * ptj[, 1 + (1:K)] * ptk[, 1 + (1:K)] } } ses <- sqrt(tmp1 + tmp2) # take ptj as template and insert estimates and SE's pt <- ptj pt[, 1 + (1:K)] <- res pt[, K+1 + (1:K)] <- ses return(pt) } } mstate/R/summary.probtrans.R0000644000176200001440000002620014627637077015624 0ustar liggesusers#' Summary method for a probtrans object #' #' Summary method for an object of class 'probtrans'. It prints a selection of #' the estimated transition probabilities, and, if requested, also of the #' variances. #' #' @aliases summary.probtrans #' @param object Object of class 'probtrans', containing estimated transition #' probabilities from and to all states in a multi-state model #' @param times Time points at which to evaluate the transition probabilites #' @param from Specifies from which state the transition probabilities are to #' be printed. Should be subset of 1:S, with S the number of states in the #' multi-state model. Default is print from state 1 only. User can specify #' from=0 to print transition probabilities from all states #' @param to Specifies the transition probabilities to which state are to be #' printed. User can specify to=0 to print transition probabilities to all #' states. This is also the default #' @param variance Whether or not the standard errors of the estimated #' transition probabilities should be printed; default is \code{TRUE} #' @param conf.int The proportion to be covered by the confidence intervals, #' default is 0.95 #' @param conf.type The type of confidence interval, one of "log", "none", or #' "plain". Defaults to "log" #' @param extend logical value: if \code{TRUE}, prints information for all #' specified times, even if there are no subjects left at the end of the #' specified times. This is only valid if the times argument is present #' @param \dots Further arguments to print #' #' @return Function \code{summary.probtrans} returns an object of class #' "summary.probtrans", which is a list (for each \code{from} state) of #' transition probabilities at the specified (or all) time points. The #' \code{print} method of a \code{summary.probtrans} doesn't return a value. #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @seealso \code{\link{probtrans}} #' @keywords print #' @examples #' #' # First run the example of probtrans #' tmat <- trans.illdeath() #' tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,0,0,0),x2=c(6:1)) #' tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), #' data=tg,keep=c("x1","x2"),trans=tmat) #' tglong <- expand.covs(tglong,c("x1","x2")) #' cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), #' data=tglong,method="breslow") #' newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) #' HvH <- msfit(cx,newdata,trans=tmat) #' pt <- probtrans(HvH,predt=0) #' #' # Default, prediction from state 1 #' summary(pt) #' # Only from states 1 and 3 #' summary(pt, from=c(1, 3)) #' # Use from=0 for prediction from all states #' summary(pt, from=0) #' # Only to states 1 and 2 #' summary(pt, to=1:2) #' # Default is 95% confidence interval, change here to 90% #' summary(pt, to=1:2, conf.int=0.90) #' # Do not show variances (nor confidence intervals) #' summary(pt, to=1:2, variance=FALSE) #' # Transition probabilities only at specified time points #' summary(pt, times=seq(0, 15, by=3)) #' # Last specified time point is larger than last observed, not printed #' # Use extend=TRUE as in summary.survfit #' summary(pt, times=seq(0, 15, by=3), extend=TRUE) #' # Different types of confidence intervals, default is log #' summary(pt, times=seq(0, 15, by=3), conf.type="plain") #' summary(pt, times=seq(0, 15, by=3), conf.type="no") #' # When the number of time points specified is larger than 12, head and tail is shown #' x <- summary(pt, times=seq(5, 8, by=0.25)) #' x #' #' @export summary.probtrans <- function(object, times, from=1, to=0, variance=TRUE, conf.int=0.95, conf.type=c("log", "none", "plain"), extend=FALSE, ...) { if (!inherits(object, "probtrans")) stop("'object' must be a 'probtrans' object") conf.type <- match.arg(conf.type) if (!conf.type %in% c("log", "none", "plain")) stop("conf.type should be one of log, none, plain") trans <- object$trans S <- dim(trans)[1] tt <- unique(object[[1]]$time) # the time points nt <- length(tt) if (!all(from %in% 0:S)) stop("from should be either 0 (all states) or 1 to S (number of states)") if (!all(to %in% 0:S)) stop("to should be either 0 (all states) or 1 to S (number of states)") if (any(from == 0)) from <- 1:S if (any(to==0)) to <- 1:S cols <- 1 + to probcols <- cols if (variance & ncol(object[[1]]) == S+1) { warning("probtrans object does not contain standard errors, setting option variance to FALSE") variance <- FALSE } if (variance) { secols <- S + 1 + to cols <- c(cols, secols) if (missing(times)) { res <- list() for (k in from) { ptk <- object[[k]] res[[k]] <- ptk # Default in case of no confidence intervals if (!conf.type=="none") { if (conf.type=="plain") { lower <- ptk[, probcols] - qnorm(1 - (1-conf.int)/2) * ptk[, secols] upper <- ptk[, probcols] + qnorm(1 - (1-conf.int)/2) * ptk[, secols] lower[lower<0] <- 0 upper[upper>1] <- 1 } else if (conf.type=="log") { lower <- exp(log(ptk[, probcols]) - qnorm(1 - (1-conf.int)/2) * ptk[, secols] / ptk[, probcols]) upper <- exp(log(ptk[, probcols]) + qnorm(1 - (1-conf.int)/2) * ptk[, secols] / ptk[, probcols]) lower[lower<0] <- 0 upper[upper>1] <- 1 lower[ptk[, secols]==0] <- ptk[, probcols][ptk[, secols]==0] upper[ptk[, secols]==0] <- ptk[, probcols][ptk[, secols]==0] } dfr <- cbind(ptk$time, ptk[, c(probcols, secols)], lower, upper) names(dfr)[1] <- "time" names(dfr)[2 * length(to) + 1 + (1:length(to))] <- paste("lower", to, sep="") names(dfr)[3 * length(to) + 1 + (1:length(to))] <- paste("upper", to, sep="") } else { dfr <- cbind(ptk$time, ptk[, c(probcols, secols)]) names(dfr)[1] <- "time" } res[[k]] <- dfr } } else { if (!extend) { times <- times[times<=max(tt)] } res <- list() for (k in from) { ptk <- object[[k]] dfr <- matrix(NA, length(times), 1 + length(cols)) dfr[, 1] <- times for (i in 1:length(cols)) dfr[, 1 + i] <- approx(x=tt, y=ptk[, cols[i]], xout=times, f=0, method="constant", rule=2)$y dfr <- as.data.frame(dfr) names(dfr) <- c("times", names(ptk)[cols]) probcols <- 1 + (1:length(to)) secols <- length(to) + 1 + (1:length(to)) # confidence intervals uitrekenen if (!conf.type=="none") { if (conf.type=="plain") { lower <- dfr[, probcols] - qnorm(1 - (1-conf.int)/2) * dfr[, secols] upper <- dfr[, probcols] + qnorm(1 - (1-conf.int)/2) * dfr[, secols] lower[lower<0] <- 0 upper[upper>1] <- 1 } else if (conf.type=="log") { lower <- exp(log(dfr[, probcols]) - qnorm(1 - (1-conf.int)/2) * dfr[, secols] / dfr[, probcols]) upper <- exp(log(dfr[, probcols]) + qnorm(1 - (1-conf.int)/2) * dfr[, secols] / dfr[, probcols]) lower[lower<0] <- 0 upper[upper>1] <- 1 lower[dfr[, secols]==0] <- dfr[, probcols][dfr[, secols]==0] upper[dfr[, secols]==0] <- dfr[, probcols][dfr[, secols]==0] } dfr <- cbind(dfr, lower, upper) names(dfr)[2 * length(to) + 1 + (1:length(to))] <- paste("lower", to, sep="") names(dfr)[3 * length(to) + 1 + (1:length(to))] <- paste("upper", to, sep="") } res[[k]] <- dfr } } } else { if (missing(times)) { res <- list() for (k in from) { ptk <- object[[k]] res[[k]] <- ptk # Default in case of no confidence intervals dfr <- cbind(ptk$time, ptk[, probcols]) names(dfr)[1] <- "time" res[[k]] <- dfr } } else { if (!extend) { times <- times[times<=max(tt)] } res <- list() for (k in from) { ptk <- object[[k]] dfr <- matrix(NA, length(times), 1 + length(cols)) dfr[, 1] <- times for (i in 1:length(cols)) dfr[, 1 + i] <- approx(x=tt, y=ptk[, cols[i]], xout=times, f=0, method="constant", rule=2)$y dfr <- as.data.frame(dfr) names(dfr) <- c("times", names(ptk)[cols]) probcols <- 1 + (1:length(to)) res[[k]] <- dfr } } } attr(res, "from") <- from class(res) <- "summary.probtrans" return(res) } #' Print method for a summary.probtrans object #' #' @param x Object of class 'summary.probtrans', to be printed #' @param complete Whether or not the complete estimated transition #' probabilities should be printed (\code{TRUE}) or not (\code{FALSE}); default #' is \code{FALSE}, in which case the estimated transition probilities will be #' printed for the first and last 6 time points of each starting state or of #' the selected times (or all when there are at most 12 of these time points #' @param \dots Further arguments to print #' #' @aliases print.summary.probtrans #' #' @examples #' #' \dontrun{ #' # If all time points should be printed, specify complete=TRUE in the print statement #' print(x, complete=TRUE) #' } #' #' @export print.summary.probtrans <- function(x, complete=FALSE, ...) { if (!inherits(x, "summary.probtrans")) stop("'x' must be a 'summary.probtrans' object") from <- attr(x, "from") tt <- unique(x[[1]]$time) # the time points nt <- length(tt) if (nt<=12 | complete) { for (k in from) { cat("\nPrediction from state", k, ":\n") ptk <- x[[k]] print(ptk, ...) } } else { for (k in from) { cat("\nPrediction from state", k, "(head and tail):\n") ptk <- x[[k]] print(head(ptk), ...) cat("\n...\n") print(tail(ptk), ...) } } return(invisible()) } mstate/R/print.Cuminc.R0000644000176200001440000000023514627637077014467 0ustar liggesusers#' @export print.Cuminc <- function(x, ...) { if (!inherits(x, "Cuminc")) stop("'x' must be a 'Cuminc' object") print(as.data.frame(x)) } mstate/R/plot.Cuminc.R0000644000176200001440000000677614627637077014331 0ustar liggesusers#' Plot method for Cuminc objects #' #' Plot the estimates of the non-parametric Aalen-Johansen estimate of the #' cumulative incidence functions (competing risks data). Note this is a method #' for \code{mstate::Cuminc} and not \code{cmprsk::cuminc}. Both return the same #' estimates, though the former does so in a dataframe, and the latter in the list. #' #' Grouped cumulative incidences can be plotted either in the same plot or in facets, #' see the \code{facet} argument. #' #' @param x Object of class \code{"Cuminc"} to be printed or plotted #' @inheritParams plot.probtrans #' @param legend Character vector corresponding to number of absorbing states. #' In case of a grouped \code{"Cuminc"} object, with facet = FALSE the #' length of the vector is number absorbing states * group levels. #' Only relevant when use.ggplot = TRUE #' @param facet Logical, in case of group used for \code{"Cuminc"}, facet by it - #' only relevant when use.ggplot = TRUE #' @param cols Vector (numeric or character) specifying colours of the lines #' @param \dots Further arguments to plot or print method #' #' @return A ggplot object if use.ggplot = T used, otherwise NULL. #' #' @author Edouard F. Bonneville \email{e.f.bonneville@@lumc.nl} #' #' @examples #' library(ggplot2) #' #' data("aidssi") #' head(aidssi) #' si <- aidssi #' #' # No grouping #' cum_incid <- Cuminc( #' time = "time", #' status = "status", #' data = si #' ) #' #' plot( #' x = cum_incid, #' use.ggplot = TRUE, #' conf.type = "none", #' lty = 1:2, #' conf.int = 0.95 #' ) #' #' # With grouping #' cum_incid_grp <- Cuminc( #' time = "time", #' status = "status", #' group = "ccr5", #' data = si #' ) #' #' plot( #' x = cum_incid_grp, #' use.ggplot = TRUE, #' conf.type = "none", #' lty = 1:4, #' facet = TRUE #' ) #' #' @export plot.Cuminc <- function(x, use.ggplot = FALSE, xlab = "Time", ylab = "Probability", xlim, ylim, lty, legend, cols, conf.type = c("log", "plain", "none"), conf.int = 0.95, legend.pos = "right", facet = FALSE, ...) { if (!inherits(x, "Cuminc")) stop("'x' must be a 'Cuminc' object") # Ggplot version if (use.ggplot) { # Check for ggplot2 if (!requireNamespace("ggplot2", quietly = TRUE)) { stop("Package ggplot2 needed for this function to work. Please install it.", call. = FALSE) } conf.type <- match.arg(conf.type) p <- ggplot.Cuminc( x = x, xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lty = lty, legend = legend, cols = cols, conf.type = conf.type, conf.int = conf.int, legend.pos = legend.pos, facet = facet ) return(p) } else { # Set up base R arguments base_args <- list(..., "conf.int" = conf.int, "xlab" = xlab, "ylab" = ylab) survfit_obj <- attr(x, "survfit") base_args$x <- survfit_obj if (!missing(cols)) base_args$col <- cols if (!missing(lty)) base_args$lty <- lty if (!missing(xlim)) base_args$xlim <- xlim if (!missing(ylim)) base_args$ylim <- ylim # Call plot.survfit do.call("plot", args = base_args) } } mstate/R/imports.R0000644000176200001440000000073014627637077013613 0ustar liggesusers#' @import survival #' @importFrom data.table .N `:=` .SD #' @importFrom rlang .data #' @importFrom graphics box lines par plot polygon text title #' @importFrom stats as.formula delete.response model.frame model.matrix #' model.offset model.response rnorm terms time aggregate approxfun #' quantile rpois weighted.mean approx qnorm #' @importFrom utils flush.console head tail #' @importFrom lattice xyplot #' #' @useDynLib mstate, .registration=TRUE NULLmstate/R/print.msdata.R0000644000176200001440000000320314627637077014520 0ustar liggesusers#' Print method for a msdata object #' #' Print method for an object of class 'msdata' #' #' #' @param x Object of class 'msdata', as prepared for instance by #' \code{\link{msprep}} #' @param trans Boolean specifying whether or not the transition matrix should #' be printed as well; default is \code{FALSE} #' @param \dots Further arguments to print #' @return No return value #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @seealso \code{\link{probtrans}} #' @keywords hplot #' @examples #' #' # transition matrix for illness-death model #' tmat <- trans.illdeath() #' # some data in wide format #' tg <- data.frame(stt=rep(0,6),sts=rep(0,6), #' illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,2,2,2),x2=c(6:1)) #' tg$x1 <- factor(tg$x1,labels=c("male","female")) #' tg$patid <- factor(2:7,levels=1:8,labels=as.character(1:8)) #' # define time, status and covariates also as matrices #' tt <- matrix(c(rep(NA,6),tg$illt,tg$dt),6,3) #' st <- matrix(c(rep(NA,6),tg$ills,tg$ds),6,3) #' keepmat <- data.frame(gender=tg$x1,age=tg$x2) #' # data in long format using msprep #' msp <- msprep(time=tt,status=st,trans=tmat,keep=as.matrix(keepmat)) #' print(msp) #' print(msp, trans=TRUE) #' #' @export print.msdata <- function(x,trans=FALSE,...) { if (!inherits(x, "msdata")) stop("'x' must be an 'msdata' object") cat("An object of class 'msdata'\n\nData:\n") print.data.frame(x) if (trans) { trans <- attr(x, "trans") cat("\nTransition matrix:\n") print(trans) } return(invisible()) } mstate/R/crprep.R0000644000176200001440000005206514627637077013421 0ustar liggesusers#' Function to create weighted data set for competing risks analyses #' #' This function converts a dataset that is in short format (one subject per #' line) into a counting process format with time-varying weights that correct #' for right censored and left truncated data. With this data set, analyses #' based on the subdistribution hazard can be performed. #' #' For each event type as specified via \code{trans}, individuals with a #' competing event remain in the risk set with weights that are determined by #' the product-limit forms of the time-to-censoring and time-to-entry #' estimates. Typically, their weights change over follow-up, and therefore #' such individuals are split into several rows. Censoring weights are always #' computed. Truncation weights are computed only if \code{Tstart} is #' specified. #' #' If several event types are specified at once, regression analyses using the #' stacked format data set can be performed (see Putter et al. 2007 and Chapter #' 4 in Geskus 2016). The data set can also be used for a regression on the #' cause-specific hazard by restricting to the subset \code{subset=count==0}. #' #' Missing values are allowed in \code{Tstop}, \code{status}, \code{Tstart}, #' \code{strata} and \code{keep}. Rows for which \code{Tstart} or \code{Tstart} #' is missing are deleted. #' #' There are two ways to supply the data. If given "by value" (option 1), the #' actual data vectors are used. If given "by name" (option 2), the column #' names are specified, which are read from the data set in \code{data}. In #' general, the second option is preferred. #' #' If data are given by value, the following holds for the naming of the #' columns in the output data set. If \code{keep}, \code{strata} or \code{id} #' is a vector from a (sub)-list, e.g. obj$name2$name1, then the column name is #' based on the most inner part (i.e.\ "name1"). If it is a vector of the form #' obj[,"name1"], then the column is named "name1". For all other vector #' specifications, the name is copied as is. If \code{keep} is a data.frame or #' a named matrix, the same names are used for the covariate columns in the #' output data set. If keep is a matrix without names, then the covariate #' columns are given the names "V1" until "Vk". #' #' The current function does not allow to create a weighted data set in which #' the censoring and/or truncation mechanisms depend on covariates via a #' regression model. #' #' @aliases crprep crprep.default #' @param Tstop Either 1) a vector containing the time at which the follow-up #' is ended, or 2) a character string indicating the column name in \code{data} #' that contains the end times (see Details). #' @param status Either 1) a vector describing status at end of follow-up, #' having the same length as \code{Tstop}, or 2) a character string indicating #' the column name that contains this information. #' @param data Data frame in which to interpret \code{Tstart}, \code{status}, #' \code{Tstart}, \code{id}, \code{strata} and \code{keep}, if given as #' character value (specification 2, "by name"). #' @param trans Values of \code{status} for which weights are to be calculated. #' @param cens Value that denotes censoring in \code{status} column. #' @param Tstart Either 1) a vector containing the time at which the follow-up #' is started, having the same length as \code{Tstop}, or 2) a character string #' indicating the column name that contains the entry times, or 3) one numeric #' value in case it is the same for every subject. Default is 0. #' @param id Either 1) a vector, having the same length as \code{Tstop}, #' containing the subject identifiers, or 2) a character string indicating the #' column name containing these subject identifiers. If not provided, a column #' \code{id} is created with subjects having values 1,...,n. #' @param strata Either 1) a vector of the same length as \code{Tstop}, or 2) a #' character string indicating the column name that contains this information. #' Weights are calculated for per value in this vector. #' @param keep Either 1) a data frame or matrix or a numeric or factor vector #' containing covariate(s) that need to be retained in the output dataset. #' Number of rows/length should correspond with \code{Tstop}, or 2) a character #' vector containing the column names of these covariates in \code{data}. #' @param shorten Logical. If true, number of rows in output is reduced by #' collapsing rows within a subject in which weights do not change. #' @param rm.na Logical. If true, rows for which \code{status} is missing are #' deleted. #' @param origin Substract origin time units from all Tstop and Tstart times. #' @param prec.factor Factor by which to multiply the machine's precision. #' Censoring and truncation times are shifted by prec.factor*precision if event #' times and censoring/truncation times are equal. #' @param \dots Further arguments to be passed to or from other methods. They #' are ignored in this function. #' #' @return A data frame in long (counting process) format containing the #' covariates (replicated per subject). The following column names are used: #' \item{Tstart}{start dates of dataset} \item{Tstop}{stop dates of dataset} #' \item{status}{status of the subject at the end of that row} #' \item{weight.cens}{weights due to censoring mechanism} #' \item{weight.trunc}{weights due to truncation mechanism (if present)} #' \item{count}{row number within subject and event type under consideration} #' \item{failcode}{event type under consideration} #' #' The first column is the subject identifier. If the argument "id" is missing, #' it has values 1:n and is named "id". Otherwise the information is taken from #' the \code{id} argument. #' #' Variables as specified in \code{strata} and/or \code{keep} are included as #' well (see Details). #' @author Ronald Geskus #' @references Geskus RB (2011). Cause-Specific Cumulative Incidence Estimation #' and the Fine and Gray Model Under Both Left Truncation and Right Censoring. #' \emph{Biometrics} \bold{67}, 39--49. #' #' Geskus, Ronald B. (2016). \emph{Data Analysis with Competing Risks and #' Intermediate States.} CRC Press, Boca Raton. #' #' Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing #' risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, #' 2389--2430. #' @keywords datagen survival #' @examples #' #' data(aidssi) #' aidssi.w <- crprep("time", "cause", data=aidssi, trans=c("AIDS","SI"), #' cens="event-free", id="patnr", keep="ccr5") #' #' # calculate cause-specific cumulative incidence, no truncation, #' # compare with Cuminc (also from mstate) #' ci <- Cuminc(aidssi$time, aidssi$status) #' sf <- survfit(Surv(Tstart,Tstop,status=="AIDS")~1, data=aidssi.w, #' weight=weight.cens, subset=failcode=="AIDS") #' plot(sf, fun="event", mark.time=FALSE) #' lines(CI.1~time,data=ci,type="s",col="red") #' sf <- survfit(Surv(Tstart,Tstop,status=="SI")~1, data=aidssi.w, #' weight=weight.cens, subset=failcode=="SI") #' plot(sf, fun="event", mark.time=FALSE) #' lines(CI.2~time,data=ci,type="s",col="red") #' #' # Fine and Gray regression for cause 1 #' cw <- coxph(Surv(Tstart,Tstop,status=="AIDS")~ccr5, data=aidssi.w, #' weight=weight.cens, subset=failcode=="AIDS") #' cw #' # This can be checked with the results of crr (cmprsk) #' # crr(ftime=aidssi$time, fstatus=aidssi$status, cov1=as.numeric(aidssi$ccr5)) #' #' # Gray's log-rank test #' aidssi.wCCR <- crprep("time", "cause", data=aidssi, trans=c("AIDS","SI"), #' cens="event-free", id="patnr", strata="ccr5") #' test.AIDS <- coxph(Surv(Tstart,Tstop,status=="AIDS")~ccr5, data=aidssi.wCCR, #' weights=weight.cens, subset=failcode=="AIDS") #' test.SI <- coxph(Surv(Tstart,Tstop,status=="SI")~ccr5, data=aidssi.wCCR, #' weights=weight.cens, subset=failcode=="SI") #' ## score test statistic and p-value #' c(test.AIDS$score, 1-pchisq(test.AIDS$score,1)) # AIDS #' c(test.SI$score, 1-pchisq(test.SI$score,1)) # SI #' # This can be compared with the results of cuminc (cmprsk) #' # with(aidssi, cuminc(time, status, group=ccr5)$Tests) #' # Note: results are not exactly the same #' #' @export crprep.default <- function(Tstop, status, data, trans=1, cens=0, Tstart=0, id, strata, keep, shorten=TRUE, rm.na=TRUE, origin=0, prec.factor=1000, ...) { # Coerce data to data.frame if given (from tibble/data.table) if (!missing(data)) data <- as.data.frame(data) ## Extract Tstop data if given by column name if (!(is.numeric(Tstop))) { if (!is.character(Tstop) | length(Tstop)!=1) stop("argument \"Tstop\" should be a numeric vector or a character string") if (missing(data)) stop("missing \"data\" argument not allowed when \"Tstop\" argument is a character string") tcol <- match(Tstop, names(data)) if (is.na(tcol)) stop("\"Tstop\" not found in data") Tstop <- data[, tcol] } else { if (!is.vector(Tstop)) stop("argument should be a numeric vector or a character string") } nn <- length(Tstop) ## Extract Tstart data if given by column name if (is.numeric(Tstart)&length(Tstart) == 1) { Tstart <- rep(Tstart, nn) } else { if (!(is.numeric(Tstart))) { if (!is.character(Tstart) | length(Tstart)!=1) stop("argument \"Tstart\" should be a numeric vector or a character string") if (missing(data)) stop("missing \"data\" argument not allowed when \"Tstart\" argument is a character string") tcol <- match(Tstart, names(data)) if (is.na(tcol)) stop("\"Tstart\" not found in data") Tstart <- data[, tcol] } else { if (!is.vector(Tstart)) stop("argument should be a numeric vector or a character string") } } if (length(Tstart) != nn) stop("Tstop and Tstart have different lengths") ## Check whether Tstart is needed calc.trunc <- any(Tstart[!is.na(Tstart)] != 0) ## Select rows without missing time value sel <- !is.na(Tstart) & !is.na(Tstop) if (any(Tstart[sel] >= Tstop[sel])) stop("Tstop must be greater than Tstart") ## Extract status data if given by column name if (length(status) == 1) { if (!is.character(status)) stop("argument \"status\" should be a vector or a character string") if (missing(data)) stop("missing \"data\" argument not allowed when \"status\" argument is a character string") tcol <- match(status, names(data)) if (is.na(tcol)) stop("\"status\" not found in data") status <- data[ ,tcol] } if (length(status) != nn) stop("Tstop and status have different lengths") ## Extract strata data; value 1 if not specified if (missing(strata)) { strata.val <- rep(1,nn) } else { if (is.matrix(strata) | is.data.frame(strata)) stop("only one variable is allowed in \"strata\"") if (!(is.vector(as.numeric(factor(strata))) & length(strata) > 1)) { if (!is.character(strata)) stop("argument \"strata\" should be a character string") if (missing(data)) stop("missing \"data\" argument not allowed when \"strata\" argument is a character string") tcol <- match(strata, names(data)) if (is.na(tcol)) stop("\"strata\" not found in data") strata.name <- strata strata.val <- data[ ,tcol] } else { if (length(strata) != nn) stop("Tstop and strata have different lengths") strata.name <- names(strata) strata.val <- strata } } strata.num <- as.numeric(factor(strata.val)) ## Extract id data; values 1:nn if not specified if (missing(id)) { id.name <- "id" id <- num.id <- 1:nn } else { if (is.matrix(id) | is.data.frame(id)) stop("only one variable is allowed in \"id\"") if (!(is.vector(id) & length(id) > 1)) { # by name if (!is.character(id)) stop("argument \"id\" should be a character string") if (missing(data)) stop("missing \"data\" argument not allowed when \"id\" argument is a character string") tcol <- match(id, names(data)) if (is.na(tcol)) stop("\"id\" not found in data") id.name <- id num.id <- 1:nn id <- data[, tcol] } else { # by value if (length(id) != nn) stop("Tstop and id have different lengths") id.name <- names(id) num.id <- 1:nn } } ## Eliminate records with missings in status if rm.na=TRUE if(rm.na) sel <- sel & !is.na(status) Tstart <- Tstart[sel] Tstop <- Tstop[sel] status <- status[sel] strata.val <- strata.val[sel] strata.num <- strata.num[sel] id <- id[sel] num.id <- num.id[sel] n <- length(Tstop) ## Extract covariate data if(!missing(keep)) { if (!(is.matrix(keep) | is.data.frame(keep))) { if (is.character(keep)) { # if given by column name if (missing(data)) stop("missing \"data\" argument not allowed when \"keep\" argument is a character vector") nkeep <- length(keep) kcols <- match(keep, names(data)) if (any(is.na(kcols))) stop("at least one element of \"keep\" not found in data") keep.name <- keep keep <- data[, kcols] } else { # if one column, given by value nkeep <- 1 ## keep.name <- names(as.data.frame(keep)) keep.name <- names(keep) ## if(is.null(keep.name)) keep.name <- "V1" if (length(keep) != nn) stop("Tstop and keep have different lengths") } } else { # if a matrix/data.frame nkeep <- ncol(keep) if(is.data.frame(keep)){ keep.name <- names(keep) } else { keep.name <- colnames(keep) if(is.null(keep.name)) keep.name <- paste("V",1:nkeep,sep="") } if (nrow(keep) != nn) stop("length Tstop and number of rows in keep are differents") if (nkeep == 1) keep <- keep[, 1] } } Tstart <- Tstart - origin Tstop <- Tstop - origin ## Start calculations prec <- .Machine$double.eps*prec.factor ## Calculate product-limit time-to-censoring distribution, "event" not included in case of ties surv.cens <- survival::survfit(Surv(Tstart,Tstop+ifelse(status==cens,prec,0),status==cens)~strata.num) ## Calculate time to entry (left truncation) distribution at t-, use 2*prec in order to exclude censorings at same time if(calc.trunc) surv.trunc <- survival::survfit(Surv(-Tstop,-(Tstart+2*prec),rep(1,n))~strata.num) ## trunc.dist <- summary(surv.trunc) ## trunc.dist$time <- rev(-trunc.dist$time)-prec ## trunc.dist$surv <- c(rev(trunc.dist$surv)[-1],1) ## Create weighted data set for each event type as specified in trans data.out <- vector("list",length(trans)) i.list <- 1 strat <- sort(unique(strata.num),na.last=TRUE) len.strat <- length(strat) ## Start weight calculation per event type for(failcode in trans) { if(len.strat==1){ # no strata data.weight <- create.wData.omega(Tstart, Tstop, status, num.id, 1, failcode, cens) tmp.time <- data.weight$Tstop data.weight$weight.cens[order(tmp.time)] <- summary(surv.cens, times=tmp.time-prec)$surv if(calc.trunc) data.weight$weight.trunc[order(-tmp.time)] <- summary(surv.trunc, times=-tmp.time)$surv } else { data.weight <- vector("list",len.strat) if(is.na(strat[len.strat])) { tmp.sel <- is.na(strata.num) data.weight[[len.strat]] <- data.frame(id=num.id[tmp.sel], Tstart=Tstart[tmp.sel], Tstop=Tstop[tmp.sel], status=status[tmp.sel], strata=NA, weight.cens=NA) if(calc.trunc) data.weight[[len.strat]]$weight.trunc <- NA } for(tmp.strat in 1:(len.strat-is.na(strat[len.strat]))){ tmp.sel <- !is.na(strata.num) & strata.num==tmp.strat data.weight[[tmp.strat]] <- create.wData.omega(Tstart[tmp.sel], Tstop[tmp.sel], status[tmp.sel], num.id[tmp.sel], tmp.strat, failcode, cens) tmp.time <- data.weight[[tmp.strat]]$Tstop data.weight[[tmp.strat]]$weight.cens[order(tmp.time)] <- summary(surv.cens[tmp.strat], times=tmp.time-prec)$surv if(calc.trunc) data.weight[[tmp.strat]]$weight.trunc[order(-tmp.time)] <- summary(surv.trunc[tmp.strat], times=-tmp.time)$surv } data.weight <- do.call("rbind", data.weight) } ## Calculate omega-censoring weights data.weight <- data.weight[order(data.weight$id,data.weight$Tstop), ] data.weight$weight.cens <- unlist(tapply(data.weight$weight.cens, data.weight$id, FUN=function(x) if(length(x)==1&!is.na(x[1])) 1 else x/x[1])) ## Calculate omega-truncation weights if(calc.trunc) { data.weight$weight.trunc <- unlist(tapply(data.weight$weight.trunc, data.weight$id, FUN=function(x) if(length(x)==1&!is.na(x[1])) 1 else x/x[1])) } tbl <- table(data.weight$id) ## Add covariates if(!missing(keep)) { ## Extract covariate name from function if (is.null(keep.name)) { m <- match.call(expand.dots = FALSE) m <- m[match("keep", names(m))] if(!is.null(m)) { keep.name <- as.character(m[1]) keep.name.split <- strsplit(keep.name, '')[[1]] tag <- which(keep.name.split == '$') if(length(tag) != 0) { keep.name <- substring(keep.name, tag[length(tag)]+1) } else { tag <- which(keep.name.split == '"') if(length(tag) != 0) { keep.name <- substring(keep.name, tag[1]+1, tag[2]-1) } } } } ## Add covariates to the resultset if (nkeep > 0) { if (nkeep == 1) { keep <- keep[sel] ddcovs <- rep(keep, tbl) ddcovs <- as.data.frame(ddcovs) names(ddcovs) <- as.character(keep.name) } else { keep <- keep[sel, ] ddcovs <- lapply(1:nkeep, function(i) rep(keep[, i], tbl)) ddcovs <- as.data.frame(ddcovs) names(ddcovs) <- keep.name } data.weight <- cbind(data.weight, ddcovs) } } ## Shorten data set by combining rows with event types without censoring or truncation time in between if (shorten) { if(calc.trunc) { keep.rows <- with(data.weight, c(diff(id)!=0 | diff(weight.cens)!=0 | diff(weight.trunc)!=0, TRUE)) } else { keep.rows <- with(data.weight, c(diff(id)!=0 | diff(weight.cens)!=0, TRUE)) } ## First record always included as separate row in order to allow for CSH analysis keep.rows[unlist(mapply(seq,1,tbl))==1] <- TRUE keep.start <- data.weight$Tstart[unlist(tapply(keep.rows, data.weight$id, FUN=function(x) if(length(x)==1) x else c(TRUE,x[-length(x)])))] data.weight <- data.weight[keep.rows,] data.weight$Tstart <- keep.start } ## Recalculate tbl after shorten tbl <- table(data.weight$id) ## Add count data.weight$count <- unlist(mapply(seq,1,tbl)) data.weight$failcode <- failcode ## Return to original id data.weight$id <- rep(id,tbl) data.out[[i.list]] <- data.weight i.list <- i.list+1 } out <- do.call("rbind", data.out) if(!missing(strata)) { ## Extract strata name if given by value if (is.null(strata.name)) { m <- match.call(expand.dots = FALSE) m <- m[match("strata", names(m))] if(!is.null(m)) { strata.name <- as.character(m[1]) strata.name.split <- strsplit(strata.name, '')[[1]] tag <- which(strata.name.split == '$') if(length(tag) != 0) { strata.name <- substring(strata.name, tag[length(tag)]+1) } else { tag <- which(strata.name.split == '"') if(length(tag) != 0) { strata.name <- substring(strata.name, tag[1]+1, tag[2]-1) } } } } ## Use original stratum values if(is.factor(strata.val)) { out$strata <- factor(out$strata, labels=levels(strata.val)) } else { out$strata <- levels(factor(strata.val))[out$strata] if(is.numeric(strata.val)) out$strata <- as.numeric(out$strata) } ## Use original name of column tmp.sel <- match("strata", names(out)) names(out)[tmp.sel] <- strata.name } else { out$strata <- NULL } if (is.null(id.name)) { m <- match.call(expand.dots = FALSE) m <- m[match("id", names(m))] if(!is.null(m)) { id.name <- as.character(m[1]) id.name.split <- strsplit(id.name, '')[[1]] tag <- which(id.name.split == '$') if(length(tag) != 0) { id.name <- substring(id.name, tag[length(tag)]+1) } else { tag <- which(id.name.split == '"') if(length(tag) != 0) { id.name <- substring(id.name, tag[1]+1, tag[2]-1) } } } } row.names(out) <- as.character(1:nrow(out)) names(out)[1] <- id.name class(out) <- c("crprep","data.frame") return(out) } #' @inheritParams crprep.default #' @export crprep <- function(Tstop, ...) UseMethod("crprep") mstate/R/trans.R0000644000176200001440000000153114627637077013245 0ustar liggesusers#' @export `trans.comprisk` <- function(K, names) { tmat <- matrix(NA, K+1, K+1) tmat[1, 2:(K+1)] <- 1:K if (missing(names)) names <- c("eventfree",paste("cause",1:K,sep="")) else { if (length(names)==K) names <- c("eventfree",names) else { if (length(names) != K+1) stop("incorrect length of \"names\" argument") } } dimnames(tmat) <- list(from=names, to=names) return(tmat) } #' @export `trans.illdeath` <- function(names) { tmat <- matrix(NA, 3, 3) tmat[1, 2:3] <- 1:2 tmat[2, 3] <- 3 if (missing(names)) names <- c("healthy","illness","death") else { if (length(names)!=3) stop("incorrect length of \"names\" argument") } dimnames(tmat) <- list(from=names, to=names) return(tmat) } mstate/R/create.wData.omega.R0000644000176200001440000000352714627637077015516 0ustar liggesuserscreate.wData.omega <- function(Tstart, Tstop, status, id, stratum, failcode, cens){ ## Function to create framework for dataset in which individuals are reweighted after they ## experience a competing event, the omega-weights in Geskus (2015) event.times <- sort(unique(Tstop[status==failcode])) n <- length(Tstop) Nw <- rep(1,n) sel.compet <- (status!=cens)&(status!=failcode)&!is.na(status) ## Number of rows in dataset with weights Nw[sel.compet] <- apply(outer(Tstop[sel.compet],event.times,"<"), 1, sum)+1 data.weight <- data.frame(id=rep(id,Nw), Tstart=NA, Tstop=NA, status=rep(status,Nw), strata=rep(stratum,sum(Nw))) data.weight$Tstart <- unlist(lapply(1:n, FUN=function(x,tms,N) { if (N[x]==1) { Tstart[x] } else { if (N[x]==2) { c(Tstart[x],Tstop[x]) } else { c(Tstart[x], Tstop[x], rev(rev(tms)[2:(N[x]-1)])) } } }, tms=event.times, N=Nw)) data.weight$Tstop <- unlist(lapply(1:n, FUN=function(x,tms,N) { if (N[x]==1) { Tstop[x] } else { c(Tstop[x], tail(tms,N[x]-1)) } }, tms=event.times, N=Nw)) data.weight } mstate/R/misc.R0000644000176200001440000000264314627637077013056 0ustar liggesusers`NAfix` <- function(x, subst=-Inf) { ### Written by Christian Hoffmann; propagate last known non-NA value ### Input: ### x: numeric vector ### subst: scalar inidicating which value should replace NA ### if x starts with a series of NA's ### Output: ### (numeric) vector, with NA's replaced by last known non-NA value, ### or 'subst' spec <- max(x[!is.na(x)])+1 x <- c(spec,x) while (any(is.na(x))) x[is.na(x)] <- x[(1:length(x))[is.na(x)]-1] x[x==spec] <- subst x <- x[-1] x } `my.rbind` <- function(mat1, mat2) { ### rbind "extended" to bind matrices with differing number of columns m <- max(ncol(mat1), ncol(mat2)) if (ncol(mat1)LM,] msdata$Tstart[msdata$Tstartcens] <- 0 msdata$Tstop[msdata$Tstop>cens] <- cens msdata <- msdata[msdata$Tstop>=msdata$Tstart,] } msdata$time <- msdata$Tstop - msdata$Tstart attr(msdata, "trans") <- tmat return(msdata) } mstate/R/plot.probtrans.R0000644000176200001440000002624414627637077015115 0ustar liggesusersfillplot <- function(x,y1,y2,col,lwd) # y2>y1, x (ascending order), y1, y2 same length, added to existing plot, intended for type="s" { nx <- length(x) # add mini-bit of space, this is to incorporate the possibility of a jump at the end x <- c(x, x[nx]+0.1*diff(range(x))) xx <- c(rep(x,c(1,rep(2,nx-1),1)),rep(rev(x),c(1,rep(2,nx-1),1))) yy <- c(rep(y1,rep(2,nx)),rep(rev(y2),rep(2,nx))) polygon(xx,yy,col=col,lwd=lwd) } #' Plot method for a probtrans object #' #' Plot method for an object of class 'probtrans'. It plots the transition #' probabilities as estimated by \code{\link{probtrans}}. #' #' Regarding confidence intervals: let \eqn{p} denote a predicted probability, #' \eqn{\sigma} its estimated standard error, #' and \eqn{z_{\alpha/2}} denote the critical value of the standard normal #' distribution at confidence level \eqn{1 - \alpha}. #' #' The confidence interval of type "plain" is then #' \deqn{p \pm z_{\alpha/2} * \sigma} #' #' The confidence interval of type "log", based on the Delta method, is then #' \deqn{\exp(\log(p) \pm z_{\alpha/2} * \sigma / p)} #' #' @param x Object of class 'probtrans', containing estimated transition #' probabilities #' @param from The starting state from which the probabilities are used to plot #' @param type One of \code{"stacked"} (default), \code{"filled"}, #' \code{"single"} or \code{"separate"}; in case of \code{"stacked"}, the #' transition probabilities are stacked and the distance between two adjacent #' curves indicates the probability, this is also true for \code{"filled"}, but #' the space between adjacent curves are filled, in case of \code{"single"}, #' the probabilities are shown as different curves in a single plot, in case of #' \code{"separate"}, separate plots are shown for the estimated transition #' probabilities #' @param ord A vector of length equal to the number of states, specifying the #' order of plotting in case type=\code{"stacked"} or \code{"filled"} #' @param cols A vector specifying colors for the different transitions; #' default is a palette from green to red, when type=\code{"filled"} (reordered #' according to \code{ord}, and 1 (black), otherwise #' @param xlab A title for the x-axis; default is \code{"Time"} #' @param ylab A title for the y-axis; default is \code{"Probability"} #' @param xlim The x limits of the plot(s), default is range of time #' @param ylim The y limits of the plot(s); if ylim is specified for #' type="separate", then all plots use the same ylim for y limits #' @param lwd The line width, see \code{\link{par}}; default is 1 #' @param lty The line type, see \code{\link{par}}; default is 1 #' @param cex Character size, used in text; only used when #' type=\code{"stacked"} or \code{"filled"} #' @param legend Character vector of length equal to the number of transitions, #' to be used in a legend; if missing, numbers will be used; this and the #' legend arguments following are ignored when type="separate" #' @param legend.pos The position of the legend, see \code{\link{legend}}; #' default is \code{"topleft"} #' @param bty The box type of the legend, see \code{\link{legend}} #' @param xaxs See \code{\link{par}}, default is "i", for type=\code{"stacked"} #' @param yaxs See \code{\link{par}}, default is "i", for type=\code{"stacked"} #' @param use.ggplot Default FALSE, set TRUE for ggplot version of plot #' @param conf.int Confidence level (\%) from 0-1 for probabilities, #' default is 0.95 (95\% CI). Setting to 0 removes the CIs. #' @param conf.type Type of confidence interval - either "log" or "plain" . See #' function details for details. #' @param label Only relevant for type = "filled" or "stacked", set to #' "annotate" to have state labels on plot, or leave unspecified. #' @param \dots Further arguments to plot #' #' @return No return value #' #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @author Edouard F. Bonneville \email{e.f.bonneville@@lumc.nl} #' #' @seealso \code{\link{probtrans}} #' @keywords hplot #' @examples #' #' # transition matrix for illness-death model #' tmat <- trans.illdeath() #' # data in wide format, for transition 1 this is dataset E1 of #' # Therneau and Grambsch (2000) #' tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,0,0,0),x2=c(6:1)) #' # data in long format using msprep #' tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), #' data=tg,keep=c("x1","x2"),trans=tmat) #' # events #' events(tglong) #' table(tglong$status,tglong$to,tglong$from) #' # expanded covariates #' tglong <- expand.covs(tglong,c("x1","x2")) #' # Cox model with different covariate #' cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), #' data=tglong,method="breslow") #' summary(cx) #' # new data, to check whether results are the same for transition 1 as #' # those in appendix E.1 of Therneau and Grambsch (2000) #' newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) #' msf <- msfit(cx,newdata,trans=tmat) #' # probtrans #' pt <- probtrans(msf,predt=0) #' # default plot #' plot(pt,ord=c(2,3,1),lwd=2,cex=0.75) #' # filled plot #' plot(pt,type="filled",ord=c(2,3,1),lwd=2,cex=0.75) #' # single plot #' plot(pt,type="single",lwd=2,col=rep(1,3),lty=1:3,legend.pos=c(8,1)) #' # separate plots #' par(mfrow=c(2,2)) #' plot(pt,type="sep",lwd=2) #' par(mfrow=c(1,1)) #' #' # ggplot version - see vignette for details #' library(ggplot2) #' plot(pt, ord=c(2,3,1), use.ggplot = TRUE) #' #' @export plot.probtrans <- function(x, from = 1, type = c("filled", "single", "separate", "stacked"), ord, # ord for "stacked" and "filled "only, cex for text only cols, xlab = "Time", ylab = "Probability", xlim, ylim, lwd, lty, cex, legend, legend.pos = "right", bty = "n", xaxs = "i", yaxs = "i", use.ggplot = FALSE, # Ggplot args here conf.int = 0.95, conf.type = c("log", "plain", "none"), label, # "annotate" if want like base R ...) { # Prelims type <- match.arg(type) if (!inherits(x, "probtrans")) stop("'x' must be a 'probtrans' object") # Ggplot version if (use.ggplot) { # Check for ggplot2 if (!requireNamespace("ggplot2", quietly = TRUE)) { stop("Package ggplot2 needed for this function to work. Please install it.", call. = FALSE) } conf.type <- match.arg(conf.type) p <- ggplot.probtrans( x = x, from = from, type = type, ord = ord, cols = cols, xlab = xlab, ylab = ylab, xlim = xlim, ylim = ylim, lwd = lwd, # linewidth lty = lty, cex = cex, # size of label legend = legend, legend.pos = legend.pos, conf.int = conf.int, # 0 if no confidence intervals conf.type = conf.type, label = label ) return(p) } trans <- x$trans S <- dim(trans)[1] if ((from<1) | (from>S)) stop("'from' incorrect") pt1 <- x[[from]] ptt <- pt1$time # the time points nt <- length(ptt) ptp <- pt1[,2:(S+1)] # those are the actual transition probabilities if (missing(ord)) ord <- 1:S if (missing(lwd)) lwd <- 1 lwd <- rep(lwd, S) lwd <- lwd[1:S] if (missing(lty)) lty <- 1 lty <- rep(lty, S) lty <- lty[1:S] if (missing(cex)) cex <- 1 cex <- rep(cex, S) cex <- cex[1:S] if (missing(cols)) { if (type=="filled" | type=="single") cols <- rev(RColorBrewer::brewer.pal(S, "RdYlGn")) else cols <- 1 } cols <- rep(cols, S) cols <- cols[1:S] if (missing(legend)) { legend <- dimnames(trans)[[2]] if (is.null(legend)) legend <- as.character(1:S) } else if (length(legend) != S) stop("legend has incorrect length") if (type=="single") { if (missing(xlim)) xlim <- range(ptt) if (missing(ylim)) ylim <- c(0,max(ptp)) plot(ptt, ptp[,1], type="s", xlim=xlim, ylim=ylim, xlab=xlab, ylab=ylab, col=cols[1], lwd=lwd[1], lty=lty[1], ...) for (s in 2:S) lines(ptt, ptp[,s], type="s", col=cols[s], lwd=lwd[s], lty=lty[s], ...) if (missing(legend.pos)) legend("topright", legend=legend, col=cols, lwd=lwd, lty=lty, bty=bty) else legend(legend.pos[1], legend.pos[2], legend=legend, col=cols, lwd=lwd, lty=lty, bty=bty) } else if (type=="stacked") { if (missing(xlim)) xlim <- range(ptt) if (missing(ylim)) ylim <- c(0,1) # finally change order according to ord lwd <- lwd[ord]; lty <- lty[ord]; cex <- cex[ord]; cols <- cols[ord] y0 <- 0 ptpsum <- ptp[,ord[1]] eps <- (xlim[2]-xlim[1])/50 nt <- sum(ptt <= xlim[2]-eps) dy <- ptp[nt,ord[1]] y <- y0 + dy/2 y1 <- y0 + dy plot(ptt, ptpsum, type="s", xlim=xlim, ylim=ylim, xlab=xlab, ylab=ylab, col=cols[1], lwd=lwd[1], ...) text(xlim[2]-eps, y, legend[ord[1]], adj=1, cex=cex) for (s in 2:S) { ptpsum <- ptpsum + ptp[,ord[s]] lines(ptt, ptpsum, type="s", col=cols[s], lwd=lwd[s], ...) y0 <- y1 dy <- ptp[nt,ord[s]] y <- y0 + dy/2 y1 <- y0 + dy text(xlim[2]-eps, y, legend[ord[s]], adj=1, cex=cex) } } else if (type=="filled") { par(xaxs=xaxs, yaxs=yaxs) if (missing(xlim)) xlim <- range(ptt) if (missing(ylim)) ylim <- c(0,1) # finally change order according to ord lwd <- lwd[ord]; lty <- lty[ord]; cex <- cex[ord]; cols <- cols[ord] y0 <- 0 eps <- (xlim[2]-xlim[1])/50 nt <- sum(ptt <= xlim[2]) ptt <- ptt[1:nt] ptplow <- rep(0,nt) ptpup <- ptp[1:nt, ord[1]] dy <- ptp[nt, ord[1]] y <- y0 + 0.5*dy y1 <- y0 + dy plot(ptt, ptpup, type="n", xlim=xlim, ylim=ylim, xlab=xlab, ylab=ylab, col=cols[1], lwd=lwd[1], ...) fillplot(ptt, ptplow, ptpup, col=cols[1],lwd=lwd[1]) text(xlim[2]-eps, y, legend[ord[1]], adj=1, cex=cex[1]) for (s in 2:S) { ptplow <- ptpup ptpup <- ptpup + ptp[1:nt,ord[s]] fillplot(ptt, ptplow, ptpup, col=cols[s],lwd=lwd[s]) y0 <- y1 dy <- ptp[nt, ord[s]] y <- y0 + 0.5*dy y1 <- y0 + dy text(xlim[2]-eps, y, legend[ord[s]], adj=1, cex=cex[s]) } box() } else if (type=="separate") { if (missing(xlim)) xlim <- range(ptt) for (s in 1:S) { if (missing(ylim)) # each on its own y-scale plot(ptt, ptp[,s], type="s", xlim=xlim, xlab=xlab, ylab=ylab, col=cols[s], lwd=lwd[s]) else plot(ptt, ptp[,s], type="s", xlim=xlim, ylim=ylim, xlab=xlab, ylab=ylab, col=cols[s], lwd=lwd[s], ...) title(main=legend[s]) } } return(invisible()) } mstate/R/ggplot.msfit.R0000644000176200001440000001346314627637077014542 0ustar liggesusers##*******************************## ## ggplot2 version of plot.msfit ## ## using geom_ribbons ## ##*******************************## ggplot.msfit <- function(x, type = "single", # or "separate" xlab = "Time", ylab = "Cumulative hazard", xlim, ylim, scale_type = "fixed", # see scales arg of facet_wrap legend, legend.pos = "right", lty, cols, lwd = 1, conf.int = 0.95, conf.type = "log") { # Extract transmat, and get transition labels trans_legend <- to.trans2(trans = x$trans) # Extract df and append transition labels df <- x$Haz if (missing(legend)) { df$trans_name <- trans_legend$transname[match(df$trans, trans_legend$transno)] } else { if (length(legend) != nrow(trans_legend)) stop(paste0("Legend is a char. vector of length ", nrow(trans_legend))) if (length(unique(legend)) < length(legend)) stop("Pick unique labels for transitions!") # Match labels and transition numbers leg <- cbind.data.frame(transno = trans_legend$transno, transname = legend) df$trans_name <- leg$transname[match(df$trans, leg$transno)] } df$trans_name <- factor(df$trans_name, levels = unique(df$trans_name)) # Remove possible inf time values if (any(df$time == Inf)) df <- df[-which(df$time == Inf), ] n_states_plotted <- length(levels(df$trans_name)) # Merge with variance part df_steps <- prep_msfit_df( df_haz = df, df_var = x$varHaz, conf.int = conf.int, conf.type = conf.type ) # Check colours if (missing(cols)) { cols <- set_colours(n_states_plotted, type = "lines") } else if (length(cols) != n_states_plotted) { stop(paste0("Length of col should be ", n_states_plotted)) } # Check linetype if (missing(lty)) { lty <- rep(1, n_states_plotted) } else if (length(lty) != n_states_plotted) { stop(paste0("Length of lty should be ", n_states_plotted)) } # Check lwd, xlim and ylim if (missing(lwd)) lwd <- 1 if (missing(xlim)) xlim <- c(0, max(df_steps$time, na.rm = TRUE)) if (missing(ylim)) ylim <- c(0, max(df_steps$CI_upp, na.rm = TRUE)) col_ribb <- ifelse(conf.type == "none", NA, "grey70") # Start plots if (type == "single") { p <- ggplot2::ggplot( data = df_steps, ggplot2::aes( x = .data$time, y = .data$Haz, col = .data$trans_name, linetype = .data$trans_name, group = .data$trans_name ) ) + ggplot2::geom_ribbon( ggplot2::aes(ymin = .data$CI_low, ymax = .data$CI_upp, group = .data$trans_name), alpha = 0.5, fill = col_ribb, col = NA, na.rm = TRUE ) + ggplot2::geom_line(size = lwd) + ggplot2::ylab(ylab) + ggplot2::theme(legend.position = legend.pos) + ggplot2::coord_cartesian(expand = 0, xlim = xlim, ylim = ylim) } else if (type == "separate") { p <- ggplot2::ggplot( data = df_steps, ggplot2::aes( x = .data$time, y = .data$Haz, col = .data$trans_name, linetype = .data$trans_name ) ) + ggplot2::geom_ribbon( ggplot2::aes(ymin = .data$CI_low, ymax = .data$CI_upp), alpha = 0.5, fill = col_ribb, col = NA, na.rm = TRUE ) + ggplot2::geom_line(size = lwd) + ggplot2::ylab(ylab) + ggplot2::coord_cartesian(expand = 0, xlim = xlim) + ggplot2::facet_wrap(. ~ trans_name, scales = scale_type) + ggplot2::theme(legend.position = "none") } else stop("Invalid plot type!") p <- p + ggplot2::scale_colour_manual("Transition", values = cols) + ggplot2::scale_linetype_manual("Transition", values = lty) + ggplot2::xlab(xlab) return(p) } make_haz_confint <- function(haz, se, conf.type = "log", conf.int = 0.95, bound) { # Get critical value crit <- if (!is.null(conf.int)) { qnorm((1 - conf.int) / 2, lower.tail = FALSE) } else 0 if (conf.type == "log") { low <- exp(log(haz) - crit * se / haz) upp <- exp(log(haz) + crit * se / haz) } else if (conf.type == "plain") { low <- haz - crit * se upp <- haz + crit * se } else { low <- haz upp <- haz } # Return upper of lower bound if (bound == "upp") { return(upp) } else return(low) } prep_msfit_df <- function(df_haz, df_var, conf.type, conf.int) { varHaz <- Haz <- se <- trans_name <- NULL # Merge df with variances to the one with hazards df_varHaz <- df_var[df_var$trans1 == df_var$trans2, ] df_varHaz$trans <- df_varHaz$trans1 df_long <- data.table::data.table(merge(x = df_haz, y = df_varHaz, by = c("time", "trans"))) # Make confidence intervals df_long[, "se" := sqrt(varHaz)] df_long[, ':=' ( CI_low = make_haz_confint(Haz, se, conf.type, conf.int, bound = "low"), CI_upp = make_haz_confint(Haz, se, conf.type, conf.int, bound = "upp") )] # Df with steps for ribbon df_steps <- rbind(df_long, df_long) data.table::setorder(df_steps, time, trans_name) # Shift time by 1, creating steps, equi to dplyr::lead(time, n = 1) df_steps[, time := data.table::shift( x = time, fill = NA, n = 1, type = "lead" ), by = trans_name] df_steps <- df_steps[!is.na(time)] return(df_steps) } mstate/R/ggplot.helpers.R0000644000176200001440000000107614627637077015057 0ustar liggesusers# Helper function to set default plot colours set_colours <- function(n, type) { if (type == "lines") { # Rcolorbrewer Dark2 - max 8 colours full_pal <- RColorBrewer::brewer.pal(n = 8, name = "Dark2") if (n <= 8) { cols <- full_pal[seq_len(n)] } else { dark2_extended <- grDevices::colorRampPalette(colors = full_pal) cols <- dark2_extended(n) } } else if(type == "areas") { cols <- viridisLite::viridis(n = n) } else stop("Type should be either 'lines' or 'areas'!") return(cols) }mstate/R/expand.covs.R0000644000176200001440000002310514627637077014347 0ustar liggesusers#' Expand covariates in competing risks dataset in stacked format #' #' Given a competing risks dataset in stacked format, and one or more #' covariates, this function adds type-specific covariates to the dataset. The #' original dataset with the type-specific covariates appended is returned. #' #' Type-specific covariates can be used to analyse separate effects on all #' event types in a single analysis based on a stacked data set (Putter, Fiocco #' & Geskus (2007) and Geskus (2016)). It is only unambiguously defined for #' numeric covariates or for explicit codings. Rows that contain the data for #' that specific event type have the value copied from the original covariate #' in case it is numeric. In all other rows it has the value zero. If the #' covariate is a factor, it will be expanded on the design matrix given by #' \code{\link[stats:model.matrix]{model.matrix}}. For standard "treatment #' contrasts" this means that dummy variables are created. If the covariate is #' a factor, the column name combines the name of the covariate with the #' specific event type. If \code{longnames}=\code{TRUE}, both parts are #' intersected by the specific labels in the coding. Missing values in the #' basic covariates are allowed and result in missing values in the expanded #' covariates. #' #' @aliases expand.covs expand.covs.default #' #' @return An data frame object of the same class as the data argument, #' containing the design matrix for the type-specific covariates, either on its #' own (\code{append}=\code{FALSE}) or appended to the data #' (\code{append}=\code{TRUE}). #' @author Ronald Geskus and Hein Putter \email{H.Putter@@lumc.nl} #' @seealso \code{\link{expand.covs.msdata}}. #' @references Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: #' Competing risks and multi-state models. \emph{Statistics in Medicine} #' \bold{26}, 2389--2430. #' #' Geskus, Ronald B. (2016). \emph{Data Analysis with Competing Risks and #' Intermediate States.} CRC Press, Boca Raton. #' @keywords datagen #' @examples #' #' # small data set in stacked format #' tg <- data.frame(time=c(5,5,1,1,9,9),status=c(1,0,2,2,0,1),failcode=rep(c("I","II"),3), #' x1=c(1,1,2,2,2,2),x2=c(3,3,2,2,1,1)) #' tg$x1 <- factor(tg$x1,labels=c("male","female")) #' # expanded covariates #' expand.covs(tg,covs=c("x1","x2")) #' expand.covs(tg,covs=c("x1","x2"),longnames=TRUE) #' expand.covs(tg,covs=c("x1","x2"),append=FALSE) #' #' @inheritParams expand.covs.msdata #' #' @export expand.covs <- function(data, ...) UseMethod("expand.covs") #' @inheritParams expand.covs.msdata #' @export expand.covs.default <- function (data, covs, append = TRUE, longnames = FALSE, event.types="failcode", ...) { comp.risks <- unique(data[[event.types]]) if(length(comp.risks)==1) stop("Function does not create type-specific covariates with only one event type") trans <- trans.comprisk(K=length(comp.risks), names=comp.risks) trans2 <- to.trans2(trans) K <- nrow(trans2) if (is.character(covs)) form1 <- as.formula(paste("~ ", paste(covs, collapse = " + "))) else form1 <- as.formula(covs) mm4 <- NULL for (j in 1:length(covs)) { wh <- which(!is.na(data[[covs[j]]])) form1 <- as.formula(paste("~ ", covs[j])) mm <- model.matrix(form1, data = data) mm <- data.frame(mm) mm <- mm[, -1, drop = FALSE] if (!longnames) { nc <- ncol(mm) if (nc == 1) names(mm) <- covs[j] else names(mm) <- paste(covs[j], 1:nc, sep = "") } nms <- names(mm) ms <- data.frame(trans = data[[event.types]]) ms$trans <- factor(ms$trans, levels=comp.risks) ms <- cbind(ms[wh, , drop = FALSE], mm) mm2 <- model.matrix(as.formula(paste("~ (", paste(nms, collapse = " + "), "):trans")), data = ms)[, -1] mm3 <- matrix(NA, nrow(data), ncol(mm2)) mm3[wh, ] <- mm2 mm3 <- data.frame(mm3) nms <- as.vector(t(outer(nms, comp.risks, "paste", sep = "."))) names(mm3) <- nms if (j == 1) mm4 <- mm3 else mm4 <- cbind(mm4, mm3) } if (!append) return(mm4) else { if (!all(is.na(match(names(data), nms)))) warning("One or more names of appended data already in data!") mm4 <- cbind(data, mm4) } class(mm4) <- class(data) return(mm4) } #' Expand covariates in multi-state dataset in long format #' #' Given a multi-state dataset in long format, and one or more covariates, this #' function adds transition-specific covariates, expanding the original #' covariate(s), to the dataset. The original dataset with the #' transition-specific covariates appended is returned. #' #' For a given basic covariate \code{Z}, the transition-specific covariate for #' transition \code{s} is called \code{Z.s}. The concept of transition-specific #' covariates in the context of multi-state models was introduced by Andersen, #' Hansen & Keiding (1991), see also Putter, Fiocco & Geskus (2007). It is only #' unambiguously defined for numeric covariates or for explicit codings. Then #' it will take the value 0 for all rows in the long format dataframe for which #' \code{trans} does not equal \code{s}. For the rows for which \code{trans} #' equals \code{s}, the original value of \code{Z} is copied. In #' \code{expand.covs}, when a given covariate is a factor, it will be expanded #' on the design matrix given by #' \code{\link[stats:model.matrix]{model.matrix}}. Missing values in the basic #' covariates are allowed and result in missing values in the expanded #' covariates. #' #' @param data An object of class \code{"msdata"}, such as output by #' \code{\link{msprep}} #' @param covs A character vector containing the names of the covariates in #' \code{data} to be expanded #' @param append Logical value indicating whether or not the design matrix for #' the expanded covariates should be appended to the data (default=\code{TRUE}) #' @param longnames Logical value indicating whether or not the labels are to #' be used for the names of the expanded covariates that are categorical #' (default=\code{TRUE}); in case of \code{FALSE} numbers from 1 up to the #' number of contrasts are used #' @param \dots Further arguments to be passed to or from other methods. They #' are ignored in this function. #' #' @return An object of class 'msdata', containing the design matrix for the #' transition- specific covariates, either on its own #' (\code{append}=\code{FALSE}) or appended to the data #' (\code{append}=\code{TRUE}). #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @references Andersen PK, Hansen LS, Keiding N (1991). Non- and #' semi-parametric estimation of transition probabilities from censored #' observation of a non-homogeneous Markov process. \emph{Scandinavian Journal #' of Statistics} \bold{18}, 153--167. #' #' Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing #' risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, #' 2389--2430. #' @keywords datagen #' @examples #' #' # transition matrix for illness-death model #' tmat <- trans.illdeath() #' # small data set in wide format #' tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,2,2,2),x2=c(6:1)) #' tg$x1 <- factor(tg$x1,labels=c("male","female")) #' # data in long format using msprep #' tglong <- msprep(time=c(NA,"illt","dt"), #' status=c(NA,"ills","ds"),data=tg, #' keep=c("x1","x2"),trans=tmat) #' # expanded covariates #' expand.covs(tglong,c("x1","x2"),append=FALSE) #' expand.covs(tglong,"x1") #' expand.covs(tglong,"x1",longnames=FALSE) #' #' @method expand.covs msdata #' @export expand.covs.msdata <- function(data, covs, append=TRUE, longnames=TRUE, ...) { if (!inherits(data, "msdata")) stop("'data' must be an 'msdata' object") trans <- attr(data, "trans") data <- as.data.frame(data) trans2 <- to.trans2(trans) K <- nrow(trans2) if (is.character(covs)) form1 <- as.formula(paste("~ ",paste(covs,collapse=" + "))) else form1 <- as.formula(covs) # going to apply model.matrix, but NA's are not allowed, so have to deal with that mm4 <- NULL for (j in 1:length(covs)) { wh <- which(!is.na(data[[covs[j]]])) form1 <- as.formula(paste("~ ",covs[j])) mm <- model.matrix(form1,data=data) mm <- data.frame(mm) mm <- mm[,-1,drop=FALSE] if (!longnames) { nc <- ncol(mm) if (nc==1) names(mm) <- covs[j] else names(mm) <- paste(covs[j],1:nc,sep="") } nms <- names(mm) ms <- data.frame(trans=data[["trans"]]) ms$trans <- factor(ms$trans) ms <- cbind(ms[wh,,drop=FALSE],mm) mm2 <- model.matrix(as.formula(paste("~ (",paste(nms,collapse=" + "),"):trans")),data=ms)[,-1] mm3 <- matrix(NA,nrow(data),ncol(mm2)) mm3[wh,] <- mm2 mm3 <- data.frame(mm3) nms <- as.vector(t(outer(nms,1:K,"paste",sep="."))) names(mm3) <- nms if (j==1) mm4 <- mm3 else mm4 <- cbind(mm4,mm3) } if (!append) return(mm4) else { if (!all(is.na(match(names(data),nms)))) warning("One or more names of appended data already in data!") mm4 <- cbind(data,mm4) } attr(mm4, "trans") <- trans class(mm4) <- c("msdata", "data.frame") return(mm4) } mstate/R/xsect.R0000644000176200001440000000372614627637077013254 0ustar liggesusers#' Make a cross-section of multi-state data at a given time point #' #' Given a dataset in long format, for instance generated by #' \code{\link{msprep}}, this function takes a cross-section at a given time #' point, to list the subjects under observation (at risk) at that time point #' and the states currently occupied. #' #' It is possible that subjects have moved to one of the absorbing states prior #' to \code{xtime}; this is NOT taken into account. The function \code{xsect} #' only concerns subjects currently (at \code{time}) at risk. #' #' @param msdata An object of class \code{"msdata"}, such as output by #' \code{\link{msprep}} #' @param xtime The time point at which the intersection is to be made #' @return A list containing \code{idstate}, a data frame containing #' \code{id}'s and \code{state}, the number of the state currently occupied; #' \code{atrisk}, the number at risk, and \code{prop}, a table counting how #' many of those at risk occupy which state. #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @keywords univar #' @examples #' #' tmat <- trans.illdeath(names=c("Tx","PR","RelDeath")) #' data(ebmt3) # data from Section 4 of Putter, Fiocco & Geskus (2007) #' msebmt <- msprep(time=c(NA,"prtime","rfstime"),status=c(NA,"prstat","rfsstat"), #' data=ebmt3,trans=tmat) #' # At the start everyone is in state 1 (default xtime=0 is used) #' xsect(msebmt) #' # At 5 years #' xsect(msebmt, xtime=1826) #' #' @export xsect xsect <- function(msdata, xtime=0) { msd <- msdata[msdata$Tstart<=xtime & msdata$Tstop>xtime,] msd <- msd[order(msd$id, msd$trans, msd$Tstart),] msd <- msd[!duplicated(msd$id),] idstate <- data.frame(id=msd$id, state=msd$from) tmat <- attr(msdata, "trans") K <- nrow(tmat) msd$from <- factor(msd$from, levels=1:K, labels=1:K) tbl <- table(msd$from) atrisk <- sum(tbl) prop <- tbl/atrisk res <- idstate attr(res, "atrisk") <- tbl attr(res, "prop") <- prop return(res) } mstate/R/relsurv.varHaz.fixed.R0000644000176200001440000000734114627637077016155 0ustar liggesusers#' Upgrade the varHaz object #' #' A function that upgrades varHaz from the msfit object where the variances are #' estimated using the Greenwood estimator; it is further assumed that variances for the population #' hazards are equal to zero. #' @param varHaz The varHaz object (present in a msfit object). #' @param link_trans A list that gives the linkage between the original and upgraded #' transition matrix. #' @param varHaz_original The original varHaz object from msfit (without the eventual time conversion). #' @return Return the upgraded varHaz object containing variances for the split transitions. #' @author Damjan Manevski \email{damjan.manevski@@mf.uni-lj.si} #' #' @export `varHaz.fixed` <- function(varHaz, link_trans, varHaz_original){ # Define new varHaz object: varHaz_new <- varHaz[0,] # Find all covariance combinations: var_trans <- unique(varHaz[,c("trans1","trans2")]) # For every combination write down the (co)variance: for(i in 1:nrow(var_trans)){ trans1 <- var_trans$trans1[i] trans2 <- var_trans$trans2[i] # Find the adequate transitions in trans_new: trans1_new <- link_trans[[ trans1 ]] trans2_new <- link_trans[[ trans2 ]] varHaz_tmp <- varHaz[(varHaz$trans1 == trans1) & (varHaz$trans2 == trans2), ] if((length(trans1_new) == 1) & (length(trans2_new) == 1)){ # Replace suitable tranistions and add matrix: varHaz_tmp$trans1 <- trans1_new varHaz_tmp$trans2 <- trans2_new varHaz_tmp$time <- varHaz_original$time[(varHaz_original$trans1 == trans1) & (varHaz_original$trans2 == trans2)] varHaz_new <- rbind(varHaz_new, varHaz_tmp) } else if(length(trans1_new) == 1){ # Replace suitable tranistions and add matrices: varHaz_tmp$trans1 <- trans1_new varHaz_tmp$trans2 <- trans2_new[2] varHaz_tmp$time <- varHaz_original$time[(varHaz_original$trans1 == trans1) & (varHaz_original$trans2 == trans2)] varHaz_tmp2 <- varHaz_tmp varHaz_tmp$trans2 <- trans2_new[1] varHaz_tmp$varHaz <- 0 varHaz_new <- rbind(varHaz_new, varHaz_tmp, varHaz_tmp2) } else if(length(trans2_new) == 1){ # Replace suitable tranistions and add matrices: varHaz_tmp$trans1 <- trans1_new[2] varHaz_tmp$trans2 <- trans2_new varHaz_tmp$time <- varHaz_original$time[(varHaz_original$trans1 == trans1) & (varHaz_original$trans2 == trans2)] varHaz_tmp2 <- varHaz_tmp varHaz_tmp$trans1 <- trans1_new[1] varHaz_tmp$varHaz <- 0 varHaz_new <- rbind(varHaz_new, varHaz_tmp, varHaz_tmp2) } else{ # Replace suitable tranistions and add matrices: varHaz_tmp$trans1 <- trans1_new[2] varHaz_tmp$trans2 <- trans2_new[2] varHaz_tmp$time <- varHaz_original$time[(varHaz_original$trans1 == trans1) & (varHaz_original$trans2 == trans2)] varHaz_tmp2 <- varHaz_tmp varHaz_tmp$trans1 <- trans1_new[1] varHaz_tmp$trans2 <- trans2_new[1] varHaz_tmp$varHaz <- 0 varHaz_new <- rbind(varHaz_new, varHaz_tmp) varHaz_tmp$trans1 <- trans1_new[1] varHaz_tmp$trans2 <- trans2_new[2] varHaz_new <- rbind(varHaz_new, varHaz_tmp) if(!identical(trans1_new, trans2_new)){ varHaz_tmp$trans1 <- trans1_new[2] varHaz_tmp$trans2 <- trans2_new[1] varHaz_new <- rbind(varHaz_new, varHaz_tmp) } varHaz_new <- rbind(varHaz_new, varHaz_tmp2) } } return(varHaz_new) }mstate/R/relsurv.msboot.relsurv.R0000644000176200001440000001127414627637077016630 0ustar liggesusers#' Bootstrap function for upgraded multi-state models using relsurv #' #' A helper nonparametric bootstrapping function for variances #' in extended multi-state models using relative survival. #' This implementation is written based on function mstate:::msboot. #' @param theta A function of data and perhaps other arguments, returning the value of the statistic to be bootstrapped #' @param data An object of class 'msdata', such as output from msprep #' @param B The number of bootstrap replications; the default is B=10 #' @param id Character string indicating which column identifies the subjects to be resampled #' @param verbose The level of output; default 0 = no output, 1 = print the replication #' @param transmat The transition matrix of class transMat #' @param all_times All times at which the hazards have to be evaluated #' @param split.transitions An integer vector containing the numbered transitions that should be split. Use same numbering as in the given transition matrix #' @param rmap An optional list to be used if the variables in the dataset are not organized (and named) in the same way as in the ratetable object #' @param time.format Define the time format which is used in the dataset Possible options: c('days', 'years', 'months'). Default is 'days' #' @param boot_orig_msfit Logical, if true, do the bootstrap for the basic msfit model #' @param ratetable The population mortality table. A table of event rates, organized as a ratetable object, see for example relsurv::slopop. Default is slopop #' @param add.times Additional times at which hazards should be evaluated #' @param ... Any further arguments to the function theta #' @return A list of size B containing the results for every bootstrap replication. #' #' @author Damjan Manevski \email{damjan.manevski@@mf.uni-lj.si}, Marta Fiocco, Hein Putter \email{H.Putter@@lumc.nl} #' @seealso \code{\link{msboot}} #' #' @export `msboot.relsurv` <- function(theta, data, B = 10, id = "id", verbose = 0, transmat, all_times, split.transitions, rmap, time.format, boot_orig_msfit, ratetable=relsurv::slopop, add.times, ...){ if (!inherits(data, "msdata")) stop("'data' must be a 'msdata' object") trans <- attr(data, "trans") ids <- unique(data[, id]) n <- length(ids) th <- theta(data, transmat=transmat, all_times=all_times, split.transitions=split.transitions, rmap=rmap, time.format=time.format, boot_orig_msfit=boot_orig_msfit, ratetable=ratetable, add.times=add.times, ...) nr <- nrow(th) # Prepare res object: res <- vector("list", B) find_trans <- as.numeric(stats::na.omit(as.vector(transmat))) take_values <- rep(TRUE, B) add.times.ind <- FALSE # Take care of add.times: if(!missing(add.times)){ add.times.ind <- TRUE } # start_it <- 1 for (b in 1:B) { if (verbose > 0) { cat("\nBootstrap replication", b, "\n") flush.console() } bootdata <- NULL bids <- sample(ids, replace = TRUE) bidxs <- unlist(sapply(bids, function(x) which(x == data[, id]))) bootdata <- data[bidxs, ] if (verbose > 0) { print(date()) print(events(bootdata)) cat("applying theta ...") } if(length(unique(bootdata[,id]))==1){ take_values[b] <- FALSE next } if(add.times.ind){ add.times1 = add.times add.times1 = add.times1[add.times1 <= max(bootdata$Tstop, na.rm=TRUE)] thstar <- theta(data=bootdata, transmat=transmat, all_times=all_times, split.transitions=split.transitions, rmap=rmap, time.format=time.format, boot_orig_msfit=boot_orig_msfit, ratetable=ratetable, add.times=add.times1, ...) } else{ thstar <- theta(data=bootdata, transmat=transmat, all_times=all_times, split.transitions=split.transitions, rmap=rmap, time.format=time.format, boot_orig_msfit=boot_orig_msfit, ratetable=ratetable, add.times=add.times, ...) } # Check if some transitions have to be removed # (if nobody can make that transition, i.e. if there's no one at the at-risk set) observed_trans <- sort(unique(bootdata$trans)) if(!identical(observed_trans,find_trans)){ which_trans <- find_trans[!(find_trans %in% observed_trans)] new_trans <- unlist(thstar[[2]][which_trans]) thstar[[1]] <- subset(thstar[[1]], !(trans %in% new_trans)) } thstar <- thstar[[1]] thstar$b <- b # Save result: res[[b]] <- thstar } if (verbose) cat("\n") res <- res[take_values] return(res) } mstate/R/relsurv.msfit.relsurv.R0000644000176200001440000004751114641210167016431 0ustar liggesusers#' Extend a multi-state model using relative survival #' #' A function that takes a fitted msfit object and upgrades #' it using relative survival, where chosen transitions are #' split in population and excess transitions. This upgraded #' msfit object contains the split hazards based on the transition #' matrix (transMat). The (co)variance matrix is also upgraded, if provided. #' @param msfit.obj The msfit object which has to be upgraded #' @param data The data used for fitting the msfit model #' @param split.transitions An integer vector containing the numbered transitions that should be split. Use same numbering as in the given transition matrix #' @param ratetable The population mortality table. A table of event rates, organized as a ratetable object, see for example relsurv::slopop. Default is slopop #' @param rmap An optional list to be used if the variables in the data are not organized (and named) in the same way as in the ratetable object #' @param time.format Define the time format which is used in the data. Possible options: c('days', 'years', 'months'). Default is 'days' #' @param var.pop.haz If 'fixed' (default), the Greenwood estimator for the variances is used, where it is assumed that the variance of the population hazards is zero. If 'bootstrap', one gets boostrap estimates for all all transitions. Option 'both' gives both variance estimates #' @param B Number of bootstrap replications. Relevant only if var.pop.haz == 'bootstrap' or 'both'. Default is B=10. #' @param seed Set seed #' @param add.times Additional times at which hazards should be evaluated #' @param substitution Whether function substitute should be used for rmap argument. Default is TRUE #' @param link_trans_ind Choose whether the linkage between the old and new transition matrix should be saved. Default is FALSE. #' @return Returns a msfit object that contains estimates for the extended model #' with split (population and excess) transitions. #' #' @author Damjan Manevski \email{damjan.manevski@@mf.uni-lj.si} #' @seealso \code{\link{msfit}} #' @references Manevski D, Putter H, Pohar Perme M, Bonneville EF, Schetelig J, de Wreede LC (2021). #' Integrating relative survival in multi-state models -- a non-parametric approach. #' https://arxiv.org/abs/2106.12399 #' #' @examples #' #' \dontrun{ #' library(mstate) #' # Load dataset: #' data("ebmt1") #' # Transition matrix: #' tmat <- transMat(list(c(2,3),c(4), c(), c()), #' names = c("Alive relapse-free", "Relapse","NRM", "DaR")) #' # Data in long format using msprep #' df <- msprep(time=c(NA,"rel","srv","srv"), status=c(NA,"relstat","srvstat","srvstat"), #' data=ebmt1, trans=tmat) #' # Generate demographic covariates (which are usually present in datasets) #' # and based on them estimate the population hazard. #' set.seed(510) #' df$age <- runif(nrow(df), 45, 65) #' df$sex <- sample(c("male", "female"), size = nrow(df), replace = TRUE) #' df$dateHCT <- sample(seq(as.Date('1990/01/01'), #' as.Date('2000/01/01'), by="day"), nrow(df), replace = TRUE) # generate years #' # Cox object: #' cx <- coxph(Surv(Tstart,Tstop,status)~strata(trans), #' data=df,method="breslow") #' # Basic multi-state model: #' mod <- msfit(cx,trans=tmat) #' # Extended multi-state model, where the two transition #' # reaching death are split in excess and population parts. #' # We assume patients live like in the Slovene population, #' # thus we use Slovene mortality tables in this example. #' # Variances estimated using 25 bootstrap replications. #' mod.relsurv <- msfit.relsurv(msfit.obj = mod, data=df, split.transitions = c(2,3), #' ratetable = relsurv::slopop, #' rmap = list(age=age*365.241, year=dateHCT), #' time.format = "days", #' var.pop.haz = "bootstrap", #' B = 25) #' # Estimate transition probabilities: #' pt <- probtrans(mod.relsurv, predt=0, method='greenwood') #' # Estimated cumulative hazards with the corresponding #' # bootstrap standard errors at 300, 600, 900 days: #' summary(object = mod.relsurv, times = c(300, 600, 900), conf.type = 'log') #' # Estimated transition probabilities together with the corresponding #' # bootstrap standard errors and log.boot confidence intervals #' # at 300, 600, 900 days: #' summary(object = pt, times = c(300, 600, 900), conf.type = 'log') #' # Plot the measures: #' plot(mod.relsurv, use.ggplot = TRUE) #' plot(pt, use.ggplot = TRUE) #' } #' @export `msfit.relsurv` <- function(msfit.obj, data, split.transitions, ratetable = relsurv::slopop, rmap, time.format = "days", var.pop.haz = c("fixed", "bootstrap", "both"), B = 10, seed = NULL, add.times, substitution=TRUE, link_trans_ind = FALSE ){ # NOTE: var.pop.haz="fixed" gives covariances. Bootstrap does not. if (!requireNamespace("relsurv", quietly = TRUE)) { stop("Package \"relsurv\" needed for this function to work. Please install it.", call. = FALSE) } #################### # 1. Prepare objects #################### trans1 <- NULL trans2 <- NULL b <- NULL if(!missing(rmap)){ if(substitution){ rmap <- substitute(rmap) } } var.pop.haz <- match.arg(var.pop.haz) bootstrap_ind <- FALSE # helper indicator # Add additional times, if needed: if(!missing(add.times)){ if(max(add.times) > max(msfit.obj[[1]]$time)){ warning("Maximum value in add.times is bigger than maximum time in dataset. Do you really want to extrapolate the hazards? \n") } add.times <- add.times[!(add.times %in% msfit.obj[[1]]$time)] msfit.new <- msfit.obj[[1]][0,] # Make new data.frame and add it to the existing one: for(tr in unique(msfit.obj[[1]]$trans)){ msfit_tmp <- subset(msfit.obj[[1]], trans==tr) msfit_tmp_2 <- data.frame(time = add.times, Haz = NA, trans = tr) msfit_tmp <- rbind(msfit_tmp, msfit_tmp_2) msfit_tmp <- msfit_tmp[order(msfit_tmp$time),] msfit_tmp$Haz <- NAfix(msfit_tmp$Haz,0) msfit.new <- rbind(msfit.new, msfit_tmp) } msfit.obj[[1]] <- msfit.new # Take care of varHaz, if needed: if(length(msfit.obj) == 3){ msfit.new <- msfit.obj[[2]][0,] trans.grid <- unique(msfit.obj[[2]][,c("trans1", "trans2")]) # Make new data.frame and add it to the existing one: for(tr in 1:nrow(trans.grid)){ msfit_tmp <- subset(msfit.obj[[2]], (trans1==trans.grid[tr, "trans1"] & trans2==trans.grid[tr, "trans2"])) msfit_tmp_2 <- data.frame(time = add.times, varHaz = NA, trans1 = trans.grid[tr, "trans1"], trans2 = trans.grid[tr, "trans2"]) msfit_tmp <- rbind(msfit_tmp, msfit_tmp_2) msfit_tmp <- msfit_tmp[order(msfit_tmp$time),] msfit_tmp$varHaz <- NAfix(msfit_tmp$varHaz,0) msfit.new <- rbind(msfit.new, msfit_tmp) } msfit.obj[[2]] <- msfit.new } } # Exctract hazards: Haz <- msfit.obj[[1]] # Exctract covariances, if present: if(length(msfit.obj) == 3){ varHaz <- msfit.obj[[2]] } # Define time-related objects: Year <- 365.241 Month <- Year/12 data_orig <- data time.format.orig <- time.format if(time.format == "days"){ if(max(msfit.obj[[1]]$time) < 30) warning("Your max time in the data is less than 30 days. If time is not stored in days, please use argument time.format. \n") } else if(time.format == "years"){ if(max(msfit.obj[[1]]$time) > 100) warning("Your max time in the data is more than 100 years. If time is not stored in years, please use argument time.format. \n") data$Tstart <- data$Tstart*Year data$Tstop <- data$Tstop*Year data$time <- data$time*Year Haz$time <- Haz$time*Year if(exists("varHaz")) varHaz$time <- varHaz$time*Year time.format <- "days" # Fix argument } else if(time.format == "months"){ if(max(msfit.obj[[1]]$time) > 600) warning("Your max time in the data is more than 600 months. If time is not stored in months, please use argument time.format. \n") data$Tstart <- data$Tstart*Month data$Tstop <- data$Tstop*Month data$time <- data$time*Month Haz$time <- Haz$time*Month if(exists("varHaz")) varHaz$time <- varHaz$time*Month time.format <- "days" # Fix argument } else{ stop("Argument time.format should take values in c('days', 'years', 'months').") } # Define new objects and transMat: Haz_new <- Haz[0,] if(length(msfit.obj) == 3){ trans <- msfit.obj[[3]] } else{ trans <- msfit.obj[[2]] } # Check split.transitions argument value: if(missing(split.transitions)) stop("Please define split.transitions.") else{ if (inherits(split.transitions, "numeric")) { if(!all(split.transitions %in% 1:max(trans, na.rm=TRUE))) stop("Invalid transitions used inside argument split.transitions.") } else stop("Argument split.transitions expects values of class numeric") # Check intermediate states: for(i in split.transitions){ tmp_state <- which(trans==i, arr.ind=TRUE)[2] if(!all(is.na(trans[tmp_state,]))) stop("You've listed an intermediate transition for which the hazard would have to be split in excess and population hazard. Population mortality tables for intermediate events haven't been implemented in this function. Please include only transitions that go to death states in the split.transitions argument.") } } # Get new transition matrix: trans_new <- modify_transMat(trans, split.transitions) # Get all transitions: transitions <- which(!is.na(trans), arr.ind = TRUE) link_trans <- list() #################### # 2. Prepare hazards #################### # We go through all original transitions and match them # to the ones in the new transMat (trans_new). # We then obtain the new hazards. for(i in 1:nrow(transitions)){ # The transition in trans: trans_1 <- trans[transitions[i,1], transitions[i,2]] # We deal differently based on the type of transition # (whether we have to split the transition or not): if(!(trans_1 %in% split.transitions)){ # The adequate transition in trans_new: trans_2 <- trans_new[rownames(trans)[transitions[i,1]], colnames(trans)[transitions[i,2]]] # Save the linkage: link_trans[[ trans_1 ]] <- trans_2 # Copy the hazards from the msfit object: df_tmp <- msfit.obj[[1]][msfit.obj[[1]]$trans == trans_1,] df_tmp$trans <- trans_2 # Save: Haz_new <- rbind(Haz_new, df_tmp) } else{ # The adequate transition in trans_new: trans_2 <- c(trans_new[rownames(trans)[transitions[i,1]], paste0(colnames(trans)[transitions[i,2]], ".p")], trans_new[rownames(trans)[transitions[i,1]], paste0(colnames(trans)[transitions[i,2]], ".e")]) # Save the linkage: link_trans[[ trans_1 ]] <- trans_2 # Prepare pop. and excess hazard objects: df_p <- Haz[Haz$trans == trans_1, ] df_e <- Haz[Haz$trans == trans_1, ] # Take the subset we need: df_subset <- data[(data$from == transitions[i,1]) & (data$to == transitions[i,2]),] # Find first time, when a jump happens: wh_jump <- which.max(df_e$Haz>0) is_jump <- any(df_e$Haz>0) if(!is_jump){ if(!(link_trans_ind == TRUE & substitution == FALSE)){ # If it's not called when bootstrapping stop(paste0("There are no events occurring in transition ", trans_1, ". Please remove it from the split.transitions argument.")) } } if(nrow(df_subset)==0 | nrow(df_p)==0){ if(nrow(df_p)>0){ df_p$trans <- trans_2[1] df_e$trans <- trans_2[2] } } else{ # Calculate hazards: Hazs <- haz_function(Surv(Tstop, status)~1, data = df_subset, ratetable = ratetable, rmap = rmap, add.times = df_p$time, include.all.times = FALSE) # Take care of late times, if present: # if(!all(df_p$time %in% Hazs$time)){ # additional_times <- sort(df_p$time[!(df_p$time %in% Hazs$time)]) # # Hazs$time <- c(Hazs$time, additional_times) # Hazs$haz.pop <- c(Hazs$haz.pop, rep(Hazs$haz.pop[length(Hazs$haz.pop)], length(additional_times))) # Hazs$haz.excess <- c(Hazs$haz.excess, rep(Hazs$haz.excess[length(Hazs$haz.excess)], length(additional_times))) # } # Calculate hazards at the wanted times wh <- which(Hazs$time %in% (df_p$time)) wh_l <- c(NA, wh[1:(length(wh)-1)])+1 wh_l[1] <- 1 haz.pop <- sapply(1:length(wh), function(x) sum(Hazs$haz.pop[wh_l[x]:wh[x]])) haz.excess <- sapply(1:length(wh), function(x) sum(Hazs$haz.excess[wh_l[x]:wh[x]])) # Checks: # plot(1:length(haz.pop), (df_p$Haz[1:length(haz.pop)] - cumsum(haz.pop + haz.excess)), type="l") # plot(1:length(haz.pop), cumsum(haz.pop), type="l") # plot(1:length(haz.pop), cumsum(haz.excess), type="l") # Population hazards: df_p$trans <- trans_2[1] df_p$Haz <- cumsum(haz.pop) # Excess hazards: df_e$trans <- trans_2[2] # df_e$Haz <- cumsum(haz.excess) df_e$Haz <- df_e$Haz - df_p$Haz # calculate like this (L_O - L_P), since it's more numerically stable. # Check: plot(1:length(haz.pop), (Haz[Haz$trans == trans_1, "Haz"] - df_e$Haz - df_p$Haz), type="l") # Make the times fully equal as in the msfit object: old_times <- msfit.obj[[1]]$time[msfit.obj[[1]]$trans == trans_1] df_p$time <- old_times df_e$time <- old_times # Check if cum. excess haz<0 after first event time: if(wh_jump% filter(trans %in% c(2,4)) %>% mutate(trans=ifelse(trans==2,"HCT->NRM.p","Rel->DaR.p")) %>% mutate(gr=paste0(trans, b), trans=factor(trans)), aes(time, Haz, group=gr, color=gr))+ # geom_line()+ # ylab("Hazards for different boot replicates")+ # facet_wrap(~trans, nrow = 1)+ # theme_bw()+ # theme(legend.position="none") # dev.off() haz_boot2 <- aggregate(.~time+trans, data=subset(haz_boot_df, select=-b), FUN = stats::var) colnames(haz_boot2)[3] <- "varHaz" # browser() # Check bootstrap transitions: # juhu <- haz_boot_df %>% filter(trans==5, time<0.05) # juhu <- rbind(juhu %>% mutate(ju="b"), # haz_boot2 %>% dplyr::select(time, Haz=varHaz, trans) %>% filter(trans==5, time<0.05) %>% mutate(b=1, ju="var")) # ggplot(juhu %>% mutate(b=factor(b)), aes(time, Haz, group=b, color=b))+ # geom_line(position=position_jitter(w=0, h=0.00))+ # facet_wrap(~ju, nrow=2, scales = "free_y")+ # theme_bw()+ # theme(legend.position = "none") # Add trans1, trans2: haz_boot3 <- haz_boot2 haz_boot3$trans1 <- haz_boot3$trans colnames(haz_boot3)[2] <- "trans2" haz_boot3 <- haz_boot3[,c("time", "varHaz", "trans1", "trans2")] # Save objects: if(var.pop.haz == 'both') varHaz_new <- rbind(data.frame(varHaz_new, var.pop.haz="fixed"), data.frame(haz_boot3, var.pop.haz="bootstrap")) else varHaz_new <- haz_boot3 bootstrap_ind <- TRUE # CHECK # haz_boot <- haz_boot %>% # group_by(time) %>% # summarise(pstate3 = sd(pstate3, na.rm = TRUE), # pstate4 = sd(pstate4, na.rm = TRUE), # pstate5 = sd(pstate5, na.rm = TRUE), # pstate6 = sd(pstate6, na.rm = TRUE)) %>% # gather(state, prob, -time) %>% # mutate(state = ifelse(state=="pstate3", "HCT->NRM.p", # ifelse(state=="pstate4", "HCT->NRM.e", # ifelse(state=="pstate5", "HCT->DaR.p", "HCT->DaR.e")))) } ordering <- order(as.vector(as.matrix(varHaz_new[,c("trans1", "trans2")]))) varHaz_new <- varHaz_new[ordering,,drop=FALSE] varHaz_new <- stats::na.omit(varHaz_new) rownames(varHaz_new) <- 1:nrow(varHaz_new) } #################### # 4. Return objects: #################### # Save the new values: if(length(msfit.obj) == 3){ res <- list(Haz=Haz_new,varHaz=varHaz_new,trans=trans_new) } else{ res <- list(Haz=Haz_new,trans=trans_new) } # If link_trans and bootstrap replications have to be added: if(link_trans_ind) res$link_trans <- link_trans if(bootstrap_ind) res$Haz.boot <- haz_boot class(res) <- "msfit" return(res) } mstate/R/transMat.R0000644000176200001440000000632414627637077013714 0ustar liggesusers#' Define transition matrix for multi-state model #' #' Define transition matrices for multi-state model. Specific functions for #' defining such transition matrices are pre-defined for common multi-state #' models like the competing risks model and the illness-death model. #' #' If \code{names} is missing, the names \code{"eventfree"}, \code{"cause1"}, #' etcetera are assigned in \code{trans.comprisk}, or \code{"healthy"}, #' \code{"illness"}, \code{"death"} in \code{trans.illdeath}. #' #' @aliases transMat trans.illdeath trans.comprisk #' @param x List of possible transitions; x[[i]] consists of a vector of state #' numbers reachable from state i #' @param names A character vector containing the names of either the competing #' risks or the states in the multi-state model specified by the competing #' risks or illness-death model. \code{names} should have the same length as #' the list \code{x} (for \code{transMat}), or either \code{K} or \code{K}+1 #' (for \code{trans.comprisk}), or 3 (for \code{trans.illdeath}) #' @return A transition matrix describing the states and transitions in the #' multi-state model. #' @author Steven McKinney ; Hein Putter #' #' @keywords array #' @examples #' #' transMat(list(c(2, 3), c(), c(1, 2)), #' names = c("Disease-free", "Death", "Relapsed")) #' tmat <- transMat(x = list( c(2, 3), c(1, 3), c() ), #' names = c("Normal", "Low", "Death")) #' tmat #' transListn <- list("Normal" = c(2, 3), "Low" = c(1, 3), "Death" = c()) #' transMat(transListn) #' trans.comprisk(3) #' trans.comprisk(3,c("c1","c2","c3")) #' trans.comprisk(3,c("nothing","c1","c2","c3")) #' trans.illdeath() #' trans.illdeath(c("nothing","ill","death")) #' #' @export transMat transMat <- function(x, names) { ## transMat: produce transition matrix for use in package 'mstate'. ## Arguments: ## x: List of possible transitions. ## x[[i]] consists of a vector of state numbers ## reachable from state i. ## names: Character vector of state names, having the same length ## as x. ## Example: States 1 and 2 are reachable from one ## another. State 3 is absorbing, reachable from ## states 1 and 2. ## transMat( x = list( c(2, 3), c(1, 3), c() ) ) if ( !is.list(x) ) stop("x must be a list") ns <- length(x) ## number of states tmat <- matrix(NA, nrow = ns, ncol = ns) ## transition matrix if ( missing(names) ) { if ( !is.null( base::names(x) ) ) { namesList <- list(from = base::names(x), to = base::names(x)) } else { namesList <- list(from = paste("State", seq(nrow(tmat))), to = paste("State", seq(nrow(tmat)))) } } else { if ( length(names) != ns ) stop("length of 'names' must equal length of 'x'") namesList <- list(from = names, to = names) } idxmat <- cbind(unlist(lapply(seq(ns), function(i, y){ rep(i, length(y[[i]]))}, x)), unlist(x)) if ( max(idxmat) > ns ) stop("Largest state in transition list exceeds number of states") tmat[idxmat] <- seq(nrow(idxmat)) dimnames(tmat) <- namesList tmat } mstate/R/print.MarkovTest.R0000644000176200001440000000362014627637077015351 0ustar liggesusers#' Print method for a MarkovTest object #' #' Print method for an object of class 'MarkovTest' #' #' #' @param x Object of class 'markovTest', as obtained by call to #' \code{\link{MarkovTest}} #' @param \dots Further arguments to print #' @return No return value #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @seealso \code{\link{MarkovTest}} #' @keywords hplot #' @examples #' #' \dontrun{ #' # Example provided by the prothrombin data #' data("prothr") #' # Apply Markov test to grid of monthly time points over the first 7.5 years #' year <- 365.25 #' month <- year / 12 #' grid <- month * (1:90) #' # Markov test for transition 1 (wild bootstrap based on 25 replications for brevity) #' MT <- MarkovTest(prothr, id = "id", transition = 1, #' grid = grid, B = 25) #' MT #' } #' #' @export print.MarkovTest <- function(x, ...) { cat("Log-rank based Markov test for transition ", x$trans, " (", x$from, " -> ", x$to, ")\n", sep="") cat("Qualifying states: ", x$qualset, "\n") cat("\nP-values based on ", x$B, " wild bootstrap replications with ") if (x$dist == "poisson") cat("centred Poisson") if (x$dist == "normal") cat("standard normal") cat(" distributed random weights\n") cat("\nQualifying state specific tests:\n") nfuns <- nrow(x$orig_stat) for (j in 1:nfuns) { cat("\n") print(x$fn[[1]][[j]]) cat("\n") tmp <- t(rbind(x$qualset, x$orig_stat[j, ], x$p_stat_wb[j, ])) tmp <- as.data.frame(tmp) names(tmp) <- c("Qualstate", "u", "P(|U| > u)") print(tmp, row.names = FALSE) } cat("\nOverall test:\n") nfuns <- length(x$orig_ch_stat) for (j in 1:nfuns) { cat("\n") print(x$fn2[[j]]) cat("\n") tmp <- matrix(c(x$orig_ch_stat[j], x$p_ch_stat_wb), 1, 2) tmp <- as.data.frame(tmp) names(tmp) <- c("chisq", "P(|U| > u)") print(tmp, row.names = FALSE) } } mstate/R/summary.msfit.R0000644000176200001440000002232514627637077014740 0ustar liggesusers#' Summary method for an msfit object #' #' Summary method for an object of class 'msfit'. It prints a selection of the #' estimated cumulative transition intensities, and, if requested, also of the #' (co)variances. #' #' #' @aliases summary.msfit #' @param object Object of class 'msfit', containing estimated cumulative #' transition intensities for all transitions in a multi-state model #' @param times Time points at which to evaluate the cumulative transition #' hazards #' @param transitions The transition for which to summarize the cumulative #' transition hazards #' @param variance Whether or not the standard errors of the estimated #' cumulative transition intensities should be printed; default is \code{TRUE} #' @param conf.int The proportion to be covered by the confidence intervals, #' default is 0.95 #' @param conf.type The type of confidence interval, one of "log", "none", or #' "plain". Defaults to "log" #' @param extend logical value: if \code{TRUE}, prints information for all #' specified times, even if there are no subjects left at the end of the #' specified times. This is only valid if the times argument is present #' @param \dots Further arguments to summary #' #' @return Function \code{summary.msfit} returns an object of class #' "summary.msfit", which is a list (for each \code{from} state) of cumulative #' transition hazaards at the specified (or all) time points. The \code{print} #' method of a \code{summary.probtrans} doesn't return a value. #' #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @seealso \code{\link{msfit}} #' @keywords print #' @examples #' #' # Start with example from msfit #' tmat <- trans.illdeath() #' tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,0,0,0),x2=c(6:1)) #' tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), #' data=tg,keep=c("x1","x2"),trans=tmat) #' tglong <- expand.covs(tglong,c("x1","x2")) #' cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), #' data=tglong,method="breslow") #' newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) #' msf <- msfit(cx,newdata,trans=tmat) #' #' # Default, all transitions, with SE #' summary(msf) #' summary(msf, conf.type="plain") #' # Only transitions 1 and 3 #' summary(msf, tra=c(1, 3)) #' # Default is 95% confidence interval, change here to 90% #' summary(msf, conf.int=0.90) #' # Do not show variances (nor confidence intervals) #' summary(msf, variance=FALSE) #' # Cumulative hazards only at specified time points #' summary(msf, times=seq(0, 15, by=3)) #' # Last specified time point is larger than last observed, not printed #' # Use extend=TRUE as in summary.survfit #' summary(msf, times=seq(0, 15, by=3), extend=TRUE) #' # Different types of confidence intervals, default is log #' summary(msf, times=seq(0, 15, by=3), conf.type="plain") #' summary(msf, times=seq(0, 15, by=3), conf.type="no") #' # When the number of time points specified is larger than 12, head and tail is shown #' x <- summary(msf, times=seq(5, 8, by=0.25)) #' x #' #' @export summary.msfit <- function(object, times, transitions, variance=TRUE, conf.int=0.95, conf.type=c("log", "none", "plain"), extend=FALSE, ...) { if (!inherits(object, "msfit")) stop("'object' must be a 'msfit' object") conf.type <- match.arg(conf.type) if (!conf.type %in% c("log", "none", "plain")) stop("conf.type should be one of log, none, plain") Haz <- object$Haz varHaz <- object$varHaz # Check for msfit.relsurv: if('var.pop.haz' %in% colnames(varHaz)){ varHaz <- varHaz[varHaz$var.pop.haz=='bootstrap', 1:4] } K <- max(Haz$trans) tt <- unique(Haz$time) # the time points nt <- length(tt) if (missing(transitions)) transitions <- 1:K transitions <- intersect(transitions, 1:K) res <- list() if (variance) { if (missing(times)) { for (k in transitions) { dfr <- Haz[Haz$trans == k, ] varHazk <- varHaz$varHaz[varHaz$trans1 == k & varHaz$trans2 == k] dfr[, 3] <- sqrt(varHazk) names(dfr)[3] <- "seHaz" # Calculate confidence intervals if (!conf.type=="none") { if (conf.type=="plain") { lower <- dfr$Haz - qnorm(1 - (1-conf.int)/2) * dfr$seHaz upper <- dfr$Haz + qnorm(1 - (1-conf.int)/2) * dfr$seHaz lower[lower<0] <- 0 } else if (conf.type=="log") { lower <- exp(log(dfr$Haz) - qnorm(1 - (1-conf.int)/2) * dfr$seHaz / dfr$Haz) upper <- exp(log(dfr$Haz) + qnorm(1 - (1-conf.int)/2) * dfr$seHaz / dfr$Haz) lower[lower<0] <- 0 lower[dfr$seHaz==0] <- dfr$Haz[dfr$seHaz==0] upper[dfr$seHaz==0] <- dfr$Haz[dfr$seHaz==0] } dfr <- cbind(dfr, lower, upper) names(dfr)[4:5] <- c("lower", "upper") } res[[k]] <- dfr } } else { if (!extend) times <- times[times<=max(tt)] for (k in transitions) { Hazk <- Haz[Haz$trans == k, ] varHazk <- varHaz$varHaz[varHaz$trans1 == k & varHaz$trans2 == k] dfr <- matrix(NA, length(times), 3) dfr[, 1] <- times dfr[, 2] <- approx(x=tt, y=Hazk$Haz, xout=times, f=0, method="constant", rule=2)$y dfr[, 3] <- approx(x=tt, y=sqrt(varHazk), xout=times, f=0, method="constant", rule=2)$y dfr <- as.data.frame(dfr) names(dfr) <- c("times", "Haz", "seHaz") # Calculate confidence intervals if (!conf.type=="none") { if (conf.type=="plain") { lower <- dfr$Haz - qnorm(1 - (1-conf.int)/2) * dfr$seHaz upper <- dfr$Haz + qnorm(1 - (1-conf.int)/2) * dfr$seHaz lower[lower<0] <- 0 } else if (conf.type=="log") { lower <- exp(log(dfr$Haz) - qnorm(1 - (1-conf.int)/2) * dfr$seHaz / dfr$Haz) upper <- exp(log(dfr$Haz) + qnorm(1 - (1-conf.int)/2) * dfr$seHaz / dfr$Haz) lower[lower<0] <- 0 lower[dfr$seHaz==0] <- dfr$Haz[dfr$seHaz==0] upper[dfr$seHaz==0] <- dfr$Haz[dfr$seHaz==0] } dfr <- cbind(dfr, lower, upper) names(dfr)[4:5] <- c("lower", "upper") } res[[k]] <- dfr } } } else { # no variance if (missing(times)) { for (k in transitions) res[[k]] <- Haz[Haz$trans == k, c("time", "Haz")] } else { if (!extend) times <- times[times<=max(tt)] for (k in transitions) { Hazk <- Haz[Haz$trans == k, ] dfr <- matrix(NA, length(times), 2) dfr[, 1] <- times dfr[, 2] <- approx(x=tt, y=Hazk$Haz, xout=times, f=0, method="constant", rule=2)$y dfr <- as.data.frame(dfr) names(dfr) <- c("times", "Haz") res[[k]] <- dfr } } } attr(res, "transitions") <- transitions class(res) <- "summary.msfit" return(res) } #' Print method for summary.msfit object #' #' @param x Object of class 'summary.msfit', to be printed #' @param complete Whether or not the complete estimated cumulative transition #' intensities should be printed (\code{TRUE}) or not (\code{FALSE}); default #' is \code{FALSE}, in which case the estimated cumulative transition hazards #' will be printed for the first and last 6 time points of each transition or #' of the selected times (or all when there are at most 12 of these time points #' @param \dots Further arguments to print #' #' @examples #' \dontrun{ #' # If all time points should be printed, specify complete=TRUE in the print statement #' print(x, complete=TRUE) #' } #' #' @export print.summary.msfit <- function(x, complete=FALSE, ...) { if (!inherits(x, "summary.msfit")) stop("'x' must be a 'summary.msfit' object") transitions <- attr(x, "transitions") tt <- unique(x[[1]]$time) # the time points nt <- length(tt) if (nt<=12 | complete) { for (k in transitions) { cat("\nTransition", k, ":\n") ptk <- x[[k]] print(ptk, ...) } } else { for (k in transitions) { cat("\nTransition", k, "(head and tail):\n") ptk <- x[[k]] print(head(ptk), ...) cat("\n...\n") print(tail(ptk), ...) } } return(invisible()) } mstate/R/ggplot.Cuminc.R0000644000176200001440000000761014627637077014633 0ustar liggesusers##***********************************## ## ggplot2 version of plot.Cuminc ## ## using geom_ribbons ## ##***********************************## prep_Cuminc_df <- function(x, shift_vars, conf.type, conf.int) { # For data.table warnings . <- prob <- se <- NULL # Get list of se cols and prob cols (Cumin will always return SEs) prob_cols <- grep(x = names(x), pattern = "^CI", value = TRUE) se_cols <- grep(x = names(x), pattern = "^seCI", value = TRUE) # Prepare long df df_long <- data.table::melt.data.table( data = data.table::data.table(x), measure.vars = list(prob_cols, se_cols), value.name = c("prob", "se"), variable.name = "state" ) df_long[, ':=' ( CI_low = make_prob_confint(prob, se, conf.type, conf.int, bound = "low"), CI_upp = make_prob_confint(prob, se, conf.type, conf.int, bound = "upp") ), by = shift_vars] # Shift for the ribbons df_steps <- rbind(df_long, df_long) data.table::setorder(x = df_steps, time) # Shift time by 1, creating steps, equi to dplyr::lead(time, n = 1) df_steps[, time := data.table::shift( x = time, fill = NA, n = 1, type = "lead" ), by = shift_vars] return(df_steps[!is.na(time)]) } ggplot.Cuminc <- function(x, xlab = "Time", ylab = "Probability", xlim, ylim, lty, legend, cols, conf.type = "log", conf.int = 0.95, legend.pos = "right", facet = FALSE) { # Check for ggplot2 if (!requireNamespace("ggplot2", quietly = TRUE)) { stop("Package ggplot2 needed for this function to work. Please install it.", call. = FALSE) } # For data.table warnings state.grp <- state <- group <- NULL # Check whether group was specified and facets shift_vars <- if ("group" %in% names(x)) c("state", "group") else "state" if (facet & length(shift_vars) == 1) stop("Cannot facet for Cuminc object without group specified") # Format data df_steps <- prep_Cuminc_df( x = x, shift_vars = shift_vars, conf.type = conf.type, conf.int = conf.int ) # If group, add interaction variable for plotting if (!facet & length(shift_vars) > 1) { df_steps[, state.grp := interaction(state, group)] grp <- rlang::sym("state.grp") } else grp <- rlang::sym("state") # Grps n_grps_plotted <- length(unique(df_steps[[grp]])) # Set up graphical parameters of plot if (missing(xlim)) xlim <- c(0, max(df_steps$time)) if (missing(ylim)) ylim <- c(0, 1) if (missing(lty)) lty <- rep(1, n_grps_plotted) if (missing(legend)) legend <- levels(factor(df_steps[[grp]])) if (missing(cols)) cols <- set_colours(n_grps_plotted, type = "lines") col_ribb <- ifelse(conf.type == "none", NA, "grey70") # Start plot p <- ggplot2::ggplot( data = df_steps, ggplot2::aes( x = .data$time, y = .data$prob, col = !!grp, group = !!grp, linetype = !!grp ) ) + ggplot2::geom_ribbon( ggplot2::aes(ymin = .data$CI_low, ymax = .data$CI_upp), fill = col_ribb, col = NA, alpha = 0.5 ) + ggplot2::geom_line(size = 1) + ggplot2::coord_cartesian(xlim = xlim, ylim = ylim, expand = 0) + ggplot2::scale_linetype_manual(values = lty, labels = legend) + ggplot2::scale_color_manual(values = cols, labels = legend) + ggplot2::theme(legend.position = legend.pos) + ggplot2::labs(x = xlab, y = ylab) if (facet) { p <- p + ggplot2::facet_wrap(. ~ group) } return(p) } mstate/R/msfit.R0000644000176200001440000005075014633032700013222 0ustar liggesusers#' Compute subject-specific transition hazards with (co-)variances #' #' This function computes subject-specific or overall cumulative transition #' hazards for each of the possible transitions in the multi-state model. If #' requested, also the variances and covariances of the estimated cumulative #' transition hazards are calculated. #' #' The data frame needs to have one row for each transition in the multi-state #' model. An additional column \code{strata} (numeric) is needed to describe #' for each transition to which stratum it belongs. The name has to be #' \code{strata}, even if in the original \code{coxph} call another variable #' was used. For details refer to de Wreede, Fiocco & Putter (2010). So far, #' the results have been checked only for the \code{"breslow"} method of #' dealing with ties in \code{\link[survival:coxph]{coxph}}, so this is #' recommended. #' #' @param object A \code{\link[survival:coxph]{coxph}} object describing the #' fit of the multi-state model #' @param newdata A data frame with the same variable names as those that #' appear in the \code{coxph} formula. Its use is somewhat different from #' \code{\link[survival:survfit]{survfit}}. See Details. The argument #' \code{newdata} may be omitted only if the right hand side of the formula in #' the \code{coxph} object is \code{~strata(trans)} #' @param variance A logical value indicating whether the (co-)variances of the #' subject-specific transition hazards should be computed. Default is #' \code{TRUE} #' @param vartype A character string specifying the type of variances to be #' computed (so only needed if \code{variance}=\code{TRUE}). Possible values #' are \code{"aalen"} or \code{"greenwood"} #' @param trans Transition matrix describing the states and transitions in the #' multi-state model. See \code{trans} in \code{\link{msprep}} for more #' detailed information #' @return An object of class \code{"msfit"}, which is a list containing #' \item{Haz }{A data frame with \code{time}, \code{Haz}, \code{trans}, #' containing the estimated subject-specific hazards for each of the #' transitions in the multi-state model} \item{varHaz }{A data frame with #' \code{time}, \code{Haz}, \code{trans1}, \code{trans2} containing the #' variances (\code{trans1}=\code{trans2}) and covariances #' (\code{trans1}<\code{trans2}) of the estimated hazards. This element is only #' returned when \code{variance}=\code{TRUE}} \item{trans}{The transition #' matrix used} #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @seealso \code{\link{plot.msfit}} #' @references Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: #' Competing risks and multi-state models. \emph{Statistics in Medicine} #' \bold{26}, 2389--2430. #' #' Therneau TM, Grambsch PM (2000). \emph{Modeling Survival Data: Extending the #' Cox Model}. Springer, New York. #' #' de Wreede LC, Fiocco M, and Putter H (2010). The mstate package for #' estimation and prediction in non- and semi-parametric multi-state and #' competing risks models. \emph{Computer Methods and Programs in Biomedicine} #' \bold{99}, 261--274. #' #' de Wreede LC, Fiocco M, and Putter H (2011). mstate: An R Package for the #' Analysis of Competing Risks and Multi-State Models. \emph{Journal of #' Statistical Software}, Volume 38, Issue 7. #' @keywords survival #' @examples #' #' # transition matrix for illness-death model #' tmat <- trans.illdeath() #' # data in wide format, for transition 1 this is dataset E1 of #' # Therneau & Grambsch (2000) #' tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,0,0,0),x2=c(6:1)) #' # data in long format using msprep #' tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), #' data=tg,keep=c("x1","x2"),trans=tmat) #' # events #' events(tglong) #' table(tglong$status,tglong$to,tglong$from) #' # expanded covariates #' tglong <- expand.covs(tglong,c("x1","x2")) #' # Cox model with different covariate #' cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), #' data=tglong,method="breslow") #' summary(cx) #' # new data, to check whether results are the same for transition 1 as #' # those in appendix E.1 of Therneau & Grambsch (2000) #' newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) #' msfit(cx,newdata,trans=tmat) #' #' @export `msfit` <- function(object, newdata, variance=TRUE, vartype=c("aalen","greenwood"), trans) { ### Modeled after survfit.coxph from the survival library by Therneau; ### indeed much of the code is just copied. Survfit is also called ### for vartype="greenwood". ### Stripped some of the features (cluster, individual) and limited the ### choice of other (type, vartype). ### Input: ### object: a coxph object ### newdata: a dataset with K lines for K transitions, as in survfit; ### newdata should contain a column "strata", specifying to which ### strata in the coxph object the K lines of newdata correspond. ### Argument newdata may only be omitted when the formula ends ### with ~strata(trans) ### variance: if TRUE (default), estimated (co)variance of cumulative ### hazards is returned ### vartype: aalen (default), greenwood is only supported in absence ### of newdata ### trans: the transition matrix of the multi-state model if(!is.null((object$call)$weights) || !is.null(object$weights)) stop("msfit cannot (yet) compute the result for a weighted model") Terms <- terms(object) strat <- attr(Terms, "specials")$strata if (is.null(strat)) stop("object has to have strata() term") cluster <- attr(Terms, "specials")$cluster if (length(cluster)) stop("cluster terms are not supported") if (!is.null(attr(object$terms, "specials")$tt)) stop("msfit cannot yet process coxph models with a tt term") # Not pretty, but avoids x=TRUE issues if (!is.null(object[['x']])) object[['x']] <- NULL resp <- attr(Terms, "variables")[attr(Terms, "response")] nvar <- length(object$coefficients) score <- exp(object$linear.predictors) # exp(beta^T Z_i) vartype <- match.arg(vartype) if (is.na(vartype)) stop("Invalid variance type specified") # Recreate a copy of the data (formerly using coxph.getdata, now with model.frame) # Two purposes. One to find largest time point to be used in end result. # Second later for call to C. has.strata <- !is.null(attr(object$terms, 'specials')$strata) if (is.null(object$y) || is.null(object[['x']]) || !is.null(object$call$weights) || (has.strata && is.null(object$strata)) || !is.null(attr(object$terms, 'offset'))) { mf <- model.frame(object) } else mf <- NULL #useful for if statements later if (is.null(mf)) y <- object[['y']] else { y <- model.response(mf) y2 <- object[['y']] if (!is.null(y2) && any(dim(y2) != dim(y))) stop("Could not reconstruct the y vector") } if (is.null(object[['x']])) x <- model.matrix(object, data=mf) else x <- object[['x']] n <- nrow(y) if (n != object$n[1] || nrow(x) !=n) stop("Failed to reconstruct the original data set") # Here we find largest time point type <- attr(y, 'type') if (type=='counting') lasty <- max(y[,2]) # start, stop, status else if (type=='right') lasty <- max(y[,1]) # time, status else stop("Cannot handle \"", type, "\" type survival data") if (is.null(mf)) offset <- 0 else { offset <- model.offset(mf) if (is.null(offset)) offset <- 0 } Terms <- object$terms if (!has.strata) strata <- rep(0L,n) else { stangle <- untangle.specials(Terms, 'strata') # used multiple times strata <- object$strata #try this first if (is.null(strata)){ if (length(stangle$vars)==1) strata <- mf[[stangle$vars]] else strata <- strata(mf[, stangle$vars], shortlabel=TRUE) } } if (has.strata) { temp <- attr(Terms, "specials")$strata factors <- attr(Terms, "factors")[temp,] strata.interaction <- any(t(factors)*attr(Terms, "order") >1) if (strata.interaction) stop("Interaction terms with strata not supported") } if (vartype=="greenwood") { if (missing(trans)) stop("argument trans missing; needed for vartype=\"greenwood\"") labels <- attr(Terms, "term.labels") if (length(labels)!=1) stop("Invalid formula for greenwood, ~strata(trans) needed, no covariates allowed") if (attr(Terms, "term.labels") != "strata(trans)") # This will happen if length=1 and different from strata(trans) stop("Invalid formula for greenwood, ~strata(trans) needed, no covariates allowed") sf0 <- summary(survfit(object)) norisk <- sf0$n.risk noevent <- sf0$n.event # Allows two-state models (same fix as when vartype = "aalen") trans.new <- if (is.null(sf0$strata)) 1L else as.numeric(sf0$strata) sf0 <- data.frame(time=sf0$time,Haz=-log(sf0$surv),norisk=norisk, noevent=noevent, trans=trans.new) allt <- sort(unique(c(sf0$time,lasty))) nt <- length(allt) K <- nrow(to.trans2(trans)) ### Set up empty structures for Haz and varHaz Haz <- data.frame(time=rep(allt,K),Haz=NA,trans=rep(1:K,rep(nt,K))) if (variance) { tr12 <- data.frame(trans1=rep(1:K,rep(K,K)),trans2=rep(1:K,K)) tr12 <- tr12[tr12$trans1<=tr12$trans2,] varHaz <- data.frame(time=rep(allt,K*(K+1)/2),varHaz=0, trans1=rep(tr12$trans1,rep(nt,K*(K+1)/2)), trans2=rep(tr12$trans2,rep(nt,K*(K+1)/2))) } ### Easiest to loop over starting states S <- nrow(trans) for (s in 1:S) { trs <- trans[s,] trs <- trs[!is.na(trs)] ntrs <- length(trs) if (ntrs > 0) { for (i in 1:ntrs) { trans1 <- trs[i] sf1 <- sf0[sf0$trans==trans1,] Haz$Haz[(trans1-1)*nt + match(sf1$time,allt)] <- sf1$Haz Haz$Haz[(trans1-1)*nt + 1:nt] <- NAfix(Haz$Haz[(trans1-1)*nt + 1:nt],subst=0) if (variance) { varHaz1 <- cumsum((sf1$norisk-sf1$noevent)*sf1$noevent/sf1$norisk^3) varHaz11 <- varHaz[varHaz$trans1==trans1 & varHaz$trans2==trans1,] varHaz11$varHaz <- NA varHaz11$varHaz[match(sf1$time,allt)] <- varHaz1 varHaz11$varHaz <- NAfix(varHaz11$varHaz,subst=0) varHaz[varHaz$trans1==trans1 & varHaz$trans2==trans1,] <- varHaz11 if (i0) { varHazij <- rep(NA,length(jointt)) ik <- match(jointt,sf1$time) jk <- match(jointt,sf2$time) varHazij <- cumsum(-sf1$noevent[ik]*sf2$noevent[jk]/sf1$norisk[ik]^3) ## sf1$norisk[ik] should be equal to sf2$norisk[jk] varHaz12 <- varHaz[varHaz$trans1==trans1 & varHaz$trans2==trans2,] varHaz12$varHaz <- NA varHaz12$varHaz[match(jointt,allt)] <- varHazij varHaz12$varHaz <- NAfix(varHaz12$varHaz,subst=0) varHaz[varHaz$trans1==trans1 & varHaz$trans2==trans2,] <- varHaz12 } } } } } } } } else { # aalen labels <- attr(Terms, "term.labels") if (length(labels)==1) { if (labels == "strata(trans)") { # no covariates, no call to C sf0 <- summary(survfit(object)) trans.new <- if (is.null(sf0$strata)) 1L else as.numeric(sf0$strata) norisk <- sf0$n.risk noevent <- sf0$n.event sf0 <- data.frame(time=sf0$time,Haz=-log(sf0$surv),norisk=norisk, noevent=noevent,var=sf0$std.err^2/(sf0$surv)^2, trans=trans.new) allt <- sort(unique(c(sf0$time,lasty))) nt <- length(allt) K <- max(sf0$trans) ### Set up empty structures for Haz and varHaz Haz <- data.frame(time=rep(allt,K),Haz=NA,trans=rep(1:K,rep(nt,K))) if (variance) { tr12 <- data.frame(trans1=rep(1:K,rep(K,K)),trans2=rep(1:K,K)) tr12 <- tr12[tr12$trans1<=tr12$trans2,] varHaz <- data.frame(time=rep(allt,K*(K+1)/2),varHaz=0, trans1=rep(tr12$trans1,rep(nt,K*(K+1)/2)), trans2=rep(tr12$trans2,rep(nt,K*(K+1)/2))) } for (k in 1:K) { # no need for inner loop, since estimated hazards are uncorrelated sfk <- sf0[sf0$trans==k,] wht <- match(sfk$time,allt) Hazk <- Haz[Haz$trans==k,] Hazk$Haz[wht] <- sfk$Haz Hazk$Haz <- NAfix(Hazk$Haz,subst=0) Haz[Haz$trans==k,] <- Hazk if (variance) { varHazkk <- varHaz[varHaz$trans1==k & varHaz$trans2==k,] varHazkk$varHaz <- NA varHazkk$varHaz[wht] <- sfk$var varHazkk$varHaz <- NAfix(varHazkk$varHaz,subst=0) varHaz[varHaz$trans1==k & varHaz$trans2==k,] <- varHazkk } } } } else { method <- object$method if (method=="breslow") method <- 1 else if (method=="efron") method <- 2 else stop("Only \"efron\" and \"breslow\" methods for ties supported") # Copy of the data was already recreated. Finish the job for second purpose. # Get the sort index for the data, and add a column to y if # necessary to make it of the "counting process" type # (only 1 C routine to handle both cases). # type <- attr(y, 'type') if (type=='counting') { if (has.strata) ord <- order(mf[,strat], y[,2], -y[,3]) else ord <- order(y[,2], -y[,3]) } else if (type=='right') { if (has.strata) ord <- order(mf[,strat], y[,1], -y[,2]) else ord <- order(y[,1], -y[,2]) miny <- min(y[,1]) if (miny < 0) y <- cbind(2*miny -1, y) else y <- cbind(-1, y) } else stop("Cannot handle \"", type, "\" type survival data") # Previously, in call to coxph.getdata(), x=variance was used as argument, # meaning that data$x would be non-null iff variance=TRUE, hence the previous # if (!is.null(data$x)) x <- data$x[ord,], is changed into: if (variance) ... if (variance) x <- x[ord,] else x <- 0 # The strata part works differently from survfit; each line in # newdata is associated with a single stratum, explicitly given in # newdata if (has.strata) newstrat <- (as.numeric(mf[,strat]))[ord] else newstrat <- rep(1,n) newstrat <- cumsum(table(newstrat)) # !!! need to check what happens without strata H <- length(newstrat) subterms <- function(tt, i) { dataClasses <- attr(tt, "dataClasses") predvars <- attr(tt, "predvars") oldnames <- dimnames(attr(tt, 'factors'))[[1]] tt <- tt[i] index <- match(dimnames(attr(tt, 'factors'))[[1]], oldnames) if (length(index) >0) { if (!is.null(predvars)) attr(tt, "predvars") <- predvars[c(1, index+1)] if (!is.null(dataClasses)) attr(tt, "dataClasses") <- dataClasses[index] } tt } if (has.strata) { temp <- untangle.specials(Terms, 'strata') if (length(temp$vars)) Terms <- subterms(Terms, -temp$terms) } # Get the second, "new" data set Terms2 <- delete.response(Terms) if (has.strata) { if (length(attr(Terms2, 'specials')$strata)) Terms2 <- subterms(Terms2, -attr(Terms2, 'specials')$strata) if (!is.null(object$xlevels)) { myxlev <- object$xlevels[match(attr(Terms2, "term.labels"), names(object$xlevels), nomatch=0)] if (length(myxlev)==0) myxlev <- NULL } else myxlev <- NULL mf2 <- model.frame(Terms2, data=newdata, xlev=myxlev) } else mf2 <- model.frame(Terms2, data=newdata, xlev=object$xlevels) offset2 <- 0 #offset variable for the new data set if (!missing(newdata)) { offset2 <- model.offset(mf2) if (length(offset2) >0) offset2 <- offset2 - mean(offset) else offset2 <- 0 x2 <- model.matrix(Terms2, mf2)[,-1, drop=FALSE] #no intercept } else stop("newdata missing") if (has.strata & is.null(newdata$strata)) stop("no \"strata\" column present in newdata") n2 <- nrow(x2) # Compute risk scores for the new subjects coef <- ifelse(is.na(object$coefficients), 0, object$coefficients) newrisk <- exp(c(x2 %*% coef) + offset2 - sum(coef*object$means)) dimnames(y) <- NULL # I only use part of Y, so names become invalid storage.mode(y) <- 'double' ndead <- sum(y[,3]) untimes <- sort(unique(y[,2][y[,3]==1])) nt <- length(untimes) # n2,nvar are called K,p in 'agmssurv' surv <- .C('agmssurv', ### modeled after 'agsurv2' from survival, changes indicated sn = as.integer(n), sp = as.integer(nvar), svar = as.integer(variance), smethod = as.integer(method), sH = as.integer(H), sK = as.integer(n2), snt = as.integer(nt), ## NEW: length of unt y = y[ord,], score = as.double(score[ord]), xmat = as.double(x), varcov = as.double(object$var), strata = as.integer(c(0,newstrat)), ### CHANGED: format to contain 0, end of stratum 1, end of stratum 2 etc in y kstrata = as.integer(newdata$strata), ### NEW: kstrata[k] = stratum in newdata[k,] unt = as.double(untimes), ### NEW: unique event times from all strata newx = as.double(x2), newrisk = as.double(newrisk), Haz = double(nt*n2), ### NEW: OUTPUT, what used to be surv, dimension has changed varHaz = double(nt*n2*(n2+1)/2), ### NEW: OUTPUT, what used to be varhaz, dimension has changed, also contains covariances d = double(3*nvar), ### working vectors d work = double(nt*n2*(nvar+1)) ### NEW: another working vector ) # Restructure Haz and varHaz as data frames Haz <- data.frame(time=rep(untimes,n2),Haz=surv$Haz,trans=rep(1:n2,rep(nt,n2))) varHaz <- as.vector(t(matrix(surv$varHaz,ncol=nt))) # change row and column order hlp <- matrix(c(rep(1:n2,rep(n2,n2)),rep(1:n2,n2)),n2^2,2) hlp <- hlp[hlp[,1]<=hlp[,2], , drop=FALSE] varHaz <- data.frame(time=rep(untimes,n2*(n2+1)/2),varHaz=varHaz, trans1=rep(hlp[,1],rep(nt,n2*(n2+1)/2)), trans2=rep(hlp[,2],rep(nt,n2*(n2+1)/2))) # Squeeze in the lasty, unless lasty is event time if (lasty > max(untimes)) { Hmat <- matrix(Haz$Haz,nrow=nt) Hmat <- rbind(Hmat,Hmat[nt,]) vHmat <- matrix(varHaz$varHaz,nrow=nt) vHmat <- rbind(vHmat,vHmat[nt,]) untimes <- c(untimes,lasty) nt <- nt+1 Haz <- data.frame(time=rep(untimes,n2),Haz=as.vector(Hmat),trans=rep(1:n2,rep(nt,n2))) varHaz <- data.frame(time=rep(untimes,n2*(n2+1)/2),varHaz=as.vector(vHmat), trans1=rep(hlp[,1],rep(nt,n2*(n2+1)/2)), trans2=rep(hlp[,2],rep(nt,n2*(n2+1)/2))) } } } if (variance) res <- list(Haz=Haz,varHaz=varHaz,trans=trans) else res <- list(Haz=Haz,trans=trans) class(res) <- "msfit" return(res) } mstate/R/relsurv.msboot.relsurv.boot.R0000644000176200001440000001251714627637077017573 0ustar liggesusers#' Default theta function used for msboot.relsurv #' #' Helper function used for calling inside msboot.relsurv #' (used for every bootstrap dataset). #' This function is used for calculating split hazards #' and evaluating them at all needed times. #' @param data An object of class 'msdata' containing a bootstrapped sample #' @param transmat The transition matrix of class transMat #' @param all_times All times at which the hazards have to be evaluated #' @param split.transitions An integer vector containing the numbered transitions that should be split. Use same numbering as in the given transition matrix #' @param rmap An optional list to be used if the variables in the dataset are not organized (and named) in the same way as in the ratetable object #' @param time.format Define the time format which is used in the dataset Possible options: c('days', 'years', 'months'). Default is 'days' #' @param boot_orig_msfit Logical, if true, do the bootstrap for the basic msfit model #' @param ratetable The population mortality table. A table of event rates, organized as a ratetable object, see for example relsurv::slopop. Default is slopop #' @param add.times Additional times at which hazards should be evaluated #' @return A list of calculated values for the given bootstrap sample. #' #' @author Damjan Manevski \email{damjan.manevski@@mf.uni-lj.si} #' @seealso \code{\link{msboot.relsurv}} #' #' @export `msboot.relsurv.boot` <- function(data, transmat, all_times, split.transitions, rmap, time.format, boot_orig_msfit=FALSE, ratetable=relsurv::slopop, add.times){ if(!missing(rmap)) rmap <- as.call(rmap) trans <- NULL # Round, if needed: tolerance <- 1e-15 # Fit models: cox_new <- suppressWarnings(coxph(Surv(Tstart, Tstop, status)~strata(trans), data=data, method="breslow")) msf_new <- suppressWarnings(mstate::msfit(cox_new,trans=transmat, variance = FALSE)) msf_relsurv <- msfit.relsurv(msfit.obj = msf_new, data = data, split.transitions = split.transitions ,ratetable = ratetable ,rmap = rmap ,time.format = time.format ,link_trans_ind = TRUE ,substitution = FALSE ,add.times = add.times ) # Hazards: output <- msf_relsurv$Haz output_updated <- output[0,] # For every transition in msf_relsurv$Haz, add the times # that are missing in this chosen bootstrap sample: for(i in msf_relsurv$trans[!is.na(msf_relsurv$trans)]){ # Take transition subsets: output_tmp <- subset(output, trans == i) all_times_tmp <- subset(all_times, trans == i) # Find times that have to be added: missing_times <- all_times_tmp$Tstop[!(all_times_tmp$Tstop %in% output_tmp$time)] missing_times <- unique(sort(missing_times)) # Add missing times, if present at all: if(length(missing_times)>0){ # Make new data.frame and add it to the existing one: output_tmp_2 <- data.frame(time = missing_times, Haz = NA, trans = i) output_tmp <- rbind(output_tmp, output_tmp_2) output_tmp <- output_tmp[order(output_tmp$time),] small_diffs <- c(1, diff(output_tmp$time)) small_diffs2 <- c(small_diffs[-1], 1) output_tmp <- output_tmp[!is.na(output_tmp$Haz) | (small_diffs>tolerance & small_diffs2>tolerance),] output_tmp$Haz <- suppressWarnings({NAfix(output_tmp$Haz,0)}) } # Check if there are any unneeded times: unneeded_times <- which(!(output_tmp$time %in% all_times_tmp$Tstop)) if(length(unneeded_times)>0) output_tmp <- output_tmp[-unneeded_times,] output_updated <- rbind(output_updated, output_tmp) } if(boot_orig_msfit){ # ADDITION: BOOTSTRAPPED VAR FROM MSFIT output_updated$trans <- paste0(output_updated$trans, "new") # Find transitions that have been splitted: splitted_trans <- msf_new$trans[,!(colnames(msf_new$trans) %in% colnames(msf_relsurv$trans))] # Save them in a nice format: splitted_trans <- stats::na.omit(as.vector(splitted_trans)) for(i in splitted_trans){ output_tmp <- subset(msf_new[[1]], trans ==i) all_times_tmp <- subset(all_times, trans == i) missing_times <- all_times_tmp$Tstop[!(all_times_tmp$Tstop %in% output_tmp$time)] missing_times <- unique(sort(missing_times)) # Add missing times here: if(length(missing_times)>0){ output_tmp_2 <- data.frame(time = missing_times, Haz = NA, trans = i) output_tmp <- rbind(output_tmp, output_tmp_2) output_tmp <- output_tmp[order(output_tmp$time),] small_diffs <- c(1, diff(output_tmp$time)) small_diffs2 <- c(small_diffs[-1], 1) output_tmp <- output_tmp[!is.na(output_tmp$Haz) | (small_diffs>tolerance & small_diffs2>tolerance),] # output_tmp <- output_tmp[small_diffs>tolerance,] output_tmp$Haz <- NAfix(output_tmp$Haz,0) } output_tmp$trans <- paste0(output_tmp$trans, "old") output_updated <- rbind(output_updated, output_tmp) } } return(list(output_updated, msf_relsurv$link_trans)) }mstate/R/mssample.R0000644000176200001440000004032214627654322013730 0ustar liggesusers#' Sample paths through a multi-state model #' #' Given cumulative transition hazards sample paths through the multi-state #' model. #' #' The procedure is described in detail in Fiocco, Putter & van Houwelingen #' (2008). The argument \code{beta.state} and the element \code{tstate} from #' the argument \code{history} are meant to incorporate situations where the #' time at which some previous states were visited may affect future transition #' rates. The relation between time of visit of state \code{s} and transition #' \code{k} is assumed to be linear on the log-hazards; the corresponding #' regression coefficient is to be supplied as the (s,k)-element of #' \code{beta.state}, which is 0 if no such effect has been included in the #' model. If no such effects are present, then \code{beta.state}=\code{NULL} #' (default) suffices. In the \code{tstate} element of \code{history}, the #' \code{s}-th element is the time at which state \code{s} was visited. This is #' only relevant for states which have been visited prior to the beginning of #' sampling, i.e. before the \code{time} element of \code{history}; the #' elements of \code{tstate} are internally updated when in the sampling #' process new states are visited (only if \code{beta.state} is not \code{NULL} #' to avoid unnecessary computations). #' #' @param Haz Cumulative hazards to be sampled from. These should be given as a #' data frame with columns \code{time}, \code{Haz}, \code{trans}, for instance #' as the \code{Haz} list element given by \code{\link{msfit}}. #' @param trans Transition matrix describing the multi-state model. See #' \code{trans} in \code{\link{msprep}} for more detailed information #' @param history A list with elements \code{state}, specifying the starting #' state(s), \code{time}, the starting time(s), and \code{tstate}, a numeric #' vector of length the number of states, specifying at what times states have #' been visited, if appropriate. The default of \code{tstate} is \code{NULL}; #' more information can be found under Details. #' #' The elements \code{state} and \code{time} may either be scalars or vectors, #' in which case different sampled paths may start from different states or at #' different times. By default, all sampled paths start from state 1 at time 0. #' @param beta.state A matrix of dimension (no states) x (no transitions) #' specifying estimated effects of times at which earlier states were reached #' on subsequent transitions. If these are not in the model, the value #' \code{NULL} (default) suffices; more information can be found under Details #' @param clock Character argument, either \code{"forward"} (default) or #' \code{"reset"}, specifying whether the time-scale of the cumulative hazards #' is in forward time (\code{"forward"}) or duration in the present state #' (\code{"reset"}) #' @param output One of \code{"state"}, \code{"path"}, or \code{"data"}, #' specifying whether states, paths, or data should be output. #' @param tvec A numeric vector of time points at which the states or paths #' should be evaluated. Ignored if \code{output}=\code{"data"} #' @param cens An independent censoring distribution, given as a data frame #' with time and Haz #' @param M The number of sampled trajectories through the multi-state model. #' The default is 10, since the procedure can become quite time-consuming #' @param do.trace An integer, specifying that the replication number should be #' written to the console every \code{do.trace} replications. Default is #' \code{NULL} in which case no output is written to the console during the #' simulation #' @return M simulated paths through the multi-state model given by #' \code{trans} and \code{Haz}. It is either a data frame with columns #' \code{time}, \code{pstate1}, ..., \code{pstateS} for S states when #' \code{output="state"}, or with columns \code{time}, \code{ppath1},..., #' \code{ppathP} for the P paths specified in \code{\link{paths}}(trans) when #' \code{output="path"}. When \code{output="data"}, the sampled paths are #' stored in an \code{"msdata"} object, a data frame in long format such as #' that obtained by \code{\link{msprep}}. This may be useful for #' (semi-)parametric bootstrap procedures, in which case \code{cens} may be #' used as censoring distribution (assumed to be independent of all transition #' times and independent of any covariates). #' @author Marta Fiocco, Hein Putter \email{H.Putter@@lumc.nl} #' @references Fiocco M, Putter H, van Houwelingen HC (2008). Reduced-rank #' proportional hazards regression and simulation-based prediction for #' multi-state models. \emph{Statistics in Medicine} \bold{27}, 4340--4358. #' @keywords datagen #' @examples #' #' # transition matrix for illness-death model #' tmat <- trans.illdeath() #' # data in wide format, for transition 1 this is dataset E1 of #' # Therneau & Grambsch (T&G) #' tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,0,0,0),x2=c(6:1)) #' # data in long format using msprep #' tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), #' data=tg,keep=c("x1","x2"),trans=tmat) #' # expanded covariates #' tglong <- expand.covs(tglong,c("x1","x2")) #' # Cox model with different covariate #' cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), #' data=tglong,method="breslow") #' # new data, to check whether results are the same for transition 1 as T&G #' newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) #' fit <- msfit(cx,newdata,trans=tmat) #' tv <- unique(fit$Haz$time) #' # mssample #' set.seed(1234) #' mssample(Haz=fit$Haz,trans=tmat,tvec=tv,M=100) #' set.seed(1234) #' paths(tmat) #' mssample(Haz=fit$Haz,trans=tmat,tvec=tv,M=100,output="path") #' set.seed(1234) #' mssample(Haz=fit$Haz,trans=tmat,tvec=tv,M=100,output="data",do.trace=25) #' #' @export mssample `mssample` <- function(Haz, trans, history=list(state=1,time=0,tstate=NULL), beta.state=NULL, clock=c("forward","reset"), output=c("state","path","data"), tvec, cens=NULL, M=10, do.trace=NULL) { ### Function to sample a path in the multi-state model ### Input: ### Haz: specific cumulative hazard for patient "i" ### trans: matrix describing the multi-state model ### history: the event-history of the patient, given by state and time ### clock: either "forward" or "reset" ### output: "state", "path", or "data" ### tvec: vector of times ### cens: distribution of censored times ### M: number of replications ### Output: ### M simulated path in the muti-state model in the desired output format ### ### Set up output <- match.arg(output) clock <- match.arg(clock) K <- dim(trans)[1] trans2 <- to.trans2(trans) ntrans <- nrow(trans2) if (length(history$state)==1) history$state <- rep(history$state,M) if (length(history$time)==1) history$time <- rep(history$time,M) if (length(history$state)!=length(history$time)) stop("lengths of history$state and history$time differ") if (!is.null(history$tstate)) { # then should be either length K or dim if (is.vector(history$tstate)) if (length(history$tstate) != K) stop("length of history$tstate should equal no of states") else history$tstate <- matrix(history$tstate,K,M) if (is.null(beta.state)) stop("beta.state should be specified when history$tstate not null") } if (!is.null(beta.state)) if (any(dim(beta.state) != c(K,ntrans))) stop("incorrect dimension of beta.state") if (output=="state") # to contain sum res <- matrix(0, length(tvec), K) else if (output=="path") {# to contain sum thepaths <- paths(trans) L <- nrow(thepaths) res <- matrix(0, length(tvec), L) } else res <- NULL for (m in 1:M) { if (!is.null(history$tstate)) res1 <- mssample1(Haz, trans, history=list(state=history$state[m], time=history$time[m], tstate=history$tstate[,m]), beta.state=beta.state, clock=clock, output=output, tvec=tvec, cens=cens) else res1 <- mssample1(Haz, trans, history=list(state=history$state[m], time=history$time[m], tstate=rep(0,K)), beta.state=beta.state, clock=clock, output=output, tvec=tvec, cens=cens) if (output=="data") { res1[,1] <- m res <- rbind(res,res1) } else res <- res + res1 if (!is.null(do.trace)) if (m %% do.trace == 0) { cat("Replication",m,"finished at",date(),"\n") flush.console() } } if (output=="state") { res <- data.frame(cbind(tvec,res/M)) names(res) <- c("time",paste("pstate",1:K,sep="")) } else if (output=="path") { res <- data.frame(cbind(tvec,res/M)) names(res) <- c("time",paste("ppath",1:L,sep="")) } else if (output=="data") { res <- data.frame(res) names(res) <- c("id","Tstart","Tstop","duration","from","to","status","trans") attr(res, "trans") <- trans class(res) <- c("msdata", "data.frame") } return(res) } `mssample1` <- function(Haz, trans, history, beta.state, clock, output, tvec, cens) { ### ### Function to sample a single path in the multi-state model ### Used internally in function mssample and msboot ### ### First sample (once) from censoring distribution, this will be the follow-up time if (!is.null(cens)) { pcens <- diff(c(0,1-cens$surv)) idx <- sample(1:length(cens$time), size=1, prob=pcens) fut <- cens$time[idx] censtime <- list(time=fut, jump=ifelse(idx>1,cens$Haz[idx]-cens$Haz[idx-1],cens$Haz[idx])) } else censtime <- NULL K <- dim(trans)[1] trans2 <- to.trans2(trans) from <- to <- history$state tcond <- t0 <- Tstart <- history$time if (output=="state") res <- matrix(0, length(tvec), K) else if (output=="path") { thepaths <- paths(trans) path <- c(to, rep(NA,ncol(thepaths)-1)) res <- matrix(0, length(tvec), nrow(thepaths)) } else res <- NULL ### keep track of when states were visited tstates <- history$tstate while (!is.na(to)) { from <- to nstates <- trans[from,] transs <- nstates[!is.na(nstates)] allto <- which(!is.na(nstates)) ntr <- length(transs) if (ntr!=0 ) { # if not yet in absorbing state transnos <- transs for (tr in 1:ntr) Haz$Haz[Haz$trans==transnos[tr]] <- exp(sum(beta.state[,transnos[tr]]*tstates)) * Haz$Haz[Haz$trans==transnos[tr]] whh <- which(!is.na(match(Haz$trans,transnos))) if (clock=="forward") { crs <- crsample(Haz[whh,], tcond, censtime) tcond <- Tstop <- crs$t } else { crs <- crsample(Haz[whh,], t0, censtime) t0 <- 0 tcond <- Tstop <- crs$t + tcond } transno <- crs$trans if (is.na(transno)) to <- NA else { to <- trans2$to[transno] tstates[to] <- Tstop } if (output=="state") { res[((tvec>=Tstart)&(tvec=Tstart)&(tvec=Tstart,from] <- 1 } else if (output=="path") { idx <- which(apply(thepaths,1,function(x) identical(x,path))) res[tvec>=Tstart,idx] <- 1 path[which(is.na(path))[1]] <- to } else { res1 <- matrix(c(rep(NA,ntr),rep(Tstart,ntr),rep(Tstop,ntr),rep(Tstop-Tstart,ntr),rep(from,ntr),allto,rep(0,2*ntr)),ntr,8) res1[res1[,6]==to,7] <- 1 res1[,8] <- trans[from,allto] # trans res <- rbind(res,res1) } } } return(res) } `crsample` <- function(Haz, tcond=0, censtime=NULL) ### censtime here is list with time and last jump (=pp.fut) { if (is.null(censtime)) fut <- Inf else fut <- censtime$time transs <- Haz$trans transun <- unique(transs) K <- length(transun) tt <- sort(unique(Haz$time)) n <- length(tt) cim <- matrix(NA, n, 3*K+4) ci <- as.data.frame(cim) names(ci)[1] <- "time" names(ci)[2:(K+1)] <- paste("Haz",as.character(1:K), sep="") names(ci)[(K+2):(2*K+1)] <- paste("haz",as.character(1:K), sep="") names(ci)[(2*K+2):(3*K+1)] <- paste("CI",as.character(1:K), sep="") names(ci)[3*K+2] <- "hazsum" names(ci)[3*K+3] <- "Hazsum" names(ci)[3*K+4] <- "S0" ci$time <- tt for (k in 1:K) { # select the elements for each transition in the block wh <- which(Haz$trans==transun[k]) idx <- match(Haz$time[wh],tt) ci[,k+1][idx] <- Haz$Haz[wh] ci[,k+1] <- NAfix(ci[,k+1],subst=0) ci[,K+1+k] <- diff(c(0,ci[,k+1])) # the hazard for transition k } ## select only t > tcond, and adjust the cumulative hazards ci <- ci[ci$time>tcond,] n <- nrow(ci) for (k in 1:K) # each cumulative hazard is adjusted (cumulative sum of hazard) ci[,k+1] <- cumsum(ci[,K+1+k]) ### compute baseline survival S0, need to sum all columns Hazards if (K==1) ci$hazsum <- ci[,3] else ci$hazsum <- apply(ci[,((K+2):(2*K+1))],1,sum) ci$S0 <- cumprod(1-ci$hazsum) ci$Hazsum <- -log(ci$S0) nci <- nrow(ci) ### Follow Dabrowska in first sampling from the sum of the cumulative hazards k <- NA tsample <- Hazsample(data.frame(time=ci$time, Haz=ci$Hazsum)) ### If follow-up time is less than tsample, no transition is made if (fut < tsample) crt <- fut else { # else decide between transitions crt <- tsample if (fut>tsample) # the size of the hazard jumps of the transitions # determine the probabilities of choosing the transitions { k <- sample(1:K,size=1,prob=ci[which(ci$time==tsample),(K+2):(2*K+1)]) } else # i.e. if there is fut==tsample, then the jump in the censoring distribution # also plays in the lottery, unless both are Inf, then it doesn't matter if (crt!=Inf) { k <- sample(c(1:K,NA),size=1, prob=c(ci[which(ci$time==tsample),(K+2):(2*K+1)],censtime$jump)) } } if (!is.na(k)) trans <- unique(Haz$trans)[k] # return transition k else trans <- NA return(list(t=crt,trans=trans)) } `Hazsample` <- function(Haz, size=1, replace=TRUE) { ### Function to sample from a distribution given by a cumulative hazard ### Input: ### time: vector containing time points to sample from ### H: the cumulative hazard at those time points ### size: the size of the sample ### replace: sample with or without replacement? (default=TRUE, with replacement) ### Output: ### A random realisation from H p <- diff(c(0,1-exp(-Haz$Haz))) p <- c(p, exp(-Haz$Haz[nrow(Haz)])) # add probability of sampling time=Inf return(sample(c(Haz$time, Inf), size=size, prob=p, replace=replace)) } mstate/R/events.R0000644000176200001440000000512314627637077013423 0ustar liggesusers#' Count number of observed transitions #' #' Given a dataset in long format, for instance generated by #' \code{\link{msprep}}, and a transition matrix for the multi-state model, #' this function counts the number of observed transitions in the multi-state #' model and gives their percentages. #' #' Although \code{msdata} does not need to be the result of a call to #' \code{\link{msprep}}, it does need to be an object of class \code{"msdata"}, #' which is essentially a data frame in long format, with one row for each #' transition for which the subject is at risk. The columns \code{from}, #' \code{to}, and \code{status} need to be present, with appropriate meaning, #' see \code{\link{msprep}}. The \code{msdata} argument needs to have a #' \code{"trans"} attributes, which holds the transition matrix of the #' multi-state model. #' #' @param msdata An object of class \code{"msdata"}, such as output by #' \code{\link{msprep}} #' @return A list containing two tables, the first, called \code{Frequencies}, #' with the number of observed transitions in the multi-state model occurring #' in \code{msdata}, the second, called \code{Proportions}, with the #' corresponding proportions. #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @keywords univar #' @examples #' #' tmat <- trans.illdeath(names=c("Tx","PR","RelDeath")) #' data(ebmt3) # data from Section 4 of Putter, Fiocco & Geskus (2007) #' msebmt <- msprep(time=c(NA,"prtime","rfstime"),status=c(NA,"prstat","rfsstat"), #' data=ebmt3,trans=tmat) #' events(msebmt) # see Fig 13 of Putter, Fiocco & Geskus (2007) #' #' @export events `events` <- function(msdata) { trans <- attr(msdata, "trans") K <- nrow(trans) absorbing <- which(apply(is.na(trans), 1, all)) if (!is.null(dimnames(trans))) states <- dimnames(trans)[[1]] else states <- as.character(1:K) from <- factor(msdata$from,levels=1:K,labels=states) to <- factor(msdata$to,levels=1:K,labels=states) tbl <- table(from[msdata$status==1],to[msdata$status==1],dnn=c("from","to")) counts <- tbl tbl <- table(from,to,dnn=c("from","to")) total <- apply(tbl,1,max) total[absorbing] <- apply(counts[,absorbing,drop=FALSE], 2, sum) noevent <- total - apply(counts,1,sum) counts <- cbind(counts,noevent,total) dn <- dimnames(counts) dn[[2]][(K+1):(K+2)] <- c("no event","total entering") names(dn) <- c("from","to") dimnames(counts) <- dn class(counts) <- "table" freqs <- (counts/total)[,-(K+2)] class(freqs) <- "table" return(list(Frequencies=counts,Proportions=freqs)) } mstate/R/vis.mirror.pt.R0000644000176200001440000002215014641204214014625 0ustar liggesusers#' Mirror plot comparing two probtrans objects #' #' A mirror plot for comparing two different \code{"probtrans"} objects. Useful #' for comparing predicted probabilities for different levels of a covariate, #' or for different subgroups at some prediction time horizon. #' #' @param x A list of two \code{"probtrans"} objects. #' The first element will be on the left of the mirror plot, #' and the second on the right #' @param titles A character vector c("Title for left", "Title for right") #' @param size_titles Numeric, size of the title text #' @param breaks_x_left Numeric vector specifying axis breaks on the left plot #' @param breaks_x_right Numeric vector specifying axis breaks on the right plot #' @param xlab A title for the x-axis, default is "Time" #' @param ylab A title for the y-axis, default is "Probability" #' @param legend.pos Position of the legend, default is "right" #' @param horizon Numeric, position denoting (in time) where to symmetrically #' mirror the plots. Default is maximum follow-up of from both plots. #' #' @inheritParams plot.probtrans #' #' @seealso \code{\link{plot.probtrans}} #' #' @return A ggplot2 object. #' #' @author Edouard F. Bonneville \email{e.f.bonneville@@lumc.nl} #' #' @examples #' #' library(ggplot2) #' #' data("aidssi") #' head(aidssi) #' si <- aidssi #' #' # Prepare transition matrix #' tmat <- trans.comprisk(2, names = c("event-free", "AIDS", "SI")) #' #' # Run msprep #' si$stat1 <- as.numeric(si$status == 1) #' si$stat2 <- as.numeric(si$status == 2) #' #' silong <- msprep( #' time = c(NA, "time", "time"), #' status = c(NA, "stat1", "stat2"), #' data = si, keep = "ccr5", trans = tmat #' ) #' #' # Run cox model #' silong <- expand.covs(silong, "ccr5") #' c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), #' data = silong) #' #' # 1. Prepare reference patient data - both CCR5 genotypes #' WW <- data.frame( #' ccr5WM.1 = c(0, 0), #' ccr5WM.2 = c(0, 0), #' trans = c(1, 2), #' strata = c(1, 2) #' ) #' #' WM <- data.frame( #' ccr5WM.1 = c(1, 0), #' ccr5WM.2 = c(0, 1), #' trans = c(1, 2), #' strata = c(1, 2) #' ) #' #' # 2. Make msfit objects #' msf.WW <- msfit(c1, WW, trans = tmat) #' msf.WM <- msfit(c1, WM, trans = tmat) #' #' # 3. Make probtrans objects #' pt.WW <- probtrans(msf.WW, predt = 0) #' pt.WM <- probtrans(msf.WM, predt = 0) #' #' # Mirror plot split at 10 years - see vignette for more details #' vis.mirror.pt( #' x = list(pt.WW, pt.WM), #' titles = c("WW", "WM"), #' horizon = 10 #' ) #' #' @export vis.mirror.pt <- function(x, titles, size_titles = 5, horizon = NULL, breaks_x_left, breaks_x_right, from = 1, cols, ord, xlab = "Time", ylab = "Probability", legend.pos = "right") { # Check for ggplot2 if (!requireNamespace("ggplot2", quietly = TRUE)) { stop("Package ggplot2 needed for this function to work. Please install it.", call. = FALSE) } # Check the number of states tmat <- x[[1]][["trans"]] state_names <- dimnames(tmat)[[1]] n_states_plotted <- 1 + sum(!is.na(tmat[seq(from, nrow(tmat), by = 1), ])) if (missing(cols)) cols <- set_colours(n_states_plotted, type = "areas") if (missing(ord)) ord <- seq_along(state_names) # First build plot and inherit colours from left p_left <- plot.probtrans(x[[1]], use.ggplot = TRUE, ord = ord, cols = cols, from = from) p_right <- plot.probtrans(x[[2]], use.ggplot = TRUE, ord = ord, cols = cols, from = from) build_p1 <- ggplot2::ggplot_build(p_left) # Inherit also xlims for symmetry - edit here for xlim. left_xlim <- p_left$coordinates$limits$x right_xlim <- p_right$coordinates$limits$x # Horizon for symmetry if (!is.null(horizon)) { if (horizon > max(left_xlim) | horizon > max(right_xlim)) stop(paste0("Horizon should be smaller than both ", max(left_xlim), " and ", max(right_xlim))) left_xlim[which(left_xlim == max(left_xlim))] <- horizon right_xlim[which(right_xlim == max(right_xlim))] <- horizon } # In limits from plots dat_left <- p_left$data[time <= max(left_xlim)] dat_left[time == max(dat_left$time), ]$time <- max(left_xlim) dat_right <- p_right$data[time <= max(right_xlim)] dat_right[time == max(dat_right$time), ]$time <- max(right_xlim) # Check if same ord was used for both plots if (any(levels(dat_left$state) != levels(dat_right$state))) stop("Argument 'ord' must be the same for both plots.") # Get maximum time and set x axis ylim <- c(0, 1) # Prep df, right side needs to lagged main <- prep_compare_df( dat_left = dat_left, dat_right = dat_right ) # Read-in objs dat_main <- main$df_compare max_t <- main$max_t diff <- main$diff # Prep labels breaks_size <- c(floor(max_t / 3), floor(max(dat_right$time) / 3)) if (any(breaks_size == 0)) breaks_size <- c(round(max_t / 3, digits = 1), round(max(dat_right$time) / 3, digits = 1)) if (missing(breaks_x_left)) breaks_x_left <- seq(from = 0, to = max_t, by = breaks_size[1]) if (missing(breaks_x_right)) breaks_x_right <- seq(from = 0, to = max(dat_right$time), by = breaks_size[2]) # If not missing check labels are within bounds if (any(breaks_x_left > max_t)) stop(paste0("Max follow up on left side is ", round(max_t, 3), ", make sure all breaks are smaller!")) if (any(breaks_x_right > max(dat_right$time))) stop(paste0("Max follow up on right side is ", round(max(dat_right$time), 3), ", make sure all breaks are smaller!")) breakos <- c(breaks_x_left, max(dat_main$time) - breaks_x_right) labos <- c(breaks_x_left, breaks_x_right) # Build basic plot p_main <- ggplot2::ggplot(data = dat_main, ggplot2::aes(x = .data$time)) + ggplot2::geom_ribbon( ggplot2::aes(ymin = .data$low, ymax = .data$upp, fill = .data$state), col = "black", na.rm = TRUE ) + # Add divider segment ggplot2::geom_segment( x = max_t, xend = max_t, y = ylim[1], yend = ylim[2], size = 2 ) + ggplot2::scale_x_continuous(xlab, breaks = breakos, labels = labos) + ggplot2::ylab(ylab) + ggplot2::scale_fill_manual(values = cols) + ggplot2::guides(fill = ggplot2::guide_legend(reverse = TRUE)) if (missing(titles)) { p <- p_main + ggplot2::theme( legend.position = legend.pos, panel.grid = ggplot2::element_blank(), panel.background = ggplot2::element_blank(), axis.line = ggplot2::element_blank() ) + ggplot2::coord_cartesian(expand = 0, ylim = ylim) return(p) } else { # Position of titles - divide by max time for grob pos_title_left <- (max_t / 2) pos_title_right <- (max(dat_main$time) - max(dat_right$time) / 2) titles_df <- data.frame( labs = c(titles[1], titles[2]), pos_x = c(pos_title_left, pos_title_right), pos_y = rep(1.05, 2) ) base_p <- p_main + ggplot2::theme( plot.margin = ggplot2::unit(c(30.5, 5.5, 5.5, 5.5), "points"), legend.position = legend.pos, panel.grid = ggplot2::element_blank() ) + ggplot2::coord_cartesian(clip = "off", expand = 0, ylim = ylim) + ggplot2::geom_text( data = titles_df, ggplot2::aes(x = .data$pos_x, y = .data$pos_y, label = .data$labs), hjust = 0.5, size = size_titles ) return(base_p) } } prep_compare_df <- function(dat_left, dat_right) { # For data.table . <- time <- time_orig <- state <- side <- NULL # Get maximum times p1_maxt <- max(dat_left$time) p2_maxt <- max(dat_right$time) # Set max_t to left one in any case max_t <- p1_maxt # Check shift diff <- ifelse(p2_maxt != p1_maxt, p2_maxt - p1_maxt, 0) # Get righthand side back to original df df_p2 <- data.table::copy(dat_right) df_p2[, time := data.table::shift( x = time, fill = NA, n = 1, type = "lag" ), by = state] df_p2 <- unique(df_p2[!is.na(time)]) # Rescale time df_p2[, ':=' ( time_orig = time, time = -time + 2 * max_t + (diff + 0.01) )] # Shift all cols <- c("time", "time_orig") df_p2 <- rbind(df_p2, df_p2) data.table::setorder(df_p2, time) df_p2[, (cols) := Map( f = data.table::shift, x = .SD, fill = time[1L], n = 1, type = "lag" ), by = state, .SDcols = cols] df_p2[, side := "right"] # Left sides df_p1 <- dat_left[, ':=' ( time_orig = time, side = "left" )] # Bind both sides plot_df <- rbind(df_p1, df_p2[!is.na(time)]) # Return a list of useful things res <- list("df_compare" = plot_df, "max_t" = max_t, "diff" = diff) return(res) } mstate/R/ggplot.probtrans.R0000644000176200001440000002704114627637077015427 0ustar liggesusers##***********************************## ## ggplot2 version of plot.probtrans ## ## using geom_ribbons ## ##***********************************## # For data.table .datatable.aware = TRUE # Start function ggplot.probtrans <- function(x, from = 1, type = "filled", ord, cols, xlab = "Time", ylab = "Probability", xlim, ylim, lwd, # linewidth lty, cex, # size of label legend, legend.pos = "right", conf.int = 0.95, # 0 if no confidence intervals conf.type = "log", label) { # specify "annotate" for labels # For R cmd check low <- upp <- state <- prob <- CI_low <- CI_upp <- NULL # Get names of states and state numbers if (missing(legend)) { state_names <- dimnames(x$trans)[[1]] } else if (length(legend) != dim(x$trans)[1]) { stop(paste("'Legend' should be a vector of length ", dim(x$trans)[1])) } else state_names <- legend # Check stacking order if (missing(ord)) ord <- seq_along(state_names) if (missing(cex)) cex <- 8 if (missing(lwd)) lwd <- 0.5 if (!missing(label) & !(type %in% c("filled", "stacked"))) stop("Labels only valid for filled/stacked plots!") # Create copy of pb object so original is NOT affected by references updating pb_copy <- data.table::copy(x) # Prepare dataframe df_steps <- prep_probtrans_df( obj = pb_copy, from = from, ord = ord, state_names = state_names, conf.int = conf.int, conf.type = conf.type ) # Set graphical parameters if (missing(xlim)) xlim <- c(0, max(df_steps$time, na.rm = TRUE)) if (missing(ylim)) ylim <- c(0, 1) n_states_plotted <- length(unique(as.character(df_steps$state))) if (missing(cols)) cols <- set_colours(n_states_plotted, type = "areas") if (length(cols) != n_states_plotted) stop(paste0("Length of col should be ", n_states_plotted)) if (type %in% c("separate", "single")) cols <- set_colours(n_states_plotted, type = "lines") if (missing(lty)) lty <- rep(1, n_states_plotted) if (length(lty) != n_states_plotted) stop(paste0("Length of lty should be ", n_states_plotted)) # Make different plot types if (type == "stacked") { p <- make_labelled_plot( df_steps = df_steps, state_names = state_names, xlim = xlim, lwd = lwd, cex = cex ) + # Stacked so we just remove fill colour ggplot2::scale_fill_manual(values = rep("transparent", length(state_names))) + ggplot2::ylab(ylab) + ggplot2::xlab(xlab) + ggplot2::coord_cartesian(expand = 0, xlim = xlim, ylim = ylim) + ggplot2::theme(legend.position = "none") } else if (type == "filled") { # add if for label_type if (missing(label)) { p <- ggplot2::ggplot( data = df_steps, ggplot2::aes( x = .data$time, ymin = .data$low, ymax = .data$upp, fill = .data$state ) ) + ggplot2::geom_ribbon(col = "black", size = lwd, na.rm = TRUE) + # for rel surv ggplot2::guides(fill = ggplot2::guide_legend("State", reverse = TRUE)) + ggplot2::theme(legend.position = legend.pos) + ggplot2::coord_cartesian(xlim = xlim, ylim = ylim, expand = 0) + ggplot2::xlab(xlab) + ggplot2::ylab(ylab) + ggplot2::scale_fill_manual(values = cols) } else { # Labelled plot p <- make_labelled_plot( df_steps = df_steps, state_names = state_names, xlim = xlim, lwd = lwd, cex = cex ) + ggplot2::scale_fill_manual(values = cols) + ggplot2::ylab(ylab) + ggplot2::xlab(xlab) + ggplot2::coord_cartesian(expand = 0, xlim = xlim, ylim = ylim) + ggplot2::theme(legend.position = "none") } } else if (type == "single") { # Colour of ribbon col_ribb <- ifelse(conf.type == "none", NA, "grey70") p <- ggplot2::ggplot( data = df_steps, ggplot2::aes( x = .data$time, y = .data$prob, col = .data$state, linetype = .data$state ) ) if (sum(grepl(pattern = "CI_low|CI_upp", x = names(df_steps))) > 0) { p <- p + ggplot2::geom_ribbon( ggplot2::aes(ymin = .data$CI_low, ymax = .data$CI_upp), alpha = 0.5, fill = col_ribb, col = NA, na.rm = TRUE ) } p <- p + ggplot2::geom_line(size = lwd) + # colour boundaries ggplot2::guides(col = ggplot2::guide_legend("State", reverse = TRUE)) + ggplot2::theme(legend.position = legend.pos) + ggplot2::coord_cartesian(xlim = xlim, ylim = ylim, expand = 0) + ggplot2::xlab(xlab) + ggplot2::ylab(ylab) + ggplot2::scale_colour_manual("State", values = cols) + ggplot2::scale_linetype_manual("State", values = lty) + ggplot2::guides( col = ggplot2::guide_legend("State", reverse = TRUE), linetype = ggplot2::guide_legend("State", reverse = TRUE) ) } else if (type == "separate") { # Colour of ribbon col_ribb <- ifelse(conf.type == "none", NA, "grey70") p <- ggplot2::ggplot( data = df_steps, ggplot2::aes( x = .data$time, y = .data$prob, col = .data$state, linetype = .data$state ) ) if (sum(grepl(pattern = "CI_low|CI_upp", x = names(df_steps)) > 0)) { p <- p + ggplot2::geom_ribbon( ggplot2::aes(ymin = .data$CI_low, ymax = .data$CI_upp), alpha = 0.5, fill = col_ribb, col = NA, na.rm = TRUE ) } p <- p + ggplot2::geom_line(size = lwd, na.rm = TRUE) + ggplot2::facet_wrap(. ~ state) + ggplot2::guides(col = ggplot2::guide_legend("State", reverse = TRUE)) + ggplot2::coord_cartesian(xlim = xlim, ylim = ylim, expand = 0) + ggplot2::xlab(xlab) + ggplot2::ylab(ylab) + ggplot2::scale_colour_manual("State", values = cols) + ggplot2::scale_linetype_manual("State", values = lty) + ggplot2::guides( col = ggplot2::guide_legend("State", reverse = TRUE), linetype = ggplot2::guide_legend("State", reverse = TRUE) ) + # Facet titles are already the labels ggplot2::theme(legend.position = "none") } else stop("Pick a valid plot type!") return(p) } # Helper function to prep data for plotting prep_probtrans_df <- function(obj, from, ord, state_names, conf.type = "log", conf.int = 0.95) { # For R cmd check . <- state_num <- state <- se_state <- prob <- se <- cum_probs <- NULL # Read in probtrans object df <- data.table::data.table(obj[[from]]) # Subset states with at least one non zero probability zero_prob_cols <- apply(df, 2, function(col) !all(col == 0)) # Condition pstate cols pstate_cols <- grepl(x = names(df), pattern = "pstate|time") condition_pstate <- zero_prob_cols & pstate_cols # Prepare df_pstate <- data.table::melt.data.table( data = df[time != Inf, .SD, .SDcols = condition_pstate], id.vars = "time", variable.name = "state", value.name = "prob" ) df_pstate[, state_num := as.numeric(gsub(x = state, pattern = "pstate", replacement = ""))] df_long <- df_pstate # Check if standard errors were computed (only time) se_cols <- grepl(x = names(df), pattern = "se|time") if (sum(se_cols) > 1) { condition_se <- zero_prob_cols & se_cols # Se's long df_se <- data.table::melt.data.table( data = df[time != Inf, .SD, .SDcols = condition_se], id.vars = "time", variable.name = "se_state", value.name = "se" ) df_se[, state_num := as.numeric(gsub(x = se_state, pattern = "se", replacement = ""))] # Put se's and pstates together df_long <- data.table::merge.data.table( x = df_pstate, y = df_se, by = c("time", "state_num") ) # Add CI for probabilities, do this on log df_long[, ':=' ( CI_low = make_prob_confint(prob, se, conf.type, conf.int, bound = "low"), CI_upp = make_prob_confint(prob, se, conf.type, conf.int, bound = "upp") )] #, by = .(time, state)] %>% } # Order and label factor with state names df_long[, state := factor( x = state_num, levels = ord, labels = state_names[ord] )] data.table::setorder(df_long, time, state) df_long[, cum_probs := cumsum(prob), by = time] # Compute upper and lower bounds of ribbons df_long[, ':=' ( low = c(0, cum_probs[-length(cum_probs)]), upp = c(cum_probs[-length(cum_probs)], 1) ), by = time] # Df with steps for ribbon df_steps <- rbind(df_long, df_long) data.table::setorder(df_steps, time) # Shift time by 1, creating steps, equi to dplyr::lead(time, n = 1) df_steps[, time := data.table::shift( x = time, fill = NA, n = 1, type = "lead" ), by = state] return(df_steps[!is.na(time)]) } make_labelled_plot <- function(df_steps, state_names, xlim, cex, lwd) { # For R cmd check . <- state <- low <- upp <- mean_cprob <- label <- NULL # Max follow-up, depends on xlim time_vec <- df_steps[df_steps$time <= xlim[2], ]$time max_t <- time_vec[length(time_vec)] # Prep labels - at end of follow-up df_labels <- df_steps[, ':=' ( label = ifelse(time == max_t, as.character(state), NA_character_), mean_cprob = (low + upp) / 2 )] # Begin plots p <- ggplot2::ggplot( data = df_labels[time <= max_t, .SD[-.N], by = state], ggplot2::aes(x = .data$time, y = .data$mean_cprob) ) + ggplot2::geom_ribbon( ggplot2::aes(ymin = .data$low, ymax = .data$upp, fill = .data$state), col = "black", size = lwd ) + ggplot2::geom_text( ggplot2::aes(label = .data$label, x = .data$time), na.rm = T, hjust = 1, size = cex ) return(p) } make_prob_confint <- function(prob, se, conf.type = c("log", "plain", "none"), conf.int = 0.95, bound = c("low", "upp")) { conf.type <- match.arg(conf.type) bound <- match.arg(bound) # Get critical value crit <- ifelse(!is.null(conf.int), qnorm((1 - conf.int) / 2, lower.tail = FALSE), 0L) direc <- ifelse(bound == "low", -1L, 1L) bound <- switch( conf.type, log = exp(log(prob) + direc * crit * se / prob), plain = prob + direc * crit * se, none = prob ) # Bound limits in [0, 1], and no CIs for estimates with no SEs bound[bound < 0] <- 0 bound[bound > 1] <- 1 bound[se == 0] <- prob[se == 0] return(bound) } mstate/R/msboot.R0000644000176200001440000000567314627637077013434 0ustar liggesusers#' Bootstrap function in multi-state models #' #' A generic nonparametric bootstrapping function for multi-state models. #' #' The function \code{msboot} samples randomly with replacement subjects from #' the original dataset \code{data}. The individuals are identified with #' \code{id}, and bootstrap datasets are produced by concatenating all selected #' rows. #' #' @param theta A function of \code{data} and perhaps other arguments, #' returning the value of the statistic to be bootstrapped; the output of theta #' should be a scalar or numeric vector #' @param data An object of class 'msdata', such as output from #' \code{\link{msprep}} #' @param B The number of bootstrap replications; the default is taken to be #' quite small (5) since bootstrapping can be time-consuming #' @param id Character string indicating which column identifies the subjects #' to be resampled #' @param verbose The level of output; default 0 = no output, 1 = print the #' replication #' @param ... Any further arguments to the function \code{theta} #' @return Matrix of dimension (length of output of theta) x B, with b'th #' column being the value of theta for the b'th bootstrap dataset #' @author Marta Fiocco, Hein Putter #' @references Fiocco M, Putter H, van Houwelingen HC (2008). Reduced-rank #' proportional hazards regression and simulation-based prediction for #' multi-state models. \emph{Statistics in Medicine} \bold{27}, 4340--4358. #' @keywords datagen #' @examples #' #' tmat <- trans.illdeath() #' data(ebmt1) #' covs <- c("score","yrel") #' msebmt <- msprep(time=c(NA,"rel","srv"),status=c(NA,"relstat","srvstat"), #' data=ebmt1,id="patid",keep=covs,trans=tmat) #' # define a function (this one returns vector of regression coef's) #' regcoefvec <- function(data) { #' cx <- coxph(Surv(Tstart,Tstop,status)~score+strata(trans), #' data=data,method="breslow") #' return(coef(cx)) #' } #' regcoefvec(msebmt) #' set.seed(1234) #' msboot(theta=regcoefvec,data=msebmt,id="patid") #' #' @export msboot `msboot` <- function(theta,data,B=5,id="id",verbose=0,...) { if (!inherits(data, "msdata")) stop("'data' must be a 'msdata' object") trans <- attr(data, "trans") ids <- unique(data[[id]]) n <- length(ids) th <- theta(data,...) # actually only used to get the length res <- matrix(NA,length(th),B) for (b in 1:B) { if (verbose>0) { cat("\nBootstrap replication",b,"\n") flush.console() } bootdata <- NULL bids <- sample(ids,replace=TRUE) bidxs <- unlist(sapply(bids, function(x) which(x==data[[id]]))) bootdata <- data[bidxs,] if (verbose>0) { print(date()) print(events(bootdata)) cat("applying theta ...") } thstar <- theta(bootdata,...) res[,b] <- thstar } if (verbose) cat("\n") return(res) } mstate/R/msprep.R0000644000176200001440000004707714633026667013435 0ustar liggesusers#' Function to prepare dataset for multi-state modeling in long format from #' dataset in wide format #' #' This function converts a dataset which is in wide format (one subject per #' line, multiple columns indicating time and status for different states) into #' a dataset in long format (one line for each transition for which a subject #' is at risk). Selected covariates are replicated per subjects. #' #' For \code{msprep}, the transition matrix should correspond to an #' irreversible acyclic Markov chain. In particular, on the diagonals only #' \code{NA}s are allowed. #' #' The transition matrix, if irreversible and acyclic, will have starting #' states, i.e. states into which no transitions are possible. For these #' starting states \code{NA}s are allowed in the \code{time} and \code{status} #' arguments, either as columns, when specified as matrix or data frame, or as #' elements of the character vector when specified as character vector. #' #' The function \code{msprep} uses a recursive algorithm through calls to the #' recursive function \code{msprepEngine}. First, with the current transition #' matrix, all starting states are detected (defined as states into which there #' are no transitions). For each of these starting states, all subjects #' starting from that state are selected and for each subject the next visited #' state is detected by looking at all transitions from that starting state and #' determining the smallest transition time with \code{status}=1. The recursive #' \code{msprepEngine} is called again with the starting states deleted from #' the transition matrix and with subjects deleted that either reached an #' absorbing state or that were censored. For the remaining subjects the #' starting states and times are updated in the next call. Datasets returned #' from the \code{msprepEngine} calls are appended to the current dataset in #' long format and finally sorted. #' #' A warning is issued for a subject, if multiple transitions exist with the #' same smallest transition time (and \code{status}=0). In such cases the next #' transition cannot be determined unambiguously, and the state with the #' smallest number is chosen. In our experience, occasionally the shortest #' transition time has \code{status}=0, while a higher transition time has #' \code{status}=1. Then this larger transition time and the corresponding #' transition is selected. No warning is issued for these data inconsistencies. #' #' @param time Either 1) a matrix or data frame of dimension n x S (n being the #' number of individuals and S the number of states in the multi-state model), #' containing the times at which the states are visited or last follow-up time, #' or 2) a character vector of length S containing the column names indicating #' these times. In the latter cases, some elements of \code{time} may be NA, #' see Details #' @param status Either 1) a matrix or data frame of dimension n x S, #' containing, for each of the states, event indicators taking the value 1 if #' the state is visited or 0 if it is not (censored), or 2) a character vector #' of length S containing the column names indicating these status variables. #' In the latter cases, some elements of \code{status} may be NA, see Details #' @param data Data frame (not a tibble) in wide format in which to interpret #' \code{time}, \code{status}, \code{id} or \code{keep}, if appropriate #' @param trans Transition matrix describing the states and transitions in the #' multi-state model. If S is the number of states in the multi-state model, #' \code{trans} should be an S x S matrix, with (i,j)-element a positive #' integer if a transition from i to j is possible in the multi-state model, #' \code{NA} otherwise. In particular, all diagonal elements should be #' \code{NA}. The integers indicating the possible transitions in the #' multi-state model should be sequentially numbered, 1,...,K, with K the #' number of transitions #' @param start List with elements \code{state} and \code{time}, containing #' starting states and times of the subjects in the data. Default is #' \code{NULL}, in which case all subjects start in state 1 at time 0. If a #' single state and time are given this state and time is used for all #' subjects, otherwise the length of \code{state} and \code{time} should equal #' the number of subjects in \code{data} #' @param id Either 1) a vector of length n containing the subject #' identifications, or 2) a character string indicating the column name #' containing these subject ids. If not provided, \code{"id"} will be assigned #' with values 1,...,n #' @param keep Either 1) a data frame or matrix with n rows or a numeric or #' factor vector of length n containing covariate(s) that need to be retained #' in the output dataset, or 2) a character vector containing the column names #' of these covariates in \code{data} #' @return An object of class \code{"msdata"}, which is a data frame in long #' (counting process) format containing the subject id, the covariates #' (replicated per subject), and \item{from}{the starting state} \item{to}{the #' receiving state} \item{trans}{the transition number} \item{Tstart}{the #' starting time of the transition} \item{Tstop}{the stopping time of the #' transition} \item{status}{status variable, with 1 indicating an event #' (transition), 0 a censoring} The \code{"msdata"} object has the transition #' matrix as \code{"trans"} attribute. #' @author Hein Putter \email{H.Putter@@lumc.nl} and Marta Fiocco #' @references Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: #' Competing risks and multi-state models. \emph{Statistics in Medicine} #' \bold{26}, 2389--2430. #' @keywords datagen #' @examples #' #' # transition matrix for illness-death model #' tmat <- trans.illdeath() #' # some data in wide format #' tg <- data.frame(stt=rep(0,6),sts=rep(0,6), #' illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,2,2,2),x2=c(6:1)) #' tg$x1 <- factor(tg$x1,labels=c("male","female")) #' tg$patid <- factor(2:7,levels=1:8,labels=as.character(1:8)) #' # define time, status and covariates also as matrices #' tt <- matrix(c(rep(NA,6),tg$illt,tg$dt),6,3) #' st <- matrix(c(rep(NA,6),tg$ills,tg$ds),6,3) #' keepmat <- data.frame(gender=tg$x1,age=tg$x2) #' # data in long format using msprep #' msprep(time=tt,status=st,trans=tmat,keep=as.matrix(keepmat)) #' msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"),data=tg, #' id="patid",keep=c("x1","x2"),trans=tmat) #' # Patient no 5, 6 now start in state 2 at time t=4 and t=10 #' msprep(time=tt,status=st,trans=tmat,keep=keepmat, #' start=list(state=c(1,1,1,1,2,2),time=c(0,0,0,0,4,10))) #' #' @export msprep msprep <- function (time, status, data, trans, start, id, keep) { if (is.circular(trans)) stop("msprep cannot be used with a circular transition matrix") if (!missing(data)) data <- as.data.frame(data) if (!(is.matrix(time) | (is.data.frame(time)))) { if (!is.character(time)) stop("argument \"time\" should be a character vector") if (missing(data)) stop("missing \"data\" argument not allowed when time argument is character vector") startings <- which(apply(!is.na(trans), 2, sum) == 0) wh <- which(is.na(time)) if (!all(wh %in% startings)) stop("no NA's allowed in the \"time\" argument for non-starting states") tcols <- match(time[!is.na(time)], names(data)) if (any(is.na(tcols))) stop("at least one of elements of \"time\" not in data") time <- matrix(NA, nrow(data), length(time)) whcols <- (1:ncol(time))[!(1:ncol(time)) %in% wh] time[, whcols] <- as.matrix(data[, tcols]) } if (!(is.matrix(status) | (is.data.frame(status)))) { if (!is.character(status)) stop("argument \"status\" should be a character vector") if (missing(data)) stop("missing \"data\" argument not allowed when status argument is character vector") startings <- which(apply(!is.na(trans), 2, sum) == 0) wh <- which(is.na(status)) if (!all(wh %in% startings)) stop("no NA's allowed in the \"status\" argument for non-starting states") dcols <- match(status[!is.na(status)], names(data)) if (any(is.na(dcols))) stop("at least one of elements of \"status\" not in data") status <- matrix(NA, nrow(data), length(status)) whcols <- (1:ncol(status))[!(1:ncol(status)) %in% wh] status[, whcols] <- as.matrix(data[, dcols]) } time <- as.matrix(time) status <- as.matrix(status) if (!all(dim(time) == dim(status))) stop("unequal dimensions of \"time\" and \"status\" data") n <- nrow(time) K <- dim(trans)[1] if ((dim(trans)[2] != K) | (dim(time)[2] != K)) stop("dimension of \"trans\" does not match with length of \"time\" and \"status\"") idname <- "id" missingid <- FALSE if (missing(id)) { missingid <- TRUE id <- 1:n } else { if (!is.vector(id)) stop("argument \"id\" is not a vector") else { if (!is.character(id)) { if (length(id) != n) stop("argument \"id\" not of correct length") } else { if (length(id) == 1) { if (n == 1) stop("cannot determine whether \"id\" argument indicates ") else { idname <- id id <- as.factor(data[[id]]) } } else { if (length(id) != n) stop("argument \"id\" not of correct length") id <- factor(id) } } } } idlevels <- NULL if (is.factor(id)) idlevels <- levels(id) if (!missing(start)) { startstate <- start$state starttime <- start$time if (length(startstate) != length(starttime)) stop("starting states and times not of equal length") if (length(startstate) > 1) { if (length(startstate) != n) stop("length of starting states and times different from no of subjects in data") } else { startstate <- rep(startstate, n) starttime <- rep(starttime, n) } } else { startstate <- rep(1, n) starttime <- rep(0, n) } ord1 <- order(id) msres <- msprepEngine(time = time, status = status, id = id, starttime = starttime, startstate = startstate, trans = trans, originalStates = (1:nrow(trans)), longmat = NULL) msres <- as.data.frame(msres) names(msres) <- c(idname, "from", "to", "trans", "Tstart", "Tstop", "status") msres$time <- msres$Tstop - msres$Tstart msres <- msres[, c(1:6, 8, 7)] ord <- order(msres[, 1], msres[, 5], msres[, 2], msres[, 3]) msres <- msres[ord, ] row.names(msres) <- 1:nrow(msres) if (!is.null(idlevels)) msres[, 1] <- factor(as.integer(msres[, 1]), 1:length(idlevels), labels = idlevels) if (!missing(keep)) { if (!(is.matrix(keep) | (is.data.frame(keep)))) { if (is.character(keep)) { if (missing(data)) stop("argument \"data\" is missing, with no default") nkeep <- length(keep) kcols <- match(keep, names(data)) if (any(is.na(kcols))) stop("at least one of elements of \"keep\" not in data") keepname <- keep keep <- data[, kcols] } else { nkeep <- 1 keepname <- names(keep) if (is.null(keepname)) keepname <- "keep" if (length(keep) != n) stop("argument \"keep\" has incorrect dimension") } } else { nkeep <- ncol(keep) keepname <- names(keep) if (nrow(keep) != n) stop("argument \"keep\" has incorrect dimension") if (nkeep == 1) keep <- keep[, 1] } if (is.null(keepname)) keepname <- paste("keep", as.character(1:nkeep), sep = "") if (nkeep > 0) { if (is.factor(msres[, 1])) msres[, 1] <- factor(msres[, 1]) tbl <- table(msres[, 1]) if (nkeep > 1) keep <- keep[ord1,,drop=FALSE] if (nkeep == 1) { ddcovs <- rep(keep[ord1], tbl) ddcovs <- as.data.frame(ddcovs) names(ddcovs) <- keepname } else { ddcovs <- lapply(1:nkeep, function(i) rep(keep[, i], tbl)) ddcovs <- as.data.frame(ddcovs) names(ddcovs) <- keepname } msres <- cbind(msres, ddcovs) } } attr(msres, "trans") <- trans class(msres) <- c("msdata", "data.frame") return(msres) } msprepEngine <- function(time,status,id,starttime,startstate,trans,originalStates,longmat) { ### Recursive engine for msprep ### Input: ### time: n x K numeric matrx containing arrival times ### status: n x K numeric matrix containing arrival times ### id: n vector with ids ### starttime: n vector of starting times ### startstate: n vector of starting states ### trans: current (K x K) matrix ### originalStates: the numbers of the original states in the ### current transition matrix ### longmat: the matrix in longformat that has already been ### constructed ### Output: ### A new longmat matrix with new data appended if (is.null(nrow(time))) return(longmat) # finished if (nrow(time)==0) return(longmat) # also finished states.to <- apply(!is.na(trans),1,sum) absorbing <- which(states.to==0) states.from <- apply(!is.na(trans),2,sum) startings <- which(states.from==0) # preset values for next call to msprepEngine newstate <- startstate newtime <- starttime to.remove <- NULL # indices in data, state, time to be removed at the end for (starting in startings) { # select all subjects starting in starting, no is nstart subjs <- which(startstate==starting) nstart <- length(subjs) # determine states that can be reached from starting tostates <- which(!is.na(trans[starting,])) transs <- trans[starting,tostates] nreach <- length(tostates) # make matrix with nstart*nreach rows if ((nstart>0) & (nreach>0)) { Tstart <- starttime[subjs] Tstop <- time[subjs,tostates,drop=FALSE] # event times before start time do not count # the statement below defining hlp makes sure # these are considered as censorings Tstop[Tstop0) { whsubjs <- id[subjs[whminc]]; whsubjs <- paste(whsubjs,collapse=" ") warning("From starting state ",originalStates[starting],", subject ", whsubjs," has smallest transition time with status=0, larger transition time with status=1") } nexttime[censored] <- smallesttime[censored] if (ncol(hlp)>1) { hlpsrt <- t(apply(hlp,1,sort)) warn1 <- which(hlpsrt[,1]-hlpsrt[,2]==0) if (length(warn1)>0) { isw <- id[subjs[warn1]]; isw <- paste(isw,collapse=" ") hsw <- hlpsrt[warn1,1]; hsw <- paste(hsw,collapse=" ") warning("Starting from state ",originalStates[starting], ", simultaneous transitions possible for subjects ", isw," at times ",hsw, "; smallest receiving state chosen") } } if (length(censored)>0) { nextstate <- apply(hlp[-censored,,drop=FALSE],1,which.min) reachAbsorb <- (1:nstart)[-censored][which(tostates[nextstate] %in% absorbing)] } else { nextstate <- apply(hlp,1,which.min) reachAbsorb <- (1:nstart)[which(tostates[nextstate] %in% absorbing)] } # the status to be returned in long dataframe has 0 if censored # and 1 for the transition followed statmat <- matrix(0,nstart,nreach) if (length(censored)>0) statmatmin <- statmat[-censored,,drop=FALSE] else statmatmin <- statmat if (nrow(statmatmin)>0) statmatmin <- t(sapply(1:nrow(statmatmin),function(i) { x <- statmatmin[i,] x[nextstate[i]] <- 1 return(x) } )) if (length(censored)>0) statmat[-censored,] <- statmatmin else statmat <- statmatmin mm <- matrix(c( rep(id[subjs],rep(nreach,nstart)), # id rep(originalStates[starting],nreach*nstart), # from rep(originalStates[tostates],nstart), # to rep(transs,nstart), # trans rep(Tstart,rep(nreach,nstart)), # Tstart rep(nexttime,rep(nreach,nstart)), # Tstop as.vector(t(statmat))), # status nreach*nstart,7) # stack upon what is already there longmat <- rbind(longmat,mm) # adjust data: remove subjects who didn't reach any new state # for those who do reach new state, adjust starting # state and time to.remove <- c(to.remove,subjs[c(censored,reachAbsorb)]) if (length(censored)>0) newstate[subjs[-censored]] <- tostates[nextstate] else newstate[subjs] <- tostates[nextstate] if (length(censored)>0) newtime[subjs[-censored]] <- nexttime[-censored] else newtime[subjs] <- nexttime } } if (length(to.remove)>0) { time <- time[-to.remove, , drop = FALSE] status <- status[-to.remove, , drop = FALSE] newtime <- newtime[-to.remove] newstate <- newstate[-to.remove] id <- id[-to.remove] } # Some states will be removed from the transition matrix in the next call # We have to adjust newstate to mean the new states K <- nrow(trans) idx <- rep(1,K); idx[startings] <- 0; idx <- cumsum(idx) newstate <- idx[newstate] Recall(time=time[,-startings],status=status[,-startings], id=id,starttime=newtime,startstate=newstate, trans=trans[-startings,-startings], originalStates=originalStates[-startings], longmat=longmat) } mstate/R/datasets.R0000644000176200001440000004172614627637077013740 0ustar liggesusers#' Data from the Amsterdam Cohort Studies on HIV infection and AIDS #' #' These data sets give the times (in years) from HIV infection to AIDS, SI #' switch and death in 329 men who have sex with men (MSM). Data are from the #' period until combination anti-retroviral therapy became available (1996). #' For more background information on the cohort, ccr5 and SI, see Geskus #' \emph{et al.} (2000, 2003) #' #' \code{aidssi} contains follow-up data until the first of AIDS and SI switch. #' It was used as example for the competing risks analyses in Putter, Fiocco, #' Geskus (2007) and in Geskus (2016). #' #' \code{aidssi2} extends the \code{aidssi} data set in three ways. First, it #' considers events after the initial one. Second, it includes the entry times #' of the individuals that entered the study after HIV infection. Third, age at #' HIV infection has been added as extra covariable. Numbers differ slightly #' from the \code{aidssi} data set. Some individuals were diagnosed with AIDS #' only when they died and others had their last follow-up at AIDS diagnosis. #' In order to prevent two transitions to happen at the same time, their time #' to AIDS was shortened by 0.25 years. This data set was used as example for #' the multi-state analyses in Geskus (2016). #' #' #' @name aidssi #' @aliases aidssi aidssi2 #' @docType data #' @format aidssi \tabular{ll}{ patnr:\tab Patient identification number\cr #' time:\tab Time from HIV infection to first of SI appearance and AIDS, or #' last follow-up\cr status:\tab Event indicator; 0 = censored, 1 = AIDS, 2 = #' SI appearance\cr cause:\tab Failure cause; factor with levels "event-free", #' "AIDS", "SI"\cr ccr5:\tab CCR5 genotype; factor with levels "WW" (wild type #' allele on both chromosomes),\cr \tab "WM" (mutant allele on one #' chromosome)\cr } aidssi2 \tabular{ll}{ patnr:\tab Patient identification #' number\cr entry.time:\tab Time from HIV infection to cohort entry. Value is #' zero if HIV infection occurred while in follow-up.\cr aids.time:\tab Time #' from HIV infection to AIDS, or last follow-up if AIDS was not observed\cr #' aids.stat:\tab Event indicator with respect to AIDS, with values 0 #' (censored) and 1 (AIDS)\cr si.time:\tab Time from HIV infection to SI #' switch, or last follow-up if SI switch was not observed\cr si.stat:\tab #' Event indicator with respect to SI switch, with values 0 (no switch) and 1 #' (switch)\cr death.time:\tab Time from HIV infection to death, or last #' follow-up if death was not observed\cr death.stat:\tab Event indicator with #' respect to death; 0 = alive, 1 = dead\cr age.inf:\tab Age at HIV #' infection\cr ccr5:\tab CCR5 genotype; factor with levels "WW" (wild type #' allele on both chromosomes),\cr \tab "WM" (mutant allele on one #' chromosome)\cr } #' @references Geskus, Ronald B. (2016). \emph{Data Analysis with Competing #' Risks and Intermediate States.} CRC Press, Boca Raton. #' #' Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing #' risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, #' 2389--2430. #' @source Geskus RB (2000). On the inclusion of prevalent cases in HIV/AIDS #' natural history studies through a marker-based estimate of time since #' seroconversion. \emph{Statistics in Medicine} \bold{19}, 1753--1769. #' #' Geskus RB, Miedema FA, Goudsmit J, Reiss P, Schuitemaker H, Coutinho RA #' (2003). Prediction of residual time to AIDS and death based on markers and #' cofactors. \emph{Journal of AIDS} \bold{32}, 514--521. #' @keywords datasets NULL #' BMT data from Klein and Moeschberger #' #' A data frame of 137 rows (patients) and 22 columns. The included variables #' are \describe{ \item{group}{ Disease group; 1 = ALL, 2 = AML Low Risk, 3 = #' AML High Risk } \item{t1}{ Time in days to death or last follow-up } #' \item{t2}{ Disease-free survival time in days (time to relapse, death or #' last follow-up) } \item{d1}{ Death indicator; 1 = dead, 0 = alive } #' \item{d2}{ Relapse indicator; 1 = relapsed, 0 = disease-free } \item{d3}{ #' Disease-free survival indicator; 1 = dead or relapsed, 0 = alive and #' disease-free) } \item{ta}{ Time in days to Acute Graft-versus-Host Disease #' (AGVHD) } \item{da}{ Acute GVHD indicator; 1 = Acute GVHD, 0 = No Acute GVHD #' } \item{tc}{ Time (days) to Chronic Graft-vrsus-Host Disease (CGVHD) } #' \item{dc}{ Chronic GVHD indicator; 1 = Chronic GVHD, 0 = No Chronic GVHD } #' \item{tp}{ Time (days) to platelet recovery } \item{dp}{ Platelet recovery #' indicator; 1 = platelets returned to normal, 0 = platelets never returned to #' normal } \item{z1}{ Patient age in years } \item{z2}{ Donor age in years } #' \item{z3}{ Patient sex; 1 = male, 0 = female } \item{z4}{ Donor sex; 1 = #' male, 0 = female } \item{z5}{ Patient CMV status; 1 = CMV positive, 0 = CMV #' negative } \item{z6}{ Donor CMV status; 1 = CMV positive, 0 = CMV negative } #' \item{z7}{ Waiting time to transplant in days } \item{z8}{ FAB; 1 = FAB #' grade 4 or 5 and AML, 0 = Otherwise } \item{z9}{ Hospital; 1 = The Ohio #' State University, 2 = Alferd , 3 = St. Vincent, 4 = Hahnemann } \item{z10}{ #' MTX used as a Graft-versus-Host prophylactic; 1 = yes, 0 = no } } #' #' @name bmt #' @aliases bmt #' @format A data frame, see \code{\link{data.frame}}. #' @references Klein and Moeschberger (1997). \emph{Survival Analysis #' Techniques for Censored and Truncated Data}, Springer, New York. #' @keywords datasets NULL #' Data from the European Society for Blood and Marrow Transplantation (EBMT) #' #' A data frame of 1977 patients transplanted for CML. The included variables #' are \describe{ \item{patid}{Patient identification number} \item{srv}{Time #' in days from transplantation to death or last follow-up} #' \item{srvstat}{Survival status; 1 = death; 0 = censored} \item{rel}{Time in #' days from transplantation to relapse or last follow-up} #' \item{relstat}{Relapse status; 1 = relapsed; 0 = censored} #' \item{yrel}{Calendar year of relapse; factor with levels "1993-1996"," #' 1997-1999", "2000-"} \item{age}{Patient age at transplant (years)} #' \item{score}{Gratwohl score; factor with levels "Low risk", "Medium risk", #' "High risk"} } #' #' #' @name EBMT year of relapse data #' @aliases ebmt1 #' @docType data #' @format A data frame, see \code{\link{data.frame}}. #' @source We acknowledge the European Society for Blood and Marrow #' Transplantation (EBMT) for making available these data. Disclaimer: these #' data were simplified for the purpose of illustration of the analysis of #' competing risks and multi-state models and do not reflect any real life #' situation. No clinical conclusions should be drawn from these data. #' @keywords datasets NULL #' Data from the European Society for Blood and Marrow Transplantation (EBMT) #' #' A data frame of 8966 patients transplanted at the EBMT. The included #' variables are \describe{ \item{id}{Patient identification number} #' \item{time}{Time in months from transplantation to death or last follow-up} #' \item{status}{Survival status; 0 = censored; 1,...,6 = death due to the #' following causes: Relapse (1), GvHD (2), Bacterial infections (3), Viral #' infections (4), Fungal infections (5), Other causes (6)} \item{cod}{Cause of #' death as factor with levels "Alive", "Relapse", "GvHD", "Bacterial", #' "Viral", "Fungal", "Other"} \item{dissub}{Disease subclassification; factor #' with levels "AML", "ALL", "CML"} \item{match}{Donor-recipient gender match; #' factor with levels "No gender mismatch", "Gender mismatch"} #' \item{tcd}{T-cell depletion; factor with levels "No TCD", "TCD", "Unknown"} #' \item{year}{Year of transplantation; factor with levels "1985-1989", #' "1990-1994", "1995-1998"} \item{age}{Patient age at transplant; factor with #' levels "<=20", "20-40", ">40"} } #' #' #' @name EBMT cause of death data #' @aliases ebmt2 #' @docType data #' @format A data frame, see \code{\link{data.frame}}. #' @references Fiocco M, Putter H, van Houwelingen JC (2005). Reduced rank #' proportional hazards model for competing risks. \emph{Biostatistics} #' \bold{6}, 465--478. #' @source We acknowledge the European Society for Blood and Marrow #' Transplantation (EBMT) for making available these data. Disclaimer: these #' data were simplified for the purpose of illustration of the analysis of #' competing risks and multi-state models and do not reflect any real life #' situation. No clinical conclusions should be drawn from these data. #' @keywords datasets NULL #' Data from the European Society for Blood and Marrow Transplantation (EBMT) #' #' A data frame of 2204 patients transplanted at the EBMT between 1995 and #' 1998. These data were used in Section 4 of the tutorial on competing risks #' and multi-state models (Putter, Fiocco & Geskus, 2007). The included #' variables are \describe{ \item{id}{Patient identification number} #' \item{prtime}{Time in days from transplantation to platelet recovery or last #' follow-up} \item{prstat}{Platelet recovery status; 1 = platelet recovery, 0 #' = censored} \item{rfstime}{Time in days from transplantation to relapse or #' death or last follow-up (relapse-free survival time)} #' \item{rfsstat}{Relapse-free survival status; 1 = relapsed or dead, 0 = #' censored} \item{dissub}{Disease subclassification; factor with levels "AML", #' "ALL", "CML"} \item{age}{Patient age at transplant; factor with levels #' "<=20", "20-40", ">40"} \item{drmatch}{Donor-recipient gender match; factor #' with levels "No gender mismatch", "Gender mismatch"} \item{tcd}{T-cell #' depletion; factor with levels "No TCD", "TCD"} } #' #' #' @name EBMT platelet recovery data #' @aliases ebmt3 #' @docType data #' @format A data frame, see \code{\link{data.frame}}. #' @references Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: #' Competing risks and multi-state models. \emph{Statistics in Medicine} #' \bold{26}, 2389--2430. #' @source We acknowledge the European Society for Blood and Marrow #' Transplantation (EBMT) for making available these data. Disclaimer: these #' data were simplified for the purpose of illustration of the analysis of #' competing risks and multi-state models and do not reflect any real life #' situation. No clinical conclusions should be drawn from these data. #' @keywords datasets NULL #' Data from the European Society for Blood and Marrow Transplantation (EBMT) #' #' A data frame of 2279 patients transplanted at the EBMT between 1985 and #' 1998. These data were used in Fiocco, Putter & van Houwelingen (2008), van #' Houwelingen & Putter (2008, 2012) and de Wreede, Fiocco & Putter (2011). The #' included variables are \describe{ \item{id}{Patient identification number} #' \item{rec}{Time in days from transplantation to recovery or last follow-up} #' \item{rec.s}{Recovery status; 1 = recovery, 0 = censored} \item{ae}{Time in #' days from transplantation to adverse event (AE) or last follow-up} #' \item{ae.s}{Adverse event status; 1 = adverse event, 0 = censored} #' \item{recae}{Time in days from transplantation to both recovery and AE or #' last follow-up} \item{recae.s}{Recovery and AE status; 1 = both recovery and #' AE, 0 = no recovery or no AE or censored} \item{rel}{Time in days from #' transplantation to relapse or last follow-up} \item{rel.s}{Relapse status; 1 #' = relapse, 0 = censored} \item{srv}{Time in days from transplantation to #' death or last follow-up} \item{srv.s}{Relapse status; 1 = dead, 0 = #' censored} \item{year}{Year of transplantation; factor with levels #' "1985-1989", "1990-1994", "1995-1998"} \item{agecl}{Patient age at #' transplant; factor with levels "<=20", "20-40", ">40"} #' \item{proph}{Prophylaxis; factor with levels "no", "yes"} #' \item{match}{Donor-recipient gender match; factor with levels "no gender #' mismatch", "gender mismatch"} } #' #' #' @name EBMT data #' @aliases ebmt4 #' @docType data #' @format A data frame, see \code{\link{data.frame}}. #' @references Fiocco M, Putter H, van Houwelingen HC (2008). Reduced-rank #' proportional hazards regression and simulation-based prediction for #' multi-state models. \emph{Statistics in Medicine} \bold{27}, 4340--4358. #' #' van Houwelingen HC, Putter H (2008). Dynamic predicting by landmarking as an #' alternative for multi-state modeling: an application to acute lymphoid #' leukemia data. \emph{Lifetime Data Anal} \bold{14}, 447--463. #' #' van Houwelingen HC, Putter H (2012). Dynamic Prediction in Clinical Survival #' Analaysis. Chapman & Hall/CRC Press, Boca Raton. #' #' de Wreede LC, Fiocco M, and Putter H (2011). mstate: An R Package for the #' Analysis of Competing Risks and Multi-State Models. \emph{Journal of #' Statistical Software}, Volume 38, Issue 7. #' @source We acknowledge the European Society for Blood and Marrow #' Transplantation (EBMT) for making available these data. Disclaimer: these #' data were simplified for the purpose of illustration of the analysis of #' competing risks and multi-state models and do not reflect any real life #' situation. No clinical conclusions should be drawn from these data. #' @keywords datasets NULL #' Data preparation, estimation and prediction in multi-state models #' #' Functions for data preparation, descriptives, (hazard) estimation and #' prediction (Aalen-Johansen) in competing risks and multi-state models. #' #' \tabular{ll}{ Package: \tab mstate\cr Type: \tab Package\cr Version: \tab #' 0.2.10\cr Date: \tab 2016-12-03\cr License: \tab GPL 2.0\cr } #' #' @name mstate-package #' @aliases mstate-package mstate #' @docType package #' @author Liesbeth de Wreede, Marta Fiocco, Hein Putter. Maintainer: Hein #' Putter #' @references Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: #' Competing risks and multi-state models. \emph{Statistics in Medicine} #' \bold{26}, 2389--2430. #' #' de Wreede LC, Fiocco M, and Putter H (2010). The mstate package for #' estimation and prediction in non- and semi-parametric multi-state and #' competing risks models. \emph{Computer Methods and Programs in Biomedicine} #' \bold{99}, 261--274. #' #' de Wreede LC, Fiocco M, and Putter H (2011). mstate: An R Package for the #' Analysis of Competing Risks and Multi-State Models. \emph{Journal of #' Statistical Software}, Volume 38, Issue 7. #' @keywords package NULL #' Abnormal prothrombin levels in liver cirrhosis #' #' A data frame of 488 liver cirrhosis patients from a randomized clinical #' trial concerning prednisone treatment in these patients. The dataset is in #' long format. The included variables are \describe{ \item{id}{Patient #' identification number} \item{from}{Starting state} \item{to}{Receiving #' state} \item{trans}{Transition number} \item{Tstart}{Starting time} #' \item{Tstop}{Transition time} \item{status}{Status variable; 1=transition, #' 0=censored} \item{treat}{Treatment; factor with levels "Placebo", #' "Prednisone"} } #' #' This data was kindly provided by Per Kragh Andersen. It was introduced in #' Andersen, Borgan, Gill & Keiding (1993), Example 1.3.12, and used as #' illustration for computation of transition probabilities in multi-state #' models, see Sections IV.4 (Example IV.4.4) and VII.2 (Example VII.2.10). #' #' @name Liver cirrhosis data #' @aliases prothr #' @docType data #' @format A data frame, see \code{\link{data.frame}}. #' @references Andersen PK, Borgan O, Gill RD, Keiding N (1993). #' \emph{Statistical Models Based on Counting Processes}. Springer, New York. #' @keywords datasets NULL #' Help functions for transition matrix #' #' Help functions to get insight into the structure of a transition matrix. #' #' Function \code{to.trans2} simply lists the transitions in \code{trans} in a #' data frame; function \code{trans2Q} converts \code{trans} to a \code{Q} #' matrix, the (j,k)th element of which contains the (shortest) number of #' transitions needed to travel from the jth to the kth state; function #' \code{absorbing} returns a vector (named if \code{trans} contains row or #' columnc names) with the state numbers that are absorbing; function #' \code{is.circular} returns (a Boolean) whether the transition matrix #' specified in \code{trans} is circular or not. #' #' @name transhelp #' @aliases to.trans2 trans2Q absorbing is.circular #' @param trans Transition matrix, for instance produced by \code{transMat}), #' \code{trans.comprisk}, or \code{trans.illdeath} #' @return See details. #' @author Hein Putter #' @keywords univar #' @examples #' #' # Irreversible illness-death model #' tmat <- trans.illdeath(c("Healthy", "Illness", "Death")) #' tmat #' to.trans2(tmat) #' trans2Q(tmat) #' absorbing(tmat) #' is.circular(tmat) #' # Reversible illness-death model #' tmat <- transMat(x = list( c(2, 3), c(1, 3), c() ), #' names = c("Healthy", "Illness", "Death")) #' tmat #' to.trans2(tmat) #' trans2Q(tmat) #' absorbing(tmat) #' is.circular(tmat) #' NULL mstate/R/vis.multiple.pt.R0000644000176200001440000001173614627637077015203 0ustar liggesusers#' Visualise multiple probtrans objects #' #' Helper function allowing to visualise state probabilities for #' different reference patients/covariates. Multiple \code{"probtrans"} objects #' are thus needed. #' #' @param x A list of \code{"probtrans"} objects #' @param from The starting state from which the probabilities are used to plot #' Numeric, as in \code{plot.probtrans} #' @param to (Numeric) destination state #' @param labels Character vector labelling each element of x (e.g. label #' for a reference patient) - so labels = c("Patient 1", "Patient 2") #' @param legend.title Character - title of legend #' @inheritParams plot.probtrans #' #' @return A ggplot object. #' #' @author Edouard F. Bonneville \email{e.f.bonneville@@lumc.nl} #' #' @examples #' #' library(ggplot2) #' #' data("aidssi") #' head(aidssi) #' si <- aidssi #' #' # Prepare transition matrix #' tmat <- trans.comprisk(2, names = c("event-free", "AIDS", "SI")) #' #' # Run msprep #' si$stat1 <- as.numeric(si$status == 1) #' si$stat2 <- as.numeric(si$status == 2) #' #' silong <- msprep( #' time = c(NA, "time", "time"), #' status = c(NA, "stat1", "stat2"), #' data = si, keep = "ccr5", trans = tmat #' ) #' #' # Run cox model #' silong <- expand.covs(silong, "ccr5") #' c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), #' data = silong) #' #' # 1. Prepare patient data - both CCR5 genotypes #' WW <- data.frame( #' ccr5WM.1 = c(0, 0), #' ccr5WM.2 = c(0, 0), #' trans = c(1, 2), #' strata = c(1, 2) #' ) #' #' WM <- data.frame( #' ccr5WM.1 = c(1, 0), #' ccr5WM.2 = c(0, 1), #' trans = c(1, 2), #' strata = c(1, 2) #' ) #' #' # 2. Make msfit objects #' msf.WW <- msfit(c1, WW, trans = tmat) #' msf.WM <- msfit(c1, WM, trans = tmat) #' #' # 3. Make probtrans objects #' pt.WW <- probtrans(msf.WW, predt = 0) #' pt.WM <- probtrans(msf.WM, predt = 0) #' #' # Plot - see vignette for more details #' vis.multiple.pt( #' x = list(pt.WW, pt.WM), #' from = 1, #' to = 2, #' conf.type = "log", #' cols = c(1, 2), #' labels = c("Pat WW", "Pat WM"), #' legend.title = "Ref patients" #' ) #' #' @export vis.multiple.pt <- function(x, from = 1, to, xlab = "Time", ylab = "Probability", xlim = NULL, ylim = NULL, cols, lwd, labels, conf.int = 0.95, conf.type = c("log", "plain", "none"), legend.title) { # Check for ggplot2 if (!requireNamespace("ggplot2", quietly = TRUE)) { stop("Package ggplot2 needed for this function to work. Please install it.", call. = FALSE) } . <- time <- state <- prob <- CI_low <- CI_upp <- PT <- NULL # Check x are probtrans objects cond <- vapply(x, function(p) inherits(p, what = "probtrans"), FUN.VALUE = logical(1L)) if (!all(cond)) stop("x should be a list of probtrans objects") # Check conf conf.type <- match.arg(conf.type) if (missing(labels)) labels <- paste0("pt_", seq_along(x)) if (missing(legend.title)) legend.title <- "PT" if (missing(to)) stop("Please specify destination state in 'to'!") if (missing(lwd)) lwd <- 1 # Check feasability of trans + get laveks tmat <- x[[1]]$trans if (is.na(tmat[from, to])) stop("This transition does not exist!") # Set to (using first pt) tmat_to <- dimnames(tmat)[["to"]] to <- tmat_to[to] # Set ylab and colours if (missing(ylab)) ylab <- paste0("Probability ", to, " from ", tmat_to[from]) n_pt <- length(x) if (missing(cols)) cols <- set_colours(n_pt, type = "line") # Prep data dfs_labelled <- lapply(seq_len(n_pt), function(i) { p <- plot( x[[i]], type = "separate", from = from, conf.int = conf.int, conf.type = conf.type, use.ggplot = TRUE ) df <- p$data df[, PT := labels[i]] return(df) }) # Plot df_steps <- data.table::rbindlist(dfs_labelled)[state == to] p <- ggplot2::ggplot( data = df_steps, ggplot2::aes( x = .data$time, y = .data$prob, group = .data$PT ) ) if (sum(grepl(pattern = "CI_low|CI_upp", x = names(df_steps)) > 0)) { p <- p + ggplot2::geom_ribbon( ggplot2::aes(ymin = .data$CI_low, ymax = .data$CI_upp), alpha = 0.5, fill = "grey70", col = NA, na.rm = TRUE ) } p <- p + ggplot2::geom_line(ggplot2::aes(col = .data$PT), size = lwd) + ggplot2::scale_colour_manual(values = cols) + ggplot2::coord_cartesian(xlim = xlim, ylim = ylim, expand = 0) + ggplot2::labs(x = xlab, y = ylab) + ggplot2::guides(colour = ggplot2::guide_legend(title = legend.title)) return(p) }mstate/R/relsurv.match.ratetable.R0000644000176200001440000000654114627637077016663 0ustar liggesusers`match.ratetable.mstate` <- function (R, ratetable) { # Function match.ratetable taken from survival and adapted for use in mstate. datecheck <- function(x) inherits(x, c("Date", "POSIXt", "date", "chron", "rtabledate")) if (!is.ratetable(ratetable)) stop("Invalid rate table") dimid <- names(dimnames(ratetable)) if (is.null(dimid)) dimid <- attr(ratetable, "dimid") datecut <- sapply(attr(ratetable, "cutpoints"), datecheck) rtype <- attr(ratetable, "type") if (is.null(rtype)) { temp <- attr(ratetable, "factor") rtype <- 1 * (temp == 1) + ifelse(datecut, 3, 2) * (temp == 0) + 4 * (temp > 1) } if (is.matrix(R)) { attR <- attributes(R) attributes(R) <- attR["dim"] Rnames <- attR$dimnames[[2]] isDate <- attR[["isDate"]] levlist <- attR[["levlist"]] } else { Rnames <- names(R) levlist <- lapply(R, levels) isDate <- sapply(R, datecheck) } ord <- match(dimid, Rnames) if (any(is.na(ord))) stop(paste("Argument '", dimid[is.na(ord)], "' needed by the ratetable was not found in the data", sep = "")) if (any(duplicated(ord))) stop("A ratetable argument appears twice in the data") R <- R[, ord, drop = FALSE] levlist <- levlist[ord] isDate <- isDate[ord] dtemp <- dimnames(ratetable) if (any((rtype < 3) & isDate)) { indx <- which(rtype < 3 & isDate) stop(paste("Data has a date type variable, but the reference", "ratetable is not a date variable:", paste(dimid[indx], collapse = " "))) } if (any((rtype > 2) & !isDate)) { indx <- which(rtype > 2 & !isDate) } for (i in (1:ncol(R))) { if (rtype[i] > 2) R[, i] <- ratetableDate(R[, i]) if (length(levlist[[i]]) > 0) { if (rtype[i] != 1) stop(paste("for this ratetable,", dimid[i], "must be a continuous variable")) temp <- charmatch(casefold(levlist[[i]]), casefold(dtemp[[i]])) if (any(is.na(temp))) stop(paste("Levels do not match for ratetable() variable", dimid[i])) if (any(temp == 0)) stop(paste("Non-unique ratetable match for variable", dimid[i])) R[, i] <- temp[as.numeric(R[, i])] } else { R[, i] <- unclass(R[, i]) if (rtype[i] == 1) { temp <- R[, i] if (any(floor(temp) != temp) || any(temp <= 0) || max(temp) > length(dtemp[[i]])) stop(paste("The variable", dimid[i], "is out of range")) } } } R <- as.matrix(R) summ <- function(R){ x <- c(format(round(min(R[, 1])/365.241, 1)), format(round(max(R[,1])/365.241, 1)), sum(R[, 3] == 1), sum(R[, 3] == 2)) x2 <- as.character(as.Date(c(min(R[, 2]), max(R[, 2])), origin=as.Date('1970-01-01'))) paste(" age ranges from", x[1], "to", x[2], "years\n", " male:", x[3], " female:", x[4], "\n", " date of entry from", x2[1], "to", x2[2], "\n") } cutpoints <- lapply(attr(ratetable, "cutpoints"), ratetableDate) if (is.null(summ)) list(R = R, cutpoints = cutpoints) else list(R = R, cutpoints = cutpoints, summ = summ(R)) }mstate/R/transhelp.R0000644000176200001440000000266614627637077014130 0ustar liggesusers#' @export `to.trans2` <- function(trans) { dm <- dim(trans) if (dm[1] != dm[2]) stop("transition matrix should be square") S <- dm[1] mx <- max(trans, na.rm=TRUE) res <- matrix(NA, mx, 3) res[, 1] <- 1:mx transvec <- as.vector(trans) for (i in 1:mx) { idx <- which(transvec==i) res[i, 2:3] <- c((idx-1) %% S + 1, (idx-1) %/% S + 1) } res <- data.frame(res) names(res) <- c("transno", "from", "to") res$from[res$from==0] <- S statesfrom <- dimnames(trans)[[1]] if (is.null(statesfrom)) statesfrom <- 1:S statesto <- dimnames(trans)[[2]] if (is.null(statesto)) statesto <- 1:S res$fromname <- statesfrom[res$from] res$toname <- statesto[res$to] res$transname <- paste(res$fromname, res$toname, sep=" -> ") return(res) } #' @export `trans2Q` <- function(trans) { K <- nrow(trans) P <- trans P[!is.na(P)] <- 1 P[is.na(P)] <- 0 diag(P) <- 1 k <- 1 # deb(k, method="cat") Pk <- P diag(Pk) <- 0 # deb(Pk) Pkprev <- Pk Q <- Pk for (k in 2:K) { # deb(k, method="cat") Pk <- Pk %*% P Pk[Pk > 1] <- 1 # deb(Pk) # deb(Pk - Pkprev) Q <- Q + k * (Pk - Pkprev) # deb(Q) Pkprev <- Pk } Q } #' @export `absorbing` <- function(trans) { Q <- trans2Q(trans) wh <- which(apply(Q, 1, sum) == 0) wh } #' @export `is.circular` <- function(trans) { Q <- trans2Q(trans) return(any(diag(Q)>0)) } mstate/R/summary.Cuminc.R0000644000176200001440000000054414627637077015033 0ustar liggesusers#' Summary method for a summary.Cuminc object #' #' @param object Object of class 'Cuminc', to be summarised #' @param \dots Further arguments to summarise #' #' @export summary.Cuminc <- function(object, ...) { if (!inherits(object, "Cuminc")) stop("'object' must be a 'Cuminc' object") summary(attr(object, "survfit"), ...) } mstate/R/plot.MarkovTest.R0000644000176200001440000001331014627637077015170 0ustar liggesusers#' Plot method for a MarkovTest object #' #' Plot method for an object of class 'MarkovTest'. It plots the trace of the #' log-rank statistics provided by \code{\link{MarkovTest}}. #' #' #' @param x Object of class 'MarkovTest' #' @param y The grid at which \code{MarkovTest} was calculated #' @param what Choose "states" for plotting state-specific traces, and #' "overall" for the overall chi-squared trace #' @param idx Vector of indices of wild bootstrap traces to plot #' @param quantiles Boolean whether or not to plot the 2.5 and 97.5 percent #' quantiles, default is \code{TRUE} #' @param qsup The index of the function in either \code{fn} (when plotting #' state-specific) or \code{fn2} (when plotting overall) to plot along with the #' traces; when missing this line is not included #' @param states Number of the qualifying state(s) to plot trace for #' @param xlab Text for x-axis label #' @param ylab Text for y-axis label #' @param main Text for title (main) #' @param \dots Further arguments to plot #' @return No return value #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @seealso \code{\link{MarkovTest}} #' @keywords hplot #' @examples #' #' \dontrun{ #' # Example provided by the prothrombin data #' data("prothr") #' # Apply Markov test to grid of monthly time points over the first 7.5 years #' year <- 365.25 #' month <- year / 12 #' grid <- month * (1:90) #' # Markov test for transition 1 (wild bootstrap based on 100 replications) #' MT <- MarkovTest(prothr, id = "id", transition = 1, #' grid = grid, B = 100) #' #' plot(MT, grid, what="states", idx=1:50, states=rownames(attr(prothr, "trans")), #' xlab="Days since randomisation", ylab="Log-rank test statistic", #' main="Transition Normal -> Low") #' #' plot(MT, grid,what="overall", idx=1:50, #' xlab="Days since randomisation", ylab="Chi-square test statistic", #' main="Transition Normal -> Low") #' #' plot(MT, grid, what="states", quantiles=FALSE) # only trace #' plot(MT, grid, what="states") # trace plus quantiles (default) #' plot(MT, grid, what="states", idx=1:10) # trace plus quantiles, plus first 10 bootstrap traces #' #' plot(MT, grid, what="overall", quantiles=FALSE) # only trace #' plot(MT, grid, what="overall") # trace plus quantiles (default) #' plot(MT, grid, what="overall", idx=1:10) # trace plus quantiles, plus first 10 bootstrap traces #' #' } #' #' @export plot.MarkovTest <- function(x, y, what=c("states", "overall"), idx=NULL, quantiles=TRUE, qsup, states, xlab, ylab, main, ...) { ct <- NULL # To remove NOTE generated by R CMD CHECK about no visible binding # Not ready for publication, see definition of q95 what <- match.arg(what) B <- dim(x$n_wb_trace)[1] ny <- length(y) if (missing(xlab)) xlab <- "Time" if (missing(ylab)) ylab <- "Test statistic" if (missing(main)) main <- "" if (what=="states") { qualset <- x$qualset J <- length(qualset) dfr <- data.frame(time=rep(y, J), zbar=as.numeric(x$zbar), qualstate=rep(qualset, each=ny), ct=0) lwd <- 2 lty <- 1 col <- 1 if (quantiles) { dfrl1 <- data.frame(time=rep(y, J), zbar=as.numeric(x$est_quant[1, , ]), qualstate=rep(qualset, each=ny), ct=1) dfru1 <- data.frame(time=rep(y, J), zbar=as.numeric(x$est_quant[2, , ]), qualstate=rep(qualset, each=ny), ct=3) dfr <- rbind(dfr, dfrl1, dfru1) lwd <- c(lwd, 2, 2) lty <- c(lty, 3, 3) col <- c(col, 1, 1) } if (!missing(qsup)) { if (qsup %in% 1:dim(x$b_stat_wb)[2]) { q95 <- apply(x$b_stat_wb[, qsup, ], 2, quantile, 0.95) dfrl2 <- data.frame(time=rep(y, J), zbar=rep(-q95, each=ny), qualstate=rep(qualset, each=ny), ct=2) dfru2 <- data.frame(time=rep(y, J), zbar=rep(q95, each=ny), qualstate=rep(qualset, each=ny), ct=4) dfr <- rbind(dfr, dfrl2, dfru2) lwd <- c(lwd, 2, 2) lty <- c(lty, 3, 3) col <- c(col, 1, 1) } } if (!is.null(idx)) { idx <- intersect(1:B, idx) nB <- length(idx) if (nB > 0) { dfrb <- data.frame(time=rep(rep(y, J), each=nB), zbar=as.numeric(x$n_wb_trace[idx, , ]), qualstate=rep(qualset, each=ny*nB), ct=rep(-idx, ny*J)) dfr <- rbind(dfrb, dfr) lwd <- c(rep(0.5, nB), lwd) lty <- c(rep(1, nB), lty) col <- c(rep(8, nB), col) } } # print(dim(dfr)) if (missing(states)) dfr$qualstate <- factor(dfr$qualstate) else dfr$qualstate <- factor(dfr$qualstate, levels=qualset, labels=states[qualset]) xyplot(zbar ~ time | qualstate, data=dfr, groups=ct, lwd=lwd, type="l", col=col, lty=lty, xlab=xlab, ylab=ylab, main=main) } else if (what=="overall") { dfr <- data.frame(time=y, zbar=as.numeric(x$obs_chisq_trace), ct=0) lwd <- 2 lty <- 1 col <- 1 if (quantiles) { dfru <- data.frame(time=y, zbar=apply(x$nch_wb_trace, 2, quantile, probs=0.95), ct=-1) dfr <- rbind(dfr, dfru) lwd <- c(2, lwd) lty <- c(3, lty) col <- c(1, col) } if (!is.null(idx)) { idx <- intersect(1:B, idx) nB <- length(idx) if (nB > 0) { dfrb <- data.frame(time=rep(y, each=nB), zbar=as.numeric(x$nch_wb_trace[idx, ]), ct=rep(idx, ny)) dfr <- rbind(dfrb, dfr) lwd <- c(lwd, rep(0.5, nB)) lty <- c(lty, rep(1, nB)) col <- c(col, rep(8, nB)) } } xyplot(zbar ~ time, data=dfr, groups=ct, lwd=lwd, type="l", col=col, lty=lty, xlab=xlab, ylab=ylab, main=main) } } mstate/R/probtrans.R0000644000176200001440000004366014627637077014141 0ustar liggesusers#' Compute subject-specific or overall transition probabilities with standard #' errors #' #' This function computes subject-specific or overall transition probabilities #' in multi-state models. If requested, also standard errors are calculated. #' #' For details refer to de Wreede, Fiocco & Putter (2010). #' #' @param object \link{msfit} object containing estimated cumulative hazards #' for each of the transitions in the multi-state model and, if standard errors #' are requested, (co)variances of these cumulative hazards for each pair of #' transitions #' @param predt A positive number indicating the prediction time. This is #' either the time at which the prediction is made (if \code{direction}= #' \code{"forward"}) or the time for which the prediction is to be made (if #' \code{direction}=\code{"fixedhorizon"}) #' @param direction One of \code{"forward"} (default) or \code{"fixedhorizon"}, #' indicating whether prediction is forward or for a fixed horizon #' @param method A character string specifying the type of variances to be #' computed (so only needed if either \code{variance} or \code{covariance} is #' \code{TRUE}). Possible values are \code{"aalen"} or \code{"greenwood"} #' @param variance Logical value indicating whether standard errors are to be #' calculated (default is \code{TRUE}) #' @param covariance Logical value indicating whether covariances of transition #' probabilities for different states are to be calculated (default is #' \code{FALSE}) #' @return An object of class \code{"probtrans"}, which is a list of which item #' [[s]] contains a data frame with the estimated transition probabilities (and #' standard errors if \code{variance}=\code{TRUE}) from state s. If #' \code{covariance}=\code{TRUE}, item \code{varMatrix} contains an array of #' dimension K^2 x K^2 x (nt+1) (with K the number of states and nt the #' distinct transition time points); the time points correspond to those in the #' data frames with the estimated transition probabilities. Finally, there are #' items \code{trans}, \code{method}, \code{predt}, \code{direction}, recording #' the transition matrix, and the method, predt and direction arguments used in #' the call to probtrans. Plot and summary methods have been defined for #' \code{"probtrans"} objects. #' @author Liesbeth de Wreede and Hein Putter \email{H.Putter@@lumc.nl} #' @references Andersen PK, Borgan O, Gill RD, Keiding N (1993). #' \emph{Statistical Models Based on Counting Processes}. Springer, New York. #' #' Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing #' risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, #' 2389--2430. #' #' Therneau TM, Grambsch PM (2000). \emph{Modeling Survival Data: Extending the #' Cox Model}. Springer, New York. #' #' de Wreede LC, Fiocco M, and Putter H (2010). The mstate package for #' estimation and prediction in non- and semi-parametric multi-state and #' competing risks models. \emph{Computer Methods and Programs in Biomedicine} #' \bold{99}, 261--274. #' #' de Wreede LC, Fiocco M, and Putter H (2011). mstate: An R Package for the #' Analysis of Competing Risks and Multi-State Models. \emph{Journal of #' Statistical Software}, Volume 38, Issue 7. #' @keywords survival #' @examples #' #' # transition matrix for illness-death model #' tmat <- trans.illdeath() #' # data in wide format, for transition 1 this is dataset E1 of #' # Therneau & Grambsch (2000) #' tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,0,0,0),x2=c(6:1)) #' # data in long format using msprep #' tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), #' data=tg,keep=c("x1","x2"),trans=tmat) #' # events #' events(tglong) #' table(tglong$status,tglong$to,tglong$from) #' # expanded covariates #' tglong <- expand.covs(tglong,c("x1","x2")) #' # Cox model with different covariate #' cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), #' data=tglong,method="breslow") #' summary(cx) #' # new data, to check whether results are the same for transition 1 as #' # those in appendix E.1 of Therneau & Grambsch (2000) #' newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) #' HvH <- msfit(cx,newdata,trans=tmat) #' # probtrans #' pt <- probtrans(HvH,predt=0) #' # predictions from state 1 #' pt[[1]] #' #' @export `probtrans` <- function(object,predt,direction=c("forward","fixedhorizon"), method=c("aalen","greenwood"),variance=TRUE,covariance=FALSE) { if (!inherits(object, "msfit")) stop("'object' must be a 'msfit' object") method <- match.arg(method) direction <- match.arg(direction) trans <- object$trans transit <- to.trans2(trans) numtrans <- nrow(transit) variance_boot <- FALSE # Check if bootstrap replications are in the object: if("Haz.boot" %in% names(object)){ # We don't want to calculate (co)variances with the usual methods: covariance <- FALSE if(variance){ variance <- FALSE variance_boot <- TRUE # we want to calculate bootstrapped variances } } stackhaz <- object$Haz stackvarhaz <- object$varHaz for (i in 1:numtrans) stackhaz$dhaz[stackhaz$trans==i] <- diff(c(0,stackhaz$Haz[stackhaz$trans==i])) if (direction=="forward") stackhaz <- stackhaz[stackhaz$time > predt,] else stackhaz <- stackhaz[stackhaz$time <= predt,] untimes <- sort(unique(stackhaz$time)) TT <- length(untimes) S <- nrow(trans) if (covariance) variance <- TRUE # if covariance=TRUE and variance=FALSE, variance is overruled if (direction=="forward") { if (variance==TRUE) res <- array(0,c(TT+1,2*S+1,S)) # 2*S+1 for time, probs (S), se (S) else res <- array(0,c(TT+1,S+1,S)) # S+1 for time, probs (S) # first line (in case of forward) contains values for t=predt res[1,1,] <- predt for (j in 1:S) res[1, 1+j,] <- rep(c(0,1,0), c(j-1,1,S-j)) if (variance) res[1,(S+2):(2*S+1),] <- 0 } else { # situation for backward is different from forward, # depends on whether predt is an event time if (predt %in% untimes) { if (variance) res <- array(0,c(TT+1,2*S+1,S)) # t=0 and all event times else res <- array(0,c(TT+1,S+1,S)) res[TT+1,1,] <- predt for (j in 1:S) res[TT+1, 1+j,] <- rep(c(0,1,0), c(j-1,1,S-j)) if (variance) res[TT+1,(S+2):(2*S+1),] <- 0 } else { if (variance) res <- array(0,c(TT+2,2*S+1,S)) # t=0, event times, t=predt else res <- array(0,c(TT+2,S+1,S)) res[TT+1,1,] <- max(untimes) for (j in 1:S) res[TT+1, 1+j,] <- rep(c(0,1,0), c(j-1,1,S-j)) if (variance) res[TT+1,(S+2):(2*S+1),] <- 0 res[TT+2,1,] <- predt for (j in 1:S) res[TT+2, 1+j,] <- rep(c(0,1,0), c(j-1,1,S-j)) if (variance) res[TT+2,(S+2):(2*S+1),] <- 0 } } P <- diag(S) if (covariance) { varParr <- array(0,c(S^2,S^2,TT+1)) if ((direction=="fixedhorizon") & !(predt %in% untimes)) varParr <- array(0,c(S^2,S^2,TT+2)) ffrom <- rep(1:S, S) tto <- rep(1:S, rep(S,S)) fromto <- paste("from",ffrom,"to",tto,sep="") if (direction=="forward") dimnames(varParr) <- list(fromto,fromto,c(predt,untimes)) else { if (predt %in% untimes) dimnames(varParr) <- list(fromto,fromto,c(0,untimes)) else dimnames(varParr) <- list(fromto,fromto,c(0,untimes,predt)) } } if (variance) { varP <- matrix(0,S^2,S^2) if (direction=="forward") { varAnew <- array(0,c(S,S,S,S)) if (predt !=0) { tmin <- max(stackvarhaz$time[stackvarhaz$time <=predt]) varHaz <- stackvarhaz[stackvarhaz$time==tmin,] lHaz <- nrow(varHaz) for (j in 1:lHaz) { from1 <- transit$from[transit$transno==varHaz$trans1[j]] to1 <- transit$to[transit$transno==varHaz$trans1[j]] from2 <- transit$from[transit$transno==varHaz$trans2[j]] to2 <- transit$to[transit$transno==varHaz$trans2[j]] varAnew[from1, to1, from2, to2] <- varAnew[from2, to2, from1, to1] <- varHaz$varHaz[j] } } } else { # varA on last event time (only those elements borrowed # directly from object, rest is calculated later) varA <- array(0,c(S,S,S,S)) varHaz <- stackvarhaz[stackvarhaz$time==untimes[TT],] lHaz <- nrow(varHaz) for (j in 1:lHaz) { from1 <- transit$from[transit$transno==varHaz$trans1[j]] to1 <- transit$to[transit$transno==varHaz$trans1[j]] from2 <- transit$from[transit$transno==varHaz$trans2[j]] to2 <- transit$to[transit$transno==varHaz$trans2[j]] varA[from1, to1, from2, to2] <- varA[from2, to2, from1, to1] <- varHaz$varHaz[j] } } } for (i in 1:TT) { idx <- ifelse(direction=="forward",i,TT+1-i) tt <- untimes[idx] Haztt <- stackhaz[stackhaz$time==tt,] lHaztt <- nrow(Haztt) # build S x S matrix IplusdA IplusdA <- diag(S) for (j in 1:lHaztt) { from <- transit$from[transit$transno==Haztt$trans[j]] to <- transit$to[transit$transno==Haztt$trans[j]] IplusdA[from, to] <- Haztt$dhaz[j] IplusdA[from, from] <- IplusdA[from, from] - Haztt$dhaz[j] } if (any(diag(IplusdA)<0)) warning("Warning! Negative diagonal elements of (I+dA); the estimate may not be meaningful. \n") if (variance) { if (direction=="forward"){ varA <- varAnew varAnew <- array(0,c(S,S,S,S)) varHaztt <- stackvarhaz[stackvarhaz$time==tt,] lHaztt <- nrow(varHaztt) for (j in 1:lHaztt) { from1 <- transit$from[transit$transno==varHaztt$trans1[j]] to1 <- transit$to[transit$transno==varHaztt$trans1[j]] from2 <- transit$from[transit$transno==varHaztt$trans2[j]] to2 <- transit$to[transit$transno==varHaztt$trans2[j]] varAnew[from1, to1, from2, to2] <- varAnew[from2, to2, from1, to1] <- varHaztt$varHaz[j] } vardA <- varAnew - varA } else { varAttmin <- array(0,c(S,S,S,S)) varHazttmin <- stackvarhaz[stackvarhaz$time==untimes[idx-1],] lHazttmin <- nrow(varHazttmin) for (j in 1:lHazttmin) { from1 <- transit$from[transit$transno==varHazttmin$trans1[j]] to1 <- transit$to[transit$transno==varHazttmin$trans1[j]] from2 <- transit$from[transit$transno==varHazttmin$trans2[j]] to2 <- transit$to[transit$transno==varHazttmin$trans2[j]] varAttmin[from1, to1, from2, to2] <- varAttmin[from2, to2, from1, to1] <- varHazttmin$varHaz[j] } vardA <- varA - varAttmin varA <- varAttmin # ready for the next round } for (from in 1:S) { for (from2 in 1:S) { for (to2 in 1:S) { if (to2!=from2) vardA[from, from, from2, to2] <- vardA[from2, to2, from, from] <- -sum(vardA[from,-from,from2,to2]) } } } for (from in 1:S) { for (from2 in 1:S) vardA[from,from,from2,from2] <- vardA[from2,from2,from,from] <- -sum(vardA[from,from,from2,-from2]) } vardA <- matrix(vardA,S^2,S^2) } if (method=="aalen") { if (direction=="forward") { P <- P %*% IplusdA if (variance) { tmp1 <- kronecker(t(IplusdA),diag(S)) %*% varP %*% kronecker(IplusdA,diag(S)) tmp2 <- kronecker(diag(S),P) %*% vardA %*% kronecker(diag(S),t(P)) varP <- tmp1 + tmp2 } } else { if (variance) { tmp1 <- kronecker(diag(S), IplusdA) %*% varP %*% kronecker(diag(S), t(IplusdA)) tmp2 <- kronecker(t(P), IplusdA) %*% vardA %*% kronecker(P,t(IplusdA)) varP <- tmp1+tmp2 } P <- IplusdA %*% P } } if (method=="greenwood") { if (direction=="forward") { if (variance) { tmp1 <- kronecker(t(IplusdA),diag(S)) %*% varP %*% kronecker(IplusdA,diag(S)) tmp2 <- kronecker(diag(S),P) %*% vardA %*% kronecker(diag(S),t(P)) varP <- tmp1 + tmp2 } P <- P %*% IplusdA } else { if (variance) { tmp1 <- kronecker(diag(S), IplusdA) %*% varP %*% kronecker(diag(S), t(IplusdA)) tmp2 <- kronecker(t(P), diag(S)) %*% vardA %*% kronecker(P, diag(S)) varP <- tmp1+tmp2 } P <- IplusdA %*% P } } if (variance) { seP <- sqrt(diag(varP)) seP <- matrix(seP,S,S) } if (covariance) { if (direction=="forward") varParr[,,i+1] <- varP else { varParr[,,idx+1] <- varP } } if (direction=="forward") { res[idx+1,1,] <- tt res[idx+1,2:(S+1),] <- t(P) if (variance) res[idx+1,(S+2):(2*S+1),] <- t(seP) } else { res[idx,1,] <- ifelse(i==TT,0,untimes[TT-i]) res[idx,2:(S+1),] <- t(P) if (variance) res[idx,(S+2):(2*S+1),] <- t(seP) } } if (covariance & (direction=="fixedhorizon")) varParr[,,1] <- varParr[,,2] ### res[,,s] contains prediction from state s, convert to list of dataframes res2 <- vector("list", S) for (s in 1:S) { tmp <- as.data.frame(res[,,s]) if (min(dim(tmp))==1) tmp <- res[,,s] if (variance) names(tmp) <- c("time",paste("pstate",1:S,sep=""),paste("se",1:S,sep="")) else names(tmp) <- c("time",paste("pstate",1:S,sep="")) res2[[s]] <- tmp } if (covariance) res2$varMatrix <- varParr # Calculate bootstrap se's for probtrans: if(variance_boot){ # Find absorbing states: is_absorbing <- rowSums(!is.na(trans))==0 absorbing_true <- which(is_absorbing==TRUE) absorbing_false <- which(is_absorbing==FALSE) # We make two steps (based on whether we deal with an absorbing or transient state): # 1. For transprobs starting from an absorbing state put se = 0: # Define empty SE data frames: se_df <- as.data.frame(matrix(0, nrow=1, ncol=S)) names(se_df) <- paste("se", 1:S, sep="") # Add zero SE's in probtrans for absorbing states: for(s in absorbing_true){ res2[[s]] <- cbind(res2[[s]], se_df) } # 2. For transprobs starting from a transient state calculate bootstrap se's: B <- length(object$Haz.boot) # find B pt_list <- vector("list", S) # Initialize objects: for(s in absorbing_false){ pt_list[[s]] <- vector("list", B) # pt_list[[s]] <- as.data.frame(matrix(NA, nrow = no_rows*B, ncol=S+1)) # names(pt_list[[s]]) <- c("time", paste("pstate",1:S,sep="")) } # Do the bootstrap: for(i in 1:B){ # Prepare boot msfit object: haz_tmp <- object$Haz.boot[[i]] haz_tmp$b <- NULL msfit_tmp <- list(Haz=haz_tmp, trans=trans) class(msfit_tmp) <- "msfit" # save bootstrapped probtrans: pt_tmp <- suppressWarnings(probtrans(msfit_tmp, predt=predt, direction=direction, variance = FALSE, covariance = FALSE)) for(s in absorbing_false){ pt_list[[s]][[i]] <- pt_tmp[[s]] # pt_list[[s]][((i-1)*no_rows+1):(i*no_rows),] <- pt_tmp[[s]] # pt_list[[s]] <- rbind(pt_list[[s]], pt_tmp[[s]]) } } pt_list_save <- pt_list # Add the bootstrapped se's in the probtrans object: for(s in absorbing_false){ # Calculate SEs: # pt_list[[s]] <- na.omit(pt_list[[s]]) pt_list[[s]] <- do.call(rbind.data.frame, pt_list[[s]]) pt_list[[s]] <- aggregate(.~time, data=pt_list[[s]], FUN = stats::sd) # Check times: unneeded_times <- which(!(pt_list[[s]]$time %in% res2[[s]]$time)) if(length(unneeded_times)>0) pt_list[[s]] <- pt_list[[s]][-unneeded_times,] # Save object: pt_list[[s]] <- pt_list[[s]][,2:ncol(pt_list[[s]])] names(pt_list[[s]]) <- gsub("pstate", "se", names(pt_list[[s]])) res2[[s]] <- cbind(res2[[s]], pt_list[[s]]) } res2$pt.boot <- pt_list_save # save bootstrapped trans. probabilities } res2$trans <- trans res2$method <- method res2$predt <- predt res2$direction <- direction class(res2) <- "probtrans" return(res2) } mstate/R/Cuminc.R0000644000176200001440000001712014643710254013320 0ustar liggesusers#' Calculate nonparametric cumulative incidence functions and associated #' standard errors #' #' This function computes nonparametric cumulative incidence functions and #' associated standard errors for each value of a group variable. #' #' The estimated cumulative incidences are as described in Putter, Fiocco & #' Geskus (2007); the standard errors are the square roots of the Greenwood #' variance estimators, see eg. Andersen, Borgan, Gill & Keiding (1993), de #' Wreede, Fiocco & Putter (2009), and they correspond to the variances in eg. #' Marubini & Valsecchi (1995). In case of no censoring, the estimated #' cumulative incidences and variances reduce to simple binomial frequencies #' and their variances. #' #' @aliases Cuminc print.Cuminc #' @param time Either 1) a numeric vector containing the failure times or 2) a #' string containing the column name indicating these failure times #' @param status Either 1) a numeric, factor or character vector containing the #' failure codes or 2) a string containing the column name indicating these #' failure codes #' @param data When appropriate, a data frame containing \code{time}, #' \code{status} and/or \code{group} variables #' @param group Optionally, name of column in data indicating a grouping #' variable; cumulative incidence functions are calculated for each value or #' level of \code{group}. If missing no groups are considered #' @param na.status One of \code{"remove"} (default) or \code{"extra"}, #' indicating whether subjects with missing cause of failure should be removed #' or whether missing cause of failure should be treated as a separate cause of #' failure #' @param ... Allows extra arguments for future extensions, but for now just #' used for backwards compatibility (e.g. allowing use of defunct \code{failcodes} #' argument in reverse dependencies). #' #' @return An object of class \code{"Cuminc"}, which is a data frame containing #' the estimated failure-free probabilities and cumulative incidences and their #' standard errors. The names of the dataframe are \code{time}, \code{Surv}, #' \code{seSurv}, and \code{cuminc} and \code{secuminc} followed by the values #' or levels of the \code{failcodes}. If \code{group} was specified, a #' \code{group} variable is included with the same name and values/levels as #' the original grouping variable, and with estimated cumulative incidences #' (SE) for each value/level of \code{group}. #' #' Cuminc is now simply a wrapper around survfit of the survival package with #' type=\code{"mstate"}, only maintained for backward compatibility. The #' survfit object is kept as attribute (\code{attr("survfit")}), and the print, #' plot and summary functions are simply print, plot and summary applied to the #' survfit object. Subsetting the \code{"Cuminc"} object results in subsetting #' the data frame, not in subsetting the survfit object. #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @references Andersen PK, Borgan O, Gill RD, Keiding N (1993). #' \emph{Statistical Models Based on Counting Processes}. Springer, New York. #' #' Marubini E, Valsecchi MG (1995). \emph{Analysing Survival Data from Clinical #' Trials and Observational Studies}. Wiley, New York. #' #' Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing #' risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, #' 2389--2430. #' #' de Wreede L, Fiocco M, Putter H (2009). The mstate package for estimation #' and prediction in non- and semi-parametric multi-state models. Submitted. #' @keywords survival #' @examples #' #' ### These data were used in Putter, Fiocco & Geskus (2007) #' data(aidssi) #' ci <- Cuminc(time=aidssi$time, status=aidssi$status) #' head(ci); tail(ci) #' ci <- Cuminc(time="time", status="status", data=aidssi, group="ccr5") #' head(ci); tail(ci) #' #' ### Some fake data #' fake <- data.frame(surv=c(seq(2,10,by=2),seq(1,13,by=3),seq(1,9,by=2),seq(1,13,by=3)), #' stat=rep(0:3,5),Tstage=c(1:4,rep(1:4,rep(4,4)))) #' fake$stat[fake$stat==0 & fake$Tstage==2] <- 3 #' fake$stat[fake$stat==3 & fake$Tstage==1] <- 2 #' fake #' Cuminc(time="surv", status="stat", data=fake) #' # If we remove all entries with status=0, #' # we should get binomial sample probabilities and corresponding SEs #' fake0 <- fake[fake$stat!=0,] #' Cuminc(time="surv", status="stat", data=fake0) #' #' @export `Cuminc` <- function(time, status, data, group, na.status=c("remove","extra"), ...) { # Coerce data to data.frame as in msprep() if (!missing(data)) data <- as.data.frame(data) ## time if (!is.vector(time)) stop("argument \"time\" not of correct type") if (is.character(time)) { if (length(time) != 1) stop("single character string required for \"time\" argument") if (missing(data)) stop("argument \"data\" missing") time <- data[[time]] } ## status if (!is.vector(status)) stop("argument \"status\" not of correct type") if (is.character(status)) { if (length(status) == 1) { status <- data[[status]] } } ## check for compatibility of time and status if (length(status) != length(time)) stop("lengths of time and status do not match") n <- length(time) if (missing(group)) { tmp <- data.frame(time=time, status=status) # Just call survfit with status argument a factor tmp$statuscr <- factor(tmp$status) sf <- survfit(Surv(time, statuscr) ~ 1, data=tmp) tt <- sf$time CIs <- sf$pstate ses <- sf$std.err res <- cbind(tt, CIs, ses) res <- as.data.frame(res) names(res) <- c("time", "Surv", paste("CI", sf$states[-1], sep="."), "seSurv", paste("seCI", sf$states[-1], sep=".")) res <- res[!duplicated(res$Surv), ] rownames(res) <- 1:nrow(res) class(res) <- c("Cuminc", "data.frame") attr(res, "survfit") <- sf } else { if (!(is.matrix(group)|(is.data.frame(group)))) { # then group should be a vector if (is.character(group)) { # character vector ngroup <- length(group) if (ngroup!=1) stop("only single grouping variable possible") kcols <- match(group,names(data)) if (any(is.na(kcols))) stop("\"group\" column not in data") groupname <- group group <- data[,kcols] } else { # other vector, should be of length n ngroup <- 1 groupname <- names(group) if (length(group) != n) stop("argument \"group\" has incorrect dimension") } } else { ngroup <- ncol(group) groupname <- names(group) if (nrow(group) != n) stop("argument \"group\" has incorrect dimension") if (ngroup!=1) stop("only single grouping variable possible") group <- group[,1] # coerce to vector } group <- as.factor(group) if (is.null(groupname)) groupname <- "group" tmp <- data.frame(time=time, status=status, group=group) # Call survfit with status argument a factor tmp$statuscr <- factor(tmp$status) sf <- survfit(Surv(time, statuscr) ~ group, data=tmp) tt <- sf$time CIs <- sf$pstate ses <- sf$std.err res <- cbind(tt, CIs, ses) res <- as.data.frame(res) names(res) <- c("time", "Surv", paste("CI", sf$states[-1], sep="."), "seSurv", paste("seCI", sf$states[-1], sep=".")) group <- rep(levels(as.factor(tmp$group)), sf$strata) res <- cbind(data.frame(group=group), res) res <- res[!duplicated(res$Surv), ] rownames(res) <- 1:nrow(res) class(res) <- c("Cuminc", "data.frame") attr(res, "survfit") <- sf } return(res) } mstate/R/plot.msfit.R0000644000176200001440000001513714627637077014224 0ustar liggesusers#' Plot method for an msfit object #' #' Plot method for an object of class \code{"msfit"}. It plots the estimated #' cumulative transition intensities in the multi-state model. #' #' @param x Object of class \code{"msfit"}, containing estimated cumulative transition #' intensities for all transitions in a multi-state model #' @param type One of \code{"single"} (default) or \code{"separate"}; in case #' of \code{"single"}, all estimated cumulative hazards are drawn in a single #' plot, in case of \code{"separate"}, separate plots are shown for the #' estimated transition intensities #' @param cols A vector specifying colors for the different transitions; #' default is 1:K (K no of transitions), when type=\code{"single"}, and 1 #' (black), when type=\code{"separate"} #' @param xlab A title for the x-axis; default is \code{"Time"} #' @param ylab A title for the y-axis; default is \code{"Cumulative hazard"} #' @param ylim The y limits of the plot(s); if ylim is specified for #' type="separate", then all plots use the same ylim for y limits #' @param lwd The line width, see \code{\link{par}}; default is 1 #' @param lty The line type, see \code{\link{par}}; default is 1 #' @param legend Character vector of length equal to the number of transitions, #' to be used in a legend; if missing, these will be taken from the row- and #' column-names of the transition matrix contained in \code{x$trans}. Also used #' as titles of plots for type=\code{"separate"} #' @param legend.pos The position of the legend, see \code{\link{legend}}; #' default is \code{"topleft"} #' @param bty The box type of the legend, see \code{\link{legend}} #' @param use.ggplot Default FALSE, set TRUE for ggplot version of plot #' @param xlim Limits of x axis, relevant if use_ggplot = T #' @param scale_type "fixed", "free", "free_x" or "free_y", see scales argument #' of facet_wrap(). Only relevant for use_ggplot = T. #' @param conf.int Confidence level (\%) from 0-1 for the cumulative hazard, #' default is 0.95. Only relevant for use_ggplot = T #' @param conf.type Type of confidence interval - either "log" or "plain" . See #' function details of \code{plot.probtrans} for details #' @param \dots Further arguments to plot #' #' @return No return value #' #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @author Edouard F. Bonneville \email{e.f.bonneville@@lumc.nl} #' @seealso \code{\link{msfit}} #' @keywords hplot #' @examples #' #' # transition matrix for illness-death model #' tmat <- trans.illdeath() #' # data in wide format, for transition 1 this is dataset E1 of #' # Therneau & Grambsch (2000) #' tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,0,0,0),x2=c(6:1)) #' # data in long format using msprep #' tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), #' data=tg,keep=c("x1","x2"),trans=tmat) #' # events #' events(tglong) #' table(tglong$status,tglong$to,tglong$from) #' # expanded covariates #' tglong <- expand.covs(tglong,c("x1","x2")) #' # Cox model with different covariate #' cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), #' data=tglong,method="breslow") #' summary(cx) #' # new data, to check whether results are the same for transition 1 as #' # those in appendix E.1 of Therneau & Grambsch (2000) #' newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) #' msf <- msfit(cx,newdata,trans=tmat) #' # standard plot #' plot(msf) #' # specifying line width, color, and legend #' plot(msf,lwd=2,col=c("darkgreen","darkblue","darkred"),legend=c("1->2","1->3","2->3")) #' # separate plots #' par(mfrow=c(2,2)) #' plot(msf,type="separate",lwd=2) #' par(mfrow=c(1,1)) #' #' # ggplot version - see vignette for details #' library(ggplot2) #' plot(msf, use.ggplot = TRUE) #' #' @export plot.msfit <- function(x, type = c("single", "separate"), cols, xlab = "Time", ylab = "Cumulative hazard", ylim, lwd, lty, legend, legend.pos = "right", bty = "n", use.ggplot = FALSE, # Possible ggplot args here xlim, scale_type = "fixed", conf.int = 0.95, conf.type = "none", ...) { # Prelim type <- match.arg(type) if (!inherits(x, "msfit")) stop("'x' must be a 'msfit' object") # Use ggplot if (use.ggplot) { # Check for ggplot2 if (!requireNamespace("ggplot2", quietly = TRUE)) { stop("Package ggplot2 needed for this function to work. Please install it.", call. = FALSE) } p <- ggplot.msfit( x = x, type = type, cols = cols, xlab = xlab, ylab = ylab, ylim = ylim, lwd = lwd, lty = lty, legend = legend, legend.pos = legend.pos, xlim = xlim, scale_type = scale_type, conf.int = conf.int, conf.type = conf.type ) return(p) } # Base R plot msf1 <- x$Haz K <- max(msf1$trans) msft <- unique(msf1$time) # the time points nt <- length(msft) msfp <- matrix(msf1[,2], nrow=nt) # the cumulative hazards in matrix (nt x K) if (missing(legend)) legend <- to.trans2(x$trans)$transname if (type=="single") { if (missing(cols)) cols <- 1:K if (missing(ylim)) ylim <- c(0, max(msfp)) if (missing(lwd)) lwd <- 1 if (missing(lty)) lty <- rep(1, K) plot(msft, msfp[,1], type="s", ylim=ylim, xlab=xlab, ylab=ylab, col=cols[1], lwd=lwd, lty=lty[1], ...) if (K > 1) for (k in 2:K) lines(msft, msfp[,k], type="s", col=cols[k], lwd=lwd, lty=lty[k], ...) if (missing(legend.pos)) legend("topleft", legend=legend, col=cols, lwd=lwd, lty=lty, bty=bty) else legend(legend.pos[1], legend.pos[2], legend=legend, col=cols, lwd=lwd, lty=lty, bty=bty) } else if (type=="separate") { if (missing(cols)) cols <- rep(1,K) if (missing(lwd)) lwd <- 1 if (missing(lty)) lty <- 1 for (k in 1:K) { if (missing(ylim)) plot(msft, msfp[,k], type="s", xlab=xlab, ylab=ylab, col=cols[k], lwd=lwd, ...) else plot(msft, msfp[, k], type="s", ylim=ylim, xlab=xlab, ylab=ylab, col=cols[k], lwd=lwd, ...) title(main=legend[k]) } } return(invisible()) } mstate/R/etm2msdata.R0000644000176200001440000001132414627637077014160 0ustar liggesusers#' msdata to etm format #' #' @param msdata Multi-state data in \code{msdata} format, as used in #' \code{mstate} #' @inheritParams etm2msdata #' #' @export msdata2etm <- function(msdata, id, covs) { if (missing(id)) id <- "id" msdata$tostat <- msdata$to * msdata$status aggr <- aggregate(msdata[, c("status", "tostat")], by=list(id=msdata[, id], from=msdata$from, Tstart=msdata$Tstart, Tstop=msdata$Tstop), FUN=max) names(aggr)[names(aggr)=="tostat"] <- "to" ord <- c(1, 3, 4, 2, 6) etm <- aggr[, ord] names(etm)[2:5] <- c("entry", "exit", "from", "to") etm$to[etm$to==0] <- 99 etm <- etm[order(etm[, id], etm$entry), ] # Add covariates if (missing(covs)) covs <- NULL ncovs <- length(covs) if (ncovs > 0) { msdatacovs <- as.data.frame(msdata[, c("id", covs)]) msdatacovs <- msdatacovs[!duplicated(msdatacovs$id), ] etm <- merge(etm, msdatacovs, by="id") } etm } #' Convert transition matrix from mstate to etm format #' #' @param trans Transition matrix in \code{mstate} format #' #' @export trans2tra <- function(trans) return(!(is.na(trans))) #' Converts between etm and msdata format #' #' Converts multi-state data back and forth between etm and msdata formats. #' Covariates have to be dealt with separately. #' #' \code{msdata2etm} will convert from \code{msdata} format to \code{etm} #' format; \code{etm2msdata} will convert from \code{etm} format to #' \code{msdata} format. Both \code{msdata2etm} and \code{etm2msdata} work with #' basic time-fixed covariates. Time-dependent covariates are not supported. #' The function \code{msdata2etm} will work for transition-specific covariates, #' but the result does not really make much sense when used in etm. #' #' @aliases etm2msdata tra2trans #' @param id Column name identifying the subject id #' @param etmdata Multi-state data in \code{etm} format #' @param tra Transition matrix in \code{etm} format #' @param covs Vector of column names containing covariates to be included #' @author Hein Putter \email{H.Putter@@lumc.nl} #' @keywords datagen #' @examples #' #' # Transition matrix for illness-death model #' tmat <- trans.illdeath() #' # Data in wide format, for transition 1 this is dataset E1 of #' # Therneau & Grambsch (T&G) #' tg <- data.frame(id=1:6,illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), #' dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), #' x1=c(1,1,1,0,0,0),x2=c(6:1)) #' # Data in long format using msprep #' tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), #' data=tg,keep=c("x1","x2"),trans=tmat, id="id") #' # Same thing in etm format #' tra <- trans2tra(tmat) #' tgetm <- msdata2etm(tglong, id="id") #' tgetm <- msdata2etm(tglong, id="id", covs=c("x1", "x2")) # with covariates #' # And back #' etm2msdata(tgetm, id="id", tra=tra) #' etm2msdata(tgetm, id="id", tra=tra, covs=c("x1", "x2")) # with covariates #' @export etm2msdata <- function(etmdata, id, tra, covs) { nout <- apply(tra, 1, sum) trans <- tra2trans(tra) to <- apply(trans, 1, function(x) which(!is.na(x))) trans <- apply(trans, 1, function(x) x[!is.na(x)]) if (missing(id)) id <- "id" msdata <- data.frame(id = rep(etmdata[, id], nout[etmdata$from]), from = rep(etmdata$from, nout[etmdata$from]), to = unlist(lapply(etmdata$from, function(x) to[[x]])), trans = unlist(lapply(etmdata$from, function(x) trans[[x]])), # to = unlist(lapply(etmdata$from, function(x) to[, x])), # trans = unlist(lapply(etmdata$from, function(x) trans[, x])), Tstart = rep(etmdata$entry, nout[etmdata$from]), Tstop = rep(etmdata$exit, nout[etmdata$from]), time = NA, status = rep(etmdata$to, nout[etmdata$from])) msdata$time <- msdata$Tstop - msdata$Tstart msdata$status[msdata$status==msdata$to] <- -1 # these are going to be 1 msdata$status[msdata$status>0] <- 0 msdata$status <- -msdata$status # Add covariates if (missing(covs)) covs <- NULL ncovs <- length(covs) if (ncovs > 0) { etmdatacovs <- as.data.frame(etmdata[, c("id", covs)]) etmdatacovs <- etmdatacovs[!duplicated(etmdatacovs$id), ] msdata <- merge(msdata, etmdatacovs, by="id") } class(msdata) <- c("msdata", "data.frame") attr(msdata, "trans") <- trans return(msdata) } #' @export tra2trans <- function(tra) { ttrans <- t(matrix(as.numeric(tra), nrow(tra), ncol(tra))) ntr <- sum(tra) ttrans[ttrans==1] <- 1:ntr ttrans[ttrans==0] <- NA trans <- t(ttrans) return(trans) } mstate/R/relsurv.rformulate.R0000644000176200001440000001541214641210127015755 0ustar liggesusers`rformulate.mstate` <- function (formula, data = parent.frame(), ratetable, na.action, rmap, int, centered, cause) { # Function rformulate taken from relsurv and adapted for use in mstate. call <- match.call() m <- match.call(expand.dots = FALSE) m <- m[c(1, match(c("formula", "data", "cause"), names(m), nomatch = 0))] m[[1L]] <- quote(stats::model.frame) Terms <- if (missing(data)) terms(formula, specials = c("strata", "ratetable")) else terms(formula, specials = c("strata", "ratetable"), data = data) Term2 <- Terms rate <- attr(Terms, "specials")$ratetable if (length(rate) > 1) stop("Can have only 1 ratetable() call in a formula") if (!missing(rmap)) { if (length(rate) > 0) stop("cannot have both ratetable() in the formula and a rmap argument") rcall <- rmap if (!is.call(rcall) || rcall[[1]] != as.name("list")) stop("Invalid rcall argument") } else if (length(rate) > 0) { stemp <- untangle.specials(Terms, "ratetable") rcall <- as.call(parse(text = stemp$var)[[1]]) rcall[[1]] <- as.name("list") Term2 <- Term2[-stemp$terms] } else rcall <- NULL if (is.ratetable(ratetable)) { israte <- TRUE dimid <- names(dimnames(ratetable)) if (is.null(dimid)) dimid <- attr(ratetable, "dimid") else attr(ratetable, "dimid") <- dimid temp <- match(names(rcall)[-1], dimid) if (any(is.na(temp))) stop("Variable not found in the ratetable:", (names(rcall))[is.na(temp)]) if (any(!(dimid %in% names(rcall)))) { to.add <- dimid[!(dimid %in% names(rcall))] temp1 <- paste(text = paste(to.add, to.add, sep = "="), collapse = ",") if (is.null(rcall)) rcall <- parse(text = paste("list(", temp1, ")"))[[1]] else { temp2 <- deparse(rcall) rcall <- parse(text = paste("c(", temp2, ",list(", temp1, "))"))[[1]] } } } else stop("invalid ratetable") newvar <- all.vars(rcall) if (length(newvar) > 0) { tform <- paste(paste(deparse(Term2), collapse = ""), paste(newvar, collapse = "+"), sep = "+") m$formula <- as.formula(tform, environment(Terms)) } m <- eval(m, parent.frame()) n <- nrow(m) if (n == 0) stop("data set has 0 rows") Y <- stats::model.extract(m, "response") offset <- model.offset(m) if (length(offset) == 0) offset <- rep(0, n) if (!is.Surv(Y)) stop("Response must be a survival object") Y.surv <- Y if (attr(Y, "type") == "right") { type <- attr(Y, "type") status <- Y[, 2] Y <- Y[, 1] start <- rep(0, n) ncol0 <- 2 } else if (attr(Y, "type") == "counting") { type <- attr(Y, "type") status <- Y[, 3] start <- Y[, 1] Y <- Y[, 2] ncol0 <- 3 } else stop("Illegal response value") if (any(c(Y, start) < 0)) stop("Negative follow up time") if (max(Y) < 30) warning("The event times must be expressed in days! (Your max time in the data is less than 30 days) \n") rdata <- data.frame(eval(rcall, m), stringsAsFactors = TRUE) rtemp <- match.ratetable.mstate(rdata, ratetable) R <- rtemp$R cutpoints <- rtemp$cutpoints if (is.null(attr(ratetable, "factor"))) attr(ratetable, "factor") <- (attr(ratetable, "type") == 1) attr(ratetable, "dimid") <- dimid rtorig <- attributes(ratetable) nrt <- length(rtorig$dimid) wh.age <- which(dimid == "age") wh.year <- which(dimid == "year") if (length(wh.age) > 0) { if (max(R[, wh.age]) < 150 & stats::median(diff(cutpoints[[wh.age]])) > 12) warning("Age in the ratetable part of the formula must be expressed in days! \n (Your max age is less than 150 days) \n") } if (length(wh.year) > 0) { if (min(R[, wh.year]) > 1850 & max(R[, wh.year]) < 2020 & inherits(cutpoints[[wh.year]], "rtdate")) warning("The calendar year must be one of the date classes (Date, date, POSIXt)\n (Your variable seems to be expressed in years) \n") } if (nrt != ncol(R)) { nonex <- which(is.na(match(rtorig$dimid, attributes(ratetable)$dimid))) for (it in nonex) { if (rtorig$type[it] != 1) warning(paste("Variable ", rtorig$dimid[it], " is held fixed even though it changes in time in the population tables. \n (You may wish to set a value for each individual and not just one value for all)", sep = "")) } } strats <- attr(Term2, "specials")$strata if (length(strats)) { temp_str <- untangle.specials(Term2, "strata", 1) if (length(temp_str$vars) == 1) strata.keep <- m[[temp_str$vars]] else strata.keep <- strata(m[, temp_str$vars], shortlabel = TRUE, sep = ",") Term2 <- Term2[-temp_str$terms] } else strata.keep <- factor(rep(1, n)) if (!missing(cause)) strata.keep <- factor(rep(1, n)) attr(Term2, "intercept") <- 1 X <- model.matrix(Term2, m)[, -1, drop = FALSE] mm <- ncol(X) if (mm > 0 && !missing(centered) && centered) { mvalue <- colMeans(X) X <- X - rep(mvalue, each = nrow(X)) } else mvalue <- double(mm) cause <- stats::model.extract(m, "cause") if (is.null(cause)) cause <- rep(2, nrow(m)) keep <- Y > start if (!missing(int)) { int <- max(int) status[Y > int * 365.241] <- 0 Y <- pmin(Y, int * 365.241) keep <- keep & (start < int * 365.241) } if (any(start > Y) | any(Y < 0)) stop("Negative follow-up times") if (!all(keep)) { X <- X[keep, , drop = FALSE] Y <- Y[keep] start <- start[keep] status <- status[keep] R <- R[keep, , drop = FALSE] strata.keep <- strata.keep[keep] offset <- offset[keep] Y.surv <- Y.surv[keep, , drop = FALSE] cause <- cause[keep] n <- sum(keep) rdata <- rdata[keep, ] } temp <- R names(temp) <- paste0("X", 1:ncol(temp)) data <- data.frame(start = start, Y = Y, stat = status, temp) if (mm != 0) data <- cbind(data, X) attr(ratetable, "cutpoints") <- lapply(cutpoints, function(x) { if (inherits(x, "rtabledate")) class(x) <- "date" x }) out <- list(data = data, R = R, status = status, start = start, Y = Y, X = as.data.frame(X), m = mm, n = n, type = type, Y.surv = Y.surv, Terms = Terms, ratetable = ratetable, offset = offset, formula = formula, cause = cause, mvalue = mvalue, strata.keep = strata.keep) na.action <- attr(m, "na.action") if (length(na.action)) out$na.action <- na.action out }mstate/vignettes/0000755000176200001440000000000014643710676013575 5ustar liggesusersmstate/vignettes/visuals_demo.Rmd0000644000176200001440000003371414627637077016750 0ustar liggesusers--- title: "Visualising multi-state models using mstate" author: "Edouard F. Bonneville" date: "`r Sys.setenv(LANG = 'en_US.UTF-8'); format(Sys.Date(), '%d %B %Y')`" output: rmarkdown::html_vignette bibliography: Tutorial.bib vignette: > %\VignetteIndexEntry{Visualising multi-state models using mstate} %\VignetteEncoding{UTF-8} %\VignetteEngine{knitr::rmarkdown} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 6, fig.align = 'center' ) ``` # Preamble The purpose of the present vignette is to demonstrate the visualisation capacities of *mstate*, using both base R graphics and the *ggplot2* package [@ggplot]. To do so, we will use the dataset used to illustrate competing risks analyses in Section 3 of the Tutorial by @Tut . The dataset is available in *mstate* under the object name `aidssi`. We can begin by loading both the *mstate* and *ggplot2* libraries, and set a general theme for our plots: ```{r} # Load libraries library(mstate) library(ggplot2) # Set general ggplot2 theme theme_set(theme_bw(base_size = 14)) ``` We can then proceed to load the dataset, and prepare it for a competing risks analysis using `msprep()`. The steps are described in more detail in the [main vignette](https://CRAN.R-project.org/package=mstate/vignettes/Tutorial.pdf). ```{r load_dat} # Load data data("aidssi") head(aidssi) # Shorter name si <- aidssi # Prepare transition matrix tmat <- trans.comprisk(2, names = c("event-free", "AIDS", "SI")) tmat # Run msprep si$stat1 <- as.numeric(si$status == 1) si$stat2 <- as.numeric(si$status == 2) silong <- msprep( time = c(NA, "time", "time"), status = c(NA, "stat1", "stat2"), data = si, keep = "ccr5", trans = tmat ) # Run cox model silong <- expand.covs(silong, "ccr5") c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong) ``` # Visualising cumulative baseline hazards using `plot.msfit()` Using `msfit()`, we can obtain patient-specific transition hazards. We look here at a patient with a CCR5 genotype "WW" (wild type allele on both chromosomes). ```{r msfit_prep} # Data to predict WW <- data.frame( ccr5WM.1 = c(0, 0), ccr5WM.2 = c(0, 0), trans = c(1, 2), strata = c(1, 2) ) # Make msfit object msf.WW <- msfit( object = c1, newdata = WW, trans = tmat ) ``` The cumulative baseline hazards can be plotted simply by using: ```{r msfitplot_base_1} plot(msf.WW) ``` If we specify the argument `use.ggplot = TRUE`, the `plot` method will return a ggplot object. ```{r msfitplot_ggplot2_1} plot(msf.WW, use.ggplot = TRUE) ``` When using the argument `type = "separate"`, the base R plot will return a separate plot for each transition: ```{r msfitplot_base_2} par(mfrow = c(1, 2)) plot(msf.WW, type = "separate") ``` The *ggplot2* version will return a facetted plot, where the axis scales can either be kept "fixed", or "free" using the `scale_type` argument. It is essentially the same argument as `scales` from the `facet_wrap()` function of *ggplot2*, see `?ggplot2::facet_wrap`. ```{r msfitplot_ggplot_2} # Fixed scales plot(msf.WW, type = "separate", use.ggplot = TRUE, scale_type = "fixed") # Free scales plot(msf.WW, type = "separate", use.ggplot = TRUE, scale_type = "free", xlim = c(0, 15)) ``` The remaining arguments are standard plotting adjustments, which will work for both the *ggplot2* and base R version of the plots. For details, see `?mstate::plot.msfit`. Any further adjustments that are not available through the function arguments (such as plot title) can simply be added using standard *ggplot2* syntax using `+`, or graphics functions such as `title()`. The following is a customised example: ```{r msfitplot_customs} par(mfrow = c(1, 1)) # A base R customised plot plot( msf.WW, type = "single", cols = c("blue", "black"), # or numeric e.g. c(1, 2) xlim = c(0, 15), legend.pos = "top", lty = c("dashed", "solid"), use.ggplot = FALSE ) title("Cumulative baseline hazards") # A ggplot2 customised plot plot( msf.WW, type = "single", cols = c("blue", "black"), # or numeric e.g. c(1, 2) xlim = c(0, 15), lty = c("dashed", "solid"), legend.pos = "bottom", use.ggplot = TRUE ) + # Add title and center ggtitle("Cumulative baseline hazards") + theme(plot.title = element_text(hjust = 0.5)) ``` Available using `use.ggplot = TRUE` are the confidence intervals around the cumulative hazards, which can be obtained by specifying `conf.type` of type "plain" or "log", for example in single plot: ```{r msfitplot_confint1} plot( msf.WW, type = "single", use.ggplot = TRUE, conf.type = "log", conf.int = 0.95 ) ``` Or else, in a facetted plot: ```{r msfitplot_confint2} plot( msf.WW, type = "separate", use.ggplot = TRUE, conf.type = "log", conf.int = 0.95, scale_type = "free_y" ) ``` # Visualising transition probabilities using `plot.probtrans()` The transition hazards obtained in the previous section can be used to obtain patient-specific transition probabilities using `probtrans()`. Here, we would like to predict from the beginning of follow-up (`predt = 0`). ```{r} # Run probtrans pt.WW <- probtrans(msf.WW, predt = 0) # Example predict at different times summary(pt.WW, times = c(1, 5, 10)) ``` The `plot` method for `probtrans` objects allows to visualise the transition probabilities in various ways, using both functionality from base R graphics and *ggplot2*. ## Filled/stacked plots The default is a so-called "filled" plot, where the transition probabilities are represented by coloured areas. The `from` argument allows the user to choose the state to predict from (default is 1, the first state). ```{r plot_pt_filled1} plot(pt.WW, from = 1) ``` Again, the `use.ggplot = TRUE` argument can be used to return a ggplot object instead: ```{r plot_pt_filled2} # from = 1 implied plot(pt.WW, use.ggplot = TRUE) ``` Note that the *ggplot2* version of the plot places the state labels in a legend rather than labels in the plot itself. If we prefer the latter, we can specify `label = annotate` instead - and change the size of the labels with cex. ```{r plot_pt_filled3} plot(pt.WW, use.ggplot = TRUE, label = "annotate", cex = 6) ``` More generally, we can also adjust the stacking order using the `ord` argument, which takes a numeric vector equal to the number of states, in the desired stacking order (bottom to top). ```{r plot_pt_filled4} # Check state order again from transition matrix tmat # Plot aids (state 2), then event-free (state 1), and SI on top (state 3) plot(pt.WW, use.ggplot = TRUE, ord = c(2, 1, 3)) ``` You can also choose to forgo the colour, and specify `type = "stacked"` instead: ```{r plot_pt_stacked} plot(pt.WW, use.ggplot = TRUE, type = "stacked") ``` ## Single and separate plots, confidence intervals Instead of visualising the probabilities using stacked areas, we can go the traditional route and use a single line per state. Confidence intervals can then be added. By specifying `type = "separate"`, the base R plot will return a separate plot for all three states. ```{r plot_pt_separate1} par(mfrow = c(1, 3)) plot(pt.WW, type = "separate") ``` The *ggplot2* version will return a facetted plot, with one state per facet. It also accommodates confidence intervals, which are either of type "log" (default) or "plain". ```{r plot_pt_separate2} plot( pt.WW, use.ggplot = TRUE, type = "separate", conf.int = 0.95, # 95% level conf.type = "log" ) ``` These confidence intervals can be omitted using `conf.type = "none"`. What if we wanted all of these in one plot? For that, we can use the `type = single` option: ```{r plot_pt_single1} plot( pt.WW, use.ggplot = TRUE, type = "single", conf.int = 0.95, # 95% level conf.type = "log" ) ``` As before, the confidence intervals can be omitted. ```{r plot_pt_single2} plot( pt.WW, use.ggplot = TRUE, type = "single", conf.type = "none", lty = c(1, 2, 3), # change the linetype lwd = 1.5, ) ``` If the multi-state model is large, we may be only interested in plotting the probabilities for a subset of states together. This subset will not sum up to 1, so the stacked/filled plots are not appropriate. There is no set function to do this, but it can be done by extracting the data from a `plot.probtrans()`-based ggplot object as follows: ```{r plot_pt_single3} # Run plot and extract data using $data dat_plot <- plot(x = pt.WW, use.ggplot = TRUE, type = "single")$data # Begin new plot - Exclude or select states to be plotted ggplot(data = dat_plot[state != "event-free", ], aes( x = time, y = prob, ymin = CI_low, ymax = CI_upp, group = state, linetype = state, col = state )) + # Add CI and lines; change fill = NA to remove CIs geom_ribbon(col = NA, fill = "gray", alpha = 0.5) + geom_line() + # Remaining details labs(x = "Time", y = "Cumulative Incidence") + coord_cartesian(ylim = c(0, 1), xlim = c(0, 14), expand = 0) ``` If interest lies in plotting the probability of a *single* state, the procedure above can be used, or the `vis.multiple.pt()` function presented further could be used directly. # Plotting non-parametric cumulative incidence functions The `Cuminc()` function in *mstate* produces (for competing risks data) the non-parametric Aalen-Johansen estimates of the cumulative incidence functions. This is the same as is obtained in the *cmrpsk* package with the function `cuminc()`. In *mstate*, an object of class "Cuminc" can also be plotted as follows: ```{r plot.Cuminc1} cum_incid <- Cuminc( time = "time", status = "status", data = si ) plot( x = cum_incid, use.ggplot = TRUE, conf.type = "log", lty = 1:2, conf.int = 0.95, ) ``` In the case where this a grouping variable: ```{r plot.cuminc_x} cum_incid_grp <- Cuminc( time = "time", status = "status", group = "ccr5", data = si ) plot( x = cum_incid_grp, use.ggplot = TRUE, conf.type = "none", lty = 1:4, facet = FALSE ) plot( x = cum_incid_grp, use.ggplot = TRUE, conf.type = "none", lty = 1:4, facet = TRUE ) ``` # Visualising multiple probtrans objects We may also be interested in comparing the predicted probabilities for *multiple* reference patients. First, we need to create as many msfit/probtrans objects as there are reference patients of interest: ```{r vis_multiple_prep} # 1. Prepare patient data - both CCR5 genotypes WW <- data.frame( ccr5WM.1 = c(0, 0), ccr5WM.2 = c(0, 0), trans = c(1, 2), strata = c(1, 2) ) WM <- data.frame( ccr5WM.1 = c(1, 0), ccr5WM.2 = c(0, 1), trans = c(1, 2), strata = c(1, 2) ) # 2. Make msfit objects msf.WW <- msfit(c1, WW, trans = tmat) msf.WM <- msfit(c1, WM, trans = tmat) # 3. Make probtrans objects pt.WW <- probtrans(msf.WW, predt = 0) pt.WM <- probtrans(msf.WM, predt = 0) ``` Afterwards, we can supply the probtrans objects in a list into the `vis.multiple.pt()` function. This will visualise the probability of being in state number `to` over time, given the reference patient was in state number `from` at the `predt` time supplied in `probtrans()`. The example below visualises the probability of being in state AIDS, given event-free at time 0. The two lines/associated confidence intervals correspond to the reference patients - both with a different CCR5 genotype ("WW" or "WM"). ```{r vis_multiple_plot} vis.multiple.pt( x = list(pt.WW, pt.WM), from = 1, to = 2, conf.type = "log", cols = c(1, 2), labels = c("Pat WW", "Pat WM"), legend.title = "Ref patients" ) ``` This function could just as well be used for a single probtrans object: ```{r vis_multiple_plot2} vis.multiple.pt( x = list(pt.WW), from = 1, to = 2, conf.type = "log", cols = c(1, 2), labels = c("Pat WW", "Pat WM"), legend.title = "Ref patients" ) ``` Note this function is only available in the ggplot format. ## A mirrored plot Multiple probtrans objects can also be compared by means of a mirrored plot. The idea is to compare the probabilities of being in (all) states between two references patients at a particular horizon. In addition to reference patients, different subsets of the data could equally be compared. ```{r mirror1} vis.mirror.pt( x = list(pt.WW, pt.WM), titles = c("WW", "WM"), horizon = 10 ) ``` Omitting the `horizon` argument will default to plotting both sides with their respective maximum follow-up time, so it may be asymmetric. We thus recommend to always use the `horizon` argument. If for example time is in years, and follow-up is extremely short, you may want to override the breaks on the x-axis. This can be done using the `breaks_x_left` and `breaks_x_right` arguments. ```{r mirror2} vis.mirror.pt( x = list(pt.WW, pt.WM), titles = c("WW", "WM"), size_titles = 8, horizon = 5, breaks_x_left = c(0, 1, 2, 3, 4, 5), breaks_x_right = c(0, 1, 2, 3, 4), ord = c(3, 2, 1) ) ``` # Saving outputs Any plots made with *mstate* using the `use.ggplot = TRUE` will return a ggplot object, which can be saved to a desired format by using `ggplot2::ggsave()`. Please refer to the [article](https://ggplot2.tidyverse.org/reference/ggsave.html#saving-images-without-ggsave-) written by the *ggplot2* team on using `ggplot2::ggsave()`. ```{r saving, eval=FALSE} # Saving a ggplot2 plot p <- plot(pt.WW, use.ggplot = TRUE) ggplot2::ggsave("my_ggplot2_plot.png") # Standard graphics plot png("my_standard_plot.png") plot(pt.WW, use.ggplot = FALSE) dev.off() ``` # Reproducibility
Reproducibility receipt ```{r session-info, include=TRUE, echo=TRUE, results='markup'} # Date/time Sys.time() # Environment sessionInfo() ```
# References mstate/vignettes/Tutorial.bib0000644000176200001440000000243214627637077016064 0ustar liggesusers@BOOK{ABGK, author = {P. K. Andersen and {\O}. Borgan and R. D. Gill and N. Keiding}, title = {Statistical Models Based on Counting Processes}, publisher = {Springer-Verlag}, year = 1993 } @ARTICLE{FioccoPvH05, AUTHOR = {Fiocco, M. and Putter, H. and van Houwelingen, J. C.}, TITLE = {Reduced rank proportional hazards model for competing risks}, JOURNAL = {Biostatistics}, YEAR = {2005}, volume = {6}, pages = {465-478} } @ARTICLE{Tut, AUTHOR = "Putter, H. and Fiocco, M. and Geskus, R. B.", TITLE = "Tutorial in biostatistics: Competing risks and multi-state models", JOURNAL = "Statist Med", YEAR = "2007", volume = "26", pages = "2389-2430", } @ARTICLE{deW, AUTHOR = "de Wreede, L. and Fiocco, M. and Putter, H.", TITLE = "The mstate package for estimation and prediction in non- and semi-parametric multi-state models", YEAR = "2009", note = "Submitted" } @Book{ggplot, author = {Hadley Wickham}, title = {ggplot2: Elegant Graphics for Data Analysis}, publisher = {Springer-Verlag New York}, year = {2016}, isbn = {978-3-319-24277-4}, url = {https://ggplot2.tidyverse.org}, } mstate/vignettes/Tutorial.Rnw0000644000176200001440000017527714641733054016104 0ustar liggesusers%\VignetteIndexEntry{Using mstate for the analyses of Putter et al. (Stat Med 2007)} %\VignetteDepends{cmprsk} \SweaveOpts{eval=TRUE} \SweaveOpts{keep.source=FALSE} \documentclass[11pt,twoside,a4paper,final]{article} \usepackage[leqno]{amsmath} \usepackage{xspace} \usepackage{amsbsy} \usepackage{fancyhdr} \usepackage{comment} \usepackage{fullpage} \usepackage{natbib} \usepackage{hyperref} \usepackage{Sweave} \usepackage[utf8]{inputenc} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\headsep}{25pt} \renewcommand{\footskip}{30pt} \renewcommand{\footrulewidth}{0pt} \newcommand{\Rcode}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rfunction}[1]{\textsl{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \newcommand{\Rfunarg}[1]{{\textit{#1}}} \newcommand{\Rmethod}[1]{{\textit{#1}}} \newcommand{\Ritem}[1]{{\texttt{#1}}} % self defined, item in a list \newcommand{\Rcolumn}[1]{{\texttt{#1}}} % self defined, column name in data frame \newcommand{\R}{\texttt{R}\xspace} \newcommand{\survival}{\Rpackage{survival}\xspace} \newcommand{\mstate}{\Rpackage{mstate}\xspace} \newcommand{\msprep}{\Rfunction{msprep}\xspace} \newcommand{\msfit}{\Rfunction{msfit}\xspace} \newcommand{\expandcovs}{\Rfunction{expand.covs}\xspace} \newcommand{\events}{\Rfunction{events}\xspace} \newcommand{\plot}{\Rfunction{plot}\xspace} \newcommand{\paths}{\Rfunction{paths}\xspace} \newcommand{\probtrans}{\Rfunction{probtrans}\xspace} \newcommand{\Cuminc}{\Rfunction{Cuminc}\xspace} \newcommand{\coxph}{\Rfunction{coxph}\xspace} \newcommand{\survfit}{\Rfunction{survfit}\xspace} \newcommand{\stratum}{\Rcolumn{stratum}\xspace} \newcommand{\strata}{\Rcolumn{strata}\xspace} \newcommand{\prtime}{\Rcolumn{prtime}\xspace} \newcommand{\pr}{\Rcolumn{pr}\xspace} \newcommand{\from}{\Rcolumn{from}\xspace} %\newcommand{\direct}{\texttt{direct}\xspace} \newcommand{\Tstart}{\Rcolumn{Tstart}\xspace} \newcommand{\Tstop}{\Rcolumn{Tstop}\xspace} \newcommand{\status}{\Rcolumn{status}\xspace} \newcommand{\patid}{\Rcolumn{patid}\xspace} \newcommand{\trans}{\Rcolumn{trans}\xspace} \newcommand{\keep}{\Rcolumn{keep}\xspace} \newcommand{\NA}{\Robject{NA}\xspace} \newcommand{\FALSE}{\Robject{FALSE}\xspace} \newcommand{\TRUE}{\Robject{TRUE}\xspace} \newcommand{\newdata}{\Rfunarg{newdata}\xspace} \newcommand{\Haz}{\Ritem{Haz}\xspace} \newcommand{\varHaz}{\Ritem{varHaz}\xspace} \newcommand{\data}{\texttt{data}\xspace} \newcommand{\tut}{the tutorial\xspace} \newcommand{\Tx}{transplantation\xspace} \newcommand{\PR}{platelet recovery\xspace} \newcommand{\RD}{relapse/death\xspace} \newcommand{\PH}{proportional hazards\xspace} \newcommand{\se}{standard error\xspace} \newcommand{\ses}{standard errors\xspace} \newcommand{\msm}{multi-state model\xspace} \newcommand{\msms}{multi-state models\xspace} \newcommand{\crs}{competing risks\xspace} \newcommand{\ci}{cumulative incidence\xspace} \newcommand{\cis}{cumulative incidences\xspace} \newcommand{\LLambda}{\boldsymbol{\Lambda}} \newcommand{\II}{{\mathbf I}} \newcommand{\PP}{{\mathbf P}} \newcommand{\given}{\,|\,} \begin{document} \SweaveOpts{concordance=TRUE} \title{Tutorial in biostatistics: Competing risks and multi-state models\\ Analyses using the \mstate package} \author{Hein Putter\\ Department of Medical Statistics and Bioinformatics\\ Leiden University Medical Center\\ Postzone S-5-P\\ PO Box 9600\\ 2300 RC\ \ Leiden\\ The Netherlands\\ E-mail: \texttt{h.putter@lumc.nl}} \maketitle \newpage \section{Introduction}\label{sec:intro} This is a companion file both for the \mstate package and for the Tutorial in Biostatistics: Competing risks and multi-state models~\citep{Tut}, simply referred to henceforth as the tutorial. Emphasis in this document will be on the use of \mstate, not on the theory of competing risks and multi-state models. The only exception is that I have added some theory about the Aalen-Johansen estimator that is implemented in \mstate but did not appear in \tut. For other theory on multi-state models, and for interpretation of the results of the analyses, we will repeatedly refer to \tut. I will occasionally give more detail and show more analyses than in \tut. Also I sometimes give more details on the function in \mstate than strictly necessary for the analyses in \tut, but not all features will be shown either. This file and the \mstate package, which in turn contains all the data used in \tut, can be found at \url{https://github.com/hputter/mstate}. This file is also a vignette of the \mstate package. Type \Rcode{vignette("Tutorial")} after having installed and loaded \mstate to access this document within R. I do not follow the order of \tut. Rather, I will start with multi-state models, Section 4 of \tut, and finally switch back to the special case of \crs models. Sections~\ref{sec:prep}, \ref{sec:est} and \ref{sec:pred} of this document will discuss data preparation, estimation and prediction, respectively in multi-state models. In Section~\ref{sec:comprisk} I illustrate some functions of \mstate designed especially for competing risks. After installation, the \mstate package is loaded in the usual way. <>= library(mstate) @ The versions of \R and \mstate used in this document are as follows: <>= R.version$version.string packageDescription("mstate", fields = "Version") @ \section{Data preparation}\label{sec:prep} The data used in Section 4 of \tut are 2204 patients transplanted at the EBMT between 1995 and 1998. These data are included in the \mstate package. For (a tiny bit) more background on the data, refer to \tut, or type \Rcode{help(ebmt3)}. <>= data(ebmt3) head(ebmt3) @ Let us first have a look at the covariates. For instance disease subclassification: <>= n <- nrow(ebmt3) table(ebmt3$dissub); round(100*table(ebmt3$dissub)/n) @ The output of the other covariates is omitted. <>= table(ebmt3$age); round(100*table(ebmt3$age)/n) table(ebmt3$drmatch); round(100*table(ebmt3$drmatch)/n) table(ebmt3$tcd); round(100*table(ebmt3$tcd)/n) @ The first step in a \msm analysis is to set up the transition matrix. The transition matrix specifies which direct transitions are possible (those with \NA are impossible) and assigns numbers to the transitions for future reference. This can be done explicitly. <>= tmat <- matrix(NA,3,3) tmat[1,2:3] <- 1:2 tmat[2,3] <- 3 dimnames(tmat) <- list(from=c("Tx","PR","RelDeath"),to=c("Tx","PR","RelDeath")) tmat @ Steven McKinney has kindly provided a convenient function \Rfunction{transMat} to define transition matrices. The same transition matrix may be constructed as follows. <>= tmat <- transMat(x=list(c(2,3),c(3),c()), names=c("Tx","PR","RelDeath")) tmat @ For common \msms, such as the illness-death model (and competing risks models, Section~\ref{sec:comprisk}) there is a built-in function to obtain these transition matrices more easily. <>= tmat <- trans.illdeath(names=c("Tx","PR","RelDeath")) tmat @ The function \paths can be used to give a list of all possible paths through the multi-state model. This function should not be used for transition matrices specifying a multi-state model with loops, since there will be infinitely many paths. At the moment there is no check for the presence of loops, but this will be included shortly. <>= paths(tmat) @ Time in the \Robject{ebmt3} data is reported in days; before doing any analysis, we first convert this to years. <>= ebmt3$prtime <- ebmt3$prtime/365.25 ebmt3$rfstime <- ebmt3$rfstime/365.25 @ In order to prepare data in long format, we specify the names of the covariates that we are interested in modeling. Note that I am adding \prtime, which is not really a covariate, but specifying the time of platelet recovery. The purpose of this will become clear later. The specified covariates are to be retained in the dataset in long format (this is the argument \Rfunarg{keep}), which we are going to call \Robject{msbmt}. For the original dataset \Robject{ebmt3}, each row corresponds to a single patient. For the long format data \Robject{msbmt}, each row will correspond to a transition for which a patient is at risk. See \tut for more detailed information. <>= covs <- c("dissub", "age", "drmatch", "tcd", "prtime") msbmt <- msprep(time=c(NA,"prtime","rfstime"), status=c(NA,"prstat","rfsstat"), data=ebmt3, trans=tmat, keep=covs) @ The result is an S3 object of class \Rclass{msdata} and \Rclass{data.frame}. An \Rclass{msdata} object is actually only a data frame with a \Ritem{trans} attribute holding the transition matrix used to define it. A \Rfunction{print} method has been defined for \Rclass{msdata} objects, which also prints the transition matrix if requested (set argument \Rfunarg{trans} to \TRUE, default is \FALSE). <>= head(msbmt) @ In the above call of \msprep, the \Rfunarg{time} and \Rfunarg{status} arguments specify the column names in the data \Robject{ebmt3} corresponding to the three states in the multi-state model. Since all the patients start in state 1 at time 0, the \Rfunarg{time} and \Rfunarg{status} arguments corresponding to the first state do not really have a value. In such cases, the corresponding elements of \Rfunarg{time} and \Rfunarg{status} may be given the value \NA. An alternative way of specifying \Rfunarg{time} and \Rfunarg{status} (and \Rfunarg{keep} as well) is as matrices of dimension $n \times S$ with $S$ the number of states (and $n \times p$ with $p$ the number of covariates for \Rfunarg{keep}). The \Rfunarg{data} argument doesn't need to be specified then. The number of events in the data can be summarized with the function \events. <>= events(msbmt) @ For regression purposes, we now add transition-specific covariates to the dataset. For more details on transition-specific covariates, refer to \tut. For a numerical covariate \Rcolumn{cov}, the names of the expanded (transition-specific) covariates are \Rcolumn{cov.1}, \Rcolumn{cov.2} etc. The extension \Rcolumn{.i} refers to transition number $i$. First, we define these transition-specific covariates as a separate dataset, by setting \Rfunarg{append} to \FALSE. <>= expcovs <- expand.covs(msbmt,covs[2:3],append=FALSE) head(expcovs) @ We see that this expanded covariates dataset is quite large, and that the covariate names are quite long. For categorical covariates, the default names of the expanded covariates are a combination of the covariate name, the level (similar to the names of the regression coefficients that you see in regression output), followed by the transition number, in such a way that the combination is allowed as column name. If these names are too long, the user may set the value of \Rfunarg{longnames} (default=\TRUE) to \FALSE. In this case, the covariate name is followed by \Rcolumn{1}, \Rcolumn{2} etc, before the transition number. In case of a covariate with only two levels, the covariate name is just followed by the transition number. Confident that this will work out, we also set \Rfunarg{append} to \TRUE (default), which will append the expanded covariates to the dataset. <>= msbmt <- expand.covs(msbmt,covs,append=TRUE,longnames=FALSE) head(msbmt) @ The names indeed are quite a bit shorter. The downside however is that we need to remember for ourselves to which category for instance the number \Rcolumn{1} in \Rcolumn{age1.2} corresponds (age 20-40 with $\leq 20$ as reference category). \section{Estimation}\label{sec:est} After having prepared the data in long format, estimation of covariate effects using Cox regression is straightforward using the \coxph function of the \survival package. This is not at all a feature of the \mstate package, other than that \msprep has facilitated preparation of the data. Let us consider the Markov model, where we assume different effects of the covariates for different transitions; hence we use the transition-specific covariates obtained by \expandcovs. The delayed entry aspect of this model for transition 3 (see discussion in \tut) is achieved by specifying \Rfunarg{Surv(Tstart,Tstop,status)}, where (this is reflected in the long format data) \Tstart is the time of entry in the state, and \Tstop the event or censoring time, depending on the value of \Rcolumn{status}. We consider first the model without any proportionality assumption on the baseline hazards; this is achieved by adding \Rfunarg{strata(trans)} to the formula, which estimates separate baseline hazards for different values of \trans (the transitions). The results appear in the left column of Table III of \tut. <>= c1 <- coxph(Surv(Tstart,Tstop,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + strata(trans), data=msbmt, method="breslow") c1 @ The interpretation is discussed in \tut. The next model considered is the Markov model where the transition hazards into relapse or death (these correspond to transitions 2 and 3) are assumed to be proportional. For this purpose transition 1 (\Tx $\to$ \PR) belongs to one stratum and transitions 2 (\Tx $\to$ \RD) and 3 (\PR $\to$ \RD) belong to a second stratum. Transitions 2 and 3 have the same receiving state, hence the same value of \Rcolumn{to}, so the two strata can be distinguished by the variable \Rcolumn{to} in our dataset. In order to distinguish between transitions 2 and 3, we introduce a time-dependent covariate \pr that indicates whether or not platelet recovery has already occurred. For transition 2 (Tx $\to$ RelDeath) the value of \pr equals 0, while for transition 3 (PR $\to$ RelDeath) the value of \pr equals 1. Results are found in the middle of Table III of \tut. <>= msbmt$pr <- 0 msbmt$pr[msbmt$trans==3] <- 1 c2 <- coxph(Surv(Tstart,Tstop,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + strata(to), data=msbmt, method="breslow") c2 @ For a discussion of the results we again refer to \tut. The hazard ratio of \pr (0.685) and its $p$-value (0.073) indicate a trend-significant beneficial effect of \PR on relapse-free survival. Later on we will look at the corresponding baseline transition intensities for these two models and see as a graphical check that the assumption of proportionality of the baseline hazards for transitions 2 and 3 is reasonable. This can also be tested formally using the function \Rfunction{cox.zph} (part of the \survival package, not of \mstate). <>= cox.zph(c2) @ There is no evidence of non-proportionality of the baseline transition intensities of transitions 2 ($p$=0.496 for \pr). There is strong evidence that the \PH assumption for \Rcolumn{dissub2} (CML vs AML) is violated, at least for the transitions into relapse and death. This makes sense, clinically, since CML and AML are two diseases with completely different biological pathways. It would have been much better to study separate \msms for the three disease subclassifications. However, since the purpose of this manuscript is to illustrate the use of \mstate, we will blatantly ignore the clear evidence of non-proportionality for the disease subclassifications. Building on the Markov PH model, we can investigate whether the time at which a patient arrived in state 2 (PR) influences the subsequent RFS rate, that is, the transition hazard of PR $\to$ RelDeath. Here the purpose of expanding \prtime becomes apparent. Since \prtime only makes sense for transition 3 (PR $\to$ RelDeath), we need the transition-specific covariate of \prtime for transition 3, which is \Rcolumn{prtime.3}. The corresponding model is termed the "state arrival extended Markov PH" model in \tut, and appears on the right of Table III. <>= c3 <- coxph(Surv(Tstart,Tstop,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + prtime.3 + strata(to), data=msbmt, method="breslow") c3 @ The influence of the time at which \PR occurred seems small and is not significant ($p$=0.62, last row). The clock-reset models may be obtained very similarly to those of the clock-forward models. The only difference is that \Rfunarg{Surv(Tstart,Tstop,status)} is replaced by \Rfunarg{Surv(time,status)}. This reflects the fact (recall that in our long format data each row corresponds to a transition) that for each transition the time starts at 0, rather than \Tstart, the time since start of study at which the state has been entered. We will only show the code, not the output; the reader may try this for him-or herself. <>= c4 <- coxph(Surv(time,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + strata(trans), data=msbmt, method="breslow") c5 <- coxph(Surv(time,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + strata(to), data=msbmt, method="breslow") c6 <- coxph(Surv(time,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + prtime.3 + strata(to), data=msbmt, method="breslow") @ \section{Prediction}\label{sec:pred} In order to obtain prediction probabilities in the context of the Markov \msms discussed in the previous section, basically two steps are involved. The first is to use the estimated parameters and baseline transition hazards and the covariate values of a patient of interest, to obtain patient-specific transition hazards for that patient, for each of the transitions in the \msm. This is what the function \msfit is designed to do. The second step is to use the resulting patient-specific transition hazards (and variances and covariances) as input for \probtrans to obtain (patient-specific) transition probabilities. I will first show how \msfit can be used to obtain the baseline hazards associated with the Markov stratified and PH models. The hazards of the Markov stratified models (and their variances and covariates) are obtained by first creating a new dataset containing the (expanded) covariates along with their values (in this case 0). This is very similar to the use of \survfit from the \survival package. The important difference is that for one patient, this \newdata data frame needs to have exactly one line for each transition. When transition-specific covariates have been used in the model, the easiest way to obtain such a data frame is to first create a data frame with the basic covariates and then using \expandcovs to obtain the transition-specific covariates. Since \expandcovs expects an \Rclass{msdata} object, we set the class of the \newdata data to \Rclass{msdata} explicitly. We also copy the levels of the categorical covariates before expanding, although this is not really necessary here. <>= newd <- data.frame(dissub=rep(0,3),age=rep(0,3),drmatch=rep(0,3),tcd=rep(0,3),trans=1:3) newd$dissub <- factor(newd$dissub,levels=0:2,labels=levels(ebmt3$dissub)) newd$age <- factor(newd$age,levels=0:2,labels=levels(ebmt3$age)) newd$drmatch <- factor(newd$drmatch,levels=0:1,labels=levels(ebmt3$drmatch)) newd$tcd <- factor(newd$tcd,levels=0:1,labels=levels(ebmt3$tcd)) attr(newd, "trans") <- tmat class(newd) <- c("msdata","data.frame") newd <- expand.covs(newd,covs[1:4],longnames=FALSE) newd$strata=1:3 newd @ The last command where the column \Rcolumn{strata} is added is important and points to a second major difference between \survfit and \msfit. The \newdata data frame needs to have a column \strata specifying to which stratum in the \Robject{coxph} object each transition belongs. Here each transition corresponds to a separate stratum, so we specify 1, 2, and 3. To obtain an estimate of the baseline cumulative hazard for the "stratified hazards" model, \msfit can be called with the first Cox model, \Robject{c1}, as input model, and \Robject{newd} as \Rfunarg{newdata} argument. <>= msf1 <- msfit(c1, newdata=newd, trans=tmat) @ The result is an object of class \Rclass{msfit}, which is a list with three items, \Haz, \varHaz, and \Ritem{trans}. The item \Ritem{trans} records the transition matrix used when constructing the \Rclass{msfit} object. \Haz contains the estimated cumulative hazard for each of the transitions for the particular patient specified in \Robject{newd}, while \varHaz contains the estimated variances of these cumulative hazards, as well as the covariances for each combination of two transitions. All are evaluated at the time points for which any event in any transition occurs, possibly augmented with the largest (non-event) time point in the data. The \Rfunction{summary} method for \Rclass{msfit} objects is most conveniently used for a summary. If we also would like to have a look at the covariances, we could set the argument \Rfunarg{variance} equal to \TRUE. <>= summary(msf1) @ Let us have a closer look at some of the variances and covariances as well. <>= vH1 <- msf1$varHaz head(vH1[vH1$trans1==1 & vH1$trans2==1,]) tail(vH1[vH1$trans1==1 & vH1$trans2==1,]) tail(vH1[vH1$trans1==1 & vH1$trans2==2,]) tail(vH1[vH1$trans1==1 & vH1$trans2==3,]) tail(vH1[vH1$trans1==2 & vH1$trans2==3,]) @ Note that the covariances of the estimated cumulative hazards are practically (apart from rounding errors) 0. Theoretically, they should be 0, because with separate strata and separate covariate effects for the different transitions, the estimates of the three transitions could in fact have been estimated as three separate Cox models (this would give exactly the same results). The estimated baseline cumulative hazards for the Markov PH model are obtained in mostly the same way. The only exception is the specification of the \Rfunarg{strata} argument in \Robject{newd}. Instead of taking the values 1, 2, and 3, for the three transitions, they take values 1, 2, 2, to indicate that transition 1 corresponds to stratum 1, and both transitions 2 and 3 correspond to stratum 2 (the order of the strata as defined in the \Robject{coxph} object). Also the time-dependent covariate \pr needs to be included, taking the value 0 for transitions 1 and 2, and 1 for transition 3. <>= newd$strata=c(1,2,2) newd$pr <- c(0,0,1) msf2 <- msfit(c2, newdata=newd, trans=tmat) summary(msf2) vH2 <- msf2$varHaz tail(vH2[vH2$trans1==1 & vH2$trans2==2,]) tail(vH2[vH2$trans1==1 & vH2$trans2==3,]) tail(vH2[vH2$trans1==2 & vH2$trans2==3,]) @ Note that the estimated cumulative hazards and variances for transition 1 are identical to those from \Robject{msf1}. We saw earlier that the estimated regression coefficients were also identical for the Markov stratified and the Markon PH models. Note also that the variance of the cumulative hazard of transition 3 (and 2, not shown) is smaller than with \Robject{msf1}. The cumulative hazard estimates of transitions 1 and 2 are still uncorrelated (and 1 and 3), but those of transitions 2 and 3 are correlated now, because they share a common baseline. Let us compare the baseline hazards of the Markov stratified and PH models graphically. For this we use the \Rfunction{plot} method for \Rclass{msfit} objects. Figure~\ref{fig:fig14} corresponds to Figure~14 in \tut. <>= par(mfrow=c(1,2)) plot(msf1,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Stratified baseline hazards",legend.pos=c(2,0.9)) plot(msf2,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Proportional baseline hazards",legend.pos=c(2,0.9)) par(mfrow=c(1,1)) @ \begin{figure}[h!] \centering <>= par(mfrow=c(1,2)) plot(msf1,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Stratified baseline hazards",legend.pos=c(2,0.9)) plot(msf2,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Proportional baseline hazards",legend.pos=c(2,0.9)) par(mfrow=c(1,1)) @ \caption{Baseline cumulative hazard curves for the EBMT illness-death model. On the left the Markov stratified hazards model, on the right the Markov PH model.} \label{fig:fig14} \end{figure} \setkeys{Gin}{width=0.65\textwidth} Define the \msm as $X(t)$, a random process taking values in $1,\ldots,S$ ($S$ being the number of states). We are interested in estimating so called transition probabilities $P_{gh}(s,t) = P(X(t) = h \given X(s) = g)$, possibly depending on covariates. For instance, $P_{13}(0,t)$ indicates the probability of having relapsed/died (state 3) by time $t$, given that the individual was alive without relapse or \PR (state 1) at time $s=0$. By fixing $s$ and varying $t$, we can predict the future behavior of the \msm given the present at time $s$. For Markov models, these probabilities will depend only on the state at time $s$, not on what happened before. For these Markov models there is a powerful relation between these transition probabilities and the transition intensities, given by \begin{equation}\label{eq:Kolm} \PP(s,t) = \prod_{(s,t]} (\II + d\LLambda(u)) \end{equation} Here $\PP(s,t)$ is an $S \times S$ matrix with as $(g,h)$ element the $P_{gh}(s,t)$ in which we are interested, and $\LLambda(t)$ is an $S \times S$ matrix with as off-diagonal $(g,h)$ elements the transition intensities $\Lambda_{gh}(t)$ of transition $g \to h$. If such a direct transition is not possible, then $\Lambda_{gh}(t)=0$. The diagonal elements of $\LLambda(t)$ are defined as $\Lambda_{gg}(t) = -\sum_{h \not= g} \Lambda_{gh}(t)$, i.e.~as minus the sum of the transition intensities of the transitions out from state $g$. Finally, $\II$ is the $S \times S$ identity matrix. Equation~\eqref{eq:Kolm} describes a theoretical relation between the true underlying transition intensities and transition probabilities. The product is a so called product integral~\citep{ABGK} when the transition intensities are continuous. We already have estimates of all the transition intensities. If we gather these in a matrix and plug them in equation~\eqref{eq:Kolm}, we get \begin{equation}\label{eq:AJ} \hat{\PP}(s,t) = \prod_{s < u \leq t} \left( \II + d\hat{\LLambda}(u) \right) \end{equation} as an estimate of the transition probabilities. This estimator is called the Aalen-Johansen estimator, and it is implemented in \probtrans. By working with matrices, we immediately get all the transition probabilities from all the starting states $g$ to all the receiving states $h$ in one go. When we fix $s$, we can calculate all these transition probabilities by forward matrix multiplications using the simple recursive relation \[ \hat{\PP}(s,t+) = \hat{\PP}(s,t) \cdot \left( \II + d\hat{\LLambda}(t+) \right)\ . \] \citet{ABGK} and \citet{deW} also describe recursive formulas for the covariance matrix of $\hat{\PP}(s,t)$, with and without covariates, which are implemented in \mstate. Let us see all this theory in action and let us recreate Figure~15 of \tut. For this we need to calculate transition probabilities for a baseline patient, based on the Markov PH model. We thus use \Robject{msf2} as input for \probtrans. By default, \probtrans uses forward prediction, which means that $s$ is kept fixed and $t>s$. The argument \Rfunarg{predt} specifies either $s$ or $t$. In this case (forward prediction) it specifies $s$. From version 0.2.3 on, \probtrans no longer needs a \Rfunarg{trans} argument, but takes that from the \Ritem{trans} item of the \Rclass{msfit} object. <>= pt <- probtrans(msf2, predt=0) @ The result of \probtrans is a \Rclass{probtrans} object, which is a list, where item \Ritem{[[i]]} contains predictions from state $i$. Each item of the list is a data frame with \Rcolumn{time} containing all event time points, and \Rcolumn{pstate1}, \Rcolumn{pstate2}, etc the probabilities of being in state 1, 2, etc, and finally \Rcolumn{se1}, \Rcolumn{se2} etc the standard errors of these estimated probabilities. The item \Ritem{[[3]]} contains predictions $\hat{P}_{3h}(0,t)$ (we chose $s=0$) starting from the RelDeath state, which is absorbing. <>= head(pt[[3]]) tail(pt[[3]]) @ We see that these prediction probabilities are not so interesting; the probabilities are all 0 or 1, and, since there is no randomness, all the SE's are 0. Item \Ritem{[[2]]} contains predictions $\hat{P}_{2h}(0,t)$ from state 2. It is easier to use the \Rfunction{summary} method for \Rclass{probtrans} objects. The user may specify a \Rfunarg{from} argument, specifying from which state the predictions are to be printed. The \Rfunction{summary} method prints a selection, the \Rfunction{head} and \Rfunction{tail} by default unless there are fewer than 12 time points. When \Rfunarg{complete} is set to \TRUE, predictions for all time points are printed. If the \Rfunarg{from} argument is missing in the function call, then predictions from all states are printed. <>= summary(pt, from=2) @ From state 2 it is only possible to visit state 3 or to remain in state 2. The probability of going to state 1 is 0. The predictions $\hat{P}_{1h}(0,t)$ from state 1 in \Ritem{[[1]]} are perhaps of most interest here. <>= summary(pt, from=1) @ But we see that we do not have enough information to create Figure 15 of \tut, since the probability of the relapse/death state (\Rcolumn{pstate3}) does not distinguish between relapse/death before or after \PR. The remedy is actually easy in this case. Consider a different \msm with two RelDeath states, the first one (state 3) after \PR, the second one (state 4) without \PR. The transition matrix of this \msm is defined as <>= tmat2 <- transMat(x=list(c(2,4),c(3),c(),c())) tmat2 @ The \msm has four states and the same three transitions as before. If we apply \probtrans to this new \msm with the same estimated cumulative hazards and standard errors as before, we get exactly what we want. Thus, we just have to call \probtrans with the old \Robject{msf2} and the new \Robject{tmat2}. From version 0.2.3 on, since the transition matrix is in the \Rclass{msfit} object, we just need to replace the \Ritem{trans} item of \Robject{msf2} by \Robject{tmat2}. In the elements of the resulting lists, \Rcolumn{pstate3} will indicate the probability of relapse/death after \PR and \Rcolumn{pstate4} the probability of relapse/death without \PR. <>= msf2$trans <- tmat2 pt <- probtrans(msf2, predt=0) summary(pt, from=1) @ The reader may check that the \Rcolumn{pstate3} and \Rcolumn{pstate4} probabilities of this new Aalen-Johansen estimator sum up to the \Rcolumn{pstate3} probability of the result of the previous call to \probtrans, and that the \Rcolumn{pstate1} and \Rcolumn{pstate2} probabilities are unchanged. Figure~\ref{fig:fig15} contains a plot of \Robject{pt1}. For this we use the \Rfunction{plot} method for \Rclass{probtrans} objects. <>= plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) @ \begin{figure}[h!] \centering <>= plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) @ \caption{Stacked prediction probabilities at $s=0$ for a reference patient. PR stands for \PR} \label{fig:fig15} \end{figure} The argument \Rfunarg{from} determines from which state the transition probabilities are to be plotted. The default is from state 1, which is what we want, so the \Rfunarg{from} argument is omitted here. The default \Rfunarg{type} of the \Rfunction{plot} method for \Rclass{probtrans} objects is a "stacked" plot, for which the difference between two adjacent lines represents the probability of being in a state. The argument \Rfunarg{ord} specifies the order of the states of which the probabilities are stacked. The present order, 2, 3, 4, 1, allows states 2 and 3 to be combined visually (states with \PR) and states 3 and 4 (death states). Other plot types are "filled", which is like "stacked", but uses colors to fill the space between adjacent lines, "single", which simply plots the transition probabilities as different lines in a single plot, and "separate", which uses separate plots for the transition probabilities. To obtain the predictions $\hat{P}_{1h}(s,t)$ for $s=0.5$, which are plotted in Figure 16 of \tut, we simply change the value of \Rfunarg{predt} in the call to \probtrans. <>= pt <- probtrans(msf2, predt=0.5) summary(pt, from=1) @ The result now contains only time points $t \geq 0.5$. Figure~\ref{fig:fig16} contains a plot of \Robject{pt1}. <>= plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) @ \begin{figure} \centering <>= plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) @ \caption{Stacked prediction probabilities at $s=0.5$ for a reference patient} \label{fig:fig16} \end{figure} Figure 17 of \tut distinguishes between three patients, one being the good old (or rather young) reference patient, for which we have already calculated the probabilities, one for a patient in the age category 20-40, and one for a patient older than 40. To obtain prediction probabilities for the latter two patients as well, we have to repeat part of the calculations, changing only the value of age in the \Robject{newdata} data frame. <>= msf2$trans <- tmat msf.20 <- msf2 # copy msfit result for reference (young) patient newd <- newd[,1:5] # use the basic covariates of the reference patient newd2 <- newd newd2$age <- 1 newd2$age <- factor(newd2$age,levels=0:2,labels=levels(ebmt3$age)) attr(newd2, "trans") <- tmat class(newd2) <- c("msdata","data.frame") newd2 <- expand.covs(newd2,covs[1:4],longnames=FALSE) newd2$strata=c(1,2,2) newd2$pr <- c(0,0,1) msf.2040 <- msfit(c2, newdata=newd2, trans=tmat) newd3 <- newd newd3$age <- 2 newd3$age <- factor(newd3$age,levels=0:2,labels=levels(ebmt3$age)) attr(newd3, "trans") <- tmat class(newd3) <- c("msdata","data.frame") newd3 <- expand.covs(newd3,covs[1:4],longnames=FALSE) newd3$strata=c(1,2,2) newd3$pr <- c(0,0,1) msf.40 <- msfit(c2, newdata=newd3, trans=tmat) pt.20 <- probtrans(msf.20,predt=0) # original young (<= 20) patient pt.201 <- pt.20[[1]]; pt.202 <- pt.20[[2]] pt.2040 <- probtrans(msf.2040,predt=0) # patient 20-40 pt.20401 <- pt.2040[[1]]; pt.20402 <- pt.2040[[2]] pt.40 <- probtrans(msf.40,predt=0) # patient > 40 pt.401 <- pt.40[[1]]; pt.402 <- pt.40[[2]] @ The 5-years transition probabilities $P_{13}(0,5)$ and $P_{23}(0,5)$ are estimated as 0.30275 and 0.26210 respectively. <>= pt.201[488:489,] # 5 years falls between 488th and 489th time point pt.202[488:489,] # 5-years probabilities @ Figure~\ref{fig:Fig17} shows relapse-free survival probabilities without distinction between before or after \PR, so we can use the first transition matrix \Robject{tmat}. The probabilities we want are $1-\hat{P}_{13}(0,t)$ and $1-\hat{P}_{23}(0,t)$, the first one conditioning on being in state 1 (transplantation, i.e.~no PR), the second in being in state 2 (PR). <>= plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.425,1),type="s",lwd=2,col="red",xlab="Years since transplant",ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend(6,1,c("no PR","PR"),lwd=2,lty=1:2,xjust=1,bty="n") legend("topright",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") @ \begin{figure} \centering <>= plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.4,1),type="s",lwd=2,col="red",xlab="Years since transplant",ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend(6,1,c("no PR","PR"),lwd=2,lty=1:2,xjust=1,bty="n") legend("topright",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") @ \caption{Predicted relapse-free survival probabilities for three patients in different age categories, given platelet recovery (dashed) and given no \PR (solid). The time of prediction was at transplant (note: in \tut this was at 1 month after transplant).} \label{fig:Fig17} \end{figure} It is also possible to do prediction with a fixed horizon. This should not be understood as attempting to predict the past. It means that in our prediction probabilities $P_{gh}(s,t)$, we fix $t$, a time horizon, and we want to study how $P_{gh}(s,t)$ changes as more and more information on a patient becomes available. From a computational point of view this just means that the order of the matrix multiplication in~\eqref{eq:AJ} is reversed. We will plot $1-\hat{P}_{13}(s,5)$ and $1-\hat{P}_{23}(s,5)$, the 5-years relapse-free survival probabilities given that the patient is in state 1 (no PR) and in state 2 (PR), respectively, for the same three patients as before. <>= pt.20 <- probtrans(msf.20,direction="fixedhorizon",predt=5) pt.201 <- pt.20[[1]]; pt.202 <- pt.20[[2]] head(pt.201); head(pt.202) @ Here item \Ritem{[[1]]} gives estimates $\hat{P}_{1h}(s,5)$ and \Ritem{[[2]]} gives estimates $\hat{P}_{2h}(s,5)$. For item \Ritem{[[g]]}, the column \Rcolumn{time} gives the different values of $s$ and \Rcolumn{pstate1} etc give the estimated probabilities of being in state 1 etc at 5 years, conditional on being in state $g$ at time $s$. In \Robject{pt.201} we recognize at \Rcolumn{time} ($s$)=0) 0.30275 as $\hat{P}_{1h}(0,5)$ and in \Robject{pt.202} we see 0.26210 as $\hat{P}_{2h}(0,5)$. The backward transition probabilities for the other two patients are calculated similarly. <>= pt.2040 <- probtrans(msf.2040,direction="fixedhorizon",predt=5) # patient 20-40 pt.20401 <- pt.2040[[1]]; pt.20402 <- pt.2040[[2]] pt.40 <- probtrans(msf.40,direction="fixedhorizon",predt=5) # patient > 40 pt.401 <- pt.40[[1]]; pt.402 <- pt.40[[2]] @ As mentioned before, in $s=0$, these probabilities are the same as the five-years probabilities of Figure~\ref{fig:Fig17}, and as $s$ approaches 5, the probabilities approach 1, since both $\hat{P}_{13}(s,5)$ and $\hat{P}_{23}(s,5)$ approach 0. Figure~\ref{fig:new} shows 5-years relapse-free survival probabilities, both with and without \PR, with the prediction time $s$ varying. <>= plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.425,1),type="s", lwd=2,col="red",xlab="Years since transplant", ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend("topleft",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") legend(1,1,c("no PR","PR"),lwd=2,lty=1:2,bty="n") title(main="Backward prediction") @ \begin{figure} \centering <>= plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.425,1),type="s", lwd=2,col="red",xlab="Prediction time", ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend("topleft",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") legend(1,1,c("no PR","PR"),lwd=2,lty=1:2,bty="n") title(main="Backward prediction") @ \caption{Predicted probabilities of 5-years relapse-free survival, conditional on being alive without relapse with (PR) and without \PR (no PR). Patients in three age categories.} \label{fig:new} \end{figure} \section{Competing risks}\label{sec:comprisk} The data used in Section 3 of \tut is available in \mstate under the name \Robject{aidssi}. See the help file for more information. <>= data(aidssi) si <- aidssi # Just a shorter name head(si) table(si$status) @ To prepare data in long format, it is possible to use \msprep. In this case there is not a huge advantage in using \msprep; the long data may just as easily be prepared directly. Nevertheless we will illustrate the use of \msprep to obtain data in long format. The function \Rfunction{trans.comprisk} prepares a transition matrix for \crs models. The first argument is the number of causes of failure; in the \Rfunarg{names} argument a character vector of length three (the total number of states in the \msm including the failure-free state) may be given. The transition matrix has three states with stte 1 being the failure-free state and the subsequent sttes representing the different causes of failure. <>= tmat <- trans.comprisk(2,names=c("event-free","AIDS","SI")) tmat @ Now follows the actual call to \msprep. <>= si$stat1 <- as.numeric(si$status==1) si$stat2 <- as.numeric(si$status==2) silong <- msprep(time=c(NA,"time","time"),status=c(NA,"stat1","stat2"),data=si, keep="ccr5",trans=tmat) @ We can use \events to check whether the number of events from original data (\Robject{si}) corresponds with long data. <>= events(silong) @ For the regression analyses to be performed later we add transition-specific covariates. In the context of \crs one could call them cause-specific covariates. Since the factor levels of CCR5 are quite short we keep the default setting (\TRUE) of \Rfunarg{longnames}. <>= silong <- expand.covs(silong,"ccr5") silong[1:8,] # shows the first four patients in long format, as in tutorial @ To illustrate the fact that naive Kaplan-Meiers are biased estimators of the probabilities of failing from the different causes of failure, we just make use of the functions in the \Rpackage{survival} package. I am using \coxph below, probably this could be done quicker. <>= c1 <- coxph(Surv(time,status) ~ 1, data=silong, subset = (trans==1), method="breslow") c2 <- coxph(Surv(time,status) ~ 1, data=silong, subset = (trans==2), method="breslow") h1 <- survfit(c1) h1 <- data.frame(time=h1$time,surv=h1$surv) h2 <- survfit(c2) h2 <- data.frame(time=h2$time,surv=h2$surv) @ These naive Kaplan-Meier curves are shown in Figure~\ref{fig:Fig2} (Figure 2 in \tut). The Kaplan-Meier estimate of AIDS is plotted as a survival curve, while that of SI appearance is shown as a distribution function. There is some extra code to chop the time at 13 years. This was just done to make the picture prettier. <>= idx1 <- (h1$time<13) # this restricts the plot to the first 13 years plot(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2) text(8,0.71,adj=0,"AIDS") text(8,0.32,adj=0,"SI") @ \begin{figure} \centering <>= idx1 <- (h1$time<13) # this restricts the plot to the first 13 years plot(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2) text(8,0.71,adj=0,"AIDS") text(8,0.32,adj=0,"SI") @ \caption{Estimated survival curve for AIDS and probability of SI appearance, based on the naive Kaplan-Meier estimator.} \label{fig:Fig2} \end{figure} Cumulative incidence functions can be computed using the function \Cuminc. It takes as main arguments \Rfunarg{time} and \Rfunarg{status}, which can be provided as vectors <>= ci <- Cuminc(time=si$time, status=si$status) @ or, alternatively, as column names representing time and status, along with a \Rfunarg{data} argument containing these column names. <>= ci <- Cuminc(time="time", status="status", data=aidssi) @ The result is a data frame containing the failure-free probabilities (\Rcolumn{Surv}) and the \ci functions with their standard errors. Other arguments allow to specify the codes for the causes of failure and a group identifier. <>= head(ci); tail(ci) @ The \ci functions just obtained can be used to reproduce Figure 3 of \tut. The plots are shown in Figure~\ref{fig:Fig3}. <>= idx0 <- (ci$time<13) plot(c(0,ci$time[idx0],13),c(1,1-ci$CI.1[idx0],min(1-ci$CI.1[idx0])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx1 <- (h1$time<13) lines(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s",lwd=2,col=8) lines(c(0,ci$time[idx0],13),c(0,ci$CI.2[idx0],max(ci$CI.2[idx0])),type="s",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2,col=8) text(8,0.77,adj=0,"AIDS") text(8,0.275,adj=0,"SI") @ \begin{figure} \centering <>= idx0 <- (ci$time<13) plot(c(0,ci$time[idx0],13),c(1,1-ci$CI.1[idx0],min(1-ci$CI.1[idx0])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx1 <- (h1$time<13) lines(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s",lwd=2,col=8) lines(c(0,ci$time[idx0],13),c(0,ci$CI.2[idx0],max(ci$CI.2[idx0])),type="s",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2,col=8) text(8,0.77,adj=0,"AIDS") text(8,0.275,adj=0,"SI") @ \caption{Estimates of probabilities of AIDS and SI appearance, based on the naive Kaplan-Meier (grey) and on cumulative incidence functions (black).} \label{fig:Fig3} \end{figure} The stacked plots of Figure 4 of \tut are shown in Figure~\ref{fig:Fig4}. <>= idx0 <- (ci$time<13) plot(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]+ci$CI.2[idx0]),type="s",lwd=2) text(13,0.5*max(ci$CI.1[idx0]),adj=1,"AIDS") text(13,max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"SI") text(13,0.5+0.5*max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"Event-free") @ \begin{figure} \centering <>= idx0 <- (ci$time<13) plot(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]+ci$CI.2[idx0]),type="s",lwd=2) text(13,0.5*max(ci$CI.1[idx0]),adj=1,"AIDS") text(13,max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"SI") text(13,0.5+0.5*max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"Event-free") @ \caption{Cumulative incidence curves of AIDS and SI appearance. The cumulative incidence functions are stacked; the distances between two curves represent the probabilities of the different events.} \label{fig:Fig4} \end{figure} \subsection*{Regression} The section on regression in \tut already shows some \R code and occasional output. Because of the fact that I used \msprep to prepare the long data, occasionally there will be very small differences with the code in \tut. We start with regression on cause-specific hazards. Using the original dataset, we can apply ordinary Cox regression for cause 1 (AIDS), taking only the AIDS cases as events. This is done by specifying \Rcode{status==1} below (observations with status=0 (true censorings) and status=2 (SI) are treated as censorings). Similarly for cause 2 (SI appearance), where \Rcode{status==2} indicates that only failures due to SI appearance are to be treated as events. <>= coxph(Surv(time, status == 1) ~ ccr5, data = si) # AIDS coxph(Surv(time, status == 2) ~ ccr5, data = si) # SI appearance @ The same analysis can be performed using the long format dataset \Robject{silong} in several ways. For instance, as separate Cox regressions. <>= coxph(Surv(time,status) ~ ccr5, data=silong, subset = (trans==1), method="breslow") coxph(Surv(time,status) ~ ccr5, data=silong, subset = (trans==2), method="breslow") @ And in a single analysis, using the expanded covariates. <>= coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong) @ The same model, but now using a covariate by cause interaction. <>= coxph(Surv(time, status) ~ ccr5 * factor(trans) + strata(trans), data = silong) @ In the model below we assume that the effect of CCR5 on the two cause-specific hazards is equal. The significant effect of the interaction in the model we just saw indicates that this is not a good idea. But, again, this is just for educational purposes. <>= coxph(Surv(time, status) ~ ccr5 + strata(trans), data = silong) @ There are two alternative ways yielding the same result. First, we can actually leave out the \Rfunarg{strata} term. <>= coxph(Surv(time, status) ~ ccr5, data = silong) @ Second, since the \Rfunarg{strata} term is not needed we can use \Robject{si}. <>= coxph(Surv(time, status != 0) ~ ccr5, data = si) @ Note: the actual estimated baseline hazards may be different, whether or not the strata term is used. Assuming that baseline hazards for AIDS and SI are proportional (this is generally not a realistic assumption by the way, but just for illustration purposes). <>= coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + factor(trans), data = silong) @ Or, again using covariate by cause (transition) interaction. <>= coxph(Surv(time, status) ~ ccr5 * factor(trans), data = silong) @ Note that, even though patients are replicated in the long format, it is not necessary to use robust standard errors. Any of the previous analyses with the \Robject{silong} dataset gives identical results when a \Rcode{cluster(id)} term is added. For instance, <>= coxph(Surv(time, status) ~ ccr5 * factor(trans) + cluster(id), data = silong) @ gives the same result as before. So far in the regression context we have just used the \coxph function of the \survival package. In order to obtain predicted cumulative incidences, \msprep is useful. First let us store our analysis with separate covariate effects for the two causes. <>= c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong, method="breslow") @ If we want the predicted cumulative incidences for an individual with CCR5 wild-type (WW), we make a \Rfunarg{newdata} data frame containing the (transition-specific) covariate values for each of the transitions for the individual of interest. Then we apply \msfit as illustrated earlier in the context of \msms. <>= WW <- data.frame(ccr5WM.1=c(0,0),ccr5WM.2=c(0,0),trans=c(1,2),strata=c(1,2)) msf.WW <- msfit(c1, WW, trans=tmat) @ And finally, to obtain the \cis we apply \probtrans. Item \Ritem{[[1]]} is selected because the prediction starts from state 1 (event-free) at time $s=0$. <>= pt.WW <- probtrans(msf.WW, 0)[[1]] @ Similarly for an individual with the CCR5 mutant (WM) genotype. <>= WM <- data.frame(ccr5WM.1=c(1,0),ccr5WM.2=c(0,1),trans=c(1,2),strata=c(1,2)) msf.WM <- msfit(c1, WM, trans=tmat) pt.WM <- probtrans(msf.WM, 0)[[1]] @ We now plot these \ci curves for AIDS (\Rcolumn{pstate2}) and SI appearance (\Rcolumn{pstate3}), for wild-type (WW) and mutant (WM) in Figure~\ref{fig:Fig5} (Figure 5 in \tut). <>= idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) ## AIDS plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate2[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.2,0.345,"WW",adj=0,cex=0.75) text(9.2,0.125,"WM",adj=0,cex=0.75) ## SI appearance plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.5,0.31,"WW",adj=0,cex=0.75) text(7.5,0.245,"WM",adj=0,cex=0.75) @ \setkeys{Gin}{width=0.45\textwidth} \begin{figure} \centering <>= idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) ## AIDS plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate2[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.2,0.345,"WW",adj=0,cex=0.75) text(9.2,0.125,"WM",adj=0,cex=0.75) @ <>= ## SI appearance plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.5,0.31,"WW",adj=0,cex=0.75) text(7.5,0.245,"WM",adj=0,cex=0.75) @ \caption{Cumulative incidence functions for AIDS (left) and SI appearance (right), for wild-type (\texttt{WW}) and mutant (\texttt{WM}) CCR5 genotype, based on a proportional hazards model on the cause-specific hazards.} \label{fig:Fig5} \end{figure} \setkeys{Gin}{width=0.65\textwidth} The illustration of the phenomenon that the same cause-specific hazard ratio may have different effects on the cumulative incidences (Figure 7 in \tut) may be performed as well, by replacing the appropriate parts of the cumulative hazard of AIDS (\Rcolumn{trans}=1), and calling \probtrans. We are interested in SI appearance and adjust the hazards of the competing risk (AIDS) while keeping the remainder the same (Figure 7 in \tut). The result is shown in Figure~\ref{fig:Fig7}. We multiply the baseline hazard of AIDS with factors (\Robject{ff} = 0, 0.5, 1, 1.5, 2, 4). <>= ffs <- c(0,0.5,1,1.5,2,4) newmsf.WW <- msf.WW newmsf.WM <- msf.WM par(mfrow=c(2,3)) for (ff in ffs) { # WW newmsf.WW$Haz$Haz[newmsf.WW$Haz$trans==1] <- ff*msf.WW$Haz$Haz[msf.WW$Haz$trans==1] pt.WW <- probtrans(newmsf.WW, 0, variance=FALSE)[[1]] # WM newmsf.WM$Haz$Haz[newmsf.WM$Haz$trans==1] <- ff*msf.WM$Haz$Haz[msf.WM$Haz$trans==1] pt.WM <- probtrans(newmsf.WM, 0, variance=FALSE)[[1]] # Plot idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.52),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main=paste("Factor =",ff)) } par(mfrow=c(1,1)) @ \begin{figure} \centering <>= ### Multiply baseline hazard of AIDS with factors (ff) ### of ff = 0, 0.5, 1, 1.5, 2, 4 ffs <- c(0,0.5,1,1.5,2,4) newmsf.WW <- msf.WW newmsf.WM <- msf.WM par(mfrow=c(2,3)) for (ff in ffs) { # WW newmsf.WW$Haz$Haz[newmsf.WW$Haz$trans==1] <- ff*msf.WW$Haz$Haz[msf.WW$Haz$trans==1] pt.WW <- probtrans(newmsf.WW, 0, variance=FALSE)[[1]] # WM newmsf.WM$Haz$Haz[newmsf.WM$Haz$trans==1] <- ff*msf.WM$Haz$Haz[msf.WM$Haz$trans==1] pt.WM <- probtrans(newmsf.WM, 0, variance=FALSE)[[1]] # Plot idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.52),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main=paste("Factor =",ff)) } par(mfrow=c(1,1)) @ \caption{Cumulative incidence functions for Si appearance, for CCR5 wild-type \texttt{WW} (black) and mutant \texttt{WM} (grey). The baseline hazard of AIDS was multiplied with different factors, while keeping everything else the same.} \label{fig:Fig7} \end{figure} Fine and Gray regression on cumulative incidence functions is not implemented in \mstate, but in the \R package \Rpackage{cmprsk}. Since our main purpose here is illustration of \mstate, we just give the code and the output. <>= library(cmprsk) sic <- si[!is.na(si$ccr5),] ftime <- sic$time fstatus <- sic$status cov <- as.numeric(sic$ccr5)-1 # for failures of type 1 (AIDS) z1 <- crr(ftime,fstatus,cov) z1 # for failures of type 2 (SI) z2 <- crr(ftime,fstatus,cov,failcode=2) z2 @ The result (Figure 8 in \tut) is shown in Figure~\ref{fig:Fig8}. <>= z1.pr <- predict(z1,matrix(c(0,1),2,1)) # this will contain predicted cum inc curves, both for WW (2nd column) and WM (3rd) z2.pr <- predict(z2,matrix(c(0,1),2,1)) # Standard plots, not shown par(mfrow=c(1,2)) plot(z1.pr,lty=1,lwd=2,color=c(8,1)) plot(z2.pr,lty=1,lwd=2,color=c(8,1)) par(mfrow=c(1,1)) ## AIDS n1 <- nrow(z1.pr) # remove last jump plot(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,2]),type="s",ylim=c(0,0.5), xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,3]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.14,"WM",adj=0,cex=0.75) ## SI appearance n2 <- nrow(z2.pr) # again remove last jump plot(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,2]),type="s",ylim=c(0,0.5), xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,3]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.28,"WW",adj=0,cex=0.75) text(7.9,0.31,"WM",adj=0,cex=0.75) @ \setkeys{Gin}{width=0.45\textwidth} \begin{figure} \centering <>= z1.pr <- predict(z1,matrix(c(0,1),2,1)) # this will contain predicted cum inc curves, both for WW (2nd column) and WM (3rd) z2.pr <- predict(z2,matrix(c(0,1),2,1)) ## AIDS n1 <- nrow(z1.pr) # remove last jump plot(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,2]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,3]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.14,"WM",adj=0,cex=0.75) @ <>= ## SI appearance n2 <- nrow(z2.pr) # again remove last jump plot(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,2]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,3]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.28,"WW",adj=0,cex=0.75) text(7.9,0.31,"WM",adj=0,cex=0.75) @ \caption{Cumulative incidence functions for AIDS (left) and SI appearance (right), for CCR5 wild-type \texttt{WW} and mutant \texttt{WM}, based on the Fine and Gray model.} \label{fig:Fig8} \end{figure} To judge the "fit" of the cause-specific and Fine \& Gray regression models we estimate cumulative incidence curves nonparametrically, i.e., for two subgroups of WW and WM CCR5-genotypes. Here we can use the \Rfunarg{group} argument of \Cuminc. <>= ci <- Cuminc(si$time,si$status,group=si$ccr5) ci.WW <- ci[ci$group=="WW",] ci.WM <- ci[ci$group=="WM",] @ We show these nonparametric estimates in Figure~\ref{fig:Fig9} (Figure 9 in \tut). <>= idx1 <- (ci.WW$time<13) idx2 <- (ci.WM$time<13) # AIDS plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.1[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.1[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.11,"WM",adj=0,cex=0.75) # SI appearance plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.2[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.32,"WW",adj=0,cex=0.75) text(7.9,0.245,"WM",adj=0,cex=0.75) @ \begin{figure} \centering <>= idx1 <- (ci.WW$time<13) idx2 <- (ci.WM$time<13) # AIDS plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.1[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.1[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.11,"WM",adj=0,cex=0.75) @ <>= # SI appearance plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.2[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.32,"WW",adj=0,cex=0.75) text(7.9,0.245,"WM",adj=0,cex=0.75) @ \caption{Non-parametric cumulative incidence functions for AIDS (left) and SI appearance (right), for CCR5 wild-type \texttt{WW} and mutant \texttt{WM}.} \label{fig:Fig9} \end{figure} \setkeys{Gin}{width=0.65\textwidth} %\section{Discussion}\label{sec:discussion} %\setcounter{equation}{0} %\markright{} \bibliographystyle{agsm} \bibliography{Tutorial} \end{document} mstate/data/0000755000176200001440000000000014627637077012503 5ustar liggesusersmstate/data/ebmt3.RData0000644000176200001440000005546114627637077014445 0ustar liggesusers‹ íÝ œfÙ]×ÿ:ûùCDDDÄ#D !$$dO%BIÙ÷ÔÌôlÉìݳf&S³uOÏÚkUï]Ý=AĈˆˆˆ-"""FDDEm1*""2ÿOåþ¾e?'w{ª{2“@¿^¿9óâýĈKÄÅÄ%Ä¥ÄVâ2ârâ âJâ*âC扫‰kˆk‰ëˆë‰ˆ‰mÄvâ&âfââVâ6âvâ#ÄÄÄG‰»ˆeânââ^â>â~b±“x€ØEF|'ñˆï"þ"ñÝÄ_">Nüeâ{ˆ¿B|/ñW‰ï#þñýÄ_'~€øÄ“ø!⇉!þñ£Äß&·ø1âï?Nü=â'ˆ¿Oü$ñˆŸ"þ!ñÓÄ?"~†øÇÄ'ˆBü,ñO‰Ÿ#þñóÄ?'~øÄ¿$þñ‹Ä¿&þ ño‰³Ä¿#~‰ø÷Ä/ÿøâ?¿Jü'â׈ÿLü:ñ_ˆß þ+ñIâ¿ÿøÄoÿ“ø-â¿MüoâwˆÿCü.ñ‰ß#žhé;þãðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðï¶øwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøwøw‹þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ݇‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡·Làßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáßáß=Ñö=þ=ÿ³Þcðø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷ø÷O´]þ€ÿ€ÿÀ‡€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿðÅíyEÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀX?·ÁÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀx¢=Ý®½Pñù"â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?>Ñ^êKøOøOøOøO|™ðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸ¶®_§%ðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸðŸžh/ógügügügügügþñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸŸhoñüüüüüüþXð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_ð_žhoï7øoðßà¿Áƒÿÿ þ&hðßà¿Áƒÿfý¹ü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿ÁƒÿO=o²^wŽ.®?Á¿ÅW-·éKìó -}¹¥¯±ôÕôûδéžµé·Vó/.Ï.çE–¾ÒÒ·Ûüw¾¹MßhÓþÝ6ý6ûü­–?Ú¦G¿vy[z‰M÷2ûüâ*ÿ¯³¿¿À>_»6›Ï“?0›¿÷Û÷°|¾Í¾?úðìtG-_+?gù8Û¦/µ¿³-gëR›~ƒ}‘Ö›g—§ïßµ8»œW[zË'g?¿nav¹´ü¾Ú–sÉâl>^WÍ÷ª…Ùõk?¾ÕRí‡7Xúí˳ë×þUyj~•ûV[ÿ–¯çTùÕö*ýûþcÇÛô^ÛÞåj}o²éUŸ¿0›j».³õŸú’6=ru›žü.Kíû“×ÏÎèl›î¾¨MOÿ’-ç{íóWÎæguw›>Ï>°zºÒØç´ôYmºïÇ-µüìÜRÛÞýÏhSí§o±í\}C›T½ûÅ6Uy¯Úö¬niÓ{l½/µ©\(]²åîÛoëµùwØ÷ª*y¹Cåó:›Ïò£vä†ç¶é‹múK¿ÃÒKmº×ÚòžeŸßvfv}ßlé{l:9–ól;—l¹'?:;ýÊÒìvÈ“ö›òñaÛžï°õ¿×ÒïXžýþÛ4Ÿ}þ€}~ØêÓÝ6ýͶޕ/kÓ½m†ÿr›²é?`Ó«}¹Öò¡ýy±ÖoŸUjÇTÞòùÞÅÙïUåAûïÙöùõ–ª>|£¥*-Gå§vWËÑr•ŸÛl¿ëøò–jùrÿf›ÿ†ÅÙåîþÅÙÏʇÚWµÊçÝK³Ó)Ÿï°å^×þý•'¾æ‡¿þ×ßñó‹Çm?¨Þéxµjõ÷€­ßËfÿ¾ÑÞ›ë#oÓØzvÛ~ýˆùU}yÇ™ÙíßcóŸü…6½f­MOÙçSojÓÇ}›ž¶ã;[íïÛtíÇ,ýÙùµ¾¿nßÿ¤-çKíó´éU¶ÞµG-?¿Ñ¦Øü'­<Ö^kù¶öèäaûþwÚô¸ÚÕgÛ÷ÖÞÛß«V^¶ÚöÞѦê§°öz¿åsû‚ÍÖòkûå!ÛÎm6ß~[Ïþ¯°íW›Öõûð¯Zþí8$?j÷_³<û½ÚµGï´¿ËáEÕ|;~rv:µŸ:Ž¿Í¾§åû+õ¯Ô¬Xù©!‡jOßgé‡l9jßtœzó¢åÛ¾ßm®]jÓ=mÁnÞÒ¦òwÿZ›~Ä>ßkå{ýÙ6½mm6½ÌÖ³ÕÒëmyªo±ïÕ®¨=ÛeËÛõÛmzòž6]³~ÉÚ‡,µãö6[îšÕ¿£VÞjÿNÙqÿ«‡­>œþÍ6=¢vå™múVË×Q+7õëö[¾÷™Ïe[ߊõKÞmÓ-Y~n3O×[½|¿ýýR[Žê¡Úã×[ªú¡ãÉâÂlªã¹ú‰ê‡=ú‰6Uû÷ÈZ›>`ï°¿?l^Õ¾j½GÌóéûÚTǵӯ°ô«,ýü6=eåÒÚƒ5kO–ÍÑ1ë_©¿xÈÚy>°6»½®Ÿý,ŸÏµTÇ_Õk}¯r”ÏTŸ_RM'?úûó«ù^R}>fۥ㶎ëÇ~ºMÕÓrT®Z¾Ž?Ú.¹}Aõw9¾ñúÙõ¼ šOÓï{xv}—¬µ©êƒÖéÙÙùµý*õo®°tÅêËÁ¶c´áFÓ×ç:?Õò••W]·.¶©Ú#×\¿<;ÿVû¬~£Ö¯ÏjŸUî»lû/µTíëb5½öoÝŸQ}Òv½¸šîùÕç“?a©WN^Ò¦Çì¸|ô·g?¯ÚþºýL›ÞlíÃ^k‡®µå®Úyùеc·šÛÝ?Ø]ª'õv©¾©]ý2K¯YjÓ÷·³Q4¿ö—–[_WPúMÕßU.²Tå¥ý ò×ßUOUþçÛ˳óé{­OëÑùj]_R}Öz^^ýý"û¾Þï*¯º^«Õòµ\mOÝOxQOZ·#JÕÒùꃖ§z¡zV·sªÊßugf·G޶Ÿ™Ý]WÕòµ]çzI•Ê™ÖóU–ªüëíÒòÔ¾h¹å±<ûYó½Ëò©~q]Ÿµœ·Wß«ü^\}¯õ«~½Å–«ë «_Ц'­þê¸tª=aXÛþzÄÎ'—Ölz›Oõè[®êÉNË϶Þ+ÎÚvÚôj×vÙòwÙçv>û€åçËÇͶÜ[¬üt?I÷w¶[ªóž+,Ÿº.Ÿý]õý 6ÚcyU; WÊ祶û­¯væ]gÙ¸®£û6Ú‹ó5K_X}¯~Õ ª¿«½W9o\/¶ô"KëóåGîÕÎk=j‡ÔßÔñA˯¯'×ýmõ'^X}¯ûvšþÕúêó}õ/uJÇó”jýõñ\Ó½ªúþ¨9?nדï³ú{Ô®KÞbùßc׉n°zµ,kmzÀ\®X»x‹}¿Ã–·ÇŽ?êíyÙìö©ü´´=jO´ýš^Ûó¾ÅÙí­ï/«^j9/®¦û°¥:ž¨ži?ë{åOýeÕ³úú†®kÖ÷Ÿu}J~ÔÏÛc޵_t_è"›nïfó­ó|Õÿ{¶´é•˳ßkýG­ýÝgçërµ}mvºEKå]÷™TŽ¥õyÑ»-­¯_í´ëC»c›j=fíû£Öž]lù¨ûZžÚ%µ?:_Óýú~‡ò÷¡¥6Õu]'Vùh?m\ß¶ÏÚïÚÏ:®j?Þ£ë³vä6koOYý–϶_×ö¶©ŽË:=fûõÿZyéx{‘­W÷ .·ùwèú‰úv=v—•k}^µh©ÜÔ×áêë~u?¾¯¿¯rªÛmµ«7|bv;Ô\³çt¾tÒÚ­ž~¨ÍðâõV?.]jSÝ'PÿRŽŽXÿ¶¾³Oý›_íÃû¬ãáeöy‡•ãݶ^µSj7Tr¬v¥¾O¢v\õq«¥§ì>†úmkV?t_à õWÖ~¶MY¿ê åGtXýž믫³ËúwYy®Zû«óÌ{l:õ_î°þèëéz™êÏ~K÷Y=Õ}NÕ—‡­ÞÞcýš»-ß;Ô?±ýp¿­oÇ[¯úK6ŸúŸ*·Ûδé§]ײt£?µ<;ÝåKVºÏa©Î ÛõùCv¾#ךÕÊcU÷íÌÕí¶Ý+æSýÒ·Ú÷êçèþÞ^»îù˜ù½ÏÒ‡í¸©ó:µ_;”Zùé|à^+¿{ìó²µ?˶_ï´ý¹ßÚw•“Ú-Gê~êa»ÏxĶk¯åëˆ-¿ý]ýæ½vWí¡œ«üUO¶Y>6®ë~®•ãÑf—SŸWkyGlý{,ÿ:O^µúyÈêËkÿ?ºÔ¦Ú?jê~ÜÖç;ò­ý§~»ŽCš^õCù}ûâìzt<×õ–ƒ¶¾mºƒVŽt\°ú£v䛪´n_墾Ϣóüº_[狀®ûÏu?[ûµî—=»š¿n÷_XMÿ‚êïZÞ{«ïuݶ~®ªîiÿª©üt}ë-gÚTå§ó}Öyé[ÏÌn§ò«õè{ÝO}^õ½|éúž¶SùÝxÞmyvùj¿t^¦òTûüÕ–Þj^Õ>iùõy—úsú\ßß|È|·õ©^¯è90ëço·vFç¡:>«¼ê~Ÿò»h©öóªÏ:®¯_iºº]×{ígM¯ãžê¶_ý•çÕkmz›õ·vÛ÷û¬ÝÜÚaõ—êë=jGU^»›ÙíÝx~qy6ÿJµjg*åWõç±-mz¯]¿Xþ…Ùí¼ÁŽçºþ!/ÊǽV_t|W¹i½‡-ÿj?þêì÷õyŒÖ{ÚŽÛjÕž·|h¿œ´åª ëz>á ÝÿÖó÷Û÷—œ™ÿ„­Gíñ;Ž®X?Q×»ôœšîÓÞv¶Mo²ï?lë×õk—ÚôKìû¾óäú¹ä£Öï9jÇý£æFçGGí8zÜêÓq?Ûç£öœ£žGQýV=­¯;×׉õyÙò¯öCÏßm×½´ÿ|v¹ú¾nOZ¾Ö쮩Þëùª:?³~ÕŠ®;šÕŸ=VŽ:î¿ËÖ«~Õ;O{Ô¦Øþ®ë?:_¨¯ÿ+?{Ìé>-Ï®£íÖõ3Ûþ+l¹÷Z}¸ß–·®niS=ÿ®ç>bí…Úk'«¿ÐýÅ£VïÕŽ²ç»v™ïKmºG­ÿpÜúë?svýuýÐ~×ý8=_ªç²í{õcõ<ƒê_ý<Õ^kîµô>ËÏÚÏ´©ú±»l=õum÷ýöwWÕP9½¶šþˆm¯~7P?ßqÜê­ú)ú}À~ËÏ>k‡êçE´¿T~õuúV?¯P·ÛõõïúyU•kݯÔ~¯ŸÐßµWì´ÏwYz‡µ7µ+^|}¿ÓöÓN;ž½wy6ÿê_«ÿ¢ý÷¶ÅÙí¨ŸªŸ3ÒñPÛ¯üêø¥vjÕ–»òºÙíìkÿt]ôÒ¥6U¿Oë‘kÝ?T}_¬þ®þ†ÒºþÔ×ÙU?ôûµÃ:^×íï;{æ×uTíWÕKí=GªòÝ8¯²Tå¨üí·ë-j_Ô>«þÃìú6ž£¶TÇQ­çÀÌæû~[þ›«ùëûúò¡ü××Ã>¼Ö¦ºûªj~G7®‡Xªëäò⓳۫rÐýS­÷7ô»Õ•Ë.ó±Ñ¯X¬¶ÛÚ‡ßeYZ÷_]}¾Ó¶Så±×úw{¬®ß;¨>×ýŽEKk÷õñj±ú{}·ïüN×…ÔÐö^´<»|Û¿¯ü¤}ÞxîØúï‡m?¬Z;¼fÛ¥ç‹õ{«=VŽzîRý„º¿t¢zžµþÝZ}ßTùÖyþ‹«ù®XšÝžºÞj©ŸV—·ŽÊŸžÿ«û¿š^ùªÖå_?g¸Ñ®-Î~_ç÷˜õ7tüQ»|hK›®ÚùŸîcê|ô€]OP»«~ùnÛ/zþí}¶Üe;>È…ÊeÕîÞþ­6Õñä–ª<ëç[êûu½ÕÖýýÕ|õþPZ?‡¯åªÿ -Oå¯úV_7Pªö¿î—èúÙEÕò6ŽÕöÉŸögý»bý¶Û­¿­zzõî³vîž³mz½M·Ã–wïZ›ê8 ò×þ<`û]õòú¥6U?á˜]78l¿;ÐùùiÛ¿êÏ^kÓï±öâ~[ïE˳ÛiùÛhw´>ݧúðb›.Úç-–j?ë¼QÛ¡çDÕîí·~µîÿo=;»}õsìÙñZ÷Qtý]ås×òì|õszþ¦>Ööªž)Ý8Ÿ°ùvüj÷|ú¬ãøë÷µçŽÔ~é>¡®¬Úqèhµù?}ûì÷7Z>NÚïÛ®ÜbŸvççÖ¥6Ýuål>öX?ç1«Y{ÿ -Oí£ú±ZïݶžeËßGí|^¿ÓT?«~FýÏúyµÓª/õs«zîuã9—Å6Õý ÝvŸd¿×ëç~œ¿¾^§TÏ›©R}U=¼Ñœ¶ý©vaã9Ku6S~}ëZÆBǼCÛÑW÷†¦gßÕ«…Žï†êvýýÐwõ¿©uásýߨþ§>ÔËíZÞ<ùš÷ßSµO§´Sæ¿Py¹íò§çÞù¦úî+§ó]ß”zŸªËûÔöa3Ëš·,ζï_×¾ž'_óXÊßù,·k[¦”[=Ý<†çõ>eŸÎ³Œ±žú¯k}Óô­cÊ>›w;ÆæéúûÐ6 ý«gõ´]óM;V·ú,tåoбýÔµî®õvÍ3”ÿ¾y§ìÓ)ëŸRc똒ÏyêìÔùæý7eßöm{=Ý…þ7O]Þìr§lóXýîÛíø:;?õÇ÷Ìé=žéùÕ¥6Õ{Rï±ß­¬µ©Æ×¹iK›êýznQï¡{ÀÞO±Ûž3>dÏoî±Ï×Ùzõ;϶\=g§÷üÖãëè9Ã5{ŽhÍòqž§Ós:Ús_Øsrzš¶[ÏÃëý6ûþV›¿_ç€-çýö÷w[þêñuv[»¡÷!i|ÝV÷[>ê÷i;õáŠÞiþØ÷‡ì÷DªçGí=ak6ýš=gÚ7¾ŽÚ±ƒö\¼žï;jßë½zïËš•ÃA+ß#V¿×¾°M5¾Žê«Æ×Y¶í›:¾Žž<ù£mªß÷®mÓz|7rÐ>±öL¿Òï0vZ=Ó{3Z»µÍ–«ç€õ<þæõô÷Xª÷K}y›[kSÛ¢ßwl3§l¯sÂÊAïCQ;©÷’³ßÁ_v¦M÷ÙsŸ_çí§Û>µ¯7Ûô»,ßz¿òCö¼èKm*_µ®?m|½gJ¿gë_g§mÏãV_ëñu6Þç92¾Žê‹¾×ø:z_ßø:Çíyð¾ñuîû®Ùùµü =¾ÎÕVNóޝsÖ6ý¥_Gíwßø:zÿ¿ê{=¾Î½Ö^k|;«ö~l|½opêø:@ãëè}[ú×uö½Æ×ÑsÇ}ãëè=sjWëñuô;>µ×é¹hÛ÷ëñu¶ÛúwXB¿?ªÇ×Ñ{ï³|ªþö¯£z¥ñu1?û,zoÅû|¡Ç×yÀ|ßoù~²Æ×9lÿl_磶¿U/êñuôþȾñun²òÓñc¯ÞGgûaŸ¹Ûnå±oÍÖg>¦Ž¯s·ÕÇÛí³Þ ¢÷÷\èñuô^ãÍŽ¯³ÓòûˆíÿSvüÔ{ðT¯[ªß3è÷—Ûök«__GïçÞcùÕø:G-_‡l=zŸÔAõsmy}ãëè} {užbõH¿7QÿWý oªŸ¡ó9¯³Ëæ×øh÷Ùvê}[—­\¬ß½bõà>ûþQÛßê?i|ý.QïGPIïÝÑ{VNØråHçIj§õû:½Wrí¿Ýv^¼ÙñuôŠz|½7´_GõNã뜶ý½s‹}¶|ï´ã¾~G¤ñî±òø2ÛNµKk¿gåaí™Î³õ{YçŽZLõhM¿{Òïê,ß²T¿7WÿNï¡¾Üæ×{¬Zý’OÕó=¶ý«U>ô{é›m{ô{O½÷ë€~'hË]Ñû,U;·jË»zqö³ŽOûíüf¯ù^µú­þö!ë§è=>ÚÞGlyûl~_ï³ý¦÷éßkùPû¶Ûê×£¶|]/Ñø:z_ÿU¶ž­¶ýõø:ú}¦Þ{Q¯£ß©ë÷×Û¬œuž¬÷5ëwmú½¯Þ‹|úò6½Ýò³ÃÊû˜-_Ç‹c¶ÝzŸ¸ú‘úšúE{íøp§ågŸ~Ojíñ‡m¹{Í«~ÿ¼ßö¯~‡¯ßûªýºÇæW{ó°ÞÇcÛ«ß7î°rÖûwu^¸f×êñuŽÛöê}zzO²Þó¡ö^ïá:jÓ©zÜŽêO¨žêz‚·u^{ÀÊãËVöwý®|ÅÊwã=Êj—m½úŸÞ»u‹¥êÔãë,[=×už›t<µüÏ;¾Îcæ÷j[¾ÞŸø1«÷ßió×ãëõ}öý¯µéIkïÔX³zªãÚak‡5ÞÃ~[Ïʲ-w©MÕÿ½ÎRõ·7ÞÓiýùSÖŸÐï„O>ئØqO¿{T{¦ó]–ÿ]Vw¨g??`Ë×ø:·X~–ì³Î“vëw¸V®zOÖõVïµu}HïA~Ø>븣ß}¯è:›ÕÛ½vé€õ/³åí·ú¾ßŽ›zæšïªß]¯£ú¿jëÓûYu[ï‰ÖxGì8®÷.èýÜzô¢ÍW¯³bóë÷Ä;-ßõø::?”wõ+vZª÷O_kËÛbÓíµv}¯õguýV×O°Tãëè8ªñu°ú§÷ŸïU?ÇöŸÎt}ñ1û»®7m·ö`ã}øöw½—Zãë,Ùü[Ï´©Ú ]Õù…®“~¦Æ×¹Þ¦×ø:ÚOõø::¯­Ç×Ñy©Æ§Ñø:‡­Ü¦Ž¯£÷ë}ÿz?Hßø:ú{=¾Ž®§×ãëìÖ{S­£þ»úK›_磶ç_ç>kŸöl±Ôêï›mùç;¾Î~›oÞñu4ÎäfÇ×y›M_¯£ö²o|k7tã„ío]'üæåÙüÝióÕãëèýn_gíçz|Ÿ^©åXú.Ë¿úºÞpÂÚ]WRKÇ%Í÷¨Õ‡û¬=»ßÊÿQ›_ýŒmÓú}y÷˜S½¯÷­Oõö~ÛwZ½ÔûMu>§ßñ«>=¬þ¯µ:o‘O½¿_ï©Ñ{ó7Þ£¸¥MunŽWÖ|ÌÖ£ë÷ZßÃ×ÏÎÿ€ÍÿT¯£ëeûÔŸÕtºþlËQ?_÷£4nƒúwX~vX>wª}³í¼y±MÕ®¿Ã–·Ýþ®û§Kö½Þû¬v^÷7ôYëÓ}E½Uû_ãÉè:ßšÕw]Ÿ:nÇçc¶\¯³Û¶ç~û^ãTh|÷®µi=¾Žîêzªös=¾ÎU¶½_ç¨í—=6ß!Ý?²zyÐæ[µöô#–?õt\×ã5~N=¾ŽÚ½¾ñuNX9]cùÐ}QµK:/Ò}]?Ö}¾ý¶<µÇÇO®uÿ^Ç‘km:½_þ„µç:ßÓý‹æQç?º¬û÷ÿõˆ•—®#×ãël³üézÌØø:êoè=ºº¿t—-Gãë¨?¥ñuëüÕêÙÚµ–Û‡tÁÊoÕî‹­ÚߨgO÷ÚþÓ}|=GñØR›êcãëè~Ußø:êç>dùyЦ[±z¢û<ºï²fÛ¯óñãæê©_GïãÙìø:-_ûíóùޝ³qŸÈòÕ7¾ŽÆ«Òø:zïÓ}gÛT÷áî±õk|½éÉ_Gï5«Ç×Ñû—ÆÆ×Q=y²Ç×¹Ï>ë¼xmçØø:zÑØø:­Þh|F½gKã뜴ùúÆ×Ñ}}=ô˜Õ_]/Òö]e˯Ç×Ñ8_Gﯼz¹MuÞ¤÷ =dóëø«ùëñuØ~Q¿]å¤õèý›:®è}‚G·´©Î#7Þ³o¿ÑRõ?5¾ŽîÛê=Ö{l?ëúÞNûûƒ6Ÿî¯²õé=—zîMýÅ»mzÿ¨Üu^uÄöŸÞ­ëxª/º^§çFÔÿÑø'>1;ÿ1]dzû[ºÏ~Ìúq‡ÍÁåö½®O®ÚñôèZ›êº­Žº?®öíÃKmªvÿ:û¼jŸÕo¼Æ–§qtž¢þ¼ÎkÕŸÖg=g¤ëu:Þè~ês¢vRÏ/=hå¬öpÍÚCõŸuÞ¦ãÿ®f¶TÿêñuôœàaÛ_zŸÙ!óqÀúKu?Î>?ªû¶¿êñuŽÚ~U?sêø:÷ÙòúÆ×Ñøêÿè}Ïr¦ûâº~¨éT®z/íi»N¦ãµž :Ù¾°t㸷fíž8`ßëzqßø:Ûöi|S?dåaßeÛq¯µz_¤¶Gσhªžë¹(Õ']/T½Ø«ëDÖ>ê<é>;Þlv|“¶õø:jÕÿÕ}¸=êgš«ýVîWØt‡uÞaù9¤û›VÎ{m½êëzüãëèý¶º\¯£÷{>Yãë¦óE=­÷°j|Ö?ë÷~Úø:+æã!ÛŸz.@ýIÕ×Gl=_gÅò¡ç•÷-ÌæKãë¶å=dùS»®ãÑ£gí³íç}V;Ö¬<ìûƒ¶=ïv¾ãë¨yüõ6¿]gÑó²Ûmþz|ýžCÏèy†Y=Ü«ëfæ¬w|{~¤_ç!kçô^[÷h|–oõôüóe–Õ³VN¶½_çˆíÇöýêÿ_¤í´vº_gÅÎ?U¯åWçk*yÐsSº^w¹}¾d±MõyýHý{¬¾¨]Õyµ¶ójû¬~¾Î/ÕÏÐý|ݧz‘}¯çÇÆ×Ñó)õø::ÿÕùÇU–¾ñuäC×tþ¨ëºo£û×êOëzö#¶þ»ìïõø:zž\Ççó¢çCßfë½t©M÷ØrõÞ÷Ûmyº¿°ÛÎWuK×7Þcl©¼>nõSýǽvÿZýÔcv½qÕRõ÷ï·íÒ~ºKÇ5û»ŽóºŽªçßU/Ûqåˆ-Gçó:o=iÛ¿öS–Úzt^­ó>¯ë¾‰žÓÓõT+ÏU¯-êÿi|›Ì±Æ×¹Û¶ÿv›^×qTï4ý^›_å¬çsêñuÔ^³TÏoé:c=¾ÎÚͶ}¶_NX9é98Ý?=dåX¯³jå·ªó\ó¡ãŠúûº®ñuîµvN^õ;WU.z?ù¶»Uô¼›µ»_gÍ~W¢ûâo¶íÕxºnùíÏÖ.é÷KoHý‰Û­ÝÜfûA¿O¸Ä¶Ký>]ÒuõçÔ?aû[÷1ï¶åÞmó]¨ñuöêz½õ‹4¾ÎI[î#¶þýVÞ:ÞmÇ©{Õ/°ét_Ïãé8¯ßAî·Ï§ìøpÊ®Ÿi¿Óï5Tm}‡­>ëþõš~÷¤û,ö÷µçØòt^eÇiµú}‰î‡é:×1«‡j_[=Ñu'=÷ºÏÎgæ_G÷CtÞP¯³Sççæ@ãëèx¥ö}l|ÓæK×ýäT¿×¹É¶³o|Õïtýé´ÝÇÒó$§í«ÞéºçCVŽz®DÏ»î³ý q/Õõs öHí‹®÷ö¯£ûcãëè¾b=¾Žž Ñóºo¨ñuÔOÓóžzÞ¡_GûOãë\kË×õÕz|û­Þݬå·Ç‹Þñu.·éôüÛû~ÍÚ©GìøqÊž?|о_çK5Nþþ µÿúÝ[=¾ŽÎ?õû =O ôfku½V÷õ{ó]¶ýªo:Ï®Ç×9¢ë޶݇l¿ô¯£çzï´åêyžz|=ÿñ>›Nãëèõüvßø:zÎ唞w?Û¦º¯~¹ÍwÒöÛn«ÿ±z¡çRu¿E×Íõ\‰~÷¯ûܺ_¢ëZúýî]–OïÎ;¾Îl;®·ål³rÐyænû^ÏÍ>jó빞ÝV??¢ã¸ÎŸ­ýT¿ìþµ6Õy¢î èüë„ú=–ê:®Ó´å~ÔŽ/?>›¹ÓùíIËç…_ç/õ;pÝÏQ?¤_çJ[®îË麉~·¡çu^X¯³Ýö›Î·ôüˆÎËu=´o|µS}ãëè>äÔñuöZýw|Sö|·îœüù6Õóe7Úüõø:'í:ø6û¬þ{ßø:z¾â|Ç×ѸÎ:ÓsÙêgè¹ØóL[®ªýÐõÌ[-ß÷ÚzvÛòûÆ×yÄ–û -§_çF+w]‡9`å¡ëÚ_vÜ[øãë¬ÿëz?͹ÿúÞaÓ÷÷zÞ©ŸÇÞSÿ½kÞ:OcùëËÇÐ{dºòÓ——®<Ï»}óäažyÆÖ=µ §ìû±m›g}ÿº–5µ^÷•Wß²º¦sÓ· cÓLyoÑ”åÍS¾cy˜RWÇÚŒ¡‡ó,·^ÖØóSÊ­^vß~œ2MßöLÙÖyÚ½¾íZÖ”méú~jÞ¦¶E}ùúÛX[7¶?¦î£)yšgj½kOÎùôÜI8'4½·ÏÞ>Ÿû7×óø.TËôç,ûÜiý9ÿ__篞¶/튡õOÙæ®< •K×zCG¸ž¿ùžé§F×:ë2¨óá;Ö۷벬—qî²úÊ­.§¾z4Tn]ûp¬|‡öu]V]Ów•S_]­ËÅUËìÛo]Óù…Oßæ®ijƒ®ãÿûên]F]ùêšw¨þvmwßþjCê|uÕÅyÚ‰±mê*“®:Û×¾Õs¿ðéÛÜUN®çó”6¥.ïs×ÕW}Dzêü÷9éÊ[×4]u «Î÷mãÐ|}ûqhŸôYïÚ¦¡z4d«®+õz»Ê}¬*¾}ÒÕ6õÕ›.‡uê[o_{ו÷¾úß•Öu°ËBßöuµIu[ÒÕ†tÕã¡í+».3]û¦¯üÆŒ ›jjh}Ëéšg¨>öÕ§¾ãz_[ÒWæ]mmW¹tퟮv{¨¬ºþÞgºÏe=O×ñ¯«>×å3Ôî µw}mFWù÷Gêuu-¯k½C®†ò3Ö í«¾2¬óÑ× Õÿ¾cÞв¦ä}h{†Ú•¡c\W9×óµ%]ýÌ)æÆ¶¹¯.Ôë©Ë¦¯ŸÔWNu[3TO†Ú‡¾öíÜåt¹è;î -¯þ¾o»ú¬ÕÛÒ•§®íí:æMÙu¾†êp×rúêÕù¡:ÐUÇÚƒ®ü÷•áPÙöÕÑ>c}ÛÐUwÆ<õ٪˲«®9ª—Ùµì¾õwµ/SÚˆ¡ýÕåeJ™Õ£¾úÜ×uM_/·«oÑÕWœZ×ûên½þ®ý<¶œ¡vbÌZW9ôÍë:ÖÙåkh[ºÊ¯«ÎvÍÓ×¾v-£¯vµ}Ÿû,íßz]çnÏÔ6¤k]ÓŽÍ»™è²9eš±èr^¯cÊvvÕ¯±}}‡®u õãêz4ÔvMñ9¥Ú¶)ŸÇêÄP?pjû76mß÷}mùPûÒWêùûúN]†ûŽEC®¦´CmR_{X}1¶ŽyöÛXy µ S·µo?öÕù®¶¤¶×çm¬=ªË¼ï¸POS»ïÊWí§¯3tléj#ûÚ;íïZþÐ>*þi§Ö˾c{_ëý[¯ú,Ÿ3O´ÿÆç‘æ«/»ù²«×Çî}†M¹þmxÕß°ñ¿oØøß׬;3{ºôê‹·iîe^~ñ¥Û¯»‘ÿû½…î§\êS·À]µfèÈÜÕ’M©Ù]ïjÉžÌè:bÖ’êiºò×¥p(ºöC_mªçë«a}ëî«ÕçïûZú¡Ö·ž¾«¾ô퇮ò廙]Û7T®ú\oC׿]õ²kߌ٠çü_]Ú/CÛ>Ö®÷mw_¹ÕÓ±í¯Ë²«<ÎmK†Ú«¾º=Ô·íš®ïïõ´}}ƾÿŸÒ‡í«#Cå=T¶}ûÌóP}êÚ?CÛÞ·ì¾zÜg¢¯\úúåçÖ™¡öe¬NvmKßyB¯¡}1Ô¾Œ•}mf¨­£î[õ»ºêIýÿC†úÖUÿ}J›QokWß±®}å8ôùÜetå¨è*§®iëå µ}ëò\×Õ¡ö§«Í›É瘅.ÇCÑw.2T‡ºòr>û «þÔóÕÛ4VŽS¼Õ†Ú‚±²jûþÞµÍ}mîP}íúÜ7]}ëë[÷”íš¿ËÓ¹eßU¶]íÉTSu¿¼ïœ««lÆ¢¯žÙ웾//}eÞWîcç,cýã:¯]}É¡é‡Ú‡¾¿×Qï³17çæoh}åÕ×6ÍÓ.öù=w}}ýȺœ‡ÚѾ2íÛ}õqhß틾rëv•iW9õmûÐwcý€¾òª—]ýâ©íÎP Õ™®¾Ù”:0Ö·­ÿ6v ÚŽ¾~]½ Cõ³«ß7TO‡ê]×z»êäвûÊwª¿!/õ÷]õ´ïx2T¦Ö¿¾}=O§ËÓо[Þ¹å3tl³6´ý}¶»Ž)}Ÿ‡üôÍ×U}Ç‚:Ÿõ¶tÍ_ו±í™g_ôÕ›¡üµ‰u]éZ^—×yú|cý³®r²;Cõm¨íj»êüPýËÚ¯]íe×1nhÿwÕáº^Ö^ú|ôù¯··o[ë¼µ1]–‡öC×qd³õ°Þ—]mLWýêkoúê]×÷CÓôÙî*“±v·Îs½‹õÇTü ³ÏµÄ—½üyϵÿOÏ{î×}£>„W¬ÿïúïªkSêÞ<ûtžrÚÖzY}ëÚÌ>ìky†êÕXý*ãÍ”åÔyÆêØ”ý5µÞLié»Ò)ë½ßÍ»îyêÍØßÆê͔ǮyÖUó6»=Cy˜·1uùSó}¾mÅÔz3ôý¼ß y™·Ì.dÌ[Sò?eºy¶}3ú¦™gžy-ÕóO¾‡öù<ý•©ui³ÛúdÅX=Øllæ88õ8»™ºö™.à ±¼©õe¨ÿ4O›0´¼)ý }lžRÆólG_¾û¦:ÝÔïëÿ¯£Þwó–ËØ~šw¿LÙŸ²œººò>vÌí[×fÊyj9mæøÖWG†¶y³Ç“yêòmÏÌÓ,ë_2å‹ßtÝ–+.»vëe7n¹æªm×\¼ýÒ+í/_ô-õ×s<Ú2e×ý~Œ®æe(¦Vƒ§j[žNùùLí«¾é>Ûʦ¯‰~:çùécF§”û…Xw_7èé°Ǻ¡CªóþT–ÙÓa=Ÿ‰ú3ï±°®+OÆ“y}:—Ãç`t>Ú’ßtÝ–·½æ"û>õ¿ã°ÌMtíÅ×\¦¡‰>ϾôWmÕŒ×߸ýªk.ûŸ¶m¿x»}*7^¾íœ?®<ç¯yëUÛ¶Ýt‰} _±1ÝÖíi›ö/Û/ÝZåéón¼î–ç(_ç>o³>ÑúKjâzÆ××±¾8¢±ø|â_Ðηð…ÄÙ¶ýa⋉?B| ñG‰/%þñeÄ'¾œøÄW’øJâO[ˆ?M|ñgˆg–øjâkˆgŽøZâÏÏ&¾ŽxñõÄúûs¾xñ|â‰/$¾‰xñbâ%ÄK‰—/'^A¼’X$^E¼šx ±¾Ç¿™x-ñ-Äëˆo%^O|±>Õ‰7ßN¼™øâ-Ä[‰·o'ÞA¼“xñnâ=Ä{‰÷ï'>@|X".&Ø› —ì°vçÂåÄÄúUW">L\M\C\K\G\OÜ@¬WÀõ}JY¸‰¸™¸…¸•¸¸øqq'ñQâ.b™¸›¸‡¸—¸¸ŸØAì$ v»‰=Ä^b±Ÿ8@¬«ÄAâq˜8B¬×·cÄqâ±Fœ$N§‰Ç‰ßIü⻈¿H|7ñ—ˆ™øâ¯ßKüUâûˆ¿F|?ñ׉ þñƒÄß$~ˆøaâGˆ¿Eü(ñ·‰3Äß!~Œø»Äø âï?Iü⧈Hü4ñˆŸ!þ1ñ âŸ?KüSâçˆFü<ñω_ þñ/‰Eü"ñ¯‰Cü[â,ñïˆ_"þ=ñËÄ ~…øÄ¯ÿ‰ø5â?¿Nüâ7ˆÿJ|’øoÄ'þñ›Äÿ$~‹ø_Äoÿ›øâÿ¿Küß…O5V OXÈþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿn‘À¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿Ã¿["ðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðïðï– ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü;ü»'¬+‹¿Þ¿ǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿǿ¿r½ËHàßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãßãýœçSï°ÄX?µáCÀÀÀÀÀÀÀÀø‚ö9ý€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿ€ÿðòõ×møøøøøøøøøøøøøøøøøøøøo]?Q$ððððððððððð–ÖOàüüüüüüüüüüüüüüüüü‡më§|þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÃúïmžhO÷£]‰ø|ñññññññññññññññññññññññññññññññññññññññññññ×_š‹ÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿøÒõ÷ïøøøøøøøë—yðññññññ×ÇŸÆÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\¿`ƒÿˆÿˆÿ¸þË)üGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüGüÇõ‹•O´—úþþþþ_&ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü§oX—6ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿtÉúPöþþþþþþþþþÓ5ë×– ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü'ü§'ÚËüÿÿÿÿÿ™?dügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügügüç7®ß"ðŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸñŸ/]¿µC\¶~W‰ÀÆÆÆÆÆÆÆ¾ný¶ÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿüD{‹¯à¿à¿à¿à¿à¿à¿ðÇ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿréú\ûûûûûûûûûûûå†õ»Ãö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö ö öËí­ýû öì7Øo°ß`¿Á~à öì7Øo°ß¬?3€ýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿Á~ƒýû öì7Øo°ß`¿áØßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü7øoðßà¿Áƒÿÿ þü¯?kÒ¬Ÿûw=Fóù[/Þ~ñs.¿ñâõ‡^>uwú÷þ"™  mstate/data/aidssi2.RData0000644000176200001440000002467514627637077014774 0ustar liggesusers‹Õ}TÉ÷uJPrNCP”fâ<‚€1bf‚º˜ZÅœPD ˜0笈˜³"‚`FT0!ß.äGÐýŸóÍ9w«CUݪWïÝ®~ÛËöðð£eýd)Š’ šIp(‰fx()ÿàP’” –ÍF……¤)ª™ žŠ«¶Ä»U7Ãâ6)„´¸ ¢B¦²¾B¾¢Õ ¡€PD(!”â~Uju„B¡…ÐFè tz}„‚‹0D!Œ&S„ÂÑa°DX!Ú Ú"¬íí6œÅCØ"øÂ!DØ#Ž'„3Â!BÂá†pGx : <^o„ØF>ˆNˆÎˆ.ˆ®ˆnˆî_DDOD/DoDD_„¢¢?bb bb0b€ŠD!‚ÃÃ##!ˆQˆÑˆ1ˆ±ˆqˆñˆ ˆPD"˜ˆ˜„˜Œø‰˜‚˜Š˜†˜Ž˜`3³³Qˆ9ˆ¹ˆyˆùˆˆ…ˆEˆÅˆ%ˆ¥ˆeˆhÄrÄ D b%b"‡XˆG¬A$ Ö"Ö!Ö#6 ››[[Iˆmˆíˆˆˆ]ˆÝˆ=ˆ½ˆ}ˆýˆˆƒˆCˆÃˆ#ˆ£ˆcˆãˆˆ“ˆSˆdÄiD â "qqqqqq q‘†HGd ® ®"®!2×77Yˆ[ˆÛˆ;ˆlÄ]Ä=Ä}ÄÄCÄ#ÄcÄÄSDâ"ñ‘‡ÈG¼@ /¯¯ooïïEˆˆbÄGÄ'ÄgD ¢ñññ ññQ†ø‰(¯}þƒƒñÏÁøç`üs0þ9ÿŒÆ?㟃ñÏÁøç`üsĺñÏÁøç("0þ9ÿŒÆ?㟃ñÏÁøç`üs0þ9ÿŒÆ?㟃ñÏÁøçpÿŒÆ?㟃ñÏÁøç`üs0þ9ÿŒÆ?㟃ñÏÁøç`üsÚ#0þ9ÿŒÆ?㟃ñÏÁøç`üs0þ9ÿŒÆ?㟃ñÏÁøç㟃ñÏÁøç`üs0þ9ÿŒŽw¥F¶ª,ÿõý(ÔŽ½x˾cË=ª•?ç{ SÙ¤GðæÍ+¦De2g BmÙ$—[øht'ý}^]سcrµþŸfÄtº]“–Ü/óÉHFQ¢ï{Ý ã¾ày`Ä3çÕÊ9Ú#_ý¦]ÅõZå¡{JžGûºþ¦¬ªŸ0_{ÐÀß”I)ű·ë,ëœÇÛ1§”ýª¿æŒšÓ™ÅËÆ¤L`í *ÓxtuT{ö>©_1n~¾4 l½ªòsx¹Åy<7VÙ²e;–Ã)cþ‡]ígöÖH¬Vzoë«X­üw{Qé¶äÎG%«µŸ³Tð£ÎþI½©ÃƇÿ²‚¯îö1BõçAlÉ^ÿ9HÅçmÞoê~´aÙjeªÊ¤ôjv,»âÓ]"õ7í²g¶vÖ:¯«$õž§"WW³ Œ¸ÕÎ[Å Xù?J­ ûUhïÒýoœ {NÚ›r”2çW+ÛÛ½j!Y­ô}z8¼–]H9ÂÇØÜ¿vYrq43ceµvaÌwÿGµí¶›~ìÖš^l=Q¹TÇ4k}e­þÊ™Ì9áÕJcI)_Ø’Ôûýuö~éšé‹ÏG“²Ü;¦ù–{ÕÎ…z‡s°ì™þôI¯ß”C¨ãi¤ü’}îÖ Ô1ªY“¨cåqÊìLزö<6uL¿–”¥Ÿø]—‰ûÝÃlÜ©Y­^ÅyíëÇýó<ºÖ¹¨üÁ@‰eâyç¯x^­,J?$ñ¦ZýŠsQùj‘ÓözÕø:•peù`,UÇ”(‰çá9sÀKU¶ÊòaR”6žû·5ŠfËú~¢Ò§™sî ?”/Èãúõèšú …ãÙóª’Œsà{ù-~c¿Šõ©y.*ß5öó;?vüµÛÝóésÛé7ןÏl×òp­(» ‘Õ®¿;ÞÜ«5[Öîçë»§ÌîjöT æò<ë,E_¦fú}ט©ÕË¥©!»"«µ·Èº‘$Är8‘Û=G›£}ñžwxø–ÿ¢ZýKY›3²«äË\\‰å½=§¾©vþïRôåÙ©âr¨ÆSQÖõjŒÎ³òVÕÎCuÕ¹ú›z“{œFýæú¿çI®¯&`KÑ×é§.ç°ç¤^|©[Þ§Zç@mX±³·Zy”¾ Ë»[ åÙ²6oá¤6“ Îù6öe«_¿üTÅÿO¬þ²ÏûÊ}À—+‹¾ïñ®vÿ÷Ïyh¾öb¯›ž¤¿Ê}Hµß¯ý$ ¼6—¤ÀL¥4ó¾ú<à<9ß&ÿ*m¨…JÙX¶Zâ} ÷‰:¼cW•ô)PHl„û"³—*ƒbR`bž!½á#ªÊñwæS`œ!ÿ3®\¸Cý.1`%ë*ŸCª]pÙÂ'Á$hÌ®Ñ×) ×tÍš}2cÖuô Ú´òÝ0Í`y]{CÊÄt°Ü0.Ë 8 gLS–bÀòY¯ô9Eã€P2ßGƒ³Å³º90`Þê…Í—ÄhÚÜî†íD ¤†¼Hy¸÷mƒË'.}KAËŒ©½ú´§@*ðî|€"ýß{o›½q(X(µ‹¼ªÃ€IÁçÉm)0˜ØeÜ‹AV^·(ß"ÊO×˲ÀùÁ+÷qàB—ƒXO}—œÿíÝTˆŽ=f N拦‰Î½Öuo³5,¯?yYñ (NžÛÏçÓ0íöv„ñi´ãÍé ‘Úh˜sý§ž¡À4S}ÄÎnÈo´(BÇœ•vÉú°ã{´vS;â„ö7ѽ`)*Äùzn.S5A;d¤ÎV&oûï=ñ’suíuŽhwCÏ÷"dЈ?tcjÔQÐ+{}þrçääâGaÈsYÕpnÎ?tÕËgû‚åæMk'­VOÝÏùR ·Ëeö³ø¼h·ñå:u äµ>½=‡:¡õ­b~Š .eÇöÄ~¸-u&D,ÃîãFz ‚Ñùk÷L“àŒ|tñs,Êc3žt–¡@ÓNyÀ;\*;½¾>Üý¦Èuö?£hÙ&w©³²˜ï$ï¤Øq[<ztï´> µDGÿ2î+Ÿ?©šyya#ÑïL¥÷¾—zÁ€rTo9ùGØÿcÃrkï—ì<̆=Ûy"û›ÜÌóÑ  Ð;´-Iþ#ú_™ìÐL ZH—¬ô ›–•ëfê`qùŸm`²Rý\€FŠ–E/Á÷"÷À 3³pGFÈŠßgVJ+Gãz$hÉD•aÿÞè ÝZeRØÌ»?ƒDq…ÿV_1¸WÜÃE8>·_-f[-ñ>HÅ^]IõѸ^cÖ•^qcÀT!Tþ~ä™°ì¢äÌq`T<àª$Í€±îȉ3Äæ§Ú½é“ –úû×\f@b^Ìã¸+°<&wyRñØß ñtºƒú˜ÐMç±%*ÞaÙ¾7†Ü [Ÿ÷#QnW ŸSš‰GŽYÆ’uWû†Qf14­M2oÂö¶W„ä¾ÜÍ{=_¡«<н_Šñ7éäŠø;Èï~ÄÝuÖ×Yvsæ 8Î ~’ÖØî|žéÞ4HM,ˆNϦ@Åùk;—(¢r©]·l?ÛLƯ^à€í-o,H4ïÑ Znsþ5u'g_nOܧš]âÝÛˆ~ªøàÄç~‡n€á—»3¥Æ`ÛŒÝϽzåýîG¿Àö[•ÖæD”÷äæŽIñüÀ±åÀ ó×H—ã8ÎNÏ–—àúi·)Üö ýÚ2Zz * èóÞÆý„\îÎØ¨Ëf Ÿ—ÜÀùå+uÍà¡N»rÓË’0ŽÊH<¡²@åʪwz¨ƒIsæ=ˆöNn›ÓRLR,ç~ÎgD_¬½ ·é€Ì{Å®ËÍ0ŽÓd.Ì Ç²·ÕÜ[ê¤~Ÿ˜è“r¨ï ]—c¦=Ÿž?›Å€v÷ƒ †PÐzòôÇgá¸|«u^=T+ýJëžwÁÀaègú¬<†út8¿^}7ø¡>·æ»¶Ç{j¡@ ÷ÅÜ·j½GwÁûG'Íî†ûaõ¶­4Ûê–Aç¾Ø«M'‚ÔÞ¡þÉ8žíþ ¸ þ;AKÉq¤?ÚÅjNÇÑ3Qÿ»jÚR¨·ÚéAŠíÅëcûõÉ Ôò#õqnu6Zpè;ÚïiÊÄ´Ãö p­«ßUe±ŸÌwâú(Ÿ H—7E»÷< ÝÀÎíP¶Ót>>Ï´ío;à¹Ú?;ÍJÿA;ºD+wA=º2qcì1Ô‰m^»Þza|¤µØ_°ŸÃVz'8·•”Ç™„÷\Fæi¶L¶/Ö3š–# eDŸîº¸õ&/ÖÜnã´­§Zñ\}8-vЉ Ú’wh×jäÖ{w¾·¾^}9w½»«þ¹‡ºªÝs‹ÍíxÔµ‚@ƒ³æ ÈÎ)[ž‚û_“9óSíÑßMk‹~dœ½1 ¯tëO–)Ý&¹·šsŸëú… ]OMÆ!ƒ™WÚ¦Ív‡Œc­B î  ÷ϾsÐO ÝÓß]ù®Æ«xÙ¢ßM°•|峌L¨®Å¸?0ŒÎ÷w]`Ú†^{U#ŸFê'ŸHŒÍùœ´‰øüSÖý‰?>·5­W¨°ü¢¼¢ ÿ”y/OYàþ\W0ø]ˆX?¯ì/øã‰¸43ÿ(­—´Ur íé? U[ðLçØ¼¶Åç¹â”˜ës/a¼hõ 22Äq]8¿Ç/¸•d¥…ûÇK×NÂ~OŒ <Äî'EE5ö±uœ7µ¬µO®ç~]õë:¯«ß¦Žço¿©ãû¯ï7t|5ï7´]cý¨®~z^_½Æú[cÇÛØq4ÔN í·©¼Mí¯¾þkþþkÝhªßýíuø¿²ëßšÏÍÛØvMÕ?婯}]ãù¯âëO˺~Õ±šíê믱ëX×ýƶoèxš/ê‡uµkèy}ãúÓ¸klýß´¯ÈOš:ÝA¦œä'%”ì¿â{‚ñÙÍc­\Ý;¡çÆ”á>>9È® ¾÷(Ò&j;dpßÌ¿¾óÚú(0?Zlöx#Æ»Ç&›ã{yë\òµ¸~òæÌ}Aç×¶Ú›ÍOZ<ዦ¾Å÷aùƒ«^>;Po~Ò¼e¯ÄÉý)6?i¬½õ¬S<êZñø[Ãæ'•²wŸSõ¤@jb¯q]WP¢Ÿö©¯ß~ó•Ä€¡!ø^c°µdîƒÄÚùIÕÑ[#'6‹è3}ú=Æ÷ËM#dn¯ÒM劼UÍü¤‰ßý/ Á hE|5Úß7ÕŸ‡¼§DOį§{v×ÊOÊÍŠ0õ”Mb󓺉%e†å`@Ჺÿ½"N4†³y(S'¾Z™Ðzêç-!ó6?© c×éÒ¶"hP‘O«+?iô´8oéÂP0»é‰Ï îyTw ±›ìS¿›¡0NV¿H gêÏOîµWóÕ'ùI…óÜ>ã'c\Þ}øi^¨ÃÍc~¹lþ®*?i~R÷Øì"|¯ï-ᦗFÕÊOšÉ£g¿có“VvÿÎOštˆ½—yã㺸;|¯_jÛã´“¨4¨¿îî6 ç1_Ãh1ú…»Å4ù±”è,.$›Ÿ42ÑŒA"ùÉk‡›¥Øü¤áà­ïÛü¤úë[âÄ k'ÓÿÎO¶¾Z_*!‡†'~•ÃñOfw^Nö²‹>t@ÑûP2j%æAÃ…zÓ΀ÌY±!µjå'ÕÐk$šƒ²†xXÞµó“þ w[R ¿ëW^†½Ïýôë߃€Æ&­`«[çAåñÁ¶­úH‚ŽÓ\nòQ š?›ÅZÙÔ¿S’ŸTzÛE0ß¿=tÚNûP;?©ü¾[˨.6?©©šøºÝ´wó÷wu_ Ê6›ª7–ä'dv\°‰ä'Ùx¬ÌO¶Àà ê¯Çæ'M2K,½FªÚ‘°W‡F€j¾Õ/C³y1©íAÐé¹îÆ^äí#)^8UŠ ²ZTÄ›ŸÔˆóÈ:I¤Žsó´NƒÙü–Kk¹ÉÍØü¤ÞÙÀ=Õ(h5¿Â¿ 2s/‘ü¤ÕSUe©d <Ÿ­<6ŽýÄŽ†šío(á:æ.ØúóùZùIc§ ÷2Ó(P›QáÏJÓ¬|ŒAè÷Q.uªÕú9 “;£näoé×å+>g|»:^ão‡ÖiÁ›&QLíüdeÞÊt½ØŽËÙü¤QÔ¹“¼–f·ô¾Ì]\ÿ·¿”¥Wn=„ë.¥Ü÷õ0©´kU~RqxEœéß*ˆÌ/¦@ÅÓŒ¿/Œä'—TôSµÚŠS£Ž<ºJŒ¶ ÷µ.(«î;˜;ø$M?Ê5fà·Ý÷ Ùü$›ÿ«´‹Á3¹ÔŽI~R_ûÉ"›-hÍÎ… úQHd·U;ñùÍx_@5´Â5­*tÛ´SE~Òä=5âá¢Ý %OË™ÖÎO²ºôzNü ˜)éy,ÚKÕÊOOòËÕ nS;?ùhgϬ{8ΛZ™Í‡Œgó“\¦j±í´é†8‘FÃ+ò“ò}6(&ùI͋Ůºó“nó¶Jf“ü¤þ³r±G‚‘UÅóT²B§@:ªRŸêÈOõ–ü¨~®3¬b_ahU‘ŸTþôP‹;Ÿg•úò¦s»ÙS|ŒA)¦b]¹b÷‘@ò“—Þ,oȈ>zþÒwчµ­RžnZùIeÿº¯_R¢÷Íö{©ð¤‡Î‚cŒ-(ˆ½B¤ ÜÒ’“PŠ÷ùTt¯›Ÿä̸½–ä'Õnì/žr°œä'ƒsçx cjå'õ"®Ç}‡jänñÊ¢¡X{€&¶FS€¶¬XpWå'EE¿Âc¨¨Ðo-0 ãÍÒî ÇõϨr_U•ŸÔ7o§¬Aò×6 —(Y¼‹sÙ¦‚åóvé3 æúË!Xý’’Ÿ.ªŽï'kîSÿô~C÷çýýéøêª×Ô÷·¦ò4´Ý5ÎÆ¾ç4ôúŸ¶ojÞ¤®~þ«÷öÆþþ”çOßÓëëïOó õ£©õÛOCÛÿ×ëð§ý5Õ~M]ïÆ^ÿÛþòUïoçÑþ¶ÕÇßÔqÿ­xþ[íê«ßP¿n(ߟæ÷êãû[~U߯©ùÆúx;ç'«¾Ÿ¬+?iþ4½x^0Sg~Òpf°ÂÀÚßOVíkÕ&ìw9Zÿ÷“uå'k~?Y#? J’#F=ÙNÕ›Ÿ´tbü\‘bó“&ã÷F©ÍÅ÷½Y›C_×þ~²©ùÉŠï'6?©½<Ûµ|3Uo~Ò|sg Œ?œÊaó“z­\öŸv¤Ÿ4{¼jé ê¯å'®èÜu”cjå'õw\Í»›‡öúXbZ2ª3?iØ%ú•áttMïT݉õ r3õ¨ZùIm·›o§Vû~òj;5çÓT­ü¤Î¬–9á¼kæ'ÛdT|?Y•Ÿ¬*«ò“Uçuå'¹þ×vù`×—Ÿ¬ú~²¾üd_}ùIQåÝ&`ÜUå'U®Ÿù§uiíï'•w˜ ]x›ª3?iyµû‰K#vØùyÕ}¦ úy'Î8™Sl~R9ø±¯ÍOê¯å'5 Ú¦ÌGÿ71ÞCzÅæ'­¼.»•Puæ'«x Œúÿãz‚ª3?Yç÷“•ùÉšßOVå'µ7ô ö[HÕ™Ÿ4qå*»&ÿï'kä'ÛX ÈÌ ëc ÝË6Ü¿þï'«ò“†<Ë=vQµò“&&âï'q½-ά;?ýÌÚscg\7«á%ë´˜šùIÐôËú nެ$j?Y™ŸÍ©{žJ ßOj¨­1ÉÆúUùÉšßOÖÌOšhñ²¿ßÀü¤Á‹kANûQßï-‹·DÝÑStT¶·ö÷“-7% 1ÒÄu)‰¤•ÊÔÊOZ´l;«ä*Ãæ'[ÇÚȾÆuÖmvb{â|\ïA" Ý(6?iüÊÕâÜN¢÷G3(Z³ûɦîWñïÕûûÓ÷ʺêýéûÇßz_ùÓñýíûM_ÍûÚþ¿Î›ým;üi? =o(Ocûmªß5õ¼®ßŸêFSï7•÷¿~¯ÿ[ýýé|Ë[ׯ©úð§v«oëyÐPÞ?}6ÖNMåûS»ÖÕßßöÿ†¶oj ïúxþ–~ÔÇÿ·üùoë U•ŸôÖÓLiý2œv™«½™÷Ùß׿΀[«VùÇ ®ÉûÎv§ ÃŸ%’æp2Ò0i_€Ëù'Ïoã}åñ¾;¦aa}øß4°¿ÜŸc8=SÁm®}ôù!9àþVåõÁ>8®Âe³èÇþà6îŽòÃè´XNÖßÝGð%¦Ìg†Z:äªûL Þ8,<²¶æ®Í§7ß;¬œ}\nž’×,:<[âØêòª¹4?ö0¼ûÈèEžqrò&À¶‚Nóf O”›1 9à,ýÌîù;´“KóÛË…xv\|#»K*8u.禮TÂþ¶¯” ^Ÿ†.ïˆï»ŽKûnœÄ@‡IÝ/ûƒÓ†Cé§GQàq?&Ü1nœ¢öêiÝVá"ö±L×–ª®ýŸ?;æóŽ¿27~WwÝä}B»32K>ïÀñù¥Ç·™…v¼0*´|œ?x5_,˜7û‰ ø1Èí#áàÑþ9ç‚'î³Çùû­=}e-"m‡vA»C홞oì…SÕrÀ-S!0Ê ×雃«ïG´Ç­  õýÁµk‹Gûúå€ëê­ûOK»yÓçku<ÞC ZYxF®)³¿ÅQºCn¨í¾í†ê³ÙÞ#Z˜koJÁéi“ÕUSÁ¥­ulô_ —ëñW¸à™QКÚ®33 R¶àøÌL‹Ò¾‹À³SOï}§)…IyGãüÕoJI¥‚È/áùÚ xmÞM½‰v©Bwã3î‰ßvèOcÀC°³mZÎçTú¥æ¹¸Î}·¢Ïtp¶H(ü‰þÝ—8ç±xÈøèÏê鯎ëô©u¶µ;ÆËM½ÐÈíèÇæÒö{&Ÿ·æÝô-ßá¸eË^¨ôD»=:ù¬ýÑDp=ðPvçT‹.ƒâMýÁ1˜:R´ í¡_’éaqÜl¿mü`†~Ûý+¯0 íuXUÉÎçà ­qãp}n„­Þ¹† ®¾—{´ˆõáØÍwÏ~e@¸iæŒ+é ð‡.>ºE"œí4Û_DÿvwH²U–O÷Ô¨—`Dsá¨QYš8ÏÕQ«¼ÐÎ:3¯~¤q½å-e|\TÞÜ‹þ°V4ç… ö¿ö…Ê>y\O·¢! p>ÃÂÇ\’c} ©¶hÏ)AC,òÑÝQWp½Ü¥-ÜÜý8aJñàiè{W'¾LÅylô°d€ãÜ»8Ç#¯‡¬5jÙëmNÒæ!ú™³C;Éd ¼Úg žžÃsMÕY—ú§‚Ðy‡t¨?Úùƒ„¾ßCÖ«ç?G£*ò¸"ë þŸJpžfGguÀ²mo•.WsÀaïÅ©>[Ñ??~9<ûŽû­¿™4ÚÕ+O}R2Úóì“¼Åø^ïöq–wp8úa›Y}‚:`\ª†.õF;{Ý›Þl¯?؇¸ê4ybJ† ÙÜR\ØØ<:, /õØõÞìúÌb8=y³a¡2€PNOóü GبG8¨‡igv$4ó÷œ4 œ”?š›¡lž l·¨+òeÈn5;f÷L´gÀñ³aV>Ö»sõNË 잪ƒ^ôóίQz¨sWF…¤`}Ï¢À’#3q¸ÔqÀiû•Ú?IÃqi<|‘Ú íw#ÿhÀ\'ݘ½#Dhw!ÿÌgŒ'³Ë¯Ý3QÏo´=Õå êÝš‡ö££ÐOû_Ž9 9à]Ðõ¾ÇD.xtµÈ ["CçâvÙ8n–Ëj´ÓÖ’Üã«f‚û­q .8=Ýß{Žúôn)[|ltúÌœ†+8gÓx¿ät‘`9.×MËÄßÁrÑ~gfM›üâ³SõkŒ’]vËý =Aã xýòŸþó]gŸLêÿ\çÞƒŠ¹ÐÑ1Äúã,œÇ­å.;¢]Ï^ŸèÑ×QæÖÎ;ƒsÀcÃMA6úƒÛÛB¼îÚ#¿Ù®»È?ç_¥€óé'?>b|¸Åeê¬MÞ€ó»1r…!Ú;ïÁýÒç_‚Î!ÖØŸ}öäE¨sî7†lïò3õ¦{¦OÃ~M"Þ z‚ÏÉ­z—­ÑEž-îÔHŒ÷çÑ?&cÿ‹V?¡‚óïïä{íÝKU÷®“«uQ¹•¸\ÆW¼Ïˆâî¶ÝŸž[ö÷'ì*™¨KQ |¼tôµmøœÖ<™›h:afYòf$Æ_¹ßÞòyø‰é;?y9@§QÖGâ8îœ÷ÒTÅû]zH3e@°6á îK¬ÇŽ¿²—mÏf™±© ˜Q0$±%úG^V³ÜŸúè>':_ÝZ8)ìãî ˆÅ}IT¦’m>§ºK§ŠpœG¶]N G{,4j]‚qQql]–߃îyœƒ‰}Ö‹÷‹Í¦·‰sE»É ÿwò¶­ÞåÍÅv±m´ˆÅuˆû©¦Vp܇ÈØ|-•¢šÕü[½Õˆ fݺÚ6¦Ï:Û0{àš÷%jÖ­V¯>ÞºúøÝqCæð;{HÔÓÿÿâi¨=ëâmðøÿ‡ÍþWßõÿwuê»ß˜6uµ¡kUßxþ&š_™ÿ¯z•ëØކøECûmìÿ‰=ÿFÿ ЉýÙséÑÁƒG‹ÿ2¶â¯»W%úöeºÔh!8: ¬ªÛͰ€Àðqâ?²ý³fõ±c‚«ªËV]>6´òD6xlxè?Öá#ÇW^‘ÿ-öÚ«þZ{ØÈê÷ŧÕîÊ„¨^¡òJõ†[;¬òT200”_1ôfå5&'`=,'Rcr2¡ã&YW› >‚*nplªèª^ÕmÕ¿ê@Pu`Wu ¬:°¯Z›öì‘ {D³G<öÈ–=â³GöÈŽ=²G,ÍrÐ,ÍrÐ,ÍrÐ,ÍrÐ,ÍrÐ,åà±<–ƒÇrðXËÁc9x,åà±¶,‡-ËaËrز¶,‡-ËaËrز¶,‡-ËÁg9ø,Ÿåà³|–ƒÏrðY>ËÁg9ø,‡€å°–CÀrXË!`9,‡€å°v,‡ËaÇrرv,‡ËaÇrرv,‡Ë!d9„,‡å²B–CÈrY!Ë!d9„,‡=ËaÏrسö,‡=ËaÏrسö,‡=Ëa_ÅÑ̦}{rhCirÈ#‡¶äOäÐŽ É!a³!l6„͆°Ù6ÂfCØl› a³!l6„&l4a£ MØhÂF6š°Ñ„&l4aã6aã6aã6aã6aã6a³%l¶„Í–°Ù6[ÂfKØl ›-a³%l¶„OØø„OØø„OØø„OØø„OØø„M@Ø„M@Ø„M@Ø„M@Ø„M@؄͎°Ù6;ÂfGØì›a³#lv„ÍŽ°Ù6!a6!a6!a6!a6!a6{ÂfOØì ›=a³'lö„Íž°Ù6{ÂF´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKh¢%4Ñšh M´„&ZB-¡‰–ÐDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKxDKx¨%ÿÇŸŸÿõVM¢(lmstate/data/aidssi.RData0000644000176200001440000000544014627637077014677 0ustar liggesusers‹ ­™ xTÕÇßIdc²ÍLV’™I jEEŠï È¢ ,¨Rk‰@ÙL¸AQJ­µŠJQÑ*‚ nµJP)…È¢ àB]JÙD¤,Ê. üßwÏÄáú‰Ôù¾_fæÍ½çžíÞÀôë:è‚ÄA‰†ax O¼0<^¼Œóà0 _3<'” Z]=Ü0¼xRðaOµÂ+í-üYhš¹[ZNÉjŸ‘ šHé@ÚÍYÀ ²AÈy € ƒ(% %hJ Zƒó@д?çƒ ÀÏÁ… =¸\ .À¥ #øè. Ð\º€®à Ð t=€ÌÑ•à*Ð ôWƒk@ÐôýÁµà—`_ëÀõ`0ø5¸üÜÊÀP†‚ P nÃjfŒ¿#Á(0ŒcÁÍ  Tƒ0ŒÀ-àVp¸Ü&‚Iàw`2¸Ü¦€ßƒ©àànðGpø¸üÜîÓÀàAð˜þf€‡Á#àQ0<O€'Á,ð˜ 性Á\0<æƒgÁsàyðxü ¼þ^¯€à`!x,‹Áðx¼–‚‚eà_`9XjÁ›`%XVƒ5à-ð6X ÖwÀ»`=ØÞïƒÀ‡`#ø7ø| >Ÿ‚ÿ€Mà¿`3ض‚m`;ø ìŸƒà ° üì{À^°| ¾ûÁp‡Áp| Žãàøœß‚S œVÒø# ý è_@ÿúп€þô/ ý è_ȹý è_@ÿúп€þô/ ý è_@ÿúп€þô/ ý è_è_@ÿúп€þô/ ý è_@ÿúп€þô/ ý è_@ÿúп€þô/ ý è_@ÿúп€þô/ Aúп€þô/ ý è_ôà)ãíI¡‹®˜½vù*É8¶þSÿÝ$¶vz]Þ‹^qÏÅW­~–Rï»F^¡Ü ; ò ¹ššÏZ6þ­…¨¨}í´Á­¾¦HËýO,h“J™é£ÁR ¯í4öé)Èvr»¿”yÛö” kó÷?IyµéùÖñ䞯ßÐÞ²ŽD6·Ë™µŒr.h“: .›Ì ƒ[­Fæ,µ¿è.sôM2·Û†¨° Þ¦!öL<£–©ðºµ‡âqh§±s)þÆÎp|U'Ýíý!¥È壥,‘€“r¿·ooK¦Ì‘÷v™qgEv©8òç¼·&(Èñ”ž¾ãˇU“yJ†Õ‰Âåý‘¨ù_ðÈ(ôÚ¦vPÉ=2œ‰VíÁçNîy/™ï~ _‘ï–§/êF¹{&ØzŸrßß;µ`I?òL¯Y:bÒ7T¼~@\pú8Š„zc÷Ö1™¦'P«ËíQ éÕ€8Ê“Ñw‰LŽ?`»]L™ýUÝŠºÉmm(0Så%ÖOl “ŸÏ/^ÓZ:LæÍ%»oÙXG&ç+¼NÙ ÜoûaáV½LÉ9v¡)û„Š/Á¾\DÅ…v~©¨Ï8üjÑB坸;ëtݳ×Q+ÞŸÁýQÿs•ÏÄ“ªn-9¿Íjm½[‡æ«x‹ìv¹–²vÛLé{ Õ×=‹û3ØVé#FJvßZÿy’-ç‹)0[›Á×ý\ß&›T=çÏ\)ÛqÅËhù(ã2ûE½ž“XWé¶{È|Oé …ýõmS}V²Zõ‘íW:,9_Õ9¿ÎvœÌ¹jþ5½FÕËTù£½TÞ2³¤›í(“ûßœ¦Öås%íPó(u”èSþDû-YÕ—2ö©9Ǻ.]®ú/[Ågç9ÜŒãJå}é×ÊBΩ_ßšçz!ªÒÿØ*¸^Å—ÓGå¹ågj~&Ùã}"e^*…úe¢æDÖ$w³Eê¾ãçù•Z©t”Ìùõ±=t]k5oý¥2=]É\¦êRü$ÏÜöð ì4Õ§ÑÏSz«ºx~EëÓÄPë#œ×ÇÕœû5—ëŸ^Ë÷ö3|Ÿ²­Cç;m²²—n·a&•LRç|)e?Ì%ªêó2Ï. % VzÏãù”Ì÷ÍB¾ï„r¤àzûx~4›fÎÚïQ÷ë®Osö·€¿_¥ñý-ü°Ò©‡÷ñsÏ©ߟ£s¸èu=‡ó༩6»|õ½n1ê=¬ûá” §š8ù夋†êå”C{ï1~˜kݦSMÜê§_sËþ^ß§×Û­ÿr†g¯þÿ”òÙkœ™o§÷^m½³nÏãb/ºÞë`ûl9Õ÷è}kdzÆÍ®×a×á,¡}“GÛçä‡ÐÎsŠÇ­ßÝrëÕ®éqé{õXcýןbÕsêÔN1ê½k£118Í#ÝG§¼ëþ9õ®~MÛ«­wÓŠ¾ß)§½n1ê=¬ûá” §š8ù夋†ê唽/½Æsí–3§µns ¡èïÝú̩ϖg~>óŸ‘ã+FÊ_|¼J^ëܳk~ˆ£kÚTVUTðOÿžš•øò‘eÕQ#‚—%T–•׌‘?:Ô¹ h§B»á&œ†Ö‹m1Ù°nMâ´®¡sÝl8½nL NùÐÔÍ–Ó9ͧ۹öÿ,9;›í†üwZÓÐç?fOCƒ»¡Z5äÏOɹèëÇÄo¯ã:žË鋯Úý±5þòùSØoÄœ£ÕsÚPÓT®·‡îÀõ¯z«5Þèa8LÜ3ôè²QÑÏËãÇ–ÕŒ®â7q5ÃGE|BuMY͸êè²ò²qÕÑâÊË«ÚkÆ›U™Ð6z@J´7NŸ®[ìâgâÐ²š²¶•Ueö‰ògƺïfè&М mstate/data/ebmt4.RData0000644000176200001440000010417314627637077014441 0ustar liggesusers‹ ì½ ¼%×}×ùj/Ìf³{àB0!1Šqƒí¼ÎBıÇñ’¹•{¿Üä>(÷cr’ûq¹Ëý„ÜGä>*÷1¹Ëý¤ÜOÉ-Ë]-wܵr宓»^î¹å>!÷I¹›än–û”ܧå>#w‹Ü­r·ÉÝ.w‡ÜrwÉÝ-wܽr÷ÉÝ/÷€Ügå>'÷ ÜŠÜ&¹‡ä–{Dn³Ü£rÉ}^îq¹'ä¾ ÷¤ÜSr_”û’ܹ­rOËm“Û.÷ŒÜ¹gåvÊ='·Kîy¹Ýr/Èí‘{QnUn¯Ü>¹ýräÊ’;,wDî¨Ü1¹ãr'äNʽ$wJî´Ü¹³rçäÎ˽,÷e¹Ÿ–{EîÉýq¹?!÷'åþ”ÜŸ–ûŸä.ÈýÏrFîÏÊý9¹?/÷äþ¢Ü_’ûËrEî‘û¹ÿUî¯Êý5¹¿.÷¿Éý ¹¿)÷·äþw¹¿-÷wä~Vîÿû»rOîïËýœÜ?û?å.ÊýC¹$÷Éýc¹"÷Oå^eóäþo¹&÷Ïåþ…Ü¿”ûWrÿZîåþ¹#÷oåþÜ¿—ûrÿQî?Éý¿rÿYîÿ“û/rÿUî—ä¾Ò ŸèŸDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þ“E9ñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOIJ$'þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øO–åÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿÉŠœøOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'â?ÿ‰øOÄ"þñŸˆÿDü'_iºýTü§úÏ«#†Tü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿ©øOÅ*þSñŸŠÿTü§â?ÿéWš!&þ3ñŸé ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿì×6Ï™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿÙ«Ï7â?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿ™øÏÄ&þ3ñŸ‰ÿLügâ?ÿÙWšÇýßTØÒg|þ^Ç—Ã9çú¹Æ÷ÿ ¯û>ûçªÆÿ£>>û™Æ?üÞÆÿRãŸù=ÿ.‡{æ+ÿ£ÎÏ'ïÏ6þ©—||sãÿ„¯£=¼Ûþ¦[ÿÇÿ‘_²¿£ñi‡Ž[¶4þ¡4þÿ`ÝøøºÙÿßÿ#öÿ¨ã¥~h×´Ëïõ1õµÁ÷=ñ×Ç ÜÃrãßfÿA§ó¼9xŸÓsüW5þIçûv‡û„¯ÿ‡w•ýï\O7åGýáÿ€}Êõ÷ÛÑá¾7œç˜ðÞiŸòâºï ÷ºÐøïð1íþ]-×ß°ÚøØ ÊëÅ1ßïóù ×}ÂþÙ¿ËáùØx<{›Œ/ùÝöuãŸü¥ñ|žúdãßÕøw:¼ã?c¿ÉØÒ±Ðø÷9¿‡šŒ-½ßá,…|’ÿå•ñüÞÐ\¸ôû?Š¿2ž®·Ùÿ}ÊñƒŽŸòùˆï{;éðñۧܨÊxn¼Øø?îpÿˆÏ?xºñÏÞÔøÔ/ü}Ô×ÃùåxÉþ§}öþZÇ÷}!Ÿ„ÿáæÆQ9Òî¹¾-ÜGùP.pS~”ϵ>¦ÜÈübwÝÓø7…tE>>àð(·Ø‡/Âû1çóƒöiÔõv­}ì*åÎñæ:òáãŸt<ôkpôÑ¥ñôRž¤—òûIû7-7>å÷ŠíÕ—ÿ®Ãs<ô'”÷ÑÿÐøWûøL“Á¥9þ»8o{÷9Ÿ‡ƒSÿtS€K'Œ‡O{ ÞèOb; \©¯ó¿²ñ±“ï¿0îS.?bŸ~ˆó´â…;â{Gð¿?ÄO{‡?Êýíá>~'ÜwŸó¤‹ú‰îø[“ÓyíRãÓ/îy÷x¼äððIßM«ö/6þY×ïÎöñmü—m_ï÷8ä³¾ïpÓÀ––}L;ºÃÇG›n4>{|gãïþKÝ;Þdlé˜ûÏãŽÿÄ;sÄñwÿwÜýÍæßècÇû”Ã?t‡Óù¯ß“ÿ€Ã¹þBã3Î:ðhã¼¾ñ_t¼µ¿þÝþÓËÿ¼û­[|¼×õu‹Ã…ß9¾}ýúÖó}¹Ýã»Õ}‡ùúÒ›ûÆÆßäqò§çþ~ÊþhÜêcÆ¥òñžÿÒø¯4 ]zù)û‡»Ë¾7y\vî7;}Î×Oÿ®Æ‡»û>í{GûÛì|>à|½ü{ÿ!ŸÄõ|îß5þÙgœ÷Û/»Ý`gyN9³êëlwNûy;Eÿù>û³O¿p÷EÇ{wã?æñú©¦ —®v>Îû{|Îñnv<'~¡ñé—Oº]Àÿñì»=ðóÏÉÿlßí”þ÷û»<þ<ó§ëO;Ÿ¾Ã9ôýûŸÂ÷yµÓíç+þÝíçËý„ùæ9ëTc—ž\lü#~¾û˜?bnNú¹í¤ë^¶;܇|ÿ1Û•}~.9æôîûõ>~¥ñšï£a[úÉ%ÛNú!›Ã£g·OúCng/ºý4ww-7þۇþÿ°Ûýá?îûÝo»àóŽ÷ó½Ëü<ÝtÈKRÇg;µïO6þªíÚ^Û¥½®ÏU—ïV§sÛï­.·ÜŸ~Æùßs¢ñwº<ærz;áòؾêû?ÜøVÿ _ÿý+ãùzÑåþÇóãö±Ûúx—Û7ý9ý*ýýýöŽ~Œ~ž~ïð¿îÖ_÷%·ãón/ç~®ñ±/ä#>O1>'ߌ×x~$½¤‡ñãhx}Ÿ¯gƒxïõñè9ß>ã›Ñü‡}ì1váa?_Þõqµ§Ü˜W Ø;ÂÇ~íw¾ö~®ñjü}÷î½­ñ)_¸Øåzý”ïgžb‹íÕVÛ…Í«ËEçÛÇ×ùúöiŸØÇ}ýêûÒžxþÚõVçÜ=o>~Ü>íå‹¶³ô+O9=Ÿwû}ÒåúþžúºÍö<ŽÓÞ®ûpL»`<²ì|R/q¼G{ºõÍã×ÑÏ?ÏüN~8ÔÓ¨=Ù§¿£çºk]ÌÓ|ÈáúOO½ðœsÌvéˆïõï‡l¿z^f¿¹Ûÿ ößÔøû\ŸÏÙ>=ãy:¸"_ŒŸy®¡iç/œ/—-ž¤<)ß8N¦=¿3œO8¿íÉñpxÞ¡ü —zû²ÏŸýå×|~ã’ï÷yÆÄ÷¤ã;Âù.4>|ßêô¼Ä|ÆÅƧ¼(ÏѼäÂxººgþó}ÆÓG¾xžÃnð<Ïï7,Œ§{§ûµ»Ýޱ߱~ÉÏ£¤k£ã£ŸˆÏCÔÿO{˜ñÕ˶ñÏ»ݺqßlÃÊxúÈ×qŽÙî³½Ã>Ã=ÜÝêqéÝæ’qùkÆóñöàÃå^_÷Â[Æý»çùº{î–WÆÃ½i±ñcùâ3ØòAøä‡|ÒOÆçÐ8¿¸®£|7Úßàß)ÿQ¿étQî„Ës5ñÁõÊséöù#ÿËãùŽé…ï >úÀÂxz?åp¢!½´Û á÷×á“ß !_ÑþÇ~ô_g“Ÿ»>áp°3ŒËΞk|Æ5§Kã_ïãcÿ³æ÷ûî½>þ¢Ç‡”ãÍË] }‡ü\ÈãcÚ7.-Œß‡ˆóª‘“6?†C¹}óÀûcÌùÈëw¶Üç+ã8àËßÚø/Ÿj|¸">Þ·<äòeœŠÝ¥ÒŸSž<ŸòÜØ9ìé’¯cÜÆ8•tà3.`üÊ<ÖRð#'pøîpÝuNÿ±#ãéºm±ñ)¿ >ÿaûqÞ/Žß™_$¾GöÊ>ãzÞ¿ýï‡/ê‰ø(gÆ×·­Ž_Ûùïkñ±'´÷8¯v¬¿~ÅÏo´ê—ø°cß~¿Ñç±G”'ñÇ÷3øä'öÏ'Ì;í~(§8ïÎýä“ò'ï ×_8&}pß/aÇw)äƒû¨òM¼¾ÐøÌƒržyÿ—Ü¿3žÁþù÷þŒ}Ïû1/Þï‹Nÿ©Æ?ëqó9‡ O´«ƒæšr¡?ež/Ú1æã{‚ ¾ï¤ybíVNúyhóÅÆ§^Ï=ÒøG<¯¿ì|À÷!ópØãú#yãõó!vŽzŠí'Ú[®'_ñ=~ä‡r#üg=ÿA¹>ë}Lý’ìb|>{ÜóMدخxþå„ßósâ¿?<ˆß<˜ŽÚã´«}ŸËû”çYîs¼Ïù½Û£n7§ü土w±k‡ÜΞó¼×9ϧôsó´ù9è˜Û/óƒ›ÞýûÏ<Ïy”ë!·óýÎïV§s§íµ¾nÅóô»ü>aïß°ïùÂÍþù!æxßáç¿G]^;ëó8ܳ¿£ñOÿÍÆçýÅ—ÌÏòrãc¿O»}\ë|õ|ß©Uûž·å9ô”ç7O{Þ£ï;éçø“Î7íú¤ç)Oþ³Æç}É;¿âô{ȾÛ=ý5ýÓ£®£~¿~Ôó5­ÝŽzÞóç÷ësß¿iü½®÷n×p|Àó›\/<µßóÌûßfßýçþ¿âpÝî?¯:½{ÌÅ>O?õÈRã?ó ã÷ñû™Ú÷û.ÚÁéÆ0ìð ×ÏhÜïóØAÆ+ܯôרŏ>‡óØ1ú“CÁùuýï£üÍ;vód=O|~ n éå}ùI?OuùÇþ;I|q¼ÇGÜ÷ÊïO×ù4žß Žÿöåñx¨ìýï¯Qþq0ã‹C¿¢ñéà™ô1_I{g^—þ‚ô>e»Æúê·û×GlÿVlw·øºG}>Žwé)ÇÛìS~ŒŸ¹žôé•_H/å@ø´sÚá·‡ûã¼ åç!‰—t1ÿD8¼o^òñ;Ãõ±]âÇuEq^ðy×ME®xN Ý7Ùí2>ÿÁù'¬Ã#}¤—uZ„wÆë&ޏå½åzÄvþ€ßÃ1>Ù`ŸçÎïu¿O»dœF?ÂúÍ­?;餞¿É>ó*\ÇóÎ&sĸûI·ÛBx¼Ÿ»qe<|Êo›Ç»Ø-Þ÷óû’}8Žö"ÎÛ>f;¾ÅãÑѼ•ýï ÷opºâøŽúṘñÀaÛæi~ðy¾óŬûâ¾O,6>ëpHí„ú|g8Æ'··üN{?êqõ?Z‡²2~þž ¿ê÷ñù÷üRãŸsþÏ4 X:íûN?ìø<yØöz_°§ŒÛvºžvºÿÞàøžëþÈÇ’ýØ~¢]ÀÞñ\ÿI§ûÚåÆ?âñ,ó¯\¿úÖñüžù1§ËÇ´ÿƒ÷Ç÷ô?+0\×Ó~o»Øø¼_:íuŠÇÜ?èqÑñ§»Žzž™u±<çm\m|æõà”u±ßA_÷9‹¬4>ë=V=^`^vŸŸOx/·ÓãÁUçvØ.<íqÕãžw~ÐåýÏ?ÀzŸ·ïõÀñùœöLÿÍûúí>ŽëU)çC^ç}Èá÷{¦#~î}ÚïW½^e—ÇÅÏ:]Oûýη‹›WÇãyÚïýhwÄK¹ÑÇõgô;Ø3ÚïíwÛŽÒ¯|ƒ}ì6ã¿øÞ–ñ×ms>yŸÉx ž°kœÇ~2ïO8¬W¾ÍçãúÊûíÃ÷(|ûÄá³n.Žã8€ûIÏh|BþíÃé‰ëÜð£½ó®q^"Ž¿ãû êŸt2žá~ÒƒÝ ¬Šï‡éwÈ?ö#ŽOÈÇ=ö)Çß®ãÒÓI¾biü¾8^!=ñýPïÄuÔ/édžŠñX|ž!Ì7ó>9Ö'ï÷¹þ€¹aœß08ú~ÂácçÜóæñûy¾¢ÝôûDÊiÓ‡}:ýO{}Ãâx~xß '´³«Âñ‡Âõ¬¿#^Úí‘ñ$åMzãx{A?@ýb6„ó”÷íÿòxü¼¦~i¼w ?ñwæ§©ÿÑûípüá||Ÿ‚ÝÚë~–uÏØnïð|Ó¾Žõxñù4ÎwÇö¼dŸr<ò¦ñôqù=øëÇãáü®ãçi_¤c¯×¹­þðx|ôç¬G¾zy<ì4õíæVû_r|¬ÇÚï~íy×öúü²¯šñ€ç!_d~í¢ïwÿzÐÏ/·z¹Åõó’ç‰OýÖÆ?êuEÛÞ3Î÷s~`þn«Ë…~ˆ÷>_t¿%3ï½Éãªû=.¡½±ÞçóÎwl±Á§Üá¸>rùáüèùÎÇ·ß[¯xœµßógØñ}?0ù´ç͘_|aãxúâø™r¢?Â>¾+üNzø.,®×8äyêë/Œåï»÷¼ò£ÿ|óo}嫾'"<ì5õxÏrãÃÙ=nØ¥¸`Ôo9ܸ^%¾w¤Þx¾[ö1ß ðyú©~®Œõ÷îàÇ~»Ozy·î[½y<|úAÚófχò\N¾žo tT_ÜÏu|7²Çí}Åí;®çë^HW\×ç“Èüì}ëø}[Ì×h~ie<Þ8ŸŸ±sßÎÁù¹ÁáíðúÂ]ß?g;rG“ÀQùÄ÷kðù‰ Ï{Mê÷˜íÖ^Ï;Äç³½ÚêyT¾ãz,¬·á{†Ñ¼”ãYòqüŽ…r‰ë@FëYýœrÊëèžôyÊñ'åL× bg°Û±?<ñåñta7à*Ž7ã< ó`×.7>ýv´{ׯŒç~Fë|Œ}‰ëícxä+®ไï’Iç»Â}ÄC~Gã‡Ã¼8ã´/9¿?>OÄùÒXß„GçÅñô.‡ôÑ®˜GÇî‡io´ÇßálZl|æ{˜OŒãÞ]ãðpóI£çuû”/ó\ØwÚ ö†÷ïÔØ‰Ï¹¬CÆnÏ™—ÿ”ב¾t±ñãs í‹yì$õÆûûO®Œ§7®« Ÿdý.\aW°gqüÎ÷R»>Úwl·/:Ÿ´ÒGy~ry<ý”×mùàx¼ðG9?n6¿m<þ8oñ„¯ãû¢8ÿ°dþÞÎÇçÖÛÄõ qç3¿<ãß{žé Çá§› ˆÑ<Ï‹~8æqѳî·:»yîþéd³ñ«¾3ˆëFFïÝH—Ë•òæû±8îÏû”'ëJ¶¿s<ßq~“òŒÏÁØõ­ž_ÝâzÙâ|R¾|OƒÝ¡½Ùþ™óãéæyu´^Ý~\7Ç×ðË)Î?åõ±¹ßÞïøwúNY÷Í÷h›WƒÃ§Ýæ'í?ëçìÞl'W½Îp·ãƒ‹}]´¯ä‹þ€y¬8ÇÅÑë¶y€ýŠßoâ߸8~üøãá|Îã¾ ì0ã󸎖ø8Oøßü¸îxô~Â~|ßö¨íã¬øþ.¾‡;ìçêïßSy¾–çº-÷“Õýת¯£^¶¹ýÑÏ »Þ7ø÷Ÿgÿ…»Wí7ZúÌêx:y>ë6é÷ã|A\Ä|îÖÅÆÇþÆy}~rß1úú§œ®·øºø]zOS®ßhÿI?'ÞïpãzAÒ¿âvÄs >Þ'ðû‰Ÿ»Á:_òO;ß+l°]ºfqü>Ú#éeþß±¯„Ç<9é‹ãÑhÏáûÁ8ƒöÍz;îÛâç¥ø~0|§½0®q•ø\Òâz®[¸äüп¡áýmRz†¦#¦}Ò¹!÷ oˆ‹×®gØ]e8M{èJ×s³äiaaXž&¥yR:†–á,nšüÌ’Ç!Œ\šÏX&±<æÑÆÛò¯oK׬å8¤ LJo_Z_/ÓÖݼòüz/·¯ÿ ÿ›Åæ ¹Òo áþ6»¯WÛµëõ×ö4v¾ïºWßïkùë²³ÓØì¶ë‡Æ=´t¥+þÚ¶ÝIo×}]áMÓ_ ‰w-n¡åÿÓÔÿ4×Oæ¥e0í_WX—Û É亘t~HYµÕmW¼}qÄ´´åi-í.†14¼!×Åk¦Ië<Úã¥÷ IðÚêamµ/“®ëKïZ~¿’þ†òôFý›ÔÞº~ëkW“~›~—½‹ÇC8î»~Ò51=“Âèûkcihú§¹vš0çw¼&æÒÿã¹!m%–ߤû§)ã…×ô峯œ†¤¥-Ÿ1üYþ†ä©ëÞøÿ¡ex%ü Ië´á]zÿ¤8†”KÛu“~kk Cò5´]OÓæ/‡›5ÎIå8éÿ“Ê«/þvÛßzå¯-OCŽ'…5$í1ÎIeÐÕþbØmq¼Vk)›µ´íiÓ4k»˜gZûŸtM<‹áÍRCÒ6Ï6ׯÂÐôL khÙöågh»è o–k»Ê!¦¯+Ïño­éë+—IñLºfH;]KxCê³/¯ólïCÂÚ§©ßx¾+žióÙ•¾ë×â&øó¿-Œyþͳ}õÝ?KÞÖZVÓÖÝ¥®Ñ¸ú’×"²f(îÅÇZ×Ñ·+ÿœ×”±Ö޵䬽zÖǬ­b¯EÖÄ¡%ÄÚ!¾áCãŠ5I¬徫Â1ß~¶í1×àµý÷.9êo(и:èµ´¹¼îñ[4®V½w×l¢qÅ^×,5þþƒ=öسy›¿)ßáµy;|þº¥ñt¿¼Úø£=o/6~›ÆkÇ('Öò³F•µ¡h\ñ{Ô¸b-=Wñ[_¾±Žk8ãà¸GtÜ;„µj|Ëÿžpíd¨ÆÕ4¶üMäí«Æ{~½èúÞíú{a±ñwxÍåV»ˆÆšTÏz ࣮7ÚS›Æí®M㊵vgý­Í™Ûøû¼·ÐF§û˜ÛÛQ»‹ï;â=޶ûü~—#Wû¾yüü>·çƒn/û½{ ö^‡ýMVÔ¸:èoéÐ~¢žøVrŸ×¦²Ð—3k8ÙË·¿‚«6«ÑÚoòknØK„oÖØs"j\}Ñí$îõ‚ýCãŠzbMeüöfô óŸ[þÒxxqÏìWÜ»•oyâ„ûþpžvöÍᾨ™C9³FõÛÂýìù¿mäzÒ‰ý8ó›þϸý²ÇÎ;Âý¬Ù%|ö$9éo„Y³×bŸzçxzã·¥|“‹<æ~ƒvA9bü˜|Ço 8÷:Fã*Öç‹o?æ¾Õ³ãùÞ¿Øøû¼Çßþsßæ2jNñ-ñ®úe¾¤¼â·îñÛܶöÊùø­GÜ«rß??~³ÏžǬé¿Ñ#|ÎG+Â!=qÏ.Žº~ÑTØ×x¾âžéÔÇ&Û!4®èi'|ÃÅqÔ¸zÞ÷Sø|Ó÷Þ¤;½¿7Ü7ÚkÓþ·Úßãxx”_üf&î™]ÿ.§ 4®î[l|xŒù <4«,7>¼]ïcêã ¿Eßéon¢Æí‘ð‡j\ÁW´Ã¨qÅÞ h\QŸ}WØqƱýÃż5®Hï¼4®¶-5>ãò;?¸N«qE»ç[ŒïS«N§¿‹W´Gêò{‰Çq:ív1œ÷áK¸þmáwÎ[øý›Ây®ƒƒ·‡ë¿%S¸žüE;í+Woçãž'‘CâCã*¦3îíE¸ñ:ú϶qù`ÏròóÝáúø-æ7†ëb½N¬7Žã·`¤—û¿!Üýï ×ýd[}ð­Q,·ø-w¼´7?{¥®LÎ_üÖ)~K¿ùŠ{;}_7jzÆëãïÄsUËqìïc?ë…zX´ÿžpŸô²W1v„=ŒáŽq{1Æ=*¶y¼¿yåùûLzN™ö*Bã*~»Ç“QãŠqÔþûÆÓ»×v9jY¢±×ã°X?VÆá(îÊy4®àŸoéØƒ…ò@ãŠð±—QãŠoYi‡OÙþo[nügüœ…æáí'_ŸOõÛÉh\4®–üûhÏ×ßæÕÆoÓ¸¢®—ÆZ)´ öÔæÛÞ6+ÚÍ™f@8Ú[‰ú=ëx˜G9åqÇKžo8áò¤]ÞåzßLÂ'{2^ˆÚ-G0–Vœìqäy´§ïg¼wÎ_¿]Gã*>'Æ~;ÀóWÜS„ûã·¿q/äøœB8?®Góy›ÇaÔW»V«Œ‡FÓ³¯Œ§ç wž½Øø”ëÛŽÆÕ6×{‹ÿ„¯ÛºÔø·:œ6«%ûðE½RÿØÇ3¹ñáï´÷ ÊùŠõpk“žïþÅ…ñüÖ ã×Ó/Äçû¸,{Ù¿%\Oùí±‰Ï‰Ä³q¹ñѸŠ{ °ÇƳo/æ“éçFßÔ^hüϻޗÆï£ýá_~Gãê¼÷ }Ø×ö&²¶ùÏÒ9×#årÆv…vIúâÒÌ·ñyô/#m1Û¨qÅu/úùe´'²ýY5®^ùFûÏ7þA+ŽöëùÿØø/[Û{zî5>Ú¨ô+÷:|ö'g]^gš ºQû¾ÝßRÇyùø-ùK®ŸEÇ=¥ãøy4¯óæñãx}ïµ½ø®pÌõ<_ÈÞœÿ@¸Žøw[{–öñÉ‹ã×ÁÁN/è"GØ Ò¹Ý{m=íyIú ¾‰Òvi‹Ÿ“ѸŠZXô+£þëÜäôaѸŠó+Ã<WÌÿEûŽÆUwÇz%}ìY|柧vyUË}¤îñ^Àã¼}»ñ¬4>ï?öúúÝ_îúØx¼;ÜžŸsÿ¹ÛãÖç¼×Â3æm´õÂøýº½ÒÞú4®FöÒþÙ竳~ïÁÞ<س‘ö‚ÛÃh¯•ÅÆ¿oiü{²‡FW1^ÙãÞkœ»c<½h\Åþ9Ž£¸ž=Dz~†çÔhÇ(ŸU¿§ŒšÁ±>7m¿ŽpŽn<Œ{7¬Œç{Ï7ŽÇÇ…w.6þwø¾Ó¿r<ØÅ/y¼ýdHá|ï…ñóÛ­¹J; ]Ñ/ò\Àï_5ßo+ÚW¤ «6í±>«ý¯Œ§ûÔ›ÆóÅ<õqümãñìµ–ãÂ]«ÆÕ©ûÆó}è‚}?_a'Ѹ‚wö’‡ûCÿe<½ûfüø°ßc²ÇöAsVç±{/Øc?h'h\=æt=ëëâ¼ÔÓ;ÇÃ¥=þÇÓ…ÆÕÓÖ˜xr¹ñi'Q³2¾Ÿ‰ö2j\ýó?«ÆýÊ×5®¿Mã*Ú?öþót£u þ}Z«ÑóÁ×5®št¾Î4®àšö‚Æσô¿ØYìWŒиŠïCžv<'Úã)Çsbµñã{Köß°âôا¿A³ýZ‡5®¸«»——íŒõGÌ“‘ïŽöŽCãŠò•ëßÏÿ‹æü‹ö—|žqÃHKÓñ qç™>ž÷á˜ë^¼q<^æ{âsà~ÛÊwô\àçØ—Íx>©wæ+éW蟟´}Žé¬o!}C5®N¸>oÞ^òu¼_FãêŒË MS¶ûKþre±»Ì×9s{ÎógÜ^èON8´³ã¾ÿ„í1ópÌj&âFvœ=?÷z½RÔª\µæ#õ:šg7·ôï;œÞÝæ…½ ÑØ¥ÞxÎ&ßÔ?åE×›á?êöÀ{¡ÑÞ³öé¯éw8fœxëÊx>âÞ–'=.Y\÷Û4®wÀW¼gݰ2ž~æåâ¼㳨€ÆU\—ŸS˜of>æÑ¸ŠïAãüa|E¾ß®hi<»ÍáÖ ÝÔö“½„ÉÏóÞS?j\½Çñðº¡Ë§ãÛ`ÿ¤5™F{{ú>æ_x}WŸg\f.÷_l|Ú3Ä÷×£½Ý(gÞ÷½‡^Zÿ=¾_ïÕß®K8Æ_´?Z§är¼ÕÏYqoU4®¨ßѼœ5®búÉç³ìy»}<»7Œç‡çkæ‹®]n|æ¿ã{K4®Zmü¨qõ„ïg¾è´µO{||ÔõyÔ㉨quÐíq¿÷Ô]ºÐø”;ùe¯Eò1­Æíi£óAÿˆ˜VãŠ=^Û4®˜Wcâ´W”?Wq}Å!×÷†•ñëãü,édüÁó {ÓO̪q…|ÄéGã Þ£6þ’}Ɖ£uˆo¯yCãŠöÌøá·#Ö ?æz¢Ü™oY}rü~ì(P^qÞ…=¤ãÞß×_lü¨qíLä³í|\7:².Gö ?åçÊó¸û½£®·—ÜïžðºâãGœpþ™G<ìñÈAßÇúü#¶OðpôŸúú«ÆËçeìûÅÆÒíùŸ°/ûœŽý_¯zœtÀñìõ|xÔØËxùì÷x{»êñÀ^‡Ïž¾«¶¯‹¾nÛIÜ{±=n7£þÇÇh£¼àöGÏù<ãg=¤ßfï^ÞÃír;bÞ‰õòÔë³®7ÚÝÝ+ãùFˆõqì™Ëñ;Þ»lu}E«ƒN'í m<âyÜù~ÜÏ=ñù"®‡Â¾ qûO®ëÓ¸‚+ì<{’Ç~<®³ˆýÔbˆ;óÖ–ë˜ç‰ï}Žº]r¾â<üî°7>ã¢{ÇÓMsâ•ñðŸÿÙñߟ6¯´ëçÇã%‡<§|rµñ_ áQ_Ój\‘?Ö¡ð]ÀîþÃîg)Ï8¿Ç1ãªØ~¨Ÿ¨quÀ㛨™'h\-.Œû<—ÄõüKöw\hüø Wqâk¥q5ZÏ4®èŸ£ÆÕH´Iب¼©Çø>lŸ×›c—îµ½=èñ×´WÌoñ\ðÜß?~ÖÏéq¯û»–?®·£m7gØmÆ›ñùôfßÿ¢íäZ5®¢FQ|Þˆó½¤k¤yb?®'áû44®ÈçŽ&¢‘ÆÕ3æï{œÎ]Ë?Òô|×ÑÕÆ¿É×Q®û<žŽóq|/·Ä±ó‹–Çž°þ`§ã½ËÇËö£ÆU\‡È<{ŸŸÞ6^¤“òa½Ä1¿gŽënèFó çÇÓI¸#m¦ &õ_Q#ƒôD+¾Ÿú”Ëa“ç_h¯¤ë:Ç×sìßr»{Êv+¾«Cã*Η³Þ»Âz¾‡¡ÿ'¼g¥=G+ž·xŸ:­ÆUœç]´Æí ;ÆÜ<è~¾âúHîÇþ³N’ñ(ãú­á=åu¯¯kÓ¸z|i<þ8ÿ2Òæ±ÿýÁ§½,ÙGã*>—pL9m^Ï׎ã×_»<žÊ;וÓÎÞΟÿ¹ñtŽÖ­ø=Íyì¢Ç›ç<ßÌs×£ŸÃ?ãëã|Y\ÇKû¢]Åï†)-ËãçGZc>æ½3åöNÿÎûžØŸÅ÷ð·­Œ‡çë⺀8î‹ï¹Iëï°K¬?£¿å<ýqÛwÔÿh½×-ãé¥fÑÇØÇØïÚS˜ÿľ}8ÄG:Ѹ‚›'>dŽ÷½o<^ÖѶ]­ÛôyÚóHkÄþ韇r'Þ¨ÍøœyÙàðúýWÜ¿ßýRGÄz |4®žû™ñô>Ësó‹Æë~$„Ãs ßQ®»}L»%¿½2žÎÑ8f¹ñGïCX¿íë_t=Ýæþb½4®â:³§Ãº.Þ;²>æϳa—Ѹ¢½¾Ûu:Ï?õü Ÿ¿Á>W«‹öß9éÙ¸äpmÏà©Mã*~?D;Ç.ÃWw_lü—¼ÞbÑ¿ÓþéY7ÏïÔ+ó¼Ÿgü°-´—¨qEûˆW£udMD£ï(—».4þÇÃx”t4A=Eãj4ÿâÍÚG[õqsÏz.òKÿÃwšñ;3xà;ê}z<]o×Ýäð¯v¾ï¢qÅ{4®¶yÞ2j\íó{üí~þB;8Η¾ÃñÑ.™'†÷8î¤\˜÷aœEy2nBãŠ|Ç÷q^ãJÕ¸úâbãßïrý&ùØòÖñüìü“ã×Í[ãêÛ·ûþ}þû¬¥]E«;ì3¯‚GãŠyLžöúy…öM{iÓ¸b~ŽñÛÁð“qíæ_W|OE»ã|ÔâóЇý]×IóÐö³Öß§½oaÀï“òÚÆ4ùˆÿç4e1ôÞ¶smñLJgÛ} îé«“!÷t¥ùÒó“Ò3)Œø[¼oHXmeÖõ7͵k ožÖËõ¥gaŠk¯dw¥¥}!øCËýÒ¿I÷Äp'Ý;MÚ†„ÿúâê»?†1ä¯-í“ÒÓuMWÝLº¶¯µ]7kÛ”ö¶<¹6žï‹oÚ|Å{â}mç¦-˶|´…Õ×»Êz–¿¾úékGkiS =ÿçÚ®‰ÿïºvHûš¯w_ýOJç6ßv][1Mñú®º˜~W^†„ëJW=Mú}RºÛîÒöÚ~o‹{š{‡æihö±Òõ×–¯!þ¤ûºÚõ4m¬¯ &ýMsíåú›G¾ÞhCx‹×M #þZ;ÛÅÿ¤k‡Ú!aO“ž¾¿.»×uý¤¸'ý¨]i«Ó>›Øvÿ¤4´]?4ÞxÝÐû»ÚŤÿw÷Ù€iÒ?‹‹ñÄÿùk oRX}ù%¾!ípšë.£ïú6îûÚÊ´N[o]éÊÞ´í¦/_]ië»·-¼I ´ÅÑWma õ»þßÇ¥çÛêdH¹MËùPæ»òÓÆø¤0§ùÒ^cCÛøZÓ6)mÿŸ•“Kï^ »/®!ñLÛVb}çû®iKWWZ§=ë‹·-Í]iìú뻾«Ü»Ú÷BË5mqL {Ú2lKK_Û™”Ž¡y½ô·…–û†Úƒy]Ûv_Û5mù‹å²–pÛâèŠkÒ=]çúØú7$¬!iŸÞ¤ë&…^WM{m[þºÚ_Û}mù˜ôû´L´Ý»mÜÏ£½MÛ¹®ôuÕY_zºêa\ãŠ5oÛ.4>kŸYëÊZ_®cORö$@ãŠoŽÑ¸Úão¢Ð¸}´2îÕ+ÖN±û¹Ùøgï³·Ík¢O°gˆ¿ :áo³Ø«ã„¿Yç›Öޱ†5v|3p¥i\=àø^^uºþœî6+¾é9Ç·k¾¿M㊵k}W¬A;ó•ÆGãê“‹.¯;…Æ”¿-gOÖæ±&v“óÍF¾å?²£ñi‡]WªÆkšÛ4®X;ܦqõ„¯½j\Ñ.ÖKãŠoBîrxmWg~·ý«S^;{Ük½ïtxh\÷^rìíuß…ñ|²'0k‚)4®–}ž5–7,5þGì³·k`Ù;‚µÓ|›Äšeöza­,ß~¾õ1kkßÎSnpwãÅÆ§\ÙãåA¯={Óx¾à¯OãjÉç?ícì=kr‰7j\}¸¹ñ«4®¸Z+ìW”ås-é]~±h\ñítÔ¸¢|>àðú4®Øk‘5¾h\‘oêíZûØU4®8æœQ>|ü“Nwüð£Ž/~ƒ ¯´3ö ¸É倯Õ+¶W_v>èèOи:êo^Ù=áX 5®>çóppÊkÀO;¿'ümL›ÆýIÜî¢ÆÕ÷9ž÷_÷i7mWñÛç¨qE»ˆW¬áŽßD°¶~ѸŠý"õ÷ ¦Ýa×9ߦq…ݸv©ñùÖ~íeÔ¸"<4®È_ŸÆ{C¾lû:Tãê£qÅø,j\a÷и:f;ЧquÜåtÜýÍf÷{ÇïS|³íþi^Wûèßí_iWÏ;¿Ój\íñøâöòSöÝŽÏ™Ïs>ÞäqÙ9ï!Ìøë§WãÃÝýΰw´¿Í|â|½ÜˆÈ-=äóìMÄ^þgŸqþÝo¿ìvƒå›¦3ÎïvÛÓ÷`§è?é§?fŸ~oÇиzÌã˜SÍÇ£ošÎû{|Îñnvé?Ø;üE¾É2ww-7þۇþÿ°Ûýa÷‡h ±§ïaÇ{Èùfoá§ý­Úï¸xŸ¿ÙYµ]Ûk»Ä^Y«.ß­Nç·ß[]n/¸?e¯²=~ŽÙévò˜Ëéì„Ëcûªï÷7ÁVÿ _Ï·‚äëE—;{þñ-vûAïrûf|Ö§q÷6Gãê´µ‡Ð¸âº[/úë—ÜŽû4®èwѸb|N¾£ÆUÔ´ä:ÆÑä‡o˜ÇÀ®¡qŸ#j\æ?VÆÃÇ.D««}?å×§q…ýÚO¾¼ÍÁC¿ÏãÞ½~î¤|IÔ¸bÞg ß»þ6¯6~›ÆÕFûë¥qÅžÀìÀžÚô+O9=QãŠ=£ÆÕHÛÅñôi\1®GãŠ=aimW<Ñ>¢Æ÷ÑþÈïçù!¾™e¼ŠÆý8v޽d™§áyî”ûê…çœc¶KG|Ìž‡l¿z^f¿¹Ûïy€ýž·Øçú|ÎöéÏ»ÀUÔ¸â¹fZ+¸ªqÅùyk\mðy¾a§^©ï¨qE:¢ÆÕ Ÿ=nuz^b>Ãù ¼(ϑ֒}Êõ û÷ÑžV?;ž>ÚWÔ¸âyžßo°5®îv;žVãj£¯ëÓ¸úiÏ3¾zùÏ6þy÷¯mWðЦqµÁסqE}÷øà˜íî1Û»6«[=.}½j\~Ô¸â9:j\ñm4Wôqoe¾uGã*îÅÅÆmŒSI>ãƯq/î6+8|w¸ž=úû4®6øü‡íG+Ê™çæßî‡;4®×óþþ(j\¼3¾îÓ¸‚wîçx¨Æ×£!Ò¦¥Ô¦qu£ÏÇyШq÷à%ÿQãê„ùéÓ¸b<Æ\SþQãŠëѸâ¸Oã ;F¸KöѸŠï+¢ÆÕ‡/4>ó ä›y4®Ï`ÿÎx¯s4®Î{Þï£ï¼ß Õ¸:h®Ñ¸¢?mÓ¸b>1j\mð}ë­quØãz4®Žúù+úõõÖ¸‚‡6+Ö#,úº¨qE»ªqE»<âç»GûÙñtÄ÷Þ1_׸²ïùÂË¥qÅsèh¼îùŒ­î×yîeoدk\5þךÆÕ>O?…ÆÕ3¿0~vöÌGíû}×hï~k\mp¹œpý Õ¸‚רq…‚Cúé>«}”ÿ”W´ÃŽöÎûr4®ŽºüGåê÷ÁØÉ6«øGøh\‘ÿóÞÓ« ŽÿöåíöŠùÞ_bTÛÆÁ}Wp5®˜Ÿ‰WO9Ÿ¬o¡þ_oW´Ãµj\mp¸Ì?¡qÅûfÒ;/+¸à}ë¢ ×E+ö\öïC5®G1Ï5®˜wÍçôh\±oÓ¸â9„zÛëú§]òü ߣõ›a>¯M;˜yöàãy+ÆcOºÝ²®‘|ó~îÆ•ñpi—Û<Þ}h©ñyß?TãŠxÚ4®ˆ§UãÊéš—ÆÏ·p@{`Ýá£qÅsïáiÏÄÿÎpŒ=º½åwÚûQÓ¨ÿ¸')çï¹ÐøQãŠò;ïü qu¦IÀÒiß7o«¸iÉ~Ô¸¢|иây’çzæ‹®]n|žK˜åúË­q¹»íbãó~é´×)N«qÅsÞFçƒy=8VãjÕãæe£ÆÕN÷O«ÏM«quöçíûýãêŸuôß¼¯ßîcÊ/j\ò:oö>>î÷L³j\ÝìrŠW´?úeÊþxÉç£ÆÕh/å qÅž¨„;­Æö½…yŸI¿OÌo²‡4㞇¯wú£ÆU\Ïv¿}ø…o%ÖÍ]éW¤‹qÏzi\Ño¡qEþѸb|2«Æñ\iWŒÇи¢ýF+Þ'G+ÞGõi\Ñ~NØ^RŸmW÷ø<ý!ÏW#Í¿¿£ßÝãôÐßöi\Ñ.á„=Éyþ¦Ý}(\÷B¦üyndj\ÑOà½;Ï™<·[ã þb?‚ÝGãŠ÷qKáúUCѸ¢i6¸å¹«çý|5®¸ŽïF^k«‘ŒÃa½ß¼4®v¸]íòø~Z+Ê“÷Ö´k4®özÞù#>ÆÕV'иzÌö”zã{Ú)õ:TãŠ~x«Ÿsû4®ÐV"ØÃ>+ÚÍ’}4®¨·ÑúDûôS›OÔ¸bìÚ寧ߦ\é¯÷yʇvöƒá<W¬g`½ê´W|—ŒÆã¡WÌ‹“þ/5>W”SÔ¸:þ‹ãñP®„GçE_ÇïöѸ¢]1‚=ßé~˜öÆw…1>¾ÃÙ´Øø¬w`>‘qÅÈÞûºkãìÏ ô‡Ìó²^Ÿrþ£qE=óþzØãñó!QãŠuÈöïpsæåÆGãꥋ5®à€yž¨qÅûû>+úI滩g4®°´8¾iµñw;}}W´4®(ÏO.7>üRžmWð×§qÅúûÑzX_Ç÷EœGãjÉÇQãŠó´;Öñ~õµÒ¸:åþé¤Çƒh\Öû›Ó>+Ê›ïÇàrÞWÏ»CãŠþ³MãŠòå{ši5®homWQK;j\ÁyŸÆÕ~ÿ5®X÷5®68ž».Œ3]´ÿ¬Ÿ;¢ÆÕª×ò‰zyÐáÐÏ´i\1E½0ŽˆÚ‚}W¼`Åzk\Ñ?P_q>!j\‘~žWfÕ¸"œø|A¸¯7+ê™~+Σq5šgsþ¶:<ìïëMãŠ÷ }WØ÷6+Îo°Æï§Yw 'ôÓ<0>ÀžŒöÿðsÙ¼4®Xo·äëx΋ë~6;ÝíWÑïÛk¨o?§¾¿¶=ƒ.÷_WüCö*z­Ò}¹ÿfÙWk^ñví'µÐóû¤û/½§/¾®xûÒÈ×Ï31]C~×MŠcmåÖÏ4uÝv}[ûÒñµÂôzüuÕó×ÿÞXmöªÍ>ö!ÚlX×X£ï\ü­ïܤtÌûoHØ}ã®I×õ¥»«Xë_W}LºnÚk§»+̶¾¹«NF[X]áL cÒõmçæ]mÿ2^2ÒWwõûmáOJ{[þ†þMJgßùI¿iã—Ó&uÕC[ÚúìËÐð‡¶Û6ûÖÕ.†”aWšº~b¿†Ü;é¾YÿÖbƒ†¤£ÏÖMº®«]wÕÕ<Ëãõð÷zJëzüõµ“i/lc±/¼!ö¼Ï á£íÞ®¿¡qõ]?äÿCíÅ> ïþiãí «ÏµÕÅвì³iCÃìK_›½ïêúÚÞ´“œµýNß•ð×צfMgW½ ©»¾vÜu_WÛœ¶íLc_†üõ±Ãí³7Óp5ë_WÜmé닯ˮvå½Ïîuý¿í·iìsÛß4í´-Ž>;ÿZÿ ­Ó……ö¼ µçCâÒvÚÒ>„§¾k&¥«+­“ÎMSWMÃßZlúпiËa¡å·®°ûìÅвœ¶ìÚÒW¬‰oÓ¸B낵yì¹øYßÇÝ'¼f¯MãŠ5ïmWì!Þ¦qµñ¢¯ãÛ>×7ßìÞÃ^[^s‰6W| ߦq5ÚkÆk,תqõ%ÇÏž>Qãêj‡;­ÆÕSNï¼4®ØÓ,j\±6«=^«8«Æ{¤E«;}ÿ´W×­øxJ+Ö°²–+¾yÆéÚâúØî|²7÷ðšl¾‘;íã/ùz;¸ôŒíësì¹á½Êžt;bm-k¡_6¿”{UÕ¸:û×|Ýjã£qµ×\ qÅš]4"NÛ~œñÞ=|ËÚ¦quØßZ°—W§½ÕÉ?3ž_¾É}Èí«ã®ç¨quÄv`Åíƒ=Lyo0ö¤zÔ÷p?Úø}þ6rŸË«Ï,6>ß²}ÁßаVy÷{O¾!\u¹°gÙN·½»}>j\=oû´Ê^xþ=:ž5{½Ö>j\=æþ–5èìΞžC5®ÎyÏ­i5®nuø³j\a÷·;}ìÑvÜã˜Cî:]×8ü>«þ;j\í\l|úöØ»ÏíèÇC¿‹æWŒàš=»h÷|K‰ÆÕcÃ^ø;ü ç~·ßýì5cΰëì¥t;ý–Ãá‘/¸_¼ÖáòÍW|C…ÆùA‹ê ZN_E«»\NmW·¯¸\^§Wh}]k^W7_lü6+|¾ Dã »ð©E‡oû‹Æ{E«Ï:>ølÓ¸ÚÈïþVŒ½CFß&N©q5‡†=„£Æý,ß2>¤}Þf»ñ_‡ÆÕýæì§?j\m¡?œ“Æß´²Ç{©ÍªqÅž„óÒ¸â[wö„ßîöÝ«qåôµi\ñ å°V«Ãî_fÕ¸B˧OãŠoYç¥qu‹ÓƒÆšRmWì]±^W|s„ÆZÃh\}bÉ¿+x[o+úy4®žtø_²}9âzeAž¿ùÛÔ3¿MãꘟkNxüxÖí¶M㊽'иÚÏžÌÎ?ãÀÛ\NQãŠy ´,ØóŒq4ã ¾ C#mœ;ß7~ßÒÝáv„}Aãê‡×§q5Òn2Û–?j\=ãóûÉWƼ³·WhÓ^éWس6+4Aú4®ÎýÃÆGãêí²EãŠoÒos}G«ÓÍfËKw¸±×ü Û©“Î/WŒçú4®ŽºÙ‹ƒ½f£ÆÕ~?ç®U㊽”תqÅžêðÅø+j\ñmbŸÆÕN?7³w*WÏ9ýQãêž·Ù#ÓéˆWÛÜîиbþpV«³ž¿CãŠ~«‡m÷np>N{OöôjÓ¸â¹é°íón‡|=WŒïÙË~ŸÏïó|H›ÆÕ.÷‹Ø½6«§=¯°Ýá£qµÍí‹ùdž7:¾/º¾yN=êyßýÞÛ+¸ŠWh«pxÌ?ž÷xáü¿nü¨q5š?béñs›ÆÕu‹ÆßX³Çêí.—ÏØGãjŸÛW[Ø“e¡ñû4®˜wbþo^W<—1ÿÁs {ƒŸsºOÿ§×W·8ýìåzÆãUìÍ)—ËÝöѸâ¹ô„í=ó¤Gýñ OãêQ—ß^—OÔ¸zÞá Õ¸Âþ¤Ó¹ÞWŒûú4®˜@cï´íööôrãó¶Ùíø”û™¨quÊý*{/0ï|•¿œpÿ¾äómW´/ö9ê~¯MãŠù«ƒNÇA¿w8`Ÿ÷1ìËsú§‡¾¾OãŠçõ¨quÚÏahvÙýÈOgÿ²çѸú¤ÃCã »ŠÆÏ §?Õø´žWh}W_tÿÄ^ãìáÞp;<ÎÛn»¶×ý=vç%k›D«ƒn?ÌGQŽŒиZöù-n¿Ô+Z ¼_ŠW´ß¨qE¿vÐvp“ÿƒyçxžšvƒjÓ¸âýÝåÒ¸zÁå5®xN¥õó,WOû}WÌÏò5®nq¾Ñ¸BÛ”çŽ6+æW9ÜU÷}W9~4®»ŸBãj¿ÛWŸr:Ú4®g£±ÏóR´‹6«OûþE‡ÆÕÓnÇ<×£qÅók›ÆÕ—\Žh\=îöx¹5®>}¡ñתqŸ„÷uWŠÆÕ3>FãŠ÷w̰çiŸÆã„¡Wô‹¯7+æ…ÖMãÊö©Mã곮׻ƈmW_öz—¨qÅú’µj\0QãŠy`8$kÕ¸âýiŸÆ{¥îc*h\±~«½ÎOÔ¸‚7öŠå9ä9_ß§qÅ|óÚŒиb/Ð>«GÜ^Ù«¹MãŠþ7j\í¢_°}f½Åõ‹ÏsÔ¼4®Øs–½]Ѹâ=:W¬×;î~‘yã[l§Û4®xÎëÓ¸:äù¨quÐÏsQã û5®v;»ý|1TãŠçùGÙ»Òó Ûœîg(Çðüû¨û«G ××ñ~ð1?7ðܸìûè¯isW´O4–¢ÆÕi—ë¦Õ¸:êû7øþ6«‡~ækÑðyÁéGãj‹Ë!j\ö¼òIæýmg­°î÷6>f]ãs>Ïû¹{ÜîxOñ¸Ï£qÅzÊ6«³¿®ñïwúyÚíqe›ÆÏSh\=ãþu;ì£quÜë »yW,7>{Ø?êcÚå >Þëq.óqÌc°.ƒ÷D¼‡ÿ²×WQŸ/düøœÓwÖïÇÏø½ÕéÇíó~Ìïи¢íg=‚ësÛk›ÆÕ²ó3«ÆÕó‡ùÛÍqÔ¸b\ŒÆÕYsqÌó¦«~ß5®Fš+¢×ZãŠzfž%j\í÷õ{\ž}W·¹Ü¦Õ¸úÇß§q…VÚ_?o+Æ‘}WGÝö8+ÞƒG+Ê÷çç!òéuÞ[+øÙå÷œh\íu?ËûÖgõi\ÝïðѸbÀ­Ÿu€h\ñ¾¬Mãê9sÆÚh\Ѿi§×;4®h¬—ßåz‰W¬#]/+ž“ѸÚmÛ4®øÞd—yæ=ÅN÷ßh\íµ=Ùãôìv¾gÕ¸:o;Îwgb<Þcn·ÇœžûYïÉÞ׫n_;ܾžñyæyx_|œ~ŠuÎ×!ÿŽFÐfßÿ4ÏÑ~î`]3Ú3QãêÛµ6«Gl_£ÆõŒÆã"ìWOû>¾‹™VãŠçæ¡Wh=D«}®wæÝ÷ÙN¡quÀí¤MãjïÙñrèÓ¸Zµà{¡UÛ‹gÝÿï¸àr°?Tãj»ßìµ=â9ù«4®ÜO½VW|W3Tã »rµï;Ê<ìŒWŒß¯[r:]ßhP¡qõ¨í {_ó|ðˆÇE¬sb«[Öí¢ù²ßå†6¼4®hGO9”߽擽Ç7ñ“óÉ8‡÷;ó‹Qãêy÷§mWÛšû]ÿQãŠvyØÏùh\íuzÛNa¶ù<W:4®V=ÞªqÅüIŸÆÕi÷XÊ8»Æýè!÷÷Í_›ÆÕ÷Gh\]çü0.W¼¿e9ëmиÚàøYoOý£źTòMx¼ï½ÞÇhP qÅúh\ñWÛmXgÏz¿6+ÚuŸÆí}‡ë1j\±Îu^W<_õi\=ëðW™Ï²½nÓ¸‚/´TîXl|ÆñmW|Oاqõ¼YGÇûXÖÁ|z<^æ÷z<}Üóë<Пlv¸ô?mW[.Ú¬ãç¹a³Ë“zÆŽó‹ÆÕ#.ç¡W7:¼‡ß™ß`ßןýí>öûž“hwh\v<·8Ÿ§›Ô£y×Ï]ô1ï-}?ï иbþKæyvÞ‹õi\Ñ¿2Â÷^h\íòøñy—ç —qyŸÆãxæéyþ:âñÀQ÷£|ŸË÷;h”D«}.ìW[ÝÿÑŽöxüŽÆãX4®öØÎG+Ö·i\Ýçëîtz°¿Ój\=àð8ŒOi¿¬#@ãŠuçü¦OãŠù”¨qÅ:¾6+´{^t>X‡5®žå{@žƒœ_4®°¿h\mq{e^+úO4®žXlüÇ\ÿh\±.qß#ðÞ MãŠ÷Oë­qE?Á÷+¼žUãŠçÁ¨qÅwWC5®X/Èüù´Wyö°ÛínÛ‹6+¾;ˆW¼Ðø£ïœ–Ÿ÷Øå¨qÅ{Tæ¡vyÜ6­Æï£6¯Úw~îrüøú¨qÅú84Œžð8­MãŠùÞ¿±.+Ö%~Öùd=+ßsbýŽí"ë~Ñ’Dãj‹ëkÕß3Ýï|Ðð=ãé8ÿŒãÛ4®Ð,jÓ¸b]ï=öÛgæõŽ­ã-n‡¬û‚óϼÏm¬÷0¿<'£qź¿[œþÛɧÏoñù¡Wh”½VWŒÛ°£›}WloиúólÎãÊ¥MãŠqã‹Y5®(·yi\íõú7ú>+Æuh\=ïrzÜéù‚íëÏà‰÷å¹ìv;d~ˆï‹öï[ÌÝP«ÛÆßh\Ýîx£ÆßyñœÇþ1‡=ÏÇs¾çÍÚ5®†ìŸ4í>Óüu¥eÈ^BCöñêŠwÚß»örܵŸVßõmmá¶];íßвZÏ4¬õo-é™Gz»ÚS×ù>žiYË=Cùìú½m¿µ¶ð‡²Ñvnöo–¿Y9¿ôÞ®=×&ÅÓ¶_[[šºâl {H:ºþºìü¤ô ¯íúµØÚi_kz§m³ÖóðæÉBÓCúÃõêC.Gß4k}vÝ?mÿ2M|ký›¶ï]KùÌ£Öšÿ¾>mèý³p·–¾¤íÿÓ”éûÛ8îëGúân ¯ëošëÛ8\ïñÂ4mu2Ônγÿú7MùÍ+îYlÌ,ãƒõJo_=_zÍå(ϵþ­%CëeÞuÑeÛ_‹rǸbéžÅn÷ýÖßZîïŠÿr×ãZÇ ]á¬G^æ5Öx­þ¦M<×מ§½f-mp=ìÛ¼Ã÷,ýlßýkµÓü¾–ôÏë¯Ïþ^®øçÝv/·žw»¹\a {­ýí¼®[ï¿Ivx=Æ —Ƶ–0Ú®™ÔO¬5®YíÁz=#N;f™T¯±œ†ôׯÕ×N¦yöšåoã¿¡aMS&³ŽM§=¿žãŽËÕLÓÞâõ—cü0ëøe–x/GNsOWY¯µìÛ8_›Ÿôÿ¾pÚÒ×u~{]ù[ëß²½œk±ëÓÞ7®qõ}öÌà[XÖºöi\}Ök—Ú4®>±ÒøÓj\ñ­Åk¥qÅh\QNhñ´i\ÝíxØ âš¥ÆÂk¾Øc¦WãÊ÷µi\Ýàtóí$Ú ³j\=äøgÕ¸boõ¡WOx-ç&ÇËF¾åoÓ¸ºÅkÛ4®ðumWìI¸Éå5®^p>иÚêoѸB“ªMãŠoÆYc¹V«}ì-ätG«&˜é5®ö¹=¯·ÆÕ «?/«»^Ը⛵i5®îtxot«ëœ®i5®ØƒtV«|àx_+«/`'j\ír>‡j\­šÖ*ï÷ïh\±æ«;ÝXCþËÿrk\ñmøzk\ÑïϪqÅ·‚ûÍGŸÆÕ&·ËY5®ž÷ýQãêa·£Ïº¾Ú4®Ð>k¾ ¹›ñC‹Æ{…®Uãê¾ÅÆïÓ¸ºé¢ãw>ÐhDÛ©Oãj§Ç‡mWôû¯W«Îõ^Wì!Þ¦qõ1ÇÇZ|4®—ó-_Ô¸b¯—¨q…V'ß,·i\}Êå5®ørZ+´иbü5®ØË…½¾ø†‚o^6;ŸпYãê!Ÿgo¢¨qµÝýç¼4®øæ»y÷EÇ;£ÆÕfÇ3/«Oû~ö„ßeûЫqåoÚ4®vºýðmúZ5®Ž˜›Y5®Ž9½}WŒgç¥qu×rã£quØ÷·i\ñMøzi\meo·_ú4®Ø«,j\=ærZo«}ŒÆÕ6×7ߨ^iW[ÝÎá¸Oãj£Ëƒq4{ôòMXÔ¸bÜ«ÏÞHìÁòzѸb<öz׸ú¼Û×zi\±7E›Æ{öi\­øþ¡Wì5¸ÞW÷ú÷+UãŠç‘i5®¶9þ>+´ÖKãê)çë† >ï=Inuz†j\ñ­é¼5®Ø³åµÒ¸b|5®¶zÜËs;Üyk\1ߊÆÕÃN{NÞm.—ÏKãêÓ¾Ž=Ðç¥qŸ«{~Ô¸:Ky«Û]ßh\±7ô¼5®ØÛ,j\möï#Í(ç§UãÊ¿ßçûиb¯Þ¨qE=ÝêûØ{{¤qu±ñÙCq¨Æöb¨ÆÕH&ìñf#óK³j\¡ñ5®îõñÙ«Îñl_Ïw›ÆÕƒn¿mWì)ŠÆÕgÝþh—Qãj§ËékM㊽yú4®Ø‹“çi4®FýÉrãO«qõéÕñô^åß§Õ¸ºÍé»R5®_·i\±‡Æ´W÷:ßWŠÆÕ&s¼^Ww:=Øíµj\ݳä|´h\Ñ/^)WûɇË%j\1®íÓ¸ÚäðoZlü¨qÅ^šh\±×'ÏC5®¹ŸÿºÆUãŸð8òrk\=îô®UãŠ÷Ý÷_lü+Eãj‡Ÿÿиb½ öëq_×§qÅsè]ã >ÖMãÊékÓ¸Z±]~Ýk\9Þi5®Ø{øri\Ý·ÜøWŠÆÕŽ¿O㊽kߨWO9Ÿ¬o™·ÆÕmNWŒŸÛ4®xo{—ùjÓ¸ú”ã½Ò5®˜—œ—ÆÕ£nh\Ýät.û>úkú¯u«Mæh^W9]}W:~öÞœVãjÇrãßéøv{œ9­ÆÕç—™Ëý.çŸûµ>«ÏøøªqµÏ×3??Qãjƒó÷FѸZq?D{X«ÆÕƒætZ+æõú4®>ÇüæJãÏ[ãêA—÷¬W/Øò¾~»ÓÓ§qÅÞÇkÕ¸BcãõªqÅÞ¨C5®®¿Øøo+Öç£qõ„Æ{ÃÎKãj‹ÛAŸÆßW¼Þ4®î¶¿^Wìéûu+§oJ«Ý¬?â9ÚÏ÷8_—KãŠuÑóÒ¸¢¾®qåømÙÛ|ÙוÆók}ÿeÖ¸¢bþ¾OãŠyŠ{íÏKãê‹N§ë{V+æá£Æš@Œ¯Ð¸ºÙñ¯—ÆÚ>C5®¢qÅ:—õÒ¸ºÉñ̪qõ÷ÿ—Kãêsn7mW¼›UãŠ~—z‹W·¹>î2ǛȿÛ{Øóϧ\›\Ž´·i5®žâ{/Û¾«‹Wh°Þ¯MãŠ~¡Oã ¢nWQã í®Ë­quÜõ½ÞWOú¾¡Who̪q…ĬW·¹=°îM¿/]l|Ö§Ì[ãêQ§o¨Æïå‡j\ñ}WÔï иú„Ós¥j\1_Þ§qÅóü•®qõ„íç&Û½Y5®69ž¨qÅ|÷5öѸâ½ãë]ãê _7­ÆãgÆ=C5®°ë­quÒíøk]ãêî‹5®hÿôǬ¿Äηi\ÑîתqÅøbóª}çç.Çÿ€¯g<ºhÿY36»ÐHjÓ¸b=+ïßîYnü6«óЦqõ´Û5ß·¢qÅy4®VÌ+ï›X¯Ìx-È>+¾—nÓ¸âyz¨ÆÕV÷#C5®ÐEãŠ|G+´§Õ¸ÚâpßèW|/ÿ€¯£k\ñœ5®ž`¼b{8/+ìGÔ¸ºúZ7«…žÿOº~ȵ]“îïÛªko§®½ ºŽ'ÝÓwo_ZÚŽ‡ä¡ëú¶=ºÚŽ'¥gR8mio»§+}Cê²+®®2ZË5}õ×Õ&†w]7éÿ“Ž'…Ñ—Æ!áö•äø'Å9ô¾iîjC“®b[ÚÒÓÇþаúêgÒ}]×t¥£/ž!å×GWÝt¥£§>[ÐUvmáLãOJ÷vÓ¯éjÛCÚP_¹Îëºø{_ùLº¾¯®†þ a¤«¾‡¸!išÖ¡ Múÿ¤p†Ü3¤|»òÜw][ü}vphÙMÃáа&ý¿-oñš¾pú➦íOÛN¦m—Æ1´=·]ÛÕîºîé³Çma »ïú¾¶Ü•ŽIa®ÕnLJkÛq_}]aÉÏ´u•A[YwÕQW;kó»âVW8Cm‹{Hž»Âí+§!¬NŠ¿ïº®ÿù›6om×öñ9k:†\×צIß²Ÿ6þIç»Ê·‹ùIéêJï4ܵ…Ñv®ëš¾òï³}aýë*ó®kÛâïó§±MCòÓW[‹÷·…=´\‡r4$îI÷)‹Yls¼·/Cí÷а»Âí;ÏMû7«ýš5¼.~‡†7”ÕIׯß&ù]aµý>Ï:˜5¼®vÙgsúlVWzÛÒÒö¤ôNv×µméÚô¥µÏöw…Ñv®ïo¨]5üKïë«!öušzž¶žºÒÒç¥ç‡Ú!]yÒÿôå£-ÜiÛòж=mšÅ†ù}H[è*“¡ç†Ä=ô¯ÏÞNr1ξx‡0:)-ÓäuRîËCsmç»âŸ”¾®úŒ÷vÅÙe—ÚÂYK[î³¥1}“Î÷Å=´½ÎÚÖ†þ6ëßÖûîööºìƤ¸†¤sÒß<ÚÐP[Ñvßи‡Öÿ¥¿ÉÔLg¬ÑÉfpi8nkãi›n×ïC]wku}yê&•ã,e¼žiœ&/¤y½ÒÔUNüžL¸¶+MWzYK¹tµ¥iy‰q®%Ï—£¼†Úˆ.ÛÓ–îõ¶/ól[±ýOsïk™Ç+­_nÖ¾²¾¶ÑÆNW9ÏR]õw)“CŸôÛå.Û®t½Úö~x=Êëµ(“¡m©«<Ö;½óì篔6¶ÞÜ­%]m}½Êìõj+f­Óiꩯ®fa¶/¼¶øÛÂê³ëUÓ†3ïö°NûÊŸôN*Çió>¯ò^o›ûZ¸Ëe 摎¾ò¿”‹¾¸ûÂN&ÜÛeCÚŸt®Ë޼žúôXVCÇ)³äqV[téýmáMÛgõ¥^¶tÚòˆuÐׇä?pM‹±¼Ò…aet)ój·³´Ç!á´¥}Ò5ÓöƒmLÍš·×cr¹ë~ˆ›%ŽxÝP®4Múm’›Ô&ÛÒ:Mž/gýÌg[ÿû7É]Zñº$„¿}J×Xºë\l›±Œºîk»®Ëf¶ÝÛ–þX¶mé’ß..‡°¯’¦IíëRN.m[q¬˜,|uzÛÚ] sÒ¹I¿OªóxîÒtư&Ý3)ζôFîÚle?mí§­= ½æÒüuq3„‹˜IyŽç&ù“lL›½éã±ïž¶rˆõ7©ÝÆß³NW{iãkRúºlm+}v§‹­®ûÚò4©ýI[_3©½öµ÷!œtµ‡Ií(¦»/®¾4D¶b^ûú©Ií¾«Fº®‹uÓÖþÚê¶‹“IõÓmФð"k±®Úlx_{œ”!}ZWÿ3d ÓV7}¬u¥§«NûÆ$C™hk—“Ò6t<94Þ¶vÛU“ú¼X/m¼Nâ¡« ¶¥/öƒmmcRùÅ´µµý!c£¶zïúW}¶Ýsiüm×¶q8mÛÏ&ç·müØÅ÷¤üM²ÙñžIqO*û¡}óP.úò<©œºÊ·«]w]?ɦ÷Ý×U¿}}ܤú —žëã}RºòßÕfÛúÝ>»ÜUfmvåÒüwo.e£­ÿe0¤íÅ&µ½¶ú™4æé+µÙ—!ÌLº·m 5«›Tþ“ljÎOº¾«mE[ÞÖÎgÉC׸gR»š”þ>Ûté½CÒ<ÔVÆ´uÙܶ1ç¤òíKwÛxhhûìjÏ}̵ÕE—-RF“šæ\››&ÌØ®ÚÊxRž†pÚÖ_ e½­¯ëë#/½n’Íd'Ó…¯n“1ÿ1¼®4Nj]öº­.ÛÂhëKÚìK[ÝOÊcÌ{[þÚìc4¶ÉIÿï+ߨŸµ1ÝfßÖÒMêƒÚìGW;mkm LêëºÚXLߤöÓyèkÿ1o“úÜ>»4©=wÙÛ¾úëãRYM*›¾>¦Íî 9ׯLW¹ö±ÔG[Ûh³ßm¼ô寫 -ãhÚâím(ëCú±I¼M*«Iõ8©ÏœÄ@6ášIùŸÔfûXŠÜÇòo«û®:ÚŽúú¶Iv¢Ïδõ_“ʱ--]m*¦mÕV.]e=KŸ3ÔuÙŘþ!ñ¶Ù™pí«KzÒ¯,Œ¯ Êßýžw\åÿï¸ê[ßÉAöÞWÿûê=÷$ ]+æYŠ]nš°.w­Nsýår³äg^T¬¥ž®„´M“î!„¯µ}^ ù­ÛrkWZ;˜”¶×Ú¼–öçJqWjºbú®ôtÎRÖ‘…y•S—}˜%mCÛˬy˜dצefˆ]ìËï$Û4é·yÔ×kíúú”iÛ@_8mö–t¯¥mõ•C[}OSŽ_+®‹µyÇóZrñZ¥eÞùºíuZ~.Wž‡\7m¸_kîµ°-“Ø»ÒlÆ•ìÖZk­«YÒz¥ÖãZóõFtClþP;üµTnó,ÿy²òF)ó¶r‰ýHWž§9?)Ü®{¯Dûv%»õ(«®¶1Ï8ÚÚY{9éxÖ±ß<Ò×UóJÓ¼Âx£=¿¾Qò0/giku¯uù]®¶ðÿw†;vdžeAòÇ@žÀO pª§§»‡Ç€%”‘À/dWОú¬»÷îRð£Ý{§æœé¯zˆ:<¼ãzÿáÉŸÇï<>ÅóÕ?þ2úýß?üôêG}nýãÆ-eöëï|îwÏ×î¹EŸ:>·ŽÆqá¹ë}miÜòÝ{®õ–£Û­5ñ%îésuó[¶æ{,è–ãɽõùÚ½yi}/ýì¥#Ñ-{ôkŸúÝçêô^FŸkw/íós×pk½ÝÃöKµrk}~i»e>WÇ÷¬çS÷÷s÷ð-µ÷ÜÞ¼tÍ_ÂWnõï×jݳî×ÜÛ{ûåKÚ÷\çsßyéwŸªÑ{kâÖÿ¿Å_~½æ[®íÞ=ù’ýõžÚz͵ÜÒ_Ãÿ½ŸyIó5þyëïoY×½5ð¹ï¿ÕËní7·ÔÄçjà­ýðV×Ü“{™ý\]=WoÏyÙs=ò5½êsl?çU/ÍsÏ^~ªÿßrOî­û·ÔÍ=5úÚù?w^ºÏ÷~öž5ß²o·îñ=ß{ë>>ׯž»ŸZÛ—èM_ºo¹×Ï]ïKurë=}é^½æzïYû=õó)~oñÌ{=öV_zÍ·Þßײ~˽¿Å‡ï­‡×~îÖžwϽ~éžßÃÏ=÷á5Ÿ¹·þŸ[ë—øÿ{÷óžu¿už[ǿյÜ{¾ø’sßóùçX¿g®·rù–ûò£o½ç¯YÇ—`åµ=ð¥õÝ»OŸòÝÏõÓ{Î!¿UÝÛ_~ÍÀç®ç-õs‹·¾Æ—ÞÚK_šã¥¼åw¿%s·Ü›[Î3o¹·÷jßzÖºe?n¹öçêëVÏÿR̽fÿn¹·Öò[Öv/ Ï­ù­÷ìsõô[ü÷%Ïd÷Þã/}m/a^ZÓ[XxÉnYï¯ûîkzù­÷å–žôÜ5=7ï-k{mo{M]Þ꽯™ÿ9ßýÄþ~òQŸÿøáÇ?þéÃß}øøÇïÿüÓ÷ïÿöíýò›?ü¿¿üÐ?þÓ`?¼ÿþÃÓ? ö‡_~øÕŸ¿ûeôû¾}úäÃ𛟞>ñþÃ/£¯ß¸~úø‘ëÿúóÿ\¿{˜é/þØ_üóŸ>þ÷Óφ×Ï¿þû‡÷Ÿ~ñþO¾½¾ý×?þõéúÿW}]Ó¿}üñ¾ÁuýüÌÓã/~·žzÄÓàéQû]> ÎÓ žý4xú'ؾZï®ÑºFºFqö5Êkt®Ñ“ÂWº¾«ësº>§¾F× âZA\ßK7®ïÆ¥×,qͲ¯ÕïëgyÍœ×oóš9¯+*.µºÔêRëk¾¾æëkÍ}ÍÜ×|}݃¾fîkæöÌךçÒ˜Kc.¹4æé¿_ïÞy¸<”‡ááö0=<–‡í¡Õ–Õ–Õ–Õ–Õ–Õ–Õ–Õ–Õ–Õ–Õd5YB–%d YB–%d‰°Dø‚Âjaµ°ZX-¬V «…Õüz³µ­¶­¶­¶­¶­¶­¶­¶­¶­–VK«¥ÕÒjiµ´ZZ-­–VK«««««««««««•ÕÊjeµ²ZY­¬VV+«•%Ú“µ'kOÖž¬=Y{²öÒÛóŽ—>^úXm¬6V«ÕÆjc5ûƒì²)Ȧ ›‚ì²ÈN ;ì²ÈN ;̱äÏi™c™c™cm|ÍWaDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDdDTV3-j«µÕÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌP˜¡p ãÆ)ŒS¸Ç†É “&+LV˜¬0Ya²Âd…{l¸Ç†{l¸Ç†{l¸Ç†Ù ³f3ÜBÃ-4ÜBÃ-4ÜBÃ-4ÜBÃ-4ÜBÃ-4ÜBÃ-4ÜBÃNn¡áö‡°?„ý!ìaûCØÂþö‡°?„ý!ìaûCØÂþö‡°?„ý!Œÿ0þaÐÃHGáV3±aL؆1 cÆ4ŒiÓ0¦aL؆1 cÆ4ŒiÓ0¦aL؆1ÝÆtÓmL·1ÝÆtÓmL·1ÝFo½mÞ¶k}»Ö·k}>k øvo—òv)o×ïvÑn×ävMn×ävMn×ävMîÄd^Žkr»&·kr»gm÷¬ížµ]´ÛE»]´Û=k»gm—òvÏÚîY۾ݳ¶{ÖvÏÚ&`›€m¶{Ö6 Û0lð Ã6 Û0lð Ã6 Û0lð Ã6Ûl°MÀ6Û¤ H& M@š€4iÒ¤UºQ¥UºQ¥iIÓ’nTipÒ*ݨÒ*ݨÒ*ݨÒ*ýçÂôy2}žLŸ'ÓM-ÝÔÒM-ÝÔÒM- zô4èiÐÓ §›Zšù4ó首nji'H;Aº©¥M!ÝÔÒþnj首njiIHÚ@Ò’6´¤ $m iIHÚ@Ò’6´¤ $m iIHÚ@Ò’6´¤ $m iIHÚ@Ò’6´¤ $m iIHÚ@Ò’6´¤ $m iIHº›¦½$í%i/I{IÚKÒ^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rì%Ç^rÌÛ1§ðS¯Áµ~\ëǵ~\ëǵ~3ø*\ëǵ~\ëǵ~\ëǵ~\ëǵ~\ëǵ~\ëǵ~\ëåZ/×z¹Ö˵^®õr­—k½\ëåZ/×z¹Ö˵^®õr­—k½\ëåZ/×z¹Ö˵^®õr­—k½\ëåª.Wu¹ªË•Z®Ôr¥–+µ\©˜Á+sy–˳\žåVWnuåVWnuåVWnuåVWnuåVWîå~Q…x9æ¢ÌE¹3”¹(—}¹RË•Zƒø‚\©åJ-Wj»RÛ•Ú®Ôv¥¶+µ]©íJmWj»RÛ•Ú®Ôv¥¶+µ]©íJmWj»RÛ•Ú®Ôv¥¶+µ]©íJmWjەۮܮßvý¶ë·íÊmWn»rÛ•ÛµÞ®õv­·k½]ëíZo×zÛ•Ûeß.ûvٷ˾]öí²o[q»¸ÚeÔ®q=Ì;üôZÙxÇ{<Þãñ÷x¼Çã=ïñxÇ{<Þãñ÷x¼Çã=ïñxÇ{<Þãñ÷x¼Çã=ïñxÇ{<Þãñ÷x¼Çã=ïñxÇ{<Þãñ÷xlmck[ÛØÚÆÖ6¶¶ñ)~|ŠŸâǧøñ)~|ŠŸâǧøñ)~|ŠŸâǧŠñ)~|ŠŸâǧøñ)~ìÊcW»òØÇçõñy}ìÊãóúœ±WÏ0ã3Ìø 36óñf|†ŸaƧ•ñieŒé¸Œ{ÀÞqp|õ€¯×»« <ŽÆÂ80NÇã¸1†® +è ß¾+|7ðÝÀwk¬ùÂñqŒ5ÖÐ èt7t7t7t7t7t7t7t7t7t7tº Ý„nB7¡›ÐMè&tº ÝÝÝÝÝÝÝÝÝÝÝ‚nA· [Ð-èt ºÝ‚nA·¡ÛÐmè6tº ݆nC·¡ÛÖõCãõã…±0Œ7ƉñÁ¸0nŒ¡ xôÃcè º‚.ø]àwÙf8]àtÓN8]Áùq-àtÓN8]àtÓN8]àtÓN8]àtÓN8]àtÓN8]àtÓN8]àqÇx\àqÇx\àqÇx\àqÇx\àqÇx\àqÇyètºÝî@w ;Ðè¢ ½XèÅB/z±·x'Æã¸1†.ö1°}ŒÅy¼†À>zG`O½#Ð;½#]ô‘@ œ=%ÐSçÀ@ ô—@ôˆ@ôˆØü.ÖŒèèèèà"ÀE€‹.\¸pà"ÀE€‹.\¸pà"ÀE€‹.\¸pà"ÀE€‹ èÞèÞèÞèÞèÞèÞèÞèÞè½c£wlôŽÞ±Ñ;6zÇFïØè²Ñ;6zÇFïØèž³á9ž³á9ž³á9ž³á9ž³á!Ümp·ÁÝwÜmp·ÁÝwìlð²Qó5¿Qó5¿‹ß…j~£æ7j~£æ7j~£æ7j~£æ7j~£æ7j~£æ7j~£æ7j~£æ7j~£æ7j~£æ7j~£æ7j~£æ5Ÿ¨ùDÍ'j>Qó‰šOÔ|¢æ5Ÿ¨ùDÍ'j>Qó‰šOÔ|¢æ5Ÿ¨ùDÍ'j>Qó‰šOôÙDŸMôÙDŸM0’賉>›è³‰>›è³‰>›è³‰>›øs\âÏq‰?Ç%þ—øs\¢G'zt¢G'zt¢G'zt¢G'zt¢G'¼"á ¯HxEÂ+^‘ðŠ„W$zt¢G'zt¢G'ztÂg=:á9‰èщèщð«„_%ü*áW ¿JøU¯~•ð«„_%<*áQ JxT£¾”ð¥„/%|)áK _JøR—¾”ð¥„/%|)áK¾tàK¾tàK¾tàE^tà3>sà3>sà3>sçlŒ±~øÌÏøÌÏøÌÏøÌÏøÌÏøÌÏxËoøÆoøÆoøÆoøÆoøÆoøÆoøÆoøÆoøÆï¼ð~?u‚÷Sc`퀵ÖX;`íàð·Á}øÛÀßþ6ð·Á}øÕÀ¯~58ç Î9ƒsÎàœ38ç Î9ƒsÎàœ3Ü œsçœg♠ᙠᙠᙠᙇñÆ81>Æ1ttttttttttt]AWо+|7ðÝÀwß ¬9°æÀ:ë h´6´6¾»ñÝÄæ9˜§0Oáó…9 sæ)ÌÓ˜§1OãÚ×Þ¸vs!äøB¶.dëB-äÑB-äÑò_ÛCËþ)dÓBÖ,dÍBÖ,dÊBÎ+ä¼BF)d”BF)d”BF)¡öW> ãqb ]A÷V¨[¡n…ºêV¨[¡nÐE 5,Ô°PÃÂþ û« Ý Ý Ý ]Ô¿Pÿþ»ócè&tÁˆÿþü㺠݄nB7¡›ÐE­"/òb!/òb!/òb!/òb!/òb!/òb!/òb!/òb!/òb!/òb!/òb!/–à ‚'žà¿aÿ8†.YkètºÝî@w ;Ðu¯T ¯úT Oúrp!rp!²o!û²o!ã2n!ã2n!ã2n!ã2n!Sra!«rR!'²Q!²Q!²Q!²Q!²Q!²Q!òP!DzK!»òJ!¯òJ!¯òJ!¯òJ!¯2J!£2J!£2J!£2J!£2ʇ1æD=lÔÃF=lÔÃF=lô…¾°Ñ öæºðäºBf*d¦Bf*d¦Bf*d¦Bf*d¦Úðä OÞðä OÞðdä­Úðdd¯Úðä OÞðä OÞðdä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+ä¶Bn+dµBV+ä³B>+ä³B&+d²B&+d²B&+d²B&+d²B&+ä°BÞ*äªB–*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~*ä§B~ª„o K²T!K²T!KUÂ7« ¹ª¥ Yª¥ Yª¥ Yª¥ê€å–XFî)äžBî)äžBî)äžBî)äžBî)äžBî)äžBî)äžBî)äžB¦)dš:`ÿ€wä˜Bv)d‘B)d‘B)d‘B)d‘B)d‘c\ <`ð€ÁD¦)dšB¦)dšB¦)dšcè‚Á<`ð€Á<`ùéú`ð€;äªB®*äªB®*äªB®*äªB®*äªB®*äªB®*äªB®*äª:d½¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª« ¹ª«>Œ¡ *xTÁ£ Uð¨‚G<ªàQBž+ä¹Bž+ä¹Bž+ä¹Bž+ä¹Bž+ä¹Bž+ä¹Bž+ä¹Bžû0†.üªàW¿*øUÁ¯ ~Uð«‚_üªàWÈ”Uð«†_5ü ¹³; ¹³; ¹³… ZÈ … ZÈ … ZÈ … ZÈ … ZÈ … ZÈ … ZÈ … ZÈ … ZÈ …ÜYÈ…ÜYÈ…ÜYÈ…ÜYÈ…ÜYÈ…ÜYÈ…ÜYÈ…ÜYÈ…ÜYÈ…ÜYÈ…|YÈ—Ƙþƒ¬YÈš…¬YÈš…¬YÈš…¬YÈš…¬YÈš…|YÈ—…|YÈ—…|YÈ—…|YÈ—ÆÐ‚ç4<§á9 Ïix²i!~ã»ð†W4¼¢á hø²l5ü¡á høÃÀþ0ð‡? üaàÞ¼#[²u![²u![×€÷ïÞŒ˜0;`y½œ8p:àù¾œ8Eî¯ µ=¨íAoÔù Îçp¬uŽç„ç„ç„ç„ç„ç„ç4蛃zôÍAßij³BÖ/dýBÖ/dýBÖÈúY ëdý¬?õ²þ@ÖÈúY ßäû?ݲû@vÈîÙ} »cÍÏ>¸Æà籞À5ÖX[`mkÛÐÝÐݘcžyó$æI¬9±æÄœ‰5'ÖœÐJhhh¬ù@÷@÷@÷@÷@÷@÷@· [Ð-èt ºÝ‚nA· [Ðmè6tº ݆VcÎÆœƒ9sæÌ9¸–Áüƒk\Ë@,/°¼ÀòË ,/°¼Àò¿xoCའ÷6ÞÛxoCའáÇâa˜<.ðˆ÷6ÞÛxoCའ÷6ÞÛxž$ðºVa vÕÿ °zá[#|©~ ö@·ðûåëVÝAàŸ>„~Ì•§ûNÇ/@¾ôCæß@÷8à›xÿ;Þ7‚cM_‡ÌQ#lo¼ü­_‚=ÿ ü¬Û ?™/‡óSy—¯1Ö>„~Ìùx=¼Ë“hÿŒö sÄoCÛe?>Ë}á¨]þ´ë?¬T¯£ÿ…ÇûÚ‚Xð¶OS¬ÜËXÁ<û#V¬ cENDZØ»ž8cE0²pY+OÞÆs3V¼#a¬ø¯?ÍX©2Vîyk¬k >žhÜÜX2V~ÆŠ\e¬\øÆž´0VÔ¶“á˜ÚÅÊÆ bHöZ±rU"V~ˆþ]ô§•±‚5]ceÒÏLƒÞ‰g&|˜ŠOït``ª±b|±}rõ»üÎë;W—¿._ÓèËú–¦/+ÓÖ!k޳dêó~^yëóvìÑsÍž2yåê¸^‘O¬Wä“2¡^‘%a½"ú=·kÛNÖ¶8_9kÛÍîÚ6ø¾OSm+«ãzEÚ&Ö+² ¬W¤«x½"Ý€ö¸^‘¹¡ý¾çÖ¶Ú²¶•Ååj[éI©m1ÇÉÚVí+UÛ¶'jÛ.q×¶XgWm›››\ïEûÓääõOæ)âG}®¼]47dÙR†7¯ª²‹ê2±¢g±‡1Œ=&ˆmA/û7q yE¾È¼¢õøÎ0wÈ a^‘ÏÊ„3³ÖÏA^AnßQ†ãÌ,wQ^"¯h½îÊ+^]œWä8ç9æ•€çn Î]òðë³ÏAòý‰yE}Qy&¯È™P¦} Î!­ç Õoç•€VÇgfÕä•}óŠ¢Þ7‡B¹ÞÖPæ•ÀOÇ™Yý––MÈ+²Eâ¼r@RÏÌžuœ?sóJ@—rf.ô}µÛ´1É u=icEbÝeC™ºÀe³K~M¿KWO‘ywÉÌ¢Íò?ÞÅkbE[Ûâ-„V¶ºWô»¦w½}a«÷+úí bR[­Yt¿NyõÛ®×ÅçQ®ö¯Ì“0¯èž¸°0_â¼Òè¥ÜVêPs5Ú:›¶ÍfÿZ¶Uö×(s6uëØÇ ¤©Ò¶õÌ'ÞAþ*ûæP7À롟›hÃy–5ò$ïWšH«>¯&ýl[9fÚ¥”a|jc½r>ó êµ ¯½ó­5ªÒ6­iѧmÓ¼²Š¸>Ö#C”Q¥mª£ÛêáúÔdjwü2I¾,~™¹3 ’h‹ä²éÖYFfQž´q»ßÄŠæƒv¶§=Æ~[7³ïZ‰w°Û6ö-%O'å J´G^í ®ýš¯pNöÝ2 ãÚä0Õ§{D÷g•ý5Êí ý Êw±„ù¨‡ò¨Ce­ ´ÁŒ÷Q¾Écí”7Ìþê¦|å½Hâ¼ÐCÝÝ”ÑǶ›:úi÷<òöÒŽ.ŽuÐ3§ýÔu‰5— œK3Ï=œ›6ò,fÛ@]&÷ pÎèW?çäbʸPâ<>HŸÔ?ÔwAÞQ«%Ž•^Êâ,лHâ¸h§ÝÖ<›<ª¶ÖSFå´ÑÛŸ…lÕÞ%|ŸKµ­JÛj¤k£}}”Q¥}&OöѶ.kÜœsͺôQ^‹å‰Å…ôÓØÙ)qì×hãbKÏíìf[£ÿ½Ôgd¬áü÷Ó×¹«»9oó¨ßØ4HÞvò.æ\²Oé}k~Xúæqmi‹Ïñêî'mýî¤ÝËè‡Ù«ƒïa®ãå”5$îoH~Ž’D_îËÓáÏâK>y6•áÍËí.¾ÉÊËš¿4i4.[\²]Ë6ûÞ6ÏŽ¼ØÉ¢Ÿêüísù›fk^,»d™—4ÿŠÚžÇY6¤Ñ$åõdžä]\ž¾¤î"}.š¢ë˜·ŸÒÖÇeKÖü§Ñ§Å@]šýÉ1—þ¬ùÏZÿ,ßóägÍkV¬¤Ù¦+'Ïþ4º¼uÎZìõÌêÏšÓ<9.™y±Vt}Óh’ºòìÉâOâ®q+7‹ÌÒûÕ{%üÁ (»©¼Š²Ukžç¿–ð>÷»€gIp[ÑúçÛ€k¿—ð~p¿÷±žÞ ~4ÇDšAWùú´¾? ø7ðÿIpo¨ÿGñ6ÿàQàÛ@»­ÖY”ðNT[½—<ÁöŒõ~œ ÷ §H¿%æñôw4¬¾ 1O CñC䣮 ‹%Ë´[,9{->Óž±ä)tÓ.#öú˜× ^æ{Àð%-ú+9¦¿[Îþ–zo|'}XnÉ€t´IýðºBùÞ›Û"Ñý°¶-ÇãwcÞ{ë-¦ã7 3ùäå‹<Þ²9ÍÆ³r‘KOÑý]4$ß'óÝ(Êë²/ig™»8û·—æw£EøÒd¸ä%¡Œl¥¯+ .[Êúä²Ã—¾">L—=Eì,2/eòJVL}ÊúSVötØ3Õ'K^ž×>Ÿ©'ËgǼLø‰ým#;¾¬?ÎÔK#½0 :¿²ûö;vòÅ[aÃúFã¾UÝHÔac·D}6é°ñHòx$y<’<¾:Â.°5vY„]aW«Œ¯J:ËWGöç=Ò5ŽŒ¬¸u7æ%AÞ´ûö»V˜ùÒ çïÇŸ³gÏê?ÎßTø?þé’ŒS1mstate/data/prothr.RData0000644000176200001440000001722514627637077014745 0ustar liggesusers‹ íÝ_l×ð)¡Y'jw¯ÚhÅCT]UQdU(º›mSúgÓ_[Ú¥mÚÞ&$qB®ƒq áÏ 0„¤“l‡Ptm8¹`ÀÚ¸Ú¨Šª>Œªj…ª>çÌŒŽD>¾÷œ9çÌÌ™3ï/÷.ï¸ó掛£(Z-ºéò¿.ÿ¹xÑåÿ|$ŠJ7]öÆú–ͽ=[¢è†O^þÔvùß?^¦ç+SÑߦ«JØ6GKä-äòV²¬øiò6òv²ÝÒ¥–ÞAVû/ó_ÉÏfìçÈÏ[ºŒüùEG¿”±w;*šñÌ~•üz„.‹í7,ýfä×׌í\9»ù­ý6ù[㙽'šÙïÚgë÷"ôû–V5…ŒMgö)ŠñÌÞ‘Öû"KÅÒ˜Lgved©±÷G3û€X+¦3û`¤(“)Ú‘B¦èC±¥)úp”³BÆMÑG"Kų±bjçªÈQ!c2uóQQŒÉ4¬«}ÌÒZ¤XV²FÆM,MÝìŒ,-[*ŽÆdbiªØróñˆ,glŒ²5³k"E!kž-MM=ÛB»„¬Yš©b ]YZ&…¬‘±¥ ™’-¿vGŠ52&2UlÍìY&E±¦˜8š’-;{"Ų¢5Å8c2Ul¡ë"²l©1™x6õl ]‘eRÉ”l…õɈ,“BÖcÅ$°)Ùò놈,{V­‘1™dl:³#Eq´FÆŽ&žM[3»©ìY!kdL&–¦dËÍÍ‘¥eEQ¬‘±bâÙÔÒZÈ’¥eR­’5Gë–ÆŽ6È„œPLÉIÅ–¥SèS‘£%²LVHQ¬’uKc2±t‚LÉI²EN…uKäÙ’b™¬bi•¬‘u²aiØ 2%'É–¥SèÖH±diY±BVɺbL6ʼnœM$[äÚ‘%²ìhEQȪb¬“±bÃÑDqÂÒ”œ$[ŠS3»-"KŠeK+ž²JÖëdØ™(N©¥“–¶È)t{D–È2Y!E±ji¬“ ÅDqÂÑ”œôlËΑbÉÒ2Y!ųU²FÖÉX±A&–N)9éÙ–âÔÌöEd‰,“RÈ*YS¬[+6ÈDq‚L'É–âº3R,‘e²biU±æÙ:“ KrB1%'É–â”»"KË–VHq´JÖÈ:;Ú Å”l‘SèÓYR¬( Y%kŠuÅ™(NXšZ:I¶È);wGŽ–È2Y!ÅÒ*Ys´®“ KÅ GSrR±åèÔÌ>)–ȲbÅR!«ŽÖ­[“ KÅ 2µtÒÑ9eç³YR,“KÅÒª£5Å:ÙPL SK'-m‘Sè#²D–-­X*dU±¦X'cKd¢8aiJN’-rÊÎ÷ãÿØfiÉÒ%d™¬ËH±tY%;ÈÙãÙºb9H6GÈDq\qÂÑ7È”¼`é$yQñ9eé»3û\di›bÉÒ%d;Yqt)Ž® «ŠŠ5²‡¬“±¥ƒ`4GC¦?\O-ÎFÞé®rùY·×wþ¬Û—÷öÍ»}óm}æ^ôòжüEo_Ñês-ßµ=y÷¯¼ÇÓÐå­ÿ.´öÎ÷ú´üE[~×ýɶýEÛ^ ­=¡E?¿ð]þB;Þ„®ßwùyïŸ ½}®õ/´ú|··èË—÷þ©­¯¬çÝþ¢/Ï|oïúç[zÑÛ“wû4ónŸëú ]_ѶOÑwEëO¶é®ååÝŸ|o/ßõû.¯èýÁw}¾û“ïöû^¾¬ÛW´ý/ëñªhåÙÖWôåó]Þû›m}®í+Úþk›îšßw}®ë7ïõ5ßûGÖãKèñÉ5½hýÅuylÛãš?t{C/Oèã[èñ¹èë3t{}/OÖéšEk_ÞÛ/ïõñ÷åóÛÞ¬ÛŸu} ­=¾¶õ»æ/Úö²Õ÷ñd¡G¾ÓmÍú|À·®í =¸ÖW´òB×ïZ~ÑΊv<È»=¡ÇßùC§»æÏº>ßù‹–:ÿBk_Ñ–'ïåsïòn¿ïtͼ×k{C÷ßã¿kºïþº½¶Ë“uû²î?¡Û“wÿ-ZÿÉz}DÓq4®¥·Qþ6š¯ é®Ÿ¹ü¬Ûë;Öí˺=EkŸmûónOÞéE//tzÑ—o¾×—÷úvmèô¢¯ßõ‡®o¡µw¾×çº}{ä}~[ôõ“w{8=ëòò^YOóî m}ç½~8}¡·o¾m¬÷¼·Oèå Ý>ÛtísèùC·¿èË3ßÛ“wÿÍ;½èíÉ»} }<,ÚøzûØ–ºý¶í+zú|ïO®íÍúúÉ÷òÌ÷öf}|)úò­?øNw-/ïúC—W´ñÖµ¼¢ù^ž¢wy§/´õk›¿híÏ;Ýwû‹v¾g›îZ^Ñ®/}/oÞí ½<¶åå½½çÛúœoý#ïãsÑÛ—u{´Ïy·ïþ|®å}Øúó|oö9ë󉢭ßãèã‰íç¢õ×ÐéY¯Co?ísÖûƒmùómλþ¼ï¡ËËûxw{lë}ý—÷úwÍŸu}ómýηñp¾µ¯hË“÷òÙÎ_ôíãš^ôþ›õñg¾_︶'ïíëÚÞ¬ëwm_ÖíÑÊ˺¾¢m?Û϶틦ãh\Ë_¢ùK4×_t×Ï\~Öíõ?ëöå½}ónß|[Ÿy§½¼¢-ÑÛW´úò^ßy÷¯¼ÇÓ…ÖŸ>líïõ¹îŸEßyŸß}ýäÝžÐǃ¢Ÿ_d}<Í»?,´õ÷ú)úõø|O‹^_ѶOÑ÷ÿÐÇ—¬çÝþ¢/Ï|oOÞý7ïô¢·'ïö-ôñ°hãWèíSôã]ÑúSÞç§E_?y_?m}äÝÞ¬/E_¾¢õ‡¢—yן÷öËz¼-ÚöÊ{ }}žwÿÊûxRôõ›÷úšïý#ëñ¥hçy/Þë£èçëY/Oèã[èñ¹èës¾õ¼ÏEo_ÞÛ/ïõñ÷åóÛÞ[žïí)ÚùDÑÖïñ?ôñd¡GEß>yo¿¢ßyŸå]^Þý'ëóçù6>½=¡Ç“¼·gѯ_‹–¿héEÛ_ŠÞ¾¢-OÞËúúa¾íEï¿YæûõŽïþž÷øŸwÿ˺ÿä=~m¼.ÚñÁµ}ÑtH™ds }ºŒö_@_¹Mª QþÖm~[ úžd} t.ouŠ6:@#ÿ³5ôù6P­oS‚öÖÐ]—Ðá4Êï ׷Ђ>Ý@_D‡;Ð&9& 6ÉúÝYEŸ»„îDjèP;¨Ö¿.Fôh;Éä³-ôù*hÌÿx Ý¡ñ:tš,E›·F})úD„öWAcþ¸ 4ÒÐv’ôÙ¹ˆŽ^@›£c-t| }õ/èÏ.‚FûúStX@#ÿ#)Êë{¹­åíœôÍ)ºµ ù×Êûç!ù7úãúÒÐv’“]èÙŸFþ55ÐH0ôÆ(zøÐÈÿDŠ/EŒ¡G—¡Í_¡c{@m’²Qü_BÕòŸIÑæ[¨r¼—j ªõ­LA#ýAT-×Ïð ÔXž‹èé_€Fù‘])häß׎ƒêò~4ÒŒÑþ)P-ÿarG4òokFúb”Î?ü÷Ç ‘Þÿh¤?”‚Fú)JëÇ8žŒÝˆž>þ´ =É@Œ6.€êü÷’|½°=F•ó-9<Ž6?ªíém ´}eè÷èѷГwƒj}÷ÆhW4ò?%èî::8‚]åõVA#½;EŸŠ@#OŠÝ‚Žîm'YWF›#èéw@cþU¨ZßwÈ'ÝEŽvj}Z@#ÿš4ÒïÐv2ÎÇvL¢ƒo ¯¼Žž\å&h³4ò÷Çhã7(ßóóñhG4òï­£ƒ1häçóÕÝhÿ2P›¤GÐCc ‘¿» éߌÑþwÑ¡QPm_½…KСôØrtl¨Ö?PÕüt½i¤?ƒjy|¾ÝWFO¢£ò¸®Ž@#lþ3:¶4漈/COµ¡ãí í$=è‘e >Tó÷§èÐ; ë$ƒmèÁ.к¼m“èÞô@Ú¨€FyÊõ‹uû¶—@#î÷Y—ßhôj éµ}:BŸOAµ=tþ/]-ÐÈOç?Fúsã Zÿ*t¾Þë« ƒeô¥ß Í[ѱ;Aµ}?HAÛIÚС1к<:ßáëA¸ˆ€FyG÷ Í;Q:ß—±Ðu’ûS´;A·7@ëòéþ“Ÿ?l¯ GF@×IPÍß™¢§ ªóÓõ”lŸ}Oò@ŒnOÑvtl%zænÐ(Ÿúì(¡ýèè[ Qžãõ¦tºwè:Éòhší‰Ñu5t m¼ŽÞºNÒÝBió[>_p~ç‰4Òï'éüWvÖ@cþu)h¤óý–U)h;i÷Ëä»1¨–׃éôþß/6ËKÐut°ŠÒõíÄýQÍÏ×ktX†RôÈ[èÑTë»_@5?õ~?ÉÈOýOv6À¬'é)ƒFúÐ%tth]Ÿú>T 4Òùþ¿¦œ¯å 7Ð#Ñæ>tìqÐ(ïô¦ ‘¿;t>~íj¶“y?PÐzp9è:Ù>?0¶÷ú2h]ÿ£1JåI_ Ý¿4ÊÓúsgÌz’ÍeÐHçëõù»SP­_Y?FþÇP5'ªæ§ç!¶“q½Ô˜ütÿÆHççɇ¡G÷£'>Z·­ ‡÷€êü–÷çŒùµ@³|:Þü÷‘Êý7鬡ô¾™6÷KŸ*¡¯4@×IžLÑ-“è ã Zžåþh;ñûRFzgZ—¯¼ß%/´ƒjyÚõ&Ý–ü=1꺿ðý åý©O¡/×Ðã1è:ÉÂ*ï'óó ºwh̯¼ßkäçûß/ÕA#ÿú4Ò¹ý|ÿ˜¶ŸÚ>zŸÊHçþ°ï"ªÜ×®¿dpTÛ«¼oœo=jù|´;E·WAc~~>Äãuÿ hÌߣ Pm??ˆk ‘c ÔË/£Ûë ‘¿^BûÈç.€jý|~þ Pßöþ½¿'£ïFþ*9°4òS6îÇ,ùéùˆ6qÿ4ÒéúœïÈ  ZÝßÃUÐÈ¿­†Òûj¾'~ßE^ìüü>%í¯j}‡ßÍöØ=ÿ‘µ JçoêüÚóe^?–û›Z?¿¿9ô:¨ÎÏûKÿ ÐÌO*ïs¸NÆñy¸ô^ý>Èx¾´³Œ–@£Å6Ðu‚RÜ 95†@¿£‹òõ˶ ÊçÛ+c´«†RÜ C¾ß÷dýL„_‚RÜ i܃RÜ êC-ãfÈžI”ïw*q3Œûż}ï¡7ð¯†RÜ ã~Uà¸rö—è3 ”âfëëìJ”¯¿”¸òê¡ûGÐéÇ×tŒ›!/¡Žq3dì'(½W#çåþe7ÃWD¨ç¸rvåûÕÿFž½ ¥¸²/A)n†ìœ@=ÇÍäyôì$ê7Cö¶¡wE(Ç–q3ä•ŨeÜ ãwFgß#ÇÐÀq3äÕó(?§<·¥÷,ŒçU–q3äÜ2”ŸðöRâfÈ«·¡Žq3 ù~ÂÚ¥¸òõuŒ›!…òþÿÃ)4ŽP%n†)£»*¨eÜ 9;…*q3dß Êã_Ð{ûÆùûÑ1”ïž»uŒ›!'ï@¹>Š›aød ýn„*q3äìŸÑC j7CÎ5З—¡–q3äÜrT‰›ah7CÎ݆¹.¡ü|ó‰zêm”ïçþdUâfÛçXj7CÆ7¡{.¡<þñózïÈ÷g%n†œ» ­F¨7ïOÇÿŠžýy õ7ÃÐ1n†œü"Êëg|º½†òó>%n†ì[>?^BÏ®F•¸2^B=ÇÍS·£<œþ ÙB•¸ræSè7b”Ÿoðõ‚7ÃxÞÄû[c)ú…½›¤¸òl‚žýÊÇ'–âfÈîšqÜ C˸Ò¸ˆ¾ØBÏ܉û#:Þ‡NŸX]Ó2n†œ=„òõ6ŸoYòxÃÏGn@ô¡7C¿‰ZÆÍc”ãðù­7ƒmü®gÃ÷˶M¡7Cºåó‘éŸ+\W%n†¡cÜ 9:Ž>"èþ>”û#ßéïA=ÇÍàßíʉߡü»’íe”Ï÷”¸Æõ§7Cö¶£|?‡Çב7P~Ÿ«o =݆rÿe•¸râaô¥^”ËãûQû«(ÅÍÓí¨eÜ 9};º5BãfïŸòýŠ›¡>ç÷SùøEq3dücèË_F÷D¨cÜ Ãñ? ·DèéU(‡1Êïk)q3ä¹It¨Œþ¸uŒ›!ûÛQ^ŸlgÝ_CùýJÞ_¾¡|~ÖÙB÷t 7Ãx^­ÄÍ] ´;EO•Q¾žäõ1¶›¤çÁü»”:Ù£7Ãx¿ƒÏç!c轂ÏÓéz‰âfòý›éÿÛ5ãfÈØ/Q~P¯¢JÜ I>®‰P¾?ÇïOÕë(¿ÍÇßco£JÜ iîF•¸ò¨ JÜ ëAùþ—eÜ 9ñ ”Ÿ—Œ@·O¢–q3äØm(Ÿ/ðþÈïOŒ•ÐÓ¿Eùú‚ÇO~_ŠíLP¾ßÌãOs)Êïs:†RÜ Þƒòïøú’ßRâfÈèRT‰›!#«Ðx z †òý ~g´µŒ›!'ÿ€~.Bo@ùý›‡å÷“öO¢OWQ>Pâfïkñû\ƒï¢_PÞÞ7C^êC)n†ñ|”Û¯ÄÍÁè‹ ”ß§:¾åò”¸rr)Ê×_§nC)n†ü8Aùý~?žßwTâfHóÓèʵŒ›!'GP˸rr7ªÄÍ0~¯vh1ªÄÍ0¤¸ROЗQ%n†X‚ZÆÍçZèÉc¨7ðy åûK?*¡_Q%n†Œý­F(ÅÍÁ)Ô2n†ì¯£ü|äpŒòóQîŸO—P˸rømôA•¸r¢*q3døMtM Ý£ÍItK‚*q3¤yUâfã?§¸Ò<€òóž—W Ü×&(Ÿ¿m “ÿFùùrògT‰›!£ä‰Õ(?åûJÜ ã÷ßQ%n†œLP%n†mG÷ _‹Q¾?Øü"ªÄÍf„òïSš¿CùxØüê7CNÖP~ÿz÷$Êãå‰7P¯ùþà‘å(_ï°|=q°‚ZÆÍæè3S(ï¿JÜ yM ü¼¢ùŸhÒ…*q3ŒñŸŸ½Ò‹*q3d¨å뾞Qâf¿Oáû{ßE-ãfÈÈïÑfŠZÆÍá7ÐCí(÷<þPÜ i®@ßçù}A¾~VâfÈÈ$JÏ£é8W?|e åïçúÙµüëMsm×lË×ê›m½Zý¶åmû„nOÖís­ßW=Ú|s?¯ýWÛÿl÷ϼúGèíÅ߇Þ~¶õ¹¶ïzåÌu~m¾¬ú§m}×K/úxz¼ÖÊuýÞµ¼¬ÇS×üÚü¡ËÏ{<º^>_óg½¿º~½}C?C·Çµ>ßí»^¹yµo¶ù|•_”þz¼›ký¶í)ÚñÊu¼k~_íó]¿myyŸÏø>ÿ°ÍŸõø`[žký×+g®Ÿg[my³ßW}¡Ž[¶Sèþ¤Í§Õ3×ãkùsM=¾Í¶}¾ê×ê 5þζ~Ûz|í?yǾÇG×úµò´ïC¯µÏYŸß„>?ËûüŠ¿Ïûøî{{äu¼UÞ|_?YZ;Bo-ÿlÓ}Ÿ§Íö3ïëøâ«¼¼ÇkÛù}×§M®ûƒ–ž×ö =®Ìµ=¡—Çv¾¢of{~¦•ë:Þ»ÎçZO¨~k[þõæóµÿ϶¼Ù¶Kû~¶ý+ôùLÖûÛlËk=¡öw×ïC¿|Ÿ¿…êÿ¶å̶=¾Ï}ÏÌõø‘õøê|Á÷ñÏ5¿ïrCíßs­G›|÷ÿPÇ×Ðë?ôþîûû¢,¿¯ó-ßl'_çS¾—Ç÷ñ-T{f»Ü¾×W¨ýq®ýßv~Û)ë󗹿Ÿëü¾»Yß„ÞOmçó5žÍµ¼¼ÏïBÕï:~¸¶o®õ\o>×~ëûøj|õµ}‹¾ÿØÎjûÌ5?ç u~u½ïCõ×úgÛßõe½~|/¿ïñ<ëó¥ÙÎçkñu£¥gu<œm½¶ù|·?ôösÝή優/Ôña®ý‹óù>Ÿð=ž„ÚßBoµô¬ÊÓ&ßç Y•7Ûô¹NîãÕ ŸŽ£ñ‘Œÿ-òô¯¨íòÕ¾¢´c®íoë7¯õ2Ûõ㻟ØÎŸ×~”U¿É{? ½œ¡û“¯õj;dÕ>ßý&ïý%ôúŸ/íŸm?Êzðµ>´öùZ³]^ßå\¯\mûd½ýf[N^ýØ÷rÙn¿¼öëPÛ!«ýÁwy¾Ç_å…no¨òmדï~àk;…ÞlëÉj< ½|¡ú—ëúÉj»‡î§³]þ¼ú¿¶¾çºlûµíòÎu½µÿÏu;ϵ¿¸¶Û÷þœõvðÕ}÷ÿPûµmÿŸíòfÕ_µõ4×~ïÚn_ûy¨þšõr…Þsmÿl·G¨þzù|¯G_ó»ö‹¬ú‰¯í5×í–ÕþîÚ>_ó‡Z_s-×w?µYí×yõ3ÛýÕu{ø?Bï?ž–gñtÞÒM—½qÃÚík7\ùo—¦K¹òí?T7t®Yûøæé7W·¬íÚ´nëæMkiö®ÙйõêÜ×Êìî\Ó»yËå¿þÊÙ7un\{5{Ûô—‹ÖuMÿµ¸{ËæW¿íÝ|u¦Þ-›¶^-{åÖÞÎ-½W“.Ú\¿št9¥wÛÖæZÛÙKõß´eóŽ;®¶áãWj‰£+Ó•×V®d¼á>Xï—¹qkWgoçô§›¯ü}G÷–Ëð‚M·qÑ•Boz¿Ðè†i?rÅ鿯̴øý¿¡€ºÖm¼Ú¦+ßÿYÚ.g™nû¢ONç+Mçý[[¿·yËÆÎ ÓŸn¸góŽé??ºüòšè±Í}¥îż>Œ-teðï§0Kƒ.ûmstate/data/ebmt1.RData0000644000176200001440000004210714627637077014434 0ustar liggesusers‹ í ˜^×y×ïYoâ8ñ*[¶eilK¶%K²åÝNšLÒlm“ÔÙÄI$kñnË’,ï¶,ÉÚ%f¤Ñ6’G‹RJ)¥”´¥”RJ ¥@)D)¥@)¥”RJ‰ûÿrÿÿ¹ß\ßíû4²Óæy^ï»÷,ïY~ç¼çÜû½ú̇ï¾ñ¬»ÏJ’Ä&6˜Ä:|ôÿ˜$9÷Ãò{Y³(IÜøòÈ»“$ý©,BÒ‰øˆI¯“¸“ñ» ggé’÷@Μ 9r>¤“ï…i‹ C¦C.\ ¹ 2r9d&ddräJÈUÙ9«!×@®…̅̃\™YY¹ruJn„ܹr äVÈmÛ!w@ò>È÷@ÞùdòAȇ ß ù0ä#B>ù8äû ßùÈ' Ÿ„| òƒ» Ÿ†|òYÈç Ÿ‡|òEÈÝ/A¾ ù äÈW!_ƒ|²²r/d)dd9dä>Èý B‚< yò(ä1ÈJÈãUÕ5' k!OBž‚< yò,ä9Èó /BÖA^‚¬‡l€l„¼ ÙÙ ÙÙ ÙÙÙÙ Ùy2Ù †Œ@ö@öBF!û û! !‡ cÃ#W!ã£cã× ¯C¾ù!È_€ü0ä/B~ò— ? ù˃üÈCþ*ä'  ò“¿ù&¤3Æò7 ?ù›¿ùÛ“¿ùYÈß…üäïA~ò÷!¿ù_„üCÈ/Aþä—!ÿò-È?ü äŸB~òÏ ÿò/ ¿ù—_‡ü+Èo@þ5äß@þ-ääßA~òï!¿ù߆üGÈï@þä?Cþ äw!ÿò{ÿù}ȇüä@þò?!ù_?†üoÈŸ@þäO!ÿòmÈúÿðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿€€þ ø7à߀þ ø7à߀þ ø7à߀þ ø7à߀þ ø7à߀þ ø7à߀þ ø7à߀þ ø7ƒðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿf1üðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿YÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿüðoÀ¿ÿü›7²eß‚‹‹Á‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·àß‚ þ-ø·od&¿ÿü;|qàßþøwàßþøwàßþøwàßw~¶¯pàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßuö4àßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàßþøwàß½‘m÷½É <ø÷¸àÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿü{ðïÁ¿ÿþì¨/€ÿþøà?àbÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿüðÀÿü‡esZøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøà?€ÿþøodÇüüGðÁÿüG܈à?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øà?‚ÿþ#øodøRðŸ‚ÿü§à?ÿ)øOq3ÿ)øOÁ þSðŸvž‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§à?ÿ)øOÁ þSðŸ‚ÿü§àÿ;ϸ;ãõ§t''Éà®wdᾡ,Ü». ÷ÿ\Þw2 ·}+ ?=˜…{þ0 cü½cYø ~ß÷#Œ§|dzpôǘß@®º! ¿_ùüãbHý>šðþ7Rÿuweáõy˜åž`øûYø½L¿} ¯Ÿ›…[Yî¦óúô,|–õ¼Ÿz ³f8Âx#fáÖo7ãï^“…kóûæóYøãͦ^×2ü0õÙÂüw 0ý¯fá+l¿—¾5¹œÝL7´1 ¿Nýw±½†ÎÎÂ'ØKXþê·keî¤/³žŸQ>ÔcË}†÷w°ý7ý1Ó1Þv¦ûõºùnϵL÷5æ³u~šß¿‡ñ¿¢t¿Æva¿¿¯p}3Ë}™ýû2õYÎú=L}Ö+äõ—Ø/rœ¼ÄðcÔûsYøS,ï0ûeË]Åö¸›zï¢~[Ïœî8Ç×ÐsYøÌœã}ìY¸‚úˆ‡c1 7ÝÏüYîë?Ÿ…ÛYÏ׿Ír8®¿ÁþÖ¸ýþ0ëý¶Ã^W¼öe†Ôç5–ûÚgábæ÷}Ôo9õ=F½>Åû÷³=^ŸÏûw3Ÿ_ÉÂGxÿ£Ìg)Ó½Ì|NüëóQ†¿Çô¿ÈïÊxge¡ø9Áþ?ø[ŒÏû+ÉÍFê±óʉf~?Ét¼~”Ü,ÏÂeŒÿá,Ôø<ñÌd=ŽßÎíx/Ûg„õ9ö³Y(þ—3ŸG³Ü™L¿0 ׳_4¯>Ãz¦^Ÿfúc¬ï=,ïg˜žõ]|’ñ~= ‡8nd¹ºöäPù/gù³üy}Œ×7±>àõWgdá×øýq–w¤À×§þãÿ.ëÇø¯ÎæõÏe!yç|ña¦{h åý œÏÆÉÛ}¼˜å¯`ºçؾëÈÑ+¼˜õd¼#—÷/æw¶óA®_cL?Ær¿t’åŽOÎgŒëÒRæsƒ®sØÿCY¨uv?¯"×Ï3¿CŸØï#wïe~Ø>k1Ë;ÄöÙB½?Îïû) Ÿe971Ÿ'ßÞÌv`ývPß—˜ÏZ–3:}rý†ßÇûlŸµ¼¾‰\ìâü¸‹åï`<­·ÛY-ü¾ñǘþFé'¨×~æ·—\¯f½ÕÏC_ê×Ç”?ÃM¬ÇFæ·åªÝîb8Æþx™ñŽ ò:í¤C?âxÍ©,Ôú±‰õÝÏõc ûo5ãr/a¾;Xßuì÷{¨ïyý{YÎ2Ök9ïß;ž…›5dá1rð¿k¼¿Êúq8Aûê¸æÏ]LÇrN°Ü‰ù†óÐç ÙÇŽ0ò~õ^Æú­£O³¿†™ÏQŽ¿Ãœ‡W±>ã\W6³ý޲½žÏ,÷è²p-볂×1_q¼”ú†z½Êú=~ŠzR¿}lŸU¼.¾ïfº1Ú¥h÷`ÉþfyC¼¿Ÿvôæó õиùó]Ã|öóû(ÇŸÚw7Çýn¶ïròûaû[œî`úçXÏWØ>CL¿›õ]9ÎøÌÿ%ŽÓÝL¿›úËÔ¸~ŠùmbþQïM¿ÃüNeá—™ï·&ëó%^—=úûuËS?ìe;îáøÝÃø²+G8ÝÏë­£Þœgw³¼•wËX_µÿ.ÖcõßN=¶³}5Omc}¶r>ØÊö–]¿™ñ71ßlÏÏòûKl7­¿âzË‘z®`øi¦?› vþ Ž·å¼ÿ<Û÷™ïçj>â<÷:×…ðú Öï.Æ×¼²†÷Å缿åœàøø ã}ã}“ëýú1¤}òôÊÉõû*Ó}ˆùNØIYx7ë¥ýÚvö¿ö²7^å<òÆ_ÉvÚÉùðCŒ7²Œ÷Y߯1þg™ßc¼.;bÇËŒ÷óÑ~åiŽ“AÆ×¸þ$ã-ãuõ³Êâz&naü…Œ'þ>Ïø_àõ'Y¯¼.ûWë¸Úå.†Ï3_Ù š¿d—mâ|¿…ý%Ä•¸ÖºýÛás ¿prr~_ä÷d>›tŸßïÏÂDzð0Çã!ÎG‡öOÖó Óg;?ÂëûÅ癣Ü7}a6ÁŽÓþãø¿3 p¼~* _e¹‡¨ßa¶‡ÖåÃäEvá­ÉäïÚ7íS¿1ÝWXËgÈÍ£§XÚ¿5kþf}FÙßÚ/?Î|d' s½ÜMîžfþ¿÷dá¶óv†ÛØŸ²·¶òûV¦Ó|½ž¼=¯uñd¾/-ÎÂuZÿh·œ }ôë¯ýÂ8÷½Úo¯b¹Zw²ŸÕ~ßÇt££´·F˜ãw˜ãl?ÇÕ+L·óáÌWûÐÝœ'vrܾD.uÞñë½åh¥õv ëÿÐâ,Ô~ú†_d»<ÇùDóß2æ£õû Îk´by;¨·úwç­ËâMvï†{Ù¾#Ôk?õ¼÷÷0ÿg˜ÏÈ©,å~áûoËÛBŽ60Þö›Öiç-ãwí/žÔüBÞÖŽg¡ÖÅ/0|ùŠÛQžŸj¿,ûOÜ–úi\‹ÿÏ3¿qžèœá!æ?1N9¨}Õ~KïÞ““õ8Ä~™ÇxâJça:Ÿ“ý'e/<Ç|u)ý7±œÔSë¯æùµüþY†/w¯›ü]óŒÎOŸâ¼ýõu“ËÇâHûâW8þÖžš\­÷+ê«ó;ñ6Âôš¿5Îg(;\çÆ:ú<ïËŽž²«vqþ¹ŸüÈÛÈòÄÉ‹ƒY8¸nr~ÃãY¸ƒz?–…'ÈïQêñܹ“Ûã÷)cì¯Qí߸?”ý=Âë#Ôã)Ž“¡{¨?ãi>×xyzìb}ÔO¯òüõ‰“YxŒœmg>:Öú¤õKý¡ó=ãº";RçMg9ÿ/¦þ£ÜWí%ﲫ‡ÙKYÞNöÇgý˜~ˆá6Î7›y-;g)Ë=úþ,|žßewfºñl\-;zœí£ý1óÕþUíº„ùè¹ÀaÚ‡xþ'N‡y^þ(óýõÓ¼½‡ó§ÖWÍÿ÷œbýo;õØ~×äzkþ[q2 un&ûDëçF†:ÿÔ9÷3ÌÃ{™n×+ÍãšOïc>Z4Žóþò·Šù<Åú 3þžÃ‹›C¼zk^9Äú|•¡ì¿†ÃOzžt˜¼ìaûk¦ósK/a¸BùóûÎã#\ï'ž×1»ê<ð0õÞÇuã ×ݯëÜŽù~CçÌGvö³_a{蹉Îoô¼rˆß_f|Í j=Óý/1??md¨s==Gy”ú.a½ôœãÇÛþß™|ý.êÿ ã¿Àþ~Ž×Ÿ`9:o8®sOròËßD½¿ÌPëæJ†ãäFö¸–=sír;¯ë¹£ž·=0ÎzjÝÒº{5ÓÉ®ØÉñ©ý‡öcCOZo4/ïã¸ßÉú¯d½tžõë¯ýðÆ_KÖMÖÿE¦“½4Âçä{i'é9¬Îåt~«ýý°ìlÚù»™ßn®Úß éüσwrÔz´—í¾—öˆž³ï%·šÿF8kÜËvÒy›Î÷è¹;yÕ¾p˜í1"{š sŸü4ÛEö¶Þ½¤q¯ykˆé†8Þ^¡Þ/ŽgáVµõ’}%{\ö‡Îsd—èÅö9~0 µ.e;èœôÃgá:†Ç¨¯ì¢Cìï5äöh¡f0\Åû¯rý~øTް¾ãìwíÃÆx^q˜ý=J}>Ãø:wU»iÝÐyþ×áopÝÖy¢xÕóÑ׸îÏ:z‚C]?ÌsG­‡Ù¾/qxç!š÷u®yß÷1?7àx>Àþ:°8 5N±Ÿrž> {–áÞSY¸| ïgy²#öQq©ç¦²“wë½–-“ë;ÂsoíF¸OÞÎõýYŽ›­ÔCí¸•ãoÛÿåñ,|zmæ8Õx]L=õÜIóÓFò«}™ÂuÌOûªuÔû™•“Ûa5Ë{…á• w°Þê¿,óÛúŽÉ¡ö•zg3ËÏ›hWéýçOe¡æõl¯¶Çíý\GŸd}Õ_:ïWkÙÎ?ÄzÉù†Þ+àó²×8“—z¿Áf¡ž¿jÞÿ¿‹'¯}’×G©·ÎcwRŸñþíÖeë²Pç\Ïr|É®ÛÁ~ÛÎvù:Óëüˆù¾¢|˜NÏ#4O¯¡z5LûbÞ ãz¡÷pör¾P?=GŽ´Þé=‰ ÔO󇿻=\§öòþcÌwõ[:…»©Çn¶ãnÎz?éëÔ[v¡æ%O ñúnŽ£]ú®õvpr¸™íû ÛoÇÿó:Wå|$;^ãjçŸÐ|Ç÷G&žÇsücÿjZÉüup„íû*Ûý0×ÿÃl§1êuˆñô\HÏÏïc¼}ã 9ÎõþÈ(íÙ-âUö®ô¸‡ñõ<â%®kz®©PïÕiüÉà÷GNe¡ö‹:ÇÒx×{*:ŸÑ~lâ½Ã“Y¸ží¼‘÷7jÞ"¯:oÐø¸åjÐx=ÎçÏ«9¿jÜó¹ÖAŽãc|OHϵÿ•Ýw„Ïö³}µ¾Šÿ%ãY¸›ý-{î8ë{‚óþ±GY>Ï×5¾sP?íÑúÇrdï½ÂùEÜè¼ô5¶‹æƒÍl¿#,GçeZO÷Þ#Õ9éçßäOöÛ6ÎcÚïíc8ª÷=¸îê|ÿ3,Ov„žs¿Ÿßµ/ëØN²›´áùŠÎý^çüpl8 ‘—´+Žéù(ùÕ<}”öÑæs‚÷µ/:Á}¢Î'Õ‡9/é}(é';lˆ<èüzâœß5µnÜËpç`îe¹[X_Sëk”ý7ÊýÂfµõ9ú'Y¨sBÕW|éý*½·òä8ëÅq®÷Ý&Ή¸®ÊÕ9“Î5ôž¨ìÍ‹:§Ós0q±ý±žõQ?¾ÀtjíFÉ™ÞÓš°“e²œÍ7L®çkêWÍ{Y¾žßéýÀ£œ´ïÐyÎ)5Ï%wã,÷íÙ¹~hÿ¥çµâzœzèýœ1>§‡¸_Ò{n²¿r§}²ÖKͳz"ûWϵÞ2ŸQŽËaŽ›ç²Pçÿ˵.ÒnÖskÙ©ÚOi\èžm|O0½æu3ëw#²;õœs?ÇÑÚ)CÜoÓ>•ùÉ^Óûµï󳾚o†¸ßÐþAãMï?«?·qzž$;Bç²3^Ë*<1®aûh^弫瑺>ÈôšÇeë¼íßK9öÓ“ãMÌ“ü®÷XõþÜ!ò|PïsÔú¦órÙÇ{i?$ü®}ÊËãY¸–é´o×~^ïÙŽÉÞ'_zŸe'ǡރÕ{:çxêT¾^8ÏÚÃú¿Lýõ~ÆÓé9ãq¾o/û]vÉQ–ÿÔbÖŸý¾Žùãû=zsç@êá>–3ñ|•ó¶žëì Î¹Ú.¹þäø:H;aˆã~/õÕó8æó$ËÛJŽVS?íï7ŸbÈûÚícyz_ðy¦;Èùv”öÕ£Œ?B{Gç¥gáæÿõSÿe;å8:Ìûx_çX:_â8ØÊqò,ÛAÏÓt»—¼íÔ¸¢>Clïa½ÇÂûâzó`~˜õÕü¥÷¤ôÅA½¯EŽu~zÃCœGdWë9ï(¯Ëî9Æúé÷Y:§Õó[ý¾íõÛÏïzn&»~ë¿Gïý°õ~ÐÄû:´ç†¸/ÓûJú>Èüt~¶…œÈ>ÕyÖç˜nÛGïÑiŸ-{èøo³žlÿ§YÙ÷:ÏÕsÜ#·G8®ôÞú!Ú znýUæ¿Wïû³_7é|™÷µ®kÝØ* õœDãEí¬ó@Ùgz® yEõÒ{-OSï‰÷ Ê>Öó^=G!zž,;`”í:ÄúÈþÕ¾JûoýÎNç“z¿q%ÛEó©žÉN|Œ÷5ÿ<Êxzþ>¶‹Î ´NjŸý$ÛWößçÙ?‡Xï‰ýAá<í Ž“ýŒ7~brþG9OÏÌNÌçÇ?ÅðG©7ë¥óÏ›™¿æÙcëêûâ,Ô|§÷ôþAêüFç€ã¿œ…£ãY¨÷<­ŸGfL®ž¿ê÷uâæç1½ï$ûQ¿;{ßäòõ\z?y9Âzè]ù Ó^Ö¹¿Æõ˃ԟó£ÖË™^çÌ9Ïè÷pϲŸµº“߇t~v2 ¥'ë­}£žwLìó5ÑNßÇ}–žÓ¨Þzþ9ÊyLûVÙ¿»ù}ùYÃôš7vsÞf¿ ÓnܦôÜ?êiݯM׳?d­g¾²KÖÒþÑz­ßqê\_Ï=d¿¼Àûú}ÉÆÅ,Ÿíµ‰åéy¤ì-ûîäüû Ç‘öz\öšž·nãx‘ý¦yäI®z¯ée–»™õøóÙÀPïih½çïV’ÜwyçÏ$“ÿLCXŒkJÏÅteeÖ•WW~U9uz•Ýo*·¨cñs¯u/»×6ϪxuíX–¦MßÖµW›6«Ò¡,NÓ˜k*¿ªþMåó¬ëçºò‹e•õa;ýôIÝç¦4Uõ®Ê·-sm®õ3¶zi¿bݪú£N—bØ”>uåÖ1\×Uº”Å)KÓÏ_ÓxkËFYº~uiÛ7uc¢ß>i_mókŠ[¿XfYÚ²¿ªö¨c¡®=‹ñ‹i{ù«Ë£ {Iɽ:«Ê.û^–wS¿5Áº2Ú´oY¹UM㱘wݘêeŒ5¥iƒmÛ°©M˲8m¯µm÷¢nM ãWÅ)‹×¦-šÒ5éÔKúª²«â6µm]þMc»—±Ó†ýª¿º1\¦kÙµ¶ìÔ•[Ì«Mݫڿ-cuc¼¯îz+uñÛüµá±,ߦ¶ëeŒ5éÒ–á6u-«Wñ^Uš²´UmÖÔ†mXh“g1ߪ|zíDz¿¦qRUŸ6:••Õ¤CUÙýäÛ”®L‡^Ó4éÑÔuºTb>mÛ¯-wUe”]/Ó»J禿ªñSÇEU>uy´É«¬­Ú¶aUÜ^Çp¯iÚ´}ռЦ¬ºvh;®ÛêÔ¶¿šÆq“®uc¼n –]kʯªÌ²ú6µC]^eqë¾·i›:ʺüÛòY–GÙõª<Úðß‹Îuí]×mÆtÕõºv©úkÃYÙµ^Ùmjï¦öªjÛªøee5éÞÔuc±Í½âµ*þëôj·i¬W]«+»×±U¥s“.Mu­ëÛ¦{mtꥯš>·í«²òšâT}oú«b«ªÜ¦y¨©uy”åW¼×¿jnhËW“½¶o?MóUñZÓ<9Ùwù²ñ,,ú.×oÙôŽtÑw¹~3ðA†EßåzJï„ìæ»4z·µ­ïrù`«ò]®ßÖ(_ù.×;‡ú­¥|8ë7 åÃF¿½XÌP¾Ëõ€áBº¢ïrµ—~ó¦xò]¾‚÷õ.«ÞYhò].ŠEßåzG¢è»|Ë—ïr½ó"ßåò‘Vå»\>Š¾ËŸáuý–E>Ö daÑw¹Þù˜jßåK©O•ïr»~}—ë7U¾Ëg<ýF]í¬rÕþ½ú.—¥oë»\>!ôî’|—?=ž…z÷z#ß¡)ú.×oúV0ýzòVå»\ïþ«ý›|—?Éyc#Ç­|—/gýN×w¹Þy?zwT¿…–ïr½«'ßåKXN¾Ë·°>Eßåòi%†Eßå÷1”oMý–kª|—¯8Éùè~½‹­w!'~ Çzœ)ßåú­«ÞùS;è­^}—¯e¹z7wÇi•ïrµóJµïëÝQùòÒ¼Ðä»\>Ôžò]®z}—ë·Um}—ËݪÂ:+Lò]®õòiÖ_¾Øç8‘/)Í{ò¨ßôlcº¢ïrõ«~Ë©ßâ¨úíæ§{O¾ËåS·­ïrÍëEßåúíœ~c¢w7ß.ßåÏ1_Í“½ú.—o¢¢ïr½{*7gÚw¹8®ò].{Fï‚ÑoÏôÎ>ûW¾ËåS¼­ïrùn‘=p˜öL[ßåò¹ªw9‹¾Ë·³õ›à·Úw¹¾·õ]>ÂrÞnßåòU¡ß€Tù.×oÙä+ìÖWö¬~CQô]®ßv5ù.—¯Ö/fáTù.Eßå²cåC¾7Úú.W;êÿl¨ò]>a²½ûõ]®õ²­ïòÕÔ£WßåÚï=’ù1ü¯Ÿ`¾wâ¯a¨qPå»\¿]¬ò]¾í#Úýú.ßÈw½µ¿8Ó¾ËåK£è»\¿µ9S¾ËeŸißåú-áÛå»\>+õ[è*ßåú-Æ æ'ßåúÏsEßå¿y.ø.ßInä»| 뺾ËåûÊw¹æUÙaEß岋¾ËÕÿEßåO0œ*ßåZ—4_Ÿ®ïr'Uù.m}—o\—…U¾Ë©—öçûô&ßåâ£è»\ë’æai¿ò&ßåüíÿĺÇP¾Ëu^Ôä»\¾¾O×w¹Ú½Êw¹Æ½ÎûôÛ!ý†\¾Ëw²=ô[œ'³°ÉwùÊ»&×gùê·T:7únñ].M¾ËU^Ñw¹ÎOtN¢ýõ™ö].ž«|—ë·Eßå²;¥·Öå*ßåúíòÛM¿!^w* åcNû“^}—Ë~<]ßå2_ùöx‘íß«ïòíœßä»üdöê»\ëb[ßå*oË™jßå«™Ÿ|œhýÇU¾Ëï;9¹m}—oÔo±y_ãüt}—Ë·Øý¬ì0 Ý;˜…U¾Ë·‘û¢ïrù`”ïrµßéú.—hù.ù}—k¾yœñ‹¾Ë5n‹¾ËÕjß&ßåò¡ ;²è»\>¯ôE¾Ë_äwë|K¿ÉÖùo¯¾ËµÑo\õÂý¹ñ]~2 ¿[}—‹ß¢ïò‰õŒßõèt}—‹×†Så»\ÏñþŸõ]Îï:ßÝÇuy7íù.ßC^{õ]~€vuÑw¹|Lø.gxº¾Ëª}—ëù»Åw¹ê©ýÍ™ò]®y¹­ïrÍ;ÿßw9ï+ê«s$Ù7M¾Ëåã¬ÊwùËѾ¾­ïr=o‘ïrí'4Ïna;ÊÞ=ZhùlÒ<+Bò]þóÕÿíº‹óÈð7'§ÛÅúÉw¢žC¨Ý”¾è»ü€Ö?Æ+ú.EßåòAÛ¯ïrù°Ø\8ojë»\¾ã¶q>”oÌ^}—kŸUô]®çªïÚ•ÚhÞ–¯msÍßjG½?Sô]®råIãuâÿdf¨ý›ìÇgXù Ñú¨÷€š|—‹Ã·Êw¹Î•‹ó@[ßå»ÿ­ò]>ªçœ/ÕÿgÊw¹žG «Ý˜o“ïò•쟉÷§d_´ô]..Š¾ËµÏhò]®ùE¾Ëun'ßå;ÙgÊw¹þ¬*ßåê_ù.—§õ©Wßåú?Ï›|—oå|(ŸRò‘©ÿk¡è»\¾ƒõ>Ç“¼¾“ùôë»|)ó›jßåzßiª|—?Àrš|—å¸Òûco›ïrîsÛú.—Æ}—Sï¢ïríß*ßåkY^[ßå:G-ú.¼ë¹RÑw¹þÏ‘¢ïòa=×?5¹=³ÝÏ´ïòü>ѯÔë Ž?½·Ñä»\z‰/½_¥çò]¾‡íª÷ݾÛ}—ë\Hï³6ù.×|­óÏ©ö]®u«Êw¹|¤6ù.×ü]å»\öÏ”û.g¾z>Ú³ïrê­ùäØìÉõ«ò]~xþät^|—Ðî×yc¿¾Ë·pž>@=Ûú.ß-ßÔo³ïr÷©ö]®ý¯|—ïå:(ßå:ÿ–ïr­g¾Ë?ðû̯Êwù*êûvù.×{³ò].š|—ë¹Ëĸ`{LµïòÅüÞ«ïòµ\_‹¾Ëåsó­ö]®yñ»ÕwùóYØä»\û†G¿Éw¹ÞïïÕw¹Î“Õ¾Z7zõ]¾tq}—ëÿø}–éä›Yïqê9ÇÄ8bü¢ïr=§Ô9˜öÿò]®ý¾ì%£È'ª|6Wù.×{Rò±®çtEßåOSŸ©ö]þÓ?Árßä»ü=YøVù.ò$Óé܉õz»}—p\¾U¾Ëõ^IϾËY~Ñw¹ÆéÄüÏ|´/Ôsñ&ßå#LWå»\ïa6ù.×¾ì­ò].;át}—ë½½sÚ¾ËyýM¾Ëyÿ¾SÔ‹å}—ëÿ.¬ò]>¬÷Ú‡&߯ò]®ç½ú.×¹iÑw¹Þ¿êÕwùÄüD½‹¾Ë_b>U¾Ë·éýÐAÖ»à»\öf¿¾Ë×S¶¾Ëõ¼·è»\ç./Q¯^}—oøæäûƒÒ“ú®ïrÛ¶¾Ëu«çþU¾Ëõþê³Éät‹ a•ïr­ƒúÝdÑw¹Þ³{«|—ËΚ2ßåÔ_¿wÑyQ{ßåM¿Wo㇠ì·çm|”ýο˜gÕïÔ«ÊoÊ£.]mþêòo¿M{7å]÷ûþªkÅtuù5ýUõ}Sú©ô£P7Îzù+«KS¼2=êâTÅ«Š[—oUYuíY—¾¬Üâç~Úµ˜g¿ã¢—2ÊÊ,k—ºômú£ì{¯mçÚ~󮚫ڶI¿ób¯íض¬~Ú«n,KÛv¾l[~Ût½æ1|ô“¾iS?kKU¹m>÷’/z´W·Î?7Í~Ù¬Ó¿n.è%N?ý¶K?y—Í×ý®ßUeÔÅéeÍëµ¼~çŒ^ÇS¯ë@Õ|PÌ«Ÿ9¡ným³6÷2>úYW¦êoªómÃÁéêq¦Ú¢×ò{éò´mËéE§Óýëg¬MÕ¼ñVüµeµ©NMsOÙšVÅ}ÝüÜ‹ÝÑÔwmx¬«uu(–ßæsU¹½ü5ñt¦ò­KW§Ëé¬Ó½ØMùóéu]®mò¬Ê÷tã6éÚïßTޝ^˜n“G]ÞuvËéèÐ+ÓýŽÙ~ôis½.ŸºïmãÔåßvŽ>rzý;]^§B·~ú©iNœê6¬ÇSi;ïŽÞS=nz©ûTÛ#MóN“ÍR¿nžlú;´Å|¦êïLèP·Æ÷;GžÉ¶jËb[›«©ì©à¸ÍÜÕËXëÇF(‹;vZ{u÷›òîW§ªx]ñÝwžu¯Ë¾ØN¨Ïm¾w2è¾Þ-ÅëÝy”}î–îôÅr‹aQ·®¸®L]ïÊc"^I:×ß•Åi’ºü[Æ/mŸŠ´¦îžî']c²x¿˜GÙµ²üêêÔ§,]ƒÞÝ}WªsSÙeuìE÷†ºÔõǛư¾ï•åS¯*n]¾UeñÞ$NÚ¤¯ª'?¿‰—~$éb¯ê~™Þ=–Që|ŒÂªxÅëUzõ*æÛ‡¾UíZm­<Šù'y¿»¤Ðeeö¢GR2ž«ÒËn[VM~ód1N’÷u±ZÍ—…8=Õb}ªêÖ&miúÒ³;}1¤‹¤0&“™«sêô,–[ó¹U›ôïMóI/úÓWé[’ÞÂÚ|jô¯ÛÝe$sswùIIß÷+õy“}W¯EÞuö_©Í•t­›Å°Muu,–U§©®UåÕå]¿,]Cù½Ød“lì¢îIÉüÐ&ÿ¤¤_’û±»œŠz–®‰Ýi’šv*”=eL4é9ù½©m’v㸵mò;“’”Œ»:’ò¹¸5Û-uêÛ>,êšôÉ{Ûëo§$åëO™=_U§âôMã;)°Ý%®;~R±ܤåÜݤ7ïk nÜ{ô›Ð·+Ò󤂲ÏEÝêêVW§ºôuum™oÏ,ÔéR—_R3º¯%…~éµN%ùµÞ3—Õ%)Œ®û=Y5ÄmÕI…ÍWv½©Òµ­^UiúI_—.)ÌIÉÞ¨äs_{¼$™<Ç5èÒטíAŸÆóƶù¾—Žýºï ù7ÎÔùMc¶L—©’¤a]h**të%$yÓZuÎRºç=]ËòIzkeúUéz:zוÑg~¥ëwÅõ¦½Mm›%oÞOtŸÁ—íû&ƒ$·¹j÷äIŸm}:i‹ùô“n*óªKW¨c·í[5ïVîÇ뮵ԳՙTËx=MWå™´íÏ?Še%›ª©~5ºV>£-‹ÛTNÛ2«êÓ-…ûSÅV[۱Ğõãç¾a|xùÚåw|äžKí:Wß¹èŽ;nZ€níºp[ç¼n¼á†2 K^²ZyÆŒ+–,]óXÇkÙ·“ü7åí_¹räRÈE2Ÿ×¯‡\ YÄû³˜®^é8˜Ë|:Þƒæðûmü|ã]Æ<:÷:N×®‚,dÞ×2ÏN½ÞÃ2;ñ®c¼™”K¨Ã4–#óïÄ»œeDæ7‡uè\›Í°ã,`€é®`—°Üëx}€mpóì´Á<–{5ó¹…é;õº•ºvô¸’ùÍìÒéF¦›Å<¯d7³œ9L3À4uõ‰ô¹‰:,b]ÞÉpãNgÝîìŠ?‡m;—z̦^WuÅé´Ï…]}7“õœÇ:NïjƒÙÌSýÑIs>ï_Á|f²¼öÁ-lŸÙÔO}q ËžÍô¹žå©nåwµ×y,ãú$ïkµÇ¹l‹yŒ?u¿œáel׋Y~½šºvtZ˜äcºS§s¨ÃmI>&Î㽎N3¨ÓöçuL?eNãgõÅlöQçú{XvçÞÙ]z½—å¿›ù©íg°n ºúèæ{%e6Ó-¢¾³XÎ,æÛêƽ•eÍgº˜çÍl»NÿjìÍd[\Åï7³.sYöí]qf±]ng;Ìïê›¶ßIÎÒùÌ÷6ƽŠuŸÇø‹XÏóøyCÍï×uõỺúoV’ãN^cö»‘÷nc½¯e¯¡î3ºt•þ¾XH=®¥Þ×'ù˜½˜éodû/Lò9ëZ^_˜äóå\ê{1ó™ÏvÑZÀ2¯¤nó˜Ïõ¾…Ÿ;ißÁv¹žýª~œ›äcëÖ$Ÿƒf2Ô< ú_Á~ë\ëx#L²±rõŸÏ¶ŸÃ°sÝ'ÙßI>>oëJ'Ög2ͳ’|í¹œý° ÉçéËXŸ¬Ë®ïW²¯çç… ;ù¿ù^̸³“¼ÿ;ír.ó¾€:Í£.ú<ƒ:^ÝÕ¾ÓØ–‹’|þZÈxÓOí7'Éç»éL§±|ÛüjößåÔûzê~ u`Yw0ÍeI>çÍ`¼¹I>>”w'ëXõã,~žžäkáô$ŸogP¿«(g³íæ°~šË¦ñ»ò¿Œå_•äŒ-¤ÜÄð:æV’ÏW2íuì‹iì‹N¼KÙ¾š3ç±-;÷Þ™äý/Æ;ŸSÆ{7e>ë vœÅû|/d¾Z#¯c¨ñ©õèæ3“eÞ”äãez’»NÜw%9×=ßÏ2/£~ç³Ìëgu‘ýr-ëxÃ…ìçÎÜÝ÷ïMòuä¶¹Ö-Ís—²n×±Ì÷&ùº´ˆº^È{ ©›ú©Ó®ÝöòÔs6ëª9Bóç‚$Ÿ3®a/g9ê× ¨›Úfen’¯_7tÉÅÔõ¦®6XH]:å~Ëýщ{[’Û7jÍ¥j“IÎÉU]m&{æJ^›Åëêë›ÙG ˜î^÷Œ¯5y&?Ïe\­Ó²?ÅêÅÌgZ’¯ïzž“äœ\Ó÷Zê¢|dwâPÎîj'­SÓ’|ŒÌé*óÜ$·w¯cÛ,dœK0­æ@Ù— “|î–­1“q;ãl:ó•Ý¥8—&¹]vm’¯g—²,1sc’¯ù—3T½%ùÜzeF’Ï{×°ýoKò>?—¡æÙÙ]ý+»â êÔI'›ìª®4 x¯SÏ øù2æ«5€yÍe[ÈÕܲ0ÉÇÙeI>·wÚKçFï¡iWÏ`üN>·'ù:Ý“·&ù:(ûj¶Ï|Ê%I>¿ÜÌòÔf1/ëŽnZc¦w鼈e\Ϻ¿‡Ò±}"%eØ©GÇþèÌ#g±:óHgl_Ü%ö9;™<ßxÊY¼×Éó|–3—í¯ö”>Ó“|¿¶å]žäsõt–5¯«Ngóó…IniM˜ËøÊÿf¶ë l­ ·±Ý:}#CãqÛM6Ã@’ϯ—%ùÚ¨=×¥I>iÏ'[ô2–wI’ï¯;:\“äkô¥¼~m’¯3óº¤3fïd]ÜÕïW$ùÞûö$Ÿ§°®ÏW²}µ`ù4wP·9¬³úæBÞÓ_óìüd²Mx{’Ïa·R´\É´Z·æ$¹,îI>¿,¤.$ù^Uí£õ[}"îæ°]®ìê·Nüë“ÜÆR_Ïvèˆæ­Ÿ²£¯èÊgÛAùÍg½/Kr[F{¨óXwíE´Çº‰mxu¿‚mqe’Ÿ¹\ÏöÒÀõ̳SϘäûºËyÿrê¯5K{™I¾¾¨ßîHr;ZíqQWÜ;YÎI¾·¿…úÊþ¿"ÉÏLf%ùº#Vµ~Ì¥È~¼.Ém¶ŽÎç&ùüy ÛðR¦Õü¯1raWÛhªõaF2yHrr6ë¯1uYWyçwÕGöžÖSé(î:qÎf­½ZóÏf¼Î÷ ºúQg*kÛZçV¯óYÞŬû…lËYInÛÌd¼¹I¾¼6É×2Ù´jÏîýµì{1¦ôS²)´tʺ%ÉíHµ›X»†e¼ƒ:ˆÐ\5ä{lÙÚ+j¢þ`xN×õKXÆô$? ìä«OõõÜ$ß/hî¼%ÉmÆ;’ü<©óYëå –¥5V{í5GÇï²·:qoJrAv”Î/5Þ¥'þ"–+›HóŬ$ßOÎJòõL{éui’Ÿ“ÝÐuÿÆ$·åÔöÚvÖZŸäiÒ›ïfJçNë|%¥.g±ç³ ´Ÿ’}·€ñtÕ½V]ÓÕ7ÚG]›äãWg·:ŸX”ävÍInÛ\’äcäö$ß7œÃ¾Ô\'»OÝšä{ 5•©±/»JçÒZGgñšÎÚ´æèÜV} [W<]’äkÉ˸¡«ÝoJò3£Î½óY¾Öiëh®¿”yiŸ¤ý½X“Èvи¼*ÉÏñ/Jò=Æ I¾oÔ¹‚ÎtuF0-Ém©…IÎîÍL3-Éí}Ùº3“|>×yQq¾*ÉÏÏeÈöÒzsg’3õþ®~”þâD牳):uÆÃyüÞ˃I~®ra’ŸjÜ’ä6”Î". >Ó’|/$Û¢£÷»“ܽ–º]œävÂInGuÆÈ{™Ÿæ=;¸–z- ®3|7ë¡ó[I‡Ów%¹½3ÀôZ4ÏÈÞ½€étÆ*›UgTÝ{ήþº"ÉϿԿšß¦wé×iï³’|5À2Ïãg­Y·'ù<Þ¹®¹Wç€<Ïg]Qd]Ãô:§î>¿œÎ:¾+É÷ïæw{‹KÍm²Îe“L>w›Ë¼ÎaÙ·%¹=qk’¯b[gjSíe³]Äkúj- >·'ùùéeÌ_û­ƒ·wµ±ö!šçµçÕsœEI¾.‹ñ…ÌKëé{’ܾ—}8'ÉŸáÝÈ~Ô:u+uŸÁ>Öž@v·æI\ß•§Æú@W/ h>:·ÖùÎmI>ÏjîRy:_S?,JrG{ðóºÚGý¤óÙ[’üLVÏŽ.HrÛdV’?sÒùÙlö‹lSÅè\w&uÓLë»lÍ;:g¸¨+ìRÍe²Õ>:+Ð8èžSÕ¶sØf·±îJ§:«®ÚCÞβ¯b½4^ÄÁ¬®2ç'ùº¢9Wg‡ÓºÊ¸½ë³ÆÓ¢®>Ô¼6/É×q¥E /Jr[[ÏoõœMkƒìdÙ¯hO§gݶBL×gWñ¹¯ûZ]šº´eqMMüº|›â—ūҵªnué\IY½J1_WÈÏU”]ß$ýëaKÒójºßoÛ”åÙKŸµÉ·j\˜Š2ÛäÓ4>êÆbY¹¦"¯º¼ËÚIc¸íªêß²²Ëôï¥Í›êU7æL…ôÒuýP×_Å{mÇd[vÛŽç¦þiJßkü2Û¬emX×·mÆB¿õnÛUs[•þuk kQfUUmÑk^½®§u}ÞTnÝÚS5ÏöÊV¿c·8f{e¨8FÛŒ¶ó`ÕüU5ïN_–åÓ”oÓzU6W­7M¶UÛþj;±Ø¯m׈ªrú±ÁºÛÌ•äÕ«½Ý–ÿ6l·)»ßz×Õ^ô.ë£îñv:u(rÙ´_j;ß5Í»U㳬ošÆjÝúÖ¶zá¡NªÚ¼ÆêâWµs«úµÍž°{îkc—ökßÔͯUå´±}ú½Ä¯“mÖ€¦9±MÚî­¦bž«M:4Ù'UýÙÄC™ ÔÏØ,öE›MúÔÍ)UóD¿krwš6yÔÙJusX1^UûTÕ¹n®ª²aÛ¬3Mí[l“îñѦÎumx&ã¶•¦µ·Wúiªu¼j\ÖñԖϦq]5ï6•åJòªŠß´'è¥ëÚ±™ª5¯¬ ªêÛf¬÷ºÆ´e§—2šêÔ4ƪú­®OûíÃnéÅ.®»mŸôÒ®uëD™žýp_64éÔÏü\¦sݺt:mU¥g]¹Å1[§wYŸÔéS¶G¯ªO/÷{µc›ì×~Öʪ|ºõ+îsÚž ×Õ¡éÜÃ&ÍëH›ñ^•o/ñËÖÑâÜSwFÑ4ϯû³˜¾ª]šÆ@ÝZZÆN™^mçÄ6óo“[r®Õù¸}#™ü+òw|â±'V=°ú!~×'—/{à‰Gº/½óãÜw?/tòpÊÃ$%¿ŸücóG—<²\?6×OÂÊ%kXÆ/nõªµü˜âãê5KÖèΪåë>vÝñOç·Ü’û–+ßÕK[µ¼ Á;W=öäBiÑyÉç;?¶ã?þXEeÎZ¶dÍ’…+V!IV¡äÛ}“87mstate/data/ebmt2.RData0000644000176200001440000021154114627637077014435 0ustar liggesusers‹ ,ýg¼p¥úÇv?kÕ©× Q?wÖ¢U›v:uéÖ£WŸ~~ýºú…úõôëë7п@ÿBý‹ôê_¬ßHÿýKõë7Ño*¿×Ï~3ýËô›ë_®ßB¿¥~+ýÖúmôÛê·Óo¯ßA¿X¿£þúWê—è_¥ßI¿³~ý«õ»êwÓï®þµú×é_¯ƒ~©þú=ô{ê÷Ò¿I¿Lÿfý[ôoÕ¿M¿·þíú}ôËõûêWè÷Ó¯Ô¯Ò¿CÿNý»ôïÖ¿G¿¿þýjýú÷êÒ¬?D¨~þ0ýáú#ôGêß§?J´þýûõÇêÓ¯Õ@ÿAý‡ôÇë?¬ÿˆþ£úé?®ÿ„þý'õ'êOÒJÿiýÉúSô§êOÓFºþ ý™ú³ôgë?«ÿœþóú/èÏÑQÿ%ý—õ_ÑUÿ5ý×õßÐSÿ-ý¹úoëÏÓGÿ]ýùú ôßÓ_ÿýõ?ÒÿX¡þ'ú‹ôë/Ñ_ª¿LÿSýÏô—ë¯Ð_©¿Jµþçú_è¯Ñ_«¿N½þý/õ¿ÒÿZÿýoõ¿Óÿ^£þú›ô7ëÿ¨ÿ“þý­úÛôÖÿE»þ¯ú¿éïÐß©¿K·þý½úûô÷ëÐ?¨Hÿ°þïúèÑ?ªLÿ¸þ ý?õOêŸÒ?­Fÿ¬þ9ý¿ôÿÖÿGÿ_ýôƒ~à!à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?øâ?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?øÅâ?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?øåâ?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?øµâ?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?à?øéÇŸýÿГŸÿÇòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòþôã_þˆÿˆÿÈ‹ˆÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿˆÿhüñ¹"â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?â?úùçþ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ#þ£Ÿ~|܃ bþc bþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþcþãŸ~êKøOøOøOøO,LøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøOøO~åÏÓŠÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ„ÿ䧇ùSþSþSþSþSþSo¤ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§ü§?ýøŠ/ã?ã?ã?ã?ã?ã?ófÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆöÓ¯÷sþsþsþsþsþsþsþs+äüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüçüç?ý8µ§à¿à¿à¿à¿à¿à¿à¿à¿°RÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁñÓÓúJþKþKþKþKþKþKþKþKþK+–ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—ü—?ý8¥·â¿â¿â¿â¿â¿â¿â¿â¿â¿â¿²rÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅõÓÓùkþkþkþkþkþkþkþkþkþkþkþkÔü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×ü×?ý¸”§á¿á¿á¿á¿á¿á¿á¿á¿á¿á¿á¿á¿±QÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃóÓËøZþ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[þ[¶ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·ü·?ý¸„·ã¿ã¿ã¿ã¿ã¿ã¿ã¿ã¿ã¿ã¿ã¿ã¿ã¿ã¿³qÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ÷ÓË÷{þ{þ{þ{þ{þ{þ{þûüÇä=ÿ=ÿ=ÿ=ÿ=ÿ=ÿ½zþ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þ{þûŸ~LÝ1ð?ð?ð?ð?ð?ð?ð?ð?ð?ð?ð?ð?ð?ð?ð?ð?dàààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààøéÇ´=#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ£FþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþGþÇŸ~LÙ5ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?lâââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââúéÇt}3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ3ÿ³gþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþgþçŸ~LÕ¹ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿ð¿táááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááùéÇ4½+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ+ÿ«WþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþWþן~Lѽñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿ñ¿|ãããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããûéÇôü;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ;ÿ»ìüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüïüï?ý¸5ÇÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿÁÿa'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇO?nËsòòòòòòòòòòòòòòòòòòòòòòòòòÚÑÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿÉÿùÓ[r]ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_ü_vvñññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññýôãv|7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ7ÿ·Þüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüßüß?ý¸çÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿÃÿc§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏO?nÃûòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿòÿÚñËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿËÿûÓ[püüüüüüüüüüüüüüüüüüüüüüüüüüüüüüvþñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñÿñßÏ~ÿÿ£öî?ëXšFçl¿úíù4à‘+ÿ¯m¢¦>ÿÖÌÊ¡Ù}žÝÿàm¡)ÍßáÕ£~£Ùõ7¤ß¿‰êÊîŸtmæNÚbûòqï~j6ßé½>g]A±?¶ý1õÊûßÅK¯œ~;½ðúöGþw.å?õÀ.Þºåî0ã·/§]CÛ>qù·y2åâïí}ðçßœ¼Œðë¦ÇÍù•·œ6ëËç©ôü-/û a=åæn³õýíÓôuûüúö÷}²ÿÛâ§þÿ›q•§.ºdÈV¨|ÇÒý·kBÅÇütHÍÿ6¡êak›ö¾ýqªœ)a3ÚræšÊ­9™jøÿûìçTýÛíµ?ÔFÕÏì´è ]~¡ÁÉ'æ.˜<ŒF¼úãyÕ͔ߌ¨öÆw_½÷‹Ó)öÒßo-Ë{¶?8¿µó§hø“·LzA55ßtç‚sŸ:‹Úv.z`“mÚ(1dŸGzÍ}›ZvÚüò»~ŒJwÙpÂý/,¦†-†¯z¬úlª—û¤,Z|uÉìß¶{šZˆ]răTE¸×‚.£Ö׿ÿê½½ËhÉùBù´°òãoÓ×}M ýõü?·^B]·¬¹ï¡Ÿ?§èÅO¶ß¾–z­Û*gçCϦܾÍß]óø$Úi篋Çßu¥þ}ðó»n?ކÞ0m³ÿ&^@+ÿ’äWC+Þ[ºKÝ_'g¯··Å%ßíþÕÏdÿÔ´êäýÞÞƒ6ÚØµç”#i ~ýbZ±âdþ„Òd9…qZ>æ”û~yñjêx`Þ_x².ýã¶CŽß‰º:§È~ðzêºPÌÉÔµó¡çÜ[кäË”ïHƒö|'dZrúÇwŸ°þêz⧪î#J¬ûèúâ–S¨³ßìÚ£®O#ÿäò¿¯~HÏÞ§´|Œ 'Ò–>ôÐÈÓv£LÞoí3ê`J÷î·rÚ¯©÷éò¢>¢ÔÑ·¤·¨:žÒòñι“’§É›EígôA4è;ñËykŸž0†’úžgPòÎÝv?ä¡j§ÿþuJÊ1¾ô!jÛtÄ‘§ÕRÛ¶÷0|ÙjÓó~Ué¹;Úræ^õþ«hà‰gÍê¿¢‰8âËÿe¯¯X±1Þãç©UûáÔ¶kzɤEwPÛæs7­núžšÞÛ»°ßìjVÜ ‹iÖ'­¼àû2š™ÿïÏìü%ul6á±ó¿73vÎ{múÓW½·£Q3Ýf¿]×Òö-9ç‡ï¡ôø»¾­ÿ“~õ“õÈ[”ÞV[)Ðûd¥¿?tÒæo\äçgô­ wšÞƒFÊ=}t_šxí…§­ÛçwÚqi¯+Nw þ{öF}®·Pê2 daö¯ü´èõ¥Ÿ½¹î©¡Ø“ÄöMžN4®ïKI~Kw¾3†fL¼pL¸ÅžT¤ÿþÒì/õyÝL‹Ÿú©pÿ/¢É‡>æßóî¡Yîǽáï£Iî×]7¡&½î>¡F¹NO™éß×â5èç«¡PïM©á¨¹»mö\ Í(•@»"ûmy¼Kßo×5?ž¿Šêw¼‡¿%ß§?lÕ§åqš¦ïáUŠ_yQ×âš×).uÍ÷TËÑ`þ¯QlŸÇvÅß4öêAMKßHã4.üE³äVúmUËk+*§Jë§RÕÿ:3ßlø‘*¯øOÚ9TöΟ±­nFå ‹óh¡„Û?> "I—öúˆrÏËZ¸É¿RÍÏ£>xâò¯iì§ï·éˆc©¤OË“ý.Û†êåX¨¢9wgêýû?šo8™ÑuìÙ[íIcôïÏ£™òšŽ­¡NFé…§½D7ïøÝæsûSJüžAþ‚û¾+¾¼ø¬åŸQâË—9‚îO-ú¼~ 6y¼OüKµ‡sŽñϵxýf­ï½•ïµÛ5õûœJ™m‡þùËy/iÞ4˜&k|É£´\»Om öä/Üæ÷]Ã[û±ê·|}mö»‰Ó·®¼i0§o—þqë=Ÿ¦6ÎÖ>ž¤*=‡Ó¬/‚ŽßçŸJÅë–¿$â}I‹î½#Ó—TËŸæä¾“iˆ¾ßwzîÑ:IhÓ–zÞ¢æ-ŽmñèJHZyÄHŠÝ3‘Bšg8 ,?jülñCÇçGCF>âukæC)˜nô:gSËçíó ~dÿ¬ùÄÊÌÛîŒ6lM)»§Ó@IúuQF®©_ôŸ'ÓÖgü7ñ](çeýf+)­ÇëRÊpõyÆ}£©ÅpÒpÙõ ø¿s–òuq¥ïºýÄgû¾@ÙúóGéÏç›þ{ŠäµV~FI £4›R¯ìû"=÷™Çј„㎡´”ao½F)­oÐ< Ÿ ÄßËþXÏÙž”Öu]ïÜ2*Ô:íJÝ=j鼃K(5WüV¿wJ®’‚¹–ªµî¤ìÿN=“uLöïò:>ZI›jÑ@I̓[©ÑvdÛ@*n’»Œ’z¯Üâq+¡÷ÉJÊþS ÀÙ=ÿ¾ûïQ»å£¥R6Ÿø4µËq=§Šbv¿%¹ZúT_jóøÙ7n¾/•ÜwüÀNõóQõâM‡¶}p&åèùh§–¤€Zì¼ÀìÜ[Îÿh‹»i‰ž³Ï=Ïh•4ºó»ì Š3®;‹äú†Z5Þ¯ ÅR>¦Þ¢ÖP.¬Û¨¥YƒëüÞNÈñ;°¦Z^ЬùØ;4^óà‡ý\ ^hÑ<þ jêýé+[ûÜïá˜Þ«ÇÑ»ß'h^²5)*›ø§=îòbÊÖ÷°75Ù}•à·=û‘Ù4°Pš$5®‡3È“©‘o¡½®>-û/)³úüD±_¥à¹Óïxñ“†áT×OÐK)!tĹãh”ÖEwP9žq~'4Ͼ·ìœôï¾qh„ž‹eTÿË”Ñ «¯ ytå+Ù?R\Ê™.¥:­O:©Nò—'ûQ½„áM>¥øæò‡S\Ïó8ª×rkSšÛ)…Úh븷qÖÙ½“¯÷æ3ë%@ú›ê¦Ê“Ÿêïw¶ò9|i^^é÷J…¤Óûßá÷j¯­• ¢*ÉûJzQM½ü«¨JÒŒ¿¢ê{4¡¤ÊS~\sôg‹¨ZʹæR®¸¨ðóW!ey¿yT.×ÖË\Éq¾·•kÝð.-ºëÓÅ^tX}×!ûîÕ4^믷©“ÏÝ£æÓ­‡Q ùå”~H.¶#)mç«#¸ˆoÎ8¥‹äBîuBz¼(#eànox\Æ=˜2ž,u|ÐciÎÙÙÕïr5ȵܸœ"åQê(%ÇiÞ””kò¦›)ùÇõËnݵ‡¯‘ð‘û‹ãk€Æóch+×-ÔºD.ˆ3©MàxêcÔ"åÀk÷P‹ò‡í~ï –°tÈŽÔ²ÛB~¢·P‹¦å³¨)”/pMTݳ©ç5‰—Îûòºe´©Õw ¹//ý“„¶¤¿<.ÕKÚ½noª•k÷¶2ª¿ùÑ'½·„zé{¿Œ¶²¼;®üÅ÷×÷ý1Eúü¾¤9†‹ùr{íJ5×{s)Gù²J •ŸÝ‹j„NÝì *éßo7gÿ£çëQ*–úòé¿i‚ñ"ž|¶çùË<×ÎézngÓ=Ÿ»Så¿'òåt>r-•iýñ2å+oÒßóàJåo/¤,¡{÷åß_+DÂÞ4^?ož¿ÿb«çK>‘›¦b¡¿>\AÅ–úï·^¿p~ìjÏ›‹…(ý”й=µùÊÕ¼á]¯wG"Žg ­xõŸ´TãÈM~Ž­Nñºw™æ]«iý{äÍKí} ¶||‰\‡Ï\BKµ®¼›z[þÜöRájê£ùðqÔµ·-OP_)ãþï<Ó{n£ôýÜEK¥}õÚ!_ˆ·(£xDΚ‡ïý Õ¿?•J/.Ç÷"Ji¾7Áëô”ÐLß¾FãõÞø†ÒR¦¼9š2ú¼öò<ux–ŒÒN;ÐfÆël£?×*JJù~{HÃ…ŽÔNmßK·3µ-’‹a ÕH»ÅÏþ¹Á¥$ï·ŽÂî<­'³úõ¾ß¶–ï6Ï<ŸÚò§C½ ~÷f»Ýï-ò¯Nëý¦ñÕʦ6I_Æ?G³õ~|˜š5ŸïyùlFOþ¿_8Ö´Jˆ®5Ô´QÒÔ°FÍ=ÎÖiœ¼Žê%üܹˆrôó½Kñb!f¶¥Jy…Ÿ…å_=×ó°º/\¶äùgýŒ½¦Øã òùA’>™ë} C#£j«_-^fdõ'âFŽ„ç¥ó(Çâ]¾<¾g–S”mcbThçÏwk«£¦·]ϙ赔cyxò[Qg›õ·xÜÉ‘ÇóιT`ç@ËŸ»î ÅŠk(S³bôùÏ:Þ¦èý³'maõr±„÷cÏ¥¸æSw;_“\}Õžk†-¥”ñÖè#Ð-€h²Þ;åTªüK-Y¼-þ‰7©\è»Ìz*•ëmÅ)”¥8»›*4o¿†š5>Ρ¥zNô8*ó u1zï?·¹§ž±þÍý¾9x/ÙÿÚs›©çãkê­ñù'ïtiÝ”Oy}ÿ9ð…•o­G¶§ŒÖgÿPê^!þVR ¼õ`ïC¤´nï¢Xû#¾{÷bJ[]:I®½ø”Úb|è|îßFIóNK)­Kr¨P^Û m”~Wì$µ+¯w<5iä£vΞëWç-SÚWº€Úí½âs·.ÿ°ˆÚìáyµiß"‹ÚåœÌùÞMé÷­¦„¤o^@II‡‡ÿLI®zwÚ£ˆ’r þ÷ µËs뻩¿—ÙÆK·h}³'µÚûi5^®uù {ÓÍgOõû©EþÙ•’ÒbÿN¡FŽúûLu¾}‰âëçauÒXú‘¯Âç\JhB|5È?›ó"Õ ðÕ^Ž÷Š>?ì͵gRLë¶Ýi~7¯IõʋΠx¼ˆ;<žOS,®Æ„Fb•ɵ[Hµƒ•  Z}îÓh+͛˨ZÓó{)Ð:p|ߣ¿Ÿ@uZ§L1®–×Ýð*ÕœN3%»€/ðz²NÜ0ª}íµåw¬sÞeÍCÿ£R¡×mI5/IpÕØ½–dY.ÅG_SÞ÷»R_ÉË·Ü’Š”ÿ¹Àïí­-¯.‘¶Så–T"¯õù€f+o±š*-,þAا®þZˆžŸ©TÒãÇÛ©BèÞgWQµÞcW9?ûµÂx!ðOx.àK—Yeü/ÍÒ¸SC™ ÿî$*Zòü3¯ÿíhøÍÓ†@\-†¥4_ÿû=ýd¡ßûŒbRNÚ’ª5½øÉû6àãk´/p>Ukß`'Š ®ÞJÅrŒ;š½Ó>‡ٟjÞ2–ÆIYµvªÑyŽvÇöÕÇþüWH{yÂoÔ¨®ƒ©VÒÎÛh¥ÐUµÒ Îb¶7—:8{Ùþûë=þà籸â}Jà¯EõçS³öåÿòçÕú‘ÞPÚêÓŒ½Ÿ´ôã^øÛû.·GÒ }®‡õÔõO“r.ó{QÛhù€'Pl†œ”3zò;‡Q³ÏM´£æµçSÝþ_<öó¨)GãâzªÓ<ãNÏïÒBW®]ƒ<;ûÇîçJi¡?f?JIË=<}ƒ¤oCÿt¾aÒëB˜}B-‡osSѱ#Q/SÃ$iÐÿéý‘z«ãg~/×›8'ÙŸësü“Š>Äoð%êÐ~Ä›´\ëç+²ÿÖ÷ÿ•I[ïɼ¿4S맨“³Í//,¦NˇŸ-o”Ĭ––«žbÛìo4Í£=/]~ÏÕ ™u(?p#uj~4„f)_ô¡÷’S¥`n <‹‹¨Û'i;Ÿ:%mš’r,ï?Ããò¹˜Îóú´MûŸSRóÂ÷(Þͧà9{ÞW-Y‡³¨ý+8ÔÓhíœàù xŸæÝï8ËËÞðþún-Z'$œ÷F>ŸH<ùYïO_¢6‰?ÿL­úÞGÑXëKµkÿìQšhº figœü=Õ~èuTð«428/cTÞth“ŸÓÐòÒø?×Þ{çÙŠûhŽÐ‚>E3{~Oµª‡ÈP£Ð/›¼~oÒºâXjœÿ0g¬›Q£Æ½e”Ð~ïÛàû=n¡î™¨ýÔ­©ZÏñ»›,üí~?Öé÷âúQ\h¢ŸOðü`´Õ©õBÛ‹²´ŽÙ‹âú~>u~£Xë³ï¨Nè«í‡R´óÊ*©úGeD©VÊŒŸö¾Å6z¾^¤±Öï®Õ>ùéÞ'E¿|ôxUªƒù”"óª`\vý!”cu©Ô/Gõ¦â-Dˆó”ë, Ó"Ãù,­Gšh‰ñР>Mè¿ÑëÛy<'ž‘ýå ÕG9ßTe¼Ì0­3¦JùëgÍs]I©|ki–È@O;ŸGš/~–]®XûÓª¿/m:å˜CöùÐóïEZ^ßE£´ÞxÞó œû2ÕÃÔR!ß¶ÁE/Q¾Ö§Y^ß@çÓøü4Å-ïí­ýÀÏi{ŸËg^.tÂþ hù7Ò=Èû÷=ôóog:¯:ÆâÁJ)ž¼ÖyÈ•vOt®|ééäºð<+ô¼·P£Ð —§B+—E+JE°õͪ”†à0Z¡u꯴\û=¯Ðr«¬/ý·éºÎ’ î êÒ÷Áù¯âaoÔ9Ôeú—ƇLÕ:!F O'áyz¾aùž×Õˆ[ƒ»ŸCöWÚŸ8 yMí~ÏÙZ?«³»/àq}hÄ!ÄÍ_>Oà|L¡\»É¼gýÄçƒð^Ê4ÿ>’  `~ô> úXëçd”‡=Áë=ð4 ;™*Jk¾ý5ªÞð&J Í|ôIþþŒçÈþÙò‰”é Rz^ïõaJóõVçƒçk>0…RòcüEú}ÖxÞ÷h¨þügÑ4)ß7%ïͳ¼=_Û0¿ÒÖö·P¾çqJŽßÿnÑÖÙêŸÏ÷~xž¥Žô~B›ÀõÊÕÞ@üCýSðÈßë%My`Sª¿J…†T/ÇpþH×&$=½µÔI!ÜE%\,ÿ›µ°¾ÆëÊ„ µê(aù¤õÙoí¨3“‚¢Œæé¹{ÉûjÐA"izC ‰ü5å ÚL£U'¹ŸëÛš»û•Þ‡Áóè0Ýj‡Öá›PFÊ¡ñ9”Ñsz¾ó8)½¢–!’¸6P›éBkT•:~bª'ÛšâÎ[@UÚWî:Õ ëÿ· m»ód*Ñ´ñwÊü.öê´>U—žÞÔ¥:¶M¨Kd‡üCËUË÷¡´;>»Æë… —¯~BiI>¨óº¹Ad›·¾JE›«np^µ¨F ÍBןŔçÚ¥çúôà«§)¯:ƒò’€^Fd} àÑú[Ùk¬?ЏR³î†—ÎË?×è†ÕWíùšëj¤Ê~½ß+§(ÁÕâNïmá}Ië{=û¶¶õ/¡«‚Žv ÝÃã$]?ýEjº41¦þ£rÿzÈ+Iš°g“ëßPG·Hþu`jÖú{WÏãZDÎ]@mÚoyÇÏtMV·¡ŸÑjýÛyÚéC­ª‹øÑu)|{œyF»÷ñý³µá”ëuF£´Å®:ŠçÄ7üçT¥z¨_)µH­¥=º+ÕçÕP­\¯ÑôÝá7Ò"ãŸgˆjc_?ÐÏÅ5Ÿ^à¿Ö)Ûþ4Kï—ªÖûúêguhLû/GQ­êàڎ¸Œòô¾È¦Puͨ\²€S7z>ã¨5®÷mgB­+Žô|¥Úø|Þ*ζŽý÷að²Þ÷ßÖâ/úgåú¼¼¯1Uùø?<m-óδLófò8½úøS¤‘]æç ÷ÎgBÚ¨GNw>€LX°—Å4Ku2ÛQ©òg•®ßC]Zþ¡)Ûû<ø>ÈCKîTƒ×r»¶òómúIèª\¿Ýg—õãVž·|ཷ=ü¹.¥õϺT?5‹º$ü_°u™¾:´{¡ÃòŸËó³¾–luèó¾:4¯}ÕÏýb­Ÿ·sý݊Ƶ|“Nƒ,>#Ï[!eßewÓTÅé×§O‘x×øŸôw0ýƼäÁÖÑ´£E¸ÕF]Æã ?;÷òùbÞ…:þÞå¤×ËÓÔ!×Ý+Õ®{ŹBœ_nu~Z釩@uÑóüïuÊü½ëx'tu÷ýpïRZû›%Î×§ºõh®k@\µ¼Äùjäéq0œICºû þß¡ÿG½1Êx‘´åûà&éÿh¢‘'4ÿAš÷œH1ËÓX•²ù‚äBÔÑ@ÅsßÖŸîÔzî/êTú¢ã×q¿·¨.s)µ©à×'·ŸófÖfã¨]Âæèß)ý™+¶÷{Ìú³h\¹Ùupö\).²ŠÒm<¿GþUö·ñFQZÚ*gýGÍBó¼Âñ×ø4ägI½¯Þ¡q­B\¦)¥z”)¥qãDJÈãÞ2MéE·ñIÝ—’×<>aãy›QÊæ5 k†nz/Ôcà‘§”§{ÓãzÒø€Ù9ÃiªÆÕŸcñy io}u 5Ëüæüô)I‹‹m†Ç¥VO7iž¼Öõ9èW6vóBÔ.uò†mh{=/P›Æ¯Ý{ž§}_äƒ;jÿ÷&¿lnƒª´^ú– 4>´A·âù8îÙÀúž³-ÿ­5^t©ÕSÍRæ žæ¼f­òɯR‹òÏ_P¥Î“ô£Úîsçïz·›ûcúµ)ã?;”Z5žEM"Ïr(µÈ1š<š¤|~¤·ç]Mš_ñŸkŸþNjë±õ%×…7©þ´Ëó&Ôi5R¶×Å6ÊÇÚø?Z¤zˆ½¼5e¼dJ'»Ž}ÔF½G.r7\7Ì‘‚j:Å¥<î׋ª•ïã{ÝòÔzÓ1ÎÑûæeçõ«û¯à³·ë&ÿÈnø–;RƒÐ‚;,‡N•Ž“€?“RU×SBÊŠ )ñ«¢‘”k<€é‡h‚þ<%ìm×vÛw^ß—w÷•(!tÿ)!4Ôð- «ÌþÅÎkƒ¶ñÞ¡†Ót (½×¦?}ùÕkÝõ<•ÙóÌã§Þo݇TÏÙÜvg|ï÷u­Èà‡uR­ÎÝUP\Êù“–SœÎ«(ßø¥Z‘•î´;Õ\>8ë껾¤‘»^]êÿy4x§Z 37­§:Mh¿¥Z›«@³Fûc§QLã[#-Òú!ÅäµosÕÌî|×yïØÑrqnI5ªMUʾD5ç €ï§ì,p(£™–ß@—[)íƒ÷ðxUmºšyÆg—jÞ{?-Päï‹”«ŽašçÝ妇/ÓþÅTð&°TZ+/ìï#NfìxDÂç¸ ”éGEõZHR>WG¿L ©d’À6§BÓ/çZý‹>¶éd¨@ãêW4Îê›|ãˆ\l“›i‰Å¹±v/h=€ ´OÔŸ*5Ž¿FåBÃîò0Mµ>öbã¯rµ|¥?§jû¦7©µ>s\ƾòÏòzc‚Öi{>Œ9ÆZSO;_ïú[ûuˆŽßýIy’®}ð M¾MÊ7½xnð Èïå¡§R¶Î¥]íú•Ū›Žh‘ÐŽßíãÇ"í†õÑö¾ûôÏ¥qv´ëÂñçÐñZŸÆë~ð!ˆã¨ÿæj~ÞìüåXÕ_é?×å;¾öüüúå ”OÊñϽ¹æk¡ëcšô9oCÍ"™ÿ*ÍT<\Bi؉ò5Úœje¼£4×óoôCMOâ|ò=ð™ÐMBOÖ_ë³ i{ÃÙÕÓ|èuxÛ‘úþRB®£m>õú|#>/ôR%Ú_úŽšt>ï"çQqßÛÜ5ÈcÙLC?ŸP¹Î ®¢Òn>‚еMþŽëWÀ߯^ÕL+Œç6}”çÅ)I×›ï¡önÝ:%T?ý(5Š€cÁ`ïŸ5Úœ`–鋚TGyŽÏãaNo„ÿ”Î5£æé¹õ» &¡Gý\çœîæÃ)isLIÕu ¢”Æ›\ïW4Køíšéç_§yâ´Ýï8ï;ʨÞb'³ÆËQ‡ÈꞤNíCœB:oò% )ôáÅ›Sƒ´§ŽQí)hŽsÞý_ôÓêôþ|–ê$+9àaªÓùÜשNÒ„¢_½þ®Ô?‰rµþåu7òÿÊK…¸¹Ûó¡j¥§Þw¾s˜ D~ ]"úðЉA熺y%â-ú„¨çpßãWè×2rŒn¹Æy ôUqμhÿs ø{˜—,èîïxŸtKË[pžç‹< O‡ó©ó»çi®âîCç·0ǺdŽæ¯¹´Pä÷­×º¾²è!î£lÓû"Þç+ß<„†Øó[Qdó~ÈS •Ç~Üç²1Ÿkù*¥­o_£R¤ýƒwý¾Â\&æë1?µÌæÛ0×~q©ö‡ë½›"×rÖTjý«b9–µP±Õ_ˆŸè7äký·‹üûqúóVû=3ÇîUÔ©üçŽ1®KC?÷à åm“~¿`®Ïo²ÍÛãóƒg@„Ž<Ùü3ú»È‘£n…q·ŽÂïà"+–}Üc¢YÝ<)ͳ¼z®¾§‰4[óµ]h²ÅÁÙ—‰0åç-²T–óŸÇÕ6 w_¸ž¾UûÏûs›¬íƒW¨Îø+è{j+´P¢zió¾² ô6Þ©Y*ãœ'Jyxö®ûˆiß¿œÆÚsÀ7î›B¥Ý:¨Êú»¦gñ¹½2‘sŸ´–Ê»û¯®{„žyt¾VŸyAֿͱ|EºŠ³úïK¹:ïУ'D]_ä“ȯæ\¾<ÇãÑdÍ{‡ù¯Ûë{yñÈuvˆƒÈWñ^q[?ÏûAV·ºžý*ôËð÷êõ¹µR\¢òÄ}.ç AÊ‚~§åÚOO¹?¡z†ðõ(ç-!¯§®ÅRðþ%D–ûÓªÓ>ì J½0ûÄ–Duijv{wæ|÷C¨S½D.µ¨®çg»µÏhADã4ÏyŸò…n½ùÚ¡[×DSäýÞø/ô!þ¹0O0TŽÿQ£Èq‡¾í¼òÃŪûlÁ\Õh^·µÏ×ÕØ¼ÌXMàæRµÎyÇ=ßµþ8Þ¿Ïó lVÛ·Ô¬Ÿç`jÖaŠj¥ýwP/Ï—½(¯„šeÜsÄ¿T§ü_3åZœ?\!mùÖiT¯쇩DûdõÞ?ûÝú“¨Á w-t‘ëêLw[.öç>íü æ‘è9û•ò/û áûCÇùœ;úàCIóŽ~”«ßïyÊÑüä["aMžYKE¾™ å1µ÷§%–_Î1ýAQ·ÎÅujÐ1áÅ<毡×E\Æý >Íú—à]ÿ„z¾ÖúÙe7q?7Êcû“óˆ/óìçÆü&濚¬yðWàE‹dÜáßü<çï”g¾%ùvSžêÏ· t^lsÜ{~®iŽ0×dk¾q*-Ô¾ËÁ4½BS“i™éÀ;UW2Ûy¢´Âi®ÇÅI“:­Ÿ4ÆtêÒî¼ävÊØbÒò¤Œ}ìv%µ?8ÙuY­ZŒw_ô''Èk;ûj±÷:É|œçLiByµë¹ÑWžý‰ß¿¢V÷ùÔn}¤Fßý²ìëA/lqÏ+ûk=)?O˜ kÒ<áIŠuÛòPÜê¬&ç98užt¶êÍu<5ÈǼé0ª±|$®Ïå:ŠË¸p}ž×“uÚ7ÝÚóÉÁú~· ˜¤©ÏÿKÚ¾|ù ŸC+·94ãí©Cçžu_Ìu§E6ù`/JÙ}ýD®öoPã^W¾ÍMã¨^Òîg²¼oT)ßöŸ;œ¬ÕçÚè¿ïT~ºš–ëÏqó7É—×ñ‰¾×ùÐD¯ïÜm÷ünG>0W¯÷›½>lQ^5Y_§ÉøœÉ–·&ŽW"Áy¸±ÓøsdÏ|éFê•VYBó5îÜJuÚ'øÖç!êŒß¯3Ÿ—Ú‹e@±ÅÌÏ©FÆ‹åyLåO ×9”J[ïŸίÚ½]¨}´¥T`ºð b÷3f uZß2¯»ƒþ–ßMÎýº_çãÖŸXþŒg·R‡ú'd{Ýßly2xÓ.Í_>¢«‘ÿá½v(Os8u\/DîïÔ!¶Q΢i}| ó 8—àMR2†4êbê°ú4£óåÏPJçýzæˆPÇw¤ß¿'Ùp %mÞ¡¯ùÔ¤${Z|¥Mwž–±™{ ‘öÀ«@G“¸5uù'tn)ó8žRÚ§>ƒ…Í$ŸG@´Uã ”–4ë½Ë)es’È R:gzÇ-è"¯šu~í(j¶s‘c|!xøvÕWÝEƃ'µ¿u´óרÚ´ÝÛñþ ­R&÷yŸZUŸ¾Êùì„\¯žâü®ùxu æPÿ olµ¾d³Öõ®³ùޏÕs-¦ÿiÔ9·=i¨Ö%§S£ÎwüBM6ߟ²&Õó>G"ç£Þ?îyÜoÐÓ5š~£Ñò:Ì—6(x™ûPMµ÷3Óî1Ì'Zë}Tèxð÷QÇî]·3n>Y•šG5P…é À{œdóÂý ÷1™ã¸j+*Óø»‘jU×½§ëÍ0G?ª|û<ü Ž•9”bªÓÛ…ª¿P$úüæÃbúå*7Gý}qµÎÃ,£Jõ•zÞÏ…ê.^£*±3:Ùù–r{ÏUõrá„®;,ùÍ/“¨Dëë3\Ç^,ßî­k¨LÊŠ«–ÑbÅÝÁDzã¯IûP‰ÞÓ+|>bŒê#V;ÿYlç´¨û=R‰öYî¡|ô tŽö×Ûç«îh!åšnuêáå6ç’Vä2ÏÀ5ø ›ôsƒz.có]"²›¹78Ÿ‰9¥‹¾¼Ú”躅šµ|“ÏÉ7h?ú.J]¹¸ÖyãzÓ³ßíç¬ZlzNy_Ñ©{©_ßð9ÝM¹_£Ï˜"žëbiÃŒîôøkü»ç8¯…]zp¨è9‹¨Lä4g™¯æ]Y]?_ù…¡>gÕjç´Yä ŸtR³ö¯æP“”WµçSæïS`çº&äðƒ®b˜æûPÃð-%²:W©}ˆ3ýü”‹<ø–Y´Buö¯»NºOôý»ô}K+$ÜLP§ê@s(Ó=‡@¹zM,¤NÅQ’2Ú`yˆæh9‚:.–xu ]}'u™¿SFÂF¿7©ÃúÛi¹~GÜOóL¯”ÑÁÍ÷ݯ¼îùŒÈíÖléý[Ô+iíWãs™ÈwêõëæSË‘Btßí~…˜§G?ÎëKÃtŸs¬Ÿ‘Iæ«…~E\u(ÍÞüîkøq¿-µü~-¹Ú?ßräÇ;KêYîç?PFG'ù{®–ñ¹­ˆRlj`ô:Ïg0ܬ|a%¥¬ÏÆV)Û'£vóÝL¼!†Tû|FÂæÛ}ñ÷MnYsß}Ô0R¥¨Eùåžï׉æÂΓ›ŽÌûzKT_²Å$M<òYïƵ.à|Jõ2_Ñã'c6ÇÓñЫ(¦:„W©²ûûP¥é·ðûbã“àg¾_šþŸ| û™¯ŸóÈïZìÜb^ÚòŠÙ}Ô zûBª³{+®÷ëªQþôI×±À/ yòTŸ›¶ù€¡Ú½Îy(ÌÙ€?/#eÚœ&š¯~iÊ~»ì˜ª÷‘œos@SUŸ¼óó­ßй Ük6êuþý~g{ý†üq¿ÇýºÒæVê…:VjÝxµßÇõªçÝ@]ê¿ð¾ûÀ uûr«S¡gë²ú¾Kõ?@¯çüD§ýûNëÇc^ Sóîê´þZ§åɦËé´9:Ì«@êßæáÏ€Ÿ»ãa%œÇì4ÿè fjÜ=›2æÏcúj˜)?@±û*fÌ?1móÈãSV¯a.Íú®W³üÊyfð¡¡Åƒ´”—?^îs:ðM€ßbF}xN¦´éy0OÙý¶¹f;—΃ù|´Þ7ûôøÙø4å]+¨MÏùt÷k„îùÒx#Ó¹ŽúòV×S_Äy‡/"x¢á†‹&½Ï§VŸƒ¨YyØ5Ô¤<àUT­ú¢ý¨ÙüÌÀ›þÌù§vÕ«4R‹êêNðúcŽê`O¦f÷÷SÌøUÌåàsC?9Oû¨%”йÚ:çiÀ/ƒ—m–±à>CܺÁò‚Æ÷%!9†êŒw‰kØÛ@3Õ×cŠÏ£.Ÿ¢ú—Ýw¢^e5Þ÷¯ãììì>¤ø6"ÌyÃã0îÜ#u’æŸw)Õhø¹†â¦ÿãlÍÇ;_Ù½_£Ÿï_ªµü¾ºq«'àQaóñÈk”ïý™*u.z9-•´ü›¼¿ZczÁ2»—Pº>Øæm+^ÐÓ/òûÀž3úüÕ6ï^bþl3-þ‡>iÐ9a^ DÊÓ){_µXãÁ!®K-×¹éû©LÚßÛÞOÝÏ™ò4O~™ŠUô8MÓ>Ï;>מc}+èÜ—Y_&ßô{ÐÀï(Ï|˜²»ý((ÇüYhŒ<èõŽ/•eõòùlô•à€>ß\åc³håasõ¤™Ê¿äzî õƒÛÛãx¥úWâ÷Q¥êZ3^GÃ_:ðvÈ/ÑŸ+PÖÉ4Ó~þ™šçT\©Â4*ÕEû4[ ÏFÛ¨^ñè¿Y¦÷ä\*ÑþÅ=~F6wiþ ^C¿†|¾ú8è/&Åþá“o<ñù]­ßôßl¼Ýt±¡ÊæúÌYêoõ$5‰¬¼¡5ŠÀÁ=þ# õ_I ªghu?µÉú ¡VáAîý›ZÅFyé¶”-×ZÓj*0½¹ãÀô® úûó|ž:Ø,Íÿnr>|¤é,üýàÞFu^‰úŠùÜ$Þ|!Á“Gš÷>Gæ×„úzŽùcÀ7+®sbÏ)8žÊÕ·õnj0Þþ‡ðŸoR>¦ËûcR–UlMͧn¢¥ê3½Ðy€YÆ{ã¼€ªÒÏy¬ëµªT‡þ!•Y¿:GÄñÊoíFù*<8Äýe¦Ûù,SþwK÷+O+ž³Ý/yt8ÈZU?šòç‡{¾ô%¹J@xžÐ¢×ÝT®2Î…~¯7êÕ—ÚOÝÜû¨à¯›¥ÌéKÃìÜ£þŸïçúUçOÌŸ%¡ÂC¨Vï· Tg}ôU1—>ßøŽZ¡¡û•b2v°ê!÷7Aœk,OÄ<3òÌ2I'ßݧ«Üæb6GXjþèÖ?¥2¡7¾?‚ò5Ϲ*Ìï®TëÒoÜ?­ØøèOŠ?ˆÉxÐwó©Uýbf ^øœHê¿çÇ?;ƒ2æ3âs§¦ç‡ž ú?ðEIÓ%×OûýkqÆóøÝ | ïð?Ÿmýrô;_Ìí®ÇÜ¿s¾é§gª¿o“û©,Öü6×ã»ñ·ß—k?n½×éš?ÝHqõ‡èôøÐi_¯Ëúðÿ7]ŒÏ¯bŽ„’æ Žyk÷ë²y¤´=×]I‘>ïïgAâþdèÃXÿ¸õ~!nÃýå}ÌÁàþ6R÷Ó}¸žuN“æ9K]cùˆ÷µãz>÷p¿lôù¡c…~4a|c­úß éñµ= ˜s®7JÓ×õ|ôŸ×À熿|Ücê§;™jÔ7ã¿÷Ñ?Àfµñ˜è3¢Ïç}lëƒVÚ<&| «Ì—úø(!G^âù¼ù)J˜zwž×Aø=ÞG‘Î7{ýŠ= îÝ]/yœšhñÌô"=¾)V'™_ åZ>zø9á—µÌø'Ì倩¾_„LõÎo5vëk<-±yÍ…Ê+·P­ÈæL¡´Íπ׳<yœŸGèZð÷àK[­çÿI×ÂoýƒÒY:˜B­¶·>²¥Ú¿8ØÏîå êÓ>ÉùŸéVŸÔ[4Žíä~,‰Ybèô»û”4ËãßF1ó¹ÇÜ ôK˜ëƒ¾m½è"«'SÖ‚¾¢]y¬£i²ÆÅ[|Ïò9ðícoŽkžú»ç­µÊS?O1¡óîï™ 7c?ÄHÕ…ð¹Õ9ÁÊ×þù'T,áëå7Ý¿ ÷ÏbëÃ/úõ¼Y´HÚg7lBK•7Èr¾ó²¨çÿï¯c´þžéó݈¯Ô}®œZ!eɦ”²ç¼\lˆª¾¥‰6¿¼û¾ö¸¾B}ÍVS×Y¹/ÚrÛOÔeú»NÕOÿì}®Œå×RƯ_é:ÕÜn½SNç7&lJ…’^}÷¡óÈïRÊCO¡fí=àþòÈ÷Ð_óûDãÌo^Ç-3ßWÌOÀ îMÔè[¯†ŽyF¶ù€çˆwë¤Ý nïx‰ËØä„G©Nù„ šnup­õe‘÷ÅT¯±®§kzô¥ÊͯªBõ÷{ÿÕö”¸Î:Û"¡ßÒyT ßî‚»©ÍxWÔÐÅÂïþß¹Òî^^æüæSêƒUçþTÐ#z>aùüýÑ׆ï}\ŸÛ]>_€|o‘éC¡CJ«®xo¿˜Åy_ÒæQg)ß Õ«?WÌëR«½ÎÉ’q‰ëq¼a/úiÐWC‡‡y°¸=?̵€7«Qí/Þòþ¢éס#ˆ™^¼AûP;_RgüêðZ•ºkw¿qÿúŸ›ú ð)rÞ ¿v÷õ=¿@¿ùúL«Oá‹X¬ó³{P–éKIÚ7ýîó?Ðåæéœ]!å™"×üÁߨù¡\ócöÿûÜøsƼÍ"‹‹´®øæ+¯½%ö'øï>¨¡ÿ~žÝ×àq¦YŠ{y,æXQÏ&Ï…ï^‹ù!Á¿Åöa|"‘‡ ß³þ@•¾çÏ«P%NÔ9÷iÏ·ü º« õ·©ô÷ƒþé\›SƹŸì޳®GD\G]êõ‘Íc®§Eõ~'úÞømøû5ž÷6üp;MÛ>¿”ïõÅ”´ºzÓ¤ÍÉ'5é÷@‹ÖÕS<>£þlø.­¢¸°ûB éš\™rß4è_'^fyâxÃ,ýœxÞYký¢Zã1ªM„ý)Egú¸oxTëëe¯Õ÷Zèóäã¬oV/eÁŒ˜ûÂÿ£D}«sœgCÿ?núø¾AŸŒùÉBõo`iö`×w¤ÈÎùr›‹Æ=™gós…¦®¼Ôëpèj L·×¹ª¾Î3Õé|øuîãÞ}Mø©BŽsþùuÉψ?pÿ ÜŸ¤uò ª°½Dðs+W_˜ƒ©\÷¾K%†ã2)ÿs.q?²ÛÉ„þÐS¡ñ—­Ö¿ö8kx¼A‡ùåvè¼ØhÊ|z?É (!òÙe7SÚp–ÇT1Ùuhàë3º)òü}½vå¡ ]w¾ yÓò[w/üô¢9Ž?äóЙcï#ú“ËU¿}ºë‹0_Øe>)¡óT+¯ÿ¸y”þDŒv¥Îî=SîûÔ©>4Ù~/OÔçv™ÇAøV”Úœ4¾n‡ú Žô9ŸL·_[ö'vÞ;t>‹ó¶˜d†:ÿk{O°gyRÊæãêÔï(ß÷ùÔë>”Í)iõ>æÿêuÌ{o×µ˜?_ö+·.¡6óë€. ýå&=WË<޵˜ï!ø6«—\g>ùx^·†ßç³T¿q²ï×Ò4orŸëÂ^ƒv÷^NË•o{‘’’OÔ¿ç{îPOzaϽCçÑ?£ùÆ`Šñ‘žÿŸ¤Íúqæ/ ½:üà+_gù@R˲AÔ ¶-Å/xÕ¨üæLß{ˆýcMzâð- zÕé®rœBÓî:Éõ«ÐoT©èªÔ±ÿ!Ôl¾#Ö¿¤ºî½ Ϋ!ΗÛ>‚:è:,¾#¬×º¡™âbcÕçlÏ'Q§çÐùAg^añ¼Vë’ÛÜ?qq¼~-6Þ¾]Ö·tý4êéJ›'-Qýå8Ÿçu}´ÍK¡î,ÖùËÿùùÍ3ÿ‚<Õ¿÷ìß[d÷(ê÷e6/ƒ~üÈšN¾„y¦ëB~Œyì}À<Œù%ûœu͹cŽý ä3ЫƒŸÇ;Ü[ðÍê4®ø\Jé~ÐÊ<- ìã}Nq´Mç-ó©Åö2´ªŽïkj†?”íÙ³÷Mõݾñ^OÕÛ¼3ö"ƺm|^m2¼~àQë¨BëÊ^¾Ÿ:²<ïqœÈäÿ*Bëõ:üÙ³4]íû4í~özþìàÍÁ߬s•1×Ök|å:Ðö»¡Â{B¾Uf~çè/j=Óßï]ø„àQ¥îíûÑûù®ïT=ì=>¿ƒç>¦é'ýç°ýE®›À>ËIÚÇ^ƒ{×ëpÄ#ô¹Ç«þ¢Ëç³à›…¹ßN›_MØ^­¡i6©¦fíûnKµËä ñ}Ô¡îë™4?hôst¾¾ŸïÿÎH¹½âj–µ“_ÿí}ÞLw_„2Ú×ùÂ÷ÜA8EÏÅùÎKÂÿ}_ø‰ OŸÔ¼o[J‰ÝÔu}=^Á§ºäRÕ½ìNã±ÿÑêšj7¿ÁuØGƒ½ŸØ_cù’ë]r5/ J›«Ã'}Ÿ{öÞØ¯Ø×”kûSQo!.á¹-0¿ß”ù2·Éxð¾êè®Û=?ÁyYjúaûº>7Óѯ:n:­NA–VÝOŸ+ú6Øó³ÈêfìÓ‚NüÎ ö{Õé^³uîÓd~Ϋ!¿A?ÙîÄúÜOsÝ5ú`ðO‚óì?OÈøHÑQþçØ÷[¯~ºgûžGRh‘óUØÏ~ðÖwþ¬vÿNü9txÞð¡†_sƒÈ·–œëx-³ù]̵é¯-Ž7ì—1Ý©×Ͷ×~cÀù4M3ït¿+ðëYV¿"_´=ížW`_f¡íMCkó2®k„ž=WukiÍý—ȵºÿçá‹Ù`: øKa_ úΫËzÁÿ&ùûÅý†¾xkðÝøûàŸÑ¿®:ýçûÒÙšwüг¿ÒžG•ö·VQµÚi¼ÛÓW4þ¢AäÿõÛÐãº"Ÿj”'žä{(ÌgÊõ‰ÐX ¾Ö–÷ù{Å<<æSgÚüHŽêÇÀ—Ù÷p/¸;ì¿?×½Eˆ»ÌýÅgª>ñu߆¸ v±õÇñ~cгɮk@<„>:ßæ>àïÙf<üqL×ä>‰ÖÿöyJô¥Ÿá/güŸ[àà¼qJõ`“¨]Ïk#¥m^sT˜?EÜYfº è[Sz¼î{7"®c_Òøcëkz¾‚9̤ö7·w?CøPâs`N i>ëÙ:÷ð ¥,ŸFßæBÐWÄçH’´¼û©r”¿’¦kJˆMÖWøój×ùŒÑ÷ö>I»òV•Ô®{ÉWS›êB…ß/RÓŽ/ì£G ßVóÁm¶ùì+?œ%}Öü¾yJ…ñ®ðj6=£í• f3=†è¹ÏuŽM¦G=ß“úIjé}Iß¿duOó·’€]éùüÀÓ'Œgò9p;'ðõƒ¿—=jÐ{o;ïË7¨ÏêjŸo¨“ô>Ùèý†‘½~„×Øãƒ¾y>È6w€½ ØkŠûÁ÷{Ú< öÖ_Þ±Vï÷1îçP«zŸ÷ýs@Qgþ2u¶g¿Çüäb›_ƒ¿ø[øv˜«û´à<×éy:ËŸ/öwÕèyø×?Ï<ÕõFó͇³F¯eÓzý6*·>!øyà¢JëÏS¼O¾5îé鯫´_÷ Uë:Õ+ü^2_pÛ3ǪÖþÿ+¾? s)ÐcÏw•êvñý˜ÃyÅÞ<øVUéÜÆt×Ùbnûì' =}IBCœÿ¡ÇãJøqØfËœ·ÇÞŽ+äÅ+Ì×sy÷~lï7-¶}niåßöýSYÊ;.¦”î‡ ]–’?κÞ÷{ãWðÙI}Nù<öiæIx­ÞHmÊŸOð|>ôIÛŸƒ~‘ÍÙÃÆ}‹0'Œ÷ ×6Å÷ÅÔ¦ã®}(®çoLϼ˜é9*m=òøÆÕëüÓŽÞª¶½ØæSêù|½¦›º¥bó—/Uß½c\gZô‘4Š~tsìsAÞ¾JƒØ!µ½ãq÷I­¬S¨¸Ô÷a_[µöKçP‰¤?}Ïõ=ЗØ~ç« i¥ƒžWMþl§_}?üMÛÄþãÄ ïãbÞý8ð˜?C_¾(-"×xåô œg…Žõ]“ù),Õ>ìNž¢_†ùXôW:tœ¤œfØÈŒúrô¦Œê£=/ÄÞ“ŒÍ¢Ÿ>sèSÎ1žüêh<—6í÷¿J­ÊC>âúׄØ<=ßJ åEpÝJ“ñ©Ã•O­§ë{Æ4o jsZæy=xØ1¦ÏÄsÍVýÜ4Wç¾Ïñ{lö4B/‰¹<«<K)ßý j^~³ï¥ÌS]××ãµaœå©-Z—¬ó½2ðÛ´y!ªUþ,×÷æÏlsý®ÃÀ¼ú\×ÐJm+ýEã»}ì=OFžf>¯^o®´½¨‡;u~¬‚–ÛÌ£î5˜×+ÐÃOØ£>Cç1ÞÅÞ\×Áw>Àˆ;õãÔ‚ªÅúá}þ¾È‹‘g$ì<ÖÙüü+Q‡4©Nk‘÷=æê¾—}]'?GÌ vi\ßÎû79Ú?üÀûzðõ°þkðhßs¹lܶ¯ÝóJ<ä ˜÷‚~ü&É:Ç­ký|tÿ¿^Ä·Bó‰ÆžjÌe§Ì_0…ºHä ߌ𠄎©ZhÂO/tŸpðlsU§|+U¨îl½ß³²Vò¯ i¢êÜÒ´D}2NöûÌô¿Î›Ã/¤ZûÔ¨ÊîÁJó'¹ÈÑ|ð*2+úÐOη¯ ž óMèŸ#îBÇ”´þ›†ÍÓ)©÷èuÔ"û{&ôs¿~ô×Paß'öí$Í—q1­¶ [¹=i:´|ãZlÏú‚È;;Ìß¾Li§¿‘F«îàXjÕ÷q³ïËèû[JjrŒó·-zÿæþXÐ9´IÚsÄ*÷'ÂÜwƒÐQ»íå:ßúZH¹¿âøwìsÿi‹“èëã¿ãWøªUjº1Îý– LwŒ9𠛝ÁÞÌÅ ÿ =N…Ý{èwÀW~Û{7_ÖQ66ú|k§È^ºÄóˇ},ô#æOí}uÌ ^Í7¿²BÓïã\ר\J¥ê7¶¢Ûo€‡ù½òî}ž‡çÛ|/òģ`¾±²ÛÍõ'èË@‡]âüuúBh¾éHúuÈ3î[€üïû ÆÙ|éVgƒŸ™§sT§x_ |-~?Mãc¾Ï§Cïû¼I¿ÎQ^¯‘¬×|kw÷—h·9~ü)-$opÜfT‡3‘ÒòNëM‹Ì¸Éüàçƒþ<öCÀ× ¼n›êÀ×y¿Zë—àþGå¾U1óÓGÐjç >ÂÈs:%m}÷MªVžëVJÚÏÞ´JìåÂÍ7Oƒýè#c?_¥Ö7R®´Û’'PŽé\çé=þ ïkF|?”VÿÏG| ÷&|’[»ûD=·9Ç„´%ö8Éûà1ÝSR†zÇÌub)æd̘ò´îèéWZé™çºõ®ßT¿–Eíb÷vÚKþ}ó¬neý…%ʃ­¦Zó3Y¦ø<Œ*¡¿1|Œ11IÚyï¼íúpäÈ/;µÞΣ›Ç…!žkÚtq)Õõ]åsÔIÕ#­¥V­gO§ñš/¾Òã§>5/x=þzˆjå^¡ ›‹(ÔÁÛ=¨@yèU”Ÿa|¥´O¾œju.ëb?רggŸËëÿiºd>eéÞ¯…Ž'›7tþùÍÔî=ÀØëé¼x²ÙV·`¯øêŒÖ‰;SÜöt ÿŽ>8êøâ[åEÞã¾Qi‹¯óEf8sWÿ¹ÐŸƒ^ {DÊÏÑÂÈêËÒÞü*q¯'ÚÏÖ>â~ït™¾sBV÷ŽQ~íVŸç@8£:Û]Ï”1}JZuß‹)Êàýt×—Ão(©uÙ4÷F¼OŠœ¨ñR¯GÝGØxÔv¡Û/™JíÝsÿÎË¢ÞhU<æ{ž×mþÎ} æèÜöy¾?ÿ¾Qö¥ìû•÷ÍÑÏo0=üC*NrŸüù¦ÈY\ý-Tgñç|i­„åÃv£ZÛ“3~>W1ÅÏϮ˵xâûø<5öÕ¨¾wŠóˆsVà¼.Òy„7|âÉlëtšïD§\}7õxÒ¡}ËՔѺñniå-ÿ¢´ŒÅ·ìñGVþð÷¹MÚ~ŤêÜføÕBólV=D5Ù¹ƒ{£ëª;žÌa>³ýO˜×·9Hç1ªe*bõ\÷}@> _ì'/Ó9¥'¨Äô¤Æã8OýÈË¡ŸÀ¾¤ÛQ/cEw.r]&îï:óo€¿ê¯éÝó<®{À{…^&-ãƒÏ¤ŒÞϧRBÂá.£ˆÌsG¶‡ÜëIŸ/¹MÁ:*³=$Íê§Ÿçõ|C±¤Æöaβ¹È”Œ·8•šµNïürBïÉ%Þ‡_"øw÷µ.V‹j4ï¿Õù曫îºZÏ1Q•ú‹¬¢RÓ•À÷£X}‘_ò½"ð©Aÿ+׿ª±Ç>Pð÷À|€é]gyæ }¾çP±õá³_è÷“"»{íOÏ+lÎ|>ö³o÷>‰ÎÞæ{|“ª#«¤Ví?_M媛Ìõ<úxÔ•àOã6ßW?A>ÿJ‹üìç¥ÆúûˆðA_¡çá]*²ý5Ø7Šü+_õF—º~q :tìahÓ|à ß§ _"»¼?:äGÆ·ºÞ-eõ*âÖfÿ§¿Œ}ȯk4N1å‘ÚO>Ú×÷Í¡ÿ[-c»üÒ³ŸÄæ~Ìÿ‚’ú~2¾7²Yõcó©YóȽ)£s0—QFÚZÏnç|ü,ÑGmþà¨û¤L˜Ý£‚.÷jžâeš÷Ut÷-]ï5Ëøü÷˜ùÎcžÝ[Ìx²6óûŒ+ß{œûaÕuïµó÷>øÊ1z.oÊ®NW¬ýiÕß®S/ѽS/xþ2ð ¬óÃü½,0¾qÏûÍßÂý!Ì×Óû«æ{ëuüªÐ3ŸC¯GP”™ž>EÞW2ž©E÷<Þ@5æÓÔ¤~ó£©MþÙ¢;¨Nûµù¾ß׿A\6èJ° õ |˰>4eæ+\+vc÷ös¸˜ú¦^LK5N eªg‰ù>ø”cï}C÷܃÷)c¶óÒ1ÕmDËlî¥Nõ¸9ÏQ­ùÙª´ïÓ8_N¥Ýû4ý¢^¬ù÷Å¿úü6üEMŸï|Ø<Õí>_;߈y|ìL‰Ìd“×]7Šû i})ôÿ‘a~T¸‡ß䈞÷›aÔds™Éî>£ëêÚÌ·ûmዃσ¹Ä6Ûó€}°Ð{`0fþh˜÷ÁüV“êy×P-ô6—X¡s³œ‡Áœp£¬WØ¡’ŠÌþà#Ás£O€¾w…îw½¾Û>×_#Ô­ÕR&ïó8-´}ÕØ×P¥Ï·ÐûɈ›6/á}Ïzoßw:Eªç}~îc£êКk]W€½¢˜ÓÂ^\ì¿Á¼üY¡Gÿ ü#tÒè[Ï´ýðð‘'ë3¸ÎÞú¸'s¤\½7×çÖÀ‹ N)þA.š§]· Ý~½Í“À§ÁöDÐdÕQ•ÓÛG~zª{Í}gð|fZŸ}øÑÃ÷z)ø°”[zìË@ÿó«è§`ït0 Íçúùé:ÖÇ}zá^¢º›+¨X}ß»¿¢ë£¬îž=øáfÙ¾WÜK ðG„ >œÈŠŒßF}/è±·"¥:¥·}Ï ¾“ò‹£Ü_û*²ì}7*!ê¼éh}îýJÌyZÞéup•ò#ý}o)úÖGõx¸Lýÿߢ…6Lj>5ú¿smn÷ý ­wÿô}oèï!¿™¥¼@§÷©'({½Ïž!Øú$ß§ˆ½µð €Oɼ{Þàéý~Ä=ˆ¹¨:{žZ…~¿nw÷_•±9òd7ÿM-ú}Úh¦òí”Ôøò€ëº+L—Ù¨z¸›\yì'Dß¹^ýËò©þ %º¨ÑúÈÍ:çÕê>n6OEÍÚ‡:Žš´|ùÄçµðÜÌ¿Íuõ²îõÍ×ݳAdÏÕ¸¯}½í•™!<ÞÆ¾þýÀ³@¯}ÆC¬n®­ÒÆ”ó÷5¦Æ>8ÌgcO6ôˆ%:Gõ®óMèSA¿Wl<ôxØ¿ÿ´ânß ç“° :¼éæ×’k÷@FçR#ÊèœÞ,Jê~Ó=}¿ˆï­VþyŸ×¯Ü ÂMß`{o|.¢Äæ0}1öë}y¹÷Qá7S/ð=öçã1Ÿ„8¾Ôô™6áû’gýŸ9¦EZ&ßå¾dðÛÆøYÜ à,nû^6ÜGÐ)!¯€îz ü:×öÖÏ1ŸüY¦»Ã=]¨ùÏÊ•¾óøõ”­¼ØyÞhкýjØ.½‚Zï%Ô$üθüybÞþ §ï¥z¡;?ZE]Ý}ïàëÛ?ø¹‘ÏŒ±¹ÍbÓEâùÔ©¯lµë‘ïcÏ4öš”ÚÞ‰b›sƼ-âQ¡Ø,ÿŽ loø`øÁÏ´¾<â¦éÝg yv¬»îõ¾EñÁ5êgzš÷ U¦÷ÕTczÖjåwvßø‡À¡LûUÓ|žÏ õ=t>ð¡„ožéT\kýr¯Ÿ°'ºÌÂd™í%ÄÜ|5Ñß/aðÉŸ\ Ý9ú ˜³Ee†øQ\´Áó%ÔUè«$°wÂÎ[¾æ¥e¨gÜ.!¯çÒ?©ÒøÆ¦O†ötÀ¤ÁxGè5ãjË2Ôuáz/.qÞ Uy°{)W}®øù¨/ú1®ë™k¼ô( ²NbÕ(¿ÈcË4¯@Eg‹®‘…P¡õ—±Ïû/ ËD\\`ya®ížzìWFþ Ýmª{®ÚçSšŒßN{šQ´*>~ôº {(–Ú¼¨kºô^½€–+Ï;Òﯤê6Ž¤Åª'Ú‹’g‹Ðö9¿PcÓ²nÿ¯£ 3‚Ï ò­jåAJ}oZ¾ŒÕ ?€ÆZ¿¾òõB— §våç+¨E}á¸Þzá!¾Ç uE‹êìÆû|‰éC}®zÏFÅ“Ïùž«;ð;q]•ùha¾sð5Â9Jê8Aœ’Ú?}œÚÔ¯áD×÷ãs@¯Š¯—2_º:¥c~¥¸òK{ºß|\ý47õ<¶\õ¾xÿº¯:‘˾±Ñùì‡ð{ïU½B,Ô¨M3%xB¶Á¶d4”dÉ|K*U•¤’T󠱞J%Û`[F7 /Ü–™ÆfÁNCCV²CVhÒLbÜ4à’†˜MÜÀ „nGêwÏ;¿SG?ýö>ûÜï{ƒdݵî{ßw¿sÏÙgïßÎ|w>W ýpù¼Èá4Ÿý`9—ó/Ìû æù%¥üŠ´®õo”}JÏŽÍoùÅáæ´Ïÿ;‡û7ÖK–y&˜'uv4Oþí2‹uKy?«2>‹ý0žy0ÿMe¾ æ cüãðy©²þ õ.çæq_´³ž•~(ôCKû@ÿL¡vüÚqøçýùpt43?þ %¾C¿ç±´_Î'Ë|DìÉy1 ÷ð8ýîO—uÛØ÷ëý±^ûìãÜjÌ»ÈýÄ%®GÿÜn¬åù{wævÑÁF`_:Ìó1çÚ¼ïóÔ^ü ì«TöóÙŸ×gÞö³ãÈ)ý7wäu~·§xøX‰[qžpˆzc?X´·ò{%C?ïM©ÿî*ÄQÃc7Êßü½ÒÿŒs/bœç|]G½1ÛÉëÒ<‡PâÌ£ÂþÈçÍy^"ö¥Â~wWm¬ã®ÎñÈUi}ÁÑá5Ù_ãü#ŒScŸnÌ“{Mê½¼ìg‚õñØoã&WÀúV|ÏíÈ¢wÀì>æ=#>Éë-0ñöYyëÏoô·?oJžßKûûöÁ®ç}SÊ:èG’Z]QÆ£µïyYÇy冹+ø@?íÃi‚—þQÌïzhœ®±öUe_oôO¡ÿý}ˆï1?û\j—>\æ«cÕá±öØ'‡ÛR{ëÜðú¯<^öçÂxû¡´ßÜï•ó5ïÊþýUÐçƒiœçë/žï“ãE´Oʾ¤ýJe<ïuY—»}ôóK¹¦x÷Êa2_O•ýа®å|ÞçüèÆøiißbÞ-pýPjí½¸of>·û•ߟìæJ\›qXæóaßuô¯ŸHãÕŸQÚ›y¿Öáhêg}e¼ùý#¿ç¥ÿë61¯÷–Ôïò±²7ÚcˆÇѯôÚ?c=!Ö?–þ¾¼ÿä«S;úï oÍëW1oøö¼?l9Ç#÷Ã!þ¼=ƒóŠâDZOÚ±ÔøÑátßÅø ö#À|6ìu"ÏsÅ~Nðy¨Œß¡‰ñåcÙ?Þ·1¨Ì‹Ãy:˜¯q,ÏGBüÜa^=úý ÿðgòøè=ùÜ„ÏKúñ2ãˆ×g»uM÷eÂó—×mìÇ:\—ìûµX×Xö‰Áþ“×äýGòþ>ÃçäþÌ/ýü„ãƒÃÁ´îâ¾²O4ÚAÒxòk˺}øõûóþˆäù·è'?;N׸ü?”q~ðçÓ`Ú¿GþÁ¸á#%nÅøTÙ¿fcÿ´2þ‰~âr~YН?Pö=÷ÝÂùOØ?!¯Ã,í-èE®géßÁzÌ[Çí£?ç²á`’ûO\ìÈý¦y¼¤øIÌ;GýÐ΀¼{<žâK°ìwþ2ô¯ß•ìÜÁáòäß:Üy|œñSe?´ `W±ÏÍýãt³ÁpejçüïÃiÞÚéáhšWôçe>æ+Ò¼÷oNäsQOŒÍÏï>{q¼)÷ó`©ãiâ ñ´îî]Ãé<ïæM)Ÿ¯-í\¬çÅúå3i Ÿ+çå¡_ýòåœÁñª2މ}:îKqõ•t÷ŽÛöþ‹ÙpoÚÏá=å\W¬_ÉóÑŠÁúœC…õ³8ûN£ŸãÊd_>TæÅÀž|Nò?3¼&÷'¡¿~ÿhÚïðÊy+˜'þðÆ¾‚åÿÇïÊ8æùäo?<\‘ôãχã9n}4µçïΧ}n>PÆ3Ñ/ ?÷pŽCׯnŠÿEÙOã\š÷ Ì·*ñ5â<Œ§c¾ iüäÍe½*ö¥Å:ɵ®/{_Y¯±–õýˆçÒ>z{Jü‹ýBʺ×dn^“õè¡´žå™2_ãtÇcØßºì¯†óG°îqÕ«Ó|í¿(íÅ“_øØðpš?=”öæ™ñÔ˜×í+ëJN&ûù¶át'¹8Ïót^¯s*ïOumî9›ôð»Ëzÿ“yRðçc]ÎC½ˆË§ý„ïNçõ'R»ûˇ›6Ö‰–y@˜o‰v(Ös£ý{zê}oZ—ð e~8ö»;ï'‚õ¾Xßgßþ8Ö§¼býåã¼ä÷î*ã+ù<Š2ž‡vÎÝA¿>Îû-Ÿ[Àû ¡ÿ!?´ÛoÀÿ܆ýÞrÿæë“^-ów±¾ô¶<ïûc½úÑTîg•}2p1ÎSÃzi´Ó1ŸùØÆ1ò¥ß ó&aÇ°Þ ç »ÕÿxuøÂ4^ùøpWòÃ× òù'Ø÷ó{îNçw~d¸=µÛ¾µØ¥Çqwž÷}–H󿦌Íç¢çö_Y—‹qAôo¯å}+±ß+ì<Ö+–ý!ò9¥}‹v ú ²¿¸_GÞ‡ ñ8ä€s±ã]çÀ—ykçÓ¾ß>ÜŸúÿ½¬»Ä¹d®þÿÓpWÚÿöãeÆ¿`—oÎë ±?Ü©q:ñÓŸUúM±õÉ<ÏÿtZ×ðÈp*Çq8çâØÕã³áT:·éÃÑ<_ë11~†þ×GrÉZžO½–×W¡?ô‘<ã¿wŒËª~v=ÝÆ¼ë2Ï ãKåÜ„ŒkŒŸ»Õ?ymY׋ýœÐÏ€ñÜÓ¿•´áѼ®ñÁ|nÃyþc3_úƒ×R{é}ÏYØà{Ùw ã­y±Ò~>—ôç–~BÌÛXKób/q@Þçnx$ŸÇóHêgÿZü/óFaw_ ¿ê¡¼ö ý 8Ï9…SyÅpZßø¾2_ãgóú«—§8ü×K‰ó>°þ÷ô¸¼ÿ˵Ľy½v‰ÏòùE%ž=1’{émûùòøíþ|>Þmi=èw–yžûòyؗ拳_ÁzÄS?ãËz¬³»:χÆ>r8ç¶¢ŸöíÌA}óy±¥ó¦öå~XôOMëë?«œ—‰ùx÷¦†Ý×!]ÁÖua= Úá'Æf÷+þãpt\½ð½ÿ¶Ä—8/ãòäxöålWù•áLž÷…y'6æ9½?‘Ç#mœëWÚí8ðàßø“ä?ÿj¸=éík†³yœã wŽû§þäp&ÛCì ]æOçqÓ7äñì!ñíƒÃy}6æÉä}^.ÎgI~äÿ®Kó”ÿ—áL–ã©´¼æ{K{#ïOŽóáËøö£Å>çÒ<´”þ¿‡òùF¤}ÇþyižÕó3~»ìzzœVýÆÿ2œ›%¾»ìs–ãø2^r2¯/Ìó Êzˆ£Oœ GF5ýo?m8žúßÿóð–ÜþÜ»1¹¬çÁ>‹è×þCeQŠ÷?ãâ%®ÀzØ|þ^Ù ç<â|HÄ—÷äy·t~DÉó91û\—öË~¬øŸ<¯è+æ \H0ÿå‹óWÒtß?Ëý%X׃~¬ÿ¾îûóüôóaœaÈãØ{ó¾_ÿ8œ÷뇽9”æ…^WÆ5ò|ëáδß埗}ÅàÇàÏïÎý8où®<Î{(¯Ó:æ1|¼Ì½*Çó§ò¾%ÇÒþŸ…8¹Ø]àÿtž¸7¯7(ã÷y^&úóîNçX}¬ôËã|52X'r{²—×—õ¯Ä~Ø·û†¡ó”1î~$áõäpׯ~£Ã}c³ïk¢ìÃuOž_¹`>ö7Å~u‡s¿Mn'—y2˜§ƒvð‰×a\íô·Gø‰¿(ý«¦ù?TÖ±Ëv6¯(ã3èÞn§-üíÒÞ}`cÿ™/ƒ?i:ìG¾¿¬ È|*vì@ê¶l88NûxåÏ•y¦y¾ÙO ûÀå}…Êó“Þ?6\›ºÿpxuŽ?Ѓ~ŒÛaž4æwaßô¾)Ïïþât^íËÊþV¯£sð^î'/ãd÷ŒÛw¼÷Kœõ8hŸ¡üdjßþðp<õ§ÿÒp"í'ûáܟó@ªÇߎŒÍêoúÆ2î;ŒuwXŸ„¸óO1Ÿíë{óü#ìÇ‘×Ë£?üyí"œëþš¼ž¤ÌãD¿âXÌÓî±_ȵëÖK\|ï†.çv ÿqÉ´.ú=å¼Îr®rfzÏp|œ¶ûúKŠÝ@\~<ç°¿´¿sTÖïb~#ú‘1?ç÷ÿæqÁƽeÍá1¼ÿ³ï,ç¬`\óÒ0/;Ÿcˆýš ½h¿`ž?Æ­Žæö1æû”õ4ëmÊ~ w§õvľÏe©}¹ŸwÈz…8q'ìЉ¼äá¼öá:6N÷ùÀ˺ÎÛòü€³Y°ŸÊÉ´OÔÛ†#i¾éZ™‡ùi'R¿×SÖç¢ßèTZ6òÚáä¨N¿üþ2¾u$Åu?†}Ë:X¬Û:5N?úêG6Ö÷]l÷˪nÛ_øšãä2ÏäDy97 óý1jÈûªÃŽåõk‡-ívìôHê¯|¶¬OÁ|8Äk8è\Þw{oš7ý±áÁ¼Þêþ4Oýß`_˜!‰åŠ\Ð߃ñÁ‡ÓxÑ”¸ý ŒçÙŸý¼¢ï¤vÑÊpsÞÿãþÜ_ˆõ?'óºq¬ãÅ<¿S) øKÿÎÑ´oÀ–vHY?Ÿð¹VÖiîÏ휳Žñ®»òüÊÛÇðí†ï,¸¾=á÷G†Ci¼ïÒ²¯÷¾´ðw CÂÍw¡ÿ¬ŒGa æÁLëcï*㸷äqSàñ%ìΉ|n<ü_9-Ç8?êÞÔýð‘2>tkÞoçm _çcÞŸö¡ýåáH:0è_'Çmë?ór~:擟Ië%þz‰g0oûÁïÏýL˜¿öÎ}©gWÑûÏËýŽðs8÷èš<î€þfàùŠùÑ%ÈóÕ‹~`ž&æ›ÜšÏ €ÿÆ9jØWý#Ø—û­Ü×Ç•u3y œÿ¶ãü¢á`ÞÇí8ì{‚õ"X†}qþ,ÖëÜ’Ï[¾5 =Pâ{ìÿ…õ©eÿ)œÛ–ñŠq]ä»?¯³Æ~#˜Ÿu7wäqî2ŽûínÍãêèOÀy…˜Œý °¯ÖqÏïçu‰Ã±4üÿÆ8tY÷‹õØGÒü¼—gF÷|éÇ˸㙇ì*ón±Ÿ,ôýÌÇSüóŸ†Cy8ÚU°×·oøÍ²+Æ·ö¦ó5~­ÔúŒ}‰Ç`ß Œob}Æ71~ñÆ´.ò[ʼš}iŸúÿy¸&­güÖ2Oã̘wƒöÆ70óZ°Îþ`îÅ:Vœ×‰ñø·“cµ~óŸ”yB'Ó´Ëÿ¯ø§»Çíºÿòþáø:õëMÕ²nó7ïÃöãßQÎY‚…þáìË„õÿGÆå`Ÿx×pp£TæyÜ›÷ƒÃ¸I^\úç§í£næõ»X‚q~¬kƒý@œøŠ„Ïï(ûê`ßÚÛó~A ë¶t®Åˇ»óº¬iŸŸõvxZgõuù´NéU¥ýü9>¹9ϯ8“Úß6<ÆÑN–vÎAG¿5Æýqžù±|þÇ5©üÏ,í#œór.-Ä=RÚ]Cž_…ù!ûó¼Ù›7ΑŽäõ;Gó¾ß˜÷g:æøp8í›õ ÃÑ4.1 )¼øø•%.Íûã—u'y‚2¿"ÓWâ%¬ÃÀ¾ ˜s,ÏÓÅ~8·ç€Þ—ÚQ¿QÎÙC;qÖgã<³“iªß,ãPˆkNaÌO®Ç·i_Þ»Ëxê™s&†ãùœ´×¦ç¿9Ü•ôð§ °ÏÚ‰X?Šs£îLói®nË󉱾îŽÿHëÚo)ý²hGçõ§…O˜Ç<£Ÿý;Æ//¢Ý þ€NœWr{ŽËæóÉîLËa~¼ÄO˜§†uØç2ÜžöW|jØ›ð~gÙ6Û2Oñ5©?ù‡‡óižá Í®~Ͱ–ú¿þ}Ùïb-ÇaXLJ}^p|ÞÇìb?ÝÆº¶Òßù`>ÿóh²Ÿ+¿ÃÏÀ/IfïºáTÞ§ûqa󦎎pÿù¿[ÆQnJí†ïnNó.¿µœ3|C^ß²–ú‘ß;¬¥öîGË|Óµ<ßóÏ¥ÿ×–ù%ØçòþŸ_Ù‡xߨ]½òÁÒ ¿pgj(¿½ŒCïOç˜ýñpx$çÇÞ:ÜžãNØIôÇaÜã¦g6ú™J¿BÞyø¢4mèUÃÝù;Rüþ}¥?' }Â~Ý8—ýj7e;r:ÅÙß^öé9“ÚÇNçñ«SiŸ†]eÞ/öqùÜ·}s9?8ëq9 çBOã@Ï oL~÷³Ê|µã'Z\(óá¿òüþÒzõج¹c¹ŒÃ?`^7úñ0?ñÌþG".F܈õã{S?÷0Êíô3`Ÿ·Ci™ ÇíÌn|ËpûxìÉUÿ²ømÄuhWcþÚÑèÃ:RÄCX'}‡ßÇ9°C™¿e+Æ5q¾3úåÐÿƒyEoº5ÏÇ?™Æ7o(ó80_ç!æ~‡'§f仇ý ö?Uö÷Æú.ì—‡v;Üï„ùgÝC{íhÌ{Dÿ*ú+Ñ~bþmŽ×J?Ú '6üféA{ç†Ä¿¯.ëåц}âŽÃJŸ·4Îã©wåy–˜žÏiÆøO™ïíz'„¾c>?Ö?Ï':–ϗź\¬¯Åy`XO…¸û%íÃç/ý|Wåõt8÷ øÅøÖíi³ w޳†ºìÿvzÜñO¾¶ìo{v ‹^õ?ÿ…u‡°/çÒþÌÿk™? ½Ázùóùe7çóA±þ ë*ð;ÖY¢ÿñ0Ö™ÁßáIì{Œsän—ùØ–ùï°_8Oí=¬ÿ9—÷£ã}p.ûÃiÜåÎÒ¯‰õ%{óøîÞüèÏÁ¾“ØçÖc?ÎSyÆK±?/ÚYçò¼0ì[},mœ°wxð—Æ kÏ”u[hgâÜJÄkûó>ÏØ‡ý$˜o‡ñDì›\æñŒÝ@z¶ôSàÜ•+Sœù%Ãõ¹¾èÊëq.žS–Û…'’}üÇÃÑ|kiÏås<æy)8ŸñàȦô•eÝÖáœø øÃ}ÝóbJ?2p>¢ýð¶<. û‹sÜ^—p|wß½×£åýË>MÀ'ö98õ¾qãºcÃù¼ÍyžÖ¹1ì~ÏÁ²xÚþü?½ðg-ïËz Åï6œÊóÛq®Ö{ŸÉ|Bÿ"æ§âœ ³¿·úÓ×ÿÑËËz6Ä'§S{ëèóÎyÀºý“ɾýÍáxЇŸN§y~•y˜†}Ûpþ΃>™öáØ_Æ W'Ó4ØËËx.ìÛÉÑ|½ë[‡ûò¾Çù|Ò‹óÝs»úuã¨îïÞ><¾qn]‰Ï.$=û’²ÏË…q.Ÿ?‰uòˆ‡®Mú~mYÿP>—ë!ޤñÄ‹ã8× ûŒå8·´kÏŒÛú}âCÅnbøG2ÎqNÌ©±Ùú‘Ùpzì^ºãE¿°O4ÎÇü¢|þ#öãB»çw\ŸçEàÜôÏcEÌWÂy<íwÿ_Ë>*Òzž× RÜû±¢çÇãÃþàßýÂ>À'Ëýëç˜w=<›Ïw¸?Ñp6 ‡<[ƥόÛbÿîj™ç~ÌÏ@;ãxÞû)#þ<š×kÍóÖ$Ü\VÆ `Ï!o̳y(Å¡¿?<”öúæáíû"—y@°د ã&ÐÇÒïžö-ýŒ²6ö¾7Ÿ;\ÎÏËû”ýRpþGÞ÷ ûËa?«CiÔ¥Ÿ ód°O÷}éüÄë‡ãcóñ[¾ªŒOäu¿ÃZÞoòÀÈý×~ÙðhÂã{ʾ€çÆa¥·}™ïw.ïSŽs+Þ<†{Ÿó‡ÃÍã2ð½¦ì3€¸øš´û·—~ˆïoKýŒ×Ó_?÷Ÿ–ýÁ²}ΦÁßXöÙ;žÖÙþL9wý±Ø?û±`}öužJh÷Ïûÿÿ}çÊ|eŒ !þ| õÃþp&ð³e¿ “yÝþñ´žísKü…ñö¼_@GÃ<=øk´¯Öò<݇Ò:ícåüUô>–æÇüá±4ìŸ çÒ>’8Ü–÷W…¾/ÏÄùyèÃzæ»ÆýþÏO+ûã\Èýf°ÿy¾R±ÃˆÏ0oëí±¯ö§8‘Îo¹¡Œ'£ýy4 ¯Ÿ,ñé‘gí¹?÷¦ÔÏókÃ=i|é·J|ƒsò0¯õ®ÜŽ}Õ±ïסÜOÿ–¼?)ú50¯ë©pþøõ鵯öæýîÐܟ迺ŒW`¿UÌ;Àº´Gó:±2މs}ö»ïÿòDrÃΗøç§Ü·ÞJýýòue~hž¯0Éû!>ÒüÕ?îLöàCeüóݱ>z‰óî’ºÿ«åáX:滆cc³öž(ó€oô³œÊóäO¤~±.ýnÐøÃ¹ŸþÞ¼4ÖYÀïNëëž.û"âüE´[€¿GÎþ²ø'ì¯òP²sNÛ/þ—åa-íóóe£#©}þ†Ò~¨Ç†³ùü®CãqͯþáhïÄþyž2óëó9ÃëSüöðp2Å}_^ö»À| ì×úp:oåÃè+þó!¯L ÿ™áÁÇÞšú¾´œ‚ù#¤yìß^öÉľØÏã¸Xo{ÿÖgÿ½Ò‡qÿ¼/k‰¿®Îëåv=æ—7ò~ƒhï¢ û£}›×É–y•å}wâ\Sœo…yþ÷Œæiåþ2þs_¦òÁ:kÄõwlì‡\ÆOÐï¹7¯kÅx5üìÆ«ÙèÏ)öqdÙo\6ö†O”u¤è@üˆs†Ž¤þ¬o,çcœHqàûK¿õñ÷Œ N{xì ¬K½+Ïþ;­ûú§ÃæóÚ°>íhφ£i½ø§GÓøå÷·gùß›ö»y[é‡C¼öÖ=Ý›üÈg—z`ßY¬CBÜŠý0.‰øýW§xá*Ì7*~ë³aË7œ*ëÛ1oî`šïÿ¥½ŽùXïŽý ÷¦ù¥Ç†«ó¯ëÊË>þ9^:™üÿ¯–uh'ÄùŠ?»±Åpb$ëß6œ·9ºã{‡GR»òýe~dÞŸ¦ì€õ˜wõ•ØOûÑä§~ ´o0/ ç#¸/µËî^Ÿíý¥ó×Ñßs&Ícÿ¬›,ë)°Îó‘?è>×Qã\œŸ‚y²èymš?|ú]Ú1_ö9ûýá\Zý_‹¿ÏëVË|&´ÇîߘÏ=ÜŸÛÕØçã7ˆ+ϦmoNÿÙw|èÊ]Ëe¾3ÚûØûåÀO£ßºÌÃÉó°ËùÓy½7ü污ý~$Ÿ«„}Š^–û¥Š_Ëçoá\{ÆÞšÇ/)çævcáßá¼~3ïŸTúë@ïÝi=â§û„õ·¦s*>¯Ä¹àwÞ¿¢œþÖ<Þ÷p¶ýæ÷•òq¾Å‰ôÞ…2þƒ¸qâ2ŽœÏ/Ä>ÍàçÓ|ÿ÷•ùÎØ/õP>GåU¹^Ð{Ìg0ç¶Ñ-ýî–óK°žg_>!÷Ÿ–xêÖ¼Næ¦Ìÿ›òù8÷ï-yþö£¼!ÏýúðEyÿEè?Æ3`oS±ý+çÒ¢ÿíNô³"nÌqK×ÈóáJ< ÿ‡yøûòüÌË@{ xßa‡oMçüÖ¦oüé—צ}µt¸.Íë{t¸65ûßPö›ÿÅxöå8šú1ßXæycž#úÐïxã ³ĸUž×TösÃ~±Ø.û“²nçicÝ8æYHë#¨ôïd=¾x>sÆ%ΩG:¬«ÂúÂûòzB¬·¾+eÿsÃÙÔAúEe^k>¯¾Œ{øƒx—8ãt·¥ýÕa¸>¯³¹~¬ög<[ö9Èü-ó¿/ûì—°?ï€þìs‹ýÂ0λ…yE˜¿’Ûm%ݾ|¾êsÊ÷mœPâGôåu.¥ÝŒõ"à{>Ïû) GÓxÎ'KlÙç2ïïŽq#¬EÿÆîIý¯?Râsàó@±üƼ—Cc·ß?KGÂþ!¯LóÏß[ÖÉaÝÁõyŸ››s;íc¬ïÀyŒ7d=Êx/í{̽q ú¡²¯ÖÛîKût~[™‹ó†<é±o3üäëS}Þ<Ü×ã¼%ͧzºìSŸÏƒxëÿ‘÷qÁ|Pðùb¿¯;“~*묰ßWö¥]ŒõEoÉíÉÃù¼ÀÃãq²³ëË82ÆMÐÏs ­«ý‰á®<ž€y¦oJqóM×äøóbå¸çÉŸ·•ûé=œÎñt™oç—¢îdj6½¥ôÃb~#ü æÁOߦ¬ÿÀ~åÈñí™´_˯–8ãª87òž<^†ó±ž ûåA¿à×Q¯ci­ÿ\ö³:–û °žó±oÚX¿‰q£;òüê·äõ=˜¯·7Í+þH‰Ð/–÷¥Τi7—ù(X‡‰ueد?ïëPæÉÍóbŽ$?ôÅe<óöÿ.5ÊxΫÒ¼ø·C^xÍ8ýú—W$þýZéÇÀ:>ô;‚_8_çô`_êW§u‹RÎKGÜŠøóHrÇ¿PÚIˆë®Îë10ÏäHšûÊ2äp²;_5÷‘ùÉõöÿزÿ*óe±.ætÞ—þXÞ'ëLП[Î5ÚXïPöÿ½;k½¼øŒûÄ¿~8Ç}¬£ï»ÿÅo—¸óœÐï‹zaÞú0¿;ïg^Î×ĺœßx4ÍÝ[úCÐNÅøÂþܾr¿:Ö_a¾KÞç¬ì;|,Ïý1ØçF¥å%¿úceÞp‚ùÔwäþsìcõÿ—cß×Ü^Å9E˜Šõ wþɸ±Ì«†«ò<Ì…>AoÐ^Ç>ºÀÙ‰ÏUöÆx0úGoËçãa#ÎßCÜ‹yפú}O©ç4Oàú²þ±ÔßôÑ2þýÞîÈçkžýñQÁ¾z8•öÓý«b·Žås.°në5yýóG8|ø™r^ ÎAoL縭Ç{ù¼Ç7å}´0^Žù8gòþpŸ9•«›Ëüˆ}ÇÞúþߺüŸ|Íû»äõó>;8¿§Ì¯F1Îqƾ‘ð×X ú_›×m¢¿ ç›#~¹"¯«Áú,Ì9™ÏÉJáÆg~n釸;÷§àÜrè#üëã6 ë–a_Úïà‘á­i]ˆ[ó>ò·$»ò—e¿í›“_Ü_öÿ¸)·¯°;Ö1^•ðö=žá¬Dÿ'æ— Ÿñb™w–ú}ßVöË8žìó?I˶¿¿ŒCI󶿦ôûÝ•ºÞ>\•Ç©ó~CeœëM|ü¶áÁ¼n ñ}± ¹Š}Ѿ‡¾Òÿ‹û(ä~Ôóæý™îNãÿ¦œcŠ}f`·Ðž»>ÇíGÇvЙO‡òz¯ýy?Çl§Ë¾ èÏA¼ŠözîG(ý%׿}bó:².çh^•úG~¯ð ýR˜¯ŠùÀ˜·‡þ¡/—þ«yµl§K{æx:—iVÎQ¾/Ëûêa>Ü‘lï^ŸÖ­üôpe²/¿ƒõe^Æ•aGÐÎ@»ó˜!WÌGÆþ‰˜?˜÷á+íÌl/Ê|8ÔëÖÜߎ}i^»Ñ~,ã"Ø_ |*þ1ï‹‹8ó2ò~2e] úS0þ‚ù¤oHqëíe8ú?±ŸÚÕ©ò§%ÁüŒ£ß“ç“£íbЃý !'ØuŒbÝ ì<úï÷æ}ÊÑï„yȘ…õØ/tb_;Ìc½~c¾NY„qì7¦qá¯)ó41.»ŒýÈϱ¤?¯,öýÇó:ÝãiÚ ÃÑOŽJ^^öçÅxâøûÒ:¯îÍý÷e» yaÜùÐz«é5ùí‹ñRž/ŠyØ&½kþ£Ÿêá´®ç–áØK»ä ©¹ùëe°;6ös-ëw¡·˜ç„yr¯OûEÿ»²/ľñر_ÿÑáý³J?"Æ;¯Nã†5Kø>[Æ­1ž†ýmóywe>Õ±Q¬_øÕeŸì{{ ï_rK>oëc0ë¦ÐOƒ}4ŸÜ•Îù9XúÑ÷f½F?ûMëÎËz%Ìg¼'ǹ°‡s<ŠuCˆ7ag`¿°¾û›Ï8wéHšïÿÞ×Þ9ºÑ[¾lØ—çåŸÙ˜÷4œ·ëýwßTöûy8ïsòG‡‡µqzìwöp>Ï3G¿ú0íÌØÜ}ÓeÃéñ¸ƒŸüÉኌ›c©½ñÙeþæ¡bœýkè'Ä8Э¹Ÿúædþ´ô¡<Ì[Åú Ä §y~ÎŽÓu?ç×Ê:>ôóœÌûéžHç\ÿ_ÅÎäþ‹ÙlvélvùêFoÎliý®?/UŸ—göµT}Þ%~[1Þ[¥ïK³ç–‹kw£LN¯Ò2ý«ôy™nÎWÕyö\)z¸E›úÌÏPþª‘Eãx­äwVDºUz¶DϽ˓‹W¯: ß*.U?U^ýÿîa…Ó+šê«æc¥ÆÆêì¹r[¥rêßwUyÔ¿ÕòáºÔøÅwä³›Ò,Íž›7Þ©ÿט€þzrª¯š&Ö{õÞ®Ž<#2TéÀC.‡y?›=_¦cXÏ-ûÄr˜Í.ò®~׳+J¾|)Z=Ýà÷ø3§µx¡èà÷T-[Âé,ÛÁ¶‰ËRïG¯ZÆ5îk}à2—è;ììîê3§[=wеŽÖeryŒÛÕ™ÎWù3ë²°eéÊ·¶µ©ÓÖiZصêϺdé뾨2¬<ùbü£œˆ/í½j9Ec3~®tkü¯üzýŒñ ä¬Ê³xæáÒã¹Â¥õÝÂk­oÞeáƒ/ÃÀŽXyÎf}¥ÒïC»èùÊLçÃ2dšÙ÷«÷¦öo»«¼–gÏÇ_u ÐòWÞ…ô»«ïã½+—±»úݲ)xyæÑ³»Ês6Ó:î]Ü6ªù^c¼d«x_Ù¼:Ï•ÙE¾+oɬ¾,¬«6¥µMñÊ[¦Ï»g:=Ç[:<9Õ¼ªyãÅiLË®ÙóunJ¢Þ©e[ëÒi¥÷Û×eÔº°Z=ób†Úî2”ü9žâK铊 ët†YWëÏU,Îv”i»ªÏ–å÷vÑÿ:-—»{v±]4éñŸûZj½gZð=¢H³»Jøñê]?ÛL˾Ùó±µ?´þ[m(%3ðÚj¯°.ÀïðU—­|Ó¢ÒÔe±m·ÞQ§Sñp®ŽáêvD­³uÜ¡â*õ¾JçÕcY¤Uq[+«­RÿŽÏµìPVíOfô¬Î§¾"1=c¤îw©óྛ–ì¡ÁºvŸ•=ŸÕ6o&>#­e߬vj”5›=ߟÖ<©ËPñÑ®ê7\ìø÷šfe#øŸŒ?e¸MZÿ¦h‰´9¼tµ¿†Û5{~=,Tôqj»\ÛÀº?”ÛáªÉþVùÐĺŒÏàEm“¼²k¿Žlo™†ºü–îâ¿’«E‹znÕƒuø«mKýŒý²cÔyq™*-®ÚN¨Xïp”ïGÚHü2^›²—uÆ$öÚ L_-,«<çV¼o]­¸Î¢aJ[J½«Úuù°½ý½—ŠÃqsì_ûdîOTzÌ1Þ«_ª>×ij<£w­2ùjù+¾æáõX–5¾\ç¯ú49®WÝþ©}XíËêg+”n&ÒŒW-ƒº]¸{æóíBäÁ—²KJ¸ÿKù.+6ªçþ,ÇuÛÔ’·²Ã-|1?ù¹Jïùµ]Õ3Ö9ΓÇ¡;š¦ömÜÆWr±ê]_Ê¿[åâRýÔ¸˜Ÿ–<ñ»ÇÃZçVg¶ ™«ím]êÝú3·i­Kñ{™þ{ò¨ëoÅø½Ö3+©û%¹¿®¶‡VÜʲQ}æ3JcÙ}ÕΉ´VŒÒÂéxí¦ÿuüÖÓ/ëÙ°ú]+ƪéÅ÷º¯‚ý ~ã~ÏfYºçµTûGõu·|=ë¸Âdž­x¥.[ñßjß«r¹Y_lK¸Ÿ›õUÑ«â Å3‹†–Mödèфˋ!8ŽTïáÞ={®¿®ÇbGdÂöHa»Ö/ªiR¾Šc®ÝÆoh(úÑw`ÑÝÂD}µäáõƒYyxúhÅ|YýЧª?Y]ÌgïæŸå[¸?Ýj#¨>W ç«Æ=ŸkÚêrÕ}þÌqŽ•†yÁ¾xæ|ç‹õ¦%ÿ:â;ú“kûXÇuÙSÌè_`µU¿no¾u=½rp{ÏTü¥øÌ}Yìkê´ ©n›ÔX-ø®ô§Î ÿ¹ß¾î‹ªËg}òbŽÝê>>Å[.sU¤eýœ‰4ãeÍýcù§ç¹jÜVÏËâ´u›SÅ·–}÷ì˜gÃjZ¬X:ÒgÖº˜N˦3k,ö–U_u™÷HoÍE«ßÁoK³çÆQ*aßÀ}× IÅ|ܦd‰'½ôÊ/ÕúîÙœš.«_—í,ë®…¾,üYúÖ«_ƒ«¯©þlõyZm~×»TŸ“šŸ† ±)ëIí ë oêjÕGýVël˜§[5½^™uÜgÙ¹Èåõ—ÔýãÚ£ö‡ý_¤]‚Ï*®Äw%#哸3cZÅ{V<Éò÷uYlsž}çß8Ž™÷bû¥®]" ëü’þ«zª²9]¤¬'²—–Ïl]½1´%7Ƨ¥ßŒ7ïªûQkŸæ­Dð .ž»‹²p¡L¯½¦®)´x—Š'{dØ{Y~GÅ^zFÏj9qÌ¢xñ?õeée}Y}ëÊ.Öëˆ,^pÞj|„Ÿ±¿RíJ<_¥´5—gú]cª˜O¥cŸ]çñ\&¿SÓ þÖº­úËø™jÛÎÄ3Õޜ͞ ð†ÛªVßh°úd¹<Ë~ÖýG5ÏEî¨ÓqÌh Öóau~j=G=¯YÑ×jëÖy´®hÛ™/Ž«TûeV}¶æ¨ö;žã?°Â1(òö|ålv1>UåÔq‹ÕÖ«¿×±®eGëw¸/#êG¬IýV?ÄâìÏjË}‰ü]aºÆ<çiÍq·bA¦Ë‹A¬<¬‹ëÅ2‰øÔÈóÚæªXV•ÍŸë=ðŸûpYñÂL<·Úã5?ÙFªxÏkÛ[:Ñjcô‘çñqÙH‹ËŠ3Xë~£:½òýuÿʳÚÜîöôOµ3½õ.ÈßÊ“ý—§ò­qÄåEu¢U®Õß¹¦Äà^þ–¯ãx[ñÞ«g‹N5ŽcÉ,Úö¨ý#û ƦÂ_Þxµõ¾òÏÖïêòxªâüV_µ¯¨÷`Ví«ýQÇÖ»M³Y[—µ?à‹ûÁ¬¶‰UNí·Õ¥â;¶Ö÷(–­¶ƒKy<©/¦¥·?HÙ¦…¿³U1–×/©òç¼ë´Ê–X1CÇZxWøkÙ+¦—šo£iÅ8êbB¼Ç}¢½QÛÂWÝžµâ‡šÞÇ«ŸâUßÔøÃš{^—íãµÞŸê7£ØByÜU—]ÿï¡§¶m^?‘ê·ª?{öEéiÄžÎèy«]×ú®ô#j¼ü½çÑgÞ…z[û x±Ç’µŠÄ`üÝj3FÞ^=ü©ÛéLëD­;(ƒ÷H«íélö\~ͪ߸–ÓÖé9þdZs”öÚçÜÎõö Ã…˜Ï²(Kõeªr½²¼«×MÉ[éŽÕ^Ág–5ûÞ=›Ñ³=S±‘eË9]+Þ®åXçY×g·x>^õœúý–mVýJ5=œG]–êûðb¥çóØW%/åËuüNIJÞÕéTûCÅËêjÑÞÓ÷aÉÀ²y^Úh;/"_.Ÿ¿ó^”u§šÓÀºÀå¨ö‹ºêx—ihµq86Qñ¼Šk¼¸ˆã9«Íé—ârùH_CNݬˆßjùFú7-:<ý±Þ±ìÙx©9jüÞÊ_á!âÙ?Õ—çÔw¾¢1%®:âKŽkP_Vìã]-^ð\/¿Ú‡b¼Pí7fÙ–½Wá¿ew­ÿuyõ5%Îâx3ÛX—Ò?Øæú÷7Vÿ“•¯gøý.£}Êï¨4Ëô¹¾{ûjjÞGûI"8°ìÉø.Ç‘€ú7nsëÅú­vë¾¢5òníT¦bø¨íWý!õ…2a°¦°.“m‚¥[5?½z0mušhÜäýæáXÍç·øï•kÙ»h_š×?PË„eá•§ž«ùáu™<‡¼ŽÝÈÓ‹!¾õË㸟±ËßÁ“H|ÏŸ[1 .ÕæÂçZv¸,¹ÔkT=¸]‹ü­5~¸8þd]Tñ©šÛhÙ~§~îµëÙn¨>«Lk.Î[ñBaGÅ”jNŠS¬þµNíÆ–·ÎIùU5Xaóà|¬ò¼4ÀìÛ(¤™rõƸØ.àRtÔ¶®Æ9—ÍëôT;¢nó²]µìG‹75YÊ—{yXß{ÓáêÙCÒ“……±V 3åŠÆ&5 V¼è=ób°Öñƒ\Çr 'ÞåÑkᢶ7–nµ®zÞ)ÓÀ±…²Õ‘2¹ÿIJ5ûD¯_Ô»Z¶³¦M=·p°ÚøiÀá-~óÎç©í»ZŸhÙF¤©ù²‹ž+?9ϬöNMƒÅe›@‡cd›ÁálÖÆLä}å‡zãPþîñÔŠå½ØK¥mÅ/ªß—iâX_Ŧuž*ö\¥çµõÎȈÄÒŠÄ¢^¢þËâc­KõÅíi‹ÞÞ½ø×aE<ã¬Æû‹(&¬Ë²S.¥7ÏZvŽ?{zÊuæß¦ÆÌõåñ€Û \~}µÖXm!¾Z¸âguœ•_ËÎDÓ[:çwžtÑû£V[µçjéëtm³ÙŸ¨ö Šeû“Õ鿉±‘gkýÑÔµ\ž÷}ž<-P?›R^ý·Ñ…ÏÊf¨öá ý\Êï×¾ŽiUiæ¹ð~ëÜ@«Øj—ÓµrélvyŸì©>×qscð]Ç«|ÎÈòì¢ùÞ#Ò.S~µO·Êäô*-Ó¿‡>¯ÐÍùªú«}eø3—Ó[e*‘EãRæÿžJuº=ôlyfÓÊ·'¯^u¾-ÞXõSå1žZé¬ôŠ& CŒ•{fÏ•Û*§þ}w•Gý[-®Kß%Êg•Ò,SÞ+Uyø_cúëÉIɣƛ‡ïÝyFd¨Ò‡\ó^É´žÇÍüg=`9@÷sº=³çâNñ¯ÖQæ‹Uç=t+ŒEøbaËÒgàÝ ½ËiZصêϺdé뾨2¬<ïø]ÆÏ¢îZNÑØŒŸ+ÝBüÈéëgŒ%gUžÅ3—Ï.­ï^k}‹ðÛª‡ÅïÚŽXy.Í.úJ¥ß5†vÓó]F>,C¦™}¿zijÿ¶Zåµ2{>.¸Ž»fš†¿-Ôã¦+³‹ëmê1m˦ÔuUXRéW«<Gž~©ß!»:/`¼d«x_Ù¼:OìÛÂiñ¹%37J®uþVg5PÞ }^5Òs¼¡Ã“SÍ«Uã-ëÜ”8D½S˶Ö¥ÓJï9¶¯Ë¨uaOõÌ‹j»Ë8PòçxÊØã±L= ³®Ö18ž«Xœí(Ó:x˜¯Öïí¦ÿª®(ý\Ê—Ôÿ¹¯¥Ö{%»¨^ ÷ µ|­Âòj0-ûfÏÇÖþÐúoµ¡”ÌÀk«½Âº¿ãÕAù ¦E¥©ËbÛn½cñˆßcü×éê®nGÔ:[Ç*®Rï«t^=VDZ·Õ¸²Ú*õïø\Ëe­R9lGU›?Ó3Fê~—:î»iÙȬ{Õø¬ì9Öz° O,ûfµSkœì©ÊgZód7•É|Ø]ýV×+"Ãå™¶üއOÆŸ²Ü&U<­éˆ´9¼tµ¿†Û={~=,Tôqj»\ÛÀº?”ÛáªÉþVùÐĺÌzVÛ$¯ìÚ¯³NZ˜Q|iÙxUeç½¶R]¶·LC]~Kwk}b¹Z´¨çV=Xw€¿Ú¶ÔÏØ/[1F—¥×êýÚN¨XZéÛ8Î?¿Ô2Tö²NØäÏ^{Á«{Ë^ý¼zzñI+®³h˜Ò–R襁Ë$cÍs«87ÇþµOæþD¥ÇÓÕ¼­ã·="ÍžÙóc€V«øÝ›ÌÃëeA¯Ê_õir\/ž··R}^¦ÏèWªÓ-‰4,ƒº]XÏ=R÷êLÇ6KUöëº* Yz¢ò‚íªcÇuÛÔ’·²Ã-JÆìÃëç*½ç×vWÏXç8Oþ½‡îhšÚ·q_ÉŪ·’gÏW«ú[1~¯õÌŠEê~Ií¡·²lTŸ¹ª¿§,åÕ»-œÖõå¶üò¬¯_Ö³aõ»VŒUÓ‹ïu_ûüÆý>žÍ²tÏk3¨öêënùzÖq…Ž [ñJ]¶â¿Õ¾WårSñˆuï²¾Zz‰,Z6Ù“¡GãI½Çq¤z÷êì¹þº‹ñ0±<ó1Ä40¶ï=ÿÄm$è›Å³–_hé¿—G$ÎôêRÇÿ°¹5&X,;áµó#éØN(߯¯é±ðáÅé«ß{ÚuyStгi½wÄ÷Ghc ´|„’ß­väbÙ$nÕ8à<–(mŽc‹'V ºÍsêtu\‘ Û#…íZ?¼8¨¦Iù*޹VßÐPô£ïÀ¢»…‰—«²Zïy¾Ê’_ÍGO<›TÇ ^üÁÏ9vñÊñèG­:Õm ¦[ѸǸ¹®Ì£º\5G_ñÁKö°Ä¾XÉÍÃ[DVVߙ¾£?¹¶uìP—Í1ŽÓã ¬v£ê×íÍ·®§WÎn*O=Sñ—â3÷e±¯QX­Û&5ÖAËʓ˯c‹ºÏ¼Æ?e);àÅ&»Õ}|Š·\æ‘–õ“ù‚gÖÜ?¦‘Ÿqzž«Æmauó¼,N[·9U|kÙwÏŽy6¬¦ÅŠ¥#}f­›é´l:ó¸ÆboYŠŠ÷HoÍE«ß©i_¥ï–ý­Ë…Þ!¶ŽXܦd‰'½ôÊ/ÕúîÙœš.«_—í,ë®……(þ,}káÕŠ¯A‡Õ×T¶ú<­6¿ëѧúœÔü´Z®JOj_ÀXWx‹ê’GWmÃ<Ýb¹XeÖqŸeç"zàõ—ÔýÀXkœHåUÛ.‡*nfû >2ÝÊ')^Ö˜Sñž•ÏA²ü}]VÛœ‡gßù7Žc"2ñn¶_êÞ-Ò°þÀ(Õ²òüŠUçHYO:e/-ŸÅ{´\KnŒOK¿o-¬A&µOóÆV"xðxÏíüŽ2½öšU‡^Zz0Òò½óÞ–ßQ±×†f¼Õrâ˜Eñ,âZ|gyY}ëÊ.Öëˆ,^pÞj|„Ÿ±¿RíJ<ßCi÷P>ê]cª˜O¥cŸ]çñ\&¿SÓ þÖº­úËø™jÛ.‰gª½©0Þp[Õê» VŸ,—gÙϺÿ¨æ9°Èý–ž¡=¢ø_χQtÖù©õõ¼fEª“ªcë=ÜѶ³Â­'©~…/Õ~¯u¡Æ.Ç Jöü;êÈñuMËÊìùt¡N\Ç:Öµìè*»¦'êG¬IýƼlÅâìÏjË}‰ü]aºÆ<çiÍq·bA¦Ë‹A¬<"ºRËNõ»xï¶ž×6WŲªlþ\ïñ€ÿÜ' ä§hªŸ[íñšŸl#U¼çµí-hµ±ÇúÈóøT}jÌYqëbÝoÄuaß_÷_¡<«ýÀínOÿT;Ó[ï‚ü­<Ùß)Ü)^s¾{è}Oï{ž©¾$KþÞ=%÷ò·|ÇÛŠ÷^=[tªqKfѶGíÙW06þøöÆ«­÷•ÇSç·úÈT8ÆVqj?XíeÊC½Å¡•†qYûU÷š^«mb•³Çy¯~WÅ~ ¯õ÷(–­¶ƒKy<±xÉö=B“² ‹ ¦Ýë—ô°¾L÷’È_½Ïý‘5fï -{ÅôÔ:c=‹ð¿'Žf±Vý#¾ŠyʱŸÕ.²â·G0Ìv?‚3‹––œ"4¨Œñ«êÅùs=TL©—ÕFV¼‹`«'Õ7 Úê™iãþñV½klq[¹ÕžŒÚ¾ëö¬?Ô4ð¾8^ý¯¸®¼ò{ÖÜóºœh¯õþT¿ÅVÍØ]æKý¿‡žÊË“Uö£\¥§{ºDÏ[íºÖw¥Q;0UnÑgÞz[û x±Ç’µŠÄ`üÝj3FÞ—¿–í`¨ueðiµ=e~ÕXç~X‹·ªÇ2´æ(;íµÏ¹ëí†1Ÿe?P–êËTåNÁ·…¡EÝ,Cå£-²¬Ù÷.Ñ3V;Ȳ圮o×r\ù×±ïzw÷Lשe›U¿óe[IX±b4F˜Ç¾*y)_æa•í…E»jÿ¨²j° ‰èJ‹öž¾K–ÍóÒFÛyùrùü÷¢¬û;ÕœÖ.Gµ_T=êx—ihµq86Qñ¼Šk¼¸ˆã9«Íé—ârùH_CNÝì¿ÕòôoZtxúc½cÙ3E?l«jKXzÔ¢Ëã½’§çÔw…þì½SÇBü›Š=z×X<±bŸþ¬ï<Å˯ö¡/TûY6…eïÅUøoÙ]ë¿Å«)qÇ›ÑØ&*Sðœû jÜXýOV¾žà÷#¸Œö(¿£Ò¬Ðçúîí«©yí'‰àÀ²'+³çÇ‘a¯MÏí°)íŠÿ![+ËÖX1ƒõ¾jC°,¼v8˵e«¹¯Héÿ¶Œðí­S°ú›<¬ô-Þrý¹ þÛãÇz±~«ÀºoÕ­õníT¦bø¨íWý!Œàc·{¨L¶ –nÕüôêáñ77y¿y8Vóù-þ{åZö.Ú—æõÔ2aYDyÁ6[ù¡ñæ9äuücɊ׶bWN§ÚlŒ#Іg-»:Þ<¯6òŽE¯µ7‘UO-»×Š¢Ï£Øµx§Þém7GpÐÊÏûwGqØÊËOZ> :‹<¬|¼ºEpµUµü¸½©°Ìñ”Ê“}¨¢×Òi-ž-Q¹¸–"²W}=ØkÉÌŠ—8îFýêµÚÊ—{1ìr•·¥ãóÚ¾[þï(9z´0ÍV§×Ç·¾sy÷3vù;x‰ïV£x´>ײÃsK.õZUn×"kŸ’Ûn{೚ÛhÙ~§~îµëÙn¨>«Lk.Î[ñBaGÅ”jNŠS¬þµNíÆ–·ÎIùU5XaMá²åŸ½öh1Ø7¶Q¬O=woìPӬ엢£¶u5ιl^§§Úu›—íªe?Z¼©yȲP¾<ÂÇhÿB‹ÿ={Hz²°0ÖŠa¦b#›Ô4Xñb‹wSññƒ\Çr '-œõ⢶7–nµÊ­ç2 [([)“ûO,ûY³OôúE[XkñÀÊW•©ú.[yYuµx‹ß¼óyjû®Ö'Z¶±æ1Òî¦çÊO*œZíš‹ÿÊ65ÆÈ6#‚CO¶ê}å‡zãPÌS+–÷b/•¶¿¨~_¦‰c}›ÖyªØs=¯ý¨wFF$–V´ õêõ_÷ˆrk^ÖmE•oïÞ üŒë°K<ã¬Æû‹(&<>õÆ.Ѻ«XÚ²süÙÓS®3ÿ65fŽò€Û Zë ¬¶P/®oZ¶¤eg¢é­wÆ[ó;O ºè›ýQ«­º( 1ި׳?QíAË0ö9&«ÓÍc#ÏÖú£©k!¹<ïûݽïïxï…üeϱ ï\{ÏSøºëà{íÏŸ/¹míüÓž|ÇÚ;ñâ©wŽÜÊá¼9š°x¡Ð¥hòz)˜%Å{ŽØ¸l«nªŽ?•¶µ´ÖòfV+MɇßñÒªºYÿ£ôªr-ù[ºÂÏ&"å±>xå°®y:mÉ¢Áã¿Ò=ÎÖ¬–S‹¬³Š/–\TšÖ­di½oy –VØôô¯uGÞoµ X†zøéñXá:z+¿Áú¡ì“Â=ëÓ ý^´ŒøÙ"ùÔÊëÅ"“EɳƱ®ÒcÖÎ×+‹ÓYé-YqyølÅ-Ênq|ÅŒÒw®¯âó •9Åv½tk™ñwå¬ö · XŽK³çËœ±ÛŠ=ó\åié—…-c{«êæáÎ+ÃÙ…)æ‘…aE»‡eÎCñܲ3JnÊgZ<³d®Êª1¤0ªòªßiñT=âgêíåßkk[˜²pÖ¢©¥ÃŒ3e×û-¨ß¼zsùKTž…y¥W8…Ï)YªX£…Yë¿ÅN£è³äm¥Sé•>ZºÙ¢OÕ‰ñÙ’»E³’Y$ÖRï*¶d¬0¡ø©ü£U_+¶Srõl¸ÊcEäoåÉùXqó‰ËUü°Þçï‘:+[¤Ò¨ßzôÝ£QÙMOß,ŸÌï³Ü¢²Rüñ0´BéUùJÆÌ~—yïÅ–”Xö€o¦ßб,Œ(P¸°Þ±dkÙ ‡\Eu+[àÅJVl‘—Ç O•î´Ò*»¦ü¼W_N[§W6ŸoEK«\ «n=]³tXñ¬…“Eߊ·–½Q8ŽÈRÙG%Ce ”^XïzXQ:¡ìÅ¥½kÙ+ÿ–ýñdڢݲ œxú]óEÙ¥ÿž.xXd^yø´xÍôGp¥Ò[yyXReXú ôJ½ËüŠø¡d©p¡l‹‡Meci[úÌzVÓÉ6Ââ‰zfÕS¥S²jñÜÃZ.+º,½©e¤ìªçsU–Þ[ßÍÌË®Yùx¸PºØz×ÓkO~žî«ü£¾ÔŠ…<½ðhYyEle+¬²ÙŸX¸ä²•?W:áÙÎߢ»Uާ§-ž/i声oÙ+MKç,ûlɧN«diÉGÝʾ)^*›ÀvKåÇú­|œ…Íú¯üˆ\Z¶ÂÒe‡9O%KÇ” ²he»À §–L,š¾-ÌEd¥xgý·ôij=Œûú¦ÔãÕÒ­ºªª<˯ZøPÏZºbÙm‹¯Š•¶åó,Û­°Ù⿲ëOYw,¼Ep`éˆe[<ûhÙÚyðÊ©ò-¬Yõð0èÕEñ_Ù]ÖʶxötúYÛž.Øn)ÊuRõR¶Ô³Q,)úÙV{ò±d ø¨¾+Þ*^D1mñÊúlaPÙ¶–α]´ðªl§§CJ§¬ßíŸj(]f¼¨[ñÚÒUÏYòcÞ*9±L•Õï3N={¥°ÁϬ¼?=÷xìÕiçÏJ×™\Ÿˆ>)ùzt)ÜYxŠà‹qÔ’]Äf°ŒÔ»\ž¢Õâ™Ê¿×Ž)lXòVzfÕMýæáÙ£A}Wø·Þ±ð)+Š9+ÏšN¥s½–¾Z<ðtת—¥+üÌóÿʦ)}V6H¥Wú¸HÏ|Pt×|S6FÕIÝ*~káEéUëætKÎoVŒ£xjáañ‡‡¨>zö+ÿÔŸ-<µòa^õÚÅeTŠöQQY1¾-^ªw”}P|±ü´eW8fiñÑŠñÔ»žòô«¥÷-[ÀÏ<;¨ÒÌC›¥7Î"z­ì§EÛK×ø¹…M¥×êý–n3ÿ~,~Ìc#¢vÓÓGK§•,O,=²äcåÛÂ!—éù1«ÎžÝìÑÍ–M`ìYü·ô±å»=(^´Þ·Þ‰ø>E«çzü‹*«e×7ë¶lb eÇ"¶œñØÂ´…7ËÞYu°p̶Aé¢ÒËþ3m»×ÂÛÅËþ®ˆ<,}nÙ–mËæy8äú²Ü#ö–mY«læçw법Íd~Yráú*™ôø¥Ç[È´2ßU=ß•ÞYú£¾{ºfÕ—±îñÛ¢]•oÙK–®(½e) {ï1ŸÙ~{|ߊÛò³\/¶u»bÅ –.©2­4ª e[-\²-·äªpÅ~AaÅÆ’¹…^?"é¶-;ƺܒ‹‡)®sÞ½8Á²ÊÖ(^ð»žOódÈÿ•/òêëÙB®›ç§¯¬²<|z6CÕ‹i±ôTéãÊÌ–‘¥‹-;Å2eÚ’…'÷œ*º•/Œ–½U¾-Þxö„ëgù K^,3…)î–Yõj鋇g+N‹È‘iT1œg·¿,\r ߊ÷,KõÌ«#ÿ¾h[úeÕWñ¹…ñ–?k醇þÝÃÂ"t\éIÄ·°<#6Áâ5ë ¶ÞÝé·Â¹ŠYY>žW¼µ0aÙJïŽb8Zo‹>…5ÅÖ+ްô…ëÀw‹ç^œlÙƒÖ»õ+Qi,þ2í–ï³x¡ø©òU˜P2j麪O ï-\+Þ¨úyô¨zµxЗW†31<¾(üq~œ¯‡yËf·êeý¦0¥ìÇ,쯙F‹,Ýnñ™éöb eƒ=þ*l0†-Ì[v ê•ÿ°h´x¢ì §oÉ„õÕÒ-…«îQÜZö̪+ãÆã¹åƒT½"~(j Z6ɲ? ƒÊï)ù¨²[t+ 1Ÿ”^*ÌY²°ò·ðÅøTe[zÅöBÙ:Kö ûžnpý¢¶ÓÂùfÜŠfëVþÌÃ¥Ã, %«–)~÷ÐgýnÙ «Šoœ§’?ãÒŠ6-·xÕÒ5‹·ž}æÿÍŒ¶KŠw\GKŸY&ÎY—ëôüY½géšç×¼8OÉÒâ3ç×zùÓkCZ8l}®åké”go,;¢xkñÉâcËÎ,RG=»£°èÅ—öZõ³~³ô’åãawêo#:ÇzÌy1_,Ûç•Õâ¿'S ʾ(=õôëÛ’ŸUgÅ'õ™Ë`úTŒè鯢!¢KјC寞/B×£·§ShñÞY¦4î™E£õ»'¥“Q¬s=¸Nìë[<²lÞ‹ñ¶lxºã¥oÅ<-]Tøò⤈/QþÌKkÑÕ¨ÍQ6`Ñ6HÅj}b=[úèÅjŠGÌ ‹L§g»T+3]?UWÏž(¬©º[|Ré#ºmÑßâõ×±.ÓÂ4çÏ1Š•_Ë>{8hÙ.Ëž´lÓV׉å`ѵ{ªòdW:ªpÃÏëï-ÜÊÏ“·¥#>ZøReZþÜÒ 3-ÝlÙµVùï[Ï"Ÿ[²à1¹=QXf X4yï×yÔ²´t›mûÇ–~x´ì ?W²T8SükáœõÈÒ«ˆ-°øÆºÑ⛲V|`ñÖÓWO­2½´ŒI‡6­ßÕgõßû­e,ìy·Š[X¶ s-ŸÝÒ·±¯b+½…MË~¯ˆïJvY:¦ìã˜ùÁiF-;Њ5<Ûa鉒CÄõØÓ©·â…–ŸòÊ®¨Åò1‘z÷êF û–öòQ¶Ð“±å“¾=[õeú,>©ò{žY²ˆâUá@ÙÅGÆŒ¢É³¥Ï*O‹¯l<;hÉ+b3Ø>·d*0½kýóò³ëŸ/Ëé/ÿï»çpùx¸|¼}|:¾°‚Ö3¸lüiõñµóO?ñäú§gÖ½t6»|U°I‘ÑJc™Å)Ϧ¤™Z†‚j+/Ï-‚î^š¢i,yñ»‹¨O«®S1gÑÄé#®Û’©Çßh:ë݈Ì"2nåÍcQ2ȼ%¿Œx|lɨUF¯ÞrZ¸›òÎ"ø®ìV´ÎQ]\”=à¥W{òìÕñyëëñ°÷»'‹¨ŒZòˆò§…›ˆ®LåqNõèì:=ÿ1Eæ½é¦ðp‘>ivÍÂͺ§Ò4žµhèµ=õšªWSô¶‡¶^¹Ìã"y·lÿ”2¦ÚÚH™‹È»•o¯?lÙµ^þzX‰ê|T_çõ‹‹Nïé•âiD®=<üÞ[¿m>zx5ÏÝ¢u¤‡ß=XŒÚØVÚ©|âqÊ»Š¦¨¶d2l£ô{˜°ê4¥œÑ4-œô¾¿›3SyßÒéˆÜ#y,ÂFåÅN¯½ŠâDa‚qÖ*³Åç^Z<Ìx´Oõm-›5¥­2{óíÕ}K&-ó0Åq ?–Ü"X‹Ès "Ÿç)3"[Å7‹wLå]£óø‘¨/òä¢pcéHëùú§È¿Wvün´®oZïôâ¶çy/O[¿-BžSl]¯ï™Z—ˆýìÉs^µüg$ý¼òš*§©2¨ŸÍC«Òá^7•‹°Ó=eÍKS„/o-~GéŽð7¢Sm]‹Þh¾½ØŠbÄòÁ--—QÙzv²%ëy}|KÆQÚ§Ò5•þÎ+O OœõÖÑ“Ï,Dx£ÊŒb(¢[Qû¦Þ™×GyiÑ«Êï±LFå‘m¤Î]™ZϨ]‰Ê©/½ïYòîÑ/ï©w˶Dís‹Þ^;éÙ¿><¹Ex•UDo£øGŸ{pÑ£Cóbg*S阧œ)t0NÔ÷EÕsjze‡£´EìADÿZ4yïöò0ªSpÕc;"ôOµ¯=|ŠâÒ“iD®SäÕÂɼüRô{ö8òÎz2Rf$ïV§È¢×VöÊr^Z§ø¨Vy½´Gõ7*ÓyË™šäý^_}Þ«#Q˜‚cUßžz÷`·e“{dØëï­ºNáÓšzpªìËfÄʵ0ÐKƒÊSÕ%úl O{dñ÷=öd¡9êßçµy‹Î«?S|u‹G=4Yõïµ-YO±YQ{Þã ¦ú»µêÙâW”½uìñ…SdßS¾ÅÃYy²Più¸(?æÁe”½xìá‘Ń>,YGßÂã¨ßh=÷òŽà6ÊÛNzmz«lO[²î©_D&óò¨‡.¯Ž½ôõÐñ9SøÓãÇ< ´lw«>SínO"ö1Ї»Ú¢©VyS0fÉ¥……N"uŠúÃ(¦=,F1=…‹ÂO«þ]‹ð³çyD–=vÀªÏ<¸õމؤ)>)š_¼#Ïzq<­<–g>--¾ô¼Óâg³<=òè‰Ú®©ïFò‹à¬§Ëz²í-»Å›^ L)¿å_<¿àa®‡Þ^¼OáÓT;5Å?L)×ÂÖ<|˜W>-½‰úÉH½¼4=<™‚·Ö³|,ŠÏ½vÍâõ¢xÕS·^ÜN±Ï=ezv{ ýVþSßoÕÝò7žÌ=ŒÈgž:Xü˜Ç‡õêQo¼Ñ¢_ñ¼‡ž¨l{ê6;½¼àú«ï=øRïFi˜ŠÇyóöøŹUç– jùÖ©ònÑbÙ/M$ÏEˬ'ÿ?æ±å‹Æ¨goá‹#qGD¯[61‚«E¼3UF½¼[¦[vd¼ôüÞ²M‹âý¢åõŽé¦bfQ~¯WŸzëÐK{/¿"uölï<±E/þ¦È1Ê{Ï–Fèˆðkù,*y0äáeÑö'Ep;ҵ~·Êí¡#Êc?›Ç´~›ß‹² ½ùO‰‘¦Ê¦‡ÞVz/ðpèÕ{,ôøˆhzU¯ŽzøêÑ×#£–OéÁEÏÝ[ߨ<{p×[ÎTÌMñs­¸dL¡ÏÊ{‘ؘ7f˜×NÉö¿%K뻊W}÷øŽ¨­‹ä¿»îýÖóN¯o›'fòÊžkSéêñ Sã€ìGé‹âG½·(ß1…SpåGínù–)²YÄûSø<…güÙÇúÞkÏ[òW4÷”3Õ¶X¼ŠÊn*Ž#üiÙßE”Ý‹¯–Žõø¤^ÌFýQ‹–EóeªMîÁVÄxÏ"±ˆ¥ëQ~÷Êf^LôâÐÃQoù^#6u z±·hŸÁÐT¬ÌsGlEÄ÷,ÚÆöúÉ(®zù¸H_Åùm•ýí±ý-›ÖªCÄ®ÎS—yî©ø˜‚›–Œ£6vJ]…‘È÷¨óì\ÔGòšÂãyí{T—"üóêÞôüÅA//ç¡Ãz/EÒL•i¤ÌÞw7ƒWóú@eã#¸UïFxîé¤.Q¹Fëåe-iÕi ç±eœ´ìt/f9ŸÝñð4ïw ¿‘wT¬ÿQ»õeQ¼Fñ·(Ûµˆ»GWz}p´n‹°+Sñha£…±?£ú¼òŒÈ¢Gž½˜^´n¤Ùµ~/?»þù²œö’õûe÷>ñª·]x÷cž|Õ»ÞñÔ»Öž>ÿöüËgäÇc+È`=ÓËÆd«¯ú‰'×?=³þ륳Ùå«Áêl‡è ¡•À½lüç4JÝù·e‘ïýÇçÖÍïòoœ§ú®îV™­tž.âVeF°åï¼·…¥EÜÀX$ÏVƶÂñN½=ý®q²èr-Ý‹âÖÒ¡–.Σ»-=ðìÉÛ:U_zøa½7¯jée{Zú5¯ à<,¥Êjù7–}¯/R_”-UõjÑËrb›©Ç ýæ:mg[vÉÃÐvó¶U·o–zä³Ý¾¶Ç'{ß[é7‹–EÙ"–Ÿ²5¾-ûfù/+õ>ãNåÉsŠf¾/*ï­ºYf=r´ôÙ §ç2•iéMTÞ=1Ʋø¾î–-öôjEüçÏ– fþXïFyëñ¼ö#=þ"‚] ëüþ Qç¹£ºaaÎÒéezfùŒ–,#±Â ùf{ÓJÃiÕ;Ö3ÏXåFôº–QÄŽµìÛ¹+\{<©qÚ²³5Ýœ7ÛŽ—îiw{óÞÛec·ÛÎG|ÀVñ@•·ˆòçÍ#úþ"iµþ3Ÿ¬ßU~­4^zFëÙvÉëSõ®}m4mýÝòµ;ñ^r>/ÏG?çÝâ£úÝÊ×ÓiõÝÒËÕÏ"q˜G‡E[ënÑÅuòêÁ;××ÃóçÅv{º0Å®Díc¿… …©šn+ÜIrëá¥÷¾ew楡§*/K=ù©˜EÅ2–]kÅ)^>­ç^ÚŠ6#Nîm¿´x¹]÷<õ˜W•Íàï‘r¦ÒÒkŸ6ÓžqÞ=6¥egXÏ­´*OþlÙŸ„Ue¼gVYÑ÷¢z¥»7ÿEÚÏÆs¹Þ,L¶dâÙLj-ê±÷SùiÕÍú¾H1åÞj[¹çñ;/Ý1›àÙ˜æ§ä»Ù´O}gÚ,^ì$]ŠØ%c«½õAÞ=[‰EO-Ç•™¦•åÚÊ/òlªëõÑ/”{j}ç¹E õóºì¨?Žúw/ÿ65f°b•/Û Îc^:6 \ÇZžž|æ±ÉŠ7;ýnñr+íúvÞlÃZvÄò‘&6 w;ýžb‹j~NõJß{ßõÊÞN|ÎÃÓZ.›í—{xÆzç½£ÒZ¿³N{´EëÐûî<8žJç§Ê½h~D0:E?‘fQ6³¾·ÛÆï¤{3ðÅ>d3è¦õ¾÷ÜV 3ï½ÝqÜ¢ü¬ò‘w£>ŒíIoººzìÔK÷K÷K÷§ö]û¼%úlݽé[¶¶õnÔöÎã“Vª¼,ßéÙYðóˆÔe»ïEúÏšŸylE\7/ON·3Þ]Ÿ"²Ø,ºÕoËFK"v$¢cóê¡gß6Ÿ–îyq¦' ë[Q—yðÜëSÿ<¾µøìñ½WO,>(håÕâ‹Â­Å»Í=õë}¯eW< -ÒVn¥Nlå=Õï/:ßybíº•kan'ÐÝ#C¯~-{åñy§ÊèµQyñ{êû<1Δ÷7#ífÜVùžœ§Ê‘ÓDÛQº½º,’×ö[eYØÝ œm–<}ÜÌzìT^l¥ÏØŽznG{é…t+]`¼Zi#ù¶°gÉj;°´Ý²X„[>ªÕVæØ·—-ûgÉ2"÷úY]¦w v6 _Sð7¥¿a³ud³ò°ìÏfó|+˨?of?è¢ùÁ:fÙ•¶Îײ1uù›-O¯<:¦àsQõ©óQ}Š÷›Á·–ÿ±ì¹ÊC}·Ò­Ð;š"þ%RǨ\7Û~Y|‹Þ–ïØ)ý[/ÝóÉñÅz{:aÙºˆ Ty[}¾SxµŸSllä½^ûáw”ó¤Û©w“›]Ï^LN¡ÑÃQ¤Ü(öTz ÓQÞr¶=z¢¼­ã­ú½Öû*þTãÁ‘x®eo¼4+³çƾ5=+³¾Ø`^™[ržj—¦è”‡EÙŽ^D¾÷Þ¬^~Þ8hd¬ÔÃtOÚytt+î¨=òì’'#O†*ÏÞ÷zq¥èmÕw)˜æÅvo×|‚E”Sû¶úËS•¥ÊVþ²G×#åxi­|U][˜T¿O±ýÛq/ÊgZõ›*K•G4¦òÞågëL•£gÏZö~^¾{ØòüôµU—y1æñ_áa3±î}oñÎãéVݛɟâ­lƒúÎøâg‹ò‘Ñ»7}ïÝãV­VÞSxfñ«â£}^ÜcÕ§…‘hú­ÄÜ"è±nzXŠðÉó‘<¦à+êwùÏŸ2 ‘|½ ×_Ôi—gqSG–¿î‰³6Ów.2O%?g­XfÚzx¶™1‰%ËyøÛâ³gë-9Däå÷"bÁ:Íò„÷wÊmÙ´yãçhZwóÊhõÚ.Y(º½ß`ëët­xrI¼£>/’Su¬G–Š~Åß(ÿ­ßç•oÍÿEéÓ½"ÊÁ÷Ú#±o¯î[¸ž¢Ã[¡›½4DñéaÏz3ÛµÛqGõewöçõÛáGæÁw”æ¼·ìÂTýÚ ½Vv×¢o3qÚ[g•>¢cꎤŸÒ®§{×úûËÏ®¾,Ó~Éú½zï¯:qûþümåâÇ='ßýeï~â+ß½ñÞ Þ[Ïç²ôÞãkçŸ~âÉõOϬÿzélvùª!µZÒʃ-ú^”…ìõ˜[yo·÷ˆò­×zïôúo^·Âê¾Xqº"þGmDÄ~l7ÿÉÏn7,¹Fõ%jÿU:O÷©»Š–íÆÔNÇíKw¿îlÕý©„Ÿ­ä뿵Ý2z!Êt+ä¾$òYž=W6Ѳ–w€Ü>•d¿ÓíADÏAk¹yʰÊ_øÙ¼XX†æÁÞvë˧º®½tµ—ï^µ½ç´ül»ñµÓïíÆÞvÜSø b +¯yxŸŠ#¯Ž¬‡óÞ;Åöo†ÞÌCÓfÐüBÑ‹/„{»ìûfß/flµêí½»({íñ¼‡võü…"¯yq¸uz'Úˆíö;‡/ä{»±µÓîÌ»(†[yxõÙêå{„÷Ö{Ky´ò1Ú¬-½øÞÉ÷vËnÑØ ·Ò_ [ŒØ„¥*Ï¨ì§Ø†­’ÙNÄøváh§ÚœO½žB«¢=ÊÃú9먕×VË •~‰þós¶W‘ü#²òòÜn]y!ëåfзÕvä…`sZJÞ–,ZòððÑéyxß²E\µòjÉ«•fѶd«íÁ<6º—þͲÇóÔm«åµk‘r£ôoÑz°½ðêÀt°=T´©<7«>–˜ÇŸ,*Öo½¸X”móìsMk¤îùZ´/²®SlÁVëæ¼ò[”ü7ã^O6ƒ¶Íæ‹g«X·˜ž­ÀÝ¢ý ×c3qµ¼‰Ö¯Å³­–‘'³ˆ~,’Ï;IžSéð¿~fñk)PN«|…Å}³hˆ`žËSåFä[§Y”­ØlÛÝâÇ í^Ï_L÷"íÆfÊa‘¶m»°³¶zt¯ÌlúE»*÷…¤»-<©´;Ýv-ÑçÛ½xy±Ü›a³vÒÁއ)/_ËÔÏ=ŒÐÌé–ª|Õï=öÙªk‹'ø}Š¯Ú ÷vêÎ<òŠÊqz­ô5Ö¢e0Žzø?¦` #ùGi‰Ø«nKÕÿ(¯a[#üëÍkºc½Ã4Zvk³mÀ¢îˆþ-‚FäÁÓT›´]¼í¥wÑØØ)1îvàv^Ù´ðúB¿çÁÀvÄI‹Ð»Þ4›…Möǽv,ŠÍVþü[”—VY-Úi#¦äÁ¯…÷yq)‡Ó÷ò0ŠñEëÛ¢eµ:ZöjÑü°ÚÔ->Dh™‚ƒÖq·òì‘­ÂúT_0WÑ:GË]š=_Æ‹Œ§¼zÌ£s;µ_c:¶Ý÷VðÂâ‡õ|+êÕÇE”Ñwè¦eÓzh´lHÔ¾´Ò©ß¬´=X„¼¶ú¶ènaŠe?/=eoŸ§ø"õ=z/ïÌSïyï9½P0Å×±Uï©2ŠØ“)å,3;A&ÝÛ Ü/šöyò‰Ø‰ž<[øï¡ªM‰Ö5‚ó(OT……EÈÉ¢µ¾û.¢Î½X^¿‘ÿ"ä¥ô*‚…ÍÀ ‡›yy9›Ù&ê-o+t¦•NѲYú07õû›Ñ>âeQ:1?ÿ³ô0- Ëâ/¾{ä¶½‰ÒPã«U6çÝâm-ozg×úçåg×?_–Ÿ]2ÞWßxÃuW®ÿ¹ñ⃯ZpãÞêÁ˜âÆ6²XAëÅ\6&X}|íüÓO<¹þé™õ_/Í._5c)©bHK¡ñÛ’Hç½ãË¢uª¡ðʩ߫•ÂKg‰¿«º+>1­ú°QóäZçiå­øá÷§ÊÝ’µ‡qÏñgÖ Ï(±Œ•^ye· \K½|-›Ã¶ÆÒM {QáñuÉ(ßâ;LE³Ç;KG-ZÙ‰X2ˆÊT9zezð:ÅQ+°œuËoðw K–œZu³ôº%_O–QÞZöÀ{OéLÄVx2SAÍLX8ôüšÅoÏ&µt•ŸG0±¯*½…ÓˆÜ™ï– #±CK¦-ÝRt­t”Ïqó˜ù­bÅŽ­,{©laë¹Ò!õÎRõ_Õ»…õ»÷^Ä~{¸³Òxq¢…‹–Omé‰Ç u¹,Ëï[X‹Ø0/FôžMÉGémKו}ç¼=ZU¾£åpyVXT–­QqÝýçü-9´t-b<=ˆè‰Š7[ºÄ²R:bÑߺÏ”.2ý–ïêµÑêyo”}jÙw–ƒÅgËæ[ØáôïÔg¥ªLEçÛ,ŸÏi-ž[å«t–ïSù)l´øÑÂJ O^ŒÍ[éÊkÙH×›ǃÖs®ãBÙ,O"ñ?³h³0oa›uªÇvXe[öKñÐÂgÓjXøñd­üCTß”ŸVujÉšy¢ì—÷ÙŠ?,›ªÊðìxK×"¸nɽ%¦¥•WK–VÙnZ¼ïá‘åÛ¼2¸þÞ"u`,XôEó³ðhÙ2%K×y¼²°åÝ–-UtFì™%ç(­½e[qtÄNzu°ìQ]¦¥OV½ß[2³â›H>-ÞYeXrµxmaRùPϧDüÅÏ–EnU'Ïž¨zyu¨ñǺÌ~[ùTU§ú³EoÄ&Z1¡¢£÷ŽâË{®ðjÕ+bÓT–N0ê÷øÔ&DìBO>ßøw¥³ ûü\•]ã×K£òjé‰%ƒ¨Ýöl’Â~Ô÷°®ôÚ&eË[~̳Õ\Σ¶ÁJ&SxíåÓâ_­GJ¿„Ëôâ¼–Ýð°ÛÒ)…5+†Uå´êùÝ’Y‡ˆþzåYð0eå女äiù„V=”,”\-«XG}o½ß⣧ß-LXñÛƒ– ˜þMÊn¯P¹*†´ì¬eû-ûáÕÏò=;ϼè½=ýiÉÒÓMK­çQ F~c|´0îùMK^^ÌæñÑ“©òË#6“1È6PaÏÃf‹§VÛˆyÆx±ä¥b/õÙ“…G´0ªêß+ÖÿñîhÛ@ÅKT¦Ê¯…á)vÂÂdD¿,Þ{>@aOÝJvÊž×¼kéÇŸ&= µòŒÚEÖ-+VPØiùúN<Ÿî•ñ!Jö^¾^½<žZ6ã‘elÉUáCaŽiàó^yœ—¢‡iS¾…ùÑK®¯U¦•γku}< X¸µê®xØ£7, ®£…Cæ·¥ç–,-ÛÖ⃊!,ÞqÏ·tr…òké¯WŸ–\<ߤhf]U˜¯?s:+?‹G¬‹-=P>Ñ¿çáÏ*[•Éuµb-õ¬å¦âÉ¢[áÁóoLYøñô&’·§+‘w=^Glcý¬%Wfõ=bŸ¢¼‰üƸ页Uç–¯‹ÈÆòÍêeï6,_ÅÛˆžòU˜÷í­*‹ðs¶uÖÆ*Óo}nÉÙÃŽòVl¢Êñì×§WÖ­ì±·X|hñÐóæ[x÷ôEÕ©¥+-½ðê­êe•ÏïE}7ãͲ]‘Ûz§®+ÓcÉSÉÌ{îáÀÓ=ËŽÕò‹ØÓˆµpÀ6FéZÔyõoécä7…UGO·•í´üˆJ£òò|Œâe -½ó0ØÂ'Û'öCª¬–LZ±Œ’½‡Kç-ÛìÙE+¯–Ž(Œ´üz+þ²ä°è[ÉÀÓ Æ¥ç¯Z·ÂEÍoå“-¶òöÞS2³0í¥±°«ô„e«øÊx³ì®õÝÃ5¶ì„¥/õïuÝvÒméžWo«Î¬JžX2òQ2á´üÙ’c- …Ù¯jÚ<Ÿ¦hðøñcŒ7U_«<¾•¬¦è²!­ø¢e •̬rZ~©…iK/—é(›¥° ôLa…qéášy_ß=ú׺-™)ŠØ_Ug »*]KÞ,°0lÙHå·j¾[:fù;%“V,¾Y2jÙz•ƺ·ÃG1,±lº…½šo¬Ó¬{–þ)™°­Q´¶|"ûÆŸÑÒ{~'Š K.ʦx¶Æâ§ß­ß#:eáÂ+Ó*ÇúîaNÉkЬ[8S~JÙ?Ö'æ•òyœ§åS=[ÃÏ=´dééW„ŸÖ;­¼<Ôû-ÜDòjáÎòYŒ%ësn´ä©»Âˆ¥»f-:-[`áÛª«Âm„_ŠÇŠþˆ­òt§%›–ïlÙ=ëwË·±~zù{q'ÏÞD0ùÝóa-ÿÖó¾…¹ˆ½lÙ¶–µlGegVf6=žÉ+ËJ«ä=EvLW+]+‡1Å{Ï·Yº¬teI”ãñÊÂðT}Š`Pá°•Ë'{6±æs¤^­8ˆinÅ žýõèVï²|-ùyϼº{~óÞì-ÿ¼ÛÌ;¢»-}¶â5¿JÏ·ªÞ†<Ü·|A+hÅU¿Z>KÙ¹Ö=ÅÞµèµì޲ -[áÉ-b×#6³ÎÏó±J•Ÿ^ÏY§”ïRy«:r9-]ôôºÇ¶èU2W~¼õnË^xµôÏó÷JNÞ£þ9j{”Ù~*¹±ÿaýSi,ž(}¶ÞóìSÄfE0ÐÒ‘<Ì[üõÞ>³øæ¥oÑÁe/_=å}T?Ù¦yï·ô¾å;—©¬¨ïoùè]î‘k”Êϰ÷hõêÕ¢Áò{õó)øl•Á¾±Á¶ëÛk?,,öÆR^ý¬ßZ¶3JCÏíÅÌc–¯…G…U+Ç›šïSbÆÇïÖwÆŸOôöާžúŠG‘ã»Öž>ÿv¤zú|Éê}ÖžÄãµ·] B.yò‰¯|ˆ¹t$âo¯ÿyöÙßý:}úckO¯½éñ'×FÇzÍžùÿšpn¡½|mstate/src/0000755000176200001440000000000014643710676012354 5ustar liggesusersmstate/src/mstate_init.c0000644000176200001440000000106514627637077015047 0ustar liggesusers#include // for NULL #include /* FIXME: Check these declarations against the C/Fortran source code. */ /* .C calls */ extern void agmssurv(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); static const R_CMethodDef CEntries[] = { {"agmssurv", (DL_FUNC) &agmssurv, 20}, {NULL, NULL, 0} }; void R_init_mstate(DllInfo *dll) { R_registerRoutines(dll, CEntries, NULL, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } mstate/src/agmssurv.c0000644000176200001440000002003014627637077014367 0ustar liggesusers/* agmssurv.c */ /* ** Modeled after agsurv2.c from the survival library by Terry Therneau ** Called from msfit ** ** Input ** n - no of subjects ** p - no of vars in xmat ** var - NEW: 1 if variances are to be calculated, 0 otherwise ** method - CHANGED: method for handling ties, 1=breslow, 2=efron ** H - NEW: number of strata in coxph call ** K - no of curves (= no of transitions) ** nt - NEW: no of unique time points joint from all strata ** y[n,3] - matrix containing (start, stop, event) ** score[n] - vector of weights exp(beta^T Z_i) ** xmat[n,p] - data matrix that generated the Cox fit ** varcov[p,p] - inverse Fisher information for estimation of beta ** strata[H+1] - CHANGED: strata[0] = 0, strata[1:H]= last obs strata 1,2, etc in y ** kstrata[K] - NEW: kstrata[k] = stratum in newdata[k,] ** unt[nt] - NEW: vector of unique time points joint from all strata ** newx[K,p] - matrix with covariates Z for each individual ** newrisk[K] - vector containing exp(\beta^\top Z*) from newdata ** ** Output ** Haz[nt*K] - NEW: OUTPUT, sort of what used to be surv in agsurv2, dimension has changed ** varHaz[nt*K*(K+1)/2] - NEW: OUTPUT, like varh in agsurv2, variance and covariance of estimated Hazard at unt ** ** Work ** d[3*p] - WORKING, contains d, a, a2 ** work[nt*K*(p+1)] - NEW: WORKING ** ** Input must be sorted by (event before censor) within stop time within strata, */ #include #include void agmssurv( int *sn, /* n, no of subjects */ int *sp, /* p, no of vars in xmat */ int *svar, /* var, NEW: 1 if variances are to be calculated, 0 otherwise */ int *smethod, /* method (for handling ties), CHANGED: 1=breslow, 2=efron */ int *sH, /* H, NEW: no of strata in coxph call */ int *sK, /* K, no of curves (= no of transitions) */ int *snt, /* nt, NEW: no of unique time points joint from all strata */ double *y, /* matrix containing (start, stop, event) */ double *score, /* vector of weights exp(beta^T Z_i) */ double *xmat, /* data matrix that generated the Cox fit */ double *varcov, /* inverse Fisher information for estimation of beta */ int *strata, /* CHANGED: strata[0] = 0, strata[1:H]= last obs strata 1,2, etc in y */ int *kstrata, /* NEW: kstrata[k] = stratum in newdata[k,] */ double *unt, /* NEW: vector of unique time points joint from all strata */ double *newx, /* matrix with covariates Z for each individual */ double *newrisk, /* vector containing exp(\beta^\top Z*) from newdata */ double *Haz, /* NEW: OUTPUT, sort of what used to be surv in agsurv2, dimension has changed */ double *varHaz, /* NEW: OUTPUT, like varh in agsurv2, variance and covariance of estimated Hazard at unt */ double *d, /* WORKING, contains d, a, a2 */ double *work /* NEW, WORKING */ ) { int i,j,k,l; double hazard, varhaz; double *start, *stop, *event; int n, p, var, H, K, nt, method; double *a, *a2, *tmp, *eta; int k1, k2, k12, K12; double *covar, *imatinv, *covar2; int idx, thestrat, person; double time, weight=0, denom, e_denom; double crisk, deaths; double temp, downwt, d2; /* Rprintf("Entering agmssurv ...\n"); R_FlushConsole(); */ n = *sn; p = *sp; var = *svar, H = *sH, K = *sK, nt = *snt; method = *smethod; start = y; stop = y+n; event = y+n+n; a = d+p; a2 = a+p; tmp = work; eta = work + nt*K; /* Rprintf("n = %d, p = %d, var = %d, H = %d, K = %d, nt = %d, method = %d\n\n",n,p,var,H,K,nt,method); R_FlushConsole(); */ /* ** Set up vectors */ covar = xmat; /* dmatrix(xmat, n, p) */ imatinv = varcov; /* dmatrix(varcov, p, p) */ covar2 = newx; /* dmatrix(newx, K, p) */ for (k=0; k=3) package # Version 0.2.11 (2018-04-06) - fixed bug in msprep # Version 0.2.10 (2016-12-03) - Changed call to survfit in Cuminc function - Changed to.trans2 function in misc.R # Version 0.2.9 (2016-02-28) - Repaired small bug in msprep introduced in # Version 0.2.8, in case of one covariate. - Added LMAJ function to estimate non-parametrically transition probabilities for possibly non-Markov multi-state models. LMAJ stands for landmark Aalen-Johansen. # Version 0.2.8 (2015-12-05) - crprep function. Object orientation is introduced. Function is renamed to crprep.default. Code that calculates the weights has been rewritten. It contains an extra argument "strata" that computes value-specific weights. Fixed some errors that affect the way in which the id and keep columns are presented. Default value of prec.factor changed to 1000 (with 100, values may not be correct in case of ties). Many changes in help file. Creation of the counting process data set in function create.wData.omega. - Added aidssi2 data set, which contains data for multi-state analyses. Many changes in help file for aidssi. - expand.covs function. Object orientation is introduced. Renamed to expand.covs.mstate. expand.covs.default is used for competing risks data sets. - Repaired bug in events function. Rows corresponding to absorbing states were empty. The numbers entering absorbing states are no longer 0. - Added Tentry and time in resulting data frame of cutLMms function. - Warning added to ELOS, in case of negative predicted proabilities. - Dimension check for beta.state in mssample repaired. - In msprep function, id and keep are now correctly handled. - Time points for fixedhor prediction corrected in probtrans. - In plot.probtrans, correct handling now of lty, lwd, col etc. - Cuminc function is effectively made obsolete. For backward compatibility, it has been "redefined" by calling survfit with type="mstate" and translating it to the output it used to have. Print, plot and summary methods are the same as for survfit. Subsetting like survfit objects is not possible. Some of the functionality of defining events and failcodes has gone. # Version 0.2.7 (2014-05-29) - Added function cutLMms (mirrored after cutLM from dynpred) that cuts a multi- state data frame (object of type "msdata") at a landmark time point LM; administrative censoring at one common time point is also supported - Added function xsect that takes a cross-section at a particular time point - Added function ELOS that calculates expected length of stay (ELOS) from a probtrans object - Added disclaimers to the EBMT data sets - Repaired a bug in the example of events() - Made a much user-friendlier # Version of the covariance matrix (list element K+1 with K states) of probtrans. NOTE: the dimension has changed from nt x K^2 x K^2 (with nt the distinct transition time points) to K^2 x K^2 x (nt+1); the extra time point (time 0) is also present in the column "time" of each of the data frames in [[1]] up to [[K]], containing the transition probabilities and SE's. - plot.msfit now uses names rather than numbers for transitions (set legend=1:K if you don't want that (K is no of transitions)) - Changed default colors for plot.probtrans - Fixed a bug in plot.probtrans that misplaced text with filled or stacked probability plots when xlim has been set - Fixed lwd bugs in plot.msfit and plot.probtrans - Citation to Geskus, Biometrics 2010, updated # Version 0.2.6 (2010-12-04) - Citation updated - Function crprep added to implement the method of Geskus, Biometrics 2010 # Version 0.2.5 (2010-10-12) - Function events had been omitted from # Version 0.2.4; this has been restored - Error fixed in handling of xlim in plot.probtrans - Reference to the mstate paper in Computer Methods and Programs in Biomedicine updated # Version 0.2.4 (2010-05-12) - The ebmt4 dataset has been adapted; recovery and adverse event are abstracted. Simultaneous occurrences of recovery and adverse events are removed; these have been adapted so that recoveries occur half a day earlier. Also simultaneous relapse and death have been set to relapse, the death status has been set to 0. A new variable recae has been created, defined as the time at which both recovery and AE have been obtained. The corresponding status variable recae.s is only 1 in case the patient has experienced both recovery and AE. - In probtrans, the argument direction now can take the values of "forward" and "fixedhorizon". The option "fixedhorizon" was previously called "backward". - In the summary method for probtrans, a bug has beeen fixed. This summary used to show head and again head, this has been changed to head and tail. - In msfit, the newdata argument is now first sorted according to trans - The function redrank now asks for two formulas, rather than two character strings containing column names in the data for reduced rank and full covariates - xlim has been added as explicit argument to plot.probtrans - Error fixed in handling last time point in msfit # Version 0.2.3 (2009-11-06) - The results of calls to msfit and probtrans are now 'msfit' and 'probtrans' S3 objects - Plot and summary methods for 'msfit' and 'probtrans' objects have been added - The result of call to msprep is now an 'msdata' S3 object - The first argument of expand.covs and the result of a call to expand.covs is now an 'msdata' object - A print method for 'msdata' objects has been added - A convenient function, transMat, to define transition matrices, kindly provided by Steven McKinney, has been added # Version 0.2.2 (2009-09-15) - Changed a small error in the vignette on page 9, where the written text was incompatible with the R output of c3 - mstate had a call to "model.newframe" in msfit from the survival package, which was removed in R # Version 2.9.2. In msfit, survival:::model.newframe(Terms, newdata, response=FALSE) has been replaced by model.frame(delete.response(Terms), newdata, xlev=object$xlevels) - Replaced the example in redrank by a much shorter one, the original is now only mentioned in \dontrun{} # Version 0.2.1 (2009-07-10) - Added vignette showing how to do the analyses of Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. Statistics in Medicine 26, 2389-2430. Usage: vignette("Tutorial") - Changed name of cuminc to Cuminc to avoid confusion with the cuminc function of cmprsk - Repaired bug in Cuminc that caused error when no events of certain cause were present - Repaired bug in Cuminc that caused error when only single cause of failure was present - Added option longnames to expand.covs to have the possibility of shorter covariate names - Implemented "aalen" option in msfit for models without covariates - Implemented "efron" method for ties in msfit; the coxph object that is used as input for msfit may have used either "breslow" or "efron" as method for ties. Previously only "breslow" was possible. mstate/inst/0000755000176200001440000000000014643710676012542 5ustar liggesusersmstate/inst/CITATION0000644000176200001440000000417314641736633013703 0ustar liggesuserscitHeader("To cite mstate in publications use:") bibentry( bibtype = "Article", title = "{mstate}: An {R} Package for the Analysis of Competing Risks and Multi-State Models", author = c(person("Liesbeth C.", "de Wreede"), as.person("Marta Fiocco"), as.person("Hein Putter")), journal = "Journal of Statistical Software", year = "2011", volume = "38", number = "7", pages = "1--30", doi = "10.18637/jss.v038.i07", url = "https://www.jstatsoft.org/v38/i07/", key = "mstateJSS2011", textVersion = paste("Liesbeth C. de Wreede, Marta Fiocco, Hein Putter (2011).", "mstate: An R Package for the Analysis of Competing Risks and Multi-State Models.", "Journal of Statistical Software, 38(7), 1-30.", "URL https://www.jstatsoft.org/v38/i07/.") ) bibentry( bibtype = "Article", title = "The {mstate} Package for Estimation and Prediction in Non- and Semi-Parametric Multi-State and Competing Risks Models", author = c(person("Liesbeth C.", "de Wreede"), as.person("Marta Fiocco"), as.person("Hein Putter")), journal = "Computer Methods and Programs in Biomedicine", year = "2010", volume = "99", pages = "261--274", key = "mstateCompMethods2010", textVersion = paste("Liesbeth C. de Wreede, Marta Fiocco, Hein Putter (2010)", "The {mstate} Package for Estimation and Prediction in Non- and Semi-Parametric Multi-State and Competing Risks Models.", "Computer Methods and Programs in Biomedicine, 99, 261-274.") ) bibentry( bibtype = "Article", title = "Tutorial in Biostatistics: Competing Risks and Multi-State Models", author = c(as.person("Hein Putter"), person("Ronald B.", "Geskus"), as.person("Marta Fiocco")), journal = "Statistics in Medicine", year = "2007", number = "26", pages = "2389--2430", key = "mstateTutorial2007", textVersion = paste("Hein Putter, Marta Fiocco, and Ronald B. Geskus (2007)", "Tutorial in Biostatistics: Competing Risks and Multi-State Models.", "Statistics in Medicine, 26, 2389-2340.") )mstate/inst/doc/0000755000176200001440000000000014643710676013307 5ustar liggesusersmstate/inst/doc/visuals_demo.Rmd0000644000176200001440000003371414627637077016462 0ustar liggesusers--- title: "Visualising multi-state models using mstate" author: "Edouard F. Bonneville" date: "`r Sys.setenv(LANG = 'en_US.UTF-8'); format(Sys.Date(), '%d %B %Y')`" output: rmarkdown::html_vignette bibliography: Tutorial.bib vignette: > %\VignetteIndexEntry{Visualising multi-state models using mstate} %\VignetteEncoding{UTF-8} %\VignetteEngine{knitr::rmarkdown} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 6, fig.align = 'center' ) ``` # Preamble The purpose of the present vignette is to demonstrate the visualisation capacities of *mstate*, using both base R graphics and the *ggplot2* package [@ggplot]. To do so, we will use the dataset used to illustrate competing risks analyses in Section 3 of the Tutorial by @Tut . The dataset is available in *mstate* under the object name `aidssi`. We can begin by loading both the *mstate* and *ggplot2* libraries, and set a general theme for our plots: ```{r} # Load libraries library(mstate) library(ggplot2) # Set general ggplot2 theme theme_set(theme_bw(base_size = 14)) ``` We can then proceed to load the dataset, and prepare it for a competing risks analysis using `msprep()`. The steps are described in more detail in the [main vignette](https://CRAN.R-project.org/package=mstate/vignettes/Tutorial.pdf). ```{r load_dat} # Load data data("aidssi") head(aidssi) # Shorter name si <- aidssi # Prepare transition matrix tmat <- trans.comprisk(2, names = c("event-free", "AIDS", "SI")) tmat # Run msprep si$stat1 <- as.numeric(si$status == 1) si$stat2 <- as.numeric(si$status == 2) silong <- msprep( time = c(NA, "time", "time"), status = c(NA, "stat1", "stat2"), data = si, keep = "ccr5", trans = tmat ) # Run cox model silong <- expand.covs(silong, "ccr5") c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong) ``` # Visualising cumulative baseline hazards using `plot.msfit()` Using `msfit()`, we can obtain patient-specific transition hazards. We look here at a patient with a CCR5 genotype "WW" (wild type allele on both chromosomes). ```{r msfit_prep} # Data to predict WW <- data.frame( ccr5WM.1 = c(0, 0), ccr5WM.2 = c(0, 0), trans = c(1, 2), strata = c(1, 2) ) # Make msfit object msf.WW <- msfit( object = c1, newdata = WW, trans = tmat ) ``` The cumulative baseline hazards can be plotted simply by using: ```{r msfitplot_base_1} plot(msf.WW) ``` If we specify the argument `use.ggplot = TRUE`, the `plot` method will return a ggplot object. ```{r msfitplot_ggplot2_1} plot(msf.WW, use.ggplot = TRUE) ``` When using the argument `type = "separate"`, the base R plot will return a separate plot for each transition: ```{r msfitplot_base_2} par(mfrow = c(1, 2)) plot(msf.WW, type = "separate") ``` The *ggplot2* version will return a facetted plot, where the axis scales can either be kept "fixed", or "free" using the `scale_type` argument. It is essentially the same argument as `scales` from the `facet_wrap()` function of *ggplot2*, see `?ggplot2::facet_wrap`. ```{r msfitplot_ggplot_2} # Fixed scales plot(msf.WW, type = "separate", use.ggplot = TRUE, scale_type = "fixed") # Free scales plot(msf.WW, type = "separate", use.ggplot = TRUE, scale_type = "free", xlim = c(0, 15)) ``` The remaining arguments are standard plotting adjustments, which will work for both the *ggplot2* and base R version of the plots. For details, see `?mstate::plot.msfit`. Any further adjustments that are not available through the function arguments (such as plot title) can simply be added using standard *ggplot2* syntax using `+`, or graphics functions such as `title()`. The following is a customised example: ```{r msfitplot_customs} par(mfrow = c(1, 1)) # A base R customised plot plot( msf.WW, type = "single", cols = c("blue", "black"), # or numeric e.g. c(1, 2) xlim = c(0, 15), legend.pos = "top", lty = c("dashed", "solid"), use.ggplot = FALSE ) title("Cumulative baseline hazards") # A ggplot2 customised plot plot( msf.WW, type = "single", cols = c("blue", "black"), # or numeric e.g. c(1, 2) xlim = c(0, 15), lty = c("dashed", "solid"), legend.pos = "bottom", use.ggplot = TRUE ) + # Add title and center ggtitle("Cumulative baseline hazards") + theme(plot.title = element_text(hjust = 0.5)) ``` Available using `use.ggplot = TRUE` are the confidence intervals around the cumulative hazards, which can be obtained by specifying `conf.type` of type "plain" or "log", for example in single plot: ```{r msfitplot_confint1} plot( msf.WW, type = "single", use.ggplot = TRUE, conf.type = "log", conf.int = 0.95 ) ``` Or else, in a facetted plot: ```{r msfitplot_confint2} plot( msf.WW, type = "separate", use.ggplot = TRUE, conf.type = "log", conf.int = 0.95, scale_type = "free_y" ) ``` # Visualising transition probabilities using `plot.probtrans()` The transition hazards obtained in the previous section can be used to obtain patient-specific transition probabilities using `probtrans()`. Here, we would like to predict from the beginning of follow-up (`predt = 0`). ```{r} # Run probtrans pt.WW <- probtrans(msf.WW, predt = 0) # Example predict at different times summary(pt.WW, times = c(1, 5, 10)) ``` The `plot` method for `probtrans` objects allows to visualise the transition probabilities in various ways, using both functionality from base R graphics and *ggplot2*. ## Filled/stacked plots The default is a so-called "filled" plot, where the transition probabilities are represented by coloured areas. The `from` argument allows the user to choose the state to predict from (default is 1, the first state). ```{r plot_pt_filled1} plot(pt.WW, from = 1) ``` Again, the `use.ggplot = TRUE` argument can be used to return a ggplot object instead: ```{r plot_pt_filled2} # from = 1 implied plot(pt.WW, use.ggplot = TRUE) ``` Note that the *ggplot2* version of the plot places the state labels in a legend rather than labels in the plot itself. If we prefer the latter, we can specify `label = annotate` instead - and change the size of the labels with cex. ```{r plot_pt_filled3} plot(pt.WW, use.ggplot = TRUE, label = "annotate", cex = 6) ``` More generally, we can also adjust the stacking order using the `ord` argument, which takes a numeric vector equal to the number of states, in the desired stacking order (bottom to top). ```{r plot_pt_filled4} # Check state order again from transition matrix tmat # Plot aids (state 2), then event-free (state 1), and SI on top (state 3) plot(pt.WW, use.ggplot = TRUE, ord = c(2, 1, 3)) ``` You can also choose to forgo the colour, and specify `type = "stacked"` instead: ```{r plot_pt_stacked} plot(pt.WW, use.ggplot = TRUE, type = "stacked") ``` ## Single and separate plots, confidence intervals Instead of visualising the probabilities using stacked areas, we can go the traditional route and use a single line per state. Confidence intervals can then be added. By specifying `type = "separate"`, the base R plot will return a separate plot for all three states. ```{r plot_pt_separate1} par(mfrow = c(1, 3)) plot(pt.WW, type = "separate") ``` The *ggplot2* version will return a facetted plot, with one state per facet. It also accommodates confidence intervals, which are either of type "log" (default) or "plain". ```{r plot_pt_separate2} plot( pt.WW, use.ggplot = TRUE, type = "separate", conf.int = 0.95, # 95% level conf.type = "log" ) ``` These confidence intervals can be omitted using `conf.type = "none"`. What if we wanted all of these in one plot? For that, we can use the `type = single` option: ```{r plot_pt_single1} plot( pt.WW, use.ggplot = TRUE, type = "single", conf.int = 0.95, # 95% level conf.type = "log" ) ``` As before, the confidence intervals can be omitted. ```{r plot_pt_single2} plot( pt.WW, use.ggplot = TRUE, type = "single", conf.type = "none", lty = c(1, 2, 3), # change the linetype lwd = 1.5, ) ``` If the multi-state model is large, we may be only interested in plotting the probabilities for a subset of states together. This subset will not sum up to 1, so the stacked/filled plots are not appropriate. There is no set function to do this, but it can be done by extracting the data from a `plot.probtrans()`-based ggplot object as follows: ```{r plot_pt_single3} # Run plot and extract data using $data dat_plot <- plot(x = pt.WW, use.ggplot = TRUE, type = "single")$data # Begin new plot - Exclude or select states to be plotted ggplot(data = dat_plot[state != "event-free", ], aes( x = time, y = prob, ymin = CI_low, ymax = CI_upp, group = state, linetype = state, col = state )) + # Add CI and lines; change fill = NA to remove CIs geom_ribbon(col = NA, fill = "gray", alpha = 0.5) + geom_line() + # Remaining details labs(x = "Time", y = "Cumulative Incidence") + coord_cartesian(ylim = c(0, 1), xlim = c(0, 14), expand = 0) ``` If interest lies in plotting the probability of a *single* state, the procedure above can be used, or the `vis.multiple.pt()` function presented further could be used directly. # Plotting non-parametric cumulative incidence functions The `Cuminc()` function in *mstate* produces (for competing risks data) the non-parametric Aalen-Johansen estimates of the cumulative incidence functions. This is the same as is obtained in the *cmrpsk* package with the function `cuminc()`. In *mstate*, an object of class "Cuminc" can also be plotted as follows: ```{r plot.Cuminc1} cum_incid <- Cuminc( time = "time", status = "status", data = si ) plot( x = cum_incid, use.ggplot = TRUE, conf.type = "log", lty = 1:2, conf.int = 0.95, ) ``` In the case where this a grouping variable: ```{r plot.cuminc_x} cum_incid_grp <- Cuminc( time = "time", status = "status", group = "ccr5", data = si ) plot( x = cum_incid_grp, use.ggplot = TRUE, conf.type = "none", lty = 1:4, facet = FALSE ) plot( x = cum_incid_grp, use.ggplot = TRUE, conf.type = "none", lty = 1:4, facet = TRUE ) ``` # Visualising multiple probtrans objects We may also be interested in comparing the predicted probabilities for *multiple* reference patients. First, we need to create as many msfit/probtrans objects as there are reference patients of interest: ```{r vis_multiple_prep} # 1. Prepare patient data - both CCR5 genotypes WW <- data.frame( ccr5WM.1 = c(0, 0), ccr5WM.2 = c(0, 0), trans = c(1, 2), strata = c(1, 2) ) WM <- data.frame( ccr5WM.1 = c(1, 0), ccr5WM.2 = c(0, 1), trans = c(1, 2), strata = c(1, 2) ) # 2. Make msfit objects msf.WW <- msfit(c1, WW, trans = tmat) msf.WM <- msfit(c1, WM, trans = tmat) # 3. Make probtrans objects pt.WW <- probtrans(msf.WW, predt = 0) pt.WM <- probtrans(msf.WM, predt = 0) ``` Afterwards, we can supply the probtrans objects in a list into the `vis.multiple.pt()` function. This will visualise the probability of being in state number `to` over time, given the reference patient was in state number `from` at the `predt` time supplied in `probtrans()`. The example below visualises the probability of being in state AIDS, given event-free at time 0. The two lines/associated confidence intervals correspond to the reference patients - both with a different CCR5 genotype ("WW" or "WM"). ```{r vis_multiple_plot} vis.multiple.pt( x = list(pt.WW, pt.WM), from = 1, to = 2, conf.type = "log", cols = c(1, 2), labels = c("Pat WW", "Pat WM"), legend.title = "Ref patients" ) ``` This function could just as well be used for a single probtrans object: ```{r vis_multiple_plot2} vis.multiple.pt( x = list(pt.WW), from = 1, to = 2, conf.type = "log", cols = c(1, 2), labels = c("Pat WW", "Pat WM"), legend.title = "Ref patients" ) ``` Note this function is only available in the ggplot format. ## A mirrored plot Multiple probtrans objects can also be compared by means of a mirrored plot. The idea is to compare the probabilities of being in (all) states between two references patients at a particular horizon. In addition to reference patients, different subsets of the data could equally be compared. ```{r mirror1} vis.mirror.pt( x = list(pt.WW, pt.WM), titles = c("WW", "WM"), horizon = 10 ) ``` Omitting the `horizon` argument will default to plotting both sides with their respective maximum follow-up time, so it may be asymmetric. We thus recommend to always use the `horizon` argument. If for example time is in years, and follow-up is extremely short, you may want to override the breaks on the x-axis. This can be done using the `breaks_x_left` and `breaks_x_right` arguments. ```{r mirror2} vis.mirror.pt( x = list(pt.WW, pt.WM), titles = c("WW", "WM"), size_titles = 8, horizon = 5, breaks_x_left = c(0, 1, 2, 3, 4, 5), breaks_x_right = c(0, 1, 2, 3, 4), ord = c(3, 2, 1) ) ``` # Saving outputs Any plots made with *mstate* using the `use.ggplot = TRUE` will return a ggplot object, which can be saved to a desired format by using `ggplot2::ggsave()`. Please refer to the [article](https://ggplot2.tidyverse.org/reference/ggsave.html#saving-images-without-ggsave-) written by the *ggplot2* team on using `ggplot2::ggsave()`. ```{r saving, eval=FALSE} # Saving a ggplot2 plot p <- plot(pt.WW, use.ggplot = TRUE) ggplot2::ggsave("my_ggplot2_plot.png") # Standard graphics plot png("my_standard_plot.png") plot(pt.WW, use.ggplot = FALSE) dev.off() ``` # Reproducibility
Reproducibility receipt ```{r session-info, include=TRUE, echo=TRUE, results='markup'} # Date/time Sys.time() # Environment sessionInfo() ```
# References mstate/inst/doc/visuals_demo.html0000644000176200001440000125112214643710661016665 0ustar liggesusers Visualising multi-state models using mstate

Visualising multi-state models using mstate

Edouard F. Bonneville

11 juli 2024

Preamble

The purpose of the present vignette is to demonstrate the visualisation capacities of mstate, using both base R graphics and the ggplot2 package (Wickham 2016). To do so, we will use the dataset used to illustrate competing risks analyses in Section 3 of the Tutorial by Putter, Fiocco, and Geskus (2007) . The dataset is available in mstate under the object name aidssi.

We can begin by loading both the mstate and ggplot2 libraries, and set a general theme for our plots:

# Load libraries
library(mstate)
#> Loading required package: survival
library(ggplot2)

# Set general ggplot2 theme
theme_set(theme_bw(base_size = 14))

We can then proceed to load the dataset, and prepare it for a competing risks analysis using msprep(). The steps are described in more detail in the main vignette.

# Load data
data("aidssi")
head(aidssi)
#>   patnr   time status      cause ccr5
#> 1     1  9.106      1       AIDS   WW
#> 2     2 11.039      0 event-free   WM
#> 3     3  2.234      1       AIDS   WW
#> 4     4  9.878      2         SI   WM
#> 5     5  3.819      1       AIDS   WW
#> 6     6  6.801      1       AIDS   WW

# Shorter name
si <- aidssi

# Prepare transition matrix
tmat <- trans.comprisk(2, names = c("event-free", "AIDS", "SI"))
tmat
#>             to
#> from         event-free AIDS SI
#>   event-free         NA    1  2
#>   AIDS               NA   NA NA
#>   SI                 NA   NA NA

# Run msprep
si$stat1 <- as.numeric(si$status == 1)
si$stat2 <- as.numeric(si$status == 2)

silong <- msprep(
  time = c(NA, "time", "time"), 
  status = c(NA, "stat1", "stat2"), 
  data = si, 
  keep = "ccr5", 
  trans = tmat
)

# Run cox model
silong <- expand.covs(silong, "ccr5")

c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans),
            data = silong)

Visualising cumulative baseline hazards using plot.msfit()

Using msfit(), we can obtain patient-specific transition hazards. We look here at a patient with a CCR5 genotype “WW†(wild type allele on both chromosomes).

# Data to predict
WW <- data.frame(
  ccr5WM.1 = c(0, 0),
  ccr5WM.2 = c(0, 0), 
  trans = c(1, 2), 
  strata = c(1, 2)
)

# Make msfit object
msf.WW <- msfit(
  object = c1, 
  newdata = WW, 
  trans = tmat
)

The cumulative baseline hazards can be plotted simply by using:

plot(msf.WW)

If we specify the argument use.ggplot = TRUE, the plot method will return a ggplot object.

plot(msf.WW, use.ggplot = TRUE)

When using the argument type = "separate", the base R plot will return a separate plot for each transition:

par(mfrow = c(1, 2))
plot(msf.WW, type = "separate")

The ggplot2 version will return a facetted plot, where the axis scales can either be kept “fixedâ€, or “free†using the scale_type argument. It is essentially the same argument as scales from the facet_wrap() function of ggplot2, see ?ggplot2::facet_wrap.

# Fixed scales
plot(msf.WW, type = "separate", use.ggplot = TRUE, scale_type = "fixed")


# Free scales
plot(msf.WW, type = "separate", use.ggplot = TRUE, scale_type = "free", xlim = c(0, 15))

The remaining arguments are standard plotting adjustments, which will work for both the ggplot2 and base R version of the plots. For details, see ?mstate::plot.msfit. Any further adjustments that are not available through the function arguments (such as plot title) can simply be added using standard ggplot2 syntax using +, or graphics functions such as title(). The following is a customised example:

par(mfrow = c(1, 1))
# A base R customised plot
plot(
  msf.WW, 
  type = "single", 
  cols = c("blue", "black"), # or numeric e.g. c(1, 2)
  xlim = c(0, 15),
  legend.pos = "top",
  lty = c("dashed", "solid"),
  use.ggplot = FALSE
)
title("Cumulative baseline hazards")


# A ggplot2 customised plot
plot(
  msf.WW, 
  type = "single", 
  cols = c("blue", "black"), # or numeric e.g. c(1, 2)
  xlim = c(0, 15),
  lty = c("dashed", "solid"),
  legend.pos = "bottom",
  use.ggplot = TRUE
) +
  
  # Add title and center
  ggtitle("Cumulative baseline hazards") +
  theme(plot.title = element_text(hjust = 0.5))

Available using use.ggplot = TRUE are the confidence intervals around the cumulative hazards, which can be obtained by specifying conf.type of type “plain†or “logâ€, for example in single plot:

plot(
  msf.WW, 
  type = "single", 
  use.ggplot = TRUE,
  conf.type = "log", 
  conf.int = 0.95
)

Or else, in a facetted plot:

plot(
  msf.WW, 
  type = "separate", 
  use.ggplot = TRUE,
  conf.type = "log", 
  conf.int = 0.95,
  scale_type = "free_y"
)

Visualising transition probabilities using plot.probtrans()

The transition hazards obtained in the previous section can be used to obtain patient-specific transition probabilities using probtrans(). Here, we would like to predict from the beginning of follow-up (predt = 0).

# Run probtrans
pt.WW <- probtrans(msf.WW, predt = 0)

# Example predict at different times
summary(pt.WW, times = c(1, 5, 10))
#> 
#> Prediction from state 1 :
#>   times   pstate1   pstate2    pstate3         se1        se2         se3
#> 1     1 0.9805172 0.0000000 0.01948279 0.007899257 0.00000000 0.007899257
#> 2     5 0.6887491 0.1471596 0.16409130 0.028250825 0.02189893 0.022200323
#> 3    10 0.2772999 0.3870165 0.33568358 0.030015241 0.03202897 0.030204083
#>      lower1    lower2      lower3    upper1    upper2     upper3
#> 1 0.9651565 0.0000000 0.008801028 0.9961223 0.0000000 0.04312897
#> 2 0.6355458 0.1099311 0.125870614 0.7464063 0.1969956 0.21391771
#> 3 0.2242925 0.3290677 0.281410843 0.3428346 0.4551702 0.40042333

The plot method for probtrans objects allows to visualise the transition probabilities in various ways, using both functionality from base R graphics and ggplot2.

Filled/stacked plots

The default is a so-called “filled†plot, where the transition probabilities are represented by coloured areas. The from argument allows the user to choose the state to predict from (default is 1, the first state).

plot(pt.WW, from = 1)

Again, the use.ggplot = TRUE argument can be used to return a ggplot object instead:

# from = 1 implied
plot(pt.WW, use.ggplot = TRUE)

Note that the ggplot2 version of the plot places the state labels in a legend rather than labels in the plot itself. If we prefer the latter, we can specify label = annotate instead - and change the size of the labels with cex.

plot(pt.WW, use.ggplot = TRUE, label = "annotate", cex = 6)   

More generally, we can also adjust the stacking order using the ord argument, which takes a numeric vector equal to the number of states, in the desired stacking order (bottom to top).

# Check state order again from transition matrix
tmat
#>             to
#> from         event-free AIDS SI
#>   event-free         NA    1  2
#>   AIDS               NA   NA NA
#>   SI                 NA   NA NA

# Plot aids (state 2), then event-free (state 1), and SI on top (state 3)
plot(pt.WW, use.ggplot = TRUE, ord = c(2, 1, 3))   

You can also choose to forgo the colour, and specify type = "stacked" instead:

plot(pt.WW, use.ggplot = TRUE, type = "stacked")   

Single and separate plots, confidence intervals

Instead of visualising the probabilities using stacked areas, we can go the traditional route and use a single line per state. Confidence intervals can then be added.

By specifying type = "separate", the base R plot will return a separate plot for all three states.

par(mfrow = c(1, 3))
plot(pt.WW, type = "separate")   

The ggplot2 version will return a facetted plot, with one state per facet. It also accommodates confidence intervals, which are either of type “log†(default) or “plainâ€.

plot(
  pt.WW, 
  use.ggplot = TRUE, 
  type = "separate",
  conf.int = 0.95, # 95% level
  conf.type = "log"
)   

These confidence intervals can be omitted using conf.type = "none".

What if we wanted all of these in one plot? For that, we can use the type = single option:

plot(
  pt.WW, 
  use.ggplot = TRUE, 
  type = "single",
  conf.int = 0.95, # 95% level
  conf.type = "log"
)   

As before, the confidence intervals can be omitted.

plot(
  pt.WW, 
  use.ggplot = TRUE, 
  type = "single",
  conf.type = "none",
  lty = c(1, 2, 3), # change the linetype
  lwd = 1.5, 
)   

If the multi-state model is large, we may be only interested in plotting the probabilities for a subset of states together. This subset will not sum up to 1, so the stacked/filled plots are not appropriate. There is no set function to do this, but it can be done by extracting the data from a plot.probtrans()-based ggplot object as follows:

# Run plot and extract data using $data
dat_plot <- plot(x = pt.WW, use.ggplot = TRUE, type = "single")$data
  
# Begin new plot - Exclude or select states to be plotted
ggplot(data = dat_plot[state != "event-free", ], aes(
  x = time, 
  y = prob, 
  ymin = CI_low, 
  ymax = CI_upp,
  group = state,
  linetype = state,
  col = state
)) +
  
  # Add CI and lines; change fill = NA to remove CIs
  geom_ribbon(col = NA, fill = "gray", alpha = 0.5) +
  geom_line() +
  
  # Remaining details
  labs(x = "Time", y = "Cumulative Incidence") +
  coord_cartesian(ylim = c(0, 1), xlim = c(0, 14), expand = 0)

If interest lies in plotting the probability of a single state, the procedure above can be used, or the vis.multiple.pt() function presented further could be used directly.

Plotting non-parametric cumulative incidence functions

The Cuminc() function in mstate produces (for competing risks data) the non-parametric Aalen-Johansen estimates of the cumulative incidence functions. This is the same as is obtained in the cmrpsk package with the function cuminc().

In mstate, an object of class “Cuminc†can also be plotted as follows:

cum_incid <- Cuminc(
  time = "time",
  status = "status",
  data = si
)

plot(
  x = cum_incid,
  use.ggplot = TRUE,
  conf.type = "log",
  lty = 1:2,
  conf.int = 0.95,
)

In the case where this a grouping variable:

cum_incid_grp <- Cuminc(
  time = "time",
  status = "status",
  group = "ccr5",
  data = si
)

plot(
  x = cum_incid_grp,
  use.ggplot = TRUE,
  conf.type = "none",
  lty = 1:4, 
  facet = FALSE
)


plot(
  x = cum_incid_grp,
  use.ggplot = TRUE,
  conf.type = "none",
  lty = 1:4, 
  facet = TRUE
)

Visualising multiple probtrans objects

We may also be interested in comparing the predicted probabilities for multiple reference patients. First, we need to create as many msfit/probtrans objects as there are reference patients of interest:

# 1. Prepare patient data - both CCR5 genotypes
WW <- data.frame(
  ccr5WM.1 = c(0, 0), 
  ccr5WM.2 = c(0, 0), 
  trans = c(1, 2), 
  strata = c(1, 2)
)

WM <- data.frame(
  ccr5WM.1 = c(1, 0), 
  ccr5WM.2 = c(0, 1),
  trans = c(1, 2), 
  strata = c(1, 2)
)

# 2. Make msfit objects
msf.WW <- msfit(c1, WW, trans = tmat)
msf.WM <- msfit(c1, WM, trans = tmat)

# 3. Make probtrans objects
pt.WW <- probtrans(msf.WW, predt = 0)
pt.WM <- probtrans(msf.WM, predt = 0)

Afterwards, we can supply the probtrans objects in a list into the vis.multiple.pt() function. This will visualise the probability of being in state number to over time, given the reference patient was in state number from at the predt time supplied in probtrans().

The example below visualises the probability of being in state AIDS, given event-free at time 0. The two lines/associated confidence intervals correspond to the reference patients - both with a different CCR5 genotype (“WW†or “WMâ€).

vis.multiple.pt(
  x = list(pt.WW, pt.WM), 
  from = 1,
  to = 2, 
  conf.type = "log",
  cols = c(1, 2),
  labels = c("Pat WW", "Pat WM"),
  legend.title = "Ref patients"
)

This function could just as well be used for a single probtrans object:

vis.multiple.pt(
  x = list(pt.WW), 
  from = 1,
  to = 2, 
  conf.type = "log",
  cols = c(1, 2),
  labels = c("Pat WW", "Pat WM"),
  legend.title = "Ref patients"
)

Note this function is only available in the ggplot format.

A mirrored plot

Multiple probtrans objects can also be compared by means of a mirrored plot. The idea is to compare the probabilities of being in (all) states between two references patients at a particular horizon. In addition to reference patients, different subsets of the data could equally be compared.

vis.mirror.pt(
  x = list(pt.WW, pt.WM),
  titles = c("WW", "WM"),
  horizon = 10
)

Omitting the horizon argument will default to plotting both sides with their respective maximum follow-up time, so it may be asymmetric. We thus recommend to always use the horizon argument.

If for example time is in years, and follow-up is extremely short, you may want to override the breaks on the x-axis. This can be done using the breaks_x_left and breaks_x_right arguments.

vis.mirror.pt(
  x = list(pt.WW, pt.WM),
  titles = c("WW", "WM"),
  size_titles = 8,
  horizon = 5,
  breaks_x_left = c(0, 1, 2, 3, 4, 5),
  breaks_x_right = c(0, 1, 2, 3, 4),
  ord = c(3, 2, 1)
)

Saving outputs

Any plots made with mstate using the use.ggplot = TRUE will return a ggplot object, which can be saved to a desired format by using ggplot2::ggsave(). Please refer to the article written by the ggplot2 team on using ggplot2::ggsave().

# Saving a ggplot2 plot
p <- plot(pt.WW, use.ggplot = TRUE)
ggplot2::ggsave("my_ggplot2_plot.png")

# Standard graphics plot
png("my_standard_plot.png")
plot(pt.WW, use.ggplot = FALSE)
dev.off()

Reproducibility

Reproducibility receipt
# Date/time
Sys.time()
#> [1] "2024-07-11 10:02:56 CEST"

# Environment
sessionInfo()
#> R version 4.4.1 (2024-06-14 ucrt)
#> Platform: x86_64-w64-mingw32/x64
#> Running under: Windows 10 x64 (build 19045)
#> 
#> Matrix products: default
#> 
#> 
#> locale:
#> [1] LC_COLLATE=C                       LC_CTYPE=Dutch_Netherlands.utf8   
#> [3] LC_MONETARY=Dutch_Netherlands.utf8 LC_NUMERIC=C                      
#> [5] LC_TIME=Dutch_Netherlands.utf8    
#> 
#> time zone: Europe/Amsterdam
#> tzcode source: internal
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] ggplot2_3.4.4  mstate_0.3.3   survival_3.5-7
#> 
#> loaded via a namespace (and not attached):
#>  [1] Matrix_1.6-4       gtable_0.3.4       jsonlite_1.8.8     dplyr_1.1.4       
#>  [5] compiler_4.4.1     highr_0.10         tidyselect_1.2.0   jquerylib_0.1.4   
#>  [9] splines_4.4.1      scales_1.3.0       yaml_2.3.8         fastmap_1.1.1     
#> [13] lattice_0.22-5     R6_2.5.1           labeling_0.4.3     generics_0.1.3    
#> [17] knitr_1.46         tibble_3.2.1       munsell_0.5.0      bslib_0.6.1       
#> [21] pillar_1.9.0       RColorBrewer_1.1-3 rlang_1.1.2        utf8_1.2.4        
#> [25] cachem_1.0.8       xfun_0.43          sass_0.4.8         viridisLite_0.4.2 
#> [29] cli_3.6.2          withr_2.5.2        magrittr_2.0.3     digest_0.6.33     
#> [33] grid_4.4.1         rstudioapi_0.15.0  lifecycle_1.0.4    vctrs_0.6.5       
#> [37] evaluate_0.23      glue_1.6.2         data.table_1.14.10 farver_2.1.1      
#> [41] fansi_1.0.6        colorspace_2.1-0   rmarkdown_2.26     tools_4.4.1       
#> [45] pkgconfig_2.0.3    htmltools_0.5.7

References

Putter, H., M. Fiocco, and R. B. Geskus. 2007. “Tutorial in Biostatistics: Competing Risks and Multi-State Models.†Statist Med 26: 2389–2430.
Wickham, Hadley. 2016. Ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. https://ggplot2.tidyverse.org.
mstate/inst/doc/Tutorial.R0000644000176200001440000010402714643710676015241 0ustar liggesusers### R code from vignette source 'Tutorial.Rnw' ################################################### ### code chunk number 1: mstate ################################################### library(mstate) ################################################### ### code chunk number 2: mstate ################################################### R.version$version.string packageDescription("mstate", fields = "Version") ################################################### ### code chunk number 3: data ################################################### data(ebmt3) head(ebmt3) ################################################### ### code chunk number 4: tables ################################################### n <- nrow(ebmt3) table(ebmt3$dissub); round(100*table(ebmt3$dissub)/n) ################################################### ### code chunk number 5: tables2 (eval = FALSE) ################################################### ## table(ebmt3$age); round(100*table(ebmt3$age)/n) ## table(ebmt3$drmatch); round(100*table(ebmt3$drmatch)/n) ## table(ebmt3$tcd); round(100*table(ebmt3$tcd)/n) ################################################### ### code chunk number 6: tmat ################################################### tmat <- matrix(NA,3,3) tmat[1,2:3] <- 1:2 tmat[2,3] <- 3 dimnames(tmat) <- list(from=c("Tx","PR","RelDeath"),to=c("Tx","PR","RelDeath")) tmat ################################################### ### code chunk number 7: transMat ################################################### tmat <- transMat(x=list(c(2,3),c(3),c()), names=c("Tx","PR","RelDeath")) tmat ################################################### ### code chunk number 8: tmat2 ################################################### tmat <- trans.illdeath(names=c("Tx","PR","RelDeath")) tmat ################################################### ### code chunk number 9: paths ################################################### paths(tmat) ################################################### ### code chunk number 10: times ################################################### ebmt3$prtime <- ebmt3$prtime/365.25 ebmt3$rfstime <- ebmt3$rfstime/365.25 ################################################### ### code chunk number 11: msprep ################################################### covs <- c("dissub", "age", "drmatch", "tcd", "prtime") msbmt <- msprep(time=c(NA,"prtime","rfstime"), status=c(NA,"prstat","rfsstat"), data=ebmt3, trans=tmat, keep=covs) ################################################### ### code chunk number 12: msbmt ################################################### head(msbmt) ################################################### ### code chunk number 13: events ################################################### events(msbmt) ################################################### ### code chunk number 14: expandcovs ################################################### expcovs <- expand.covs(msbmt,covs[2:3],append=FALSE) head(expcovs) ################################################### ### code chunk number 15: expandcovs2 ################################################### msbmt <- expand.covs(msbmt,covs,append=TRUE,longnames=FALSE) head(msbmt) ################################################### ### code chunk number 16: Markovnonprop ################################################### c1 <- coxph(Surv(Tstart,Tstop,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + strata(trans), data=msbmt, method="breslow") c1 ################################################### ### code chunk number 17: Markovprop ################################################### msbmt$pr <- 0 msbmt$pr[msbmt$trans==3] <- 1 c2 <- coxph(Surv(Tstart,Tstop,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + strata(to), data=msbmt, method="breslow") c2 ################################################### ### code chunk number 18: coxzph ################################################### cox.zph(c2) ################################################### ### code chunk number 19: nonMarkovPH ################################################### c3 <- coxph(Surv(Tstart,Tstop,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + prtime.3 + strata(to), data=msbmt, method="breslow") c3 ################################################### ### code chunk number 20: semiMarkov ################################################### c4 <- coxph(Surv(time,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + strata(trans), data=msbmt, method="breslow") c5 <- coxph(Surv(time,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + strata(to), data=msbmt, method="breslow") c6 <- coxph(Surv(time,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + prtime.3 + strata(to), data=msbmt, method="breslow") ################################################### ### code chunk number 21: newdata ################################################### newd <- data.frame(dissub=rep(0,3),age=rep(0,3),drmatch=rep(0,3),tcd=rep(0,3),trans=1:3) newd$dissub <- factor(newd$dissub,levels=0:2,labels=levels(ebmt3$dissub)) newd$age <- factor(newd$age,levels=0:2,labels=levels(ebmt3$age)) newd$drmatch <- factor(newd$drmatch,levels=0:1,labels=levels(ebmt3$drmatch)) newd$tcd <- factor(newd$tcd,levels=0:1,labels=levels(ebmt3$tcd)) attr(newd, "trans") <- tmat class(newd) <- c("msdata","data.frame") newd <- expand.covs(newd,covs[1:4],longnames=FALSE) newd$strata=1:3 newd ################################################### ### code chunk number 22: msfit ################################################### msf1 <- msfit(c1, newdata=newd, trans=tmat) ################################################### ### code chunk number 23: msfitsummary ################################################### summary(msf1) ################################################### ### code chunk number 24: msf1cov ################################################### vH1 <- msf1$varHaz head(vH1[vH1$trans1==1 & vH1$trans2==1,]) tail(vH1[vH1$trans1==1 & vH1$trans2==1,]) tail(vH1[vH1$trans1==1 & vH1$trans2==2,]) tail(vH1[vH1$trans1==1 & vH1$trans2==3,]) tail(vH1[vH1$trans1==2 & vH1$trans2==3,]) ################################################### ### code chunk number 25: msfit2 ################################################### newd$strata=c(1,2,2) newd$pr <- c(0,0,1) msf2 <- msfit(c2, newdata=newd, trans=tmat) summary(msf2) vH2 <- msf2$varHaz tail(vH2[vH2$trans1==1 & vH2$trans2==2,]) tail(vH2[vH2$trans1==1 & vH2$trans2==3,]) tail(vH2[vH2$trans1==2 & vH2$trans2==3,]) ################################################### ### code chunk number 26: fig14a (eval = FALSE) ################################################### ## par(mfrow=c(1,2)) ## plot(msf1,cols=rep(1,3),lwd=2,lty=1:3, ## xlab="Years since transplant",ylab="Stratified baseline hazards",legend.pos=c(2,0.9)) ## plot(msf2,cols=rep(1,3),lwd=2,lty=1:3, ## xlab="Years since transplant",ylab="Proportional baseline hazards",legend.pos=c(2,0.9)) ## par(mfrow=c(1,1)) ################################################### ### code chunk number 27: fig14b ################################################### par(mfrow=c(1,2)) plot(msf1,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Stratified baseline hazards",legend.pos=c(2,0.9)) plot(msf2,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Proportional baseline hazards",legend.pos=c(2,0.9)) par(mfrow=c(1,1)) ################################################### ### code chunk number 28: probtrans1 ################################################### pt <- probtrans(msf2, predt=0) ################################################### ### code chunk number 29: pt13 ################################################### head(pt[[3]]) tail(pt[[3]]) ################################################### ### code chunk number 30: pt12 ################################################### summary(pt, from=2) ################################################### ### code chunk number 31: pt11 ################################################### summary(pt, from=1) ################################################### ### code chunk number 32: tmat2 ################################################### tmat2 <- transMat(x=list(c(2,4),c(3),c(),c())) tmat2 ################################################### ### code chunk number 33: probtrans2 ################################################### msf2$trans <- tmat2 pt <- probtrans(msf2, predt=0) summary(pt, from=1) ################################################### ### code chunk number 34: pt2plot (eval = FALSE) ################################################### ## plot(pt,ord=c(2,3,4,1),lwd=2, ## xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, ## legend=c("Alive in remission, no PR","Alive in remission, PR", ## "Relapse or death after PR","Relapse or death without PR")) ################################################### ### code chunk number 35: pt2plot ################################################### plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) ################################################### ### code chunk number 36: probtrans2 ################################################### pt <- probtrans(msf2, predt=0.5) summary(pt, from=1) ################################################### ### code chunk number 37: pt2plot2state (eval = FALSE) ################################################### ## plot(pt,ord=c(2,3,4,1),lwd=2, ## xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, ## legend=c("Alive in remission, no PR","Alive in remission, PR", ## "Relapse or death after PR","Relapse or death without PR")) ################################################### ### code chunk number 38: pt2plot2do ################################################### plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) ################################################### ### code chunk number 39: makefig17a ################################################### msf2$trans <- tmat msf.20 <- msf2 # copy msfit result for reference (young) patient newd <- newd[,1:5] # use the basic covariates of the reference patient newd2 <- newd newd2$age <- 1 newd2$age <- factor(newd2$age,levels=0:2,labels=levels(ebmt3$age)) attr(newd2, "trans") <- tmat class(newd2) <- c("msdata","data.frame") newd2 <- expand.covs(newd2,covs[1:4],longnames=FALSE) newd2$strata=c(1,2,2) newd2$pr <- c(0,0,1) msf.2040 <- msfit(c2, newdata=newd2, trans=tmat) newd3 <- newd newd3$age <- 2 newd3$age <- factor(newd3$age,levels=0:2,labels=levels(ebmt3$age)) attr(newd3, "trans") <- tmat class(newd3) <- c("msdata","data.frame") newd3 <- expand.covs(newd3,covs[1:4],longnames=FALSE) newd3$strata=c(1,2,2) newd3$pr <- c(0,0,1) msf.40 <- msfit(c2, newdata=newd3, trans=tmat) pt.20 <- probtrans(msf.20,predt=0) # original young (<= 20) patient pt.201 <- pt.20[[1]]; pt.202 <- pt.20[[2]] pt.2040 <- probtrans(msf.2040,predt=0) # patient 20-40 pt.20401 <- pt.2040[[1]]; pt.20402 <- pt.2040[[2]] pt.40 <- probtrans(msf.40,predt=0) # patient > 40 pt.401 <- pt.40[[1]]; pt.402 <- pt.40[[2]] ################################################### ### code chunk number 40: rfs5 ################################################### pt.201[488:489,] # 5 years falls between 488th and 489th time point pt.202[488:489,] # 5-years probabilities ################################################### ### code chunk number 41: makefig17b (eval = FALSE) ################################################### ## plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.425,1),type="s",lwd=2,col="red",xlab="Years since transplant",ylab="Relapse-free survival") ## lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") ## lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") ## lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) ## lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) ## lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) ## legend(6,1,c("no PR","PR"),lwd=2,lty=1:2,xjust=1,bty="n") ## legend("topright",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") ################################################### ### code chunk number 42: makefig17c ################################################### plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.4,1),type="s",lwd=2,col="red",xlab="Years since transplant",ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend(6,1,c("no PR","PR"),lwd=2,lty=1:2,xjust=1,bty="n") legend("topright",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") ################################################### ### code chunk number 43: backward ################################################### pt.20 <- probtrans(msf.20,direction="fixedhorizon",predt=5) pt.201 <- pt.20[[1]]; pt.202 <- pt.20[[2]] head(pt.201); head(pt.202) ################################################### ### code chunk number 44: backward2 ################################################### pt.2040 <- probtrans(msf.2040,direction="fixedhorizon",predt=5) # patient 20-40 pt.20401 <- pt.2040[[1]]; pt.20402 <- pt.2040[[2]] pt.40 <- probtrans(msf.40,direction="fixedhorizon",predt=5) # patient > 40 pt.401 <- pt.40[[1]]; pt.402 <- pt.40[[2]] ################################################### ### code chunk number 45: makenewa (eval = FALSE) ################################################### ## plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.425,1),type="s", ## lwd=2,col="red",xlab="Years since transplant", ## ylab="Relapse-free survival") ## lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") ## lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") ## lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) ## lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) ## lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) ## legend("topleft",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") ## legend(1,1,c("no PR","PR"),lwd=2,lty=1:2,bty="n") ## title(main="Backward prediction") ################################################### ### code chunk number 46: makenewb ################################################### plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.425,1),type="s", lwd=2,col="red",xlab="Prediction time", ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend("topleft",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") legend(1,1,c("no PR","PR"),lwd=2,lty=1:2,bty="n") title(main="Backward prediction") ################################################### ### code chunk number 47: aidssi ################################################### data(aidssi) si <- aidssi # Just a shorter name head(si) table(si$status) ################################################### ### code chunk number 48: tmatcr ################################################### tmat <- trans.comprisk(2,names=c("event-free","AIDS","SI")) tmat ################################################### ### code chunk number 49: dataprep ################################################### si$stat1 <- as.numeric(si$status==1) si$stat2 <- as.numeric(si$status==2) silong <- msprep(time=c(NA,"time","time"),status=c(NA,"stat1","stat2"),data=si, keep="ccr5",trans=tmat) ################################################### ### code chunk number 50: check ################################################### events(silong) ################################################### ### code chunk number 51: dummies ################################################### silong <- expand.covs(silong,"ccr5") silong[1:8,] # shows the first four patients in long format, as in tutorial ################################################### ### code chunk number 52: naive ################################################### c1 <- coxph(Surv(time,status) ~ 1, data=silong, subset = (trans==1), method="breslow") c2 <- coxph(Surv(time,status) ~ 1, data=silong, subset = (trans==2), method="breslow") h1 <- survfit(c1) h1 <- data.frame(time=h1$time,surv=h1$surv) h2 <- survfit(c2) h2 <- data.frame(time=h2$time,surv=h2$surv) ################################################### ### code chunk number 53: fig2 (eval = FALSE) ################################################### ## idx1 <- (h1$time<13) # this restricts the plot to the first 13 years ## plot(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s", ## xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) ## idx2 <- (h2$time<13) ## lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2) ## text(8,0.71,adj=0,"AIDS") ## text(8,0.32,adj=0,"SI") ################################################### ### code chunk number 54: fig2do ################################################### idx1 <- (h1$time<13) # this restricts the plot to the first 13 years plot(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2) text(8,0.71,adj=0,"AIDS") text(8,0.32,adj=0,"SI") ################################################### ### code chunk number 55: Cuminc1 ################################################### ci <- Cuminc(time=si$time, status=si$status) ################################################### ### code chunk number 56: Cuminc2 ################################################### ci <- Cuminc(time="time", status="status", data=aidssi) ################################################### ### code chunk number 57: ci ################################################### head(ci); tail(ci) ################################################### ### code chunk number 58: fig3 (eval = FALSE) ################################################### ## idx0 <- (ci$time<13) ## plot(c(0,ci$time[idx0],13),c(1,1-ci$CI.1[idx0],min(1-ci$CI.1[idx0])),type="s", ## xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) ## idx1 <- (h1$time<13) ## lines(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s",lwd=2,col=8) ## lines(c(0,ci$time[idx0],13),c(0,ci$CI.2[idx0],max(ci$CI.2[idx0])),type="s",lwd=2) ## idx2 <- (h2$time<13) ## lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2,col=8) ## text(8,0.77,adj=0,"AIDS") ## text(8,0.275,adj=0,"SI") ################################################### ### code chunk number 59: fig3do ################################################### idx0 <- (ci$time<13) plot(c(0,ci$time[idx0],13),c(1,1-ci$CI.1[idx0],min(1-ci$CI.1[idx0])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx1 <- (h1$time<13) lines(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s",lwd=2,col=8) lines(c(0,ci$time[idx0],13),c(0,ci$CI.2[idx0],max(ci$CI.2[idx0])),type="s",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2,col=8) text(8,0.77,adj=0,"AIDS") text(8,0.275,adj=0,"SI") ################################################### ### code chunk number 60: fig4 (eval = FALSE) ################################################### ## idx0 <- (ci$time<13) ## plot(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]),type="s", ## xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) ## lines(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]+ci$CI.2[idx0]),type="s",lwd=2) ## text(13,0.5*max(ci$CI.1[idx0]),adj=1,"AIDS") ## text(13,max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"SI") ## text(13,0.5+0.5*max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"Event-free") ################################################### ### code chunk number 61: fig4do ################################################### idx0 <- (ci$time<13) plot(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]+ci$CI.2[idx0]),type="s",lwd=2) text(13,0.5*max(ci$CI.1[idx0]),adj=1,"AIDS") text(13,max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"SI") text(13,0.5+0.5*max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"Event-free") ################################################### ### code chunk number 62: csh1 ################################################### coxph(Surv(time, status == 1) ~ ccr5, data = si) # AIDS coxph(Surv(time, status == 2) ~ ccr5, data = si) # SI appearance ################################################### ### code chunk number 63: csh2 ################################################### coxph(Surv(time,status) ~ ccr5, data=silong, subset = (trans==1), method="breslow") coxph(Surv(time,status) ~ ccr5, data=silong, subset = (trans==2), method="breslow") ################################################### ### code chunk number 64: csh3 ################################################### coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong) ################################################### ### code chunk number 65: csh4 ################################################### coxph(Surv(time, status) ~ ccr5 * factor(trans) + strata(trans), data = silong) ################################################### ### code chunk number 66: csh5 ################################################### coxph(Surv(time, status) ~ ccr5 + strata(trans), data = silong) ################################################### ### code chunk number 67: csh6 ################################################### coxph(Surv(time, status) ~ ccr5, data = silong) ################################################### ### code chunk number 68: csh7 ################################################### coxph(Surv(time, status != 0) ~ ccr5, data = si) ################################################### ### code chunk number 69: csh7 ################################################### coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + factor(trans), data = silong) ################################################### ### code chunk number 70: csh8 ################################################### coxph(Surv(time, status) ~ ccr5 * factor(trans), data = silong) ################################################### ### code chunk number 71: csh9 ################################################### coxph(Surv(time, status) ~ ccr5 * factor(trans) + cluster(id), data = silong) ################################################### ### code chunk number 72: ci1 ################################################### c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong, method="breslow") ################################################### ### code chunk number 73: ci12 ################################################### WW <- data.frame(ccr5WM.1=c(0,0),ccr5WM.2=c(0,0),trans=c(1,2),strata=c(1,2)) msf.WW <- msfit(c1, WW, trans=tmat) ################################################### ### code chunk number 74: ci13 ################################################### pt.WW <- probtrans(msf.WW, 0)[[1]] ################################################### ### code chunk number 75: ci22 ################################################### WM <- data.frame(ccr5WM.1=c(1,0),ccr5WM.2=c(0,1),trans=c(1,2),strata=c(1,2)) msf.WM <- msfit(c1, WM, trans=tmat) pt.WM <- probtrans(msf.WM, 0)[[1]] ################################################### ### code chunk number 76: fig5 (eval = FALSE) ################################################### ## idx1 <- (pt.WW$time<13) ## idx2 <- (pt.WM$time<13) ## ## AIDS ## plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) ## lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate2[idx2]),type="s",lwd=2,col=8) ## title(main="AIDS") ## text(9.2,0.345,"WW",adj=0,cex=0.75) ## text(9.2,0.125,"WM",adj=0,cex=0.75) ## ## SI appearance ## plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) ## lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) ## title(main="SI appearance") ## text(7.5,0.31,"WW",adj=0,cex=0.75) ## text(7.5,0.245,"WM",adj=0,cex=0.75) ################################################### ### code chunk number 77: fig5do ################################################### idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) ## AIDS plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate2[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.2,0.345,"WW",adj=0,cex=0.75) text(9.2,0.125,"WM",adj=0,cex=0.75) ################################################### ### code chunk number 78: fig5do2 ################################################### ## SI appearance plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.5,0.31,"WW",adj=0,cex=0.75) text(7.5,0.245,"WM",adj=0,cex=0.75) ################################################### ### code chunk number 79: fig7 (eval = FALSE) ################################################### ## ffs <- c(0,0.5,1,1.5,2,4) ## newmsf.WW <- msf.WW ## newmsf.WM <- msf.WM ## par(mfrow=c(2,3)) ## for (ff in ffs) { ## # WW ## newmsf.WW$Haz$Haz[newmsf.WW$Haz$trans==1] <- ff*msf.WW$Haz$Haz[msf.WW$Haz$trans==1] ## pt.WW <- probtrans(newmsf.WW, 0, variance=FALSE)[[1]] ## # WM ## newmsf.WM$Haz$Haz[newmsf.WM$Haz$trans==1] <- ff*msf.WM$Haz$Haz[msf.WM$Haz$trans==1] ## pt.WM <- probtrans(newmsf.WM, 0, variance=FALSE)[[1]] ## # Plot ## idx1 <- (pt.WW$time<13) ## idx2 <- (pt.WM$time<13) ## plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.52),xlab="Years from HIV infection",ylab="Probability",lwd=2) ## lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) ## title(main=paste("Factor =",ff)) ## } ## par(mfrow=c(1,1)) ################################################### ### code chunk number 80: fig7do ################################################### ### Multiply baseline hazard of AIDS with factors (ff) ### of ff = 0, 0.5, 1, 1.5, 2, 4 ffs <- c(0,0.5,1,1.5,2,4) newmsf.WW <- msf.WW newmsf.WM <- msf.WM par(mfrow=c(2,3)) for (ff in ffs) { # WW newmsf.WW$Haz$Haz[newmsf.WW$Haz$trans==1] <- ff*msf.WW$Haz$Haz[msf.WW$Haz$trans==1] pt.WW <- probtrans(newmsf.WW, 0, variance=FALSE)[[1]] # WM newmsf.WM$Haz$Haz[newmsf.WM$Haz$trans==1] <- ff*msf.WM$Haz$Haz[msf.WM$Haz$trans==1] pt.WM <- probtrans(newmsf.WM, 0, variance=FALSE)[[1]] # Plot idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.52),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main=paste("Factor =",ff)) } par(mfrow=c(1,1)) ################################################### ### code chunk number 81: FG ################################################### library(cmprsk) sic <- si[!is.na(si$ccr5),] ftime <- sic$time fstatus <- sic$status cov <- as.numeric(sic$ccr5)-1 # for failures of type 1 (AIDS) z1 <- crr(ftime,fstatus,cov) z1 # for failures of type 2 (SI) z2 <- crr(ftime,fstatus,cov,failcode=2) z2 ################################################### ### code chunk number 82: fig8 (eval = FALSE) ################################################### ## z1.pr <- predict(z1,matrix(c(0,1),2,1)) ## # this will contain predicted cum inc curves, both for WW (2nd column) and WM (3rd) ## z2.pr <- predict(z2,matrix(c(0,1),2,1)) ## # Standard plots, not shown ## par(mfrow=c(1,2)) ## plot(z1.pr,lty=1,lwd=2,color=c(8,1)) ## plot(z2.pr,lty=1,lwd=2,color=c(8,1)) ## par(mfrow=c(1,1)) ## ## AIDS ## n1 <- nrow(z1.pr) # remove last jump ## plot(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,2]),type="s",ylim=c(0,0.5), ## xlab="Years from HIV infection",ylab="Probability",lwd=2) ## lines(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,3]),type="s",lwd=2,col=8) ## title(main="AIDS") ## text(9.3,0.35,"WW",adj=0,cex=0.75) ## text(9.3,0.14,"WM",adj=0,cex=0.75) ## ## SI appearance ## n2 <- nrow(z2.pr) # again remove last jump ## plot(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,2]),type="s",ylim=c(0,0.5), ## xlab="Years from HIV infection",ylab="Probability",lwd=2) ## lines(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,3]),type="s",lwd=2,col=8) ## title(main="SI appearance") ## text(7.9,0.28,"WW",adj=0,cex=0.75) ## text(7.9,0.31,"WM",adj=0,cex=0.75) ################################################### ### code chunk number 83: fig8do ################################################### z1.pr <- predict(z1,matrix(c(0,1),2,1)) # this will contain predicted cum inc curves, both for WW (2nd column) and WM (3rd) z2.pr <- predict(z2,matrix(c(0,1),2,1)) ## AIDS n1 <- nrow(z1.pr) # remove last jump plot(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,2]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,3]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.14,"WM",adj=0,cex=0.75) ################################################### ### code chunk number 84: fig8do2 ################################################### ## SI appearance n2 <- nrow(z2.pr) # again remove last jump plot(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,2]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,3]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.28,"WW",adj=0,cex=0.75) text(7.9,0.31,"WM",adj=0,cex=0.75) ################################################### ### code chunk number 85: nonp ################################################### ci <- Cuminc(si$time,si$status,group=si$ccr5) ci.WW <- ci[ci$group=="WW",] ci.WM <- ci[ci$group=="WM",] ################################################### ### code chunk number 86: Fig9 (eval = FALSE) ################################################### ## idx1 <- (ci.WW$time<13) ## idx2 <- (ci.WM$time<13) ## # AIDS ## plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.1[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) ## lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.1[idx2]),type="s",lwd=2,col=8) ## title(main="AIDS") ## text(9.3,0.35,"WW",adj=0,cex=0.75) ## text(9.3,0.11,"WM",adj=0,cex=0.75) ## # SI appearance ## plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) ## lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.2[idx2]),type="s",lwd=2,col=8) ## title(main="SI appearance") ## text(7.9,0.32,"WW",adj=0,cex=0.75) ## text(7.9,0.245,"WM",adj=0,cex=0.75) ################################################### ### code chunk number 87: Fig9do ################################################### idx1 <- (ci.WW$time<13) idx2 <- (ci.WM$time<13) # AIDS plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.1[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.1[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.11,"WM",adj=0,cex=0.75) ################################################### ### code chunk number 88: Fig9do2 ################################################### # SI appearance plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.2[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.32,"WW",adj=0,cex=0.75) text(7.9,0.245,"WM",adj=0,cex=0.75) mstate/inst/doc/visuals_demo.R0000644000176200001440000002023414643710660016116 0ustar liggesusers## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 6, fig.align = 'center' ) ## ----------------------------------------------------------------------------- # Load libraries library(mstate) library(ggplot2) # Set general ggplot2 theme theme_set(theme_bw(base_size = 14)) ## ----load_dat----------------------------------------------------------------- # Load data data("aidssi") head(aidssi) # Shorter name si <- aidssi # Prepare transition matrix tmat <- trans.comprisk(2, names = c("event-free", "AIDS", "SI")) tmat # Run msprep si$stat1 <- as.numeric(si$status == 1) si$stat2 <- as.numeric(si$status == 2) silong <- msprep( time = c(NA, "time", "time"), status = c(NA, "stat1", "stat2"), data = si, keep = "ccr5", trans = tmat ) # Run cox model silong <- expand.covs(silong, "ccr5") c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong) ## ----msfit_prep--------------------------------------------------------------- # Data to predict WW <- data.frame( ccr5WM.1 = c(0, 0), ccr5WM.2 = c(0, 0), trans = c(1, 2), strata = c(1, 2) ) # Make msfit object msf.WW <- msfit( object = c1, newdata = WW, trans = tmat ) ## ----msfitplot_base_1--------------------------------------------------------- plot(msf.WW) ## ----msfitplot_ggplot2_1------------------------------------------------------ plot(msf.WW, use.ggplot = TRUE) ## ----msfitplot_base_2--------------------------------------------------------- par(mfrow = c(1, 2)) plot(msf.WW, type = "separate") ## ----msfitplot_ggplot_2------------------------------------------------------- # Fixed scales plot(msf.WW, type = "separate", use.ggplot = TRUE, scale_type = "fixed") # Free scales plot(msf.WW, type = "separate", use.ggplot = TRUE, scale_type = "free", xlim = c(0, 15)) ## ----msfitplot_customs-------------------------------------------------------- par(mfrow = c(1, 1)) # A base R customised plot plot( msf.WW, type = "single", cols = c("blue", "black"), # or numeric e.g. c(1, 2) xlim = c(0, 15), legend.pos = "top", lty = c("dashed", "solid"), use.ggplot = FALSE ) title("Cumulative baseline hazards") # A ggplot2 customised plot plot( msf.WW, type = "single", cols = c("blue", "black"), # or numeric e.g. c(1, 2) xlim = c(0, 15), lty = c("dashed", "solid"), legend.pos = "bottom", use.ggplot = TRUE ) + # Add title and center ggtitle("Cumulative baseline hazards") + theme(plot.title = element_text(hjust = 0.5)) ## ----msfitplot_confint1------------------------------------------------------- plot( msf.WW, type = "single", use.ggplot = TRUE, conf.type = "log", conf.int = 0.95 ) ## ----msfitplot_confint2------------------------------------------------------- plot( msf.WW, type = "separate", use.ggplot = TRUE, conf.type = "log", conf.int = 0.95, scale_type = "free_y" ) ## ----------------------------------------------------------------------------- # Run probtrans pt.WW <- probtrans(msf.WW, predt = 0) # Example predict at different times summary(pt.WW, times = c(1, 5, 10)) ## ----plot_pt_filled1---------------------------------------------------------- plot(pt.WW, from = 1) ## ----plot_pt_filled2---------------------------------------------------------- # from = 1 implied plot(pt.WW, use.ggplot = TRUE) ## ----plot_pt_filled3---------------------------------------------------------- plot(pt.WW, use.ggplot = TRUE, label = "annotate", cex = 6) ## ----plot_pt_filled4---------------------------------------------------------- # Check state order again from transition matrix tmat # Plot aids (state 2), then event-free (state 1), and SI on top (state 3) plot(pt.WW, use.ggplot = TRUE, ord = c(2, 1, 3)) ## ----plot_pt_stacked---------------------------------------------------------- plot(pt.WW, use.ggplot = TRUE, type = "stacked") ## ----plot_pt_separate1-------------------------------------------------------- par(mfrow = c(1, 3)) plot(pt.WW, type = "separate") ## ----plot_pt_separate2-------------------------------------------------------- plot( pt.WW, use.ggplot = TRUE, type = "separate", conf.int = 0.95, # 95% level conf.type = "log" ) ## ----plot_pt_single1---------------------------------------------------------- plot( pt.WW, use.ggplot = TRUE, type = "single", conf.int = 0.95, # 95% level conf.type = "log" ) ## ----plot_pt_single2---------------------------------------------------------- plot( pt.WW, use.ggplot = TRUE, type = "single", conf.type = "none", lty = c(1, 2, 3), # change the linetype lwd = 1.5, ) ## ----plot_pt_single3---------------------------------------------------------- # Run plot and extract data using $data dat_plot <- plot(x = pt.WW, use.ggplot = TRUE, type = "single")$data # Begin new plot - Exclude or select states to be plotted ggplot(data = dat_plot[state != "event-free", ], aes( x = time, y = prob, ymin = CI_low, ymax = CI_upp, group = state, linetype = state, col = state )) + # Add CI and lines; change fill = NA to remove CIs geom_ribbon(col = NA, fill = "gray", alpha = 0.5) + geom_line() + # Remaining details labs(x = "Time", y = "Cumulative Incidence") + coord_cartesian(ylim = c(0, 1), xlim = c(0, 14), expand = 0) ## ----plot.Cuminc1------------------------------------------------------------- cum_incid <- Cuminc( time = "time", status = "status", data = si ) plot( x = cum_incid, use.ggplot = TRUE, conf.type = "log", lty = 1:2, conf.int = 0.95, ) ## ----plot.cuminc_x------------------------------------------------------------ cum_incid_grp <- Cuminc( time = "time", status = "status", group = "ccr5", data = si ) plot( x = cum_incid_grp, use.ggplot = TRUE, conf.type = "none", lty = 1:4, facet = FALSE ) plot( x = cum_incid_grp, use.ggplot = TRUE, conf.type = "none", lty = 1:4, facet = TRUE ) ## ----vis_multiple_prep-------------------------------------------------------- # 1. Prepare patient data - both CCR5 genotypes WW <- data.frame( ccr5WM.1 = c(0, 0), ccr5WM.2 = c(0, 0), trans = c(1, 2), strata = c(1, 2) ) WM <- data.frame( ccr5WM.1 = c(1, 0), ccr5WM.2 = c(0, 1), trans = c(1, 2), strata = c(1, 2) ) # 2. Make msfit objects msf.WW <- msfit(c1, WW, trans = tmat) msf.WM <- msfit(c1, WM, trans = tmat) # 3. Make probtrans objects pt.WW <- probtrans(msf.WW, predt = 0) pt.WM <- probtrans(msf.WM, predt = 0) ## ----vis_multiple_plot-------------------------------------------------------- vis.multiple.pt( x = list(pt.WW, pt.WM), from = 1, to = 2, conf.type = "log", cols = c(1, 2), labels = c("Pat WW", "Pat WM"), legend.title = "Ref patients" ) ## ----vis_multiple_plot2------------------------------------------------------- vis.multiple.pt( x = list(pt.WW), from = 1, to = 2, conf.type = "log", cols = c(1, 2), labels = c("Pat WW", "Pat WM"), legend.title = "Ref patients" ) ## ----mirror1------------------------------------------------------------------ vis.mirror.pt( x = list(pt.WW, pt.WM), titles = c("WW", "WM"), horizon = 10 ) ## ----mirror2------------------------------------------------------------------ vis.mirror.pt( x = list(pt.WW, pt.WM), titles = c("WW", "WM"), size_titles = 8, horizon = 5, breaks_x_left = c(0, 1, 2, 3, 4, 5), breaks_x_right = c(0, 1, 2, 3, 4), ord = c(3, 2, 1) ) ## ----saving, eval=FALSE------------------------------------------------------- # # Saving a ggplot2 plot # p <- plot(pt.WW, use.ggplot = TRUE) # ggplot2::ggsave("my_ggplot2_plot.png") # # # Standard graphics plot # png("my_standard_plot.png") # plot(pt.WW, use.ggplot = FALSE) # dev.off() ## ----session-info, include=TRUE, echo=TRUE, results='markup'------------------ # Date/time Sys.time() # Environment sessionInfo() mstate/inst/doc/Tutorial.Rnw0000644000176200001440000017527714641733054015616 0ustar liggesusers%\VignetteIndexEntry{Using mstate for the analyses of Putter et al. (Stat Med 2007)} %\VignetteDepends{cmprsk} \SweaveOpts{eval=TRUE} \SweaveOpts{keep.source=FALSE} \documentclass[11pt,twoside,a4paper,final]{article} \usepackage[leqno]{amsmath} \usepackage{xspace} \usepackage{amsbsy} \usepackage{fancyhdr} \usepackage{comment} \usepackage{fullpage} \usepackage{natbib} \usepackage{hyperref} \usepackage{Sweave} \usepackage[utf8]{inputenc} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\headsep}{25pt} \renewcommand{\footskip}{30pt} \renewcommand{\footrulewidth}{0pt} \newcommand{\Rcode}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rfunction}[1]{\textsl{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \newcommand{\Rfunarg}[1]{{\textit{#1}}} \newcommand{\Rmethod}[1]{{\textit{#1}}} \newcommand{\Ritem}[1]{{\texttt{#1}}} % self defined, item in a list \newcommand{\Rcolumn}[1]{{\texttt{#1}}} % self defined, column name in data frame \newcommand{\R}{\texttt{R}\xspace} \newcommand{\survival}{\Rpackage{survival}\xspace} \newcommand{\mstate}{\Rpackage{mstate}\xspace} \newcommand{\msprep}{\Rfunction{msprep}\xspace} \newcommand{\msfit}{\Rfunction{msfit}\xspace} \newcommand{\expandcovs}{\Rfunction{expand.covs}\xspace} \newcommand{\events}{\Rfunction{events}\xspace} \newcommand{\plot}{\Rfunction{plot}\xspace} \newcommand{\paths}{\Rfunction{paths}\xspace} \newcommand{\probtrans}{\Rfunction{probtrans}\xspace} \newcommand{\Cuminc}{\Rfunction{Cuminc}\xspace} \newcommand{\coxph}{\Rfunction{coxph}\xspace} \newcommand{\survfit}{\Rfunction{survfit}\xspace} \newcommand{\stratum}{\Rcolumn{stratum}\xspace} \newcommand{\strata}{\Rcolumn{strata}\xspace} \newcommand{\prtime}{\Rcolumn{prtime}\xspace} \newcommand{\pr}{\Rcolumn{pr}\xspace} \newcommand{\from}{\Rcolumn{from}\xspace} %\newcommand{\direct}{\texttt{direct}\xspace} \newcommand{\Tstart}{\Rcolumn{Tstart}\xspace} \newcommand{\Tstop}{\Rcolumn{Tstop}\xspace} \newcommand{\status}{\Rcolumn{status}\xspace} \newcommand{\patid}{\Rcolumn{patid}\xspace} \newcommand{\trans}{\Rcolumn{trans}\xspace} \newcommand{\keep}{\Rcolumn{keep}\xspace} \newcommand{\NA}{\Robject{NA}\xspace} \newcommand{\FALSE}{\Robject{FALSE}\xspace} \newcommand{\TRUE}{\Robject{TRUE}\xspace} \newcommand{\newdata}{\Rfunarg{newdata}\xspace} \newcommand{\Haz}{\Ritem{Haz}\xspace} \newcommand{\varHaz}{\Ritem{varHaz}\xspace} \newcommand{\data}{\texttt{data}\xspace} \newcommand{\tut}{the tutorial\xspace} \newcommand{\Tx}{transplantation\xspace} \newcommand{\PR}{platelet recovery\xspace} \newcommand{\RD}{relapse/death\xspace} \newcommand{\PH}{proportional hazards\xspace} \newcommand{\se}{standard error\xspace} \newcommand{\ses}{standard errors\xspace} \newcommand{\msm}{multi-state model\xspace} \newcommand{\msms}{multi-state models\xspace} \newcommand{\crs}{competing risks\xspace} \newcommand{\ci}{cumulative incidence\xspace} \newcommand{\cis}{cumulative incidences\xspace} \newcommand{\LLambda}{\boldsymbol{\Lambda}} \newcommand{\II}{{\mathbf I}} \newcommand{\PP}{{\mathbf P}} \newcommand{\given}{\,|\,} \begin{document} \SweaveOpts{concordance=TRUE} \title{Tutorial in biostatistics: Competing risks and multi-state models\\ Analyses using the \mstate package} \author{Hein Putter\\ Department of Medical Statistics and Bioinformatics\\ Leiden University Medical Center\\ Postzone S-5-P\\ PO Box 9600\\ 2300 RC\ \ Leiden\\ The Netherlands\\ E-mail: \texttt{h.putter@lumc.nl}} \maketitle \newpage \section{Introduction}\label{sec:intro} This is a companion file both for the \mstate package and for the Tutorial in Biostatistics: Competing risks and multi-state models~\citep{Tut}, simply referred to henceforth as the tutorial. Emphasis in this document will be on the use of \mstate, not on the theory of competing risks and multi-state models. The only exception is that I have added some theory about the Aalen-Johansen estimator that is implemented in \mstate but did not appear in \tut. For other theory on multi-state models, and for interpretation of the results of the analyses, we will repeatedly refer to \tut. I will occasionally give more detail and show more analyses than in \tut. Also I sometimes give more details on the function in \mstate than strictly necessary for the analyses in \tut, but not all features will be shown either. This file and the \mstate package, which in turn contains all the data used in \tut, can be found at \url{https://github.com/hputter/mstate}. This file is also a vignette of the \mstate package. Type \Rcode{vignette("Tutorial")} after having installed and loaded \mstate to access this document within R. I do not follow the order of \tut. Rather, I will start with multi-state models, Section 4 of \tut, and finally switch back to the special case of \crs models. Sections~\ref{sec:prep}, \ref{sec:est} and \ref{sec:pred} of this document will discuss data preparation, estimation and prediction, respectively in multi-state models. In Section~\ref{sec:comprisk} I illustrate some functions of \mstate designed especially for competing risks. After installation, the \mstate package is loaded in the usual way. <>= library(mstate) @ The versions of \R and \mstate used in this document are as follows: <>= R.version$version.string packageDescription("mstate", fields = "Version") @ \section{Data preparation}\label{sec:prep} The data used in Section 4 of \tut are 2204 patients transplanted at the EBMT between 1995 and 1998. These data are included in the \mstate package. For (a tiny bit) more background on the data, refer to \tut, or type \Rcode{help(ebmt3)}. <>= data(ebmt3) head(ebmt3) @ Let us first have a look at the covariates. For instance disease subclassification: <>= n <- nrow(ebmt3) table(ebmt3$dissub); round(100*table(ebmt3$dissub)/n) @ The output of the other covariates is omitted. <>= table(ebmt3$age); round(100*table(ebmt3$age)/n) table(ebmt3$drmatch); round(100*table(ebmt3$drmatch)/n) table(ebmt3$tcd); round(100*table(ebmt3$tcd)/n) @ The first step in a \msm analysis is to set up the transition matrix. The transition matrix specifies which direct transitions are possible (those with \NA are impossible) and assigns numbers to the transitions for future reference. This can be done explicitly. <>= tmat <- matrix(NA,3,3) tmat[1,2:3] <- 1:2 tmat[2,3] <- 3 dimnames(tmat) <- list(from=c("Tx","PR","RelDeath"),to=c("Tx","PR","RelDeath")) tmat @ Steven McKinney has kindly provided a convenient function \Rfunction{transMat} to define transition matrices. The same transition matrix may be constructed as follows. <>= tmat <- transMat(x=list(c(2,3),c(3),c()), names=c("Tx","PR","RelDeath")) tmat @ For common \msms, such as the illness-death model (and competing risks models, Section~\ref{sec:comprisk}) there is a built-in function to obtain these transition matrices more easily. <>= tmat <- trans.illdeath(names=c("Tx","PR","RelDeath")) tmat @ The function \paths can be used to give a list of all possible paths through the multi-state model. This function should not be used for transition matrices specifying a multi-state model with loops, since there will be infinitely many paths. At the moment there is no check for the presence of loops, but this will be included shortly. <>= paths(tmat) @ Time in the \Robject{ebmt3} data is reported in days; before doing any analysis, we first convert this to years. <>= ebmt3$prtime <- ebmt3$prtime/365.25 ebmt3$rfstime <- ebmt3$rfstime/365.25 @ In order to prepare data in long format, we specify the names of the covariates that we are interested in modeling. Note that I am adding \prtime, which is not really a covariate, but specifying the time of platelet recovery. The purpose of this will become clear later. The specified covariates are to be retained in the dataset in long format (this is the argument \Rfunarg{keep}), which we are going to call \Robject{msbmt}. For the original dataset \Robject{ebmt3}, each row corresponds to a single patient. For the long format data \Robject{msbmt}, each row will correspond to a transition for which a patient is at risk. See \tut for more detailed information. <>= covs <- c("dissub", "age", "drmatch", "tcd", "prtime") msbmt <- msprep(time=c(NA,"prtime","rfstime"), status=c(NA,"prstat","rfsstat"), data=ebmt3, trans=tmat, keep=covs) @ The result is an S3 object of class \Rclass{msdata} and \Rclass{data.frame}. An \Rclass{msdata} object is actually only a data frame with a \Ritem{trans} attribute holding the transition matrix used to define it. A \Rfunction{print} method has been defined for \Rclass{msdata} objects, which also prints the transition matrix if requested (set argument \Rfunarg{trans} to \TRUE, default is \FALSE). <>= head(msbmt) @ In the above call of \msprep, the \Rfunarg{time} and \Rfunarg{status} arguments specify the column names in the data \Robject{ebmt3} corresponding to the three states in the multi-state model. Since all the patients start in state 1 at time 0, the \Rfunarg{time} and \Rfunarg{status} arguments corresponding to the first state do not really have a value. In such cases, the corresponding elements of \Rfunarg{time} and \Rfunarg{status} may be given the value \NA. An alternative way of specifying \Rfunarg{time} and \Rfunarg{status} (and \Rfunarg{keep} as well) is as matrices of dimension $n \times S$ with $S$ the number of states (and $n \times p$ with $p$ the number of covariates for \Rfunarg{keep}). The \Rfunarg{data} argument doesn't need to be specified then. The number of events in the data can be summarized with the function \events. <>= events(msbmt) @ For regression purposes, we now add transition-specific covariates to the dataset. For more details on transition-specific covariates, refer to \tut. For a numerical covariate \Rcolumn{cov}, the names of the expanded (transition-specific) covariates are \Rcolumn{cov.1}, \Rcolumn{cov.2} etc. The extension \Rcolumn{.i} refers to transition number $i$. First, we define these transition-specific covariates as a separate dataset, by setting \Rfunarg{append} to \FALSE. <>= expcovs <- expand.covs(msbmt,covs[2:3],append=FALSE) head(expcovs) @ We see that this expanded covariates dataset is quite large, and that the covariate names are quite long. For categorical covariates, the default names of the expanded covariates are a combination of the covariate name, the level (similar to the names of the regression coefficients that you see in regression output), followed by the transition number, in such a way that the combination is allowed as column name. If these names are too long, the user may set the value of \Rfunarg{longnames} (default=\TRUE) to \FALSE. In this case, the covariate name is followed by \Rcolumn{1}, \Rcolumn{2} etc, before the transition number. In case of a covariate with only two levels, the covariate name is just followed by the transition number. Confident that this will work out, we also set \Rfunarg{append} to \TRUE (default), which will append the expanded covariates to the dataset. <>= msbmt <- expand.covs(msbmt,covs,append=TRUE,longnames=FALSE) head(msbmt) @ The names indeed are quite a bit shorter. The downside however is that we need to remember for ourselves to which category for instance the number \Rcolumn{1} in \Rcolumn{age1.2} corresponds (age 20-40 with $\leq 20$ as reference category). \section{Estimation}\label{sec:est} After having prepared the data in long format, estimation of covariate effects using Cox regression is straightforward using the \coxph function of the \survival package. This is not at all a feature of the \mstate package, other than that \msprep has facilitated preparation of the data. Let us consider the Markov model, where we assume different effects of the covariates for different transitions; hence we use the transition-specific covariates obtained by \expandcovs. The delayed entry aspect of this model for transition 3 (see discussion in \tut) is achieved by specifying \Rfunarg{Surv(Tstart,Tstop,status)}, where (this is reflected in the long format data) \Tstart is the time of entry in the state, and \Tstop the event or censoring time, depending on the value of \Rcolumn{status}. We consider first the model without any proportionality assumption on the baseline hazards; this is achieved by adding \Rfunarg{strata(trans)} to the formula, which estimates separate baseline hazards for different values of \trans (the transitions). The results appear in the left column of Table III of \tut. <>= c1 <- coxph(Surv(Tstart,Tstop,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + strata(trans), data=msbmt, method="breslow") c1 @ The interpretation is discussed in \tut. The next model considered is the Markov model where the transition hazards into relapse or death (these correspond to transitions 2 and 3) are assumed to be proportional. For this purpose transition 1 (\Tx $\to$ \PR) belongs to one stratum and transitions 2 (\Tx $\to$ \RD) and 3 (\PR $\to$ \RD) belong to a second stratum. Transitions 2 and 3 have the same receiving state, hence the same value of \Rcolumn{to}, so the two strata can be distinguished by the variable \Rcolumn{to} in our dataset. In order to distinguish between transitions 2 and 3, we introduce a time-dependent covariate \pr that indicates whether or not platelet recovery has already occurred. For transition 2 (Tx $\to$ RelDeath) the value of \pr equals 0, while for transition 3 (PR $\to$ RelDeath) the value of \pr equals 1. Results are found in the middle of Table III of \tut. <>= msbmt$pr <- 0 msbmt$pr[msbmt$trans==3] <- 1 c2 <- coxph(Surv(Tstart,Tstop,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + strata(to), data=msbmt, method="breslow") c2 @ For a discussion of the results we again refer to \tut. The hazard ratio of \pr (0.685) and its $p$-value (0.073) indicate a trend-significant beneficial effect of \PR on relapse-free survival. Later on we will look at the corresponding baseline transition intensities for these two models and see as a graphical check that the assumption of proportionality of the baseline hazards for transitions 2 and 3 is reasonable. This can also be tested formally using the function \Rfunction{cox.zph} (part of the \survival package, not of \mstate). <>= cox.zph(c2) @ There is no evidence of non-proportionality of the baseline transition intensities of transitions 2 ($p$=0.496 for \pr). There is strong evidence that the \PH assumption for \Rcolumn{dissub2} (CML vs AML) is violated, at least for the transitions into relapse and death. This makes sense, clinically, since CML and AML are two diseases with completely different biological pathways. It would have been much better to study separate \msms for the three disease subclassifications. However, since the purpose of this manuscript is to illustrate the use of \mstate, we will blatantly ignore the clear evidence of non-proportionality for the disease subclassifications. Building on the Markov PH model, we can investigate whether the time at which a patient arrived in state 2 (PR) influences the subsequent RFS rate, that is, the transition hazard of PR $\to$ RelDeath. Here the purpose of expanding \prtime becomes apparent. Since \prtime only makes sense for transition 3 (PR $\to$ RelDeath), we need the transition-specific covariate of \prtime for transition 3, which is \Rcolumn{prtime.3}. The corresponding model is termed the "state arrival extended Markov PH" model in \tut, and appears on the right of Table III. <>= c3 <- coxph(Surv(Tstart,Tstop,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + prtime.3 + strata(to), data=msbmt, method="breslow") c3 @ The influence of the time at which \PR occurred seems small and is not significant ($p$=0.62, last row). The clock-reset models may be obtained very similarly to those of the clock-forward models. The only difference is that \Rfunarg{Surv(Tstart,Tstop,status)} is replaced by \Rfunarg{Surv(time,status)}. This reflects the fact (recall that in our long format data each row corresponds to a transition) that for each transition the time starts at 0, rather than \Tstart, the time since start of study at which the state has been entered. We will only show the code, not the output; the reader may try this for him-or herself. <>= c4 <- coxph(Surv(time,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + strata(trans), data=msbmt, method="breslow") c5 <- coxph(Surv(time,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + strata(to), data=msbmt, method="breslow") c6 <- coxph(Surv(time,status) ~ dissub1.1 + dissub2.1 + age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + age1.3 + age2.3 + drmatch.3 + tcd.3 + pr + prtime.3 + strata(to), data=msbmt, method="breslow") @ \section{Prediction}\label{sec:pred} In order to obtain prediction probabilities in the context of the Markov \msms discussed in the previous section, basically two steps are involved. The first is to use the estimated parameters and baseline transition hazards and the covariate values of a patient of interest, to obtain patient-specific transition hazards for that patient, for each of the transitions in the \msm. This is what the function \msfit is designed to do. The second step is to use the resulting patient-specific transition hazards (and variances and covariances) as input for \probtrans to obtain (patient-specific) transition probabilities. I will first show how \msfit can be used to obtain the baseline hazards associated with the Markov stratified and PH models. The hazards of the Markov stratified models (and their variances and covariates) are obtained by first creating a new dataset containing the (expanded) covariates along with their values (in this case 0). This is very similar to the use of \survfit from the \survival package. The important difference is that for one patient, this \newdata data frame needs to have exactly one line for each transition. When transition-specific covariates have been used in the model, the easiest way to obtain such a data frame is to first create a data frame with the basic covariates and then using \expandcovs to obtain the transition-specific covariates. Since \expandcovs expects an \Rclass{msdata} object, we set the class of the \newdata data to \Rclass{msdata} explicitly. We also copy the levels of the categorical covariates before expanding, although this is not really necessary here. <>= newd <- data.frame(dissub=rep(0,3),age=rep(0,3),drmatch=rep(0,3),tcd=rep(0,3),trans=1:3) newd$dissub <- factor(newd$dissub,levels=0:2,labels=levels(ebmt3$dissub)) newd$age <- factor(newd$age,levels=0:2,labels=levels(ebmt3$age)) newd$drmatch <- factor(newd$drmatch,levels=0:1,labels=levels(ebmt3$drmatch)) newd$tcd <- factor(newd$tcd,levels=0:1,labels=levels(ebmt3$tcd)) attr(newd, "trans") <- tmat class(newd) <- c("msdata","data.frame") newd <- expand.covs(newd,covs[1:4],longnames=FALSE) newd$strata=1:3 newd @ The last command where the column \Rcolumn{strata} is added is important and points to a second major difference between \survfit and \msfit. The \newdata data frame needs to have a column \strata specifying to which stratum in the \Robject{coxph} object each transition belongs. Here each transition corresponds to a separate stratum, so we specify 1, 2, and 3. To obtain an estimate of the baseline cumulative hazard for the "stratified hazards" model, \msfit can be called with the first Cox model, \Robject{c1}, as input model, and \Robject{newd} as \Rfunarg{newdata} argument. <>= msf1 <- msfit(c1, newdata=newd, trans=tmat) @ The result is an object of class \Rclass{msfit}, which is a list with three items, \Haz, \varHaz, and \Ritem{trans}. The item \Ritem{trans} records the transition matrix used when constructing the \Rclass{msfit} object. \Haz contains the estimated cumulative hazard for each of the transitions for the particular patient specified in \Robject{newd}, while \varHaz contains the estimated variances of these cumulative hazards, as well as the covariances for each combination of two transitions. All are evaluated at the time points for which any event in any transition occurs, possibly augmented with the largest (non-event) time point in the data. The \Rfunction{summary} method for \Rclass{msfit} objects is most conveniently used for a summary. If we also would like to have a look at the covariances, we could set the argument \Rfunarg{variance} equal to \TRUE. <>= summary(msf1) @ Let us have a closer look at some of the variances and covariances as well. <>= vH1 <- msf1$varHaz head(vH1[vH1$trans1==1 & vH1$trans2==1,]) tail(vH1[vH1$trans1==1 & vH1$trans2==1,]) tail(vH1[vH1$trans1==1 & vH1$trans2==2,]) tail(vH1[vH1$trans1==1 & vH1$trans2==3,]) tail(vH1[vH1$trans1==2 & vH1$trans2==3,]) @ Note that the covariances of the estimated cumulative hazards are practically (apart from rounding errors) 0. Theoretically, they should be 0, because with separate strata and separate covariate effects for the different transitions, the estimates of the three transitions could in fact have been estimated as three separate Cox models (this would give exactly the same results). The estimated baseline cumulative hazards for the Markov PH model are obtained in mostly the same way. The only exception is the specification of the \Rfunarg{strata} argument in \Robject{newd}. Instead of taking the values 1, 2, and 3, for the three transitions, they take values 1, 2, 2, to indicate that transition 1 corresponds to stratum 1, and both transitions 2 and 3 correspond to stratum 2 (the order of the strata as defined in the \Robject{coxph} object). Also the time-dependent covariate \pr needs to be included, taking the value 0 for transitions 1 and 2, and 1 for transition 3. <>= newd$strata=c(1,2,2) newd$pr <- c(0,0,1) msf2 <- msfit(c2, newdata=newd, trans=tmat) summary(msf2) vH2 <- msf2$varHaz tail(vH2[vH2$trans1==1 & vH2$trans2==2,]) tail(vH2[vH2$trans1==1 & vH2$trans2==3,]) tail(vH2[vH2$trans1==2 & vH2$trans2==3,]) @ Note that the estimated cumulative hazards and variances for transition 1 are identical to those from \Robject{msf1}. We saw earlier that the estimated regression coefficients were also identical for the Markov stratified and the Markon PH models. Note also that the variance of the cumulative hazard of transition 3 (and 2, not shown) is smaller than with \Robject{msf1}. The cumulative hazard estimates of transitions 1 and 2 are still uncorrelated (and 1 and 3), but those of transitions 2 and 3 are correlated now, because they share a common baseline. Let us compare the baseline hazards of the Markov stratified and PH models graphically. For this we use the \Rfunction{plot} method for \Rclass{msfit} objects. Figure~\ref{fig:fig14} corresponds to Figure~14 in \tut. <>= par(mfrow=c(1,2)) plot(msf1,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Stratified baseline hazards",legend.pos=c(2,0.9)) plot(msf2,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Proportional baseline hazards",legend.pos=c(2,0.9)) par(mfrow=c(1,1)) @ \begin{figure}[h!] \centering <>= par(mfrow=c(1,2)) plot(msf1,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Stratified baseline hazards",legend.pos=c(2,0.9)) plot(msf2,cols=rep(1,3),lwd=2,lty=1:3, xlab="Years since transplant",ylab="Proportional baseline hazards",legend.pos=c(2,0.9)) par(mfrow=c(1,1)) @ \caption{Baseline cumulative hazard curves for the EBMT illness-death model. On the left the Markov stratified hazards model, on the right the Markov PH model.} \label{fig:fig14} \end{figure} \setkeys{Gin}{width=0.65\textwidth} Define the \msm as $X(t)$, a random process taking values in $1,\ldots,S$ ($S$ being the number of states). We are interested in estimating so called transition probabilities $P_{gh}(s,t) = P(X(t) = h \given X(s) = g)$, possibly depending on covariates. For instance, $P_{13}(0,t)$ indicates the probability of having relapsed/died (state 3) by time $t$, given that the individual was alive without relapse or \PR (state 1) at time $s=0$. By fixing $s$ and varying $t$, we can predict the future behavior of the \msm given the present at time $s$. For Markov models, these probabilities will depend only on the state at time $s$, not on what happened before. For these Markov models there is a powerful relation between these transition probabilities and the transition intensities, given by \begin{equation}\label{eq:Kolm} \PP(s,t) = \prod_{(s,t]} (\II + d\LLambda(u)) \end{equation} Here $\PP(s,t)$ is an $S \times S$ matrix with as $(g,h)$ element the $P_{gh}(s,t)$ in which we are interested, and $\LLambda(t)$ is an $S \times S$ matrix with as off-diagonal $(g,h)$ elements the transition intensities $\Lambda_{gh}(t)$ of transition $g \to h$. If such a direct transition is not possible, then $\Lambda_{gh}(t)=0$. The diagonal elements of $\LLambda(t)$ are defined as $\Lambda_{gg}(t) = -\sum_{h \not= g} \Lambda_{gh}(t)$, i.e.~as minus the sum of the transition intensities of the transitions out from state $g$. Finally, $\II$ is the $S \times S$ identity matrix. Equation~\eqref{eq:Kolm} describes a theoretical relation between the true underlying transition intensities and transition probabilities. The product is a so called product integral~\citep{ABGK} when the transition intensities are continuous. We already have estimates of all the transition intensities. If we gather these in a matrix and plug them in equation~\eqref{eq:Kolm}, we get \begin{equation}\label{eq:AJ} \hat{\PP}(s,t) = \prod_{s < u \leq t} \left( \II + d\hat{\LLambda}(u) \right) \end{equation} as an estimate of the transition probabilities. This estimator is called the Aalen-Johansen estimator, and it is implemented in \probtrans. By working with matrices, we immediately get all the transition probabilities from all the starting states $g$ to all the receiving states $h$ in one go. When we fix $s$, we can calculate all these transition probabilities by forward matrix multiplications using the simple recursive relation \[ \hat{\PP}(s,t+) = \hat{\PP}(s,t) \cdot \left( \II + d\hat{\LLambda}(t+) \right)\ . \] \citet{ABGK} and \citet{deW} also describe recursive formulas for the covariance matrix of $\hat{\PP}(s,t)$, with and without covariates, which are implemented in \mstate. Let us see all this theory in action and let us recreate Figure~15 of \tut. For this we need to calculate transition probabilities for a baseline patient, based on the Markov PH model. We thus use \Robject{msf2} as input for \probtrans. By default, \probtrans uses forward prediction, which means that $s$ is kept fixed and $t>s$. The argument \Rfunarg{predt} specifies either $s$ or $t$. In this case (forward prediction) it specifies $s$. From version 0.2.3 on, \probtrans no longer needs a \Rfunarg{trans} argument, but takes that from the \Ritem{trans} item of the \Rclass{msfit} object. <>= pt <- probtrans(msf2, predt=0) @ The result of \probtrans is a \Rclass{probtrans} object, which is a list, where item \Ritem{[[i]]} contains predictions from state $i$. Each item of the list is a data frame with \Rcolumn{time} containing all event time points, and \Rcolumn{pstate1}, \Rcolumn{pstate2}, etc the probabilities of being in state 1, 2, etc, and finally \Rcolumn{se1}, \Rcolumn{se2} etc the standard errors of these estimated probabilities. The item \Ritem{[[3]]} contains predictions $\hat{P}_{3h}(0,t)$ (we chose $s=0$) starting from the RelDeath state, which is absorbing. <>= head(pt[[3]]) tail(pt[[3]]) @ We see that these prediction probabilities are not so interesting; the probabilities are all 0 or 1, and, since there is no randomness, all the SE's are 0. Item \Ritem{[[2]]} contains predictions $\hat{P}_{2h}(0,t)$ from state 2. It is easier to use the \Rfunction{summary} method for \Rclass{probtrans} objects. The user may specify a \Rfunarg{from} argument, specifying from which state the predictions are to be printed. The \Rfunction{summary} method prints a selection, the \Rfunction{head} and \Rfunction{tail} by default unless there are fewer than 12 time points. When \Rfunarg{complete} is set to \TRUE, predictions for all time points are printed. If the \Rfunarg{from} argument is missing in the function call, then predictions from all states are printed. <>= summary(pt, from=2) @ From state 2 it is only possible to visit state 3 or to remain in state 2. The probability of going to state 1 is 0. The predictions $\hat{P}_{1h}(0,t)$ from state 1 in \Ritem{[[1]]} are perhaps of most interest here. <>= summary(pt, from=1) @ But we see that we do not have enough information to create Figure 15 of \tut, since the probability of the relapse/death state (\Rcolumn{pstate3}) does not distinguish between relapse/death before or after \PR. The remedy is actually easy in this case. Consider a different \msm with two RelDeath states, the first one (state 3) after \PR, the second one (state 4) without \PR. The transition matrix of this \msm is defined as <>= tmat2 <- transMat(x=list(c(2,4),c(3),c(),c())) tmat2 @ The \msm has four states and the same three transitions as before. If we apply \probtrans to this new \msm with the same estimated cumulative hazards and standard errors as before, we get exactly what we want. Thus, we just have to call \probtrans with the old \Robject{msf2} and the new \Robject{tmat2}. From version 0.2.3 on, since the transition matrix is in the \Rclass{msfit} object, we just need to replace the \Ritem{trans} item of \Robject{msf2} by \Robject{tmat2}. In the elements of the resulting lists, \Rcolumn{pstate3} will indicate the probability of relapse/death after \PR and \Rcolumn{pstate4} the probability of relapse/death without \PR. <>= msf2$trans <- tmat2 pt <- probtrans(msf2, predt=0) summary(pt, from=1) @ The reader may check that the \Rcolumn{pstate3} and \Rcolumn{pstate4} probabilities of this new Aalen-Johansen estimator sum up to the \Rcolumn{pstate3} probability of the result of the previous call to \probtrans, and that the \Rcolumn{pstate1} and \Rcolumn{pstate2} probabilities are unchanged. Figure~\ref{fig:fig15} contains a plot of \Robject{pt1}. For this we use the \Rfunction{plot} method for \Rclass{probtrans} objects. <>= plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) @ \begin{figure}[h!] \centering <>= plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) @ \caption{Stacked prediction probabilities at $s=0$ for a reference patient. PR stands for \PR} \label{fig:fig15} \end{figure} The argument \Rfunarg{from} determines from which state the transition probabilities are to be plotted. The default is from state 1, which is what we want, so the \Rfunarg{from} argument is omitted here. The default \Rfunarg{type} of the \Rfunction{plot} method for \Rclass{probtrans} objects is a "stacked" plot, for which the difference between two adjacent lines represents the probability of being in a state. The argument \Rfunarg{ord} specifies the order of the states of which the probabilities are stacked. The present order, 2, 3, 4, 1, allows states 2 and 3 to be combined visually (states with \PR) and states 3 and 4 (death states). Other plot types are "filled", which is like "stacked", but uses colors to fill the space between adjacent lines, "single", which simply plots the transition probabilities as different lines in a single plot, and "separate", which uses separate plots for the transition probabilities. To obtain the predictions $\hat{P}_{1h}(s,t)$ for $s=0.5$, which are plotted in Figure 16 of \tut, we simply change the value of \Rfunarg{predt} in the call to \probtrans. <>= pt <- probtrans(msf2, predt=0.5) summary(pt, from=1) @ The result now contains only time points $t \geq 0.5$. Figure~\ref{fig:fig16} contains a plot of \Robject{pt1}. <>= plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) @ \begin{figure} \centering <>= plot(pt,ord=c(2,3,4,1),lwd=2, xlab="Years since transplant",ylab="Prediction probabilities",cex=0.75, legend=c("Alive in remission, no PR","Alive in remission, PR", "Relapse or death after PR","Relapse or death without PR")) @ \caption{Stacked prediction probabilities at $s=0.5$ for a reference patient} \label{fig:fig16} \end{figure} Figure 17 of \tut distinguishes between three patients, one being the good old (or rather young) reference patient, for which we have already calculated the probabilities, one for a patient in the age category 20-40, and one for a patient older than 40. To obtain prediction probabilities for the latter two patients as well, we have to repeat part of the calculations, changing only the value of age in the \Robject{newdata} data frame. <>= msf2$trans <- tmat msf.20 <- msf2 # copy msfit result for reference (young) patient newd <- newd[,1:5] # use the basic covariates of the reference patient newd2 <- newd newd2$age <- 1 newd2$age <- factor(newd2$age,levels=0:2,labels=levels(ebmt3$age)) attr(newd2, "trans") <- tmat class(newd2) <- c("msdata","data.frame") newd2 <- expand.covs(newd2,covs[1:4],longnames=FALSE) newd2$strata=c(1,2,2) newd2$pr <- c(0,0,1) msf.2040 <- msfit(c2, newdata=newd2, trans=tmat) newd3 <- newd newd3$age <- 2 newd3$age <- factor(newd3$age,levels=0:2,labels=levels(ebmt3$age)) attr(newd3, "trans") <- tmat class(newd3) <- c("msdata","data.frame") newd3 <- expand.covs(newd3,covs[1:4],longnames=FALSE) newd3$strata=c(1,2,2) newd3$pr <- c(0,0,1) msf.40 <- msfit(c2, newdata=newd3, trans=tmat) pt.20 <- probtrans(msf.20,predt=0) # original young (<= 20) patient pt.201 <- pt.20[[1]]; pt.202 <- pt.20[[2]] pt.2040 <- probtrans(msf.2040,predt=0) # patient 20-40 pt.20401 <- pt.2040[[1]]; pt.20402 <- pt.2040[[2]] pt.40 <- probtrans(msf.40,predt=0) # patient > 40 pt.401 <- pt.40[[1]]; pt.402 <- pt.40[[2]] @ The 5-years transition probabilities $P_{13}(0,5)$ and $P_{23}(0,5)$ are estimated as 0.30275 and 0.26210 respectively. <>= pt.201[488:489,] # 5 years falls between 488th and 489th time point pt.202[488:489,] # 5-years probabilities @ Figure~\ref{fig:Fig17} shows relapse-free survival probabilities without distinction between before or after \PR, so we can use the first transition matrix \Robject{tmat}. The probabilities we want are $1-\hat{P}_{13}(0,t)$ and $1-\hat{P}_{23}(0,t)$, the first one conditioning on being in state 1 (transplantation, i.e.~no PR), the second in being in state 2 (PR). <>= plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.425,1),type="s",lwd=2,col="red",xlab="Years since transplant",ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend(6,1,c("no PR","PR"),lwd=2,lty=1:2,xjust=1,bty="n") legend("topright",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") @ \begin{figure} \centering <>= plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.4,1),type="s",lwd=2,col="red",xlab="Years since transplant",ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend(6,1,c("no PR","PR"),lwd=2,lty=1:2,xjust=1,bty="n") legend("topright",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") @ \caption{Predicted relapse-free survival probabilities for three patients in different age categories, given platelet recovery (dashed) and given no \PR (solid). The time of prediction was at transplant (note: in \tut this was at 1 month after transplant).} \label{fig:Fig17} \end{figure} It is also possible to do prediction with a fixed horizon. This should not be understood as attempting to predict the past. It means that in our prediction probabilities $P_{gh}(s,t)$, we fix $t$, a time horizon, and we want to study how $P_{gh}(s,t)$ changes as more and more information on a patient becomes available. From a computational point of view this just means that the order of the matrix multiplication in~\eqref{eq:AJ} is reversed. We will plot $1-\hat{P}_{13}(s,5)$ and $1-\hat{P}_{23}(s,5)$, the 5-years relapse-free survival probabilities given that the patient is in state 1 (no PR) and in state 2 (PR), respectively, for the same three patients as before. <>= pt.20 <- probtrans(msf.20,direction="fixedhorizon",predt=5) pt.201 <- pt.20[[1]]; pt.202 <- pt.20[[2]] head(pt.201); head(pt.202) @ Here item \Ritem{[[1]]} gives estimates $\hat{P}_{1h}(s,5)$ and \Ritem{[[2]]} gives estimates $\hat{P}_{2h}(s,5)$. For item \Ritem{[[g]]}, the column \Rcolumn{time} gives the different values of $s$ and \Rcolumn{pstate1} etc give the estimated probabilities of being in state 1 etc at 5 years, conditional on being in state $g$ at time $s$. In \Robject{pt.201} we recognize at \Rcolumn{time} ($s$)=0) 0.30275 as $\hat{P}_{1h}(0,5)$ and in \Robject{pt.202} we see 0.26210 as $\hat{P}_{2h}(0,5)$. The backward transition probabilities for the other two patients are calculated similarly. <>= pt.2040 <- probtrans(msf.2040,direction="fixedhorizon",predt=5) # patient 20-40 pt.20401 <- pt.2040[[1]]; pt.20402 <- pt.2040[[2]] pt.40 <- probtrans(msf.40,direction="fixedhorizon",predt=5) # patient > 40 pt.401 <- pt.40[[1]]; pt.402 <- pt.40[[2]] @ As mentioned before, in $s=0$, these probabilities are the same as the five-years probabilities of Figure~\ref{fig:Fig17}, and as $s$ approaches 5, the probabilities approach 1, since both $\hat{P}_{13}(s,5)$ and $\hat{P}_{23}(s,5)$ approach 0. Figure~\ref{fig:new} shows 5-years relapse-free survival probabilities, both with and without \PR, with the prediction time $s$ varying. <>= plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.425,1),type="s", lwd=2,col="red",xlab="Years since transplant", ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend("topleft",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") legend(1,1,c("no PR","PR"),lwd=2,lty=1:2,bty="n") title(main="Backward prediction") @ \begin{figure} \centering <>= plot(pt.201$time,1-pt.201$pstate3,ylim=c(0.425,1),type="s", lwd=2,col="red",xlab="Prediction time", ylab="Relapse-free survival") lines(pt.20401$time,1-pt.20401$pstate3,type="s",lwd=2,col="blue") lines(pt.401$time,1-pt.401$pstate3,type="s",lwd=2,col="green") lines(pt.202$time,1-pt.202$pstate3,type="s",lwd=2,col="red",lty=2) lines(pt.20402$time,1-pt.20402$pstate3,type="s",lwd=2,col="blue",lty=2) lines(pt.402$time,1-pt.402$pstate3,type="s",lwd=2,col="green",lty=2) legend("topleft",c("<=20","20-40",">40"),lwd=2,col=c("red","blue","green"),bty="n") legend(1,1,c("no PR","PR"),lwd=2,lty=1:2,bty="n") title(main="Backward prediction") @ \caption{Predicted probabilities of 5-years relapse-free survival, conditional on being alive without relapse with (PR) and without \PR (no PR). Patients in three age categories.} \label{fig:new} \end{figure} \section{Competing risks}\label{sec:comprisk} The data used in Section 3 of \tut is available in \mstate under the name \Robject{aidssi}. See the help file for more information. <>= data(aidssi) si <- aidssi # Just a shorter name head(si) table(si$status) @ To prepare data in long format, it is possible to use \msprep. In this case there is not a huge advantage in using \msprep; the long data may just as easily be prepared directly. Nevertheless we will illustrate the use of \msprep to obtain data in long format. The function \Rfunction{trans.comprisk} prepares a transition matrix for \crs models. The first argument is the number of causes of failure; in the \Rfunarg{names} argument a character vector of length three (the total number of states in the \msm including the failure-free state) may be given. The transition matrix has three states with stte 1 being the failure-free state and the subsequent sttes representing the different causes of failure. <>= tmat <- trans.comprisk(2,names=c("event-free","AIDS","SI")) tmat @ Now follows the actual call to \msprep. <>= si$stat1 <- as.numeric(si$status==1) si$stat2 <- as.numeric(si$status==2) silong <- msprep(time=c(NA,"time","time"),status=c(NA,"stat1","stat2"),data=si, keep="ccr5",trans=tmat) @ We can use \events to check whether the number of events from original data (\Robject{si}) corresponds with long data. <>= events(silong) @ For the regression analyses to be performed later we add transition-specific covariates. In the context of \crs one could call them cause-specific covariates. Since the factor levels of CCR5 are quite short we keep the default setting (\TRUE) of \Rfunarg{longnames}. <>= silong <- expand.covs(silong,"ccr5") silong[1:8,] # shows the first four patients in long format, as in tutorial @ To illustrate the fact that naive Kaplan-Meiers are biased estimators of the probabilities of failing from the different causes of failure, we just make use of the functions in the \Rpackage{survival} package. I am using \coxph below, probably this could be done quicker. <>= c1 <- coxph(Surv(time,status) ~ 1, data=silong, subset = (trans==1), method="breslow") c2 <- coxph(Surv(time,status) ~ 1, data=silong, subset = (trans==2), method="breslow") h1 <- survfit(c1) h1 <- data.frame(time=h1$time,surv=h1$surv) h2 <- survfit(c2) h2 <- data.frame(time=h2$time,surv=h2$surv) @ These naive Kaplan-Meier curves are shown in Figure~\ref{fig:Fig2} (Figure 2 in \tut). The Kaplan-Meier estimate of AIDS is plotted as a survival curve, while that of SI appearance is shown as a distribution function. There is some extra code to chop the time at 13 years. This was just done to make the picture prettier. <>= idx1 <- (h1$time<13) # this restricts the plot to the first 13 years plot(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2) text(8,0.71,adj=0,"AIDS") text(8,0.32,adj=0,"SI") @ \begin{figure} \centering <>= idx1 <- (h1$time<13) # this restricts the plot to the first 13 years plot(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2) text(8,0.71,adj=0,"AIDS") text(8,0.32,adj=0,"SI") @ \caption{Estimated survival curve for AIDS and probability of SI appearance, based on the naive Kaplan-Meier estimator.} \label{fig:Fig2} \end{figure} Cumulative incidence functions can be computed using the function \Cuminc. It takes as main arguments \Rfunarg{time} and \Rfunarg{status}, which can be provided as vectors <>= ci <- Cuminc(time=si$time, status=si$status) @ or, alternatively, as column names representing time and status, along with a \Rfunarg{data} argument containing these column names. <>= ci <- Cuminc(time="time", status="status", data=aidssi) @ The result is a data frame containing the failure-free probabilities (\Rcolumn{Surv}) and the \ci functions with their standard errors. Other arguments allow to specify the codes for the causes of failure and a group identifier. <>= head(ci); tail(ci) @ The \ci functions just obtained can be used to reproduce Figure 3 of \tut. The plots are shown in Figure~\ref{fig:Fig3}. <>= idx0 <- (ci$time<13) plot(c(0,ci$time[idx0],13),c(1,1-ci$CI.1[idx0],min(1-ci$CI.1[idx0])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx1 <- (h1$time<13) lines(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s",lwd=2,col=8) lines(c(0,ci$time[idx0],13),c(0,ci$CI.2[idx0],max(ci$CI.2[idx0])),type="s",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2,col=8) text(8,0.77,adj=0,"AIDS") text(8,0.275,adj=0,"SI") @ \begin{figure} \centering <>= idx0 <- (ci$time<13) plot(c(0,ci$time[idx0],13),c(1,1-ci$CI.1[idx0],min(1-ci$CI.1[idx0])),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) idx1 <- (h1$time<13) lines(c(0,h1$time[idx1],13),c(1,h1$surv[idx1],min(h1$surv[idx1])),type="s",lwd=2,col=8) lines(c(0,ci$time[idx0],13),c(0,ci$CI.2[idx0],max(ci$CI.2[idx0])),type="s",lwd=2) idx2 <- (h2$time<13) lines(c(0,h2$time[idx2],13),c(0,1-h2$surv[idx2],max(1-h2$surv[idx2])),type="s",lwd=2,col=8) text(8,0.77,adj=0,"AIDS") text(8,0.275,adj=0,"SI") @ \caption{Estimates of probabilities of AIDS and SI appearance, based on the naive Kaplan-Meier (grey) and on cumulative incidence functions (black).} \label{fig:Fig3} \end{figure} The stacked plots of Figure 4 of \tut are shown in Figure~\ref{fig:Fig4}. <>= idx0 <- (ci$time<13) plot(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]+ci$CI.2[idx0]),type="s",lwd=2) text(13,0.5*max(ci$CI.1[idx0]),adj=1,"AIDS") text(13,max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"SI") text(13,0.5+0.5*max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"Event-free") @ \begin{figure} \centering <>= idx0 <- (ci$time<13) plot(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]),type="s", xlim=c(0,13),ylim=c(0,1),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci$time[idx0]),c(0,ci$CI.1[idx0]+ci$CI.2[idx0]),type="s",lwd=2) text(13,0.5*max(ci$CI.1[idx0]),adj=1,"AIDS") text(13,max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"SI") text(13,0.5+0.5*max(ci$CI.1[idx0])+0.5*max(ci$CI.2[idx0]),adj=1,"Event-free") @ \caption{Cumulative incidence curves of AIDS and SI appearance. The cumulative incidence functions are stacked; the distances between two curves represent the probabilities of the different events.} \label{fig:Fig4} \end{figure} \subsection*{Regression} The section on regression in \tut already shows some \R code and occasional output. Because of the fact that I used \msprep to prepare the long data, occasionally there will be very small differences with the code in \tut. We start with regression on cause-specific hazards. Using the original dataset, we can apply ordinary Cox regression for cause 1 (AIDS), taking only the AIDS cases as events. This is done by specifying \Rcode{status==1} below (observations with status=0 (true censorings) and status=2 (SI) are treated as censorings). Similarly for cause 2 (SI appearance), where \Rcode{status==2} indicates that only failures due to SI appearance are to be treated as events. <>= coxph(Surv(time, status == 1) ~ ccr5, data = si) # AIDS coxph(Surv(time, status == 2) ~ ccr5, data = si) # SI appearance @ The same analysis can be performed using the long format dataset \Robject{silong} in several ways. For instance, as separate Cox regressions. <>= coxph(Surv(time,status) ~ ccr5, data=silong, subset = (trans==1), method="breslow") coxph(Surv(time,status) ~ ccr5, data=silong, subset = (trans==2), method="breslow") @ And in a single analysis, using the expanded covariates. <>= coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong) @ The same model, but now using a covariate by cause interaction. <>= coxph(Surv(time, status) ~ ccr5 * factor(trans) + strata(trans), data = silong) @ In the model below we assume that the effect of CCR5 on the two cause-specific hazards is equal. The significant effect of the interaction in the model we just saw indicates that this is not a good idea. But, again, this is just for educational purposes. <>= coxph(Surv(time, status) ~ ccr5 + strata(trans), data = silong) @ There are two alternative ways yielding the same result. First, we can actually leave out the \Rfunarg{strata} term. <>= coxph(Surv(time, status) ~ ccr5, data = silong) @ Second, since the \Rfunarg{strata} term is not needed we can use \Robject{si}. <>= coxph(Surv(time, status != 0) ~ ccr5, data = si) @ Note: the actual estimated baseline hazards may be different, whether or not the strata term is used. Assuming that baseline hazards for AIDS and SI are proportional (this is generally not a realistic assumption by the way, but just for illustration purposes). <>= coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + factor(trans), data = silong) @ Or, again using covariate by cause (transition) interaction. <>= coxph(Surv(time, status) ~ ccr5 * factor(trans), data = silong) @ Note that, even though patients are replicated in the long format, it is not necessary to use robust standard errors. Any of the previous analyses with the \Robject{silong} dataset gives identical results when a \Rcode{cluster(id)} term is added. For instance, <>= coxph(Surv(time, status) ~ ccr5 * factor(trans) + cluster(id), data = silong) @ gives the same result as before. So far in the regression context we have just used the \coxph function of the \survival package. In order to obtain predicted cumulative incidences, \msprep is useful. First let us store our analysis with separate covariate effects for the two causes. <>= c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong, method="breslow") @ If we want the predicted cumulative incidences for an individual with CCR5 wild-type (WW), we make a \Rfunarg{newdata} data frame containing the (transition-specific) covariate values for each of the transitions for the individual of interest. Then we apply \msfit as illustrated earlier in the context of \msms. <>= WW <- data.frame(ccr5WM.1=c(0,0),ccr5WM.2=c(0,0),trans=c(1,2),strata=c(1,2)) msf.WW <- msfit(c1, WW, trans=tmat) @ And finally, to obtain the \cis we apply \probtrans. Item \Ritem{[[1]]} is selected because the prediction starts from state 1 (event-free) at time $s=0$. <>= pt.WW <- probtrans(msf.WW, 0)[[1]] @ Similarly for an individual with the CCR5 mutant (WM) genotype. <>= WM <- data.frame(ccr5WM.1=c(1,0),ccr5WM.2=c(0,1),trans=c(1,2),strata=c(1,2)) msf.WM <- msfit(c1, WM, trans=tmat) pt.WM <- probtrans(msf.WM, 0)[[1]] @ We now plot these \ci curves for AIDS (\Rcolumn{pstate2}) and SI appearance (\Rcolumn{pstate3}), for wild-type (WW) and mutant (WM) in Figure~\ref{fig:Fig5} (Figure 5 in \tut). <>= idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) ## AIDS plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate2[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.2,0.345,"WW",adj=0,cex=0.75) text(9.2,0.125,"WM",adj=0,cex=0.75) ## SI appearance plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.5,0.31,"WW",adj=0,cex=0.75) text(7.5,0.245,"WM",adj=0,cex=0.75) @ \setkeys{Gin}{width=0.45\textwidth} \begin{figure} \centering <>= idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) ## AIDS plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate2[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.2,0.345,"WW",adj=0,cex=0.75) text(9.2,0.125,"WM",adj=0,cex=0.75) @ <>= ## SI appearance plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.5,0.31,"WW",adj=0,cex=0.75) text(7.5,0.245,"WM",adj=0,cex=0.75) @ \caption{Cumulative incidence functions for AIDS (left) and SI appearance (right), for wild-type (\texttt{WW}) and mutant (\texttt{WM}) CCR5 genotype, based on a proportional hazards model on the cause-specific hazards.} \label{fig:Fig5} \end{figure} \setkeys{Gin}{width=0.65\textwidth} The illustration of the phenomenon that the same cause-specific hazard ratio may have different effects on the cumulative incidences (Figure 7 in \tut) may be performed as well, by replacing the appropriate parts of the cumulative hazard of AIDS (\Rcolumn{trans}=1), and calling \probtrans. We are interested in SI appearance and adjust the hazards of the competing risk (AIDS) while keeping the remainder the same (Figure 7 in \tut). The result is shown in Figure~\ref{fig:Fig7}. We multiply the baseline hazard of AIDS with factors (\Robject{ff} = 0, 0.5, 1, 1.5, 2, 4). <>= ffs <- c(0,0.5,1,1.5,2,4) newmsf.WW <- msf.WW newmsf.WM <- msf.WM par(mfrow=c(2,3)) for (ff in ffs) { # WW newmsf.WW$Haz$Haz[newmsf.WW$Haz$trans==1] <- ff*msf.WW$Haz$Haz[msf.WW$Haz$trans==1] pt.WW <- probtrans(newmsf.WW, 0, variance=FALSE)[[1]] # WM newmsf.WM$Haz$Haz[newmsf.WM$Haz$trans==1] <- ff*msf.WM$Haz$Haz[msf.WM$Haz$trans==1] pt.WM <- probtrans(newmsf.WM, 0, variance=FALSE)[[1]] # Plot idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.52),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main=paste("Factor =",ff)) } par(mfrow=c(1,1)) @ \begin{figure} \centering <>= ### Multiply baseline hazard of AIDS with factors (ff) ### of ff = 0, 0.5, 1, 1.5, 2, 4 ffs <- c(0,0.5,1,1.5,2,4) newmsf.WW <- msf.WW newmsf.WM <- msf.WM par(mfrow=c(2,3)) for (ff in ffs) { # WW newmsf.WW$Haz$Haz[newmsf.WW$Haz$trans==1] <- ff*msf.WW$Haz$Haz[msf.WW$Haz$trans==1] pt.WW <- probtrans(newmsf.WW, 0, variance=FALSE)[[1]] # WM newmsf.WM$Haz$Haz[newmsf.WM$Haz$trans==1] <- ff*msf.WM$Haz$Haz[msf.WM$Haz$trans==1] pt.WM <- probtrans(newmsf.WM, 0, variance=FALSE)[[1]] # Plot idx1 <- (pt.WW$time<13) idx2 <- (pt.WM$time<13) plot(c(0,pt.WW$time[idx1]),c(0,pt.WW$pstate3[idx1]),type="s",ylim=c(0,0.52),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,pt.WM$time[idx2]),c(0,pt.WM$pstate3[idx2]),type="s",lwd=2,col=8) title(main=paste("Factor =",ff)) } par(mfrow=c(1,1)) @ \caption{Cumulative incidence functions for Si appearance, for CCR5 wild-type \texttt{WW} (black) and mutant \texttt{WM} (grey). The baseline hazard of AIDS was multiplied with different factors, while keeping everything else the same.} \label{fig:Fig7} \end{figure} Fine and Gray regression on cumulative incidence functions is not implemented in \mstate, but in the \R package \Rpackage{cmprsk}. Since our main purpose here is illustration of \mstate, we just give the code and the output. <>= library(cmprsk) sic <- si[!is.na(si$ccr5),] ftime <- sic$time fstatus <- sic$status cov <- as.numeric(sic$ccr5)-1 # for failures of type 1 (AIDS) z1 <- crr(ftime,fstatus,cov) z1 # for failures of type 2 (SI) z2 <- crr(ftime,fstatus,cov,failcode=2) z2 @ The result (Figure 8 in \tut) is shown in Figure~\ref{fig:Fig8}. <>= z1.pr <- predict(z1,matrix(c(0,1),2,1)) # this will contain predicted cum inc curves, both for WW (2nd column) and WM (3rd) z2.pr <- predict(z2,matrix(c(0,1),2,1)) # Standard plots, not shown par(mfrow=c(1,2)) plot(z1.pr,lty=1,lwd=2,color=c(8,1)) plot(z2.pr,lty=1,lwd=2,color=c(8,1)) par(mfrow=c(1,1)) ## AIDS n1 <- nrow(z1.pr) # remove last jump plot(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,2]),type="s",ylim=c(0,0.5), xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,3]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.14,"WM",adj=0,cex=0.75) ## SI appearance n2 <- nrow(z2.pr) # again remove last jump plot(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,2]),type="s",ylim=c(0,0.5), xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,3]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.28,"WW",adj=0,cex=0.75) text(7.9,0.31,"WM",adj=0,cex=0.75) @ \setkeys{Gin}{width=0.45\textwidth} \begin{figure} \centering <>= z1.pr <- predict(z1,matrix(c(0,1),2,1)) # this will contain predicted cum inc curves, both for WW (2nd column) and WM (3rd) z2.pr <- predict(z2,matrix(c(0,1),2,1)) ## AIDS n1 <- nrow(z1.pr) # remove last jump plot(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,2]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z1.pr[-n1,1]),c(0,z1.pr[-n1,3]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.14,"WM",adj=0,cex=0.75) @ <>= ## SI appearance n2 <- nrow(z2.pr) # again remove last jump plot(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,2]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,z2.pr[-n2,1]),c(0,z2.pr[-n2,3]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.28,"WW",adj=0,cex=0.75) text(7.9,0.31,"WM",adj=0,cex=0.75) @ \caption{Cumulative incidence functions for AIDS (left) and SI appearance (right), for CCR5 wild-type \texttt{WW} and mutant \texttt{WM}, based on the Fine and Gray model.} \label{fig:Fig8} \end{figure} To judge the "fit" of the cause-specific and Fine \& Gray regression models we estimate cumulative incidence curves nonparametrically, i.e., for two subgroups of WW and WM CCR5-genotypes. Here we can use the \Rfunarg{group} argument of \Cuminc. <>= ci <- Cuminc(si$time,si$status,group=si$ccr5) ci.WW <- ci[ci$group=="WW",] ci.WM <- ci[ci$group=="WM",] @ We show these nonparametric estimates in Figure~\ref{fig:Fig9} (Figure 9 in \tut). <>= idx1 <- (ci.WW$time<13) idx2 <- (ci.WM$time<13) # AIDS plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.1[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.1[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.11,"WM",adj=0,cex=0.75) # SI appearance plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.2[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.32,"WW",adj=0,cex=0.75) text(7.9,0.245,"WM",adj=0,cex=0.75) @ \begin{figure} \centering <>= idx1 <- (ci.WW$time<13) idx2 <- (ci.WM$time<13) # AIDS plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.1[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.1[idx2]),type="s",lwd=2,col=8) title(main="AIDS") text(9.3,0.35,"WW",adj=0,cex=0.75) text(9.3,0.11,"WM",adj=0,cex=0.75) @ <>= # SI appearance plot(c(0,ci.WW$time[idx1]),c(0,ci.WW$CI.2[idx1]),type="s",ylim=c(0,0.5),xlab="Years from HIV infection",ylab="Probability",lwd=2) lines(c(0,ci.WM$time[idx2]),c(0,ci.WM$CI.2[idx2]),type="s",lwd=2,col=8) title(main="SI appearance") text(7.9,0.32,"WW",adj=0,cex=0.75) text(7.9,0.245,"WM",adj=0,cex=0.75) @ \caption{Non-parametric cumulative incidence functions for AIDS (left) and SI appearance (right), for CCR5 wild-type \texttt{WW} and mutant \texttt{WM}.} \label{fig:Fig9} \end{figure} \setkeys{Gin}{width=0.65\textwidth} %\section{Discussion}\label{sec:discussion} %\setcounter{equation}{0} %\markright{} \bibliographystyle{agsm} \bibliography{Tutorial} \end{document} mstate/inst/doc/Tutorial.pdf0000644000176200001440000161433314644047336015615 0ustar liggesusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 5205 /Filter /FlateDecode /N 88 /First 709 >> stream xœÍ\]s·±}¿¿o‘*¥ÙÁ7J¥J’#Û±d+’lË×ñʉ{Cr™å2¶ï¯¿ç –\’K.ë’ Î`€Fwè>U¢ZȾFHÓ +´‹Â ã´ðÂõAá­QDPÿ””B*å©=^@ÂJ B:‰rVHïñÝ Õ÷/B)ÖB‡ü(”‹… /R¨ÈÂJè^㯄QXhÖS`Ë8”wB[w6=ê¡ «(t] 1z‡RéðQ £"ˆiat$a¬& (AD&Д l<Ùx¶G£Tˆd¦VáÅ(a5^ŒÖ 1FX<€¨°ÎPkÂzÔ7^ØÀúAØá èň—^8êÚJü ÈTÂApNƒ_k„3ß­pN’¨€˜h ]¡\‹Îè‘i#:Ä]/‚LÄD°=þ*üEç ó‚Eagð×£²±Èw"z ÉÞ´Ž>‘ ÕÐéRt%Z—è'R·’¸g'[6‰^Ö1âcEA~6–9èSQIëÀ?zI:yv¿B•ÊjË zè7€rÐ`œc+ ³ÊÁ/(‡|<ƒA°8ŽP_@P¢ôÿõç?‹Ùóåéz8]ŸCP é7böj8\ÌŸ-? æØh;6A½CÅŸÄìõ|… ñ©ø›á|y±:@@åœw¿ž ,õiùKjã3Ð?¾ÿá¿©oLÁýéÅñ1hŽåžÍW¯W˃sj!ÿëéÁòpqú‰úI/«ó5ËqìÏ^€ùg™×'F<Á @ßü”?½š¯W‹$H×CIgzB™—óJˉÙ×óðýjm„"[déí°ÙëÏ^ˆÙ—'íYb[ÌÞ^|X')¶.Ò³u1û~q¸>:g'“÷"äòßÐÞW‹Ãóª RþQ2ÿÑùO®¨sÏLªú²¦Ï õ§"+üÑÁb=tï.ÖÁ¢˜}¾|·Lì>[®‡ÕØ·’4Ÿ§™5ò¤£ø”VyÙyLMUgzZÝaºs*uºW,_¥¹8ýgaèééérý[0¤µíœWC6všìî …oß|Y ¬ËÓœõèh½>;ÿÓlöi±>ºøÐ,OfGgëõ°šœ¯çëáñ-ŒË+ŒÃ tËú¾óŽF:vŒÃØuôwÓäùØíÔNª¬£}ƒ#˜ç.Цh¤úàÖÇ(¸K@»ÅÇôôÿ£—©Ï­Ÿ‘Phñ3PûCû½ág&AÕeAåg6©†¤Š@áÎTÒ3!ýƒ ÙoÒÅKBºpYH ÙVÈ>ÉH4¨ï!ãìƒ篑Ñ]–ÑÞ"㙄$.ÞOH€‡Ò´B>¨­¤µ^Ç„€O#RwÆX®“v/K¹¯E”q‹­“{Ú:Õ_gë¶ q«‰Ç³a¹›p$j_I® š9 /ÏuelZm(]3^¹ïï4HªÌóà3@¶3àNì¨jÇ%áî>*›ŽÓûvœ½®ãžÍχ,ôwϾ~öìë?>õêK€¦»ìè{>ÎV‹³õrÅØ7ÑÛtœ*…y·üötQ00ömØÔò†Ã˜øùæÙ»·?ü ü¼ýa“Ÿþ ;e`OìôîfvìµìØxïN€êöí踃­ñôB™Í»ÂÌý‡²¿›„Ú\QËÛÇòç{þÅ7ÇØy³9tôÕ¡Ó_:Ñܧ,–£.ôP…³Ì3ªX;ÙÉ´Rätg£¬]óRÝ‘ºv¬‘>Ò·Y²Wµù´gMÒ“ ÓÓOèkEIQÓÓ.©ìÛnݹÚDS²=·´7å4…§÷¬ƒœn-ª¸žJ¦QŸÓNNÓDoÆx.ÑŒÙv^äÎJ­ù:‹îvÔ§rxö^r´ç>’T0ßÐfåÉ–Ït¸µÏ!Uß³ˆêI ²ç]LS-`<+åIŽ£'±ÀQCnŠãݹ<MòÚ´QYž WÓ¢ývžå¡Ä¡uuŽl-«)S¦T’—ä*@1<­ Ng4Užƒ–]:’º€J &R¢4'¢‡»Bœ«I‡. uÑ1Í›ÊA~«dÚKdÓ$A‘›ç&¾º ™r:“´Î]JÇ#*œ÷:QLýcû[d< ‚ržüëÔ±úÌåœP<Á“ =i$kÀ½>jÜQËV2ßqŒöÅ&í¢@¤ž“Ë_|ü8ÀåÐÅü˜– ç:9¢léë*åèkøQÅ~2ø™ÖÕ´¿ô÷÷ö;r³­ÔMyw£zõï®|í'ûÃÕÞ:r4GJ ËÄqY`Ö¹¦ƒ¼YÉ#4™çD2QLHÅŠ!€;$ž pKsnYò†e Ë–5,kpgrλ9—fç–5k8Ö eÔŽ5rÂjŽÕ«9VãÉ&9öl-'lÒnÂN_I '¤‚ÙéQ9<¸Õä‘TNH/P„@^©ðTh “!$˜~5/R"$Q5y$uZ©«yd('”-’¤1•)U)Õ)5)µ)u)õ) )Mueª+S]ž”J¥LÆ4‘‘‰ŒLdd"#•ȨDF%”†Ëj8—*Swƒi¢<ª,ù$¹TY5Iò©²ðäT%¦Oòªhë›Å›«o4¶¾¾yšÞúc}ã6M_Þ ÝW^ 'žï)oé´c}3x«¼@]@¼õG+/PŸî+/’ظò’6‰*/<Ú(+/P¯–•w”•—|â²¾¡uYyá©Ë²œÅ¹­K\Å9®K`Ź®Ë’Pšó²ðÁÉ^v÷8˵*\`¶ë²[ÆY¯Uá³_«Â‚á9ЬV…X]Â9Z]â9Z ]–ùi-´.,—ÕqZ­ °"º™´&º¬9Ѫè²LKë¢uáVF—UOZ­ ŒyËÂ!­6…X!]Öáh´)8ºùÂã‰Õ·–Õ#š'm <èZEš+]VTh¶´)À^é²XA»¥máöK—5.m 0`Ú`Èt ?iÁ´-’.’.’.ž..À´iW8D'…Ø6]¶GiÔ´+ð(o9+@3¦ËIš3í ‘ê.Ã[]ØÆÝî îËÉí5¯ÿ¾MÿßÚÙ:MÜÝ Bt㙵WàÈo=lãý3þ¸7A"Å=¼¹ u ‰bW¬A¤Q‹xquü^S-v‡ TL B®¯ÉvbT¡Ýäåa–|õ¬Iû qÀJù q`ú qÀú qp(NˆÍOˆÍOˆ&ÍO^žW*/DaB¼Æ0!Í-Æâ/aB X'Ä^„8¸6!Žζ#Lˆ­Ç q€fEbDˆqbVÆYañAEaÄ„T F|P!ñAE`†÷6*Ú@]ñ¦°©ð SÙTô…)m*øâzbÅ^˜â¦B/LuS‘¦¼©À SßTÜe¥W´á²OøÀTÐÓ`*ær\¨¾ž÷Wª¯W\-˜ ©ˆË‘táÀ‘táFÃTÄ…Qk*âò¼ÅR}=Ú©ˆËó²Lõõ®".Ï5ŠÂƤ©ˆË³Š6ØNõõh§"®Àåêë¹S}=ôV†Ÿ©ˆ ãÍTÄyç¦úz¨¾žÅ ôqa@Ó,QؾKópÛ?íºÆ”ïÊw M”¿»üsºÃs¦³ÛZ }r>Waò‘Zr$¯­Q½CÇšÓ)#s—Ÿ'^ÇoºÃ°õºófl'WdÂÛÑ.%yUì¨D®$åªìƒÊq«ƒå1Û¹bÕkü¨i¼Dö£é’Ô”çÆ¹Ù8âìòF¿çדý™çeš›£hÝ8µ`ïã“’GªnatL6Ÿ“š²ýNžê^±pŠ„'¿”by‹_2¦vi£]cÚhטÉ÷`²™Ö÷ÓúcZßcLë{Œi}©A¥6vò=ìóÉ÷XÞ½«oè{;ù´n'߃Öíä{Ðz-¨ Sƒ Å‚Õìs®T³Ï‘^Í>ø¨Á…Éw'Zƒ N¥\ÐÊÕà‚¶Ì5áqMxc*(à,ª˜€¦¨Bš¢äí1Û¥[yÛÓëML´]Ÿ¶:Œûà:-‹•Àì5›ö†7sXÅwÞÝl·ÆFm ý‚Åè YÙ‚ášrù c‘:ÌÅ. ) ‹ZÍås¡üÌeùŽ7(Ó^¦MÖ.ÙfJ˜¾QÛf2f,ÜbßÌ”¼ · ˆoZh úªuˆ-Úi'’•˜²ãþ&ã{ÐàMôbƒ7¹½8Íy^Tæ¼M[ =˜ð&-@ƒ79Þ¦9¼ÉMˆoš ¼i6ð¦ÙÀ›¦âMz¹ 7‰Æ*Ú$«`“h¬bM¢± 59•+Ô$ªP“X(¶ '6 &6 &¶£BMNåXϾbüÚN5“ɪ.ݶêžrêm§Ëœn {|„—¶ñºåÉiB9·ï ¿üœ*Þ=É•sZš'=Ì‚åÝÇ“œÔ.»ÿÀ¸…y5Óªs´z´1$ñ÷ÀJ™LÜXÄÁXȤYZÈ ¦4ªl›6ÿ5’æŠ0?2l<âè¶È(`ÎöD99‡J/í·S‘ªnW”Þ~Íìæç1Mmïÿr×lÅq4 /¨¤Kð÷^PIk¡HXãþk)Û÷m"óròûY™5».k"é*ùœé;ÆN{=gÜ„D9é&$Ê6“WbLÒ"Q;íuôœŽ“Wâvöä•hZ¯dûÖ+Ùi¯Cò(Lë•ì´×YÙî»XÙî»XÙî»XÙî»XÙî»X9¡b"vßÅÖð› ¶ªÝw±5OŸt}qü™‰òÆã…•Ž~”^s®».lªîºðTH³ëbkN®óÓŠDfgÇÐÅÏËÙÿ«ån 1}QH·($\VÈæåŸV}ѽäÃjãÃj~ðÏa…ÌŠØÔÁúh5 ”|ÇQàŠÐ¾ß"t¼,ôÆÑØ­2ÓíßUf6|½ÌóÕjùs–øÃ|U†~þx8?ÏO'‹StùÉÅñzqvüë8!HEwSLÿ“c#é¸<¦ì†2JÈ6)ãÒÕÁk¦¡ÜÎ É·ôt!ÛѧŒ[>U¾J™úÛ ã¹guÃE†—‹“E:`ýè³åÁ“·ëùjýX<¢ó¯eð÷D~Ê×]/—ÊDóO¸<}öùWùëGM^úY—1ºË9‡Ã÷SXž²šF$³û+ÙŠÙr”fdxÔÄúÊÑzÊÑDÉqfÊq°ºÑüt¤gPËÇWȺv£p.ÞL¨¹¢^I¡{Q0lø¬És6œŽ¿3ã ¾ûæb}¼8E!W<"{ìŒÏ¾=êç±#kï¾ýy˜ÿ{x¾°\Δ @ìÛŽ>ǘ\VÄùôb}„÷Óá9g˜ø s býIõÊôºï{݇?öê}ÿ‡RŽu^Îß ïÅÏ‹õ‘8íÕjøˆÏ_ ¿þŒ¶ÏM0|¹×ïþú¾{qq|üa~z:€ì»£Å¹À¯_þ“³ÃlãÃw½øÇ#ÄÃ\øÇãÇéNÁáÅ+åÂ"~2–yœNÞ§ÛdæÝby˜žVó³³áóo~|žŽûÿ‰Žð)endstream endobj 90 0 obj << /Filter /FlateDecode /Length 501 >> stream xÚmSËnÛ0¼û+x’á›bN­ÝEЇÑ*§ Õ¢c"zU4ýú’"mÄFO¢Ä™ÙÙÕºZÝÜs¨ÆŒJª=0kÅ€2 Ê@Õ€§¢‚º,f?Œ®n!â”®OÏ_n˜|íÝäÝnº…HP]l†îÓ…õ®N¸ÑM/S:Ö}“dª˜[ïP,aáÏê!)1 F±¡e’ï†PNm§„LìªKЇ¾n_'›Eæé,íKé›{AÞöI¹Æšs@²ÆÙÃu ’a#Ì w¬wÑö ”¬¨ŸO•) ÁŠ”,¢=A @œ„"ÙÞ'»D¨ÛÙ{;¦F(X<ˆdèG{¬GßÙ† }" ûôü-lãvË Â‡çôÓ{J7×npý~»z¹ŒrÂ`¢yÓIì³uÍÎ{÷;jÚqr>^³hŒºgÑMö–Ûsm.›ØF@Ø¿Co³S$Ñ6á±,ùü[­‡Èû“^Œ"$åTb­õ%ƒñp¹À¾GÊ"%ù©H"˜^õZ²•¯6,ÅØ†¬òB1——w¨«]{›&VáÍ„±ÓJðqéûvîv¸oÿ» "b3•ÿª‡¹ÍSú. &ò–€lˆ¡‘Îiø+1ieFàê®Zý˜:õHendstream endobj 91 0 obj << /Type /ObjStm /Length 2691 /Filter /FlateDecode /N 88 /First 776 >> stream xœÍZ[9~ß_áGúŠï—Õh$.Ë ì @ÚÙEýé]HPwz5ûï÷ûìr•“TÒº%ÔÂØÇ§ŽÏÝÇv’R$#”T"Y¡,FN˜DòÂ+-RÑb1LB)­1èø˜?TZ²¨¶ì€œŽì€ Ñì8t2²çìt22þÙŒ ÊÎà Ê.à Êžk å=Wå 8¼à1ÏAäÊ ”# *PŽEa,qðeŠl - ¹Sè€A]+OµA'pÊ ­¨´ÚpLkK::í4!QhêFé„y6 ˆl@9zI¹…N‹b=#É*ðL×@ÁÚÙ c"Vžq”ÛDa|þ*Ád11+I¡cÑÂ$"[#¬4Y‘ªŒì„Ͷ°Œ„59¢ãˆœ„uÔ˜“ÂzÄ)a#˜RN ›<§ŒpÒb…£Ê9t!^8‘ƒp&#GálFNÂ9"C~çˆ ±'2ðœçê”uèA9€˜ò œ\¶0.9o<§¢ð!{APm.Eˆ´WPè$È´ˆ’80ôÄ)+¢¡ZàCу;xŠˆ)a º5¹S!Âéaa'H6¤¿üô“˜=[¯6"w`‹¸xÍ.ú~ ޾¯!¥-!LØÿùg1{uµ¾x³Øˆwè>}&fonÄ9¦ò"O×å»ßÿù/A9‚ìb«›OŸF´'çW$tÅÈè[]¬/—«Y²ðòêzCLX´°ÿøñúO, ÄCŸ!…ðð^Ì{‚ ‘ÙßçŸE³×‹ëõÍÕÅâ:+hWÄçŸç3÷böææÍÿ¾à÷hMù¯WîìËËÍÇël¬¢®=aõž°jWX°Û ›ÄC•S”øM¢"uTQaá;UN½#*ü}×®v×®óhES¢")Û*êÐß¶ªEUw.ª‡Dõ{¢º=Qý–¨¢"i(ÔñM¢b¨¢">ï\TÛŠÊ Vöö¨.xiD´¶ ØVLŒAÞÞǶò4ªö„œ’ñNäÒúñÒixNˆgNÄ;‘¿A—7<ß1¿ícku¢º·µIC9àݎ®:ÝÈzϦŒ>å"ت;kNÆÖ¶3H²S¬¸E¬Ù¨ªÎ¢fCÔù)&| ¶+ªÃرÅÖ¦3(ŽtTˆåIôvXlj³bhˆëN"ÕÁnÅÔª 4ÍAlíZlÙ8¬©óÈ1èm¸‘¸f!û';IÝmQð&–“XFÛFŸ¬Ur­s[2ûý·?þ½¸(_?ÿŒ‚¯[Ôº¯óÍr½z:ß,ă§ÕRÃú(È¥4RŸõë+ñà5/×—ÁÄåÍÅ‚˜Âv¶S€½]n>-øåjþåãÄo7›/7›³ºüãùõ¢¤Û_Ÿþ»Ø,/æíÞ¡{ï³»ÞÉØj+c&ùðñúÓåºæ6ºPìó'OHùRð0ÂχÕºØ3VV×Ëðtùþýâj±ânô.×nŸ—«›k§¬0 öÜ?ÅE¼_~¸¹ZtŠj|#f¿¬ß®³­¯¯.¡äwyÌß“\.ô»â¯à”[à½Áß±¼ÆÙç ›:šU€Ã›Î¹_,Wÿ©L=Z­Ö›ýoöŒ'ƒxbMœ)S+I9ym=›ç·%©[°Í`›Ÿ”pÌàÒ’^~DRø†D°Î7Å 8äËj òJx^ÛpĬd1ÔúÌY~EŒÂ0JÅ:Rô‡4ŒPcG9Œ@%ªaäùæ1ŒFÕ,§úMšz ±r…†èGÞnŒî\6°˜>¥± ‰m7ò©ƒ!/" íxáqˆ,nL') 7ù/»¤ELœ/sÁuà¾~TÕ9¤®P)ö¦þ*w–—GýW¥¯S—[`#ץᰮâg¥/… äÏDJQúe.ž«»òiËJ“nO‡*Ë1P}ÊÒ;K“J>@C/wôLÔc9-¸Æ Qi–›ˆ*§ #úei8ëI”OdM Ta#WhB³F •ÒT ©@þ౉ŸHz¥!§‘¤"ßך@&”ŸŠ÷‚›î/ûpa«ó+ñD\³uùø–èf«Ž‡4[·Çlc~Ñu¦Õ·™¢ÖGžOcPórjÉ0‚šÉ AÍ8ICP35¤!¨ ©uN õÍ1KÒ`˜(Ò`˜(ÒÀ Ëç4&ä†4&˜ ¢Lä£iñII¼@Q¼h>¯V^àÖQVVàÞQVN, VFàßQV>‰W6àï±^…Óïc½ª¥ÿGUy@D5ì•༾­0b=‰0b=Š0b=‹0"b½×edDU9às±®ð¥XWx‚ЕCÔ•EÔ•G¬—À9Htå ’tåQuå rÊ£ÆTøëŠz7Å8‰F9ÛÇ.Ö„ëQŽì¦B8J§U»©»Nå€0™š¦ôàF›z¿Ì±6Æ–ÛŠªãûb4ƒIŠ6º4U0º4_/àŠB¨H“ÃdúiÚnÏbÝ.{e ?¬DZ<Ès[CH»Ô¥¶»5YÙÀO-#Dj© Bƒ +éÎ*œ¾;åû~‘ÉÅío*.NìÄCã¼²OáÓ—×tû9MÜÏÜ;.b2ØËÜ9åöíäo&®&s«>_ÏÖÑŒù™N9ægÄh}_Í"D;æg¸¨ó35:3òœ™®mGgæóü˜ŸUþñÔ˜»£ó3×ó3Ösc~FH¸±Äên+?»¡ägmrtCräL›ÝšhòÊãÍU.`óXÏf9m_¼X~^æ[Þáòûlèâz^t;ªß <Ë¿¶Ú‚ÏìÀôYþõR #¨ÏþͺªßÎòiG>Ó$Ÿö,ÿ^ %ìβ·µ –K‡ÎrÑ‚âYöÌ”Îò//0ùeþ¡¨²tì6‡u¶/ú1•Øoç=$«Zµj«ßÖ{•%·èPpisæ*kzŠ3ꩯ zÕÔ=„Z꫃B%õUA¡Žúm~X­/f2gÿÌІendstream endobj 180 0 obj << /Filter /FlateDecode /Length 2446 >> stream xÚ½YIoãȾ÷¯0Œ(À¢kã6@è5èAOt„\fæ@“”E4E $ÕŽÿ}ÞV”(S‰äĪW¥·¿¯^•ÞmÞÜŠâíBëbs³ÙÞ$æ&±.TÆÝlʛ߽Zk­Tð¹]YŒ}·Z÷<cݵ«?6¿Ü²éVa¦2 ÔÍÚ »Œ¿ÙÕÃjíÒ,ðßœ?E·?ä-2¡éïʺ¦âñÃjmÒ w<Ýv=Æ]Å£ä\¢ÎtI±Äý0æcµ¤šMBm­ßwÈ‹ˆù¶Š¢ Ñy[.¥Áf•šà8v}7b‘èþ®îPf=Œu1ü„’Á& “ìf­my_¼“É´j¬ÛGpdjƒ¾¾ <$Ù6uÁõ:6c½fS˜ž7IPVÍÀ„ßU¤þqǪçŸW#Óó&d‚Q*Mú¦Y õþŠëàY$W۪㮝gcÇ¿ÞUmQñè|Rj {[±!ì£ø$&àÆûÃ.(аHîÁM;O);2¿8î«m™üT7 8ò¼›~/„ãàW¶Ky`µ•3¯È ¡Iý>pä~Ðvã±0èúçsÉ7këL˜ºyx‹ËðÆz /àðÂàex‘x /83²*G–º¶yæQõï¢:PáóZ8»|äÑg^Øå+àõ}žDJ^–zŠ6L‡n_ùß’qg1öæäR†Gä$ì¼Í›ª]ÿÒíòv¨Z¦Uûû|Ä¢± º ¥å+ÈIUüBV}`HÚ ±] §²v‘{E8#ú}^ß²öYä‰OÞO‚'Ó8¬& mlçŽ8Orã‚O+( B!HU4ùüˆ´” 0ôN‚øPâqK0; (€Ä逃“{\–Q õÄPj¾`è@Ïò±þŽ& “}×˨{ë†eqÉqØu¸ùi‹ø—,“y<ƒ¢hyTÓ×°Æ´t¦1¨ösµ:^ü̬HiÏ´%oáì$Ók ?`B×zñ²c{lù¬ôº,¤º3*4Yü¿S}íwΔLµ* †±¯‹‘\ ³¶*ªaÈ{™Rrá€C§²3á¬n/–½Ÿ0_´“ÊB¾ rŠ1²†l9öž‘Ä^e'<'å0ˆið„b´*¸=‡%.å+÷6>u6N=Ž^mRƯCT§Wš´8Uw5‘w,ŒGT»—YÑq­æÞžvEÉ ±w(PÊv ޲’iÌôls‡2ÃÓÃÃ(¥Ø£U‘·ŒVZg€éÜi§#T9ù‘ †pD°³f^ˆU˜ÚÉ[»q< ?Ýß?Öãîø‚\8Óîwê2î¯ûR§1tŒC]űò­Ÿr§æÆž–SÅш?ßëǶGÙFP¦¢«=_bCwêå~´b.ÂM'n Äñù@è\-y+ÆXO¦W±Û Õ x,on±éZt“ŽÃDO J¾åÞ-vt`§ÀÛpR 5 çˆï Þty Ä%‡Ä:4æUiŸœÊƒÀøæ" £vOÃ4}í nZ8 ÍÊd e2\¾r1ƒ±™½ð;‚kêûÀ˜Ä¤äiÓÂÓœû‡Š']_¢Ÿð˜øetMã9”ÇÁ×Áä±6òÂpNéGOD8zqDqvD#³VÓLZ0ÍÁ>gYCç œ¨‰åHC:Ö„‡¸ ôÀŽ—|†2“î‚ë ‡tA—¤ÀùZñ&VÁ¾èGqMúQ\Þs$¥ãtÚxeÝÜ-a²]aï+ »P¦% ²R² %QJgüÙ€ê¡8~7##l€†ç÷Ôò Þ¹È÷–Üö:{’ [˺8Û '÷Ë(v³ØÛrª¦ ­8玠}¦íÉ”´-âÏgþ€YG8}'&Òaö˜ÊÒ LºrQÔæëjØ¥ö•Õ€@T²Üê<3¨@àä—kKÍ*úŵÅʵåz¿ä‚¤šâeõUÈV€~6}y:ºzM'©‹<M¼xÁœ‡#A²¡‹Ñ3vð!‹ŸŸ:ÊB•½Ýè0JÅÜŸáxÐIÐÔ=6Sš®Þ¬ÿ5¨Ws|—%8)ûÁç‚9åÂü¤‰ÁÛS*|]‘…æt;šXºCÁ8³¯tùÄLš“™OkQ÷ þç½8<—}‚èÐCñ‹ÈKOà Ú*Ë~š;úkø]´Ânú/ßÙ[!¶¶ž ¾’'°“˜ü¦ÿ`6·_ñ‰.t¡f:FÑ(ãÖ*mxùXô#ÆôvIç A¢-$è7LL|¨†¢¯é‚N=ûûöŽ÷m±?¬šràé_Eɱv·œVú‡ T¡Å&ÍŠ¶ó—<…åjÿ+#y¤=ÒR·ùßó¢ó,†æLÐF’*Ø×µü=a$Lèt€ïèŒÓ;Î8y``Œ’_P$ÁùIŸ·Ã¡ÉÏž¸«sþøî× ¸¹­À²«Ú¥³@g@¹‰äŽW³”ŽÅͦ£ØpÚÛ ©n‹æH Ä3þ^Á@£SÀßפ c£¯` è5=D @L8Qm¬ÉqÏ<{¨)¡y"W$ ËÇž®üf™0/^µø¸“Ö+}pÇ4ÿ,`åYà|ÛùåaN΋‘T“g)Ù5ønÊÓ•¤jh[õ°í5´M¨ÔÙõc o \uì"®£A,¢~&åâ¡Av謁\ÚýÂèÇ7¯\|‘"ÈèñiQèÐc0½ß§˜œV YŽÑ:Šƒ±Q‹£[F=¥¿²ìYšÃ•µeB µfé®…`ƒÄ9zLEü’àý¯_DâÏÎÓþVµÔ£Rûzñ¨ïß;¦nÞX*3#òÈ·Ñ…|+‘¯—å#s/äqR#ž©qÚ±ð,kbEë=_h¢I·ÿƒ&N4q^s¡ AÓ,&oQäjÔz®J|¦ÊÆ&="¯Gv¡‡#ÍÎ=ò§ê!‹±O‘ô20:»TãËŸ˜+瞯Û/ôß ¶“òÒ‡c¼ÀAí2¬ÉÞ¿¨bG$*þ‚¯BÝ7YO}2ŠŽŒè9VtЄðS§Ý…ë¡¢.4`Wæ_ŠðÉh ]kTérÒÿAeŒ 3}½ÉÂ4M}ÂÒ››7ÿä2!endstream endobj 181 0 obj << /Filter /FlateDecode /Length 1162 >> stream xÚíWKsÛ6¾ûWh4=­I“I‘™¦3îÇÖÎdÝ’ ²0!A Æö¿ï J¤ÂZMÓC=ÜÇ·‹}üy}qu“‘E…ETÄ‹õv±"‹Mˆ$‹uµxïýäi¼ò¤Y2ïÇÀ}víã‡(ø¦Ñ6±ÿqýû"Z1 Ó¤˜¨j¶©¹öcÏÈW ¥úÍ vu“æc…¤!Iäúîa®ooч_€2c-O) &É ‹(Aüé §øÎÉ®íeeœŒÁÉ(Bâ÷§°ÞƒÀñWò[‘†]MB ?ˆ#J=ÙMâ%ΘœîÈÎzÇý€Râµ½Þ÷Úìc¯Ý"M#°ëV¶>ɽÏ~šz¬Ls…t¡œh#´æUøW‘$!’3ùfüL|]øÞ1ö¿òº†érwª÷Mµp„üé²úWCãðÆeIóræêeå}€2ë”-˜ÜSšï‘,$® )–¾Ö"PjyMë@®xíd%«ŸPî |mqU\ã¦ß£€\ГJhÑÊÁ¤Zwâ)ôƒ$‹Ž¾ŽgâÖX$‘§öÖ5^ s>[Û@}܉Ò'+o‡Ÿ•èx©qo ¡ç<„wò¬ã¸A´V)qG’‰¾ÞµÊ~ÆÞ£Ð»¹i@£ìcðÕúøæz.7q®²b9XÍÄ®Í,ú%+´Ê€óÞšh„ÙÉD‘6oæ`6ƒŒJçzS3šÇ»i°m;äl-ˆî;'Ùñ-ï¸,¹ÉQB G©”L¢ˆ3†Ôª•N“?íkQ ]?û9õ¾f¾@‚§·fÜdâÍõ%²è%²Î^N û>vJäýˆäÙôÜ+rNŸ FO´é Š•h$kÌP¶„;¨…2Ôh b]Û ñ5.¥a,×OKg|ùö~é½¼çõ¯œéÝÒ@:¾IòŒ: ƒÚŒŸ?@ÚÒ<9âf'¸/Q›¥™FH³Âc|gg¶pÖØ‹­=6Í|µÈoïÑ›Á«Ç!Y%S]£`5¡Ûð…ð&1¬³5¸ñÔ­V|6ó( q© 8s—öàê(ï4ÿlú’›–õ®üCHÉŸñkÇn> YÕŽ¸ïðâ¯Âp)[‰7: 8.·_yÛ^–ÃØvÜ 9œ!)‚fÉÁ+nf¬mocq<Ìá»a¡ÀM(Z„ Çe\ru˜"n\(Ó"'# 9‡)<À†Ã>1nb ¥»¾Ô6H ÆÜÈÛš1Ö‚KµÙÔ6–êÅ)DÏL¡!b¦±žõzÚÆ¶çÈx2¹Æ²Œ#ÁuçÐdNÈŒ õÿW{øÆ\cöš„§Jé›—sc‹>¿|6¥ÅèÙ¤.Xæ©þð,¾-UX{±ç”D]K®TP¡ÛSü6E/ãHk0 ´Hë„ú¤Fºp¡× êr¦$ÞñòØ|©{ƒ˜¾„? >ýe`ø¹éE­áT£gòâh7𠀤^jö’;ü¦,r¦Äèý° ШÉ /E˜ç¹û›2¬‹ßÖ ®¼°endstream endobj 182 0 obj << /Filter /FlateDecode /Length 2240 >> stream xÚ•X[Û¶~ϯX, µ‘”Dé\ lO E‰ÏÓ6ZI^«ÑŇ”“ì¿ï\(Kò2M»€W$g8g¾òûý‹—¯Sy#¢0rq³?Ühy£UF2¾ÙW7÷Áw›]"t0vň­4ø÷Θ¢·aÓ¶U]ŒÇߢ$ê7"(ºÚ2ý?ü)‘r»ÿ|»åé·¿¾å¦nßÖí8ùxþ6ï÷?ÝD7;¡Â$Ο+ä—¯“l©o’† tÞÉ$LÍSÆí&ŠK˜t0C·Ù©$î?³ä_ß²f“64WˆPêx­ N ™oî6;©8›],à+}Š£Ü {â¾Ä®|ì—å™l¹˜6É!¨•v“ªdÌ©z¬a­$ç¾›¡ç™ë£N5˜%=hÊ Ö¶¾ÀâDLleѳä‡ÍNêÀ-s¶uÅ-°=|³à±ù¸™èYP0±mìÈ­áàmË'—ƒµÍCë&±F,õh†óãqê¸U» L9·c³³c1Ö|è"’a$Ö¶í’^Õm3uöi@²ŠÅl èÉÀ‡s[1¥Fn<Ðäš;¼Sš9nP$4“€§š¦¬Ý–wV—Íá©éy°pœW :8ú‹¾>OùÔ —€K-ó '»Å<°M_ÖL+jJ˜€VÆÁy+ÐiúßÀ‰ûf¬Û'fìàpþÄt²?,Q|ÆGæ"û#C7tu¿&˜I¶å¡~à~‰lǺDŸøÀCl?ÖÔ·Í“©mÍÛÐa”ºÞ2 <œ!I…¢hauÙ³Zî†Á>í¹¢#·aó™ B_„€FR†©ÊVPDvAX7tØr]C“ÌB‘¥ëÀ¼ßŠ÷,å~+ß3ðÜoÕ{öÝiÆÒ ÷b |2J5ÂH’ˆñÇ5<†»—Ëô•Þ ¾^¤ºŸñ«•ük‰Öð¼o:ò’Nƒ¿Î® ˜F¡–jBžú¡• d(’tb«Š±pÒ-M}"¬‚³¦ƒ_,\èOö_ÐÍ¢ÉUÀ3IATè[‡-t1<4‡G ¢}² ù¡‡ÛL‘WÆŽÜ)ІC3N;ž´›’U.ÃLçkK?‘ÌÂØ?õÎu¢$3}s×4#§¤íˆ¨H|©Ò$”ÉŸ¤]ž€üû%q3u!Ïç‹Pú³†µ©jƒMÅ™† îOòiƹüm< ¤Á1Aôm1h4?g`YB.pÊ€9=(±C”­øœ’$(Lxl'¬}c:cE=vk-y[+V¾s`Õ: Þ ˆûHuË@ëGüÀ w‹ªBô!ŒJÃD&—Î'î fs$¡É´>†e§¥å/å=\ßÔŸœüyf¢-çÓ‡óèLG¡Š³µMž¥À8SÎìY°[á|O-Hnë‘馞VEÆ¡õ.˵+s€çt6.Æ­™dq ágsa^ÓÂe AÆM\ÚøŒÄ{ŽxÞÆ9AŠˆÉ4M“ÎÞ£DB~B ôodœó‘Àͺ‡€TÌIè„3Žn*FE{à”‰Ê€- „ 'AèRjb|Aav% pË<ž)oCQíœJ/}%– >99ˇz“€v'Ÿ[É(œ HLƒ[ö‚8†D¼®¼—Þ%s¼F1›j±Ihß+Dë %Âüú$òjÈÕ±Á¹¦P”¼Þ ³·ÐÑ-> d6xТ Îy÷šv+ŠòOÜqÁ ­+;8½Ö°pÝEŽ},-Žx¨ÐWõóì‰XüYXÊ•Š–‹ÄÂõMc?„ŒŒïêzª7]]9žÇ¢¾å—¶ +dã* ôv*<›žm ÿ³>Úõ%œo×UcíùárÃ.ëË»ÂUÊã…6–Õ…Æéâö+o>ÒÕªÅM0ãJ‚tuÝs·\‹äY!ÕÂ-£MÅ»ÏÙój€bºz<ºŠÿËàXXl\ (ГF&¥*î:~æ±* u$þ‚'hð„Üã xÛ’¹Zb8®W´v`qTÚXîãÑbqÅ…­qZç ´æÀc¦þÿ™kw~NÒh™µaœ¸£{– ôÑÕ”@¿TX¥y˜¦zö# .¿/aºLg—ü\µ.6Ú¿ýß+¯$Izω—“Ñ¡`@RôTã{W… .º(ûúîçw¯¾^Õ .zóÙNŠ$ÌTìMkǺ¨Ð¤ó4é=%Z?¥ÖÐôá!1“pzÆÌ4^³ż¯x·Nz|t-j}§òJÚ‰.hi†÷¢0Êâ?€À~ñ•¹©x üRM)jX¼¸»ä··˜ø zN‘ÀþprïÄó= ºH®\'pŠçà \©.èy[]^w„{î–nqÁzEà!üÇ"¡ŸÊ–ÔQ¢—CÜ=£‹Èÿþò3s|G~·•a.ññ,³Ì=ÅÈùâÕþÅ¢Ñ/²endstream endobj 183 0 obj << /Filter /FlateDecode /Length 2104 >> stream xÚ­YKã6¾Ï¯ð!@d ­ðýXlÌ&é`Id|KrÐØì¶[òJrÏdýV‘Ô³é±ÌF&YúXüêIõ¿¶o¾z”fEIn‰¥«íÓJ³•æ"'L¬¶ûÕo[o(á<£ë #JãÆ"ã0–F຤*#9‰ÿp¬q¬˜]ÓL©§SaÌ)!‰ßþôcøFõÛÿ¬ÈjCy.… *ð… l¡Tðå„+TAkÃÍ­æÖÁþ¦ "ªÀ,°¨½Ê‚•T`B›éT{è*È+*Ü6ÄMn± ƒj¡Áu; ða;k¤B ¦Œ±†PIo‘ yÎŒ˜3±oNE·;ÄWºÝÞïϳsÓ•'ç_Û¤Þë7ùÁU{×eOeÁpןëðÜ~ûÝ+ŸJ˜„}n@þ¹Åô-•=¸z†«–¸£“`›„3ÈÏÜ+­>ôW|–Ý`'&r%brûwþgeÖþYñ,`²z ÿ½¬™Îâü®8ƒhýp›âZ“+¥ÞÞÚsãΩý¹Ì‰Q½ÜÃz#(Ý!2䥞Ê3•%zùÞ½—¨L‚”í¥ŠjŸ„¢¹6´j»¢»´IY.ÍÖ<_N®B>º60О=GnW>ý؉ôÉlW/§ÈiUœ\ÖK<_5Êúe²€T‹Ð.º"*¿<¡îý©ã×t‡™(¶«›ÆEmëj_VϨ‚ͺŸfà=çÂ:rT·YYÅwqñ„T\ðÅcWn¼h8Õ~£½;æë xXö®¬vñ¥è=˜sÑ•­ž©!O²9ßt˜"iP„²¬ß¦hxQÂ{‡—!àÿøSõt/ š3®n:–È­ºåW`F}‡[Ñ\é«nJÖÒ£µ`Þ[ wˆÇþjNÓÆCt°l«º‹FM®…œSÚ80ú-—Ù¡˜Å9”²",¼¬¥£]˜RHòÌ·—¾q£]Ѻyæ*jI§awtÓó1“ÌéäÄæVØ;BžQu;ä)3wÙÆŽÎpò¬DŠB>tað\¾àÃóËɳ³²x`b¤0ÎBAd¿áÏoSJQðP=„|PßVáY;×TCƒñ`ò*WàÄ_a¢†8xŸ1ié´Ð&©˜P,7VÝÁ<ô“·™'ô.â °~'’\Óžé(ø§[KH\ç+!KÙ@mÑN¨q˜…0~|Û³e\í¥ ´6åÎÅ„Äd$«çáSG>÷ÀNÕ–uµµSÏ…å½QD‘©ˆÉ cãÁ KáÀO=Øã]ÒI ù¨è%¤ô–|.þPôb(b>۟ЧÞjÂBÏÃP+€¾`?¤xŸ< sˆî›´ð{h‘NÒ ,Ü}î£EÞs?+»Ø@a hÊž!™=ÕMÊ»!mˆ;wµOz9Éå4n(&jÁ²mºÜÁ…–ËÁÝÆ&ãU許{˜–(L¡À`µÕ—~Jsû°æ«ÌLò%›$¬YƒèÁUy1È8؋Ύ½=Ä·Ó,Âgör!ùMŠ mï«%*‡õS»¢ S¡€^N'°Ñÿzí¼³Ì!ž.Õ®B}ÞørÁ¡v ¤¹WuíÕÎWŽé<…mcnÁ®ìUmäã›ÐÚd 1Hê§:@ŸÇÅeÑãñظÿ^\µ+cb“†zÑhùB–X{jêx—gÜ~„è–’d¿ün ¿ºãw®èâ嬪]Aɪ £®îŠc\¨ lÅòÓ¸iõD|€ÕY¼¼Sªl¼! në4“?p(¼ò3"R¨¨.ö$¾Ê pÚ¨â÷H€ŒGë!ú§ ÐçdÅyûƒ1 •ÒD+üÒÔçºA7zmy¯4ƒ‘$¯Ó€ðª®±>Ä™Ñ0 ¬¿"|ˆ6ã*\çŸM$GOƒ^÷3ŒhCD/‹9ƒ7­Ò×lÆŸ4›Îp¦'r¬à¤ÊÊOÛe~½A?TËíé0LÄèh¹Iü<® Ï oC#l {~†îÖ×}ëì|ib«Zaalì5‚|å Á‡0(öûðV×Ð; /lZ,—³4¹ ©â߭úÏN8 ®uÃÈ\ÛSݸħ‹½ëŠòèKÉê*<ƒN¨MÐk©Ê NuR½NØý3´<…HB!Àg(–ðãÒÕ Œ·BÁí¨ ®áQ!,h¾0Sô[ÍŽŸl£)ƒIŽ÷Ý—dk£rKÙä›glúÍaµÌ‚Ç-:½þþ®x(8ŠÅ3Á„ûx†FÕ— aRžštø>à©‹í¦b úÂûE“<ÓªÁäp9MVm“Óé'•ä!©§@ìÊÇ*ž\·‹I¸õlÇSw³žwÞ)ñ\©A¼LÆ—Žty#çñTDïQd!a=}"Vï&Ù´¶¤$ÌäZ%í±„ 5z$ø>|qÛ½CVq}¦uKÑ¢&Ñ2¸0t>)† ‡ þÖ‹&ú8r·Cb_‚(è;˜þ† M–ëº+7: mÄØ¾ç³o(ûÖ‚s3~i«S6…Ø`âÇ·?¾ûþ¶C¦;ª¡ÀÀ}#Ùé|<ƒ¶!}ÿs3LBÄ帀ávB.¡z«8ýûÿã!¼GÅcúµ¯Ãë۷LËšw>¸bèî#ÀŸã^É+U(Šgm9xxücÈ0f}óa}ÖýˆÍÖø¼¡X|Ì;%eâsìOèØ§Ägúþ'A^ƒ½®&üNŒ+å3Œå|k™ØÝbÉ7ßoßüó1Ÿ£endstream endobj 184 0 obj << /Filter /FlateDecode /Length 696 >> stream xÚmTMoâ0½çWx•ÚÅ$ !Ù ‘8l[•jµWHL7IP‡þûõ¬V=Mžß̼ñ s÷ëu;ÑU··õÈÙ›=w—¾´“ì÷îÝÝå]yil;<[[Ùj<=?±×¾+·v`÷Ù&ß´õðàÈ›¶<^*;²~&ûQ·‚>ìþÝþ”MS >Ù_êãP·ò{=éÇsæ@öd”ôÇöçºkŸ˜xäœ;`ÝVY×`Œs4½JaÓQÜ¡n«þª‡í¡.’Uu9\ßèY6î>¼ý<¶Ù´‡.Z.ÙôÍž‡þ“4>DÓ—¾²}Ý~°û¯ÒÜÑör:-d0­V¬²WÑÍÿ¼k,›þ8ãóþy²LÒ»ðºÊ®²çÓ®´ý®ý°Ñ’ó[Å*²mõíLrŸ²?ŒÜÔqù¥ã• â5F8@ šˆ=@Šð)&°  È8Ô¹€ÂÅRx u€Dº\j2H—†ª¡ÐVÁ¹0CzL]ø Âb°ct‘I ©g$`htÑ‹0œÆ\F„áŒ0ä†sê‡á jd< —Iê6œ»õñzgóñºË»þê W ¤qÈ’£+—Ÿ#ö•ñÌÇkÄÞ .‰bªsré…¤šáæÄç†bïmŽXú¾„Kß7ǵHß7Géû„û¾nb§>&jÊØµäuœ¯¼ú•ñ1ÜV™÷•âÜãâµÇ‰Ou$ÕŸqWèS/%1{\øxB!€§ÔK(hH©—TЖ枃»J©Ïϯv×ÜëÁ=küÒ2ø¥UðKÏ‚_:~é$ø¥Óà—ÖÁ/¿Œ ~™Eð+7¿èË¢/ ÿlì¡ÛÒ(/}ïö -+ZXukoûìÔE?Z„ãæÅÛKýqíƒÄendstream endobj 185 0 obj << /Filter /FlateDecode /Length 900 >> stream xÚmUMoÛ:¼ëW°‡éÁ5?$R. ¤d9ôMðð®ŽÄä ˆeC¶ù÷³k›m‘CŒÕp¹;;†wŸ~>Î|¿Ž3óEŠ_ñ¸?O]œ5ß¶‡âî®Ýwç]Oßcìc]=~?§}÷Oâ¾yhÆáô9%?ŒÝ۹׬“B|Æœ‚>âþ)þ;ëvÇw%gÏçáí4Œ3‰ä§áô–’>\ ‚‚6ý§ã°¿ õEJ™€õØ7ûÆ8ó 1¿’{Æ~ºðÏ`W(-ú¡;]¾è·Û%=°ùñýxŠ»‡ñe_,—bþ+-OÓ;qü\ÌL}œ†ñUÜÿI--=ž‡·B«•èãKª˜æÿ¾ÝE1ÿpÆ[ÎÓû! Mߊyuû>Û.NÛñ5K)Wb¹Ù¬Š8ö­iÇ[ž_®¹uÊ•MúÑzQ­Š¥Ò)V†€Ú(TØ€àx¿àÞ¢ žjy‹°°!ÀÐÔ•µZÔÀ2àP="¦ZdÔ0\ÃG©R\¡·”).–2*ÎШa!„U¼Ä,†³ÔÛHð° `+jÐÃ.¸5Nα@èâ°èÐVK-àxŸ%ô˜Ü3š% A°YÓ€z¡ÎšÔ>kP#¬³¦õ™5m0W£oš¦Ã¾žj­®§Üý·.†ÐZ¡ŽT$X/©)n)æ#W—„o(æ“oÀRZÞ $K¢p4’ŽZ¶-bâ\­1¦Ü°Jä æP"Gñ‘XÔQ¬‚i/8ºkÉ^€ÂZqŒ:ZsŒ½š9”d š­Bù Ž)ßsLù-ï7½æx˜ÏJ›¡¾Ò`¯ažÉ½)f¥É$†µ’1™¸ dÑŠcªCZCù<£7Ã3JÊgózÌnøþHȰíáÌYÉšäTœ¯a…Šï¯Æ,_»œ-Ÿ—Oë87Ë}êÛKÔ´Ü—Ll¹oKñšò+Êg­JÌâ.¾GZyóº‹Vðc­48¸’ï¼äØWtù]Í:P~`áŒñ±–rZŽq.nÍ1]Ç ÇàSÿæ/©ßP•ýïuö¿7Ùÿ¾Ìþ÷Uö¿·ÙÿÞeÿû:û?Èìÿ ²ÿƒÎþ&û?”Ùÿ!dÿ‡&û¿1y–¦¼ÍH·œn5þ¹ã)º½ÝyšÒ“Bï½x#†1Þž´Ãþ€]ôGoáõñÅ×Mñ?®Xêendstream endobj 186 0 obj << /Filter /FlateDecode /Length 1699 >> stream xÚ½XKsÛ6¾çWèVj&Bð$ÈN“™4N:i­:=4=Ðm3¥D—¤ìúßw P¤Év'Mf‹Å·» ˆß/Ÿ½xo²™à,繘-/gVάҌK=[®g$z¾0"µ wmæ[7ÖBéDø–íŸËg|¶Šˆyä,’>d† B0iõiÝnŠ~uýC¹]—-ÛTÝ\$NÂbÚC˜®:R˜FRPÎêblÖUÀRs¹ïð}'²_y¤&Îê«ì°0¢¯OëŸ:Ä'é§è¿x¯&‘Ë¥a™´´ü÷y¦’r¾2MºÒuLÒ_=‰úk86'+ÿ¹)¶k€NÊ5IVÍ\fÉíܘ¤h«¢/;Z³.ú¢+{Rª¼ðï]Õ{ôA 8Îöª|"m‡LöŠ>pð¬ŽÌx[lJO­h˱‘‘“|LÔÍöŠA¼‚Ê{ÜoÓ‚~&“ ]5mµ*j¨È–`.=ÐX——Å®îi€`šKj½®ô.sîŠb“±…“j6si“‹j[ôU³9ZRʳÂb[ÄN¡ù=ǮګÖå-ò(k~â†wÕ¦ª‹Öc6Ûõ¨£î‘í¶¼jË®CªË |â*]Uå­õ]X„Ç‹½{$Üìh€Ùf…ˆRM-À¸Ùõ7Hn×{”:¹ljXÎËwn‹kR¿@S÷Ô'ÖØi‹mWõS'Žænƒÿ_ÿÖ›E·[!Ð5 jœ¡bbÀíplêð@ò"²ã¢®Kü5˜ê¨]5õwˆ…Q´vç‚mmòá’´ÀlWîgýZdnšN§¡&nRè‚lו-õ6ÃÆ`à2Ú x ·z燮Ü;.7P‡×6:d"ÑŠ”¦EPžø#ÔgÝKoa²Jfüò—ßÞÅ¥tx|@tW EoDA;7:h¿ýñ×8hÆD–5Fˆ¶ÙN- ~A1k•‘ëp6RÓPìê‰ë…ÅÕ.·‡ˆÆÙ ÜG©« nÄ”ˆñ6,U6h<¡Xfóaÿ2†]‘© Rö+¿CŸ;—M[ÒpËîªV™`Üæ“ºÙÂÎØP!gXç KΰÂ$oš-W½öµ5à„kµ§õ>aê®ÂÒ¨C¹jÚ¿HuMÏŽ¤EÝ5¤)MiÅ$Œ?üâæfnঀ+<(ÊùÏ7  &ÕÔu's9e"MG¹ªC¸ àB¹»®V¸Õk?tPJ8².°ðÁ1ºÆÄè²êáe½¿ÅþöóFLS9Ù—§ of­é¿¢§í¦»Øôîi|· 1`«æ¶Ã]>˜ñˆŒ+·ïÂ&\ü’Dè,?[ê¡Ê:‰×q…ÌÕ¾H zZ×e±&〠ƒúᑼ"_oiysñ¹\ùma‚:âuÑùrŸêi ± þÂI~³ƒµjˆ´M‡ÞŽA)\ÔY¤…Ð)3iÄ-ãyFªoðÛ“¿`ª5má²…+Üm Ï%.Y!’L¦“%¤>DV‹÷£àÇ D™JQ¯ÂJ+С}Ñïü™¬«®Û]øó¼*Ïþœáð~ƒVrøFc?[œqA¼8ãþAÂ8•9˜´ÜرˆÆÀ“o~úH¯ôÉ_H1 ÊSÿ$u@APP…Ñà5¡R¤ò<'‘`¹Uy¯Œ'RО‚|òAä& ð3'‹hü¤ƒ0'(<|Rx¬Ò §bÀ'{yfR¤ÊA”eyÆ>ÅÎ{ÁÂu“M³Âð+úÕÚ™WÉM»O8Ê0ÁüÁ„¡œÎªñ¬dTc“aëŸÿá–…ï„ù³/Ë7oãQ§pIr×rߊ¡'òî3x*˾®A=FM“«Á®ØMíîËKvdjJAD¾˜¯bùô¶¯d:úY·ºœF¾î¢!e\_Žäƒ0(eøŒSr¤&̪ɼV1:âxîåûÊ4‹ãù³)ä'ÆâœGBHÄmälf|¯œºG¾¼WFáýÝræ»òÀmø$L/³Õ:&>Ë`$÷øŽ0@Šî Ôåtxöóáé¸ÛoÚª„?{ü˜ÞÑaý|!Y.ñ‡D·¦ ŽÍgï–Ïþß³¶±endstream endobj 187 0 obj << /Filter /FlateDecode /Length 2315 >> stream xÚ­YMä¶½ï¯ø¤·i~SLâ‰ak$§ C6µ¤™ÜÝêHêÙ]òÛSÅ¢>›=›žK“Å÷ªøªŠÔüùéÝw?™üApæ¹OÏN>8¥—úá©zøG&wÚ‘‰ðË3þ¸“&×›_…¿F¸Œ3ÿ¦þ£È¬ôŽw3åŸO??ð‡PÌhOx*âñˆ'þ¼íЈŸÀÓ¼¯ÛçM.µËßÂ{Ã>ó?ã%ìÛRHà‚³¿Üvh„¸ï~R+ùºÔLú¨ž§Cý¸SZgçâT÷ØTYs®êº¢á¢«ið_×fˆS Ù7;‘ Ôém7Ô+\>¯Zµ2Ï>û¦Š#y”.«_±YwW‹ †C1ÐôOaJ¤YÁó–FºúTŸpƼ–Jlès Òù¬½v}}| Ð= áBøûéД8~ nY õKÛ}¡Þ´@s‡\še—9ÄÆ¹ÞPÚÆ°´’)å€i`(R•3›ëq '–’ñ|Z¥x©“©¥”eó´²íºº¿ví¹ŠŽøÈ ‡¨#ùNóè˜f8Ð’–/—Ü)á™wùJË!)E|·â)˜f$ yŠ£ÐÌH;Ù‚BP6ø¹îê3úY)1í °,zÄâ«J[hI˸@O3ìÆŒ%çÙýÐœŠ¡iÏ÷CªùÓó”)Uv(pW_›ó õ/]}¸¨¨öU1ÔBàï±_ ò{ìßÄ#S§«_`_w©è”æ"kzú퇮h^ˆ7·ŽEWáC¨í€‚]4 Wf9ÓÂϲú|9$ŧX.Å8íùz.‡‰ZŽ¿„Y鯿ü¤‰þÚ½6¯Å1¢(<g^Š-û%xò¥†¤„™õé0Z?þžÛÐcóxÇГ sÁ¼Ð›”RÃ5dFkhûàÜ–4ÄB0óÉd¡Nú Îå3P=Ng-8«‹óÔ’›$!Ex7#£v“ÈžñiÚ!„,û\”ͱA¶(vk£ôGí®ŒÞ¨Ð ÁŸ#Jk C˜U¦øKù» 5ü-ÛP#:êÑjÐøkÑý‚ÚŒ‘ÆN!gP @Gl s„„<^wñÕ©r@»èûë)¶«&Äd• ~ÌÃ:‹0ƒiÁ°@…p"ËM„ÆÉ¡B,O†áŒèd£#ûßÈÙ!æ9'fî0ñÚÇAr 6¦Ww1×%âê’ž'YÂx»Šæ¶ÖÝã¤/)Ñ(ˆlá§­?_ŠsÅÊöµO)Ç*&ݤYˆ5cE8„Í×R1mÕÚU},K1òbô]ìÁ4x\46D 0|•à$„W£'´ ð€N'$TS4ë\_×Ô©š¾¼ö}œ#(o =Xס±ÞÄ)}¤BóÐÄ3L´a}I¦ài£ž¿`fM$ Ù4S’ød;$ûÉ¢ÞÃO{y‰ãÚ6©*œ§(Õf ɃñÑ}Ð#S<ÐŽ?SEã±|MnðS㱎Ñè"ÒgF›s$4ͧ¼L¶$Ócj\ÓGíhÅ|.ÖŽŒ‰Î\Í)¶(ù•‚,ÖÂÄñvCÍ3PtòDe=ÓfI¸M§KÉæš6D1„C :É «£Ge}îAJÁ‘|dRÕQçjzÜn©S0ÉîƒKrÁ¬]ŸÁÀ)» OV‘ŠîÖjµˆe«Mö÷G¸~ ïiO˜sº~ GÄ«°ôt„l¯qVq¦ K×RÃÝ‚°8ÆEH 4÷%F±'ÇŒg’0°/úzåâ˜ã›Ls„|G<¿Â'äÚ<“lÐtí€vAw€ePÛû‘´‹ªº½ÂK期}Ü=­®±Á±ÃÁö»¡ IÔΧßp½Yn?†²¸‹¨šÅ…%(Ž”u4¤GMQpvñ¨j1‚Ѭ„þ‹NÊÍè$êP:…Ʋb’°aiá°t«pxÉB¡†<œT`L—€¢ïD¬3N£ŒÙ-J&]v–«xׄÇpú½‡H¾¸ÄòQD#B6‚ÓjÇúyˆŽ¼i¶y¦l×Ó™n!!ÁÀõã #¡Økþtþ!à|XÏ$+KZ¼r4÷”?Òý½øk³?ìbOÖèˆMI YThæ¢<„gÿ¦a(sýu/Xýv9*iÔÁh¢j}?B„«åúuZ¼žTXÊÃft(«ÕHDìñºzó(Éék”ä-%™¤$o(É{”T’’úo)©[J*IIÝPZ#ãmJ1ÄäwšîšØúžÞ?õûHâ v§ÒpE³¿§w¿ÙCÌÛOߌiiómjd" 7’~€‹ÓïRø“|1‰A[1øM$=»6%i¸!—¥]³œ§WoäŒ Èž·Šv³¢7±´ÕãJÎw"l–ñšŠ¼GEÞP‘I**IE}Šº¥¢îQQ7TÖ AÁ ùÚ­|áN×cðÝQð¬ÜIî·Ê…â·Фƒ ï$½ú™^ƒ; ò(ÆF9Å: Oc ¿ý g ¡tv¡òàræå¦:lRêŽ3®•ñP ~ÃeÞ8¥¡$üë\Ž… &;}«5ÎXó”å+AéÔŒÓ2w3ŒÍÃÇà£Á!ÑL˜ªwøÐÜÝyüŽÏm '¬¶bÉu.eQÁÏMD€õ𠤜¾;+§„»ƒ —<÷ná-¡Å!·ÚÍp§QÓ‡té=w&‘ªµg\Fƒk#¬¡m¾xf-î@ô›Íù—3 ;-“Ä yxL‹er5oî&È!¦”¡õ=ì6lÃ[rA$)Éý„!½°³B9 XîÕh‡T/Ä[ZZ8ZØ¥‡„ p€çèõhLrçDž¿•Êâ¿-D†pQ-ö±*4""\dr?ÿÿ÷}³f¡¤Š‘Vû%ŠõÒ/¹ƒb#Š‚½Ðó?R0XrcRÇP eÃÉ|'=Üœa>ï~|z÷‚E³endstream endobj 188 0 obj << /Filter /FlateDecode /Length 739 >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°mUªÕ^!1ÝH ý÷ëñ#xÙö?ŸgìÁÜýx]OTÝmÍ$|äìÍœºs_™Iöss îîò®:L;<S›zœ==±×¾«Öf`÷Ù*_µÍð`É«¶ÚŸk3²¾'ióÑ´ž‚}Øý»ù=©½à“í¹ÙM;áà¾7ÃÞr¾›f¶ÆnjÌ-ùeúSÓµOLg~¼À8÷ã ãâþÈ)okà çA„8 ö$`I\èÎ×3`çAfŽã<ÈZ]ƒÂ!‹„ê xNkÇyã¹ãÐð"œ7Á¿ _¥ã“§Ìq âH`òáö•‚nú¥¤kÌÂðRONH=CpB:# =Ñ%8“ˆ88QA~¡!*ÉzÆœøÐäT?!~Ž> étw©8éÄy*ás£¤Ï }nÔÌçFE>7*ö¹Q‰ÏR>7в¢ G]¼;~îó¤ŠÛ<©ò6OšßæI‹¯yÒòkžtèó¤g>O:òyұϓN|žôÜçI/|ž´òyÒÚçIg>O:÷yÒ…Ï“.}ž2îó” Ÿ§Lú> stream xÚ­XK¹¾ûWL9h`«MßÁ:‡< x‘Áfn›=ô¨9–°-µÒݲ½{ÈoO‹ýÒ´f `D²Éz|õ±HÖŸÞ¼ÿhüEAÞ=<Ý9¸sJôÝCu÷Ó¦je¿Ûp¿5Òn¶¢΀¹ßJcÄ×3{BiìI)à^nýަt<üSJ“y¬ÍKL0Çx%é1)È3Îm“"|m ,©y¢F‰šÅýV˰ùxï|cqûC¶ä|i'èÌÚÞš©î(þIЧs]2šL¤DC+æ4”ÅáI#XàïÖ¨Šp å†)(³uìYUw9ú¨&¶¿2Zôå1ñ ÖÍésÇ#„ý6§Èì/Gî$ÄÓ´™Sè8B޼ …a‰Âÿà® …wúeoUὦdþ½OôÊTp*ÓÃÁFqŸL˜€¡ Œ#`<³ ¾7…ö¯[¯X3ƒš'ш’»Ú‚'!(L¦Wæ@Ù<çûB)Kû‚~’ãÔPü³/§èóHÎDvÓ•ÇÜJId_)¤Ÿó÷ž6BßQ×oöñ´»-â˽Aåõ%%%2”n`Ë[“zbDb U›1ƒ„º· Ñ…úUfªà¯ IBñY°5^¢Ý¥îó`º·0—”†*îN“…¼½ÅËÀUÂ;ªªÎ—SºáÒ%3Q(¥¨4ü)íÄO‰—Ÿ–3ûá^»¸—"Îp}†ÂÇ*ÿÈWçc÷xì¦|¿ÍOšµ»ÐóE?q;E?~øÀ7tõóR |Aà.?9‡¹»æÛ™Â+þyi¿¤ý„YÛç÷všs~Qàxé˜ ôí?ùÑ‘Àyôí|Šü8|»fÑÛüL/ÐåòôZצ/ÃËn9JϱùÈ ùžÞ”°ò†‚Ãë&Ás“`Õ$xfÜ2I­š¤VL2+©ç©U‹Ô3‹–ŠÏíBúéâÙP€sô«tHL›±ñÝKÀñôž®yÑwø^©›¯ß%ê¼ÈÌ• rõ°üsY×Xi¤1fÇã¥.ü_¨=a¼FmÜïäÏuÉãzí3^ó£}…Ún¢öÕ¦º&æ‚×7¶ÚÄç¥)pËxf ¬š¢VMQ¯™¢ž›¢n™¢ž™²TznÂV¹ìF.Û×¹ö.“é¦âV˜› +.&%Òj+§ªœ×Æ®pA ¿ˆº‡©¦é”të5M˜+>¸ F‰/B0éõ•e‰Rý B å uÆ©´‹O”¡`­Ð{"¥žÁd©B-¦ˆY?V—u îVµQŽÕF hŽë‰T¯VÆ«©J.<Òb@oUʰW¡0T_Åxø—jØæ`E°~t‚—~йT$Nú©tÔXÚh“¶/±kZ/ 7a†]=a&”•JªøPœ¸Yφ¡ÐL ÁøëÑVð‰žjÀF 3Ù`íXÏF‡åúÆŠô,X*?¸ÉXq‚öÍ_Þü¹ýÙendstream endobj 190 0 obj << /Filter /FlateDecode /Length 1945 >> stream xÚ…XMs㸽ϯð‘ªqñ ¢*³U³©L*)oåâ[6Z¢-ÖФBRžx~}^£AвiÙÍF7úuxíßï>ýúÍ7RäAys÷pãÕ×&ÊÜÜíoþ••ÊÕf«la2±‘Yn•õAl¶Rh“ÉÜ郋S‰\Z_›¦:ךVz|B®ØüçîŸ7âf+unM`ûþ©wrc¥Ë¶ÐõJ8Ÿ|`sš<f‰”B91ë;k&7VjíÌš›q·'Z =- «ýìko¥4g&/R$*—jv]ȶ³L= §{™ë3$:R¦©BBX·pãaçhåÀ°IcyDv®0£¯VØ")¨[ÎI)Œ K¸ œqó& Jp!ŸF¾[az®0EE–¦´ ¦8{QN†sÊœWË †@Xñrì7[#a…¯}áô9*WÎPaVi6ºAÌ)Ç!7sý*Ÿ‹¬ßÖß«¦>tÝžuûr¬;61VÃøEj;ÃØµüAþÝcߟy|üòàú¨¶r5õíV±ÖûÏì®==ÝW=‹»–UÏU;IW )ÈÖ¯ßôÅÅEa8¤U±éo›ûƒ!-\VòÍî4`ïÙPÓÖIF>èwGo_“ú>tøÅR¹qÕ/bâtIêòPm…Ÿ5ªi}ÀŽõâr=1Yøw‰Ôˆ6GZG3åœ9˜!®ð›V;Üê³ïÅj¼»A]#Wç(ÃúÞ %W¨,‘&™è_dIF¾†Î'î‰ðý5μKzu2x{ ý´Þ¼·^[mßE_%ü êv?ªö.újÎ]¬œ7«•rfµ¸ìè|Ω_lÝ£¹ Wš¢3ú¿=¡¯þG£4¶`_o!€ÐŠkèëùìÈ·g'äæ½³37)„ŸÊYó`Vð›».ýB¬¦÷„þ ¯àÐ]/œ+ ÃýB¿­}Iè‡éµn@rä¯N½%ö½¾òï·ÿúýëí\w’?•Q"ô&/&îþßÉíé}ƳVG†Íã–^¸ 1<×ûÈzÚ]RŒÏ)Mïtl¯Ðy‘Nt‚EºxãÓfZZ»¤HK B°À0ÎÅ·c•!ã¤+û!C“Æ‘úO Ù$’¶òY—+÷ÝÇUãÍåø-ŒR@扦Ðï0ö± WÀŸ±§Ó3Eø3¡ßSŽLZü¬63+š,™Ü•p¶…§î}õ¸¯Ò "¢—毠@qr³gJ]°Ù×?nSca„ÏuGÜ;ö™N„`² ­4ndEæÆqõÐ •ÀE É<ÓëŽ×¦–?1A†t_•ã pZ=äÕ‘%¤`.b*¿ÇŽ’X¤`×í@´ ùÌv¨a"Ôà‰¨Ì(´èSc” YD‚1[Åàk”àSIi'ɱ§/ÀÁOî~ÔÔwÐh×=Ñ)U‘”b¾¯cG…V,5_$¼ªÝc$ùoïÍ#ž½•4zƒu&ûí57ÏÝ©ÙóôP¦vŒ;j?3æªåé}:q+q¡0r³AÌ…G[2žö/iXçÆ¦òl£ë-˨rÙÞx•ÊÀO—ˆ'*Ní…©”ŠïV…¼(> stream xÚ•XKsܸ¾ûWL|âT4\ ñN­r؇ËN%U.[·lÔ %±Ì!gIŽäÝC~{º G”씪4@èntýÄO7o~x'솳Ü1Ç77w#dÎ@nn›g‡ª/‹¾Ü¬?ßnw`³}]ô}õr_ UÛôùvg™ÈÞ·[0ÙÓ§”þw…+-®¬šíŽg{¯ˆgÃõ¢ÖÓ¹;¡Z“µ£ö.üUZÇ¢!Õç~ßU§!ÈÆ±¡ýº>÷CW 帺Üþçæ¶Ùq‘+éÂŽÎdEHo‡x§Ì<‚ç,.ò“ý@úü¼e pžqÓ¼+R©âÖƒú'ô'´nëbþõATÝ7m'’Ÿ¾±¯Ë¢ Íò±:”Í>yê›¶Ùºöä“Ðvú¢®2õ޵݅Ò1‰9½ŒÇ+I¥5\çN\,ùé\Õ‡ª¹' ,k1µB¸hÿ*º/ä“GÃc}|~­7v(k2> ËöET…hAé#­/û¡º÷9¥§‡Ítsƒ¸n¨Žq¼ÆyÕžT<„ Ežpc¥W=„xÌ7§ÂÞŠ®«v#òyà›F~cŠ}ü„ÿyW FO)o}$œ“‚óm_þ~ð*>½û ¶T+Râ¢bˆ ûIu ¼›¾*RÛnyÖ5ÅŸEwS¬/QÿñS±fsËeû_ÖpÎU|*ë_Êbx ‚Çä½/ ÄR«è¡–Ù‰\[V4ûŠÆÑòë©h îcù-Ì:m˜í:ŸÛµú³¹u0Î .÷íч-§SÑ•¡ê¢·Ÿ+ª¨£l.¿ÃæNrƒaÚ¶ñUí ²¦äK@-ItÖ—§ ¥‰1‡¾npŽ…µ,qkrÅ¿•%ê2KMB©ÌÐRS¶Éô„Oß™üÚõ§ÏÀa|ëYi,’*Òâf rƒÑ[Æän5Î"×ö;Rkrnœâfù2nØÄ NÄZ7¾Ö-ÍzŠ!·Ö-çbͼT9sâ;ʱìÆs ªß·]WÆø´MdA”{b3Dl“Áë²;úpS{Tòv:V0~Üåú2~…”Ê R'0G_‡²9xEV–#þ ƒ OD 0úüŒnœ‡èåXAŽ%Ò^t} Ô>:Ž‚®ºˆôåÇïÂøÍÏxÿ-ᩎv>xm¼7òˆl˜‡šHÊâ9ªÃ®ÿޱæ&Û úÕÙ»Øo¿žËìó¹{¤ß _7 ¹«0ûí)¶)²ç>2)ùoã1ˆüËó(ýë\ AjP:cÎxàLPùä¾¼\"¸TØ‹aÿúÁaXH¢aŠÏáùz£Ú._¸Ï]‚U—à™Kð’KbÕ%ñ½.‰ç.‰U—Ä3—––OÝbÙT´óUþÆW*†6ðÝ+îpjXv”ûÛ㑃dDHo¡g¼½År¯Û§·R+ºhWh‡Q}çLò0÷碮ÿ¶² áHvÇs½ôq‰ú«0öÿB~Š×*ä‘i?K š?­M€OàÀ˜­`Þ$Ì_Û%b€7ëèJ@_º/¹Ï\UWĪ+â[®ˆç®ˆ—\Ï\ ^([Á8%xëoˆß‚ùï^}ïÛúelkÈC €Á3Ðà,ïÂ|¼½‘{ôep/xÍñòI(8cÙŸþæA7BÎY‰p·/YyǰT„rÕb)ƒÆðÓj’0c¬5Ó|¥Yð ›FigWã2Ǽ_΀d“R#ÍX­“mœÓq¾Ì…‰èFŠrÇÔ‹ØÀy€‹É×RsáU TiñC`ê2㘒AëÃn#DqDÁÍ MŒõ7`ïIlÒè¸äì1‹öm4€$$ìhœcfu ³ókÔ"1®c—¨L[.gaÒ8ÍRÆô˜ü´pÀÁ¬™‰äàaBŸ èÎ%ž£B%”^I»gޏÐ27mœÅ›Þd†£^žq “+N°))Jhæ^C×,µ˜A=‹um2ƒÞ"¦g6Df—‚«õÜûøsŒ¡‚s*ù V´“\q¦ôäƒÖ|¬æ´–îÃÒ†eL²¡7ZÎlëÆ®À¼LµÈ¢Ï½†0H%o€Ù Š9Ϥt)`œfÓ|=V –< ìKƒ a“*ìaÂHÃD2!3cưÆF8eV¼Š°Tt胔z¬H.`f†Rog{³©\ÖÙaj °d·Ò½U°˜`Ö€•.¿ $H¤!$þ¥óE9™‡è}Š’æÎÈÉy°ÁÄ?«/e]=´ãÍ££·Åx*ûá97WÑ}mÒ°t‹º‹·—Óõq0‡rÇWÁÕÄkBΊ×äæ|¼-ã «½ ²ò±l†þz´ÅÙÚ#ÀÅÅ=|þƒš¿ñ‘@‡O`ˆ`¾#±å#ñwþ@ÝSßþu»r|Wñïåix%ÝïÏ]ç¿ùQÔ—å±ÍcáߖɆÿxG?ª8Ö´Qq_Ý7ñ97¼‚­…Œ®mñ»Å-Þ@NÓcÉZ€T.ÓsÊ5B®ÂWMOôÐSc®¥í=Ñí0<+ªRLc”r`KHÅ›_oÞü¸Õׄendstream endobj 192 0 obj << /Filter /FlateDecode /Length 2546 >> stream xÚíËŽã¸ñ>_a,ö #m­(ê¹yd‘ `m`Ù=È2ÝVF ‘êžÉ!ßžz²$ËÝ=‡=e.6Y,‹õbU鯾ûA…eTŠÍãqSa)³M.“0Š“Íãaó¯àñ¤¶»¸,‚ºÕ0€ÿ-ü|ÜõÊ(‹+epÆ…<8¨Ö8@…8Ÿyßžv9"zo«¦SÆ{F4Õ;DÓœ›v»AµAO#·bµû?i£x«œ#íºÙ_UàuÏ'R^ÃíoÿØìDF—Þ ¦I9¹t’åîÚÏ<:4¿FRª^uµ[k ÿÛSe‘Ôw?¤ùTšBfa"ŠMÄ4úç_£4z4¶êíüéËŒí`,˜Â\"ÎB OÁØ«K[Õ(DœíYÖ+ ä2e¶<ß6gõƹEŠ$ñÃí®H œOKDi9Y¯@>©ª-0)ÁZ‘I«Ú2OïU]µ-¯àh¥é¢‡ž­îžÜvÝŸ=Ú¡²TU£jO<ë5N^xRëlóB– »ƒgG39·ßöUgÛèŽdpe/Ío€¤E‡x(ή$Üœl `É€4mŠwÀÿèþeôlèýÖªs œé!NÁ‚òÑ‚ØrÖ&eXÄ£ÂÜ 7 %àbl½8$ZĦ>zÐpøiÜöÂ3{"ÿåIíCÏ΋ ÓÖc9 =ØË`ÿ“T\¡½ªªç±V+ª·›¤DÛ@ç“R°5 èÔœw<hÒ¨ö²n²xª ‹ÐÉî/Û]*ò Nð? þ´ssýérB÷˜9)ãL\•pÿË€1Ã^„nán¡°¸ Õ“r¸€Vn xqZ$ˆ_™(:a}Z@m}˜‘ñáÀR¼` øÁ…x±@,Åïe)^e)¾a)^eIÞcIÞ²$ßË’\eIÞ°$g,ˆ¶"=cAÝ>8 áçÏ 8›ýÙ>¼ÆÇYÁ³x˜múf°Õ/ßøï÷.¬0ýj…ÿÇVxégGNŒ“«£ÌÙ¾²ß×(³¯FùÕ(=Â¥Gu/vM-•Íô^îETC ¯7[j~×R!/Ë6" eO;?éP"‰<ç£à1"Š‚Ÿ ­ijÊWr4Ì„ãïGLó,Ð=%"8Ä•@T$ñør¥éæz_í›OeĨ¹Ë÷P£ÿv˜[õÉ:šGw†GúgÕļ‡Rçg†0´¶Ù¹\Ž€\TQuwëµ`Bõ` #¥ã¥tI!€ÿçF†ÁFÑUPú2 ö•¡Œ¯v©( ‚¶s¾œi·Ñª‹aŠTªñ8@|&Ä–«IL,KÈ~¹„ƒ­P–$½±VjQ~åó»p=õ2LeüVôt òŸ©e¿Â!ÃëÇ¥·¹âl‚Ì&æ>ÖàS´æ½© Ë\^3Š{¾+‹‚°ÇÓ`Qp‹u×”'ûó Ô²A_·(ð§JùÝÚÚ5̲¯Ÿ9Þˆ&qùF4IG]®žÊ"ÇÝË0JÄD²mS7k ‰Î #?q`2_µFó¨Ö´áÏ}V=¡ãö“ÚÙ“\ñ ™ú€ÎÑ`k¿xpi© “¸˜dÕÚ“žNËïü»/-0èÕ¬|—”!É1•ÿxr‚æÝŸFP«ó Š>¤ð€ÉÀØÃ›µlzuÁÅÈ5å¤{ Ïá¬y9CÍg¨Ø¤Ò¶>Ý!þJŸéJ'öÖ{¹ãeÚŸßË{)ÖDDߎ]:†yaá×VÝãiê…ËæE¦59/ú>ö‹Õ~¹Èø”þíÏV"1> stream xÚµËnä6ò>_a¢Ü Ÿ"5ؘMf]dsHzOI²Zv+QK^ImÏäë·ŠE½Ú´Ç f¶ø(Vë]ìî^}õ.•‚³Œgâbwsaå…Ušq©/vû‹_’o6[#l’C÷+7¼)7"yØ_ÑêåÐåM ‚þ±Åoš Ç|Øü¶û÷¿Ø ÅŒÎVØŠ:ï{°•ûs»—Ç~Ÿ9À\ŽqÎnºüXÕ§i4€—˜q–ïïòfÏŠöžh#€Hf\ýE¼Ö¿…yÝ"o· Pêiåkú¼{óÃÏo_@û‹~ò¿<.^«åAó˜gØýêqK¥°4L¤‚ ß4Þ^ÿ^]²½Yˆ–p¤z‰CpËàpy_Æè–*7BáGP)ÅœTÏbÚ 2“:`Ü2ž9ý¾öׂI«W2ØW}ºÞlW*ÉoËÍ6•\$ûl©8l¶’§6Š=Ý,ÄÛÝÐYÁÄ<…]\‘kþvI~Ô$Þüç‡`‹_K@ÂiòcKßÛ²Ù—ÉüXõ·%ÄîÛï“q 1êÔx‹/‡oÄtä''/ÿ yõÉÉ«gÉÇ4@J’¤Åtš®T(A…~,dÒ·ËźšÖå ƒ±fÂæ·ž·†3®§¹œ‡ïKæ½]~Ü E~BäQ5‘GNj ÓQMaÔ;j‡r‚2ö£šú¡ ‘æ/ë,M‡¯ZÎýÄ~ö·Éˆ"ÕßÄ¥(dªç‚üîPZ™@@hT´Ç£z$“=®A.>”]ÆE[ŸŽM,, ›2¥ÌºgÁŸ3£RfÝ” ªžçû}¹§á¸Tïp´Ý7 ÄdZÀm—´lºd§†6 ¤O_íÄ|i’ßÛŽ B‚¼d›³Hñ+d ¸ySàM®=™r@*ø¯,ƒÖõsÌB3 àÔÝßTCLÈÉIRx6ÉÁZó \2cZO` ¬#%¨‹TdÏ`¹NGX¬žP‘–ŒÏ´=”—„¯Žhؔ徧¡—¸I“CŽJº÷¢pì£I5SüFƒ×bÚȵ®z²€²¨n>TÍ-¸@0ü>ªy9àTîÓ‘öÀdvÔ[³b@Ѿ¿;DMbþ,ÐöšÌËNˆ½Ì ”È!Ђ¶ª6ÐfÕàmz3©J¾÷‡Üú£.r” — –¥ë§h»® ‹Ý(%HÊ{Nûò.1”´DröèCP ‡X˜ ÄíÈpÊ;#.(FQ=e™J×jÚm Pµß^¹—>ž¥€ƒÃ²ªc`LøŠS)Na®ó¾¬«&Ì P#puªó¡ºG —~ÈÿÌ»=ÁÜ€““a÷Ò_½[—ˆô—plýe÷e}sÈmìjOú%˜S0( €m¥2£ÒiRäu탌ªá@#е0@N; aòm‹W~OÏ©Å8 ’¹=3aÇ™v3"Ƥψ“÷]¡·ê$ï‰HÕ܆½ ‚i¢Í$y6WùsËq² ‰©ÆÏûX¨àYé‹B•`Ne²îöt,)°¨5WL¥|(¨U‹ºë¶ÎkºB\ÑÎÈɲïµ°íuµ9ÁÈóaìêb™yfÄ'f¥yž|ª1Š¨Ì§C\CÂï:Ìà .ú³3ajgr‘KвâÙD±,[„Òë@ ä&~ˆj]õ2a ‡®,÷CyìãšÂØLú}þgÔDÁ鄘9Š ‚zBOætŸwO`Z·–ánO2t–Ù KZ‰Ë1áÒ9ùúà élWœ…@Ô¬† ƒòˆQ c>JŠ›3sÅM‡¡^ÁÒ‰çW»ê=O=Auç÷!œ¶ „ÆS1ø:¢ŠÕ|gfò9;r,u6’YôîPê¸ì#†ŒA­žÕïÀ»wvÈ)h–vÌi6¥”=M}Ò°SÒ ëSÒ€³”4ðì"ýƒÕ õ,áþìàyv¨  6î0VcÂ*µ}êó5m¤‘˜Óî”­20<-£Œe–<îJOavÍStî:ZA™®gÇ{Æ­㳪Ïô‘ù7+}Àô~&‘wUuvOôr¦#}84¦z¼úJsÙ”½¯Bwg4³`œ+Ab.ÓÚ„š¦®iF«:x ,>¹žq„^¯1Á{®®«&n‹È=~ç>¡ ³µ@gHÞLœt%*‰x}"ù½aæ2b# ÌP+>jƒp‘,½íXçêC¨2Iœcs…KTŸÁ­KW_ËÁfQœº㨛xèû꺇òÓ혊½Î‘ʈñ˜¹ˈtÀþ!µm¶+&é9Z†ñþ0ZߟÖü5x(¦pà_w1ºé¹;Z—"ƒ¢zÎ’ý :âîC´æÐ ؘÂ`9B}D¤n¨¿<žÆ0¾( [¦æä³ž}¸[øÛ>ÜÖ{ÝØz5UUýûƒÀnáúXá†7Är(óðbî›@_ÿæUˆé%Þpf•‰…-€µ>ÑC_Ù—ó¸nJŸ3ïéî® o5K\fz»Câœq.­‚«YgkÜHk­ÐÄYXɸàá¡Ð2 µÃT¼åf>¨lª »~â…o„rRÀA(‡k‚›”»L.HZÌqG0’¥.™I=ÔÀtöÄ£k€<3pP@ óyIÎP"ÕøToÅR>ŸƒäŒÂp ufÒIã $w· ™I‘YHÆ­r©yLÐk‘ô2cDÎIÇ?1ÅÇ> …®€ VfÞåÉŠýëï«·»WÿkÑendstream endobj 194 0 obj << /Filter /FlateDecode /Length 1066 >> stream xÚµWMÛ6½ï¯ð!(d Vf†3ü’ 4X=ú–æ d½X£Î:X;Ð_ß!EQTVF7/`@E¾GræÍ£__½~/~иXß.éZv²Xß,>4mÛ.?®ÿ\°´üb…¦ý·ãöóf¹2]sÝý«-h›Ô&ñÜìöß6Ú뚯_¾h;B­æ°`¹E²-‰YbC‚}‡®MР•áô«COäK—'`k)¾Ú[Fô42°àÀbÄE–d7C…FÇ+Ј{Q3иà<¿MFu-bB%{ hœA²áR@N.Ó¬ºûÃö¸Ýß÷cs¤þ»MwÓ¿u÷7ý×c·Ýé'|“ ,µ€sСYŒ† ¤vÖ@RI¥([6)kŒó£ tOlƒH¿´ÜãrNn ‚Äñ›HF :sþÔÝ8.æ¡¡—&- )£4¾<$s¢°3W¤l‚•!#°eo|,FI¹"Õ,’À³Ò#§Õ™Lëõ¢.ا5 ì°QOü˜Óh˜¬Ænn£#iˆÒ±¤ 3zÍkt5© ¨ÓZðÂ>ÅeJšV¯Õl–tÌŠB @~’[ÌÆ³·iP¹øá4T>â}ÌÀ ¤UXŨÐ&²òSŸPõÊääŸl±%¢ÄY%5Ú°=-£UÄpTV¡•Ä–CO5‘0[‚o,÷U?î]‹LÁÍ£ÙÑ-¢+·¸0‘ý"ƺò !öŒaB¤LÆ•¸ç4,E ºJ«µñ ‘C¡|å— ’ÂFˈH•e\vCƒÀ¢i$}¦ñ³DuzïæG\õ–ݼmdIÄIY±/ "öÖ–Qᔃ®´)s²g 4Eõø9–4Áòƒ< k,)† ÿ,,ž`Ù¡r? K&Xa(ÈOÇ~,©”nE¹Ì> êÿŠç_²ŸX=‹%ÍTOCQ¸VŒú©/×Yh‰ –¢¦íј٣.64S=M áŠD¤·%C%ktUl¹H“­SOôsq¤³Åó<Õ†ÌÙâ©ußXçj¢xy°¡äY½°x?i§æ°œ!â³ÕSë0ÔDH(Z·Æ9OŽÊÕÉ9 >„3Dr¶zþ Ñë÷fò§2¦»´H9ÝÿÚ5 6_U,Í¡oßuKrÍiI¾Ùô=]|Pói·?¤´víℽ&»köÿôŸ»ŒuØ'hÏþ¶ï9ÞåŽÓRlÓ=l»ûO›CžKuBßGF!“ÊžG~K+ÚíÚ~c–¾ßéûýÖÍé:ßçÞ®úŽÏ‡[|uê¢hgpž}$úÉé:žõyuŒ®“#òî]¾œõпª~TþçSFýÚ??Fš ‰^v[BÖõ‡Ö{—")ùêõÕTÐfïendstream endobj 195 0 obj << /Type /ObjStm /Length 2587 /Filter /FlateDecode /N 88 /First 785 >> stream xœÅZÛr¹}ÏWàÑ[)ÏàÚR[[¥‹e+¶×.Û‰½qù&ljTÈaj÷ïs©/ZMÓ0}ú4ÐÝ3CIH¡¢Ê:ÔAh¯QGaœZJa¼G­„u\kA’PáFmEà9s¥å$”Š ¬h O X:ðØ(iô( ƒ•bI£p[™È…Ð:X4ð³++Üvăñ#/ÑÀÞC„Âí`øfF‹[p%°h­„Q¨µFÃc1m„Ñ3´ÆX–ㄱ‹i‚² à ±6 Bƒ° ÁÊ!à–ÁÊÑá–ÑÂJæÈa$kc…ååµqhH8k"dk¤›" ² ­Ml·õXU[pìaè-ló(”|Ë¢Á$ÀFN1 àÚ± œaêlÎJ¦- çÀºv é€ëˆÍ“9åµÃÊíå°r„44!™É¤˜cØ›¸I³î. 2¬;IA–u'%È1QP‰ˆ‰"# 0È L89á%ì ¡€W,‹¼ð <á-+Hû‰ Ý$›cÏÖ«Éz'‚c•=a2‡P22^¶t$ÞD>Š`F°ë¤d5€WIÃ@ ’Ž× -2ö/?ÿ,êãÁ¼9›NZQ?ûõÙÑùÙ_O^¾<¢>ÏæíÉå`Îp…§Í|8ß´ÓY ÅQ¿”AÌbývñ¹ýã¦õ;” Õô“ñp:jD€ i»t? |?µ—ó¤ßûå—èdÖ Úñtr:hñèôo8‡V2—RBÛŸÊ€xô/§£_Ϧ£Å°á‘ÂV¶Rè{7n¯îx:Ü\އsñjÑÞ,ÚŸ–â;|4WÿkÚñp ê'h1ž\$'‘ôøupÍzè-Jßjˆ%?Šúüä„“&Z Z­ .&G“ùø¶ãtüåK3k&Ãf.>â‰úz05àFLö}h㘔&Ç|¿l#™JùYºÈéQ¾Àµ¼3¦–3‡ÇÒFFSÚiË//õV7\JÃr¬Iáaø¶amë×§gРù½…bK6Y“y²MžÂù`®M©m©]©©Ô¾ÔY.ó "š V TTٌƃãéïÅ.bCr`·ªB.…)¯ðý-Îpÿ¦™O3ŽœZv"éëÁE³ºÎß¿?ú ¡üøÐN,7›¡Ü‡µPŽØ~o$w÷Dr×ä·xþþ¯7GGÏ€çÉvP\ïD÷²Û¿õüåzûÛ\GË-¹ŽZÃ<ò^<þ<¦‹çëȃÎÄjëÿùnïìÐÐo‡ê%ŽÎUv×=™.0F>¥Ã¥Êá)Hù©&×å°érÈ4-S‘̺ŒùZo©¼e©qlø]l쨗{ºÓ³ì¨úv Z¨ÞÐMú=€š=u‡Ú3øñ‰  ;Ó†k) 'z¹.qÛ—cJœ6ñ‡¸–+¿‰ #a6ÚP} ~@w†®}íc·¥Cíþ¶ ú†?«7€Ú‡iõØâRlÉNlIýmq9®d1Nÿ×úÆØml"t…¾1vÐC„®Ð7Ænzˆ<0ô±Û€" }Ãß îy`èþœÛºó0m¸W\Jyîã辶ârÊ;dMëD:lÄØïâ[úÙmt"v…¾AvЇĮ¾î{}\}#ô-©g¹ãÝÃ×)ûFîm ìÌ.WïD¿Œ/³¦Òßð^]i]åOµ•‡á”Ž•sé³bEb¯W¢û%ôöueyÅxçµcì›l#ù!qöG½Æª?¼úüo6Ã8¿ÖPY/çln¹¾Áœ6³Zzøshy£FåÊc •HÅ£Rt=<ú½_IãC¿’Æïó•”–ïN¾ê+i,½ASe{”J’®Ü²Ú}ÇU™RÞ½sgêÝ>²ÃsyÏ$B¥—]^ŒÎe´=¹”I==†æÒªT)öUX–Á0ÔÒã£ûS Ûe壪|)»³È„*n)ƒtm)•ö ¢TA) +%ÿ!?"‚ŒûKÄb–ñ€²Œ/k¯d$‰¹ †õÀþå ë5èÔÜ¥\®î»’iBLLå%òª»Je3·™…´1;>¡å¿¯#™³ÈÃ6Ûä%æuùŽ.íˆT1Ò8…ÒAÛõ_ ¾Ÿ¡ç½Ò•À#`t6´Ridî_®*I éYέî(kyÕ\&‰ÝÒ¾ÉímèvýÊ슂ÖÖ"•…¡ŒY…dÛ¤WPÿEÆñùц-%-1Ï6Ÿ43JfŒÒW2UÉdxzàl*« +—Ê|âË9…»W€ÆKçv×+|]™×é–Y–“é ¦2÷xÜ ü¿2>ôäl`$&š²Õ]i÷;ë’Ÿq¬8%j°}cSVN+”6¨Ä¬(Ùa$)En*™´;Ù·uÉÈm¦ñŽ:‹ú.&“`$»xçyŒO~Èö€ÊîØói÷¼'-ÉäŸdÚµT +©S‡MPìCžu Æ1RrMýØ6üG«ÀàSÉa'{Þ¤’nZÞÙ¹¼ëº­&”ücÿÌȰ],Ÿo™b§d2$Ÿ{RšÏ±nV³æÎñšFypML\ZîW&…ËÚúìo"¯™5>[>¡ÔåOAGó!G~B ¬O7ÏšñÅ%.ñ Zó§GÎ|Õçõ‹ÁõçÑ ~PÍ_*yÊcÅsήsasd=ιÍc$©ù•üƒM±âS¾6F%íH=9^¯}=>oWãáÑä£ùÓpÛ\ÿkÙnï|/­?Ôpš«ì4c´²«•ìêtÃ)ÏUó¥=_ä‹JW)AiGãùÍÕàz¾¸¾N©O‹Ô¯KI¹ƒmñ‹xÌQ°.v£^c€ÖXû^½•ëÿ”£Öذ«ér0œB³ú¢¾¬¯šù¼ž×m½x˜…“‚ÉÂJn±°_×ïî_ýºê=f»f}è¯ ËÞ­ «Årºª'ÍE²áüj0¿|˜ŽFŠÇÏ%J!qö>®é6wq÷ÿñ4òpsf¯CçeMù”T¨ ðås‡w›/iv¿.vµ|»| ø´1ëÿ7™å3endstream endobj 284 0 obj << /Filter /FlateDecode /Length 763 >> stream xÚÅ•=oÛ0@÷ü E!µr<ê(rH‡ ‚¼¥X[© 8V Ë.’_ß#EYvü!ÙH‘Iäùøt<>ÑßFW×·¤F F˜d’™LÀt0š î£jö”ÇC©D­myg_ã!ñ¸*íb‹HlM1~ý ºúM†ÿÙendstream endobj 285 0 obj << /Filter /FlateDecode /Length 1722 >> stream xÚµXÉŽÛF½û+tÈ,º÷%H$A '@€æçÀ‘Zc‰HÊžÉ×§ª²©¡0Y<00ìnV׫ýQþáîÕ›·Ü¬()-±tu·_i¶Ò\”„‰ÕÝnõ{áÞÎÝvè×fM±o»°.,vµ—è\³fºâÛ®júz¨Û¦½Þp"'y×õ©\TØîgú,,:çžh ÛörÜ…eÝñ}µ˜‡jÍLñ ÿDU÷ðÐ…Ëþ¸ûeEVÊK)lt,Úú8gEÕã“&x<êݹê@"¼ø±EÿÂæÔ‚jðÝãµ÷D’áP÷áæg4"ØŠÛu² wîL>>&¸V"PçúËãíµÒÒOUi¹š{pçCfdî nï«ÞëÆ¿TÅörBð˱F3Pê€Õ_køÓíp݇óa“2‹_«î£wð)œýö.<} 4" Ukt ¬Ûû¡3¢U>aþFÞ£S›%¯BD¤M‘é ŸÝǵáE¹ÞHƃû(Ø6>š°r¿uç¡F‡ZØ4á…OŒ´I¹)ú³O ÛbõŠm…EµíƒŠ‚‘oÞJ÷³¬¤PKÞÖ~èÖ8TAtÞJœ–¼‹²U÷árÂ&1Ø$Þ¨&Ìn)ZjiÓ­Æ}Þ-éfÌG,JňüÜôƒ«v!¶‚èÒ‚+ƒœ÷MƒÕǺù€kèX_.l>­¥,ªã»)v¯±‹ÏªÙ…<ìS »¨ÙØ/Bé'ÃÀø4<Ž–¤ÖÐæYøôÚð¾nvõ;t¡¿‡C…q¦í¬c–ጆǶí ÝB-´ÍaiTo!½Õín 6c1ppnaüF”4¬P çQÞ|2^nƒLB\ðÕ ›¶Û¹..1µ$U8‰ÆWaí‡Áy…Õî[·Ø’øœJ}^cJÝðTdÛöá|¸QçR˜$ÖB\ ‹g„ñµ\ßûP)#`XÔ'·Ù¹sÔ Šì¦!­0Ô±.º:¦ú©¡ªd:pî–ŒÜAJBè<¨s»8³} `ü†´ÆY\7Ûã%Xµ{'vê¼sˆrcá†sNý(õr³Ú€74’N‚Eå㽩!ìyœT,wJä-x÷d‚j?C¾êlR_xömxl±œ°²%UÞ½†Áçj:2Œ¥bziI '\.&ÐÃ¥FK^†0Ê—ã¤÷‹Âð£­EĈ/#ŠHÓ‡RÔC­ygd‚Ñ甲_ª|Aß`ö/ØA±òúå¿’C¦j sÖʾfø9Àu3¬Ò‰áð!dDɨ¶XÔÖÍÈ1hgP¹tÑöÓÃË€šŒ!ðªœ3Q”€RšÂ÷¡ :F~¹à;Œ‘› 2˜ÖÖÒåe3ŽÀqÍ®8‚1ÆyHBUŠ’±ä© ð3 tʹáfì(%K`ë¨+–0\¨“œ˜,LŒ½`”&ô)(X¯%Äc¡])Íh£Kæ4Á„Ð\(Ó§À…&E—* ´0³´€8ƒ—º*ÑÄíï§@¸Æñ¿WoB‘”5¤ ŒLF0«àßX^858¯äXæ\3¢…MÎ+à 8µGÀQW`­e\«¬å9ŽÆPSëpŸ§cß(k ‰¥" =±ö`Æ’I ¡›1©$%€Ñ™$i 1àô™øT™Œ/¤ÐJ™¹G0~,Ÿ"g…p@pj‰ºd'Ê@Ue@S’Í€`L2-ÔhŠ€ŸHJŽÝo¡r4'Ë@©Á4|M¤ñ€žþ‡A'àÛ…—‚ëˆîÍ«Ÿî^ý Eôendstream endobj 286 0 obj << /Filter /FlateDecode /Length 1098 >> stream xÚµWMoÛF½çWèPÑó±³EÓCF= è!ɰèZ€l¤bùõå.)2m ˆu—ÜyofvÞìîŸëwW×âe€€‹õÝÂѱ)Ìb½Y|,ÖMõØnÛýãr%h Ž®ø÷uµI£êq“¾ªíN?áoËÏë¿ָ֕йÞaûPws]qS}[® ²)Úúø¼Û?×ÍrÅVq¿~ù¢Ïju 19%À r켌ÞAg(y—Þ Z†<‡Jï„ÕÒÚzr4D! ’Ž~`¥ «'dzVHy˜‡j AÐH zrF¤ Liªµ4¢¤fDê(8t3¡š «5J1ö<;0G¬†½%G}¨AÁÕ’Ý”•˜ϰʄ5 5AìÈeKdĪÖìM¶“’B´4ß±«KA3¬GR[ @ƬÖI`Çj5ô Íq¥†~YG¬,ÎZ=+¹‚O¬eYv¯JÇ2Yò¤”N:z¥øA)ÝsTŠ2g±ŒÑ†ø³Ÿ¶ÔÓ¡£RØhH2d=Ö—\͸֓ïc7V˜gŠFzUÚ’#‘.3 DBÆ3!2ª ã"¥µa(cãt¥}˜!¢Èvò·r$ Þ‘X¶~D$“‚:"ïHDfˆ¸'r±¬<ø!v¢Ò›kÐ œ±p,VõšÀÐ)‘K/7Wb'r ƒ»†…ݱót-*”|à`†€¬úï f’žÈÅF„6àÏ ºº¶4ÞMbµ›RSâý#!<ÝäÖøû*½xhïèýSÕÄÚ>án6Ë› <Ýĵþ¨(ïqwÊžø]ÂþeàJ³2e?‹~MÿŸãv•\Ÿn„½†:ÿqºy)¬:«^D-v®üÈl?qèä}ÿœèPÕ­‰Î*ïÇ3ªoJ}]àNèæ"B„…þ:Àq7„õ;o?W—øvÆý„{¥ÓŸÌ_ÐÁ_óEð¹6`Î-0¾ CΜ×ùά0zë ëN¹ák*†y^‰‘TgÝYÔÅs¢è¥L+Ôüq!순žÛ΄š?ÄÓψgBÍoùzÔ!˜— d@šßÔµ‘êaÙ» g:5¿m¿ uuÍþ…øÏþ«¸8ÜW‡þ)¿ª[-šêPoÒðöëÃ’ôn¶«Û§%ù"O»¯¾UͦMƒîFÈ`Ч¥Ø¢j¶Õãm¿Ýí›ÌÐÝ ‹|¿Œï0Û7u»©#Éa{[í²Ù¾wpßÖ'2~×ìNɤôÆëän–ž9ðTfˆº„çY¥¦\ñïÒs§pÑVÑŸç80E]5»mw_•!wÒçN¦¹ÓaSÿ×Ôm›¢Õñ­†3ø ØÞns¤m‚~îrÛd j×îÓSʈ2"}F3oL:,=êu™Bé}¾kèýF¿½ûkýî¢Sz]endstream endobj 287 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-fig14b.pdf) /PTEX.InfoDict 197 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 199 0 R >> /ExtGState << >> /Font << /F2 198 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 15459 >> stream xœ­ÝIÏ-Çq&à=Å·”º®Ê97^Øîn@@7d‘@ü¸–hHÂ%m“Úð¯ïÊòTe¼G„µÐðç;5Å©ùjü”ÒÇʧ>BïŸrøøáÛÿûñýWóãoÿ×ß}üý×_ŸŽãø¸ÿ÷×ÿ¾:?åããÿ}õ»þ8>þðÕùñëë?þêøøß_•ø©Æ–>•þñÝP ¢//µ$*{õ䨭Êcê—Ò§#8ªVgf§U*¢lU‚¨¯*Ÿbg…¸ª~ê2…PõóSH¬V•OE>Ë¢ó8>åÈL‡eùdÆÇ_xžŸº~¸Y¶OAì*•¡~:d6r1Œy.@9 •3æ47ÄU8+K«™x•ÚÊšæ®ÕðZåº9Úix­Ø$‹ãÂp\“öÃð¼ QVìU¬+Ã96?³Y6)®< veŒcÌbÙe&¯Õp&ú3æ«T’°[¦Ékf ë§…Õ°„OUf2ž–e53ÖëÃy°áµÉ”ɰŸš²YƹW¦¹ê®6,ò³º~ì‡eût(³áõcŽUØ-£ìÊò(`ÃëÇ®¬–]~yðÂxí ®3#Výp· s®6ŒcC2›e–Llx­º*,–M6Ylx¨²0^!ÞA•QÀ€úá«€ ç,º Øáµ †qìÔ˜ÙòÚ½wa·ÌRü´³1¼VŠ|ÕUÀ¯¬ÊbY?UÙ(W6)*7À&3YšÇ-¯•Í]+"ÿ¬ ðÂpÌ; زËW^yýèä«®CœÇ¶g¥^Æ©³x¼2ÊâW*`KÞA]lCpY-¯ƒWaŽ^™e—K‡G‡£DVËë§(%jÙƒ°x%ê0¹lk°¬rúJ?‡T¢ ÛÜÜT¢†IŸJtK*Ñ…]N¨ê(ó-ÛØ%ò©Kã}2^''s”¨eïÂd©ëF%º2Žÿ!޵ÌÊb™ä@ߨDWêI`£]îÊk ‹0 xåõ“8™£€-ùä¾Q¯Ô}û”O—±eæ(à•×F©Â䲦c\£G;,–×ÎMJåZI³Ëîq°%€ðÊ ¥ÒÇE†a—´ÄQ¢–üÃéT„–­3G:,ãá2Y&9ˆt*Â=GZÖ*¬G:Ì.»e– ÏÎe¶ð:ý¤23̲Tf†]6hK–×Á#›G*¤=+b XÚ1®ì|9˜]vgtÙß²x\eß³? زz É㣼-‹ÇtxÌÑãcµ[vD¾ÕµD7ì‡Ë´e£GÊ»ÇÐ<¦Ãeò(¼a9=Öè±·=Oz ¸ç™=†è²z|¬Ëæ1%»ìÛéñQH–mÏð\9†åp™\vµzlÙe÷¸,àƒ‘Ìíy&•c³Ç\<>az¿áyx Õãc& SõXƒÇ–÷Ìϯ2||ÕÂB7Ùv¡xŒ‡Ëä²{̧Ëî±D-íYé6øž!x|lÜ=Öâ±.ÓžôèÞácÕÖsÏÎ[>Vû“ýÿë°—=ùž!{L§Ç|x,ÁcÏ{½ðÜ0e•³0ê©ø†™´,ï§j+“^ˆm’ÇÇæè±-ì™§ˆ€ÅãýôÃò~â ˜ö,“@ËV<._õ༔Þð±ø†÷Ÿe‹¿°=N,—?؇ Ë<ÞOlŽw×ïg6È÷ùDŽçgß÷sëóqL°ô¤Üuõ³ïûY…u| ‘cóýœp÷½ÎÏÓùqvb]èοëì;¾k÷\—éYW×Ï#;òýølÝGäX}—⻦7î¾[u|zGrã wZ¶>Oß÷ë1ëø¸‡€œ«ïûÅ:?®­Ëã>r;=×çþ 9û¾_ëB'ß­{nÏý p쾟ӳ~ìOûs üœ_ë^‡ó¹¿3æçð{G½_¿qzþ^Œó—Ç9+òý| 9Fß©{®ó@ëþü½­ŽÇãìù~çÊúyoºû®Ñs~\k"?§gý¨'ã²|ßêö¸ª´îÏãõêô¼†³>õ ÙÖýµqxOã2½Õiù¾ÕÏ3zäû™·q>Ÿûãå|Ëx9Ÿ1®Ïã¡q{\Û—ãyÿð‡ç×ÿ55|Pu]?Ðã]ˆðhÙ@1 £bűRmÒðT“ÆÒ²á¦,Q¸Ù¤á¡ nÒðTÒf §£lE¯•Ï– OiX4ixªÌ¶£eê,íb°âè5iØêª7£&kâÚîF]ÕVU‰RRs#múp•¢‘N½œV]–è: [Ô$ÞCMŒ‚¬ÝQY«²¬ÁZ­Š,ÑuY¼WYÕçVé‡U”*¹ªÉšùÐu,4jÂ`DÑnÁ`¤­ÎêIÄþªÈEçŒß_¹ÕU‘{U«.±üx® ³DÌV܃Z.e™ÂU‘{µUQ¶ 5[Ø«XeYóå°Ò%º*r‘FרɂQ—)\¹ˆnI~‘ FIÚI\iTd ^[ÕH[:\{ÀEEâµô@bQ FE®â9£¦ ‹š ©¥‚Q‘OŽŠ\¥‘ùë$jQ—9êÀQ/ÃÆo¹s/À$Yûó@ä]/õRðØ,ûx ù‹ôR¼õRä]på~ò<ä$z)ž’¨¥^ +¢®:jÖ´0ÌU7JÔ2Ê⵬Òïb”¨e—Ù%ºg –QRüô®`;™£DWÒ›=_¤—‚Çîq”¨¥öpèuOê¥`˜Gêé‹ôRŒ’ñ%º’vÞ_¤— öp%jÉ‹@wä»ô4Å#•èÂ*ÝŠ¨—`ÖN ݲûW_¤—`ÖN ±Ë„òé2[öÙ³‚ xÏ„˜dÅRj§*à'ÃAw¤—`‘l‡¥¤q¹—`–R¼2Ì£€VË(§çtÚ X$Å?JÔ²KŠáJí*C9rÃ,]G¨— ᄄ—‚a‘2õRŒ2¡Q„–EpáJ:x|‘^ €Q:Œ"´lÒwbáÊ6û!äŽåãÌ,ó«—‚ÇâqÜA³Ô™lͲϙ¤B2Ô™¤Bz2¼ê¸—‚ÇŒ¨)þk‚†'onî¥HÒ¸—`“®£ÌV†Ù—`”™e’ÙefI»î¥àp”™Ãêq”ÙÊȽn¸—`ÒN Ýc‰ˆõÕK°ËlÐ=Ì…‰w2ÜKº»p/‡=XfI§\f†ARüÇé2#ÒÉ6÷R0,÷^ €´+à^  b‘ Q™6™I*³=›e•¦^  b’Ù 23äLôÉe¶°ñ%÷RpHefÈ¥B½<ãjY_½ åÖ÷R¤÷RX™ä@Ͻ¤Ä _–V^í†ýÕKÁ°òCî¥`ØøÆ ÷R̯^ ;"=|á^ †r{)fY|Úd†ôð…{)8lÁ°èN•z)8›lGê¥à0eD¾¸ Ç¯Ã ÿœ©—‚ñrö”Åß±Xžr‰×xñ ùdŒz)lI½ ƒ\ÔP/@>Á ^ †QvPtÉå± òA“z)8%j©³A«}aš‹@£Nl9JtÏ~ òF¡^ †™K…{)Rñs/ÃÂ7¸—‚CZ9†t™Æ½éÇνŽÑ=VV¾Àç^ €Y><îH½éBŒ{)8 ÑeõH+g¡<Èà^ €´3ç^ ©ÌöìÇ#°=©öl{^9†ôê÷Rð˜\vËη¸— Ýrä^ »á¸Yܘcw¤^ Ç£·=ÇÊÙs< ³¤Ó-î¥H» î¥`xòˆ{)Òchî¥à0T4“†4â ÷RpXƒÇ–÷ÌϯÊI>÷R¤ÇßüJžÇîqÜ€])¯sp/Ée÷8n¢ZÒ~‘Ðá¸Q¶gKˆ•~tÔKÁ0I!ñë {¦êqÜøµ¤Ç”ÜKÁá¸=ë0íI KÀž˜´êfî¦Î½¶¤×:«V;&÷Rp8.ÿwä + Ÿöp/‡ã$ß2 ÇŲeŽ Þ={¶¬|£Œ{)8LÙ²ñÉ'÷R¤Kî¥àfÒnes/ÃÎ7¬¸—–ÔKNÕ¸—ÂÊqš•>´—‚Ãqò¹ç˜IKzäǽ¶¤^ †'ß¾ã^ ÇéÇžýp™é ½é¶÷Rp(_õ`àG$ÜK^ãå×%Žßž5z¤Å_(c`q/@º•ͽ Ÿs/@ºíÀ/ÿʨ…ÜK&J+×4ŸŽÇÛ@®3°<&•V Žù ÞÞÔJ™~úÒJÁuÎÀ•_Ž•V È´³”V ®ÇÓÏ2½½»ïu~ž¦7•S+߸éú V Ȳ>©•‚ãÊÓs\‘å•i¥àzŸ /Ýr=îžy.ź|-­|wßã¸L/?H+ÇÔJÁõyŸür”´RpL­\;žÇeozˆL—‹ÒJÁ:ÈöàV Žùý[×XvãÒJÁwò=®J÷æ75eüRi¥€\º˜¦ç˜²‚«)ÔñE[)XH+×ãý`:E’7­å†Ž´R°nüJ°´Rpœø÷²u~c~vâyœ/yŽX^Š“V «F¿h+ÇôÌÒú”éq+ëÀ·<¥•‚uä‡aÒJÁ:ñ¥¢¼Wæz Wº7µR°–ñÒJÁºòå—´R°nüR©´R°î²¿àV Ž©•ÂÞÜJÁ1µRpÝOÏôîŒã¸LÍ»ñ/ÚJÁ:ñ 5i¥àz rl\øŸ´R°–Q ¤•‚c*,ÇÔJÁ8$~ô%­Œ¯2¦[FÒJÁw®|Y"­öæ·ÓöæV [ýŠãRìvš9Ž;ã·#ÿ ÜòèhFe¯žµ8p»UÝkn·ÊŽú^!:ª{Åà¨ì5·[%Gm¯•½Êé(;ê{Õè¨îÕNGe¯~8J«ò+¨ÛvÊÇ*{‡£ì¨ïÅñðê^ñt”­‚„GÓá(9jVé¸5Ò1Ås±j‘UGÙQß«ÆUz¢WÿŒ4;*r•Žß²U—)\»ôE·PmrÔv¢9Ü«X‰?ŽŠ\Åk‚·‹Ÿ÷óCÛ­BtT­ÎWÔÖ(JX6f«&ÞØWõÁ½Nöj{Š\5÷e¯r8JVU¦PÚ^5:ªV]¶æ¨È‡ú!A@ Ôi\zÂwºªv¯f•4*•½¸aÁS\‘¡Ý«­:¥²èÒ^u/n_ð”†nc·ªMqÕküõëôÔHÇÐM V¥×XäFå—5šqØ´J®õ9*k¤aæ¬t´öZ¬šÌõ¨º§’ì1)"»W·ÒÀo«²4Æ p¬Q’âqZÝÆ7šcŠŽÒªÂ9k¤QÛQu«ê+»Õ¨º§ª4¦¡(¬‘Ž>*r§Q‘«tlòQ‘«ºDBó¹ªñ u€5jòÉr¬êRÉt»è©q^ó«Ô}`Ëq'Úañ8žõZ6Ùt-»ì{´<¥g_wäìëžÔ_`φ¨ÃNS= b‘ j<¹cg_vÄ.ÉXéˆñ`x :^-£”;g_fÄ&‹0žqXêàßTf å ɾ:,[BÔ4ok© ó-ûº¡d_fÄúV°K&óŒ–YPœ}µäwè9ûjYnÙWË&3Ie¶g³,|‹Y²¯«Ç|ºÌˆY0wÄ.)Ó]VK¹))ÙWKÍÍR™íÙ,Û}XqÀ ™[*³ 9ûj™$±IefX$ JefÈ”ßMYÙçðÞáD 2¼7•™a’Ä&•™¡&6©Ìž<õýlξî9’H b—Eȧ¥æÏù‰†Ãî±DÄ(+§žˆ÷ì«¥&Ç!ue˜ÅÐ’ÇÓ-ûê0»ì–ÒùK²¯+"u’ì«eŽB²l’¹¥RY˜ø&„d_-“$TÇópË"‰ÜÜ-3_ŽKöÕ’Ë›³¯+ _IöÕ2 [BÌ·ìëž= jN¸—=9ûº²ÊÏŠ³¯;b¾e_VáDÔ”i舺1Z¶9“T*†QH;™=‹ÇñƒÃ†¨ X3¢.`í[tYuåô`ÙçÊ¡R1Œ’É<bžQs¤´¹·¤Íýd.$ûê°{ïŠì™¢æfSñ˜ĬLˆšæŰò” g_-ƒä„ÇÛ-{Žez +î± É7J3ë¢f#æñ .‹ÇpX9±áì«%çî8ûj™”‘O·8ûjÙ„ù°Œr°æì«eÒÜlóHÅ`¨)âš=Ž…¥¦j[µL’0çì«Ã¼'¿¯aÉ9CξZVe±”îl’}µÌ’n¥MfÈ;ξî9Þý])¹,ɾîYb’ů ±É¶h)¯>JöÕ2Èâ÷Œ˜dñGVpG~CײH&“Vû–# hÉ…ÄÙוڹ€³¯3"ŸlsöuOÚd†Üñ„³¯–šæ­Ée³Ôƒ&g_-£,þx‹Ú²ÈLÒ&{r¼/D››³¯–·aÅ9ÍÙWK¾)ÁÙ×=K¶<åGÇÙוAל}µä¾Bœ}Ý“Ïn¥?g_-³ Â}T#3`I¯GIöue’äì«eÙEËôV°È„hµv™Ðx'tÏÚ,ó#ûê0m)ÙW‡1ß²¯–´ë“ì«Ãä1WKé/ÙWË éÖ‘(س7Dê.!Ù×=GöÕ²JÚ3DD:Q—ìëÊʃ$ûê°yÌ‘.Ò%ûjI¶$ûjI»zɾ®lü€U²¯–Q¾ŠV¬a–„jˆËÈÅÀÙוûÍIöÕ’ל}Ýs<±¤×º%ûº'-à“éàKɾZrZ›³¯–tG²¯–œÈåìëž¹x¬uOξîyˆôV²¯+OIÅsöuÏTéÁd_-¹€9ûjI»Mɾî)_ÉÙוҿ_²¯–t+L²¯{RÏ8Cz¸&Ùו‘ofJöÕ’tœ}uØË-ûjÙ$ÍÛÒžœ}]™ø‰d_-é@/ÙWKîMÀÙ×=ÇíYKzaB²¯+³dÈ9ûj©ùUé¡¶'ÄÙ×=©›•!ÏF×vl–h)A-ɾZÒLJöÕ’vª’}Ý3dDz!Ù×=©§Ø–%XJ/`ɾZR‰JöÕ’nYHöuÏV÷äì«e“üªÌ䃚ªåì«e’¯§j–å–}Ýsœ¸î™2"]ÔHöue—ôãì¿¶a ˆYÓ­§Ë‚H7Ø%ûº0Lì«%g›9ûº#g_÷l‘7wѯ‚”®R[ž'"½ /Ùוòº•d_-é@/Ù×9ûºçòáù…=sðØ›¥Œq£ÑW`Ž>Hô¸¨ã Ý“:û®8ò›F_³FSS|ã ݲ8gß5xæè«qâ‹F_Sç M4újœ5ÚÉÑW`Ž®Iô¸r4™£¯Æåm Ù75t\;täå©:½ÕõW×|d7žÑe޾îÍÑW`ŽŽIô˜^üÓè«çš€›F·9ú œôó­:–è+0GË$újÜyL4¾z×cÀ–è+0G‹$úºšG_fô˜÷'}Ý›£¯ž©ÔêSöw}æh D_[SÛ§Õ2jŒF_ë=új,Ý4úê9vß%As´\¢¯{óûože~ŸžÑ\~ëkk‰¾îÍÏá÷æg±À™ÍÑWãÌ/.hô˜—G¢¯Æí•è+0Ýš×è«çÔ=ó]tcyä Ñ×½9úêZzºmÌ÷6\wè®–ÆvOÏh*E_]ŸÉ7ÕÓÖeù¾Õü–­±îÏ8új\¥3½D_­e|5‰¾Z¾%)÷'¬5zÌÑWk[T¢¯Žù‰óÞ|Fo,ý[%úº7G_óù–q“ã G_›„-$ú꘢¯{sôÕZ:ýÊÇ1붺~Ü/Ñ×Õ!²¼}Ýù…•ñhº#ÕÃwüÔršGíÞ e+:Þ»¹ÿ)ûù§KìVÿô QM^Êþë N÷»¯ï ôm ‘üÍ~üêo?~óÛŸ1À¶|ÇugþŽß~ûå¾ýüÓö71„Óo~‹¾iŒ=øÝŠÿþàÃxÈá0ñ˜Ãýã;¢ 3<~ð/Òíbñ(C ïØ åE»pýD$Oºc¤«šÀO¡,iŸGÌ€tøÕÊÂ7fyàáåhB¬+Çͯ$ŒÁ°ð™ ±¬ן´£òøË¸ðÓÞ ÀVŸ'¿xcÝxh‚ᬃ I.Öc˜]šrZ'y_“œ­õB”Ü­9å˦õâš^P«u«¯-ÕNë.b’‹ñè‰QÔý°>#ß#'ë Y“À ­›V!=*4C7êÜu~©Ã›q’Fï6çƒoD;pzùšqk9Ñ ü@Òx\Hèü^2ÖÒzœ­Ç;³Myã9½q³«ñ¨'ךŸ÷tºqã»ûû×Õw:}çãÓ7ß%øû#Ï-¾qõÝOàSž·pTÂqàzpLõà¹ø¦í혶§ãtúÎñ›ïšÞxýüâ}÷óówÏ4ž¡ëçö°Žá«ïçöÎoÜ}çè»ßÏí Ü|·ðÆÅwÏžï/§üÆÝw®¾Köý\_ÖÏõ\|¯ëø{ÎK½Wß!ù~þ€‹ïtøÎÑ÷s{wh¾سÖóÖýxãä™ÞHöÝ}‡æ;oœ|K½o]Nß5úîÍ3µÿv}fß!¾qõý\_ÀÍw.¾K~ãŸõÜ<·e}Y—ãÓwßµúnù»ïuyŸîô¼Õó™|?×—u̾sñý\O“î¿äóðªïûü"§ê»ß-{>—ï³~~ßjjòé»ûÅw<Þ8½q÷Ï7^?¿¸Dß-yŽô<Âs¾ŸÛË:gßµønÇ'ÏtãÙõs}Z×ÓsæëeÇÏí±ºŒÿãºÏü¼ÇsȾÓé;¾Kðݳç¦×Û[§ìû¹¾Vw½žØú9¿ÀÅwmŽÏC¯7·É÷cysô]Šï<ŸóYèâ»dß÷ómèä9<ÎW‘[ñ½~ßÓó~ÂÖÏõaý8Þ×èû¹>V§Çùòúù§óóxœƒïÞ<—Çùòs~­ãùÆÙ÷ã|ʸ>7Æ”øö]}?ŽwÀóãþ<ÞÇæû9=àî{Ÿ‡Ãù<2¦Äžïì;¾k÷—éYW×ËùðãxoœŸÇàX}?ö×À5½q÷ݪç¢÷k7nz?iëóô]ºçþ¸‚œ«ïÇñfu<×ûÖáq?ù~½nŸû+äìû~=|߯—­Ós»ïçô¬ûSãüÜŸ?ç׺WÏõ¹¿3æ÷%öîú<›ƒèŽÏ7Ïó]àÇùpŒ¾S÷Ÿç‹Æùù{3.Ïó!àûý6ëçýèîûq¾´:ŸÏëYàÇô€õd–ï[ž×«Æùy¼6^®«>OÜú±¿6nÏã©q_¦·¸Ïï3^Î÷çãÆõ¹?0^ηŒ—ó™Õ<…ãô¼4.Ïã9rs,y«½ëó~Áêq?½îýõˆÖ¿ ÎSöÑ Î_‡dÎå÷‘ú…0©gÁòáïU>0.*@í[ÓëâûGoÉùñã#×>)åÛGØ÷ÈÌÍÜgö¾*nËÿ«Ûjñï묥ҳ;ÚöŸàÖ÷ÿ|´)χü=¬€7?ޭп‡Uàÿ}Ètï†ÿV‚ÿ÷ãÞVÒ¿_«A~yôC«ŠwÊÈc5}™ÛCýǯ¹ùǸ/ “ãÿŸ"Íôþø+ü~¹Á;]__Ëð»_üÓ/G'æ_|ûù‡?~üÓ÷¿ÿöã§®vý£Ïßÿøï_>ÿÓ/ÿùã›_ÿ¥k‰ÇM­ rç)üæ‡û÷»¾òWc2?ýéß¾ÿüåã_>ÿøí—?}ÿíÇ?ÿ×çþðãœÄ_µŠéZ³ï†žÝP(%X92=ÛŸ,lÚXEº¡Ü™5®9ÛŸ<´Y·?Y8[YHû“3`~vCY8›\„hX^-BBÌÚ€#Àª xD^•bÙt6®ª°œ39Æ4_Xy€i{b9›väXµåH9›.àuBgÙ'»aÓ0 5;±Œºøµ&e;]Àª+§€÷'+»d¨Á‰eã Q{“…ýÐò>e¼ó…§’G<_&3 ¬vjkâ0D—ÕðÔ†3§Œ}¾ðœÌ€I›a\l™µÊUÀ`¿µ1Yô'yÊé “®:%}aÑÅ¿ xeÔøµ/±ŒÚä*`Ë¢³q°¥üœO=ýΤ?SFL_˜gS“8[ª\kie~5”¹ Ø2i;ŽQÀ†]›UÈØéw–W+QÀ†]QðøéVî,mJ,%DNMJV6î-)-J,% O J,ç„bœc©/ìÜóSZ“Xίl8WÎ(à'çåÒ•9è·•ZöAWú|m×Ò ›N¯Æ7®ÀáÕÕet¥Nº&i˜uëªËC­;î8jª™‡–Ô>u%Až]7F»nã¤]e"Èn‹:½qƒnÚ5#àÙõŠž*"Ï®(£Ý.p›îÀó·u ìÕM—W†Ê~zvU‹\ÏÖA¿/è|ëJ‚ܵ+HIÀów¹ž­“.o Ðs}Ó°Ú«»v=ˆ\ÏÖ³^¨ž=wësþÞ©+ rÑùíXë­+‰õkxãâ{Ü^¾w%AÎúùQoÀíÖ•Ä:kW#n‡í:CÏ®G.zUF]IÓtƒ–zä¡·Œ«î¯yð-`¹Òáá·€Óü|ƒnê߸úÎ'ðÜŸ®Gë¹>r‡žë£D覟/¸¿¶g-ÐU»¦P=Z·[Wãxëº2†;NÚõ¥WèÙõcÔ#°Üó¡7ëy¾@]Iã­+ ²ìOy8à:»–à ç»Ô•Y꺒 Ëùu%An:½Þ¸GÝßRWä{Wë¤ûSêJâºDè¤Ûc çœuyõÅâ¦ß×àÙ™ßÏ®.TÖr¼kÜ-|uÑýMãzóÜ¡‹~ß¡¥ž×ãêªõÔ¸­¥kZãz³Nú}±AWý¾T€›ïé©]¥¹+‰k\Ô:«;vÑùéš»fñãkÝRº’ óý4îJ‚\£ø ÐM?/dn`½_Å]I£N/Fh¾_Ì]IùzO‡Bµ®úù|Xg½ŸÍ]IÓ­+ 2ŸÏÊpªÀM]3𩿺±…§+tÒõIÃÅyÎм¿—!]ùùw%±º¾è­QdÙÐyë(]›¸+ 2w­å®$ÈE§—#4ß/æ®$È]»~Ðp~«õ|—»’ '_Ú^Öü”ž»’ Wßžõ~;w%A–ýMäÁQ­åxy{XKWêJb]ä~>w%A–õy{XËú¦®$È]¿/u`½ßÇ]I“NO†k\Ýõó2|ãÓMîGÉðÀÀA¿o Å œu~i`[ëªÓ£í¹ºËó îJ‚,Û“–í•x}Y·[Wãrèï-ép«£ÎOMÐüÜ•Y·¨+‰µÞOà®$Èr< ®$Èr¾J]Ie{R*YÎG¨+ ²lOzíÄ:Ȩ5Ü•™ß×à®$Èt½']Ii&]IézYº’XG~ŸBº’ Óý0éJ‚u~Æó"à¬óÓ2tåù9õûV÷S,ß÷´Üo®$Èô<]º’ Ëú¢®$Ȳ¾¨+‰uÖõE7–ƒÎÏx^L÷ë¥+ r®ê]u~ÇýF`º^‘®$Ö…Ïç¥+ r>Äãy+pibu5§fd8xc¹ß+]ICûáÀ)ªtáå¡ oÝø|Lº’ K½ÓË×Ȳ½èÂY¶Wæía]yyiÅ ÷,îXFe“®$È1‰Çý,à¬×+Àò{¬<\¯uWëýÕíÐz¢®$È™M¯(#WuÊÀ'ïO¥+ rdw.×:«i~­{PàÀ÷#¤+ 2ê!]I«zœoóï•»’XG~ŸEº’ ÓõŠt%A¦û5Ò•™îJWd:®$ÖI~/Ü•™ŽÇÒ•™žÇKWd:_—®$֙Ϥ+ rÈbú>k>ÞrWdÞßqWä~ˆÇñÖX†[—®$È1Ši}Xóñ”»’ ËöJúùÕ·¿Ïb,£FIWä”Äã|˸éòPWdYžÂók-õH]IkSgà.ÇcîJ‚ÌÇîJ‚,Û›º’ ×C]¡yÈ]IŒ»¼Ï$]Iå÷@7>KçQÀ|¼å®$Öº¿ä®$Ȳ¿è^rWärˆÇñ˜î7IWk¹Ÿ*]Icý5pÑï÷£€¹Þ¸+‰µžrWd®wîJ‚Ìç›Ü•ĺÈþ–»’ óñ’»’ Ëú¤ _äÖŹW9ÞpWdº_%]IyÂ]I¬å~©t%A¦û Ò•™÷ܕĺËõw%A.]ŒÃ¸LÔé]+™ë™»’ —*ŽšÜ•ÄZîWJWd®WîJbä|œ»’ ËüÒû€È|<æ®$Ö2jžt%A–íEÏÑéy¹t%±N|?Bº’ óõ&w%±ÎROÜ•™Ï'¹+ 2=O®$Ö…Ÿ—JWdzž)]I¬eÔléJ‚Ì¿GîJb-ïJWd¾Þá®$Ö]®G¹+‰ñHãR=qWä¢Ó3>å|»’ ß»’X™îJb-£†JWä{WkÉKWë,çKܕĺÈùw%±–÷­¤+‰5½†õE»’XËûNÒ•Ä8R/Ü•ÄZòÒ•Ä:Èõw%±Nr=É]I¬‹lOîJbÝd}rWãxÊñ»’X'9á®$֕߇”®$ÆI¯—ø}Cã"ï«JW’­¿~åÖ)Ÿ>^cæÜú+§~­{N=kš|eä‡3˜¾_™š9õ…]CÏG0Ì1Ô`ú¶æ`ú–P^Ö`ú¬äœúJ =‡ ØuB1–WŸƒé;r0}á©ñq¦¯Ô8çÔF]u9 j@<ÀG0ݰélŒ`ºáÜ #˜n©!ï «† 8˜n8ÃôítYgÓ‚L7œt°aוӛá|”sê†QcÍGAœáò0ipy°á=˜î0D—°ë„âiØuØ1º2´ Ål8?%— °h;D [6ì·`úÂ~è+ÞL7LúU¥æ=€U'T+`× `úÂóÕÒ eÀ8Ù³nОçíÍ0è ½L7ŒÅ> `½ÓFòr0Ý0NvÀ2£ç°j;TÀ¦§aÒ€Ó ã=˜n˜ïÁtâ‹?‚é†3Ø=rê õµ&Ž¥[ÎÙl©*ɰh …®Œ,ç‡G;¬€åE·œeðÂú*†Ö=ö8Œ6,ðlX5^= Øp†·G/”[›=÷ØåDÕ,³†®¹Ñ©çF vÝ Q[)g§NšWß|B÷™DÏÀ·$üxRœ4éN¬gRŸ:!x.¾[‚nº¼­AwMÊS§ƒÕá•´§NÖ²¿ã¤¹ë -I,NšwMRŸ8Ê›˜’4žÓ£NÖsz£åxÊIsà9?±§W[:yì]}KgÕsy¨­óLªwèªË["tÓ¤w©Àù•t§z´Îº=ZÂÖù¥z´®:¿#IÜu~{žÝ9i|Ngè¤IdªGë¢Iã³B7MB‡[“Ø¡WíÄÆIsà8“è :ëòP=ZMR$žë<Ïà9i<“à9cÏ$z÷]"tÑõQOè™ä¯ºkRž:ɬž÷j8iœÔTÖõž4nÓù»u8tÀIsà8]¡å÷ÈIsà¢Ik鳺N7è®IìT€O½Þá¤9pœîÐE“ì%ÏÞŒœ4Ž÷¤9pÒ¤=uʰ.Ó º©G=kÒM’æÀçLŠÐa:A§{Òx&½©^¬ëL¢Wè¦'ðìÁIs਎:M7è¬Nz&éSžË“ô\žÜ »z$9ç³NšÏõ1’‚À3 ß*ô\_TOÖs}P=YϤôxÓø‘47.šã¤9ðL¢S=XÇé 4 :ôLÊÇ ]Ô)@·éÍ÷s$in¬%i|N7è oÚóõ’$Í=×ú•$ÇžIø^ ûLŠÀM“œ4ŽÓ z&¹©ž¬‹&­Ç›´žÃݦ;4wʤ¹±¼)©IsàS“ØãMqà ¦z±ÎšTÏ z&Ùsƒ®šT§z±î÷¤ùêxhRŒ“æÀA; ´ ïIs×Z’’œ4.š”>t×$÷¨ã™å¤9pÒ${¬ÐU“Ö鄞Iöñ¦9pŸnÀò¦§&ÍO]ÞÚ “&ái{Yg]´=¬‹&Ùi{X7]_#i Ü5I~Dà¨IQNš‡™$ÐY“Ø´=¬»&ÝÓ œôxÄIsàSç7uè™ôÎ:éò”]g’uÄIsà ó3’&ÀQ“Ò#) œ5i=’æÀE“à!BWMr‡ Ý4‰h9rÒÜX;ÅJÒ8èüŒzŽ÷¤9ðLŠ·:ëüô]t~zƒžIò¡ûLŠÀQ¯'8i4I^:tÖ﫺è÷µ ]g½CËþ”“æÆI;qÒXꙓæÀRÏœ4ŽšTÏ;ó=i\4©^+tÕ¤ö ›&½Çó4ã¬IZNšK”“æÀ’ôå¤9ð#iœ4©Þ2´$Oý¾Õü&®$Í›&± <“Ôœ4šÄ:ê÷ÅZ–‡“æÀE§;ôLŠûÕÀsyr®º=9i|jRž:UZó›Ö’4–$.'Í‹&Ái{YWM’ûíÀœD¤¹±Œn¢IsàSç·%èÀIpNŠKÒš“æÀœ´‘¤90'M$i,IlNšwMÚsÒX’îœ4Žšä>+´tZà¤90'%iüHš7ý>êThÝõûz¶îøóœ4æ$Š$Íe{pҸݓæÀÒ‰¡k§¼§¥“‰&Í¥'Í‹&ÁÏ-IYNšs’B’æÆÒ Z“æÀœ$”¤9ðL¢·4)>ÎgKTèªIô’¡ey8in,Z5i,IhNšÇ"¦NhÖY?/ß·š“`’4nš$?O讟X;¥HÒX’М4æ$ª$Íg]>¿Z’Òü> pËâñ>¡±žOHÒ8iRü(Ð|<”¤9°$å9iÜõó1IKÒ8p½òóX`YŸœ4–õÉIs`N*IÒ¸i’½àÊ×ëš4–Nü< x&Åiz֜Ǥ9°tRè:?«'‰9inÜ$é*Isàóž4æù•¤90ϯ$͹ž%iÌë[’æÆ]“Ò|¾ÌÇIš'MrK'ÅÕ’”ç¤9pÕ$y)м?‘¤ùêrÈùž$Í£&Ý[…æý¡$Íe}rÒX’àœ47>5éÏ׋À|¾&IsदNzÖE]2t»'͵‚$Í9i)Isà|Oš?’æÆ‘ïwiÒ8Þ“çÀå–4Gn·¤¹u’ó Nš#‡[ÒY–—ßg®šOš“Òœ4·–Ä $Í‘9IËIsdIêóûÀ|>ÈIsë"Óã¤92Ÿ/qÒ¹j’ühÀõ‘4GŽê¡‹zÜ7ÖN[|c™÷œ4Gæ¤6'Í­»~ŸtÊ´Ž3Iž ù÷À>ÆUò ’4G–¤÷ÉÔ¬»úLÀÚ©Š“æÈ\¯œ4·ÒI†“æÈ|¾ÌIsë(Ë“¥™5ïÏ8in-÷«$iŽÌ×kœ4·Î²?夹u‘NWœ4GæN/œ4·®’„礹õL²S8Ôº«ù|kõôR½sÒÜúÔ$8%Í­åy $Í­¥­$Í­«ì9in-ïëIÒܸk§yßpqБ 5i¾ó+yÎyóèþ[äç±ß}D¾ñ,þòññõvˆuýS~Õòõ§òêåãO—”»þéA'W¯?eÓŸŽèiè÷ßÿ†~ÿñ÷߿Ƨ¿Iª>ŽKÀë;Ç› Çžþßüçǯþöã7¿ýåÇ7^Ǹ÷¿ã¤«¹×wüöÛ/ÿðíçŸþø³¿iÜÎMüM¿ù-ú¦üêÿçªendstream endobj 288 0 obj << /Filter /FlateDecode /Length 1555 >> stream xÚÝËŽÛ6ð¾_!ä$£+†/‰R‚ö°Hm‘´[Ä@[4=È6½V"K®$g»ýúÎp(ÙÚ0Í=(| 93Î{F¾Z^<½Vy$8+x!¢å6222J3.u´ÜD¿Å¯ËîýBæq»&þ°HT¡ã~èÊ¡zË•¶„¤qÙøÍ°³DC÷LÜ6t¾ù–öí"v[÷l‘dJÄ?´ƒõ\ê¾%êaW3†)¼fqÙUe³övûàÍõq‘ˆxâkðîìâ÷å÷¡Xª ÒjWþUv ²æÜ±Ñ\Ä TÓWC…#\Ñò–§Ü©‡4òVaâ¦ÐïZ|ä®2A ª§‹ý¾¬kÛÑj}W ;ééu:3¼â†™ uîû­ ª¹{¤tJx*´ Îã%y¯3åMléu¯."QŠ3Å‹¹=l?Tûr° ºJ YÖ“I%/îë» ÑxäîgpñLyÌŸu¹š¡žüjËÎ?ˆrT®ìãÉeþ¡.›áÉeH‹¯Ài®ãûX¾q™°­¬—î”Yˆö™õÄ[ª¶·¶Ù°C;×ÚYsÔ¼²gúæ”ÿsÞtí¡í°—õ¿7høi¥âSf~¶ÍqÎìâåòëD$„aBBýÈ2¨5:Zï/þ¸`9tí(ζ5Þó€§ßíEô¢½ø ~#*y&gL¯‚c—ÐÐÛa¥²:®À­`¨tW“uêz½™ :>Ž6Šã@Ôª'ÜÖjØÐÈ/¯^/ TÕucû>ÙØ:ÍjPµRñ`Ù†.z ܺNLîùh‚„6ù`‚„^:õ5DŸ¾$ìØ^éUtÕí™tôpq;}D¤=g\Ù(§Ô¬ÐŠä|aQžÆŽ#‡Ûd±·òP%ýP{j˜~„é}ó)Î*RÍ´{Ê/¾íÌúSÁòB¤!>šI=õÇ!ÄFAc.ÎØgGd3IãǬ’䇰i÷¤ð¡#;­!¼-Ê÷UsKXÃqP?Ž£"t´€<Â(–©é1Ò*e:úùs—2?Ã%£ÅŒËs¾ 餋|„Ådž !˜ä‰Ÿÿ&¥§v ƒ3<xãfîéÓÃ_ÆLÓôu¡4F<Ž×èÌ%ÃãŸqp²„¤‰¨ÁšVƒ…±‚FSígÀáŒNÀ…¡"¾%”ûlRØÆkçŸ3x·®ÊUUÈ£>XÊóÑ7D£³È°ÂpªRŒs Ê3cr¢B²xí¬PÑí£Â»÷‘ s°zÁÅ,ÎY(¨ò¶P±R¦t1ëÉ7!¶9KEñ˜$ürâÅ„u”Š =Ä»!ãsåŸ|)?}R~R3õEšõ!6)B‰f#ím˜[Z¤_ZótÎãƒKжï«|Þ$&Œ¥)—ôsÿ¤&5j\þïÈbÈ`S§O¤®Èpª.ƒÊèŒåÙÃÌR¡ÌÊà‹j¦ ‡j‘àD†ÞºÓÏ<(¯C˜¥ÉóÏÙ±`"¨ÀJk÷o}æÓŠ¢„8É}² 3NWó؆4endstream endobj 289 0 obj << /Filter /FlateDecode /Length 739 >> stream xÚmUMoâ0¼çWx•ÚÅvHU„dçCâ°ÛªT«½Bbº‘ A!úï×ãGpÙö?ŸgìÁÜýxYOTÝmÍ$|äìÕœºs_™Iöss îîò®:L;ü2¦6õ8{zb/}W­ÍÀî³U¾j›áÁ’Wmµ?×fd}OÒæ½i=û°û7ógRúùd{nöCÓN8¨oͰ·”of™-±Ï%æü6ý©éÚ'&9ç¶P´uÖ`àL/"Øt”µkÚº¿(a[è „duS —‘û®ö$°xýqÌaÕîº MÙôÕNž†þÃé{¦Ï}mú¦}g÷Ÿ…Ù‰õùx܈` étw©8éÄy*ás£¤Ï }nÔÌçFE>7*ö¹Q‰ÏR>7в¢ G]¼;~îó¤ŠÛ<©ò6OšßæI‹¯yÒòkžtèó¤g>O:òyұϓN|žôÜçI/|ž´òyÒÚçIg>O:÷yÒ…Ï“.}ž2îó” Ÿ§Lú> stream xÚ31Ó³´P0P0´T06P0²P05WH1ä*ä Ì¡2ɹ\Nž\úá \ú@a.}O_…’¢ÒT.}§gC.}…hCƒX.O›ºÿÈ l¸\=¹¹¦%‡endstream endobj 291 0 obj << /Filter /FlateDecode /Length 232 >> stream xÚmαNÃ@ `W"y¹G8¿½DJS:TŠD$˜02€Êš»¾Y%¼AÆC:Îø d)²ô ¶åßM»ÜœSE-ÕÔ¬iÕÒS¯ØT”kµþ<¾à¶CsGM…æJÚhºkÚ¿½?£ÙÞ\PfG÷5UØíT4 vFÏ@ÿi&žà þˆ ø3ȯŽ9 8 6”ôTP“š=B9éA°þÈèàþˆSFBÔpŠž±þYv¾ÏÈì­Ïñƒb‰·µ|•T¦dv©àdp°Qvð²Ã[ü6¢}éendstream endobj 292 0 obj << /Filter /FlateDecode /Length 221 >> stream xÚUŽ1N1E´…¥i|ÏÀk²¬BµR[ AEQAÊ h±æ£ø.SD;Ì&ˆÂOÖÍŸ×õ—7+nyÅ»kî¿z§e¯aËÝÕyòº§õHþ™—=ù{Éüùñµ#¿~¼å@~ÃÛÀí † ,¤FŽ€“I# Š$HŽy!p¹9ÂsPØ SlQ¸ S]BS‡ ˆ3¾O?9CŸ”ÿÈz øÃô Ý5I[lŠIïªÝ†‚˜\…ÀNÍ+*iDê=‹kçìœtSËèn¤'úá-oœendstream endobj 293 0 obj << /Filter /FlateDecode /Length 190 >> stream xÚ}Î;‚@Ð%$Ópç.$ë‡1q ­,Œ•ZZh´ŽæQ8%aœaÕÄD)öeç—3&SŒÐÈKp4ÁC g0GÊg‚Ô‚Þ 1 œm—x½ÜŽ ÓÕ cÐncŒv`3TJyĨ€ì€J6ï$ª¤(úr&¨;«;ÃÒ/X™y9pÿõ‰¨áEDí]•—K»º÷Úv6}zκOßYõ8Ëywf.'+ú¶yWana OÙq endstream endobj 294 0 obj << /Filter /FlateDecode /Length 286 >> stream xÚu‘¿JÄ@Æg¹"0…y„Ðü!¦¹…óSZYˆ•ZZ(ÚÉ]-r°vABÖùs… .™oçûv›åI{F%Õt\×tZSSÒc…/Ø´\-iY¶žqÝaqKM‹Å%×±è®èíõý ‹õõ9UXl订ò» d£› Ìyb¤R.ñêaaÈ ùäçàc¸XŒ"ë`?±5̆éo,ˆŠ,ª ß«Üïõ°0È„gó_R°Pˆg¶)‡¸Ï$ý.îz…4üƒ/ƒé@ciJÖKJîÊ“núÈyAÌ u%¬>@+âÀŒ¿ +ÃÖ0«@®:És <#ŒNÆz3‘›¥Ìb:‹ÉÙ%è^txƒßÛºšóendstream endobj 295 0 obj << /Filter /FlateDecode /Length 207 >> stream xÚ}Ï; Â@à‹À4Á9›˜´ øSZYˆ•ZZ(Úf=ZŽ"xS¦g7⢠ûÁ?³Ì2AØôÉ¥®Ü ¤^H[ø’]Mc³ÇaŒjIj*UTñŒNÇóÕp>"Õ˜V¹kŒÇQrtaäõ‡üŸÍÊì—Q àd,ɹ±¼uîæ‡¹|›Š--Ö"1³^ŸJ½BòòR£Ì‰*Šz¢¶&vƒ:ÍN¥µ°{X5gšSæ\óUäo«.Nb\à³Þendstream endobj 296 0 obj << /Filter /FlateDecode /Length 168 >> stream xڕʱ Â0à+…[|ï LBªÕI¨Ì èä Nêè èjúh}Á±ƒx&A… Üÿ—õ»ÃIÊÝfŠz9mPk—¥þ°ÙcaP,IkS×¢03:Ï;Å|L EI+Er¦$€ä éÍÑ4ßø.õ/­þæ æú@'PE ‚õ\b<<÷I ya™9PñûpbpO)T> stream xÚ•Ð; Â@àYRÓx„Ìtóð•Jˆ ¦´²+µ´P,Äx4’#XZHÆÙ º6.ìWü» 3Óê4£yP#ð©P»KkwF’zÔí½ŸV[ŒÔs #ÔcÉQ':ìÔñt@>ê!-|ò–˜ äœäª§à䟘L=Ì¿;üw˜3ÃÔ'EP+Èlê7·âjÓ¯›´äòƒ¼äi£Ê=|á¼:›¾s›Ò+°bÙÌ-ÕS–J}³—e GrÀQ‚3|‘d±endstream endobj 298 0 obj << /Filter /FlateDecode /Length 221 >> stream xÚ}Ͻ Â0àˆCá–>Bî ŒÅZt øvtr'utPtSß,ÒGˆ›B1ÞEAA1$$w¹KÒ¬Ñí`[´Ú43\%°…4£}Ør`¹^j†ijD§ ò1îw‡5¨Þ¤ ¨Îl.  0NÐð×ßš`Íý³þ´ügTj*Yó²úO8Û:u‹‹È±qÉJËꂽSy®XN’…äD!uаڻ·7ÎÔ— å»:Ô1âDž„&/eñ6¦¾•àÒôº ýÒxúEá½3Þ~ûŒÂ0‡)<|…]endstream endobj 299 0 obj << /Filter /FlateDecode /Length 159 >> stream xÚ31Ó³´P0P0b#S3…C®B.cS ßÄI$çr9yré‡+›ré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿ``øÿÿQ"˜?à ØÁÄ?˜8€ƒ 8{0Á€ƒ¨u¸ˆ â‚Lü€õÿÿÿ?Äÿ ` .WO®@.ÒR_^endstream endobj 300 0 obj << /Filter /FlateDecode /Length 177 >> stream xÚ}ʱ Â0€áJ‡Â-}…{ÓB(u*Ô ftr'utPt+¦–Gé#t¬<¯¦â –üpw‘Éx’b„1?™¢Œpà dÂsÔÝaw„\X£L@Ìy B-ðr¾@äË)Æ ÜðÏ-¨=/4¡ñmVgu𤆚€èN-÷ñ.‘õ»µõ´Ñ¦ôt¥+.ûôÆJf{mß?FN3Äwê!c¾t›1²šýÖ]a¦`/B…‘'endstream endobj 301 0 obj << /Filter /FlateDecode /Length 190 >> stream xÚmÏ1 ÂP à·,ÁœÀ÷jE§B­`A'qRGE×>Ö£<€;”ÆôµB‡|?NsÒ4“2!MgohéuÛ¶ƒÓãÕžL€j-)ªtCûó‚*Þ.ÉG•ÐÁ'}Ä4!ˆrð8çFüæJüp-27½sÞŒ¬X;+ˆÄÒYôJ>É!ûùPöDõ°žhxÕ°#±qÊ©e¯åÒÊ#\Y.Dþ·›â*Å~¹ìpsendstream endobj 302 0 obj << /Filter /FlateDecode /Length 217 >> stream xÚeÎ=nÃ0 †áÏ𠀋 ^ •Õù™ä¨‡íÔ!È”tìÐ"YkMGÑ4z0ÂR :]Þ"ħ™=,\ó‚'ž›7žOž>i:×aÍÍãýåøAë–ÜOçäžtL®}æó×åÜúeÞܖ÷žëµ[V($FFÀÊUG"@'ÒC‚„âª;åMBM„IUŽ (“í5«[€rÐÃ÷ßè·eúsKüMô²½§SC¯éЩAÏgC4jì FåV"jÈÆ"k‘ñJh×Ò+ýÌboendstream endobj 303 0 obj << /Filter /FlateDecode /Length 247 >> stream xÚuпNÃ0ð/ê`é–<‚ïJUe²TŠD$˜02´‚µî›ÑGÉ#dô|œ­¶ÊP,ë'Ëç?ŸÝ.®n–\ó¼áùuÍí’ÛšßÚP›¦k^œkoŸ´ê¨zÖETÝkªî¿¶ßT­o¹¡jÍ/ ׯԭ€ € 6~ô²‡ÿ9À‹HŸà$Ø€Bz“ÜÏF…ª{bÝa²ÃIŸu=L®šþ’1;¢> stream xÚ}Í= Â0à” …·ô¾˜kÑI¨Ì èä Nêè èÜ­àEz„ŽbŸIJ¥Sïƒ÷›$.(qfc.1‘xáIjsŸºÆå™qÄ$±µUj‡¯çû"Û¯1‘ã)Fy•#³¯¨ÒœN&"’Yy 2œ¾ä$úPË5s£ÎšÕÖÊ®TzÝ)ÞzÍ@=°q†õ˜Qg5椳ü[Ùo¨× Ô}6 ðdùcqendstream endobj 305 0 obj << /Filter /FlateDecode /Length 222 >> stream xÚmŽ=NÄ0…_äÂÒ4{2ÇlX…ÊÒ²H¤@‚j D” (¼GËQr—.L†±(  ù4óÞü¼~sr>pÇ>öÜŸqïùÑÓ ­«Øqúã<<Óv$·çõ@îJerã5¿½¾?‘ÛÞ\°'·ã;ÏÝ=;b`dùD+R*b…(™ÚbØb2L± M¶ó?H@2ÐKЈh)¢jÐKXÕ^Eµ¬Ìj…ŠU:ÒùÔª•Ã/`rœ`Sœu8&]‹iÖx2U¾D”š6ýöaõ]ŽtKßåqüendstream endobj 306 0 obj << /Filter /FlateDecode /Length 187 >> stream xÚuϽ‚@ ð^Hºðô.€Á‰1ñŒ“::htGᵇ“ ÷K®ÿ6i£éd–P@ 5EÅ5^0Œ¥P¬ßÉጙAKaŒþRÊè›Ý®÷úÙzNòÏi§)Ø£É F8õ/nOõŸ‚™+y\Ñ–Ò—Â…å1DgiP-¸ ðÊÒ–>Õê™an,O»´œ”Êzà±½Rê¸0¸ÁÊž^Àendstream endobj 307 0 obj << /Filter /FlateDecode /Length 187 >> stream xÚeÎ=‚@à!$Ópæº? b"…‰VÆJ--4Úº{4ŽÂ¶¤ Œ»ÄFi¾âͼÉ$é²È)¤œ%)Å]"¼cœ™0¤ä;9ß°jP(ÎPlLŒ¢ÙÒóñº¢¨v+ŠPÔtŒ(> stream xÚMÌ1 Â@…á'Â4Á9›Ä(¦I F0… •…X©¥…¢]09ZŽâR¦ÖY7šÀî3»üþlÌÙas§.O>¹t%ß“Ù1£y8^(NIíØ÷H­dK*]óýö8“Š7 vI%¼wÙ9Pšp®‹HZ¹.µ.¿ÊXÚM®!ú/Ø3(ѯ‡z?Gh ź1ð³n•_ÀÛ*U ³Jø¯„§UÂ@h ;š0"« cd­:š0†&IË”¶ôºdU~endstream endobj 309 0 obj << /Filter /FlateDecode /Length 204 >> stream xÚ]Í=Qà+ŠInó–à®À›áù«$~SH¨¢B© tˆB9;0f¶0;0åâ¹A¦¸_rÎ)®*çkU²©ÂW*P±Fç¨gÛD3ŒgØpQH)”nQº]Z.VS”^“”-:dÐmÑV{9muÈjÖuü–ûºéÍ*<€5¤MÒfâ´ÙˆÝ¼Ôo­ÄîϽö=öf<\?ÿüôlàŸ¬@/âôõüò!öþg"b£Åf#~Øv±Oå«hrendstream endobj 310 0 obj << /Filter /FlateDecode /Length 206 >> stream xÚmͱ‚0à# $·ð½'°ÐÈ" b"ƒ‰NÆI4º)òh< бZ{upФý’»ëýMGƒlL%ö¦%ícÆ4Ïgг WøöfYendstream endobj 311 0 obj << /Filter /FlateDecode /Length 232 >> stream xÚMαnÂ0à³2 Ý’Gà^€:†DS‰‚D$:u@LÀÈЪ•:D…GË£ð=D1>‡$–NßðÛþ}qò2ŸQDcMMætRø…1§%íÑñ‚Ë å'Å3”›£Ì¶ôóý{F¹Ü½“B¹¢½¢è€ÙŠ„©ÁÔ‚ÇÆ4ºáÄå5„„70„ÞÔzš­º³e«(mÖi_ƒÐ,h[Üi‹[«”ÍsÏ?v¡%ûê|»÷ Ï›'ô¦ž¹§îå½a°ÿ¼7˜3äâÊUVW¾hŒ³vVìÕÛ©ù×~àr kendstream endobj 312 0 obj << /Filter /FlateDecode /Length 198 >> stream xÚuޱ Â@ †st(dé#˜'ðZzˆNZÁ‚N⤎ŠÎ½GóQî:vÏ䔢ƒ|ð'$f4œŒ)§’ÛŒ©œÐ¡À3Ã9—(‹ý §5ê ƒzÁSÔõ’®—Ûõt5£uEÛ‚òÖAàòJØþ¡O:{OZ€à˜*3yÓ”‡ŒW¬xasz YäÊ:áà-F¥q½˜D1ýýGÌ¢8p|”)¢u©üã䨢…FþüaèùŒ“à¼Æ5¾8×oóendstream endobj 313 0 obj << /Filter /FlateDecode /Length 217 >> stream xÚп Â0ð‡Â-yï´ÖS¡V°ƒ “ƒ8©£ƒ¢«í£õQúŽĘ|í ‚Åå¹»„Ë »“1û¬|îŒyÐãaŸ÷ŠN(Sõy¤êÖîHQBÞšEÞÜÔÉK|9_äEË)›sÌsiKIÌBGD[gÆÔêhk ºÚv%Fäƒ9̾ +E“)¼5ú„oØ*­. í:¡.ŒZçЮ ñÖ®+)º"„²À [Í˼É_‘|óOöv«¬Ò/³ý¤ (R(M—f ­èØ_ endstream endobj 314 0 obj << /Filter /FlateDecode /Length 214 >> stream xÚл Â0à”…³ä> stream xÚ31Ó³´P0P04Q01U05P05SH1ä*ä26ŠÅ ¡Rɹ\Nž\úá Æ¦\ú@q.}O_…’¢ÒT.}§g ßE!ÚPÁ –ËÓEásóÿöìÿð?ÿÿAþýÿÿÔÿÿÿ¿áÿ{ÁøÿÃ?†ÿjì0X0ð?`àrõä ä8¬1?endstream endobj 316 0 obj << /Filter /FlateDecode /Length 152 >> stream xÚ31Ó³´P0P0´Æ– ¦æ )†\…\`¾ˆ f%çr9yré‡y\ú@a.}O_…’¢ÒT.}§gC.}…hCƒX.Oyû†ú ÿè1þ?€Š€ˆû?Tô„øáè*úÀÀþà:äÈ!õ #ˆHƒ—«'W ~*Máendstream endobj 317 0 obj << /Filter /FlateDecode /Length 143 >> stream xÚ31Ó³´P0P04W06P01S05WH1ä*ä2‰(™C¥’s¹œ<¹ôÃŒ,¸ô=€â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ü Ì䨨àÿ€ÀòÀ¸AþA=¨g€a{nø‡Š@ø×Cqà ®`°aàrõä äSÅ<öendstream endobj 318 0 obj << /Filter /FlateDecode /Length 215 >> stream xÚ}޽jÃ0…É`¸‹^ àûUL“,1¤)ÔC¡2”NIÆ -ÉÚèÑü(z‚Ó£ü@mõIÜ#NQ>LÆ:Ð’gÄ]ê*—O)†œÏc¸XndV‹]h1ûÌTlý¢Û¯ÝZììõQs±s}Ïuð!õ\>¦¨ÈÍ{|“ØŽä'Ç$øÐ;q9ÜdÁþޗƘÆ4±³& v™»¹r•‹ þ[sÏç;„ON‘/yE³aÛkquÚ¦Á>õ±ÿ*x_Ó8Ãj)ä©–7ù[‚†‹endstream endobj 319 0 obj << /Filter /FlateDecode /Length 297 >> stream xÚ}ÐÁJÄ0à =‚Gh^@k±¬»— ¬+؃ §=ˆ'õèAÑë¶Vðàkä"Ì!tü“ʲ(xèI;¦™-ææØœšÃ¹ifvbîkõ¤šE”ë©s÷¨V­ª6¦©Uu²ªÚKóòüú ªÕÕ™ÁûÚÜà›[Õ® y<$Âê˜ì¸GÙIf443–yLÍ/Èt‰Q:Û‹(]Ù!ë5*Òë:=t%œ–IŒ’>Y„l,óðÉ„˜§P)™‚ ÏH¹½K ¸µ.©³Òï O‹@KЏj7Ùÿˆ:‹ˆ3,E{âo[JG]ì}ד}ûÀtû™2”y1:¯ ÃÀ‚sœ)`™W+]^ð¾Ãoeº‰:oÕµúþè¨>endstream endobj 320 0 obj << /Filter /FlateDecode /Length 292 >> stream xÚMбNÃ0à‹2DòâGˆ_’H ”ÉR)`b@€‘Š]u`äxŒx‘T¼@P#JÌÉÐføŸÏç;—ûG•«RíªÊUu¨n q/Ê A,'ãÎõ˜Ö"»Te%²S„EVŸ©Ç‡§[‘MÏU!²™º*T>õLIGøtËšŽ D;Æ~ÃvlÒ>ou£—Ž3¥Ýq1¸ì¶¾|‡ŽäëªÊ·Oö}0,#Þí åä†pXúh‡Ó6†ÚÅhÔ¸—84Øb€ZJ~ÛÔ’\wé+Vt \xôiˆ§hèdz°æÝiY=ê$L­´ø·)4.E$À×h22ø†LX‡žtXäÓ`çöQ(öü¬â¤âR±—­endstream endobj 321 0 obj << /Filter /FlateDecode /Length 211 >> stream xÚ•1 Â` …S Yzsý[-Õ*T;:9ˆ“::(ºÚ­GñŽR}¡?(ââð É{I^â¤k‡Jd¥3”ØJÒ—mÄîYtCDNÚì9ËÙ,¥gÙLÑg“Ïät<ïØdó‘ Ë*’pÍùXˆèFÔºù )ê¢"z–ä=!=œ„vû ¥%,˜„L5‘‹wo¶´`óX¥jFÚe3–Ò]qùëèñõÅÇ ½©·5Cà2ùîc}ͫ݅†sa5´_Or^ð ¥²Mƒendstream endobj 322 0 obj << /Filter /FlateDecode /Length 207 >> stream xÚ= ÂP„_HØ&Gp/ ù“üTÁ‚Vb¥–Š‚]r´Å#XZ„ÄYóbiñïíÎìÌ4œ$1»ñ8æ â0àƒGgò|âÛë'ûe9örø&§Xòõr;’“­fŒwÎ[Ý9+[)5ªÀ<•²_JYÀh0hAJVz±Æ’5¡ùüèÌ/ñîÈM[ß—’Gr¥:cÛ#ÙMm'r‘I¿’²úT2°f6}]©]bÜÕ}[q¹š´¦7®ÙS3endstream endobj 323 0 obj << /Filter /FlateDecode /Length 214 >> stream xÚuŒÏJÃ@Ƨì!0÷vžÀMHiš‹¶‚9zò žªGAEomßl¥¾Á‚W¨ýœˆG†ßáû7×sÉ¥–¹L«ño ~ä²R-—²þ1Ö÷¼hÙ_IY±?S•}{.ÏO/wìK)دäºü†Û•‘žÑü‡¢Lñ`‡n’\èLr±³É¥M“ìaƒ˜a‹0@ìµ…Hd´‡qQi$©¤÷õj>ßú·ˆ€×؇ƒ‰.ìM´Cn¢!2;úEöÂèê0Ÿ¶|Éß<[Uendstream endobj 324 0 obj << /Filter /FlateDecode /Length 156 >> stream xÚ31Ó³´P0P°P0W0±T0±PH1ä*ä21PAC°Dr.—“'—~¸‚‰—¾P”KßÓW¡¤¨4•Kß)ÀYÈwQˆ6T0ˆåòtQ```gþqHȃ‰„=˜`ÀAÔƒˆ: çÿÿÿ?êÄ¿ÿ0 þÅþ€Ô¡Œ`â‚L|ÀE<©º›ËÕ“+ ÙG`endstream endobj 325 0 obj << /Filter /FlateDecode /Length 143 >> stream xÚ=Ê1 Â@„á‘wй€n^²˜Xb·´²«hi¡(ØmŽê,-‚q#(|Õüc§“YÁ„j9ÖŒYJUT΢y˜¦öך“TNÌ–š‹Y† Æ­x½ÜŽbªõœ*¦æN™ìÅÕÄ£7¢ñ ý‹¾”àÏq‡òÿDÿ€o‡R²p²‘äŽ,¢endstream endobj 326 0 obj << /Filter /FlateDecode /Length 103 >> stream xÚ31Ó³´P0P04T04W01R02VH1ä*ä26PA3¨Lr.—“'—~¸‚±—¾‡‚—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹Býÿÿ?€øÏ$ ãrõä ä\A(aendstream endobj 327 0 obj << /Filter /FlateDecode /Length 99 >> stream xÚ31Ó³´P0P0´Ɔ †† )†\…\@Ú$l‘IÎåròäÒ pé{€IO_…’¢ÒT.}§g ßE!¨'–ËÓEŸÁþ@ýúÿ!Äncàrõä ä…ÿhendstream endobj 328 0 obj << /Filter /FlateDecode /Length 176 >> stream xÚ31Ó³´P0P0QеP05R03VH1ä*ä21 (˜Bd’s¹œ<¹ôÃL̹ô=€Â\úž¾ %E¥©\úNÎ @¾‹B´¡‚A,—§‹È€I;0Y&ÿ!HÆ? ’ù‚dÿ"ù Hù`²DÚƒÉz‰d ŠaðfaX>ÃØ1 ;€Ï0"<ÈŽéÁx<Èð‡Š¡1Œ¡LZ€I.WO®@.¹Lsendstream endobj 329 0 obj << /Filter /FlateDecode /Length 240 >> stream xÚuÐ=NÄ0àg¹°4¹$ÑþT––E"Tˆ ¶¤A›äh>ŠàÒE3i…h>Kckfž×Ûó¶áŠ>«yÝðæ‚Ÿkz¥U+ÅŠ7Í÷ÍÓ í:*ïyÕRy-e*»~û8P¹»½äšÊ=?Ô\=R·gÀDnrTÎ#tÎ6ç€"9!Ø7š„:a†Jj‚šT&˜Mú/¬?RŒ¿È€ÞÒÿDzÍô•NÐñˆ‰³¤õBáaÜ(Ó9duçeõÂk!J ›Š³$5Kf½|²ôÁ áä!@WÝÑ'}rendstream endobj 330 0 obj << /Filter /FlateDecode /Length 179 >> stream xÚmÎ; Â@€áY¶L“#8'p“à+U F0… •…X©¥…¢­Ù›éQr„”)$㬈kñ ì?Sì`ÔO'QÉD4Ó>Æ&)¹"Ï÷fwļD³¦$E3—Œ¦\Ðå|= É—SŠÑ´‰)ÚbY€¶Á üè‰LTŽÅ´³UB3Kºƒî2Pmr/*qû£OŸrZŸv_àÔ¾°þ~½bn˜¹ýåÎJ\á Æü\Tendstream endobj 331 0 obj << /Filter /FlateDecode /Length 244 >> stream xÚ]ÁNÃ0 @qˆäK?¡þÒjÝ`§Jc“è N'ÆqÒ@p%ý´~J>¡ÇªÛˆa)OŽýœDiV—ëkªh)«YÓòŠö5¾a³}¥[m¼pÓax¤fáVªº;úxÿ|Ű¹¿¡Öžjªž±Û€?D˃ypÌ“”™g€‚YÚåìY”ÜC;@ì!‚&_Ò@„b•“Ë”Š?§Õ³Góá‡efo¯ÈTèö8g¼˜•~²Ñц’év@´Q6Ñtozazkz4‘Utü_)³’ΔQÇMªE¶¬ÿÿóјw>à7è¼x@endstream endobj 332 0 obj << /Filter /FlateDecode /Length 251 >> stream xÚU=NÃP„Çrai_É{p,9ÁT–BpED” hc-GÉ\º°²Ì[+à¼âÓÓìÏŒ¶\]ÝTºÐ•^ZVº¼Ö·B>¥,(.tYM•×Y7’?kYH~OYòæA¿¿~Þ%_?Þ*Õn9ó"ÍFô>³=›õÌ 3ÚŒåvˆìв‘b˜ó8cå„wþ±Å?Ý2gFGDÁ=2;x’)fìNU®ìSgf91Îè.Øñ¹ójëvb4qsÜÉIþtag}@»SÕCÂ$<ù©ØøÁ¦ã¡ Á‘†r×È“üe‡wendstream endobj 333 0 obj << /Filter /FlateDecode /Length 225 >> stream xÚmÏÍJÃ@à;d1p7y„Ü'pHÿ6j f!èÊ…t¥.»¨èÖºèk|‘¾@ÀMÀ˜ñÜÒ¢Pg˜îÌäã‹ÙTRãäMä)ã5ç©èƨÁãŠç»{ÉSv׸eWÝÈëËÛ3»ùí•dìJyÈ$]rU %í‰Z À|+_H£O`•x¯|€dŠí ¥¦‘bÛ¸!ëA¼‰R4 wJЦQ§´Àz{ºDAi@A >BÂ?ëàá=èÎ1¿´GLÀW£#Ù¿£çEÅwü8œyOendstream endobj 334 0 obj << /Filter /FlateDecode /Length 225 >> stream xÚuбnÂ0à«€9ræOj­®´Jg¸óÁ{mT$ß›N¸[ò“Ҁ„Yˆ‚ Â$HËI'x¥i%'£ÉËàc2ÞëD˜0íª•€Žé#®j|Å,±|×endstream endobj 335 0 obj << /Filter /FlateDecode /Length 256 >> stream xÚ}1NÄ0E'Jai„”#d.I´»°®,-‹D $¨(PR€@¢ÂÞp%%GH™ÂÊð½° …Ÿ¥±þÿó½<=±kiÅÊq'K+«3yìø…ÃVV럗‡gÞôÜÜÊÂrs‰17ý•¼½¾?q³¹>—Ž›­ÜuÒÞs¿"R£Q­#‘׉ ÕDe†ÑÝLU¢™ê±˜ÉEÀ@©H¸(‰è£œ²Çx@5dD Þ#;D¸/D8cçNªú‹lë'ø"k€–3ÃüéT{Äê… Ÿè• Ê5B™»˜„VnBolU)ö3ŠPÏ¿59ዞoø›¦…œendstream endobj 336 0 obj << /Filter /FlateDecode /Length 203 >> stream xÚeÁ ‚@†'<sñœ¨u5+!Ì A:D§êØ¡(èT=šâ#xô ÚŽ¸I¶°ßáŸùþŽÁ„’.õ%ù.ùc:J¼ ¨Ô!ÒŒg c[òK•£ˆWt»ÞO(Âõœ$Šˆv’œ=ÆMA½WUU£ì âA`æ Vª`'€Ù›%6Kõ{*ƒaæŒ xxšÝ_Нł‘iËLµj%Ú·k4ê’çS/×h;;Å-Ú´-†É'pã?![~endstream endobj 337 0 obj << /Filter /FlateDecode /Length 273 >> stream xÚu1NÄ@ E¥ˆäfŽ0¾$Ye—Ýj¤e‘HÅŠ ()@Ð’mŽ’#L™"ŠùNh7}ì?ö³›Ýõa/•ì䪖æ Ûy«ù“› ‚•l÷kæõƒ-—ÏÒl¸¼G˜ËöA¾¿~Þ¹<>ÞJÍåIεT/Üž„(Ÿ _ÐUM¨ND…*NU‰üX@Ã@ÚS·üH…H°ù˜°ýkž.«ïMCŸÃÙQ†·3eórѾ°` fP#qÖ$H‚Ľ¢9uKV{°ä¹Dxˆ‚n ¸hÕ> stream xÚm±JÅ@D'lØ&àÞÐ$ç‹ÕÂó ¦´²+µ´P´5,Ÿÿ e„u¯³/`%ËìåÎLszrÖJ%[9®¥ie³•Çھئ’4›výyx¶»Î–·ÒT¶¼¤lËîJÞ^ߟl¹»>—Ú–{¹«¥º·Ý^€|à•P`TGäª Õ. üdôCÀ­E òHf&ò& ÿƒ/Ò«ÿG\1!‹\6‘òÈ$E:ꢉЩ*-zý Ìøàôka¾OZK²ÆÉÉp…S¥ñˆ<9ŒÎ<;˜Tƒ­"ÜLMûÔÙ§ö^YÎÑ<™Q‚½èìýSö‚Lendstream endobj 339 0 obj << /Filter /FlateDecode /Length 127 >> stream xÚ31Ó³´P0P0´Æf Æ– )†\…\†f@¾ˆ –IÎåròäÒW04ãÒ÷ sé{ú*”•¦ré;8+ré»(D*Äryº(0ü`üÃüýû ј0~` øìÔ¨ðAì9.WO®@.{a*•endstream endobj 340 0 obj << /Filter /FlateDecode /Length 167 >> stream xÚ1 Â@E¿¤L㜠èf“’*#¸… •…X©¥…¢`·9šGÉRZ×IDàðŠá¿~œL²”Ö1uÄQÂQÆMg µÄOï۟¨0¤6jR ¤Ì’¯—Û‘T±š±¤%oåkG¦dø kŒä³ç³K(ªÂsÇàÏÁï¨~x=r°€ä²…ßvͶ«a«Î¤Í ­é 1 7õendstream endobj 341 0 obj << /Filter /FlateDecode /Length 183 >> stream xÚ1 Â@E'(ÓÄèœÀÝ%‰1‚[ZYˆ•ZZ(ZÇ£y”Á2EpQczöÁ¼?ü ‡ƒxLšŒ¦"M‘¡½Á1Kv£O²;bjQ­)ˆQÍY£² ºœ¯TérJUFCz‹6#à×LOþ-AGЯyÉp{wðÝÏ?¼ÆË~Òø;W4¾üzRB.cRH¥¬øU}Þ{Çîïê3‰ 'hÎ,®ð$EH2endstream endobj 342 0 obj << /Filter /FlateDecode /Length 129 >> stream xÚ31Ó³´P0P0S04W05P0¶PH1ä*ä21 (Bd’s¹œ<¹ôÃLŒ¹ô=€Â\úž¾ %E¥©\úNÎ @¾‹B´¡‚A,—§‹û `à‘äAäd"Î@¨jý&ÿ3ü“õpòÈü? \®ž\\ñÒI©endstream endobj 343 0 obj << /Filter /FlateDecode /Length 174 >> stream xÚ¥1 1EW,„iâ œ˜âªÕʺ‚)­,ÄJ--í=šGÙ#¤´ã|•ݘyf\ÚØpÊŽ]Ÿ{–·–ä ãŠAØì)÷¤—ì é©XÒ~ƧãyG:ŸÙ’.xe٬ɜŒ9A^ã¼€o‚k)Èr ¹ù_®6|¾ ÈPc€¿‹GìÔ¾ÄÌÊ?1·ö²FÕ>üüw=F$  ÐÄÓ‚Þ³²I©endstream endobj 344 0 obj << /Filter /FlateDecode /Length 193 >> stream xÚe̽‚0ð’[xî "~-’ &2˜èä`œÔÑA£+°ùZl¾›+› Äz¥1­xéý’»KÿÁ°7£‡}ê`€ƒ|8CàÓì‰Qö'ˆp7øà.h n²Äëåv7ZͶ1néË’c!•å­…+ ݗД>•–ô!´uïBG3´¤%9mM5›®F­4«®VÙÕ.”çÕ¯¡fÖšRÒ×FiHk¥þ²7e0Î)#ÿW^ažÀ>æƒendstream endobj 345 0 obj << /Filter /FlateDecode /Length 228 >> stream xÚuбnƒ@ P#$/|Bü=P/ˆL'ÑT C¤tÊeJ2vhÔ®…OãSøFÄÅ6QQ$xâlëll³—MN ½òksZgtMñ ­ås"GI\>±(ÑÉZ4;Ž¢)÷ô}ÿ¹¡)o”¢ÙÒ)¥äŒå– ò¾ðÞªŸ¬ÕF²lÔ‚kÅXºÙ°“ Ø,Êe«ÉZŠÅFœžJå¾®ŽFV'q:•“æó7Çy®ù…@…Juõ,_Å)nÇÅñ¢Á •Aÿ_b¥ŽöÒ…ÿ ÄU¯Ëèt1ís=«á¹H|/ñâw—'endstream endobj 346 0 obj << /Filter /FlateDecode /Length 254 >> stream xڕбN„@à³É4÷2/ (V$ç™Ha¢•…±RK ¶r¶¯±-%aœY¬L,$›/0°;?S5¼æ†K®¹>åÇ’^¨ÚhqÍu³¼yx¦mGÅ-W*.µLEwÅo¯ïOTl¯Ï¹¤bÇw%¯ï©Û1à'€\|zùŒp"_^D"²äjÎÔ|tÐF¨}Z¢;‚›6¸ÉôæÞf6$£¹Z fnÝï}‚^-~Û'?þpNNÿr°]nüQÏñ‹ƒõZÔÀÚ]k* ÜäiÙMD¯E€~0gzˆŽgJê¿Bd°Ð:¤µÌ¬LÝÐ7ÏZs!endstream endobj 347 0 obj << /Filter /FlateDecode /Length 219 >> stream xÚ}н Â@ àH!K¡y¯•Ztü;:9ˆ“::(ºZí¥p£CñLrEÄá>¸É%É‹ÞhH)õùä#tÈðŒyÁ÷T®ò°?á¤D³¡¼@³à(šrI×Ëíˆf²šR†fFیҖ3‚ÊûÄ'€÷þ¥zø‡j¡[Cp\‹‰;±ë fŸ[ˆ¾ì›ÖÄ°ŽƒðÏ ¤òý—‘k}© H{ã Ëñwœ×ZI Nd;jÔÈ<WJœXÕí2¼.&,‰iT§ ã!q^âßPŒÄendstream endobj 348 0 obj << /Filter /FlateDecode /Length 194 >> stream xÚuб Â@ àH!K¡y¯Õ¶Ô©P+ØAÐÉAœÔÑAQpÛGë£ô¤çåNA¡7Ü÷’0Œòi¤^4¤(¦]€G 9óùË…í³ÅŠÂÅL¥(Š9O—=Šl1¡ENë€ü 9A*¥l¡TÊS­ó¸[l¡olnÚ«þtµÑ©Y®|åºg”²¶›Á«ºuUÿ’‡¨í¬ªñ­^ìe×mzÆ'¯gÔ'ù(ÔIe†Ó—øÞŽ˜endstream endobj 349 0 obj << /Filter /FlateDecode /Length 200 >> stream xڅн Â0ð+ ·øÞ˜–~`A,Ô vtr'utPt5}4¥Ð±ƒ“&ˆ«ðãòñO¸ ÄCrÉ—3ô)ŒhçáƒXÖ®*ÕÆö€iŽlEAŒl&W‘ås:Ÿ.{débB²ŒÖ¹Ì3‚DÈÀˆ¼…]$Ð p %ÀX3ÒÀ'=íU6Ø}CÑÜì ÑIòBÅ%:õ+œBrm^ýÉCsÿ‹e¨ßáB}]¶ÓP·¨ô‘¦8Íq‰Od¢zÚendstream endobj 350 0 obj << /Filter /FlateDecode /Length 186 >> stream xÚ}Ð= Â0Àñá-=Bß LŠMÑ©P+˜AÐÉAœÔÑAÑÕöh=ŠGptã{1êb$ÿð#CH–÷†Tا©3Ô9nR؃Vȃ–|°ÞAi@.P+Úi¦x<œ¶ ËÙS.ST+0ŠÚ6”°¶±Ž–úâ6kË‰î… ±§å‚$Dâi¸ Qx¬¥7ü¥~qvy7™»+DDDž¤Ct> stream xÚ31Ó³´P0PaKS3…C®B.rAɹ\Nž\úá &\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O†úÿÿÿ1üTâD‚ÿvBL4à ìÁ¢DÔá"þˆ?8F0ñÁ &>à ØÁÄ(ô߈OѰ—«'W 1»`Âendstream endobj 352 0 obj << /Filter /FlateDecode /Length 195 >> stream xÚmÐ1‚@Ð!$Ópæº`ÐFÄD ­,Œ•ZZh´ŽÆQ8¥q\–f·yÅüdwþÈdº˜SH)M"Šg't‰ðŽRªaHq:&çæ%ŠI‰b£Æ(Ê-=¯+Š|·¢EALj–¸Ì­¶ðþSp>`Õ5íìz¦­]ß´±˜Öv3S°[¾–Új´†¯¶`p´n?¤¾ªX5™*Qé‹dÌj‘€Y}å3e¹×ïp]âÎ \2endstream endobj 353 0 obj << /Filter /FlateDecode /Length 168 >> stream xÚ31Ó³´P0P0a3S3…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. õÿ?000üÿÿ+ ‘e8IvùÉ!à#å!d>ÒB2à#ëÁdn’áÐÒ†?`c±’ö ŒòÈXYÿþc%ÿeÿ0p¹zrr«ÆeTendstream endobj 354 0 obj << /Filter /FlateDecode /Length 262 >> stream xÚuÐAJÃ@à²x›¹AóN`’bŠ‚¤P+˜… «.ÄUëÒ…¢à"8…ÀèEB‰x‘xƒq7‹@|/Ä¢.†oþa˜7üû“½ÃJhÌ+Ë(›Ð*Å[Ì$'e³¼ÁYñ‚²1Ƨ|ŠqqF÷w×ÏÎ)ÅxN—)%WXÌ Œ0 A×@'X!”Ôö˜TWƒ®@• èF-@´…\ÈáÈõ”žGaÎóÉL£@È+„?QožwæI« Sj½i„ç°çÕóâÙ*¦Õ•àT¥jÁí`t Áµ^3üÿ¿ˆÖð³üÏ@ ðü#=ÖÒ£òuþf¸‚'^à¬^üendstream endobj 355 0 obj << /Filter /FlateDecode /Length 232 >> stream xÚuÐAJÃPà?d˜MŽ9/Á¦T° Ô f!èÊ…¸².]( ]„æÝÀ+åÞ@ß²Ì"ô9/IÕbd>fæ_Ídzt2ã˜¥Ó §S^'ôDiÌ®dt‡ûGZæ¤n8I]È–T~É/ϯ¤–WgœZñmÂñå+FÙ ³¶E¹§‚Ýý Qî$ðÍ>÷BøÞó† ú…>$¢@‡ÚQ Yϯ"8Ì(™°õ: Ï,:êQ¶B‹ŽMñ?›ðjlšŽâ€Óž¹àÌëoÜçkbºˆ{çtM_+uŠ5endstream endobj 356 0 obj << /Filter /FlateDecode /Length 215 >> stream xÚ}бnƒ0à‹ná|OPƒBP:!‘T*C¤fÊeJ;fhÕ®GãQx çî(JXbÙŸtgËþå4{y]SLK^+ž}&øiƵ–²q¾`Q¢=Pš¡}ç.ÚrG¿?_h‹ %h·tL(>a¹%Ƚw•÷ƒêGkµ‘]ßBà r¢QÃN &C‹Âv&̸ßAÔÌ FÈ—˜FŽ™Œš7"'1uÀ©Œ&ä<½Ú©­Z‹Ü†dTêõ©ƒÚ?s1ÚÝ­øC&õíûøVâo‡¶}Âendstream endobj 357 0 obj << /Filter /FlateDecode /Length 234 >> stream xÚ}бJA à,[ ¤¹G¸¼€Î.Îg5pžà‚V‡•ZZ(Ú‰;¶²ba;åËÆ$‹'X„¯HógÂòølEÐQMaE‹%=ÔøŒ!H³¢Åé4¹Âuƒþ–B@)môͽ¾¼=¢__ŸS~CÛšª;l6-30sofs0GЩèzÇ*pR[3šóf“Kæé¯¢Ù‚:ª…““w#ÄhI¢¥;3Yžî׈½:3]VKq4‡Cƒî;½à¿Ÿy²¿²,ïmÜw–Žû½%wf’i¡_ ðxÑà þx¯˜endstream endobj 358 0 obj << /Filter /FlateDecode /Length 262 >> stream xÚu1NÃ@E¿•"Ò4>‚çàXq ©,… á *Šˆ ()@ QaK\ÌÙ#¤ÃEÈðg ’¶xÒÎÌþyÚòäxµÔ™.ô¨Ðr¥‹S½/äIÊ9‹,/‡ÎÝ£¬kÉo´œK~Á²äõ¥¾<¿>H¾¾:ÓBòn ÝJ½Q Ý'PÙGÌ>&f_S3 H#³>%«X‡¦…h:øî—ÉþY›ôÿ3…ðIžC¤E2Еù%3¿Ð¤UëmŠ€r»8™ÆÀÉ8vÌaÅ;7;³­×«Ög*ŒØzÉ´”šîÐð'H â˜û8o3.Ù7F…>sÁ·Äeå¼–kù« …"endstream endobj 359 0 obj << /Filter /FlateDecode /Length 183 >> stream xÚ31Ó³´P0P°bSS3…C®B. ßÄI$çr9yré‡+˜˜pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]äÿÁ{ù“¬“u ò ì°“üþ1ØÉ{ö ²H‚2Y&ëð’ÿÀä|$#„üd†ð‘ìò>’B€“ìÿÿýÆ&ávFòÃÄj¸\=¹¹ mendstream endobj 360 0 obj << /Filter /FlateDecode /Length 222 >> stream xÚmϱjÃ0à3 ·ø|/ÈÙm&CšB=Ú©CéÔdìЬ¶ÍâGð˜¡äúKÎø@ÒÝ’«×›G)Å–²²RURÕ²·üËÎá´”êávõýÃ͇ۖ8ÇæçlÚW9Ï6Û·'±lvòi¥üâv'½…Nªc£ó½Ëm6Qr¡¨é…òÅ‘Ò9n6S±8ø–¨iÉ·DEHìÈ·DEÈ5øG¾%jì‚×`XIØâ[Bž óÙ6œtÄ ÕOR%¢L@©¢œEa˜MÄÏ-¿ó?È€Nendstream endobj 361 0 obj << /Filter /FlateDecode /Length 203 >> stream xÚ]Í=‚@à5&ÓpæºløQ+ÄD ­,Œ•ZZh´3âÑ8 G ¤@ÖavCóef^2Ï &ó:( ô=ô< ¸çÒÕAúNWcà{ô\àkº7ø¸?/ÀÃíð#Ä&³dšH2“’Ù­I£JG”¬¶ÐóV5ŒÚÕjLµöG»hdÚ·aE¬lTÕIyO*줪žTØIUŒ™–oײTµ_Ó\+³ÚÄ45üÔª÷°Ša?•Ø|pendstream endobj 362 0 obj << /Filter /FlateDecode /Length 234 >> stream xÚeαJÃPà2Î’7ðžÐäÂMUHO¡V0ƒ “C餎Š‚b´y0‘<Ê}„ŒwÄ“›´Æº|Ãÿÿo¦G§'”NèPSšR:¥;hŒ¤ ¥ÇCuû€‹ã2ã É1Î/éùéåãÅÕiŒ—´Ò”¬1_ÒÆAÐÚ¶°­ÿè:ûV€‚_æ^ÞYü³ñº}ƒzßЊ®3h:ÃÁI<û•ÀQï·—#ÙW,—²Þ/3o-ŠÁÌ[ˆndͯ^ðÑk¹x³™øngÕÌnÝ”ó±•jç'¨RvANžçx?I sBendstream endobj 363 0 obj << /Filter /FlateDecode /Length 222 >> stream xÚ…Í1jÃ@Ðo¶L£#hN•°,œJà8»rR%)S8$­¥.eŽà«è(:‚J›™†åí2Ÿý“7·KN9K…E΋‚_3ÚS>g›SòòN«ŠüŽó9ù“¯ùóãëüjsÇù5?eœ>Sµæ2 m­v!4‰ ±ž> stream xÚ31Ó³´P0P0´PеP05Q03VH1ä*ä26Š(˜B¥’s¹œ<¹ôÃŒM¹ô=€â\úž¾ %E¥©\úNÎ @¾‹B´¡‚A,—§‹ÿÿÿäÿÿ€N؃$ìì0‰z8Q‡…ø'þ`Œâ&ÁŒ >`ìâ&Á `ò¢“°G${÷ÿÿ â?Q’àrõä ä¬`Eendstream endobj 365 0 obj << /Filter /FlateDecode /Length 171 >> stream xÚ}Ï1 Â@…á aš!sÝÄ51VBŒà‚Vb¥–жnŽ–£ä–â¸Y-D›æMõÒÞ(£ˆúÔÍHg”jÚÅxD¸1¢aüþl˜T+Ò ª™›Q™9O—=ª|1!w´Ž)Ú )æ Bæú—  ðT¡§{@À6\%ž –ç.ÐöÜ:žZ@Ì ÿäZæø|aÙeàÔà_U/bÿendstream endobj 366 0 obj << /Filter /FlateDecode /Length 219 >> stream xÚMϱJ1àÿØ"0Í>Bæt7ô¬ÎÜBÐÊB¬ÔòŠ­“GË£ì#\yÅ’ßY•C_„ü“‰—ç×kíõJςƵƠoAö{]V¼ø½yÝÉf”îIc/Ý•¥ïõóãë]ºÍÃé¶ú´‘q«h˜Ï H<äŒY­N¢™WÌÍŒ!»#|i~8 -˜€v:Qþð,Ëãb#–ÇâX}n™}ö–’‡ÉHÙ’Œj`þO:AØoªm®"•Äj™¬ƒAk1°µäêxp3–Yäv”Gù-mªendstream endobj 367 0 obj << /Filter /FlateDecode /Length 235 >> stream xÚuÏ=NÄ0à‰\Xš&Gð\’hÈV––E"T+* ¤D49šâ#˜ ‘'»¤@Ð|Å{S¼Y®O7-Õ´¡“†–-­ÖôÐà3.ư¦ÕÙ¡¹Âm‡Õ--Z¬.sŒUwE¯/oXm¯Ï©ÁjGû†ê;ìvd°)Ã3v†(&â_*rõ) Ô—(éGœÏ^Ko¼NP=€:ŸF±ô#îÈ™b0caúߨ‰`è‘Òÿ`œu`;àž}!ÀA%à˜g‘yY€$âქ‡÷éõ<ð¢ÃüK~endstream endobj 368 0 obj << /Filter /FlateDecode /Length 210 >> stream xÚ…Ï1NÄ0Ð¥ˆ4à¹8f£•¥e‘H¢‚-·AK|´%GØ2…•amCEágé[ö|wýùõ·[>‹Ü]rù-Ò;mzM[î.NG¯ÚžxÓS¸ÓœÂpÏŸ_{ Û‡Žvü¹}¡aÇ@Z€JhD2¼È„$2c4dvÇJàŽuŸ›N¸Éͨ³Ÿü’²¡ £ñý—Õ(ÿ³žpöŠ7R³îi‚èøj…/M)ÖvAm+«¬uõ²Ó¿Ðí@ôÄ"SÊendstream endobj 369 0 obj << /Filter /FlateDecode /Length 220 >> stream xÚÐ; Â@à )„isÁJÐùEü"Ãøb=A×Û çaÄS~]¿endstream endobj 370 0 obj << /Filter /FlateDecode /Length 216 >> stream xÚu1NÄ0Eÿ*…¥ir„ÌÀ › ¨,-‹D $¨(VT@I‚vã£ù(>–)V¾AÐaYOòØóç¹??½¼ÐV=é´ÿÞϼÉz`±ÕþìçæéU6£ø]âoX?ÞêÇûç‹øÍÝ•vâ·ºë´}”q«¨µE XÌX™Í¨ÌŽp‹[PÏ0ÔLhB M ‘‡ÀÆ4ì‘™æò±À¸þEâ ŒÆþS“«D¸ÌiDf( šD“œE‹T³HIc %)>—/Ð~Å’\r/_})oGendstream endobj 371 0 obj << /Filter /FlateDecode /Length 164 >> stream xÚ31Ó³´P0P0bSs…C®B.c3 ÌI$çr9yré‡+›qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ÿ300°ÿ?ÀÀ ÿÿC=ˆøÿÿ„`üÏÿùˆøÁþ€ýcf ‚¨ÿÿÿÿ?€F€%ˆ5…Æ„ýÿÿ@.ý‡N€%¸\=¹¹CStòendstream endobj 372 0 obj << /Filter /FlateDecode /Length 275 >> stream xÚ…=NÄ@ …¥ÉMŽ_òÃ(‚†‘–E"T+* ¤A·ÚDâ \%7!H9Ec{·BHLñidû=¿ßŸRI'tT×äò%=Vø‚¾–jIM}h=<ãªÅâŽ|ŕԱh¯éíõý ‹ÕÍUX¬iSQyíš É³ã:þ²œ!1¦{.g½‹éì ›t<A9ÀN¤t¿´É½êà`nê [¢Yè˜'ã(3’@øÉ üˆÊ~sPºo£i5¹ÝE,b”³6ÂyÔ0ɬ1$ÄV¸ ç îÁ˜ÿÁÙº[›ìLzõ #¸òºh»&Û;‚þ¡Ä³$²^MR} ^¶x‹?máÊendstream endobj 373 0 obj << /Filter /FlateDecode /Length 165 >> stream xÚÅɱ Â@ à: Yúæ ¼k¹ µ‚7:9ˆ“utPt¾>Z¥pcÁÒ˜(¸ÔÍÁ@>þ?1ét>C1¯I0I±ŒàFº–*áx†Ü‚Ú¡‰A­ø Ê®ñv½Ÿ@å›F  ÜG¨` t>à¡ö»îåè'C/fH=û b‰¨ú賚­'b6l öÁ˜í¶ÿÑQã¨"òDõÐ÷–¶ði—¶endstream endobj 374 0 obj << /Filter /FlateDecode /Length 137 >> stream xÚ31Ó³´P0P0bCSs…C®B.cc ßÄI$çr9yré‡+sé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]˜øÀù(B¬Ž`ÿ¨­þÿ ÂD00 ¢þÿÿÿ ÿaDœ€Hp¹zrrȧYAendstream endobj 375 0 obj << /Filter /FlateDecode /Length 168 >> stream xÚÕÏ1‚@Ð!&Ópæº, `E‚˜¸…‰VÆJ--4ÚêÍ£ì(-Œã!¶¶þä5ÿW? Æ9E”R?Ö”$4Ìh§ñˆqÓF”åí´=`iP­(ÎQͤGeæt>]ö¨ÊÅ„4ªŠÖš¢ šŠ| ¸°þêºfÿ!ÌNÔ^ :àÿ^Ã]寸3„¢° l™nüO(øÜôØN .ñ ú‹k7endstream endobj 376 0 obj << /Filter /FlateDecode /Length 217 >> stream xڭνnÂ0p£H·ä¸'À ¤Q™"•š ¦ˆ‰vìP+ŽÄ‹eëkdëšÑU‡ÿÇGkÉ?é>í4ëž8æ^¸iÆ¿%ôIi?Ä1B–4,ȾrÚ'û²d‹ ¯W›w²Ã鈲cž'/¨³kL8âïëTó¶E‚ÑÅòÆkÕä%t:u€­=|ðº?õQ ;D»ñN÷ üd~UôÈ7úå ³²S[Øv0ؼ?½b¶j®vÊ?£ ¶kµ1Nš\*ïÎÖ7V§*=4£#SãŒ÷endstream endobj 377 0 obj << /Filter /FlateDecode /Length 123 >> stream xÚ31Ó³´P0P0b#S3…C®B.c3 ßÄI$çr9yré‡+›qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿ``¨ÿÿƒá?œ¨‡ ŒÃ—¨ÿÿÿÿ0Äÿ?€ „—«'W íâg•endstream endobj 378 0 obj << /Filter /FlateDecode /Length 161 >> stream xÚ31Ó³´P0C …C®B.sˆD"9—ËÉ“K?\ÁÄœKß(Ê¥ïé«PRTšÊ¥ïà¬`È¥ï¢m¨`Ëåé¢ÀÀøƒñC}ÿþ? ÿïÿ“ÿÇðÿÿûÿ òÿÿY–o`*á?Àþƒÿü„Ø!*9 °þ=þÿg„ÿÿÕ!Œ‰@d¹\=¹¹ªˆ÷endstream endobj 379 0 obj << /Filter /FlateDecode /Length 159 >> stream xÚÅÉ1 Â@б¦Éœ¸»a­1‚[ZYˆ•ZZ(Zo޶Gɶ 2΢]àÀ<þŸ±óérAšrY;#«ébðŽ6uj ç–ÕlŽj#WTnKÏÇ늪ܭȠªèhHŸÐUE‹€[îÅ7³(Sÿô‹#“d5"${‹ÝÀö?zn<×Ì‘9 ý~qíp%8}endstream endobj 380 0 obj << /Filter /FlateDecode /Length 198 >> stream xÚ1‚@E¿¡ ™†#0Ðe‰V$Љ&ZY+µ´Ðh+{4ŽÂ(- 㲘ØÚ¼âOæÏ›$ͦñ„‡š“1'šOš®§6ŒºÄMŽš¤v§¤V6&U¬ù~{œIÍ7 Ö¤rÞkŽTä ï dR" "/x"oø­ß"x Aa…Ì„¡É,ª ªÒ¢~~Ûæ5ÿ¢µÍo×U9ôõú“ö¸qNÈ©9I§‹Rêï Ý3´,hKí`•endstream endobj 381 0 obj << /Filter /FlateDecode /Length 221 >> stream xڭбnÂ0àßb¨t À½@›Y"QÈP‰Ntì@³óhyÁc×s U‡.•ððɺ“Ï¿m˧ç ç<æÇqÎÖ²Íy[ÐŽl¡ÕœË[kóIÓš²w¶e ­SV¿òþëðAÙtùÂZñJ­©ž10ô€óU¤QÏ"-D×±×ɯ<Œ´ÃNmA…Q/À%n®:˜¨~ÛDGÿ´ºú9ir2ݘL¤y?ÙRΘ<ÚÂè[˜S|—é\ˆŽŽè³ÝO§÷é¿éOýeêÒ¼¦7úF©Wendstream endobj 382 0 obj << /Filter /FlateDecode /Length 229 >> stream xڭϱJAà?lq0Í=ÂÍ ˜ÝÓ%Ä*#xE@+ I-SD´5_,9È ,Ø9nœ½sck‘æc™ùÿõ£áõ˜_ñÅ¥c?fïø¹¤5y¯SÇ£´Z®hZ‘}dïÉÞéœl5ç·×÷²Óû.ÉÎø©d· jÆ0í rù ÀDªÈWÀ@ä`D$ £æ ¢“€¢F¡]ç67@–üHš€¶³ù·mòtçt9OYªæ»®‰®´Õwì–µ±gß¹ïßÿÙ«…èe˜&Ú¥œOM«“&Æÿú7§ÛŠè`Ÿßendstream endobj 383 0 obj << /Filter /FlateDecode /Length 172 >> stream xÚµÎ1 A ÐÔi¼“832ˆVº‚SZYˆ•ZZ(ZÏXYzâÅ#l¹…lÌÛXZäÁOø7è†d¨/ã9C;‹GtV²ibsØ0ó¨Wä,ê™lQû9O—=êl1!Ùæ´–Ê}NÐ)!0„Z¼2ó-ygŽÉg"(.’0P5tÅ·ÔAUɲå+Yü0þÉÀ\%å-n¾Ê§—ø¦YWendstream endobj 384 0 obj << /Filter /FlateDecode /Length 218 >> stream xÚMŽ1JÄ`…ßb˜ÂÜ`w. ~7»hXW0…àVbµZ * vnâUr”aË!ã›,ˆÍÇð½™Ç”ëó«K-t­gQË -£>Gy—劲p3%ûWÙÔt¹’pK-¡¾Óϯ ›ûk¶úµx’z«X §˜™ý 33䎅£r¤CF40Œ@:bª ˜#µàLÉ‚¼ªÁ‰Y˜õ.¹ŠdÄŒ Çæ›¶åAîȺ ãlBƒ¼³–{,ªZxËÏŽ`1K{¯ï+æoürSËN~±¡o'endstream endobj 385 0 obj << /Filter /FlateDecode /Length 160 >> stream xÚ31Ó³´P0P0RÐ5T01P05PH1ä*ä26 ¹†™ä\.'O.ýpcs.} 0—¾§¯BIQi*—¾S€³ï¢m¨`Ëåé¢ÀÀÏò $õÿÿÿ?Äÿ ` ÒÍ#…ø$`'0ƒö üøÄù ì  æÿÿÿÿSÿdÖ.WO®@.’Ø]endstream endobj 386 0 obj << /Filter /FlateDecode /Length 159 >> stream xÚ31Ó³´P0P0RÐ5T01U0¶TH1ä*ä21 (˜@e’s¹œ<¹ôÃLŒ¸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õÿ`øÿƒùÿ,dýF Éøƒ}üH¤<˜´’ê00ügüÿ¿á?`¨G"íÿ?’üÿ›²Ìÿ¸\=¹¹kqtendstream endobj 387 0 obj << /Filter /FlateDecode /Length 174 >> stream xÚ31Ó³´P0P0bScK…C®B.ßÄ1’s¹œ<¹ôÃLŒ¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õÿìÿ7üÿßPÿÿ& ‘eüÀÀü€Jþ``ÀÀ$ÀÈ? ü@²†¿•´cg@%å4*ÉßPƒF²øF2?ü€F2~~€F2ü?€NÖ7 H{ ærõä äóVendstream endobj 388 0 obj << /Filter /FlateDecode /Length 195 >> stream xÚuν Â@ ðˆƒ¥Ð> stream xÚmν Â0àˆCá¡÷¦Õ(v©à˜AÐÉAœÔÑAѵͣÕ7Q|ÁÅAŒwݤéGr—»œé6³&Ø¢ßt°á&…=>'|äÍz z¦zBQÐvŠÇÃi z0b z„Ë“Øö½óoUú³÷ YU¨X)Õ§-ÈØ½ÈFÅFç'{»“õÇ…¬yVùJtlÉHƒŸ!²r³&µué]ÅŠ;7ä­ØRš“¹ÌCSQñ‹¦ i¬ÊÓÀìw…HÈÂØÂ>ʳhÂendstream endobj 390 0 obj << /Filter /FlateDecode /Length 171 >> stream xÚÎ1 Â@…á aàœÀMˆˆ@ Fp A+ ±RK EÛ‰Gó(Á2EÈ:/u ‹ý—ÙýŠ™Í§éB"IìÌIR9Ç|c»#¼¦ÝÇéÊ…g··™Ýº«ßÈãþ¼°+¶K‰Ù•rˆ%:²/%!Ô•¥éI­Dã¯eò±äoKõ²ÊhÐѰ±Œj#0#0£?Y¦` ¦` ¦`Š]ÚГnS^yÞñÊiôendstream endobj 391 0 obj << /Filter /FlateDecode /Length 146 >> stream xÚ%É1 Â@EÑ/ßd y+p2dbˆœBÐÊB¬¢¥…¢`–6;Ñ%XZ„<–÷\WÌæ%Rp9œE^àhõ¢™1…µÿÓžµöjvÈœšÕÈjü·ëý¤¦Þ,0vƒ½EzPß`ÒK$%îb†$$üT¡âÀð$ÙñE §döòê+¥ÄoÑ¥×­þ°{/endstream endobj 392 0 obj << /Filter /FlateDecode /Length 110 >> stream xÚ31Ó³´P0P0Æ ¦æ )†\…\††@>˜ –IÎåròäÒW04äÒ÷ sé{ú*”•¦ré;8+E]¢zb¹<]äìêü@ÖÀíк٠5ò \®ž\\deX.endstream endobj 393 0 obj << /Filter /FlateDecode /Length 118 >> stream xÚ31Ó³´P0P04P0"sSs…C®B.#3 ¨‚‘9T*9—ËÉ“K?\ÁÈŒKß(Î¥ïé«PRTšÊ¥ïà¬`È¥ï¢m¨`Ëåé¢`ÃÀÏPÇ ßðŸÁþ!\Ï`߀ ƒÌÀ‡Aöp¹zrr]7½endstream endobj 394 0 obj << /Filter /FlateDecode /Length 262 >> stream xÚu±NÃ@ †uˆä%+Ûù iC™N*E"L ˆ‰22€`åÒ7 or}ƒŒ‡gì!uèòIgŸäïÿçõÉù’ ZÐñ’æ§TW´)ñ«Z†•›Çg\5˜ßQUc~%cÌ›kz{}Â|usAò^Ó}IÅ6kè FeÀ`Æ<@Ê!cf0?ßÜÚ]pý ¦sÛy—„Ôú¨&dûH}œþ8…Ý*vó%Èä˜ÈÉVÇãf51СJêZ F‘ùGÿ‚YÏûˆ&Iý§â£½Ñ0¶n5 FzP— EôZI7•s°ºÚ.^6x‹¿*H°Üendstream endobj 395 0 obj << /Filter /FlateDecode /Length 197 >> stream xÚŽ± ‚`…4wéº/Pj–)‚äÔÔMÕØPÔš>šâ#46È_Gth ¾åÞË=監(TW½©Cõ# |=yr•±Ï­«3¯;/’fâìt싳â^œl­÷Ûã,Nº™+ç…î=u’-ˆ',ƒž]£ÿÆ BR"/𠬽wƒý‚]¡OJ HÑ4äMJ‡êÿ0?_9º¨¤èÂÙÂ.6²—í­†Õ¾Ñ†ô¤-iN«Í‹e™ÉV¾‘Lendstream endobj 396 0 obj << /Filter /FlateDecode /Length 196 >> stream xÚ= Â@…Ÿ¤¦Éœ èæGb¬à‚Vb¥–Š‚•ñh%GH™"¨/ÙÂVøšeÞûf˜ Æ©šj?Õ8Ò$ÖC(g‰b…îg’©³Ñ(³àXŒ]êõr;Š™®fÊw¦ÛPƒØLï@ |Èù “~‰n¯Fç ˜<z/ø¤@—”ð:ŽºMrpíñïß\3]8[ØÅFö²ÝiäÍÝhHOÚÒ™æôÿ´A¼HæVÖòxuO’endstream endobj 397 0 obj << /Filter /FlateDecode /Length 180 >> stream xÚN; Â@Ùnš!swCM*!Fp A+ ±RK E;!/–£^`%mȸöÚ ÃûÛÑ0ÏÈЈ2² Ù1í> stream xÚ31Ó³´P0P0V0W01Q0±PH1ä*ä21PAC°Dr.—“'—~¸‚‰—¾P”KßÓW¡¤¨4•Kß)ÀYÈwQˆ6T0ˆåòtQ``°a‚:ªöÿÿÿÿS$þýG`1jÛ%€þàrõä äÀ¹>endstream endobj 399 0 obj << /Filter /FlateDecode /Length 142 >> stream xÚ31Ó³´P0P04SÐ54V06R04TH1ä*ä24 (™Àä’s¹œ<¹ôà M¹ô=€\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ìø?Èÿ°ÿaÿÿÙÿ“ÿÇÿýCÃ?†?Œ@Èüƒÿƒý‡ÿþøßPÇ`ÁÀåêÉÈÑ4,rendstream endobj 400 0 obj << /Filter /FlateDecode /Length 102 >> stream xÚ31Ó³´P0P°P04W0¶T02VH1ä*ä26PA3ˆDr.—“'—~¸‚±—¾‡‚—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹Býÿÿ?þÿÿÿƒÄ¸\=¹¹E:(“endstream endobj 401 0 obj << /Filter /FlateDecode /Length 96 >> stream xÚ31Ó³´P0P0Æ@ÚP!Å« H(€¹`™ä\.'O.ýp —¾˜ôôU()*MåÒw pVò]¢zb¹<]äìêüƒõìä¸\=¹¹ŠŽ–endstream endobj 402 0 obj << /Filter /FlateDecode /Length 162 >> stream xÚ31Ó³´P0P0UеP01R03VH1ä*ä26 (˜Bd’s¹œ<¹ôÌ͸ô=€Â\úž¾ %E¥©\úNÎ @¾‹B´¡‚A,—§‹<bÆ@‚N°ƒ ?˜8$äÁD° ­õ ¢Dü`#˜ø2î©fâ2˜X3Iq,63© ã*@—«'W yK/endstream endobj 403 0 obj << /Filter /FlateDecode /Length 218 >> stream xÚ¥1nƒ@E?¢@š†#ì\ ^ c)‘ìÊ…•*qé"QÒŽÆQ8%ÅŠõ2[$rëæ³Òþÿ~þ¸y.9áœRÎ3.žø#¥OÊÖcÂEé_Þ/T·¤œ•¤_Ü™tûÊß_?gÒõ~Ë)é†O)'oÔ6Œ`ÙPv*;k . ,¢ UPC< ”èzDNø‚ùÆe™{àÊææÓÎ¥ÍÿÂ]—É·’~+|ç¢ 2¢%‚¢ê¥E_†IÖqh×Ò®þ xËendstream endobj 404 0 obj << /Filter /FlateDecode /Length 143 >> stream xÚ31Ó³´P0P°bSs…C®B.crAɹ\Nž\úá Æ\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.OæöÌÅò@lÅõÿ``âz þÃç¸ÿC?’¾Æöÿÿÿ¨‡à?P æs¹zrrìRZöendstream endobj 405 0 obj << /Filter /FlateDecode /Length 232 >> stream xÚmŽ¿NÃ0‡‘K·xe‹Ÿ'´ 0Y*E"L ˆ‰vdÁÚøÑú(~ªwH‘`¸Oº»ïþ,»óë+ßø•Äò¯.ý¶¥wZt’7šjãõÖ=…'¿è(ÜI•Bï??¾vÖ7¾¥°ñÏ­o^¨ßx¸#€È `Î0Ì#,óŽyB=:F̧˜0¤AÌè.O€=¡ðÌ {Å™sØ2tâÝ÷ 9ÈùF¢štJ´£º:ZëTTwHsͪæT«U‹ù!‹ª,†)b˜"†)3þÚÈtÛÓ#}çwoendstream endobj 406 0 obj << /Filter /FlateDecode /Length 239 >> stream xÚMбNÃ@ `G"yÉÊv~ö%-aŠÔ‰ H0u@LбCQ»’¸nÑ館Ñ?I}ûL§¯óýúeCú-½”¿c»%H00cŽRb†LèÝ5áÁh†¦šRã"Ì&\/d À/©„솄Ná^J¬+J™¯Êx#jCÿ(Ñïä^ ‡NwŒÚ6d`âNùVø?‰1F3:=ª³0+¸(-ª…¶ø aO"{|lñdy‚endstream endobj 407 0 obj << /Filter /FlateDecode /Length 196 >> stream xÚ•Ï=‚@à%$Ópæ.Äõ¯"AL¤0ÑÊÂX©¥…F;£pJ ¾ÙÄÆØ8“ý’7[¬™ŽsyŒc Of|ŽèF&di\%8])ÉHïÙ„¤×˜’Î6ü¸?/¤“í’#Ò)"”¥¬”×*¥üîC Ä–(„\èÓ -p- ð¿*XJ …¹Ð pZàZàYjàW °” ¶( ½0 úáG(Yù“bÀ_íÛ/Ð*£½:øp^endstream endobj 408 0 obj << /Filter /FlateDecode /Length 217 >> stream xڭαŠÂ@à‘Â4û;/ ›œ„@NÁÂYYˆ•ZZ(ÚšÄWÙGÉ#¤Lqì:£Âqå5_1ÃÌÿ÷ÓîxD1 ¨“Pÿƒ)í> stream xÚm1NÄ0E'risÏ v7,•¥e‘HÄVˆ ()@Ð&9šâ#¤L<| Q`ɯæ¿ñ¦9»ÜÉJ¶rZËæ\¶ò\ó¯QÞý¼<½ò¾åê^Ö W7(sÕÞÊÇûç Wû»+©¹:ÈC-«GnBä"éLdT‰¬ê@.ëêGH‹„F3å”16’ 6P9¸€nü\êÑÑ Pbfç4Rêu¢Yù¥šHq_#õB}È!Ûĉ¨\0æºÐgøÜœ!TF¨ÙIàìƒÍAØCÉ$£yñDE‚Ì}Hâ#°‰A _·|äo_ƒ«endstream endobj 410 0 obj << /Filter /FlateDecode /Length 187 >> stream xÚ•Í1 Â@ЋÀ49‚sÝ„$«@Œà‚Vb¥–Š‚•z´%GH™bQgˆqÒ80¯˜åÿ ‡ƒqL…Ô÷) (ÑÎÇ#rô(Šë—íSjEAŒjÆgTzNçÓe*]LÈG•ÑÚ'oƒ:£+ð¼x*Á´P§dÜ‚éåœHðá.ñ'oÇÓœR(@RB¾Ñšü­)Ó`ëêÎòÛn±ÿ´aÿþ —§—øöð\#endstream endobj 411 0 obj << /Filter /FlateDecode /Length 232 >> stream xÚu=NÃ@…Ÿå"Ò4>ÂÎ`mÙ ¦Z) HPQ *HI‚çh{”=‚KV†ñ)‚æóó¾yÓlÎ/[.¹á³Š›š×üRÑÕs±äu»tž_iÛ‘àº%£eòÝ-¼îÉo﮸"¿ãÇŠË'êvŒ\8I@/#2‘£–D°R9ÇL¢’Kp)°Lz ¿€ìO±nPY†]D‘ 5ˆÅˆ>æ¢Lr‘é>Aáʶ»pg¿W·³iÒÛÿ9Ô«ËÔo°0ËZTãþ¾j~]wtO߈ýendstream endobj 412 0 obj << /Filter /FlateDecode /Length 261 >> stream xÚmбJÄ@à )Óì˜yÍÅ»‹gµpž` Á«,ÄJ--m/ÛùZy”€/0`0ìøïh#„¯˜egÿ?‹æä|%3YÊq-‹SYžÉcÍ/> stream xÚ31Ó³´P0P0Æ@d©bÈUÈeh䃹`™ä\.'O.ýpCC.} 0—¾§¯BIQi*—¾S€³PÔE!¨'–ËÓEAžÁ¾¡þÀÿ0XÀ¾Až0À®ËÕ“+ 9Ü-Iendstream endobj 414 0 obj << /Filter /FlateDecode /Length 197 >> stream xÚ=;Â0DQ m“#°'À1ùQ. ¢@T@I‚Ž–£pʈ°'XÊÈzã™ì&Ùp:áˆSN8qjøhèBq&,âd ãp¦Â’Þrœ‘^ %mW|»ÞO¤‹õœ é’w†£=Ù’•œ\¾à%Ò‹„NfN‚¦Rª×8þÔŽ;Óó§„À?]¨AÈq„Àë¶ !帿ÁÅ;$E‹ïC3þÑóNÕM€YBï¨vÒ¶ò¿6Ân*§…¥ ýUKeendstream endobj 415 0 obj << /Filter /FlateDecode /Length 111 >> stream xÚ31Ó³´P0P0V04W01Q0¶PH1ä*ä21PA#CˆLr.—“'—~¸‚‰—¾P˜KßÓW¡¤¨4•Kß)ÀYÈwQˆ6T0ˆåòtQ°ÿÿÿÿŸz ñï?*‹1pš¶ƒËÕ“+ ÏJSendstream endobj 416 0 obj << /Filter /FlateDecode /Length 194 >> stream xÚE1Â0AH×ä Ü °MœR. ¢@T@I‰Ž<§ä ))æ¼ àbeÝx½{6íG¬9aËvÀ‰á½¡Å©Ì4Û!ÀîH™#µæ8%5—))·àËùz •-§lHå¼1¬·ärÖ-9· ï ò¹—"“§HôéÒöEÀ •H$;5ÆšÀøÿ2à¨úÞ ïà€¿Ôó¢É@L¾lº ú¡)åa7lI3G+úùlJendstream endobj 417 0 obj << /Filter /FlateDecode /Length 190 >> stream xÚ31Ó³´P0P0bSSs…C®B.ßÄ1’s¹œ<¹ôÃLŒ¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ö P߀ ÿÀJ2~~€‡dþü|"ÙþÀN‘üþ`%åê°’ö õ ìhL²¨ FÖÿÿ'ÿÿy“ü´ñû,$3üÀÀŒêÿ3Øÿo€ÿAŒYœËÕ“+ H0‚6endstream endobj 418 0 obj << /Filter /FlateDecode /Length 198 >> stream xÚ}ϱ Â0à” …[|„Þ˜TkÑI¨Ì èä Nêè èj}´>J¡c†Ò˜ 4è „|4ùÓ;.ˇ³)J¹q’ã)…+di¹#Ç  Ä3 bånA¨5Þo3ˆb³ÀD‰ûåT‰•µšYk[Âz^Dí«yÃ’Æ1 ¸é‰<­ƒý§QøƒS˜H¨hUsjD0NÍû/ëýÕò£QG<ó¿Tá]×ãKÅDbh@C£6„“3K[x£Gœjendstream endobj 419 0 obj << /Filter /FlateDecode /Length 230 >> stream xڥбJÄ@Æñ/¤L³°óº Éi¬ç ¦´²+µ´P®Û©¸©ysÎϽQ­‡%oÚõæé•¶=¹{®[r×é˜\ÃïŸ/ä¶·—\‘ÛñCÅå#õ;üÐ"ÓL EÐÅ(ðJ£däG)‚2£3!_±#2±C¢[°â•Ã{GEþÁòÀá{ÿûåʰ :Z2 fFŠ…€bÖ˜9eÙ)úQSFÊO?˜žV2C—ºê鎾?9ruendstream endobj 420 0 obj << /Filter /FlateDecode /Length 197 >> stream xÚ31Ó³´P0P0bS3…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. õÿÿ700üÿÿÿ˜ü&ÿÉÿ @Y 4ûÆÿ€$ƒý)&ù?€Hö ’L2þA ÿÈ:0Y&íq‘ Ržbb¦ùõH.©C¸ ÙÍ_@|ñü¸¯A! HÈÀCé,ô !ÉåêÉÈ݈Iendstream endobj 421 0 obj << /Filter /FlateDecode /Length 149 >> stream xÚ31Ó³´P0P0bSS3…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. õÿÿÿÿÃ$þÿÃBÖƒIæ uD“6`’ùD2þÀJþÿO˜Ä¥j2ÛøÁ¤|©$(4þ7üÇA‚e¸\=¹¹WD–Üendstream endobj 422 0 obj << /Filter /FlateDecode /Length 141 >> stream xÚ31Ó³´P0P0bS3…C®B.rAɹ\Nž\úá &\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O…úÿÿÿÿû€$þ3``°'LÈ|DˆøƒAüÿÀ¦jåDýÿ ÿÿÀ À\®ž\\,˜µendstream endobj 423 0 obj << /Filter /FlateDecode /Length 230 >> stream xÚ•½NÃ0€/Êé?Bî¨Õ…vŠÔ©`b@LбÖÞ Þ$R_à¤.•åjŸKÅŠ-}ƒo¸ï³»ͦTИ®JrŽ&7ôRâ+º‚ÂLãäy‹óí¹íÚ?£­oéýícƒv~· í’K*ž°^ÀdòÃ`dÏPÉ‘¡aD¾„ÓZN{¨8;@Ά:0œGdœzT €”Û š3’Î#ìò§ÿ'dè!Q M„4·éò³† ýú™¨«â>¡Š1š¥š£5ßȎ×t*Œ«ïñïć5endstream endobj 424 0 obj << /Filter /FlateDecode /Length 114 >> stream xÚ31Ó³´P0P0bSS3…C®B.ßÄ1’s¹œ<¹ôÃLŒ¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õÿàèÿÿp„,Îü~èÿÿÿÉBÄ„—«'W NÁ§Pendstream endobj 425 0 obj << /Filter /FlateDecode /Length 105 >> stream xÚ31Ó³´P0P0bS3…C®B.c# ÌI$çr9yré‡+qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êÿÿÿ÷ €ÄØ0 %ŒË\®ž\\6Qg?endstream endobj 426 0 obj << /Filter /FlateDecode /Length 126 >> stream xÚ31Ó³´P0P0bS3…C®B.rAɹ\Nž\úá &\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O…úÿêÿÿ``ø'ê!P‚È:„ˆ°'–¨ÿ`àbÿ¸\=¹¹”…joendstream endobj 427 0 obj << /Filter /FlateDecode /Length 201 >> stream xÚ­Ð1 Â@ЋÀ4¹Î \kP1‚)­,ÄJ--!9™D,,½î¶T×]…S[̃ù3Õçn¥Q§*9z¸K5—¦.s½WÍj“9ú!²!qެ«SdaVËõ ™ßo“ƒ, ‘þcP$”ˆnPPB¥z@QÉÈ(>Z°öðãlíl/5.§žâÒ×ÄK=&M£Ø¥ÄÆ(o9)÷Œ[‘·•ä-Ç_m0ÂÍv¢ž`é®Þfsì„8À„‰‰endstream endobj 428 0 obj << /Filter /FlateDecode /Length 199 >> stream xÚeÈ1 Â0Æñá-ÁwÓ–ZtP¡*ØAÐÉAœÔÑAQPPRo¦7iqpT· ¥±I( 8¼ïû{~£ÝBÝâ¼&6}\9°Ol[Lñ,7„@gè¹@GEŽq¿;¬“>:@8wÐ^@8@–’X&äaüÆs!Ëe—V^Äz“ÒHø4½ ¦±6Q¾µ±25> stream xÚÍ=‚@…ÇXLØ è²ò#V› &na¢•…±RK ¶ÂÑö(Ò‚°.CÇ l¾â½æ}/N竌BJh&)^P²¤«ÄF© ]œ Í厹Fq¤(E±u1 ½£×ó}C‘ï×$Qt’žQʘZÛ‚gm¾µ‡J9Õ€ƒeÊ ‚ºðë€7FçдÓ?oaŒFòú½ k©ïÄ öª,Íú|_ÂçàFã&hendstream endobj 430 0 obj << /Filter /FlateDecode /Length 182 >> stream xڭϱ Â0àHá^Â{ÓZìZ+˜AÐÉAœÔÑAÑÕöÑú(}„Ž$ç] 8Nù ¹ä¿KšMó9&èx¥gž,\Áå¼Od+…ã f‡.³âS0~÷Ûã ¦Ø,Ђ)qo19€/±"jõB¨.P«;UuÌD÷ŒF¯ Âó'a¸üy£bhŒçF±¥4j-iMËðO*ªÿ·ù"`éa oõÆ…tendstream endobj 431 0 obj << /Filter /FlateDecode /Length 218 >> stream xÚн 1 àÈ Y|óÚ;©‹‚?à ‚N⤎ŠÎç£ø"®äb/YÄÁÁ>JÚ¤¡¶Ýèu)¢&Õc²jµiã­õɈZ=Ùìq˜ Y’µh¦>&™ÑéxÞ¡ÎG£Ó*¦hɘR. eΘى/É".à‹Ò¬t ÖòÒªª®ôwèð£VûhOé/oé»2C óxŸûB§©’ÙbM•nÕÿ¼æ¥7÷íÝ¥| "çþÃÔ€3Ÿ©ˆàï>à$Á¾$Jendstream endobj 432 0 obj << /Filter /FlateDecode /Length 250 >> stream xÚu1NÃ@E'raiš=ÂÎÀ1IL¨,… á ªˆŠ¤DöѶã¹.·þü ‘(öigöÿ?³Óêølnc›ÙQiÓ›ÚºÔ'Tl²=ÿy¹ÐE£ÅÊ&•—lkÑ\ÙËóëF‹Åõ¹•Z,í¶´ñ6K³NZäa|„ ø 9€à|t5»¡î¡iûH†„ˆÿ…û JòŽbz<„„ë¼rd'¾¥0Õ´ †½(9qp&8 %? cF¿ûi=¶H^†Qèù #tü)„g/pxLkDÏ…3zô¢ÑýŠAendstream endobj 433 0 obj << /Filter /FlateDecode /Length 127 >> stream xÚ31Ó³´P0P0bSS3…C®B.ßÄ1’s¹œ<¹ôÃLŒ¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. õÿ Dü?€‹üÃ`ÏÀOY$Ù€$ ;Rþÿ?óÿ¬$X–ËÕ“+ V—Xêendstream endobj 434 0 obj << /Filter /FlateDecode /Length 174 >> stream xÚÝÊ1 Â@…á )Óä™ èfaµ Än!he!Vji¡h-GɶL2ކ€à „á+þ7&.擦‰&“R’ÒYã ‘S2–Ós‹jOÆ ZKFe7ô¸?/¨òí’4ª‚šâ#Ú‚J®"n˜ëŒÝ¯Ãê;€þʼQ¯ýºO„7ZB؈U$fMYDÌ@È ÷¢ÏìÞfò‚+‹;|WWŒendstream endobj 435 0 obj << /Filter /FlateDecode /Length 210 >> stream xÚϱjÂ@Çñ_pþKÞÀû¿@{98Sj@-4ƒ “ƒ8µ •¶ä-rpn‘âA0fÈò¾¿é§ãÇá€#Vü XÇÜù]Ñ–´ö1âþÓeyÛÐ8%¹d­I¾úL2ñ~÷ùAr<Ÿ°"9å•âhM锳AiËtJwïeB# LX‰6vs`ÔRaFèØ$ÿi4³•‡š÷ ;¹¢QWytExÝ­'{¸úgk~ç϶É,O*¨™á$½=t è%¥~©–§endstream endobj 436 0 obj << /Filter /FlateDecode /Length 110 >> stream xÚ31Ó³´P0P0´TеP01Q03VH1ä*ä22Š(˜B¥’s¹œ<¹ôÃŒL¸ô=€â\úž¾ %E¥©\úNÎ @¾‹B´¡‚A,—§‹BýÿÿQÀ¿? C ýGõÐG\®ž\\0ñoyendstream endobj 437 0 obj << /Filter /FlateDecode /Length 112 >> stream xÚ31Ó³´P0P0VеP0²P03VH1ä*ä22 (˜Bd’s¹œ<¹ôÃŒL¸ô=€Â\úž¾ %E¥©\úNÎ @¾‹B´¡‚A,—§‹Býÿÿ‘@ýÿÿ öC Õÿÿê…\®ž\\¼HB€endstream endobj 438 0 obj << /Filter /FlateDecode /Length 220 >> stream xÚu=NÄ@ …_”b%79Âø ÕHË"‘ * D[n‚–™£å&ì¶Ü"ŠyãmafôY²ŸíyýÅéõ•.õ\O:í/µïô­“wa\òögÇÊëVVƒ´O¬K{Ç´´Ã½~~|m¤]=Ü(³k}fÏ‹ kEÚ¨m&fhÌF ˜í€hÆrá°ž +'Ø2¾©ʉ3Ùq4|PYáÂÙØš0eܦÑé½³súŸÉ5ɧ¥\Ó@ÜñïeÝ'ýXæÆÆreSU¤4¹äQ~MQdÅendstream endobj 439 0 obj << /Filter /FlateDecode /Length 206 >> stream xڥϽ Â0ð+Â->‚÷Z+©S¡*ØAÐÉAœÔÑAѹ}´>бbð¼$*.b†áBîþ§zíá€:Ô¥VDJQÜ£m„T‘;÷ýËfi†á’T„áTÊf3:Ï; Óùˆ¤:¦•üYc6¦\ƒ®¾›;ƒ¿lhkb¬Ì⹄€™/N-êÄZ6*±¨ñp·—§¹ë™|ZX›?š¼4®ïìõ½>uóÎæs¾’—n—‚«Ý tnìÆÍ N2\àKKvendstream endobj 440 0 obj << /Filter /FlateDecode /Length 205 >> stream xÚ¿n1 ‡]1œä%oÐó ´¹”ˆÒ)$n@¢S‡Š Z•µ—¾Y…G¸‘!бi…ÄÖ _¤Ï²ý³=¾Œ©¡gzpäŸÈ;Ú:üÀ¡Ù¨¹T6{œ´hßhèÑ.D£m—ôõyØ¡¬¦äÐÎèÝQ³ÆvF0à`ø80¸cfṉ̃bè¢9)zA}T$"ÜË'¯S|_QùŸ(·½Ýª(ãM I +ëT÷PG“eyÅ?¿Ñ4dѸYƒ÷z‚Ü1…ó_ñ ° Sendstream endobj 441 0 obj << /Filter /FlateDecode /Length 255 >> stream xÚMбNÃ0à‹2Dº%à{H-BK+•"‘ &ÄŒH€@b@M™y%󼂫>‘XPÍo'mìáîì»_.«]-#9”-ûZª=¹ÑüÀ¥/ޤ*»ÎõOk..¤Ô\œ ÌE}*OÏ·\LÏŽÕ™\âÍ×3!œÉ(×I[©‰œG®#ÿ“ØßÁ4¶Ìb­ŸîMÜÌ>¿ Z|Ä#güêÆøEcC¶â!Ì!Qn¼ÊøàhÍ#¼é Á7úà.¸Á7¦½¸–¶ƒYï Ìí=½ö*ÛbÑÄZSüYZRÉji([!³#>mLÄÇ5Ÿó?¸IuÎendstream endobj 442 0 obj << /Filter /FlateDecode /Length 194 >> stream xÚuÎ= Â@à·¤ B. f. Ù%i„`À0… •…X©¥…¢BÌ-GÉR¦®#V2óïM3‰%cÖl4 '²š†.kþŒ4ßÓáLÓœ¢-Çš¢¥ôå+¾]ï'ЦëKžóΰÞS>g ”«áW BxŠ©j‘z R_5A…"™E›YÕ”Ö¯K„U©J×Â9‹ð£û¯'ú"}…hžPõ^"°ðmOÞ‚h‘Ó†Þq«Dàendstream endobj 443 0 obj << /Filter /FlateDecode /Length 222 >> stream xڥϻ Â0€á‡ÂYòbÏ hzà ‚°ƒ “ƒ8©£ƒ¢ÐAªà‹¹ù>BÇbÍi¼` .fø†œ$äwk•j m,{XvèÛXõqîÀ |WnÛX÷ž³ÙÚˆ1ú.ˆ¾€¸Yo ÚÃ: º8qОBÐE&׎0RÒ<¤üx’ZJN¶¬·ÑC:qºìª×P&z Ê8g!M“O™ya9¹òôKKyÐÛR2½{öŽûööGt¬÷;ÑÌ'3#N¿)-öòZ"“&g†aÖ£žÉj¡ÀîHµb€endstream endobj 444 0 obj << /Filter /FlateDecode /Length 246 >> stream xÚEÐÁJÄ0à 9æ`ßÀÎ h¡µ°®`Âzò žÔ£EoËî>Úú&}„xë¡Dÿ´[–Àw˜Ì âݹ¯¥/g®_Š/äÕñ—ª…\Ô‡«—w^´l¥¬ØÞ¡Î¶½—¯Ïï7¶‹Õ8¶KyrR> stream xÚ32×33W0P0WÐ5T06P03PH1ä*ä22 ¹†™ä\.'O.ýp##.} 0—¾§¯BIQi*—¾S€³ï¢m¨`Ëåé¢ÀÀPÀÀø†~€Ã"A ãæþvö>örìdØØð°£ ùò @ôÁˆ€¨ž¡ŽáÂ[È D€È‚ˆXð?¨à?PFø€Pãþf j`og`jÿÁÀåêÉÈ@âB©endstream endobj 446 0 obj << /Filter /FlateDecode /Length 253 >> stream xÚEÏÏJÄ0ð 9±/ f^@³¥u‰§Àº‚=ëɃxÚõ(¨(ì©Þl}“úöfÅÐuÒ%ôò;|f¾äéy~I3šÓYJùÍ3Ú¤øŠ™åãü0Y?ã¢@sO™EsÃ1šâ–Þß>žÐ,VW”¢YÒCJ³G,–ÂÀ~¤È‰.¢&ÚH2±‹è‰:â&`Dí Ý1[ %´[(ŧ‡A6ŒâËþ8p${áO Þˆþ%À×ä/¯—¼Oþ„zCè~ ö> stream xÚÌ= Â@à‹Àæbæº?‘˜BbSZYˆ•Z * !æh%GHi¢;»÷UïÁÓáHF$iBCE:¦(¤£Â+jIœhì–Ó Å–´D±45ŠlE÷Ûã„"YÏI¡Hi§Hî1K ¼ºû5*|çͧd3ØË*¬ÖjXÇù°®S3ϩؿ÷VëCÛƒÆ@Ógy ù¦Ìg ¸Èpƒ?¬eHnendstream endobj 448 0 obj << /Filter /FlateDecode /Length 272 >> stream xÚ]ϽJÄ@àR L‘y¹/ I0nRHë ¦´²+µVQ°$â‹o22Ep½ùaÕtßœ9—ËMÓ„"Jé ¦ô˜’ˆîcù$W)‡%ñôs÷(×¥ ¯i•Êðœc–ôòüú Ãõå)ñ{C71E·²ÜÓ¢hP¢wvÖݨ\|uê³…§úÀéhï:ø:CµEÝ¢²ŒŒQO°¨ ã­0¨Æöã‚@5 e|ÃaŒ9¯˜ò¸àvsÓmç|.ˆvn ;ç{¨\Pfnjc§‚nþ›Å‡Ã9,  r·Q{žE.ð|kî Fà9ߪx5à®…<+å•ü!Dƒºendstream endobj 449 0 obj << /Filter /FlateDecode /Length 228 >> stream xÚMϱJAàY®X˜"ûÁл ’B Ä^ÐÊBR%–B 1—7[ßdaË+Í¿¹ƒ¤ùàŸvaÆÅÕ¤”B&rYÊx$®MÉo솅¸²kÖ¯<¯8ç8¿Ç˜ój)ïŸ/œÏny!ÏøhÅÕBT¤YMºUÿÌþmh` µta‡ôMC;¥º¶N{üšy¸í­ŒðâŽð⹪M•jR<7kR•Å;ugH• [ ?i}Ä‚­z÷G•7žlVŸÔxBf€eœIš'ó]Å|ôà[ñendstream endobj 450 0 obj << /Filter /FlateDecode /Length 201 >> stream xÚMο ‚Pð# ·ø÷{RI„+È!¨©!šª±¡¨-ÒGóQ|GÉŽVàò»Üsÿ|''¾z:Ó±¯A¨§'_®2 zøß“ãE’TÜNCqWŒÅM×z¿=Îâ&›¹r¿Ð=?:HºPÀÚUOÀ) £œÄpr¼ ]X5ìrT»§$©øüGœpʬLÙvãÞCâüO†žÊ" «§&œq"L×ǰ ËE`/^·Ú Ý€,SÙÊGåOtendstream endobj 451 0 obj << /Filter /FlateDecode /Length 250 >> stream xÚMÏ1JÄ@à?LxM. ;sÍ&KŠ%ë ¦´²+µT¶$ñ –9Ê!eŠõM6&ÃÀW¼ÞOo.µæwždJo”^«ç„ÞI§ã4ͦèé•vÅ÷J§_óœââF}~|½P¼»½T Å{õÀUTì„ : êÂX}¯¢gù6l°Íl–[aq0Î7Óˆ–­ƒmÖ²l9)ºÀ³@¿ôO¶îó,GÑI .ŸåH6ÿZÈÚij8«Ñr´䤻E¶ÜÁòÌ/ó#ÁF½“/[Ÿ-=Ï~1ðí…gutÅGOº*èŽþ1sÑendstream endobj 452 0 obj << /Filter /FlateDecode /Length 189 >> stream xÚUÍ1 Â0à”…7˜ ó. Ii¨ÄB­`A'qRG¡Š‚“öh=JŽÑ¡TÛè’åƒÿþ8 ‰'8ŠPJ”\ NºR Œ~—Ãr|‹q|ÙÕÀÕ o×û x¾žc— ÜE(ö  ô iIÐøŸŠÎ¨¯,ôô¥Y˜)3T§L÷ÔT?²Ú¯Ê¬"ä!ÄX^äéÒö4žåíà[ŒC`ÑÔR;0KÕ¿ô°P°/—˜?£endstream endobj 453 0 obj << /Filter /FlateDecode /Length 196 >> stream xÚ-Î1 Â@пXS¨d. É )Ä"*˜BÐÊB¬ÔRPQ°$GËQr„-Sˆë¬Êðf–ùl“„CŽy 9JxòAÓ…"-ËGú÷²?QšQ°áHS°5Ù’o×û‘‚t5e™g¼•›e3ŠÊÖhW <Œ¥úÂÃLDî(ƒç_O5€z ëNe°Ö)QØ ¾Ë( Э?e&"L!ý U;/Ñ U´Ë³x ûý„æ#Ñ4ÏhMH‘H;endstream endobj 454 0 obj << /Filter /FlateDecode /Length 185 >> stream xÚ•Ï1 Â@Ð )ÓäBæºÙè’„@Tp A+ ±RKAEÁJ÷h9JŽÒBŒ£ëÀâ5à&É{yJ1eÔ•ÔJi+ñˆ‰â0&•ÙËf¥F±¤D¡˜rŒBÏè|ºìP”óIcZIŠ×¨Ç^à7S[¡SY‘c¬Â¯{ÛšÖ¸qöúyZžó°|§ùg¾ÃÓVa†,ãé+;°†ÕPð?‘ÏaÈ]ŸMîʼnƾ”ˆJ†endstream endobj 455 0 obj << /Filter /FlateDecode /Length 230 >> stream xÚEÎÁJÃ@àÙÚ(ɼ€&…Fµ‚9zò ž¬GAEÁCi|ßHöQò9î¡Tg7Úîá[f†ùÛ[®xÆG5Û¶/kz![K³bùÒäá‰æ•·Ò ò2Ù]ñÛëû#•óës–zÁw²sOÝ‚±‚<õ4Ð_[/æÆ«-¦ÉÓÌ«€æ_ðQDŸ §‡?‡Ö™(Dˆ=°I®‘íÝ!óðÑÂCî`ë áígŒmõÁͨ‰® öî²äjPÑ ¿§@0gâ*Ϲ'dr•éuºèè†~½ Zendstream endobj 456 0 obj << /Filter /FlateDecode /Length 212 >> stream xÚMÌOJ1ð²|‹æÅù. 3¡¡@jg!Ô• q¥.…V,¸šx¥%GÈrEý&#ÅÍÞ{ð¼;ó nxÆ§Ž½gßð“£-M¦R6ìݰ<¾Ð²¥úŽ'Sª¯¥¦º½á·×Ý3ÕËõ%K^ñ½ãæÚã:¨˜¤¿‚MÆ#m>é›hò¹æ6êBz¯¢J›*ü‘/ P…Ïž=t!à»ç0`‚ ºŒ  y`|d~d3 2’ 望wt&{  :&tÕÒ-ýÒN0endstream endobj 457 0 obj << /Filter /FlateDecode /Length 254 >> stream xÚeÏÁJÃ@àÙÚ(ͼ€&©¶P,Ô æ Ø“ñ¤…( =”vßÀG諬o’GÈ1‡8I(¸‡ùØvø7žÏÆòŸE|yÁ“_#ú 8–fÈ“¨›¼¼Ó2¡à‘㘂;iSÜó×ç÷ˇ–ûŠŸ"Ÿ)Y1¶“ªº)¥þ±ªP¥1-ã„jdœ†BŽjîµL[¶‚6¾3æ©oOÈÖkç0Å‘}ǾæÁ"EÕQö,,r%™*þ¡2]ÈÕ$Øõè#öƒ&kÏ*WF_Õ…>H”æ`SàÚ3¿à—ºvh^ìºMhM”]kmendstream endobj 458 0 obj << /Filter /FlateDecode /Length 258 >> stream xÚUÐÁJÃ@à?ìaaöJw^@“hµ‚9öÔƒxR‚Š‚‡ÒîøJy”ø9®°´Î¦)èå[˜ÝýgvóìdZrÂS>NKÎÏ8Oø1¥WÊ ©&|Z[Ï4«)^rVP|-uŠë~ûx¢xv{É)Ås¾K9¹§zÎXˆv@¡¾,¼Ö‘nà'º‰üXpç#¡PîÓ4ª{1v «¬ [ôlkŒzl~‘Ä€ƒ±*«¨î›Àú?Û€GÔID䔜VÆÕ ¿¨žî€îiaúñ¬L1`¬t1ì yº,‚Ä‘\«˜È1è]øœIW5-èËKk`endstream endobj 459 0 obj << /Filter /FlateDecode /Length 293 >> stream xÚuÑÁJÃ@à)9ö’(ͼ@MBšAX¨ÌA¨'âI= * 9%y´ØY–ùg“ðì<Æ—1.£ LV˜®ð9Rï*Ii;Ä,>Ôž^Õ:WÁ=&© n¨ ‚ü??¾^T°Þ^a¤‚ >D>ª|ƒ@ËjF†éaGÿ™—Z𯟩A~ Ÿ‡_” _f#½ewšÙžî4Žà ´Ì„–v w ®¯µM7ÿàT§ö%н‡ã5‡”£°DyDï±Ñ´M1¥²™Jjþ‡é©ïK>í˜lBayã+„ŽÞÃXZ™Çw#TµŒÅ— Èx¦´‚;¥áÿÜRzBïÕc|û2–n!p§´ŠBÐft¨ë\Ý©Öû‹Õendstream endobj 460 0 obj << /Filter /FlateDecode /Length 217 >> stream xÚѱ Â0à”ôDï4­­ ZÁ ‚N"ê(¨(tñÑú(}Çæ”$ÒÁ!ß»ûÙnDJ¬7›Øê`;ÂmGR_صµÍ† Ä¥1ÑjŠçÓeb8a"ÆeˆÁ TŒŒ1ï®áDYV!"â@dÔAøéW[•èW"!ÔKø™»)¢Æ ýïù7O"§Ü$}âl&wPpÙáV8ì²Å­½Y®…äÿ‘ÒûAÕRb敹ſ¼Ôü [ëcsx.D‚endstream endobj 461 0 obj << /Filter /FlateDecode /Length 197 >> stream xÚб Â0à–Â-}{/ iZ)ŠB­`A'qRG¡Š‚ƒH­ÒGptp0!wXÄá’üwG.NúJaˆ{Q„ñ…; Gˆ#}⟶È +Œ#3}¢˜ãùtكȔ r\K 7Päè8ž£U–[ëCCJrÕ”–¶t¿Äÿ!øÃ˜ŒZîäF^äi¹ìayFcuŒÚò++¨>£x·æ–¦·0å\J¿M[qŽr¬)i‘f©0-` ok/> stream xÚ32×33W0P0SÐ5´P02T°TH1ä*ä24 (™Ce’s¹œ<¹ôà M¸ô=€â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. Œ˜°ÿàÿÁÿ4ó    ,`H`xÀp€ñs3;ƒ P¢$ÄÀåêÉÈD"endstream endobj 463 0 obj << /Filter /FlateDecode /Length 97 >> stream xÚ32×33W0P04F – )†\…\– ¾%D89—ËÉ“K?\Á’KßDxú*”•¦ré;8+ré»(D*Äryº(ð1Ø7Ô7ü‡@†:.WO®@.tó endstream endobj 464 0 obj << /Filter /FlateDecode /Length 265 >> stream xÚm‘±NÃ@ †]e@ò’G¨Ÿ€K€¤ê©‰ H01 NÀÈPsòhy”> stream xÚÑÁJÄ0à„s0/ Ûymë¶µ¡°®`‚ž<ˆ'õ(¨(ìaqû&¾J¥ÐcKã$“B»x0—&d2ù“§§ÙcLR<9Ãó%æ)>'ðYAÕóÜo=½Âª‚è³¢kªCTÝàçÇ× D«ÛKL ZãC‚ñ#Tk´L-B›ÖYš>¨]y«È`/šÔÐ!Y6BýÐö޶ 9!I¹gƒžkªcuˆ¶õ7·­·tÜk[XV:7öV¶gÕÌ7;Ḭ́J׌6sw£õßšQñ?‡©úÀ£Þcï…·ðn\ªölÇJzKim8¾€´?aÇÆªÇLí…j][¿Šr”-¨ t‡†GW¦›¾®*¸ƒ_°·pçendstream endobj 466 0 obj << /Filter /FlateDecode /Length 327 >> stream xÚmÒAKÃ0ðWräÐ~bó lWaDs‚=zÚA<©G¡ŠÂN[ýd‹ŸÄ ^ws‡±úòÒ,•YÈëï½ÐþTÇêDrˆKÊa)âY¨û¶vãþIŒ+‘O¥*E~‰S‘WWòõåíQäãës9ùDÞdq'ª‰„¨Ý>Y«=G Œ¸0ài‡žåKôHS¾¤ž8òå€ñÂ2 Œ-ÓùžªGºòȲ&¦ž^o÷4+â2ú *${ßüCΈ³À³µgÚ#'® ÊÑgh˨Gh»ÉšŒ2í±I4‡¬é{rÈ2E¦U` .ÞÀi`~È•/ð¯Æ1%n;~ƒ'ûÈÅkÿGEÜtÜvœê2Ýì‰` ”)ßÙ7·Ó¶]3ñ:jOYb|â¢7â¿h­endstream endobj 467 0 obj << /Filter /FlateDecode /Length 220 >> stream xÚ]ϱ‚0à# $·ðÜXjbWÄDŒ“::ht†GãQxFö(DZš?_¶éUÉ•TÓFG)RkºK|¡Š‰‡.yáöÄ4Gq&£Øë¿(ò}Þߊô¸%‰"£‹¤øŠyFà ú+ÁØLvàwà÷FØ )Q, kmc6NjÛhá˜Ê6©Ì<™SþSÌ#÷©ç^7©[âž¹–¯ä=|Tëñsøí$/gú®­màÚØ†®µmäZÙ&®¥máj€ÁÔÅЛÒw9žðú}$endstream endobj 468 0 obj << /Filter /FlateDecode /Length 271 >> stream xÚuѱJÄ@à )S¸o`æ4‰˜œ…ÜÂy‚)­,ÄJ--í”죥ó5òn™Bnœ ^”°|°3ìîü©ËÃEE%5tpDõ‚šcz¨ðë’Â×4±rÿ„«‹ªK,.d‹ö’^_Þ±X]Q…Åšnå ;lׯ'½Ðm sê2o>Ó§_BI` ÀÒø.½Â¨$^I-Odý#œ îráä?«¶ Šñ‘ïk1ã12Oh/ÇÝŽµ7çͬl$c§Nt»{sÄü’EÌ {;샎¡À«‘„µŒQÚ-£>@ue'w ƒÆ5Žáð„I¼Õñ£ÃöúgÏ[¼Æ/ckàendstream endobj 469 0 obj << /Filter /FlateDecode /Length 223 >> stream xÚ}ѽŠÂ@ðYR¦É H2Oà&z‰‚` ᮺB®º³Tì’GË£ä,-$ëln †[nŠùñŸÝf˜ìm˜Ž)¦$å6Q6¢Ÿ˜fœcÛ—ï=Îs”Ÿ”f(׎9kÇendstream endobj 470 0 obj << /Filter /FlateDecode /Length 219 >> stream xÚMͽŠÂPàR¦ñ2/°&Á`ÜFÁ0ÅÂnµ…X©¥ ¢`!æZùZW|‘+>€m,‚ÙIDLóÁsçLجìó'Fú< hIH†>‡Á3™Ì©“÷ˈ¼¡ŒÉ‹¿x½ÚÌÈë~÷XÞ}Iјâ>{V®çtVpÕM£ƒ\Ë<ÑÈ(뎎²ÓŽ‘¼VRüt5’‚½D²Xlã•!‡”=*Ø%i+«à”˜m&W»'®I¥Ö˜6’‚¿‹q­ëE׎‡«²sé• mÐ ¦ú]‰endstream endobj 471 0 obj << /Filter /FlateDecode /Length 222 >> stream xÚ=ϱjÃ0€á3·è š{V6@!¤P…vêP2%;¤´ÐÁ$ÞòZy?AQ§Þ œž*+ßrô_ínêYr–®Õަmî°²gZO›7\4hž©²hîe¦y ÷ÏW4‹Ç%94+zqdר¬&'Ðç¨ûó ’Ãh?F!)2NÊÌG-¨Ÿ3¨ßãI}—½ …×,|ÁÚëX¾Â¤‹Š0Ï 9@ñþBñʇ Ýg,LjŽå,Á_¢•ÐVân%êJõ ujH½x×àþ‡îhendstream endobj 472 0 obj << /Filter /FlateDecode /Length 191 >> stream xÚmÎ= ÂP ð,dðÝÀæÚ¾ú Ò‚V°ƒ “ƒ8©£ƒ¢àPZÖ£ôot(jŠƒ‹Ã/䃄=4ñ@³ Ù|Ðt¦Q(Í€þNö'šfäox’¿6ùÙ’¯—Û‘üéjÆR§¼Õì(Kð*àmѱ9TÕ‡‡b(ä’5('ÊŽEéZnBÕ·­äñS¶ðó¯?š¯®è@_LÄ=l§öàVê¡$pä­ö0Í3ZÓ!æ:pendstream endobj 473 0 obj << /Filter /FlateDecode /Length 253 >> stream xÚÕÒ½NÃ0ðT"ÝâGȽu¢~n–ú!‘ &ÄŒ ˜Ý7è+õQúíØ!ÊŸ³¯ñ‚ŠÄ„ˆdå—‹³ÿÊl4¬æ\ñ˜¯jžU<ñsMo4HQÇúæé• Ù{žNÈ^K™lsÃïŸ/d·K®É®ø¡æê‘šgáʱ‰wƒ_ s=Ìÿ‡$ p8E €.¢° (±s‡×…¢ÀŸÂ4Ž2ì¥*ȱÓ| ]¹Ñ6&âÜ´LèÎpßàÚ‹À_à‡ýøËÇIHGN!ÄXÊ>±] ³7ž#†Ýfæýß".ŒÎF«?«Ç^Q 3Ò™Ö Ýщb=endstream endobj 474 0 obj << /Filter /FlateDecode /Length 244 >> stream xÚ…¿J1‡gÙ"0M!óº·`D«Ày‚[ZYˆ•ZZ(Úºy´}”<•aÇ™¹ãôP1|ðå—?üâéáIO :¢ƒžâ1ÅH=>cT¹Pc;÷O¸°»¡Øcw!»á’^_Þ±[^‘ØÝÊ™;Và8ƒŒ‘?dm˜gPÇj·\R…q :“dÄ„*Á |…Vbn¶;ƒg³Eó çd˜ö1Öo( Ø÷aãhDBÿcü³!ýD[Áo˜¬1¿En¥ ¹±¦ä%iêÝînª6N:ó\ÒZÛ` æ]H›_ÙI<ð?yë­œendstream endobj 475 0 obj << /Filter /FlateDecode /Length 175 >> stream xÚÕн Â0àá–>Bï L*)¸j3:9ˆ“vtPtnÍGé#8fœ—:èÒM‡|ä~àŽ3z> stream xÚ¥‘?JÅ@Æ'¤XØ&GÈ\@“HòBª…çL!he!¯RK EëÍÑÖ›ä¦L2Î쮂°áÇîüû¾É®9o[,±Æ³‹w565>UúU7¿–Øv1ôø¢÷½.î±étqÍïºèoðýíãYûÛK¬tqÀ‡ Ë£î¯|¢QÑÑ’“CD–F°³"RcB|&;¦Jª ÀÌÆeÂ%w¹pU¾ëö3Bú?OûþÄÂ|€ G(ú‚^±'€f ‰]âTH¿Ø¯ð“|X9éʶÌÜ/O8E.‘> stream xÚ36Ó35Q0Pacc …C®B.# ßÄI$çr9yré‡+Ypé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ìþ``üÿ€ùÿ0fÿÿ+†ÉƒÔ‚ô€õ’ ä0üÿ‰˜aˆàÿÿÿ@Ç\®ž\\ÍÙ¥;endstream endobj 478 0 obj << /Filter /FlateDecode /Length 243 >> stream xÚÕѱJÄ@à)ÓänžÀMˆD­ç ¦´²«ÓÒBÑzïÍôQ|„-#†wæ_ñ°ñZË·“eþþäà°ã†uõG|Üñ]KÔkÝh©›Í­Fr×ÜwäÎÓ[rã??½Ü“[]žrKnÍ7-7·4®¹¦B‘ý,³Å?¶ ûXø€¾á ú-ä,fXN°pùµMõùÞËV´¶¤µ%‡\{œ`rùô‰Ä_ |•­¹»7fçZlžP‰Íð \X°~r„þ[ƒ'-pG NZpZ¸£ÛYÌŠŽê4ú_ÒÙHWôn¬$endstream endobj 479 0 obj << /Filter /FlateDecode /Length 232 >> stream xÚíÒ½jAð WÓÜ#Ü>·ÔŒ‚WZ¥©LÊ+³vrp!E¶›üçT°+‹ ó›Ý-ÆÙÇvïÞXÓÅqöÁt;æÍñ';ë±j-->x˜súŒÇéiNó©Y-×ïœgOÙ‘yÁÌ+ç#CYEI ºO$RáxŠ%4ˆDJʤnï«Ò 󢣨Ò×®U¶¤ Hª@Yûƒ$߸»Np·â§¤D@¥(€þ¿ØAx^ƒæ §¨å9ìÅE…ÿÇÍÛ„ÂÆip xœóœÿvÚiCendstream endobj 480 0 obj << /Filter /FlateDecode /Length 184 >> stream xÚíѱ‚@ à& &]xúÞÜHLtr0Nêè ÑUy´{ጃ „zwÀ¡Í×6ÿÔd4”’™JBG´ñ„qlfiG{Ø1+P¬)ŽQÌÍE± Ëùz@‘-§¢Èi’Üb‘¤‚˜µ©ÒÁc®|æÚ!P÷Æái à±®!`{èø.ÿT¼ÊV6ß¡ýAÓõ_°yÍÀ4Õ8+p…o âøšendstream endobj 481 0 obj << /Filter /FlateDecode /Length 231 >> stream xÚµ‘±‚0†kHná¼Ђ±0’ &2˜èä`œÔÑA£3<šÂ#02Î^KL%!_sý{½þ¬æI‚!.qa¼@¥ðÁCT±Ý9ß +@P% 7º ²Øâóñº‚Ìv+Œ@æxŒ0> stream xÚÍ’¿NÃ@ Æ]u¨ä…G¨_.!MB§H¥•š ¦02€èœ<’GÈx•ªÛ¹F:¡.§Ÿ¾óùÏçË“«è†"Jèò:¡lN錞c|Ã,5¢<WO¯¸(Ñm(KÑ­EGWÞÑÇûîÝâþ–btKÚÆ=b¹$(“#ýÑÃ!@5@÷Šøo˜J ÿ§4ö{®aäÁ³ÅŒòßëŽfJ®`o}4¼‘.lO­%Þw£‹m_…mt§¢e4](z†`_ëTÀU‰øµ` endstream endobj 483 0 obj << /Filter /FlateDecode /Length 169 >> stream xÚÕÏ;Â0 ÐtõÒ#Ô' ’VbªTŠD$˜02€`nÆQz„T d¨jœ20õXö“üYœé™žcŠš+ã4xRp“s?¶aq¼@iAîÐä W<i×x¿=Î ËÍÈ ÷ ÓØ Eá¢^¹˜6¡–­É±Câ‰:_øˆ:WóÑ«}ßÍO_ /h‰ Æmƒú ýIž™–¶ðj^¤ïendstream endobj 484 0 obj << /Filter /FlateDecode /Length 259 >> stream xÚ]Ð1NÃ@Ð¥°4¾;ÛŠBƒ¥$\ ‘ŠQ%Ú¬æ£ì\¦°v˜Y)¢yÒî·çÝT—ëk.¹æ‹Šë57 ¿UôIõJ/Kn®æäõƒ6O\¯¨¸×k*ºþþúy§bóxË[~®¸|¡nËXÊp8™ÎÙë…HDÑFä#ò°Ô々Ú~Àþ¨¨7ö'ÉQÈ”´^;LKZ+45qj@.dêtÜÇv“ù!¤¸Ç"iíÐÄÌôehÖ”ôÁjÛ]ˆÿdVçµ³½ÍSuž‡è ±ýõ?h©›ÓêgåcfKxýºëhG¿Á•¡Zendstream endobj 485 0 obj << /Filter /FlateDecode /Length 186 >> stream xÚ35Ô34S0P0RÐ5T01Q07SH1ä*ä21 (˜›Cd’s¹œ<¹ôÃL ¹ô=€Â\úž¾ %E¥©\úNÎ @Q…h žX.O†ÀOþÁN2bÌH$;É&åÁ¤=˜¬“ÿA$3˜äÿÿÿÿ?†ÿ8H¨úANò7PJÊÃç‚”ÿÇ`$ÿƒHþÿ ÀØ`ÿð(Èþßÿ ýß E` q¹zrr:é“pendstream endobj 486 0 obj << /Filter /FlateDecode /Length 187 >> stream xÚíÑ1 Â@Ð  Óä™ èfÑlì1‚[ZYˆ•ZZ(ZÇÎkÙyÛt¦Ž»‰… а{üáÃÀ»°O!õ¨­(Võh¥p‹ZÛ0¤(j.Ë ¦匴F9²1J3¦ýî°F™N¤Pf4W.ÐdI àñ˜Kü#ZX€ƒøã+üÏÞ8ä¯È’ àö„wåÂ6î .n ŸÁÉÁNÃõ<sUÃv‹öÁ848Å”Ìðnendstream endobj 487 0 obj << /Filter /FlateDecode /Length 137 >> stream xÚ33Õ37W0P04¦æ æ )†\…\&f  ,“œËåäÉ¥®`bÆ¥ïæÒ÷ôU()*MåÒw pV0äÒwQˆ6T0ˆåòtQ```c;0ùD0ƒI~0Y"ÙÿIæÿ ò?&ù¤æDå(I²ôÿÿà"¹\=¹¹VI¢”endstream endobj 488 0 obj << /Filter /FlateDecode /Length 301 >> stream xÚ}ÑMJÅ0à)Y²é’Ø–G_]x>Á.]¹WêÒ…¢ëôh=JŽe¥ãüˆ? Ú¯if¦“tߟ ChÞ¯6 §á±s/®ßÑ\¦¼ððì£knC¿sÍ%½uÍxÞ^ߟ\s¸>kŽá® í½Ào@£B,D¸'€DdZš"-š,-ÚB/6¨3"x‰š¢äç”™œ®—ÓÊ®k‰í ƒËpÞ7q|Ì$pãFúæš¿È »ùdíL™@ÚAvüZ´H¥ÙFÓ¬¦YM«5Þk|,ZdÖìI³eb4Ðj`Môä³g!@Tt¶«`[ÈBÍ».àA8ã²EþõËwÌ•b«ÔŠW¢’üÉü'îbt7î}tû”endstream endobj 489 0 obj << /Filter /FlateDecode /Length 305 >> stream xÚ‘½N„@LJlA² À¼€ÅgErž‰&ZY+µ´ÐhÍ=Ú> @IA烋 á·ì|ýgf.ëK xQá®Âz¯•ÿð!ðe‰õ•Y^Þý¡õÅ#†à‹[¾öE{‡_Ÿßo¾8Ü_cå‹#>UX>ûöˆ)Eà§£‰¿ŽˆN£ÈGG#›"ˆqhfHøÔ8¾ÏéäfEÊAEIÅÈ=¿ÿ„Å-ˆÎ’%$©#쵂H\ÀÕWèfä¹  Íhg™…™cgݺi†¹8iZþG«`©s+´¤É,25×ô\iÜ`2[Ì[¸¨ÈE3)Dä/ˆþbZÁ1.8Gƒ ƒ•I¬³éUuužR¯áÍ:îXÔ&¼oÝ´í]Ö¯"MºÎÝß´þÁÿéýëoendstream endobj 490 0 obj << /Filter /FlateDecode /Length 225 >> stream xڽнjÃ0ð ‚[ôº'ˆìPÛt±!têP2µ;´4›qüh~?‚G‚$ÎýÅC»õ@ú¡Bw—&ó,㈮+]pöÈo1}R2æ¢ñ8^¼~в$ÿÌIF~{Í’/wüýu|'¿Ü¯8&¿æ—˜£•kžnûLMÔÐ@;ÑÁž&žEõD-twñ>‡5 pU/jh:ØŠ¶,PW+D5À^Ôh ma#:ôYÀVpÔ=ìDÓŠºb~9¬a€g‰æ/ÌÿŸuøÿwiSÒ]]Óqendstream endobj 491 0 obj << /Filter /FlateDecode /Length 285 >> stream xڭѽJÄ@ðY l“Gȼ€&áH¢ ç ¦´²+µ´P´N-²°`“b¹u>r‡"X?²ÙLæ¿Ó6']‡¶x\c[awŠOµ}µÍšéñLß<¾ØMoË;lÖ¶¼¢e[ö×øþöñlËÍÍÖ¶Üâ}Õƒí·hF8ˆs0;àÛ¤Ž¡+*³¯Lʨ€•Yñ ‘ iþŸŒk›àäï!%Nó¹4tíaà(.JÚ‚bÒî> stream xÚÍ“?N…@ÆgC±É6½€QãÚ¸Éó™Ha¢•…±RK vF8Þä%^€’‚0Îì ‘¼Z ø-;;3|óqvrX”ºÐ§ú ÔÆhs¤ŸJõªL¡ù6Ç~çñEm*•ßiS¨üŠ^«¼ºÖïoÏ*ßÜ\èRå[}O‰TµÕ@W‚€dªR‰ˆ;Ȉ,Q–ˆG¨9ÛCi ì7rXKËä0—Aà@$ˆs;’²º:ñ>GOÔ11PV¨GG’ª à{ ré(µëÜ‘  J}1*7S(»$;SheIÙLõ>âoúCø¨^¥f­i0Ó¤ÚÙIñ™Î§ÉÌô¬ð§ Cœ4ôqú¢ŽHºèG®¹‹nJÛè°¬‰®³œcÔC +{ç7ZÛÎÛ¶>»ƒ Úà¿¢‹*E!¼Õe¥nÕ/ÙÏíãendstream endobj 493 0 obj << /Filter /FlateDecode /Length 258 >> stream xÚÕÓ1nƒ0`£ ‘ÞÂx'¨¡b€ ‰¦R"5S†ªSÛ±C¢d†£õ(9BF†ˆcWæGµR¦Z}lÀþ_ÇYÂ1§æÈSÎù#¡=e¹éÇ}·¿ñþEeEzÇYNzm®’®6|<œ>I—/Oœ^ñ«™æª‹kªo?nÁ‚>ƒíCK¹(Iç¸ÖªoïÐv^سs`'rVr\wƒ Iã‚—ý˼ÏÞ‹‘/ÞÁÈí¤íýênp=g¹ÇÍ?ôÿ;³†¸ÎØ—¹=Å  13èr…Ù‹ “E7™ÛòŒ™ÇZ€1µÓŒk kmªgjÖ.=W´¥€Ms³endstream endobj 494 0 obj << /Filter /FlateDecode /Length 228 >> stream xÚ•Ò= ð×t y G('«Æv3ñ#±ƒ‰NÆI4:—£õ(ÁÑIÓ¾ú¤H~…þi¿ÕE[ôLK;¶nc<`’˜ïgØìq˜¡\Š$A95½(³™8Ï;”ÃùHÄ(Çbe–Yc6º,wh*àúÀ´.9)"1RH HP+wh ¾yÅ›(¸/*±†øPè#qRDÒ¥LùSõÜ×õ¸c_ÿÿ½Ÿè擽®²éPèÒå[Ì+^« —& ÊIº ¬)J¢¢t*Jl)sŪJ¶SàN2\àîÀU\endstream endobj 495 0 obj << /Filter /FlateDecode /Length 105 >> stream xÚ3±Ð31Q0P0bS #…C®B.C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. ÿA ÉÀþÿÃ(9THü±ÉåêÉÈ’:Õ°endstream endobj 496 0 obj << /Filter /FlateDecode /Length 209 >> stream xÚ³°Ô³0U0P0b c #…C®B.s ßÄI$çr9yré‡+˜[pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þƒÁëÿ8ëœõ¿ÎJóƒûÿ ,fn0‹¤ªÿcÙ5CXòÿ@Y ÂbGb}ÀÂúe1ceý¡ Ÿ½ìH,ln~÷å Ÿ#BBðPŒº`pÎb€±~ÀY 0SFYä± I—«'W TÛ4#endstream endobj 497 0 obj << /Filter /FlateDecode /Length 290 >> stream xÚµÓ±NÄ `H‡&ÿÒGèÿJk×NMÎ3±ƒ‰NÆIMÔèÜ{4¥ÀØá"R ÜßÈ%)ù ~ø¡Ùœo®°ÀK<+±©±¾À×>¡©Lcuåz^ÞaÛxĦqkšAtwøýõób{%ˆ>•X> stream xÚ•‘±JÄ@†'¤Ls°óšL® œ'˜BÐÊB¬> stream xÚµ±NÃ0†/ê`é?BîÀ‰dSº`©‰ HeꀘhÇ XI-Â#dÌ`å¸s‚ºtÅËgý÷Û¿î·×~Iyºª)x ö5¾£_‰XQ¸™&oG\7èväWèEF×<ÑçÇ×Ýz{O5º ½ÔT½b³!€ÿ€œÈ£‚™Oª±ª–!2J`@;€÷PŽPÈ<²;…‘GgÈ3E9c̈¹*lÊ0´9Útüø / Îà Ýìi†Õnʲm'¾©¿;)¤ø–),åˆbÈߘ^‹ìJq™©Ý‚§®£zµlÑð¡ÁgüÍF‹¾endstream endobj 500 0 obj << /Filter /FlateDecode /Length 210 >> stream xÚ½Î= Â@à )’ˆsÝĬ¢…üSZYˆ•ZZD´“o¦7Ñh—B\gw±J)Ø|ÅÌðæµ‚F3¤€"ª‡$;ÔŽhbŠRò0 ¶´›Õû Š9I‰bÌcÉ„ö»ÃE: Å´ÄdHà ¨’žÑ5:ÿPi=uekù“=B·Ð«jîü¼›nå_t+k-×±ÕäœJfÆ÷f¥LûËþåîWn噞¾é\y郧¼ Uˆ;ë«3ë¼y…£gø£Ðz?endstream endobj 501 0 obj << /Filter /FlateDecode /Length 204 >> stream xÚuο Â0ð/t(Ü`_@è½€¦±:YðØAÐÉAœÔÑAÑMj-â#8vëiQp0?¸K¸|6隌N¹c8ÍØÞÚSje˜°í57ë Ò N-鉌IS>N[ÒƒÙ é/ '+*FŒà ®P†W R7HU®8#ôè#òÈ;Äo\ކÈ]>øòËãK-§AZà/å‹Ë/²>—L^¾T^('N"†nhAUhwdòZ#ª= d# šÓr!Išendstream endobj 502 0 obj << /Filter /FlateDecode /Length 143 >> stream xÚ32×33V0P0bcc3…C®B.cßÄ1’s¹œ<¹ôÃŒ ¹ô=€¢\úž¾ %E¥©\úNÎ @Q…h ÊX.Où ÿ?00°``?ð‡¿ñƒ<Û3þc°â:fø„ äâÿÿÿÃ1%æP}ÃPÿÿs¹zrr›_¯endstream endobj 503 0 obj << /Filter /FlateDecode /Length 261 >> stream xÚ•=NÄ0…_äÂÒ4>B|Èå®´,) ¢@T@I‚íº£äF('à 9e k͇b (H¢/öøÍË›tG‡­¯}ëÚÚwï×È£ð]ó>n~ŽndÕKuETg¬KÕŸûç§—{©V'žûµ¿fÓôk^ÀÄ".Ù·€…ýtÑDŠ©˜\0_ˆfÄ+`G•Ït–ÿá~ïì¦Î€~…ŒÜ¡ø°ëïLcx«cØã ¤§2%õIi—™(ئ4æõ¤ÊrB8±F‹ü†+å ƒòOƬ™õ›Ü«>Q=9'å|¸ ùVÅ)æX,Èi/—ò mhÂendstream endobj 504 0 obj << /Filter /FlateDecode /Length 165 >> stream xÚ35Ð32T0P0b 3c…C®B.S ßÄI$çr9yré‡+˜˜ré{E¹ô=}JŠJS¹ôœ ¹ô]¢ÆÄryº(0þ`‚ÿ$;˜d“Œt"™ÿ€Hþÿ @Ò†ÿüÀü€ñçæ Œ¿€Êƒ3þg`øÃÀø‰üƒDþ\$3Ø‘ÿÿ¨ÿÿ™ärõä 䄆yendstream endobj 505 0 obj << /Filter /FlateDecode /Length 124 >> stream xÚ32Õ34R0Pc#3C…C®B.CK ßÄI$çr9yré‡+Zré{E¹ô=}JŠJS¹ôœ€|…hCƒX.OÆ ìø   PœÀøƒ¡†Ø00ÿ‰Ð1ÿaøÿÿq¹zrrÞÉHTendstream endobj 506 0 obj << /Filter /FlateDecode /Length 150 >> stream xÚ32×33V0PÐ5QÐ5´T02P03TH1ä*ä2 (XÀå’s¹œ<¹ôÃŒŒ¹ô=€\úž¾ %E¥©\úNÎ †\ú. ц ±\ž.  Œ˜ÿ¡  Pœ(ðÁ†ÿ¸ uˆlêêjþ3ü£ÿücüPÁüÀŽýÿ·¸\=¹¹v9Eüendstream endobj 507 0 obj << /Filter /FlateDecode /Length 213 >> stream xÚ½ÎÁJÃ@à”æ`_@ì> stream xÚ32Õ34R0Pcc3c…C®B.#rAɹ\Nž\úá F\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.OÆ ÿaˆýóÆÁ˜ÿ0üÿÿ‚¸\=¹¹ì±WÇendstream endobj 509 0 obj << /Filter /FlateDecode /Length 186 >> stream xÚÝб Â0à  ·ô äžÀ¤¶’Ej3:9ˆ“::( NÚGË£ô:¦´4¦‡âÈqðqÇéé8ŽHÒÄ·Š)‘tŠðŠJRWI¿8^0Õ(v¤$Š•Ÿ¢ÐkºßgéfAŠŒöþÌuFÌòX àlèòÀYhFAáQòâÉJ*ÃË‚YàuÎ*>P«òÎ'sxõ'`€ ‚ü¾çÊ·³s×ü—·ø3Óendstream endobj 510 0 obj << /Filter /FlateDecode /Length 154 >> stream xÚ35Ð32T0P0b …C®B.S ßÄI$çr9yré‡+˜˜ré{E¹ô=}JŠJS¹ôœ ¹ô]¢ÆÄryº(0þ`þÃÀðÿÿÿ iÃH~`~ÀÀþóóæß Œ?3€Èÿ ÿ!‘ȃ‹d;òÿÿõÿ “\®ž\\ep endstream endobj 511 0 obj << /Filter /FlateDecode /Length 188 >> stream xÚ1 Â` …_q²ôÍôïßVèd¡V°ƒ “ƒ8©£ƒ¢›hÖ£ô;5ƒÐIä…¼¼D“qÀ>‡<²Y>X:S‹èwŠNö'Js2c2 ‘ÉäK¾^nG2éjÆ–LÆ[ËþŽòŒá¼¸ïH5pG§Æƒ †%ÜBáÒx‚ʃÌA­xNÓƒX:í¿èí>Å´ùÙëI=îJŒR³h4 ‰Vê\_èž¡yNkú¤PMendstream endobj 512 0 obj << /Filter /FlateDecode /Length 208 >> stream xÚ­Ï1 Â@ÐYR¦ñ™ è&²¢] F0… •…X©¥…¢`er´%GH¹!Áu6 ‚Z‰Í+þ‡Ù¿¿×ȧ>uƒ©!)Ÿ¶P)N}ŒžÕfQ‚rIJ¡œrŽ2™ÑéxÞ¡Œæc PÆ´âSkLbÚÕF{Æzéä`ªÂ)Á©3¡ApÚ€¸\A4ikh+ðæ/;Ň¥ÕýÉ/׊÷y‰ÝÓ.L[ov3‡¢ÎÞ_ånBk/cCîù¿¥à:Õ˜òMœ$¸À;|endstream endobj 513 0 obj << /Filter /FlateDecode /Length 223 >> stream xڭϱjAà¹baïœHö÷ð‚`¼BÐ*E°Ò”)H!ÑG»G¹G¸òŠÅuγ°ÐFl¾bvùç;x$sŸŸ’Œí Û˜7 }‘MesšŸÖŸ4Îɼ±MÉÌdN&ŸóÏ÷ï™ñâ•2~—¨å<:€öEôö•øLtˆ†jt‡ÐôºD°EX pèP£ýYù¼Ãuwéo¤µ»Ú½m‡¶OX6JCíTè:¨‘knùGªC_ˆê 8¥=PÕôÆÎ×—Ò4§%ÙÕo¶endstream endobj 514 0 obj << /Filter /FlateDecode /Length 145 >> stream xÚ36Õ34S0P0bcc…C®B.c4H$çr9yré‡+pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]˜?ðøÿÁþÃÿ~üÿxøûÇæ?ÌŸ›ÿ0~gþÃø „0þcH`üÃÀ€‚Ð3Íþÿÿs¹zrr“»M[endstream endobj 515 0 obj << /Filter /FlateDecode /Length 203 >> stream xÚ-ÌAjÂPà?d˜70súò´ÔB³t墄¶ËB[Ü™£½£ÌâÊ·yŽÆÅ·˜ÿŸ™âqR–œqÁ–‹‚§–¿,ýQ^i˜ñ4šÏšÕd6œWdÞ4&S/y÷¿ÿ&3[ÍÙ’Yð»åìƒêãè¶qð’¸gc$Oˆå€èæv°½òw €žªx ‚4tHB8„ÇàtmÔ¨uˆUäuÝËàpÕÞùAÛÝDÒ#rç&iN’Bô¯KôZÓš.8W¯endstream endobj 516 0 obj << /Filter /FlateDecode /Length 151 >> stream xÚ36Õ34S0P0RÐ5T06P05SH1ä*ä22 ¹æ™ä\.'O.ýp#s.} 0—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹ƒVl†+ ø313³±üÿÿþC1#TŽŠ8føÃðˆ€qã{æùv ãþ àrõä äwSM6endstream endobj 517 0 obj << /Filter /FlateDecode /Length 160 >> stream xÚ35Ð32T0P0RÐ5T0±P01PH1ä*ä21 (˜Bd’s¹œ<¹ôÃLL¹ô=€Â\úž¾ %E¥©\úNÎ @¾‹B4РX.OÆ þÿ`¨G%Ù00ÿa`þÁÀø‡¢fŒ$Ð èl0É÷¡†Aæ?ƒƒÐ?ò €$ûÿ@’á?P—«'W rjyendstream endobj 518 0 obj << /Filter /FlateDecode /Length 193 >> stream xÚ]Í= Â@àYÑÖBÈ\@71‹ÁJðL!he!B@- 19Ú%GHiˆ£˜¬Ø|Å{ðž ºG.õ¨ã‘ê“? ‡'T>‡.©o³=à(D¹"壜qŒ2œÓå|Ý£-Æä¡œÐš‡6N¨(´]¤¿Ú9ˆ¬'Àýã {‘¿6*}èÒ;‘”:‰•Úf›ºVi§ucÖf­¬U)ž®1ç[¾ŒŒmŒ?£ÿ6*qâ_¦ÀDµendstream endobj 519 0 obj << /Filter /FlateDecode /Length 248 >> stream xÚmϱJÃPà? œå®ÄœÐ{ÓjÄÅ@­`ÁN"ÔQPQpöNºøP÷|Çëºd§Á6¥”3|pþ?=Üï±á.ï%œö¸wÌw =Qjx>ÿ—Ûê礯85¤ÏeM:¿à—ç×{ÒýËSNHø:asCù€ëú³®ÂºXWUÈ<&.*;d (‹ÝF‡åÒÈa»Ñ‹¨ > stream xÚMαJAà?lq0„lk!Ü<›Ã ±8ˆ¼BÐ*E°RKÁHÒzûhû(ç¤Üâ¸uf«ûÁÌÿLÝÜ4/Y_ÝðíTt z%õRKýxÿ¢MGnÇõŠÜ“tÉuÏ|ü9}’Û¼> stream xÚ]ÏÁJÃ@Ð; çÓxÊé%'S~Šé•ÒÄ\#¾Èþ^/4ÏIßqš¾1wÒù-¿¿}<“ž¯®9&½à{õ@ù‚û¾ ûÚ7l¡z P@?­[¨V„qtÖPíA•ËÀ8.ì=®ŽœõÐÖƒƒÁ÷ÈÙdFÕDb+¢Ý8w•óË:+cüwè9ð<±Ž<#O©Ê¬jÈ\©êÔ¯RÕÉ*¡¸µñÙ•mm`g‰´ÌiM?ÍAP‘endstream endobj 522 0 obj << /Filter /FlateDecode /Length 199 >> stream xÚ5Î= 1†áoI!L³­…¸s“5"Z-øn!he!Vji¡h½9Úe`i!Æм0 “ëå#vÜ—ã‡ìÇ|ÈéLÞËìtÔ‡ý‰&%Ù {Ov!·dË%_/·#ÙÉjÊ9Ùosv;*gœÅÃ7 ªºÀ $O‰y¢ óÀ­»$mà}RKŠ ©ð*¨‚*¨‚*¨‚*IQ’ ÿ¼$¢’ ÊQ&ˆ2ªŒª–îJuWªk D$òå_h^ÒšÞ8.G£endstream endobj 523 0 obj << /Filter /FlateDecode /Length 91 >> stream xÚ31Õ3R0B#cS#S…C®B.ˆ D"9—ËÉ“K?\ÁÄ„KßCÁˆKßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEá?|€\®ž\\KØFendstream endobj 524 0 obj << /Filter /FlateDecode /Length 353 >> stream xÚMÒAKÃ0ðW„±]w–/ MÅ®‚…¹=zò ÂD= Nô&[>Z>Jü/Ëêÿ%:è~ôeyMÿo…>:ž*­rux¢Æ¹ê1“+™sQ«" +ÏrVÉôFåS™^ ,ÓêR½½¾?Étvu®p?W·™Òw²š+òŸƒ £þj½€nÛЖ¦46Ôý´DIMÉ—Á2j-à*±<Š×…Úkyꎒ-<­IÔ0Ûï·¾ ¹&h¿%1kAa6A‚hÙÁƒJØ÷g"êE‡pcøô¥e5‹vKìfl¹=Òrû ØKÁN´íE‡ÑITG—QÇn¸½Ú{EÐÎv¼¥éÇL{Þ‘áìKü’³ç÷ÕÞåì×4pÌùX?ÁÙ#LñL~Pæ0wf²fíßösá ¸V¸0“UÍ£ü—}È2±> stream xÚű Â@ †ÿÃAÈâ Íx­xUp(Ô vtr'utPtmûh}”¾‚Û b¼ÓI÷bHø’ü ˜á`sÈ‘ 3áxćˆÎd|/ô¥ö'JsÒ61é…ë’Η|½ÜޤÓÕŒ#ÒoÝäŽòŒŽ ×Ô¥ž¸Û>”Å´)ÐmPÖN®•8•’J@ å…Gáּ㗷 y[õöÏþʽV€Rl"òšç´¦«›–endstream endobj 526 0 obj << /Filter /FlateDecode /Length 177 >> stream xÚ35Ð32U0P0b 3…C®B.3 ßÄI$çr9yré‡+˜˜qé{E¹ô=}JŠJS¹ôœ ¹ô]¢*c¹<]˜ÿ1üÿ@òãÆ  ìdø0Ô%€Šìd=˜¬“ÿÀ䪓 “u ÿà ‡Úõªfh‘ Çÿg¨ÿÿÃþÿd’ËÕ“+ =Å€úendstream endobj 527 0 obj << /Filter /FlateDecode /Length 157 >> stream xÚ35Ð32U0P0b 3…C®B.3 ßÄI$çr9yré‡+˜˜qé{E¹ô=}JŠJS¹ôœ ¹ô]¢*c¹<]˜ÿ3üÿw@ò20þ‘ì$ÿ)ß"í@d=˜¬©e€0þPŸüÿPHZØBOhÿêÿÿ°ÿÿ™ärõä ä5 †¢endstream endobj 528 0 obj << /Filter /FlateDecode /Length 208 >> stream xÚíÑ; 1à?XSè,vNàºøH#.ø·´²+µ´P¬ÌÍ£ì,-–ĉ¸Zhkç„o†™‰n×›šÉÖMî´xÑŽ´Ï>õXm©ŸP8gQ8–*…É„ûã†ÂþtÀRòB:—” (Y(‰À¥U— ¬Ê ®€ºá”£ ”3Ô®¨Õ L†žô¦Ê‰X†Sȼ)p~\'ËÈ¡¬¯ üÙ-€ß#†{Æ<{^0ï©?üÏÚÇã˜Ô¸[ìòÀÙOÐ(¡Ýć­Jendstream endobj 529 0 obj << /Filter /FlateDecode /Length 125 >> stream xÚ31Õ3R0P°T06T06S03QH1ä*ä22 (Cd’s¹œ<¹ôÌ̸ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. v ò õ ö ü¿¡þŒ×1È7€ôÂ2 |±—«'W ¤(ªendstream endobj 530 0 obj << /Filter /FlateDecode /Length 344 >> stream xÚ]ϱJÄ@à )qÛ+²/ IÍEç ¦´²á@-…(Úš}ŸiEЗ°Ø'+SÿÉ®Å] |°3»ÿÌ4ÛŸéL轉. ]êû\>É"Ça¦‹©¯Ü=ÊY-Ók]ä2=DZLë ýòüú ÓÙ婯é\ßàέ¬çšH¾Êy»f rÙ`ìÊAaG*3îl˜üK[n×ÃýÄŒ‚e0 6A´>ç#øéçVß~lõüÅ*}Gbì‚KÌÞŠa„K¨ÅøiDß‹¡XDŒ×¨Á’EKÓ¢‡[á.·V†7ŒMe  “XÂFŠ”£’×WKjX ° :áóFñŠ,­8nMÑšcÒóó° VïÁo‚I³žøáAÞ,kýMkøaZ`*^‡©j6qt\™ÈâR—8aD'œèŠúÞÆ=§qrç_E³<«å•üN”Óendstream endobj 531 0 obj << /Filter /FlateDecode /Length 133 >> stream xÚ=É1 Â@EÑ?â ¦x+pæ'c#8… •EµT´Î,mv¦ ‚œîÞ|>Óœž‹’ºdYð¢x@=ùâwÎ7Ôî@õp›>Ã…-_Ï÷®Þ­¨p [¥?"4´ÒÉ'öÒ K6ÉŸI&š˜ÅLÆ2’©LÄJ%w9 Ö{|ɉ$_endstream endobj 532 0 obj << /Filter /FlateDecode /Length 198 >> stream xÚ± Â0Eoq(¼¥PßhÒ‹…âP+ØAÐÉAœÔQPQèàÐOë§ô}i,:IΔäÝÜ“h4 bÖœð 9ÒyЙBÍf%ÝÑîHYAjÍ¡&5—}RÅ‚¯—ÛT¶œr@*çMÀzKE΀N@§F¯‚ x€¤-%ð08¡W\¡‚gú-21é¹û’ôü‹òWZúñœßu2¶•Ôsëw[ÛÜZ˜,ëå··EV”E\ôÍ'hš´¢búD[endstream endobj 533 0 obj << /Filter /FlateDecode /Length 199 >> stream xÚO ‚@‡âBx ½@Ø»@N(Ñ rÔªE´ª–AEAKæQ<‚Gh|*A´ŠùVóþÌ÷›I4c8â‘Ö¬cŽ>…t#ps¦}éx¡4'µcZ™{Rùš÷ç™TºYpH*ã}ÈÁòŒK ®@ ð§€]6X¦V /a&Ì ¦Û+ÌŒSv4ÃÕ7f—UÿEõc›]~žsŠÎÁë­|‘lm[sIaU].Gz]‰œH|Ô|-sÚÒcÕLendstream endobj 534 0 obj << /Filter /FlateDecode /Length 132 >> stream xÚ=ɱ Â0…á ñ :œÐäÄt­Ì èä A›GË›i "ßöÿ~1WOÇÀ™jÅŠ•‡¨ãÀ/ç|“:Š=PØMßÅÆ-_Ï÷Ul½[QÅ6<*]+±a‰ŸÔ˃.—&›dR‘ Œ1”¸ãYGÙËáÃ$‰endstream endobj 535 0 obj << /Filter /FlateDecode /Length 94 >> stream xÚMÉ»@@EÑþ|Åùwî½Gb •BT(„ß÷H4’]­í]¢)•šÑÍ8+6˜Ñ1|cZ‘GHOóšû¹@ò¶ BJJ7"–¼ï몈ÌÒ Œendstream endobj 536 0 obj << /Filter /FlateDecode /Length 95 >> stream xÚ32Õ34R0P°bC K…C®B.K Ïȉ&çr9yré‡+Xré{€O_…’¢ÒT.}§gC.}…hCƒX.O†z†ÿ 0XÏ ÃÀåêÉÈ[žxendstream endobj 537 0 obj << /Filter /FlateDecode /Length 161 >> stream xÚ31Õ3R0P0UÐ52V01P0³PH1ä*ä26Š(XB¥’s¹œ<¹ôÃŒM¸ô=€â\úž¾ %E¥©\úNÎ @¾‹B´¡‚A,—§‹€Œ`¢F0ƒ $;ˆ`ƒ| ‚NÈ€ 8a" àDˆHˆ³ ÍF2-Cµ‘XËðÛH¤eh6’išx-càrõä äE-¶endstream endobj 538 0 obj << /Filter /FlateDecode /Length 191 >> stream xÚ½1 Â@E¿¤Lã2ÐÍš¸•DˆL!he!Vji¡h'š£å(9BÊ¢Ž»… ©…å-ü)fþ‹‡ý‡soÀ±f£y§éH‘‘0d¹Éö@iNjÅ‘!5“˜T>çóé²'•.&¬Ie¼Ön(ÏÞ@ð*€Ä/¦SC^¯Â^‰$NÐ-8ßb,(püª OAý´-¿ËiUÛ¹®ŒÔ*¾m_ ëÀÚ°^œ!ëêc¦9-é ÷@mendstream endobj 539 0 obj << /Filter /FlateDecode /Length 126 >> stream xÚ31Õ3R0P°bc 3C…C®B.#K ßÄI$çr9yré‡+Yré{E¹ô=}JŠJS¹ôœ€|…hCƒX.O† Ì@ÌÄò@\€ýÿ†ÿ <ÿÃy¨øPÆõ€þùÿ†¹\=¹¹sUÇendstream endobj 540 0 obj << /Filter /FlateDecode /Length 242 >> stream xÚu±JÄ@†ÿ%ÅÂî fžÀ$Þ,ăóSZYˆ° –‚Š‚…H³VøÀ2u@JÜ&lá»lD€ÛáÀª˜mwjR_¯@>Ä ; lÒÝ?hÙv* àØ„žç÷°'Ø!¶nüE¶5øi>p §{N÷› áhd42žFJgÄaZt¦Ej‘Zô¦!Ù'äÄ’h }ú ¹läV~h€pendstream endobj 541 0 obj << /Filter /FlateDecode /Length 246 >> stream xÚu±NÃ@ †eˆd!ò•Î/—kBÔí¤R$2 щ1c¥‚èœ<Ú=Ê=BÆ Uƒí£Lp’¿á?û·õ77×Kª¨¡«%5ŽZGo?°nY¬¨­ÓÏë×Ú'ª[´÷,£íèëóðŽvýxK톞U/ØmŠ#øy˜çÙTLP„ü%d'¸dý`†àƒÿÀÈoÁfAÙ'~ÁÅVüN\™ìÌ'ÁÈ(u€Ëˆnä(ã¹E›u,¹¨_Ú¡ˆgŨ¸x·›qÂGÞåc/VûôÃJ°s5M#ŸÊ1%”²’Ôð®Ã-~nnendstream endobj 542 0 obj << /Filter /FlateDecode /Length 185 >> stream xڕϱ Â@ €á–B‡P:w’> stream xڥбjÃ@ àßî@‹_ 4zö|±k:ŦP…dʤc! íÚøÑü(÷=»… éØåt:IüùãÄSÎù~¹çÂóÞÓ‘²BŠ)ÙïËîƒf¹g¹W)“«ÞøóôõNn¶xfOnÎkÏ醪9 †mÀvèa‡ár¥U‚Ò(€);ø'Q/$C 3Ì!ê`.zÆ7l(ki×Ò?n®!¹¡½aªœÙðýÖ먠luòAIuå“2胤‘ Ò«âq«Ë4”2BýT´¤Ð]Eendstream endobj 544 0 obj << /Filter /FlateDecode /Length 249 >> stream xÚuϱJÄ@à?¤Lá¾€°óšäƒ•óSZYˆ ¨¥ ¢m²¶²òŠàúçr×| 3ËÌüõÙéJ ­õd¥u©M©/¥|HÕ°XhS-ç7Yw’ßkÕH~ͲäÝ~}~¿J¾¾½ÔRò>”Zá‘“=Íx~]Äì™Ï<ÈpÞ²vØ=ÖÛy‘ñK˜ÖÍÙÀ”=z&>賑ix o@ʺ\ur'¿Ðx;endstream endobj 545 0 obj << /Filter /FlateDecode /Length 202 >> stream xÚ•Ï; Â@à‘A’ œ èæM QˆL!he!‚ –‚Š‚9Z޲GH™Bˆ;‘RX¸ÅWÌî?³ã#—l hè’ïSèÒÑÁ+z‘*Úúß›Ããņ¼ÅB•Q¤Kºß'ñjFŠ„¶Ù;L²Aˆ™0ÓªªÞ]ÊWCÁÈ‹z&÷½\¡e (tÈ ¦ÏXLÝ·žÀ!À)&ާŒ«eÜ~îÙR27é¢uÑkdóƒ¿1y ]m€ó×øsðXpendstream endobj 546 0 obj << /Filter /FlateDecode /Length 277 >> stream xÚ]±JÄ@EoH˜Âü€ì¼Ð$›˜jÙÀº‚)­,ÄJ--… ɧͧÌ'Œ]аãͪ §xóî}÷½êâ|)¹Tr¶”ªºçB½©²f1—ºœž^Õ¦UÙ½”µÊ®YVY{#ïŸ/*ÛÜ^J¡²­<’?ªv+ˆ'Ú@ï-0Å#"‹ ±ÁÉ|'İ+§„Y Xÿ¢9"1ÍÀfm)ÓŽzÂé+¤~èxãû/‹È‡áÞ3FãY g…,Ú@ç'D®ßÓV{:RRh4…†zËÝQc;ÎuDìÆ*€ÿ` ‚"šAƒh^á°¥K§†™‹¢p†´Ç[…«©«VÝ©o‡–qgendstream endobj 547 0 obj << /Filter /FlateDecode /Length 252 >> stream xÚuÐ1JÄ@à?¤¼f. æ]@“lbÚuSZY,Vj)¢h·˜ÜÀ+Í ¼Bnà+§‰o²±Øæ˜aþyÿTg§+ιâ“W×?ôBe­›9×åþäþ‰Ö e·\Ö”]ê6eÍ¿½¾?R¶¾>炲 o Îï¨Ù0â@:)vrÀ˜"yÄ‚IL¤i§ØN×™vFo»™iÁô‡ƒ„€ »`%<)Æ¡•ÄáYt o‰%úøøS°KŒ uÄÄ+á¡Pç÷ ìË´°N»ý2(ÚÜvðGáŽÃU*ÆÓD“šF ÝÐI2v:endstream endobj 548 0 obj << /Filter /FlateDecode /Length 102 >> stream xÚ32Õ34R0P°bC cK…C®B.K ×ĉ'çr9yré‡+Xré{¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]dêþ7À`=ƒ ñS/—«'W ä"Âendstream endobj 549 0 obj << /Filter /FlateDecode /Length 142 >> stream xÚ32Õ34R0P°PÐ5´P0´T0¶TH1ä*ä24PASs¨Tr.—“'—~¸‚¡—¾PœKßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEA†¡žá Ö3È0àz€`ý™ pÈx€±±¹™¨Ú‚¡€!ËÕ“+ æ|-sendstream endobj 550 0 obj << /Filter /FlateDecode /Length 101 >> stream xÚ37Ð3²T0P0U04V03U06VH1ä*ä2 (Ae’s¹œ<¹ôÃL-¹ô=€Â\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ÿ!àŒf`€î.WO®@.}‚1€endstream endobj 551 0 obj << /Filter /FlateDecode /Length 248 >> stream xÚmнjÃ0Àñ†ŽP¯ÖÔ6%ÎhHS¨‡B;e(…BÒ±ôƒd¶!C_Ë[ǾBÁ£†â«NW¨d,,~ø„àŠåÅr¡3}iw±ào—ã;¹ýw>ؾàªÂt£‹Ó;Å´ºÕûÃ3¦«»+m§ký`¯> stream xڕѽ Â@ àˆƒÅG0op­z'A+ØAÐÉAœÔÑAÑÙ>Z¥Ðѡܙ^2TèÒÂñ‘´Í—Ì)¢» dJ×h-ÇQ6/.w\ehŽd-š-gÑd;z=ß74«ýšb4)bŠÎ˜¥äù©|!T0æì'‡¡ €ø4, ¡ L”*0V¾}©ÚU´¦vÐ~ÚÝ·'ã¿C¾dxxJùDv×5¼vøw¤Ôá?®/u»˜Ò¹­®ù “ |.ÀÉuÔB)à&ÃþÃ)©²endstream endobj 553 0 obj << /Filter /FlateDecode /Length 269 >> stream xÚµ‘¿JÄ@‡!E`¤µ8¼yÝäH¢E pž` A+ µT,É£åQò)-–[ww"°µúØ™eþ|SÇ›N¹à£ —)—9?fôJEnƒöYJæá™¶ ©.rR6Lª¹ä÷·'RÛ«3ÎHíø6ãôŽš¨'Ä@höXkcz‹nL† 0¦¡>[DPi¬G Ѩ Òèz¸¼C°·t`ÿ:D_íŒdr¨f¸ZÀjF=cø…¸û½Ì?`.-°l[/áÇ;Èb?¥O©y=÷^F¯.Dd/Z{‘ ¯üÐ FåF\ÝnŒ\3w*Èá g7tMßVXv¡endstream endobj 554 0 obj << /Filter /FlateDecode /Length 211 >> stream xÚµÑ1‚0à’·pÞ lAÓĉ1‘ÁD'㤎éÑzŽÀÈ@À–“j “%ÍÊÐÇÿóÅ”ÅÈp¦6Ÿ#ñÁ 8Cý¨Wýát…4ºG΀®Õ)Ð|ƒûó4Ý.1šá!Bv„<ÃN­†¢í„µÔ’„µ²Äk¤³&ÂJcPýÊèÕÆIãJZkg-…1”?,á˜ÕŸ¹w˜ïknáþçÛ\Z7¯!Gߨ|C›w"^úžlo}•Û«îV9ìàùª¢ƒendstream endobj 555 0 obj << /Filter /FlateDecode /Length 193 >> stream xÚ}ѱ Â0Д‚…Cpuz_`5Å®µ‚DÔQPQpÓOóSú ùƒšæ*˜Rr<.—„‹äp£À± c4£„+(erQ¦eáp†$¾A¥€/Ì*ðl‰÷Ûã> stream xÚ3µÐ³´P0P0bSS3#…C®B.SC ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. ÿÁ •bø€HÕ700ØC(ù`ŠB1£PŒØ(|Te€bÀ¤ P¨`ŠB±ƒ©ÿÿ±PP9˜J¨>4à ˆ¦èBý&!^@¥¸\=¹¹6‡àendstream endobj 557 0 obj << /Filter /FlateDecode /Length 268 >> stream xÚµÑÍJÄ0à) ÃB_`¡óšV4*ë ö èɃxR…ôÑú(}„=”ÆÉ”¬aÁ£iá Iæç¬:º¨©¢S:<&­IŸÐso¨+ ŸÈÍÓ+nZT÷¤+T×|Œª½¡÷ÏT›ÛKªQmé=b»%0VÌŸaÍ–Þ÷A;CÃzÈ\Ç×À›;€†÷åP°fà3ÖöËb6³Ù~^“\óï`·³pÁfg œGÔD‡ÔØ¿ìA–ÿG¹CÎF‡_¡˜—<¸X³ï¸Xî)u'J_¥o±Ÿ‰±ÏRpžÌ!Î%XOË›óNæ.ÌÓº|ŒsŽs—eB xÕâþ&3endstream endobj 558 0 obj << /Filter /FlateDecode /Length 130 >> stream xÚ33×37U0P0b3S3#…C®B.3C ßÄI$çr9yré‡+˜ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. ÿÿÿ? ÿÿÿtšáÿù õ ü†0 ôÑlôP÷o¸â•ËÕ“+ _¯¶*endstream endobj 559 0 obj << /Filter /FlateDecode /Length 106 >> stream xÚ36Ò33V0Pc3#…C®B.#3 ÌI$çr9yré‡+™qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÿÿ†ÿ?``¨o–ä7d¿r¹zrrðéažendstream endobj 560 0 obj << /Filter /FlateDecode /Length 170 >> stream xÚÝÐ1 Â@Бßä‚ÿºÙì’Øb·´²Vj§ ¢­ÉÑö(Á2…¸n°±ð6¯˜)F§#­9fÅĵä4á­¤©Ì‡1§úÓlT+V‰™I˜9_Î׉b1aI¢äJr¼&S2"çÚ/:½×’wÔÇÙ_O¸ÆS#h±GØâˆð1¢;úXDÈöæçº§[€¦†–ôÍüeßendstream endobj 561 0 obj << /Filter /FlateDecode /Length 266 >> stream xÚ]Ñ;NÄ0à‰RDšb}•âRØn¥e‘H¢J$@P'ˆb;NÀA(s®#¤Lí`$²…ýÉñØž“ü¨¬ln]«*[•ö¾àgvæ~¦Ô…»GÞÔœ]»1gçÚ×öõåí³Íå©-8ÛÚ›Âæ·\o­ˆtdd<”KKMKMaŒ;Ø .à®àŒº óú0ï.á >Á>¨áN w&Ð`>…kìo† ßFõc7©»$øïÕ¯HÔo8è={jpï?53æšïšæjÿ~™« ¼M7wöÿ× uIö»}ÝRiµŽ"Ó¡|Vóÿð ¥!endstream endobj 562 0 obj << /Filter /FlateDecode /Length 144 >> stream xÚ35Ó3±P0P0bS#3#…C®B.°˜ˆ ’HÎåròäÒW0±àÒ÷Šré{ú*”•¦ré;8+ré»(D*Äryº(üÿÿÿ2Éðÿ`¨o^$3^’L²á ù0H9$ÒLÖÉ ’ñˆdÿÃðÿƒýŸÿ €Br¹zrrà3nXendstream endobj 563 0 obj << /Filter /FlateDecode /Length 252 >> stream xÚ}ÒÁj1à . ‚Wo;OÐìZX÷¶ º‡B{ò ‹-=•ÒÒÞ îøJû¾‚£Ùt²(Ú„$á›Â™btUd”Ò5ï"¥|DÏ~à8ç¾kÍÅê 'Ê9s”·|вº£¯Ïû)e(g´àg±š‘Ö5ðJ´Òº1*/G)€÷‘©g½*£­G«=ClþééÀŠ-[VÏÒšÕ÷ªäøC¯ŽŸZ —˜ã7–¢=ˆÚ+q€,A ½€ÖÐwTÖÀ’&u4Ø-ŠUã(ú­qhKê$ÁŸúÓ)n;%<.<2“™!WxSáþóí½èendstream endobj 564 0 obj << /Filter /FlateDecode /Length 250 >> stream xÚ]ѱJÄ@à )Óä²O`åöÊÀy‚)­,DPN±:NEÁn}$!’GØr‹q63ͦX¾™Yößbìöl»1¹àc7Æž›—?жÜ7±‡#îz¬ïm±¾æ)Öýùúü~Åzw{ixº7üäû½!úpˆu\ÇæÄµ€ àØ–khÞÔì’ø¬>Åà¨R»Q¬|jÄbJÍg1£Tà9XÅNå`1ˆ¥ÊÁâ,æ*/rpªÄnL­¼X†Ôbó95#èOõ¢S»••ZªÅÊœëÉ> stream xÚµ’±nÂ0†1Dº%À½8AMP¦H@¥f¨ÔN SËÈ‚•äÑò(yÆ (éÝ96¨c-ÙŸíÿŸÿË"šÍ3Š(¡éœÒ„Òú‰ñ€‰lF”¦VùÞã²@³¡$CóÆÛhŠw:Ï;4ËÅhÖôS´ÅbMÐ7 -èoʼ.+a¡£ÆW‘y!a paN8(Ûe~´NØÀHbƒ+Œ[&Ž|‹EG½ƒM”ýµ°äl”Õ#KË!×ü‰½eó_ô÷¹<þ ÏÛ¾«zzçÀPýè<õëv÷Oýl½¯Îg¶Ô¬¼²ÝÕE´ÎÆêWGWWï•«»ýðµÀOü¢}˜Ÿendstream endobj 566 0 obj << /Filter /FlateDecode /Length 175 >> stream xÚ33Ô3±T0P0bS33#…C®B.S# ßÄI$çr9yré‡+˜qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÁõJÒì¢õ ì?Àã?0ÅðBÕC©0e™’€B} “B1Õ¨µPG@\ÆüÙ¹ö€Ð+ ` (V9„(P$€£ãÅåêÉÈþ˜†ýendstream endobj 567 0 obj << /Filter /FlateDecode /Length 230 >> stream xÚÑÍ ‚@ð• aˆzÀyZÍÚºf‡ N¢Su *ê¬æ£ì#xô Ù~i—HŸŒòwf–±þÈC}ì ‘ ðàÁ˜/Š.²¡~³?AÝ ó.Dh´ÄÛõ~¬fè q+‚v…XŠ+%„H c™È‡”Ä\'¤“i…ÖzhIi|ÝÓ´&×:/³?åÕ¼w~Rý¿éÇ2}6rÓ¿™CÍë9¥91u£ŒýüÞΪ9õù¿öð³É¿6µ©6þ²-ÏMì©¥ŽÕá]e'›(íü,G%VÉ•b0` Ox1­Ðendstream endobj 568 0 obj << /Filter /FlateDecode /Length 266 >> stream xÚeϽJÄ@ðH±°Mګ̾€ærw ¹ÆÀy‚)­,ÄJ--…á’GË£ì#¬Ý‚Ë39TÔæWÌ÷ó“Enæ¦0Ç ³*L¹2¹~ÖË5ç¦,™û'½itvc–k]pXgÍ¥y}y{ÔÙæêÌä:Ûš[t§›­ ˜¡¦¡‘­¢û6vèZ5âÈ'ŸÊ×@ìOÈïè˜6ü¢úaÏÌ&è›~`ûQ°Líɤ䀄hÂADDÜND×Ð(Anê%åè¥=Ù¨„Xˆö²ç» ûŸÎ}d ò*‰ß;¾AÙ‹d|÷H×£‡MùH+§Œò“>oôµþ ß„kendstream endobj 569 0 obj << /Filter /FlateDecode /Length 158 >> stream xÚ33Õ32W0P0b3#J1ä*ä2µòÁ" ‰ä\.'O.ýpS .} (—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹‚ý0`À 0ü?À¤ê€d˜–o¨Óü `š½¡L3cÐ `š‘ }L3 D3@h†Q'ýÿ˜büÿD±cñ&ÍåêÉȃ@endstream endobj 570 0 obj << /Filter /FlateDecode /Length 207 >> stream xÚíÑÁJÃ@à?äP˜ƒy„Ì è&±Ù^!`B=õP„BÛcAEÁ[|4¥c’õŸZ/9öìaù–vgaÇÏ®f¥fz­—…úR}¡Û\^Äç 3õÓßÊf/U#n©>wÏX\ó o¯ï;qÕb®Lk]ñΓ4µ†¾Ð†~,â´Ÿ¾O~œÌþ=×[ó™ò±yR“+å>¢ÉŸçÁ»:ᑸgF#Îæ‚bnÌö8&kufÒY f°§0Aje¹käQ~­uIendstream endobj 571 0 obj << /Filter /FlateDecode /Length 262 >> stream xÚmбJA€áY‚iS™ÐÝ»è¦ Ä^!he!B@-­s >Ó=€`yòŠãÖ™]áöŽT;3ÅÏÚåéòœ et’‘µd3zJñ 킇†ìYØ<¾à:G}GvúŠÇ¨ókúxÿ|F½¾¹ õ†îS2˜oȹ qíÐÄ•°«”+ØyDÿ>â•8‰”ûc€•8c«à\4‘{ö`*n;Ç5[F6Á„UE¤ô±Jäå‚8êYH¦œÄrà¬gä@Ós/™>pë­ƒXöl”7i$¯Sµ>«ÓÁ~w_ÿþW¿ë ÿÁÈiuØqyؤˆÄËoñÈmµendstream endobj 572 0 obj << /Filter /FlateDecode /Length 321 >> stream xÚuÒÏKÃ0Àñ+„a¯;¹÷h £;æ{ôäA„Š'aŠ‚·Æÿ,°¤7¯õV¡4¾¼N¡íz|Hø&é">NN1Äb\D8ñ!’/2Ih2ÄùIóåþY.SÜ`’Èà‚¦e^âÛëû£ –WgÉ`…·†w2]¡µ5(kµ°v?=k@Ø@•# ™ðsñGÏ0q¤áŸÐ¢˜å´–¶ì8n“Ö©‚©vœ´Ië²’é¶<§=~ULŸ¶l‰a—b[3½Ä'qݧeŽ*ª&š!ŠšR3-ô -¥*C7â.‚ ê)E{ŽsÜ¥ )š©˜“.ó ø%s–¯©Úc^Åô Cýa—ßÄšéýhê_ï£eòÛÓ¯0H:}󦃬\4˜Ðeé¢~Ð8ìqCã ¡«vg—穼–¿ßí¹ôendstream endobj 573 0 obj << /Filter /FlateDecode /Length 133 >> stream xÚ32Õ34R0P0W06S0´P03VH1ä*ä24PA#sˆLr.—“'—~¸‚¡—¾P˜KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓE±¹‡A†A‚Á‚Á€¡€!0€Ãs ÿþÁz ´oàcàrõä ä™Ó$}endstream endobj 574 0 obj << /Filter /FlateDecode /Length 213 >> stream xÚmοŠÂ@ð/,˜âö„ÐÍÊÚ þShuÅq•ZZ(Úš<$y”<–!q÷î,äŽÌ ó1v<qÆ–†í˜­á­¡ÙŒcÙÑÏf³§iNúƒmFzƤów>Ï;ÒÓÕŒ é9ξ(Ÿ3”Ð5€¨ !+ô‘ÖP®LîpšW.Pe@"€QmìêÚ¢¼ iÂ"õñ¬Ž1ÅÅ”âü"Ú?´O’VHnq®LUOUoê*ýD6¢ói|UÔ´ÈiM×¢Lìendstream endobj 575 0 obj << /Filter /FlateDecode /Length 210 >> stream xڽн Â@ ð„B–>Bózm=ë(øvtr'utPœ¤v¾IÁè¤Këõª: Þð’#ù“–Ûð=vÙçºÇ²ÍA“—mHJ]t9Ug±¦nHbÊR’ê2‰pÄ»í~E¢;î±G¢Ï3=hNaŸ1ýŠ/kFˈ²Ü‰©S”lx‹­ð騫`pÌ:F§l½T¥veü¶V™ü`ü9ó©zïÕªT¹ñbr^Mæ³ÉRV ¨R'Œ:¹¹q@ƒ&ô™xendstream endobj 576 0 obj << /Filter /FlateDecode /Length 193 >> stream xÚ1 Â@Eÿ00MnÌt³f‹t¨` A+ ±RK E;19Ú%G°´uÖ`akóŠ?þü±éÀäœrÆ}ÃYÎÖðÖÐ2+bÊvØM6{*+ÒKÎ,é©È¤«ŸŽçér>bCzÌ+Ã險1C½D¯(p.ˆ¡îÜ lQ4‘CÝ!i¾(¼]£–õWç¨!ÉpE#kÊ%Ê7)ô©Öó%cà\Üêæ_p€’0šT´ 7ê8>Ìendstream endobj 577 0 obj << /Filter /FlateDecode /Length1 1613 /Length2 8867 /Length3 0 /Length 9929 >> stream xÚ·T”k6Œ„ÒRCJÏÐÝ!ÝH0ÀP3ÌŒt§tw7*%¥ ¥¤¤„ !!! JƒÀ‡'ÞsÞ÷ÿ×ú¾5kÍ<×î½ïkßë6&]^y;˜ Dæ†âåçIµ´ÔøAHÀec3„¢\ ËqÙž@H(ÌMâ_Šu'S£î µ`nõg.~A¿ˆ¿¨Äÿ6„!$J`¨@‹ sƒ qÙapoÔÁu—çïG‡-'€_\\”çw€¼+µ»´À(Gˆë]F[° Àf … ¼ÿ+‡”# —===ùÀ®H>ÂA†“à E9ô!HÂbøÝ2@ì ù«5>\6€¡#ù§Âfò# €; Ô↼syæfAî² Ô4:pˆÛŸÆšðþ€Ÿÿ?áþòþêö‡3ØÖæ »yCÝöP@GE“å…â€Ýì~‚]°;°ê¶¹3ø£t0@E^¾ëð¯þ¶(…äCB]~÷üænÌÊnvŠ0WWˆ ‰û»>%(b{7woà_‡ëìótóýÙCÝìì·a÷ 4rƒº?ƒ¨)ýes'ÂýGæA„Ab¢‚bˆ;âeëüÀÐùCÉÿ[|׃¿/Øßµñ‡ÚCî~p}‘`…xñ÷ý·â¿.??Àj‹Ø@ n¸ÿD¿CìÿÄwç€zÌ@wôã€~þódqÇ0;˜›‹÷?æ1ð‰‚¶‚‚6÷_-ÿG© óøò x„A~@ôîÁÿ¿ãè‚¡Õñ/_57{àw°ßõÞ êïš=þ"Ç_ øï`Ú°;êBÿ0Ý$ ²½ûâÿæû.ÿ4ÿåÿÊôÿ­H噋ËzŽ? þ?z°+ÔÅû/‹;ê>CÝ­ìnÜþ×ÔòçîjAì Ï\ÿW«†ß­ƒ¼›Ã¥yù…ø@BÊ¡H¨ÄNвuü“6Ê~/œ Ô ¢ CB_1w^ Ðÿèî¶ÌÖùîAÞqóOy·r¨?ò7†Ü-Õסìf ³û½}Â"0öƽ;ü;$ ðå¿[S;ˆ×ìùÜ`¨;À]Ïþ{÷÷A‹@Ýߢ?‘ hðMþƒ„ÅÀ»ewÿGò»~ Ý¿à·Ã ˆÀú}KÞ ø!Ðñ_P„þïtû¼‹ÿ'ÿ]5ð;Áþ•‘ÿÎù/(¢þEÀgÀÿ™í3ân¦pýnžã?n/Ä b‹;; ³• sªk;¯“§õä]•Â:È<7à-µÄFõ*OX­$äåÎi¼T™íáW±têÔVp?Ï_œ9ò]k`lô:åeTÙt`´Iœ¾=½7•â{FÇY(&üUP᱓Mêkó˜LnÇ®÷Õgúy½öOǵŸ;L©]¢ŽÖ©ö±ü»>ô$ðr…LDaÉF´Ý|~$#Æ›~™”3ä“î,¨ê‡ÅêoôÎê‘áÞsSÝãË¿žid¨™õ…qðh%KßT­íú7±µÇyØG ·>ªK'YSæ¦ÌåÜö·-îcuÉ[8åŸ20Ëtl3”)_k 2!$ð€fÖ›¾÷?(3=õõº)>êèP`Ÿs¯q‹#õYnXðË.-º<à~l´Íz«èãéºrêWëµb¡Ùï +ó¯öisÞ[ž!‰…Ió_lwF‡ÅQóµF1Wϯö™èté/îÅC—™å¹ý!Óš¡¤.ä*¾Ölžná"ðíà.¦l]#'Y ‡>[ÓJ]Ó‘#rôç%›çˆ'!×ÝJNˆm“_>n)ˆáœ|M;µ‡ßV)ŒÍ'þâ{îα íã\iBF³+Æ[›[˜Å¡ݓҥ˾¡Í?™÷hÐךór>,ƒnÁžª u’8ÃRKÙì~¶xÆj¿«žT•9Qò?9ÄžÏKê5M#lÛk|Íïô´&Ô¡’ð~'¿MGK®úK°Ÿu‡c\…M ç{OÓÐ[3vSêa½ š¨÷¹.Y¦#Á›ðbv¬@Rø ïĶý´%|5m…ÛKë"äódëhÓMÿh¹“Þ*"WÛÀ…îã—ž”f å{#>Ìߟ•£a¿„KHp.䱌µIÎ>ôjÁã … Y)Ü_Ý&Ã"]¸ê½ä?àŸ#™¼G´kÜT/0‡å*]徊Âèð’´ŸQm¸4c´0T>}ï”­?ä¾Â[[£Üdgu[ó1YH†×ää©2=9[¶kfj’´*.1,#š–àY½ô g±ÕHàZ˜–äö£x`[KêCà  *Õ›\òì•»÷Ùˆ¬óÇ©]¶Œj³‡ËB>}>K’~¾mßÒ,uè¤ñ+~’Õù­Ëé"›Õ±+«q–ø*oOhá:•3Xs(ðáÂE¦á˜.¿ï§`²‡än…QñŸóUæ|m Û‡ÛìïG|Û+¬öÒœØaÞÕ…;h’'¾:X¾|y¶ß´$#L6·ÖhXøe¶¯ï™=¹"Éi9Àþĉjݤ§{OMé}µ÷–Ð?¬0µ1gRÚÊ,ôÓ¶léßEº1žÊY!†i ?i’æME*•‹lpJÓ±l[ m%fëÂO0Êk _ö•™ŠVÕ¾Pt…-­ƒFÙªü‹àóTvß})…d¢I£Xz*•ÊAôŽí{0¶ÁP;ÓqËe¹Î&Yl8>TP’®>X¡·EžruÅÐ|‚1Î\­a»µa…‹{,óëã/Cظt)ÙÛC—Þ¥A³,p²û¬YF£tàò ú Q£©Ãá°Bh1ŸG¡Âí‚‚B¿¾ÔÞ‰°°…‚WN…Žn¥èGYï<¼çk-¹Þ«j̾ö3?þbåIÖôPk§D‡«©'ÚCØŸïe™x9U]³¸­‘„bº•퟈!òBÀ_#´oõ¤Žrô]ìƒùa`…HWÀPè§³Bòó¾—}ÏäE“m©oª¦qu}˜^¤ídþAk*¼¬9Ì96äLM>ÎJzú6(Ɇ~Â-§Ò·=yÎxkÚ4§BÕ“÷….²Ž—nä¹r¬&"õ^¾®Çá(ÿ.9\§G`Ħ·Ù‘“<ïVD‡l±«˜qÄàÿ ¿H¼(—¥ŽC Eïe¶µZׄ? ™°×Á6^ü„¾ZYPùìôõ,)Θ\Ã^+|‚ÿq¢ò¢éóœà×¼Kš¦Ož¾´Ù2É7=v¢”Qžr®ªg2éíÒLìh>/êO2ʨ;ÍYhEº\ªÒ ¸MÜxçô@Œúún!Ãå1r£aႌ£~Œ€Z‹¬µ ZŸ–à¯Ú5ìiS6â—kŠàŠ£Kö«ÝÛSñIe-ï2úÔ@Çp™±ñr_.¤ÇñÆ­÷ô¢ª làb»œ·IsN©ýeúÚæõ©Ù©f?ë¤Þ =ÃÜ»‰ÓJ¶5ÿÉfˆz3 ÃÅ}nÆZgpx¡¥Ï°}æë ÒŒ{5®¯fö4ÒèZ¤”‚“œlm?^Ô§¸¿¬iÖáÀê4ç}ÊKÿ£Þ«ÊI‡Ð;Ml¢×>- 4¤¶ÑôÊŒ ;“îRŸIëyë܈R ÿzÎB+‘6ÃSldE©©+›ÔÔ?H¥­X³a uúzð™`N&¤oììù:þúA®'ãî<¥m±ÍÖŸ“~?ó™Þ¨D/ G¿½y¸5§™"iˆk§—®®ÆÚÜšÞm:Àñ…šÒUß}“ì¬DÝŒ:9À~šCœ'ý•HÃ7*+þË’ÉOÞ»tµr½?3’ŒàU¸ž{ghóík§ðZí›Î_í©2¯v5¼Ü»Ë–?Z¡*è«s¶?ùϰ=• Ko('ÉÕ¶¦òX.#Ê$ 8èUeª ›sºÃ_¦$kϾôÏ…ù»çnñþhÒZ‘õAZ#müócg¯»‘oåÈ­Rm@ôŒüU•çaD:ÉÊ^e¸ìÇ,:š?¶¶¹w f+Í~ÃʱøsÀÒH¬Ö=»qêä`õH‹ùÕ­GgÌÛ§´8Ù̂˅!yúÉ7Â|•H‰‹~ZIUšðözY—ÎÆz[rÒµ4ݲ³c&vÉü6/Š?þ ð!°?ÉF*"-eáÚù ¸î»tk<–3ZH–0Ò‡±º[&ö˜$ >Úöq§ï։ɴK·ë¬¶A;´ÂL/“ó[AiÑßæä™қÖ”p&YÄ$ñ‹~6Þ!1é ,·ë¤‹“ƒ¿Ê^lîÌø<Œ³²HiCÜýUM©¢~áumŠ(¾}ìß’yñ‘V‚èBAZœõäÁþjÖ®7"I'—Ž¢¦PFH•äæaЄq/_¥]ÀÙãræÊ(Zé¢ÿZsYœ´.úÉKwü¤á·µ¯R«‰§áßJµïyz[,M›ç. Ü]÷odóù¾”i4_žJúžœ¶…Gt|H¨Ð.>˜"^¾ßá¼³Üc·ìõ^ÍQYº?´ây™E²`˜ÜåOк¯rµ—#𕦆… ,3ëf»× §.÷s²í³kï#ý`çeŒÄ»7’¦Á(ÚW#Áa~m&ºS…OÚ{9¶|Ç·]}=Ú㻵Q\Ã?²m‰Ñ”²^?LƳ’D9O-òæäm ѳUT4c©T^dÑàŸÝ«xC^§€£&ùÑþ5ÇÂ|Ti^•Y€+“§qPe³z,È$ýLùHo+5›cGIJ²Á©®gðÍåÒ¬Úú…’œ¾¸yéJ¾Ñ!âqʈ¶A´mŸÀÔ¯Ö)_Ä×UÑÏŠñ–Š …+1›uäÒ_‰ãÖé?És]Ü«9,¾vfiChó46SA ô»²pþô³x–q™? É)H¬u n¥5¾ÞÊ*_lhÐæä°7pE• ÌYpXÍfb^ÓpÁ´o¦FEUî¡XM\èÖ…À‹3y¼ê#±¾þ^X"‰OwA \vêâ\a#ç¦Ç}4,©Ÿë–Ÿ%à=QK6ÛìÏðnScë‹ÆÃP–WbWbóÓàÊžƒyùã”ʶ¤x)ÝUÝÒj'[QêýÖ‡SM8õ½“·1z¼p„Çùæ+Y°[•Ti¶ fAè¶Mï[(ÕËðW#Þ—I¸cRö 8zk|m¼Q‘”2½-øþ+ Ûïç«7K8S$ddž@Dçu9cí|Ív[IãÕšK›‹Ï1(€üž¢¤«¨-¤aÞüõ熬2Ë}·‰³4æíg–¯ÇÉr…—~êxœ·Çªæ˜´÷ÉýyR'<Œd•¤8ƒ†Ò,Js®K÷ÓÞ&W}[Üzü©Ÿä} Ú›lCÖM5­Óï´l1J! ½_Ý›N–ik‘‡}XèXI(²Q1çAhñæ})›‹´Ü‚–{¸«ÔϹ$¥ r0Ïúˆ‹ àìõ¬QÎ'k#r«ØMå™1`­ çÒ©ÈYë!~W™Ç6µß²ððQš‘bã¯AƒÏýÆ&·;t8—Ü?­«¤¡pÒu ÐK¤½êËZ{±bæ¾”[môJߦ_sgÔN舯GÈûS™ã­x[ñH{Yže„õ.¡k©HD;ÒIanUL6\6ìûºÖ»8´$:³øco¥ÔÙήÆåV,É61àÛt?ON5ëe¢ên(ìîC¶óò©ç™äåØ7¼åÚ÷(¿M†ïßGïJ‡OPãñ¼ðÒŽN¸‡)¹D›TǬÎõ¤Ž©ù=:A-¡†÷æ? gØ™ /ÓUã_‡Ú9ÃE×ݽõ'¤úV¼ð¤ys=žcþz~"»ªÒ–¤=žR3M\ï·î8 ]ͬÝrhžŠl1ï,ãŽ&^*S4÷©µˆœó\©¾gŒ»õΙÜO¹§š‡¶lÜ>±uÌ· vaŸ_*Réþ*ÑòX§t‹•e ›II¢-†-œý9˜z5GË+åz ŸÙJ3ãR–îƒ)×¥Dä4è@ÀBÔ‹c·UŽW£+ÖÆELJé!LŸ²‘:‰o°ÐÔ‹p7kì¥Íp¿‘“ðñÎÁ^N&lÞ(ÒÔÐa¦õ¹ ô›ÐèsS°ztÃҕʲæ"–°o¼ƒ/¶ 7Ádó~n)œ2üéEu /JX]ø9zÄ( ×3Sè¢XýŒXïh‰â»÷¸XyÛ@}Ìx(møåCmyÌ§ßÆáßV™>ÂöÞRî–2„š\«Ltóžÿä,Ädµ4%\yíMè¿è“Ǿ•&ÑqØQt‹ùpU ŒAnDJXL…0äÂl˜«üêyf&Ý'(Ü41 ÏcjØT‹ }ÄhÅ¢;ENS»7 "32è‹Ñù†ÞoÂ6)à#Tx,Ý}~†™ÇjÝO• á–bäãX°øtìJâöq.‘ƒõÖ1Í[aÞl¶$¹òQÖUÇ5;Úç=€è|I [>— ÊlgŸ¶¤mc \aŽoIí˵‘5ã½ ¡­jñCت…Ó<[Ä÷ˆ`ACÖYœ @‘Â`'y…øöb—ú üþ½Oí`¯=…{œKaí‰YR”æÜrªe±×Î}e`±ÎÚA×B¦Œçì÷ê€õ~¯õ¾ß\GVËŒ·åÙì)œ¤XƒV¤Â)Ø*[Ã_ˆÈö’n¨¼²5 k1Q7RZ”Û’Vru”Më<ò¥=ÃJÕ:ëχ(rÛ ‰Ñ~r² s2‡“ô™V³Þ÷‹iÛær.‡§Ãå&6ôx­9-˜`âU Âvk çïÐ@’Œ~Vo”÷æöP_¬~ùV¥O„³0ù*yGÊOêjÒάó,Œ¬¿‚rz´˜@2T¶;f§^þ^‘>x}Y}CÙh¬â6•bZ=Zݳ}÷i‰¸ÚÃèUÀûåèß>ÄMä÷àÓ¸:Rw€¥ÄÇBȃ0brS-†JÛìÚTÂHõîgœzŽ]/ŽŽrUFçš~õ¨x¸Í‰AÈgË›°#u]ršï9Élx魯¸?~r ì1ަ0œ„έ˜ F,áÝÌíS6Ùµá ù=ކn(¶=¾¥šÔÖ†kíÜï÷ËsªÈB}÷Û ;gÑ'´·Æá#§“èGb–)rЦìGeîèѵèQWkr9qµFŽ•È1ÄéwY/<›)%±UQˆ«ÿp™g2,ÌçMªú­…ûxhÐxá_ΞG”¶k\÷ƒÒø„­†@€¡h7ñ— çCü|ua7éj¸,z>Á²í¹Wõâ{Rà ½‘â{QÓ"æ&H~ Lb³—ò«^{ø¶ŠðnBÛgbÍmGÔTÒÁ :»É£TúYã­>áCP´†ŠÞGGCHì³NöŸû'Õ{Ö®Io‘OjA’Úüùò_äNkçÝ!2~¢ÃTêlΤtüâp•½lœ-±IîGâå99¼¥Åö<*8ÞWÁ$hþŸCÙôv96×£#1‹;$ß»Ž;u‡ZªŠäg¾†¶D6Ð!(bÛ>[~æ0`p,Ü™L=¼”¤|¸?"a³Ë­õê0fvì)³n„êF=õèTmʋɘ¦ s ÿ›9¦xt³‹L\C8<ׂÁâ/1v$és&/82^’=ü‰"æ{÷<ü‹WzošÓ!‰ÿ÷ÞôêgN*ÉŸA&zŸ·ŠÎ*6nO¾ó¤E½ÌâSã±Ø¤¢)Wne„RŸ~1­S¯åã¾uâýÎØ®*@R©pé–†ˆ¨æÄþô[ÿæ|´¢úòð`¤öã˜o‚E¢õ4GUM5=¤èÄ’Ü# VƒR&ä*ù¶_ÁôæC%G÷CŸaãxØMó:ƒ÷ùÖYQ뵘ÚÃ^üjüÜ 9®-jΆnb>fÑÒ¤öÎâ¶)*¼ Öµ^o€·ó Fª´dKÎ/œó¸›¿¶ÒR¤‹ã—ãÒᮦ¯»T[‰uÎðr+°Ñ/?qeêõª\6Ý  ó)ß}ôšrLÐÆŒ¾_åQùa~­»øè®jÉÁz%&iÁÂb]ÿ­Šq_)»zcÉ‘%“vwÚˆ%Û|ÒÐ̯ÞðE×£…Âo=6Ó0I¢J7— ô³¼ÉŒè²O‰$=:z:öD¬NŒDœR¡˜[[_ºYö'ñDDö'ÊÆÞ˜7­SjÃŒeP&b–NP¬z±ˆ2ëKîi?mâAEVŸWOHqÁ·m1÷º²ƒãÏjÚ33(’W–'ëAν9ÒþÚ•cÖ[ÏÈh=Ûíg"¬èÍYQ®Ê·æ¡N/çò‡ò~ÒÌtÔSü¶rÂã,8šaA+º=Á°ë]ï í“qn¿6^âü8ñ­nhZó1Âs¥3ZÉiòƒÞöÈF(^{†*œ{¸6äÛDrбsS¾@cÅ6]Y2<0d*ÿhtÿ†{Vg>\ „‚Þ„§fî=Œã¸ºzFe¤—Xîï®Å‡RŽÓ2ªK‡U¢'`cGUÍÉ;\Hˆ;9]Uo,à?úFÁ,ÝH~lJT—¾O¸¬uÅ Z–Æ^*yÎq”L°óÃÿ¬Qî¼®ám…IüþÓDmñ•ÇÕÅ_¾|ï,Þùî9´@hÁK0Ož%5¢xöKƒò»Ìp¼1äé¢Idãʺ{¦äŠ(¤›¤}wGJç2H‘dæG·fÆíÈm*¨QèCwæ4•Ư"N𳑠à(©·ýÈd`÷~efÐ@í»…3ý À“)._õ œgþ„"èU ½ápp:Ëòi†º’ÔLÙñ—g³â½¯üª—(…)óȶ»Wâiþ"S]–Gl óO+³tƒˆN’˜‚3DˆñËû I>¦®s©i=/.é›Ô½¥–¿’ôyÿT¹|Ã(&dõA…C‡š|ÃÜ»Âqœ4¾¹Ôd-0ŠÙ]Ýd!Q™«úI>KÿÜ™ËÅ[tt7˜àc:#ì{?m†›Ck×P€¡òPâ‘{O¥aKO9óQ/p ak0´8Åâpo©xtWÁåâÏv­tÉê²W·‚, ³[ÎéǾš{@¹^¹ï”½Ì™7jdú­h妪,÷)ç²Í&o¬”¼è²{‹¯g핬-ÀçÉ€rHø80[çXø—0×A¹jµ¾µB¼ý¼àÃ3¢þZ®—;J¢9·ï¢K¶æÈ[ë¢Ø/÷¿¿`ú–N®wÒÇ+6/KÒu×ß/£¬+¹·:†{xKmwIe§ ´Î×Ý¥†}( éKglQv_Z7ø,F'ü–]ùÚ>TV´â²´7 !ëw*-è¹àó  2­ò1X¾HÝP•¦2í©X¾6ÙÊ,Š;"Á&KôFw`ÔݫӠ—qè{fÿÕ6@úWSå ¿ŒöÌýŒKÛ#Ý,;wbõ‰ ,#G[$=JT™o w‰«¿ØòT˜M-wÙº½Ý¸ê–a;#ŸÝ¶!“#—Óõ㊸kÿ®$Ѝ±›Ÿ/W"uՔƶ´ÕâcÚ7ii‹¶ÅàÎJŸË*OŠà×ɱÆýÝ2G®ƒWð/‹( ‹6ë¸æi­ë¿š*zÅzL Ã6ÎêÝ¥”jæ¯ _dé\p¾kåÑßÇà™¥¡j½ï§v߈nË2Á‡úÒÚéëix&ëb2_œphð/« 8)U1Èø~0£G‘UÆ+X$?H‘+‰:×Yjhî|GƒÖ’ç&h¯¢ëùKÒÆµqÌoS"£!2RêF\"öAÎSò—oi†˜’ðJúÈÌð ciÏ1‘¨útXÝÁzš ´K"Y«ßíkw¯Y }ÒÔ%oz<.Mªe7¶©ØG_¨ªUg–rè6EV‹gû¦ï¾ùe¸^Ò•cº6oï|}x¨Ò»ƒTlS> stream xÚtTÔk×/-¡”´ÄÐÝÒH3tw3  3ÄÐÝH‰€ )Ý!JƒJ—€ ÝHK‹Òõ¡žóžï¼÷®uïšµþóìߎgÇo?ÌôÚzܲ¶Gróóð‰ä5tùù||‚<||¸ÌÌúP$ òŒËlquƒ"àâÿË@ÞBÞa äPu‡øüÂâü"â||>>±¿ ®âÔ ÁPEÀ!n¸ÌògoW¨½òîš¿60;€_LL„ë·;@Ö â ƒà Òâtw#è!ÀPÒû_!Ø$Hgq^^OOO“ÂÕ^Š à E:t!nWˆ-àWÁMäOe<¸Ì}¨Û\a‡ô¹Bw †ÀÝî<Üá¶WÀÝå=u€–3þÇXýà¯Þøyøÿî/ï_ ðßÎ 0áä ‚{Cáö;( Ъó ½\Üö—!憸óy€ 0ÍÁïÌA ¬tWà_å¹]¡ÎH77(ìW‰¼¿ÂÜuYn+pr‚À‘n¸¿òS€ºBÀwm÷æý3Ù§p„'Ü÷/Á ·µûU„­»3¯êâQQøËäÂý³‡ B|||"b‚ˆ âvàý^ßÛò[Éÿ ¾«Àß×á °»+ⵃÜýáúº< ¤«;Äß÷+þ-áòól¡`$Àb…ãþý†Øý‘ï†ï õ˜ñÝqÀ÷ë÷Ÿ“Žlp˜÷?æ¿çË«¤*¯¬¥Ãù§âÿèää^_îÇ|n!>ÿ/’‰ÜüÿFý+ÿå«·CÄþd{צ¿3öø‹l-;àß±4w¬…Øþ!¹9ŸøîÃÿÿMõß.ÿ7†ÿŠòÿ"ù't‡Á~«Ù~ëÿ5È óþËàŽ´îÈ»Ð@Ü­ü¿M –Vb uwúo­ t·²p{ØÚuB½ ¶ÚP$Øá[þà¿¶ …C´nÐ_Ï €ûn4ÿ¥»[-ðÓ»§Ã펒¿U»Íù÷•Šp0Âö׊  @®® oÜ»!ßIB_þ»]´…xý&1€—Ž@Þ¹îÊóØ!\qMTÀ«r²±ý‚#b¼`¨+ØÝÉvçû7,Ìà…¸¸ß èoDèÎ×zGø¿ÇbÞ»‡î™Àë|÷ºÀa;ä?(ÿ_èfü¾‹æ swû'ü7Òñ(€×âúøWÀî®wá¿Yz× ¿åßoâãÎL"ÀaŽoÃZÏÞÈ>òä^~2ƼnôŠÛwÆõ½ûþ½—ìÕ™!K®'²/û;çWÙŽefé®}wšjïE6'é´\ú]Y½Ð]oÁ!ëù\°#û®›‡š[_fÃïÚÅÏ0ø)zêGUæwQ|í¼‡gž]J^ïºËæ#&×u6ª…Õð®Ê¾pÇÄš3çÚdMP0`!¹i°9ˆ½ÆOƈ_¾¥S}Á‰ë¿'Xèkº,>á³P¡/àÖFÉDiJAƒ~L<8Êâ+·•¢J>å[R8ß3íÕ$YH÷úWê<7!Ï–@F5T7ÞÐYã18ó-ç% ŒõQÏõ¤šÒ+W-Ò꫘‡ÈÁ§š­vr ­'†ívŽ©Ô³b_ÞÝÆ˜8ì5¶û^Öº,ôôpŸF¤6Ÿõ7 ¬¶ûKwKSÛ{òs(:˜EÏωgФb–!‡ÐÚŒ *$„\³/E¯0Aá’¾!ßå.¨øW øøLE1;Q©÷…rü¾ÇûWÖj~X'š‚y[„Þ† kÞÚ|L=<, tT´ÎŒ`ËÍPl–»øœUGâ-¤n<´Œ÷p¹’ŒG¡Ô›N=qEhú{/Sác¥Îõ©ªþhóoÇs±|ž}ÃJƒ–¡|úµÝî¡­ºà>¹Ðð.±Û­•“òr9KÒoÃóÃJÏ(¹þø¯ú"a¹Ï>è½nsÓJS’A+:]èıaÜÓ—ó wjxN`¤ÿäbu¨­èÊ“«LE™µpF£[í›d¤ßŒÅ´Ba'å› ²gÇ Aoßk±¡ÜÏ$\ˆgÎܘCg´zßß`øý†JþY£Ï2JçÔ—¡UúO£«L¾°JóâÇ] ¡Ø4tØ ú©Õ ôKOØb£oì¢ ©r3»Hr,^þļÍ•iIA:Ê`gdãJøåë/^J¹:ðÞòGéÑ”kÐjæÉälú©Q\uò³ìt¢Ÿ«…ìô±váÆ!Øà-¢l”UÉ V’¾·ÏS¾ë>ÔTÌ¥ã¯!b%Z¾‘ÅW%¨æÁœéz+¯:Œ¢Š,CaéôÁJ®Áe 6éiÛ™˜Tžx”ô#†·t8eïÉJ~îù]/ŠÉ¯ú6¡#9¼9œŠ‡7jP/™EËÏWê‡v+ÙòÍé ¶á|:s±ßáp1'l©ò[v]Ý›7Òý”ÖÒ?DRvÈð¬s0Í^~ø!ê¥-ù˜‚æÇäç3e”Y‚ÂiMþ®jîüß/Ó äQ0¡édµÊÈÊ·£cþ'Þ´“7`Zfó%—ƒ óææÇZ=èÍ2¬NUšóÞ¼«¾"íÙÇPñ-Ñ”i¨žk¼6á«|îá+¼D‘Ù¦Ú'òTu2Ë Q!ÐEá³èž˜–9.Ì‘ÞÂQô »ãAùè­ØÇá’%é®|µd20;ŧϧ_Íí_#+Y¤KWã?wý¼„céïx¾OÚheʱÕ4—oÌ(žÕ:™ü,Sh$àE·%êB¯nû¥jõb'`ß7¶Oî‰LÍÏ‹=z¾Äv“\„Ï9ÓÞùÈiosWåÇÑ~Rϯ‹_,eK€*«ki‡Oî[¹rNû@,rñ:~|ìé[ìÒ>oáÓ¶ÙE ðAI…:\HïÈ“¥”{gìMu¶’ÏY‰Ø6Å“>ÖÄ5¶ÁëV•+Í‹ÚIß5-bþ+~tuð„)&´®¨¥AcwÛ©K¦Áh"¢’¢ ÒiÞ†™oæ&Ç…uúν®Ü¤¥$^»ãÎ,Ø{fmE\qZCYv=9uÞ É2²}¡‡eòÙ²ùK§Y0‰*ßOmxlŒÍÓÆ˜p V"v Ê+”0Q_ÝiD"Q{—>9Ûš•Ñ!šìM šBÏêáäXªÑÒ õ‹÷¼×4¶n…ƒÊsj,ߟ‚ÙtØ2Zü;¹¼Y(ÀïtÉõ‚Þ´Œi«` ©¥nÓë3t§ŠÛfŸÏ±À@,bXÙy9C‡ªTcÚPµÿ¦!{Ƽ^ß”’+÷ x±ø@—˜¬‘¬ð} 0®½ì½vÏÖ{uŒÑ ¯3Œ" +³acÃ("òÞ?urªèkß{„æœãB¸of©B]’.“Üɾ'„ÅZsÂ|©°O!:§“ V2vä‚TÊKÚ QJƒ!R«7¯‡HzLËùi9ÊÖz㈫ŸkpöÚ8EHø.” âWê’mJLç¶Eá? ®ÒâÑÊ^†rµŠŠ–OÒ†îvF„Û¿~bþdY†¸|¡<Óϵ¹|õâƒap<Œ f_Õž5kó¥2n¾q«l"eâ“ù×ësÐc~ò7ƒ€r±ÃÂÆâÁB@¢›åÓ½<7Ûø 8¾Ï‹vì{•ù›â“ÔêÙ>”ñD‡e®xÑ…ye¡š b4”DĘTÔ¡7,I²Óö¾ÂaÂÞ¨‘ª8ÏZuG’j8ë;ÚCZñ²²I‹_`y,›ug&ëSµ¬3Ã(F³#ë¡,my|Áj€JÒt^(tæ‹;ŽM6U‡<®ho—¬ráÄkAT\ož#³¯¦•$¿¬{eYÖ}gÙÏ·±ãÞä:,»Ðû™–4F á,=‰Ka>xLãFßz.„÷ìj‰ÙÜæ¯3h½~80dÔÉ$¶Xà-²ö.‹Õ©Á‰êO6×yÙñÈQ6Õ'û·e© 8±µÊ×°-ˆÐcÖ§Ù¬&ò¼›S7mr×̵0ãªÏä¸ûញ Ä¿µfšú~aÌé´I¤öÅOÜa ªbÞî›ØÃ1µÐ¶ åXÖ·uR¨¦:2Ã*3ËHæüµÛ”Ì6³v‘.–W9Ãð¬û5”ßLXÇç@õúßY]Ç—ÒxáVð—èªê¹dxØl)2¸o7s>¤ãVÖiÒøªë–æ-ŸfØ,vÀ·Èö¬Õ«ó-°ç@¹¨MݾWQÄ+êKóÍy“~ò¿b |èê${»ïö’¤£çÇÜt #­åIéé€Ûñ!"ƒÄFÆ÷…÷$6½¼<]Œ/9›Ç(д~÷€vƒŽ·lãnï¦ýÊ–‰{Ôü¤zx<ƒE]Òù#q#ìá}¿¦€ŒZÑ­ žþ®”zN»á^ïPº¯Voå|ª"_GüöoÅÆBÛþÑz<ÙiŒ ʧ¥œ(pÂM™‹¤°÷œ¡¿‡‹}&²Ä1‘ñÖ³øþ-­ò†›üV‘„C—’åAÏw¾Õ L¹¿°t±_ª¸2‹ ±;Óöz¤žCê·}ÏèªVbN‰v’„Ðä!ƒ ÜO¡™Wg_•ÍÆÊÍ°ÎøS†ÓöÀBšgbeÎR"ª-r×?êÜxÑ÷£ëíÙ~–z‘êpá#¥ÌªVD‡’”ܺƒÅét™Ä,„IX¢.œ¼«Ø¡u”Ñýß;NŒJbÔ»tå,itå@°;^ï¬r¦L²Äß iWc,mìÏ‘Dß{ßRIP÷(°ä’×± |¹{&—ÞÑ:yGň:¨¯lmRǸ‰ Ky©x“`©RPÙŠØ7Á3cBý]fNZîšBhõs>ÜýàƒÖÕ*RV“[ý<%&UÓj‘ÌÒ*|Ξ$±. ›¬ç¹Dœ5훑½5¹ÈÅCaHW}û<]õ‹F\©ä-ØGçTåycìmõYçu…G¼q÷ô(Yï[6‹¯!1Tke¶I¼Êß…*²ñ) H 7“Î鸠ŗö&?Õgm:Ì&”È–LpyŸ^sFÂÔåù“Œ»BCT©¸./¦º\¾K¯ÅŒøðËëq¶QçkówÐBúÑô†ðËUS4fÂ^ÂØ¾Õ1aÓ6CúuÖyœ5…ÔDP®!Ñ~ìsÓ‹ hå”ÊeÓ¦±êÇîqþ»»6;–`‘Fé?¥˜¼ÜÝF9§GUÁ7Y/{M©Æ¼.T¬nÜ¥½Ìx"73¨bñ(H‹ÿÀøc¬™ÈÐL'Bݡ̄{=$@ÏõÆ$ÐÐ6Q*‘ È£¶À(%7A!‹ — J\Xe£Â=Ë|!…—ÕÚЯ ì™G¸êFêJâ5Ÿ‚»ÁÓ!5;2Y]ûùijÕ,¬K‚%¥šQrs6ýÍ$Ýnt è“aÝÐÛ ·ªF‘ÑSfI‘¼ÅlMÜÇ€xÀQDgC¨ÍW kÊ»€*eé½½[WÅ¿q’dƒéó½1SBl>kÜL>ûÊkç/¸”’±ó©¨w•A©4…¨r“ÕNÃmôÞ8±‘ÁµÿÕI]C£IW]œ%^Ðø³ãP/½ò‡ƒ-å[ìþ¡x:«óú‰­È·ÃG/VT=rñß[Ì3â2ÍÜ+#˜c•wJ“ Ó£¸¦iÙûô¦ý»LR%EN:¨¢6ˆ›$M6ñ †0B­Õ`;zŽåŠÒPÌ8g=57ñuœ³ôƒ¡yÐTY7³ªÀr®—kè×k¯rÇ´;v}“ó°«_<vmYâO;ìh=E·ÎjØÏXu>»¸_)êî=Ïäz”²ðã¥;®?Ø¥“S¨Ý;€þzÁb"ëâÑYÛ.¾W%êdûT\ù(çƒVx×[•D+ø ÐðÃË™T…ûÖr·’xÔ×ï]>¡ÙáʦæÌÏ ö<¦ÛPhŒø¬ZR,’‹ófÒÔ_i¬|BQe¼³,ÝêD¢šxFÆ=&vJ]R–™O¶ûzý´Q—g'ãøÚƒ5¨×‰‡˜uHoµC¡epæ}EG!’D–wßäxRþ]e·Ó·:Ëúj%w!+¥Œ{gu3üE—HÞØq¼›å¸Á•CÜåÇÏjø+áQV— RþÎXœveöbL4%ݨ2çÖÓ–_š”ÔN$„ʱ <{wZ0ÖT\]dKídC–Lˆ îA kGïGv¿›¸~£Q8>7kK{O·}$‹$º¿Ã]–ÀEÂ¾Ò *+èovXù,f6^ì~‹­·I!¦–HFÔ¥¯V 2fZó´ïOª× 5[AóŠyäÒšï¡Â–rÛêH(¤^\¦Ò®ó÷s mczᣰòÐàsG‚g‹Içûë SñáƒÍ®ÏÝ™üê`3¶G½¨Öîg2hT~»t¤“óQ[µé=–³Âöy³½G/­A‡¹ÄE}¢Íª‡£ ­¿|TÌÎïð¤jÇÜÑ>ºŸë³=R…‘û;¼Ùì—¹Ì^÷ïô"Ø80ªÇ¼—¶t‹ÅçÀ÷ů†I›–úüˆy9@#Õ¸)ºGçÌ­>ÊÒ—‰~ f-°®-aî°NÉÛ_øØïV&Ýìñ©¥ÇÒüêG"éäµÎÀ×M»pιÖ‹aÙœ¸™bœVŸÑöÛöC µø÷Z`ÎhšdçCã ï…Æ²Š´ ŽV´>û“ÛÇÒÆ K”Ó‡ò2¦ŽÒ-ÛG\Ô!ˆ·™¯ ö~Ü?-LL‘Úeï)ø‘¦ OÈFk.©”aøæ«¡+É+€¼Öèîýyî¶^tùTLÅøg¢]~iæ(úÊíçëK·3EÆŠ»Å)„}<Û_éÛF:8TçôDðÛfMh«±©·0çа|™‘ÝR½ÏY¾õ±©›x–øÉqŠfî:“°Ç[=*}¢gŒsUê©·‡‹÷7¥3P>³žìžvžÉm •Ô'¹87ÉÜH+”n –-yK]j;1úOPb» *ÎÏMi+|ÂJ‘2÷O!Ä鯷4¦e¤Ù%¬×4Z£¤n§òúo¾B–÷ T'üR›› üG‹å]£ûÈ{ôûdû¶ðì(®Ñ^å'&kûK`F3ŒµªŒ1¿ÐÏiÀž^˜oR]ŸZŽ'¡ÓP¡ãI¤á´ùmëÌ»B(» ßêt_¼bÍÒ쳑ðblŒ§üA§7(^æhC´7Ç܈T}qWj Wëv?“ÆÕp1¸ƒÒËâMV«ûÊÁëö:‹ XÖ9ºâ¡ÙfîP‚K“¥„õ!´4Ú¼FS§]åHy|èç]›´¾øžÌ4ð€|Sóïžžqû_d{‹Ã²Ñ$VðûÇvM@…‡çs<ÓïôÑØ-õ0G¹iÃážþ×\xQ¦šŠ¤#ò¨?«OñLðât1!u>ã'‡‚­_Ìqë§‘{77&_…¬Ÿ“¬2¼ÚãBÑ ²ýbXëz#Ôd & …UðÌéÒÂ6çO¤®Äû ­.Ñú¥&ŠÄ8TøüÉÆêÌ|§I± f}z¾÷»¯3íÐg µ—JØ¢D B® 3/<Ù«íF"u_¶ud,lªž'r¸çÒ‹W˜Ùê†xÀÝ$“ˆ«†®$ò|•¡ÒOg$m£ìb`zäãæâŸß¥>Q«÷0ºP<È®l©µ¸CVðàù䡞@×Ê“fïl¦“®T3Íçß‘ÑVR‘wg)‚®Î ü°>!?8òödÈnºÞD“VµVÝPªztp©Ñù¡âÕ†~i¸˜‰ûê*C'¬Öl~QÒ ÝXœ#dvNÌy¼\ƒ³§Ù2/§'$qÚþ5®,›¡s²+óý–þ·Ö…5K›R£nl¬9¶·L€XO¬Š³-vÒèØ¤ÕpKMz×ÊNŸBÉÂr×T Y[ùGÖ¼QÁþ¸ÜŽTaóO°#‚ÁëèLµÇTCÁjÜ”S F…zëÚ1CU²eJ¬¡]d]óäïF¾ *L(k‹´“WÓõs¿~Š;½ýÈ*ýÞž«¸Þ-Z<à?iŽäÐ$¼-'¡ßöÙÙ^d^ð!Jõb” ˜?ÕÑ‹!)ÒM®(”ºþéb·ô¶Ã¸~R·¼µÜ%ð̾ÿÔSéõQRBD??ï;IÏé-o‡¢0îM «÷Æ{|îÌɽ¾óIÒ”¯7uØÜ$YïXOÐû{½hc¾81eãà4{Šö,RS›©ªíµ>Vëîä¢fÉ€5v‚ÏbÞ­a –½¸)ØÎ#qìÉ“†™FW…ªbFÎ$ ©}ˆ[ ï}ôÂqÆiÒ>±X 7j£ÐO1»eÊv­ï‰ÏüH1C–ß‹­Æ”håYNBöRié þPÒ_2|L¼D d›¸Ü†;èëëÛgi¦§EùeÔçôdÎP®ÕW~C¯uþ¹œ¿ MÚ#Ϥ»»‹7D¬©´ø³PÒ¼è"ûÅt^¬Ëë$eíL|òI³OÒH‡üÀ@s[Ä|Àešõ²ÉØxRØ3Æ ?û Ç,æäï ±úe~¯L£Ÿ\¹ºs Œ ËdavCäNScT¯Ÿn|Ž—Î{ý¤¼hèßèÕÙ†d2áE}È{z\Ì|cˆfA÷9 ²ç‚îÌq€L•FÔ§n(~C›ÔÓ/ÐJ¿|—'Ú0›p)„C dû åµq8"IKMÎúô=m‚‰#‹{ûUü³gAÌÛ‘bÂ;ÐVr½ôKMK8ÑO„e¯îûž¼nGžÕ®iÓØ—Oc˜‰1Ÿ7Æ.Zå5Äêp*„ÈM ÓleLµQì}øˆš më„Ð}c÷'î4ÅÄ“9Qt˜Uà•eòÿy9š|{›Äz¹½»ŽDVC&¸ç­™…kwcN—õ#&‡Ó™ì««rÔx­É¢,Åd\¶Jhçó:ÍQDK)HÞ., €H3µ1UØšT$/]g ÌÌ\¡¾Yñ¦¡yZ»ƒknÇffS5í®ïC-ŸçòðL(={Y'¡V&ñÒÓ.~ì[b‚á|–]v—Ý;3©å¢½+¶û¤Ä×Ì”Nµµs=¼V¸U9¨OÀTÕØ+W?EÃx Öè cCìЀV!ìéÕÔ¢(u­¯8ŠïsxòÉvâ£C¬b…É3jÂxD¡­,Ü*«D’zôÏo®ÙkñÂp VÍÅíC¸Ðsh3Ó’Y¬Ù”㹑Ü ÑŸX²-‡A=ì)7,ªFý£:¦‘¬ÝóÆÌDñðúJ´Ð§Ôð·%i_ȇÍíKœð̱ãYÙpçÇsãW¥èÏÊËA¶—õm>” „ªP½#L=Iý9>MCõ5.‘~+,§¸ÜîÛ¼>&Z<ÿùã)D#/ÊšßöZÙßµ­NãÊpHárã¨b4ëoá쨛oà1õUxý«ï@¡iÕùm¥Ê&e~®é98‘ @oV©¡¹gnü2¹+ÓÎÝÕ1,J€?aÌäCËðái‰Cß›”9ŠjaÆäå‘$wjc'fZİ) G1·|| ù§«Ÿ¼oo24…Œ³SYÁˆ! cË.Tª/RÕ&(ªu–V%´(¢&|»Öâ $]£EÓN#½ iÅÑ´ûÅ„ÈÛüÀàøçÅw§\Áä'Üé›}Îl¡Eæùdo<Œ4¾­ÝÃ×½y„i±õùŒ±0wàD‚G×W¸°VJðÑv>»õ—ÿ÷ô+b&üûæ?\è˜6NÁ!_¸ªô ¹žç¾b àø"†ÞWÍ dÛ©•ºcôKÊ»j žž*»yÓÖõÈFjÂËHn3à©ñ^ŠÅR_üò¼Ì¼YSËÚÄnz·à²Þ¡"µ)öJÓ g*o©¹ëjÊ^ÜZè=îöï4Ûþu ï¢õ•·7#Jžö† âðIi³M°„F Š·ªŸ4¬pk\Uudö3cœS³FL?Ã`‹ô3"ž31B<5rgѺåòbí­ÏÌ]Å®P/‡Ôó*7WÏ€'úP4»«t£,Â: 's‰Î„=«R±õ¡Kj½ä"Ÿ “^fäòÄÕ¿ŸÁ\äÂröòÖî'ˆ®ëEbÆqVf åÎ5äæÍÏö´¤9- ¯»ÆKhX‘k<ªd}ù.$¢)cô¨ÝÜæ›K{ÝX‘è ò¼àO.%wXÙX‘©Ç yä‚É5Ü0¨Arö10|{P¡¥9³ÐNlæÈDdn7Y1~&è ªøGÍæðkeç:Ôšn©°¨I°¯0ZX|GJºÉQý7Î'Ü&Àk x*Z€£wóëòb"©NëD)©W×¢©+ L¨dìÙý”~¤p\f “K15µï$aæAІ…ýŒÝn¬ß±"6°yBH“Q„­¹d¼â³T/7 óMo_q|`áîÇVõÑ{õ‘HB'vB©ƒô0œÉ犽=q—ÛŠÏlzö¼0E ÄÏkœcM'¶.c9ÓÛ"8Û÷â•”„õ?žÒZv/O÷ÈJRÍñš]«Ññ‰:.r½«%I³”eì…D2ÄúèKCôкS¨fÅÂá&¢~rƒ&†cŒ»5Œc¥Çƒsŵª~í×_Ìs’K<„aÉ;R>ªñã6?"ò†5c”\CêÓ9¼R}êcÖ¯“ù´ëNºß/¤_ª÷ì*Õ9W ɲ~Ô¹àI@@½zBÉx¶ÈÅb9Ü;ì3“uŠ´ý{\DåÑr¢†"ö2Bgû½XŸyž²ïÔ‡Çj£úS&¿váoî[g_ê[ÛèV¿‹SZ¼ÁúÊ÷8Ÿ®Ù)5"$t®`’{‹˜Þ1’ g e¢}1N‰ÂŠáÇüôÓ¡NÖ qY:zEN äÒ¹Ê{¤°"¢Eó5y‹ž7¯mí)¹o‡§Ö2Pã –î–=Mg솯‚Fá)D;8”ÊtϽU¿ê±¸7ë‰@‹v˜rfgþò*PM×endstream endobj 579 0 obj << /Filter /FlateDecode /Length1 1456 /Length2 6555 /Length3 0 /Length 7547 >> stream xÚtTÔmÓ7]Ò€,ݱtH—t#ÒµÀ² ËÒ-Ò]Ò­€„ "-Ý" ! J÷»ê}?÷{?ßwÎ÷=ç¿×Ìof®™k~3¬Œº¼òö0[ Šàò HµôÅB|‚x¬¬†`ôG‹Çj ‚{€aPÉÿ…+ÂA6¤NÉ4Ó‚AêžP•ŠI $þ6„Á%J6^`{€@yà±*ÂÜ|á`G'ò–¿;NPBBŒç·;@ÞÛÙ@Z6'+òF;Àf!|ÿ‚ã¡á&ÉÏïííÍgãêÁƒ;Êpò¼Á'€>È÷Ù~• жqý.Œ`èöø£6€9 ¼mà RÛ HO¨=@Þ 0PÓ踠Œ5ÿðþzøŸpyÿ †þv¶±³ƒ¹ºÙ@}ÁPG€è¨hò!|<¨ý/Cˆ éoãe†ØØ" ~'nP‘ר ëû«:;8Ø áÁç†üªÿWä#+Cía®® (ÂïW~J`8Èùê¾ü¿Ûê…yCýÿœÀP{‡_%Ø{ºñAÁîž 5¥¿,*¼tŽ @D@@@L¹@>vNü¿‚úº~ƒ¿ÕÈüýÝ`nd  @°ù‡çïaã àž @ÿÿ ü[Âö`;Àä†âý©9ü‘‘‡ƒ}fHâ¿~ÿ9Y ¹eƒB|ÿ1ÿÝ\~]-ãÇzÚÜ¿ þ¤ óøó ‰xE@1€òøï(º6࿲øÇW êHüIùJ'ìõW÷9þ NÀ¿ciÃŒ8þ!¸¹€ˆ€òüÿ¦ùo—ÿ»Eùü¿óQñ„@~£¿àÿµqC|ÿ‘|õD ¹¯CNô¿MƒþŒ«ÈìéúߨÂ9òPGÈì¡öÙë‚vN¨òGoôkÀ `(HæþµP¼@ÿÂSeç‚\H>þ†@È¡ù÷•ÊP;˜ý¯éØÀá6¾xÈ#%€?9†ö Ÿß ðóAa¤ Y^ ÀÇûÕO !¿-ÜÆÎ„øÓ'$úøAîžÈvü­–ð#7Ø?²€ß ¹7 Ã?~Èó#œà ì©ó#¼a¿åånç Gz#~s YØßòï5ù€ìðæ`vRϜ략Ÿ×ÊÓzónŽIO³n>Îääõ_€wx^b§sÖä>]ŸÊ§½'^ú¢Ìq"÷‰áÆÿ[Kvdkª^ÛUÀµU²þäfÞÇ Êþñßäëûèqéx å¶nÜŒC]Ð[P»ÔY Ý=Å u‹Éν{U}êû*G"æ6õ¶jD5î]WLñÆÅ™‡–ͰÙæÍR3a!xéq¸H}ˆfNN§I ÆïÔ“¹ñ÷â…^ú›® &\Ìú-W z¼£a¡1¥¦G?!™dóWØ~®N5ï_þr>’1KÙ1ºæš„lsømjëŸÃw~Z²±ŽKrÐP󣓫ů­´>Jq-cLÁÎ;\R_ñQû)ÖbëÁ£“¾ÓˆÕZõ9NÖgvxˆJm¥¿×ÍÉËhh®Dú4ð¼SóRê}‚’¿÷¡Òë'Þ•ôÒ~PE#CÅ×¼GëpˆÔ#\ÉŸd]~Ý¡«´;Í,ÚŸ£ñçjì¶ŸiÛJ惂3h±t»ÐÝÒ)µít(š_WË–œ¼Q¨5îÿÒÃÄiè”\:n©HBäƒöœšCÿ‹o:Ï;NîG+±R_\QÞsQÉ~•y”ÛÁ9ªß&%În{ô G‹,Þ´'ý]ªí€ý*%x¥ºù°õ8 |߆tšæQØÔûy-L…"øà®FhÃ/“€^Ë뽜UUû°s¾Šgª´ƒ?Èz"úŒ)g]“8IGPHüS Çk¡¦úÔn£ÃAlc&¤tä§àüèýäO%†ÂÛ¯ý¯zäŽpÙ|(Èé)WêIÅðžQ,ø;Ú4ˆÐ­h† Ìz³aHë´kRÛ9žë®¿ÙõJ–x£2œãwIÁJü´âœä(à&J'ƒÚö ¬†&²óãÕî®1ne¨ÁzŠeKso„øLdÛCN­êwáq_â ¹®`Ä—K|}žL—BT¨c´05#ÿúÀU7ÌaT¸v¦•“>3P+:G·thÛQp¢tŒYW9ÛÉ&üþ¹Ø Ã¥)ðgœcÙC3 :°ºÎ“ ™ÑYtR“RÓNº–½ÓÏ@‘”ïb¨«A-ÔØÛ¦ù(ht¯>¥ï—½à5 Wêžt•EkØ{õŒgï‚&ª³¤e½œÌ˜xœ[6XõÆ-ßW‰ŠîѸ—¿[©&%Fñл}û}çòéý^ŠhÜf•-mGÔ˜u@¤ì 'Æ^«¬T»œÙHɾ‚öJ•j§ÉI¢˜hF€Å'Ð}½`ÐþÞÀdQ ÓÌåÛi\¢ã€Ù"·»çˆì‘%lòᇡIÁ˜æüábg§ÑÌ!>ûF(Û=®­ 'ÖÎ/í†\X<%›±ô+ÈÂcÀÊ_Z‰Ûf‹Æˆ 7ÎòY>a{“¹A—ûL+á!ó‚àb¸§­3¹u¯FܹÓFmzqG1ƒÖ6}]™­§ý©ïÈü\J©ýù0mþ±`2‡:wØðQÀÂd7ŽjnjÙöì~î7òU‰OusaäG ßâû$7åüƒÜ<¼¶BÞ-“ÎÅÐóæw„$ûßüf×JZèš_ÞŽN¿ºoä{cèvù1ÕœýÃê:]P¸ü«è”GyJäWJF¬óx>Žås½ùªü‘œ%É[$­ÜœhØ Uõ ô|áfov0¼qéÆd„èïmxý ‰޳ò 'mß¶zÀrËØìûVê#Ó›ü3š+¸¹÷IQ{J°'ëU]¶ å½Vté’ ”ämòô™¼ÁŇŽLVÞùŦ®z}™öõ=t´1"„Üñð@ïÖHExÃ5õê_ÉÖFªÒdx&Ù)(°fW’GyEV9$¼óÄ‘_šä¨ûÓ6½í©SøD­»¡ª…&–yH'¹üHÎùdÖT¯Öhê‰VBz8¬’¡ÀG³µ36z*ÈsèEX›Õä䧯¨ä|CrÓM²icøaç¨ýùj,´fÅKOxEľììSû$#˜½€Ïù­ðºõÕkª®— }A~±>q¢]¥Á®©á”Ø&§*Æ1i§ŠÊ:>ê—xÎ*®¥Ïœ8iL†:Ћèf'"cÅÃèc?í<÷ÿâ‰ÝCnWµ)U> ’ýd»¹2€1®º 8#‘{Ñ;ÉKRLçüMÞa]âm§ñµíqQ=.©8šáÕ¢}3µ0ãŽq{kæ¨îcê5cÊ2.ŠÀÀ3E[ÞܧúëÂënÒ@´sпUk&׌ tÇ1<ôruVœÛ¬´Õê%•tÌ_Ûïî‰<Åí5ÖùFÛúšú©‚èA5sÀ¤¯ë¯ð(/ÏðÜ{á*§>/ ã;*;ÞÆ»y4›0Æ‹ºó&>Ó"b? »)êKü´Âèç9jõðz«fP’‘Ó›{Nj|Çd¹ï,¶)”«üÁË++‹£ØÐò@ã”·ØE6îÇÐ÷ìé¾5){ÎÙ57'*náªíDO#Ü{\u•Ûhk’—®©/¥Ò³z<}ÃÈ‹÷r}HÜ$g”ÛMøÔ9‹bƒ¦ñTDzøæ¥¡›W¼R¸eFyo/6C\ö"Á±KæÛ}nÈñ†OJ2MÑ–Xwô: Ð@T†öNq©Eé^]°¸#È(5É W,ý<¼Ä@¶Û+HŒÙßjåq'â©TeyÉ.ûe÷ÆäNy¾Ý}yR†‰_ÛÎAF…Óq1º §ìéÀêó~›Ã• Uá‡-Üý‰;'ªÅXå#zÇ…^ênb…©ÅÕ’o´ôä)ìQÛ÷#fgŸ¤ÿý®çÂ@1ñÞê,Ø „pøLÜ&Õøb•öÉ‹ÉH0±j¯Ì…ÞIDO6ñ¨¨‚s+&Ý‘M½ˆå€¡Œœ$df˜gu`ÑÙÀ‚‚ípOÅ}b„kp—kqÈ$›+!\‰üià F–áïnJ‡[ÃŽ.7°jq…Ð7ûß0iô*£ÞõeãÎ # Ÿ$QIdß™ ;ôð!ÝVbri$¦tF½¯:ù_ÊÛµrM¡¼’ï6¦—ÒžöoÀb¾Û/ºÆ9©Úx§YÓ½ Íh,Âw¯3/Žª±vEOùÒýé†A:»þ¥t>aˆdçBÕ*0Tǘ—ú€&dø&[%YúÇz½—iA[ü³ÏÝ…1ΰ8Оr¼<Ë`ü(sæbwŸÙšž>šu¢÷=Ù„a8j!K’ …5*ãÑM÷ùY­y\)+ëÁù{Ä[«ë@” -ÈÑèòVRÉ¥éúl%ÖžB=¯’Â} «[ý8¿(ÍÅsPÁ·Ž™»¢öðÑž¦Í7Ûš €´Íè¬ìa'›ý÷Û2ÔZpêÅ“Ì;;@±‡ÝœB‰7ÕYRcæIKq§â’»<þQuuÒ7èêDÊa‚f_+µú+õ‰-µÑKtŸÒ²«‡|Î?›Ø¼b3$'¡Ü'˜ªÅ<ó}ã<é›dÁ[¡öå§*jw†VÑ…[§ œf{åv¦{µ)Í:Íg³å‹ª‘]í«¥peì0ðtñõby³¨ä‡7W¶DË.|èle å™^Û\yëà»é¦V}j;!¶éöõÂB|a×1‚#³ïÌRÆ,èsÉD6VFð$Ôã[ žÌÎMã TÎ~)pü¹AÓm…Gç ]ëòßiדo„¢—½jQuLU{ô<Î[™à¢–ð(Ügœw×´Ò.,ɉ3lþÅðÅl‡]õ…Í«Ï{´[dWñ´ ñ÷ vØk?X5òf²a¸*š{¹­ÑŸWˆ4ÖdYÍѨÜñyÊkS½O~=‰»Þ~é™]¼eýde†r°íƒüÝZÈ´¤×}­ê]âkÕ‘ï/ÄÆyª\ëо(—í6‹JȤO_—‹=Џ/Ÿ1KÝš<®öÿ2ñº0^ÖxzX»„ÇM÷Ô0õ3d¬àžƒc¾”ÚmÇJwºl1SÖ¢ÂôÜ´’ïD¾æž– žò2OŸ°]é\wÀÞýÀdÂ(BÌMé˯µä£>¶‚×hí1W–›–Ï0ŒäÅ^ûè(˜”ÕGøEPõËðs>6Ì@åÐTˆf²ÕØ(ìZÓ¹‘ ÍÖ2b¨U»œ#ÏðÉ…ä${ë#ùÃyš˜gaU!­Ù€*÷I~Lâ&Ê”ÏB²ó‰ýÙA]ؘsdd/h=’józ ‚sŸS®/B½ÆqÄ7"—]Ö–^ý`ì¢.ø°è3ýF:Û°“oa÷¼ôãœsPE¼l 9±­É‹Ìf÷y°r¬:™O²ëÍXâÅ•©èl©ò±Xq½â&·¤FòÌnt꛵‹å { mÇ ŽêXëë)z Êè|hyÚÛ½ÅñÏ}‹a@ßõzªÏ›X•äQ#¡ÞŠÌý­Šª7ù#î@•n=‡B Æj_[lº„yú÷]¹÷í9_Ð>mrôEÑ5ZÆeÓ)ÓcLÔß°6¿áÀwP÷‹ùbùà^N{z}Úa> Ap41ÂæY;å@XñÁR¹Óæ¢ãSº°éIÇpû\#‰iþ/EÇÓÆã†V¤”Ël÷Y¬rª(Ã¥YW~dcªóªk>ÛøühÑLu¥5*g'0Ìòú‡<\Éñ5TO‰˜çŸü€ÍK®Ø°%9+.S‡Öô½ôܧ>Ñè°®¨ö|Ÿ€ùi€Îšëyém£ŒˆÏo0CCŸ%UÞ[»ÉoA»wþ‘EYÆÎÒwÚä%Šç{àD^.ï„¥õÖÿ±Ê®&‘hü´Ïç’ƒáüŽ:Æû^3Å…öH³çzúG‚Ó†'8IÒ娭¢–ã¬ÌÛ,uXq‡ft)Icûs{Ï/åÌ<æ\P‚Ï„]ÔÛåø_èTŒCŸ¨›3¹Þß<ðóÕcÒÆ§½½ÅÌÝäBÇŒR¿Ö8XH Ààè,†vz+’Í5…‡ØÐœ­:;T«H>óÕãbbcD Ë«"=gcùá¯zqPš(k é .è©à ‹“b ðŠÐ"¤nÅ>דo~šOh`€£\B¨ ;tÙæ»‰êÔΧg“³F%ž2ÈŽ“8• Ÿ4<ÿQ189K™Ñ˜n—›¼ îÈ¿7Å?ŽAíDíì8`¢ç:¹-G÷#çÐæÈ빪@ϲ>Èæ Áj«˜r~.£“äRÊ._Q#ÍKÂ!·E\Á#Ñì2»wž!BdÍÔÀ ÝíצKžxœg74,Qûøå*6¬K§ Ü.½-¸{Ó9Ü×­ÜW¨ÊÕéƒ@î­Ôý ZÖMvXe⟿~ ׫R5 ÏX}§Ñîé‚nw$m©3VšŠäHýr’Ã} \3—ïþÖa‡¯ç[7 hEmØÆc©(w·^L*”ºâßÈS¸Ñý‚´C;¹¥‚£µ(IμޱÏdD®Ön#ãDéW*ƒå?e«©Ç²'úóÊCêXœ¤¾»2Wë5?a°·¸ï)Ä]Á0§hZqb:M8;ìRèµÚ"j\+$0ŒzPÛ:ػھ{äÏuœTÐȈ­c9$²C UúNt¥¦Wm89.Ë•·ßGîmzñC¢Ç”Y— J{4nœ6]¢â‚íóLîðVp[N1÷PÜyå'(‰gàj^AÜëøgH;yZšÒ[é!+ô|œÀè…–%.`ŒìºÄ«!¸ÈÔaMêCß·æ¶FCfè{`ÝÎ~Ówº¢~ M…S¾†nƒcW:^û¼H2<í¥™f\Œ[Ðû@W#kðT/ý¢ø³´YÔõÐú§b”xIfžHËØØU{Ö~{ÜŽ«vGA£©ŠŠÚìµ}¡¦3XC6±ÌùÑäì" /vòXÌŸîÙ½ ºôTlhî’îùžnHqõq,“Áö©¥`¼†w¤×Ì…¼”Úç©éÆg=÷Ñ@ªå󽋸a {6SšÏÇÙHe“ÆyøZ7¹|XՙŀnˆCÁþzÖšK §f.)ÆvWµY}uǶ´ˆÌ†ù‡—o"QŠïè¢W…‡˜¾«0¿ø¬‘[­y§Ì¥°ãúŠnÉû^ñ²ÏP­OÁCf‡6Ö[î+š"Â…é¾W;]ú(8ñÌ GÍ áÜØÇάýƒksWóÛ=p÷ÍõڼЮ¤º§µDÝ¡„Îh6±Ïíe¼µ^Â"1H?a·¡`3;3e áSðÒö­aWN£‚lœ–®,_(Hà‹:¾±î¨hæˆÀ&Ûym²RãjVèuu¸”…Y­¦G1Bõ|£Éø¡ÜÀ԰ßCO¤FÇÌ 2!ÊrUX©°ú^è1Í`o|>Úg5V:z]›ÐšC1µÕâ»Ï%%@YælÍ÷Š¡)}—ãB¢niýÚ—±,M@*1ñ9¿joì‘ ³;lÝ>Á"OGæ–´/gå]e£=ýy©ãcH4Gs¶÷Ç•DåGS9æAvÚ;©g)Ãä-k?¾m&y^}5z*í»>P}­Ð mJ|¯¡5w­C— :¾^ÆÌ™MþÖc,ëÓñ}&»œåUØÛlz+ÇÞpÀýÎÕ7SdCî¤[þEßáŽ{›‘µï(žà*NÑm ›Ühƒ6B*,®ðö\}¬öÞaâ§Ø·î®'Üý‹9¡‰1*=}ˆp¿^þ&?}—à ?ž|H„Ð{¶†{– ø•äñw¾W½lÍUæxE‘ ^Ü%^&»d­ß</ÑÕ^îaßw ËJñ>gâpÛÔk/;-dÒ×{·Sfàô‰)åùºtŠ2S}ÚiáÃÆ0šNìRÙ*¢|]ÎŽí— âšq™eQ}¸äjØã?þÔ) Ük“œÉÑÿ †ôÆ+¡óîþÉ"—‰bjšá`Ía·î]ÐL1~åö›ˆÔzìÙrýòí0pкþØWM.;&Ñá°I3â¸LY´džäaØ÷òïÜÂl~«Ð—Ü&ÚGÆcš;ï ÕdŸ nåÒxºˆ2ôÃWË[mÒ"q)îÒÄ_µ¤kne/=¿ 9‰Ù8«Þ½òF{ñb¸d6«öÆVüc€ØNOðö®Y:i/ªüÏ·‚2rûð. l,ÐÍ™±HZhõB—õyìx»½†’¶Cx!CÍF°¨@ˆ0s›hêI½°ÄÊë‘éÛ“ÑUÒ/&ª¯uŒî jŒÃ$^å³g³©Ä1¯ÉÇwtÃ1.@ÚœŸeÙL*FGˆó»Püém×âO¶ õôyÓý«i#M‹ 4kŠì:¶7–ãêGdn,M7ë’Q‚±$0Ê øNÄèæÞ&åË^¡ÝШÖ<¶ïq/0ê³¼öê{ÉK£ðÊÂDÆkZÖ*ÅËyºT^b·ž!2½§RÐokwdÈ2ŽÖ`Cq<'×[9 Ujz°h ¯ÅÍÕÀçgÿÁ!Ù¶åî׊‡o ÁÙ® CAÑûæÓ~äÔ1¥¾ëf5Mìßæ> m¼ž^«ç S¨ÔÚ#z¹öuºlvŤ4U%xÿVòCØ¡?æ;ú^fKž‰Œ‰b2×]¦%A–¦ä®÷TÇséà§„ãjµsJ|÷wE…܃×Ï 9DÂÃ¶É /LéøÉÁ?ùíÇרZ Ô|û92’“éÊoc,YG$YaÑ*ñ*£X[xâ:3X9û6!jÃ%¯Â"ð&b¯ì ¹qW¬žµP㌈÷š¾nÞO/•Hj_ þÑbQW9¾"R˜c”iä(ëHÝp­/ w7šäÖßX¢”k~þ)—\ÁŽŒ]t2¶¬>5µÊj[ü‰Ïx”UXolùç4Mz#k`飿"Úv>£‹ÅºiÁB±ÏdÏ*>aQí¨7ƒ|%[#ø.âÄh¼×@ ˚Ƥ˻†ÅS!TýËýx%¡Š%|ôÜ_ÍïC÷%jW¡ÿŠÅÙ[ðRyVј˜¾bÖ¯16¯.qéˆ~͕֨ 9éVNUQI5° Nµ1œX0bcí×ôJ.|æò8ÌwÉ´©cÆn@!?YC‘©ý òhûAr}gÈÌ®¸YšÒ‚uk ŸÔ¥µ]%qŽ4ªìTKT ‡À®@‚³y·MËkžµº¹2NØ·Ê-’n0U½WÓ·"`?³7¬6`Ó8¼·b¿ý1Ï£’ÈaôvúXágqŒAPœpÚ©«ô[»U´¾¡ôÑa„¼®˜ÐÖÛU±åðaÖ˜9f‡lb¾ƒLý²®H;­—åW BwÛ{›¬ƒØ]ñrósÃY%©VÄ)$2ƒAPcÖwåáË;Ï,ej¹€4ß0£·X¥¿’ ˆ¦p:±É°øJÍÖ?}/µ4 q3Wá­ó¥€499®úÍtâÕ)}éÍ<³kôM{Q`î{Þ€œjr ý2T¬,О¦Ä˜J1HÆ«v+ýâY¦·ù©OºyC he2#Ç}h‡ôèš>6]*ÏñV)òeš[ ã|li8ÓŠœE¯‘ ¿vË"¾LØLo3™õ‘`Þ=LÇpµ^œ+c ²U£þˆd°óí$Lt]ÙN·Ç‰“¯’§ýÌ—Ì6…×m«+è”*ÚôaôÂ;5B9=æ&ƒL³ I«w”Œ¥ ¦†-Ú¾ûóE–ß™‘è,>j¨-È×ññ§±Öendstream endobj 580 0 obj << /Filter /FlateDecode /Length1 1512 /Length2 6767 /Length3 0 /Length 7791 >> stream xÚxTZÓ-¢Ò¤Jïé5zï½7)†$@ $HB‘^¤÷&Ò‹€ô®TéÒAz“"  þQï½ß¿÷Özoe­$gÏž93göœN6#SAe(ʦBbE„€2U}S+  ¢Dœœfp ö7NÄió@ÃQH™ÿÅPõ€1XL ŒÁõQH€Ž' ˆHȈHÊQ Púo"ÊC ö‚CúB†&âTE¹ûzÀœ1Ø}þ~ àðD¤¥%~»”Ý`p ÐcœanØ!`ÀÃ0¾ÿ Á#çŒÁ¸Ë {{{ ÝÐB('^€7ã 0¡a^0(àWɰì¯Ò„ˆ8fÎpôƒ)Êã ö€°!ÑXO$æÀî0ÕÖºÃÈz€¿ "$òO¸¿¼‚#;ƒ!”›;é G:áÀPCOダ‘Ð_D0Âúƒ½ÀpØKø: ¡l c+ü«>4ÄîŽA ¡áˆ_5 ÿ ƒ=fu$TåæCbÐD¿òSƒ{À Øs÷þ«¹®H”7Òÿï•# uüUÔÓ]Ø à ÓVû‹ƒ…ˆþƒ9Á0q ´„„¸öó8 ÿÚÀÌ×öÛøÆÖèïŽr8bË€ÂaØ"4Ø ÀxxÂýÿ·áß+"Á`Np$Ñ¢ca˜ãŸ5¶ÿp€ +?ð×ãŸw¶X…AQH„ïè¿[,l¨bfj¥ÃÿWÉÿUTP>AQi€ ´ """”þ;ŽþWÿËWéˆHÿI{N§ìõ—xþ^À¿c °Ê…xþ#ô{@q û$òÿ-÷ß.ÿ7•ÿŠòÿúg¤á‰@ü¶óü!üv°áû«\O v ôQØY@þ7õ.ìÏèêàpO·ÿ¶jcÀØiPF:a-("&ûƒÃÑpÔŽ8ÿQÍÜü×¼!àH˜ ÿuÃ`½€Àÿ²a‡ ⊽EÐXiþ6Á°3ôï}Õ‘ô×°‰ŠKÀ`_"l¯±+q€¿v*¡0Ÿßb !Q¬ [c ÀåAô«± @ë…òþÓ.¬í7,”;€=þDEÂN¿®8˜ì'¶[ÿ€a6ãXÐ ŽôDÿ‡†<¸;6ï6»c…€‚b/‘_q¡¿-ÿ*âéá5þÖ!¶ö¿×¿/Ì!šŸAAdÃ\^„uœ×*3z ®à--wE'ZõG‰c¸fŸú;ëágkN>P¹­¦Î0š+˜˜ `äÛ?õ¹÷*7x1]+ƒ£Þ¿ªr(XðæÛñ+' Åà4&™½JqdÌLvßæ† wÊÝ™‹pÉÐæó¢Ë.ô¦µô.À PrJΖΈ‰SÎëÚÅ}lÅÆ±Œ²ºGÛÃ&ÓÓLÛ|ì÷1<þL¥#–þ›ïªM|ÖÐǯsú3@G…º½5Õ”ôT~:lyÃɃôÔI¹:Íh.ñSÕò´Dvúb·®Åë÷%L´' ‚< Tƒo>|ÛäYŸ‘ÏëYüÔŸB•–Yéá¾oŠÅ ²Û§;¿—$"j›&üôLEÂÁâ>ìx÷ý…\€’“ÒHûº›Ë²çð¡¯Ïúá•–¬)È“­–×C=‘‡(Ž}fêÉàDËÎìݾ¤fmñÓw|ê˜:ÝYT·=oB^ÂTI~Þ £ö.MYk%é¹qö YŬ™Þ&N¦¡•L¸ò£)rRJ×ýræçï«$Þ>•i‘O“z|øaüðššñçòºÕ[Æ=ßnÚ%:x ‹ØéæwY;ß/5àÖÁˆ%›v/¶T¬&ƒ%góU®Ìƒì)ËÞËwŒûÿuó¤ñ ßR¹>ÊÚ=´jÿì-s§õ@ZßOoR: iÊ ²‡#*›ÄÛT?PG›Û €õ:NZ [J¼öUFu×í?ÜÝ´½û€Q-D¿/ÊJl©ô8¢…¢Ð*aúm¡¥‘ú¡Þ¥èª½hë­êÖr”Vš?‘­Ï$=Õ›îîOú€vÉùé÷»¬Ì&Ùê©G%{Y­ S¸'?¸RW3¬?iîéQàš8‹?YbÞ627Ò®wô×-A3„ïXÕtì öz•0fSÐúcŽ¥EÓ°@i7K+4"å¶Ü¢w¼Î³áA^IÓ ìÎæ¥úŠ'õ»ŠË)î|3a’^¤³´òŒDЫšd)JEÉâv‡ ´h³õz)Ƕƒ¯qIdh«!oXIPrjc’“4œ0L“¸è{²‰ß3ÊãcÇmÿÈq; 5ç…¹µBÿ¬¬•´á™Àï/æóТŽÜªÇ¾‹+µöƒÏ§ž+ÙBX¤Rê ’¸Cé7®éF]ˆ¹ÊÓî]U*͘’ËPêi7\qßeñ‘J<¸nóž ïóÙ÷æÑ¹­©{¨ö»YŽf®Øõã#[ )DZÂZ3º•+,ì•pâÊŠo6›Ùzß#0É1îrÕþüxý2Mp§){lÂVÚ…§Ži4‘²øQ–„Š<ŇB/ä‡,³U‚ꬄº±öð‰³rJ[a¼Á @ÿ¨‰7JùSéü™²á¤×.Ë!àQw䛫 SŸ¦ý+H ÊCpœ9Ñß*¶ó8­³ËE4!këUï×FC»ÁåÙ¶'[ŠÓĸ{G˜DJ¦3¹DÒOÃ(¯ûR<“í·õÒ‰¦»ëF{lÆîg„¯ÏZ=$Î:^É×[§ou¬yͱH»ûRÄÓ4j%ûºË2¨½™]¤¸Ðï‰äŽËš„ÙV}ÌqðÓTUdç €},öfÛªK‘ˆ.61ÚâØhn•ùÙùŽ÷Mg¼ú¹­b(wUïz7£`kñkQaÆ~ç—øÀÈùnÆØ¹Zb·áðë †¾B=R©±—'óqáãÆ1ÕÝßVµBã꺡ŸÛxß3TÎÔM—˜w‚?‚÷FŠGªQGR ýºÞÆNãÜsùDì(IC„fb¢žŒöìÖëYD?>:WÜWÈ24á:ÓäÈsÞ/L…f{8%§PÝüB×ÊÊ·1.ƒ* ‘@?Ú ÍçÌˬ¢›vÁåw·9ý¦èt^´ÎY1ö€0Ú¾À¾®gB7¦îD÷Û¤Ü)bU»£þ.$ÙݽFƒ¯²ìkÝb¦×‡át)‰¼UD1yÝQ:”¯†ñ³¥Ì×®M…ÁŽl¾‘E=fGÜ‘8ê^éd.p²‹,?³?u;0’wü½r²So­.ßN°¥nî‹&n¿yëã·ÊÌïy ‘û§c·ê§Í:R)z³?è.‘êìmÛ©ÁË.mJeÐrOZD{ؾP-šG~ÈÁI¿ƒ÷MÜ"l×qÂ"f~'wåGµ¯ä\*EÅ)Tß„Hæ|&N>H¯i̘c"ÚÖ(cd|Ó: ,Lǘä.·Åà ±3yÈè»I=…­Í¸¹íëD¢”jëVÒƒÚî(OJWŒ©·»UX,NrJ«¶Ñ$ºÈ=¶UTn=ñ÷¾YcO&:+ÖØwšê®{¢’µµ–óY¹¬òörçƒc‡Ãd¬K/'ÄñcX"‹Ç÷Ež9Ò½#¬:˜1íÏ—8Yí¸ÉôÔ£¨Ô&éã+¯ûŸˆ;ë~ÄÑžtùœirüÌg +Þ ,h½õ6µ¹Œva¬Kc$+R[—"OWýÊ‘ö+ßpg…žð¦7^_´‰TÒüüãl?HK§R¯—¶[FÞÇg –l¯ÝÒ`_†”F4¤w²OZ¨jm?‘zçJ;tSÎ÷<×À“œŠ¿S\ÖÙ/T2p€‹1h(î‹Bˆ¾ oqUÖ¶ä¥Õ?' j2-Üøi•>ld‰ÃÃËJ˜æ*㳋gLâ¾€(á­Ð]p5¿ [í/Ê8ëb™`Ø«½ýsg¾‚?BZý¨I®à¡/·Ûg´\–ùv°´;›}n©qÇû¯kÜ%9š Ë73HqûËF^ºØ6ÜFƒ,t üçÕöÉœ‡_ët@’0Çù? u°âQ`Ÿ—âÛzÜõfĵÌtŽZ‰9ÇY<:ŽÖZí!IPó^i=·-zDÜɘH½ }ꯞL=TÜûØ;xž~9‹BˆƒÚbyÓ™“{êçÊáêÊa+¶[C}ãâØR𽆼]õÆÝt¥£áã '§î¬ãš§)ÆYÑ7–˨…ݯ5?e2KyÐ¥1!uÃþjZ™"¹¹Kiüÿg¡›n¼?—Ÿ¬Ütw^°ÛѪ \òíMÃnî³/Ü|4—,™]Caä§c]„ ËEÝèyó†ÇOZköÒ–W Ï}ïð¬ÖÜç|ï_ÁH^ÊÖaÌ’+ äB/ù´ž8nªTòWM{<>P_:°ÁL¼w2ÔeŠ3~Æñã…<çÙ\ŨÂKn ª`H'Ý™fšÆáäÓÔbêeÈÚ.ΓU…>[μùÆÃ½“¾V„Êå2_ƒ‚¼; ŽfƤíirŸ­¨ÞKosç½QÍ{Šw•kÏšMQÈ[7ÍÓú=§¸ñ–¾~Qc}Ƀ/®¦š¡3Õ¥uN“ž5ºÞÛÌÈÓ?‰ÝÑ6V{n”÷˜_ðIuyùãŒ:¯æçFìíº£ü•“V]0IJE`%OÚ)ÊȘ­× ëäŠ/ýê6•¶`b,âþó¯û²÷§©77”Ç ´dž?]¶ÒbvIi\i×ôoñ4±³šÈ¦' zÊ¡Qö.]KmþÈ‚AÑýßw"£•Êh‘SC¾=¤gp@%ïtþ´@SwÎȹþ¡AƒMË í!û¨Gª‡f4~‹“Ž„›„rS驱Á×î‹a?•ÕEft¸;.—?rÜ4!Ä# Át¯ìÅŠ¨«c!øå©# zD¾Ópäµ¼Ó}¤ûá®®þÔ"Hq6!®\ÿÈö›Ì]zY* /ÖÄpòÌ›–+²7ÃTX“ £K-)„Œ–µeóÙÌŠ¢B·šÑ4Ÿ¯ŸšÛ®=M–Ÿ°Œ¹ºu™,Þð2æ‘Ç#}Œ‚¯|Mßj°ƒêõ®‡v$˜~FeºwÓyIÚÅñµ{'gsùo˜ô‚qwC ŒR¸$12ÜSOM?Y]'±÷Çq,²Íž¼ìÛõ²ßLÓÒ{¼:‡/¾ª>¬WìÖ mNÖ`—0ª*lâážð/èO…éÙ‡¦*'äwƒ¿ ·÷B}P:¶Ë³lo½/$ ? >Î{„Ù§8,´X.¯ç¯¢(n®ª~yÁ,SoŽÉ~>S>໹>Ô—‚o–«*~¡éá´bŽ×G.þ–#!2#–+ 6¡±;†àaÚGÍŠµ9©¼Œ’‚<}¯õ%ZLièê€äËX!òË^Ží¨m¿1îÛ»tá†sI Qn¤B±Ïâ« MlºhÇ3Qr.w6®¸C6û:Dª)çH_ʲ’†ßÓz™á‘™ƒ%Ô)ž†G¬RZg‰±èF9EÞ(ïß*ê)ß$£TŠÍ5«JLsƒOÙ9tîë~*|½zä©‘›MxÌõè²OJZèr¦´}ÓÁK¤ÞͯHüF¼$Š !}bÙj¤0Žt:!ÔÖØ”QìÁ¤Î%♚ŽBH]DUÝlŠ?UJ*»ÞýîZ\XÞ‰;lYÃúbŸ¹„&—ŒºGμôŬÁ)=Ôåz–D©@œu‡‘áKú†Û2 J-ͯ.Ywh°†G•òï·=Šuk}"Ikà y^ûl•[ úPOdûuŽæ%íÒŸùö†x°«ûïˆX39^.Ý ”¦6î+^ׯ‡=ÊSœ{5øfg²¶ñ ùgçµë¶1%‡Ý„—Ûí;•ö;¢rç#éü7È?c˜z*jmÆrë¢èu ®Ê •Š8õ“´C·I0%s^x¡Ó÷Z…V'zô-4¨‡€â?Gù]µ×EïJ+8¦–7ÈÇÏûšN@˜È¦ÊŸm.%½ì¥ 'û‰3Dùƒol¨§ôbœóqã­nS×óΡÄ%]©—®Rîpák%ßèò 8A× }öеòä4t)V×"çnŽì9—Þjµ–§ ÇqXœp6¼k};ôú¨wsíÙ|ÙÚ‚·Áú“z0¢B&šãÜP|Éh-Ì»×~À#ëÎ.5ä™ÊqÕDïM«ï¯Æ~û²{ÿöA©{r¦ËR™¶­jºî¥êuaïÚ'nTø• C¦ï8žÿ`™PÕ;) m‡7•Ê#ߤB n|èô\Û¹‡Ó3‚»ÁžtÆí¹?@ͦðôØGÛÛñÌnúy*ït– ³aBk­áÌwQr“²ž2Ÿ×[»¬QÆý'Þ*NãI+—¦—íy9쳈‡ÃS?ÙÖºLmßé{ê³7_ ïD»{”¹ê7+á)õÀ¸^>¥e"z‡¢1¦g}œÌÁ{¼[Âî&ƒç‹ó/+ØéD=‰2ÕaÉâçü}óµèRë#nªºÖÒ¯™Ÿ6¢Œ_0œÖš"nç»ôŸéüð½èqÈ­<ä¢Ôõ»g@U¶y±zF£¾ƒ/° ³¤×§EQòR ë@->ÉL2˜Ï‹N´(¼‰š}ÂNÖm|·íi¨áå׉$1>C¿mB–cHj¥×ÅÒÂÜÜeÂçù]ÉÛ©VtY §ç¯w”Å‘CÚK1i¹Šoc²–IlÁh¡á+Õév\R íÂ¥V¸¦8Ð'Æì MaJÏõ-·Š`;¸îÑõ©R§”EëQÒÍà\ƒê{ÝŠvbÜû¹[åoÚÇX_rËèNÞ÷v‡Œ™Q¦'°-|°ÿI|ª•ÉX{Ó÷1&"éøŠÙ?½Ÿæ}à•V·›5•ú)qqGr¨²k))ß8o°¹kÞ®°kmXTÊò4,&ÚÕ˜î†@ˆ8Ø+3oR:³è{¨p3Ü{r½~„Šó­DÏÚ ÐV/¾rˆí ~³ž£èŠ—û¥ç8CqÈ%²U½Ï)†Y¯ S•Õý6µ<8Ê¡<mg¯ùðü¢0p®ëÄøÓQ9m\•3W•±þSâf6µ¼Ìªg$ò˜¹Bd0ø1eã õŒz‡Jz7BïêIÑÄ~²âª‘k3Ú<]õë]kÞ6‹ð¼x®dÀsí©+ÍC1§¥c'Ž…0O΀Xe߉‘Ìšðvž<¦âYM/ïYtŒ÷lº4‘›í÷•1>a²ŽhÓo¹yI–E¿´Ùö±Òs`…ìÓßTÚð“bËžÑãk°ŽlNäç!#Ü»¤ð£4b« ¥þR²­!ùu›?‰Öúe´¨««’\YlQ½ë¨úßz­(Æáv¨(è‹™Êÿ­Næ©vÕ¨‰Åj»ÙÙšág{ÓÕ0æïÑ¢ÓCwjÂ¥–­í“ªLc(bÝM£0åz;âZÅŠ}O˜ö×a?Ç0ô]Ö-Á'’qf7ÓNiÚ¾Æíò–O ƒÜh<£¨ŒßÑ[þøv}¢} #u1c‘ùPý6aÎÀ‹-Ú(«ô­ØV;}Ö j+yÃñi»˜I™sů£ÆÜÒ î‚ (;}'µË•²iÙÞ â9nj˴»Í|yeùg ÞÜ×÷ê£iyf3Ó­ªc<‘­ÅOaù/î¹ÑÉY)ª…l°íU‹ÖÐ[}ëË­¤Z ‡–2R»…é÷‰s=Ë|²FÓS뇷<ÍðnMr ¤t}2Ü¢¾í Ä+[z¨šöc¯Æáß´FÚ4篑qÿ¡‹á‘Ì!ÅYÂÑ*ÃXQ©UA–ºëÔúáÇQP§î‹¬‡ÞnîwZ£ãÅÙ¾ø«ÛÝA®í:(˜÷ “ø _xfûÓ‹ùfðÖ™6‘÷â?[ƒP" I¤¶÷ª¯ír€Eã-Nk'»®ñ]M.‰ê&ÎÈm­Æ`>\½àö>bY|r7Ðr¡÷˜ãG¦fu ŽmGíä†ÿÔÇ\MªŒ®©#GJs?i&ƒ«V7+Ã\Œ¥!ZmSáÛgªïN¬Ìo]ÖàW>.†[M‹1jñ[,EÝ&ÝÇOÁ§Ð³¡êŽÒ\¨­ëR›Ø åe 4^ ¬‘»w¾PL/2'¦ŽÄSašÙèà¸ÉõÃÅÔœŒÉIçåM6j®{#Mbâ1·Ácê÷•FM?w|Ÿ}}e}î=Yg_à I&ª[•ÛNVyí³ßáb芃—¶nŸþdŽQk¾Ã›˜óV›‚§8²F½4üHe,ͤ¦tÒæÀ{[‹Ÿ‚N•ÿçßc¥éÀäŒHº÷D]E?,‰Ÿü¾—Èendstream endobj 581 0 obj << /Type /ObjStm /Length 1388 /Filter /FlateDecode /N 88 /First 767 >> stream xœXÁŽ5½ó>¦9ÌÚåªr[Š"!ˆB9P ™ ‘6»Qv‚àïyÕÓ³[=éuXÙ[]ýüÞsÙc·Œ”r’±¦j §VÐH*µ¢ÕTÆmKT¬IGÛS­’¤çÄYÑ–ÄÕZJÜZ¼+øëœ4¶KRƒïšÔð{K-oL 9Ò{é”;*rrIF´”º½›k*y 0:j0,Ù: XØ: Ñ:c*4%wt,¹dȱäRÐᎡöZ€Ìµ dn„a-@«äI,( Z€¬ª䆰¬QòJ@È^@& w„•€ÜÈ_3¤(èRf SGv›]TLÈQQ WJD¢˜"retà¹b.¨"lä¨6 W s1ÛÌä d†ñÊ@„äHÈ&EȪ@f 7¸¯ ä†ÿ䨡.óF#(L§Q ÈÝì w³䨛½B(+³W¬¾Ì^Z‹Ù+‚ŽÙ rµ˜½ÒR{tFtŒ* ­l9šSµi4rµÙ  äÉL­¨ÁÑqb²ÙQA5v{¤ oƒ^à†9WTx®0”»–¯ž>MWߥ'÷û?‡»Û]ÒÕ/éꇻWwéÙ³ùéï¨ ¬‘ŸÓÕë_KCv+æöÓÍMzsNüë‚Ny/öÿ§Õ2ý÷òúãþö8é›þu8Þì§EfÿÚÛïöïÞåÌ=gÝçܨ EL­/hë)®}ŽïŸ]r§÷ZòNÛwõÜ;­sùqÿ÷´M,”ôK%Æ´ÌŒÑBLnyV%§þôœ\Þ¶²º®¬ÒBÖûŽuE Ñ+Ó/*ÊPEÊŒ½Ÿ‹·!¼®€— ¸¶]Åjù\;¶K~AÁyæÎ Ú…qó gÖÿ_]²®@»,$”¦;+¥Ï%l,†™´zÒ¶ÿ_Ø^gboçâGKFÛ\dtŠÙéÖ>R}ùþp±5-Tœ”’ZË;TöRÉ”WƒyË«9˜GÁ¼è¸cPG‰&RP QP Gƒ¢ídœåp9Dë¡J4±E{0‘£b8j8G ç¨á­‰VDÅHÔp‰®QÃ5¼›D × áÚ‚õhGÝXâE£ˆ=ŠØƒˆ-[úØJp®[t#]&âWUe×Êj&EÕD·³Vƒ‹¦EgZô‡¦qpa·è.Õ$hO‰þ¸–¨êÂÁ­b™ˆSàØw¸T^d~{÷ Ç&±óËÇûããüùõ½;¾ú÷Ã>]ýôéxs¸Ýߟß}~x8Þc¨'®ÿÚï(çNu8 ½¸~¿_>¶»–Α2Lwg¡aºD»H¦Û´‹ð0]«]D†é~m‘7[äôL®æ5r:L7sÚ†éŠî"ã0ÝÕ]¤Ó¥ý1bl³gk£é|~ÙâVË7]áf•¼MÕl"oSµi1°ÙDÞ¦j6Íëúq8O8›äÚ™—5rfy›ªÙDÞ¦j6‘·É¸eÏͦê‹ÃFÓysÙâÆôÀ­­p³ÇZ½Ml6Uo•º b6Uo›MÕ‡ §óij“Üx&'´FÎlªÞ&6›ª·É˜dÏDÌ&ö6‰Ùľ8l4w¼-nR¸+Üì±}´q f/¨9ö¦ˆÙľÄlb¯Ñ†ÓycÚ$×Ïä´®‘3›Ä{`ãfÏDÍ&ñ¦¨Ù$¾Ôl¯ÑFÓùh·ÅMáÃùîúõnm^-CÅ;e&do‹y½+¦(Ïÿ>M,_'Ò› Ö}nòlÏÑ¥ØÇYnà2 ü7û »ˆñ0}z]Äd˜>·.ˆýxxkcê|¸µ¯m§¶Ì-ÍmÛ³÷Û›÷©\/ðUæ÷unÛÎTY c€ôc'/endstream endobj 670 0 obj << /Length 351 /Filter /FlateDecode >> stream xœ…Smnƒ0 ½JN0áé1¦] ¢ý1i¢RÕi;þ‚?À¤ µÉÃö³ýl¦Ç<=ž·ë<Ý/߯Çóóúõöºÿnà}þ¹@‚®$HœºúOõWÀõ©€ ˆ¥ È=GÃÐÆ À ¤ÉÁ á½Ü‘ÌIÜJˆ@!4X¢¸0Š#+€ ޵è”Q)°RöZ0íɱˆCªR>¯ųžyDŽ޴ºcÔƒOg ùɤ&ÑX¥Bn)=G‘÷–9-¹P].õÑîÁNu7I s¬Úà†]°ܟܟl ,ß6t/ k1D¨µfyÆ•ÜO¶žVnóáø'ƒ ¦ ÜŠ «_ìmñýtÃê¡vjÖ~<¶a ÿ ‹Ã%ÿˆl3CþØëfg¾ ’ÊŒ­ï§~‡FïaCà ¶½‚Æ '5ÑgŒÇY’}Ñž×÷¬‹*s¯·?v9×}endstream endobj 671 0 obj << /Type /ObjStm /Length 1851 /Filter /FlateDecode /N 88 /First 779 >> stream xœÕZ[o9~çWœGxÀññÝ+„DÛ-T KUv%´¡™BviÂæ‚Ø¿ßqfÚ4Mh¦ÓPEì9cûÜ?{Ѧ-%iãÑz²6¡ ä‚AÉgF Z–÷™’s²ÆsbÊ&¢5ÄZKdz—ŽØjLMžØÙŒN öQ(‘8”1‰8ú€N&N˜²&Î0圄«!£ƒt,DdÌÊÕúX2^˜æ@&‹É”s"“Ë™L†&Qk²|"d²…bÈŒ‰Ú¢“„â } 3¸`Ñ d}ˆèD²‘åU"›°FÔ™l†Í"kr:`efr KÊ8g BdKΕ1Žœ×BñèX0e±0K'’‹^Æ$r þˆœÉe¨&o,˜&o=XÀö+¢cÑ àeyÐñäƒð2|42ÎK°F4 ^´BÉè ‚vÒ?œ#؃壅,VÖQp¢©…£=L-,ë³¼‚ÑÅÆ±Ä ü‹ƒá´èŠA1XVç$Wf9+GÄõð`tDj„»£5E¡à!‹Êÿ²¬ã5BU{¦Ä21”Œ öˆâbïÐ)ƒ=%W‚ ÀüRðBI”ŠÁ1!e“¸<âáõލwRÎ@µÎ)ÉNËV8ÞzVæµÆ+Õ1þÍüý¬Èñr8ú§‘éÙh4ž5ŽG³"Ó!œk:‘>b®îzIƦ¬iúÈÄOÝGš/ú¢Ãñd|ú¦ {LJàZ}A˜ÆÂ]¬%#SDGQ@MÈ˲ä«j0ìï¿Ö–ðÙ+ðIŽ’SŽû0û ù]O8©¦ãùDü  UH mûª­•E(úµÊn£`ïÏ×ïÿׇ£s (ÔÍœZ€ E³æ;P4lRtRõgÃñè ?«èáÁ/F§Dc«õ£zÀxBOððj<Ø8ºæ§•Œ$§œbÐÞgŸ*!<Ÿô?žNéõ|öy>{Ô°—¬)¶î½¨>}©fÃÓþR*ÈîPäþ½¹ÍRœŠ*ÜhT–À’°óÑþ¾,:€áÌ"jî%=]‡ôd”øÔZY´Œ4M€/àªÛ*=/ªþ¦ƒPØLÔÊ ŒÊ#´L²ŠãwƒËiÇÖ½s0I‹°BcT²¶Ýs-m*¶ éÜfðw øí@‚· ÞHäN ~ð ^N(:‘Ù(‡:×9IK×#jy|yB* å8C€R‡Ðr–£°Þ5>ÈY éËqà&ܸVä+ò:¬ˆÝS.·ÁŠÍŠÞ¦èðÐàbÎuâ€Dz(È'õ_l ¥w«h›½òŠ•ÍX9nk娥  ؘ µñII‘f°yëJk¹‹‘;"q€í /=¯1ºënô:ÕÛV{ß7›]ÿVÕ^=ù~ª½Ô\ˆòÎ:œ¶€6e%{õNÅ|÷ÑÚ;,׎¹eèF˜4l ]^‡-«¦µ¡»/ö?ö'"ù´ÜÍ•A—‘ãU‡“éLF ZŒ´·ÄÒcÃI'È›WýÙdX„Ta튰Ë}Œ{Ù¯—c„W—0ç’È"ÛªEÎ!ø^ÁÙ•¶Wb‘9˜}œ–ûÇ…¥‚,5-«›«Yšî· Ù>Þ„Ë+ñ~ÛFwm³±âøÁž;8Üð½—·,†–œÝ²ð‘ï#«Î¶›÷à•’|f)' ëê6Ôm}2r¦n]‹Ò®LÓòm­iìýŒ¯+в¾Z«€ÿž ´¼\«ÀÖUyîRèè¤Ì,$B½ÃA´.Ô9[Þ"­Êúã=›ÁæÎÆ(†­pdPÚYbÊt¼«{­]YÉwÔèëÅ— ÝÃÂñýÅõÊî‹#Kn¬stžñ°ùË´¼ÀZ«êF ú±÷b×r/ÞöjieÝvWKv—WK?¶?¼Û?VÖmé]Ö\—yhÛ–I>¬æ!£&.e’»,“übããš-×e»‹[”Ê¢w”¬*2ÜüçåBIÚ ÊGzùòa.Þ£ä¿ÖÔï4̦°}8„T®­~Õ¬ríã'Á h>¨Î°Á‰}ùem–ɶ±+a§Z"ûBöòEy‰ ܹþ-ŸŽ–_ºB^üúÍ.-Räf/+Ìs]Œ.xæ¦â)¬rmùËÜ…S®‹ÖÇ\ïXEùìšÿñàX¿Ñ+endstream endobj 760 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-fig7do.pdf) /PTEX.InfoDict 125 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 128 0 R >> /ExtGState << >> /Font << /F2 126 0 R /F3 127 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 14356 >> stream xœ½ÝOìÜqðýý³”óü?g‘8‰I$$ /dÅB$ÜW‚%A¾}XUO±ÉsNÕ¼w|o~Ÿ.{¦»‡Í&ùÔC†·¿{ oxûç/ÿõíŸßRí-ÖüžÛ[/ïG ±¿—úöçzûoüòWùoÿþ¯ßþæW_Ž÷ã8ÞîÿýÕßüç/á½oÿçËßÿÃÛñö¿¾„·¿;ÿï_-ðöŸ¾äøâùÓÇ{Lo?=ùuÃ~ìx>Aæ( ÛñÞ±Ð/\Þs!¶÷WÆ÷x˱ãà…ûûW¦÷:„q¬<ßÍ,ìqey¼ðxÏuÇA —ã½›AžÆÄúÞal+ý&?‰]Þö’ÞÓá±Æ•ƒÞî“ù½Œ[bá;ûñ^ø%”÷˜=¦æ±E›•ß›±® ï‰_àù&ŕ犄%{l[Žl+±"•ΫèLþ”2ÓðH+’Í2lŽ÷PWZ˜±¬<ßÐ*,mÇòŸÛd³Y÷ØW¶÷ òšØeõ>ÙúÊ!/¡y’&ëðØÒÂqÐ6”y>Y‡cK^jäÍZm&zûò“cÒjf¤ >3%x<7E Ó{à°™ùj3%ô‘´Y‡ÇæP6A3ùÉ «Ç´a¡“°y¤ ÅÌócE¨Zis²áàð˜¢ÇÚW6úfò*:±Ëª6Z‘öಯ<7ü‹º¬f¦ã ÿÇlue •€ÙóÊ(sb[™èÏÌae¦ ñÉóéä•çnG뎃þ çNÊ‘<†î±ºye¥7ôd Ù!ÿ¨‰ü§:ß°²Ëfädª+‡lOž»]ù­³Ù\Ž…çÎg¡©ñ¦oṉ/ÂVFÚùcž›Ü…I¾DNŽ´2ˆâÜÝ;†ÇÜWò&€YÃÊ*«èIZg6ÚˆŸ,ô?/ìô%Íä_4qÐËfÒgbä•I+’ñ2ÈæëÜ ¥UÅaõ‚Gz6«Ïá±§•çŽ\ËÊ$»ñ'Ï“M^þÄŒ·½Ñca‘í“£®¬²ûAì+Û{âÕy%œÙéƒÊŒÝcÉ+‡lT›lr'¦ƒV/&m6gꇮóÇa·9hcã>›Çé1£ldÎ…óðÁaìϹ0ÑnÇI^ÝÒê=3ËàÉ\=¶¶²ÒJÀ<¿Ò6ÙPÐáK·™èÞaIkYÙå ý$}èfò-s8<7ªÇÂ|ÐUØ<ž‡ £Ôœ<L–-“잇/Å%­„}èfzC™´"Ùä§a°ó&hf‘ݼ“Á%­„3›ÔœFaÃ._m'S\‰¯ò“åðH+°Áóà†ß“íXXúÒ:éÔ…CÚ)²˜ø­³I_eµYâÊs7« ›Ãó‹>Ù¬¼a´(«™Í”]–•‰Nc1ùiL,²Stò< wH_1ÏU´xÌÑæàäÌF›xf=VvÚ±`v›á’Ί–û#óÏ}äy z~Vo¬?÷‘çêw~Ênì?÷‘ô¥Ó–¯‡†ë•jæ(© "È„¬ƒþ:ó¼-×`ð¶Àà5ôZ@x[€Î£¯ÀûçÁÇy@z- ¼/p~¡žßã×Âûò´¯n¯âþ½Þ˜óz·Î£ñRÏ×Åß¹¼½o×#ïÁtUð=|ãƒéÄYÖo×CïÁçQì¹G'Nßú`‰÷äÁÛõØ{ð¹Õ8¿ÄäÁe^©ä3n@3 ×Í›:Ñ^9}⯧üßo¼…ů •Wáó˜è%ÄáÿÚ Ÿ‚Žr.å|ÿ‹ÿùËóo¿ø§ßüù/o¿ûóŸ~zûÿñ¿¿ýþ¿ûåù÷9ÿçßþËïÿôÇ_þÃÛ¯ÿîg½EýçJôý—?ÿéó¿ÿúûù¿úN}kì_#ýì×ÿÅþ|¦ùûßÙ9ªxÅþÇ=çŸ$éÕœ¢lCn±ÿDNÔ5矈£sÍùrz©9ÿÄ,ç94ç7ˆœb‘,Hsþ…ÄôÁƒUvÈ4ç7Y㎉œbÓDì?±K6‚œß&%c6[´)9¿MÊëVòYäü3‡üA‘óÛl[Þsþ‰t&V3Íù'I™4ç7™«Ç2l"ç_ØÆsÎ?1Ò¯åü“ì(kÎo²ÙÔœa-o¯œb–ôCsþ…ƒr~“uxäØb¡qåü6džUvò‘óÛ¬Õ¦äü+{{»rþ™MÎù!ç·I¬MÊùgvI0ó[”œß&åü6sôX‡Çæ“G ežBr~›iCÍ®1µd’烞|žè•óO 2i¥9¿IÎùMrο°Ýsþ‰‰:r~“=¸ì+uÄþ eæ”ia¾fz^Yî9ÿBL-Iο!§.’ó/l²¹–œa§UDs~‡¡{¬.yÖf"¦ð$çwXû޳/Îù'Ò´Eo¯œbÍùMÖì²¹+#^‚äü+yê9ÿÌtMÐYÙ™y»¤L3Ë{à_$9¿ÍÜw”i ÉùgV9‹œ&v¨óÏìxs$çŸ9ä+9ÿÊŽ)€‘]Ž…¿†¯œßaõ‚Gžk0Y}=­ÄÔ0rþ™Ó’ó[”œ&NÆ"ç_94ɯ+3=¹+çŸYd– 9ÿÌ*3zÈùm–¼²É,3rþ™¾Z®œ¦N—HÎï°Û”œß&OÄØl§_ćüQóÛŒÝ#”Ï ÈE%ç·‰©–£œ¶@Îo“2„™I6ŒÈùWòj†œß¢äü6)ç·YËÊLo÷•óÏ,‡CIMg6¼@ÉùmRÎ?³Ë†9¿Å²åCKäü6i%´(‰ëÄtÈD9r~›ô4,JÎ?3Hü€œßfJ+#f$矙ä rþ™YæƒóÛÄËŽÈùm¶ce¡/Ú+ç·I9¿EÉùmÒׄE ª˜¤œf•i äü%ç·(9¿E¬f&SvYVvÙíAÎ?sHhŒœß&O–”œß&¥Í%矘¼ÉùgFYù‘óÔ˜ßuÛ8É.ˆÆüž)æ_\4†–˜q•ó/Äü®ûÆCVYù]ß-z–ÔÅ3Åð¶%æŸ]‚ÌIjÌï™~ÞâôŒù=óÏ›e.Fc~Ûó{¦}öÅU4æ÷̃9Ž)æ·-1ÿâ.”ó{¦#!Û²Çãy¸–˜v r ]cþżØ+æ·-1ÿâ"§S4æ_Œ¶Òw ¥’„FáHñÄ¥ÑËÊï‰s,õ·¿|‹ÇÛ/~óÛùÓŸßþíÛq%Pô„µÖ~\k4œ{A÷üèé¯[ß#¤›eØ©×GwT­mÑÐÇ£=z‡za„Gô2£ä{ƒôæ!ËÇG‡ô2Ú}ä{‹ô2z£ä{ô²‹Œôh’Þée–9}o”^ÆðJ ½€Ãw[y=’V,HµYz7hñúp~+k™Ô²ÖI-·h;ÇU)µ¬Ó‡ƒœÌRPZå[•Œb©é¶7GŒì¶q’aÃx~kkÛôatTÈZ0µ¬SËexNWëôa¬ÏdôNgóç™ÌùÍì*[u2ʦ¦›ë¬ýÓ§›þ=³6PŸÆé2:¨OÙ ŽGÑÚ©iOM£‰:»¸WßcãÁ§™ÉU ¨¦kõÜ´“útƒ12Z©Oã’Œ"ªiTQM£›útÒ÷«iÕp×BªiTRM£”jºßÍõЦêìÕÕwÚ9Ófn¾[޸ȩÃI«fW‰ŒÙÃ7Šª¦Ñ\}ºÉ÷ ÝÕ§þÇ´®j…UÛóòbù&âV7Öõ-Êöx1®µÀN¸{Nœ’y¦Ï“ëæ{þ}C‘&¯'KZæ8vßœ˜ÍÖïËX$3sœÒêtÈñ,9Wßœ4ÌØŸE*³³Ñóç6tÏMj³ŽKò]ËÆéåž6Î/×]r‰Ùåææ»Æ1Ð@ælÊôØ»ÁéøŽ{óŒ¬h6®H¥ i™›Y,}vøÀ)­ÎŽGS’jíì€ý%JÛâÆQ†ÈåðÝšç"[ÇíØ8ɸKL|2ÓuížežÂs/že}öLÉÛâŒýáÓÍõà³æ¦)[ÊžƒÖ½M§üËÆç‹Nóó™Ýd‚LIœgú>³%µrÌ©é$‰ÜìŽýEŠ¿Ž‡Œö“»ë,©œç¶ºà|qÌEJÆŽ)•[äJKdÚ^/ÖãùÌõX±?t:}ä¾qÑ×Ó´m{ønÑ3ÏÒºîÕóTnvÅö$Ë$€gþy³;öÏ?L̾[Ûxà|U9$•3TÊ1§r“ë!…ŠXøR3®éóê¹ωS¹ÅŸ·Â®éxͶìOy®eÆ`qÂ÷aéšÊ=]p¾§È,—išðOWÏÕ,©Üì.W‡úåÜ+ÒBe•žâÔÎQß‹¯£? ºêÛ"tîë^ÑUß9î%]õ}‘”5]õ}‘Ü=]õ}‘Ç‹|½èï×Ó =}¶¨hüsM]>?ü¹ª.²«K{…Ÿ,ëÒÖ*ë^Y/ʸð½èº,Òú\ØÕE´±«‹Ü*»úƒµ³‹Eî¥]]D[»ºÈ­¶«‹hoW¹wŸ¯àµÈ·TwÕ?ÝÝÕG®¼‹G²½«þ\}Wý¹þ®>z[à}ütneû£Á _•]ý3ÎÞç„Ä(ñÒoþ±-Þ@ßÐ?§ÇûM“ß^äýŽ“=¼=&1ÖïmcöxL^ÌF‰÷š¼˜ïmc6&â£Ø{›ÌËêèäÅê.“éQur$?ú¼«Ë£à{›Ì8t2ã^ñ½¹ªï%ßË(î^“Žkܺ‹û£ê{¹édJ¿Ê¾#ÓÉ Ï÷†ïÎ-ÚÖÉ Ï÷ÚïÍU'#îÅß˸ƳN^xn{#YZÿ}¸ãúµ×äÅì€dC'/kë×ržÓUž|MFhøá(Wq»&/VܨÑwsɋ٘½&/fkr¤“«¯É4M£ låà§ ’¼p˜¼XŒ»$èäÅâ,ý¼Øxèä.–ÿtÁ™WL^x.yã*÷ÐÉ‹Å8^ÑÉ‹Å]ŠÛ:yáº{–É Ï<Ùä¹ùžJÍ29†É ϱû.eu<êä…cžÄXÉI<·¶qÀä*&/G$˜¼°-“žKò]ËÆ¸j»N^,Î8žÂä…mI¦$‹˜¼ð̽æÙU'WdòÂöØ÷^ÒÉ Ï˜2,ÉöâŽï+L^xFÛ°L^,:ù!“ž1Iôp:t²C&/ÜɋœM˜¼ðÌ“G¦eòÂs;6Nø¾Àä…gî>›–É Ï½xÆd‘ã7ÆÅ¸tò¶L^˜Æä…í«Un:å\6®˜¼ÆäÅbÜ·C'/“žq{ÓÜ6-“‹q)3¼ðÌýhÓEûᦇkÜäa6® “‹;&w0ya“³ëæN^ÌŽ29õ]@·1ÍÉHs+ÓïåQš¦¦XšæK¹Ü¢º§¿n}ênæ%ù^šVkIš¾ƒï¥éË(IÓ´ï½4}%iò½4}óåë£4}§æÈ÷Òôe”¤ù$qc”Hé;ì^š¾yÈòýQ’^=¥éË(I“ï¥éË(IówXÜ%húŽº—¤w®qk>4¢ï°{iú2®åGÖÒôÝzíY¾×Pö­%iË-zÎWIÚ²–¦½Òw(JÓOG‰öÈZ’¶Üöæ¯vvÛ8É® }¢4ýt¦=:1JÒ¦Q’6]†ç¦¥é§‹ì:ò´lÙš¯™IFiúé*Ñ1%iÓÍu×ÒôÓMN“Qš~ºË®¥éÙ|j‘§q›oD7¦[Úxàó*»&®ÇÆãÀç¹Z’6]«ç ¥é§±kÂû(cã(§ùš4Å7¢Ó(MÏæSìá9JIÚ1—¤sIÚq¾›kÙž-N²kÁ®¾ÓÎYJ¢ìæ¥é§õózîc¡4=›w ÙÃ7GsŽ9z™]åÔ ™×çÙMNýÒØÑ}s4çy^µ•×[µ4ý4®TËת[·÷¼˜KÔUÝ6ú÷¨R’žÑ!ºXÍ[C]7NrêŒöqä›KÒŽëyã¬Û“!%iÇ(a?;8Ñ>ø6®rD2Gs«¹$HæhÎq͸}à±q“C¾¦SÝ·9%ǰñ;„‘9š[-ûƒtq÷´šJÖ¼¾WD޹¤<;`¨F)IÏŽrj†ÌÑÁl”HøšTikŽÉ(i?±>Ñ´}ݸÈhG’KÁûã¶éWš¦o›O–¦ùüðçJÓthüÉÒ4í~²4MXóÇšõêŒÅ{/‹Äå.ÇXäºÍ1¹ßç?øºÑ±,ò¸Ó1¹nuŒEî÷:Æ"×ÍŽ±ÈýnÇWðZä[JÓô¬>_šÖG®4G²4­þ\iZý¹Ò´>z×ãÇPÁO_rˆÒ4üºí1þŒsišb°[šæ?´4ÖÌϸùñ·Lb|{iú;NbÈžÓkãa-Iß&1fÇäÅl”¤¯É‹Ùšl¼&1fc²¡>JÓ·É IæuòbµèäÅ쬓#ýQ’^=¥éÛdÆ¡“÷ÒôÍU}/M_F úš¼p\ãÖr䮓³Q2¸&1fw<_L^xÖ’´å=ç«$mYKÓ“«NNhiúa” uòÂsÛ»ëd‡–¦ïî¸ïä5y1;èäC½JÒ–µ$m¹ Ïí*MO–3×:y1;¾&7´4=yèd†–¤-7×ý*M?œ¤sM^ÌÎ:YÔ¯Òôd9³¨“޵$mYKÓ¹Ö5yáxì\59?®’´åZ=‡«4=¹édJÓO7)Ñéä…g-I[ÖÒôâÕÉ ÛQKÒ¦Q’6’´é:|7×IKÒ³åó‚É ÏigÜÏK'/<£4ýð@Iéš¼X-“s:yá%iÓ(M?t2"kiúékò hIÚtx^^Ü“³õ̼N^ÌÎ¯É ”¦gËmcÜ÷“««Ü.“«›N†4-IÏ–ÉU™¼p’´éúQš~ºëçyhIÚ4JÓOü½dòb箓©.æÉ—£$m%iÛ탔دɋٸƒó5y±É0&/f',Zš~:k2µ$m¥éÙ˜ìÉ‹ÅE“MÜ®av•ËëäÅâ&gÖtòbã¡“­n¬ûc˜¼p=6Xß0yáºúÁwJ¾ëG¾{ZpŒkòbõxL^˜.Z"ɹ&/fG¹]Ð5‰1;É}Æuòbq–û ëäÅÆXeòÂsÉìÏ`òbqÅä3&/ëd/&/\wÏ2yá¹çÜ|Ï¿OKÔò÷’É Ï±û.eãk{-“žy2iõÐɉ\}Sò2›® Paž¼˜¤DM^˜Æä…cž¼p\ËÆÛ#Ę­“·˜¼°-Éôbœ#ÓÉ Ï\’ž]¼`òÂvÚ»b2“ž{ó,Éöâ†õ “žQâ6,“‹;¾1yá9¥¾Ï0y1;á~é×äÅì€ÉE¼pŒÛ5Æä…ãvlÌ» __“Žk÷ŒÉ ǽxÆä…ã7NØžèä…iL^˜Æä…ék2Ètʸl¬Ç:‰1»àó€É Ï\’6-“žsô,“‹+&/1y±¸IÉU'/lËä…ë¶qGó“žiòbñ@³ “³©ÏŸ¼˜‹È\“žûÆ “E:yáyønÑ3&/ód„iL^Ì.˜¼ÑÉ ÇüófWì¯èä…cLv<Ýä"s×ä…iL^8yc=Ÿûš¼0É Ó˜¼0|Mb<\p;³Ûä…iL^¾&/LÇ·IŒ§£ä·É‹§³\¤àš¼0É‹ÙEöç®É‹ÙMΧ×Ð-MÓ*ìßg:<+ÓŽ¨rÿ!…ȩ́»è\"…tw}]unoñÁ^æzò¤,'zè{Ì*ø#7úcMª²Ì¼ÿ²ˆÃ»ÌÇ“p5µÌW}šÔ%TÊ|EÉICx3¯Ï‹ø`°ð•î ñèàS÷È¢sàmªà§Îß>)J¸@çf[5®âƒšó].cV’ŠÂ”e¬S2ySç÷©-q>j*ÖYEN|¾ØÇ$Ô§NÇä¦ÚF¼±)¼¯; ÷)–û™LêÒž:¿ãMkˆ©2,ñþ$ܳòÔyp±¨aÉsí©†{i¾ˆ©fé\3Ïg1)ÈŸŒ³¢¼»´F÷UüîV¾©óSiª¥Y8™^y|ÖÔX„+Wb3U«¥DçîñŽÝ©s‹2 WÚ£s–ÅÖù M[IU‚<9iˆ/Lgêü~7u~ªLÕa«™â­Æ$Ü«J>ͦÒF¼5­¼µ1Õò¬.;—•½'!Ø" [ç1µ©óxõ©~ÈÁ«««8h8·,G·Õƒ£> W ®\×™åj‡•ï9)á“Ê¢Y$k]§ó)“p²çÔ³pÉs‹Tó*±Hu.…pnuέœ©ÐmUGçÚ0©É@]‚%Ø¢ŸòT—Jbãêÿ"Þ Ÿ:×ÖIC0ïÈš¢wÉTs4&Ñq$­‘·R‹ø k4tfáê¼÷.&aãÔ¹‹:)áÈt"ÅÔ¹XÄÎ/Æ4 {Ï™LÂý¨_$s_¶¢ñÐä*'JŸÇ˜ÔäÊürÙ[cV—“GrîÏVµ‚-zE–ª§a«§U\o\Iœ„+¦7 4Ä3|*Ð$Xvà¹a\¨« £4‹¿ˆ…ºŠñî”ÃsGqCYy¹0K£¼ñÆna‘]ƒÆÇp»MðqØ³ËæqúE .u¾ˆÃØ=–²WÇ Ù¯ê1¥•M®,Ðùt[[‰Y:|ìÈIÝùUºM>Ÿê°$µ¬D—œîº–\´½óÆÔ$_ZCž “/b‡ç®úB̵v¾×‡É²%6;g›i%´ØèÄÁ†œÖÓÉàâOcËΛ ™IvŽèÊI.i%œ™e†•NoÉ›/:WÉåæi6(W3rØŽ•˜»<â°v›IÞ:“½ØÄ*j²ÄùÜŠuÈA†I£2‰ÕÌdÊ.ËÊ&šrÅž…]Ò¹Áëé+Æb§àÁaŽ6‡|$6°+ÑÝx[¤oíô‘ÛÖCäu8NcuÄÉ Þ/(ã&M´gÛÖ|â‘÷>rß8Ê<íÐ;ízønÑ3w®{õÌGÀ;ó•QØÍ7~ÞÓ 71;ø³ëšÞì,W â™û®GÞšçè[84ßô õ\‚çAß\«‹ÌÃÒ÷-}wx®Á³ìñx®o½6æ‹ÔÒ÷Tß¹âóxžÊq£ýò9O¥fãÄÎwhºJ!AÈOü(¥ÐÇ¿Cé*„¾Š¶þ3ôúçÊg®ôŸ¡×?K¯Cÿzýóà[è?C¯æcðzîàmû«y½¸ôÝê¬|¯½¾¹ÌZ"4½ø³«¬•Ïž¾ø³‹¬M‚ÏðÍ5Ö.‰eøæ+})‹›+‡oÈÇÅ…Ú^Öç¿ó6ÙëŸ[Eu•ÿYtûç1P[åÝþ™¾’¤³Šo„ðª¬Ê9£±* ï Ⱦ¸=ÿû„¶w¹}¦¬*mÇgªªòX¹sè·Uå±´çö‰ž*œÆgjªxp»–ê-Çýé ‘eÝ|)1áñùÃ)µ¡zË’D;µËWÂê¦òÄç¹wÿA1õççÝß^KýWçÝ\þ¸òî»p‰•+ï~jÜî§Šk#á~ _¶WÞý§ÊH¸Ÿj¸œ…$ܳdBî§:ÒhI¸÷’¼û©!¥HI¸UHÒö›ê!ǃH¸-Õ¸ª#Ŧdõ© ; H¸ŸŠxf’p[¢„ÛR‹–$á¶D ÷,>#„û©t¥ß”p[jõ[ÂýT–d ÷SEÎ#á¶”«­2,IÂ=‹²p?UeÀy÷,™²à„ÛT³$ ÷¤&;ô’pOêrÙ(I¸u$ÎôÌ,Õaë< Ÿ4dm•„ÛÔ˜Eé?kI¸-ÕjIîY¼EAÂý.Œ„Û%Ü–(ឥ‰ú–2&ö¢„ÛR޶ê°ÕLIÂý>ÅH¸-¥EI†b‘p[¢„{Ö¸%ÜOeÉQp[¢„ÛåÝO9¹ ÷"ùíœp›êÁQŸ…ÔNîIM¶ ’pOê÷„{‘¬ÉœpOò­- ÷Sýô ÷,.5!á~ ß@H¸-…n«:¢„û©(çþp[¢Ÿ2‹W‘p?…é$ÜOaà ·%z—L5Gc•¤‡¼•šTääƒ$Ü“ðM" ÷¤&—ã’„{§;’p›Ê}V—oXI¸' ¤ô|fÑx%ÜO“ ’p?$CÂýJH¸MU|‡f$ܦª­l¥d«z¶zš…[“ á~*c-„{/É»ŸÂI6É·ñÞ¨¤Û“ª”·%ÛžÔdk#Éö¤.9 äڦνÃEÉs«³†LúH¢ý¼/Êä²ÛD m’m›Íãô‹08î¶ÉØ=r =1ÊÕq5Ð6ÉöÄ$}m ´Mr ½W ´'âšóhD m’m“hOÄ!ªæÛѯ@ mQâÁ™¸¡;m›hÏDä…@ÛbÙrH¦€@Û&¯„%Z\É÷ @ mOcK ´'Ò)K0¸Lieáx ´'FI4Оˆ/ ´Mr ½§Ú&Û±2KïIm“hD m’mƒ´M–¸²ÈF\mƒ´ "Ð6Øt4À`Ê.ËÊ*ý\ ´'¢®¶I´ "Ð6ɶAÚq2ê•o?ˆQµW ½ã-϶ÝVÇCó@ɳ=kžýp¸[žýt”/æ+ÏždÌçʳ=÷³p]y¶çá»EÏH/÷êyöì*;î-B%Šƒa„{P‰ê ñÖ$|qÈÂñÞ%T¢>H¼µ •(o}B%*„AÂË•2ß4ò½E¸°Ü[… \2J(½Âƒ¾üro*£œD¡[ö¢Mh°Æ å2ºö ïL2NFDÃðÎ,e…0Z…¥Wh±E‹ñ8Ð-´(]Ãq¿¶xm>9X²Ç¶²ÊËg¶…MâÞHG‰y!îbKDÓÐ º†˰™´}ø$¯üDJ`&Y͈Ò@¼³r½.¢´-6‡=ăÜSŽ(MĉrsðƒðfF9µ‚þ¡Ei Z”F⃸þT”ý‡c%®úŠ&¢ÅZm6´'ò©G¢´Ä5A‰ÒH´(D‹ÒQ|°ÊÆ9lv4-J7Ñ¢´-Öá±9h,NÄŠ48µ±™V"‡Çž6”›ÈÍ©™|¹5!¥Cùªe+y7žYv¬¢‘xgâðÙ7ä¨+FÎí&Ò9*Ù¿ŒQbÇ%oŒ‹½‘[ݺe˜c£ÙQÎ-²Óîž“„GŽ9>òÜ|Ï¿–}û˜%Dr»oIOãbó1‰’#Lz:ëÚP$NrÌÒêÖaDJOi?G:kÖ=7‰•—äÑÒlù>¢›1¥«dOäáºkÞôt“‰JvóÌiví0G6¦ÇÞº——‰š÷æY"”¹ÝM.Å7žá(Ôl”½Èá§´µì?ÓU 7zDx:Å­e} û£¾[ó\$8qÜŽކ’\/Ìs힥Fï™Ã(Ó²>{.qk¼ž.‘”é!ñå|H,eŸã”?pÙC$ç´5g¦äÒ|sDe:JHå8GÏI«ÒOëùº*â±5_ ‰Ü]g «<·õû y=޹œ¹ZÎd>$Y‹5ÆÌ÷߯*ÏÇsßš'"èös9~àá»EÏÃ*Ï&ÙæcüÕçá2rǽn-û…Çã]ãçÍ–ÏSáÃoÇÖxyㆣÍÂ<®/›¦°Êvâ°jcž^%Ëàƒã<Ëþ”çáÑûj9(Ò¼YÜ%+¡ûZŽî¸òESv–£ÐÊéÂÎÜþøåL„=Z`Œ{ÜÚ™ÓÊ[rô{ASùZ€ÎIÝ*šÊÛrqôkð¶@Ê÷š¦ò¶@n÷ž¦ò¶Àýu½^æwëi£úTQ3Èáì'ššQv?QÕ¤£ßÏu5iðseMúleM„ÚÆïuÇy‰Ö§Â&ÐÆ&¸U6±€v6±À­´©¿U[›Xâ^ÛÔE´·©‹ÜŠ›ÏçþZä[ª›n1ðÙî&ü¹ò&ü¹ö&üÉú¦>úsýM}ô¶ÀùÈÒ:7¢ýÞà¯Ê¦þç '~X‰“~ïmqúòý=Îo=øö"ç÷=èáí>z𠜯у‰ã>k03±:k0Q/¡pLlÇÛkÖ`"ºœ:k°¿ÏuÖ`b׉€|/t.,÷‚çkáÐI„[ÅóŪ¼•8^?Jê¥ñ£xÖ`"5‘e]ô­Ë¨•Z”b©ÅêRª¦»L"ȬMùQF]* §&™ÖÔYƒ…’`ÖÀfÍ.›Ë±0¿¦ ¤|ú`Ñ™†úéD9·#³3«Î¡pr5³!7‘Y‡RC}°Ëñf V6eÏ ηʬÁÄ[‘é¬Á®lu!®0ª³ÇÂ(Í/5pX=†àQꨫÏá±§ e’³“L=ë¬E™5˜ˆF’ÎL,ØaÖ`áÐ5úB´ñuô`"nÓI‡%/ìØÈÈ”ÁÊ¡3#,ÔéT™0ðØmòtCšÊqØ?]0ö†±Û×5M¼q•ËèXçœ|s'Ö´Œ,nØÅXg¾æ³iÙŸò<\ËXÁâ=hŒÌNúyÁXiŒ,Ò¹Õ±‚ÅIŽ ¿cæ¶déŒ7½.»&ŸwØŒõ–dù–ݯ¤êÁ¯;Þ’ª¹qI¼•d•hÅÒ½¡o%Y%Z±tçå[IV‰V,ñV’}qÈÂõ^’U¢K¼•d•hÅo%Y%æØé~Ì·’ì‹Cî÷VìÂq/ɂڊ%ÞJ²Ê OchIöΈ§A_ü‡Ç7”§‘£–dïLx'¥$û`ÆÓ8¿pÑŠ5ˆV¬ÁmfmÅDIöÎ"ÁݰVZ±9^"J+Öb[Yå ‚Ù6ÜÂøüú•’ìDÞ9&R4e“¢)›eØäs¾3»ìô¥$ûàÉM¢”dïÔÈ„(­X‹ÍaGIv¢ÜN;wü¨ƒ>Ž’ìD¹Uy–›‰Ú¼]sÖF™sK²áp¬D¨IwЦhÊf­6GS 9Ø R45WÄ%R4e³MMDäÉ6ùÔ˜CЦlR4e³Í!o‚VrY=¦•¸ ³ylyCÙl®¹Íl2Ë)š²IÑÔB>-Nua—«нÅî±—}Ã&䛽ÏØI ‘ºaSö<“Ú¸QÙ6lJ¹ôéƒAâCºwzÍòÀ ³.ŒØÁ(œC8 Ýcu)—A(ÆsoA.„jQ~ÔƒØ}Mõ@45‘gª‰¸8êèé储¥_l²¹Ê&¨$UGcXˆQ’ª‰ÜN%Ž´°Ê©ãT9p˜û†²ªTž Ùôm—–÷BÙ…¨\¡˜Ùñ¥Y“FbOÊn]º¤nØ;8²Ë±pH4U¾k‘Çê1’ÌY¬>‡Çž6Ä%Ó©Á‰ãÀ×Då«t™,M-ÌUY6ìu!. ÅìVy’M퉲ër2v%/ŒúѨ¸ÌîÄVÀ^›‘ŠÛêšì6ù›È¡ôÇM6Ó/â—Ôv»ÇR6l²2ðT„C©À?˜åšÅÄ\=¶¶aRžÚ+eC.Ém’ó‡%y¬eC9À§ËÚ¤…, ‡‘NίäS¿ÌæñÜg[ÙغʹcÅ×͹¤•Ð"Ç%+ãKñ(OcÏŠ«Lä‘”„ WÛ”ëL”]µÆßS+¹'E<·®3N,4¾ ŒÃÖlòÞ Ãvl(+ç3Wk·y]Á ®¥°¥¬¢6KÜGpˆÍa¢½&åFã Þ:‹)»,Ê—f/xyP†XšG¹‘ùž•ÎÕ8ÌÑfãäB9õG9v¹’±;äF—Ƕa~ 6ÓØ0*kÙP¾¬§Á+³2ùìÊŸ{ðH·Çá±E›|>‡½ÚäCé•rfpdíP~ÔDYß(Ù¡ü¨™Å&!GÞPLέkhéCg³›|–`Cy™ù©†):~®aJ;bŸk˜Ò‡Ñº¨$…×ý>…‚ÎKÄù– ²ÀuOPYà~SPYàº+¨,p¿-(~ëu_PYâqcP,rÝ‹Üo úxî¯E¾¥ašhÒä³ S<øs S<øs S<ø“ S}ôç¦úèý-BïAôO_rˆ÷†)øºG(þ‚sÃ4ö[YóGÜ&4ÖÛ0ô=ûsîú ¹ý·7L¿Onßxk˜¾r{®”¾rû‰ãÔOD¥Tƒú‰¨”¾rû‰² † ~"*¥Ô/”õ»ô{¥tá¸7L_1þ¡Qü­aú¢ìrJP?QK£ÔÛ¬qC9ÐAP?1Ȩ™õ#>‰êm¢Rj°E›Y+¥Ñ0}R7õNŽ"¨·ÙvìÛÂ,cgÔOĵ4¨·‰J©Á2l6m˜>Y•h˜ÞYõ6TJ'v¥TJ-6‡ Ó›¾9 Ó»¾„ŽJéD¼„J©E©”Z”†éƒC_þ@¥ÔâØQ^ õkµÉñÔD½.¸õV~õ6¥RjQ*¥kV›•R‹R)µ(•R‹uxl¦F—*¥Ó޽(›Ç–&lêÔOÔèA½M©”Z”†éÄZA¹þúƒñ#‚z›R)5Ù7ÄhIÅ5Ô¬:"AýÄ&åÍíÊpŸõ3;Â: êWJÌ+AýÌAû\_5¨ŸØÄ Þfè«Ë‘7l÷ Þ¦ü¨v¨ÔOä;‡}½‚ú…5€ÔÛ¬Ùes9ê.‚ú…ˆ=%¨Ÿ˜5R“ ~¢Žð\¹ýÄ+l§ Þfî q/ÕWn?Qv\ÔOlRõ¹åöwv q\AýDÙU{õw}ùÔ;3)š–0kRm±z Á£Th-VŸÃcO¶+Æ/ q¿K ê-JP¿p\1~Y¨;Ÿê'&)ˆ—'Ž{P?åk êmRP?±`d Aý®1þ QžÑ Þa·)A½M:)ë°yœ~‘Ü[6ÈE‚z›±{,eCl‚$¨·™ÒB\Aƒz›<80ŒŒ ~¡h#¨·(A½Í’ž,sJ’û/¦Ëþd¸»îÒõܶ–ù;Éÿ]sst¶Ë Àê(WÃÀÎ2©3p7XÏ}ã„ý™ð=|·èYÂÏ|iÓI.P=;ãlð@³Ý1ÿ¼Õ²÷/³®ñóžÖ³w2àhv<òÆ:&S®q{dÓ|jÓM.P½ZŽÉîÔí¸Ïãº@·åáS«›ÌÎbn`u—=xL8.׫'ó•+0=°óÆß1èr›¤tfÛo’æW“ôËÿoí=endstream endobj 761 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 762 0 obj << /Filter /FlateDecode /Length 904 >> stream xÚÝVËnÛ8Ýç+ w#c$•¤,Y*FÌ`L (·F‘fÁHTÂB ж“|}/u¥Øqü Õll‘÷}Î!¥¦gïÏ#6 ÄOHBÓb0aƒI0ö ¦ùàÊùkä…tâ<ÒÑõôÓûó0Þt&2î|3U/…¾u&>ŒÎ›ƒ@±×îÂérCïP¡T¦Ÿ·V7A@ÿþNç¼½%ªÂ¶£ViÛ tqY¶ò¡0¯[š‡”ºå*O™ @*ÙⓨÊÆÞ$Ûî±N¶Ãöï‹/¨észk­Vô¾ÖÏ;´jQ©ew­—¼1hüµ¨æ' Òöc·M~åÕ0Èu+–N9ë}pch²ï‘tØ Ý‡RViçHü°5îªúÇÈcaíÿt{lÆWêv[EÆáá$=¤âíŸ=ŒÂÇ?Kü8ž`ê¨ýF:û8=û æS?`endstream endobj 763 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-fig8do.pdf) /PTEX.InfoDict 137 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 140 0 R >> /ExtGState << >> /Font << /F2 138 0 R /F3 139 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 2176 >> stream xœ­™I¯Ç†÷߯¨%,R©yXÚd°‘%¾WAò( –¬üûœ©¿nú-]¸r¾ÖCWu×tNU=_t]toÜÇË?ÜGW§ÅõìKq¹$ß“KsúšÜ§—î‰{ùãçŸÿú½{ts >„àŽoýí} î·ËÓ_\pÿ¾D÷˜þ{s‰\ÀýtéÑ÷ìFñ5»wô¯Ó—høöŠÍ×§pøÚÓð1q_§a›€É·È˜ƒ°ø&ÍÈÑ—Ø|«‚ƒ»rFy?a‰¾•3Æ|Æ3/˜ÆYúHNÇ\|—^–æg]pó]¿×}î ~$æJß È4=CzS«ÏiÁÉiå3dÙ”™''àhù&ÚXú‚³îe‰›¹ú)í¡ÀsÁÃgB‰¥#Ó4Ën˜h?É+NšÏSÍÒàªñœh? yÁ?CÌù~ gË'‰3Ä'[o𝑠§1æÎû1r×ý$Q¾ÍeÁSóM¢ÀË™ò­®×Þx¿CÞâ…‹ç ¸YÍt0¡ŠÀ”£Œå³”œm=VÙ¯›ž·rM¯ÈvÌ”¯jF¦i’|—)ph<‘‹žÇ˜ér÷Eƃ ¦iJA¸JyàĢyrbFÞÆ³KbBz^ÈcòÆ LÓ ñpÃWȯÝïm_¹!êýóË´Òé&¥øÖ¹›Ós%ÊâÉGºÐ®Ï (åæ¹P<HtW¤Áß  Œ¸_‘©€â¡@æSCßû x,pìÕµ“‡ßßÚ ¾ø¼ÄÏ/èþ:–¹ÛWÔCoô2%À­nš–ÛwîAxènß\þ|+o¾»j¤Í›rÊ^7Ý£.'Îz¨[¾½®lúãP·Ý£.%Ü~ìïøöºœiô÷ºñƒ•餎ƒ¯£¥"ÅT‡i•Ü¢$vžãÓóÈÇLÈþ8ùØöÜðX€Sqß ( $Jasÿ‚á¡ï±eÿ„á±€6úZàЇãFå‡Áâ«&Åcã µ¬D¿Þ;kó}º5«ï_¶C:åkõåj¾³zb ³5>ß¿:o†[ã—ñpgõLg±º5¾~¹¸,\JÐAÖ,¹aîIO!6þÇišþÝI†¯¹…oœ/¨Oüë!/Q÷àå³OŸÝ«OÞ¹~ü§{ýþÕCZWôÏ/~}ýáýÃ_Üíãoƒ(mæUmËçïŸ><öüõÛ׿þw‹ûZË–øåûßÿ“µ¬¦„LSž°ñ=d·–€}“˜”ŠÎHÉå )Ï8|R)šòŒS/ê¦)M#Šf9!ËÓƒ¤¸HäfïS‰Ü­=ê"‘‡õG]$ò4W¦.˜š©ë]]$rÔln.9á"‘‹¹jË×À¢X®.¹©ë2‰Ü-ÞÕE"Ÿ.yZ>Q LŠ"ëY]$ò¯ê"‘“¹hu‘ÈY]Ÿ¹Häb¿U¨‹D®ráÙ\$rç4zu‘ȶ—›‹DžšOÌEóoMÁ]]$rÔýÈ\$rÒx0‰œÍ%©‹D¶|e.¹Y{ÕE"wÝoÌE"Íçæ"‘§¹Pu‘À| öª‹DNê’ÍE"K˜^]$r±ñP‰Lû¡¸0u‘È]Ï3æ"‘-Ÿ˜‹A´Îæ"‘£þÖd.ysuÕ~K;sÑx4‰\õtm.¹›+T‰<øW Laªñ¢.ÙÜ ¹Hä¬ws‘ÈÅÊ«‹D¶ß"ÌE"Ë1js“ßréÍvé-§K¯pÒóYæ @•+éw?þéæ^wÑ{\¼ç—MÌt£æüM_à> /ExtGState << >> /Font << /F2 143 0 R /F3 144 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 2159 >> stream xœ­™ÉŽ]·@÷ï+¸”a8[,ÀA’nX /dYB$h°%Aþ>U¬"/Y$ÚjÄ ·}üÈwIÞbyžUÏ”UoÕ/·¨_T¬Ú•½AùàtvÊÕª£SŸ^©çêÃíŸÿù—¯Ô×w7£1jþ{÷õßnVG£þsûþeÔO7«žÁ?oo¨ooÙêìU :zõþ–ƒ…é]§¤]£¨M•”u @ÅkŸ$UªÕ5 ‚¿>"Á¬œ$¯MFŠ8pAA犔t,’à¯E*:IE;dÕ®nXqLˆY'#eÓ¸œ†ÝÚÚ{à¨m\p.;']qŠÖYüÛ¶fgxLlãq0žz`§]û>ï¥8`€!Ò£.޹˜gkã„_¼sÕ¾=/üaš60çt`§k{? lç€ÓD†ñ”'èy0žC4Dæjvö°U0äm4¸ùv¶øš‘m[¯=† rjïkã¨}oÌøÅ;gm‰aÅC‚hÏK4_ɰŒ¥7ŶÞ;Úš6Á|í! ¤Æ¶s[FàltÊ.˜*m‹—+¿ÏÜöøÆ°Œ¹=/CÇxྞ&ž1usàÜÇÛ²êÎU[nj󑜌®m<ÎØá4™ë¯7äÏ’œ0 WÊ'Ãkhã©ÒÎðläÒì° ‡ï{]Úx §†G-s­îù fíý+ïGH¼¯’ ”|ž3ggOÙ9ùGŠ7‰9¦s¾u˜£?p¡ù:HÌÖî\[@Î-ßmÜ‹9p Rå¬mãÙ8aY$ÆùlÌïÛAb÷fcg •ldü!LˆöÎJ0²3N/ÈïvδÔ;Üa¿Óó*ž6†iVà …yga ‰Ö{çˆÛ9a¼ï Û,6®¸w®ÌØCÜê}0œCv†ñ´õÂÄìy>À9˜Uë]<0,Ca†6öŽê pžqø5À8ñ}lÜÊr¢ö’‹¶Ô>ãÀ7†zãZûÔ ûÎ|A†…Ù9ð~‡z…ggØm>Oá`²3„YÛï°± ð7†2Þò-r̆37®§‡|ÑÚK”/½=p¦|ëMË—;W:þz8¸ÁÀ6N- Û6ž=† r{q;'zßÈPÏvæóއƒÆ£d¨13C=ÞÙÑ~õX¶8R>ò8¥8S¾ÄË $–‹Á4  žwv†|ÚÞN(<;Gž<;g:Ïz¸£´ç ®|^ºÃëØoݶ ÷ÇߺmÑ]î½ò©ÂwJ݉ω ‘ã­3xtèŸ3Î RÅÜ3N 0çœ{ƹAʘ=F©‡ô8î£0¹Á<«1É©ÁW÷¼ˆ/?ñóK¸ÑþŽ]êþ5ÌPóô‡ö d/ˆÞû÷ê‰yªîßÞþtß¾ùá®x9œqõuè s€^Wßðå}±è@-¸ú¦GôÅaœú–/ï‹9ÎøW_ûˆÅò‰‚Ÿ;Õ")ÁÚ€…§|ÝÞ±øÜ≉µÂõ1ÞDà1ýsƹÜúá(8N 0W×ë ŒSα½ãÜ€=Ls˜hZ•?L‹ÚU$'¼µHÔÇå}°7Þá˜DÝíã»Cº‚ãu?FóƒÝ±ÚÆ>xÿøîpØ4}ðÇýð`wGŒØ×àâr †™²dGU« ¿ÆŽÿV”¦ÿï$Ó®Yð¯‚Åøý“=ÅUO^½øôY½þôñ½úë7ß©7^?…¸‚ÿýò×7?<ýAÝ?ûÂ5°mÌÕ>ÿôñÇ?¾y÷æ×ÿöµx¬L¿üúû{@,¨—œÞ?Kv~+Uº¨8üØrÀ™<‡œ)’|aç·RbØ àLÏú³œÑÂÈ·;kw~’9†ó“ìéÌ>9À•#;©Ë®œ»³cç'¹âUnr€‚á(hç'Ù¡ÊYàʃ`q€+Ãw'ØœŸä‚/|r~‚á¤bç'Ù¢*XàÊžIw~’#^E&ç'9c%›œŸä* `ÈÑíÎ;9¿•e'ç'9°éÎOrâxìÎOréNŸ`¼S‘³ÎoeÇñp9¿•=;ïîü$GvšÝùIÎ8ÍÉùI®´Á'ç·0,“'ç6œßÊ„ó[9²3¾œßÊ™èåüV.ü¾ºóœ Ý©&ç·²Ã×°8¿•Ï÷r~+Ó¹dq~ v’—ó[^{Þäüvì¬'ç·°ç|p9¿•#Ýygç·pæßD.ç·r%ç59¿… €Éù­ìi¿NÎoåx9Av~+gŠ—áü$WÊGÃù †ešSéÎO²£|59¿•­çäüVNì”.ç·r¡b69¿™ÑéåîôØù­ì0Lç·r`'y9¿•[]œßÊ\O‡óŒ¿I“óÛØufç'9óÎOrbîÎOráñvç'êÍ—ßÆü›Èp~’9‡áü$'vÂÝùI.Tφóì ;Cv~»Ë ²ó[9 ç'9s> stream xÚÝWm‹ã6þž_aÂQlk-ÙòKéÚ½no ¶º”½ýà8JV‡c§~énþ}GÙ±ƒ¹l-”ˆ¤ÑÌ3£™gd›Zü¨•0ñÈâ% µ²ýìÏ "Ï‹õþ`ª·¨±2‚«Û=eÖ»rö+üº=æ…$Œ“Î䟡ùçh.K¡åžBüa5»ºñc‹z$ñ@´ÚZ³8‰ŸÄÖjcÝÛ7r×VÂq}Ø”:ÔþÆqß·¯Û½Ã"»ÍÓFþå°Ø6:²ÈäF™^úö¶-²F–E»Û²Bù÷·ï> è£Ç½\l)î¥Å·>ÜÁáà¸ÊEZ¥=²²«äîQE¡J\\_ÿƇÕÏpz—ú„ žèIæ·QfG8ŽAVŠW7|”Š ‚4ù`®ÍîîPgœ.8¡Fî3{¯2Ò6i¡Æf œ'Äãq¾œ§„EA§³@èuZ í…Úe¢æQ àF‚„ÚfÕGóS•ª8Ž&¶ŽÙ‘HŽO¨Äðo]ÝWNìÛJ“ö§v³8Õ®ãör÷ÑóƒfŽëÖ[œÀÎÒ¶n}ÐþD&•~†[:6¥ !í¯p8«V•ØU¢®¥:ªZëàc|‚'Ã=…%êFîS¤1‚¬ÅB H:Aˆ!eCˆº­P·ÆuQ Þ^4•ÌÒ“o†€q~w77î.@._ ¹Až§Ó3Ibæ†Q¬5L¨KähÇ‹ÚÜ#ªã.öT£›4¤aUÿX€9e¸§R=”'csKÁ¤mÊJ¦¹Êïd™ÏB7É‘›g:Îr¨« Ëköp‹úçÕãç`llù°³ºò²ÑöêzÏ[ (¢ñîUôæ1¥ µêXïú–PÐû¡*<ÝŽ³·h;¯¡òÑ| 7û˜ËýˆÐ#gáƒ8žót=^ýÀ“¶Æå¶*÷8{û;šÈb+ôC½ãßÑ`ôþæ¿Tå:]Ë\6Çχš?mF–ìB¦sx\Ô:Õn˜ÂeŸjöÙT/Mªb¤ú‚Tó áw^Ê|$/«‘M.T˜{us«ŽVD½,Í/!ˆgMÁ„‚ß—Ú狳(´Óͧ¾×åI<åðBûe^)]œ]R¯êõÕÚýßÛÿWº}Q·]¼-þ•vSŸš±‡ƒùâxióEª ’Só±×m>þ§,à¯Ó|ç/Œ8 ,7ILÍgBè+ÕÙ«Ùߘ¯øendstream endobj 766 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 767 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 768 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-Fig9do.pdf) /PTEX.InfoDict 151 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 154 0 R >> /ExtGState << >> /Font << /F2 152 0 R /F3 153 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 1888 >> stream xœ¥ÙI7ð{ áÇöóz d‰(ÉŒ‚"Ä( f‹åÛçýŸÝÓ5å…iåI~éªî*—ßb—U•UïÔÇÃoê£ E¯iïy§“S®œúôZ=Uׇo?ÿþÓõðâ`´1Fmÿ^<üå`u0êŸÃ³çʨ¿V=æÞ,POÉêD*{H]’×>7½ß+hS&ʤ)NTøÊÝL7QÔ!Ï”uòYcµ+s&mbLjQ¨Œfμ"i¶sFMǬ‹fmÒ”Îê² ÓÖÌéå"o³Xmƒ‡Õw”ç& ìžü”HüUqE¾Á)“v¹#i aOkxÊ:qÆÜëí´“{ôFSZ;Å•"niæp‰Í1 uÌb‹¼rÄh,]ÌÀüŒ-Œ¶¶·å§ì›9–z†©š“ÌÂVî·sÐÑ6Ç¥I›0pÒ¹^äÎÎ (àˆ¾0Ç4 ì4¹föm6²yàzsÈJìrFÎaà‚Ë`G‹ÜÚ™¬¦ÜìF&L“êPºÈïEžOiàŒ¯Iâaožæ¾þ^o+—0°C˜ÀAâieÎñ½œ5•µ“8i’ù ¯wÁ4f'#ã1·E.ZØ¡btæiœe>pís4pDùªæÿX8Ë|Ÿ» &-íÍÚÜÌoí²²×6œQðªSêÍÓØJ¼¡æ¥Å‹Naà€±‹TÖ…IêÅÜ|=vàŒa®æÀîœLËwÜ‹`¼W.eež¸´r‘xœÙqáÃýtvõ~&ÄûÊ‘VæñŠ+4O G©7ss¾M+gÉ—ƒ¶©Ù}ÍiàTãögi‰«ãÈi .2Þ}­WŽ;¿4rB™„-—Þ¥Ösã½2ž×ÜÕ¹¸Z`2ksà-wß×õ~î$ñÒ™HOî~Qïç.hH—F½êœj—ëœ4޽ Ò\5êÉÎ'ßç®·G«æzÕ[¼:Ìa^Ïc¾.ímo<¦z?ó¹whó]~X¹ ðöN˜†Õ<0s“A=ìì¤ …-.laÂ|ê-k_XúÝÞ¡'7>ܸõNµ_rTïgjn|¸žuæÛÏX„µidªý¶ãÆ…'æÜÜoç8p@…ù÷ìÀÓ&ÄËÂYgo±Ìƒ<Ï΄4G¹Þ¹â©w¬ýŒç5u”…ÉÂÒ¯ôÎXÃT¯wç i.X÷öHƒlîyá¶°ôÛ½yÊ|çÂÃù²wiù(Eï½£´™l.,4²GQÝÊ„ëZ¼diÜ:s?Qós˜Æ0ÉõvŽ-_pâµyàÜæ+ù`î€Àïœ-ÒT57Þ½}]Ϲ’%ŸuN5žˆ3òÉÞ¥Õ{B¿B;„a5׫… ¿w‹Wâ~À—s­×„zŸVö’Ïw&cëz‘¸^ò|ïík<Â<1{'”)¸`½ÛÙš:_ÈeäË¥9_ö&”ájžos“ÓÅ ,ËtXÖ£¹^H½!®\Nˆ—ÞT×sĉ1‡Sí'± kÒÊO¶7µõ4!ßÓÀT÷»ˆ¾¯sªëyÂ~IîÍe*Š£¬g.è'z{”67Žfá lKm×YZÞ¯ì:×=í+EQ•Ø}^Źö1¶v¸c:~Þ¸=€o‰cïæ€ÊÍè)yNhÜÀÙ±äÓ•›0ýnöå¯Tãö€í]ÝÜ俀—m_} âçWׇoä¶T]¾á;Ôíƒú§š¨œwxöðêþòJÝ3÷Õå»Ã—òÍëS±¹Æ5ít®;ã\¾>ët®¿û¹h*yÑu:7žq.ÏcNh§sóÝÏE2âÅòé\{Æ`WjOÛ“oF«¾œi¯OÚ«ŠucÏx÷¹Åа½{8}Œ6þ™ãçÛŠtð7Tn@‹XN¿Ð¸9 Õ¨ãÛêEß°¹‡ímFå›Í`q«È|[êLÔÃá]žýP^&ÖÓíù§£œS;}8›—§£IÇ‹§óO/²YTOÆÃòt¤ðp¼øp{rµrð¦rÛk$n>¥ËlñÈ¿UMÓÿ;É Ú±:Ï(æ|ÏîýySTÝ{ýâÓgõæÓ‡+õó£?ÔÛë7÷y^ñÿ~õåí‡ëûÏÕåã;Ž•kƬnÓç×O^¾xùöýÛ/ÿÇâÜ7¡ÑáËOÏ}Z,zŠ›7Œ·dyeiýžx³)¯«œ´[3rU§¼"‡ÝŽxÓª£ìdM%EX˜Ÿ%ÞdLŠìtMÍ1–ãÂX),M(³¹ÁÍÇV¼Éš;IneN!íÍÖÄEv¢§æIUüÊ„–©³³m§£f͹³‘²½ù2]8­„:s’p¶9¤•“ìdîÍ9½v¢†Žo.¦&»0¯4äMÅÂò¦af¾ñzß«oúöæÐ4Ò)sËŒßÛ;· ¬x¥¹p‘ù²w±m¥²ÄËÔ¼’Ç|ùî)—ZÊõ»”ëk“DXÙž^„øÝ£ï/ÎÊ„g¤ýrû„ø2,©ëήàéÓQQ[œ‹×TÛ¥§On®ýðR_Òµendstream endobj 769 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-Fig9do2.pdf) /PTEX.InfoDict 156 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 159 0 R >> /ExtGState << >> /Font << /F2 157 0 R /F3 158 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 1892 >> stream xœ¥šMG†ïý+ê§óûã ²wdkwgd´²|Àd 6X²üï÷}#³zšÊªZ{`˜‡Î¬ÎŒŠŒx#·<[Üòvùãôïå%5cãR‚‰q Ñ›âßšI~ùøjy¾Ü¾þôŸéÜœÆÍÔ¤pv *û85=#´ÂAÎÃ1w›ñ®nIã$çiâlBŒÀ¦0»ípñ\¬ÆÍø¨p±Ý†7Ùo‘ÏŒ$Õ„½ä“cFÆ :'»ÃiÄ£RÅß'.=¹ºÒ$_m9ÛžDÉÑî°§€è í0sd˜WÏÀ1sç•Üv¸xõà²Î¥hœM©7S’­çÛ-Sèˆ=¡6˜/&†¿J¼hXÓ¹³Ø{â¼®ñ¸ípå6È\aæêŒ“÷ aÃó81„ýÉ[+û9f/ç}âdjœÃWº1öÊ3·‘o¼MT3{Óªp–|3qêçÝ[3 Ur•x©±Ÿ™fpiå¢s|€³Ê’XŽ­¨Œ|àu†½gö&•Áx_3GºÙÓqTv‡!¶Ý`Ž™9÷çm˜qƒ‘ïgŽ=žyCœ…+óýÌ…E¹ñ—™±ž6ùjbÈä(ëõVì­1ò‰ÂzGe•«ÊQüuâ8Î~Á‹Q8‰?s¸° 7ê%•‘&†µboü‚À¡°31í°Èdr:fÑ» W …û~&N|`ÔÈg {æë™Ëˆ§à 2êM?3¾&Êy†0Á {&…ƒœ—‰e2Y¿ÂIÞç1ç¾Þ-§©·`¾¯‰+e$z×Å™QFXŸE¯(d½ÇÜX3„CÌ;,!‹ÞV8I¼<æ,ö>dè­ð#0Μ)£ÉAòÁ1g ÏcFâvEãÐ×{ÈЃUgv¸õzØC8§s-W‰gGøOŽ9SX«Ì|µe¸¡øK ˆ C@˜Í{¿!0ß—.,3ÉQâù1Wñw[Ö¸±Þ=f_%^n¹¸Þ/#3^jL›8v½˜›×XêQ…3ÿÌ#_… …••;fÆû2sµ½_PØ&§q‘óxÈ vPdPLëç/`KH™ç/PS§Ö/À»¡ŽÎ:^ Ÿç®=öÐñrÀå®Î›¼ðävñå§#~zywúú[”íËíkìÐŒúι2îÀ{PÝß¾_ÙÇËíÛÓ7·òd}*›³Èi÷sýs±̺Ÿ¿|®w‰½Æû¹ùйðc¶û¹õËç2ÆBLÜÏuW+ ÒC‰_L>[«_݌˕q‘ Wäo>w<‘ãòåþc6 ñ5ëç/4Qðç/P"¶ûox1`ä¨uÀÀË}Ñç{¸4Ð…U¾º0VtTÐ1®uO4»æUg» mâ>Ý]?½fé>}×›Õééi]|¸~:4†]¿{Ôé ái]|úܹF9EÛÜ£äŠâS®ÝÆk\ñ·¥‡éÿ;Èð´³»Uy€þôè¿é¢Ë£W/>~Z^üð~ùçw?.oî^?†_áŸ_þùæÃÝ㟗Ûg_h'k¦W÷ù×Ç¿¼øåÍ»7þ½ÚâÚ{ÒìùðûŸ×Þ“6GM±Þ“v‚Îí QÔ(HQäÖÍÛªÀ¶àÄy¾®Eã,ݲ-#ön#¬$·M[n½ÚåûämÆ–!rÚÚMf·|ËQšlìÆJÙ:1Š8©6Ùös;Œ¯ÝÎÀT«p”Û¬-#¸ØÞ ÊÒýÛr×Èì&ð6kËmív¡Úg7zÃì†eé†À±Zœ";tR-rœûØý²ŒÕÆ!jHãTf†îÕjÃr°¡wc6Œmˆ=ÈÁÍœÂZDévlE¶Ü¦q"'Ʊ•nGð®«éC–Û¾cfÛ(iì¥ÚÜ2Š`é&¼ov‹9UŒ‰Ä^¨æYlX2j<«ã/ »a„ݸ »Â¼tÁù |{I‚âÍwË‹ßGÐ}q÷òÕUañŠÐ>_KëºKúû†€ÊæRž?ßËpÚ\þ_€1÷ûóÚOÿ=ôÜÅendstream endobj 770 0 obj << /Filter /FlateDecode /Length 856 >> stream xÚ•UKsÛ6¾ëWð”‚3%Œ'æÛqê¦Î¸–¦>$™ C Æ"©òÑNÿ}wHµ2Ê¡£À}|»øð-Ä3?žU‚m2­8­xÖt«?WTÆlð¿ØOYÉpqÛq•]«ßáwð VÒÒV‡”ÿ‡¦¿G+DUQ¥Ê¬ø¯ÅËÍêâFÚŒ3Z10mž2#2Í-••Í6mö‘Üøí2º¼PL.^ç…¶†|úb_uçæÑ7ÑÙ,].,YvõìÿÊ…!)É÷o]ߤϧ¥of?ôSúƸys{½Ž»OL³{šaåÑR÷mܬo“a¿Ï ,= òçͯpÆ‚KªUûF”Ño¿aOêç¼RÄ‚¸¹ºzиãäo¿k‹[þ'Á"àÅ>!†KE­2P'à?>Æ Sö8ÄTüúÆZ‘™¹îC7çÐuE™¶Gð»³àœ £14Á”XTªR`H!£ÌdP•–œÇÈ÷äF¼é*ð& ñö¦oÝ8¹èRFûÜJ(U(¥È{Œœ\ã¶>D|’’Ñ´çw»ó’®Óú IÞ;ßú~›â?$'^¯*ï)žË¼lR‚$uy$v=ƒÈ¦¤§9©w¢-¹rÍHëvSü¾ÌÁ7¹`Œ–¡J)$3´ÔâT0WÃÒÏÐܘÖä~Dè€Џi:O_Å)ãÇKI"[ïG@rcñÒçÆ]½¥±4g0{BâEQ͢ÕÂlQ’ÇÜ 2:×:ÀÊßhØX˜Â!(³i†d¹£1ç.†Ü/óìÆ”ö F¤U0V%ù£ëËæ›‹ÎnSá}Ý üŸs]’z›¤ ×Ó]CAÖ!mt­ÓY9eÕ÷‘‘^Œ8mÇ¡˜\çO^ôvØÇ²›}‘Ú F<¼ WûSP 'ëåkçáÈí‘×Xû%­GN¤®€“´‰TÚD%ZJ©ƒD¥–䛞—)ù’ï2­‰RsxQ äË/y™‡Ñ£1*œ ¾úa:Hu‚·SÙtÖíCî 6EF?=O1éù™é}^pò#‚ÎÎOeŸÓéøD¥ß9Ôw³Œ>y” •ì8t¢<û( ªJùþ…„Ù³ ;¡…‚ç!œþuŒU0}ð^qnbB©Ð·z»Yý œÈendstream endobj 771 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 772 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 773 0 obj << /Filter /FlateDecode /Length 247 >> stream xÚeнJÄ@ðH±0Í>Âî˜sŠóSZYˆ•Z^q¢°y´^©ÚÞ]E‰î⣴> stream xÚ}±JÄ@†'¤8˜&póš,m œ'˜BÐÊâ°RK E;!ûhû(y„”—ÿÙAQ·øØýgùgæ?r‡'+i¤•'í±¬¹wüÄ­‰¬]®Ü=ò¦çúFÚ×¹î/ååùõëÍՙཕ“æ–û­•{Âé4€ª“ ÅLTÍôy¤S¢!ø¤¾T*Ô/”p1î‹Ä*3—ÑJ`©‹É=s6¿Ðê:êIß“èGè&Ðc M¶šiê–ê5~1|ã Žqø—ÝO†efr®RÇ´£Ï[[6ŒMˆdð™`5Yœ:"CÅF(§„|Þó5ÿBµ©endstream endobj 775 0 obj << /Filter /FlateDecode /Length 225 >> stream xÚu1NÄ0E”ÂÒ49Bæà˜M¶²´,) ¢@T@¹Å"è’£å(9‚K–‡ñ. #ëÉú3š?p—W=w<ð…ã~(ïÍÑ‘6[;î¯Ï×íF²O¼Ù’½S™ìxÏŸ_ïdw7ìÈîùÙq÷Bãž™#h%^²J"¨s-³,&ï&¢ M€ í ÛuôŠägTi:¿È d)ȧŸÖ¿HeeÓ_èæ3¾Õ Y}‘õET“Ô¼4©’ÅÇrsÀ$²jYÐhÔ%¦t;Ò#ýãk}–endstream endobj 776 0 obj << /Filter /FlateDecode /Length 178 >> stream xÚÅÏ= Â@ठLã2'p³’Hº…Á-­,ÄJ--­×£y2Å’ñmÒkÁ…ýàÍO1…žÎrÎXãÏ5Ÿ4])/‘ûÇ U–ÔŽó’Ô URvÍ÷ÛãLªÚ,¹æ=&dk6>Âs]PFÓýÀX‚‰¼`* tÒB Šˆ&–66aQÞÖ°ãàsdôm÷´ñN|*¸ª38ªw¨ ]ZZÚһ錀endstream endobj 777 0 obj << /Filter /FlateDecode /Length 127 >> stream xÚ35Ô32Q0P0b33C…C®B.cK ßÄI$çr9yré‡+[ré{E¹ô=}JŠJS¹ôœ€|…hCƒX.Oûÿêÿÿc`ø'À\{ÁÀ0 ûÿÿÿÿ¨€øÿ?0æ‚%¸\=¹¹Rømendstream endobj 778 0 obj << /Filter /FlateDecode /Length 175 >> stream xÚÍÊ1‚@ÐO¶Øä7Á—5pÄD ­,Œ•ZZh´:J¯Dâ<‚Ü@J ˆbb£½™â%3ØþÀï•ÀŠïËÚòŽƒ®ñ»iµå0f3—Àc3n[6ñDûã†M8ŠeÉŠ·ä8¢šNDÉRÂrpEñäÖ””ÀEV’n4TK­U‘®Tí|(Uõ“B•MÒ¸ÐHÎÈ¿ò¾ð(æ?‘—§·endstream endobj 779 0 obj << /Filter /FlateDecode /Length 170 >> stream xÚÅÏ1 ÂP àt*dñÍ |­¼B·B­`A'qRGEççÑ<ŠGèØáñ~óì"^À!äO2¤,¦3+¹Ze.Öʱà ÛJûO‡37›­ØŠÍRS6ÝJn×û‰M³žKÁ¦•nî¹k…(QíS<É… =!8 *TÀS ¤Cí)ú"=‹7êãKú5üßÃÞÁgñ« ïŒŽÉ8åEÇ~P„z§endstream endobj 780 0 obj << /Filter /FlateDecode /Length 235 >> stream xÚµ1NÄ0E´E¤ir„ÌÀqd":KË"‘ * D” ¨ÃÑr”aË‘‡™8 j$\<ÉÆóÿøÌŸ¶ö|Ò¶Î9~òôJ¡Sµá®ÛJ/´ïÉÝqèÈ]©N®¿æ÷·grû› öä|ï¹y þÀ@‘€¸T2bHµ!iY)’0ˆDI¥¦~B& #´;Nv­WVú Ë#tb9w¿¹‹?1¿ý™&ëüìµ¹+'KU¯Œãwι°Ì9¿mÝkQÚŽHQ»*mAÚiÑæÿ£ùéª7Ö³’«tÙÓ-}¢¦endstream endobj 781 0 obj << /Filter /FlateDecode /Length 172 >> stream xڽα Â0à@á¡÷¦Ñε‚ÄIÓG‹88úö2:H“ºtöà>øï8¸¡êõ5g<­G¬5oHÇYc\lö”’ËINÍŒOÇóŽd>³"YðJq¶&S°"©…E™¢œE\½¸-îu׋ôá£p*X&.ÎEZ7¾Ÿ-}ËêK÷7-^D¨_~¶41´ 7Îyiõendstream endobj 782 0 obj << /Filter /FlateDecode /Length 177 >> stream xڭб Â0à+ ·ø½Ð4%q-Ô ftr'ëè èœ>šâ#tì =/uÔ ßðÿÜAÎêIn(£œÆšŒ!k©ÖxB£%ÌÈN_Íþˆ¥Cµ!£Q-$Få–t9_¨ÊÕŒ$­h+3;tA|yÉ=8úÞ‚™àÅøM?´¿ìÿé`Ñ|Ò‹-x¹I ,vQ°Oz€xøEÄÜÉ:æVôv§Ü„#J‰s‡k|jVmxendstream endobj 783 0 obj << /Filter /FlateDecode /Length 165 >> stream xÚÍϱ Â0…á‡Ò]“r €cp¤t–Bp¢"” ¨ÃhŒÂ‘ƒXæ“ý®ú ;;ÎÙòÐr‘³›pcéH®ÔQ¿®¿ìT2kv%™¹Îd‚ϧ˞Lµœ²%SóÆr¾¥P³ïE´^ úøØ/>" í_*?_‰Ú^Ó—w/–ˆÄ·¢=¢y©D-Lä¡ý@³@+z¸]lƒendstream endobj 784 0 obj << /Filter /FlateDecode /Length 99 >> stream xÚ35Ô32Q0P02ÆF †† )†\…\@$¤À2ɹ\Nž\úá@.}0éé«PRTšÊ¥ïà¬ä»(DõÄryº(È3Ø7ÔøÿëØ7È3p¹zrrç{endstream endobj 785 0 obj << /Filter /FlateDecode /Length 284 >> stream xÚ=NÄ0…_”"Ò4>BæMKiiY$R AE¶J ´±÷dDâ"9BÊV†±ƒhqñIžû½w^Ÿ6-o¸å“šÛ Þ6üTÓ+µ7¼=[;/´ë¨ºç¶¡êZËTu7üþöñLÕîö’kªöüPóæ@Ýžb†+‘"ÈEFÀˆL@)¢mŒÒyПd:½ ^{ä3z§¯dò‰b*D`F]öfÐe_6ÒÛ/ñÖ»£2XÝwƒC€úlåŒò‡KbÈWN0ÿàï;¾ÿCý˧‘4 êYbí¸ ê ˆš¢þ9y™’¯1yôÉ/’wãcå ™¨~ÍG}iV…^Õº¤ —”眲RΚ0 ݦ«ŽîèðE°‹endstream endobj 786 0 obj << /Filter /FlateDecode /Length 208 >> stream xÚ•;n1†äÂÒ4Ásâ5,Ùr%[D ¢")S$"õr4ÅGpéí`ó(RF}Å?Òÿ˜»—iÍ7> stream xڽϱ‚0à’$7À ˜x/ ¥$N$ˆ‰ &:9'utÐèf,Æ£ðŒ F¼‚†ÆÕÄßp×öþ ü¡ ÑÃ$ÇÜK8¯‹†ïÎîq b~bNeé/çëD¼œ¢‘àF¢·…4AFGi¢ú[«‘µª?«2’×%éæ72byg6ù ã•Nh—:¡]hÝB¿íçQÖ©L›)õ϶ÿ˜?›Í$nþIØd¦ä¼Ô[Xm”ÑFŽÊiÇžzÒÕŠäuA63`– ^¶Ñj»endstream endobj 788 0 obj << /Filter /FlateDecode /Length 210 >> stream xÚuÏ1jÃ0àg<þÅ7ˆÿ 4²‘ã1'…z(¤S‡$ MH×XGÓQ|„ŒJÝW\(TˆôúŸ 7uN3uúk‘i1Ó}.Gq%CËáf÷&u#öU])ö‰±ØæYϧƒØzµÐ\ìR×¹fi–Šè €éÆWà‚Op_ÝPIÓ!õ I@Ò*¤#f %×#ý¸~á,üK{ÇT#ç¼³¶,„ΰq`É(°nìYÜsLøâ¾Þ–ÇF^䃷V2endstream endobj 789 0 obj << /Filter /FlateDecode /Length 156 >> stream xÚ3²Ô3·T0P0bc3s…C®B.cc ßÄI$çr9yré‡+sé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ø000Ôÿ```ü!ÇÀÀüÁ$TßÀ à?hö ¢žAÔ30üc T"þÿŒ ¨h2ÝF»ëÿÿG&¸\=¹¹aök#endstream endobj 790 0 obj << /Filter /FlateDecode /Length 167 >> stream xÚÍα Â@ à;:ò’'ðzxµ: µ‚7:9ˆ“: *:{ÖGñ;œs]úÈù“!¹éë3pç‡cÜk8ƒ‰YǸØ¡´ Öh PsNAÙ^/·¨r9E ªÂÆl ¶BéuL[“Vùeˆ¦T³½ôÉŽdÞø@ú‡`_µ¬‹’wV| ýÿšð‡äˆš …oafaosKƒendstream endobj 791 0 obj << /Filter /FlateDecode /Length 125 >> stream xÚ32×3°P0P0b#S3s…C®B.#C ßÄI$çr9yré‡+ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. ŒØ€ÿ‚ˆ¥ˆŒþÃûæ? : æ ÿÿÿ€ .WO®@.»P endstream endobj 792 0 obj << /Filter /FlateDecode /Length 110 >> stream xÚ32×3°P0P0b#S3K…C®B.#C ßÄI$çr9yré‡+ré{E¹ô=}JŠJS¹ôœ€¢. Ñ@-±\ž. ŒþÃûæ? ŒC 1ÿcøÿÿq¹zrrp^Úendstream endobj 793 0 obj << /Filter /FlateDecode /Length 203 >> stream xÚåÐ=ªÂ@ðH˜Â\@ÈœÀMü BÀ0… •…X©¥ ¢­ÉÑö({Ë«ãî+¾¼b†ßü§˜aÖé8åž«|Äý>2ºPî³Ô~±?Ѥ$µá|@jáRRå’o×û‘Ôd5åŒÔŒ·§;*gX@l$Æu¯8lSyÕEÈžñn!Ñ­Á£X#xiTCÄÆ©F•þHjODO' 0¿ôvÒÊÝö§þ³B÷J#n Ò$"¡ˆù&š—´¦ݤ›endstream endobj 794 0 obj << /Filter /FlateDecode /Length 159 >> stream xÚ35Ñ34W0P0bSC…C®B.˜ˆ ’HÎåròäÒW01çÒ÷Šré{ú*”•¦ré;8+ré»(D*Äryº(0þaüÇÀðÿûÿ@RŽý´`üÁÀþ§€ñóŸ ÿ`ø$@äÿ†z É€ ÿa/É òmÃÿÿ?ìÿÿC&¹\=¹¹?qjSendstream endobj 795 0 obj << /Filter /FlateDecode /Length 209 >> stream xÚ= Â@…GR¦É2ÐMtý©bSZYˆ•ZZ(Ú‰ÉÑr2EH|›((vÂðí̛ݷ«Ga_<éIÛ=Ý—½Ï'Ö]ˆžQêÎîÈAÄj-ºËj™U´Ëùz`,§â³ eã‹·å(¢8!"«Ê@'-À1¹à4r²Sjed=L A Ñ‹]l»ÓŒßÄñ V0ùee˜þǯÛ̬äsnãÄ…«òíž ²Áœ¬Ì”/óÍKÝ´í*ëßàYÄ+~PûZ>endstream endobj 796 0 obj << /Filter /FlateDecode /Length 218 >> stream xڭнŽÂ0 p[*yé#à€4"€øè€t7Ýpº ‘Á }4¥Ð±CHpH'n¼[~ƒ­8{`zzÄ9÷¹«Ç<Ðl o5É„jÎÃ~ÛÚìiVúb3"µ’:©bÍçÓeGjö1gMjÁßšó*Œ6±Þf¾'i%°ôQ|”p”Þ´Dй£+”7Y´¦Ñ&˜Dí»èþêï™ñÇÖºÍã^ÙÜ+­džF˰ÅU6ºƒ´uÒˆ“¬;Ò‰wþÛĽoÞ¤eAŸô$”Ššendstream endobj 797 0 obj << /Filter /FlateDecode /Length 144 >> stream xÚ36׳4R0P0a3…C®B.c˜ˆ ’HÎåròäÒW06âÒ÷Šré{ú*”•¦ré;8+ré»(D*Äryº(0ÿ`þðÿ‡üŸÿ?lìþÿ(¨gÿñà?óÏÿ6ügü  u@lÃøŸñþC{Ì ´÷ÿÿpÌåêÉÈÈöPêendstream endobj 798 0 obj << /Filter /FlateDecode /Length 213 >> stream xÚMͱNÃ@б\DÚæÚTdëä""R.HE¨€’’‹ˆøÓü)÷ ‡h®°¼Œ!Åkfg´¾:[œë\½ž–ê—ºXêS)¯âK†såí÷òø"›ZŠ;õ¥׌¥¨oôýíãYŠÍí¥2Ýê=7Roë0ͬ¯&aÖ8äéYZi4 % :šŽú£¬1X[ÀÌz83L̺ܘE†œ[yß!8}†?£øË+–÷ÔðO2dñ»ÍÃWtm8 è\„\Õ²“uYÛendstream endobj 799 0 obj << /Filter /FlateDecode /Length 160 >> stream xÚ36׳4R0P0RÐ5T06V03TH1ä*ä26PA3#ˆLr.—“'—~¸‚±—¾P˜KßÓW¡¤¨4•Kß)ÀYÁKßE!ÚPÁ –ËÓEó¡a9$lÄuPüˆÙXþÿÿÿ¡$N#ÌC®ca¨gc{ ùù ì00þ?À”àrõä äùJmendstream endobj 800 0 obj << /Filter /FlateDecode /Length 162 >> stream xÚÍË1 Â@…á·¤L¡°˜ èfqCÊ@Œà‚Vb--+'GË‘<@Ⱥ!Xè l¾âý3©™ŒžóÔpjØZ>ºíÇ„m:”êL…#½c›‘^…™´[óíz?‘.6 6¤KÞNäJV- ð-rÿeÜByD¡z 7ÿ«ÿU}Ä`‡(øD,uxIƒé0nÒ·WR héhKo©b“endstream endobj 801 0 obj << /Filter /FlateDecode /Length 202 >> stream xÚ]Í= Â@àYÑ6sݬ®+Á0… •…‚Z *Z»G²´ÌQr„”!ënÄ5Ø|Å›7¼¾èȈBêR[ìÑ^àË0$)?—ÝG1òÉùÌÄÈã9]/·òÑbLù„Ö‚Â ÆÒ:c:¯êk€{ê-Ŭ`m8ë¦8•u¨ t&p2 l©µ™Bâ̘ÑϘúê½> stream xÚMÏÁJÄ0à?¶0àöª°Ð> stream xÚeпJÄ@ðo \`^›B¼yÝÍ] ç ¦´²á@-íÄÛG²´Ì£äR^w¢ùÃÙüŠ™]¾™9ŽŽâ„ Oùpj8>åxƽPS5œÌþZ÷O´LIßpœ¾puÒé%¿½¾?’^^qDzÅ·›;JW\×…ªË¡~ lr¯&V‰÷g¸î¾{„'À´N2¬;säÀ8GÖêÊvn=§·õЪÊQoåb]pл ~‹‹¯^¶ã8ëõí®Ø:úg00ìœ7~Êžî¿®JT¥Ä٠Ͼüœ4s”M^!ÒyJ×ô[ÍX'endstream endobj 804 0 obj << /Filter /FlateDecode /Length 197 >> stream xÚ=ϱ Â0Æñ¯8nñzO`Z¢  j;:9ˆ ¨£ ¢³y´> stream xÚ32×3°P0P°PÐ5´T02P04PH1ä*ä24Š(YB¥’s¹œ<¹ôà ¹ô=€â\úž¾ %E¥©\úNÎ @Q…h ¦X.O9†ú†ÿ ÿᬠ—Àƒ€ ãÆæfv6> † $—«'W ÷ '®endstream endobj 806 0 obj << /Filter /FlateDecode /Length 94 >> stream xÚ36Ò3U0P0T0´P0"…C®B.#3  ‚D"9—ËÉ“K?\ÁÈŒKßCHxú*”•¦ré;8+ré»(D*Äryº(üÿÿÿ6ÌåêÉÈ#ˆ'ïendstream endobj 807 0 obj << /Filter /FlateDecode /Length 207 >> stream xÚ½½ ÂP F¿Ò¡¥Ð¼€ÞVn«“‚?`A'qRGE7Áúf}”>BÇÅšÞ‚Šè*3$|9º×î†ì³æV‡uÈQÄÛ€¤}®+ê5“Íž†1©%kŸÔTڤ⟎ç©á|Ä©1¯öר8Ux·èã”À*à%V7±38©“ÂÎ \Aî&°rOP ådeyÜ¿¡>Xý ?c\%éý#øë£æË'q¶(I£©fÔ‰µNšÄ´ ƒ…)endstream endobj 808 0 obj << /Filter /FlateDecode /Length 131 >> stream xÚ3±Ð37U0P°bC33…C®B.c# ßÄI$çr9yré‡+qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<] >00013Ëñÿ ÿAø9³ùà óÿúóCýÿÿÿa˜ËÕ“+ Ìt^@endstream endobj 809 0 obj << /Filter /FlateDecode /Length 259 >> stream xÚ]ÐÁJ…@ÆñOf!"·."ç åÚÍE0p»A.‚Zµˆ ¨vµ ôÑ|Á¥‹ËÎgH0?˜ñ?p´¬NÎNmn¹ÊÒ®×ö¹wYUºÏ¹å‹§7ÙÔâîìªw¥§âêkûùñõ"nssa q[{_ØüAê­…ÙÈB´aD4%;˜>Ú#îp¨§Ýà{%*eÌdl”鈧W”]èHÿ‹ùOË·ž¦…dfä 3Âױt¢KÒ‡óF¼oæû¼³MØfl=³oÂ,"†EÌ"pLΉ~WІh–Fš¥F³*Ö4×€& !Œ3ž´DWþËZnåÎvjendstream endobj 810 0 obj << /Filter /FlateDecode /Length 257 >> stream xÚmÁJÄ0†'ô˜ƒyÅÎ h[éÖÞ ë ö ¸'âiõ(¨èÕöÑò(y„sÆ™ì$ä;dfþò·ýùåšjjéì‚Ú5u=5ø†mMrºþPÙ¿àfÄêžÚ«~Æj¼¥÷Ïg¬6wWÔ`µ¥‡†êG·*€‰`ˆß‹Z@y˜æÂÂ`5@éNŽ0Þ8FéÁ„ Ê ðÒxÖ‘õPºŒÁ fÆÄ¾ŠÍ¡HmVJ[ù\8ô¥ )ƒqYT‹‘Nà K†Jˆ¿8L3#Úÿ±Ä™g¾DïU”kñèÙ-¬Ä2¥¡gþBá8&%ÁÃ1DñÂëwø>³vqendstream endobj 811 0 obj << /Filter /FlateDecode /Length 206 >> stream xÚ¥ÐÍjÂ@Àñ„@CÐkBç º·‚Ð õäA ¶GAEÏæÍÌ£äMbö/hèµûƒÙf–Éf¯Ó±Zµ'›èdª?©$¶¹u©{øÞÉ<³Ñl(æ½½“èéxþ3ÿ\h*f©ÛTí—äKõ> stream xڭбJÄ@à?ìÂ4y1󺉗‹[8O0… •…‚Z *Úš<Ú>Ê=BÊKÖD¸Òæ+f™™¶ö‡Ç+.yÅG\×Ü4üPÑ -½Knü÷Ëý­;r×¼ôäÎ¥L®»à·×÷GrëËS®Èmø¦âò–º ÁØ`#úÁ¦” ÌJT&e« 0m´ã?H‚M¦ÈF3âC‚ …P J°@¤#ßJ“ÿ2 ‹_â.N”^‘v2%5+w:ù‹gY9–º×Cbì)û@;ä@¯ùf,B‘M¥—B‘~2ÑYGWô îøeßendstream endobj 813 0 obj << /Filter /FlateDecode /Length 257 >> stream xÚuпJÄ@ðoÙ"0…y!óšDr1•óSZ)ˆ ¨¥ ¢­É£åQò[¦X2ÎæN¼²ð[˜ý÷ÍÕñéŠ3.øè„‹—%?çôNEÆa”Õvåé•Ö ¥·\d”^j™ÒæŠ??¾^(]_ŸsNé†ïsΨÙ0yµ("=¬·¢I 5p‡oI—àu·ë~ѽvŒ§ œÚ§î´„©5âÐF‡à rˆ¤“ q/ošAz½ ¹FÅÌxé¶`Úcο¤ý=!õ‚)Ùa¦$¼ï°ãÜ ¹Ðï íkÙkRý—:ô5±Œ€•ðš†.º¡Ö̈%endstream endobj 814 0 obj << /Filter /FlateDecode /Length 262 >> stream xÚu½JÅ@…O˜Â}‹;/ I$7¦ \¯` A+ ±RKAE;¹ÙGË£ì#¤L2Î&"þ _±»ÌùæÕÑÉš3.øð˜‹5—%ßçôLEÆá”Õòr÷H›†Òk.2JÏõšÒæ‚__Þ(Ý\žrNé–orÎn©Ù2 ñ€•hÝŒØ!P#îa]âa:ã‘xÛ-ˆûÚ}bh~mhœ!?0…áÿB~! ø?#;CsŨ¨Ð^À¾¨ßJÔ´¼ãIPG^`ÄM !A#`ü‹xøBo’~^°Ö}gt ëtÚ†ºìpêY…zL¨Gûðê%NýCŒí:kèŠ>¹Œƒyendstream endobj 815 0 obj << /Filter /FlateDecode /Length 105 >> stream xÚ32×3°P0PaCKc…C®B.CrAɹ\Nž\úá †\ú@Q.}O_…’¢ÒT.}§gC.}…hCƒX.O9†ú†ú†ÿ Ä–c `3ËÕ“+ ö…(endstream endobj 816 0 obj << /Filter /FlateDecode /Length 230 >> stream xڥѽ Â0àá¡÷¦…¶Ø©P+ØAÐÉAœÔÑAѹ}´> stream xÚ½’¿JÄ@Æ¿%`` óÂÍ hþ`Œ×xpž` A«+á@--»|±t¾Æv¶)-­³»ÉWXZýÂd¾owç›*;9-8ã’ >+¹Êø1§*çR̸*üŸ‡gZÖ”®¹œSz-eJë~{}¢ty{É9¥+ÞäœÝS½bÉØ é È˜Þ2Ô „‹–FJŸÑ -_ñ ¾5’ÞJ5fÒ‚FÛvÑh4­PŠ"¡V»‘ƒe¬£‘ÖF T ³ûì·Íß„iÿ—Ó¹{ ÷šî=¾#0¼·÷ôs@7ÑÏIMlý£VMtsŽáç~ŸÃ!|.Gð9Ãçö—#äÛÙ˜­0¶Ì\f¼·Ý Œ{‚qo@W5ÝÑ/X¸’Iendstream endobj 818 0 obj << /Filter /FlateDecode /Length 220 >> stream xÚ½Ò=‚0à’$ßÂüN`!!U'ÄDŒ“::ht†£qŽÀÈ@Z©mIjüÙlBÚ-ïË$ÇCŒû‡ÏOñÁ¸š‡jª^gHs`[ä1°e¿ ,_áíz?K×sŒ€e¸‹0ÜCž¡ì‡ „(eml ñdE|µQ”ýb©M*mÐhýVK;-Fi,ŒI©U®Aml´¾µu¥Öø¡ü“ΧâûýéË÷Úl.CNµ›ŸÍÕZ¸=x¦Úº½%õÐë³gizïÜÿ@Õ‹6ð ·¯7endstream endobj 819 0 obj << /Filter /FlateDecode /Length 202 >> stream xڅѽ Â0ð+…n¨/ åžÀ´¨¡ƒtðÌ èä Nêè è&ê£ùXÒØ+blkàøq¹þRvº= (+Ù%Ñ6Äö£´²6lö8T(–ÔPLÓ]jF§ãy‡b8QˆbL«‚5ª1é|=ÁÔÒ€Û3­;€û*´X(½°¶mèÕèüÑÍuÀ®õ }6f“\­«-çŸó~ͽ ïxTkÝ‹ÿýÓ6…o]Ö¡o³WÎ1á\Î9áÜ_?âDáß­k•ªendstream endobj 820 0 obj << /Filter /FlateDecode /Length 130 >> stream xÚ37Ö3°T0P0b3K3 …C®B.3ßÄ1’s¹œ<¹ôÃÌL¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. ÿÿÿ?Àü PhÆÿØÿ70Ô7000þc~4È«Øèáê_ì4,žq¥.WO®@.þ†Ãendstream endobj 821 0 obj << /Filter /FlateDecode /Length 171 >> stream xÚåÌ1 Â@Ð [~¡ò/ »1F“JˆL!he!Vj§ ¢uöh%G°L²î‚……7pŠWÌÀÄj RVsÈ£˜Ç BºRäJœϲ?SVÜp”’\Øšd±äûíq$™­f’Ìy²ÚQ‘3ºÆ´_@ x6ÿÂÔQj‹yþÂka´–Dƒ D~ü:èVðhˆªt—%¨š´¦7¥Tmendstream endobj 822 0 obj << /Filter /FlateDecode /Length 152 >> stream xÚ33г4R0P0bSs3 …C®B.S˜ˆ ’HÎåròäÒW05âÒ÷Šré{ú*”•¦ré;8+ré»(D*Äryº(üÿÿÿ*ÅøÿÔ€P £ˆ2ÀC@¨ÂÔ,ãdŠB±£PüÊBÕƒ)Æÿ€ˆAþÃ0@£¸\=¹¹õR€£endstream endobj 823 0 obj << /Filter /FlateDecode /Length 258 >> stream xÚ}ÒÁJ1à ] {-(tžÀdiµñb¡Vp‚ž<ˆPY¥§R=wÁ[ðEú{ÜÃÒ8Szh»M ß$‡dÈo¯/C2tÉÓéÊÒ{ŠŸ8²\)å _à$CýL#‹úžwQgôýõózòxK)ê)½¤d^1›’sðˆ]ã\)Jö¥vÚ,×¢³ú´æ•hp ¼å½5¢?f|#¨ßC­XQäÓ˜éxÕçFºGJøù=¯bnÄxujQüüÒ+Ø€*üZAÇ€úe7 dÝk)®L@Q= H5eKÀá ˆÿFTµ¥¸¸Ù*q[qœ«àœƒ(ùk ï2|Â]áÍãendstream endobj 824 0 obj << /Filter /FlateDecode /Length 259 >> stream xÚ]ѱJÄ@à Lá¾™'p<¢×8O0… •…Ê)V"жæ*Ÿ+•Ï‘Ê:•¤Ygw‚ÜÜÂòíìÂÿ{tx-(£9ïbAÅ1=äøŠ…Ÿ3?úÃú—Úk*æhÏùmuAïoh——§”£]ÑMNÙ-V+rn`¯f² ‚\uǦxéYÿ> ì `=jïx烷­±lµi'š^› b8çövœžUx…è°ˆ™endstream endobj 825 0 obj << /Filter /FlateDecode /Length 280 >> stream xÚ½’½nƒ@ Ç2 yáÎ/ÐD%dCJS© •Ú©C•©íØ!Qº&<Â#02 \±M9¤0‰Óïüqw¶ÿYºÜÜSL)Ý­(K(‹é3Á®ÓÞS¶RÏÇ7n ´o´NÑ>õf´Å3Ž?_h·/” ÝÑ{Bñ‹€é@¾À¹J lÂFÀ” ¾3@.!-@ÄA‹> ¬AÞˆ™Ýœ’–™òËî*PB §š œQíAoî×"…–½|s F¡óËÃë \ÜJ©iÜåÂÌ oÀ×¥%Oà¶¾cj{¾ó:‹šçéT~LpaàE䫸 »› `”›M5•Ò(­Qlƒüð±ÀWüq¦2endstream endobj 826 0 obj << /Filter /FlateDecode /Length 184 >> stream xÚ33Ó36Q0Pa3C3 …C®B.S3 ßÄI$çr9yré‡+˜šqé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÁõÿ„úÁÀdòEë€L0 Jþ˜â‡Pì Ô0Åü…ú¦Q©ÿ¤R(Ú¡f¢Zµê¨Ëä ¹¨D}ôß‘¡L1þ¢À±‡Nq¹zrr¥¦’)endstream endobj 827 0 obj << /Filter /FlateDecode /Length 252 >> stream xÚ¥Ò½jÃ0p †[ò¹hd‡`e3$)ÔC ™2”@ íØ!!Gó£è­ ©ï3üU?&Æ ûw†ã0ÿ ó,N=jÂô7˜>ÌFTÒ¿ž¸‘Ux4·ÙF=„E_¹%¸\áµ€=Ü/ɸhendstream endobj 828 0 obj << /Filter /FlateDecode /Length 289 >> stream xÚeÐ;NÃ@àßrai›=‚ç`;qѰR. ¢@T@I‚.J|®²7aàÒˆÈÃÎ$ÊCi>˳óØI}^M©¤ ¨¾ iI/•y7õ8KšŽ6'ÏofÖ˜âê±)nbØÍ-}~|½šbvwE•)æôXQùdš9!a¤€åŽûè€Á"é‘[dÙ72ô¶•ÜÃEW¸Œ:,wæX¨ë¨=0;rØ™nåW-¤·WƒèzUR‘³„,k–Ÿ”9¶M˜¥<êåÜI÷z°Ö:©HxÛDL¹ÕÎc¿ŸêÔ|c=1;2œØ‰^´¾ßÛê]ÚA·Äº7™¿Ä_l´Æo'kïH;tÎÛ€_Ñ"èÅ=\lh®soþWŽŠÐendstream endobj 829 0 obj << /Filter /FlateDecode /Length 160 >> stream xÚ37Ð31R0P0b3s3 …C®B.3ßÄ1’s¹œ<¹ôÃÌŒ¹ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. öÿÁàýAþÙ70ð``þaÇ¢~Ô@èš m£ ´ :¡yÑ 4!šB3ŒÒÓÀøƒú ’í 4—«'W +‚qendstream endobj 830 0 obj << /Filter /FlateDecode /Length 210 >> stream xÚíÒ½ Â0ð+‚Â!vu½ФZj?À ‚N⤎‚ŠnBûh>ŠàèPWj…€#:‰,{÷)=ûF”Æ(ƒc¨[eàÅZJ ö*8œ~9È1d ÙplpŽ/ërŒendstream endobj 831 0 obj << /Filter /FlateDecode /Length 229 >> stream xÚuϱJAà¹ba ï ¼yÝÙhº…Á+­RˆPK E;1 ¾Øt¾Æ½±»âp½‹ S|Å?;?¬ŸÏxžjösö3¾­éüTCÆÍÍ=-r+öSrg“kÎùéñùŽÜââ„krK¾ªyrMÍ’a{è„Õ®lBŠ-`a:`Ðu)xªu‹w­äG½W‹˜ÕùÇ2©&e˯œɦá¶ÏÚnh›‡Î ÙÍhüuð‡aǨ‡k}ÿ¡ Þ[ bÔªµoŸb»ý"E“z“†O¾€Nº¤oÉŒlaendstream endobj 832 0 obj << /Filter /FlateDecode /Length 203 >> stream xÚ½ Â0…Oé¸KßÀÞд¤v øvtrAPGAEÁA0–Gé#8:õÆÜòANȹß-LÇÎØp;ç"ã¢ËëœödJ åZ¾_V[êU¤glJÒ#‰IWc>NÒ½IŸsÒžçœ-¨0pu@ÜÜ€Ä_‹x vёÒZÕ°uú/¬{#õÒ¡^EÈAó^Uö‹ÌzÌÅN4° ¨E A2ò¢;Wa…Äé ¨°V4¥'VhLrendstream endobj 833 0 obj << /Filter /FlateDecode /Length 261 >> stream xÚ•Ð1J1à?¤X˜f\@wƒà«Ï'¸… •…X©¥…¢`ñ`s´%GH™Bv‰Ú‰ „åÏd²[;Zç푳þDÖƒ£gÚxNGë7ß[÷O´›h¸±OÃç4L—öõå푆ÝÕ™u4ìí­³ãM{  ¯ æ…Qµ@—uLÔ™c¨|…7Š®ˆ} ûŽšQ’¹¹r«ª–UÕÜ@•ŽÕÍ.Ë¥}M2Ü2DqËÅ¡ÈGÈzëÊ'Xn=çö«éw¥âñ/ÇYÑ5}pÄvúendstream endobj 834 0 obj << /Filter /FlateDecode /Length 406 >> stream xÚeÓ?NÃ0ð/ÊÉKn€}hCQÕ¡ª¥R$: ÁÄ€˜€ H*âNŒÜ€“010rä#xôP5¼—¦ùÓ‰ô‹ý>ù½$IÒ=8LTW%‰ÚOèÞSýžºMÄ£Hºü¼«úGåâͽOEçRÑŠèœÒ‚èLÏÔóÓËèŒÏ=¨+ªºÓ‰Bœ¹´Ý¢Ü!È—ç!‘};Ç+HhƒÐŽàb™!Ìt`¡1ã¤Èè0£-±e¼è…eÄÐï€ü¦=ŽñAø1 Šü$ü‚±í %Ò#¤Ž°,0DJÇ•¾®‹yVôÁ˜71«Ú܆rj7¥­²‹‡`Å0ÐBÈØ„Ô º‡Ç!;ˆU| ª‹|#¾'Æ~m¸u|ЯRëø]Øu|ØŸ±˜…_o­á1(NÎñ„Y…˜Qެ˜a®š’lÁ6#“–>› trJ:k!̪‘µa"Sl qã4!Í^ýF¤ֈ͠ ‡Ú×E_¶F@)ÿ)3º@?†8™Š ñûEöendstream endobj 835 0 obj << /Filter /FlateDecode /Length 272 >> stream xÚ]±J1†'l˜&°óš[Ü Ç ç n!heqX©¥…¢`!Ü>Z%°eŠÅ83»Š„ðgæŸÉßu§ ­èœNê…3zjðÛÀâŠB;¿<¾à¶GOm@Í2úþ†Þß>žÑoo/©A¿£==`¿#p™‡Â0ÙFMb`Ø|¬•ó% ÍøË/¨˜IXM`Xf<¦cf!;»$óŽð·›„¶ ʬ”¥ªR¸Ö•J™tÙof­Ï\4¨4÷E1™yÐÊúÿP¥]èäÇIªl’颸¹A&0ÅM²X¸Q®9Iˆâ„85ΦæÝ#wÈወÙdÝUf[ù^õx‡?[Ýsäendstream endobj 836 0 obj << /Filter /FlateDecode /Length 223 >> stream xڽѽjAÀñ9®X˜fß 7/ {ËNAü¯$•…¤J,- Á{´}”{K ñœ9oY’ôÙâWÌó_¶×ëæ9¥d3êXzµÔзÅ-f2Mi௾68)Ð,)ËÑ,xަx£ýî°F3yŸ’E3£•¥ô‹D¨‹Gÿ$ TžqÀyÎÒS % Ü=1Só¹þÔM¢®øï¼–›GþäEŽËâ'\¦J.Ó Ò˜HÞ‹”„¡pŽÂ’’?¥%v *Í‹Ü *ÙT7äzœø‹ž‰éendstream endobj 837 0 obj << /Filter /FlateDecode /Length 293 >> stream xÚ]ѱNÃ0à?ò`É~ƒæ^Ò ªF*E"L ˆ @ ujüføQü=D çà‚ˆ%û³îdëή–'Ë%Í©\ÐqI§TÑs©ÞÔ¢â蜪ó”zzU›F÷´¨TqÍqU47ôñþù¢ŠÍí%•ªØÒCIóGÕl @nÇàã*üJ@ÛY çæ(²‡¬™òË"ë   éíýÁg"µa€6‘a$ëgB$:Ä­ŒttøE&r?…uÄ£vS8ßFZ;¥NXpÁÚ„‘?h®ýÀ`òÌþóÓåšVíØPD25WÔcw€ß©GÈ V<³c´…ï2§mæö™“Nؽ°Âi³æ_ käš+ñ¶ñ­ÔU£îÔ7%‡lendstream endobj 838 0 obj << /Filter /FlateDecode /Length 290 >> stream xÚåѽJÄ@ðYR¦É˜yM̲pž` A+ ±º³´P´”äÞ,÷&ñ ´ËAȸ³›„ÃÃΰ¿Ý%“ͦ‡GÇ”RFûš¦štšÒRãN2»šÚ¹ö{‹{œå˜\Ó$Ãä\Ö1É/èéñù“Ùå)Ùùœn4¥·˜Ï ܵç0Cþ v þ-¸ôˆ¸ñ0ÜypiV‚ …p-P¯‚¸ØLð"(J€Ëv×W—ÀU+ov®Œ‡-ã“ßúcDâõg˜Uâ7({ð_`üú7'4»¨¿ ÁlÃ…éâm¶sކH/@×b€±'Û¸^U Þ¶b°æÊUŒVlÿA1J·1×vÏÞ€g9^á[9×^endstream endobj 839 0 obj << /Filter /FlateDecode /Length 267 >> stream xÚ‘±J1†'lq0…ûÞ¼€f̰pžà‚Vb¥–Š‚]òhy”}„-¯86ÎL¢œ‡• Ù/Ìü;“üq«Ó5äè¤%×QwFO-¾¢kHfçræñ×Ú;r Ú+£®éýíãíúæ‚Z´ºo©yÀaCÕ 2–i¤´å¯™5º˜À€z„>‚¬%k<&rš¥,«¶`vŒìd+q3Ëß’1«^+ü ô\úoxE<@ØG*Ðqˆ ÷ù/|AüýoŒÙ¸=˜¨×,¨¢8U(`‡Ø´ fA-©‘pœûžçÚŸ¹Ú¤Pjí"ê{mœ¤ÔIš€‘ƒã倷øYRŽendstream endobj 840 0 obj << /Filter /FlateDecode /Length 351 >> stream xÚ­‘ÍJÄ0ǧäÈ¥¼€¶‹µ‹§Âº‚=zò ‚ =øu“mÁë£ärì!4ÎLRuD¶„™ÉÌüg¦^îW¦4•Ù;(M}hêÊÜ-Ô£ªKCÿQ•\·jÕªâÒÔ¥*NÑ®Šö̼<½Þ«bu~lªX›«…)¯U»6À_‡GzahBŸ ‚Õï„—ã›t ]æ2 º‡¦G6Da)…Æh˜rûÅÌcf÷EA¿1-Û?pλëÛÕ³«÷³î I}Òˆš6Ä¥£P€gOén Àâܘ’ÝÙ'û+ít‰c¢„036u! è’¡AÒMÄ"9Ñ%ûÈ} |H³=¤X9ÑZ±H v¹÷]Ͻãm³E=L‰QVþgÎq)Ïœ¯ïRþT7éØD]àãn²¤Çó cˆ»Æ’|´M É'bÛ<Î%øªNZu¡>ÚvÔendstream endobj 841 0 obj << /Filter /FlateDecode /Length 219 >> stream xÚ37ѳ°T0P0bsCC…C®B.33 €˜’JÎåròäÒW03ãÒ÷ sé{ú*”•¦ré;8+ré»(D*Äryº(00`öÿPÆ"Œ0C=Ã~d3ê@Ìÿÿ@üÿÿCö àP³?PÁ ÿÌøÀÀÿÄ8x€ýˆq¸¤Íþ83˜qÈøe0‚w`Œ0H+Èû¸p3Œ2¨ÆÅ>ãÿ òÌÀøþÿÿÿf qƒËÕ“+ ‡ÞPendstream endobj 842 0 obj << /Filter /FlateDecode /Length 142 >> stream xÚ36×31R0P0bcCKS…C®B.#ßÄ1’s¹œ<¹ôÃŒL¹ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž.  Œÿ˜ÿ30°ÿoÀŠAr 5 µTì ü@;þ£af f€áú!Žÿ``üÿè¯ÿ ȘËÕ“+ > stream xÚåÑ=JÄ@ð )¯É2'p2°Dl ¬+˜BÐÊB¬\K E;qÒy­ˆ…å^aŽ2EÈ33ïŸÂEô„ßdȼ¯Ú»Ò¥Ou¤mYê­¥ªÂAßÃîöžÖ ™+]­Èœ…c2͹~z|¾#³¾8Ñ–ÌF_[]ÞP³ÑIÚ%ae,ò*˜¸=ëÿcÊ<üæ<¬6êF¹ç<ì â½Âö¢òÈÓ‰Y+æÈ _à ª^L½˜ubÞŠ¬qîð‹ï,÷?vïóMÜectJ§è¨ÄAq´O8Öç‡:ê®ÑG±ˆþò}-¢ÿ˜ ô¿È˜KHçÖ~Ÿc¹‹½DÇ='ùù0t[°gž7×ÒiC—ôÍâÞÏendstream endobj 844 0 obj << /Filter /FlateDecode /Length 123 >> stream xÚ36×31R0P0bc#C…C®B.#3 €˜’JÎåròäÒW02ãÒ÷ sé{ú*”•¦ré;8+ré»(D*Äryº(0°70ðÿo`ø†™˜†ëG1Õñÿ ŒÿÃúÿdÌåêÉȸ§‰ôendstream endobj 845 0 obj << /Filter /FlateDecode /Length 252 >> stream xÚíÒ±J1Ð;¤¼ÂùÁ|IÜeÑj`]Á)­,APKAEÁnæÓ"vÖù„”[ û|Ï]°\k±äÜ„[Ý÷vGÜXN n2rבî)M‚Z/W·4mÉŸËŸ1ùc‰É·'îñáé†üôôÐEò37.\P;s0 ]*îËÉðÔ\æT3&‚œ0þÆ3vr•ÑõŠ‚ºHM“¤å%Á.,äè^{ØaK uÝ`†m)4ï‚å¾`±B¥°ŠOÅÝŠË5䀳¶Š"mDVô‘øÇ_ÅÏ—ÊBŒ.¤fY/ë©ó/AG-Ñ!A Bendstream endobj 846 0 obj << /Filter /FlateDecode /Length 207 >> stream xÚíÑ¡Â0à[*–œÙ#pO@·@ ¨%0&H@! $¸ñh%Ø#L"Çu€…D´ùþ¶—KzzµÙ¢ê²™Í"\¢1’CÝÅtíõˆŒAÝ“SÔiŸÖ«Íu{СuBãˆÂ ¦ ²åà³U|0Û€ù‰Ø–ØB%/Q@Px¼·à_åQvØïʲ#€rˆO‚û ^‰Ëç7\©ëŸ‘†ýãgpÓ÷x'A~^ɼ™¹P²Ù/ÀnŠC|U¸ýendstream endobj 847 0 obj << /Filter /FlateDecode /Length 249 >> stream xÚ­‘±NÃ@ †}êÉK!~¸5Ç©©*ÁÔ1#æÜ£õQú3T9l× êÈÝIßɾü±‡Ûë5•TÓUEá†Âš^+üÀ:p°¤PŸ3/ï¸éÐï©è·Fßíèëóû ýæáŽ*ô-=UT>c×€Kxåiôi$Þ«Š@v”#W@Áø!ç'=rå4à8 E\)™æGCÎ †B1Š:‹6ŠÓ½bê¥:wZ¹KÿŠ??²"XÖi=Ì1w«½fùbpêYœ4?Í]óšeä[›ƒã©ÄßÙÄt~xßá#þ°´”ðendstream endobj 848 0 obj << /Filter /FlateDecode /Length 288 >> stream xÚÕѱNÃ0Ы2Dº¥ŸûHmÚN–J‘È€SÄÔ22€`%ù4£Œýƒ*Ÿà1CÔÃg[!uBbˆòîbŸ»Éèt:£ŒFtr6¥IFÅ9­s|Âbl³ÍòðiõˆóÓ%cL¯lÓòš^ž_0ß\t—Svå‚ ÒPiˆYÇÜY0ë„Ù£Ö-$F°i nüQC$««­ö‚l±réÚ¢•ÈîWFÐ$\E‡aë×}!î~"Ú÷bÀÇ ö€?ÄqëÿÁ®·®Q®uæ{3}>t^ ãuCaÊΟ jëeG)…Am´«êÝø¢J¿IãŠe­Å[W.Üç¿¢jØ„7ý¼,ñ?n·Ùeendstream endobj 849 0 obj << /Filter /FlateDecode /Length 185 >> stream xÚÝÏ? ÂP ð¯,d°«ƒÐœÀ×ÚVt*øì èä ‚ Ž‚ŠÎ¯GëQzÇNÆ÷:ˆƒx‡üÈ—@ i¿—Drj*ñ æCDJb“Cíb¢qNjÍILjn¦¤òß®÷#©ñr©)oÌ™-åS†¯†/ž–ÂX¥ˆSeF·Ô•+^¡+ˆkÛª»d%ôA¢è3ðv×X}Xþ´øÅ~äÈö"õ7i–ÓŠ^¤Ds.endstream endobj 850 0 obj << /Filter /FlateDecode /Length 281 >> stream xÚuÐ1NÄ0Ð¥ˆäÆGð\’o$"-‹D $¨(PR€ [mr®â›#¸Lv˜q v š'Ù3þ3Éêì´n¨"O'5ùsj<=׿Íx/—5«¥òôjÖ)ïÉ{S^˵)»úxÿ|1åúö’jSn衦êÑt8ä€å©zÞ[dŒö yDñbDΰƒtÁ‰=Z¨b‹è°M΢ýÇûyqPû¡©“Újë•e^Œ5X*³>ìYëŽYžÌ:#•õB´IjÆ!¥MlGÕ-ƨéÉâH]$?r>Pçäcš6òŸA§Ù ÓìÖ~¢þ¥I"v˜¶ÈfD7¸ˆ(Ÿ0æºl@/]æª3wæׄŒœendstream endobj 851 0 obj << /Filter /FlateDecode /Length 191 >> stream xÚ35Ò31T0P0RÐ5T01U°°PH1ä*ä21 (XXBd’s¹œ<¹ôÃLŒ¸ô=€Â\úž¾ %E¥©\úNÎ †\ú. Ñ@ƒb¹<] @€ò>’ƒdF"Ù‘H~$RLÚƒÉz0ùD2ƒIþÿ@ÀðƒD1aˆ’Œ¨L²ÿ``n@'Ù˜ÿ0°3€H~`¼ücà1ƒ(¸l@Aÿà(ÀáÍþÿ8¸\=¹¹~@‡Øendstream endobj 852 0 obj << /Filter /FlateDecode /Length 203 >> stream xÚíÒ¿Aðïr Éî$7/ÀÞÆeQIüI\!¡Rˆ ¥¡æÑîQ<‚ReÌž V÷Ûùv¶ù¶™Ö[mN8åšå¦e×॥-9§Ã„]úHkêfd¦ì™¡ŽÉd#Þï+2Ýq-™>Ï,'sÊúŒ0eQĈ"”ïüå²ÇÜŸÞÑñþñ3‚Ï?£(%V” œÊUè… Ð’“n(6áÁY4nú+|×<>èÈ­h‘\Ð ºEƒŒ&tj8­Úendstream endobj 853 0 obj << /Filter /FlateDecode /Length 335 >> stream xÚ}ÒÏKÃ0ðWz(ä°ýÅåÐþ@êÜ`‚ž<ˆ'õ(LQð–Àþ±Üöoô/Ðw(‹/Éëh3&ô‘ORH¿}ÉEv–ó”çü4ŸñŸœ¿d쮦|–Ñ«ç7¶¨XòÀ‹‚%7¸Î’ê–~|½²dqwÅq¾äOŸXµäZk ¡Öêz ºÅªe & '²ƒ©N°ÆM±ÙpŽLÀÏÀ7Vh°2؃zeÊB†—C(ˆ,JXÔÌ:òÐØÈ6tì°%`Ö©‡ÖF¶¡WC`ÖÚƒv‘1«KÚÇš Ö’°!”ðñK˜ütØÆíQØN6GÑ%íAù÷>"ð1î0:@|€y×e¼fx~®¹x ÷¨}P@QS@¡ÜéC))NIGŒÃ%ÅSÔ¦HS Ýý¹ ‘]WìžýÌ%™Oendstream endobj 854 0 obj << /Filter /FlateDecode /Length 97 >> stream xÚ31ѳ4R0P0T02W0¶P06QH1ä*ä26 (˜C$’s¹œ<¹ôÌ͸ô=̹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]þÁü—«'W ‘›44endstream endobj 855 0 obj << /Filter /FlateDecode /Length 106 >> stream xÚ36×31R0P0F¦ fF )†\…\`¾ˆ f%çr9yré‡y\ú@a.}O_…’¢ÒT.}§gC.}…hCƒX.O~ûõþ@Àúöø¨ pÙÁåêÉÈ1V2êendstream endobj 856 0 obj << /Filter /FlateDecode /Length 368 >> stream xÚÔMJÄ0à„,YL/0ØœÀ¶ƒè ÆìBЕ q¥.…Qܵ7ð^¥7±G˜å,¤1_R¦ŸŒ¡-ORZxßþyqœŸÊ\žè}q&‹¼…x‹™^ÈíÜœzx«Jd·r1Ù¥YYu%ß^ߟD¶º>—z¾–w…ÌïEµ–ÄŒ„Äñ—ÓwÙvݶÚ4U»èoÜìë'ú7Oúhp> stream xÚÕ”½NÃ0Ç/òÉyÔø  m¥ K¥Hd@*bFHÝ’Gó£ä2vˆjîü•Eb&Cô‹íÜÿö×ËË«¥ÈÅR\”b‹"ÏÅkÁ?øªÄQú.íÜË;ßV<{«’gw4γê^|}~¿ñl»¿Ïvâ©ù3¯vèѾQ¢5@d°ÖºµÈ´ÖG`ÊÌ·ìdQö¸bB\‰"dºÁW› Æ'œ‰º1é)àP’l$bÝ.µ¯DƦ9†hbY´±p‚ôÖ>bP:Ä`VE•S˜`ªœØåt¡³€ÖÆèÜL©t„Ç9”3)ï|Šõ bvóØÔÿ GÖÿNs@9ƒÑdSLç±8:›pÜ ¥1¸ eÃPQJn„gCÊ‹Áû9„RÞ@(ðƒo!ƒÞD¾E¢¼œiM«aZÓj$MØŸÔ|›h×f•‰ÖÛöj¨cÕ[ÔèÒæBíï’¥KÁï^~ïñiÂéûü¶âü+8éjendstream endobj 858 0 obj << /Filter /FlateDecode /Length 190 >> stream xÚ³4×36W0P0bK#K …C®B. 3 ßÄI$çr9yré‡+X˜qé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ìÿÃÀ"˜ ì`üÁþó ó”)ÿÁþ”Éÿ¡¾ÊdÿQÏe2ÿ¨ƒ1ÔÀ˜ 8˜pfAfœiA&óœióΔ¡œÉg2Œ2G™Ëe^L¦ýÿ0• @ “ËÕ“+ »Ïöendstream endobj 859 0 obj << /Filter /FlateDecode /Length 287 >> stream xڕѽNÃ0à‹> stream xÚåÓ»JÄ@à¶8MÞÀœÐÌÀÞ„°ë ¦´²­VK E[7e°°ô $2EÈ8gfö‚A´³0ðÍ%sù'™ ¦Ç$iH‡Š&’””t£ðÇ#[ËeåÛVw8Ï1½¢ñÓ3®Ç4?§Ç‡§[Lç'dË ºV$—˜/%¸K˜ó DÀºý¿ásÐ¥0­GbŒÇڷ鲸f¼V Æ[÷ÖïöÑ1>8Q†«.ìÝ„y4¿šT1£bÔ<¢[σ¶‡. êÃ| Ø¡ø ü¼Âº¯;í‡ Úý \tõ~˜Ûœ9ù„“ÙAƧÇrà×:ösÂLn˜ÙÿÊrÕnÈà™7ÃІûÂbÓ„/ǵàiŽ—ø »ÆËHendstream endobj 861 0 obj << /Filter /FlateDecode /Length 262 >> stream xÚµ‘±JÄ@†ÿ%ÅÂ4yƒË¼€nnàà pž` A+ ¹J--îP¸B¸«Ø×\_ðSE;ò%ë_ûtòøBë–Ü=û’ܵl“koøuÿöLn}{ɹ ?T\n©Ý0`Bùòð¡h§"à(»Ù vì3…,r£Vˆç ½(R0§(™ºZ1̾‘?¡^3šAÑï RàWÄ^þS…ãML j×3ô)0}1Fè3‘õ¹fšÅš l—iX6e–§©î*y’›XˆÞ i}l±éæM‹ó£«–îè S-zYendstream endobj 862 0 obj << /Filter /FlateDecode /Length 695 >> stream xÚmTMoâ0½çWx•ÚÅ$ !Ù ‘8l[•jµWHL7IP‡þûõ¬V=Mžß̼ñ s÷ëu;ÑU··õÈÙ›=w—¾´“ì÷îÝÝå]yil;<[[Ùj<=?±×¾+·v`÷Ù&ß´õðàÈ›¶<^*;²~&ûQ·‚>ìþÝþ”MSÏ'ûK}êvÂÁ}¯‡£ãütÌƾ`ŒRþØþ\wíœs¬Û*ëÌpަWl:*;ÔmÕ_Ű=¤EB²ª.‡ë=ËÆ]’·ŸçÁ6›öÐEË%›¾¹ÃóÐ’‡húÒW¶¯ÛvÿE™;Ù^N§£… Æ£ÕŠUöà ºÙŸweÓŸ¼QÞ?O–Iz^UÙUö|Ú•¶ßµ6Zr¾bË¢XE¶­¾IîSö‡‘›:.Ÿã¡t¼r€A¼&ÀT±H>Åä4€"÷€P¸X ¤H— BMéÒ@5Ú*08WfH© ŸAX vŒ.2I ##õŒ .z†Ó˜Ëˆ0œQæa8ƒtcÂpNò0œAŒ‡á2 @݆s·>^ïl>^wùo×_áj4RrtåÒãsľÒ žùxØ[ ¡Á%QLu®óQ.Ý¢T³ ¼ÀÜ‚øÜPì½ÍKß—péûæ¸éûæ¨#}ß‚pß×MìâÔÇÄAM²–¼Ž3ð•7CB¿2>†Û*ó¾Rœ{¼@¼ö8ñ©Ž¤ú3îï }cê¥$f Oˆ#ð”z  )õ’ ÚÒÜspW)Õá9ðùÕNàš{=¸g-‚_Z¿´ ~éYðKÇÁ/¿tüÒ:ø¥óà—‘Á/³~eâæ}Yô%áŸ-tÛå¥ïÝ:¡UEk ¢ním›º²èGkp\ºx{)¢ÿÔÞ‚÷endstream endobj 863 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 864 0 obj << /Filter /FlateDecode /Length 3983 >> stream xÚÕkoä¶ñ{~…ûmxñ-µIÍ!¤@Ðéwe[ÍzåJÚ»øßw”(ÉÔy/¹äÐO¢¸Ôp83œ÷~õê“Ï^èüBf¢È yñêæÂ« ¯È”¹xµ¿øiÓßU—[míæ¡m®ËëúP÷—*ß<òdsÃÏ»òRùÍ›úx‹ïfÓV‡ò¡»ÜÊMu)7{|¶¯«=¯þWf³®/á—>×0%yxL_ßW—¯_}ûÙ [L‘TÞ fG^3?ˆŸà À9¹¹­ß îÕ‘wêïÊ~<êã¾~SïOåßßâú²ã—ò¾Çí.¶Ê"sæb+µ°¦àÞÖý]s"°y ö›¦åɇCÙW‡ªçÙ¶Ú5D:Ü>ò,‰6!R¾‘‘%œæá*¬&s º@#?]“ §†_8%7YŠ–Ò cì°R\n­Ê6_Èjó r>à ¥\â0ƒ D”#£ÊãžOõæÒºMÙ>®Àu™PúýØo˜™–»òÈ\4R ïÜœ‹mµ¯wHà|ÜœúSKcRºE`(÷€lMÌÍÃ}˜~s¿Ÿ}½ï‡É¾ö›}uà÷©\N?4:˜„Ÿ*å€Ò Ïuž ¯ÞMo¸9ROXé2µyq™kP8ÚßËögɆޯT‚ME®²NÇÈñÝH"æ(î ¤bT$ÆuÕá´ƒûq8ð‚}õÀ4D–ãDs<<#~!ð«@;œCÐok$È`,ýù$ ÔÕæØôóÍßÞñV”ÛÀjp ì¿iÚJ eNdš dr¤ªôi´tÀù&\|š›Ð’'`=É|Z‡©’_Hxèc–èöætà-J”dí@„o`täÏʤ½ù»êøµ¾-]Ý×Mø)*}â N• µ:<›ËË®VsHZ‚fE„ûŠ&+œ%É÷,ùðt€«¼PYÎpQ#²þ#~:;SOÎ +GMö}ZÕY?*C„–#”£û œÒùQ½ÌÀÁ™‹LNàIäJZ”ñ“³Å…ЙÁPCüÅ?yìæEá3Z¶Íà ‰”ðX jÜd¥ª˜àÙ'€Á–j<ïëÔ”ÐVãA|ñd·9}‘,#u_¦`y!óqŧ)ÒòpX²Omc…óy$i¦Ó|ôy~GtN)0VØ)û¢lÍuÅ} à,ê@áŠÀ¾oðr&Ž , gžDû» bâ9è¦-Ò'œˆcÒopSÉù!œ2››ìÜF©$Ã%8‘K8 ·BŠèÜ—}[ÿ‚˜yò¢ŽI¿Åk‘gþ½¤S·!J‚FORÒí,ΡäÈðãî£tQý¥Ü BÈ(üß'n´Y†æUxï§'1-@áæÆµGŒŽ|æ·wõI86zYÈ=2aÀÐAûƒCÓWû«`2•Îê¹A0u±À±1çèÿ^W+I …~VÀâD Ä¥ŠbíF¡QÏܨ‰T­Þ¨LÈ¢x÷’ëå•BÔøJ’xý³lӀ㮷ûº¼mŽï$…"Nç¿öžùßrϾ.qÏòìÂi¦~¾/üŒ4 lBš7õ4ÝÈü¬i.&kgéÛãId¦þ&.Ÿ’$:)úòÈ®¤4ª|¤ýŸ’¢hÄ Ã’»Š`aóYÈh³ÍË€awÚ!—Pc8O~-Lîk†û'G w2Yð$/¿a‡¼éºúúP¡3éÉ=&m«ò ~»ßWŸÉop…s Çu‘ÇA¡Xçf´•›Wäyi¦7”¬/@+s%»¸Oஃì¤<2¸ªÑ¯þÍ.ÙQ»×ƒÍ `¿¯0 Aцi§Áž.?W œvS)¸MKD!—ž¥ ×ÎnÖƒ‰Ùå” +—eÉ#£#'¿|ÕëÌJTrR˜ÌÏ.3ˆJ\gDd°KYL"=ÝÄIr }³tÆVÔ(ûa¯¨9÷о'w‚9ƒrÅbY‹JŒI3÷5ݺSx Ѳ…ˆõ=¿Ÿþ:Wè’8¸Ë…ßi†ÜW›ã¡dFà”‘Ádš)¸a&,ñ—›¶¹çg\RÎL’U,Ù¹H¯ØH/ €‘jó¢txÄŒÈU2Ä„À)z/ÓW_G׆<®p¨d‚X¸Z$].¥{ÎåÊE3E?¤Ó—…‰.ñ¾b÷cL’#Ž÷”i)!ó I¾þï© ~ ,š%8@mkµ\¨í}ÕíÚ:$r(£8)D²Ò´U_ï(s-5垇<ŽZMþè d¡=…Ñ鸯ÚÃcM’t;ü:M ©'nãBÙÛa5~…6[fX'‰% Hîƒ3Þàœ ;¡?`¼%vã/%?º†§á´Tú+…qÛ"Qp ùKN^U-¦Vi¶ ë‘M”?<Îv¨KàÛÛ;^o™ŽtÖ<á¥â})“ÁbÉÍ® ‚Âú 9uœGç¸Ð¨ã DŒÁ—üo ~W€¯th«rÿÈ/!û<\0áU ^?m¯¤I諘ۅ[rˆæ<ÅÜ08"/Œ·“mnKLOHwC™'Ô{X¼3?B$B¢=qõ§Û ôîªû‘’4SgÇ ”툌o«~L"ÂÎl´j¢ÀQA¾…ºPd^iý¿Sš ÌÅ$]\ö‘Ò<ëùFe„¸”oÔó|ãÔœnAQƒôn! · ,‰ÏO û/-ø“Ó(³bçýÂŽÎñ7ì7†Ãv´É*™qtÁ/Q”7ùàyÇ%mì9|wÎÏÿGç(Ó4Eš hº’ÉÌlŠÉE®ƒrAÏĨ»ñ©G ³¨@ðIzƒ-‡Ë—z¼Pô8©ë k øqöÕ6AZ_¾,Õqûms›TI»1B„[o0vDÅaÀ‡©ûðìÂóþ!9¨Ò†E!>tj^ÝÌÄ¥ñH¬S¾Eá'Î$°ŠàßRÙ¬ý™Êà4AI‘ÜQÝѦ•Õ€é=(ÏŠŠä5Ö†ƒ—§áþúEÍí– ÇN•î/Ñ-L4¼/k70Åþ}>غ—ÆG(àøµ=×ñù­’( «ð"ê®Û´kd'Žu³†7DýUýfº%Õ¼“»JP™~gÞAbiXO’”\æ5 ¦.ssDHˆî4v`§~d#S#‡`Lî´rÉ©Sâ¹bã´mtÌ‘"ðÝ<éñVìN¾zXíCB™Xž3‹òœyZžÃ%CûŽoš–ŽQ¶{ž˜™a „T§>ÌX­~ Ño2D h~Oóh·Ô·È ¦¥§¶ µ½a*ø£)ãfÀÙ#²ÅÄÆ`‰Ö¯d%œ¬jß§ ó{¡PŸê‹ RÏyùÇ/Í£!GÆ-FCI[æÃš¥­YµßîLû-?œýÎÏ´ßùŸÐútÍ€¼ò+üII­°rNÖ?'M=v#ØÌ÷7-¿<ŽQ QÓ gÈ¡Ž!3ÓR?­ØWü¤€¤­Ød…¹8޵T–ˆbñ@¡ÁšÄ²<µÐ8,è$òS 9N/£°A§ïBÛ ökµuyÜ…`,/r‚%uQ2ÌþŸ]ã§Y(½ÈB…b*f¡†(+v©ÁËîR­(hýØŸÁµ=ÎÔ#€!Ὣœ½«§ñçÙw/E«-÷“ÌÒ¢cK _äѵ íY^xªs˜(óß‘¤õ˜G몊'Ø»Ð(u̱5ÔW³I²]Œ#Qôæ°„ òÁv@¿¨o¹û ÆÒŽYó°[ø¡?kZó0vÒ4AIæ5>ÒÕREN^>'¾M/Š^ ?—Ð=ÁAÉ벫õ1x[|cätfé÷°)C͇[þ¤a ç¾ÿ†ŸC/©‚ƒH]É!¡,ú™CþßNݽ›»L¹pQsÞw7j¥ ¢b¯E@ÖÇÊfÂIp÷±'1ö™¼Ÿ·o¤%oÁï«›|¥«ÔN‘©‚]ÕØs÷i»ç‰Ð”LÇ–5 "ÆÂ{è@+¨ä6ïÑ«(Ï£}Îí®©æ?­Ç®ôh*#gí#š«‡žßÈG&MàóXÄ_dS 4Ñdnµu›¿ò£[á°–Ó2W®B™Ë@—ÛÓØ|‘Ð;¹²p‘—m•Í6ûd¿(JåbçdhøÛÕx®*œ¸ª)í•8™×ÂûóIØ$È)g›Z=^™A»xÔ]5tm:‘«|.hŠf²¥ ;‘­P„9Œ¨ñù„)Ô-ÄeÎQr14žrP ;…&è.d$íB9¡yˆRŸŠÝøBÚwÓÕÄÂÒcÀÍñ–s™–oÇÃ2)S…Èb¬'™ZÙlk°¡ì,¾šÊl°Î׃îKÒ±U7¤?©“³ç·¸‡Ð+¡2¥;­ç* ÀÈæ1€®û!ÇÊ–lZO™ØëÍD#£$¤¯^FøÍ5Ö¦7ÿ©v½Hqä [14õÝæómxx‹ŒFáŠGÙíyÉüÈÖÜ£,l’¢\p(°o¶MŽc+á3L=ˆâ™úÜ #gÊwHŠ&^c†UBF-µ=™t ú"1ô¬ ·¥ð|D‡º‹‹©Ç˜¢$¤äÊ{a£þé§úõë¤\i1bEµ ð²æ3 §(#j² †bòâÕGp…3£˜×i%ém>Õ3Jn¾.ǵBb_„Rk1¤¿ IÔ ‹ép\òc_öå€jy¾ ÷:A9…ž]Tù±_}qa@EK› íO D€ 8`Á† fïÿƒwH-ú°kÂ)tÊ„â9öèæzÞà§D;‹ˆÉ›¤ «§W)Pp®bH­’Ó°«ú¾à)ÉLx?…2ü÷H²“óÃ.`J¸*ŸЖP •¨gÁ°Œâè©2ïÒ”A¶KùNÒ`ºydy—¦‹×3þÅ…blñŽNwÜsb¦«¶mÚŽ¡œ=/¥¼!þ’ú{^ñ¤øªlÐ….[Õ`(R5^Õ2¢_¡ Á/HxKÝìid>דÃÙA;ÍgÝ*O{mSÍ&JÇ^×d‡ x§G,:L’a>ö¢ŒžÝ»¢üeæéù(ÜsZúd=×tIõ‰…ÿÜ_Âdìgø‚³œÙšœûeßÚ¬~ðÄo¡©T‡¿AT}7.齃l@7jjÍ#J<\wM{ `Ón„ôoåsë܈»ªÜ#‘°ª@R»FW¥Àȃ‹ q­È‡ÜŽÌqé'_¿úärñüendstream endobj 865 0 obj << /Filter /FlateDecode /Length 741 >> stream xÚmUMoâ0¼çWx•ÚÅvHB²ó!qØmUªÕ^!1ÝH ¤í¿__‚—m ñóøyÆÌÝ·—ÍDUíÎLÂGÎ^͹½t¥™¤ß·§àî.kËËÑ4ýc*S³ç'öÒµåÆôì>]gë¦î,yÝ”‡KeFÖ×$mÞëÆS°»3¿&åq÷GðÉîRúº™pßêþ`I_Î3[d·Eæý4ݹn›'&9ç¶7UÚaãL)l:ŠÛ×MÕ zØê!YU—ý0rßåÑžo>ν9®›},—lúj'Ï}÷á4>Óç®2]ݼ³û[ivjs92V+V™½íhýÿØ ›~éñÊyû8&ÝX®²­Ìù´-M·mÞM°ä|Å–E± LSý7—ЊÝ~¤&–Êçø U´ –2´XÆ(p‹m“¡¦ÂÜÂÂ∠ËXXœ(W°8X&˜LR4â=z¨Åu«kTÌGEåïm7hçáË8KÉc`Iu(à!a <#œG´Ž »>ÃÎn-tJ!]O2Çø`œúñãÌSŒóø#§¸­'œâ,<Ø“L€%q¡O8\Ï€™:Žó 3ht ‡,ª+à9­uçgŽCwËpÞDÿ‚|ŽOžRÇɉ#ɇÛW ºmè—’®1NÃwH=8!õ Á éŒ4ôDCp&q"p¢œüBCT/ôŒ9ñ¡!ɨ~Bü }ÒéîRqÒ‰óTÂçFIŸúܨ™ÏŠ|nTìs£Ÿ¥|neEA¼;~æó¤òÛ<©â6OšßæI‹ÏyÒòsžtèó¤g>O:òyұϓN|žôÜçI/|ž´òyÒÚçI§>O:óyҹϓ.|žRîó” Ÿ§Tú<¥³ë¹_¾û¥ãmÂKz}öÊK×ÙÑ=·î¡ÃW7æú"ŸÚV¹{ÊÇÿŒž‹à/@̪Xendstream endobj 866 0 obj << /Filter /FlateDecode /Length 494 >> stream xÚm“Mo£0†ïü ï!Rz ˜|U‰ÄAÊaÛª‰V½&ö$E 6ÿ~=HÕUAgÞ¿“ɯ÷½Ÿ«ú~üÌÙ´uo$ø›ßÇÆ›LD-û t÷  @Ùö…½›Zî¡cÓÍNìtÙ=YñNËk¯`T=­áRêo ÞæøôeCîŸúòÚ•Úç(>”ÝÕŠæ™ ²ŸAæŠþ€iËZ¿°ð™sn[­6u…c´^0XaÁhî\je?ì„î¼0bª”ÝprOYÙ÷Åû[ÛAµÓçÚKS|ØdÛ™›óøäoF)õ…MZ³©}ß4W@Œ{YÆœmG;ÿë±<œñ®9Ü`‘;‡äKÖ Úæ(Áõ¼”óŒ¥E‘y Õ¹¡ât¤ba¥bi<Îg®bÌÅw­ü:/]×åvYsäˆâ[ä˜â+䄘#ψ]íœôò‚â9ò’8D^osâyMìîÚGÈ‚X o‰ä‚îBŸÉà5Éà‰<øÇ»’ÁÿÂò k£(Do9Örá,Âq¼B?"tŽýEDqì)bbœW$ÄèYÌèM»>sb×gEìjqÞ(ŒæÃ×po¿$îÝ}IdoŒÝ·œn-p!J ÷ýmê«ÜÏ-þøOÃÓ[áýL‡endstream endobj 867 0 obj << /Filter /FlateDecode /Length 900 >> stream xÚmUMoÛ:¼ëW°‡éÁ5?$R. ¤d9ôMðð®ŽÄä ˆeC¶ù÷³k›m‘CŒÕp¹;;†wŸ~>Î|¿Ž3óEŠ_ñ¸?O]œ5ß¶‡âî®Ýwç]Oßcìc]=~?§}÷Oâ¾yhÆáô9%?ŒÝ۹׬“B|Æœ‚>âþ)þ;ëvÇ÷zö|ÞNÃ8“È}No)ç£e‘0ñ&hË?q:ûñ«P_¤” X}³ßa†c1¿ðó+³—aì§ ñ j…Ò¢ºÓå‹~»]›ß§¸{_öÅr)æ¿Òâñ4½ÃÏÅüÇÔÇi_ÅýÌÒÊãùpx‹`!d±Z‰>¾¤‚iöïÛ]ó¼¥<½¢Ðô­˜U·ïãñ°íâ´_c±”r%–›Íªˆcÿךv¼åùåš[§\Ù¤­ÕªX*be¨-€@E€-X€÷@à-ê©–·xkM PY«…@ ,Õ#bªE†A Ã5rEqIø†b>ù,¥å½A²$ G#é¨eÛ"&ÎÕcÊ «Dž`%r‰EÅ*˜ñ‚s »–ì(¬Ǩ£5ÇØ«™CIªÙ*”¿à˜ò=Ç”ßò^pÓkŽˆù¬¸ê+ öæ™Ü›bVšLbX+“‰«@­8¦:¤•1”Ï3Jp3<£¤|6¯Çì†ï„ Û^Μø—¬‰ANÅùV¨øþjÌRñµ«ÁÙòy9ð´Žcp³Üס¾½ÔAMË}ÉÄ–û¶¯)¿¢|ÖªÄ,îâ+pp¤•70¯»hÿ8ÖJƒƒ+ùNÀKŽ}E—ßÕ¬åöÎÈk)§åçâÖÓuÜp >õožñ’êð UÙÿ^gÿ{“ýïËì_eÿ{›ýï]ö¿¯³ÿƒÌþ*û?èìÿ`²ÿC™ýBöh²ÿ“giÊÛŒtËéVãŸ;¢Û³Ñ§)½(ôZÑK7bãíA;ìØEô^ß]|ýØÿs‰éQendstream endobj 868 0 obj << /Filter /FlateDecode /Length 1798 >> stream xÚ½XKo7 ¾çWì­cÀžH¢ž-ÚCHOAë"ׯölvŠ}agŒ ÿ¾”(i4¶Üé6¾HÃ¥øIÔGRôÏׯ^¿UvÅYë˜ã«ëõŠ ÑP+²eB®®V7Í4ìú‹+ÅMs§î‚7SÏçï©ÅþÚ}Ik$ ¸¸½þeu¥X@¹âÐ*é%*³–ù?´†+ÐÜ64š<¢.WŠùïbÄ%Á<[³aa «ø9 ÃlØ Ž†A)ñ_ +²+³]ΜB»\28džÕlXKá=Á™:‡a=v\£aé”þïßjQòq„nׄóáLݰýƒ)vôt»¹Û[üâ´~Ég©ZæìÒÈ‚Îh {™Îë_¦sBYøšEuDVžuâ<¤SL$» Œ·ëØyìB¶«7´:]™ìg}X[y†Q,’Ù´œûlÁÑøY¶«“]>¦µã_Gd°Ï‰ .¦Ôd!@…‰l¦ æÏ š6ý=žú‡á~{R:žwÝݰ¦¡I¥;EûC\?höÃ¥?õã4ì?þà¥Ú[O¶ŸØ’ÉÝniÂh8œH_ÖÜÖí.ñwPÍ8ìï½ ðçéOq:Œ4î4žpÁa·ïÇ1.#8ZD“ßÞ|uÉ k/®¤tÍ»©ßÕ¢]XÞ:œ2ÚÔ͸½­]ðÖBÒºGÏ ësÊ>âñ"›ìö1Z0‹:ÉRVX-q ÁΟqG®Ô»­”ÂYï=éIX™ÖÔ –‰m1©h‘–.´d+@¦mojÛR-<élÆgIVÛ˜kµ3Éò‚käIͤmµIqN³K‡â­à–¤XŸ;ïQѤTJ_¢ âºu Ã#â~ßy+G|Á±ïÆ¡?Ñ|:ÐøBC³@•JÍÀšÖî!îy|ÜíºÓçÚ¶¥luv讟6ˆ€Tx œ5Rž<·ô±ÆEÙ#ÇÓ†üán‘5þ”™0K(Û*ž÷t¸Ã$£š¿úûiDN+¡šëÀ{:^<ð®óÄüL‡‘•Ëýý°þL?wµÝqeZir¬i{»ú¥ ×*ýäÒºÓÇÇ]O!ácSA[‚Æ,â…,].Î>m†{Ÿf6ôj(M§¤øq,"*(¬%§‹EÁÁ$õ6Ñ?ø¨×.x¨rÝ`pnõ¿»n ºvßTŹj¥KwÐ606pÓ“~GÃØoûpt‘÷2]kM޳Mß=Ô6&,Ö\•´05ÖláËœ‰Ì;ÿú²©»H ‰åë¡_wÛ‰öÿ¸ßbî¥b𧣉mÖý'¿Ô3Ñ˱2íé.¢$<¢¼„xyHn¢Ø¾âÖ¶:=ñcÍþ°A^U8‹éXY‘ó11ö¸í§¾z‹øØ’ùC¢þB&š ™jï@œª~׿þþ¦ê<.>j]’Á%oQ°¦RhR‰LÎÊP‡Hݸ ÖT3“‰8,·Ž–ž¸o>SöŸ¢_ȶ̡"Š#»>?,_²›Ê²hvÃ8Rd÷† Œ•X4ëÇ}z€àÏ÷xìˬ…OKfÎù?VwNÉ!‚ƲΗny¡ €V¤›€輡Và’Äêg?Ò+]¼Ô> stream xÚ½˜=råF„ý9Å3GÆP]ÿ]îF¬Œµém¬§Ðý E9D¹;ƒIð}¯º³³ªñ¯÷o¿ÿû%ë­WËëý¯Wé«Ìß–úëýÏ׿ëúí‡,³ïëmEyûÎú퇥Ôwü%ŽoÝ[ìø5çV¹ìZ;ð¯ë~p-Én[¾îg/åïÿy­×±·ðþ„Ë Ï¥¦%\€#øŽ­ê>À«Ô*„à§2Á•àÚµ"÷.­+îÜ«:,{€ïµ{o†ŸÊ7‚ÖÒ¥xv9Ámitå÷¨ôfø§Bðød;±·{j­ý`6¸‘½vGÂ:IìS™ ^‚o):À±ÊE~ÃhÂÁ¼u;ïÐ¥Lð$¸ÁX]òëàEðÌè}8ð—ÅêݲÓì WYn&ôì¥LðMð6læQâøîô¸÷χ»¦LðÚ¹Ãþ©Lð¾á[Å" ~…ouª\Ç‹9Áv”M‘p)O³åÛö]f5° …ÞŸ'ê¿èpÐ4’2ûT†ÂòmWŠèaÿ^¤U×Öt]>Á±À‹ýv)œò­—9|Oxn«;­Å$ ¿xªªEÌ¥LpÊ7ÄÿÎÖàÑíÇ6"9¦Êñ$P‹áŸÊ§€k4 ¯z&ûÆ'1Ü‘®‰ó;À÷Æò)Ü¥ ~£|#±HÿöUøo‚å\Ë«¼îËöÇ~}…;Î4™=ÐG}€·”Õ1Œ\ðS™à›àY8k[xî¤c&¦í Ž@èŸNÚ©Lð&x‡ øn‹NZ.ë£×<áØŽHj¾—òô›ßùö/HAØ%´’OšÆÇô•¶_?eë¥ …»ÜÑ?Êì×Á•à˜ó*öìŠ>O[ŽPG·ÈiÕ5SE~»” ~çÏp’]½ƒ¶¼byçtÒL7Ú§Ã?• ñì—冣ù¹—Mp|wk›/eð[;ÚElè*Ø6.ÆpLF;Л¤)Ø/e*œò 1R¯Ÿ]Ó[ç1˜ÞP÷ÐÒ0ÇkZ(ÁOe‚S¾á, :çà`(ÁAÞ–CK³ÒÆ÷âÊOe‚S¾™K ÉžÉ^¸l¬{ã5Î䯄3ºgR3¿” NùfkØ7¡¥T¬×žÂÕÎñÍË~*O¿åÔð쳫 ¿³‡TåXˆ˜Ví=¯ú© …å›cup ŸÁ^é ©Ia˜”îh7˜—(b.e‚S¾y «á&2À )ÁQŠ—ù抡r‘7oe‚S¾aÝÚŸÉ^ü®Í'1O~Ã5ÂM6W~*œò-VlÁe€cö¥=Gú¤Ÿðĵƒ÷üR&8\à:…;ѳ­”NfO?Vi ×42Ìé¦t)ƒÙ)ß>®ÐÞÏ`/Åw§-/ŒEa“Ùý}å'ö©L…S¾Å>^sø3Ù †¥“{„0ÎZ ÍÜÛŽcÍ~;• Nù–Ÿëþ„£Ó UÞè¡ÓËŒ•˜3›&×K™à”o¸zÆ×g[ÉÆ´x#Úsú°å˜m·2jæ—2À“. ÷ØÝ϶’˜»û^J\ò&ÐŽ=òÍ•ŸÊÓoIùv¼jÊòØ]*Ob.‘¡Ÿ/ÆöÚ4¸^ÊT8å[áîïãñŽÛo‡Ýu‚û:ŒC-íR&8å[a{°?†£j †ÃØ“ß"`Ž`ø©Lpʷ°3=ÛJ¦"Qn8¦Dû46Gb¦-¥ùíR&8岺ÿ9½_áQE“®|ŠI"†f…eY‹á§2øò ­Ã°ã6°5é}/:Œm4–iÕa„ {ýT¦Â)ß6¶ãì‰q€. ø†¸UYN­—ͧüT&8åN8.,k‚ãþ”×Dó±Áì/Ë“ûé¥þûöÓ;çMÅ_à½Eöõâ~û÷û·¿½ÈÅendstream endobj 870 0 obj << /Filter /FlateDecode /Length 1508 >> stream xÚ½™=r9 …sŸbB9LüƒéV­ƒ•mm¶µ÷?Â>ަ›˜i¤vàr êéï‘ÀÑŸß~ü´¼Ñø˜cÒíó¿[ð-D?ëíóßÛßo>¿¿Óy4ÉušÙ÷wqŠ·ñýÝÖÓE#iýèøqˆSz(>j6öƒcø°‰ÏŽóÙùçó¯Û¸½“|˜Î/øzî„«dèð+|LfÛð9"lðhàʪQàG¤ƒS±±E'“Yà©ÐCÜ¿v*ð#ÒÁ¹ÀgºÐøõp{°ådó`cZ^Ø6‰—ÈÇûtdpá†íaœ“ ûˆt ×7‘Ì1¯ðÌ;‡”ˆçŒÑÁƒÊ,ð#ÒÁ­Às„»>fDÏÁÂ4x2^¦uåG¤ƒû†ÓHR#ú}ð(p1cñÂå…Ê8Ç”U’ødÊ?"< Üñ_á>„ÊÊ‘¼É±NöŽ KÚð3Ò$û,ls¸\ÙÁ¾ÙÊÈLëØêz­ìG¤Yxnc‘£¨´³iIv 5”Ÿ4p^.³ÀH§WþœmsUˆQÑ9r#éPàG¤ƒs+9ýFx1¸eSýÚVLTl¿PÝ\}fSi¡ÏJ©´3rÍ·,þ&÷¤~e3¡äzŒ„][ÓOÃÔqx•}Dº…Ã~’7ÎÎþ”ol¦uÉn‰öð”oG¤ƒ“¤)ƒ8œ/¶[k¢Í°h·ë9ºH­ò#ÒÁ‹¿©¸£[]ÃÍ}C/4àuÙXLBû×2¼ÂQÅØ mÛÞ.])¦”*?#¼øÛª‰A, \©X N0Ùß¹Œéªe„:#¼øڦŌ«³£%yi+&.ð iœ=W­Õm?"¼øÛ×øÆWsÅçƒJ²#1>Ü­Î'> stream xÚ½™;r,7 Es­bB)ˆ ¤®ò +s9syÿKðgºÙÄ*eWû/êï·_¿Í¾‚¢=¾ÿ{ ~ Ñ/b}|ÿûøû½5ÿø´6ÞéKØ?Ú»)Sèǧôæï”¿ëø]0þŠeJƒ1´Ûè½cL3£çØùËÖHµi³MÁ؃øÏ÷_z|6ù2"v iÎ#BíNÑGŒX’C‰iè((Z܃Ï›XQ0- ÃLj^P°±Ÿ)@€‰KŠ åœåDñKж(zNmÖs}W í͆¡âÊÜzA¡]¥)6ñ@a/ˆÀh Ñð‚zFË"„lŠwç¡‹ùñË­Ø#Ñ—g-M´ àv 93«ÍºQtö NgŠM,)tQdXDQP(~¦°ʽ¼Q „-¾y¦ØÄ’ÂEN=hÑ¢u²ÃEÍ;-¡C¸ ÇÊ/{±‰%ž@±Œû†Ó3.(È,ΡªìÂ]=ôœ›XRŒE1CŽ1sAÓáŠd s‹f­Š @›èÅ´6±º"Ë9{›»Ü…îÎÙ¢ßg%§ŠYIüu`÷é»XnÅrΞÁ‰ ‚IïnpðE‘ÀÊpï*,à!¸•z‹]¬(d9gOÏòÁD¼)`è8ç¨(ÜÍz¡x‰%ÅrΞgÝ)Üîþ݆ö¾®ˆ§³¼væŠþ¸³œÃbKŠe3Mâºâ®ÍWrzRxCÄUá8ØK\lbœ²œsš2¹™Ý³a#tÝÏ+-Ýx&¬Dæ8õËVlb¹Ë9§:‹ÒÝ9ñ!>x–g+2*Sø[„ø9¡îbI±œsÞ>ë0Ó‚BÜüpE2޳`£Ú gkŠM,)–sÎmæ\ê‚Bhó“¢£ LaH\gŠM,)–sΩ 7îu£à†+¼(æáa}Êʼn ßcÙzÞ‹]¬‚s9§gf v·ïÌÊkm4‡Êh0– ?í|Cv±ÜŠåœ‘ÇFÖ¤ @¢•3Eà~XŠ7 &”I6ΛXQ,—EþÈ©ÝÓÈšb9g¤s¢Fæf?N±Gœ’ÍÒɺðoœ2ê¬O=²s©(†«¸^(^bœ* bÌr6F/ìe]ø>Ú¢hÐÔêõs+²‹åVìÀÚÒ³:\¨Ýý|?1‹‹œ—K Gò”+ÅK,)lQ¤gÁ µßÀ‡V$2­#)4¯Jô°ºÈ&–}QLSF²fúqб(2î=²^¿S œi‡á9³#µ‚ŠQ\(6± Î}}ʹ¾4Hn’žŸ!¼kRT8°T4ÛýÜ–íb¹±(tV }f‹+E6U+‰Äì“*àVù· *b¹$‘M¬(ŒE^ÔF¨îþMÙƒ­šóiõÃܪ¶LЗãçÜŠìbI±U™…¤SnÊB},+Ä'0«P/(ð-5•ó‰ìbI±œSæCÀìË ÉOŸ(:Ô.RQd©}Ù‹],)–uJ^ÊJ«è:øLµm™¢V£qéEv±¸"ë!ýfF\øÝ¿IÚXE$ÍÜ‹öFç#É µ~?ÜbË­XΩ2û œˆÿ8ÅrNÍ©¹g3úãË95Ó$Ñ0.²÷|4Ù)Æì©YD‹ú;wîEv±¤XÖim¾ØY¶w ’hgŠ€#g \P¸ *¾ìÅ&VÁ¹œÓf—ãÂRø7²Í¡OŽù0‹r#ªVDÕºûås«­X_j¹>´öÙ‹ß)šžÕ&…#S”!ãÐ3¼(^bI±œÓ2,M‹Y„PЬÍòù&\+çì°¸çÜÄ’b9gO#R„›ÜüÛQĪЃä^Àº‚*Šaèí㜛XR,ç95ÊK»S ­[É7m3g±Ð½¢@ew¸Q/Š—XçzjÑù¦ÝÑ•y/ DVž~BôÞá¶„wx=] 6±ÜŠåœ£Ï7íN2x£x>;³UÁè©øRâìbI±œs>6Î:¹ Ðƒs>)PÔKª(5äBñAñë·œþYÃL_Üô¯~Y¡ñ¼Mo~¿ý endstream endobj 872 0 obj << /Filter /FlateDecode /Length 1577 >> stream xÚ½™½’Ý6 F{?Å-íÂâ‡Øf&)Ro—I—Éû?B>p¯DQBíK_À!(ÿþùí·?{¼¨}Œ6èõùßËùå¢õõùïëïïdþãg'ÿÞ>4è}#—ñã§Å÷–3ü-†S =–Rã\J­ÛÀê½}­Í?6ê ¢ÓÁÚKðŸÏ¿^íõ“ä£ë8(bQ(–÷1z&Òú¢,5lqÞb§8‚%ÅXŽå"®ÚžݻˢH`V¶ÞGE1ÔÇâ¬(üü×:¾Ò,¤\PPˆíA¦Â[t§¾SÁ E? hAôÜÞÆ( {rÙ\Šméܪ ÁÞaýmCŽ`™ ^‘YŽ•‚B˜d§0R¥Bñ.7Šw°¤8×¢†s9gÍ=)D»_6Ä2mÊÒ3í ÝÊâ–º(²îÝ´kR GD‹"ë˜( /(º)¡#vŠ#XRôE1_°± +(ú`ß)´9£­ ƒÌ­ð·QÒ…ïG°¤Xæ”4g O[Aá¨ïåoâ9àèÕ*Ìh3Óâ–Ëœ’æÄýkAÑÂÆN1HšQ1h™4ÁÎÞrqKŠeNÍŸnCµ?͆u™“æ&4 ] b‘$Ýuq«â\æÔ´E÷”ÜöæKY¤Þš»9W©PXxÄmCŽ`™ŠeΞu/-Z‹_N±ÌÙ3Ë ¢ï…9Õ3W'EŸ§z»U¶ÀøŒ¶äâVc™³÷¹×âT8+{Ýv ˜^¹W¹0ÁéI·â<‚%Å2gOiuÆLO ÷‹´²›ˆ…_Œ8æ\5vŸÁ¢8Ç2§¥ˆ0C(U<¤íÞ– ÌÛ¿!ÞÁ2Ëœ6c$Î’Öí8ݼêÓ`n³â–Ëœž¶`Œ/ôœ9ƒÑì—™=o½¢jùR;Å;XR,szþ4,?)0Å/ á@ÈSÄ0#KÑ"Þpí°Ûä{KŠeÎH]Ànb…´Éh;…wŒ_,~…%nï`UœËœ‘Í7°ýV8 W°qÈiBnJŵÌ3o|;DÎ`™ŠeÎÈ÷Cã z:+çZ¶˜#Yà4n\ô©K#ÙuKŠeΑ*¸•ûÓY<.×2¦Ù¨Ø$¯6D)¾ýZv ^“!ü:ë~sAÑðÌb sTйÌúâ,)NØü4#ìóýîóUO`Góƒ–w–¦ãÖ"G°¤àE‘ÕÙ0}ósÄq8çZyìáƒ{¤V—m“Å;øl^ƒ¤Í _àæã½€À‹ÈyÓÂ+[XNe·cý –©8×Ú×dŸ÷Χ³ð"¢—²Ð¯¬á^'ΗÐÛÌyKо(ò7I¯(L.WÔI‘KØJ ÅŒ{wÖ,)lQØ{"b/(0ûÜr1àãù•äAùM£ßZä–¾(¾¤ ˆ§:ñ"}}'#ž#Ž"ÃÖ* \îDnº8‚Uqži³©L\˜S©ë "ïUqâqÃåæï#X¦b,Šùñ2×Ý/e1ç,$-u[PXZõNñVë”´ùÓ#¢Âß /\r‘=ã cgAh˜rß3XR,sJêó[—Âß,—þÿ¢Àuä¥%Ç>âœÁ’b™Sæ7Ô ‰ÂߨâÆ;6:h”8ŠÂüFñŹ>¡æ$×ÎÁR@ Û×àDóóã"ÂÕÌ–7šâ–©XæÔ4§ávÅ!BêKB_-'ÑŠi½|xS¼ƒ%Å2§¦9G¤§†Ý«³æÇ=†Ž[• ë˜öõ ‚â·?eûÏæö|¼ðT\´ üíÏoÿI#endstream endobj 873 0 obj << /Filter /FlateDecode /Length 1562 >> stream xÚ½™=räF …ó=Å„R mã¿‘ºÊ8Væræòýà×­!{ØD¼ÙÖ#‡û <Ô_?~þ²þ ö™-éñõß#ø¢Ÿõñõïãï7&ÿ0Š·öéÚßé­Gs‰÷qêom\s\ƒÚÃ㸕8q+±¹¼Yû¾w\lÔE½Ÿ î}ÿùúëÑ$Ÿ¦yPœv#Üî­k¯(,b£Pf6jEhXúFñKŠ~R8ãv³ìÙ ŽÎWŠÀ™¬ P¢ã+Å!–¹( ·sF(Ý(<3úùr$m<™I©SE¡È€.ÅS|¡°'·1Ò¢ ‚Á„ß {Ñ“öP<Å*L'EŒGrW¥ XïöMáÈ).(ŒÅšÐ•âK ^2Ò‚pæz§èÈÍ•2ò¿í¢%N/}+‘C,)dQøx´&iE¡´¹PÌ—åt£p\ÈWŠC,)ô¤è:ªÏÙó^¨ÈŠU¨ÂÓ.Á¨ò"^:û•âK [1bÑšÁ½î®ÁÙ{dEª¼ÙÅ!V%²œ³ Hé’jdY!‰Ìj¢ìQLDÍ·:=Ä2Ë9s¼’™QPˆ¿È ’Zu # éFñKŠåœ9–ß)šôuv£0ÆÙÉ} L"°µÍ9?Éå5g>™ôÿõÓüœ8Æ­?þüúñ?ø’*endstream endobj 874 0 obj << /Filter /FlateDecode /Length 1623 >> stream xÚ½™=’ä6 …ó=E‡;ÁŒâ‡Dê*oàx2—3—ï?²%R¢;E³¨OððÈþýûÇo¿¬½˜¾‚‚_ßÿ¾jyUÑ/*úúþçõ×Ïâöñi\ÒW“úÁ?k+¢üñ)Îí'õß¼ÿfDUå\ÊXÅ<¨||²½×ö©PkT9üŒ`í%ø÷÷Ÿ/z}²|™ÆI1×6µ¾uX yPhT/‹ÂK‹T¯, Ep+!íNqSŠº(ZÏ…HUM(Ôh£À&nE3 ³æNÅL)&q³žfoÆZ –wŠæ…j¡Œ"D½–â^(섘;cO¬ÖR"Úl\÷¥­ —ú„`òVë–ŠÌRQiQô²`'¼wBÁÑôNш å–Pà‰Ê~/ÎL)xRÔžeÇžOŠÚÜIÑÓÆ€‘ÈrÁª¨EÞ(Ž`JQ…`y/Mâ„¢X­wŠª½§“Få¡´ªèMqS Y>^°<ãAá¡«óØ:0ª“²/bjÔ6Š#˜Rè¢è ybJäÂ¥'àFáÈP*Z,RÔLïg0i‘º”³uå¤Q m^]Q‡:lG0MÅRÎè©@Ù“%Ѝ^(´S¨5|è„B;]leqSŠYqA½Eª• ¤Q•iuÛ¿]”úö °p÷²åâ ¦mQô4kЛºÉ—\ô:ÆxªÖådEoeqSŠXcëÒœ“F­¶Q`‚TÓ¬E Ó,{‹œÁ¤8-ˆ^Èšz„n¨ x€ ¢Rô±s‡8ƒY*Ú\ÛU eAx`¢¿hVï&Åðå’µHmV07Š#˜R”E1| V{2Öñ`¿Œõ6Æd¶f¹h½ƒÛ6ËÎ`J1·†oêúb} =(Šß)*¾HDb.8Ä¡ÔÛ,;ƒ)….о5 +'æ‚ãpQÄÐo„I2Š*¨˜²QÁ¬8gO‡¼mK ×ó€òr‡px7¡¤O )Þˆîe1ƒi*|QŒÉiâ'…@«Wà ‘å ØŒ„¡xÙ(Ž`J±”SF–ê• 1Ž;…£Ô"3P†¢û@Á”b)çeÃÆÅ Ñ;E×cɌޛŠlþ{SŠ¥œµËEôÁ÷œ"‚ƒÄE.|,E©¹fu! ïÃ÷Y6ƒIqÆRÎÚ§¤WÚäƒÔjËð0ÉE‘áL9‹t›¼¹½ÌR±$ ZÏò˜ê%¡€Í¢;…9NYœ§´Ú¶â<ƒ)ÅRÎÖËÂQÅíé³Äk\Ž".c 8ûD-ŠºšÓ]³f0¥XÊý[3qÇyP@–f¹Žj B÷¤€IŽX§¸7ÅL)–rƘÕ8µ´šPX£7 …ñIí^q<·M´Î`VœK9£«Æ·I ¯wˆÿM©Z¸áúÖ!g0MÅñ~üEÔ·îvJ’>ÕVË¥EÆ Þ½zVœ] vŠ#˜RÔEQ‡y‚åLU0P/¹ð÷@uiYY@ê¥íg0¥h“‚Çu„ãè“P`—+Ÿja¨ÏÊ"”·ƒò ¦±(ÆY‹àZžvOP |ù"Ý mŒz;î‚y}/ÎL(Æ\>(Ê8æt)z-9†ËI1ÆUãL.àOàáÛ].fðÙ"B¼ úÎpœ-<5@Ò!†óú¥,t˜!Õ’Ý0 ¢{YœÁ4K9cÜ> stream xÚm™±²äÌ …ó}Š ï{h ÔUþÇ7s9sùýÁ§5RKÝCÕwϨ4Ÿh8€æ?¿þúÛâÅô”üúùßËÛËE¿©éë翯 ëï?ÆþÅßLò›¿Ä$ºÿþ#ã‹Ægý‹¾£©ŠñûRúf7\j]“zûý‡Íè}íøš$³Eø¥àÚ‡øŸŸ½èõ‡åÛ4/ ›ÌÇ­]L*+E¤õž½¢ÐLn;Å)–ý¦Ð ²æ…¨òƒ¢` )(”ZïA¹PL±¤ðIÑÚ¸5¾² `ʾRD’â¤*Šnø§Å)>(삈 !«S-[‘ÍÝâ†p\ÚpJH¢†ÇÞBq‰e(rRèH‹â…jã•ÂÌ#™* mͺm§XQ4º)òˆ2Žš &ו"wåôIãoAÅ)–<)l佸´O |ñóìqœˆ7£¢Pµ´-—XR´›bÜš™"Šäd•à•Â:§ŽBÿ¤0OÚFqŠ%…LŠ>ò^{*(˜Z®8<äRU¨-‘†îÅ)%Ònçô‘œAÄR”y÷‡[Œ Âs9Áè>!DÌò6—7Ä%–¡¸ó]}¨G)J¾É¶RXí­:û†n…z‰%Åíœ1<ËM ç$JÛ(`YÚS å–Á›g]bIq;gŒÑHt NÄèN ÔÂê­:Å_øl£8Å’â¶ÎÕ‘ƒ*,‡W ƒ»9Wv¡#L¼Sœb•œÓ9äLF³î…É ‘¬ÈùÊ-¬%£é¯—X…Bè¦ ÍF´ ׸3pCù8¥OŠîãúâKŠéœ#à¸ùcEZ„2ÓJa££F•zo´yÖ%–Ó9A;Òbô‹((È9V ôXx‹®f¢Û‰\bI!7ŰC´õ´ü¤pIy$ç¨i<\RÙQ½á¾¼È%É)Ó9qÊ£‰¤ºwXõ#9G1µÀI÷ê@†:†ÇâËPØM1š\Ú¸H‹ãë+\S•ª&J$´SœbI1³õeŒ ·è$ê+EvC—±ðá|[+»Ä’ÂoŠQ¨˜ÓiúNa=ŸçŒA¤ò¬DÇ•Ý9/±¤˜Î9Ænܺ7ïVPˆ©­Èy²P±xã-—X%çíœïýBÐ%½€ VZ!2PMQM¾(²>ö«â«Pè휇ÈZ ·šÛ²ó‹±éœò¶CƒÓÎÉMÒVïèeÕKÃ6Š aKÎK¬BaÓ9åX¬ãÞÅzòÃ9ÇB„½‚£tNLvªÆÅ)–Ó91w@½ráœd0œ•s=ôbæÄÅmr‰%ÅtN=Æ=ê”\tTâ|žH¾wj<`U¨Ø$¨­P/±¤˜Ö9žuLO þ´° >Z$\pÄ"]Í+ ¬ŒØí¶¹Ä*9í†8––£f_!0…Wï Zh:²µ²K,C1Sß­;œE<ß¶æ{T·Ž!° pÂ^•ëB4Å’ÂoŠqÖè Ñ¢ Àh×V ŒAÕ¶Ž`’ÈöÎwŠ%ÅtN Þã1éx˜Ôr¥ˆì£T+ ÏЊS,)ò¦8æïŽÙþ³‹»=ºÈŒ}OŽw°c6mQžb‘œ}:§?ª/Z¡Ôb…°tîV¥EXDß[Ù%V¡è|S¯ ǛܢD~ºQ$Võ¨^Ÿ`ɦÅ)–Ó9íøAm³KAÑ‘á÷´wX=æ•®ÕûoÌ·žóÈEq‰ øëoY~¬i¾ë ßú¢{£µÃÞ~ýóç×ÿ§ênendstream endobj 876 0 obj << /Filter /FlateDecode /Length 1634 >> stream xÚm™±’ä6 DóûŠ wƒ›A€RWùÇ›¹œ¹üÿŸà&W¤$ ÙU¯Jó͹?¾~üú­þ*ôŠòúúïeü²*oby}ýûúû£¶úùS‹}”·²|–pv÷ÏŸµÿ þ·öAo§VÅãûQz—¨x´i)òù³¨Ò÷³ýÄfbÚ¦‚g/â?_½èõ³Ô·JL YU;E~Rh“óµ%:pUÁ³ EëOG-7Š%¦º($úd¼¼%|yí7…QsóšQD£m£8Ä”¢- ü+5¥'JOõ¤Ðñh4ãH(JÕf´ÕbŠ ¶ ¬àiåV59Qoq‡R‹g¦-³AbZ _Þ_ÍEQ·„‚k¥;…á›Õ´-M‹N¼SL1¥ˆ“Âzsjµ'EEèIÑÏ®à½æÙ0:˘6ŠCÌ(ŒEPoÎ(•2 åjw ±ÆèúŒ"¤m'2Å”¢LŠV{_`z}v vŠË ö²• Ú8;‘j8@ö;ÅS >)ú †õL(D™î*V²A•"Å¥Þ)¦˜Œˆ-çlâýû9zY )wˆ uì@D¥wâqˆi)–sqµTúIQì6"˜[‹¨Ù ÂZÄëÖœSL)ô¤ðáø~É4Þ)»´.>(0fø¼í@¦˜R,ç´1"ŠÕÐßü  ²z§ˆ`XxÖœj*U7çœbJa'ÅðïJ¥$¦…ãË ÆØeÆžZg+0>ÙFdŠYs.çÄ ö9Åʶ¤-ˆ­m†±kµeXÑxƒ8Ä´Ë9½è°%{l‹ˆrž3S?;òhÞ²¶haØI±QbFáË9‡)KÓ„gJw ¤ SBa¶°;çSŠåœ>œ³1³„ QîΘîO C¡­SL)ø¤è‡í½åâIáNv©E‡Ç(QæœÎpZÙ(¦˜4§/ç„eöŽ«Þc߂ڿB_dø8Ú2çÓRÈI1–vÅ3ùb[ ¨ÙIÑMÄž:'ì f+ÅSŠåœ>‚¤Âˆ$©úðürL=“ˆPÏt;6"ªÜ›s‰)ÅrÎàQf+ÜúA¡Îv§‚åk-£h}‚i£8Ä”b9'*Ö›ÓpxIs6&Ûjaf³dD¬#/ܷȳæ\Î#ù²²¶dNUôêYãì¤(…Lò6!KLK'Eû‰°SŸÒ‚/#¢£9Q¡–Ì©1®_µÜ—È3ŠXΉka¯"õs‹XÏÅîÍ1 ’8§Õnp[ò]bJq8'¿±3{[ˆ4NN¤û¥-ÆîEÔsáŒBa/g9(1¥àEQ† ™sâÊxõï‘¿!yå A:”}D¦˜4gÔ1VQ¨' µ=oë|T­ÐX›OÔ³µÍ-¦˜–BÅXeâÊ.O 6ãrRôäËŒhYsŠ[·ÕâS =)ÆmK«¶„¢öUw£@pÂÍ,T­I¿§½%¦mQ踖)¶ß)­ô2¨>OûIgˆU¶æœbJa‹bì2Ä­~ ~R4’v§@…,kN¤r[UžSL)|Qü]I’Aí¯'Ò)ÌyºËà¨× |Pb6"1!Ê0"|9,¾'! \ zÕ T•$sšQA¹‡‹%&¥¢E1*N®¶¤-H¸ùõEo¦p·­SL)ÊI1”!t–„3¦w dœ^fÖǬn uŠ)ÅrÎÒFÇái~† þõk$(JŸ&ëlD¢±ƒ·AbJ±¬ú~"X½ì ¯2)ÐôHCÙ.sɶ+êŸÍ)´œ³Œ*÷VŸmáîriÎ2â·bn²Ÿ’0OŽp¸­õ)¦¥Ð“büV†PKB!ri‹A¡¸ùRZ ¤2 Úü{Š)ÅrÎïhÏ}£&mƒªíNÖìŠÚoÕ¼ÿ~²Ä”b9'µ^Ƥ>) ~s9þ¾­#jÕŒwFç²QbJ±œ“e­KüÛå,ñ7…i i)£Aßîµ8Ĭ9—söìß“oé?Ž< .—é–&¸à&sêÈ_µîSÌJQ–sb徇™JB!|Ó:ì­ÔáoO \[šóFqˆ)ÅrΞ{ÇE+–PP‰’5ËœŽð#•ï[d‰ øõ»Þþ³†¹¿S^øÔ·¶í{ëýøóëÇÿj”Gendstream endobj 877 0 obj << /Filter /FlateDecode /Length 1644 >> stream xÚm™;’$7 Dý=E›³ÆŽ€ø¹Š Ùã)ä)tÿ#(Éi²~ps5¯@ Tÿþõã·?5^Ô>³%½¾þ{9¿\úgãþúú÷õ÷G'þùKÉ?øS”~ÒGÛÏ_bmüÍ>Ú§‡Z û>Ú>™:ŽJ’¸á ©¶ï³ãƒEׂ³'ñŸ¯¿^íõ‹äS{. Ùxà8îâYPPz»RDãô¤‚BÈ¥Q»R,±¤è›"uÆ“BRƒ OîälAÑ•%²_)–XRèA¡8n”]ŠXˆöîWŠ®ÊnVQ¤÷Ñ Å[zAÄ¢+…e„GU"&lÙéJ±Ä’"7E± ãlÅPDïEŒ£¤Æãì“Â=5o±XbEÁmQh/N2¢ü è&~¥P1ÖÈ‚Æ`,7Š%–´)¦i™[Jq#ÔÄìJ‘&R߈{k=n…ºÄ¢D˜ˆ‘H¢Á9ó€Èoç„Z•Hõ”›g-± …ãÑ‘à-ü»Q_)FªÀ”+Š‘[qKÎ%–Û9aãÑ(šxz–§Ã 6£Ü]hxȃ= þËWŠ%–Û9­É¬>kYQ讆è4ªœ3Õ$üv#K,)¶uÚ´ ë®E¡zDÈ‘L³P‘T”H¶&ýÞQ·X%çvNÝ(¾Dä´€è=ô ’ÒÖ¬‚ЦÜîo± E£øDÌÕ ŠFܯ9 ™´¢Hü¥µÅ[,)¶sšÌ^¦MZ<)\]ÿæa²Hì„ „æk¦WŠ%V²ÓûÈ8EAIEAèfW xa¶áOŠæ~»‘%–Û9£ÍBe-òÂlPnŠQMèMȷ´’á…DW»Øb‘œÂ„Ì InEZj3®(^²òBðÞ”ˆ·X†b;gL;LÜ=[²ÂôäY£¤YH.¦=t!Ä(oɹĒb;çpX€[ EÊò•Â’‚«†š˜-1ÙÙâ-–Û9Ãf‰`¦ög/s´B;Ù…N`éÅ 5¦VTÔ-K,)¶sFÎ6‰DE!Av¥À LHÕt¼ö̘ Å[¬’s;'N'‚QÔéìáÄ\0Ò‹WŠ)^}…XbŠíœ9‡ êèdE+“óTÿMYX[EÚÙ«Ö¦x‹%ÅvÎÌ1íe7£¢•á)v¢ð9ªc1“óƒÂóI7ÏZbE±ŒH>[‹9âÄì Šî§ù{R` •*9±¤ŒEåFñK Ú³—5ŒC^Øî‹y”²™W…Š‚2‹Û,±HÎÎB¦s ¦õâBvÓ¯ÚRµ„@4ûÞ:ÄËPÈA12;§òs-ó‘²'ŠQÒèÑH•Ê¿±Ò#-–XRôMÑÇÄ€ÑrxÁ“BÛ99ئ³.²yc»Q,±¤ÐEA4¿À±ŠåkDët¥HÔ^/odÌ­"q£x‹%…mŠ˜;¸b3v,—y´ì«3/Pþü´ i(2 ÿ>NJœC§‘=¿Ÿ øH7š%M®¢ð†þK7Š·X•H,ˆo HŒ-D·Óž> stream xÚµ™?¯,· Åû÷)¶¼Á]S¤HŠ­»H};#]ž«1ùú9Ò®4£®l¸¹ÜÙÙßðÏáѼŸ¿¾ýô«¶G¡gP”Ç×ïç‡K}×Ç×?¿}T+ß?µø‡<ä{ù RLìû§XiÔ?³zº‘ºÛëRz².­ÌU ‚E•^×öI(¬™I™‘~Û#ø¯¿?èñYä©5&/Š2n-Ík¹QhDS^•pmâz§(ø7ŽbS Yì¸Ü”9$¡`Û)Œ¼VK)¢"£|¡xSŠº(¼ô\¨Ý+¢Í[ÐAÑ/åRP¿Œ¢h#“ºSÌà‰B'„N§~gõÊìQ<Êј>H ˜Ù™.©˜Á4vPô‚P°$®f§‚ðè ‘Ð,ÜÜj½R¼ƒ)…OŠVúRk …G;(Æ49&­ÿF!ª"ÔvŠL)Ú¢À¯ ã"”“1Ô‰w m•"¡@Q‰…vŠL)bR„õ\˜µ¸S¨Ž˜uÈEeéƒp§ˆÀWŠw0£ð÷µµ‹ . EÅcŸ(´_ªQ\$¡€ÀÙ)f0/ "tô}uo ¤Awˆ`Õ’Ä ,ˆLSÁ“¢ßƒZ*IÒÂ~PXo "$8T {D¹4ç ¦²(J¯u´I¾R0ZöÔœ}¦«·„¢1z¹\ÚbSŠº(x¤¹"mÉ ¢ì$Z}𨤩gÍ…P­K.f0¥ÐE!=Í Õ–¤9±øÔœ½xX²xÀ¬"5Fwmï`Öœ6!˜z*Då ¢ôýµA@ I²T W0É—%²‚i*|RôI7íât¡¨ÈÐi¡j¿ÔÑScnnzyØ)f0¥h‹Âbìj¸ˆ{[ÀFhÈA1ä ÃK5iN,­"õRL)bQD<¦–ûˆ ‰õ´E´ï2HH±¾fob^É|§˜ÁŒ¢-åÄF#S¦w «QNé[D Êäs\`Ut§˜Á¤9[9 †Ïj¦%)D2µÐ±D嫌m»¼Ó„˜Á4K9­ôçc‡$UŵÐ>MpM3çË‹€ÕµSÌ`J±”ÓÆZ/xf½ëwEêˉ¢ K†¡Î(°³¸Ñ¥ 3˜R,åtê·Ã-“æÄúòc—©æ„‚jbq8>¹ÚN1ƒ)ÅRNæÞÙ¸Sñ“ÝÓá†Xê°W !&³Øûb³æ´¢·EëjHwâó!@c,T8-M”S:1¶ç1ƒi*–rÆØ’0œC“/pü‡ZXWÎÖ°¥=)ÑÔÛ…bSŠ¥œPÌ‘e4þ½-ß÷c‹X×,,Ȉ¬9a˱=uo‹L)ÞÄúÄì÷[÷'LraUë1"£x 1ålP>¹Û€b3ŠyÖRXœq"‚Êò½/SɇÑ2GTç‰h¡¤ :t¡˜Á¤9çY c3Àö–vW œëOmÑGZ‹º%«L‚Hå"ß+˜¦‚EôŽ ƒ™I ‚O©}N)z#'sŠE P÷w+˜RȤàÖ ‚õ_ìî¿1ëFqPŒAÅãA… ž }»ÿ^Á”¢N î©/¹Sô}ALj¼öHìBBŸôî|W0¥ÐEÃHV¢{EÐ qr¾ÞGDHš—¬"ÝFx\r1ƒ)…MŠZx¤Ï|ߨhÃzÚëþ:–Ž®IwBƒ :±[œÌFÄ'ŽnÃí %jÁ°IåTáCGël‰(L4äig°‚i*Ú¤hã|AxâdP F§m˜äЍ%š…C5ýu÷œ+˜R,å„ öAõҽܜO¯’ÚË ¡v’åó'±ËÅ &:Ù mô}-í^ µ“hµq8„º¥žÓp¶/írD]Á”¢LŠ—…µè8W 4·úÑœÁ£xð†Ùñ~ô)¾7ç Þ›SçË/{Ê0OX Ê ~ïp ãRÔ#}¡ÕºÏ-º¯õLS!‹bìj/:¯˜/=½¹€ŽŽ—8øuM”³5¿ËV0¥¨“ÂG[ŒãÅí£5':Þ É–|%)NÃmmqSŠ÷:Öúx•mhú…gÕõpò:‹àh`q¯ˆât‰ª–M.Ž`Ja“š9^îí_MÁ<Îú¯ÿïÇ0)ðÇþúã5¨ï?ä…òß?þ8®ô«Ð ¯?^Ûáó|ûù¤øì{œåI4^âÓ±íhü÷ão=2îy¾v^hëBÊW"ï?DÏ‹Q|¾äçgCßküøì-ð'?4Ne¯óÂO¿Êö/*̘ÐRÈÒ…xÿú¼o¿|}û?Þs ]endstream endobj 879 0 obj << /Filter /FlateDecode /Length 1132 >> stream xÚ½˜;r#GDý=LÒ ¶þw#´†lz y’î%ÈÞ©É"=€ƒyÓ]YYÙóãõÛ÷Ÿ^¦kSóåõŸKÊ%Õ®$vyýëòÇ“>¿«=Ñó‹s>áÂîg~Ò ½#×Êpï¿_ÈŸ_”‰ŽkùJ÷¿ÛÇÀO‰Ø¹½íùÏ×ß/tya½ºõdgPÔUö¸s6dÿ JÁcÅò¤dq¬ß°øÿ‰ª§æŠ3(Šh¿ãWU³3èm›KÈ>Ú£Ô?ƒüÎÉ™Cžï Êk¹í8(ˆ~p°vKTgPdIûc­¥éR×þŠÉѨ¿ Äø•ÆígŸHw%0\&Œ”óþñ¶ádVÔ>ŠùL²déƒT%i9“ÊËd!y§xÒH’dâïkô6J\’9ëB ‰j¯Aw·  Ä㨺±õ3þëæi pã’l ±å»lõÊoͱ!©w¬¤KlèDò/#Å™Ä,IͳmCîµL…Çäœw/L«’u²ò†D™¹j šQgáv€ vÉ4ƒ"qãTQóæõ@£öAB•d×·–ý™Ä,Q5ö­œ[íñ.»¢èZ’Cÿ¾8DÜ}$¢*ÒøNò+9,}Ó·X./eb‰ðÑõD’Ö!=¿ uÐnM–b+É1;»Aˆ 4… M”y£qWáXA¥a5Ž&9;D%C½©P2ßlžá‰ÖÍÓôâ‘tvˆŠ›ÓÝI”ôÆ!àø´JÏv"cßJ|éì…Y+zÛ$7kb¼ 'v•kD ­cÞÊä⛑¡-¶. 5íèyIg‡@zrÍ; ‘(MsczÒÐÙBJ> stream xÚµ˜;r$G D}žbLÒà,þ@¹¡5dÓSÈ“tÿ#(›;Ýd±P&×Ù~ú5P‰¬¾=ýøåucº|{ûï–rKµ;‰ÝÞþ¹ýõìòòªÁùL/¯~üw‘E”ÇÇxæ{ÔHÿ¾ÒñƒLôéËL†œ_ø™T+ÄC_þ~ûóF·WÖ»Ûxt%…_¤,%➤n6&’;—d´$[I^Å|’ T¡ I#m&•“hOò•dއ\¤ÄÓ6$ ÷¹¦dôÀè3É XA(â¡{}iÞ@ýŽ—ïJÊ•ÄI¿ß4žåNjº!á›õ™dG§QTKª•DÆÉ'‰EhXO"•œj2vŠÂÑu¤±|°d^¤‘#z‘ãô…$eøå†´’ÊJì$‰úHßÄr'S§‘A-‰WW÷‹^YU>Ÿú^9²‘^Hrtï eÙ’fé™9«ã-»’V‡ð®KzÃv%塉‰„¹•zGZÂÝ÷“d%µ!áXææºéZ-iu?âªÉÂÙcC¢Ç„_¤DIp²–´Z„ëpºá°²EÀ¥è÷4\¤‚5»i'ˆÕ!\Tü„Çõ OáB=2¨õ¢¨†DDr’â²!³&ÁŰ^C`ÆíšÛP¼å®&8‚Î$÷dj¯Œ\Âà'uÕTÊ1úk0a<NX’«õ¢\ Ýq‰½¨¿¦’Ö4¸x,Ìœ£DÊwƒ®’V‡°`ýð"„ nO}(ç"â ¦%­C!¿1 ·õfšÊã™Êj=iuÃôÉÃ!®ã‰=‰!&‡ð ü²JKŠï&‚X´tè BNÐÚØ+>~ÑxE¾¤Õ! Sq’I76$¤\šJ RDÒ>êåê˜ÚÈ«&aí<`;*3)x+ˆjlùE d±!á;3‰Ñé좇8L2O’ …õㄽÀæ r¼¦vñµä»AWI«C þ1ä" 4‰6$(g&i&²s*Ë’èÇ1Á%ú ŒKh&™…ˆö¤Õ!4åÕ= ªMM*³ ¬ŽlÔ¦•ZWŽðÕ=DL‘ÈÉ&׋¨ ÞœÓj ƒ8ÓŠÞáQ6Ýs B4‚~ZçEU «— ÄG³‰ÍmA Ýgju€ˆ>Hø·9r­MÇ”$ø*µÍ«C(µKzÅÐ-oHYΤQïëuGↄlL ŠØø+"“Étµ'">µ"«EÈ€ú.A`º˜7"WÈ'Ä ÄlêâëXBj—ó :}c¯â4{–¬AÊm|Ö ˆGóìN|¬ b Ï$Ó o¯Œ±:„ä±h^¤,¬= ÂÓ>ƒ@›ŠE­%­azdúƒÄŠksLHu1K˶üvœÆêbð";Ibˆ¿ý*tÜ' ;8<îQß ºJZBt°ÕI‚ÿÁÙ[’C5;Ôdàu$>Döå ‚M‘OÀuåñËùù!Ì÷?Z”Çe±˜®HŒ2Q´¿tú£¢ÝѯŠ»{<^Aß[ðôÇÛÓÿ—:endstream endobj 881 0 obj << /Filter /FlateDecode /Length 1201 >> stream xÚ½˜½rc7 …{?…J»°ÿÛÉ©Ýíl—äý!à•¥ A—vç©Ï@ÿüxùñKã‚p0ðòñßÅéâ,W ¹|üsùýŠ€oðö®è¯y”ˆØäö«\ßðU€bð¿ï@ÇY¼µyVÃŒå~ÀòŠÛÛŸ¿/pyG¾ªŒ;V9Wšñ0ÙÐ NZ²$Ž+=W>Ŧ¤ÑÓ\ñ¤1"LšcO“…†É¨´0•Ml6ÐÇIÔà¼Riz‡é ¥¨¡y~÷–gµÀB]òJf¬ ÍVš'Ž*ÍBur‘¨ªC^ÁÑÓ|¥™Œ¨"ÉÒxlhÊjvÒ, éyelhñ­´±Ò$@j&CÙÝ{šäG¥náSä³Ô- a¥±‡y¡ T‹MsçÙ(’n ‡t’ÄÕIÜlTX¦I2Žˆl¤—WúШ¡eú?“£“8;°§Q&ý -“@t„Ö7®N’ÉÍ&ª´@!ÝЙNia6€ö´ÆI 5â…†©ÛøÁ)’Á6í|^éi«•dö ¸ÐÒh‘džT$9Ćà¬[/’ÕIÀǰ'˜…ñF‘ Ì|ÂÒ¢YgƒnB[Œâ.³ƒÆNƒû²ÉÁ³·GÚi¶uºøF$«“€Î|TÚà ÙÐH -œ§“p?np442²B“ô¦MÙ$B´”-4ðÜ}l´: H:ÝÍ·óFBÄÏ 0›oµ"¡ÕI€”°ö¶³öú'…Goçg‚þ…þiuÀ`}¢‰²mB˹‡zÒrŸñ©í}‹V'ÉÖ6ª ŠÜ&Ò@QN«øÜIzÚâ$1Òƒ¥6€;æ×ÓrO?iéo1`ôûéJ ˆú gWù†–– 'M™lЬ‰50Py‚¹mD"&^`©§qØVßmä+Íîî6B`ÓÛù£Vh¹ââ¾·)Vš1y¥å†Â€=-?ø¤ydݦ±n$9VZ‰>3iÇp³ìàMlE$9Ýbz2ô4††Fr÷䃆sÓÞH’„¸Ä–rÖé[ڮɌ+,;[kh˜kή· ð´­9ñŠìËÆÔÐr)JK¤þ17ˆ3´Ä)/€Þ’™WZ>fØ rM÷Ml()ŒBK9Û~”rã$¹„‰§Oö´9 ÏvËTÁáɩ˖¶:IäÄTh’ß1úLæ”Áôôò×ÇËÿ\V6Çendstream endobj 882 0 obj << /Filter /FlateDecode /Length 1188 >> stream xÚ½˜»n$G EóýŠ µfY$‹Ô€7p¬Ìpfûÿ?Á·{vÔË¡ Â@Ýsºø¸¼ìß>¾ýø9ã6èž”ãöñïÍùæ¢wb½}ü}ûómLúþ.ƒè çð7º‡~íñÑïßÇå¤Þ‰ÏkÇãZõ)"‘þ¼uð ׉[†}ÿëãÝއܧæ“6Vš“Ú`3ÕžÆnÍÒ’p‹KOã†6°Ðœ4dž&ê…æ–É{š¬4s\iÉ*sC’㢙úüQió Ó6( ɱ†L°\°6·àkÛ£Í/¥Ù—Ò|¥iâ[ M¥°i€A)¥H2Rþ¯¢¡qhm7QSòžFæÏkAÃG69Š„zZ®4™>k$%iŽMIÏy•¤ ™yDÒ¨+Ik”D˜_ê_…ˆ Œtr9ÛÑmÙ§Í%a$ó…%Û( §žÒ÷¤q°Ýf}Ú¬QrñZ$Ó\F_’q¿hʉ"G‘ŒžÖ( I ¯´Hµ¹¡‰qš™‘ïi«”@WjIšˆç&’øÇ(y›’qD2½-’UI,rf ¤y ó lBB/˜átgÚzI6khFB…a— M(J‘ØÕáAƒDG?J%"×àVVÌÖ#ÕÙI£$Œ¸Q…¡ªi#[‚ƧCX¹í›´Ù—Ò%Á¸Éš6è Ù¦Û` Š$+Òk'mö´UIfšq¥ñLt`Oð<ål¸Ž%ÉÞ”{64ùl¡-xЦ¹½TRá¯y,¦üY$A_ûêEs–sns¯$±*É‘èW¶DÙ( ¡f¡á¹tmU’iŠº.4Ì/,MÍb“±àÑ8"›¼­R2±pŒz¶IÇ(oi#‹»CÈÕië€bU<ëH©07Øá†uÛ®0áÎ"‘~n‡7´cyª´L;š[Ñ­9Îy°5å_Jk”„cpmnÃäž}@÷êæ†[á]÷~+)A'S=›cm×±¡™{9›0»Ôl×ûl”äXˆ^`3tê†É]ЇnE_$Ù( >r¥)mÞ“ÀŠR”@¢ú-öž$%!“ÌJcK• ÛÂ¥[yº»)ÏUI°Ýî~"»Ù¥°gN«´8&+ÎÖïR¹*‰Æ¹Z^4¬K°`= §ákÞLÚx¾j•$­³¾Â š± ä¼Þ;0lë{s—«’(6àçãæé€ð&§\_4 O+½'ÉUIyw)´ÁßÓÓÄQô-Óæù2á¤ýø)//E™éÎCoïbwÄüñrN¦o¿|ûié7Fendstream endobj 883 0 obj << /Filter /FlateDecode /Length 1218 >> stream xÚ½˜½v7 F{?Å–R!¿Øæœ¸H­.']’÷„|œµ5˜ èÒ¥×;{EòÃ8¿}|ùúÍóÁô>iòããßGÈ#ÔÞIìññ÷ãÏžóõM™è…^ßœã…ÞÓ,ÅæóŸóý•ñ%ÿ¼‘ßåçw¾;Yiûñ(¦‰Gñ¿þõñǃo¬ïnóI¢†fƒ´Ð„C•zšdŒYhBx„²§ñ¦O*m¨elhøvœ4‹£§IC#â(´µ[c³“8ŠÔB›‰oñ‹[¥ù˜Þa"Á£ÂÜ'çæžr°+~À´_šÝiþ¤‰ohÌQ"i†“\kóž6î4Jʬ4Ë!ÞÓhÄ “æb‘x$­§EC£ðZn6iGÕ˱M2] ½“ù®T Èæn'S4ŠJÐ+ÔÖ#mHؘ‘r…IJÎ ŒØÊ±Á‘:ðÈì{C£¥ºBÃOo”L³ä?ˆ!¢Um½%ùnuäø²¶•šÍÚ±žBóay¨®§ECCÓ¨å3!“ M­´Ò%?  ÷7&A$.&Aüç.’Á¢e'Y%Æ­ß|†¤1‰ù zlȸù†ÄØa<”L_mÒ˜du·Zm¨ß¹int˜ê¤Áƒü%KcˆëJCê(64C‡)4 Ó[µ´Æ$ºŠ¨Ð¦b‚Ûí$‘–¨èœÇ#=­1‰`óë„mÄŽ÷4G½•(&®EêB"IxŽøþ¼`ˆ!á¦2Ç 3…&ôKkLÂøôBóHïi˜1ç9%À9žkiÔW›4&¡ü<øï4t€mx­6w;”çñV&Žvóõ›^^Šb }ÇÍôñ¦ãw°çŸð¼}ùýãË'5¦endstream endobj 884 0 obj << /Filter /FlateDecode /Length 1221 >> stream xÚ½˜;r7Es­â…R@ªèOê*+pÌÌåÌöþ—à‹¡ÈÔ4ZªH¾á·O7øÛÛ—ï?F>˜^‹Šoÿ>B¡öJb·¿~Ëo/ÊD_éÛËàøJ¯)¤nþþ%¿~ã¯CØþy!¾>ËïŸõùÙJ ®G9]3„|ûëí=^X_‡Õ­n4®J|z¥…ë‰FƾÐ"’ðþëhƒšSåJK¢1zZ$3?iÁž‚GÜzßiixÃ*| 1^îIKÕôIÛvr|À¤ákÚ`=ÌÿXHÍ¥åaiz§EÈÇÁ¿ÓJ8é>"ž´b¡I“ìiv§yùüöB ¤ô@ã˱U‘(Á÷ZÚhhÑÚheA=mÒúI«´&­zšßi#%×d2µCHð›êynÅ(–¹6מ ͬb£¡Šê@_έؼ h´‘Ìÿö\Zc’A¾Õ6#“"é…–~…DúxcSªÕ’ÌÆ| ÙðzZ²Ä-'ûróÆ$:,m£Ña'IššŽI£­Q ês¬*aI¨³§)-;9ù½éBâIØM·ü+KªË}ÙøÅÒ“ÐØ-ÉЬ¼%¢‹I  ô€iɾڼ1 1ïdžŒÐÁ[‚[Ž Yæ¼RÜÓî&?wç'M‡gOãðu'CÃçNFïd†63¹Ñœô`IŠúzÒ"xFÒúÜM2{™Œ –V‡d©X–Ÿûì¤t¨íjhB¾ÛP;)Zh…”Lo–w“P¤¨l´Q§y‹ð£emó ê¼¶à††jÛœ> stream xÚ½˜»’ãF Eóù …š`´x7ºÊ8Værfûÿ?ÁhΎؽ6t¨ÉC¼.nó·çÛ·ïê7„G@àíùïmÐm°<€äöüûöçb¼0ÜáýCqÜá1<4œ>âãï4}üóx\‹Ÿ×Z^ë#˜Å¿n%tŒ!y Ëû_Ï?npû@~¨Äͯ4¾Òݵ¦¹ÑI‹ãÖ¼¢¡Å•6ŒÂ6ÚŠ††HãE# Οx—QÑàJ3Ø2™"ªiùfÄ' A|Æf¾Òô †LD¶D† k9x˜,0Ñ1Cc«C£+MMy§E°Ô4Ë"ëI#z4IÔ4.h¤[Kæ+)AC3ö%‘”E˜4—š&Wšˆm™d¼¡a^}ÒX!â}4±é•Æ6æƒOR@3njKK “QÞ¢ ÍþÚ«% %É¡¦ŠÜÀp…e‹Î–4¬C+”$ï‘Xiƒš,ºEª†sÚ²ÉJZ¡$hcl-IÖ´¤H¾ÉIË5ºUdž…’¤9l4×a u8ËV7R0öqã—FJXr·œ4Ž[jYÑ$xU’™È­lœ ‰ 5h‰2ÏDB4ú©l‚ÍÈÉXhnÇrs¯iW%ÉíöÒÙ4anš„L}Q’˜‹pÞÒд ÉÐ=6 k€²%c¡å•³lÑdòª$¹°ní9µÍÀ=[2eŽÅ=FÙ$£€¥ŒoM¢ÒºXú\Xby4±Ã¢U-É…’¿Î,7Š4'7›hIÏ¿çlK½nøª$JÌMÝk•´é—–ôÌÂaîj—ÀZÐr„všk4±™ .±ž¥i’«’ØTÚUIòyÜœÜ,÷-‹;rR'ÍÚ(hämêfCƒ4G/Z^—gŽ™I,›äª$ÙeSÅWXºÑÚJZŽŠú3…©$Þ”- š˜í¡…XGS°s¹ Â0î¿“4Èg¬4šŸ’Zó–ØPÓ,ÍØjO"W%1KsGM›Ø$Üa¡¥¾Žþ,%TÐÒ\ï±¥Ž5š,s_œ´¹ærÓr¹ÉUI²ê¸'rúš.4±Å%äk9{?ÛR(‰N¡ÚhyÀëB#Xü–¤Y$î—›J’¥Ð±Ñò¼TCtIdîœM2Ž&ùö·¢Dóc¢Ü>Øj_¯pTøí÷çÛ•‹6ºendstream endobj 886 0 obj << /Filter /FlateDecode /Length 1226 >> stream xÚ}˜»v7 E{Å-¥B2âÙf­¸H­.+]’ÿÿ„Žm]Ò¤³,Žöàu8¿}|ùúMãAã=GÒãã߇óç¼–ÇÇß?_¦ØëÛ¤1^Æë›’¿Œw7QñýGz¥™aÄÿ¼ ºÎÒ÷³†³aÓbÚÏGYdX&QyýëãÇx¼Ñ|WÉŸ4/h¤8½Ñ„¦u4aŠ&™s=2jZÜiÓgÚA"mh¤é-9 PCË‚6yúA³°¬iéú¤éÔX™ôÜiú¦ããv†–x†TÊó+4žehJM¹ßhÊ3£¡M'zÒŒ™ 5% Úð‘ ÿ¤†FÃwšé h™­i‘Cm£E\e“&¶»’(„ë4n¤«iI…mÇCc/+­ÀîJ¢(´uKgmš$FnVª“Q¸Û|6I¡$ áÛ;R2Û” ½;¶þGªÆ M›²J‚2©4NnZißi2â¢Ú¬PôõASxPCƒËóFS8coÜV( ’Á~РOÒÐå[ÚeZo@^( äåÌ$‘è¨iæm½éjô^Ñ$^( »¹v„h‰•‚·ŽÄöD«l^7‰JÂk?Üi<à*5M±;n¡™/Ù¥—lh…’@•TFK6eSSÝf{%.Ϩi…’¬"MÂð„FItúnØz/sËÚܼPüÁ_2’†Fc>×d‹çݸ?›¤P —ï" e±ÎÛ$X7» ×j’hB+”æ{¬É:±LzCÓÏö½h‰hWhµoû]I0Ÿù Éíhl6Ÿ4XÅXû–5M’ ïxdR°š†»m™ÌÈ+6­Í-îJI&?b“‰«[Có±-®Øy1>ý¾T铆±iIÜJ·5oýòûÇ—ÿRú7%endstream endobj 887 0 obj << /Filter /FlateDecode /Length 1238 >> stream xÚ}˜;r%7 EóYÅ ¥@2¾‘ºÊ8Værf{ÿKðeÏH¬&”ªùNãwqÙ¿|ûí»ÏÓ{Ròãã¿GÈ#ÔÞIìññÏã¯M}S&z¡×7çx¡÷0þñ'¿¿òË ÊÌ߈¯gùdzÏN›xÔ>ÊHQ82óõï?ôxc}wËOÚ¸Ñ4Ã}4cåšø}ÙhÁcÑ’jZ4™-$¼¡ ÑùE "ÃÑš6ï´99m§1™HCS1ÞhcÚE;Í?aYÀÔ¦0õ9jOs°ââ+B3¢;-fœeãCkÚ!ÛhÃs´‰´Ÿ¿pÒŒ> ÿ“–iÔÐŒ#Ÿ4ôç$ ©ir§¡§ï4QÖ.6fÝiCg¬LrMÓ‚f.Glø 𿓿FÃkñŠMfM³;Í×¼´t³†æ¤c£!׸qÑ’F^À,Ï–T [3mι—͘GâˆgZ¡$Ž =B[Á6Mb3y›m”‘VÙ¬¡Jb~½ÄFK¡F·P7{êV8ÓX´Ù´d¡$Hï™IÄÐÐa£ rY™ŒšVH‰z|6õOšC#jDÝüIC"=¯#U“p¡$Js’ŒÚd3m:\hƒ J»uäWh\(‰ 'Žå†áË.4չь¦­VI.”D øG"Õ š¼%ÛÇô´BIxð©$>SÚÚ0mBàÖl+Õ´BIˆ% 0@k2Éûmr r·qûj’»’Hb˜i‡’Õô?›ÆS¶&q„õýÏ£ ñeŒ6ÊÖ…ÆœºÑ…•Èhhw%‘9L%‰™ÝlÓ$z.îÉ‚¦ùm4¶ÓÁÂeÓ$Ç-ØÖl[½¸ù®$Q;Ðô1šLú÷©Éx-¥k¹QÕ$BŒme›IM“À®é´ XU«IjI–»’È@KýŸâ ’¿5 Ö`,š54)h,vÄ–0QÔÐxò6±a½’È]IÄa%ÝâzqÃäºleƒjú*¦¸¤YAÃ/îš w:c44õ†á¹b“²I %Á.–qÀ`Ù¸ņ̃'™Øø× €k»%…’À#(´œÙ$2¦ûš§†÷¦\ %á:i¬mÙ¿ÜÒ¢ [¦¡§J²–´.ih> stream xÚ}˜»r7Es}ņdÀU?€~¤®²ÇÌ\Îlÿÿ'øb(r£¡*%Tíì™~ݾ½¿½ûþ£Çƒé™”üxÿ÷áòpmO’öxÿûñçKkíõM™è…^ß:û =Ùøïñ'?_ùÅÝMíŸ7âë³üñYÃgC¹1å磒&Þ¿þõþǃo¬ÏÞò“Öwš6ë4Ó‚â@#Q›h‘ÝðHÏšf;M¢Û[ôhTÓÈðï¦y¼(¿ˆ×4/hÒŒZf29BÓ›ÜMðÇL런ØalxÇ–]K¾^C&˜§:AÙËв u]hÜÖ´M‰ÄŸÙðˆÕeÝðiÐ\¶ 1ë)õÏG•ˆâj’<Ðx£JÝr¡YrÖ´01šh®ÒG“DM“‚†èd¦1kçMèΤÒÕAKªiºÓ¢©/™ä^·¤`ðÛ”I¡Ä7"6ªZ²ïJB—pÌ0¼~L5r‚yÊè«[²÷‚Fhù…ÖѦ5 ÒaS"µ>…OÔºÕw%¡ŽÊÅLÓÖä0Fx‘›Ö’m¨¤kMó‚6²¿Ð’OãÖ»u¹iБ¼Zò@Û¥„š*÷™Ö4ø %ÈqÄM3mri2—M²+ Aöli’½𤙅ß0'ãêS…f»’ä—ò}к*f» 4u¢9²>¦­N¤J"òÕÔ?i&­iêØž7-:´dÄÖkZ¡$ܵÍÚqhqÓR´û535­PÂÎZÆÍÜòP7AQ§LfZãÖ½j+”¤ó& —~„¡Âí ÆW—ŒÙ>$rSKôÈÚ$ŽpH$'Ë=ÛÌ‹_¸³f4¯ÒCuˆ±;oI†ÁÀúøEÙ|§9öã’IÈ´šFÙ¦Ùf¬nñ³’X4†<Ì´DgŸhMûDƒä\ÃM¥²Üaºu“ŽÔÖ»3©ßÓÆhƒ’¬µ’8í´Þ8fÝJ¬fáMÛäI Ýä2M5wl‘ÍM×€½RÓÂ;O‰„¿N:{—†B,'@òð`ÚåT¿hÞÆÎÇâ®Àu§ ’?× bÔ‹›½wŸb‹m±eÕ$Þv;t}¥û6Š<•-5/—pX7^( 9¦©¡õ4m“¹,F—Ë}Ö´]IÐïdóºÉ&¡µMæîÜù¦±~\ny(Û®$_@¶ÄxhtíþOšà¦Jµnù®$æ³’$ÐCÝ $y7 V[§¡$^»;ߥº¡±Ä†“øp°.¦D†”Œó¦—º»’ »Ó—²¹H?$R0-¬Ã¿ðu£—¡Å®$ðr²x4 Ÿ”D8hJ$|¨ O¢uKÆ®$¸ÙÝ |£Ô4†¾W)Ž“‘Hª×MìJ¡•œ—Û0~Ðdè©Lã†Û&Ç´Z%c— [ÄOyA#8ûC&q+è¤ÉX‚r•69v%ÁiCì3lô`x“ {õ¿ʶ+‰£l3 #«õÞ¦K”ošBÆlë!‘»’¸Á)/±Ake#—ù(lô׸jÚ®$ãwœ¾ÄÖØí4yò[jXn—M¨•$v%qn‰ ‡Ô€é²ÉKÂÆ~ÐHª&É]IpÎ0ëð¿5¬sá Ö®üºîëDæ®$—O^鎃£¦)î…{Ý@KÓé¼JsW’1n¶Ð"ýp݇αi¶Ë”üôý‡.?ŠÂD?a¬ojÏn?_A¯~ûýýÛE66Õendstream endobj 889 0 obj << /Filter /FlateDecode /Length 1676 >> stream xÚµXMo#7½Ï¯ÐQÂFV‹,&ÈØ9ì)ß&@“ÑÄlË”ù÷ûØì)‰²±‡õÁ"ÙÕ|Åúì=|øþ£Ú‚Ü\¢Å÷EäE?8ö‹‡¯‹OKŸdµrnéVk¥¸tCÁ%KeÊÊ–äØm׎FY*²²æ\p"ó«â5%Mx%éêóÃn±&Ô§ÍߢIJA[4 }-¦Ä‰´¢Yt-õÑôŒ"·hB`ÝG‹I´žMNçñŠR-Ü )”‘¤EóÁYè£UIcdÂ+|¡IÁâ-XÞà,¨÷Üó1x«`š¢‹Ìõf·h¢¡E³ vçÚØÄûŠ– HÎ×f}´tƒ垯bDc—KÍEåó«„½…»F¢ÎÝ¢y/Ôž½#ïºh#I\Ñ,sãM÷ÑèM,k¿E‹^¥¯Ió¦®I„H6I¹s6¾Ec|{6!6ûhä9UM%]ß›Î`·‘„U]l¯M0rÝH#Œ²1ICÄÑlÿîÎÑn# ¬¸¢y† ô½ ¾•æ+vƒ‡k{ËŠ ®vIÔ;IÚ¢)"õM2ŪHo !Ïî:€ºðDûþ£\d€³Ʊ€\™,ûgìÊnyï§3.lö´=lç•GŒ‡‚øòÊ’ ɸµ8ÕPÿ,®vüãùysøŽ–5ûzú®,—#çÑOÅC©jJßòÄŸÏfVÞ«MºËC*Ï2âãvóµ,n^¦Ái6»§ øÃhü0Í(zå»glFÕË×qç9E•Oñ3l†…1ž[·| ”w_÷¶§9¹ü—zþ)äËÚ<Í畺xµnV²Ì´í´Øqs®»qÌ9,šž™!@Ré’E.À"ù†…8g¾ar¤é’…²iH½ªMêf6Öv(¼¸’@•.UANµ{“„QƼ"Ê€s‘Ø«¯Î»‘Í\ª8iXˆø[€ qpÔýÌ-‹`z..I?¥VÁçb0’ÓÊ ZôšêÐа fXméT& ¥ Íy²²°\\ôX„Ê"—”{†PY5/—,ÔñØ&ñ¯²@Bâ•q& ÐTƒ5ºdrÌ~…Ú,.ŸömÙMn'³Ø¯¯E,»ê8™œ°Ù\ßpÁžVçÚþãÚ±²¢åÏê¶ïúL²†ûÍ}£DÑB ƒXBBm3Y’ŽL¹KË•Ï[¹Ôú%£¼G^ Fé ¿ËU±ÿŸ)x†³ôÍ­&>—›Ž¤z.ì-ˆP¥€FÉ*B)‡þÕ þ= pÒ·ý2ʲ5î¯æZ ¨Š­Õ‚'ô”tAaŒŸÁG½¦€Íu¢`hÄü­ùݬ'SÐÁENc;Å:P¹e` rÉ:©‘¤Á‡+}FŠÏôž÷×;¹…GÃRæw,°/¨7fšåbRÿÎeŠÄñ³ ÙÛqÎy›a«æÁ(1ÓTÃXø,¼Žk-«^ÐÌøb†£z_Š„iÄçѤõä¢CÎ\ÃÀ*ã÷óEÀždÎÓ±ñ•àí¼"’sDMŒŽÒ¬ª“³AÌN޹À`Ow{çÂ#G ð¨i8{Lb½àœP=Y> stream xÚ½YÍoäº ¿ï_1‡tÇ«ï¢-Ð×vW EÑæÖ׃wÆÉøaÆØžf·}IQ²ä‰w_öÒ‰EJ"¢HŠR~x|÷á£v;ÎjÏ<ß=>í¬ØY©j&Ôîñ¸ûW¥™yØkn+[[Éxe<'«ãJ+ŸH ½^+¡\â(&¹`I$“ÌXãYêfÒ;+´]úµ3Vqûðïǿ줯•á»=—5è 0çá¥A½9Dˆ…å@ËHß®×<2¢$dP±ßÒ¡Ù²>î,Hly‰ìdU"¡W8¦¹6‹IœLé´"å SNf{p¡=)g÷jEV«Ð’ܰ¬V++ÅJ­2JäpögµRkî³Zç¸f¥Z´Ê¬U€\ {µë•Vç4[–/¬÷FZ9~éUÜH7óÕb—QÜt*»¨5Œ¼Z¬×à&,«5BÈÅ«”3†Ë¥WIÅ”tÛj—Åpp[^)›$…Ò\ºB­Dõ:«å PeµÜI¶L×Òƾ²µæÿ¡öÃG¹Šd@!TmT änó8S×ï¨ç ñ„Üþï‰I&ãU$C_ؼ’±Ð&Óéwke+t)CChJ½NÂCܦ¾RÞÓ8\À8œ±êŸd]ø…c*qDZU< Ž j8ä,«ÖZÖ¢ƒ¶¿ý]uaðÌ%C!@” I%ƆåÖÐ7D, Þ$C½UÆ}®Þ'•[ŠXtv»röÀDg·”f”Ðp NÔñ4ÜFjQB¡vƒÁŒ9IšK›XcÛ’”‰i^ü¹¢ʆêÇ'êI§x}½BÞŽ§ÒfxHU[ÆÐ¶æÞ¥ƒ OnemÌßÊšªo_ˆEIÓBiQ¦`H){hõÀŠ«‡V ÇDæq¸EsCõÊ vjþیlj´&…a]§Îºa,츖iÇaœ¨Ý„¯(‰YX»\ëÀ¨ç9qêg8Ô‰Ä ÕE0{)›R»éqö û¸M0K8H´_Iþù6EÑwåpB…ߢ[;¨Ôxj©'¾¹ƒû4¸ ×t¦â Ãù¸•¯Œ€ÚyÑt™žÄ–a ÕiTðï•pt“-á.‹så”y'Üá+ CËJV}|p²¢Üòã9:Ñ© ¨kÖ¿§C—êÅ5°ÕiôrÚF‡ð j þÅ^©äëZ“VfKÌÜÕ^©l6<ææÍÅÙÚY™àZW?·‡9€…ËûFQ}ŽMm¢»h8Ýá´?ÄÁØJ\[!JÌbô¯¹53˺¹½X(6¤J÷Bñ/‹êOToaÔµ²oô SúWÕ}^~0?—–‚r*—°Ã^¸)ù»ƒŒ9ašïŸ‘¤ Âx­s5Ü<ßp P²f˸—î|&EXÃ¥ª;Pí$LÆ@÷º»X¼» 3aàêÊ‚ S½‰SsÝÆ–ußø%:´äp‰µb:}uÕá5\¿×«T_[e±ya)Pé•K ×0dR=É_-ºr‹“óbÂèõbê­¹7ªæv³rD÷üÕ…ó„q­YtŠT?%bÍÚ#caB€©å¯KàxV-ÏY @Jø~â1V<”°åg5µ¿&ŽY8«1åÌ­mYš°ø¦i^yï¹Éï$K k-WßD!œeN­Qέ·~ …ÌÒœÀ» ä3‘Q8|$[¡àLk£<û~Žã6Q䑜y £¹Ê/†€BÂð %\D*jÁœô²Ý3[ 0œIÇå ã4äéÍ´Œ’îÏ/yÞ[+¤¾G¡ÀD…¬í„5k\6oø…wÌrm7î=&ƒÀW<ŸŸ}½7Ú)¹¡d,=†ó@ LÂInx~Ù ¸à\KÎ Uã÷b &ºúAŃ–žÅAHxüW±D‹L‡ç€ø¾!3 ¿#ÆR¬âÌíYÀÎ’ùí8÷„ñN/Ï¢`M(oĽco3kŠ0±Þ8|ÂOÿÂP\Hãa–~3Œ"™ óByû0h&E…©f©_„¡ï1¡`>½y‹Ú;Ñ %aùÖ.j$¦3žQhR¥3PhH3šÓmb cŽ7f_;¨Ô [Èèïþüøî„f8Âendstream endobj 891 0 obj << /Filter /FlateDecode /Length 2367 >> stream xÚ½YKoÜF¾ûW:‰é÷ãY`}È!º,6{ fZ“ÑÌ`HYñ¿ß¯ºšlR¦,{9Ã~ÖWU_=ÚúÇí»ïßÛp!EE”·÷^]xm¡ÌÅíîâ?{uc¥ßˆFáÍ•Üï£áI×h¢ éFxšq¼Íií‚ãÁˆBã¤äÕ8e‚¡Så‰EHtRóUÿ½ýùB\ÜHÝX†›Áˆ´?J‹Ù­Œò8ëf0|Š £¤ÂÉ¢‘m„W˜{Ã{a£˜`l‹a‰e|NgœQÂùÍÓé”ÎÐLK!x 0p²¬èùŠÉWÞ¬Ý)gú  ü;ê'fC‘­%–se"}Ç3nš¡-3{Z§æÇÈ«J™Ñ«ëâ´·>°5]ØüÒþRÅ(Î[s›þf9ž ¼å䘙™Yê¢ToÉ¢ÐJ7RÛ Õ’AÊ ëôª¼yT’'±¢R-:ãíKyBé²Å4*HíRžÖÞ9˜ø úû€±^Wy!‚qKyQGoì¨Øà\Ê3ÊY¯&z(ZyMÓ¼Jÿ¡{LW7ÒZ±9õC;$¹©ÅH/Fp“‘Úlz:S¾ÔëAa…ñ+KDÙ)N`Ë`õ4$ í˜0Í€>R93ª+×^Už(cBÓ²Pd-åV-Ô”ï¬'qrµRAGe0„ jJ;ÒK¥«0bÐZÌ`8d;ÁР]f†ž`8JdÞÙ ÃFé0”W!è ú:5Áðd¿9 Mä †l·’9¬˜’¿ÄDLEÜìÍ…€* d§f(”`¥A­_¬[tÅ©µU_ðBA¥ÅMHa½At“»oÓÌ*±µ5þs“'¬ú ¶¢Q”µR‹äÄò&ïíj;c}Äž®Ñ£"ŠW\\äL R¿A›o¼éû÷zñv¢&ŠZ­òtº}@Ÿ¤uÜœS»Kgþ~l¯”ß|âÁöJ…ÍCÚÒÔŸ<5<´Ãø•XÈò&­h‚3–…ŒmÖ ƒ¶ì*ÛÃní:%‘ìò6óöm§óñ®½ëöÝÐ¥žñïñkpweæžùã§vŸ7?ÚCŸÌ}eÒÏ ò§Ýe;ÉXÑnú§Gú07yb8òø5Û(…|­¿Î6hŸ>×ftdd}Hfv#&ΩÚ<ùÙâéœ>vǧž§·í~_Y¼S «kPK.ägg ª•Ôà[¯K»lB£^Z\ {«‰Dò5C9 ;-Í$_1ÞoS5dy›zû¶Ï(¤6í91ì§CŽ ðåCÚñSï¨Ye´‰|ÉûîÃRô¨¥³ÛãÎ-‚µÃócsèy¡åm§ý±N\#ùÆW}†UËH×à…9njÐzµyô&“7;¡+‚Ÿ ϨYŸÆå´Æ )$´«&°+âñX3Õƒix@d ™ìXÊ=@°j~A%×ã«®,Œæ]á…FæZ' QMÆñÔñÉÐnþHÛ¡oÖ4í}ãpÅÒSžýÈ)”ôùÎi€¸kž;žwüñÿlieÚ²®Ë¯¹®ÿOƒ-² ÷ÏËãªÞü×¾½[¬]bíß©=÷<ì»Ã6ñ'‡Šó¾= —×k…â»+JZfó©Üê¦[=§]·:0/Ï/¨}YÀlÓ_‹S¢ñvT!}€ètX±ÃåOûîcâƒÝÎé±ë{H»æùÑçým ÜN¸ƒ§¿æª|+õ[Ú·§¾ì'RÓì.µÃ¶÷C:ÏN­[Œ%ç» bŸF—¿¸Îmž;pøi˜4!Ó¿× íŒ[\h­Fþøðôˆƒ@Öøï%"{$ò=Óÿq5¼ðÆåw š>v‡œ¦ æþ||ä¯ç‡Žk8sê£O oJ=ã€ÈÕ1?hßËÔ—¡r‰Ã™»Ïe’Âf˜2!Å— gã(X¤ú  ~¢ª[´L)‰~Ycüˆ™&)¢Œ·E+OZÕ3Óm¹eLhå; 2ä”[Î÷G^ªÅgá<·tz_åì¬YváÞ iTçøØ‘}xò!S±ºú&H³d%ÛJHøõ¾¥Š¾‚ÑQ ˜²ððéDÓ*DÓ1õEÔÐÕ¯dw­à1õfrx,ÚÕän„`ÏáÙõï!"þ9>Ö6pžãYŸ®ü¶üs Ödâÿ™™°»dd§ý-SAÆ\ˆò‰Y¤ÌìCm „gìÒC»îw¡5ܘӳÒ&Gåþ,3.ye Q&$I#’v´ÛÄ„ä™=·j4<'4k}ÙQærG×}Ö Ò*yuDÑÝáÏwCË?9”¨‘I–×ÞÈI/Ræ1;l·ÚrD ÷â¢þÄX¶d*“³ˆp¥¹¦æ}Þ¿XË0Ë^ô‹D†á´÷e¦Âg*œeÐË…€ìHqèËÉXPœŒ\d¦kúƒˆ¢ÚÎM]Öiù7Úbl.÷ô+Ë/Zêcv?á@³5©a¸õ3šùM¾Þñ´æŸœR±\HăíUN:˜¸Cf/>výä|â-TçR¨Dñ×)çT¬ìÓÀ3ç´=’>æ€8Ê¥+¯pW^^  fŒec ô× “øR iÈÇé^XÚÞ¿à¥3Ÿ`<¹¯Ä3¢î‰µíËåÙkX¼$¾ì÷ˆÙ¢názlìÊ}Ç~åÑ<àÉÙãá»§7 ¯íYÀö¸?žYM¥è™ƒô«bB©Ö&¿ ÞýóöÝÿ³Å’àendstream endobj 892 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-pt2plot.pdf) /PTEX.InfoDict 270 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 272 0 R >> /ExtGState << >> /Font << /F2 271 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 19130 >> stream xœíË®tÉqçý5$ùhß/CK°  ‰ † -µ &šM¹›–^ßggÄ®“ñ­ÈÜ$lÃHà#ë¯SU;¯qYk|ýê5¾~ûúßüíçþüç¿û/ñúË_3| Ãðªÿû×ùןÿë¾¾þý›¿ÿ‡×ðú§oÆ×¯>ÿóÛoÆë¯¿úf=?†åµÏËòúÝkÞÎyvüáõú5þ£mû˜üÿ‡ùcÞßÿ¿cý‚eÿØÎ¯Ö/8§aúzaõ‚iÞ>æõýÇúÇð±}}Çêó´^_öý% ëÔ_ûý+T/ø‹oýWþÇŸ“_ùçüñ›?ÿÏÓç#ùöŸ_ãôáÿ‡ý—ñº~ìÃëó˯ÓëÛß½~1üòõío¿ùOß–wîÿÓqø„¹ú·ãŸðo—åcÞª;ý ÿö8>¶£ú·óÿo§yþÆêß.¿Ý÷y©þíúÇÿÛy?¶úûn¿ÝÖó¬þí~ÿÛlÌûôqné?ŽE§Ðøù“Ì_ÿ¿cý‚sþ˜Ö¯V/˜Öùcüzcõ‚yüüÕ·÷ ë؇~¿ úõïSý(ÿ¡ú­–ñcß^Ÿ¿Ò8ØþHGq÷_6÷쟧ƒ±ÿÏåãýŸ§cªûϧÏépÜÿ<Ý>ËÇîó÷ãøÓÿù¶|l>…¿~º0x¾Y†òR=7Þ*>ƾù—ÏwíÿÛËÓ¸çç˜;üûýý/þÛ/?áõ‹ï~óÓϯŸ¿ÿñ¿{ýá§ÏÿíóúÍ?ÿë¿ùñ¿ü‡×·¿ú#±|âq›>޵üóÓwÿôý?þáûßÿøúן~ÿßóß¿ÿáû?|ÿÝÏ÷Ïòùµ^õO3/ÓõÙ¦ó¼¦çOß½þëëÇúKoëøù—Žòß˸ٗîoŒãÇ:ü‘ãEã×cZ†6­s›ö½MÇÙ m¸ÖÖ&s›¦µMóÞ¦uhÓ6µi_Útlm:×êÓ¤ijÓ¼¶iÙÛ´žmÚÇ6s›ÎµEŸSfoÓ4´ižÚ´,mZ·6mG›Ž¡MçÔ¢ùkV%4îmšÎ6-c›ª'´­mÚ÷6g‹–¯ÃlBãÒ¦ikÓ|´©ž¤mjÓ¾´éØÛtž-ú<Œmšæ6Õ³‘TÏFÒz¶iÛt,m:·mÃѦz6’êÙHªg#iÝÚ´m:Æ6s‹öamS=Iõl$Õ³‘´.mÚ¶6íG›Î¡EG˜¤z6’êÙHªg#iÛ´ÍmÚ×6Õ³‘TÏÆHg˜¤z6’æ­MËѦmhS=ãHçÖ }¨gœÐ4¶é+¦¡´¬mZ÷6U3NèÛtÎ-ë'4mš‡6-S›ª'TÍ8¡ýhÓ9´hºâM×6M{›æ³MÕŒÚæ6ík›Ž£EóW”)¡qjÓ´´©šqBËѦmhÓ>µéXÛtî-ú<éœmªg#©ž¤z6’ö¡MÇÔ¢õ ‰4©žU¤zV‘–©Mõ¬"m{›ö³MçØ¢-Ì*R=«Hõ¬"­S›¶¥MU(´‡ÙAªg©ž¤êÖ*´œmÚÆ6ís›êÙA:÷aæ¥MËÖ¦õhS=;Hõì K‹Î0sHãÙ¦ylÓ2·©ž¤slÐ1Ô7L¡*Š#4mª"¬¤ VGÒë‡B % .KC©ƒ`(H0üt‚Õ%"Áðà žgCz?ÁyíázöðXÚÒî .KCJ;ÁmkãXÁê"xÆGpÞz¸OMœBÂ2Áêh(’^‚!Õ$5 †!XoOÄ’I°>œ(Ö‡ÅzkS¬7/bH¤$Xo^ÄÀH°>~C?Áú@ ÁõëmBq]›8‡pq‚õW †®à6 Å}ocú$Xo^Ä3,ªŠõ²©X/ŒÀ%„N\Ï6Žuh,Ásnc¸º .ñcÃ5Up ‡|Åêê˜`l ײëC¾bu5 °—µ‡õ\‡p$V¬—â&qR±>Ø×:xŸàq¶q«ƒí †)¸mÜÃd'ƃ«â9µñŒ_!b,¿ Ť Ö 1Šˆ¡Ì1Áz+W¬B™‚ñØCÜãWˆ‹£CéM‚U'Áulc(ˆŒ‡ÅzÒCÉE‚õæ¥XOI`Là Îuj;ÁzÃ%.u*:ÁzCšI0$TCz Ázc¸[0§CH8Áuìa}4U¬‚¿‚q‹‰8ÅpV‚Õ@ !)Á¢ a–«AHŒWiÁ¹¾Ô†¢sÁpK°Z ÃU+Áj †J0Ü&¸¯m E© K§PØ(Jø¬®K‚¡ˆ8‡âÁ^ÜëBb<^ †$X‚õU¬–Á°†äñóÈ´v0oã¤Æc@‚UxG04’ƬXˆ±¬9Áj³ åbÄXü$¸„‡B …‚!½/x†EÓˆ‚!I%R5 ÖÓ*â<†Ã˜`XdˆS(•&ΡàFp ¸„ä¶`Ha·D%Ʋ[`ÞuúÆ9„;¯íÿ8¾^Ýdÿ[Êe1~Rò4”bõ÷÷Tž®—½%åù J½cåå ³¾ŸPÆgõ|•K3Ò{td|î_cKy».8ï‘™ñ¾}kår}zÏŠŒËïås*ã}úš‘ÊÇÐÏ猧ãk5Èøs©~¯%Ó×J¤\pßëXÆÓöµ f¼Ü\Æ‹ò¶}­Àë×ú-<þylõÏxš¾öŽŒ—ákçÉxÝ¿ö­Œ÷j×Ëø¾öL屨Ü;nÆÓøµ_g<ÛëËnŸñ:¼Þg…Œ·õõ>id¼Ÿ¯÷9%ã³Ì;å(Oþ}쌔ñXÞÏNXÏåûÚù,c›¯vºËx­Î†Û÷µ“eÆ6ßí\šñ±;/GÊg™v&V.¥îuÆSy^£wåÙ¸œæ3^Fçò¼•×2ì&‘ñ>;¯gʇq¹Åd|Vw åÅç«Ý 2«ûWÆÓì¼í)ÏÆ>_•m¼ØÍ1cû=ìÞ™ñvó<¤¼_¿·ßy3>†×ûÆœòùzß·3.ãÉoëÊëUHú¾ëg_ï¸qÆ“ý½ÅÆ»²ýž³NywžÎ”Ë~4Þçår^ôh{ƶžX¬>åÝy™S>Ëß³<òáãݲ )ŸÎóžò¸;sÊSy^–ɸœ<»’r¯–›É¸œG=³“ñZÆ«å…2¶õȲJ)ïÎû™r9/zF+ãr÷|Xʧ³^r)ò\œòy]#¸3yÛzeyÀ”Ë÷Y|?S¶çe9ÈŒíyX3ãÕ¾ïjëAÂö}›Ê6_,÷šñn¯÷ýLùØœË~¤|Úëý< ž;ïzÎ9ã±üÞ–±Î¸œ÷<ßòæ|íç Ïö~%מñ28_û}Æö~%ÏŸ±Í«ÈØæƒÕ¤lïW*2¶ýÂê2¶çaÕŸ“ó2ç|:ÏcÂEà‡»®#cÛ/¬*$å2ž­¦$c;OYEJÆ6¬ž%ãòj˜Œíæ”íæñ,áÍÏ“ÖË’ñrózä|:_ñþ„×ûï]çñ„í¼g=<Ûzc@Ÿ÷ëËxIxsž–„w_O<ž—°Ýç­ó)c;YßTÆóî¼L)ûx´x`Â>^;/)ûï5Øy)áëûZ³Y‚å4emj –±b n‚å‚w·Æeèèºf*–YîI4Åé|Ý| – ž'ØW«ëú©XVGk;L°¬Ö°˜`‰Áóu·\'¸øºŽ{Šå4àÉâwÃaÊp+£´–gxn[†%Jhíì –‡§ô·º˜Šëf8îÞo5¬–ØŒ§ËÎ`R®†Ó èYW“'| aÁÑF+xHp3ÜÇ ÇÑð:L'¸^GiEfEú!ÁrÏ4ш ¯¯àIÅrF5¡ŠËRà Åm|Ýâî¯[V#Cñ|dXNF&å‘`ÙM$Árë1ù˙DŽG2<^·dI‚e¿7±“Ëno2)¯[`%ÁrôD˜âýVË’âþºå`¼ßjRô1ìne¨ñšKöÌdo,SÒs2Ü^·ÔŽ × ˜HO‚ej˜¼O‚ejxÊ8ZFÚ$…'‹÷™Q‚e;6£ˆë¥8Šóôº¥“´ÁPD—´Ÿ½È5%h?»…híg· âì?l—JÐ~Ø"K•`‰˜ U‚åælRX ÚSD´œý­Ö5ÃÕßêº2)–'t«2¼Ë–j2cކû˜áæ/^ Ë=ÇDÑ,u“SKðt‡ K†Û$Ü,÷{K°T˜lœàbwgœKpð?t]̈÷1‘;ÁŇÙhƒ_pò9ΖˆIò%XÛ&æ—àèxË]ÏSùŠ%’gÒƒú‹§#ÃÕ_\&Ž m|V‚§X6/“XÌp{Ý⌠žŽËœâúº!W;ؘ”d‚£ŒëZªX~v“¯L°<2¾ôŠ“ÌL° `ÛL°D‹M¦SpµX€—2*ŽŽÓ˜a‰óš¨h‚³ãu¥U, ” ™&¸ù‹·1ÃÃ_¼œ–cžÉ®fè/ž– ÇqJÑ?Fq–R,?N©ŽM°ä$M˜6Árá5IÛm¨1\Áûq]ÁÕ®x&À›  QK„).Žû™âòºå‚\×%Cûa­€Gquœ‡ 7Ç낯h_½'±üìË=Ë€¥îÀDœ,a/Jp4œç ËÒgç nþ‡†3ÃXØç{ZôZ«}¶i\íÒºÏI<·!ÃÍÿÐrdX‚?»¥ËalŸïi\ýCú´–ð_%X~ºÉ6/ÁrP7©ô wÃmÎpð¯£âb9qvOpóû”– ›—{)ÚãžlJ Ú22ZÈB°?Lú^°„f~pÑü gÃ2%wÃeÊpó?4–ƒœ™$¸ùWÖË;X@CЦ³%žíc„ ý­Ö=Ãû­–Uqñ~°é¬èo5г/2VìŸàõVf0‘áùº­)ý˜g¦‚³]Ì#Á²¨š‘F‚å¸e îþ1Æ1òP˜íG‚¥6Û C2<^·ÕH‚åøa&% Îþ‡Ö1ÃT4c”KÅœYª$8ùÇE¯v7— Ë‹w›°‚eÒ™uL‚e¨xˆb9È™]M‚÷‹—1òy©âì/÷ ËFo¶< –‹‰úzåŠY%X(3J°äÌ~(ÁÅÿP ºÑ+®Ìò(Ãñu›%%XG^L«XBÙ^J œ¼“l[ï8?°Ôi˜)” Wn^äÜmA6#ªï1¯–+ž—ï·÷[£¢o¸^ÚK\ìˆhV]‚æ#ê&_‚ÞUcö` Úd÷’ w4m^PñªWô1mЇ?noÖnï“¢_iÍzMp´c¼™¶‡Ó(^MܬÆÑ[¸ˆ~„0‹9Á{JZùtÄÒݸ~(ÁÍr¿fˆ'è2³Ò#^îÅðWÿ‚žOpx¿xݯCönøùUˆ×Ö2~NgÁÉŽâfSH\';"šÁ!qñc­5ÊçÝŽˆV†N¼Ò²›áçt-¸gFŽÄ«Ãg4üü¢ÄÏÁ`ƒ¿˜G ¾y•â"àéñ ó«Œôù¼lÍ,UG ?ý›?&h°S§ùjFú¼gžþ.WŸv$¿™»g¤ÅJ(Üÿ“T25îJ*7÷4û¸¸õ!zëõDÚÝòÖT¾r²¾ûœÌ£ RÙÞþ­‘Ê|­}_/‡Ý¿¸ìmLuÏè©[pJØd¼ò¹§yêþǾÿ·_¾>¯_|÷úþÇ×OßýîûŸþþ÷?þÙëoþîm¦{UO¯+uyý÷|ØŸú£Ühïo¿iüz¿WïwŽO¤zZ½ç*# ŽŽ8r⨊#.ŽÆ8Rã(Ž#<Žþ83⬉3*ζ8ëYg0gwœùX°h`IÁ‚ƒå‹–2,tX±Hb Å–_,βtcaDzM[6l7ØŒ°Ua#Ã6‡M[$6а½bó•­7¶ulú8àÀ€ã8Šà ‚c 98ဎO8\ÉÑ 3Ûp¨Ã‘Bq˜ÄQQSqˆÅ`qxGk¼åXŽC;Žô8ðã:€Ë®¸hà‚K ®0¸ààúƒËQ¸:áb%×.\ÊpeÃ…×=\qUÄE×L\BqEÅ×[\~ÃÕg¹VãÒ+9.ì¸Îã²P# È€_ ¸BŒHØA„\A¸Á„zB˜A$„˜€Bx Á+„¶ø a1Í$¤†€ÂqÖ!”‡@€"„ˆ#ÂNÖ¡K65쉠(B¦¨"ÜŠ`,Bµä"Ì‹ 0BÄ #¼ŒàsM#p-am½GÀátÛŠG a|ù‘@‚é$Bê‰ I[ ©”"H— ™‚T 1HÓ ‰ƒ@H!yRKHC9(ŠE¥”…¦(CE‘*JXQàŠòWÇ¢t…µ¡ìE¹R²‹‚^”û¢¥Â($F™1ŠQ¢Œf”7£ø9”F£pZʪQt’ll£œÅÞ¡…âRFŽ"s” £@åë(nGé; ãQ6¢z”Ü£ ?”룘_JýÑ€64 Å hO@óZÐø€¶4M„– 4\H;š5ÐÊF´ I-$h0Aû šSк‚Æ–Ðö‚¦i™AC ÚmÐŒƒV4ò ÍM@¡E DÒ^„æ#´&¡q mMhzBK¦ÐN…f+´b¡Q«nãB“—¶€¡A ích.CëÓ憦6´¼¡!írh¦ ­vhÄ“6=4ñ¡Å €hDó`h-Dã¡´%¢i-hxD;$š%ÑJ‰FK´a¢I-œhð íŸh•ÖQ4–¢íM©hYEC+Ú]Ñ ‹VY4Ò¢ÍM¸¡E ¼ÒÞ‹æ_´£qmÅh:FK2–C;3š¥Òh£F“5Z°Ñ Ú·ÑÜ-­ßh GÛ8šÊÑrކôЮŽfviuG#<ÚäÑD{4à£=ÍûhíGã€h€H @pr+€”„‚ DDB _€8¤ ìÙˆBÔ’T”È'¨HAÅ *ZPñ‚ŠTÌ ¢FTÜ ";¨è¡ŠT¡bE¨8BE*–PÑ$*žPES¨¨BÅ*²P±…Š.T|¡" c¨(g¨H£Š5T´¡â q¨˜CE¨¸CEUì¡¢¨ƒ¨(¤ŠCT$¢b¨xDE¤¨˜DE%U\¢"›¨èDÅ'*BEÅ(*J©â©¨XEE«¨xEE,UÌ¢¢VPÜ¢"W¢ØEE/*~QŒŠaT£âÉ¢bÍTñŒŠhTL£¢רÈۨ覊oT„‹ŠqT”£âéT±ŽŠvT¼£"ó¨¨GÅ=*òEÅ>*ú©â©HEA*R‘0*RÑP©ˆ©¨¨Š‹TdŒŠTtTÅG*BFÅH*Jªâ$)©XIEË xIEÌD1“ŠšQq“ŠœT줢'?©ªŠ¡T¥â(I£b)MUñ”ЍTL¥¢*W©ÈJÅV*ºFÅW*ªb,e£â,iU±–жQñ–Џª˜KEݨ¸KE^U쥢/©ƒg( ñ[q˜ŠÄQ±˜ŠÆT<¦"²*&SQ9*.S‘Y›©èŸ©­ŠÑT”¦â4©ƒb5­Åk*bGÅl*j«â6¹£b7½©øMEp*†SQœŠãT$WÅr*šSñœŠèQ1Šêª¸NEv*¶SÑ=*¾S^ã©(OÅy*ÒÅz*Ú'Š÷TÄŠùTÔ§â>ùU±ŸŠþQñŸŽê@Gè8@Gu, £èˆè¨@Ç:2¨c¢ã!àAG qœ #…:VÐÑ":^ЃŽtÔPÇ :rбƒŽÑñƒŽ t ¡£GèH"Ž%t4QÇ:¢Ð1…Ž*Ñq…Ž,tl¡£‹:¾Ð&:ÆÐQFgèHCÇ:ÚÇ:âˆcuÔq‡Ž<ѱ‡Ž>êøCG èDG!:Ñ‘ˆŽEt4RÇ#:"Ç$:*‰ã™èØDG'u|¢#£è(EÇ):REÇ*:ZEÇ+:beŽYtÔŠŽ[tä¢c½èøEG0u ££Xp£#™8–ÑÑŒŽgtD£cÕÔqŽlѱŽnêøFG¸èGG9:ÎÑ‘Nëèhï舧ŽytÔ Ž{täÇ>:ú©ã£c á88Ñð‹Ý±Ž†t<¤#"é¨(Ž‹tdTÇF::Òñ‘ŽÑ1’Ž’tœ¤#%+éh)Ž—tĤc&5á¸IGÎı“ŽžÑñ“Ž t ¥£¨:ŽÒ‘48–ÒÑ4q<¥#jtL¥£*WéÈ*Ž­tt¥ã+aéKGY:ÎÒ‘޵t´Ç[:âÒ1—Žºê¸KGÞÚ±—޾êøKG`8ÓQ˜ŽÃ3‰¿Ø‹éh Çc:"‹c2•á¸LGf:6ÓÑŽÏOÑâ(m|Míz}“ýïµÙ?“ýû¶Ù~¯&ûïÝf{^MöçÝd/m^ãßßãµÇóÖc›/m¶ùÖdŸ¯m¶ùÞf[/ÚlëM›m½j²¯wmÂxʸ/¾^÷øZïÛlûE›m¿éñ1wØ÷»6Û~ÙfÛo›ìûu›§ø¼„í¼Ðã0^ž†Ûy§É~^j³·Úlçµ&ûy¯Ísœ Sí¼Úd?ïöx9zlçí×ë•2Æ»°Ýzž·°ÝWzž·ð×+a»oµÙîkMöû^·½Ç˜¯ÂSÂvßíñ<´ù¾o·Ùîë=Þæ>¯cŸëñ¤×帞{¼¤ÇûÒã=ŒWe‹÷´ÙâE=–[¼ªÇãÙc‹—5Ùãm=®÷ƒŒ—©Ç/ìñ²öØâ•mžâxJxÚû<®=Žçaì÷Ê[8O([¼¹Çõz—q}^T^âxžÃ~—ñtö8žG„=_ÐfË7ôx™{¼Çù&lù’Ï{ŸÇ¹Ç+¾ò¸õØòM=ÎOø¼ä!Îç„÷³Ãž¯ëq˜¯ g-ߨãiésX„±Ÿ%¼.}ë™ð×á%ÎGaË7·ûYÂa?ŽçáŒãçÏØ/^‡>‡ý\øˆëMÂa¿¶z‡¯s§¸^á¾”q˜od¯éqXÏû½°Õ»ôxÙz¼Çï“p}ÞT¶zŸsqÞHxÛûγ ×ñŽŒ‡­Ç8¯$Ö»„ç¹Çñ>¨<Åó´°Õ»õ8~°×Ûõ8|ž„DZÇGü¼ ×ñ<åoÉxX{ó˜ðîÓ‡õ4áyísü½È8¯%î+ ‡õ8áø{+‡õZØê}Û<á÷Vž§ÇxXÆñ÷V^ö>OS­^»Çñ÷Vž>OkŸ‡±Ã^ïÞã°ß !žñ2÷9ìGÂ{|^ ‡ûBÂa¿J8¯„—³Ïa?O8>òò[½÷›ôx:züŽ75ÙÏóMöý´Éþ¼<ßûa“=žÕd?¯4y=ú{·— z…[S´±LIÁÕÿP™’M,SRÐdñÍŠC±ôŽºG¯€q°¾·iãe=ÒÆ2›X¦s§1ÃÍI®@Š¢Y%™MK¯@JË„,Ÿ[Ëç3ZJ7±HU6±ØáÞF;Eòx›·¹ O‹¼¦ YC¹ýO‹¬g‹<® ™0¹e‘ ™]¹ÝÐÅ o«$Ár ¸m–í§s‹¦&ùTÁÛ’j]2ܪȶ77%rK*ÁÙ±ÈÅ6±HÍ nîUdj«Û1º—àT[J·Yrë¯&©hàü6÷*2Ó‚f…åve‚‹£[%Ëuø¶Iº’“[¬Ç·ÅšËô.R·vN~¹¸mágÇ" &88ùàa ÔmeÜýë»´pó/èz@×¼í÷€³·në>àdš’·íСnË@ ë-¹Ý ðVÛ¹­ »õÒÞ6‡À5ZJ'_rÝ^8˜JÔ-Bqp ÛÖè ”·%$ð6`s;Iàà6iV<ñjÉ0óÅ·e@OEݘÀ!Øg•Ö›0æ4«³·mg×|6tËÏmãùám œìêñe5Zã:¹)àÛ¦´ÆÏ#±=2·88ïn®ù¶G­qr¡/kÕ€ÅÊõ‡Ê–µÆñ¶vû²t­pØÞxÛÁÖ8˜±Ae%û…§;­|yÐ~Ñqú\~{×Vt?­·çmEƒ¯Óo¯Ü/úÿÓÿ獵³<¦"»¶\Ó¿ø»ï~øÍ¿þüÝë÷?½þé»ßüá_^¿ùç?|÷Óå.ýúö·f.}|>üË‘úøüïqüÿæÒÿwÍ¥×l2ʼn'a=AãäåÄŽ“+Ö ¬&Xk°aÂ*†5+ ÖG¬žX[ÃÊ‹uYVm¬éXñ±`·À^‚ûv)ìaØá°ÿawÄÞvV컲+cÏÆŽŽý§œp’À9§œQp‚Áù§œÂÉ ç*9uáL†Îs8íá,ˆ“"Α8eâ Š*ί8Ýâì‹“1ÎÍáT3·œÈq^Çig}ÜpOÀ-w Ü@p?ÁíwÜ|p/ ·&ܩ䯅ûnk¸Ëᦇ{ n‰ý+%â-î½áVŒ;³Ü¨û×oÜÕq“Ç=QÄA@|ч~¨qõ@LD"&ˆ§ Ú‚X "5ˆã ÊÓ õÃIˆ=!2Õc!æ"bˆ—I4­zë‡íãCñADû¡ÆN˜1Mx"Šhi?´ÚËöCºýp0bLj,÷ÂЈYKDñnDÃû¡sÄÙ…ï‡ìßGô¹dWYä$$c|²È… S‚< ²,ÈÁ Cƒü ²;Èý 3„¼QÈ*!ç$©~ú ¹.dÂ'C­ŸrC~Ù»~ªyAd {)Æ~zò)µ‰<(²¤È¡"Êü+²³È݆Ì.ò¾’î§ûéç~êyndÁû)säב}ï¥êûiþ§Ô Úµ¨T@ªP*$P?!ÕýRŒ~j>P‚zT“ôKOúe+ý’—^¹L¿Ôæ©L§_âÓ/B-*P‡„*¥^I꟤:ª_JÕ/ÃBÍ*ºúå_Ò±~ÙÙcÉZ¿Ü­_*×/³ë—èõÊûP (•‚¨#D•a¿$±_ΈÚGTF¢nU•ýÌ~ùf¯ôu¢REÚ/9í—«öK]ûe²¨© ·ýòܧÒ^Ô£J¸_RÜ/GFí2*›{eÐýê§òë~év¯ì»_2þTnÞ/Uï—¹÷Käûåõ½Ò|ÔñK•¿% ßNÐoEè·1ô[ zíýÖ‹§¶~ËG¿]½%è<é·©ôZ\úí1ÒKƒN›~[zxÐáÓkBïtõÛг„ަ~ûS¿uªßvÕiÙê·{=¶ŠõÛÌú-jýö¶~k\¯­=xÒ¡×oçë·öÚû-ˆOí‹èuD'd¿m=–èÀì·köZ=ûm¢O-¦ýöÔ~kk¿-¶ßRÛkÇí·ò>µ÷[ˆÑoŒnä^ër¿íù©eºßnÝkÕî·y?µˆ÷ÛË{­éý¶ö§–ø~;}¿¿ßÆß“èˉc>Šk>‰s>‰{>‰ƒ>‹‹öÅIŸÄMŸÅQŸÄUŸÄYûâ®Oâ°Oâ²Oâ´Oâ¶Oâ¸OâºOâ¼Ïâ¾]qà'qáGqâ'qã'qä'qå'qæ'qç'qègqé®8õ“¸õ£8ö“¸ö“8÷“¸÷“8ø“¸ø“8ù³¸y_ýI\ýYœ½/îþ$ÿ,.ß§·Ç×ç÷2x2x2'x67è›#<™+<™3<™;<˜C<™K<šSÌæOæOæÏæ}s'ss‘'s’Gs“gs”¾¹Ê“9Ë“¹Ë“9Ì“¹Ì³9M×ÜæÉçÑ\çÉœçÉÜçÉèÉ\èÉœèÉÜèÁéÉ\éÑœéÉÜi~4‡z2—ê›SõÍ­žÌ±žÍµžÌ¹žÌ½žÌÁÌÅžÌÉÍÍžÌÑžÌÕžÌÙžÌÝžÌážÌåžÌéžÌížÌñÌõžÌùÍýžÌÌŸÌ Í ÌŸÌÍŸÍûæOæ’æ”Oæ–æ˜æšOæœæžóƒ9蓹èƒ9铹é£9ꃹê“9룹ë“9쓹ìƒ9퓹í£9nßœ÷ÉÜ÷ÑøÉ\øÉœøÉÜøÉùÉ\ùÉœùÁÜùÉZ̤çq²v}“ýï _fàç×çU^­pο¯²7ûï¥<[QˆÿÞ—" ^Ê“µ˜øóθŒúxQ­ÙÖÇ[Æ¥ôÞÇkÆãô5Þ•K#ô{¾d\ZF|¾e\Z}¾f<._ó<§µÜëEÂûX­7 —|Û½^%\Ú¯ïõ.áò¼îõRø°†Ö{½M¸¿ßëuÂa½O¸4‘ÝûEÂö<}¿I¸4GÝûUÂãPíw»ÄÝûeÂö}|¿MØž‡ï× ¯gµß'¼Ôç…„KËÃ}ÞHؾ¯ŸW¶ñæç„KkÒ}^Þ¬¹ð>o%|Ûy-á½¼ŸŸ÷ÞŒí¼˜°?o&\ZªïójÂE$à>ï&<íÎË‘òXŸ·Nçi˹Œ7?ï ¯>ßý¾piW½ï ïö}ì¾’ðZßw^ìóÚ})ãò<ý¾•ðlŸÇîk Ûxôû^Âãî|ݶßÓï›—Ïã÷UáÅ/ïûn¶Þû}9áýú½îûvÆãë뾞p)^½ïû —ýðŽ$\žÇoÈxz}Å+.ãýŽw$\Æû/Éxx}Å[.EÁw¼&áÁÞÏâ=ÛûY¼Hx¾>æW¼)áò¼îxUÂåÏt^aû<–/KØÖcÏ·e\>çë.ç‘;ß—p9ÏÞùÂŒËxö|cÂ6Ÿ=_™ñè\ÖårÞ¿ó¥Îë’ðàÏÛóµ öy,ß›±}Ë'\š¶ï|s¶ŸÞçee[=ßðbŸ×Ïà OÎþyÈå¾wçë3×!åisž¶œËïíõ Ûzìõ —óÒ]ïñâ¼ÎÊ×1 ü^o‘q^¯‘°=o¯÷HØž§×‹d<:/sÊÛýúk¿Ï¸ü^^ï’p‰wÜõ2Ûë÷ûûm>{½N¶ž{½O¶ž{½PÆå÷ôz£„ÇÃyÛsžœç!e;y½TÆ÷ë‡-áÚIïz­ŒGçk½Kø¸_Õ‹%¼Ûó°û`Æö<¬^-áÍ^oõnÎþyÈE¢ì®·KØÎã^¯—ñýúqLÙÖ{¯Ìxv¾â‘ ÛxñzÅŒgçaMÙÆ‹ß'3ž‡#e/^¯™ñä|­§Âo¹ëE3¾__~/e[O¼^5ãÑùº¯$lë×Ë&¼Ý\~oåõæk½Î¸Œ'¯÷M¸ÖÜõÂÎW½qÂvŸózåŒgÿ½ÉÓýúeÏù~ý4¥lû×k'lû×{g|¿ÞÏÈ›ÅïzóŒï×_õê Û}ÁëÝ3^œË~§l÷E¯·Ïxq^攋ôÀ]ïŸp‰ÇÜýÏÎÇœòr¿¾ìW ߯/ÏKÙÖ ï—Èxv¾ú-o.û¹òp³?È«Ÿ'¼_$á£î7Ix¯ûUÞê~—„m¿÷~™„—›Ë~špݯ“ð\÷û$<ÕýB «s9¯—û÷°~¥„÷ûõW¼?ãº_*aÛ/½ß*áЯ•ðR÷{%<ßï7-9×ýf Û}ÖûÕ2.ë½÷»%<ܼL Ï~žñx`ÂÇÍå¼”ðý~弤\öoT,·Qo5T\ËQI°´Ü{‹c‚þâëš©Xn1žV,1oËT, O0'8¿Þí ÄÉnÞJªX$ç¼ Uqw,'ÅåõnUÜÎ×»uVqu×Ë[YË®b9z»o‚þâñHqx½ÛŒËNí-Ê ¯w{³båÞMíŒîmÕŠ&`-ÙŠ%¾æíÜŠöÓY+x‚ËëÝF®XV^oAO°|A »+ÎŽe¨ÚOg!ùÇ×»å^qØ ËqOÑ_<.Šƒu]& Á2­Lb@±œs]ž@qw\— Ëè)ÅÕe®¦â-|Pޝ‚åôàRŠålè©ÅÁñ÷ÓÎ}.?‘à`x]JKLße/7Çk+–ó˜Ëm$¸^‡iE›ì&ó‘ ¿øºè(ÎŽ×ðNðú‚ž¤Q,ØeMôïK†£ãU~ X†·K±;»ŒK‚þV×ðV,çV—Qœ¯ •bɹl q·Œ‚KÞ(î.js ~Ų¸ÔN‚Ëë-Ó£¸ú‹¯@£âì">×5/Áùõ–R,ÓÊe‰ô_’FŠ&âcrHD¿]¹”R‚Ëë-ÔàðzK8)ÖòOŠ%ªçÒQŠ[%;¥h_ß$«GÇ«Aqp,ƒ¸ú×·Rœ—×[¢KѾ É{)–*"—S4±$ Ñ&8nk†öõMÎLqt¼’+ º|Û9eXd—`#z^ÜåÛô·º‚ºŠ«¿ÕueRœý­® s‚•\b‘u©;¢ç’]&OѾ‚Iì)nþV×5;ÁŰ `Á²¥º, ¢}A“LÐ¥ -Cû‚|'N.üg2ˆŠ»¿øº˜)®þ1®k½ââX¿àì¢ãœáà/FÅÑ6.7©¸;^ÁÅ’ëóT¾âZId*–ÍÚå5¬¤9ËÖKðK†Ç%AtÓëzªhBÒ–ü .ék©Å­’@U\¯k©â\I¯*–  Ë¶*–C‚K¾·Óâq.«¸» ì5­^o™ZÅÍ?äumQ4y+CSœ¯+­¢‰A[ H±D8]Ò—xØñÃå€ïqM+ÅÛpbÅÁ_|Fœ^oùcânÇ¥“í§³”•¢I®›d³bí&MÜÞèºJ+–EÆe¦ݾ&ŽâTÉ[W‹Ò¸4¶âîx]—kInÅÅ_|…‡gÇ낯hBð–Z#.VÙâäŠ[%_®h_ß’nD7¯rÙtEe¶‚wÅÅEÕ¯À‘âì"òeZ ÚÔ0™xâd˵KÌ+®ŽWè@Ñ– “¶'zŠËâ+®þâ2­ÿ eZý’îÅWŠ[e 8WŠƒã”®~¼›Z‡»Üö@±dî†YÁ²ßí¶Àý|?ÜV Š·5EiUn¾ôy£™  ~³— ®Áš"A7Ÿ(-Ž‚¥Þ-1ï?TÚgqi>.oë‘Òú%xÛ–áÁÁ_|Ù‡g— 7ëÅÃ_ì-cÀÐpËÅÕñ–K‹8VnÒÄÉcnÓ¢¸W/Šfàdö0ÄѪÄÝZF±,_nK£8:–! OI·ÃQ,K½[é(Žnÿs쎥13â%mïÆBÅ>Dð6*Ö#‚e:»íâý1®#ñp33³;R4A³J"înff6KŠ%SêMŠ›¿¸ØÃ=8àÖPŠ»ã„Qý­®€$ñ¶Á3;+ÅÕ±Xé–€¤ÛhýZê\Šƒc±ÿÎï_ÁÅÅñ þ§·!ÙüQ4«3³+#޶-z1­bí& œO»ðÞkÀÃ6ÍÛžMppÓ¸bíÜ­Æßmማ4ÜRޏºÙ••ï*–•[Ù»zxi/Ñ;ÓÜB8ºš•§ÓÒ ·uðp{6·ýîn9æ–@¯7¸íëÛðšÎÄÛÊÎl‰^©é‰ÀÑûŒn{EàêÖ›VMœü+X qðd–ÀÁM\n;I wwÜV”ÀÑ'{±±ŽWgXfn \lÓ¼í3ƒ…ÁÝzxø1à¶íŒ¸ßF¤nù œ|Ù4»PàæÝL·ÕhÄÏCQ9PÝ6¥O(ܧÀÁ‡·Ù£çÑ­FÍZ8ùÑå¶e8nv™º-]#~>P{Ün œÞX¬džwÚH£»®–Qé.sÏÛH“\óÊ tç Üc7’ǯݛ7ÒíÆhž¾¤Ù_yyGZ|½=„#mþ.—÷0©Ü¹Ü³˜TNlîui¶ˆõÛ#9R9'¼½•#•½üË“9ÐÿYséÃÒaW¼oÍÍ¥ÿýû?üËïÿ炽ôçÈù|“õ¸ì¥?O邽ô™}ÍøÄŸ'þtñg?y|Õ£ŠQq|üqhÄa‡Tnq(Æa‡pÞqèÇi§LœNqªÅiXOÑ8}9µã´Çš€ë V¬EX©°Ža•Èë'V×°öbe–u«:Ö|ìØ/°›`¯ÁN„} »ö8ì€Ø±{†½;¯ìËØµ±§cÇÇy§œ%pÒÀ9§œapÂÁù§£pvÂÉJÎ]8•á̆Î{8 ⬈“$Ι8…⌊,η8ýâlŒ“s8WãÔ-grœØqžÇiwÜpÀ-wÜPpÁíw܌½ ·*¹sáF†ûns¸ëá&ˆ{"n‘¸câŠû)n¯¸ÛâæîŸ5Ë7nÜÇq[Ç]7}Ä%@ Ä@ì‘÷@TDb&ˆ¨ Þ‚h b5ˆä ΃(bDˆ !¾„èbSˆ\!®…¨Wˆ‰!b&ñ4DÛ‹C¤q@o:Ð×€®ôD c"ôS ÛBz1Щ>ty "èAw zOЙ‚¾tµ„žtÄH¿ ºiÐkƒNôé ‹=>è ýAè’Þ"t¡/ ]KèiBÇú¡Ð-…^*tZ¡ ]Zu:¼´ÿ ÝaèCgúÎЕ†ž5t´¡ß Ýpè•C']è³Cžô衃ý}èþCo :C_!º¥'‹ègD·#z!Ñ)‰>JtY¢šèßDwgèýDg¨ô¢«=§èHE¿*ºYÑëŠNXôÉ¢‹=¶èÀ ý¹èÞ•Þ^tþ¢/]Ãè)FÇ1ú‘Ñ­z™Ñé,}Ðè’F5:¬ÑîìлÎnéûFW8zÆÑQŽ~st£‡^ut²KŸ;ºàÑ#zô×£û½ùèÜG_?ºþƒ&DOjÐ"€Rt  r4  ú PW€ö” ÛUh>@¢Ö‹ œD&7A9 ÊUP΂r”à\å4¢Üå8(×A9•û åB('B¹Ê‘P®„r&Qî„r(*—B9Ê­PŽ…r-”s¡Ü å`(C9™(7C9•«¡œ ån(‡C¹ÊéD¹Êñ¨\å|(÷C9 (D9!•¢åŠ(gD¹#Ê!E¹$Ê)©Üå˜(×D9'Ê=Q*ÊEQNJå¦(GE¹*ÊYE¹+Êa©\å´‚Ü帹.ÊyQî‹r`” £œåÆ(GåÊ(g¦rg”C£\åÔ(·F9¶(×F97•{£\”‹£œåæ(G§ru”³£Üåð(—G9=ÊíQŽ/ÊõQÎOåþ(H¹@Ê Rnr„Q®r†*wH9Ä(—H9E•[¤c”k¤œ£Ê=R2ÊERNRå&)GI¹JÊY¹KÊa&r™”ÓŒr›”ã¤\'å<)÷I9P• ¥œ(åF)GåJ)gªr§”C¥\*åT)·J9VʵRÎ5ʽRVåb)'åf)G«rµ”³r·”ÃU¹\ÊéF¹]Êñª\/å|)÷K9à L9áDn˜rÄQ®˜rÆ”;¦²Ê%SN9Ê-SŽYåš)çåž)­rÑ”“¦Ü4娃\5嬹kÊaG¹lÊi«Ü6帣\7å¼)÷M9pÊ…SNœrã”#W¹rÊ™SîœrèQ.rê*·N9vʵSÎ=ʽS^åâ)'O¹yÊѹzÊÙ'r÷”Ãrù”Ó§Ü>åøU®ŸrþQîŸvj@;h7@;µ+ íh‡íh§@»Ú1¨]í¢Ýí `A; ±› …ÚUÐÎ"Ú]Ѓv´ÓP» ÚqЮƒvÑîƒv ´ ¡ìFhG"v%´3Q»Ú¡Ð.…v*Ñn…v,´k¡‹Ú½Ð&ÚÅÐNFífhGC»ÚÙ»Úáˆ]ítÔn‡v<Ñ®‡v>j÷C; hD;!Ú ÑŽˆvE´3R»#Ú!»$Ú)‰Ýí˜h×D;'µ{¢í¢h'E»)ÚQE»*ÚYE»+ÚaevY´ÓŠv[´ã¢]í¼h÷E;0µ £X°£™Ø•ÑÎŒvg´C£]íÔÔnvlÑ®vnj÷F;¸hG;9ÚÍÑŽNíêhgíîh‡§vy´Ó v{´ã»>Úù©Ýí£] ía7H;B±+¤!íi‡»DÚ)ŠÝ"íÕ®‘vŽ´{¤d´‹¤$í&iG »JÚYŠÝ%í0i—I;MØmÒŽ3±ë¤g´û¤(íBi'ªv£´# v¥´3MìNi‡íRi§ »UÚ±Š]+í\i÷J;XÚÅÒN–v³´£…]-ílÅî–v¸´Ë¥®ÚíÒŽ·¶ë¥¯ÚýÒvÁ´¦Ý0íˆÅ®˜vư;¦²Ø%ÓNvË´c¦]3íœa÷üd-vÒÎwñáýú߯Éþy›ìß·Íö{5Ùï6Ûój²?ï&ûxióÿø¯=ž·Û|i³Í·&û|m³Í÷6—õ¢Ãe½épY¯Úlë]‡‡0ž2®Ç‹°­×]þœX.ûE‡Ë~Óåcî°íw.ûe‡Ë~ÛfÛ¯;<Åç%\Î ]ã%áièq9ï´ÙÎK.ç­—óZ›í¼×á9ÎDŽǩÇå¼Úf;ïvy9z\ÎÛ]®×+eŒwár_èrxÞÂå¾Òåð¼…—¸^ —ûV‡Ë}­Ívßëò¶÷óUxŠãA¸Üw»<möûv‡Ë}½ËÛÜçuìs=ž”ãz¢×a‹—ty_z¼‡ñª\â=.ñ¢.KK¼ªËãÙã/k³ÅÛº\ï/SKà¥ËËÚã¯ìðÇSÂÓÞçqíq¯„Ã}!á°_%ž—ðŸWÂËÙç°Ÿ'Ÿy ùŽŒÃ~™ðtô8Æ›2çù„Ã~šp|Þä9î‡ SŸÃy%áõèó¼ô9œÇ…§¯Í8œ‡ŽãE9ÜWç)á’˜ìð€ç¥î+ ‡óRÂá¼”p8/­]°ƒõaD±>*)ÖR±¾fcM±¾‚*Ö ÅúúI,­¤¬CïŠõÁI±ŠuÐKq\Û¸…—b}]V¬‹â°¶q YÅeía*‚ÓØÆ%ðëã±â6ô°N½(Öob »+†¡"¸Í=¬¦ŠõqO±N¦(Ö¡ â1Ša˜ †a&X‡ë¦b}|U CC3Ša ÖiMÅúRB,² Xp{X¦룴b}ÑQ Ã;"’4ŠõàW¬àŠuùb}9R¬îŠÃÔÆ#„…ë •b}¤W¬ôŠõà'î!Ø®X_ë@£b}ÍSœ§NC‡½[¸>(ÖÃ[±ÞŠËÞÃzx+Ö—Å:äH\Ã…E±.GP ƒ_0 ~Áú"ªX§AëK1†hÃð\†ÖÉ⇷`Þ‚uÙˆbÔU¬¯LŠõ…Y1 oà‡·`Þ‚õEJ±¾f+†,0pŒX0 `Áúò¥X§öë‹™b}­W ƒ_pœ{8ŒmÂ@±(Ö©|Å05§£‡aâKM´ƒõõT±žŠóØÃºðA±¾–´P¬/­ŠuÀB±žVŠËÖÃyéa}m!Æ24ÅúJ«XO+Åmìa=­罇uhD±Œ(Ömâ‚nŠõ´R¬§•b}•V¬¯ÒŠu*ŒaŠuO1L+Áúº¤Xˆëðb}ÁW “¸Äi%¦•`}ýW¬¯ÿŠaâÖ#â§•`˜V‚uè@±(Ö¡Å:$¥¦•à8õpÚ8…ÍK±J(ÖA Å:(¡X»Ô×sDzP¬ u뀆b˜’‚aJ ÎCÇ£‡u@ƒ8„€†bÐPÜή{—µ‡óÜÃiìaHšMKë@Šb=a—£‡óÖÃ:T¢X§‰G¤(ÖÅzÂ*ÖVq{XRë£brT¬ƒ0Ä=LXÅzÂ*ÖV±ž°ŠuF±H*ÖIÅz·0aë «XOXÅ:ø£XëàbüQ KiĬ/ËŠuhH± )Ö¡!Å0DZ±4D1LgÁ:4¤X‡†ë0©b˜Î‚a: ŽK‡©s±*ÖA'Å:è¤X‡XÃtœÎŽ{ë‹6q á,Å:œ¥X‡³Ãt\–ÎS§¡‡u°‹ ëP˜b˜Î‚a: .{絇u L±”cá‘b(S ÓY0LgÁuèa}…W¬eŠu L±”ÑF XOgÅzÂ*Ö2Å:¦XOÉÿ ûéKOäóÏ.ÅèÛß½þþÿñ‡ïÿí—¯Ïßïß½¾ÿñõÓw¿ûþ矿ÿýöúñ÷—õ?¼¾ýÕeBý·¯ÿñÍŸÿüwÿå/^ùëäOÿú/ÿúóý<ºýû7ÿ¯áõOߌ¯_}þç·ßŒåÏÿüª½aû6¬fÿ¶|ã_ó·ßü/èÉÿbendstream endobj 893 0 obj << /Filter /FlateDecode /Length 1348 >> stream xÚWKoä6 ¾çW9yÐX+Rïm·‡¢] =¥mnÝpfœ[Ïxj; öß—zø5k,’M€˜’(~¤ÈR ãô (ΜQ™TÀ´Äl¼ú÷Ši㸠1,AÚ—&Þü|ÄìÇöêWú—ŠÑf±0úÃÝÕ›÷Âf@KÜAv÷Ì$Z‚F‡ìü}ýñ©«vj“ãÛ]!ç¿å~‡6ÿg‡&¯qñÜU‡z?Ôí)wä]»ƒüÞKå}ÝÔC]õqµvÞýòæ½rKp$YpIì>ê³Ô!ßä¤ñެ›ó¤¸Š³Všm—ã§«ª®:íCh6?—äÛÉ50 !¿ý-*öCy:$¯'#禪¦ Ad Ë„tÆ‚)ñºjßzsÿ…3ê>Mž™1Ighw4†ü²i¢<ˆÜ Y"4úûì‘«A©<üMZÑï8ÓÔ§ª¿ñ²È¯ûúô±©®Óðù±ÞûÝ  >ž›O!$«i‡>''†®<õuLªŸ»ö~Îd iué 8•jŠIøö€Cœ ®E±>Åoé?:~Æ©3¹qã댢;âÜu_ËŽŽü:­,C¡õ§~4<*&[‹°hÒç…ŸæøÁH£YEË‚hæ„^«Ýí¬È)•è0oï‡Òçå€â…™› (™›Qe(MþµÅŽ™”à?“ÞmÔ“"3DnÌ8Q¨ª3µ ié…–d(&=n¹¥˜0D¨ÙÌ®ø–_dŠÚÉÈÙoé̵ÏùV¤‚ÄI•ìÁq “¨—¼ÝÀ¤<Àô•â3[N»Qóí–-Á¸€QCm9­˜Tš'ç©J­¯R_e7Ö•äú& Æj™-É ýòöᢒ†§¡íê²¹cn]ŽÏÒ×·À™ã$GWÊÓÇ´I €Z”"&6OiH ñÖ©“Ši>µÓs·S@(Šç‡aë<ÐP•NGø¾ÄÜ—¡áù©6n׸ܮ%“g4â•§êæÉsÎŒªl˵Oº $]~ˆ 1Ô÷»BõòÁuþ]‘Æ#˜¯÷cÿ€7qݳxˆ*ïâ‡35ÖðeëH¶û§ã±¤æ<çá&N?tíqaIç0sA­‚#³¨ètß..Y¿o6D×”ïz^„¸æ«ò'C/õÂP’7uãC©gÂ1©aíþPÉ(Jï9X&›¨¬ô#ÚNHÙiY„e‘F’š´¦òè«x6ÅLgÈ里ҟè>ãñgTH«sþ§ú&ÎèiæR%íÜJÎGRÔfœqÎ*ëìkz!,¶Ñ­K;2°qWŠ_MzRÍøFKûj| @ËYE’3 aÄÖÈÙ­<ÊÙ¥„5+@ÓÉõ°ôº™U4øÀ×›P³ް)FœÖ©µ‚ÌK§^們>³Ho—-¦`èÜœ!E ³ ¤v6å®G@Ю*â™Dh…+»È’%^ÓN+­‘)M·*®½è«¶kz"%êP.Ó\Ó>W¹%4¤&²…AÌl±´«.¶"ÂKù³b¡þlÇ¢,ÃÔ—øõR|bK Ê”D-åWã‹×â[UF|ë¤øÕø+ú> A$J#£Ö R¬kGRRÅ\óŽj¹IÝF N;Ô ñzÔ¹}q;ý*|ãèI“âw䎡¦ð|uÁ-ïÃw ¦ÚJp¡Gc^#'Ò¹^:ꃼ#ð‚^#¾·z#vó‚œ!ÐCýÿé½,]®~º»ú¾‘…tendstream endobj 894 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 895 0 obj << /Filter /FlateDecode /Length1 1401 /Length2 6328 /Length3 0 /Length 7279 >> stream xÚt4\íÚ6Ñ;A[ ¢ŒÞ{gˆNôÁ`”fF‹Dï¨!j-Z´èQ#ˆ ºhADÏ'yóžsÞóÿk}ßšµöìû¾¯»=Ïum6&}y;„ TGóðó‚$E-~ ò‚@øll0´ ôo?>›‰‚!àÿPDB!èkŸ} ÔBÀ €_à‘à•Hüo )(AÂEûü£‡”#í&ÁÇçååÅ qEñ"2œÜ€ íèAQP¤'Ôøµ2  q…þYŸ 0p„¡þ è#ìÑ^$¸v¸Àl¡pÔuŠÜŠ®»úê`àþü€øs8?/ÿ¿ÊýÉþUÿ ±µE¸ºAà>0¸`sTÀ¼ho47ÛýB\Pˆë|ˆ'æ±¹ü¨Èëë ÿ쇲EÂÜÐ(^Ìå׎|¿Ê\³2ÜNáê …£Qø¿æS‚!¡¶×çîÃ÷çrá/¸ïß–= ngÿk ;7>C8Ìݪ®ôsíÂÿ·ÏŠ„A ¨ˆu Þ¶Ž|¿ø¸Aù¹¯wð÷uC¸ö×k@ýaöÐë?|_Ä  ‘Pßÿ üÓÂççì`¶hÀêƒãÿ»úµjÿ—}}ÿH˜7`º¦?úõû×›Å5ÃìpŸÃ_1Ÿº±‚±üÃûVþWPAá øò‹< €Ÿ_D½~ñÿgìÏÿ‘«·Gâ{}Nìù‡ ü³–6âš¹P€ãßD7 ƒl¯üÿgºÿNùÿ±üW•ÿ•èÿ=‘Ї‹Ëï8Ç_€ÿ'q…¹øüA\3×}­-ĵàÿ 5†þ%]„‹ÝÇÔÑk-ÈÃ\þuŒ0” Ìj§CÛ:þE—¿ü†¿„æƒCu(دO ÀÃýWìZ]¶ÎןÔ5'‡ ×âùgKe¸-Âî—Ê®o‚DB|ð¯/ùÚ|ù¯åhõþÍb€Ž@_§×Ëùö$þ¯¼&Î/×oëÚC\mì ÿòˆ>ßÖ?ÚÚz ‘×âûMŒë™þ¶+ õ†ÚâÏN#l%CjCÛNjäé¼xÖG¥'ÙÖ38y|g‘¯=ΈqR9«Ÿ>^D˧v“ί*sÉ}d¼ôÝi®Ç oIÖm=÷»°JÔ›XoÅÿ0~»o¬hG¾®—žÇ@nÃïÒÝÏ(ØùF3f‡[¾»‡±N!ʼnWªw]oùÜð“éuÝjM‚‹òw<±†1æÁ%ïÙ lr¦h˜o¡yp¹È¼IÞO’çýdÔH¼ï¿+Xìkº$w:õh¡Ò@ÕIËJkJÃpãˆ|x‚ÝWa3MƒzÆ·ôyÌ¢ôL®hdüÀÇО¤)M#Zædhtv¸ƒ‚µ3ÏË6ébd;¦ °ßc¬Ãõ c+UµO®b,µÊ¡‡ž^²0è'™`ÚÝÝu·swϰƒË/)žF‚?öó¨ëÝciŠ•öœ‘‹Ó[| U0vª=Æ'–Ún¿Ñ/ðWÖDÅÖùšõþ,à}þƒÇé†S¸ßs´«ù'‰o1jÑsúÍäý/—Å Žƒf 5”GT!ã¤Víâ«ãh+ÁäFѯ¡ÜêÔ Ä_*rÄ42AS”®(zC,ãqÝ3;“]&ú‰^YâÉËœö/å²sº{ä»B_ zÑj±“Q¼™nVã#ô²Oƒ×Äör%[¯ ïx)%›š¹fZò @&ç7§…Òq\…’¦n¯£ÁRìŒÆYa•^`ˆ¸¹n—»ã²nPÖhþíN'Ϫ ΰ} ÔKw=æËñêþ0–‹è^'ëÔÓKlSÍ@µƒD¤J¶ÔeÂÚó,Iº¥ ^퀲 £Éw\°Æ}« \§Éú|ôÕCOÍÙBÆ×PsÜLð®{œ”Q’ºütØíSqHŽÕ§{ìÛ*J¯ÄUYŒZ‹Oå<£ÑM¼Êô~*:L aÙ’¹Ú/ h2ò‰Ñ2àN–©ÉmŸ–•a®È}–CÞMô’äšXp&è PQ!R0^;ãÓ¿ËtÕ‹U$ÀÕ°Kwëýˆ5]Œ˜„IBKð7Ê;8M¡ê…‡²f^XwV†mñØM?[—ÐN”嵪!DÙ©AUž§ß»ÝÄ…ÚØ$z7l`'þ^²TMú8ì£YÜ0$‘5Í¡–¿õžÇ|3´…'úå.DoÌ’Œ#ëLíDÆò–ÉÕë“@+K+ü-r™Õ/úç„ù0NJ²Å¸o…I‰õÏ3¡^^ÕT/ŠÆÊµ9?…m‡ùz¯ï6Î*5¹ÁÚ•%öN’qv², .Ì÷Ev+º°6â}OȸN?í}I§  àÖ×]#xÞZx^É~¯þ‚ÖܺÖB7:4Db“xe¡¹[Ä…²âjÑvð•{‡ïci±ùCV‘;f÷ƒ •£Xúšb´ ìrÕò*],ƒ«WÊi̸–åN Þ+yÎ>ž*ò<ô@ }þVTö}ŽÔÃ,ç ëZ¥Å+¾Ú¬TgòÁ¤¸xç R·jb´õ±å–›³pš•©—æjÁÛ)¬ŽËÞ&Õ_QážSزu’pP2}Ä×ðœA“øgô‹»O{mŒ/ù®æ‹L«ÎFoõªDÃÕ N  ÉG” ˆÁà¡qU„Æv(Cõé}‹³ÉLR-¿Iì¬D;ó‡åzĪ>A$¯„ì8HµãWé›|™o»œšGÎUbFø™'˜ûòûÒÒc'È#ÀhÍ2ð˜kÝÕûˆú£’þ›´yßP ÓéUþ…Æ\± ñæ ¢éL­²š×õ1/È?”¬ÃðÝâ–2¢9û‘ûe„ùk üß³ºgâ³p¤$í¸«-'EŠ×ís¸u:ÝFKýªœÛôÄZDïÊÀ"nE4¾„–¡uOs´ßÒ˵Ö8’oæXW›)¨„·â³½w5¤Ú¶IQ¯ jãb­a„#¼—5Ò£îïF¬íf…f]1—aö†’´BWѱµ¹´º·œš¿'…Ö%FÝrh gtH_D|š'bbc0¼CÙÙæY\Ö:Ïñ>8ÚlžÉ«ëxRX ,×/e¾~@c6‘4je.gŒ~+5Æ'ÙKØÀ¼¡GÿÂu¡»*/›³ê¸Œ2[9Î9`ÌOØ59‘„H)§ÀðYŽœåTŽ:0o—ûè¼3¦!ë (»»Ï¦„Š YNO ­tL(å5ÒC.ÄE W‹š:Ç}_ –d“W˜2Õ[Yó ?ºÌÆsí·ºc>ΦÉ]£ŸmùU€&¼ VÄtx‡/·ÑÀ‹8·ô¸ÇßIéG~v¶ì¿Q®­gT§Aòù…(”jé[¼–mwy¬†âa_ªÇz:0íîÜÍj¡¾¦èU)wfc´‚¹d|é ¶ÅųgØwkèìi½||üÔ( |·ŸÜ–ré†\i}eÀÎ Äh"ÛCÍÍ4X"±šhë9’QîIòLÒ t"É»"»ƒ•tV•#BÅ–ktƒ¥¨? ! =êíƒ l¢P¬w‘‰á÷ ³úüY߯ áÀF· ÊÆL³µæSï•ÀÒ€§xPœ°¢×—dÝÆMwéÄrv RÓ9–HW˜:òézH¹ÓÛ å'_m 8÷HªIò™cŸÔÉ4xm-xž×-û±Ró m'sÉM¢dçða'cnõ6½+æH¼XqbùŠ7K¦R§ž÷ˇnUƒ×ZSGï—2̉aÅS¦ÑŸúDóz+¾›íËcÜaXšê?k®¾~'ɘ3t6D­á@G˜Ó¹,±1§$Ks§lHÂáÈþv‡¬‹7m—A8ÖDКoîìu©/ޏu•ØI|ôJÏGr%vðãa?«©+ÞÁÊü$OÈö’þzº¤¨!Û°³äU0¡‚‚õÚ¹ÈO¹{¤!È&Õ¹¦qËhŽØ×Ò”ÀnAŠ8Ìs²©‡–y¾hÏrøg0øL%ó~O4†UPAŠÞ…ÒIcz…”ÈÒWÜ ~jzC¨ØÛkØ×&‘ñ–üD<ˆ_ñÔ–/_ms¬âþݸa6×­FÑqÂÛ¹úYû—O¸¾ö*§ô#ÜïJvDLµŽñmŵˆl›•‚I§÷HM]t¯ ¿Íã–¨D¦ÔÊH·‘~ý vÐÅš›g·ÍÎbœ@œ¤ =Ìê'uG†Ï• û™èizßš3~J@Qx)ÿü~RY=»+ÒRa<Kð„BW èK!›· {0] þôá Ò½Çé%•úÂEfóf îµÀÉ—rH(G)±‹Êg®Þ¨‡¢³±?X¼tÓ—ek‚ù½>Eûa˜áþ¸m#uJ'ª%}úô(5jpÞpçñ8iãD¹—€Ð'Ò™°N;>›=¥3ÎêS¡’ÁÍËUv >7ín6’T†YÉmèä "Ìt Ì·ÍmÂmÊÓn/­,*2> _¼â±Ê g ^›²ôU'&ÓÕ89©è¢ ¢ÇÇW|¦]Þsþ¼d®æŽ4 (ÆVC: ]ï2÷pgŠ0l±Òý9ƒrV??J^’ •"{ùcÿh.Tå”/Ñ}ÐBZ–»¶© &ñ2ø(úMJynåªÓ=Ò8@±¾ðÔõ!íwéÏÐU^;¶3 ÌÏç’‹ñ¯^±®}µÅÊ—á~ø”—Aå|>¥3+ 3Eõ u ¥S;7;ÆÞmCöQýÊrÉv&]LE†þ‹‡vóÕ¦îó¨Ì…‰›÷ÅxÃ)™Kêe ùcßï<,ÈØ·Sž.<Þ¹«ÚÓ^ó,¨¨¯×”E¾>‰¦ ¬nÿ)Ô]¹Y†«C\Ž÷ø*Hóƒ«ß¬’ñ‹ÌèÉC>íº[–ã©‚\ Í£µà­žËù¾Wœþ“7ª4¶´˜ß± Ÿ‰}µjw¨PD (6ˆrkæä‘LåÊâŽ¶ŽŽqæo¤F}"<#žçgÁìF´T¤5¿¢¦Rg4±ÍÑùñ! ò?ðl òíñšeq¯Ð%Õ Ãd §Ãç!T@„Èásk™_ñŽ]œb1=ò÷s[a‡””×J©´³lÊè¹+'¹J?zçãÛBÏT®vŸ ü¹L.ß|Ð|îT’ùÝÖÍ"0 SLªSn5¡+C°ñ™Sóº@Nøc¶TLqQíÑÖG –Ý]QX2®à7`íUñ>‘;u]´Ovq1È ç­1Fà N%^Ù‘iŒiñ¶œj{!½còý¸ “ææa"\/–»$VzèpM‡=8Ý——|3Šcâ#\AÇUýÝÅìÏ:TKdJC½IÞ·8Åp'w{p“Ù¦Ó»×t-¤Þ#z†íÇ£¦í³¥ÝŸ¾~E©ÑSQ©Äd:×>¥©D7øÎ¶ëÇ6ǺT¡ M oÎ&ã¸ÚV3‘ Úíˆ~Œ°2ø£î:¢'I©,oïÆëÝo²5\®`00XÆäÈådl¼PÖ´´›c«ïdþv¥Í«Ù[žÇî'êî5¥zIû!û,—uÉ(rB» ýÕ‹ë;wsõ'Ké1-ó#»EÌrAÎü|LmÑM Ñ:Æ›ï—ùEËÖ§5ëq)KÒ,žÐY#ØPw)õdÙÙnSûtQG”›§kÍÖø+–œ2޼ÍqèØ,³gç0ÿ0½ÿ}IÊœ¯g7h®Þ¤ê…¬HblïͲªÕÕ§ ü‹i׃d†ã—­»Ú.L“³9iûzçÚr-xÂ1¬é|·ç¼·ëy!5VÑ¥¬a8j&ÞáZ,‰±‹L Fb1ÅBwGv%ë½-ßí…Ìk‡d gnU&:‰?ßfÉ®{—tk'ef¨n°¿EÁH•#p ¶Fm¶¦^b,/%×´¹š-]#r,[M±å€AÃJd0¤Z¶C^ ÒF…f1F·ÁŒß=¢xâ0E¦¬<ϰðÁˆbåꦾÂuÎzM&A“¯£^¯É 0Àº?ÖÉ}te G¡)¼tǶ}æ<¸%òyò]÷0µH)üjW Een‡/QT–bšüç>\|)û=¥E+·õB)¥™Ó@ŠmÏ¥±§f1íÀÜ o“>,uD˜h4A\çñ<ÙÔ2A©†íŠÄà}ý»!­·8€ôM7HÉâMæÝ”{zõÜŠÅSçï_ºõëÁû>»Ÿ¬®œNÞfèÍ4Jí¯߆›§p‘|¯*º¨³pºæ}V?i>ã¦JèFP 뫱hæ‘P›±ÎTÒlÚöæÓb“”ʶkf$½ù¦vq¥O~öÞÖ}z19]ý!²ý”1“GW¹®[³‚Þ3‡‘0M¦Ø(èñ$»èºYi$âKÙï.m!©ÃFÆv> sÂ$ u›Îó; ‰ý–VGýÍæµXÎ&*ì »A3gåw"S\šl–Qt5W¾˜;ê¾õÖ쀾ÛÕÔ{ÂZÌŒĪ‡ŸJnȈ—ýHç‘#öL!Ïf¨¼–àÄŒ%IšS-9ù3M¼,Y‡¸î›Ú‰îO¶Óo aÔŠ‘röÄàõÚbt’/”fèé7iHì8 =ûN9¯›æ?+)(•6·=Ô µèZbFÇ#ÜIëÚ3 ËÉGãn|µq§ÜÆ´ ?n7žæ2zWëúã4·þƒ®•EC>(,ªj›GuÈdêäQÝæ}U¿$Ü{«$¤…²jâÜ"Ä}îiœCB‰+Þ”EƒüÙÏt\OŽ¥Z¾úÃ`› ²À­è»•ýY½’sªÙ²²7F$ËW>–›s/~¾rxæ°”e]k*³¹<á=î»&¯a›®«wRDè·ãøD2÷Ô'óÛ«c„ÒˆµA¹†büÍùïjáô ó‡ý“ :µ—ÏfRHg¶#‡¼ûž*ʵ^Å$k¹J™ÅÇ‚ÆdK/¡ý’X¦Û‡ñ÷ÃÊôÌ OzÇJbRR…LP§@°Ã:˜Ë݉-_ÚLÔ´/Îàq­^Ò^í"ìÎ~õ«’xEj„­ ð Ëðñ༚ÍDµZI¸ú ««ÜÖ@Z­aƒÙ€ß¦¾§­N£8ýÔ½«™IÆÝ÷‚P&H1Éß%Wô^®«}2{=bˆ¿w¹L"lvõ.¬Œl݃¡–ȵkª=„™—‰%Ç/ ((œïRíù›r¼§¦Ó¡ìÄ”±\õ.?tõ:÷¹ñ¡²v©Ã"Ù ÂuG,kÌ|é2g÷—h…ÖŒ‚ËÀŸÏ½GøQVe•´æC«¦kí¦¼“óøª²?Vè‚·¡wrbê=ŶˆH—ÜÒ.ÄȔܹ“ûÚÙOH̵—Q·zÐÓ|cå]M„’Ÿ÷’ÎI%©R,””^z€°pžNé^˜I? º*Ö)àÒT4tOrÎÇH‰/ñ úðLjÖx2üøáiÌz¯7Ðé3rß ÁD+m÷i_i±Ü…K[s; ¾ä¨À¥a8ÿS®ì—¾A¸¸LâݯÁO¨¹‹ÒI…¸\™àš¥/bìõÊÄÏñÅrÂ’ôF"ã7ÆÉ¬mÔ’UyÖ†«\\+ ˜h°eˆqö£Ü•v½ÄžŒgöa~M)*¾]º7ÆÒ~ϰôâÕ:ÿ˜`KJLPÿYiîzŒé™ÏÐiMRgGv|¡VV q¶öÿ^Î!Û…–ª˜áÕ2Õ ßÇl™6¼Ž¶[>Ï2#Ó!ĺïý¨Â%ÀÑ®£Ãr .ù½kŠä¥ÄN¡J!=wÚ¶ðIXƒ¡NÄcéféæà¬â¹°çgó%í…¼&ijðòŸß{Æã,€›Â"ÖWµâ:E4j¿×ƒÉìI뛪SÒÔ+{KDëuÄŒJЋ¯  ñx%ÎF1;/\Z;SZÎÔ¼G-¶\‡B<2É—†‚L'ìoÚIUTÑ7b.ªó¬)”",ÅV©"[gÎâ+ÏéD 4±™ÖeÜ.AÅA¹Â´£‹‚GY8Ÿ $=Ö„yø\ >AØîË mèc“}¦2yf&4¸·cüèDíâlÊ£åä «¹µzüAõévk–(Ô¸´«Å71Ëh@õyggÊØ¹ÎM&ÜÊo‘üMmçñÅ)4iÙîôˤ»p³Þ³†4|^™Ä0œG—bS:a=B,ÉâùžQ{ÍÆ¾„0ŠF@bN­ìýmw,ß$È ý!bbIùžìÝç­êuùlŸ›ªSY¸òÃÍCŠù(’µEq'ðÏ=Å´%“÷«ÇfˆÉ»VØ ~9Ï€^ù)/+IBmZ 7:´IŒ’WîjÑ×Õ=(¢‹ºðsýŠNp„+?Ÿ˜‡©µ±ªw õ ÄõCw0Îú ¾¯D> 6u+“°¿øê\J5çú–-¼[í˜×/Æfä’:[ Üôí5ù`…îȳ׷&è>¥½Ÿ~A´d·ÿT{`wì§# ¤endstream endobj 896 0 obj << /Filter /FlateDecode /Length1 1462 /Length2 6413 /Length3 0 /Length 7409 >> stream xÚtT”]×6¤tH Ò1tI§t·0Ì 0Ä CÝR"RJ—H7JK+Ò’Ò‚‚Ô‡>>ïû>ïÿ¯õ}ë^ë¾ï³¯kï³÷Ù×>¬úFüŠ„=T Gñ„¤Ê:ªæ@!€ˆ€0!‡1 å ýÛNÈa EzÂpéÿ`(#¡ ÔM„º!ê à€^® (. ” IýMD ¥* o #x€€C= 9”î~H˜£êfŸ¿\`nPJJ‚ï·;@Ñ Š„Ap€åu»Ù r!À0(Êï!¸dP(wiAA›§é(ÇÍ𡜆PO(Ò ü*  rƒþ)M€`ìóü 0B8 |@H(àÆà Cáž7.^p ¸Ù`¤© Ðs‡Âÿ"kÿEàü9Pø¯p¼‚Á;ƒÀ`„›;îƒ;`®P€žš¶ÊÅÁ!¿ˆ WOÄ?ÈsÙß~§¨)@7þ©ÏŒ„¹£<pôß+âð« ˆ—»  æáÕTùù1þÛæEÄ„¤„%ÄÅPÔì$økc?wèoøË|SC Úáp¸)s€Þ|Ñž o(…ô‚¢ÿøçŠ@``Àêƒþ;úêð×ú¦ÿH˜/ÀJèF~@€Ð¯ç_67 ƒ à®~ÿ¦ÿn±àKCEE Þ?%ÿ TRBøÐü¢~a)q!PTL !! üg }ìO"ÿᬠw@¤þÊ÷æ þÎÙû¸þL7àŸ±t7Ò…¸þ­tk!1!ðÍ øÖûo—ÿŸÌEù_•þß©y¹ºþƹþ"ü?8È æê÷‡q#]/ÔÍè n†þßT3è_³«…À¼ÜþÕDnÆAîèú¯ƒ„yªÁ|¡} ìô—bþ²›üš5Wªð„ýº]ü@!¡ÿÂn ìrsƒxÞÈò7½™Ÿn© # ¿MXLB"A~„7m¾Y‰ÐÀ›‰„@}  (G n\7åHÂ_=ŠÝoî¸+Ô¥sü…þHü~·ð?I©‰€xQ˜§»+Èïß@ÐÓËÍí÷u‰‚ú¢~#ÿHì…¼ Šú-ª›jþ^ÿ¾& P_(˜pv –‰p®‹h;­Qdðá_¹ÿ‘cÝ,ƒ›=‹l÷úIŠŸÊ]¶„1 µJNBÌ"]¿ÕÂÝuõ!×ÞWêqŸ°Y³K=óy2‚—4î!ÏxŸh|ò¦WžbƒÓK95©ÇöR~vRø½ ­íã^´óÒ,$WLÃwDìràÃÓÖ³s\ÐqkëWW Óļ¶/±Ý¥³I‡›òMüüAÉÞîl5A­Q7Qo©“ìl/Y<¬<„:¶TZÎuº [)vÈâo m´Ò'P/âî 9½cKø5aÙßp¬cƒsÅYQŽÔZ oêhHÓÿ‡FdißÝô‚»H\â†YÁZ_çaI‘L2üãOû+ráþrw6ÚoKýÐËòæŸûæ]¸Ì}al\¨ÂÃÔª©˜ÛäÁXóùå'{ßi¹'L^¤íIU÷¶¤Gvî»ÚL2ï>CH¿zÕ½]¤ú4®ö©dÏê±âô—'$1Vé‚·×U ‡eÞn%Ȥ²õ‹sõ•Ök1È+³ËÉ8:qwL«ƒš¿HÁ JYÞȆ)ÐnDesQ²ÈÎaÆ$d2ðFqNê÷ES ß+­…0§y¸/–ØW5Iêš6{ÖÕN šçü1Fõ8L9³Ä,ðµ/ïÐÅ`–?ïQ¡ªóîo½hùÃ…8KŠuÙ5÷«81­¥æ}Þ÷DêWa»?þ~…Ûb·Ý«ÜÅáZÒÅ¥Çôw(.øV¯Ø6øÄJþIðÙàu`zðG ÝOÜ}ü¨c媚\ç“u¬n/ÆÛ_ï;¼´êØédò_ØBçÍ!É”§„«:-¾ƒ?+÷ à÷U0Wb9¬_ÒžyÁ+÷•g:´DèQ™UE’uˆh-8~©‡ylÎ<…Ê1œœé6G&M§žRT¼`ùáñ8c$04UÀû¸Mèí£`Ù•%6Mï½sª¦Üð-ìç½#άf9¿ßnfêdqûžáº’U8øÓ|Û&çŽ.Rœé]ícû„<—"Ûpº¹Ò±Õ[[5W4¹´oJï ¯ìp¾Qˆ¡öS¯ˆ4¢It´’BlOÎmg{ÕA ÆŠØö˜ƒ±ÃB–/•ÐkEù$©õv<á'iUkrç ÷hUHįàdL?Nº56CÛeL&ó¶fs·’×J4Ié;cjç-Ñ ‰¼z€v¤™<–ÑÖ{Ó"©/Ç­´×÷ÎÊOr¢ã/ô¹Mß7å+ñe…,m˜ŒÏ&•…© 2÷>J,ÂV‹ÐçO2Ïó©’‡æ5þ ãlå¨þnKªD2Ò"ÁÅMuéK­%þ,壻Çàò€ÒuAš¶ŠàÅ;;½ ¿¯°Üï¶z…8[TŸu´X;Åj¸<·édU…nµjø,ZîÈ96”ôkàÓYtã¤X×e$‰æ–žI‡|¨¸·Íÿ˜K%\HèÕÁËe&|*«Ðܪ´y_úøÎû¾Q]fÁßJ‰`A„ž¤%±Ô—>Ñg …õzEí!¦ÛU1‘°Ì‰QÚËtr$§Ò£'ý2°Ô0è/ؤ «f€VóW=_³o[‘À§<#¡9+6ü*ëiß2²À¨{¶iÊ}wsV³5mTf2úËË8 G<ùz¢¢m„×kpw<Ä“¡l2¢_\öúËiMþ›ÊV§ãdj™1#È+ù½*tEnÞ"»= ëŽyoÕ‡ÑíšÊ“ñÈŽG]Ò´åæä:]ó»¤ùa\%A(¼ ßøÞÍ#ðKÞ2; ð“5o*¶,ÞQlÖ ÇÕDl&W2:—Í‘fö°øçÞ»la¯9>é”vã(&‹OE颃#ßr´¤Ú$Щœ×ÙÉlÈiî´Õoö¯;6±få+Á6gz2£Ž´±®t^Ò‘<¿4&“ƒ…‚ékP..M— î.çÓåGå +™Ï¼g>WÄ^Y^V;é*ÕÙ„Sø½†›‰ôœˆ¡câßÞeà”aØš¶¸°)O´Ëc…Ñuµ–5ðÛß1*"Lø¼«Åçû> €Üî¬rPÍÊÞã6Vîü’6áÂVøD„…jQ§Àch2Í—8%³&ËÀ.Ú-zË.ÞW¥ÿ !­:…úČ։g—ŽNªznãóe1ç8SY±,'•ÓÙ&ÿþù¹–h îÓ¾ªbÏý¢Úé!½ Pÿ8¯©ù;«Õö| Ln YžæXºäaq©tËØ›Á¢Ö¶˜ð€j;æÁòT4q(ïCµÍŸ™¤0wÿ(Ë#æ)Á5þUl=ïZ1ì>ò.¿àÒ¸0)€M ûè5æôØÛ³ï˜¾AQhŒ¯¬C…þïd-1މ(û%‡–;MËA9ƒÝ5ã†1ÖÄJ0-]Žƒ &Òr´íø=ûÙ¤,ã+ì.ÈÁ0éé@ïϺ9ÂX¼üœN)!;Kâëæ#䨫ÙNM[‹™=î¥LHÍyN½¼F‚.í+ôòÀÞ¶Cn¿fú<»+¬áë¦_ýSÚÙ[w¯‘”K² (úÌX˜9&¨'oïžp®ìe}Z2tàÓó°áG5×"ÇHJ—§©ãã×mð˜æèjºø°Õ¾ÿ®ÑÈŸIžrµ QKÓ0 Þ§†1¾}r'ö ½tª:•ÅêÑeDË7õzLÿ=ŒGh3K # ÕZo9ÛKòã¹AêÆŸÒÎ×µ¬Ðfœ°é½êÁjomc¢ô©Öäk!Iô~‚[óß·M=¦fþ–àÏAb¬›ÏŒiZšëu n©&—%N™º?KÚqû~Ä¿F°2”—À°F«Ý0_)•4ISk ´šÈLÈ'XÀ–Rk6?êjßF\”Ká`H/™=(Io/Om¬c-cbÛµ®Ü·Kälƒ˜td*èEâíç) 8íls&xî˜B*“ ãåòsX¦Üw²TÁ Æ8€„6§µ°ím´{fCøžxêϽtàvÜWˆÃR×Óò?N% YÛxÓL`Tðð åx<™ÅpÒ!i·éJµÛ:³ê:†YÃæ]j’>$#½þÕÊàÐðãºÔ £ ¤#êÌçMê Í˜åýg F ~ûe-;$C2×8ôF¾B"¬°F) ýb;íëÄ»0Ÿ6E/¯·rhã>‰–ëw•]ôÓ³Ê[ãô«f(êoá:î”Qy°¹P.Êü¼Ö|´$î–6’¯:{ š+}À®¶ªwvg.Þ¼ QÇbg8›žøXÛÕÝD±]ùü¾…OVâ2Üà Àjf0ÿ1Ùw\v∹ Ñ‘b~ó~‡§U¿ÐÐÁ˜ˆ•µk¿$Q¾¥Ôâ‹sJF|¢4tÒsÆ=¤¹yfý#cXÉìCšáO“MÚ?è ƒ66~ü¨1-ŸÔ·EÑ@j’z+ˆÊ}ë½jãí͵Ô.ÁšO«–Á¢Ž²S[­´kŸ”¶[Î,w¬;±”¨™Ë#Ŝ²‘MQ·éU ó"¨!)û|ʺc±fa¯Ü2øÇÂÄtlò}Û„6v¶µ4¥–:|I}fLë­‘#ŸŒ,îPÆp)©@öû¶¬­[ab‘=R]Ê?l˜|YâÍwG9÷ÅöÄÿéëlí½C”ú¾½˜þE¶Ÿ@vûcvÇV¼òÈø«Q5éÙ7ûØ¢—Ò^”J¦?@Œzë©ÂÅþÏá¬]Dvî­ŽÆ> õy‰«”…û$ö[þÛž£EíEi å MØB±h© ¥}ñ»ƒé%²¬±‰{M«Ë÷Sd–Ã錂ÀÙ#zŠk æK•çêzo‡3MqJZî“c¸xËÆÉ•ÒÀEïÓ°¼tº :[Lýfˆg{¿z|ý=sÑS=1ŠoÑÕÞrÕ°b„øÔ–¹(ùÆ ùƒyUFý—ŽòŽ$&_¼Ô º0ë9Ðì¸ÿ{Ò¼MÍíéçÜb"‹luÏÚ¹‹MfŸ°›puµ[ìYK¼•Ë¢½„‰>GlÞkÊ•Ð:LnûøDc7BÕü‹ Æõm5z« Ï(w}Y%_ÉË5íXù×Üí"¶'ɯÄpžA™ôW’œ£å¶ða2²ØßFªà[m*ìÙŸ¨ '˨ÏXäv²JN¤„èÃÔˆE4v¦u øžÛLªصg—­5 •­ä•ÞGB“g {fáe´9·š»uQ¦Ó}Œ¯M%Ÿ‘n$–$îñZDžCʼq ÍÏr¿æ±¦žéq~»ôüzZ!Ó‡®êýŒá 1)…“•‹ª»L9‰î³$“Ÿ'Ç‘ƒèî\wOĪGF6*’:ÇQ5ÖJ=?³ãVôÀ³×¶M—°G;Ñ ™òz©«™˜f:ážÁ”©‡ô U«Œw/^•¥Œ-½šð8'ð\Í(J4ÍaÓr³Ôä\ôL}N·x_W”4ýB)Rßw{б´RŒ§0ssôGÁ©ry‘)ãÄD&‹îÒÆˆñmˆrêIž*c«©jFî+\¾hÆÈžÄK‘¼IGM'2lÖoÍ®wæàÒÎnÕ‹:ÕÍ)ãÍÎoi2Uû2 v‚¼³3ÑÍÇÔ=a–2S=½g¾FªóÇ éê "¥ÅMwbÍSfØûò¾Kz*e}lªM“Ìo\ª fáˆ;MŒøèw±Ž µîÒ6;OÁÎ4#à™eYWiz¿;̧MjÏ5$cì’æñ~;˜=²Ŧ×í c-[ŽŠˆŽ %jõÙ'waB¥D w Ò9áÞY^Ñóï?zv”:ÐÅJø,<÷X”„ó~Ubë”ö–ó€z³Ö¿Ñèµ@çL¿MJt4&µµ·fM}:w[¢Co&] h®×d€ÞšbÙ` T…ÄÀAàIhPHendstream endobj 897 0 obj << /Filter /FlateDecode /Length1 1481 /Length2 6982 /Length3 0 /Length 7986 >> stream xÚt4ÜÝ־Ѣ¦ ˆaô:ƒÑÃè j” £Ì`FÞ[ôD¢QBôÞ{ ‚(Iщo’¼÷½÷½ÿÿZß·f­ßœ½÷³÷Ùûœç9¬Luye¬PpEà æ‰ä44TD $@ÌÊúq€ÿå&fÕ‡» (¤øä\à0 Ö'Ã`q($@ÕÕ€…ÅÁ"â @ûå"‡¹!¬|UŽ&f•C9yº ll1ØmþµpXrÀbb"<¿Ó2Žp„% ЀaláŽØ-a]”%ŽñüG I[ ÆIœŸßÝÝæˆæC¹ØHqòÜ[€ wqƒ[~ Є9ÂÿLÆGÌ xd‹@ÿñ뢬1î08ëp@X‘hl†+Ò îÀnÐUQh9Á‘Àê<€¿Îæÿ]î¯ì_…ÈßÉ0KK”£ é‰@Ú¬p€–¢:ÆÃ€!­~ah6æC8À,°€ßÊ2ÚvÀ¿ÆC[º œ0h>4Âá׈ü¿Ê`OYi%‡rt„#1hâ_ýÉ#\à–Øc÷äÿs³öH”;Òû/ô²þ5„•«¿áì W‘ÿ ‚uÿÛgÇ QAQAÜ÷°´åÿUþ‘§üwüËÀÇÛ å°Æ÷AXñÄÞh˜€qq…ûxÿgàŸ1 °BXbp’øßÕ±n¸õ{ù.Àc–{`è×ïï•)–^V(¤ƒç¿á¿ï—_YSYFE‘ûÏÄÇdeQo^!¯ƒÁ €váóÏ2aˆ¿Úý;Wi`ñ¿ÛÅžÓ¿Zvû‹©ƒðÏbš(,mᎳÜYb?àÿ3×§üÿ(þ«ÊÿÆòÿnHÑÕÁáw˜ãwüÿ Þ°¬uÅ` ÂêùßPøÕjÀ­®ŽÿUÁÀ°JAÚ`ÙÌ â ýñ#Њ¸ÕCÆÒögþøõ~iÍ„?D¡¿lô_1¬À,í±KÌ?!«6Ìïküeñzúg HK”Õ/á @„0˜'1öê±à Æ*Ô îñ›Ú~>$ ƒM`göX£\ˆ]3D ÀU¯#ì—û· ðÛü‡)à·ýÛø~5øw ðÿ§) àÇü‡)àwýmþ£mKWì\¿Ù†é_öïÇ÷€[ÏÏ ,%‚íªƒ›OªdèÜy×G$ñwÓN xG Ì1Ý æ+ º/2ÔJç»ÀŠfv­š²Î'Yf¼×jk=…Žx7m-âf®Ž®M%zÓ3Ï7àä¤ÈÞ/réÆyÈEÑF$meÓ­ËJþ”½ºs.Ñív±¢ˆjH³fK[Uq¦ú]z1ý/«:˜F‹¾Gë4ìÙ«Ž±AŸ¢M"R5Ó™Õ$[N‰Ü+)–{ú)»Ú£TÝ׿³„b($úèå…*õóÈ.²‹ÜvÒ©¼-”nÉÝÕÕÈeÒ¡!î“ËKjÜ¥1¹ÚeFØ&ïпËKÿ\h‹òO=„t‰¦fO1‡ÙDz[I.)êø·4Ά LPÏã/¬9´5qdŸÚ–ïûùÊèFÙ¥UXóòäÀgnåvQq¹[‚HŽ•À©’YÝûi-!âz¶€cÑÚçÂê©ûžOî»Ó߈%ç¥sU±ß ”qËnqÑ^F„æ ?,¦'Ô·¢¿ó)ìG Õýˆ™O´âl ³ì32Ea¢ ÅÞ•š‘ñ¾Ý7§ËïßcD“=Pβbpö¶X…2~¢2òÏÆºÀ—cOY¸¼Ó¼eMs.¼HàK)ÍÙ›èpöolø†¢M 8”4?.ÞãVU ¾ÍMKmàom}òZŽ2NP䇾ó€ÿÂVÜÑ©~É4µ&ü!T­‰@ß2K'XTÞVT¬dçü0/ÇÉëSNºún†â ?Óéµ´æfÇÇtFG¹›§Óµ¦IÇ€ƒ£Hó}[ý'³*௪Gk—Ãó%/¹$»œ²½Ý¤ošÐ7)µ¦šžlmeJɈh1Ã$z/?wE‡©ƒx*Îáïò6•xœ3`¹+!à¦Øêt¬ojIÒ¦|”ŠáÏÃæ$Â<ÏH,F¡xÆ4U42íâÌ/ÜôQ8ë¬}”¶¹E}Úˆk€Æ ˆ¡ä‡ž’2‡DPº:]PpÑàåÛ» ·Wñ%a çÅ3jÏ- Y¸Ž@öêO‹Ö£µQåÌðµCç>‚æVÊ=UñÌï‚î,Î ÉÐaÉÛŸÉXŸøÿÈó|º„õŠ4C‹‚¹ò‹»¾{5HõùÏ&„æ U Í+tu߬÷ƒ{ÈRm´1Îmõ®R– n–Ëlñ¯ÓBÀ!An[ßkž×!¯+.W…Ô‚_ÕÕ9®o/xñÑåÙ¬3ÙÅÈ\¿—ûtrÔí™X*œòºóÑàR§âcçŽyòžŽT\»â­£õ"œÄÌ úXN»‰ç/ÑxREUtÅ)Õ%6ŸÇÓðm´B 5ø½7Y|Skd]¾c ;3›ÅÜò—/bègy¿/±ÒÍÃsR¾]'k¤ L»áÓ¦-Ò‚Ö4 >b€u5F߯  :û œœc´X `ß—p˜28©EÜËÀ¿g…º `ðnØ#=³h:pó†B͵KwáN±_j>* KãÚÅŸòÖKhŽÍ¢âímXÂUÊ -·«ÓE@ôÚA[çÁRÛ:Ô7¯Í’9­œ³Ža<’³Œ:)ɲEF~óæ¹Õ)9õS'`‰<ýWýwθL _IŸ“J2ã¨7„…âØAµEÙƒàš0«†Mo6$ï’;ÝI¶ß ð>êGóãfç::;‡¸t©P9.M9ã`øÅ`Ù¡š·£nØXïÞR ³®`êP¼­gtÚ.kwlS~R•Qäó¤ò{à§Ì*[êô –ôØGÊݼTì’6抆^âŽkÇCÇç­ÀØÇ/hÅë}‰˜+­N–Zôà“ìÌ—¬¸Ó.Õ>ó<Ƚd{Îäm]âÀá~OÏG£'Xø‚ð–,ãsîBÞ×îUly¨A*YŽ;u™‡ò3sV~éú™Î(KÈõ~}Õ3¼ña•±G—¾Il”&gñD7¼íu9¯6DªæƒÍôìÖ,6áA ܕâÒ ¤•}‚lWk¼ßÞîó?n¾ÌwkÏ𪇪íµD[·›.ý~,r£ã$†|@ÅjÚÙ•&4­‹yÆ™tLCr¾›B¬Çþï?^QÐ/+R\+•Sh^lßÓ‹ H T‰›’ýìÏÞ~:/û4þacf=Z¨ô¡ i·){üù³/YÀJMÓª2§ÏWÝÉ ™¯_§è<¹òzÔ’íºýc}ôO9Ÿøw;(­Îö¯Uí×fóù´ó{ß3-ˆ›q ©¨#¢/¢d¾Ë¢í¦01©ÿŽ~¹Ç(:øµ÷³=7«Øéä¥%hŸ¶çã‡+ K¢ÎÕ®¦àw`³ËÊ›³”SV¥ôF4OÙƒOƒJ%/~QfßU Ð*”áe¹^ÇÞ¿ÝN¡er·ø´EVEîúZ _ÕS÷hÑ•½ŒÉ¶œƒèk(Ÿl¶OñõÂhá¼ €@üGÁZÅÝ?éië÷HM7ô5{eÖØT¦†tÀçs$1 KÐâ6‚AÙlZæÙ/r æ™Ô69K®rA½ †¶ÊÝ‘eê|_WYYºøÒ£ûË¥«è ÑÔGÖ°ÏÎYW°§˜íKEáÆÅë,·¹êÏz÷3¥<£ÞÎd°-ß8ôx{#{7* ?.óþBÏœPûÓº–«){å A󨹈é7f \ãÀ8ÝQÖ¥”…Ò©v7< †Fò™y›Lᇠ’§ðÛNᘈü7¶õ9u³²uçP‚;´a9ZÛý:w8˜¶hÔnsU-VÞv™Ö„é0ûL0G¶÷•Y‚ ÄE7@|£TsNÜrEíP)ªjD÷4a‘øm)DM,*8–awšjqoß1“ÀhòUïò6@±ïXŠWš³Ž¹¯èF½˜~Rï úI®—1îv¤S·mN’iS¢Q™êëí¬F¾¸Æƒ—íqÒ¬ڸ†¡›M=ŸÛp!£ßßåFßÎÚlfzÈÔ2êy+¶c¶Ù · ²â›>«áv)hàÍŠN¬¬cgÃ9.p²µí‹IˆÒÂ?dlç Ug!ÌÅîŽÞgóÌG8ÈL ¤ r…¯âB=ìy ¸O=ÚÖùs‚çÇ'Rf9µf$eB:h) èOëG_ u0µërб§:#÷pŽË*0Ùº¤pàž Ò¢k>“VL2jÃ… Sv z±[mâ5C$"eùŠë\®Pxÿ)‘õEUÎ5%72á[&øÁacdíz¢;Ìïº^ŒÝwúÁ6A—¶ïá±2õÖr}Óܸ™»yqå/ƒ½‚ÔV§fKŠ;Õ°Y”}f³ø­J¤ç’ºº@e÷\7á^âÁ^‚ê·µpaIônsŒÉ| 8¸ÃPaì0Šÿ9eQ)ÜŽOÓ}ÿÒ`—4«Å"D­óNæš}éÙ À°7TÄç×0§+C»ËOjæ.ïŸÝB?«+²æ‹(í @~±µ,¼*ÎC(@bŒ…b,>‚ìm/ëË»4Fš_ú†îçãÚLY¾HÓÞ,®ÝzÌ·'ÎÇL[ÜTSèALioÜòãõò++Î-sE'Õ¢‡JðûJÉÖwØzh­â)¹?>® )º, —8Àé”ÖzëÙ¸}L¡5ƉV¦é¹©=ætwýÆO³ã®zäˆz Na®M»½d’ cdz9K‘ ï-ŸYɈåtGìÍ—"iåwˆö£ÎDæØʘ½‰=µ{­>X÷Ùé®é™ÎÂëQš\%õ¯ù¢DÇ¿›_†ÉÔûðz-î“Æ.XíJHx`%ÿÜ)µw_à;“&91ú…µu5ÔŃo®Eì%÷Ò£€Ò«â//¼ezp„h½b8³-“a…~¡ê;Vñ·x5žæU3¸¬Vѯ®€²èuÜPjTeZÊÒÀk;ŽÙ¸Y@VD½\tèÊþvıäüÚº ®Q-=ß–k¾Æ=7ãè—_ ­‡Ø4Ï‚•jNÉñ³# ‚îíëK™PŸƒ`@º,ÒðÖHÚo>¦n:Öõœ˜|Š|´úÈfÁù’úEŒ¹Ôصù&W¡•ÒÒ:`X4¿œ„aó&ð·@Lä55!õÛ¯7å,3ÑÆ>F}¾žï~aþ À\ ]^¿e:Nž£*”¶=᢫ðzø&7NÏ*PʰXÙËyƒŸŠÕÌ¡arWÃPÄâÆã©T"(ÞW_Ñ€¤{G·¸¬¾È[Öz5,¤$f]ÞŽ[85OBŸEž17Œß¯ó ï]jŸÿÔ©Î)]¨»ÞCáN^xÁp?X·Ïò+h¥I)/oƒoarCâýƒãoIÛU¢GhÏÖ:öcS šwã™m;:¥7YZ*=¡"‘/y† 먣W[_wHNØC_²¢ULž<‘Qñ#|­È›¬¼ƒûé½Å“²•¤ÿø™(ˆª¥põ½vcŒ™SÆhO—k Ú4©FW(ƒ¿†Žz>ÖµUŽ`«æ@ˆ;êFôm]cçïNOÆ+hó¿D:ÈW,'M< ñê¸/²€’Å/©æ¶;îLüŽz}oä¡QRV'$t'¸˜ÈMW3›Ñ{vUb±—̹Ü»©†J€Tÿø¤ç÷B$pãÓÅ`8רŒR±PØ%ÎñÙÖé×áÌOÆÞ©HPpé—?àÍ;rŸp¯{ŠlI#¥ÇXåeüÑ…JåÒ$³î¬ü„à™qÙõe*ïœêE‚ p÷»ùÓ(ªÜqkžèÖe$Ø”@é`eìè ze·f"…Îæ3Îä·N×'b'2¿s²œ¥Öt3Po»å*ʾU'SJu(m †ÄŸG{…‚³~ˆXiöC3LÄ 0Y±é•3Ô)ý¾³Š]»;‘A3—?6eˆ'vHÉkëÍf~º¾g!âãÅZ 2µ¾w»ÿ„£ÊAòÕÍÃÄmòl¼¦·ª®åLJ¼Ž×êNÓÞoIý‘º-‹ •ÈOH¥Ô“¹Æl8¿Ñ0t¾È/kvÚÎ %C²#'È©w•Û?,m$?Õ6Y·Ï¸ð̬YáÜ_‰ÙZd~¼³ëüî„; }!M‚,(¦zçÝw*Ÿ@™¦]¹Oä• 7(ÏŒ:_MxíY,§0øsOõcÞܘGéDeº*ú8ƒ©hó‚cŒ!y*MjuÁmz<"ÊðD"ƒêÆTù]}œ K±¶öÕ!/c¨žjPq%‹™Í{íXŸÇPU‡(p–è$ßleJ¾Þí^·—²ºÇH—1%˜BùŽ]˜Ýßâ¸Ä òäÈ’ÕfÌã,Èú;u¼‡ ø+ÅOü m6ê;@ÊŸéNáZÑuxnFÐeÚ«)‹x¿óép¥ÇÇ»,ãé&ê¼”Û#g çÓ8áÄÖ…¸üä”ZGGžIñãA> ‰¥=97ÕšÁï}’dW¾5_¦àK7¸ÄnõR3ýÓ|'Gt‘ÃÇnpI…lÿ‚<™éJ~³á>w»ºP854Jû¹•3qôý’ÃÛJ鉲4÷›¯HõeØs¿é]8OR&ß´s[?iâ|v·†Jè[ÕÙ$ÙXT3- üé4=¢»•Îá‰+eÔF>ªÉUÊ|®æ.§™.þ8ïý¤»Ï%I¸±fƒÂ1¹k?*IŒHbtðáo¼:¦Ž¾ 6Ÿ ëœüÇκYn~»ÖQ–¦æä:…¼Ì¶skRtP§ž-Á¥îç»Ð¼?Pécõ¤Ù9…^Çy…ä-­*¬èZÕz=ßQ7å]?2Shôý1 u§Ö7ÛàB…WÑÙ[&”´\T²¸r3cϯ†8|'€zÚïÆ“&vöšõÍx.kÔA¶¾”˜_:±é@:"tUgÌé#kSõ.?’ [7\gi#óž} ÍLøô"3‹ª' \Æ#[$ò\)øµÖ´|/¹`}ľedФfH+¤¯h߈6zb‹LKçÚ+Ú¨„jK§'½y¨@#ï¯{`Ruöj°4—³–]X\)WCsvr a«­˜=á¡1šú\ÞmÎt+º)göè¬bâeéŠj Wã£Õ<à"óÁ„í{ºÙ=„9äÖÀóä{40µáGÅ%÷Xfa8a|øÛß=©ßIŒð`øŽŸý;àÆZכּîÞŠÝÂôرy9„¨,Bi1Ý–ë’üîTqí~{‡Ë.õÄ¥ƒßð>C:Å}ޝxhT ^ˆRp‡N!NÈ^á4œ½¶cõ,§€'+ÍYø\œä.ÄaùüçøÃoï:†ÈØ’E"NùïTdÒV§}!VHôà2Ê "8Þ-f™[ïè^zÙ¶3™÷2çkÖÁ7¿’Ð]päª&ÓDêÎËÉ#Û*àx\q(Æ$ë‰L¹=A¯®´]ƒòjÊœ8·îMùzqSnåÂGÝêÛQÖwâMôcÅMlÊA}»¯VI*ÕâÎZ”|§=ù>úJŠ{ªÿîý.ù¹KÑÅ3ÈGŸd‡•诺<ÐÝ<¾ö#ÜK}Ûâ[£TáéuÃ$|€D^©VÒ6·\ eÉ3òzºf[ÚY||г¶À“vSÇ22] λ§t§—w£LË31„ÉÔ÷+B­ &/ûƒßÛ:j—/œì µvGêvy¨¿h£TR ÓNéÓ¸L'´ î)¿U6]ŸjHû(3TC°U: êÏO|AÔV°ÿöVá݈J£×ìRóâmZ07¬š¦‡ƒeó-Í㨯šßÍ-ÄMš7(`‹|>ã`â74ä7¾ÕñìA…’BÞG©ÖD8{ç+©`I–Aè`º'áEqXlŽê¶¥Nùx®¤Þ—ïq$÷0ìŽþÉÚd³ ‰ýüÍŸÖ‰vcüœE18å’+_bg:rÅàë“òqj€Ž¥î²-ã°Ð´·¬Š„oXÇæ"pÌ/Jw–²«çoåàõ˜î&ÞüÙwä3o£4tb,SJâ0¨Àï+RJtIœ]†®¦ßcÂóÀ}¶ñÕÍ[º\qLåÎcò¾¦ÆA•Y¥ñb¢-`ZöTu·çÀJÌ*}—#¦aÎäßàîHÅC¢}´57‹{oˆ7¬œ¹ç‚çJï®5ž"ß «ƒÎŠŒ”*¾íè÷רbß§&,3aW—ð*| Xæ€%v†ú×0¡JöæÃ-ú7$S“Pï-j<ÅÅ$ ŸFý({QÅ/þåñ•Ñ4í¥Tw—F¢ì|ùGgÄV¦{Eûœ.·ÐÚÏ—RæÁ ýÞoª&ßïGðª`"(E’Èg˜Í×IÖì@nEœ=d‡?dw"—©>å±'J–Acff©©¤.©ûš’z¯!’tWóúõbqš´šõ×('ÙÃýc4`C@æ¡‹{œëañ‰G¥L°Õ…{|*É ‘#2Rm¾39ohŠ\Yì³7(?ç+Û¼.Òë‹äTà »+’.Ü›ËèÎP}áÀs õièbà#iÆ_(Ùòhüî{þá:+ƒËîõ[".ˆ^Ç¢$[tP|¦MV¤^zï3æ 9(ÆÛ:7>\ ´¼\tž3eÏòÕZxó[|¦}ê— mNË~¯pmÜpîqXã1ý¢)ÐíEƒ}Ù˜ %„¤æve<×£¢L®øÔÕÆIÌØ¯¾ÐÖxÓ)²ÅDª{¸wJ†Sð­úÆ0Ú“.ù>6I`¦ú9€“ö^ãâùŒjä׌Wœgй¾"Õ†õ÷Ö§a°‹zðM渮£!ý&+* Y§È±ÁêÏ™¯ÅŽBs‚—¼í5ñozƒŠ,+"†YfóÚüŽ ãÈÌ­àsr›ùW/"É—³Ö5+/¾ ß++zÑß„ [Ó•>OÎæŠ{xƒX5!½Áº'­ÔÏDÆ,µ‹´Œ,ýž/ìÿþ”4†_„má±Ñâ ~cyb>ÝèEÚÁ(gïYBu·I_9«gûMõê¦F~Q›WñËxÄ@ÝõlŠ™­‚!gÀÆôŠiß`3í@OÁV¢†:ó¹\jrzc¶i#)©‹¨ÃM×ÛÃ\Ñ<»±P<FøBaˆ}~¶\‹‚ô,Ÿ—ÑR^ìEX:·¶&ù·wp)ÜcÛçW&Âï «Í]MåJÆ9AÁRÔß²lö«&è/ ×ËòùÀFx‘y0çªGá^p;;iW{T²’ïÅ¡f„DD×|/ºFÓ¹'ðCç1[xÞWMnTÖæ[‘Þe!ò«ø'³7é×ë˜DÐ{ ~ç@9®aíØf‚Ó•»¤ a Ä˨  ]f×;,žœ¸”õ^‹/>2ó·Gx0•qµÍ‚ÞÆ“îe‰¸Ç–ĺóÉO æ¾…¬ÕeöìvO´få9æ<åÈòèRC¹8ÜžÚÛ·‘Yí¨Œ”Zí&-²ËÏû#„t°endstream endobj 898 0 obj << /Filter /FlateDecode /Length1 1402 /Length2 6291 /Length3 0 /Length 7256 >> stream xÚuTÓû6-Ni atn¤‘–IÛ€ l°îîi%¤‘éiPBAîÆÿŒçyþ¿ç}Ïyß³s¶ï羯»>÷u}ÇάgȯEÚÀî#~! 4PYÇÐL(((°³Á1ް¿f» …†#Òÿ  Œ‚1X› ƒÅé @MWG PH\ZHBZP(,((õ/ % T»Á¡@P‰€¡ìÊHgOÜ΃-ó¯G „($%%Á÷;¨èCÁ!`PŒ±‡9a+BÀŽ@C$Ãxþ#—¬=ã,- àîî;¡AH”7ÐޱÀÐ0” ü50ðØ ög2€hdGÿ±"m1î` ˆ58Â!0ኀÂP@lq ¡†6P׆øÖþàþ½ HèßéþFÿJGüC H'g0ÂްÚÂa@ÝûÚ Œ†F@ÁŽh$6ì†;‚m°€ßƒ÷õ`ì€ÇCCPpg „†;þQàWì-«" ÊH''ƒüêOŽ‚A°×î)ðg³¤;ÂûïÁŽ€Úþêê,`Œ€»¸Â4TþB°&Àlv0 PLPJ\\T sÂ< ö¿Òy:Ã~;…~™±øz;#¶Ø!`¾p[öà»Á€”+Ì×û;þy ¡ph³ƒ#ÿÉŽ5Ãlÿœ±ËGÁ=€‚Xî }þýd…¥‰pôüü÷~4LuµtTyÿLüoŸ’ÒèÍ/"ä— IŠ%$¤€¾ÿL£†ÿmCð?±[$PêO·ØkúWÇn ÀõWÜÀæz€Ä²äúÉ-Å!Ø/¡ÿoªÿù¿1üW–ÿÉÿ»¡û®ŽŽ¿Ý\¿ýÿ‡ìwôü À’Öƒ€+ÄCMaD«ƒÂ]þÛ«c… ˆ°Ã’™_H$(úÇG߇{À zp ÄþeþØIÍŽ€é!Ñð_ïl” àù°ú‚8`ßh,/»`Xùü³®*‚„þÒ™°˜8ŒB=‚X: c÷í-„$æñ›É@‰Á†±3úm‘(À¯µ ±`.®Ø`]¿­b¢@Ìî÷;íFÛÿöü£0Ä… ð7?°]ýëü[í0˜ ˜ž@BdBž¼ i<©P¤wçÿ>Hôu¡92Á¬+B Ã1ùÒÛ^ûZ†Ú˜‹ÒchéþT½©7a£>ô<['C–mYs)ê/08ª]‹J;ü9}§ûmv0F(’ÎnX"5r‘lû©þ]ÒÇœÏL'.B%ÚEVÊ–ó/›Ñ+æRë@'àë£ÛÌ)ô˜XÅìæu¼h3f¶Ì3ËÛqä(‹4W# ãáK¼hxܱRc í©ç¢E\ú‡ÙÙÞ¬î®T‘½\­ŽrñÒ0 ZJ/MæìþÄZª§Yšuh%±#å7É ,´¯œÂ8æðÁ]ÓRõ­k0mÖµØí§÷ëî3(Ð[4OiòC}mvºÞÎê^w$jÜŒÈ$žÍnk®qÕ}W4‹Çùô‰êäÇ5îϋښ0<•ëQ&%&É¡“ùÉ|W· u˜ìßê¿‘r¯[`aœÅ¼š;7Yì*•šñs#¾oõà|2¿¿ü¯‘Ž©!ÏöP^åëÛ.¸ 3²$õ“'¼s¯bH¹¯Ì¢ç? ó­¿ ì¨ôô·kW$/hçR"Êz€ñŠÅ{û´à(¿[pèõ-$W½Ý~]Œ‰ck·;°Ä?Š0È>A¸KNVrK¯TøpìÃ{õ—ûÊý•_û1U¯ÑW…}/Ø}0îã%BŒ‡²fbÈâ¦O©âñT×ÉßX¸î ^å öLFì5ñ¤D³H|/ÃðÒñ9Õ¸6œ¢–%²¦ -‚œ˜­ï%ÅÈ­Cª£,A÷Xn|þäÜP6µ¢Îxq)’Zû%D'?²(§mj!KVñÊlsd6n3YU!ÈLø8)MÀ}9‚Á»ö‰ù]"V2 öUî‡WñLÐÕ¦ØS§ ±H¯‚½¡Ûtù¢Ò I4dGÃa⇠â m%ñ&*ý´CÓ²ç. m·£8ãŽ)œüß8Jx Ú±Uý”Q7î:ö‘ñ°§ŠŽñf Yp*¹›áIډܴ²~üñæP*YÀ:bguy6ÏàªC}½€N&» (*;d#AQZf,ùäÒ”DH¬õº€½=¡°ñkûc±c„RÍjTP zFûÚgß‚6Eov?x¥ÁDm±—<(Wó3Y¥¬ûJà.B*‹ç‰NšÀBöÖ;VV˜5t~޾ë©÷sMߢgÄ~9ä%ÓÏ™ Wœ‹WBtŠˆÄŒ]ùpä"á¸vÆ öb0eý<à©Ö)Ž~8ê†ù—(Ö‹žþu¯î3£ŽfÙpOj+¥©œZó~Á‡Œø.læÍƒ'LÙ♂Âêüø…7n×Õ2„xâñÚPß/ÃçB8ƒð­›Ä'†Mû‡Z’É7I,ÍœvÍ ä_y6d0«Å ì9‰dZ3‡6? kÞZà«ãI©ÑUû­.:ñZüqJµi3nA²Œ×Ĭ˜æ{ܲ8–] t¶^­y°í|^䢤$'圊<™¡âŒ ŸÌô'{˜xÚëPí“¿¬†C ŸÜ­W°öù²¢S•^4¢Å:ž´iµ~4-zþÞOöYóqîÇQrŽÈ|Ÿ4ÍÕ&îGŽîálLß·sLž‘•Ÿˆß°¥¼ëº÷åÅs‚ üÅEžøoßoÂKµUQ€Nù %—$7LÓÈNlÒ ”á­ã £}Öà†Iò’Ó&Á¥äºK»üj«ïìÞwí(š ÓÌ^Ð~ +‹|ÃϤ0Íz×ßóuOåå›I>Ž·öÌÝÓÁo"c¦Fè6]~Z+ ô5Zç$Š‹¯ý$Lú?~ìJQJö8&ë#ÐQe8_ʧó¬@¦¿“Îb!cQYÊP8±îíg´sâ4¤›*h,=ÑwG|Í‹üÕö£iêŸ|9 \ÚXšK58 d*/Ûyç´Ãÿöm·Õzøk„ipÐHÞÒ+1ŽÆ[â,—?'Ÿ®©L– ¾>ž­4Û}AÎÖ=Õ7S–½§B-ç>mpØ`~ŸMù]²s±M]8#Í}ÃòRU|Pœõ{{¡]£ßI6›ïŒø…š¾Ä©KÒ¨U+¤“ˆ;q~¬=˜ëê†Ù¡»Â·Žf{‹Nã¤îú¦ë¬a-!G7l éuîffÐüݺÕO£¦¡u¢H!CD}©ŠsíAløîòw¶*"©ylgoJâÈJuÛ‰jV rc ªÂ·f&42­j –zZx{:´Ól¥¯ç ¡¯Óë6‹ÁMÚ³}ø—”¶²æ¤Ig÷“`Yêa´œGú·ï<‘²lww™|ñb–ìÅÈÑÒ‘ Ì=1”aœ¾£š&g\d¹ÉmÐÁ&Ôš½(ºù¢,ôUYªtûC×˱¥âŠåÖw^5÷YfX¨_qŽšˆðÿp†·ðó¥\ñíVY…ѧD r-È ¹é1r;æ3Dí9S kPßÕºÌQâœqW î¦ \‡JÒH^> Œ±8ß*Ú×~ò‰kuËȆ V–¢×>êÔ͵ý¶!UÖøÜ #™µÌl̾ÑF*Sûœ£Ã䟈5Ù; K꺎Ô@‹Ü*¥îÒÌ u×VUÓßRÚLÞ¨Dó½=†H$…yNéÑQL'¤ƒÎ7ë§è¾àbŒî¿"Íñ8ŠvhsÒëKœBÜv…Oiˆ­½ß%–Ê.“øÜµ[¥]×z8ˆ,tÝœŒÊ«ðÿñÊœö&ï0%ºi!ý*È €9Y3÷@°Ï"” y®Ôi¢…oœIlTÚ¾ìÜjVûú¶Ùyt„cíOžHáëãµ£š_`aÐÆuqå‘9®Ä2óã³m©ñG d´f.r/ýi=: î d'¯æ¦ê~‘Ì*/b$b‘ËøvvPRdhËÿV7€“â‡Y¦ÁŨéEYÕ!3}öƈ‘À9sž_·‹káÃ.þfWµçõ±c˜¯/¶á»|mpäÃj©]^°ÚRèH? ““0þ`vó‡hgè,YP½æÛ &³w~#:±å1åŠ:€ þH¦|øñϬҒ0UH<óyêí’¯OÅõÈÖ§©tXËr$éÒý†MÛPÕ-­'v®Ô®ÊªÐŽá²-#®9Õ´3øÒºýµ8ê9‘Ùm$«g=åb›Mlü½U\C¹"ç© ÕÅü(F2ÑÄϱòXÈ<ÿ¶²£>(>{aWzñÚè,ŸÑwit3Üs Ñqžý*1Aö[t]ŽÆ|Þ̽t}äÐPøh¡êYûgÌ"Ob‰•Ýã~_…—z‚„ñEFÁ×n&—JÚ%\âIãF–j&Þò«ÌJ䞎 âUNkqÞbþ1ñx/ åT'5Ür¥.O¹K'ÐvÕh«vh?¹Ø‘P™­GBO@uõÅ+_v(D½%1#ÿÈDô¬ß´ª‡`¦4Ï­ KW¨0>k¬Ôq øÄûÒnÿkøÑ“ªe;}eœg„ùL¸å×B¯ k$Þpب¬qó7šÑÒQYFë\cìÞe?|¿”DKí´&éƒwj˚ňêaf’µ=ßæ…,/†ƒœAÃx¹o"gå¾Ó|Íš¥t‘£#WÅ+7jʱhâ’- aëä„uõ,«yš)Þs‰xó8[BË(B~ÛzºØG÷˜kIT˜iñÐAÊyWõí=]ø¼@§¯äJ–¸–©u„¸[ÑŽ"úÛ2ÝÄHŠ@qG}oAZ5½G_¨žƒÂ–Š´ß'-B†G@ñlíØtäÇxR}’%¯>6íˆ7.¾jÆQ©v‹ˆÞ ÀBÝùêáWU£MÙí~·ó{J/S¨_^زž,ñû¹ô…ã,WùÙ¾}n=ª#«þÕ×6™ïÊš ßi;Ä¥ÿ:ÙÕUt@m¤ä<¾D¢= $ÄhUÈFµt%ÏÊØ7u,mºçV?w5óeÔÀVo0»º£S¼‹(ÐÇL)ÑeÓf»ÛÞðª-àäّ٫¤±×T)ÞÇI|&Ìò‰Wðn eÖæÓ¹ôüÉbƒ•%YR÷±Æ>,n=8—F›Ã€«Ÿ©NW ×hî_K}Q?X_®N1qœYK®¢ò¥ªKþ]ZAõK76¦†EüNšC‹‚©¥¯êcf#t–^z?Ã@ðºàD®ºäó ç>‚3$(+vm|û*òó\¤2'V‘Üh|«ÜÚ3UÚéiÌëþAf”4~ùõ°6T˜QÅYCº(Õ1Ã#VøÙ¥›™Ò݇2žd»u9Ü”5ZœéÏÇ»õ“:JZß²×g†d1â³q°Hù@®>ׇ$l^3"wQU£§Œ7gW: æn!#g_Ø_þ®r땼ï°9áõê#¹®לGAâïìø®/Ö×ë;wõÓñW‚>„:åI:å½½–’>oyW–ø¸o›©çṪV'Í¥ä$ˆ°Š5h‡ )ŒYMã†!ITMA ºOÙðP/ˆ¾T>/oéãguÞîØ(KÕ,¢’¯¨2WóNý5Kû<ÌÉ/ji-;k›³Frü„˜õiRƒ£»wò½a SdWVN0þsÇ¡B7_ KûÑeäÍÛäèMô=J¥Õð6©{WDà|èi¡Çb“ˆ$( ŸCµ;¥¢ÑÏü*À0h¸Q_¹©Pÿè!x¯†å"'1q*`ÀGJRÔä}Çžvqld~‚ )S¨ëéyÝá#aƒ«‹þÇð†àü¹ B»Ý — OçHÝëµ–ÜWgQ!—G–hSQë`ãÒ“·âù)Óý!Qa)ë ÙŠt~¤Z‰ aCºkÊçA< ikÁ%Üó¾ÕnÖÞwy]í-ÙÏëƒG=VHå`0³Ðõ¬0ï6v]ÕãŰ„UçC>$5B<¢_®ùÖÎm_B‚b*ë}—f2g“ÚKcJyÏõ¸ž^CÕ‘~\T+ñÖCdþÍ0± Í®nÜ"­‰èx) þîÇ‹N¶\£71WàªaŒëîÁmö}1'%(åÐtòY¼T‰8„3ÕdM†ÿgéÇžäS~8µ¬uûŠÍm]õžŠ Eº„¼w=Æ˅æß"ÖéEмW÷÷ä;/èEqš“'³¥ív‰Oä"ɶîU\el8Íç2å ô'n•†öùó‹KÐBç*Ï9ê´ÀY]ºìb«aöCa-›¼šÒ ’«ãøh¨jÑ|DPou¢™@–²Ý‘7]¼¼æ¤äélbô6ÑwLÛÁ³ÆÏlâï>›oG+5I™Á?Nî Ýк…æ˜o­»l^’ ÷üø!ÆŠ¶ÕŒ)ŒóºÄa/?y«›³î5ýc€%سøóÐfÕê3¥ÒT™û‘—´J‹GÍï™~ŠÊµf[Ÿ»ó†¥r3³T©QÉ€yBB“F Z™VséÏ9vË ¦¹fõѯªó™:Ï€ ¥Åª‡H9²k"—?õ ãÇ7CO,>Ýqtð£*aN`!\û˜x‚+áL3&æò òùNŸ ;îY1àt²ù‘®ÑÒᤠ:ÊSâo@â¤^¬Dè'<#3Ì\½c¾¥1¬êçnqAû^¾qå„äãyêÏ“M®VpN 1]w?Œò˜y§² F{¿AH#É€ÔµpýŸç09/ fËgÓ%Œ”_'lXû½u6Våm @p¶ÕäÈEöÞ‹ç…O.;b2Œw’Øò˜ø| XI˼[f©¼ùºCµ;„ª·5LtL… Ip5—ãm}îJ¿Öè$W¢à¹3E¨Ö&Ì¡U›åÃg²ôíJMª¼,·è¤ MÔ²µ2òòœîsLýÜxˆ´]Í[ËqÇ4ÆùrÆTz¨‹¨²6#BdçÁ“™5í„Ù𱇯sF–ÃËÛ¬Nçû}&õÑ›uÜþÈ$ßô¥]Þ/îV·ëh(¦o¸–—¼,¬ÈÈ*â™—ôÎn** o߬@c˜òW‡|‰©{4'IåKŸÌ‘ü„ΕŸaEÓ~i²7¹­à. éÕšhÒ{=2®¬¹>ÐnøéÞ9MõÕ÷=˜r3ãòÓ¶VÚûVš¾³úÚFë7ůY*¿ï;àZ…ö¤Û°b’ñ?쬽‘çtÊ ä„a UEÜ»Z´Ó¢%D‚¡Ú-Zœ® ûxߨÜvëʼn δ­p«ñ“¤üäY|Ùé+$¸åGRŠ`QÚÑü¼© _Ï{ç¦÷Jæ]i~?#bÌ$;`µ[Éš¡áhq}Ž.4Ó@GÄ·ûÇŠ¡¸ ·X FŒDÊ‹¥3µLÃ}÷%Ûp+tE¤šy»Ñˆ%±Üâ™u«…Vo.ØìÉ_ üÖ³IËÃ&$(ÿÀWõñ©Ž›ø„éÑø»ÚoË»¨û2æß¥ TÉJÝ Bʾïôˆ=|zsíN1NoÛ×ê»z Œ¿·Ö´º´‰_—S}Ì3WzvÇïp¤©/| ù£†„Ukz] Ï9&îuUÍÓ@ Eóì­ôÕ­l—“I œäí\Z®’“ µØ$B¢îöÓzºÈdçìbºÃÙ䵫Êm*}GÜ»‡M\&Á{5Ãþœ_ôžÝ < ¹?ª®Mí{>`©HGêZ¼“@,+cºÃŸyáÅ -ð« .U#çöðøœý4ÆØ¢ƒÊ3:p$¤ŒžÓ¢é|É©«¿~¦¿ÒçëC=Õpo›¤¾‡HpkbϬّòݓܕ½›{÷Äœ¾8ÛŒ§ê¨åx„Vøìi–>©_ÝÃmÉ.[!$Yµ(?-¹éº_Ìàg=–ϼBÕ±8Þ³¼H |0‡§Ò¬´Z¼üú|Thž‘d%ÚwèvÔÍß\à׿¼÷E÷µæ<ï¹1¡ŠÃxsÍûDü–ª ÜÆ %EÑ“‰æŽZYëtZÊ­¤õõ¢­@ZÏÉMˆï’øø´~‘á Æã¥Èãðÿ“ÑgìŸê¡ÛŒ£·G¥GÊÅ4¼xg gÿmAÍü †M£}™€²Ÿ~™Ìã¦]|Yé.÷oðÎi‹oœï;·ÉÌkÉটSgÏl†3Z[y¤åc‰yºÚZ•¼Æð¥»iܸ_ÛÛgy§Tœcñ™ŸûÍ<£….tÌßL.q|‘éx6›Ïⶪ)ìqú¼fgpEñt™ØÇtuÕ“:/¢uŒÖ&éŠFî•gÉ—OCÕ€¤ÎÈU/.·ZS=_­($ 0KNa˜›HþóbqÐÃŒíæK_ŸuËç§Læfd´g‹+×-22ÉI %à¹ß&¶R±WöIÇKS:öTCEó„Ð êT†×®¸eÊò­x+Ì>¡›±1•<½ê?bWoZ¬º‹z \±H±&™Í–µl—Á]vëTëÅKê±Þc²ªLÇ® mQDD#eep~!îxÈ‹÷;TivNŒ,.äõ'¡ ša^„ …w]^Ùµ[[ÅÏ$–kõ(AàXSÚ½¼]»Mù=û3*-¸üã,&'wý…c¯b©(¶üƒmÝXý1*ö“?ç[ªÍßo~öIHÛíµ„ä[Óþ‚õúÞ"ë*ñ Ð$Ÿ Õ…iÓe”«kªdI"wÓI°›íð•àc>æÌO9ïÚ¦¬}pwãáÕw;}½^,pkHAñâ.øS5gü3Šã[?ŠÝub\3Á"êdJñº Sš¢4š[8]x4ÀŒBCY.žá û !'Å|¤ÒkðöŸ endstream endobj 899 0 obj << /Filter /FlateDecode /Length 1989 >> stream xÚ½XKoä6¾Ï¯0&s·Â÷c,° ìö/‹$¹›m [ ImÇÿ~«XE9šqvÄ€!±X/V}UEõ¿nß}÷I»+ÎjÏ<¿º=^qnkæÝ••ªfB]Ý®~©ºþ9 êz§¹­.×¼:ŸÃÀ¯w‚XãB\ï¤ái!aG;E uýÛí®vJG­;.k­¯pÌ ¿ F å¤õ9\)ç¼ÚD¥ä³'R[´µè1ÖCÅÚž.ÊÒpÇ,W‹'Žk©O¤rŒ¹ÂéŒçÛžˆì‰Á*´F/žͼ^{Aá²ðDBÜ<Ïžx­E3€„ƺ[<Nz»í‰œ=`?p*{¢­Z­=A»®ðÄÆ”œM~bñÄ )\é àùs1Q¹kp´Å}¶0îUL¤¶PàÄ2<[<1Nª"&Ö{iüR6r]}£¯È9§¶¶±òç“#ÆÖFÙu\F¬¾Te*Õhœ@<¶ F Q.dÉ–FΖê\šè6–¦6PåEö 9ﳫÚscTyR =Έeîpg ³Y÷ØÚ°}±gëÆjp±¨l¡˜Ë“@;“+:¡3°mlaÝ c]V ”B71_,ÁÙ:ðÅ¢š…}Ù:؆†PX×V ÉJëΉ¥S †FÃbbE1+¬:î¹(Z‰ü¹ ! íMyt%-t—Ÿà)±£qc>×UÑ^Ѻ¢fB¡èœV}³B"%/­+ï“@´®0ðnÛÖõßi]zT±vá2ߨpÂÍ7¶å’&Ë»\*Ÿ-5EùPï„òX m-´ñÌ/;P©Lîj jßB›ÞÂ_4Ç™ ]eÑ íCg%ÍN•« ƒz-ßÀ=Œ·è´2…jÅ6¥jÁ”àË Tlkøg ¨¶xë󒆩֒{µŠ‡àP¯"çV)a4Óo@ÖZôúÒRB0µab¥êC‰|0((¸3±7ðøWU÷I®¾ð:ß sVoàÆñ¯†0^º ßyuꯅ­ži±ïO¸ššö4¥?u/$D6¤Ÿ®ê[àuÕ4’eíWß-ÞÕ%ð€.{ÄcXÉcjog†_á&ŸN`×ß?µæzæb[¦t­´š9>n)‘5“Ù½¨•ŽÆÕ§öþ2¤€ÉÏ…§¡ýs×§pöÇäãú3N:¸IûÙÂyâ[^pƒ×ñÅ Š™(Yv0 µkH,¯%³ÄúÂzñ+Óì<NnˆÖzù{dÀ‚Nû2=Uzbïž–ÝóZ\,šïš»ÕÞ{Øûoh†‘–c{Úz†ÀéšÓôþf« ¾M ð%i5YëOC8´û©…ØGúyèïš»¶k§6Œï“3ûðûJ jIÏG÷`:œ6âðþŸ]ûH°=ÑÆÛqk7D‡úˆôŸ~^;®³ßÊh^ýUQêçÐ5ç1ñ÷Q¡™èµ9Na(¤¶#F–£.8â政Rgªçvzè/S> fÿ?×4 lå2`ª‚©ŸòøœÒÆt™ú¡m:ZÚqjO÷—¾Úªñ!ŒD†¼Bñ„‰ú ´ŽN³ž!$MçÒJU6Þ ÉC ‹Õ¯Ìß÷Ô‘¢Cò±K/˜h ¾ˆëF4_Сþrºa,jHß1 !‚Xh“=ƒ–wƒ†XuDµÈùü€'m÷¸ùHñ€$ùÐàâ)StÕtCh/´Ø7ÝþÒÁwíÖSÔ–8WhOvc@p3;Ð$æ%xPEX k(l‚Ô} ÊŒß÷à ‘Û)†¦àËYȦm¥¡ui“8Šžàb™šdZ1l®BV·×póé“À6Tz?ŵÏÇG…‚­ÜE—$w ðÑŒõ‰o=Jˆ¥IOJZ×!ðÇ¥­’ÆœÃL™’º!œ Ø ŽîAÿ0ÑV¬“Ò¯9Õp¾1!Ð4§{‚5Jð°qì&Ù3?]G]B;qÅ”"§6‰¿Hžã-~5§ð|h¦f«(ž63F®¨÷84çǰ=¥8þ\éÌæ”zâÃ4€4…Hú~—æÄc³ÜEF5´Y•ÑÛ7´±ïÏ/y«ˆ8ßw|œÛc,ï8æ1…âeéq¤B®"Ï´•„ä†oíR~¹áõoDÿ&ýX;·èܸkFh4‘ú§zèÆ4Ž+^;÷#pgv˜ü–kâ¾½%ñ“{ÖÙá_%ulö00´Ñ0Ü<>HoºðºñöQÜÀÄÇ×HÁ1†¼áîq’ÈXNªmX@©'õ ^Ì#6^:Þ/©$‡LÙk¤ ß­ 0ëkçfUüüz÷ïÛwÿV)fÝendstream endobj 900 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-pt2plot2do.pdf) /PTEX.InfoDict 678 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 680 0 R >> /ExtGState << >> /Font << /F2 679 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 11894 >> stream xœíO¯íÖqåçïSp(ék’›‡±ÑÀ@‚Ø4 û~†üäè©ã¯ß‡U›çT­UUWF:£ôÀN~Ö¹º÷›{ןU‹Óð«aþ4üû‡_?þóó/¿ù‡_ ¿üúÃø6Žã`ÿûë_þÓãÝ×á¯~û»aþða~õøÏŸ>L׆üpÌoû2ìímY†?mÛ߯£ãwÃð5üs¥m{›û?žÚø6µç?ïh?°ïoëüú€¢ùÀ½‹]åú§ÖÞÚëŸw´8ÛÛ¼¾> h>0¯ímz} £ù@›ÚÛ¸=?ÐÑ~@ÿèçÌw°×Ç\”ÿa®Õ2½íÛ°­oÓ(×çñ?FW·üéi^/Ðcýã‡<Àúãáš*|^–·ãþñpi”?ÞÆåmŸûûoËÛÖá×¥s‹çÃ2ÊGûê¹ñ¾Qþ6~÷áwmÒÿé-fÚ§·ó±æŽþý~ûÕÿþÙ0=v¯>~û×á˧Ͽÿ8üøÃã{üOß~þò—ï¾ýüãÏ~7|ó«Ÿx&ù‹§m~;V¹ÿüÃÇ?|úýŸ¾ÿ<üå‡ïÿõÛýôݧ?}ür_–Ç×ì¥iË|ýmóy^ç‡>Û/½­Óã7òß˴问ϮÇ5æg—¿/ÏÛB4Ï9µ5§åÈi›rzžš{B›|³”ž'm@íÌisÚÖœö#£ÇÓÑršÏœ–9§uÍi;r:¦œÎ%£ùmsZ¶œö9§cÍèqL9ÍKNmÏÉlEDÇ™Ñò6Î9MkNó‘Ó2å´.9m{NǘÓÙ2Z¯c5¥6ç´¬9­GNû”Ó±d´]'uJf—"Ú—œìŽâiw; ’ÝQæ-'»Û Ù]éœ2:^;{@ÓžSsZZNÛ™Ó1çt®&•bš§œÚ’Ó²ç´9í-¡ýqZ9­SNÛ’Ó¾çt޹“„hÚr2§ ‘ÙmˆÌnCtŒ9-£ùm:s2» ‘ÙmˆÌnCtî=N’–SÛrZΜ¶9£ÇI2å4-9Í{NÛ–Ó9gôØõל–%§uÏh³Q%‘Ù¡‰LTIdžT"û¤"[Nç™Ñîžp$û4z:ÜÓˆdŸF$û4"™ÈD€D&’:m$GÔZN&Ê#ZÏœL”çéxìŠ-£ÉFHDf—"2;ÐlW9Q›r2«œhs:·Œš}:ˆÌÓAdž"Í-6b!2 ‘‰XˆLÄ´ÚȃÈDDë–“‰ €6A™]ƒÈì @»ÍBˆÖ1'»’=6› 2Ù‘]åžN{R™“’èX:Gm™“’ÈœxDÇ‘ÑdO<¢eÌim9™h¶«ŽÈD¿@ÍF£@‹=-ˆÖ)'™Shµ' ‘9IˆÌiAd*@§jÏÉœD¦ ´ÛŒè°Ñ~ftÚÈìÞDGKhG» N6Y Ðl›„Í^,ÂÅn;„«Ý$4%ˆ±Â³å¸Ù¢A€ÓYázTh¶¡MO¸Ûí†ð°‡^€û‘ãi¢9Åi´‰h€æ8 е„³-õ6wSÍQ@¸Ù‡&@!Σ *4¡#áä–7£Ù4E<ÂÙ=Œæ@%lv›ðÜr\Ý2CÜìáB¸»¥‚xØ‚f€îëžn+l£[ Œ¦€G8ÙT9@ûH"Îv‹Ðî„òÿhoâã¦ÌšC—p³©áá0£½)ˆ§ ‚\Æ ·-Åe¼ã)N¶YC8»ŒØl O¸ÚÒ=áæ ÄÝ"ˆ‡[HŒÇ‘£¿tŒ¦íà~¤¸N6 !\ÜÆˆ¸Ù2O€ËX¡½Ýˆ»»Ýˆ‡-—ž69 Ð}}Bûàn£ Q Wn!îÂ2š =ÀóÌþHW™õÌq¾ä)®6å°­9î¶ )ø¶Cxº ŠÑ>°Œë˜¢•J¸¹£œÑý«›ð"^©ë’ãäF“îîxò8®=M8ّеM4·Œ°ÙrC€&H t­GB×Ô#tí¹=G×2#tMÄɵO]“„pµ¡â#45‹ŸÐ•ì7÷G"º2 bsÅ–M@ 9Ú]é„ÐA‚ý‚ˆ®HBØlIqmá"Àù̱Ùðpc;S|@ç‘£KLOº î.è%ÜÜDÜÝ¥Câ™çàüzØl¯"ÀõµÉ¸½6¨×æàùÚ·ñµ©8½6äç×f`{šC$Àíu¸¿¯åà ðxšž¯—q—‹£‡u€Óð<蜇g \ 04ÁIŠ­ADYH(VªåÒi0–¢rÊ…Õ 0@¹°@¦(Á'ã1vÔK‡(—]ƒÞ%`PnŠÛ¶ŽºQÄ(A~€&APnŠ&ÊMÑÄ$ÁžÔ¸Ï„¨Àqðž‰X€×MéI\Š’2žãðLS”Ä3Àë–õ¤µÀy‰pžÉrŠG¿eˆmx&é.Ã3ÁOqí‡â:< )JQ"@¹ÝZÐÈP‹!ÊíÖBJz¤"󀓢”Å …£ ×çiQdþÏ‚U×6Â(‹A e)J‘-E)Ð8Ïâ^Ø)@YHZTLQ ’ÊBZž_?ÁmpíØÿÈ5dbÜ:^Á £,-ü¦(Eãe©hÁ9E)V(KE Ý)J Ã8ÉRÑ{†Zœpꨗ.ÃiÉQ Χ)GM.e©h¤ÀiŽP–Š6_ \–¥éàÚqœrœúBBÜ:¶-Gir¸w\Öµ¹–âó¦÷-BYfÚdœe!i31ŵ/`DY*ÚÄ,Po¢,mž8­ÊRѦmmpé¨ 8Fi4¨#¢,mp8®ÊRÑÆzã–£4ô”¥¢b€ŽÛXa_*ª€!À³ãºåxôc"þÌ<6Y„*ØP–™Š= <– ×#¹£"êMA”E¨Â˜õÊP·Ä¥£>1.}y#Ê"TQŠ"@ pë8Ž9Šð)AÕL1ííµJIŸ kù©¶+%Ýá#Úûît-<Õ ¥Ô¯UHãδ\ËUµr)­k@ÓpkóRš¶Œ–~æÍí!LijíYLH´ŽL×òSdJm èZzªÉLIÏö˜–1 m¸µ£ =ÒŒIw }¸5®)Mc@תSMmJzÄÔæ€®U§Úß”tð$åDÕ'$å”Ö1 i¸5Ñ ‰–šin 6SnívB¢ùfZ†[+ž’®:O’È©6IþêåÎy<Íí…OiÞjí½OH4ûLËpkýSÒ]hîÙ¦kµsëbÚÇ€ŽážHI£# s¸g.ˆ$ñÑ’[JºÊcZ¦€äŽ}%]wEgQRZÏ€ÚpϾ¤ÔZ@ËpÏÚ$$3:LëpÏö0mÃ=”’ž$1M[@ûpÏ.1]wSgž˜Îáž•JHf¬ˆ$õØï!¦½4 ÷,XJútĤOÐ<Ü3k ­6Ë!Z–€ÚpÏÖ%´ôhîY¾”æ= m¸gSÒ Hîtë'^LˉÔËú{»;!Í-£¹÷s€v%­«ÇÔ»ž%­ǤÕK Y‘RxMI»a1m;“´t–6%­JMJÚ«ò4÷ß =’ˆÆ^Ú´4öo«Ý¢þÉ+:Ìh˜ô¯–Yè˜t†šiîÙk¢Ö?¹ì9µ%§y ¨ÿ†ñÈHfÒS:æ€æážOii9µ1§i¨ ÷ŒBâ ài?µQÔ=2ºô.H÷¿åR`-ÃÓûÀÓñü䥰‰I5_žöþÛÕ£!£KëI´ OOˆ˜ÔK©uº4ë]º¶Œ.¥VFmÎéš½ ºNôîÍ‘Ñ1æ´í9­K@›Ò2å4HÛ“®‰‰Œ®9ƘÔ[…hWºô-]ÐŒ.åiF—‹èÚùºçLFûœÓ²åté¶cRO¢Sé˜VmivŸŒ®y½Œ.%0’Tº×PF—°(&õ6ò´h ´{"etéž2ºv›Œ®%£kGA’JF÷ŠÊèÚQ2ºæ2Z¤¦MÚ§–'©r¼ã¨U9q/—?¿¸¬ÉÞ1D;½š`»J§÷×;´¿ÿîÓül˜×á«Ã§ÏÃÿüéË—Oßþ»áŸóôA»ä_óã_³×·CÓ©‘Ø}ñü…õ½º=ÕmM—ƒ_8´¨ªåW-Ûj¹W‰ ìÃV=–õãì|¿)TÛGµíø Êo^~c³›^µ=ÖÛjµçÛ¸ßðñ0¨Žê¸©Ž) Ùî:ëãÔ¼þP®ŽoÐû   ª0#O| ƒANUaT~Ua›ðlðW…‰Pú`³ K}kƒÛ* Æ€ÙÓ>ÐöA¸Ð}ð^…ù>!°ÉB•V`â““*©ÒŸ*mò –O¾ò4­Jï0ôIb•NVi¨OX}2ë]“Wé2%Ö>é®ÒsŸÈû$ßlq *#`ÁÁ#|¡Â1ªr‡/Œø¢IU^ÉË2¾€ƒÅª ä F¾˜T•|ʯª2W]ó…4_dËËq¾p‡E½ªüç …¾ˆX•}aÒ-«ò&B}‘4/§VeX,ØúbnUö­Êž°ì‹ÎUyÚ²m‘»*‡cáÜÕ}Á‹ñ¾Pï‹øU¹¿jø†‚o6øF„mRTí l|ø¦HÕ>ñß„IÛ5¾±MßÂfQÕVÊÛQ¾q…M-ßðòͰªmæl¾ù–·é|C›}¾蛄U;Ñ7mS²j_b£Ó7A«v©o¬Ú¦«oÈb³Ö7r}“·jûƱm*WíglTû&¶opÛæwÕ&džºo¶çmùª/ Èå^h€"„J®Ê¼ ‚Ä•¬Â 0¼8#—qTòŠxI%7Ée*^Ђb—\ã4^\SÉpP°ãÅ<•ìÇ „¬x¨’Õò$/dò"§\å…S(ªªäW¹lË ¼¼ø«’‰Uò2/DC‘Z%góÂ7#Š«tï‰ïH©çt|µè‚ ¬Å†¤LÝb-r¬’ ¦$­e-Ì'h`ž»þ¦Iq7G^Ä:ίÃt;;Wƒò0Uïfîë}šæ‡Yp Ÿppµ!¹8op>_„ÚDÈÜœ—Cmü.ÞC&Т6«g ï{®è™Žà·Q›s€“‡÷ùöð÷çMÎ%àk®'ÞSÐO¥6_§ïã./ì1Î?ÜeÀ{œiÈ·\m¬ç 8â _¸é€×8ñxŸpñAp po!pò¾D‡w-:ÀÓÀ Ü’¼—8-±¸4'pxBÿ'p‡Bï(p–ò¾SàJžUàh…~Wà†E^Yà¤e}¶À… <ºÀÁËû{Õf`èÖ±i˜w8Æû%ØÿÈûÌqk9ê…M°ß”û ÍPC‚}!Åx/Âç)žø3\í×'Ô‡.ÁþÀf¨{†ºQd¨›L‚}ƒÊP7· ucL°oª9ŽcŽº™g8»/È8m)ö(C=¼2Ôƒ/Á~hf¨n†£[HŒm«pSìF†œdØÜDÝbìU†“ݾ5K°j™¡Ÿ9ÚK‡¨Ao†0gØì† Ý(5ÈÏqŸsÔä"ÃÑ=tï¤&CMˆr×5K°'qj˜cÛsÔÄ3Áž´æ8/šÅOxØ[F¨IzŽËœãj‘ÍK¨E‰ µ ‘`/†dxØÃ:@s¤89jñ'Ãш«ÿ#÷£B³n!!j‘-C-Ð希Î{ŽZTÌprpñ_Ÿq[+´$¢ ™4Á áî!âfCÂÕ=°ˆÍnŒ„ZèÎP‹äŽîvöâ|ŽöÒ1ÚmQ 9Ú Ñ%„«{p§9Gm¾ä¸,9Î6$ÐOˆ.è °m9j“+GP!öæZ†þ¦0š P‚n6p%\ÝFl6T ÐÞ2ÄÙ†=NkŽ“ÿú„ö(g´ QÍ9Ú°7¸s´ bs‹qÜrÔ†~†*Èq+´K° r\·wL0Úe†¸»Gq³ `€ÇRázThF{SU“£=€íVÀh ÄÅ-oDe8Ù4<@› Ž.ÜòØ5S™]‚È<3@ªíÊÈìð@»Ý€6›!™kE4î©V.£uÍÉD¨D¦n´Ø3—ÈÔˆÖ)§vdÔlŒäj$D&+RMfFæl'ZÆœL äj*Df·!š[N¦Bà©kj32'‘Éw{ž™=‚hœ3ÚmµÈäÀDf×ÚlM•ÈœFD& RÍwFæ"2«î©8—fÆS›Ñ­iIUœ1©."¦©etköcR­LóœÓxftÏ$Ä´9­{NªŒi\3ºg5bêz÷–)£{¦$ ç,JLë™Ó²åÔZNó˜Ñ=£Óºæ´Ì9ÍgNÓ–ÓØ2ºgžbjGF÷ŒULÇ–ÓÞrÚÆœÌÓAdž¢ñÌhµ«œhYr2«èžÉ‹iÛrš÷œ¦%§qʨÙÉ ¢åDê¦çldL:SÑ=‹“jKbZÖœTû“QgÝ3ª1cNÛž“ªgbšÏœ¦IæMž3¿ݳ–F•y=gŒcÒÙä˜t¦9&…è9CÓ62©§Ç=³“ÎzǤ3â1élyD÷LzL:Ë“ÎÀǤ³ó1µ1§iÏi\2º½ =Nõ%¹=bR/OK'õ0ˆI½,ݳäöLˆèöZ°´«¤ïéÑ“z;ĤžÝ^ž–NêA“zWĤž1©WFLê±ÑíÍ“zzĤ^ 1­KNË”Ó| mOR¯“˜Æ9£Û[%&õd‰I½\bR˜˜Ô;&¢Ûs&¦}ÎiÙrRoœˆnO˜Ž iíOãíá“zÿĤžAž–NÝk(¤îQÐÓÛÈûÍJÝ)¤î¥R÷` ©{7…Ô=Ÿý#10›¯Ò†nÙí2ûê7¿ûö/_>ßÿ0üáã·?þqøöß~üøÃe"6|ó'õ;½Ä,Çp‰8þ»yˆý„•W­Øj¥WOˆ–ìsV=‘õ“ìŸy¿T;Gµãø½Éï[ùWíŒõŽZíÄù^íüõ‰Q4Õ •ŸlÕ‰XŸ¤þÌõçqurW'~)TF™TM UTyU›í=æbYV©]m\[EÀ+û8ºŠ¸}lîãö*Â÷¹€ÍªŒ¢ÎDª ¦Ê|ªŒ©Ê´ò ­ÊìꌰÊ$« Ôçª>M3Þ*S~'î2ó*£÷¹¿­ T¬5ø:DU±¨*U…¤ª¬ä™ª’SW€ªÊQUqÊ+UU…«®Œùš¯¯å•¸ª‚WWþªŠaUiÌ+”Ue³®ˆæ•Ôª[Wn«ŠoU)®*ÌUe:¯hW•ðª‚^UÞëŠ}Ué¯:Ug!ïHTŒºRuNªŽKÚ©©:¹Ö6׺èRS]ë±ßÑr×:ð÷4ä•þ¼Ö®×º÷Z3_ëík­~­ó¯gêù‚z6¡œk¨g"Þ™§¨g1ê9Žz¤ž©gO깕z楞—©gmê9zƧžzo¶¨˜KªgšÞ™‡ªg©ê9¬z†«žÿªgÇê¹³zf­žw{oV®˜³«gôÞ™ï«gß›+¬fëyÆz²ž£|o³˜ß¬g?ß™­gNß›W­f]Ë9ÙzÆöùÜz¶·ž ®gŠëyäz–¹žƒ~o†º˜¿>ÊÙíwæ¾ë™ñrÞ¼žUgνž‘¯æëëÙü÷æúkO€ÚO ö"¨} j„Ú?¡ö^¨}jχÒ/¢öšxǧ¢ô¸¨ý1ÞñÖ¨}9JOÚä]/‘ʇ¤ö0)ýOjï”w|WJÏ–Úï寘Úg¦ö¨)ýmjoœw|uJOžÚÏç/ ÚG¨ô ªý‹Þñ>*}“jÏ¥Ò¯©özzÇ'ªö˜ªý©jo«w|±JO­Ú«ôòª}ÀÐ4Lq:›zÄ÷O§Üñ¾v?3ýK™»c]ÿžÄÛÙ]Úô*1ïê¯Ü¯1óÚ½Øô17}Á@¿¿ÌÝû¹¯æQÝcûÚ"^»È¢¯Ìˆ'³®™½žý©`Þ»— >SÌ›ºö'2bñïÏ3óªžr}7`î/ºì{IÄâPßw"æÖ]4u‹XÜâû.ÈÔ¡¸Ÿ¸«Ë¥ž×Ïúy9í™w)öX!b]iD¬÷Sãæ­¯'r"V§M‘"ž•%ŠX\§{|Ƽv?Uî"VoK #ŸýY2w‘gK#V÷Sj#Öõ¨1qÄ“ºKDÍÜÔá¸Ção&šX^ŠÒsˆ'“I0Ï}½iq3NÈOúyɘ»“rÏ "ÞLþq;‡gö±¾±@s?æ.¶ê™cÄâ¹ÛóΈ¥‘ݳֈõmšóF¬>ñš1·S}™{¾±Dº®eW#Òß.aî>Цq±Î³Iö¡sðDòt~hÕ–ÎÝ-}îþ‘mMý“S†HvSõZ´E¬¾D²ÏªѺ·‘´ÅÕÿ€Hÿ2ñM Ò¿Lü€š¶ºÔ§èþíl‚H¯’øBÍúD«Ÿ‘Ü1õ¡ê±‰úWÝ¿áýJÈéF$¥HõÙðtEÞçpûsIV ¾DóË„HJËê#Ôs'õ!Ò¿Z5HúWKÛh×h^}Rˆô Š¿ ‘þ‰»‰tõHƒh|ùÀõøAýcˆôŽ‰ï ‘ä+êWÔKeês´h™Iýqˆ$JR_¢öòã!’Ö£úø5ËÔÿ‡Hâ=õ š5ÓS¿!¢íåSD$™‹úõ׫/‘”_ÕO‰HZÃêÃ4jv§þMDrZªï“§Ë#¦òò‹BZ:Í'Sëÿ–±!õ|÷µBÒ»¢~XžzìÜ}´$«êþ[H­;ÔMiìÿ–qDÚ4çí>aH"èþbžV=™»/ÒÜi9z&Ü}Ð&ãŸæ©ïìOß5OÿoýãËCÚîë „rýôã¿ÿ??: ¹G9\U¼ËBn~,«Ÿl!wÿ5ý%ð—Ç_:Yý%÷·Ãß*ý-ö·ß, ¿lhIùåæ—¢_¦~ ûåí—¾,ü#ã'û¨ùÇQÿøúGÛ?ö~KðÛ…ßJü6ã· ¿=ù­ËokvËóÛ!n•~õ[¬ß~ýÖì·m»¥ûíLø#Ä/þèñÇ’?²üqf: âéO´úc×Éþ¸öG¹?æ}àÃ:ø°Â‡>±¡Šc0Äñá|ØäC*nùṖi>„óá ý|Xˆ!£'}¨éÃP¢úðÕ†¶>ìÅØ‡Ë>”öa¶Á}xîCwÖûß§6Uði¦>ýð©‰O[|JãÓŸ ù4ɧP>½ò©—OËlÊæÓ9Lõ|èSDŸ>úÔÒ§>%õéªOe}škR`ŸSêìÓjŸrûtܧê>÷)¾OÿmiÀ— °¤àË ¾á˾„á˾ôáË"¾dâË)¾ÔâË0¶DãË7XÚñe_òå"¨%A¥ êPP¥r5,¨pQý ªcP;ƒÊÔÝ *çjvPÑ£zT¡V•D¨3Bj”PÁtõM¨~Rm*§PW…ª««ÉBÅ–ê¹Pí…Z0TŠ¡Ž Uf¨AC…ê×P݆Ú7TÆ]ݪêTs‡Š¼«×C5ŸjýÐ €>t ÇèO@÷zÐùp}èšPO:.Ðn ôr Ó} èÙt˜°ÿÝ)ê]Ag ú^Ðs=3è¨Q¿ ºqЫƒNôù  =Bè ºþ"t©7 KèkB×z¢Ð1uýTè¶R/:µÐÇ…./ô€¡CìúÇÐ]¦Þ3t¦¡o ]mèyCGÜõË¡›N½vèÄCŸºø®Ç Ò€z´ Üýd–zEÉË\ñêΫˆíóÎ,õš‚¥Þ“³Ö‹ >\¼±=Ï#Š¥^VðèÎâþÞ€÷£f»1~½K½²`©w–¼Œ5Ï{ÅR¯-xò×yëð¶Öìþ^bÏElã%æÝ¯WâÍÅS̫މ›Ûo™¥ßP°ô+ ýz@Ö~IÉîzìöcbé÷”ìö;bŸ/1¯þy xš+–~YÉËRñìâùˆÝyHìãõˆÛV±ô+K¶ñ±öK †û°W˜¥ß[ðæâmæÕ¯wbéW—ìî'ñìⱈ§µâ ®³‹'vëXô%»ýYõ%»x‹¸ùõð¸U,z‚E/Rò6ÖìÖ²ê]J^·ŠìÖ#ñîŸgâÍå»KÍëQ³;¯v÷‹XŸ%»ó.`·Ÿìž'âÅ?ÄÒ/xrõˆˆ]>C<úxXåzÚ͆Ñ>jˆ"1,Ð#ˆ»Ûd7—2Ú È8î9Š”³Àu­ÐÖŒ¶¬ƒ¸¸CŸÑ–dשÂväØ\²èKIŒ6Fyq6È`\Æ m€†èËOŒvóbœ[…¶p¨òñí¡ÃhS~ÄÃèŒv»açwWŠa´…F»!n®ˆÍh@F›`!ŠN²@{ø1Ú%ÊhÄÅ›ŒvSf´)1£=p›+ç1Úb£Ýêm!QþoûX¡=&mÇhÄÉÎŒîÑ \¦G¿ø=êèW¶$Ïh^ÆÖ*´Á0âáJeŒöxb´e4F{x1ÚËÑ&¸ˆ»;Úíñ„¸¹Ò£ÝdmXÎh· FûX1ÚÇŠq'|2ÚB £-©2ÚÀ•Ñ®Œöhc´‡âè· BÛÆc´"6F·}N­B·AyTÛºíÅhoŒËQ¡ ‰íÖÇhCâÍùŸ08¼Jnês¸ŠÁáo¿úûï>ýÇφy¾ú8|ú<üðñÏŸ¾|ùôýç¿>¹þnøæW—Íᯇÿðó/¿ù‡_ ¿ü:øÕ_ÿòŸÿë¾ýðÛß ãð‡Óð«Çþôa’_ÿàˆØ%’·%"*&éýá×þ/¢¦:endstream endobj 901 0 obj << /Filter /FlateDecode /Length 974 >> stream xÚÍVKoã6¾ûWn 1|‰’œuÝ-zh±¾¹>Ðí*K®ÄMšß!)Ù–V]´‡Â@B ‡ßÌ7rˆ‡áG<c”%±Çc‚§Þî8ûc†D’af5®–v‹tç:ÁãGæýPÏ~…_¿õ˜Ñè÷«Ùã3K=[8#Þjï’!!˜ÇiŠQî­ýçâð¥QAÄõÙ"ˆ8§þ'-wMýßÍ•»ÍS£òb§‹ºê¿ë­Üe¡ Õñ¥6«ŸŸãìÚ,%ƒ«Ö`ëtXr­qÞk,ƒˆ&©§Àˆ¦½âb Š!>«w ƒ0d'¤×Ø×£#…FíU£ª]‘“v• CGMÐk¨ˆf€Æ™ʈ÷!ý6ˆb’ø»R¶ío8ÆU@|õšSX·õ!êTÌöüØæ9ß<œÃJ¢}#jnÕÁ(¸†bž à+i–â §þ<É*G»úÅÙU¯€šÓÐÖdÁ7aYW‡ ÀÛåów?ú86mᡠ݀[Kë- iHïqíá› ¾8Ä!¹pl÷ˆbxˆ…6(;:òƘñÎ ø G«v©Rßá,ÆÑˆnx0jè}?˜Ó‡ör§ë¦KX  vPa©^TÙ.ñ‚†¥Üš¥•À¾M®ÚµU4ônP”ZwøpÜè¢4‡0Uí|\–Â7Q{n\Øì¿/lvOa³û {2ƒ÷TöTÿmasÃÍH3îÇÑ›> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 903 0 obj << /Filter /FlateDecode /Length 2256 >> stream xÚÍYKoäF¾Ï¯htr±n¥Þl’Ã;@ö4X3³€ì–mêVCRÛãüú%‹%©ÔÖø‘Í,Æ«Åb‘_‘¬*’úÇÅ›Þj·â,÷ÌóÕÅõŠs›3ïVVªœ µºØ®>d}µ+Ï6\k–º¾èK>{³7y¶Q\ª¬C®øKŒ¿äÙ§‹­6J-.s­L|½`®êù'ø.bÞ<”Œ¶]äo›ËⲪ«¾*;Ò2wøà T¥}êï0½ëAØèq| ”Áé AÒŒ¿ÈíÒp—f²Ò:oÙè#ÀæÀÊ"ˆÉžRJï9í=¼¿ØÏ§Š!hŸK­£_P¬•MÓ{0¹t_vìÛêæØ‚¹•R™¢GwÛœ ›ÝwôÚ–uqèÊÍu[F¾îØÞUwgZgEM”¹Ÿ¤³ûª¿mŽ=o«®¯öW}Õì‰py¶.+û3øÚÊr>rÝ ¨š–žÅu_¶K–<Ô!5ÈÚ@ìÜ«¥Þ©íÃ9’!0|ꨌX¯Š=ý8v‘Òß–Äö6UÛE‘}[컊Àãû®èÛêóR8 ësn% ¤HÎ%ÐG®Ö¶¼¸ NŒ‰¤{\Q9þ¶ JÄW€©H‹Mµl$ã¹bn-7;KYžžŒ±%y ÅZ½¹Õ–8ÿmàgjE®ÇÇÈ÷Žø”\Ù6R`ƒƒTnxnd E.—´ºÜ³JØ>2=à›+ö¹ñvXÄßa‹›õË"­sÓj5_ò‘Ë•Yì·K‚Ú× Lß®eÅ7eY÷ØhYØžŠ©¸ñOcMøþëÖNeõý–ø¢på\5õŒ¾nËí:Ž}®‹Ëùàoe1äÞ_E£'ûuû'ËY¿§› æÅË+ˆ —WQ¯‡ð<½N¢ëj_vÁ˜_€Õ‚ Ù8&FêÄÊæÔh–Œ†¢}lbŸ0ƒ5Yí²>–¯\‚z&HÔ£ ÁØzÕ =bfÜ€ñ÷¯¶·x&¢Å×Káø„+êþaا ÓÏÅ‘x6ŽÄÿ7Ž"”:˜p.íµ!&ž 1ñ5CìóÛéÒÊ›r¿ÅµaU0¬è<9*×x+ Äwï®ágrhÖ÷0wi öþã0òù÷#ÌÂ;0™ÆŸ:k/Od­ŸßméâÖ}sh«›Û~=[ÝO? 68b-ÜÓã*ßã2_î&’ ; •>é,ŠK`;t†DÊk^ªx’ôW,J´ÊªŽo, '5ÂÕÝt]u‰äº$r‡·,¤jMôÀ\æ3,6¼Ü¢¨¦­þh@Ý_ µpœAÞO@Báu¬#{à@Öž„Çt‚^Žûm IRC8CÁ§Ý’U‹¾/w‡>&I6¬Dz3¬ )jÑõ€ÍH—ýJpxWÂ…;p=±R¶Žmœ‹°Û’¢îëhRö¸0Ë2¥5‰áÙš¥Ì־İíB.ŠI«Z%¼!Úôb>*µÝSé-ØÔ3ñ’üV¤ù-—SÆ a±˜ß+®s)ÔÜy‹$‘>Ñr LwUlŸà¯Ûnûa8d¨@± ¿1¶ÁÏNRlÀH×·ƒœÐX‚,¸Í…ÓÏ9M~§É—;¿ ÜÅ]¡Qn‹ýM(¿]ØUá¹ M‰@Œ9‘ªýuÓîBMA%…0 jH=;±Ãf°>ø `/Gë!v?®šl!RÏ€9ô3𨪠ɭ±(ÑNgoÏÀ_-°¦"aêáH¥ vg‚– ´©ÆžКk’}W•÷DéÃ9„¿~?v‘kØôa8lz˜‚ÅÂ!Ó´p($œñx¤!vLq‡Ë=Ö}u¨««"ž,H0ާ»™È=Ûò.ÄmÛ•[ì˜@áôo\Ôp_Õ5Í?ÔÓѹ’ù®'‹vˆiÁŸ-Ú¡`ô2íî…E»{ºh—/l‡ØÓ¢ý%§ÚâfófdÑ_Ú°N?õ_ê„°Üý-õOwB^rêüi£Î:*±¡”Ë…á'§ØBpƒèÍCˆÿPK~Ú—E–y_)§­D ÝT´ö$%nk5 ‡œ%;õÄüäô@{… ü¦VÍ,†\g;JX89Æ–ˆ –OZ"±ÕÒ–ee%dÔÚ­pûŸÓ„ëaÏ·³ÖŒÈºb»-ý- ˆÉ ;¢„˜’îókš1XµQ6úÓfúòz¸”]w6ÁbÚ2fFiC庂l1^ÚCª}hñ"ØÎ‹ýtÉI Ÿ> /ExtGState << >> /Font << /F2 689 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 18324 >> stream xœ­KÏ4Éuœ÷ó+zI.ø1¯ul/(HذÈ CЂ (XÄ–8²ô÷Ý™§º:#ú5i{ÁË3Óo_ª«2Oeç'?þæ‘¿{üËwûø—G?¿¥öØë·Öµ•o{y”óüÖËã¿}ü·Ç¾ûù¿üë_<þâWßåo)¥Gºý÷¯þâ¿<ÿiOÿîïþþ‘ÿð]~üÍó?¿û.<þów{þ¶×GÝò·cü~àѸáóAO,ßÒþæÃa?€-;¬ øü@SnU1}Ûðù¿[ÛWxîkX¿¥Cðù…lÄ|:lðùG‚Ç·­[qX+°×¯pkŸ/?qߦ|~±‚û·}ž‡Ãm¾Pû–NÅíÛY€%;ܰ‡=[uX7`oŠýÛÙ[wxd྅Çá°žÀót˜çƒŸÿ›Ÿû–¢XyYõñÕì'p\êŠ8Eû·ÞV¾mW|^l|ûñçgÜÆ€a°6`.K–ªø(N`m·lý+ì»ÃÌÚÅôíÜ€ûé°ñÁgr˜çÉ¿KY°ã«šøüÇ1¸íßJS<ÆÉ7±v‡dö1œ¬|ÏÁU0.çç…{:Äeµ;’âóÏì°Ï‹ý9œTÅ>Ó‰¹9Ä¡;¾•®ØÆ<7±nól‡âs@LÀ~:¬|ª=9L xdÅ2N‚‰guˆ“NØ‚™ãù-w‡\6‡øRž§Ì®˜ø¥ž%Ìöæ]±ñ©ò˜L ΂ê‰-9œCÐ{V¬×ƒG¸bÁEw TŒ§:7‡y~Ý(WÌü(û¬ÉaJÀQ@®˜®Rä‚åäÉðü Ýaç›äŠOQŸ¤bËÀçô(ø<ù+pŠÛ¤béÀQ@®¸¡ì9P@*V>Õ( Ó äŠ}LG©X扄ò3ŽrÅ6µ‰£€TœeírÅŠIó@©XùBÛ¦X0( qò£€TL|¡Q@®§÷,$¿nŠÛ ¤b%ŽRqE ÈóÉÃŽrÅ9áM¤âœøŠsJ=P@®¸c²>P"*βö@‰¨8Ë€EàŠ,ŠÀYœ(qY¡TÄ¥±ÛSƒ¥G¸bã¡C¨ˆC‡"pEÞ<±í3q+NÇ( q”y+fÜj(ó>ã(ó>ã(ä7â(äçíáBN±G!·bƒøÄQÈ}ÆQÈ)ÎBý@!·`:Çt8qrŠ…œb&ŽRmŃ¥š"N”jŠóöÿ@©¶âŽ¥’¥Ú ªw‹´saá‰Ï ×à¾ÎYPœì9K&ÁƒorEg΢è lUq盜E‘ÁY"ž³(2ˆ0‹"ƒø³ì1ˆÓl6‚n=ÎYº,°oqáÌâD°ãFûœÅ‰ÁYª=ÿ(eŸ`gùap–[ç\°2˜`ß+–hÎ9ÈœKÊç,N ÎééœÅ‰ÁyÓzÎâD°pȳÁ¹tpÎâÄà\”8gqbpNÇç,Nù“Á9˃/t$‡…/t‡øºgq"˜P~œ³81ˆAõË,ç2ø9‹ƒ˜Df apÞ\œ³„0ˆ)f–ç ï9KˆÇ߀Ï"Ô`¯Àç„`°îÀç×npÞL³Hä”Ó¬ÏafpÞ,ϯmp9,Ï/np= ïãm€Ÿõ€ã=^oü€f¸ÅëÍr×;»åŒ×›5…ò†®ÁϪÂñQÈå´ÜùYY|É=[Îx½Y8N…œOÃ}”Ñàš,—x|Ë–ÓFîÅpÃRêà­YÞyï_ó±Ynx?sÖwÌómÎûŽy¾ÍuåçÛ¬ Ï!|ð˜ý Ï¥ÆÁcþ7œ+ùØ ܰ‚áyóªÃí ÷n9oä1×N‰¼ï_óqΨrÂŒo¸gr­–óI5p xÌû†+Žæö•Ç’÷AÎÅò^ÈÏÃqßÈc†7Üp<0.•<æbá#®ÌƆy=`Æ5Ìñx®8.<ædÃé$YYx§ñ`Ì­†ûIî§e^oó~^yÃBÑà£XnÁ\j¸ïÙr.ä1Û 7”&ƒÇ|kxÞÒæŒùÖð\<æSÃ9vÃ79Ï»SÇ-xo–1žåy‡êãYÆ|#\P| ó‰á<æ Ãü<˜/„s|ž9p:æëÕqb+³t<æ Ã8ß2æ Ã8Ÿ2Æû•·“óEÆxnç{ž“cÌg÷ˆ†q½fŒ÷–ÄñÚpÃûíc`ÿ’Çxn¸4ò¸kÞ9žå¹íãiÆxl¸žäqw&¼q<Ǻ°cÔ;O>³åŽóãµáº‘ëfóUÆx,Ü9æyÏíxÃù€ûè3ÆSõ’Çxh8ãûÆx'ÜXÏŽ_ vËG&oÉòVÉc¼3Œñ¤`<3Œñ´`<3Œë ¿‚(W,¼Þ«eÌWõ¼aÌ—O·eœïeþzêç{A½jõrÁx$\°´˜ Æ#Ã8ß ÆøxòXé1Œz­ ^ÎX*<êQè7 Ç#åyƒ¡ÞŽù¤b%Ë0ê±±sªZž?öã­a¬4Ô#†q½6Œ†çÏØ¹ñx¯\ñÃÐày¼•1_7Œ'†q?Þx¼•Qï¶¹ÇÃ1î—Ú1çkanî<êÃ/îg c½«s¼X™?ôæçÿéž1ŸvÔë†q?Þ9¬œx>t^Ïʸë˜o ÷ày=)×àã´Œz û…7 ç‹á=x¬ÓÆ|3.üÓ2ß®WØÏ;¾oá¯;î— ïÁc¾0Œãµ¡^2ŒïkÃz¥á¼UÃü!jð¸^ ã|…Éayþ83¸W˯QØ9Æù¼á~Ixc½¸ñûVÆõ´áz5Œõ¬mNlŽQïìXO®O°Ü1~Øy=(ãxï/ c<Ýy¼•ÞÏü]D¹`[Èàž,£Ú§Mâëcwm·Œã1®‹áÌz÷àx¡ŒùúàñPÆ|ƒÝEޱxð|UNx>Ì×Â1Ÿ<Ÿ”Qoý›e\'ê=Ãóçª<~6ü,#p¾žs–c¬'ð·_Ã5“Çz«á¿‡ Ø"9xÔû†1^_òNËó|, ã™áy½þž"L) $œ/†çõPÆzùiyŽ%ñý®¼á÷ˆÁã|2<ïWÊX/ì–g=V2æcÃs<.c÷]3Üq½•ŒóÝpžïgåÆ÷;ÖcË[ð¸ß2\Á¸ Ïz»äyc¥\q= ãáy¿\ÆzÇi9zL¸@E*cïªçy¾—q¿¿Yž×ûàq¿-Ìñ¦Ô†g=>þÏîy®ÇÏW 'èãÄ¿'Æ÷Yç/âŽçýÆF=²r9QO õˆa|Ÿc`; S<ê]Ã8ž ŸÇ0Îç†ùDxçõÒùzÊø>žõò¨‡…7Ô›sa Y®‰<Îanñ /óõ”ñøg½4Ös…Ç›mþðëãɶÏóE¸bëóàq=ÆñÚç¡rÁ|2~Øë1ÂõÜøapžÊsCËüa²¦`:ØÍÊã2ž×ó÷#|`KÛÜ8‘,Ïùdìp©Ž¹Þ0÷UÃχ'ûáŽ-*c'é¨7„^oì»ó±pÁ÷1ö0Ïϳr‡áÉeÜÂãg¶ùzÏÌwÂ<_‡i2Æ#á†û±Ác<æ¶ûaôñfá9O »›òÐ0ÇùRǾ˜ý3ÿj(Ý/c;Yc{¾äÿÁ؆þûGlâǯ–Úf2ÿõ¸#~ÞÑÅ¿'Þ0æ¾ç-I<€x{ÀØYÿ¼yox{O×[¼=àßóüæGs~ü;ûù_•G~|ÿ<šÓõ_àñóQzŒ›¸òøþ÷Ÿ¤Ÿ>¾ÿÝwùý|æ¯ÿt¬HëˆëÀÛ¦TÑ®ï`DA<àö!ïðvÔ~v;˜mCûüUmž0ßìW÷å_gÔBøóþçÿù¸UoüsûåùçcH=6þùþçÿ9&büùñgÿùØ«ÿœGðççŸÿç}n‰þ|ï'/‡‰ç¨ï#Y`‘ c&áYø?JÿŸ‡’¹ñ<§± ó|ƒ÷“ÿþÓG~Ž.?ùí¯ÿøããÇúÃo~ûø×?>ÿÙóýú?þó¿þÿþôïßÿÍŸxò|Çc!¨ò~ùÛ~ýÏ?þögÿøÇßþöñãÿz>÷ÏžÇö'ÿöOÿöÓÇsÖýɯ¸žÿÏ ¹ôüÿ9dNׯÄÈÄ;3="ä3S;˜øñ†\¸%~¼ccH$~¼czOüø€Lü¸ãøy LüxÉLüÄ›¼?ÞpçÁaâ‡à[âÇGœ‰‚™™óŠ[7Ü‘ø!&3ñC°½'~¼!K›Hüœ Í‘ø!˜î‰ 6üˆ‰‚•ž‰‚™ž‰q&~,H34?çOg‘ø±`ÁÆ×HüXËj‘ø!XùT­9ÌÌéÝaâ m»"w‰GâÇG<ÎÏÈÄwl'¿$~(nÌÖ(ÕafjGmŠü ‚‰ŸqØŠõ–ø¡˜ù&‡Ý¹âÎdØŠóÆ#?ämA$~æ{âÇ‚9Lü,LÞ˜‰ ÒÄÁy3‰ VlåŠÄ#ら‚;ó1Ru˜˜Ë‘›bæËĹÀ‰ïXc@†ªˆKfèŠ~zeâ‡bd˜Ùaå›fèŠ´ï™ø¡˜™ž‘»"mG&~(Nƒ‰+v¦ßÀUl|ÃUDR?¬Ì§bâ‡`æƒgâ‡ÇHüX°0{‰‚…éeWÌôs™øñ{rX˜Ú±eÅp䙸!X˜%2?Þ±pK?ç‚ ?>ãpNW<èõ#ñC±2y£%‡™O5œÓY$0ñcÅ ƒ?Väg&~(6&`¤Ýab¶F>¿28§Š‰É-+Všì( áæ3ñcÁråÌÄÁʧ:6ÅÌ$ &~|@&~,˜˜6ÀÄÁÂäšf¦v´"˜¹M€‰Љ/4 È#±¤bá »âÎC‡R'! ÈÏ8 È7f> €\±cÙ‰Š…OÕ›bÃOLüP„¹rÅzå‡ÃYÈ1ñcÅÂ4$~¬˜™Œ„Rñ`jG­ç&Y&~(âTaâÇ‚‰'?Þ1Qoaâ‡bbÈq*WzFJ#µc”ˆ+Ò8fâ‡âÜÇÄ7üäÄÄÅBÜOÅŽåv&~(værŒÄE|Ý(‘ƒ"pÅÆÓEàŠ¼õ`âÇŠe”h?Dâ‡b!Ž"pÅHdB™§8üeâÇgeÞg¬›C|Ý(äVä¦.&~(âëF!§˜™2 ¹ÏxÖçbË<ùéç &¦gä®xðR×ÄÄ.ºãÆyEL0ˆ#Kä(ŠÛõÎö‘øñæÍá<‘ø!ÈT4$~ì|ðøMK±2ÓcËŠ C? &æcŒÝN+V\Hü0¹åtX˜ËÑ’ÃĤ‘±‹jEõHü0Xù6ö¦HA ÿkpÞ<"ñà úYnLLí¨I1чw¥˜_‰߯V¿Â½ ÌÆ9éó.x\9$c7™bezF:¾Âiú ¦Wâ‡àŽm$LüPl|ª­+nWȾ9ܘ2ý]ÁÄ\Ž’;Ê&~|Æ‘ø¡˜o‰+rÛ5?‘«CçW°ð©Fâ‡"0èû.Xß?‘%WL©4},LÏ@âÇŠ™éF´‚ ³5jsˆ‹‰+2¥“‰Š‘Ú±‚¸Áþ!?w>ÕØ9¡ˆ¼—Ë+^ÃõË2¾ãÁÓûrŠœ[ž˜ø¡ˆ“ÿòßq LüPŒ7I—xÁÆ,‘aÂ(Λt&~(ÎÉú¼,ä7Üø‘ø¡¸1ÓcìSlL ßø1˜_vñ‚™¹áß±óà „PÜ™2öU*6¦…ÐJ^°ðmÐA~ÃÆÇ ¶Ôáxá+0cÔ Â!Ü1ðÃ0„S~îØ1êÃõøaRø!Ì,œü0Ì@Ô†(‚ªÂp‰@rÎ(J"ðã+µ…ái·\##Ÿ†…~n•ܲe 0|‚La{áí \@=ð›eF`Ö7\#P£$Ë9=j6|„ÊÀð[à‡áïgß,§{à‡ð•!T2ðÃ0G(T®¼Åù„¹Þ00ÛÅSÈT¾9J±Œ í üæ†Ãü0Œ ß üfr_~æxE¡\9ß?„¯ñŒB¹òÈ1…qeŽg˜‹ çì³±p‰ë•B¹26¼3ðÃp‹À‘í´\âýŽYY˜ "ðÃðv§®ÌÀ ~sCo~®82…vå|üX¹ŸØ„YØð í´ !Â,¦"ðÃð¶‘Ç|kó? 3Ðó©ðN჆!ü1ðCx{‚ŒûSà ¬Àªac ü0\¹eÃ=O( *·™Â 2'pÏh8E Ç Wnq<1_×8^˜/ ç™ÂðÊ%70žîè1…FeœÏ üÎØ€ñÞp@1^.÷À¯¸Ë)xܵ §„@à‡a~_ §àqw¶r;#°†Â˜2øaÂ?„ðox žB•r‰@øa8G Ç¸ÿ¾S0žÞƒÏj¹G`Gî–kðXé3œïÂQOäK`\Â$? ÷à1ž®Áã~ÁpÞ«á 9„É•÷ొf¸OaUõ&? çà)L®Üâõ0F ? çàÞ G ? ïÁÇnõ? ×àQÎÁ½.ñ~0Þï†ù~Pï®ÁÛa9ŸÙp— ü0¼G H?,÷à³XæùÂëY9ÏëyåÄó™†ñ~øa¸G GöŒë+ד×;? ïÁãz0Œ@#~®÷Àدø!Lá&? c¼fà‡a¬‡0ðÃp‰@q¿$ÌŸÐ#ðÃðSHU¾AJµ\‚§ð¨Œù’Âï7øax»~F=ÀÀÃ)¸†ã~†{‚ŒñÖ0Öƒøaõ?„#†÷™Ç[×3? c¾bà‡az@X®<_øaõ? £žbà‡pÜ/ö—Pº0„~f`…ä•c¼dà‡a\ï ü0\ÞÔ/ÁôÏg~Æý? ×{à‡aœO üX¹œñy!,F=ÄÀà ¯‡ïÛ0Æ~ÆõÎÀáƒß7? 3땆¸ëÕ0ê1~ï<Ÿøa: ü0ŒûA~Æý&?„¹¡>? c¾dà‡áSXUF`? c=ÂÜØ†øÄÀáÆó†èõrÃXoaà‡a|Ÿ üæ–ªü0¼5ò¸_3Ì@^Ê4dà‡07>Gà‡á-=R·|vôd9ÇãÇïÂ9^†ñz ü0Œ×cà‡aÔ« üN<Þ ü0Œñކñ}3ðÃ0ê-~¬œ)Dà‡ar Þ3Œûe~N÷ÀáLæo¿†[zŒõVÃXeà‡pÜ3ðÃ0Ž'? ×ôèÕò¯#ðCxÃzR~†°ÎÀÃÌ÷»2·úDà‡a0ðÃ0„t~SyˆÀÔ`à‡ár<^Âõj~F ?„K†àz0<Ç«ü0\óãø!Ìõºü0Œçcà‡a<?„Ù%7? Ïó1? #°ƒ+'ÞïEà‡a20ðÃ0Î7~³!E~Æ÷ÅÀá( ü0<ë…üfÇü0ŒÏÃÀÄaà‡0ïg"ðÃp#ðC˜}C#ðÃ0Æ ~³ÇT~s=&? Ïù ?„3oøa üf'ÐüXx £8ßøá¸Ü?”!ðC™ ø¡¼1PæàûY¹¿~(s+?ÏùŒÊÛíø¡Ìñ„Ê Ÿ‡ÂcÃÞ ô@à‡2»E1ðC™ Eø¡\°ÞÂÀá¡,m+ðCyÇö¬üæýâø±p£Ÿ8$í¼d~üÉö´Â^ÞµÇа߱Òʦwý† §ûË»^°ñ©Â»¾agc3z׊Îöðd>#½ëç"ÃKÃ~ÃÆàå]¿!Ý€—wý†lgÞõ‚L· ïú#NïZp£ >½kA8êô®ä¢Qxׂ;=äé]/ÈûL´²§w½ k»œCex× Ò ïZpãÛØ÷¯pz× ÆIHïZpeá]¿ã˜oÞõŠ-Gx2+rë ½kÅvôðd§¹GïzÅÎ/žÌgžÌ'¤w-ˆ“Þµ`£=½ë™µÞµ`§=½ë8½ë+Šð®+?Â~*$¨‡w½`¾ çé]/ˆ›Ë»ìt¶§wýŽ‘üHïZqþìCïzŃÃ5›÷ëMn§Ã·q$Å, œ¹ØMïzÅvÎÃÀY‘mƒé]¯ø2ºë¦È.(á]/˜°…%¼kA ¹ô®ß±°ü¢w­¸Ñ÷>«"K{z׊‰óð®Wd.0½kÅDwzx×+ÆDïZ¼kÅÆ·±gEv{ w½"MTz×ÞõŠ™Íæá]+½„w½b¢Oïú3ö$ø¼k +{x×+Òß w­XéŠM‘½kÅL;zxן1ïŠìÉBïzÅNÞµb£=¼ëÃaF¸b¡÷…"P1óÁû^‘Ûèè]+ÂúC‰¸"â¥w½àطƧš­ዲõï‚ÛØ³õ¯`æÛ˜­äþ~z×+n×G8÷ÏÈÖ¿ ²'½ë­NŠ•OÕŠb}ó®W,´…Q@*fºÓ3‡kÁøBQ@*Æ<EnÁ¦wýK^qZŽt˜kQŒ ‚«Çð†Çx5^0ó…ØTø Ù·í`Sáã¢ÃžE¸µl9¼`Â0¼kAöK8ØxÁH ÀoñŠ•ÎvkŠÜ¨ïZcá]L|³™ñ;a¢ÒeZ0ÕY@ ư‰_§+\›C ›t™dçуjÓ‚¼­‡w-ÈÍá]„ÏŠ°Ð±_zÅȉÀné /X¸L+fž¢ø%dÅÄKûxŒ>‘M'AXè³Ìbn_áØ}¤XhVO—I'[3.ÈÎkÇÕ¨ñ ¹-ÞõHKjAä¼,©;Òe:.Kê ;-)ÁÂOjAöZ¡w­˜øà=+Xx׊ኟí#Ò»þŒySÌ8ìô®aWÒZKwô®+ŸjË‚£ï ßc>ß0œ@6MœËJô®WÜÙœûÍŸj¬Ö+>Õø-{EöZ¢w­XøT{Sd½kEx}p¬ì·bà CïzEö¢w­8§z׊húïú3N¯jAn»¡w­XøÏ]‘¹6ô®?cIÃnÅa¹y× vöʤw­ˆ ‡ûìd;½ë¹4DïZÎÕò뎢hEn£w­GEÑŠùl&ØøTçé0ÜéR6…Ó»^±ÒçŽ}A¸Ó(NÃÊží”,l6ÏfZ fl…£w­ˆÁ ÞõŠ1¸¡8Qœ·ô®i†¸Ÿñ¥lÑÀiÁLwš¶ÀRî¡w­˜é?âdÅ—;]»ÃvtÛ¹i‰Þµb8ÛGrXøBs?² ÒPœ¬–2ŠÅNg»îgqBïZy Üå¼ »ÄÑ»Vì4œ§á XéN—Íaºy×+²;(½kÅJß{š –7ïZ±†ö̾C+SKD ÌB»6ŒmSÔ® S‹E= œ¢/9´kÃí®]¦–-må±mŸ5…á-´êQU¦ÖˆºBøÒzQY|Å£¶0ÜBkN»ej¿Ø6/})©] o/-»eËû]»6Œm‡ÑH¹Äûe_ž<·å¯Ü_Ús:,C vm˜Z<´×ÝŠáè IíÚp m{ß ×Ðb¡µ¦–‹ Ápºk×ÂW¬´ÃÐN¨]N¡mOmà fŸžwΡrÛ»2Ǔۤß9…Ö‹š`åriù˜÷ cÛ&µká#Æ h}†»Àm¡ÊO¸-T9‡VŠá=ÆÌņ[ð˜ _ZöÜ6¹rô ¤vm}q©]ΡuÉp§ÖGíÚp mzÜÍ óGçЮ…+·=S»6ÌñŠÛÆ•[hÕì+±2ú®R»­‹ÚµpŽñ÷ç†÷»vm˜ã!æ[Ã)´éÔ ó§ÈЮ —à³[Nwízå|i©¸?5ŒñÚµpôõ¤vm¸·l8ú"çk›éÊÔV1_NñøqÏ(̾>¡] ³o[h×ÂÌ… íÚp fÓw®¯ÇŸ‡e¾´Ã)xö}Z¹Äóa¼7\ƒç¶Ê•s<ÚõW\Še¾_ܵNÁcZ8b¨]æûÅÝÙʱ­3´kÃ<_ Mæù‚ñZøˆóÚ¥ahWÔ® §à±b)¼Çõ‚ûÃÔþ1žæõŠñÐ0¯wŒwÂ[Œ'Ю _ÚöX½4 íÚµáyãÚµp­ã™ahGÔ® c<§v-}¿©]¦íÚ0bo¨].x<êUáÊX j׆1_R».¡c¼1Œûj׆QOP»6Œû!j× EíÚ0ê%j׆¡P»6|iÙì«öΡP»6ŒûMj׆Ñ7šÚµahÅÔ®ÛvQÏB»v m ÚµãÚö³ðs m Úµò,ƒ~íÚ1îà:¦¶<ïGSËóµòþÒ²ç¶`eÔЮ§ÐªÍðÆëÚµãZt:-ãzƒv­Üy½A»v¼‡Ö=·!+£^†?ë8ß´kåÆëÚµc¬‡ÀOv íÚµråý´kÇ8+ÏgåzÓ®ã|„v­\8_C»vŒzÚµcÌGX8RŽzÚµcÌЮã|€v­œÞ´kÇO·2î¡];ΡmŸYù`'j׎ñ}A»vŒz ÚµrÔãЮc¾„v­¼ózvíxƒ<ëuÇ8_¡]+3 šÚµcŒWЮã|v­õ´kǘo¡];¾´êq¾7jÃØÕí˜ÚúÔÆ×›víøÒ¦s7±–Юc½Úµc¬'@»V.¡EωÛ1>ìÇІ¡];Æ÷íZ9bM ];Æx íÚ1´Xh×ʉ±¿oȩ¯WeÔÛЮ…ǦÊà-Y¦V>ëeå¸^¡];n7íÚqÞ«á=´è„NÊÐî¡];ÆxíZ™ÚµkÇø¼Øî¸ëÁ0b ]+w^;·2Îh׎1^A»Vn¬Ç ];Æý´kÇXoƒv­ó9´kǘoeŒçØ]¤ZúÁóUß7´kǸß;y>­œ¹Þ íÚ1žÚµc>ßÔ®•ã÷ h׎{hÕc>7ŒßK ] oÔ¾¨];F= íÚ1æ h×ÊŒ½ ví˜Ú4æSÃÐ2qã©Ìß{¨];®7íZ9´Sh׎©EÏÂÌ1´Gh×Ê[ ¨];n`œï†Sð|?+·x½©]+W\¯Ô®CË„ví8…Vs>¤víx^ïÔ®•3ûÚC»v íÚµr¢6 íÚq¿i׎q>A»6/´i|߆ñy ]+ø=€Úµã¹µŽÚµ2cY¨];Îõqi×Êì“@íÚñœO¨]+³çµke*yÔ®ãzë|½•+µsh׎çïñÔ®• Ç h×ÊTp¨];ÆóA»VæýµkáçÇœ÷ÓÔ®•Æ@»vŒë•ÚµphóÔ®…c<¢v-Ük@íZ¸C»f‡ÃЮ…)?†v-œQ¯…v-œ«@ízåʾ&¡] 3v ´kaŽÇ¡] 7Œ·¡] Œ¡]¯<~¯…– íZx#S»æýJh× çch×+çŠõÆÐ®Ž+´®?௾»Û×/;e?Úø?C@GËì?Õ͆6yÉØ2ö‚‘nö‚!E³Eö‚…"÷V&â쉽 ««WOìÈÙ Ôž‡<£X)6[±kìüÍ?dlÁFìõ+ÜšÃJÜ7‡¡—»ÃD<ÅópÈØ‚X²Ãy†Œ-½©§Œ-˜ˆSÆ^ÕaÈØ‚Ñ×zÊØqÊØ‚8Í(c BŒ¤›½`ôgOlÁ|“±WdìEôÄÜùB³'¶àv“±_höÄþˆÇùÙ"{ÁÆ 2¶âN)ºT‡Ñ}º6‡8!cƾ+2’2¶âNE|?âr†Œ­}­SV,TÄ!c+6êÖ¥9Lª‡Œ½b¦¨[qãSõÃ!zCÆ^1]ø‘~„!c+¢C8d쯎è쉽 CC¢'¶àF)z¶ÈÌÔ­Û¡½©!c+†¾'‡…áÈ3åó³*r#;elÅB¡zÈØŠr!c¯Øù¥@ÆV,ªÛé0SÕÞ’bÃ!ÊØ+relÅv“±? eìF[ñ P=dlEÈ«±?cO!ìAÆ^‘ƒ(c+ÎûiÊØŠý c¯˜p¯Nû3[1º^[º&dì+[yPÆV,7{E­X¨ˆŸ›ÃùÛeìwöòE‰¨­2¶bèÖ£€\qÃ=9elEÈ( !dBÆ^±SE©}ä'D¹bC±M[±R{¤b¡2= È9ñQÆVœ÷?”±¡z¢€\‘k¯”±7>xŠ™Bõ( ?ã( WŒK¤b¢(Õ!ú¢TS„ÜÈÁÌÏû½'¶Á›gŽ 4`Fá,Èé2¶Áycr2 Gp.gW΂•š÷Vë%å,ÅO5£p£ëõŒÂ,Ô­gŽ`âƒg2΂…}Qn)â# ÜR,|ðV¿Â½+r¯6dlƒ™xîñPn}ÆQn­˜ðî.¶á~w±¿âábÆ^?ºØ†±WŒ.¶ð®,\lÃtAáÊ¦Ë Û0]z¸t†S¸ÚÃ¥ûŠÍp´T¤‹m¸‡«=\:Ã-\ëá².áZÛp×z¸,Âýõ~†‹g¸‡ ~ì–éÊÂÕ3Ì×cŠ2[ÂÃu׈.¶a¾¦Õ}Á3¯N™ï—©sÊ9\í™;·r–ÖLžSæ÷Á89å|w±…K¸Àpý ó|‹m˜×\?Ã%\éT,çp¥s5|¹ìp± Ó…†ëgøj¹=\lÃ/àbæx[8ÅxÛð[KlÃ%\í=)gdÀÅ6Ì–Òp s¾‚‹m{yébNár·Óð®?\lÃ-\íá"®ájÛ0]U¸ŠÂ{´œÅ|jx >»e¶ †‹mørµ÷fxã^`ºØ†±Wž.¶á«¥õ˜O„;]wºØ†p­Ç|ax‹Ç×Ñ0]]¸ŽÂ7׺$Ë5\í1_¾Znñ^8\ ºØ†·p¥‡ëhør©‡‹m8‡«=Æ{áÇ ãµa¸Ø_ñÏ Ã%£‹m8[8‡‹ŒñØ0[j3ÇS™-Ùä©Ìóî¥pdÐÅ6Œù’.¶a¶4¿’5W.ÁG¶üÖ{eláÿár± ñø™G©ŒñŠ.¶aŒWt± £e/]lÃp=èbÆñ¦‹-Ì8úp± c¾¦‹mÇ›.¶aºÀ¨ç £e(]lÃ8_éb ïáJ£^5Œó™.¶aŒÇt± çpµÇx#YJt± árzÕðårzÔ0[–c<2Œ¬ºØ†ËÝÅ6œÂåã‘07S…‹mx¿»Ø†ûÝÅ6Üîn¶árs±盋­Ü^-µGæœáýæb;FK=¶Ä6Ün.¶ã»‹í8ß\låÈ’bKlÃt1Æx–؆1ž°%¶aºÎ¼”Ùr÷kÂ1ß±%¶á·–؆é¢ó|VÆùΖ؆‘ÅÁ–ØÂùåRÏóU™-Å‘rmó1[bÆz [bfKkÌw†q=²%¶ṗl‰m˜YH4Œz-± Ó¥æx« -±W.U¸Úc¼0Œ÷˖؆{¸Úãx®ájñÄp WûÌ–áÚ²%¶ṗl‰m˜-¹Q/ÆùȖ؆é2c¼Þ£¥4Z†Kɖ؆é3«wåhI̖؆‘…Ö؆ÙÒ- ·›‹íõ[bÆý [b ³¡J´Ä6|µ¼÷Û†q½²%¶á.uî–Qo±%¶a¬§±%¶p¸¤l‰mõ6[b†ËΖ؆Ù׫aO¶Ä®<žl‰mã![bÆx͖؆‘EÁ–؆éróz]¹p=›-± ï7Û1[Ž£^6ŒùŒ-±…s¸Àh‰mx žß§2îÇÙÛ0êa¶Ä6Œù€-±…Ù`)ZbÆz[bnÁG²\n.¶cºÚ<Þ ÷pmÙÛðÜ“å<~¯0\‚Ïnï‡-±…/¶Ä6Œû9¶Ä6Ün.¶çl‰mç s h´Ä6|¹Ö3»\ã[bF=Ê–ØÂ[¸Þh‰m륑˭Œ¬-¶Ä6Œó-± c¾dKla†ïGKlÃh)͖؆ç|-± £å.[b 7œ/ÑÛ0\T¶Ä6 ×—-± ÃÕdKlaf DKlÃt¹ÑÛ0\U¶Ä6ŒÏË–ØÂÌ Š–Ø†ÙR-± Óµæõ°rÆvÄh‰m¸íËÅv ט-±…[†³%¶a¸Ðl‰m¸ÂåFKlÃt­Ñ{åÆõøh‰m.2[b.`|ßÂ[³%¶a|_l‰m®7[b ³^–؆á²%¶áœ—‹­-éÙÛ0Ž7[b wºÈl‰mŸ—-± Ïñ0Zb 7¬‡GKlÃs<‹–ØÂ5\m´Ä6\o.¶2·¾FKlÃó~?Zb ³ž‰Ù†q½báI™÷£t±Ïz….¶påïEt±•Ù.†.¶2[ÂÐÅvŒó.¶2›ÓÅVæý]le~ßt±•+O[¹à÷VºØÊèb ®÷ÒÅVÞD[¹Ñ–†‹­\0ÞÓÅÎ<žt±WÎ'7×GKìO-²ï²ÿœÙèõúò®=††ýŽ14ìwlÄаßq.VÞ4ìwLÄаï˜h*^Þõ ïúwzÈô®„‹øò®ß1©aß±szyy× VúÞô®?`x×ïXˆá]¿#õ—w}Ç'íË»^žêå]/Xïúæwý†Ü‹Þµ`țw½`ãÛ w½ zD_Þõ¤w½`¼Éð®ï¸ñm\Þõ‚yñ®ïør§é]/ˆ¾¸—w½`ôâ¦w½ láË»~C.º‡wýó3^Þõ‚V6½ëë»w½ ìå]¿aewbzבÞõ‚V6½ëì^¼ë‰\`ïZp{÷®LDz×o˜yYÑ»ŒŽÙô®,|0½ë£s5½ë7d\øË»^pN(/ïúŽ£æ G±Ñ¦wý†Œ©¹y×ïˆâò®ß,á] F_kz×o¸Ñº§w-¸ñ…¦w-Xùàé] ¾ z×o—3½kÁF‡yzׂÓë{y×oØxzÓ»,t§§w-OEïzÁð½©a¿aan½kÁè§=½k/ïú qÞµ œ1zׂñTÓ»þˆ=9LïÞõ¦«S÷ô® Íê£9„åxy×w¬Œü¢wý‡ù£³ÇåyÃÞµàN³zzׂ‰Î6½ë7dGÇð®Ü.£{zׂ0Ùè] 6ºÓÓ»ŒþÒÓ»^áÓá] Ö»w-7žÞõ‚í²Á§w-ØøTÓ»^°ÒD¥wýé] †Y=½ë#ƒ€Þµ ú‡Ó»¬ô½§w½`Æ­\xׂ/4½kÁz÷®_hz× r‹~x×qz×ïX¸¼MïZ' HÅykEïzE†JÒ»Vl|Ó»LÄé]/øêÅ=½kÁB;zz× r;xxׂÎöô®3<½ëû½'¶ÁLÜvE.†w-Xùàãt˜hGOïzAn¿ïZðÍ»|ó®äÆéð®3Íêé]/˜iÀÒ»ÜèNOïZ.1½kÁr÷®LXìïú3Û|Ñ»Vœ Ñô®‘^"pŃCÊã(·Ñ3ÕŠ;OQTŠîôô®3¼oŠ\FïZpnR ïZ'?½ë8½ëýÞµ`XÙÓ»¬4«÷Ýa¢ï=½ëÙ"¼kÁfõô®aÀÒ»Ä Ñ»^°^Ouœñ`z× –wïZpŸá] fZÙ}WdÞµ`¼Ð~:ŒšÞµ ¾zׂ‰fu®Š‘A@ïZp»{ׂíî] &ºÓÓ»~á´î|ÓèD–ö#+âÒ@OlÅJ+;7‡™Vö艭ˆ¡ûWä6GöÄVÄä…=¦ŠÑ¹zü¨Ø^ÞµÁòò® ¢C8öN®¸_]¯ÇÎ-E˜óð¾©åA‹0üÖ[8¶õ‡v­|iÓS»Vîñø-[¾ZjïÅr žÚõÊ=ZNS»Vƶ¡Ð®•·Ð¢ón¹Çã§v­Ì–ÕÔ®¿à©]¯Ì%ÃK»VÞCËžÚµr žÚµrzÓ®W®Ñ’˜ÚµòÚ÷Ö,÷xüÔ®¿à©]+_-­Óa9‡V=µë•K´´¥v­|„öÜŠå-?µkåß7Ë)ì†3µŒÐ®•©}R»V¦öIíZ9OíZ9Åóíû×|†·µ‡v­Üƒ§v­|iÕ­)goh׆û]»6ÌãM­oå#Ž7¶…ÞãñSëSÞB«NÅr -;WËWËëÒ,§x¾¶Ž–FÔ® ÷»vmøjÉ=feÃï1· o«mÈp­zj×Ê)´ì©]¯ÛÚC»V¾ZZ§f¹‡»åò¦]¯ÛÒC»VÞBëžÚµò¥…OíZ¹„6=µkelË ízåKë¥v­ŒÏÚµ2ÆËЮW.Œ íZÇ#´ke¶Ô¥v­Lm™ÚõÊ™ãIh×Ê{hÙçnóIh×+§E»V¦vJíZ™Z/µë…w¶ íÚð[KlÃhiEíÚ0´j×ÂG´<¦Ö¨ÜîÚõW<5'år×®…wj5Ô® £ž¢vm˜Z0´kÃl)ñX˜y‚¡]¦¶OíLùjy=µKåÚvÛ-ó|†v-Zih×ÊŒ5 –©Œñ<´keh¥¡]+_-­§v­œBËžÚõÊÛÞC»VÞC‹žÚµ2[ S»VÆùÚµ2ÆëЮ•Ùò˜ÚõÊLI¼´kåýM»V¦{i¥+S«¦v­œC‹Íô£å}h×ʨC»Vn¡US;]-+C»VΡEÏñhå-Ç©¥*¡mÏñHùj©=Ç#åö¦]+Cë+—¶ºrÞÈÛa8…¶Îñ@™Ú:¯weh9¡]+óýR»VÆ|Úµ2ß/¯ç…·“ï—Úµa¼_j׆ñ~©]Æñ¤vm8ßµkáˆ-£vmøˆç;ËÔº©e*_-³[±\CËÞºåZö¾ŽùŠÚµa\Ô® S‹ÇýŽaÌ—Ô® £Þ¦v-¼q¼¢vmx¿k׆·»vm˜-Á¡]Æ|@íZ¸s> vmøjy½U˘Ϩ]F¬Fh×Ê÷–ØŽShÕóx¯ÜB{æñVF½Úµr­ûÌ–ë›v­Œë=´ë•ÙaãÒ®•1…v­Œõ¾Ð®•ñ}†v½rázTh×ÊÔŠ9(Sæõ¼ræxÚµ2b!B»V¾´ìã´L-›Ú­2ê¡Ð®•ShÛg2œx?Úµ2[Š_ZéÊ=´éÜ-c< íZãEh× ÷“±1Ô® ã~ŠÚµá~×® ×à£[ÆùLíZøˆ–ÒÔ•1žQ»6L­÷K†±žLíÚ0Ö˨] ï<©]ÆõHíÚ0[Š£^6 mžÚµ0[ †vmx Þ«å|4ˈ͡vm˜ïë‰Â±žNíÚ0Ö#¨]®ÁS«TfËoŒ—ÂçKh×ÊX/íZ¹¿i×Ê8ŸC»VF=ÚõÊ•×[h×ʈ8.íteÔ“Ç¥¡®Œñ<´keÌw¡]¯\X/†v­Œz!´ke|_¡]+ç7ízåÌãÚµ2µjj×Ê—V²e¬§„v­œBÛžÚõÊìGqi×Êl™MíZÚ`h×Ês½÷Ò®nìÚµahyÔ® <ï×0_ç“0ÇÛЮ £år¾´Û• ´hh×Â;[rS»6Œ–»Ô® ç»v-¼…íÚðB»6 í”Úµa/j×Â\¯íÚð¼_íÚp†V íZ¸¡ÞíÚ0>Oh×ÊZ8µë•+æ»K»V†–Úµò¬w/íze®7_Úµ2Z‡v­\Þ´ë•)L^ÚµòO/íZ™Z6?ÏÊ¡ý†v­ŒãÚõÂãcBˆvm¸Ýµkáh9MíÚð¬'C»6Œó•ÚµðŽõÐЮ §ÐªÇù"Ì߃B»f,kh׆ï-±•µ{j׆ó›v½2´K»^™Û‘/ízåŒßÃ.íZ9C«¦v½2{÷]Úõ±U>´kaÖ»¡] ï˜C»æý|hסu‡v½rÁx|i×+'¬×\Úõ™[]B»fKúK»^9aãÐ¥a¿ó(Sæxqi×84ì{¯ì?KÃžÎØË»öö;¢%ìå]/ëïò®ß™Gá] Âù¼¼ëçDòò®? ½ëfz×wì\"¤w½"û^pgÓWzׂp\é]Ä­9ŒæØÓ»„1HïzAfÿ„w-8—´Â»^°cïixׂît-+ çVf¾PoŠíja½u‡Oµï_áq(2i'¼kÁ9Á„w½`¡ÑMïzÁ|9Ûµ:ŒÖÙ­9,wïZ0ÑÙžÞõ;>çê“orì=ýŒcïé'„'£¸ß¼kŰ²KUcIŠL'9ÙEp£³Ý«ÃB³zëŠásŸ½`~yׂÌ=¹‡^0üçZ¾ÂV£!p»vß¾cá m›"˼“ \Ñxy–=á¸rWþ‚‰-ŽáT)¦—w½âƤx×ËË»·­Ì÷‹*@8Åû…Öb¸‡6Íî+×x¾1ÛÅì–°rºk×+·è¾IíÚ0¶uR»¾®wÌû†Ù½s»0oùC»6œãñc[¨ð¥c†7Ìñ 3±ajǘ‹ cÛ6µkáèþKíÚðÏ×Ëù®] GwFj׆©õcn5ÌØÜÍ ‡öKíZ8¶íS»6¼ÅãÏjZ µkÃ%´lv_xçZ=æRÃÐö¨] Ƕzj׆·x?c¾5ŒóÚõÊõ íó©aj¡˜Ï ³{2îN…Î÷Ô® ×жÏÍ2»c¾Þ¹m˜ÚµaÄ P»ŽmåÔ® S«Æ=£á«{õܶ¶rÄžP»m†Úµajñï…¯îÖÏ ×Ц‡V"\Bkm±íkejÃï _Úö¯…3·S»þŠÇxnøêŽ=·å)§»v-œ¢{;ÆcÃ<¸;[¹D,µkÃìþmÂ0´,j×ÂGtg‡vi˜Z;Æcüޠ]æù‚ûa.h‡vm˜çÆCÃè.FíÚ0c ] o¡…cõÒðÏ7Æ;è7©]F=MíZ˜·Á¡]ÞãùƶÃÔŽQÏ.wíÚp m{hCÂW÷bÔ«†q=P»6ŒëÚµpŒÔ® ³û4´kÃЮ¨] —è.zÔð¥EñÈ0»G£5œCËîÝpÄQ»6 ­‚ÚµáZõ¨÷ c¼£v-¼h׆¡…R»6ŒzŽÚµaÔCÔ® §»v½r>CûÇõl˜Ý…±-ß0µiÜÆùFíZø`½FíÚp½k׆Q/Q»Þ£û3´È5¢vm¸Þµk×V½uÃc}¨]¦–ŽóÙ0Îwj×ÂLè íÚðv×® S{Æ/©†Q/R»n/©]ÞïÚµahKÔ®…khõ¨· #6„ÚµaÜOP»6ŒzÚµpĪQ»6Œû1j׆[hÓóx+óõx¼W-˜Úµá=?·2æ#j׆1^Q»æ’zh׆ñ}Q»^9òxC»6ŒóÚµat?¦v-±fÔ® £ vmZµká=ºOC{1Œõj׆›CíÚ0Æ+j×ÂëCíÚp¿k׆Ù׫ah‘Ô®…¹í$´kÃý®]F½CíZ¸ñz¦vm˜Ý§q½n¡mëÕp­z¬ç /ݯ ³;7Æk臨]f÷m~ß+jýÔ® ã~›ÚµaOh¿Â9´rÔˆ©íB»NѽÚµaœoÔ® ×»vm±bÔ®Α­KíÚ1Æh׎ñ}c¸2;ËQ»vLm{Ž—ŽùyæñvÌîâS‹SÞy?íÚ1»‡O­Òq>»áëyЮã~Úµã<ÇÊQo`Šc\/Юc<‚ví8Ý´kåZô\8w|iÙçaõ(´k刄víó ~ûuœC«~8åè^íÚ1Æ3h׎1_@»Vf†?ÇÐþð{Šãù~©]+ó~…ÚµãY¯rbr<×#¨] ¬¨];f÷ê9+‡ íÚñZõ8ß —ò¸´keÆQ»vœnÚµ2cù¨];¾k×ÊŒ¢víÚ*´kÇèn íZ™›Ê©];Æñ†v­ÌØ9j׎Ñ}Úµã9žQ»Væz$µkÇТ¡]+g~h׎¡íC»Vf'Vj׎g=MíZxåqi׎ѽÚµrtG†ví8ß´kå±Ю•7vG‡ví˜Z÷üa_¹óýl|=å»v­ÜPOQ»V®Ø®KíZ9´zh׎ÙÝzj¿ÊÜLJíZ™÷CÔ®…G™5´ke LÔ®•¹^AíZ9b ]+wv÷†v­Ìù’Úµr}ë~­L‘‘ÚµrÂ|CíZ¸s=ˆÚµòŽñ–Úµ2c5©]+s=Úµð¸Ý—v­Üq½R»¿gM-œÚõÊ™¿·„vý‰ß»a¿4ìÙœëß¿û»¿¤Ç?|7S<ÚTŸïò÷sçY»ø‡ÇãW×<¦ññ¼šÓûŸŽu­ûŸ‚çŸþâûï~þã/ÿúßühÞÍ¿ùÃw?ÿ«ç%ýøþy6’M×gˆo›&ásnúþ÷Ÿüá>þë/úøþwßýå÷óùÿ´'À¯ã ^ÿ„ã3l²áÅ]>ÛóCN“öâù!}ÓñøC4#}ý!›“¾þpÕäãË9ÞñëÁ×aýúc×mžŒÃ7~N.ãcÿ‡ÿXÒŸ~ØâïÇœ…¿/égíÿâ °è=žà?½þüo¿ûß`ÓˆÀendstream endobj 905 0 obj << /Filter /FlateDecode /Length 403 >> stream xÚQ=oÜ0 Ýý+4Ê@åèËÖ¹ch§ðÖtPβ-Àg¹².Eÿ})Ó×f‚B©Gò‘„ÃDÔ¼jMMd öDΗâgQ5¦åjOxåî!q”ÀÝç‹&¡øïb7Jöó¾+îÕ‰x+H7#‰lL¥›ézò>úñ]ÉtÍ©þX2hL¿F×ûsr=ÂÑÍvÝ¢;·k|ñ/e]S;#²ÆðlŸýì“wBCˆè¤éoáj!¾”òDÓ‘å´½âJ¹˜£†&m)èx”žmbåî ˆeBUµnQ€C„ž «Qt„±€ÝeVeè:Ûäf—éTBÎ!³cJüè¯yo·Éõà ¬³KÎø’ úж¡Kø_z³Óoaö;{U2SÚMK’¿8L Ã[âV¼„ÐX)Iej»áǦlMÑ.ŒrÛ\Ær×%$ÕZî[Î%)7Þk‚µåëí “ßÞi ð{ x¹éˆÉÅ·&@¡Y”¼’Bƒ¦VUÒ¥MŸºâk°ÊJendstream endobj 906 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 907 0 obj << /Filter /FlateDecode /Length 2162 >> stream xÚÕÛrã¶õ}¿B£äšZX\ °Íf¦éÔÓæ)“ø%ãlgh‰¶8K‘’ZGùúž€WC–Ý®“Ö/$Àƒs¿BþîæÝûë˜/% MØâæ~¡ùB I(—‹›íâ6úvµVLG»,ÝþB=´+N9,ØêãÍ÷ﯕŸW”h¡kΈ¤Âáhó}æÐš6mÆVk¦6ø|C¸ ‚J&$¼ñþM éź#ÆQ2qĘ;G Å?@ek3QüGxJ›DӔǜ!¨ ž‹ !’„ HÝ`­ô :%Îâ\ €ÒÔô„¸å‰8K$€ .©Ò|D×ËÇÄ•£-Ú†#‡B)þÖ´;ÁeÇh¢P=`ýqŽ8â:P)BÄbLÖ(Sˆ¸ˆÇ’£ÖU⊩‘É™4ªB&—\©±Éq}Îäñ@Mí#”&Ѧ*ŽýÑb» ’Ž ‹{œ¶††(+’pò FbÛüÈ$Ê×Që6?¯”ŠÒâh¡a]݇lÀÀûc½BL"MrÉ×)Üa™Ç. €LrbD/wÖnwV4yœdlpÿ­Û?ÔÕ]z—y›»ˆ§6ÊzÚÄ +Ø'ŽîVkÔW^>¸u^º§eϽ2÷Ȱ+Ù¸÷´uOå'ËXZ7W°ÖL[nªL P•/¡P¾`š˜^iÁDC‰ìµÕ16xË, X=kKE£P&úgÐAyLÄ–-´…Aƒ CbÓ§ÂGë >BàSÂÅÔ4u¶©Êü74°V(R€vÌgúbpÄ$îcã™$Ã_®Ì0¨Í3–=J´zÊóL†®]Ö/,‰ú*‰AM’g0 Kbdò’’¨Í¤$Z¥åAç‚dDÕ::ÈÌÔ̹,Þ&Ë:¹þþ%`Fùvâÿ'š—Ièÿ£›]¬\ð“`½K7¨òO˜ÓM* OÖiÙØ ˆk>ËÊvëÞU^æ39ìTðV»×qZ[VA 'KÜhýùÔuº,Ú¤ÅæXø š|Ÿi]œ°¼'åtÄÅ>!41“ ׺˜ôø7k¿ Œ[aPõûæÞ ¿’^¹ÏÛ’•O}p»Ëûü×l»«êü·ª\^¹o‡:Û¶î»ë­0›ãfü°n¢íyrúÞ}><9ÏÏœç—Î_ÒÁÑ1¨ /dÒâsÕâ‡Í½(BRQÚ]qÌ^)Á%þå'Aßz•vßó:œxÝ—¯V7¿ lþ6Ì:o|ίÛÓÔ¯_ïGü¢ñßÕ<'ÿ¥d—ä’oe2ç__ÖhÙCVÚÅe[Šì¾íôdóäò›œv¬.9…Õ}_~ ï}ê|¹ /: }Vg6 51¿s7xù4Õy‰;,l"qY9”?üØK ¯#¢çRþ\ûìÏüålÎ,Óæm‘Ù9 [ܼœºÂwéæÓ£×»ÙÔUîåèg]誠PK(¶n$ áš÷¿¸1Fiô·jÀ‹×(kí¥¦ˆuTçͧæÜU€Ñëóƶç†GÛ´MñEÇÆÎUÆNQvç§n¤ÄMáس߻׶ÃÑ[1mk§òÆí¦®yÁö!‡¢Wd=r'á´{Õ1ºoÿö£;ÙÙ“‚6±¿“=–[{k1pâ2í;ŸÉI ¦.ÀòmÓäA ‚˜áNïa kû)ëïabÂæ¿z÷·(»¬8¸~ ç¸"›Ý¶ì«Úoå%lîSTï+nIÐXèUiV@þ/¸!8¼½Ðöý+÷éûcãoRfWÕ˜òP¯¸îÔÈî?äè\ÏÎ9%œÁ<ÁbŒ¿N“AßýýæÝ¿5¶Ïendstream endobj 908 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-makenewb.pdf) /PTEX.InfoDict 699 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 702 0 R >> /ExtGState << >> /Font << /F2 700 0 R /F3 701 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 17985 >> stream xœ¥ÝK4Ëuáùù5$ú”׸¶$lHâ<4 H &}HI¤,ý}gìµvvV¬Õ-{ ‚Ø__ª¢ª²²òݱ¾þæµ¾~ûú×ïþîõ¯¯³[ŽWÝ¿Çk?¶ou{m½;·×~ýúŸ¯ß÷çüû¿þÙë/~þÝúmY–×òøÏŸÿÅÿ¸þ¿çòúïþá_ËëWß­¯¿¹þï·ß­ã ^ÿý»º~«ûk[Ïoíxýn°¯ÉìÁíÛvZîà±+Ë·…¬Íq#ûéx÷oëæXp_¿ø¨–+xý#ÃN¶MY¿íìýsßÖêxýÙÁýp,;x®Ž{Kw\øƒZQ–o5xŽ›ßðÜÁmU^wh÷æØ:xÇã¹ÌÞx|«+ØåÎou-™æx0áÄ7εd6å:nÐ`Y~q­Ê…whÁUnƒKôKçBªß¶îx6p,Q庀c‰ÎlãWŽ%ª¬äX¢Êë&»Ø¾­EYÇKT‰;´ÅU®;Xš²Œç²àX¢Ê-îîKtæ9¾(8–èÌk‰¬àÞ,7ð<·¬»%±D•ÇX m>íÛiÙÁ±D W°,ŽûÖêXÉ~8ÆÓu[±D'Öq“c‰ c©\<ŠãYÁr(nö‹muÜKtb¬.^om ãÛÏXf3·ñf98–™2žF.Že¦<ȱ̔qÐ{ñ:„î8ìñ¦Jxðî.±Ì”¸Ùã-µ0~õàXfJܰ%’²T°ï–ñÖñÅöKEoÒ/–ͱw°-Ê›ýz1©ŽXÞ Ioµ.ÆBšXq¨vñ莸a–ÙÄÆ§¾†e&Œ7½c! ãMÍŽ(;ﲎ…$ÜO0’°‘­9Öñ­ÖeÁJ2>èXK“­ákÝ8Ç/3<žÅŒãEløzmwnùõ}7^ñ0Y—ë¿Të^é±®ÄÞ¦_¸ó‘_?Ö–qT®ËõëÞè}3ÞÇ¢„Ç 3.…¾þ‹úÀÓÓºìã}¯ó~Ðk³>Nz/Ö5¿þܯCíBÕf\ò÷ëÍ8ž×åÇ+Î¥ÒÛn\ðB7ëm6ÀÃgµÞv:Ö›zmt߬O|ý‰õ¦®+}Æ-ŸëQ}v:Ö£ºÁëmvoÐàXOjÞëIÍÛ3ΩŠÏ%ïïëÍøØé±ÞŒ¹žêxbP¯8õ5|Á9o¸?Z¬ãrÐÇb¼åýÙb=ï…÷·qÇýÙ¿-ÝxÏŸ×c=ˆ<•ûÓx¯t/Ö¸½Öe7ãÊõv¹Uk<_¯ÖËìÆçÓËÛfûkœ/éÖ¸¿.ÇzRŸùóƧ/Æ?oÇzRãñ~y|Æ"îxÓ4ëE½áþ8°^ÔÇJÇzQŸ }4ëÖèrªË‚STëzÆg&ÆüygÜ߯\ïq¦Ä¹§Çó…xÅ›»á±ŒOü>eÍ9×ô¸¿ñ|0>g)Æ<Í6\ë3=Öƒ1×Cõ`ÌõPdz:–<>Á3>ÒeõÞé±ÞŒÜpÏ>prlx|zaÌï×ãùB|æ×w¬õ–ŸaïŽõ¢>Óã“7çnÕ:Nw­ÛŸVˆ 7/ÇzQïéX/ê3=>³0Æãaœijƕǃ—c=¨ã-Îp¬uMO'Ä §Ü×m‹ÏŒñ|¸Åµsœ^Žõ¢îé¶yïôø4AÜÇaÒðŸ óïÝq«ñ~âòø$kv]pÊcç§šñŠ«†ÇýeŒã…qŽj±Æû¡íŒûC¼ñxr‹oç ¿o|åŒã->ßrî =>éótþ𸽹žkœ7æzŠ…éÌÛ»Æý%>ÆÃh¸Å'3Æe¥«ó‰áÃq{«ù÷ö8c-ÎãËã“?c>ÞâÀÜ™ë­ãþRlj‘u_âñ$®8ý<<Î0lj†á¸¿f7/\Ÿ|ãùîrÜŸjÜ_{¼°ªy*cgÒš5^ï÷·Çäñqk£Çy}c¼ž^çîùû±Þ±ž.—Ã8{|ŽãŒãÑqÖ­o|?3ÎŽ-ÖûFÏxÄ<Ψ‹žOØãZg¬÷=>‘WŸ<Ÿ³Ç5&μ=ã|´sͯ?6ãÂãéËq¨q¾eo±^qÆçkƉ¡Õç†ÛS÷GÇí1ûàñعà÷Uãùö\ðûªñ÷Œ3‡ñÉß÷rü=jÜ^—ÛaûëÜð÷Î.¼¿pbÆùȯ¯«5Ö˹Çû}c<Ÿ\ç‹Äünxœ2Æóñ81Ó­ñx9Ï8ŸbŒ×›³ÄûUqãû™³â÷UãýÚæÎx>'6ºqçñèåñ~ÏÏG×ûø}Õx?r½ñçsŒñyCÁ5¢“÷ñ1Dü>xãèŒçÓñÆn³Ž‹[‡¯?5/‚Y¯7F‹7Þ\¾Þ9ãõ¾ÄÂrîùý®ÛKÏ7%^xœñ|wùhÖX/%ìœñ~¨Ä™zçñl‰«éœqÔ8°R|?q½ñˆßWãÙË× ‡3Ž7®7×ÿàŒóE—ã÷}òx¦ÆIÎx¼×80qÆíq¹mÆ…ç³q`îŒóá×i[­ã°õ:p\‹qåñ^‹Oq>¢Å#Îx¾Wuë^è~7|¼¶¸þØ×˽YóïiãxIÝùxW©tk<ßö8±çŒûc¼p7õºàBõÇçMÎx?3>¿_ŒW¾Þ]Oì׃s…ë8žQçç=®¸pÆëqïøyj<Ÿ_¾Ž'Ô;žO·%®.vŽóQÃ×7vŽãÝm‰«fÔ^¯†[³ŽãÉm|^¸XÇù¼áëSŸ8Ÿ2®ÚÝ‹u¼Æõ³‹u­ôY ÎWŽ+0÷Ó:ŽWâ:ÊÅ:.®‡1?/Œk)»u<‡Ã:ÎÇŽk"Çó¡¸áx\¸Ö{¡«w<^Æõ|ü~ïî8Ÿ>®ë«u|W¢-Öø~[œøo<_×níÆ+.‚¯çƸ½¶¸þÒ¹nôx>ox¿×pukÜß[ܱÎq¼3® ê‹ñŽçãq=NiÖX¯—¯÷ÛÎñyR\±³8ÞîÞq>b\§2žïŒñx¾Þ/gž¯âõ&Îe¥ÏÓ:žoÇ…K5æù*~0ïŒûk|ðÜùze|°Û7cñÁk±Žã5~p©î\¯ãƒµf}ÀñÁ™soŽ^Æãiö¾ð÷Á7Îñz1>8WñŠó]パq¸Ђ8ÇçÑÊ õ‰÷+ê ç8Ÿ±ášbçx¿·á N5ßOn¸¦Ñ·'®ãSW¼Þp%Ÿºå÷‹†3Ÿ:Îç¨;®çÙp}›sn¸ZL|0?Øq=—zÅùºñÆf¯ÇñâŽë¥Ôüþíö§ÿÛ8TyþÎûŸþoÇñðöüño[„¿ÿöÌ‹Ê=.QX¯» Ì¥<î¦ù â\0ùü‚¯v÷€/µÑõ,_@>¿ Äåî÷€/ˆ×‰ýþòùøµï/xüÏ›èq»üÙãæÂ§4q±XÅzúvº[øë^âXÿ¼üè>’Êë5ÿ¼þø~Æ[büóö£ÿù8ãv½áŸ÷ÿÏϸ9Nß–÷ƧïŽ%¾”OeÉ}\ª0žªy?&ÿ× Ï¥ÿßOãÖõ?¢5¬ÿ¿ýïõ›_þÛoþù÷¯ûÍï~ý#þÖ5~·8gßê~ò÷¿þáÿòÇ_ÿÙ?ýá׿~ýñÿü᧯?Û—×Oþý7ÿþÓëyýä?üô_ßÿÍøþ?n®Äó\Ô\‰µG’›s%ÈŒ3§$áx¾r„!ÂûxwaX¶W’0Œ#6 ’òz7 ’0DÒƒ$ 7~ñõžÑ0B ’0ìQq½M2Äøƒx“$<øƒâ\ºpg´gê OŽ™(Ýñ| ’òÚC ’0\>Iù¹ I—{DÅY„×Ta„°áŠ*\y#äù ’GˆAÂÏ$!Üq¦oT…ŽË0HB¸â*< ’0Äè“$!\8:!I®üâ±D'b(B’¾ ’0<ùƒÆYù°Šëû ±øc„°àœI>IOœÏà !¯†ÇÉÕ£"Æ5l¯$áÈ!×Û4ÃýcÄKTg0HÂpå0ˆít\ȱDgòÚ[œú0ìƒ$„ì0HÂ0Þõ`„0øh³„°$!I7|‡AŽý•ƒ$ ãêQ ’î_ƒ$ ãЃ$ q—Å áq¨Ktæ~¨Kt&9a„ðÄù\ ’0Ä·Š«Ê…- Ib K ’0Œ—E\'ä .œä5l3q¬ÊÆ'Õ†E(ŒÏç0H°} ’òÜI8n¯$1ó:d¯ƒ$ ƒ$ ã°ƒ$„+ǵÄ'ï†;Ç=¬§#Òú$aØÈsQnx¢À ÃJ¶Ó!z ’îÌÅã#pÃóc„a爊óP8û‰A†ˆçãf–gÀ OŽŠKT/Ö$!,»OEŽüâ±Dg²wÅ Ã8€Ä aËIÆËIÙ‘a„aåŠ%úÆqéC¼yä åAŽ[‰ƒ$f®øôŠƒ$”¸Ù1Hb&Ë.’PÆ#I(ã IÌäg$¡lüAcÄÌ×£qÄÌ“cb0Hb&Ç;r„rãŠZsDEßãmI.¯{„²’eslA3+®®á eå0ˆXHÂxRå ‰™ƒ`0HBY8„"–ÙÄŽS%$¡Ä¸ ’˜˜ÃÅ8HB‰'F ’P6r,¤™+ov ’P¢Sà ãí9G¸ìô±X÷ç ñ–s0GÂøL'Þy)çH·ôXWâããëÇu¾ÆGz¬-ã–s ÆuÔâ3¿æHoÏ9Æ÷÷+Ÿ|ÌqXVë’^›5çˆ`Ž„¸²ƒâ ãºÓu5nìô8GÂxË9ã:hcvö˜#!Κs$Œ[Ι÷ì-¯Sæ‰Ùkv‚œ#1ùç÷ cÎiÀ 1Gÿå ct`œ#aÜŸs$Ä[>1G¸圈±žŒq%çHˆw^Ì9ƸΔs$ļŽ*çH—ç c~?Ì‘ß'Ì‘0FÈ9bË9Ƽ=0GB\ßçHˆ9D3çH£sã ãžsÆ1Çaæ ã–s(Æãžs(b=LÞyâ2çHŸ9bYŒ×ìÀ1GÂ÷çHùýÎ͘oGrŽ„qÉ9c½³ƒÇ ñÎëè9GÂxË9c=£à c<_sŽ„ñÛ ñ‘s<0GÂxË9ën}ωëÅ9¿þhÆ'®ÃË9Æèp8G˜/æHˆ Ÿ¯9G˜æH×üúV­ñ|Ê9âšs80GÂçH£“â qvøœ#a|<çHãù†s$Œ9‡s$ļÎ8çHoùõµYóöÄ cÞž˜#1ûÈŽ‘s$ÄkÎqÁ c>ž0G˜wÌ‘0nùõcŽ€qÍß§Uã-;tÌ‘0Æã‰s$Œ9s$Œ9Gs$Ä;;3Α0ÆëçHˆ¼uÎ9ÆG~ýèÜq¼Ï9â|¼sŽ„1:Α0FçÇ9Æ-çTŒÎ]|wþ˜#a\Ò¥ׯs$Ä-ç„`Ž„1:!Αßs.0GÂwΑ0.9g¢,Ö=çùzÄ9Æ8_À9âÂÎŽs$Œ¹^1GB\ùzÃ9Æ5çD”Ý{£{3æÇB9G˜÷æHˆ{ÎÀ c¼rŽÄìºð|çH—œ31Ö³1çà"?ñÊãQΑ0æ Ì‘o|¾á ã#ç@Œ³çÆ5½vãsD8GÂï‡9G¸¤Çù ãž®Å8g8GÂøLÇí¡né¶Ÿ<à cΉÀ cœOã qÉ9$˜#aÌõ„9Æ8à ãžs&z5®|=ã qË9 ˜#aŒÛ“öã|çHˆ;§8GÂçk9GÂçk8GbvË9Éœ#a¼çоYc½sŽ„8Ï÷qŽ„1î/Α0ÆûaΑ0ÆûΑçCΑ0Æñ.çHsÎæHˆwžæ c¬Ε0憸 JÍn9GÂçC0GB}òùs$œ1Ç s$œ1çs$Ô܈s$œÏœ±îÖx¿‚9êœc‚9Îü~qâЙß»4‰[ÎIˆ9Μó°â÷Ýù÷bŽ„ó™s Æñ¼1î/Ì‘w~PÆ9Θ3€9ê5çDÄ g¼žà‰Óïg1GB½ñ|æH8ãxs$ÔùzˆÉçc0GÂÏ7˜#¡Î9 ˜#áŒ×#Ì‘pÆñ<æH¨9G€s$œ9ç!æH¨y1çH8ãöÆ uåû Ì‘pæ‹‚9F³ÙqrŽ„:çàaŽ„óù˜#áŒçKÌ‘˜½/ܬ.çHו¥˜s¸sŽ„1:mΑ0F§Í9bæ9GÂ0çHˆùymΑ0>ÒcŽ„1:mΑsŽœ#a\Òõ0æçµ9GÂøH‡uÃÌ‘óóÚœ#aïWsŽ„¸rŽçH£#ç ctΜ#!nìÈ9GÂ8Ž—rŽÄìuyŸ#aŒ9 œ#aŒ9 œ#!æõ 9GÂs"8GBÌ9N9G¸`ŽæHˆùyOΑ0>Ÿs$ŒÑqsŽ„˜sÜrŽ„1ÖçHˆOÞœ#aŒ9-œ#!ææ¯9GÂsF8GB\9'ƒs$ŒãýFΑó|iΑ0Æ ΑsKΜ#aïçsŽÄìsJï9j~=çHÌ^ùx̹jü¾œ#!æ>'9G˜s&0GB¼ãõ(çH×ç ñ‘s.0G¸aÎæHˆOΩá ãŽ9˜#!æÑœ#!®|>æ c<^9GBÌ÷£9GÂçHˆ9ç6çHÌÞóù.çH¨ñ|žs$fóxòž#1›ŸWßs$fï|½Ë9ꎯç\‰ÙÜ¢*çHˆOÏç cÌ à qÉï‡9bîó’s$Œãõ*çHˆîïœ#!æç™9Gbö±à|×=GB¯G÷‰ÙLÆî9³ùzrÏ‘˜Í׋{ŽÄlßs$fsS¼{ŽÄl^îyÏ•˜Íó­9GBÜÞçHˆ;>oÏ9³Ožï¼çHÌ^q¾ýž#1›[˜Þs$fóz£{ŽÄì“sLrŽÄì‚×Ë{ŽÄl>ŸÜs$fsÎË=WbrYðyßc®Ä»ÿä¹Ïøc”“ß=ö ½“ßÛ†~0;ÝQ§²>vǸCØø*+¿¸ŸJî/ÌÆWK…¯2ND°ñ5ä·ý™2w¥o›²óÆAãk7_e,/6¾ÊÂ/ý™rg\ºãÂo5ŠÉ™'ÇÆWy<ß™õ.q÷æøl|•Û£ñYîåG6ó¼wx¯2wxE8‘WdzñÉ‹Ùø*swøÑŸÍä_øSÐø*±/9ß™|i`ã«Ä¯Æwâ– ïÄqPÁz¸wáÆ‰¯½,ß™|¹dã«ÜÙþlfÅK=_åÁŠw,Ñ™ÜñœïL¾‰`㫌C86¾Jüùh|•…KTÙÙéŽ:MYYo§e{ݯá£ñUæªUÉ^‡¯¿ß™»Ò£ñUnÆWO›l|'îÜ`ޝ²°æŠ}#/a㫬ä¨Ó”ØáïL~|ÎÆ×°¼îÆW™5m<©Nä‰+6¾Êxñbã«,üVç©dwÎÆ×?(žT…؇ïÌÂý²Ñø*OÀñ¤ª\^wã;³>÷ŽwäKTYXÓ®«#Úb4¾3¹-#_eg=\vËGã;³ófGã«D‹‰ÆW‰åÆwbnµÊÆW™ßj,QCöÁc‰Îä‹ß™«t4¾3s£ñUîäX„Êòh|•­íR• 4¾3O¼¤²ñU¬‡Ç"T¶Gã;³Ü_<áÌŠmØø²ÓŤ²ò‹Ç"œÉƒ16¾ÊŠw”3ùa7_eœ*a㫌ÅÏÆwâ¸ÌïÑø*O~ñh|gr´ _åúh|•ÙéŽÆwævÀc‰*ã0ïLnØÁÆW™ûÎ%:““{Øø*ë£ñyÞû¿%:³Ü¯2Þl²ñUVr4¾3+.dbã;³ác46¾Ê¸ÈˆïL^BÁÆWùØ;~æx{ËNw,Beùh| ñ­¢ñ®ø`¯ðc‡÷±Ì”ðXf3¹Õ_ÃîXfÊüV׳ðÀÃç…L‘p&PÈ yÐø yЋÆ×Ø‚±tB´¶qÐíBœ4ÄâÆWÈø¯áÎ/Ž¥"lìƒ{Uò²O4¾†+ÞXHÂÆŠ÷èº<÷Žòr:4¾†˜ ·{ÿ÷½86vºc!ÍÜÙpÇYZÃʸ5Ç’ îXIƸ‰¯ú`ƒSÀÎGúlÖLì"ñUŸ¹µ{\+îÌÄ._un „Ä×—H"ñU×L8ãµ3.Q@â«nÜš‰¯3¶NDâ«Î­ÅðY¹3.‘CâëÌ­ë#ñ·¼„‰¯3.‘Aâ«^y _çš_?Ö›qÏÄv9­q _õž[‹GâëŒD‰¯úà%|øˆÁz¥ûf}f»U뚉îqŸ™ÐGâëÌû+®¥Vsk &¾êš÷g$¾Î÷×õdŒKˆøª[:Ž)œï8ÖÛ잉u|cç3]ë– îrªû’# ¢…Ssþ_gŽ ˆ÷‡ê¼‰¯zgbŠÄ× _õckù1MÔ¸f‚»îƹžø:3Q‹Ä×¹g"\Šqá%îH|¹µõŠñª³kn퉯ó™_?Öƒ1žï‘øªŸ¯øªsk#$¾ÎÜZ:_g¼^"ñuÆë ßÙãʬ5â‘p3áDâkŒ„…‰¯1·NGâ+^3FâkÌ­»‘øóöDâ+Þ21FâkŒÇ_c&ÌH|Å{ÞH|ïDx\"->2ÑEâk|oÝ>_c\âÈÄW|fŽÄ׸<_ã{ëùX³K&®H|™À#ñ5æã‰¯¸òx„‰¯ñ[âkÌD‰¯8H&¾Æ5Ü‘øŠ{®7$¾Æ8câ;{\‚–‰ðX/Æ÷Öò¥{¯ôX/Æ=Þm5¾G$¾ÆG&¼g±®ÏÄWÌ­•2ñ5~K|Åy‰>_ã{kù‘ Šsëb&¾ÆGú¨Æ9"‡‰¯ñžn›5&¾ÆL0‘øŠóñÄÄ׸¦[1΄Œ‰¯1Q$¾âÎ×k&¾Æg&¼ÇnõÎÄwöµLðzÍÄ×ømëx1/!ÎÄ×øÈ„¸wk$xL|Å[ÞŸH|ñ|ÎÄWœ#6˜ø¿m/æTÜL|Å'G°0ñ5Æó_qÉ„‰¯ñ‘‰pÜ_³ï­¯‘øŠ[nMŽÄ×—ð3ñ5æÖïH|Åwb‹Ä׉ßÙ{>Ÿ2ñ5f‚ŒÄW¼~x$âç#˜ø3Eâ+Þóë‘øŠ÷fÍ¿‰¯1T$¾â<^`â+Î×k&¾â;Eâ+n\OL|ż _c¬w&¾³…ÇSL|ñzÍÄW¼òx‚‰¯1Þ3ñu~&¾â¯L|û3ñgBÃÄWœ _q&0L|q¼ÉÄ×ÏçL|żD;_c$ÌL|Å™È0ñ5æÖíH|Å-ÿ^$¾ÆÜš‰¯q{&¾â;±FâkŒD‰¯ñ½µûº¨Ï…¯L|¹u;_1·ÎÌÄ×ø-ñ5æß‹ÄW¼åß‹Ä×ÇL|¹5;_1wÏÈÄW|ð| _cŒ°`â+ÎóL|K&¼ñ÷Î.¹µ9_c¼1ñ5®™èŽDV\skz$¾Æg&À#ñ5æÖïH|Åü`#_cníŽÄWÜy<ÍÄ×øLWo&ºH|g—AÀÄ׸>_ñÊç3&¾ÆLh‘øã|0_qnÝÌÄWÌv3ñ5>3Ñ]¼ñ|ÏÄW|p=1ñ5nÏÄW|f¢ŒÄ׸d<Χˆ ŸO™øcD_c&ÐH|Å9“‰¯¸åÖíH|™Ø"ñ5î™ðŽãy1ŠL|q<ÍÄwv]>Þ‘øŠ9=_c&ÈH|ùû"ño™È"ñ5Æë5_qޏ`âk\Ÿ‰¯8Ï3ñ5fbŒÄW|ò|_c¼ž2ñ5ÆíÁÄW\x>„‰¯¸æÖìH|Å9"–‰¯1Ö+_1/cÌÄwö¸›à"ñççL|ß_q¾aòk|>_5w{bâë—à3ñuîÄW}0±BâëÜÓc„©øÞ>_g$ŽH|Õåckùq¾Ü˜_WÈ«+_$¾Îø{‘øªo/$¾êŽŸ‰¯3O$¾âž[¯#ñu>º:¯Ü:‰¯3D$¾jžgâ댄‰¯:B$¾j¾Þ1ñUgˆÄ× _53&¾Î¿O$¾j^2ÊÄWÍÏë™ø:—Gâ«î™ÈFâ댄‰ïìHü‘à"ñ5FÈÄWÌ­›3ñóóÊL|+~$FbžOËÄ׉6_1?OÉÄWÌI™øW$ÀH|Ņ뉉¯1ïL|Å™ˆ2ñ7&úL|{&¼LèßÍÏ+2ñ=fÿÇzdâk|oý>8q>Þ™øŠ7¼^fâkŒçS&¾â{ëw$¾bŽ˜ËÄWÌã‰L|ñ|ÁÄWÌ Ñ3ñóâÜL|Å ×Ódâkü–øŠ3gâ;{ãçµ™øŠy‘X&¾bîA˜‰¯˜ç›2ñ|¼3ñŸ8™‰¯¸db‹ÄW\q¼“‰¯1G&¾â†û3_qÇù¤L|gïKn-ÏÄwv&¢™øÎÞ¸5z&¿³w&´L|żž-_1‡3ñ—ܺ‰¯˜ûXeâ+fú—‰ïìca¢›‰ïl~s'¾³ùz'¾³ù~øN|gŸ8^¿“ßÙ±‰¯¸1Afâ+戶L|g_/ñ~éN|gó|×øÎ>rky&¾³ žOîÄw63ÖGòûnŽØÍÄwöŸžü>cßEö~Åëê¸x»#')0ùÃèá¢ýý‚ÇîˆHqGw3Ú_Ã8ÈCû+äTw¼6ÜøÅGýŠå°¬¯l ËGûkXÙà®UÉÓ†h 㢠´¿_°tGlËí¯cü 3?ý™XØàn«#þ„ŸÄMl÷fÀgq|´¿†¨™ãŽ5D‘í¯anÙ‹PXYÛW,‹²sãäh Wþ ~:ÆÓ6Ú_ÃþÑþÎÌ)h ±DãÎqäâ€ü‰ßª÷ÏíïÜÇκ7£+Y÷Ž÷H3¹kÚ_ÃÜXwÙ¿b ÌVÖ½{³ì¯l…Ü í¯áÎæ¸/ލ¸¢ý5l¬{·SÉ BÑþîìwc@»ðdU\«c㯟¤NäÞ:h ³ß%*¬,ƒ¢äTr´¿†…?hœUv–ÁÐÿFv-h +ëÞqeô–£üßXqYÚ_Ãl§ãÉ~7–¨0^ Ñþ ³IÝs€‰KTX?Ú_ÃFöű³²%:‘‚¢ýyò#|´¿_ðìŽå£ý5¬d?”+·Gõ·î¸“Gqlí¯a–ÁmUò„.Ì7D9Z°Á§ÜwGl_í¯¢ ý5\ɱD••…î¶(s›ðh ±¼£ý5¬ì†ëæØÉÖ•Üíí¯aaƒ»Žý£ýfËÞ°…í~ ñÕ°'æSAÇ"ü”ãZ en‹P'òÐþ ó‰¢ãSza¼‰Gûkˆž5Ú_!#´¿†hR,BaœœGûkØùƒÚù9£ý9vZ`¿»vÇÊ~7ÆìOä%‰h ã¥í¯aas<–¨²´¿B$àL‘aa<–èÌí`´¿†ù­jqÌm†Ç¦˜Êܲw]•üxí¯aá§òäfÏ;6[æ6Ãc‰*Ñ+c»_eÿh…yp»_%¶tÅv¿3+>®áv¿Êí£ý5ăOj•ñÄÈí~•uo]•M9¶ûɘ¸Ý¯¿$¶ûU¢þÄv¿JܰØîwbÍîÛý~Fl÷û9c£áÁn¸lލl±Ý¯²ò[Å™³p»ßϹoŽ'ûÝØœ@˜ep©JîìÅí~•q’Ûý*ãn÷;sçŒl÷«Ì­‚¹aÆÄÂnx|¶û s·ß¯ü¶»Æ‡[¦Ãã£Uñ‘i&vû5ÞóëëiKW¸Û¯ñ½›ïøèYœiwû5Æ¥¯Üíט»Ù®¹[Çl¦™ØíW|ïŠÝ~·Gúë\òëÇGûÆ-ÓZîòîÇn½k³æn¨Øí×øN‹Çn¿Æí‘þªóÒ îök¼eÚ»o|áXoj¦ÛØíWÜ™æp·_c¦éØí÷+KûŒë#ýufzŒÝ~g·L¸Û¯ñ‘æî!³k¦¹ëaœiwû5æíYr·‘O»m¨[¦½c½ãÒBîö+Þ¸wû5æã»ý—GúëÌÇvûïù÷`·_ã#¿_߬¹Û0vû¼t‰»ý3Çn¿Æ€Ý~ÅçGz»îÖH«¸Û¯1ÒîökÌtŽ—Í.Ü‚»ýo™Þ.‹5.­ãn¿Æ¸´œ»ýãöæn¿âšé3vû5>3Í]Nk¦£Øí×—fs·_c¦·HÅ—Ž1ý5fšºç¥H³±ž˜þŸ™ÇzQs7Ø#wo™Í´é¯qÏ´÷hÆ¹Û Ó_cî&‹ôטi,Ò_ãžé.w‡ys_2½Eúk|ÿ¼±Œñ|Ëô×øNw÷n}§Áã31/ÝÊô×x{¦¿Æ{¦»c=óþFúkÌté¯1×+Ò߯—vÍÞ2íGúkŒôŠé¯qÉ´7/M{óžé>Ò_cîŽô×øÈ´˜—¶Í>óëKÿÚ­Z3ýCúkÜŸé¯øÈÝ^‘þoùõu·Æñ Ó_c¯1ýŸ=Ãô×iÓ_ã#ÓÛu³Æã…é¯ñ½›o¬—Ù…ÇKL¿2/ œÍ´é¯ñ™.ݺ¥Ç'Yâši3Ò_ã’i0/M|wËtû¸/MœŒ×¦¿Æx<1ý5æn¶HïÝ|ãþPs½"ýß»#ý5Æ¥íLy{ ý5ÆñÓßÉãŠ%¼ž"ýuæý׈;×Lƒyiæ»×\ï¼4R½?Ò_gîFé¯3wkŽô×ùÞwÝŒ7®7¤¿Î¸=‘þ:×ü~m5ÞùxBúëŒç[¤¿ÎL?#ýuf:¼ãö˜»uòÒ'c¦½‘þ:Ÿ™înÝš»ñ¸=fçù¤¿ÎÜ 9Ò_ç’ið¹Xãù鯺änÆ‘þª9›é¯3wóONñ~鯺ñxé¯3Ö;Ò_ç{7á~XóïmX¯³ï4—®}å¸?Ô¼¿:nouy¤¿âuÉÝV즤æn²ñ¹¦3Þo!ýuÆë1Ò_u/"ýuÆóÒ_g¼ŸEú댴é¯sÏtwÙŒïÝ‚£ArÞ2ŽÝœÔÜ-ùÄí¡.™ön»5wã=q{¨{¦½ëbœé Ò_g¬¤¿Îg¦ÅãÒWc¦ã»a©1úé¯úNËnO5ïïŽÛC}dÚÛkœïEúëÌÝ€£ñTŸ™¯ø{Ôx¼#ýuÆó!Ò_gœÏAú«æ…‚Lñ~é¯3Hy{ìØmL÷{øTܹ?Ò_uÍ´· Pc4Ò_g¬7¤¿ÎÜ8g<ß ýUçñ(Ò_ççn¿ÎÇ#ýufúé¯3Î÷ ýUgÚ‡ô×yÏ´wñ¾Óà­Xãxé¯3îO¤¿âmáý‰ô×yOÍúÞ-¸œÖ8^BúëŒó%HÕ¼h†é¯3¯Hñz‰ô×ùÞÍw?Œ7¯#ýuÞÒ¥[ã|1Ò_ç–n›ñÎõŒô×™iq¤¿Îx½Búë\é¯3~^:.ÎÑ¥H·ô8ž2Æíô×Ï·h$ñz„‹ê;îH_Ôç#ýuÆû-¤¿êÂϳþ:ïô×¼qwÆû)¤¿j^zÍô×ï§þ:ãxš»ýŠw än¿ÆÜm»ýß»ùŽãc¤CÜí×iwûóý|îökŒô‹»ý#ân¿ÆH¿¸Ûïì{7EîökÌÝt¹[¡ši/vû5Æn˜Üí×é%wû¯Üí”»ý# ãn¿Æå‘þ:·Gú«Þ¸Û)wû5¾wó]k¤‰Üí×øN{ÝxgzÆÝ~±Û,wûsôrîök¼e:<Î7ô×é(wû5FÊÝ~Åg¦½Øí×7îök\3 îÞüyHÅ÷n¼5Ó²Ùø{™þ׃fŠön^•é¯1no¦¿Æ]Àô׸f̯wãn®L±›1Ó_cîÆ‹ôצ¿â|>cúk|àç!ý5Æó)Ó_c¤éLggÜ‘é¯ñ™én¤qjìÍôW¼bô`¦¿ÆØÍœé¯q}¦¿â»a3ý5fŒô×8Ž72ýï\Lãx5Ó_ãòL‘>3ý8_é¯1v³fúkŒû›é¯øüH{Çë­˜ïg3ý5fzŒô×÷Ó_1¯Êô×øx¦¿ÆHW™þŠ[îŒô×ø|¦¿Æqdú+æ.]™þc7ÞÜíwòÉ÷c™þÇûÁLÅý–é¯ñ‰té¯xÃzÎô×i3Ïw#Íåùlñž_ó¥âƒ?é¯ñ‰4鯘£îÝ~Õi.wû]ðx½wûU#-Ïôw6G³ÝéïìÜ­8Ó_u\os§¿³;Î÷ÜéïäÂÑÐÏÝ~ßÌóµôwöÚý÷¹ðÇî¿cëõh¿“_ð‡vº1žöS»e}ݯ2žNÙø*ãd_%ŠI4¾Çç[ÏÆ÷SFã«|6¾ÂXÂÙø Ñ˲ñÈÍ̲ñæVÁÑø~ÊÒs3àh|…¹¡o4¾ÂxÒÌÆWXØéFã;‘'\²ñn¬x£ñîü5¢ñÆ¡R6¾Â·ÆWøÖø~ʲ(wnœÌÆWW©gã+DÍÆWO®™üNQ ñUž,€Ïñ°f;þÆŽ—66¾Ÿ0߯Ì||6wÃDâk|'Âg³æn¹H|q ßÙ5w ÊÄWÍDnÍ”üÝkî¦ËÄW½ç×3'ŸiÞ™øª¹Ûð–Iùìö–øÎÞx &¾ê#ÛeµænÈL|Õw¢›­ù›÷Ý€ÏÝúL30ŸÍ¿gÏÄ|6.ÊÄ÷ 31wN«ÏÄwö™»Q3ñU¯™Gâû…ûfKÔ2ñUŸ™è‡5×û™ ú»K&¨H|ÏgâkÌÛ«dBþîš >߯Üvk\¢ÄÄ× $_q^"ÈÄ×øÞM¸.Ö\ï-ñÙõ™øŠ{î¦Û2ŸÍݸ[&Þ³k&¼#±›Ýî݆™øª™h÷)á¾ÍÇ#ßÙ™˜dâ«>2ÞWëš ðѬŸ»ýªs·‚L|ÕÜ-”‰¯ºd¢Ë|ö½›/ðÙÜ •‰ïì=w“eâ«f¢ÉÄW]3ÁÝ6ëž_¿wã¼/_õ–‰q$¾j&ûOFB’‰¯ºdÌd|vË7Ö‹Ï™øÎæÉœ;ñUéH|Õç[â«néý4.¹[ñ™É÷l¼^3ñ5.éV­ùx@âkÌÇ_qå%æL|÷4wŸ˜}ï6ëA}'ºK·nÏÄ׸g"<>Áç%ÚL|¿2óÙg&¼q«9b‰¯˜ÓÇ2ñ5f‚Ý3ŸÍ„‰¯q{&¾Æý™ø~åVÕ=wÊÄWÄ"_5n¯L|Õ¸„;_uË7ßÙkf>Ï'™øª¹Û*_uK|go™€2ñUß»3ŸÍt»ñω©š‰(ßÙ™0fâ«ÆóY&¾³s7ÐL|ÕH2ñUãýB&¾j<fâ;ûÌ݆ÏL°g¿íök¼gœ»³Lf‚ÊÄW#_5×ßÙ¼ÄãN|ÕÇ[ò«Æã™»ýs·ëvïóæ;Ñn¹;Ììž î8c-n¼»ýo™ORŒGâëŒãîö+î¹›)vû5¾`&Ú³q<ÆÝ~{~=î§Ç•aø{3ñU#ÈÄW]ÞßÙkîvÌÄW×ûL|ÕX/™øªq<”‰ïì<žÍÄWÍ„•‰¯úNt#1U¿'¾³÷Ü혉ïìƒ [&¾j$L™øªû[â;›³ïÄWÍû“‰¯ºdÜkî¶ËÄwvÉD—‰ïîÍ#2ñU··äwvŽHcâk|dÌ„zvÏDw\"'ÎiL|±Þ˜øŸ™ðnÍš»õ"ñ÷LH·L¤g3!Eâk|ïæ;ã’ pìæ¤~îöëŒ× &¾³×ÜÍ>_õ讋5w fâ«ÆñV&¾j¼ÍÄw6gÑÞ‰¯š 4_5ž¯2ñUs7b&¾jîÆËÄwv¾ŸÏÄW}d»Ö-Þ£[ãñœ‰ïì=wÛÝ2yž½¿%¾jœÌÄWó ™øªñz–‰ïìÁ“‰¯š ._5žo2ñUãýP&¾j¬§L|gçóq&¾êý-ñUŸé²Z3fâ«æn²L|gçžL|ÕXï™øª1B(_uKïݘ»U݉¯z{K|ÕG:_uI3™žÍ߉¯8GÀ1ñ5æíÄ×øãùž‰¯¸óùˆ‰¯ñþL|ïx$\Æ8^aâkÜÓç¦Þòx2_5ηfâ«ÆnÕ™øª1b*ßÙ9B3_õþ–øªÏLx÷jÝÈ3ñÍàN|Õ1’‰¯¯Ç™øªïÝ€#±Us·b&¾³3‘ÎÄWã‘L|ÕÜ­—‰ïl^8{'¾j|˜‰¯çû2ñ}ò|]&¾êó-ñU×Lx×Åï73ñ]ðzw'¾êc¥#ñU#ÍÄWÝ2n͸r7ÐL|Õû[â«>ß_õðr7Áwgâ—ɯ _c$†L|k&À#¡?v󝯨“‰¯1O&¾ÆLˆ‘øc7e&¾³wŽº_5vKÎÄW]‘Ð2ñU#aÎÄw6/¼¹_5¹L|goùõL|ÕG&Àm³Æí•‰¯·W&¾³÷Ld™øª™È2ñUÇçwâ;;åL|Õ[&ÀÝ›»3ñUãñ’‰ïìÇ wâ«Æn¸™øª±Ûm&¾jîæËÄwvaBš‰¯ i&¾jîæËÄwvå홉¯ f&¾j&ÀL|Õx>ÌÄwvcŸ‰¯ë5_uMWçÎݼ™øc·V&¾Æ¥Ó1‚`ò±ðù,_5ÙL|ÕHd3ñUãù"ßÙ!~'¾ê8p'¾ê8»ßÙs'¾j|¿L|Õï‰ïì‰y&¾j$Ê™øÎ>2ѽ“ßÙHà3ñ}òñ”‰¯Ï™øª±u&¾³s7ÓL|Õq¾òN|gWœ/z$¿³$ÀL|Õq¾óN|gó"ÙGò;»¼%¾³;nïGò; ,_c$¦L|gŸÜÉäN|ÕØm6ßÙLìïÄWÄ9ßÙìä÷Ý;ž/Éïl&¼L|gó|Ç#ù„:ßÙ|½y$¿ïæùGâ;»$¿ï®x<>’ßwçn¼‰ïlü¾Éï»™¸>’ß7î~÷H~ßÍë ŸÉïä•ü>÷þH~W\ÅœÉïš5ð±­ïªú‚c‰*ñ'ÄeÂóît¯ƒÃÆo5–èL~0…Æ×wYœÞø‚c‰Îä%4¾†¹%ðX¢J,Âh|…¼X¯ÓÍÑø2¡°“±ß™9¢ñ5Ä/—ú 9ï¿ ãð¯aeÅ;á̬ðã¯!ž£ñî8¬Gãû¯÷܆ïX„39# ¯!î¸ìAxâ¯aaÅ{* ³™‹Æ×07î‹P™o©ÊŠ Ðø~Êh|…ܱ¯ae‰;–èL¦h| Oþ X¢oŸ–,ÆWy°¦Mœ27ýï̽l|gn¬¥Ñø*ó‹G‹©lüâQÂÍä†ßl|g÷Ö¼£ñUf§;JÍ™<ÅÄÆWOÈl|g¶§h|•qøÁÆW™÷ŽÚrfåRA㫌ÓZl|gò¢u6¾Jôßh|••õðh1gv\ŽÈÆWÙïÄÜÝïLÎ2aã«Ì{Ç2›™Ë ¯²°- é3¢ñýœc©ÌÌâ¯rc<–Šòä·ÝåÌ/šl|?çXHÊìtG7ó䝯WYïÌ»¯²°Ä¥åLž(eã«ÄÝÆWÙXÆòfâû•c-ÍæG™ø3ADâkÌ]Y‘øŠ{Ä׸<ßÙÛ’»²"ñ5.ÏÄW¼òy&¾Æ{&¼#±4Æ%´L|™ "ño™8"ñ5®™ÐŽÄR¼¿ïêkÌ]o‘øs×Z$¾â#T$¾Æ%=Ö›1w]Eâû•·Ý80&¾â’ ._ã’ëí+ÄS\3!Fâk¼¥Gâk\Òe3n_ëQͯGâ+î¹k3_ã#ëé ·]SÓ3ñ5>Òc½·gâ+¾wFâkÌ]¹‘ø·LxÅxË]«‘øãK&¾âLH™øŠ|>DâkÌçS$¾âLt˜øã-&¾Æ-Þ}5¾wÝEâk|dB<Öƒq͸íƹ«8_ã·]}ß_c\"ÏÄWÜ>âV{&˜H|™0"ñ5>2‰ž1o$¾ÆL”‘øÎ>&,L|™ˆ"ñ5>3îÅúÞµw¬ñš»6#ñ5f¢ŒÄ׸d"\Nk\âÊÄW¼ñM&¾Æx½dâkŒKÈ™øŠ÷|¼ ñ5æï‹Äט¿/_ñ‘ 4_ãó™øß»Çz˜}æýÄט»ê"ñ5>ž‰¯1×#߯ëmvÉ]‡‘øc_ñH#ñ5®™ðÆzQóù‰¯¸1±dâk|db<ϯëEÍ]s‘øŠ{&€H|™à"ñ5>óûDј‰%ßÙc*yz¬ãš ðXÆÜÕ‰¯xåzbâkŒçC&¾â-T$¾ÆG~ýX/_y$‰Æ8^bâ+Îãe&¾Æå™øŠy /_ãöL|ÅgÞH|ñzÈÄW\Þ_ã-Ý­[s×Y$¾ÆLt‘øŠ+Ÿo˜ø߉îZ¬™à"ñsW€L|ë3ñ5î™ðVçþñõq{O.ù~’‰¯1m$¾Æw"<_ñš 8_cü>L|Ź+&_c&¢H|ï]ƒGâ+Þ3‘EòkÌ]yã“Wuî:‰Ä×ùÌD7nÙ'Wq‰“ó™ ð×iŒ„—@©sD_uÍ]#ñufbgFK&ºc€¦q˸4ãQ„{g&²ñ‰¬¸æó=_õÊĉ¯óž ðvXó÷ϪÔ9≯3w=ŽÄW½g—¨}éÞ¬¹ž¢ERóL&¾Îx¾GâëÌ]YÜž³s×:$¾ÎÜu6_u¾_CâëÌD5®uuÆñ_uåù,$¾ÎHÔ‘ø:ãù ‰¯š»j0ñu殸'nõǸÙG$¾ÎH€ø:3‘-¸=Ô=ᶨ[îÄ×ÏGH|yDâ«^s×äH|q¼ƒÄׯGH|ñzŽÄWÍ]ߘøªsD _gœOBâëŒãM$¾ê¡‚Ä×yO×Õç{‘ø:÷ô8_$Î÷SH|ÏGâë܉¯š0ñuÆû $¾Î5]ó|%_ç=]Vk/#ñuÆã‰¯ºñx‰¯3Ž—‘ø:ãõ‰¯:G@!ñuÆó_ñø€|¥·bĉ¯3wÕÄW½òõ‰¯3Þ/#ñu.™Ç$u$¾j~ÜÇÄ×™‰ë‚Q³ï]mWü¾j|ÞÄ×ù¹«¯:Gà!ñuÆë_g$¨H|ÕœCÌÄ×G$¾j&LL|±Þø:ãù‰¯:wõÆ%âÎ8߈Ä×™ß/_uãï‹Ä×™¿o$¾Î¸=øª;߯#ñuÆýÄwö(Kð~‡‰¯1ާ˜øŠy\&¾ÆXL|Ŝɟ‰¯qOŸ‡1/…ËÄט»#ñór¸L|ãù>_ãx>ËÄWœ‰_cìÊÊÄ׸/ôVy<š‰¯1d$¾âLø˜øÇñh&¾ÆwÂËï÷îÆ];™ø3FâkÜ3>cŽØÊÄ׸d»ê•Ygâk|à÷EâkÜ`$¾b>2ñ5.é¹0{C"“‰¯xÇóu&¾Æü~H|Å. ÉÄ×øH÷n¿—‰¯øä®´L|ãx?_qÉ„‰¯q¼ŸÌÄ×»f3ñgBÏÄ׉(_1ÏggâkŒÛ›‰¯˜#ž2ñ5>ž‰¯1L&¾³qšû‡;ñ5ÆýÅÄW¼f‹Ä× 6_1G¨gâk\ž‰¯˜ïg2ñ5ÆíÉÄWÌË2ñ5F‚ÊÄWÌ»™ø—ôq—¯¯Íš_ÄWœ# ˜øãùœ‰¯˜Ç™ø#Qfâ+î|¾bâkŒÇßÙ{&ÌL|±ë3_qîzÌÄWÌY™øãö`â+Þ¹Þ™øŠ>ß3ñŸ™#ñ5Æó_1GÌgâkŒ]O™øŠ¹_]&¾bްËÄ׸"1.¹+÷»¹¿T&¾³GÂ_Ÿ‰¯:ÖÃøÎ^§ÄwöÆ]a3ùÍ=$3ñ5n™ðž§1¯—ÊÄWÌã±L|Åç³2ñsDa&¾â¼?˜øŠ9*ßÙgÞÞ™øÎæ^[wâ;{ÃóÁøÎÞ™xgâ;›ç{îÄw6/I¾ßÙ¼óN|g×Üõ—Éïl^䛉ïì²0ÁÎÄwöŸœü>cßäwÎ|÷ÿøZ^¿únl¨rD·|–×ï^Ǩà¯×g[óŸ1NéþgàãŸÍ¹1ÿÙ» Üÿ Œö³ï¿ûó?þý_ÿìõË?¾ýdüçùûïþü¯¶×úúþŸ^k¼\.÷Àã*Èñ,|Æž¨ßÿîõ“ÿò_·å§¯ïûÝ_~ßþOû÷׳Fÿߖ?;þ¾Á;}Œoðß>þ¹þIqQ­ÇpƒzÝ,q¦ævÜ.y§½âî1äw_þÓ=æf}üSø¾Iÿ“_¹6 kˆ#•ñ+ÿþŸ_û÷?âoæ7Àt¤ñ >þõß½þõOºWwþ€cúáµÄ¾7;.¿~À?üäg¿øåO_×ëOþ÷üâøo¿zýË~ý«ßüòß~óÏ¿ÿé?¾¾ÿ›øùßý_·endstream endobj 909 0 obj << /Filter /FlateDecode /Length 1358 >> stream xÚ•Vßoã6 ~ï_{P€³ký´½Ûl¸è€ ·]{ØíAuÔÄ›c÷l¹·þ÷#E:MŠìvC€X¢¨ä'Š¢\ð“+i‹¼.íÊX™;£VÍþâãEîʺÐIãh˜–$ïcÁÕÍÞ®Þ ¿ÂoYÊÌìô‡Û‹«k]­$,µ\ÝÞ¯Jµ2ªÊ¥†Ùfõ»¸n·óÖ™*•°_¯3#µx;†MÛİ!ñÃ8Üù»¶kc& ÷øÕÂfOkU‰àG^Cç¦ÝA§y|l×Ö ß½QeD3ôúu&…_KÑ p˪‰Ðö[šûPBÓO-î‹»lýÇíO|&un-…3Ìqi}p'vĉ?¶xûüKZñý†På°ù¡ó1t!’Κa­JA>ŒOÏHý@„˜ÓÂ[TóÀU›âD*mO«q—˜I¶·d XÛ#°›cHW×öäȤÌUiV š—µ¢8|ìG ÁÚBÄv@V–bŠ>ÎhP ÎË›f–mâ+[à5S°¡,œ |e¡µ¨sY8ÆA¦œ¬Ä÷7oÞ±Å÷ï©_@ƒ(4êØ)t@¤(HC99éçsHš‘4»£r¥Í—ºÃ™`ÃBªÊŠ1ÀCã¬ïn>ë†eË:¯dýYq âÄåU!ÿ äêÚ©ãLeóÊ•„ùkôw]À<œàtÛ¯èôSn&‹Žq 6*ù«>“!EIF¥4|¾EEvN ¹Zƒñ´ïv]Áņ8« IxðXlp²ñÑÓ(]ªÝ€%÷ø÷ª…’è¶³êÄHX Ä0M-0@»#Á¤?à²6w΂{É­ý„Μó_Û¼¨Ü¢wÚ•¸aãnñ ñwa‰iYìö—#Üa%˜·èUu‘—Vžòë7T#{¬‘Kƒå²a!*¬†gâªU®Ë/ ë ÷QÀª(E2eúÁ ŒöÝy¢ÉŸóiä'ú?µÝmç¢M |ÒÆk¡„FP„TBUâ—ÀÕØëÂ4qâ©27OKåwŠt×ÑàÍ…“æCƒTó”ÓøD¡ -¸Ò}_e^;½èar!úp= މ%4µHˆAQc¬²·‹o÷sߤgï\~./åဠ´~Ê›aÿ0¶Ó_çÌt Go_\S&ϧ¤ôƒ€AH¯íÄï®.nÛ¿I¦šL—+Äôþ¢ ]`Äý7)o:x¯2 Ò!.(´S– õq;ï%4IZF‰¤ïDz"ç=ªpþ°tz/JzzÑÒ+R‚ß{ -•ˆú˜×X24ÍS”u²Eå°<-‡.×Ê,|÷~¦³y`òZÊEíEH`ßÓ§AÑÎÚ¦‘D”àMÆS»ÐoS;’œCO©#€)Örâôâ}GÃdi*M%ÒDº¥íi !#mê.ÅSe  lîb›%5é6¡£yÛ7ݼ!6·/î}‹ŒócŽ6µV l©¸ÆnÓdËí\ÕµÖ”>¸²¾ÍÎ=£”¶FéCÚâx‡•ÜVežÃ15~8šb F’>ÇM&!ðú‹ÀÒ^bÀS¿x¢>ÍwSø8s·÷ll:ÜN¸œœ@^±¤c‡fpÓÂ%Òð¤²,uˆœù ™òdìgþoý‚†ç´_êèíþ&cÉI™ÁôSp^Ñ"݉4ü–¶5¨qùÜÄ]²æ%604qâòÝÍ%fÁÒˆ¼¸ÄǾœ¹oJ¹’ا@ÃV±ÿ¦FÕ‹o/þQÖWHendstream endobj 910 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 911 0 obj << /Filter /FlateDecode /Length 1407 >> stream xÚ­WÝoÛ6ï_a&aËQ¢Šu@×6@ ´Zyhû Êt¢Õ]QNºÿ~G-[±”¸Ýò`ÉãïŽ÷?æžžK5c”´`³ùrÆDA²4Ÿå"%”§³ùbö1êLüyþf–d¹?K˜ 2-ðlÙšuœ¤™d‘¾Ñ1‹š.Y¶ZljdyôââÕ¤>\x ÆÏÓ!Üë/Þ½ˆN³2†•°¼ ¹*@eNŠ‚#ëïøN[?¶]ÙÁknü–à·´¤Ù®u[WŸ¨¤skñüùsü28fcÎ8ÀNPÀÊ4WŽÎzl´—ÃíêµÆ³ç¥½{ñWgp’õÙÁZŸ9‰a4‚ó½Rw@ŽCêWT©Òè̽…ÁÝÚmðCìE à‡ºÙ:œ|Õ.o6™gUÕJË¢®-›¡Jݺìv–º$tèúËX‰È%Ï $¶VÌ ƒ¤§yiGãPA!à;>jDw‰p­áo­Ûk ÑâsˆÆ1n×î÷ PE;³Ä¯¾qgºqHÅ=,4ž«­¯êÆ'¬Ð®ŽrnBm‡5+JdÑ?ËÖcOò‰.w<Þ¶ø(Ó¶Ún¼š¦YX¬„BA)r¢·uwiŽ1êRßi7š§t4AÑäþ!,ÄúÞÍòÈÍP”h(KÏ[ým«›ªÖ¨ãX±þ¯…бðeÔm5æ@稦snñ»MÙf8¥êÃÝ<¢¡Ø3–"£ Œ/*“Œ%\i)¦Ûâ™rH¾}ÐP橇¡ˆìa5Þ ÇC¶p!PÞ”}ƒÈ -TðÅŸ­Ù˜¶«Móû›Ÿš20–SÙ{eè»F—Ç6÷·(¡ø‡—)iâ$…Ïn‡ƒMs–p;’CNM;Ák6€ÎŽ% NY¿Å€Ëò0îœ Oèëç®NWˆ ¥ ˆV_Åî×B‚že\ýT4*¡üücµ ÜwC1ÃMW2ÀíÒ´k½À½UÙé á6Þ³–‹øB_»¸I¼¼€QÕŸ 1*d®ü¼qK•m €–ÀƒU]4{ÝG¬X_v;ý’U¤‹mê×XÞtWû²{mm¿Z$M£‘¿2ÛÕ"\Á&õóÎz·M% •ò@åtBå4çчº©4ò ÅXÂääÝè«ÐVv$[½þPl_¾|/±Ø–m¾¾mëNãž½†DÄÝÞä@õ4LY‡S”k½,·«Àou,‹Éæ"Tñ|×8æïÿz=pPë'†í` D×2àæƒ ”°¢o±®4åZvc ¬‚Ý?B^•MM…Ç3•þ¾)›©ÌïFÐ3™WâÉáxrÒ¬öÑM›ÏT¸øùžVJHƒœæËߺ }ŹÚOb«Òdé {S˜\hï…_ƤHèØj?cû¹aJ¢¸¸)a`M™©Põë_à³ÉvW/ð XÚ±Y†Yn?ÝÍ­K°¾ÂÚlBÛͶnJuLý”ê\±§.ß’ýx6ø°UªÅB#`Gÿqá`ËB磯3g'ÐØƒ–——»òßG„OHA*?Q*=Ij¨"€ñ‡Ÿêû4Q„öhß}{¡oƒ0vßSÓ ©#Oý1©´—>"U©âD·rÂEºãAú'ÜšMHrë”TúCRó€–žÂ*W}0yz(õ^¿†`RB§#x\(»×­Ç]„ÎÜØ*¾öú=z=ô/6©)1endstream endobj 912 0 obj << /Filter /FlateDecode /Length 1989 >> stream xÚÍËŽã¸ñ>_a8{[×^Àv€¼Û ‚˜F€`glYnsW–‰êÇ%ßž*)KmÍö4C.YU¬7«ŠþÃ݇Ÿd¾â,.XÁWw‡U&V™T1ju·_ýÝmrµ›P"2u=ô¶Ó¶Â=ì±"ÄA—6€´%X£ÍãFä‘'ù«>׺Ùý­2U×­î<îÞè¾Ú°ê­9iÛ‘ˆÚÃ+Y箽×÷¦6ÖTžÑ n6?ÝýeÅV;.ãDdÆ¡kO› 1ÂÅÞ|aRV]Õ š–€¥zd‹kd‹_d;tÕwiôäBÌÏàZô/8𘳅†¦´¦m¼Ó\ð õÇOI6 †LyœÉŒqFôC÷huM¤ó¸)35Ržu‰êü²I’H?Tñf§‹ngvЉ8Ëó¹ƒ4ºGòhØìxÔ{/~ü”Š™4V© BÊöù|\ÒEʘ¥I »‡à€gê5zB/ÊÅú…„Ú£é ^¶C½§%žËœGa³o›Šhÿ=°-‹Èß]¼¤ç.+âD+ÈŠqjün³Kx•¿iôýÎïш/,aŸÁ¹ø…ôÃP#Moµzr¢ý}ø†G[ZîµÕ´º¡O8S·Íƒ'è‡û¾²’4rB:)à 7Ó|õÊþlOrqîµ9UöØîgÒÖ÷p… \uû´vj.d~°[ü_Û´ †‹ÿ™áÇWÇKt0µ)ù;Ï¢Ùñ¡Ó§*xŒð7ü»Ñ‹ä5Ó(zò7_ˆz*¾®±xKcñ>Å›‹™Æ¯¯:›Ý±»cå*+¦å_²Ü•¬,D4¸ N@È…"mOg]c@Dlñª?5´uÕðŸÌÃÐy9)¡Ðº)XÌOPý€ µ]£=Xe‚J_t„µäÝ l"Bƒªhç <|û§Ï´r• ¾çºµ»n´¢ùnK…Üçš £ °>&`òdj/†Ú*r?ßzÎç3ÕW W«¬æ:8ÿåä?Òâ:éP¥´€nÝÜØœ’GÔÀ·+pU’Ht•s0`8×·§ŠVÕ3ÜnB–­ÓiïimK®'Û3í(&¸0'O茗´Áèƒeý(ŸÄæØ…3ò*l\^ˆZh‚4€æ1iÓ=úÅÙ”–RhÎ]ea¶Xî,l©§˜ýó«Béè«Á÷\†JšF¿!4õ;\uº.Eiû€«h D§Pûê`ºÞãÐUzA7ýJa@n®‚àÈc[¯ß¨ýO[ÒrëÐ|Ku È=údoæ.ñ€;d_€ò\ݬûõöWšÙsmN7%"'$¾8¨9Ès­ïoÖÿr9ixC+~¸ý'Ls¨\f®’ÿc _@ ÕOû›·Š%X!â&fqûúq˜5«Þùt´ÉŸEÿˆ¹OÁ¸`±iyÁI?;ï|•%0q ®õ~ý{,\Aä—£Xœñ­Þÿ|ök¬Në÷–"þ|»~«úsâôÇá„·k+½5¸û@ .oJ³¯¨PÁöàÆÍËH  R7´ðs£‡¶§ó@åvƒP©¶GVÄféÖJQÄi*ÃD z‚‹“k³|œ\±ê¨"ºµ$ÁbñȨK¥¡údPSLCƒµLUœ©×ƒu÷0œü£_ò˜Æaåeºb¸ ™Hbž"Ýì—8 xb|-¸)n‘W‹|ô†ŸÈŸŽ†ê³Ä] ^€µÃÕ¹¦òqô“:†ÚÏïëҽߖs.²Xªtq27ó»HQZ[z3[ÐPRa:‘šï&sìÛÉÛvÀN -ÙV]£­Ÿ_à’‹(à@†bðLlëáÔà:…IçTypWAóè1Ø-.EJê#)ÆÍH³Q`K¤ð¸4öèI߃9¬e"ç¦ðå\QjÌâi†`ËœÏó´l‰²Ù¸ í!¼Íh¦s3²ÁÎêoo‘ïî!ëilû9ž`kÿ:¸zŠh³ï{ã‹è7ÞÍð&Æ^<Ô–Ö¦§¯¦ Á•›¥i‰e¿¥X;§=Ø~þƒÝ¡«<äÕrí˜B=¯DpQDž… â+m1ÔÂEÐSÑ áô¦L›hS†âL™/k*ZªˆsÈ©Y2LËt’Ïþµ€-e)®¬Sñ)æ*}GPP³×ÝžvU×µ4Á ýôñTóÂH º¦ßso=¿3ýPšÃKë5'MÏáÐvK=nœôÆÿw¤¥å':ÇQQsŸ‡ <צÎDŽ¡ þ…Iõž9ñXé½›æÙ9ÔÂÕ^¸q¯k(‹Wp*!”\rœ#ýðç»ÿcAÊüendstream endobj 913 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-fig2do.pdf) /PTEX.InfoDict 712 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 714 0 R >> /ExtGState << >> /Font << /F2 713 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 3335 >> stream xœ½ÛËŽÜÆà}?—Ö"4«X×eìÜl Ab à ۱” K‚¼}έfzxXÿXH…%}v7›¬Ë©â?aù| ËËO·¿,?-¹¯[Z꾦´ì)®5.±÷5ÇåÝwËß–··ßñûO–O_Þ¶uÛ¶åþÏ—ŸþéÖ¼-ÿº}ùÕ²-ÿ¸…åsúï‡[à–?ÞjXë¾ì%¬­.on5­©ŽyÝbÜ÷Ï›×soŸžïÙuÝ6×KÎÖ_ÙùËùœ]xS·+g]¯°å|ÏN\&±uÎÍÚ™¿ÏÜ7ç.² Ííeî ýÉ™NCÚ­‡kºpÖz=ÒzUŽŸZÆsïÝÆZ/¦†x¾ñ޼ ÄNü$ÇÛö³øƒ¹½]h>“ñ˜×SÛ…«§mã…1pàõ‚·lcªåø©£œ/2·Wçdý­é|2·Ô³ÞQ×ÑÖkÜž¦¦kk–¿ØQî÷Ù¼Í#÷‹Æ~ájã ™?Ϲð6ŽšÛÃ܉ëeoÛf×zaÛ‰]ö㼃îç³[D®üÅœi˜JÜv~^Ô‘uyeñÛ÷ñý·ooÿ..ayõ=}ÃÕ~ ¨©nNÛBÓxŽË«7ËGÛ‹åÕ·ß¾’wÆ/åLDŒw¯ðÚ"íññµé—¿–÷²hRy|mù€×R?¤øøÚöË_+›U÷Ÿ>àbñÑï?8<\-ŽÑJ3ïtU#xÃ÷øôóÀmDu÷c l?7ÞÐ3O(ïˆyãµØ8Àxwo†¥Ç0Þ`ù´qÀÝw¸¿@wWåWw‹fJM]&i‰ëåå…¯<Í{ùesÄ/§QŽÊm}ùe‹„/çj0“¿l”øå½qH_~Ù.áË%‹¢'/Ý}.ñÍ-mz‘u”Üi•+«@»ƒÿ\t˜þ¯yºL5.vè¿üèï/¸‰.}÷õ»÷Ë÷ï~|³ü᳿.¯ß~ÿ‚Úýïo~ýãÛ_-¯>ÿ…× È9Ëc*½~÷ã7_óúxýó¿Çµøå4­«Z.ÓºêmXh*ó$yÆ92™SÑ‚ûZšÇ<©jÀLÓ˜Iˆa"Ib^Ks˜N?]S˜Ió¤¦AM`žÔõ!“æ/Ÿªoü\b¤/O º9¡ÙËkYðrJ‰}œ-t§¡Ë)%6¥¬ˆmN [R©xæn’5hé)=Þb–3jÈòÌdXN)Ë)%^yfæÞtŒpå™…?ýÑÊ3¥^=F°¦¨)%T9¥”ÌS¶§;¦à(µØ1”3j”òÌνèAÊ)e¿îDiôÃÔ¼eóû)JïÈáÆc¤(%E ] °¦(¯Ü“™Z³÷H¹iŠÒ;YJIS”À’¢–¥wæáö)Jè/\,E£)Jïj)MQέ)Jè}¿pÓaÕR”À’¢ô¶]ZKQKŠXR”Ð1bSõïÌ›ƒš•]ZhšW¼*ÇHQKŠXR”Ðr¾ÀmC–§ÜÞ‘7'‘¢œ[S”ÐZæOàøô|.\²ì’xïºËe)JhîïÎéÎYR”ÞÙêMQz¼¦(¡åzά)JïjíUS”À’¢ô–éé)J`IQKŠšÇ+äÞ/,ÿ‘¢tæ½O5Eél¼Ó¥÷HÙkŠÒ{·”½¦(½“îBZŠÒ;óæý1R”ÞÅæMQKJ¸¤(Ó3–¥3-³s\R”À’¢–¥w´¨¦(½“Ö£–¢–8 w±š¦(¡å|ÎnºÞ°%°¤(¡y¼œ[R”skŠXR”ÐÜç–…?°¤(ÏŽÛH‘ZŠº#[Êíì8R¤š¢œ[S”S[ŠÒ9ë|=R”skŠrnMQ:WoGŠrnMQ"·l)Jgû-Ö‘¢œ[S”skŠrnMQ"·€ü¢¼öcªrbKQNmíéd&Ä–¢tκ_9R”S[ŠÒ¹é“å‘¢œ[S”skŠ™S”góoß§(¡ëÜÿƒ< …c}HBýú³ß¼ü€¼ž—4sñë_~ö¿¹ýU ±endstream endobj 914 0 obj << /Filter /FlateDecode /Length 1031 >> stream xÚ­Vmâ6þίˆVýÔMÖcÇŽ]õ*µw·*­NºjQ¥êz„’*$”„½åßwœ±C`YØž x^ýÌxü$0üB’Å&•A"!V æëÑ?£X¥†‰Îc°ìLàâœân²VÁ»zô~½)ò9£AÒŸ¦£»{¡@3L—Aʃ„ëJ‹àSx_üµÛæã(ÕÂïÆ‘b,|ß´Å:kóYšÝö±xKf%iæ¨sºÐe½µ þ8y÷@ª¬Zj³­gÙ¬(‹vÌÓpOÊzIÿç½ÙŒ#4çÙ6«æù-j„³¬É]–º¢ÿv5Ž·ý<ý @ÄRR)UVxHBðð×lSfUô!/ò-ir*ªÞÆ6úî^uFˆXsD‚ÇiêR¢¿ÍØ‘[°]BøvƒÓâ’#n©“°ÉÑ;øØËäwx:ò  s@G i›“YÌp!Œ&Ð*S–zPŒLœˆÆ˜q%4å=7©6‰¶²êd­!Qɰ…‰ñ@¸Âc\BØï̹RÌðÖÁÎçp)%ÑÁ¼ˆè$6;£y ˆÑœÁ1좾Ä(vHÒ1¶ùª âRGRÉErÒ–€J_bÀ(%Îq5£RØ«Ú0g*Å { `0aäE JŠ´o*L“^ÒϪêq7„ÑçeRcR&‡8Nbžáðrwa© aqƒ"XÓ•¥"%‘™Ö–veÖZ>H;ŠRIXTób‘#·ÛrWÍÛ¢®ÿÞ5-­êY›UG;6[VQø o2Ñjw··5™·9Ò\ç²Øù-znE»pÉ—.l•Ÿ;ãv‡ìTdeŒ^ §š,smʺmì‰rëtͪ¶u~©H,*²ß[ztd§øiï8^%·ïÔÿbñĨóßG¤ù“I6/¾!ì þìÑçJp©,â.ØþØ1¸%½KöÉnõù–rR2ï`¼äõ±–Rb×EÕGtf^¿uLÑöÞP»ç`ßv¿Éiõ†2ß47ÎôTkÒ½`ô Ыpï\ÓS×3òÀ`ÿTf³£ø›?ð‰Øq¹­]òŸ'¿“ª¨–y7ÆëÞ%è±Þ|ì¿û›‹8Ê/‹£H~刱‹ð|ZVðÓRâ…kºqÁó6×e³'×ǽL€OêA@êgÄZ­ =:ëa^?‡vöSñ¬]Q]éõ×Öþº«2ð~‹ ð-c€µgOîÛW;;_ûé@ü—â¯Ï ?3+üÞ÷‹_ï×1µ`lãÆ¦u­{µP´}÷£¯§–+CÔGôCtúäܾˆ$Hç&ÖZ.Ù½iŽÞOGÿ‹TÞ‚endstream endobj 915 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 916 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-fig3do.pdf) /PTEX.InfoDict 720 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 722 0 R >> /ExtGState << >> /Font << /F2 721 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 5486 >> stream xœÍÝMüÆqðû~Š9J‡ŒÙMöÛ1vÞ, Ab Ã[± +– ùö骧zHvuÕJ‰‘ä ¿üggg8d³ÉçéÙðøìß<þøöO?>R{nÇ£ìÏãxìG|–øˆ­=S||ÿûÇ¿<¾{ûÙ¿úÛŸ?~ñùÛöܶíqýßÏñoᙶǼýú7íñooáñYÿ¿oÞ=àñ÷o%<ËþØsxÖòøö­Ï£ ¾+¦çVMÖý¹o&[ÿo²Ùl¦çÞlæç‘mÖg&Þ!yÎÏZÞž­±Ë󈞫ïþ9d×ù™ÊÒ!°Ë³Ž£|¾Žùs0}<÷C»ï”q÷ £]Ÿ{bçg\¹ÐŽE.üi)÷·Éï7öíï;S^8=ËÆ>è…¹>šçôlÙs^»o&Þž{¡ §½?Û..yé>(tý8Þ}Óþf;Î2Þçƒ×ma`:^\ç¥7¸ŸÍ’ç2žÏpåñDùãµ›·çìþyóñ^úñR=>Þ=—¶p¤ÃŒ|ðñª¼Ñf„[ó\x<°]?4Ïžï¿ov{†Ãq|<{ž÷ÎÇóìØh@>xV®4ÌóÚ…¦ä~¾ižûû) ñªmx>ÓgÛñÙ’çíô¬¼=Zßq·…ûnRÄüz´·$Þ7ω÷WÛ™N<®KðÜÇËä»……wŒ×±ÏWi<ðLû«í8=ßlÌçl§é÷Íîç£Ísáó­r¤Ý N˜Ÿov? q]yÃ|‚ÌÛcrhtBÆx Üç³üxºŽZ¹à|F¦÷£Ì)0?Ÿc:l÷Ï{_8=SÓöð\’çÄçk×ÍwKž3Ïg”ú˜É˜ïÚîÛîóå~p ·…# Sp Œ·±ïx4ŸUîó•*æ÷;y“ùJì;þ¶r¥ ¦çóœóÂ…NäƒÇåL—™dŒg¶+GÊé4¶Ê}LÝýÄ–‹o~=¦yâ ½Ëûí³­-e{ÓÄ/-äóêÇ|·ÃsÃ뙽Éþt<Ÿã¤Í7€xíëþ~\÷÷£]åxè¾ûù¦.\0ýz'Ä…3®·bâ ëxÖ¼0ŸFÈ}ÞÚ säDû³ãLóí]Æãn~?–ûõFÜ|÷ÏÛq ýY;âz5öër,è6 ùÀãMóx§½ÉùªÏ×ê9Ðx«Ü§y‘?ºx,\1Ÿ%ñþ¢\ä|KóámáL—Ý5Ð|N;Ñ4.Õ3ö'åƒ2ï8Ú;Ý&éîn« \ÑCÛ[yÃ|“>X:Þf÷·Y£8ì WÚL0}¶û  ú˜àRÎ2ÞÑ|4/œd<èî±/|`>A#¿Ç¡øn+ï˜/ÑÀ½t¤Û„äD;–ãJŽvÀ|N¬´?)o¸¦óÞ¤]iENtbvœù|«\p?‹nõG;Óa׺ðû¹tc«ìžݘÑÞq?‘nƺp”ã­Ÿ¯iPtëNai:Íl|^¦3öwÛ¼ãjWúº ïx¶+O,7ºÞ2ý9Eh%d­$dÈß¾}ìtÎÂ÷Çãóéß¡~8Fùçи~è^ Y¯€—Ð5Mh¯¯èu‹çÀËèòªç{¯¸¾«×›¼<àç_ÈFüò‡ÅFüáËïÞ~ö7ñ_|ÕßáSþÿ÷îØG¡Ãè‹oŸlŸ>¾øæí¯¿àgö”2­~Ívþlü ?ÛßÃv\~öøñ?ûEcëÏŸÍ?ágûqÐäógëÿY:G…ëï ?acÑÚ®¿8¼¶‚äÊWÂßJ¬<‚MúŒ§´@—æ€i{ý»ðúšª—óàå1m4–/ ‹ÍãüÂë$­¸¼‡ëºl•¿¸l¬~Uú®žé â=ñ¹Ü¼îO:ÍdùñåîèÿxÅúé?¾Ü#ݧ‹¸4^ür§ô¼_ÌmãÅ/÷K÷Ç) LxñáÜtז·odžŒQrpï³4žEËÇ8øï ÓÿãA†Ó‘þŸJB¿þä_?¥]ôñÉïûý¯¾ÿ÷¿ûå??¾þî«Oû~Õÿß_þéë?|÷éo_|ö#·Aà×L{µì>ÿøý~÷Ûß}ýþõŸþsl‹ŸÚÚÈ‘žüüßÿÕÖFgÜ<îɤ߸ècGq˜¯Ç®bá˜Ôà]’HSH“ÿGM“ÎRM†m»mwíz*ñö™kó Nǰø6z0pá^‡çÑ{Y»~èT_z3k#×°§ç{¹éÙ«YûìÕ˜–^áWÏææ>Œ„©gswÅ}•KÏænŽóÞ¯=›»3®»©WÃw,½Ã|ƒÑöÙË1ò ÷í.½ÓÒË1üêåÎkÒ9{:wKnpéåÜ-÷•_½ÇÜË1-½ÇÒ˹;PáýÚ˹{Ã}ƒW/ÇtâS¶ç=¿z;7r]~éíÜ-÷½.½»GocôvÞÎÍ™âÀ÷³·cúìíÜœ¨Nó~ííÜ}Ðaþνš{æÞŒcîý˜æÇ5÷‚fóíö÷³4;K/hö8Œ^Ðìí4¿^Ç”ËÚ–^‘cîMÞ›¼^é)×Óeå"ÛkôŠfó´åýìÍûÃèÍ>†¥Wä¹-¼ã¾ò«Wä9/e½"ÓÒ+2-½¢Ùaôª¤W4{“ãyôŠKïÆ°ôŽ—¦y˜!Gô.Lè8.qá‚\rô–lK¯Átýеø¾ÿ¾Ùè-™–Þ’çùñwKoivÆ}éWoivÂ}ËWoivŸðþ4zK¦¥·4{—ùÐè-™–Þ’ié-™–ÞÒìH§±÷³·4; ·zõ–&‡&½pé-y¦Üßvâßçºú.Í3zQžï¯g6zQž[X¸b¼½(ÏÜû1§ç›}Œ^á4ý>mºž°Þ”çûë](7tͽ¤Ùr¼ŽÞ•g~=³3r¥Ñ»RNg/«µ…¾½xö®fGÚÍÞÏÞÕìÑ˽«ÙÛÙÛâçs,=ÃÒ»š¼5É¥¥wå¹$Ï‘.<ï<_³}ŒÞ‘aôº\7ß%ùžßÝè})Ë|+¢@çºdÏè…ÙÆ|R9_zcmá„Ülô”wºMÒ9·tŒÞ˜r”\~ôÆf^ãèÝM·åù¸7æšrQå:~ß^Íì‚óõÆbòͽÓuz¼XæËÒ+s̽2í늨7?0÷jÞÑÚ·®óæ™{kÚ;z¿Ò[Ó–ëyé­ioX—%½5×Ü[2Ýðz&×*ã-zk®ÓÊëÂFoͳôŠîNt½¿zk¶ zG¦ÑkS–^Äèµ)GäÚ£×f½6å ½]éµÍîÓp¾9zm¶ÑkS®²?I¯Ív½¤µ¥÷æ™öÛè½)gôFïM9a¾>zo¶Ñ{SÞe<Þ›môÞ”£ôÂ¥÷¦,÷³FïmvnX79zoÊEÆÓºq¯Í6zqʲnhôâlG~½žS[øã­â|b½:åˆëa.øíŽ¥w§Ð ½»Ùt›½=ôŒ7Ò»SÎX÷4zw¶Ñ»S–ûÁ£w§,÷CFïN9à~>¹FÏèåͦuÜ«¡¼¨yÆxê9ßmå‚uu£·§œ¤×&½=Ï4žÙF¯Où ªÄÙëSŽF¯Ï3/¶Ñû³-½§ÙÖ5ŒÞŸg~>ÓèÎÞ¥÷?zÊS/P™wÓ³¨,÷{yMõMû£mô •¥7;z…žéxpÝ´cÅýàÑ;´Þ¡rÆýR^`WK/Ñ6z‰ÊÆ»ÑKTŽèíŽ^¢mô•7œoG/q6­[ºö•3æã£—h› „Žù…9F¯Qy—Þ ô•ƒŒ7X@í½ÇÙ4L°¥÷¨ÌÓDòN‹cìO¦¥i½HåCŽWéEšîó…TÔZ&e¬ZG1eR¡0Ê#J¼šåI ª!“®¾P ¹«É vÔB&I½Ñê˜eí=:&¹Q1sÇþ$} Ík[bæÈ Ñ…0ÉMˆ™IÖ £1SV#H b¦¬%’„Ã>T›äþƒIÞ»Mr·af•äÍ…™ 뤷`’§Ç©ëƒÅ÷(-hùò ”Vn—Ò‚c.-¸.Ù1J ÚQBE”´¥œ.¥íãVZpÌ¥Ç\ZÐNRÚ@)A;/á»{Úe|ù§{¶QJp½ï Wù¼QJpÌ¥í&ûJ ޹”à˜K+7˜TeºW>ܯžsiÀ1—óMYí0J!úÛFèﺸæñØq¼¿ž…ûÁ1ŸÔµ£|yB×t¼(ïX<*¡¿cýµå¦¤„þÚrÒ•Ðß5oOËýµ³„¦õµ nºK¨ï˜g×®[[¸Ê—ã ”×Ç Bù•[Óñ<;ŽÒ By퀛ÊkG)M!”×Þo¡¼ö1Bwåsèì8`嵓ìOåm#”×Θ´K(¯]°¸UByí*_^†PÞ1‡ò®cô½o 7Ïš+÷kÉíškùr'„æ+ãË…škGÜô–ÐÜ´„æÚû-4×–› šk'쯚kg 5škY\P\[ïI¨í:­,_&¡¶ëúy{˜Æx`¡¶ë}÷=?™¦i»˜Žå 7Õj»¦í¡,_î$¡¶ö.‹Ë:k´›¾ÐY;ášGBeí1i\ÏKèêšÞ2_ƾPU{—ñ¡ªö!¥#„ªŽ9Tu|L'̧$TµPU;Ëù¡ªcUs¨ê¸a{[FhêºÔ…åËi%uŒùˆi„šŽ#¶·i5]‡}áQÚA¨©ÝÆ—ƒp¨éºÏj:æÐÒ´„’Ê}7— ”Ô–ë! %˜CIíˆR”„ŽŽ9tÔÞQJ•ÐQ;a>/¡¢vÆx)¡¢kþ}³‹„: ]Óx`›CCÛ sèç˜C?íŠ/¿”PÏqÁç5»É—C Ô³ÐN™¾ÜæÐÎ1æC¶9´ÓŽ(uIhç˜C;×µ:Fh§½ã|&¡›cÝs¨f¡šc|^ÊøHh¦äËqšÙFh¦=B7„ZÚ#TGheÚZËýç ±°2ÛÔž YáíX“mˆ—2âõØkÚMˆÐx-¶¡ÿFØF[ð ÛN5ùºÜWØvU@E +°×’å×&_1Ý•Q–ÞbéµI^!j’ckÕ&/¹v(ñà•»ÜIzåqŸ‹­-žáᕇܣÇBk“¯,qÉW´xå‡ÑbJ´xåÿƒhñö`Åeðx€¼¤Úâ+–¼Q¾¶öÌ!ױ䕼ÓK,ywÛàg ywÄwê½bHÓC:.ÙñCÎFLuÆ’wµ®g,y÷!kÏÒð+†4üŠ%ïk©]·¸p–Ûøglyw‘ÛìgL¹öSšÞ÷…ešu‰) ¿bË»¥«y‰) ¿bJü–Ú5݆ó,1çÍ4;ÇZq\Æx–ônùNÎW jZbPÓƒ:æ×ë˜nCÛ~Ũwßÿfƒí£:.®%F5ï¯gaŽQM¿bÔ»å6Ê+Fu,1êÝÇÅÙó+F½;Éüá£Þ<¾ cĨŽy{Z>cԻ˳Jìiø³Þ]åovŒ˜Õ4¯¥vÌk©]sL븵…¾3øÓÞÇß‘˜V9Èx7bÚÙã»6FL;{—ïÚ1íìCþ&Ɉig'ºú~?cÚÙYÎ'#¦5}Œ˜ÔpþÀÓÎ.2/1­åÓήøÎÎWL;›ïþ¾Ÿ1íä}Ô $¦µ˜ÖsŒ¾÷má(ó¬¥vœðûFÍ Ž˜öî$3CbzÓÓ+gY«/1½m‰ÕfW‰¡%¦·×–˜DÖR;FŒoZb|Û³N.ò]8#Æ·ß6b|åñ] ã{¦÷£ÌééûXKm[b~åq>”˜_9£F:b~ÛˆùmÓãÅUþæŠÄü¦%æWn2“˜ß6b~Û8ßÙFÌok©£ày~<¹Êõ ¬¥vMû«mœOlc>k›×RÛ–šmÔ l£fàùþûÄò7!FÍ@ùÀõܨx.Å3îÇy®Ñ3j–e-µcŒ§Êc­§Ô”åo2Žš‚í㣦0›Ö˜E1g¶Qc°ƒr”µàRcP>0•µÔŽQsPΣf€˜×3¿žÙײ–Ú1jži¼´„i©AØæµÔ®i´…mÔ(&Çm¬%—µÔ®›gYë:;޵äXKmk©MËZjåQ“‘µÔ¶±–Ú6ÖR+œoÇZjÛXKí¹VDz–ZY¾Ën¬¥¶µÔ¶±–Ú6ÖR{®Áók-õÚçÚjò–Ú´ìO“i˜`ËZjå„û•c-µiYK­\‘,µÔ¶±–Ú6ÖR{¦µÔ³é» ¯k©]Û†¿Þ"R†ÎÜý¤?{ð—¿ü«ÏÊŸC៧Kä6áó_¾þZÂÛºòs˜endstream endobj 917 0 obj << /Filter /FlateDecode /Length 1230 >> stream xÚVmoÛ6þî_!û ¯‘"Šz–k›`Þ0`[² CÛ´DÇZeÉéÄޯ߲%ÇiÚÁ€uä½ð¹‡Ç#™À9,ü<(f~…N±žü3ñ“4¸±ˆFŬŸ¸œ¯Sçm;ù~½Êëczƒ ¯ï&—7ÜýI{ŒûqLiü,+ÙÍ<ÎC÷}÷ÜvM<(à2œ3·Ø®gg[ }XõUST¥„d¶Ü6…®ÚFc/jQ ÃGŒî#–Ë›$r ÐxèçyNؾVY Dî4úg8NÜÀOÓ R‰òoš»¢q`ç§HèÔd1H9z)n˜Æ/¾žV¬2?CZåne™QÚæmزtnêV[nZ |Ib_T(GDdkUze™Õ[Ýv•¨íþôæjÕbüǦß²FÌž#ÝÀf#rªrßz4ƒTÕWPÝÒ*hžñxÆT3þA®=—6Ø;\êưû`ìFoæ>{b¤÷Iv‡¦j ±­×®®Ö#mAEaÏ}' Ï/¥bWØ?‰qÄ•¸ì`‰«‰ÅÀ2q§ÁiU4µìÚ5Íþ0ÿÃrÛ,¥9ÓÃR£Ì/¦WhlûéÅ™“Ûƒ®ËQ©†/lG]5R™ý8rò?÷ƒô¯†špèþ ªûýKûg—øÒ„úsÌø±?&ákú˜Ž¼³%|¦ žžx6j%}Oü2kq~Éoc¨ÉØ)|ŠÂÔtõL[ÖI }” ;åtœ$˜ž$˜œõûÜzyv{®d£½%,ÞI9èÍiä0æç1¶cºYR?LRŠú›„‹N)8‚Ï5róA#bî*:µ4è¿Ý1Œ¡ñâíkeÝ{{6ŽDÝIQîmPÛ·•¶Ð^ ¦x„‰‘d`£Îá1N“Þ¤hºÌ-%a¡‡7ÓE!s©ÝêÍV›û˜b‘Ÿ$ã}x- ±U+ÊéÙ_Ê„¥(t?%Œ”¹sšØâCå̵ÃâÌOò°G»V›NnÎeÅs?Ïxo§[ ‹Öæîá¨Û枤Rho¥43 §Ç„ëýÁ©÷¬êš¤…!G,ˆø2Aož‚ð¶k-ÐŲzp1á ¤hê±Ò+’èö¡ 4¥škz¨ï+Ňòæ‰ûç,ã®UÁ;¢Ó§‡å‡ãþkvËSʧ@lQqĿ¢+®ÅßU… ò¾xQ<÷•©3C¬’úG©ûˆoAIšB4äOV$™|Kpíìè)õ FÈa¼l;l¡¡È(2¶ lÃOº„ícZ|4°Ã ÀµÃÌ&€SôºF j÷E¡ÈJ>˜D¦‘†(LàÈWÖ¬ÿ–m#Éaöv‰#¿Ë="xæà¦ñáTÂ&ê­ºº:û‚Œ¹ŸN„-ÅšÚ¡@"Ú…’ÝÃ,ŽÍU M¿Á'¤yö+[¹<ó9œ7/Ìý,Ë(`ÌQ9¹¾›ü‰M(endstream endobj 918 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 919 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-fig4do.pdf) /PTEX.InfoDict 726 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 728 0 R >> /ExtGState << >> /Font << /F2 727 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 3229 >> stream xœÍÛM¯GàýüŠ^Ú‹tº¾«–$H$‰-вHŒ-ÅŽ@ü{ΩóÖܹýv—cÁ‚AO¦{ît×wÕ·|µ¸åÇåçË×ËÏKjë—Ö—ýZüâ[[“_Þ½\þº¼½|úþ›ß¶|þì²­Û¶-÷ÿ|öùŸ.nMÛò¯Ë·ß-Ûò÷‹[¾’ÿýxqzÁòÇKqk Kk Ë›K‰k,Ðu¯´nõD5¬a;QskMg’+Ý™ÒÚ™òó™êšÝ‰ÜæV—Ι×Z‰i®³¬ÑŸ³Î(¯;O˜×Tˆyõ­³¬5žÒ[žS_÷ã"±¬®€µ뺥N¹ëˆ­¿:_z‘ìØÖÚÐW}Ò3†Ð«Ö9SÞ³mkÙ:åÒŒ±3­-Ÿ3QWu¡¬>½¶cÉD©íY¥)†¥"Ò­¹ÍØ1®¾™ô%ÒL÷L«‹Q»˜SÊË™0k Ú3ës)›öaLùaÚV׈Å- aF©¢{VYr«ÏçôkNĆMqÝÊžn“¨ÝiÍu欽Û­a¸†ûÕ›‹ÖTvXYš¡?pÔ¦£n«ÿ€£;tëÏ›7mel)ö .GÎ(‰ÜûY¶4³·ß³wÕnÒœãzêµUÌÝØÒ ÇK˘;Øi‡©–(Í\ìûN]µ¿`{´M±¾O²”woÙeÓ‚ŸØiÛžº´÷j®ŽÚFÙIÃÜÚÌE_üÄõƒ––<õã¿·wÓ®èÜÕ÷ö<óþúǽ=“{3VÇ^ŸÉRß{yê|d©ïý}Ë ìÛÌMiöè¯dØêßwj×Ûó¹ýÚÒÌ2Äx¶—n¢¿dÜv`·Æëï!{¾ÍZ_Ïz}=w^C™[:ž‰›6¼©›;p°þÚKÇ®ýÁÌZ_Ïíwß·wŸ›Mœvoo¶™‹Ž³ì¨Ý”9}ÀýûöN:¸›ë‘³Í Ôý}ì]ÖÍ®·þ€\ué$ÖÕαûx¦îϳ·㸾ßÄÚÎÝ+69È×4XßÇÌÒ1LÜ—s·¹[š9÷ù ÙékP÷íÄÒ1…™m>BökÍÃíÀA—Bæä­¿õÒ0“?pZ«‡ûóîùŠ—Š¿¹WSsÿ¾‰s>pÕnJ{C–©qooÞú³s×Þí-‹…›µ¿8wëýYªY/)xX¦ÖßsnßÛÙãyåÅníÀï;ô‘Q^òâ¼›[ÞÄÍ~ÏÞ õI~xÿ¾‰Ó‘3ê«“£­Q½¬7J_ ;›O„Íú“™u=0s;r°ùRÐ…ÿ‘£¾&uZ}œ¹öù69Ù|0ÈÂ\ë9Ûz8è|¬ÍÜ'Ýd­fæþ÷N]tëŽ]m½£Öþ€Ü¬¼ƒÎw»nº+ö}?˜í´›S‡¾@621Öú4smŽú˜êÒËëÜÕ¾oï>Ëx/ËÄ®÷w䬯Amó!rÑ xuÒ†9qîã-¹Ù~VùBŠl]Xnd;Û± :1 3§¾ŸEö¶›d¼öõÀíMV­ä¤Ã˜8¹c÷ƒµ•ש³Õ÷s÷-Sv¯Æâbûi§–Ÿ¶s?Óƒ¬Sm:$}àœÊNÁÞ,AØ ^—åÙîs“tç÷­‡tû¼¿@ú^é’nï.Ð5‹ Žãðþyi›¸ÀxwAp}zx{ãý÷Ou{È» >{Ž—øâýÁK|ÿâíåÓßI±,Ï_É®øÀþa–(n‹LeuòüÍòd{º<ÿñòÅóþÍó[usJÿ‡{ýGÜ+Ï Çýñ×ßë]Ô¾üáÞü÷J=—yÒýõ×ß«c»ÿ»î#^–6Àvÿ‡ÝímÙq.\q¸²-|µŒwŸ»~Øg'’÷C¢íö9xtÒÝ.0Þ]àu®þðÀ» –µ®Œ Àû ìGß.¸{†ût÷V>¹{Yº”ªžµõš¸¾Þéݺ_ Än?¬ŽóÛõh3àöÃ9½]iiüøÃJ9¿½U] Øí‡õrz{%X²ï^Ý}VàÍ%nö’­— ÅëáÅuãà?ë¦ÿëN¦Ÿ~è诓ùß>ùÛS­¢Ë“—ß¿{¿¼z÷Ó›å_þeyýöÕS©Wò¯_üòú§·O¿[žõ+ßë¿Yk5ªÏŸßýôÃ÷?¼¾¾þåßã]ü_d'’è!-ñXÙSHK:dgó‘° {œ€!aqà>_ r°ö:ä86Ÿ V$,È'(HX±#9d´÷‘° c¾4{K3ïýÁHXêdoãáHXƒn\_o rD}E‚œli7äbãíHX+ê;ä†8$,vöš€ y^6æ“HX°½WHX°Cߥ vD{´„Kt$,Øy¸',ØåÁÍ«I$,Ø ¶„ÙmÖßCF‚ ¶ÇóZ‚ð>-aÁŽ(/KX°ÊÛlœ0 aÁ.–F‚]Q_-aÁn8ᵄy¬g°`;[#aÁíÑì`ë$,Øý%,Ø ý‰%,ØÙÖóHX°‹vב°`W/‘°`7›o"aAXO#aÁvèo-aÁöHØX‚l¾†„{Œ–°`'$T,aÁÎH¨X‚]0^Y‚Ýl=…„Y·ìûz‚=ÆSKX°½­ç°`]Æ]G‚ùìdóu$,Ø KX°Gf vµr$,Ø ã‘%,ÈÉ¡>[‚íQ-aÁHØY‚‘²„;!¡i v±òF‚]­¼°`7œàZ‚¬Í¨Ÿ€[Â‚í¬¿FÂ‚í­¿D‚l¾„;Y{E‚m>„»Úz vCÄdi†þ.aÁÆx†„Û[„;XŠ„;Úz 6Ö›HX°‘@F‚]‘0°„»!ab ²Ì×sÿ{–°`;ëO‘°`ÔWKX°£íÇ!aÁÆ£ˆ„»/cn vA}²„ l$,Èm³õ lÌ‘°`{ëO°`Û¯A‚l? öã„{$$,aÁÆx‚„ÅÞAæË}¿ ¶³þîÐÝ-[èÙóåoŸ}ĸÔ}-2)™hçœÏ¾üˆ»¥ÂêÿI»HÙN¿øçSé0—'/ßþòÉ«w/_Þ ¿¾ümSïàendstream endobj 920 0 obj << /Filter /FlateDecode /Length 341 >> stream xÚ}P¹RÃ0ìý*åŠ_‚ ™ w@áC!ÛÈròûVÑj#JÄ€¢’¡j ŽxžF3Tuè oôçlTœˆ‚áò.N2ÎðÓ|Šyçcmõ9æ%^xÝ·ºS}»\ÛÙœNMá>ìÃ÷a»Þ…©î»0ì¶ 0Žqâ kSƒ¼œâêðëøOpœ0ìÃ?ª¨œ0A²T†û¹o­zØ„‹×®‘&[·ÎçË›u÷€æ¶O Üig "°Ô„ý¬{pñíTën‡Á<ô/±ZRš@˜ Ð’”âÑ MÝ裶ú*w¿ëFã¶y§B(ã`É¿zªñÎ)á,¡dDÂà•YêÈ蹊~‘(Òendstream endobj 921 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 922 0 obj << /Filter /FlateDecode /Length 1071 >> stream xÚÝVKÛ6¾ï¯0Ò‹Œ®>DR*àmÚR´§5ÐCÛmsc¡²dˆÒ>zèoïCY–×-²‰¹Øäh8œùf¾á|¿¼z}#ò£¤ ›-ïfšÏ´ÈåÙl¹™ý–<”Ývžr¥×™®w êw2ùJÚµ½Åok[»¦-ëwä e¦ÞÎYÒõó”%nÁÇó·o´[‹ºÖšÎƣƳOæiÆir[îÊÊ´Õ¼kÚ¨lzgç,šÑYÊ‘Y±ÀÕ‚©xµ_ëÄ{¶÷ŽÁ׉5­©×Ö_ríŠäaë¿Ú6|}#'`1Έ¦î ö#BbÐ+3ÂòƒjYoÊ5ÄéÐ¥nk:t¨©}<^vgʪoM€ÏFõÿ1 €iïÝÏ÷£°hëd…!dR¦%É‹)>è…àz!àÊû¹·\Ïál熦øqh3çDRf¾§®[7ûmÀ0îÛûP1åÎ^ãg˯U²X Œa=øåßÑÈ·2žÙ(¥°ZàAWŽ'¾Â¿ïÞþp{.WÞII²B “oLU}s\$寡œv}e¢ƒhûö4 u†~†ÃxÃÁhŒÁ»"@@H¡E>8dïPÑ>îýå;Ä™`”&G˜È ®CºËÇéöNýú ÚHX%\ÈŠ„*P ª æ¤¤°TÇÛÒÐ0I4·)•ŽÁïhýçòO[•Û¦Ù nkº²APöݨSÀeŒ E‹Ý3®ý‚-Ü¢ÎQºŽ žÅ„Ôýne[”6r`ïÞÖÄD0Æ)Ø *K¯X‚£Þõ:&yc+H6¾´mŒ*F·+ƒNUs¡ß ¹=åL:ÜŠ2ûXæð 0Çw‰Ýdh$À£Cu]€Hü"D*>–H\æïO$ˆ$3~ ’ÖRˆÄENʪrŒä¹š°(?1Š#Qv¿ë:ËÏ4»dÕŸŸ=ÓÇtÊžXŠË­ð¸HœÙÅ•©MõäJÿ”qƒAâ¾–¸‰/ëë4<~ 뽸ì«U3ˆ¼fipë ÑÙîY`‚ RBŒœ Hh"²lœb ññmM…‚¿5þ)~r~ Er3Ï!÷-V§€ò““$—5P È|=}×ÝÉ;‹Ò7·üˆ›Ö¾ƒ¹Ãù¬ýç{¯^Þµ^Hh×p¾³+óØÆtCM=¶Ã3­èëHaç:¯¹³Ý¶ÙLl½Zµ¾Ô]Õ<¼ ï|÷Ë>I÷;ÓÄ#:ê´ƒ{tÀÙ @'è¨):z@Çç.;ýFh4B¶Ÿ£3f&ɹ¸T“ý,ÓŠx6­äŸ`ZÉO§ùE +âN{9e=¿ëÅÂúˆ9éOß-Vh¢àKyAò<’IŠ]ý¸¼ú6nËendstream endobj 923 0 obj << /Filter /FlateDecode /Length 1136 >> stream xÚÝ—Koã6€ïù>Ê»—‘¢HÝ  ´h{èè¡í‘˜X­,¹¢”}úÛ;äP¶åÚÙh´>Øäp8ù‘~»ºxõN꣤ [¬nŒk"r¾È9%Y.«jñsRvöv™J–'öãö*i¹d È ÉPîlïd‚Qš|^¦\ê,Ù.]}»H¥ –S&ˆÌŠh¹ìåOߣ”‚UÂeÆaUyBIžK¹L™”:\h5¡Jû¶òr­‚ºHyNhMWÿn›zÝu*öf¨;œ?X7\1 °M…Hºå1™êö§l¯ÀzžéÉüaäí* žEívÜÜØ¥Ý´^Ò½mµ̓1¦HÁŽÖ¯ ŒÓoX‚©>æÖŰlc[ÅŒŽ6¦ÓÚÔÎÕí]k ºPðõê˜U8|sIôäûM v…àIÝú_–ìz{Ŷ«0 cÍ'W»KT½ * k‹2Ø%Æ„V…’²[rÜ/¥LL_(ÁØ?ŒÍ—“Üw|T_a^e÷q»ö«óÞ'ÝßûæPoìeÜ{ƒF7íE•üg…­EbM_âXò!³l ÷¦ Æ.«Â˸£+PFƒ±®®nºön¿äóCEç‹}mšæõ©=µKô¶ë7c3wñþ8su”y>Ërš'ŸÏ’W»äÏe…ðÍœòÎ1(u”÷"“pþt<‡ú< ª9(‚GÆÄ*'*ËgÅ8,°òLàBê:xAÕ‚æÑWšÊ3œ"IÎm gîT)fk•ÒGqi ²=b“þglâ‚°üN|‚X;{U@žä B”Êô#Å9ý¢äžPŒî3ûsˆRIu–OOãÓj!äÌ&BfV)à2’èfP§ °ù€>™3,ÂÑ/ý„íÒŒ.º r_•Þ”>ÑgÁ¶^ üwýì€Îæ¾€®i Ÿˆ]ò_G*¼@Á™ìŸ_ŒÁãGó§àË`I;ýúÑ\éÀÔ!ÀtÀï)†åa0xŒ±X•«Q9LüáM Ð7"É(|â.ñR¡Pï,_Ú‡(ö.€\,4S‡œ(ÐPZïrùˆÊP.¾6eLþÀyø¶{^rÆð ,B&4¾Í2Q 6ƒ?ìߊÚfb¦Wþà‘g±mœ7qî°6Ñ9ØúBø X(ð«ã5®¯”Qr€®à«CAÀmê¶!2[Ö`3+qhm>›¾rh¡v§ªeÿMC`[³,Þº€“}×¢ÓzOŠC¸!Vßó± í# oUì5ëø‹O\ÐÚß>8Ò‰¾]tàÌtU]ú§ïdÊ S«Ž²Ó ¶Ý0»ÀîÐw,d|·WÖÀdOÞŽÃåþÅ~gêðh—dôåg8”ÄhAèÆ†­Æ2lNÓ Îvì·èÓ=ÓËýËW›ÿÆeöÐe…'~~3…<üìÃTæ‡hC8Ë ¡‚hñ(Î.¾^]ü$Ìýxendstream endobj 924 0 obj << /Filter /FlateDecode /Length 1130 >> stream xÚÝWKoÜ6¾ûWloZÄbøI)€ ¤)š^¼€mòŠöªÕJ RrâúÛ;CrµˉØhÑÓRÃáÌ÷q8¹?,N^ŸË|Æ()hÁf‹ëã9šÏ4§$Ór¶¨f¿'ËÎ\ÏSÉtb>mþ ’.ç, Y°;ãÍ£ËÏÓŒ ‘læ¿ÌR©|ä” "³"F^Zyù>ÄH)D%š2ë©Ò (§LJ ,Çï)ˆÖ8T`¦”2%| :K¹&´ˆÁ­ÿ2M½êº*øÚ²¯»¡7®?cŠd ÂSÀصa"ò©®ËioÎ2RhnR*·Yö)´gÁMeùiÈÓë+cƒµÛnÄ»5mï¢7çÔ ;ÚÜJ©vW—Ú[ÄÞºˆÎ4¦7‘U5˜È)r[×ÎÕíM‹ëœóõ€L¯ÏÅA¡Ómf.Iž±y±2¢‰B%åvÐÏyž|œsÀgšÞØðÜâLôò%î\°ÜÕ¦©GŒ²ŠŽ®\Ç‘5nhz2O•PÉym]Іc¬1î²lcÖe?”Ms¾SbÂ}ÝÐïRyÂRï>*›ëí\²¤ì˩݌° –xW »&ÁKñƒ= n)çDç±W¾EXvŸ6+,äTa°·8ì뵉gÊõe?¸mÿ¨äï¸ Ú!zTˆÌÏÅãê¦kovå<ì[zXÈa«ÞLÖ×ug×Cs˜ââ¨:ªïU#P½ ”÷±Î¶¿ßœO×Á(𒽦°/ˆJþü¢¢²cQ‘ÿ?M¹0Ë®­€†ÎF»Ä~ì¡6Í%¡¢Ø¶Þ»4$©]ÈÐv}0´ÆTH ^¨"„ .à083ÕT,S$×#–z c„ëÄ´L€\|»P„ª|ëL'Úëy,±#¡‰ëG6Âô=Ø”»iùÈ_J>äÔC쩇,^X=ô#ÕCН=IÏžQ>äN=,.}@=àOòCâPAž$ ¿u½yu2¾" \x „1ì[½.}vÁòäªt°Åmt\•ŸK[¹ð±”è5 Jà!§,'Àƒ7P‹*ïÁiòqe ± ž ˃¸ Ã-&Ð*ˆ½1ˆŒ@Œîë;èMEÆÍÊO*¦Âì[熵9eŸ3eF;fø52Ãk„…ƒ·ï~º£²­Âàâ]4ظrc» Ï –÷;…WuŒ¸ý½1­±áá…Ÿž¶:hÿxX¬)›в âZ" f ª{…{{·»¼“ó•a&Éit¢‚ÿ9¸8òLq®nšÁoy Ì“Í`#/gü›TcúÌïµË÷$vè«0|Ϩl^8´õmÙú`§gãUü÷ôß^§Còú€¼É?Ä ÀNÜ^I“‚³¯Ü€lù¨Û@(”Óx–)õ¸ £wLáÁ¡T6Þ‚19Þ‚‚æ{Äpä4·ž¿ ²)µÁ%Üÿ(HžG*R£ëÉÏ‹“ò ìªendstream endobj 925 0 obj << /Filter /FlateDecode /Length 1465 >> stream xÚíXKÛ6¾çW9ÉÍJáS’ƒ¦@[t}²@mZ‰¶ÕØ’AJÞlýíáP²åÊÅ" r(z2Eç=ó ýÍݳ—·:_p–¬ØŠ/îÖ‹L,2©&Ôâ®Zü•¥Õ¿ü˜ˆe,SžE1K¤äé2,Í"–d<Ë—1ךÁ‡)œhžF1Oã¸F"žr.–¿ß½Y°EÌe¢ÕŠ˜¯‹²kíoL³ÎƒÐ¸•+9ÊÉ%ÏF9\eñ9bÉ#•¢ 7ˆYÂV9‰ú¡~gvõ¶m+`‹®néVg\÷ZpP $0)£¶¡I?ÕDÜÐúð:O¸P&fúÜ MBš×D•ªü†Ä4ýþÞXÚm×ôk€ÝÑ4 ÔB0Ï‹§ÉŠ‹©‡Ð7œ…û÷¯Ú#ªÞ¸ œÙ™Î£ªÞ“‚iûÚ¹ºÙ4xÏyÿ¢¤—·róx S:8ìg &H)¢bSÀí|5¸Ã£yÒaÙ.E—ZG…­‹ÎÅýRdÑ#­Ë¢w†¨ÇH×hWÇï× r錅|€ƒ„”LŹ’OÈË,8æ+2°lß¶Èö-èØÛ£—PïM—늮'»½ƒþ · ©iõíÏ$bàP]A4!Z®ÞµÍæäÊiù°©¿-v»W3‰2ª½ní¾ßM%¼½´#½°#»´#%;²«v¤£Ù™à²3S\’Oë¦lͶïpyãÞIg¦{’3ýúÅÁsŽGÖç¹M­eç"ͱ’yš*_ð)²ä\û‚籉di(ÇX&9 žá)ãêéíEq©¢o=¹ÅPI/ûËy@½-¯Î$b¥ž„B_Q^²òE"Q¥+™Ã†ÖX€?ô –I&õçokƒ#ÿ}-Hþ©Å&¥DuÛ¢sܱa!·Ï@жí7[¢;€^¦A‚ÎÑNa k»º,¼¢ø]×ö Za¥òê.Ð;¢oڰјÒ8WØÇ bK¿ØAgâbÛûÞáM&±E4Ua+ú2Ö¶Ö%Ë8Õiôµo¯t‚ÑÂ_RkŽuÛ;ú*šb÷èLøz¨»í‰|¦ßAY&9¸˜‘BÔçb!s¨Õ@‡ÝÈ™ ù¦>¢~ƒÌº ÎÇî¨}H¥¡.Ú‡5®ßaDA¶&€S1§fÆ¡ôFéå¼f|™ÖÕµäIu’Šl¸ä{âïÐYUe*p²R"º]æà\;†£„ö=ƒd`äcš~f@£ótþÜÌå «ÁÕàS£à‹«(89Ç ¯¦DØGNnÂ+9Qö@Óàƒ—àω§ÜZpžC{ ­¸gµ©ì‰ä„¸ÙæW0àl+‘è»Ê%Ù‰¥ 2>{ÃÉì¬À6ølj}J<ªÈüœƒÂ€Îêÿ7Ç'xsœ!vQQ¸pøÙ‡êûámâ†÷FŒ÷ ˜d´KfÞ®UxɾýDÆ 3--¬ñ׋Á…5`îê6”-‘yßÑÆƒ×ŽÖÛ‚^>~nð;ø¢ÄÀuuâ=BCö296ÂYÔ„¬ýÙºoüûˆXch'"tvyšë˜¡›ÖGÂÓK!Ð)”æå¡(ѰwþI· î„ÂvÓ4ùg˜.Z[a¶)M)à·î»¢Ç0^T3Ë3¢"ʲߣhú]=ø©ë¦Dü‡!èfÞo:ÉŨëÞ÷ÛX::ÎYÚQëuÙhç¼·µõóœíü8ªõØAçZµ½%7ˆÈÏõ¤ibª‡AÄOL˜“Î ^ÄWÊÐà¥4å0Ƭi€à§ÔïðÚz¨={N»}"çÓ‰"€ß—ñå„ñt„…ÀÑÿ@çSD6ü9§b²ï çwÅØü Û¦#†~Ò„:à3Fòjò‚}~Õºkžþsy}`Baä pÁ1:GÒgßÝ=û¬Æendstream endobj 926 0 obj << /Filter /FlateDecode /Length 1930 >> stream xÚÝX[oã¶~ß_çAƉU‘¢n@·@o‹“ÎÇ(¶ûÀØôš­, ’¼Ùô×w†3”%W‰Ó`[ }HLRÃ!9—o.ßܾúâMœ_‰(,¢B\Ýn¯2y•Å*Œ¤ººÝ\½ n¶óEœdÁý\æéÇY +\éh¥Ûñ§º1»î̆¦ë㩎ó…JÝÙ.¶ZÛ©Ö¦¥ùöÐÐ83ÁÆ~´›£.ùXÛíhôí·ÿKüZ¹YtxŸ‡z¾€fþS”D«ü×ó÷·?\EW ‡‰*èUýkÒ,Øë_æ¼1Mä_¼I²¡Pª<&nseî7ºc±ôTÊ,ó„ŽÊ±môž[HpÚV¶ú@k$¾”®Ý5ºjmgÕ¢Å7ÁE×ö§(Vk|Ýr}À+œ'I «;¾<-”G'ÒÔ‹F¯ñÐÍ['“E‘…YšŒ%Ú”ÁéN?±×ô$ñ™‚$òu¿ÕM¯4i»p¾H"ÜîLEOÆ$]×%Ò?¶lý$ðŽ€4kº–¦Ûæ°ï?x×´‚º6$Sr¼Å¶1†‘¾ëŽÏr ³¶†ß^Œ# ã´‡l/̪ç¡P½Ø_côÈÁ&$$Òp(ô v€s9éÞu÷;³î•ŒÏuvY ]óQuò[»·%ÀÚ‹Ö4ÈG³èG s¢Cmq4í1­;…vVÈjé ‚¦:Œî“@—nùb /:ñ K>3Ωâ÷@·¼tËgÝ#g Ñ-ŸatË—Ý ¬GJ¦KEîiR—`nÖÕ2ÅZâz–8•@ÖÐ×–>;SÆÁ×7ß½¥^| édš†éÉ—k+rìŠP¥Â’U#gñoox¡æÜKƒÄÖæéó‹<Ìãt||ü¼ã¯`¤˜‘«’YöYnNNG1%ƒ,—ÁÑEµg:²e„xc?†‚âÄw¸œŒw0r€’]b¡ÀÝá1º— ¥xÌÈ€ìæ“+^Áç¿:‹©³ûÆ_°}à&§¹-_À mÚ9¦Ó¾<°œn÷¯ÿ~#":o“"8£ÿ~¨ÍȽgíì)8z(íž'3Á0ÜäS©ïF`5ûC¦nP(ãè?7ÿ§-¶Ú»gÌñyôçÍþ H¢ïli»‡Ù“by¿í”d]ÚÊ8xZÌ„¸ì…-Ÿö’… ,äõ3„}ñ >òÊÑz~áiíJæ0gq)åP+ˆq³§Óc,ApRöÚŽUÂãÙj5c™èÍÏ#þ‘—•ù4^³äÒ½§òtìòO8ösz]ü"¯;7„’Û%ª×ůÃ`ïì¶®9ÎÏžé zCrrBñ—øàÙ©R}&¼îÝúöTßP¡Ê.Í©2ì`Õ;¨öðWù®bÒž¤=õ°v<ïrѧþU7»}³ÎeAÄqç&}+d›f1%Lã³!%¢À8Â5–¤8Åë⯻¤Š¦K|$–ø8¦J8Ïh»ñÃÁ±;4V—”áJÿœÜùæ%NX ä{l]áö´±ë½š²œJîz†*hL]êµë0â”7‡S4îâb­„r Å%Þ „ê„Ä´Iq¦Ž+eÊ1ä¹Iœø øÑF‡„â<ï3ê×¾ˆS±¢$×ÝL—%>p²Ïd˜É³ŽÅk­$PãøB'Ί@»l8ËQ·2ãÖ¦ë,f¤oü†ˆâˆk®Ž}ùà+¦?¢ä°Hmiâüjøu}Ø3ÇŽÚÆ°ÖØö*øò£×¢ P!œñ °-‘Èjy›šx 5f8¹q]Rá{^@À^+Šqu󌜆;.U ÍŒ±ÅÛËŽÆ® …g¬ú&ÜzX¨€>­’'Å ;µ5uI­;ÝŒ~4ë1H¨Í+Ù¤qÅwNd°ÕkpæöTVMZºHAûZo»ì,©0?õ­_GLw®y&<×Ü&ëW$¯¨Gk-üfQ> /ExtGState << >> /Font << /F2 751 0 R /F3 752 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 2943 >> stream xœµÛKݶðýýZÚ‹2â›Ü&è#R´µQ£²p\µqm'v€¢ß¾çEÍñŒEqðËHc‰¢ÈCñ¿=Ûüö~ûõò×í×-w·§­F—ÒSp5l¡w—ÃöùÍörûxùæËßþøíöÝóËîö}ßnÿ|þÝŸ/Þå}û÷åÇŸ¶}ûçÅoÏàŸ÷l?\ªw5n-¹·÷t•\j³Š‹¤ìö>«9@-ºXfu×=¨{×ó$ø³â‘î8ÌŠü·÷Œ75)»˜PÅå6«:ŸQÍÕ4«¹^@~÷.ô™~ß]mäêöb»ì'®r;74$ý}ðDš?14ª'×vËÍíõÄÐð uOŒ®'ç÷{×øøD×»vv>Y†'aºâÓ0 íÕO±“‚#ô¬vbè]ܪe¸ŸrâŠ/Û[¹»¸“‹ Uš™:›Õ…f;gË ßªµÓîb=qÄ]ˉá6øø€ãŒvqÕ‹C±]²eøÅíÄÍeêï©p{LŽ»K^Ü÷lfpÞ÷¶s³ #vâËgO÷k¹œ9»NãA††Ï–iD5\è}T®®QÌ0Åw@Ñ!ÛîÞr§ç9;yØÍrñØñL‡ /¦aèoÕr¤÷emîÊ»gË™Þ7åŒf0Ã…Ú[g¥¹ØOܱ›³ën¹» ×Ûk2¼Üß ÀñN9¸F×[Í—kg¼pÓy?qr•Æ£Úè}Q.Ø Ñæcå†Ó ;íÚe—ñ¼RM¥¸¨Ac{('è}hÐßü‰‹Œè~b¸ jo¨¬|±]«å‚…‡áŠ «ÝqEwlص;×#³±H¤þÐ]¯rÄfBGšÏ”3þ‹Ýƒå„‡émã|¡ ó9=O¨Ó™;’èÞµ›Ça]±chG©· fÇñDŠel¯…#¶ÇÚÆ+eº v‰'n\\‡=âĪŒ13VÓÚë©…%ΧÊP&%r¥zG¹ð| ðÄñÞr83¼¯~¸ÚN¸˜îÔÞKCa\M{,œMS{ß7>foÐð¼´N#耇i(<µ×£høÅÚ…ç“à ÿ¾ÙôØa׆fðE õŽvàz4`á¼[n8qj§áŽ£v¹3ÌÇÚ —!à@ Ó0ŽXï™®»íf:aV†Ë8 …¯áŒýÝpÁþ¬†;Ö‹¦a¾ÒNb(ÌC´ì]Ê'Ï õ¸v“þë5ìkÓzÀ0¼xÕ²Üïd¸ ßÅ0ßjC™Cïs¢Žo8`½¢ä}ÇÜÓ‰ Ï7 O(\ Wüð Ý°ƒ¡°kÅrÀÂÁ0¾ÊÐ æ+,ÜŠåLýiíB׫Le&ºÒûlûƒòa=S»¸Ä­ž¸ácBS½g8òý,Ýéy- …U*Úð˜h½*­w gï×.ô<–n;½ok-·pâ0i¾[»àz`m¬7«åÈ÷³4 LÍvˆ'N8±q/å*ïcë|½“;u“ëå9nv=´—EK®ö²x§ìà -P™×m{>ýœù±‡Ò*òñsáípËP0oÀâîy ¼= TüzvÀ¼9 ªèØíƒ{`Þp{WÇMÞðí iÄ×_NñËë—oþËÒíÅ[¸C'?à?Ø0ÀÁ¸ ½F·¶'ûÓíÅûËï_Ðo¶O¥Í‘rsnxĹppÖݹéëÏ ¸iÓnÎ-8ú9¼w綯?ç XlßëÑX1wœ‰oN>Z‹·|eSV6€#×›ôŒ§Ÿ{üâ/³w?Æ økÆÏ…·tZ!0oÀZ­ßý ›doà‹>¸¹‡Ûºi•ßÝ4VòX¡A .ê‰î´yͳ}¤m>Ý?þt®`8çÓO{³y:®6ò¸øøøÓ¡†ÛÇÅŸ¾æé8äqñù~ç’ä’vnd%#Ìò´ .qð_Óÿó ƒo;~]m¸™øã“<Å.º=yóêó—ííçO¶?}ÿ÷íÝÇ·O¡_Á~ýÛ»OŸþ´½xö•màéš±WK÷ùËçO?¿úùÝõÝoÿmñØ|E øËïþü¿ç+h=÷Uy£_÷Õx“Uò÷ÔwÞà‘DÅ}y.Î%Qq_Þþ‘¨¸¯$i NTÜW– ÉWL¬ò9œãa1<³á û:¢1‰A•Å‘¤˜MOîz—¤XZ’³å¥8’³6éõHR(gܸIе9I±6')Öæ$ÅÚœ¤P®²)I å&IIR¬ÍIŠÙ8yFqÛOìy'âHVÌŽ’t‘$…eü’¿6')––$…râ•ÐHR($Ž$)”ë8ž“–q§}mÞ©VîÒž’¤˜õmãN˜²ì$Œ$…eLRXÆ$…r”DIRX.gβS+Iе9I±6')”«$e$I¡L¯G’Â2îä¯ÍIŠÙQvRF’biIRX“ks’bmNR¬ÍýQyìK’bmNR(GII’bmNR(g™$I¡\øKÏHR¬ÍIŠ¥%I¡ÜF’€“Ê}$-8I±6'),ç]“.Ôß$I¡e¼—$…òh/IR(œf®G’B¹ÉN»$)fã0C–$…²Ç þ둤PŽ\¾Œ$…eLR¬ÍIе9I¡œiQ~$)––$…r‘zB’Êò%r$)f—‘”“$ÅÚœ¤°ŒI Ë}?±ìäŽ$…rärv$)”3¾f×#I¡\%i%I å.;Q’¤X›“³á5¤þ<’Ê“v#I¡|$!8I¡\d§_’ÊMvú$I1»íXF\$…åpfÏõÞHRXN¸˜æ$ÅÒ’¤X›“–)Ù2;âk|I íÌI1IR˜Žû‰+'‰$I¡Ýqƒû:’ʰ¼ŠMLI—ÙQv9I¡e'”“†iKG»rÒU’Úã}à$Åì°KÒi$),c’bmNRXÆ$…åfš“ÊRÏ$ÅÚœ¤X›“ÊYv%IawŠ”+¯7G’bmNR(wìæ×#I1ÛÓ§žë‘¤X›“ks’bm¾_åÈóÙHR(IbH’bmNR(7IBI’ÂrOÚÐMéÿIе9I¡¸Iе9I±6')”3.S®G’bmNR¬ÍI åÊóùHRX¦¤ÍìÎõÞHRÌŽA’Œ’¤PN2J’bmNR¬ÍIŠ¥%I¡\¤½%I±6')Öæ$ÅÒ’¤X›“–[8q—ùB’ks’biIR¬ÍIе9Ia9DíDŸÑ®G’B9Éx&I Ë­Zæ$ÅÚœ¤Xy$)”ë]Ò“³óÎõÜHR¬ÍI ˘¤PŽø™ò.I±´$)”3·÷HR(K’x$)fãkÜ·›$…aJVÌNܤ°ŒIе9I±´$)Öæ$ÅÚœ¤Pn¼ÞI Ëø¾Í®ò½ùHR,-IŠÙ §±›$ÅÒ’¤XZ’³׳G’biIR,-IŠ•G²br£eÚM’biIR¬<’KK’biIRÌ.’´IŠÉ°Ì§z{$)––$…²ÌWG’b¶Œ§_¿eeË.M[v‰×“´åqtÌ´¡öüûíÕ/¿¼yõùÕÇ×oµ¥öˆýÃ~ÿZˆ8áï„øR^¾<۵΅Et2:÷‡ãÚ/ÿh¾ùëendstream endobj 928 0 obj << /BBox [ 0 0 432 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./Tutorial-fig5do.pdf) /PTEX.InfoDict 745 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /sRGB 748 0 R >> /ExtGState << >> /Font << /F2 746 0 R /F3 747 0 R >> /ProcSet [ /PDF /Text ] >> /Subtype /Form /Type /XObject /Length 2916 >> stream xœíÛKÇðýý½„EÊõ~,mçe$G‰gY^ØÄ(  È`)Ê·Ïyõ¦OÕ‘•]!ü<ÝwúV×»þ„íÙ¶×Û/—¿m¿le8Ÿ·–\Î[Êѵ¸Å1\‰ÛûŸ·çÛÛ˾ûÓWÛ×wï¼÷ÛñÏ»¯ÿr ®øíß—ïØüöÏKØžÁÿ^_^°}{iÁµ´õìJÚÞ|¤ëYÙå¾Rq~,Ô“Ku¡Ü(+Á7Ž+üR UWúJݵ¼PðÁűfs¾*Ò§3«_³[„WÑÚÕu¯ŸPˆÝù¶d„5]ðkfzÈ9Z†qG;âð‡.ÔÞ,ÃØ¤ ¿†êC­TÞkw—†íæ'®ø˜hh8yâÕÜ<•×Úû:ÃGBehêŒ÷1M ÅPÄ0>îÔ^Ö8ÖšÎÞ6Ì–Lcy,Ý¡¾…OxXÎ.Ô‰VsvkѶ24nϽ¹^-Ãeâì<Õ÷A3ÑžwíDã™eµ«Œ70haâ.ãN’6Tã4Ä8^¬]©>XÃrÃÇð þdåè=•‡rt¥’#õW–k²œð/† NZ WO×nXð†;õ÷Ê™Ç#tü”ÛÄ0Ìqžy`7î÷Àí-ÂÄË[9¹J¿fÜmæ‚Õ°âjw¢ËÛ2¾¯µ#þEša*bMÃÚÐp=}žvô¶q¾³v£ö¤yíaU‚óµ® Mãx¬œy¾£§÷¡ Í4ˆq“Í÷NŽ0_—ÏK8Þjgž¢ûÌUꬠ>›†‰öÀiš&¦Ê8æë+ÖgÃt£vâñ ãÕÚ0±‹ib𦢩a™†ù¸á„õQ»ã4MëexúSœøµ‰NSÐü}-·f&†0Þiy_¸ž*¶ÓÌçËè‘-'\{+ÃkÈÔßæ†×µa½óíÈ+ðX"v¬Ú› :a{5œq½©Ý¤=ÁÄëÓÙPŒ\Ÿa½ƒÏ»vÃö¬ ÝÜn¬KÃÄ'dÛ½Y¦ùž¶ì`DXoÐ÷9»ñ|%Â|ß—òàõ\„ù6¼ôÞQ†×¨?ƒù4ô÷Ú²W[¥÷¡,ë…Ø=µ7å!ýÌgSÕÆb â-'ï´³”nnù‰«ô78ßl\æ¢}Ÿ³qû’ óí>qÞ¯ÏÔŸ)S1±±?Y»`Ákïó0Ö§³»¬ç# LyfZ& ;õçÊ•ÛS‚ù>¯eø gzßʃç# çƒI{¬Ælï ÜÑÎòy0ßÊcâýyp>Õ,gêo-ç6ñàýt‰–iòìóÖÄ£N óþ}×ûÚ²O™bÀŽC{`1 i¿H§‰‰Ü±c4 G;óþ,ÚÛÚ¸±S&n¼_–pc§Û†/¦ ã5?O¢ýí¸ÿ¾Š»á†ýváñ.Á|ËS¹ã0€8ßUNžû+á;ïÔ†«ƒÛÌÃXýoçxo6áñ‚ã·º}ÉÃ_ÝK!¾ø0)Ä/Þ^¾ø#,{¶û—ð ü€ÿ`׎ý2Ô>èÝîßlOüÓíþõå÷ôÉö­¸¹ çáÞøˆ{á;À]÷æÏ¿7†‚k…‡{ë#î…zíàáÞþù÷â”ÚáÞðˆÂJ0S‚™âáæ[iña®·ÊÑnâù&½ãÓÏîøÊ™ãÃq§~Íþsáñ‚A+ÄÛÌø¿Ax¸@Æðýáñ~èÛ‡ïp, C©üîPXÐÕÀT &L0 RMtÓâ5aøöðøÛ{Ãá†oŸÖfóv\ ”ýáÓão‡9œß~ÚÌÛq(û×+—t —ì¹¹—Ü™`ñ0p”׸ó_wÓ¿¹“ÁÖŽ»?ÏØà¿ò§XE·'?ÿøþÃöòý»7ÛŸ¿ùûöêí˧P¯à?¿øõÕ»·OØîŸ}fzf¬ÕR}þúþÝO?þôêúê×ÿìeñØäDøáþ?9ñ?NNžìíQ‰»E‰J¬ÈQ E>D‘¨Ä‚•X‘£+fyÈXysT¢š|´ÊQ‰3›„?8*qf—cUŽJ¬ÈQ ƒ½MHZ‰JäHÊœ•X’¢gÞh‘ Ä‰ÃË1$Ç$4+‡h7á’0«bÃkGhú X’‚‡W”C Eœ™p%sÝ#š| Ìˆ%)q&õb×= ±$E!ÎÜ›$!4%Æ@ûÁKRâÌ*U…#g6 ØpB“¶‡$þ`°kv^êHôáÌ!¿ˆƒš´m ±‡ƒ÷<~ï©åÀ»&{êaâΩ Iåeâ(ïNR–1õ œ$ ©‡µ9õ`Swªñ’zPÎØi\o©‡µ9õ°6§” ïî©å*ý„¤ÖæÔÃÚœz°œ½mL=X¦òXYR¦‡eN=(795—Ôƒrç]í=õ01÷K’zX›SÊ7¯·ÔÃÚœzX›S–1õp6.4©½IêA9ð©Çžz˜¸í©IÍ-Ìór˘zX›Sksêaå=õ ±^o©Ëxj¾6§ÖæÔÃÚœzX›SksêA9É©³¤L·‰³œŠJêab>õ”Ôƒr‘SI=(WÞ•ÜSÊMN=%õ Üåy$õ`™Þ×Òœz˜xì©L=XÆÔÃÚõôyÚÑÛ®Õ2§”e<ßSksêÁò(ÚÑï©N=(©’zPŽœšÝSÊû©7§´3¯$õ ]x¶#©Ó9L\iskO=Ì<8ÕA©ÃS³g7$õ°6§´»¼N=˜ÆTòÚ”zМ±—Ôƒ2> stream xÚ­WmOãFþίH)œ^¼x×ïU¯=ŽU#µ*ª8>,Ž Ûó[ýUÿ{gvÖ!I¸ö*„Ö™™—gÇ;ùÄ?>‰ ýpâ{œÅ|’{î1/tœHëWµŠ›]FpxZÄ“ãjïWøT XÅÃŽåŒ;ëÞlÇÌó‚‰ý”áç{‡'n4á‹g“PL|17Ž&ç‹É¥u¢nú&ÚnZñ·SÛ÷…õ¦/¦"²ú\vên*BKëK•‰Z¤eb̳¾L:U•­ùY5dv4µ¹u:åÖ1>œ‘ðƒã;yšu°r²—å‚Tgd¯Ÿe]OmˆÊFš@´·Q7·˜Šv0›Úžã Cë^å {zuþ as—ù^LÕuXǃq ›W;CÓÃŒë0'pÁÞxqA6cð8g"ô*}êRð¡ÀûN–·Û0ô™ÇãeÀùÖ€Þó€oÞ¼÷éé&-«£ê*ᨛ8°®e›ê¤<«*M–´ÔME€T žžÌI|+e³hM•¶X¤F9¸ènS ³ÍEÄ—ÑNdߦvkàNÔÇõ8!—ÞˆÕ"áÌ\Á\' /ßCòЪeƒÈYTÝ“ð5- jÄ –‹°hh64€q¦;qc–‘P•F™µ„,üµÉË+¨È<«Lï‹6ƒ|ØÅÅÁ;ùˆÿ—$$ô-´&_“0¿¢õ;›¢ )|C î‡M+N×<¶´ ÜmÎÎ |ŽAvä^wàÜP!vµöލ`˜8Æ‘Þ1ël¼ MGÇprôóÙ[„îò’_‚û[q›?Ãmþå¸ÍǸÍÿoÜæŸ‡Ûü‹q[®Ÿø86†ÔGyЩ"5:–»í-Xq'6»›Ž»µS­ó oc Äu(û)½KÌÿÊÜØè:ynW·ìRpá®YÃ]ÿP¯Xûíþl×I>äª0'¾rQ ñæ Juð)—×ã¿Ãà1=˜5UAOïN#µ*³T¼—Ò ·Ë4öŽ‘×*WÝþ"¿_ŒšB¼tx¹*SÝqPÃ3çK¼ÅN¼ç„7¶¤»j½£šážªi÷GSÃR#Œ<©ò‘¬Á·à,ðÄÀ¬Jä/^l˜ŽïX?6R7éM“¶­ÂáŠZ½‚<é‰Fú¥™ ÊW阯Ò/Ô¶$F:@‚¢ÎÓ"%*’š [¢"áˆûÄsÝ%ù)è•ÜP¢ËYGƒÝ }zÖuß)ð€ðuR€§ér hW„ƒÇ÷›‚Æ@Ì–1kè(èãÔ÷-y“nªÆsù°!)ê¦ý¸±ùβhíîU0d\õH/¹gZEußͪZct›jö Vú@¢ò¼oa¦nïb§_r3\l™T9|”™9Te¤~š†üivA„Óã³Ý?®qˆ¤Ñ×Flf˜áT©î¶ÝmB8Lp¿2Y™oÇ@×ì½=ßû·Ã½}endstream endobj 930 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 931 0 obj << /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2596 >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 932 0 obj << /Filter /FlateDecode /Length 441 >> stream xÚmRÁn£0½ó>iq<6ÆÐ[7ÝH­ÔC·H=l÷à‚ V dÁi”~ýÚ˜¶‰TY‚73ožŸÇDÝ‚’B Ä J2)Qµ‹þE”ÏŒ38—`é[«Ûº¢·>jɇhr¦ú³ŒVž#p%Z*$b™$ TÖèÞ˜íaÔq’‚À@¯â$£^v1Ëñ¡SÖ¼ÅLâ™bÓÇ à*l<¨u_-•ÆÇ‡¾²fè§ Ö c&ü•ëÛ{žûxM5*×ÿÃyöÅ^¯‹€Ž¦«ëœ|Gî\ü-ïVqq ”2ÂYî†0Ÿçé).O ‚|2ž© /ª¼ð« À7 ·cNÀé$À‰H‹ÀU}'ÜM$ÌêÞOÃ~çCäDùiãþ[)ÉÒsÛQŸ¼â‡â²Õa»5éÎôKÔªw5ÎFr<4!w}{óÐÑ[SÓ¹ÏΚ}gôâýhlPmž)çzÔ½§ÙlTe‡qr÷Àãck:&"9B^äÕ7j½7ýÖñ9ÃúmÎŒ'Û~åºÉ;ç€ýÆ€—`R;MfiÆ(a:邹G›íl¾‰èWý…sÅõendstream endobj 933 0 obj << /Filter /FlateDecode /Length 226 >> stream xÚu=nÂ@…gåb¥i|Ï’eÅÒYâGŠ‹H¡¢@T’Djûh>а¥ äÉÛX ÉŸVï½yšyñÏÞËD¦òä%¼J˜ÉÁó™C€8‘0Ï/*v[ ÝdvÕ»\/_Gv‹¥xv+Ù¡hÏÕJˆÊžˆ2Õ†(Wí ¨F¢ºO†¶öFF›l@²Ä&¿%`Ý}b —ÝÈzdüeL,¢>2½¿Ýÿ°~dgygL[41Ƕ¦³Š» ÚÖhKy“êJ BaûsµQø óºâ îDŠendstream endobj 934 0 obj << /Filter /FlateDecode /Length 281 >> stream xÚ•‘=NÄ0…ÚÂ’!sH›´––E"Tˆ ()@Ðß`¯ä£ä)·ˆ<ÌØ‹Å$Å'ÏÏ{ÏIן5-5tA§ç-ukZwôÜÚ7Û5¤oßZO¯v3ØúžºÆÖ×R·õpCïŸ/¶ÞÜ^Rkë-=ˆÔ£¶ð„/ÀqZq€gÞ XŸxÂqdWŒjï£Ip‹nIU¨ì¤iÿÀ+ÂÿñW%KK"5²-CiÖKìŒ #;–A˜ 58©E,˜ æ½k΢SvàYlK³ S^`‰%*#ÃGÝÅ4dP€ãã”ɲ€1ê:¼^.ei³À¥üiþ‘C–¨žÌ%ý>+éÁ^ öÎ~ÝèÈñendstream endobj 935 0 obj << /Filter /FlateDecode /Length 131 >> stream xÚ36Ô34R0P0b#Ks…C®B.#ßÄ1’s¹œ<¹ôÃŒL¸ô=€¢\úž¾ %E¥©\úNÎ †\ú. ц ±\ž. 5 Œÿ˜ÿ7°ÿ?Düÿ #ˆ P¨¨’¨?Pÿ1ÿ?ÀH{ôp¹zrrÙðDendstream endobj 936 0 obj << /Filter /FlateDecode /Length 162 >> stream xÚ33Ò32Q0Pa3 eªbÈUÈej 䃹 ‰ä\.'O.ýpSS.} (—¾§¯BIQi*—¾S€³‚!—¾‹B´¡‚A,—§‹C}û?†ÿÿìÿ7€¨ÿÿ©Æÿÿ©öö€Tƒüæÿóøÿ10þŸ¡ö@¨ ìÿÔê6êÀP¢þÿÿßüÿÿ?|—«'W ã[«endstream endobj 937 0 obj << /Filter /FlateDecode /Length 213 >> stream xÚ¥1 ÂP †#B–¡¹€¾[¥S¡Vð ‚N⤎ŠÎõh=JбC1&¶ÕE\|>øóó’?ádäùäј†>…c &tðñŒA$¢GÁ´éìO˜X4 "4 ‘ÑØ%]/·#šd5#MJ[ùh‡6%·y=æ\0`..³ªYå°€óßAK<ý@\À@Q‚#6·§-WQwˆu©;Sðwð ÷?ñkB·KƒnÏú•¾ÍÐ&jÑ×´…„–ìùû1³´Áa®>7k.ˆs‹k|]Åfendstream endobj 938 0 obj << /Filter /FlateDecode /Length 161 >> stream xÚ31Õ37U0P0bcS…C®B.cK ßÄI$çr9yré‡+[ré{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]êêþÿoüÿàÿÿæÿþÿïÿÿHôÿùÿ¾ü?æÿûäÿ1þß"~À‰`‚ÿãÿì?€ã ÁÀ€L 7ñÿ?Ðbl—«'W nendstream endobj 939 0 obj << /Filter /FlateDecode /Length 223 >> stream xÚE1NÄ@ E?šb%79Âø0;Úì"ª‘–E"Tˆ (·AKÜq­%GH™"б´4o4ßßþv]_ä+^sÍç™k{wüšé6[í{¹T^Ž´o(=òfKéÖdJÍ~|½QÚß_s¦tà§ÌëgjŒ8êU•ʇ R:EZ Ê·cªV¢ÿG@­‚V‡•ŠjçU'Øø„3r¸Ø¹Ó–½µ—£å:ªÓ ¾Fg ñ¾©u·Ð1Ìv¥Mª#†bj¿2;Ý4ô@¿* endstream endobj 940 0 obj << /Filter /FlateDecode /Length 251 >> stream xÚ­Ñ1nƒ0€á‡: ½…”wÖ 4ÈYŠD©†Hí”!ê”d̪™áh9 GÈÈ`ñj°1RaKd}22²äây™PD zŠI¾P"éãeDÝ“¬Ì›ý ³Å–d„b­—Qúù¾Qdo£ÈiSô…ENÜôèÅW§Æ©uâJ3d€”k«¾YA¿¥W©¥í ù©² fuýM¿<7'MÕäž»¥ïnžÚÝ€ASýwMRàö \S¿ošÖ'ðæŠß%u—«vªrChë2<š>úï¿\+#_ç2ò˜o¶cibBרÂ÷?ñi hendstream endobj 941 0 obj << /Type /XRef /Length 1182 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 89 0 R /Root 88 0 R /Size 942 /ID [<31525ec689c6ff43648520c1c81ddd18><2c67833912700ec51a8810d477bb0314>] >> stream xœí˜ÙUE‡»ûÞs7`.èÈ ³"ŽŠlA£Â°((ƒQqAD£à‚1c¢¾A"áè$B¢ ‰ˆ‚¼ Ž($* ‹0¨AYÆé¯n¨úäáÌ×Jwß^ª]Ug‚‹Á;W†§\ˆ >eÊÐ,ï°3ã6ŽMJµ‘RµÑ»%j£´+ª"ÙY,Á·"3nÌÿYz”–[# óàAƯ§· ŽˆÌ¾õ6§9Õ[JÕÛ»MQoÙ1(*‹NFŽX™{ŠÔå–GúÁ‘áFì<|ö€'a-”1Gá¿füõÌ0 =ûÆzÏêá5°F×õeÁ÷„{á¯Wã{1ÿlìW`Ù¡üê°ÿ1§[ý¿½ ûñ¿…^èÇÁj8…ö˜§•–ÐÁ-ð,ä-ûþp,¿º»ì3ðìl¼:Ñø3ú!Ì0ѬÕhv5Ä´œ6dÅp›¹©¾°7$ªø©ðOøƒÙƒx~3l3÷[67>ž}à13ò¬9WÙÕ¸n2窂]àEíõ?ÃUp³}€ÝfîBT:̨Hô ¯øxu}xû^È»sòWêþE½á1ì:s:‰$Ô*þ;ø ü RûÝfþÑÆççŒ>eäoPâ9Q"Ì3goÐÈêC#û0CÃï‘=;üï/=ù§øß³pÊ+íaÅÈX …eQ“æ¤ÚH©ÚX;8jc(Ù°472»=FÅQ«ô--äÄNsuŒ|…¿¤w‰¶Ë?J³¡d+¶š¸'Rªµ3&þKD•ªõy“ êMô“*÷„ÉëL:ª°Rì6ñSrÓñËñßùÛMœ—J`»f–J4þJv¾R·„;L‹Ôuk4ª‡W±ûšµÈN*Cjû0ÞÌü,¤6’/fš=ךüUmòù:PU22·YÉþ`K%)‹d·gàf“›8iÌø”Œ9 ̺-ب‘ïz2³| Í e–z&ãT!]¹‘ÌõaV¾ýŒÌᙽ¹éQy¢Vî9Æ ·<ëæ>¦J‘¯¼;Ác ªKPTBež” 9KÂG‚ÿóT¼ÅSªç |¯%óuçõ±Âñõø¤5Lo¤ÀœƒPx¶FÇÑá8ªš°Wg.nˆó4/bþŸ0[‘Ùª¸»ìCÚÛ:<×Cç©¢æ ‹µ%yƒ_}޽–ñÔoþëÒÏwÞHû´Ë¿ò2ïgî]”/ïE^P›*-ŒqÿQ)øŸ endstream endobj startxref 463655 %%EOF mstate/README.md0000644000176200001440000000141414627637077013051 0ustar liggesusers# mstate [![](https://www.r-pkg.org/badges/version/mstate?color=orange)](https://cran.r-project.org/package=mstate) [![](http://cranlogs.r-pkg.org/badges/last-month/mstate?color=gray)](https://cran.r-project.org/package=mstate) [![](http://cranlogs.r-pkg.org/badges/grand-total/mstate?color=blue)](https://cran.r-project.org/package=mstate) [![](https://img.shields.io/badge/doi-10.1002/sim.2712-yellow.svg)](https://doi.org/10.1002/sim.2712) ## Installation You can install the released version of mstate from [CRAN](https://CRAN.R-project.org) with: ``` r install.packages("mstate") ``` Alternatively, you can install the development version from GitHub: ``` r devtools::install_github("hputter/mstate") ``` mstate/build/0000755000176200001440000000000014643710676012664 5ustar liggesusersmstate/build/vignette.rds0000644000176200001440000000045114643710676015223 0ustar liggesusers‹uP]KÃ0M?6]QQöî£"–á‹o>½ˆ0æß$,·.˜4%I{ó—¯fmªkÅ@’{Î=‡{’ׄ’8H¹2»cèöyÓѾþ䦤¼1”*]Hæù“ei•æT¤‹|Óó\¿Ônxþ²–ßK-‚T …²iÔœ·Ü?p) v@s*¶ ¨ 極¨-¸™pùä„ðˆ n'“»«^€‹N赕âOê‚e=ÓY÷¥žM~ßéиÖ7>âïÀ+‡+YhóñÊ­840"} \item{drmatch}{Donor-recipient gender match; factor with levels "No gender mismatch", "Gender mismatch"} \item{tcd}{T-cell depletion; factor with levels "No TCD", "TCD"} } } \references{ Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. } \keyword{datasets} mstate/man/Cuminc.Rd0000644000176200001440000001061614643710262014040 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Cuminc.R \name{Cuminc} \alias{Cuminc} \alias{print.Cuminc} \title{Calculate nonparametric cumulative incidence functions and associated standard errors} \usage{ Cuminc(time, status, data, group, na.status = c("remove", "extra"), ...) } \arguments{ \item{time}{Either 1) a numeric vector containing the failure times or 2) a string containing the column name indicating these failure times} \item{status}{Either 1) a numeric, factor or character vector containing the failure codes or 2) a string containing the column name indicating these failure codes} \item{data}{When appropriate, a data frame containing \code{time}, \code{status} and/or \code{group} variables} \item{group}{Optionally, name of column in data indicating a grouping variable; cumulative incidence functions are calculated for each value or level of \code{group}. If missing no groups are considered} \item{na.status}{One of \code{"remove"} (default) or \code{"extra"}, indicating whether subjects with missing cause of failure should be removed or whether missing cause of failure should be treated as a separate cause of failure} \item{...}{Allows extra arguments for future extensions, but for now just used for backwards compatibility (e.g. allowing use of defunct \code{failcodes} argument in reverse dependencies).} } \value{ An object of class \code{"Cuminc"}, which is a data frame containing the estimated failure-free probabilities and cumulative incidences and their standard errors. The names of the dataframe are \code{time}, \code{Surv}, \code{seSurv}, and \code{cuminc} and \code{secuminc} followed by the values or levels of the \code{failcodes}. If \code{group} was specified, a \code{group} variable is included with the same name and values/levels as the original grouping variable, and with estimated cumulative incidences (SE) for each value/level of \code{group}. Cuminc is now simply a wrapper around survfit of the survival package with type=\code{"mstate"}, only maintained for backward compatibility. The survfit object is kept as attribute (\code{attr("survfit")}), and the print, plot and summary functions are simply print, plot and summary applied to the survfit object. Subsetting the \code{"Cuminc"} object results in subsetting the data frame, not in subsetting the survfit object. } \description{ This function computes nonparametric cumulative incidence functions and associated standard errors for each value of a group variable. } \details{ The estimated cumulative incidences are as described in Putter, Fiocco & Geskus (2007); the standard errors are the square roots of the Greenwood variance estimators, see eg. Andersen, Borgan, Gill & Keiding (1993), de Wreede, Fiocco & Putter (2009), and they correspond to the variances in eg. Marubini & Valsecchi (1995). In case of no censoring, the estimated cumulative incidences and variances reduce to simple binomial frequencies and their variances. } \examples{ ### These data were used in Putter, Fiocco & Geskus (2007) data(aidssi) ci <- Cuminc(time=aidssi$time, status=aidssi$status) head(ci); tail(ci) ci <- Cuminc(time="time", status="status", data=aidssi, group="ccr5") head(ci); tail(ci) ### Some fake data fake <- data.frame(surv=c(seq(2,10,by=2),seq(1,13,by=3),seq(1,9,by=2),seq(1,13,by=3)), stat=rep(0:3,5),Tstage=c(1:4,rep(1:4,rep(4,4)))) fake$stat[fake$stat==0 & fake$Tstage==2] <- 3 fake$stat[fake$stat==3 & fake$Tstage==1] <- 2 fake Cuminc(time="surv", status="stat", data=fake) # If we remove all entries with status=0, # we should get binomial sample probabilities and corresponding SEs fake0 <- fake[fake$stat!=0,] Cuminc(time="surv", status="stat", data=fake0) } \references{ Andersen PK, Borgan O, Gill RD, Keiding N (1993). \emph{Statistical Models Based on Counting Processes}. Springer, New York. Marubini E, Valsecchi MG (1995). \emph{Analysing Survival Data from Clinical Trials and Observational Studies}. Wiley, New York. Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. de Wreede L, Fiocco M, Putter H (2009). The mstate package for estimation and prediction in non- and semi-parametric multi-state models. Submitted. } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{survival} mstate/man/vis.multiple.pt.Rd0000644000176200001440000000626314627637077015720 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/vis.multiple.pt.R \name{vis.multiple.pt} \alias{vis.multiple.pt} \title{Visualise multiple probtrans objects} \usage{ vis.multiple.pt( x, from = 1, to, xlab = "Time", ylab = "Probability", xlim = NULL, ylim = NULL, cols, lwd, labels, conf.int = 0.95, conf.type = c("log", "plain", "none"), legend.title ) } \arguments{ \item{x}{A list of \code{"probtrans"} objects} \item{from}{The starting state from which the probabilities are used to plot Numeric, as in \code{plot.probtrans}} \item{to}{(Numeric) destination state} \item{xlab}{A title for the x-axis; default is \code{"Time"}} \item{ylab}{A title for the y-axis; default is \code{"Probability"}} \item{xlim}{The x limits of the plot(s), default is range of time} \item{ylim}{The y limits of the plot(s); if ylim is specified for type="separate", then all plots use the same ylim for y limits} \item{cols}{A vector specifying colors for the different transitions; default is a palette from green to red, when type=\code{"filled"} (reordered according to \code{ord}, and 1 (black), otherwise} \item{lwd}{The line width, see \code{\link{par}}; default is 1} \item{labels}{Character vector labelling each element of x (e.g. label for a reference patient) - so labels = c("Patient 1", "Patient 2")} \item{conf.int}{Confidence level (\%) from 0-1 for probabilities, default is 0.95 (95\% CI). Setting to 0 removes the CIs.} \item{conf.type}{Type of confidence interval - either "log" or "plain" . See function details for details.} \item{legend.title}{Character - title of legend} } \value{ A ggplot object. } \description{ Helper function allowing to visualise state probabilities for different reference patients/covariates. Multiple \code{"probtrans"} objects are thus needed. } \examples{ library(ggplot2) data("aidssi") head(aidssi) si <- aidssi # Prepare transition matrix tmat <- trans.comprisk(2, names = c("event-free", "AIDS", "SI")) # Run msprep si$stat1 <- as.numeric(si$status == 1) si$stat2 <- as.numeric(si$status == 2) silong <- msprep( time = c(NA, "time", "time"), status = c(NA, "stat1", "stat2"), data = si, keep = "ccr5", trans = tmat ) # Run cox model silong <- expand.covs(silong, "ccr5") c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong) # 1. Prepare patient data - both CCR5 genotypes WW <- data.frame( ccr5WM.1 = c(0, 0), ccr5WM.2 = c(0, 0), trans = c(1, 2), strata = c(1, 2) ) WM <- data.frame( ccr5WM.1 = c(1, 0), ccr5WM.2 = c(0, 1), trans = c(1, 2), strata = c(1, 2) ) # 2. Make msfit objects msf.WW <- msfit(c1, WW, trans = tmat) msf.WM <- msfit(c1, WM, trans = tmat) # 3. Make probtrans objects pt.WW <- probtrans(msf.WW, predt = 0) pt.WM <- probtrans(msf.WM, predt = 0) # Plot - see vignette for more details vis.multiple.pt( x = list(pt.WW, pt.WM), from = 1, to = 2, conf.type = "log", cols = c(1, 2), labels = c("Pat WW", "Pat WM"), legend.title = "Ref patients" ) } \author{ Edouard F. Bonneville \email{e.f.bonneville@lumc.nl} } mstate/man/msboot.Rd0000644000176200001440000000424014627637077014137 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/msboot.R \name{msboot} \alias{msboot} \title{Bootstrap function in multi-state models} \usage{ msboot(theta, data, B = 5, id = "id", verbose = 0, ...) } \arguments{ \item{theta}{A function of \code{data} and perhaps other arguments, returning the value of the statistic to be bootstrapped; the output of theta should be a scalar or numeric vector} \item{data}{An object of class 'msdata', such as output from \code{\link{msprep}}} \item{B}{The number of bootstrap replications; the default is taken to be quite small (5) since bootstrapping can be time-consuming} \item{id}{Character string indicating which column identifies the subjects to be resampled} \item{verbose}{The level of output; default 0 = no output, 1 = print the replication} \item{...}{Any further arguments to the function \code{theta}} } \value{ Matrix of dimension (length of output of theta) x B, with b'th column being the value of theta for the b'th bootstrap dataset } \description{ A generic nonparametric bootstrapping function for multi-state models. } \details{ The function \code{msboot} samples randomly with replacement subjects from the original dataset \code{data}. The individuals are identified with \code{id}, and bootstrap datasets are produced by concatenating all selected rows. } \examples{ tmat <- trans.illdeath() data(ebmt1) covs <- c("score","yrel") msebmt <- msprep(time=c(NA,"rel","srv"),status=c(NA,"relstat","srvstat"), data=ebmt1,id="patid",keep=covs,trans=tmat) # define a function (this one returns vector of regression coef's) regcoefvec <- function(data) { cx <- coxph(Surv(Tstart,Tstop,status)~score+strata(trans), data=data,method="breslow") return(coef(cx)) } regcoefvec(msebmt) set.seed(1234) msboot(theta=regcoefvec,data=msebmt,id="patid") } \references{ Fiocco M, Putter H, van Houwelingen HC (2008). Reduced-rank proportional hazards regression and simulation-based prediction for multi-state models. \emph{Statistics in Medicine} \bold{27}, 4340--4358. } \author{ Marta Fiocco, Hein Putter } \keyword{datagen} mstate/man/vis.mirror.pt.Rd0000644000176200001440000000623614627637077015377 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/vis.mirror.pt.R \name{vis.mirror.pt} \alias{vis.mirror.pt} \title{Mirror plot comparing two probtrans objects} \usage{ vis.mirror.pt( x, titles, size_titles = 5, horizon = NULL, breaks_x_left, breaks_x_right, from = 1, cols, ord, xlab = "Time", ylab = "Probability", legend.pos = "right" ) } \arguments{ \item{x}{A list of two \code{"probtrans"} objects. The first element will be on the left of the mirror plot, and the second on the right} \item{titles}{A character vector c("Title for left", "Title for right")} \item{size_titles}{Numeric, size of the title text} \item{horizon}{Numeric, position denoting (in time) where to symmetrically mirror the plots. Default is maximum follow-up of from both plots.} \item{breaks_x_left}{Numeric vector specifying axis breaks on the left plot} \item{breaks_x_right}{Numeric vector specifying axis breaks on the right plot} \item{from}{The starting state from which the probabilities are used to plot} \item{cols}{A vector specifying colors for the different transitions; default is a palette from green to red, when type=\code{"filled"} (reordered according to \code{ord}, and 1 (black), otherwise} \item{ord}{A vector of length equal to the number of states, specifying the order of plotting in case type=\code{"stacked"} or \code{"filled"}} \item{xlab}{A title for the x-axis, default is "Time"} \item{ylab}{A title for the y-axis, default is "Probability"} \item{legend.pos}{Position of the legend, default is "right"} } \value{ A ggplot2 object. } \description{ A mirror plot for comparing two different \code{"probtrans"} objects. Useful for comparing predicted probabilities for different levels of a covariate, or for different subgroups at some prediction time horizon. } \examples{ library(ggplot2) data("aidssi") head(aidssi) si <- aidssi # Prepare transition matrix tmat <- trans.comprisk(2, names = c("event-free", "AIDS", "SI")) # Run msprep si$stat1 <- as.numeric(si$status == 1) si$stat2 <- as.numeric(si$status == 2) silong <- msprep( time = c(NA, "time", "time"), status = c(NA, "stat1", "stat2"), data = si, keep = "ccr5", trans = tmat ) # Run cox model silong <- expand.covs(silong, "ccr5") c1 <- coxph(Surv(time, status) ~ ccr5WM.1 + ccr5WM.2 + strata(trans), data = silong) # 1. Prepare reference patient data - both CCR5 genotypes WW <- data.frame( ccr5WM.1 = c(0, 0), ccr5WM.2 = c(0, 0), trans = c(1, 2), strata = c(1, 2) ) WM <- data.frame( ccr5WM.1 = c(1, 0), ccr5WM.2 = c(0, 1), trans = c(1, 2), strata = c(1, 2) ) # 2. Make msfit objects msf.WW <- msfit(c1, WW, trans = tmat) msf.WM <- msfit(c1, WM, trans = tmat) # 3. Make probtrans objects pt.WW <- probtrans(msf.WW, predt = 0) pt.WM <- probtrans(msf.WM, predt = 0) # Mirror plot split at 10 years - see vignette for more details vis.mirror.pt( x = list(pt.WW, pt.WM), titles = c("WW", "WM"), horizon = 10 ) } \seealso{ \code{\link{plot.probtrans}} } \author{ Edouard F. Bonneville \email{e.f.bonneville@lumc.nl} } mstate/man/probtrans.Rd0000644000176200001440000001100514627637077014643 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/probtrans.R \name{probtrans} \alias{probtrans} \title{Compute subject-specific or overall transition probabilities with standard errors} \usage{ probtrans( object, predt, direction = c("forward", "fixedhorizon"), method = c("aalen", "greenwood"), variance = TRUE, covariance = FALSE ) } \arguments{ \item{object}{\link{msfit} object containing estimated cumulative hazards for each of the transitions in the multi-state model and, if standard errors are requested, (co)variances of these cumulative hazards for each pair of transitions} \item{predt}{A positive number indicating the prediction time. This is either the time at which the prediction is made (if \code{direction}= \code{"forward"}) or the time for which the prediction is to be made (if \code{direction}=\code{"fixedhorizon"})} \item{direction}{One of \code{"forward"} (default) or \code{"fixedhorizon"}, indicating whether prediction is forward or for a fixed horizon} \item{method}{A character string specifying the type of variances to be computed (so only needed if either \code{variance} or \code{covariance} is \code{TRUE}). Possible values are \code{"aalen"} or \code{"greenwood"}} \item{variance}{Logical value indicating whether standard errors are to be calculated (default is \code{TRUE})} \item{covariance}{Logical value indicating whether covariances of transition probabilities for different states are to be calculated (default is \code{FALSE})} } \value{ An object of class \code{"probtrans"}, which is a list of which item [[s]] contains a data frame with the estimated transition probabilities (and standard errors if \code{variance}=\code{TRUE}) from state s. If \code{covariance}=\code{TRUE}, item \code{varMatrix} contains an array of dimension K^2 x K^2 x (nt+1) (with K the number of states and nt the distinct transition time points); the time points correspond to those in the data frames with the estimated transition probabilities. Finally, there are items \code{trans}, \code{method}, \code{predt}, \code{direction}, recording the transition matrix, and the method, predt and direction arguments used in the call to probtrans. Plot and summary methods have been defined for \code{"probtrans"} objects. } \description{ This function computes subject-specific or overall transition probabilities in multi-state models. If requested, also standard errors are calculated. } \details{ For details refer to de Wreede, Fiocco & Putter (2010). } \examples{ # transition matrix for illness-death model tmat <- trans.illdeath() # data in wide format, for transition 1 this is dataset E1 of # Therneau & Grambsch (2000) tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,0,0,0),x2=c(6:1)) # data in long format using msprep tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), data=tg,keep=c("x1","x2"),trans=tmat) # events events(tglong) table(tglong$status,tglong$to,tglong$from) # expanded covariates tglong <- expand.covs(tglong,c("x1","x2")) # Cox model with different covariate cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), data=tglong,method="breslow") summary(cx) # new data, to check whether results are the same for transition 1 as # those in appendix E.1 of Therneau & Grambsch (2000) newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) HvH <- msfit(cx,newdata,trans=tmat) # probtrans pt <- probtrans(HvH,predt=0) # predictions from state 1 pt[[1]] } \references{ Andersen PK, Borgan O, Gill RD, Keiding N (1993). \emph{Statistical Models Based on Counting Processes}. Springer, New York. Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. Therneau TM, Grambsch PM (2000). \emph{Modeling Survival Data: Extending the Cox Model}. Springer, New York. de Wreede LC, Fiocco M, and Putter H (2010). The mstate package for estimation and prediction in non- and semi-parametric multi-state and competing risks models. \emph{Computer Methods and Programs in Biomedicine} \bold{99}, 261--274. de Wreede LC, Fiocco M, and Putter H (2011). mstate: An R Package for the Analysis of Competing Risks and Multi-State Models. \emph{Journal of Statistical Software}, Volume 38, Issue 7. } \author{ Liesbeth de Wreede and Hein Putter \email{H.Putter@lumc.nl} } \keyword{survival} mstate/man/ELOS.Rd0000644000176200001440000000521314627637077013377 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/ELOS.R \name{ELOS} \alias{ELOS} \title{Expected length of stay} \usage{ ELOS(pt, tau) } \arguments{ \item{pt}{An object of class \code{"probtrans"}} \item{tau}{The horizon until which ELOS is calculated; if missing, the maximum of the observed transition times is taken} } \value{ A K x K matrix (with K number of states), with the (g,h)'th element containing E_gh(s,tau). The starting time point s is inferred from \code{pt} (the smallest time point, should be equal to the \code{predt} value in the call to \code{\link{probtrans}}. The row- and column names of the matrix have been named "from1" until "fromK" and "in1" until "inK", respectively. } \description{ Given a \code{"probtrans"} object, ELOS calculates the (restricted) expected length of stay in each of the states of the multi-state model. } \details{ The object \code{pt} needs to be a \code{"probtrans"} object, obtained with forward prediction (the default, \code{direction}=\code{"forward"}, in the call to \code{\link{probtrans}}). The restriction to \code{tau} is there because, as in ordinary survival analysis, the probability of being in a state can be positive until infinity, resulting in infinite values. The (restricted, until tau) expected length of stay in state h, given in state g at time s, is given by the integral from s to tau of P_gh(s,t), see for instance Beyersmann and Putter (2014). } \examples{ # transition matrix for illness-death model tmat <- trans.illdeath() # data in wide format, for transition 1 this is dataset E1 of # Therneau & Grambsch (2000) tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,0,0,0),x2=c(6:1)) # data in long format using msprep tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), data=tg,keep=c("x1","x2"),trans=tmat) # events events(tglong) table(tglong$status,tglong$to,tglong$from) # expanded covariates tglong <- expand.covs(tglong,c("x1","x2")) # Cox model with different covariate cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), data=tglong,method="breslow") summary(cx) # new data, to check whether results are the same for transition 1 as # those in appendix E.1 of Therneau & Grambsch (2000) newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) HvH <- msfit(cx,newdata,trans=tmat) # probtrans pt <- probtrans(HvH,predt=0) # ELOS until last observed time point ELOS(pt) # Restricted ELOS until tau=10 ELOS(pt, tau=10) } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{univar} mstate/man/plot.probtrans.Rd0000644000176200001440000001263114627637077015626 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot.probtrans.R \name{plot.probtrans} \alias{plot.probtrans} \title{Plot method for a probtrans object} \usage{ \method{plot}{probtrans}( x, from = 1, type = c("filled", "single", "separate", "stacked"), ord, cols, xlab = "Time", ylab = "Probability", xlim, ylim, lwd, lty, cex, legend, legend.pos = "right", bty = "n", xaxs = "i", yaxs = "i", use.ggplot = FALSE, conf.int = 0.95, conf.type = c("log", "plain", "none"), label, ... ) } \arguments{ \item{x}{Object of class 'probtrans', containing estimated transition probabilities} \item{from}{The starting state from which the probabilities are used to plot} \item{type}{One of \code{"stacked"} (default), \code{"filled"}, \code{"single"} or \code{"separate"}; in case of \code{"stacked"}, the transition probabilities are stacked and the distance between two adjacent curves indicates the probability, this is also true for \code{"filled"}, but the space between adjacent curves are filled, in case of \code{"single"}, the probabilities are shown as different curves in a single plot, in case of \code{"separate"}, separate plots are shown for the estimated transition probabilities} \item{ord}{A vector of length equal to the number of states, specifying the order of plotting in case type=\code{"stacked"} or \code{"filled"}} \item{cols}{A vector specifying colors for the different transitions; default is a palette from green to red, when type=\code{"filled"} (reordered according to \code{ord}, and 1 (black), otherwise} \item{xlab}{A title for the x-axis; default is \code{"Time"}} \item{ylab}{A title for the y-axis; default is \code{"Probability"}} \item{xlim}{The x limits of the plot(s), default is range of time} \item{ylim}{The y limits of the plot(s); if ylim is specified for type="separate", then all plots use the same ylim for y limits} \item{lwd}{The line width, see \code{\link{par}}; default is 1} \item{lty}{The line type, see \code{\link{par}}; default is 1} \item{cex}{Character size, used in text; only used when type=\code{"stacked"} or \code{"filled"}} \item{legend}{Character vector of length equal to the number of transitions, to be used in a legend; if missing, numbers will be used; this and the legend arguments following are ignored when type="separate"} \item{legend.pos}{The position of the legend, see \code{\link{legend}}; default is \code{"topleft"}} \item{bty}{The box type of the legend, see \code{\link{legend}}} \item{xaxs}{See \code{\link{par}}, default is "i", for type=\code{"stacked"}} \item{yaxs}{See \code{\link{par}}, default is "i", for type=\code{"stacked"}} \item{use.ggplot}{Default FALSE, set TRUE for ggplot version of plot} \item{conf.int}{Confidence level (\%) from 0-1 for probabilities, default is 0.95 (95\% CI). Setting to 0 removes the CIs.} \item{conf.type}{Type of confidence interval - either "log" or "plain" . See function details for details.} \item{label}{Only relevant for type = "filled" or "stacked", set to "annotate" to have state labels on plot, or leave unspecified.} \item{\dots}{Further arguments to plot} } \value{ No return value } \description{ Plot method for an object of class 'probtrans'. It plots the transition probabilities as estimated by \code{\link{probtrans}}. } \details{ Regarding confidence intervals: let \eqn{p} denote a predicted probability, \eqn{\sigma} its estimated standard error, and \eqn{z_{\alpha/2}} denote the critical value of the standard normal distribution at confidence level \eqn{1 - \alpha}. The confidence interval of type "plain" is then \deqn{p \pm z_{\alpha/2} * \sigma} The confidence interval of type "log", based on the Delta method, is then \deqn{\exp(\log(p) \pm z_{\alpha/2} * \sigma / p)} } \examples{ # transition matrix for illness-death model tmat <- trans.illdeath() # data in wide format, for transition 1 this is dataset E1 of # Therneau and Grambsch (2000) tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,0,0,0),x2=c(6:1)) # data in long format using msprep tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), data=tg,keep=c("x1","x2"),trans=tmat) # events events(tglong) table(tglong$status,tglong$to,tglong$from) # expanded covariates tglong <- expand.covs(tglong,c("x1","x2")) # Cox model with different covariate cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), data=tglong,method="breslow") summary(cx) # new data, to check whether results are the same for transition 1 as # those in appendix E.1 of Therneau and Grambsch (2000) newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) msf <- msfit(cx,newdata,trans=tmat) # probtrans pt <- probtrans(msf,predt=0) # default plot plot(pt,ord=c(2,3,1),lwd=2,cex=0.75) # filled plot plot(pt,type="filled",ord=c(2,3,1),lwd=2,cex=0.75) # single plot plot(pt,type="single",lwd=2,col=rep(1,3),lty=1:3,legend.pos=c(8,1)) # separate plots par(mfrow=c(2,2)) plot(pt,type="sep",lwd=2) par(mfrow=c(1,1)) # ggplot version - see vignette for details library(ggplot2) plot(pt, ord=c(2,3,1), use.ggplot = TRUE) } \seealso{ \code{\link{probtrans}} } \author{ Hein Putter \email{H.Putter@lumc.nl} Edouard F. Bonneville \email{e.f.bonneville@lumc.nl} } \keyword{hplot} mstate/man/MarkovTest.Rd0000644000176200001440000001321214627637077014732 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/MarkovTest.R \name{MarkovTest} \alias{MarkovTest} \alias{optimal_weights_multiple} \alias{optimal_weights_matrix} \title{Log-rank based test for the validity of the Markov assumption} \usage{ MarkovTest( data, id, formula = NULL, transition, grid, B = 1000, fn = list(function(x) mean(abs(x), na.rm = TRUE)), fn2 = list(function(x) mean(x, na.rm = TRUE)), min_time = 0, other_weights = NULL, dist = c("poisson", "normal") ) } \arguments{ \item{data}{Multi-state data in \code{msdata} format. Should also contain (dummy codings of) the relevant covariates; no factors allowed} \item{id}{Column name in \code{data} containing subject id} \item{formula}{Right-hand side of the formula. If NULL will fit with no covariates (formula="1" will also work), offset terms can also be specified.} \item{transition}{Transition number of the transition to be tested (in the transition matrix as attribute to \code{data})} \item{grid}{Grid of time points at which to compute the statistic} \item{B}{Number of wild bootstrap replications to perform} \item{fn}{A list of summary functions to be applied to the individual zbar traces (or a list of lists)} \item{fn2}{A list of summary functions to be applied to the overall chi-squared trace} \item{min_time}{The minimum time for calculating optimal weights} \item{other_weights}{Other (than optimal) weights can be specified here} \item{dist}{Distribution of wild bootstrap random weights, either "poisson" for centred Poisson (default), or "normal" for standard normal} } \value{ MarkovTest returns an object of class "MarkovTest", which is a list with the following items: \item{orig_stat}{Summary statistic for each of the starting states} \item{orig_ch_stat}{Overall chi-squared summary statistic} \item{p_stat_wb}{P-values corresponding to each of the summary statistics for each starting state} \item{p_ch_stat_wb}{P-values for overall chi-squared summary statistic} \item{b_stat_wb}{Bootstrap summary statistics for each of the starting states} \item{zbar}{Individual traces for each of the starting states} \item{nobs_grid}{The number of events after time s for each s in the grid} \item{Nsub}{Number of patients who are ever at risk of the transition of interest} \item{est_quant}{Pointwise 2.5 and 97.5 quantile limits for each of the traces} \item{obs_chisq_trace}{Trace of the chi-squared statistic} \item{nch_wb_trace}{Individual values of the chi-squared statistic trace for the wild bootstrap samples} \item{n_wb_trace}{Individual values of the log-rank z statistic traces for the wild bootstrap samples} \item{est_cov}{Estimated covariance matrix between the log-rank statistics at each grid point} \item{transition}{The transition number tested} \item{from}{The from state of the transition tested} \item{to}{The to state of the transition tested} \item{B}{The number of wild bootstrap replications} \item{dist}{The distribution used in the wild bootstrap} \item{qualset}{Set of qualifying states corresponding to the components of the above traces} \item{coxfit}{Fitted coxph object} \item{fn}{List of functions applied to state-specific trace} \item{fn2}{List of functions applied to overall trace} } \description{ Log-rank based test for the validity of the Markov assumption } \details{ Function MarkovTest performs the log-rank test described in Titman & Putter (2020). Function optimal_weights_matrix implements the optimal weighting for the state-specific trace. Function optimal_weights_multiple implements the optimal weighting for the chi-squared trace. } \examples{ \dontrun{ # Example provided by the prothrombin data data("prothr") # Apply Markov test to grid of monthly time points over the first 7.5 years year <- 365.25 month <- year / 12 grid <- month * (1 : 90) # Markov test for transition 1 (wild bootstrap based on 25 replications, 1000 recommended) MT <- MarkovTest(prothr, id = "id", transition = 1, grid = grid, B = 25) # Plot traces plot(MT, grid, what="states", idx=1:10, states=rownames(attr(prothr, "trans")), xlab="Days since randomisation", ylab="Log-rank test statistic", main="Transition Normal -> Low") plot(MT, grid,what="overall", idx=1:10, xlab="Days since randomisation", ylab="Chi-square test statistic", main="Transition Normal -> Low") # Example using optimal weights and adjustment for covariates oweights_fun <- optimal_weights_matrix(prothr, id = "id", grid=grid, transition = 1, other_weights=list( function(x) mean(abs(x),na.rm=TRUE), function(x) max(abs(x),na.rm=TRUE))) oweights_chi <- optimal_weights_multiple(prothr, id = "id", grid=grid, transition = 1) # Formula in MarkovTest only works for continuous covariates and dummy coded variables # No factors allowed prothr$prednisone <- as.numeric(prothr$treat == "Prednisone") MT <- MarkovTest(prothr, id = "id", formula = "prednisone", transition = 1, grid = grid, B = 25, fn = oweights_fun, fn2 = list( function(x) weighted.mean(x, w=oweights_chi, na.rm=TRUE), function(x) mean(x, na.rm=TRUE), function(x) max(x, na.rm=TRUE))) } } \references{ Titman AC, Putter H (2020). General tests of the Markov property in multi-state models. \emph{Biostatistics} To appear. } \author{ Andrew Titman \email{a.titman@lancaster.ac.uk}, transported to mstate by Hein Putter \email{H.Putter@lumc.nl} } \keyword{univar} mstate/man/transMat.Rd0000644000176200001440000000354114627637077014430 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/transMat.R \name{transMat} \alias{transMat} \alias{trans.illdeath} \alias{trans.comprisk} \title{Define transition matrix for multi-state model} \usage{ transMat(x, names) } \arguments{ \item{x}{List of possible transitions; x[[i]] consists of a vector of state numbers reachable from state i} \item{names}{A character vector containing the names of either the competing risks or the states in the multi-state model specified by the competing risks or illness-death model. \code{names} should have the same length as the list \code{x} (for \code{transMat}), or either \code{K} or \code{K}+1 (for \code{trans.comprisk}), or 3 (for \code{trans.illdeath})} } \value{ A transition matrix describing the states and transitions in the multi-state model. } \description{ Define transition matrices for multi-state model. Specific functions for defining such transition matrices are pre-defined for common multi-state models like the competing risks model and the illness-death model. } \details{ If \code{names} is missing, the names \code{"eventfree"}, \code{"cause1"}, etcetera are assigned in \code{trans.comprisk}, or \code{"healthy"}, \code{"illness"}, \code{"death"} in \code{trans.illdeath}. } \examples{ transMat(list(c(2, 3), c(), c(1, 2)), names = c("Disease-free", "Death", "Relapsed")) tmat <- transMat(x = list( c(2, 3), c(1, 3), c() ), names = c("Normal", "Low", "Death")) tmat transListn <- list("Normal" = c(2, 3), "Low" = c(1, 3), "Death" = c()) transMat(transListn) trans.comprisk(3) trans.comprisk(3,c("c1","c2","c3")) trans.comprisk(3,c("nothing","c1","c2","c3")) trans.illdeath() trans.illdeath(c("nothing","ill","death")) } \author{ Steven McKinney ; Hein Putter } \keyword{array} mstate/man/modify_transMat.Rd0000644000176200001440000000215714627637077016001 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/relsurv.transMat.R \name{modify_transMat} \alias{modify_transMat} \title{Upgrade the transMat object for the multi-state/relsurv setting.} \usage{ modify_transMat(trans, split.transitions) } \arguments{ \item{trans}{The original transition matrix (usually generated using function transMat from mstate). Also often present in the msfit object.} \item{split.transitions}{The transitions that should be split.} } \value{ An upgraded transition matrix that contains the population and excess transitions. } \description{ A function that upgrades the transMat object so that the population and excess-related transitions are included in the transition matrix. } \examples{ # transition matrix for illness-death model trans <- transMat(list(c(2,3),c(4), c(), c()), names = c("Alive", "Relapse","Non-relapse mortality", "Death after relapse")) split.transitions <- c(2,3) modify_transMat(trans, split.transitions) } \seealso{ \code{\link{transMat}} } \author{ Damjan Manevski \email{damjan.manevski@mf.uni-lj.si} } mstate/man/LMAJ.Rd0000644000176200001440000000500214630077364013343 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/LMAJ.R \name{LMAJ} \alias{LMAJ} \title{Landmark Aalen-Johansen method} \usage{ LMAJ(msdata, s, from, method = c("aalen", "greenwood")) } \arguments{ \item{msdata}{An \code{"msdata"} object, as for instance prepared by \code{link{msprep}}} \item{s}{The prediction time point s from which transition probabilities are to be obtained} \item{from}{Either a single state or a set of states in the state space 1,...,S} \item{method}{The method for calculating variances, as in \code{\link{probtrans}}} } \value{ A data frame containing estimates and associated standard errors of the transition probabilities P(X(t)=k | X(s) in \code{from}) with \code{s} and \code{from} the arguments of the function. } \description{ This function implements the landmark Aalen-Johansen method of Putter & Spitoni (2016) for non-parametric estimation of transition probabilities in non-Markov models. } \examples{ data(prothr) tmat <- attr(prothr, "trans") pr0 <- subset(prothr, treat=="Placebo") attr(pr0, "trans") <- tmat pr1 <- subset(prothr, treat=="Prednisone") attr(pr1, "trans") <- tmat c0 <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data=pr0) c1 <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data=pr1) msf0 <- msfit(c0, trans=tmat) msf1 <- msfit(c1, trans=tmat) # Comparison as in Figure 2 of Titman (2015) # Aalen-Johansen pt0 <- probtrans(msf0, predt=1000)[[2]] pt1 <- probtrans(msf1, predt=1000)[[2]] par(mfrow=c(1,2)) plot(pt0$time, pt0$pstate1, type="s", lwd=2, xlim=c(1000,4000), ylim=c(0,0.61), xlab="Time since randomisation (days)", ylab="Probability") lines(pt1$time, pt1$pstate1, type="s", lwd=2, lty=3) legend("topright", c("Placebo", "Prednisone"), lwd=2, lty=1:2, bty="n") title(main="Aalen-Johansen") # Landmark Aalen-Johansen LMpt0 <- LMAJ(msdata=pr0, s=1000, from=2) LMpt1 <- LMAJ(msdata=pr1, s=1000, from=2) plot(LMpt0$time, LMpt0$pstate1, type="s", lwd=2, xlim=c(1000,4000), ylim=c(0,0.61), xlab="Time since randomisation (days)", ylab="Probability") lines(LMpt1$time, LMpt1$pstate1, type="s", lwd=2, lty=3) legend("topright", c("Placebo", "Prednisone"), lwd=2, lty=1:2, bty="n") title(main="Landmark Aalen-Johansen") } \references{ H. Putter and C. Spitoni (2016). Estimators of transition probabilities in non-Markov multi-state models. Submitted. } \author{ Hein Putter \email{H.Putter@lumc.nl} Edouard F. Bonneville \email{e.f.bonneville@lumc.nl} } \keyword{survival} mstate/man/EBMT-data.Rd0000644000176200001440000000544514627637077014302 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datasets.R \docType{data} \name{EBMT data} \alias{EBMT data} \alias{ebmt4} \title{Data from the European Society for Blood and Marrow Transplantation (EBMT)} \format{ A data frame, see \code{\link{data.frame}}. } \source{ We acknowledge the European Society for Blood and Marrow Transplantation (EBMT) for making available these data. Disclaimer: these data were simplified for the purpose of illustration of the analysis of competing risks and multi-state models and do not reflect any real life situation. No clinical conclusions should be drawn from these data. } \description{ A data frame of 2279 patients transplanted at the EBMT between 1985 and 1998. These data were used in Fiocco, Putter & van Houwelingen (2008), van Houwelingen & Putter (2008, 2012) and de Wreede, Fiocco & Putter (2011). The included variables are \describe{ \item{id}{Patient identification number} \item{rec}{Time in days from transplantation to recovery or last follow-up} \item{rec.s}{Recovery status; 1 = recovery, 0 = censored} \item{ae}{Time in days from transplantation to adverse event (AE) or last follow-up} \item{ae.s}{Adverse event status; 1 = adverse event, 0 = censored} \item{recae}{Time in days from transplantation to both recovery and AE or last follow-up} \item{recae.s}{Recovery and AE status; 1 = both recovery and AE, 0 = no recovery or no AE or censored} \item{rel}{Time in days from transplantation to relapse or last follow-up} \item{rel.s}{Relapse status; 1 = relapse, 0 = censored} \item{srv}{Time in days from transplantation to death or last follow-up} \item{srv.s}{Relapse status; 1 = dead, 0 = censored} \item{year}{Year of transplantation; factor with levels "1985-1989", "1990-1994", "1995-1998"} \item{agecl}{Patient age at transplant; factor with levels "<=20", "20-40", ">40"} \item{proph}{Prophylaxis; factor with levels "no", "yes"} \item{match}{Donor-recipient gender match; factor with levels "no gender mismatch", "gender mismatch"} } } \references{ Fiocco M, Putter H, van Houwelingen HC (2008). Reduced-rank proportional hazards regression and simulation-based prediction for multi-state models. \emph{Statistics in Medicine} \bold{27}, 4340--4358. van Houwelingen HC, Putter H (2008). Dynamic predicting by landmarking as an alternative for multi-state modeling: an application to acute lymphoid leukemia data. \emph{Lifetime Data Anal} \bold{14}, 447--463. van Houwelingen HC, Putter H (2012). Dynamic Prediction in Clinical Survival Analaysis. Chapman & Hall/CRC Press, Boca Raton. de Wreede LC, Fiocco M, and Putter H (2011). mstate: An R Package for the Analysis of Competing Risks and Multi-State Models. \emph{Journal of Statistical Software}, Volume 38, Issue 7. } \keyword{datasets} mstate/man/cutLMms.Rd0000644000176200001440000000356514627637077014231 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/cutLMms.R \name{cutLMms} \alias{cutLMms} \title{Cut a multi-state data set at a landmark time point} \usage{ cutLMms(msdata, LM, cens) } \arguments{ \item{msdata}{An object of class \code{"msdata"}, such as output by \code{\link{msprep}}} \item{LM}{The landmark time point at which the cut is to be made} \item{cens}{The time point at which administrative censoring is to be applied; if missing, no administrative censoring will be applied} } \value{ An object of class \code{"msdata"} again, containing only follow-up data after LM. The data frame contains an extra column \code{Tentry} with the time of entry into the present state. } \description{ Given a dataset in long format, for instance generated by \code{\link{msprep}}, this function cuts a multi-state data frame (object of type "msdata") at a landmark time point LM. Administrative censoring can be applied at time \code{cens}, equal for all individuals. } \details{ The function has a similar purpose as the \code{cutLM} function in the \code{dynpred} package. Only follow-up after a landmark time point LM is considered, so all subjects who are no longer at risk are removed. Column \code{time} is updated based on the new Tstart and Tstop. } \examples{ tmat <- trans.illdeath(names=c("Tx","PR","RelDeath")) data(ebmt3) # data from Section 4 of Putter, Fiocco & Geskus (2007) msebmt <- msprep(time=c(NA,"prtime","rfstime"),status=c(NA,"prstat","rfsstat"), data=ebmt3,trans=tmat) # Cut at 5 years cutLMms(msebmt, LM=1826) events(cutLMms(msebmt, LM=1826)) } \references{ L. C. de Wreede, M. Fiocco, and H. Putter (2011). mstate: An R Package for the Analysis of Competing Risks and Multi-State Models. Journal of Statistical Software 38: 7. } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{univar} mstate/man/paths.Rd0000644000176200001440000000256714627637077013765 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/paths.R \name{paths} \alias{paths} \title{Find all possible trajectories through a given multi-state model} \usage{ paths(trans, start = 1) } \arguments{ \item{trans}{The transition matrix describing the multi-state model, see \code{\link{msprep}}} \item{start}{The starting state for the trajectories} } \value{ A matrix, each row of which specifies a possible path through the multi-state model. } \description{ For a given multi-state model, specified through a transition matrix, \code{paths} recursively finds all the possible trajectories or paths through that multi-state starting from a specified state. DO NOT USE for reversible or cyclic multi-state models. } \details{ The function is recursive. It starts in \code{start}, looks at what states can be visited from \code{start}, and appends the results of the next call to the current value (matrix). If the transition matrix contains loops, the function will find infinitely many paths, so do not use \code{paths} for reversible or cyclic multi-state models. A warning is not yet incorporated! } \examples{ tmat <- matrix(NA,5,5) tmat[1,2:3] <- 1:2 tmat[1,5] <- 3 tmat[2,4:5] <- 4:5 tmat[3,4:5] <- 6:7 tmat[4,5] <- 8 paths(tmat) paths(tmat, start=3) } \author{ Hein Putter } \keyword{array} mstate/man/aidssi.Rd0000644000176200001440000000700614627637077014113 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datasets.R \docType{data} \name{aidssi} \alias{aidssi} \alias{aidssi2} \title{Data from the Amsterdam Cohort Studies on HIV infection and AIDS} \format{ aidssi \tabular{ll}{ patnr:\tab Patient identification number\cr time:\tab Time from HIV infection to first of SI appearance and AIDS, or last follow-up\cr status:\tab Event indicator; 0 = censored, 1 = AIDS, 2 = SI appearance\cr cause:\tab Failure cause; factor with levels "event-free", "AIDS", "SI"\cr ccr5:\tab CCR5 genotype; factor with levels "WW" (wild type allele on both chromosomes),\cr \tab "WM" (mutant allele on one chromosome)\cr } aidssi2 \tabular{ll}{ patnr:\tab Patient identification number\cr entry.time:\tab Time from HIV infection to cohort entry. Value is zero if HIV infection occurred while in follow-up.\cr aids.time:\tab Time from HIV infection to AIDS, or last follow-up if AIDS was not observed\cr aids.stat:\tab Event indicator with respect to AIDS, with values 0 (censored) and 1 (AIDS)\cr si.time:\tab Time from HIV infection to SI switch, or last follow-up if SI switch was not observed\cr si.stat:\tab Event indicator with respect to SI switch, with values 0 (no switch) and 1 (switch)\cr death.time:\tab Time from HIV infection to death, or last follow-up if death was not observed\cr death.stat:\tab Event indicator with respect to death; 0 = alive, 1 = dead\cr age.inf:\tab Age at HIV infection\cr ccr5:\tab CCR5 genotype; factor with levels "WW" (wild type allele on both chromosomes),\cr \tab "WM" (mutant allele on one chromosome)\cr } } \source{ Geskus RB (2000). On the inclusion of prevalent cases in HIV/AIDS natural history studies through a marker-based estimate of time since seroconversion. \emph{Statistics in Medicine} \bold{19}, 1753--1769. Geskus RB, Miedema FA, Goudsmit J, Reiss P, Schuitemaker H, Coutinho RA (2003). Prediction of residual time to AIDS and death based on markers and cofactors. \emph{Journal of AIDS} \bold{32}, 514--521. } \description{ These data sets give the times (in years) from HIV infection to AIDS, SI switch and death in 329 men who have sex with men (MSM). Data are from the period until combination anti-retroviral therapy became available (1996). For more background information on the cohort, ccr5 and SI, see Geskus \emph{et al.} (2000, 2003) } \details{ \code{aidssi} contains follow-up data until the first of AIDS and SI switch. It was used as example for the competing risks analyses in Putter, Fiocco, Geskus (2007) and in Geskus (2016). \code{aidssi2} extends the \code{aidssi} data set in three ways. First, it considers events after the initial one. Second, it includes the entry times of the individuals that entered the study after HIV infection. Third, age at HIV infection has been added as extra covariable. Numbers differ slightly from the \code{aidssi} data set. Some individuals were diagnosed with AIDS only when they died and others had their last follow-up at AIDS diagnosis. In order to prevent two transitions to happen at the same time, their time to AIDS was shortened by 0.25 years. This data set was used as example for the multi-state analyses in Geskus (2016). } \references{ Geskus, Ronald B. (2016). \emph{Data Analysis with Competing Risks and Intermediate States.} CRC Press, Boca Raton. Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. } \keyword{datasets} mstate/man/msboot.relsurv.Rd0000644000176200001440000000443714627637077015650 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/relsurv.msboot.relsurv.R \name{msboot.relsurv} \alias{msboot.relsurv} \title{Bootstrap function for upgraded multi-state models using relsurv} \usage{ msboot.relsurv( theta, data, B = 10, id = "id", verbose = 0, transmat, all_times, split.transitions, rmap, time.format, boot_orig_msfit, ratetable = relsurv::slopop, add.times, ... ) } \arguments{ \item{theta}{A function of data and perhaps other arguments, returning the value of the statistic to be bootstrapped} \item{data}{An object of class 'msdata', such as output from msprep} \item{B}{The number of bootstrap replications; the default is B=10} \item{id}{Character string indicating which column identifies the subjects to be resampled} \item{verbose}{The level of output; default 0 = no output, 1 = print the replication} \item{transmat}{The transition matrix of class transMat} \item{all_times}{All times at which the hazards have to be evaluated} \item{split.transitions}{An integer vector containing the numbered transitions that should be split. Use same numbering as in the given transition matrix} \item{rmap}{An optional list to be used if the variables in the dataset are not organized (and named) in the same way as in the ratetable object} \item{time.format}{Define the time format which is used in the dataset Possible options: c('days', 'years', 'months'). Default is 'days'} \item{boot_orig_msfit}{Logical, if true, do the bootstrap for the basic msfit model} \item{ratetable}{The population mortality table. A table of event rates, organized as a ratetable object, see for example relsurv::slopop. Default is slopop} \item{add.times}{Additional times at which hazards should be evaluated} \item{...}{Any further arguments to the function theta} } \value{ A list of size B containing the results for every bootstrap replication. } \description{ A helper nonparametric bootstrapping function for variances in extended multi-state models using relative survival. This implementation is written based on function mstate:::msboot. } \seealso{ \code{\link{msboot}} } \author{ Damjan Manevski \email{damjan.manevski@mf.uni-lj.si}, Marta Fiocco, Hein Putter \email{H.Putter@lumc.nl} } mstate/man/summary.msfit.Rd0000644000176200001440000000650114627637077015454 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.msfit.R \name{summary.msfit} \alias{summary.msfit} \title{Summary method for an msfit object} \usage{ \method{summary}{msfit}( object, times, transitions, variance = TRUE, conf.int = 0.95, conf.type = c("log", "none", "plain"), extend = FALSE, ... ) } \arguments{ \item{object}{Object of class 'msfit', containing estimated cumulative transition intensities for all transitions in a multi-state model} \item{times}{Time points at which to evaluate the cumulative transition hazards} \item{transitions}{The transition for which to summarize the cumulative transition hazards} \item{variance}{Whether or not the standard errors of the estimated cumulative transition intensities should be printed; default is \code{TRUE}} \item{conf.int}{The proportion to be covered by the confidence intervals, default is 0.95} \item{conf.type}{The type of confidence interval, one of "log", "none", or "plain". Defaults to "log"} \item{extend}{logical value: if \code{TRUE}, prints information for all specified times, even if there are no subjects left at the end of the specified times. This is only valid if the times argument is present} \item{\dots}{Further arguments to summary} } \value{ Function \code{summary.msfit} returns an object of class "summary.msfit", which is a list (for each \code{from} state) of cumulative transition hazaards at the specified (or all) time points. The \code{print} method of a \code{summary.probtrans} doesn't return a value. } \description{ Summary method for an object of class 'msfit'. It prints a selection of the estimated cumulative transition intensities, and, if requested, also of the (co)variances. } \examples{ # Start with example from msfit tmat <- trans.illdeath() tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,0,0,0),x2=c(6:1)) tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), data=tg,keep=c("x1","x2"),trans=tmat) tglong <- expand.covs(tglong,c("x1","x2")) cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), data=tglong,method="breslow") newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) msf <- msfit(cx,newdata,trans=tmat) # Default, all transitions, with SE summary(msf) summary(msf, conf.type="plain") # Only transitions 1 and 3 summary(msf, tra=c(1, 3)) # Default is 95\% confidence interval, change here to 90\% summary(msf, conf.int=0.90) # Do not show variances (nor confidence intervals) summary(msf, variance=FALSE) # Cumulative hazards only at specified time points summary(msf, times=seq(0, 15, by=3)) # Last specified time point is larger than last observed, not printed # Use extend=TRUE as in summary.survfit summary(msf, times=seq(0, 15, by=3), extend=TRUE) # Different types of confidence intervals, default is log summary(msf, times=seq(0, 15, by=3), conf.type="plain") summary(msf, times=seq(0, 15, by=3), conf.type="no") # When the number of time points specified is larger than 12, head and tail is shown x <- summary(msf, times=seq(5, 8, by=0.25)) x } \seealso{ \code{\link{msfit}} } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{print} mstate/man/msfit.relsurv.Rd0000644000176200001440000001150614627637077015462 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/relsurv.msfit.relsurv.R \name{msfit.relsurv} \alias{msfit.relsurv} \title{Extend a multi-state model using relative survival} \usage{ msfit.relsurv( msfit.obj, data, split.transitions, ratetable = relsurv::slopop, rmap, time.format = "days", var.pop.haz = c("fixed", "bootstrap", "both"), B = 10, seed = NULL, add.times, substitution = TRUE, link_trans_ind = FALSE ) } \arguments{ \item{msfit.obj}{The msfit object which has to be upgraded} \item{data}{The data used for fitting the msfit model} \item{split.transitions}{An integer vector containing the numbered transitions that should be split. Use same numbering as in the given transition matrix} \item{ratetable}{The population mortality table. A table of event rates, organized as a ratetable object, see for example relsurv::slopop. Default is slopop} \item{rmap}{An optional list to be used if the variables in the data are not organized (and named) in the same way as in the ratetable object} \item{time.format}{Define the time format which is used in the data. Possible options: c('days', 'years', 'months'). Default is 'days'} \item{var.pop.haz}{If 'fixed' (default), the Greenwood estimator for the variances is used, where it is assumed that the variance of the population hazards is zero. If 'bootstrap', one gets boostrap estimates for all all transitions. Option 'both' gives both variance estimates} \item{B}{Number of bootstrap replications. Relevant only if var.pop.haz == 'bootstrap' or 'both'. Default is B=10.} \item{seed}{Set seed} \item{add.times}{Additional times at which hazards should be evaluated} \item{substitution}{Whether function substitute should be used for rmap argument. Default is TRUE} \item{link_trans_ind}{Choose whether the linkage between the old and new transition matrix should be saved. Default is FALSE.} } \value{ Returns a msfit object that contains estimates for the extended model with split (population and excess) transitions. } \description{ A function that takes a fitted msfit object and upgrades it using relative survival, where chosen transitions are split in population and excess transitions. This upgraded msfit object contains the split hazards based on the transition matrix (transMat). The (co)variance matrix is also upgraded, if provided. } \examples{ \dontrun{ library(mstate) # Load dataset: data("ebmt1") # Transition matrix: tmat <- transMat(list(c(2,3),c(4), c(), c()), names = c("Alive relapse-free", "Relapse","NRM", "DaR")) # Data in long format using msprep df <- msprep(time=c(NA,"rel","srv","srv"), status=c(NA,"relstat","srvstat","srvstat"), data=ebmt1, trans=tmat) # Generate demographic covariates (which are usually present in datasets) # and based on them estimate the population hazard. set.seed(510) df$age <- runif(nrow(df), 45, 65) df$sex <- sample(c("male", "female"), size = nrow(df), replace = TRUE) df$dateHCT <- sample(seq(as.Date('1990/01/01'), as.Date('2000/01/01'), by="day"), nrow(df), replace = TRUE) # generate years # Cox object: cx <- coxph(Surv(Tstart,Tstop,status)~strata(trans), data=df,method="breslow") # Basic multi-state model: mod <- msfit(cx,trans=tmat) # Extended multi-state model, where the two transition # reaching death are split in excess and population parts. # We assume patients live like in the Slovene population, # thus we use Slovene mortality tables in this example. # Variances estimated using 25 bootstrap replications. mod.relsurv <- msfit.relsurv(msfit.obj = mod, data=df, split.transitions = c(2,3), ratetable = relsurv::slopop, rmap = list(age=age*365.241, year=dateHCT), time.format = "days", var.pop.haz = "bootstrap", B = 25) # Estimate transition probabilities: pt <- probtrans(mod.relsurv, predt=0, method='greenwood') # Estimated cumulative hazards with the corresponding # bootstrap standard errors at 300, 600, 900 days: summary(object = mod.relsurv, times = c(300, 600, 900), conf.type = 'log') # Estimated transition probabilities together with the corresponding # bootstrap standard errors and log.boot confidence intervals # at 300, 600, 900 days: summary(object = pt, times = c(300, 600, 900), conf.type = 'log') # Plot the measures: plot(mod.relsurv, use.ggplot = TRUE) plot(pt, use.ggplot = TRUE) } } \references{ Manevski D, Putter H, Pohar Perme M, Bonneville EF, Schetelig J, de Wreede LC (2021). Integrating relative survival in multi-state models -- a non-parametric approach. https://arxiv.org/abs/2106.12399 } \seealso{ \code{\link{msfit}} } \author{ Damjan Manevski \email{damjan.manevski@mf.uni-lj.si} } mstate/man/expand.covs.msdata.Rd0000644000176200001440000000667614627637077016353 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/expand.covs.R \name{expand.covs.msdata} \alias{expand.covs.msdata} \title{Expand covariates in multi-state dataset in long format} \usage{ \method{expand.covs}{msdata}(data, covs, append = TRUE, longnames = TRUE, ...) } \arguments{ \item{data}{An object of class \code{"msdata"}, such as output by \code{\link{msprep}}} \item{covs}{A character vector containing the names of the covariates in \code{data} to be expanded} \item{append}{Logical value indicating whether or not the design matrix for the expanded covariates should be appended to the data (default=\code{TRUE})} \item{longnames}{Logical value indicating whether or not the labels are to be used for the names of the expanded covariates that are categorical (default=\code{TRUE}); in case of \code{FALSE} numbers from 1 up to the number of contrasts are used} \item{\dots}{Further arguments to be passed to or from other methods. They are ignored in this function.} } \value{ An object of class 'msdata', containing the design matrix for the transition- specific covariates, either on its own (\code{append}=\code{FALSE}) or appended to the data (\code{append}=\code{TRUE}). } \description{ Given a multi-state dataset in long format, and one or more covariates, this function adds transition-specific covariates, expanding the original covariate(s), to the dataset. The original dataset with the transition-specific covariates appended is returned. } \details{ For a given basic covariate \code{Z}, the transition-specific covariate for transition \code{s} is called \code{Z.s}. The concept of transition-specific covariates in the context of multi-state models was introduced by Andersen, Hansen & Keiding (1991), see also Putter, Fiocco & Geskus (2007). It is only unambiguously defined for numeric covariates or for explicit codings. Then it will take the value 0 for all rows in the long format dataframe for which \code{trans} does not equal \code{s}. For the rows for which \code{trans} equals \code{s}, the original value of \code{Z} is copied. In \code{expand.covs}, when a given covariate is a factor, it will be expanded on the design matrix given by \code{\link[stats:model.matrix]{model.matrix}}. Missing values in the basic covariates are allowed and result in missing values in the expanded covariates. } \examples{ # transition matrix for illness-death model tmat <- trans.illdeath() # small data set in wide format tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,2,2,2),x2=c(6:1)) tg$x1 <- factor(tg$x1,labels=c("male","female")) # data in long format using msprep tglong <- msprep(time=c(NA,"illt","dt"), status=c(NA,"ills","ds"),data=tg, keep=c("x1","x2"),trans=tmat) # expanded covariates expand.covs(tglong,c("x1","x2"),append=FALSE) expand.covs(tglong,"x1") expand.covs(tglong,"x1",longnames=FALSE) } \references{ Andersen PK, Hansen LS, Keiding N (1991). Non- and semi-parametric estimation of transition probabilities from censored observation of a non-homogeneous Markov process. \emph{Scandinavian Journal of Statistics} \bold{18}, 153--167. Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{datagen} mstate/man/print.MarkovTest.Rd0000644000176200001440000000176314627637077016075 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/print.MarkovTest.R \name{print.MarkovTest} \alias{print.MarkovTest} \title{Print method for a MarkovTest object} \usage{ \method{print}{MarkovTest}(x, ...) } \arguments{ \item{x}{Object of class 'markovTest', as obtained by call to \code{\link{MarkovTest}}} \item{\dots}{Further arguments to print} } \value{ No return value } \description{ Print method for an object of class 'MarkovTest' } \examples{ \dontrun{ # Example provided by the prothrombin data data("prothr") # Apply Markov test to grid of monthly time points over the first 7.5 years year <- 365.25 month <- year / 12 grid <- month * (1:90) # Markov test for transition 1 (wild bootstrap based on 25 replications for brevity) MT <- MarkovTest(prothr, id = "id", transition = 1, grid = grid, B = 25) MT } } \seealso{ \code{\link{MarkovTest}} } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{hplot} mstate/man/plot.Cuminc.Rd0000644000176200001440000000561114627637077015032 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot.Cuminc.R \name{plot.Cuminc} \alias{plot.Cuminc} \title{Plot method for Cuminc objects} \usage{ \method{plot}{Cuminc}( x, use.ggplot = FALSE, xlab = "Time", ylab = "Probability", xlim, ylim, lty, legend, cols, conf.type = c("log", "plain", "none"), conf.int = 0.95, legend.pos = "right", facet = FALSE, ... ) } \arguments{ \item{x}{Object of class \code{"Cuminc"} to be printed or plotted} \item{use.ggplot}{Default FALSE, set TRUE for ggplot version of plot} \item{xlab}{A title for the x-axis; default is \code{"Time"}} \item{ylab}{A title for the y-axis; default is \code{"Probability"}} \item{xlim}{The x limits of the plot(s), default is range of time} \item{ylim}{The y limits of the plot(s); if ylim is specified for type="separate", then all plots use the same ylim for y limits} \item{lty}{The line type, see \code{\link{par}}; default is 1} \item{legend}{Character vector corresponding to number of absorbing states. In case of a grouped \code{"Cuminc"} object, with facet = FALSE the length of the vector is number absorbing states * group levels. Only relevant when use.ggplot = TRUE} \item{cols}{Vector (numeric or character) specifying colours of the lines} \item{conf.type}{Type of confidence interval - either "log" or "plain" . See function details for details.} \item{conf.int}{Confidence level (\%) from 0-1 for probabilities, default is 0.95 (95\% CI). Setting to 0 removes the CIs.} \item{legend.pos}{The position of the legend, see \code{\link{legend}}; default is \code{"topleft"}} \item{facet}{Logical, in case of group used for \code{"Cuminc"}, facet by it - only relevant when use.ggplot = TRUE} \item{\dots}{Further arguments to plot or print method} } \value{ A ggplot object if use.ggplot = T used, otherwise NULL. } \description{ Plot the estimates of the non-parametric Aalen-Johansen estimate of the cumulative incidence functions (competing risks data). Note this is a method for \code{mstate::Cuminc} and not \code{cmprsk::cuminc}. Both return the same estimates, though the former does so in a dataframe, and the latter in the list. } \details{ Grouped cumulative incidences can be plotted either in the same plot or in facets, see the \code{facet} argument. } \examples{ library(ggplot2) data("aidssi") head(aidssi) si <- aidssi # No grouping cum_incid <- Cuminc( time = "time", status = "status", data = si ) plot( x = cum_incid, use.ggplot = TRUE, conf.type = "none", lty = 1:2, conf.int = 0.95 ) # With grouping cum_incid_grp <- Cuminc( time = "time", status = "status", group = "ccr5", data = si ) plot( x = cum_incid_grp, use.ggplot = TRUE, conf.type = "none", lty = 1:4, facet = TRUE ) } \author{ Edouard F. Bonneville \email{e.f.bonneville@lumc.nl} } mstate/man/msboot.relsurv.boot.Rd0000644000176200001440000000341214627637077016602 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/relsurv.msboot.relsurv.boot.R \name{msboot.relsurv.boot} \alias{msboot.relsurv.boot} \title{Default theta function used for msboot.relsurv} \usage{ msboot.relsurv.boot( data, transmat, all_times, split.transitions, rmap, time.format, boot_orig_msfit = FALSE, ratetable = relsurv::slopop, add.times ) } \arguments{ \item{data}{An object of class 'msdata' containing a bootstrapped sample} \item{transmat}{The transition matrix of class transMat} \item{all_times}{All times at which the hazards have to be evaluated} \item{split.transitions}{An integer vector containing the numbered transitions that should be split. Use same numbering as in the given transition matrix} \item{rmap}{An optional list to be used if the variables in the dataset are not organized (and named) in the same way as in the ratetable object} \item{time.format}{Define the time format which is used in the dataset Possible options: c('days', 'years', 'months'). Default is 'days'} \item{boot_orig_msfit}{Logical, if true, do the bootstrap for the basic msfit model} \item{ratetable}{The population mortality table. A table of event rates, organized as a ratetable object, see for example relsurv::slopop. Default is slopop} \item{add.times}{Additional times at which hazards should be evaluated} } \value{ A list of calculated values for the given bootstrap sample. } \description{ Helper function used for calling inside msboot.relsurv (used for every bootstrap dataset). This function is used for calculating split hazards and evaluating them at all needed times. } \seealso{ \code{\link{msboot.relsurv}} } \author{ Damjan Manevski \email{damjan.manevski@mf.uni-lj.si} } mstate/man/crprep.default.Rd0000644000176200001440000002034714627637077015560 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/crprep.R \name{crprep.default} \alias{crprep.default} \alias{crprep} \title{Function to create weighted data set for competing risks analyses} \usage{ \method{crprep}{default}( Tstop, status, data, trans = 1, cens = 0, Tstart = 0, id, strata, keep, shorten = TRUE, rm.na = TRUE, origin = 0, prec.factor = 1000, ... ) } \arguments{ \item{Tstop}{Either 1) a vector containing the time at which the follow-up is ended, or 2) a character string indicating the column name in \code{data} that contains the end times (see Details).} \item{status}{Either 1) a vector describing status at end of follow-up, having the same length as \code{Tstop}, or 2) a character string indicating the column name that contains this information.} \item{data}{Data frame in which to interpret \code{Tstart}, \code{status}, \code{Tstart}, \code{id}, \code{strata} and \code{keep}, if given as character value (specification 2, "by name").} \item{trans}{Values of \code{status} for which weights are to be calculated.} \item{cens}{Value that denotes censoring in \code{status} column.} \item{Tstart}{Either 1) a vector containing the time at which the follow-up is started, having the same length as \code{Tstop}, or 2) a character string indicating the column name that contains the entry times, or 3) one numeric value in case it is the same for every subject. Default is 0.} \item{id}{Either 1) a vector, having the same length as \code{Tstop}, containing the subject identifiers, or 2) a character string indicating the column name containing these subject identifiers. If not provided, a column \code{id} is created with subjects having values 1,...,n.} \item{strata}{Either 1) a vector of the same length as \code{Tstop}, or 2) a character string indicating the column name that contains this information. Weights are calculated for per value in this vector.} \item{keep}{Either 1) a data frame or matrix or a numeric or factor vector containing covariate(s) that need to be retained in the output dataset. Number of rows/length should correspond with \code{Tstop}, or 2) a character vector containing the column names of these covariates in \code{data}.} \item{shorten}{Logical. If true, number of rows in output is reduced by collapsing rows within a subject in which weights do not change.} \item{rm.na}{Logical. If true, rows for which \code{status} is missing are deleted.} \item{origin}{Substract origin time units from all Tstop and Tstart times.} \item{prec.factor}{Factor by which to multiply the machine's precision. Censoring and truncation times are shifted by prec.factor*precision if event times and censoring/truncation times are equal.} \item{\dots}{Further arguments to be passed to or from other methods. They are ignored in this function.} } \value{ A data frame in long (counting process) format containing the covariates (replicated per subject). The following column names are used: \item{Tstart}{start dates of dataset} \item{Tstop}{stop dates of dataset} \item{status}{status of the subject at the end of that row} \item{weight.cens}{weights due to censoring mechanism} \item{weight.trunc}{weights due to truncation mechanism (if present)} \item{count}{row number within subject and event type under consideration} \item{failcode}{event type under consideration} The first column is the subject identifier. If the argument "id" is missing, it has values 1:n and is named "id". Otherwise the information is taken from the \code{id} argument. Variables as specified in \code{strata} and/or \code{keep} are included as well (see Details). } \description{ This function converts a dataset that is in short format (one subject per line) into a counting process format with time-varying weights that correct for right censored and left truncated data. With this data set, analyses based on the subdistribution hazard can be performed. } \details{ For each event type as specified via \code{trans}, individuals with a competing event remain in the risk set with weights that are determined by the product-limit forms of the time-to-censoring and time-to-entry estimates. Typically, their weights change over follow-up, and therefore such individuals are split into several rows. Censoring weights are always computed. Truncation weights are computed only if \code{Tstart} is specified. If several event types are specified at once, regression analyses using the stacked format data set can be performed (see Putter et al. 2007 and Chapter 4 in Geskus 2016). The data set can also be used for a regression on the cause-specific hazard by restricting to the subset \code{subset=count==0}. Missing values are allowed in \code{Tstop}, \code{status}, \code{Tstart}, \code{strata} and \code{keep}. Rows for which \code{Tstart} or \code{Tstart} is missing are deleted. There are two ways to supply the data. If given "by value" (option 1), the actual data vectors are used. If given "by name" (option 2), the column names are specified, which are read from the data set in \code{data}. In general, the second option is preferred. If data are given by value, the following holds for the naming of the columns in the output data set. If \code{keep}, \code{strata} or \code{id} is a vector from a (sub)-list, e.g. obj$name2$name1, then the column name is based on the most inner part (i.e.\ "name1"). If it is a vector of the form obj[,"name1"], then the column is named "name1". For all other vector specifications, the name is copied as is. If \code{keep} is a data.frame or a named matrix, the same names are used for the covariate columns in the output data set. If keep is a matrix without names, then the covariate columns are given the names "V1" until "Vk". The current function does not allow to create a weighted data set in which the censoring and/or truncation mechanisms depend on covariates via a regression model. } \examples{ data(aidssi) aidssi.w <- crprep("time", "cause", data=aidssi, trans=c("AIDS","SI"), cens="event-free", id="patnr", keep="ccr5") # calculate cause-specific cumulative incidence, no truncation, # compare with Cuminc (also from mstate) ci <- Cuminc(aidssi$time, aidssi$status) sf <- survfit(Surv(Tstart,Tstop,status=="AIDS")~1, data=aidssi.w, weight=weight.cens, subset=failcode=="AIDS") plot(sf, fun="event", mark.time=FALSE) lines(CI.1~time,data=ci,type="s",col="red") sf <- survfit(Surv(Tstart,Tstop,status=="SI")~1, data=aidssi.w, weight=weight.cens, subset=failcode=="SI") plot(sf, fun="event", mark.time=FALSE) lines(CI.2~time,data=ci,type="s",col="red") # Fine and Gray regression for cause 1 cw <- coxph(Surv(Tstart,Tstop,status=="AIDS")~ccr5, data=aidssi.w, weight=weight.cens, subset=failcode=="AIDS") cw # This can be checked with the results of crr (cmprsk) # crr(ftime=aidssi$time, fstatus=aidssi$status, cov1=as.numeric(aidssi$ccr5)) # Gray's log-rank test aidssi.wCCR <- crprep("time", "cause", data=aidssi, trans=c("AIDS","SI"), cens="event-free", id="patnr", strata="ccr5") test.AIDS <- coxph(Surv(Tstart,Tstop,status=="AIDS")~ccr5, data=aidssi.wCCR, weights=weight.cens, subset=failcode=="AIDS") test.SI <- coxph(Surv(Tstart,Tstop,status=="SI")~ccr5, data=aidssi.wCCR, weights=weight.cens, subset=failcode=="SI") ## score test statistic and p-value c(test.AIDS$score, 1-pchisq(test.AIDS$score,1)) # AIDS c(test.SI$score, 1-pchisq(test.SI$score,1)) # SI # This can be compared with the results of cuminc (cmprsk) # with(aidssi, cuminc(time, status, group=ccr5)$Tests) # Note: results are not exactly the same } \references{ Geskus RB (2011). Cause-Specific Cumulative Incidence Estimation and the Fine and Gray Model Under Both Left Truncation and Right Censoring. \emph{Biometrics} \bold{67}, 39--49. Geskus, Ronald B. (2016). \emph{Data Analysis with Competing Risks and Intermediate States.} CRC Press, Boca Raton. Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. } \author{ Ronald Geskus } \keyword{datagen} \keyword{survival} mstate/man/Liver-cirrhosis-data.Rd0000644000176200001440000000243014627637077016626 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datasets.R \docType{data} \name{Liver cirrhosis data} \alias{Liver cirrhosis data} \alias{prothr} \title{Abnormal prothrombin levels in liver cirrhosis} \format{ A data frame, see \code{\link{data.frame}}. } \description{ A data frame of 488 liver cirrhosis patients from a randomized clinical trial concerning prednisone treatment in these patients. The dataset is in long format. The included variables are \describe{ \item{id}{Patient identification number} \item{from}{Starting state} \item{to}{Receiving state} \item{trans}{Transition number} \item{Tstart}{Starting time} \item{Tstop}{Transition time} \item{status}{Status variable; 1=transition, 0=censored} \item{treat}{Treatment; factor with levels "Placebo", "Prednisone"} } } \details{ This data was kindly provided by Per Kragh Andersen. It was introduced in Andersen, Borgan, Gill & Keiding (1993), Example 1.3.12, and used as illustration for computation of transition probabilities in multi-state models, see Sections IV.4 (Example IV.4.4) and VII.2 (Example VII.2.10). } \references{ Andersen PK, Borgan O, Gill RD, Keiding N (1993). \emph{Statistical Models Based on Counting Processes}. Springer, New York. } \keyword{datasets} mstate/man/etm2msdata.Rd0000644000176200001440000000365514627637077014706 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/etm2msdata.R \name{etm2msdata} \alias{etm2msdata} \alias{tra2trans} \title{Converts between etm and msdata format} \usage{ etm2msdata(etmdata, id, tra, covs) } \arguments{ \item{etmdata}{Multi-state data in \code{etm} format} \item{id}{Column name identifying the subject id} \item{tra}{Transition matrix in \code{etm} format} \item{covs}{Vector of column names containing covariates to be included} } \description{ Converts multi-state data back and forth between etm and msdata formats. Covariates have to be dealt with separately. } \details{ \code{msdata2etm} will convert from \code{msdata} format to \code{etm} format; \code{etm2msdata} will convert from \code{etm} format to \code{msdata} format. Both \code{msdata2etm} and \code{etm2msdata} work with basic time-fixed covariates. Time-dependent covariates are not supported. The function \code{msdata2etm} will work for transition-specific covariates, but the result does not really make much sense when used in etm. } \examples{ # Transition matrix for illness-death model tmat <- trans.illdeath() # Data in wide format, for transition 1 this is dataset E1 of # Therneau & Grambsch (T&G) tg <- data.frame(id=1:6,illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,0,0,0),x2=c(6:1)) # Data in long format using msprep tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), data=tg,keep=c("x1","x2"),trans=tmat, id="id") # Same thing in etm format tra <- trans2tra(tmat) tgetm <- msdata2etm(tglong, id="id") tgetm <- msdata2etm(tglong, id="id", covs=c("x1", "x2")) # with covariates # And back etm2msdata(tgetm, id="id", tra=tra) etm2msdata(tgetm, id="id", tra=tra, covs=c("x1", "x2")) # with covariates } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{datagen} mstate/man/print.msdata.Rd0000644000176200001440000000265714627637077015252 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/print.msdata.R \name{print.msdata} \alias{print.msdata} \title{Print method for a msdata object} \usage{ \method{print}{msdata}(x, trans = FALSE, ...) } \arguments{ \item{x}{Object of class 'msdata', as prepared for instance by \code{\link{msprep}}} \item{trans}{Boolean specifying whether or not the transition matrix should be printed as well; default is \code{FALSE}} \item{\dots}{Further arguments to print} } \value{ No return value } \description{ Print method for an object of class 'msdata' } \examples{ # transition matrix for illness-death model tmat <- trans.illdeath() # some data in wide format tg <- data.frame(stt=rep(0,6),sts=rep(0,6), illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,2,2,2),x2=c(6:1)) tg$x1 <- factor(tg$x1,labels=c("male","female")) tg$patid <- factor(2:7,levels=1:8,labels=as.character(1:8)) # define time, status and covariates also as matrices tt <- matrix(c(rep(NA,6),tg$illt,tg$dt),6,3) st <- matrix(c(rep(NA,6),tg$ills,tg$ds),6,3) keepmat <- data.frame(gender=tg$x1,age=tg$x2) # data in long format using msprep msp <- msprep(time=tt,status=st,trans=tmat,keep=as.matrix(keepmat)) print(msp) print(msp, trans=TRUE) } \seealso{ \code{\link{probtrans}} } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{hplot} mstate/man/events.Rd0000644000176200001440000000331214627637077014137 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/events.R \name{events} \alias{events} \title{Count number of observed transitions} \usage{ events(msdata) } \arguments{ \item{msdata}{An object of class \code{"msdata"}, such as output by \code{\link{msprep}}} } \value{ A list containing two tables, the first, called \code{Frequencies}, with the number of observed transitions in the multi-state model occurring in \code{msdata}, the second, called \code{Proportions}, with the corresponding proportions. } \description{ Given a dataset in long format, for instance generated by \code{\link{msprep}}, and a transition matrix for the multi-state model, this function counts the number of observed transitions in the multi-state model and gives their percentages. } \details{ Although \code{msdata} does not need to be the result of a call to \code{\link{msprep}}, it does need to be an object of class \code{"msdata"}, which is essentially a data frame in long format, with one row for each transition for which the subject is at risk. The columns \code{from}, \code{to}, and \code{status} need to be present, with appropriate meaning, see \code{\link{msprep}}. The \code{msdata} argument needs to have a \code{"trans"} attributes, which holds the transition matrix of the multi-state model. } \examples{ tmat <- trans.illdeath(names=c("Tx","PR","RelDeath")) data(ebmt3) # data from Section 4 of Putter, Fiocco & Geskus (2007) msebmt <- msprep(time=c(NA,"prtime","rfstime"),status=c(NA,"prstat","rfsstat"), data=ebmt3,trans=tmat) events(msebmt) # see Fig 13 of Putter, Fiocco & Geskus (2007) } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{univar} mstate/man/msdata2etm.Rd0000644000176200001440000000073114627637077014676 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/etm2msdata.R \name{msdata2etm} \alias{msdata2etm} \title{msdata to etm format} \usage{ msdata2etm(msdata, id, covs) } \arguments{ \item{msdata}{Multi-state data in \code{msdata} format, as used in \code{mstate}} \item{id}{Column name identifying the subject id} \item{covs}{Vector of column names containing covariates to be included} } \description{ msdata to etm format } mstate/man/summary.Cuminc.Rd0000644000176200001440000000066014627637077015550 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.Cuminc.R \name{summary.Cuminc} \alias{summary.Cuminc} \title{Summary method for a summary.Cuminc object} \usage{ \method{summary}{Cuminc}(object, ...) } \arguments{ \item{object}{Object of class 'Cuminc', to be summarised} \item{\dots}{Further arguments to summarise} } \description{ Summary method for a summary.Cuminc object } mstate/man/xsect.Rd0000644000176200001440000000310214627637077013756 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/xsect.R \name{xsect} \alias{xsect} \title{Make a cross-section of multi-state data at a given time point} \usage{ xsect(msdata, xtime = 0) } \arguments{ \item{msdata}{An object of class \code{"msdata"}, such as output by \code{\link{msprep}}} \item{xtime}{The time point at which the intersection is to be made} } \value{ A list containing \code{idstate}, a data frame containing \code{id}'s and \code{state}, the number of the state currently occupied; \code{atrisk}, the number at risk, and \code{prop}, a table counting how many of those at risk occupy which state. } \description{ Given a dataset in long format, for instance generated by \code{\link{msprep}}, this function takes a cross-section at a given time point, to list the subjects under observation (at risk) at that time point and the states currently occupied. } \details{ It is possible that subjects have moved to one of the absorbing states prior to \code{xtime}; this is NOT taken into account. The function \code{xsect} only concerns subjects currently (at \code{time}) at risk. } \examples{ tmat <- trans.illdeath(names=c("Tx","PR","RelDeath")) data(ebmt3) # data from Section 4 of Putter, Fiocco & Geskus (2007) msebmt <- msprep(time=c(NA,"prtime","rfstime"),status=c(NA,"prstat","rfsstat"), data=ebmt3,trans=tmat) # At the start everyone is in state 1 (default xtime=0 is used) xsect(msebmt) # At 5 years xsect(msebmt, xtime=1826) } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{univar} mstate/man/mstate-package.Rd0000644000176200001440000000241714627637077015526 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datasets.R \docType{package} \name{mstate-package} \alias{mstate-package} \alias{mstate} \title{Data preparation, estimation and prediction in multi-state models} \description{ Functions for data preparation, descriptives, (hazard) estimation and prediction (Aalen-Johansen) in competing risks and multi-state models. } \details{ \tabular{ll}{ Package: \tab mstate\cr Type: \tab Package\cr Version: \tab 0.2.10\cr Date: \tab 2016-12-03\cr License: \tab GPL 2.0\cr } } \references{ Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. de Wreede LC, Fiocco M, and Putter H (2010). The mstate package for estimation and prediction in non- and semi-parametric multi-state and competing risks models. \emph{Computer Methods and Programs in Biomedicine} \bold{99}, 261--274. de Wreede LC, Fiocco M, and Putter H (2011). mstate: An R Package for the Analysis of Competing Risks and Multi-State Models. \emph{Journal of Statistical Software}, Volume 38, Issue 7. } \author{ Liesbeth de Wreede, Marta Fiocco, Hein Putter. Maintainer: Hein Putter } \keyword{package} mstate/man/plot.msfit.Rd0000644000176200001440000001016214627637077014733 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot.msfit.R \name{plot.msfit} \alias{plot.msfit} \title{Plot method for an msfit object} \usage{ \method{plot}{msfit}( x, type = c("single", "separate"), cols, xlab = "Time", ylab = "Cumulative hazard", ylim, lwd, lty, legend, legend.pos = "right", bty = "n", use.ggplot = FALSE, xlim, scale_type = "fixed", conf.int = 0.95, conf.type = "none", ... ) } \arguments{ \item{x}{Object of class \code{"msfit"}, containing estimated cumulative transition intensities for all transitions in a multi-state model} \item{type}{One of \code{"single"} (default) or \code{"separate"}; in case of \code{"single"}, all estimated cumulative hazards are drawn in a single plot, in case of \code{"separate"}, separate plots are shown for the estimated transition intensities} \item{cols}{A vector specifying colors for the different transitions; default is 1:K (K no of transitions), when type=\code{"single"}, and 1 (black), when type=\code{"separate"}} \item{xlab}{A title for the x-axis; default is \code{"Time"}} \item{ylab}{A title for the y-axis; default is \code{"Cumulative hazard"}} \item{ylim}{The y limits of the plot(s); if ylim is specified for type="separate", then all plots use the same ylim for y limits} \item{lwd}{The line width, see \code{\link{par}}; default is 1} \item{lty}{The line type, see \code{\link{par}}; default is 1} \item{legend}{Character vector of length equal to the number of transitions, to be used in a legend; if missing, these will be taken from the row- and column-names of the transition matrix contained in \code{x$trans}. Also used as titles of plots for type=\code{"separate"}} \item{legend.pos}{The position of the legend, see \code{\link{legend}}; default is \code{"topleft"}} \item{bty}{The box type of the legend, see \code{\link{legend}}} \item{use.ggplot}{Default FALSE, set TRUE for ggplot version of plot} \item{xlim}{Limits of x axis, relevant if use_ggplot = T} \item{scale_type}{"fixed", "free", "free_x" or "free_y", see scales argument of facet_wrap(). Only relevant for use_ggplot = T.} \item{conf.int}{Confidence level (\%) from 0-1 for the cumulative hazard, default is 0.95. Only relevant for use_ggplot = T} \item{conf.type}{Type of confidence interval - either "log" or "plain" . See function details of \code{plot.probtrans} for details} \item{\dots}{Further arguments to plot} } \value{ No return value } \description{ Plot method for an object of class \code{"msfit"}. It plots the estimated cumulative transition intensities in the multi-state model. } \examples{ # transition matrix for illness-death model tmat <- trans.illdeath() # data in wide format, for transition 1 this is dataset E1 of # Therneau & Grambsch (2000) tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,0,0,0),x2=c(6:1)) # data in long format using msprep tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), data=tg,keep=c("x1","x2"),trans=tmat) # events events(tglong) table(tglong$status,tglong$to,tglong$from) # expanded covariates tglong <- expand.covs(tglong,c("x1","x2")) # Cox model with different covariate cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), data=tglong,method="breslow") summary(cx) # new data, to check whether results are the same for transition 1 as # those in appendix E.1 of Therneau & Grambsch (2000) newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) msf <- msfit(cx,newdata,trans=tmat) # standard plot plot(msf) # specifying line width, color, and legend plot(msf,lwd=2,col=c("darkgreen","darkblue","darkred"),legend=c("1->2","1->3","2->3")) # separate plots par(mfrow=c(2,2)) plot(msf,type="separate",lwd=2) par(mfrow=c(1,1)) # ggplot version - see vignette for details library(ggplot2) plot(msf, use.ggplot = TRUE) } \seealso{ \code{\link{msfit}} } \author{ Hein Putter \email{H.Putter@lumc.nl} Edouard F. Bonneville \email{e.f.bonneville@lumc.nl} } \keyword{hplot} mstate/man/expand.covs.Rd0000644000176200001440000000534014627637077015066 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/expand.covs.R \name{expand.covs} \alias{expand.covs} \alias{expand.covs.default} \title{Expand covariates in competing risks dataset in stacked format} \usage{ expand.covs(data, ...) } \arguments{ \item{data}{An object of class \code{"msdata"}, such as output by \code{\link{msprep}}} \item{...}{Further arguments to be passed to or from other methods. They are ignored in this function.} } \value{ An data frame object of the same class as the data argument, containing the design matrix for the type-specific covariates, either on its own (\code{append}=\code{FALSE}) or appended to the data (\code{append}=\code{TRUE}). } \description{ Given a competing risks dataset in stacked format, and one or more covariates, this function adds type-specific covariates to the dataset. The original dataset with the type-specific covariates appended is returned. } \details{ Type-specific covariates can be used to analyse separate effects on all event types in a single analysis based on a stacked data set (Putter, Fiocco & Geskus (2007) and Geskus (2016)). It is only unambiguously defined for numeric covariates or for explicit codings. Rows that contain the data for that specific event type have the value copied from the original covariate in case it is numeric. In all other rows it has the value zero. If the covariate is a factor, it will be expanded on the design matrix given by \code{\link[stats:model.matrix]{model.matrix}}. For standard "treatment contrasts" this means that dummy variables are created. If the covariate is a factor, the column name combines the name of the covariate with the specific event type. If \code{longnames}=\code{TRUE}, both parts are intersected by the specific labels in the coding. Missing values in the basic covariates are allowed and result in missing values in the expanded covariates. } \examples{ # small data set in stacked format tg <- data.frame(time=c(5,5,1,1,9,9),status=c(1,0,2,2,0,1),failcode=rep(c("I","II"),3), x1=c(1,1,2,2,2,2),x2=c(3,3,2,2,1,1)) tg$x1 <- factor(tg$x1,labels=c("male","female")) # expanded covariates expand.covs(tg,covs=c("x1","x2")) expand.covs(tg,covs=c("x1","x2"),longnames=TRUE) expand.covs(tg,covs=c("x1","x2"),append=FALSE) } \references{ Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. Geskus, Ronald B. (2016). \emph{Data Analysis with Competing Risks and Intermediate States.} CRC Press, Boca Raton. } \seealso{ \code{\link{expand.covs.msdata}}. } \author{ Ronald Geskus and Hein Putter \email{H.Putter@lumc.nl} } \keyword{datagen} mstate/man/redrank.Rd0000644000176200001440000001133614627637077014266 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/redrank.R \name{redrank} \alias{redrank} \title{Reduced rank proportional hazards model for competing risks and multi-state models} \usage{ redrank( redrank, full = ~1, data, R, strata = NULL, Gamma.start, method = "breslow", eps = 1e-05, print.level = 1 ) } \arguments{ \item{redrank}{Survival formula, starting with either Surv(time,status) ~ or with Surv(Tstart,Tstop,status) ~, followed by a formula containing covariates for which a reduced rank estimate is to be found} \item{full}{Optional, formula specifying that part which needs to be retained in the model (so not subject to reduced rank)} \item{data}{Object of class 'msdata', as prepared for instance by \code{\link{msprep}}, in which to interpret the \code{redrank} and, optionally, the \code{full} formulas} \item{R}{Numeric, indicating the rank of the solution} \item{strata}{Name of covariate to be used inside the \code{\link[survival:strata]{strata}} part of \code{\link[survival:coxph]{coxph}}} \item{Gamma.start}{A matrix of dimension K x R, with K the number of transitions and R the rank, to be used as starting value} \item{method}{The method for handling ties in \code{\link[survival:coxph]{coxph}}} \item{eps}{Numeric value determining when the iterative algorithm is finished (when for two subsequent iterations the difference in log-likelihood is smaller than \code{eps})} \item{print.level}{Determines how much output is written to the screen; 0: no output, 1: iterations, for each iteration solutions of Alpha, Gamma, log-likelihood, 2: also the Cox regression results} } \value{ A list with elements \item{Alpha}{the Alpha matrix} \item{Gamma}{the Gamma matrix} \item{Beta}{the Beta matrix corresponding to \code{covariates}} \item{Beta2}{the Beta matrix corresponding to \code{fullcovs}} \item{cox.itr1}{the \code{\link[survival:coxph]{coxph}} object resulting from the last call giving \code{Alpha}} \item{alphaX}{the matrix of prognostic scores given by \code{Alpha}, n x R, with n number of subjects} \item{niter}{the number of iterations needed to reach convergence} \item{df}{the number of regression parameters estimated} \item{loglik}{the log-likelihood} } \description{ This function estimates regression coefficients in reduced rank proportional hazards models for competing risks and multi-state models. } \details{ For details refer to Fiocco, Putter & van Houwelingen (2005, 2008). } \examples{ \dontrun{ # This reproduces the results in Fiocco, Putter & van Houwelingen (2005) # Takes a while to run data(ebmt2) # transition matrix for competing risks tmat <- trans.comprisk(6,names=c("Relapse","GvHD","Bacterial","Viral","Fungal","Other")) # preparing long dataset ebmt2$stat1 <- as.numeric(ebmt2$status==1) ebmt2$stat2 <- as.numeric(ebmt2$status==2) ebmt2$stat3 <- as.numeric(ebmt2$status==3) ebmt2$stat4 <- as.numeric(ebmt2$status==4) ebmt2$stat5 <- as.numeric(ebmt2$status==5) ebmt2$stat6 <- as.numeric(ebmt2$status==6) covs <- c("dissub","match","tcd","year","age") ebmtlong <- msprep(time=c(NA,rep("time",6)), stat=c(NA,paste("stat",1:6,sep="")), data=ebmt2,keep=covs,trans=tmat) # The reduced rank 2 solution rr2 <- redrank(Surv(Tstart,Tstop,status) ~ dissub+match+tcd+year+age, data=ebmtlong, R=2) rr3$Alpha; rr3$Gamma; rr3$Beta; rr3$loglik # The reduced rank 3 solution rr3 <- redrank(Surv(Tstart,Tstop,status) ~ dissub+match+tcd+year+age, data=ebmtlong, R=3) rr3$Alpha; rr3$Gamma; rr3$Beta; rr3$loglik # The reduced rank 3 solution, with no reduction on age rr3 <- redrank(Surv(Tstart,Tstop,status) ~ dissub+match+tcd+year, full=~age, data=ebmtlong, R=3) rr3$Alpha; rr3$Gamma; rr3$Beta; rr3$loglik # The full rank solution fullrank <- redrank(Surv(Tstart,Tstop,status) ~ dissub+match+tcd+year+age, data=ebmtlong, R=6) fullrank$Beta; fullrank$loglik } } \references{ Fiocco M, Putter H, van Houwelingen JC (2005). Reduced rank proportional hazards model for competing risks. \emph{Biostatistics} \bold{6}, 465--478. Fiocco M, Putter H, van Houwelingen HC (2008). Reduced-rank proportional hazards regression and simulation-based prediction for multi-state models. \emph{Statistics in Medicine} \bold{27}, 4340--4358. Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. } \author{ Marta Fiocco and Hein Putter \email{H.Putter@lumc.nl} } \keyword{survival} mstate/man/EBMT-year-of-relapse-data.Rd0000644000176200001440000000253014627637077017263 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datasets.R \docType{data} \name{EBMT year of relapse data} \alias{EBMT year of relapse data} \alias{ebmt1} \title{Data from the European Society for Blood and Marrow Transplantation (EBMT)} \format{ A data frame, see \code{\link{data.frame}}. } \source{ We acknowledge the European Society for Blood and Marrow Transplantation (EBMT) for making available these data. Disclaimer: these data were simplified for the purpose of illustration of the analysis of competing risks and multi-state models and do not reflect any real life situation. No clinical conclusions should be drawn from these data. } \description{ A data frame of 1977 patients transplanted for CML. The included variables are \describe{ \item{patid}{Patient identification number} \item{srv}{Time in days from transplantation to death or last follow-up} \item{srvstat}{Survival status; 1 = death; 0 = censored} \item{rel}{Time in days from transplantation to relapse or last follow-up} \item{relstat}{Relapse status; 1 = relapsed; 0 = censored} \item{yrel}{Calendar year of relapse; factor with levels "1993-1996"," 1997-1999", "2000-"} \item{age}{Patient age at transplant (years)} \item{score}{Gratwohl score; factor with levels "Low risk", "Medium risk", "High risk"} } } \keyword{datasets} mstate/man/mssample.Rd0000644000176200001440000001402314627637077014455 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mssample.R \name{mssample} \alias{mssample} \title{Sample paths through a multi-state model} \usage{ mssample( Haz, trans, history = list(state = 1, time = 0, tstate = NULL), beta.state = NULL, clock = c("forward", "reset"), output = c("state", "path", "data"), tvec, cens = NULL, M = 10, do.trace = NULL ) } \arguments{ \item{Haz}{Cumulative hazards to be sampled from. These should be given as a data frame with columns \code{time}, \code{Haz}, \code{trans}, for instance as the \code{Haz} list element given by \code{\link{msfit}}.} \item{trans}{Transition matrix describing the multi-state model. See \code{trans} in \code{\link{msprep}} for more detailed information} \item{history}{A list with elements \code{state}, specifying the starting state(s), \code{time}, the starting time(s), and \code{tstate}, a numeric vector of length the number of states, specifying at what times states have been visited, if appropriate. The default of \code{tstate} is \code{NULL}; more information can be found under Details. The elements \code{state} and \code{time} may either be scalars or vectors, in which case different sampled paths may start from different states or at different times. By default, all sampled paths start from state 1 at time 0.} \item{beta.state}{A matrix of dimension (no states) x (no transitions) specifying estimated effects of times at which earlier states were reached on subsequent transitions. If these are not in the model, the value \code{NULL} (default) suffices; more information can be found under Details} \item{clock}{Character argument, either \code{"forward"} (default) or \code{"reset"}, specifying whether the time-scale of the cumulative hazards is in forward time (\code{"forward"}) or duration in the present state (\code{"reset"})} \item{output}{One of \code{"state"}, \code{"path"}, or \code{"data"}, specifying whether states, paths, or data should be output.} \item{tvec}{A numeric vector of time points at which the states or paths should be evaluated. Ignored if \code{output}=\code{"data"}} \item{cens}{An independent censoring distribution, given as a data frame with time and Haz} \item{M}{The number of sampled trajectories through the multi-state model. The default is 10, since the procedure can become quite time-consuming} \item{do.trace}{An integer, specifying that the replication number should be written to the console every \code{do.trace} replications. Default is \code{NULL} in which case no output is written to the console during the simulation} } \value{ M simulated paths through the multi-state model given by \code{trans} and \code{Haz}. It is either a data frame with columns \code{time}, \code{pstate1}, ..., \code{pstateS} for S states when \code{output="state"}, or with columns \code{time}, \code{ppath1},..., \code{ppathP} for the P paths specified in \code{\link{paths}}(trans) when \code{output="path"}. When \code{output="data"}, the sampled paths are stored in an \code{"msdata"} object, a data frame in long format such as that obtained by \code{\link{msprep}}. This may be useful for (semi-)parametric bootstrap procedures, in which case \code{cens} may be used as censoring distribution (assumed to be independent of all transition times and independent of any covariates). } \description{ Given cumulative transition hazards sample paths through the multi-state model. } \details{ The procedure is described in detail in Fiocco, Putter & van Houwelingen (2008). The argument \code{beta.state} and the element \code{tstate} from the argument \code{history} are meant to incorporate situations where the time at which some previous states were visited may affect future transition rates. The relation between time of visit of state \code{s} and transition \code{k} is assumed to be linear on the log-hazards; the corresponding regression coefficient is to be supplied as the (s,k)-element of \code{beta.state}, which is 0 if no such effect has been included in the model. If no such effects are present, then \code{beta.state}=\code{NULL} (default) suffices. In the \code{tstate} element of \code{history}, the \code{s}-th element is the time at which state \code{s} was visited. This is only relevant for states which have been visited prior to the beginning of sampling, i.e. before the \code{time} element of \code{history}; the elements of \code{tstate} are internally updated when in the sampling process new states are visited (only if \code{beta.state} is not \code{NULL} to avoid unnecessary computations). } \examples{ # transition matrix for illness-death model tmat <- trans.illdeath() # data in wide format, for transition 1 this is dataset E1 of # Therneau & Grambsch (T&G) tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,0,0,0),x2=c(6:1)) # data in long format using msprep tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), data=tg,keep=c("x1","x2"),trans=tmat) # expanded covariates tglong <- expand.covs(tglong,c("x1","x2")) # Cox model with different covariate cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), data=tglong,method="breslow") # new data, to check whether results are the same for transition 1 as T&G newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) fit <- msfit(cx,newdata,trans=tmat) tv <- unique(fit$Haz$time) # mssample set.seed(1234) mssample(Haz=fit$Haz,trans=tmat,tvec=tv,M=100) set.seed(1234) paths(tmat) mssample(Haz=fit$Haz,trans=tmat,tvec=tv,M=100,output="path") set.seed(1234) mssample(Haz=fit$Haz,trans=tmat,tvec=tv,M=100,output="data",do.trace=25) } \references{ Fiocco M, Putter H, van Houwelingen HC (2008). Reduced-rank proportional hazards regression and simulation-based prediction for multi-state models. \emph{Statistics in Medicine} \bold{27}, 4340--4358. } \author{ Marta Fiocco, Hein Putter \email{H.Putter@lumc.nl} } \keyword{datagen} mstate/man/plot.MarkovTest.Rd0000644000176200001440000000522014627637077015707 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot.MarkovTest.R \name{plot.MarkovTest} \alias{plot.MarkovTest} \title{Plot method for a MarkovTest object} \usage{ \method{plot}{MarkovTest}( x, y, what = c("states", "overall"), idx = NULL, quantiles = TRUE, qsup, states, xlab, ylab, main, ... ) } \arguments{ \item{x}{Object of class 'MarkovTest'} \item{y}{The grid at which \code{MarkovTest} was calculated} \item{what}{Choose "states" for plotting state-specific traces, and "overall" for the overall chi-squared trace} \item{idx}{Vector of indices of wild bootstrap traces to plot} \item{quantiles}{Boolean whether or not to plot the 2.5 and 97.5 percent quantiles, default is \code{TRUE}} \item{qsup}{The index of the function in either \code{fn} (when plotting state-specific) or \code{fn2} (when plotting overall) to plot along with the traces; when missing this line is not included} \item{states}{Number of the qualifying state(s) to plot trace for} \item{xlab}{Text for x-axis label} \item{ylab}{Text for y-axis label} \item{main}{Text for title (main)} \item{\dots}{Further arguments to plot} } \value{ No return value } \description{ Plot method for an object of class 'MarkovTest'. It plots the trace of the log-rank statistics provided by \code{\link{MarkovTest}}. } \examples{ \dontrun{ # Example provided by the prothrombin data data("prothr") # Apply Markov test to grid of monthly time points over the first 7.5 years year <- 365.25 month <- year / 12 grid <- month * (1:90) # Markov test for transition 1 (wild bootstrap based on 100 replications) MT <- MarkovTest(prothr, id = "id", transition = 1, grid = grid, B = 100) plot(MT, grid, what="states", idx=1:50, states=rownames(attr(prothr, "trans")), xlab="Days since randomisation", ylab="Log-rank test statistic", main="Transition Normal -> Low") plot(MT, grid,what="overall", idx=1:50, xlab="Days since randomisation", ylab="Chi-square test statistic", main="Transition Normal -> Low") plot(MT, grid, what="states", quantiles=FALSE) # only trace plot(MT, grid, what="states") # trace plus quantiles (default) plot(MT, grid, what="states", idx=1:10) # trace plus quantiles, plus first 10 bootstrap traces plot(MT, grid, what="overall", quantiles=FALSE) # only trace plot(MT, grid, what="overall") # trace plus quantiles (default) plot(MT, grid, what="overall", idx=1:10) # trace plus quantiles, plus first 10 bootstrap traces } } \seealso{ \code{\link{MarkovTest}} } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{hplot} mstate/man/msprep.Rd0000644000176200001440000001520414627637077014144 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/msprep.R \name{msprep} \alias{msprep} \title{Function to prepare dataset for multi-state modeling in long format from dataset in wide format} \usage{ msprep(time, status, data, trans, start, id, keep) } \arguments{ \item{time}{Either 1) a matrix or data frame of dimension n x S (n being the number of individuals and S the number of states in the multi-state model), containing the times at which the states are visited or last follow-up time, or 2) a character vector of length S containing the column names indicating these times. In the latter cases, some elements of \code{time} may be NA, see Details} \item{status}{Either 1) a matrix or data frame of dimension n x S, containing, for each of the states, event indicators taking the value 1 if the state is visited or 0 if it is not (censored), or 2) a character vector of length S containing the column names indicating these status variables. In the latter cases, some elements of \code{status} may be NA, see Details} \item{data}{Data frame (not a tibble) in wide format in which to interpret \code{time}, \code{status}, \code{id} or \code{keep}, if appropriate} \item{trans}{Transition matrix describing the states and transitions in the multi-state model. If S is the number of states in the multi-state model, \code{trans} should be an S x S matrix, with (i,j)-element a positive integer if a transition from i to j is possible in the multi-state model, \code{NA} otherwise. In particular, all diagonal elements should be \code{NA}. The integers indicating the possible transitions in the multi-state model should be sequentially numbered, 1,...,K, with K the number of transitions} \item{start}{List with elements \code{state} and \code{time}, containing starting states and times of the subjects in the data. Default is \code{NULL}, in which case all subjects start in state 1 at time 0. If a single state and time are given this state and time is used for all subjects, otherwise the length of \code{state} and \code{time} should equal the number of subjects in \code{data}} \item{id}{Either 1) a vector of length n containing the subject identifications, or 2) a character string indicating the column name containing these subject ids. If not provided, \code{"id"} will be assigned with values 1,...,n} \item{keep}{Either 1) a data frame or matrix with n rows or a numeric or factor vector of length n containing covariate(s) that need to be retained in the output dataset, or 2) a character vector containing the column names of these covariates in \code{data}} } \value{ An object of class \code{"msdata"}, which is a data frame in long (counting process) format containing the subject id, the covariates (replicated per subject), and \item{from}{the starting state} \item{to}{the receiving state} \item{trans}{the transition number} \item{Tstart}{the starting time of the transition} \item{Tstop}{the stopping time of the transition} \item{status}{status variable, with 1 indicating an event (transition), 0 a censoring} The \code{"msdata"} object has the transition matrix as \code{"trans"} attribute. } \description{ This function converts a dataset which is in wide format (one subject per line, multiple columns indicating time and status for different states) into a dataset in long format (one line for each transition for which a subject is at risk). Selected covariates are replicated per subjects. } \details{ For \code{msprep}, the transition matrix should correspond to an irreversible acyclic Markov chain. In particular, on the diagonals only \code{NA}s are allowed. The transition matrix, if irreversible and acyclic, will have starting states, i.e. states into which no transitions are possible. For these starting states \code{NA}s are allowed in the \code{time} and \code{status} arguments, either as columns, when specified as matrix or data frame, or as elements of the character vector when specified as character vector. The function \code{msprep} uses a recursive algorithm through calls to the recursive function \code{msprepEngine}. First, with the current transition matrix, all starting states are detected (defined as states into which there are no transitions). For each of these starting states, all subjects starting from that state are selected and for each subject the next visited state is detected by looking at all transitions from that starting state and determining the smallest transition time with \code{status}=1. The recursive \code{msprepEngine} is called again with the starting states deleted from the transition matrix and with subjects deleted that either reached an absorbing state or that were censored. For the remaining subjects the starting states and times are updated in the next call. Datasets returned from the \code{msprepEngine} calls are appended to the current dataset in long format and finally sorted. A warning is issued for a subject, if multiple transitions exist with the same smallest transition time (and \code{status}=0). In such cases the next transition cannot be determined unambiguously, and the state with the smallest number is chosen. In our experience, occasionally the shortest transition time has \code{status}=0, while a higher transition time has \code{status}=1. Then this larger transition time and the corresponding transition is selected. No warning is issued for these data inconsistencies. } \examples{ # transition matrix for illness-death model tmat <- trans.illdeath() # some data in wide format tg <- data.frame(stt=rep(0,6),sts=rep(0,6), illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,2,2,2),x2=c(6:1)) tg$x1 <- factor(tg$x1,labels=c("male","female")) tg$patid <- factor(2:7,levels=1:8,labels=as.character(1:8)) # define time, status and covariates also as matrices tt <- matrix(c(rep(NA,6),tg$illt,tg$dt),6,3) st <- matrix(c(rep(NA,6),tg$ills,tg$ds),6,3) keepmat <- data.frame(gender=tg$x1,age=tg$x2) # data in long format using msprep msprep(time=tt,status=st,trans=tmat,keep=as.matrix(keepmat)) msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"),data=tg, id="patid",keep=c("x1","x2"),trans=tmat) # Patient no 5, 6 now start in state 2 at time t=4 and t=10 msprep(time=tt,status=st,trans=tmat,keep=keepmat, start=list(state=c(1,1,1,1,2,2),time=c(0,0,0,0,4,10))) } \references{ Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. } \author{ Hein Putter \email{H.Putter@lumc.nl} and Marta Fiocco } \keyword{datagen} mstate/man/summary.probtrans.Rd0000644000176200001440000000747114627637077016353 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/summary.probtrans.R \name{summary.probtrans} \alias{summary.probtrans} \title{Summary method for a probtrans object} \usage{ \method{summary}{probtrans}( object, times, from = 1, to = 0, variance = TRUE, conf.int = 0.95, conf.type = c("log", "none", "plain"), extend = FALSE, ... ) } \arguments{ \item{object}{Object of class 'probtrans', containing estimated transition probabilities from and to all states in a multi-state model} \item{times}{Time points at which to evaluate the transition probabilites} \item{from}{Specifies from which state the transition probabilities are to be printed. Should be subset of 1:S, with S the number of states in the multi-state model. Default is print from state 1 only. User can specify from=0 to print transition probabilities from all states} \item{to}{Specifies the transition probabilities to which state are to be printed. User can specify to=0 to print transition probabilities to all states. This is also the default} \item{variance}{Whether or not the standard errors of the estimated transition probabilities should be printed; default is \code{TRUE}} \item{conf.int}{The proportion to be covered by the confidence intervals, default is 0.95} \item{conf.type}{The type of confidence interval, one of "log", "none", or "plain". Defaults to "log"} \item{extend}{logical value: if \code{TRUE}, prints information for all specified times, even if there are no subjects left at the end of the specified times. This is only valid if the times argument is present} \item{\dots}{Further arguments to print} } \value{ Function \code{summary.probtrans} returns an object of class "summary.probtrans", which is a list (for each \code{from} state) of transition probabilities at the specified (or all) time points. The \code{print} method of a \code{summary.probtrans} doesn't return a value. } \description{ Summary method for an object of class 'probtrans'. It prints a selection of the estimated transition probabilities, and, if requested, also of the variances. } \examples{ # First run the example of probtrans tmat <- trans.illdeath() tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,0,0,0),x2=c(6:1)) tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), data=tg,keep=c("x1","x2"),trans=tmat) tglong <- expand.covs(tglong,c("x1","x2")) cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), data=tglong,method="breslow") newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) HvH <- msfit(cx,newdata,trans=tmat) pt <- probtrans(HvH,predt=0) # Default, prediction from state 1 summary(pt) # Only from states 1 and 3 summary(pt, from=c(1, 3)) # Use from=0 for prediction from all states summary(pt, from=0) # Only to states 1 and 2 summary(pt, to=1:2) # Default is 95\% confidence interval, change here to 90\% summary(pt, to=1:2, conf.int=0.90) # Do not show variances (nor confidence intervals) summary(pt, to=1:2, variance=FALSE) # Transition probabilities only at specified time points summary(pt, times=seq(0, 15, by=3)) # Last specified time point is larger than last observed, not printed # Use extend=TRUE as in summary.survfit summary(pt, times=seq(0, 15, by=3), extend=TRUE) # Different types of confidence intervals, default is log summary(pt, times=seq(0, 15, by=3), conf.type="plain") summary(pt, times=seq(0, 15, by=3), conf.type="no") # When the number of time points specified is larger than 12, head and tail is shown x <- summary(pt, times=seq(5, 8, by=0.25)) x } \seealso{ \code{\link{probtrans}} } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{print} mstate/man/transhelp.Rd0000644000176200001440000000301214627637077014630 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datasets.R \name{transhelp} \alias{transhelp} \alias{to.trans2} \alias{trans2Q} \alias{absorbing} \alias{is.circular} \title{Help functions for transition matrix} \arguments{ \item{trans}{Transition matrix, for instance produced by \code{transMat}), \code{trans.comprisk}, or \code{trans.illdeath}} } \value{ See details. } \description{ Help functions to get insight into the structure of a transition matrix. } \details{ Function \code{to.trans2} simply lists the transitions in \code{trans} in a data frame; function \code{trans2Q} converts \code{trans} to a \code{Q} matrix, the (j,k)th element of which contains the (shortest) number of transitions needed to travel from the jth to the kth state; function \code{absorbing} returns a vector (named if \code{trans} contains row or columnc names) with the state numbers that are absorbing; function \code{is.circular} returns (a Boolean) whether the transition matrix specified in \code{trans} is circular or not. } \examples{ # Irreversible illness-death model tmat <- trans.illdeath(c("Healthy", "Illness", "Death")) tmat to.trans2(tmat) trans2Q(tmat) absorbing(tmat) is.circular(tmat) # Reversible illness-death model tmat <- transMat(x = list( c(2, 3), c(1, 3), c() ), names = c("Healthy", "Illness", "Death")) tmat to.trans2(tmat) trans2Q(tmat) absorbing(tmat) is.circular(tmat) } \author{ Hein Putter } \keyword{univar} mstate/man/EBMT-cause-of-death-data.Rd0000644000176200001440000000353114627637077017057 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datasets.R \docType{data} \name{EBMT cause of death data} \alias{EBMT cause of death data} \alias{ebmt2} \title{Data from the European Society for Blood and Marrow Transplantation (EBMT)} \format{ A data frame, see \code{\link{data.frame}}. } \source{ We acknowledge the European Society for Blood and Marrow Transplantation (EBMT) for making available these data. Disclaimer: these data were simplified for the purpose of illustration of the analysis of competing risks and multi-state models and do not reflect any real life situation. No clinical conclusions should be drawn from these data. } \description{ A data frame of 8966 patients transplanted at the EBMT. The included variables are \describe{ \item{id}{Patient identification number} \item{time}{Time in months from transplantation to death or last follow-up} \item{status}{Survival status; 0 = censored; 1,...,6 = death due to the following causes: Relapse (1), GvHD (2), Bacterial infections (3), Viral infections (4), Fungal infections (5), Other causes (6)} \item{cod}{Cause of death as factor with levels "Alive", "Relapse", "GvHD", "Bacterial", "Viral", "Fungal", "Other"} \item{dissub}{Disease subclassification; factor with levels "AML", "ALL", "CML"} \item{match}{Donor-recipient gender match; factor with levels "No gender mismatch", "Gender mismatch"} \item{tcd}{T-cell depletion; factor with levels "No TCD", "TCD", "Unknown"} \item{year}{Year of transplantation; factor with levels "1985-1989", "1990-1994", "1995-1998"} \item{age}{Patient age at transplant; factor with levels "<=20", "20-40", ">40"} } } \references{ Fiocco M, Putter H, van Houwelingen JC (2005). Reduced rank proportional hazards model for competing risks. \emph{Biostatistics} \bold{6}, 465--478. } \keyword{datasets} mstate/man/varHaz.fixed.Rd0000644000176200001440000000163014627637077015165 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/relsurv.varHaz.fixed.R \name{varHaz.fixed} \alias{varHaz.fixed} \title{Upgrade the varHaz object} \usage{ varHaz.fixed(varHaz, link_trans, varHaz_original) } \arguments{ \item{varHaz}{The varHaz object (present in a msfit object).} \item{link_trans}{A list that gives the linkage between the original and upgraded transition matrix.} \item{varHaz_original}{The original varHaz object from msfit (without the eventual time conversion).} } \value{ Return the upgraded varHaz object containing variances for the split transitions. } \description{ A function that upgrades varHaz from the msfit object where the variances are estimated using the Greenwood estimator; it is further assumed that variances for the population hazards are equal to zero. } \author{ Damjan Manevski \email{damjan.manevski@mf.uni-lj.si} } mstate/man/haz_function.Rd0000644000176200001440000000276314627637077015333 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/relsurv.haz_function.R \name{haz_function} \alias{haz_function} \title{Helper function that calculates excess and population hazards for a given transition} \usage{ haz_function( formula = formula(data), data, ratetable = relsurv::slopop, na.action, add.times, rmap, include.all.times = FALSE ) } \arguments{ \item{formula}{A non-parametric Surv-based formula, e.g. Surv(times, status)~1} \item{data}{A subset of the msprep object (dataset) where there's only data for the chosen transition} \item{ratetable}{A table of event rates, organized as a ratetable object, such as slopop} \item{na.action}{A missing-data filter function, applied to the model.frame, after any subset argument has been used. Default is options()$na.action} \item{add.times}{Additional times at which the hazards should be evaluated} \item{rmap}{An optional list to be used if the variables are not organized and named in the same way as in the ratetable object} \item{include.all.times}{Should hazards be evaluated at all times in seq(minimum time, maximum time, by=1). Default is FALSE} } \value{ A list containing the needed hazards. } \description{ A function that calculates the excess and population hazards for a given transition. Code is based on function rs.surv from the relsurv package. } \seealso{ \code{\link{msfit.relsurv}} } \author{ Damjan Manevski \email{damjan.manevski@mf.uni-lj.si} } mstate/man/msfit.Rd0000644000176200001440000001063414627637077013762 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/msfit.R \name{msfit} \alias{msfit} \title{Compute subject-specific transition hazards with (co-)variances} \usage{ msfit( object, newdata, variance = TRUE, vartype = c("aalen", "greenwood"), trans ) } \arguments{ \item{object}{A \code{\link[survival:coxph]{coxph}} object describing the fit of the multi-state model} \item{newdata}{A data frame with the same variable names as those that appear in the \code{coxph} formula. Its use is somewhat different from \code{\link[survival:survfit]{survfit}}. See Details. The argument \code{newdata} may be omitted only if the right hand side of the formula in the \code{coxph} object is \code{~strata(trans)}} \item{variance}{A logical value indicating whether the (co-)variances of the subject-specific transition hazards should be computed. Default is \code{TRUE}} \item{vartype}{A character string specifying the type of variances to be computed (so only needed if \code{variance}=\code{TRUE}). Possible values are \code{"aalen"} or \code{"greenwood"}} \item{trans}{Transition matrix describing the states and transitions in the multi-state model. See \code{trans} in \code{\link{msprep}} for more detailed information} } \value{ An object of class \code{"msfit"}, which is a list containing \item{Haz }{A data frame with \code{time}, \code{Haz}, \code{trans}, containing the estimated subject-specific hazards for each of the transitions in the multi-state model} \item{varHaz }{A data frame with \code{time}, \code{Haz}, \code{trans1}, \code{trans2} containing the variances (\code{trans1}=\code{trans2}) and covariances (\code{trans1}<\code{trans2}) of the estimated hazards. This element is only returned when \code{variance}=\code{TRUE}} \item{trans}{The transition matrix used} } \description{ This function computes subject-specific or overall cumulative transition hazards for each of the possible transitions in the multi-state model. If requested, also the variances and covariances of the estimated cumulative transition hazards are calculated. } \details{ The data frame needs to have one row for each transition in the multi-state model. An additional column \code{strata} (numeric) is needed to describe for each transition to which stratum it belongs. The name has to be \code{strata}, even if in the original \code{coxph} call another variable was used. For details refer to de Wreede, Fiocco & Putter (2010). So far, the results have been checked only for the \code{"breslow"} method of dealing with ties in \code{\link[survival:coxph]{coxph}}, so this is recommended. } \examples{ # transition matrix for illness-death model tmat <- trans.illdeath() # data in wide format, for transition 1 this is dataset E1 of # Therneau & Grambsch (2000) tg <- data.frame(illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1), dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1), x1=c(1,1,1,0,0,0),x2=c(6:1)) # data in long format using msprep tglong <- msprep(time=c(NA,"illt","dt"),status=c(NA,"ills","ds"), data=tg,keep=c("x1","x2"),trans=tmat) # events events(tglong) table(tglong$status,tglong$to,tglong$from) # expanded covariates tglong <- expand.covs(tglong,c("x1","x2")) # Cox model with different covariate cx <- coxph(Surv(Tstart,Tstop,status)~x1.1+x2.2+strata(trans), data=tglong,method="breslow") summary(cx) # new data, to check whether results are the same for transition 1 as # those in appendix E.1 of Therneau & Grambsch (2000) newdata <- data.frame(trans=1:3,x1.1=c(0,0,0),x2.2=c(0,1,0),strata=1:3) msfit(cx,newdata,trans=tmat) } \references{ Putter H, Fiocco M, Geskus RB (2007). Tutorial in biostatistics: Competing risks and multi-state models. \emph{Statistics in Medicine} \bold{26}, 2389--2430. Therneau TM, Grambsch PM (2000). \emph{Modeling Survival Data: Extending the Cox Model}. Springer, New York. de Wreede LC, Fiocco M, and Putter H (2010). The mstate package for estimation and prediction in non- and semi-parametric multi-state and competing risks models. \emph{Computer Methods and Programs in Biomedicine} \bold{99}, 261--274. de Wreede LC, Fiocco M, and Putter H (2011). mstate: An R Package for the Analysis of Competing Risks and Multi-State Models. \emph{Journal of Statistical Software}, Volume 38, Issue 7. } \seealso{ \code{\link{plot.msfit}} } \author{ Hein Putter \email{H.Putter@lumc.nl} } \keyword{survival} mstate/man/trans2tra.Rd0000644000176200001440000000055514627637077014561 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/etm2msdata.R \name{trans2tra} \alias{trans2tra} \title{Convert transition matrix from mstate to etm format} \usage{ trans2tra(trans) } \arguments{ \item{trans}{Transition matrix in \code{mstate} format} } \description{ Convert transition matrix from mstate to etm format } mstate/DESCRIPTION0000644000176200001440000000303414644047336013270 0ustar liggesusersPackage: mstate Version: 0.3.3 Date: 2024-07-03 Title: Data Preparation, Estimation and Prediction in Multi-State Models Authors@R: c( person( given = "Hein", family = "Putter", role = c("aut", "cre"), email = "H.Putter@lumc.nl"), person( given = "Liesbeth C.", family = "de Wreede", role = "aut" ), person( given = "Marta", family = "Fiocco", role = "aut" ), person( given = "Ronald B.", family = "Geskus", role = "ctb" ), person( given = "Edouard F.", family = "Bonneville", role = "aut" ), person( given = "Damjan", family = "Manevski", role = "ctb" ) ) Depends: survival (>= 3.1) Imports: rlang, data.table, lattice, RColorBrewer, viridisLite Suggests: cmprsk, ggplot2, knitr, rmarkdown, relsurv (>= 2.2-5) Description: Contains functions for data preparation, descriptives, hazard estimation and prediction with Aalen-Johansen or simulation in competing risks and multi-state models, see Putter, Fiocco, Geskus (2007) . License: GPL (>= 2) Encoding: UTF-8 URL: https://github.com/hputter/mstate NeedsCompilation: yes Repository: CRAN Packaged: 2024-07-11 08:03:11 UTC; efbonneville RoxygenNote: 7.2.3 BugReports: https://github.com/hputter/mstate/issues VignetteBuilder: knitr Author: Hein Putter [aut, cre], Liesbeth C. de Wreede [aut], Marta Fiocco [aut], Ronald B. Geskus [ctb], Edouard F. Bonneville [aut], Damjan Manevski [ctb] Maintainer: Hein Putter Date/Publication: 2024-07-11 21:30:06 UTC