elliptic/0000755000176200001440000000000015104422712012055 5ustar liggesuserselliptic/tests/0000755000176200001440000000000015104404043013214 5ustar liggesuserselliptic/tests/testthat/0000755000176200001440000000000015104422712015057 5ustar liggesuserselliptic/tests/testthat/test_aab.R0000644000176200001440000000064115104404043016762 0ustar liggesuserstest_that("Test suite aab", { jj <- as.primitive(c(30+1i, 1-2i)) expect_true(all(jj == as.primitive(jj))) expect_true(is.primitive(jj)) expect_true(is.primitive(as.primitive(jj))) expect_error(as.primitive(c(3, 4))) expect_true(cc(1+1i, 4-9i) == 1) expect_true(is.null(congruence(0:1, 1))) jj <- congruence(1:0, 1) expect_true(is.na(jj[1])) expect_true(jj[2] == 1) } ) elliptic/tests/testthat/test_aaa.R0000644000176200001440000001460215104404043016763 0ustar liggesuserstest_that("Test suite aaa",{ safety.factor <- 100 `test` <- function(x,abs.error=1e-6){ expect_true(all(abs(x) tol) { second.row <- second.row.candidate found.second.row <- TRUE break() } } if (!found.second.row) { stop("unimodular transformation out of range. Try increaing n") } M <- rbind(first.row, second.row) p.prim <- M %*% p if (Re(p.prim[1]) < 0) { p.prim[1] <- -p.prim[1] M[1, ] <- -M[1, ] } if (Im(p.prim[2]/p.prim[1]) < -tol) { M[2, ] <- -M[2, ] } out <- as.vector(M %*% p) class(out) <- "primitive" if (give.answers) { return(list(M = M, p = out, mags = abs(out))) } else { return(out) } } "cc" <- function (u, m, ...) { 1 } "cd" <- function (u, m, ...) { theta.c(u, m = m, ...)/theta.d(u, m = m, ...) } "ck" <- function (g, n = 20) { if (n < 3) { stop("error: n must be >3") } out <- rep(0, n) g2 <- g[1] g3 <- g[2] out[1] <- 0 out[2] <- g2/20 out[3] <- g3/28 for (k in 4:n) { out[k] <- 3/((2 * k + 1) * (k - 3)) * sum(out[2:(k - 2)] * out[(k - 2):2]) } return(out) } "cn" <- function (u, m, ...) { theta.c(u, m = m, ...)/theta.n(u, m = m, ...) } "congruence" <- function (a, l = 1) { l <- as.integer(l) m <- as.integer(a[1]) n <- as.integer(a[2]) zero <- as.integer(0) one <- as.integer(1) if (m == zero & n == one) { return(NULL) } if (m == one & n == zero) { return(c(NA, 1)) } if (m == 1) { return(rbind(c(a),c(1, n + l), c(0, l))) } if (n == 1) { return(rbind(c(a),c(m - l, 1), c(l, 0))) } q1 <- which((+l + (1:m) * n)%%m == zero) if (!any(q1)) { q1 <- NA } q2 <- which((-l + (1:n) * m)%%n == zero) if (!any(q2)) { q2 <- NA } out <- rbind(a, cbind(q1, q2)) rownames(out) <- NULL colnames(out) <- NULL return(out) } "coqueraux" <- function (z, g, N = 5, use.fpp = FALSE, give = FALSE) { if (use.fpp) { if (!inherits(g,"parameters")){ g <- parameters(g = g) g2 <- g$g[1] g3 <- g$g[2] } z <- fpp(z, 2 * g$Omega) } if (!inherits(g,"parameters")){ g2 <- g[1] g3 <- g[2] } else { g2 <- g$g[1] g3 <- g$g[2] } z0 <- z/2^N z0.sq <- z0^2 out <- 1/z0.sq + z0.sq * (g2/20 + z0.sq * g3/28) for (i in 1:N) { out <- -2 * out + (6 * out^2 - g2/2)^2/(4 * (4 * out^3 - g2 * out - g3)) } if (give) { error <- abs(g2^2)/2450/2^(8 * N) * abs(z)^9 * sqrt(abs(4 * out^3 - g2 * out - g3)) return(list(out = out, error = error)) } else { return(out) } } "cs" <- function (u, m, ...) { theta.c(u, m = m, ...)/theta.s(u, m = m, ...) } "dc" <- function (u, m, ...) { theta.d(u, m = m, ...)/theta.c(u, m = m, ...) } "dd" <- function (u, m, ...) { theta.d(u, m = m, ...)/theta.d(u, m = m, ...) } "divisor" <- function (n, k = 1) { if (length(n) > 1) { return(sapply(n, match.fun(sys.call()[[1]]), k = k)) } if (n == 1) { return(1) } x <- factorize(n) xx <- unique(x) jj <- rbind(vals = xx, cnts = tabulate(match(x, xx))) f <- function(u) { p <- u[1] alpha <- u[2] (p^((alpha + 1) * k) - 1)/(p^k - 1) } if (k > 0) { return(as.integer(prod(apply(jj, 2, f)))) } else { return(as.integer(prod(1 + jj[2, ]))) } } "liouville" <- function(n){ out <- ifelse(sapply(factorize(n), length)%%2, -1L, 1L) out[n==1] <- 1L return(out) } "dn" <- function (u, m, ...) { theta.d(u, m = m, ...)/theta.n(u, m = m, ...) } "ds" <- function (u, m, ...) { theta.d(u, m = m, ...)/theta.s(u, m = m, ...) } "e16.28.1" <- function (z, m, ...) { theta1(z, m = m, ...)^2 * theta4(0, m = m, ...)^2 - theta3(z, m = m, ...)^2 * theta2(0, m = m, ...)^2 + theta2(z, m = m, ...)^2 * theta3(0, m = m, ...)^2 } "e16.28.2" <- function (z, m, ...) { theta2(z, m = m, ...)^2 * theta4(0, m = m, ...)^2 - theta4(z, m = m, ...)^2 * theta2(0, m = m, ...)^2 + theta1(z, m = m, ...)^2 * theta3(0, m = m, ...)^2 } "e16.28.3" <- function (z, m, ...) { theta3(z, m = m, ...)^2 * theta4(0, m = m, ...)^2 - theta4(z, m = m, ...)^2 * theta3(0, m = m, ...)^2 + theta1(z, m = m, ...)^2 * theta2(0, m = m, ...)^2 } "e16.28.4" <- function (z, m, ...) { theta4(z, m = m, ...)^2 * theta4(0, m = m, ...)^2 - theta3(z, m = m, ...)^2 * theta3(0, m = m, ...)^2 + theta2(z, m = m, ...)^2 * theta2(0, m = m, ...)^2 } "e16.28.5" <- function (m, ...) { theta2(0, m = m, ...)^4 + theta4(0, m = m, ...)^4 - theta3(0, m = m, ...)^4 } "e16.36.6a" <- function (u, m, ...) { K <- K.fun(m) v <- pi * u/(2 * K) 2 * K * theta1(v, m = m, ...)/(pi * theta2(0, m = m, ...) * theta3(0, m = m, ...) * theta4(0, m = m, ...)) } "e16.36.6b" <- function (u, m, ...) { K <- K.fun(m) v <- pi * u/(2 * K) theta2(v, m = m, ...)/theta2(0, m = m, ...) } "e16.36.7a" <- function (u, m, ...) { K <- K.fun(m) v <- pi * u/(2 * K) theta3(v, m = m, ...)/theta3(0, m = m, ...) } "e16.36.7b" <- function (u, m, ...) { K <- K.fun(m) v <- pi * u/(2 * K) theta4(v, m = m, ...)/theta4(0, m = m, ...) } "e16.37.1" <- function (u, m, maxiter = 30, miniter=3) { q <- nome(m) K <- K.fun(m) v <- pi * u/(2 * K) out <- 1 for (n in 1:maxiter) { out.new <- out * (1 - 2 * q^(2 * n) * cos(2 * v) + q^(4 * n)) if (near.match(out, out.new) && n>miniter) { return((16 * q/(m * (1 - m)))^(1/6) * sin(v) * out) } out <- out.new } stop("maximum iterations reached") } "e16.37.2" <- function (u, m, maxiter = 30, miniter=3) { q <- nome(m) K <- K.fun(m) v <- pi * u/(2 * K) out <- 1 for (n in 1:maxiter) { out.new <- out * (1 + 2 * q^(2 * n) * cos(2 * v) + q^(4 * n)) if (near.match(out, out.new) && n>miniter) { return((16 * q * sqrti(1 - m)/m)^(1/6) * cos(v) * out) } out <- out.new } stop("maximum iterations reached") } "e16.37.3" <- function (u, m, maxiter = 30, miniter=3) { q <- nome(m) K <- K.fun(m) v <- pi * u/(2 * K) out <- 1 for (n in 1:maxiter) { out.new <- out * (1 + 2 * q^(2 * n - 1) * cos(2 * v) + q^(4 * n - 2)) if (near.match(out, out.new) && n>miniter) { return((m * (1 - m)/(16 * q))^(1/12) * out) } out <- out.new } stop("maximum iterations reached") } "e16.37.4" <- function (u, m, maxiter = 30, miniter=3) { q <- nome(m) K <- K.fun(m) v <- pi * u/(2 * K) out <- 1 for (n in 1:maxiter) { out.new <- out * (1 - 2 * q^(2 * n - 1) * cos(2 * v) + q^(4 * n - 2)) if (near.match(out, out.new) && n>miniter) { return((m/(16 * q * (1 - m)^2))^(1/12) * out) } out <- out.new } stop("maximum iterations reached") } "e16.38.1" <- function (u, m, maxiter = 30, miniter=3) { q <- nome(m) K <- K.fun(m) v <- pi * u/(2 * K) out <- 0 for (n in 0:maxiter) { out.new <- out + (-1)^n * q^(n * (n + 1)) * sin((2 * n + 1) * v) if (near.match(out, out.new) && n>miniter) { return(out.new * sqrt(2 * pi * sqrt(q)/(sqrti(m) * sqrti(1 - m) * K))) } out <- out.new } stop("maximum iterations reached") } "e16.38.2" <- function (u, m, maxiter = 30, miniter=3) { q <- nome(m) K <- K.fun(m) v <- pi * u/(2 * K) out <- 0 for (n in 0:maxiter) { out.new <- out + q^(n * (n + 1)) * cos((2 * n + 1) * v) if (near.match(out, out.new) && n>miniter) { return(out.new * sqrt(2 * pi * sqrti(q)/(sqrti(m) * K))) } out <- out.new } stop("maximum iterations reached") } "e16.38.3" <- function (u, m, maxiter = 30, miniter=3) { q <- nome(m) K <- K.fun(m) v <- pi * u/(2 * K) out <- 0 for (n in 1:maxiter) { out.new <- out + q^(n * n) * cos(2 * n * v) if (near.match(out, out.new) && n>miniter) { return((1 + 2 * out.new) * sqrt(pi/(2 * K))) } out <- out.new } stop("maximum iterations reached") } "e16.38.4" <- function (u, m, maxiter = 30, miniter=3) { q <- nome(m) K <- K.fun(m) v <- pi * u/(2 * K) out <- 0 for (n in 1:maxiter) { out.new <- out + (-1)^n * q^(n * n) * cos(2 * n * v) if (near.match(out, out.new) && n>miniter) { return((1 + 2 * out.new) * sqrt(pi/(2 * sqrti(1 - m) * K))) } out <- out.new } stop("maximum iterations reached") } "e18.10.9" <- function (parameters) { Omega <- parameters$Omega e <- parameters$e out <- rep(NA, 3) q <- exp((1i) * pi * Omega[2]/Omega[1]) out[1] <- 12 * Omega[1]^2 * e[1] - pi^2 * (theta3(z = 0, q = q)^4 + theta4(z = 0, q = q)^4) out[2] <- 12 * Omega[1]^2 * e[2] - pi^2 * (theta2(z = 0, q = q)^4 - theta4(z = 0, q = q)^4) out[3] <- 12 * Omega[1]^2 * e[3] + pi^2 * (theta2(z = 0, q = q)^4 + theta3(z = 0, q = q)^4) return(out) } "e1e2e3" <- function (g, use.laurent = TRUE, AnS = is.double(g), Omega = NULL, tol = 1e-06) { g2 <- g[1] g3 <- g[2] e <- polyroot(c(-g3, -g2, 0, 4)) if (AnS) { if (!is.double(g)) { stop("AnS only consider real g") } Delta <- g2^3 - 27 * g3^2 if (Delta < 0) { pos.im <- which.max(Im(e)) neg.im <- which.min(Im(e)) e <- c(e[pos.im], e[-c(pos.im, neg.im)], e[neg.im]) e <- massage(e) } else { e <- sort(e, decreasing = TRUE) e <- Re(e) } names(e) <- c("e1", "e2", "e3") return(e) } out.accurate <- e if (use.laurent) { e.approx <- rep(NA, 3) out <- e.approx if (is.null(Omega)) { Omega <- half.periods(e = e) } if (AnS) { e.approx[1] <- P.laurent(z = Omega[1], g = g, tol = tol) e.approx[2] <- P.laurent(z = Omega[2], g = g, tol = tol) e.approx[3] <- P.laurent(z = fpp(sum(Omega), Omega * 2), g = g, tol = tol) } else { e.approx[1] <- coqueraux(z = Omega[1], g = g) e.approx[3] <- coqueraux(z = Omega[2], g = g) e.approx[2] <- -e.approx[1] - e.approx[3] } out[1] <- out.accurate[which.min(abs(e - e.approx[1]))] out[2] <- out.accurate[which.min(abs(e - e.approx[2]))] out[3] <- out.accurate[which.min(abs(e - e.approx[3]))] } names(out) <- c("e1", "e2", "e3") return(out) } "eee.cardano" <- function (g) { g2 <- g[1] g3 <- g[2] Delta <- g3^2 - g2^3/27 epsilon <- exp(pi * (0+2i)/3) if (g2 == 0) { e1 <- (g3/4)^(1/3) return(c(e1 = e1, e2 = epsilon * e1, e3 = e1/epsilon)) } if (g3 == 0) { e1 <- g2^(1/2)/2 return(c(e1 = e1, e2 = -e1, e3 = 0)) } alpha <- (g2/12)^(1/2) beta <- (g3 + sqrt(Delta))^(1/3)/(2 * alpha) gamma <- 1/beta e1 <- alpha * (beta + gamma) e2 <- alpha * (epsilon * beta + gamma/epsilon) e3 <- alpha * (1/epsilon * beta + gamma * epsilon) return(c(e1, e2, e3)) } "equianharmonic" <- function (...) { jj <- gamma(1/3)^3/(4 * pi) omega1 <- jj/2 - (1i) * jj * sqrt(3)/2 omega2 <- Conj(omega1) Omega <- c(omega1, omega2) epsilon <- exp(pi * (1i)/3) e <- c(4^(-1/3) * epsilon^2, 4^(-1/3), 4^(-1/3) * epsilon^(-2)) names(e) <- c("e1", "e2", "e3") eta <- epsilon * pi/(2 * omega2 * sqrt(3)) etadash <- -epsilon^(-1) * pi/(2 * omega2 * sqrt(3)) Eta <- c(etadash, eta - etadash, -eta) out <- list(Omega = Omega, q = exp(pi * (1i) * omega2/omega1), e = e, g = c(g2 = 0, g3 = 1), Delta = -27, Eta = Eta, is.AnS = TRUE, given = "d") class(out) <- "parameters" return(out) } "eta" <- function (z, ...) { f <- function(u) { q <- exp(pi * (1i) * u * 3) return(theta3((1/2 + u/2) * pi, q = q, ...)) } out <- sapply(z, f) * exp(pi * (1i) * z/12) attributes(out) <- attributes(z) return(out) } "eta.series" <- function (z, maxiter = 300) { jj <- 1 for (n in 1:maxiter) { jj <- jj * (1 - exp(2 * pi * (1i) * n * z)) } return(exp(pi * (1i) * z/12) * jj) } "factorize" <- function (n) { if (!is.numeric(n)) stop("cannot factorize non-numeric arguments") if (length(n) > 1) { l <- list() for (i in seq(along = n)) l[[i]] <- Recall(n[i]) return(l) } if (n != round(n) || n < 2) return(n) tab <- primes(n) fac <- numeric(0) while (length(tab <- tab[n%%tab == 0]) > 0) { n <- n/prod(tab) fac <- c(fac, tab) } as.integer(sort(fac)) } "farey" <- function (n, print = FALSE, give.series = FALSE) { a <- outer(0:n, 0:n, "/") a <- as.vector(a[is.finite(a) & a <= 1]) a <- MASS::fractions(unique(MASS::rational(sort(a)))) a <- attributes(a)$fracs a[1] <- "0/1" a[length(a)] <- "1/1" if (print) { print(a) return(invisible(a)) } a <- strsplit(a, "/") a <- do.call("rbind", a) mode(a) <- "integer" if (give.series) { colnames(a) <- c("num", "den") return(a) } if (n == 0) { return(c(0, 1, 1, 0)) } if (n == 1) { return(c(0, 1, 1, 1)) } r <- nrow(a) a <- a[c(1, rep(2:(r - 1), each = 2), r), ] a <- as.vector(t(a)) dim(a) <- c(4, r - 1) return(a) } "fpp" <- function (z, p, give = FALSE) { attr <- attributes(z) z <- as.vector(z) jj.mn <- round(mn(z, p)) z <- z - jj.mn %*% p attributes(z) <- attr if (give) { return(list(answer = z, mn = jj.mn)) } else { return(z) } } "g2.fun" <- function (b, use.first = TRUE, ...) { jj <- p1.tau(b) p1 <- jj$p1 tau <- jj$tau q <- exp(pi * (1i) * tau) jj2 <- theta2(0, q = q, ...) jj3 <- theta3(0, q = q, ...) jj4 <- theta4(0, q = q, ...) if (use.first) { return((1/12) * (pi/p1)^4 * (jj2^8 - jj3^4 * jj2^4 + jj3^8)) } else { return((2/3) * (pi/(2 * p1))^4 * (jj2^8 + jj3^8 + jj4^8)) } } "g2.fun.direct" <- function (b, nmax = 50, tol = 1e-10) { if (length(b) == 1) { b <- c(1, b) } jj <- expand.grid(-nmax:nmax, -nmax:nmax) jj <- jj[-(2 * nmax * nmax + 2 * nmax + 1), ] jj <- as.matrix(jj) return(massage(60 * sum(1/(2 * jj %*% b)^4), tol = tol)) } "g2.fun.divisor" <- function (b, nmax = 50, strict = TRUE, tol = 1e-10) { jj <- p1.tau(b) p1 <- jj$p1 tau <- jj$tau q <- exp(pi * (1i) * tau) s <- 0 for (n in 1:nmax) { s.new <- s + divisor(n, 3) * q^(2 * n) if (near.match(s, s.new)) { return(massage((pi/p1)^4 * (1/12 + 20 * s), tol = tol)) } s <- s.new } if (strict) { stop("series not converged") } else { warning("series not converged. Partial sum returned") return(massage((2 * pi/p1)^4 * (1/12 + 20 * s), tol = tol)) } } "g2.fun.fixed" <- function (b, nmax = 50, tol=1e-10, give = FALSE) { jj <- p1.tau(b) p1 <- jj$p1 tau <- jj$tau q <- exp(pi * (1i) * tau) jj <- 1:nmax ee <- q^(2 * jj) out <- jj^3 * ee/(1 - ee) if (give) { out <- cumsum(out) } else { out <- sum(out) } return(massage((pi/p1)^4 * (1/12 + 20 * out), tol = tol)) } "g2.fun.lambert" <- function (b, nmax = 50, tol = 1e-10, strict = TRUE) { jj <- p1.tau(b) p1 <- jj$p1 tau <- jj$tau q.sq <- exp(2 * pi * (1i) * tau) s <- 0 q.sq.power.n <- q.sq for (n in 1:nmax) { s.new <- s + n^3 * q.sq.power.n/(1 - q.sq.power.n) if (near.match(s, s.new)) { return(massage((pi/p1)^4 * (1/12 + 20 * s), tol = tol)) } s <- s.new q.sq.power.n <- q.sq.power.n * q.sq } if (strict) { stop("series not converged") } else { warning("series not converged. Partial sum returned") return(massage((pi/p1)^4 * (1/12 + 20 * s), tol = tol)) } } "g2.fun.vectorized" <- function (b, nmax = 50, tol = 1e-10, give = FALSE) { if (is.vector(b)) { p1 <- rep(1, length(b)) tau <- b } else { p1 <- b[, 1] tau <- b[, 2]/p1 } if (any(Im(tau) < 0)) { stop("Im(tau)<0") } q2 <- exp(pi * (0+2i) * tau) jj <- 1:nmax out <- outer(jj, q2, function(n, q) { n^3 * q^n/(1 - q^n) }) if (give) { out <- apply(out, 2, cumsum) } else { out <- apply(out, 2, sum) } return(massage((pi/p1)^4 * (1/12 + 20 * out), tol = tol)) } "g3.fun" <- function (b, use.first = TRUE, ...) { jj <- p1.tau(b) p1 <- jj$p1 tau <- jj$tau q <- exp(pi * (1i) * tau) jj2 <- theta2(0, q = q, ...)^4 jj3 <- theta3(0, q = q, ...)^4 jj4 <- theta4(0, q = q, ...)^4 if (use.first) { return((pi/(2 * p1))^6 * ((8/27) * (jj2^3 + jj3^3) - (4/9) * (jj2 + jj3) * jj2 * jj3)) } else { return((4/27) * (pi/(2 * p1))^6 * (jj2 + jj3) * (jj3 + jj4) * (jj4 - jj2)) } } "g3.fun.direct" <- function (b, nmax = 50, tol = 1e-10) { if (length(b) == 1) { b <- c(1, b) } jj <- expand.grid(-nmax:nmax, -nmax:nmax) jj <- jj[-(2 * nmax * nmax + 2 * nmax + 1), ] jj <- as.matrix(jj) return(massage(140 * sum(1/(2 * jj %*% b)^6), tol = tol)) } "g3.fun.divisor" <- function (b, nmax = 50, strict = TRUE, tol = 1e-10) { jj <- p1.tau(b) p1 <- jj$p1 tau <- jj$tau q <- exp(pi * (1i) * tau) s <- 0 for (n in 1:nmax) { s.new <- s + divisor(n, 5) * q^(2 * n) if (near.match(s, s.new)) { return(massage((pi/p1)^6 * (1/216 - 7/3 * s), tol = tol)) } s <- s.new } if (strict) { stop("series not converged") } else { warning("series not converged. Partial sum returned") return(massage((2 * pi/p1)^6 * (1/216 - 7/3 * s), tol = tol)) } } "g3.fun.fixed" <- function (b, nmax = 50, tol = 1e-10, give = FALSE) { jj <- p1.tau(b) p1 <- jj$p1 tau <- jj$tau q <- exp(pi * (1i) * tau) jj <- 1:nmax ee <- q^(2 * jj) out <- jj^5 * ee/(1 - ee) if (give) { out <- cumsum(out) } else { out <- sum(out) } return(massage((pi/p1)^6 * (1/216 - 7/3 * out), tol = tol)) } "g3.fun.lambert" <- function (b, nmax = 50, tol = 1e-10, strict = TRUE) { jj <- p1.tau(b) p1 <- jj$p1 tau <- jj$tau q.sq <- exp(2 * pi * (1i) * tau) s <- 0 q.sq.power.n <- q.sq for (n in 1:nmax) { s.new <- s + n^5 * q.sq.power.n/(1 - q.sq.power.n) if (near.match(s, s.new)) { return(massage((pi/p1)^6 * (1/216 - 7/3 * s), tol = tol)) } s <- s.new q.sq.power.n <- q.sq.power.n * q.sq } if (strict) { stop("series not converged") } else { warning("series not converged. Partial sum returned") return(massage((pi/p1)^4 * (1/12 + 20 * s), tol = tol)) } } "g3.fun.vectorized" <- function (b, nmax = 50, tol = 1e-10, give = FALSE) { if (is.vector(b)) { p1 <- rep(1, length(b)) tau <- b } else { p1 <- b[, 1] tau <- b[, 2]/p1 } if (any(Im(tau) < 0)) { stop("Im(tau)<0") } q2 <- exp(pi * (0+2i) * tau) jj <- 1:nmax out <- outer(jj, q2, function(n, q) { n^5 * q^n/(1 - q^n) }) if (give) { out <- apply(out, 2, cumsum) } else { out <- apply(out, 2, sum) } return(massage((pi/p1)^6 * (1/216 - 7/3 * out), tol = tol)) } "g.fun" <- function (b, ...) { c(g2 = g2.fun(b, ...), g3 = g3.fun(b, ...)) } "H" <- function (u, m, ...) { K <- K.fun(m) v <- pi * u/(2 * K) return(theta1(v, m = m, ...)) } "H1" <- function (u, m, ...) { K <- K.fun(m) v <- pi * u/(2 * K) return(theta2(v, m = m, ...)) } "half.periods" <- function (ignore = NULL, e = NULL, g = NULL, primitive = TRUE) { if (!xor(is.null(e), is.null(g))) { stop("supply exactly one of e, g") } if (is.null(e)) { e <- e1e2e3(g) } omega1 <- K.fun((e[2] - e[3])/(e[1] - e[3]))/sqrti(e[1] - e[3]) omega2 <- (1i)/sqrti(e[1] - e[3]) * K.fun(1 - (e[2] - e[3])/(e[1] - e[3])) if (primitive) { return(as.primitive(c(omega1, omega2))) } else { return(c(omega1, omega2)) } } "Im<-" <- function (x, value) { if (is.complex(value)) { stop("RHS must be pure real") } if (all(value == 0)) { return(Re(x)) } else { return(Re(x) + (1i) * value) } } "integrate.contour" <- function (f, u, udash, ...) { myintegrate(function(x, ...) { f(u(x), ...) * udash(x) }, lower = 0, upper = 1, ...) } "integrate.segments" <- function (f, points, close = TRUE, ...) { if (isTRUE(close)) { points <- c(points, points[1]) } out <- 0 for (i in 1:(length(points) - 1)) { u <- function(z) { points[i] + (points[i + 1] - points[i]) * z } udash <- function(z) { points[i + 1] - points[i] } out <- out + integrate.contour(f, u, udash, ...) } return(out) } "is.primitive" <- function (p, n = 3, tol = 1e-05) { all(abs(p - as.primitive(p, n = n, tol = tol)) < tol) } "J" <- function (tau, use.theta = TRUE, ...) { if (use.theta) { q <- exp(pi * (1i) * tau) jj.2 <- theta2(z = 0, q = q, ...) jj.3 <- theta3(z = 0, q = q, ...) jj.4 <- theta4(z = 0, q = q, ...) return((jj.2^8 + jj.3^8 + jj.4^8)^3/(jj.2 * jj.3 * jj.4)^8/54) } else { return(1/(1 - 27 * g3.fun(tau, ...)^2/g2.fun(tau, ...)^3)) } } "K.fun" <- function (m, strict = TRUE, maxiter = 7, miniter=3) { a.old <- 1 b.old <- sqrti(1 - m) for (i in 1:maxiter) { a.new <- 0.5 * (a.old + b.old) b.new <- sqrti(a.old * b.old) if (near.match(a.new, a.old) && i>miniter) { return(pi/(2 * a.new)) } a.old <- a.new b.old <- b.new } if (strict) { stop("iteration not stable") } else { warning("iteration not stable: partial result returned") return(pi/(2 * a.new)) } } "lambda" <- function (tau, ...) { q <- exp(pi * (1i) * tau) (theta2(z = 0, q = q, ...)/theta3(z = 0, q = q, ...))^4 } "latplot" <- function (p, n = 10, do.lines = TRUE, ...) { p1 <- p[1] p2 <- p[2] plot(lattice(p, n), xaxt = "n", yaxt = "n", bty = "n", pch = 16, ...) axis(1, pos = 0, lwd = 2) axis(2, pos = 0, lwd = 2) slope1 <- Im(p1)/Re(p1) slope2 <- Im(p2)/Re(p2) int1 <- Im(p2) - Re(p2) * (slope1) int2 <- Im(p1) - Re(p1) * (slope2) if (do.lines) { for (u in -n:n) { if (is.finite(slope1)) { abline(u * int1, slope1, col = "gray") } else { abline(v = u * Re(p2), col = "gray") } if (is.finite(slope2)) { abline(u * int2, slope2, col = "gray") } else { abline(v = u * Re(p1), col = "gray") } } } points(Re(p1), Im(p1), pch = 16, cex = 3, col = "red") points(Re(p2), Im(p2), pch = 16, cex = 3, col = "green") } "lattice" <- function (p, n) { outer(p[1] * (-n:n), p[2] * (-n:n), "+") } "lemniscatic" <- function (...) { omega1 <- gamma(1/4)^2/(4 * sqrt(pi)) omega2 <- (1i) * omega1 Omega <- c(omega1, omega2) e <- c(1/2, 0, -1/2) names(e) <- c("e1", "e2", "e3") jj <- pi/4/omega1 Eta <- c(jj, -jj * (1i), jj * (1i - 1)) out <- list(Omega = Omega, q = exp(pi * (1i) * omega2/omega1), e = e, g = c(g2 = 1, g3 = 0), Delta = 1, Eta = Eta, is.AnS = TRUE, given = "d") class(out) <- "parameters" return(out) } "limit" <- function (x, upper = quantile(Re(x), 0.99, na.rm = TRUE), lower = quantile(Re(x), 0.01, na.rm = TRUE), na = FALSE) { if (is.complex(x)) { return(Recall(Re(x), upper = upper, lower = lower, na = na) + (1i) * Recall(Im(x), upper = upper, lower = lower, na = na)) } if (na) { x[x < lower] <- NA x[x > upper] <- NA } else { x <- pmax(x, lower) x <- pmin(x, upper) } return(x) } "massage" <- function (z, tol = 1e-10) { if (length(z) == 1) { if (abs(Im(z)) < tol) { return(Re(z)) } else { if (abs(Re(z)) < tol) { return((1i) * Im(z)) } else { return(z) } } } Im(z[abs(Im(z)) < tol]) <- 0 Re(z[abs(Re(z)) < tol]) <- 0 if (all(Im(z) == 0)) { z <- Re(z) } return(z) } "mn" <- function (z, p) { p1 <- p[1] p2 <- p[2] m <- (Re(z) * Im(p2) - Im(z) * Re(p2))/(Re(p1) * Im(p2) - Im(p1) * Re(p2)) n <- (Re(z) * Im(p1) - Im(z) * Re(p1))/(Re(p2) * Im(p1) - Im(p2) * Re(p1)) cbind(m, n) } "mob" <- function (M, x) { (M[1] * x + M[3])/(M[2] * x + M[4]) } "%mob%" <- function (M, x) { mob(M, x) } "mobius" <- function (n) { if (length(n) > 1) { return(sapply(n, mobius)) } if (n == 1) { return(1) } jj <- table(factorize(n)) if (any(jj > 1)) { return(as.integer(0)) } else { return(as.integer((-1)^length(jj))) } } "myintegrate" <- function (f, lower, upper, ...) { f.real <- function(x, ...) { Re(f(x, ...)) } f.imag <- function(x, ...) { Im(f(x, ...)) } jj.1 <- integrate(f.real, lower = lower, upper = upper, ...) jj.2 <- integrate(f.imag, lower = lower, upper = upper, ...) jj.1$value + (1i) * jj.2$value } "nc" <- function (u, m, ...) { theta.n(u, m = m, ...)/theta.c(u, m = m, ...) } "nd" <- function (u, m, ...) { theta.n(u, m = m, ...)/theta.d(u, m = m, ...) } "near.match" <- function (x, y, tol = NULL) { if (is.null(tol)) { tol <- .Machine$double.eps * 2 } return(isTRUE(all.equal(x, y, tol = tol))) } "newton_raphson" <- function (initial, f, fdash, maxiter, give=TRUE, tol = .Machine$double.eps) { old.guess <- initial for (i in seq_len(maxiter)) { new.guess <- old.guess - f(old.guess)/fdash(old.guess) jj <- f(new.guess) if(is.na(jj) | is.infinite(jj)){ break } if (near.match(new.guess, old.guess) | abs(jj) < tol) { if(give){ return(list(root=new.guess, f.root=jj, iter=i)) } else { return(new.guess) } } old.guess <- new.guess } stop("did not converge") } "nn" <- function (u, m, ...) { theta.n(u, m = m, ...)/theta.n(u, m = m, ...) } "nome" <- function (m) { K <- K.fun(m) Kdash <- K.fun(1 - m) return((exp(-pi * Kdash/K))) } "nome.k" <- function (k) { K <- K.fun(m = sqrt(k)) Kdash <- K.fun(sqrt(1 - k^2)) return((exp(-pi * Kdash/K))) } "ns" <- function (u, m, ...) { theta.n(u, m = m, ...)/theta.s(u, m = m, ...) } "P" <- function (z, g = NULL, Omega = NULL, params = NULL, use.fpp = TRUE, give.all.3 = FALSE, ...) { if (is.null(params)) { params <- parameters(g = g, Omega = Omega) } if (use.fpp) { z <- fpp(z, p = 2 * params$Omega) } e <- params$e q <- params$q omega <- params$Omega[1] v <- pi * z/(2 * omega) out1 <- e[1] + pi^2/(4 * omega^2) * (theta1.dash.zero.q(q) * theta2(v, q = q, ...)/theta2(0, q = q, ...)/theta1(v, q = q, ...))^2 if (give.all.3) { out2 <- e[2] + pi^2/(4 * omega^2) * (theta1.dash.zero.q(q) * theta3(v, q = q, ...)/theta3(0, q = q, ...)/theta1(v, q = q, ...))^2 out3 <- e[3] + pi^2/(4 * omega^2) * (theta1.dash.zero.q(q) * theta4(v, q = q, ...)/theta4(0, q = q, ...)/theta1(v, q = q, ...))^2 return(drop(cbind(out1, out2, out3))) } else { attributes(out1) <- attributes(z) return(out1) } } "p1.tau" <- function (b) { if (length(b) == 2) { p1 <- b[1] tau <- b[2]/b[1] } else { if (identical(ncol(b), 2)) { p1 <- b[1, ] tau <- b[2, ]/b[1, ] } else { p1 <- 1 tau <- b } } if (any(Im(tau) < 0)) { warning("g2 and g3 not defined where Im(p2/p1)") } return(list(p1 = p1, tau = tau)) } "parameters" <- function (Omega = NULL, g = NULL, description = NULL) { jj <- c(!is.null(Omega), !is.null(g), !is.null(description)) if (sum(jj) != 1) { stop("function must be supplied with exactly one argument") } if (!is.null(description)) { return(switch(description, equianharmonic = equianharmonic(), lemniscatic = lemniscatic(), pseudolemniscatic = pseudolemniscatic(), )) } if (is.null(Omega)) { given <- "g" g2 <- g[1] g3 <- g[2] Omega <- half.periods(g = g) } else { given <- "o" if (!is.primitive(Omega)) { warning("Omega supplied not a primitive pair of half periods. Function converting Omega to a primitive pair ") Omega <- as.primitive(Omega) } g <- g.fun(Omega) g2 <- g[1] g3 <- g[2] } e <- e1e2e3(g, Omega = Omega) Delta <- g2^3 - 27 * g3^2 omega1 <- Omega[1] omega2 <- Omega[2] omega3 <- -omega1 - omega2 p1 <- 2 * omega1 p2 <- 2 * omega2 jj.q <- exp(pi * (1i) * omega2/omega1) eta1 <- -pi^2 * theta1dashdashdash(0, q = jj.q)/(12 * omega1 * theta1.dash.zero.q(q = jj.q)) eta2 <- omega2/omega1 * eta1 - pi * (1i)/(2 * omega1) eta3 <- -eta2 - eta1 Eta <- c(eta1, eta2, eta3) out <- list(Omega = Omega, q = exp(pi * (1i) * (omega2)/omega1), e = e, g = g, Delta = Delta, Eta = Eta, is.AnS = FALSE, given = given) class(out) <- "parameters" return(out) } "Pdash" <- function (z, g = NULL, Omega = NULL, params = NULL, use.fpp = TRUE, ...) { if (is.null(params)) { params <- parameters(g = g, Omega = Omega) } if (use.fpp) { z <- fpp(z, p = 2 * params$Omega) } q <- params$q omega <- params$Omega[1] v <- pi * z/(2 * omega) out <- -pi^3/(4 * omega^3) * theta2(v, q = q, ...) * theta3(v, q = q, ...) * theta4(v, q = q, ...) * theta1dash(0, q = q, ...)^3/(theta2(0, q = q, ...) * theta3(0, q = q, ...) * theta4(0, q = q, ...) * theta1(v, q = q, ...)^3) return(out) } "Pdash.laurent" <- function (z, g = NULL, nmax = 80) { g2 <- g[1] g3 <- g[2] ckn <- ck(g = c(g2, g3), n = nmax) psum <- z * 0 z.squared <- z * z zz <- z for (k in 2:nmax) { psum.new <- psum + zz * ckn[k] * (2 * k - 2) if (near.match(psum, psum.new) & ckn[k] > 0) { return(-2/z^3 + psum) } psum <- psum.new zz <- zz * z.squared } warning("series not converged. See p636 for radius of convergence") return(-2/z^3 + psum) } "P.laurent" <- function (z, g = NULL, tol = 0, nmax = 80) { g2 <- g[1] g3 <- g[2] ckn <- ck(g = c(g2, g3), n = nmax) psum <- z * 0 z.squared <- z * z zz <- z.squared for (k in 2:nmax) { psum.new <- psum + zz * ckn[k] if (near.match(psum, psum.new, tol = tol) & abs(ckn[k]) > 0) { return(1/z^2 + psum) } psum <- psum.new zz <- zz * z.squared } warning("series not converged; partial sum returned. See p636 for radius of convergence") return(1/z^2 + psum) } "P.pari" <- function (z, Omega, pari.fun = "ellwp", numerical = TRUE) { attr <- attributes(z) z <- as.vector(z) a <- cbind(z, Omega[1], Omega[2]) out <- NULL pari.complex <- function(x) { gsub("i", "*I", x) } for (i in seq_len(nrow(a))) { string <- paste("echo '", pari.fun, "([", pari.complex(2 * a[i, 2]), ",", pari.complex(2 * a[i, 3]), "],", pari.complex(a[i, 1]), ")' | gp -q") jj <- gsub(" ", "", sub("\\*I", "i", system(string, intern = TRUE))) if (numerical) { jj <- as.complex(jj) } out <- c(out, jj) } attributes(out) <- attr return(out) } "primes" <- function (n) { if ((M2 <- max(n)) <= 1) return(numeric(0)) x <- 1:M2 x[1] <- 0 p <- 1 M <- floor(sqrt(M2)) while ((p <- p + 1) <= M) if (x[p] != 0) x[seq(p^2, n, p)] <- 0 as.integer(x[x > 0]) } "pseudolemniscatic" <- function (...) { jj <- gamma(1/4)^2/(4 * sqrt(2 * pi)) Omega <- c(jj * (1 - (1i)), jj * (1 + (1i))) e <- c(1/2, 0, -1/2) * (1i) names(e) <- c("e1", "e2", "e3") jj <- pi/4/Omega[1] Eta <- c(jj, -jj * (1i), jj * (1i - 1)) out <- list(Omega = Omega, q = exp(pi * (1i) * Omega[2]/Omega[1]), e = e, g = c(g2 = -1, g3 = 0), Delta = 1, Eta = Eta, is.AnS = TRUE, given = "d") class(out) <- "parameters" return(out) } "residue" <- function(f, z0, r, O=z0, ...){ if(r <= abs(z0-O)){ warning("contour does not wrap round z0. Either increase r or move O closer to z0") } if(is.complex(r)){ warning('imaginary part of r discarded') r <- Re(r) } u <- function(x){O+r*exp(pi*2i*x)} # 0 <= x <= 1 udash <- function(x){r*pi*2i*exp(pi*2i*x)} integrate.contour(function(z,...){f(z,...)/(z-z0)},u,udash,...)/(pi*2i) } "Re<-" <- function (x, value) { if (is.complex(value)) { stop("RHS must be pure real") } return((1i) * Im(x) + value) } "sc" <- function (u, m, ...) { theta.s(u, m = m, ...)/theta.c(u, m = m, ...) } "sd" <- function (u, m, ...) { theta.s(u, m = m, ...)/theta.d(u, m = m, ...) } "sigma" <- function (z, g = NULL, Omega = NULL, params = NULL, use.theta = TRUE, ...) { if (is.null(params)) { params <- parameters(g = g, Omega = Omega) } Omega <- params$Omega Eta <- params$Eta if (use.theta) { o <- Omega[1] q <- exp(pi * (1i) * Omega[2]/Omega[1]) return(2 * o/pi * exp(Eta[1] * z^2/2/o) * theta1(pi * z/2/o, q = q, ...)/theta1dash(0, q = q, ...)) } jj <- fpp(z, 2 * Omega, give = TRUE) z <- jj$answer M <- jj$mn[, 1] N <- jj$mn[, 2] (-1)^(M + N + M * N) * Recall(z, params = params, use.theta = TRUE, ...) * exp((z + M * Omega[1] + N * Omega[2]) * (2 * M * Eta[1] + 2 * N * Eta[2])) } "sigmadash.laurent" <- function (z, g = NULL, nmax = 8, give.error = FALSE) { g2 <- g[1] g3 <- g[2] attr <- attributes(z) z <- as.vector(z) jj <- amn(nmax) if (give.error) { minor.diag <- row(jj) == 1:nmax & col(jj) == nmax:1 jj[!minor.diag] <- 0 } m <- col(jj) - 1 n <- row(jj) - 1 non.z <- as.vector(jj * (g2/2)^m * (2 * g3)^n/factorial(4 * m + 6 * n)) power.z <- as.vector(4 * m + 6 * n) out <- outer(z, power.z, "^") out <- sweep(out, 2, non.z, "*") if (give.error) { out <- apply(out, 1, function(x) { sum(abs(x)) }) } else { out <- apply(out, 1, sum) } attributes(out) <- attr return(out) } "sigma.laurent" <- function (z, g = NULL, nmax = 8, give.error = FALSE) { g2 <- g[1] g3 <- g[2] attr <- attributes(z) z <- as.vector(z) jj <- amn(nmax) if (give.error) { minor.diag <- row(jj) == 1:nmax & col(jj) == nmax:1 jj[!minor.diag] <- 0 } m <- col(jj) - 1 n <- row(jj) - 1 non.z <- as.vector(jj * (g2/2)^m * (2 * g3)^n/factorial(4 * m + 6 * n + 1)) power.z <- as.vector(4 * m + 6 * n + 1) out <- outer(z, power.z, "^") out <- sweep(out, 2, non.z, "*") if (give.error) { out <- apply(out, 1, function(x) { sum(abs(x)) }) } else { out <- apply(out, 1, sum) } attributes(out) <- attr return(out) } "sn" <- function (u, m, ...) { theta.s(u, m = m, ...)/theta.n(u, m = m, ...) } "sqrti" <- function (x) { if (is.complex(x)) { return(sqrt(x)) } if (any(x < 0)) { return(sqrt(x + 0i)) } else { return(sqrt(x)) } } "ss" <- function (u, m, ...) { 1 } "Theta" <- function (u, m, ...) { K <- K.fun(m) v <- pi * u/(2 * K) return(theta4(v, m = m, ...)) } "theta.00" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30, miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 1:maxiter) { out.new <- out + q^(n^2) * cos(2 * z * n) if (near.match(out, out.new) && n>miniter) { ans <- 1 + 2 * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta.01" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30, miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 1:maxiter) { out.new <- out + (-1)^n * q^(n^2) * cos(2 * z * n) if (near.match(out, out.new) && n>miniter) { ans <- 1 + 2 * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta1" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30, miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 0:maxiter) { out.new <- out + (-1)^n * q^(n * (n + 1)) * sin((2 * n + 1) * z) if (near.match(out, out.new)&& n>miniter) { ans <- 2 * q^(1/4) * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "Theta1" <- function (u, m, ...) { K <- K.fun(m) v <- pi * u/(2 * K) return(theta3(v, m = m, ...)) } "theta.10" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30, miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 0:maxiter) { out.new <- out + q^(n * (n + 1)) * cos((2 * n + 1) * z) if (near.match(out, out.new) && n>miniter) { ans <- 2 * q^(1/4) * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta.11" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30, miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 0:maxiter) { out.new <- out + (-1)^n * q^(n * (n + 1)) * sin((2 * n + 1) * z) if (near.match(out, out.new) && n>miniter) { ans <- 2 * q^(1/4) * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta1dash" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30, miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 0:maxiter) { out.new <- out + (-1)^n * q^(n * (n + 1)) * (2 * n + 1) * cos((2 * n + 1) * z) if (near.match(out, out.new) && n>miniter) { ans <- 2 * q^(1/4) * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta1dashdash" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30, miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 0:maxiter) { out.new <- out - (-1)^n * q^(n * (n + 1)) * (2 * n + 1)^2 * sin((2 * n + 1) * z) if (near.match(out, out.new) && n>miniter) { ans <- 2 * q^(1/4) * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta1dashdashdash" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30,miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 0:maxiter) { out.new <- out - (-1)^n * q^(n * (n + 1)) * (2 * n + 1)^3 * cos((2 * n + 1) * z) if (near.match(out, out.new) && n>miniter) { ans <- 2 * q^(1/4) * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta1.dash.zero" <- function (m, ...) { theta2(0, m = m, ...) * theta3(0, m = m, ...) * theta4(0, m = m, ...) } "theta1.dash.zero.q" <- function (q, ...) { theta2(0, q = q, ...) * theta3(0, q = q, ...) * theta4(0, q = q, ...) } "theta2" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30,miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 0:maxiter) { out.new <- out + q^(n * (n + 1)) * cos((2 * n + 1) * z) if (near.match(out, out.new) && n>miniter) { ans <- 2 * q^(1/4) * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta3" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30,miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 1:maxiter) { out.new <- out + q^(n^2) * cos(2 * z * n) if (near.match(out, out.new) && n>miniter) { ans <- 1 + 2 * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta4" <- function (z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30, miniter=3) { if (!xor(is.null(m), is.null(q))) { stop("supply exactly one of m, q") } if (is.null(q)) { q <- nome(m) } out <- 0 for (n in 1:maxiter) { out.new <- out + (-1)^n * q^(n^2) * cos(2 * z * n) if (near.match(out, out.new) && n>miniter) { ans <- 1 + 2 * out if (give.n) { return(list(iterations = n, ans = ans)) } else { return(ans) } } out <- out.new } stop("maximum iterations reached") } "theta.c" <- function (u, m, method = "16.36.6", ...) { switch(method, "16.36.6" = e16.36.6b(u, m, ...), "16.36.6b" = e16.36.6b(u, m, ...), "16.36.1b" = e16.36.6b(u, m, ...), "16.37.2" = e16.37.2(u, m, ...), "16.38.2" = e16.38.2(u, m, ...), stop("method not recognized")) } "theta.d" <- function (u, m, method = "16.36.7", ...) { switch(method, "16.36.7" = e16.36.7a(u, m, ...), "16.36.7a" = e16.36.7a(u, m, ...), "16.36.2a" = e16.36.7a(u, m, ...), "16.37.3" = e16.37.3(u, m, ...), "16.38.3" = e16.38.3(u, m, ...), stop("method not recognized")) } "theta.n" <- function (u, m, method = "16.36.7", ...) { switch(method, "16.36.7" = e16.36.7b(u, m, ...), "16.36.7b" = e16.36.7b(u, m, ...), "16.36.2b" = e16.36.7b(u, m, ...), "16.37.4" = e16.37.4(u, m, ...), "16.38.4" = e16.38.4(u, m, ...), stop("method not recognized")) } "theta.s" <- function (u, m, method = "16.36.6", ...) { switch(method, "16.36.6" = e16.36.6a(u, m, ...), "16.36.6a" = e16.36.6a(u, m, ...), "16.36.1a" = e16.36.6a(u, m, ...), "16.37.1" = e16.37.1(u, m, ...), "16.38.1" = e16.38.1(u, m, ...), stop("method not recognized")) } "totient" <- function (n) { if (length(n) > 1) { return(sapply(n, match.fun(sys.call()[[1]]))) } as.integer(n * prod(1 - 1/unique(factorize(n)))) } "unimodular" <- function (n) { if (n == 1) { return(array(diag(2), c(2, 2, 1))) } out <- do.call("cbind", sapply(0:n, farey)) out <- unique(out, MARGIN = 2) dim(out) <- c(2, 2, length(out)/4) return(out[2:1, , ]) } "unimodularity" <- function (n, o, FUN, ...) { u <- unimodular(n) N <- dim(u)[3] out <- rep(0, N) for (i in 1:N) { out[i] <- FUN(drop(u[, , i] %*% o), ...) } return(out) } "view" <- function (x, y, z, scheme = 0, real.contour = TRUE, imag.contour = real.contour, default = 0, col = "black", r0 = 1, power = 1, show.scheme = FALSE, ...) { if (is.numeric(scheme)) { f <- switch(as.character(scheme), "0" = function(z) { u <- 2/pi * atan(Mod(z)/r0) s0 <- Re(u * 0 + 1) s0[u > 0.5] <- (2 * (1 - u[u > 0.5]))^power v0 <- Re(u * 0 + 1) v0[u < 0.5] <- (2 * u[u < 0.5])^power return(hsv(h = scale(Arg(z)), s = s0, v = v0)) }, "1" = function(z) { hsv(h = scale(Arg(z)), s = scale(Im(z)), v = 1) }, "2" = function(z) { hsv(h = g(Arg(z)), s = scale(abs(z)), v = 1) }, "3" = function(z) { hsv(h = scale(Re(z)), s = 1, v = scale(Mod(z))^power) }, "4" = function(z) { hsv(h = 0.4, s = 1, v = scale(Arg(z))^power) }, "5" = function(z) { hsv(h = 0.4, s = 0, v = 0.5 + 0.5 * (Im(z) > 0)) }, "6" = function(z) { hsv(h = 0.4, s = 1, v = 0.5 + 0.5 * (Im(z) > 0)) }, "7" = function(z) { hsv(h = scale(Re(z))^power, s = 1, v = scale(Mod(z))^power) }, "8" = function(z) { hsv(h = wrap(Arg(z))) }, "9" = function(z) { hsv(h = wrap(Arg(z)), v = scale(Mod(z))^power) }, "10" = function(z) { hsv(h = wrap(Arg(z)), v = scale(exp(-Mod(z)))) }, "11" = function(z) { hsv(h = wrap(Arg(z)), s = scale(Mod(z))^power) }, "12" = function(z) { hsv(h = wrap(Arg(z)), s = scale(exp(-Mod(z)))) }, "13" = function(z) { hsv(h = 0.3, s = 1, v = (floor(Re(z)) + floor(Im(z)))%%2) }, "14" = function(z) { hsv(h = wrap(Arg(z)), s = 1, v = (floor(Re(z)) + floor(Im(z)))%%2) }, "15" = function(z) { hsv(h = wrap(Arg(z)), s = 1, v = 0.4 + 0.4 * (floor(Re(z)) + floor(Im(z)))%%2) }, "16" = function(z) { hcl(h = 360 * wrap(Arg(z)), l = 100 * scale(Mod(z))^power) }, "17" = function(z) { hcl(h = 360 * wrap(Arg(z)), c = 100 * scale(Mod(z))^power) }, "18" = function(z) { rgb(red = scale(Re(z)), green = 1 - scale(Re(z))^power, blue = scale(Im(z))^power) }, "19" = function(z) { rgb(red = scale(Re(z)), green = scale(Im(z))^power, blue = 0) }, function(z) { hsv(s = 0, v = 1) }) } else { f <- scheme environment(f) <- environment() } if (show.scheme) { return(f) } jj <- z jj[] <- seq_along(z)/length(z) jj <- Re(jj) breakup <- function(x) { ifelse(x > 1/2, 3/2 - x, 1/2 - x) } g <- function(x) { 0.5 + atan(x)/pi } scale <- function(x) { (x - min(x))/(max(x) - min(x)) } wrap <- function(x) { 1/2 + x/(2 * pi) } if (!is.na(default)) { z[is.na(z)] <- default z[is.infinite(z)] <- default } suppressWarnings(image(x, y, z = jj, col = f(z), asp = 1, ...)) if (real.contour) { suppressWarnings(contour(x, y, Re(z), add = TRUE, lty = 1, col = col, ...)) } if (imag.contour) { suppressWarnings(contour(x, y, Im(z), add = TRUE, lty = 2, col = col, ...)) } } "zeta" <- function (z, g = NULL, Omega = NULL, params = NULL, use.fpp = TRUE, ...) { if (is.null(params)) { params <- parameters(g = g, Omega = Omega) } Omega <- params$Omega Eta <- params$Eta if (use.fpp) { jj <- fpp(z, 2 * Omega, give = TRUE) z <- jj$answer M <- jj$mn[, 1] N <- jj$mn[, 2] return(Recall(z, params = params, use.fpp = FALSE, ...) + 2 * M * Eta[1] + 2 * N * Eta[2]) } else { o <- Omega[1] q <- exp(pi * (1i) * Omega[2]/Omega[1]) jj <- pi * z/(2 * o) return(z * Eta[1]/o + pi * theta1dash(jj, q = q, ...)/(2 * o * theta1(jj, q = q, ...))) } } "zeta.laurent" <- function (z, g = NULL, nmax = 80) { g2 <- g[1] g3 <- g[2] ckn <- ck(g = c(g2, g3), n = nmax) psum <- z * 0 z.squared <- z * z zz <- z * z.squared for (k in 2:nmax) { psum.new <- psum + zz * ckn[k]/(2 * k - 1) if (near.match(psum, psum.new) & abs(ckn[k]) > 0) { return(1/z - psum) } psum <- psum.new zz <- zz * z.squared } warning("series not converged. See p636 for radius of convergence") return(1/z - psum) } # Following code for sigma1 sigma2 and sigma3 commented out # because output does not agree with Mathematica. I'll investigate # before adding them to the package. rksh. #sigma1 <- function(u,params){ # o1 <- params$Omega[1] # eta1 <- params$Eta[1] #exp(-eta1*u)* # sigma(o1+u,params=params)/ # sigma(o1,params=params) #} # #sigma2 <- function(u,params){ # o2 <- -sum(params$Omega) # eta2 <- params$Eta[3] #exp(-eta2*u)* # sigma(o2+u,params=params)/ # sigma(o2,params=params) #} # #sigma3 <- function(u,params){ # o3 <- params$Omega[2] # eta3 <- params$Eta[2] # exp(-eta3*u)* # sigma(o3+u,params=params)/ # sigma(o3,params=params) #} # # elliptic/demo/0000755000176200001440000000000015104404043012776 5ustar liggesuserselliptic/demo/00Index0000644000176200001440000000005715104404043014132 0ustar liggesuserselliptic Some demos for the elliptic package elliptic/demo/elliptic.R0000644000176200001440000000470215104404043014731 0ustar liggesusers# Following plots and demos illustrate various functionality from the package. # Some of the parameters have been altered in the interest of speed. # Change 'n' to higher values to see higher resolution plots. n <- 200 # Change 'val' to see the functions evaluated over a larger complex area val <- 4 # Change 'no.of.schemes' to see more schemes used no.of.schemes <- 3 # Change 'fact' to adjust the factor used for the upper-half-plane functions fact <- 3 # Remember the settings: opar <- par(ask = dev.interactive(orNone = TRUE)) # Define a complex grid: x <- seq(from = -val, to=val, len=n) y <- x z <- outer(x,1i*x,"+") # Now a grid for the upper half-plane functions: xupper <- x/fact yupper <- (y+val+val/n)/fact zupper <- outer(xupper,1i*yupper,"+") # A little wrapper for view(): f <- function(...){ view(... , axes=FALSE,xlab="",ylab="") jj <- c(-val,-val/2,0,val/2,val) axis(1,pos=-val,at=jj) axis(2,pos=-val,at=jj) } # A wrapper for view() for the upper half-plane functions: fupper <- function(...){ view(... , axes=FALSE,xlab="",ylab="") jj <- c(-val,val)/fact jj2 <- c(0,val*2)/fact axis(1,pos=0,at=pretty(jj)) axis(2,pos=-val/fact,at=pretty(jj2)) } # Tiny function for the title: fish <- function(string,i){ paste(string, ". scheme=", as.character(i),"; try increasing n",sep="") } # Wrapper to run view() a few times with differing args: jj <- function(fz,string){ for(i in sample(19,no.of.schemes)){ f(x,y,fz,scheme=i,real=FALSE,main=fish(string,i)) } f(x,y,fz,scheme=-1,real=TRUE,imag=FALSE,nlevels=33,drawlabels=FALSE,main=fish(string,-1)) f(x,y,fz,scheme=-1,real=TRUE,nlevels=33,drawlabels=FALSE,main=fish(string,-1)) } # Corresponding wrapper for the upper half plane functions: kk <- function(fz,string){ for(i in sample(19,no.of.schemes)){ fupper(xupper,yupper,fz,scheme=i,real=FALSE,main=fish(string,i)) } fupper(xupper,yupper,fz,scheme=-1,real=TRUE,imag=FALSE, nlevels=33,drawlabels=FALSE,main=fish(string,-1)) fupper(xupper,yupper,fz,scheme=-1,real=TRUE,imag=TRUE, nlevels=33,drawlabels=FALSE,main=fish(string,-1)) } # Now run everything; jj() and kk() take some time to complete: jj(fz=limit(sn(z,m=1/2+0.6i)),"sn(z)") jj(fz=limit(P(z,c(1+2.1i,1.3-3.2i))),"P(z)") jj(fz=limit(zeta(z,c(1+1i,2-3i))),"zeta(z)") jj(fz=limit(sigma(z,c(10+11i,20-31i))),"sigma(z)") kk(fz=limit(J(zupper,maxiter=100)),"J(z)") kk(fz=limit(lambda(zupper,maxiter=100)),"lambda(z)") # reset old settings: par(opar) elliptic/vignettes/0000755000176200001440000000000015104404110014055 5ustar liggesuserselliptic/vignettes/elliptic.bib0000644000176200001440000001442415104404043016352 0ustar liggesusers@Article{kotus2003, author = {J. Kotus and M. Urba\'{n}ski}, title = {Hausdorff {D}imension and {H}ausdorff {M}easures of {J}ulia sets of elliptic functions}, journal = {Bulletin of the London Mathematical Society}, year = {2003}, volume = {35}, pages = {269--275}} @Article{erdos2000, author = {P. Erd\"{o}s}, title = {Spiraling the {E}arth with {C}. {G}. {J}. {J}acobi}, journal = {American Journal of Physics}, year = {2000}, volume = {68}, number = {10}, pages = {888--895}} @Article{carlson2004, author = {B. C. Carlson}, title = {Symmetry in c, d, n of {J}acobian Elliptic Functions}, journal = {Journal of Mathematical Analysis and Applications}, year = {2004}, volume = {299}, pages = {242--253}} @Article{vyrdis1999, author = {D. G. Vyrdis and S. D. Panteliou and I. N. Katz}, title = {An Inverse Convergence Approach for Arguments of {J}acobian Elliptic Functions}, journal = {Computers and Mathematics with Applications}, year = {1999}, volume = {37}, pages = {21--26}} @Article{paszkowski1997, author = {S. Paszkowski}, title = {Fast Convergent Quasipower Series for Some Elementary and Special Functions}, journal = {Computers and Mathematics with Applications}, year = {1997}, volume = {33}, number = {1/2}, pages = {181--191}} @Article{chow2002, author = {K. W. Chow}, title = {A Class of Doubly Periodic Waves for Nonlinear Evolution Equations}, journal = {Wave Motion}, year = {2002}, volume = {35}, pages = {71--90}} @Book{whittaker1952, author = {E. T. Whittaker and G. N. Watson}, title = {A Course of Modern Analysis}, publisher = {Cambridge University Press}, year = {1952}, edition = {Fourth}} @Book{chandrasekharan1985, author = {K. Chandrasekharan}, title = {Elliptic Functions}, publisher = {Springer-Verlag}, year = {1985}} @Article{koopman1991, author = {D. C. Koopman and H. H. Lee}, title = {Second-Order Reversible Reactions and Diffusion in a Slab-Like Medium: an Application of the {W}eierstrass Elliptic Pe Function}, journal = {Chemical Engineering Science}, year = {1991}, volume = {46}, number = {4}, pages = {1165--1177}} @Article{johnson2004, author = {E. R. Johnson and {McDonald}, N. Robb}, title = {The Motion of a Vortex Near Two Circular Cylinders}, journal = {Proceedings of the Royal Society of London A}, year = {2004}, volume = {460}, pages = {939--954}} @Article{johnson2005, author = {E. R. Johnson and {McDonald}, N. Robb}, title = {Vortices Near Barriers With Multiple Gaps}, journal = {Journal of Fluid Mechanics}, year = {2005}, volume = {531}, pages = {335--358}} @Article{kraniotis2002, author = {G. V. Kraniotis and S. B. Whitehouse}, title = {General Relativity, the Cosmological Constant and Modular Forms}, journal = {Classical and Quantum Gravity}, year = {2002}, volume = {19}, pages = {5073--5100}} @Book{abramowitz1965, author = {M. Abramowitz and I. A. Stegun}, title = {Handbook of Mathematical Functions}, publisher = {New York: Dover}, year = {1965}} @Misc{batut2000, author = {C. Batut and others}, title = {User's guide to \proglang{PARI}/\proglang{GP}}, howpublished = {Technical reference manual}, year = {2000}, url = "http://www.parigp-home.de/" } @Book{milne1949, author = {L. M. Milne-Thomson}, title = {Theoretical Hydrodynamics}, publisher = {Macmillan}, year = {1949}, edition = {Second}} @Article{thaller1998, author = {B. Thaller}, title = {Visualization of Complex Functions}, journal = {The Mathematica Journal}, year = {1998}, volume = {7}, number = {2}, pages = {163--180}} @Book{feynman1966, author = {R. P. Feynman and R. B. Leighton and M. Sands}, title = {The {F}eynman Lectures on Physics}, publisher = {Addison Wesley}, year = {1966}, volume = {1}} @Misc{weisstein2005, author = {E. W. Weisstein}, title = {Jacobi Elliptic Functions}, year = {2005}, note = {from {M}athworld--a {W}olfram web resource; \code{http://mathworld.wolfram.com/JacobiEllipticFunctions.html}}} @Article{kennedy2001, author = {M. C. Kennedy and A. O'Hagan}, title = {Bayesian Calibration of Computer Models}, journal = {Journal of the Royal Statistical Society B}, year = {2001}, volume = {63}, number = {3}, pages = {425--464}} @TechReport{kennedy2001a, author = {M. C. Kennedy and A. O'Hagan}, title = {Supplementary Details on Bayesian Calibration of Computer Models}, institution = {University of Sheffield}, year = {2001}, url = "http://www.shef.ac.uk/~st1ao/ps/calsup.ps" } @Article{hankin2005, author = {R. K. S. Hankin}, title = {Introducing {B}{A}{C}{C}{O}, an \proglang{R} package for Bayesian Analysis of Computer Code Output}, journal = {Journal of Statistical Software}, year = {2005}, volume = {14}, number = {16}, month = {October} } @Book{edwards1992, author = {A. W. F. Edwards}, title = {Likelihood (Expanded Edition)}, publisher = {Johns Hopkins}, year = {1992} } @Manual{rcore2005, title = {\proglang{R}: A language and environment for statistical computing}, author = {{\proglang{R} Development Core Team}}, organization = {\proglang{R} Foundation for Statistical Computing}, address = {Vienna, Austria}, year = {2005}, note = {{ISBN} 3-900051-07-0}, url = {http://www.R-project.org}, } @Article{buhring1987, author = {W. Buhring}, title = {An analytic continuation of the hypergeometric series}, journal = {Siam J. Math. Anal.}, year = {1987}, volume = {18}, number = {3}, pages = {884-889} } @Article{hankin2006, title = {Introducing \pkg{elliptic}, an \proglang{R} package for elliptic and modular functions}, author = {Robin K. S. Hankin}, journal = {Journal of Statistical Software}, year = {2006}, month = {February}, volume = {15}, issue = {7} } @Article{hankin2015, title = {Numerical evaluation of the Gauss hypergeometric function with the \pkg{hypergeo} package}, author = {Robin K. S. Hankin}, journal = {The \proglang{R} journal}, year = {2015}, volume = {7}, issue = {2}, pages = {81--88} } elliptic/vignettes/residuetheorem.Rnw0000644000176200001440000002246415104404043017606 0ustar liggesusers% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- \documentclass[nojss]{jss} \usepackage{dsfont} \usepackage{bbm} \usepackage{amsfonts} \usepackage{amsmath} \usepackage{amssymb} \usepackage{wasysym} \usepackage{wrapfig} \usepackage{tikz} \usetikzlibrary{calc,decorations.markings} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% just as usual \author{Robin K. S. Hankin} \title{Cauchy's integral theorem: a numerical perspective} %\VignetteIndexEntry{The residue theorem from a numerical perspective} %% for pretty printing and a nice hypersummary also set: %% \Plainauthor{Achim Zeileis, Second Author} %% comma-separated \Plaintitle{The residue theorem from a numerical perspective} %% for pretty printing and a nice hypersummary also set: \Plainauthor{Robin K. S. Hankin} %% an abstract and keywords \Abstract{Here I use the {\tt myintegrate()} function of the \pkg{elliptic} package to illustrate three classical theorems from analysis: Cauchy's integral theorem, the residue theorem, and Cauchy's integral formula. In all cases, numerical values agree with analytical results to within numerical precision. Some further work is suggested. } \Keywords{Residue theorem, Cauchy formula, Cauchy's integral formula, contour integration, complex integration, Cauchy's theorem} \Keywords{Elliptic functions, residue theorem, numerical integration, \proglang{R}} \Plainkeywords{Elliptic functions, residue theorem, numerical integration, R} %% publication information %% NOTE: This needs to filled out ONLY IF THE PAPER WAS ACCEPTED. %% If it was not (yet) accepted, leave them commented. \Volume{0} \Issue{0} % \Month{MONTH} \Year{0000} \Submitdate{0000-00-00} \Acceptdate{0000-00-00} %% \Repository{https://github.com/RobinHankin/elliptic} %% The address of (at least) one author should be given %% in the following format: \Address{ Robin K. S. Hankin\\ University of Stirling\\ Scotland\\ email: \email{hankin.robin@gmail.com} } %% It is also possible to add a telephone and fax number %% before the e-mail in the following format: %% Telephone: +43/1/31336-5053 %% Fax: +43/1/31336-734 %% for those who use Sweave please include the following line (with % symbols): %% need no \usepackage{Sweave.sty} %% end of declarations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} <>= require(elliptic,quietly=TRUE) @ \setlength{\intextsep}{0pt} \begin{wrapfigure}{r}{0.2\textwidth} \begin{center} \includegraphics[width=1in]{\Sexpr{system.file("help/figures/elliptic.png",package="elliptic")}} \end{center} \end{wrapfigure} \section{Introduction} Cauchy's integral theorem and its corollaries are some of the most startling and fruitful ideas in the whole of mathematics. They place powerful constraints on analytical functions; and show that a function's local behaviour dictates its global properties. Cauchy's integral theorem may be used to prove the residue theorem and Cauchy's integral formula; these three theorems form a powerful and cohesive suite of results. In this short document I use numerical methods to illustrate and highlight some of their consequences for complex analysis. \subsection{Cauchy's integral theorem} Augustin-Louis Cauchy proved an early version of the integral theorem in 1814; it required that the function's derivative was continuous. This assumption was removed in 1900 by \'Edouard Goursat at the expense of a more difficult proof; the result is sometimes known as the Cauchy-Goursat theorem and is now a cornerstone of complex analysis. Formally, in modern notation, we have: \noindent {\bf Cauchy's integral theorem}. If $f(z)$ is holomorphic in a simply connected domain $\Omega\subset\mathbb{C}$, then for any closed contour $C$ in $\Omega$, $$\int_{C}f(z)\,dz=0.$$ \\ To demonstrate this theorem numerically, I will use the integration suite of functions provided with the \pkg{elliptic} package which perform complex integration of a function along a path specified either as a sequence of segments [{\tt integrate.segments()}] or a curve [{\tt integrate.contour()}]. Let us consider $f(z)=\exp z$, holomorphic over all of $\mathbb{C}$, and evaluate $$\oint_C f(z)\,dz$$ where $C$ is the square $0\longrightarrow 1\longrightarrow 1+i\longrightarrow i\longrightarrow 0$ (figure~\ref{square}). Numerically: \begin{figure}\centering \begin{tikzpicture} % Axes \draw [help lines,->] (-1, 0) -- (2, 0); \draw [help lines,->] ( 0, -1) -- (0, 2); % Red path \begin{scope}[very thick,decoration={ markings, mark=at position 0.5 with {\arrow{>}}} ] \draw[red,postaction={decorate}] (0,0)--(1,0) node[black, midway, below]{\tiny A}; \draw[red,postaction={decorate}] (1,0)--(1,1) node[black, midway, right]{\tiny B}; \draw[red,postaction={decorate}] (1,1)--(0,1) node[black, midway, above]{\tiny C}; \draw[red,postaction={decorate}] (0,1)--(0,0) node[black, midway, left]{\tiny D}; \end{scope} % The labels \node at ( 1.70, -0.2){$x$ }; \node at (-0.24, 1.7){$iy$}; \end{tikzpicture} \caption{A square contour integral \label{square} on the complex plane} \end{figure} <<>>= integrate.segments(exp, c(0, 1, 1+1i, 1i), close=TRUE) @ Above we see that the result is zero (to within numerical precision), in agreement with the integral theorem. It is interesting to consider each leg separately. We have $$ A=e-1\qquad B=e(e^i-1)\qquad C=-e^i(e-1)\qquad D=-(e^i-1) $$ And taking B as an example: <<>>= analytic <- exp(1)*(exp(1i)-1) numeric <- integrate.segments(exp, c(1, 1+1i), close=FALSE) c(analytic=analytic, numeric=numeric, difference=analytic-numeric) @ showing agreement to within numerical precision. \subsection{The residue theorem} {\bf residue theorem}. Given $U$, a simply connected open subset of $\mathbb{C}$, and a finite list of points $a_1,\ldots,a_n$. Suppose $f(z)$ is holomorphic on $U_0=U\setminus\left\lbrace a_1,\ldots a_n\right\rbrace$ and $\gamma$ is a closed rectifiable curve in $U_0$. Then $$\oint_\gamma f(z)\,dz = 2\pi i\sum_{k=1}^n \operatorname{I}(\gamma,a_k)\cdot\operatorname{Res}(f,a_k)$$ where $\operatorname{I}(\gamma,a_k)$ is the winding number of $\gamma$ about $a_k$ and $\operatorname{Res}(f,a_k)$ is the residue of $f$ at $a_k$. \\ The canonical, and simplest, application of this is to derive the log function by integrating $f(z)=1/z$ along the unit circle, as per figure \ref{circular}. Here the residue at the origin is 1, so the integral round the unit circle is, analytically, $2\pi i$. Numerically: <<>>= u <- function(x){exp(pi*2i*x)} udash <- function(x){pi*2i * exp(pi*2i*x)} analytic <- pi*2i numeric <- integrate.contour(function(z){1/z}, u, udash) c(analytic=analytic, numeric=numeric, difference=analytic-numeric) @ \begin{figure}\centering \begin{tikzpicture} % Axes \draw [help lines,->] (-2, 0) -- (2, 0); \draw [help lines,->] ( 0, -2) -- (0, 2); % Red path \draw [ decoration = {markings, mark = at position 0 with {\arrow{>}}}, postaction = {decorate}, very thick, red] (0,0) circle (1cm); % The labels \node at ( 1.70, -0.2){$x$ }; \node at (-0.24, 1.7){$iy$}; \end{tikzpicture} \caption{A circular contour integral \label{circular} on the complex plane} \end{figure} again we see very close agreement. \subsection{Cauchy's integral formula} {\bf Cauchy's integral formula}. If $f(z)$ is analytic within and on a simple closed curve $C$ (assumed to be oriented anticlockwise) inside a simply-connected domain, and if $z_0$ is any point inside $C$, then $$f(z_0)=\frac{1}{2\pi i}\int_C\frac{f(z)\,dz}{z-z_0}.$$ We may use this to evaluate the Gauss hypergeometric function at a critical point. The Gauss hypergeometric function ${}_2F_1(a,b;c;z)$ is defined as $$1+\frac{ab}{c}\frac{z}{1!} + \frac{a(a+1)b(b+1)}{c(c+1)}\frac{z^2}{2!}+\cdots$$ Now, this series has a radius of convergence of 1~\citep{abramowitz1965}; but the function is defined over the whole complex plane by analytic continuation~\citep{buhring1987}. The \pkg{hypergeo} package~\citep{hankin2015} evaluates ${}_2F_1(a,b;c;z)$ for different values of $z$ by applying a sequence of transformations to reduce $\left|z\right|$ to its minimum value; however, this process is ineffective for $z=\frac{1}{2}\pm i\sqrt{3}/2$, these points transforming to themselves. Numerically: <>= library("hypergeo") z0 <- 1/2 + sqrt(3)/2i f <- function(z){hypergeo_powerseries(1/2, 1/3, 1/5, z)} f(z0) @ Above we see {\tt NA}, signifying failure to converge. However, the residue theorem may be used to evaluate ${}_2F_1$ at this point: <<>>= r <- 0.1 # radius of contour u <- function(x){z0 + r*exp(pi * 2i * x)} udash <- function(x){r * pi * (0+2i) * exp(pi * 2i * x)} (val_residue <- integrate.contour(function(z){f(z) / (z-z0)}, u, udash) / (pi*2i)) @ We can compare this value with that obtained by a more sophisticated [and computationally expensive] method, that of Gosper~\citep{hankin2015}: <<>>= (val_gosper <- hypergeo_gosper(1/2, 1/3, 1/5, z0)) abs(val_gosper - val_residue) @ Above we see reasonable numerical agreement. \section{Conclusions} The \pkg{elliptic} package includes a suite of functionality for complex integration using numerical methods and these are used to demonstrate Cauchy's integral theorem, the residue theorem, and Cauchy's integral formula. Numerical errors are generally small. \bibliography{elliptic} \end{document} elliptic/vignettes/elliptic.Rnw0000644000176200001440000014034015104404043016361 0ustar liggesusers\documentclass[nojss]{jss} \usepackage{dsfont} \usepackage{bbm} \usepackage{amsfonts} \usepackage{wasysym} \usepackage{wrapfig2} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% just as usual \author{Robin K. S. Hankin} \title{Introducing \pkg{elliptic}, an \proglang{R} package for elliptic and modular functions} %\VignetteIndexEntry{A vignette for the elliptic package} %% for pretty printing and a nice hypersummary also set: %% \Plainauthor{Achim Zeileis, Second Author} %% comma-separated \Plaintitle{Introducing elliptic, an R package for elliptic and modular functions} \Shorttitle{Elliptic functions with \proglang{R}} %% an abstract and keywords \Abstract{ To cite the package in publications, use \citet{hankin2006}. This paper introduces the \pkg{elliptic} package of \proglang{R} routines, for numerical calculation of elliptic and related functions. Elliptic functions furnish interesting and instructive examples of many ideas of complex analysis, and package \pkg{elliptic} illustrates these numerically and visually. A statistical application in fluid mechanics is presented. } \Keywords{Elliptic functions, modular functions, Weierstrass elliptic functions, visualization of complex functions} \Address{ Robin K. S. Hankin\\ The University of Stirling\\ E-mail: \email{hankin.robin@gmail.com} } %% need no \usepackage{Sweave.sty} \SweaveOpts{echo=FALSE} \begin{document} <>= require(elliptic,quietly=TRUE) @ <>= n <- 400 n_BACCO <- 40 @ \section{Introduction} \begin{wrapfigure}{r}{30mm} \includegraphics[width=1in]{\Sexpr{system.file("help/figures/elliptic.png",package="elliptic")}} \end{wrapfigure} % The elliptic functions crop up here and there in diverse areas of applied mathematics such as cosmology~\citep{kraniotis2002}, chemical engineering~\citep{koopman1991}, dynamical systems~\citep{kotus2003}, and quantum mechanics~\citep{chow2002}; here they are applied to fluid mechanics~\citep{johnson2004,johnson2005}. They also provide interesting and instructive non-elementary examples of many results in complex analysis such as Cauchy's integral theorem and the residue theorem. In this paper I introduce \pkg{elliptic}, a new \proglang{R} package for numerical calculation of Weierstrass and Jacobi elliptic functions, theta functions and modular functions; it is based on~\citet{hankin2006}. The emphasis is on efficient numerical calculation, and informative visualization techniques. The package is available on CRAN, \url{https://CRAN.R-project.org/package=elliptic} \citep{rcore2005}. \section{Elliptic functions}\label{section:introduction} This section gives a very brief introduction to elliptic functions. For more detail and rigorous derivations, the reader is referred to the classic literature: the standard reference would be~\cite{whittaker1952}. \cite{chandrasekharan1985} approaches the field from a more modern perspective, and \cite{abramowitz1965} provide the definitive reference work for the case of real invariants. A meromorphic function~$f$ is said to be elliptic if~$\exists\,\omega_1,\omega_2\in\mathbbm{C}$ with~$\omega_2/\omega_1\in\mathbbm{C}\backslash\mathbbm{R}$ such that \begin{equation} f(z)=f(z+2m\omega_1+2n\omega_2) \end{equation} whenever~$f(z)$ is defined and~$m,n\in\mathbbm{Z}$. Notation in this paper is consistent with that of~\citet{abramowitz1965}; $\omega_1$ and~$\omega_2$ are called the {\em half periods}. In 1862, Weierstrass introduced his~$\wp$ function which is defined as \begin{equation}\label{direct.sum} \wp(z)= \frac{1}{z^2}+ \sum_{m,n\in\mathbbm{Z}\atop m,n\neq 0} \left\{ \frac{1}{\left(z-2m\omega_1-2n\omega_2\right)^2} -\frac{1}{\left( 2m\omega_1+2n\omega_2\right)^2} \right\}. \end{equation} The~$\wp$ function is, in a well defined sense, the simplest nontrivial elliptic function~\citep{whittaker1952}. Given this, we have a Laurent expansion of the form \begin{equation} \wp(z)-z^{-2}=\frac{1}{20}g_2z^2+\frac{1}{28}g_3z^4+O(z^6) \end{equation} with \begin{equation} g_2=60{\sum}'\frac{1}{\left(2m\omega_1+2n\omega_2\right)^4}, \qquad g_3=140{\sum}'\frac{1}{\left(2m\omega_1+2n\omega_2\right)^6}, \end{equation} where a prime indicates summation over~$\mathbbm{Z}^2$ excluding~$(m,n)=(0,0)$. For reasons to be made clear in section~\ref{section.unimodularity}, $g_2$ and~$g_3$ are known as the {\em invariants}. Other equivalent forms for~$\wp$ include its differential equation \begin{equation}\label{P.differential.eqn.definition} \left(\frac{d\wp}{dz}\right)^2=4\wp^3-g_2\wp-g_3 \end{equation} and the relation \begin{equation}\label{P.integral.definition} z=\int_{t=w}^\infty\frac{dt}{\sqrt{4t^3-g_2t-g_3}} \end{equation} which is equivalent to~$w=\wp(z)$. Related functions include the zeta function~$\zeta(z)$, defined by \begin{equation}\label{zeta.definition} \frac{d\zeta(z)}{dz}=-\wp(z) \end{equation} and the sigma function~$\sigma(z)$, defined by \begin{equation}\label{sigma.definition} \frac{d\log\sigma(z)}{dz}=\zeta(z),\qquad{\lim_{\mbox{\tiny $z\longrightarrow 0$}}}\left[\frac{\sigma(z)}{z}\right]=1 \end{equation} (neither~$\sigma(z)$ nor~$\zeta(z)$ is elliptic). It may be shown\label{zeta.analytic} that~$\zeta(z)$ is analytic except for points on the lattice of periods, at which it has simple poles with residue~1. One classic result is due to Legendre: if~$\omega_1,\omega_2$ is a pair of basic periods\footnote{A pair of basic periods is one that generates the period lattice. Basic periods are not unique as many pairs of periods may generate the same lattice. However, there is one pair of basic periods, the {\em fundamental} periods that are, in a well-defined sense, optimal~\citep{chandrasekharan1985}.}, with~$\rm{Im}(\omega_2/\omega_1)>0$, then \begin{equation} \eta_1\omega_2-\eta_2\omega_1=\pi i\label{legendre} \end{equation} where~$\eta_1=\zeta(\omega_1)$ and~$\eta_2=\zeta(\omega_2)$. \subsection{Jacobian elliptic functions} Jacobi approached the description of elliptic functions from a different perspective~\citep{weisstein2005}. Given~$m=k^2$ and~$m_1$ with~$m+m_1=1$, Jacobi showed that if \[ u=\int_{t=0}^\phi\frac{dt}{\sqrt{(1-t^2)(1-mt^2)}} \] the functions~${\rm sn}(u,k)$, ${\rm cn}(u,k)$ and~${\rm dn}(u,k)$ defined by \begin{equation}\label{sn.definition} {\rm sn} u=\sin\phi,\qquad {\rm cn} u=\cos\phi,\qquad {\rm dn} u=\sqrt{1-k^2\sin^2\phi} \end{equation} are elliptic with periods \begin{equation} K=\int_{\theta=0}^{\pi/2}\frac{d\theta}{\sqrt{1-m\sin^2\theta}} \end{equation} and \begin{equation} iK'=i\int_{\theta=0}^{\pi/2}\frac{d\theta}{\sqrt{1-m_1\sin^2\theta}}. \end{equation} The Jacobian elliptic functions are encountered in a variety of contexts and bear a simple analytical relation with the Weierstrass~$\wp$ function. \section{Numerical evaluation and Jacobi's theta functions} Although equation~\ref{direct.sum} is absolutely convergent, it converges too slowly to be of use in practical work, and an alternative definition is needed. Jacobi presented his four theta functions in 1829 and, although they have interesting properties in their own right, here they are used to provide efficient numerical methods for calculation of the elliptic functions above. They are defined as follows: \begin{eqnarray}\label{theta.defn} \theta_1(z,q)&=&2q^{1/4}\sum_{n=0}^\infty(-1)^nq^{n(n+1)}\sin(2n+1)z\\ \theta_2(z,q)&=&2q^{1/4}\sum_{n=0}^\infty q^{n(n+1)}\cos(2n+1)z\\ \theta_3(z,q)&=&1+2\sum_{n=1}^\infty q^{n^2}\cos 2nz\\ \theta_4(z,q)&=&1+2\sum_{n=1}^\infty(-1)^n q^{n^2}\cos 2nz \end{eqnarray} It may be seen that, provided~$|q|<1$, the series converges for all~$z\in\mathbbm{C}$. Indeed, the convergence is very rapid: the number of correct significant figures goes as the square of the number of terms. It should be noted that there are different notations in use, both for the four function names, and for the independent variables. All the functions described in section~\ref{section:introduction} may be expressed in terms of the theta functions. This is the default method in \pkg{elliptic}, although alternative algorithms are implemented where possible to provide a numerical and notational check. For example, Weierstrass's~$\wp$ function is given by \begin{equation}\label{P.in.terms.of.theta} \wp(z)= \frac{\pi^2}{4\omega_1^2}\left( \frac{\theta_1'(0,q)\theta_2(v,q)}{\theta_2(0,q)\theta_1(v,q)} \right)^2 \end{equation} where~$q=e^{i\omega_2/\omega_1}$; the other functions have similar theta function definitions. <>= <>= require(elliptic) require(emulator) require(calibrator) @ \section[Package ''elliptic'' in use]{Package \pkg{elliptic} in use} This section shows \pkg{elliptic} being used in a variety of contexts. First, a number of numerical verifications of the code are presented; then, elliptic and related functions are visualized using the function \code{view()}; and finally, the package is used to calculate flows occurring in an oceanographic context. The primary function in package \pkg{elliptic} is~\code{P()}: this calculates the Weierstrass~$\wp$ function, and may take named arguments that specify either the invariants~\code{g} or half periods~\code{Omega}: <>= z <- 1.9+1.8i P(z,g=c(1,1i)) P(z,Omega=c(1,1i)) @ \subsection{Numerical verification} Work in the field of elliptic functions is very liable to mistakes\footnote{\cite{abramowitz1965} state that there is a ``bewildering'' variety of notations in use; the situation has become more confusing in the intervening 40 years.}, and package \pkg{elliptic} includes a number of numerical checks to guard against notational inexactitude. These checks generally use the convenient (trivial) function \code{maxdiff()} that shows the maximum absolute difference between its two arguments: <>= maxdiff <- function(x,y){max(abs(x-y))} @ For example, we may compare the output of \code{P()}, which uses equation~\ref{P.in.terms.of.theta}, against the straightforward Laurent expansion, used by \code{P.laurent()}: <>= g <- c(3,2+4i) z <- seq(from=1,to=0.4+1i,len=34) <>= maxdiff(P(z,g), P.laurent(z,g)) @ showing reasonable agreement; note that function \code{P()} uses the conceptually distinct theta function formula of equation~\ref{P.in.terms.of.theta}. Package \pkg{elliptic} includes a large number of such numerical verification tests in the \code{test} suite provided in the package, but perhaps more germane is the inclusion of named identities appearing in \cite{abramowitz1965}. For example, consider function~\code{e18.10.9()}, named for the equation number of the identity appearing on page 650. This function returns the difference between the (algebraically identical) left and right hand side of three grouped identities: \begin{eqnarray} 12\omega_1^2e_1 &=& \hphantom{-}\pi^2\left[\theta_3^4(0,q)+\theta_4^4(0,q)\right]\nonumber\\ 12\omega_1^2e_2 &=& \hphantom{-}\pi^2\left[\theta_2^4(0,q)-\theta_4^4(0,q)\right]\\ 12\omega_1^2e_3 &=& - \pi^2\left[\theta_3^4(0,q)+\theta_4^4(0,q)\right]\nonumber \end{eqnarray} where~$q=e^{-\pi K'/K}$. From the manpage: <>= abs( e18.10.9(parameters(g=g))) @ again showing reasonably accurate numerical results, but perhaps more importantly explicitly verifying that the notational scheme used is internally consistent. Although the examples above use the invariants~\code{g2} and \code{g3} to define the elliptic function and its periods, sometimes the fundamental periods are known and the invariants are desired. This is done by function \code{g.fun()}, which takes the fundamental periods as arguments and returns the two invariants~$g_2$ and~$g_3$. Observe that there are many pairs of basic periods that generate the same lattice---see figure~\ref{latplot}---but it usual to specify the unique {\em fundamental periods} as this pair usually has desirable numerical convergence properties. \begin{figure}[htbp] \begin{center} <>= jj <- parameters(g=c(1+1i,2-3i))$Omega latplot(jj,xlim=c(-4,4),ylim=c(-4,4),xlab="Re(z)", ylab="Im(z)") polygon(Re(c(jj[1],sum(jj),jj[2],0)), Im(c(jj[1],sum(jj),jj[2],0)),lwd=2,col="gray90",pch=16,cex=3) kk <- -c(3*jj[1] + 2*jj[2] , jj[1] + jj[2]) #det(matrix(c(3,2,1,1),2,2,T)==1 polygon(Re(c(kk[1],sum(kk),kk[2],0)), Im(c(kk[1],sum(kk),kk[2],0)),lwd=2,col="gray30",pch=16,cex=3) @ \caption{The\label{latplot} lattice generated by~$\wp(z;1+i,2-3i)$; fundamental period parallelogram shown in light gray and a basic period parallelogram shown in darker gray} \end{center} \end{figure} \subsubsection{Unimodularity}\label{section.unimodularity} Many functions of the package are {\em unimodular}. The invariants~$g_2$ and~$g_3$ are defined in terms of a pair of basic periods~$\omega_1$ and~$\omega_2$. However, any pair of basic periods should have the same invariants, because any pair of basic periods will define the same elliptic function (hence the name). Basic period pairs are related by a unimodular transformation: if~$\omega_1,\omega_2$ and~$\tilde{\omega}_1,\tilde{\omega}_2$ are two pairs of basic periods then there exist integers~$a,b,c,d$ with~$ad-bc=1$ and \[ \left( \begin{array}{cc} a&b\\ c&d \end{array} \right) \left( \!\! \begin{array}{c} \omega_1\\ \omega_2 \end{array} \!\! \right)= \left(\!\! \begin{array}{c} \tilde{\omega}_1\\ \tilde{\omega}_2 \end{array} \!\! \right) \] Formally, a unimodular function~$f(\cdot,\cdot)$ is one with arity~2---it is conventional to write~$f(\mathbf{v})=f(a,b)$---and for which \begin{equation} f(\mathbf{v})=f(\mathbf{M}\mathbf{v})\end{equation} where~$\mathbf{M}$ is unimodular: that is, an integer matrix with a determinant of unity. In this context, unimodular matrices (and the transformations they define) are interesting because any two pairs of basic periods are related by a unimodular transformation. The package includes functions that generate unimodular matrices. The underlying function is \code{congruence()}, which generates~$2\times 2$ integer matrices with a determinant of~1, given the first row. For example: <>= M <- congruence(c(4,9)) @ (observe that the determinant of~$\mathbf{M}$ is unity) and thus we may verify the unimodularity of, for example, \code{g.fun()} by evaluating the invariants for a pair of fundamental periods, and comparing this with the invariants calculated for a pair of basic periods that are related to the fundamental periods by a unimodular transformation (here~$\mathbf{M}$). In \proglang{R} idiom: <>= o <- c(1,1i) <>= maxdiff(g.fun(o), g.fun(M %*% o,maxiter=800)) @ showing that the invariants for period pair~$o=(1,i)^T$ are almost identical to those for period pair~$o'=\mathbf{M}o=(4+9i,3+7i)^T$. Observe that the latter evaluation requires many more iterations for accurate numerical evaluation: this behaviour is typically encountered when considering periods whose ratio is close to the real axis. In addition, function \code{unimodular()} generates unimodular matrices systematically, and function \code{unimodularity()} checks for a function's being unimodular. \subsubsection{Contour integration and the residue theorem} As noted in section~\ref{zeta.analytic}, the zeta function~$\zeta(z)$ possesses a simple pole of residue~1 at the origin. The residue theorem would imply that \[ \varoint\zeta(z)\,dz=2\pi i \] when the contour is taken round a path that encircles the origin but no other poles. This may be verified numerically using \pkg{elliptic}'s \code{myintegrate} suite of functions, which generalize the \pkg{stats} package's \code{integrate()} function to the complex plane. Here, function \code{integrate.contour()} is used to integrate round the unit circle. This function takes three arguments: first, the function to be integrated; second, a function that describes the contour to be integrated along; and third, a function that describes the derivative of the contour. We may now integrate over a closed loop, using arguments~\code{u} and~\code{udash} which specify a contour following the unit circle: <>= u <- function(x){exp(pi*2i*x)} udash <- function(x){pi*2i*exp(pi*2i*x)} Zeta <- function(z){zeta(z,g)} Sigma <- function(z){sigma(z,g)} WeierstrassP <- function(z){P(z,g)} @ <>= jj <- integrate.contour(Zeta,u,udash) <>= maxdiff(jj, 2*pi*1i) @ showing reasonable numerical accuracy. Compare Weierstrass's~$\wp$ function, which has a second order pole at the origin: <>= abs(integrate.contour(WeierstrassP,u,udash)) @ \subsubsection[The PARI system]{The \proglang{PARI} system} Perhaps the most convincing evidence for numerical accuracy and consistency of notation in the software presented here is provided by comparison of the package's results with that of \proglang{PARI}~\citep{batut2000}. The \proglang{PARI} system is an open-source project aimed at number theorists, with an emphasis on pure mathematics; it includes some elliptic function capability. Function \code{P.pari()} of package \pkg{elliptic} calls the \code{pari} system directly to evaluate elliptic functions from within an \proglang{R} session, enabling quick verification: \begin{Schunk} \begin{Sinput} > omega <- c(1,1i) \end{Sinput} \end{Schunk} \begin{Schunk} \begin{Sinput} > z <- seq(from=pi,to=pi*1i,len=10) \end{Sinput} \end{Schunk} \begin{Schunk} \begin{Sinput} > maxdiff(P.pari(z,Omega=omega), P(z,params=parameters(Omega=omega))) \end{Sinput} \begin{Soutput} [1] 2.760239e-14 \end{Soutput} \end{Schunk} again showing reasonable agreement, this time between two independent computational systems. \subsection{Visualization of complex functions} In the following, a Weierstrass elliptic function with invariants of~$1+i$ and~$2-3i$ will be considered. The half periods $\omega_1,\omega_2$ are first evaluated: <>= jj.omega <- half.periods(g=c(1+1i,2-3i)) @ and these may be visualized by using \code{latplot()}, as in figure~\ref{latplot}. Figure~\ref{P.persp.re} shows the real part of such a function, shown over part of the complex plane, and figure~\ref{P.view} shows the same function using the \code{view()} function. <>= x <- seq(from=-4, to=4, len=n) y <- x z <- outer(x,1i*x, "+") f <- P(z, c(1+1i,2-3i)) @ %% Thanks to Dario Strbenac for the following structure <>= png("wp_figure.png",width=800,height=800) @ <>= persp(x, y, limit(Re(f)), xlab="Re(z)",ylab="Im(z)",zlab="Re(P(z))", theta=30, phi=30, r=1e9, border=NA, shade=0.8, expand=0.6) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{wp_figure.png} \caption{Real part of~$\wp(z,1,1+2i)$. Note \label{P.persp.re} the second order poles at each lattice point} \end{center} \end{figure} <>= png("thallerfig.png",width=800,height=800) @ <>= par(pty="s") view(x,y,f,code=0,real.contour=FALSE, imag.contour=FALSE,drawlabel=FALSE,col="red",axes=FALSE,xlab="Re(z)",ylab="Im(z)") axis(1,pos = -4) axis(2,pos = -4) lines(x=c(-4,4),y=c(4,4)) lines(y=c(-4,4),x=c(4,4)) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{thallerfig.png} \caption{Visualization of~$\wp(z,1,1+2i)$\label{P.view} using the scheme of \cite{thaller1998}: white corresponds to a pole, black to a zero, and full saturation to~$|\wp(z)|=1$. The poles of~$\wp(z)$ occur on a regular lattice, and the zeros on two shifted lattices. Note how each of the poles is surrounded by two cycles of hue, indicating that they are of second order; and each of the zeros is surrounded by one cycle of hue, indicating that they are simple roots} \end{center} \end{figure} The~$\sigma$ function with the same invariants is visualized in figure~\ref{sigma.green}, showing that its zeros lie on the same lattice as figure~\ref{latplot}. <>= x <- seq(from= -12, to=12, len=n) y <- x z <- outer(x, 1i*y, "+") f <- sigma(z, c(1+1i,2-3i)) @ <>= png("sigma_green.png",width=800,height=800) @ <>= par(pty="s") view(x,y,f,scheme=4,real.contour=FALSE,drawlabels=FALSE,axes=FALSE, xlab="Re(z)",ylab="Im(z)") axis(1,pos= -12) axis(2,pos= -12) lines(x=c(-12,12),y=c(12,12)) lines(y=c(-12,12),x=c(12,12)) lines(x=c(-12,12),y=-c(12,12)) lines(y=c(-12,12),x=-c(12,12)) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{sigma_green.png} \caption{Visualization of~$f=\sigma(z,1,1+2i)$ using \code{view()}; colour indicates~${\rm Arg}(f)$. Thus points at which~$f(z)$ is on the negative real axis, that is $\{z\colon f(z)\in\mathbbm{R}^-\}$, are visible as discontinuities of (colourimetric) value. These discontinuities are semi-infinite; note that the zeros of~$f$ occur, \label{sigma.green} at the (finite) end of each line, on a regular lattice. As~$|z|$ increases, each discontinuity threads its way through an increasing number of other discontinuities and zeros, and the spacing between the discontinuities becomes less and less} \end{center} \end{figure} Figure~\ref{zeta.thaller} shows the zeta function, and figure~\ref{sn.thaller} shows Jacobi's ``sn'' function. <>= zeta.z <- zeta(z, c(1+1i,2-3i)) @ <>= png("zetafig.png",width=800,height=800) @ <>= par(pty="s") view(x,y,zeta.z,scheme=0,real.contour=FALSE,drawlabels=FALSE,xlab="Re(z)",ylab="Im(z)") @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{zetafig.png} \caption{Visualization of~$\zeta(z,1,1+2i)$ using \code{view()} and the colouring scheme of Thaller. Poles appear as white regions, and zeros as black regions. \label{zeta.thaller} Each pole is of single order, each zero is a simple root (one cycle of hue). The poles occur on a lattice; there is no simple pattern to the zeros. Note the overall tendency towards the edges of the square to whiteness: $|f|$ increases with~$|z|$ as per equation~\ref{zeta.definition}} \end{center} \end{figure} <>= jj <- seq(from=-40,to=40,len=n) m <- outer(jj,1i*jj,"+") f <- sn(u=5-2i,m=m,maxiter=1000) @ <>= png("sn_figure.png",width=800,height=800) @ <>= par(pty="s") view(jj,jj,f,scheme=0,r0=1/5,real=T,imag=F,levels=c(0,-0.4,-1),drawlabels=F,xlab="Re(m)",ylab="Im(m)") @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{sn_figure.png} \caption{Jacobi's ``sn'' function\label{sn.thaller} using the elliptic package. Here, $f={\rm sn}(5-2i,m)$ is visualized, with background utilizing Thaller's scheme, and contours of equal~${\rm Re}(f)$ at three selected values shown as black lines. Note the aperiodic arrangement of poles (white areas) and zeros (black areas)} \end{center} \end{figure} \subsection{Potential flow} One application of complex analysis is to fluid dynamics. In particular, potential flow (steady, two-dimensional, inviscid, incompressible) may be studied with the aid of analytic complex functions. Here I show how the elliptic functions discussed in this paper may be used to simulate potential flow in a rectangular domain. Although the tenets of potential flow appear to be absurdly idealized\footnote{\cite{feynman1966} famously described potential flow as the study of ``dry water''}, it is nevertheless a useful technique in many branches of practical fluid mechanics: it is often used to calculate a ``theoretical'' flowfield with which measured velocities may be compared. A short sketch of potential theory is given here but the reader is referred to~\cite{milne1949} for a full exposition. Briefly, we define a {\em complex potential} $w(z)$ to be a complex function \[ w(z)=\phi+i\psi\] and observe that both~$\phi$ and~$\psi$ obey Laplace's equation if~$w$ is differentiable. Given this, we may take the velocity vector~$\mathbf{v}=(v_x,v_y)$ of the fluid to be \[ v_x=\frac{\partial\phi}{\partial x},\qquad v_y=\frac{\partial\phi}{\partial y},\qquad \] and observe that streamlines are given by contours of equal~$\psi$; contours of equal~$\phi$ are called equipotential lines. The two systems of lines cross at right angles (this follows from the Cauchy-Riemann conditions). Consider, for example, the function~$w(z)=z^2$, whose associated flow field is shown in figure~\ref{z.squared.pot.flow}. This corresponds to a stagnation point, at which the speed vanishes; the streamlines (solid) intersect the equipotential lines (dashed) at right angles. <>= f <- function(z){1i*z^2} x <- seq(from=-6,to=6,len=n) y <- seq(from=-6,to=6,len=n) z <- outer(x,1i*y,"+") @ <>= png("stag_point.png",width=800,height=800) @ <>= par(pty="s") view(x,y,f(z),nlevels=14,imag.contour=TRUE,real.cont=TRUE,scheme=-1, drawlabels=FALSE, axes=FALSE,xlab="Re(z)",ylab="Im(z)") axis(1,pos=-6) axis(2,pos=-6) lines(x=c(-6,6),y=c(6,6)) lines(y=c(-6,6),x=c(6,6)) d1 <- c(-0.1,0,0.1) d2 <- c( 0.1,0,0.1) lines(x=d1,y=1+d2) lines(x=d1,y=-1-d2) lines(x=1-d2,y=d1) lines(x=-1+d2,y=d1) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{stag_point.png} \caption{Potential flow on the complex plane: field\label{z.squared.pot.flow} corresponding to the function~$(z)=z^2$. Solid lines represent streamlines and dotted lines represent equipotentials; these intersect at right angles. Note stagnation point at the origin} \end{center} \end{figure} Now consider a slightly more complicated case. A point source of strength~$m$ at~$z_0$ may be represented by the function \[m\log(z-z_0)\] (a sink corresponds to~$m<0$). Any finite number of sources or sinks may be combined, as in~$\sum_i m_i\log(z-z_i)$ where the~$i^{\rm th}$ source is at~$z_i$ and has strength~$m_i$, because the system is linear\footnote{It is often more convenient to work with the algebraically equivalent form~$\log\left(\prod (z-z_i)^{m_i}\right)$, as there are fewer branch cuts to deal with.}. Figure~\ref{upper.halfplane.flow} shows two sources and two sinks, all of equal strength. Because the flowfield is symmetric with respect to the real axis, there is no flux across it; we may therefore ignore the flow in the lower half plane (ie~$\{z\colon \rm{Im}(z)<0\}$) and consider the flow to be bounded below by the real axis. This is known as {\em the method of images}~\citep{milne1949}. <>= f <- function(z){1i*log((z-1.7+3i)*(z-1.7-3i)/(z+1-0.6i)/(z+1+0.6i))} x <- seq(from=-6,to=6,len=n) y <- seq(from=-6,to=6,len=n) z <- outer(x,1i*y,"+") @ <>= png("two_sources_two_sinks.png",width=800,height=800) @ <>= par(pty="s") view(x,y,f(z),nlevels=24,imag.contour=TRUE,real.cont=TRUE,scheme=17,power=0.1,drawlabels=FALSE,axes=FALSE,xlab="Re(z)",ylab="Im(z)") axis(1,pos=-6) axis(2,pos=-6) lines(x=c(-6,6),y=c(6,6)) lines(y=c(-6,6),x=c(6,6)) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{two_sources_two_sinks.png} \caption{Potential flow in on the complex plane: two sources and two sinks, all of equal strength. Solid \label{upper.halfplane.flow} lines denote streamlines, dotted lines equipotentials; colour scheme uses the \code{hcl()} system: hue varies with the argument, and chrominance varies with the modulus, of the potential. There is no flux between the lower and the upper half plane, but there is flux out of, and in to, the diagram. Note the stagnation point at approximately $5+0i$} \end{center} \end{figure} Now, one may transform a potential flowfield into another form using a conformal mapping from the~$z$- plane to the~$\zeta$- plane, traditionally denoted \[ \zeta=f(z). \] This technique finds application when flow is desired (in the~$\zeta$- plane) that obeys some specific boundary condition that is simple to specify in the~$z$- plane. %In the present case, we make use of the Schwartz-Christoffel theorem, %which states that if~$a,b,c,\ldots$ are~$n$ points on the real axis of %the~$\zeta$- plane with~$a>= m <- 0.5 K <- K.fun(m) iK <- K.fun(1-m) #b <- sn(1.8 + 0.8i, m=m) # 1.8 to the right and 0.8 up. #b <- 0 # middle bottom b <- sn(0 + 1i*iK/2,m=m) #dead centre of the rectangle. #b <- -1 # lower left #b <- 1/sqrt(m) # top right #b <- -1/sqrt(m) # top left #b <- 1e9*1i # top centre a <- 1 #bottom right hand side corner f <- function(z){1i*log((z-a)*(z-Conj(a))/(z-b)/(z-Conj(b)))} x <- seq(from=-K,to=K,len=n) y <- seq(from=0,to=iK,len=n) z <- outer(x,1i*y,"+") fsn <- f(sn(z,m=m)) @ <>= png("rectangle_pot_flow.png",width=800,height=800) @ <>= view(x,y,fsn,nlevels=44,imag.contour=FALSE,real.cont=TRUE,scheme=17,power=0.1,drawlabels=FALSE,axes=FALSE,xlab="",ylab="") rect(-K,0,K,iK,lwd=3) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{rectangle_pot_flow.png} \caption{Potential flow in a rectangle of aspect ratio~2: source and sink of equal \label{box.flow} strength. Colour scheme as in figure~\ref{upper.halfplane.flow}. Note the dividing streamline which terminates in a stagnation point on the rectangle boundary} \end{center} \end{figure} \subsection{Bayesian analysis of potential flow} When considering potential flows, it is often necessary to infer the locations of singularities in the flow from sparse and imperfect data~\citep{johnson2004}. Here, I apply the methods of~\cite{kennedy2001} and~\cite{kennedy2001a} (hereafter KOH and KOHa respectively) using the~\pkg{BACCO} package~\citep{hankin2005} to assess some characteristics of potential flow in a rectangle. Kennedy and O'Hagan considered the following inference problem for a set of parameters~$\theta\in{\mathcal R}^q$ that are inputs to a computer program. Given an independent variable~$x\in{\mathcal R}^n$, and a set of scalar (``field'') observations~$z=z(x)$, they assume \begin{equation} z(x)=\rho\cdot\eta\left(x,\theta\right)+ \delta(x)+\epsilon \end{equation} where~$\rho$ is a constant of proportionality (notionally unity); $\eta(\cdot,\cdot)$ a Gaussian process with unknown coefficients; $\theta$ the true, but unknown parameter values; $\delta(\cdot)$ a model inadequacy term (also a Gaussian process with unknown coefficients); and~$\epsilon\sim N(0,\lambda^2)$ uncorrelated normal observational errors. Inferences about~$\eta(\cdot,\cdot)$ are made from point observations of the process: Kennedy and O'Hagan call these the ``code observations'' on the grounds that their chief motivation was the understanding of complex computer codes. Here, potential flow in a rectangle is considered. The source is at one corner of the rectangle, which is considered to have lower left point~$(-1,0)$ and upper right point~$(1,1)$. The position of the sink is unknown. I now show how the position of the sink may be inferred from a sparse and noisy set of observed fluid speeds. Similar inference problems are encountered in practice when considering oceanographic flows such as those occurring near deep sea vents, although the geometry is generally more complex than considered here. The independent variable~$\mathbf{x}$ is the two-dimensional position within the rectangle, and the field observation~$z(\mathbf{x})$ is the fluid speed at that point, plus obervational error~$\epsilon$. The parameter set~$\theta$ thus has two degrees of freedom corresponding to the $x-$ and $y-$ coordinates of the sink. Field observations will be obtained numerically, using the \pkg{elliptic} package. The simulated flowfield has a sink at a {\em known} position---in this case the geometric centre of the rectangle---and Bayesian methods will be used to infer its position using only fluid speed data. In the terminology of KOHa, dataset~\code{y} corresponds to modelled fluid speed, obtained from the appropriate simulations carried out with the sink placed at different locations within the rectangle. Dataset~\code{z} corresponds to field observations, which in this case is fluid speed at several points in the rectangle, obtained from simulations with the sink at the centre of the rectangle. <>= # Choose the size of the computational mesh: n <- n_BACCO # Choose the number of code observations for D1: n.code.obs <- 30 # And the number of field observations for D2: n.field.obs <- 31 # First, up the D1 design matrix. Recall that D1 is the set of code # observations, which here means the observations of fluid speed when # the sink is at a known, specified, position. suppressWarnings(RNGversion("3.5.0")) set.seed(0) latin.hypercube <- function (n, d){ sapply(seq_len(d), function(...) { (sample(1:n) - 0.5)/n }) } D1.elliptic <- latin.hypercube(n.code.obs , 4) colnames(D1.elliptic) <- c("x","y","x.sink","y.sink") D1.elliptic[,c(1,3)] <- (D1.elliptic[,c(1,3)] -0.5)*2 #D1.elliptic[,c(2,4)] <- D1.elliptic[,c(2,4)] *iK # now a D2 design matrix. This is field observations: observations of # fluid speed when the sink is at the true, unknown, specified, # position. D2.elliptic <- latin.hypercube(n.field.obs , 2) colnames(D2.elliptic) <- c("x","y") D2.elliptic[,1] <- (D2.elliptic[,1] -0.5)*2 # Now a function that, given x and y and x.sink and y.sink, returns # the log of the fluid speed at x,y: fluid.speed <- function(x.pos, y.pos, x.sink, y.sink){ a <- 1 #bottom right hand side corner b <- sn(x.pos/K + 1i*iK*y.pos,m=m) #position (x.pos , y.pos) f <- function(z){1i*log((z-a)*(z-Conj(a))/(z-b)/(z-Conj(b)))} x <- seq(from=-K,to=K,len=n) y <- seq(from=0,to=iK,len=n) z <- outer(x,1i*y,"+") potential <- f(sn(z,m=m)) get.log.ke <- function(x,y,potential){ jj <- Re(potential) jj.x <- cbind(jj[,-1]-jj[,-ncol(jj)],0) jj.y <- rbind(jj[-1,]-jj[-nrow(jj),],0) kinetic.energy <- jj.x^2 + jj.y^2 n.x <- round(n * (x-(-1))/2) n.y <- round(n * y) return(log(kinetic.energy[n.x , n.y]+0.01)) } return(get.log.ke(x.pos,y.pos,potential)) } # now fill in code outputs y: y.elliptic <- rep(NA,nrow(D1.elliptic)) for(i in 1:length(y.elliptic)){ jj <- D1.elliptic[i,,drop=TRUE] y.elliptic[i] <- fluid.speed(jj[1],jj[2],jj[3],jj[4]) } # Now do the field observations; here the source is known to be at the # centre of the rectangle: z.elliptic <- rep(NA,nrow(D2.elliptic)) for(i in 1:length(z.elliptic)){ jj <- D2.elliptic[i,,drop=TRUE] z.elliptic[i] <- fluid.speed(jj[1],jj[2],0,0.5) } # Create design matrix plus observations for didactic purposes: D1 <- round(cbind(D1.elliptic,observation=y.elliptic),2) D2 <- round(cbind(D2.elliptic,observation=z.elliptic),2) # create a data vector: d.elliptic <- c(y.elliptic , z.elliptic) #now a h1.toy() equivalent: h1.elliptic <- function(x){ out <- c(1,x[1]) } #now a H1.toy() equivalent: H1.elliptic <- function (D1) { if (is.vector(D1)) { D1 <- t(D1) } out <- t(apply(D1, 1, h1.elliptic)) colnames(out)[1] <- "h1.const" return(out) } h2.elliptic <- function(x){ c(1,x[1]) } H2.elliptic <- function(D2){ if (is.vector(D2)) { D2 <- t(D2) } out <- t(apply(D2, 1, h2.elliptic)) colnames(out)[1] <- "h2.const" return(out) } #Now an extractor function: extractor.elliptic <- function (D1) { return(list(x.star = D1[, 1:2, drop = FALSE], t.vec = D1[, 3:4, drop = FALSE])) } # Now a whole bunch of stuff to define a phi.fun.elliptic() # and, after that, to call it: phi.fun.elliptic <- function (rho, lambda, psi1, psi1.apriori, psi2, psi2.apriori, theta.apriori, power) { "pdm.maker.psi1" <- function(psi1) { jj.omega_x <- diag(psi1[1:2]) rownames(jj.omega_x) <- names(psi1[1:2]) colnames(jj.omega_x) <- names(psi1[1:2]) jj.omega_t <- diag(psi1[3:4]) rownames(jj.omega_t) <- names(psi1[3:4]) colnames(jj.omega_t) <- names(psi1[3:4]) sigma1squared <- psi1[5] return(list(omega_x = jj.omega_x, omega_t = jj.omega_t, sigma1squared = sigma1squared)) } "pdm.maker.psi2" <- function(psi1) { jj.omegastar_x <- diag(psi2[1:2]) sigma2squared <- psi2[3] return(list(omegastar_x = jj.omegastar_x, sigma2squared = sigma2squared)) } jj.mean <- theta.apriori$mean jj.V_theta <- theta.apriori$sigma jj.discard.psi1 <- pdm.maker.psi1(psi1) jj.omega_t <- jj.discard.psi1$omega_t jj.omega_x <- jj.discard.psi1$omega_x jj.sigma1squared <- jj.discard.psi1$sigma1squared jj.discard.psi2 <- pdm.maker.psi2(psi2) jj.omegastar_x <- jj.discard.psi2$omegastar_x jj.sigma2squared <- jj.discard.psi2$sigma2squared jj.omega_t.upper <- chol(jj.omega_t) jj.omega_t.lower <- t(jj.omega_t.upper) jj.omega_x.upper <- chol(jj.omega_x) jj.omega_x.lower <- t(jj.omega_x.upper) jj.a <- solve(solve(jj.V_theta) + 2 * jj.omega_t, solve(jj.V_theta, jj.mean)) jj.b <- t(2 * solve(solve(jj.V_theta) + 2 * jj.omega_t) %*% jj.omega_t) jj.c <- jj.sigma1squared/sqrt(det(diag(nrow = nrow(jj.V_theta)) + 2 * jj.V_theta %*% jj.omega_t)) jj.A <- solve(jj.V_theta + solve(jj.omega_t)/4) jj.A.upper <- chol(jj.A) jj.A.lower <- t(jj.A.upper) list(rho = rho, lambda = lambda, psi1 = psi1, psi1.apriori = psi1.apriori, psi2 = psi2, psi2.apriori = psi2.apriori, theta.apriori = theta.apriori, power = power, omega_x = jj.omega_x, omega_t = jj.omega_t, omegastar_x = jj.omegastar_x, sigma1squared = jj.sigma1squared, sigma2squared = jj.sigma2squared, omega_x.upper = jj.omega_x.upper, omega_x.lower = jj.omega_x.lower, omega_t.upper = jj.omega_t.upper, omega_t.lower = jj.omega_t.lower, a = jj.a, b = jj.b, c = jj.c, A = jj.A, A.upper = jj.A.upper, A.lower = jj.A.lower) } # OK, that's the function defined. Now to create some jj.* variables # to call it: jj.psi1 <- c(rep(1,4),0.3) names(jj.psi1)[1:4] <- colnames(D1.elliptic) names(jj.psi1)[5] <- "sigma1squared" jj.mean.psi1 <- rep(1,5) names(jj.mean.psi1) <- names(jj.psi1) jj.sigma.psi1 <- diag(0.1,nrow=5) rownames(jj.sigma.psi1) <- names(jj.psi1) colnames(jj.sigma.psi1) <- names(jj.psi1) jj.psi2 <- c(1,1,0.3) names(jj.psi2)[1:2] <- colnames(D2.elliptic) names(jj.psi2)[3] <- "sigma2squared" jj.mean.psi2 <- rep(1,4) names(jj.mean.psi2) <- c("x.sink", "y.sink","rho","lambda") jj.sigma.psi2 <- diag(0.1,4) rownames(jj.sigma.psi2) <- names(jj.mean.psi2) colnames(jj.sigma.psi2) <- names(jj.mean.psi2) jj.mean.th <- c(1,0.5) names(jj.mean.th) <- colnames(D1.elliptic)[3:4] jj.sigma.th <- diag(rep(1,2)) rownames(jj.sigma.th) <- colnames(D1.elliptic)[3:4] colnames(jj.sigma.th) <- colnames(D1.elliptic)[3:4] # Now call phi.fun.elliptic(): phi.elliptic <- phi.fun.elliptic( rho=1, lambda=0.1, psi1=jj.psi1, psi2=jj.psi2, psi1.apriori=list(mean=jj.mean.psi1, sigma=jj.sigma.psi1), psi2.apriori=list(mean=jj.mean.psi2, sigma=jj.sigma.psi2), theta.apriori=list(mean=jj.mean.th, sigma=jj.sigma.th), power=2 ) # Now an E.theta.elliptic(): E.theta.elliptic <- function (D2 = NULL, H1 = NULL, x1 = NULL, x2 = NULL, phi, give.mean = TRUE) { if (give.mean) { m_theta <- phi$theta.apriori$mean return(H1(D1.fun(D2, t.vec = m_theta))) } else { out <- matrix(0, 2,2) rownames(out) <- c("h1.const","x") colnames(out) <- c("h1.const","x") return(out) } } #Now an Edash.theta.elliptic(). Because the basis vector is not a #function of theta, this is a bit academic as we can use a function #that is identical to Edash.theta.toy(): Edash.theta.elliptic <- function (x, t.vec, k, H1, fast.but.opaque = FALSE, a = NULL, b = NULL, phi = NULL) { if (fast.but.opaque) { edash.mean <- a + crossprod(b, t.vec[k, ]) } else { V_theta <- phi$theta.apriori$sigma m_theta <- phi$theta.apriori$mean omega_t <- phi$omega_t edash.mean <- solve(solve(V_theta) + 2 * omega_t, solve(V_theta, m_theta) + 2 * crossprod(omega_t, t.vec[k, ])) } jj <- as.vector(edash.mean) names(jj) <- rownames(edash.mean) edash.mean <- jj return(H1(D1.fun(x, edash.mean))) } # Define a wrapper for equation 8: # First, calculate the constant to subtract to ensure that # the support has a maximum of about zero: maximum.likelihood.support <- p.eqn8.supp(theta=c(0,1/2), D1=D1.elliptic, D2=D2.elliptic, H1=H1.elliptic, H2=H2.elliptic, d=d.elliptic, include.prior=FALSE, lognormally.distributed=FALSE, return.log=TRUE, phi=phi.elliptic) support <- function(x){ p.eqn8.supp(theta=x, D1=D1.elliptic, D2=D2.elliptic, H1=H1.elliptic, H2=H2.elliptic, d=d.elliptic, include.prior=FALSE, lognormally.distributed=FALSE, return.log=TRUE, phi=phi.elliptic) - maximum.likelihood.support } #define a local function called optim() for aesthetic reasons (ie it # improves the appearance of the call to optim(): optim <- function(par,fn){ stats::optim(par=par,fn=fn,control=list(fnscale = -1))$par } @ The code evaluation design matrix~\code{D1} is chosen according to a random Latin hypercube design, and the observation is calculated using the \pkg{elliptic} package: <>= head(D1) @ So the first line shows a simulation with the sink at~(\Sexpr{D1[1,3]},\Sexpr{D1[1,4]}); the log of the fluid speed at~(\Sexpr{D1[1,1]}, \Sexpr{D1[1,2]}) is~\Sexpr{D1[1,5]}. There are a total of~\Sexpr{n.code.obs} such observations. Figure~\ref{code.obs} shows these points superimposed on the ``true'' flow field. The field observations are similarly determined: <>= head(D2) @ showing that the first field observation, at~(\Sexpr{D2[1,1]}, \Sexpr{D2[1,2]}), is~\Sexpr{D2[1,3]}. There are a total of~\Sexpr{n.field.obs} such observations. Figure~\ref{field.obs} shows the first code observation in the context of the ``true'' flow field. <>= b <- sn(D1[1,3] + 1i*D1[1,4],m=m) #point corresponding to first line of D1 fsnz2 <- f(sn(z,m=m)) @ <>= png("code_obs.png",width=800,height=800) @ <>= view(x,y,fsnz2,nlevels=44,imag.contour=FALSE,real.cont=TRUE,scheme=-1,drawlabels=FALSE,axes=FALSE,xlab="",ylab="") points(x=K*D1[1,1],y=D1[1,2]*iK,pch=4) rect(-K,0,K,iK,lwd=3) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{code_obs.png} \caption{Streamlines\label{code.obs} of first code observation point; field observation point shown as a cross. The sink is at~(\Sexpr{D1[1,3]},\Sexpr{D1[1,4]})} \end{center} \end{figure} <>= b <- sn(0 + 1i*iK/2,m=m) fsnzz <- f(sn(z,m=m)) @ <>= png("true_flow.png",width=800,height=800) @ <>= view(x,y,fsnzz,nlevels=44,imag.contour=FALSE,real.cont=TRUE,scheme=-1,drawlabels=FALSE,axes=FALSE,xlab="",ylab="") points(x=K*D2[,1],y=D2[,2]*iK,pch=4) rect(-K,0,K,iK,lwd=3) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{true_flow.png} \caption{Streamlines\label{field.obs} of ``true'' flow; field observation points shown as crosses} \end{center} \end{figure} Kennedy and O'Hagan give, {\em inter alia,} an expression for the likelihood of any value of $\theta$ being the true parameter set (in this case, the true position of the sink) in terms of the code evaluations and field observations. Here, function \code{support()} calculates the log-likelihood for a pair of coordinates of the sink. This may be evaluated at the centre of the rectangle, and again at the top left corner: <>= support(c(0,1/2)) #centre of the rectangle support(c(-1,1)) #top left corner @ showing, as expected, that the support is very much larger at the centre of the rectangle than the edge (here the arbitrary additive constant is such that the support at \code{c(0,1/2)} is exactly zero). It is now possible to identify the position of the sink that corresponds to maximum support using numerical optimization techniques: <>= mle <- optim(c(0,1/2),support) @ \begin{Schunk} \begin{Sinput} (mle <- optim(c(0,1/2),support)) \end{Sinput} \end{Schunk} <>= mle @ Thus the maximum likelihood estimate for the sink is a distance of about~0.2 from the true position. The support at this point is about~3.9 units of likelihood: <>= support(mle) @ \subsubsection{Discussion of Bayesian statistical analysis} The above example shows the ideas of KOH being applied straightforwardly, but with the novel twist of $\theta$ being interpreted as physical characteristics of a fluid flow. In this case~$\theta$ is the coordinates of the sink. The MLE is better supported than the true position by about~3.9 units of likelihood: thus, in the language of~\cite{edwards1992}, the hypothesis of $\theta_\mathrm{true}=(0,0.5)$ would not be rejected if one accepted Edwards's 2 units of likelihood per degree of freedom. The discrepancy between~$\hat{\theta}$ and~$\theta_\mathrm{true}$ (a distance of about 0.2) may be due to due to the coarseness of the form adopted for the basis functions, and better results might be obtained by using a more sophisticated system of model inadequacy than the simple linear form presented here. The methods of KOH allow one to make statistically robust statements about the physical characteristics of an interesting flow that are difficult to make in any other way. \section{Conclusions} Elliptic functions are an interesting and instructive branch of complex analysis, and are frequently encountered in applied mathematics: here they were used to calculate a potential flow field in a rectangle. This paper introduced the \proglang{R} package \pkg{elliptic}, which was then used in conjunction with Bayesian statistical methods (the \pkg{BACCO} bundle) to make statistically sound inferences about a flow with uncertain parameters: in this case the position of the sink was estimated from a sparse and noisy dataset. \subsection*{Acknowledgements} I would like to acknowledge the many stimulating and helpful comments made by the \proglang{R}-help list over the years. \bibliography{elliptic} \end{document} elliptic/NAMESPACE0000644000176200001440000000042515104404043013272 0ustar liggesusersexportPattern("^[[:alpha:]]+") exportPattern("%mob%") importFrom(MASS,fractions) importFrom(MASS,rational) importFrom("grDevices", "hcl", "hsv", "rgb") importFrom("graphics", "abline", "axis", "contour", "image", "plot", "points") importFrom("stats", "integrate", "quantile") elliptic/NEWS.md0000644000176200001440000000014715104404043013152 0ustar liggesusers# 1.5-1 - bugfixes # 1.5-0 - formal test suite - bugfix - consistentification # 1.4-2 -- bugfixes elliptic/inst/0000755000176200001440000000000015104404111013023 5ustar liggesuserselliptic/inst/semicircular_path.pdf0000644000176200001440000002237115104404043017225 0ustar liggesusers%PDF-1.5 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode >> stream xMo1 >v%Ƶ'H.{k{@[`*:yK"{D=J~īIw@H> "T1/1 n(npΊ80)V ,\aֱg2$kK˒ݥК3jktpkFFA!=H,,xK1Tyq2A#ܦ8Lfvoc8+K~/ J*.o<%Bx3 jO]2F-dGP<Ú0-,k] Zy1%c>PFS8s͋(XKnmT0miX"c?paW 'e+G\6松 \}YF%z3˥ T7hHj3 \ʖ4c5ֺko\P KEjw막)]_pID|Fq(x;SRޝm gڣ endstream endobj 4 0 obj 496 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> /Font << /f-0-0 5 0 R >> >> endobj 6 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 260.68573 205.026001 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /I true /CS /DeviceRGB >> /Resources 2 0 R >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode /Length1 10088 >> stream xzy|E頻߯tW!@bk:KG ,a+/&Q :qeNG0wx]˨^uFgddu}뗀o>}>+9U眪:UuTUbDM]$ֺs$2\ sZWw'[оp/C1p _(7.<KW/ PA9gΛ2B6e!vȶvo O,^(ۈY65^Ξ J?ӂ2sQɠ`#)-e7P{+nBrht=b ] %2K Ok{)*=} ػx0%QfJyfn}:7油,%wD./$ |̓d%ܺk=sps҂XEn̯<ۇ=Qh"u=x>+K\{R;Y(&+ִQ rDr:%km9[yöqm(<8}0b69= 7Pw()eļѕ*,.7lb͊;șE&kV]Kfe5/p88K6nIsc1`[=Fnc}aòy|\cdJC?+ZFCv>cÖr)o/?].ǘ II|IS HMX))ʚ xra%].W(ϲtrװ ;g9X1we ȴ7*ݵKLw,e}atqz͞5P+*erSl+)e䲸] ]~;[b.jGPl돜%WGI =RQl \~6ۙAsHHNK--M-/K3"W%)#KMMc%%ecr5Q].+[s']|t3%{Rw^npuRvԉlp«N8kX&sU?[?7|]XIr>vKF3<#ܟBJ d΀#QQMt$TƧXSRDJ?Xy|F'ř;s6'VĴ:+1rrecKKo\"hq&&l(Y%|1UY:ia&&F>ϨB9t,l3CHUS$13Y'1*r=ܓ=&Hv\:B=RL>7ϱX3;kX,aHʍwgep]Ih!!%!\,P%2뫞C~Icbi 31"w%M.r'nع摍o} ފGT+?M^d#|Ÿ>м b3;7 qo*<9#|xU % %cQz6CcgcsRRS,d&b GQ;o>[wOg4Q7,?¯ٍNғo>0uqOC̯ظ5l^: )(q kd٘ԥ̜#-8WQtXJgp{dzҋH/~P_թ9'?_@ ᬶ6yɉ|ixb䂺YIO nħl4H{i]K`hKJπhc(~N26 =o vE^ң ˉx~O 4{>J%JCB)@1Jwd)]E-րdY}'0-CY~0~Laq(Q`?4!ōjDFDj".0M&lM,G2ug@i(F4Ym=迏NgyG-WE#)?`W:A8D2\TK.ގΣt^`޿|m|]'DVGh#)V@a(hRN#cnsO ~1f(Ʊ); ].N;_(URJ(c\GaxIz\Vx@[ ]?t]a6,|RaHu`V2Q-f (į=uڬ06o iI2`*14޴#5t;uӽq> }9n=!v=Nه)*^Bi?柊l*։.]xW!EQ"j xu18bՅs//~pfpaz>ͰI4 n = Oo+j>ǏEpB,V •Hq+)u[ժzإ0dfv>5\0peo11iVq"N5YH6 3f32qOu;/l=-E=hcqVR,8wWJ ?cy}&j~o()8~C|-'ȿSQwj;˓ v._|1귴3&5|#o*l;klo"E6α {ڳ_cx,V+l,. ;{SD_ry k,(]4'݂`1|i^D7X "~NFlu1Q@ /H*Ubo|䣻7R1Ak"]ldONl D4ضE*w 6׿#L?b6SdEd nBGsQIoT- ^>݀3#In7S ` yj ']*6_}ިGY.5 g˴8 bGlci!͈G] Q9mP1/pmBO!9Y:YV~YyR0P Nяi96^ Pix ԋvPghZd_ʢiQd"sǨ"tpu|wޑx{S3kꚫWUVÛkLiQy#r9n`3DGUQW؂_(Z3c6 JM4oAMeMf]X`jku@sNۂd=UϛQM_Tg _Cs1ѵZꍎA6`Үazy+{90*yZ (yi>o]/,V%HZM0ޥPMP4&[o@~ \y/Hpߺ`-WD㉵ ߗfnob,vwo{/K wfLa  [mrrLy%'jEKX ML{O4s]vo2uO/c˸RRXkI޸LezNWI pK|4N㨻uja=jݖJ-~PuZ4[ׄ}~%ycpZ&^r \| Z(lF/AbQ#_YɷnP iZB)r< %$)r?~ZM[R*,_fh l6̼4(wY6cLxPqb&hps|^.VZzS/, Xٖ4?hfZ?noVꏜt]1+]W|y+a+dV;jl _w7pi#6e71EͩWczs|G-xo qk5|Gm:KdʂMpaWI:!ҥ˭tQk?Y.8x ϣ'#EL}@XBR //={xצ ~ GNHzv^l!SQg4Th{: }3 ,?I3٤iB4QC:7j;qaH;+ޚI((' ބ!q*"Q)>֪1g[|Bg Y WhG>P#>PȒR.w!?W3,]Af(S>n0ӗ_Xr:Z|@_@Ur Q<.XV Gח[䯈q^JgDpxHr/.;=Ӏ>Z8P( (Lq@{P?P0OTb_,*6mX&> Sv,#R!SAw ݮ` WUz!#:Bí6a궡D ezO%)kmȮk/-SS33\Y3S(@g t@g fXtk`{C}З;zdI8V-p}g`hvA_ư-ߕ# x;_})VljV)80PPDk(zLL&YubNUXqQBVJHk DGuE K-8=E(Ubh/ce/k [czb11cԠapppޠh ]CVV#ĴtK-8Zzhhl(&m@V Sq}PN#TE)zЋ7x$4!R^J# 7s{&dFɌZXhBk/ɊAu.<.i10GlHqWUx@MZ)iҦ9(SΩyS(UZ*jR9(VY([&t|ҩIJӤI&XDC%c㫯0&݀3AV"@ CVOM4TxJ`Lw2r~\`CS'"6v>A]{0wHC=: |@9~sP)qdV@;@scbTA &KlwnW87D/&h ̶6?]mZmYmFkid'3OѱAb'Oq'nW/vv jk:mDzbVsbjt<\Y/gٗTX=ҊNX$ ׂ\ w39iP__Q*ܟ ?T dK) \r[BR\Z2ihy赃YNvjChFzw֐riz٤FgSq,^7LBhcʁ,>slM~TNWz9X=k=f&svڋIB#C Oit)z6# $kAq3OR[i{\?w::_R6\M7eclil16N3^e,5malc)d1řbM&`RLDYK^ РHy 93q`h 3jX0fǺq|G)7<Y|+ZOk@+5؂8qWtJ]]^xMBE}v} no >9,0CZ>W6oQ.wWxK>YjDCjt5[p *`焮pt%N9z[9|T? 6bǒXTu:R*cPukAsq2c t :o~2k~^#yMZly hi]$i<V)nz;_j4{:u Wuj@cdc ? n⽲WkgW5Qgh@_jiFWo:?)*."N)l oʞuYNjEuutttJXܹ*]ubg4;t{@_3UC_c9>mu-Cnu*?؉X80H#n :y>W,v`wUZ_ZqeR@fT%(tO$GBo:٣_{tQW\V2y 1gz RwuI:h4:oFǀ_#UU^,:%pu22LNwgEc`+X*T`A@s;dU^ endstream endobj 8 0 obj 6821 endobj 9 0 obj << /Length 10 0 R /Filter /FlateDecode >> stream x]Pn {LUFBCH5 !J`ggw/ݵ.OA:oaIayvl8o^"$9y?(8l€{-LΏpBAʽ&^ćP@5"4?֑t08G1)?"B mz/T*1> endobj 5 0 obj << /Type /Font /Subtype /TrueType /BaseFont /EMPPOD+TimesNewRomanPSMT /FirstChar 32 /LastChar 82 /FontDescriptor 11 0 R /Encoding /WinAnsiEncoding /Widths [ 0 0 0 0 0 0 0 0 333 333 0 0 250 333 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 666 ] /ToUnicode 9 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 6 0 R ] /Count 1 >> endobj 12 0 obj << /Creator (cairo 1.12.16 (http://cairographics.org)) /Producer (cairo 1.12.16 (http://cairographics.org)) >> endobj 13 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 14 0000000000 65535 f 0000008851 00000 n 0000000610 00000 n 0000000015 00000 n 0000000588 00000 n 0000008518 00000 n 0000000719 00000 n 0000000946 00000 n 0000007862 00000 n 0000007885 00000 n 0000008214 00000 n 0000008237 00000 n 0000008916 00000 n 0000009046 00000 n trailer << /Size 14 /Root 13 0 R /Info 12 0 R >> startxref 9099 %%EOF elliptic/inst/CITATION0000644000176200001440000000113115104404043014160 0ustar liggesuserscitHeader("To cite the elliptic package in publications use:") bibentry(bibtype = "Article", title = "{Introducing elliptic, an R package for elliptic and modular functions}", author = person("Robin K. S. Hankin"), journal = "Journal of Statistical Software", year = "2006", month = "February", volume = "15", issue = "7", textVersion = paste("R. K. S. Hankin", "2006.", "Introducing elliptic, an R package for elliptic and modular functions.", "Journal of Statistical Software", "15(7)" ) ) elliptic/inst/semicircular_path.svg0000644000176200001440000001330115104404043017244 0ustar liggesusers image/svg+xml (R,0) (-R,0) elliptic/inst/doc/0000755000176200001440000000000015104404110013567 5ustar liggesuserselliptic/inst/doc/elliptic.pdf0000644000176200001440000267060115104404111016104 0ustar liggesusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 5592 /Filter /FlateDecode /N 89 /First 759 >> stream x")섰56|SPfBa 9ׂH  z+vn2݃NSMBBACWP  5P35+n%QPP?t4QP2Xe]#*5k 51{5*m5P8  8aF3|fa(p$U&4l-3 Mlp& < ,lL[Ȃ3 P?Jq8b&*(l<hrKF@LiB,-".ɠfȳ$L.' I_/tS,@Q!!n3+˿?\'˜oy^\7ߗMSf"ʯ(:\9 T^=<+Q=Kn|9}y B~0䗃Ð*@hD'JAObsCn*W:'? @ 6*$jWrP2ᛩK0Z|0|v ewC="|juOB]W,BǾر74y~zL,֛tU,7e.O7x~Slfy1ˁOWU^g^3_"̘I#wO#5/P& Dx7ن,Yp wF?2!By꥾ sU}EN5/6ا4c2CL{YpP_"㡾^2PPPP&C jqD 'Obl zL%eH,#?׋ PZ@<@I_°ߜ"O3=wS^̛gë& -ͯA/8)k@\`|߾sL5{cCm蓳n] |o. o qDb ED@mEf(g[nl($nEB Kd _M @%"J%X&#JnfmnF!tQj;y|Dz~|tE}HEaYbEuTu@;:$4m>[camle` 3جJ X W1#NVW.OxG# ;^~Ք G&T8J8=:ȇ7[ӏrU淗M eǠ@*|2iRnf?y53W &|Z{g|J !'Hsn27-dz-,sJƤ:%կWUX\z=imUka/eCI)QT1&d=-M1(b5~7ó'A㏻ klS4j^sx,D\5& Z&AB)|dH'͍o m EviOthOԴ &FsAٸ@QEܠ?;Mzp<5iJVzh,Eew#$^(o}Q [(F#l}He8.pK#JמHx#(<]m.XC5z^ۋI:hͯ'H\b2,`MkySK[ʯn@dPEfX'yv&Pk$dzskte=X?ږ$*|ǯ^-4xb1ӃۧFg=ʞXԐ|}`>_#'9?'鐀bKn6ò/Dt M Aeb@+%J`MDZK<._"ufy[@X/CP`,+g{7XzH48W5*΂K8=R?ޭ7Y0=8_dy"kiEF򱶭羟^hmh޽[.~[Ysii˥ K+YRgڣT =lPW, _y>p݀͵8Vq[Ƿl=;{W^_̊?gyKsb{͈ 3"n0۷}cʌU)?n*6Et%Tڇ;/#9>Swr};xNC)}9^{L/7ʪXMnf`3jzM=yuYYPiz#.՗:&a$x}N<~{T ]s`1*TeI%0RqW] :DZ'̂ ^węUZ~Jem:cmџ&٠X/G~V\_C2̂'/jٱ|# ]^&+r)(H\HY3YYTt5, p/AAL&e$;)c$ix5cd h7LYz;K3ֹHcihz>YZ5+j=a۽WF)W{srt4g=}o~޴NYCJh'[9T&l xeZtA!=V%>b^lrU ~X2+;=3:V*_==nF{!.C*o@e0'5]ڳG(~C&}Y4L4/MXZ7lW>|Ž^&Խcێ$_~ڬŎl[a&?aBwlO"z,Oo^~-e}L"&beG3> +ퟤ_!a $}zp\K LɵoEh]˦<ZR."$pJ,^ +sx)CryTˑ<.-]mFC=.zY*ֺCYgy_'|Jx8@g,1GxB,7$,+<31@L&Giπϣ¸J2*%onWeutd:Ų8KJ>l%HgIhSa-h,&h CƔN2\Lk̲DF.J.HJI!rq.эU]l_,P[7lZ[ QՆ=2ׅAz"ާ\ Z˫`5/cM#^mV88Wz~q6hƞR(.:N#e$611d&Qq ke mF@adv!UBos ^ S !Ԁlʂ#Kkw14$0*D B@HK<$Y3 :žqL`}L0wKL"ePDꘐJ9a,>g"B *ϒ=:bto2bp|vԺRۙp~mwv&O? u;BMϦϕC{O*wAKAXʍ育LCIc(4W wCVr@ om`te[\c-qLhk&΍?CU ].DpL_ee IpϪ._ ]M29=!Lh 4i$9W{Cո x kɝCf<*6*V+S&VЊH< 䑑Z/ٟNnEhX#%^r{%Ï%f;$K#`64YIиO_n2P&yq C@ssNҷg/0ꗛf4k|q|r͓<ßᾱ.Qg<xҪH0)Y1p ^Nr 6қ*:tD1#,^ҝ3Kcɯ4z&tNn,b|MA#R)@MqH$ ,A?R:Eٓjg)%i#' 7C ats5y\L]6;PmY WW9Vt{܆"R'"nSI?-aG[,n"~R9 usx q> stream GPL Ghostscript 10.02.1 Elliptic functions, modular functions, Weierstrass elliptic functions, visualization of complex functions 2025-11-10T15:44:08Z 2025-11-10T15:44:08Z LaTeX with hyperref Introducing elliptic, an R package for elliptic and modular functionsRobin K. S. Hankin endstream endobj 92 0 obj << /Type /ObjStm /Length 3784 /Filter /FlateDecode /N 88 /First 807 >> stream x[YV}_qt%qĉx,N h3 h_?" Nh:|]"YHNdDJ%R.ZPJX;*8xVx^ZرB+  ^ B0RGI(;J B)aL-K eIÎVc k)`HXJ¦h%)YK APK@ SQx*$s TnңHFČ 1DpHxDTX ;JB8T݈=l I&"0jħ"X+;꯰0="-ȣ=\ Fxrhwd(WQj#x3(2) z&xEE(|h#t7P%xT?ECH (h@sp.,!T7x .Xs<4Cݿ/˛F8? )F"^IG?q]|zI{^Vf!AU7x# F!XUdrgy%OTJG>yՃW:GKŘ|zN=ZUZu_Y_"Q ̓UX[`Le[T@_E( mL;#VLx[Tr[O@C{Xg Um%=,篩]mtP0`u8EHU@żۭ9PkhJة56j^M#|{;{꺄~]$|:{WSH>|w"_|vUUjq{v(efG;R>u':N/ {U; Z[&ժvzI-&(>s$-:^Hҝ1䷘Q, cmfabʜRh=-~o(Sҙi3Y2Cȩ,@ʐ%wיiE7h2qW&NZ\wJN[ =Ė^o0V|p&g5ڗ/\ų)26p>;tܖәQ2!K:fKh V _9mf֬C[SAͪ` a?dLwK:zK%;A#Ъ 3nFe_t!%=䒂 lZrN9x̜G!Mѳr3[.Wo77yxe6wZ^-WuQ^\Vsʯipu~@' :>Iho?W;XG)i&mi ru 6OO妡K4̓5l듴Ah8UՂI!9k yşg禕vȋ'7 4)~b2-7c~԰mKmAg7o P_/L8V#Hդ̇O|M {v49Fd扗 o_}FhHQO[ ih-axJ}0p C}hMt>$K NLœ5sިSԔݟR'NM>wG34iv'ޙv22˜ct{+;-=dt^)Q;MMmxS8k©uw%Ey˯:pqվ]ҧN)[ 復]Sak?Ϝ!P;6q69.ΩQ4 P3̯O_yW|=dy2 Cv!OOi:1f%` ޱߵ8uN >q4iܨn i7*f~Åot:l 1;7* c;8.Ή_p33 R&X N?r?Mt[r6fWyCnCKwcmzm^6V=p6\/8Ҹn} $͑UuBt@tpƶ?a/O{Hk,`% :J?ULaKLS9g!xWfǎ0\cr"\+ntwK<7bY X*6lr4|gT/8sЬcyyU#NL`E|.ʊˢW J z\?k_0Ʃv hC"ia!ߓH lwNmm3ɴ5=m_Ѷ΍m Cq@bR&k9q_`aL( BE"`ś&%8'B$$BAJ„Pk ! %aBS`Û%8'B$$BAJ„P`\j1%Ɇ߃m~|6I\fbl⟗x2+W/P*eH+qxڎ kSMG&h̦ WWkOW#7& 87endstream endobj 181 0 obj << /Type /ObjStm /Length 3229 /Filter /FlateDecode /N 89 /First 822 >> stream x[Y~ϯǤ\}T\ZIb]YŶ"]hǚR~}$@\p `9#L͔az<->XO|>?4I/JdJLSS: S`TLH_4(eA8̬ #K`:Y@SCd5ҀAmp԰,*!hlr,jK> eNSCaX$(3! @R! )48V ) IK@Rx2T-Y`8FX!6C$!6F` @ ku|KEۢ z @g6k(^o?5TԢ5"m $. 5C khŽ"Lkm߾eg|d% vZ=eTe٪7Ae/284FiˍFr~,V~yU*O@Rz1|S0w¤?旛f.僴b^{:qRF\5 "e~֛j+]?qa΍߃%My~(?5"_Oh-WUkAc2|b\.2drv̦Uy3ݠ,UȯKZr/GEE΃UʞL%8N=ld~ PX"}rRho2?=;w_W|~OR<(o"˞Iyy6(rvkyȏdoVFx47(oVE#Fɽڏ*e9Td6r~W劦ypXqp e  ٢By=S$Fn?Ćnsò/!j? \I eQMyg+)[lmaNL?ZsDF˒aICg[p3pE~KtZ.i4ekE2n;@bKAJ3v5L- 9QC^s~dok J]zI܆EI[(!v@2yVb¨|~ 9R%t7Kmc״ sz]c$_,uoergu*f,iцy>J!>ri-<};6p(|c^j{yÁO 7ҝv nQS5g/udG/~l2̇@w:أϯCV $1[;Ik"3v怳/h-OߤkO#K_FrƮ2m;ֿD><E`髷gg/Hɷj"6(MLLT0Rթ@]˛?ż:KELѧ-,픉pCVl0$  PY1+ GVQБq1ЉcI"jPP`_P7l)ՃW&@K.v"ؙvjT%MRnZb;Y:h!}] uRA@fd[8ox^ !<^#đE fA9~0msЦ2mۖµ3|:;4_a#Qc4iTC3SE_2`$ \{uƐ~Ҙg8_do_}/q _cޔhϩ6L. Y0#sAܜoJ94lD2p{N{U{^S#St6-#4BM 42U;0l P&@wQȞ)B ] Rj{u'RݬnK$*]'OEuBım[FW yb@-T- q2mO%?s+:./C. Nt㱲E5u[_pX~*B Yt ^ODž?u:qF(YG7I!"]9[{Lqt7&|%c Z: dSA>Ʉ'⇦Tе'!8b$"5NoϺq;bT(ŸY_M2~WlYU?5Koճo+9r!'5i5j@ 7'sR>P`s\A kraBZ{D=G>Sr*ےFyڐ)𧓶{CɈ>TʈA!Gk$o }==fq&v$tJ(cg| 8Bz!P}c*IߐR| y-kB;UtRL4Zr$ՏF0+t:V@SAInzӽ}HVc[k#69L=|M*jMdh:a(up ҕt^ ytX_jҥ:Bendstream endobj 271 0 obj << /Filter /FlateDecode /Length 4121 >> stream x[Ks7ة)ؔ9|Pd'#̔vC.cJRd,zv)"KF?n@ofm#g-/V'͉b5ɧ4ήN93&F:I|kٴmpb;lhbwѯ=)Fm-<[i۴X.9<isb{At벺'Xid ^~90 :ZtחwDނ,0 Nm~vdeH e7-[_l^%}%fn}Z[kC~]6'|am?uڸi%$گN%D;00'aIP*\YlS6:cc9ؕN86.VNuvvv J4|6ikJbZAj/%~qMoʃ~ T^䌲\eψvIEi˃}hر TQelx#BalM' _XXF6Vs?rjlc*uќџsf>9 RwE};?Uf/k=Y`4 C]yX숨L66~dez0erlʗc0/CJ&өu#[̸5kk *K"8} 5}Rea& '(NZ =Yʋ݊~R<%L-#DNt# D]LW(Dڣ>hRTL5՞B>{nXL7+@ SulvUoɚ".`6k]N.;%кA c1HoY'ȳb?6QKXdğv׍{) " &-E 8Nnd>^LNw :qcpcrMi0Brs}C5A1Y 1@Yzchѷ$ %XRxooq:0Ou(+T@B/ ZA*G9~o8M!SPȴ)` IE ] d[ň³UZLёp*jڋ\8UfgF}+r(0 U*H{5R0~ݭzP-In91\Czk(~Lf;qZ< u؁8"2wȍ ̢{ۚ6~$B(LPiQ$6G\Ja.kAC[(L{L|hh"J>E6P)#>Oȋf_lƟ!L!"f"A>Ho=S%怒 ]\#?*xHKnž4T>~I4 S$Z \IC<* H-tJ} @D̨xH*W"ΗE0Z'Y lY(H=FA1h=# ?I=v}"V_&,[mN-NR=&S "@YYEXZ\h ,WoaSNR?hOawPi|Q`)z@̚Nyɓ{p_9bfR.Acn8FMM0nE6Hդ Hjq{o./Kyug3G.8q72ipoHCRIqRZ'p&<[Fhh5%+N ZLyRA|?wTV0WSr7#-V/X'gQOc@ cEr.'f}?7 A8:88&S#ь,.pOBݱ=gLdLp٦ r-R@}Cq\m=>_`uejgxꜙ#~O7Bꧡ`%ճTxoaAK!X-Xns,4~(?\S|ILu?!DB0RP`9>F3A\|15c1G(Z[(@- xj 㧺m'MD9\?Ȳthfj2&j%&ឭ2 ]"դOS#c'MyH:#8}GRC|^ (qD!<]Jd$<%,.n!d1; 7fWR uPŻXʰuIŔ$ZD:{t WaI^]C* vċX5JTfJT#M;eZ A3_ XNc9OkIEZc nX$8yb$THJrqpѭCL1%j q 3}nK{\]BS?q8OLhcX%!]q2Yb*d|FD_tC=)}\@ϮD1I}\brrh>l2TVMT[w^|/y-հYOjH:X-},$lc“IҐR;yNA.̤@տx>dI ^j36֏zMN&O:̐q*|P"F7.bDWtͤ +7RBxۣ}΢$XVuOM'>j>!ҺItx= ŝ$ݪ֩zpp3|l rN==p͡مbnA`r_~%Dp?`-U9{-3 6ιY^+৴r^RXtTS`SnPi|gOa6oCե,bb `/lWUxŶqYxZ==FI#qZ|Q}TcD=OˣTDBlPj&+#`p|Kp}~BO:gU;|>{pދYCl%mt}cXendstream endobj 272 0 obj << /Filter /FlateDecode /Length 3473 >> stream xZIodOajW9 `ċ$8ĸM5MBVAT=}U555_nN/g'F8<]$la3fF 5;ۜTr~/uXM-yZ[+ k\u. !DH]]e/=9ӍeV[)-fx߈GYkx&QJBjbny휫v:*X޷[/5U)+R⾸mӍUS,ZZEaJd\*L}C;g{u^oݜAi9ּ zOqjg87P<9N 5^ouQ5%1Yaya$n/+%[W9$ o?ȅSgȨn13u}~v5AϮNygʿp-|np[jn'oRY SZ<ֿTI ^ufjfy# C/6 ǙE fvi4l̈́l\pSApnq +W + 7!&nL`R!5SZÅ{|4xvz;;\y#Ј)aj--D! _>Al R!kBy4 ˜[h_ܣۉZM8y c;_kᓞ=?0(kfd&/'$C:!|%Ȍ4X(3Q4fҍF)AΓnҴ<D{;b[s$n0i MXhH[')UFR W2UTҔ5S|IcS*/lkSfpW}V@ǻƃR HGn@]|XH%MD1unƏ;{֡MP|%^Wێ^GdƵ榪cAЩςSYi~|5^FYs0\}` `^%<|بρ;0rR*85$ M:HNVwUO8HըٍG Sa _7Qҡhp0эR.8\- oܷTcT(CdN Ct _G `<6̑ ǃ,bM6l$+ߧ!M a'JI˥B?څG"}|эjm@7ncISoeß><ӈ\_jPp'%20ʘ\_4R PxgR[cU>Nȸ$!/mEEFy,Ð#C||?o0Oa)E ŃG0*A"# *rJba73U2ߒ+ >/4 +YmȫAꊉ@& @~| ?‰}{[M?ңQ eiyŒyXCM /q{ԅ c7 h68fC犣b ո ʠ櫧"|}&)ޟI!); IHkv9EZzbn7:1褎}+q>iOCQjGQn"oPbiH~6o(hU@h`>Tg"vԐd@ mʻ  /^ l2*hlhMx 6G]OQ}e}M `C(bE,}}u;iRY ehMB HK<'YaギXQ}j4_H}nחhOYw1GOID^>wҗl]R1TOE"#a3Ȍa F4e]ԠTh8"@g:<#hiccWe(եǤ%NC G]Q } 㡸ih_i0.ڐQ_*FX*9vyۑQ‹sgQ&o`ͻMܓMJo#ߏ0A>@ch)LS Lw9p=rzwNkB9<u8 K'%t1 дRavP}}\*f71I똋9(6p> stream x<ˎ8rua琾)IY|vkGԵ;=YYS>$%{ƀч.`0/k٢Y;{Ej?quc3[p%[(:盳w͟vˮf]୓-)ۮ͟i0s ,ڎ6:¥xpmZ+-r~}֨dP}<-W2ms[r[#wƲnc/ i|gv4,c¸L!=Ss7>]l•rf@E)Xs57!?mSU;gUaێ7=N)nEsDM(Z-55Ϟ\?%XFkJ gw<(͵y<9.T?}3Yn36nU3dZ8L@jd, u7hS!;р ptN=As<72.8C$n$5OS}\;اhEsvw?.Dߊ!`Τ6M >C82i>FJ "ksZ^,[ 娯W麂?DŽt} 7"P^32"_ dQedSӳ2j5kiUk s\0Z\pE4`HO&ěp򪝭~ڷ>Ew; zIVQ"p[_gVoHx /_pXDx ܅] y3)*>,$6ZuJƛסus ʇ}j,<ﲰ|_l>,0Vd]@;N0eD?=<)|*jy`A:oGk῟;=l1wWeVVR̋Hi)#F6w]qQh&JOmֳq:^|8CV? 1m겥'D}*HGZg:ZlZf;Up.F` *<<-V` )[vT-)Ep [Ȱ0 kf "Вbq\ $dwQ&!fWMu;'􄰧[@ NɯS O[Cu-ekЊ#oǕ\eHَV2ʊbBQjh9XblrŴՁS6a4( R\XXAG$5?ԟ^ kktA1ǝ lAYk?º&lZF/r&+ ٹw kI8ȆSщ\/*ʈgeq*U2ʊ4@:= 5A%S"du-ǵ\2.fBs @`?E?˿~BW1 4_pG';`eOw8WXkA !bO8|ϓi4?`h3b^u{n\j&WjZHu !'X-ʢJjIch@~g * "iDJW~}tV ͈-i2&t &fX@MVa{,j1a2#h8~C_>]4x))0np%[Vo<߱xc%Y16mvOrY*jwƍk\3BQͲQ_;g(#Rk-/9-.DwckF"1iue#o<f7XP^YY)u/z@}Hƹh#yO|lƵCT2a/rbWСZ畬݁JH~lA𫡿PQ/ 9S$đ&t^[˕N`!5}ȉ*~wc'M4U73] Lxn *^[I> Лʰ)]P; !!( Kf\c0ekib Gsǫ]kAwׁv `f:modF8EjH)YФL 3 ;/JkSѴx 띿DfV[sؐA9o`SJڻ%(fPҪcaX|'M*18ǛB?ض#ee(O*~T & AE \I~he|~o&\ΚD \~P8 FDlAPٱ 5!DNF $^=JGB%pi4H)+/B9K֦drxp@Y3 sNfȹ>Р5-d$\gh݀mǸ(+_$X塚rHꅾ\`NfDQ-d5՝@v/bN6qz..P52A8'$3D-͋$ L:Y z9M%)5.l}N^(Ey@3#lJpJ^H3`o"r$;C5ϖwYQ9mg& ik j:mgmkK$5_]χp2k499 ='hz)/aQ8Y8EE:3jNF;e>{~1k.NJO 0, 鑲 i8-AJ~VGꟳgFӼ魚.Xbùբ9=f~xZ,,\ i0 0n}af ajNͿ+/*zm1NSƊM󻩙Fh>EPE|JtqT32%zk,9e4)< ~CEocJB_ڡ!?X8fI}_> +]L`\ %G9) S;ne~FauώdtZ Nr3TE0Ͱ&fj_ Q[Ȣ` wz^Ya+K&Vl_-fQ1^Qů@Ȅ;:ׇ$" q,twq1>C#G̤}KMQ犂)Eo+% +/B]8f15 i¢^2 ~Qi2SYKSu~K|.M_gtjen\#Isudh>W-fuNdG$f s+ɸf&5[Ȱ/,:A+Z&da4#lYl50E3Rk1+?*cBz1W! 8(ټf|2ʴLEu[$lxQ9?Wڹ8Buw>pKu %GF=L @0E.4ڣoilȿ۽UlW/I =\IW㫵7WUL8B6J4Ik>ׇ2X; cG؇5y&9GV)͂-N<*7ZwG ao?0׶́~UI;a١4j(UPBUX?VOy9J/&r?'d!pbmh@FA@a)Sw2ڸ& 5;NJ}HD~ZWXNP}cNΓڿ$w [PѴz݈kVo/9\K!슬,s4(N֓R0fCDZ۟賭/|!Gm,ϐ4}$}:kT'D2o{߾ePIE|QKWbzX d,Ej`_T<}5 B4:1Uiʚݐu!Gn}-~Ri%N(Q:^(j7h֜&N\hƑ.<̓6 m=\e}`TS|frP;aMoF>!ƚ$Ǹ fbXSi_╍o]ٛ|jey*ȫn|LXϱ` Đ:j?֥b *ETjyȁs_"8;!>#|܏|NK')8&5`"8u6ܭ? ӤXH{abƒnG;_IsNgxendstream endobj 274 0 obj << /Filter /FlateDecode /Length 4069 >> stream xZsS÷;&N;c;nnGLJg LQؿ{w-v:z@ow&y&'9W|rsLүj=yq~읮+99>]䤔Y|}&+*+Jr>?{/^M,2e)V=BhWә:ˍɇ}g񥔥+w~*lo/?e4LFxV2(e5T 66+9*؀RmVrK["|X׿,}[Jn~u‡f:SZ%[BCgX"ݔߡuv(qlF+-ɺ-7^LWU r-;?i^Q%05u:Nԗ~-Ԣٷq)@/6.&WJt&GKY29sv}sh܅q:D?tf TJhWPƔ{?x*xlVD=h{qBSR(yDEz]^5DumO XE |+;r"*" >\*)_LI.KEUu:b\jq1 MyԹ}!M¬2UQYaL7~#ekS2ىa[kĮ¥_QoasQyT'9+=kTwd6=W7@3~̶VqH7bf4./łE2]G;EϪ_ 00 wz`oWS ;Pi%lyU nGeZnv:LKߞdV\"B|#l02%FZڥ qSX.̴cX2U2`QZ9.Ȓ ΫI -Ve OM%A"vǵj2Z5+@߃_ˍ|Y+I@RP)D>`Z$<‰'A ;MhagU ÿZVLJVQl8;WLfde8\ЛEoX]n1uC#W# (L9J-|^U_JjWJ} _ "k\m! GFvKс %*ҽَk&6|<׈C\vxuFću9sWQ'`RGdYi,z3~:Pk59;m#F}[Zwg>}-3]*] /mJ k0~Ite:b2#ٰ'G42Ss1}X1D%H'+9x Z ;b ,d"@ӌ<[XLLZ*2!M{>ulef)i^/z^|4*b䬔 M (f*/F-y@GL> _ͣY$1E%ق Oi`#j##gv k6q*5 7ìj#ԗunPreӖi[^Pt6$ZU^ԒplUuFzOXK  VoGj:^k!8:)]Ho&XajQ݆|Eg@sL2l?Œ[BF<7|LEX&raNGD]:ZA5oH=tYP52&Pj}U$w@"9d ` :&Mo( JsL˽ zc ܀HX?< e#+yEz5]Q_-Y)NlsA?1*Pq+ճEZI<y;mm )Pd)D9ЙSGe1ߠD>)Cv^x ɴqTz7+4j|TWC. ^6(s BJ^jnTIaWxH:ƨ0bv.m*_Q!E֒ ^Eh譀B 68.%&؝Rgy$[6/$,xW%́4؈ƣ{/ G/x@.,qR/D_fJFǽl%fڣi˞MZ0iY܆\)69d (:i*|^:%$Q|?{#'ѵ X# |0ޯ3v+S^>.'A|;Nyp[ߟ4UH$j"[ 1G,A5ˁճE=D)Oj\Fg'' 0iW a,֋Tc7Ky2z 81w" s&rg":6 ςImF X CqB"a㡰DʅES C8[(|@R56Wr c%v|iUN ]hzHi.HÊbuXݣ%!K7:qRM>;5<.߆AU sC+-iN\ras`p*M #NCO˥ ,]~G@ϋ$W^lGnTNCvncD oFn,ca8Y9{1 6SsU_%;7 0І.q_D*Bzy橴mZpvsRQals]2]u앮|*bdKR)`jR箪CcNN Pa{˧g\&ey bN<UwuB> stream xX XWr7b(w1:&1jT\(**. Adsf #Ҁh 5΋%n/5f1M4^fn:N73uWWսJ` EEKC&6+@>>Jcw'7{v#Mv-s""͋ oaٰܻkS 4nk,f2^x3˘Hf3aF3+1*f2s3c3$fLfa4pL(ӗ c3 Tf^0vLXAcn3ʑL7v֪TDq\AO=IŽ}ϴ>E}w}/x襢~?h7~$o 4 ϡwhw6tIb-1,kRb `HK#Rv!\O(?C5T5(7p66 6@x~F.͙es]5V3APiLӐ]jM~*t-jJT:T8Ro'=fyCC%G Oy)@8!=o? ƣ%68[>+3F$08#1Ʀ]%S=c5{SM;Ag `bS|_t7杀}jlsR.W rȈf>1b&8d2 #?Y쇽DZD†ìg L}Aa]2&]$˷+ؑ;\VF3p8qH8aV.j-Cf'vqU\f pj3j5;OW`OMFnFcYwyfSH-xa1& ED50Q-}WmJ:yIǏsK%Vs ]J5L5@oT&aƉSإKqu{euo@W9ʤZTqF[1%-_'B*DS|\2(dK!{gv z]J>xc&B( Cp@TmXfM̈́Ƥr蕋…}FvAM$, )Ef('/=)|i͝fmc#*/My hZ|a!bFۏ51Bm,Ejծ]~u2LNQPZUN6W퉍 3 M afNX2SjPOMr)jS[j[^e)pXXJdv9Fj4qu~Zhg*rWa[sBqTvpTmK_x.|p%oBL*9[OC, >%>!O.k֧'2lY >_}kEk'#NN7?E">Fbۥnӂ|/ճCes_N?a;IF;2O0*tuKforF|1%( r1~jkuXѥz>C<9;Swyao,[k8-Axc="i'7뱷'gLnm쩀#_u6Oi4˟!oy8ɾLp^F/JIT?xs:aNJmӈ׽{J,<E%T4¢ {ٶ2!#:uޘ$hWG:<b^=ē>Ro{U`DWJN&H,K #r&Sn[XY~Y_o6oC_(i.TQw@ L23t{?^;VC l)~lA>9=5vm WIZ7N s9M _V!2[\PTh)݉ zx%PyG] fc]գb,cZEzS8,~+nUpK LAt`j /t xa$S].'HBD76ua4lpuIտ΍5˶7r˰D)03ﺬʚNpUY7a}׿#.8I솯Cܢ0|<}ηGPqCi. SVF6rBum44fF`g@:xB&JŃ h WE8qT >G#o̸V|Ep$1ȅW2p.6Ֆ#a;O9 UJ)Ճ6@0s!Q&c5Q s7{ytn)N3z@%{05)82^Mq_j+ĉF-¶XsHYHx5ȌYV׊$$&9owl0h%:)jo#1TWޱcd M 6_հ`1RB=:j03ܢZ:7U | 0c_ϵa!q SXu] o,Y.YV;H MMR7{ͽu*_B䕋mP[e,O SFlοѧÎ5endstream endobj 276 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1433 >> stream x5yPW7$]A,AjcLA-:ADA$ܨ1 G~I@TC"FU;*ZqTfzcZIvӎ7~SP*JPxG,Ky=c[ZbR,V{̦ /I]?fu朝F1 g|xk{1܀Rw:FԓIr8 l(b"S %%uG($YM>"^$Tu8j߉rVDJ8ծmUFk1> ɛ{A:9*Jj!2١!:5Vȗ̩ӻڀEpHUkNἚlh[H< S*_6+Zz^T(qE&5_apv\laE0Y=eGi()H켙ǭ9ZKlNlh˿ "%QyQ󒥛9BQɚlыDd5BYi2-#xsV, p|&H} _G<()>$ g׺8L'cɔʸ1Mp49O/jNדAroarVM(-͈mQ*n(7GW3fԉGwh,f+2|׋AOd"' "\@aA@yk MsWC[߉ˍ\oO6Br~+$ݥ~)-׀5R}2]&AN[F\wZaUs>oĸؘRsMxϳ<͠t/_N'Ӫ0TؗǨ~7ՊwkRj./>NQendstream endobj 277 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7520 >> stream xzw\T2 jDĂ);"C:t`DI4FԈ17$&fqg@c﾿gg5G-S EDjL-PK2j%R-%~TjPۨTʏNS='ՋMPZJJuue$_I%v@'nZjuzu]v0˙};yםv{ qmϊ^C{%z{is6Sq˞Mb;n]\._耏{wY:eu>~Й3_nTZ"D-}HӔl-OѦEAhTIحGyZN:Ɨňh5G .03Adk@rѫ *P9B K`p!adnYNp54٠NWU[i5_ӗ@0v1ȑGx9%`)-)}kެ-ڈ -TZBK~,,~.gȻjl}<癭Y_aq㢫Kl['2MSVF{j!4=lBweObtZC!Ho>ZQ[dLޒڴZ@i =xgU]-byPa/pw{$X(u e Naaׁ 8 dʃJ~VR+Yĉbsy}n@QK7oPb*K"t81 bWR|hO /ҕA(k^BRoN^ס^pGFr¹#Y> c8|.y eBZTq:68YFqf$j+VA L>K(.4Z :{GGvD<-CS bHë94q6/[i/ʐtSl5ssX{>Cl]OS9+ڼ^ʈ :Njv'Hwx{qS ]z(fP-sH7.LN(Ggb*C+q4z;:I ĢhbX_#Wx-{&WÎ۷a!1>Ѩ뵖/o7OZ-W-4:TV*7Q,Xdž uBCqE9* LVdǣĎ I\L$YREj5⾭t Oe5.s<D1ĸ^Nkh,-4 F AL@NSayv K՟=ġ@~\J 2ff%R4o-MKW:ݧ|qޣ(U"ўn41KU &C?Ȧ0r=zV: >28+6ۻfktǬ9ph:5,`r H񳥊jqj{+$G}W~@e&JE4#aR߉o̩gmg598`b 1RHJ닊X EЕ~!R(ߵV9%7F;QXLc+,?+f|jN'^ x ނ&hv+rey 4nLN(,GF-*9~_{L*c!|_" AU&KtP3a%׫_fۥ"v8ӥ/B$/ Y72N⥱w ^FƷ($u/(yo &%wC8׺Ew?NH;@( LU:J{[#0>b5;&Y6 h} z#zc7l VaF9 v s#|ӱkBb)PP.& ՠ Ut9B5HhB`X 7Ηɪ_4#yj!)ȝəݒg컢^)z@Y9!04!gB,xwbf Lwz x)6s\J`xeCg直(PHmvVHC/7}ӉftS.\b*8Q^lvFB B:S$ I1p|8Qglb̘U_8I>'e7&de,au(dk} ]mL2bHM J],uF r9u$Kĸvp(aMMv)>Uv:ؑ^Rzh# ٰq]`߸ȯxGEUaqEvR&HV 0Glj>,-x 83R/]9P+\P *dR6w;zMO%)w>̡NGh!OO?q[Gi| ޫK xKHWq9,Ź4bP'g@V zSہ E0R C,]jwso;gȶ~ Ն=ٶt`6=&xLjL̟jyyzFCN҄F}krxeݸrÊp +U8}3&Su/&OWD 1R LX ]ZWr3!f"ZCkS,12EveyWFJ/p_wo'`,x*#2ȕ"g7>^>̽ո\͵&'tH2'xbAD+Å\;4d?cҀ&M7ՕG߉SQ) WHΈ>ߘyl:22u]l}sVيWɞ anģ4ꆨo)2'Ro̢U& g"(-A"}e+|$?\V[5Y庅be-ưc^ ^E8q7fU[uVV2Bj.I砆҂ƀ&M0?\z!!TQ> ::I ̢̎RÔ u>;bC܀J+5y eevziPU4o݈;qpO~#{NrYd]Gm27b4<Yo9B{ȡ&ts9,bcU"a=$!,>e䲘We2xb܇/zN^>4iSY TY *diuDk_kBmM;1V"K},ڎ]U%A[7w#'5uмS7Z4!+0&מ]l%*IND!ĸ=:":h!%73 7O^ 9Al^rq.T2AkNYi`8}eh5'/G(\lʶ $َÈLyhBdjKԠP eDf|%M_ <&7z0vnar xw.p L$T͋+_]i$ѵ= O`)Z RJ~>3ұfC`<51@RC`ֽDFu]=/9"Pog-fuL8"w{-w]4kh0SHj 6$J‹ؑ7r-j(X=cp#tG;^Ӷhr ))('m\PN0>ɿ$gm~c8M?v2 J|҅O`)|b+]ReɔWlI銽I+$LlsI|.YJ:]g’BzK4},NJ6{?1A1~PHO!Crxҗnu;<6_~Uy6iJo<{rld`y4eX-=@.b%ؕ1?RNvZ-!&Vxx+]8| dpx*driQR!qJK%G樘:CK2qr 9t fp#Յ泥clZɰ;ݟ^]Eo]x':($m$("(p螜: 63RI^_@/D_*:?$߿,ŷZxv8r뇍ĤVktz4}!= ۈX$,-_)B/S[;*vTzFDǩTN hskҾtQ-Ȥ%%')]6+Jy}#_==+FwqÎA=QuFUX];b1Y)l}I&04şVGQdfd-% Y;?FV4-T<~OL~2zaթ?Gs1).HZ/h޽DOYv&>J'NB#kwDžZUD11Eέj"KTHXDi1 \'/Dh9TgrH+pff˜7T:-Do,ayiOtz'ו8Jf09Qz;ko~ { d[3Qq; TˆfΊPU#Y\&H+Z e6uXۋ?ך4o+ e:.N}NR $Rfg&gfYsRH33&Qc Jo. n'rO r3?i&|7].cՔ[ 3-[F❣Wm<'yx2\I?Y~Qp%hx#̂%; e/Ծ=^ՠe`e.> si#%v<#L巐;-i{%~%QaB.ho?s6G{|o+}I,Y$/9ngb"bP9'{`k'8cA]vSEdWtӓ g~Ou3V-ū\)LBXh:bR"4I#AfΒ[CJTFvgQrm^n,wJN=0MjW9+6lt!DH% QA_ra<`s^${bhq?,B"II1{v\NbS57s!#Эx\Vˢ4BWƓ>*bLmȚ~|#Uہ}#ZR| FڪEv.K&mg$Zx0cpgBKuP>`/۪ˎ*Lbp_g5+K d>hyM7?g._t Ryy00rRRSFiYm#-@Y& jWժnMziBnm".endstream endobj 278 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 516 >> stream xcd`ab`dd N+64 JM/I, Jt7x3e,k0g@!1$ O4k 3.?X~zٮN`>Cw۾iJ@bU&ma뭝TȓbZ~':xƛ?^m>wwߖ쉵q-q^+}k;mwlݙkWׯiXQt]9Y32dN6Lu6[mpGW/9h5qG~z3|[짗_/v<_?~[?Di-'ד[[};ovߊ߷WdtLhJU)O|6Дbܥ;~3>,}}Q\rUl<_s/Mn9.|ͳz00Gendstream endobj 279 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5467 >> stream xYy|SU!4\@Ah̽#n (b-PKKt_Ҵin˾5ݛ6mi-[Y,E+⾁g''v-n#3{}\1qpflظ%3=6づŦ?ÚJC&.4sg3}"dUSr [/ZW^0~cBb䈔-[ #`%1DIl&""{Ľ6b>X@ }o Achnv4.IeJADnN>y;Z`> %q?E|`MjyiyCy9.j|MPĀN+9#je8|<4MBi*fy;LNM]v@d+}ϭgӾ|7whETv"O_y{:t K!&.ᦌm;wtq[O]C[z<Ҽ{3&"XrO f$ Pڰ*效(qgeoBD0F%C``g_#Nygwz΅ekA@]&C-cͦ~Ȧ1ɩl0,*fy#4%bҪ,[{3 ӽL`uZmJc+ `88h*tv _`2C(~ snfS34*3}lIn`5K ]^)R)e@~+9*o&R鋕4蔌 VXmO,P'L`DjJ81  !f2ht%L.K!e.0F H2H%6e)R[LG~Z. [(3`4%FOީ-K\{IʗP 5{CѶڍTa0! @3JS4dCX+ J0,!y7h]`ڷ~8(|( =v |(*Ju*v5*` r)POKr0GeљƓL.#fh$`pEa9.Z2|Kz)4Ew>\}:ΑiMnݦ.EjY ֢Ʋq=kq #xAڬ*f=~W~嘄:f(/(W}hZ?~67KI}U@n]k)MKe@H@)He ]PAynһu]Rbf?g$l%ї`-{q܇v[[vk]{iG'60ZMhk<ۅph|(k FB%U|-@ffut4 5.4\F d]EJ`,]Ļ>V+ -~oc,P{>n G "+(4moρ.Q@q %?ϑgY];u?L^^oY}}mA/#ojek뺠DžgCuՔtxC*T>VKh0 \ʊtURG=i AWZ"gf2`P'a^g)_̒vz;fk .Ȓ&a٫ |h0zu tAW]v&hW.*?&+7;dʪMBdbmW.QJk .%my&E.=q{.|8_| L,;&dRhe»(xUiEUVʒ#I[¶AxF{ "f31D/>{S&l6{*08ԕ!cn`l#q/%04>, x, Vԋi+ '_Oj,7Z(v.dCSs[3*hw˱}Y mye-۝/~Ͽ0HBUFO+8sv{7:Gvv:~6\W 7> ]-G}hr~;7XЫtj\`.!}T|77UFRJ%d65m@k_|*"mZJ@1z ]/`?-,*gCAtoZtqOʶZA3X/~Y(l=&ZdG#m4/ z8*!Ȃ{;ݎ~W>tLJiqGm{vT ޞ70TZz&/>W4[*Y'z|ȅ dZ#ړ?p[wKU刼ȯٵu@I9hҋ( 7T0[H^P2\b 凍*H?BE$ &p61gO{5vn *>r=D>Ò`C{V{ pѻxXSpb[Z&bL?1l Vh_N6gٿ Vϭ*#~fo=vS죫vG@,eMPII\,,A57Ow IN{OƷ(]J^PR?-r{N7;/ڧRC %ojtZ}\zGZqd^x.[y|lVΣ_o)nMEJZMsI\Z2-F]#T J$7xC#_@U7XlVr?f93wavX]gF:i믛iFwoPlI/)olvL{_Y;3gkuGY8F t2t;lMt^6y.OY?64u `=w 8`UQ_C߮pr.vf-aoKUQ"vB YS#eqj@Z -%=NINNAJQ׵^iÆϫr ^+ZnrtnIF d~29'pG@9|D HvG8 !~L/kCA) QMa4~r!Aimd?/(Ṋ)_gilMcY2CKIf5㑂Nbw,?ƱeeYZ*۠H,W'&0MUxof %A8}3hM4=qo%HP|hǿA|A#zMcQ+uj LTȭ}nFhfgl<`م_(e.䶺AD@9|X5߭kUm[TF t[p {7Фϯ|N?NYN~L(-<u:x^VL'^=Kk5))ikrGqMeUiNyv6T=ABiYU6D1TtaLSkH-NQu_w|AUY)JL9;x:I/DHVKRVZK+19wՐ喯"%۷gDy_ekmF 5@(@_=zg.!nswѓνFDoTvt5~>\yJLH/Mb$4 |ц3S~O{҅4a~hok;y6sh7b*^UovkOfZ,94ԊV%+_4֫^Ð>4kz$K+;[L.MJA-K&Tzjj3vUtwm?_<$v.fL8hu`*7PO締p,xmq p 7ᡚ> stream xXXWמ̎ƑLbb/!* F^aEE:,ե(+*1q%jb"ɗ%1ј|e}gv{{sFBQ%0 m9n{=v4_NڏĪWND|< Mdjy- \l!$4,)bg䮨{\; h͒3l6g[oϛGQGԛj 5ZKMܩuzj5HSfjZNE9P mj%HͧU3BR52,(KʊH(ʈzzM}@R(SʌbeCNJPq(Y,i֛AvtTa^cFM? 7.3Ѿc&ؤ5u31eNf ?q{ ?aڄ kakwz~ &K CrG Y~(ŠxtE, E (o@ 55G OwCXH׾aPh@M^9lA *wjpW&Ybxӿn<ޑc?ʈ()6"s +W |P1-uR ,D~y}(?o}֘Q_WGv;O$ $?0arKoKYkW/^s~ TbJҫJr(; `&!eBMlB`1Gc>?K}Ja'Č@ <8`>JNIP \ ŴA5U{1xl4HvD.97?#?/M:Df#HsԠF0gјS_qU;D~5`rXʅFwt`$>?^{ z( nyK^a9'rC\<3ʹtY=1B¶|`XL"rF1L/TP=Cc7oEE@b ӷ9|Vtvt C {T{HBB{2qБMZcum=V(1p 31HTXVwx^P~k`TI4P#g_f\% 3]CP/@,/ꥇɰmBXtzMw]L3hjkf)ۡ_těf;޶}nV,u6U*'ަQ@ᢑJRza.i\(74Xw 01!hA{+P5B0HGVnU>p {#ycxo\z-!CL]B&ul;M! Ur#l)\Sⱔ !FkQAo 3 qۣyD…ݘdaVCQ0jx ͑CPNaAViN Emhãr+Q1jC95]gTl =*sj!z)ʐ|gb^N2~Ҟu7wLA1ue¶,RdfB|yo㱛,Mp ՜<:QYCK~H Ű%ўQD]G> k!،aE ٯR4Mhnx.=4$Aj@6?p'xO4[?=Ғ$ ><00l(fLCg>!ſp+NdCQ)8R f*qʬ6ᕽYD;n_jTe&VTR5R,4LƯrQ:Bލ1lJgUǟ?~@Q7YtZsq/Z܋\!Z)bK\{(ïN:}:]0äs9jiUԖ+gw9Jh={<O} p=!~! dT]vw5^Ta:~8J-u 3UUme wTE JI B^x춣 V ^x0D p`~׿2t#Pg; R~p-dr &/:xHCcgmUv?F<^>2AI_4{ejB- gM8 io2b}vT7n5Rfh˰yn퉗D OlC܍G` 5,pʰ0F9XVi8ϗ]|DNtN4n8`BE^A{H@l٨QVEl҇v1|ʳħ6}Ikzx 5lՁFx!Ժ# 7wdhX!R36 V C?&bnupa.vmv%X8!M@@' A?6$a7eDXV- -Ĉ+lG_h'J#~_%~R*"$pTdآ=xIN9!(-3.G?-P`| SyÔ=-ؾ2dp@ $ԐI7~F^)axpCF 퓒+*i m;x?^y1[U. yy i -'Yr0gA_`x, 8a wmK{#`"8ƹxa{S:~}ʖ B)sp\g9vUW?z|U;nh#޲s%X_=O]D *OxܒP /GL]"X[T' 榰_m ehD92-{ #Yi8KV9> 6߽2?}M-G뛛y|/ߑ_†[$bhƵ#~FC^^QŇQgxI{m~F{v$8TU} ,GAGE<;.Ƨn_ yf>VK!0۶!F$ˋRX%ex)aO'&!9Q;X ?Gp72%FDwo7iK@dߔ]kl09-͝ O"39)+` ~wQX av[wvNxH 2KAn~M9j~Gxp6SY=P߽YekL4:芖@oĶ;W7׎&#,"zi"C{HjXCj#t+q߫i\"",EJ2)1%[FE+j JyCAyB,;a2CB t®SaiO]_`s`NC;a%KT;og1*C;rSbyJ]!!2#&3<2ʴ'~kNsG,1]ev2(I5 NXyod]<x>eBEum8$/;}2鯶_ykRrjG$12CH٧HY꾒>0R&.hŬg5ǦΏW%XMoqUh6,M=77h3<_&2<3 `4OgWq]l3no̼ 2'uryyLBjZj Qra\q\ID7 B10R'bbʋ &eCy):Hƒ8Et)k+e5P$.-%EEHm:Zy)rML(ދendstream endobj 281 0 obj << /Filter /FlateDecode /Length 421 >> stream x]An0E1NUGlhEhD:~Gzخz6i]~):ڎmY.Rߤgy{~mń:oy!?sn:7boSk>ҏ)| 15bcVg]V#>+/8dǬ{":iL3oa刞Q}=G&X( d%`6q Fg"0ڄ&L!Q&T&&MNa,e0bB0p  pN 5 l p 7$͙6'&gltv#arZ9\VN+i.I@2κ +~m^G/kiU-lVcendstream endobj 282 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5597 >> stream xXytU ~ {[B>QP@ @TeRJ*Iۭ}=@ {-ڶm vvدtϫ3sΜ:U|{=fZ~}(.]h-I)yq9?= rr L{u*ꚂMBLfMd#N//_Z.K"e'e rDDArr6_-g R2ȑ$ rrE9qIE,,(O,[/M(Hܐ19E_-}c ޴N.bmdmbmamgEvvVvXYobz,aM`MbMfzmd6-l+ƶl'zd5u$sl={1#My,blFMď'͟$tfҝ̔ǦtN1BKO?{O#wDC&s,y 4?FK/rBAn%iiɪԭ*Pk\SߍFu%+jZ{:>1 6Rx&SNWu*OqX//lƅzFZԯ,V8>[xdiΗ@v%ߍ(e"c ȩm{y'=ώ< Mzzo]ZL>9/8koѦ{US٥99|ƥ=:!A\Na4Olov@#h3h-;/JxZ0HA r0D>44PEN_`ۃdȳ$q%1D-ukj}P?zM$&{^( Gj_F)l}}U2tG# ,W H{œ ޹Uu kK=ht J +_ԮSI5G]X4F-i ,*GJ:T쒵wF RE#]=hm8MnTPVC\:-)@K@F&`pi"vxt7W*ʬaz̵Q"k ˔zR!Q/ӆ[#r¢r, 1C57wИ8IrZow!'\ơ * |fC P벏 sy&8pBg?RTT(3ʭW65v&~,U @XJ?y=pd{_rzRKgB.k RZ@h\.nf*19*5.!%EEZB5m -Pne]fp_Π_4ۃ'G{09sG@'4iPhd#V<4i &TZ| IД NfC 2JU$"M(s.]%&#EBAR=O#7m:O[i3ͪTdxPd.ҪMßF: ,x, 4=t2UBټp]1;G?7xMsLD4l; ~7ۘ_zG>ۃ,YOGD n_C \Vsѫ3 8Kp^F?C|~lpgÒM5ߡ^?z4W'>Ϸv(;fV`E!zlh2HLM`tNx*vD|dT2#V 3 r Tԛ/Kכ{T B `r k~/ #Aí**eg 55ʹkX#!]aCaלc ڏhVJS aq*BvUn@=W| ?B/[ke 5hi=f`lٰGLJ uYt`_VjY-HJLH}Z =|CW4DUZ6a^ת5 C!6u%hn(u?rvC=bdion{ڝFb.%tXst2m[jsl9v-i=T/RU娳TLF2(ou-Nzi,~4lhF#w{ p؇"?^G .~V8m,Df)a~a"lrY0(R)W4~5 `0P.B䃏=6 <A^!FۿcwĽs01U]%N/ 6Hv>&$1  qXj(Udl.e&64uRVh?>l'}S-ɮ8w (AiT2]X%/QQJ!:yk2A+RY#6HHv *36\+jM>7eu5VU`or4NTwu.6*"g-4@Yaw&ء7/rB2̵UX|0 wҏ_P~|yd<( VG K@G MKVmg9Ca#,ުhJU86t9R|fo/Pr2wVE&PR@1_RV4ҠC3e"^Y DK~(zm6}6%( z۵;SR-i(ڤU Ru%ueQ'tQ3ˮ.T=x*I ݊Fh\4Ds#;PБ^OsVSC\QH>'t!E|M|dVS|- ޛىqm&jv-eO`MozS{1#巈0-'ܨ8/wC~h8r(6ђzzs$iN1] ї8k FŌ4DZDKF}&‹Dw?ÃyזjȒ00FlXh^ U4"-Qm5OIs}Zi.qb7#eX)Fn!=]P |ʢ$XP(Z9q ʡJJpa+v*O͎fb"]J|EN&*Ø}O"J/TYjlttgJd:֢7 jj-\H&ZڴN=_o6 FgcKZ1vD$Da 4a8V>Kj " O؎'-T2G;~ #јTzX@ݲ[3wLcĿJJ Tn‡u:xHnzOk\̯V9 *훪5r:a*&ք]wu y6(kA5RXN=3> stream xmT}P`wpYhwјeH[ N*S$ʀx8;$|@ px Ԣ D!54yvLf}rw :*u!Cni@l;=@{tzDzs>zi>#9aׂ,\DQ1ԻTNERRS([AT r˒7&G_c21$3> stream xZKs894-*Eo$ɯq[ԭC{T8*XVkOnf ʒ;:6tYA /3AY^yp_¿ދS'•U8No8)Rsecr2RN TEYV쌦HKgY\2$w>.݇0T{9cBN7UL.*cM;Hv\U/uYj& ٳ8հyLq+LIXװ:eHӔqβ}D;BYЪi'SQ]5a]Ť9VO:|uxrSC7ljM+Q'+kJ:M_2.)o,%3Д+\ʹXR lVj|/;iMtndaAQ0fS c,waaN   ,S/$d_]ݑF2 +/ ]ي&ޚN8u ȶr6n}y6'k Xs`sǮۉp^^|b2U0*[/A)޵7 u<1m{ a1² GuL5ko׃*e*EMHijӟXҕdg "776b]XdwfGD7Gmtdgug Q4;k?uw7nYǂTGcr4^(o&0z~ iz.֭&x JLSdB`.p67CD n"Ii,$FcFe䦂Q!0 /"8t AlRD 8'%:>miaINS,ABAUշDD<ޣ@7ˇCr<@ZD{2ä&B)Uq.p,[|%4*/y)H8WܑGUq|Zu8j(9 ;kl* 0y)> #p‰pC2==?&#rgg)iM p8#UleATѦqZ| NJ3,kS|@B*{  >{`{#B$Pee7T Œ&jfT Q2SEe'J(Ou5(Qkeو #")}W{?rjw\U۪ҙ%crn/SQ_/0->ŰYwn_ܮ_\涸]dGn )Yю[FFˠ $,e.i({In$(|DeķqRc+0L?i5UըNN%>\ A1_Фp>N)a!Ċ`/o:K1l^6t_HkGNS=ퟛ,|IS3Ug7rNtMa[2[=hZld M5Mlu"X}PJi/7u%:RH_P ͚䢙TI?qPX60V同nD/rcׅ *v(Cf 6ʉ q]'C`u'wIB/~SejE5l(i"*臰yоǧ ᯩM(dƨsiĮm˩/]N1]GUvgv:ӟ(MP, QHtJWῊ2*.TP ٳ_ z7A8)Ā.ZH5M_~ԔA}=y }Bll@vHJʈbit{Oa х_<ۢH#fަgĒpxC~yU#c+KL3 ;/җC'^G _QEg~l|0ک>iXt.-j yv5گ4.U?Ǔsf3)frӁ/j.u6({UX`~;]l_o Eq-%AJ4d9sA縢.W7 9kO@Le`TXJH 52|mKq'oYB|aprSh~$ &MWh~/" Ic]zWu݁UYm>؃6@>WOm"Z^~?Cendstream endobj 285 0 obj << /Filter /FlateDecode /Length 5042 >> stream x\I#uֹN^%-1G$AxQ2NU]Œ$Yˌ }b22ŋ|o ~u-u/v{_|`,v;Z8!F;$rN$:Z󸾜<0f8{?bZL'f}e)^IhG bxKbȑIn8-$7mkQ62]VYcYq6$m e ?%(?0OdAWYCmgD :!ଳgi֬,5px^Qs ,uq|)WYäYUfVaerm޶~S!==|7q_zv,mcO_ `Bn @at#L:|\knHz99 R2X kO:P+qV{nq(hV {~7<'Ϧfhއ=tλoevJF2hRb yɌwAJZ [B`'?Mf 1'ǜD3|xOaI[@$ksGkt'a2:§PTKb3. h# 0ሧHf0 ƯkHB9 8QjAz(c^U rH9]t&ī9j5:: Yҟ:$BH&u 68i8K'(gFI.BK87x{_nv%DZe\I%UC&^bw{[;A^Q4@0@uy,7y(Ŗpً( {N!^0Z:%D$`e ?dȿ_F~X|SjDT`G/D]w`ڇZ|g6>HB7o$#`5p،H`Syږ DxE{+(5,ݴ1#s!lR(*AϱRK#>yܤ< UYOZA+*x3m ز`l-uWqFiٌjx1'^%$; n;1kП2B)U=1('M{&&J:DF4aJ|Cʔ@˹gњY@22ADh X 'y2'?htQ>Q%ǴH1Hy rɎAxfS-ÔK9sfO _×Q*끵H*PzGBz@tɺH|;c_G5ė_k\|TO_Lg+o=%R{m^ԌfmcNkjq^)*map"" B>n-^@ 3Lƒ_#cUĕ82;R#P321 , p:EHK"z9jKd$A_;/xIyV:ϛ - JKFGt.O6a oAvK[V*, fz}9쯣uvHr]iDzTOe$DLl,A%>c)Sͱ.pAvϨsj2*Bl#TL1篪(~v Z@Sfq dkA! ֎/` K-.'LOi̋Ψac KzL{tGEUFиǹPXf9ȳ]ǝP9v{X`cYJxҾbRͯ.Opl*յKe9*iLߥt(Q[|lp]AuP A R)Ť'/bNL2ߙS2% 呈ȿDQ"|)W:JҏrN!Fq,wN&X5 T?o>u_9;~JUCJE|F -)ՁRX6ˊ{;fXa98c| ދ~=?yDi22 Hd{.:G&O6VOTM"}:.1YFGV x*ULXo5'd` 0w0YMj.:9Ԝ/\$KtË8 X@H˲65'/غV4gdzk2 Jᨯ~7.V 7<~ c!OTΕS3GP+ZU9AmJN5)<AF1AcF®\azO!>E۬r jKEtxPQaŠ¡uU=8\>ZBOg&l8tKJQ+WnOa8e^ 0ժm(̋Ӱ}NcθzNVtyVlަ`hp o=1dR 6Sɔ-ˎYkJ}XTG,؆[O~*)[PdR,Kbq Mzh0TG.SdɸzkǞ?l:i* I[ W=ã3>X|01t]SK{W_w%3G?_,7?|H=vC|9#<Ϧ;etMĈԸHQfŝŝC5Z`0{9/V[B$ kn4ఐb<\a)QGn39dU~.5^IQ-\g-s/o*v=sM7iÉ(o٣wlViURvq~y^7_wxǍ~5pn=|P!zеӔfumq Eq{bFJ#u\2Z);#bh=?A)Li^ANY:dЉU>Cʈr^ڎr B萩}J=t0Yu^C8b;_P]]~A.3_9s f/O*-A}.Hd&̣{d4ʢkJ _VsӒ欇ksDMZεOGs뀂?p?n6 _98_~_r)SMfHI3*R[<^ڱ .Ďo~t!3C')n^MM!SzLX)Jh< 88ȓFTOFO?$\ו>20wY.?]@zvw'coB6LZab-gahwܭnw]-oiN4Yu%jj>_/eendstream endobj 286 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2656 >> stream xy\SW_{={~HJ"Ν(-5NX3E IJy\0=%00 5dY"q﯎O\(y:ZHL-Whj5E͠fR9X=j5G #.PA+q 44(W:Ez nb0W?g0B蓊jw||CYos6q)du-z.f6 EBQ̫c:y(.ckK"mA jpwRc3aUh ZhgE)2zv= ࡀdIJ#Q?@ DLTMYVAk֒SƢQ^hfeժU hrx1r܂s_EWC!$'WA0>R:8v8~Y-e_ɻ˳)j?5Ȃ}O-:kB.a⭌\6~&<<amu-Mh=ןtR!p1*SI/oyzuEuya؟UJ33ދ4:K!╌FC #㡋Rz$KkjmҸ.NWOfwĔABoX<|po(zVVܞ4}wc#^Y {Cݾ`^:̶* w,"5!W׫ uՐ x,,X][]YS{.ϭrjƖeqS 21(164NټJ@pU50#hnRjhnvzs̳D2CCdIض%ĄD#a7B!$rE&J4Hlr'~zN x7Fao 3d초j%PVӻTt==iodؔ{yr|!Oil!u(kp>(w3cq1vKMv6C5G7B9U FG>oSqqP,=0i!nGi(Zǟ? y–2bwlE#P#ׁuߢV+܎e f/XM"v;Mzdŝ 30 ެhJi^#SWR+6ZpUvP\ GmM[6qaav*?)9y&aՓng~{wbiCa.t+ &cգr$DŽ- w^E$N5<3`y74 Y A&!Xhܬ*(_1u.,K/0.kaQQR@14ZΓ=<Ղ>q _ |ד~4e+6洣|[.ͪYMT-HIJXWDTbG9k˶t؝QPZH/*G2Rm'Uq5P盍Ȅ0@!mDw(KB3sAjeg^aŰ|yj`j?Ccz5wUݥ5 :]B{MhG ۈivEdKQQb_fMd[!h6K7}BAu/~hvt{bovnUgʲw*5Q'IǣioM@Ę莔7&8_?O)DpwC٭2]pۚ 9m`͙UuK> stream xcd`ab`dd N+64O,,M JtwLò)G@1%LW}xÌ~/]bEδ9w$3|[w+o^}݈;Lq Tv *l9Ըp.0{ Np=b <}@4Wendstream endobj 288 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3491 >> stream xW TW֮DD-TM2IDMHK4J جMmFaTčK5&:L5f]9w}$ %HX1Ua 8U7,;pmNhώ◅$o [E7g͞3NIQ/R>ԇjʗB-6PPK)oʓzZA}@qxʙr\ 5Jx*ASXʉQI-IH$|*"ͱuM@2g/(gb②#[G>qqhrQ=sP`:$ oV0>VlA;HUn^E6$Oʙ'ZĨ̺8SP#@v|M.F^δh6`8 4Ev?LR`JB/:Ex3@EfyKnkJXE`2,gk%xUZVB3Ɵ.<o);GQ4 w@*F7N<s?ME#Ш"?0KLZAXs B 쇞=ֶC|PT+!uYog}n9 RX"o Z#k%ֶAhWMcd:s^NʀX66հTirXJiNMC9f!4{3*Z6ls}-dS!YVA^A22yU~fV*a#s ^^'A6~.,6j{4ͺy|9uXQ l}Sx h98F!_F>\1K0YtQ(r/JiF' hYD*9B:dğY5~wșz?/N=tG}-D-(@o Hr )VMocw3PLRdd-Z4"Y} *._LX!{F>ha6h}_"NA rFR r8.Aoc9v$>hnc1<p1JQ!s ˦܍ + nӖ.};jJS[!U$ a?EiG65ANaDQ,PF]/^iMi3 -Zw+sVVSB\Q]/5x 8QGegl xlShed畕eƆv0ilFr~KM~eZ67'R " ٩Gp?:1_s%P5$\!hk.|~oI^Nh/EŚ㙷գ1L5tB07!hXljܽn N=s;#TF/[}.kN$yts IMID)#;`%DF Ԯ2_n϶-Iq1ؽjL(#) ܊?j;tEY?dPWC>ɡi*\4\n@bBdu9y,ddwh`zrC{a'8mf*ָ ΀yݐh&9y͛lshǘƣ5ͭiʱ_ܭ*Q TIY듼IkP!_qm6j6LNaF;K5ڒ"/p Le͚MD$'>8~XgX…jV]֤3% Z}p-Ɓ&;Ngِ菂8$KݼvC_zi9Zי@.PwC8F1 v}AvIlua>y`9DRk}O5M h3%x?Ev _pjp<暋}c^t|y-\3gON[<ȣ\hwx͊48I: |zE@1`[0,dد'#۳|2O/*kԙw%DfmxqD'{-StçpY7"p ȔM?MG|oWlljB-8u: 9jdNF-ԝ hc[bj#_$'cA\CQ%lq$oo0P)h K5Y'endstream endobj 289 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1943 >> stream xmUkTT+"6Dq]fh*+$vl@Z"0 0KbZl4htI.\ilmc]Þў1ƪ:ooυp<Ϗ3wVr}NaI)_\[Z*ak B{DQҸg?#?F|oݿ۵O_^]s:m}Aj&?+f'p3Ej Z:mv~4?x/)]NgsE٥Y mţp"oTheIi -8ěy o偷v;ywͼo7|Śr!!MB' )c\YE2Dr{6 ?Sp7U`1fY}`{ijdx XCi3,`t[\[8,Wɜ/ʷX/2SOlSi(CĻWae||iݳJpZԓQ"nyOx]ovp- P]mAEWh%w,2ڡv7+]I[E*W3E%7Н7sOmA:dwL=I&/<@\Ith&MZ3:ۡCWi%HL,DLeNW4N7 AK-HNg8٘xL/2ESKf4T[C i@zQ:C`Ţ3/BHC֩ԿP%?? _g(:|hnU`#!Cs˥Q ^&$`̤뛭JA]fHHб4~ _]ItiE͢𗉳Z̦aQ=>xCP֫ؿmf$DD޻rl֘76m)_j ulGՙ#XZމeDxƤ򷈾?Z_=)E |lм5ZX:|;wYw;f%tYm&h̅"Ԙ|mY2 SHsa8߶i \.lvl%x THOQ54 lErFz*fmnzѵ( B31cbw:Al^g<4W m29ogR1n|KKq&eҷU`vԸhd VL%n)iX-ͷ6 ˜S1xacc[!mнQzOzjy[¥wy@Pg㇪FNE꼟V5VB?"Ǜ/=t^Z8V4zX8-/Z 2Y-`.ﴜIӫcxzC}C64A٧}v8x[8 ֩:X6A,\~xzH.뗡%8$E6,TѷR NąmE6/ ,엔G2>LxZ2o$q Ӌ4c +4+(m:nPoaS_3-D; a ~tF:g_z1BeAv@OӴRY :aMOU֞ݪa=Ŝ8dF ugLƿNueMŔ)6Iߺhp5W+8V1~SyaiO+wMg+LLVs Q_W z1Y)4E$c/i1I68|'{Z`2d7Ԩ&҈7)(V R{bVXk&$u& ?5\>bm9ވ/eGendstream endobj 290 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 739 >> stream x5{HSqw{5nO+eVT={4JV ꖦZ$}$+SSM%C!VJ%)|(8> i0={- fYPуA ]WDĈqpޓ[֬^G@Db$D.4Ft0&X>9FE*dT2Ub0usKeDQ}6sP#d]ѕz%~iUb+gfL/eF gdb9:)ha< KH'-9P/zow=igoJv0 (Su6CZ`EQu}|i&Kx[eMm'<է`+? AmR {EB_R9_%dI4 /`(2GU#8xT9;6L(]v~('_%,.|w{5FKvཊۍ]Jۏw^M;LfN'd-Qw1u=G%f>t4QN]toT?f}`cI6v7ڪޏp @^d2HZ7}(w9.,;˝P̟}IJj"2x> stream x]O1 y? E,钡ULiY>w:a<3e2um5l`H֛aEG†WZ`wymw ֨ $3T"o%w~.+B^BtQۡ5⑈-%h9k<}5XUYaendstream endobj 292 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 390 >> stream x{LMMathSymbols8-Regular   infinityprime10,:fwtu}}utt& Ƨ l;$/G(JGۊmQLT7 ;s_x‹ o&>C62K1 %7wtfO9! Q; 1omcjF|~K:  W/ Dgendstream endobj 293 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2278 >> stream x}pewi `ryr#3'E^K[KhB۴i&M6{Ц%"mR߀|aԹ;mљf۝|ϒD $k+/*+v˫|xuwEon*y0;@wO$?pnSqI)+(jP(/7>M/A &b+F#sII.)|F6l>.`b+{ϑbp! 3H_o?SxkRVmV9M(3)I{(OR̓脘m˺fPeufޞ= ԹΧ-1%{kff5",q[ NBo{nP*6M(s|#JE ӃyL4 H!Tnw㢂6PNh=XMO^{-3xQ3xN/{/drӽ*4*Uf^ҾvP}A3e*~<0x NSE7l,y}_j:\+]C茅ҋS8u|#+悤oYiL. T9;3jiHvo.0ҽBiZ6fh)(ClBs:zI0i mMĢ3C2΂F 5;>x-GƐ!Ti`K =%: IoIǯ 95U^ʬ~aæWkK {b'zKj;6TVW['*0#7f:vS5j\=M5 @0 kmjP&'_;4K*ȷм4G3r䖬|}?/{b6Ϧt*f%NΕU>25Ez \ ԃ*Nu{hݫj*E9h@VOz苠eB~lN&ݰF9u2vwE{A@-f3 y B\$8Gm֝s} {|)4gܮѡ&O_G!cVYu] O$7m[*ܯN%ؗ[yd(,43=Y1lzUp;^cƋ),iThS>,aKMN˛ңhZDHKax "ɇsU{qT\c2h\AO)'G?&Hd^=n&Ѓj`MF!7<Ơe:`p|U jx/< ~Ө;ZZlw5KJj7U{I>ħhHXjX- D+B$PTsAFu\3@9!<_qT~x޶WW%I..e+po^:nrx)Ru èK|!}[ٳzyG\{(?{6A ɇendstream endobj 294 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 592 >> stream xcd`ab`dd M̳ JM/I, Jtiòv˂01(0+HeZg$нE/_cBt0ݓ꺺j~_̚}{ZG\Iw*kJ:mF$~ zi`阾A~e=rIa:Y˺v]g*z,-}w-P~_|_.J\xُ9l͑ؾK=k3%O9vwn~Emj`լY#V\9dO7Nj6N~-*> stream xXy\WɌaQ;u߷Pԍj,B %y6ّ=eQ*bݪ~UimV[q߽']mː9yވ~fH$r"#qO#ݝ*sesl` 3}QbsPpа+""=vwZy۳Ϟ8oи'1yʴIFQRZj,ZO6P&j1LMPQnj)ZN\*JJR@ S@ )+ʚLP3HFT?J%[3ĸ_Xh0Icz> o߽`ɢ~c?Xo.<)6lZ%!C.KImGzؾn` OOx-RfGӫ@`đݴ}Jz_ Ā&99zh@Ci\mӮhJ [hER{'9''Ԑ99}4ۣ\)VJmn%\5ؠ~ȻӎU 4ng:B>蕿 FrZv.)a9U_;!_ۮaxzɐ f٩KoYᘿ\kf?3jmȯK~cE ]oj/n)[cv<~1Y#57+[ avŶm< aah=y:ɿtwnx~ '󢎟jq+́8HRiD< [.lDK~q³+e8]J>0EQ&Cq~ȎORU&'p\< <C6g%;`yN1㣉Dž%Miנ<נIݜa*/Q:(Uf^&U9gc Rgj2!ˡJ8ޡ n_r J>3f:a>k?ؗϫf^=z5^ MZA duTf?UL4*^_EݦIUN7?le'Sbq$\H+ݡpOX#w9iB*HψOK(BHM'+ rs~a_~)'n"둏0\zu hvH*JNj8Lso>V9K<ޗEWUVgxv 0';fξa]{茱c{d 3\*-ËOIY[ם)əf@O ,zyq?ae[}B9tՁzl/O(Nod ;*Cc@g"4i.X[!#UU;kT2wX (b {Y G=_4$7n_8Fҧ)^P6ٱ5;BiRA8q?TLL L? % 4m&|C2p|aڧ3ZU'&Ƚ'-Trh0/ށڅP(ba! SZ d.lMx Cn? iEFB \YUUL`$YΗ u+&Q۱#2,%ٍkNtoD`=b_C>03(0;%cw7}٦+ih=+  xi VC[vx?(&0Q941h6ěP}roF1ڱݝ&`n0_#ZWFxm [<?l`ƈm5tD}q]K/K{d3#EBiu-=YQZmß6YZą%>%b7ᴓӋx) Ab޻uM66/h.;S ;V)8,rC mkU| o7g' NQɶFmK }߶ 5L<$Dp+͊=$p>HK̮m>^y a] N=MA&&/P{N|*s'4344^t}C 3"zDjr6pOz97*(($>??=;: U+>ps'JlA s3dɡ^O}m .e.Eԧ| ~>UvJXj\i4X݈ӈ⾉Y+' 񏏑lln%ʛaUNIA\5&.1UQO` :nkqd<.&͗)gy0O&T@nTf9k>G_# 1ϾB,%yaJªWn]\+5D:_{O@nP}m*B=s"}%EtLbDd~H{K1Nc5p ۔~0Kϝi;2jOB'`E.$%=RpSI.sʨCv|(]'՞<@& > N=B&t-&$ M+CjWCyxh 8jtNTڃnɮ#m:U AVv?j߸T x+iid$g%qlYl'l~Gs}Iu@ɮw~wFQ)=*)dӒYB9Z֠7tiXs: pƒ3clx1?o'QGfx r3M:EJۈp nx4QjaĜHt;9 KwkZ}n]r]cd{ŒƶL BfO;*%]rg*+J-׏<5kfѭq;eo$!O^S H!=3$-dޔSbՠ%&KC`j.lY R@*nӧeer.6Ie;6+HehCV]j1:DE\Sl巈"䴴&@.IHm #QRM)\UljX}Ҕw`!'oE1:͏jf~YyR28IX%B yp ˼3.!Y2%w +SOLpyK,gSy2,mCUO9.*U)\Ґ j*\pޏs3%E΢:eJ<:]9KK/ Fendstream endobj 296 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5351 >> stream xX \SWy}3R:N[uܫujՊ#{$$$$9Y!$}EU[uQ[_i{_:}7Q_~½7{<j gܪ ے2fLuMTLf¶4si8?0bȾ4_4|Gc(Ϭi۲vthL쮸 iE'2yW~dL,z VS j-FSKԛT8FEP˨t-j VRj%DԳ~CzJ S#(j456Q~KmR:OYO:d鐏t3LC<|G6ꨐQwG/3|EHlXmc-oܷ/Ή=+AZpW'7 s-|YҖ`"HZ]䡅 ZfXnɹ#` -4$h ##8feZ2'N-9(,vW.ˇ A!y|&ea,i*g75ȏyH(ם_NNl\.ts4>0zɷٙ/S-(UY=5aޖaUT8QD{=:A| ZXf8v 5Ee@|qc}J.~?]"xC\~%7JsK눥^)t5Ukw(YbnY;NPbݓ [t( q%60ssvCvᴇ9yRZ/R徭*rF`Yvs]FntF؄fXDvrlwma3|޾rxoSF""ˏh yƔe ̑'0zZW)bX_j=R hv,50%|) ;A59t}lkD;_M IE6c)`VG^HqNaj[ӎ."jG>kYjL>fl#4'XS R6sίgP+5z K lsYb<p[SEP99x7yyYD dSK[ _R'-\N,Iر-ȡ<)5p&n>xO inf3gEU,E֚ӌ^0wSϏnd ~W(_x}d={}2\Ȱ+&BΖFi/|<]js0?M~*o`/y1[ UD؇G ?1Y& ǚv0Nv1}a&dU["88Vk{h,!>/9g'V tBkȕU<21 fei _Lrt^؅ޕ4` OjJ>-OAVASd޲ Kkf,Ȫ)<=YvvcTuB&\v5̼I,%ޝ^~k n3’TXs7f+sңѬ#z) (hv)#@Ҿ%x͎/>Vz"H_hڹg*Һ|~by]|^Wz˰ħ0@S6J|i [>ѝH+ږ+{/=ƹ?|[^OίvgWxNh7b؋;k8{v$/S-I+ߢxKk 癞/E, TF)V~T [>l.0 ZqOǤ`gZZ [uzsR* hprx0)6Dnu4~4\çM] UN֡æJ6J!9}棏go;6 3? ɋkɝu[' S`xT<)ta'kdHdMref34Ccm/NP!sxݝ;h@ F~/t́كUENJ @n1 FC.m6+X}&[4D'1HIBگ ' 8op_h F=?{DTM8o&$ּ؝=iqDeə yI 91}@I7ֳe+zcq?P\ʝXe? Yrm Qh94;gW?>BQ]o@O l$ .b yZ7Il,*2a -/IKWZ[VGB9VW ?fWV"Jp*6!N7Wх6Unp[a|t\7oxDqL^({]cT0kIh^dYH!fbAaKmK`[]pQaF0X}zʩuBSm8/ґ x"m+_WڋFXO8 sm36v.pm=0`6{EHFJ9t·b}NjSYh9sҶ B!dnf#6W8Ba2+а \iQY`ܛ`yG: ]+@EYjKP SZ155I=1*ԩ M^kD`|dl޵m#V.mKPe?djCnޗ`zyN'gXK:~I@![@2kȐh/A2חtG>a+@$dB<4b,%B6[뤎 g*Ѡ>}yd䕁+OuGXԑQIPE7ľ̈́|iA\K/8rJťꟗs%I_7SKR.@xhl"^C>WCF϶ 0 O-E k@фܿFJӯ㉞m o &>K[Ù̝[6Դ[jG.:h.Hn 5VsGr`Y:uFMtJ$;I,ua&^_zDiUR&`˱gT]PI9B DkK-}+)ʆJa:Xǰn>KI.L8I_?eOZ#>^zx&JID]?qs~VF̺G檣PfCWZPT{tY{tbY0l!@4 ׷w/q#V8I`-|H7`cQw3Zljl 6Bno ZUX7:u&.T;Jdo&&I'N[muFk K+κ_~e b?@.w wH;x?[u8D_iqvZE>cQ|&VVXVX5u]dpLMbVlbftj.FP ZGiv_btcVKTHyiRMth4 .6G)vnӮa6$,yVRmAQ endstream endobj 297 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2584 >> stream xVytSeihxZ dӃgAnPҕmI^ܤi6JSB J,2""G8:g83?{{˽?5.ߐ`5驻F_>F.CBHȧ}}&gZZ_+!1)9%5fSzEER3(ij&6QVj5;U5j-ZBSc>5j   ;n(8E$Oog]!;CPtzQk о3B"!vrW zK^bݷ}e?hoӧroO޹1tG%'rm6lLU]Ѝ%Jܩ/% 窭2p=%HN7phV9dthAsLwA =/:?<0ս>1籀=*;k"-Z?q$UGdYtQ@[6]/zy11: "RF}2Mf,V{+X67 A!E-oֽ)<SnD4bֵ!.ż:Vt| '3l`9to lH?2/@sGZ9d0]8 viZlZ8b^IHpe`_TV7qf'C=/iMnWh*ޟ4W`bcs(wYc \e`$/Y1$~y&cpB%B( 9" ,x˗n$<=Yv z>Æ}'QRw:#!OfڑzUeR#GNЧ )&h()ˋAJ˪U+1an0x)_0Z-Epmu6w-tcÅ~YI3@O+%^_Mmۉ]ph̸:S鎩zCg缀xI #8J 3)'#i& ٟDdzUi2*u"=aZ{kgbP_E5.uk}Yt-0[QhR.8</^"UC ˎoAs w=L]aIrLo)Y@~URpf%f>JĪ4$I);u=x7:|ॏo}>rN(0y@Wu9RY449Gz0pJ3PF`[B˝^D-en('Օi`L&yWjE6'6kvѩ{12O$ኞ48{ Pg8o=^~w"pw=6cO+DϬ'6nɯXsCu5zC3YِU ГΜ*'_{xw7׿pH|`;,qXخvh &f6Z tlvguvxIMyrȡ :+`D|f=R B(B?QTYTVɢfBsi67ę&&=?~mXg;g{p*/z2Ҭky4pWZۛ\C( ΤW[Dd?_4FF-W-G|Yl:ڇx-zh 2tYo,>{Y)adX^TWEo F(BWlO=Hͥt]07`wB j9;0R+Q zyI*yF JZQ|jqu(]G@DQqmrKeF$RmOaijDT MÓ_R{ NDSX $+'Qpu;o8cL#+c{ߩe]|Rj3N[l_Ҕި"³n_5`:5MFhNI-Sc{Mj"C}F,RQsGK,ޟ07-7@ܣ-Kq:JD~1VuғdqS~E~FfVfv}i]3Cb99f>S܌X\d & +맘 F h \f {4D>kx\Z$; U i vK!*"sEnQbqi|{ywh_PX2X+l4n }L3$>/ vFb2-j &;0yQa.Ϟ1 [\Y[l _6c$5N$#$IhI&IA26N9Kk>G  3VsHns 1o[&Aq#.vA׀ /6p[ #S}vW{oAIܖrk07n΍dSdF{aoD-&WT۽v /o՗7H\P O@lQ>]k:"5?\(RS/O{0.&+4dl=qCC)_endstream endobj 298 0 obj << /Filter /FlateDecode /Length 5428 >> stream x[Meqͺ[Fϗd3YHYtF$#y4 9>HޗaCz^Trqy ڋyzݛ|4qpy6 .HZ7lG_?2|!jׯ؍߿yGrIR.q;%\a?.er%uӴ~C -%=b[òB@)e!d`>T-R'81-Os($m#>5%Y9.*G#!} L&[ ]3ʭH9n1sK5O cXwՇOӴ5b 0-,iQ:¹ z$Mʍ5$TUf!z쩚2gLԾ[˅ɬ [xp ͆ 5#B'5lj7=U@Za.u }Z`jn.Tf-ƛ&wy<>T&q(bFiwЪ$gq*<#J=|d'ZX\fAB;0. 򦨝v ‚#z%'\JD)…I%`XJd1 n,-w]VRUP@@mJcy0-,ia!Ns'^ t^MP9G,Lf(iN_qv1e)0H q`ô,MtS p ԧ&qڤKb '@rlp Rz!#LPS %9 ;"KIbeʉfefXbȗ£p EL.:7gpJ=J.e1baK slY+.p |u2[xnQ:¹J2I6!,;]1YgRLzV5I@᏶,g"l>d2Bu0.,iaJ@Q:6Dyi$dRJXIvz2U,R?0e!4P,C͇ -fpX \$uXёR*FF,[2 Pʶ,.p D;5v*G#$ $ xj0 X֓(le٭hd˂lupY]+3 Ne!$ˇlaA^(B $OmjH bYNBuJlY.1be:Ff2|Yd ɯ,7 RԸ?(s=$Mˆ92zRtz2JNCE[eA %yta2Xƒ4s/gKC{[; H”7pY]k:'_=[xpքL L5E>x^HA S&M`-t`X q U dcyH!bp ν0FAL䏩ED ̸EF)%7̀!Ӆl`1LνPB]G[k hr 4[7tBW`)vNӑ;Ku>kD5@H Dn1in2w5 4^<u>ҐD`clEr3eu!D5[T$y0 ,ia1Ns/س0F n 63, |o¶fM\l P. ݅lA^ v \n1M~ w5H xv st2[xnQ:¹7n0VڸsiXAָ%X9 ;bedd8򲐃 a-\d,:VnQ]?A7r/K=x]  (,1Bjz2in,@H*&MXɴ6“֧ؕD˟!MExv1ִ2e07 ZLTBDQt`2XB#("D*:x (Tb,x!RTLT䧥eQ\X.a^*9[D*#p N]P*e;H}g$P]ԔiE50euMzYCe `hw|T=s*+0U9=e~ୗ&+S~|*X9\"hx|\qOw{PF-f}L6+9Yb>YW׬':Db5'+uڢ;w8_hϟ_^N/?jS5gVcA~(OI ,|B"}ȏyV/޽Dg.;\CF1Qϧ-`gG̘ߛO{7Z CV09B }(۳9%5_>1:]4>"y p~9 fRendstream endobj 299 0 obj << /Filter /FlateDecode /Length 5403 >> stream x\Iq}%EX5fC ;£5=1#| uzy[zЯlzgfUB<Ԛ˗KM-N;iN/O~<i'AK68}yqS/NquI%_q+Yc'kɫwnivWDVՙRn.&n'}ߡ9xᭇއ鷛0T ]6ǫ˟_רYꇰ [uk&g˺)S{kntՙi`FV_u+%F(_ݯ ZUM6 4Ua +m#6qpFn=M㍄wتZI#lu ;G(Z{|yUH kƭoPߴpHf=t>oXKfa73_I`,İ1I$aqu淰JcSmd"V ԫ W{;0fzmu< X~2wxģ[m7/CnO[C["YaV*Sm~sܜO[L׎"Tmq \R6sR lwQai1]OuMFZu\U 2aӶTEۂ48cGT+߽-N Ԓ?&|0 >WUݴ:*6b;0mmש$t;a-[F= 갡ogV5mP$;mU3Qծ[x4At jImPNJ9R#7 bzmMbB JyjAu8A;X~e\ɬ'6NV z~Uբ5㚑T? V (ډ)i_Pg2mvS{3i(7pLIjC F|Z鸯|v`\txj28heـYpȴH'DpsKT 4cخ8kd@ҴN8Ā1rF& ##;f" x>ps |Lt.lN4X ɁU=0 LǺ`TSRtDhq:եUAz(}qnHXۃK4FLCBoȔhZI|=zϑ>[1 ^=n?w s#b^$(|j/-$OlpvO]C[?(ɰqQlcǙz@e`w|l*}&U0+ȗCʰx `=(2V]O6#nquWDl{!m2!^mkI} (  0xzSDS ɜ^Oۑs[Fn5aQ#g+;Q~EeJgp|`Û( 7'pH_@9Q<`,о¥j ~CkD/Sx|<ȧg uh3MìJ"r ?)v 0?Si|iO E@$`NxMCcY7tHSZag9A.ݞR?| i,SX[)IkyRMDB194ߕXX(Pb$l,)u}wWФ%S ֠@1ƉV":A{CAW~QFmwn9 tz[-dN{a`-xҀ?("C7~&rMSv M,KFr\N6$ayhuݿcsX\}8et8E6WѦS VYf8 1D]+a:L19on'|2 Z 0~}7}aFz)pRS᪈$-_(!YR?>V?*_di1NaԬKn5wӏ_E5,֊xkI RX;=cCs fXG6۵an+0n'};Bmܑ0FHgB4 CH/e |$ <>)0]&:`ܵ/zT,bz/bߘG1G1B uY>-iqcVȁA9Ln2‰'LKv-[M?_~:QXc:ƅBQ$PR#>df^bXa  I0,`)XN2Og;VMF98 ;Xu Ps}dž;c4& B|19(@h-Q녈O?x74ޘj^-CmAB<4ax;(23Ɨ$P~ 5GJfS$8cҳ!g6* IlP/T.XX8-~5W;$H1sG v2.ސoy^g3:]3V8Y)0t9B&ȴYEKѳ+IQaIQ~znLC^{?`VwCSNKzrR8.ql)&7~V{|vxNPyf\LD魋m2Tuؘ=!?l+Cu)gG5. ?|jf~$Mj D3X&2bF8G]T`ϙ qv_6sI1{=0vI*gEd$=e-r<-10kPS@xClv1TC @KobPloRWլI,yw=c0ƔX2ځr'7@ oa\2>MC\^kAHK I8̛(q%rG!`eibqxq2SyJ&B1H1M6 +*aړG! 'BBJEof,0aRa$/)P@m=cf`p4Gy{Z R'jL(!sp-<$JC^P /kjE?:؊V DY.2xzX_[3']1|&Cl`*qv \] 8v 未eအX/B'T2tK#'=ᖆh鞗60P;c~sctշ>fp#*H!D0`)m [}1bbL)iHtXIrɆaGَҨ55n+:f{!~[ݳMGr'2tRU_2اM4(E 6 Y[w)r,Z]"¡ ֖H<ͽQ)$ hXaR(;ꋀe&"y5:dc7-/1+~3Ža{xsݱ{" ^*$=/T)v/5fM܂N-a7(2BerEw4ԧ['ˆl '== ÙCcoLvv p .KJysޅ(vl SVfl\R<&y Mp8NMvˊuG&pjR%~m |j/~Q,QpLVb4/yH =(.} QEſAS_ }&1Z"Cp¥Dujv/R^NWw,2ÒZ{xxZhKdH/A JE~g.9:©f||Oy7 .Y$ĦnkX@`5.[!Y,nʊ5E=ր8 60aG]pO> 0eWP-Ð.1_$ѧɢ<@>S'(kǘ>6=ܘ,1YxElH<xsܧUծd',8::_6׸bҭoVh((r|i"<`YA^x#P- URT O4!qX3a2+I"j jb,,!|GLôH!+)žEǤ+I>%иڍE y,o&]2ԪxjkՙAquޭ_^%`inct(Kǡ>7轱}~xss޿#gU^^jvkBX3Z /a0h?4hendstream endobj 300 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 242 >> stream xLMSans10-Bold!J  TR3vu$$,!>ʚ걋Ym^gfg8s+fP}Uu]Iu^i   To _endstream endobj 301 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1850 >> stream x=yTSw_T3ڊRw)4.hZMDe7U"("DЪejU8=ڱ38y~<3~⦅>JɉI&FIyo^ <>־ x1ygoOKߴySM8i2EJj5G JG ©JKR HSwUF>q}n|TOQ&&j|B>K i C_K=M`.Ka z:p[$ރj,PJ" #x,,yybV껺IN+5;Qr ~eƦ f.AZ\sA$:|p>`ܑɝvk);+qk}w03ʓ1Y - e3?s$3KZQ*wً\6Air+ Bjֲ&@tRv'{952vj 40D`rt9hV)*Ce>o%^~떵̟ׯa&%/(ΐH3Q[.H3CƝ헺|Mpj/qzlߘ9b;TC# ̓y7DgR,.s۫牏1,Yd$`ӷ/ܬ/`Kn&C玎}f)𽚳)WiP P"wca?s&e x!7Mg{Ϭ|2GE=H5$mZp!%LX0ۡ Vy CCj0dgvdCf)Rc?1N_b̂yLزe" g$q8A)j$ym G:@+AU4F4[K3m]?FT$P?&dl <~y'ơ)0܀OpkṗHT*K^J1eZk 'Y8#9o ,ݵma`-ʼn U5K?l0~\ Þ#{/~Ҹ*D^}\U+2bh|6,$fbQv͸wHh82qىt wsUOnW4qh3o tetCAPgG߅L` t-tگԳojgN9^^)h1:Əcwqϯ}b4p0'R-31~ye9|jo+w|y1V[-f3*`S4`=|'uuɑOģB]Z7oMY3{ A®?Jyi9wUTR? W$=p%vՠ /3SRendstream endobj 302 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceGray /DecodeParms << /Columns 149 /Predictor 15 >> /Filter /FlateDecode /Height 173 /Subtype /Image /Width 149 /Length 183 >> stream x! 1 bK&Ū:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:ΪIendstream endobj 303 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /DecodeParms << /Colors 3 /Columns 149 /Predictor 15 >> /Filter /FlateDecode /Height 173 /SMask 302 0 R /Subtype /Image /Width 149 /Length 5913 >> stream x]yxUE$/a !BX:({BB ,30v`3l*Dv N70B@A I {+Ju[Suz]D2\$٭p\7ح)h!H|Ǔ'OE ={֭[6.3]ZM\c!:vXZZjff5ǩs3:Kg#2fg?ʻn2dDk#($k!N1MGs &¶Ca>N}O9HM74$J#|dȳR_)z jvr^KdHI$GUXoyJUj $"d"?Pzj0a)2̙e Y hѢ 6!ښ:qܪ%625!p.r'Κԡ_JkVg9ӧWgsx,MP2ŢJYQW0%I|];~F8ܜ=_e)B վc_LLLmm-bKS'GS;+..p0GmYԅCW (t?'cnxA/*eN233 L Vj!2&(òR?2g,$X 1lbni.Xihh0/9s6mڮ]e'a~us(sjErf)q`f=\~хyv,)YG`nblܼa%9(_yW7S1]]Ge_\״1M3#fͣܠ^JQՎ8k* sj rt= ؖT^[v>Oy8yG1R玸%Uki|⚌nOo唼I\|lٲUViKE;EEEIIIdHGi &Ւ.CHy ӔR5GUm9˺>pGF H4 ?h͆mcCqC[ Pon{&iQ68X 嫂+j==B7 V?tJ d5m_88j)G8oSi޼V[[mZ7 /!g8 ~S7ZPBiSC)spn}c?+318:tnWivUCq:X{:pp7[C?wj!LZ [?Fk+A G'.!}]&hn>v7)*εS|176YSi^w *Qd~tUqFtKϯ֧x 4XR)/\\xpl5h%ĨK{\ S`d6': Ճ:+SxN zoM2SL8Sxa&ZϺ7?i5*xyҪr@줐7_'g3x`E~L(u|ڌnO2cs*S҆<[ 3|dR~Ŝju2l_]·Ə 9)f ?]&,ڿIwA3r龜4_848/(]ɩ]\%Å |@jXqjz'&DOB/)G.JsIgp 0*(i(崋g/6C?:'> trgsTŽ؉6w6&M F7M+꣔g Uga@F'^D% U5<(S}@.zf@GN¶@MvPEyh^՜|RB[E@翈32yV ۅ$37{f>=vpS(A'W7zqX=z⏧MU_:fX9^94* 22tޢiJx9;|'SRȃP,>/DzNS|tEFqT`) asH“y#k _=5s~{SjmSըUE_UF=;Kؘrp~ 0ΊQRM:L!sdRSCLrA߇w|c@uvrQ~cN5B(V_?[~|!.7q^#F !D(wbty.I=ZH Gv[(O͎bzhp sFPEPP{oQQߎg~D& "?&yJERX+2Ο8y}t*)r"J2e|w=9Hk+˭9t2#Sgl%5qiJz ,FaٞW2Pi`-эPIH9^GhHQ[$wò*k':W juuB笐8lO4[]mGMQ,xcJkμrj0 !t:}w10ܺ72E̎s*@MG_د9i y|{~?tZX 'ܯ-&SOOZh1k4#:aAuj,H-y'0A`F-ED69DG Dz#9;  >0x BL>d_ti`]ryKm&-Z1tm@+UٯJ&A_̶{C^ຘ@`MǼR??`p,.[)r&xrVHow{8;@h.8G0Sک?>}-~e"W[Rj%@3J .n]r`v|o(_}oabM]N;M0Э\=TǬAL6m׮]w<8Dnų%]ߔ!+"pvb j(RH`ŽYG &0A~Cnymg,tn6cZ3/ei;q(-sK2jljN\Y0 _:th̘1GD v0z9!#:,E|A2TAsZt, 03۲F: YIi," إjaw~ ;7%IhIc#ys.*_P*!7 Ļ~~|9iҤ}k$A`ӋOd_bF5uL_PX3h&( 絔ΏXcg[QUWWeѼ%J,HB_:; 1X3g9qòٔ'CNY C`zvS3b/|pIJR`N AeEX]ZRVV@DL L>"& x|H]ʈbnԩo-_PPeU %d A|Ǐ'CfN!PtNA>)Y[[-fS,(Gw3.e[UbN>ޢisSg6uL8?Y &L=p79ScSqxSDd0nܸBkTED$C"X"?)UƎ{oB[#`RT *++B@{jx%3>"CP[rC9g0E"?A#o VbA )@[ASD*bkB[S[J ^o}}ʘb endstream endobj 304 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 717 >> stream xU[Hq涯5\:T}NtQDP RUhrJUj.,6treZu2 )0Nvw/w\x " $kM+iCi@]qXbP$N~H98d0fdR@I>DD:" x1q\ļ%¹xVs~{q315;URռY4&}@%FGQ- 2t5z +5݁(۷p);A۠Øu*0mg UB|c;бǯvfnC(p@AC$זSPPzitB WE9  NuFFɫ:?7m`7X+x͝`YR,aWO{ ;YU<jꝋ8U&v/x'ʦ|83S c"k(yCԈ,G(-S=({k tpFYu7tL|Ÿ5Y[Ì>ZQ5Kgt ku7Zj(۾rɠQ=*@׶rLo[ o,(*Bq*{`F~E4 ev:pm6vWCksdr7>*ꎸ+NtH#ɜ> stream x)LMMathItalic9-RegularqN  z[rU$pADqxwmwsv½ʢڦ~~wp`iw~tsxq>\/rƋ~lhS[LUY`lmuufd^Nǰ|qruCo  To endstream endobj 306 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 160 >> stream xcd`ab`ddM,M) JM/I,IItwew. gO 0#/c`bdd?|m@ } +`-.+=[ 5N> stream xLMMathItalic5-RegularO/  viJAݢ yqojpjo|tzzxzT^RYt]L"Sp}һp~xI3z|i}}zWguCo  To &n}endstream endobj 308 0 obj << /Filter /FlateDecode /Length 2679 >> stream xYK) C`|ICN6@y|if:cܒ*de|t7X,~U_UìU={p,weyݏ^מϖWAτVbfԳ-q;ZsegnRT^+SUuODZ^{FeUs46{z'!}n0rʁ-~ٚR|rಷ쭸~7_h*5[ԕQRzj0͟; Ui7G{,u=(#ŲWQqk|dփZH-RD` #}a$PF!e:Sm\aMu^3:x?'/Vxi v|N:5U;Гvǎlx<מ9SsC\okNU۹p\Ӧ9]Q}l$$h޲q#XC5^t-Tn%TrR{}jWiU:˞ :Q-P`r/ZU: c8] ᅄG B%؂WBFf:Jts<4L5;58ҐGŽ c^8ư޹WZ"z̖J[(\kt!^}.0ߟгNӿ-~ ZϺ)ֻ\Se8 !QF_h:+|[  c (_Hhe[BGPZ. C$=rK;h-V^{ֵtq*aMzcw*MdA^k<#Gyg!3DY@BpBdH6rج{U4Oa! R ҦzMm>%lPXHoŷ"pU|*hL4cfu* ɒ5(?[p]{iP=^y*xFdD@Fsa I$+y /KL$!+c&]D-Eڦ,L~*#%/x[AB) (,L/'ͧs|^@q]8cЏ`;5J,Z_ C/[78Nu2e`)QTbVjC[[ߋRݏ瘂6XeCF u`xY=z%P$)j^ Ljn(FtBPӼ:'}'zIK,Pwp&* L)*w SxIr / -}V$yF 򯃷4]=Ibn?|PZP"M=/c_'’df'CK\\wDd*ՠ;TDC-y`QT%HJ<ߣi{ E}Pm|}L(OރM!O)BYCͩ֡dp.*U6L J-Gۡ,wg%;}Smc1k57a;d+@k;ij"#n.oCW\:c!RI2TX mA3lg$H[s C3UߥQ+6,)Loo2B[j'<!Y\@}zB3[_nJϓ(>8q#LV@ݣ}io b""ڛ=pD\i'OP8NYP^*KVP:WbH1$bʜ {`b{j.FEZ_[K'.LS!Y;tr1v ڪD-M5z&`\`C RD *Uyh8Ge1Ζ=92InĀw8F1J\aC,ti-@_^_0(4#1ᰛ’$y nWoz粳z>ݸA>ׂ}{ޑ PO" x 3}Dnm ~̓i-y/55z,=ݡf ~)̂?*{UWCaX, gS%BQ{Qae:7Oq2&pp1!JCL.aIYZ@mC=˜dp,M7M0RA`Ǣ,l"HmIlDŽCtLyL!O2^@tCS˷6baB3wvv, Gگ銺=vMGW*eP=kŒǸeM_D]*8a 1@>RH RY"b%ƩC&[CT>y^| +L~af^FxjA?)b]eދeǰ3͹in7Uo-GTa;z~R}mLS4͞= dƼO[ÀnĜSnknEaʠ6d4';m`%6 YV͓GfX)m8x)[][p~O95vI-h Ƈ_Vܰf=:ƼXNuD%wJh/ά iZendstream endobj 309 0 obj << /Filter /FlateDecode /Length 455 >> stream x=s0 w ^f.q9;Vl9/(ѩحCNwIx<\I*_3ّpcv=7NdR yac < q3J4?It%ZS5[PR9l۵OT J̌1RYIysts-J%a`i!AGgҨ4?,*:'fo ]\&(^ K?14o5%Tnldvl1v\WWwھ$8j5/3w@j P߲?C@endstream endobj 310 0 obj << /Filter /FlateDecode /Length 382 >> stream xuR;O@ o4l 1 ЄJ$l_ _y3哘 죲<ә<)EkFY?U JrV#\Plg]vh14m52[TٴJ= }('Vn6AE^aUZ\4ұ'iG`LlIk>Z+gg5J!",4YkKP :ha2{k}tŶvnwc&窱Y7ݗ!-CA J_/,]CxF .-OGM(Kw\z<+vC|`: ߟ7Õhi-endstream endobj 311 0 obj << /BitsPerComponent 8 /ColorSpace 169 0 R /Filter /FlateDecode /Height 800 /Subtype /Image /Width 800 /Length 47031 >> stream xgXTߚ?ޙ>w39_z|觟yvwNw[q甆ȹ "0L 3" 1aADJNUUv*vwwql @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ $<qt& O#S/~j TU~?_+z@{_ǟ?H/ P)p_hW?I="Si~K T:_X|dnLǩ]ȨB/湋p^!_D8{v1>eM_';(?yϼ Lߦ6~+mndx<ۿ}mry*MOWpmrWP692W)Fx&muMLgxmnd"S>mnd"W>$ Lǟxlmnd"S>71osC ~;Dx GosCHoow{{{[kk1+ǏkG/z{?迁?VN xzU"?/33>.XDP)(RVOK^ 7;&y\aipO T &RJ UtY տ67OZVJT)uVťg歮^sbW<~[7VWO rBD.K_^uD+3}oڿ`AB;d/̼ 4]wG;DRcUy~f|3 u’]oy_`#osh;{`HOҖ쮿te3k?8pӊ١N:dv6E گKfd,8){7_8@Р}{ry*s\Tp'̆sV֥>2+vs7ˋ{=PDT 3yuqߺ 9"W8yB?w/@\Q߁_t果|__9U*"G>K? y{r1ƹꑴj_[:?#÷veKտЏ?W9#+|_:(]yj k܎Xa3Ⓒhjr$~9Ç9A[{ n*S>ⷋhjʄ 29x\jF'os;= hliɰ/k+ٵϠY'w+[. ]sPYwDHV>ab(i$dE:dw/_í3$ٍfPȏS,}qRF.{gl{{~CmV"OvIw$4h?!yGiYƚ% 3"JR=VT*꠸O>VJl7_]+ϵorBzdžCi?PP$QgW)}vC}$zCY:\X?Q<B%>{;W2,۶EK}g:]W7$'^LB]iJ$/%,OuQb;~łq5?$%t'$jp>;>l 僉D? rOIDIˏ)m^F4IiVikWy{7Ou5w&H\XQ͟ 3.Xw}5#/s0uM 7ޱtҠ=*LhQNiƯ|(y{xlЀuݯ&3قlଔ{~?EUOx]|9D]ἢ;= )5JIƋgBN2Q뵦:CuXJ쪩il:zmfnEn P>#[yΪ[?0ykSͦUfE+~4vLǺMe?g?6GvmARꑾzwqW r8?L Lі#wno˶l՟mߵ՜ʛ9+D\Q+a@Eu|֯ GϹ$g~Bu_mIQ"EݷDz[>+P>9.?ʪo~>Fso$ypr\boGމo!Ne|m[6ƠG++q^rܶmc8 cs}?ɂ)2ӥ.{MUY9bᘰ߯Sby//=Z?bh*8˪T|'?]8h.:ldJ~uxZȳko"hP 5g ޥVbUq| gֹ}r74e:vH]josda"«jS ȱse.A1k=sX:d| nhl}]y"?r'[]woPnYP_W>.=o r,a}I5#GElv|.qʓ;\Q4z0iMfh_T>ɬĆm, ~@wwm`9k iɇE2)[dOGfx`ݶ;5-#ܲfQrBHR:&.=sa~~~qogERT ع+7k5GqKpqs<%L>nxm\!+GJ&g:yw [΢HTknKfV\k Jk-gXn.K= a| bf0W5 4a۝.Q :ou5쌄-RFpХbiZ{5׋h8չ'V5e:V^B59Wzu헑b>js\y|痹)Վbk(sL_C6ǝQ2 GOk uu)6:44-DwmܫXcc/>àeꄴ~~׏G"Il ֞VٺOxX%hpH0a?q!48jk4`/ݫ?KwK!@|EWMT!_><%ԇS|(?<&ݥ{sl4󌰥]أ.UMS1%cQ *p]_A>y/1=s\P¨? #C݇BuOfҼ [uTHmhreiX O7e3#кu9K|s^{G$Yy3m-Ǫ*(J\9ETο)JD;I.ș+8t;gF=HSg2pTڨ P͞l_67bמ.^ύE{T/j8KR}jk$ 1maKz6R֦R` ZܑDj2əm 'i ~l{Ϟ:/MDQiKj/< "d2G6';"1YzikՠԞ~vb<.E_IUq(uh݂{Kf{ hȂcju~3Px-1=VOc`Φ!)]8j ;O -Ym]oU- sknRW []DRƎ_KkEU^*-E,$䉈 yRqUa0v8[e}@ʶ$K[~@9gVzȌ>YQ{[HRM$v k[o?&ap^`Wwocoչ-M\fY#at/%PP|_V  ]inj$Mck3wٱ 訌TsӵDkt7fʗQM`d+-gC(o]k[?K:Ï۟ǂ&ڭ~΂"^uښT*x; dꑊst%xO١*uL?lj]"^ŻZdRh‹HG$]YZOjk!U2WRw$>xMu%:kYjz7y[[i_\C T98)_ү^ +Reiϋ%oUm"+O9E-aJ2MͪÊQKvSőΚתVۦSG(E 1K@IL>t25oYQ( h4HX&Ja~uМ"Ҡ=,ꄴu_`+QW:#nN&/MC\ W'++[Up\zvK;U*ӝh=+@h6ï|xګϡVEaN c={V-UkImf ~NJm(@ٽx({ACmtC{srƷl5rg,jWJhZ :w*uIw`@؃W;M/D7¡UZqYT.^A?^f2[CE7DLVA Yi7?AD۫`p#tIۻ4|Lqf*; `k6_RY9e;4]m>=E^dP_ćc@V#IxXb=}Kl :䱄]woR pvJ w ԙwԜlnk-ψ !'6kákom rc WVWӪ~C쑲sHRajy)X½n'O5=P+a閣_s*̘*GQ;.XYAa{NWM HKVǮ&|_ȽRzʺYnI; _r{U!'v}p`ex̖ۡj>wr([LrP@cC#)v2Lޡc@W:nxm٬8>3~*z?1VǝmfyŞ9fŭ7YڊrErC/ YUnA"=adz镉jx2OMo;h#-z%XLBx'K)je{~%:EgkJX3l5sBjSw^ xG$Y7XHtda`rد0kwb(|ϋdl}d?g}NsQVT ɚX'(8N= 5;qb)X\g!\%v_R.`u菥oC *!"v04\NΡ] z}RC[E== >9IJmuTX..u0þWOTW,I SHiB$Wfټ ۊͽX&7=A] +?뷐-#&|H+h _z}qb^=3 mY,v^eZ]HW Xqo֧/{2Q#JEyȤWla]6ߡEn]r)$6^đme2ȇ^h BQHv'aY_2KbП R2pd΁U.,8|~xvW~'+?ͽ 5yh!x2?G̠vTĜBe2vdw7b>I'ČS~Z8)*DTT WLECV1qD*%0&W[h$d' b6#:s)͇.=׻͹hE7윴qlU$*O|Cdde45\+T;a5M2 CG۝ ub팍1ƅigQW5etV|iT9hnO˒w63 4K=Z..<# ~/6р5 Rs 8xصZ=鈯xX˸(dqIj(^ͭ(ګ"7 VPK5!0F_~ɋt" j€ '|dXHHដU4SMa]2]6υP2ajtVW6`*QpigS2- E'V"›&|l^ K6JjQ2v"+.}O>v vNo,qf-]x)xr g+iI!>:֪<|Ǘ(ظElz)`+xD@ေsdGYMcUSzktyFyZHAdE6_" T_;:<Ї0ŪGחfFm_JZ;Dv0'Hlփ.kĈ\ 1"1S`qxJΒ MW!P,ᴜc9${جcm$&^ߠu%zQ]z~ (HiD3QD8`M=8Bתʮ_OY٤53c2YRM0*Cb3˫[ޮg-˛;WJ#2]樿{5R8 UԃDs7S/X tst豽h{o ld3ܐGgInOOx֪;cyWpr \[FQ'Z;_~Zܧp"qox !t:/qgqt8̦*-r>-D, ~k#!]Gmm 4zk[3\ĢG6nWީ-!,ncfu|(O~|2w,]><~gӱ]>0vgIQ} N\/k{e1lk[}b/߮'.#r[g6DI+Eqqh"3|/Sѽl-zgs[;ڻľ뮳ж5h*U|ǩ:gR3Oo yo|_f).lSQڅ|dHFSifqmQ,|>2[Up[TM|ko3N⨂?Ā>;Cp2H&`e.պ t,Tpal,7fCi!ǽO%Gʻj/  ys:v]E>?!䄃D#'ކۀE嫱Q*.m| 9jP-TOc+'! X&*wo(6yGRGX幓=,HRӏRG:|:܎56EO j}8QUUMM|Sʹ"YH"btPLAi2ӻ"h"颉P!f~Rj >Hql&7T䈌˭,@LZZ6D,y_ ]Dk_Y9&eb_/q։ Y| !WAwZʟV7c7c-/+/|m#uX?RW:iX&y5h,bs4AS*A/yai fj YIDǎ-;9XON ar-kGFM-]S3D oSVTGzD͞|**j.lﱾ4B:@_ WPF,WV5"܂r[+ێb;|d=wyp7.iCTjE<ןm*5S; R\ (CޚM&X eAP=DiO˩C5;#CA)oH6]M A:\t9|xXh gR-#QS(S @-rӌ1Awt,_"#g{g²mo( r"; EKs1˦SwE#qď&"V" pq(4|suoRoM ؍Nx]'&[D=pq~mTM7&/}uiSUQ :oW!igpӰE0aZ>FmͭMbn/g!]lGbʗHeL)#}:/ũžaED5g{S>_jb~)RzjDSLŭؕ^19|j:lbvHmb51f] ]tJhQxCZNaֳ򜾫%uY\T6^U3/$fU@?yRK7?pV]mb>ء壔~͂ݥǘ32T5TS@M&ǝ& _fįɬ\%}I{]!(+Ed3` 1M i8co,f5v-sٷ95](-ʤ%?Z~1brd8OJ/Ƃ ij̧x\[lPD` ?$rܩy\ㄸĭuc'fE/e QA䑿 ћ~P?lr̓+ј'Q6pdc#K+b: ZF3N; <|?xg-B_nǠ[U y!RY̚z2zfE(Df};^DtDHC1s۶26t ,I-b0ȑcskq:6s)Ы[Ba_`VM\& hk]"3obwIp~=-'>RXtd ց5Ԟե̍0gwxK4ݨ6bnG0e-MGu 5s]9)d dY_Iޟi༎A=SC <;(?Xƒm- >ӏ}|$lmv$  B nl wǢ^C1b#Df3#GNModԹ`%N)8㪈rnf>hZ<{=?ߝ$̿u.Y /3>+Ĝ `m.4Ϊ%p-tʗB?{ G{SU}2ݱ&Ӥ^ٌO;<eka+{*QQF0`k9ʑc&KM>(}cy 2u(A"`ᔇUFc,'Pc(j{=wWLjf,>,WRL~2Sّh ŲYsp9֑#Su"SY:|V= >7{A!ShtnK['6xƒ.B0墝5{!q#ftH̓fY[ay\hi[c^kzdSnK&C:_4 DZdvFAFҾ`#lCFhTdS[sEw-RbTQ~W}]06ֲ`}Q^3wpdIuO[K4ʆ6UuR{ K!P=1i6iC268CRD>/ב׷΅B I07>w-$5OƬ[8|x0Lu^/B+zpK N ` b\:cPs9RXڰ,mzR*U҄`;b֒7+v8>]JGɔ7UȱF.&,241k`,*Q糮-w#wnQǁ)E@7r4p(:iL^ uPJv]Qj$/->u:su[sSr#~ oXom8oJʮ !hIu*)#n%vaen GgRf0wH6ԡ2J}58|0NoA:kx%ÕVy9WQm4RXwkEgލ2+d(p61F9c[5S,n)pyyprȇM:0KUa&# ʪ@wPe䱻b"F kiu"]{SDWUb#O{`Oג޿Iwg~QʘĬsˆ̢\'5K#[wS #ˇʦޜ2JBhqzb9 ?UJХ/"/P3,%,%Kw0ʞ[f)؊[LER(ÀA BRnmmb g(O<)nEZhϖ S#ˇM5QTlL]tHE R>ÛEc_I.9jc *tv$NGԭ{ v ;NMVnn~(dTjiETmbݑۦQap$'3}-}?(mŗ\dPAРXk1}yb*ovNlw7ޒjL:Ak*ŸgW̖9jY-SBhS?g$Tڽ(ШN (:B &V{e(8b.Zfq8}^.5ҬN^m\rBÍ⺧|`bK2Լ[Im1f)ё#ܦd i&@ƨq:U5db WPKm^z(].K҈% QM@ a|*>}:-s[f9:Pyb7,X~2;.bM:Kq6X'fnkzKG0^ (DZҗ%=D#w"` |&L=Mݏ[D`w{0.nG{,LĬ㴟>ߎ0diLm*10ZE7 iEy#"L/Vj"QLM?]M;B}F鉌ë#326-<[bQ:L4n_MwPafą.nH'_h%8( bĎBrvT}QS|(Co4\9+.T`/qUe,/SHa 1}N6r?+1_,QLTc hfv"ٔҵV1cR #~p"BKG:[!(F  T<|ayEF__+P ݞ'oK`dql/4 &9|ѣ]aA"N;lѠb%=ĬN-4>1f_;|w@YHxU+PTV/0w#ק3&?$>vR:M|K'IҋĬv%;sB-%1UtȠ"==CˇMP5-wH: QOڜMh##A$ٗR>3Ի#15~SlLXF2%U*\虭0z5l.lS)FCG:˄+KeFW7S`@JMA ]=RV nqpp/t|Z{QQ:\)l%SVtKM8a֤aTQe,AVb3{PX)BiA2~Gc5^Geg$\Hv3x| yMc'"lY]QBWrQ6f NOMbG8(;%_)PD)ǗLH!u*Ӗs.Ͻem\Gd$OuԗDXlTAEM3xKҌ.x7 ҒƲgn"PZvNI|y/x0~CrG^ $[4iw k}Y!nA.FZ^'8B:>爈p__I0;m,'<_,X&槯e(cgpep1}7op=>R)Gye" {=΍!E_:e99yU)d_MzD]p Cg Qll/v_8ɵJs371+ԛlLh/shҁ3@9ct@jm8ր0[}uЗߛ$r/}@U-ҡO^rG<$7?1'm$/"T,+F<0bs;Y,2+Mf]#wM᪮]Oa vl!(bę.JDUI=>+ WSB! 1e/$DmKXQF=ٵ,7Vo!YJ- h2=k{8)rR,fn捹dDyiSMӞĴI5[>3t~2HeEO|,k[AIJ y't{%sɯ7)'TWmw=eԑ= @'Sh;mLև~eW+2Ŵp1)9"[lhs-5h-W3C3;e)aPd#B]AZ 6>x%Qb9HS)\Au./np7т#Bj\Vy!4~ P%dUw&c&|¸`\RmRplx| % LѼ& 8.ǝxh VQڎ4ROZU(?zx;1D'!W{$m܅ZN堳El?Snq a\Mq>}#FcˇM|C'y98Q6OU4p vjf`!JMY7N߲nYfBZinK-V{+N#EW;5uxb#^nĬݓN҅P&}ꂩg7^Rw E\>\gє8$4hAI9mW'wbu4\Q>Es4K[mYGǦ|/,MC 4r]VA9~9^H1 #KFKAL]ָUm4If+S: pm1Vԯd>f>lEI#9n 1>JU:V1 w??ˏp`p>C>B%ZK{;Y\D*^+7HĬ)_0j2NLv=Ӛ< 4Jp5Z/^iȟ7*~,c> }fU|QH=!'p5Kau r$ |ǰ;KXFDZqaX_s͵u$ 2rONƐ_4ݲh9y#6}-i^Vacaܗ[]?2d#8PvA]CȀ݇+?faAnfܺ%ٌ^ϖR$~TK3NRֱ 2IBkvGaTw^17*mx5+xѿv<5m/FW_c^bPu)!k_ 5by\(pOpaFݸeLjD>MWM2^tf=WxS/WUU%zOGb1ڪHBԯ]1oJѢ"JX9+gEif 7frX:DD}:Q\j7? i 㑽Kn'3N4{V8J oWXmQ`%4wBkt B؞y# %o(/Eff(컭H0yt:`oJaڄd}LɈ'0.0-h^pn [ E^> 0& D?}d9u[2jUD,ۓtf ?o إOGRAYQ>`Gl]Y42EMaƭæuPr㫓 o*#̄pI=!v fТ"uF"O|}0?YhHB%"=$Byr [%fS& * 1/ƈ9i7#enJ͏3XH'-2`k{)Nŧ7/7.J!R])K`}0$ޮ6|m)U ebmVZ0WF>[d >۞l|d m1FLGdvbH;|9,jمEQ|Tݘmg:FѸ9LCn؝&91o!w:݃Y \ڨ}zdUqs%0ž7/#g@17J3_+J&e%fbn 0)Vc|/ƻVb-k54Bkp}=ƕ/CiI HhٳsL(J(W9wcW=U;h7y)QUjJ>J ]É ֢WylsrڼhAB~Ke[GAWŕ'ݘBջLNCth=fdɚf‡@ թ+~gkbx?ܩ| X(,y~*Ga}"OE+Kv`ߌ_XK$ˏu3x}|U$ꔲy)BX>{c]Sb0ÙJbY=U(:j!AXm`1bC74Q%~DOk;">*D`y؀Bt)%|7)#Y㶪#+N17rcsH!nԟQ{# UEEYA'Ai:gUj GAPRm"Z._r>dӍ^?A>6S8UxP3(᠛Q5!Öc1 cehOb=S՛wRb /ž䆆vg(X8u])z5AB^f aar!6r )hvQ`N;d.0EW{q!baXc|V?{7V.@A>>w`k(_*8  "*IGzιsc80!4#,{=w*v؝t vvn*G|jOħݸkTOꛋ+|L`1uX*坖$θ-F aĐ\3h(`]6n.`k0PCLQVp\B~H"߯w2F23rh<+Spyn7<Wm\9fX v,o5Yr='336LiCVy \賘sfiYaf:&5z>j`yi2Hv8%8Fv +3.N6W P%d.]]Xˣ.v}?(8KF[>m;'s616+w>3`#|gT ߎ>wac:@Kr2? |4c8`rEl5b)ON&L90^k.kZfվwmT ϯWA^}/6[2YPJ3Jh/-Dw`MS Vp.Nq(GQ-{5OlRfυF˹ɨL\a׷>&woΧ|aUL>|X1=ւ?@w?Ilao j~WLW>U8Uu4ҁC4\$[C3t@^QD,*?zò0{w~kNJ/XFwu#GABܳO=Y$S̖JҨ2qAeX> s`tl5T54ݮ4)9aцkOc)*r+d܆dL`I-`M6={]&ڡ/^pQk('9߄ݝ3;wgwf̙9P49# sR d$ JQAD D@DČP@QD$ﭷ: g}O?ڰ'azAknhS!=w=' ۚE+i2Ioe ou3L_g@)zh 9^%ޢFMBr]Z9v!R.A@,ʏj[ܔAmvh!(GU}ӫY);?٦2P%nR@HYK2QYJ^fxWԬ!_˰ci xK;9ftlTK9䑕udtM M1Đ4ȪӳLd*(-m ?6l}*귍U}MyQ{%2Be$ULK'$GChnpNH0".hB8-5*DȟR{]VSkIv>9(68lխS\&QR9Ik$UOmD/)l>NIðT fH8WI3"Fh;fic<7RH4u1JqRl!_/Q0!Px`4$Hly|*E}R eM"9:!ac i&Ӊ=D54m1蟔RU}\qS(W~m%"-J%S/QۥfR\WFmp>)Ȏn3JE^!P<񐄃 ʁ5FbhAh?r<-c^G*%۝X3]0z<ȕ^E$.D{u.JU'9?{瘘mء*nݸTy4\IIx$x$ F:opQ{Q8}ڻ ;yUhTꤩL\v@Crg+ɽg ȃB"T"2ĆX>d$ц#.BG|)c;T:")vɖ!^c-ԓe$IQD2/DJz8JVvΰyY48+/>߅ox<sxF|gЄ WOnrgYek(c$0(A:2p4=YvѺ#XR<D&Sk#'5B 2!ͣ0=:dxU8m -+8 h,dcjZҨQuE?d.d5_p90ZkĹv8\ɩ  l3HauKYgh֚Ҭh6_hÃLnm%OVr33/)4iЛ>P:$b)&s M$;bb ~#[+ƻ:M(kןkQڳ$yTe&d:+4$Yɔ%2(&H i@K`9C-d+e(jxedgٰQL'J,4#ǥ#0$^ (9iL>Y" T.p% o7j3D0Nmr(O6LUD'=21 @IhAIfIH2B.\5z# N26 x+u:t7|3NlyMݍC-lsx.b[CV`R@WG3a{6 y x{O0}X[j#zbc#TscTQRyz2|cIwL4#NdiKI8>ZIM6uCcǶQZvțf|JiO;vL1/x&e\lPE(IK"L1jT!q+4R9.%S"q!}r'DaBBw턺ミܗh-iJFp,E Ւ$Ͻ3Lq{z1aBt֏PK+vkU2aܗ-{lt{NH^L(x :)B&yLbIJ-ۈ~T+)9cHx OB7\GaCE;&;mB[l铒:]c ےXQmms <2G.^Z)d A׺fFrofϋ׳F* &QKPW$d)ROYE9(҃ڊrȇ!KO'\o`m"1˦*fc@V>XN0[8J,5VOdMX_yJLDQdA^b W+8(MξR}CA-rW~])$Ce r%%"#b(қulC\BPZ}_'XAa ,0AQ[&7Y<6Q4ڴ@cw-BpHR!Z*gfK %Z[Txkņ}l)B-R&1Tk*8ޟqV~vmˑHwޟnU˕%_/'-&QTrU8#.(4Ddo Oa] ثzImUkm^Rj-j#9K^E=)5B%v &ФtmIFKط3S$jAt\ݻhb%vvQU51vƺY!e }oًhk ll{g[Jl%5OCr둰LZR)?DIfԲ!0|d K$K%Ssgo* ,f!ZK~PBDZVmAIlI:z`8.ΈeP,er;l =Ƨ LYQ6SԂv/$w.kާrcOvC~7& *}"EȅTLğo' >Uʢ" $S%6oVn} ZFNkV1lȯ)ߒL~fx[GWĕ J툡d|ik4 kqzHˊB-Ti&^_Iq@Q?oA}7AEl e1Z)DCX v=d" MED*2:dy) TN ]6n_ʐ4/"75D}J`q^3j#JQ}Hϋ;,:PV}NX(98{?O 1 Uj˚=?z@n «]ZŊitCdCL|$AJ\"ɔ5aq0+" %T0'6 59un :oi|A)/XNJ ^SaRÑ:M6cA<a(+s5}$BG1&ھ/Fs9恊*mn dZiC: 43jlP3C([aY@ P'w4Ko*_~0dvSBԉcbC5[S`,[!L8u7FRCXJ+wbUZuksb6+)'TgP#WE3bEF? ,hccTQ_53p/Y51By-z+`aN>(YYXi0>2c>K#酦oy[eH.N-FubãFM06>Ct"d%9VNFcTcNj[4k:kY'z8!{ؐCT\pXgBL/OAVPX {_2X o7}p_sКUYGKyRuxCXZeJb!P v@z?̣rsI 0MuZSjHXħ\|i Kgg􌍖Vvޫ7$GyMx,\ "ͣt%5wǷrKA%0h}+SĊNo/FSf٬.6n(0hi(xBEkf`~]}OVWA4O2B P;GGeejYH?E%'rϑMy) :~OvoX+ lZ,t- DS7/d;2lcCy ]wF^*3fdžZ/̎Øsњ=γdxWfc"Z/pPNRk!f9D8aavcL~BvWP|cOn kVPײJΧbghK(< KjMO ʿ<Àoy?M ІL_QӆSTA4}gt'ޅY!cET=NlfZ7$WP|7xOLěQV)²_&l9-y\ =$)'/jϾ> ;/`HT9]Q:$)WZ$bpP>&OT4`K2e,rCϴLڤrYV MW-Y<_nAeI0UcfumVtú|ÙȖRiAλ3u T  U{Q [@ׯ0A1A.~q ܃ߧAꐗr/i kriY2ꖖxI~'lJ5 =Ch&2!ح,=iFQJUPkwNi3- ~CXQ4{,ܜۛ׭mi4GwD1'LpȬIF񒉵̆ߋs[ RalGA,7O9hC 1¤vgSO5ݷ>FM#[=&)ݽHSL+HIlDlfB)7'+ cco pMT,H +$piC2ODp2"cZWn^T8y{z-%w4.2!,GR%W" /qA) ğjk0L |5ql&xg#bR'DCEWm5UJ=[BGJ) *f-FbKH t'+YC{/įP 0p%]]`qR{C|sTkA%c}?-ob{ʴY/Ix. #N\5IHl2\glT1oP8gc^a"ҙ|$ ݀':AyvTxtrBAoR~ʊTcmf [ʢ/ﺼa ݳT?A54~//٤~O9AV[G΃7a~4f B(^|0a2WKN@km-iomrٲHAjc9tҲ˵?L<&a.t"f>Bk]&M7op(5XMJTl=RFc4ޖ)bQ[v,9"Ùx&Ĉ3x&T7]3]/+}16%fu?Z)%mZCVi7ΕN)Dp2iΩa Qܸ&nsC&^Ts~JLAY؜жQyKS:8[aݑm@rL'n pz4wyJHBHXXjJM$͐M=,TԞ;!7ש^_?f&5?xdƓ|-8(."+by1t3(瑑8_{*o`BV 4!ߍ#j Q2n.=^Bmw꛷HtY#SSA+b$f4-`MRy!Qˤ^KIp#~Cp+یIݔw22dMT"i*OwD),4I 呖(jVغ(yLTF5]2j(){W:B 3DpyIs4PCzp&z -g$GY"`:C8NwQrTgcO~V?TwLP_jk7IȿD"\}g#ِ i@ԨY<U뵇a,U iY}ڨ7l͊?,:fn+e"ȗt?;djقpok eH9`; Q<΁*Iym0z$,x}Dk$d)41`ȘȎ8 |ܘk !b&PL:zg>HTS7X( ԑ"Ma ʖٛM¿evHq*a XA0\44gU(2R2kKy4I1ͻ#u~3e /7WgΨ\x&$G&GLX5np=qW*{mz]dyhSHh"+iV+$-ݒbs~E? $"]E)`W6.L4P'!M UZQNXgu6On)Yrnt┬$ uBW?CW1 _pdyDQLwKOΉ}<ݩ#L |c&76;?Rw8ce9 ϔw?44pyK&go$ as+7|@4ܽ|$IbV?/|/ 2ҡ&\QV xЇy%1sqe h ~˧A@HlG.Cl?P^5u2<8jRj5[PR-K}-!VhWpՆ"hx[/gIp/OobV䯀sFgbs[7k+!=b1m{j{^?h=Wt$lKwA\?j0Kݨmk͗Yֵ쐸@mb= _o㘃UF 0d8DF}Xyp) ib[.anz_?4MWJ ZJN|1a5,B,  @9n?hk!Ӛ \ңjy W;Ndc(~HBL؟۵Yfh{q=eVv=憉ÖS)'h-`ˆM~7|ɑuŠj"kA1| ;yn/qL*bAO\AW8U^qi냾&-{a,}{fJTXjsb^9TJ] < kGF 0GpU".G&54 O$la+}P\$+*h) M>ƒ\BGACz+$eLz)|ՃEٯ~a ?QM@e6'vw©v_{RypzzlJo:E}*d5 3HW٘He9\ʷ$W,h "Hq3V1ـ! ϑ"Y9BD-dٱtUq8{ tVdx1X9g` [`.ZO|%]gᯢ\M22j$ҲeK؍\+: =7l7ZKN 䴂ꋭ7ܺN(ϿlP8S_3,:]XA^/Rь_EC9"G aÃ1Bp=`AEX|{o~YTQ߄>,he3ćY|6UH$|daˌdOan Xb_ӿy$A+=vܕdp-NdbEl E" *Z <{5' $uPxaGJ. o-,ՁBO_%/C!biDߵ5iLj`Bž!ru鯀_ uG 2@R=zE}5Ҷ36.RZq۠$,ʦ%/I~ ~q]pzGmpg+6Wȇp\e]g?yJNJKf%]֤2s^.>ON㏠`m}зE݌%dGnY5`Uk*e]IzNN>g"{8<gpӒ6iqBˆS\EkL@yMZ"\WX>~OqZ t'B՜)2$=EVC ͭZN%xz!Em~ 37$8qXFA*3ޜe&ߐV2Tj1Bu`{M]Z?h߂yd n ^ZD4 Vq »&~vh{GO^)4D{'ا%M*[t4:dv$$&+}$&y_ZeE?<ۧ&$gGg+V S%^g,i]ڠeR1M@?ihh, tIǧy~k9z sm4OF`\ 5a<ۡ.%n'czvvF I(~R} rJX(fS&r]V3uo-"e3& |3ϝRH"බ`6LU%ݷ.m[ |%Zˤ(Gl~&VHD&yx\\c;ϽJs?n/+ `e^ł@`}1{H4^N K%l*s 9iҶ KL_ v_:{(Μ({C%8 fTa2R,,C<˲%[4U9J&u+f$q@ m%%뿆XwBCOAv,jAX:m<]@o5&}4Z6= E݌"ՎK V 9kmG@ȜGO/cJCG\~\ѡK?=@?*ef ~#0ykru楒D?mXL-n|YO^=hx:7)*L/!g{:Q^@ -pKfbvҗOI!Q@/fV$vV:Gq0AufKUw/1,\Vwg+RڒV5UGQbi] $R.yJ%y$TO;x&+k>ZCoxFz}]1ūqzLS_pki!j7%{.Ok)ϊt6DQtV=to湡 *bL}e8R7j!+@c < *1`-#t  Ok=1gD^{WV(6rۉ_n-T/td9 #k/ si(%\٣Vw:w C._aSzŌ! ShuڥD\3T\H[)纊W*s"ֵM^Z;Yl v%iKrC,|@7엳 *lY,5H 8"i5V fz!~o1Nf,DWun7̏t`Į15yQjկj[ tMyJhR^PaY&] 꽍HX{N]?>S`)ƒֻ xel^e l#V%K`9Ck^vPq.=ks )w">_ci<"ɵEBcN]<ĀD ^x DIf) 濈 O3댙',cU_hECJ7-63WJw|T'OBjvNeM\$լƟa[ghh?^OYurtgeT地Ã+4[Js>q~̝vnW@J9 fG_o=WVz\1y<:h^ xFǥFVg.|0!3x2/|S!#E–=Zoݵ.A}FXl6Վ3`E=Y^> ^sfvZָ͠mZb냾[4ufͬ*+v)BI0#%LB6"X0:1k2 sC5x ׇPJtßtG2?(ǫi6Lгۚ/o5gGc̝&gU׷x:2=i "c=j,H hNdk=BSj>x]NPݍbk$W+[0k|7'MdȌaSPt3" L΃IRbs\y L֫kn0dUB}tuZfClw?l z)-6ғUSv'_jƐAn|xL1k@_Kܟu~nLX|fzU䤹B#͔2|˽vLk㽵lgTX`Um8cB1#爬GWC7T|j F I] U|vN!D>;2dKP}\D>+pOn 4g>L[}>(90X/@KLNҎO s@3RNSҪ!Yg,C~&ޥ"1w#~v3 a_ HS{1͠MN{ewG>$㯲?=mf|©7e +rfCS=U!:EQߞ$E 4~! IB-`4K3fcfE^ \xO1!rt (†z;h_0+r)E&Shoك';~KXWx$ǘ33@ =AEGN;u} ɹLl@Q[}9/x7-P>MԄнN} b=QEѭӱ\?|@3GY&?Hgݩ`GAb{6ݼضWkRP?HDn}M7H$< kg8nB AaJ_^_GT?]yؕykNWza3Zcs6˧Rɤ.A (L>7=phrrTh/,×'[3(44:99Dֶ#S;x{t5Đ;٧ Ap/߉a)c8ƨO# /u1荕BA}G؏` faM!~WRʌrN䲊N,%Q +MYMP٬gdbI>dpP6a?/NV|[OI}hi~6'N&7S7u:LӷW4bф`K]fx|WШ䌂[CdbVF)ꢂ}|StGyƶ^xϚ]LGF#yy}%+:e #фe. kK\wLMF. 2j;5:<7Zvhp0JV'_RNi$*Ԭ{.131}PN=sꚪ+rcܵQmRa-ɘp\h.ނ_ܿVA[EAltmEkUR]vI7.Զա$[uLiؐv3ӜtBٰ~q!/zaf>?{`48, p2td~(,GFH/?&; b3 Tt6;|spTh._RLygoR_E*DלX;p]f%@q'Z=]]=aF(2F=:?ggzk1v]Te!ɒtO= 0STNm@Gglm`fUϋM0 6eTԡ/J R^+c81#F`c4mT9YxP^߰Xjn‡{s*aS`xsc<ƾi2]Yͪ?@:q'[Bǎhm.7QO.z?`.G䖬ו^ݹ⺐v(FfΟÇ`-Vouv+Vwϯ9ٞZ4#Dڟe5~~bm1ftXD9W鍘Kufzq|V尳NJcvy S'R}n}  KUEs41MX~cBN:\e"`Nѭ͵o@ 8ȲwR9P\6J1mC q L´Oܚ.|?C+y{\ GǭƑI`u)IMT֬kt0[n#Zo~XʣtPc|y6$,+Z_]}S*O1֮g#Sg3n篿~搧ƶ,x@zu9ޔi,cΒ'n#,@$qggEu̘om?Mx>6zZ<42K6$6urUM^B1 s=D̗>nws0'b6ejm=FuPΥ!%2cam*7Z^i>K̎j.Hrk\&1"J?TuyN /]pcg<}xwhD:ޘ'@y[ʼd7o\)w###o'L}w>ŝj{+BJH0=S2~[ 0Ms'|8nNLZh\֘PT#p^e'o:[ሇ~(Z'3rohN ^ݵDܮRL^J;z)z:aMU?=Bw81m]ԩ_BCSmcHt/ nܶw=ee]aS- DA}*?!"0zS^+Jl٨OvV˥ANr,"N]{0-82Pn]|g|k\~x!M۷B=nm מaAqc&hv/7ৠ¼w0R3n٥QmKYBǸL|~vh+^vԹ\W~ƛ#ݕHGM#:P@Te=96M_Q儛tෂRCZQ_໇FyvC*TW62A)2@v0ͧG$jԭ^}<nm:3 ףqLw[j3ho U1ZȲ[:.'O,klq}#t$DC<8$h_#ۮ4$p3v?†ק1F(ʶORqESm9^ ASs`ץV̠U&96xs>:qzbno-w\ϡ3ںZks6w^Vs8~Tz;@©#C A#'T%|}!l&pYЗџ3##[[[!(SV2I=EcWș3u>?U J[ێzrXVIu`7"#QI D w&r]"f:ejKߢ;=]evb/P~yZǮhHc% Yo']yp"%364<9{gL᛭ř !ֆC JZoͪj\}32^Vx3ӣ(McY<, UGadkѣBU=!Xm U.5{sA߲R J@S0 @v_jU} 7d`#}k<:C'y_Egy#f44~~ۿQk&]d|#&=np;9)Fve]'ʽɏVm8C;B =G ϵ z__TF5עcZ|f.InZ(1[S>;e֎u:k~, #XZ A34jhmb6u.$wVI,RX$c֟$lyK*n#o֕'G3Mw|gzRYV~]~R@cőjuyZ޷۳N=\#55Z"Y#SΜD>#էgoW$βOCö?Vt{UiץSm3]417 ݽC {%㞋'RC]M`U~ǻ5G/M6et{_vAN/8Rڟk߮PkVMգnJ;K𼽔FdU)ߘ3]VO5ʝɡ<%| Ӟ-ѩdD4V]c$cS˽/g^qEOdՎJ}6ȶ [k aq̄tC]XD"a_If1?</<2Uؠ1Z>Ww':S?&e;gOyvۭoNn8 n<:'ŭ|rJ䯸>ݺVE:v>e̱޾w1 X״"6755Uk` y]yU,|͟kuח_Y6<jק_a>6uHTֽ*Zs#o:_K;wq<쐃,G2u?:Kluں6zo#Tendstream endobj 312 0 obj << /BitsPerComponent 8 /ColorSpace 169 0 R /Filter /FlateDecode /Height 800 /Subtype /Image /Width 800 /Length 45190 >> stream x\{gfwmy;;y$JPT0!"DQQADb,*b@̊#** zbw5t|?bwUuwAש(Ha?'g~}<|}}_/_}u/~*|Oyj^3'_-ӿij?_ߢ}O~yOt׼Lhv7ϝ'7O~2Dv K/?vz? T۟;NCz;_?L< >nO8~'xx>8%E\o;"&݉[|o7L}woD ޞbg_']=ĮnTŞϷ1y(3\K /o?8QțWozJw?cS^g7wl?.zf6G9٦GG9cFr"͈M׏ll!RBF4kw6?S6rf0)08gXYկT?;=Jm c _g콵 8U#9֥~J*~ӯ}+PzU<_}Qŋ|Y$Ps|`^6~pl8_|qP>~?`>l:>h@f4Da2h0"6{oaa6Z9'}bh3'226{o|`Iy6Gϻ[Wge$,ub2[oy|7""&aI֪-.4_"rM]{ QLɲ٧*JbY {r sʃ7#(u~p p tî3^7{SS̶ǍљviO=W]$ݦ-{mO@woHd<"_d-,gޛF>0T}pEsO-˚&]sQ=%O'~^+s8D"37D9 D黯w)L}a We]z50A0ov\|ҹ$ ]_s~?-hmj(w/x#QA!=rt[ ?*m^J1>̷֬[|Y3utuѺc:gկRn0}yɑɝ4찹/BM"'0":!5kuaUZNUo.,Z1N( %'KsKy5.W~ъW14\г7]zІ%Dp%BoVTFkNmZ,y Z[oUX4ٙ'Ů){as-F4JH l<$nx͹uHNMl+_;^ O/rD(rR>)D"OJt pʣFSGu7sU69qǝ|gOB3+nnp.rFʼnxNj K OZɩk5CѸ=NuZh ]6_ǔaD2G?=mBrXνjW~:z?꘭%t8YM:i0h0>rRX_t-Ye郢P`baDA5x/R2Q0?tV&g4n5lOLL 3rb$™[ܛ"7aDklv&F{P.uYv:C{>gҢmMt ,k;!JZ.JOY!ҧ,k J2y8B ^tgeEou6KoҰ4C|o~8#<0^fd/++<_0^gh _g(59;ѳu8hh9 =Ko-Nw2[w-ϵ͙q1 N=28 ^gCO,E"%CmOfZ'jթ P=.]FsU(j+C~yj_t a|`an?ZXGwx⇴.BV[eShd0|dy̎5!T(vW>lU2[|qU4s%CXme~"|s(LbzʪEfyw]?ʇ#xWF'ͱ<{ ;Q_6"}jqx8E#Lhꀋ|k8-?׻f2G=^n@q%/KȖYp_9"B2p[9ZKχro,i|ăox[(!`lVZ~

9!hiC BkY; > Ym 2Yoȑߎb_CXfoNfZqtƈ|u>PVmsT񒿾u$}@)FYR-p7BXg`ؙ18oƗ]Qgo*C;D24wj>obeG?ʛ}ǒuU|AK `qԪBsG}RUr0 V;]&+C`Sk;sZ.~ w; Q.bQڋSHǏ|q&!a,8<wNNL{ƅ@JsG6G MK"m,O8s46t0p=~ӤXQgZdN@zPӋ_ ef wmFo񜊺84hc%3L;mh9vwsx@Ķ)&w7s̈́ UU:WU]nhjn)in$5c2kxdfrދL>hȣ@CLLwyQV4sٲ5 z B7bvBRVVB +Rb#|BH {V -@Yϱi n>x͌{Ǿ5p 4 <0JaAEm=Trq"{PZp*.)ɞ,]"ִ Fq&L(1!LtG d.rViiϙ{HXvǨuG }]wSՖPC_O>oaDh6 aE(>c0!x[dAM.)Bs:[O_4O7fO5Z!y&9D)iZS-i:dr;m)6uXwuPiVbbgaqY#BTS3fkyA\S~-%L>= %X}Sfq 65VWm6&Z&uE; 9`ݕryw>eu*١Twozb_ v<ƝU5c2cԯ &\H#e8üǀC dTVKY`$܊fh=ȁ7cδWI-,">l6}@ϔ?n+Vfd Yęy_G-wdQ ͩ%OV95 ̷5V N6}K8hI%b^Ƴ|`oG=U{4Mcu4cb4=?FO)ôrUl[8'߂f?ozmJ4.p6]Z>0e=% sʞqWs{~(7&O6q? 6$ˬ1V;޸0}4I(zZGe[Ȕŕ4{>Zb$ϜɎ/8&4'FKl,fEϬ1fet,gpqa%o$Gm2I.LP>7ڔ}`:-_i8l,W3Aԡi7ⲡC1rL\$66M;ĸc 'q\M;0M|B蕁2cE/!z>=[_upe{ʏW5{j%纼j:OEHk>9J+T]^POt!c{3rvsF(=qE\enB!3ҳ w()\! sU6S`AeW \ڬVeAgj%*:fO1+GiÊI ela/ĭ-?UO׾WNn[(O<j.,&dv _L^a5V_|`ua@YLWh3x[h 0X+&9G2i+jŝ˦s6ROƗX;O 1н_Z1a /E>TY8YBXkY<]9`}hf?T^@q+wؓGn8o<h"R݂R3U5J@1vJʨ>89񱄰#"c[Qf׻f]OYs$g* ۴- 8/S/&E;ͅT(bk~g7B֤Te [ cŴ})nxEȔ'~{/O>aa|g;PyR=RI DQ~w8gav V#E&%Dډ= *% 1x!m  ;rpMGͣos@h[!(bw{%Zf}p8 ;'"Mc՟`tH3Y;CÜBOHodʥ-ynKy&kڜh]wg2ZBȿ9~4lVZmvIw'N;X||UeyyoVտ'.54ZapoZqw1F LeJR04C[FK ۍT\ y&.w%y`ћɏOtksqs~3Sh7?D ']hYaʼM#) Q,vJVfܸjk8 ȯ,waeoBI& ː3UA"Ͱ',NHs |a/ZLR62QPҴ!n{DY嗛|xѕײ!?z ?hXZ8tPO/(m]@_|]Yt; 9ﭫhŤ nDà'YR۩-CbN}lE՟81{t5ڷtmٸA Y?FBcZ"M"VӘًHMϓlgGKEiFu]]:Tv2_h]0A !XZThݹ4-;R֒j|1f`._Yf/h`#L]4vަ(ţ,i OѠ"t[k< XH#c>N;F't^`7D E#SؗV_q!FM{j^Lw7_=BCU| ^ۧ_CY8i~9߼գM1Vo0c:]9v)5/ߤoOˉVQ+!.c>c⼊ڻ-OX(U l9:>Q+Ttnss*1#_8W0Ю;hJ,f-OǢ|`\-dl+á*peQ|0 Gȵ/ rzd (mgeOjJS$|g슇{ќmӦ=Zbekzд93͇խjsm3Gʗ/$wvF<">=URɂֻQ ݝ_qF|<ưڪ#+{12?Ok5YETI:F9JêGחbךIv%gRLm-Wt,>kPȫ%μR)z2 TAh[|G BoTa<F\T}ɎOY8{b"UL"$+Vk6b4]pS)aJh+DshtmTO vOwcQw#mxKo@q*|BP n874 h:TCCDןOX#`S[D9Z>TPh&1ytㄥ7̛v`!k݁t(;qN%/%̫Mnj zLC'W[h /y82iW.. N'4DJG5R@2\X;Z۹r:f{62Ұ*N`ol)/Cu2l:CR^F͏b\'|nJROpI#gTf%4x꼒YJnx2t 63/(FN"մ\eoin(y%Dܞ*=%TT=O7*Nsq9D+Af3Ob QdG& NHHc}/ȍ gdcYNC&o@JVMbژ9!C7'YyS*I2yS li'xI꾀NW;jSy< gjpGLu ؉193 \eג]4tIe;Guqi#UzWSٷɍ^ƹ? d5ia 3ꌷ/pNXx/W_登?踼9ƁyUSv5#983xzFӭ>TB[@vJ@"ѵENvې"m84M5TrSYEe^nq̯ņ2yYgٵfxքkmωZ_7}G"P2OZA{Ͽ֢k4jS!\D0իZj8L+$5W7ظF?7EztV 1-9<ΗiTa\) uʜ'yI%{HX`3p?Y2C40<_κe/5&`p$ͺVI7j<kK̙WASiG䱑4큔Z\@vX"\,W jQ0xҫc{Q>$}c>Y,Nٱx+dk #[Kͭ/9[Pj#5[hg j?wy;Bc20<$)KC梔vH3ᖩsImjÓnS폚JP/8lxt8#=ǣ)$|^d3݆z]iNI@] OZWH <~eEh4m):/hC^>2uB]1UZ{|hAA/.޺*iFH̕ 2-X|#26:sU%E["WHܷl(ASpo6)`9|ueHyJOv;RdM<gh@qT!X.|||oX2eWto֟ڽ!-_$BD/ f=lq){]ya->y4)$CJ);h(}rI&b}Ziו˞{f6wɎէ,rY\$6ܪ f=]{t-e7TOby$%]r#%r C{0)d(#WlčI.kvDw[\:ݠ\$SyY5CvAOzz4+o?>2,Ɯ@D}9I5y6ckG֏? q/!MOFULym੟mpm p4_o; $eWyݵz|>.3L^Er աKЍ̝RDJBRMCb[髌N^Twg\/d&%贫dN5:v l>ҋRx=Sfq ucEj"I 򰣤jIuG O}~ X49H\J;gv_Z94zT85fۦǥSyכ8FK@(mӺt yKM%7 BjV Cnحmʎ{`LlAGUǻ.*C{ !hCo&!I>g^RQ >^5Y Lq24k- dӳ6|+\a*3 hN%2)MX_xEl6=BLVQEqK8ȇx[LaUGG ))UpPnMW#jnn骯őԾ+'<;죿rt o&Wwp ObwJRc{2iS[CpT[{~ 3b6ޫ~A>Ic'/r1Z᭟&,(jxvimQOF rE ^(ܬgM" ;650p>QxrZ ӕ4lG! >GmlMӖ)< |]Q5|aX7YaUwT:rr8ZAxqHꅳ&#$ꇐ+2E]h2ۣLu!e]Se<Vq(ֽ% cZ5!åmΪ={V`XNM7&AUZҙ&Sr+F{ [+/}Nk ?U{H%?=D|e͖E CN\F^.Bsk47.++2qiY'_F,]DȜ_OH5gC?,1xl|*CkrXJR/ X)[ |Yͷ"~2tJƮ>9E}Tƾb^ } 9 4#鞔Sό BELvOI?~_>E-7x`f=!݈b) T H%kĞaUDqܿ#=j*g υ5|jcnl_lpr\ojz$N4nԫ!Q-&, xn[In#vt]B* Εguc/_l~켛{QkX ىxӷܱE^<0F2|%]kBB?Oau}%-&o* "ܙ~igx-Y+_oⲵ/sYrI/ToV2N,xeJ1(!c 6oTZN<+3EYln#2KJ;CYRl ̙E6%$( \I^&\k@ZŒAE>繥 DzT}z۱sy WcQIꖈl|K ܠVH3-3ăs?nqhu.l UKdH;"dJ;&_u ׋621ڴ$WJrU,ƧW1쒋b(4v$b{αw]4]J6ݵ&Ʒiy7 D鶟@k7I[ .b%[ϢUW'fajt~PcLqnM(~>^//Fho4g!js7DUxʳ$HE+ceKc#d<O>T&xR;Й 7p( {%P`.z}.)=M<+{)$ MT;LRqO-InIWec[_8C$֑:P0aZK鞔ĂwO.;ϥ8G r=WiSD|Eb?{T"14aݾ˯,́V]2#]l>3/%g@BH=1l2;{wXΛяojmK1GJj]*3=;>n実{Y8*CF#"$KW-o,_+$o9ȲXOK @:9m{%M= gMN$#$yԩ䛅21&(@ /ϭ+|u&^uO8?(a cSٓzbV`)ok |B,Lݼ{`dMBQĺ3ÝU=|(qJRv]g](ld`CE]4JrxLbУ$Ox ?TEϧ%0v(M?lead$D")q+5bpN=f<1ʞڗ<#ܛ)FrG޸cB" /،oVov5UEI@>:oN " '=$?A!:|gfāMh͟)NYW˦soO4dEf*$6&2K̕sĮ΄ ao'AN2>n 6>N1< ݽЍ4[pr ]}jUF-Z}Uաr5;4?OTU7lnVqy/xEr2r'^ym U("YEzS͐Ή9) $<୮=81pAQAܼ+ Ou<Qȝ)}&Dۻ_\<>eX( ]"&dem,ԓ0aVT(f-ZCR@*тtMSZKMSO;$R CRZ)ϭ(!]dDsGp*\qa2DwT+\sx!">D,ǭYs `o͛$ BWް`Hk'7Aݜta ŌlV'(7KI%Ķx14ɕ@ܓ \$wΩءQ&@>Oo\_?7|GwSrBGޖ {r"-^s[٠ D`:&kaO7ô@&9!ˉ8 3~%j. T54jъ+|h_Po^}-\t;.U [kY{?ۨ3Xa]{%{[DNMAYv2d2.~c,3 c*nJjk4HB8#;r yΓs_|aa*ɉu3n% ,aovovc&2di;Gڟ@)g *pObqqSqz!8 1v鿶e=%v٧8G 4wϿA?|Hze/ͳ's2qo&RvӻG^nΘ!rG<BCsBqk{.."2Z= cp,4 vJ(p s~? TQy2/O(t%.޷UCv1ل{ODS*LGf!-{Q+%>Jc ߥo/j|\xc(9$H5NښrJLQ99ˉ2%Uѡ)[P\^$p/(F;;] ZRv}TՂdNWH] K=OѶ:u_G:݉'qЏ0 1vƵ5J3wBBqu$$MXyǥ\%->p8b甸0m)MȇbwJ F?X}Y[g$`y)ַm>mzB=Uպ?hvF {.(ҩtVcfbk,#Y.^G~tn͢2ݣאFLھ'6s7V4kv^]e!K}mTR O/~E+O^|]ykpySȧh&1+6bG);Ac nm7h9"cNy0RCgnXQ׃*m"0M%Var+I˓r>O%/o N`壝1& {[L/L㯣oa1wUB^GղR΄I2gw0F $S  8GcEgM?hHnwlVN؎ B+5 z!i-DtIyt)/#W`Y8Ve֧KrYJdjhwL89o Ԯqnn.0ZhLcİF[T}~E5s-䮩ʍ<YHJg~_>a2j)6 UvDm\Ю8uñ"eFs8f41`SC߉H)1E}1 ;ΝM'"ypݑt#F]Qn3<4F g%պ%nxvY<0^5!*knÞ <ՏPFt9,3u2cۼ@Npa#.nLn.VBmH:Cnv~l>ph3vŠ4X G!~eCZJ9K5 ԗHdͭz09fޕ*5gk)S;%JS)t2"<|0R:ieV>s7Y/Q:: d8b,MbsI= 1}`1˰>U?hئwe|]f^%Iz|9V νC.jPklANn-dR*s Y)T֫ӹ~Z̔!YJTidwW ᵊ<3_G}h>CU!G}3^# S^ՄuW,.{w*u@u |oG8Z%Lc R4=zΤ$?a?&{%`籃/'N$ '2DBa]9Ucw%V1blim(yow^T^x3' DWz6 ԚQ]"u*ݻ&!N&`#T-͢Rѧ%J:զv8?ՓDQ_u?σWe*@2Gt!0r%o܃l";{op7ViWApd1o1w86` -4d藽]>b߁SqNmP. "鮁ձ5b ۹mŰ[Ϊ:W #)v6a00E S )ʋkL,A2-sE{,P@\A[o .QXj,CG.?Jg(}>X ?3\~^w\?kڒ{.֐֬;] vY8^{DM0}31ljv̍>ż(/DrWЗOE7S' j|=:h|rxk#=6LU">CvØ5TR>tD/'޳F\?X4=͜?c؝9j-:ڳ5F{L跛{YPEd'Iqy{ s.i$*EIbg!AOt%H=YkBb)x|oh9WUr$cDsrRl9V@O#$%XQL;p)T\3E"W{.'r{Zrdn끺LGQ ?t2DM~юGr(BiҦ)d\C98m@bxb.' V ?E{W7*e{ >י=]TMܰĐe՜iV PH2:mau4]RA*|UMIM $){04 [Ny:~6 YMq DJ=Hx#E>:F薓|nk]?K`2׏~͗~2qkH䓈TqSGiqjV/ՏGna}}gRNmަ!K܄:Ǝ#=2/Sooi\;k\4^ 4JBr)S-$XdbѭnNg\Ҍ C^J;h/[5^ⵘ=ǞY|F QW5?5}H}9LS^7O t}8BCJT_p%0XNq2ZkZ q̳ "8~F7 ɎtcH ã"\/.gip^z>_ʜ-I[kt .դI6rW+ԇ̀y|͝nUspI{Z s^ IngTC2qDt-ߡ'-'fO&Jp7 qU$Ȉ@ڭЫo;6A>F eI[^n}q4:8=,(K4_9'%%3Ww?X.G8x &<ŋ=Abo+XLDfMS)YDnī,rApFP;;/إ􎧗wnbp`U||# 1 ԙXRNRIv간.4L{:鵏7S}v☷s9VqL֥WR*(FW=2&]䬧yHwm!2Qf f編|"5ƇK {0(=7꽠k 1,m j\w-Fg0E+5kvk.\7UDb!h=O\$MǽrJDžk{1.Wj.1=/8,G1s[4 vz}햡"J_ }}d!rx WP_iWڙ\ͻ{kWk|mo;[J59݇gS+L}k9Ҍkv!>`KC3LK HǹE8Ǖ?I#zLX7釉{|a9X(W JRf1Wwh$cFs+Btƹ|!WDYC:7fۯ4U}t6:e/IȚ]LGS.f8Snb-X;j9eXAڮZ}ݒi5'\DkR薨sVko r_jLu頚͑ONmڑbU@G2x͉։G?[vvnez @Z 5 ǹx6NXA@:bjؾ;uJBwR9=]|KQ.65;*Vۈ/>kq*( /L¹w5odm}BKA@) W&U+zɷ:v\)My|uܴ5.9kEdN)8mdr;Q}>M䶱ĩ?Z%s)$]?F\?q,cXr۔EGuy\1_a>g߰냋N:LA:a))ka/z}xV6*&F uQM{6N_h E<}1Ai$5s,^\ #md)ѭ->t'lw:H<"\H79.$[$U]Iqh]QAoT.=hsNc3A-9³aJ%~/?ߠ+V]۞6ݠpvl= qLBE_{R葟O0y`]t)sS-!nM)H65& gm'`wi7X_ny(4 ƐX_ ~z >9u[=A>l'[jqzVpM/1Z@J~ͣczQ xE4@Ji=DK}'s|O Z/_&AUېn S3z~j ^\OM[KR :,Kg ?fԄ$ ^"Ոkݙw.= WCnJ{RTpY46I3 t/Wq+مDi~k4WF_? Vd7Xozj`z]ve)]+ z$>P&zة1L4~&m8$Q6cHns(ftyM6eok֤OjKI*%mrb1?qg}j(cT$qwpPM^T bi2a1Z%fc0]7R7`$ƙ,gFyx@둯?/ Sq#?+bWh.wk'㦫3y2gAzI+ Od$<Y/0,{I$~±W3&˻LS]f3 Q/4jR|Q[阘no֒5ZjNJMd|h#)]X&[d1-fS}5_|!svN &o7|2$]ڋٚ-.\hucHejCU5Q |_*2Q|ިpJae[$XB&a CPr t>q6 vd.,`Zho2kS?ˌAK&芬j>v}:c0x1zJj/Ѻ;Isej;dNft/.fYo '㝺@ .wyoVk0G/(1!sޏn.iua=^ uwvtϨBz/d*)c=dd7(&䱉QW2W gJſݘ\r= KWaikc1W4QNuV|O|=?;UhD_1UUcSo9zѩH(OtW\L׫2T :a~+MZ!|= ̅MbďndlTF]IcfeϯH>~E(k'ST9nT*Ҿ\z X!O$~n.XeG 5[:eϯȾAX8 ' &Ǎ3"+Xvkΐ+g{+#:G\p #?q2P͛A*s4ZcEy6J'qn 0V?՗+N #='rT΋$Ӷ;hMJQ65.l9wR%hq)鏯OC!劑_֨lM;4=wպodH_P_*+eT sV5GW,b`r&Ơ tOa uJGܧ-7׈fMo.sΪebReF |nj{`^sݺ^?ŊiG|N<-nCCޫY'52 Oq*,6RdSUSj VdR'[-VIbuu2,yIh"/D̷2g"qjű.P1e v(s cF/rcG1׭6W耶Skt#̣z:ӋSw/ =nHpGo=>T9uo,as $D]%XpY®zc豠=r zMqk{hbqۘX}ʭO  .EM~)0E7y)ZݠFEzYalLƑ$0YU͏TAZg !D`DQzl,P-Vc֬BњAw7T_d ,hXJJ6CM 3A$78oзkYWDBtjOcN,m.!#U9WKG1 VVt:,HOp-\&ؠ; $d0Sߝ10ݎ~Z2J\GZ5}#bF4:3E&j!m$蚄c>[+_}={V v1o?MHa;:J4ѓ\j<nHMhUFK?W›38R& $| +sVY15PZ 荻٠)̈{˄vSWBN:d~NFa> pa䏡8fO\4EDgϐ|H!Ti~%B=p>Nrm$_OtA,4Ũ= 7"w\ [ aa3j91<:< CiܪQt;}5#p4rQ֕Iڋ"0̮J|뼂9>!AvXBm V_Jzg5|hшZb !'zE2{=B;wDڕqK^ḧ-і/9f Y|) keC>{,BߗR1{Lf$~ËUA`-Vw7tnv,{+]C!2Abn tk^ 亂Q1 &Lf(LkAGhdsAK%sO?>?Ybm̝c%z.[y bxom[( alultT^u.4gr8ua>R3O΋>3-PmsKi?v֖ ؚ'톝zrău%iX76K?f{^kdQջx4r~vx dZ>ەrO@WäJgmzOO|VeK~`[[+fnaL 6Z:mյJy%pL<{] .K=sb2V+Qm|ȐDZ"ΎŶ|7VkrN*4.~jm=*ghq0YFmM&w͂Q%L4cFЙOJ ݂+)}>mNwҏKܷG&8;֬H[!c">H_(Evw.&-o9'8ZTQVڨ8%!<^9´͓1LȈ$L,VtG=9̊vdO{AӲl4s߾K@jٚ%{1e]yA NO}8B-xƴd?~:@?-}pkF1: 33pc;ڷS%Fh\vufK3!YyTI͔jN2QL?!Cs;}* UF<s%>ľώq\W420S8SŹbL ;-f Vu(ѹJsUv姫uRlBfĒqG^ʸ-ִ-ZHǶ6 WNY]@;ΔgA>>;OO:j?2R+H-g!=^¯ʕ'F\yKL`RM6RDU&XQ[ξcN'dg#m#09f^=q-U];.UjE>_d짨Z3<ܛɱe D*8kV_j:.+wj1SЮz qnq^G<~t~MZ}.z ="tzwUx5iQ!K'wM%⹖<˷ȷ4mvXnqo-&9ypehǒ&5H^64hMB7-dHH,.]I2,;nRj܊ 1/>l̪iM{Ĩ7P}X'58Ul0/{dOH| h=f؀{'5U'IdeH }i0OgTh[5!~"P7ꢈ=C>e o!?mG8;K0 ,fU=WSbB[JNbOeJ=mx矝_}aI\ir/p:cot,'0Z/YɯE {oȑ90OVlZ&HG׉a{jY믩A_aT!(P)JQNJ %Oq/gg;PW >m 3B¸s*xjEdq6Bd*q§X[:B^!VNgrwܝ$F$gi/J\-=cA||v!|囍nڷR@H2ma/YfrK Zk 9-[鮷s*П=R޹.&#[\d̘ tm霺*+8,&C}ggnz`(vMAb0WF#V~qU-qD1^ʖD%ߟzhf7.Tmx9`}t H-z\;i SX3.$[dA[&kuV|v:ؕq.[3.2e1Suv/Jwh9m\0Gv3dz'Jk  C(;()214kz;EAm0Y+4n(l܎'RB{˵!-q4/qҵbA/+{Va59zҳȁNmc:M= 3 yFf;,b(U+C_X>qPrJ_ KkPsχ#\cpÀp~#14^dΞZ2<`ZMU`I#xj4R;iy8CA\0횫^vm .A#.4T>%>i a2]j2>E5eQԉr@6cވ'_T>^ J)jXo܅ċ3ǖp97t>O7~Wq=%C.[y?ROᷴԗLތ'r܏2-W]4,PYQzcF?2URWI.vTrj|\w^׊ Đ4޻sݵxȚ#pbk:̉3:eSk) #b]`c; h.+ϓw%M}_ 9'7zL{8]LHb-_!5!  *>e[Ac&ŁJUZetӺ9B}흮{yZ):Kܤ[LT }H7 -ˍbƳ,h=3RB zl.^sptt'}T55;x Cja_<Ә2cD^潫ۣ[>oyt\dp6ٙ YB}|B(ڑqu:daP5skބf+ћbqw2>I5ɂ :O7WQM-OY}.;S,K)5G6\'bs4pu1yxyKu\] [2晙7}f`z_Zvh{:tT,`7FYUԼ,1K-8gidQQ!}}?oL"řᓹYW{lt{;m,eX~u2:z^H?RyCOV+ S_˔<جO#= 1+Wu:cDȼ%Y/#sg1z#{Fa|-avlrJPuT{.!ic3y>3b9A%>U^T#']q!}x\'vKPn1LgX>\ΣM+CM4NiԒ=QWFlMVzU*`)gM[._3U9V iiwMG#+>V({EhGJ!֎)x.; 9$b.R.Hh``1BXeE:' +jQlayqีo9?V~h_1+g}&U\ 8 ##s j(ݳLAQ"vr'nk {vv~"6I)54}xU xlbCRڹc 23cu; 8ouGYDқ&UCt=j CǢ[B0O s͝9Ha`0/+,ޤQHBCf_WO9""m OUmRmӜqJOI?N*HW.!ݑ~f<ln&k@_ڧrV wQ U8[mt4("?OKfu^Uԙ{h^RSk7*Q&I݃[*lfJ7 iwgОҘUc`iyKq}b Ozqm4yzH2DM0wZ}-U&Qp/U'Dsm"%^9XlPf 6$J\6G{(R跃W  &sM&}'oֿ爴X.W^54gRלg>5ҟ֝{̉:[Qj:Q8s 7g p 27 3mi=T'ٕӪ=d}Tȿ V[bӳ+*-֥h/r/:B_ 嚗u%RgM눕g;_+u-ք(=rXHI{X'`RI*\+z'd<|o %/^[M_\xXx &iHa3ᄸv$&;No]s5:R_J2Fx;Iݫ-,IS&2s /gL2UOU R,/{@ƈ^|b/ tQ,pL 1S7p:Z;NWpY#*4W ϙVл^x䜯Ñ?y?)D~^d}yBzTJ^w>Nj!ׇ o"Q'˩!6ȞJ&F5^RKK8%$˛H zžs,*kS:뾚;.r_ϋ Kÿ)At dX/?c2M3JDrd ˣI<}Åb%%d;YP^0/]bwH,{YN^sL"I|~AڹM 3i=q,<^ȓb;^- E'EEj Ynahj N :o19b$>D9iβVť$.O>셌 6ܣvmGB S8JO}#U[2ƖEZ_q*.$E$e 3FTιv9:h ~p+A8GIOES̭қLRWE0s*q C_DYw `\LHM&9m{OvE y&y*GD.3bՈ[p5 s@3złtId6#A&FDc_LwN QWRy\!lP<޴#6![fnZgYٮx& m0= m7"M,|{n0+v9eP) S>~2*CBsxm{!yygf{SL~|^1)# P8VYV8G-x<*EI&b8)7񵓵|z2 V"pKgz3$jR (>N*hǤxazr*IK!VpZ-%?|_$Jұi[Uct^TyBRYWµM#bSh"1` 1ˆu:(ݰqUS d+sn6 ݲ݈Bȩկi|o?{nL75ՄNRpbg'2D}gdQDlgQp!T &](*el]QN+sa M#d\UBKPa}P%xxoB R+wv&?d%=5hċ|)Ȉd@akn2, s%g3q)^wt*Ý": :N'+lVҒ |1 BTqZݰ;/fB~dx0*/6;ǭVp8ix. vUY.h۰ɞ@ɔ 4)c#|dY"4k$ *8'DWn/ -oR[,qp[xb6t(PܰLUmm}HjkT{Mo D^ٯΠo >Bد񹃻i_u'摶c˻PQS6+qTng$1)cvMMd[*,6="bpxn=T6ܘT=Ddqʤ":0J0kt`aFq$[l +uc{@]èdA_sA%qKݰ9|NBRIz@:4`Gu{yҧ1C4Յ񸗏1axgzI\qS" ~τԶW8?Ku.Vs/ʶ$~I]Oi:`ng{I ǭR#x\nXK>W7x]F:5OhW!zFlFPcGR<+ǡy2<#v&B]47WOni 4vl:ihBEiV,,!n]"6 /^e]?eF:1Tb[KTsAk3yL#Z*śGgz)S[^ʡo-Coܨ ێ@>&fs 1I)u#~heSKdW*{Mb; )˯HF&6p$-՗b NJXVWm{@+zðrK{KWv $]mm(GH\<|^Wъs(Q#}Ģ7_߶[8IP_äӀշɳy)_ mN*0}iyDp[.a_8y,Kedq~]*TεZN~ ][2rYI!~B/Z}$FKΣJ<wݴeqɎ D עΥ.,c9GV3=f'?$}7Nq(jY@,կ@9?j${2N3]wV)}VO1N?)0L8䞝PF!{ }$qK}Z_J@wð=e!Od#Q"'fo- Xhfq!Z(쩮x^Jֳ\=:ƒ:`7Kay)9{ ZNۖ|Bo}t0R[>CQu:Z6TըJ;w\V:m: ? !nIO5'jdxt[{_D-UL\'ߒ I:ߚ"9l$uKع^uڰHsM fu js\ByVt^wQ3hܺ= flF n{[1W EN9fʦ`הC0:,%%צPfJY.aǕIMAD~!Q:HkZVɼ+ٷ>N&ҵ]]VXngǽd}6;63/ߣ^uEF{b{~5i $B+ά|W/I7z^pg9rSZomKTVjta¦@mA&V-l콬CjAÅE!tJXqNhb-~J ),H WD] ]7E'B5U=vUa[$?Ǘ7,`m4i򯋝W?Ѡ_`#:>m7JY&d1ӎ6CNڹeK_,ը""3 692uSV,R@4 P e ]g-w5$ 2\%"j?-l^>ys"тjZ[.:i/sY-zv:V؝i^RYh瓞M+[=.pǟm_op۫e嫞tWHJšw90nteBЌ֡\];N Ueg  /F)yqpaa{i@<ݾT)T]WT, o"~ci[נZJQM2]^3Zj )TOGq 5vG~}7>V%LM#vhQO<Y.Fn9jPCWԡn̞ 9?=GbLX/>0K?DStG̢ӷhoKim3SugЯ`F%I[bKϣ+Ll&Ϟ̎T;D3Rgxw{+V+7v󚷭o;Q+M1j:Gf sSa4…6R'}szHbΊSlP֞?/DH^Wr6XghfvI ef4IV{KN>/@蘌 ?tk+^?l $ʋ=^(F8,jb~ [ 9j)\w7>cT;R+V_ZAfU=w8Vt%_ Ha6S*|ƶRNW#)ij)Ca$,=갊ɨ]%>]sL{6EoVváXmSbROrpwl"g+} ;x8R! t7;hf3&-Cw|iYڥ!yA}nkԏ׻)W\\OEO==]H[SD2 uivmN˽6ܜQ}]ܓl!ϭ>T=\ ̪08lnGnK<+zxgwy0zP25V@K^%lA# isIICv<YluӖϬvm6 a˂i<3J|Δxs*/UI~[}p|cT|ǹ2oOf{J8g &m.~ NO}ZT5x}&.͒gA?:&J_]?X0p~yǛ晧=ޮd*6&e:3/gy5'WG9+M Ȑ,[*uZa2ۄg%Uw,NwSgvmK`>gSbn[! Ď چX&N7wMc~I]}ڷlB[RQed'9Xw|R=Z&-nV>Z-RH n Uʧr₺g&d@MQHW&XExHW3_g "η)!r{Uw]=/[}VN ۙE1G\[\\5ѳK70Զ{"|ݱo5H'\xݞ$׶U\o#$^q?(NW樛 *,Ge+nTGAg&Gb qMZDt츾D|$Y7O;{%b)e+>8&Bj`;&ȅ՚PGLh]yi{VdI.&7ӏw$B&<"LɃxPRt/@(QGvx.(%]W\^u('v89l<{ϋOтC3CdrE'}n9FJJT*%{SOJu~{D67=bMqs Q$ h p%Of[4,Y+j@/Zj]wl&KR6&~ ISa~\ȊtI˛\?-#Y&{.]o[y-ŎZ8 쑭"sv3ߓL`)voz%Rp+sNۡXwG:en[2 bsܥ"eۆ٢B.oMݓRuM?JA7NfD`x}ŹGS|˻ay'{& ĎuBWqZ"B$S٤|{EM-}~MXpiI^hO&7eمAvb#:ȅߪȄJg/UXl9z Jdzdt9wJoӭ?"sBKʆ0 SA@g Cq=Yw~pR4 7[/C4i(Mm#>#%K]?wOY4Q.,*=0qr?L0wϹ K2;EuCkop JG+c.%"elsj}wya#?03A-ϭS83܆P8||!NX * ӇGKsNt|#WkwoH w8/Y]|֫|}$m\rי_up;ӰU.NKQ_O vyN[eUFgoӲ˲E/#gIayjAhVT2g޼ _>\ qEXG[`'.-ˉSw鱁NZqV}m{+w{YO0~wN qy$j/=r?ђ3 -З{ѢwKEkD.ɲvO&=;wC\GTb3'6`/Ʀō3%9nXZlb6dƲ*,kednBlb]IVGPk Ol>iVI'Q׎W9LbRD~WJ~?(^Ԕ+zpPyQNJ\Tb)X:{$^[\^Yv}wԣ]y!XȽӷT6}W2TW{fړ֭2EԶ6mYi+_R3Z@VӹE}"k%DNxQ?g?^>:jKƥ#7H t[-$2wxTҊ Ż+OԷ=jl\LӸsZ\.{.H/8cyӲsiu5L1AۅLZDjBl!YZ'")%'xGeMo8fʅ>Z1(g٢s"3@&q/>4\ Y{G⪽!Dj/h{k7\9'??7_3V2~`eixR8a3<2)5gS){v|GV\. +o꾼'j:$Zs.^HiaVկ?G#!+ҟoH9SW8?'%K\%+<:i՚]uMmuO^@kgҿ|kf.>_;303~[5endstream endobj 313 0 obj << /Filter /FlateDecode /Length 385 >> stream xuRn1 #-`FOIE:~(ٵkm/%/]D3rG.PrQ\uL-;2Y?VKz#e0(yڰ E > stream x\K#q{3,,xsѻ,$$5`A=>p1C-ag4 be1ٯ%̡UY/Lr&_{y{&foޝI;.og8?>(g7g9SҪo.?n_E/4^n/V}4o{4^m i_-7߭F7C1>^ί:=?+ g|a9[hhEze,/WK[܉z~;u7ąBJo..1&5MDT&/D ~٭ jߏW?v[P{;~r(G RЮOG({ 9]fRIdD,p)4Ax)ws1nSQM$w vs\ ަ1ntẃ&׊ KMcL%K75$erX+ ۢ$8W`Hl>Ly/zcgI;=.?J*1&"//pOx| ]3 L@q2/"Aal%ݎIz]S 8 ܷaUTx9Lp洽33Kd44rαh"?wB*S}B|z8Vp:Ġi|1Hp,`,þlulB)$1ǜ[^;% <&$qP -$v-7 4uwyHfnOI")E睳"?cy7vXPCިZ$0gud{XB9 X2]!N6#67|IoZt?YmبIƔj|[a猜BDw7=t0aɕttw8,w 3'G ?ߘIΝ@ucua%ۗEz>7@t ^rWv'IĨ5A̩,9:r]`87(2m 'eN!E-nհ cH`jG98J?M#rxFe/)fD"b\*I E tZ1ե:&^V,Ix~ ."H~-T6?l]6u_\[P$Gts{|]WyKJUTk8pzf{LNr/-d ڎ]pga4p=#G0x8iM;_V ']HWԟFX &ئ#t'+]'6CZb~xG:yNk} 5awIA@ 70.IڸvQ w_bB`k |;>}}|,K%2Jdrb!jU 9Zo u t4ʤwVWAZ³ ӕI⊆7-+~ Bȭ. yum A2~kXNz_UӒWcr hk>T.[.1buXMmq7EZưbވ!j8>VQ06]E D9+x8)<[ )Y\E*5VaM~Z:ޯZ^ߗbZN76pcj]E*R;8eNz>0\פӫ\5K6Ɣ2}ҒMY2Y@I) sjbA?ͦ MiJ!-˩i"]uN-Kr7#xS %|ܰ +n_3q :?^toG2tѲ I`wX5GJC5B?[jF4Hffdf{deVf5lMsZ"\TZ&Iɥm_O|Ϫ0m KBw &9>*|]/{ahd-5)**)5%TB&ӈoZR96?0lD]V{suS#)i {c`#&*^hIhv+^ 'NRit<Qr#jTU5*oUٴP^:; &<<3P[1P'0?KT R_o]d—jhdl2KY]QCd/2Z+ծk8՛1hh5֙$ 3P~f !܅7%SxPUA3Eb#jYB;ّ31ɵôJCyȇ#>sYLȺ*2]s=0X:6?vgy B?ӿDTdNDrM.q}T;PLֵfGܮ|HI i qGZ`T틵kXV q7]Mv裵ԫ:8iXUŪJLc$lFklRQ .G*A\ot sĖBGz ೔ <: N fWOja<1J@_Z{WR#-Yѻ\rVSR*[֞$ [K'{3*GЊ1|,冗a&}䑙i2nWeQ-'RP_w#rGA!=V:+JujȠIBfB7yR7c~]ޡZ60:}Ե6"2֥z,!pLI!H/c>{֝C!ͬ3'.͟B&@JHD=QTtԵLP!Ҥz:t}OrQCoкL㼌ۉCFvp rendstream endobj 315 0 obj << /Filter /FlateDecode /Length 3699 >> stream xZKo$kb:7H0ɇFޝֶfv-*IN:h,u5כzqwEwY?xo*_{8= SBhUq-VK8ߜ\e]՚++ NYS'z~_i5ąfc`$4ai,Y0aEBغ߶obqHLw{ԏ[[q!J!+n~ VRe<[߀9ztpk;ᮺo/rFJU[9*d-9W>,-hfצR9p= Y (@}*{ki }y| {hj"}Qvl`j6aF#E5gQ`֗"mlۂV |>SW4+t rY"n1,Baz]7߮nzH`Zu;^.?m,$ܚL4?Ow!I/ENazvu:#tQP,rﻨn\ҁ#]xets7=!|HAu*f~XdJ8yúS#reKTJkH>[e@zyڱԾ=^IH _L?f kPʭ,o0* ZYw@ŀTکN@S A@dIE @p|!;hAnU}Rj} >89:}) K*jKh7E=)&LD H\!m'.3> 3l;(:=@Vh+t8ǨFDƢDk!a#DBjP}k>Cr@Ҁ0`Tk+;x`7vXAȚ@#/fHǤS>h4 \ ]/up4] tfj[WDzDɱd%U[F6)E,r'ЋxHqc[i CDZ?*h$Z.Ԅw3Md엣kZgxx ifx4֎CvMeA-Z[I.%L<(nNٗhvPQLO&6iF齢ڝp }Fuw Sty_׷wN.`my e$'jg Xˉogk2#5U$,%d;X6`kiCn9YksK3n4oŜO L?U*o/:s@p89-!%xGYۇ9"AW㋼WJ XyBuG0b!ѸzA }KBy ՝kϻWd*#BNP{-+!|{򹀎jA~R&z5y9$}%FCF"XCl4}4`gUf& Ϳ6/e[S;C:lg%Ӫrc Su ]opѯ(%7m&=< &))wʒah,mwC]ԡ %xԴ%nCOӉ"S8B\~8wi젹O-yv'y Ǡ_/5 VzQfġ!gkY-NQN'sTS9޽,Lg&)CԴO ] . zc"umdˀT(U]PQ q{~}DԸzWVV4 bx{3 ˛}&.JMlӌQ b4&!L?r}.8A fCKO$H  sqth^ؔ~8*¶|޾,@Ӳnv)AJ " @Bg$]c.7ٖy*W١oXܾ p;]5sbīX>d`]vFh[4'Ò[rM.дh?U1\n =P츛zpIKa#|> G5}|=)\=\v{ōok(镔]s?%i%WU *o&WTīxѥԊ 'H‰?\8B#ZĶ­=ÁyOgzSH:׾#Q Vʥ5è)OFfx<(: j3 +xX7y7NJТ,ps]jy6,_vB;k4814 P?zRl(c0S_-$endstream endobj 316 0 obj << /Filter /FlateDecode /Length 3547 >> stream xZKyO9209aO(@ ؈E|@ifwic5Jt!@KQ]]WfVrV梜^,y}qu﵇_ _z9]䬖Vvv'hkB+/ŗ(zӫdE׾/Ei>>wh/] wCC;}0YId߇eHSm Bۢv.,U(ͫõhvtnkê]ݾ9^\/pw=σ$geQ) x) CVVBYZQZ <;SlQ鼅Rx1UQދ}4U[mM,,l,VTbw2Nxha H_VNt*~pb;@o@Igv%}rW6URR풽oh^ڨ=(-T⸉݃[ֿYiA {9fyqMeCb#Lmxs9U:4ZnN]א7=I]XX{2hT/x%tVu`#3 hiD;G<~Heh*$05Ol{#)i7iDK4~ZKNSՕI 顯6E]:KpEHR#"!݆# @#44R3}bJl7Lp.LeA^fJBAHmVq =w,NZ7S(l&0Ҽj׋S"^xY\,5yA:&HTVqGpsމʾ(!\LLQ6LZ,֙`e"hAr ]Z>D*LlLF8oX?~j+m 9lPɭfe8Aոٜ]έtjVh4yACB;޲# )dLjtmbZ@H#񹘲5ɩd`<pu91e_AeBJi,$>0bWEMm k9ȡa@RlkiZ4o)dqO%x ,RS] y)ۘpRJupz̻Vo r>e>& 4sӼ[77=}|N^aw U,M^GhlϪZͧe ʕJ{ț$6=;7.f  j+7ÞA 22z3ƨxQam/&:Nqu$x֨$:y4ˠrbϢdS@*m;ÀV-_lrxUڤ&:$0׾z,1e](R&93 Ӗ33co2q)]QH`"2obإL È>s-J%;/Cfj@*`N#G˩1qUgY×yI2 b3[ :Rx6pT#>lYT&$G駟#r;~[qy@uBz= ~ #!W[J`7M_6T~xŬw-xmU#|R$J17VI%k[tuݯwݹ4,\(#ܓ4BB% L<.aNϰ*tcID(6'(j$6l௿r5*d|57e8d+řms" dp^W*$T(Q8o1#sVPA CE*Bq*3Ì#U,ѷ 4S6 Ů'o{:1HqU\ϊ.4~ΈX6:D"9 xv+q- /pzUEb|9q Gt6V,e*&[T zub"D&XHBiO@xvpuO>nrݞqX6UhjL7.>)<=˞Ez֥#xUҡ!PyK?bJb=mzbsk$ >E  @S"a E(kQ;@ƆAAm{ĄvwYuC6$ȁ#E|D0UP_]ѝ0D83sV]KX ,GxlP p,8/OJHBd9h ',OB:`{q5VN u4N/]= —)6q˛8i=8Ǖ6U'+M"3ݫllms)qtoF}:+k v-k8]KI';ja$–*GG&l%QGH5U>?>^3}¹83fkLFvز<\6GN AM&insC'nx)}FI!cYP:Ɵ*.THOve8»='mw(a4k oH#9ᬄm;Qp=CKGg,@Pe<ݜ%/b[GĮ #z}dũD7xzM) kn fa6ܦXfӕ {TĢ;0t*,)vkt %@.aPfsUw 0Bvs9is5w0H1\+=\mj K94\WƂSO E%ސY:@PL>R~mNBԠg1)CjaQK#h{Cf˸ gb48 Pendstream endobj 317 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1226 >> stream xMS}leۍe|hUAQd"`Nc壃1 ]kv@^?oB(Њ|TD?Ġ1 ]W6y/\y~DqAd%KM4ߘll,`п,ߝ燀M!oF/B=#b3\[_k:LVFzj7!"Bn\7e2Jd;D#a VkH~2@ WyrYESE aZZ-}HUD+dTW4Bu5k{`-ƮG4FY'N\5ә5wV "{N}!1'^@㢮7؁KevhwTv&(gѩ#6 e>ȠWѯo㞔pMʬh4 A#:b +jd(CKA$>κlPjd`%:Y(y=Vj\q>xtlOĂAIb!E|е ڞ#N=I|VLATޝvK~v-޹e$HNYg]ztȊltR J==Z0eijXl62 촓#%.-$< oI4?f *9?CFtw nEВ Z'LY1J5Lέ[ $s0ƫ1.m4X19--6lx+ d7=I&.h[BP>\3|>5/VۊGY}lU;*G%ݨ\)'xϳpGz4}$^ CCks,iuV-Lz9,?F2‡-O9;wwh%Wn0}o=\#n疱| JƢ )&\:V-8 t{!(FȆea 5u.+#d|-S+o`UĻ7+Y2⒱ZÈs2\3u,K\G_%rNU$7)CD"FCRuendstream endobj 318 0 obj << /Filter /FlateDecode /Length 250 >> stream x37U0P0U5R07P03QH1230 !U4 *@kdsU()*M*w pV0w˥{+esJsZ<]$a bڒ&y! iknO/Dt?ү뵵?> stream x3732S0P0V5R07S03RH1230 !U`ndT032X$sU()*M*w pV0w˥{+esJsZ<]T82<{r6A߱N~Y~Ntf7_A_pTc,aACB e2endstream endobj 320 0 obj << /Filter /FlateDecode /Length 243 >> stream x33ѳT0P0b3 2RH1230H*T051 U`yC ss'O.}O_T.pz.}b.}gC.}hٱ\nn@n.P9?47ΎEAmkfE9Uv, }We_ ƾIU_Zd顫^z H6jݤWVyֿTٵnug/O}&K&}^noO:01(pz*rgXendstream endobj 321 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 817 >> stream x]lRgPsTJحpfjq4Ⅽ0hH?M -pR ҧ|-p( jl$M@;Dݥ7f޽m1pzR's$(CA|qAta}=wuFקм߈(]WjAHP[ݷmiG[)W ("ԈP:*І?$@ MDd-,Z# b_f/Yay9MfPg#$%$+q9,R5Mi3]jثi(eFdG_YrΚ{DPkC㭱? чnn \K1N08&d7{{ W'iZY.Kr]|`hCqЂ֧)Z`+T?\vF1NґIf4P N{$O1뛐70ڦRqd:#ywy\ˉ=7<(ȿj-V^[8sz¹Yv%e[NR.|%GPf?$fo RhM@CUV)WgrIŜ *l^IgqSo8"L T^XH`SQf[OL#ao0DCEcKXA8[ EP$6d7-l7 Z ''^Tġendstream endobj 322 0 obj << /Filter /FlateDecode /Length 189 >> stream x]A ECjlb؍6M HP}ix$̧hKB{j4[*zTU#d}S#Q+MzqJcPn@R3&kc$ANЙIjr*`"I VEYJWؗ5tKJRGG q_[endstream endobj 323 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 522 >> stream xEϋa7uVʒb=Ɔ,v2({0r+0G;Nڲ̨Z$TZu.CAlB4a80 ӄ~z^ E‰7[rSB%GV q+FCk5B}񸦓u7WhLwϘTOYf65UPUM~`endstream endobj 324 0 obj << /Filter /FlateDecode /Length 195 >> stream x3132T0P0bcKcC.=ɹ\@I º@@`hdfRɥPRTʥTƥ& ]fr;;66 @ܼbb;;.OϚV/Re%LzjW[&]Z5nKޫ֭^2SetO^$;&.WO@.>endstream endobj 325 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1167 >> stream xkLSwϡ;z cseF6w53mD$l8#`U\FZҖ r@9St茐͙?l.clq7n썕VaoJhn^q Ƅ^l;R]X ;bc|.~ DQߊ'Q&` :.^q-r * urqC)N pLRz:RMsTked:S-_ШF[܉YdqUNUAWҷ'HQ< iO0h}hn(%I̤2{A m`އ1徹yў[aIz떇+'y%n4RM˒KkS`;K~zNL&A=Dj[$2i^^it;Pg w14D? IdYU =`51Adbkv./fB9)BGϟȣv'.p+^D.}ϖ=9tutΒhJtr*ITityt̵nF)m6&26oendstream endobj 326 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 510 >> stream x%KhQF$:tB"(We "JXp $&]Iļ)BZ+7wU, .\QP *(H7;P-A LN^9^F7EPA=o<1yt1  %A qv->}{62aGGQ.s%%R3PT"=AVhk DXb]/ 1?Ii |s2T.dcaŗn{zGL|s0 Aw6,d^ W,8KTqDobDW2L>^ethDl#N7p L0 r[O4!An]I=l6jɪi@4d=</B @ǒ IaIfƴrmz2}¸fX?R%*;S3Dko\T[qbiWQFendstream endobj 327 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 339 >> stream xHwasy10}   dispvarointz}Ťc줡UH찤8';A6> stream xcd`ab`dd N+64O,,M Jtw òeSG@3 AAh  C fFk~J/({9OSeGUYc[;5tl#gḛW9Ӈ'2wi[?S*Go?-柦?D~[wDC߷~7b.ݢ6=U6ـN~];g6je k_<}ag.z;Bo}Xu쫒 ?4b}s/~7`"un*];oZ?f}X0wqr\,!<{zz{{{z'Mc\endstream endobj 329 0 obj << /Filter /FlateDecode /Length 488 >> stream xuSMo@X(۝io m I0$;(ȇz3IjR篬I,|]5SQe(BG28YJ+b1GVi15pmF nvRH: u*ژ[\_Z܊4q9푒UG5&goK9[ḍw* .pn1Vq$Xʱ.Bk<9E[N/ sRSCÈY,aIsV 7v3m/et:X 7٬h"jED ^M[)ũKɍ .F̲Vc6Z~}v~qlgh;ogsaP}F){@M_*efSX=> stream xWKo6WH57Rt{($=xc'ֱF!):Y-r$f~hF_u7ak]5?/fU/<zT8xPYvΓb5`[1A{6>*"]wΕR\hˮ}-8x֣v_=&SUobg 9FvN0>.ff2s#Io4rk~I)x0fQi1klXsiԏ\ CgXt%lSh`ur`DT9'Җ"ZKęD.Yh.2 X4;nklN4\mC9;^{aFΑuX{˾Gd"c$n)(xwʸ16t+cڳn{CDzU5j%VHnTg], Ǧۿ `RiS2w PLC ŕ]mRVיlcbbOn*GQ? U2ұ{TBUuTd,ϕ19(nP&qkףْ%Y%-ǚ ڰPF674̠DЅuYZIe}}-`p_ٌf'_0N- FY ,wo]$D{˩A}m85h1 #<P> G/ |, dL؋@0Q#[ԇ׹:‘5W܆X~5{)3Nԛr|8\3![~`g0?>ǽ{uLp#=}Ye敞 inM- upO|n,f]~dJ5X͞8{AE$JwR0DUPl  yI!! 8;vSK[42Ѥ 8R")3Vwj۔Edjh xպKįqB`.ṉc idw::m{M7X<1S_Oi:q[D厞D9 %5K õrVTCK©o'NC>dwFP`Nцd!ƚ)}Q̄DC\~74ާٿp=_endstream endobj 331 0 obj << /Filter /FlateDecode /Length 1482 >> stream xXr7͙x$&}*UV.vDSPMQVkCC٩YF/чr*_ja"i~;< OxQNo'y*kjQv]n4 +WfѰ_8].D`%KYz^ ?t20)ɇ*pݵTp$$"gJw[s&.t2w.hW |llfF(.gy39ޥe6,?eXv!3ֳ&'#$-rв,&/Z!#,r̊Nٲ53b2C,Fhazc-7V1 ͌Pe_e@#SS>u=*%5"!\_' lr4`?:r]~lFhbg2eW}m][ ^~ٿ-*K+bjf,GIuͤPQ:BL|m{mXs/_D7ج3Θ=/6DH%a |SC8ZFOJ<+he JeBBqͩRGTK+rʔ߭:.ʱ >oRzAu)gw>}'8PYՈVoOEQ']Wn>}<_$ﮈ/w/'endstream endobj 332 0 obj << /Filter /FlateDecode /Length 1165 >> stream xWKoF ԟ[Gmcs+F/IjJm+t}ybrH"9}䌟kފ_x+qY}Q޴Q/"j/jg\ ,8Hbd<,W-nxˍ {OQ9;B)rmiss|[*Kܞ1jRdӸ^VZ[ce--d$=$ÍOV%e?SJUc3QA?܉K뿦AbeReФNAn\o2vnb9MXat+ @4`fWy[R\hZmT(\][eS,]fR Ӗ g] "`v$JoU)cڳ{kOhRү_#0fBځZ-,GS-BFth۩|WáqZ+%&@wn] ځ6b1 k8}uCvL56Du"YG1q "GȖ &%]}GNc }(ȩTP3d+0 hxBx-S4a0^ihDrB'@BoCcg(v9?^g#ȡF# YHMEm80|LцɗH%ʂZ1w$+J RZ8 {IqE=Cع_m# ="1z vv*T_+|GMgDMO3 ]@UK+8pӥS/쿜endstream endobj 333 0 obj << /Filter /FlateDecode /Length 874 >> stream x}Un@oQ @7f ;LSnO$Z^{U}]RJlSrU\l>-٦|/cesYVr% S4'TlpèX$|l.y|B¥86JX_V\BqK.ό#ub/9S IkN܅<]L$Y9QRD𦪕*5qڷԒ Sijq@ WRg%4LS"C csGCH!!Tvc:9ӂ;6^gz0{E,W q0ܠ$<3q&D|TAX &ڧnw+]w\)LQA"4bm@H-s(>=TʷTxd<:+~!+hWഏA}&Ь#Y6eJy|}E!2d^U"d2圲o1wӔiuZߜ]ıQ 0pYaZۗbpVLmԚżuo W~>#xxL6^$_- 1¨;01`[endstream endobj 334 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 800 /Subtype /Image /Width 800 /Length 41986 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (i5F\PoSr>%+xقOAK'Y 5}bȐ]8av%Az d2S7Y`c)4z&{߉Q.>>u~iҁKf~7䦀4hp! ~"EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEqy5i&#+tO`@{|7,Mx8?v!=2cbw3\ˏ6f;Kⲇ˄Nv9gnǹǽ}+?Z{F-hP\mj]6 dF=7cMw @d0$,Pv$֬e+~f8+g5\bx,#b>WG`njɪ]1VYX94ZN{vCmq*.HnqH?RGZٵ-ڣח?8Jln x][r :IY3#o#r^݌D}oٵ?^r0LcS@4Vw:~|Ok^1[{u_Z(((((((((((((((((((((((((((((((((((((((((,+F3=Iݒ<̯6^'=O|g#Ed8{tk?u?#uM@|xFZx]:q״ׅ|(8qh(VVռSzX3l`aC>H2x K)qy~UG^R{/nq@ mBTdHCCjNBzZtQ@Q@Q@{1kB?bօvw+ԊOg&lfI t96쵋K I7BCdgǙmJ?~G]@Υ~=eohȴutXj',O=F?_EPEPEPEPEPEPk Kh+YC~_6Xy&>raZ4PwG[Iѥ]fpIkW<CO- FUu*2# FGJZ:-ڇnPgԨO Vo :nky܁V/moTSn(z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 5}.3n=x穧]^$g{FHz/dx;/ j ]P?(((?Z{F-hV~ZРM U\ <{׻kR,ZM9,3Fx&sP$\Ǐ?z=νǠ JϞ΀8&fբxٕ@U5|oߎ{7".8b4hm#-gt7 ?J ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (fP2I8PdSj25!RVkuOV= .l|quO~'N(8R4UT`28b/I'''=k_*}CZޮc']WƤ}3_2uO@^whzq=Mg~((( k=Y{1kB1OҌj}\ 4hxkOr}w&Tr ĖG4gF(Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (YD$XDQvw4aycY+=`Va-4V`;fEIog-wa+;@Q@r_y5uUG P^z̋/tV >$?GzfGa+/$.HJ?ր+?^AkHG^qo?z]&vlXzt| z@ceVUH?kX[4@Y[ ( tCUO kEPEPEPEPEPESVtˈE3RE[Vo,7_Ϻ7Mu99d{ x[@Q܏.)| `_E`g M  ~QEQEQEQEQEQEQEQEQEQHC/# YpM3Ƕ. ]9(;pޝ&;lU );+<LM>pGV[{":VwH WVyycr䚖yK}ԹyP~4Ϝrc@νRV&>!|:%[lbUJ큟4{^?_@eA5{f|(qG V˃@v}U6-?F \u J(((((1O_$+8z(_>z:i\&]>p9?P)_\Ac3cW8]O#񯠴lI,IPIu?v,M} @EPEPEPEPEPEPEPEPEPEPEPLT#BdMuc`vDrp2@&%}r.IdҀ3uyFi $"W1AϷ5?@5@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@2ic'gXA.;@p02X'U(mf.u؈wCk==4.]gӻD?SP-QEQEQEQEW/nАuWQ\_ x2V6V?)uu;zSJ^DQw*0P3/{O_^i'ʆ˩VoML/{yxZg>ך7:(œnMu!`o+ 椚N5czFF}O5W#v$'$\C=`jO=QA s; }3޹Y@e&jyٺ} sS{צr1G+%lbh֔CasW)rspO?u~# 'y5ʀ: *cb@k[ʽ 2(`~zq?owaCҀ8S>TO%DŽו0fqIQ^kݾs;PGEPEPEPEPEPEPX[.0'?^y\A5#eW#?9ǡ? " e YShW%|vO 9 W$yeKw>Pi?lnυ$Z@Q@C$$()(\w=6YY١# DH$dg,q@,Xh| HI;GKEj/kBC O% hPEPEPEPEPEPEPEPEPEPEPEPUocEʴv rAIw__2-~}㌬yQ?¿϶illI0?Tz~''e8e}[U((((((m }DGksC:<`p #T\bX\ Zp;;fcbrI &jfYQ={P9q ˞" uwdwhWQUQo׭ܙk`ν '[q" }r]'ҹr>@w]]_]dFu!{(K9o1vWNeIXiq8 מɬߘ~ΐƑś9PCBvGN__Ya{gt2p#ӽ@dME}i*z@-l' fnCӯL͎)`۵=v'Oc,AJxP+9a qWazsK;y(A4EQEQEQEQEQEK[`5'M|?ZgG+`!#ր:YW9/bn?t^?O9 +Ne~$ѲT琠Ei;PU̯3i1A\}23ڛ9eGɲJlQ1hU$EQEj/kBC O% hPEPEPEPEPEPEPEPEPEPEPYW;YZuY+ _V_$Qs Jt9}[9[hm X`@n==OZeVQB#J/#z@0*PE\Ck+1ǯn~Q^oe" ޵sCd'Nݼaъp{P^Y8<GjQEQEQEx@qtunbˌ@`66y?ʰuygpӂ9Ms:4m$}?2](~5!?_VG#P _s\W#7#C][J! | v@0YYe\DF0FEyNncf}iG$װ]heۗY\3( [i ǧDČ72ɉyjQB9cۡ]MNhԞnƱơUU  6\ޱOִ/2+8ހ:_ #>{dF?L&: 隈r?\pM&?@Zo'/p?Z$2ZzN_% +i?έ^@tݽj7<(5A#ԍPH(ֳ.\Z3˄<tk]4IVE\c2\[F?5hO>Tl3mrGB+bsyW\4YP2Āg8\|v~fv&O@}u'cPL-"Q>[$|c9Ї]vͱ?QEQEQEQEQEQEyV? ^g/ k5t|:}j@|;x +I<@I\Ƹ4f|d,GǠ={kU7,+',QHaG|q]QEQEQEg@zKЬSIZQEQEQEQEQEQEQEQEQEEsq4,qc@3*)g!UFI' . æxe^Sߩr˪39պI~xHXED@=QEQE?ebmb'Xz!^^_qӭG1-_-Rh$(|#c^p+Mdg )y}ٿ;, A~tL??Ι^e\ѕ</ɖsl%: fLgҺk@JQT4 o4-65RH,Tp8j`k ;sg)R< /́dI^=LZsu^#? %9ۏֺ6>3^t? hw;XRs۞zwG㹦#h*N՘Pݶ%_8xjiUEyAbqQףҊ|偰FWӑ_ƀ=f<E)D FOϷ98GvשxvHL QEQEQEQEqf+A~WrR1&N+ؾ(L UY^?xVPU`Ik@;dҰ5>y'O]oY=?޷ր=O}b9l1sDǡuQEQEQEj/kBC O% hPEPEPEPEPEPEPEPEPklbLN]F21;OAU帝.<9r䚘ISjGQ<B*O=}b̀}P={~Hyq^Xd SUUcuQE&gBj55:'ҽu]_Cj_^!Fst-\W뽻/!^m {^W |'9 Z| ҹ'Z| Ҁ3pH[UQdF92~Rj뵎 qQ[h?,ͿmnG'?,ͿmxQ(? 14=u$h]ʰ8 ?'Ԩ=?o0 ?zwaVsZ݆YD:GG-E\sk#E4g*PX^,:V Cz'v ( ) ɪ6)yoASrF/Z󯉗&#L(v$-]kDР p1^v۝H?΀;րsockG}ASg@y ծϱ?ׯW%FTHp^@Q@Q@Q@!^+??_օQEQEQEQEQEQEQEQEgkB?L@Q@5,n^q{qMXehrTmnu~=\M2ۜdۆI9Jz\8wa;N FqϸiѴr 2#Њ}x9|f-BW|1h %͑1μ72R q,+|c!>O>.`׷H P=o4gE"g־#H"+FVSGQEQQ4p!y\"Mּm~A@TW(Ӝc8TӨ\y@LG GTsΨNskOzڻFqs8ZcckUJ~@~ ?C[Z_px9ozZAA@[.!<3H9d~~9*U@) IIk- U@U⋃qw4rY'<#qtԥa9-ր;/t-i1c\r*uT7ݡfAl3Tw|$%|G`g`''kM.CґZt0BL랸#"%(((??_օg@zKР(((((((( O?to-hV~O}7((((J$=$#&[`/#e?x.? O_ߜ|qm\ W}PZnBjE_DwL?F|X%q޾vZX,f"hPǑ3wÕf1#y3srJjTF8\zyV,YRNM&L `Tt᲼ m&AEL.8gw^qN@MORS\vtXEc_\6qYr]>X*@8bt$/95Ⱦ=I7h!QI;iK.GQ2?¹ɾk`=g5@o\HcWmQ7uk/SFw <ՠ+4$9sے:Vژ{J.YsŎiR &40?\qP?ƀ;Oct7FHvƱݫ;KÏ]I?Wsfq/ׄu~T?5w} mAy؊,SE.}t y}.5 `#7Mv Hcn@3;pp"@lL[)5Sw-4 i2w`$VR@ 0I\RXE9/!ZןKw%Un:7g~yrNy3pk*\ 'ҨHsRWc@ ]?;3 kS;`2|#ۚb:R3T?Ck??+_B@[nwj?&+c-0v $a~ >^`=Zh/!uLD qV|JB@Fk(v`v}3C_%A<$(2͹8p8@ɲGU -ppIާ:?c˝NuXZR35 ?(rz!'Zнl3lsր:o}Ki 19&ϻcЍ;X^s9W-PTvs+7]0{M=[OFx$Ҟ/~L}q*귚cb9h*;~G4W3UUܝ:{`kGY]20ʰ9z5?@5Y!^(((((((((?S'DZ_Me ((( 3zwzĮ=T!m`q.:IKЃ@S?Sb:: '?^}g՗W1]~}<닌e>3c"/͇W85ZY)lU-֖-mmlJg3Zkp%݀9v暽EkxL[jqр$' B@Ю<&r>EZ[p85]NZ"+@Zo%E CA69[G]٠R0ydTId;LK_t =alnCtavI՞c~4x;Y@UX]\sU? #a`r2qtXcikkf"dvcܟ+פ2<{5Yfʸ-Nb'brZ>_f1?ִ!ؿj !A?r=[z~! O&I6mMrauȷi\k?λ v RO -zv,kNi;|jEBLM\u@w$UzڸYb2䨍Y0jZ?Y-mpAj|p@eR U^v|55ʵrF ?W6'$4h#:}uQA}[90zk-szנ@ۑ[FhR9ϭ<ܳp[C23Y!s8PyoUDU^`sЉ pI 0WI@~?&ZЬO?to-hPEPEPE^ZY9#RFzg@qMȊۖ0qGk ʺݴHK3k9l@1ҽ.KһLy+">Π$:5![CC/V<;7teI)(&vW>5* <Uk:RsZw)ֳLPcBaE@?P)9O^mVbq㖮'?1_@j9?7/?8i%eZjPdu h[K Z;nx!%A+}ht{(yhx:12p\>AdsXW3Yj;Ck!sZ8aI k2% Ik[T]ц<.f*Eô`XS?r}Z1f{\}]IYchpaמ|u51VW1h3ڴDT{PֹYV fP\Tҳ'ں^$?sWHv:m瘮#\S nۛ[9.b1>׋wW<^cO5Jn[U5Þ2vᡝ\ʺ-w9 ?ČOǟ?(eȘ?Őɏ]Ɔ_nOZmşA}+/ g@ zp}kBR="%9oƀZ ;57gztjQbJI3֯q'?̋ F{Pmsڀ9[Ss3w3iۇ XZG%B DQ'G vW35^F*_WE#`y=O['X}MMúMe=MzqW .{]S&:o >"9I2FlrƋ1N:v t^aO@Yh-c$Fx@@~7`(9S);k?λ|=S@;.^ú݇9O+.F.zu e8 qhR{T4?Qtֺȳk!O'f]EP/qOJsҶ悫(_ kvc畳=װA vGK8" @z.}גkj ( (3C O% hVפ (((((((OZǔs(?S'DZ_Me (kƌUFKy޹t 1?׍¶Y9iW) . ½'<ԷSysh $Br*|E}h􉑖^By|Gb>wFG:uI'j)PLz4{JEuLoJ-R+n,`7=uڋ;dxZ)}Bv4;K=oFhMfi3ޢy=mM$=3Ih۪9i[nzՇy@zWG,4gn¸}fs;Ms'h{Yw)mń .L x+϶+3V=I5@@=~>` I'>qv/Ϳq}aj|?d a3Ԛo㹮B!ъ5i+i|xlߊcVRozCS+RTjFVAWqQK{y +B ݙ e*Aą?Zϼ!>t#Ҭ' U'-G vAsq$Mv$~a?Θ3ծ[?u&O+GL;3~_-u Yi@yjp+#E|<@ Kf$U*@LQ=GJ{SҀ9{ X7 zAG" m 'Mۭ S,Be}o~}ۦ;O ZgV W{v5A#K4Y?"(>љ@ h/`od#.ZnĠ`#gW}+;hRP$h0;PQEQEQEg@zKЬSIZQEQEQEQEQEQEbꚦc:yae77I'#ahj mfd218~3?sօg'} I2օgkB 1V]J7mS cշu݂yv~\ xIX:qڀ1nI$2J,ǽfǚ"I@7-ֳg<ֵg̞3@[2u -?(?? P;}I$*͚GJfSԋ>(ȋwͣP7Z\BBz)I'=OPNyk%<prO=jO@+1{y)\ΩV8kQ15!d@dvd[D⸬aЮ6<(m*.jeJ4Þyb=%ڨY |6!J/-ɚ<F+H˅\uXc@L0? y!YqWU]E X $Bm_\P"-47ܻHO\LĠҼQ`]x"3?qOH5Ļnfcߚtѝ!?ʀ9}N/*RS3&*B0p@qXk<=2z⛯ހ:ojY/8f5 ~$ZЂΡB 8?N < b<@S(IU2փ-fim#i6vC ?jw|| ީ\<%Gx?Jc0w3Ҁ2bɪClL2jg L+@Z1EH&Z~:vzI(ip:eϽ,]̽hx'zy2jkԏV+ՠJ^4| J19}+< =GV5|nDU(‰aС:6d@@=lo%d j1ڒ-GpʥJ4Gp\QFRdϻ=>BSR*hVӴ&lm1dX1קXy PTk,P9;$gqWgoƷَkl}q@igW{JM  E jHLgQx y<~bMF'3{քvh]v|?tZɩi۷:tIq@| bp´/|if- 5tv@Gueꗇ~m-=R3+:RuZwqPM=O52k~e@Fx pj@ ƻh}%7n+t Z&2+OgsZ[AA\~NrO&o(HpjI=S$Gn71R^I*e+TJYjݔr]ΰ»B;; ,p$gt?ױ"dϠ# [%(AOOÃZpej2_4qEE@Xd;HZv:bp}*2@ CՉ'JP |ԴQEQEQEj/kBC O% hPEPEPEPEPEP\߉<=cpwȝ$B.Td']e8"F:%+"^ h͖^$zͿ +>$vf58 dp=kbm5pO8OGbVyI_w?9B?sօ!']5tB;򃌓~i%ww2J,ǽz&O}7gmp淊G8h#e XYf?+_Vjxڻϴ?Kv,`PO ~B9n]AWYDU>Nˀ2`~y4j^ErЌt)U|j%&Y,Q9-ڻ&?0uJ59d2?:43E 8ߡ88 4jUL*#R14I)HEFdD@.A涥5q )9;HP@ WA4?Z+!q$?ȳе9)?=srJjÃҵdA bH»Pe]G4H904Xp!![B<9?κڀ3儔/LzZVj<K{u ``HV-Lw_i sl|qI J|)Hچz|~# IҀ2t Z-M:X,FX~|m ɅD U#n3z\-2hԘ_Iổ=\\.s.AWsEx7r @ )MVTdPѺ֌ڭyP37?L~$Ɵ CJ}~=>i*"EUJuTctqӻ0ҤG#h(8i?Ҁ$D3#S\-C$e ??>#(z0"sڕ,D'xʏăW+X$Icn?*E|XX˂hK?PG. ]9pޝ&;lU ) *eu'yɉYQEg@zKЬSIZQEQEQEQEQEɿ?u=}UavxOwvgF]USK`֊DJ G`zqV袀3?sօg'} I2օgkB ( ( (4bhdԩ#Ȭ)ɍCpTk^-G{pa#~.C2,HYB23D9}?MGf8GKɑ2^G[zǔP$D1Nrq_l/~ޠ-4q) 9}@mޣ/P/5@RUVJ40A4V*C@oZk2GJ{S=*uN+n:3s\^fHAiZkZu˓Zzgu]Wa]tDw9`z]OA~?‹M\,#(Y fɠ "hP2]!P)hI%DM1$yUf$Tzd\͜՛YsIe|rӜL4 iq[92槡 A!ƙ_-&2v;ZiiW7wҰ~7':<=CB_?HJOb?!^ڲʊ,`dd) Aq@QPtwwIr grzZ&O3Q3N4ƚX &+15s3MV`[ָmR1?Nh w '{W\rEws鋗 Jƣ&j8Jntj:)fcP2I }&nQ}44UMz>KÚB6_6~0 .OCیkPEPYz#sZƱ403h]xeD:((nmmdD ?#U?D_wskȓObh ߎ;ɉ96xYhM?c)VȒsQx]RNA iW7sZkrHp{Vw1UvpXv< ( ( ( ( ( ( (3?sօg'} I2օgkB ( ( ( ʑ|ZBN*cVf^#.6{@Bym?fyJe{)'4csGd?3Y+t[-#s?kֽ^!lmR@aЌ_BExUKiu-X\A8 (^-&vW'\Ѵ/ 0]FwnrIjqҤ]٠O\r?r>V)Bt(w4sՀ?Y:EmĪ̀WϥPOJ+aƬɧky ~QUlf#m~7yQݎBi gҀ v@殭#z`~u#h%A/$t,r?Jz/m+G GjkS -4T+@dNe6GJCYtwՕsnFx W^j2*cVafrҽSM]qAc?A+4`5>Z":@i<8?3H%ȧ1(2sֻ}# ^k⛷֧zo2ν(HE7R2#X5L.ؼlW3+S#FmirAAZ'8?:\9֭$+aH2lwTR՚%|.B{D ̖YW}y5;۹sWn$w&''@9{ N7]0+ϙEzОBF׻uB!ʩ$(nqUpy:qOº[qcm ;cG\c׿jdEB*P(+7M9?Ƨ.ˇN{uOn}Klq[" 6, mſꩶ6>,`ݱPNf֧⟆?۶`Q?ǷMzU2Xh)Q^7R2< " 2_"zZ/DrnNL%w@c,Rv=Xz;XV( ?_z((((yb0ʨawhn^șЁȊ9venDtFbLrs1ӧ] whE0tTQU}+1=D+0|;8oԿOkߛ~/)qy<2ad ׻@%V~'eg`c?yzczTSr8?2\ڜM8DPƠsKnfiÉw.[¿(<.ej$sSrŵ}j"i}rB iɶ{޹8';mǩ5EQEQEO+BcRۊ3ހ!~6}9=Җ ( (wgu?>A`y>;(ԸgASPZK$y{59HoV*K+!O>R0_nj 64ӸHשܞu^ews8eo@?NAke,U_Q)AoVrvjR,cHhOf/AqJ(((((((( <IҖ3?LY~?&ZР(*vQp#ă/#zzus 4RO`RO`:(d[A p 9}ApClu Wz~X@fa6R@n t[~5U5B ?Ǩ4X aQlrNjZ5QEQEQEQEQEQEe+G!Gh uGTȼ8mpN8W16.BT?S%(W>?'fj/' 1$ +6&m5KL987=kW@_jvJLsğ7Z>$&t\(=ҹ~t3UYv3/ ހ1.t+ -\&3* 0Tsf9WS؎OC@4Ңo__!'s=+>Q{qDX9UMŇ*~'?5~ms9dRm {^loRpq@ }?;Ȧɝ֤"aQ:ս1f2厳"<]ҪixV"3TdLWIwhGjƸA@s^6ὤq:&G c{]".mkjg9>~yz-!Ws'Jƽ[[bKUN2(>QEQEQEQEQEQEfKu6+[$%f!OuNŽOAx=<+܏)=/S9lFZId;y?ӠOڃ$'55N[ ~}܃18QdL6v ]cf zE}5-vj3I42@ 072y0cGPv_](((((((((I2օgkB (sg`GvHާzaI}}wX ϻe"y%#\\IH0ґ?|lcFZId;y?j@Q@QN=Qܩ{yQFY=@Dـ tc4AVL>F{ԶrTs@ ~XoVbƤ(((((("~#VQU}^=yRcs٪\PZ cwt|Z[_Y@Wxk쿙c k~&KDNu{Ŷ*[Yp3WFs%z Ll?rf\G_õM@Q@Q@e%`l*?!U-LAUEbV2㢮Z+8%2L#ʽm R hQ?+1y(;ؖuTnk;+krXta&R 'x?ʸ*pP9 >F~x?߅G'?O ʀ¼_؊jzlcnh[~p:$s9@u?2+r?jk Wc][*Toºkt(e9R}[J[P{R7jس&lD^(kMu*,38*JrZcjYjVߟB޽wgѯ^zҽw_{vxCI"Ze;9cjoߎ2+;Xmd0"䝪砠 ((()f 2IL+h^iXAf< X%՘Ix9Kfi?ڐzz' T)ܞ\ e,kq5 >C==OSS%ޢd9>tҢ6f T ;@xycYYur+n 7gkQP ݻ3ҠKEQEQEQEQEQEQEQEQEQEQEQE5HtXf)kT:1G4 Q*!aSq6; h x#ܟRE\!-`R+*S+۪z1}.@h^2r1 B6I֞̿ߵH o@4U;}VA\*唀'?\(((((((((/ح"cv jın2XzLbƤ#Dz[T.qߓBQ;S4_QWיiScPXs8z"?o |ö#pO ( ( ( ( ƭg19&-d܏ Ko}),A [oE\C sDJ3rϞ}UQS_5(~?ޏF ~ aG{zF8@I)$d/L.}%S+cS׸]w )voϘsួ׾3qSPEPEPEP_٨A8h7NypWw_{>@`8?l2#N^8)$̱̈r@Q>$5$Nrskh((7̓}׌3bszrqy5i&#+tO`lYe0G@(]#A*dž?OWJ>4rw4gȡjBEW76&[*?*Huk s7HSΫomIhق./b3P~uEG O $mё%QHC(E3ubse4ϲ_ڇܺ7v4hztwĪ?SS[jvwRyp!M>pG@袊(((((((+ [Q|źU @*~B>1xZ?"?ש:p1W?|{L2l(0(Q@Q@Q@Q@WZ22pFy"U}E,zfۭ{R?S,xǥ-nY! ['\5?eRtR$sQѩ@aF0We#z?+Z8߄[nNq^֬{ +yϷ^bސ!\?{BƽӽX(((;ox.T/4﬿5; Mx?Cc:p>נ Yo׉/wwf:k3?3xWB:(, m$p&YM<hė*pdXϧ~\ <ʯ6^=EP@ GoV0Fă 8-bf$^V>[N#S#+O۩ +8)$,ݘ?>+XG WPc $/{(j)Ȓl2 PiQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEqxX۪j<1ǔٞ*?Z4Pv5[~} x{?ycrEEoq B[yc3`"WUĦVVcXOpZWǮ]u[$CskowsS'd@n>ad=߀,dGpc,$[D_wsm1>_8LQU[/s1?୐Z4Pwʹ|^,Gj~~9T SiBMŜ?g2[ԩs@j0[c'2c?n >d>r~CVQb2U/"3S!$20 "Tf,e LeN~+;ǵܺ7v;}Hy-L%4jB[0"Je}s j@Tֺܞ\7eboAS?*@no o|6G=@֭fѤ ȠY]C) dr -geY kg1d Ijvo#Q71cL|Ѣ?l."<6ߚiixX[\+/U`Y~hQ@rFJ++7h|MCP>|83((((((+"6ljWU\5?eR<-\~?#K&Fo@ k,ğ*jJ۠8'9d)k.;Պw7Op^8(((FȪ+ PEQoG*2H++ !AhV}NzxW$azx[{xR p_~ill>q<})_o'}vH <J/#z:f }{j\3lq ހ^__}#Hc+dIcaHy 4Q¿ϾhR:j^NR}=[տ, Т*+x5 KEgi:LzjiX2e nqZ4Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Z[GA0jW͝շ;m|Ѣ3~+{b&'(ٶ-ڣ~E67IP?UEgd-čhm}<7M3ıdžXFI,TTԚe X@jKZٷ\9gԨO xè֬\/{q?÷w'(X9%<{Vy܁@4U{[[-kquV((((((Sѩ]]rDJ4rokڦio״ :?IMEW@@0B/k>{Uz@r@c ˿Nb ( ( ))f!T OVVu#gN{{{=9 mFF˅IY8==[ ]؋OrOROrz!c#@UFSsg`K݆R{^sLk^O}+5 {zAx!6I'$IMGcc6K!,}I@p;U(((((((((((((((((((((((((((((=G[tUH5)$c̣hү,`sݝ݆K{R֠6K HnV=}| ۞q\u>w͵*\*R2 F: 9 Ag1mTb{U{+[ uor< zVmڭ++;m$i*6?Ҷ;-$`Eno yo|7h@ZB{6CϠcVS h Ȫ Yn/mjb!x?4Egy {XӁ|? r~~oEOuY0khuW_uAqy#bpRyU+GVh;:%~@|ccNMfȸIe6\)3W鮋"C+ ahVw5g6[&w*?moxLOPͷ[<8\U[{/kSIj Q39@5RMq$e%kGjF?ln`mO2@ U[[-kqzpq PǞ(w+(xͨ^|X ~[kFc$#8V8Φ'?@UdG-79\fp?3@ d^87=z}|Ps.|S7=>Ȭ&'FY۲jS%ޢd9>tɒŖo8>C==OSz ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( uY0khuW_uZ3 =Bts?~z0Km }>11(z͓8Y!%˜>۱5~"$REWV T?cd{}rEgyzܚA*e?ȣWb~i(k2fXG~yzj.W] a2jݭݽo)Ҧ _AZyuԫm?Ie<%TPc[Cs$3C )lz2ƽ׵Ugӈ \y-BdvJ[2V[B *;8Y۹cVu3=F8>u=}$dA5 !={w!6+iGs5̸faz裰̒_eg^\ w;;wf=X((((((((((((((((((((((((((((((((((((((((((((( ZeܞdeUdF?`< @?cZ4PwMGU&1ѵXg,B$.q>}~aM7 袊{Ԣ&6̓+|{"ͼZ *TPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPendstream endobj 335 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 800 /Subtype /Image /Width 800 /Length 41604 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( )r7+D{&moBh`sA 98IƣEH[4r ,ɤ?.~X[d=sSoXbX=A>U"6(&jlM3N߲iqK/Ɛ +;isJ-i]\A.QEc\L7zc|?N)ٹEsX⩍|3'gGEs'VSU^]g[hPa~{X?T{9ohGXoQzX߷\Zl'~]ErC^=,?Tk*Y#q|Tյs>?x~ΖF?osKǹR{3z[\R,+ƟEfՏ46O-M*+,?5o5KQV2u+ƩE6y-]{߷ֵuUZ7%Eȷ5uc~ĺ *aj:[÷q_oUgGvwW|ega~=cy߷x*tdS-_y߷O5oVR8ƚvOMua~$w+;Epzv?k.Ga~ibv/ ?sAok?GO~?ިX<4.gIEsk *[]SxԌ6謅W?c|?5Ƭe~j.ٚEa5c~jec~h=jccWU8߷DV\:8߷⩭|Uh[ժ:+ 6'5a~VT]AEsQՇ{UFڦ;߷⪖e{HBoQ\k:UBU{2uI}a?Z~/5kد:aVݿ9?ݭ^v Z%QEQEQEQEQEQEQEQEs:h.?G=h -}կǀ/VX@*USS)C2Ojyȏ4li41TQ3 cP8v ZVѦpԁ3]5]~GVeTlA8yT.,5DLFYN9]=Wi)mpUv5P.ꀖYEyuq/+Adlm)|8E\P(Ųua;UxvPDi `T ;wwW\aJGj{;V|Vf~*]a:EI+TKpV]}A3"Y.}V{qT'R] }ZF稥OQsNMe^76EϸF2+4 kƳLL[%,>Sz֝gm`Z>Mm_=C,Mb7kRTvrFj1Ңj]E(UңbFmI%$UY$BB1d/K%R^+ҧ#2C7'kWJѻ6>8\dcuc z\cc4ozT"kF'Rzf w12 P6}sWV]}׶Nn,֎\UȅVjb5r"bSQ GUӦ,{Y$J,R b/3QRZL֗ީj(LBwM$JgRHqY-֮Vu^$qΉsֲ:=Ѻ4;4S_Act/sޫK'^j1%2F^+XƤcb9[5Y]&5Ԥy"aQM&)7s[=`J皹Qr5>)y: ^Ԃ<:LM@}훥dD6ն^ ti,9qW5oү^dspQ-)StUyE\)PJm|<Vp9+*8 js^\zlmNj-Q_@xAEPEPEPEPEPEPEPj{t?G=hEҳnG=h8WgzeUxYAZFҁ2PH[h$tӝBޠ2sLJea#~e5m4]1?Z;T>AS=z4LnYw-֯NVeuFNI(O)^J[gV.OuURg J$u.}f3048Ҵ8@O({}W^}\CmsZI!zk mG>OZӴlm>e־{XSz۴XCA 1QA1JdqBn;б+8QU5Iֽ R;aLYdrK,Ji8Nt-C{֪Җ Z>w!޳zO;޽;~ļe=C{$"*n*ǭO+INs^RV^MWe.*&ZCt̔•d&e슆:O*yt/氡s9jGL1ׇhjKh5fv!ZmOݯ5xcvN+kL|O=lVޔ߿o/jxLFe晴J qrُ٪ !VبƳO0ہtӕsHʺ?z𧻓CVdՠ_KD%QSĕ8iN}dw%#I^)sήj2nسSҊ`4R%;QRXi8t!E?*V=ؠchyؘEZҝ{Uxk ERfU>*I^uHUYzTꔱJ Ecs!)a4FkS0S<u-T8?1(/󖽬|W6:( ( ( ( ( ( ( (8!˯Z1 `2_qZm^kg (F**$I1­J!d'ZI$ךiHLYe74eo7=kѧ#"Hfz(_d\ijQ)%^t7FwۭY^8SOF{WF Mc&Cc756ٳ|؈a[W3i'浭xu*:*S.k*)}ȓYV,4֚_ޣv]00+)3+;iDq'Z3`ՋS+Π(((((((\z@aMKyq|8ȿMGKL I*y*huFIU&,U&~ӑN&2\WNgF~}}f{y\&He:ͯXWr>G9*HCL>qDi*r(YHܯ҈Jz\u#shQQZ*h#y8 K˫ijDN{VnV=oҼZȉP Un*5i+Q0lKkSFei*+FES$m2.GZɹYKztYq(Uy54sAd<*IO2PdM/UקM[7RP֦AP'5n%jM9"HץOR*qW-GҨSi<R>bu6oNHp´|j<[liI\V%?Oך#TYIVNEZ>ԉ:kJ!X*EynrJ٭6mXׇTd9g{Ձ|߽*5ibNrFֳjٸ5簯33ԷOV5{v}ھ$CUUzԆ׹B r=_Y֍ ]ID+qҴ׊j>j[gl+ J qUN WRGd+ "iE^emM]RJsW1籑prݸn^&vǜ5OtYYjTYyWa`-'TĴ%{%^U^VB *5<|D9٫# -\9 +WNErԑN|y C"ȭ/^x" WTUb" jոGV㎖(qםR'R J8yb)ձPFPjGLEkְoOx95x)b~guc-SmJdQj[l`Pm}}y{ Cm+ݡ0SҪTU[uA W- ?ʑ#1&q:ԝƢR#~:w9*LCUe5fJ-sʑ֙VcT'5v^js7)FPHzjpʑV^VS7jST5:'gMc\kf~x2CZQNǍk`}z2,A-yjdŽJtj#qY cԥP [qW^)Ҭ rNT$jkPĄU6uFcRTS$4"DqB>kS9HS5B5REi*P:n:'Jү:̪l%[ekxQ<ڈRRM" B " QQ]Qv!-J5"kcH"u@*UBa@*5LuORa@T MLuJ2xdGZAIf CI XSJcq$f ZVѦpT3A95-Qyφ~chZ!3+((((((("OS9r/%o?̿Op9*1h6cFEQEQEQEQEQEQE4HH^=(RK@ޘKOw9J8ꮐcOw?9M՝N~UR8L)sjST=kT&B泧]+BPIdy2Vhg}TڭyT +|jHZR22)o+Kt:(Xj{Tc*J^8=pTV*Cѧ2("DN,sqS(y3e!iR61'ZaYMfuL*'>DTuj@TuTTeYjӭBµ̪*viEP)M%jzp4TIjJYJHF:5b"MUF7TTԀ jet :):RM3<3kTU3/%$fne(<P5Voz3 jUy'O]1yiozTTmq+eHS4Miߴ{QqS8X'{#%BT--y2wOYǯ+k%LY5[׍RM4_n*WbTƩaZWU=P&ZH[hIֺiy*'5Us/5 Q\)Uo6eB:WTgjW5JwBH"pk.޳nzTrΑByJ|eޮ}%q'>ֳR+ϖW=(,(((((&hUm"2T2Kaaockx5FE:aאzJùf+hlnD qWiROHmL?]m".#HE.~8~xKDr{WZg-IVqT**KU\殺՟UԢPU_jڮ4.J*3ZetyV+ SmwAXϘj-N<F(5"*55*S*"k)U=:M$u:Q!.lRUԊk'3 xZxi¦RFi 1fLjH{/hrTכޠyhu`ڕgG^,nzQ_(qQ@Q@Q@Q@Q@Q@Q@'yK_w?9UM<t["-N£aG9fVuzէ H]jZqZƉ+0 *&yH488Pj-ԡ)JZjzsJlS#U4zXi25NTtl{cӤj2XJjF&ZJbZBHZg}m^Q\iګJKU䛭6f.3]pyIY.=꬗ G JeǞk%5]G<ڴCqI7>援*Sq޿1Zq4VVdsī|%Ae}kzsX6R.ַ-&PG nZZHo?Ju"q|T(XU䒢isPKC4I%TN=TץNGe8-Pl5I;eĸs=:4\7g+3SLu( IJSI5UzIiE!v Xv%qM]¯݃\f#ƫSgQEQEQEQEQEQEQEQEfhrzTts/}5\UzLUw 'gyzMUtFReozwVyiZjikIZ#ʭL1P;ThהDUFיYS4Oz^VaS$Ê+հYS#|or^{]e5n>V![UƩЁf:b^tFҁ&p*zI%uSi9Ye6t*ezVj)" jW!fgw҉gpGZrՕrx5ҍ:u*{pyyBU MqsKqXuQXiX/ s]=㞵@s 1(-l7#\dVQ#7-bZʴ ٷ]Xkƽ*uTc 9-iNgNI%UJlUYdJSYji*JTc.fo'ՍVpoёR ƖԆj抉4T&zI2*^8TWnVrs]"ZeiG,):R]DT֋TNJ8s;ȭ+6vxG svL[V=j ׶nkïcvS^SǷ~^.Xd3TA&*QLjYDeczhpՓt.+*vғgJj%O4҉*J7d^SĕAdVJ,4iV-;PSJzVǓ]¯܃\jlc3袊 ( ( ( ( ( ( (1EzFZ[ = Z!̭Pm8J Yn:ۆ⳧k;)j=_Qu]yi-uMWUG4N*<л6ETsQri꼺oj< LAQk,b)G5д|Ļn[ӄVMmq^4Κ8nVZUAըT+Dъ{3;EA$NN1dު/$U9eJt7=iwRniuzv*ZƗީju߯54dU)߭zD蕮޳.Z;V| H:ggh2j%wYRdaJ\Ues`T%M0cƯKT.b+U*m`+aĮ:Af#rr+vS|"t(jC8 s цc^-ZFѣc`֢͑y}ˑH^ll{UޕޫHNV:a)gIך;qY/F|7ZO]OXCURo$[s4I1wg)J4ڊ.jMTnӒU sP=&6ъLÖ6{RP"a8Cңh1; (Hiء X=fYx/Z1USj/ic}*x5qdGB` Tzл^Oұm;_zeg,Ԃj 4^ ebZpN<ܴ޻3+U>ͬԩW3sBǣE'QEQEQEQEQEQEQEi= %fɏ{RkӧxI_;ITzrUn+2]ۖ^(g\54zօɬשI. Jb=8\{VJtY&r9}iv#^&"$\CM0Qfq1(: Y2knms=z,@y؍ #7,VQXxm[:W\ӍxUXp)Zw;aFKUdUy$J:LIdsK:W3^9ԩnMEkqץFgWFHf?ޏ;޽;^ľe?ZΦI&E{UХGB9Jjy9wXM"5FETqi*6W4%RW˥b::=sW:a,LMCQ֧j+!֥W]1n ҅"+J^MTfX?u@H+3jƠ"U)XqС?J͹*ԜqY+:V=ZC?D2sLN5 DI^jW6JzT"^FR_Y)XI!RuRnw҆jr%*%5"!D*tZ1T$vhP#W#"ןB3V3I{VG_?38#жVWZԫtOt'1Gy yuf*%N㎬$uV8gPEh uN+ͩcVE5xwPg4;{ sѐ+''\^2|ͬG8KR$i~͎ƾ$jR+-Dz"zOә5`ڕ~[ 95A*(7TjhzmQ_(XQEQEQEQEQEQEQEG.n>\ק˶gzO?޶>+ӋE֖L ޣ\QW5tnzϝՉީLkҧ\)ɪdqΉQdOj¤`:aGp9+lwµv`sձEQEQEQEQEQEQEQEyEܻu yqZꮥ.[R?jΧB^XjKA/<-8Ψu4}*qҢtp+NYiz%qʑVeiMTR1\y5'5:h 5]s¯6ކSP+YZ*jjTU*׷GBRaZI?ZFWمt^O.T-R=W)Sԇ1KRZ=|hO ( ( ( ( ( ( (ecFV>ҍkP_xIR,AdJ%-3LHJ-J%&5Pk'?5=E1jd5ZSlKUȬgzlT1L~աWHN(+KȣȯTZbz8̚%HȒpԉԘJGS$u:\iT,>B:WBqι@eNcV%\Q{#5aw9{~dbo;$ 4$MOUa UԢjG^MT/jCUr(cy"rԨ6(U@,iҜWV8T!iIMqʉ֪WBcgX*|_bݯ5o$?qOcKC趯W O5sڜ#*^A:Ƙmlڽ,b _{Od5jQm^*EƽٗVc5}-vRz4jZ [:ۭh@* W -X Lx(6nESlUIsxLjnc)W=@5qURZ"5y֠u.Eҡd -\heTTd*-0uӥcΚX*r+sS-0SAumG ZxoBڇpBS=̟z3+(((((((B?s}F5c0y5έ|э\Ma4+/J%f 5KzQ'RSJ)jbܸޞUdjibըR GL*NUSڠzURjHXQ(ڭEJ!.O(yՠ!kî(aj ^G5v(ʩ B(qRZ>kϫϩPHv ]̩ U*؎FUZ\PgWcdՍvשg G=ulTݭ ɨŸ{feӏR}K`E#Z ff[S~+ۡ1`6ڱ ՈEzN׹ "m+a\VimקqҩۯJҁx2U,Dec6%q*3U!Ўˮ =qUڜS*c9zIS8L%Tթ*ei5NE'5}ҠtAj}X~?匿-vJ}~딟We <TFAځ\1yuV2)J!=RENg)٠[WO қI`fH?٫kU=Z5 Yj"*CӥP!.TLXJg Dj*<-a)1N +6]5TEO)XTL; Y֠uN*j*:.iBⶍ̪VeU R<ꌈCNj7۱sNJ5:_Ϋ?|,sj?-swҽQE^QEQEQEQYWSm82K(ө?(Bcwઊn \uj̪E)?Oeo J _)]1)MNĒ u,m UF)V= E52S#V.R-!TtjMG=diJjAG5θ4⛚͒A#VBqi*'[FOZZp9+ʢ~ .ZQ^Q@Q@Q@sƟj{{hTD#5)!fS=MttP  { '>n?*_((9w|}o.?kTFZ35~\צU{lEKW@CRUc˧WGCPu^9ڴfSUHVΩFI *CS5*xU.:G\z4BUTyNld*P*6R-;.) d61&T\]u,**GB@VT.*ͪTuYjӊm'TE0FkUNJ(4z D\K jTjRW<ԙqFh:5b&\F5L5>ҚjL$HN*6j3!ni7Sh5N9Py&͊$ g,Yj\Z%^k4:2ORX͙K5c=یܿ?cڵ/q{RߟHfȬQqk*:2f֡iʮ\iĵ"MYBz'xXn槍$Eiی*Ui7r"D*")ƩPYGڠUWDj*ddz$%vSJͨdNG\i^2SJkѤZ>gjY$ȪS=ztLn̹oWgn+6z4rNr+2{Zи5p3^$5( $Ӆw9^I&K0j1o1L7]zqZQς/d)BԄRbq\U"b j`[)VSRRuNhYFeXS2⫣t'TZMH( bӨi 45Hj튅L F7m JT ^ozyiiVyPVզ[, Fƫyy֛dyj5 I\u0,o^o9f6_ez^*^UJ4/Q]VBZEVcPh*eTINfԹӈ =5'uBG\ XMgo!޻i{1ҷZ3T>GZ3u8*E[lW'~muFNY+p}j=y˖5<̤kѧI3"^h$ǵzeU7rֵrҗ8}ޜ.}c>yasmn}FH~=Gk!,=.=xfk nr~h>OZJ+͝}ٴu!޽,Z3FZI3^q)߭f7Z3|^(ӢR.EbObd c6"^+2}Ձ^Mx%fvS؝Q4[Rgt)X|UIdI$VY:קJGm:bK-QZtV|FB"ϝI{wG+ա#ؚoziyu{qy$dUI^q1DcT䚳!Wa]qv8'LWt%N.D\lsrΞ)M1ս:䪮ThܥS*:XrW4>GtmZ?ݭ{i8;CkVٸAmC%\I8OJq^dOku1 V#9qSq[FGDFuY]+^uwgu:%=%V +H/ *E,*}G3Yg#%4zJnJM%G莦$"jd5zTSc^n8+ thy4ybR:3|.˭X"iU%xrsͦQT|QEQEQEQEQEQEQEOP]/n?kTjjk35EF5U&=|j'lZzq&.61xcUjGU9xx\{gfѹ؅q-ٻjx MVͰx%κXk2Kҭ*ץYAU ǭJ*$I*Wm):a$RYzD)^9inyAT-4֯Xᎎn=zz[Vׁkc~jЊ㏽Xtd⼊cFơ=6ޫ8D,,Ue~ԎZSֻ!+^wۉ8nHMnKdq^ dg~ZDvSr#*6ڮ:q;cDbxWLt*wR׵jt#Êն^+­MXEUXVĵ8eFSӑjP-W"T8Z,4Gox6jTD5٩C }Nj MQR|QEQEQEQEQEQEQE+=[эYhsX1)֛N=c*w$G'}@e+$JÖi#sD- Qk tG"}+l}+) oَmklZ\Zkų{(@kNA4Cq^$\q~-5lc5l9k3blv^+ʫ#0YX]2+Ϋ+Qrxmvڈ9iDU&uCХ6ޝ(<Т(((((((@_F5f}qs?jSھ=zxb_/j㪮m= 5{Tf/j117X}GٶnZ?OaĻMjڷJ+Am/ Z?xb/ccZ9x&p*`f>K3T258XU-֯Mҳ{M9F]U/2\ˑztF"Jp =_z4gXPTY='{g:fɦ]w8g; 8V\1Tթj\Nj(hirV t_=?ٯx?5vNigf|xjTt-ۯJЅxœt6*#ZRڬ$~5cs"9"85}b{|ݮ9N085[d PUrq~xƼ\.?ϥ{xylc0ةn*+!QC_AėĴ%RVoz\׽A\ *RWQ֥U˨յn?K-]Di]Zfʵ@~U-ִӧRGl+!J"=qyes5*iM]Sj uJMX.*'ڦ/jĉUHqK^j8ϫ@:Q.PzכRj+pjyMStO.kcb]psɹ\hy51Vfy$U6涤$Pk,Eķk\Z 52};&XO6߳WFV5_J-ٯMV6^ώ֮CnTո٫QXαSGlm;u⢊ߧr\5& Vĵ+WbZHA)Xۭ_׼e/ Z+բ+#(((((((5sTcU=X;X-}}z0_хB1?T6qYԁNEc4J~][HcĤ5|&6gJlxf[)Hx#sKXZ!Ҭ"$cl1MeҘ[5ٗϹ^4|V}}kjrkc kc5w5vHkc;"i֨^kHb % DKN׽FF2+ͫu$BR*G8^V^mJm5+XvyKŻւĘWOҰ/W"+"x0({}Mdnz -: 3!L_Qz6“½c#m)f$P nu-DQVnV;OMD/Ck^kNzUx<֝ ;.@URUVڒ:TrOT(BROԉyD H&!R9g2'wޫI޹H2jܵNPMsʑWFnjf*Jֽf5VGQա *BHǗOTb}UZDNe]fSUHVΩFI-XVj!eTiT+ Nt:Cҧ2(YqOXUJS Zq״uVvХ$osJ((((((((5 ?jMoScTqaz/,;\%EyDn8)N=JSEC4Z>M/^&$G(iyy ZP%C\V1דR jNj4(U <ړԂ,Ns^m]YU,t5s oύVE49^?w5{Ezy A׵l$/S+/ & RM}NY8Vb TNkϝ;U*HjXIZ̭P3V]֌Ƴ=OCVi TjْS qƻfWǥH{U&Wa-)aQocZF(6f~?ٽV۞J-ҍ[#ZuԶ=& \?aڤKzCIʭkŞ 2;j 8*pUXNSG!Zdp՘";4kSF*ʊ7S#NT6ӂ495CQba9=WYqPN*뚁Ү>jBW]jZ4O2* ՆZa v< jB)1]QV1*E<N&SR@Vte1S&*5LXʱ-&8#t'TZMH(6h?)jVh?)hΔhE ( ( ( ( ( *+^Y3#3*@W0|Gui՝ż9xc*|#)\v:*+Y HԊq47E*G*)\WCO_ȓk:t{X S8qE*ESگB^RHXQ8CV"ח_SjN*a[F!aQXEH2#M& 5LcӁ7҇iZŐ"UR+ˈ25RW=*LҧFQqVUz,NTZ8R?>h?)j8F]h?)kzr:diE(((((q 1G8~֬Q@-PjbqLԣ'[=_eM*ؿ֌ Ҫ[JҁxVGd*aJM*i>Ԫ|#ͪG9#8Nҥ#\ c 2 Uՙ**GZeIFs֮LjI* !kZ{K^ ]sn(Ü(((((((k7jzz֩bNӎ5vSjQ^H}JV`ZXf;V*\BxVD*r%\3gTjTlxIiDS*Ҫ\DJCz\Z+Ud歺u+u[@֮.˪L%\ukxQ<ڱ*ik! R*+.Ķ=jU@Ԋk_ibUJ*$5*X) T:UONdȢU Md6HRQ;b8 u4R招 4A56)&b*&"^Oz@G9 1nѦpԃ$r*"y޷#̫LTMP4?j]XJ LcͱKRoZOzg\544P.+U%ޥY=ͫV$˪nͿx&Ozb9?\~H0שaFR&D:VjNlYJXJ5VI͊h8o G;72Iך3CBzF=7|jd37pjZpyq12m5NKR\5e\9F8R'Ui.EQɪr]t(}ZF] XjR6Eȧ5׍YX5^qL@fGj1skča6Rzl"m޶m_=Wݛ V+Y6[65T+:a1j1QF8 9c֥Fę*$Oz$JgNK%&۵GAKUeޥnյ/|,3Z&Ζ(LB(((((((-ݟ|W#<zW{Sd XHdX)T;i̍"1zHXGl$" @)VM& ZCQ`dmQFԹy0]jT/VU εZ~yJε Q<ʤ )T*&v8dƚL1n$L <5WO \cHYVQJ\vejՋztuV՘PjXJjLS R3TEhDD}F]C#Ud,Tfjne(Ui&PM!N[d)\ԓwr\{%Ϲ<Yr=MEz]ZW6>J'cӅϽqUg4ZUpGZ"Ɖ&RjMk*&rnM;qr-Ztd?^:USLWb*KV(c١H P*FmcTS$IUdH1֢j<#4/i%T}_z蔩LU ߭M$Fw^8:%kڳgji#tLֲ$t5q޳\)#t k-h4J9 !5 GQfLB@寵b)8A5-Q}kĢl"#\팃Y8Ħk1f8Z۴`޼*l{*Bi-SYiZšiQbY$IHUz,U6SSP9k*g|sj-{)^ dmA+<0(((((((<\zN>_957V5/Ֆj5LPꝴ*jE5J<;J :)&t cM5hQ3Hzi$mQ$y*yj 3 ZU?Z#ϫL{Foz7T.3G5Yh SdyYwM(< -yU2ߙOY+?W^V)4UzIb7ҼzʅӱV*BUz"n*j1Th)8]sфwNiIU^k:LSK_6]1RY$Ȫs=zLn˹nvwn[z4rΑNyʚ%׸nO5rqWJ 5(uQM>jA=kV*is+hH.EFR55b,1=E_|z][vG;kZ7i_Os;eҺ-(~7Mx":)_jkҡ;cQc T2IMyjW})Ц,UIeY*WJGu:aw!޳C={4/j֡3TrIkܠЎg5O+9[5ӉRVnMTuoɨXWO5:EVJj>ĦcJ"6p3, GhuLLMQm[ҰMjڷJ+Am!8%;fV ^5X ֎NIF 5rrُČO&z.t=Mfzaw ^桹穫d?qHZJ-aݳXv%~Zݳem1iڵ"\Mb#kƩ{Pb`NKPH;J,IU%zKT&$uۉkЧ3ңN?ޓ?ޏ?޽|I2*ֽDI"Nj&k#Ϝ-FRMYI{2 ]Y NEsHQPŁQ4uMy8 DGWm6||K|"'DpFq] \%m\SoI{ʭ Ezyr8X44 R)lA^J?JБji Fv2{MnWVM,"2IU;Z$s rR8xu F黜ӫrmԠ!E5eJ*J[NH5s֭N^s]Վ)H5 %[ekI"%Fc=_pUw!P){R4\t&Mc3LX9 6^WcWF\޲դW;hv-_W_W[ү7蟎TJ%1Aja$j+qS9E9ۭe]?q޲zWm)h*y4Z3msL׳*- Jx}E޾ 3UlT.i'j6z!3KcL43] ┮-(QNAVDX=)@ 4u#^^"tiWjO#ھsx4QoՏX=+{GL\7_J91MrJ݅UJ'N+Ϝ,y$*?eHR~=W2Tⶌ9*}53[z.Ӛ鮠8oo zt*:9y{n^DԾOxՐVQQ>r(̩Q"Z:XZ<ՉRM&g5VC^|\V2cS09i;g:\`rVW\Rg*TEXQEQEQEQEQEQEQE]]z׷\Kzтn:iެ_wSfٛ*',hi+ltƙ#U^V^7c#JϞN X:5NgF2MyR\5C- >:$18$^sPJ^&aSr6j&5Ԥy,F˜V4bg3ȶ҈PJ皹)܄EMxN)pWdhQ1S|c1:!D-Nlxkӵ^ti:MXJAگD+̜nqN)T*@V9[#aUUR)ɜumΝk*82-Vt1d Ց9_X, *T*ˁ_A]2ySͥWIUZJW|eMJdjok#xT,D[*(W]+r;iհ,5n8*Ayxsڔ<_"ԉRGXHS +̪)!;W$jrrԎ*d^XWmakÜrĘ~sv3= {f`&@հ4\v5vGL/Gz7?{1{s4<-Vkkׄ)+Ok5l8BWlW-VvӬ_Zс*(R)VV*l)VNyΕTEKU/^mTЭUn8R:\3q`Sp)\3vqԙ^CU5bJ)iR<*jO _R09j_ [R09kl;WLNN(t(((((((.wƣ_5qYjSK՟EJOUPkf$=jSQթX5rx50ہrNuީzuN^cb4, )J%i_Y)Hdz0m KSIѻ޻bqʥsJ*0jETȼh*i)DaU2(1՘Ry>]+\lg'kG?ٯTHA֩I{Tcx5*`Nz%⢆?j~T՘ҧT?j*+3HsږHF@NSY7pWKr3[cl{G M|~rzW1xb&, aaٛĒ"Pޜ#q^UzƤW#zqMh@+2l9*t¹~zV U-i@t2V,Beb=qt:uƵXCK;&jQWbćhyW-#Þ?^l㩕Z"*})cڬ;WV'$Tr+jj3qVe5JcrΉתPXKlfWE4x1-;IMkڽ2g5!^X}e#~&Usli>[&oٿٯb c榎ִŷ?JkJtQU|f;kuNB"*kF8?٫QÎRT&jKҫĄur%\3gTj ;eH?mrOSNr$JVVW4g) n P`sTZJ'5m֡u+u[K_Q9i]iƱ?)kZ4gs"7袊=(((((((&_5*Nj_5K՟] *0_f:j%pJ69mqVPdW~=R/|B?w|h浣Ac t{\Ú?5V9լRhtMaz]KTUTV2HV<[jFIޅ@X'2+& }Wo{Og@luIU,}R+ժnVxܳ!+f5R*9u%՞z^?{/S&EUz=>7<-/3^ITE9WsEf_~QUn9]"!uYfC .G]&!u MBfɲ/.a7 Z*96eJ/.څMB^fjܟ?.k0EE/ce*10ݟ_?.g?묢T7O/("O*Z*8 eteØ{'M1_"O*+Dd\;ؓGiWsgH!?{']&k8Ȓ@!~H=Ω%k#]KIlyC'q/?o 7-bJ'pBp9Sj]ǟi*7ѳ> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +˵ņwn&H(ʫ3Wsh[@vh[.insӤ#Ш6ֽqVm~,M?SL!?EyΝGTlG8+4۟i?KF#y[="fC2w27u&==C)PS҅=k$N?|@uKBrN?M%qNoCҨ7λqqUq7^Ǯt)CJ =j'Zbn"J7q`4]?ӏ^7ר)87=y$tOh--m~уbmy̍h5uTWGSi$ϖaInO n.iٿI)ٙѥ.INZYGӏ*Mo$Ev;Fy?zf z sB{"S2O]8ӏ*cu WG^?iouk G&p7Gf%v]\U*QRѝx[??UFoz_fU Y1Q+ǧN?^qT9;WJuEyǏG<76▻tf]5$*sYW5l<<Wǖd?5ȳ<7}Yq$4W7]]ltzy;zF?{U9$k#˾U3\"6rȍ)?̭rO-OX QZyoVlufU%R,3Y4WC\pȩ-~#]oPbRiIwW\C ?UVOoo㳂KIIٽ-Xn.WEp71a*>#kpO?J^pѩԨ.>"zb/ {޴.|gß7u"x0$^Yq#[ofUI߈ME%cɜ(z2W}Oz#*~$kpnG?T32OEyZMtv|slԊvc7GQ^GsG[m<7vxZ#E91mɌY5OiٿIT3YW7W7+okeI3jqO%oxY87sܪ4Rz?Yb9gd~ ׯ%Ϗ5hs?T{HokEy- bžuė0Ͷ.¹fF1sI]7 2kVٿS#{z3gQ^U/ĭf?a߷⪸I:63~uڬuyqZCmxNPΪ$OR5wѤx%FCqsצ1O w`%p?=xI!JE C/9-_OYԯNp Xg˄ɦ]26HG2*S^geHGI/ܾӃa{u+Hd9+CI`֚H1m:6;']"x20YNAkWcksg!{' ߮dc ܟί^W?{SMӖbՅ{5:6n! )ES:;E7/SDQayDB00A8bK?ZM7w٧7?\֕sa..>/W9GSd`籭I@zWCry?g ;lݟ+]ǂi[i|bO#nxWM9on$.V:  Eeh!ڥ96rY# /x>+U%)ȩ\}Es9#5B; 'qWfjQyh-.asqH6U8Wܚg!8"p+dwsw8\YnTw@ =tb̎,͌uȭlC{IÉhqzrQ#c[wGZus׃Y7vq%r/EWE{*؂TC jG\}wQN=e\B UzFbu#$Qay%7൶*%;TǧԊ-4ګiX;ݩm ,E. `g^ތ''=5j.Xio:~]kG@?eyHʑwcU+~Ibڙy4vۂ8>"K F4=(T(((((((..5-FJjKۀc<^Ɏ6g2ÂxzU&UhrOTuS"X%BV%?JkIO-$ |s,>3iU[-}76$`3p~>9FRlcɝ6p{¶*),='Q[[/ gj'}eOջٸ+csRrw{]֩rk7%iw|gh[ˎkm~f?4̣q=#8浓^g^S{<8QNII5{Wº7NDXM;Zb8=p8g[j 蜡ד~m4.ܱ\ɝלH Ƿu_& \8H%qwקJK]kGA(5Y}9nZ(Ox((((((K"E#D@SY?F#O`B{ݏ lHC)GzZ z~71m:6?]9]ZlkOV8/54ZYFK@FWd>olOs8nmX2g G 8nIQ'cW *OR?c_ZqQki7Es[ʌⷯ8k%fuR f.!hhPzdEb^Zx5;{2W.;?{߽<v8_6#ۣq0VUG,Hđ(CHs[q>qwVgU Ƭ%;y\CȡXwpxV<' F!bVڹLpq*;JvBQ$8ODb4ytq.nZZF70\  Ė;hzXyMGYy'5y/do%k#(^Kךºrj:\JfQS_9|?eKW{Z˦hZNG%G,Ok7:.BZ|žsXsִ/MD"sa)lT0rL\dOh( ghO$Z|`\> qNs"ڊ1seְ/Ut{1j)A 1WevvPiA[#wZl{w `.Ha^zՉ-P3;ێ=-dyUԗR'Ҫh֭ BD, ##߭W$`UFI'HF>'F$6 V|= 7hR50 ysWu sz=j)BZ\kfԨ`ٜ(Hw3b(bG?Pikid,$7Vu'Ҕ;c*>Q(+o!㩬;^e ZI"$)S.p$WKA ±+#vqry'Syoo %maOŢ[2Pf-t$N ̷(`]7Oѭ@\=dۑU;ѓM: HwbOaSaRNs|ZI"'^M}5$>Hy9 s.1HM34ԣlAҺ}%i ^V[XlBPEQ@Q@Q@Q@Q@ H]%]ѲˌwB9i1.Kh )RvnkGD%QrM,{v.0>VxլqvWgaPj7GYd>dR^.4; $g5ѡQKg <J|[TmojՎi͛9Nr2T*T燉7(;I~>Io:M$lN39ZXb1;Ic$pN=@NOv9hb%Q[Գjki"FhٳS<j~⺌:`YUQTC뜋8Q sNzWŚ9mАG+M&w5M.IoɝV i:W/7` u5bӏVI3τB|`y4B+Z&FEv:}:ݳK nlnpx `YӦ2Y1!z;jӎ*)i-؝|?ues.љ&lZ>Nm1*8&a6q Dm1qC1Җ4ђ:ubn}Y}ޮƻ'R&CTnd>5AJw5%үHi"aU[hOkIǙ]nz?X?זû[*qIcn0?nQ xjh=/QE2Fd/.s*ֽ -GMGk2V|r\WV˞ g(sԍ:5j*{|+OԷY O$!\'qkqXsҷ=|-C_ivy44JpF.Mc.{ʬz~tjnX+UZo]æ.b.c][Paёc9An] qRO;jwyg d׃j+N3MZ0n'XWt7kVZ@ȵح-\u19y;ec%v qqR+^j*i3Jk_ky5xaMi ͟5gVVE߼uGQd~uyUOv2\F-氯/:C`z8SA,իTGgޞ+)|l+/wV ެ+]R?7w|wczV]G[#Х;xlqEV=r~xa^?'anɼ~*ڼAg3~l~8:Z^ k˙3[qwzCvg9{,b֚u$F*x$ qX~Ir VPW<77vSu6g9ݴ&9;^$?:𙮵=Qʑ럽SFʞj6_Zf/n8?Z{sު)hYS&;ۧǃIo%L;Ce_Iս UMI #wcoէdz5i0:\Ry%Ԃ8#b{ ,E.uRf+$NVԈxXަ]6~lf5Nz}ִ/K{yk|߭BNNg& }kZ+Z@$}p?DRgézig0*m#8ZJJ Nգ,~'$౶[kT@vq5||ь]~oֲ..@/ֳg4ַӭ__?{33{g t{Qfoj) xz:`Z+dVTEtVo$<yۅ8q:榊L (R&n*'RZxrooF?U)λO+nnFTv8U^I'`X7QT]fT'o_aSR6|Aӗ'f]AcֺyXPaf0 pH9!g.m_̅Fq.[~s%Ք#RTaNo0RUVȾb^Eu}ļ3 TLF<8~'nm̅FpH<q\\t^ eiIXxL/Cө<{W\FaMN_5|V-zKK0fXis^ ZGTW$B֓]tXWɭ[k?Jɼn+VAFs%wF`1q׍w<+m٢ VjypІ:qM.DnU4DIJ Y_6 o>=HB2w*['+u9yRni<-m8i :n8y>OZ{4/I% A@n*cmʷ'+xr~y/Ågw bvDSd~uJq:$FqNwz6NdP@ v⮣J6;q0ϬAYzMpno\Ȁ>0rzc;jGSYҕEAEa^ܟ뎦.~&;pk\]2km2d yU?iZ%10Fc`9#!wq)1WSnOɬ;9<-uMnkE^[u}3KݓSOEG,L9 `G`EssZS׻qxE;T,>By,%둌M<=YW}y5*-T4˳́$Ե#8i[tu'4[[?gP,px?vuZN*(ۯ\ I{UJ V8X:bi|%E $aOOˮ8ɪwG/.k&1mݜthʤc5q4p7I#QdImos]}C>X* t滋K[]"Al Ԍq+IICZTWff[U|s$Oǒ:c8ϯQОFDQU; wx>nMc]si9;4b%Qܱw|pyzrhl2ȫx;q]fgDovėFx=85m<,u] ^j ,LD'1|/8?^ތu5|+ͻO(w+1֦QE{EPEPEPEPEPEPEPxuVFgX]һ&7Cc8Wڙ/uXVG?Ù6IIγDJS|9V7[ .>_0cIJɼ?5b֭)Ҝ!,}][uEͿ'W4-}5RKL$bLc$tpAV+x3ˋ Tќտ*=+SF.0h%z{qֶ+պi3קR5c=S;ՂL7Pc)<XWGYGq]-v dKim>x-m%ǧԊ8kj6}q%%ShceO[->F61ݲ[ǷsUKۯȢb/ng 4eR\wl/.+:VC$gj8NծFHvvi+mglIqҴuZG:l[;[}Z*X3'*E2d+ cQJyN\ղkr*:d# RpHqZ:o./Fw2Cq=kxP3sQFKY~C-m~h mX` t/O#Ewx0Շyx9T՘PJr断8+>A4ڒfQ\&GKE6+ON9z%u-XG󒴌7*= =x{uJeEVQEQEQEQEQEQEQExkzs2Dyo48GSަW5K_3[՟ۏ'_6[5$Hrp@\ӆ#sJ/[.YcYd. I!CyuiTfX|SZ3/G,.JI% X{| _;[n3ZqT:eԺN7yקL {J ZͫaY{JzKgMuh3XV=;QVY@e@<VI2+1ʬcjnUUF?j.Mc]CtQu{xQz3p:)w_P}WOt`g!\ 1'$5sP+5Ķ`sFG+WucҫJ8| k֔C!SMm6tE .l\r+.}ꈜ} +[Kd]'Z=<ǷDs?? uxSR hn1Ƨ1Pkkg[-N~sTLA[5pk:e:)T)!fܷZ=fwbz4Qx?>[_XTc%uֱZٺX] id\MzVjiy^Wݻ$u6kfX'F2lfܞrQGB%E Erk(0:Y7LC&A$ʶ.R6R<4BHoi6xUj{lD秢OEtu$?5ם=l45F,G KI"$+4Ȣ3 źHHONfxl*{p*e)˙ռVUǺ\ǺJ(=2Խj iPom`>|򬻹z{i\pH2H䑓NZM,,^Knj{Ļ"yjEkj@=#L[=* ]ևgDovėFx=85ȏJeu=@ǜ9<{zw?ީc"Ѧ.in./'85bnziƣr/rduouvzSw6t=tKYŜ1p;pU8y\kP*疭\gKkT&|]9\5Jhcd'Dtm~f2Ǧ@\㚊uuדXW^g N8ZFHaiD~lBGsI`ӷn&]YWaA=k8EݜXj2>ijؗ'ZzO7&]Z3DU0Ct7z`df<ۻюSJؗeCn.V4EU^{ß]W7&z#BkÃZ~Вo(>cC=NsA\<3KONCG:0# =8uwדD$ū{:7_GO2Y>󒸻߄ͺY?)ҍ]Gw=( ( ( ( ( ( ( (ZmZ;RJ5:m9WE˗sY3xAmpAw3]q Xۣn_&.#G"m\:d r6ron/n]ZMէ\q X8t9uh~j䡉iٜnՌs&vx<kCm$p΃"V!Ib\U͙iMjz,Lm=;[>Ž5zJ]~jBE$9']j>g~>YSvsӞz~үwt`v/[1@5D ,Y6H% O~爚JbeRx~WSqZ˸ZFGm ΕsF ! C5闱jzNvƧn2p \ͿRY4B+Z&FE\άF8:I~>GksmCYwZ:6Fыi:Vn)NrTVg/0"%NkZ[|U9a֊W;#[s3Tc{}&vAkfx2. iz4nc]c80x$vU;xoeѶI¹*7z aIXxZ5uެyq5dwPsC[IpvUSO5BxtZSVg8COgNVej {?ֹPn-cz rk.IQtaܧ5rkz9[Şf+;ΓDvSEzsW `%F +nS]oӦ=g~Ǧ8aO\Npʹ^k8ֲ;ֽU[3MGտuUq? ;n'VߚesRP)7k#.ۊƼoZgĽo\Gaf]50JNjׂ-Y)-. I@ϠhG:-H]cT'o_cKu'ޫwRYR}Wn9UeK9k85vNk"N tE[H泯NH啗s]Vo"htAθ8^5bfy\K]#}/ެ+W^62ʰHNO<#cdJ(s#K\sqH6C@WCu?'sXWŷ7vyR5=u{55VTҾԻª}o-,.{#:qz-HbcB(poLN3܅wܻJq‘ğN5̙ǙcLF~}B-픻'Zݺ۞3gII)3gd㊵.Tt´hӺWB֙ãZ>E{$3OnN87w\ ;Ցuv3Rۻ0Bu%=[$Ȭ{O"A7DAW[xn4RkēWG`l#hڂ'R)wУFCUÏA5w>wsEe\k-d1u&LvW/rcB1TvQth9GsEd]_uIe[C$Jƻ&+R<?^nW%7Kk^j}0;FH3+t;=+ɜ% FFylTgI%kMHXdXQEWkp'3]a2* Br88݌ZqTZ)-`sC?NQS4gsqg+.σ⽾Mi8$:Iqh+'x;3͗IF'c+Vt83X嶔K\dG99ixծ1\uV:]&Ia֬=6#r{VXz(ɹՑr9h#e\r:U]= #8ծ1\~'};{-~nf\wK*ҹQqĩwF.[Xхw(XɬY$x+ Gn+WY']+.5?IfrRFu}ʹnkBeܷ4Dɷ3:~ ic=2}OMQi\vuN9&Iqppk2k( ]4}m׵g?\~D=>߶l4J0Dc溹XdjaUF5'Q;t) s7=k2yY֢18Q$=j .>U&\V'Or_AyJcaԎOZ:'ա77- Aq޺x-V+X0Y€ώ)3B𧬿Q4;m )RT$zלT7\n e\k4.z돽]ZG&EiJ'?ɭmҠil-Ģ(味@I?m÷2$-6bz趚3 ~@>S;x}MMqvk9T8cܯ N~]ӆ,"yc >T/5sxqR}i7yjwW{k&/4,1 Hg$VΝC42>fMDק<Z-GfUs2M8q5Um2Cǡ3s#x%Z8px_zkX50utqiׁ]J[e}{ː638x5*f..-9(u+t`ABJgpfn-9k.ׯRMY+FyfOլ5)j&]tP:;k+14Du=pG" lAeU&U I~@qv5N*Sju-mׁY{ $@*r=PFq+=iIqlH$ 0pqtێn-ke+*Jc,5՘LF邠uwEͿ6G9;dpG"-ZU\8[l|μ< +)CUpnsoJʸAJȹ"fWI)a;;S$~'Ԁ0>q^+2xx{3]ejڵmWʕBbМ@sY]~Oҭs~T.̀mgӊι<1oyihe3DrW`a^s쯭5htCz \=> oy;my5qm]mշ'嬫n>\duvKx!NUW89q=}5 mj%[mdn-)gP9 ר<9AKUu KOlyۋSM#-KNxW`d6CX3˽J娬r6,r[LDvS]ŞG+.Ng 2OҵJ)lͭQWW LI l bs 2.WSZWdU,1nG5qsd<ʼ0!Yx:x8éC[GkwJF*0 ^xa\R52j5qgϸ\gN2 ڜYtdbqZڞ>:V|ⶋ=j5 I滟x=XRS;dN+?j[yD;"t$EMCO[- )V/|Cp| 8^3[-rI83*ӝ)TZǭP:R6f+>qZsΜV=Z,˜T n8. qT׷&6"ՏIGSp=^QTW,敷I$q5ďqn/VV35[ hH;uۚ9YӞkhQנxI⚳m^|cA7DE$WⷌEik@5ҧ }[V>wVozΝYEmLC^?"J;/?u$Z5FQAjg%Q73¨*ΑfͪX&A냕kUhтF ;;ZuKhF$X-H u6oyy}|mœ|FsVaڢELSST/zD䭈#?R..*_ۋ>N05,ݎk.wwR& v LFͽj.feR#u#u!qd߷QNfnncaP;H=EGj F{zܒEsEa^rO#cs)#ɥV5*va]j#q]/<:[vBˍQY+^;Hؑ1q6EuW0$Vꪣ 7dW-zQ[QEQEQEQEQEQU \܅aۜg89|Eq"\Y%Y²^c\ L(H 0UPX%h͵ӕ$ƀ@w\0n砬9<$KN%9#.X\$q]&kJ?wuÂvq?:fFk?aI2"uu˺#cYVigϙf}NxVݿ4V$Ia`(g$q \Wx?Rhm[0b=F8?uHZk9'i^x=ǸQYl'=fSJ09nՈc̞ hN*{T&rRs K5^RVGKrZjzDovNNp;ҚU)mktՙު¤yf/֚M_eR!aWYxfL$%Nsҳ)-Vl/zԚ*4<ޖ,<*ZU A]U#ӥX傪'W:)VU9aTFkH :hgf|\'ni[ST'kzGQ:؝9%mzgE+Z]Cquu Аszsjd/3%tc-Ք#Rr;;d3J jt/Z09Qk)s8ZgN+heN8ZӸVmz'EOhMOhLSYJcY*ƨNxbzBhO޳:=Z(O@Xz 2+nxo klX+26FVn^nEQ^w菛IsI>u I^ z^.Go@CJU*z*Ķ[IHP"<=;9"XId`r]uzsΥfW/d]IkF%R}W3rj@=#\[=)m.5[(g \{cckڈ-W #$f؜Jǖ:lnY!h !ii¨GAh]7*RwisϭaunUdΩMy沍;0.2hnF8< ڶ4~\ɗ+܌dzI[)jF{HgF;j:4U'&{ RtO\i9gɪsֱNߴ.jy>i2j9=꜓֊'m*6/Z4qN%h~ᝧ=Gͩ3z:i\yٱ=9?z̖凅/&[QC* G_Ue\)aQŞYyN$E`Ԗ=wIR0]AVQ0'8${u'\|V]I-ӡ[D | 9?QMuPsɪ3]sC-YxZk[j֊t0w6?~M\`2;Nf3,s+~i:tڲ]"[9"gn:UTonQEQ@Q@Q@Q@Q@@ 2 VͱÏ-9JEQEydo8}sKkkWu+16mc'&-5y_Fҁ>vIw?rJhFQWM;e5J[1kzb.2J^`8N)5D-J[1jc uٚ-S;iUǡZƺi,W{CZ)DZi1H˰·4OlPSrNҦ?c"uⳮl̕qZ,3qYw=fvhT0~}?ӲҚEsҏItA]qY|rS UٍQGH?zθ0TfZ'IؽT zp?O]E'\ܥųs&vqA߸~(ݻDܮrc0ҝeQmatuiTTQ*V5{&?(-VO$k Uo<\FeRu~&D>ҡYUQ`@֯Yi~3MgF]cA}+Ui.j/'9smzeFkz-R犥ZXr=yFkz=r+Xa2{9n}Zu M&)dYQ9tmEP˭nFN~HNSG[G#4Yp8ʤ#`rEaHiވ`1߭mt*CԔcq鐴6qf.Fyw>£V|bwIF)>ij]QT'FkT$iR5,p$V—Ȫ^{ԳI4%otMZh_:~r;qڅLU *o'+iRa }@BE$Bp*ףMz?+7)#YWקV|XGkq]i|d,R,ueogUHJ(O|(((((((}rFۜ\vYYWY{j$5ѯT<)jyXeK45Wcs}/ZMsxj^hvLk1P[+t*](y)YҪiX֞/bKu,NrO]cO,Hm?'L8eq-?*j*1Ĝ̶~_ҩk]4֣5xA=H\=2+NXTu ibSC[RU%L)M;uѱ;@#83vCI~ oiYvYl6A>USiH0̵/5NUQdm;X`w *ڤn3klFVSG'zHaMKMGɴ'=?eZ?hsjJzhT=VDSWz+T5UБ4bKV5RSZ#*Kު*Խꬕ;(|wsPU)\ךGzw$VF1ȓ9 Ԕ(Su',xKA{}{-G,Y{ }f~匿-*FFT`; [ [W#Ϛy r(RW>Wr֚C$zd%h d7Vn:RKUe#%5NYֺ=i}eEceHqYꤳgsO֩Dҝy.?ڪU帪rV'}:nڪ3\PKpjօɮ2 PY?ievvrBExar1r=2zƺj'6\ʤFGpCu+KLHX!Kq8ܚU[F#RpLQU^NkZ=PQ3rkZ5_3]5P=*Xb~FkZ[++W >o8\g8GO𥥔5Ԝ+ F9SniV 6z`[hZ䉺Hb.L)Q$-+J}!*GB7gYub)ULElMv_r_yR#w^/uQC~BkZHQ;Hl'G0csیtgDaKo_-Nq C4>I=iuk&m"[#8QjkMf {@L/K%8OVxLc[F;J(=(((((((IcaVpG}ss+ޥ4FhG cX:ꭃjʒz8 'vo;lsYA\mZd5)v7hئhœOiׁ] 垫;LLP2@'qPڀONrYN[_a],= SzLJvZa;KWnˉ{=x;ŶsB %c&3c'9-}U =YGna[VB#88<*)m?Ht"VH: V^)4W<f58T)]yܸ8< ɺ< ,h#|~ww[jZ$BR[ҍx?~61ڠ[`8&9v= iʙC׊3ӄVgCx Wf ?~'IoUd)ũEj-9ϵtkyOc=3ũGs˩ wjŖ=RImMrxm= 5;c8Zg#ܻ9\5nEX Mtn$[:XY#I#U䎩3 "EZEU*U2jJx&35JE+T*6Zw+WZE^EFe W]GA,֫H{uJ.2ٞuk `7P4Z 7ٌ9gVמSۭvε8Jh<5W*0ڧqP?zH5ZCVIV5RSVֈV)U%5; Wv$jEHԻUFI'GlkwET"f-z8ۊ[kxm"b8(q5h:Z&7Kc8TZ>wcqoRV%z4IOUj]9ҤySҊXxΕu&~*u;@lUI%Yj֩:c䖫{!I"$(9)m 8+ z]tP+ou([(susPA _DPo5HFG+Z%SJmݟ;RLD oz4yO/Z̸ZEi\YS\u桞U'$`ª{[(*{Vr֩Lڹ8Ooiu1qm !NF?mt8ٷ<Tʢs> -3C]J_2d0H1psj覟ޡz,ՃnN':sTwKwבYG\Uzl̼Ӥh0UIn}QUI.}%)ዓ\g:2\g =kUڥr UO}ktZ/!nrŷFçN+ěTTR3"Q;#vkj,UY/OOlKz=Mv nu9+%>'Xit셔Q[B6gêsL(=(((((((/L޷?5꜖G洮.Qd}s|8S"+PdnAA9'$އםX՗wÒi4Fb I F>G 9tn%G A#뱈Hymaж9?:=<mc֨v#]{Y^y Vփjg-?X{_i]k(|J>*gS7$P?*&gS:c9s멢*+_ff9os8j7֩fkhc]୧f{jW1ޠ{z{jfHr鐴6wTl=N|OAOj&ڋE„4E|WGVpPd]*P:{U&tFeZ"Oj"{UuBF|֪ʵ*uJigȵ}Zwp+rgGoy\]%y4&G9XdA2j+oMJg?F̂:թVr+IUR NZ(S+DwS)Lz9[9k>gjJ ]?4(@A!!|F:V6\k7!ƛKHVFRHZF\"E+R'{\觨4/>kw;/yq.3W ƕs s@I?N/sVtM}nઓ i21GZm:Q2ј`$'^+ Q„jS:iNciŽEGimdSI-2I괒vxI9VK'Z+I'^jRGT!b) 5K;@$Vz2C:2A0kDv¢kVfZ#d&@A*q^z} Ku㪉_' u'OOZk^_B_~Zz잝\ %S֫TE 'ZIUEKO.i˻&hUr C#Q?V_1?ir,'%ت]k-?j4<ªI=R - .VS{]˷v3VGk1vK}#ݏNeNa2Ldk]Z&l㲌1\~MS#)#ӁQWDsK3orpbԇï?Kiww)&vy4l03wM{Q=/jhkH#O_4Ould%έxNvk\c㜆u^KZ\fo5?,mlt30^n7峌>j-pR__o:X9WN/Q{I;(>(((((((6Oj}?jk!q]vkj`s}qZ56~BS„riRo񭖲s!{x7vK7ƪ=H1gbK3}Ig) jH5X65AZ&SQ̙Ne+ZQ74ʍ;vo8 H>UK읜zq o+vw;q13_Skkѭtm. ,S&YNy8d#QFT`gDq \AZnEAFGzа} @ IC}*/uj]Yif8+E%?2#eW/'vBV ?OHvp(Y%ߑܜuA%^MKrSWfFIvk2KsUd4( )f{Y2]SUP:6xkz8CeOWGG4VCdGU}qo;n^x.Cy.Ks^^_6Mh?e^~Wی㎿vd7ڒơQ!UP0N +"u+rB?3+s ( ( ( ( ( ( (<{u9U GL-DWFVSG5YoэYOdkTwFu%%;]5YC\zopw8")Nv>.[!08_PlrKZ?3lُCLkOcT` \Ic9?H1?U.Y#bӳ'6ƣkOcV56 m۲9zsVbQ% O +X63Z}tfj - c(椵mkԌY-θbL5 [V-nj F5[kzRq}}o+6qu͗h(00뎸-lj45n(VU^yڍ {LLP2@'qO~T$F8#]5fլ]'g{?ֹPn'ǰ|#BRGb0]%G6FeEm,w 8=Zm6s9I笝u2͠t3|/_-v\F=9:s]4^ጬI9';=\ yԔ*Eg^Zz%ǽTz%J(ޡ{qY\j sI}B>T/t*'\Vs\Q:a/t}EST1swOyh[W_qtļM*pxwMCq֩K {~ Z2Xt^o+}mzLf9FURKqY{hyW1eO2LmmZ61Z鐴6qfF;aYz9Tx?*ZݘJ5NMe=A%{BQݜu|2ͼϢA;{uϬ`ڕ8ٞ %KEVQEQEQEQEQEQEQExi꺓o;V2XVZ:7W[&[\ҭwG4Gtr(u8AW$w>c^:M+_~]+ 1W9gҺ\Bc(eK՗N@ #U`DG,B^g\`=>]N1FE;ɨkFgjxj!7ƝΰyR2c2Gai@: ȺN\`㵴L#e n ' ɏƫOв\?g\SژSڹ3c]iڜ Ǜ"62;qIQ(iOؘ0[)L)QsLڔ'NRm;F-;b\a5HE12"jVS5{Td&Za4$8FHZƨf]Yn7Aޭh/?s^]ֆץ#5E6ޣi=i*kd'F{ %FSJ{/1ަ{նz3Gȹ zUhf"-\ji K$r#M/ %]Ԁ1 F 2"8ÄUD@B2qtrΣc8-7he"ƊU;Q4M*OD&iMD7Wi&5J&>iX/֟)$T6 8N9I-qy"}~o֫_tiĠϨ;R-$Vs ڕ[ZgtP[A*b"4 ̾Pc j -Q[QEQEQEQEg^މLvzsM,$?NX *%͛ȣ9чPEPEPk~n71ҋu6b]GP|okR͞lsI.ͅH1b'= vn##!d)#ך_{&Guj]ӋfW.o&V%^=%4sJaz!==ǝov9WjտxPI9';=\ mr GďqUl4L7g JTKjoT|zXdh֝ьoz.qޥ5(ssA5.}Cɺ4sk irƹ4ߴ7>iK.G氾)E׸O ss\>R3osXFa>B7o#x}E0{|!o᤾mެ}%yy>lX?iE#h(((],&Vi5Ll#w]%s"j6ւkiZډ ֗T>Y.-%fx[uCFb#tR6^? T@Mei%.Bp%1+R !e$R3،:-95k2Y_1:wHf@ U.4>f{Hd.I}}mbG}s̬Gqk&Uo̅|QZ cR-0[?JMЄQWD?5:[/?Jl(s~f(4hkpYS?O9_d4d5??J>G9?Z0i?)E?xmM<[kK2E1qkK_J\`1)9G>kXL6)W3<_"|h?٣=QVKG0SL5ioUhQxRfѫr˫f?jO/ڝUBIտ/ڗ#4WjCTx괋{rGݬ˱ Zw:iOئ4n}!d fɦU4:gN5 5t\լo/"$E.p@=Gz%U )G*ƧA\ٞL~zyy?AJ5mO7Ɨs?ZΏThTТ=+WT.ZfmˏFMŮYUHj掖YϯK?g~(?g~)ej.);L}_hhꆳZ/\Ws։>ƏFO4{hƄ%H#tG GipfSMЯG6gY߅ a?Qa,ҟ3KMBDWр* G:?z \,h=/?j}cSaԿy~(@^ZO_`ҩe:7U;@3_f*ɻ9=?Z_1?hue%jъL-A??{ZisxlFT^'cV۸gfvV7YE#G#qlkkZ^j9@?Y+JnNZn?*_((KQ&?z8}_ėީm6w.ecUG5OYBm12'Zҋ1qObCZ/Y|o#"O8^j{BR%Uji,8Y佻@7SL,P 3)/1Z>) 46gTI{h- X* ◲;iSzEeB?5?]~캟ΏF[ j4P?#wi{WSS^m-F).%Xqk(>`}~LkZ/AV#!F&*(>`򶶩=L5_š\mwR0 $AZ:.*sQFGWjpڗ1>R C$26(sjjaԨߦg6٪SI1_# f۷g6ѺJ}aRkkиڤlY:ޡINV85j',9<֊-nvƄ}?m&ʕFi(9XGNՁi))f!EL,nVje5 ,ARd(4ji!ejZbKhnOX\q^Z{A%8IT҉*l`[)|ʩQQa{2ߙN2645g ij\Fά5;ΥO/ԆzSZoz9AQ4 qY?0{-P5>hA{>is_&G=~hcpigi?T 5 ]͖Ty5J\7fXFzo7XCff~i~=MM7F~i~hr]U9H?e޴42mݼDF8`GIlt?k";IxQ=RWyJC8錐3֦0uh'v]ܿzfۧ!ݻ'Ѻc(!'YL{WBC܎ MYA?]J҇I;2IɥX=R\ΪJȤ{TҮ$:ARc*CqW8zqVڡ[SS?jc82%XeڤXn`u*R~"JRJЩUmRG28Q =jun)TU+xl+1,ɱ, ;יqݼ,LqȌ늮]Y¼-.Yn`(ZxZ@)ت*U zԙUKR-#J <xdHZJEtGLn?K0zП7s.?%趢=B>iLwc-7Ϊo6;~U\& 4ON{%xޞ%b"Lijޗ%X\Yޫϸɧ\k:d՛إI/>\D-R$eq)V@j.iz_75T?.S7F T1+N[92˶+g5 DdbODt/43~.jDoVֳ.)}c_ۈm>ڧYmH/?i֟4XTU㗛Z0/m&- lmZj ߭_J~Y-Qk{LXy+BҴ %ƻ5xM]nr@鸷sfEu,vӏ߁Y5+Y7sH%y3F!FNP]#X0D*Hi׆/ixI?FzUQZQEQEQEQEQEQEQE}sKQ\M_Odq*nYYtX2 s48 # zs\mϝԩRR~gs.$26(c8=6ܼviclfs^9Ĵ>K?aMS84cJO4klWAʳ]J\oᑕ8U ~Eak*Hp3I36NjͽZ ̉⬬P[`UVUdy1z[*tn塰k˜'8k&_i0Xx ԮilkN-+l*dI;>O"voColⱍ"2I}tV <ժR{p˫i~'_^_ۦ g@}Es>4*ҥ6"9] 3n{4§ߧjVt>g/ #}B.\$I 2Nzq {VT-NUڧX=iV),*WVj`0bS$5maVj# V+$=*ESU2EP*)LTLTsJ]cuF_4饂r'dƱ'1Gz/:/Vd&I|˘mrzVVԫqhNKf8ʽ7xɘ]zT=ʹ+Q Ymٶ)sjY-:)8?_wHqVj rS J,7z Q]'QEQEQEQEQEQEQEx&mxUloэQgkvɪ-}q^4W-I/3!,N~ƶR^ky SE"G)5=rv5itbicd9HR .7еG5x_5$(NHA>'uFʍO-Ngo8 RxgoM;=C6<,̋Hhn$+V|?P՘MZ .S={iIi$bzdR%DCFYH^?\֫8b`AŀPz^~^]js,ײ*h^9=cFO}FYZS_j3iy$Kʹg!wUt! cD)z=$Hkx1iap,{N@jQlMW1e4xq 5Kp&;\ⅩUi*dZLRbȔ"ՄJiHjJfD1ŚiTE%x\8ոMGLC0OPꔗ2<>jUj]:[iU!YnzP[\شJ%K0,'j1PGڬPY!Lװo(qYqu6+)}}UӵYyHr Ip1Nݫ2D2mͰzeAìw<2R30iF|u\;)I+go/y]<~M"_> i!c<)< Z*=NҨ#JF6+.7QIPR2WccG-dԤlG7Njt޲cNT8r\Xo#cV$][2I\ q9:ZYd)GaҭZ%nqrZ {YBpH}9nשՃxRPMo/dfg/~k'#֥nգo=N9wj^4Qf38}OzZ7dJ:X`;Z[T.h;iqSǸ4T Vޱ[Sa,9>[z"[KXc}.}N^2] XcKqS-׸y.LB|7ϘSg2) trO͑JB.}9)ߝ<M7W|g3kk"tyYoGtͿϤP9kXMV߃JnIFcEVQEQEQEQEQEQEQExY^j$"-5x~W>_bo鎫9mD"՛ vCqm4xT{y r作1?%A-ĆY呺IMkd?*X9=!$ 5cVҷ8 @)s]iS?j-TfGiVcg(EYT9tJ=厕}o+ϐqV3&"cV!_o!N7_wm OJ_J{?y`Ҫ?7 ,**_y-٩jfu~t[۸s:jPeM] oQ^ %d݂\u/j͢!me$zm?VWuz6|[Lg\ɓJ?*{SuG|vj;a[Z1cF"K_Jq$p򭈭A*d~sI۳ 譹ro SnRk˴ su<B!a^Mz_ iLvS(>r@WĹN|Ь%b9OqR?j{SZ:Ι^b8}XQP:QV-K!D5~юz?#1'ÿ\uKGe!?͖5e*uf:leUU1rM"5r&Vl⨍ޭF9ڬ+6 .EqxX۪:kJծ'K+øy\)8O"HѠ2#n :sqfWgݎY$AtZ߅ l_kֽ t0?H,Y߅ ~v7-_L~y7UM^9s*65H+ŸU .84tk֪:&Imbl w3qPKWdGTi¬yj.jMN&Rb{sj-w(GX]ZIm55-ne*)?[Zoj!dcU2v$sg7^axbL#eީ q^FnKXKZ~K\9A$Ks^f_5 ڕcfwP:ǦQEQ@Q@Q@Q@Q@Q@Q@5{kjړ`s}q^fSibGyt/0o?s3 /m;F~Їv}1\JRv>f+֭5gALN"xZVe``ƨqýUƚ̸`_\OD$"92c c5 hA\}I&i-\M*T2d/ ܸ8poۘ8[,px<\֩:{'"vaiƛb ݣ]ϋTIf)`[g$gj4%đ r01֙ZF1С*ϊqY цӧh= '1Ty7`Sh285bk=:773Ǝ\F\a 8e)7VJnRf6eV]n] kUy\]噎I'ww]ΪI4tⷄy IG="(qA*P{UȠEJhV*Vr+~GRZaZ6#=ľ!tdeAl BS>H }-"L]씲Ӛ䠎4\>76*1WLb{iG KoXcW"UȢl¥AVڟUj86D* ](:#B0DQf8zɳK^ťw:G2y wח.F.IfcIkKzڦ!{U8Õj} ܥH%-EUȒf$>%VZdiҬƵg >5QE՘C8"x\tъY9/%rWԾ?r#8|6Y%A)YSRTHUڨUڡq4#jtZVmSz61ڲjC[TxGU,/_>$T2 Gj4&*U拼] &ߥ?Qrcj@ lFת,흮 {7v>涍f#֡TY]wH1Z!鈷&IÆO$ŽZMI]9ӯzoCV9:U"ZZ12zFg50mXr@Uϖ?GH>BOlI!(njg9oUc9\nq]=wǸQ{ԸNf99S8Sl.qVPofZVm5 85X{ž?Χ氵}.Im .̨U,{C Q]9JY߹11j+"p9g:X,  Nk;qV68Ahdj _v(xd灁N2MatI̘ܹkR[[jgRɝUUFGzZF_K0Y]~'ivo&㩪XOnvGJsxsVB\n (p֖R }jw#n;qYgL$FItaVƷo-1A_JOᔾm֪}#Nm#LNgyEWQ!EPEPEPEPEPEPEPϚĚzOo9MZҹ;3bfї 9X?x2R(׫ j oJq҄,X17 ҲocuU xm%g"764V0@: kڤﵤa?  ݟZϧUƝGJV+[V6i+FOJLڶ$ Z ?Yu(NHF}96!dVWa5{=6)<t#L᳏rZީ{301D+ޅ K)k޹}TPU\>76gm*6F:Tpt֯ Joj6>_ҢR9!8[Ոm٫`@2 0PO5NnȎ+z㱴sR =stZl~~']r>^qnP/ˋW݄8;zUƔ裗֫iTWz:IDRXcڹ`"ڮn=xB<տ?aNj >G-Za\*|0Edy*Z*8}e1Bp?wJqJnW'bFy"(3s\?OňXUZyRٜbܖSKڱ5[Tu8}Q^WEDPp 8N:V2k0WUn U]=JFuc6РUšqمTW:AqM\}ІozN&5hXۊZWߺrw(cx1kF)R&js)hܤQᕆ>E%u']Dy#A1߂OqH :2v5)hW*4w?5g.V֍5G-zw:k6zs 3621g:{k{B 5agty.3>zn-HoG1 J.N0IEWW#Q`\UΕ|eŹ m#ҡ~}~ H*SE:uǑyP  >+~hsT:gU.st7?VN'Vt8+[ KtRuWk4v8pqZޕ3%mHUS#8Et8@s9C P-ӹȑKsQZ*4hG3Ыq sZե+nBBK@\4n&QԐGb+K'ڡN6v*WbxjW~-L)Cx80_ڽy7.g#+ȯk7xguVŚWEN 3vI{Ve择L}rۣ:O^+֭{OMnmf&yw3lX?e˥7(K(?]\ZXjeŹ̞ԝz8\e:TTZgoEVQEQEQEQEQES]UQI\jE RUV'EPMqϩJvƗNb]eK8>PK1 ?: ڻ1(lwN7mt}Qj:ϓˏ`SDlNO !qZ %d[Bya3Vc R[JBc  mat>VhȌs9+dssqB)oTuk?uy}|"ȕPHz{Pզg1D| c q4AWbQǡN >Z{ڎ*V"Q{ NdTĔzaVvj JP,VrURK7V5G)-p*]@xfc)G[=΃TM0/H(S#~jnHDP<8$3U[A[,= 6W}J;zU(r*UUV↤*UG%J"C :0VnGVaI{X^_f g@}Eg#Jmn曉\1EuW"Ƣr c58ͼOp9+#5 d'09(m 䬙QEn{EPEPEPEPEPض4mgsHn짻mJZT]X QHT @$t8@ yqNOSUgQiXZe{fv*Ex>44}̠Ob5vTyGyt/0o8Sڲe񅲅-gys\m5YWVJoVjgjۤqB"Y;[w<*p}@/I ?*¹3\>76g*r{L0WNXDV`UgfF*Fx ?Zo5wFp (P8a4ChsW#Yzl>YvkJNOiQ۲6\c֩Z9+NኲO*$k$6pXR3 zQkH&w1sz88#yN ~֯wL=4t1v8I95r=mZVVGVB[ۂG-qޡkŌVb+]-!4zV5FyOw&<(Kl+x=P,˜`/~3\qKtuNDJ{SۧP: QVAYҴJG]ҷSsqᅝCt$y TĒMaNi>I;]\q r$犷0 }uK%d^`Yքk]cJ+se۞ⰑG)Ԃ-!Svją-6H U=+¸h twU塩 U[fBzCBNҟM\M[:#?{ KP?5+~-*t OZJ+$]>2z[~*omh3 @19# u%t}:kSU#6a%c%]J*hV▲#XlVMsr)?W&)D Nv瀈oXdbH| #8rW:MϑtȠ~8$ <єgѯK%ӎ~:ԆTf9 F3MXPՉU ZLg?#ۂ|̜oYW6"'B@ p142}͘ozr*7WW:nϨ3π>6MUVb%Z-nayNs(US#8E.X>J%!nE(8<mAjȖI9gv{ 5i~ 袊(((((((/;ĚoMHWWGqf%Kq-o+ϐqW4dx8\uwg5=˴phᤖ]NN(]ϩk@KR9B+qZJѷbfh+7XĘ?9@8:NM#̝iN\ձ2kMek^!w.BBԂF?]*#p!n ȫ;k#FӮ$ډJ i8PG 8X]ZfĨ+GDWӴF9qG/r;@H8Vw ĹǠ WW_nUY^ɟhp=\zS-V:VUkxJVgZd'`xQᲷ;0LcIs }}+-wIF~IZ)FGu:1i.ڷ9ͻsrW[ҾK˫DUF|?%u#h(((((((-Y }ḙ'a$S8{^g}־j$V=q,u}YZӎ-9 miCZ+Vgu5@Mg)M"kN Sl:L0#p :t9mxaHfR2:9mkCN4﬍(`״EbKdx=AZ6t%֭ \uV$[tVOmgp@3`4x#y cX'dyKb'M5_iO-TB|'.VK2Jۏ<aàs֕N ol{¯wWՑVN)t5ooӃQ)oN+D5.u8'[ک{kqض>VAO=1sgSϖ;-kU y sԌ8dgPh8Z{WFVGP xzqZPCJKx=J=H+VzqZ0E5"B0DQf8湏qIn47xPȭ 0 ^s*svG:sPإ}}5}oˆfsp{e}*#xWUUJMSŋx+xTZVd6B{xJxk}W <6TpGJ''dy,EUN?oB{^0=}:4IHYTuP $+ү*]E^Y~Ҵ*Zvc#ɬy׈[:p Q]t:erC gy»NJwI#cdUEjӔ|ҫ%8h"xg}ZnQV[氽k{7*=}>dkK(*Kfl۷Jѷ5l+Nݸd.MhJmf-3Wv=.A<=p>+-:?EMK~-kJ=جnf9ZG][-a?Nߙ}'?uk?ϥb%4ueOm2 ~P~09:S~;y+yzW?m/j[I҉!פo[WEqxX۪:5o'o'JHAty\ys&7.A@#jsZ>7ӌW+cq8+Nk>hHTX*}zn@b񬱶2 s}ٴbi5}F{F}'8s]ClIBܹ#8 GZ]'V/0ġJ4X2{g´{LWWĿfo7Nko7NiJ$֢tq֡״l.Ԃ0'z[Zv:TMN).Z< 5kqSZ%_@fD'!ƒNN㞵КRU.e_Sշ㩮N+R玢O:xr Lũݐ,ls[$~̳X\Ln\G zr*k[mZjY3J ^(G¡rQִzrjisY' d 9=PȭlKtή뎦-rk뎢e(m|0g܇rA0,x8$\ܾu])d8C]NEI}cg(#+S=Hu㤶d{urV}95MfS=,U 8Fw+[)+tZOҵ|7$u+œy`g5mf~_H5ӤQO\SA\9CG49 td8"ehmߡ{i[Hw%,XSP/m'?dH@T1Z gv9fnI',|j:p.*[+NךO+{^~S)V[Z82"E.~&=Şy2D<:W!k L@8=1Q#*vrƽ4lg Ld㝸sڲNImkJն|mUޞD65U*;x"qr3̫ ޯRZ-6Ǘnq+쥌[!!||g8PedG#$ēWRTu9x9xzqZr8!:+Rh8Z>ZR<ŷZ{Un"1(z)Rt쿯 NkJ*l80+-Umi!KxZiNRq2kLkͽSY֢Т4gb3ۯ?hTΠ5"AHbCr~l1=8G>gnդ mˤֳO XPvY 6̍`r靻F{fSiR)˿Ec3E1*mg+^ץi#n:VVmZåsHdz*MPAЅrkwPMukmw?.sߏJƵ_]=Fn4mSܱLU#Y͜X5X[lHV-?w qk֓&&_5 yBWOXX͆fVlV-}ֶJe>\UfZkbĶ<ֵ}GFV#2J uk]n匿- ђVsZ}ڃ+=y4i>5WG7SSzN+RNo'kRNG^4kv:6v3gHb7EQ~&Nd]F7ib}Wo } ފRZ1 8뚚|jkgA[GU978Dg F ?ȩ/-4h;%wkAqomkn>^;*=j84Ej7Rm4xw7XĘ?9Q֟a~G7;ȑ0yy2gv=P3wN zG-yTJ1355:+^ێm%dzjƜycCmFEk[Z*K[nGk?7gGhsxhRq[V\n|Cxs)EgMsK^&"|Vͬ\kk"=LEB}*γsu:68',TqNY:WO m‚+I#Ȧ"0}V~mZ+*~mZ/g#RtkaҳmWk[/Jp>*S^?Gݬajڏ]mYXYGӌ/{$Rq[6dZ+bר$x؆ZԿ ^&^MyͯZ;3+MSkZXZ(blzV_I ZJT?$i?Y'i&yVyͳsZkݹKg$}%xt+7pEst:pE5`֧8z<[O$mvO+^q]iVhY@H#cZIo!rWA#NٖRukۿo%b[ ӒhpIҴbe$P 2=aC-hA75֦q!ӥ7mmvhJ pH1TVq]֣mhkH)r33\ ݕΓs{ nR˒2?.20?~>lKҵm\ݴ+Z^2F5Gyho[yAG[V VWqwGQTCavkռ;jLHŚ\rax:O/m;yC۹^nG Y{?Z Ӷ9jUT2crd9kz%A5u\}ڋY`6iL30*u=k:ZuZqwG8NwU$lQs85WQ=4jq0B  =Izk7J2W=5k57[QY0f *-B]ĹP(3㓁ǹvOSnSّzO5oxx#2]i,7er;jD}W +TtziƂu #| t%ЎF!rߌg`s]֬7 "2H 2 5*N5*pǷ=kV犋W2Z4_d\#GVg[:I+ҵ:|Y~) .,c=qޣݵG20!AsiЩkY}֨ޑ?Y+u]X+Z:Vrg"v:We Զҹv3wˌce$27[^kR}ڡnn1٥mҵɷ[cȮy. MyͯZ]K@'kmzٝ9_lZ k[tO{Q ӷZ0n*gWVy场]4% #X]4լ7"{`ΛWq~9P3܁=+96HNX`k2lBR]E5rvq]/7o^覨kS=hڿ5x4wiڥyemjAe;|1<̚CZQfgbdzX4M5r㞢t]Gd K8\c;K&oguڭ)F&^"B̈́#9zz[IlZdty>xhv+^^M )m']B ͵Xw1<e]RWGE5R=NNkfͳIy)~s6&9;0;q3Vŝld(u Ptn$,yJҴqN)TiգY4tZ]eEٱdW 3種.I0](fEc'g.xv ^ͭ#g6 Fq1棈\?Z}Ekqְ//Lɟ˴c<~c> VIЫJ34uLn9? .fӷ|lJ%t jݭȭKewtyq=QX`썼x&L@+@S9j;+֭)+өצCfuW({G}M[NѮ`^ى1#8 n݌Vymrd/˻r=f uag{ZݜElZV^˝*^gi)vK+t 2&SXv$zurvG JQS u-bkrrHǷ$ZiL3rI=ɢݎY{ٴPVG X K^/[6L54A~_po+;p?6pGQV-;#̝I֟%5v7]"mP Fr ]2K!1Qƒ\JeGF]Z孔Tӥ ,,Wt%奿#--+Qٮn_˅123YnA_3H6WvӏLcYn&gwF]$&nW^ݰ8ջ[~Ek/3XZzO$Ŭ8m{k~p+q'cէ PM$ HH cƵSO8-b* a 檔~7a?m!VͤY 28֣M\? csm' Qm_Q{C`_vOQN<һy#k⠴׵֒b+[JӷNG PUG5U~&$יr}tyW4+\cky@YhwشN:VmٴN*&LL+Ty֥~Ƣl`}~?v*D&tY0Jxwqd tFe4*ϮD}*|fڇ8S7-.m;瞵WՖ-޵[XrVݣr*&,Dl_ԏI/OםZuK[y 221^+:ӣ5䨼ѵi5h8{?᭻1%YhaJo]8~i'kkYu^|?z藭=hx@$(27 zp9Z)%Ɨu KI tQd W6L[u>fVr>Ē[$2#b3'WDo=(Qqx5ys]=s&7.qG#me/Y7[ޢnBr}񬩻J;StХg?涭&rs}۴: -<ıFW43\s&7.q{m&X-ѥ'SLL01֢]ρ:s~i7=knors[Vs}ڹ7u vD SN>Zw6(9,<_BvX BTOF2[$ ӕ+9U{z+Z\>j۴~\+n㚩@4JLw~ @qL3nxdc#G㨮_E\X٤0ȪG#t{lW߳_nv[7\<2Fg8#Z'Q;WGVV i,g <Uƕw$Ķcrpz㞸KaN3q㨬p~GJW]Zڵ~iƩ! (0F:#:ե%tz5)Bgc I0V{u 4;t]2?ї$ry:Vmnk]Zjup]rѾ2 v5kyksSm5P||䑒ÂzzFHkiH`jӫKcj{[ Oi%e*+<^9E:iAGFd_hc=cLd]sjU.DdUц[AEo8>͸, N0xZӝݙ݁JNJ(((((((|Aynd;y0),Mi{BU;HlEg&v|WO`ڹHxZgKF0&CuZqp>\ EC.J۳*Zdѧ) Vp>b(*a?֨xۏiֵY~: -gvW32Ÿ>˨ULţz0^gWYG_~J²ܳ5wO k<:_ 5˗<$t-oY?ݮnɹ&Ërk3 ӮxVf}O ?kץzoU.ץz.LIա 6mYݮv7`qk!C4봞-kN3[ǩG}vKrNZIȭsգ5_hGOg'[ um5LPW7g'[rXMN& ;:v=OA%z8UIxeyW1jleU{qz˴>h{B3שKt2(t`C+ c\լ+b^a$xG'M@eK[n})laiܹGS2p7r[N1$MzZzxZY/ogKi?kn~G&I[v9Y'&6K㲕S y$sU'w#mݤ1 221\d1yże4%G ZKY:[GCi?n8kZ֦Q9 wKMfH)# p:pN9'&E孮2crd9q1ȢKg.-.͋"FOAw=E(OGMc1kuS[_w\֑t`Q̊N 8\QM]Fq掩REqxXG][GѤ26ќrGzb.+UfQ$/˒3QY&>Ya'/u^gksֽϹsK} р)# zpr Ǧ(IҜ!V pٝDX& #Qp?pLV2ɤR:XW-PW5ϥh0m!/OjĵrkK]$2$#l<`u>֒65]]wƴkk/sHrWi7F ?ّA 83z7 |5c9+X[ҊGTzEQ[QEQEQEQEQEk(xI,1w)gh7B8#Z퍜0kBY]Љ cݜtﶎuS" #A psVQ Z6Kge(2k:z\ש-S=H3U}^jMupcIXcg$F~{;,%$C5M[#xIäV\mFrJCLgs>Z+ÞCvrU]ÞVWQtVk9*Z"͝*Mp$!1:'ҭWe+[vӏLYn&gwF#.Q>fq({YZ/Ėۊ^GҩXqkXgt5~&Ȭ]vF.c[{}?k}v5B9>V}A3l?\Ƶl"]ccPP{5cWWgݍJ5hEfckma+`}F?!Y^W8\BZG_Jqr>gYQr8[Qp8W6ub6Qs\Fiܛv_/s5kͥ,KL*JLWh#v9fcOIo#< sV}tF|J,Sk]|;TMɜ%Y0Dr[2ywںWn݌:ZVIJ֊GP~&نH2"E.m}*/-kyKme'z sJǍ({jݜe>ddY",ׁ[͞*FՒY; -mku8d=߹T3w[*Yt>JV}*ubͻ>^agֽBp+,ңԌ^|SjknX[6&oYGҼ͸ZFW_XejRoGϷnrϭ*;NV5Hv/fs[MknkrɾAx )ndM['/ 7tu].k?7vwcT^w_!꨿vdӥ(_TG-Vo52F8h {k!|n]gG9ַrAx] WZ񖖑A!$DR@ۚTSnյUJ8\} V'QZnb>LcVwmH$:0+ = `sɚ z v-"xڱxs0pܟHVUt{jSU#/=Ѕ#8[*WӠ YXfrWG^=뗷 SE< BJHWKtw12C(Qqx5ZoִiI]! 熩{yc=tmg+M2KIH#p=k|htu+G*] DKx qQ8~Q &pzSuo{C$ݓX6W (pGc]&}_j'to^5)O9kƎB+#! ۳j\"i!E By<=xspKo!pHpTkCEP掏Sq 7G"ad l|1Fkhʮd:Wg}ks/uA墚qKʶgoEWIQ@Q@Q@Q@Q@PKh {5fi$EbsjQEmVsoэW,l?Uzu&5Ůjg'ԍ59;?Ip-\>P ͷ8{u+ՙL0(a'tQՐGw(hX q= jGWRםMe iwXz֎5+w{ROS_ _atWIcmU=>׎ٞ &\(Oag ݑ8r짯ivm&d!B7t\r7Ld8+nמ.Ec0-{An˅1p=$iBeKc0[;>_B3 j.vpQ-$y5.eg;ي6NB3[Z}[^GtvZN*yVK .$`AX)!q5^K뷹I[q=AZ%ԞxWFy:l6qN+]is]+~GҩXҳ|[m-#02!f'dqIKUS1 -B! Aߒj坿>R߁oÎJ4 -Uay:z3UJ$T ؀Eoy(wm~&9.ukqvn zYsJ %7Z{GIc] qTlfAwazgc<\D`'[Id'[QZ͞.f}w.;m2n],q1w5r_$T8q1ztsjlZμKf9/*[g-v}k7_@Z_9r/ d81V"qlic=Lm&8kͭ5ZC^y${s}Nh HN]٧kֵj́0ոdiQ\+>NnƲcwqNEd/" Cs v͟j)3/gW롕d},ޱoW4uY+^w_N+4z"u 0A$ңԌz/ԚU^3P&OͤkβAsé5_] mn3ZjvRZNαɌ8<{j.IGYMTIXRt̷Ga孮˙ܻpG#Ŕe`ܦrNYKm~h9z*}zMv:Z^y~sqQIT<-[# CR)vܲw⨦r;ວ fDr+靸6~?ϥwk=—@Y䜁Ɇvrꍭ:>k<7ͨY\=st G=r:ҕt*ss9=A4cŒ%e g#{cuy5OO]X#soq[s3}AK+zFPS-k:OZY@$kc#8=rkW]cwyN{{H',1 r1zPwYZOTezr>fK!!C9mr(H8+r:V֦QiV:R想9X]=ys&7.s?1A\e\E\ =jkk#;ƗRr*͍s{(+0޲m9Oz&:ծ.\"($pXt&Nϼq@${95 ݕR;ߑO+"_kwk$Ÿ8843S,,tv2=M9I%diq䆉[E&YH\e5^K/q#L2U2HZjsjwoo)i)+.p1,l/oJq\u*|O%8ZߵX՞F 2,l/JFibٙc0;{Tk7drIS??">ciګva6p20yV8m>VwQVGlN9!=T> `m9c24EXP0#q^oFS6}q',4-st|ɜʹ p=D#9p}O~,Eal~Jcm9ȼ;sqp8f=m }`dEsҸRKiN$bqɩu+K]i`Gaˀ'}1ךek{zUr/3%ܾ',Zݳ֠|wUӬfmt*O|r3ɷ'dy%*䆭~/ٝtiQ+lЂ2GҩۣH,rI&,qڶ=W*q/CZicf8;\A9>NZAI7,r;5\߈a+/˝ݹǾk8-*qLG_o?=x5dv`Pݧ6mŒq\w5?u>wmcN:87wSIc$jinϗE:3R>ֺ(w>zQ6N.KҾ̻׊Q( F+ulmӀ Iao*buu}ޯ4ִ-[3^Ziʃk4IO,%,Oz[?SGMdy7Ŀ3]?kwXDʜ px=lCXd{YGsMt<žs6-o4zt-riTw*J[mgU<{SrpxVt&qUN<Zݗsivp$+ߟ]6sS2ŮWᬙfI+ Gc]%܏dx?Ygs?{V%sڴv׵X)Ov3nFq^kzKd:Ȑ$6c tRzseQ>eXrvkY,5FC4Vc׊a7Z~2IDH]`n 1W;c7|;)KԞO,'%p]_˚C"9\@WAa?=jεǪiK\Е9@q/ZT*,={g3~+6G$NX`k~~Gڪq:1tD񕄓ɱDMv? Ų滋iHH[AkԴKBo3N0N9X`OuoX}Ӽ5y~}N=+5oXZ&ψ(K;B֗rAx] q[7<[œ+DHI93sW\iu5sJ8|uA$w tr)FA)hi3.7bT' {uV?zf5->[I *M|*K Ss;\Αrb#I$Qx;qfZ]tZQM]ƤygOoIo"|@'Z6~o4suv|]WP|9lxn:Vq&cg&k~b.4†"9#ѲRшq掩u p8{F|m9=x VW]\EquIca8 ktil.Z{]JvYINqN2.#k o_6R>A+~? egNsrUF6&!?S+s ( ( ( ( ( ( (<^IjM}?jn˅1p=&i^tX%+gۿs\y.y沅XU3[_jp+vӁNRIYWFy!Bٌ6<>jb˒\͌d ȥfoe238 =+3O Qda+*~K$>ٌEaiAECEb[ c$w2N6OBsۓ3Rxza,u4$ n19aYYXٜZlz avV;Qwyg^9RURKc}ZC,:@1|aO]kPKds !${#g %ݎY{+Rn[z,mבtU^m4\E0#?)JM!b*ʤ#"ֵX8Kv+d?18 I2##uwm&A-̞lǗv=SZjŦMpX!'wZFx[Ek'3#e#X3zWKa#S6c3Z7^03y<ZԾu<>|۲ˏ*<Ztգ~ҠѥaܭŒ W.N3{8K[(E ȡ s낦ұb4Uv'!A>d>r8]V\e׋Xclc,R=,ykSOesV/,g呱v$O(*trq}+JNȇ Փ֭_>OڞNşv2銫ֈhE SZI#-X?ϥtv#Pc9[׺mQRCVTvϭhvSuiX~3?9Bjӿ3ھL[}+nֹ{WG`xZ* WQAE"ZoQxxundLCqlj+~ϭtZ{ʪCr#UV2r>kW6֩L6@Smج$tW|N֛Yo4x"3d8ZZHky  1^8 Ѫ.ee/Hi\[X32)nG5g/W%uFb46\%V-D|v ]e7#OŚ[]hWkF71<啙*{zKRl&_l&ӜM1w1Qb4LM f,;r?:K)J[}.H#XǗ$r # v&^цYus*}gOM_Od*Lxv l.ObqcYzm4>eNjq4/% lF85eskk4znoPeq:p09Ni!6(î֩҅Hbu꿮mesW5?7wmPv*<˟5r[$F2 5=JXZ]uGcrs[7?v6F.3ѲϿ~,.>5jSHA3sV#a< c3ߧ)KiF#b3lM,4z+ E&#eQi,xM9Y g יZV͝, BOБcLs|7Omr99yjS5iR`[AY&\˷-xgWuoq^5l qҷl/Gɭ;k]^r2(ӡ8'8+44{T .YkV7#[ $e$PVzfҮŽ w)S#=yk'T}Q'.hz4Q6ϟC۞v|m\Ԭ.Q{{%IB3ֵZ}R miN|Rs/:QQEn{EPEPEPEPEPEPEP^n]䖺7hV-蝎 I`Fq׊(qoRyjx"xS\fGi$bBNOz[ k :}F ?79NTUr>^Ek}R#ʭ4N!hzUsچ-GQm"S$qv4InxÍ%^ȿW5}7TҥCԼJj@z=457Sl;0-kvT=CdO*V4 u~#.|?K.tKLdGsZK{]XhJ*=D|nz"8==+ 3\K^˰Xq^=Ǘ$9*O*4t_֚KƴnC\4-HѼk@z4倥9&ƻ [nYz;wh/^E7*)6jS,Z%'w ~5ȈݢkA%a TK]7V &|/T|Mڬ<ۋF0s>4RTw3**txeuȶo`liڴC5(tL:#M[58D;u=5ݢkȭb VZG?kQh7*hxP=qڽ֊Q4M;cmtn!hԎRUykRʀ^BHZ[qr 'Ȭ@htL*/h>!5ghR`22zR{Z\-^E>EkZ ֖[wh/Y>$uCQht[C1-O{}4̩iS][?ƶ-l5xݢjUTP:U7?#DVۑ{'Ҩw^nf?ƽ֊j + %8STm3Ys_ VZj%%PZ2?7L*}os\}VZcEuiqmݢ_L״QTL4*ny}=CO*MvZ51 13~igGNn=OuEck^V&|/^EY52U7<'\ֿwwy˷`$a@TVZчMԒ2#{eY,2`g<9bGVаPP4r)WdWPE˨V|mPb!mNq]WpHZ*cMGc*8*tdh:`no4m%_bM1NOSɭu#:%{RPL.cֽJN9}(MN:3-|?Ez׵ӵDk5U8&kSNk:%iS¬beTGCr2iŷv{3׽QBJO p[;ikqDk4!5:(b/,c^HO{ os5-i2yH(W [l]&g1@2{zd~+Ʃ%[@yf?֭SsSZ3m78kiGiB ֶ-4r1hz4SsɵX4]"LZ6p)z7#z^" 5^EJ¥J c,r#hv~K9 A= 𮲊4ž:nQEYQEQEQEQEQEQEQEQEQEQE5cFw`%֠,cI.ZIf(((((((^X"6 epƬ,V77Nye;~=qI  "?  +4vЪjĭ(0((((((;ⶁE(Գ-5K+E;KFoF)+̑] oeN;Ty/WR^ZF @- |vEPEPEPEPEPEPEPE_PhfRѺHI+jĸ,{blm[=0{ȓFDYNA+hi^k'ӸϽlx^7D:4`PU5f&QHaEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP?~ηil'[?yGzS۷nvq3Ï«oF}БOj{RKqxBFːO\^AoZ 8!:+Nsҧ"?Togېx#e.oKo yv@lr kR%[{ZLNB}Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@endstream endobj 337 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 800 /Subtype /Image /Width 800 /Length 31060 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +/L{6KWǽYj9[ySܿ4ySܿ4snM?r)M?r)΂̷ETi|_?|,ZRܿ4y3ܿ4DZ3ܿ4ySܿ4{HŪ*7|G7|GXESj9ZXt {V|?h# O|_?k\ETi|_?=FZ3ܿ4y3ܿ4{HTU_&oO&ʛ~Sv-U<_?O.oO&*7|G7|OD.\ySܿ4ySܿ4{HnM?r)ysܿ4{Hr?r)ysܿ4{X*ɿ_?<_?=BEShh O˛~S7|G]h[&h7|GvoO&ܿ4{H2.TO?r)ѲoO&s"Kd/M&hA̋Uܿg 9s"Gl/F˃o$J9sGl/KoO&tȻER?|F_?9s"Gd/Mg |\EQ?K|QO΃;g 6?r)sE*ɿ_?<_?||ȻER?|F_?9sGl/F_?Žd.t^~S(?K|Q΃;f P{O&::e*Ieo%?hj7$.QTM?r)ѲoO&yvoO&d/K:/QTv?r)m~S(A΋Uԟ;d/M;E*ɿ_?H/ㅥ2#*TvƋI2QL(((((((3@^i*r,(c 3E%PKyHdmQ8ԊsnZh>T֤RVJZQE1)LeZRl" S@J0*QEQIHaIKIA,(b (QHBRR@(`%(@-R))ؤ5@Ĥ4 UJUMn4%-%(Z1J pETu*\a4lͰ*DP1ž1$3/o6=~z[aM \p*DQHM>&Gk [5>iOKW*(PQE%QE Z(q!kBUq!kBܸnhQEfEPEPEPEPEPEPEPNE׬_C@^"3)i)h(J1KE!B(AEJ( Z(EP ))((ES)E% -Q@ŢQMi'-LREŢť\ҹH~zcU3[7٤Xk2}ΈfA֮Mu&%6hKAbӗ6zP)n%.i)*BVIq(23LvhZŢ) (!-U((Z`%-S(aEPES_ :y(ʆQVnQEQEQEQEQET7QY[Iq;1@$Y뮨tֱےp3H ֢('@^" @Zwz\ZZJZB ( KEQE)i()i%QRE Z)(0@iOJbRREK"RԔQE !5^yaӊԵLuyoy~l^Zr[]Vړ](HZ)(GԶRv(q` ݞ1펿N[{B⚩6#>a–R\QE!4и1I#6 RRՉ9:Si?ʩnRmQHDb(0(QEQEPRQE(()i)EAKF(RR@_ :y(ʇhQEfEPEPEPEPEP]N;yl'Kv.1lx~9g>t7YI`Nr#8<+EC*"*PFX3#2~UkVb*EcxmwKcDZU@\sQiifMĤ4%%S4M zV8B9fHPx97d2.KMJ)%!45R#HY{+E?R*E3)GkbG7ZR[s(rQEYBE 4:1܍h8I+QZ() PM J)h)RRP!( ( J)?ʚhm%:PRpTJu%;%QHAE%.)OIf8?Jqظن(mia1(B J(! 1 SM Rl\jà` %5xqi(y(zZУnT>#B(7 ( ( ( ( ( ( (1<1"֓^P/-i?+N(%!v#xbp>VxQa˚r TnVCqԛ4SE-J&ESZ( ЈTQx4Z-QLLQZ*X\QEB (!IKIL%SRLE%QHAE (RRS0X%RR$Z))iLSOR&) ?zgnySZQMr4JcqhHM&;oURp;*"BR"DP:0+J.Y|6,JLTpJ@B4Fŀ=㣹.7w)mC ()i(E *!kB_ :4(p(((((((-i?+N<1"ޓ^p띚))h11@RRQE (Z*@)i(Z(!( E%-P INĢ3RɸRRRR.0RS #)J;))j--6C; uQ]6"qQGVk[N# $eȒen8Wfe:m^Rj;&I)wcB[?ʘh_~R Ven<WUDWrӓyoܯ'r\REU˸QE CKIH(Zaii(BEQKLbRE1-%-Q@Ţ (Š((_ :y(ˆQVnQEQEQEQEQEQEQEacE'ig?[VsQ(RPKIK@ E%8P T\m%)0Ju(f5I!NiqC̤>h4X4QHh(3Fi 4; C iXeC!F}yZJbܝ9{7(67f @Ξ,[{RsT-(B?CY7_XBj7ujCX;3XP(4( yYSI59KYnyw)i)jjE4S4Եr[!(3rSQV0QKIKVZ(1)ST*G)h)h(J)hQKEP(EH( (4ZZA< iR⒨(QE%.j{GO5 ,N#1P~:(:B((((((( O ȵל?@++-?+Yy5&) <ҘMfޢNRPi((Z)(1rfiT, 9٧o-!}u-9#]@Pqγi"9w1!ZJ(fN)ie"0JzTS\K oq=1VY3NvҔS%5aG`4*<EXi :\dL891Nsh3m())EX)h)(im+ QZ(D4QKVa(!))i(,J(BCTPxKQuER )iKAOQM2ҸQO+M" hm J( I-'T1E*I=* ֚27i$RJERұ#_/wlE#8#֓niU8v hHi(%S.ERRR@AZBB׼tT׼( ( ( ( ( ( ( (0|2VzzWy 5΄^[4kRį`vp6jV2WrQ?4KAQE0ZiqA\RM)6 (b B)h P)آQH)EMbR QR%P!( i)ƚiؖ!4 ))iRJ4; B)"JhaVMŢ4fNӁr)iy"8Fjgcxh )*{<Ȧ)*p9GEfW4fFjB2I &,B\^UT5eo-Ve%H8 GiY0%;@RrIjף*aM%CMa}&)Z ȤUj0)¶]撒4 (ĢJQE-RRQLh@QE -{GST+!h?_ :h|FQTtQ@Q@Q@Q@Q@Q@Q@oJ8Z3"ޕ^pkt--TZZJZB ( C Z(ZZANv(K L)Lu!=)hͰ4ŢHiiKb#)qB3i0] 1 D4kLJ覊uENN"+Hj:yT*X|[maLH vq:bQҷ%:S# {N\dԪj$އڒAjњmԲ;bvx $~[J6ZU2sY%%8=S+TZmdJ<?JeUDUO?ף\ٍ&fnik6˸QE4mP-S4R0JèrŠ)hQE)hbIK@–-RREPŠ(@- Zc ZУ!kB.EUEPEPEPEPEPEPEP[ҿVgxgE'h;AERRR( jB)LJJ)(\ž5"0ɧrZ$!Ӣ0O86EcSvfQnCM&͐QLfóJ5iܻJ1U\dg!JIEq@ni&8sSNfURS*sO\jW")i -!L &sRj\Ld@J V>ney6yJ+uHws:"3QNRQE0j7 4w)2S;m9Ea5SՉ+54:AKT &)آvq5Bn>Hɡ1E.(hCN4UbL4M4dKA)q@VHLRO!@yv1bSFi}#BܘLʈ)qJ5&+HltE1O+iHji)M%+%MKL5Qo5 mRI`2NGfsQJ.̣'k56␊HnxҔkVOA %M5RM9~vw<,!ciݜsP?5RJ*&6J( %-% LR!m-]+ P A^Q ZB?Т(:B(((((+WPz2 @}{vZ@_](cqjQEdG@ eh=פ_1\juKIE1C@j&\ԦE-;HbTqE- @iOC1N ;)š)¦ıhSH?TR\QP( e8V)˜ HCM4L&&45ť Ia1F) PEkAČrTqߓC 摚3QL8ɲ$"MMΑq)j)X2G7 F7R<ֵ'26OsQNQI0t_|=IOC3J45r)THӺ+*pPV`~[DX;M8^Hx zWE9N3[IwsLhw#>mLek^ә_gQbSy9@l$XS^4&?3Knz9f2R-Sw81y&Qg&Z uJ|Œ|?|Y!FOSXyi1SbZ#R")VЎ]IӳL1))jnZ Z(aQE-ZRR Z)(1ii)h()hREPRRh4--*QE*/OP/y(OFQAQEQEQEQEQEQEQEssJ8ZU4@X3l(SMȍ6ƘM+c)E34iLFj@ 74WQ[[H %OٹlcR\BƣK"WDpsʐi7渡STmڻM&i5.Fi5h,JE* r[A+'KS)7o\&`.5X"X`sҺ[kaҼt-[oEtJ &|KT*f+ɦ4 !UgfNO3Ip5goM+s(y$!pzܖ%ۆ?1=,+#d֦HzW&e^i-cpjь.h@S92 $P\4dW!Z2vze}*n*.^>eBiJ:3֪y_U7!<4MwS%F`ZsAn1ޮ\\aFzxh); xW%\jd?5y2Abjr*GoG !c0k|~oSGm_z3kַ̭$Z8pjG6j I8=M rQnJ qk/۰VHOkϵKgiq¾&Q9<`GQi9'Hݏ?ƻM6夋$*i[F9Y8HXjA8 f<]F5j.W<ոi3J+]0jk87M bxUBFF)QkJQ&KLLvhɳDRH)še$()!hԲKH)•AKEHQL)3IRfiEZE.(EXJ)i)QE% I!h?_ :y mC ?(]U).tZ((((((((<5"^pYwJ8ZfgU#"jf\ ǚB4f KM0)*0ih &GJqNe d\Ԛ2G-ƈ#y;n(T9Hg[J JGSsJ F ;5Dx4j4jEȤ!ԤKh*FA4Cݜ}Þڰ' +9-0y^5v0{p1ڷrZ[qV֗;/+ԁꚽHW=JS*X&Gڳ[ЦH[A5/b~s&3=D8RW\I4fIIp5zr>MsJv5+O0ZJRqE;ІДQHi؆Hjhv%ϔ5(NT$0x#S^e89AO")HM"\C,XX+VXeY!ƫ\Gqҙ@-"X4U?`+7"6iiZƌJ(D($i+b#ug A^Q{I{4QEfvQ@Q@Q@V}g4N "COТ;2\ٽ3P*QEQEs?N_+Y dxh;ל_=بHRHJn$ި+0uÚ`N75#aAM*l[4Z  86*<њ+wH3FƢaZsicH{py4nZJ).h!M–N&j-7o51Vr1fli5JEF•ƈsSWqG1,|RIߚ#ZV"VFE\HR}=<'n tZx5{C\c!/J|IOiEF|5oظklJNlFȪGSɹpjI,3Nc)w ֨4\zUGR|.ٜcFUsW #V!iqK  TP"14%m8hv֑8VF[úEg<3zShy\ODT.է W ?R9.I"*V֠pSQ6VzuR\:3jK}+m]hf V򚸯/SL*ƣOWRH!=^nK ]SM;vi W)!ҚJv3cH&-YF)8sh~ Uk̡z?ºhe$rjfb.{*5MC,!NsXŠ(HbhVW4*⟊1NAE:Rԕp)QIK@BУ/'?QEAQEQEQEa6O0f-g9u+ԣQ\/HNXlOn'tymy,4-&>uL۪3 @70*UIGo <QpzYxLd.ZC :+3jޡf3*̝TF}A덑jkuus[An{ ]FlQEPEfw9f+4^qI Ȼל_l!N4v)1HbQKIHaI !4i%%:RQv(H\a\0CA4h pZU*jZ!"TNxEңJ眹E\Ug5=Ӆ5E\)ŴIrJsRkb'U\CZc\\nNϔW5\;15\71ƭq%O=j32 ^ojpc.9 y]^~khy<ԬԞI?Q-aq,j[RkKcpjn[ յcr>Z[V?8a;qu[crvⷡ~O~cinI4FhOQScS_CFR}Jk>*yo?5PWb+98K˾_kٕSHX{;@d'BFntb ^;ץh 1r*y G"*F7eRd>Fêg.K1errXֽs7k ?ZJR-M@{V|1ƘԹ49ڹVuYhZ̙y~ռg˱CibLdZu8nh&#B(:(((((((_ÿ/i+B<<,g]"hYh>AKTҊJQ@XSM94ng&ʗdU%qj\_Y@~tϮsRƅhhꤿvܘS5E8Q`c(4gTӃb"%aژq֚"YH컋;bOR l"zWLy9,4%JNKvS0*eJs4t\8RR؆<Z.KDL qO-Q9tӟ(3>X5+EI!qN) s2qӃ$onY*9$ȨLz5+6k>t3]dvR\dUbʞJQY3:-ا,5^Gz~+ǘS$U$i.r~DezTLqX&>iI2Ն9s]vGVE9ZeZ5oI. B$l8cUSsontVuT!( `r(8NjzNm4ғM&DX 4 !&[^y)'ZM3W6|;fXwXP rDchp2kQ$6;a(Ǣ%&4f0 HER  ǚ!`Qpۺ4$_ A^QԂO A^QRظ|FQYEPEPEPEPEPEPEPtI9㢵U@M.t%-<7SsHMR3P0hbR4њj6M5W)IHfIN4R0&i M28cQJ2£""E Ue+Ei)g;jz҅E{p1o̤-S+f*kB,ӚbEuZ2+|q XD^=DL0< W6 ^&1/̰yoγ*蒾xxVG}fbT*T8CV<ՈJ[bR96 20jKT3:d格$5aOcԽ&l g=i|zNi7Ջ\eʷnڦqYP^jUZ#V\ZER*TkRihADӁwRb$XSR#lVRǛP F*MVw5QJE!hM-EɔԋUD5:J*'+;F)8fsdRRCTXwSZSUD횥m =d;sOUA15hs$#ٸD4Ri*a*(-{GRQZB*EVGHQEQEQEQEQEQEQExoE/hw]/V#lQJ(L xL~dU{VnB?ORs{ؕ))"OfՈ'[4R ZD )›NX=j]B@ 76)F[pLU"7TFJ)qEbʸRQHCFj65]JM0EX&*B)fH,HZnh4  mZ)DIDƩ3e=FdnLN^QUI j 7)*́Z2%f^駫5T\w֝ӬF98ZlO"`y QS+4li#J&u;#~k-IVɊKjqa1MPj 8n+DhcJQ+`V4@vCu6r⼜V*k:1zƨӬ6*AZ$`UvZJ\R0ڴFPjGwb'L籭IDzW 6fݷ9Wy@Y,n*O9q%gQ,V԰WO!5n>Kia41Z .Y:і^h1'z~bf {UjRp֔`͝ˏcP#SW*(iUZ)*2F)am*`j1N/R?4RQRHTqZB/L*EVG@QEQEQEQEQEQEQExoE/iVo]/VbZQM#њiLE7ICe C 3E&h4N4!CHbRPi 1sFi5hvCECiiRL&¡s\Ƒ]f2Zrkx+rh ĈiT+ILTփ&{UKwa&nMM_S.K\܆)jpj[,o-Q4dǓMċJ WEH)⡎でL4҃JıMIpRbREm!)Ԋ3IqqE;HJ)i(((CE!h?_ : bn۵h}У5#V((((((bu>KeDT q92<]-%_p8cWZMv q([: TeS21c'Vf {0gP74@k?_.i_+DIF8H}UQKEN_P,;{騴* mpI-?:QRp\[Զi˜ԂLZZJZD)R pb[GY3i7-3ڭ,zS씚˳9}"9źy03kUW3Dmwu(b)*l&=ju|*4DJ7*U1jL+.QBӀbw: pd❺c9fzy4ƪJ.$,)TEjE5C 85C5+6i4M2b1ڞiTJ6+Thd|O5v~딟Y))⡊Fi)Ұn P|2Ԫ* UCzsj SbhJJSHhfu4I\MVfUuD9f~@7pEe[m'ÙrI6Hae 4ҚcU ]bdXjXqK[<蟼pCs(rpwvl0Td 将UQ5넟TS-5hO :S~. SZ(s`(((((((Wy ۚWy X龅]H!R8U,y>&${dzU,/JA%~NXaKIK@V%+`UyW}}jLMia(rKq6kq)h\!٠nhZ )jRJq)i(;4f\!X 0u%Z "M4ZISL&asFi3Uc6?4FhEIi!j;;Umo qVclոX図dZbٝ4&) r+H8W'VVle$V4M#yٰB%<7 fxWJ3=g!GJ蠷??k"D)]: l𴸩1QJ6DfjR)j-2r$Ug54nySQ43;u%Kr|cu~H 8m0I*ǯ#WVUYt9#N$}lȩ4)XayUڠI`Biؤ'J \’/M*1.vjlXvj2i7RfHŠ4KIL 4}&)f# p$ K`Ef(RR@6 C^QZB{J(6 ( ( ( ( ( ( (9 ȹל?,g\ҿVQҶaRKI@Š(E%-0 CE!IKHhQIFiRQTIKEi :hI U"Z`4Z$  4RbMd P:qXzԖiD;\!R*I6tSJF }:"XWlIM70S@X.&)vӀSr!hUHǾBF?*VmaU7qYTR 7uO[\ഝ'Q/#~PdMvu$c5 L: =ۛ+*ԀSSlCqJp74B*fEnLQSe=UUGqī]oiClmA5 j+CqN\g Fkb2(;U\TS=jYic|OUY8'rRi3I,g`4"8Tܐ3M$Z)(BE(Z@()RQHQH)2 A^QԘ/D.tQEblQEQEQEQEQEQEQEssJ8Z54@Tu-)J(IKHiQHM&i )h~)Tha4fm*4?Cjhp,&-R$LRO(,.V /&؀ބH+3Y-9]$=hߵJ[uN QTWd9H8Vcb 8T\@E 犈 zDՋNųP!h?_ :~j8-{GXh%EVFEPEPEPEPEPEPEP+}fGxl9ל?Vt:BS0QvOE4VփqE-%" ZJ3@fh@!RS(J(-64J6IL4L斂RZ(Hiؤ"Ii4WiqZ%pjȟ4*٩E :-H 4SFw+?1Z<^@FsϠ.j(柵pC- -VV!ZzIAs\ДqT)@PPTjX\0LI"M)5dESE8SE8Ri٦ uH---Rii(!ŠAN) )ZBLB׼uبjQEQEQEQEQEQEQEQExkE+iVo\ҿVYҶZJC@Ţ4@QEQE!y3J PVh[VKIKA!F)h!1MaIr5,/c*!+4ojZ}q΅P[8?s]HxKLw)ib RXBF{t *kuF҂wGi;}zu4dSSf5W6L))i(i!x넟tMաy?(O)QEsQEQEQEQEQEQEQEai i6QK )!@#[y~+Jw/M8OLE5+3,N?—ZtQљxs߇ ;d@-ҵꞑt1L]Aqɣ=+?IW? 'ZQ.vfs5^cO,7;ʅ'tos[TPgt ?IӾҿkZ|~љ?j_s4}IֵsR+I<O&hfXOs4?I֝̓ri>ҿk^|9ّW? 'GWy\4MkO#!$+y21*wWy\4M[ X$VRBGy3CE;5fd\4M0/i?٢dhi>?I{F;x7? 'Is5E?j?Iԉr,O&(63)oi afC8?§X$ēѷT r8eyy~(?VجdyO~(µ1G?Rn}N7`ѲLGZ)9 (aEPEPEPEPEPEPEPEPEPEPSd82:'MbKwPO\2)7.NSSgP.;wo!_E;NF;;G_zЪjĭPQEQEQEQEQEQEQL"f<!sL' O((((((((IJ9piPEPEPEPEPEPEPEPEP lqH4TQT` }QEQEQEQEQEQEQERu#hbh `caQʞ-QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE+p[&sln޴ƭboFvsç58088wt$SZT^5Б$<8j~F떱B%HD!8bv5x+_˧[<]P(3/ZԶIfVr7{Ё_yEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPendstream endobj 338 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 800 /Subtype /Image /Width 800 /Length 85616 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (#+XyXngcg>YR=*4֒ČO@~cX t˅2,!73D㜀$3/o}sgo6[NCkF703FB;J(2Oo)yw#g+ƝmryI* @'Ԝs**Uhba_y\U 4Hw\^G_MR hw  ?>dfF٬'s 1$/S~?W7*Ӽsq,EW*.A{̉2::+ ]yo£k+K6tW0_H34."`9$gTFUvW^>F~+>_Q?Tbs9N&JyW?MisA~##Z^Sx yW:mF>&kl_U-IlsʄTW(?]6ܼC>_y EpV*ԥʃu:"a,h\Wn9o­-u_)-ƭ i45텵Ⱥt3DcjdBfO7V+-ó) fӶsVnITVS=W* .nץ+J^kNMLpX\"?!"lj58o j Q^q/5D'G3ά:<_UqJM^=:c߱MY?TyV%t_yTWyzG'u\ʱ/Sk>W⸸~R+?\q RV#ѹa掱a4ڱUͱuMW;&Uo|C,~6\r=mHn2#VIrL0j6^S*lthQYm$^S){/R+~DF_q =͊+ Pv._d vtTW,_kt WԚb&5P˖!Em\\?H\>z׳\knb;ԑnXZq_S<:u2F}>ε5k`Wo^b}zBVݬdb Vnu½ɭVĘq*Jn#) ):HC)Vֳ$ҴŒ8xGߚ5^C\52VOdz~E2ؓRM'ZrOWmHKOĿ$FX?'V]-󢚞߁9TO'Vz؂ tRRךrwo4tZnƾYE&s<{N+k gl3ִȭq]q\ǫ6Z)k@250`c+ʫ4J5nSCXvZO%UXt!QמV!-ixmѝuӷj݅qWWPT3W\dPjKwXrOIחIyu8xXq`Ny8_sM$ mtrLШ?^TGi.b?QH7~PPӼ}NS0w;}rYш"kHO~SտӍv ?(;ՆpzכZ)*#Jy9f$cOsX|Һ avS'^d~c ]&pUZ2~5&"|$۱,Zl\xFQ_EF.HQ枱fqWR PgjYB)!t1,d`ϩ'S Օ/%Fl睹QǰMi[M3mY}h%}Mkk[cí;U8#AU@𩧼fڋ$w$TUxVf+ j$ F?5qy<ַZ[nȉ$}?ZhLi_mi,nNJ?{khIOY++id.mñZy,|Cwc/XDn6THn'Ws7C "c?")y$jy6% w9@Vz7BgUj8H-Z j.2;URkǫCS^Nqȭp?<"<'KSJ{kWwQEuLQEQEQEQEQEQEQEyvt{#wA >>/G'û~h֛5龑(AO_EBtBqjYʪYrQh!Ty5VhFkҧROXvU93v~qFRi-HUqڦAIpMIQjKUVO5q VҴo/Jѷ¥sVh2,GM9ӢA'JЅ>4yUfvR# կ#?#}Uxbsjy61~ԗwl Spgk:.8@8\39=EڲMg-p4Ȥp~Mem?v;yU?Y2'D}v趩olQu.|A}죹dp5dxn[-ðlq9|y&-ot@/O,7٥wsBW%H7R!jSY1:I53Q}b#EЀR2RcWZfnzU 7'Z%֢v$Tax`9-^=Z9bywQ}f'ٝ;,u5pHQxQYkNUdyZaZp$phSɯY^~+ET~ҽc.prr5j8qڈXJkJ2P+7+(&iڹMcPIS@"Ja֮ҩM޸yufJU!:T,yW\ O!sZB|M"{h9VҮ+֡"7'vLzR-?H+WN$);T1<('+$9*e<S~V6SFjzV5qՉXugҙ7p.%?\`\A!mʼn>ҵV?̽o $d֌s\NpXѷAߡc֡GGni[ÜqXZuʼ[(碷=k-v֧]]c#()CnH1:`]:/Q2OxU髜jVcR)HN,qќb[)tLhTmX#7U\3~CjPܰٔAӎЊ<پމcF,f}N z4[-dUQ3!ܑ\w>7ؖ]Iv}ѷUnЧrjG>F[7GkpJ<i+..q1Ii1+gKpGݐzG]@85wQ;JP{n$ܤfoCtV(1%p_5uN)+.;fsaݎ jw{ZoO׭[kkh||.6$=l~iC*a3[\j۷AэYݿ%UEzL(gQ@Q@Q@Q@Q@Q@Q@дAGQh7c+O RX$ 5njTVGB eMP:Ԝt满Y#֣M&*XZU:E"6ZwSLK(((((((:|9($}"8*v{dSɽfgv0$^#*mċNXUe*r-P+EVǽIY&E9eu 2 ˓֟l{4BW?ZgR^j.M!ZJY*)%z$ux VÞ]{/2UWf霚mnX3^Z,:wu#ksO⡴ߓB+Ӟ!84~[hZkR:WZˍ{ ZPDVQzW6l\*LQ->9CQfs)2 *QU)(<-e<#kcƯ=lg\6 RH3RIT ^ul;mFɭ;e`[\dzVx1 Du7{}O^Eh4z4nH܆*]*::?3Ms132.VЬ8i{B_SЧn8%SM õ4˫-:/-ڻq]LYϲ׳EuƅTZ-r׉BYmSgYV+]4SBQWד83+ѦlSqϝYsӭ&gVRr=' jʖ&dno28NJ*j̄c^\Js|%gfW"/-Ns(O_^ C:2/ŗSJ%ugՍ,jFoײKf;Ң.ROֳv˴z j[ܫWF|Ip7Pg=Ov:~ Xxq'\^rT/޻.c}~m)s M'g#VR\(T] ⥚#,h8zj Ct]ح(vȊ0e9yuq͝Og-}eu )Aeg|Xz5F^NMXjޛ6q]@yzȇU=1\,uDsep$2UЃNEz%|TK"G1[g!c 7OQpGYށQR O?Zv:6\qU&p+&-PO֟-aLVE;RܼpME֫}X'x->GXHE[*U؅iBLɧ'a" e"Z" :WOtwad-*x8=ajֹg 0Ve/*tSPjHQ;W-IC̞S:䆷e #BuM$4/ ȲE"tazW'uɤIYOkgWXGVCۆl5 wk+ txv"S-m!PxĶ Ң00ܟaH=o]:&C2YWm$䚽8[[/|trY&L|@8ϽsTgFwfyYR1FAѲ9vYB6AU5z4e&N*ek;. 0*\)-Cw5$fGms gwTr-AdE{s6v=;=Ķ6ږ-ğ&c 6=+ԓ޵RZ)CCѰ׳& =GrWo'\x*#~@'WKt4!S כlm8@#MWdpf7Sui< HԂx_ #\$i]VtK@'X` f&sS]7oU+A|棸~Q4S¼YR ƷnXVlǓ^+.[,4le\3Zn5^^.<V4˓~ OJմ_kVPЍD2K!`5O a=8r>XǢߩ\fk^'#?@+GD|jirD9¢'T0dY?GOQ*қ)S̑b܋ iI"VFj kn5!ǔ/QrOrL$ ijB"`kijL^Rmt`Y&3Fr 7\:pWx"b\s lՙ[jqzH)B"SdЧ{_Q$/⹛"r#>_X/; (IZZ^ (Jrxܧs1ZxњRfCS ZvJ*I 24zimsǻ'eonV/K es _;z鵇JR՟Q$ovj>je9i8Q4*^P!?nьJʍq8q}+ݙî[Ґ3[F+ҰVpkĖNW>gE3.KyZ 1]?^ti#PhX4oo!|ǚei0WΆFa7n'޽TQE{EPEPEPEPEPEPEP#3"]1T~>/TNa_!p?^mGުYT;\Gw`{ѶKkxa"@^V"}U쌱fcUl[N*ܭ^4%+UhsЌ+-ԭ< ?UDqɝO=k4Zb[=X5Ш=zF? ^L`dkx5^miVe5k^kЉfDr#]q\(*f'jK4J)Tq]RcҊ0$l-Ǽkb<]<hRsq\PEDLyXw*dS7D_JVt66a |͚ ^9?h- CN8J!\E>wvz|=*1VD54qWp|ǿYgZHlȈF:~afŃWfMndvZI8vSUօJǏV} <$--"zg؂GOy(d~@uaw@,e7 EVa,KH_25lY}Ϡ7[v|Ӹ\y==ҽNF9EV 6FN~4}Tʫ֝7E}&^HTyOO ȂZj9ɨ<њcײԱ֤2jo^isZ.7`9U&PqZE:ே8+#! ڨ"OZ&*Xo`5p&3?r@jܰ>&?'qԖ-m^}=)-Wg5BS׳O).]ۈx|lȹkTrG,lЗGlQ]m&G_p:Km>8r-3K.<ؚ T << >dwWYc?u VcbD`g?V<ΣןRVb,g-0,?ߑYϠʵzfRp+K9vytո]EŹ ?z)ahF&74q/QD#~n..=Np?JtvᰄHvƑƻoI^9#ЅmwL6],,ЫJ TO;N5ᤷfQ߾=GOZu ow y8T =YAʡG`q[in@#A:$> #4sPl}*>wO]1?JҞI}4S}qǨ5 w)rd$kS$ަ+A &cY .1(Hhaы$ MW&MW&ԑFHhNjxcS IIs(B>kCqn :=ꕴ5j:mzRx3UuQEhmo$p!v>dE]f8{n$]KGK\Cemtԧcȩ2m.0IoUzԶ̗G4L92Jb91k)? 20O$94۝Bu}}vSnE<;[lCz;qԕ5lao/0ZiR}*g+K!ƃ *ņx+bN>-Aݞ] CYh]aNʼQ ,|W-s4m[4OAG$ E7 o\k+5~$} :kuZ 3є~dWG\Ep$_T`Erk>n/B9&Fo\-0?EO}& F`D盛 =]# WB;ߙ5]Tѯ!k.lFݼD8#l'Z*::CP֣COSq>jU5*ncmL,3ʣ\>ƢPu; enK8@8?=z/h,Yc*$p fc76[} }H3iݷ*=?\S˹J4ݰ*+ <~zmӼ)cQ>5[KO;\*)b4qt~yTD,5;gG$zb4e"` 02?lv۸ьdks)Sֳ5B:ͱsJn/z'C%[Sԏ(+Z+דxҨʗYW1nkIWx\pësw6 kwROoo A]fsPdjر-O_Qh ~z6A<_E 2yX,eGAfϭjEflۼ@F:8v<ןjH9N|[[w<OcextwH='̿1ۀWZ: Uq5z):+P0N2M+5,3H7j1MtJH]{_z-zq|֕έ{GUٜآ+s(((((((=,T6pTlaqkVk{D)mp(?UZOyC 8rlګH;"$pU*JNV<JktOSaT59̃HP}ٯvil7Vc~7K\Uzp[1ȥXgcv6MJQ,v"̊ZlW36PI?PD+V6.gt{Y RZ*;)s̓Dr+6Xϔ0vI7/цH*q\2+M'&2sP/&ԎPк`fOvz Y;^ TxjZP3{ ?K[iE]6BqSqP,9%9!.Pcku^}[:*oXck8 2_a?L歴(*C dem&}^.%&XQ:s\l2V엑8ЂҵΣIw0ٮ9L*~9k1>3ZVܚ{ym< i]E"ާ]hV9sm̊2_GoNk%IrAkn\CzuFކupmNU3gzN$d0SvL{pM#//AEVW>rx~FijE5DW$*+ml0[SYv@kDہ5$]nmN.m8[O⺉,yIb}Fm"Y Qr8ֵLv\E"{ߗPi )Vfw)qmsu>85Zz*tQ?lY&ci$eDQf8}jϩA2eVkwV FFSʦ)}p7DNhUwccsTw:[h$osr?Sf?]똏zeFVRmcRIAn,9y5]mI6 m8SG"SGZ4Z?'Gs:6nQEQEQEQEQEQEQEQE`kE'^j@}8!qP8,*'>BUe^y֫Ƚj\̝x{ӊþ_Դ LfzcG! H߸ڹو橃Cpti׋ QP5ָ {>_+{^;x{b?~j;\LZַ.s򽏠x4s}n7r5g226xG$HS2tlY3ޣKPŕD8d>{cNmmfubx{69d2WLaɍ) ?f xE5DP `P؄u ,Ӓ2TXm)331f90=߷ӥ3$'u&K" uÚs*XdNި^ٹ]%{ ۩iBF!=w`7X^lgw@* 5~^]P@0봮scq׹i>PVɂOR91ׯ\WOY!# :O*iiCh_6:Vb~C6 8eTRnKid[=ja꼕\2¨9 >c\G^QP3ґB>Myû-*"BkB (bNr.a@bezsץNN8w:lcPHjFqPHj%J=Iث1\ ]Tf^f# sɯTͺVoSU,,w!q' IaK5a#g]=2maׯ@H ҢMR꒹ӆTsirCStK#bc Xt#b&*on}E CkR5^ҍL?ճ ᚺ\jenWj#B!V&56ᕆAJʞ9[j"S&+6ʀUʠ$1޼ZUtF, UX[ZM3~fU3,r3+8]] RX4UsO|2:8&UB+(N8O)Zљ8ұ#;UQpiIUQ 32I=eJ~ҾCN)>p? V E9$}udkk3ӣGߡ-ǽcpjiP(bQFQw+fWRO5qk?lW/E+4rs85#j?Z!2)]wEX՘S,u4qʡBg5 ,t&DRf(Wx8Zf[l4F V#P1\ɻ𐷴O8[̸I pa^>91UFqgluuv<SS6,<6[b(>W̏2Ɵr,z=<ܯglm,㉘3K'',I 'pBJ|7C \$В9^F?(N(((((j7Ks"`|' ԊmZdZnΨ^;웈GBhf(  ȷל?YoJ8ZdcTOOsUj19pQԳw/ ]Xk FᇀqWa#U > $>V*)i/J dz9{- he#2?ױ.!XUES*RF9%*s'BNj]؈qQ/X~/9@p X"Yauxۣ)4\'QowO}NǛREdFGPH"TQ+ #S2ekW%O(1ԚmoV§$IWs>D q+EIi odv 9PG`ܞ:԰ ik r#P7{O4T^ߥ2Q!n.bEgk:]NI--&WA}|ߒ3)bD䐪$BogI\B^ZߚKU Fvx.T1kؽg8k(7UF+ԡq>rG7cFOJ΀W=+اцbfZYA]1s٥ kTqPtI&3Ue .˝벝.cn3]'|UypXچc}]a!]u07sƩ硹-OWMIQ:c+p#8f  g"Y8!Aھ2Qe-ͨ/q0O~b-%p[wִ 2~u,[-B[P=\xJ]B8NdUZ[kyyѬP J`}BQ!ymi{h8<7f7p~cq>+<]VR7"Gڥe:0e9JgVkSTonV c'$ʽZXg=EԵ8<*ҀMs7_jvÑ~ŏ-Omi\ ao[zi]*QXBr8 V#CgŽ)+\^"D-rDʊeawJZ;CԼ#cm X#`AUn:E)c"pc;^9Ȓ3p?!ۊwPH0aK`^uYw.5:[]JAUV7GYLAēR/!`@>@ zT&Qmvp3z?Sf`%zoSԸ_\]tzϥqג޶swG`AI]H٩@{oﺖ.il̽=*/5=;d SF..E vGn*NkПtR|BRϖP2m>@Cb æA˝-?c?ɿ?zgҡ 3kaJV#b:aNajEFiɚ)nn;zb>ԥ\%cER^-~"OG 8<)zƻbNgjUq6j=B)$m2S' j;t"vb0AA<\5j[SKjCxr)-jJA'3'b9eȪ ?$Քw7zLۢ+9((((( ~mt{d9&%>oycISqkhA{IGhep˞ֻbzPđ5MdB GBjB]>y$g]V0!EBj@}GSzWy a[E.w WD (\7x5j\n6)Q|Ğ+f$Z-~f\۪fԞѪxca"{'qoJtSu=!Up-WUР$KU*\TqXr+'^օ+$WaމMԮo۸$W6B@ycG,~rj2cȷ?3^uX$yojdikiۖd_~}YE}ip Fg̣̣ AȊoY rrea-+ΩyUKD|]jJ,OS>no|A{ǧiIb~[ۅܾ"n´nZ \s)톃yoBRn1ČrJjq?77WUzsN)mmhzh?C3VdNayi6y֩թRhUwԱjj\IGxJ-_3fs6DҶ?K~@ZoWC]gݞ #EդZ:b$m%Dfi+:h}on0o6f$ $[?NѕJ,uJU[c[B_yuʡdd~}~*䱸H/VGUlx^%IAsi#JI XW}Y 99Cd}MAuZww[(Th~c!Eu\2qk< W Ӡ>TV|6vʽQ.Rz~cַKx#?v+<"{tQYjJ0TQ$iEOm۠f۾O5,lsǪ8F{gn3}q4^'O1 g = *"U +QY&D7JdH8-ٙV@`+k~8nRKB ?UeM1⸉4Cc0뜂\佹K |q$#u9/S/GwRi_S.؁:N*oxkՄ͸=PJV\k 4l:WguQ~Ӧc 2>cwŠcz7Zsͧ쎫F8㤤(evZ3+(j/N_tEAdJR꺞|4{cZ:Uo칬m4g?Qެ]Et́Z)Y dWA[c꼻'*9+Նt&ij64zmIULFSRv8WEqt \{{qYjW:zbPvn<c֦'~szWV.V)cةE6##ros6=jΫo,pݻïJƉpO?{x d}07m~(ɪAm` k йjPؠZ܃ 4BXix >|Mj,>Dȧ SdVժN3B?"g#X*kl*$ho.T{F#Ֆ"Rv#qKr.;wf11>g .X™?v(q^y 3EK{7͚ dXya}4ZtO3oVe.jzݙ'm%AҸKh755UbJƅ3^F8B6LSea;V^9//jMflAGs7p3³t0X\sĒj.!x]ȥYOpz׿J61t,h4ɝ6D),MCetخ~C-wj$Fg[ }'5a("q *OzŎWWctn]3t?Z?Wwg 2RqU m(l\Z͔Sk=5Ps{i5vT!sjȤtU̮ȯSjI AuHsp>ҷaiW|,$<q?PHj݇d8rN0+ƭE&xjeVEyI_F}?>#k~ܱ@<];p'0[$H"* ry'>Iڄ[oyx6b?5_ʸbJY8n\Bpk3yq>mlvwOǭdrƐ !9*U q5 NץңʆH>pކDU'5rIct!9$U,q ,>xs,=sv9X:]#^0IXO_cҺ]<a^:ècvyKeAn]dD&YϰRx~{R-ӘB"}rF{m@~P# ^JcMs2_QgAjCGV}=|*|a܇k]0c]xd=TǦ!GZ9+58O?=+c(Ar\Y& TVAЬZm"B+5&z3ŊbKi~=h]2W8CqP[c|gTV\힣X;) źG.c|@OԤ`fI\Ke;F op9sD?uh<i<}zTwQjta$w 2Iy$nc*w/]2 U⳷gĘ?n>; {סJ1R_T=` jW@x |ypˌdjD*VT&V]u᜙̪9ȆOF$X#.ia#Fp~eW%zV-_RaDl,( ( ( ( ( ( ( (9]"Y q A@IikZm-qiv,11IҨ`=9]|3<KmPm#*#n\6ƊQFdx>jw)P )g[{ؚ)i$>{*>󎁞A&B:G8#[FBM9?do5Ov["Kqsm@${[@Qn7seˏ4e$MJ= $3N=$sFD!?zա,Nd8Y?jz\B$8<F=UzTeֲjҺX-Z,efH%R3Y͊kk/ [t30'S-JTw淴b@] j>7[-p5i`'[L?ɮ@ֵJhc}EZ1&*(@!&TUQp*QQs9\lSQqC%R4ιW'=k"J7d3u꺁 FG5` /l{jPqO+Ř=|v LcRol d{֬|Fm#2"l1[NeŽIP[A8Q^ LBWH {>SJѷ`r?iEѿtf~ G'ֹ7c5<[uU ضV#T T\Z͕Q4k*0'L;q؊(s|<~''|&^?j$q[QEkT}i*ZSooҺXy$`3pI2ʥ5`AXϹ?;W Zxbg $@>כ_ק:B,K/Q^c ;̽hv3p:}j2lvWNQ=[:\M\Z(5eakҴsAƿ@Ju(^OSgJsZ;vՋ?T&6ٞd!W18 fg8YZZڶM}c2CkMvG̢Ĭ}O6VSs,qKxsՙwak:OC+۠XI?kȬ'^2]jDZ۟c>}TWZj,K(aUxzSdxs}B`D,1Τn-a1i{qcIݳٺ`ϴH!2ӨMVl?;#Q16?|>LԲ{8f2wHs$v\?O,ج{{u0vjkEtt…E]R-ˡ}OkԮ\1:x]Ju(E } ѥd+etD:VXxDY'wztdLoZ0Mc}v!i(Rj6|h"Tk@I蒧 hQw0CSAm j) tݡ+#.x>y. n[9okyWq+[EĆ'iZo#zs\5$z0lbdڴ^>zTv;̣`'㔎̇IX$i٦ ذZRJ0*)uB7E-P,{?JpII&=%I?LWuvmosRUsGPA#ktd0?;Vv98q^ w|#1Ɍm]d!Vϭz)P-lw9ȫ.EsV Z6TW_*14ϑT'5dN2TԘQdV4٭^ s~.n PQe/U#Ш>(((((((-vq i[B)c[Y!5TD=AM%>Q;m';!?Gk,M6jw Oj3uy dPi >9g-6QSIޯRjļ_ `F^(g y"$FGozUlvd]c+xk0΀=Mm<P ؉Dh"Ki#gUIto5۶Tm+8uf֞59;1Z7Jc5zOVjωMZ,MZ.!jVѩsզȨ^* ƻ>[GȎ;m鄎u<Ⲯa$r)dmxw:~2O4n5ȧ`wRmR!b0z cȞkfWVl VX"HRf*Uݞ =pZ,`*p,i],UW;Mws#ܥj Z/JIj:߲iԞ?sVb1.2xEcSʛimuTTdi&"s?,}Md}([TZ&<qkȭO*Mz-w,O"_)_U>y%,-}:kYWc#?y9C$ +1vviZUӭX=My"qʩڥ kX퐆[Q2 'F}u! (?&Z#mU9ח^ 8byL/BzۥaşMrq(E;T 漵MwZ3:&2#`Z hP? ;WaQljW&:VqLqSuNcܧtSH͊#*%KU&*p_'95+xshgvI>"%?iƠ WT>9]3&ȏA[6vzSEWS>Ua\h +g? h*GlӲ2:ʖW֓8?09# jŅGUm5]t?^ڼS5cK뵻'%"u1=\p瓚mH"y%erpU[mA#/gS OدV!&GFlWP[S,9cU kxTPV<}kk\z6+}N[jvRr56fEb8\u5ui4AG - z/x#pב4^uo'S\p^mIpyG_SݥZ̻:i%416Xʾ_-ه=GCc61Jη%&TZ3s+[6 5 Z4 ["{f|{S LFQID宅 >_W\q%&2Td%{ |3"7($(((((((O"]#HaAɍ M+H>k-OQCDWRΣoΫ_u m nF*ڧ| # `MjT 5B sQմEqVNTc1,z.i \ɉQ8cL0ytUsTe{[:]m\aZ=Kú͟#`X!^MyX'E@py[TnX` 'xIJ矉]o߀~zUWSWd9o s]ѫ.e͡Z(pj1(*IҔjjyy\%fD ms22CtNj++nLh啱*?6ףJ}ZŹm$ҁ#r,Q*lB-3]7rOЕ5jJ‘9m=֡ CPi[7yGVz4#ԅ+ ejE}sol&I!A*r7a2pO YYg[h"FW (VO/[V,1P ? ꬻt$uB]K2?HO+x $:c0s Ɨl6wA}Ecw c;T㩐2 .\9a'ۡ{TFD$rda a73ǫ5q<ѤT5-X7[IWm+Fz:wb]B+YWrGp/9?tzKF98'{qEn|6cP:]4Oqfi֛Ppȭx5z\q|X-CT˒nw#SU#3(k'C'c:~*H;\֮φa5㰳dS(-Ա(#de*ÞkY$wɭ {K OX62Ko. 1^*3u$:{X ӊܞ yZֺ+$#B;qdтtRM4mvL#=Žߠa繕|A.OH"H]=]vׅR֟:Ԟ .^R#G.恷2ndq@5bI';]zt=3|Vm ikT` ST_@`֬D#01?\dM"YG،EBW=xkHH]nVSAEwS:d٪?=ioz8+zB=rV*fK8ӯsZ?>_RO&3T$G0=|&nQSƨJđsz'* MjHI@F>W8?^Y?0^]8U f}0y"5PGQIquJ̊_fi[ڴmt1J*흠8K0yּF17tr6NapMO-NV, Ak놷8#ᘑ>꠸~p;yƛrG6Ego,p(U5B0fRR0/{dC>=p3QiK`'s8X cP'r3RͳqWj˷n+F^s+ "5>܊.{3mB}޶+ԮmCL(||hrSo<S\q\\ !zO`0Þw}(LD@tWKKǯt(H[5ڥ7r\lqǞ3ǥshbOFJwJRq*2vGJ/?vh,`?nwZ=g7jczd`Tv _C` Iy=p#\@khʯaut"%_ ƽjϹ;D;>݋X$\=5o'go0-jW~g{m^Lιi2yנX)?p~Uq^6Gg3ii%D*XgP??^U'Lx4o)uaЏ-ƭCeg%D^%2䌬lb*T}m,CK-1gqvǩ<~ dx8#0GK+|kLɑָ1,|"G;pkRck22ݫëSg-9JK#CoCXj;ciZr̛'',MXӷ5z5T6q׀q~nQLc&U:[skѱꥡ==>髴ZIJq޷ xUDž1@}EcA[ɬٚ?2 s`;V#t`{Uf݄+uռ嗣/8z)HeU52:iЏ):ci?'<-$?/zixZfQHB(((((((2%^(?pvkuу+ A{AylXi+ڹ9!0Q?]CەQW"d+i cq뜰T1ͨC1za1\in~ZP8HEq\KkGdG}I[WH5HكOog "B3XJ',Q}pji~dj$ؠI'9Cct$/ A!iek pBu#P?Cps[3%c!Vk<3wXt?+z%fj,Tg3~aO}F^cпAXp^ vf :9{OD}eNEBvE*zb捌rkOb#؊c'`r4${5=BW"FKL;GQuuFao`O{( :ocUlhqX;D {L<}x?|c82f,0sܟS^UJ ;ί_BۤG c _I# j0$W%]VᎬ=ݵUUWa9?^,vO< {5>LJg}KIm*nzl6iI0@ ;y{8( MX5g仇LMAy71*0x v[F[+V1@1~_l73MDVlq$s<=Hb=HQhR[,:ݫV}H+NZ_3L@ٗZ&П'8{_vuJ$yUHjSOS*P #R f.-fFdt19_T&zzʣ==6tnXәt▷lo)#\SA I'ʺkCuYo.G LmlyTym Lq~&ء5 $#8!2;[/\l1Qxmm XjLoThOp@8S!\I8mᮔKa߭xu=,V\:4v19a5ư`?O@[>e wW/qh&g.H5Â\Dk׹>ƣՎkUMDA1M_V=/@znղx|F <ءPGWˉ5y 2m\0ʜGc׷oOZ\@5XuY%jPm0> á2_T{H`-N=~riuaut%GY9qjmme+A:`0ǥyjJaq5,N*kZ7=DL럾y M@~$d繇BWeڲ'=N>\eXU:AT`077<M{xJ=OVG[v Sk z֥<ϲ珺I+y)Gfx9*{YGCۆ+'k%ɫxVen |Q>Ht\dWuXr)q˟ʽ а<u~U%t?JBLn_y2)+d5w;g%xt Ac^qIyŵR[ TD<4V~CUO+J1Bv6~a>~r*6Kj`_9l!ͷҢoi'=~on="rUi`@eC 9SQ: ?z$/6wqO`aJ4G}o Չ,Kv rle(+MWiW0|8X >lp~^muFAcVУ,1UB׼uk#:qѣETEPEPEPEPEPEPEPhRcI?VR'j }Q+M*€cu=(㛹~O'{N ns2Vޭ'!heq9l #T9S*ϑ}qkyj'(?zmk%m!3LY8o>м¥bn1{WS^U(l9Д`r9 ]ō0xqyf+裙K|i;͖#WNJ.k6`R[>v;g2lM1Ÿ̊x]xkJR2\,`iE?":iU5#HU%,I  )Hס ҄4-bhEa B+MG[wQCZ2HW~kFRJ9OxD|S!G~2=ڮ@V $dJͦ3/9?/N+ThJ|Y/@l+ѥIUcP>EF5,)Uy5j1dijW?`# []}_oԷMNDOYs9=qjqvHž?i.ݞ3R#Qg9FƲܶGJaE,* B %z{E Lj0!G Աu=3fs&2&u?-Tpݨ1'?ɍH-5gBIK?0d_y>e QMŰ9|@Y!Wk|ױ < X!d"?$~D0ZKme_gL55k_SݣRVWG_ɏۿ!WLUKKitH,yM4 X;=iww+z?0+Ω+Ѫ;e)t7F 3\_J=`$_gHgK+ :g+9#'r5r54yHobǿڵzϷ)Y!$FՔjj&R.g\FPW#3G՟Tѡ| S=b( @[aeNoEAɬ} L2~32?@Ϲ@`mڼ?_ :bZ?ky?$ F2VEW1QEQEQEQEQEQEQETlm ~jqr[£(+f͋ d4VoXkN+&tkq:*FzUHv:fndiiX[j7" SZQhes2<;9VCX7\^BLocgnEDc"]TI5{Hٞ)RmA1+B&K4AZV0gFN14t>}59¯AXfS+`Un`*:ڰ7=9Wfo%H¶rEnؒHϥpբyko۹8ɭZ ъ[dR55iƹL\D«ˁ֬9\7ZW9M'؇o|KpW$#WiOPbzf:iCE#V @oAeGf#݇nZFH gK[V˖ J8-x 20ús׽B+=Xdާ)>Q3;ȮI,{+72iHl[sH^<_6 dIݷqu/RcHXztKn^kUPЇ^_+渪)Vk\C"u\ Eig (4ʴ\жqTqy}cpKPD 8z ʝDzFa1XAg cśWdi&}=N`M[u62YVbrOI5xb̤p2`J`s; ?TDַru:Hԓw>Tb)ҽqe. #'׭͹!aָaQpIMc[g>kJt`4FŚ|_ozv3Pz"? ?IyuiڞU֜v`UC9?N.M}=L_a֢(@]taFeeU9k=2v[ v Zi6R6mlqexUp畊)I 6=PӷfpxɎ^:#؊_YavuBoꡳh1^&pSMr9YHڤTx^dyΕdt( ]EEXaY%մT(;UTqS)ts_bI1xh_"{V7xbI-H Hуd2zr+RKw|~?,,wS˩#時ƃ,OaT,"p$vpC=QG_r}ɫ{kFwGoʩO>=4N+.c%%rY"cR h*xk¿G?<ɃI}X%X䷻mرܨ>zUb~XNfAKUzNĒ]V8$j&)-ʯW¶</K]H袊@((((mV)5 GO)QԞ4Ef\My. hJ,a >>R3|жCZUHYFEsZu\jje~s 2/Jz֣ESZ?}UuRi]i{ ){#-N~+Y<<aS9ؿ{vV8{ܢ+)|Y3rȍOE~Oƶ.kH \|4^J1~#ػHOʵ*.}*+\c_l+BRV\μvF;QJ/*i{f15ki t!G'zƼ\Eklqʛw9-ڛB˪\W)n8չ; ӵot_0$s}8# gГd#59ʵ4{V5Gv/W]&[!ڰLt%OjΚ$qJ˲-HY#}c9s;Q Jwl09OqO, ?L縲$'*k8T2<2'+u666>lrN9=x.-a1ƅ"B ӎGZNFauћ5x:8 B 7Wk~\ia+ c'?mʤs^څ 攲g%l$o54Maj Vo1FkaKij=oQY3's⌕53hr[0f+\&9[VqE'ҹ(aq (: PrÊm"{0j8 d 8==jqbkERq8'DKrc!9S~Z!\-;K|>jHb+I>yʿ7A# U{mݫN8Yatղ1g!sn$ b X1cFoSMvJ~HԱj@dd5'Wee9 BqMl TW- ,nEmֻK JM'b]oKSJ mc@+ _>I?OWY.uzǸ4O2:`{9%k+n!=K)O5ԫdvѩrA<71 mIc=ERl MV+E9,,Qԏ9k/#KDݵk'(]\1W:Dq,>XOQ6|qԈ.NIXy?wQB _܇y|ĚY8Ys*.ȯ- {*$ĪQVùjWQ_k͜nwc!ᦽ?4x>GQE'QEQEQEW9sk4CP,U n,8mݸ޺:5udiA~ sqҗT ]c^(^a$J.*_MrH}?JԪbDs/4,qF 3QMg2y$ei2D{?zjr[H̫ 2uRA Uo6G}in_ie@)uEB]MF[(Y嘯$`uuZt_/?4fU_]pkQJcH\b#dRո:)3R5LTtn\i2Қj5NP)-8E5*i%yw=޶θD*uyoӐJvȉ~ԊDյյ[Md磾3:SIAo^,EQ-[gT">-:5ϖCsp?I*x4Xl7VXT=ʹ۞$%;F3GY#3sj?IO/$}F r&` En6=l;W2. d\aQS0[/5= TϨ-$ӏ8i-oo,_AW<]9=ΓFQ:pJ41]`Z.~yj7"F+Bb2eۥX?28"2h2TGQĬƇ$ ~GtBjwS- qypaP< þgKV>߇[f>eCFb- (ڑ]QB?o/,a8 zEq 1ΗJ?e\ G"$r$7OBcIpYvrߍ{+ Sr~ꖞxWCxc|t>-Zʺ;~S<|+T]q:K4㍎d+c25v¿OydC8Ocۧx3$ύ7lː fێ)|es3F}۹>ZSJzђVfkYu{2 c$s+"uo#q]Tg>I{˹Gk8Էʭ!9ثFǾHW,>aPGb:]{13 -/% C HH@?"֚uX. Һ?*!k,AGP]k&@:Xz0?nrR"6Eeb!0q*^N[fFb1: O4F䨎\߆qҋ;Ko].FXpw.qi8CR穹 7tr͡Ums4іviB؁N:{_M}O?Fvہp8x,l4@`2 RF;+;[ +H 9m1Prpǯ4CӔ!(+$v,m0Ao[iIև͉Ԁˏ0r:dT%Zu3yc+܊g Vg>Q]ϝuBG<c|'3^} yh|{oN ^n%:&#q=vM09cM8D 9{] ,h:fisN _XODHAۚźao8] *F;z㧪^+N }7t19Ϙk] n,A"5jŤvS\F#R05ZE_\AY%+(?upOaW]mIRTF= 7wo'VrjCP`ySId Wt[ZFc-c}5!v]Y!=Ŝ7hȇ|r`@;Of[hn#"VOx|(=nAO$(om`6sPdMB Ȓ s,)59\l\J9a,}{S B4Ƞw`*Oޮis;#R;T/&Z4GjI,ksGaHSdKpeXb] K۷yOT>rٍs9UH{ [i8imC" n@8^˒7v* kЯZP^)՘//ִ`>jZ<,Di3%5ך10i{XN1t[Y݇ߠOΨquAqziq|lnU5'N|U+f,sB3 XWG ?:Vn[oJIfՔ&;\^ )i3P<]$޽>+uʴu0eƢ݄pyk4۵HЫ+򙄹Z+<(((CĒ6eA6Kt J 2 [n7;WˀԢ((m-ȆGI8M:x)+^ jm1y8v7pV*kgN Hը8]tYءO&#-ċ2{zj[&=5\pӷ=HzrE(de}9=ɮOSTbGV  cxAܓ< S|7CaLyr$*I'xg'$޴kncn~x_mMZ}p? B31/jjWn5o1z@At ;,?PǽM%AOuhWtХ0Ⱟb6,BI2?՗z%VHfS0.HR# C7sdJܶ.^Ёd?  =yx.ѱ8h)DcV U~&jV<tqveԹ-۝ˋH捣 j^psOM[Jr1ّ3)`ݾ'ڠK ?(G'ǵk*"*]=nmBDvnR{>2#'ߵMuR"Vo¨??UiHUɬ8 r|o+W#էHQ2[]-(\2g!TpǾIW1,HFÆSioz=JD[zH[icGFAJC4\9ӥ^UG԰5<9F:2C\$'#*>eIW ߓfm;1S[_8Iϓ//zV{LDu*ScK{d_#j9Vv,@i%X@ Aj {{ohϔ+7Q7G'T=Or_wo/yy6gn=ZѤhE ʏVyV2Dph=n'VJ6֕?ƊRzG/ШO.m f Lyr~ VyԚ$pz8.%%I!a[r8gʿ7 O}`}3iGoxrF?F^U{57G6?I71=Z[k+QtPۗݞ1Ԓ@7cO(172g`U63/$`ܷAVpba}m8?ʚ#o?ʷ~p&31{ޙѯ<'VfbmhP|DGz\Ӭz4&GAMj wEeoB=q3Odf=DyR3n{9[ԟ0z`UKiWwvid =0S|2R=8\5k(cQ`Э}exrUxfHJ~R}ɩHW<(EA .ۤte`8gb6=+3朲fOZ =T\O4SLy؏u*A˲n[y f%ؼq]KIl*'5F苫;lɟLU2z|bWfJTzxJk}. ZxI>ǣ~+ _Rp+CQu9V\ŒljWR> NLF,@|~?OTlBI's3YYuyhㄾe0pYH5>4qAދ˭ѷ'sSˀW'$~⾯|s{|}=z+Ҙo]MFgB$y# x<'by|i?_r9^\tgOM4Zיl?gf{6qW۩Or;~c^K٨'JϐKALhKU\waPm#oJZ ]ZUK}8+uٵi8uKWsP>WΊ(\Š(((((((mvlC*ϤYg*euhUh>[H/fVyU7bWJ͊q K;vH5r8nָG.~;C8}K2^G J+MpFDQSGK:FNRZj "'I'5~%[º_ Qmb@@ ;TʶI3c4Bk?ďQi?]g•>l(OwoM7PR!G򧉷 #=?:Q=Ҧ*^H{R~Y?nN1H#hD6_/spu8LEuOA="0d= ox!_1ܟ Rv'1ɩ1$$x܇"X ,cj0cT;1?in3ңbƗ9#iPF?ZXEyєa5Xi&cEp+ȝ֫r7Lowuqͭ>\eI P4wTsƳtO6RW5p k{d@{OcVZ3ΰni~)23Ȭ]Bɼ Oeb05榠Y%>{Q\\ >dWLfú@~~Vmv_pۓ1zWgW Y!dFßQۥpMe%'m5.c<~tr/tY+ad::{8tX1>n2}MҴ8PĂ[[Ӯ=INcQ30HrGcg݃P^fTN#OָgR\+ ܒgjWQp b0X>ՕiMHGcB=۞Aldalddc̿Ȯ,jӋ[u-{Yn\ =7]?'ҩj[˰qh2zSCvT!(==z;is3Z3SJvZEˎJPq^p:1Tq{}y>Z"q@?ޫx5:}6[|U9 O0&P5: 86wf9Yp$y5$jQG\=yw=vm\j,Gsj͌O'9kOmI<uew?CRt*O*B9%-}bC?Ͻeȣh'!͊Q/ӮU^& ;9 oQ|m78tpz?ScO\?tF7Gaq}m?w+`B(V#?QU$ZNEao,kRЌ"xvyؚe[1 mr lWnA>nV~zX\J5rQ+W_^0lYN"~Mkb9򰧊z+:\Y˪|&;A1{FVU-d󎾱8(p\5MJkD>եa]"8j͖HQOV6AWi4r\b4I"$qNŀx-c_+RǯRbҚLHbKI9a Ćnt^g`(Xꪪ@IDc@5GVKt>w8ǷMT=p==멆* Tvvb, +N(V*5:92eEeܲ `j1ҽ*3ޖp=N:U ]qѸy'{*d1:Eo_ITʱ[n81bGaR R; Lf0nBq"-N+jzW׃KC^ȊHVLz ˾ҕuH~=f_*[XYz_78 ύ̤{6AZES|?J8^s[<I;jچaV>]C/좣CnKa֍s/٭Bfb X4%y[JW= [1ñ;W'?i[I̖7!GV]Ҭ8nvx C ,C:#k/O#(5KBc_92NOEMq \L'QpOҲI*Kͪ(c(((((((,^>b1oRF`?Z|RdwW] ~l??Sf9xА^*p ާKwkϙ'nzj-@H ))# ֞Ǚ]d5*Ec|g~9S8MZ7e稨c犵j5z403R_Ǵ*êЊݗc %Œ?fZ>o1b+ح'k%yUk?umEhE^UDqJ@if%ZE5J+Q"5%c0'vx*5G$O[wckfcݽS9KH 9-$>y_7av·cУJY؝9{77h†^}j6/vzcU: \S E;7{@'\fn ]W`.e 1,V_Iu/ '"qu `~|TnDŽXj;(bq 㘁+aqrP42,8 `zX^1'A^ۏb=O0Jm,-mko 3jY=lr1{rzyd㡪_G9.<mn2Ols^(#>To8${EP РslV?켽>{S1o #ys-Sk{%{ofxwUH-~jkhŚNonI+YGEt*L !1JU촱Ɯr?% d)ͦMqc O=o} odP6  @$$d1*LdPA +*cܣVRi6@ 1imo;0 'l 5"וV75Q4.4wV22Fy?wŎ/}x \I¿IOX&u ;=QSe%Wlk4nS$X~U(J0<aѝsA{mhT{tJ$x2Shc't"5o-UlJ+)v7"v2谓ht[(i *cz[b-P?zֶG7$=ӌ: {#.mOaWrݘi/.CzV_Zo"@$+f8j ^EH\ƴ6q ݾp+*}9/ MeU'j?o5}dYI8*jx 2RH i7)ifَԍ~+6O|x-"J!#Ao.>hB*QEtEPEPEPEPEPEPEPik/A ć5>Ѭ?TW1̪ VKʸY7Sb6 u֥|ļץK_ UR܃ UHx\֬ZBSnkJߨqi@1^ jkv[wDx sV՗Ʊ⟥=-P9?44M ʣ5M>P˴)caϩk Vӏ?GM%YS<4DJUQm_Քn(`CPkLFV"jwP*pj:줒9fbsszY?+\氯#{XiXA&sR[~դz^DM<:U*EM#-kӟ;9L>ͼGZqJs-_WFXIs_/9ԾRb6q{SդYP {S hu~2mGEϿNu`{}0LeaKm۞ -3N8٤yw.@'$ 5JN~m"X'VnXlǹtbͤ[u\UmOՕe#EcZkq%$ƪ$΅'"U,wV3.t~LvI>'l5;=Gǽu&j-zJǩNe; p6Ҷbn# ŤohǠ=1G 4zV\=Nsd{pG&%Nz*#j#ק{jlnR Zl8[Ȭ|zCL[OוW\De= &K7r?cG_4K;أc\;EH ݂rxfG?~TWV#$c'V?k[ٮ;1 Oa*r[5i!f[S0T@O#pSFI9gq72\]["4kԊm-*,-RF$}HNimk v4VqV}TXd5ccΚ#djjpQZsXpФ-i.#$y8)g%u ;1X $ͬy.fX~wCѤđ%mei]<&Wp2ba; (]PASu8d>5sbsҡK=>pTfM$>{ eq [~B!cfbEH"(ª=+' uQ<+&-cuqhnVp@+xm\FzexcfO8{S:6{SJ튍c |GB)٢Z#J"9qC,>xbCy)]"'1R3M֩swq/Ub{[ۏ%1,1݌zRNF֫Zw4V4ȱƽYds Ȼ29.ƋIn#?Nz4inȸRPB g{R$r_L(c3XrOzO=%@0G=&_RUУΣZT'#WtHk*@|^?O EUEPEPEPEPEPEPEPhE艝NXS54w>xom}\jꯀPq\?Jilw&^'9B ^֭^-W`Cp/JQW⒲A$0*<8Q8b)ޮ-F¨M`'wYhpK]R6f1|]FlmI'8:sVYP*S|zX3Zǁ\5ccϝSVQJV^|XSO֞+{ߥKk hVATgVT^+zl01e<[Ÿ 9cUf>wByQN,eC2 _52\ rǹLv 79[ğj͜pkzWSumn^Aq;`[̋9MvEq;Ws^ANի 5ܙገ#OI\rB/ "gOfQ?Ljр"/m Q12,8A :iWFB2!NPPJJmϹJAǷOs:ͤq4s'ȃ$+[XaY1=I=ɪ[9 k1{Iw~1hSW5nJɺP }YQҦW#*?/JضvS>M{CsGWo8y5nV Yy1pfٹy85y](6+>ZmemXܜƴ41-]vl &&Gn_i&:WT#J\fmӢ˖ zʟM`3Pjh!XX1Ș =缽"H㍶=?:h>&m¥y!11=NkK-Oy$s ^cScSO{x9Γ{"]D%儛"YG a6 r;~~deA?ڝnEzx؅o٩Y0OsW|S"ZN UW IXT.+\݆mu #FMWvɳ\ٿ!UcK+ԕ!U&08or'[+= 2$Ggd_ՀR.g#=s+fI:0eaA"JK5r !yc t#튊9,٣kGIc?UNjD!:=fی%?Azk˝4ʆu-uPzOBJQIsYw^amya? jy$z tni n2WZ^"QE0(((((((%/S_ f^jCc*2o k 淍CJ֩O*j 0H= CqU ?-!=#>b~xF=eђepk MtӪt!YVśk|=2f`feWUec֠ܧ].jgˎ8K#E{hd>?ε-,``8U#]j@*oV|0jfp6ZRD}8֎Qr/I$Z^lmtՁoE8'޵,Ť%K%v,s#w?U+)MMc]BprߒI=VryYMZ*L+U I3˫ eL!׃Y1zi.Qp ⺋Iޱ/lprq^ Zia9io%@TPM+Ff-H̖ٛ,z&>^+&1^noRKc0*Rh.͑뛟pc+Ҝ[$@5̨(R]NxB y+"hcW+.&(ҝNVuPSԪUX]D]A'9Km݆k2k5VIdy3k#_ʮ!.$cf>w=݇\_U"w>ݎ|{i2+yY^=zgb+--0*cUZthwUvvվQۉ_¹{i?n6&?|GjgI#p/#2eݍl$¿z#Jz{v7(^ 88{֜2:םV[ IPb_)/5U&V)N:?/νzxJܡe20+ + k{#)H{A3/؃-jͺcKxx3{8&fAjnpqs7^k.k?ޯNDj4OEwf!'[~(6XɁ19f;{5r-z C)z~hhB(((((((F? ӿ/S.i7t@ہ^:W1ükzpk*hKױBV7D [2[Uy!z J#<-Tgr*u鬧R+b6$59el##U}c%ZܱW=lp={O~?ϥsqItJ-EHVSkQ5*IKY*TzI*IҼJyZVhb3=ZN52${-ݣkm2\rUOURH㧭\gsЦ&uCB/>Rq3{.hznkHsܳIE 8@9ovIS;a6J,d_O=`IxtaA-dU[[ou=}#VV^ 2tr;[Z)QV$us-_u.jePsV6ilȍ!sQƗ u;] 5aɪd|?wQ{ W͡ҫr-ڀkR-imY]d` Њ =+B=j\ F*&lW(Xg5q+*B`sX:LqE'+*Fuz<|2z{I}f_BShZ t4[+|@1Z C-ݶ?ڶbGg8$֬WckꡃqZ~&`i*^0>~#QȈ'Jfm "F|Rdb!O={m'JyH>~(|d2qVѳ\:4)AYsJ.sT5ɚH[Bv6KmbZ ۓ/[xXt]byByQ"$zuHBe\E&ff³n,'nat|CT>W6&l} C2 Er@5E,;gܘOєqѤIp*#eʟq_;Rcby![|.4񟧵mAoҧ"#Qz}\_"gMHָl$SîzNLvҽܳ{/Z|0-4݀bap3Q¾]:=KCɬ DnwLto)$V_l5'm^#`^f_1!?jnMg\9" ܰ$rֈ],>T$>WS׷*>Z+Rp">sQBI*b0(((((((Q ;b%4A 7">XkפΡ,[Y '%sՏok5luSdܪB8FH%%?Aҷky7_e2X:D*9nzth6.=}eIt9]V8kƞnB`ndnyuꥪ81ke >l \>WjՓ7B0}+ɭ>sCs$El[\p9V̷ig0FRոVuִ^eg+ٗ!/4V4:cjHi&r< IK*KE=[zSKޡOA.C]#EemaA-\6cDp~QH*mۼ 8^\!]0sӄԋZ&EO.TdCܩS hH] QNwlLNXLmZ2cF{溡+Qugk`|_!qA#Yg?MJviH . [&ot#4™^!6uŒh>|(ԡ_\^>9XT>⸌I,g#ne#jT3tX_HVPU,f~;oUZSg$YBT<Y2NöIe~V[8mK9ᦐsڸPKsͭ_rֱˊ: ?jZC${V=+mA+Xdrpvn-ڪﴳok3h_wᚵ i:(EϢ覒br/:W1+k}S9G:kcE:nm%$^RnYIk%ykVF[Մfzǟ:ږ)Ez; \1(^Y\$qff8 $j7J|]xgJA '<wr H_kW-c HB#ucћFqc r !JܖiM,WPnT2EM__LQ?Olɬ+=)ɑujX׷q\L7rJ>3R9;C)rk  :߀{V&#͌[U[eU2`?1[?P\yx3""ED]ҵd&\?,|&>+0ҲG5<=skՅ)C]5\5s^n'y*+_5 8kRKrx(jz]'6dCkVfA |F:gQ(M8\SmȨ-c8(& P3&=*kEK,iSĨbQW$E8^'A]VcW3U-lJ1`) 8=+b,Sd lTWҮ䏗dQS vk&گ+`k䲓'H8#6lV-%l?1݇ݍ(EXoqFO'9~f⥁_Ҽ,F}a;r*O+V\fE.Ey3Ϩi-&EWTl^&PN/sViQS/#ta,Ik J>4a?z0784Z+M$GZ:0EZn ʺJ;[l@==AKP=;QC6D_0znsM){ V }B~RydvIY&S!}=[!kEɎ R)[#H-4 EUQ%NI#U8{cNQ K<+\ƥ>zҡYӏKȉoZR=Uw'P}Bk{KYȄ,/ݏ̓]V<&[P(ʐpU 5R=En!;=#uj6jۓǤZk Zů4IBF9e>#ڦUzNz֡餴Oyl!Ea$F^G%MkElq(Eb4etu_~=v52t>C0VikjpNɁҨ\GҵxǑ^9X 2ɖ{?tÐjFnTzT K|g n<p? W ?J ks ^Sig>w4b9GGkokVߧT?ҠxWVjꬄ2#^zg5lE[ZXAFjݴ@ ePp+ũFNz.\Yyr|Ӗ?a?'Jߵe$pdz3M[qjv>+Rnz>Z-Ε:EG qJʻ]|V5|5{Zg} laܱ B#?5MzqF]HWŷ487I!!kOh"08kjÎ"Z`5\**+Q {TsZ*:H-s?tեBZoj/V%F 1Ϟǿq5Q_JxEPEPEPEPEPmF5 )m\eH9gЁXGۯ#K6elU#:dEE@( IӴ.06ш]$eA -H+{ĿoSj=xl5ה?OI$7{{0!ZFEWѬ;۫V$y4Q9@jѸWdq*A:K G\1崺/ ΁0<9nGm^Fџo ېUIAԱOM5ql5s.#ܭ%ZǧBFbMf⤂砭ejkůQtԮlQ;klj8ք6 yk&̬ qNXWDS.x UG">*%bh!f7FW0*Vsg?F{4=tf1LAAA5¸X0=Nڅ*?PGңAuad"NDbwC㲫qJjSN6۱J ߀Y5H3컆st<Ɓjn gCR3cWTl2ɚ;}BcM lөZ0D隱6fJA$9ja"q$Bg?o\߉.u-:HӾHeOOJiL{f<#) {v]9r0Hr=X H4*vQ=jg*#{JS*JtkQEM n,}e_dۡWJW s՝4,7VgHHfOS¿8,;$X[֙/s̜WgUC޹w"<VLjTl+j}8o*E|VM9] Vu9ҩc+' gt5-唎#BߐIb-F>i|ВGZ&*id*B5Jor*koaQoj؝# ʈ:T fv)c{XdsҵmStSr kZH.0ʒm?0SV+b\n{%Wl1[׼u˄lT_;V(<ࢊ(((((((7ל?k?Ç)+\cPuhgjCKp?& ޵a=R#q]D/(>A(aD sF1Vzն&{VRbX|}o/H|;)nw|j]J:V YWSBiQeOF}82"U!^< tQcS^-hݜUj Uj1eԪب̠Sf|wRό]1ȅEruu-7~{uk CoMP%zÙ߭,潼>|-do'JmbN;֊6Uc=Ʋ!,ZuR4c"0Zzt,xQi4&YJ=%BZME'% zZג]m(q,÷+Z6;x(DQ`<] Ka$0HaTt\Rdqc(XᜋAU@kLCM"M4$dds**[02YWQkvx8c ric47:/ȿc~5 ,Mʯ3#.[0 b==L$`U {թ0EVz\| xnܒl8dޝ=^by*(f8U B+fCt CAvwj` cD]Qǝ+=O\՘uej\ne;P#]/mavu9^;F22q!HMi w,Yi2gDg?N*mSBӞuD2NCpjA ܟXغm9T4|cEGwL,c#SlavFe\+6Uul 1ǢAT2ȄtLR*W<f`֓.-~0UU[ƣG_a?VZ70B6FWzP+K]MW~kW-tp([/>XH {^pglw(=΋Wo[ȱFEtn92@iZ:VGR蚲ۥhkΨ)T.VeqbpRPqVkGTtAǒj[v;cqcɭk&G{ ÷7/p {Q"Lm_Fcc@ qcF4A={zt j2[ۏƆF#il']1dzT_/B\V]YlnTe/c,hG3 ȳB;OƹWm1ջ;]}*;Lg%xe# Py A_=Zλ\WCrTڳoZ5cQ8HֹlWMŅlc+P*~O}>cr\ۂ4,l|{[n`rzZrJ+c*4msrzO$ރpdE5q0]W.M^"cI۱VsHܴ-d$涬WVcrjO2QK׋|kݗD|Ո_5ԭQŻ?hꡍă>ʟ 1jagQky[A.OIʏXRڴ:efM 7Zkf&o{ccwG,6!o0C '޲qrPFCL֭A,sj6m)?4}mH$ho :M1A)rc>sEWAQEQEQEQEQEQEQExyAפ_+-4Ӭ_5η=XDW֎4k:O !IEo ɫ05uX*Cvnu9:t"(PthL Զ$P\tG> {rcڵUj9m㹁 $Ķ ^kV ʷLe!CvaRY-շ~X1dnf{Kkebu=;Ӑ󍭚8"A k4̒op*ZC¤ Ĝ''IXJZeIMQW\w 5vٗ4{5s^+y^ fy\9{l@SkZſ־=>". dL5u&d5aCBܛAH/c{λǵۼb8*@X1QDv}*Ss3݌$N [CۡR6yS'`&$=+ץ>cեEl%\\^︧V[-\yʽJ*tzƌ:(f8Tm@l- 8A~Y3ᵈprr Q3WNGJnڇQBkI ?*gp$zkZU] 8U2)sR:i٨Q۫ZڒO N \ҝ"µsv#&ܷ1RtՅmm4w37[eH-'l$VAPk:\B>w$_o0dy%٧_ifgs 2IyYQypx :y~ 9Ρ9Wd_${U@SLJ-QCqǟA< +Qjݨ$nb>\gȀhB|rp2~I-۽ZWXu[B#VBFڜVQL ( ( ( ( ( ( (8_i+Q c${G֌(սX2jD8Hg?jtӟ]c'lƯ瞚*T) #N' 1+:,5I. ̫Պr\T)m&SrWvXz.X߂9Ni2퐸,l ,gؒ7vQA 4 *ƑFĊ  c Q9f@뚲£eFOjڮ2lqpTI/jPF%s̫Ne(W;zx] ɬ+~Ђ R9Y'^+^rk*nҤ{)0+i1]\=Z53Dlٶ [-ֹY9Zܱ+GR[Uoh,XPU52%-M%ޤY=9%L sӣRzRuwdE<ۉNآ7SRbݞ-̛̏J2[w?SMY Јᅜ<%{4O̸Lcq7I?%wk3 +eSS=^ڬ z pxjݤ;H!+ .:n8? ڌua:բĪ~5es Ŧ5qZQ#_@~W}QCSD S#+P/'iH33V5Sڪ{iL-HfՇԨh"GS~Ano-F:l(@?Zvs$l8e9 '2^ i o#y8Dڪ5/=JhYWg֫4L%s-Ә$Uta2UJ$+*ivIX [CmF! B]RI5J-Ur~#9g>w5Q^MҼ~X6*J,袊 ( ( ( ( ( ( (<×1Iƒ);x.y([q紛xnt}TljVB I孤͓f5:MIg CeГJy<1qڒY wknh[w}L"i/u7HeXSTV:t7/=lpB>L4G}n'ؖU4fKm7Lo |}~zxb#XB"(PJS0n'< HsH0LE5+hJ0*We5F~M]kpkjVMkԢ͡D^McܯZݺ^Mf{WFVG}:FOA捵zH=tJWW;GB-FamW+KtG5ep=kcojiwMHb[ ǚHWOo&nBfrҵt1oBhU? ;76r1TQp;T 2K@.,LM$^[ڱYo.^F}r=j$1 C5 :: 6K kpv=v`IOzep8j;Y3eiƙR%R1VJr 3s2dVE}۝x˔ѕ)9iMK%kGW8sos\?MXSڮT{\/;1OsQJߒ(Tھgn8 @޷d(kͨ%r5cNfb my+۔9n+fd-\1ݧ~G5VU1q־RSlKtTQ&T?z#pԿi vI3<7>\{@Vy<]o +>Z-[v2-6uQEyQEQEQEQEQEQEQEy*" ѥƗf3,A{׻^>M(/CU$Kw&Yj/sYS_%rI' 1IV"_P2$D;'ޭ{kMdާLdᜍެ+Uڬ#WXJV:!LĖ5YWxW:a]Jqƻ*E+寫Oڷ MێQImo[Zc ??A%㨪W#$0y?UX>+Z3*UKcͭ-YC0# v#V1=zUtFGjm xGS ZJq5U+?Rr,WC[EoHP qhzVl8}K-XTJ@ {T6BjϿTxCG pphz-?=*tn&gnbtaه:Tlɼ> r'ܑO̿ӥGtz ^ ߍ5eZ]p$_U`jO^ e8.-0̎tr/F瑑DW5Xcx܁枎8ضbr6[>$VᨬZJ!V,+Ttω-UaǚGL/!zT1H qcH@n,v #lqUO!6_$OzvscRi(a\VB\GֵdN:UIuӕ@žNG4 $V'V{^ O-8_5*փG}(V17N.1~TS\klQK~T{FssT%5=*ב{ti+V#NK_;kB |_/WeVbU"Um>y[ըy-uhN~= d_p⦕{&~Sԭp+&i!=kP3")!eWa*Zcw V /֫]z7^6*7FPjh5ثP߬1_;Pd㩮]>ajϞ(e#!мO ;}6cb^L<?z@\jx5i7;Ob&&-3ϑֺhD Dw3nEԧ^R^ ;*q"KX7U*}6p`l [&K\\/ޮᤆMb'8fc!^_<,ESv=(>p(((((((.lXZHUD_2V}sW251Av;zж+;yfXPVzx֪U̜nGaMX?Xbj+uI˓W`nn֌rT)LэQ0s,)D())j "¦0Rfj֯:yk&lUhTo0.dt:a6X_2ʝ 6J~B9?=j؋ubdNdc)Z*3B Ui`V̑TgJhY gNqZ̸ÉR4}im&yl{ջk~:Wb+ݜ$Jܴ[CqZW^w<:e ]Rbɫ^YU&!OS|f'3<=VY gǽYj㜗{yp܎V-4Fي?k[hE6{Mj)kbi9۬w1}fKwH,h:(Y?Vo\A~'ҮTֲDqpgqaĒ{&f3PeIh(jՄjNIȜZbuf[)im*%fJHRh;PF] &#RmZ 4K @0? j ڄj1Ol/ZK7jL IGU:;!ױpu`3UP|lEʮG=c&#NzR$R4WCr9qZVFMlڞs֍:Sj֔e[Է^MTqʩJTqW#>fn:Ԁ@ӁY2+N4k.c#)\ PoBPsWJekڵiܑأ.ރϲ8͹"({(*[dO1#{@;I62I>.y%f# BE95&͏fYY:3ڄ ;= >F?ZN?ZAZ{FvŗPz!u#E9|2$#i.y\c/C1g*)"|qWKo@ARC+ϯQz4k#--Il{lUz|[+WtG  >v(}ǫ&&+dRU# S^+6 iEdݑ]Hʻ+zҿ|vnG=SP$qIүA%b/# M}N ǧ ]Z[X֙swk8skCz[r6!?*S* ` X"VuCõ>vC~)тJn9:Tkn3Y7DkϚ9%Px5jP'aFW&jz0:U*I,6ء +`(lU5^ivqɳgy[4N)pxz]^򹽻>dE!UL\㓎:wغx'e~h=TZT>c+Cau}Fez}$Ѭtqe9i)H薌vI::y5`*a-MԬ:x)TC%U*Xna85:.,9_Ұ3t:<؃yvtH0u[{ۏ H-p~z7hRff몼/YF Oi$hI7Ͼ(V(C|Od^p*NZqG%YVաV=Vjʬԏ&F^l>ek^` 3ϖ ⬆ zjB!᪺H\2wSaM=M@R)2u5"iWq@e'2Ǣܚjg\U46KKx,P;]#AE{~^UhǛ<CX 苒xP+--e]ц(!6RTgV:=kE#(y)"0U5 H2h.of610G#mlȭA?dTvkmKÂ?(:!$ZE*ZR:"ǚ=~%ѽ}ͪ#ֳaO̓g%N?3W\Н\:F@p+d~T֗R~4~G͔;D=Wsfi@iWp{r]K fF7 JHHa2mP2"Vتu,:mΡjdo2!<=ެYT8̫%ԑ"3FGv_OEsHsÇF*]*9^,njv@{ӴU7ߢ"EE|gu׊˚%LFb*Zn sʫ:U^*^'c%KS":U\VYq^)L`TcbqPF`wU c{~Tz i$;UĴj[؈aH;F2{ԦG\0=kvH=x>k*hݴ}*Vm|!ji:\U:kJy^=V֚)E f1[[Iuopw{&"B sZcѸO}u%m׆dv^/ԊϸWB|'ds]HRf?/UK^2Åψ( ( ( ( ( ().p"S\c\Ք2_kWӝ"6X#88ZM2(vNr9^ⅸ=Z.4r2 2@{j^[%t I[g# ؂*Z:Y?½JK{WIWk 熕Ȋ^jdc**GAjyүm uY?½vT}<'gZ[]!Ir>wvtV[R(~gi xy (I^FiG3Y}OV{+tSo#՜I*\){8hǩ. 7'RIkTo"|D1sn=8TU*Iu6PHJ}NXDNDRִi?Т;/tY\4MDkn|F?j.]bB=5QEI.,ܪ&@e2Һ+[e&UNFqTPG)8&_eA?ikLO#6Rđ\si>W[K{b6ӥnQYK +\ZLJW? 'P=!i?ڢ[MfRnG1{q:M̲08ܜtZlI .0Y1yڊҵiծpW0?ݳ?'VEƝ{&qa{zP)fWAxܺ%tӯOjĶ +ХOb+3&Iƕ~O_,_@Q]8t>5#PY?•|9j 'WTW\sz(b pyu*.gJ'WQVXX˩ntnjC4wqB孜 ;z]S`%#8eV'gR{)3Lͭ?'T[+VMVMI;?C> 'SϵIQ\S9e8sQíI뫉ų->saU2ynsabPF3ᴷ fB~bΐ)!;UN=nQMas>`j/$7X -d<>EhUhZbI5_ 'WIEREb]JJd k߳އ^CQWocs5EW(bcs5:]I֝u9 56qhZoikQɓZRFM\7Q;W? 'ZS2t1 g*Lu/i?q̫I'n?I؇c5ž\4M@g? ']Ж+Ii?,R0kX.G is 'POe<6~R# (Oor@}nO&kw5QIpN#sj9ŕIW<繲ꮈ6*xIע\[iUY˕IׄxiCE,em$l u몜0HqDU'BwRleQTRn(L((((((({xᲝw#C9p=p8r(ZIc7\&֯g{,Qn@m/s޺_ ~~q'o;֢((((((((F$) d,pidD`9DeWuVsszż (MHCu2Q#.szɾ;VgajgbӨQEQEQEQEQEQEQEQE$H2:'M>xYj_+bgo݆}wh띣hU5gbV(C ( ( ( ( ( ( ( CZZךt{~-v~aARThV 9]C#R29 nm .p_d95P>߲}wnvmۨ_a~mQEQEQEQEQEQEQEQEQES$8tXVw'"wd@hzg=^K-jQY-Kn~4wEfxg{Oou8ӪjQE((((((G嘐ңIEQEQEQEQEQEQEQEQEQE $┎t Μ ?w>Q=*J((((((((((IJ9piPEPEPEPEPEPEPEPEPEPL4 Jz S"Yb5 QU*(U)PEPEPEPEPEPEPEPEPEPQ"hf$(*J((((((((((((((((((((((((((((znsyBٜn\~MKFn(7ƀD6iYKʎ1Koq<7DO1zu߆!4kypIll87G[g.Tπ`c/4Y7 /#,2l`gIm;[[|Sod;H##OZ>5點-.7(Nx{ b ?RP+(: ƅ~tQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEendstream endobj 339 0 obj << /Filter /FlateDecode /Length 6430 >> stream x\K#7r^={VK mK;X򡦟a3lfZޙ *ղcC6Qx$_~oϺه3A]o_9*_xsu /θ6(xs{|wh$kd<>Oˮ fYʉ.4rj;mmwh_ӻUG>7/8GHslk^I/K[)zkj@8 m<,ݗ߮7 ov7mts,Z/A.60S6/ { 7y&|]1U48 Q7a]{|@a?mjB\t]ӿ-+_?m3Y\~-%nޜ}wu,uYɺdIO PR=Zhdـмwa!ahyonqVZ+]ae?ܰf:wmUӓVJKJhh;.ix)5hq0Ugp_)m% ^5i4/~[(8e^cB hvZjmM\)QPcY1ܰy厣+re:8~Q9Ôl+TDޟw6#e^GMB uߞ@[V4euKh)/9~7M,q\i>:j6ad77\ʴ4O'dY͎ \'b]j ԭ %5NnZ8Z!j-Ӈ0.CWK:5?'5?+Y+Wi2p6;>c_…0ڜTEC8Ӽ-GՐpB'}~ޱǯ#S=rx-縤ymr E n#_ol՛-]2GA*SLVrǦpUZ`G_kh 7&Y5]sۏ{ӧ6CG=O4#2)2;".jޯR3k ύATPGMK)P8j(_m/G]׊` >_xádJH8H~K'Φ+(?&SIԡJSyiC{Tt#r]` HBmKʎާ)jҖW҉9q@Qiؔx\l2_ x@]o<_?|lE(bE`Hн-OXb 3@q/ޖSjV"]h\"Mv AËY1KGЬNCҤu=dͷ,3_. TC]hB jmVP0=Pf&kriZh.xY"}*TКhIfXKR5Icz&5:^ pI#pL4./A,i0;wˌK$8~ӯrƥ0u!-5=yWwT 9X衶 -lk$ZY1')<ꦕ m&[4bOOy<М0gIX$ʆѽv7Ө[\ <(πE5 "(Z{tZtnɗ-DKg_!n -;C/g BܞI@` ٜ(@&" 2,@^ Lo4kHa)=#fu?Up Sң;/4|2R>qDJYJN(UJ 4AxY,|:ǠYs2ȬCn<~K]W{AW@)Z -"#A!R_u1Ywȣ%@ymktQ]ldD'jzpB$Yh(NäNt#L_V< :ɑDCŒ@f}g @4 ɏ$o5f}dƕ-{IHg9NqJf'l݄):@qfuīDXf7#ZpuDߛM5\wڹ Dud&䕲Ikpx{߯zjپnG`/(gqF{hSZ%v<~߿FH$(zd,N&H4R(|UiPiDa3` X X]89fc ,d69g*٩ŪhC7^يfi]4NHsr?Ԧzy)"oW<)t1n=Gzʚ8Ԧz}q6|hl02RUPt (k?Ď~ Y*MһRRS>Y lb;Uۈ ˨$n<#d RnmMߏ$6#FV䡎܈{6^Nn%aG<+R @okO*1Aڀb6AIq0285zbBљ"cO3 EOcj0"9Uf̌yN+-i "&C%Z:H s|} o; _<6 !:ԆD4ǵ:Wɦ>.9=1hMAUeLxQ~$s8RyĮA.&!hO~vb@FYm~NM%3x@?~U:yXhgp i{)"թ4XGhT.| ?y]q&,{>"#wc4!Z@]//3}POiِq?ӜFJׇ.V>5hJYB?(fm$,a$lh1ԦP+:DP ^˰ʩ24^_$)GnKVbek+ ˺MF1;buNϱ9_zǫ(E=.z ;,lYK=GMrE?{bxR_3ZP$)=B5xj4Yyfb Ig'!no9 I6:U*ATkJHtGDuD#?͍'Fw;&m Cr𩸋؍Jbos_N6]uB9~EbSW#4Y j7& K/[;,f#w).1tb;mjmgdĄB(EaMPpcodd~WBzT.ֺG,ZyV6c57p ?6J'Ԛq'EcIsEmNym:+UұuYʿK.bBX81F fQSƷX 10F$v%^ߍ AmqƔ@6\52>]8얆Ld;JPRx/4.np2 kT#/a#*sνк %u0q8105*3(璿~E+f2%nl#V}ĈmG}KAu%\YBqp~`RRDw$ G ۑ]sX¢˺M1g.t'U.P?6D =2s)Dg<?4É5cjj[jZF}=9MP8$~ӑlnƿ8PvY5/@ 0f.*+sKyEuKЉVwb,g`]_L8YBY+ 2JcZuݽ&PW>S4884:FԵP#@2!1ok%dr':yIZ/?UΕ*֜ו~0bG TnF|'t.i; ݓs@Z0$s50: $9VZ̡nuhIػ`ͱeV|{W(x$k-pn`\[C.:@zJ3/73ڮ2]9 jbuG %{4ѝHGSHL=P%Y.-}b48B-9,CtOYπ^<\G؎v FnWxFMh\WӁjg;_Ip[`!ʯQh+4X+_' AD/l% Q1lҍ^jMKi%bpAlE8Ka9ʅEѝ,KO"!o|} XpC#Dٜt4lw!9/4ޱ˔o֋Hnob H|gx/uIVK6)|2^k'R\<x?_afn|O;֘^ERoI' 7Ӱ^<@=+@yUpESU#,SD"E'Ced_*{\$E$22HOb@y2T֮ң"Q9@ԭr1R,T֕3|i11#YO}5P^ LGH%e(L):,x+%Ӱ\OrzXT6ꊰII[2(G\V7JDH32Y+M'|URdD<oh00SQGccq{P345pZ1Q~ 5f[w`%;ty[RNa#au$ķhJ =-Y4;+2{ 'Et#i<^(ZQo>}@-ka5Oи - kŌJK3[ cHEymO{SZeHF5ۗ_b=Uҍ$2i.@}:ӛϗd/Ds]ztpkߝ/Kendstream endobj 340 0 obj << /Filter /FlateDecode /Length 736 >> stream xUMo07i]Bt[an]R?vko (873L?}xԯd0(KD-fPT06q#̔ 5|`~DYoŸn1dKt(u2itߪ7]uZmkec$đl+3|2FԯG/!{)ꮙZmuvWFƭi2"|n! UX`Pq`h$Q+SXӜu$O8쇴G4.nHe'mfh*G%!vµ~EDkjA"=̠vRKxR_/=cBgnWB;9\^4&n?0mK9O=F`wO!5^&\m0cH4pѐ}2-92պmy.dĕ*IޛH3<_=Vv6eYk H0m`WLA?#v~”zdZlH1y*(<8M~y?䙛dLvUZesCFGŰ狈/L?֘Lm>#1GJSžOUt t9M<ɴ h yhT4j}tk7O,$հ9PH>Oixq6M>gJendstream endobj 341 0 obj << /Filter /FlateDecode /Length 1074 >> stream xVr6TśCc_[*!J oh&PRÐD/_?4XҚ;<_ʟݭpvԱF U6CAXti;5UIkIwUF9wj#d,̉)bt)r;+_03g#27ŇۚZ_̸5Tĭ5ݻ[t>BYmPxG~J* iWm$X TԔ:G.P!mIVB"_Ђ{ӒJqyЖ.rE8<9C]0IEN_Y15$Ě2< YnjSH!-Qj57`'U30VxghZI#oE]^yZ|ԂܤouWNwPNbh4Q|kXk;@u2ў| ^R[M<`lPAv^J6AGb[qJ\Ц 3o^ZSFabIrǪzbp2_nV׼Y؋ʏLI+`+3S);?u/4fP,L /F!۰n dQ7RRbPp'qb8a+{sg3+.%qt/B^J2~{فR#RPܣQK.1ұe4`]#Q !AOXes\3!G z̒CtO1v߁IGnҖ=GWg@ Bp2iCv1EKuH_#tNÌǶ߇'<͍=pH0M>x 7f~`oΔ6k}B1 ReW]^-.()0֨\tG{Hn+"LV{Dp2n ZŻƝ˘˸S.48ʿ_ p RK_w}(! zendstream endobj 342 0 obj << /Filter /FlateDecode /Length 667 >> stream x}Tn0ZU3|?z E[Iуb;[AKRtZwggx$r“ޫCȶ8m^&c:|j<$w*_uo&+M`6|pa:1 gC8qDA&/V$ h\" XŖy6pcCBDZ%k=DV1ǘIV]䴟YIק$_0endstream endobj 343 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Height 800 /Subtype /Image /Width 800 /Length 76401 >> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( *+7o{nkkNW3QB-ݽ?7tڊl{.oݎGohEK8;F#s~3.Y˭\Cȶp9Dt}{3 z+?n=,)56DX-H 9PV_uoe|?j:hnnЦvI{~N&C#H UӢn=,ТR+k$KpSp7vqV6 +VHaI[b 2[PZH S*XDPUfO KYp;p٢p- )afڮĀ[%Tn]Sv z5(5cK+&&,qcTEgտ祗HN5 2r@4VzY$JcuPzR +?n=,6 +?n=,lI,|q3+iQXqLCO7BG3*SxFR8*y (^۫K/ƍhB̚]F3$|hXzwF u%X%EcOZ[P걾qSFڤ V{ *+6F"Fy&DQfVRsQ:X Ĺ܀kQYuoe|?ѷV_hQX:i6qg$nU 33ؑphĦVYUy :+?n=,C&[=ƀ4hw2% UV%pxooʦ۫K/ƀ4(Fa1/6>=ׯ tq6{=ݽ1G*<{3V.2y8QEQEQEQEQEQEQEQEsVRb|i?Ӱצ KRUmc݌d1-<y8=+r7=pA#AGJfmo'W})_0v;}Hn+,s$RŶ P 9Ow  ?M[w^l>d>^MOu{0J,"L?Py\sP+yn'RL'Xl;4%܇hr`1w^};~\6'%#8T^KvR\$ UU89?񅴹PrD$R:=WPT1pGh H3G?(`sҴ.]-G?4.o./nSg>R?==W@K<$F03z2;dEd*z}E,RDWSXd=0Kܰ])?jEGq ʁ°HȦ\gm%Ĺ؃8%`rOzI"x;Xw{S\^&aOP$n=rI %>pd9=? Db%W\FA4Xp*BW n8QNƬW˔a?C/.$3gzz +9n (>T] ܒA.ZA0x (2dqVoRԭ7[f$le Q f@m'`Ұ'c?&QEW"QJL n##ԃQ[od P"b #W( (fc Ҩ*1鞄iLm-."_w5#KeoݹK21$~5YyG_v9(XZ4ְI cr@z#h`C6|±=sV(Gq(XQG@S袀 վItEt+ \Vg.<ZТ( -Q*dTc<~4=g_Qn2?U*6傆.U}ZhdzjU!pP$H#U=j^5cnl70w &t̛~r UNn䈀AqܞOƖYmTrrXԟsS@fty{8C/ԭiUMRIn} teE,Tdp;TP pAH8`:8we,fLrr*@@ɠ[J`6q-2g}}01)Zmy^ilPz4PY=-Izi]A- -̊ʟ0 r d}(Wk7&00];S'>k?NU5IV)098QZ*0(V6h'F.>QqOZ+"9ѯݹ(1Ӹq]{,Z07K2Ǡcq"tsWϐ֘V郂=0;@ItF8YDrBIǿL=3W*s&9gv0&N?@VEGKDIF>BBO,bap$+dGvh- Hf=UǾ8@rgQH($(j?g&c%8a8<#=fy#\g*O:H4bo⹐JRg]ppz σC׿-hQEQEQEQEQEQEQEQEdh.H*\l|#+Z4H4I2 \::20At {Yn ]OBA I6Em0T"TԧIm;CON!#@Y5 :5Elc`+ð_DʗK! tvq9%C2=A^iSw%+S4c#8G5j)ƯbC$ hPy+98W()bEl`L ?lczN%'>5=P6D s>2 O~%ĺr<8H{wU*T̶+f50b6sw]=4r ya7$ !` 55T rTIOC7cS@!h(Q\H+qպdG2lD;XdqȪlwWWs7G;?Z5;"D#w$Y?Qb+KT~>nKzOR{nTr̺Qs+}:ZTX[Z=9$QʻeEuaQ=k M9 `cڀ,V~QݷJt4i-aV)X/kO].( r2f@Bhj64s4eG*LR.d3-i@zƀ%|ҤinvfkD8470=)c!vФJwXP}qSt },av!p;F T7Kwȉc3yєr@ z~EfiWVvE$ľ⼌czӲ'fpZ='?A|zq*co%GVhiCS.V"J\jPEPv uD6q~ȿr~Iګ\D*(܀z#?L@ KECuu &kI'rISYa+t_PP Ajj)` 's 1V4{FRBKgߠ}9E$YǞxrA.A v0Ʊƃ 0*tn8z;x#%{SP%0,o)Q +Q$&.Davܱ_\stV̗ME _A},X/-"08!ᕇFRu'U5.c 2=?_X#@YPua4p aLnz9` Szdj HXl<aק@zg+>XW&9qú#Р< ʰY5H VU2rX= I nqNC׿-hQEQEQEQEQEQEQEQEǔs?a&c;iאY3.,&OMs%ޠvg"/?;z u y[u;iyۧ 5 ; dۮYBk oǸ>IkpkyCm*ʞT7VE\F3؃؂9s@QUKC< nCy@c`S[+4,ʲ@U-`B/,*~u0W<cT`? WҀKy74#\c;[/"mY8%OCCjjwj.P(XX6>OEX rUVۑ"\#Sn་̶dPvuSGchj(28cl-^4qܠ' %?VŴ4\˙9>dV_8WDw\ ~mVS76-n cldj_}m.剘#u:PUOKW˃;OeGCG{B!9!p=A^?*Y7=ԇSIqzvż1ér7m"SN>[TcʀAm"gbp1z/mdBT8ᗪa}(`1ҖOsnD--Σq{AU))f ($n 'A#9{jۻ\ijHLUE=Pby/%_9eק֝sф4$2 QU(vrې(}zu F]yh8ScNH5(-etG͞9PhabL"(}zmu* ӹ=AIm yg2HrI*Z(ycߒQGr{A7Q3iW"I&``9~p <̥n_t̓O6T,]Y'82i*ZBZhdOWQզM4v:p1ۛw |z>G,ӻc6_*=$w6G=eqpe?fhǗͤ9>֨ JA)=/UETj\ ط{z{zq@y>;[ ge^N9*NGxhg@P k>^״w2鎰_9َخzFzev4 ( ( ( ( ( ( ( (9#LUUiVkK|99m՜,:"=3pM6Plϗ8?£NG<-l-4C own;iPKlVIxגN,XXӿw.m!,cM>_1o\Aȅ??=ϰ6L42I0̗FI #:3nlRbrY۫9f>kz{uo"qch~}M[\[l{e]ev.=:EAmyѐC&扶C)jz* Tc<ۃD^:=\}nTb'+Cc?=%qhdK\Axʲ;w[ jVLڣqmdv30?U\`}(JHg%qPpg9$)YH`c@ tTpMK,$ʺ0`~TQE|k?.OZ5}SN% @Ogmq$rOo3bґlYC03֬Q@Ks WQۄð˃9 [@3>ث4PuM#1;Onsfލ-`io(rc[Uǔm'h BV)PU]xsgs#3 'K"8ʡ97Pm{6h|#7l zpqL'[O*vqlIXto5QPI'QEQUm hv!X@OϧZ  WY<yc*Ж{K-mXnvX9 qӒ4Ҽ^6>6*3ZLd)w[<]1W}r @mz>IQ@|\Ul5Ym oXD? zgfŋX`l{ƫN)8ǘ?cjN "?>V vO}ՙ <&ն'^q,=9Ld&xrO;SmaIO$iĐDD#E :;SK,pDh2sJ̨IݻG(hPyh%ӥI`G|7stGp7DWF 2AxFŎ Q;UG< Z<;9b$v'%3=H#@sHO2@9V uI><En!@X'$I",kUGe*I[X?0;.ΐYy.4m>T\c$vǦjg[x h;xR3<ֵ"i^f-#$n{AU`{AK@QEQEQEQEQEQEQEQEg'} n0m0inn;Azzb*;=$FESd=A~{n$i,meaA c̶:xE @p{瑂roY*vFN~@A2ExH[cmIzdp8U;HlR;坻=ϽO@@#3mӍ4 2 v.;dL9CAAYxW%B933Gg3JyY@c#Ƿ|[MǹzրQO44f=T7P6+y> t)5)-;a8zF 6pG@8΅I,Dcou=>37v^@bIRA#r *ܴBXPRm>?h<g.=#q@ A4I"a:agߓ\ftϨ|%$-~CuTrɤ#YZWcS̀aߧl 0-P70 78Xӟx ."LM4Ei(!RgU(8&1$$?*`Ŭ0f4RXds(ʗ$.z(ٻ#$_]- !GV={>j֖I4͗Fv9cZIRԠ&Y-FS~--jPEP{8nZ68hUFB=ydqӥ '$E~X0C;~՚(^o6H6ұ)Fq$;YPsm=֤YI!3fPJcڀ)[pf9v?ʴkC gquF-FtD3w \3s=@R_@gB#? s4Ku+LoG$qv UP@U-Sk&Hgy!q횴THiPEPlzSty2{H2P#pVWrXaqp@?Vբ6Ps"o1N9 y4j K#p'p)neUƖva'xێxO =I$$I4i\ȍlaUc1E1q" * }U=JbW]@d.z>d*6GHi$`3RhYJtnÂlM +K '>3˻y#-VFLxb83+n(1%QI9'ⵍfC@&;z <⧢('&$GQHf|:B5xfHw[`:u O?NK [N1pkNuuA@QY֗2N7ͺCr0&p:GpcRXgH7/Nq/cӃנFرKf8ypx=.ED@Ҽv'7IlСVy&p2O?Ko+Gr{ǷMg&;>"JKrǫ=ۡjҵއ #=*jϺ'kXNUU4ԜsݙD/S'y:+>^״vYYX$hf).$bK[v "n@QEQEQEQEQEQEQEQEfiHi4L7@:*|gE}xVh4*= ,=-ėW>\{K6Mao561Ю:@#V(l+okvGWԎb?X/!hqTFFGb;ЏyAsD19a؃pA j& yӯNyKEC+ # JuG=f,#{"OFA+@ -lG"^Ny4 C=@j,s ;^g@6G=ftC"H#OYFV_ Y-,* 9/u žP$8VoL}}R,G=CSTLx&)/_xYڏﯴ^C;UA> m[[Cāz0*Z((0ehjJ( -6<(uuc5 ɜ qYyG_v9(ح~Ccc{JlZu $pƒJ}F94PQ5 G@QEQE~P{okw>#Dh-fLä2P*;y)9TRPE!!A$$L?gK$@ J 7v)Mį0|Q" |?LbzmԓJcܩT(IY}sڨh,{{w,DpI9'rdUz}j@Wp\uF*@(e][fe qA\uDZb*S]4gv 2X*Kp=֮74I{ .-$RO<iݾn$BvX|}imm!!Ls%ϩ'SȬCr/V?z_n;sPEynL G8 A 9w2!fb.a,ODO FoEi\.nB$sgzdv|]F5P>匞t9ER3Rpɦ"C+1j*o$FJ@g'#s:<[Ha.#e&m?#3#umA>0&;ѨGOA(Z+`W8 ,Ǡ~~UӤKmFM; OEF=G3b7(ϖ1'H\M滹nGe袀 =MGIDVYz6:q>3}CO"Uc;Cv=3AR.Jd}A Em~2jܷeW7_O#sZOQܬVfV~1ssNf^K Z.0!}AԖR6w$NFYNAӢ((((((G##r7>ֈo/ǘf7n=F۽CHjp1yI+4z?3@?o V2j$Mj7㵒 cy Ɍ &l=r{q)MK2$PrMM^4Au2x>X]5m< 0'"핂;M+f$t_a@KnfՕ& 9u\I-1HCP^ZyMde8da`{hz*I恣tx#F>@ ( %\+]8aЏzYc %g+)ǚq9ժx"PF r (Lx#F2`y{gVY5) Cu89_S۠f'Xľ6+3nêG=jĖ%O 0wPs-CpDD Sʒ rr S}Vy\[ivc$`H# }M:~ȦMp #g(z(!=H #T`C:&Ւf7;ԁ>}kTP N% )px>JOVI!odVϩܶm(Dsb2z4; VheMd+qy=hQ@Q@ $&U 0Ak4Q–w2r& .-պ(Qp񽳈nY폽jq^-A cҸ-S8@MPӣI+GGPvıб4~6ME*n$U ݏPBp2zUfQ k2,Hq?JrB.$ <ˏ@~3taw\[A @ dVk=vr/Lnr~մ֓h 0x@YҠ aIVe φ^@ >隴0jZ((Hq= 7/Kb+n~G \5l*ƹz=QMo="ټe >G|>tv92O Ov3Pwcu('HL`"Ϲ'8j(JZwu\~yMmo+ ^~K"Gh3 ѓYQ1qRiUYֿZTQm׆r?CZ4QEQE]YeV|_Zc鶭p @ԴQ@GwV@;8;ޢ)ZjY~sٮϔ!Ǫ7w~;YoǺGb@cz994Q-;Id'F\wEb2].@"d z)KѬ:)#l[[nT^2K0?z %3B8 O91[kϴjX噦%C݉9vZ^״EPEPEPEPEPEPEPEP~Rzu}QuHݽ1X^D7 wp2}ZaEQR&E^cW5!"[ƶ!nOΝ!2xв1NdsApx[ G;;#Xw$yIŹ}qcjP[GwIAX:8*hj* KFGFG`cS[v-Q߷p8;sӷz$YCmav49K egI:Cn{q9dO,αƃ,p&WHqH2@?ACe-ܩsm%譔#={Hn5kmJYD~Inqьpy`0p8UU QAN,x2F[N3S@+we7 jd3{i#(2$G=w% Hr IEUsg(FmyxTTwm;1!A,@Ojˀ^tpEMnoeircS)Ĝ`gA'J;D$U55Asnfx&'wt?v -Y&&+Nl@Q@2XX8`TbЎGO)b-\'w+^V U9#(W<`)#$sW2Q<:B)]gL6v1B@ HXVh-Z|gۀpd_ Ιn&fe;r? * [{g\è}? ( ( ??Zǔm4((((''V%1M) ^IaMZcu8o&"O"gv+ OAԭ[kYpôs`}9zJ\iN Xz`ぁ@~raKy6ɘ ='oNy} yRi_m}? ¬((&ѧ-Q_ou۞@{ƀ-,q|bY#:g8:j6,62QmOsc# NU 31+X- (އ MEPe67:x{}R3*zKT%1 3gFa9pzTtTmС9~ ; :}˂y%I꧑ fJY.rx=>ɥݏc؃؏QҀ&>޳Og7XO㎦p36|T/%2~m̎f!vYCyTFz䑁=X! jTtS,ʹE^VFbܟAz FeE,*I'R)|-vΎ͜+? r=KEt$.0% ?\v4Q@ > 牆bEg~noB-g;NFG8:8W7$t}QF9Rgm5h@! tǦ(zσC׿-3˾Ԗy=F5y |;mVVRty5袊(((((((5Jn0pn\wgדVdq`K-ĈA &~M_[XUd2U*{EOU󢻑'ٙAˎY.c$]]YN 9PTwIwC227U`pAЮ3#'ڬ Z7MicT[lscG *͸kO'qW?PEޥKS,xǵhCpDBh0@(?Lk;EV'cuv<;i7\IĈAVW s"hd Uѻ{=OEP(X:=ú)3>i A֫y60vy~k}q*YX{ihv juel`pppzuW _'Xs<o)->--6)T86f]*9NH *@3~g#iZ[kU3hg99&d u g3gxK`u>2āvdOI@Ku͋=O隐ѺV[p9%{8V( R ާ?VU*R@Q@jBxy Ïa5U5KW"&BǠq>ǐ},;Pnz>OEPQ2m,?OΫ=]E dG>J!}=2>(y/ coa@]yc)$dd# \(f,ȇ|RލGt j+בDw G_ﯨ>AwXѝA$Vd#X[{7ŖF'# y izХ ( ( ( ( ( ( ( (3?s͊ɐ(Qh'}W6ܢ.e93@QPY\souCЩ#@3GxdAjɵ|cO#H#*"1UjKkcYVvȗr?Iah#.3P4#U:'$gJ.zN['Y7 ;cQϯ5EEmq~d-C20A-U"Hoʅ<YF>  zVe[;$0yɴer#XdrU[u `DT`/b~D9@E=sl 9 ;{*Z( 9eZxL238&8"yfu4fc5KS9"wJa#r2=0y5gWXo1}m݌ۢ5thቆw@KE58B:69S*nZ\$cnP=nފHaހETHP_KN/h9@#QEhCNH~TPEH$ IK ˻Jz{Էw1[Iq1"8q>w>5shݼzbF-%4R3䛮h^7A =*Hy@W-J3Q]n:Q<=QEQEQEQEǔm+?\(G%hQEQEQEQEQEVbĿT)}`9 3S֓0E,*Ios"Y ~XH!=8=(YM@=ĐL%j2m-=j%L_yw$Xmaߌ`^袀+_YG{,!pѷ?ӡDlrȣ 8_LkB==APNu7Ii5O,ov$$;܁8ΞM>S\H񒗨0){z7C0so AqE-*ހ8KEU{XgVK`ԏAǧP;UlIP$s@e3'ס8?LyGb,ԔQ@Ry/vCI&UHVgv#2*@,qgiDe\HLc\|O`9R:tG~u6g?O#ڦԢQo253ou=}?Uچ ȌW,NpáG\e3`g-dndOy|J\y2# w?{ԴmݣF):2 =ր-du`%NW&+c$lUgr 45N8yYފ G`gVC׿-hV|h?)hB(((((((( <yQK;U$+K+KtE3_UN[+WSIF_%>>_e'A`wo(Q\j~PJ4rwjs}lUhљYǰd} Z\GwmD@둃@phaJn,q?5˺9T/#$Y\,X}OAjEs][J}cQίA[rBs*V$#)`g؜=Q@^ڥ幉ِ2`r-nZ n0A#؊jcO򮤞(2VpW`GNjT.5i1qr9'ds[o5>_}8AGOzU{xaXmX^P{==`O!a0?W~$iӳ\'E_>6CVGPUmm!mE]OOATQE0Q,jX:A⡷XD%i Dqdq9ժx"P `g tXben$ ퟥ(ݦ$ 2ǀw$@jwRF##wd yIX8!bԒ{rI5_N3% ߃=O='گPYGC}*.,-[?Fecb;M켑z)hX jSADO' Ry:d+i*3+~^S"R`X ^)QEAzӭdUk02}\{P+_]VF\ >Ͼ#OqWi 䓁?: GH1ooY16NUX^H>P4C+@98ݕ*Di7FC9U(1NB*[ Y$=i:nzY"e\?xdަ0̚|/zV^؞1f/.3gzz{AKM67^lcX]߀uE,mYK ?#@QEQEQEQEQEQEQEQEctGw#x<[dbk]GOW` ~@W[iБ b3Xz3 t# Cr( WQoYU98AcjPGwm-rS3ƛgr1]p*q=x#؊MtY2dNfTRB$(GlgEGsߡSV4gv 2X+"RmsI刧#?{8#XM,L.)d@ К AGW0=km2(3LsrAipHQG5vfRO!LLNC/LUʂ9}_.U`ʟb2?Z)c1$NB"EPynл2g]=I da}~"U{o)UdV:#uX  SiQE ʹWQys.aAao>hUUPAUovfcv{=YgTff8U8d[dU١a:U|RwöKduǘyc!OLyv(((3)dRG+ۏJ[6r勀=7}Q@M5/ފޙI ռ"CRIhyh!vAqb(UQ@)V6YJc2[[N@O8' ( Dz ªD7QDcUG@K@tQEQEQEQEQEQE^+IG,r{SM(%FMèk÷GM lp^ٌqh::֐Δ #-Em(؂Q{ }9'3!n;*+b=<b-+\*푗=qU<<=9`W,rOS!d@$m?\ HJH+4&[7IFޅAH1UG <~Т]v}p=*'-w .oEhU+\.%+7坂 # ޣ٩#dm_M}ЀvVWH<tnԢot /x;G*)+ 5 Z@rA NO\+I1ʡ#*J# a9kEQλ98#?욹U|  7` 3@h*xGnV)dRHArIdL2H?3w &BXmTQEMG.csNIG`yW)FB>v;IЎIc-ٗi`z78=;@^ߥ,H=ԃ)}=O?([m ip{:{֩Em6*\ߡ!=fV%w~-Q*Cwm:nALgm$r J܉9t9,wGs (%`9ހ$,0VWNGQ^*QEQEQEQEQEǔm+?\(G%hQEQEQEQEQEQEQH*s3R!{dKG >Ev?.B͜z3@Z+rx8 #5 2ەn粷eoEy7 *G {q՚(* [Y w@IO~ QA?tar>纴/.3gzzQB-y\bHI~„%rYx 6WӟLڴjp^Ĝv@2U{Od'heMw;%`NK?f4_M?GxkS(yA4j~kdDQ߇Pj4լdYV1 NC^銚$O!Y$v'=R3R@P2I(ߵC(HG`wWC׿-K_g7o?ko<`*(?={^RQ@Q@Q@Q@Q@Q@Q@Q@yI_w?9{x9bdtA)`LOYzT7A0K]6EOܝ5i;IіvX`,_͙brd,>UH5KpdH?JalaYZ%`_5f1xInڤ)"d dkR K2ӵIUG4+A@hjdI!0q#`0#U.{{Hɍ}>tS&'nIPx4(a|KlE+, 5f诣sy(0cw=jQETR;sI"dvʃϷ[/"{YcS $[OU=%ISEIEPU50,FXN Aaw8E.#CaNah~2}MkYu9E B>`(l~]7vۯ=7U+l@s$s>C*(>mG3{W((DD;XUh&=? lۦ8!>dȧ`A r5j ( +CY=є)Ϲ VfʆI3RTdAQ٣%#9ncր'(ֆIyfcc!D8)#>WUA$ˍ^;jXc‘bB$袊m-[ķF Aya9:ҏ]ǕWlI?J%2BBh;H}qf3uo|{l|SI&^UEs#:7UBFy.zVg^X[j:hLbe moll}h@ B^״ْC͕?Hr-.F|.qo%*/bN?3@QEQEQEQEQEQEQEQEg'} OZN٢8,sshp` G ЏƧo[, ߀^̰ddC?p }Q@C/ ˺7"cpn"13-~"eL\4@uU8? b(/aْLReY\v 3q=3RC,s’C+U,Z8临C=K {P(Z9fq /!ʹ' uM;[ׅb(Nd˸`0>`Q}QkUC-.[E?́.V4 w:`HFFH$gNueakN؇RgMwΥqÔOVHҴ#etVBR;b@ 45$TEUQEGp$,Ryr!h;N88=i-y!S(A0H fRlnĻ\}EG`~Pp?EPEPEP]w(bn^UX&0J}r> Z3eeB>0JS[ꖗd*.E)"]{CVK݄$ Wߠ8 tڼ [eX䃴qU+^l ?\};0qZm"2/y݂sT6EI@nǝ5 ?Į:/oa}FEZf; G $U(+$ڄP4%ĄʏA*WyY\1@Es:ZKq)q!v> ޙFƯEW2g" R5u ZBnbX$Պ(5q3Jۉ9ݴB&ULjNlp?:tJ,€͌d4σC׿-hV|h?)hB(((((((( <YyI_w?9B)cٖvp2@C`dr(dpU qeh PKéS>`ٳ|;F< ne[5bY4k5ռqwsxX~UecBTu,p:a-rIC[tozzy8[#Mq{y-twv_sYآϩ+u?oX "[GIx{C"'Iث/-?Uy.5ikkd*jqX*8:Vh HQ0V&i&Y-}qƀ!͖~ow;~Z„.OQYH* @Q@ "[C!@oy*?5r&4S+,Sb ( lZ6UrAS:ͥkt ¨95=Ro&65$}ꤏĨU(((d|WpGWHDvFӱa wczgn %\+]8aЏzBw΁b2AG#[((rV`53ջ" SvHNKʑBK1צ3r ( ( yⷉ#^ƖI%+.@ ?:REt Jc 1>'L4Ik) 1'ƬEQEQEQEX|$Qo"g8dSR[s%,p2N;zKKtWiq<:} 袊(*kZ2m7OU (IT7p2hWH#YJBFnIEP)93y^TXXWj!#f] V'޸SZuNC;ͺIlkmB(+[" W4Q'#QW-//s[+8%~YvUSCڀ,7w im$djI>ުe_}w-'Њx,Ic- H ++d2JBn;TV7{o5ct\p8>Pʲjq?0DKB;#kVG4SE[򋓝8%[(L[!C,PʪR3|Oq&PYzХ σC׿-hQEQEQEQEQEQEQEQE3+m$9?+R'^^+ԳI8ED*?Zt$i2h[Nնޏ*Vz{eRn.r N@ݷo㯥i[[ڮkx_H(*q z#7 ISӐT|~"mCȧdA?.Z^LV#L< ('6K\RژB2ŇϪ#ߵN6#AIz5%ķvsI!GѠwSǷ@ @` #Җ[u ՚`aWeg%wgcPH@#ih {;Z$"Fb@}jVVKyecjT.1~4QE[Qe;hlQ6nbE56 )U]5|XTI G@?Z((ře68Bb,8ݎ3ԈK"R':جVOi`r}#1P( ( ( (#Pe ؃0*n%+}F]: pz[;Wr63AhJ*2Nȗ&-߸e { @Q@ex VV܀fT$~5YyG_v9(B((TeHf.o-c,F_;3Бv>l㐴)0 NǹEQEQEQEQE^=- N1@8$}jSX'gBWvz@Q@Q@/9䷶iJ9q0P9pv.n]FR`,Xn@Q@VR KRP}>T?U#N&LJl <@h*V}IXN6 nIb0UN-䱫FOa9 ŬIOȁjj(;?ζLҢՒ&RAuuS6m<}j槳>e®<2Ww5acEEU@$7:-€~̝}OኛKw L 8+?W$X4s^T8|PAEPEPEPEPEPEPEPEP6̲:F%-(^r'Hkf1,hVLA0:٠3ԣQ+$.ZmR}1 YӬjdV0X:^1F?,(*L۬X_LI*Whn M1~b (+)@-*r_-mX}_$ժ(X&PBp}cƮU{*jb]LJHWkr?[jQE^2oZ& Ѯy^0GӀV*fa4jas0q4r((Lw̐IK L}HU[PWkF1L!d* }YFG EPEPEPEP7V]Λ0aHAM?(au8-*A1׾{bT7V^Bb&#>Zm$dO6D#՚+?\(G%hV~QݷJТ(8bBI֛</+*KMA&yexX#'c$0}h3FOs7c댐RnQEQEQEQEQEAgfNHNfgA$V&RF>֥+k1WX#a/I)#u ǹ̼Q@Q@Q@Q@V}g4N "COТ;2\ٽ3P*QEQEbXy;- hݺlq[ue!W;Ozz~5@TlbqF^}uZc1+I 4QEGUbҘMY 0 ;O0~f ( ( ( ( (!/*$30֣g/*4`JdHs`P[GwC0% AAt  rTr,sG)q@{6xǸsPk} ;XiIؿzIwQYLHQ,O@rOjlP.dI 0;N{ =RхX#' mQEQEQEQEQEQEM2js<?ήUhZVju'A@h(*l `NG<՚|4(!b:2I8ʇY((fnÆ+GVCؤ>#0GlҭEPMYM.#<^KU8,1Ҡ3ce.3fPEPI&-K9,RLpFPlέV`u4SJK_j [O.K6![ڃ2ۮ(W8O@h'K[CD>ǿ5h?)j}Am˄NĨW >zХ ( ( ( ( tYYLq3?᳜:EtQZ Rakj'|, 'Z]PfedVIF@:Mm XK Ox*S$BBII5`_@5SU&7jħ\~t.4Z\<,Eg`_G>Eg`_G>Eg`_G>bJv \͐7gW>YK=F[.<_rnڽ=5kJ?ѢtJ?ѢtJ?ѢtJ?f 'SF-10;?ׁ74x(*iku.c/cޢtJ?ѢtJ?so lg0r#k#^#C]Z 5r^f`_X][$i1I"ǍȪʧ?QנGS,I4Ñ\*(I=ҬV-ʤOo(DZ|s?~՟+| (Fҿ+| (Fҿ+| (W] /Mm|=eyp.t3@S{vyτhY:WA|QτhY:WA|QτhY:WA|Qτh[E"ā(lCO*J?iqzG& c>Z=GۢtJ?ѢtJ?ѪQ9qf#>T?:WA|U{N. 7Jw٢tJ?ѢtJ?rf2OH-uif`_@*tGw$SժtmtitL( 92(*>Eg`_G>d İ?^r,UyJgn<­`_@5ZdhTC*ldeCaƫ`_Uu FHegq@BH4Eg`_G>b]a y#A Zz2[5O61A\~}RivZZ‘!; z( ( ( ( 5?UШJG"jRB̧#z 4VA/F%O|4UO኿EQEQE8B% N+ΐci &.8Q[4Uke= 4`\o75Zdfʱ຀IhQ@UIں[FqVX=*l#Q#O@E^<̪=VC\Yfo,łO?Z( Be[a:s,`? *QEZdhC*ldew##5OPZE1pd|Aqo( ( (''AdҴr4Ѭlepʆ U+eCdnx4QEQEQEQEQEQERYZEoe\8$zq@% ֗% \;*[<=}C\(G%Z3)ƙo,;yX[20 9٫5 ʹwH(E#e f&=4sV!AjQEQEQEQEQE^w*8{#>ʬUP5&c8İ9`?`€-QEQEUk呣ʕb"d,X2?֬=TB,d上1Nc( (*_4+qbeFfȌ·#n#0 vP0#@Q@nM:p}7 WTPuiesU(X MS'0\ժU8u[)[:@V) sd\|ث5[PYV'[{2(Q@uf3RsA ZQWk S_a"F8 OaPA!B4((((((((<{twǎJs}chBH1nɔA7 dlU./ybF 2 UQ|Sv2NT(Q@3nc}%FHXG)@h(*,pHe pIbVǞgX18BcvƱF uPEPEPEPEPELpȓO#s #$6>c)`v=m"(TP*E * Z+?\(G%hV~QݷJТ( ;{%vF}Ql %J[u9A=Aug92ќ+e>r(z*ďn!0H*{jQEQEQEQENyo0$(Tا6pRGLREPQܧo*lI7!e[zTPV4"3!*HRm<:[L)`8 }fEP]MCYHL@E CqV;c WtrGo,mQJѫn#8>b(IDޒ!V\ M.#$ѫ=@#"&sljPA0pH4b( KG+&0 JA­[yiYTv@Zkq0{9ǽZeX`2 22)j$[I4^Lnjl$ {t_Q9;4+~cUW:E0,I#Ә.a>rYQ/LCunL!¼|Egyzp?&d'Hǩ?ӯa%?X4 \ kp?[jckiSjo\Coy?'k`@ PERT]̳y pTOVꦔa DaYǝ\9M[( Iq@*TU>G1n=1V(ziX82%PG 1R޼g;Z{Sж8϶jTP p0(QEQERG51_j6*Ilz j[i6B4.@>a PYNXd((((*=ž-02=:HkdOǯ\mP`ڀh(s<oYyG_v9(B((nbʙr2pT#֛mp,- FFy>3bK9e*X(z*f)`(U";O@Q@Q@Q@Q@41Jdkw 0TGjUe>M,<$Q>xgԏZ@Q@Q@1jPq,n#gM?QW*e1"3]?@Q@W3N.T\c7*TRB|^p%&-EUKXfR9M~5n=P'y<0Cc?Ƞ tQEW5fp3 y^kX^MQ:&G ?Zϰ֬Z{T89`6Zآ{'ir\JcQWVo)ł[a3775i`$cE%Q^տ[&Z&{$?Js{kh3ss #I:.#T w݅?y&*3 ԶӬm>īPR8IhГr=@4QEQEQEQEQEQEQEQEghCRc~{֍g'} *dkxc4/a4k8yWIs(#$cޭPEI=#ϞζPJ̿P(< ?:~I[a'PՋ-SΔLY˃@aV(;>/蓢ȿ1ⴙayJF2ݫ^,SZ1 0L~Qݽթ">~&]ݦY?MU.t+&%>9[ӛkI%X̮0'g$sU!=BtOTjn9cG-)nuG|c zP1$ J8*TլCyS7HS *QETT8y}@ >uR̉0q1qlz@Q@S]4gcPI>^m]s2T`C9?UlZ#t`0tIH;@`@Q@Q@Q@UUx\s1n~py$O!=Hr[v:w[0 ( ( 5IuK@P,0+2A:~QݷJq]_f\((o-L̇!ת9~"w UG֧nB "&C9KȲnD 0t'EPEPEPI=)VSA-teY܌2T9~RU8ZU 6I]vߟQ@Q@_[W$19G`r;y9mȡARUK"#`1$L$z|ۆ=[(lfc pի ,?4I4kg`k.U76&3>\# l)&5ԺPel?31j_x$[M'~SP6a,W'M-&1>cO%eq68-ᶌGoqF:*(P?QۭիŗQ }mTX21 d{{p}o4w0Gժ/$J"yI\Y(2.DSIC0 1՚xKk/"H8 }2Uj η~㟳AKZ5 ZТ((((((((?C)?G=hV~RzР wm #3.f9? UG%~t~PU5Fm\99 U3QLP@ p*{pO(B9p@cl>Չ$Hi$uD@Y&XmQ.$&v9 { { (y3\]\{z|H?OjI"HceT%8R†8X le \<\b$6ꎡ R9mlVh _ՠA-mO?S~80L7PQe;J9(e<{b]ե3aUbY00B4bCHʨ45 >m[ȇ;\}@֥QOHgXz7EPUn7@h((($J7\[j[qcz~9PYuEG/s;((((rVg} ( ( ( ("n`xa822aej!KŊ8%3H`qLr (K"CI+"1Ϙ !RRUs۱}om弹H Zd*],TƧˌgAZ%}^ܹdN ۍB 9;cG'hm?ZE"vǀ68۸"t8Y^3q2%c#ퟻbQES P XrXcHʭ)/ hVLp SN=QEU$G$>@`s0p Ux:"ǝ*OP0mUR|r2CvȠQZ[B sȩhi-i)%N|R[̗G8>>j( -̑3OOՔeu aGqN~xFGt`}EX(\[ G(O~0oV.oi[yT\3푏Ƣ}byݞPpRw>UH ; #' 2 {}j܊ $=>k*@jH'IvUV`PJ>e#8a(ArJ5Ʒ|o,%~85[D"$5舡@SC׿-hQEQEQEQEQEQEi1>հ3$7Wɢݤ&?0.|xz5Ʊ3 !8=sHei H*+$1yo^U~Օ@ jC1E'Ԋ+c?${lurU?CVHՖeb !T*ϰzL7q#ʀ>!(l!.E@!pzNAwGد-gQ,?ԖTq=J87u\DZr3ߍFKq=S@dvU/k*Z31' u UȼҢPC ?g2IqK6qX?08 +UHmfn$Vb[Ä}T#U;k r`U꧑Uo* h.A7VK0u- 3q$P( F`'x}ץ]ny"c'PLM"+cA#I4ToM8%Q@V>r^SЫoY/-chd SAhz* KGe nH?=ש#$oQ@힌{՚("+FG:ؔ䱎v_$!cZ@SCm~.̭p܌|ϧV!Q7'G$TS__"Va1vw8iG+0Q*Ԯ-#?o6ڥҭ6KEE *sȼ>i2Ou-!-[, +mBa@#?(#R+S ܶq ;xPk+21S ODJΊWCp0Z Z# $ $|JSO8?={^RQ@Q@Q@Q@Q@Q@Q@Q@lv1nh}ElV'9{Z`f,H^}\yUA? N=RCw~ӫ35qq IzKEdHy$`1j '˖p@OzK$VK ۄŇITUk kݾ|A>䀕tu#5fľ]NUgQܩ\8kFP,Y| ȿU<ߡMu3^YwC19($#S,mUDIWC9Y7_|5%Lp&Z]yo s{:y\Hcl2Dj3c-HYe \nlrqګ\7e㈱f\{@Q@Awr-@#H#U_~?>yGf=rfiwyh(>Oڀ;Hq勳1f'$SEQE^+6Mw$pѰ?X/ı\ۺ[$v:^鎠[5Wtq^z1[U^;< )r:4l:0>w#^[ȆNх{:z$Q@Q@Q@UCBJmdd?3@誧4  eFMךQcWa0*#O`?LZyѓPn\$")t*K{xm[Q%U[M2LI~8nk@dCwo2?|jrPqr-$)u܄LdGНV mO;xܐ ca$ yٮV7 0 誋i$ʶ.(n 'R L %L_$PECռSFp_SPEPEPEPQ[!6`v8G|?k&ϬmEV;@ȇڀ91:CA?,?Ozc:\qá;9BEMEWR%,l$+#G=QEFE`߄ & y^ *Lmfh.&ÑJ0HU(1; VUl 6?=ǧ6j9 !"u==ECi0/-Y\u#~ ZI6bΖ%h"^Ƞ/u7m,C3C?_$*eZԮ>ҭȆ?}3=hEP U[;G G'Hd#bǰ H*"U uP8[_H9&T?WV BO2B[i{d?7#W``U{<^) C팃Xȋ,m`zhUM9X=؝G5n+y4keVuw))OU{AKWR`ޱtaZHKkxIqa^6袊(((((((Ү.m?c8sZ׻(fOtyO#Rzi ]>J}r?@]I$VҼ183J?Wظ$rkKsI8`8 =+JQQUz#ހ-1 b{RKeh +19 r}I cPة22WrрjH-Vh'Xd jmMbwlH9#\(Znŝ]A!y`֛Dg (zd]dP%@ OONt$uTE' pcǡ5MtY2R2߲i53ڎܠlǡ(Rؼpkd=>ƣO3X/y#8sy= \ܼs@=.^sm!8!H@ơUG@AO(*l:<ۤv:]xں~&V|=G]qyEUMF"zpjWOd1l"rcq{V7Qf(n#Q$~yy#dwЎD56+) "E%Sk]ۗS<$ ~vȠ 'u5L^=ݷHKm 0d\xq֥r(\ ھ\}zՊ])q$ҳ r9;G_8S*(UP8 N ( ( ??Zǔm4(((XRP)BJЎGUWVF.6.+v>BOknF*O 9:TEeX`QU 7p"Y~UIb}=v.KeygQqSYwdw/c"?q]C9ob~'ԮGmk#@>3z;;d,^K$$@*PP0)h!!ː2pU 4%9*}*A{i]ÐUᑇF'wka@)'Up}{}*z(d2°`A?Ef8Re%N:0V*Ͳ](o:v79S@ 4T6 wnF+ v Uu1qt>N/w?(hqy\w,{$k6-KS]-IJ|8#W-4_nnǚG/&{cKa }sZTe[hۺԒ~=8*s7J fF9U(HFDu Њ}Skplhd%I,w/20=*RH$.ff$lW39;U|Exx8$ fln$\8a>)!A$$/-(˕*scՇYѩKmFE+m'~#(Pk-o )  o @ ա.Y̧`U}0\r9"[tX ֎4#EDQU}*h?)hB(((((((( <ry P"HQK^{=<$.r>ۤA;A?C~FƓM g01,=TqS@r-HT&` ѿXj]"+qp+"E(ЦiВ{b]yѭ%V33}E$ӯ,mBNRE%]P+3̾=pUdB)lUI %nhLym9l>nC#ƉnEQEQQ4Vȱƃ,pIXrt,ΒQ,'Շ+A^{HElF7ǟaL{'V-椊9Y3篯J[%ijH <݃=08ilY|T<=z@Q@Q@Q@Q@g} ??@QEQEQEQEQE2XTelW*H B9Ry4Uy0G,Ԍ@q hVeL5Fn1/c@ ><6g&+JIh$72MF5o' H%m>*EPEP7wn:ne=>bo5P2G A"0ѱVIS!cHɁ.198bPHHPI '2xyu4fc]X/0d?>x.'^JXls P[ش ktb#o99rzKV%H$Oa6{L[(+>o$>c\`:2}) ) y!eJrOUT+5QJ<|I@h9/bkrJbݲp}A}> 1RGb ~RUB ,V_Bր-T(#c>L\=XQ ?^ڤˬDǫ8hB.嶱<fxrvN$gVSmEl+b}V`0K-+m t0HS4Q.8.GB=h``t;T(8i>3*CyڭeH3C@V|h?)jմ:1GccUC׿-hQEQEQEQEQEQEQEQEW2$m+%^DXq&_,p_VVqIwA\ԏJ۠;Xilh2N3ڥʒ6Ѫ̛1~c@,d+#9'~z(7Mo,%-|+퓂MjfܑߎԎ٩"@/T` JbV;R@s?}3ִ)E4SFF 2]i|ﻳaf̱Iϡ(mo$gdjX'棵Q#ݲ:p9v&]NH-.*A8;:{QEUUuh$A {o+{~˨gulIceހqQW(+xxg@PިEu&"j!~3˞z]6`YU$R/29 tb)ׯz"i &]޹.?Q)'iPIKEQ"]:' ݀xuNggZ]@6\2m'$+ۀ^ 4U{{\ru'JGn U(dщx:oR7#a>ItXo?z1>Q=*V6,qVcY-ޭ',l[jkm;-it^~(i1[103@mK><_׋*5Q0*2gcg5f ^3Kpv]q'k9QǨ=\KLdEp0 3AEAe$#\Mu22=2=O@[tP)ො9m' Fݨ`{AKVa6$R=6a&~A$)۷̇lƀ5袊(((((((ңygK[Ʌ#6r{ճ fE->xd]>dơOSXz)ޜJPÑ@Hk¨|F?V-D{F% >ijYs#cPYtq[IBP0;pdmݠD9SKx^+d;6S>UnYCi4jׁx94d/,;KIp}=рw۩ @Dwvv=IP(fdxp2jDu4WvضW72 qE+F4W0l]O'mמnQEEuo7#b:S zfqP.3~}9&i.L~0 9OV袀 ( ( o=e[WJ#@V~y`7yc\U3n;*\ZSE<.TK"'9#=O ] _9 7y@#K%ͻYI!['TWEśG##*zlI!i%HOPpOT芀PN2OSN ( ( ??Zǔm4(((k;ii`$+/ yy;}P #{3ժ(^Im= I W⥺k `9< S>gouƱ"iTOg.iVof~>)2G?;rGtUʥglsv Rs/7$Q8P"x5Q@Q@Mo<á\IdIK8(`чA>lWiFA :ƌ0DPK3sUs[$#tF?#z1ʚbo >A$v;c -mNtRќFR( qчlTP[LVnXQ֭S$9J#W1,3<}VIc mN 1;yPU#^͑gp =@آX`u@; FD#8ep]zqط#zTBmXCZ{瞀~>v9FxQ)~o[frX듁8<00:Rcbd,GU+My[+Ua'گPTbt|R;GlVPwc*2U/q>r>]w[S<҃q6W";ߺvv#8 hjMr=.1pAN_"\ әw}xtROl*(UUF  ZТ((((((((?C)?G=>񢻑?y mL;ҡ%H$.ʹUqgpjN.Nr\{42@ ;V|sE#iNsG?ϮzVCus3adx(y#|KQ7F䎝[kAg?Vm29av9O1NJʐ;sޡUƗ߱ӵtBzԀjTs/44=He FA#\h-w6q8AۤYPhQOSvɱET?ezYO=-Vp41 Oܓ tid2:,j:=y9= gu *yj?9vRMVI]bcXOFguO ;_*G؃G.%jZ\Yhߢ<ZԢ(yma%i;T q/ۊFXG͏~;Pߙ,[$j~gR7w3i0ƺKBXc'˒=W(( ;h'# ~VgjvWII fh((B@'P~QݷJ%ݴQ\D fa |.m#70:5}i!%,aϘ\T9Ԝ4( ( ( $rzHst C$ʸ<=gX()/@7VQ0wZ˽2 g=:P{U+A2nԂAV$P^+(|I9;Qe*˨IOcϞT(\0OJ[+)<_{P*}m9X}߷AܗZH㕢lȫȌV qOPEQWsmwypN[9}@UHhniOt_C{}2msCT PTrN񰹈G"9\\vaGc{ooaE2ni8e>: eU &<6ǜb@ddqyq4[nx5={iP`D`@Jcuz6iVUcjݓnH%\#}2dO,ΩpWK`l.y_p{Gc"eFS9qB<;!#Eđ{՚(  ʊYUQID`v@I9uTuiXmzoS3n):+lI\˱=LcZ##daR2QYvTi3JѱO~fG hz{8$O*'p!U$"r*swIBMȄ2q{swiܵ.nB$sgz@Q@2Xh)T@6:H_r7}z}qO66s!i^1KM[cvLq72 ç5XjCJF}Wn#xNPqQ h((3.%u?ZuىQ*:#=Znro, Yx\p ‘xhZ$ȳ/vkc?jjڄlDd;I .y 7v}kԻ#]H^1 ݟlT"8c5 *ZmDW,OO9dM{9mۋǵ W( e Oe/s+cs}H}m3% "13wVhFƱ*8][??@!ݕ_jl-'C5DB<`}qV( cj9yzFle,@kwN%tv0 *?2HeH z5d=h?qXPOG jt@KhetWB #PEPEPYyG_v9+BrPQ@Q@Q@UMqps(n8j_OakI8Ǣ?al,Ʃ袀! gy!HT_Qnm1bA'`ynU>պ(#]7 wwtϠMZ3k!Iexz(Gq4vI<8Գ&7 Ixlq}`M!' ;dwrnnwS5_rǽ_{hnvyѫ:9VP:5ѣnPOF9Ǩ dܢ,k$NVSG4wEUuF=0w&2 :IcЏpH 3QA,p4ʓ&M!4S؂V Gi5k{av*8r9@q.7.A*qwUkf28=`:d㩠 4TVeX6x+S?iip#URͷw~"(ڠdKr1MvTFw`$+2bTdp޼]@dv92N8N\CXEr-˖1y,n+ݫt*af_/~_Y!:ȟz6G@i3Efc@ 0y' \'uBedi(qGԜnܜ`vǾ%G"Fl] 3<ǁzbjkW:f?d. ($ytsyK!Y^V.(RY>)OCnx@ ;REQT|퉳/mhy+ܪ#u"V`scwom/ՕYc$鞓)9T)>5dZ~@fџ1G#>3XjZݛD,D讧+lbjKQ"꧸>~=Q@eIX^K9E7K32\FvH@#j顐IZ#cFirӚ9&y&B*O@;cK6<@eCc ա[gmměxlm}J%P<. c;B?8*]!B&^RpRBv^o2/-OBIb*PH)/Yn2 zpc5m4RϾ0AEY+- 6$&`CVvڮ/݋sǩ ??@M?DCӽ a ̦`f?߿?)4P3`C@6qveHMw E4eT2jEUUC1i-&$3eVش%G_n*EW7-۷mn3횩m,wܲ$vՔnv:m 9fbv/0z(? z*Zq%#D=;_Ο\W>ό&XMXq?f%;0fPEPW3ko,6R}/N{x&̒%XA`d`Tw#_ņ~EiP?d_I ]цhlq:&QUMI zP*^*y췸!c/Hj@Awijr:1VF=WK+fb0('ԯ.t$.=9 wEj[5 ; ٘avspwNA88Rivk (AQة1*kn/1Suu K,S2,Yߺ`OJyvwTw$7J?o~E=W dzz*bI Ml.}? P?d1m}^״EPEPEPEPEPEPEPEP~Rzu$-A,p:܎VixI39Ϡ5miLYg.$@Ф(K w$䟩&6'ƃ'{ m8 2{:6>. EXv=;Qr HkLcs1MX,⽇̈́VdaHEOT/lYcná8Y zF8mf^KP̓ ̣aglwvmA3r=qҮE&"I n>fc!S3,|ߧQ۱XZU Ҁ)ij$"(`j7y$Cx0>?^4+D `c $z{bQEQEg]~Y$8:Ѭo䴎u93軀c|($uf8EVQ._;Vd?[T F1@+?\(G%J-n!PrT͹n?|x *n^ Q~Θ nu߂@読F!2NϔR%ݻ$4 /u bi1끜Ric J1[=@m?jѠ(+W$Tu j#ixBIA81Vh {VgJ'(`,pG9hVUbA~5-dx 嵴%ygh||ȃ Q€&с/(=D}{|8cZ5TGs (2 (R ;}A>V/)*L` EPYC 3UcycynNy z3,Ȭ#2 QT-e|o6ĥѤj?Gf-\]O _AR8v]7Nۗz )20eaA"+][Mml aԏޖ;NvpxOqL14OgPF*GJ}Q%ෘM>lϣc|c%aaffu,Xǐ? ԒX8G_9-آ.Lml3[kAZ{u 0AP`If舱.c XWLcx"0eaA"HMC$TY#eܰm2<1CTr迉Su4LY"K= A zzik NKԓܞ) !Ul`2of|3`9GgF]3j |ys3to]Z۬"";dd?N:tPYzХH[IZ9UNB}}sW!p\#0ir3@QEQEQEQEQEQEQEQEs^e.^;yRug6RrNyƥFA ya=LONkC-Ԇ(dAԜ90s;8 W,⽀K@VVdaHE%Courώ3Vv<:9Tq \2>a9xMћPgp0X9`> p&#\TU\nǧ\ jz(w U` `ň 㞽7k[Hcܪ{zUFYfrhf쓫# ">u9# e:m=ɴcyԤ$I85 ȵyYX.c>~$ $Җh6w\czgdHdӚF\=*Xm ifE̖[v L͜` { EKEgh[e')>kFui%қy?d?_@cld7@hKxLpƑ0 !ghw~t٧󮦕%P&uymfc28\ACBf&ME3O!h (jZͼQom(mhhK8 HM%52$dq (`c֝g%wXQ| 1t.39O;JHt8"hᴁYV0Sj+?\(G%hV~QݷJТ(F9*#:4$h"0yy>\sJg0w70vہ'ޭQ@ rH9gD)A#ݻUϴ]l^{=Ǘm(~=r/QZQѾg?ZX@bP +3lCZ4T34P2N?x #Z7mpܮKL1>m RۮG@+:+U<}x.G~OUϞTX$e$cޤmM03nW27O@EdC]A@cI2wb2?QMKH7ʶH^E!nڭd%FI]` >yI`ƥ@$F RI2r6nd/ldMy)[ .PVKۅ+qu*zƃ' 'ܚE]\ v%F?쟧[[<` &H1Ɍz⧨. EYݱ)SOETiwȫd\Q0 s+@tҧWn3ZᴉDi\L!8IRɴ;2!I/ %Gp00p:R4]!I]Fa?<գ@=)jCsg@2Qq=:⦂o5T2r 3ɟ\*dxR(#)\^snd2^ӡ18+nf|ŏր=6;x8I$vz'֝m,tTF" 8=jPZt.v0u UB@QU敥9?dSЏ~{U4 el#7""=pOLtORHm$ fcM`F^'aM6-D*\ Yu-?SekQ6kcj 18n=3U?={^RQ@Q@Q@Q@Q@Q@Q@Q@L,αƗW%sըI{\yJ?1'?!kyQc$L1נj !ᑇFR.LsfP2O`:qh;hTd8z|ˬ"6ePYlF8#hY)m$Gic=gu,3|Ga~#Vi,+&ٝ>X$`zc9!YyhszcimⵅaF~,0Eq*or&-o!J2G4Q;㞣R4B8E,ZTu`e9z j#\[B$ҨT/[u4cV EY.m^;m˷ ۊۢ+uXEKnڣKk.URYQ tUGY!9g/?0W>ھә {bݷ2?jOڼq6`ő@U8dU$lly/BM[kt}Ś bh=Kk| Ф; H$!]ܛK q=v$ 3\B@(*+!N( ^RTLmrR?5psg_%WIT7lUżg|hAz7Q5pec/ ⬣2`rUY,&I-H䂸=qEVncc4HmK#IsS~Ҥ!, A4w1q.vFIbrrm° 8PeۯN^by?_ھ@w,3K\ 6` $omtpAD{[|FAʼm#4O"\A7,S`ʀ,2E$Pyz=MEUV8LQܹ!BcNq߭7PkeHA-Ĉc'v>;@$̺Jc,ϟ/zU+/5wI3(YF}8Nx b&̳Hw+do_aIq&(&Hqyn9RBʬЀpqOo=ŲD.{8#9dM(Y8@3ڀ+ RVSFS>p."o3|9JYI]R4:k%^_2͆|Uv۩$qIH#Gd400wӒ4 Hz S^HT2G AV(2K |#zu5 h?)j\́ 5_ԅ( ; cz֢((((((((?C)?G=^wXѝ*bpm %Kyrܸ.@WO9t>B Q%g!v)Ƿz=؛w '=R3RB$om".@ee8daсEf^\܋ C o=2c? W]x%vL= ۞X1ڨk2l2FIElȀ&mrgvO@ ("eaA*Zt.yXʃ?^>ѬVkuZXn uq Ҁ--[*J˸\yc$`8KKy#6 ;ğsQi-D,9u,e`=O$ ^*]os"L'ay@ȑ`I>h[Omhw(#r;kN R\G%h+qv&Q7L}ӱ#M)o !`dy5%VW|2yG ՚(fIŎ˙!J†B#eidk\<`f8ܬ{}Oǵ'ےt;ne 6ݜcv2Ggy ak]o1SQ{9T-͖D:ؚ0 Z/-"`Q}J )HFHQf'Y%$28@+Ҁ.VVjj U7m;PÐ~=X.]Km )lGwWBЃȠ QR\In-RH`x#2;V2&b9Ksz~$n>@irfh`b?uz6NH#lSd%UцXdEWX&XV٣[T] ^t*LӸku 0ATVq]nFUɩ%eebTßӦ12]A$RJ!20‘>ݵKHMĦ{AKRGtۧyLul~=*v/uFxnyt0zb6h(((((JmD[lqƸחS䉢8Um`.~|޹]C%r\p`<| #ݱw~tT5ӮXҮ@}\Awg]_rO-3rr lY@zEߜϧoS֮knɍ< #0t?oU$2yݛ`˱wFKXo39Ϡܢ3MBӟ7 (n/fKM"9Ds`avz%Ceǩ'~Isɭ(;N/.9Ѣ0۴KЫ&^2q\t5sN/.h y宓z%U& $?~#j _]h@zNҐRF g=z5)iMvv m#OkFc >)̉sqngЊۢ1Cq%hy>,GKO֞Yү8E'Vjy[E$nWnQ@o$M?XFI 'B>IjCyw7Q?ba( /u4QKs-,/ Jwy|K3@e16]-s6lÏ _]h@s&!ti@֍?oU\{aX K |?oQ˭~g؃rvժ=Ō'€ mJf6|AsBEn!/mH6+v]ZOK=ln}&͞N0b;c^}}X?oG _]h@s&!u]N )I[P+jO&4k ۘѫCs=Znsqim].瑌8g=q( 9?MBFǻ-ڤ,x Tx?B]nuiۙ w1#%or1y4d&(jWli^υV:KH!/ &"II'}Mk@rjHN (Ck^E>;l+2ǧåk@s&!ti@֍W(m,/-Ǖ3Ac(8kDUTD=i@s&!u Ѻ&ѯpAaHz(& V}paC Ri@֍_yHϥdC/Ӝpg湗T\/m%Ww.qַ*VǗ,1"T? tQEQEQEQEQEQEQEQP\,p[$+r*jjr^5]BJ2Љqu5h|w\BېNWNΎEPEPEPEPEPEZSi-R ĊJF: xe/" 9綅摝HݺN'p]]((((()3U$)ՕMY]rgn1ԘrPS18l|U]_}K4hm+ .nO]ضs~|Y\XT\I,!Unq9:uQ@Q@Q@Q@Q@Q@VP"ch@Y~> f$\(x I;Q:Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@~":Ii1n78vLj&_iOgnq۞8k? :|oS7qBE>EuI-] ^2Kc.A=svy[ik/> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( *+7o{nkkNW3QB-ݽ?7tڊl{.oݎGohAk 4e?u[R5TfΆ翴u[?u[=gh{GXGXH= >VX";cU7c|?G h?Th?T{)ϱ\c|?Gc|?G{ :+=l=lRa>CEs:ǭU:ǭUA'訮wGXGX=]ZTXc{ Sik?TϱQ\N?Tik?T{9c-c*-c*Ic-c?*Ic-c?*#a>EEsZ8QӏU=i?UO=VVfwDDqX?KuW5lgx~Qt=c⨳a>GEsz8߷?EO\N?d:ƫ<),M`ȡo,[ʍ zS}Flya_cK4cc*c*}翴u[?u[>K{:+=l=l.gh{GXGX]ϱ\c|?POO*,Yc'}ԊZϱQ\c|?Gc|?KTϱ\c|?KQ]ϱQ\:?#9GwLY%HH̭ Q#Q]g騮{CXz6wuwuox )9'PNo,R(Z(Š(((((((Z\zT,EǛ>/#w9_qS .瀷ךJ ,QUv?6w:\}F ra?;qrj*tS%e~\ u"B֓.W  E($?ZYu ěM}c=7Ӈ0DkIdQEPŠ(aEPQE($I8nF:ғZ6nMz00(`JERC (Se!FYRY%0[QO uơ Z${t{uvEmZoWsj G^"Qտ=^P8vCJETQE,2UTHD+bLA_3\԰%*XQR(ET)?1t85~mRi 2#ApLOԏU={j=.@9R PG .%!/[̀8=v{Ӽ4*KMGR[?7j̎k·twmGl٨VCIͰc==EYEA$~+r]db0r4T60DNI6'g5z[T15zv (aETWULU5H>tзسtSmP=)jQHaE-QE ( gyqvyE>D_E?1[S6a?q{1 Kh#1B}=QE# (2hx9*pH?S+< hhq_qjLJ}[Px]|FTRѡ".2̽kU ((((((((>}5Z\z]QCAEUQER9v76?LU#IPXd7W]ج68T1$pB0?)K/%GoצZe73<4P%di{>@Ė9 ub mo;9D &h k9 9x@*/6Uc03#sf.ʮP<ErFeE,QOaT2#HTrG46C^yoυU]CQE (@%QPܥ[f;Qv`W1žRy8U,ǰZs"|T8oR[W~vC\uERRQEQR(UXP|cV)0 G*W^[+qpwqR(g_q__PkݯAU .U?k}Zip/I?ΥE5$Itnr) aET ZJ* H@e! AKEC8ҹ\qOnNmjC14pc~_4=]g+.HfehǚGL?_Vg'\0b8O-巑v(QEC)so$ UF*6g6j$}NAUJ:?(YF?*]ԻET1RԀU-k&e WjͼI"Â@h ]*QE+)hQ@UMFw%}[?BՃo%X ^mz8bH((nAET()i(BӴO j-6cPRVƿnE!EPEPEPEPEPEPEP-a.?G=Yr?s՚J (cIdt* =㢮U]/A?V- JZ)J(Q@G<)dGsiV({RJH yQU*ƶmvƣic`$ )a(pAurz)KѬ:Ȍ2NAi ( GsRX- ًd# #~y!Kײm-?**&X^R$RVue<GOjӨo!Y%e#+{z ! Qm _FʳDr(e>X‘aQ泃`7֛=>]ȥ17T¬^} W)CVG EQ0sa)dn{HKW_9ϳv>5 /ܽUݞyT[́#|LG-!*yb;~S8$JA'Ԝ00@*H\ #iTfe5BLl rz GКЪbdqt" 4mT"z M 4QECU+?w4KXlLSVԧ( Z(R#US WI?{JD*X~J hQE (QH$I &J$`cҋۏ\{' }E_ vQE@Š(AEPEPO?1?)iCpBF5v(h ( ( ( ( ( ( (9{q_w9Vqt~zPPQEYAMn"E*ivd}`CTOXKxE](cZJ(JVvݚC3SJ2uD=12QLbQE24 1=r9e#pxہ=1ެQS`He# EQM 5쟏o+Pb*,*lǦ;OP{MHy$, vT@QEQE JZxif`>, dT>5c /O]@SU?kH س -+\AڧQR(Dp BȨUbƧ ]cR: )FX=GШ`KE"a jZET0 Wg#-Bk*B[<elә4R`̀tI= k!m˜0TuԵNѼϴ09Fdn*KMT[ov}>{ջMJ%wcS~#~g/jLHeIcY\l[lxX!#0P^~uU#;i|x~c5%SyѬ3>"F%QEU-+Ms?3u*TƟXJ$ڿ=)op0E`Q} >*n0)\(UM@F3u'T/,4b{U[(dS{req8OOښY[ Xv/#HG.ǩv=RnQE ( (Q@?Dơ\ ХSO j Z ((((((((>}5Z\z]QCAIKEQBQE`rXh9P:0+ Q[[XݹeycOSҰT$ !+or\{sXgp'W[A*.a&fN:HdT pu0Cm·<ԓJD#AcT\Gk RB$ܟJoo$ҭA,D?zrR'^\R?D=sz7 (QE,q}Ry1OqQG=}j?]]sw7X۱?ƥn/y7KH 2ϽM¿޸~~W9H&"H9!F2}MKPfeIk /eΦ1"es֬eZ,?"qS]5hP;:@b=S԰)Z!_>i>߱V(c)1ɰ'\*Oa;8* ,_eMkv4},߷m}T ]Cڛy&I'py*kktrř$U,/2% AÆR9Ig;p fůR-Cms `*}2_¥c _MJ"Z&t`H*FAV,GՁiJ|U꣫hmMa2z\QH*=ɬSD=pOUڧ)]"OQo?ȫb[RHrIQp)jvVgʠЏUڥ$Ovo0: @8&Q'KQEQEPH'(?ڮc_CoGG^3ذSn=#9Ooo~Gj)7p (Q@((AEPO1?)iCpB0_FUv(l ( ( ( ( ( ( (9{q_w9Vqt~zPPQEE%-Fԯ7 :Tz'2#f AESQERP-k*?f1]Zz=n j.(c JZJ*0ʧWj?!up|4bQ@’e OB0k4c\A.bOvU:k%ċq|T8}[ߠoTnEoo~\sԞԴQRQLD ꈣ% 1'ΆHޥrȤ}! 3뚭%8%mFji'|@)mbwn kQTQf~m'tPǩvϕeY\ݓPR95K8'n?#Cxʛ2@$'bjch7gDK1>UB[Il1G"Kne9fq4laQ*uǡ=6DW%Q9uͼwQ]ybb=k&ԖͷX&[KlcчwJaqQfmY"`d_Oc~F-83EN3=#+Ԗ-G0 ʽyc+9wfqD1P6gEfc-ULU>gc~y (Ibps6dsGǽAq_[y` Cy- MDнҖ*.0)\B@;qgxBaaqi\wmQ(XI*OuS܋*"U (ETEDP:QH(AEPEP Q@?Cơ\ ХS? j ZVM(Ì((((((a\φaq+Ļ[3Q9GPuR(ڠd djRJ,(z"ƄČܸfij],@Wt~zPPQEQAEPOmi?h?Uگ6'2ѻYʁЌ]IheQ@%-GTmKSi_)j. (’*꒼V%p#;V! "a#P=U/ywcPd2eAي]E(c d$Q0T@Yu4}q >5& ]:7*s)Y0OTO_r}ɫQJLxVaUs{d5=2I(I* ,NKY5G`8}rq8vWx7aP+=OGoo)ќ??6`@]i)bc9ӷl~5w')2, m$2Aux!q HfaOoV=2+,'NU@qGҥ Myyu8'qӡ%yva*%C w FT dm?ꖫߢ< (Q10e*j`&7aS!P'._N7JT0/QTM,m#(nٷPڂPuYBnfL`qs/IdEs?ۧwgcc uq ٤ɖ4XT@T`UK\Z GX.hCW2 [!vY?Y_Fv~TJc ߕ]V?\B h]؅1ɬv yG٭?6B:B|4WSrI8/׸"."fVx6%,jt2V(%P݁ߨ_|Tg>daRZۥB=XI>Աo%2hcʁ!{Џz}#U"pz !I deb?H:|@3HWǸj3h^(,#%ݒݞwg|2|mmcB,r,ԟSEKEG<[dEVcUgA,pO>ß\uVA=ÛpE~1_ϴ\ǤZmpvf/7It!*[^"'dUQG5bn̒N9(F8 9vԷ~-ˣL_watU/>Ovq?a(#sj݉Pʆܹ{f ~zzߏP~uȅB[1:bbTL1{}ֲw@vQ/ GG6w*`VNO:>#1HW>? 5qA"+³=p=EIdi!@qJl~H)LWa@iG?^.VL^um"L 0Na}o\nc_6CJP;f]Dх 9=9 VԴW9#ްofú4*7Z\zw'N4wd[+~^WvV -1fXсG~?Yޡqh\Z)(J( EP )QEQEQTT R'7 @>p?SwȢOYOʜ*_Q\HpSM7ZJYFwKު 2!K+| /ֆ Z[#: EWrQ@Q@Q@Q@Q@Q@Q@ܸji?G=Y(a𠢊* JZ(*-<le(H* ▨_K3/>jRPESSWC&x/냊cW_4o2MLhʧ /~޴c]h4os?S.b-Yd`#enCc:\ޡBXb(Q`*OxVA4p}}?AKʼn3$,h;U!u;:d} > In.Ga:/&0ՙ:le(:aG=:VlAvTRUFI'Ve,T3vC"l<=+6-5(^E뮖tg?*տ#yAҡkKs ΩjZ+@d$9,I=zdWᶂbcz"-̅@a02*͋R};Ge֬G\>BWi'T#rݏCPX%ԯcq4xK>Ъp3W+oʑC;ʝPOU $b>RA_FpQfb>p'Xe$J~0_[?Q-KĄ$z]xS$[Xͽͺm?)9 cƽW,fqkا#"m*;4*13emMd[p>QfEAu?zSE@܇pTUH>{붱rk+\ZڑZ[dHpw ab ~{rOϥVbN&+Z(`ơ"AӰ5d:%8" zM4v4Hf8!Yd8|q21VUMptw'4.n<-@崋z}[5bPZ,ܞ59tB(+ޓbexpxGCeZBȲȨNC0t袊CQHH$z&cė}U֩&TU/k3F [MܟgE>Yv K7'w/KH}4WS/RU/Nu ;A dٟ뻴4Yw TA,;4߷K'{i19ڵit 0:`)yz~hm)ћ˷~nLG~Wh*SaO1?)iCpB0_Fu~z(t ( ( ( ( ( ( (9?]}5[OWq_w9wGG ES((S6D'(<^Hq{pҀ&BRP;8DZԳESRPTt{h,G}Q?q?<~aC^Ģ'A-&1-Hd OZIi5]65y;6`qeoh^PTnI=*^",qƔ%x˹LMcrtl̟Y>銻Y=h$ + JȎ2Xz[ /AF foʯWٯ.?1O)lv)Oj (Oy <}Uꧥ'pC6P?,zWj|ĻT.$BC}"k%X@k[dJzg~KtbR[ǒO5,PP0M1,M V )3m CSsX [l" w{v҂X@~ރ s GPTgcM%0pTd~==ECBZnZO|;Ec'>3˛QpZty^^DXR5 0F zi$su 9O+}NO>ʷ.p800OY5%6g ŒdrO헃4r*[.aMʑ8>YW~ovMX#Y&Uc9 횸y*f8cՕ|M_%W~F-#h纀?'[0 ^Tໜ+H+)"W ^[-,G2ci 8Fz_,D5*B$uیlԚq;[FGKcJ篽E{&O}U's }$-=J$d-"ɹC00?h}()eH! Bӆ *{xy{tbB\8JK{`3X*IJ93p1ֲtsGtݘ-k"[[u`pOF?"ڭG o9?yAI䞀q^5ͳ&J @,r<``vmdK%^cgk 1oڸgy\KXm ʲlq8 ~s$Vr#"_϶*QCⷂE eڣwSOD?ՓI~"XĥmO ?#fwO4qW`Ϊ>yi9OsҝYۥ2+0X8RlkYsL4hSgw'W()e_u&V(S]/+Q=nlJci!ArfpX1bOU=ɭZѝ#>k@bzթ;vwomv8*:A%Ď?VRp)'N?a'ĤxQCF=@C{QHw (Q@Q@QLZ(&!CAKQԚ5-v`|&Q^QEQEQEQEQEQEQEsVGwbr\y-8yq]z#Ї‚(,J)i((UDCyoi c~[g]ÆTA12Z*p62RUuQEX4ŠkH Uķ0 g &]<}(ejwyc(wʰLI{UiRMY#bq]3hx^)JFwd,rĆ%$GN?ZhMĥ1_.g^[(ħ2ǘ>8VԬ8٩5 G)P2!Β솮/zʻB[Qm}v'?5WT.Ǭ/o`{ڮhWkxg*f9 uږc>?>[]\8:8qUtk4.3;(v3 ` aO'56ΗrcVG󫴭\:*Ks [$C㷶=)n%TtXܞ)؂iEmH2?wo=jo EDxci'Qz;TQbpqm K+mE>U!i- 2xnoz[F׳-V5xcx-ȠB˱g vpj׏,ȧ#}Ⱦ~$Uk@(Yؚi'N:v=6KR/A h *@ک[I¡mGF=~lBٗ.!Mʑq8W7SBNwaʼ߻VPGXB& `Se"4P+̧"}A'5Cw'ٯ%_zPv0lɬ4c2^mtZRDYަl:v1A$ctI@$r1 ۭc]x֜7rI%}z*9[ƥZt7oSYӭfHDQRpN8=x v[8adQ\^ ?fb6XG'%F 3ۚfݡ4H\1w'`;GW_<^z\#)Ym $ayd˲:be5hT!S't7'N+5 1^H< ky%w$gﱱ \g $lzGiHUͽ8 ǯ;yUԪ n,ujsq }gQZd^WQI#ETFvIH>bbf2z7A^ǵZܶ,%?x~d{W4KS8ԣȹcZ6;'y *}d[okyIY9`PH jZij)V!eǀ'SO3UA zUn6[3WV+EQxzO$椇PIO HX;7MZ,HrIP+ $\勃rsǷ4- 8S9' ``p(;ERŠ(;-%-QE(QEQE0 ( Bơ\ ХM CpB0?DTM(Ӝ(((((((,T47*7w %W;`gî3>sO7e=? =(}Fi-f[;/D-OC2 (’J(nc1qB RǭW?bK3b)>zTdאZ$cq!RW^iD{A Ir}j=>Gv-,lv$}YKxO7b2%-%QAEPY._ ߘU5Hݭ)iJulu_IYD$6 pz(EX Lle#B Wj˧#Fǫܿ<2𤱜O<]DQЯ*J)ZQ0*SѸy/~vJB-[hUڥQO1:B:T.'5ßN 86v 5WICh+Z:RR#UOAf6~q*cI=>f`zv?@(ܚgM䌃4lT~"Vih3ϚGY}*km, XԱ[ڪɃ3e#OឞؤО}WQHsj/L.m QK;Gs$a(H@$Q!sQwy zoBNOj?"gͨ[X٤tîpٞI fS~'ZHP jUDTE 0VM5̲ifcBH!*<=*=mn"CS)=.EA@r+>19g$yfK2~__aӭSi.$x$N d%V㹭8cV t\'}'3qQG& p|ǟE ހs rz&n|=?=kY-ϧX[֠(ݗ=7+6LDijSkjn˵'#s01XxR1m0Gl\LT :㟧.&/Ux؂gzuYc>j€zG+Hѿ|7?|u{!]Riu9f*7u-?]{'Q; Ɋ@car-tPݞCKelZ+ˆr@g*Z#*+mn:u9m-b/3?2zF.B:s9U,p­"USݏojH"{`mlu霌?q.Z;Wq{}J[|lS R=G$ OLyܗۉ!Y_B(x}7ҜSw[';}YzG^4Ib$E6TgZϗ*tX3d'6,%PAEAƸf^ރduhhe\"A t8\U/WH WF~\x<*`ZHkx"FFH=/?#\RGt*m{ JJ"ds:=#EM!vDq{Qߎ.j]e@%YzgR;dU9ͼsrT?22?AְqB,;)38;W>D?53@:ۻr?cS#dJc,z/ƍd^DV1]F^&H)#55T/ qʌC?Qڝgv.7#x"rG=ȩqLL#1H4y7JʲfEmΜycscRS k931`Or~<H/OF?TĐDDc@Tvx"4k"3T{%-g2vTy=*ݽWQ !pN6w%*JQE )i(1h(QE0 ( Bơ\ ХM CpB0?DO7L(((((((gOWq_w?9Uӿz]>Eso-˹zk[!Y6d?&~+x1LSЃ؏ZeU+{ m/[.7~ĢcFw`,U/tI Ͼ{cSƉ M.s>޵e#H'ҊJ[00\!KhBAԵ?KMb<6ִ(@RRLbU ?yO ̇=?6F¥%/9Rb}˔RG"KGBCN1*=m(??2J@*QUOO)\J2R>Cyo{TZċ &Oʮ@:@ݹp?]z,9]X*GPSI]"]8`UMkAW>E]:N4`͈ABU-G>qFaWh>+]ZZg#)T{^K=/75 I&w' ?2(܆*[pfZw:[[< X~4km I=X'3RXlH6ll&<w} sO`>:2J{~|V.EB!QWc x۹i'U-桮-mfcbv T:pHbCNgڪu 9E?Ϝ| ܻ?PAf+X BF? N{SeHXx}$1#r#!OAéIY( g^Fj猎}N@9Ƽ1}IMtBl\GȅlHfF_ei߽gAzG;lɾ nt{uJeid Bzty.Gok&>y#Z!kP Pqw}[4ݲ2F(sb.$<|1T6_0:+d[{XLFDJ~^ޓbY\?1wcPN(I$IYC(lz Xڮ%W?,C}MfNֿGTu(=i*<څ|USAvEs?>ރkl/u ",h3.VIO$dgoL+#zN6~{_*mdsyr÷}"jY,(P2`qE\z)U`('D#j'bQ ~5I%lѹyϟqҤ`7@ŒOنYAD<RiG}잎PuL?GCJz&i߻{~LJ7$~SH"OXkn,R'F^܉NHFG\:QIxPѸ_Ov-4! YV  T/yw3.X6ZͶXXGs=U?~h($ځ zYfB[.pH?^{T$֦ɑ+rJ#R5j#*G%y?Ep+rXc<}GqWՃ(e w$lh))k;UK-`W;v5nkbUd0NMʌa꧸]U լwQ ܎ H[[y\aeG|U˴QEAAEP0(RQ@ ESQET5-GRh_?ف2&{QE{EPEPEPEPEPU⾴$xna"Ϙ !1'>bTd:f;ttжg聭X挌 è#}i A R<;Vј⍈%)ǰ'ӒyZC=쓲{1twqU=)v,nX?SޮWdvGQL;xah]ݺcЃ8^W'`*o8hp7?_j2R,*F@|=V8I&--?Z4!c(eWRR0AU VkRLMOP?P:z ;)s =<&IET{Zc1U t 0O;KV=+O[R ^8;96-339:UƳYit\N?^~o4FH0E:Qqk ämGerl$A28{YF|<2o ׼U=ܾE8ٿ!; $}agvF,Pᘐ@qƋ7R"(\;6hO S5u R1vF=\1Ű@IsYKr+# ayfp?{pN*ܼtFO2wxAEuqUyGj!!l.#ߧEh=5L€az{S4?p|`aMWPLC[Oek ^)vM5˼(,PEh,#2M!8=JhlX#Q:Ky.e r_sA֥me~/\>ϧ`m~M4vipG{ g ,F#p?N[*Y IxmWkcqr#=?I4!e{"CyC4}=l}@JZV62{=?J჋{pvFm2j^R+ᅵX$YُoN[V Hǚq'eI귑I&EfϘ޿SӏojM;̬I 5}{4kFKK 0dڣ|tQ WUh P8+ yX4uQn~]VͽRTo@'j \&%/1E.pJ k3+9.6) bӪZG6+'w}#: ZʫJag"Di1HlxQ=6^>e1's.᷏џ9ĄO^+ZP#3Llu}ע&vC ȝ M0I-o5fu8O@\u,QROq 27,@;i _018ui鳿kW *Zv}}n.DL!<|=w97|,dgizܟ{*i3`goSR +Z_+i$k Jc_Lu>|mXFuod,%r;~~Κ|hZY&|uI}s楫z'mXcoۀG,w$y,]L`4?1OOZԬ|A裰MF]1Ͷ8y=B{k1m;_l$il3rX|.40g WGM> dqg"I|G!nvZdW)[2Aʋv.o|Ϯ} v.PtO'jm.) 5dyc'?jg/3ٕ2sˁ=9"^oG]ZhqpOp>֒$m~iNЧ(v<~zڼ7?E~dW%Ho4Ow?fS*"(Aݱ@,z_Nm즕yuCza&B2n͊iIќuv[[C"*a\ZJWeCư[WjLLYI)L$"e$R=A4+&j[Kid O VOx٪)-MPRRe)'O=P(]C2yFGV*6s  nwN_j r 6ETQEP1hп1?)j:Bơ\ Х2ޢ+2 ( ( ( ( ( ( (9?]}UWOWq_w9vGd^*̰Kl8n !!Yl$6 =MI K1ę98qQE2QEp."U߹dCCC{RAo%aa8[CO}FqWR`ި}{l?y{f8t` * KnydN6d>ESVdqDIgxfftxG_ NݮIT4܁8:sqAI,q+IZ9QvOjʢ!T($)w13JI#^BEso/ s #֫Y"Jl3Iy. ģyL +#e`p{dd_/cnǹNy}I1{8 UoM\Ò0=PЀ{S໎{Sp;i,u҄ ZKCRX=9TO <êR3cAwm6o Zd.SO/lBYWC*~"X>8.Orng=ĺܰW5vS8&ܪJ~hOZOen mF0%ι3J,b-H -m`-ݾ0Ā> u+`y =.u3XW=71Wޥ=N !O]Qr $G=xSڹm6]rC~l.b^I8Ϩ=W\EY~V\` |Ӏ ^n¦K]nT.!n3h旡y3=2bC*9v<_ c@737dD`tQ=},Gm8Ud-dɩVn&`Cn3Aۯ^[|sN/_";f7EAC8Xc}Oԭ+ޱيBanzE7F+|q }}ycgfgҏꖫou-)Ԑs眚K8eVAz8$׵=V >6Y ;F [Y5GHr8wBOG%k.إ\=ߠR*[@X".rX)DȩklcyxjHmIOtYՕW!Yf)oq$n1dI*{uԎg.޿,q 彀 T3f$yR#ӯsAanc_2$br~}D9-ԕ%QHaEPEP0t/ j Zп1?)kdL7L(((((((:=bdsc޴`+ĐHz20 5sWv5?g_:2U>$ps]Q<{井Ub| #۠ X",!H% $ԭEBL >jU˔RQLw(w ((k(J%=GA츿P1?^}+BV:0eaA"as& rrёc1X^mfcrnC@Ow;[]#i_!U'8 +rNI?ϟ1I˶5^yo|z@"#AA}꘸N;oXm78}z㾍ҁ0FGCEP6X|jN1VmnB1ʜ:0! (yhH1T;~QGzCmt;/?"n=Q 6FC#V6w;5̾D- # cgOi%h!P&NF02WGRI0`'<# }G9HnC,sĒqaЊv @LLQ:8G &%{tgQwQ;*rn6X㹁p)T;EVӥpOoXOPJɟ7>Ksx{-z9=sE0]wfbP?f< k<΋: |֑@V3f}jyU5тۺEG<;t>}y3 O7/ך@2o5|˸d0Ux~=SA=j6Ey`#c SYS@[:ypO\@м`]t!x-ԫ f4B3Bu&.#cy {țQ`/2Ұ|}pi픎@PŃ~` N✔b34k[PUM@Ȥ sFy'82%Ă  @}Пw5CI mSy5o+Н1ޤ{}-*7.@#=䟧NAnS%7Ƣ1Jc>Rb͵^lYAOwo>n|+?_! AUQ̍;'=z0z}Oޫx&Y_qD'OLՏuŢ{8]V}?dh2$ yvoQݏ?˞[otϵ{J,dL`T0]OrZdh00$@<֖1n%&$L_h`RI #Pu~NqWmc,>i\{*3zg;lKN#~&J{?V5ol}=:RZW%YbLLvpFzUKHv5fҥ+Y:HFQ`0>tVEo6dA(?tddg,]Oi%`'k҃PT%% T7W&6BKTyV7n'{x%Y<Y|dp??{vnv9wnY8=m ıy\G=XA*GSMRcy>Mh:wiB?NoMG"F "UDTE 0T\5ӕ"U#_6mbw|P SQT6d}Է-k~=wc?SDv"إRZR\y+GOk\/-+.ÌS4oe#/EY-*bB8g%hV(# E+&jQE"QE ZJZC(]hxF} ^:R+ٷ?soRQQR0(QET5-ER_?ق2&[QE{aEPEPEPEPEPEPEP1.JǜOJfգ,aO@}nvGB؞,QTY* *rq+-'|=>yo6e(y@ZQJWbJ |>yXnm`Pr78>ҫhTܛ*گ ?1nۿm [|૏ (\ESŠ(w_|2$~dUdq6)J di)FĔ[ڤQXncctoßaVs"pUA(a}{^lg;OzP549p}_VIpUfFh`=b=Y#)ԄUco׏sSB^k2̍mj*sO၏n\SH'%O"-J?\$c]$=S. w4S"l0UoMRzH_}sɩ`#QRqѿrʽG"K+ )#}0K{o'p՗ѽcK%6>qQZfXv!gppH=\v=O8(\}QV.E"yf ecYr)䯢Mߡ6E7z0?JlWi;KȄS8 ч_P(;{- qڏ_Q{iO1&ibheh8r>+ xKxy urv՗ r9_iظxP( dHDpb\.YIU͌~>^kvU%9et{| lۘ.q$p3g~ ta ̭Es++)~z.+-ӋiSVS~57#Zl61hkw)IۨLcgzMȳ.#d$gGVooY?߼{8${ /ClbA s!;$ctܻ=)kE<ݺohAXȽy۟J|3#i>2}j nSa82}1׃M{K !u$W#qk2Ih6 2X>O6%ƥ|u>\l0?@~5]ouQ N &@';~8iXXtvh%sy <ը-!%>vij*vBd9&F6ZgkpO'2HF3arjЦp)ІI 0 c@־L2fJ`xf݋}eOq)ϠcKۖ,P2Fc?u"[X%%zI>Tm _u#$˒s=>֥e-4FQY3D-QRZ (H(E-%-!tYeaqUtcf9&Krabz~J/ӧEJ=~V6U-SC.E QE (KcPRU.!CAK]/"eEWfQEQEQEQEQEQEQErr,VR9¥RXƑF#ߵ?>5YYŕЎ!+5鱆Av#+;#dŢJZ))h Q@ż7)OKI@\ǥ_ɳfa_Xo?E+GV8-O= } t`z9TKg.2K6?RFr{k,KRB{NbvPP唿.#V#~/ob]b$m3@^kYH?Uuu OBA; 0 A -'MX~k^q9Wv][y?孷7U[[ u$ȥa܃OY&UD?pGc*S:](#*7P=r?:oٯ k5G\j +sƲ!2*ٮ?o:?pđ~O矨В/-&ǚ?b -o4r`qFw*>f8Xn$uEA ʜ jl-ZA@6=s։"7oj#c 6''#cSQgܼy#/l7! W\][nswc?R}f_nwNwLFYyT@8<`3>bXEXl`r~ U.ўQ~6 [ =YNp:z^ȣN< U[{,\Ao2)g1ʰ6G$[HmbIiI 9r}ޮ~h16BI~uu3m_[3) *"uڲV}I5"w*Gy]cq[,3bWx'.s>.2 p ey=O_GWefg%G H0Ln%U۴L>~r; njuY%Lrn dy<8H=k3ϕ2KqjoR <Ğ2vI7rQvGs8b08$cQIvu:Lsg;^b8Ntu9_R*2th[H\>l𤺆夎e @703jŲI$ 2>ۻkX&WyB!0e9Iuz6?VKq--6k'g">?-% G;I^ol=X4!_Ąi` LOX&$v[`>Xcl{(4 sM5\# :欓c*LTSr{5km 0@>Ssw;~?!Im$7R$K8Ӟ `=ja*- &RGiK%pHcXtU]@w3KnK, ttē> |sSo((4T*q 2wO#Kd?'~gVɒRʱCsAOEh]+) 2p}0i[-\/NN..1R5?}5ʪzbn[/:Uy848>t%}.T'V Y|ķ $팯n{pJlOjB6ݧ+`U^83G Er09R.Z4U#1,,b?!\IZzگqakrA@0ÑQyZ}۫yOEssCm+*#pT:AGaf\i[z7Lڬڄ_-bGxdԉ|"Q" ƗZ}4cKy~ehwHṀ ?Kj k?T,c2b@?au}9ԷL$;r\g=aVG;fR/KlD@\G)ʬc@ _PK-{a6[2revR\m/5+d="sX&il,r, ,˜d 1rWe1YL@>z}M(h羌$p`$7fc#S ٚROs13I&?mTUjL #.rta[<53]Lmd\Gx~]ۦT}n0sEeV4O,oKP:x6=[Kku^eb,e }wU8i! {G|H90_o? {8 Vݱ=z{SFn55z][ibtOޮ6'<Vb}8fr  \\#R\H #u0v@Oشw-LyX:zzS 1О 5>I=7: _*%YX>p bu >1(a'C wnn-㑕%|@*0wV~pQIi]2o'{Ke(!0;VE=XM(IHE{Ǯ&ћ-obI 3.]3d[t7Mg<-l`$#ʧZ?#q4{_G5÷$őP?h bl#cm;|k7^ciG6>p5ZUm;|hӿB*6>p4ciFrGN8?PzϜ?w|Ѩ^ciIϜ?PX02~]?OY>%nD0)Np=GV?Q\EPӿm;|hw/T?N85 LpxuD@2:N8=3oھ_:FsVϜ?w|ѨsfeIDLY@rqGw|mCIRԱp ØעcG>>p4jŹ\2I#JLӤ (?-v)87)e lM6H{xKQ˳"sc  FvζXj_};|j^61fb4[9UUE * ZϜ?w|.,\W>R]h\!Q-&[ӿ撸Z7n-x; #X%ڠ48袪Z]5#cˀlܵX: EOu=˙ݪo-*̺I"/.HxQg{V@_&Ð_Χ*$sj_m6S+ l`'.~8?Z|Md\X=jSc'[EKC[}&ݘ{BغwC|ϔ?;^R5Gp@?ZriV/5}:T;>ا?#lUF.\/bN8Om;|k;t,/!oU?m;|hӿmw+عERӿ};|j}.TN8wXPY A$3u5>>p5^H7]]FH<Z~ U/};|i?{*>>p4cG U};|hӿGij>>p4cG U};|hӿ旻OF]}3Jbf\$`? *>>p5RQzzϜ?w|=EQӿ};|i=R??Ϝ?]ʹ6,jaZ+ tQE{DQ@Q@Q@sƟj{{hTD#5)!fS=MttP  { '>n?*_((m-V.Webs|֥gۙ>P>sIvW*EP+Q@\(EP (ZEkadRH>o%֡tT}\$I8+\,79&9{dM&(TP:0).b[OSCQ\jR[KK48へ~HqsCr}j.$_5AeYCk3@1/.'u!G {="f-`#TY<>oQy^r֓cOSEͭ쫎7WS"C& X|GQԩ#SYj9ODG'*eDD!4y<[<&XԌ$R@4QkxJ$@ $d*$犢}8gepPIU"+2FeidB1¹u4kY],|4Csg'4jF$ƻF,rzEfESok{>O֢[VyTm2H j[[Ұ[&ݱ~g&c Yu Oʹ`j_:EJer?06l`{ S}~+)PDU;HSi&*G2JF3֮:}$\jhEwϕ`n |:K-|DcЀ 4i{w|~b_5OpxK7ց>å^\@ְҠ,d؈ņ8E[ȱr/'"ğUFME1=O>k&լHfx P5ڟ_T6}ynv>@h rr MVrep?UU|i-\G13|km4թ>s>_v!JdN,7ʈd[V]290ᢛv`uj-I!$X]EZ-B$mj'?458qbЀQɾ)SK.c+{Hw| i -U푞Q&Sp\ڭyw D <̀3y1Im F`m jfT?mqoMp>pObH%IP0aWVf?JhJJZ* D6!Hmf( D8UU@(T3,Fl1E\J)i*E`(QEQE(*cMS9eqʩ]&0y([@[(Q@1?)j*Aơ\ Х񐙽EWHQEQEQEQEQEQEQECerK$WJό-1+J[DE*KeWTs2 b+;#6褢.-%P+Q@\ZJ( *rLo\*/MLgq?~`R$H1O췓(?o_̶Otz]8vK #lFrh&mLBcw u5?/XSy2hݳSeyNULC Jr_~yo֕t 392-U)\H!!"w,9!eƠG&¶fA ArpS~pOLꐹ"do`23%m[p@RNӳ<v1F\,jhmx4eۿ7%~]Rj(#]JgStNO]I$n8qG}B <Qw@=RQnF J^G2k[idpO8^1])jK .<|$KԣDPu2\#)t9$n.b5R[~l˄l|$0| )\Coif i~z[YbqM<ɴ.zI'= L̽CSȀyIbqn [MCHrN JxʌuyCa9N=^ثH(%-7BN=~ǰ8Ùm7}Oycd !W)0s1nq׌O1TXd'9movO-7w\2qqҮAM 9c,R~}tgS8eU {T6]([cFOJqiqmm:]E)N~lK=3O7 ndVϑz%[希ǀˌ~ Ku=>Z~~v"`J<CRa4S7Cvr(?_njŽJZT}*L{{$D%\}sYEَ2 F rpO~5=d[JpOHI:';OF8kn G2R ={2VOC)d2QVikϘ4Rm$[Ʉa>%3Oeȫ5ʹ7Q5uFzc+V{%%Q"v÷YPz 2!1igr? eܸIYIp v;w07Wt~bޥ(Ţ\_[f\dDɨ6n߸;S})\ R]J9 k!U agjj}6>qE1EO6PGlޝo7w3.2>Q`&xc?~%SŠ(W V&urc#}MUo V/d {)#$ gW-UIC Ey3\ͱ? @[0=ͨĒbq8C%~$S<˯[,~Z Q8ע> U"7r՘ԟMIQ\\Emg2{@;jdݔqxcfe6*z)#;4Qz(үﴷ= ~R~˺>aHC*X`f n%z񅶺Vގv^>mP̩*pG&g 6T1 2HgᲴ+}'1ʹcp 8,q,B?PbNrO&C[;#t3{4 G-ݮ[0 ĩ=:TWjڵ1¤du$\鱪Zۨ)t?FbRejx'P-ܥ#b|?.TA<zTluيLr=>v/?&D8 R1 1ذ%꒲b0>߱6wNyOKE{^#2{ktU"[uh1-uRj^6U'?9':֋o{ 2))ɆAdS$ӣdvc?^ƶ2͕ˠSfDN{UoסF+y=5IqscumRVH9V=:sW-D~B~Y|XI- v%V dޣk.f22#bXثq{*i&/a'ٜ1^QRC{e`9I[rKgr퐏@ԟlčebonA/C9XJClhGEDU@vma@ m*A)r!x[{Xcu=']Ie͇VZ*>}9=jR$Ѭ:0ʲ)jֲ[H ee8Y=Ho~䞤_-n#K%Ouv#ҦI ZqhVXY/8I"$ԚIr< e,_@=Yj!:V4r:SuȺQBFnlbġ^ w2$0hVlf>QE"RRPHQEQE X?ݶ'? QyRG TlE(AIE(*]CpBt j Z QE{dQ@Q@Q@Q@Q@Q@Q@ܸog$,iwRoekH8ݿ|oVVqYNL Žv#]B[G}t?ǽb~o.݇1ڥd]U[Rzg~[7"6[đ.sP2}jZ(+P+E% ESŠyE1O̺R-xSϷzAr{حPfXv;sP>Ȅ[??_q5bU"cbr}I<_qsl"4f܈+1 )j3,ꅦ1@>>zSg%P8`b=hDIE4$:]GV1Z}?k+^)O:},~{}:֋{ Ϲ#=vMMoV@;zw%˰؉c(N]]ȚtoK3EOTKJ"@ћս42oԎqĭw#rwH۩Z@P`ڡtdK q۽U{])y&~GՏے}nd2r2FV%>Ҥ2w;;zEZű f's}n]m-liݾ4ٛDW&CI2']z:{ճH`ܲ5RjbmZf>#^vt{~c7Q|eL2Ocdy; 8jY1YHNwO{ltBJCqf#K->Ce8R ${S۽Ui)cn13w}w/d q?czԡZ:z~:ݴ5&0meRp\#X.@#dL w!XO}tD ˾Dnfےin1ґ5b᣷_i m;9'zӨCPg#~\~qNNO@qN+H41cR}Gp+::rSvcRᠿ,A8cXsC{$4УU{w;"V[t$f9n̸{W{:$1uZF~tL#Q丰2hYp?v~məmPs+By;ˏ:}:Di-41QL' eW8V8'+}#YksIae}cIgyv_]?/}Wj85 d#4l6t#S5x{\>̑Q.#pX $6}?U;i#ǃLR+׎Iyhmבӝs8z854w dcps>ǟLIY-u+u'˞"rp}AӚmo  Wz7i؃#OleWy{z2jcXV+*9rzۚMZéN&bT#ҖK-[)>+1i}}֝6 hA,=9$E*8I[OO Q_nAspz)9Wu8>qbpʋ$mV="2CCTl t|ܜ # sI铌w"+sk(Oڴrg|rAc=+R% IopBBcQҪo%udf9 K=߿C،$k;)HX9:0+ =+LԵBuFl `}8| EVĆI̎Ť6s=3銢nY)E% QLX#Qf8\}S Tcy}9>n5=?_\B:)n^ެr}qʒ0zIE;QILT[{u x#w;X 2Xw5Z y.%[/1Cϫ{;jD\KC@z;gTvfh#鍾^?LcǿA"e!i4DAOjV`Y I= u VPE#ף"㠆KVJO/ίfU$Eyt-ݴvƀMWNQi*t^hV҂7 !_aW +Dˢ*zmK'1{cč$7z(?3ޡu[WP#!#gڧ7ɐ$(LE21zjiI+&K?ПJuV,jN|v+0,y L~OժKZ2yTZkݝBk(B NOUm9[[2iڬ,fp(H\0ab=G Z7o6pBL"yb`,8$cZ6K@"hj̑y:;D?ܯ_qH"?#?҆FJs©[͗̈\8)9/lHIk ]G)猪@N&4٣UgcRy!`w7dȋjszMZkȋ,[ǙG^^+١t*jyOrzȿ^x6|v=T|#r3]Ybmw7nj}39&e~'xx:2z?`VΈi |s{yAUېGB8ym>Ud,9F2GXZ=FѼx vA4H"O%dg?{+zX-,vܬ A n*Np㎘.~n#8GS`9z8re>v%-ցyG]zw/e?r3 (%QLQEW6补b5?>٫B柬Ĥ_?FoTWVIbZ$!3ǒO$ƧQE ( (KcPRU.!CAK]/ 7袊QEQEQEQEQEQEQEr?v?s՚cnG=XB 8d-Csd#Diſq-DlNd!eu_cNdrmn1aZ@ (Wn򵵐W}o?A%KmI⢆n/dNR5}=OGIihۛ-$Wp*+w )("QET7W1dg@bz;[㶅O`r}*K(\KGr"f==_G]^c IE p5XG$F,b. c?UbLinfe4^inC&&5I[A؊Ѫv%`rWfC}ԉp;õӟpzмɔ6jeȴqާ)R`*ǀ?@@m V%1~Ϛjf@V!#Sݏ_l~өh_2R{XDO$rrTr$=@?x բj>vͼ_V2ʪ +)`kA$F~suzig$~r[DWۯ%| T9괚]";D?!Jmjk}٩u_M6fqndb_2cӊ&MGB*:JU,"O嘿WP֦j^ 7:Es4eAAqs֤o4Yh#A|s 2GE/GɇJNޫ>+RMGЌ±u'{vH'qY~Wd\oeH'tz7Sddh;H9=xRVfzUNWOORNMn&_u`YXq~\.hOd4ZJlDǻ(Üp9ῡ5vЕ!1r?;Eh]^|y!=??LꝤ~ET_jr8xqЏå,d6pA}WLۘ$cwh8v=E(Y0ЂY7#?Lrhl!A%=tă, qp3FT[oUaS[$u:dWvNwIye==&wGs8FGڹGfDl2y#F?. mo6!÷2? I%O8R '99I2PFEAiyc2 #ܿ/b۴~v? \va 4I"e>ꎍƛ t?z[֤uv?:~ϟŗ*DąSYf8dڳ!ߘI[ZT#Nabb\Š)*IaEPK (nL8 ' tra=!}ZF>UZRQea)sP ki&`[b(ǰTe}t(c I9.לS߮U乍x dz #;Ԓ*Ȍ E 9YV(G;Qf>U]9-beŹ*l6vЬ0Wn `Azb3'df9m0?Ls-g+GG+5g>nL(ƖPgHeR0?5 [Xڤf0 zի\䜥Z.dm6/&*VD:}anyUۆS3MC_^O [ (K9/*1jƪȠJVFslHTRJ-/[iy}ןW6].=-㏻q{j˱mֳp$I;OdOLWV3~5ujr麔i&OdzNԧ}=L1n[K_E:Y\ܗ9D.dmXM8Y}=ڋȾ°`̣ه;)䳑mغ1ߡ\(էZ pwLRee܄xab;Uv:QTu0XnOE+S5$Xn`}zg7HLvFYg= Kfߘ 7m$~\vB;Ԍf\:y7*2c'!wӹVӼGg-;uem뜣#z5 !0˧֊d{c`]+#Àp*$ΐ\\b(gEDc'=q#rn{Y#l#' /yky)W(Y 'mls<+^oۼnxۯ{=5WwI$opH~ŀxv212l +`-dG%T 6D16Lg'+ǮӊiW\Ơ[Nۮ0>֭\G$re,HHr>㹬[RّZ]#. O9oѮ)"'?ɍ:>fڲlOn}$bhim 0G<@)#q߁ӳu+ lЯeB>͟Uu[[M~hh%uMʸs°PLf5ep,m]a2 0Tcϭ\hQ*" K<Ǯg;1' ?>tÑ1 ڣ,t+T*Q7U-\~kPƮBK[ ^ퟜ`/޴xp08QIRC (XQE#0U,I=ĒE`bpVדV5x`#=ɦ:C5?cϠҴ*:QE!QA!ES)(.!CAKQT5-v`ߢ+QEQEQEQEQEQEQE}۟V*KV+ч2oaMwTRUFI' )f ($0@EƄ=#B0fo}Тr#;Wr#,l,aTp?ojxcurJ*Hd>Ω1~Wwgs##2[ (?fp]1g?h&!Y@YO1NOaV"cB@ g;|} !sIE%36«_<0 ?=daV*W\c00>1'Գm[@JOR{O5%$e) v|{~GT%_S{C]pi4L&#S*15Q9\Χvk6}@az5z򢮩͌=6}֭MGb_YV꺘?zХEاbVQ`#}0~ h\Rܟ"׫ HbUBWo늹Uu?E%C? *[ 셕aCM-H% ,j`O= >qCw$;p6q*;{RcIh?#09fe$|⫍5L3۔T5 Yobas J,K!x  VW RT9AOtI(>jѹu3.{o~-f᯴s扽~=#EX-Ыtu'tϽbib!M2WrA"|]e$>췱 io7MdCXzG?P1Obc2^ݓOߥA c<\E!жR~C^fApk$")>e#3it<~~2p+n~Io?CU%"?nS*d {}ӥf1u7e 6y~M-]=yR4dF ߧ =;cOk)f4L@}ԄEF[@b4gcĮ<cR)?d!T'?iԡ}qIAVMނcXbHDP=ڤqo5yJGU7?\Up2j\~pqv?+$&O1!H홭Dg+c9dXU&6uݜcSw)k;Uv=zmH-}a@V-KhP+>k6IQa !cdrO+B)Rhđ8tn*3(ŠJ+TBK1"@;%}lYI]QeDF;0r0݇a迟:;YndYNʡOj_öQR )QE1QLAEPEST5-ER??׃*7袊QEQEQEQEQEQEQErV].G=X}.G=VNVOgl?=ֽ(5p<G>?] ` EZFmRS&QIA7^Dk¤`'9YES4Ѷ^OA[quDY13F.e#?J$ &&t*>.ݖJj:ȡ)TRՙ6-%WY݉3ڝm [ B.2zsjjhj?%*4-'e`4M4"ͽҨ"ջ[B-NDh>j D{X{I0'$KS9@MDJP#g? 8g;"͒?-'ſ[rSYJ-:Uu!'p?ZՃd񉡒3ԯ)m=^%c,xtǠJQKecYxe]Jj>F"2^KoBz>&Odž GX%[~cI1sŮYR;euu% XݯAU7:cV?5fe2r>AאxbZ#WzR{4eLnKN=;:lzUz(| ǫDpz~^lOƼ ?ٮǛt,I4m`ޜJz͝#e `ɸP~cݳ\KjZ6qD1Bx#˕w/Q؃cDiT!@Uo&[.m߼?'1ҡ6Զь1D6zf*|1qpjv> W)&ЎIt獿?쟧sS^] FcMH(yo-%u;\ ?Cߵsza YRЎګG(~֟@I 럯鵱x,ov/&Iy3?z?_B*_:2(X9N3Y6:Λn{-|dl8pqy={ Gy<1Ĭ@~||A_J唝.|JMݔ9sŏ;F0Ic8֬qI:˾b ELn4G0gN=!gQY<?=ۓߊɻCd,u 3?~/ҡ"#GSԂ{zkdh,O:#xADKdwQڠg32}mmi~w>0V!=O[1s5 ՚.Ū̏mC0slPy4'b[ +.+{I?mD3DT\noq7@P˼DjKnEzz4?>"H\0Jq=uaUQB `0~QHW (QE2nQIL(QE%1 E.!CAKP-u7袊 ( ( ( ( ( ( (8Eeb3ʽPgN(8" ¨Abj8|5{*yPMŠ))S& 呂)f'wy4}W#?zv{Ԭs?R}j%b%+Pr-䐂Ί2OG4dѼHCDsjzJv!˹W\E*9CJCOb$%%V 0JQg̶Im>`,9'jbmrriѸr 4iH~01?VaRx7b+Zz ~qcr}"ojA~7XX~aB1 cG ;?>^]S_yOn򍬫<nK1TVw-`IcV;Q/z-*_gN"=[ ԁ!8Fs'U/`+1LHc&0U;jR}GIy#Hh:~5LAR?* M[Ei8>ҭVE:{*l7j?tJ# {nۭMos; :0)'08ec}2;Yȇ RnOqV930ʣj=j@^kG. ~K=5u_wȼY MAim<%G㟥>[̑S8':y,,(>IOC}t?ߑ-µGsBŸpNs)b_hm{h31%P[[D:e ?:Qgi/mBP=*# _3  <h';H$n=h8Kjxcpd>gS)GeI $vLj@9;{VUDž&l`6R[Y1SҹgE=U_;~GQk%+PcO<4]-cydg;f’]}\vbe˫W2f12n?{#6m1յ{bDe|pG͸z\zP2yrow˗22=N7)a oz7̀XьQY#)7;yQ{qIjx xy3WUt=S(fDO$n 3حӨ5i(d$+Dly Ry>cym9ȑfI #FXIkӮcr$g.|0=^uX敻\갫Lgnxh'Gӓ:Tex _Ċ=̆ZxW}QCsF1'_PGlrmfq}WSs]2N ˎ$V1Gk(ƼQ*o/n%i)0wl H%e-I z֤+m}ĩ˰[wwHTF_0g?V<΄G&I?餿On?"Rs{rο,Ɵ9?]7+5 l' Lu*2hh'O,=edp67)rj)(E%qh-%SŢ`QE (Q@?1?)j@ơ\ ХQQߢ+,(((((((l\zt=zPQU~*̮QA-%S%ȐHQWN-4Vk4!$qqvj.n)(2l)(4l*!Nm!c龮g˫ɿe@ًPNei) 4IH甈^hGxǷ3WwYe.H352EӪenܾ'eRNWve'ٓhx1֢yC<ҭ$[L 3}!Lx'٣{ƱLjG;E+ylQ(r3--VђOf!&0/f#w%{Th)S[Es-eF~).m^bJJzP5clȍp9\ zK=wLH8!*^H[y-ۓ:ot?*=O^Ct0 E%Ik* bdd@Fj[D}?5Ȩc]da`1=ʳlq/GHe;4eb,1ZVW++c-@d)Emu|Jcf &Gy=@:H!Aה?ZlJ~Ж+&e@H @銝 [ ˷?ZŝO9_-vt )55+ssKm$<`Pr})N)XnT:ri{̈́In.@:rk3 IrY=Yq8#vznL#+1So$WA cvf;yapNҘ-e"ec) }y=F=V)[(ƸX9'7 O`DRM"a V[?7&XHXHYbrIL 33W%x`O?Zt4N-G'uGUs35 Vec%4<ӟj[/$h֫g d21|}E[`FZ)q8yEv/|wV3Cq#Kf,C'V5Z[YI 7Vdee\ӆn4G;? ERn=0Ah٨KW02qTr.TEz0f֏\nu.-#hT8a=EE\qZB9S埠oT_JUHR9$+vs'9;j_DmXMjw&$$1A3Z?WЍ8[s"b)c7"ȧE>ck+{xh w&~_ԞV$g~~ϰF>)IഹN:fJ6v䭧Y?-in% AXȳ% >^\IlL?"qY<FHm䢮74u4[[6?7?/ H⵰>Z"dBy(7?Qո~?~beW{_28QI-Na^CحtYy/eNSpX'/?*vqauE}]8FWN&xKUx-^sOs;hA,sm{[ymDт0ǩC}1qVǪ%|[]ہb:ߺ/Xmcj~ɮ_ oθlzP}NR/)e W KMED_SU~qSmki leO犷" Dn \GdfGΔ{?ŴhT USqMU˵WNXpP2>:B[Nɻ0=ߦ1+oHMqydA8><"[]Ct2SA,o EDᄇts(ÏǸ9.r4UYxlC[Ľ?^QȒn2NA.6QEXw@< khI 1[Kx`e.ʛ}'P`ڝ "èaFjvS V ܍R2$Q?nfQO]?\)O42?Elԗ{Y]U)݅~v~sȨth2zW 5r. ?k!ē'pb?b"*r)zW,XosO _`d{ۘǣ8֏>ٳQفvͭ>7㊞ -o4rc9Zj(6!}CAKP-ua?Q^QEQEQEQEQEQEQE} _y5zpQ_%Š)*[ (©OJ/L?*7RWߔ.?=vJ&i 36šMIc)5cOZƪ0D8?ҧ'5IjeR~(l(Ua(US%kVb]MK( |8n_pjAd5WM%`01۷s"f^RQL̫|\Due?yG"GU8ȐTu_.E̊S+YJ9J׫MB2qa G\Us@?/B{=ңd{/ cFJGo:7_v2` zHIcY#`!"Lb5{5'OIڬ[rl*}?K)#񩸜WYLU@E;N@߰=_nΛ"0<<<ˈ9 {qƬT4Sةݧ@POn ?o5n/x!,KrrrX:zѨ-:ldֳe =s7)y)6K!\+u42jF?R{#27s̢cH{d qq@csQ.8O2/_Gom ;lrGr'޳fޫ,0Ivl@`yoS{$}ihct϶j"W̚CsW{"IF'72>:as\½bȧT2p{Tw9Tv5İ+mǦ* F'ьC3FDjh&K#3C)#5͔3-ZBrGsPA-*އsP!1{0*W.U9,LnY?+1__qVjUԊ_Ar X_@uEsdZw0գ jW!"UrxGQBpBf3q/ч#*fQ0@̼g95ӅV.-Q^QEQEQEQEQE8r7:mbdvm#>zXJʱG:1GPL7cv9J>mo+E'zr,$YcEֺ#*AZ"nG=M^>|gz’Jlqmk4dD끚m&Xc{΢xჼ"@;պ:D) JšMLL JMFƩ#r*j'?fjTn}'OuKve7x)Q@n~KI?^# Uo 0(}8@#@ 5+v\/ Z(fNo{ OG*Gq @>@qЏqIzIEAe3M%3@?;Ƨ&IمGq\BѾpz{RSfC9VlvU?ACې[\$4#,@׳c9S7HBQOf/ȑ⸍v Bz~cMksV_.h2zQcQeksG^sEىRKi!,r1¹>ԖQnQ~n0QOPZq!2 fؾe-%QTۛ^&Cq}WT\Ep\C} +~WQfc$ѻZfIQ.҄PN 86tBO 5QGiw_- oVh~ѽ*}} aЏՅ'$+stT0T\ǥяGi?u `yrWίwnI"q k}OdHP&b 6y ,y [i\(<ܟ@;C4 *BY입oixo迏>§dKg''Ԟ޳cIC}Yb.Y/$_(=azZj.QVbzuP ÎQ28]vFʜ1sKS¾y)>Ջ0xvniza2Z[wI0e9"~SՏfr/gm8?­ eWSk:`eک[I_[$ [oZ&'yNW/Y[Yz_@'tdcXn5fkM!ª~R%^cU,{=h+Hz(?jH"FS!vcG`=A5+rlœ,s1ˡGc=*K[,LS߉=Auh!I,1ʜ2o<7w,QT%[k1$OCfRjøRQJqhIK@\(EP;Q@\(*}BpB  ZO: (c(((((((mzzu_9j!?KՅ%f IE%2)G} ?Blϩ?dH~f?t!M삐 i4McT#e抳5. Oպqa+0$HoVu) ES3 ZJZ` U [_%zt?5jԽ?ˎq QE30(, $w'ҮP@ 2Pk:gBb/\\_bj\M#=()gfzڋ{xЬ`s19,}Ih!AUҲF\=XJN.mu汊UezPGr>C):2Pjs%{ŸOJrTE)431* a 8tTaW*\/kJ10ޯ4Y#.d=Z5xAn_hMY~Pv.b 7y2E#u =V:m9}|q{ȵHjm'e}L`;GIim{wxUo {k9ʁؑ隽iREC)J U{7ߒ;uoo~m!cNȁcyF;ԁޥa)5Jk$ڮU+klC7П &4;^LZ(\bh@{zz{zYȰ]xsV>=oSe&C 2"L}Ȱf9*{+{-QE-QQEZ'ܘf#a~5fM\q|!'%C;o{-|~a\5gQ-'L_S{h$,QE0y, dߛw_Ïjr_ qµ :1nڭR:,Q25_?7Z*|m&x?|Eu_maXglc5-" ١߻rsX5+o“)@g: `ǧ^DwF"%F*}%-%&fE D}Y i_D>9!`]?ZM}ȣ_YNGCf]t*_Aqd~#NqLO/1r\r>\`}qzr#2ۊIZ,ry|c{vQE,݉N{b>,r`]s~N=@p]DXkE,J7.çl?)xUi-HD04* ?ޅX#5d]:*4GdEW1 1cL9g )Q@?~#oժqY{>2j_ruKED-RQLyc]YڢHZg b;rJ(cHEڟ2H@FA>[V :k[XUڨU h)h P-RHTQSRԽFNy $}=:֭Tsf9T2CUeĻ txsޢܻ);/.Sc&A$N2NAPgkQRET!@V. {UBH9~T,,mk 7c?-4nĬ_-߷OQЫn>L~- ʿ Eek noU@ Xi7aETDqVr`2eg@`3PʋT77+n`FXx|$P?$gNN-IH~{T2Tu{vW3Ӱu7r@5ZXo'j4&žEn biU/_h_ϧ}+ZiOr r=&`VM*WwJ)ɴ\dlߐ5Z7,?Uگeg_܍W=KZ_Qii()2m*do$~##h2UAOI-<{OE5OBQQa-RaKIE+7vuJ;ת0G\EcEXоRf!s1{Bq K8CRT(;E%QE!(?/?)j ?ц!/((((((((_q~\k֧؆Kir1LͲ _Tm1ZX㢦cN;V'4QEYQE ( &A̋AҜ WV_+M UQ2cO3,Sc-\)FdT'&7Il}HT.P ^hDPTOT`:H68Vfs@R5L`r. zAKb4cs۽Z)6Xh928Q@'mJ9J(Z't?zP[dwF}$x3z\ԭ4.Ks/b0@%QR%4`Xs}>q{?џ꿏Pb蘆]C#R29A^hCMװ}PoRS_XQ$k+ J>s7|\l_AmK/⁂ZSȍ?Jʸ\/AՈ-Rƨ'}IjJ>efeeN>Q@Fj-UٷRY>\'ǥK gY׷r@j^OYTTE$O,j 4a 쿇&uov;VdUn(pZ6*Ο,d/B{e[j,tzii T4hRwQQyS*unQH0dcX-%bERaKIE+qhV-yaCsėRpUWrv< 4ިܹETERŠ(aKIE!SBpB?!}CAK]oQ΂(L ( ( ( ( ( ( (8>~\MCߺˏ-z|~!^ CAŹ4iI1e"qZ1Vj$?a*TvFUB*wy\!b?i&&3+C%I}zҟo<7}͇q?\JW-$5ds>,?85m#%: N:Pj5uyE؈!I?M6$B;n0s01V(.qssIc?FTsDH2OVmh'ٍѿohfaEPEPU̅e\GX#Պ*^] ȸ $SG o5X˝>TT%*o\1b'ܿ /[*f(Fq15<04}@*lrjͅQR(c3E,etsq(mDdzӣw{[w(7_ =Ar d տS:P[hh",MY[{ϭC:褧=RHcEDPTCJ4q)+&R/꒿U1f VYFI=VJQ?AVm0vMh  &SSRNGlLjTg )%KIEMTؤŢ)X-%KPS K-|:g>W)hZ2T;i?u>x<}6MX{ E%-QH(w  ZV<=!}CAK[oG: (#((((((($]\.?)M>ggq~4~~\ z׸{iid-;E0+44_HAˇ`4#W2ܘw,3\ zMspdLyJ9Sդa)F}J$j`jlC)Gz:I" я5ESi8U{kRSp*pO8:֌5cn 1Ueq-tO@*fݬ ZhhťDUM\gI&U}OASTY ޖtSZ()i()1ii(RbERQHw)J] C\FWPAVwU-; 5}4nz(E%-X-fu61q_u69$~чVoC::((((((JmD[lqƸחS䉢8Um`.~|޹]C%r\p`<| #ݱw~tT5ӮXҮ@U+]\@O}f@?4wxif~U&iX'Qz9MCT@? {'G"O*)ndbSls "hNH/cՏ'QEUwQg?{']}nbg?{']}nbgj?{']}naAiWFA'"O* &;ipd2ʭ&8O+PEUV@?sL?vy͞dxt63L2~#{j_ZO%Wg j?{']20yZ/$^IWwE[ba^IQj_Zba^ITw 'JXRN'WU5kw-h5xR:>0gj?{']0g=lEqP MjM?Mp0oֽO"OA+]=DN| RZ/$⫻HL?vpV@?']\?vyZkWt#[ OlEA^E.vS5k"O*#QEUwQgj?mc#i1ԏ{sE.fTrzoC5^ISD"O*)\K&ttE9 x/N1n4)1JZynXȘo9{yn~,*lmNF(ob#FT@@ *~^IWmE.T?]bߒTEUvREg8_"O*_~IWgE/f g@?-F{/w*&2AE,5(U"N/(hD>L}@?*"Ɗ^#;7⩆gH{:3rCҪIn[܌yq,gr DTnEFo}GWaE/aVߔU}GWaE!X_~QUZhwzEWrH?Z(Dk r}GQߔUuRC9 }@?*(C8d Ew w:nD {~WkEW z/()յ:ksA<GU"tnNO ^!7r<м3I^k:Q@Q@Q@Q@Q@5cFw`$:ɼ+]5`c 79z.Xz3]Cpp' X뻫Iq"F eaEݴGL(QEQEQEQEUkKV\L՚eZ5)Xo,oԁǮ)7ax@ RBf5pzqZMYؕQEQEQEQEQERS8n Y~I Rݸޭ)+.tѮ`UL6דAր:)E uQEQEQEQEQEƖ4tFuVrB)8,q=x#x/ϋ4J#D*m3#:C((((((js]WPc- /U<9yclӼ󤓋^q'v:C((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((W?g[4M?-ݣiZ})7c;s8aUO㷀jqy`pq#>H=Ω%k#]KIlyC'q/?o 7-bJ'pBp9Sj]ǟi*7ѳ> stream AdobedC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( |Gh6TrrW$g5^{>-KqJǨ<ji] b?G'>ŷ²,&fhf,bt#N9Sjec>Ο[{ kߙ ?9-3PhXmM .)ѴfXt&ؾZ_Q φ1m^ٶ{|ҷn̲?gL*=N|5Aokߙ g\*:mQؾ[_Q φ1m𪉢imҜt}5'O8fؾY_Q φ1m𪍢mm\fݿ֛}<ؾZ_Q φ1m𪍢mmL~46hA`_ؾY_Q φ1mcBA?Ÿi|ؾY_Q φ1mGք)CT]#Oؾ\_Q φ1mF$g=pIneG} φ1m b?Te}9)ˣiru8/Oʏbk b?G'>ŷ«M,MmJslt?ҏbo b?G'>ŷªL8Νhp1„ѴM:GGؾZ_Q φ1mGII`L^J=2'>ŷN|5AoWӿRc黷gg_ؾb'>ŷN|5AoVI>#M:NNdIt =-s [~g(_UO='v_N>u@G}şN|5Aokߙ ni\*_;|- ?9-3s [~g*rtCl(Fjq_ؾb'>ŷN|5AoWF #O gOQ_q'>ŷN|5AoAυ_ӿQ|Ơ7'>ŷN|5AoCυ_m+N _Q*|4Td9-3s [~g*NSN +,O.Nk b?G'>ŷªdk~W)?t+\]l φ1m b?T4O+:Zߕ _]]kߙ ?9-3Li:pak~W(ӇZߕ _]]?9-3s [~g*N>“#N}_˿kߙ ?9-3O+O _GV>/+.s [~g(_U/?|-/V>—\_Q φ1m_:_Zߕ ?+}~?N|5Aokߙ ?`+eik~W(9Kkߙ ?9-3K+O_GV>6—9Kkߙ ?9-3H:yak~W(QR'>ŷN|5AoQV:XZߕ _?|mP.s [~g(_U/?|-ZZߕ ?#]_Q φ1m_ZZߕ ?+c]_Q φ1m_ZZߕ O;9}| ?c^_Q φ1m?Zߕ ?+hC φ1m b?T/V>6(r9-3s [~g*N?ƒ`Z\W(я){ b?G'>ŷ¨eik~W(ӳZ_F?N|5Aokߙ F ڑ (Ҵ0,-@+hC φ1m b?T+ӣ饷>wThC_Q φ1m:v hRiwiamQ9Mf1nܡvv7wVs,H28k">m]=zDQ@Q@Q@Q@q: vS#75p++)@OmٙEu<S5jZ VV1OrO],QUl̬\(1@xaˡTQEQEQEQEQEQEQKEQEQEQEQE ( ((Q@QE" ()h)h&U4iM6hZ)*ڕ[UnוV`t_ڑ{O `KW2i(2ZEJMI[^W5%*خ]NRgg]SeܞRO*߼/GM#356B.QT,;D :?+)rc c orΖdi di XESi~)?߅ ^pv} ?lBWaqXERʶ+ԣ5ِ5cK.QT}+54}tԮIi"#AEprj oa?ܟŒjIVZ?ԭ"K3$(tOQ67bJ9Xh_ڶg:̌T_Zܜ[)I*N-tz((Z%PQEQEU]Y UZ}~SZ/,nr Sp })t"O#?1D}/ںzfQEQEQEQES#75WLX@lQE2*9c9UQޙgv9Q u6 D@ )"ȿyCހ'Z]aRFAvUQ}0M(((()h ( ( ( (Q@Š)h)hQ@QE" ((qE.X#)jϙ#-T[:«\N-?@}jkk+{\"Ufyf4R{q7zHó|[=oxG UIX̫[zǨFq|ҭC P&bHҟEqZ)(9DQP][ڨkOy(jY1BO ZITv_yEcQMZAMf"K땾?"}c+=1IP⻊*dg]$QoSTf\dұf~ҴEf\cKc>>Ҵ{̹ERɳ?V}.5MVe*dCOv!d .Fjh+(d_$? O/R_ycn?ʕqh^fm\zg N(ѰгRb.T-`/S$~8S[ܜ[)@ʓ]Z))GoSRQ{ /eS!8(5꯼qovZE>wV)}/[ RAZ'9GN YIS֋ QT~,\.dOǵPH[OL~ ~4raihJZJ)i(T7'n7ˌ*zepWym)?_t|4Kq6Q@Q@Q@Q@q: vS#75pQEv (;IA܎ ؃RG0 ,ѽG8v˹O=pAAGIEP[IV+\c=*QEQEQE-Q@Q@Q@Q@Š((aKE (QE"QE-(- n";Aǹ=ϰ^].U_AQ[Y]^2s }ȇV}#u̥-DS\{GtpAB(#X TSHi Hii(e IKThmc73)8T?7AV2ʩ6o YXR>tS>=7OPb8#HtTP+H5*3ooN?_>o.%e_Q|dZ m-tF* zE#0U,:ڹuDd)Lu#Kq˗SҺd G: Z_&ׯP\aUзVn"v fv/Yn\5Ci*U&o$odXbE˔U3Xϲ~f&˴D}hf]e[vkvQȇܚCɩ{̹ESj7j=?vM'ٯS]oo+..T'ZM4_ըM\&Vжr5'`?jH5 ; .7í'Eb)4@Φ_p/˕ ;J<]xO pjQX˘a"Æm\S)rcoO#5ŴHG :.AX9*~pGߋvT;N2? R#+ SE-@-@Kei1OOZkuVC=zwheq< "A|p;ڮE* ;rLsFv9*=ORմb (+ۯN5CzH6>KpD}/ںz>ȏWO_R((((SJdƻjuO)k|H (QEQE6h&TWXdTigm43^?kF20yҊdilOQW`;X\Ċ?BZCO?lߍ2k7?o{ SaS)Z߅ ͤ-KU/}7֟}3¥(#۪J*Oݒ~rnM+2K/BQ%4y}ؘ[|u]]~fmOT:OO7QPAJ\G=7 x}C֡S C,ժK.?ma T~I9 pW?n/w|Omwot $JGj!YÑRXOEQ56"d8~!WRD`֮N0QE( Riٹ(~ޑ/'X,7>DZ?j2HDdUцXdU}ɰ+<6!-X?UfxXgIqzRXQRQ]gRw?/S[_#?1D}/ںzdQEQEQEQES#75WLX@lQE0(((SIsbUec"cZ=|ԋAIKILM*C+1O$ُցOq/ۮTcodӧoRSЕVfm?O`sEvv$ܓ*.GG\;&>kb=-#AzUE *HN:M +h̓ȑs o%;tR\|_RAaR -=GӲVB*(?֏<]K7|=5vHvGoml8(*Z&jcY /!S!?R}_Vk.sQvk?WBG\-[O}Pj]f 2MUTKd?JWI6buj8b4TVM ԫvodQc? ~*AK^ǽEo{QGVn^-BoWp?)`巂o(5\wQen# 1RJW-gۗ ~QK-FF>D?Чh[(kp=U#Ώ|YB=By$xZ(B Od2Mo{ktJq:>7qVLjG̻vGk?5 E+V OD=NieU0zG_Ȧv1Ih{Hꮥ]C) P[^rʣ-*KM-yxIw_ÏcO^Qoѽo[-⹈2Cc=>kM(w6#}s֯G"K+ )"F{y-ek5ݸhI?_F}~&Go%gܩF;=q{oPAdކEo-ճIRaXrTRNڈapnmRGP ?Gȟt`}p#Wi}ŴRTw?/P G c_t((`QEQEQES#75WLX@lQE0(ZJ)h%2h&dY#aVf~.t﻾ޖ1}jsWCЃRUIs)0Y?^^-ESv8\W)QEQEQE ( (-%- (QEAKIE6><Tb׽?z.!ES,iR^YԍK1dm.'<Lٛ0AM{xTUX!G) -PɝBAɐя/ =e}~`Ledzn{PT0LD6F 3Rփg;xZY"(&%N1 @=wrcSxXcol?{5~h7` IcFyQd*A(g#"58c#j8 8@rF{s鎕Osń;{˕OuoZ_;:Wj-@3ʨ[^Z w$4FQ)KwSǵU ~ 2߁c>/N["h/غ:UV#ood.dgYXti5q@Pd Jq{?Gۧ=4˯Ţ=]v 2گM=(Y7wWhߠSU맱vU?}u.`KIWeA#d? EC`Ԏ ntG*KUgt֐Hޭ'"^`d@Wi*ņ?%l>,_7 Ka\qrzWhY?d"Pˎe7?pJRܖe>p߷lΰG'@ɍWU85fH:Qi]=fKEQ5շ6?'~OPXnnK_FaIDZ$6]FiʷFSVLn?ZIRM[\u\0t*}թ LPK[n؇O Py=GuiiuA"}MBq-Ŗ|H(iq?ݢ˴Sm..A#cR}21qf/??‹&bc(_&bc(_&bc(_)}1q\wE?1qf/??‹*Mqf/??•LΗzŻYxϻG徯UM_bڭ#q78`8Tj,Ub \i}1q\ߚO_~HGWju+&Dé\jbc(Li \Lo*AJcRϥAFiȏy9b2OO\Ӹ՝0}؆: z}u "3;%ZZD;pǧrI;K77K1 J?FD@6={5]֨j;I`Dj:ܑSZkk8䱐$k6;І;XFI,ԞT 3€2})Wk8ZK|şz}4[;xΔK5 4?@1aY0鷝͔'J/~5-;}v7vv} ̃,}'USs=Ekt=%l@>ՓA"TS~pyXFɥu5JȒ  :*~CPlѥeEeJ?e'kH?UԴlޏp*͡__ׯ/q/3]!O3I\?SG9]aqP0O=7)xTao;aaϘ`EIip\ZY }W2Ur ?.WjS"[|SV-BJpvA#Y}6VW$hdY96@=T/wRJdGU.[k:gNI/7Wt?O!0R]?#QU,++b'Akcpt;{} rc(pKDj)0+G'|m0]Z Yx჌GA)}w6$N(qOPiITmuN?3֖arc*=VMENވߝ_"Yfy?ʬy}Z>1Bc~ȑWM\_4CjѐQE(((+?G`ok'TĀآ+bE(((((((sa y4S4Gk>T^mCZD0¯H-nR`>z2B jzscotO/ "Feu I /TԠy)w[I>oL(aEP0E%-L( L::Y?`m~傿zTd>]պ$/SǸW.Q[ 4MdԴ&Q~Ai?C}e?zQ^ۋI]ñ#M7VqLkïXp ]J[k?Wj{$ɏVԆPi)nQg¨?4 O,4RǰMVk_BGY `ba.{Ԭ%OT_O}ɤ/=ڥ6ЂidIǧԟ`i%$dVq R[Gi!NKުo Mc(wK93Hr{ [{Ri@vgoOPyw|d8d?V_ά[ZAj%Bܳuf>I-Ѓ7ǽ߸}QR_?ق0{E+ꖊ_9aS!]I?2*?ɡh6M?wvB&P.bHUmfz*>rܶ8>`~bE*y?~_L_k&j]f:\]xs`q/)Az.PЌ?]ecMcB?@)vIϝi/?ʳk.+i6pD ߘ4'Ov/>Gom8cR_[2Cj˘fmcSv\ߐVJZx*~h-حi45,r| Z+sF!ꮠsgԬ֨[>54]P|?^NxAGzZ֒ٓ&խŸOnۭ-;dEC+ # /[NYQ:Z FHe;]aڧZ15q"+V(uWR# $mMcaQ==Wo#FV ZM[T"5k+-'8?'㎣ `xeF==,gsܜB͌yه>ء_[} %R'PHV!] WO0άU ?q |еV%_[:TuoCO$wq2S~X"3:ƮU}Jq¿zHWGEȖX_aqod@=p*;_t5#Kq6ldQE0 ( ( ( uO)k?G`oj 6)i)kaEP ((JZJ((((Z)(sFʋ"7Xd©gy?E^QU6jinw~%O#7TLR9hSEXnmm-)(UK6K~oɅhu̿޷qV?hzfd<Ll~®SŠ(w ZJ()1hi=`Yg@>oPC))k8&F̜*2{=Wؤ*&$'$~̿Urc%'WUQ_[}$R7a2(4L:aa*Ŵuc|>iAnYvJd0>5>snxY?\hQ,?RQ[~S=o':// Zm]*T~;@wܞc06_ cNrO6PG)$moikΕvQsi?% ,,*G9(V]N$R/ov߰"kFK&i[sgǠ/-2$ff?R3 V,NE>5(w. uQI%`>wqRiqs}IyO#>R~o̚ņmee1EAl P֤2$0{ɴ~0x$}ܰ!X>;}:Ę~ҏ>C\c)ն?wq7Z_H?Mpu/tyZS? wchԶ+ֲ浓^BӸyڀP.Ih(emq#aG>1Fx.?O8oY2$_qO!AukMHǢ85r0! vR&ҬI,\O{NtY1"9ꆐjMqckrFnCT_z\E˷arLcoNG=G Вj_w @o[ozu+i$1LzG2cᚲ)r 6h3ѤU ۨYT76](į'Pz*{C͍LGR)>5{CO}`z۰_E6}?9~i. (fjxxH]d 4\c58a_C}݉*͊K' 8Zã኏˻Rwr7?{Ջ[nM)ã 2B"j޼R,7H "lѴr0+ *߹-$Cۻn^YKalMwg渞nTad ?~s43'sNr?x5<2-L;8DZ;ȌV O=uOH"(?ʽD$2@L,ORT?5nAR?e#o'Wh$qE-Yy?ʫ,v͍Xy?ʜ"G|5#Kq6$i?Wԭ(EPEPEP\N%2?c]q: \>$-%-vQEQEQE%QEQEQEQE ( ( ( ( ( ("H$Ue=UAVͷj{yUGv,)yZ?bQ3&?%6:$HѿڻEʑN>Љ!#IP5S&ԣ[׼KQܽEQ-u+|?h3)pz q԰j6w ]nZ.RrA+O`U]dI-:ܳGtxde"TVݪTCu;Y#ER"H@6˶VY>bFO=(o,MZƿ_uLR7529*~=^B4SҡCuF?Ϊ/k ԤW-2FS% yNw#a*F fO\v8sE"=8k>l@6JS[[b?h-@\-۠bE/,˞c)-U :oavN&[%NZ(?S4e{u?xB_Gҡ2CtO,e';O W߲ {HwM?5 .u,eo`?ԾO,iR7\3c@U=?'Ek)԰l4rV4iqQjr~#ъ feֱaqZ?Zzjv//m*VDeXsY1܂=FOwYV 2 G$I$N&>RVNԻPMekqߌ7E83/BGe`?UY|&V~JEb?tYYh۩GȒqQ?[Q˘IкwJ.kp=Ahghis0~i~8]V̰WBǢΦ"~\##f ݽ&x]>=W n_~~4 /;7v@%W+<GRZC$)7A3p#m'ٿj2hc3ѤUuª}knln 3=+6 GͧF43[NܗѿqLd_ %KQ)ɨ83k!8Q]w[u`!P]YGp -0G/9'il\[,n}ױ>As=Cw~T[CɌK-bcxϡ<ǵ]DdC 2"mL0NY}SܝMm%qb,s,=ߡ,[\u$g#,sFDʲ*լ)t' 0=щ^ZR4gtr=Gzmќq? 7,/uueq LqWVFN`̈b_ r 'Q%[UAѣO_U|ݳeXy?ʩ#ȑWM\_4CjV!ES((('TڸSJdƮf( ( ((((AEPEPEPEP (((QEŠ( )(WJ( E%0ܦUu ?Z}Cqwoj' z`3?VdA+F? qQKP,ѫ)i^g{Z]O#?7 ѿRVVv@KAݩ/ '&wo>1r,=V>zu_ uRfV)˵AeڣP P#\aѠ2r2GfR;W)8sL}A_ê.ea B+UҤ9nNzg}'ߠ}7S*Wb}0qKoC$rƨ|#_~F6ʼnK76큆GǨ@gAmHRXmi]]~NqϵTThAnn'g= q#h~QH\:Lj!,r? 'ZhT`U_^4<ݔՏNCј_ ՄGAY6)-qٌxs `anErHoˏֲlM=?-6k}uY\ܩFgV2,.#*cl:XHrVډOڎBר^&HO9㸬n6C\>WqvA"n=glSww?=yAM??JɅ_i|F?mwRcYg7$Z͆hK~onRZܱX."UW)VJZx*.-m-@fVpjҭTkf3Տ=.-M|@1Fu{[/bo =zGrݝv1/>W[}.p>RIm˅W2A o l3GRfns>>B$s9F K3e(ȩ+sFFUA~h=:,X`2_cӝ>@˼j>si͜dcXNď G¤i6w[hdAc֢=C}Ɲ̑͠qϮy5z7IQ^6WFVSE$R4k$N )"k-2[Roz︶ ,;eߡ,\GuʞF=+O a{i"فga/@9~h Ip&Q-&7=-n#K8<F ؊ra3^D 0?=GQ9[% l7я6ʏA  rB(VWPC+ 9UO7Qy^ozLjg̐7V_}OY[i!b@qê{2ەx cM:][$Jz>? H!}\ڣr28nqZ2~e'_mQwkE?5& c*3(}N@E/&K,-H4?1QjռqsFr(uUlw}$˷h&b/滿JsWԾW _\ǼO,_4Cj髙k"Fm]5}R(`QEQEQESXm\N%1? \>$Q]QEQEQE((((QEQE ( ( (Š(W (\(.Uߖw8He@A7,U'QS>xNO3Ͳ#6}zE#UDQ0\?]sus)V~'66֬ZUd=\cMOHM%\I`\ 7o'ڡ3Kbӯޓ=_[BvFت^j59LCG/G^Su9ckƹ,>VGW>ë&ooC/aGׯLee?mڐ'UWc9TBHBl?~3w9jgc`z(AV/3 XϢ3*=G{JC(?G)R2 ch_4* wwRaS$9+ nXK`蟪;{Me!Ǜ9`}QXlSѭn5Z/"qH>{k_܃Zh0NnmuORN]@o/W>p}Ty`IߧC9o}7:a 8k.oigKBw e,9PւI}W~GMܯ+)E=pVeo? 8p)Lr|>mo6 EMQLm)?ЬѠoaAr~ r)-Ӌ%uڿ?ԁ8Y-=vWD 2jHeH UL^K@vd 6nkW<dC_ē|~=E9?|:"bzE(韽fq''r}߁5fhb=6W/O=)WQX%ff9N|:o ukiHw~>-ẏ˞0뜌R Wd U<>m\B?匭\&Vzt=C.ǦqAV"́îqcGcj;[ȮK*߉~ߡ\؇Ϸs?(of?Q؊exic^&W)?.w.֎dY84{{ROOsOK<O=A]Z3IV܁ C~`nI}?zefQ2}GQ{JZYgwQ+oQًA$EtCZ;z=BۑAʰe1$D5`n DZ̵}]rIOhC~#Uo@Q[dC:ݢP"pj m7`17W'}ڠ˲E%dLG0jDԊt_i~*3>\-#ٺ#꾕6ṉ&R&=r?_bii&KFjdKM c#FGV"&$#e#=) um3Spxg|C.|7+ nĆ}e ~?ie?U S{\5K)Gp0)Uo/_!ŘoMI?/U}kA>d*s%5#Kq6$i?W-B(EPEPEP\N%2?c]q: \>$Q]QEQEQE(((QEQE (%S($(p l(} U|\0qoO` 12 ndDcUbids-ˏV`;/r>䎱;$©s "[0=TvbmI[;I% >T^36HCm+?$ӵOgfa#Lly#CgQiJ{.70m:9 $*Oy)%!uIC뵛?ݚ&>:W[dW[kD<[ܩm#( \رLwp8 p~K?Ҩ819|/Hopsӷs ~{.\?鯿aZwB dgbcnޔG D!wڔij^М(ɋ۷)Hd1C?2o>~u#+ua ;˻Tpܗ?^]E^T;=ܽ-|ҕoa3)F˔cw=&F~_~Bbt]`codQOh=w/a%v7N?ZTgbIAB~VmH \MCymo-r>k+y_{D>V4ϳG˼~c&k6^eq"od$\AA*d`SsRаa4mqY*楕oot-6fLla>b/M 'ʺ4YI{]J~oֱ0ҷ,ݻ=k[CPy:ܳ Ư͢jLfqn}3U ⭌~mΓ[kە_&`}qO sJzh{3B,WK(Q|($> /2kf2'Y3@7|7q1˻-LkJ@R~*2=z9-|Ρ9*FFAS<͌oLzHGKѣ3 Yfy׶[p"~ZL>-{EOǸ=j_$?A=>-A|ņ3m3(cst?N3w^ž1-RG y#gx$̬?~b`!ӔN9iNj:\t=@ȹьa#|?bZtFHtqC?=(o "8sto,Zv~~i%4I۱7tV-.V 87d>^F˺^CANYN==WX&[[Ӗn"Fw4^ ^z?EieAAGT-]n-K?dKUx#w֠KiS1чwo 9~jQ#}?߉k$\-YOo};zT/][ ?墟8" JˮeE2y {kqb>ЃI^~ϴN"Ӧw=yn߈vE|a/2ueyaڋ[q cJ>X[j[I?GhƧo7Φч U Kyw^?)ڔmqa'@,we;,fmqarTѸ!Џ›u H>~8kxHC3ǸQ}k^.|5Зf-tO=D+|H#ꦙ7='h?#$[ƎBȽQ=E\'%ч_~5E_}hـ?_~J[DZ9<0kQc=#`:?CͰi-տ?I-{HAM_nɇ? (xXysPK] A6]5i="Ks- *%XQ6Ы[0̟RaN7F ?h=/(7_T;9;~\/cK;Nx>_sd}.nvj̰qcIP`4I{t6*CP69/jŶT6hKa`EkF.-9KhoA?957u >?5 dKhڋŕ\H3B $ͺ<kr ]b4r #܃Th÷?a;#n8=I%Ity'jgQm} Ø1LR ?dS%i\N,>W?/CXQxNYkݩʭN=:yg# 7Fp}Pq}R3֨Ukv 2ߏcS]YrU>䱜:ow)/D_jMgi }?NGY2o%`ЄnTaOڦ[YW>IW>>hjj+N,MoM$i?W3D/ںjQE(((+?G`ok'TĀ٢+((((QEQE((QE ((QEĢ(%%-%2I{"pʧiY"\&RS1l*\X'fDr?P*7`{oq43;\4iM4՜Jc{oBU/N=dhЩ?EYcN(-Jm$H솥 UY IS~##,* 2+HO>b?{)op%-,0)/Q'"@;zX>hAc55wƫGse$R/05ZUD'~i3 f7?ПřKrT{m4ͱw@; G ?ޣQmt&&7S'=G⣊w`l8n>ނ[d *:2cEd`}dMj1ɕrrзoO> ĕ dG%{Q/Jhb,zccYoE%o2[[NIN}סx8rXAaQgI[}/9Ït?RCy䤽q.qYVU]]J2Mpq>=%x?z~%w6z!ߘ4,W}K1fP?+L߀'S[ZWO4տH[{L6 Yn#4i*pe#4汷IqaȦ [~`y.mne;n@K'_@OQ:cщG0~\7jk{{VuL:lz8Gɐe(O= {X.@’rCf}d1mHG 7ȼMș:24}HXؐߑ}?DV?j5Iwvڏ1?1*rAw1sD04oqS,54{e}j+uV#HKc9O? Qdu~qJׂI'ٮ'`~F9Y}}ErJ.:4zi 2e76"$za+-`u>׊țOm<'Lt/dI;%^6?Ƴ`1d}5Wh&3\z7y-kE,OG=X.KD=I\ћKuV-d&Xwik?L|Esg"SN}B?1eNV :ii=@w90>wשt]ByhQ9u#"XKotf_US2) Nrf)vzd`O’+_ ϙ^=H?ޒRE,3o 9," i61H:8a2jAeP.T=>.?o1 %?mRH|}pOi_2Y.o݉pOd<7:R^~_3~ΙiEfXj %y4[b)j6!_ۮ? s?W!-ɩ?H0dT_]-%RD/ںj~ȑWM_V1 (Q@Q@Q@q: vS#75p4QEvQERPEPEP ((QEQE(QEaEPK(C(RQO'UɫܯA$1 ?ڹB3R) QGR^S; j \YMxdaʟ 7ԜM2ut `lqG$݊m%1H"VRi*K܎RCye<;Bz~#銥9^/ȳ!/I%'߁Z&B*q \D2؃؊;O{Ȍ ESI)ش9I=_o;YuWB# ɻeXX9:0R2 T=wmHhĶt<־^?=YT1$NєͲ[r4aetnU@wY8wc?A?Ɲ- JybU^^"?9=~5}ƾ_ʬ n?+fj-w h׮gԆ )?͆.߁m IƋK?r<4{qw>tA]Mv2/>acެ oTze[5ة6xF$l:69/jŰ?Sӭs C1F?R:9W4w نc|,L_.WVCp>O oT}Qfٯ/t/7ّG-Q9_Ҟm9tɐ^13|],\c54?*?OImOl/Gw|MoyorHdvT}GQR|Я7# 2.m.ewЊs3 B~ɾ\/g]}(;Qr _l/?O {11*yhy\][wd!nbA}&6%%Y\L' ~~Si<Э~B?J_Mz]:7'wj>,<^ZdOn=\_|sZjYIGyO#sxK/z=FRd\}SÑS'yB .r߻\F~cU2YdM[}Ϊ:–Y̶jg$M0w5$u z?ipHx܇a ?uǃS:1lt#1Տ5 g1]DPM-D-txIfe(Vkd 'ˤ?uH?B*.qݠ TəC_t5#Kq6lbQE0 ( ( ( uO)k?G`oj 6h(((AEPEPEP (QERRL(QE(d1( F7Vw=\+Oή$,W#⢰k`eLvq=G-b iM4sȡiu=I3Ec0f yeh'T{S.`YcF= T]5Q"vTNPt;{U֨dJw 30#O<5`^쐵VK3m_ɔe_Fk^mh烞ӧҬ;FZ'awR6)-c F/Srpٿ0G5e*#cL7G{V2 Q~Bg) ?߆)EqwluGҋևh<~ ̂HdFrXJ+]7*HTқ=b7EG1j+c=:?4yA ' ~ᅨ Ž1F?ǩOIms*2KlEv/瀳)g𩧵φ9qв9ѷu!v0rT] E =n>bDQC; ǩ|GpfMK;Ge>lA7;JTԭKx :$gf6m3 {%?2Q0M,WVX8'Sj?SV'+TCJAt_6e4h\^E%N2(POJ58don_eZWE{;['OFM mcSq}mo#D?+iLݹmϹ7U.w_OZWOg}io<'L72)>smͤb؟?)u>L鵳}ۛIWu+AO[]p>oOC=ncsR7?cߝ#[>pp nڗVD?r?~QpԎ⹋?boc}]ѡoiv Z H߰[w>dzVkU)~XǞoԜ^W,a86buk3ct PAFR@r?PGQ99\SZqnGލCz3uq 5?!%@6IATʜjk}ǩCvg`[wE/A.9\u# ӵ_y#lu+mFyV|,w>9㞘8e x8'$tq\m4OKp lnܭ_`1{CMg12 ]B̐Î }qRY>Ⱦ{{>?LJ~{oIbSqQ^L8L'6{R^[>o&NRĶzǭ/7c4D~ ~/sLi$HZsbCd?v"Y*\+ި*IUnJw/ժ^NHS儱V8 6҃ib;}pO%EV_on}JR( W2?%$t}m9?N? =WmUsK5߆$i?W3D/ںjQE(((+?G`ok'TĀ٢+(J( (Q@Q@Q@((AESRPHQEĢXRRS3bV} Kd CڴiUea ؆wkVbL-żޣsxLjM!iG,θ c3]F g@2T|QD9dE]) 29TRt'/wzT"MF AL.T9,ncuSܯ<T匚#hIFE>daRzTJdΆ Dc{?P+ NƊ58a#00,x{cf(JHsgU:zZJOk ʅ`OB?JX62k<\n~!&?'tgR:JhSHv7CƤq#m'ٿjڐH*y $G4f9Q]?bl\Ui4ws"Sɒ&(Og\\Iޟ>Qg_@?tdm[f]rXWQE?ܦ ~8&jX#,c'*CsN^ MJқqgos>#eI=H=94{2.$_ǫ>dZ`h/YDz"(ݨELg9ߨEF?QEm(?U??5Az_ߠC6ږch>~A>ߨ hu26 nAO .B$WK ; {+-#W)bx?4M6w,yM?x~d{RI—=@Pv_%*<w^`U=JB0~x x PtFFDRёzǵ;7Vm'(`tmǑ ?8C}v fLQS}?Z$hѣ-$*]Hi:p,b].$r[qXlQqJ$߇LGy11~ea::L7wc,ۜ{.HXHm?zSn9t& %t$19qz宧h9{SǺ"cԇoP-}+^&7r}y&H $|CUZ[κ8 %Ȅl-[~`݁?gRI7UԭALBͻF0%'lN3LV+'y泻޼uGs/MI] R96I2&;E?uw/oS^H,C6>2}0xrkU7= ْDet;~p D[yt[?~BZ$\ggGexf3+&ǟɎq(!3#\D?LTRHi-]`~2Jq&5̚i_כd3w_t5#Kq6l`QE0 ( ( ( uO)k?G`oj 6h(((((AEPEPEP (QERRL(’hJJZ)ДPd BL8 ܌vp[ѽj9cIchUtaVS2`ilՇ?=zU'1$.zdv>SLM1CLjpDMT&xi#rC} h5FEK9)ܤ:SQ*ZI@ `ATqPqbA=2Q-sc 2*;k'-XdkViL'QV'Gy+ZA<I>ǣ~)$91ʊUA+S:BKgq$7yGyQ*~ݳlc&r6Ti-n^$p +O(Ot߻ːO*HIGPQ5klN.DTVt*r ?QGr1ܑjȮ]C)5S.y^(?E/cQ|:h5Lx*O7mgU='1>{Jm֗@'[u>=JFPp<Զ ӷ_X=L2cX ʾ῕KU籴mC#y?ʹRqior)@c?!OOVKl@QkU|A+K)!>}ՐxA?TyI10ߨނQ겕'*ot]cu ?%$'i OP\֤1<zpߘj뺘 *V0] NKC":U9/ ,vƓQcQiεػ奴2}ʞwaSv&ݝ?i4KFm䟻FH?ȩ>,{2%ċ'.'&>Q>jCjӮfE?Vc !CpOǪ oCqQ%xvB[~8Wa;SIa|@!Ʌ+Mw+sh! G? M+[˽)V?`# 'Ͱ~2pWi K'e/Ca>4FcCaV3lPH8)W?$FU}峂1oΛn4̿ڙ3B%.M:})_w[aC1\Ϧy_=֛H,W%J{c:7^[ GP?1L/r\> 3A@FA+lػl mXq_nqUtF>***i&3M^ùK/W A⓯6[FR@"e *p2ig&:v+Xe /ݖ䯾8e?ۖ.B!8?@Ik wa>?,M*+$'kp Nabb`L >SD4L|9qq*Q^-r>.6?w!av26F"g'׏S6"џGx_i˘͌y߾vN܏Ūؖ"KfV 9OAXi94"ܰ(tt88Zvu_e"|7$ebO;>T~K ]=vao y9(G_/}lD`ߣm҅Gq GWKC4_Z\6n@MX2kh.l(u MW\HܑgmSywGo^]aVvm{5%֒{y,1ԇڷalerOaips=WV bN? @M=ʧ⏷L>v3(`ݠ7{d㬴hklhԷCi(i^]2OBV}_Mj>(>PmmZ"?:?U[]-机fLsoRt>Rt{yx׶upFAȥGVP]LBJu?Evt9k R}L+>`s11.7*}Œ?3"&}2W?Cw/G7c]mwYK5HЏE/qr?>p:jW_ER +~jv_atg_|@"/RhgaW^Aa>tN3H Z] %ѻR_ei'dMvz?E/v*9YK02D|QpIYem?d~*9"bMWDӻX췉Pg+wmԣ Y=@2CrfwRӏ)Yķ&mך;;hoҢeܼx_ U$rǾ$>baZQ"{IG?ʕP2\ʤ^Z^''HjXسiǓ%IMK=6&coyG󨼵kzxE ?ar6V![p"{p [ZZ8,G_ƕO_Y*R+'=8?a&cI,m_țp#Sϐn1uIJedp n}<3U ²) .}c `iXL@'1ϹZG m>ԓ*=}J:L⠙#8v$qZEMB` .܃\;7ca ;ktF #CX0ۘH/^ /*)5-{{t0;U.,ѻD/ںz>ȑWO^(`QEQEQES#75W9뚜z/me [3.KEe¾O Q ?c׿/[e Z++ǯ_ZWCj^vV|1֣ǯ_ZlEe¾O Q ?c׿/G]բ_' z|1֣.jY_={¾O Q`5hWCj?_' z˰VW+^={{e Z++ǯ_ZWCj= ?c׿/G+^vVz1֣ǯ_ZlEe½O Q ?c׿/G]բ^ zz1֣.jY_S={½O Q`5hWCj?^ z˰jQY={¾O S˰Xԣ ?c׿/G+^v)1Y={½O Qa8#LiZz1֤z1֣ۮr\t*R{]#]sד}B{F!G[K_OWŮX ?^GCc)gKBd7"ګ0*[O,9 ? G+b,5latTe~Zy<቞9ѣ=J#)'zᵳ{Zo?Ңzs[UoZV+1 5?(>%Ƴ'}컊7V'|'@4MauR=_&yM$R#k46:CH=uHDi4SPF_CjꆅCVu@V$qZZ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (?endstream endobj 346 0 obj << /Type /XRef /Length 317 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 347 /ID [<9511569e88e6cca31076c0f1e443538f><35bbb683165d618605533e4d7ef900ec>] >> stream xcb&F~0 $8JP? BM!$"mhO[ LWQ=mX8 dP "EσH})"پH )Dm""" \`]`Hpl 6t"lh*X؜`v#Ţ&M8f *OH LHV0 &m.0Xe\&C 8$E`na\0)"B@U$?7-E~R ѸDg> stream x[Ys8~o7]"+ɩqc'nYi[Ytkҿ~Wv[,sdSLi( K#,QX %R2\h0aĠd2VLJNIM F71SQD71Ј nf*R&QD0m+f$ 4aֵ[f1:L&&6b2e=*bIRLIXąB-a$5)RLXj+SD #S0&C52ƚX68 fҀ#8`1C`d6PF#+8$UD` "(-FS<,j1c4ad/F64XliIKIbmĉfX"Єm3? *,k8cdkR 6_?̗yc䳝rRؿMW?Y?дZN'|2?,s.u^ܮ? =y&Y-9""#ooE(F e٨MY'#|?{yYyFe˜=u~/e? ;?y~W|/ACyBQbSҤ*.~c7u_^SӽC{ÍYֹǛЯe_Ѧ1m$x ƣyqX,f Er$du|dP>,ZE0SBHUƖ$?-V%Ԅ0AaR(c}A%-r>/V7da~>voԤfh1JR(rX~mdIUϋIhoנ)̿9 F?yRIbX‰2EDNJ|?+M` g锨'=]5&+QtE!x Xk)ZΝR)7y"q%¤ʸhJ&|g6+QFn0'eFWPfL7JtuuZL(DײGKO2:h37~CŠ6C m}i@9ʤw;ZxE[ mfggmUu 15Xk+5!W<6ꄈ2war=g M<Hu7[n;8<.w908%eK*Svฆxѹnj"@:'+n'G9 T |O_M kEb%EӲEG Yik?I+ъ\2|_T@]SÁE> `)O 1by/ń_+>_/x1 G<<)bsK9_~-qvYh$р&mPay-iİ-!un=fmugLQۄh0BTG=J&hN-8}ur5*m+e+˪Ӵw6-.}#Нh!_YcB6E'Ƶ)Q)Ql]1u"I9hXf) t'~Udb'XAU*Վ&_҈W!6U:ҪJˊJB3,9K?uk:J8g9e({}.m\\_g3γ\eSOks_9sr &c gHU7#7+Ky3]-M]p;ēbYo;ϋ3Q &MX koLZ1#;ڍ :,fE݂MƂ }}Ymߚkoo6wETRƦo+kh[ܮpU_|5M6۪ Ӡ JtuasU.s*ϵ/O^iP=;Fo{w5uqy[Tiɭhsk0s/`kȸ D6E匤>qvwO7ٶ{XE M:lݮ!"d,%aRMBWT/J+h:uAy+Ք]V>BjVRb  ]IKpiu[MqE4% 3AHHES jWd+?zw:&Sm79!r݈vZgl̸'jZm&}^ӗ*IW鎔m;@"D]>R ~Qyj&|1$wH똭{ނD6tSNxv8кn;W8^ nW - +XO֠O}o |^|awųl|ؗd#繏ˆyl#'lZE4=ӇhjKmD oMw_#><=ݲA1r Uk~=2^5[P7Y`6N"?+e2w@ݚqki4X Qdj WS1@o.|fyzǔʊzBK)PPn'. lD2|:y#JjbhtĚna\a>yٔ;7;VwD&ۍ:g5\ +iaZE<.ct^C ^Zn`#dH뭂q,[Lj4%=Z5=ZP "i-tL1S^: p/\JTmc鋷'Crw2fn&jԌl=-ՃpX I?«%QIIyNMr󪞘(īy ۮ}p?N}kukS݂=[#zs^j/>i#g`X MEFO ݑ8 tƩ I&^. ηnyHa#_{cTnK%msR4^Z{x}w4S?Xk^]\}~>8dk\ꎃ?,a.%=۞ϫ0S> >C7\ӟθ~2cq1Ϸ[H-|LkND}*1PxkO{wE[tF4Lz{v9Dvlښck(z00H- j>ckݐ 6z88ԷbH.]zJ^#RmtQR} =*ɏ!!BWHS4%!$G*uGkLfԻV}Y(5D\yȌhF涎P}5̏ EL聾&)Ej'o"G")*qN4QIFzD8m׼q6q OOG^=M0&#A/˥K _ .#m{I3J#CK֋QBL v FڀQ%ڔY܉/ /[mJͩOzr8$!諵?ˏ;{Zg@ lG2qj)?ܫ{.- )݈{Zݮ28_lj}{8"zq;?ArEƳztMWd6g?/r7j? Dۢ# SfF{/>zvuHs#b&9/5NeC@zvH&rY+h½ga7}| k2zbvP7w48Cu?;@3F1܄Ҭ4!|` 'svn&.hQ۸ Cs)endstream endobj 80 0 obj << /Subtype /XML /Type /Metadata /Length 1505 >> stream GPL Ghostscript 10.02.1 Elliptic functions, residue theorem, numerical integration, R 2025-11-10T15:44:09Z 2025-11-10T15:44:09Z LaTeX with hyperref The residue theorem from a numerical perspectiveRobin K. S. Hankin endstream endobj 81 0 obj << /Filter /FlateDecode /Length 3627 >> stream xZ˒'R)ݐ+ ql؞U$/ 3$(xG7A,@nǹvӬŬ)f7now7IpFoxy;cʙ"7or,JEu<_ya ^ t^j; C[m u]o_EUa/3&ʎu[/yu=Feu{¢0PˮK+UrϰGxe=Zl5ZVhi}|Úyg?u}[G $nG\=n=xkl{c67?_*q/vhx9]4'áke77a al-ϵ/o5 P.kIZ*{?m^N%r6jz҃Z}w}~>!+pnvȬ i ء &ĉכM0R~оZT"X=D58PCtUo6A]V9ˬ톾 6aYM(=^-]90)u0i2 F4ckeMp%GI Me&XgM׉K&?0A7%æ o=gq'vgxx82BxDK+#Щ7Ed}M%ؤ^`9"* i%4ixѿ!WT$-e*}b 9.K!;|j-T~jKs,zTs(!|@؍™* ܻB"'y)ƚ&cHGi&\4+o"ID :qKx6N )jUܰ^zp.sʋd z< cOd 4S 9&[] /QJ;"}\%;IVHXf]N2󯧢xHu6X x'>~֯Gg0V}WҁE0a 7f<:tǶy|f\k&ȅN24S9OYXLnsqgɊN<&+b#(Zől Z]ҧj7IOTĹ pz80/2?;J ,cη:/o50Yb>6/jՈ𥴾C4]ed.VSQCS(Y0p$ikǤ'T$p(Cq~tm)hNwofԑW@ MrM8!/1ImϠq:ouLKjt5!hlV)Q# mjCg!{\oIJӶ^,k>]0C. WH^z57t0TX E-5! 9}<6{_a]g'FPu2y)! Q%Ks-Q}/k6 >I+KUevq8*Sʑ:s< Io@LGL ?m2Ν]B8hAyeb q>\O ;='\h<K[Vesݻç s,lmZm*(HN;"q[L9w:-{->Pʃbʜ>k5CXH[ePTH(>jzB3sHDR:N>{W[O$x=4x]%f >JSͽbEL7%Ҋo68ЎS}-x+32㉴~m.h˽ C7=s~(A %5<{)FD[_'tX]z6E>\BiWU~熫)F7$r47OhD{ʋ1m$ =p:?A F Ϛ,nC GGtx(Kp'nrI@Jbɕw?-}93u)1mJfV<i_U EVQt:[! (QcuY RWc$SMU2i/0>x|+=, al*f]$h:c U3߮5̹Gl GРc(zQEi~Jݝ Le}QbLg/9H%oӓH4ٍ e/r 90W"$Ww&sj$kD}wqbOJ~"endstream endobj 82 0 obj << /Filter /FlateDecode /Length 3562 >> stream xZ[5f_CՄ.|JI,D+%<43IC_;ڮv%, j}||9_ѿl=a MsnN>~&F:?| r\\O8*tz:|9P}c蠀D*i:g;^:'L|X͵9dT8;g6k97P&zY eY#V uw$;2 Lgd*SbQu`# ;2 ΐ-_kٗ!|᱉$99CxA+N)< >ia?u4{ ʐ{T81֢0,d Md|(,SdZwB6eG>р8::0:l$ kIM P :vFDxrAΌ6A0%;"mM>8^` I1̰d)N4l`y';ڃ ǀ1>pk8lc1#2=,&x0x.;q1} f G  l &Y}8V>73(CȀ8Hi,mQI43O2ˋ,v\HGƶ|Hr.d{'_n ˄E6 mxo۫żL Y RxVxhe˪fr5WF#,Ǐ - ֎ ֯TleQ1& 7Ok*t ۗ5=Ns8pN*>@ߦQJz`QKdDoZg UOv3 drIy޾~U1oJUz mq=_eVH}GJ Uݲib;"k~~iM EO$W[*]92R{r0)W>֤ޜw_vGpN%E߿(ArB7W-#$@@ƄSjpʇDB>#QL^~$!JB'3Z%LåBn]/.֋ExsQD{e'-a_f34y^/NN}9A_]9fr9Z=/!3ne]))#LEncTk(4"2qP|=Lvqy hyI,f51Yηiur۾^S_nzj2U\v0 핫}x巌0jKJþA~&17ʳ`yҮcFiwa}:_O?RTȦ]o˞^VڐCΗR3.W>"O,#I0rs"*5\XgoJ /kvw0A\!X1rNA#Y( P׿P_̓7ƴqB>&oŽ&zg7ҫ:U6w\W"Ի>.ߟ5mV;T,}ȵh @TBƙPƓEq#0Oc6k +Qxz $K@.n;\u+ԟnå;87|Ҩ f'Ð3+ y/V @[( u l*;$3u\ uDbDu ?RYbV׀_Օ:;;̄.q9]tTsU&*R'f}V6Nq#qO 9,Ҝ>Ry\?vJMWڿ3\Sk:~n()bq@~*Xʒaʲa{^#@~*<"p׎tf̚.iP)bk~Y2gb0y/>uA>cC殳ZG<\(yOW!wxd*Lo) RN&t}wUDJ Kq6~|X(;(%$[΄~Ym7v UޅAGWAZUdщv0CՈ]hH,mat$<]ZGMIVlh&y˛Hx/H6cb7|Rӑo>s?eCT(`ƪݰ!7Wۃ]bE]^ }u"`AV[?fѨDE}P$|N/ xJ?^bU&[nߡ |LPrZ^4숎d`[I_ ̼j;3%Ɣ5MaV2m"~fZSWBo2TP㱏AfwAH+endstream endobj 83 0 obj << /Filter /FlateDecode /Length 3591 >> stream xZIoN.9?CHV؎E @F\[Θ|fIYłWWb KOV]LLxx[?'ˣɳ5i<::)Z5\jxeՔ5Lset&hO0a: v}=;!Dal/GZN^Ov4㸯.'^f]}3JX#Hm]^}_cqRdu$kDdCO7\u4Ozve\'  QG+93cQ434FVAdxl\ {D hzO箁6%؅,S:5N& F`aN=wR86HANw3ip'ˤnK/&}E ' w"r*u# 6 A %֠hi` xۭA8`tďmXP) ȏM3 m Yi"}p ]qaV ?b,}Y^3כL)x'/RI'rx-4rz5BJzNKc[or1Yf x"h]o/;`UoEAm|?a1iU!{8:iqQc?]eFHb>߭Nzu\=q}><2ul:IIt~}!9LOtY-6Xa/nɞxHzdj<,ΔbVڞAS۳d7=߁c/fU4qN.zD*'󏎄ʼ=Ols:9Ҩ$P9g2pEQ@[I|*]ܪ?i!#";0hfHr\9qLIF5B icLjE g)hy^ruԨPXP3 8:R oBN)@4M!1 RLoyrvyE)B-RXv4 ̴LXכs, z*z,w$~MupWS >p!C+`Y$\=+͘Z[3 0"5P@r4Hr27Xnx'{5`A«"(= v6Jb z e|Ei)=j5@Е%oc,1SAt`|P!7(ҧJ x;́HC&ty+N%ƮVB:G=&}J]40QP,UmlMp EZ/Z##wM*4i8Iՠd qTXE8"l4YBЍ#F{:A!ZSJ!3c`2E1 l]n „002"y<:u5ێ' |w(/9^i|?zsQ-,OAin=Xu,>@ m *XSG~KB*Xdda'"B_3@UdaӤ0P JzE(ǤyS8ǚ1 =g53 ,~|p1Q<MSa,e9ƸрG}$z5]6( YckWjq2f-*ҹkP*#>J$u+(G4qdYWKԩtQGofm}NCHk.N,S>ZqoteZk>`x  fj uXf| 2:7v%4u2ûE#vJBӤ^.3`=R,L}z z7.cyȧ/a1$J`7K\6fD ;:Ooܙ OIZ kE/>R\z(V^aV.HyXu`]RoU?/M跑?d7nE'~Vԇ\=P^^Ttu(2<A9_%w] G&c3ADG,N /x{Ez~uՋBvu)؇y Ӑmp()|0f>ֿSz[5õR&Ґ?ЧwTye!* ,?n19TJ7-hոQ1 ]^?O#2"p*PWfYi8.)ڮ 2MsNF ;;'D:~>r5[-I t𫤡oz~s_V.eJք.Qb:Q :NKXdXp_=#tPV?6ym1)FN-o,ӽG$)*<zfđ.zvޝT@B^Lg:EuAA;ݑ!*kYX>^$?ZʫM"~γET6> stream xYݏSw}95i6b (t'ƒx("{gڥp$kfv7:%R o6::a4LOZ6M65l.PfBd1*ͥ|[ ZR% KȪতUb&(/4Tw>m*4d.{ݼ(fRJې:7lFliܤxQRFQn5HQ߼sV0Bf@cԘh͙P*o?3HO3|ΌwMߴ(z|Xv-f[_ EXoM%ooD?'gp]WgJZrj+&i˸"7wy ƄKH]tRY(+QGFv̓җSV{F R ";:5\V4!p<6rW7AVjE}$C}R"ZSg%^ +m (T@zA 2-U䁗6Qj?8vn;!Qw0 B `d0QhsTp!qĂ?w]s֙BͶ_Be(?ݹ1h< oga-5@̃X0TslWa0vC0 nҌSolI?f4REjC4R 6+`lE$D_瓟& PK \)-5X \[%'"hezԗ]U&=,!ɆplQX灁#IzqIzL+7z7Ƌ8;I `GROev9cx9'wʟqR 9l4,É"tLÌ,$}ZsJ׾ bzd);̈́)+#ȸ)v{{29%J^OY}6E+qȫt!%G*zdf޴ ʎƊ3AW$S[Hz4`f.OTZA0^ơFoeWj)[i̲CrnVnzˀ\ܵ&YR4Ó@[5\` ~BqKe Cf͡6tU ON8򹎄+\)e~u.8)nGTwbnGTKǽѣt/\;&]Ե&rgdR93V2о?uskr> ~EiQqu3' PzC?Y/epQ9Dm0EL0h dA;(m3|bcm{petuM7e%yINʹ.tPc!%yo, l` BGlsrwdJ̫G!Bǭ`µN/@&^75 ?L]DO7S1j.܂ᗅKV˽ U~ 3'۽$XAĢJ5A@ұ0=j4wX`9&_}n1n$ܱ'N< 5d'wKvKf aD?Dz(5;NO^x4i;6R\Ϣu1t H:n:O|/rD0ai_Skendstream endobj 85 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3676 >> stream xW XW eHo3F3F+ M)H. KweWd"[CԉynEIq&!q)en 8&o}ݪ[*B3gadx@Ę#ދ ܁zWJp;kMN8|ԗ?""o<;f!`>~mA CO2rq b>`|Of,b3o1K?3,gf03of3Ìc2?0}Ɲ>3/SUbesB%*p5*\\Y"[qcO=_*{6So[nW~PiTz=zMQXJ #5>2Lq&.G$<@8!΀=o*ʚg߸7r_ hp#(bh,F0VTE)E, 4{S3%%"$D?¸bs ?k뀽j kr.W -F#L:bd$""oEGҔ%"z$NwzLs.|_K֠0.q]V8d/|.b+cG} x%g5}rB)*fFY9Y-mfH&)iȢYA@aߘ4mU-u'4%7EAh0,_)dlZ²qRm}#'Nk&gXb"{=մs#>O<"D74q(oZǭW>}n]Y*'Ţ=o-gCx"D@r'wvxjS)TӜ{A:O j(Ck{F5@VcyϥO^yJ];~j;䓈(dLR;J@:fޠ\Eb'u@C 2uv;[o}-t<)2HCEtQȫ̠?X]ulUYZ PKҒ$hꔨl !&s,tʍ[XsD5pg9 rmc4TMwDj(Ӕ&va~A9a?b6!.$xK`˭.5]˒d\Ϗާ嗮߅6uii?Ԍ\o;dj%,ӝ% 4R] 黒2td\;?7.@s8L(- $vړ+*a#uV4Hw3.AYJBMejH\.n R#VC9le_{Kk[rDExrdh`5,^beR(̂8Yh<[(nqǾ@9.JtATBٍ~9C+$L.kdͳ ,tz%nHKt3 ,kFM4phC:y>C=;s΃dRhd+`]Z,iBJ٣#Ï@t>cNlњL 8a[ZLgFÒ׿CpL-rBwI4rʱd Ε%_.YƔ G7~#:Vbkԧv|KI_@"ie gʡȼW|@u ]+߇.R d6Hj1% 1,~Z'YPYr}1m@?z'2hÎ<٫n6g4֗,)r)hd,qE)P.rJi9eh\G8ky;}9Eb-j1g ے[[Ȫ:{znBJDwc.^l%m Nt6o >qR-FjYƓw뱗'dND5z:Q!cEi+K25y`2GMsH:}@:[\Mѿ gv{J |E%Pf lg::YI\JLXJ p$)&KR[Uq(5zoLCWٮ=ab e ՑDm !X!3ķ˕dd ++?Zu+Ar/>yBSt\/;/'b!XjQ"+f2Lp+U"&ݹ 9rI> 8G2KWLmX0flL4!`+:=,Ͻ,MXX6SIf *L;Sf-K$[^%'?ZNaqKr7AEˊ7O&bi~⢼{EflhS+DE6xe=M5|FYPul^:{unY[_*ǰ{q9f.sb&Nu忹{G6z*1N4j7F[m@~3׵Vm%/֎WITsq)57U..̓7Na@:\mt~ov 1E S<RJ nf#J+Q\gX\bUuF{au+(Kԗ*kʯ!,)!6q> stream xV PgaFhʈ$1/DEu )0"3aPaA&bv qc&UnO,LJmwuuU]$%H\m}oʼmѶO@~9BRp?wk.])976n~bҎȨћ6oQoݶ}{>oSrj5ZES5J-"j1!ZJ-<)/(/1ʞA}.عڵKG% ]ϖW:13eb~1mDs~!OxaCdo7iR2$˪ {srӈwڝ9`lpBPA'd: cU$s~a9`7ȫz1l@F q?V5A! R4{TD+ɕ*݌覓nQrqsԾ<9 k*iFw4ThX:Hf ^ugх#e@(TN3j F*~%p0UQkH̆|.!N&,QՅݷ8oD7},Gsjk CWAIZ^}biC)d$( ]V:Wh3ك(,gW7 ظ.p2#Vjq>}0:بfs'XAicw[g3V#Lñ HD7:ٴ xC\vAQ˟ګM4p@]- ӕm]VLXOq }<Lhw(@!S4s3c&| p ߣmUnOQq>UqVB/I[ j9liM&*:q"i/q/=a6Jm\BRh_`\E%dͼٺ87'w;Yp^k8րm#JSfB&`u2)8n445ۏj*uܑf~`n["( tĔ E״_'k8W:% CZ󝚙r )|8UpJk +{LRהoŦ&qIWY=U*zξqoP$A ѱQaY1dnt5@bm*\%5H ipG$D3zha2o7I>aVvWek4.>n1.r%`a%mDQ\r!Tn4]/'/^y";r6` ({y\BzM0D yp4*,:%O3\{)^ɱfh*CoG1)Q Rg[^V%¿_Gd-umG O#&O7)Ci%lCZfTo t շ*&m156ٹ(lx Y#-yHy ->(fg\>zQb}zk-OOF1߿w:U*'ɑ7:@0E61zcU"rz.RCaHѾI$2n6yi8 hE"ЛY90MfINrfɏ ;">2#1`4? >=}>({&B9&RL|Ŝ_bobM\>>O~ݥ=\|!0<9~n_qFʃ=^ l6/2020P[""b ~Y:bC4{wѹBY`2ͧ!']>j!hCL c[*pٯR#ۖP"4T QRwSA";*L)/ї2*d ʊBliɚd_b?D&<WE7N]&S%I=Kˠ@*cVNmƴJ]SIZ\ׂ|[֦Sp4eùÃ`.C AN;vXS@hXמ%qp램EHŌ)ATs9OzU$)$w_ WmSGlltz NK Sg_9JcmM)]_ۍ#E͓B] YzfۍIUU+py^N*t38cʄ%\Z&G|$7>8h0L)Bkendstream endobj 87 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7308 >> stream xyTT2̈9Fcb4K,(]Az/"0aʞzC BFKh,)ļ_{w^ok\9~>܌Kz;L?-) WWC,zkC#\k]dDQ[4`A ECB9/ wYsrn;Vt^;yJӆL}/Ac6?a,E  jNSPjj$@P:j.5ZOͣR8j#)ZH-SϨj)5ZF-SjJYQRʌQ)kjR QݩTOʛE}B|>T?ʒS*AwAj) eNS/qff YLh^vSfSm@h鹦^z^>5}e}ͲAW|%Y&/ȊdwZS6iwհ=1l||̠Kq&GK$pk,|Rp\gt`ͼJD7 7y{ Q|zD ${G9Jl,j}J37L]#/kmh&Z Zli"yo^(hwDK !zp`->a+8 DE m- +Hpm!m%q R/17,TR)P|:!IVTxh7\x6Rh;I׾p_WVpA'z9r*_Nsmc9naX)I((cl~ ۃchH`^>T^%xt0:>$x\iWioE ݖgop`T&`.hJMט44:4hC)P*l2$<.h.C@U 'S(?@4E5*H"Bc|u.3"_l~M|纨* lyyJ<~*ʭsmd9bA-Bh[MF#5=&EZ=ֆF?[˘_YGuL6s !A\zP/%WcEb&[7£Zc F_bZLJ, EO r1K*S R`Y}9 :d%Q Q-)uUƢ,8Ԕ5CfI.6,H*QE bժXڵvv]=׷7u"Q*&sJCtՊVzC{:uHbB_B3n%]m 3 W ݁OZ3P:s}M'* q^Mog}Ӹrh><2Y@O޸p4U1V}G; r<јS+.Th^SܠBtoOTwyoȸŖ! ȕi ݔk1)r8A~mUǡ`g:Vk P&!ji(]Fn%pjK\˜ L eh(?9Z[@1<~"N?՜H]¢첋Gu&+8oj)Տ:B~!I5a'Yv`Lڇiw]ԺȝJobC+ v9#LᾸPtSQqjpʩ@1 _ a,?6>botQMVGAZ^SX’慝Ź-Ѥ m%|8?R]-QĊl=nO!]^Y\Nϭ{F;z& vMJXNx`+<C8"8޷Q]/ߨ (M'TgHVJP@43+:7 1%?简 _`&r]UN\|IZ\`}FɑY{>Xpu Y=dSoV.8Vab1 "-EzFdۏQFǍgYJ\$28e`!4҆OJnXt`oMbw/^dDӹD~^>FWF|ԭrͼ;rO,G3EP FC yUx sjB1A)Ūz9/ŧ`S>OS20P5=ZXERT#7ŠR37dTCQ!8uKh%!B%|i?']8}lӷ$:%(3+c>jYw{JƉ & ~|M?yh+{3i>aWP_j@z1d),!8Bn?EfNJ<(J%-NfG( FSrчe)R9u5~I\衐ZH3Os<7D&4l$O% zBVLCs6LGD-G4T6]QM[w]`@fotƐU. ۩ c;tQ%Tj+.j \sPfq7̍xlK= "H ! t-R:!SX:/3m$TB[ڐvI;]#flykarazݔs9J?Z2Ux+eG5^Zo & m֔8nw|6QLFgcḐ6].~ m^5hxǿĄhS{kɂlЧ$f!>If'w~)OGƫ 'P:~մp#t!$GĪM|}*llXRk9 VfA\̞~؊UO}+BP#BL}$hy[#X3E*kʣduR\܍ H2\`sʦ8ʴqr|!9ȭ;-ͩۈ[u$pFzF:a1ޏvq3ZzqRUW^'64UPl`B:n%0Nq4_mLDrl,<˰7qA|v⪍Yȵ+AWPPJ4J5j!NBEbƴ +^] 9{ fdd壟_aw9yNLY4ɴ[5$HBi#u߳j*[̬Ŕ?N9R Pwpt$Bj*X2_B4iYO4}~" ط+$~\mq3xzutr&ٻ gj 3w#u&|ZM؃~ْrw|2"lwվ=uzSO {U'-endstream endobj 88 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3578 >> stream xW TW֮DR1QBP ,,AYqK8%`4jD\9s_m͜əpq^-ajBD"e>>H4~BbÃمfR,MZeK_:?\#e[n" bs&~~ƩNӦ b97Ÿ V7bp'< Ob1"eK0(–#F0œK',1&l(L/#:h2d04}mat'[%jcJ5lޚKYl8n9ò ganҎGlX8d!Z~Bt?b>AfEIkQ$JDwv*rSP2ш*dUjnQw3E֏3 QTŽ&+Q3ۑ{nmtIiD6Wk_ToaD`q'qw32\xt˾.ɖXUAq,-Ҋ.@!΀ lM'bkL6L䷧`ze}\\]}n>ytZz;CB:϶[05)ǜ,_I[-YCYlB&QDxP`Mҟz) g+jDT4Fb>;fj E,.EG֖~*'NhAT;t ޥejQx^̜$z3Kuğ]s0yop4Dy(eNBY(RS=*]VOND=MmiCUY_%X^|K_+tmX1i'[[kXuE1ET?냢 ŸImP)Зn* r!8bE; wrvMlL+j4uu3,™ a/N`Y!hlS!oocwtS2d.y,Do q~OPW5N!{Dkp/_[? C!,dKj#6'oIm( Ec)nsŏ 3Zp$$n#,НGO/KfJ]/W$_"(2^oCBYX.="8BLy%F|}m0XN^7T-haV@yǼZK2c7CV:rGfz%(p>`Ѫˈw{ٲ.ʸ}{Q S f NM|~\-i> V2@&W'ld`6TZ-}N o bCU.]шg)2J2 s8pƢr<y 18%ed$*HnMBņE?]C袘;FrPZ+ ۖ* $ >{i\n}Sgb3lqcn_cz A"vV >Xfnߦ Wo?u+#p־'\EjSR/C/k$(R 7D!,ڥ(EsGvI8 I>JQ)',u$moG,I3`̼]jdQk2E[:/AiCz@`- `-LGDc6yxC"a?"` l 6 7}mW:ӗ`ެg 'zc &x݋ [el 'ԿL)RRmV*srWeW-:|}7Ibł!CڜZ5?4J oCJIzsOo|u;`9&ڮIԔfH˖:rQ[gx[(웞THhBxL z Zѿ@?!DԢg/5TwX-={Pj˲a[Zz8φF$IwraQܐ\]IERz:S$Ź%+|9mYXr:JE07(k1IaӟzOX~Q ,()(!: 4@f9pEQ))($endstream endobj 89 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1264 >> stream xe{LSgƿ˩E{(E0e.ʘsqEPQ+E(V EZJR"êd[(n?e.qQ7=#qDzM~H̋H$Q{L+ {SC/`0f'X< qBH9HG9]Hj)&Y2s ƔtBI H6d jI(Ad$J"%^A^^/7d d27ۑnuKΡ?Gf =AT:~ Y |gp88)9`h(\xVvzTVb!Nz5IC܂OV?FnE-;E ]3'}IKzN%?gPDMG`8s> 't-;vᰖa[.4] ^Ct<7E}UZ6Z-4ףc2Veql ]Q$|wm+Ej?<얖nN[W#8+1[ *3^Jӯl>b:ЗQؗRa[г Jz〈 Tn:dBKn4+?P uCQ<u^AlT\8RYx`9XP(uTm 3fSN+a0_aWYS^y|_G떴ƩR! 'iN@q~;f9!!bEUf;}URt2;;rζ_Sd1Aފ2l[=g[ێj1¨KjsWf-rb$ҡST8Ԉ" s^-A-]y]A^9< :+S'ƹqYmF݌,9jY/"n؝o8VVt.q{9F.%ShK|(*~1M6G6enqs nB:Q/ƪ>νGutǿvUʬP67ԝm."{9}p{xsc㾚=f5\:pjxݻnynbB6 bWcWD6(؞w%xe`P::m Hq甋#\PBe62 yꨜr6pXSs)ŽKfHL0m] O=G=Nl f8(r U_̥qd[3Y(pTV:C?:xendstream endobj 90 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3574 >> stream xXytE2NB) GRQHanY eU`0A =L*7V% vt3׷r5yxg.B ԥ/Q*d. XWukkO0F9RJ}BP'ːƗn5+`v 3Uw}22Fkz FWZVjlXs mM7ȣƨmy<]*fʡnM>IZj}ь:oA>;-bg.m !Z"Lڎ̽{;нy5z'ч. ;|?_xj#2Jq:>mf 4Z^`@KVJu~l3 cAb`?6W 8,(VBQ@Uҕ*FsI #p U u`sVE_Bۂ+%b W:`H|rdpwPa0Y(eT@.lVC'P7s)G u`Ɲz&Z>~wkY.Bz.2˒l!afK2ATP KqSjh$BO[5QiמeQf8.ueGmK~=߇u",9?2`TT5@sjd]AchIE51 fe"[8r%7V\t3NQtZ}+F?]`U(g.j:1:L @jJ=l@1zCy~q&AA0`[9<-ȍj*jA-M\we3#@zu{3k(V1R=hh2*Wa:Sq"ЗY@FQ8mk0W~lbLcDE-6ܓ ܎a:>Jpd~NmğqWjJS,%JIsg_s8[qBUڶ-չ>Zwn0rrX`z Ok/ 8b=SɆ2k{}ewf vԒVY]@&f Y)n$C,sݍA4u바DVªjlj ;;vz?f (zIѨ_'v$ ui0 %2U`A*RءQd9PK&hQAߏl9Bxr²@68Z݆ > b%ܜ-Yb=hMߟ /#O,o:3~N59T"@`hjZh.Ks/~< px*QS *JDzJvJ]1rN{r{;ðwP12w"w˃ܦ_nMg1?p;Ή4 PqL\ { "N$diD|ObY^REe"`PF6X*jn\X j`Z枚 b}I :,M4z?|ŕ$-$6U_6A#[e3A kȩK<5y5oVgvj:I߲{Y.bW>u ^T@0Va9(Z }/eAq<X(k[XMp3B6{\p&B˶)4"42 5)\&'=EvYNNaJPAAcłBn jDz]Ё^:N z,C+υB2NY\M}w'76dS?GXnįX=UT5N=c]G}Х߹_~;{z噒p*tҗOmF;IR_쥲ɤhrj):i$/5kz7[L!rД郐Dr83xh:`(Gw( (/8J98wlE2,= 5E|fc~J„դs0`:م)QnpclѢo ۨ~Ɵ!lG `0;5ab6kKqjR 0(`{Z.A#޾rUR\n*Wy FSp\J(K2H72eV@5Rpkh3،-P F6%;ib 8FSrrNsxHfp3mn8a%M{JZiFQtrtۢojtp*$2a=Gx9LZ hJS!?4 G'ok D'x_}K#3+`tt鎂p(U黍`jh;94v 8P"Qg͜㣜KB!+-5#5l{(XxfC͞7knDŽk+,s<7endstream endobj 91 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 199 >> stream xcd`ab`dd N+64 JM/I, JtwxӋewS0c1##K5|Z2,(~_?~bܥ;~3>,}}Q\rUl<_s/Mn9.|ͳz00MPendstream endobj 92 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2765 >> stream xViXSWHRD4-ruΣck+jVmEd"k !@Bv,T}k[uN;#ձL[{vn3|{IA$̚kV'd'͙=kcʞ̄CGC@Ȏ`5"(\>C5ScpF->jQ%%>Uà"QL*%z3q4#31 o׮gE^#i 5L `ZjA-h/% ZBx!Y Z_Eۇ$".AyIYAՔ8bBMtzY႘]x^{joUvUoTX\ৎ63OV9s*+xϙr4ELDFI|!lW[uS]l{I.t8Kd[T۷;('y=E6m? Zz4LBPkgZΜ>rP7oRRR0AC(}͍wv.a1'_-t;J@2Uo-W (MZQX|HefO77t?q1PN%5utiqAYNjq:6iʻ.{vxΫ1+WmA?6$ǹlt]VAR-)n~p<(]?C\UXbc)f rtZt4[6V GZ4y6jv-}P_Q VsR ܉+gKb~i^6/e܁̢Ix.$҉.4pk;snAjɻC~%MˢRVS3>p#F6C>{ /3;:r$)zzNw=TC^CcLJ- ~1"g^W{v+k«Uik|6ZOP_R];@;I5Vek2m嗞Y`֝cs7lV/p\gZ\^ŔTnUNiHmiuɎh? i!?!BsEadNCw~N3g.)Xt,5w*P+7hg9v"% ~"sD^@Ze6u4@ 1;4C( =fm xmzH7.v%gt{,'m8^%K`Q 4.[ݓz$/O"kno,IP!ȥv(5VJbC+m4"G҈c, ~vD?6ZIS['?;t> stream xMmlSeǟuD M&&(b03A2$H(7n(m޶+e,l v`ķD1hb>xG7C'''y? EQ{w;buʖ:z-3PWj)HQwY7>{)vp\~fp88;c=G-!2T7*y@ѧ%P!*j5C/&OBծ㹺GtMO)Tq7C1/_cw= lb=|=Kg kNL4d4> stream xMSBM10xAT  C$fx-%3z|yothhwX`{;M"I AҖ|QI2c2/d1/Y B!h~rttI5X(C8\L 7 2^oendstream endobj 95 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 645 >> stream xcd`ab`ddM,p(I+34 JM/I,v|afaaYSK軜wqB ̌ƙy%E9)9y%hBť%@á|(vNCXf0V11|_Ih¥d'Z𛟞o9 bwB\Go?]*m[)wU7GzѢnսsv/XS4&#bo:G}vI g_>Ǭ.:}Խ{IE{VgUiwG֒EZ'pӲ?6H2n0q6!9Go|5.${bC-T׮˝w|5g|-qD5 o[{8]!jfCYg.;{*߬ m~[fan]K d~u> stream xMklSuY<`ט3H$Ī 3N6,sumv^t]Y-6l|LIfcH[$ZB4~~޼=$%I[>ҞѪ[إlnѵ4gu Lk6}㰴EVXQ A!H(-%W9I%lĞ#,<"ϭnIyT!xept@ BD0DgSpZUkh''4ځFKe AMha1%~k;;YCB;bcAм?&4 /;,*7oUt`A"]vdȫ$ 8|v;YmzP`66܏ky$qm, ৆^<*LvcP˯]è Iff? mWl/^y(d'*W̷t .:H^GgX[uTPfo|,LvPBHyMTrO|>>T8 -j띮puT8 N3S -WW+DH 5ϑ:Xn#Pݎ| Fal٬ ./M-|`lOıJ%}L97`(s{pvΥgu. )aaKn(Ƒlp2rq peL.#8}})鱩LZ|\_]#+J9``AYMxm˞ o}o?c ryfC.ծetXuȅ } ?z UGB> /Filter /FlateDecode /Height 173 /Subtype /Image /Width 149 /Length 183 >> stream x! 1 bK&Ū:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:Ϊ:ΪIendstream endobj 98 0 obj << /BitsPerComponent 8 /ColorSpace /DeviceRGB /DecodeParms << /Colors 3 /Columns 149 /Predictor 15 >> /Filter /FlateDecode /Height 173 /SMask 97 0 R /Subtype /Image /Width 149 /Length 5913 >> stream x]yxUE$/a !BX:({BB ,30v`3l*Dv N70B@A I {+Ju[Suz]D2\$٭p\7ح)h!H|Ǔ'OE ={֭[6.3]ZM\c!:vXZZjff5ǩs3:Kg#2fg?ʻn2dDk#($k!N1MGs &¶Ca>N}O9HM74$J#|dȳR_)z jvr^KdHI$GUXoyJUj $"d"?Pzj0a)2̙e Y hѢ 6!ښ:qܪ%625!p.r'Κԡ_JkVg9ӧWgsx,MP2ŢJYQW0%I|];~F8ܜ=_e)B վc_LLLmm-bKS'GS;+..p0GmYԅCW (t?'cnxA/*eN233 L Vj!2&(òR?2g,$X 1lbni.Xihh0/9s6mڮ]e'a~us(sjErf)q`f=\~хyv,)YG`nblܼa%9(_yW7S1]]Ge_\״1M3#fͣܠ^JQՎ8k* sj rt= ؖT^[v>Oy8yG1R玸%Uki|⚌nOo唼I\|lٲUViKE;EEEIIIdHGi &Ւ.CHy ӔR5GUm9˺>pGF H4 ?h͆mcCqC[ Pon{&iQ68X 嫂+j==B7 V?tJ d5m_88j)G8oSi޼V[[mZ7 /!g8 ~S7ZPBiSC)spn}c?+318:tnWivUCq:X{:pp7[C?wj!LZ [?Fk+A G'.!}]&hn>v7)*εS|176YSi^w *Qd~tUqFtKϯ֧x 4XR)/\\xpl5h%ĨK{\ S`d6': Ճ:+SxN zoM2SL8Sxa&ZϺ7?i5*xyҪr@줐7_'g3x`E~L(u|ڌnO2cs*S҆<[ 3|dR~Ŝju2l_]·Ə 9)f ?]&,ڿIwA3r龜4_848/(]ɩ]\%Å |@jXqjz'&DOB/)G.JsIgp 0*(i(崋g/6C?:'> trgsTŽ؉6w6&M F7M+꣔g Uga@F'^D% U5<(S}@.zf@GN¶@MvPEyh^՜|RB[E@翈32yV ۅ$37{f>=vpS(A'W7zqX=z⏧MU_:fX9^94* 22tޢiJx9;|'SRȃP,>/DzNS|tEFqT`) asH“y#k _=5s~{SjmSըUE_UF=;Kؘrp~ 0ΊQRM:L!sdRSCLrA߇w|c@uvrQ~cN5B(V_?[~|!.7q^#F !D(wbty.I=ZH Gv[(O͎bzhp sFPEPP{oQQߎg~D& "?&yJERX+2Ο8y}t*)r"J2e|w=9Hk+˭9t2#Sgl%5qiJz ,FaٞW2Pi`-эPIH9^GhHQ[$wò*k':W juuB笐8lO4[]mGMQ,xcJkμrj0 !t:}w10ܺ72E̎s*@MG_د9i y|{~?tZX 'ܯ-&SOOZh1k4#:aAuj,H-y'0A`F-ED69DG Dz#9;  >0x BL>d_ti`]ryKm&-Z1tm@+UٯJ&A_̶{C^ຘ@`MǼR??`p,.[)r&xrVHow{8;@h.8G0Sک?>}-~e"W[Rj%@3J .n]r`v|o(_}oabM]N;M0Э\=TǬAL6m׮]w<8Dnų%]ߔ!+"pvb j(RH`ŽYG &0A~Cnymg,tn6cZ3/ei;q(-sK2jljN\Y0 _:th̘1GD v0z9!#:,E|A2TAsZt, 03۲F: YIi," إjaw~ ;7%IhIc#ys.*_P*!7 Ļ~~|9iҤ}k$A`ӋOd_bF5uL_PX3h&( 絔ΏXcg[QUWWeѼ%J,HB_:; 1X3g9qòٔ'CNY C`zvS3b/|pIJR`N AeEX]ZRVV@DL L>"& x|H]ʈbnԩo-_PPeU %d A|Ǐ'CfN!PtNA>)Y[[-fS,(Gw3.e[UbN>ޢisSg6uL8?Y &L=p79ScSqxSDd0nܸBkTED$C"X"?)UƎ{oB[#`RT *++B@{jx%3>"CP[rC9g0E"?A#o VbA )@[ASD*bkB[S[J ^o}}ʘb endstream endobj 99 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3212 >> stream xW TT~0 */S敜16Z !h$*>20 MP7q+hMT*im[zzQ4M[sҾ3gΜy]Gx5k7feDH2 |cbL\ǯG `*w?5 D/b wgdfJdyq$$&lL)I_|ZGfSjIͥ6S[U<*^VSa["mej )N=E)u'W)HN~4)r>bʝ]ޝ' &;]0}>ENQĸY<[ v{fu `DX[71s?PK.A $8ao}9+oQf<UxК@E{@sQs Q)A/$IJL6 0A1zVH0 ɃdM~:Go <<n`a0^t΃:=h~% F9KV+\yfI5Y+6'kC Dx RM횄WT=,kR%k+%ݦ}`߇I(~#Fq'AVxzA7 /n>\tBh'XkϹbj:'p++ bsf,.]/v1٧W_)buZZmQli`!27Ւ`R$ %u-`TptU\|p@]AϏ,N=*:I\Q![E8>mWZ{2i=RXM:Z`i1@vCGWAhU7e[14XVr;| {f^K6 vݻ?~W"5:8 Rlǫ~u:Zf%?q48! KI="!,=U6JD!UsHSgiwBɰ|$ٯ7Ju"yYăhqq Q0COaT'g; 7DM38u}FI<w_?e_c!w*DDUkνۂfs5ҎG6 "U|]rt$6-agST߉f'jN5Ag%6+7*qb<ÁG_[auezRga8 uz3 .Ԓ/[ ;z^)a;2ajBQ}mtXZ RLn:&N>NfSp \c>9ur=A ǽXZ(F&OͰ` Z܊BӷUJ{[,h7=+}SyxF~9c@SNwUd'Vվ*m Bʾ"}j&W׉_^O&A<Qcc+eDRj fhFG#Fycїr .g @LuvŢUQ4ՑoχeKW,2Ƒ+.MS%k bU W?߄d@W]m4#ƒsiQ$"`6764tf:6\X{-{;z2*MzZQ*trm]jpUiS"Mjg~N<+3hG iF쵶;kZ[y>zo!5!P~ YG>q~h/~9\dɴ^x0_k-W=8{ͧ( A7  f`5}&ȏĂC6}mBl睦[gk:|~h!C"#f$*"@>񚆡՟^dIB¾Tߞ(o:OU|finH:iCbQX6vc4\3_S ) dkkI9+DQjm\-W5×88b>> Cv[<:2>2PUF٩S)꟮ Fendstream endobj 100 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 615 >> stream xm_HSq;ufroAH&IE5Ӆ?! @,B9jSc1C&PbZJDQtuˁ|mawR}51,neU9RW낗[响[EIMX /SIJrQFvIn(E?N Jhn]7׊g:[g}u3I|k^,&9e @O%/8y&`;,*EeYeϣ"84eyGs tG\{!Sn fD,Uc] y4>'@g}_hb +3twxZIp@^XE-)1 (PPm_A+a/!#mV77lP- 1iRn.OOO> stream xX |SU(HiQPDSQ2P *t[6ifkM KY\(@ esP;P>2}P^9'FD"ф%K$Lܔi+bb37 w&GX c}`]',jrʎi 32MYdo-6nf=K/2婧>3˟;Qrj5ZIM"Uj*zO^Qkשuj! fRYT &P>Hw#hʗCQ~T(5SKmBd^4I>}6\?"ngVVL?Y2cyθrToW?|.g}pd$RR'n%P@[q> z-CuLԁ}6LTڴLPv35%B2AcqZCV]`%5C0lmv¾9BtIP-̩f2ћ{0SHWOnd[6=lD{w^E,uw,[rH# ʁy§Lܳrmhm]GR,˸C<6Ci]O.(QR_GpH&4~Dbܹą*vxE L E SFkI޾OR1`!0 ( zYBһQҚzy7tRSyX805Hwh12lj>0 Zg%~:sg4 s䊓92?Bwa` l4ۍr?dVxe-wqF#{3O@xʉ:'}hbvוWEdMP ^FWBO {㵒KnD'$?|==#GѻPMk=88B9bеw g IՏؿ.V%[JX{ڿ?#ɘj1洃`ܜڔk6ECy;W+ymzXU1TJRa0:OszyaZ8TNQC %#ܑk&>H,ֺ8T\Q㈵a7E*13IlCLy`ԓp\ Cm\7c|KtS10$Rm@;v-r@:WO~ 읶P/C>t>xǹa%Au%R0]S%}]К~Ƈ??K!j g+芸eGD99!}{-AP 4@U' E_smiKgk·?IOl(:[Xl5'b# ͺ}ƒ8( q,kd6C|A޻Lpػp<1хQxYȩR{eq=bF:sR\FN84@eXvD–'`#< uI5Fb~\l2՚Me$?=ȧ2r# Xu;8?DQ(ݔM&le8x=i*Bh-ȟ@oHSDГ,"Kd=֓铸=; 68#.so)x*%BnCa D q_ dJO(9wمĤ:t5Aſ!wzYRkk${O> C|p璔C毞7^!Zk R`t?+>Fp߅ [l>ȏ-p+Duh $]o3h !(!*k*;?Q]]a SFDR+?EVaGR6Jxh;ݏA[gDn3(Es GɪN f{tȲ S5vn9%Hί#yR零ȁf!֒ ZvB`Y_Wz(L2kUF UVp(3ex쟞DCY"^w72M$j&4:XkX]"pZ~g SuCf L z~tRkB\tNF1JJ3RZc*7B$H&x>;;Zv~֐n),-aW":P1PgسR9 N~|=H^:lP \JP;dA:b!@&KqLB`/ ϭGIp |}pN:'9ڝ^x7nwK'C!o徠ZM}O6AL.Pp3fAh}$;'{ˮ#;Xh TikVIN?L:Pqb[^Mx]7X <'6䶯%5Fmgs[Krj CsC4KKy$m3(eoу \NnQZQm@cV-@(Znw2z+` "a{vF5Zn28ITJ>DGEG*8ʰgw~Hе^9D=wd oSȦR@1{Zhy.r߬BQoۤ゠R#{ڽmsǐP7%trBBdT@ ܁)isAݚU_rUؗd᥷=m 3<<*]CjgJ0S4JXT(J]lnf2A^|:0yH_P7+Bn(E.@w@oq@i`)z%>"50ER-\?J_ ԝգ%3oV\m)M.u>~ _0N3%3ZخGgmuN^R\wT)>0%ErQw'gS$xꈗuָ [\eN*Ly7Q^ѝtB~׮^/*¾$ 갶%[Va](<'u_=ވkNFJ!z;GC h5W { nI1/n+: !7%a?k ;8aȖ:$:XCe[X * n8˺7ꁊ2SB.4% n2ÿ#)42; i@Qq .jΎwO@?tW.Ν$g}`9hUJQ@J5wh$ @5G>C">?#q&Q,hΠi P\m"6d:)݇&Ak%8&~MKIfڻ1t'UғT@P"qw:F&m sބ'C:G?@]SPj-݅q?֍{aa'<@%+FY\P(C}Ŗ kCNT7U@P yvCLe6J G^>c-:yw ?NI*~LA'tq=tEئlš|%Pb.Ӗa;& i~a>D 'p 3+If5U8x mrb` Us*/#jȪ.`=UuI\a*6֦B2`)H-cڟ߹fV6 ZSgkd\-C/->NҠ@fTM&aQ>\3y~?==@#\m5 Hwól +QRtLUK;ˑ\YQydn<5\zjr;\fH}44 y^rjK5"8eDyxc0]QN䰵:Ϛm^{zS DUV*hL}o-'@w˽MeRa HTC>tl"C-C n6qP$qDHI%hbX(2S*Y:̠(ͩB_Fx< Á ou'9b )Q֜}yd/$j>y3uދǎ)yBN nkVVb.5m~p\<4p8Tku\]bGܸћE9X[[MXd.:ւqַ֖F7/A A߁gq-΄= 덅x!KIUp ml/>dkTSq=D/Ϡs 'ޏh¶N9xsxZl-B~W<ޠK%enKM3*@riq .*X^ht%ٽv[1ʭ4")t ז#?@8e Z zZB|c2vJIjc){endstream endobj 102 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 541 >> stream xcd`ab`dd M̳ JM/I, JtSev˂0 0+3slww~3l5%%gd5{ E 9Arb'۬@9L er-g'?j_p&tc!ݿcukӝ:5û=v[tZq{wY{m tn2%ڬne_t}C >ޜ{mC9 wzr`阾A~e=rIa:Y˺v]g*{ZG\Fۖ;QawvЁ/|{%.Gwwfnnlߥ͞u왒';;߂ryl 6\jFyr+[nse'\y cTY$ClYN^:KH>0wJendstream endobj 103 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 217 >> stream xcd`ab`dd N+64O,,M JtwLò)G@1%LW}xÌ~/]bEδ9w$3|[w+o^}݈;Lq Tv *l9Ըp.0{ Np=b <}@4Wendstream endobj 104 0 obj << /Filter /FlateDecode /Length 360 >> stream xuN0E䥃㷻$$lZ }h5DH=ӊez\{vR #t,jz\ x5 ZjA०&l޾FegUSLsDZݖhE/.r1ƂS.%aQ"ב+J&J!H Θ:Ve_tWD @y2xڜ8D6u8X&F;oL8xjBXSZ%׎uCǪ> }]gcGm٦HSžUFߖ0VcU]VipȌpEQAHpܥqaoetї m&q8endstream endobj 105 0 obj << /Type /XRef /Length 115 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Info 3 0 R /Root 2 0 R /Size 106 /ID [<35bbb683165d618605533e4d7ef900ec>] >> stream xcb&F~ c%/ȶ|% Am@?} l^ H V,@)H0q@ @Be'z$ i#AD endstream endobj startxref 65391 %%EOF elliptic/inst/doc/residuetheorem.Rnw0000644000176200001440000002246415104404043017320 0ustar liggesusers% -*- mode: noweb; noweb-default-code-mode: R-mode; -*- \documentclass[nojss]{jss} \usepackage{dsfont} \usepackage{bbm} \usepackage{amsfonts} \usepackage{amsmath} \usepackage{amssymb} \usepackage{wasysym} \usepackage{wrapfig} \usepackage{tikz} \usetikzlibrary{calc,decorations.markings} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% just as usual \author{Robin K. S. Hankin} \title{Cauchy's integral theorem: a numerical perspective} %\VignetteIndexEntry{The residue theorem from a numerical perspective} %% for pretty printing and a nice hypersummary also set: %% \Plainauthor{Achim Zeileis, Second Author} %% comma-separated \Plaintitle{The residue theorem from a numerical perspective} %% for pretty printing and a nice hypersummary also set: \Plainauthor{Robin K. S. Hankin} %% an abstract and keywords \Abstract{Here I use the {\tt myintegrate()} function of the \pkg{elliptic} package to illustrate three classical theorems from analysis: Cauchy's integral theorem, the residue theorem, and Cauchy's integral formula. In all cases, numerical values agree with analytical results to within numerical precision. Some further work is suggested. } \Keywords{Residue theorem, Cauchy formula, Cauchy's integral formula, contour integration, complex integration, Cauchy's theorem} \Keywords{Elliptic functions, residue theorem, numerical integration, \proglang{R}} \Plainkeywords{Elliptic functions, residue theorem, numerical integration, R} %% publication information %% NOTE: This needs to filled out ONLY IF THE PAPER WAS ACCEPTED. %% If it was not (yet) accepted, leave them commented. \Volume{0} \Issue{0} % \Month{MONTH} \Year{0000} \Submitdate{0000-00-00} \Acceptdate{0000-00-00} %% \Repository{https://github.com/RobinHankin/elliptic} %% The address of (at least) one author should be given %% in the following format: \Address{ Robin K. S. Hankin\\ University of Stirling\\ Scotland\\ email: \email{hankin.robin@gmail.com} } %% It is also possible to add a telephone and fax number %% before the e-mail in the following format: %% Telephone: +43/1/31336-5053 %% Fax: +43/1/31336-734 %% for those who use Sweave please include the following line (with % symbols): %% need no \usepackage{Sweave.sty} %% end of declarations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} <>= require(elliptic,quietly=TRUE) @ \setlength{\intextsep}{0pt} \begin{wrapfigure}{r}{0.2\textwidth} \begin{center} \includegraphics[width=1in]{\Sexpr{system.file("help/figures/elliptic.png",package="elliptic")}} \end{center} \end{wrapfigure} \section{Introduction} Cauchy's integral theorem and its corollaries are some of the most startling and fruitful ideas in the whole of mathematics. They place powerful constraints on analytical functions; and show that a function's local behaviour dictates its global properties. Cauchy's integral theorem may be used to prove the residue theorem and Cauchy's integral formula; these three theorems form a powerful and cohesive suite of results. In this short document I use numerical methods to illustrate and highlight some of their consequences for complex analysis. \subsection{Cauchy's integral theorem} Augustin-Louis Cauchy proved an early version of the integral theorem in 1814; it required that the function's derivative was continuous. This assumption was removed in 1900 by \'Edouard Goursat at the expense of a more difficult proof; the result is sometimes known as the Cauchy-Goursat theorem and is now a cornerstone of complex analysis. Formally, in modern notation, we have: \noindent {\bf Cauchy's integral theorem}. If $f(z)$ is holomorphic in a simply connected domain $\Omega\subset\mathbb{C}$, then for any closed contour $C$ in $\Omega$, $$\int_{C}f(z)\,dz=0.$$ \\ To demonstrate this theorem numerically, I will use the integration suite of functions provided with the \pkg{elliptic} package which perform complex integration of a function along a path specified either as a sequence of segments [{\tt integrate.segments()}] or a curve [{\tt integrate.contour()}]. Let us consider $f(z)=\exp z$, holomorphic over all of $\mathbb{C}$, and evaluate $$\oint_C f(z)\,dz$$ where $C$ is the square $0\longrightarrow 1\longrightarrow 1+i\longrightarrow i\longrightarrow 0$ (figure~\ref{square}). Numerically: \begin{figure}\centering \begin{tikzpicture} % Axes \draw [help lines,->] (-1, 0) -- (2, 0); \draw [help lines,->] ( 0, -1) -- (0, 2); % Red path \begin{scope}[very thick,decoration={ markings, mark=at position 0.5 with {\arrow{>}}} ] \draw[red,postaction={decorate}] (0,0)--(1,0) node[black, midway, below]{\tiny A}; \draw[red,postaction={decorate}] (1,0)--(1,1) node[black, midway, right]{\tiny B}; \draw[red,postaction={decorate}] (1,1)--(0,1) node[black, midway, above]{\tiny C}; \draw[red,postaction={decorate}] (0,1)--(0,0) node[black, midway, left]{\tiny D}; \end{scope} % The labels \node at ( 1.70, -0.2){$x$ }; \node at (-0.24, 1.7){$iy$}; \end{tikzpicture} \caption{A square contour integral \label{square} on the complex plane} \end{figure} <<>>= integrate.segments(exp, c(0, 1, 1+1i, 1i), close=TRUE) @ Above we see that the result is zero (to within numerical precision), in agreement with the integral theorem. It is interesting to consider each leg separately. We have $$ A=e-1\qquad B=e(e^i-1)\qquad C=-e^i(e-1)\qquad D=-(e^i-1) $$ And taking B as an example: <<>>= analytic <- exp(1)*(exp(1i)-1) numeric <- integrate.segments(exp, c(1, 1+1i), close=FALSE) c(analytic=analytic, numeric=numeric, difference=analytic-numeric) @ showing agreement to within numerical precision. \subsection{The residue theorem} {\bf residue theorem}. Given $U$, a simply connected open subset of $\mathbb{C}$, and a finite list of points $a_1,\ldots,a_n$. Suppose $f(z)$ is holomorphic on $U_0=U\setminus\left\lbrace a_1,\ldots a_n\right\rbrace$ and $\gamma$ is a closed rectifiable curve in $U_0$. Then $$\oint_\gamma f(z)\,dz = 2\pi i\sum_{k=1}^n \operatorname{I}(\gamma,a_k)\cdot\operatorname{Res}(f,a_k)$$ where $\operatorname{I}(\gamma,a_k)$ is the winding number of $\gamma$ about $a_k$ and $\operatorname{Res}(f,a_k)$ is the residue of $f$ at $a_k$. \\ The canonical, and simplest, application of this is to derive the log function by integrating $f(z)=1/z$ along the unit circle, as per figure \ref{circular}. Here the residue at the origin is 1, so the integral round the unit circle is, analytically, $2\pi i$. Numerically: <<>>= u <- function(x){exp(pi*2i*x)} udash <- function(x){pi*2i * exp(pi*2i*x)} analytic <- pi*2i numeric <- integrate.contour(function(z){1/z}, u, udash) c(analytic=analytic, numeric=numeric, difference=analytic-numeric) @ \begin{figure}\centering \begin{tikzpicture} % Axes \draw [help lines,->] (-2, 0) -- (2, 0); \draw [help lines,->] ( 0, -2) -- (0, 2); % Red path \draw [ decoration = {markings, mark = at position 0 with {\arrow{>}}}, postaction = {decorate}, very thick, red] (0,0) circle (1cm); % The labels \node at ( 1.70, -0.2){$x$ }; \node at (-0.24, 1.7){$iy$}; \end{tikzpicture} \caption{A circular contour integral \label{circular} on the complex plane} \end{figure} again we see very close agreement. \subsection{Cauchy's integral formula} {\bf Cauchy's integral formula}. If $f(z)$ is analytic within and on a simple closed curve $C$ (assumed to be oriented anticlockwise) inside a simply-connected domain, and if $z_0$ is any point inside $C$, then $$f(z_0)=\frac{1}{2\pi i}\int_C\frac{f(z)\,dz}{z-z_0}.$$ We may use this to evaluate the Gauss hypergeometric function at a critical point. The Gauss hypergeometric function ${}_2F_1(a,b;c;z)$ is defined as $$1+\frac{ab}{c}\frac{z}{1!} + \frac{a(a+1)b(b+1)}{c(c+1)}\frac{z^2}{2!}+\cdots$$ Now, this series has a radius of convergence of 1~\citep{abramowitz1965}; but the function is defined over the whole complex plane by analytic continuation~\citep{buhring1987}. The \pkg{hypergeo} package~\citep{hankin2015} evaluates ${}_2F_1(a,b;c;z)$ for different values of $z$ by applying a sequence of transformations to reduce $\left|z\right|$ to its minimum value; however, this process is ineffective for $z=\frac{1}{2}\pm i\sqrt{3}/2$, these points transforming to themselves. Numerically: <>= library("hypergeo") z0 <- 1/2 + sqrt(3)/2i f <- function(z){hypergeo_powerseries(1/2, 1/3, 1/5, z)} f(z0) @ Above we see {\tt NA}, signifying failure to converge. However, the residue theorem may be used to evaluate ${}_2F_1$ at this point: <<>>= r <- 0.1 # radius of contour u <- function(x){z0 + r*exp(pi * 2i * x)} udash <- function(x){r * pi * (0+2i) * exp(pi * 2i * x)} (val_residue <- integrate.contour(function(z){f(z) / (z-z0)}, u, udash) / (pi*2i)) @ We can compare this value with that obtained by a more sophisticated [and computationally expensive] method, that of Gosper~\citep{hankin2015}: <<>>= (val_gosper <- hypergeo_gosper(1/2, 1/3, 1/5, z0)) abs(val_gosper - val_residue) @ Above we see reasonable numerical agreement. \section{Conclusions} The \pkg{elliptic} package includes a suite of functionality for complex integration using numerical methods and these are used to demonstrate Cauchy's integral theorem, the residue theorem, and Cauchy's integral formula. Numerical errors are generally small. \bibliography{elliptic} \end{document} elliptic/inst/doc/elliptic.Rnw0000644000176200001440000014034015104404043016073 0ustar liggesusers\documentclass[nojss]{jss} \usepackage{dsfont} \usepackage{bbm} \usepackage{amsfonts} \usepackage{wasysym} \usepackage{wrapfig2} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% just as usual \author{Robin K. S. Hankin} \title{Introducing \pkg{elliptic}, an \proglang{R} package for elliptic and modular functions} %\VignetteIndexEntry{A vignette for the elliptic package} %% for pretty printing and a nice hypersummary also set: %% \Plainauthor{Achim Zeileis, Second Author} %% comma-separated \Plaintitle{Introducing elliptic, an R package for elliptic and modular functions} \Shorttitle{Elliptic functions with \proglang{R}} %% an abstract and keywords \Abstract{ To cite the package in publications, use \citet{hankin2006}. This paper introduces the \pkg{elliptic} package of \proglang{R} routines, for numerical calculation of elliptic and related functions. Elliptic functions furnish interesting and instructive examples of many ideas of complex analysis, and package \pkg{elliptic} illustrates these numerically and visually. A statistical application in fluid mechanics is presented. } \Keywords{Elliptic functions, modular functions, Weierstrass elliptic functions, visualization of complex functions} \Address{ Robin K. S. Hankin\\ The University of Stirling\\ E-mail: \email{hankin.robin@gmail.com} } %% need no \usepackage{Sweave.sty} \SweaveOpts{echo=FALSE} \begin{document} <>= require(elliptic,quietly=TRUE) @ <>= n <- 400 n_BACCO <- 40 @ \section{Introduction} \begin{wrapfigure}{r}{30mm} \includegraphics[width=1in]{\Sexpr{system.file("help/figures/elliptic.png",package="elliptic")}} \end{wrapfigure} % The elliptic functions crop up here and there in diverse areas of applied mathematics such as cosmology~\citep{kraniotis2002}, chemical engineering~\citep{koopman1991}, dynamical systems~\citep{kotus2003}, and quantum mechanics~\citep{chow2002}; here they are applied to fluid mechanics~\citep{johnson2004,johnson2005}. They also provide interesting and instructive non-elementary examples of many results in complex analysis such as Cauchy's integral theorem and the residue theorem. In this paper I introduce \pkg{elliptic}, a new \proglang{R} package for numerical calculation of Weierstrass and Jacobi elliptic functions, theta functions and modular functions; it is based on~\citet{hankin2006}. The emphasis is on efficient numerical calculation, and informative visualization techniques. The package is available on CRAN, \url{https://CRAN.R-project.org/package=elliptic} \citep{rcore2005}. \section{Elliptic functions}\label{section:introduction} This section gives a very brief introduction to elliptic functions. For more detail and rigorous derivations, the reader is referred to the classic literature: the standard reference would be~\cite{whittaker1952}. \cite{chandrasekharan1985} approaches the field from a more modern perspective, and \cite{abramowitz1965} provide the definitive reference work for the case of real invariants. A meromorphic function~$f$ is said to be elliptic if~$\exists\,\omega_1,\omega_2\in\mathbbm{C}$ with~$\omega_2/\omega_1\in\mathbbm{C}\backslash\mathbbm{R}$ such that \begin{equation} f(z)=f(z+2m\omega_1+2n\omega_2) \end{equation} whenever~$f(z)$ is defined and~$m,n\in\mathbbm{Z}$. Notation in this paper is consistent with that of~\citet{abramowitz1965}; $\omega_1$ and~$\omega_2$ are called the {\em half periods}. In 1862, Weierstrass introduced his~$\wp$ function which is defined as \begin{equation}\label{direct.sum} \wp(z)= \frac{1}{z^2}+ \sum_{m,n\in\mathbbm{Z}\atop m,n\neq 0} \left\{ \frac{1}{\left(z-2m\omega_1-2n\omega_2\right)^2} -\frac{1}{\left( 2m\omega_1+2n\omega_2\right)^2} \right\}. \end{equation} The~$\wp$ function is, in a well defined sense, the simplest nontrivial elliptic function~\citep{whittaker1952}. Given this, we have a Laurent expansion of the form \begin{equation} \wp(z)-z^{-2}=\frac{1}{20}g_2z^2+\frac{1}{28}g_3z^4+O(z^6) \end{equation} with \begin{equation} g_2=60{\sum}'\frac{1}{\left(2m\omega_1+2n\omega_2\right)^4}, \qquad g_3=140{\sum}'\frac{1}{\left(2m\omega_1+2n\omega_2\right)^6}, \end{equation} where a prime indicates summation over~$\mathbbm{Z}^2$ excluding~$(m,n)=(0,0)$. For reasons to be made clear in section~\ref{section.unimodularity}, $g_2$ and~$g_3$ are known as the {\em invariants}. Other equivalent forms for~$\wp$ include its differential equation \begin{equation}\label{P.differential.eqn.definition} \left(\frac{d\wp}{dz}\right)^2=4\wp^3-g_2\wp-g_3 \end{equation} and the relation \begin{equation}\label{P.integral.definition} z=\int_{t=w}^\infty\frac{dt}{\sqrt{4t^3-g_2t-g_3}} \end{equation} which is equivalent to~$w=\wp(z)$. Related functions include the zeta function~$\zeta(z)$, defined by \begin{equation}\label{zeta.definition} \frac{d\zeta(z)}{dz}=-\wp(z) \end{equation} and the sigma function~$\sigma(z)$, defined by \begin{equation}\label{sigma.definition} \frac{d\log\sigma(z)}{dz}=\zeta(z),\qquad{\lim_{\mbox{\tiny $z\longrightarrow 0$}}}\left[\frac{\sigma(z)}{z}\right]=1 \end{equation} (neither~$\sigma(z)$ nor~$\zeta(z)$ is elliptic). It may be shown\label{zeta.analytic} that~$\zeta(z)$ is analytic except for points on the lattice of periods, at which it has simple poles with residue~1. One classic result is due to Legendre: if~$\omega_1,\omega_2$ is a pair of basic periods\footnote{A pair of basic periods is one that generates the period lattice. Basic periods are not unique as many pairs of periods may generate the same lattice. However, there is one pair of basic periods, the {\em fundamental} periods that are, in a well-defined sense, optimal~\citep{chandrasekharan1985}.}, with~$\rm{Im}(\omega_2/\omega_1)>0$, then \begin{equation} \eta_1\omega_2-\eta_2\omega_1=\pi i\label{legendre} \end{equation} where~$\eta_1=\zeta(\omega_1)$ and~$\eta_2=\zeta(\omega_2)$. \subsection{Jacobian elliptic functions} Jacobi approached the description of elliptic functions from a different perspective~\citep{weisstein2005}. Given~$m=k^2$ and~$m_1$ with~$m+m_1=1$, Jacobi showed that if \[ u=\int_{t=0}^\phi\frac{dt}{\sqrt{(1-t^2)(1-mt^2)}} \] the functions~${\rm sn}(u,k)$, ${\rm cn}(u,k)$ and~${\rm dn}(u,k)$ defined by \begin{equation}\label{sn.definition} {\rm sn} u=\sin\phi,\qquad {\rm cn} u=\cos\phi,\qquad {\rm dn} u=\sqrt{1-k^2\sin^2\phi} \end{equation} are elliptic with periods \begin{equation} K=\int_{\theta=0}^{\pi/2}\frac{d\theta}{\sqrt{1-m\sin^2\theta}} \end{equation} and \begin{equation} iK'=i\int_{\theta=0}^{\pi/2}\frac{d\theta}{\sqrt{1-m_1\sin^2\theta}}. \end{equation} The Jacobian elliptic functions are encountered in a variety of contexts and bear a simple analytical relation with the Weierstrass~$\wp$ function. \section{Numerical evaluation and Jacobi's theta functions} Although equation~\ref{direct.sum} is absolutely convergent, it converges too slowly to be of use in practical work, and an alternative definition is needed. Jacobi presented his four theta functions in 1829 and, although they have interesting properties in their own right, here they are used to provide efficient numerical methods for calculation of the elliptic functions above. They are defined as follows: \begin{eqnarray}\label{theta.defn} \theta_1(z,q)&=&2q^{1/4}\sum_{n=0}^\infty(-1)^nq^{n(n+1)}\sin(2n+1)z\\ \theta_2(z,q)&=&2q^{1/4}\sum_{n=0}^\infty q^{n(n+1)}\cos(2n+1)z\\ \theta_3(z,q)&=&1+2\sum_{n=1}^\infty q^{n^2}\cos 2nz\\ \theta_4(z,q)&=&1+2\sum_{n=1}^\infty(-1)^n q^{n^2}\cos 2nz \end{eqnarray} It may be seen that, provided~$|q|<1$, the series converges for all~$z\in\mathbbm{C}$. Indeed, the convergence is very rapid: the number of correct significant figures goes as the square of the number of terms. It should be noted that there are different notations in use, both for the four function names, and for the independent variables. All the functions described in section~\ref{section:introduction} may be expressed in terms of the theta functions. This is the default method in \pkg{elliptic}, although alternative algorithms are implemented where possible to provide a numerical and notational check. For example, Weierstrass's~$\wp$ function is given by \begin{equation}\label{P.in.terms.of.theta} \wp(z)= \frac{\pi^2}{4\omega_1^2}\left( \frac{\theta_1'(0,q)\theta_2(v,q)}{\theta_2(0,q)\theta_1(v,q)} \right)^2 \end{equation} where~$q=e^{i\omega_2/\omega_1}$; the other functions have similar theta function definitions. <>= <>= require(elliptic) require(emulator) require(calibrator) @ \section[Package ''elliptic'' in use]{Package \pkg{elliptic} in use} This section shows \pkg{elliptic} being used in a variety of contexts. First, a number of numerical verifications of the code are presented; then, elliptic and related functions are visualized using the function \code{view()}; and finally, the package is used to calculate flows occurring in an oceanographic context. The primary function in package \pkg{elliptic} is~\code{P()}: this calculates the Weierstrass~$\wp$ function, and may take named arguments that specify either the invariants~\code{g} or half periods~\code{Omega}: <>= z <- 1.9+1.8i P(z,g=c(1,1i)) P(z,Omega=c(1,1i)) @ \subsection{Numerical verification} Work in the field of elliptic functions is very liable to mistakes\footnote{\cite{abramowitz1965} state that there is a ``bewildering'' variety of notations in use; the situation has become more confusing in the intervening 40 years.}, and package \pkg{elliptic} includes a number of numerical checks to guard against notational inexactitude. These checks generally use the convenient (trivial) function \code{maxdiff()} that shows the maximum absolute difference between its two arguments: <>= maxdiff <- function(x,y){max(abs(x-y))} @ For example, we may compare the output of \code{P()}, which uses equation~\ref{P.in.terms.of.theta}, against the straightforward Laurent expansion, used by \code{P.laurent()}: <>= g <- c(3,2+4i) z <- seq(from=1,to=0.4+1i,len=34) <>= maxdiff(P(z,g), P.laurent(z,g)) @ showing reasonable agreement; note that function \code{P()} uses the conceptually distinct theta function formula of equation~\ref{P.in.terms.of.theta}. Package \pkg{elliptic} includes a large number of such numerical verification tests in the \code{test} suite provided in the package, but perhaps more germane is the inclusion of named identities appearing in \cite{abramowitz1965}. For example, consider function~\code{e18.10.9()}, named for the equation number of the identity appearing on page 650. This function returns the difference between the (algebraically identical) left and right hand side of three grouped identities: \begin{eqnarray} 12\omega_1^2e_1 &=& \hphantom{-}\pi^2\left[\theta_3^4(0,q)+\theta_4^4(0,q)\right]\nonumber\\ 12\omega_1^2e_2 &=& \hphantom{-}\pi^2\left[\theta_2^4(0,q)-\theta_4^4(0,q)\right]\\ 12\omega_1^2e_3 &=& - \pi^2\left[\theta_3^4(0,q)+\theta_4^4(0,q)\right]\nonumber \end{eqnarray} where~$q=e^{-\pi K'/K}$. From the manpage: <>= abs( e18.10.9(parameters(g=g))) @ again showing reasonably accurate numerical results, but perhaps more importantly explicitly verifying that the notational scheme used is internally consistent. Although the examples above use the invariants~\code{g2} and \code{g3} to define the elliptic function and its periods, sometimes the fundamental periods are known and the invariants are desired. This is done by function \code{g.fun()}, which takes the fundamental periods as arguments and returns the two invariants~$g_2$ and~$g_3$. Observe that there are many pairs of basic periods that generate the same lattice---see figure~\ref{latplot}---but it usual to specify the unique {\em fundamental periods} as this pair usually has desirable numerical convergence properties. \begin{figure}[htbp] \begin{center} <>= jj <- parameters(g=c(1+1i,2-3i))$Omega latplot(jj,xlim=c(-4,4),ylim=c(-4,4),xlab="Re(z)", ylab="Im(z)") polygon(Re(c(jj[1],sum(jj),jj[2],0)), Im(c(jj[1],sum(jj),jj[2],0)),lwd=2,col="gray90",pch=16,cex=3) kk <- -c(3*jj[1] + 2*jj[2] , jj[1] + jj[2]) #det(matrix(c(3,2,1,1),2,2,T)==1 polygon(Re(c(kk[1],sum(kk),kk[2],0)), Im(c(kk[1],sum(kk),kk[2],0)),lwd=2,col="gray30",pch=16,cex=3) @ \caption{The\label{latplot} lattice generated by~$\wp(z;1+i,2-3i)$; fundamental period parallelogram shown in light gray and a basic period parallelogram shown in darker gray} \end{center} \end{figure} \subsubsection{Unimodularity}\label{section.unimodularity} Many functions of the package are {\em unimodular}. The invariants~$g_2$ and~$g_3$ are defined in terms of a pair of basic periods~$\omega_1$ and~$\omega_2$. However, any pair of basic periods should have the same invariants, because any pair of basic periods will define the same elliptic function (hence the name). Basic period pairs are related by a unimodular transformation: if~$\omega_1,\omega_2$ and~$\tilde{\omega}_1,\tilde{\omega}_2$ are two pairs of basic periods then there exist integers~$a,b,c,d$ with~$ad-bc=1$ and \[ \left( \begin{array}{cc} a&b\\ c&d \end{array} \right) \left( \!\! \begin{array}{c} \omega_1\\ \omega_2 \end{array} \!\! \right)= \left(\!\! \begin{array}{c} \tilde{\omega}_1\\ \tilde{\omega}_2 \end{array} \!\! \right) \] Formally, a unimodular function~$f(\cdot,\cdot)$ is one with arity~2---it is conventional to write~$f(\mathbf{v})=f(a,b)$---and for which \begin{equation} f(\mathbf{v})=f(\mathbf{M}\mathbf{v})\end{equation} where~$\mathbf{M}$ is unimodular: that is, an integer matrix with a determinant of unity. In this context, unimodular matrices (and the transformations they define) are interesting because any two pairs of basic periods are related by a unimodular transformation. The package includes functions that generate unimodular matrices. The underlying function is \code{congruence()}, which generates~$2\times 2$ integer matrices with a determinant of~1, given the first row. For example: <>= M <- congruence(c(4,9)) @ (observe that the determinant of~$\mathbf{M}$ is unity) and thus we may verify the unimodularity of, for example, \code{g.fun()} by evaluating the invariants for a pair of fundamental periods, and comparing this with the invariants calculated for a pair of basic periods that are related to the fundamental periods by a unimodular transformation (here~$\mathbf{M}$). In \proglang{R} idiom: <>= o <- c(1,1i) <>= maxdiff(g.fun(o), g.fun(M %*% o,maxiter=800)) @ showing that the invariants for period pair~$o=(1,i)^T$ are almost identical to those for period pair~$o'=\mathbf{M}o=(4+9i,3+7i)^T$. Observe that the latter evaluation requires many more iterations for accurate numerical evaluation: this behaviour is typically encountered when considering periods whose ratio is close to the real axis. In addition, function \code{unimodular()} generates unimodular matrices systematically, and function \code{unimodularity()} checks for a function's being unimodular. \subsubsection{Contour integration and the residue theorem} As noted in section~\ref{zeta.analytic}, the zeta function~$\zeta(z)$ possesses a simple pole of residue~1 at the origin. The residue theorem would imply that \[ \varoint\zeta(z)\,dz=2\pi i \] when the contour is taken round a path that encircles the origin but no other poles. This may be verified numerically using \pkg{elliptic}'s \code{myintegrate} suite of functions, which generalize the \pkg{stats} package's \code{integrate()} function to the complex plane. Here, function \code{integrate.contour()} is used to integrate round the unit circle. This function takes three arguments: first, the function to be integrated; second, a function that describes the contour to be integrated along; and third, a function that describes the derivative of the contour. We may now integrate over a closed loop, using arguments~\code{u} and~\code{udash} which specify a contour following the unit circle: <>= u <- function(x){exp(pi*2i*x)} udash <- function(x){pi*2i*exp(pi*2i*x)} Zeta <- function(z){zeta(z,g)} Sigma <- function(z){sigma(z,g)} WeierstrassP <- function(z){P(z,g)} @ <>= jj <- integrate.contour(Zeta,u,udash) <>= maxdiff(jj, 2*pi*1i) @ showing reasonable numerical accuracy. Compare Weierstrass's~$\wp$ function, which has a second order pole at the origin: <>= abs(integrate.contour(WeierstrassP,u,udash)) @ \subsubsection[The PARI system]{The \proglang{PARI} system} Perhaps the most convincing evidence for numerical accuracy and consistency of notation in the software presented here is provided by comparison of the package's results with that of \proglang{PARI}~\citep{batut2000}. The \proglang{PARI} system is an open-source project aimed at number theorists, with an emphasis on pure mathematics; it includes some elliptic function capability. Function \code{P.pari()} of package \pkg{elliptic} calls the \code{pari} system directly to evaluate elliptic functions from within an \proglang{R} session, enabling quick verification: \begin{Schunk} \begin{Sinput} > omega <- c(1,1i) \end{Sinput} \end{Schunk} \begin{Schunk} \begin{Sinput} > z <- seq(from=pi,to=pi*1i,len=10) \end{Sinput} \end{Schunk} \begin{Schunk} \begin{Sinput} > maxdiff(P.pari(z,Omega=omega), P(z,params=parameters(Omega=omega))) \end{Sinput} \begin{Soutput} [1] 2.760239e-14 \end{Soutput} \end{Schunk} again showing reasonable agreement, this time between two independent computational systems. \subsection{Visualization of complex functions} In the following, a Weierstrass elliptic function with invariants of~$1+i$ and~$2-3i$ will be considered. The half periods $\omega_1,\omega_2$ are first evaluated: <>= jj.omega <- half.periods(g=c(1+1i,2-3i)) @ and these may be visualized by using \code{latplot()}, as in figure~\ref{latplot}. Figure~\ref{P.persp.re} shows the real part of such a function, shown over part of the complex plane, and figure~\ref{P.view} shows the same function using the \code{view()} function. <>= x <- seq(from=-4, to=4, len=n) y <- x z <- outer(x,1i*x, "+") f <- P(z, c(1+1i,2-3i)) @ %% Thanks to Dario Strbenac for the following structure <>= png("wp_figure.png",width=800,height=800) @ <>= persp(x, y, limit(Re(f)), xlab="Re(z)",ylab="Im(z)",zlab="Re(P(z))", theta=30, phi=30, r=1e9, border=NA, shade=0.8, expand=0.6) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{wp_figure.png} \caption{Real part of~$\wp(z,1,1+2i)$. Note \label{P.persp.re} the second order poles at each lattice point} \end{center} \end{figure} <>= png("thallerfig.png",width=800,height=800) @ <>= par(pty="s") view(x,y,f,code=0,real.contour=FALSE, imag.contour=FALSE,drawlabel=FALSE,col="red",axes=FALSE,xlab="Re(z)",ylab="Im(z)") axis(1,pos = -4) axis(2,pos = -4) lines(x=c(-4,4),y=c(4,4)) lines(y=c(-4,4),x=c(4,4)) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{thallerfig.png} \caption{Visualization of~$\wp(z,1,1+2i)$\label{P.view} using the scheme of \cite{thaller1998}: white corresponds to a pole, black to a zero, and full saturation to~$|\wp(z)|=1$. The poles of~$\wp(z)$ occur on a regular lattice, and the zeros on two shifted lattices. Note how each of the poles is surrounded by two cycles of hue, indicating that they are of second order; and each of the zeros is surrounded by one cycle of hue, indicating that they are simple roots} \end{center} \end{figure} The~$\sigma$ function with the same invariants is visualized in figure~\ref{sigma.green}, showing that its zeros lie on the same lattice as figure~\ref{latplot}. <>= x <- seq(from= -12, to=12, len=n) y <- x z <- outer(x, 1i*y, "+") f <- sigma(z, c(1+1i,2-3i)) @ <>= png("sigma_green.png",width=800,height=800) @ <>= par(pty="s") view(x,y,f,scheme=4,real.contour=FALSE,drawlabels=FALSE,axes=FALSE, xlab="Re(z)",ylab="Im(z)") axis(1,pos= -12) axis(2,pos= -12) lines(x=c(-12,12),y=c(12,12)) lines(y=c(-12,12),x=c(12,12)) lines(x=c(-12,12),y=-c(12,12)) lines(y=c(-12,12),x=-c(12,12)) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{sigma_green.png} \caption{Visualization of~$f=\sigma(z,1,1+2i)$ using \code{view()}; colour indicates~${\rm Arg}(f)$. Thus points at which~$f(z)$ is on the negative real axis, that is $\{z\colon f(z)\in\mathbbm{R}^-\}$, are visible as discontinuities of (colourimetric) value. These discontinuities are semi-infinite; note that the zeros of~$f$ occur, \label{sigma.green} at the (finite) end of each line, on a regular lattice. As~$|z|$ increases, each discontinuity threads its way through an increasing number of other discontinuities and zeros, and the spacing between the discontinuities becomes less and less} \end{center} \end{figure} Figure~\ref{zeta.thaller} shows the zeta function, and figure~\ref{sn.thaller} shows Jacobi's ``sn'' function. <>= zeta.z <- zeta(z, c(1+1i,2-3i)) @ <>= png("zetafig.png",width=800,height=800) @ <>= par(pty="s") view(x,y,zeta.z,scheme=0,real.contour=FALSE,drawlabels=FALSE,xlab="Re(z)",ylab="Im(z)") @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{zetafig.png} \caption{Visualization of~$\zeta(z,1,1+2i)$ using \code{view()} and the colouring scheme of Thaller. Poles appear as white regions, and zeros as black regions. \label{zeta.thaller} Each pole is of single order, each zero is a simple root (one cycle of hue). The poles occur on a lattice; there is no simple pattern to the zeros. Note the overall tendency towards the edges of the square to whiteness: $|f|$ increases with~$|z|$ as per equation~\ref{zeta.definition}} \end{center} \end{figure} <>= jj <- seq(from=-40,to=40,len=n) m <- outer(jj,1i*jj,"+") f <- sn(u=5-2i,m=m,maxiter=1000) @ <>= png("sn_figure.png",width=800,height=800) @ <>= par(pty="s") view(jj,jj,f,scheme=0,r0=1/5,real=T,imag=F,levels=c(0,-0.4,-1),drawlabels=F,xlab="Re(m)",ylab="Im(m)") @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{sn_figure.png} \caption{Jacobi's ``sn'' function\label{sn.thaller} using the elliptic package. Here, $f={\rm sn}(5-2i,m)$ is visualized, with background utilizing Thaller's scheme, and contours of equal~${\rm Re}(f)$ at three selected values shown as black lines. Note the aperiodic arrangement of poles (white areas) and zeros (black areas)} \end{center} \end{figure} \subsection{Potential flow} One application of complex analysis is to fluid dynamics. In particular, potential flow (steady, two-dimensional, inviscid, incompressible) may be studied with the aid of analytic complex functions. Here I show how the elliptic functions discussed in this paper may be used to simulate potential flow in a rectangular domain. Although the tenets of potential flow appear to be absurdly idealized\footnote{\cite{feynman1966} famously described potential flow as the study of ``dry water''}, it is nevertheless a useful technique in many branches of practical fluid mechanics: it is often used to calculate a ``theoretical'' flowfield with which measured velocities may be compared. A short sketch of potential theory is given here but the reader is referred to~\cite{milne1949} for a full exposition. Briefly, we define a {\em complex potential} $w(z)$ to be a complex function \[ w(z)=\phi+i\psi\] and observe that both~$\phi$ and~$\psi$ obey Laplace's equation if~$w$ is differentiable. Given this, we may take the velocity vector~$\mathbf{v}=(v_x,v_y)$ of the fluid to be \[ v_x=\frac{\partial\phi}{\partial x},\qquad v_y=\frac{\partial\phi}{\partial y},\qquad \] and observe that streamlines are given by contours of equal~$\psi$; contours of equal~$\phi$ are called equipotential lines. The two systems of lines cross at right angles (this follows from the Cauchy-Riemann conditions). Consider, for example, the function~$w(z)=z^2$, whose associated flow field is shown in figure~\ref{z.squared.pot.flow}. This corresponds to a stagnation point, at which the speed vanishes; the streamlines (solid) intersect the equipotential lines (dashed) at right angles. <>= f <- function(z){1i*z^2} x <- seq(from=-6,to=6,len=n) y <- seq(from=-6,to=6,len=n) z <- outer(x,1i*y,"+") @ <>= png("stag_point.png",width=800,height=800) @ <>= par(pty="s") view(x,y,f(z),nlevels=14,imag.contour=TRUE,real.cont=TRUE,scheme=-1, drawlabels=FALSE, axes=FALSE,xlab="Re(z)",ylab="Im(z)") axis(1,pos=-6) axis(2,pos=-6) lines(x=c(-6,6),y=c(6,6)) lines(y=c(-6,6),x=c(6,6)) d1 <- c(-0.1,0,0.1) d2 <- c( 0.1,0,0.1) lines(x=d1,y=1+d2) lines(x=d1,y=-1-d2) lines(x=1-d2,y=d1) lines(x=-1+d2,y=d1) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{stag_point.png} \caption{Potential flow on the complex plane: field\label{z.squared.pot.flow} corresponding to the function~$(z)=z^2$. Solid lines represent streamlines and dotted lines represent equipotentials; these intersect at right angles. Note stagnation point at the origin} \end{center} \end{figure} Now consider a slightly more complicated case. A point source of strength~$m$ at~$z_0$ may be represented by the function \[m\log(z-z_0)\] (a sink corresponds to~$m<0$). Any finite number of sources or sinks may be combined, as in~$\sum_i m_i\log(z-z_i)$ where the~$i^{\rm th}$ source is at~$z_i$ and has strength~$m_i$, because the system is linear\footnote{It is often more convenient to work with the algebraically equivalent form~$\log\left(\prod (z-z_i)^{m_i}\right)$, as there are fewer branch cuts to deal with.}. Figure~\ref{upper.halfplane.flow} shows two sources and two sinks, all of equal strength. Because the flowfield is symmetric with respect to the real axis, there is no flux across it; we may therefore ignore the flow in the lower half plane (ie~$\{z\colon \rm{Im}(z)<0\}$) and consider the flow to be bounded below by the real axis. This is known as {\em the method of images}~\citep{milne1949}. <>= f <- function(z){1i*log((z-1.7+3i)*(z-1.7-3i)/(z+1-0.6i)/(z+1+0.6i))} x <- seq(from=-6,to=6,len=n) y <- seq(from=-6,to=6,len=n) z <- outer(x,1i*y,"+") @ <>= png("two_sources_two_sinks.png",width=800,height=800) @ <>= par(pty="s") view(x,y,f(z),nlevels=24,imag.contour=TRUE,real.cont=TRUE,scheme=17,power=0.1,drawlabels=FALSE,axes=FALSE,xlab="Re(z)",ylab="Im(z)") axis(1,pos=-6) axis(2,pos=-6) lines(x=c(-6,6),y=c(6,6)) lines(y=c(-6,6),x=c(6,6)) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{two_sources_two_sinks.png} \caption{Potential flow in on the complex plane: two sources and two sinks, all of equal strength. Solid \label{upper.halfplane.flow} lines denote streamlines, dotted lines equipotentials; colour scheme uses the \code{hcl()} system: hue varies with the argument, and chrominance varies with the modulus, of the potential. There is no flux between the lower and the upper half plane, but there is flux out of, and in to, the diagram. Note the stagnation point at approximately $5+0i$} \end{center} \end{figure} Now, one may transform a potential flowfield into another form using a conformal mapping from the~$z$- plane to the~$\zeta$- plane, traditionally denoted \[ \zeta=f(z). \] This technique finds application when flow is desired (in the~$\zeta$- plane) that obeys some specific boundary condition that is simple to specify in the~$z$- plane. %In the present case, we make use of the Schwartz-Christoffel theorem, %which states that if~$a,b,c,\ldots$ are~$n$ points on the real axis of %the~$\zeta$- plane with~$a>= m <- 0.5 K <- K.fun(m) iK <- K.fun(1-m) #b <- sn(1.8 + 0.8i, m=m) # 1.8 to the right and 0.8 up. #b <- 0 # middle bottom b <- sn(0 + 1i*iK/2,m=m) #dead centre of the rectangle. #b <- -1 # lower left #b <- 1/sqrt(m) # top right #b <- -1/sqrt(m) # top left #b <- 1e9*1i # top centre a <- 1 #bottom right hand side corner f <- function(z){1i*log((z-a)*(z-Conj(a))/(z-b)/(z-Conj(b)))} x <- seq(from=-K,to=K,len=n) y <- seq(from=0,to=iK,len=n) z <- outer(x,1i*y,"+") fsn <- f(sn(z,m=m)) @ <>= png("rectangle_pot_flow.png",width=800,height=800) @ <>= view(x,y,fsn,nlevels=44,imag.contour=FALSE,real.cont=TRUE,scheme=17,power=0.1,drawlabels=FALSE,axes=FALSE,xlab="",ylab="") rect(-K,0,K,iK,lwd=3) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{rectangle_pot_flow.png} \caption{Potential flow in a rectangle of aspect ratio~2: source and sink of equal \label{box.flow} strength. Colour scheme as in figure~\ref{upper.halfplane.flow}. Note the dividing streamline which terminates in a stagnation point on the rectangle boundary} \end{center} \end{figure} \subsection{Bayesian analysis of potential flow} When considering potential flows, it is often necessary to infer the locations of singularities in the flow from sparse and imperfect data~\citep{johnson2004}. Here, I apply the methods of~\cite{kennedy2001} and~\cite{kennedy2001a} (hereafter KOH and KOHa respectively) using the~\pkg{BACCO} package~\citep{hankin2005} to assess some characteristics of potential flow in a rectangle. Kennedy and O'Hagan considered the following inference problem for a set of parameters~$\theta\in{\mathcal R}^q$ that are inputs to a computer program. Given an independent variable~$x\in{\mathcal R}^n$, and a set of scalar (``field'') observations~$z=z(x)$, they assume \begin{equation} z(x)=\rho\cdot\eta\left(x,\theta\right)+ \delta(x)+\epsilon \end{equation} where~$\rho$ is a constant of proportionality (notionally unity); $\eta(\cdot,\cdot)$ a Gaussian process with unknown coefficients; $\theta$ the true, but unknown parameter values; $\delta(\cdot)$ a model inadequacy term (also a Gaussian process with unknown coefficients); and~$\epsilon\sim N(0,\lambda^2)$ uncorrelated normal observational errors. Inferences about~$\eta(\cdot,\cdot)$ are made from point observations of the process: Kennedy and O'Hagan call these the ``code observations'' on the grounds that their chief motivation was the understanding of complex computer codes. Here, potential flow in a rectangle is considered. The source is at one corner of the rectangle, which is considered to have lower left point~$(-1,0)$ and upper right point~$(1,1)$. The position of the sink is unknown. I now show how the position of the sink may be inferred from a sparse and noisy set of observed fluid speeds. Similar inference problems are encountered in practice when considering oceanographic flows such as those occurring near deep sea vents, although the geometry is generally more complex than considered here. The independent variable~$\mathbf{x}$ is the two-dimensional position within the rectangle, and the field observation~$z(\mathbf{x})$ is the fluid speed at that point, plus obervational error~$\epsilon$. The parameter set~$\theta$ thus has two degrees of freedom corresponding to the $x-$ and $y-$ coordinates of the sink. Field observations will be obtained numerically, using the \pkg{elliptic} package. The simulated flowfield has a sink at a {\em known} position---in this case the geometric centre of the rectangle---and Bayesian methods will be used to infer its position using only fluid speed data. In the terminology of KOHa, dataset~\code{y} corresponds to modelled fluid speed, obtained from the appropriate simulations carried out with the sink placed at different locations within the rectangle. Dataset~\code{z} corresponds to field observations, which in this case is fluid speed at several points in the rectangle, obtained from simulations with the sink at the centre of the rectangle. <>= # Choose the size of the computational mesh: n <- n_BACCO # Choose the number of code observations for D1: n.code.obs <- 30 # And the number of field observations for D2: n.field.obs <- 31 # First, up the D1 design matrix. Recall that D1 is the set of code # observations, which here means the observations of fluid speed when # the sink is at a known, specified, position. suppressWarnings(RNGversion("3.5.0")) set.seed(0) latin.hypercube <- function (n, d){ sapply(seq_len(d), function(...) { (sample(1:n) - 0.5)/n }) } D1.elliptic <- latin.hypercube(n.code.obs , 4) colnames(D1.elliptic) <- c("x","y","x.sink","y.sink") D1.elliptic[,c(1,3)] <- (D1.elliptic[,c(1,3)] -0.5)*2 #D1.elliptic[,c(2,4)] <- D1.elliptic[,c(2,4)] *iK # now a D2 design matrix. This is field observations: observations of # fluid speed when the sink is at the true, unknown, specified, # position. D2.elliptic <- latin.hypercube(n.field.obs , 2) colnames(D2.elliptic) <- c("x","y") D2.elliptic[,1] <- (D2.elliptic[,1] -0.5)*2 # Now a function that, given x and y and x.sink and y.sink, returns # the log of the fluid speed at x,y: fluid.speed <- function(x.pos, y.pos, x.sink, y.sink){ a <- 1 #bottom right hand side corner b <- sn(x.pos/K + 1i*iK*y.pos,m=m) #position (x.pos , y.pos) f <- function(z){1i*log((z-a)*(z-Conj(a))/(z-b)/(z-Conj(b)))} x <- seq(from=-K,to=K,len=n) y <- seq(from=0,to=iK,len=n) z <- outer(x,1i*y,"+") potential <- f(sn(z,m=m)) get.log.ke <- function(x,y,potential){ jj <- Re(potential) jj.x <- cbind(jj[,-1]-jj[,-ncol(jj)],0) jj.y <- rbind(jj[-1,]-jj[-nrow(jj),],0) kinetic.energy <- jj.x^2 + jj.y^2 n.x <- round(n * (x-(-1))/2) n.y <- round(n * y) return(log(kinetic.energy[n.x , n.y]+0.01)) } return(get.log.ke(x.pos,y.pos,potential)) } # now fill in code outputs y: y.elliptic <- rep(NA,nrow(D1.elliptic)) for(i in 1:length(y.elliptic)){ jj <- D1.elliptic[i,,drop=TRUE] y.elliptic[i] <- fluid.speed(jj[1],jj[2],jj[3],jj[4]) } # Now do the field observations; here the source is known to be at the # centre of the rectangle: z.elliptic <- rep(NA,nrow(D2.elliptic)) for(i in 1:length(z.elliptic)){ jj <- D2.elliptic[i,,drop=TRUE] z.elliptic[i] <- fluid.speed(jj[1],jj[2],0,0.5) } # Create design matrix plus observations for didactic purposes: D1 <- round(cbind(D1.elliptic,observation=y.elliptic),2) D2 <- round(cbind(D2.elliptic,observation=z.elliptic),2) # create a data vector: d.elliptic <- c(y.elliptic , z.elliptic) #now a h1.toy() equivalent: h1.elliptic <- function(x){ out <- c(1,x[1]) } #now a H1.toy() equivalent: H1.elliptic <- function (D1) { if (is.vector(D1)) { D1 <- t(D1) } out <- t(apply(D1, 1, h1.elliptic)) colnames(out)[1] <- "h1.const" return(out) } h2.elliptic <- function(x){ c(1,x[1]) } H2.elliptic <- function(D2){ if (is.vector(D2)) { D2 <- t(D2) } out <- t(apply(D2, 1, h2.elliptic)) colnames(out)[1] <- "h2.const" return(out) } #Now an extractor function: extractor.elliptic <- function (D1) { return(list(x.star = D1[, 1:2, drop = FALSE], t.vec = D1[, 3:4, drop = FALSE])) } # Now a whole bunch of stuff to define a phi.fun.elliptic() # and, after that, to call it: phi.fun.elliptic <- function (rho, lambda, psi1, psi1.apriori, psi2, psi2.apriori, theta.apriori, power) { "pdm.maker.psi1" <- function(psi1) { jj.omega_x <- diag(psi1[1:2]) rownames(jj.omega_x) <- names(psi1[1:2]) colnames(jj.omega_x) <- names(psi1[1:2]) jj.omega_t <- diag(psi1[3:4]) rownames(jj.omega_t) <- names(psi1[3:4]) colnames(jj.omega_t) <- names(psi1[3:4]) sigma1squared <- psi1[5] return(list(omega_x = jj.omega_x, omega_t = jj.omega_t, sigma1squared = sigma1squared)) } "pdm.maker.psi2" <- function(psi1) { jj.omegastar_x <- diag(psi2[1:2]) sigma2squared <- psi2[3] return(list(omegastar_x = jj.omegastar_x, sigma2squared = sigma2squared)) } jj.mean <- theta.apriori$mean jj.V_theta <- theta.apriori$sigma jj.discard.psi1 <- pdm.maker.psi1(psi1) jj.omega_t <- jj.discard.psi1$omega_t jj.omega_x <- jj.discard.psi1$omega_x jj.sigma1squared <- jj.discard.psi1$sigma1squared jj.discard.psi2 <- pdm.maker.psi2(psi2) jj.omegastar_x <- jj.discard.psi2$omegastar_x jj.sigma2squared <- jj.discard.psi2$sigma2squared jj.omega_t.upper <- chol(jj.omega_t) jj.omega_t.lower <- t(jj.omega_t.upper) jj.omega_x.upper <- chol(jj.omega_x) jj.omega_x.lower <- t(jj.omega_x.upper) jj.a <- solve(solve(jj.V_theta) + 2 * jj.omega_t, solve(jj.V_theta, jj.mean)) jj.b <- t(2 * solve(solve(jj.V_theta) + 2 * jj.omega_t) %*% jj.omega_t) jj.c <- jj.sigma1squared/sqrt(det(diag(nrow = nrow(jj.V_theta)) + 2 * jj.V_theta %*% jj.omega_t)) jj.A <- solve(jj.V_theta + solve(jj.omega_t)/4) jj.A.upper <- chol(jj.A) jj.A.lower <- t(jj.A.upper) list(rho = rho, lambda = lambda, psi1 = psi1, psi1.apriori = psi1.apriori, psi2 = psi2, psi2.apriori = psi2.apriori, theta.apriori = theta.apriori, power = power, omega_x = jj.omega_x, omega_t = jj.omega_t, omegastar_x = jj.omegastar_x, sigma1squared = jj.sigma1squared, sigma2squared = jj.sigma2squared, omega_x.upper = jj.omega_x.upper, omega_x.lower = jj.omega_x.lower, omega_t.upper = jj.omega_t.upper, omega_t.lower = jj.omega_t.lower, a = jj.a, b = jj.b, c = jj.c, A = jj.A, A.upper = jj.A.upper, A.lower = jj.A.lower) } # OK, that's the function defined. Now to create some jj.* variables # to call it: jj.psi1 <- c(rep(1,4),0.3) names(jj.psi1)[1:4] <- colnames(D1.elliptic) names(jj.psi1)[5] <- "sigma1squared" jj.mean.psi1 <- rep(1,5) names(jj.mean.psi1) <- names(jj.psi1) jj.sigma.psi1 <- diag(0.1,nrow=5) rownames(jj.sigma.psi1) <- names(jj.psi1) colnames(jj.sigma.psi1) <- names(jj.psi1) jj.psi2 <- c(1,1,0.3) names(jj.psi2)[1:2] <- colnames(D2.elliptic) names(jj.psi2)[3] <- "sigma2squared" jj.mean.psi2 <- rep(1,4) names(jj.mean.psi2) <- c("x.sink", "y.sink","rho","lambda") jj.sigma.psi2 <- diag(0.1,4) rownames(jj.sigma.psi2) <- names(jj.mean.psi2) colnames(jj.sigma.psi2) <- names(jj.mean.psi2) jj.mean.th <- c(1,0.5) names(jj.mean.th) <- colnames(D1.elliptic)[3:4] jj.sigma.th <- diag(rep(1,2)) rownames(jj.sigma.th) <- colnames(D1.elliptic)[3:4] colnames(jj.sigma.th) <- colnames(D1.elliptic)[3:4] # Now call phi.fun.elliptic(): phi.elliptic <- phi.fun.elliptic( rho=1, lambda=0.1, psi1=jj.psi1, psi2=jj.psi2, psi1.apriori=list(mean=jj.mean.psi1, sigma=jj.sigma.psi1), psi2.apriori=list(mean=jj.mean.psi2, sigma=jj.sigma.psi2), theta.apriori=list(mean=jj.mean.th, sigma=jj.sigma.th), power=2 ) # Now an E.theta.elliptic(): E.theta.elliptic <- function (D2 = NULL, H1 = NULL, x1 = NULL, x2 = NULL, phi, give.mean = TRUE) { if (give.mean) { m_theta <- phi$theta.apriori$mean return(H1(D1.fun(D2, t.vec = m_theta))) } else { out <- matrix(0, 2,2) rownames(out) <- c("h1.const","x") colnames(out) <- c("h1.const","x") return(out) } } #Now an Edash.theta.elliptic(). Because the basis vector is not a #function of theta, this is a bit academic as we can use a function #that is identical to Edash.theta.toy(): Edash.theta.elliptic <- function (x, t.vec, k, H1, fast.but.opaque = FALSE, a = NULL, b = NULL, phi = NULL) { if (fast.but.opaque) { edash.mean <- a + crossprod(b, t.vec[k, ]) } else { V_theta <- phi$theta.apriori$sigma m_theta <- phi$theta.apriori$mean omega_t <- phi$omega_t edash.mean <- solve(solve(V_theta) + 2 * omega_t, solve(V_theta, m_theta) + 2 * crossprod(omega_t, t.vec[k, ])) } jj <- as.vector(edash.mean) names(jj) <- rownames(edash.mean) edash.mean <- jj return(H1(D1.fun(x, edash.mean))) } # Define a wrapper for equation 8: # First, calculate the constant to subtract to ensure that # the support has a maximum of about zero: maximum.likelihood.support <- p.eqn8.supp(theta=c(0,1/2), D1=D1.elliptic, D2=D2.elliptic, H1=H1.elliptic, H2=H2.elliptic, d=d.elliptic, include.prior=FALSE, lognormally.distributed=FALSE, return.log=TRUE, phi=phi.elliptic) support <- function(x){ p.eqn8.supp(theta=x, D1=D1.elliptic, D2=D2.elliptic, H1=H1.elliptic, H2=H2.elliptic, d=d.elliptic, include.prior=FALSE, lognormally.distributed=FALSE, return.log=TRUE, phi=phi.elliptic) - maximum.likelihood.support } #define a local function called optim() for aesthetic reasons (ie it # improves the appearance of the call to optim(): optim <- function(par,fn){ stats::optim(par=par,fn=fn,control=list(fnscale = -1))$par } @ The code evaluation design matrix~\code{D1} is chosen according to a random Latin hypercube design, and the observation is calculated using the \pkg{elliptic} package: <>= head(D1) @ So the first line shows a simulation with the sink at~(\Sexpr{D1[1,3]},\Sexpr{D1[1,4]}); the log of the fluid speed at~(\Sexpr{D1[1,1]}, \Sexpr{D1[1,2]}) is~\Sexpr{D1[1,5]}. There are a total of~\Sexpr{n.code.obs} such observations. Figure~\ref{code.obs} shows these points superimposed on the ``true'' flow field. The field observations are similarly determined: <>= head(D2) @ showing that the first field observation, at~(\Sexpr{D2[1,1]}, \Sexpr{D2[1,2]}), is~\Sexpr{D2[1,3]}. There are a total of~\Sexpr{n.field.obs} such observations. Figure~\ref{field.obs} shows the first code observation in the context of the ``true'' flow field. <>= b <- sn(D1[1,3] + 1i*D1[1,4],m=m) #point corresponding to first line of D1 fsnz2 <- f(sn(z,m=m)) @ <>= png("code_obs.png",width=800,height=800) @ <>= view(x,y,fsnz2,nlevels=44,imag.contour=FALSE,real.cont=TRUE,scheme=-1,drawlabels=FALSE,axes=FALSE,xlab="",ylab="") points(x=K*D1[1,1],y=D1[1,2]*iK,pch=4) rect(-K,0,K,iK,lwd=3) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{code_obs.png} \caption{Streamlines\label{code.obs} of first code observation point; field observation point shown as a cross. The sink is at~(\Sexpr{D1[1,3]},\Sexpr{D1[1,4]})} \end{center} \end{figure} <>= b <- sn(0 + 1i*iK/2,m=m) fsnzz <- f(sn(z,m=m)) @ <>= png("true_flow.png",width=800,height=800) @ <>= view(x,y,fsnzz,nlevels=44,imag.contour=FALSE,real.cont=TRUE,scheme=-1,drawlabels=FALSE,axes=FALSE,xlab="",ylab="") points(x=K*D2[,1],y=D2[,2]*iK,pch=4) rect(-K,0,K,iK,lwd=3) @ <>= null <- dev.off() @ \begin{figure}[htbp] \begin{center} \includegraphics{true_flow.png} \caption{Streamlines\label{field.obs} of ``true'' flow; field observation points shown as crosses} \end{center} \end{figure} Kennedy and O'Hagan give, {\em inter alia,} an expression for the likelihood of any value of $\theta$ being the true parameter set (in this case, the true position of the sink) in terms of the code evaluations and field observations. Here, function \code{support()} calculates the log-likelihood for a pair of coordinates of the sink. This may be evaluated at the centre of the rectangle, and again at the top left corner: <>= support(c(0,1/2)) #centre of the rectangle support(c(-1,1)) #top left corner @ showing, as expected, that the support is very much larger at the centre of the rectangle than the edge (here the arbitrary additive constant is such that the support at \code{c(0,1/2)} is exactly zero). It is now possible to identify the position of the sink that corresponds to maximum support using numerical optimization techniques: <>= mle <- optim(c(0,1/2),support) @ \begin{Schunk} \begin{Sinput} (mle <- optim(c(0,1/2),support)) \end{Sinput} \end{Schunk} <>= mle @ Thus the maximum likelihood estimate for the sink is a distance of about~0.2 from the true position. The support at this point is about~3.9 units of likelihood: <>= support(mle) @ \subsubsection{Discussion of Bayesian statistical analysis} The above example shows the ideas of KOH being applied straightforwardly, but with the novel twist of $\theta$ being interpreted as physical characteristics of a fluid flow. In this case~$\theta$ is the coordinates of the sink. The MLE is better supported than the true position by about~3.9 units of likelihood: thus, in the language of~\cite{edwards1992}, the hypothesis of $\theta_\mathrm{true}=(0,0.5)$ would not be rejected if one accepted Edwards's 2 units of likelihood per degree of freedom. The discrepancy between~$\hat{\theta}$ and~$\theta_\mathrm{true}$ (a distance of about 0.2) may be due to due to the coarseness of the form adopted for the basis functions, and better results might be obtained by using a more sophisticated system of model inadequacy than the simple linear form presented here. The methods of KOH allow one to make statistically robust statements about the physical characteristics of an interesting flow that are difficult to make in any other way. \section{Conclusions} Elliptic functions are an interesting and instructive branch of complex analysis, and are frequently encountered in applied mathematics: here they were used to calculate a potential flow field in a rectangle. This paper introduced the \proglang{R} package \pkg{elliptic}, which was then used in conjunction with Bayesian statistical methods (the \pkg{BACCO} bundle) to make statistically sound inferences about a flow with uncertain parameters: in this case the position of the sink was estimated from a sparse and noisy dataset. \subsection*{Acknowledgements} I would like to acknowledge the many stimulating and helpful comments made by the \proglang{R}-help list over the years. \bibliography{elliptic} \end{document} elliptic/inst/doc/elliptic.R0000644000176200001440000005573115104404104015535 0ustar liggesusers### R code from vignette source 'elliptic.Rnw' ################################################### ### code chunk number 1: requirepackage ################################################### require(elliptic,quietly=TRUE) ################################################### ### code chunk number 2: setOverallImageQuality ################################################### n <- 400 n_BACCO <- 40 ################################################### ### code chunk number 3: require_packages ################################################### ################################################### ### code chunk number 4: elliptic.Rnw:234-237 ################################################### require(elliptic) require(emulator) require(calibrator) ################################################### ### code chunk number 5: simple_usage_of_P ################################################### z <- 1.9+1.8i P(z,g=c(1,1i)) P(z,Omega=c(1,1i)) ################################################### ### code chunk number 6: define_maxdiff ################################################### maxdiff <- function(x,y){max(abs(x-y))} ################################################### ### code chunk number 7: laurent ################################################### g <- c(3,2+4i) z <- seq(from=1,to=0.4+1i,len=34) ################################################### ### code chunk number 8: maxdiff_laurent ################################################### maxdiff(P(z,g), P.laurent(z,g)) ################################################### ### code chunk number 9: abs_e18.10.9 ################################################### abs( e18.10.9(parameters(g=g))) ################################################### ### code chunk number 10: lattice_figure ################################################### jj <- parameters(g=c(1+1i,2-3i))$Omega latplot(jj,xlim=c(-4,4),ylim=c(-4,4),xlab="Re(z)", ylab="Im(z)") polygon(Re(c(jj[1],sum(jj),jj[2],0)), Im(c(jj[1],sum(jj),jj[2],0)),lwd=2,col="gray90",pch=16,cex=3) kk <- -c(3*jj[1] + 2*jj[2] , jj[1] + jj[2]) #det(matrix(c(3,2,1,1),2,2,T)==1 polygon(Re(c(kk[1],sum(kk),kk[2],0)), Im(c(kk[1],sum(kk),kk[2],0)),lwd=2,col="gray30",pch=16,cex=3) ################################################### ### code chunk number 11: congruence ################################################### M <- congruence(c(4,9)) ################################################### ### code chunk number 12: define_o ################################################### o <- c(1,1i) ################################################### ### code chunk number 13: maxdiff_o ################################################### maxdiff(g.fun(o), g.fun(M %*% o,maxiter=800)) ################################################### ### code chunk number 14: u_udash ################################################### u <- function(x){exp(pi*2i*x)} udash <- function(x){pi*2i*exp(pi*2i*x)} Zeta <- function(z){zeta(z,g)} Sigma <- function(z){sigma(z,g)} WeierstrassP <- function(z){P(z,g)} ################################################### ### code chunk number 15: integrate ################################################### jj <- integrate.contour(Zeta,u,udash) ################################################### ### code chunk number 16: maxdiff_integrate ################################################### maxdiff(jj, 2*pi*1i) ################################################### ### code chunk number 17: abs_integrate ################################################### abs(integrate.contour(WeierstrassP,u,udash)) ################################################### ### code chunk number 18: jj_omega ################################################### jj.omega <- half.periods(g=c(1+1i,2-3i)) ################################################### ### code chunk number 19: calculate_wp_figure ################################################### x <- seq(from=-4, to=4, len=n) y <- x z <- outer(x,1i*x, "+") f <- P(z, c(1+1i,2-3i)) ################################################### ### code chunk number 20: wp_figure_file ################################################### png("wp_figure.png",width=800,height=800) ################################################### ### code chunk number 21: wp_figure_plot ################################################### persp(x, y, limit(Re(f)), xlab="Re(z)",ylab="Im(z)",zlab="Re(P(z))", theta=30, phi=30, r=1e9, border=NA, shade=0.8, expand=0.6) ################################################### ### code chunk number 22: wp_figure_close ################################################### null <- dev.off() ################################################### ### code chunk number 23: thallerfig_file ################################################### png("thallerfig.png",width=800,height=800) ################################################### ### code chunk number 24: thallerfig_plot ################################################### par(pty="s") view(x,y,f,code=0,real.contour=FALSE, imag.contour=FALSE,drawlabel=FALSE,col="red",axes=FALSE,xlab="Re(z)",ylab="Im(z)") axis(1,pos = -4) axis(2,pos = -4) lines(x=c(-4,4),y=c(4,4)) lines(y=c(-4,4),x=c(4,4)) ################################################### ### code chunk number 25: thallerfig_close ################################################### null <- dev.off() ################################################### ### code chunk number 26: sigma_green_calc ################################################### x <- seq(from= -12, to=12, len=n) y <- x z <- outer(x, 1i*y, "+") f <- sigma(z, c(1+1i,2-3i)) ################################################### ### code chunk number 27: sigma_green_file ################################################### png("sigma_green.png",width=800,height=800) ################################################### ### code chunk number 28: sigma_green_plot ################################################### par(pty="s") view(x,y,f,scheme=4,real.contour=FALSE,drawlabels=FALSE,axes=FALSE, xlab="Re(z)",ylab="Im(z)") axis(1,pos= -12) axis(2,pos= -12) lines(x=c(-12,12),y=c(12,12)) lines(y=c(-12,12),x=c(12,12)) lines(x=c(-12,12),y=-c(12,12)) lines(y=c(-12,12),x=-c(12,12)) ################################################### ### code chunk number 29: sigma_green_close ################################################### null <- dev.off() ################################################### ### code chunk number 30: calculate_zeta ################################################### zeta.z <- zeta(z, c(1+1i,2-3i)) ################################################### ### code chunk number 31: zetafig_file ################################################### png("zetafig.png",width=800,height=800) ################################################### ### code chunk number 32: zetafig_plot ################################################### par(pty="s") view(x,y,zeta.z,scheme=0,real.contour=FALSE,drawlabels=FALSE,xlab="Re(z)",ylab="Im(z)") ################################################### ### code chunk number 33: zetafig_close ################################################### null <- dev.off() ################################################### ### code chunk number 34: calculate_sn ################################################### jj <- seq(from=-40,to=40,len=n) m <- outer(jj,1i*jj,"+") f <- sn(u=5-2i,m=m,maxiter=1000) ################################################### ### code chunk number 35: sn_figure_file ################################################### png("sn_figure.png",width=800,height=800) ################################################### ### code chunk number 36: sn_figure_plot ################################################### par(pty="s") view(jj,jj,f,scheme=0,r0=1/5,real=T,imag=F,levels=c(0,-0.4,-1),drawlabels=F,xlab="Re(m)",ylab="Im(m)") ################################################### ### code chunk number 37: sn_figure_close ################################################### null <- dev.off() ################################################### ### code chunk number 38: stag_calc ################################################### f <- function(z){1i*z^2} x <- seq(from=-6,to=6,len=n) y <- seq(from=-6,to=6,len=n) z <- outer(x,1i*y,"+") ################################################### ### code chunk number 39: stag_point_file ################################################### png("stag_point.png",width=800,height=800) ################################################### ### code chunk number 40: stag_point_plot ################################################### par(pty="s") view(x,y,f(z),nlevels=14,imag.contour=TRUE,real.cont=TRUE,scheme=-1, drawlabels=FALSE, axes=FALSE,xlab="Re(z)",ylab="Im(z)") axis(1,pos=-6) axis(2,pos=-6) lines(x=c(-6,6),y=c(6,6)) lines(y=c(-6,6),x=c(6,6)) d1 <- c(-0.1,0,0.1) d2 <- c( 0.1,0,0.1) lines(x=d1,y=1+d2) lines(x=d1,y=-1-d2) lines(x=1-d2,y=d1) lines(x=-1+d2,y=d1) ################################################### ### code chunk number 41: stag_point_close ################################################### null <- dev.off() ################################################### ### code chunk number 42: two_calc ################################################### f <- function(z){1i*log((z-1.7+3i)*(z-1.7-3i)/(z+1-0.6i)/(z+1+0.6i))} x <- seq(from=-6,to=6,len=n) y <- seq(from=-6,to=6,len=n) z <- outer(x,1i*y,"+") ################################################### ### code chunk number 43: two_sources_two_sinks_file ################################################### png("two_sources_two_sinks.png",width=800,height=800) ################################################### ### code chunk number 44: two_sources_two_sinks_plot ################################################### par(pty="s") view(x,y,f(z),nlevels=24,imag.contour=TRUE,real.cont=TRUE,scheme=17,power=0.1,drawlabels=FALSE,axes=FALSE,xlab="Re(z)",ylab="Im(z)") axis(1,pos=-6) axis(2,pos=-6) lines(x=c(-6,6),y=c(6,6)) lines(y=c(-6,6),x=c(6,6)) ################################################### ### code chunk number 45: two_sources_two_sinks_close ################################################### null <- dev.off() ################################################### ### code chunk number 46: rect_calc3 ################################################### m <- 0.5 K <- K.fun(m) iK <- K.fun(1-m) #b <- sn(1.8 + 0.8i, m=m) # 1.8 to the right and 0.8 up. #b <- 0 # middle bottom b <- sn(0 + 1i*iK/2,m=m) #dead centre of the rectangle. #b <- -1 # lower left #b <- 1/sqrt(m) # top right #b <- -1/sqrt(m) # top left #b <- 1e9*1i # top centre a <- 1 #bottom right hand side corner f <- function(z){1i*log((z-a)*(z-Conj(a))/(z-b)/(z-Conj(b)))} x <- seq(from=-K,to=K,len=n) y <- seq(from=0,to=iK,len=n) z <- outer(x,1i*y,"+") fsn <- f(sn(z,m=m)) ################################################### ### code chunk number 47: rectangle_pot_flow_file ################################################### png("rectangle_pot_flow.png",width=800,height=800) ################################################### ### code chunk number 48: rectangle_pot_flow_plot ################################################### view(x,y,fsn,nlevels=44,imag.contour=FALSE,real.cont=TRUE,scheme=17,power=0.1,drawlabels=FALSE,axes=FALSE,xlab="",ylab="") rect(-K,0,K,iK,lwd=3) ################################################### ### code chunk number 49: rectangle_pot_flow_close ################################################### null <- dev.off() ################################################### ### code chunk number 50: bacco_flow ################################################### # Choose the size of the computational mesh: n <- n_BACCO # Choose the number of code observations for D1: n.code.obs <- 30 # And the number of field observations for D2: n.field.obs <- 31 # First, up the D1 design matrix. Recall that D1 is the set of code # observations, which here means the observations of fluid speed when # the sink is at a known, specified, position. suppressWarnings(RNGversion("3.5.0")) set.seed(0) latin.hypercube <- function (n, d){ sapply(seq_len(d), function(...) { (sample(1:n) - 0.5)/n }) } D1.elliptic <- latin.hypercube(n.code.obs , 4) colnames(D1.elliptic) <- c("x","y","x.sink","y.sink") D1.elliptic[,c(1,3)] <- (D1.elliptic[,c(1,3)] -0.5)*2 #D1.elliptic[,c(2,4)] <- D1.elliptic[,c(2,4)] *iK # now a D2 design matrix. This is field observations: observations of # fluid speed when the sink is at the true, unknown, specified, # position. D2.elliptic <- latin.hypercube(n.field.obs , 2) colnames(D2.elliptic) <- c("x","y") D2.elliptic[,1] <- (D2.elliptic[,1] -0.5)*2 # Now a function that, given x and y and x.sink and y.sink, returns # the log of the fluid speed at x,y: fluid.speed <- function(x.pos, y.pos, x.sink, y.sink){ a <- 1 #bottom right hand side corner b <- sn(x.pos/K + 1i*iK*y.pos,m=m) #position (x.pos , y.pos) f <- function(z){1i*log((z-a)*(z-Conj(a))/(z-b)/(z-Conj(b)))} x <- seq(from=-K,to=K,len=n) y <- seq(from=0,to=iK,len=n) z <- outer(x,1i*y,"+") potential <- f(sn(z,m=m)) get.log.ke <- function(x,y,potential){ jj <- Re(potential) jj.x <- cbind(jj[,-1]-jj[,-ncol(jj)],0) jj.y <- rbind(jj[-1,]-jj[-nrow(jj),],0) kinetic.energy <- jj.x^2 + jj.y^2 n.x <- round(n * (x-(-1))/2) n.y <- round(n * y) return(log(kinetic.energy[n.x , n.y]+0.01)) } return(get.log.ke(x.pos,y.pos,potential)) } # now fill in code outputs y: y.elliptic <- rep(NA,nrow(D1.elliptic)) for(i in 1:length(y.elliptic)){ jj <- D1.elliptic[i,,drop=TRUE] y.elliptic[i] <- fluid.speed(jj[1],jj[2],jj[3],jj[4]) } # Now do the field observations; here the source is known to be at the # centre of the rectangle: z.elliptic <- rep(NA,nrow(D2.elliptic)) for(i in 1:length(z.elliptic)){ jj <- D2.elliptic[i,,drop=TRUE] z.elliptic[i] <- fluid.speed(jj[1],jj[2],0,0.5) } # Create design matrix plus observations for didactic purposes: D1 <- round(cbind(D1.elliptic,observation=y.elliptic),2) D2 <- round(cbind(D2.elliptic,observation=z.elliptic),2) # create a data vector: d.elliptic <- c(y.elliptic , z.elliptic) #now a h1.toy() equivalent: h1.elliptic <- function(x){ out <- c(1,x[1]) } #now a H1.toy() equivalent: H1.elliptic <- function (D1) { if (is.vector(D1)) { D1 <- t(D1) } out <- t(apply(D1, 1, h1.elliptic)) colnames(out)[1] <- "h1.const" return(out) } h2.elliptic <- function(x){ c(1,x[1]) } H2.elliptic <- function(D2){ if (is.vector(D2)) { D2 <- t(D2) } out <- t(apply(D2, 1, h2.elliptic)) colnames(out)[1] <- "h2.const" return(out) } #Now an extractor function: extractor.elliptic <- function (D1) { return(list(x.star = D1[, 1:2, drop = FALSE], t.vec = D1[, 3:4, drop = FALSE])) } # Now a whole bunch of stuff to define a phi.fun.elliptic() # and, after that, to call it: phi.fun.elliptic <- function (rho, lambda, psi1, psi1.apriori, psi2, psi2.apriori, theta.apriori, power) { "pdm.maker.psi1" <- function(psi1) { jj.omega_x <- diag(psi1[1:2]) rownames(jj.omega_x) <- names(psi1[1:2]) colnames(jj.omega_x) <- names(psi1[1:2]) jj.omega_t <- diag(psi1[3:4]) rownames(jj.omega_t) <- names(psi1[3:4]) colnames(jj.omega_t) <- names(psi1[3:4]) sigma1squared <- psi1[5] return(list(omega_x = jj.omega_x, omega_t = jj.omega_t, sigma1squared = sigma1squared)) } "pdm.maker.psi2" <- function(psi1) { jj.omegastar_x <- diag(psi2[1:2]) sigma2squared <- psi2[3] return(list(omegastar_x = jj.omegastar_x, sigma2squared = sigma2squared)) } jj.mean <- theta.apriori$mean jj.V_theta <- theta.apriori$sigma jj.discard.psi1 <- pdm.maker.psi1(psi1) jj.omega_t <- jj.discard.psi1$omega_t jj.omega_x <- jj.discard.psi1$omega_x jj.sigma1squared <- jj.discard.psi1$sigma1squared jj.discard.psi2 <- pdm.maker.psi2(psi2) jj.omegastar_x <- jj.discard.psi2$omegastar_x jj.sigma2squared <- jj.discard.psi2$sigma2squared jj.omega_t.upper <- chol(jj.omega_t) jj.omega_t.lower <- t(jj.omega_t.upper) jj.omega_x.upper <- chol(jj.omega_x) jj.omega_x.lower <- t(jj.omega_x.upper) jj.a <- solve(solve(jj.V_theta) + 2 * jj.omega_t, solve(jj.V_theta, jj.mean)) jj.b <- t(2 * solve(solve(jj.V_theta) + 2 * jj.omega_t) %*% jj.omega_t) jj.c <- jj.sigma1squared/sqrt(det(diag(nrow = nrow(jj.V_theta)) + 2 * jj.V_theta %*% jj.omega_t)) jj.A <- solve(jj.V_theta + solve(jj.omega_t)/4) jj.A.upper <- chol(jj.A) jj.A.lower <- t(jj.A.upper) list(rho = rho, lambda = lambda, psi1 = psi1, psi1.apriori = psi1.apriori, psi2 = psi2, psi2.apriori = psi2.apriori, theta.apriori = theta.apriori, power = power, omega_x = jj.omega_x, omega_t = jj.omega_t, omegastar_x = jj.omegastar_x, sigma1squared = jj.sigma1squared, sigma2squared = jj.sigma2squared, omega_x.upper = jj.omega_x.upper, omega_x.lower = jj.omega_x.lower, omega_t.upper = jj.omega_t.upper, omega_t.lower = jj.omega_t.lower, a = jj.a, b = jj.b, c = jj.c, A = jj.A, A.upper = jj.A.upper, A.lower = jj.A.lower) } # OK, that's the function defined. Now to create some jj.* variables # to call it: jj.psi1 <- c(rep(1,4),0.3) names(jj.psi1)[1:4] <- colnames(D1.elliptic) names(jj.psi1)[5] <- "sigma1squared" jj.mean.psi1 <- rep(1,5) names(jj.mean.psi1) <- names(jj.psi1) jj.sigma.psi1 <- diag(0.1,nrow=5) rownames(jj.sigma.psi1) <- names(jj.psi1) colnames(jj.sigma.psi1) <- names(jj.psi1) jj.psi2 <- c(1,1,0.3) names(jj.psi2)[1:2] <- colnames(D2.elliptic) names(jj.psi2)[3] <- "sigma2squared" jj.mean.psi2 <- rep(1,4) names(jj.mean.psi2) <- c("x.sink", "y.sink","rho","lambda") jj.sigma.psi2 <- diag(0.1,4) rownames(jj.sigma.psi2) <- names(jj.mean.psi2) colnames(jj.sigma.psi2) <- names(jj.mean.psi2) jj.mean.th <- c(1,0.5) names(jj.mean.th) <- colnames(D1.elliptic)[3:4] jj.sigma.th <- diag(rep(1,2)) rownames(jj.sigma.th) <- colnames(D1.elliptic)[3:4] colnames(jj.sigma.th) <- colnames(D1.elliptic)[3:4] # Now call phi.fun.elliptic(): phi.elliptic <- phi.fun.elliptic( rho=1, lambda=0.1, psi1=jj.psi1, psi2=jj.psi2, psi1.apriori=list(mean=jj.mean.psi1, sigma=jj.sigma.psi1), psi2.apriori=list(mean=jj.mean.psi2, sigma=jj.sigma.psi2), theta.apriori=list(mean=jj.mean.th, sigma=jj.sigma.th), power=2 ) # Now an E.theta.elliptic(): E.theta.elliptic <- function (D2 = NULL, H1 = NULL, x1 = NULL, x2 = NULL, phi, give.mean = TRUE) { if (give.mean) { m_theta <- phi$theta.apriori$mean return(H1(D1.fun(D2, t.vec = m_theta))) } else { out <- matrix(0, 2,2) rownames(out) <- c("h1.const","x") colnames(out) <- c("h1.const","x") return(out) } } #Now an Edash.theta.elliptic(). Because the basis vector is not a #function of theta, this is a bit academic as we can use a function #that is identical to Edash.theta.toy(): Edash.theta.elliptic <- function (x, t.vec, k, H1, fast.but.opaque = FALSE, a = NULL, b = NULL, phi = NULL) { if (fast.but.opaque) { edash.mean <- a + crossprod(b, t.vec[k, ]) } else { V_theta <- phi$theta.apriori$sigma m_theta <- phi$theta.apriori$mean omega_t <- phi$omega_t edash.mean <- solve(solve(V_theta) + 2 * omega_t, solve(V_theta, m_theta) + 2 * crossprod(omega_t, t.vec[k, ])) } jj <- as.vector(edash.mean) names(jj) <- rownames(edash.mean) edash.mean <- jj return(H1(D1.fun(x, edash.mean))) } # Define a wrapper for equation 8: # First, calculate the constant to subtract to ensure that # the support has a maximum of about zero: maximum.likelihood.support <- p.eqn8.supp(theta=c(0,1/2), D1=D1.elliptic, D2=D2.elliptic, H1=H1.elliptic, H2=H2.elliptic, d=d.elliptic, include.prior=FALSE, lognormally.distributed=FALSE, return.log=TRUE, phi=phi.elliptic) support <- function(x){ p.eqn8.supp(theta=x, D1=D1.elliptic, D2=D2.elliptic, H1=H1.elliptic, H2=H2.elliptic, d=d.elliptic, include.prior=FALSE, lognormally.distributed=FALSE, return.log=TRUE, phi=phi.elliptic) - maximum.likelihood.support } #define a local function called optim() for aesthetic reasons (ie it # improves the appearance of the call to optim(): optim <- function(par,fn){ stats::optim(par=par,fn=fn,control=list(fnscale = -1))$par } ################################################### ### code chunk number 51: head_D1 ################################################### head(D1) ################################################### ### code chunk number 52: head_D2 ################################################### head(D2) ################################################### ### code chunk number 53: calc_b_sn ################################################### b <- sn(D1[1,3] + 1i*D1[1,4],m=m) #point corresponding to first line of D1 fsnz2 <- f(sn(z,m=m)) ################################################### ### code chunk number 54: code_obs_file ################################################### png("code_obs.png",width=800,height=800) ################################################### ### code chunk number 55: code_obs_plot ################################################### view(x,y,fsnz2,nlevels=44,imag.contour=FALSE,real.cont=TRUE,scheme=-1,drawlabels=FALSE,axes=FALSE,xlab="",ylab="") points(x=K*D1[1,1],y=D1[1,2]*iK,pch=4) rect(-K,0,K,iK,lwd=3) ################################################### ### code chunk number 56: code_obs_close ################################################### null <- dev.off() ################################################### ### code chunk number 57: calc_b2 ################################################### b <- sn(0 + 1i*iK/2,m=m) fsnzz <- f(sn(z,m=m)) ################################################### ### code chunk number 58: true_flow_file ################################################### png("true_flow.png",width=800,height=800) ################################################### ### code chunk number 59: true_flow_plot ################################################### view(x,y,fsnzz,nlevels=44,imag.contour=FALSE,real.cont=TRUE,scheme=-1,drawlabels=FALSE,axes=FALSE,xlab="",ylab="") points(x=K*D2[,1],y=D2[,2]*iK,pch=4) rect(-K,0,K,iK,lwd=3) ################################################### ### code chunk number 60: true_flow_close ################################################### null <- dev.off() ################################################### ### code chunk number 61: support ################################################### support(c(0,1/2)) #centre of the rectangle support(c(-1,1)) #top left corner ################################################### ### code chunk number 62: mle_calc ################################################### mle <- optim(c(0,1/2),support) ################################################### ### code chunk number 63: print_mle ################################################### mle ################################################### ### code chunk number 64: support_of_mle ################################################### support(mle) elliptic/README.md0000644000176200001440000001157715104404043013344 0ustar liggesusersThe elliptic package: Weierstrass and Jacobi elliptic functions in R ================ ------------------------------------------------------------------------ [![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/elliptic?color=green)](https://cran.r-project.org/package=elliptic) ![](https://cranlogs.r-pkg.org/badges/grand-total/elliptic?color=green) ![](https://cranlogs.r-pkg.org/badges/elliptic?color=green) ![](https://cranlogs.r-pkg.org/badges/last-week/elliptic?color=green) [![R-CMD-check](https://github.com/RobinHankin/elliptic/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/RobinHankin/elliptic/actions/workflows/R-CMD-check.yaml) [![Codecov test coverage](https://codecov.io/gh/RobinHankin/elliptic/graph/badge.svg)](https://app.codecov.io/gh/RobinHankin/elliptic) ## Overview An elliptic function is a meromorphic complex function that is periodic in two directions. That is, there exist two nonzero complex numbers ![\omega_1,\omega_2](https://latex.codecogs.com/png.latex?%5Comega_1%2C%5Comega_2 "\omega_1,\omega_2") with ![\omega_1/\omega_2\in\mathbb{C}\backslash\mathbb{R}](https://latex.codecogs.com/png.latex?%5Comega_1%2F%5Comega_2%5Cin%5Cmathbb%7BC%7D%5Cbackslash%5Cmathbb%7BR%7D "\omega_1/\omega_2\in\mathbb{C}\backslash\mathbb{R}") such that ![f(z) = f(z+2\omega_1)=f(z+2\omega_2)](https://latex.codecogs.com/png.latex?f%28z%29%20%3D%20f%28z%2B2%5Comega_1%29%3Df%28z%2B2%5Comega_2%29 "f(z) = f(z+2\omega_1)=f(z+2\omega_2)") whenever ![f(z)](https://latex.codecogs.com/png.latex?f%28z%29 "f(z)") is defined; note carefully the factors of 2. There are two natural ways of presenting elliptic functions: that of Weierstrass, and that of Jacobi. Historically, the Jacobi form was first presented and is the most practically useful, but the Weierstrass form is more elegant (IMO). Terminology follows that of Abramowitz and Stegun wherever possible. # Installation To install the most recent stable version on CRAN, use `install.packages()` at the R prompt: R> install.packages("elliptic") To install the current development version use `devtools`: R> devtools::install_github("RobinHankin/elliptic") And then to load the package use `library()`: ``` r library("elliptic") ``` The package comes with an extensive and detailed vignette; type `vignette("elliptic")` at the R commandline. # The package in use The Weierstrass elliptic function is evaluated numerically by `P()`, which takes the half periods ![\omega_1,\omega_2](https://latex.codecogs.com/png.latex?%5Comega_1%2C%5Comega_2 "\omega_1,\omega_2"). Thus ``` r z <- 0.3 + 0.2i omega1 <- 5+1i; omega2 <- 1+7i # half-periods f <- function(z){P(z,Omega=c(omega1,omega2))} c(f(z),f(z + 10+2i), f(z + 2+14i)) # should be equal ``` ## [1] 2.958647-7.100563i 2.958647-7.100563i 2.958647-7.100563i The elliptic functions can be visualised using `view()`: ``` r x <- seq(from=-4, to=4, len=200) y <- x z <- outer(x,1i*x, "+") f <- P(z, c(1+1i,2-3i)) par(pty="s") view(x,y,f,real.contour=FALSE,drawlabel=FALSE,axes=FALSE,xlab="Re(z)",ylab="Im(z)", main="P(z,1+i,2-3i)") axis(1,pos = -4) axis(2,pos = -4) lines(x=c(-4,4),y=c(4,4)) lines(y=c(-4,4),x=c(4,4)) ``` ![](README_files/figure-gfm/view_wp-1.png) Related functions include ![\sigma(\cdot)](https://latex.codecogs.com/png.latex?%5Csigma%28%5Ccdot%29 "\sigma(\cdot)") (`sigma()` and the ![\zeta(\cdot)](https://latex.codecogs.com/png.latex?%5Czeta%28%5Ccdot%29 "\zeta(\cdot)") (`zeta()`). ## Jacobi forms Jacobi’s elliptic functions are implemented in the package with their standard names `sn()`, `cn()`, `dn()` etc. For example: ``` r view(x,y,sn(z,m=6),real=FALSE,drawlabel=FALSE,axes=FALSE,xlab="Re(z)",ylab="Im(z)", main="The Jacobi sn() function") axis(1,pos = -4,at=c(-4,-2,0,2,4)) axis(2,pos = -4,at=c(-4,-2,0,2,4)) lines(x=c(-4,4),y=c(4,4)) lines(y=c(-4,4),x=c(4,4)) ``` ![](README_files/figure-gfm/view_sn-1.png) The Jacobi forms are useful in physics and we can use them to visualise potential flow in a rectangle: ``` r n <- 300 K <- K.fun(1/2) # aspect ratio f <- function(z){1i*log((z-1.7+3i)*(z-1.7-3i)/(z+1-0.3i)/(z+1+0.3i))} # position of source and sink x <- seq(from=-K,to=K,len=n) y <- seq(from=0,to=K,len=n) z <- outer(x,1i*y,"+") view(x, y, f(sn(z,m=1/2)), nlevels=44, real.contour=TRUE, drawlabels=FALSE, main="Potential flow in a rectangle",axes=FALSE,xlab="",ylab="") rect(-K,0,K,K,lwd=3) ``` ![](README_files/figure-gfm/view_rectangle-1.png) ## References - M Abramowitz and IA Stegun (1965). *Handbook of Mathematical Functions*. New York: Dover - RKS Hankin (2006). “Introducing elliptic, an R package for elliptic and modular functions”. *Journal of Statistical Software*, 15:7 - K Chandrasekharan (1985). *Elliptic functions*. Springer-Verlag elliptic/build/0000755000176200001440000000000015104404110013144 5ustar liggesuserselliptic/build/vignette.rds0000644000176200001440000000041215104404110015500 0ustar liggesusersuOMO0 1X+Ҵ vQ/_q=c,aY$4]Q[^yKQ.pO?\*cNr{@ZwT !Lڶ p\A /O8iT2Vgfy{qd >Ykޠ y T|'/H6ې΢ ԕ /Zض+7Ϸ.:dQqڒ@elliptic/build/partial.rdb0000644000176200001440000001567115104404065015314 0ustar liggesusers]vFK88y6Wm^eYd[R(hE}2?!߼꧘=u H9ρn(ԭ[+~d2Cѡ0$/?g2a{}fӑ$QE;,:#4i&32JBrrߎ^}iNi)+3 x~5~Ր 8z џyMPU$YxMrg+Xʞ">mfk7t5Y_^8*zlwJUGhmRnɊ4[1_+T+j)Q*y ړ<Bwyat?7h͑V|,ȿZlu 1v/9W!* ^C@# ɷԱȂPtNZ9PU═r&zu!RQ@/` (e1MOZ)P8WBJ@E M0I6N$M>Ldq xEH\8X/\WDMѩa)Ky֬7i nʦB37*3?X'ZZYam3Fn 't >T7L,DP% ju#o䙥FH%Qo0k~bH}‚K'%BJI|9n朚&N`]̖O&3`M6].ٙ*3`u&Of~,L.OB[Vf^}KJ,XL~=Ѷ +K3-;[QE[u`]o-YʝZ=fL:.TSin D"PGm?VN|xHxԧsY5ESh#U"y?8x,R8?po,̦Rq\}yjDZ1JMlYu%:~+h{\#YmKP?E?jVx{tTS/ɆaӉܴ3{jČ"Xf_8ӭkW>Z,5Y ~Kr?[&ѻSp7#QSUjP<xfBy:uW,? bYV%s2\|ЫE[/7NV{p\kkQPàd*bjY4B䰁,=#gGyoRSA!NДUA?5@Ȃ^>Z̽ !&C ڦw"C%&a噬It}YTKjRg(o"\Ytʌ7z6gAAh7!m}"M%Ź逼*Ŏ.eSޥ[(2!~9(4pff1kTtu24a{mO=HCQYMkr: ӁjA/ g;@S)5zMx*7[&nΑUa4g!j [q´4A}!p}6{+y'_secz=~x-M ӹBeN a#L3sP\bknF`z,!E186 wv+$h@cԹ@5>GӑmB9ޞ"}g'GHcyl@/8WLkryCnM{?#w:ܱaz-1чdo2㶮+(1}>ZGm @4_R4\C-=\FJ0M;kSM+ԮU&qX@B>t4jͰJLV?Ҹ7L:>֡1v7 cxe ["xv 5ݓY =LߋiG hN>uLs'޺X!KH0:R,Xicؚ*(JW;zM t?ΜJCSm +u]hk{ήV[&mZ*V/./?h!a-j2s ; OSg!7~\dj$8_$.;;$L@3#p5#Ʉa <@@rvR&n`q0t5;1u`ZYXp/+,dC Zqȗ>t|n'ZyUXXù,`}ۜ{:.LaY%t QֻU!s s} `s͆0dOwXDP#f# @70%{loR[k8֙`.MucOC㔳-c`R6$$1gRX `f tK<{-ԞH0Z/# ӌ̠yM,VS8R`= o-YQB%z*ObvK7P\.M-mM|;3O41K90W@&}'敵IEa}Mv3gy+a0`" ̛ĺtM/ð&t^#=Z L$f5x>FX8g3g3; Ez 'ȆڧHI&i>چK|);G:+;G D{t,IXF*㷑Ewe ʁ:>%`@cjo sh [+iL?9 ŕ`z%rQgsLA(9 :}!zhFQxg׭lӭY-aPM +oP/08_"鏰>dڞ۫:dK`Հ=!r+z(V T.bzm.# `3~7งtǢeZ[~'.=[&i p*&U =j"8,* B]-~88[Di7|J>k"89 c> $GX&);R"ڙ{r ^AV ϻG;oprv>u|,r]ـ%+"C_ڻN:˜E;vi2F! |!A\M#b:}4s^,8rQXo<\J3tѾ |t^ ;!QNTR|Ԗ U*rQ0"4$6/;Y&?~~LxxȽx\l[3ἅ~'*v[P%'_pu187 ~ J}?-X lC;T>뛩)`&)  ܚoSϻ<Ե> .}YX}Bq}b;nс+(_܅*!C3vO1]AS܅n^HƠzNX<yηJzf}kc5EL^!~.x'C^LxS|KW2}^4ޚ6T<`r9Uo>ໟ@/4*灊A-mU7>S`I ^g}P-l3:^~#X͔M(D X[4[V1;듷;AC!?Z3s7?o!yl~k_dz O .E5KњPx̻TQpeU}~QXVt{*s5EVwEE0Lpq}6Y3TcȞÃ1Z_KmG :#aS?ΝfP 7.o-j@?t7&3dUƆZ{\.^wڴF_сn xpf~ (?~?=Mw曭D56_'IoKM"KՒtZJ%'Z2 @nxBlwJUGhmRl|TRy[xh{ueSy6H΀ }Q UnkȣMKa1etFob={޿wJ?; P 1ym%ΡU$W1}5 ƠkME~e}5:xJb}6yVihP;N/^DrSd  L &աd5qYt\t3~v:OIhq08)H\lIc&!'%$;ˈ7L-f&oV767޼NFbC<.|p`["'pc5L#5Ipؖe9ObwR&wkP VĽ}p0`=TǏu'?pWًq::(._ .Auɷ̿GY7\elliptic/man/0000755000176200001440000000000015104404043012625 5ustar liggesuserselliptic/man/unimodular.Rd0000644000176200001440000000260615104404043015277 0ustar liggesusers\name{unimodular} \alias{unimodular} \alias{unimodularity} \title{Unimodular matrices} \description{ Systematically generates unimodular matrices; numerical verification of a function's unimodularness } \usage{ unimodular(n) unimodularity(n,o, FUN, ...) } \arguments{ \item{n}{Maximum size of entries of matrices} \item{o}{Two element vector} \item{FUN}{Function whose unimodularity is to be checked} \item{...}{Further arguments passed to \code{FUN}} } \details{ Here, a \sQuote{unimodular} matrix is of size \eqn{2\times 2}{2x2}, with integer entries and a determinant of unity. } \value{ Function \code{unimodular()} returns an array \code{a} of dimension \code{c(2,2,u)} (where \code{u} is a complicated function of \code{n}). Thus 3-slices of \code{a} (that is, \code{a[,,i]}) are unimodular. Function \code{unimodularity()} returns the result of applying \code{FUN()} to the unimodular transformations of \code{o}. The function returns a vector of length \code{dim(unimodular(n))[3]}; if \code{FUN()} is unimodular and roundoff is neglected, all elements of the vector should be identical. } \author{Robin K. S. Hankin} \note{In function \code{as.primitive()}, a \sQuote{unimodular} may have determinant minus one. } \seealso{\code{\link{as.primitive}}} \examples{ unimodular(3) o <- c(1,1i) plot(abs(unimodularity(3,o,FUN=g2.fun,maxiter=100)-g2.fun(o))) } \keyword{array} elliptic/man/misc.Rd0000644000176200001440000000061015104404043014044 0ustar liggesusers\name{misc} \alias{Im<-} \alias{Re<-} \title{Manipulate real or imaginary components of an object} \description{ Manipulate real or imaginary components of an object } \usage{ Im(x) <- value Re(x) <- value } \arguments{ \item{x}{Complex-valued object} \item{value}{Real-valued object} } \author{Robin K. S. Hankin} \examples{ x <- 1:10 Im(x) <- 1 x <- 1:5 Im(x) <- 1/x } \keyword{math} elliptic/man/p1.tau.Rd0000644000176200001440000000151515104404043014226 0ustar liggesusers\name{p1.tau} \alias{p1.tau} \title{Does the Right Thing (tm) when calling g2.fun() and g3.fun()} \description{ Takes vectors and interprets them appropriately for input to \code{g2.fun()} and \code{g3.fun()}. Not really intended for the end user. } \usage{ p1.tau(b) } \arguments{ \item{b}{Vector of periods} } \details{ If \code{b} is of length two, interpret the elements as \eqn{\omega_1}{omega1} and \eqn{\omega_2}{omega2} respectively. If a two-column matrix, interpret the columns as \eqn{\omega_1}{omega1} and \eqn{\omega_2}{omega2} respectively. Otherwise, interpret as a vector of \eqn{\tau=\omega_1/\omega_2}{tau=omega1/omega2}. } \value{ Returns a two-component list: \item{p1}{First period} \item{tau}{Period ratio} } \author{Robin K. S. Hankin} \examples{ p1.tau(c(1+1i,1.1+23.123i)) } \keyword{math} elliptic/man/mob.Rd0000644000176200001440000000162415104404043013674 0ustar liggesusers\name{mob} \alias{mob} \alias{\%mob\%} \title{Moebius transformations} \description{ Moebius transformations } \usage{ mob(M, x) M \%mob\% x } \arguments{ \item{M}{2-by-2 matrix of integers} \item{x}{vector of values to be transformed} } \value{ Returns a value with the same attributes as \code{x}. Elementwise, if \deqn{M=\left(\begin{array}{cc}a&b\\c&d\end{array}\right)}{omitted: see PDF} then \code{mob(M,x)} is \eqn{\frac{ax+b}{cx+d}}{(ax+b)/(cx+d)}. } \references{ Wikipedia contributors, "Mobius transformation," Wikipedia, The Free Encyclopedia (accessed February 13, 2011). } \author{Robin K. S. Hankin} \note{This function does not check for \code{M} being having integer elements, nor for the determinant being unity. } \seealso{\code{\link{unimodular}}} \examples{ M <- matrix(c(11,6,9,5),2,2) x <- seq(from=1+1i,to=10-2i,len=6) M \%mob\% x plot(mob(M,x)) } \keyword{math} elliptic/man/latplot.Rd0000644000176200001440000000157115104404043014577 0ustar liggesusers\name{latplot} \alias{latplot} \title{Plots a lattice of periods on the complex plane} \description{ Given a pair of basic periods, plots a lattice of periods on the complex plane } \usage{ latplot(p, n=10, do.lines=TRUE, ...) } \arguments{ \item{p}{Vector of length two with first element the first period and second element the second period. Note that \eqn{p_1=2\omega_1}{p1=2*omega1}} \item{n}{Size of lattice} \item{do.lines}{Boolean with default \code{TRUE} meaning to show boundaries between adjacent period parallelograms} \item{...}{Extra arguments passed to \code{plot()}. See examples section for working use} } \references{ K. Chandrasekharan 1985. \emph{Elliptic functions}, Springer-Verlag. } \author{Robin K. S. Hankin} \examples{ p1 <- c(1, 1i) p2 <- c(2+3i, 5+7i) latplot(p1) latplot(p2, xlim=c(-4,4), ylim=c(-4,4), n=40) } \keyword{math} elliptic/man/theta.Rd0000644000176200001440000000614215104404043014224 0ustar liggesusers\name{theta} \alias{theta} \alias{theta1} \alias{theta2} \alias{theta3} \alias{theta4} \alias{e16.27.1} \alias{e16.27.2} \alias{e16.27.3} \alias{e16.27.4} \alias{theta.00} \alias{theta.01} \alias{theta.10} \alias{theta.11} \alias{Theta} \alias{Theta1} \alias{H} \alias{H1} \alias{e16.31.1} \alias{e16.31.2} \alias{e16.31.3} \alias{e16.31.4} \title{Jacobi theta functions 1-4} \description{ Computes Jacobi's four theta functions for complex \eqn{z} in terms of the parameter \eqn{m} or \eqn{q}. } \usage{ theta1 (z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30, miniter=3) theta2 (z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30, miniter=3) theta3 (z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30, miniter=3) theta4 (z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30, miniter=3) theta.00(z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30, miniter=3) theta.01(z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30, miniter=3) theta.10(z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30, miniter=3) theta.11(z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30, miniter=3) Theta (u, m, ...) Theta1(u, m, ...) H (u, m, ...) H1(u, m, ...) } \arguments{ \item{z,u}{Complex argument of function} \item{ignore}{Dummy variable whose intention is to force the user to name the second argument either \code{m} or \code{q}} \item{m}{Does not seem to have a name. The variable is introduced in section 16.1, p569} \item{q}{The nome \eqn{q}, defined in section 16.27, p576} \item{give.n}{Boolean with default \code{FALSE} meaning to return the function evaluation, and \code{TRUE} meaning to return a two element list, with first element the function evaluation, and second element the number of iterations used} \item{maxiter}{Maximum number of iterations used. Note that the series generally converge very quickly} \item{miniter}{Minimum number of iterations to guard against premature exit if an addend is zero exactly} \item{...}{In functions that take it, extra arguments passed to \code{theta1()} et seq; notably, \code{maxiter}} } \details{ Functions \code{theta.00()} et seq are just wrappers for \code{theta1()} et seq, following Whittaker and Watson's terminology on p487; the notation does not appear in Abramowitz and Stegun. \itemize{ \item \code{theta.11() = theta1()} \item \code{theta.10() = theta2()} \item \code{theta.00() = theta3()} \item \code{theta.01() = theta4()} } } \value{ Returns a complex-valued object with the same attributes as either \code{z}, or (\code{m} or \code{q}), whichever wasn't recycled. } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \author{Robin K. S. Hankin} \seealso{\code{\link{theta.neville}}} \examples{ m <- 0.5 derivative <- function(small){(theta1(small,m=m)-theta1(0,m=m))/small} right.hand.side1 <- theta2(0,m=m)*theta3(0,m=m)*theta4(0,m=m) right.hand.side2 <- theta1.dash.zero(m) derivative(1e-5) - right.hand.side1 # should be zero derivative(1e-5) - right.hand.side2 # should be zero } \keyword{array} elliptic/man/theta1dash.Rd0000644000176200001440000000320615104404043015143 0ustar liggesusers\name{theta1dash} \alias{theta1dash} \alias{theta1dashdash} \alias{theta1dashdashdash} \title{Derivatives of theta functions} \description{ First, second, and third derivatives of the theta functions } \usage{ theta1dash(z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30, miniter=3) theta1dashdash(z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30,miniter=3) theta1dashdashdash(z, ignore = NULL, m = NULL, q = NULL, give.n = FALSE, maxiter = 30,miniter=3) } \arguments{ \item{z}{Primary complex argument} \item{ignore}{Dummy argument to force the user to name the next argument either \code{m} or \code{q}} \item{m}{m as documented in \code{theta1()}} \item{q}{q as documented in \code{theta1()}} \item{give.n}{Boolean with default \code{FALSE} meaning to return the function evaluation, and \code{TRUE} meaning to return a two element list, with first element the function evaluation, and second element the number of iterations used} \item{maxiter}{Maximum number of iterations} \item{miniter}{Minimum number of iterations to guard against premature exit if an addend is zero exactly} } \details{ Uses direct expansion as for \code{theta1()} et seq } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of Mathematical Functions.} New York, Dover } \author{Robin K. S. Hankin} \seealso{\code{\link{theta}}} \examples{ m <- 0.3+0.31i z <- seq(from=1,to=2+1i,len=7) delta <- 0.001 deriv.numer <- (theta1dashdash(z=z+delta,m=m) - theta1dashdash(z=z,m=m))/delta deriv.exact <- theta1dashdashdash(z=z+delta/2,m=m) abs(deriv.numer-deriv.exact) } \keyword{math} elliptic/man/sn.Rd0000644000176200001440000000356615104404043013546 0ustar liggesusers\name{sn} \alias{ss} \alias{sc} \alias{sn} \alias{sd} \alias{cs} \alias{cc} \alias{cn} \alias{cd} \alias{ns} \alias{nc} \alias{nn} \alias{nd} \alias{ds} \alias{dc} \alias{dn} \alias{dd} \alias{e16.36.3} \concept{Jacobi elliptic functions} \concept{Jacobi's elliptic functions} \concept{Jacobian elliptic functions} \title{Jacobi form of the elliptic functions} \description{Jacobian elliptic functions} \usage{ ss(u,m, ...) sc(u,m, ...) sn(u,m, ...) sd(u,m, ...) cs(u,m, ...) cc(u,m, ...) cn(u,m, ...) cd(u,m, ...) ns(u,m, ...) nc(u,m, ...) nn(u,m, ...) nd(u,m, ...) ds(u,m, ...) dc(u,m, ...) dn(u,m, ...) dd(u,m, ...) } \arguments{ \item{u}{Complex argument} \item{m}{Parameter} \item{...}{Extra arguments, such as \code{maxiter}, passed to \code{theta.?()}} } \details{ All sixteen Jacobi elliptic functions. } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of mathematical functions}. New York: Dover } \author{Robin K. S. Hankin} \seealso{\code{\link{theta}}} \examples{ #Example 1, p579: nc(1.9965,m=0.64) # (some problem here) # Example 2, p579: dn(0.20,0.19) # Example 3, p579: dn(0.2,0.81) # Example 4, p580: cn(0.2,0.81) # Example 5, p580: dc(0.672,0.36) # Example 6, p580: Theta(0.6,m=0.36) # Example 7, p581: cs(0.53601,0.09) # Example 8, p581: sn(0.61802,0.5) #Example 9, p581: sn(0.61802,m=0.5) #Example 11, p581: cs(0.99391,m=0.5) # (should be 0.75 exactly) #and now a pretty picture: n <- 300 K <- K.fun(1/2) f <- function(z){1i*log((z-1.7+3i)*(z-1.7-3i)/(z+1-0.3i)/(z+1+0.3i))} # f <- function(z){log((z-1.7+3i)/(z+1.7+3i)*(z+1-0.3i)/(z-1-0.3i))} x <- seq(from=-K,to=K,len=n) y <- seq(from=0,to=K,len=n) z <- outer(x,1i*y,"+") view(x, y, f(sn(z,m=1/2)), nlevels=44, imag.contour=TRUE, real.cont=TRUE, code=1, drawlabels=FALSE, main="Potential flow in a rectangle",axes=FALSE,xlab="",ylab="") rect(-K,0,K,K,lwd=3) } \keyword{math} elliptic/man/elliptic-package.Rd0000644000176200001440000000535115104404043016316 0ustar liggesusers\name{elliptic-package} \alias{elliptic-package} \alias{elliptic} \docType{package} \title{ \packageTitle{elliptic} } \description{ \packageDescription{elliptic} } \details{ The DESCRIPTION file: \packageDESCRIPTION{elliptic} \packageIndices{elliptic} The primary function in package \pkg{elliptic} is \code{P()}: this calculates the Weierstrass \eqn{\wp}{P} function, and may take named arguments that specify either the invariants \code{g} or half periods \code{Omega}. The derivative is given by function \code{Pdash} and the Weierstrass sigma and zeta functions are given by functions \code{sigma()} and \code{zeta()} respectively; these are documented in \code{?P}. Jacobi forms are documented under \code{?sn} and modular forms under \code{?J}. Notation follows Abramowitz and Stegun (1965) where possible, although there only real invariants are considered; \code{?e1e2e3} and \code{?parameters} give a more detailed discussion. Various equations from AMS-55 are implemented (for fun); the functions are named after their equation numbers in AMS-55; all references are to this work unless otherwise indicated. The package uses Jacobi's theta functions (\code{?theta} and \code{?theta.neville}) where possible: they converge very quickly. Various number-theoretic functions that are required for (eg) converting a period pair to primitive form (\code{?as.primitive}) are implemented; see \code{?divisor} for a list. The package also provides some tools for numerical verification of complex analysis such as contour integration (\code{?myintegrate}) and Newton-Raphson iteration for complex functions (\code{?newton_raphson}). Complex functions may be visualized using \code{view()}; this is customizable but has an extensive set of built-in colourmaps. } \author{ \packageAuthor{elliptic} Maintainer: \packageMaintainer{elliptic} } \keyword{ package } \examples{ ## Example 8, p666, RHS: P(z=0.07 + 0.1i, g=c(10,2)) ## Now a nice little plot of the zeta function: x <- seq(from=-4,to=4,len=100) z <- outer(x,1i*x,"+") par(pty="s") view(x,x,limit(zeta(z,c(1+1i,2-3i))),nlevels=3,scheme=1) view(x,x,P(z*3,params=equianharmonic()),real=FALSE) ## Some number theory: mobius(1:10) plot(divisor(1:300,k=1),type="s",xlab="n",ylab="divisor(n,1)") ## Primitive periods: as.primitive(c(3+4.01i , 7+10i)) as.primitive(c(3+4.01i , 7+10i),n=10) # Note difference ## Now some contour integration: f <- function(z){1/z} u <- function(x){exp(2i*pi*x)} udash <- function(x){2i*pi*exp(2i*pi*x)} integrate.contour(f,u,udash) - 2*pi*1i x <- seq(from=-10,to=10,len=200) z <- outer(x,1i*x,"+") view(x,x,P(z,params=lemniscatic()),real=FALSE) view(x,x,P(z,params=pseudolemniscatic()),real=FALSE) view(x,x,P(z,params=equianharmonic()),real=FALSE) } elliptic/man/eta.Rd0000644000176200001440000000205115104404043013663 0ustar liggesusers\name{eta} \alias{eta} \alias{eta.series} \title{Dedekind's eta function} \description{ Dedekind's \eqn{\eta}{eta} function } \usage{ eta(z, ...) eta.series(z, maxiter=300) } \arguments{ \item{z}{Complex argument} \item{\dots}{In function \code{eta()}, extra arguments sent to \code{theta3()}} \item{maxiter}{In function \code{eta.series()}, maximum value of iteration} } \details{ Function \code{eta()} uses Euler's formula, viz \deqn{\eta(z)=e^{\pi iz/12}\theta_3\left(\frac{1}{2}+\frac{z}{2},3z\right)}{[omitted; see LaTeX version} Function \code{eta.series()} is present for validation (and interest) only; it uses the infinite product formula: \deqn{\eta(z)= e^{\pi iz/12}\prod_{n=1}^\infty\left(1-e^{2\pi inz}\right)}{[omitted; see LaTeX version]} } \references{ K. Chandrasekharan 1985. \emph{Elliptic functions}, Springer-Verlag. } \author{Robin K. S. Hankin} \seealso{\code{\link{farey}}} \examples{ z <- seq(from=1+1i, to=10+0.06i, len=999) plot(eta(z)) max(abs(eta(z) - eta.series(z))) } \keyword{math} elliptic/man/ck.Rd0000644000176200001440000000171515104404043013515 0ustar liggesusers\name{ck} \alias{ck} \alias{e18.5.2} \alias{e18.5.3} \alias{e18.5.16} \title{Coefficients of the Laurent expansion of the Weierstrass P function} \description{ Calculates the coefficients of the Laurent expansion of the Weierstrass \eqn{\wp}{P} function in terms of the invariants } \usage{ ck(g, n = 20) } \arguments{ \item{g}{The invariants: a vector of length two with \code{g = c(g2, g3)}} \item{n}{length of series} } \details{ Calculates the series \eqn{c_k} as per equation 18.5.3, p635. } \author{Robin K. S. Hankin} \seealso{\code{\link{P.laurent}}} \examples{ #Verify 18.5.16, p636: x <- ck(g = c(0.1+1.1i, 4-0.63i)) 14*x[2]*x[3]*(389*x[2]^3+369*x[3]^2)/3187041-x[11] #should be zero # Now try a random example by comparing the default (theta function) method # for P(z) with the Laurent expansion: z <- 0.5 - 0.3i g <- c(1.1-0.2i, 1+0.4i) series <- ck(15, g = g) 1/z^2 + sum(series*(z^2)^(0:14)) - P(z, g =g) # should be zero } \keyword{math} elliptic/man/amn.Rd0000644000176200001440000000104715104404043013671 0ustar liggesusers\name{amn} \alias{amn} \alias{18.5.7} \alias{18.5.8} \title{matrix a on page 637} \description{ Matrix of coefficients of the Taylor series for \eqn{\sigma(z)}{sigma(z)} as described on page 636 and tabulated on page 637. } \usage{ amn(u) } \arguments{ \item{u}{Integer specifying size of output matrix} } \details{ Reproduces the coefficients \eqn{a_{mn}}{a_mn} on page 637 according to recurrence formulae 18.5.7 and 18.5.8, p636. Used in equation 18.5.6. } \author{Robin K. S. Hankin} \examples{ amn(12) #page 637 } \keyword{math} elliptic/man/theta1.dash.zero.Rd0000644000176200001440000000134615104404043016202 0ustar liggesusers\name{theta1.dash.zero} \alias{theta1.dash.zero} \alias{theta1.dash.zero.q} \alias{e16.28.6} \title{Derivative of theta1} \description{ Calculates \eqn{\theta_1'}{theta1'} as a function of either \eqn{m} or \eqn{k} } \usage{ theta1.dash.zero(m, ...) theta1.dash.zero.q(q, ...) } \arguments{ \item{m}{real parameter} \item{q}{Real parameter} \item{...}{Extra arguments passed to \code{theta1()} et seq, notably \code{maxiter}} } \author{Robin K. S. Hankin} \examples{ #Now, try and get 16.28.6, p576: theta1dash=theta2*theta3*theta4: m <- 0.5 derivative <- function(small){(theta1(small,m=m)-theta1(0,m=m))/small} right.hand.side <- theta2(0,m=m)*theta3(0,m=m)*theta4(0,m=m) derivative(1e-7)-right.hand.side } \keyword{math} elliptic/man/e18.10.9.Rd0000644000176200001440000000160415104404043014100 0ustar liggesusers\name{e18.10.9} \alias{e18.10.9} \alias{e18.10.9a} \alias{e18.10.9b} \alias{e18.10.10} \alias{e18.10.10a} \alias{e18.10.10b} \alias{e18.10.11} \alias{e18.10.11a} \alias{e18.10.11b} \alias{e18.10.12} \alias{e18.10.12a} \alias{e18.10.12b} \title{Numerical checks of equations 18.10.9-11, page 650} \description{ Numerical checks of equations 18.10.9-11, page 650. Function returns LHS minus RHS. } \usage{ e18.10.9(parameters) } \arguments{ \item{parameters}{An object of class \dQuote{parameters}} } \value{ Returns a complex vector of length three: \eqn{e_1}, \eqn{e_2}, \eqn{e_3} } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of Mathematical Functions.} New York, Dover. } \author{Robin K. S. Hankin} \note{ A good check for the three \eqn{e}'s being in the right order. } \examples{ e18.10.9(parameters(g=c(0,1))) e18.10.9(parameters(g=c(1,0))) } \keyword{math} elliptic/man/newton_raphson.Rd0000644000176200001440000000345415104404043016166 0ustar liggesusers\name{newton_raphson} \alias{newton_raphson} \alias{Newton_raphson} \alias{Newton_Raphson} \alias{newton_Raphson} \title{Newton Raphson iteration to find roots of equations} \description{ Newton-Raphson iteration to find roots of equations with the emphasis on complex functions } \usage{ newton_raphson(initial, f, fdash, maxiter, give=TRUE, tol = .Machine$double.eps) } \arguments{ \item{initial}{Starting guess} \item{f}{Function for which \eqn{f(z)=0} is to be solved for \eqn{z}} \item{fdash}{Derivative of function (note: Cauchy-Riemann conditions assumed)} \item{maxiter}{Maximum number of iterations attempted} \item{give}{Boolean, with default \code{TRUE} meaning to give output based on that of \code{uniroot()} and \code{FALSE} meaning to return only the estimated root} \item{tol}{Tolerance: iteration stops if \eqn{|f(z)|\.H}®w?МjCZVK/ƨΞ/~0u`SVZ$ۓOr Ok7kW6@{`j$|ˑ `0I~ڊ0:Khu/zw `r(dRL+T.q 04r )A[Y0g"o + kZSh 0ߠKfЌ@5^2Y`?ׯS8+z rvPiR K 0ڥu0+ j녪=&nQRm0`@۫Za@X_/T<JPmI D(w@;SmAuda@;hyʯh'n-Ki3څ h9Z@KQ~55ЪZ2 V9(Vb"д_ͧV{ h:JhfV MCZE (Na@(J>] 0eI{r h 0_ՠJhW;Jp rJjs h40e_" h+):zN2^ԫMx04]3$<6'?5GR`*(I]s?ˊKˣ;̆MWg{pML 0eQ|Rg/;"g@_؟ݖ{|({v6(asD& 8bʯ_Z<&ş2ؽ]}[n7LLMM \ 0)~iδWe,e9O<`o2w;IZ*p`!S|R_P^39uݩ:&}tǝOkvα8\ 0(׺rr#|Oo̾]S5Z+p8`KR|ҢY5.z5=osyxIEph`R|ѽ'Ń[oyvc6l2[X7#GY(GuPo̼z59}u2<|g?Q4Kp~ jg%9gZp8b|u'֛36tX :zcfգk3wR(/{.{|({vK&_VS~5|y1tuWYH1* 0h3͙vJVss7^Ϥ]nm}ٰlu_(Mړ@p堾Ρ]7-ZF[:Nә;\rWc?cJ)SgcxP֕Sߕ#IO`8M3/ qDz[r`|OPE=8r# ڃТ_h`uV-XY}Mߤ]!>oMguyxI{;Rڬ@:sђ;+g{4kݞ?8{e8Mc Z Z+:㨼vyoeq13c޼\s9t<uY-ZY6tI_ZL *;<|퉵[:NSp|49ANZv-cZ k tET_q Dh2uէ9˙sMgF@|v^ypmw;tH 0h"ʯ$e̋s朑bjk]9myWV(8YhNn@0D?hӲjtmL?{R\Ɠso2vS:JSp5/,l.;q㤗_LNޒ`+J)GgPEuԺseG1P:Ghh|O7e3#ۍ0( Dh0AdslCuSk-oˇͧ2/8Gn( Dh=1hɝ /zӻFrҥdהS=)f~PoY56o[;Ka?=o<޼g{tƲwRu椡7sV8 ?[?Oܒ{J)1`08hUy傅m眑KK)z 0D9.?goE84ѬYt{2wR8}S D$Iw}zN'9kޟS:auU^b&2ߑ7/xt`ruNRϲKrkN8ZY1tYlzKĭW:V1Qp 렑Wg躌tI1U7{i?ܵ=/)83( rҥME9G]p3wY8|0xy`p 9\Y1tYj<\V-9Fצctp Z<&4dC>==<ә+8w8tnKp9^KNJ.Zrge/uyүf:y`g^@S:u'o3ؽtn D5I֕Sߕ#MO@8M緭Fpߝ?7tŹ?gA˿գ_4z_Μ{M._H]ڏY) n}%P\sђ;sTq%蚟5neKHw*+4C㤷cf>kwu5yvasJΜ4֬cu/gq֛36t2J8?Ff?齏ޟGB(M*RPdfϒ;ϲtť3weæmKG)Q_IW?gyoΜ{m:뽥@ÌOȷU܁mg@U(h[$eskn0P̞sж2>qthw 0ڒ+FVJG}#k{P:Jq3mE蚟sYV ]^̣;̆MWg{P:Jq#mAtr+rּ>thzreq3(hyʯd1`QxrCfbbth 0Z+3픬]W-osȆMWe{KG)ΨV(ΡfsSumd"<7{sߏK)VT׺rr#,qDzq3:(h U/d]YJGxf|y;Tl|@+Q_ѽ'Ńٍٰlyvc(# `4%W13{MNsu:jݥ@Md<o#_zOSqL@өzUK=ˆ. >iK~;]O䁭7glbo8E)Ь`4_IřztmN*-_(8 _@hVܘC\6_mS:JqF 4 EU9͙sMgtOϷu}q2f((WRҙ@1dρ?}:ce@I 0J?=)"|76]JG)`4L˯]#9{r婥^:mo5:6ң;̆MWg{X:Jq4Rg_l`=S:R1ZM @x)SVUZ<&o_HVS~AEuԺs+Y P 4L:dĬ5t*PV:׳~ӕyl?RSo;`JT<:Fm˾^i'ܛ tS:NQU`^)ʑq# VqDz[r`|O8EO0ey.ɢyˉe:pXr ygХɤU}Pythɝyq_̬-l{4kݞ?8{e8EUa"ɞrksQ)/dbyݛߗtѽ ܔC&ς2U+_:aUyjåep U*]~uէy5+. (mćjtmz:K)O`3/%ܐzo@PuW+~Sg_Ztb<_R@>H;Ԭ].useæi=es ʿ~z׼\į*2g)[yE8Ty  0 ֝(+G>q5k^wO~2o)ƞ)(_u/-trkrfХI{q(*kz!-3G[:5?kݞ˖nJ)wUg"@ET}ytΞjSuS[DǮɳS@PU.Μ<yW*eeyGsY-*?T U} ?YU9#7m˾3/.?/Tmý=7Uz Xhb3weæmJG)H}FzΞw}޶/py˲reZp8Ty6Q^-,$x攎jgeYrq-flb_XEj5ڌ-W?#GeQiM:D+O|/wm~O~KG)ʘ=XТiF\sl/Ipt h }1C'SL՟_څ Uy0U3^˗7+.KRݟTX4:o]ͬ]qs-@;T}xpM~Oe{Q(в^:DkemX87Z@1͙\r=hɝ/uyүfSaV@sV^39uݩ:Jǁu("IqgQ1Fh \|k]9e]Y9t -|]._o<7t{Yܬ@h2U_h`u޺Y=NЄrkrG|$|Ϊ5@IT}vt 9_daxٯf+JG)x(@˯ގ9{jS Њ&2ߑ/=vMݿtbX *_ZgNzkVο1:K`6~<l9c{K)ƨ<@U.dj T: S齏ޟGB(Eh*_3{3/.3aٶۥcP A\|usƜ̹צ[: 4>q WScX 0)V+eskn0OsCnāq1h r5]g@پܵp?RQ SL*_3C&;aUR QL*_65tw(06/mLY:N1F3O0 \|%5OfЂvqhcǟƭ'>K)(C˯Ejt]f.+ yf|y;Tsatp`ѽŃ@mzYcJIOs΃>q0PU+;]_S: L{ ο?cT *_ӻFrySKthGwܙ tb~*RQ֝(ܘ@ÍMC>l`=S:N?@(W+Iu9Q]-7Ldt"PmPY5zk^1pA(t>teOc;ЖZ~v}(;ZG8&77;t"vJUz+' %ο)}J4|_s#-/gqdz[r`|O8E ^:dj- [N|(, SW?ܐ/~]Z:NU~/:s\^㾘Y}K6=5nWN*EN@ZVU4=G̹9WS:mk,ݛߗ94\_@%Գl蒜3st&o[h!j|u'֛36t3TXU3㼼eCYvVs yog̋Ki=TTEWN*`9.?goE8 W׺*ÀzΘޜ9t{Kh=]*ጾ`PU,Z1XPԞ?ͽ8m-Ji8#0j_ɼӳjt]U: @Sپܵp?RQT X˯]#yC&pqg6l*?Q8 ڟ Pz_N}EΚ{];f&mɽ[>c;Ki8c1h_ 0h#U,d'3QZҮ-7Oe&2^:N@Q@b5g)Y56--l}ٰlu_( gDE-W_P^39uݩ:Jh3yݛߗ~\:L@{P@bUuweG1X:@[?\6nX6>qK))UZ4:ͬ奣T36[ޟߑZc$c3h] 0h!U,=>/,tJ3_ʆMW,(T8*gν6Ϲ:qH2<ܽ}y414*_Գl蒜9t^ޱ偭7kOq8  T˯cfǬ]},C=]$?KGi8#5hn 0h2U,GrƬtvφWpFkМ`$X|uէ9˙sMgt^ypmw ;qΈ  @ʯZμ(-D)IOs΃>qʘ  ^̝vZV))sʦg\:J@y 0(=r}^9R/ytǝYo4ZQ#MO@806/mL7L8 ee(AV|%5Y=.G[: M`-oˇͧ2/`0ŪX| U@zٯeخ*1`0EX|v}(;ZG84<}?)`j)` T׺r[r9tZgqdz[r`|O8 e,SGjW,Xܚv۔{\u( g<O̞rtťF~YlQΘ& ^_9}ΟyZO8ws,`r(UeCOלq=cOg['nľq^_I2]W@tr;t3#PkF;rSV ]Z;G;gæ+Ԟ))TOsޗ3^z_82nopͩrOσn˽[ޱ41zjZʯZμ8/3r SuW+~Sg_Zt ^DsKN'?^X:Ρ]7-jL_Y:NCU D5U;HNGn+Vwd9/*D\3rEvQ( e/ 0^ʩɳޡ-|]._/y]^:NTJ@UxpM޾Y=.=̹dХI:x)V PiU; . "Qc"Lǟjo2[}t27;cfV[}[@e?#.\s[:NT/F@T XuYW|/;2ZgH`,\hΞw}:j=5L?BV PU;-q~Vp(d@|!aj=_(7h{U{̞%yAv.mjzΞw}޶;Y:q-q~|⃹`g3st9 RЖueХyGs Lx9^ξR)h+U;?#.Yt{斎-cfV[};qJ'60hU;蚟sYV ]Z;4[1uל% ֻkY:\9gt{K :sw˿Sg_ZtfS 4@=OϪk3kJG-ߘBלnfæo;O( e @#R5k$,l.] xQC'>{K6G[:NTl@yоtW䬹ץcF8@ X2b<3wˇwlgHSs`L5+tU*d'3Qp$=kܷS0FL+TU*fO;9x—sђ;_:Nܘ.ajZΑ4 IQCK_PV͛~=-h#sKNJ^3}L8 S$c"/K)ZWN~WV|$=-PV!Z}նll|S:NW0TW,XPVS~ UsFnۗ?ˇ.-av`jaAs?5g ʓY:J]p`*_=G̹9WS:@d"yx{܁'Ki#L ߪJW-,$/Du.EYzsĭW:Nep`*_Y56^Y: !ߥ4q&BR5=#7fХI}G;gKGicM^ _Q⫫>-gy_Μ{m:뽥,rwlG8 c Q )jY:󢜷>tIGOgbbt0)P̝vZV͂g0xltU6t1y 0 R5k^!uyj037]{t1@PAU*:j9yr('?ޔ}cϔ0Fե*_dsl(Ma-cw$X`Qkwi5Q~-6]Ǟt1@RytΞjSu&7IvT:LT U:s[s9tll|S:NC?@J$ gʪѵ[Q: @K۹oSr]ץ4(@R*_3{˹oҙV~YlQƈ(DUʯ>Orּ?MGt4<ܽyq˜(Z\UZY6tIΛw)=[oמ5cJiRhQU)dY5.#.~{k{_:J6@R5{A)+.MRYhlte/4)@kR_]i9uY>qxypmw;t0Bh= 0P+I:d{a(?}:c4Q*@P4*_s*GesJG0<܃YlQH)TUʯYyͼwV(#;'WdǾƪMdR|k]9e]Y9t $80;_o|W8 a М`M*WrsVQ=KG` <|?HR1+@sQ4_CKsȱtg̖g(!Z _3sy^,wu5yva<@U)Μ4֬cuwqv_5d&Ʉې$ "U*n[+muj+>vuw=v+[XPQm\ LΙ9|>kN|_ ںlzWeqWrPd̗礑kr@ yd}Q-X0E:5oE^}F(>~sn-;JGa@uJ᫧>=G=]/$Wy碗n[(g|?-#Om\:Δ 05KN)|% /{@׺s܋3:rgұj~B@sKN)~-~dl6,='GkȲW3%:e#SN^g,K7I?3@؛(D荹G[S:ʔE xF 4@rļKŝw>t*jЩY6ܶùwfJGj*cO~ yAPQxz.VW_34Zp0IjQ:pМ39}ō_L= rqxƱ4]74>i9i䚼qY^ǾsTs{M4ntʸ9s͙+o^ٻ8~$oX8t} F.udx9[:ϡYF@yB]|S-On}tڹoa,"S9Pg?y~ujk??xUo)j"0':eA3OykoφQrz3r+s}F8M)6uI`H_X: {0cO;Cܛ篝>ؓfK8x>q[_/eJ hPOϱ EcR,\sܖ\isKiN:'>='.@{*f4jv:Oܶ3>t t2`@G锹٫oinh4[6#\:Nu>sQ:F'Y\k6eь-iM^ˬe4BЉ@*Nj9.|OzfJkQ=F NN+ @V'_/,P:>itjq=s|9s4t=|ϛtm ;`@鄫fEW_kTA3_sޖS^y4U'`@脓ZY;|VN\L9tRϺY9`?S:VӸ?Ю@B'FfɼCJGo5T>V{ݵں% IDAT @5t>|tJk竒9T\Z'Xtp}[s{nzٲґXDZJ't|%>#}3-R *^.%뾓]Zt}])-NVߒӖݐ%M0{8GG/-:aOh?q}@ap4gA]xew/?cJkj^wGo,nQv3*ttB|W7ϻ4ݕC^\:PSsoEWkf8M =@{PCr؝Y?rmK O/υcwfl$鄽LN8OՔnQ3{3Z>kOv{ݖKv{:5_\\(Mg (A0%:{NN&篽t-~dlNYz}/:a_h= `@U^!s/c#]zt$-Բnxc.Yww]pE5B0@ Ms?LF+@ܕ Ȗ~'w=W4mit j}7oEN[vC~u9` Ki*G@I5LFuʺ1-_{r}S6tF4DՋ_5%0vsu_ZoHMU%`K'/~Tl@]~-ˇ^]:NSu>0u@&NFf,[+yVh]=>si~Q5?tů@y.\wW(?c9iu TU߃K kІ|hC.FNXtUz3JZOwY.Y>j]#5M'Ga"GpqaY?rM8g~x0Szg`OCOݖ-4l`ovůiss5y~8,gL^c]Z:NSVw@kD֓CxS_ tCfI?=<ґVvDgTL,vfH0 ZqL\ӹ=|7hj?Wb"3+.gi_jfϢlXl|N?t}-`*5;/y<-Nq4q9{ 1wo<;?Oܾ1tp0,F BU`9i,~L(tcp'yK(lCT=rqt@ 挕׮Xf-+iRvw}Zwiv,V O$lXHMa,"TPU/|% yfQ@;Heb{ybW?ώqv9T^:pмas ѳ '/.|!g[:NSU} :)=FG/-8~R:JSN Zy'5_)KKiu>E9Njg\4vWyj}#5;h} `b\E/~kVNXtU_,P:Nǃ֦-*ӿ*1g)s45)AaT9o9iu*iAkq[hm0FW9?jOOoan}]mg||{8McN='Gk'4<0B| VC^c;tSāU@;2`ͺi]a"e3}sx8Mc+0h2Wyy墱r܋S趵}BZ:I:`*,:Tw9`k5M{sY{JGi*[\,Ca^ɚ?pD^}kN[vC{*i!Bs)AicFetp9vy@􃔑ܚ5ѱhUF{˘Tcܓ|(lC hޑlX~'r4q``j4Ĝ t+i=3Q'|iH0aLƞdӃW}0ǟ)ilT㑙'{kvNXtU_,:t$4*`f.)KV}tgsW3WޔkKi*QB3QJO} G9zO+:q?@@i;Ʒέ_--ilÞPZFg Ǿ^@ek=9bedwrKSu޿?礑kxq VS\{tMDѳ '/.|A q9kgPq?xU>@k=9|ޥp2Լ@+Nͅc Jo}F8MQ}N tmEcwfȵ,O/υ9I7X}O[ `t*GsƊWܘY}K2gQ6,H6nʢǔ4UFGsr59Y6q-~dlNYz}/) {]:L*/Zw^8|~_ tP:Z oٯͦߟM]m;.vNSGWג'5%)~$ԧ縅Wwdt4MJ)QYUnݷ"-!9` JJxvUyve"SŻ>=GU+g\=]~+%3_sܖ=gwmKGj8c:`TJu_ Kݝ^MVu琹u]z$S)Q Un]03Oٰ#3t(]~\Y6qtڸFX=EͺsTތ>cwy Js=oɏ|tQ6 ٳIGj>-G̻4,xGz3Jvb,|enz;ec#5Q:h;U-|% yAPQv;@x~7m㌏o/)hWFۨY?WܨmbZܬ6oB8t,զF˫;{8'\0q-y튏ewI8MQ}Z=hiU]P뵞zrwkt|Ҍ<:5KNʗ|OpZXDڂ0ZR&X:>J֏\S/υcwfl$-աFK鄅̕7en1&ٻ8~$~. t\Wm\"-SJ{*xQ\ d}xv4myrC4RFŹJZY71;."]ґ>/Fb,@'q cwdt4}_Zщ @ULƞq:w97lKGi%JƔRdI9w9yu=tL):ȹb$:]0>ܾ1tP`*t|Y6篽#_Y:NS/f*)42}3?3V}^cշtwT05PEǟ$lX8MDAa4NW7G̻,ݕC^Z+,{P 9f,K5xƱ4=fDK'.JL^F#:GsG:y40&E[*@ >#ݙc\z@ gFPcYx丅W梱oel$۷Uc^HqY{S7?j(Mf,箽-,>Ji8+`_s^xH U:6QնCr؝Y?r$tק碱r܋+7a^^u+!1f,K9Ϣ/)᪺_sS䤑kr;rɥT΂Gշe7dwt9?=*oz;/>?/]{=tetY>lzٶҡMXTjtp}]s{N^rOq Ec94\UQAginș+o֕б{GaGU^X:NUu*!{3r䁿cvj}/7nmIB;ώ|fqN٤MUUK=kʉޟ=sub֩CgJj a6S6̅_G)~D w kC.᪺)Hh3{甥e>ӿ:_[:NUqo(*V{9zpάޘZ?@Y:>JN&}]C4TNU U3r7s¢[Q: Ryu.MU:RCUs߾ZPU@Y?Ӗݐ%$Ӻ~ڼq Y\8vW{qZ];+Nq_!:Y@g˻?wn @ӱn_8.Bg{|}}o<$[]Z^7gQ6,H6~> ]:No : +{^ vȮ1x.Owy`0 S)d(쪖usɺs+U+Q"^zs+s3:qN`uPu^P=;j?oLޞދ_~fin!"7l#5zSCXhkY29wm9yu>tR? ` ^!s/E9ϻ4Zک'4Wm\]xT@|>Ιa&i1{?}W>qʿ<4RMkUZhќ+>Y}Ki(uS^0V I#פktRwh#' phk5qWΥY|yoA '>eqJfGf,KMY#}3."i5ZžQ ^z9nᕹx[>'Iu-grib⮜sө@On\T:J)=."}+7ma涜L[:NCU:jbk}zN\w#"`M8Dt#ޕ6qǷPT b߂Gշe7^6#\:NCUN'?茞9vy SDros54NөtSGo9?/4TB?]:@T]#]c=]3KJ[1tj<9or3/!vO^*-ڐ ~#',J HW7G̻,ݕC^=]/*e2=J15mpnlh8 Bjjj}F.3-R :\֓#]K}'ϻ4ZWH ӊa;Z _I#dcKG7`:VS{ޜ{L( *`:Z?f,K5:pмaP4L/l9b[r̂Io}F8@Y1tj\M?:[w~ey/PSYkjj99v;szmʧGW%sJ.I$$$uǎ&mN~pO&?^r7ۉx_S]'>X:LCME!i*pteZqIESuD$54OfӃϦζO0.5J$9x4 )˒yЁ༤zӟt&=}c&ǎɶ[&y*yts'~sп4'@O}z[xeƆ'}k)!v֓UkXj9ſCJG=z/%'ܿ^Oz&vՒ:ivߊfɿ=|thV!!waRk('.@_{mcւ 9J';ykW|(sJiZz~Zy܋ro#]ґ`YX:A22Tx.Zwd9lޯ^kiTiR*d5_+i畎lp NbC9oWtp}8 ӈ:>Vٻ8,>gt8t P5w`o̝63Wޔ3Wޔ54ԥVWO} -|W.V oLR jZamm Y:>筽=/[tuzf0Qq(d _I-k>/[tuf.n_?W>tP5B@uo˺}?|}Ƴt^5>wǩڸGշԃGS_PRWOIwoc}&kzzeMY{̎'JoX U*~uZ.3Gmj ]rs7fIQz:WJ9sƊ,?շt3{P~y_fpѥ4̮=|o[;̽$Z}iߛJ=}5>=,j[0=|[GPH Q&F z;̽8ݕ))~TE-hdwr+U+!ڶbt9i3wؔhHʬ|wґKu[Ӗݐ3WnNꪏi/(gڦ5-:}=(<)rN&]Kg-?z^0ܼtez)=:I#>| k=9besVn4K+-`9kּj+RtӺp.X,|e8{% `#9h1tќ+[V:n13Y,T=4 ]?[ 0ue๬,ڐ7Inٲґ~Atղfh쮜誢/v֛#] ̺I\/՟// T:82TM+h]3z攥g3wq8?U|Pߒ,q|S2e֤lm[6arT{ҹGeNߪ<̽$i0`=tV g}`tld?/X&Gl U ;9sJ'*w55vh Ꝗwm2Iy{@zWrⵥSw$_R:4@S=/rU Pm'ZrS]? i֣ :1KN +Kt[V: 40x=ɜɬɬΝjz`20L{]jIo'?~,y걉_A=6ЪJJ<548oיIﴉJO_?۷&;%[$?~gbį3'>t$|%;4{C%w$ AZcӿ*"YuLra>*ޗ/雞̘}{{w$?ioKN,hzą #cɁup2}{k1Q}kN~;y{l 0:ά$(|@l3N|8ɷ??%wqJKsLLJzW OgΝDGҮ]Iܟ|K_H]d쟗_}z$w&wb\&Nt޶z=`NǾ?,$E/W]0lBtu˒&lo'۷&ޔ|%t{Ju02=uDv{#~?Ĥ&ۺ@xyDF+o ᑟ 0~2R٫wXmM<܇'>Dߥ,^!y+koKHvSԣ#~99S/8_}sny*$7]9Vwo򢓓cΘ(G%ubKK%Q:]=.yKh?vX %/8ib>Љ{UnC_'|+]L|)t@jɪ$ǽ>Yyt4ӗꉯJnWaK'`}-~fg$/939 ;Y{#'ۈ32uĈK͡ڴǶ\pbL ?{/NSM?N^~DWq*v@%tL9F3ߝS|ƉQQhȠ1t v}O`F]:?vcK~ubTcU^҉M51f sJν#Ӧʕ+ߍ>Z٩ޕ+f䄍_(v@[N YK)c΢F'1?JxD s{51w/u3.l(mZ:UY3(>t5gΜ G{9;GDagw#ry Rm`}K9>%<=몉yoNLP܃W[W~;1O gJ'*o 9C΍W>dp^4eۖ hW-Q8${բdoL_4.?O>WdS=kcd!:/tmtFE띖kK^xhxqc7O|tՓdI_r{Y;Wz2Iӏ(v0+-9[z32 {k`0wdȺ )Y~TNnZ-yݕɊJ'? $-YuL$퉇K'])V%q5qmϔNɴPœEǟ?NgMl䖏Nwl/y^E'NQ-M)Y;FWOryΝN@*'uDG/tU%ǽ!9䣿<@DiɎlPItn'g;Y穊Z-y9A/Hɓ?*?{Jc5ha} W%{wg݇Z )Zց˓_ ůFY4ǏtJ`N.Sů?yrIE''tjjZl}z=9>h?tU} 35q?/iyku0stkZl}Z-x^$K'a %*~rɆ(g㤪g;[(˂"wiI)FFoLLL~ޛB,Ęh%XP ,,laaΜ9g^c;gg9s>hQ:X9T,\[tc% 3Go&9ٿBztSʖ30KzaIjI߰$VZ,.}> ɷҥB^Ls,›gXg:6.d@/.C?x+R3q\ MYmuxq4xsI%FRsu6m;㬳H-lFkIj@ xG\CDG0ѥ@vw qOíR[. `sbɌiYgѶ3+Mu,=3/UvodKϐ.Y3:|Rf뒝k *Г =I~nK9Ұ)YY)߲"Dɹ="iҗ~%nIYu D x.0aҬ_H]c k=֙BҗuK;4?ߪ?RǨOYgTH^IXG" Nt]|`œڰa֯_J~hllT~~UPP|kԨQ=z`4_y/Koh_f^%mx_ڼ: lP*8Z{umL[ĝ[Bk߃c i2iתRV+WTJpt5/IYRnW)Э[}WnB t}(<ѵH>h*iKҒ\+ۧ7xCo񆮻: .W\QF%>`'gH_V": l^fXj6-s7[?PZ67"|ȕ{HER WTwyUwqRwNR46Tcu{0 .mFuEҺkMyl\/=HD*ֲ5D;|#^g$ `D&9Ҽm%.++ӭުnM~*͜9$1`tyG3Rg#nXC8DykҺ-˥no{n}ӤӤS;.xu&_3#.spM܎(]fYWnr3ӠwinQYVU&i֭;H0bj/ 5vu NԗXgqFǤyHF5g͙3GrenSkg\:wYgH+w(U&';OG$"8VEUZzrb& _<.Uczim I _|RYoӦMu}ij׶x仌j[e<%ҐIo7'Z,|Jjg+z!5#0@p*uuZXzW^yEt̹ߓ3rw?Ѩjc#ѨMK: Q~u&2DiyY޶m_ZgVCCu:qiJrI[4iQқ7M"IH_.!wF驛EXgrx[_4huF3OHkޱoH7T^κBgH rJrx㍺[w VU*{d&H_hk`yxuN:遫:}5ҽW(X@bq擫bsѕW^i7@8M J޶K;nr񧸑[;HPjj$yTa);:ifu핦֙^ґYgXBckZ0`_dɽ.DT]|++MH5{_N`/o?,4M8: uER$bTYYs9G֩J 1mn-ŷhqM>.@zYxg֕Y8ϰ@gIGϴ~kZ@hMNIYkbzSZ9.m%ҢgIH%"uފ6K: gxG,kRzu?{: k&G6/7D)&v4*pMl?s0G}LHe{c5 pƝdxgHS okQYYK/: Bӎ]%s3RNwԣq U<[ڳ: ;/n38 cv7vWkiz -P9&v4*tMl?z6# G/w>ƞĦl#m%cl:IʕStQ ktRs=q,MZn\ t:eRZMUoJ;7-J{Ajj޼3pfXt+1: '? %Ptʑ~a~icS$϶ikYê7kM@,&!EoVHygM*@ 6wJ޲g_uw{%4paw1cP3>#N 6Ge:Ht6D)bt$y)ZZq0Nªj%/JM9.ujU,ië748Q [愧%}Ѩdac9(o M'JޖFͰ!qǿr@bݸاؓ3n喸~  O6i{I@(yzRA4*-f6uҠq舱'Ư!=䓶I(2H)??$tVMc1K `n"lXoÀѶ/4xmo=*55m 10zI?3ak&aeB0V*mL/Yg_{]pTho᡾t1rݺŒa_3trI'ݵIf:P.>fa0FXgoc[/ binHU1Ҕ)6$Wc6p>f `PVIUY[[xq 60nd#zLɓcj;bT_+ez XZg[WΊv9B:.yW:Ws^3x0@f̘a{"ЁJx )3 H `Fkm|6(3K\lT+2W{/-]ۘf:f뇶)5hmesm8C4iǙ8[/pO}\UҮMYAmqlB::1Mb[4U;iI:7.u-Ed NFw]*t]|@ F'NTBO[V ,XA1 Zw@ *ݴW]VǠtkTYj@ zmx}j7,5fB\~1 (f9B0޳(b4j(M YZc>&n `1b[Ǹ]Y*IfЁP}̼Di=Zv eq?hTVb8tbbU+l6y3'F53rXwV4.m6@bwvEXv1 p `ZKK]t]l#t}㢈L\\ 6~{ؚM AV6>#GJ7U.6`i\u aA du쭶]+K]l+`@ a N>n`6",:_6~a"CqӬY0J)Ml:/_Uf?3z0`cw0H q~AU.6k`RPhzm|p6(=ncX vIvK<]_y.2zXgж: v,h$U.]3h[S]tFo#i=>&#jསi||%۰.6:g@- `tby^C]lp ` eXOրd~n,1a<-[Lvw v5$>5@Y~8uFfZ ߠ0ַ~eyB Aa7*8:,m:e"70W,Xxч ai5.Xި˛iR&A{X`$+.v>d;#.68:t8=RUv]؈]Rb 57I6c awR"r`$]ZffTx aoTYgHUvX ?8B3mH./$9@z w;3v J^thO& *.vM]lBD@Yo_o+#nܙ$Uj,>sK^wxt:dF]loƧ v(:lңmCug]lq@@cA.6`P `UsZLϔrJUv9@r0!_6>޸'IEC a`@g]=:uRx,icF Ʃ.k+vnw(~:jmn}lH9ޡ a.6p]vbm>G`%d}gp6C~h1RkbhRnЛjtآ aeRSM<)Ml_߾6>55ڎA h.0/߾6~PE:lpX ǓƳ[@$KĢ~sT4&v^RF"vI[ZDSD{eM|a!otbs]잃b;\a*b$|G1*]o"@+çm KKax}ݩa"$Afy'%wQƞhzQ"[?GXG+eHaf]66> %RѨ~#X08yݥ≶9lZj?ҹIgT.~vk' & uRQXvԣMl/N]Gzed[gTym|=W ^=-+ܢʷqm~6~efYgTitivM]|R`m^n{v?. k.3:cJGΐ2(`0$/:fݻvGΰ aqW4*u~"[/%uHI 9Ҙ㥥/ َ5RmMn>lb{YҤ9l+jms: `BS}W2 `E⏢ 5)m_9 Uy6,R0k&G?~1'v"oZg!}uץ:C+Jzt9( C'IEJ3lk Ɵj? y&ij K7 *~(mݺ4c [\"ĥlTn9/biA`[H~: %uHѨSOo4xHI @ݸ(ma[V.M?&s-l ]zPgEj`[5p,Em}Zgk9ٺ N|i :q[]Ҹ+;lk ҥӾciT:ĊҺEjz嗵{nFN7MC  =vO& 9y5N_(9: i$^cMܮm"5GNC^b#Ag,}0WvM~#Β}&>Qݥ]H m?Vo/z,LLKJ+i:)3=yԷm`igKq 0@z!(Ng"fjah>ij,Ϫ,T&6RӼyi&44R>k `NYضt#X.EmݧObLiıYuu`>b#DQ}i(Yg@j`" z[4*tv9~5b]}RFq{>5m=|}Q+Ae{?4!%\oEr4wz]|K?ϔa{9Ӥ'0@;v@=-57ɗᨆv4Ulגն5jM` ']Rvu&k y{{۶mx 4$I"5`.hwIK_&iIIߐcϪ({H?Eѣ;-Hxn9D/] KkvyzXUv~zԬY,R:@7~/u: qq@,WotڥR,gV`Czj[3F)"]*=:^mArUݫX.>Rӿo͟?: InL#s{:IA [Wگᐞ!}R#lHCmn[Gt >r &'\$zu],y:,?|m|)|숣Y?ҸB@q tRK}GZު?^i19v.Mb|m.ˋ|#KoF} >3}Fxt {NFge$=IZmOC|gdMfJ9?чY_H5.鮽HlvG&eff%1m}yԶį%I"*ws| h4뮻:?ŭ :ƒ ^:@?~bY&͜9.Yn={Զ,-]:?gɁJ9MXc?=S:lz)i`4ۥ|3 ! d6} }Z>ewK\Z6:eQFj= ^?C usėf{3=RkoNqOSO{3L KW=,=r@G0H~os-Y] oN!UlqOM#lkSwgtWsK{ť.]\-m?2:/O&-M8]&=y߭3Ckt}" `zVQ{u&mk)i3V:+.(Y]cΕMsچ3p"n&zꩺ˵n:Ώ:}s%/\A1p@͚5K?T4:K)ou$7>H7!&nFF&N3fhz _رVs4JLڗM8"OH 9ɘBr)aM~pHzKW}nBWrӽ[/`1R?QgINߛ,oqkSasgjժUzGjܹsKERҲWgxŽWqF4HWh:uۮt]Ha˛F/L?-K,bߒJHߕ:WHB(i8wo?{!1'|K:Y^%%%Zb>CmڴIժVMMѨnݺgϞ:gTP) .47I8um mJI;KwHu{ZVRTJϒ2|)=N䨙?ùauumX"mPھJKKӸq4}t͘1CӧOȑ#c+ߐYQ^MvN{voS{g| IDAT2sl޵HښU\\+=;V+Vh4b?TuƥnM˼KpS}];J/Gi ~[u6Tb$:YHvu&HG Nk\QljVX|[իX=D}--yqǟؒ[Ҹq4nܸN?WZ4`c:=Ss{t5RCVGݽ}VUڽM*sRmG}a EL555Y999Snn_{!ChС:t ѣGn$PZRjǤO:/t#&_9C^ջTORZu6uk*I6I޽3jܱQ#i&-CJp<9QPޏRA/k;ޕ `~Թ4!2=sK+f|F3v>hZ9}c[gmrͰ4޶(ö/3G3=bq:94*wHwñ§M xt'xnf4``B?1aѣ{Pď3M҃?{^ ; {$HC&I%oYgxo=*{u7H Jĭ%&{%Mu&O}Jiiij{ĿtS~:6d܏S#{  }5ҽWI֙O 9?:E5#{[C m7iѽ{$Fp=[i5֛̑ƞh ((X*,=h?;:@m+m$5eJCD R[:Oߔ.U=:҆%}E^ ֣ҔHxDQuۺsZ'{pHh\^Op'+￳NVKҷn a~6l Yi%(0WCbiݻ֙P ynhu&V.VSO>k:Ll 0:HM(sb (|JۏYg˥"yTa[HhT{tUn*}Yի233Ӏ쫑Bzu&eX7X0M;d s?bc?Exe/Fe7bZCy:;#VKbu&)ixiڹ֙؈D"*,,Ԏ;S4I_g\&E($]zÍXq3_p;OH}]ڱ:!eZg\BFVL/Q=m ֽ+U_ za|j=?t,|~ DBi߭3A$_mt=֙$VZԥub[Hz?uyCXXh;OZgb{)V[E֙_~ua"륧n>xYµ_ ]=8k;/.=\w3Hߓ ]^FڭtWVAAu RiI_NQɒ[78t|o"_^-55XgShO:W r~cO_Jw^BKѨ錄D;fi"[lM8Yg `@h^S/[g2s3VF閯IXg>ĶQҿҢ]A[tES|X\F>v}F=[˦0@,=toGΡFܸ(#ljʥ^d47K n@[evw뵾x+LY.]S@Dnͼ>'ͽGj(2- 0@ m\*mei/47Iu{mvE;.&~m \wI*\RàލIkGJ+޿hɖa h8tm( p4);fZw\N*/lRcg[W#-RNlО-ҽWJæJ|} lZ{9U7J~Qʵ*x(bš@`ud5Y"UlX"=pԽt,iYu&ۥnuc/M)H$-M`/5]t9Ҵ/HXguxA}*-yIZԤ˗kz`}iVþ^=2Ip7ۥ_VsS(z: j_8̑F>\*d7HKkJJIMYˮ{#4(iҐ_VoFŃ-+ZZkJ[Wz+lywq@hԭTKZ$t۲KnHDjj݅}n.rWIRFl`/íHZibi|wŮk;ָ+wːIHZ|n:ZJ%%%*))˵h"xL'z7W\7I3R%Gu]w|X.`@Q}$ixw<3v,6.ΗovJ7Rrk#G?C!T")Ƚs݅,)#[Vxaj_]<.swdOusֱiw{7l+/!\4*Ul6ຍ׿/m/q#$5Թf%oz7v<=gEgzI]~{&G=u:ijʥ] wow]^B57һ<&un(>tw)pWr|)3"~^iRW{pg*w\Q/(Aջ?ijʷ uE ۬3(sYn|#qײ}ؖv:n&7x@|ҬB|+c<h_,-1>s_@|@Wuw wHiI c//>:0 0 #a2$zt+ ~G0 0 #KFd{ @C /:**@JǶ2+YYFpÏ,+xO@P ^9aDv/yΓ$^GV  >t T( T 9c##c $1<:**@V9_[kN`ཊTk0 0 #iieM[?\s0 0 #kߑ1 @е:5 \{1 @W+ a1HX:bx!Lx=PPa"IBzFkRQ,c¨￝Xu0 0 #HT@mp, 0 0 #HF|-RˈC}t T N^}@xA{ޯ޾'_9= :**@ ^Lk;ȣhÌWcswx-?:**@gDKxxm?O{ ^Dx+`?ABBËi@gXc '6fu?i$:2t`e K~"`Aq> ;:**@c\Bg0j&vDBn3%O4( Abu.>:**@U^V$oOXAVgABB i@XG0^/q hOBB0ĝKt7gE ƱX?H6:**@aAF-㍐ 4[}G67K'ycg$BK ?7}_3c5W(!Y)#K9H*$u-I]BK/eIYRF!eHJMX'JjܣR)ˤ]RifWpkjW@Qhvq@0PЮXF0><$-rpģI7( TM{t^,D}\-q` `F Pw[:qqx]C BDM7PPa" O$1&H=V=ds $[ؿt TR +#Hq%S,*~}]:PPa"1b @T=}$[ď0 0 #1 ss-P@b@bPPa"+Ɗ$` `w/WY@Z̰p 06@jSTJ_|n{M'!Tsc4t<W^a&7|WPú~? 0RaYӯճ VÛP_7#T}2W{:*N"k?m?{7cY`$ T~V"2l%"[*y"V}$Ѯ8vM\T0R@8D0ֱu3Ɔe!ټ3'Պ`.*H@,Z\)Z6(mNZ{{e 0RQ|rmob+|y-[TϜ] Y `"pD] NakN,mm%ؕ4ZlA_- `"!IymTg#FA0Xzlk]XqciGn;~G_o `"a?z/њu#lF'u@-obal0 0Rq@*"a"wv `$w?<[W9q\2^Sm EJQ~7`< %O@^wݩпٟJ*]xT0R tlw3Z{" OEnu  TDh/D۝_ѷf#P@*HE"$t#̯gF٣xH:GXP 0RQ@Wgob{S}WfxWVom\3W։=T0R@swbD}-Z<טC5 #w< TDHh4F$snY"FYFWywM IDATygzϋsN8 9`f]9뇞1r6f\@]"|w^~> 0Rq@*"`Gx8Q_5>y~Epe^gckى {F]kH{sm~ TTe~,}Z~aNݕ27DhCMohd髳눼w?c?8OUu#zh}6ZoE `"1WdeoKs J?Y?ʵ}J!]magm `"&JGB""+53>t'֨纽a9kÝ9b}G|jC /{"}O P@*HE"$$jZq6CO=Y1F.o%׳m%Gu5˚y/ZElT 0K A7(8E병+2;^{{ ϒyEg0{#TGsލ8VZ>ߖskQ@*HE"$4r,mJG{FWb>y=W܉,fGhxB,;g2}kll*H@@Z8^L5>/Zѝ{Y;h~Q﬙s{\;`>0 `"JD+f>Q)_ 0^qv5>w=E^^K3%d TTAr#W04|v;WO*Jk] Ѹw4Fw& 0Rq@*"a"ψμkgn4Z^W`(;Ju_ѢcXm0_ P 0Rq@*"aRb6EC,ebb#obNFsVJΫ,PP@*HE"J˨)׺[ő#jE\?E_G<ޑV>>s.~EV 0Rq@*"fz t&Zp/H'}W~n^GfN ?` TD ҉3FIuNƵx6Wx;fkĜV鑌{0` TD U{M#-^{w(}mo?SgJ~_}6K^ e#GVzFR@*HE"Jyc#ϣ(kq=gvf\9~逸r12rP@**G"%o$3}_8ŒQ+BTweܿϮ^Wqm{U*HEL.›YЗd*יqkhwO*߯'R@*HE"L"ZL`\4ί,uDk.n+skGs*s=6dY#  TDv%${#>J"Q@*HE"-,d8DxknG#{mv>rM_%bC\Y3%> 0Rq@*"R䘥q.%ubm5!+fZE~vǝ0bGG{kc*H@ɕY?C,5dy=-cn01ўZߏGC<o<yGeO `L[٫ξm2mg}Fc:kFQ"ZQgF^QY'E{ΉT0Ro#D0rge󳟖Qţ!yMɶfg1T0R6zm(Q4伽+Z,VN5F_?m.igh~y=!|ED۷pWy;ں٨ `pCm1} =`{m5>38[WM=, @[*H@ JbP#8C&%?y?lѶ}q6έVpky}D[׵D[3g?z=DD8 4۝9|4_#{XK23[3o؋=V,"G6yp2̛ JUsơ TDԝXeDt6/#DX;s{ ;zS5k"g*<ҎUɱ9Dh*¾e1` ̛edSk)QBV!FiO~mhdʗ^իVӕh{ŒiLc96!ku}gzgZSdzF[?U>T0RaY5?/lIDi+WRK9X2sؕR5ZtY5򜻫do3mD_ՊY\?׽ ܳ?m?{7cY`$ T~x"BَyyȪ֞d"hgdgcae?Gqg ]gD8  #ZGY?FJ5:?FQsG;ZG5|ޝ367ӵ@ *HEEVXj͟+\)Ns,UB7Փ}dV5FnFgͫCzS@*HE"DeAmgs,slV՗_?}u+B!j_B }##& 0Rq@*"*ZL՚S=yES%[5rGk} 3ˉ7` TD De o^2ο"eʈ2v:{}8W2/޺^S{sŝv>Ϋ+}֢Fc4q5s rQ@*HE"EDՈUPO>#uaчud|J?v:ko_=<žGt4Sʸ_ `"[ y!F}k__[}t{=ٳۛk#ӶG^s⫡o]ۭېN[ TT]yC̛8}Dxm7#K^oE5>iq=Gߑyg6~سy{׹w `"Nٺ(v" d} hg8oFyhVkE7C+O 0Rq@*"JTh1ƴȪtRmk~nh!F{#ZY^z !9< TDD%e:[EȦJ}jE{UmG>4^z}Y}X-ƶ^uvѝ,q٨ `"HE1F}݌7Q"=)3|>m;wF% `@S*^T}cjpsE}u}GZmi58:=vK8 !R1T僾yo}|ihdWɼ}gm2 0RQ ΛXތ& Rog-{w9D`>ޙ\ T˲t_gjsfW#œ?Yj+eS`Yڣ'yւo?ٻ˲ `c(BDrZ&_x~2/!;{@g}g|1l9f(e `""~=f"-Bc ]wឿGp5"  `_֒7UMH£گ>2W-^bϘOh)` TD |@DVQ<tT[cvKUk"r<"\ 0Rq@*"E(A&p.Zv/9&od⤮|o3QzKkqUg+=~T0RLg~29+m|_X_(zwP{Dd{}*} 0Rq@*")=Ԍذ.,LOOZ "*둯Y]STq*L!kq5P@*HE"@!0k),!:׸#vm#m.e3k#Ws~g^5 갶T0RLN޳%(}8Zhi\k0˜YkfؑI )ZZP@*HE"0;OoU RŹ0B/K^SXGۓghfG2 h `}Of _]ɷvݧzDx;m(1칣׷"Y=0/` TD |ac^?h~0rs bsZS@*HE"I׍Z2^yY2ZzN>g:F>' zR@*HeY֐ӯճ D0+s?qI鵏8GK?kEm"Ѓ}pO7@\ϿnƲ,*HFE*bInEEX8T\EiedxVJʏ0m4}z{Pv_ ¾YH7{aw 0Rq@*".[E{P.-<I.kPk?Zϳ 0Rq@*"Z@>=fz6x=;?'.1/krOGCT0R@~(-p_w{}ܙ->۳q,-̡[b? &` ॷHJ(]E䏆Ѳl]9cWJYRugT0RPH}1'$Z 1=chs麌vx2.UT0RPQY |FdU:h82GZetg]ZS[- TDӓh%G` TD uyLɱ{Ж 0RQ ~=+}k`唼/˜ TDK"4y_\W{{qT0RaY?/l珥VĆqOɹdgyom1C}_{99a, 0q@*?n)?o跓9 =l׾9w`~L!+9'<3;*H@xd}9{x$JjSҌ ׺{H#>kCo*HEUyZoSʟ^z](l9 g`Kj9|ų\ TDS_g4U*BW@~xg%8 TD)OqwYd[s*c_)q%z!S 0Rq@*"qJ} PiLq@4^te_o!#FP@-}O&g{}ҫ|Yume1;9hI8 \!J;#蝞?)6 (} IDAT8"R@*HE".  h`0qƛJhdw'k7J>+ 0Rq@*"(⨼l_Y~;xglyݓZ/QtDx6q?J# 0RQ@U>/[-{Ҿ;GxAOܧ TDHLDPR:s}{+@;7R@*HE"6Hߋ} ` TD  gO2JG~JI[y)h{} /` TD ;GX h1Db;7ag9 `p[{Cho_QIGs#|W&޻e 0Rq@*"h ZbJQvkٞsm}Ag (renA8 `9u`o @/+۝>5 `"e#?F]LP]}:#_ZG0}R@**D7k6˝Pv.iڬ:<j+9#ͳ?o `"n8*̧dtkQ+=ܹv3oxB8 PZ~?Z_WhqwG61(|=\\q_DGJ@n-ϵpF8 PQ}ɲ%pO؍6"E$ D⹠'퉰'DsFJwZk6xPS9y=7{F[gֺ'>` TD  F(/k :+ͪe$ ̱m}~ﲞ>S*H@^_c(Yb#5y?`ߝh&[Tc[Y$P8DZR@*HE"6Ba#UZ1(8y=ctНkyL/y˚Z*{=*HET-Ro0!*e?c2jo>Gm4f}3*H,K:uz6=1Z,MW[JK#DeywD$2ϗd TTC`-e&'ܳm"rkT0RaYm;kP\"o̲r=` TD CF:A~(8{2p 0Rq@*"19"\ՊR僽Y\yp_lK#q6,0;Q@*HE"(`Lq0J[zT0Rm ۨԶΫ[gpT0RT2󈈒5#'v}( `@z-f/Q/P v 0Rq@*"@v%G[Dd?rY][F!nc*H@mۈ Pr8[DZwT0RLeXh>` TD ,1%"J> чT""` ۞W~tlsxds*H@T):ZgNr0_Õ{5pѾ),` TD =G}hY*H,Kךuz6ɕRάJGYKDW+q+:rQn[ϿnƲ,*H -hoGk` TD ܴ15mC 5*H@`J#DRiC`t%#~ݳM8 C 0RQk+_tFע:8 TDR2JWZQvoF8  l k!n?W"Og?T3` TD 4:}R@*HE"DָQUn e?_=@r%P0h\ Tʏ0ȑ!۶qv_s?7` TD T9p8D2X?s 0Rq@*" %8DFtgy `jGP%CD%րj0kg*H@ %"p2DL,cR@*HE"ՔCFD-b>$%,o?ٹ5ߨ `"  `QvoZ{Oj0R` TD /BhoUVb}/t@V Ȋ DZ+T2P yq Se a'Y@Vl0J]bk6Pl0T&Jpt㟗Y37k _6ȊYQ1Xq ;"u5X>C_ `d ED]sN"n)#PJYV*5cyTp}۱0>:FD 3Lh!+s3ݛ`@;'Y1 +*lԖ}=ϕY1 +*NR^)*_!: +`dE"PV]wG囬~0e-:Dȏ 0b 3qc[!<Ұ*xM\/ +`dE"P)k%e~So @ 6ȊYQLI:G'RY1 +*h:RUP\kdZ~(T`dm|[ [sı:I 6YaHY1 +*))eM8^?z@ +`dE"PkݎrN eZZķ@ju%Y1 +utoӮ.qTRWȀ:CPkvv]۱0>:FD 3`d>uHijԟAml`&Rn-C5oM:?[Ϳ3Y1 +*:&Zc}*!'ԒzUj5b%_#JUud ȉV0Rk#\/-6ȊYQ@(eeLGp݃0X uF` rbx6"l7yH]3&S[ a p* UU5D+aR +`dE"J)SMyxr%\s&p,מRfwx +`dE"*EҪ*-P>+1 a  b{8NTf؉p=`*l0x%W)j{45j `d @ RM:3g>zY1 +*`T୮UZx,\x+6ȊYQ@OVj&7nzVovY +_Vj W @i`d @`R)k2ѮwV8D\{m{6`d @Ts}LHeo;[ҚCe5@m@V Ȋ D])kpX@iXO@e8\>{w>6Ȋ 0*t(ց/XɮlMt<@V Ȋ DqKj s!ǚqY1 +*0I?Z*&,cU F5hٜ+'nca H~iWm8eAϨt-Wmcyw:Rfr{|rVi YH)G۱0>:FD 3tjj{vTs_rԊV8vX-G[ Ccw? TtnK `Λ@C8X|[|o82Ҟ:"bgԝҫ_׵H/^xa1ZLH6Q8\K/?űԑxC1VŲŦ%9ظCeQR68|Z>KeJfͪ*Xrg<~ETwb4vלٸbbfԡB814v8u ɜ9kA\7oKcڥZ*/*Zq'XVIy@rvkV{FekY. L5X|{|oq*ΡcΛ~ED'uuP]̈qy_Sߝ:%VsE -o&~N TCʣDZh{>u%i{R;4=V5}4V7vTޑX|[,o:W{mYXf,"bWxg]\:_3L Hdm1\8:NIUk\]S48]s>:eT걻/[u ѵ`ꚺIt7RR8bzC TښT  -ۍW#S>8S8j__Ǚ~%u$2Q/NhgljxXK*}5"7&)ս&5/i]]'ԪBq$^uJ1g#]bWڸr]qQ?ԡ`#R7bcch;u2\W N&!ؿ:cyqCT0a88А:J񼵚@Lk{cm7ƁeuhpGnx<_91JmzbMm?z u(Lxxű{m8%ܢ\|1(Y" +qqE1nvXp^?^O+c8U)cWqm=W`vr|ރzK=g%4qCi8%c㔜Wy+c|xx(F!u$2d,k(6,nY/uWgn @:wV|qxhw8%㼠M_}??O5z_K*58z(ַm8^Y:N8#tuE""NqZ\9qQ?qֽwxnR(:g[?S)9#tl%H/6/.-S5G]ܑ+9@1K(pKm=Y8T[7GqJ.dzjBXX3}gnxwPY8N"pHx}_P8%gRYSuoa(DCuxM\5bbfݬԱFyO * l;O~ox_g}4u` vm}/Ć;Qˆr Xx|qppk8IX|[h&WX?'`,7Psxd%N)ƶ{biй"":>G*Hԟ>q?Tr!@J]wEaJ("9F;cCˢv㕱spoǶ_OaVer]RU,c9yG }}In,#G;R)ҹ"~zwK,@j {p+6,^)uXX|{ï\9v`5, @`cjhn%Jbƚby|8%7O"o-⌺9R̞yf8eS q#*ha ^<@1\8:NYw0 0""ߩx8<.W.bq,u$id,kx_<Ӻ8WL őXXxU=1uR<~'{9u>xJRq6(r&ƍ}_qˆrF度Z(+҆Ƌbq,u$ KhZ.MK~zL0lrx  -⡭ǫ=R2Xxm<nI,r=;@dZZqY4SGx[a꼏r92?l] +#"{S}Ԇ []kqɜOug:P%F Gc㔅)@dZ:Ve +F1 #XL,_SlDXrH[sGX8kSGH!Pj_ -ȳ#_Ƕ_/|-u v;ۍWd;ܗRWJBqҌSʹwGS{Bq$^Fllb uSF T`T\/#Ծ$l t.OF=mƆE_0 (9 ;n?M(C;bu-Λ@C8ey.O"-Zĺ;wֿ;uƔm"nx~W'P8ea@5ONXrVB4tOs?3fV{㔍B"/5ڡLxxű{M8 xbmr>%O*:9n3o:5B"}x@z[ٶFCʈje_4G][qIcc=`й"r~|Km0jz-Gb[[ΏXH@DDkU,k(6/`@e+E"YȹqłӯO\Ug /_ -bMq9Fr^r|go[{qiu{ۮv*y~)wI\31k)D6bcx㛱 14֓:N+`d'V- .-#/Ԛe ņEr>G02H[m=7^}?J9-V~'q"sSH"5!ZĈxٿ7WqIR2Z28z(6/:.űq8ZR:L {b4t]#z⨟qrPP Ylgc``8ecE-RHMywڗă wCㆸi}1T1Ukhgq?\CD5u?k={RG)pl1e`36,o7^{<:/cۯ7} x 08N9oED_8k֯T0`vd=6?|(űq>`prս&5/i]Å#/(GDz 㕃K~~ f'(_ҹuTah\;G\9q9uS Chxs?ڑ:NzA@2s1=qwRG*D9U Ԏ=OņE1/y(/P&-w 5o)_ϛf}ޔ!T 0(?nG]ܑ::1R苍m[/ƮUMPiT 4ʽwƵ|!.1W @)g8U9)Ɩֻod_0e 0Fв(zqqP}?۳~~$Fg}lA&rpnYn,#FB_ll'l ᗭ/ȏd$Bq$^9467^c㔕PcrED~v7G%W:SWT`@:MO;{Q8&Pcr__NJ|_@ ?+$}k :@rb}˝֋՞uU-oO"}-I3N+W[3NNxjW8/u|#6CcS)+8`@3RMK bKqMsxdۥePS 7~3ko! 4u94#V794SVq7pbT ʽ.fݸǩNL9Z54v8b8:NY9N}@euVB4tOs?3fpB^?X?lٟ:NY|pT&zčuRG&ay|Zz-wW>8z_xMbykoPZ`1ȶKc}˝14֝:1R菍m҆ sED{^S Q@y@NH-"Rv|s(fDyk畞C(b4v={R);GTNH-hglhYn"Z<:PoǶ_O5W-;gLI-ܐ97cu-=j8@ 92˷]{lJj >*ʽ~)wI\31k@QW]|ycx㛱 14֓:N9JPR߬}ƲbKKf4e ņEl}b\-ܸcyUq t6ƪoDڝ:NY DrE{qù4/u+_#=ۗ߈Bq4ur L`@cS-mha0u ά_%d VoEc{s2.|癩56X;@n -c`K(eH0j߹k)}k|oY8@s~9P $jgOScݞ;#u B_ll'j8VSvpT6@rPxwU+~*fJV:DU|sc @NQΕ?㔝fRuxuq<SA{ߏce㵱_pT0bMҡcΛsp[8@ƚby|8eW g:@QTZEQwR\:_3LQ ĉT)?jr SvJf H6_(ķ/?űԑd3fUG"p4hxs IDAT?ڑ:N9"rd J-ܰbSxhZ:deOScݞ; ZYO5ؒ:T1qʮVOڥ^-"Ψ_sԿ+uhQ8:Dl#xaha0us Ԋm.AX8\Wǵ|!.1%Z1t}#R);/֨@jF-  -:Tkcm_RԤ&:M _멣@E:DU^Hk9nMjT ZF7n8kqIsS!@e;jdXq8us pS&b1!X1 й"?W[W]3f?߬+wEqQpjn`hp<Ӻ8j8vuIZbm51rQ0Eo3o:@Vx=-lgsE(q-@iZ1mYl4#F@F x/@ J-A8\K/?űԑN1VŲbS- Tvr0T A"}EpįSGiUiuSͣJXrgQYPr9-~o[{qRGFbݞ;b ( `eV+`3f%s>r̚yF80-Rng`:osmqXa j{8<6\\(@k~25\ZV*4Z؍qxhw8eW+F"@RQ? }=Μ˩@MGtS@ K⥎bq,ui j pb4v]Wt\=oq89u(Q8?|$ml LgZ| ZA)Ŧ%`oޢ<:BTRiADHSssc^qiE$8s^z3 {z'@CkM۠@U*E9ӳ/b7<.ۖ|R\-=y/_+ |I^s«oSν6s>t[kJOigV 0&QKCtI‡rtb_9L7vneWZ? Tg*;G~'^\솴׺JM8%[zNC^'l`s~+׬jV/S}31plܘ}GqRh~>ĪW$~޼|Gkw^P\]UtV 0R7jduY{{gYol;ޝc4*@@ ʿi6Uݗ_66^,=!/V>Y$YڼeqikO!!<>t[~7RT9 \ 0;x UH{w7glp9T}1u,Oߕo<&ώ$}4s;ؘKi\z@9>J\ow+ PU,VgOF ݖ4DsML'JOj<+TO TD>7n嗲fKO_k>資SZPUJ=:=/mRxP1U=_stbbƧdmfo0Uy D g/UK?ZG9s>{?UϳݟʑcoTX;>?g?0?≠=Gv'2JϹ1oFfCߦսxCV7Σ?[T#8e?땉`N~vr벶n_Tz:ݗ'ܑå4 D~A>1Uݗ@ U印$Y6з9^)d:1[zJ8gp*0~*E/YS^ױ<zf 8eU amr+W|6]m JHrS;F϶[sb@9 8mU a Ve]I |G4%oV;Y߷9]z P1<4</JOi(gK΄R-| W';r'g]yjy0ΕL iQն -d\׺KfzstK1G'FJigJR[YάYSYCgƌa) < LvU`I볾oSνEcCd4$3E`T):rQχn坙qN9@:d޻21uq` `̸*9g;~4msUϳݟʑc)Fh*E$陳&ݛ-WMfϑ?p}vyr0j!lkos~[)@aLJstK(A*ZWޱn_Tz`SZwhu/ܚySYf&Ԫ[ϳoSΝ{q)O)=h-J!\\+qn9/91jr{o&c43"DeT)%IwYb͹lƴ׺Kʫg*;Grtb_9 @h9U ag\Oz񵥧@etl̾c?(=hU-j!E~զ3@ecCd4!NU-:s벶t/.=f>|w+SKi(Bf Yj!lnGO޳stRH=;ޘc/P΄&JBعޑ }ӷ`])> NS"X,l۔U ֖@ ~6fS ޤ*Ջ{Zw_z px|O-?듥4 PBXGܼ܏MWۂs1r }>'&PNu0=0U`Ise֭R.`x07ϗpt0}0FU a+_ };ShawOs' ^=WޝKܟmC噑3U(=``0:e7N{T}"?f9:1RzNC9`U-%ɒȺ_ʚ%/=&⡇?1#sA޲۔sݟɮ*=0hZG.p֮#:@SG}<9LOPNoPT-%ɜ%ּsGV(=Op1 `PPCXϜ5fWfО#ց3tSι  T1^|m6mYݫKO`ߝGw:;G$ə M֙K^_Lws8SĞ;26usb"@b[й"Wޖ{]js8Mx0[_xPzJ9@sIU1-wimʪWz `:1[zJ9@sU/ղfr{-:M=gSOPNi0hՋ`Igۼ\zMWۂsH2Uώm֜|W{o&c46 Z\CXWۂ\쓹rŧ^.=`Vg*;Grtb_9 TDC̺ؒwf͒0+tlؘc?,=`v`bKm5ҹВ 䱡[sSpGY!֑z>u+܎sJh SG}l{W&pb0{ `0U18;W|.]j4zvv1^*=`zNݛ.4=GJ>?KO)) AbKՋ͆9mux|(}!?xgsjbk]y?/}Q9 5Y3#}.cJi8/& *!lAgo5Vz{:p}Y) &@U1%yMYSfľ3pSp0!5KޗW}%+=`Zx%|!;Fz}s*ζy|MbhSz2Uώm趜|s~*F$Y՗wžpZ^85򱝥 x]U a-Y߷)ν7O)='-`b-| ׬Ju[z/81jrڻ)4Sp*0T1u+ߜ˖ݐZW9@3[M9:"S%,IΞ[fWzTKI;SpNmUrܷTġ<:ݒz'g+7!֙K^}q9,5>u4ۇwebx9 \) 8#U`I2'Y\cKfzvv1^*=*`:`j[6۔JOZ ~"$Ӫ!lk޾-<>t[~7RT9 4 vU`mss?+ߒMn>gF4ۆ>K)Y )0ct柭saTgTz 0^<ԟ9l)E89% `@QU a-:6e܋JOvߒ]UzJNM@3ji=5$:W3Y?QzNL@Q6}I޽Sl iuzstK92"f#M!9kV}5SS4td{6fȓ4+ hJU`Ir Y߷9̹W846G>[T43 hjU am\=K~n|hkyb:\zNNI@+P6'Y\cKJ{^{"V"-,I{g6mʪkKO{tG\JO)h5rV/6=kYu~)0x9bv|=d9E8JZVUCXgۼ\zMWۂs`֙g6\zL1N?@ `@%U9YkV}5o[KOS>@ `@U9^|m6mYݫKOish|wݒ' IuCX[3,.k{E61u,O/O ߙAeIDATC dA\{[.>#8-x0[_xPzJ1;H%Ua]}jޣϤ`c?VzJ1:OjY}z=Yc861ܞ#_O>YzN9oLxՍ`Igۼ\\Sh[zd>#gЭ91ybr~= T9-Zuwž&^85?*='S'*,VmʹQz ObnNpji=+e0|5O9O7sqxs07!\\lckݥ03[M9:bkΌp–tf֭3kf=3r쇥L0=0iRv YjSΙShA-9@)8L/ `U9:sQu+܎sJO{}]:^zN1N3OUas:U+>K~,Z{94zvv1^*='#̠*9}歋e)4Og}RS fX#X^|m6mYo+=//#LS3 @c` R^;aޑ@<326yb_Kh*\|GRK[9̰<R @@U`I|޻osV.xO)̀?N *=('r0jY}zWc'^ɶ=_Ȏ^,=0&P6//)W,9msJM燣vߒc/S @HCآ#|N pc^>bVd伅Wg}߽9wť|"N)E94' IU9Җ z>kV}%:-=yryjLOSs @s\CXwYb͹l iuPiLe? ܁?1i)E9^,VbeY߷9+_Yz @S=+ ܐ0 `PV{ W;;PWmOS@u`QtnoNGۜsb>~3%&^.=(j*!lIod/e͒0^<ԟ2roJO)0z{k,{Q)jdoRs@ `VVE=ڕwd^sԑl'O9@C؜%yOe7Uzig*;G#{K)ʉ'Ξ۹fWz)=9l>CG,=( ~?Qv w_zN)<9%I5x=֙K^_Lws$SG}_{sr`=+>K~,Z{9@=wl}90B)E9cp*0NICزy̆MY`m)@=#[6fwKO)!pʪdk]痞r&F۳c'K)%pڪ:s(Wl2S?ۆn͉d%U=-\u+ {>? `zppk|<\zJQN) 3R$+_ };SC)Ӣ!\\\Vz"O{3Y+=( zl˗ݘ+W|:s&UTvnÃ7H9E9K00fDC̺ؒwf͒4=2r쇥$L1U`I볾oSνWOu+܎sJl|Hߓ{srQ0!lNٹjΥM[`ydrd|h4 zK9krM߽yۢUz 0Cy*g'JO)0’Ջ͆9m<9%I(IZWޱn_Tz&MLwflP9E93 0zK+rUms܁u8SsbY`4 !,Y>ҬۜU *=5}&3pSsZ`4!5KޗWݓE]o)=%&F۳c'K)If%д:e7JGs1r ݚJ)9f&Ԫdaת3|0ܘ,=8gZ@K’,6ܹOh%-!\\\VzZ'&_͓_S{d} hE-,Ioe6]zLe<|w+SK)yD`V’9gϥK?ZhB<Ss`6DV/6/Zz sx|(}!?xg0f=!,iuK0zHWsa&cyfOݡelP99P!% :{sUﭹs`F=wl̫'~ZzJq ’ޕ }r{JOi7z!?;W$,IjY}zWcx%|!;Fz}<Pe&%mss68mSp[rls$’dQW_ޑ {>Tz nC7dس^#ω`'l۔s/*=~'.%~DKji=5y疞`lp7<9LOSGzx} BX2}I޽Sl iuC3[?ΑQޘo@;9kVIV/S#?p}l/=)x_OS t Y߷9̹*`LvnI;: N:s벶t/.=Yh|hߝ{ԱsO7AKv=+>K~,Z{9 <lm4pf08CBI_,:Z=y|`ROSGtL!,hw\j[PzMl>#gsb`9y4%4NZع2V~)|0 zSr~!/Y9ShwOqf3HKZzݙ߹ 8>JB?Ss3O&6?/1W,9msJϡ7ݟщsGph  D;iIod/e͒ zCؘcSzJS %@ a'e5Y߷)Kn)L'c?]UzJS e`P:rQχvױԑl'O9Q 9KrUyҏQzgG#?#å4PM@;gΚ\y]z `ϑe:d)M54 vfCߦս^ǡytstK`dDjduYt/*=$SĞ;26uMJ;iA\{[.wKϩ*S?ۆn͉4z0hABI Ve]IL |G4к0haBIߝ};ݥWmD?40hq"I傞d~sZ>|W{o&c40;`0Ka'u-e>+W|:sR=S9%ޘ#40`0a'-ͬ[yg,y)MCgƌa)M#1NB"k޲p}mҹR<6tKv>PzJ8 vR[#|8Vޙ甞PSG}l{W&<'@a'8;W|޹iu3ٵyx986PzLS !@E`陳&ݛ-Ẅ=GJ}SG_ *F{fCS<ݒģ^"|@U `PQBIcfmݾ7ebXw_3cJi u08!+rUmsNsցsJOis ޕ}jUGI ~{W˚%իE] M=gSO<L !ζy|MbhStT}<;F϶[sb@-,`^/k{ȅ=L pc^>v(  xCBk[ϳoSΝ{qC~W$ ~2NC~V8pJji=5yȯqb<9ZD/Y `@š4;@|=Z7m |DZV"@Z 8~@r 6/ `@¦>z.ޜ!??`6YC9}!0"0,Lf%! _@"0 >`W/j02„/|**~o4[0fK^if7~^K= _oL- _Ɵk4Cxj ``NCB"0J83xm0 `z`gLC0|`d ɏVjl'̠/}3US,RIENDB`elliptic/man/divisor.Rd0000644000176200001440000000422015104404043014571 0ustar liggesusers\name{divisor} \alias{divisor} \alias{primes} \alias{factorize} \alias{mobius} \alias{totient} \alias{liouville} \concept{Multiplicative functions} \title{Number theoretic functions} \description{ Various useful number theoretic functions } \usage{ divisor(n,k=1) primes(n) factorize(n) mobius(n) totient(n) liouville(n) } \arguments{ \item{n,k}{Integers} } \details{ Functions \code{primes()} and \code{factorize()} cut-and-pasted from Bill Venables's \pkg{con.design} package, version 0.0-3. Function \code{primes(n)} returns a vector of all primes not exceeding \code{n}; function \code{factorize(n)} returns an integer vector of nondecreasing primes whose product is \code{n}. The others are multiplicative functions, defined in Hardy and Wright: Function \code{divisor()}, also written \eqn{\sigma_k(n)}{sigma_k(n)}, is the divisor function defined on p239. This gives the sum of the \eqn{k^{\rm th}}{k-th} powers of all the divisors of \code{n}. Setting \eqn{k=0} corresponds to \eqn{d(n)}, which gives the number of divisors of \code{n}. Function \code{mobius()} is the Moebius function (p234), giving zero if \code{n} has a repeated prime factor, and \eqn{(-1)^q} where \eqn{n=p_1p_2\ldots p_q}{n=p_1*p_2*...p_q} otherwise. Function \code{totient()} is Euler's totient function (p52), giving the number of integers smaller than \code{n} and relatively prime to it. Function \code{liouville()} gives the Liouville function. } \references{G. H. Hardy and E. M. Wright, 1985. \emph{An introduction to the theory of numbers} (fifth edition). Oxford University Press.} \note{ The divisor function crops up in \code{g2.fun()} and \code{g3.fun()}. Note that this function is not called \code{sigma()} to avoid conflicts with Weierstrass's \eqn{\sigma}{sigma} function (which ought to take priority in this context). } \author{Robin K. S. Hankin and Bill Venables (\code{primes()} and \code{factorize()})} \examples{ mobius(1) mobius(2) divisor(140) divisor(140,3) plot(divisor(1:100,k=1),type="s",xlab="n",ylab="divisor(n,1)") plot(cumsum(liouville(1:1000)),type="l",main="does the function ever exceed zero?") } \keyword{math} elliptic/man/pari.Rd0000644000176200001440000000311615104404043014050 0ustar liggesusers\name{pari} \alias{pari} \alias{PARI} \alias{P.pari} \alias{gp} \alias{GP} \alias{Gp} \title{Wrappers for PARI functions} \description{ Wrappers for the three elliptic functions of PARI } \usage{ P.pari(z,Omega,pari.fun="ellwp",numerical=TRUE) } \arguments{ \item{z}{Complex argument} \item{Omega}{Half periods} \item{pari.fun}{String giving the name of the function passed to PARI. Values of \code{ellwp}, \code{ellsigma}, and \code{ellzeta}, are acceptable here for the Weierstrass \eqn{\wp}{P} function, the \eqn{\sigma}{sigma} function, and the \eqn{\zeta}{zeta} function respectively} \item{numerical}{Boolean with default \code{TRUE} meaning to return the complex value returned by PARI, and \code{FALSE} meaning to return the ascii string returned by PARI} } \details{ This function calls PARI via an R \code{system()} call. } \value{ Returns an object with the same attributes as \code{z}. } \references{\url{http://www.parigp-home.de/}} \author{Robin K. S. Hankin} \note{ Function translates input into, for example, \dQuote{\code{ellwp([1+1*I,2+3*I],1.111+5.1132*I)}} and pipes this string directly into \code{gp}. The PARI system clearly has more powerful syntax than the basic version that I'm using here, but I can't (for example) figure out how to vectorize any of the calls. } \examples{ \dontrun{ #this in a dontrun environment because it requires pari/gp z <- seq(from=1,to=3+2i,len=34) p <- c(1,1i) plot(abs(P.pari(z=z,Omega=p) - P(z=z,Omega=p))) plot(zeta(z=z,params=parameters(Omega=p))- P.pari(z=z,Omega=c(p),pari.fun="ellzeta")) } } \keyword{math} elliptic/man/congruence.Rd0000644000176200001440000000432215104404043015245 0ustar liggesusers\name{congruence} \alias{congruence} \title{Solves mx+by=1 for x and y} \description{ Solves the Diophantine equation \eqn{mx+by=1} for \eqn{x} and \eqn{y}. The function is named for equation 57 in Hardy and Wright. } \usage{ congruence(a, l = 1) } \arguments{ \item{a}{Two element vector with \code{a=c(m,n)}} \item{l}{Right hand side with default 1} } \value{ In the usual case of \eqn{(m,n)=1}, returns a square matrix whose rows are \code{a} and \code{c(x,y)}. This matrix is a unimodular transformation that takes a pair of basic periods to another pair of basic periods. If \eqn{(m,n)\neq 1}{(m,n) != 1} then more than one solution is available (for example \code{congruence(c(4,6),2)}). In this case, extra rows are added and the matrix is no longer square. } \references{ G. H. Hardy and E. M. Wright 1985. \emph{An introduction to the theory of numbers}, Oxford University Press (fifth edition) } \author{Robin K. S. Hankin} \note{ This function does not generate \emph{all} unimodular matrices with a given first row (here, it will be assumed that the function returns a square matrix). For a start, this function only returns matrices all of whose elements are positive, and if \code{a} is unimodular, then after \code{diag(a) <- -diag(a)}, both \code{a} and \code{-a} are unimodular (so if \code{a} was originally generated by \code{congruence()}, neither of the derived matrices could be). Now if the first row is \code{c(1,23)}, for example, then the second row need only be of the form \code{c(n,1)} where \code{n} is any integer. There are thus an infinite number of unimodular matrices whose first row is \code{c(1,23)}. While this is (somewhat) pathological, consider matrices with a first row of, say, \code{c(2,5)}. Then the second row could be \code{c(1,3)}, or \code{c(3,8)} or \code{c(5,13)}. Function \code{congruence()} will return only the first of these. To systematically generate all unimodular matrices, use \code{unimodular()}, which uses Farey sequences. } \seealso{\code{\link{unimodular}}} \examples{ M <- congruence(c(4,9)) det(M) o <- c(1,1i) g2.fun(o) - g2.fun(o,maxiter=840) #should be zero } \keyword{math} elliptic/man/P.laurent.Rd0000644000176200001440000000217115104404043014765 0ustar liggesusers\name{P.laurent} \alias{P.laurent} \alias{Pdash.laurent} \alias{sigma.laurent} \alias{sigmadash.laurent} \alias{zeta.laurent} \alias{e18.5.1} \alias{e18f.5.3} \alias{e18.5.4} \alias{e18.5.5} \alias{e18.5.6} \title{Laurent series for elliptic and related functions} \description{ Laurent series for various functions } \usage{ P.laurent(z, g=NULL, tol=0, nmax=80) Pdash.laurent(z, g=NULL, nmax=80) sigma.laurent(z, g=NULL, nmax=8, give.error=FALSE) sigmadash.laurent(z, g=NULL, nmax=8, give.error=FALSE) zeta.laurent(z, g=NULL, nmax=80) } \arguments{ \item{z}{Primary argument (complex)} \item{g}{Vector of length two with \code{g=c(g2,g3)}} \item{tol}{Tolerance} \item{give.error}{In \code{sigma.laurent()}, Boolean with default \code{FALSE} meaning to return the computed value and \code{TRUE} to return the error (as estimated by the sum of the absolute values of the terms along the minor long diagonal of the matrix)}. \item{nmax}{Number of terms used (or, for \code{sigma()}, the size of matrix used)} } \author{Robin K. S. Hankin} \examples{ sigma.laurent(z=1+1i,g=c(0,4)) } \keyword{math} elliptic/man/parameters.Rd0000644000176200001440000000765215104404043015271 0ustar liggesusers\name{parameters} \alias{parameters} \alias{e18.7.4} \alias{e18.7.5} \alias{e18.7.7} \alias{e18.3.5} \alias{e18.3.3} \alias{e18.3.37} \alias{e18.3.38} \alias{e18.3.39} \title{Parameters for Weierstrass's P function} \description{ Calculates the invariants \eqn{g_2}{g2} and \eqn{g_3}{g3}, the e-values \eqn{e_1,e_2,e_3}{e1,e2,e3}, and the half periods \eqn{\omega_1,\omega_2}{omega1, omega2}, from any one of them. } \usage{ parameters(Omega=NULL, g=NULL, description=NULL) } \arguments{ \item{Omega}{Vector of length two, containing the \strong{half periods} \eqn{(\omega_1,\omega_2)}{(omega1,omega2)}} \item{g}{Vector of length two: \eqn{(g_2,g_3)}{(g2,g3)}} \item{description}{string containing \dQuote{equianharmonic}, \dQuote{lemniscatic}, or \dQuote{pseudolemniscatic}, to specify one of A and S's special cases} } \value{ Returns a list with the following items: \item{Omega}{A complex vector of length 2 giving the fundamental half periods \eqn{\omega_1}{omega1} and \eqn{\omega_2}{omega2}. Notation follows Chandrasekharan: half period \eqn{\omega_1}{omega1} is 0.5 times a (nontrivial) period of minimal modulus, and \eqn{\omega_2}{omega2} is 0.5 times a period of smallest modulus having the property \eqn{\omega_2/\omega_1}{omega2/omega1} not real. The relevant periods are made unique by the further requirement that \eqn{\mathrm{Re}(\omega_1)>0}{Re(omega1)>0}, and \eqn{\mathrm{Im}(\omega_2)>0}{Im(omega2)>0}; but note that this often results in sign changes when considering cases on boundaries (such as real \eqn{g_2}{g2} and \eqn{g_3}{g3}). \strong{Note} Different definitions exist for \eqn{\omega_3}{omega3}! A and S use \eqn{\omega_3=\omega_2-\omega_1}{omega3=omega2-omega1}, while Whittaker and Watson (eg, page 443), and Mathematica, have \eqn{\omega_1+\omega_2+\omega_3=0}{omega1+omega2+omega3=0} } \item{q}{The nome. Here, \eqn{q=e^{\pi i\omega_2/\omega_1}}{q=exp(pi*i*omega2/omega1)}.} \item{g}{Complex vector of length 2 holding the invariants} \item{e}{Complex vector of length 3. Here \eqn{e_1}{e1}, \eqn{e_2}{e2}, and \eqn{e_3}{e3} are defined by \deqn{e_1=\wp(\omega_1/2)m\qquad e_2=\wp(\omega_2/2),\qquad e_3=\wp(\omega_3/2)}{e1=P(omega1/2), e2=P(omega2/2), e3=P(omega3/2),} where \eqn{\omega_3}{omega3} is defined by \eqn{\omega_1+\omega_2+\omega_3=0}{\omega1+omega2+omega3=0}. Note that the \eqn{e}s are also defined as the three roots of \eqn{x^3-g_2x-g_3=0}{x^3-g2*x-g3=0}; but this method cannot be used in isolation because the roots may be returned in the wrong order.} \item{Delta}{The quantity \eqn{g_2^3-27g_3^2}{g2^3-27*g3^2}, often denoted \eqn{\Delta}{Greek capital Delta}} \item{Eta}{Complex vector of length 3 often denoted \eqn{\eta}{by the greek letter eta}. Here \eqn{\eta=(\eta_1,\eta_2,\eta_3)}{eta=(eta_1,eta_2,eta_3)} are defined in terms of the Weierstrass zeta function with \eqn{\eta_i=\zeta(\omega_i)}{eta_i\zeta(omega_i)} for \eqn{i=1,2,3}. Note that the name of this element is capitalized to avoid confusion with function \code{eta()}} \item{is.AnS}{Boolean, with \code{TRUE} corresponding to real invariants, as per Abramowitz and Stegun} \item{given}{character string indicating which parameter was supplied. Currently, one of \dQuote{\code{o}} (omega), or \dQuote{\code{g}} (invariants)} } \author{Robin K. S. Hankin} \examples{ ## Example 6, p665, LHS parameters(g=c(10,2)) ## Not clear to me how AMS-55 justify 7 sig figs ## Example 7, p665, RHS a <- parameters(g=c(7,6)) ; attach(a) c(omega2=Omega[1],omega2dash=Omega[1]+Omega[2]*2) ## verify 18.3.37: Eta[2]*Omega[1]-Eta[1]*Omega[2] #should be close to pi*1i/2 ## from Omega to g and and back; ## following should be equivalent to c(1,1i): parameters(g=parameters(Omega=c(1,1i))$g)$Omega } \keyword{math} elliptic/man/nome.Rd0000644000176200001440000000122115104404043014046 0ustar liggesusers\name{nome} \alias{nome} \alias{nome.k} \title{Nome in terms of m or k} \description{ Calculates the nome in terms of either \eqn{m} (\code{nome()}) or \eqn{k} (\code{nome.k()}). } \usage{ nome(m) nome.k(k) } \arguments{ \item{m}{Real parameter} \item{k}{Real parameter with \eqn{k=m^2}} } \author{Robin K. S. Hankin} \note{ The nome is defined as \eqn{e^{-i\pi K'/K}}{exp(-pi*i*K'/K)}, where \eqn{K} and \eqn{iK'} are the quarter periods (see page 576 of AMS-55). These are calculated using function \code{K.fun()}. } \seealso{\code{\link{K.fun}}} \examples{ nome(0.09) # AMS-55 give 0.00589414 in example 7 on page 581 } \keyword{math} elliptic/man/sqrti.Rd0000644000176200001440000000061615104404043014261 0ustar liggesusers\name{sqrti} \alias{sqrti} \title{Generalized square root} \description{ Square root wrapper that keeps answer real if possible, coerces to complex if not. } \usage{ sqrti(x) } \arguments{ \item{x}{Vector to return square root of} } \author{Robin K. S. Hankin} \examples{ sqrti(1:10) #real sqrti(-10:10) #coerced to complex (compare sqrt(-10:10)) sqrti(1i+1:10) #complex anyway } \keyword{math} elliptic/man/massage.Rd0000644000176200001440000000061515104404043014536 0ustar liggesusers\name{massage} \alias{massage} \title{Massages numbers near the real line to be real} \description{ Returns the Real part of numbers near the real line } \usage{ massage(z, tol = 1e-10) } \arguments{ \item{z}{vector of complex numbers to be massaged} \item{tol}{Tolerance} } \author{Robin K. S. Hankin} \examples{ massage(1+1i) massage(1+1e-11i) massage(c(1,1+1e-11i,1+10i)) } \keyword{math} elliptic/man/K.fun.Rd0000644000176200001440000000212715104404043014077 0ustar liggesusers\name{K.fun} \alias{K.fun} \alias{e16.1.1} \title{quarter period K} \description{ Calculates the K.fun in terms of either \eqn{m} (\code{K.fun()}) or \eqn{k} (\code{K.fun.k()}). } \usage{ K.fun(m, strict=TRUE, maxiter=7, miniter=3) } \arguments{ \item{m}{Real or complex parameter} \item{strict}{Boolean, with default \code{TRUE} meaning to return an error if the sequence has not converged exactly, and \code{FALSE} meaning to return the partial sum, and a warning} \item{maxiter}{Maximum number of iterations} \item{miniter}{Minimum number of iterations to guard against premature exit if an addend is zero exactly} } \references{ R. Coquereaux, A. Grossman, and B. E. Lautrup. \emph{Iterative method for calculation of the Weierstrass elliptic function}. IMA Journal of Numerical Analysis, vol 10, pp119-128, 1990 } \author{Robin K. S. Hankin} \examples{ K.fun(0.09) # AMS-55 give 1.60804862 in example 7 on page 581 # next example not run because: (i), it needs gsl; (ii) it gives a warning. \dontrun{ K.fun(0.4,strict=F, maxiter=4) - ellint_Kcomp(sqrt(0.4)) } } \keyword{math} elliptic/man/view.Rd0000644000176200001440000001154415104404043014073 0ustar liggesusers\name{view} \alias{view} \concept{Thaller} \title{Visualization of complex functions} \description{ Visualization of complex functions using colour maps and contours } \usage{ view(x, y, z, scheme = 0, real.contour = TRUE, imag.contour = real.contour, default = 0, col="black", r0=1, power=1, show.scheme=FALSE, ...) } \arguments{ \item{x,y}{Vectors showing real and imaginary components of complex plane; same functionality as arguments to \code{image()}} \item{z}{Matrix of complex values to be visualized} \item{scheme}{Visualization scheme to be used. A numeric value is interpreted as one of the (numbered) provided schemes; see source code for details, as I add new schemes from time to time and the code would in any case dominate anything written here. A default of zero corresponds to Thaller (1998): see references. For no colour (ie a white background), set \code{scheme} to a negative number. If \code{scheme} does not correspond to a built-in function, the \code{switch()} statement \dQuote{drops through} and provides a white background (use this to show just real or imaginary contours; a value of \eqn{-1} will always give this behaviour) If not numeric, \code{scheme} is interpreted as a function that produces a colour; see examples section below. See details section for some tools that make writing such functions easier} \item{real.contour,imag.contour}{Boolean with default \code{TRUE} meaning to draw contours of constant \eqn{Re(z)} (resp: \eqn{Im(z)}) and \code{FALSE} meaning not to draw them} \item{default}{Complex value to be assumed for colouration, if \code{z} takes \code{NA} or infinite values; defaults to zero. Set to \code{NA} for no substitution (ie plot \code{z} \dQuote{as is}); usually a bad idea} \item{col}{Colour (sent to \code{contour()})} \item{r0}{If \code{scheme=0}, radius of Riemann sphere as used by Thaller} \item{power}{Defines a slight generalization of Thaller's scheme. Use high values to emphasize areas of high modulus (white) and low modulus (black); use low values to emphasize the argument over the whole of the function's domain. This argument is also applied to some of the other schemes where it makes sense} \item{show.scheme}{Boolean, with default \code{FALSE} meaning to perform as advertized and visualize a complex function; and \code{TRUE} meaning to return the function corresponding to the value of argument \code{scheme}} \item{\dots}{Extra arguments passed to \code{image()} and \code{contour()}} } \details{ The examples given for different values of \code{scheme} are intended as examples only: the user is encouraged to experiment by passing homemade colour schemes (and indeed to pass such schemes to the author). Scheme 0 implements the ideas of Thaller: the complex plane is mapped to the Riemann sphere, which is coded with the North pole white (indicating a pole) and the South Pole black (indicating a zero). The equator (that is, complex numbers of modulus \code{r0}) maps to colours of maximal saturation. Function \code{view()} includes several tools that simplify the creation of suitable functions for passing to \code{scheme}. These include: \describe{ \item{\code{breakup()}:}{Breaks up a continuous map: \code{function(x){ifelse(x>1/2,3/2-x,1/2-x)}}} \item{\code{g()}:}{maps positive real to \eqn{[0,1]}: \code{function(x){0.5+atan(x)/pi}}} \item{\code{scale()}:}{scales range to \eqn{[0,1]}: \code{function(x){(x-min(x))/(max(x)-min(x))}}} \item{\code{wrap()}:}{wraps phase to \eqn{[0,1]}: \code{function(x){1/2+x/(2*pi)}}} } } \author{Robin K. S. Hankin} \note{ Additional ellipsis arguments are given to both \code{image()} and \code{contour()} (typically, \code{nlevels}). The resulting \code{warning()} from one or other function is suppressed by \code{suppressWarnings()}. } \references{ B. Thaller 1998. \emph{Visualization of complex functions}, The Mathematica Journal, 7(2):163--180 } \examples{ n <- 100 x <- seq(from=-4,to=4,len=n) y <- x z <- outer(x,1i*y,"+") view(x,y,limit(1/z),scheme=2) view(x,y,limit(1/z),scheme=18) view(x,y,limit(1/z+1/(z-1-1i)^2),scheme=5) view(x,y,limit(1/z+1/(z-1-1i)^2),scheme=17) view(x,y,log(0.4+0.7i+log(z/2)^2),main="Some interesting cut lines") view(x,y,z^2,scheme=15,main="try finer resolution") view(x,y,sn(z,m=1/2+0.3i),scheme=6,nlevels=33,drawlabels=FALSE) view(x,y,limit(P(z,c(1+2.1i,1.3-3.2i))),scheme=2,nlevels=6,drawlabels=FALSE) view(x,y,limit(Pdash(z,c(0,1))),scheme=6,nlevels=7,drawlabels=FALSE) view(x,x,limit(zeta(z,c(1+1i,2-3i))),nlevels=6,scheme=4,col="white") # Now an example with a bespoke colour function: fun <- function(z){hcl(h=360*wrap(Arg(z)),c= 100 * (Mod(z) < 1))} view(x,x,limit(zeta(z,c(1+1i,2-3i))),nlevels=6,scheme=fun) view(scheme=10, show.scheme=TRUE) } \keyword{math} elliptic/man/g.fun.Rd0000644000176200001440000001067715104404043014144 0ustar liggesusers\name{g.fun} \alias{g.fun} \alias{g2.fun} \alias{g3.fun} \alias{g2.fun.lambert} \alias{g3.fun.lambert} \alias{g2.fun.direct} \alias{g3.fun.direct} \alias{g2.fun.fixed} \alias{g3.fun.fixed} \alias{g2.fun.divisor} \alias{g3.fun.divisor} \alias{g2.fun.vectorized} \alias{g3.fun.vectorized} \alias{e18.1.1} \title{Calculates the invariants g2 and g3} \description{ Calculates the invariants g2 and g3 using any of a number of methods } \usage{ g.fun(b, ...) g2.fun(b, use.first=TRUE, ...) g3.fun(b, use.first=TRUE, ...) g2.fun.lambert(b, nmax=50, tol=1e-10, strict=TRUE) g3.fun.lambert(b, nmax=50, tol=1e-10, strict=TRUE) g2.fun.direct(b, nmax=50, tol=1e-10) g3.fun.direct(b, nmax=50, tol=1e-10) g2.fun.fixed(b, nmax=50, tol=1e-10, give=FALSE) g3.fun.fixed(b, nmax=50, tol=1e-10, give=FALSE) g2.fun.vectorized(b, nmax=50, tol=1e-10, give=FALSE) g3.fun.vectorized(b, nmax=50, tol=1e-10, give=FALSE) } \arguments{ \item{b}{Half periods. NB: the arguments are the \strong{half periods} as per AMS55! In these functions, argument \code{b} is interpreted as per \code{p1.tau()}} \item{nmax}{Maximum number of terms to sum. See details section for more discussion} \item{tol}{Numerical tolerance for stopping: summation stops when adding an additional term makes less} \item{strict}{Boolean, with default (where taken) \code{TRUE} meaning to \code{stop()} if convergence is not achieved in \code{nmax} terms. Setting to \code{FALSE} returns the partial sum and a warning.} \item{give}{Boolean, with default (where taken) \code{TRUE} meaning to return the partial sums. See examples section for an example of this argument in use} \item{...}{In functions \code{g.fun()}, \code{g2.fun()} and \code{g3.fun()}, extra arguments passed to \code{theta1()} and friends} \item{use.first}{In function \code{g2.fun()} and \code{g3.fun()}, Boolean with default \code{TRUE} meaning to use Wolfram's first formula (\strong{remember to cite this}) and \code{FALSE} meaning to use the second} } \details{ Functions \code{g2.fun()} and \code{g3.fun()} use theta functions which converge very quickly. These functions are the best in most circumstances. The theta functions include a loop that continues to add terms until the partial sum is unaltered by addition of the next term. Note that summation continues until \emph{all} elements of the argument are properly summed, so performance is limited by the single worst-case element. The following functions are provided for interest only, although there is a remote possibility that some weird circumstances may exist in which they are faster than the theta function approach. Functions \code{g2.fun.divisor()} and \code{g3.fun.divisor()} use Chandrasekharan's formula on page 83. This is generally slower than the theta function approach Functions \code{g2.fun.lambert()} and \code{g3.fun.lambert()} use a Lambert series to accelerate Chandrasekharan's formula. In general, it is a little better than the divisor form. Functions \code{g2.fun.fixed()} and \code{g2.fun.fixed()} also use Lambert series. These functions are vectorized in the sense that the function body uses only vector operations. These functions do not take a vector argument. They are called \dQuote{fixed} because the number of terms used is fixed in advance (unlike \code{g2.fun()} and \code{g3.fun()}). Functions \code{g2.fun.vectorized()} and \code{g3.fun.vectorized()} also use Lambert series. They are fully vectorized in that they take a vector of periods or period ratios, unlike the previous two functions. However, this can lead to loss of precision in some cases (specifically when the periods give rise to widely varying values of g2 and g3). Functions \code{g2.fun.direct()} and \code{g3.fun.direct()} use a direct summation. These functions are absurdly slow. In general, the Lambert series functions converge much faster; and the \dQuote{default} functions \code{g2.fun()} and \code{g3.fun()}, which use theta functions, converge faster still. } \references{ Mathematica website } \author{Robin K. S. Hankin} \examples{ g.fun(half.periods(g=c(8,4+1i))) ## should be c(8,4+1i) ## Example 4, p664, LHS: omega <- c(10,11i) (g2 <- g2.fun(omega)) (g3 <- g3.fun(omega)) e1e2e3(Re(c(g2,g3))) ## Example 4, p664, RHS: omega2 <- 10 omega2dash <- 11i omega1 <- (omega2-omega2dash)/2 ## From figure 18.1, p630 (g2 <- g2.fun(c(omega1,omega2))) (g3 <- g3.fun(c(omega1,omega2))) e1e2e3(Re(c(g2,g3))) } \keyword{math} elliptic/man/e16.28.1.Rd0000644000176200001440000000166015104404043014101 0ustar liggesusers\name{e16.28.1} \alias{e16.28.1} \alias{e16.28.2} \alias{e16.28.3} \alias{e16.28.4} \alias{e16.28.5} \title{Numerical verification of equations 16.28.1 to 16.28.5} \description{ Numerical verification of formulae 16.28.1 to 16.28.5 on p576 } \usage{ e16.28.1(z, m, ...) e16.28.2(z, m, ...) e16.28.3(z, m, ...) e16.28.4(z, m, ...) e16.28.5(m, ...) } \arguments{ \item{z}{Complex number} \item{m}{Parameter \eqn{m}} \item{...}{Extra arguments passed to \code{theta[1-4]()}} } \details{ Returns the left hand side minus the right hand side of each formula. Each formula documented here is identically zero; nonzero values are returned due to numerical errors and should be small. } \references{ M. Abramowitz and I. A. Stegun 1965. \emph{Handbook of Mathematical Functions.} New York, Dover. } \author{Robin K. S. Hankin} \examples{ plot(e16.28.4(z=1:6000,m=0.234)) plot(abs(e16.28.4(z=1:6000,m=0.234+0.1i))) } \keyword{array} elliptic/man/J.Rd0000644000176200001440000000345515104404043013314 0ustar liggesusers\name{J} \alias{J} \alias{lambda} \concept{Klein's modular function} \concept{Klein's modular function J} \concept{Klein's invariant function} \concept{Dedekind's valenz function} \concept{Dedekind's valenz function J} \concept{lambda function} \concept{Dedekind} \title{Various modular functions} \description{ Modular functions including Klein's modular function J (aka Dedekind's Valenz function J, aka the Klein invariant function, aka Klein's absolute invariant), the lambda function, and Delta. } \usage{ J(tau, use.theta = TRUE, ...) lambda(tau, ...) } \arguments{ \item{tau}{\eqn{\tau}{tau}; it is assumed that \code{Im(tau)>0}} \item{use.theta}{Boolean, with default \code{TRUE} meaning to use the theta function expansion, and \code{FALSE} meaning to evaluate \code{g2} and \code{g3} directly} \item{\dots}{Extra arguments sent to either \code{theta1()} et seq, or \code{g2.fun()} and \code{g3.fun()} as appropriate} } \references{ K. Chandrasekharan 1985. \emph{Elliptic functions}, Springer-Verlag. } \author{Robin K. S. Hankin} \examples{ J(2.3+0.23i, use.theta=TRUE) J(2.3+0.23i, use.theta=FALSE) #Verify that J(z)=J(-1/z): z <- seq(from=1+0.7i, to=-2+1i, len=20) plot(abs((J(z)-J(-1/z))/J(z))) # Verify that lambda(z) = lambda(Mz) where M is a modular matrix with b,c # even and a,d odd: M <- matrix(c(5, 4, 16, 13), 2, 2) z <- seq(from=1+1i, to=3+3i, len=100) plot(lambda(z)-lambda(M \%mob\% z, maxiter=100)) #Now a nice little plot; vary n to change the resolution: n <- 50 x <- seq(from=-0.1, to=2,len=n) y <- seq(from=0.02, to=2,len=n) z <- outer(x, 1i*y, "+") f <- lambda(z, maxiter=40) g <- J(z) view(x, y, f, scheme=04, real.contour=FALSE, main="try higher resolution") view(x, y, g, scheme=10, real.contour=FALSE, main="try higher resolution") } \keyword{math} elliptic/man/fpp.Rd0000644000176200001440000000303015104404043013675 0ustar liggesusers\name{fpp} \alias{fpp} \alias{mn} \title{Fundamental period parallelogram} \description{ Reduce \eqn{z=x+iy} to a congruent value within the fundamental period parallelogram (FPP). Function \code{mn()} gives (real, possibly noninteger) \eqn{m} and \eqn{n} such that \eqn{z=m\cdot p_1+n\cdot p_2}{z=m*p_1+n*p_2}. } \usage{ fpp(z, p, give = FALSE) mn(z, p) } \arguments{ \item{z}{Primary complex argument} \item{p}{Vector of length two with first element the first period and second element the second period. Note that \eqn{p} is the period, so \eqn{p_1=2\omega_1}, where \eqn{\omega_1}{omega1} is the half period} \item{give}{Boolean, with \code{TRUE} meaning to return M and N, and default \code{FALSE} meaning to return just the congruent values} } \details{ Function \code{fpp()} is fully vectorized. Use function \code{mn()} to determine the \dQuote{coordinates} of a point. Use \code{floor(mn(z, p)) \%*\% p} to give the complex value of the (unique) point in the same period parallelogram as \code{z} that is congruent to the origin. } \author{Robin K. S. Hankin} \examples{ p <- c(1.01+1.123i, 1.1+1.43i) mn(z=1:10, p) \%*\% p ## should be close to 1:10 #Now specify some periods: p2 <- c(1+1i, 1-1i) #Define a sequence of complex numbers that zooms off to infinity: u <- seq(from=0, by=pi+1i*exp(1), len=2007) #and plot the sequence, modulo the periods: plot(fpp(z=u, p=p2)) #and check that the resulting points are within the qpp: polygon(c(-1, 0, 1, 0), c(0, 1, 0, -1)) } \keyword{math} elliptic/man/myintegrate.Rd0000644000176200001440000001305015104404043015443 0ustar liggesusers\name{myintegrate} \alias{myintegrate} \alias{integrate.contour} \alias{integrate.segments} \alias{residue} \concept{Complex integration} \concept{Path integration} \concept{Contour integration} \concept{Cauchy's theorem} \concept{Cauchy's integral theorem} \concept{Cauchy's formula} \concept{Residue theorem} \title{Complex integration} \description{ Integration of complex valued functions along the real axis (\code{myintegrate()}), along arbitrary paths (\code{integrate.contour()}), and following arbitrary straight line segments (\code{integrate.segments()}). Also, evaluation of a function at a point using the residue theorem (\code{residue()}). A vignette (\dQuote{\code{residuetheorem}}) is provided in the package. } \usage{ myintegrate(f, lower, upper, ...) integrate.contour(f, u, udash, ...) integrate.segments(f, points, close=TRUE, ...) residue(f, z0, r, O=z0, ...) } \arguments{ \item{f}{function, possibly complex valued} \item{lower,upper}{Lower and upper limits of integration in \code{myintegrate()}; real numbers (for complex values, use \code{integrate.contour()} or \code{integrate.segments()})} \item{u}{Function mapping \eqn{[0,1]} to the contour. For a closed contour, require that \eqn{u(0)=u(1)}} \item{udash}{Derivative of \code{u}} \item{points}{In function \code{integrate.segments()}, a vector of complex numbers. Integration will be taken over straight segments joining consecutive elements of \code{points}} \item{close}{In function \code{integrate.segments()}, a Boolean variable with default \code{TRUE} meaning to integrate along the segment from \code{points[n]} to \code{points[1]} in addition to the internal segments} \item{r,O,z0}{In function \code{residue()} returns \code{f(z0)} by integrating \eqn{f(z)/(z-z0)} around a circle of radius \code{r} and center \code{O}} \item{...}{Extra arguments passed to \code{integrate()}} } \author{Robin K. S. Hankin} \examples{ f1 <- function(z){sin(exp(z))} f2 <- function(z, p){p/z} myintegrate(f1, 2, 3) # that is, along the real axis integrate.segments(f1, c(1, 1i, -1, -1i), close = TRUE) # should be zero # (following should be pi*2i; note secondary argument): integrate.segments(f2, points = c(1, 1i, -1, -1i), close = TRUE, p = 1) # To integrate round the unit circle, we need the contour and its # derivative: u <- function(x){exp(pi*2i*x)} udash <- function(x){pi*2i * exp(pi*2i*x)} # Some elementary functions, for practice: # (following should be 2i*pi; note secondary argument 'p'): integrate.contour(function(z, p){p/z}, u, udash, p = 1) integrate.contour(function(z){log(z)}, u, udash) # should be -2i*pi integrate.contour(function(z){sin(z) + 1/z^2}, u, udash) # should be zero # residue() is a convenience wrapper integrating f(z)/(z-z0) along a # circular contour: residue(function(z){1/z}, 2, r = 0.1) # should be 1/2=0.5 # Now, some elliptic functions: g <- c(3, 2+4i) Zeta <- function(z){zeta(z, g)} Sigma <- function(z){sigma(z, g)} WeierstrassP <- function(z){P(z, g)} jj <- integrate.contour(Zeta, u, udash) abs(jj - 2*pi*1i) # zero to numerical precision abs(integrate.contour(Sigma, u, udash)) # zero to numerical precision abs(integrate.contour(WeierstrassP, u, udash)) # zero to numerical precision # Now integrate f(x) = exp(1i*x)/(1+x^2) from -Inf to +Inf along the # real axis, using the Residue Theorem. This tells us that integral of # f(z) along any closed path is equal to pi*2i times the sum of the # residues inside it. Take a semicircular path P from -R to +R along # the real axis, then following a semicircle in the upper half plane, of # radius R to close the loop. Now consider large R. Then P encloses a # pole at +1i [there is one at -1i also, but this is outside P, so # irrelevant here] at which the residue is -1i/2e. Thus the integral of # f(z) = 2i*pi*(-1i/2e) = pi/e along P; the contribution from the # semicircle tends to zero as R tends to infinity; thus the integral # along the real axis is the whole path integral, or pi/e. # We can now reproduce this result analytically. First, choose an R: R <- 400 # now define P. First, the semicircle, u1: u1 <- function(x){R*exp(pi*1i*x)} u1dash <- function(x){R*pi*1i * exp(pi*1i*x)} # and now the straight part along the real axis, u2: u2 <- function(x){R*(2*x-1)} u2dash <- function(x){R*2} # Better define the function: f <- function(z){exp(1i*z) / (1+z^2)} # OK, now carry out the path integral. I'll do it explicitly, but note # that the contribution from the first integral should be small: answer.approximate <- integrate.contour(f, u1, u1dash) + integrate.contour(f, u2, u2dash) # And compare with the analytical value: answer.exact <- pi/exp(1) abs(answer.approximate - answer.exact) # Now try the same thing but integrating over a triangle, using # integrate.segments(). Use a path P' with base from -R to +R along the # real axis, closed by two straight segments, one from +R to 1i*R, the # other from 1i*R to -R: abs(integrate.segments(f, c(-R, R, 1i*R))- answer.exact) # Observe how much better one can do by integrating over a big square # instead: abs(integrate.segments(f, c(-R, R, R+1i*R, -R+1i*R))- answer.exact) # Now in the interests of search engine findability, here is an # application of Cauchy's integral formula, or Cauchy's formula. I will # use it to find sin(0.8): u <- function(x){exp(pi*2i*x)} udash <- function(x){pi*2i * exp(pi*2i*x)} g <- function(z){sin(z) / (z-0.8)} a <- 1/(2i*pi) * integrate.contour(g, u, udash) abs(a - sin(0.8)) } \keyword{math} elliptic/man/WeierstrassP.Rd0000644000176200001440000000702215104404043015550 0ustar liggesusers\name{WeierstrassP} \alias{WeierstrassP} \alias{P} \alias{Pdash} \alias{sigma} \alias{zeta} \alias{e18.10.1} \alias{e18.10.2} \alias{e18.10.3} \alias{e18.10.4} \alias{e18.10.5} \alias{e18.10.6} \alias{e18.10.7} \concept{Weierstrass} \concept{Weierstrass P function} \concept{Weierstrass elliptic function} \concept{Weierstrass zeta function} \concept{Weierstrass sigma function} \concept{Elliptic functions} \title{Weierstrass P and related functions} \description{ Weierstrass elliptic function and its derivative, Weierstrass sigma function, and the Weierstrass zeta function } \usage{ P(z, g=NULL, Omega=NULL, params=NULL, use.fpp=TRUE, give.all.3=FALSE, ...) Pdash(z, g=NULL, Omega=NULL, params=NULL, use.fpp=TRUE, ...) sigma(z, g=NULL, Omega=NULL, params=NULL, use.theta=TRUE, ...) zeta(z, g=NULL, Omega=NULL, params=NULL, use.fpp=TRUE, ...) } \arguments{ \item{z}{Primary complex argument} \item{g}{Invariants \code{g=c(g2,g3)}. Supply exactly one of (\code{g}, \code{Omega}, \code{params})} \item{Omega}{Half periods} \item{params}{Object with class \dQuote{\code{parameters}} (typically provided by \code{parameters()})} \item{use.fpp}{Boolean, with default \code{TRUE} meaning to calculate \eqn{\wp(z^C)}{P(z^C)} where \eqn{z^C} is congruent to \eqn{z} in the period lattice. The default means that accuracy is greater for large \eqn{z} but has the deficiency that slight discontinuities may appear near parallelogram boundaries} \item{give.all.3}{Boolean, with default \code{FALSE} meaning to return \eqn{\wp(z)}{P(z)} and \code{TRUE} meaning to return the other forms given in equation 18.10.5, p650. Use \code{TRUE} to check for accuracy} \item{use.theta}{Boolean, with default \code{TRUE} meaning to use theta function forms, and \code{FALSE} meaning to use a Laurent expansion. Usually, the theta function form is faster, but not always} \item{...}{Extra parameters passed to \code{theta1()} and \code{theta1dash()}} } \references{ R. K. S. Hankin. \emph{Introducing Elliptic, an R package for Elliptic and Modular Functions}. Journal of Statistical Software, Volume 15, Issue 7. February 2006. } \author{Robin K. S. Hankin} \note{ In this package, function \code{sigma()} is the Weierstrass sigma function. For the number theoretic divisor function also known as \dQuote{sigma}, see \code{divisor()}. } \examples{ ## Example 8, p666, RHS: P(z=0.07 + 0.1i,g=c(10,2)) ## Example 8, p666, RHS: P(z=0.1 + 0.03i,g=c(-10,2)) ## Right answer! ## Compare the Laurent series, which also gives the Right Answer (tm): P.laurent(z=0.1 + 0.03i,g=c(-10,2)) ## Now a nice little plot of the zeta function: x <- seq(from=-4,to=4,len=100) z <- outer(x,1i*x,"+") view(x,x,limit(zeta(z,c(1+1i,2-3i))),nlevels=6,scheme=1) #now figure 18.5, top of p643: p <- parameters(Omega=c(1+0.1i,1+1i)) n <- 40 f <- function(r,i1,i2=1)seq(from=r+1i*i1, to=r+1i*i2,len=n) g <- function(i,r1,r2=1)seq(from=1i*i+r1,to=1i*i+2,len=n) solid.lines <- c( f(0.1,0.5),NA, f(0.2,0.4),NA, f(0.3,0.3),NA, f(0.4,0.2),NA, f(0.5,0.0),NA, f(0.6,0.0),NA, f(0.7,0.0),NA, f(0.8,0.0),NA, f(0.9,0.0),NA, f(1.0,0.0) ) dotted.lines <- c( g(0.1,0.5),NA, g(0.2,0.4),NA, g(0.3,0.3),NA, g(0.4,0.2),NA, g(0.5,0.0),NA, g(0.6,0.0),NA, g(0.7,0.0),NA, g(0.8,0.0),NA, g(0.9,0.0),NA, g(1.0,0.0),NA ) plot(P(z=solid.lines,params=p),xlim=c(-4,4),ylim=c(-6,0),type="l",asp=1) lines(P(z=dotted.lines,params=p),xlim=c(-4,4),ylim=c(-6,0),type="l",lty=2) } \keyword{math} elliptic/man/limit.Rd0000644000176200001440000000172415104404043014236 0ustar liggesusers\name{limit} \alias{limit} \title{Limit the magnitude of elements of a vector} \description{ Deals appropriately with objects with a few very large elements } \usage{ limit(x, upper=quantile(Re(x),0.99,na.rm=TRUE), lower=quantile(Re(x),0.01,na.rm=TRUE), na = FALSE) } \arguments{ \item{x}{Vector of real or complex values} \item{upper}{Upper limit} \item{lower}{Lower limit} \item{na}{Boolean, with default \code{FALSE} meaning to \dQuote{clip} \code{x} (if real) by setting elements of \code{x} with \code{x>high} to \code{high}; if \code{TRUE}, set such elements to \code{NA}. If \code{x} is complex, this argument is ignored} } \details{ If \code{x} is complex, \code{low} is ignored and the function returns \code{x}, after executing \code{x[abs(x)>high] <- NA}. } \author{Robin K. S. Hankin} \examples{ x <- c(rep(1,5),300, -200) limit(x,100) limit(x,upper=200,lower= -400) limit(x,upper=200,lower= -400,na=TRUE) } \keyword{math} elliptic/DESCRIPTION0000644000176200001440000000173315104422712013567 0ustar liggesusersPackage: elliptic Version: 1.5-1 Title: Weierstrass and Jacobi Elliptic Functions Authors@R: person(given=c("Robin", "K. S."), family="Hankin", role = c("aut","cre"), email="hankin.robin@gmail.com", comment = c(ORCID = "0000-0001-5982-0415")) Depends: R (>= 2.5.0) Imports: MASS Suggests: emulator, calibrator (>= 1.2-8), testthat, hypergeo SystemRequirements: pari/gp Description: A suite of elliptic and related functions including Weierstrass and Jacobi forms. Also includes various tools for manipulating and visualizing complex functions. Maintainer: Robin K. S. Hankin License: GPL-2 URL: https://github.com/RobinHankin/elliptic, https://robinhankin.github.io/elliptic/ BugReports: https://github.com/RobinHankin/elliptic/issues NeedsCompilation: no Packaged: 2025-11-10 15:44:10 UTC; rhankin Author: Robin K. S. Hankin [aut, cre] (ORCID: ) Repository: CRAN Date/Publication: 2025-11-10 17:50:02 UTC