# Plots with the fitted models
library(mgcv)
library(ggplot2)
library(gridExtra)
library(ggpubr)
library(gvlma)
library(MASS)
library(hnp)
library(DHARMa)
library(AER)
### Clearing the console
rm(list = ls())
### Data reading
setwd("C:/Users/denni/OneDrive/Documentos/dadospqapriscila") # meu diretório
d1 = read.table("PQA_atual.csv",header = TRUE,sep = ",")
str(d1)
## 'data.frame': 44 obs. of 15 variables:
## $ Year : int 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 ...
## $ Trombetas : int NA NA 420000 440000 390000 410000 370000 395000 28251 20457 ...
## $ Branco : int 152765 175189 214214 275476 159289 209230 173553 254021 306347 305141 ...
## $ Javas : int NA NA NA NA NA NA 25500 24456 31136 85625 ...
## $ Araguaia : int NA NA NA NA NA NA 17504 39301 142850 220624 ...
## $ Mortes : int NA NA NA NA NA 33867 108300 55135 186438 252115 ...
## $ Abufari : int NA 40792 77417 132178 95347 39120 45000 36460 50971 95640 ...
## $ Embaubal : int NA 199290 266489 593725 200757 94841 54278 NA 367336 22000 ...
## $ Monte.Cristo : int 18341 20266 29001 25414 15243 36632 54163 72846 104002 13463 ...
## $ Guapor : int NA 14760 9669 NA 4555 12868 NA 44584 48188 40109 ...
## $ Camales.Island: int NA NA 7 72 512 2834 4495 1021 11634 18686 ...
## $ Walter.Bury : int NA NA NA 7712 5811 18213 12583 13036 9509 9426 ...
## $ Total : int 171106 450297 1016797 1474577 871514 857605 865376 935860 1286662 1083286 ...
## $ La.Nia : int 0 0 0 0 1 1 0 0 0 1 ...
## $ El.Nino : int 1 0 0 1 0 0 0 1 1 0 ...
###
### Plots #####################################
###
attach(d1)
g.trom = ggplot(data = d1, aes(x = Year, y = Trombetas)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = T, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = T, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Trombetas") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
# stat_regline_equation(aes(label=paste(..eq.label..,..rr.label..,sep = "~~")),size=7,label.x=2005,label.y=4e+05)+
g.trom

g.bran = ggplot(data = d1, aes(x = Year, y = Branco)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Branco") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.bran

g.jav = ggplot(data = d1, aes(x = Year, y = Javas)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Javas") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.jav

g.ara = ggplot(data = d1, aes(x = Year, y = Araguaia)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Araguaia") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.ara

g.mor = ggplot(data = d1, aes(x = Year, y = Mortes)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Mortes") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.mor

g.abu = ggplot(data = d1, aes(x = Year, y = Abufari)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Abufari") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.abu

g.emb = ggplot(data = d1, aes(x = Year, y = Embaubal)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Embaubal") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.emb

g.cri = ggplot(data = d1, aes(x = Year, y = Monte.Cristo)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Monte Cristo") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.cri

g.gua = ggplot(data = d1, aes(x = Year, y = Guapor)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Guaporé") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.gua

g.cam = ggplot(data = d1, aes(x = Year, y = Camales.Island)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Camaleões") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.cam

g.wal = ggplot(data = d1, aes(x = Year, y = Walter.Bury)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Walter Burry") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.wal

g.tot = ggplot(data = d1, aes(x = Year, y = Total)) +
geom_point(size = 2) +
# geom_smooth(aes(color = "LM"), method = "lm", se = F, size = 1) +
# geom_smooth(aes(color = "GAM"), method = "gam", se = T, size = 1) +
# geom_smooth(aes(color = "GLM Poisson"), method = "glm",
# method.args = list(family = "poisson"), se = F, size = 1) +
geom_smooth(aes(color = "GLM NB"), method = "glm.nb", se = T, size = 1) +
labs(x = "Ano", y = "Quantidade",title = "Total") +
theme_bw()+
# labs(colour = "Métodos")+
theme(legend.position = "")
g.tot

grid.arrange(g.trom,g.bran,g.jav,g.ara,g.mor,g.abu,g.emb,g.cri,g.gua,g.cam,g.wal,g.tot, ncol=3)

grid.arrange(g.trom,g.bran,g.jav,g.ara,g.mor,g.abu, ncol=2)

grid.arrange(g.emb,g.cri,g.gua,g.cam,g.wal,g.tot, ncol=2)

# linear regression
#####################
#### fits
#####################
y.total <- d1$Total
str(y.total)
## int [1:44] 171106 450297 1016797 1474577 871514 857605 865376 935860 1286662 1083286 ...
D1 <- as.factor(d1$La.Nia)
D2 <- as.factor(d1$El.Nino)
d2 <- data.frame(ano = d1$Year,y.total,D1,D2)
str(d2)
## 'data.frame': 44 obs. of 4 variables:
## $ ano : int 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 ...
## $ y.total: int 171106 450297 1016797 1474577 871514 857605 865376 935860 1286662 1083286 ...
## $ D1 : Factor w/ 2 levels "0","1": 1 1 1 1 2 2 1 1 1 2 ...
## $ D2 : Factor w/ 2 levels "0","1": 2 1 1 2 1 1 1 2 2 1 ...
### Trombetas
lm.trom = lm(d1$Trombetas ~ d1$Year + D1 + D2, na.action = "na.exclude")
# D1 e D2 Not significant
summary(lm.trom)
##
## Call:
## lm(formula = d1$Trombetas ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -205057 -66613 2684 70339 181389
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 16858941 2714952 6.210 3.27e-07 ***
## d1$Year -8364 1358 -6.159 3.82e-07 ***
## D11 -6684 39707 -0.168 0.867
## D21 -23768 39903 -0.596 0.555
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 101400 on 37 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.5139, Adjusted R-squared: 0.4744
## F-statistic: 13.04 on 3 and 37 DF, p-value: 5.828e-06
par(mfrow = c(2,2))
plot(lm.trom)

shapiro.test(lm.trom$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: lm.trom$residuals
## W = 0.98246, p-value = 0.7679
### Branco
lm.bra = lm(d1$Branco ~ d1$Year + D1 + D2, na.action = "na.exclude")
# D1 e D2 Not significant
summary(lm.bra)
##
## Call:
## lm(formula = d1$Branco ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -204307 -89962 -28297 63979 364259
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13210615 3828965 3.450 0.00174 **
## d1$Year -6506 1919 -3.390 0.00203 **
## D11 34091 64047 0.532 0.59858
## D21 21181 61108 0.347 0.73138
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 142600 on 29 degrees of freedom
## (11 observations deleted due to missingness)
## Multiple R-squared: 0.2879, Adjusted R-squared: 0.2142
## F-statistic: 3.907 on 3 and 29 DF, p-value: 0.0185
par(mfrow = c(2,2))
plot(lm.bra)

shapiro.test(lm.bra$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: lm.bra$residuals
## W = 0.91697, p-value = 0.01511
### Javaes
lm.jav = lm(d1$Javas ~ d1$Year + D1 + D2, na.action = "na.exclude")
# betas not significants
# D1 e D2 Not significant
summary(lm.jav)
##
## Call:
## lm(formula = d1$Javas ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -33303 -18471 -3270 12611 50571
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1669857 1191211 1.402 0.175
## d1$Year -814 597 -1.363 0.187
## D11 -8334 13164 -0.633 0.533
## D21 4601 11930 0.386 0.703
##
## Residual standard error: 24140 on 22 degrees of freedom
## (18 observations deleted due to missingness)
## Multiple R-squared: 0.1829, Adjusted R-squared: 0.07148
## F-statistic: 1.642 on 3 and 22 DF, p-value: 0.2086
par(mfrow = c(2,2))
plot(lm.jav)

shapiro.test(lm.jav$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: lm.jav$residuals
## W = 0.94452, p-value = 0.1721
### Araguaia
lm.ara = lm(d1$Araguaia ~ d1$Year + D1 + D2, na.action = "na.exclude")
# betas not significants
# D1 e D2 Not significant
summary(lm.ara)
##
## Call:
## lm(formula = d1$Araguaia ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -323766 -167498 -36724 147892 595403
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -15392443 7957248 -1.934 0.0625 .
## d1$Year 7755 3978 1.950 0.0606 .
## D11 33098 104439 0.317 0.7535
## D21 145146 100187 1.449 0.1578
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 233900 on 30 degrees of freedom
## (10 observations deleted due to missingness)
## Multiple R-squared: 0.1614, Adjusted R-squared: 0.07755
## F-statistic: 1.925 on 3 and 30 DF, p-value: 0.1468
par(mfrow = c(2,2))
plot(lm.ara)

shapiro.test(lm.ara$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: lm.ara$residuals
## W = 0.91899, p-value = 0.01514
### Mortes
lm.mor = lm(d1$Mortes ~ d1$Year + D1 + D2, na.action = "na.exclude")
# betas not significants
# D1 e D2 Not significant
summary(lm.mor)
##
## Call:
## lm(formula = d1$Mortes ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -178289 -92046 -469 88641 254588
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -884816.4 3903063.2 -0.227 0.822
## d1$Year 534.4 1950.0 0.274 0.786
## D11 -3950.5 51772.1 -0.076 0.940
## D21 -30224.4 50832.2 -0.595 0.556
##
## Residual standard error: 120800 on 31 degrees of freedom
## (9 observations deleted due to missingness)
## Multiple R-squared: 0.01706, Adjusted R-squared: -0.07806
## F-statistic: 0.1794 on 3 and 31 DF, p-value: 0.9096
par(mfrow = c(2,2))
plot(lm.mor)

shapiro.test(lm.mor$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: lm.mor$residuals
## W = 0.96502, p-value = 0.3216
### Abufari
lm.abu = lm(d1$Abufari ~ d1$Year + D1 + D2, na.action = "na.exclude")
# só Year significant valor p 0,0362
# D1 e D2 Not significant
summary(lm.abu)
##
## Call:
## lm(formula = d1$Abufari ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -164652 -62186 -5716 50539 244758
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5187459 2190561 -2.368 0.0229 *
## d1$Year 2686 1096 2.450 0.0189 *
## D11 -38252 33218 -1.152 0.2565
## D21 -12905 33422 -0.386 0.7015
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 86620 on 39 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.1407, Adjusted R-squared: 0.07456
## F-statistic: 2.128 on 3 and 39 DF, p-value: 0.1123
par(mfrow = c(2,2))
plot(lm.abu)

shapiro.test(lm.abu$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: lm.abu$residuals
## W = 0.97457, p-value = 0.4488
### Embaubal
lm.emb = lm(d1$Embaubal ~ d1$Year + D1 + D2, na.action = "na.exclude")
# betas significants
# D1 e D2 Not significant
summary(lm.emb)
##
## Call:
## lm(formula = d1$Embaubal ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -318360 -121413 23410 100923 427064
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -15911274 4363407 -3.647 0.000813 ***
## d1$Year 8116 2183 3.717 0.000664 ***
## D11 -42832 65737 -0.652 0.518707
## D21 72507 67608 1.072 0.290457
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 168500 on 37 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.3034, Adjusted R-squared: 0.247
## F-statistic: 5.373 on 3 and 37 DF, p-value: 0.003582
par(mfrow = c(2,2))
plot(lm.emb)

shapiro.test(lm.emb$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: lm.emb$residuals
## W = 0.98144, p-value = 0.7301
### Monte cristo
### Embaubal
lm.cristo = lm(d1$Monte.Cristo ~ d1$Year + D1 + D2, na.action = "na.exclude")
# betas significants
# D1 e D2 Not significant
summary(lm.cristo)
##
## Call:
## lm(formula = d1$Monte.Cristo ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -724632 -57239 -9002 74660 457910
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -39086852 5783965 -6.758 4.08e-08 ***
## d1$Year 19720 2895 6.812 3.43e-08 ***
## D11 -34155 90319 -0.378 0.707
## D21 81898 89394 0.916 0.365
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 235900 on 40 degrees of freedom
## Multiple R-squared: 0.5452, Adjusted R-squared: 0.5111
## F-statistic: 15.98 on 3 and 40 DF, p-value: 5.553e-07
par(mfrow = c(2,2))
plot(lm.cristo)

shapiro.test(lm.cristo$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: lm.cristo$residuals
## W = 0.86168, p-value = 8.784e-05
### Guaporé
lm.gua = lm(d1$Guapor ~ d1$Year + D1 + D2, na.action = "na.exclude")
# betas significants
# D1 e D2 Not significant
summary(lm.gua)
##
## Call:
## lm(formula = d1$Guapor ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -670583 -197162 -15655 121047 1012499
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -63278313 11095463 -5.703 3.61e-06 ***
## d1$Year 31847 5553 5.735 3.30e-06 ***
## D11 22436 162671 0.138 0.891
## D21 -74341 154592 -0.481 0.634
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 369600 on 29 degrees of freedom
## (11 observations deleted due to missingness)
## Multiple R-squared: 0.5394, Adjusted R-squared: 0.4918
## F-statistic: 11.32 on 3 and 29 DF, p-value: 4.357e-05
par(mfrow = c(2,2))
plot(lm.gua)

shapiro.test(lm.gua$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: lm.gua$residuals
## W = 0.88587, p-value = 0.002336
### Camaleoes
lm.cam = lm(d1$Camales.Island ~ d1$Year + D1 + D2, na.action = "na.exclude")
# betas significants
# D1 e D2 Not significant
summary(lm.cam)
##
## Call:
## lm(formula = d1$Camales.Island ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -82654 -21042 -160 18643 53092
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6238683.8 775449.4 -8.045 9.94e-10 ***
## d1$Year 3139.6 387.8 8.095 8.54e-10 ***
## D11 2682.8 11565.5 0.232 0.818
## D21 -10141.7 11716.8 -0.866 0.392
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 29780 on 38 degrees of freedom
## (2 observations deleted due to missingness)
## Multiple R-squared: 0.6574, Adjusted R-squared: 0.6304
## F-statistic: 24.31 on 3 and 38 DF, p-value: 5.962e-09
par(mfrow = c(2,2))
plot(lm.cam)

shapiro.test(lm.cam$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: lm.cam$residuals
## W = 0.97548, p-value = 0.4947
### Walter Burry
lm.wal = lm(d1$Walter.Bury ~ d1$Year + D1 + D2, na.action = "na.exclude")
# betas significants
# D1 e D2 Not significant
summary(lm.wal)
##
## Call:
## lm(formula = d1$Walter.Bury ~ d1$Year + D1 + D2, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -242121 -80415 -12129 77323 453765
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.782e+07 3.503e+06 -7.943 1.63e-09 ***
## d1$Year 1.398e+04 1.750e+03 7.985 1.44e-09 ***
## D11 -5.591e+03 5.140e+04 -0.109 0.914
## D21 7.278e+02 5.250e+04 0.014 0.989
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 130200 on 37 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.6399, Adjusted R-squared: 0.6107
## F-statistic: 21.92 on 3 and 37 DF, p-value: 2.495e-08
par(mfrow = c(2,2))
plot(lm.wal)

shapiro.test(lm.wal$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: lm.wal$residuals
## W = 0.90951, p-value = 0.003203
### Total
lm.tot = lm(d1$Total ~ d1$Year + D1, na.action = "na.exclude")
# betas significants
# D1 significant e D2 Not significant
summary(lm.tot)
##
## Call:
## lm(formula = d1$Total ~ d1$Year + D1, na.action = "na.exclude")
##
## Residuals:
## Min 1Q Median 3Q Max
## -1487449 -364997 40691 329639 1909310
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -119272959 15427222 -7.731 1.56e-09 ***
## d1$Year 60646 7721 7.855 1.05e-09 ***
## D11 -315228 203811 -1.547 0.13
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 629200 on 41 degrees of freedom
## Multiple R-squared: 0.6016, Adjusted R-squared: 0.5821
## F-statistic: 30.95 on 2 and 41 DF, p-value: 6.413e-09
par(mfrow = c(2,2))
plot(lm.tot)

shapiro.test(lm.tot$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: lm.tot$residuals
## W = 0.97215, p-value = 0.3597
# Generalized Additive Models (GAM)
###
### fits ##################
###
### Trombetas
gam.tro = gam(Trombetas ~ s(d1$Year) + D1 + D2)
gam.tro$null.deviance
## [1] 782945877982
gam.tro$deviance
## [1] 153839231890
summary(gam.tro)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Trombetas ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 127854 20925 6.110 9.44e-07 ***
## D11 -25479 29069 -0.876 0.388
## D21 -16464 28428 -0.579 0.567
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 7.387 8.365 14.19 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.743 Deviance explained = 80.4%
## GCV = 6.7303e+09 Scale est. = 5.0253e+09 n = 41
# D1 e D2 Not significant
# s(year) significant
### Percentage of Deviance Explained by the Model
100*(gam.tro$null.deviance - gam.tro$deviance)/gam.tro$null.deviance
## [1] 80.35123
### Residual Analysis
shapiro.test(gam.tro$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: gam.tro$residuals
## W = 0.90391, p-value = 0.002167
shapiro.test(residuals(gam.tro, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.tro, type = "deviance")
## W = 0.90391, p-value = 0.002167
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.tro)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 6 iterations.
## The RMS GCV score gradient at convergence was 510.5038 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.00 7.39 1.36 0.99
# simulationOutput <- simulateResiduals(fittedModel = poi.tro, plot = TRUE)
### Branco
gam.bra = gam(Branco ~ s(d1$Year) + D1 + D2)
gam.bra$null.deviance
## [1] 827954266798
gam.tro$deviance
## [1] 153839231890
summary(gam.bra)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Branco ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 206488 23687 8.717 4.9e-09 ***
## D11 42763 34069 1.255 0.221
## D21 29710 31822 0.934 0.359
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 5.098 6.193 19.7 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.79 Deviance explained = 83.7%
## GCV = 7.2036e+09 Scale est. = 5.436e+09 n = 33
# D1 e D2 Not significant
# s(year) significant
### Residual Analysis
shapiro.test(gam.bra$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: gam.bra$residuals
## W = 0.95076, p-value = 0.14
shapiro.test(residuals(gam.bra, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.bra, type = "deviance")
## W = 0.95076, p-value = 0.14
# plot(gam.tro)
# par(mfrow=c(2,2))
# gam.check(gam.bra)
# simulationOutput <- simulateResiduals(fittedModel = poi.bra, plot = TRUE)
### Javaes
gam.jav = gam(Javas ~ s(d1$Year) + D1 + D2)
gam.tro$null.deviance
## [1] 782945877982
gam.tro$deviance
## [1] 153839231890
summary(gam.jav)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Javas ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 42474 8939 4.751 0.000111 ***
## D11 -7436 12628 -0.589 0.562292
## D21 4870 11396 0.427 0.673500
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 2.243 2.825 1.65 0.257
##
## R-sq.(adj) = 0.155 Deviance explained = 29.9%
## GCV = 6.6439e+08 Scale est. = 5.3042e+08 n = 26
# D1 e D2 Not significant
# s(year) Not significant
### Residual Analysis
shapiro.test(gam.jav$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: gam.jav$residuals
## W = 0.90666, p-value = 0.02211
shapiro.test(residuals(gam.jav, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.jav, type = "deviance")
## W = 0.90666, p-value = 0.02211
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.jav)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 5 iterations.
## The RMS GCV score gradient at convergence was 6912.718 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.00 2.24 1.34 0.94
# simulationOutput <- simulateResiduals(fittedModel = poi.jav, plot = TRUE)
### Araguaia
gam.ara = gam(Araguaia ~ s(d1$Year) + D1 + D2)
gam.ara$null.deviance
## [1] 1.957049e+12
gam.ara$deviance
## [1] 996738586435
summary(gam.ara)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Araguaia ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 122542 61918 1.979 0.0581 .
## D11 39286 87562 0.449 0.6573
## D21 183353 83363 2.199 0.0366 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 4.111 5.065 3.973 0.00779 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.375 Deviance explained = 49.1%
## GCV = 4.6873e+10 Scale est. = 3.7069e+10 n = 34
# D1 e D2 Not significant
# s(year) significant
### Residual Analysis
shapiro.test(gam.ara$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: gam.ara$residuals
## W = 0.93353, p-value = 0.03967
shapiro.test(residuals(gam.ara, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.ara, type = "deviance")
## W = 0.93353, p-value = 0.03967
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.ara)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 4 iterations.
## The RMS GCV score gradient at convergence was 1470963 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.00 4.11 1.12 0.67
# simulationOutput <- simulateResiduals(fittedModel = poi.ara, plot = TRUE)
### Mortes
gam.mor = gam(Mortes ~ s(d1$Year) + D1 + D2)
gam.mor$null.deviance
## [1] 460436653240
gam.mor$deviance
## [1] 362543799112
summary(gam.mor)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Mortes ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 184455.8 35699.3 5.167 1.64e-05 ***
## D11 -725.1 48754.8 -0.015 0.988
## D21 -32037.5 47407.2 -0.676 0.505
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 3.323 4.117 1.193 0.327
##
## R-sq.(adj) = 0.0664 Deviance explained = 21.3%
## GCV = 1.543e+10 Scale est. = 1.2642e+10 n = 35
# D1 e D2 Not significant
# s(year) Not significant
### Residual Analysis
shapiro.test(gam.mor$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: gam.mor$residuals
## W = 0.97468, p-value = 0.5837
shapiro.test(residuals(gam.mor, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.mor, type = "deviance")
## W = 0.97468, p-value = 0.5837
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.mor)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 5 iterations.
## The RMS GCV score gradient at convergence was 9084.367 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.00 3.32 1.25 0.92
# simulationOutput <- simulateResiduals(fittedModel = poi.mor, plot = TRUE)
### Abufari
gam.abu = gam(Abufari ~ s(d1$Year) + D1 + D2)
gam.abu$null.deviance
## [1] 340527741276
gam.abu$deviance
## [1] 129187160632
summary(gam.abu)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Abufari ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 181608 18566 9.782 4.35e-11 ***
## D11 -22768 26384 -0.863 0.395
## D21 -11991 25535 -0.470 0.642
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 8.348 8.883 5.391 0.00015 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.497 Deviance explained = 62.1%
## GCV = 5.5447e+09 Scale est. = 4.0815e+09 n = 43
# D1 e D2 Not significant
# s(year) significant
### Residual Analysis
shapiro.test(gam.abu$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: gam.abu$residuals
## W = 0.97437, p-value = 0.442
shapiro.test(residuals(gam.abu, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.abu, type = "deviance")
## W = 0.97437, p-value = 0.442
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.abu)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 4 iterations.
## The RMS GCV score gradient at convergence was 5135.275 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.00 8.35 1.26 0.95
# simulationOutput <- simulateResiduals(fittedModel = poi.abu, plot = TRUE)
### Embaubal
gam.emb = gam(Embaubal ~ s(d1$Year) + D1 + D2)
gam.emb$null.deviance
## [1] 1.507986e+12
gam.emb$deviance
## [1] 951240417304
summary(gam.emb)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Embaubal ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 328643 47869 6.866 5.3e-08 ***
## D11 -38754 64262 -0.603 0.550
## D21 81924 66112 1.239 0.223
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 2.501 3.105 5.541 0.00313 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.289 Deviance explained = 36.9%
## GCV = 3.0948e+10 Scale est. = 2.6796e+10 n = 41
# D1 e D2 Not significant
# s(year) significant
### Residual Analysis
shapiro.test(gam.emb$residuals) # normal
##
## Shapiro-Wilk normality test
##
## data: gam.emb$residuals
## W = 0.98172, p-value = 0.7405
shapiro.test(residuals(gam.emb, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.emb, type = "deviance")
## W = 0.98172, p-value = 0.7405
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.emb)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 4 iterations.
## The RMS GCV score gradient at convergence was 207387.2 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.0 2.5 1.04 0.52
# simulationOutput <- simulateResiduals(fittedModel = poi.emb, plot = TRUE)
### Monte Cristo
gam.cristo = gam(Monte.Cristo ~ s(d1$Year) + D1 + D2)
gam.cristo$null.deviance
## [1] 4.893645e+12
gam.cristo$deviance
## [1] 2.046944e+12
summary(gam.cristo)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Monte.Cristo ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 358886 64462 5.567 2.15e-06 ***
## D11 -23942 88708 -0.270 0.789
## D21 81203 87411 0.929 0.359
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 2.498 3.108 16.38 5.61e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.533 Deviance explained = 58.2%
## GCV = 6.0756e+10 Scale est. = 5.3164e+10 n = 44
# D1 e D2 Not significant
# s(year) significant
### Residual Analysis
shapiro.test(gam.cristo$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: gam.cristo$residuals
## W = 0.86836, p-value = 0.0001328
shapiro.test(residuals(gam.cristo, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.cristo, type = "deviance")
## W = 0.86836, p-value = 0.0001328
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.cristo)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 4 iterations.
## The RMS GCV score gradient at convergence was 2322800 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.0 2.5 1.53 1
# simulationOutput <- simulateResiduals(fittedModel = poi.cristo, plot = TRUE)
### Guaporé
gam.gua = gam(Guapor ~ s(d1$Year) + D1 + D2)
gam.gua$null.deviance
## [1] 8.602613e+12
gam.gua$deviance
## [1] 511810615500
summary(gam.gua)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Guapor ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 433905 53647 8.088 5.91e-08 ***
## D11 -92189 83531 -1.104 0.282
## D21 -48035 73534 -0.653 0.521
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 8.545 8.942 36.88 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.911 Deviance explained = 94.1%
## GCV = 3.6691e+10 Scale est. = 2.3855e+10 n = 33
# D1 e D2 Not significant
# s(year) significant
### Residual Analysis
shapiro.test(gam.gua$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: gam.gua$residuals
## W = 0.92057, p-value = 0.019
shapiro.test(residuals(gam.gua, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.gua, type = "deviance")
## W = 0.92057, p-value = 0.019
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.gua)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 8 iterations.
## The RMS GCV score gradient at convergence was 878354.7 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.00 8.54 0.97 0.32
# simulationOutput <- simulateResiduals(fittedModel = poi.gua, plot = TRUE)
### Camaleoes
gam.cam = gam(Camales.Island ~ s(d1$Year) + D1 + D2)
gam.cam$null.deviance
## [1] 98382197916
gam.cam$deviance
## [1] 18323781270
summary(gam.cam)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Camales.Island ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 45771 6725 6.806 7.32e-08 ***
## D11 1288 9134 0.141 0.889
## D21 -9993 9108 -1.097 0.280
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 4.495 5.516 24.57 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.779 Deviance explained = 81.4%
## GCV = 6.4641e+08 Scale est. = 5.3105e+08 n = 42
# D1 Not significant e D2 significant valor p 0,0388
# s(year) significant
### Residual Analysis
shapiro.test(gam.cam$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: gam.cam$residuals
## W = 0.74561, p-value = 3.691e-07
shapiro.test(residuals(gam.cam, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.cam, type = "deviance")
## W = 0.74561, p-value = 3.691e-07
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.cam)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 5 iterations.
## The RMS GCV score gradient at convergence was 1821.232 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.0 4.5 1.2 0.9
# simulationOutput <- simulateResiduals(fittedModel = poi.cam, plot = TRUE)
### Walter Burry
gam.wal = gam(Walter.Bury ~ s(d1$Year) + D1 + D2)
gam.wal$null.deviance
## [1] 1.741115e+12
gam.wal$deviance
## [1] 217767937687
summary(gam.wal)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Walter.Bury ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 180290 25238 7.144 3.96e-08 ***
## D11 -46912 33923 -1.383 0.176
## D21 -15506 33445 -0.464 0.646
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 5.735 6.889 31.81 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.845 Deviance explained = 87.5%
## GCV = 8.5767e+09 Scale est. = 6.7494e+09 n = 41
# D1 e D2 Not significant
# s(year) significant
### Residual Analysis
shapiro.test(gam.wal$residuals) # Not normal
##
## Shapiro-Wilk normality test
##
## data: gam.wal$residuals
## W = 0.89032, p-value = 0.0008693
shapiro.test(residuals(gam.wal, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.wal, type = "deviance")
## W = 0.89032, p-value = 0.0008693
# plot(gam.tro)
# par(mfrow=c(2,2))
gam.check(gam.wal)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 7 iterations.
## The RMS GCV score gradient at convergence was 18294.14 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.00 5.74 1.43 0.99
# simulationOutput <- simulateResiduals(fittedModel = poi.wal, plot = TRUE)
### Total
gam.tot = gam(Total ~ s(d1$Year) + D1 + D2)
gam.tot$null.deviance
## [1] 4.07371e+13
gam.tot$deviance
## [1] 8.994702e+12
summary(gam.tot)
##
## Family: gaussian
## Link function: identity
##
## Formula:
## Total ~ s(d1$Year) + D1 + D2
##
## Parametric coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1899050 144436 13.148 5.64e-15 ***
## D11 -86366 203762 -0.424 0.674
## D21 194607 195231 0.997 0.326
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Approximate significance of smooth terms:
## edf Ref.df F p-value
## s(d1$Year) 6.597 7.725 14.87 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## R-sq.(adj) = 0.724 Deviance explained = 77.9%
## GCV = 3.3438e+11 Scale est. = 2.6145e+11 n = 44
# D1 e D2 Not significant
# simulationOutput <- simulateResiduals(fittedModel = poi.tot, plot = TRUE)
### Residual Analysis
shapiro.test(gam.tot$residuals) # nã normal
##
## Shapiro-Wilk normality test
##
## data: gam.tot$residuals
## W = 0.94053, p-value = 0.0247
shapiro.test(residuals(gam.tot, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(gam.tot, type = "deviance")
## W = 0.94053, p-value = 0.0247
# plot(gam.tot)
# par(mfrow=c(2,2))
gam.check(gam.tot)

##
## Method: GCV Optimizer: magic
## Smoothing parameter selection converged after 7 iterations.
## The RMS GCV score gradient at convergence was 502245.3 .
## The Hessian was positive definite.
## Model rank = 12 / 12
##
## Basis dimension (k) checking results. Low p-value (k-index<1) may
## indicate that k is too low, especially if edf is close to k'.
##
## k' edf k-index p-value
## s(d1$Year) 9.0 6.6 1.27 0.93
# Poisson model (GLM model)
####
#### Poisson ##########
####
### Trombetas
poi.tro = glm(Trombetas ~ d1$Year + D1 + D2, family="poisson")
summary(poi.tro)
##
## Call:
## glm(formula = Trombetas ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.882e+02 1.033e-01 1821.35 <2e-16 ***
## d1$Year -8.843e-02 5.192e-05 -1703.22 <2e-16 ***
## D11 -9.422e-02 1.148e-03 -82.11 <2e-16 ***
## D21 -1.708e-01 1.118e-03 -152.72 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 5851266 on 40 degrees of freedom
## Residual deviance: 1977024 on 37 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 1977552
##
## Number of Fisher Scoring iterations: 5
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.tro$null.deviance - poi.tro$deviance)/poi.tro$null.deviance
## [1] 66.21202
# Overdispersion test
dispersiontest(poi.tro) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.tro
## z = 5.38, p-value = 3.725e-08
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 40971.41
deviance(poi.tro)/df.residual(poi.tro) #Overdispersion parameter
## [1] 53433.09
# plot(poi.tro)
simulationOutput <- simulateResiduals(fittedModel = poi.tro, plot = TRUE)

### Branco
poi.bra = glm(Branco ~ d1$Year + D1 + D2, family="poisson")
summary(poi.bra)
##
## Call:
## glm(formula = Branco ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 7.451e+01 6.275e-02 1187.5 <2e-16 ***
## d1$Year -3.119e-02 3.152e-05 -989.7 <2e-16 ***
## D11 1.451e-01 9.421e-04 154.0 <2e-16 ***
## D21 8.808e-02 8.783e-04 100.3 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 3793381 on 32 degrees of freedom
## Residual deviance: 2696637 on 29 degrees of freedom
## (11 observations deleted due to missingness)
## AIC: 2697102
##
## Number of Fisher Scoring iterations: 5
# betas, D1 e D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.bra$null.deviance - poi.bra$deviance)/poi.bra$null.deviance
## [1] 28.91205
# Overdispersion test
dispersiontest(poi.bra) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.bra
## z = 4.248, p-value = 1.078e-05
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 86423.03
### Javaes
poi.jav = glm(Javas ~ d1$Year + D1 + D2, family="poisson")
summary(poi.jav)
##
## Call:
## glm(formula = Javas ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 50.7834751 0.2470107 205.59 <2e-16 ***
## d1$Year -0.0200808 0.0001239 -162.11 <2e-16 ***
## D11 -0.2384559 0.0027839 -85.66 <2e-16 ***
## D21 0.0998577 0.0022774 43.85 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 376923 on 25 degrees of freedom
## Residual deviance: 305481 on 22 degrees of freedom
## (18 observations deleted due to missingness)
## AIC: 305807
##
## Number of Fisher Scoring iterations: 5
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.jav$null.deviance - poi.jav$deviance)/poi.jav$null.deviance
## [1] 18.95404
# Overdispersion test
dispersiontest(poi.jav) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.jav
## z = 4.0758, p-value = 2.293e-05
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 11693.63
### Araguaia
poi.ara = glm(Araguaia ~ d1$Year + D1 + D2, family="poisson")
summary(poi.ara)
##
## Call:
## glm(formula = Araguaia ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -69.449777 0.080206 -865.9 <2e-16 ***
## d1$Year 0.040517 0.000040 1013.0 <2e-16 ***
## D11 0.285640 0.001137 251.3 <2e-16 ***
## D21 0.820715 0.001077 761.8 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 8145923 on 33 degrees of freedom
## Residual deviance: 6498573 on 30 degrees of freedom
## (10 observations deleted due to missingness)
## AIC: 6499030
##
## Number of Fisher Scoring iterations: 5
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.ara$null.deviance - poi.ara$deviance)/poi.ara$null.deviance
## [1] 20.223
# Overdispersion test
dispersiontest(poi.ara) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.ara
## z = 4.8643, p-value = 5.744e-07
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 183179.1
### Mortes
poi.mor = glm(Mortes ~ d1$Year + D1 + D2, family="poisson")
summary(poi.mor)
##
## Call:
## glm(formula = Mortes ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 5.908e+00 7.794e-02 75.80 <2e-16 ***
## d1$Year 3.107e-03 3.893e-05 79.80 <2e-16 ***
## D11 -2.167e-02 1.001e-03 -21.65 <2e-16 ***
## D21 -1.787e-01 1.020e-03 -175.26 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 3216002 on 34 degrees of freedom
## Residual deviance: 3169805 on 31 degrees of freedom
## (9 observations deleted due to missingness)
## AIC: 3170281
##
## Number of Fisher Scoring iterations: 5
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.mor$null.deviance - poi.mor$deviance)/poi.mor$null.deviance
## [1] 1.4365
# Overdispersion test
dispersiontest(poi.mor) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.mor
## z = 5.385, p-value = 3.622e-08
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 77182.81
### Abufari
poi.abu = glm(Abufari ~ d1$Year + D1 + D2, family="poisson")
summary(poi.abu)
##
## Call:
## glm(formula = Abufari ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.003e+01 6.249e-02 -320.59 <2e-16 ***
## d1$Year 1.607e-02 3.124e-05 514.50 <2e-16 ***
## D11 -2.282e-01 9.319e-04 -244.84 <2e-16 ***
## D21 -7.240e-02 9.213e-04 -78.58 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 2200393 on 42 degrees of freedom
## Residual deviance: 1915254 on 39 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 1915850
##
## Number of Fisher Scoring iterations: 5
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.abu$null.deviance - poi.abu$deviance)/poi.abu$null.deviance
## [1] 12.95856
# Overdispersion test
dispersiontest(poi.abu) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.abu
## z = 4.2325, p-value = 1.156e-05
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 42830.16
### Embaubal
poi.emb = glm(Embaubal ~ d1$Year + D1 + D2, family="poisson")
summary(poi.emb)
##
## Call:
## glm(formula = Embaubal ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.752e+01 4.683e-02 -801.3 <2e-16 ***
## d1$Year 2.507e-02 2.338e-05 1072.3 <2e-16 ***
## D11 -1.315e-01 6.992e-04 -188.0 <2e-16 ***
## D21 2.119e-01 6.817e-04 310.8 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 5287604 on 40 degrees of freedom
## Residual deviance: 3906200 on 37 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 3906793
##
## Number of Fisher Scoring iterations: 5
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.emb$null.deviance - poi.emb$deviance)/poi.emb$null.deviance
## [1] 26.12533
# Overdispersion test
dispersiontest(poi.emb) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.emb
## z = 4.395, p-value = 5.537e-06
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 85892.4
### Monte Cristo
poi.cristo = glm(Monte.Cristo ~ d1$Year + D1 + D2, family="poisson")
summary(poi.cristo)
##
## Call:
## glm(formula = Monte.Cristo ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.035e+02 4.670e-02 -2217.1 <2e-16 ***
## d1$Year 5.803e-02 2.328e-05 2493.0 <2e-16 ***
## D11 -1.086e-01 6.491e-04 -167.2 <2e-16 ***
## D21 2.372e-01 6.440e-04 368.4 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 13253134 on 43 degrees of freedom
## Residual deviance: 5808445 on 40 degrees of freedom
## AIC: 5809072
##
## Number of Fisher Scoring iterations: 5
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.cristo$null.deviance - poi.cristo$deviance)/poi.cristo$null.deviance
## [1] 56.17304
# Overdispersion test
dispersiontest(poi.cristo) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.cristo
## z = 3.8306, p-value = 6.391e-05
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 101133.4
### Guaporé
poi.gua = glm(Guapor ~ d1$Year + D1 + D2, family="poisson")
summary(poi.gua)
##
## Call:
## glm(formula = Guapor ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.968e+02 7.027e-02 -2800.2 <2e-16 ***
## d1$Year 1.045e-01 3.494e-05 2990.9 <2e-16 ***
## D11 8.448e-02 6.790e-04 124.4 <2e-16 ***
## D21 -3.048e-02 7.121e-04 -42.8 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 18178688 on 32 degrees of freedom
## Residual deviance: 4926911 on 29 degrees of freedom
## (11 observations deleted due to missingness)
## AIC: 4927372
##
## Number of Fisher Scoring iterations: 5
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.gua$null.deviance - poi.gua$deviance)/poi.gua$null.deviance
## [1] 72.89732
# Overdispersion test
dispersiontest(poi.gua) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.gua
## z = 2.5982, p-value = 0.004685
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 148872
### Camaleoes
poi.cam = glm(Camales.Island ~ d1$Year + D1 + D2, family="poisson")
summary(poi.cam)
##
## Call:
## glm(formula = Camales.Island ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.710e+02 1.744e-01 -980.6 <2e-16 ***
## d1$Year 9.056e-02 8.677e-05 1043.7 <2e-16 ***
## D11 -1.008e-01 1.857e-03 -54.3 <2e-16 ***
## D21 -2.823e-01 2.145e-03 -131.6 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 2064050 on 41 degrees of freedom
## Residual deviance: 421953 on 38 degrees of freedom
## (2 observations deleted due to missingness)
## AIC: 422445
##
## Number of Fisher Scoring iterations: 5
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.cam$null.deviance - poi.cam$deviance)/poi.cam$null.deviance
## [1] 79.55705
# Overdispersion test
dispersiontest(poi.cam) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.cam
## z = 3.6632, p-value = 0.0001245
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 8442.778
### Walter Burry
poi.wal = glm(Walter.Bury ~ d1$Year + D1 + D2, family="poisson")
summary(poi.wal)
##
## Call:
## glm(formula = Walter.Bury ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.416e+02 1.145e-01 -2110.03 <2e-16 ***
## d1$Year 1.263e-01 5.690e-05 2219.41 <2e-16 ***
## D11 -3.271e-01 1.011e-03 -323.45 <2e-16 ***
## D21 -5.205e-02 1.093e-03 -47.63 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 9172064 on 40 degrees of freedom
## Residual deviance: 884642 on 37 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 885174
##
## Number of Fisher Scoring iterations: 4
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.wal$null.deviance - poi.wal$deviance)/poi.wal$null.deviance
## [1] 90.35504
# Overdispersion test
dispersiontest(poi.wal) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.wal
## z = 4.0417, p-value = 2.653e-05
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 19934.84
### Total
poi.tot = glm(Total ~ d1$Year + D1 + D2, family="poisson")
summary(poi.tot)
##
## Call:
## glm(formula = Total ~ d1$Year + D1 + D2, family = "poisson")
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -5.066e+01 1.864e-02 -2717.4 <2e-16 ***
## d1$Year 3.252e-02 9.308e-06 3494.3 <2e-16 ***
## D11 -1.222e-01 2.797e-04 -436.9 <2e-16 ***
## D21 9.137e-02 2.762e-04 330.8 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 20732453 on 43 degrees of freedom
## Residual deviance: 7702167 on 40 degrees of freedom
## AIC: 7702887
##
## Number of Fisher Scoring iterations: 4
# betas, D1 and D2 significants
### Percentage of Deviance Explained by the Model
100*(poi.tot$null.deviance - poi.tot$deviance)/poi.tot$null.deviance
## [1] 62.84971
# Overdispersion test
dispersiontest(poi.tot) # Overdispersion acept
##
## Overdispersion test
##
## data: poi.tot
## z = 4.3907, p-value = 5.65e-06
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 161984.5
# Negative Binomial (GLM models)
###
### Negative Binomial ############
###
### Trombetas
bn.tro = glm.nb(Trombetas ~ d1$Year + D1+D2)
summary(bn.tro)
##
## Call:
## glm.nb(formula = Trombetas ~ d1$Year + D1 + D2, init.theta = 1.445747048,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 158.00924 22.26254 7.098 1.27e-12 ***
## d1$Year -0.07328 0.01113 -6.582 4.65e-11 ***
## D11 -0.17936 0.32560 -0.551 0.582
## D21 -0.26534 0.32720 -0.811 0.417
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(1.4457) family taken to be 1)
##
## Null deviance: 95.319 on 40 degrees of freedom
## Residual deviance: 45.537 on 37 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 1008.5
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 1.446
## Std. Err.: 0.290
##
## 2 x log-likelihood: -998.523
# betas significants
# D1 and D2 Not significant
#
### Percentage of Deviance Explained by the Model
100*(bn.tro$null.deviance - bn.tro$deviance)/bn.tro$null.deviance
## [1] 52.22626
#
deviance(bn.tro)/df.residual(bn.tro) # Overdispersion parameter < 1.5
## [1] 1.23074
par(mfrow = c(2, 2))
plot(bn.tro)

shapiro.test(bn.tro$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.tro$residuals
## W = 0.95056, p-value = 0.07325
shapiro.test(residuals(bn.tro, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.tro, type = "deviance")
## W = 0.93827, p-value = 0.02743
### Branco
bn.bra = glm.nb(Branco ~ d1$Year + D1+D2)
summary(bn.bra)
##
## Call:
## glm.nb(formula = Branco ~ d1$Year + D1 + D2, init.theta = 2.71580397,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 119.629513 16.294826 7.342 2.11e-13 ***
## d1$Year -0.053810 0.008168 -6.588 4.45e-11 ***
## D11 0.231036 0.272561 0.848 0.397
## D21 0.049551 0.260055 0.191 0.849
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(2.7158) family taken to be 1)
##
## Null deviance: 59.768 on 32 degrees of freedom
## Residual deviance: 34.999 on 29 degrees of freedom
## (11 observations deleted due to missingness)
## AIC: 867.96
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 2.716
## Std. Err.: 0.632
##
## 2 x log-likelihood: -857.956
# betas significants
# D1 and D2 Not significant
### Percentage of Deviance Explained by the Model
100*(bn.bra$null.deviance - bn.bra$deviance)/bn.bra$null.deviance
## [1] 41.4418
#
deviance(bn.bra)/df.residual(bn.bra) #Overdispersion parameter < 1.5
## [1] 1.206867
# simulationOutput <- simulateResiduals(fittedModel = bn.bra, plot = TRUE)
plot(bn.bra)

shapiro.test(bn.bra$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.bra$residuals
## W = 0.89672, p-value = 0.004383
shapiro.test(residuals(bn.bra, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.bra, type = "deviance")
## W = 0.96195, p-value = 0.2932
### Javaes
bn.jav = glm.nb(Javas ~ d1$Year + D1+D2)
summary(bn.jav)
##
## Call:
## glm.nb(formula = Javas ~ d1$Year + D1 + D2, init.theta = 3.126165479,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 69.50324 27.90471 2.491 0.0127 *
## d1$Year -0.02945 0.01399 -2.106 0.0352 *
## D11 -0.30576 0.30837 -0.992 0.3214
## D21 0.13455 0.27947 0.481 0.6302
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(3.1262) family taken to be 1)
##
## Null deviance: 35.231 on 25 degrees of freedom
## Residual deviance: 27.373 on 22 degrees of freedom
## (18 observations deleted due to missingness)
## AIC: 598.92
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 3.126
## Std. Err.: 0.825
##
## 2 x log-likelihood: -588.917
# betas significants
# D1 Not significant D2 quase significant
### Percentage of Deviance Explained by the Model
100*(bn.jav$null.deviance - bn.jav$deviance)/bn.jav$null.deviance
## [1] 22.30508
#
deviance(bn.jav)/df.residual(bn.jav) #Overdispersion parameter < 1.5
## [1] 1.244222
# simulationOutput <- simulateResiduals(fittedModel = bn.jav, plot = TRUE)
plot(bn.jav)

shapiro.test(bn.jav$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.jav$residuals
## W = 0.95639, p-value = 0.3255
shapiro.test(residuals(bn.jav, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.jav, type = "deviance")
## W = 0.96469, p-value = 0.4922
### Araguaia
bn.ara = glm.nb(Araguaia ~ d1$Year + D1 + D2)
summary(bn.ara)
##
## Call:
## glm.nb(formula = Araguaia ~ d1$Year + D1 + D2, init.theta = 0.8199479203,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -47.86309 37.57123 -1.274 0.2027
## d1$Year 0.02972 0.01878 1.582 0.1136
## D11 0.43990 0.49312 0.892 0.3724
## D21 0.82767 0.47305 1.750 0.0802 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(0.8199) family taken to be 1)
##
## Null deviance: 46.248 on 33 degrees of freedom
## Residual deviance: 40.227 on 30 degrees of freedom
## (10 observations deleted due to missingness)
## AIC: 900.1
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 0.820
## Std. Err.: 0.172
##
## 2 x log-likelihood: -890.104
# betas significants
# D1 Not significant
# D2 significant
### Percentage of Deviance Explained by the Model
100*(bn.ara$null.deviance - bn.ara$deviance)/bn.ara$null.deviance
## [1] 13.01777
#
deviance(bn.ara)/df.residual(bn.ara) #Overdispersion parameter < 1.5
## [1] 1.340907
# simulationOutput <- simulateResiduals(fittedModel = bn.ara, plot = TRUE)
plot(bn.ara)

shapiro.test(bn.ara$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.ara$residuals
## W = 0.86504, p-value = 0.0006185
shapiro.test(residuals(bn.ara, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.ara, type = "deviance")
## W = 0.94757, p-value = 0.1038
### Mortes
bn.mor = glm.nb(Mortes ~ d1$Year + D1+D2)
summary(bn.mor)
##
## Call:
## glm.nb(formula = Mortes ~ d1$Year + D1 + D2, init.theta = 1.139233996,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 7.103821 30.264538 0.235 0.814
## d1$Year 0.002507 0.015120 0.166 0.868
## D11 -0.015276 0.401443 -0.038 0.970
## D21 -0.171584 0.394155 -0.435 0.663
##
## (Dispersion parameter for Negative Binomial(1.1392) family taken to be 1)
##
## Null deviance: 40.109 on 34 degrees of freedom
## Residual deviance: 39.815 on 31 degrees of freedom
## (9 observations deleted due to missingness)
## AIC: 923.37
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 1.139
## Std. Err.: 0.243
##
## 2 x log-likelihood: -913.373
# betas Not significant
# D1 and D2 Not significant
### Percentage of Deviance Explained by the Model
100*(bn.mor$null.deviance - bn.mor$deviance)/bn.mor$null.deviance
## [1] 0.7335694
#
deviance(bn.mor)/df.residual(bn.mor) #Overdispersion parameter < 1.5
## [1] 1.284342
# simulationOutput <- simulateResiduals(fittedModel = bn.mor, plot = TRUE)
plot(bn.mor)

shapiro.test(bn.mor$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.mor$residuals
## W = 0.95951, p-value = 0.221
shapiro.test(residuals(bn.mor, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.mor, type = "deviance")
## W = 0.91407, p-value = 0.009658
### Abufari
bn.abu = glm.nb(Abufari ~ d1$Year + D1+D2)
summary(bn.abu)
##
## Call:
## glm.nb(formula = Abufari ~ d1$Year + D1 + D2, init.theta = 3.021446293,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -30.771790 14.548774 -2.115 0.03442 *
## d1$Year 0.021426 0.007282 2.942 0.00326 **
## D11 -0.233209 0.220619 -1.057 0.29048
## D21 -0.002145 0.221972 -0.010 0.99229
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(3.0214) family taken to be 1)
##
## Null deviance: 52.064 on 42 degrees of freedom
## Residual deviance: 45.347 on 39 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 1107.3
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 3.021
## Std. Err.: 0.619
##
## 2 x log-likelihood: -1097.318
# beta 0 Not significant beta 1 significant
# D1 and D2 Not significant
### Percentage of Deviance Explained by the Model
100*(bn.abu$null.deviance - bn.abu$deviance)/bn.abu$null.deviance
## [1] 12.90135
#
deviance(bn.abu)/df.residual(bn.abu) #Overdispersion parameter < 1.5
## [1] 1.162752
# simulationOutput <- simulateResiduals(fittedModel = bn.abu, plot = TRUE)
plot(bn.abu)

shapiro.test(bn.abu$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.abu$residuals
## W = 0.96759, p-value = 0.2605
shapiro.test(residuals(bn.abu, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.abu, type = "deviance")
## W = 0.97629, p-value = 0.5077
### Embaubal
bn.emb = glm.nb(Embaubal ~ d1$Year + D1+D2)
summary(bn.emb)
##
## Call:
## glm.nb(formula = Embaubal ~ d1$Year + D1 + D2, init.theta = 2.112875543,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -40.576348 17.816059 -2.278 0.02276 *
## d1$Year 0.026593 0.008914 2.983 0.00285 **
## D11 -0.176942 0.268409 -0.659 0.50975
## D21 0.297582 0.276046 1.078 0.28103
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(2.1129) family taken to be 1)
##
## Null deviance: 54.014 on 40 degrees of freedom
## Residual deviance: 44.168 on 37 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 1120.8
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 2.113
## Std. Err.: 0.435
##
## 2 x log-likelihood: -1110.786
# betas significants
# D1 and D2 Not significant
### Percentage of Deviance Explained by the Model
100*(bn.emb$null.deviance - bn.emb$deviance)/bn.emb$null.deviance
## [1] 18.22824
#
deviance(bn.emb)/df.residual(bn.emb) #Overdispersion parameter < 1.5
## [1] 1.193737
# simulationOutput <- simulateResiduals(fittedModel = bn.emb, plot = TRUE)
plot(bn.emb)

shapiro.test(bn.emb$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.emb$residuals
## W = 0.96948, p-value = 0.3315
shapiro.test(residuals(bn.emb, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.emb, type = "deviance")
## W = 0.9234, p-value = 0.008773
### Monte Cristo
bn.cristo = glm.nb(Monte.Cristo ~ d1$Year + D1+D2)
summary(bn.cristo)
##
## Call:
## glm.nb(formula = Monte.Cristo ~ d1$Year + D1 + D2, init.theta = 2.101712188,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.614e+02 1.691e+01 -9.542 <2e-16 ***
## d1$Year 8.691e-02 8.465e-03 10.267 <2e-16 ***
## D11 -1.968e-01 2.641e-01 -0.745 0.456
## D21 2.169e-01 2.614e-01 0.830 0.407
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(2.1017) family taken to be 1)
##
## Null deviance: 115.336 on 43 degrees of freedom
## Residual deviance: 47.417 on 40 degrees of freedom
## AIC: 1184.3
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 2.102
## Std. Err.: 0.417
##
## 2 x log-likelihood: -1174.311
# betas significants
# D1 e D2 Not significant
### Percentage of Deviance Explained by the Model
100*(bn.cristo$null.deviance - bn.cristo$deviance)/bn.cristo$null.deviance
## [1] 58.88786
#
deviance(bn.cristo)/df.residual(bn.cristo) #Overdispersion parameter < 1.5
## [1] 1.185431
# simulationOutput <- simulateResiduals(fittedModel = bn.cristo, plot = TRUE)
plot(bn.cristo)

shapiro.test(bn.cristo$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.cristo$residuals
## W = 0.97083, p-value = 0.3236
shapiro.test(residuals(bn.cristo, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.cristo, type = "deviance")
## W = 0.85569, p-value = 6.117e-05
### Guaporé
bn.gua = glm.nb(Guapor ~ d1$Year + D1+D2)
summary(bn.gua)
##
## Call:
## glm.nb(formula = Guapor ~ d1$Year + D1 + D2, init.theta = 3.482955643,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -243.85152 16.08537 -15.160 <2e-16 ***
## d1$Year 0.12799 0.00805 15.899 <2e-16 ***
## D11 -0.16365 0.23583 -0.694 0.488
## D21 -0.03418 0.22411 -0.153 0.879
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(3.483) family taken to be 1)
##
## Null deviance: 226.207 on 32 degrees of freedom
## Residual deviance: 34.566 on 29 degrees of freedom
## (11 observations deleted due to missingness)
## AIC: 850.09
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 3.483
## Std. Err.: 0.820
##
## 2 x log-likelihood: -840.088
# betas significants
# D1 and D2 Not significant
### Percentage of Deviance Explained by the Model
100*(bn.gua$null.deviance - bn.gua$deviance)/bn.gua$null.deviance
## [1] 84.71913
#
deviance(bn.gua)/df.residual(bn.gua) #Overdispersion parameter < 1.5
## [1] 1.191944
# simulationOutput <- simulateResiduals(fittedModel = bn.gua, plot = TRUE)
plot(bn.gua)

shapiro.test(bn.gua$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.gua$residuals
## W = 0.95681, p-value = 0.2097
shapiro.test(residuals(bn.gua, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.gua, type = "deviance")
## W = 0.90638, p-value = 0.007829
### Camaleoes
bn.cam = glm.nb(Camales.Island ~ d1$Year + D1+D2)
summary(bn.cam)
##
## Call:
## glm.nb(formula = Camales.Island ~ d1$Year + D1 + D2, init.theta = 1.383672844,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -179.26323 22.13684 -8.098 5.59e-16 ***
## d1$Year 0.09465 0.01107 8.549 < 2e-16 ***
## D11 -0.08247 0.33016 -0.250 0.803
## D21 -0.14581 0.33447 -0.436 0.663
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(1.3837) family taken to be 1)
##
## Null deviance: 113.214 on 41 degrees of freedom
## Residual deviance: 46.918 on 38 degrees of freedom
## (2 observations deleted due to missingness)
## AIC: 939.68
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 1.384
## Std. Err.: 0.275
##
## 2 x log-likelihood: -929.684
# betas significants
# D1 and D2 Not significant
### Percentage of Deviance Explained by the Model
100*(bn.cam$null.deviance - bn.cam$deviance)/bn.cam$null.deviance
## [1] 58.55831
#
deviance(bn.cam)/df.residual(bn.cam) #Overdispersion parameter < 1.5
## [1] 1.234676
# simulationOutput <- simulateResiduals(fittedModel = bn.cam, plot = TRUE)
plot(bn.cam)

shapiro.test(bn.cam$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.cam$residuals
## W = 0.95838, p-value = 0.1292
shapiro.test(residuals(bn.cam, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.cam, type = "deviance")
## W = 0.88471, p-value = 0.0005178
### Walter Burry
bn.wal = glm.nb(Walter.Bury ~ d1$Year + D1+D2)
summary(bn.wal)
##
## Call:
## glm.nb(formula = Walter.Bury ~ d1$Year + D1 + D2, init.theta = 3.607919859,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.277e+02 1.417e+01 -16.068 <2e-16 ***
## d1$Year 1.193e-01 7.080e-03 16.843 <2e-16 ***
## D11 1.364e-02 2.079e-01 0.066 0.948
## D21 4.952e-03 2.124e-01 0.023 0.981
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(3.6079) family taken to be 1)
##
## Null deviance: 298.938 on 40 degrees of freedom
## Residual deviance: 42.882 on 37 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 975.55
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 3.608
## Std. Err.: 0.763
##
## 2 x log-likelihood: -965.546
# betas significants
# D1 and D2 Not significant
### Percentage of Deviance Explained by the Model
100*(bn.wal$null.deviance - bn.wal$deviance)/bn.wal$null.deviance
## [1] 85.65523
#
deviance(bn.wal)/df.residual(bn.wal) #Overdispersion parameter < 1.5
## [1] 1.158971
# simulationOutput <- simulateResiduals(fittedModel = bn.wal, plot = TRUE)
plot(bn.wal)

shapiro.test(bn.wal$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.wal$residuals
## W = 0.90159, p-value = 0.001848
shapiro.test(residuals(bn.wal, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.wal, type = "deviance")
## W = 0.91398, p-value = 0.004404
### Total
bn.tot = glm.nb(Total ~ d1$Year + D1+D2)
summary(bn.tot)
##
## Call:
## glm.nb(formula = Total ~ d1$Year + D1 + D2, init.theta = 8.882653884,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -55.275066 8.227122 -6.719 1.83e-11 ***
## d1$Year 0.034816 0.004118 8.455 < 2e-16 ***
## D11 -0.080219 0.128469 -0.624 0.532
## D21 0.128218 0.127155 1.008 0.313
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(8.8827) family taken to be 1)
##
## Null deviance: 111.464 on 43 degrees of freedom
## Residual deviance: 44.825 on 40 degrees of freedom
## AIC: 1301.7
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 8.88
## Std. Err.: 1.86
##
## 2 x log-likelihood: -1291.676
# betas significants
# D1 and D2 Not significant
### Percentage of Deviance Explained by the Model
100*(bn.tot$null.deviance - bn.tot$deviance)/bn.tot$null.deviance
## [1] 59.78533
#
deviance(bn.tot)/df.residual(bn.tot) #Overdispersion parameter < 1.5
## [1] 1.120618
# simulationOutput <- simulateResiduals(fittedModel = bn.tot, plot = TRUE)
plot(bn.tot)

shapiro.test(bn.tot$residuals)
##
## Shapiro-Wilk normality test
##
## data: bn.tot$residuals
## W = 0.97656, p-value = 0.5021
shapiro.test(residuals(bn.tot, type = "deviance"))
##
## Shapiro-Wilk normality test
##
## data: residuals(bn.tot, type = "deviance")
## W = 0.89831, p-value = 0.0009658
# Conclusions
# GAM
aic.gam = rbind(gam.tro$aic,gam.bra$aic,gam.jav$aic,
gam.ara$aic,gam.mor$aic,gam.abu$aic,
gam.emb$aic,gam.cristo$aic,gam.gua$aic,
gam.cam$aic,gam.wal$aic,gam.tot$aic)
# Poisson
aic.poi = rbind(poi.tro$aic,poi.bra$aic,poi.jav$aic,
poi.ara$aic,poi.mor$aic,poi.abu$aic,
poi.emb$aic,poi.cristo$aic,poi.gua$aic,
poi.cam$aic,poi.wal$aic,poi.tot$aic)
# Binomial Negativa
aic.bn = rbind(bn.tro$aic,bn.bra$aic,bn.jav$aic,
bn.ara$aic,bn.mor$aic,bn.abu$aic,
bn.emb$aic,bn.cristo$aic,bn.gua$aic,
bn.cam$aic,bn.wal$aic,bn.tot$aic)
aic.res = cbind(aic.gam,aic.poi,aic.bn)
rownames(aic.res)=c("Trombetas","Branco","Javas","Araguaia",
"Mortes","Abufari","Embaubal","Monte Cristo","Guaporé","Camaleões","Walter Burry","Total")
colnames(aic.res) = c("AIC GAM","AIC Poisson","AIC Bionomial Negativa")
print( knitr::kable(aic.res, align = "c"))
##
##
## | | AIC GAM | AIC Poisson | AIC Bionomial Negativa |
## |:------------|:---------:|:-----------:|:----------------------:|
## |Trombetas | 1042.9962 | 1977551.9 | 1008.5225 |
## |Branco | 842.2921 | 2697101.9 | 867.9557 |
## |Javas | 602.7337 | 305807.4 | 598.9170 |
## |Araguaia | 932.1578 | 6499030.3 | 900.1037 |
## |Mortes | 921.1093 | 3170281.3 | 923.3726 |
## |Abufari | 1085.1275 | 1915849.8 | 1107.3185 |
## |Embaubal | 1107.9203 | 3906792.7 | 1120.7862 |
## |Monte Cristo | 1218.6423 | 5809071.5 | 1184.3113 |
## |Guaporé | 893.0753 | 4927372.1 | 850.0881 |
## |Camaleões | 971.7207 | 422444.9 | 939.6841 |
## |Walter Burry | 1053.9415 | 885174.0 | 975.5458 |
## |Total | 1291.9722 | 7702886.7 | 1301.6762 |
summary(bn.jav)
##
## Call:
## glm.nb(formula = Javas ~ d1$Year + D1 + D2, init.theta = 3.126165479,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 69.50324 27.90471 2.491 0.0127 *
## d1$Year -0.02945 0.01399 -2.106 0.0352 *
## D11 -0.30576 0.30837 -0.992 0.3214
## D21 0.13455 0.27947 0.481 0.6302
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(3.1262) family taken to be 1)
##
## Null deviance: 35.231 on 25 degrees of freedom
## Residual deviance: 27.373 on 22 degrees of freedom
## (18 observations deleted due to missingness)
## AIC: 598.92
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 3.126
## Std. Err.: 0.825
##
## 2 x log-likelihood: -588.917
deviance(bn.jav)/df.residual(bn.jav) #Overdispersion parameter < 1.5
## [1] 1.244222
simulationOutput <- simulateResiduals(fittedModel = bn.jav, plot = TRUE)

summary(bn.ara)
##
## Call:
## glm.nb(formula = Araguaia ~ d1$Year + D1 + D2, init.theta = 0.8199479203,
## link = log)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -47.86309 37.57123 -1.274 0.2027
## d1$Year 0.02972 0.01878 1.582 0.1136
## D11 0.43990 0.49312 0.892 0.3724
## D21 0.82767 0.47305 1.750 0.0802 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Negative Binomial(0.8199) family taken to be 1)
##
## Null deviance: 46.248 on 33 degrees of freedom
## Residual deviance: 40.227 on 30 degrees of freedom
## (10 observations deleted due to missingness)
## AIC: 900.1
##
## Number of Fisher Scoring iterations: 1
##
##
## Theta: 0.820
## Std. Err.: 0.172
##
## 2 x log-likelihood: -890.104
deviance(bn.ara)/df.residual(bn.ara) #Overdispersion parameter < 1.5
## [1] 1.340907
simulationOutput <- simulateResiduals(fittedModel = bn.ara, plot = TRUE)

LS0tDQp0aXRsZTogIlBRQV9leHBhbnNhX3NjcmlwdCINCmF1dGhvcjogIkRyLiBEZW5uaXNvbiBDYXJ2YWxobyINCmRhdGU6ICIyMDI0LTExLTExIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIHRoZW1lOiBjZXJ1bGVhbg0KLS0tDQoNCmBgYHtyIHNldHVwLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQ0KIyBQbG90cyB3aXRoIHRoZSBmaXR0ZWQgbW9kZWxzDQoNCmxpYnJhcnkobWdjdikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoZ3JpZEV4dHJhKSANCmxpYnJhcnkoZ2dwdWJyKSANCmxpYnJhcnkoZ3ZsbWEpDQpsaWJyYXJ5KE1BU1MpDQpsaWJyYXJ5KGhucCkNCmxpYnJhcnkoREhBUk1hKQ0KbGlicmFyeShBRVIpDQoNCiMjIyBDbGVhcmluZyB0aGUgY29uc29sZQ0KDQpybShsaXN0ID0gbHMoKSkNCg0KIyMjIERhdGEgcmVhZGluZw0Kc2V0d2QoIkM6L1VzZXJzL2Rlbm5pL09uZURyaXZlL0RvY3VtZW50b3MvZGFkb3NwcWFwcmlzY2lsYSIpICMgbWV1IGRpcmV0w7NyaW8NCg0KZDEgPSByZWFkLnRhYmxlKCJQUUFfYXR1YWwuY3N2IixoZWFkZXIgPSBUUlVFLHNlcCA9ICIsIikNCg0Kc3RyKGQxKQ0KDQojIyMNCiMjIyAgICAgUGxvdHMgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMjIyANCg0KYXR0YWNoKGQxKQ0KZy50cm9tID0gZ2dwbG90KGRhdGEgPSBkMSwgYWVzKHggPSBZZWFyLCB5ID0gVHJvbWJldGFzKSkgKw0KICBnZW9tX3BvaW50KHNpemUgPSAyKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkxNIiksIG1ldGhvZCA9ICJsbSIsIHNlID0gVCwgc2l6ZSA9IDEpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiR0FNIiksIG1ldGhvZCA9ICJnYW0iLCBzZSA9IFQsIHNpemUgPSAxKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdMTSBQb2lzc29uIiksIG1ldGhvZCA9ICJnbG0iLCANCiAgIyAgICAgICAgICAgICBtZXRob2QuYXJncyA9IGxpc3QoZmFtaWx5ID0gInBvaXNzb24iKSwgc2UgPSBULCBzaXplID0gMSkgKw0KICBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiR0xNIE5CIiksIG1ldGhvZCA9ICJnbG0ubmIiLCBzZSA9IFQsIHNpemUgPSAxKSArDQogIGxhYnMoeCA9ICJBbm8iLCB5ID0gIlF1YW50aWRhZGUiLHRpdGxlID0gIlRyb21iZXRhcyIpICsNCiAgdGhlbWVfYncoKSsNCiAgIyBsYWJzKGNvbG91ciA9ICJNw6l0b2RvcyIpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiIikNCiMgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKGFlcyhsYWJlbD1wYXN0ZSguLmVxLmxhYmVsLi4sLi5yci5sYWJlbC4uLHNlcCA9ICJ+fiIpKSxzaXplPTcsbGFiZWwueD0yMDA1LGxhYmVsLnk9NGUrMDUpKw0KZy50cm9tDQoNCmcuYnJhbiA9IGdncGxvdChkYXRhID0gZDEsIGFlcyh4ID0gWWVhciwgeSA9IEJyYW5jbykpICsNCiAgZ2VvbV9wb2ludChzaXplID0gMikgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJMTSIpLCBtZXRob2QgPSAibG0iLCBzZSA9IEYsIHNpemUgPSAxKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdBTSIpLCBtZXRob2QgPSAiZ2FtIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gUG9pc3NvbiIpLCBtZXRob2QgPSAiZ2xtIiwgDQogICMgICAgICAgICAgICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9ICJwb2lzc29uIiksIHNlID0gRiwgc2l6ZSA9IDEpICsNCiAgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdMTSBOQiIpLCBtZXRob2QgPSAiZ2xtLm5iIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICBsYWJzKHggPSAiQW5vIiwgeSA9ICJRdWFudGlkYWRlIix0aXRsZSA9ICJCcmFuY28iKSArDQogIHRoZW1lX2J3KCkrDQogICMgbGFicyhjb2xvdXIgPSAiTcOpdG9kb3MiKSsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIiIpDQpnLmJyYW4NCg0KZy5qYXYgPSBnZ3Bsb3QoZGF0YSA9IGQxLCBhZXMoeCA9IFllYXIsIHkgPSBKYXZhcykpICsNCiAgZ2VvbV9wb2ludChzaXplID0gMikgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJMTSIpLCBtZXRob2QgPSAibG0iLCBzZSA9IEYsIHNpemUgPSAxKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdBTSIpLCBtZXRob2QgPSAiZ2FtIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gUG9pc3NvbiIpLCBtZXRob2QgPSAiZ2xtIiwgDQogICMgICAgICAgICAgICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9ICJwb2lzc29uIiksIHNlID0gRiwgc2l6ZSA9IDEpICsNCiAgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdMTSBOQiIpLCBtZXRob2QgPSAiZ2xtLm5iIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICBsYWJzKHggPSAiQW5vIiwgeSA9ICJRdWFudGlkYWRlIix0aXRsZSA9ICJKYXZhcyIpICsNCiAgdGhlbWVfYncoKSsNCiAgIyBsYWJzKGNvbG91ciA9ICJNw6l0b2RvcyIpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiIikNCmcuamF2DQoNCg0KZy5hcmEgPSBnZ3Bsb3QoZGF0YSA9IGQxLCBhZXMoeCA9IFllYXIsIHkgPSBBcmFndWFpYSkpICsNCiAgZ2VvbV9wb2ludChzaXplID0gMikgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJMTSIpLCBtZXRob2QgPSAibG0iLCBzZSA9IEYsIHNpemUgPSAxKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdBTSIpLCBtZXRob2QgPSAiZ2FtIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gUG9pc3NvbiIpLCBtZXRob2QgPSAiZ2xtIiwgDQogICMgICAgICAgICAgICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9ICJwb2lzc29uIiksIHNlID0gRiwgc2l6ZSA9IDEpICsNCiAgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdMTSBOQiIpLCBtZXRob2QgPSAiZ2xtLm5iIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICBsYWJzKHggPSAiQW5vIiwgeSA9ICJRdWFudGlkYWRlIix0aXRsZSA9ICJBcmFndWFpYSIpICsNCiAgdGhlbWVfYncoKSsNCiAgIyBsYWJzKGNvbG91ciA9ICJNw6l0b2RvcyIpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiIikNCmcuYXJhDQoNCg0KZy5tb3IgPSBnZ3Bsb3QoZGF0YSA9IGQxLCBhZXMoeCA9IFllYXIsIHkgPSBNb3J0ZXMpKSArDQogIGdlb21fcG9pbnQoc2l6ZSA9IDIpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiTE0iKSwgbWV0aG9kID0gImxtIiwgc2UgPSBGLCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHQU0iKSwgbWV0aG9kID0gImdhbSIsIHNlID0gVCwgc2l6ZSA9IDEpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiR0xNIFBvaXNzb24iKSwgbWV0aG9kID0gImdsbSIsIA0KICAjICAgICAgICAgICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAicG9pc3NvbiIpLCBzZSA9IEYsIHNpemUgPSAxKSArDQogIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gTkIiKSwgbWV0aG9kID0gImdsbS5uYiIsIHNlID0gVCwgc2l6ZSA9IDEpICsNCiAgbGFicyh4ID0gIkFubyIsIHkgPSAiUXVhbnRpZGFkZSIsdGl0bGUgPSAiTW9ydGVzIikgKw0KICB0aGVtZV9idygpKw0KICAjIGxhYnMoY29sb3VyID0gIk3DqXRvZG9zIikrDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICIiKQ0KZy5tb3INCg0KDQpnLmFidSA9IGdncGxvdChkYXRhID0gZDEsIGFlcyh4ID0gWWVhciwgeSA9IEFidWZhcmkpKSArDQogIGdlb21fcG9pbnQoc2l6ZSA9IDIpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiTE0iKSwgbWV0aG9kID0gImxtIiwgc2UgPSBGLCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHQU0iKSwgbWV0aG9kID0gImdhbSIsIHNlID0gVCwgc2l6ZSA9IDEpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiR0xNIFBvaXNzb24iKSwgbWV0aG9kID0gImdsbSIsIA0KICAjICAgICAgICAgICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAicG9pc3NvbiIpLCBzZSA9IEYsIHNpemUgPSAxKSArDQogIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gTkIiKSwgbWV0aG9kID0gImdsbS5uYiIsIHNlID0gVCwgc2l6ZSA9IDEpICsNCiAgbGFicyh4ID0gIkFubyIsIHkgPSAiUXVhbnRpZGFkZSIsdGl0bGUgPSAiQWJ1ZmFyaSIpICsNCiAgdGhlbWVfYncoKSsNCiAgIyBsYWJzKGNvbG91ciA9ICJNw6l0b2RvcyIpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiIikNCmcuYWJ1DQoNCg0KZy5lbWIgPSBnZ3Bsb3QoZGF0YSA9IGQxLCBhZXMoeCA9IFllYXIsIHkgPSBFbWJhdWJhbCkpICsNCiAgZ2VvbV9wb2ludChzaXplID0gMikgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJMTSIpLCBtZXRob2QgPSAibG0iLCBzZSA9IEYsIHNpemUgPSAxKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdBTSIpLCBtZXRob2QgPSAiZ2FtIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gUG9pc3NvbiIpLCBtZXRob2QgPSAiZ2xtIiwgDQogICMgICAgICAgICAgICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9ICJwb2lzc29uIiksIHNlID0gRiwgc2l6ZSA9IDEpICsNCiAgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdMTSBOQiIpLCBtZXRob2QgPSAiZ2xtLm5iIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICBsYWJzKHggPSAiQW5vIiwgeSA9ICJRdWFudGlkYWRlIix0aXRsZSA9ICJFbWJhdWJhbCIpICsNCiAgdGhlbWVfYncoKSsNCiAgIyBsYWJzKGNvbG91ciA9ICJNw6l0b2RvcyIpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiIikNCmcuZW1iDQoNCg0KZy5jcmkgPSBnZ3Bsb3QoZGF0YSA9IGQxLCBhZXMoeCA9IFllYXIsIHkgPSBNb250ZS5DcmlzdG8pKSArDQogIGdlb21fcG9pbnQoc2l6ZSA9IDIpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiTE0iKSwgbWV0aG9kID0gImxtIiwgc2UgPSBGLCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHQU0iKSwgbWV0aG9kID0gImdhbSIsIHNlID0gVCwgc2l6ZSA9IDEpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiR0xNIFBvaXNzb24iKSwgbWV0aG9kID0gImdsbSIsIA0KICAjICAgICAgICAgICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAicG9pc3NvbiIpLCBzZSA9IEYsIHNpemUgPSAxKSArDQogIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gTkIiKSwgbWV0aG9kID0gImdsbS5uYiIsIHNlID0gVCwgc2l6ZSA9IDEpICsNCiAgbGFicyh4ID0gIkFubyIsIHkgPSAiUXVhbnRpZGFkZSIsdGl0bGUgPSAiTW9udGUgQ3Jpc3RvIikgKw0KICB0aGVtZV9idygpKw0KICAjIGxhYnMoY29sb3VyID0gIk3DqXRvZG9zIikrDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICIiKQ0KZy5jcmkNCg0KDQpnLmd1YSA9IGdncGxvdChkYXRhID0gZDEsIGFlcyh4ID0gWWVhciwgeSA9IEd1YXBvcikpICsNCiAgZ2VvbV9wb2ludChzaXplID0gMikgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJMTSIpLCBtZXRob2QgPSAibG0iLCBzZSA9IEYsIHNpemUgPSAxKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdBTSIpLCBtZXRob2QgPSAiZ2FtIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gUG9pc3NvbiIpLCBtZXRob2QgPSAiZ2xtIiwgDQogICMgICAgICAgICAgICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9ICJwb2lzc29uIiksIHNlID0gRiwgc2l6ZSA9IDEpICsNCiAgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdMTSBOQiIpLCBtZXRob2QgPSAiZ2xtLm5iIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICBsYWJzKHggPSAiQW5vIiwgeSA9ICJRdWFudGlkYWRlIix0aXRsZSA9ICJHdWFwb3LDqSIpICsNCiAgdGhlbWVfYncoKSsNCiAgIyBsYWJzKGNvbG91ciA9ICJNw6l0b2RvcyIpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiIikNCmcuZ3VhDQoNCmcuY2FtID0gZ2dwbG90KGRhdGEgPSBkMSwgYWVzKHggPSBZZWFyLCB5ID0gQ2FtYWxlcy5Jc2xhbmQpKSArDQogIGdlb21fcG9pbnQoc2l6ZSA9IDIpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiTE0iKSwgbWV0aG9kID0gImxtIiwgc2UgPSBGLCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHQU0iKSwgbWV0aG9kID0gImdhbSIsIHNlID0gVCwgc2l6ZSA9IDEpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiR0xNIFBvaXNzb24iKSwgbWV0aG9kID0gImdsbSIsIA0KICAjICAgICAgICAgICAgIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAicG9pc3NvbiIpLCBzZSA9IEYsIHNpemUgPSAxKSArDQogIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gTkIiKSwgbWV0aG9kID0gImdsbS5uYiIsIHNlID0gVCwgc2l6ZSA9IDEpICsNCiAgbGFicyh4ID0gIkFubyIsIHkgPSAiUXVhbnRpZGFkZSIsdGl0bGUgPSAiQ2FtYWxlw7VlcyIpICsNCiAgdGhlbWVfYncoKSsNCiAgIyBsYWJzKGNvbG91ciA9ICJNw6l0b2RvcyIpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiIikNCmcuY2FtDQoNCg0KZy53YWwgPSBnZ3Bsb3QoZGF0YSA9IGQxLCBhZXMoeCA9IFllYXIsIHkgPSBXYWx0ZXIuQnVyeSkpICsNCiAgZ2VvbV9wb2ludChzaXplID0gMikgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJMTSIpLCBtZXRob2QgPSAibG0iLCBzZSA9IEYsIHNpemUgPSAxKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdBTSIpLCBtZXRob2QgPSAiZ2FtIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICAjIGdlb21fc21vb3RoKGFlcyhjb2xvciA9ICJHTE0gUG9pc3NvbiIpLCBtZXRob2QgPSAiZ2xtIiwgDQogICMgICAgICAgICAgICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9ICJwb2lzc29uIiksIHNlID0gRiwgc2l6ZSA9IDEpICsNCiAgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdMTSBOQiIpLCBtZXRob2QgPSAiZ2xtLm5iIiwgc2UgPSBULCBzaXplID0gMSkgKw0KICBsYWJzKHggPSAiQW5vIiwgeSA9ICJRdWFudGlkYWRlIix0aXRsZSA9ICJXYWx0ZXIgQnVycnkiKSArDQogIHRoZW1lX2J3KCkrDQogICMgbGFicyhjb2xvdXIgPSAiTcOpdG9kb3MiKSsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIiIpDQpnLndhbA0KDQpnLnRvdCA9IGdncGxvdChkYXRhID0gZDEsIGFlcyh4ID0gWWVhciwgeSA9IFRvdGFsKSkgKw0KICBnZW9tX3BvaW50KHNpemUgPSAyKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkxNIiksIG1ldGhvZCA9ICJsbSIsIHNlID0gRiwgc2l6ZSA9IDEpICsNCiAgIyBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiR0FNIiksIG1ldGhvZCA9ICJnYW0iLCBzZSA9IFQsIHNpemUgPSAxKSArDQogICMgZ2VvbV9zbW9vdGgoYWVzKGNvbG9yID0gIkdMTSBQb2lzc29uIiksIG1ldGhvZCA9ICJnbG0iLCANCiAgIyAgICAgICAgICAgICBtZXRob2QuYXJncyA9IGxpc3QoZmFtaWx5ID0gInBvaXNzb24iKSwgc2UgPSBGLCBzaXplID0gMSkgKw0KICBnZW9tX3Ntb290aChhZXMoY29sb3IgPSAiR0xNIE5CIiksIG1ldGhvZCA9ICJnbG0ubmIiLCBzZSA9IFQsIHNpemUgPSAxKSArDQogIGxhYnMoeCA9ICJBbm8iLCB5ID0gIlF1YW50aWRhZGUiLHRpdGxlID0gIlRvdGFsIikgKw0KICB0aGVtZV9idygpKw0KICAjIGxhYnMoY29sb3VyID0gIk3DqXRvZG9zIikrDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICIiKQ0KZy50b3QNCg0KZ3JpZC5hcnJhbmdlKGcudHJvbSxnLmJyYW4sZy5qYXYsZy5hcmEsZy5tb3IsZy5hYnUsZy5lbWIsZy5jcmksZy5ndWEsZy5jYW0sZy53YWwsZy50b3QsIG5jb2w9MykNCg0KZ3JpZC5hcnJhbmdlKGcudHJvbSxnLmJyYW4sZy5qYXYsZy5hcmEsZy5tb3IsZy5hYnUsIG5jb2w9MikNCg0KZ3JpZC5hcnJhbmdlKGcuZW1iLGcuY3JpLGcuZ3VhLGcuY2FtLGcud2FsLGcudG90LCBuY29sPTIpDQoNCiMgbGluZWFyIHJlZ3Jlc3Npb24NCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIyMjICBmaXRzIA0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIA0KDQp5LnRvdGFsIDwtIGQxJFRvdGFsDQpzdHIoeS50b3RhbCkNCg0KRDEgPC0gYXMuZmFjdG9yKGQxJExhLk5pYSkNCkQyIDwtIGFzLmZhY3RvcihkMSRFbC5OaW5vKQ0KDQpkMiA8LSBkYXRhLmZyYW1lKGFubyA9IGQxJFllYXIseS50b3RhbCxEMSxEMikNCnN0cihkMikNCg0KIyMjIFRyb21iZXRhcw0KbG0udHJvbSA9IGxtKGQxJFRyb21iZXRhcyB+IGQxJFllYXIgKyBEMSArIEQyLCBuYS5hY3Rpb24gPSAibmEuZXhjbHVkZSIpDQojIEQxIGUgRDIgTm90IHNpZ25pZmljYW50DQpzdW1tYXJ5KGxtLnRyb20pDQoNCnBhcihtZnJvdyA9IGMoMiwyKSkNCnBsb3QobG0udHJvbSkNCg0Kc2hhcGlyby50ZXN0KGxtLnRyb20kcmVzaWR1YWxzKSAjIG5vcm1hbA0KDQojIyMgQnJhbmNvDQpsbS5icmEgPSBsbShkMSRCcmFuY28gfiBkMSRZZWFyICsgRDEgKyBEMiwgbmEuYWN0aW9uID0gIm5hLmV4Y2x1ZGUiKQ0KIyBEMSBlIEQyIE5vdCBzaWduaWZpY2FudA0Kc3VtbWFyeShsbS5icmEpDQoNCnBhcihtZnJvdyA9IGMoMiwyKSkNCnBsb3QobG0uYnJhKQ0KDQpzaGFwaXJvLnRlc3QobG0uYnJhJHJlc2lkdWFscykgICMgTm90IG5vcm1hbA0KDQojIyMgSmF2YWVzDQpsbS5qYXYgPSBsbShkMSRKYXZhcyB+IGQxJFllYXIgKyBEMSArIEQyLCBuYS5hY3Rpb24gPSAibmEuZXhjbHVkZSIpDQojIGJldGFzIG5vdCBzaWduaWZpY2FudHMNCiMgRDEgZSBEMiBOb3Qgc2lnbmlmaWNhbnQNCnN1bW1hcnkobG0uamF2KQ0KDQpwYXIobWZyb3cgPSBjKDIsMikpDQpwbG90KGxtLmphdikNCg0Kc2hhcGlyby50ZXN0KGxtLmphdiRyZXNpZHVhbHMpICAjIG5vcm1hbA0KDQojIyMgQXJhZ3VhaWENCmxtLmFyYSA9IGxtKGQxJEFyYWd1YWlhIH4gZDEkWWVhciArIEQxICsgRDIsIG5hLmFjdGlvbiA9ICJuYS5leGNsdWRlIikNCiMgYmV0YXMgbm90IHNpZ25pZmljYW50cw0KIyBEMSBlIEQyIE5vdCBzaWduaWZpY2FudA0Kc3VtbWFyeShsbS5hcmEpDQoNCnBhcihtZnJvdyA9IGMoMiwyKSkNCnBsb3QobG0uYXJhKQ0KDQpzaGFwaXJvLnRlc3QobG0uYXJhJHJlc2lkdWFscykgICMgTm90IG5vcm1hbA0KDQojIyMgTW9ydGVzDQpsbS5tb3IgPSBsbShkMSRNb3J0ZXMgfiBkMSRZZWFyICsgRDEgKyBEMiwgbmEuYWN0aW9uID0gIm5hLmV4Y2x1ZGUiKQ0KIyBiZXRhcyBub3Qgc2lnbmlmaWNhbnRzDQojIEQxIGUgRDIgTm90IHNpZ25pZmljYW50DQpzdW1tYXJ5KGxtLm1vcikNCg0KcGFyKG1mcm93ID0gYygyLDIpKQ0KcGxvdChsbS5tb3IpDQoNCnNoYXBpcm8udGVzdChsbS5tb3IkcmVzaWR1YWxzKSAgIyBub3JtYWwNCg0KIyMjIEFidWZhcmkNCmxtLmFidSA9IGxtKGQxJEFidWZhcmkgfiBkMSRZZWFyICsgRDEgKyBEMiwgbmEuYWN0aW9uID0gIm5hLmV4Y2x1ZGUiKQ0KIyBzw7MgWWVhciBzaWduaWZpY2FudCB2YWxvciBwIDAsMDM2Mg0KIyBEMSBlIEQyIE5vdCBzaWduaWZpY2FudA0Kc3VtbWFyeShsbS5hYnUpDQoNCnBhcihtZnJvdyA9IGMoMiwyKSkNCnBsb3QobG0uYWJ1KQ0KDQpzaGFwaXJvLnRlc3QobG0uYWJ1JHJlc2lkdWFscykgICMgbm9ybWFsDQoNCiMjIyBFbWJhdWJhbA0KbG0uZW1iID0gbG0oZDEkRW1iYXViYWwgfiBkMSRZZWFyICsgRDEgKyBEMiwgbmEuYWN0aW9uID0gIm5hLmV4Y2x1ZGUiKQ0KIyBiZXRhcyBzaWduaWZpY2FudHMNCiMgRDEgZSBEMiBOb3Qgc2lnbmlmaWNhbnQNCnN1bW1hcnkobG0uZW1iKQ0KDQpwYXIobWZyb3cgPSBjKDIsMikpDQpwbG90KGxtLmVtYikNCg0Kc2hhcGlyby50ZXN0KGxtLmVtYiRyZXNpZHVhbHMpICAjIG5vcm1hbA0KDQojIyMgTW9udGUgY3Jpc3RvDQojIyMgRW1iYXViYWwNCmxtLmNyaXN0byA9IGxtKGQxJE1vbnRlLkNyaXN0byB+IGQxJFllYXIgKyBEMSArIEQyLCBuYS5hY3Rpb24gPSAibmEuZXhjbHVkZSIpDQojIGJldGFzIHNpZ25pZmljYW50cw0KIyBEMSBlIEQyIE5vdCBzaWduaWZpY2FudA0Kc3VtbWFyeShsbS5jcmlzdG8pDQoNCnBhcihtZnJvdyA9IGMoMiwyKSkNCnBsb3QobG0uY3Jpc3RvKQ0KDQpzaGFwaXJvLnRlc3QobG0uY3Jpc3RvJHJlc2lkdWFscykgICMgTm90IG5vcm1hbA0KDQoNCiMjIyBHdWFwb3LDqQ0KbG0uZ3VhID0gbG0oZDEkR3VhcG9yIH4gZDEkWWVhciArIEQxICsgRDIsIG5hLmFjdGlvbiA9ICJuYS5leGNsdWRlIikNCiMgYmV0YXMgc2lnbmlmaWNhbnRzDQojIEQxIGUgRDIgTm90IHNpZ25pZmljYW50DQpzdW1tYXJ5KGxtLmd1YSkNCg0KcGFyKG1mcm93ID0gYygyLDIpKQ0KcGxvdChsbS5ndWEpDQoNCnNoYXBpcm8udGVzdChsbS5ndWEkcmVzaWR1YWxzKSAgIyBOb3Qgbm9ybWFsDQoNCiMjIyBDYW1hbGVvZXMNCmxtLmNhbSA9IGxtKGQxJENhbWFsZXMuSXNsYW5kIH4gZDEkWWVhciArIEQxICsgRDIsIG5hLmFjdGlvbiA9ICJuYS5leGNsdWRlIikNCiMgYmV0YXMgc2lnbmlmaWNhbnRzDQojIEQxIGUgRDIgTm90IHNpZ25pZmljYW50DQpzdW1tYXJ5KGxtLmNhbSkNCg0KcGFyKG1mcm93ID0gYygyLDIpKQ0KcGxvdChsbS5jYW0pDQoNCnNoYXBpcm8udGVzdChsbS5jYW0kcmVzaWR1YWxzKSAgIyAgbm9ybWFsDQoNCiMjIyBXYWx0ZXIgQnVycnkNCmxtLndhbCA9IGxtKGQxJFdhbHRlci5CdXJ5IH4gZDEkWWVhciArIEQxICsgRDIsIG5hLmFjdGlvbiA9ICJuYS5leGNsdWRlIikNCiMgYmV0YXMgc2lnbmlmaWNhbnRzDQojIEQxIGUgRDIgTm90IHNpZ25pZmljYW50DQpzdW1tYXJ5KGxtLndhbCkNCg0KcGFyKG1mcm93ID0gYygyLDIpKQ0KcGxvdChsbS53YWwpDQoNCnNoYXBpcm8udGVzdChsbS53YWwkcmVzaWR1YWxzKSAgIyBOb3Qgbm9ybWFsDQoNCiMjIyBUb3RhbA0KbG0udG90ID0gbG0oZDEkVG90YWwgfiBkMSRZZWFyICsgRDEsIG5hLmFjdGlvbiA9ICJuYS5leGNsdWRlIikNCiMgYmV0YXMgc2lnbmlmaWNhbnRzDQojIEQxIHNpZ25pZmljYW50IGUgRDIgTm90IHNpZ25pZmljYW50DQpzdW1tYXJ5KGxtLnRvdCkNCg0KcGFyKG1mcm93ID0gYygyLDIpKQ0KcGxvdChsbS50b3QpDQoNCnNoYXBpcm8udGVzdChsbS50b3QkcmVzaWR1YWxzKSAgIyBub3JtYWwNCg0KDQojIEdlbmVyYWxpemVkIEFkZGl0aXZlIE1vZGVscyAoR0FNKQ0KDQojIyMNCiMjIyBmaXRzICMjIyMjIyMjIyMjIyMjIyMjIw0KIyMjIA0KDQojIyMgVHJvbWJldGFzDQpnYW0udHJvID0gZ2FtKFRyb21iZXRhcyB+IHMoZDEkWWVhcikgKyBEMSArIEQyKQ0KZ2FtLnRybyRudWxsLmRldmlhbmNlDQpnYW0udHJvJGRldmlhbmNlDQoNCnN1bW1hcnkoZ2FtLnRybykNCiMgRDEgZSBEMiBOb3Qgc2lnbmlmaWNhbnQNCiMgcyh5ZWFyKSBzaWduaWZpY2FudA0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCooZ2FtLnRybyRudWxsLmRldmlhbmNlIC0gZ2FtLnRybyRkZXZpYW5jZSkvZ2FtLnRybyRudWxsLmRldmlhbmNlDQoNCg0KIyMjIFJlc2lkdWFsIEFuYWx5c2lzDQoNCnNoYXBpcm8udGVzdChnYW0udHJvJHJlc2lkdWFscykgIyBOb3Qgbm9ybWFsDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGdhbS50cm8sIHR5cGUgPSAiZGV2aWFuY2UiKSkNCg0KIyBwbG90KGdhbS50cm8pDQojIHBhcihtZnJvdz1jKDIsMikpDQpnYW0uY2hlY2soZ2FtLnRybykNCg0KIyBzaW11bGF0aW9uT3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gcG9pLnRybywgcGxvdCA9IFRSVUUpDQoNCiMjIyBCcmFuY28NCmdhbS5icmEgPSBnYW0oQnJhbmNvIH4gcyhkMSRZZWFyKSArIEQxICsgRDIpDQpnYW0uYnJhJG51bGwuZGV2aWFuY2UNCmdhbS50cm8kZGV2aWFuY2UNCg0Kc3VtbWFyeShnYW0uYnJhKQ0KIyBEMSBlIEQyIE5vdCBzaWduaWZpY2FudA0KIyBzKHllYXIpIHNpZ25pZmljYW50DQoNCiMjIyBSZXNpZHVhbCBBbmFseXNpcw0KDQpzaGFwaXJvLnRlc3QoZ2FtLmJyYSRyZXNpZHVhbHMpICMgbm9ybWFsDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGdhbS5icmEsIHR5cGUgPSAiZGV2aWFuY2UiKSkNCg0KIyBwbG90KGdhbS50cm8pDQojIHBhcihtZnJvdz1jKDIsMikpDQojIGdhbS5jaGVjayhnYW0uYnJhKQ0KDQojIHNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBwb2kuYnJhLCBwbG90ID0gVFJVRSkNCg0KIyMjIEphdmFlcw0KZ2FtLmphdiA9IGdhbShKYXZhcyB+IHMoZDEkWWVhcikgKyBEMSArIEQyKQ0KZ2FtLnRybyRudWxsLmRldmlhbmNlDQpnYW0udHJvJGRldmlhbmNlDQoNCnN1bW1hcnkoZ2FtLmphdikNCiMgRDEgZSBEMiBOb3Qgc2lnbmlmaWNhbnQNCiMgcyh5ZWFyKSBOb3Qgc2lnbmlmaWNhbnQNCg0KIyMjIFJlc2lkdWFsIEFuYWx5c2lzDQoNCnNoYXBpcm8udGVzdChnYW0uamF2JHJlc2lkdWFscykgIyBOb3Qgbm9ybWFsDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGdhbS5qYXYsIHR5cGUgPSAiZGV2aWFuY2UiKSkNCg0KDQojIHBsb3QoZ2FtLnRybykNCiMgcGFyKG1mcm93PWMoMiwyKSkNCmdhbS5jaGVjayhnYW0uamF2KQ0KDQojIHNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBwb2kuamF2LCBwbG90ID0gVFJVRSkNCg0KIyMjIEFyYWd1YWlhDQpnYW0uYXJhID0gZ2FtKEFyYWd1YWlhIH4gcyhkMSRZZWFyKSArIEQxICsgRDIpDQpnYW0uYXJhJG51bGwuZGV2aWFuY2UNCmdhbS5hcmEkZGV2aWFuY2UNCg0Kc3VtbWFyeShnYW0uYXJhKQ0KIyBEMSBlIEQyIE5vdCBzaWduaWZpY2FudA0KIyBzKHllYXIpIHNpZ25pZmljYW50DQoNCiMjIyBSZXNpZHVhbCBBbmFseXNpcw0KDQpzaGFwaXJvLnRlc3QoZ2FtLmFyYSRyZXNpZHVhbHMpICMgTm90IG5vcm1hbA0Kc2hhcGlyby50ZXN0KHJlc2lkdWFscyhnYW0uYXJhLCB0eXBlID0gImRldmlhbmNlIikpDQoNCiMgcGxvdChnYW0udHJvKQ0KIyBwYXIobWZyb3c9YygyLDIpKQ0KZ2FtLmNoZWNrKGdhbS5hcmEpDQoNCiMgc2ltdWxhdGlvbk91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IHBvaS5hcmEsIHBsb3QgPSBUUlVFKQ0KDQojIyMgTW9ydGVzDQpnYW0ubW9yID0gZ2FtKE1vcnRlcyB+IHMoZDEkWWVhcikgKyBEMSArIEQyKQ0KZ2FtLm1vciRudWxsLmRldmlhbmNlDQpnYW0ubW9yJGRldmlhbmNlDQoNCg0Kc3VtbWFyeShnYW0ubW9yKQ0KIyBEMSBlIEQyIE5vdCBzaWduaWZpY2FudA0KIyBzKHllYXIpIE5vdCBzaWduaWZpY2FudA0KDQojIyMgUmVzaWR1YWwgQW5hbHlzaXMNCg0Kc2hhcGlyby50ZXN0KGdhbS5tb3IkcmVzaWR1YWxzKSAjIG5vcm1hbA0Kc2hhcGlyby50ZXN0KHJlc2lkdWFscyhnYW0ubW9yLCB0eXBlID0gImRldmlhbmNlIikpDQoNCg0KIyBwbG90KGdhbS50cm8pDQojIHBhcihtZnJvdz1jKDIsMikpDQpnYW0uY2hlY2soZ2FtLm1vcikNCg0KIyBzaW11bGF0aW9uT3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gcG9pLm1vciwgcGxvdCA9IFRSVUUpDQoNCiMjIyBBYnVmYXJpDQpnYW0uYWJ1ID0gZ2FtKEFidWZhcmkgfiBzKGQxJFllYXIpICsgRDEgKyBEMikNCmdhbS5hYnUkbnVsbC5kZXZpYW5jZQ0KZ2FtLmFidSRkZXZpYW5jZQ0KDQpzdW1tYXJ5KGdhbS5hYnUpDQojIEQxIGUgRDIgTm90IHNpZ25pZmljYW50DQojIHMoeWVhcikgc2lnbmlmaWNhbnQNCg0KIyMjIFJlc2lkdWFsIEFuYWx5c2lzDQoNCnNoYXBpcm8udGVzdChnYW0uYWJ1JHJlc2lkdWFscykgIyBub3JtYWwNCnNoYXBpcm8udGVzdChyZXNpZHVhbHMoZ2FtLmFidSwgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQoNCiMgcGxvdChnYW0udHJvKQ0KIyBwYXIobWZyb3c9YygyLDIpKQ0KZ2FtLmNoZWNrKGdhbS5hYnUpDQoNCiMgc2ltdWxhdGlvbk91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IHBvaS5hYnUsIHBsb3QgPSBUUlVFKQ0KDQojIyMgRW1iYXViYWwNCmdhbS5lbWIgPSBnYW0oRW1iYXViYWwgfiBzKGQxJFllYXIpICsgRDEgKyBEMikNCmdhbS5lbWIkbnVsbC5kZXZpYW5jZQ0KZ2FtLmVtYiRkZXZpYW5jZQ0KDQpzdW1tYXJ5KGdhbS5lbWIpDQojIEQxIGUgRDIgTm90IHNpZ25pZmljYW50DQojIHMoeWVhcikgc2lnbmlmaWNhbnQNCg0KIyMjIFJlc2lkdWFsIEFuYWx5c2lzDQoNCnNoYXBpcm8udGVzdChnYW0uZW1iJHJlc2lkdWFscykgIyBub3JtYWwNCnNoYXBpcm8udGVzdChyZXNpZHVhbHMoZ2FtLmVtYiwgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQoNCiMgcGxvdChnYW0udHJvKQ0KIyBwYXIobWZyb3c9YygyLDIpKQ0KZ2FtLmNoZWNrKGdhbS5lbWIpDQoNCiMgc2ltdWxhdGlvbk91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IHBvaS5lbWIsIHBsb3QgPSBUUlVFKQ0KDQojIyMgTW9udGUgQ3Jpc3RvDQpnYW0uY3Jpc3RvID0gZ2FtKE1vbnRlLkNyaXN0byB+IHMoZDEkWWVhcikgKyBEMSArIEQyKQ0KZ2FtLmNyaXN0byRudWxsLmRldmlhbmNlDQpnYW0uY3Jpc3RvJGRldmlhbmNlDQoNCnN1bW1hcnkoZ2FtLmNyaXN0bykNCiMgRDEgZSBEMiBOb3Qgc2lnbmlmaWNhbnQNCiMgcyh5ZWFyKSBzaWduaWZpY2FudA0KDQojIyMgUmVzaWR1YWwgQW5hbHlzaXMNCg0Kc2hhcGlyby50ZXN0KGdhbS5jcmlzdG8kcmVzaWR1YWxzKSAjIE5vdCBub3JtYWwNCnNoYXBpcm8udGVzdChyZXNpZHVhbHMoZ2FtLmNyaXN0bywgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQoNCiMgcGxvdChnYW0udHJvKQ0KIyBwYXIobWZyb3c9YygyLDIpKQ0KZ2FtLmNoZWNrKGdhbS5jcmlzdG8pDQoNCiMgc2ltdWxhdGlvbk91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IHBvaS5jcmlzdG8sIHBsb3QgPSBUUlVFKQ0KDQojIyMgR3VhcG9yw6kNCmdhbS5ndWEgPSBnYW0oR3VhcG9yIH4gcyhkMSRZZWFyKSArIEQxICsgRDIpDQpnYW0uZ3VhJG51bGwuZGV2aWFuY2UNCmdhbS5ndWEkZGV2aWFuY2UNCg0Kc3VtbWFyeShnYW0uZ3VhKQ0KIyBEMSBlIEQyIE5vdCBzaWduaWZpY2FudA0KIyBzKHllYXIpIHNpZ25pZmljYW50DQoNCiMjIyBSZXNpZHVhbCBBbmFseXNpcw0KDQpzaGFwaXJvLnRlc3QoZ2FtLmd1YSRyZXNpZHVhbHMpICMgTm90IG5vcm1hbA0Kc2hhcGlyby50ZXN0KHJlc2lkdWFscyhnYW0uZ3VhLCB0eXBlID0gImRldmlhbmNlIikpDQoNCg0KIyBwbG90KGdhbS50cm8pDQojIHBhcihtZnJvdz1jKDIsMikpDQpnYW0uY2hlY2soZ2FtLmd1YSkNCg0KIyBzaW11bGF0aW9uT3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gcG9pLmd1YSwgcGxvdCA9IFRSVUUpDQoNCiMjIyBDYW1hbGVvZXMNCmdhbS5jYW0gPSBnYW0oQ2FtYWxlcy5Jc2xhbmQgfiBzKGQxJFllYXIpICsgRDEgKyBEMikNCmdhbS5jYW0kbnVsbC5kZXZpYW5jZQ0KZ2FtLmNhbSRkZXZpYW5jZQ0KDQpzdW1tYXJ5KGdhbS5jYW0pDQojIEQxIE5vdCBzaWduaWZpY2FudCBlIEQyIHNpZ25pZmljYW50IHZhbG9yIHAgMCwwMzg4DQojIHMoeWVhcikgc2lnbmlmaWNhbnQNCg0KIyMjIFJlc2lkdWFsIEFuYWx5c2lzDQoNCnNoYXBpcm8udGVzdChnYW0uY2FtJHJlc2lkdWFscykgIyBOb3Qgbm9ybWFsDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGdhbS5jYW0sIHR5cGUgPSAiZGV2aWFuY2UiKSkNCg0KDQojIHBsb3QoZ2FtLnRybykNCiMgcGFyKG1mcm93PWMoMiwyKSkNCmdhbS5jaGVjayhnYW0uY2FtKQ0KDQojIHNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBwb2kuY2FtLCBwbG90ID0gVFJVRSkNCg0KIyMjIFdhbHRlciBCdXJyeQ0KZ2FtLndhbCA9IGdhbShXYWx0ZXIuQnVyeSB+IHMoZDEkWWVhcikgKyBEMSArIEQyKQ0KZ2FtLndhbCRudWxsLmRldmlhbmNlDQpnYW0ud2FsJGRldmlhbmNlDQoNCnN1bW1hcnkoZ2FtLndhbCkNCiMgRDEgZSBEMiBOb3Qgc2lnbmlmaWNhbnQNCiMgcyh5ZWFyKSBzaWduaWZpY2FudA0KDQojIyMgUmVzaWR1YWwgQW5hbHlzaXMNCg0Kc2hhcGlyby50ZXN0KGdhbS53YWwkcmVzaWR1YWxzKSAjIE5vdCBub3JtYWwNCnNoYXBpcm8udGVzdChyZXNpZHVhbHMoZ2FtLndhbCwgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQoNCiMgcGxvdChnYW0udHJvKQ0KIyBwYXIobWZyb3c9YygyLDIpKQ0KZ2FtLmNoZWNrKGdhbS53YWwpDQoNCiMgc2ltdWxhdGlvbk91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IHBvaS53YWwsIHBsb3QgPSBUUlVFKQ0KDQojIyMgVG90YWwNCmdhbS50b3QgPSBnYW0oVG90YWwgfiBzKGQxJFllYXIpICsgRDEgKyBEMikNCmdhbS50b3QkbnVsbC5kZXZpYW5jZQ0KZ2FtLnRvdCRkZXZpYW5jZQ0KDQpzdW1tYXJ5KGdhbS50b3QpDQojIEQxIGUgRDIgTm90IHNpZ25pZmljYW50DQoNCiMgc2ltdWxhdGlvbk91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IHBvaS50b3QsIHBsb3QgPSBUUlVFKQ0KDQojIyMgUmVzaWR1YWwgQW5hbHlzaXMNCg0Kc2hhcGlyby50ZXN0KGdhbS50b3QkcmVzaWR1YWxzKSAjIG7DoyBub3JtYWwNCnNoYXBpcm8udGVzdChyZXNpZHVhbHMoZ2FtLnRvdCwgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQoNCiMgcGxvdChnYW0udG90KQ0KIyBwYXIobWZyb3c9YygyLDIpKQ0KZ2FtLmNoZWNrKGdhbS50b3QpDQoNCg0KIyBQb2lzc29uIG1vZGVsIChHTE0gbW9kZWwpDQoNCiMjIyMgDQojIyMjIFBvaXNzb24gIyMjIyMjIyMjIw0KIyMjIyANCg0KIyMjIFRyb21iZXRhcw0KcG9pLnRybyA9IGdsbShUcm9tYmV0YXMgfiBkMSRZZWFyICsgRDEgKyBEMiwgZmFtaWx5PSJwb2lzc29uIikNCnN1bW1hcnkocG9pLnRybykNCiMgYmV0YXMsIEQxIGFuZCBEMiBzaWduaWZpY2FudHMNCg0KIyMjIFBlcmNlbnRhZ2Ugb2YgRGV2aWFuY2UgRXhwbGFpbmVkIGJ5IHRoZSBNb2RlbA0KDQoNCjEwMCoocG9pLnRybyRudWxsLmRldmlhbmNlIC0gcG9pLnRybyRkZXZpYW5jZSkvcG9pLnRybyRudWxsLmRldmlhbmNlDQoNCiMgT3ZlcmRpc3BlcnNpb24gdGVzdA0KZGlzcGVyc2lvbnRlc3QocG9pLnRybykgIyBPdmVyZGlzcGVyc2lvbiBhY2VwdA0KZGV2aWFuY2UocG9pLnRybykvZGYucmVzaWR1YWwocG9pLnRybykgI092ZXJkaXNwZXJzaW9uIHBhcmFtZXRlcg0KDQojIHBsb3QocG9pLnRybykNCg0KDQpzaW11bGF0aW9uT3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gcG9pLnRybywgcGxvdCA9IFRSVUUpDQoNCiMjIyBCcmFuY28NCnBvaS5icmEgPSBnbG0oQnJhbmNvIH4gZDEkWWVhciArIEQxICsgRDIsIGZhbWlseT0icG9pc3NvbiIpDQpzdW1tYXJ5KHBvaS5icmEpDQojIGJldGFzLCBEMSBlIEQyIHNpZ25pZmljYW50cw0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCoocG9pLmJyYSRudWxsLmRldmlhbmNlIC0gcG9pLmJyYSRkZXZpYW5jZSkvcG9pLmJyYSRudWxsLmRldmlhbmNlDQoNCiMgT3ZlcmRpc3BlcnNpb24gdGVzdA0KZGlzcGVyc2lvbnRlc3QocG9pLmJyYSkgIyBPdmVyZGlzcGVyc2lvbiBhY2VwdA0KDQojIyMgSmF2YWVzDQpwb2kuamF2ID0gZ2xtKEphdmFzIH4gZDEkWWVhciArIEQxICsgRDIsIGZhbWlseT0icG9pc3NvbiIpDQpzdW1tYXJ5KHBvaS5qYXYpDQojIGJldGFzLCBEMSBhbmQgRDIgc2lnbmlmaWNhbnRzDQoNCiMjIyBQZXJjZW50YWdlIG9mIERldmlhbmNlIEV4cGxhaW5lZCBieSB0aGUgTW9kZWwNCg0KMTAwKihwb2kuamF2JG51bGwuZGV2aWFuY2UgLSBwb2kuamF2JGRldmlhbmNlKS9wb2kuamF2JG51bGwuZGV2aWFuY2UNCg0KIyBPdmVyZGlzcGVyc2lvbiB0ZXN0DQpkaXNwZXJzaW9udGVzdChwb2kuamF2KSAjIE92ZXJkaXNwZXJzaW9uIGFjZXB0DQoNCiMjIyBBcmFndWFpYQ0KcG9pLmFyYSA9IGdsbShBcmFndWFpYSB+IGQxJFllYXIgKyBEMSArIEQyLCBmYW1pbHk9InBvaXNzb24iKQ0Kc3VtbWFyeShwb2kuYXJhKQ0KIyBiZXRhcywgRDEgYW5kIEQyIHNpZ25pZmljYW50cw0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCoocG9pLmFyYSRudWxsLmRldmlhbmNlIC0gcG9pLmFyYSRkZXZpYW5jZSkvcG9pLmFyYSRudWxsLmRldmlhbmNlDQoNCiMgT3ZlcmRpc3BlcnNpb24gdGVzdA0KZGlzcGVyc2lvbnRlc3QocG9pLmFyYSkgIyBPdmVyZGlzcGVyc2lvbiBhY2VwdA0KDQojIyMgTW9ydGVzDQpwb2kubW9yID0gZ2xtKE1vcnRlcyB+IGQxJFllYXIgKyBEMSArIEQyLCBmYW1pbHk9InBvaXNzb24iKQ0Kc3VtbWFyeShwb2kubW9yKQ0KIyBiZXRhcywgRDEgYW5kIEQyIHNpZ25pZmljYW50cw0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCoocG9pLm1vciRudWxsLmRldmlhbmNlIC0gcG9pLm1vciRkZXZpYW5jZSkvcG9pLm1vciRudWxsLmRldmlhbmNlDQoNCiMgT3ZlcmRpc3BlcnNpb24gdGVzdA0KZGlzcGVyc2lvbnRlc3QocG9pLm1vcikgIyBPdmVyZGlzcGVyc2lvbiBhY2VwdA0KDQojIyMgQWJ1ZmFyaQ0KcG9pLmFidSA9IGdsbShBYnVmYXJpIH4gZDEkWWVhciArIEQxICsgRDIsIGZhbWlseT0icG9pc3NvbiIpDQpzdW1tYXJ5KHBvaS5hYnUpDQojIGJldGFzLCBEMSBhbmQgRDIgc2lnbmlmaWNhbnRzDQoNCiMjIyBQZXJjZW50YWdlIG9mIERldmlhbmNlIEV4cGxhaW5lZCBieSB0aGUgTW9kZWwNCg0KMTAwKihwb2kuYWJ1JG51bGwuZGV2aWFuY2UgLSBwb2kuYWJ1JGRldmlhbmNlKS9wb2kuYWJ1JG51bGwuZGV2aWFuY2UNCg0KIyBPdmVyZGlzcGVyc2lvbiB0ZXN0DQpkaXNwZXJzaW9udGVzdChwb2kuYWJ1KSAjIE92ZXJkaXNwZXJzaW9uIGFjZXB0DQoNCiMjIyBFbWJhdWJhbA0KcG9pLmVtYiA9IGdsbShFbWJhdWJhbCB+IGQxJFllYXIgKyBEMSArIEQyLCBmYW1pbHk9InBvaXNzb24iKQ0Kc3VtbWFyeShwb2kuZW1iKQ0KIyBiZXRhcywgRDEgYW5kIEQyIHNpZ25pZmljYW50cw0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCoocG9pLmVtYiRudWxsLmRldmlhbmNlIC0gcG9pLmVtYiRkZXZpYW5jZSkvcG9pLmVtYiRudWxsLmRldmlhbmNlDQoNCiMgT3ZlcmRpc3BlcnNpb24gdGVzdA0KZGlzcGVyc2lvbnRlc3QocG9pLmVtYikgIyBPdmVyZGlzcGVyc2lvbiBhY2VwdA0KDQojIyMgTW9udGUgQ3Jpc3RvDQpwb2kuY3Jpc3RvID0gZ2xtKE1vbnRlLkNyaXN0byB+IGQxJFllYXIgKyBEMSArIEQyLCBmYW1pbHk9InBvaXNzb24iKQ0Kc3VtbWFyeShwb2kuY3Jpc3RvKQ0KIyBiZXRhcywgRDEgYW5kIEQyIHNpZ25pZmljYW50cw0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCoocG9pLmNyaXN0byRudWxsLmRldmlhbmNlIC0gcG9pLmNyaXN0byRkZXZpYW5jZSkvcG9pLmNyaXN0byRudWxsLmRldmlhbmNlDQoNCiMgT3ZlcmRpc3BlcnNpb24gdGVzdA0KZGlzcGVyc2lvbnRlc3QocG9pLmNyaXN0bykgIyBPdmVyZGlzcGVyc2lvbiBhY2VwdA0KDQojIyMgR3VhcG9yw6kNCnBvaS5ndWEgPSBnbG0oR3VhcG9yIH4gZDEkWWVhciArIEQxICsgRDIsIGZhbWlseT0icG9pc3NvbiIpDQpzdW1tYXJ5KHBvaS5ndWEpDQojIGJldGFzLCBEMSBhbmQgRDIgc2lnbmlmaWNhbnRzDQoNCiMjIyBQZXJjZW50YWdlIG9mIERldmlhbmNlIEV4cGxhaW5lZCBieSB0aGUgTW9kZWwNCg0KMTAwKihwb2kuZ3VhJG51bGwuZGV2aWFuY2UgLSBwb2kuZ3VhJGRldmlhbmNlKS9wb2kuZ3VhJG51bGwuZGV2aWFuY2UNCg0KIyBPdmVyZGlzcGVyc2lvbiB0ZXN0DQpkaXNwZXJzaW9udGVzdChwb2kuZ3VhKSAjIE92ZXJkaXNwZXJzaW9uIGFjZXB0DQoNCiMjIyBDYW1hbGVvZXMNCnBvaS5jYW0gPSBnbG0oQ2FtYWxlcy5Jc2xhbmQgfiBkMSRZZWFyICsgRDEgKyBEMiwgZmFtaWx5PSJwb2lzc29uIikNCnN1bW1hcnkocG9pLmNhbSkNCiMgYmV0YXMsIEQxIGFuZCBEMiBzaWduaWZpY2FudHMNCg0KIyMjIFBlcmNlbnRhZ2Ugb2YgRGV2aWFuY2UgRXhwbGFpbmVkIGJ5IHRoZSBNb2RlbA0KDQoxMDAqKHBvaS5jYW0kbnVsbC5kZXZpYW5jZSAtIHBvaS5jYW0kZGV2aWFuY2UpL3BvaS5jYW0kbnVsbC5kZXZpYW5jZQ0KDQojIE92ZXJkaXNwZXJzaW9uIHRlc3QNCmRpc3BlcnNpb250ZXN0KHBvaS5jYW0pICMgT3ZlcmRpc3BlcnNpb24gYWNlcHQNCg0KIyMjIFdhbHRlciBCdXJyeQ0KcG9pLndhbCA9IGdsbShXYWx0ZXIuQnVyeSB+IGQxJFllYXIgKyBEMSArIEQyLCBmYW1pbHk9InBvaXNzb24iKQ0Kc3VtbWFyeShwb2kud2FsKQ0KIyBiZXRhcywgRDEgYW5kIEQyIHNpZ25pZmljYW50cw0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCoocG9pLndhbCRudWxsLmRldmlhbmNlIC0gcG9pLndhbCRkZXZpYW5jZSkvcG9pLndhbCRudWxsLmRldmlhbmNlDQoNCiMgT3ZlcmRpc3BlcnNpb24gdGVzdA0KZGlzcGVyc2lvbnRlc3QocG9pLndhbCkgIyBPdmVyZGlzcGVyc2lvbiBhY2VwdA0KDQojIyMgVG90YWwNCnBvaS50b3QgPSBnbG0oVG90YWwgfiBkMSRZZWFyICsgRDEgKyBEMiwgZmFtaWx5PSJwb2lzc29uIikNCnN1bW1hcnkocG9pLnRvdCkNCiMgYmV0YXMsIEQxIGFuZCBEMiBzaWduaWZpY2FudHMNCg0KIyMjIFBlcmNlbnRhZ2Ugb2YgRGV2aWFuY2UgRXhwbGFpbmVkIGJ5IHRoZSBNb2RlbA0KDQoxMDAqKHBvaS50b3QkbnVsbC5kZXZpYW5jZSAtIHBvaS50b3QkZGV2aWFuY2UpL3BvaS50b3QkbnVsbC5kZXZpYW5jZQ0KDQojIE92ZXJkaXNwZXJzaW9uIHRlc3QNCmRpc3BlcnNpb250ZXN0KHBvaS50b3QpICMgT3ZlcmRpc3BlcnNpb24gYWNlcHQNCg0KIyBOZWdhdGl2ZSBCaW5vbWlhbCAoR0xNIG1vZGVscykgDQoNCiMjIw0KIyMjIE5lZ2F0aXZlIEJpbm9taWFsICMjIyMjIyMjIyMjIw0KIyMjIA0KDQojIyMgVHJvbWJldGFzDQpibi50cm8gPSBnbG0ubmIoVHJvbWJldGFzIH4gZDEkWWVhciArIEQxK0QyKQ0Kc3VtbWFyeShibi50cm8pDQojIGJldGFzIHNpZ25pZmljYW50cw0KIyBEMSBhbmQgRDIgTm90IHNpZ25pZmljYW50DQojIA0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCooYm4udHJvJG51bGwuZGV2aWFuY2UgLSBibi50cm8kZGV2aWFuY2UpL2JuLnRybyRudWxsLmRldmlhbmNlDQoNCiMNCmRldmlhbmNlKGJuLnRybykvZGYucmVzaWR1YWwoYm4udHJvKSAjIE92ZXJkaXNwZXJzaW9uIHBhcmFtZXRlciA8IDEuNQ0KDQpwYXIobWZyb3cgPSBjKDIsIDIpKQ0KcGxvdChibi50cm8pDQoNCnNoYXBpcm8udGVzdChibi50cm8kcmVzaWR1YWxzKQ0Kc2hhcGlyby50ZXN0KHJlc2lkdWFscyhibi50cm8sIHR5cGUgPSAiZGV2aWFuY2UiKSkNCg0KDQojIyMgQnJhbmNvDQpibi5icmEgPSBnbG0ubmIoQnJhbmNvIH4gZDEkWWVhciArIEQxK0QyKQ0Kc3VtbWFyeShibi5icmEpDQojIGJldGFzIHNpZ25pZmljYW50cw0KIyBEMSBhbmQgRDIgTm90IHNpZ25pZmljYW50DQoNCiMjIyBQZXJjZW50YWdlIG9mIERldmlhbmNlIEV4cGxhaW5lZCBieSB0aGUgTW9kZWwNCg0KMTAwKihibi5icmEkbnVsbC5kZXZpYW5jZSAtIGJuLmJyYSRkZXZpYW5jZSkvYm4uYnJhJG51bGwuZGV2aWFuY2UNCg0KIyANCmRldmlhbmNlKGJuLmJyYSkvZGYucmVzaWR1YWwoYm4uYnJhKSAjT3ZlcmRpc3BlcnNpb24gcGFyYW1ldGVyIDwgMS41DQoNCg0KIyBzaW11bGF0aW9uT3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gYm4uYnJhLCBwbG90ID0gVFJVRSkNCg0KcGxvdChibi5icmEpDQoNCnNoYXBpcm8udGVzdChibi5icmEkcmVzaWR1YWxzKQ0Kc2hhcGlyby50ZXN0KHJlc2lkdWFscyhibi5icmEsIHR5cGUgPSAiZGV2aWFuY2UiKSkNCg0KIyMjIEphdmFlcw0KYm4uamF2ID0gZ2xtLm5iKEphdmFzIH4gZDEkWWVhciArIEQxK0QyKQ0Kc3VtbWFyeShibi5qYXYpDQojIGJldGFzIHNpZ25pZmljYW50cw0KIyBEMSBOb3Qgc2lnbmlmaWNhbnQgRDIgcXVhc2Ugc2lnbmlmaWNhbnQNCg0KIyMjIFBlcmNlbnRhZ2Ugb2YgRGV2aWFuY2UgRXhwbGFpbmVkIGJ5IHRoZSBNb2RlbA0KDQoxMDAqKGJuLmphdiRudWxsLmRldmlhbmNlIC0gYm4uamF2JGRldmlhbmNlKS9ibi5qYXYkbnVsbC5kZXZpYW5jZQ0KDQojIA0KZGV2aWFuY2UoYm4uamF2KS9kZi5yZXNpZHVhbChibi5qYXYpICNPdmVyZGlzcGVyc2lvbiBwYXJhbWV0ZXIgPCAxLjUNCg0KIyBzaW11bGF0aW9uT3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gYm4uamF2LCBwbG90ID0gVFJVRSkNCg0KcGxvdChibi5qYXYpDQoNCnNoYXBpcm8udGVzdChibi5qYXYkcmVzaWR1YWxzKQ0Kc2hhcGlyby50ZXN0KHJlc2lkdWFscyhibi5qYXYsIHR5cGUgPSAiZGV2aWFuY2UiKSkNCg0KIyMjIEFyYWd1YWlhDQpibi5hcmEgPSBnbG0ubmIoQXJhZ3VhaWEgfiBkMSRZZWFyICsgRDEgKyBEMikNCnN1bW1hcnkoYm4uYXJhKQ0KIyBiZXRhcyBzaWduaWZpY2FudHMNCiMgRDEgTm90IHNpZ25pZmljYW50DQojIEQyIHNpZ25pZmljYW50DQoNCiMjIyBQZXJjZW50YWdlIG9mIERldmlhbmNlIEV4cGxhaW5lZCBieSB0aGUgTW9kZWwNCg0KMTAwKihibi5hcmEkbnVsbC5kZXZpYW5jZSAtIGJuLmFyYSRkZXZpYW5jZSkvYm4uYXJhJG51bGwuZGV2aWFuY2UNCg0KIw0KZGV2aWFuY2UoYm4uYXJhKS9kZi5yZXNpZHVhbChibi5hcmEpICNPdmVyZGlzcGVyc2lvbiBwYXJhbWV0ZXIgPCAxLjUNCg0KIyBzaW11bGF0aW9uT3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gYm4uYXJhLCBwbG90ID0gVFJVRSkNCg0KcGxvdChibi5hcmEpDQoNCnNoYXBpcm8udGVzdChibi5hcmEkcmVzaWR1YWxzKQ0Kc2hhcGlyby50ZXN0KHJlc2lkdWFscyhibi5hcmEsIHR5cGUgPSAiZGV2aWFuY2UiKSkNCg0KIyMjIE1vcnRlcw0KYm4ubW9yID0gZ2xtLm5iKE1vcnRlcyB+IGQxJFllYXIgKyBEMStEMikNCnN1bW1hcnkoYm4ubW9yKQ0KIyBiZXRhcyBOb3Qgc2lnbmlmaWNhbnQNCiMgRDEgYW5kIEQyIE5vdCBzaWduaWZpY2FudA0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCooYm4ubW9yJG51bGwuZGV2aWFuY2UgLSBibi5tb3IkZGV2aWFuY2UpL2JuLm1vciRudWxsLmRldmlhbmNlDQoNCiMgDQpkZXZpYW5jZShibi5tb3IpL2RmLnJlc2lkdWFsKGJuLm1vcikgI092ZXJkaXNwZXJzaW9uIHBhcmFtZXRlciA8IDEuNQ0KDQojIHNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBibi5tb3IsIHBsb3QgPSBUUlVFKQ0KDQpwbG90KGJuLm1vcikNCg0Kc2hhcGlyby50ZXN0KGJuLm1vciRyZXNpZHVhbHMpDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGJuLm1vciwgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQojIyMgQWJ1ZmFyaQ0KYm4uYWJ1ID0gZ2xtLm5iKEFidWZhcmkgfiBkMSRZZWFyICsgRDErRDIpDQpzdW1tYXJ5KGJuLmFidSkNCiMgYmV0YSAwIE5vdCBzaWduaWZpY2FudCBiZXRhIDEgc2lnbmlmaWNhbnQNCiMgRDEgYW5kIEQyIE5vdCBzaWduaWZpY2FudA0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCooYm4uYWJ1JG51bGwuZGV2aWFuY2UgLSBibi5hYnUkZGV2aWFuY2UpL2JuLmFidSRudWxsLmRldmlhbmNlDQoNCiMgDQpkZXZpYW5jZShibi5hYnUpL2RmLnJlc2lkdWFsKGJuLmFidSkgI092ZXJkaXNwZXJzaW9uIHBhcmFtZXRlciA8IDEuNQ0KDQojIHNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBibi5hYnUsIHBsb3QgPSBUUlVFKQ0KDQpwbG90KGJuLmFidSkNCg0Kc2hhcGlyby50ZXN0KGJuLmFidSRyZXNpZHVhbHMpDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGJuLmFidSwgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQojIyMgRW1iYXViYWwNCmJuLmVtYiA9IGdsbS5uYihFbWJhdWJhbCB+IGQxJFllYXIgKyBEMStEMikNCnN1bW1hcnkoYm4uZW1iKQ0KIyBiZXRhcyBzaWduaWZpY2FudHMNCiMgRDEgYW5kIEQyIE5vdCBzaWduaWZpY2FudA0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCooYm4uZW1iJG51bGwuZGV2aWFuY2UgLSBibi5lbWIkZGV2aWFuY2UpL2JuLmVtYiRudWxsLmRldmlhbmNlDQoNCiMgDQpkZXZpYW5jZShibi5lbWIpL2RmLnJlc2lkdWFsKGJuLmVtYikgI092ZXJkaXNwZXJzaW9uIHBhcmFtZXRlciA8IDEuNQ0KDQojIHNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBibi5lbWIsIHBsb3QgPSBUUlVFKQ0KDQpwbG90KGJuLmVtYikNCg0Kc2hhcGlyby50ZXN0KGJuLmVtYiRyZXNpZHVhbHMpDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGJuLmVtYiwgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQojIyMgTW9udGUgQ3Jpc3RvDQpibi5jcmlzdG8gPSBnbG0ubmIoTW9udGUuQ3Jpc3RvIH4gZDEkWWVhciArIEQxK0QyKQ0Kc3VtbWFyeShibi5jcmlzdG8pDQojIGJldGFzIHNpZ25pZmljYW50cw0KIyBEMSBlIEQyIE5vdCBzaWduaWZpY2FudA0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCooYm4uY3Jpc3RvJG51bGwuZGV2aWFuY2UgLSBibi5jcmlzdG8kZGV2aWFuY2UpL2JuLmNyaXN0byRudWxsLmRldmlhbmNlDQoNCiMgDQpkZXZpYW5jZShibi5jcmlzdG8pL2RmLnJlc2lkdWFsKGJuLmNyaXN0bykgI092ZXJkaXNwZXJzaW9uIHBhcmFtZXRlciA8IDEuNQ0KDQojIHNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBibi5jcmlzdG8sIHBsb3QgPSBUUlVFKQ0KDQpwbG90KGJuLmNyaXN0bykNCg0Kc2hhcGlyby50ZXN0KGJuLmNyaXN0byRyZXNpZHVhbHMpDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGJuLmNyaXN0bywgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQojIyMgR3VhcG9yw6kNCmJuLmd1YSA9IGdsbS5uYihHdWFwb3IgfiBkMSRZZWFyICsgRDErRDIpDQpzdW1tYXJ5KGJuLmd1YSkNCiMgYmV0YXMgc2lnbmlmaWNhbnRzDQojIEQxIGFuZCBEMiBOb3Qgc2lnbmlmaWNhbnQNCg0KIyMjIFBlcmNlbnRhZ2Ugb2YgRGV2aWFuY2UgRXhwbGFpbmVkIGJ5IHRoZSBNb2RlbA0KDQoxMDAqKGJuLmd1YSRudWxsLmRldmlhbmNlIC0gYm4uZ3VhJGRldmlhbmNlKS9ibi5ndWEkbnVsbC5kZXZpYW5jZQ0KDQojIA0KZGV2aWFuY2UoYm4uZ3VhKS9kZi5yZXNpZHVhbChibi5ndWEpICNPdmVyZGlzcGVyc2lvbiBwYXJhbWV0ZXIgPCAxLjUNCg0KIyBzaW11bGF0aW9uT3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gYm4uZ3VhLCBwbG90ID0gVFJVRSkNCg0KcGxvdChibi5ndWEpDQoNCnNoYXBpcm8udGVzdChibi5ndWEkcmVzaWR1YWxzKQ0Kc2hhcGlyby50ZXN0KHJlc2lkdWFscyhibi5ndWEsIHR5cGUgPSAiZGV2aWFuY2UiKSkNCg0KIyMjIENhbWFsZW9lcw0KYm4uY2FtID0gZ2xtLm5iKENhbWFsZXMuSXNsYW5kIH4gZDEkWWVhciArIEQxK0QyKQ0Kc3VtbWFyeShibi5jYW0pDQojIGJldGFzIHNpZ25pZmljYW50cw0KIyBEMSBhbmQgRDIgTm90IHNpZ25pZmljYW50DQoNCiMjIyBQZXJjZW50YWdlIG9mIERldmlhbmNlIEV4cGxhaW5lZCBieSB0aGUgTW9kZWwNCg0KMTAwKihibi5jYW0kbnVsbC5kZXZpYW5jZSAtIGJuLmNhbSRkZXZpYW5jZSkvYm4uY2FtJG51bGwuZGV2aWFuY2UNCg0KIyANCmRldmlhbmNlKGJuLmNhbSkvZGYucmVzaWR1YWwoYm4uY2FtKSAjT3ZlcmRpc3BlcnNpb24gcGFyYW1ldGVyIDwgMS41DQoNCiMgc2ltdWxhdGlvbk91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IGJuLmNhbSwgcGxvdCA9IFRSVUUpDQoNCnBsb3QoYm4uY2FtKQ0KDQpzaGFwaXJvLnRlc3QoYm4uY2FtJHJlc2lkdWFscykNCnNoYXBpcm8udGVzdChyZXNpZHVhbHMoYm4uY2FtLCB0eXBlID0gImRldmlhbmNlIikpDQoNCiMjIyBXYWx0ZXIgQnVycnkNCmJuLndhbCA9IGdsbS5uYihXYWx0ZXIuQnVyeSB+IGQxJFllYXIgKyBEMStEMikNCnN1bW1hcnkoYm4ud2FsKQ0KIyBiZXRhcyBzaWduaWZpY2FudHMNCiMgRDEgYW5kIEQyIE5vdCBzaWduaWZpY2FudA0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCooYm4ud2FsJG51bGwuZGV2aWFuY2UgLSBibi53YWwkZGV2aWFuY2UpL2JuLndhbCRudWxsLmRldmlhbmNlDQoNCiMgDQpkZXZpYW5jZShibi53YWwpL2RmLnJlc2lkdWFsKGJuLndhbCkgI092ZXJkaXNwZXJzaW9uIHBhcmFtZXRlciA8IDEuNQ0KDQojIHNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBibi53YWwsIHBsb3QgPSBUUlVFKQ0KDQpwbG90KGJuLndhbCkNCg0Kc2hhcGlyby50ZXN0KGJuLndhbCRyZXNpZHVhbHMpDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGJuLndhbCwgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQojIyMgVG90YWwNCmJuLnRvdCA9IGdsbS5uYihUb3RhbCB+IGQxJFllYXIgKyBEMStEMikNCnN1bW1hcnkoYm4udG90KQ0KIyBiZXRhcyBzaWduaWZpY2FudHMNCiMgRDEgYW5kIEQyIE5vdCBzaWduaWZpY2FudA0KDQojIyMgUGVyY2VudGFnZSBvZiBEZXZpYW5jZSBFeHBsYWluZWQgYnkgdGhlIE1vZGVsDQoNCjEwMCooYm4udG90JG51bGwuZGV2aWFuY2UgLSBibi50b3QkZGV2aWFuY2UpL2JuLnRvdCRudWxsLmRldmlhbmNlDQoNCiMgDQpkZXZpYW5jZShibi50b3QpL2RmLnJlc2lkdWFsKGJuLnRvdCkgI092ZXJkaXNwZXJzaW9uIHBhcmFtZXRlciA8IDEuNQ0KDQojIHNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBibi50b3QsIHBsb3QgPSBUUlVFKQ0KDQpwbG90KGJuLnRvdCkNCg0Kc2hhcGlyby50ZXN0KGJuLnRvdCRyZXNpZHVhbHMpDQpzaGFwaXJvLnRlc3QocmVzaWR1YWxzKGJuLnRvdCwgdHlwZSA9ICJkZXZpYW5jZSIpKQ0KDQoNCiMgQ29uY2x1c2lvbnMNCg0KIyBHQU0NCmFpYy5nYW0gPSByYmluZChnYW0udHJvJGFpYyxnYW0uYnJhJGFpYyxnYW0uamF2JGFpYywNCiAgICAgICAgICAgICAgICBnYW0uYXJhJGFpYyxnYW0ubW9yJGFpYyxnYW0uYWJ1JGFpYywNCiAgICAgICAgICAgICAgICBnYW0uZW1iJGFpYyxnYW0uY3Jpc3RvJGFpYyxnYW0uZ3VhJGFpYywNCiAgICAgICAgICAgICAgICBnYW0uY2FtJGFpYyxnYW0ud2FsJGFpYyxnYW0udG90JGFpYykNCg0KDQojIFBvaXNzb24NCmFpYy5wb2kgPSByYmluZChwb2kudHJvJGFpYyxwb2kuYnJhJGFpYyxwb2kuamF2JGFpYywNCiAgICAgICAgICAgICAgICBwb2kuYXJhJGFpYyxwb2kubW9yJGFpYyxwb2kuYWJ1JGFpYywNCiAgICAgICAgICAgICAgICBwb2kuZW1iJGFpYyxwb2kuY3Jpc3RvJGFpYyxwb2kuZ3VhJGFpYywNCiAgICAgICAgICAgICAgICBwb2kuY2FtJGFpYyxwb2kud2FsJGFpYyxwb2kudG90JGFpYykNCg0KIyBCaW5vbWlhbCBOZWdhdGl2YQ0KYWljLmJuID0gcmJpbmQoYm4udHJvJGFpYyxibi5icmEkYWljLGJuLmphdiRhaWMsDQogICAgICAgICAgICAgICBibi5hcmEkYWljLGJuLm1vciRhaWMsYm4uYWJ1JGFpYywNCiAgICAgICAgICAgICAgIGJuLmVtYiRhaWMsYm4uY3Jpc3RvJGFpYyxibi5ndWEkYWljLA0KICAgICAgICAgICAgICAgYm4uY2FtJGFpYyxibi53YWwkYWljLGJuLnRvdCRhaWMpDQoNCmFpYy5yZXMgPSBjYmluZChhaWMuZ2FtLGFpYy5wb2ksYWljLmJuKQ0Kcm93bmFtZXMoYWljLnJlcyk9YygiVHJvbWJldGFzIiwiQnJhbmNvIiwiSmF2YXMiLCJBcmFndWFpYSIsDQogICAgICAgICAgICAgICAgICAgICJNb3J0ZXMiLCJBYnVmYXJpIiwiRW1iYXViYWwiLCJNb250ZSBDcmlzdG8iLCJHdWFwb3LDqSIsIkNhbWFsZcO1ZXMiLCJXYWx0ZXIgQnVycnkiLCJUb3RhbCIpDQpjb2xuYW1lcyhhaWMucmVzKSA9IGMoIkFJQyBHQU0iLCJBSUMgUG9pc3NvbiIsIkFJQyBCaW9ub21pYWwgTmVnYXRpdmEiKQ0KcHJpbnQoIGtuaXRyOjprYWJsZShhaWMucmVzLCBhbGlnbiA9ICJjIikpDQoNCg0Kc3VtbWFyeShibi5qYXYpDQoNCmRldmlhbmNlKGJuLmphdikvZGYucmVzaWR1YWwoYm4uamF2KSAjT3ZlcmRpc3BlcnNpb24gcGFyYW1ldGVyIDwgMS41DQoNCnNpbXVsYXRpb25PdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBibi5qYXYsIHBsb3QgPSBUUlVFKQ0KDQpzdW1tYXJ5KGJuLmFyYSkNCg0KZGV2aWFuY2UoYm4uYXJhKS9kZi5yZXNpZHVhbChibi5hcmEpICNPdmVyZGlzcGVyc2lvbiBwYXJhbWV0ZXIgPCAxLjUNCg0Kc2ltdWxhdGlvbk91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IGJuLmFyYSwgcGxvdCA9IFRSVUUpDQoNCg0KDQpgYGANCg0K