[Gmm-commits] r42 - in pkg/gmm: . R inst/doc man
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Tue Nov 29 23:02:27 CET 2011
Author: chaussep
Date: 2011-11-29 23:02:25 +0100 (Tue, 29 Nov 2011)
New Revision: 42
Modified:
pkg/gmm/NAMESPACE
pkg/gmm/NEWS
pkg/gmm/R/Methods.gmm.R
pkg/gmm/R/gel.R
pkg/gmm/R/getModel.R
pkg/gmm/R/gmm.R
pkg/gmm/R/momentEstim.R
pkg/gmm/R/specTest.R
pkg/gmm/inst/doc/gmm_with_R.pdf
pkg/gmm/inst/doc/gmm_with_R.rnw
pkg/gmm/man/summary.Rd
Log:
Several changes, See last NEWS
Modified: pkg/gmm/NAMESPACE
===================================================================
--- pkg/gmm/NAMESPACE 2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/NAMESPACE 2011-11-29 22:02:25 UTC (rev 42)
@@ -7,9 +7,11 @@
residuals.gmm, fitted.gel, residuals.gel, plot.gmm, plot.gel,formula.gmm, formula.gel, charStable, specTest,
specTest.gmm, specTest.gel, print.specTest, momentEstim.baseGmm.twoStep, momentEstim.baseGmm.twoStep.formula,
momentEstim.baseGmm.iterative.formula, momentEstim.baseGmm.iterative, momentEstim.baseGmm.cue.formula,
- momentEstim.baseGmm.cue, getModel.baseGmm, getModel.baseGel, FinRes.baseGmm.res, momentEstim.baseGel.mod, momentEstim.baseGel.modFormula)
+ momentEstim.baseGmm.cue, getModel.baseGmm, getModel.baseGel, FinRes.baseGmm.res, momentEstim.baseGel.mod,
+ momentEstim.baseGel.modFormula,tsls,summary.tsls, print.summary.tsls)
S3method(summary, gmm)
+S3method(summary, tsls)
S3method(summary, gel)
S3method(print, gmm)
S3method(print, summary.gmm)
@@ -22,6 +24,7 @@
S3method(formula, gmm)
S3method(print, gel)
S3method(print, summary.gel)
+S3method(print, summary.tsls)
S3method(coef, gel)
S3method(vcov, gel)
S3method(confint, gel)
Modified: pkg/gmm/NEWS
===================================================================
--- pkg/gmm/NEWS 2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/NEWS 2011-11-29 22:02:25 UTC (rev 42)
@@ -5,7 +5,12 @@
values provided by the user (for linear cases) or the first step GMM.
o You can now trace the convergence of the iterative GMM with the option traceIter=T
o The weights for the kernel are also fixed for iter-GMM. It is faster and I don't think it should change at each iteration. I am open to comments on that.
-s
+o A function tsls() has been added to facilitate the estimation by 2SLS. The user does not have to worry about selecting the right gmm options
+o summary and print Methods have been added for tsls objects. The summary prints the f-statistics of the first stage LS
+o SmoothG for GEL uses now the kernapply() function which is more efficient.
+o Something the GMM converge to weird values which is sometimes caused by bad first step estimates used to compute the weighting matrix.
+ Summary() prints the initial values to have more infortmation when convergence fails.
+o There was a bug in specTest() for GEL. The degrees of freedom for the J-test were wrong. It is fixed.
Changes in version 1.3-8
Modified: pkg/gmm/R/Methods.gmm.R
===================================================================
--- pkg/gmm/R/Methods.gmm.R 2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/Methods.gmm.R 2011-11-29 22:02:25 UTC (rev 42)
@@ -29,10 +29,45 @@
ans$algoInfo <- z$algoInfo
if(z$met=="cue")
ans$cue <- object$cue
+ if (!is.null(object$initTheta))
+ ans$initTheta <- object$initTheta
class(ans) <- "summary.gmm"
ans
}
+summary.tsls <- function(object, ...)
+ {
+ ans <- summary.gmm(object)
+ k <- object$dat$k
+ fstat <- vector()
+ fstat[1] <- object$fsRes[[1]]$fstatistic[1]
+ df1 <- object$fsRes[[1]]$fstatistic[2]
+ df2 <- object$fsRes[[1]]$fstatistic[3]
+ for (i in 2:k)
+ fstat[i] <- object$fsRes[[i]]$fstatistic[1]
+ pvfstat <- 1-pf(fstat,df1, df2)
+ names(fstat) <- colnames(object$dat$x)[(object$dat$ny+1):(object$dat$ny+k)]
+ ans$fstatistic <- list(fstat = fstat, pvfstat = pvfstat, df1 = df1, df2 = df2)
+ class(ans) <- "summary.tsls"
+ return(ans)
+ }
+
+print.summary.tsls <- function(x, digits = 5, ...)
+ {
+ print.summary.gmm(x,digits)
+ cat("\n First stage F-statistics: \n")
+ if(names(x$fstatistic$fstat)[1]=="(Intercept)")
+ start=2
+ else
+ start=1
+ for (i in start:length(x$fstatistic$fstat))
+ cat(names(x$fstatistic$fstat)[i],
+ ": F(",x$fstatistic$df1,", ",x$fstatistic$df2,") = ",x$fstatistic$fstat[i],
+ " (P-Vavue = ",x$fstatistic$pvfstat[i],")\n")
+
+ }
+
+
print.summary.gmm <- function(x, digits = 5, ...)
{
cat("\nCall:\n")
@@ -51,6 +86,12 @@
print.default(format(x$stest$test, digits=digits),
print.gap = 2, quote = FALSE)
cat("\n")
+ if(!is.null(x$initTheta))
+ {
+ cat("Initial values of the coefficients\n")
+ print(x$initTheta)
+ cat("\n")
+ }
if(!is.null(x$algoInfo))
{
cat("#############\n")
Modified: pkg/gmm/R/gel.R
===================================================================
--- pkg/gmm/R/gel.R 2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/gel.R 2011-11-29 22:02:25 UTC (rev 42)
@@ -161,16 +161,22 @@
rt <- length(w)
if (rt >= 2)
{
- w <- c(w[rt:2], w)
- w <- w / sum(w)
- rt <- rt - 1
- sgt <- function(t) crossprod(x[(t-rt):(t+rt),], w)
- x[(rt+1):(n-rt),] <- t(sapply((rt + 1):(n - rt), sgt))
+ rt <- length(w)
+ if (rt>1)
+ {
+ w <- c(w[rt:2], w)
+ w <- w / sum(w)
+ w <- kernel(w[rt:length(w)])
+ }
+ else
+ w <- kernel(1)
+
+ x <- kernapply(x,w)
sx <- list("smoothx" = x, "kern_weights" = w)
return(sx)
}
else
- sx <- list("smoothx" = x,"kern_weights" = 1)
+ sx <- list("smoothx" = x,"kern_weights" = kernel(1))
return(sx)
}
@@ -237,7 +243,7 @@
return(rhof)
}
if (ncol(gt) > 1)
- rlamb <- optim(rep(0, ncol(gt)), rhofct, control = list(maxit = 1000))
+ rlamb <- optim(rep(0, ncol(gt)), rhofct, control = list(maxit = 1000,parscale=rep(.01,ncol(gt))),method="B")
else
{
rlamb <- optimize(rhofct, c(-1,1))
Modified: pkg/gmm/R/getModel.R
===================================================================
--- pkg/gmm/R/getModel.R 2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/getModel.R 2011-11-29 22:02:25 UTC (rev 42)
@@ -28,7 +28,7 @@
if(is.null(object$weightsMatrix))
{
- if (object$vcov == "iid")
+ if (object$vcov == "iid" & object$wmatrix != "ident")
{
clname <- "baseGmm.twoStep.formula"
object$type <- "Linear model with iid errors: Regular IV or 2SLS"
@@ -182,15 +182,14 @@
rgmm <- gmm(P$g, x, P$tet0, wmatrix = "ident")
- P$bwVal <- P$bw(lm(P$g(rgmm$coefficients, x)~1), kernel = P$wkernel, prewhite = P$prewhite,
+ P$bwVal <- P$bw(centeredGt <- lm(P$g(rgmm$coefficients, x)~1), kernel = P$wkernel, prewhite = P$prewhite,
ar.method = P$ar.method, approx = P$approx)
- P$w <- P$weights(lm(P$g(rgmm$coefficients, x)~1), kernel = P$kernel, bw = P$bwVal, prewhite = P$prewhite,
- ar.method = P$ar.method, approx = P$approx, tol = P$tol_weights)
+ P$w <- smoothG(residuals(centeredGt), bw = P$bwVal)$kern_weights
- P$g <- function(thet, x, g1 = P$g1, w = P$w)
+ P$g <- function(thet, x, g1 = P$g1, bw = P$bwVal)
{
gf <- g1(thet, x)
- gt <- smoothG(gf, weights = w)$smoothx
+ gt <- smoothG(gf, bw = bw)$smoothx
return(gt)
}
}
@@ -198,7 +197,7 @@
{
P$k1 <- 1
P$k2 <- 1
- P$w <- 1
+ P$w <- kernel(1)
P$bwVal <- 1
}
class(P) <- clname
Modified: pkg/gmm/R/gmm.R
===================================================================
--- pkg/gmm/R/gmm.R 2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/gmm.R 2011-11-29 22:02:25 UTC (rev 42)
@@ -42,6 +42,15 @@
z
}
+tsls <- function(g,x,data)
+{
+if(class(g) != "formula")
+ stop("2SLS is for linear models expressed as formula only")
+ans <- gmm(g,x,data=data,vcov="iid")
+class(ans) <- c("tsls","gmm")
+return(ans)
+}
+
getDat <- function (formula, h, data)
{
cl <- match.call()
@@ -126,8 +135,9 @@
{
if(type=="2sls")
{
- fsls <- lm(xm~hm-1)$fitted
- par <- lm(ym~fsls-1)$coef
+ restsls <- lm(xm~hm-1)
+ fsls <- restsls$fitted
+ par <- lm(ym~fsls-1)$coef
if (ny == 1)
{
e2sls <- ym-xm%*%par
@@ -182,6 +192,11 @@
value <- crossprod(gb, w%*%gb)
res <- list(par = par, value = value)
+ if (!is.null(type))
+ {
+ if (type == "2sls")
+ res$fsRes <- summary(restsls)
+ }
return(res)
}
@@ -215,6 +230,13 @@
.objCue <- function(thet, x, P)
{
gt <- P$g(thet,x)
+ if (is.null(P$fixedKernW))
+ w <- weightsAndrews(lm(gt~1), prewhite=P$prewhite,
+ bw = P$bw, kernel = P$kernel, approx = P$approx,
+ ar.method = P$ar.method, tol = P$tol)
+ else
+ w <- P$fixedKernW
+
gbar <- as.vector(colMeans(gt))
if (P$vcov == "iid")
w2 <- P$iid(thet, x, P$g, P$centeredVcov)
@@ -227,7 +249,7 @@
gmat <- P$g(thet,x)
class(gmat) <- "gmmFct"
}
- w2 <- vcovHAC(gmat, weights=P$fixedKernW, sandwich = FALSE)
+ w2 <- vcovHAC(gmat, weights=w, sandwich = FALSE)
}
obj <- crossprod(gbar,solve(w2,gbar))
return(obj)
Modified: pkg/gmm/R/momentEstim.R
===================================================================
--- pkg/gmm/R/momentEstim.R 2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/momentEstim.R 2011-11-29 22:02:25 UTC (rev 42)
@@ -115,17 +115,17 @@
return(obj*2)
}
argDots <- list(...)
- allArgOptim <- list(par = res$par, fn = .obj1, gr = gr2, x = P$x, w = w, gf = P$g, INV = TRUE)
+ allArgOptim <- list(par = P$t0, fn = .obj1, gr = gr2, x = P$x, w = w, gf = P$g, INV = TRUE)
allArgOptim <- c(allArgOptim,argDots)
res2 <- do.call(optim,allArgOptim)
}
else
- res2 <- optim(res$par, .obj1, x = P$x, w = w, gf = P$g, ...)
+ res2 <- optim(P$t0, .obj1, x = P$x, w = w, gf = P$g, ...)
}
if (P$optfct == "nlminb")
{
- res2 <- nlminb(res$par, .obj1, x = P$x, w = w, gf = P$g, ...)
+ res2 <- nlminb(P$t0, .obj1, x = P$x, w = w, gf = P$g, ...)
res2$value <- res2$objective
}
@@ -136,7 +136,7 @@
res2$value <- res2$objective
}
- z = list(coefficients = res2$par, objective = res2$value, k=k, k2=k2, n=n, q=q, df=df)
+ z = list(coefficients = res2$par, objective = res2$value, k=k, k2=k2, n=n, q=q, df=df, initTheta = res$par)
if (P$optfct == "optim")
z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message)
else if(P$optfct == "nlminb")
@@ -185,11 +185,12 @@
if (P$vcov == "iid")
{
res2 <- .tetlin(x, diag(q), dat$ny, dat$nh, dat$k, P$gradv, P$g, type="2sls")
+ initTheta <- NULL
}
if (P$vcov == "HAC")
{
- w=diag(q)
- res1 <- .tetlin(x, w, dat$ny, dat$nh, dat$k, P$gradv, P$g)
+ res1 <- .tetlin(x, diag(q), dat$ny, dat$nh, dat$k, P$gradv, P$g, type="2sls")
+ initTheta <- res1$par
if(P$centeredVcov)
gmat <- lm(g(res1$par, x)~1)
else
@@ -202,7 +203,7 @@
res2 <- .tetlin(x, w, dat$ny, dat$nh, dat$k, P$gradv, g)
}
- z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df)
+ z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, initTheta = initTheta)
}
z$gt <- g(z$coefficients, x)
b <- z$coefficients
@@ -237,6 +238,9 @@
names(z$coefficients) <- namex
colnames(z$gt) <- nameh
}
+ if (P$vcov == "iid" & P$wmatrix != "ident")
+ z$fsRes <- res2$fsRes
+
class(z) <- paste(P$TypeGmm,".res",sep="")
return(z)
}
@@ -265,15 +269,14 @@
}
else
{
- w=diag(rep(1, q))
- res <- .tetlin(x, w, dat$ny, dat$nh, dat$k, P$gradv, g)
+ w <- diag(q)
+ res <- .tetlin(x, w, dat$ny, dat$nh, dat$k, P$gradv, g, type="2sls")
+ initTheta <- res$par
ch <- 100000
j <- 1
while(ch > P$crit)
{
tet <- res$par
- if (P$vcov == "iid")
- w <- P$iid(tet, x, g, P$centeredVcov)
if (P$vcov == "HAC")
{
if (P$centeredVcov)
@@ -296,9 +299,11 @@
cat("No convergence after ", P$itermax, " iterations")
ch <- P$crit
}
+ if(P$traceIter)
+ cat("Iter :",j,": value=",res$value,", Coef = ", res$par,"\n")
j <- j+1
}
- z = list(coefficients = res$par, objective = res$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df)
+ z = list(coefficients = res$par, objective = res$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta)
}
z$gt <- g(z$coefficients, x)
b <- z$coefficients
@@ -403,6 +408,7 @@
}
else
{
+ initTheta = res$par
ch <- 100000
j <- 1
while(ch > P$crit)
@@ -471,10 +477,10 @@
ch <- P$crit
}
if(P$traceIter)
- print(c(iter=j,Objective=res$value,res$par))
+ cat("Iter :",j,": value=",res$value,", Coef = ", res$par,"\n")
j <- j+1
}
- z = list(coefficients = res$par, objective = res$value,k=k, k2=k2, n=n, q=q, df=df)
+ z = list(coefficients = res$par, objective = res$value,k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta)
if (P$optfct == "optim")
z$algoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message)
else if(P$optfct == "nlminb")
@@ -499,6 +505,8 @@
momentEstim.baseGmm.cue.formula <- function(object, ...)
{
+
+ fixedKernWeights <- TRUE # to be changed or included as an option in gmm() in future version
P <- object
g <- P$g
if (is.null(P$data))
@@ -524,17 +532,30 @@
{
if (is.null(P$t0))
{
- P$t0 <- .tetlin(x,diag(q), dat$ny, dat$nh, dat$k, P$gradv, g)$par
- P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the first step estimate of Theta"
+ P$t0 <- .tetlin(x,diag(q), dat$ny, dat$nh, dat$k, P$gradv, g, type="2sls")$par
+ initTheta <- P$t0
+ if (fixedKernWeights)
+ P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the first step estimate of Theta"
+ else
+ P$weightMessage <- "Weights for kernel estimate are variable inside the objective"
}
else
- P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the initial value of Theta provided by the user"
+ {
+ initTheta <- P$t0
+ if (fixedKernWeights)
+ P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the initial value of Theta provided by the user"
+ else
+ P$weightMessage <- "Weights for kernel estimate are variable inside the objective"
+ }
- gt0 <- g(P$t0,x)
- gt0 <- lm(gt0~1)
- P$fixedKernW <- weightsAndrews(gt0, prewhite=P$prewhite,
+ if (fixedKernWeights)
+ {
+ gt0 <- g(P$t0,x)
+ gt0 <- lm(gt0~1)
+ P$fixedKernW <- weightsAndrews(gt0, prewhite=P$prewhite,
bw = P$bw, kernel = P$kernel, approx = P$approx,
ar.method = P$ar.method, tol = P$tol)
+ }
if (P$optfct == "optim")
@@ -550,7 +571,7 @@
res2$par <- res2$minimum
res2$value <- res2$objective
}
- z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df)
+ z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, initTheta=initTheta)
if (P$optfct == "optim")
z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message)
else if(P$optfct == "nlminb")
@@ -604,6 +625,7 @@
if(class(res)=="try-error")
stop("Cannot get a first step estimate to compute the weights for the Kernel estimate of the covariance matrix; try different starting values")
+ initTheta <- res$coef
n <- nrow(res$gt)
q <- ncol(res$gt)
@@ -622,7 +644,7 @@
}
else
{
- gt0 <- P$g(res$coef,x)
+ gt0 <- P$g(res$coef,x) #Should we compute the weigths with the initial value provided?
gt0 <- lm(gt0~1)
P$fixedKernW <- weightsAndrews(gt0, prewhite=P$prewhite,
bw = P$bw, kernel = P$kernel, approx = P$approx,
@@ -631,11 +653,11 @@
if (P$optfct == "optim")
{
- res2 <- optim(res$coef, .objCue, x = x, P = P, ...)
+ res2 <- optim(P$t0, .objCue, x = x, P = P, ...)
}
if (P$optfct == "nlminb")
{
- res2 <- nlminb(res$coef, .objCue, x = x, P = P, ...)
+ res2 <- nlminb(P$t0, .objCue, x = x, P = P, ...)
res2$value <- res2$objective
}
if (P$optfct == "optimize")
@@ -644,7 +666,7 @@
res2$par <- res2$minimum
res2$value <- res2$objective
}
- z = list(coefficients=res2$par,objective=res2$value, k=k, k2=k2, n=n, q=q, df=df)
+ z = list(coefficients=res2$par,objective=res2$value, k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta)
if (P$optfct == "optim")
z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message)
else if(P$optfct == "nlminb")
@@ -711,7 +733,7 @@
rhof <- -sum(rho(gt, lamb, type = P$typel, k = P$k1/P$k2)$rhomat)
return(rhof)
}
- rlamb <- optim(rep(0, ncol(gt)), rhofct, control = list(maxit = 1000))
+ rlamb <- optim(rep(0, ncol(gt)), rhofct, control = list(maxit = 1000,parscale=rep(.01,ncol(gt))), method="B")
z <- list(coefficients = res$par, conv_par = res$convergence, lambda = rlamb$par)
z$conv_lambda = paste("Lambda by optim. Conv. code = ", rlamb$convergence, sep = "")
rho1 <- as.numeric(rho(gt, z$lambda, derive = 1, type = P$typel, k = P$k1/P$k2)$rhomat)
Modified: pkg/gmm/R/specTest.R
===================================================================
--- pkg/gmm/R/specTest.R 2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/R/specTest.R 2011-11-29 22:02:25 UTC (rev 42)
@@ -44,7 +44,7 @@
LM_test <- n*crossprod(x$lambda, crossprod(khat, x$lambda))/(x$bwVal^2)
J_test <- n*crossprod(gbar, solve(khat, gbar))/(x$k1^2)
test <- c(LR_test, LM_test, J_test)
- df <- (ncol(x$gt) - length(x$par))
+ df <- (ncol(x$gt) - length(x$coef))
ntest <- noquote(paste("Over-identifying restrictions tests: degrees of freedom is ", df, sep = ""))
vptest <- pchisq(test,df,lower.tail = FALSE)
test <- cbind(test,vptest)
Modified: pkg/gmm/inst/doc/gmm_with_R.pdf
===================================================================
--- pkg/gmm/inst/doc/gmm_with_R.pdf 2011-11-01 17:58:07 UTC (rev 41)
+++ pkg/gmm/inst/doc/gmm_with_R.pdf 2011-11-29 22:02:25 UTC (rev 42)
@@ -118,34 +118,34 @@
<< /S /GoTo /D [78 0 R /Fit ] >>
endobj
93 0 obj <<
-/Length 3301
+/Length 3298
/Filter /FlateDecode
>>
stream
-xÚ]sÛ6òÝ¿ÔLÅ øÕ·´¸é%swïfnÒ>Ðmi*ª(Åñ=Üo¿ýAr<äb±X,öJ£Ç(noRyþtwóæ}F¦L¬É]t÷Õ6qYÖ$ÆÕÑÝ2úÿ<3q·
ÿö§ã»ÇÙ<+óø¶ÅöÐÀcëÿ"`ÉÚ#|¬:øò° 2ï["0c`#©ÝröÇݯQV$.Ï¢9pR9yqÅwÄâúðcü#àïÏYfã¦[i<bî g\ärɲ,1±#¿ ÈØËs8sÚ¤.hîlR¸Qÿt[äêÐò&^!w§þëg¶Om6˳2nêÍ»»¿n¬Ä£ÊDE&pÑb{óå4Zü×(M²ºk9øèóÍ?ýá¹´QÔ
-O[ÖI^QVKåßÞ;pÈj³8/çÄÞ¼¯Bs hËÜ !àÝDÞp¤äºGrûÙ6
-R {Déf¶z¬ø?4J[âHn|kydËH0kÙ6È÷3[ÅÏ©UËï¬<xÍFHªþàø5v ËàîA;QW:Òj¨¥sãÚ9x°hea<øþ8Þ²ã¸.
-m¼ÃæZýZ1§ß¬HY¯ÖÈiacÝUË:[Ö¡*uåEu¦Öá4Im©tÁ³¼G!Z¥Á¬L2°ò¸Ý^RÅeAIfóÜÖñ[Þ**âaM³» ØjáÍ?»Ã°uä¶Óì~OMÖ²ý±¨«'ÃóÈáw>* L¤v¸$7½¨ñBFÑiU5ißÓhÇò&È
JõBIfÇCC'ÔE öÝÎ+ËQTvðp¹=M5:ñH7Å23çâ=jYX»Ãid]KS®¥;=®J¸_I* £´¾á÷õcÓKP¸¤E·£@Bz= 4;YÉ!: Ú-¯?!Yoð?²Õ3#mÕ.XxH5`B,æÝpBf7ÿ<:<FúúÛíMôp2
-«w^³;w¥w®®S°OóôE&¶©IϦâ4Ã,íq¥{Ýx¯:BÌ2/ðÌÞ¥c<x7~kôüx*[¯/^ñègý ú÷æß$bÙÝDÖà Í#wµ¿=?ÃßSwåAüB0ÙaÔ7ê~ìÿ=¶¨ªpê5q¿¦¼ê2apÙ_ª´KÕøPmú²c6Ëè#$EXì2:ó¶É0ÖÓ,²W/c
-c³?iÌMäMî8Y°ÚÊú¬°÷Sw³1y¯ìÃKe9½öãHÛd@½ýæ§v»ÑNת(ÆùïÍÀØækIƤÖòí½ ¯¶»"ʹ·õ%¨1ÐDȺla."cQ&iV1l*wsjµ{mîærd® ¤Ò:°&ÈEͪÎx1C¶7ÏÓ4þàSh
-çµËÓâ(^ìë¹)
-¢8·.±E´µ,ÉÁ]5'ÆMÑõÝÂç'ùRÓóûýcÍlv<¶fS"B
-86¸kH·Þ¥#±½H8Z°BA*qЬè\CÔL¶ñÌ_
-MaV%ð#t¿lµxàl|ðwyÈ/ýá>[´ß @°Ð/D±owñÆÔ¯7¦®ìxÖáI#.íúpCï':Ùz}(n½¤°6ª]rnGB5§%;<RÒðGßrJCXtV lø1L!Õb,:X¼eýz¨OÕ<<¥pf«AdÂÍ8RÁ(RÛªû¿P⸤my}ü,búÁ9rw8
-µ¶#zMþ2Eu¦ÍýF) æ߬»£'íø$
-§Ýð
Ç1Güq8cy+4ü d£?iDÀMÖ«u¿Ùþª{ÙNYp0TPÏÍãcÇ£^ð¶×
-qBbfjw8²éκCþÞÊê¨Tø~[WïÙ,8az¢µ²8BÛM/8æv¢ôA1!,Z(SOR¶G_)ô7TLÝm{ÛGàB¶r jm£
-+'Å)/-G)89f3äR¶ÔßÇ¡^ L7?}äï)yå"¯Ëå©´%zkv¾JsB`aáկгr²ÄC
â}Yù'Ã(ìÊ ºNã×7!*ÆLc½&cv |äWRyÁ7Tg³>wÙû°o³ÜîçwÅ©Oh¶µ=ËÄs©¸;Ú,HÄ©Â:T¯÷pBjô@¾
-ÐÛ 8ÅíÈøZVõ©§oIÙ:Ó.: m©áG¯±è¨¹¾vAUÚbîô½kr3!I<Æ(^* BÕùYýܲÑ8Âý©,@Ãø=GpÐÖ(TâÀÑËVÚ >hÞlv¢8OÞ½5ÚFhdº¡=»Ìñì¶A:_¥`SÈÒ[
6 2²É=iÈY2eXÒ*÷'5»A± üDJÔPs©åéj!°ÀRMû%Rw5)í[åMÏΩO¹XR ÁÏBéh7>¢¯¥pÂö?GÎ)r¯ù¿|Âek{oåC'¨g\T¨./üXÊvãxçõ{)ãûKk¥Ì¹´|Q
-OÇYÊ ÁeyúlàZ0ËF96®>KÒ¬Ä02¡þUê]%L¯ç/ôB);o²ÞY64QeZ(ÂÚWðfàHAó~¢vËlb*_NERã;SÔ Â5þJå9ªs¹â|¦È%1[%ÆúîÐseA¥I0@Á|$)@ÌàÔo¶8ö<qY~= s»ÕÀ ïûQBÎpyÒ0úM~§¨A^w>(bÙ·}Hý-9g
-äÈ]g±w$¸
-¹R?×Ú-êEdUØkjF b<©â¯¨ºòûP}ʤ®Þ}ØAp¦L²ÒÂÚåÍ@â
-³LÀÇÊ5ÓÆ×D'îÛB(κxE¾ >'͵tÖ¾ÿæÃ6;uhÇÁP9Å°HeâW
-ÌD=JX<i~¢Á V¬Äë!êpÁµsÖïIGÏ+u.3£3u&Yäè°ÓHrÆ7âñµ§LIfhzÙ|¨ûà 0B²k%C¹{j$ËhfUEé Ó¤ÀÉP`¢9½Ê¸Ì&®»Òé°Mü¸@
-rIÒ¤6¤¦¸%εßù\yÑûBUâØhêAu°PUé¤ç -ÏÀЬÈqÐæ9ñ8¤isÑf/óBõÑÔBÀ:ÃÃõÎ-LÐ9â
-Aƺn' mXá2ÿUõº^¾ª×TÓ½&$àÝvàx[YyÔS²ÎÛ1Á¬
-\£º! ùf-õ%×ÃÕKAñø@µ(}2NûîÄ,Ã'g¯Æ}3Gõ¤_kîÞÓ½Í÷»÷Þ«þü¯wºàõ#yóÞ¦¸ü2ü{eI×ÚjOëü¶&Á{ ;aÞ£Ôôê°õw«r%Ðp½Í4ØCÖcÉ?wY¥ª-ØâóZç×ôeÎó íËnèùR¹ÂiUò3rñß)J ¹´Â½îÖ/5!ÍJA )s¤ãfl1,ñåc5¡ïWr*¡Üµ´XÓôj§ø¤õèñ^%Öº?oG?ÉÉ´~eg».¯È:
-]ö©ö¯;õtt7H)²>-Hë=-Ì|] £¯ë
-ùí@7êÌ_.$¶(_º\2eßåøÉ(/é5$ø6Z6)LØü÷yUI]MFÁÔ+ýÁ¦mË©ºþ«ï¾s[þ/(Äß\\W8ó:CÙøðîè<tZ|Xþ± k1åÝï!.µ,ÄÊ@Çß½9ý z ¸p/õáº27Xì+ÚM7ã%¶¤æ>
-KexiÊdüH2ùs¬@3þ¶vi
+xÚksÛ6ò»?R3Càýv7½dz×ønæ&íZ¢-M%Q¥8¾_ûÂåx2I`±Xì{ÊÇ$Onoryþtwóæ}'ªÎ´*Mr÷X¢Ij2elr·L¾¤?ÏTÚoá¿ýé¸Çîq6/ê2½íð£;´ðØÀßú8°äÉOÝ>V=|ù±Fdß·` ÇM¨vËÙw¿&E²Hæ@U5SòâïÄõÇAãq þþ:íh§#âphÆí/eÌ¢(2Uh`ò»À ï¼²Ô3×¹Îl]%s£³ÊTúOÄÛ!Uùó
+©;
+ðß0ÓUúG®YYÔiXoÞÝÝü}£`'@4*©<y$íÍ?ód ã¿&yVØ&y"¨mbÂoÏ7ÿò ¹ÖÍl¥+¤S×6+mTy\üöÈQ ©íâH´#{ó¾ÍUYe -sRBt·~H
+ðuèö³9¸ C&¤é:}xdÅ_üq¤YZÜEpÛâ[Ç3[UËN´A6¼é&}¨V¿?²ò Ú túó[ÖØûîE]aêH»¡Îɬ1ð$=`´;ÑÊJy
+ðý%
+p¾c
+Æy]´Úx%ÃuîkÅzz*g½Z#h¦NÝ©:ÖÙÚƪ ÖUVÍZÇ2VyëÚ0È¿fe¶´É£%E`5²äq»½ÄÛ!Í楶é[>**âaM³»±%)ÔÂ
+~ö;[ahg¥nDbý¹*:¶?fuÓðbx3ü΢ÌIj[`¾D2N«±¤!8O³=óF.TjLNA`uM=PGÚ÷;¯,GQm:ÁÃå ö(f$àñH7Å2cÒ=jYX·Ãed]KsT!Hz\ñ(Á~%<8ÆÀ0rë~oQ?6]ØÂ
-úÒë ÒîdKApbtZ^~8"@Þâ£$z68ÊUÏ´uvÁÌCü¬l
+ºáÌnþeerxLÜëï·7É)(<®ZÛ îܲ;7µwî\§@ÿù8Uªs-ÅeIÚãN÷îàÓYdbQx:xxÿÄx önüÑèùáZ§l{ñH?ãê§Ohþ-H&ÐMØÜ*6kÜeV[ /ÿ{~¿§þ0+5ø
h±Á¨¯cø÷o^ö0ßÞy¿Hob¿Y§.P¬Eù&÷"4´3¢áå|¯37#{maÏ]û÷I¿9;5aÉ\YéR²à6ª!©õ>D±2 %§þ$¶£Ê_Ù-% 2#aª5ÃmÞ öî_ÚïFÁpíΣÿÞÀ@_"X0¢ZË·wM0x-JÂÔ4+çÞà_æ :Bê¥+u#:Ë:²©Î@¾UYóÚÎgå&+LE¥6`R]d-x3E8/ó<ýàóhä
+'·ËÓâ(®ì깪*Â8×&ÓU¹uÌÉMæIË/ò%!KPÅD¾DÃèÿnáóüc
©øý>ZDC+ÛÏn
+¡[±6
+ãÖû5òæ0·î EV(È'.5:×çJS c<óWKKTþ8ºßG¶ËÊj§£ÎC ï.ð!½ù;÷Ü¢ûN~!C·»:ʾ&è(Ûè+A¬cI"Ñq}Ì¡w,z9ó6ûÝI'>aÔ0¹1îÜ
4¾¨-ç5;<R¥á¡c?LP$+lùñØ!¯\
+#ÊÝ|¡H°°xËúõ,£>_;ðôÂEX.ãë Lsú)Ü¢!¹nªtø9ûHîF£Â¯
M?àpÉBsÔN¡à9¢×Äå_)]tδ½ß"ìè`þÃêC`wô¤#¤0³åá×ÝxñÇ cy+´ü c8¹´KvØá*9N]qÚʨg-Ócϳ^ðvpY?â(ÄôTï6q¥Ô½¯vCßÉî¨Tø²~]×WïÙ*0=Q:ÙE í&Ws{Qú¨`mT1À')Û£/O*æïº,½íãàÂåcT²mÂÊæäIqÉKÛQN¦ÝH¢"¯!¤Ã&Àû84È ã-ÓOù{_¥ðër{ªo ߯Ã9Á°¸z+ìkËô¢¬óP¡ áòCWö`v(rè:U_ß©3Í
+.[tóQò×]yÁ7¡tÎf}O9ø°\o³Üî#çwÅ[)Oh¶Ve 4ÄséÚq²;YÚ.B$âTaGÙ7e×xCjô@¾
+À»¨BÅãÈüZvõ©§ïKi[¸V: í¨åÇàb# èèr@|í¢Ò´ÃÜñ{×r$cÏ`J%L)lyVDwl4Få°ãpd,KBÐ2üÀ´uÅ*qâèy+=>¸¼É8ìD'pSBx÷Ôº^¢DÛ(Ð
+׸+¯îZÄóUªÆ9
,Wp¢rÝlrO.ä,Ï2®k ÷'gvA± üDJÔR©ãåÎB`¥(kBÔdJý1 º¤tèmNvÆù´Å(U ü¬#àÆGôµ4N#DØ×~àçÈ9åRîµ?ðO¸´åк÷V¯ÊÕÅã
ËÙn¼w^¹¡Â0¾)HZ;ÌK˲A¢t¦l Xæ§Ï®³Â¸¨#bãê³Æ ÍJ¼#ê_c¸%Ìàä/ôB1Ûo²ßY64Qej(Â*ë«ÈOx=p¤ y?Q»:S¯I'ËÖ*«kqKJÍí© lPá*¯Îr0ÕÒÁ|¦È%2ÝdJû¶nh¼2#Gé
a1ß$I :ÑͶ b/3S×08·[8á}?ªUÈ.O®~F?StA^w>84D²ï;ûjýU9g
+äÈ]©w$¸6¹R?[×2êEMÜkjF(xr¿h$Quÿäû÷±úÔµÕD?î UgEFaíòz óYgàcå®iãk¢7o!Á#å&]/Á®t6ßÊËpÌÞ9´c0TNqÄÄ!,RøÕCf¢Ï%,\~âL¬$X×CÐp˵SÖ£ïIGÏ+u.Q#UJÉ,|4Ø
i%å»ñø:pWk9ø*A÷ 0B´kr!öÔ~ ,_B¢5
+¥'K/P`¢Rwq3MÜö*¥ópLü¸@
+r¥Iܤ6¤Kqkkò%>påEï§ÇÖE0ÀUç³j%Ýü<¡å]&r%´eÉÌA8i®9Êp³y¡úÀhª!`EÅáázçHW*êq
CuýN\Ã
+·ùשּׁ÷Ð_ôpòU½&[M÷wÛãídçQOI3nÇ ßN°6pjBòKµð¨/¹~V/5}Æã3q"Ô¢ôQH×ßøp'f·<9{U&êª$ýZs÷.o¾ß½÷þ3ìúó¿ß¹
+¯äÍ{'àòë\òtì6)2[Z×j¥u~eáeO1 ïQKNÎÜ=Õaë/XåJ å<z%9¸`iNnÇ ï²¥ª®ØâóZçWW
ôeÎó שLèùR¹Ê¸ªä;fdÒß(J ¹´Ê¼îê/W!ÍFQ 1s¤çf1.ñåc5¡ïWr*¡+<µ´Xóüj§øäêÑ%ý֦·£ßåxj_ÙÙ¶õRG¡ ëc j.ÖóïÜ
+Â|Çå4½Fu̾®+äüݨ~¹6éª~érIÕ|×ã&L¾¦cXHðu ¸tV©2²ù7ïË<i2[UMfÁÔ÷«!L7ºSu÷£¬¡ÿÎmdø¿ w~sq]aÔëVã_yÀ»WÀóлâCó/X)ïn}qéÊB¬Ü¯!@ümÜs¿c@·2<H}x î¬6ûݦñÛHJR
+k
¤Ã2¾4e4þ
+$üMV¤ÿV1j?
endstream
endobj
78 0 obj <<
@@ -267,47 +267,34 @@
/ProcSet [ /PDF /Text ]
>> endobj
135 0 obj <<
-/Length 3991
+/Length 3989
/Filter /FlateDecode
>>
stream
-xÚÍËã¶ñ¾_1GMÕ& ðWë½vÊTy'åíG¢±$EiÇ»|{ú 43±/)×X Ð ýî6½Yߤ7ïÞ|uÿæoê,M´ÉnîW7uvSUÒâæ~yóÓ,¿ýåþï cB ¬lÒT°Á¼»ÍfïßßÎÉgí>Ø6Ôÿ5ü}ÏO[hàoÃß?àÒoRAeÇ\÷"©Ëwú ³{]4³4Û#üï¾K+g3Üd@z¶ïpÃ
-ÏÉ+B«¨fVÆÕþÄGm· :¥U;n?Ò"ý#twº;)¯gxÍ~ÅÀ&Ðn²Só wºD¤&ü^àg$f'uÔBÓ®@C ß<3Ia¦ÒX·'%6Ø»cÚ?ºÓþz[³vÝ1ûδªÎØ óÓó³2IKåýz¿ &¯¼ÌÆv ã|ÄvÈ¢sùÁAÞöG^·jFâY'YÓèÂ?D¶fY:§;<qet7Á^DÒ
r^"ïÓV¤8a$Û
iÁRsPº1Ïm¢ô&UU1oO ±¿Ç3ZQÛ:=å¬;l@Â_)[5NÍ°ÝáMmñÛÏ"À8TÝ?ÊGÚe × Ø_ßÄ(Ïi.òsZ¤0Búü=|dA=ø?{w1ùì9eû°S!U¥³6S)·6wZÝñ'®¹èI]X¹-a|ç4R r-"ýNÄâÀIqsDÃÃÍÞ½¹ùi^UéìCþcCÚÈÂ-cZ.ÃD¤çÖÏfyÚÉÔ6">"òíAÖïMÁ÷ãÂ
-*¢Hghq;Ñß¹©$_,Kî#£ÛÈqÇà9G 9ê·Ø¶#w´FÄõª êÅÑi
-JPr;/löÝw|lC]ZEÃÛ#úƨe'6ãú¸ûF
;TôÚ'Äìíøp¦: 6â#L
-7~v=uæº~¥ª"¤¨ªª©1W·íÞ QÁ41ûX;
-ÍÁpO÷Å6@кñÉØRÜÅ%Û´
-{²W;VVè*$íÇCåOGCü £8
aôÃÛËYý+ }0µ/CB,}ÎÞ^ûî4¢ùr s2/!òø涶lc2¸Ì6îÐ6·wLH\1¨þÌ
Ä9ÙHhàóÏJU¦³eïx4ððÂ
-rnA¦b²ËÕ)8ïQ6ØAHÃñºÄs¢Xu8PîÓ1ÞvØ!¢*âQö?§YÀÛNãO<²UAÛT³aïîÀEÝáj:\åW³xáïä$[úòÂðZ.gâ&³ªix¿-ÿ|¼-
-vÚg绸½£Ä-XçoÅz9wàÄÙÒ=â¿5Î
kù`;±86xkìâ9>Hø$§XD
-],CÓŹ H1ËpÈ.oÇ»®íü¡q/42b»|ᡸóëÚ°Q yÂ¥r\OÏ;\{ÌY¯YÄ| ¶îSà¯r¹uÔåM±6e/kõÇ¥XGüR³,´;qñä`e²zlT]ÐG=/úÑ;ÞàI]<Ì ý~2$
-KÌÈ¡9ÏÁ±òH~ÑqçßHw¼ÍÙRã~äµ]&ãlHÖ^Ú!FKäC¤÷/í#^ò+kç©Ã£K Ø»²Á8O;Z KMôÉ Ììl©¡E; ü5xHsÂÉö°l»xà¤N"Å4fݻ٦&â×q*; ô+
-<¸a3ΣûvÉIÍÜBÖó9ýö¬vq\1`$±Î4à:EqE8bSYuV,µ'MÇ=8àN mvmuh¨¨uêyèÈu¹ÚRX½Àe=»×´7ëÕþrÆ#d1ÈÂ-¹G }ènçÁ#
v½*u{]èäcµhBtÉ-È®ßn«¢jª !ÄvÔ'ú Î>ìp;H
-C6P?À4ä¿!4þª#äüÁWÚæÀÍÀÈÈ>CÄÝ],Ã7M¤éó)~dU¡=ÄÌlÚr*!\Õvä",{EB}âTÿÑÙFûQ)Ú#ÍÇ_³À)ÙÿýFci!%7pÐêÅBJ]f
-ÚÔõÌ
ÑlîU]×±°¦V½±h1Fæ®k)j-ëmü´S,cÇ;±|´æ4X·bÓqQYd+iyøW¤pôz¬(ßÿÖ¶±TÉs/âïÑïÀrWNó)©hÈ@x>
-q
-ïÔG}ñ°Ö! i© ±N!Ñ&üºRSQÅ=`à]W¾F¿xZrYO-Öû¯$¦8ôÊ@²s~{´,a¬:ôàjÏD î·ûÒC+[Mk" í¯«ÔTW"4dÚßjWdë}FÆ)gÄ+$pç=üÏ0÷ì5
-ÎÍH£ pám>ê qäe!ð<YÕíwÙ]lÏ6Ûå&Û Ê.xý×ÐIÎM`÷Ëd
do ¼ ò¬¹áìÄé¥=.¯él'³tt'Ñ4`Ms
-9Ålk3Ó¨ZçÉ+Þý Øq®m1H¬R)òÛ£W'$k`+áùJLuµÈÒ¹0v¹«Ë¹{oh;ü²¤x¢.ÆéCæt-µæöÆrU/(tÄxåiRÎmi^¹éC!¦N2_ºï¯¬
-ghÜÒL7^R£F$÷?_Áÿ¼´GÒ9úB·C¸^»=¸[!h«és{¡ EÚ¨ó§Ec)3ßÎÙ㤩Rdí WjJCs¤4\jÊZÎx©#Ý#aXV¤)Â0pZ
-ÁÙê} $:.B 8
-ÝÚí5ÕßrÝXðë¶WIæÐÙ]aiV K½ ný»S¥ $âxfEhï¿3 -7;ÌEÙ1(M·µÐÈV#;
-ãC»ÖÄÊG_xóò¥!Üíjäi
-mQÊEm5Òß<\® LÎM¸d\^,Y_§=ãÎ~ÞgeU+k}bm`àlPÀvÖI/ëO'©Æ¹~S7¼©T³ÇÖ¥
-ôUkhRv°n¤özkI$¿«~s¥¸©fºó 9þÔ®0Óµ\V
-ëÜYpuÀEæé/ã#GXø
-N¥ÊùtEÀ_zêKÛ²d®Ñ®-«Pá» cðQãÂ#á}õº×Ò¿R°í½Ö
¸Oh£ú|XÄaö)½\oÐQUÚ @Aê]Ï×éÞà¬egϼv7¹þÇ{Ëk+7è÷aW2¿:¸e¿LüÞo+¿N´}È@0þ]ª¤8«2Ð
-¡ðÙM8á+h^ÓøW|XÈçÁÍÈ)¬n#à{ð5©FJNã[3èî(³ÏîF%õ/'pÕ£â:9» -zcù/ùÆO3ïb$ »Ôsì-p½åâ<]R¼põa^¯b,£õ©v$ü¢bÌWy½ÀWq¹ÏÚã¯>Ä~ñM "jc!ÁhºH¬|
-TëS kÒÙ;îت#ÿìK
>»AïjaSY,7Hqõpk´88}ú£ç&±MgµÂ¦z±¡± k¢#ñBO2¼âßP®ËtTÞ
ϽR=¨s %¬é»è²ø©bg=ºSÏÍÒ£HQVDvÈL-]¹îtë^Ìs¼°Ý?^$1i:ºôÎõ
-+nÄ
-øPë
-;>_½=)GKQÓ¥*Æã^«0åIm_ÕNÝN2%ZY+´1ã)ë,±æe[7y@×m#¥{ZÉêx@îñÃÄìï£=p!íÙ2.÷m{\V5pðU¬©óøûàDÿÀñlÃ¥UR[YíþÓîÇ7Ñç~9dïnÒ«NÒ×O¢¹¶5$v\°C{rjQÔ£RBd·¢ÈþùBèñXa3+Hhüx[ͱ§0üºó^y9¤½½%Ã@òø4\¢Q¼ì:.
ÎË Â³ÕRT&^!ý¬x¡~ îËQëWbÁ5Ì'Vò[\1¢1)WѦIÄÅO-¬éÓ# LkùF)ýq|ºçX-Wâ¥þHÚçãì®Il(^.ï}óô<Td9Ť4âS*F8PaèðP²±ªA =ãºd~;0 UsåË]º&ÉjÐØ Ê])")N{iv;yàç/÷àÝQÇíiG¾{#¤W9LÔó·qª¤¬KOç4?]
-òc¶KVc¯Fwg}E{¤¢â¾ßáu]}¡óØ9±TçUòëÈj8¤+¨þ[É$iPL¸\¡H¦úé"6Émþev²TeL(³_ÞÊV`V.å$7ÍhÍm¬tMÂ/(õì¯üEßLW8_Æä£Ê"¬{¬9·°FZêàn¹;ú\tÂÒLGÌرË$7ºº~ê
-<gs3ËDâ\$× T¢·@s
-/ÆEvå(2íëìägw
-ðKSÊï^=½µò^ôâ=jpóþv3÷תFYs!~ÔE9
-"|
£w#éã°Õbu¨xEËðù¥'@_9Yø2çÈÔË{»¨üÚå+ô*éÕÄ:WÀ@}ºYíÿ®Ñ=GÒzËV/Q¤?þXï5ÒUÔÙ¤¾þe¾æ dxʸá)ÕúÏ
-x[Õ>w©ý»NúÀõj½9\F$ÿHu¢e¦®ÁuÐû!yî.(دwj{üÄ+·¤ûg÷ï$ÂÔ'öÖVÖ0 Ó߯ïßü°uõ
+xÚÍMÛ¶õî_±GíÅHÍôàt'¦ÝÉ!ɸZ5¸%oì_ß÷ ´»M.ÌF ð <¼ï÷ ç7üæí«¯Þ¿úâwSäY·ÅÍû»WÜ4Uµ¦ºy¿¾ùiQÞþòþï cb ¢n³Ú4°Á¼½-ß»4¦\tøXcÛPÿ×ð÷þ|ÜBû÷üý.ý*Tfx,u¥©2W×¼Ó;=Àìª]ÜA³;Âÿ^Ãwmeábâû7¼ç9eChUÍâ¾qDu8qça»Õ-á^`iÕÛ´Èð ]çîÎg*Ýâ¯9Ü1°§ ´»¬ÆÀÔ|Ä.qß+ÜâÄì
¢~@hÚhô[&«lËTëî¤ÄÐÆ
+{wLûÚ_o«zÑmzfßVÕ;a~>a~Qgy¼ßì÷ÃMV֥³ÂtØÓÓRt)"8ÈÛáÈë6íD<]V´.üCbkhÖµx¼÷'βîF#ØHºTÎkä½`ÚG"d;²0XJ`A#¥-AÞ¬iÆáÍø öð÷pbF+JKëòÅÃQiP/ú£¨ÈVð@ )üU²MëÕû7=~ÐÔ±ý,HÕý¬x¤mQp
+ýùMØññ¼Æà"?çU#¤ÏÿB 3Èa@?òÇ£gï.%ý(§ì>ìTHUé¬-TÊ-½V÷ük®RVîcDKßyTDH¿3±8ð_VÝÑðpó·¯n~Z6M¾øgïÿÄØöbã²pËÅfâ0é©õEçv6u!䤧O¢|sÐ
+;BSðýø°B¤ª$RçÄ ':ÜNôwiòä
aÍ}dt{9îç¤DýÛvän¤Ã¸b5ÁaR½©µ8zMA ÊnU[,¾;ð]¬K«³hxwDѵìÄf\w¿W!ƽî$gâ ){;=q³ÃAÇDM øãbáÆÏ~¦§Þ\»ª*BªªÓuÛî½àL²Î»Phv+º¯¶jæØOOÆâuX²¸ÍëŸ'{µce
®IÒx<V~øô4Ä2sFÏ;¼½5ìxG´¦öÓeH¥ÏÛ[Àkß&4_dN5DßÜ:Ë6Æ#ËìiãmKx'AÁÄ£êOÍܸ)XHSL>?àYI°ê|±<F>PXCÞÍq 3ÊôILv¹:Eç=ÊÆvP"Ò0F¼®ñ(V½Ô
ûud·¤¤£ öNF¡¤JÅx8Øö缨xÛkxôG¶j0³bûp&ùîü1[ÔÎÑá8Çâ
¿³léSÈÃ!¸|̪¶åý¶:jvüóñ¶ªØi½;ìÒöB>·,a¿ëåÝ?cdë`ôÿÖxn¬åíÄ"âج±[V<väøD"áïÅ8)Xv-²Mç Å,+Âe$»¼îNº¶[óƽÐÉívò
â.$kã½JÈ#.Uà:||zÚá"Ü[dÎfÃ"þ!jþ8w¹þ"ë.lµ9{1Xk8®Å:â
²â`¡ÛËü'+3Õc£ê;>JèyÖ¾æ
+ÕÅÃØï;í!i`\RFÍy VGò;ÿF¸ãµlÉ~÷#¯í3oCÜi-s¾nñ_ùX»Ì=®]rHÀÞ}NÄy*àØÑÉ Yjú£ON`æÄ`ÏdË
+-ÚKà¯ÁC^8L¶eÛÇ'u9¦1áÙØû½¨an~'¨²Àp§aòïÙóè¾[sR³´õ|EN¿;«Ý@ï0
+ØÈ gÈÃpÊxG8bÓXõ6,µ'MÇ=8àO mvmYôh¨¨uxèÈõ¹ÚZX½ÂUµ[¼×´7ÔþFrÆ#d1ȹG }ènç1
v½©u{]èbµdBtÉ-È®ßn«¢jª(!ÄvÒ' Î!ìð;H
+C6P?À£4ä¿!4þª'äÂÁ[_ÚæÈÍÈÈÈ>ãpÄVýëToÚ*Ëó§Sü"+J!
+1Ù´ãTB¸¬pvâ"£,ûúÄ©þ·3w1î'¥jO4;&|-"§eÿïï5ÆRJm-¤¸ºPdÕƹ
£Ù&Ü«Ú¹TXLSÞXC´#sI×µµõîôS,cÇ[±|´æ<X·bóiQYd+iyøWåpt7UÍïëGÛT*ä9H#ñ÷¿èCw`¹,¯ùÔÈG´Ad ¼8wê£6¡x8ÌëtTHÐX§h~}©©jÒH0ðÊ®+_£=¹¬)¦§kýWSza
+ ÙÆy¿=Zĸ
+6½LúàkOD î]°ûÒC'[Ík" í/«Ô4W"4dÚßhWdë}&Æ©dÅ+$pç=LüÏ8÷ì5
+.ÍD£ pl>ê qäe%ð<YÕíwÙÿ.¹Ø+m>·+M*·}ðúï±&ÀîÉ
+ÉÞHyAX'rÃÙ×+J{|^ÓØNùäN¢mÁï$óKÙV3Ó¨ZçÉw¼ûA°ã\'&Új"R)òÛcP'$k#`áùJLuµÈÒû0v¹ws÷ÁÐöù[5>dIð"«¦BætµæGöÆrU/*t¤xQyVWÞmi^¹éCËPº®¬
+ghýÒL7^R£F$÷¿^Àÿ¼t@Ò;úJ·C¼^·=ø[!i«ésw¡ UÞªó§ES)3ßÎ]NÙ㥩Rdí WjkCs¤´\jÊ:Îx©#
+ÝaXQ¬ªgÂ0pZ
+ÁÙê} $:.B :
+ÝÚí5ÕßrÝXðë ¶7YáÑÙ]aiQK ný§W¥ ¤À¢xaEh"ïC¸3 -7;ÌEYØ)(M·µÒÈ6;
+ãc·ÖÄÊG_ó
+¥!Üíj¹v(Eå¶
+n.×&&^²./t×iϸ³YÙJÕÊÚX8°½uãËúÓYn)g®ßÔÏDê !Íâ¡ó©}kÕlº©½ÞZÉÀïÝ0ƹRÜ6wýÌyÐ/ÌôS-Uã:w]py~ÅËøÈV¡BS©r>_ÑðúRb¶®Ùk´kë&V`ø®À|Ô¸ðH8AÅ£Q½näµô¯là u% þÂÚ¨¾Ö q5̾#¥{ôGD6Pz×Óõgº78kÙ90¯ÛÍ®ÿñàòZâÊ
+z|ØÌÏE·ìßÈûmå÷ÁvH0æÀ¿koUFºÁ0>{1ñ¢ Ç0üsÅÉkðêù<¸Ù y2
£Ém|¡&ÕJÉizkÝ=±S2àÙߨäáå®zqT\§¤bW5£Å s,ÿð%ßôiÆÈó}`z½n¶\§Kg®>ÁëUe´>ÕM_TLù*¯ø*®Y{úÕØÂ/¾©ADmf,"MWYµO>¸&_¼%9è:òϾ¸Té³ôþ¹ö6ÅrW·Fó§?ºyi2ÛÖqV+!éxiJ¡÷ Z*º&:/¤Èø(ÃwüËuOÊ»ð¹WªGu´D5}wb]?UÌCô¬Gw¸y¯¥ô$q2Sk_®;ÝúWË/¤d%lILO.½K½ÂJ±Êf!ÔºbÃÀÎåOW¯`OÊã#fÔt©ñ¸ÇbÐj#Ly¢c;TµsÁ¤Ì¢eNÖmÌô@JWdÖ¼ÄVU¾Wl)ÝÓJVÏruÊþb´X0÷Ï\DÁrßvÑgÀk'|AU£h]~èÃ8^Lr¸¼ÍJãW/q5½º^à$ßü᫱ƥ/:O[_?Ïèô]2å¡à:«jû¨¬vwß?M°è Ød+eHhüxëfÚsþÁðËÎ{åýnôrvñÌIåãxÆŨ-®£áÉ^T_VTQg«©B|C
üEõL üS£V±
++%kÏlå·!=ùlbB
+cþS®¤?¢eXK Z^Ó0&ÒÖñ»0Uã4õ²:®ÇKt¶,§9^Ù2R¼R^ýù
+øÿ&'¨*+J4YmÄ'çUMêpYÞBGµÕjèV ÏÛ5[EÑ]:6+\ª üÅ"Bè´ùf¿ãüF"äá½>ê¹=OãÈoRä$«Àiþ"NÕ®tÎËôÖ(5/8r»d5öjwÖ·4©§*&î}Q×Õw:IKB®¤°¬iå_'àྫྷúSj%åQIár
*«Újîæج´åÙÙR1±Ì~y*ÛY¹KÜÜÉÛT-33è_PÝâ¯üD
| 'Î)ùh¬*§ä+äl.-¬;ánûcÈHg)!ÙôÄL»¯^ñ©ë§nÀs¶7 ¹R4üä))ÉN$ÙDRy^-)ÈÚI¿ ؽæ¢7½¼æìñÓ~oJS¹î=¨g¢W£V^^¼Jîa0ÜqárÕHIk)į2WÕ "Ô¹07D[-YÇZ éW²?òPx¿Xij ôÅïsq<L½¼y¿ÚB»~^)½YçÒ¸è^pÖ&ä<&¼n at tOÑ´ê²Õ«éO?Ù«&tÓf®UÙÿ¯Ì×O6<¢ZÿYÃÓ ¯`+2C^wÒæÉø«ìýÄqò< ùGjk5u¾^É£OtAÑ~ÏW»ã'^¹#Ý?û-'¨8qÜ´°¹ge0ýýúý«ÿå8v|
endstream
endobj
134 0 obj <<
@@ -378,28 +365,28 @@
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[0 1 0]
-/Rect [257.46 227.203 294.34 240.001]
+/Rect [258.282 227.203 295.161 240.001]
/A << /S /GoTo /D (cite.hansen82) >>
>> endobj
124 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[0 1 0]
-/Rect [299.773 227.203 323.583 240.001]
+/Rect [300.736 227.203 324.546 240.001]
/A << /S /GoTo /D (cite.hansen82) >>
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/gmm -r 42
More information about the Gmm-commits
mailing list