# 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