Base de dados

library(readxl)
library(ggplot2)
library(dplyr)
library(knitr)
notas <- read_excel("notas_2018.xlsx")
notas <- notas[,c(1,2,3,5,7:10)]
notas

Sumário das disciplinas em 2018

Tem-se disponível por disciplina as seguintes estatísticas:

  1. Mínimo
  2. Máximo
  3. Mediana
  4. Média
  5. Desvio Padrão
  6. Coef. de variação (%)
  7. limite inferior
  8. limite superior

obs: O lim inferior e o limite superior foi calculado com base no seguinte critério:

  • lim inferior = média - 1 desvio padrão
  • lim superior = média + 1 desvio padrão
menores <- notas %>% group_by(disciplina) %>% summarise(minimo=min(ca)) 
maiores <- notas %>% group_by(disciplina) %>% summarise(maximo=max(ca)) 
medias <- notas %>% group_by(disciplina) %>% summarise(media=mean(ca)) 
mediana <- notas %>% group_by(disciplina) %>% summarise(mediana=median(ca)) 
desviospadrao <- notas %>% group_by(disciplina) %>% summarise(desvio_padrao=sd(ca)) 
cvs <- (desviospadrao$desvio_padrao/medias$media)*100

# limites para classificação desempenho baixo, mediano e desempenho alto
li <- medias$media-desviospadrao$desvio_padrao
ls <- medias$media+desviospadrao$desvio_padrao

#sumário
sumario <- data.frame(menores, maiores$maximo, mediana$mediana, medias$media, desviospadrao$desvio_padrao, cvs, li, ls)
names (sumario) <- c('Disciplina', 'Mínimo', 'Máximo', 'Mediana', 'Média', 'Desvio_padrão', 'Coef. de variação (%)', 'lim inferior','lim superior')
kable(sumario, row.names = F,longtable = TRUE, align=c('c', 'c', 'c', 'c','c', 'c', 'c', 'c', 'c'), digits =2, booktabs = T,caption = 'Sumário Estatístico.', format.args = list(decimal.mark = ","))
Disciplina Mínimo Máximo Mediana Média Desvio_padrão Coef. de variação (%) lim inferior lim superior
Administração 2,00 8,60 6,70 6,60 0,96 14,55 5,64 7,56
Administração e Logística 7,10 9,70 8,10 8,18 0,60 7,36 7,58 8,79
Cálculo I 3,48 9,94 7,58 7,51 1,27 16,86 6,25 8,78
Cibernética I 4,33 9,50 7,32 7,30 0,87 11,97 6,42 8,17
Cibernetica II 1,50 9,90 8,00 7,83 1,12 14,32 6,71 8,95
Cibernetica III 9,20 9,90 9,75 9,72 0,20 2,05 9,52 9,92
Cibernetica IV 5,80 10,00 9,40 9,28 0,77 8,30 8,51 10,05
Cibernetica V 7,90 9,90 9,20 9,09 0,55 6,03 8,54 9,64
Direito Administrativo 5,00 9,60 8,10 7,92 0,87 10,95 7,05 8,79
Direito Penal e Processual Penal Militar 1,10 9,60 7,20 7,11 1,12 15,75 5,99 8,23
Economia I 6,50 8,10 7,50 7,38 0,56 7,63 6,82 7,95
Economia II 2,00 9,20 7,20 6,97 1,19 17,15 5,77 8,16
Emprego Tático I 4,60 9,60 7,80 7,75 0,99 12,83 6,75 8,74
Emprego Tático II 4,00 9,90 7,40 7,48 1,09 14,64 6,38 8,57
Emprego Tático III 4,40 9,60 7,20 7,15 1,11 15,56 6,04 8,26
Emprego Tatico IV 5,00 8,60 7,20 7,16 0,98 13,75 6,18 8,15
Emprego Tatico V 5,00 8,60 7,00 6,84 0,88 12,88 5,96 7,72
Estatística 3,40 10,00 8,30 8,08 1,09 13,43 6,99 9,16
Ética Profissional Militar 2,30 9,50 7,30 7,26 1,02 14,10 6,23 8,28
Filosofia 1,10 9,90 7,80 7,59 1,25 16,42 6,34 8,83
Física Aplicada 4,54 9,92 8,34 8,24 0,81 9,82 7,43 9,05
Frações de Infantaria 5,10 9,70 8,40 8,32 0,75 8,99 7,57 9,07
Funções de Combate 6,30 9,30 8,05 8,01 0,68 8,46 7,33 8,69
Geopolítica 2,20 9,30 7,00 6,99 0,98 14,01 6,01 7,97
História do Exército Brasileiro 5,27 9,92 7,93 7,87 0,84 10,73 7,02 8,71
História Militar 5,40 9,10 7,40 7,34 0,64 8,69 6,70 7,98
Iniciação a Pesquisa Cientifica 2,80 10,00 7,70 7,59 1,21 15,94 6,38 8,80
Introdução ao Estudo do Direito 5,00 10,00 8,30 8,14 0,84 10,30 7,30 8,98
Introdução às Técnicas Militares 5,13 9,27 7,34 7,33 0,76 10,32 6,57 8,08
Lideranca Militar 4,10 9,90 8,10 8,00 0,89 11,12 7,11 8,89
Língua Espanhola I 5,66 9,83 8,04 8,01 0,75 9,36 7,26 8,76
Lingua Espanhola II 5,10 9,70 7,70 7,67 0,94 12,21 6,73 8,60
Lingua Espanhola III 5,90 10,00 8,50 8,47 0,72 8,55 7,75 9,20
Língua Inglesa I 6,20 10,00 9,32 9,19 0,59 6,47 8,59 9,78
Lingua Inglesa II 4,20 9,70 7,80 7,64 1,03 13,52 6,61 8,68
Lingua Inglesa III 4,50 9,90 8,20 8,05 1,05 13,09 7,00 9,11
Língua Portuguesa I 5,18 9,73 7,64 7,60 0,85 11,16 6,75 8,45
Lingua Portuguesa II 3,90 9,70 7,50 7,50 0,85 11,39 6,65 8,35
Manobra I 5,10 9,70 7,80 7,71 0,97 12,58 6,74 8,68
Manobra II 5,20 9,40 8,50 8,39 0,61 7,30 7,77 9,00
Manobra III 5,00 9,00 7,05 6,95 0,88 12,65 6,07 7,83
Manobra IV 5,10 9,10 7,00 6,96 0,84 12,11 6,12 7,81
Metodologia do Ensino Superior 1,60 9,10 7,10 6,97 1,08 15,49 5,89 8,05
Não Guerra 5,20 8,80 7,10 7,09 0,69 9,76 6,40 7,78
Patrulhas 5,40 9,50 8,00 7,94 0,69 8,64 7,26 8,63
Psicologia 2,30 9,10 6,90 6,76 0,98 14,55 5,77 7,74
Química Aplicada 4,57 9,22 7,39 7,36 0,83 11,28 6,53 8,19
Relatorias 2,60 9,50 6,80 6,83 1,16 16,93 5,67 7,99
RI/Geopolítica 3,00 9,30 7,10 7,07 0,93 13,08 6,15 8,00
Sociologia 5,00 9,80 8,50 8,37 0,84 10,05 7,53 9,22
Técnicas de Infantaria I 5,10 9,30 7,40 7,32 0,85 11,56 6,47 8,16
Técnicas de Infantaria II 3,50 8,90 7,20 7,02 1,18 16,77 5,85 8,20
Técnicas de Infantaria III 6,20 10,00 9,10 9,06 0,58 6,37 8,48 9,64
Técnicas Militares 8,00 10,00 9,60 9,53 0,39 4,14 9,14 9,93
Técnicas Militares I 6,71 9,91 8,85 8,78 0,61 6,96 8,17 9,39
Técnicas Militares II 3,44 9,84 8,17 8,05 0,89 11,03 7,16 8,93
Técnicas Militares III 1,60 9,50 6,90 6,85 0,96 14,04 5,89 7,82
Técnicas Militares IV 1,70 9,20 7,45 7,32 1,00 13,65 6,32 8,32
Técnicas Militares IX 5,00 9,70 7,50 7,44 0,95 12,76 6,49 8,39
Técnicas Militares V 2,20 9,30 7,50 7,32 1,07 14,57 6,26 8,39
Técnicas Militares VI 2,30 10,00 7,10 7,25 1,33 18,29 5,92 8,58
Técnicas Militares VII 3,60 9,90 7,20 7,21 1,29 17,92 5,92 8,50
Técnicas Militares VIII 2,30 9,50 7,70 7,61 1,10 14,44 6,51 8,71
Técnicas Militares X 3,80 10,00 8,20 7,84 1,47 18,75 6,37 9,31
Técnicas Militares XI 5,60 9,70 8,00 7,88 0,95 12,08 6,93 8,83
Técnicas Militares XII 5,20 9,50 8,00 7,77 0,96 12,30 6,81 8,72
Técnicas Taticas e Procedimentos I 5,00 9,70 7,80 7,64 0,97 12,73 6,67 8,62
Técnicas Taticas e Procedimentos II 5,80 8,70 7,70 7,47 0,80 10,68 6,67 8,27
Técnicas. Táticas e Procd Pel Fuz 6,00 9,10 8,10 8,06 0,66 8,21 7,39 8,72
Tiro I 2,00 10,00 7,40 7,29 1,32 18,17 5,97 8,62
Tiro II 1,40 10,00 8,30 8,04 1,49 18,52 6,55 9,53
Treinamento Físico Militar I 0,00 10,00 7,20 7,32 1,54 21,06 5,78 8,86
Treinamento Físico Militar II 0,00 10,00 9,50 8,80 1,64 18,63 7,16 10,44
Treinamento Físico Militar III 0,00 10,00 7,80 7,77 1,75 22,58 6,01 9,52

Classificação dos cadetes em função dos limites de desempenho

Desempenho baixo

  • CA < limite inferior da disciplina

Desempenho mediano

  • limite inferior da disciplina <= CA <= limite superior da disciplina

Desempenho alto

  • CA > limite superior da disciplina
#names(notas)
#https://www.r-graph-gallery.com/128-ring-or-donut-plot.html
desempenho <- notas %>% group_by(ano,disciplina,desempenho) %>% summarise(total_cadetes=n()) 
kable(desempenho, row.names = F,longtable = TRUE, align=c('c', 'l', 'c', 'c'),digits =2,
      booktabs = T, caption = 'Desempenho dos cadetes', format.args = list(decimal.mark = ","))

ano disciplina desempenho total_cadetes
0 Cálculo I alto 71
0 Cálculo I baixo 69
0 Cálculo I mediano 271
0 Cibernética I alto 71
0 Cibernética I baixo 61
0 Cibernética I mediano 279
0 Física Aplicada alto 65
0 Física Aplicada baixo 69
0 Física Aplicada mediano 277
0 História do Exército Brasileiro alto 67
0 História do Exército Brasileiro baixo 70
0 História do Exército Brasileiro mediano 274
0 Introdução às Técnicas Militares alto 73
0 Introdução às Técnicas Militares baixo 71
0 Introdução às Técnicas Militares mediano 267
0 Língua Espanhola I alto 66
0 Língua Espanhola I baixo 67
0 Língua Espanhola I mediano 278
0 Língua Inglesa I alto 55
0 Língua Inglesa I baixo 64
0 Língua Inglesa I mediano 292
0 Língua Portuguesa I alto 69
0 Língua Portuguesa I baixo 61
0 Língua Portuguesa I mediano 281
0 Química Aplicada alto 66
0 Química Aplicada baixo 60
0 Química Aplicada mediano 285
0 Técnicas Militares I alto 62
0 Técnicas Militares I baixo 65
0 Técnicas Militares I mediano 284
0 Técnicas Militares II alto 60
0 Técnicas Militares II baixo 58
0 Técnicas Militares II mediano 292
0 Treinamento Físico Militar I alto 192
0 Treinamento Físico Militar I baixo 21
0 Treinamento Físico Militar I mediano 198
0 Treinamento Físico Militar II baixo 72
0 Treinamento Físico Militar II mediano 339
0 Treinamento Físico Militar III alto 135
0 Treinamento Físico Militar III baixo 58
0 Treinamento Físico Militar III mediano 218
1 Cibernetica II alto 47
1 Cibernetica II baixo 53
1 Cibernetica II mediano 320
1 Economia I alto 1
1 Economia I baixo 1
1 Economia I mediano 4
1 Estatística alto 72
1 Estatística baixo 60
1 Estatística mediano 288
1 Filosofia alto 61
1 Filosofia baixo 69
1 Filosofia mediano 289
1 Introdução ao Estudo do Direito alto 75
1 Introdução ao Estudo do Direito baixo 50
1 Introdução ao Estudo do Direito mediano 311
1 Lingua Espanhola II alto 66
1 Lingua Espanhola II baixo 59
1 Lingua Espanhola II mediano 291
1 Lingua Inglesa II alto 70
1 Lingua Inglesa II baixo 80
1 Lingua Inglesa II mediano 266
1 Lingua Portuguesa II alto 69
1 Lingua Portuguesa II baixo 61
1 Lingua Portuguesa II mediano 286
1 Técnicas Militares III alto 46
1 Técnicas Militares III baixo 50
1 Técnicas Militares III mediano 320
1 Técnicas Militares IV alto 45
1 Técnicas Militares IV baixo 49
1 Técnicas Militares IV mediano 322
1 Tiro I alto 64
1 Tiro I baixo 90
1 Tiro I mediano 264
1 Tiro II alto 159
1 Tiro II baixo 16
1 Tiro II mediano 242
1 Treinamento Físico Militar I alto 80
1 Treinamento Físico Militar I baixo 27
1 Treinamento Físico Militar I mediano 312
1 Treinamento Físico Militar II baixo 32
1 Treinamento Físico Militar II mediano 385
1 Treinamento Físico Militar III alto 118
1 Treinamento Físico Militar III baixo 46
1 Treinamento Físico Militar III mediano 256
2 Cibernetica III baixo 6
2 Cibernetica III mediano 28
2 Emprego Tático I alto 42
2 Emprego Tático I baixo 45
2 Emprego Tático I mediano 210
2 História Militar alto 81
2 História Militar baixo 65
2 História Militar mediano 306
2 Introdução ao Estudo do Direito alto 60
2 Introdução ao Estudo do Direito baixo 69
2 Introdução ao Estudo do Direito mediano 324
2 Lingua Espanhola III alto 70
2 Lingua Espanhola III baixo 79
2 Lingua Espanhola III mediano 304
2 Lingua Inglesa III alto 67
2 Lingua Inglesa III baixo 76
2 Lingua Inglesa III mediano 308
2 Patrulhas alto 19
2 Patrulhas baixo 21
2 Patrulhas mediano 114
2 Psicologia alto 68
2 Psicologia baixo 67
2 Psicologia mediano 319
2 Técnicas de Infantaria I alto 24
2 Técnicas de Infantaria I baixo 27
2 Técnicas de Infantaria I mediano 103
2 Técnicas de Infantaria II alto 20
2 Técnicas de Infantaria II baixo 23
2 Técnicas de Infantaria II mediano 111
2 Técnicas Militares V alto 43
2 Técnicas Militares V baixo 40
2 Técnicas Militares V mediano 214
2 Técnicas Militares VI alto 45
2 Técnicas Militares VI baixo 39
2 Técnicas Militares VI mediano 215
2 Técnicas Militares VII alto 25
2 Técnicas Militares VII baixo 28
2 Técnicas Militares VII mediano 106
2 Técnicas Taticas e Procedimentos I alto 7
2 Técnicas Taticas e Procedimentos I baixo 11
2 Técnicas Taticas e Procedimentos I mediano 45
2 Técnicas. Táticas e Procd Pel Fuz alto 22
2 Técnicas. Táticas e Procd Pel Fuz baixo 16
2 Técnicas. Táticas e Procd Pel Fuz mediano 116
2 Tiro I alto 122
2 Tiro I baixo 42
2 Tiro I mediano 290
2 Tiro II alto 19
2 Tiro II baixo 120
2 Tiro II mediano 314
2 Treinamento Físico Militar I alto 19
2 Treinamento Físico Militar I baixo 128
2 Treinamento Físico Militar I mediano 305
2 Treinamento Físico Militar II baixo 55
2 Treinamento Físico Militar II mediano 396
2 Treinamento Físico Militar III alto 36
2 Treinamento Físico Militar III baixo 89
2 Treinamento Físico Militar III mediano 328
3 Cibernetica IV baixo 4
3 Cibernetica IV mediano 41
3 Direito Penal e Processual Penal Militar alto 62
3 Direito Penal e Processual Penal Militar baixo 63
3 Direito Penal e Processual Penal Militar mediano 333
3 Emprego Tático II alto 58
3 Emprego Tático II baixo 37
3 Emprego Tático II mediano 210
3 Ética Profissional Militar alto 73
3 Ética Profissional Militar baixo 61
3 Ética Profissional Militar mediano 321
3 Frações de Infantaria alto 22
3 Frações de Infantaria baixo 18
3 Frações de Infantaria mediano 110
3 Lideranca Militar alto 78
3 Lideranca Militar baixo 69
3 Lideranca Militar mediano 308
3 Manobra I alto 25
3 Manobra I baixo 25
3 Manobra I mediano 100
3 Manobra II alto 13
3 Manobra II baixo 15
3 Manobra II mediano 122
3 Metodologia do Ensino Superior alto 68
3 Metodologia do Ensino Superior baixo 54
3 Metodologia do Ensino Superior mediano 333
3 RI/Geopolítica alto 59
3 RI/Geopolítica baixo 67
3 RI/Geopolítica mediano 329
3 Sociologia alto 63
3 Sociologia baixo 66
3 Sociologia mediano 326
3 Técnicas de Infantaria III alto 17
3 Técnicas de Infantaria III baixo 15
3 Técnicas de Infantaria III mediano 118
3 Técnicas Militares IX alto 26
3 Técnicas Militares IX baixo 32
3 Técnicas Militares IX mediano 108
3 Técnicas Militares VII alto 26
3 Técnicas Militares VII baixo 25
3 Técnicas Militares VII mediano 89
3 Técnicas Militares VIII alto 53
3 Técnicas Militares VIII baixo 49
3 Técnicas Militares VIII mediano 204
3 Técnicas Militares X alto 34
3 Técnicas Militares X baixo 50
3 Técnicas Militares X mediano 82
3 Técnicas Taticas e Procedimentos II alto 11
3 Técnicas Taticas e Procedimentos II baixo 12
3 Técnicas Taticas e Procedimentos II mediano 40
3 Tiro I alto 64
3 Tiro I baixo 62
3 Tiro I mediano 332
3 Tiro II alto 56
3 Tiro II baixo 73
3 Tiro II mediano 329
3 Treinamento Físico Militar I alto 61
3 Treinamento Físico Militar I baixo 37
3 Treinamento Físico Militar I mediano 356
3 Treinamento Físico Militar II baixo 84
3 Treinamento Físico Militar II mediano 366
3 Treinamento Físico Militar III alto 52
3 Treinamento Físico Militar III baixo 131
3 Treinamento Físico Militar III mediano 275
4 Administração alto 59
4 Administração baixo 64
4 Administração mediano 305
4 Administração e Logística alto 5
4 Administração e Logística baixo 5
4 Administração e Logística mediano 23
4 Cibernetica V alto 3
4 Cibernetica V baixo 6
4 Cibernetica V mediano 25
4 Direito Administrativo alto 68
4 Direito Administrativo baixo 69
4 Direito Administrativo mediano 291
4 Economia II alto 75
4 Economia II baixo 67
4 Economia II mediano 287
4 Emprego Tático III alto 38
4 Emprego Tático III baixo 35
4 Emprego Tático III mediano 137
4 Emprego Tatico IV alto 10
4 Emprego Tatico IV baixo 7
4 Emprego Tatico IV mediano 34
4 Emprego Tatico V alto 8
4 Emprego Tatico V baixo 11
4 Emprego Tatico V mediano 32
4 Funções de Combate alto 28
4 Funções de Combate baixo 21
4 Funções de Combate mediano 85
4 Geopolítica alto 76
4 Geopolítica baixo 65
4 Geopolítica mediano 288
4 Iniciação a Pesquisa Cientifica alto 73
4 Iniciação a Pesquisa Cientifica baixo 75
4 Iniciação a Pesquisa Cientifica mediano 280
4 Manobra III alto 19
4 Manobra III baixo 23
4 Manobra III mediano 92
4 Manobra IV alto 15
4 Manobra IV baixo 23
4 Manobra IV mediano 96
4 Não Guerra alto 20
4 Não Guerra baixo 19
4 Não Guerra mediano 95
4 Relatorias alto 75
4 Relatorias baixo 65
4 Relatorias mediano 287
4 Técnicas Militares alto 3
4 Técnicas Militares baixo 8
4 Técnicas Militares mediano 40
4 Técnicas Militares IX alto 21
4 Técnicas Militares IX baixo 11
4 Técnicas Militares IX mediano 75
4 Técnicas Militares X alto 8
4 Técnicas Militares X baixo 2
4 Técnicas Militares X mediano 63
4 Técnicas Militares XI alto 17
4 Técnicas Militares XI baixo 22
4 Técnicas Militares XI mediano 64
4 Técnicas Militares XII alto 14
4 Técnicas Militares XII baixo 20
4 Técnicas Militares XII mediano 69
4 Treinamento Físico Militar I alto 32
4 Treinamento Físico Militar I baixo 34
4 Treinamento Físico Militar I mediano 363
4 Treinamento Físico Militar II baixo 73
4 Treinamento Físico Militar II mediano 356
4 Treinamento Físico Militar III alto 87
4 Treinamento Físico Militar III baixo 76
4 Treinamento Físico Militar III mediano 267


# library
library(treemap)
 
# treemap todos 
#treemap(desempenho,index=c("disciplina","desempenho"),vSize="total_cadetes",type="index") 

# primeiro ano
desempenho_o <- desempenho  %>% filter(ano==0)
ggplot(aes(y = total_cadetes, x = disciplina, fill=desempenho), data = desempenho_o) + geom_col()+
  labs(title="1º ano - EsPCEx", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


treemap(desempenho_o, title = "1º ano - EsPCEx",position.legend ="bottom",
            index=c("disciplina","desempenho"),
            vSize="total_cadetes",fontsize.legend = 0,
            type="index"
            ) 


# segundo ano
desempenho_1 <- desempenho  %>% filter(ano==1)
ggplot(aes(y = total_cadetes, x = disciplina, fill=desempenho), data = desempenho_1) + geom_col()+
  labs(title="1º ano - AMAN", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +
  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


treemap(desempenho_1,title = "1º ano - AMAN",position.legend ="bottom",
            index=c("disciplina","desempenho"),
            vSize="total_cadetes",fontsize.legend = 0,
            type="index"
            ) 


# terceiro ano
desempenho_2 <- desempenho  %>% filter(ano==2)
ggplot(aes(y = total_cadetes, x = disciplina, fill=desempenho), data = desempenho_2) + geom_col()+
  labs(title="2º ano - AMAN", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +
  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


treemap(desempenho_2, title = "2º ano - AMAN",position.legend ="bottom",
            index=c("disciplina","desempenho"),
            vSize="total_cadetes",fontsize.legend = 0,
            type="index"
            ) 

# quarto ano
desempenho_3 <- desempenho  %>% filter(ano==3)
ggplot(aes(y = total_cadetes, x = disciplina, fill=desempenho), data = desempenho_3) + geom_col()+
  labs(title="3º ano - AMAN", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +
  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


treemap(desempenho_3, title = "3º ano - AMAN",position.legend ="bottom",
            index=c("disciplina","desempenho"),
            vSize="total_cadetes",fontsize.legend = 0,
            type="index"
            ) 



# quinto ano
desempenho_4 <- desempenho  %>% filter(ano==4)
ggplot(aes(y = total_cadetes, x = disciplina, fill=desempenho), data = desempenho_4) + geom_col()+
  labs(title="4º ano - AMAN", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +
  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))



treemap(desempenho_4, title = "4º ano - AMAN", position.legend ="bottom",
            index=c("disciplina","desempenho"), 
            vSize="total_cadetes", fontsize.legend = 0,
            type="index"
            ) 

#ggplot(desempenho_o, aes(total_cadetes, disciplina)) + geom_count(aes(color = desempenho), size = 3) +geom_text(aes(label=total_cadetes))
  

Desempenho dos cadetes em função da nota de corte para Recuperação (CA < 5,0)

#names(notas)
recup_5 <- 
  notas %>% group_by(ano,disciplina,recup5) %>% summarise(total_cadetes=n()) 

kable(recup_5, row.names = F,longtable = TRUE, align=c('c', 'l', 'c', 'c'),digits =2,
      booktabs = T, caption = 'Desempenho dos cadetes', format.args = list(decimal.mark = ","))

ano disciplina recup5 total_cadetes
0 Cálculo I não 396
0 Cálculo I sim 15
0 Cibernética I não 409
0 Cibernética I sim 2
0 Física Aplicada não 410
0 Física Aplicada sim 1
0 História do Exército Brasileiro não 411
0 Introdução às Técnicas Militares não 411
0 Língua Espanhola I não 411
0 Língua Inglesa I não 411
0 Língua Portuguesa I não 411
0 Química Aplicada não 408
0 Química Aplicada sim 3
0 Técnicas Militares I não 411
0 Técnicas Militares II não 408
0 Técnicas Militares II sim 2
0 Treinamento Físico Militar I não 408
0 Treinamento Físico Militar I sim 3
0 Treinamento Físico Militar II não 395
0 Treinamento Físico Militar II sim 16
0 Treinamento Físico Militar III não 394
0 Treinamento Físico Militar III sim 17
1 Cibernetica II não 413
1 Cibernetica II sim 7
1 Economia I não 6
1 Estatística não 417
1 Estatística sim 3
1 Filosofia não 408
1 Filosofia sim 11
1 Introdução ao Estudo do Direito não 436
1 Lingua Espanhola II não 416
1 Lingua Inglesa II não 415
1 Lingua Inglesa II sim 1
1 Lingua Portuguesa II não 414
1 Lingua Portuguesa II sim 2
1 Técnicas Militares III não 406
1 Técnicas Militares III sim 10
1 Técnicas Militares IV não 407
1 Técnicas Militares IV sim 9
1 Tiro I não 382
1 Tiro I sim 36
1 Tiro II não 416
1 Tiro II sim 1
1 Treinamento Físico Militar I não 407
1 Treinamento Físico Militar I sim 12
1 Treinamento Físico Militar II não 412
1 Treinamento Físico Militar II sim 5
1 Treinamento Físico Militar III não 410
1 Treinamento Físico Militar III sim 10
2 Cibernetica III não 34
2 Emprego Tático I não 296
2 Emprego Tático I sim 1
2 História Militar não 452
2 Introdução ao Estudo do Direito não 453
2 Lingua Espanhola III não 453
2 Lingua Inglesa III não 450
2 Lingua Inglesa III sim 1
2 Patrulhas não 154
2 Psicologia não 438
2 Psicologia sim 16
2 Técnicas de Infantaria I não 154
2 Técnicas de Infantaria II não 145
2 Técnicas de Infantaria II sim 9
2 Técnicas Militares V não 291
2 Técnicas Militares V sim 6
2 Técnicas Militares VI não 289
2 Técnicas Militares VI sim 10
2 Técnicas Militares VII não 151
2 Técnicas Militares VII sim 8
2 Técnicas Taticas e Procedimentos I não 63
2 Técnicas. Táticas e Procd Pel Fuz não 154
2 Tiro I não 443
2 Tiro I sim 11
2 Tiro II não 433
2 Tiro II sim 20
2 Treinamento Físico Militar I não 429
2 Treinamento Físico Militar I sim 23
2 Treinamento Físico Militar II não 440
2 Treinamento Físico Militar II sim 11
2 Treinamento Físico Militar III não 437
2 Treinamento Físico Militar III sim 16
3 Cibernetica IV não 45
3 Direito Penal e Processual Penal Militar não 448
3 Direito Penal e Processual Penal Militar sim 10
3 Emprego Tático II não 300
3 Emprego Tático II sim 5
3 Ética Profissional Militar não 447
3 Ética Profissional Militar sim 8
3 Frações de Infantaria não 150
3 Lideranca Militar não 454
3 Lideranca Militar sim 1
3 Manobra I não 150
3 Manobra II não 150
3 Metodologia do Ensino Superior não 438
3 Metodologia do Ensino Superior sim 17
3 RI/Geopolítica não 447
3 RI/Geopolítica sim 8
3 Sociologia não 455
3 Técnicas de Infantaria III não 150
3 Técnicas Militares IX não 166
3 Técnicas Militares VII não 136
3 Técnicas Militares VII sim 4
3 Técnicas Militares VIII não 303
3 Técnicas Militares VIII sim 3
3 Técnicas Militares X não 161
3 Técnicas Militares X sim 5
3 Técnicas Taticas e Procedimentos II não 63
3 Tiro I não 448
3 Tiro I sim 10
3 Tiro II não 444
3 Tiro II sim 14
3 Treinamento Físico Militar I não 440
3 Treinamento Físico Militar I sim 14
3 Treinamento Físico Militar II não 420
3 Treinamento Físico Militar II sim 30
3 Treinamento Físico Militar III não 429
3 Treinamento Físico Militar III sim 29
4 Administração não 407
4 Administração sim 21
4 Administração e Logística não 33
4 Cibernetica V não 34
4 Direito Administrativo não 428
4 Economia II não 411
4 Economia II sim 18
4 Emprego Tático III não 204
4 Emprego Tático III sim 6
4 Emprego Tatico IV não 51
4 Emprego Tatico V não 51
4 Funções de Combate não 134
4 Geopolítica não 420
4 Geopolítica sim 9
4 Iniciação a Pesquisa Cientifica não 424
4 Iniciação a Pesquisa Cientifica sim 4
4 Manobra III não 134
4 Manobra IV não 134
4 Não Guerra não 134
4 Relatorias não 409
4 Relatorias sim 18
4 Técnicas Militares não 51
4 Técnicas Militares IX não 107
4 Técnicas Militares X não 73
4 Técnicas Militares XI não 103
4 Técnicas Militares XII não 103
4 Treinamento Físico Militar I não 425
4 Treinamento Físico Militar I sim 4
4 Treinamento Físico Militar II não 413
4 Treinamento Físico Militar II sim 16
4 Treinamento Físico Militar III não 422
4 Treinamento Físico Militar III sim 8


recup_5_0 <- recup_5 %>% filter(ano==0)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup5), data = recup_5_0) + geom_col()+
  labs(title="Recuperação com nota CA < 5", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup_5_0 <- recup_5 %>% filter(ano==1)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup5), data = recup_5_0) + geom_col()+
  labs(title="Recuperação com nota CA < 5", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup_5_0 <- recup_5 %>% filter(ano==2)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup5), data = recup_5_0) + geom_col()+
  labs(title="Recuperação com nota CA < 5", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup_5_0 <- recup_5 %>% filter(ano==3)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup5), data = recup_5_0) + geom_col()+
  labs(title="Recuperação com nota CA < 5", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup_5_0 <- recup_5 %>% filter(ano==4)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup5), data = recup_5_0) + geom_col()+
  labs(title="Recuperação com nota CA < 5", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))

Desempenho dos cadetes em função da nota de corte para Recuperação (CA < 7,0)

#names(notas)
recup_7 <- 
  notas %>% group_by(ano,disciplina,recup7) %>% summarise(total_cadetes=n()) 

kable(recup_7, row.names = F,longtable = TRUE, align=c('c', 'l', 'c', 'c'),digits =2,
      booktabs = T, caption = 'Desempenho dos cadetes', format.args = list(decimal.mark = ","))

ano disciplina recup7 total_cadetes
0 Cálculo I não 277
0 Cálculo I sim 134
0 Cibernética I não 256
0 Cibernética I sim 155
0 Física Aplicada não 382
0 Física Aplicada sim 29
0 História do Exército Brasileiro não 345
0 História do Exército Brasileiro sim 66
0 Introdução às Técnicas Militares não 276
0 Introdução às Técnicas Militares sim 135
0 Língua Espanhola I não 377
0 Língua Espanhola I sim 34
0 Língua Inglesa I não 410
0 Língua Inglesa I sim 1
0 Língua Portuguesa I não 320
0 Língua Portuguesa I sim 91
0 Química Aplicada não 276
0 Química Aplicada sim 135
0 Técnicas Militares I não 405
0 Técnicas Militares I sim 6
0 Técnicas Militares II não 362
0 Técnicas Militares II sim 48
0 Treinamento Físico Militar I não 317
0 Treinamento Físico Militar I sim 94
0 Treinamento Físico Militar II não 348
0 Treinamento Físico Militar II sim 63
0 Treinamento Físico Militar III não 313
0 Treinamento Físico Militar III sim 98
1 Cibernetica II não 352
1 Cibernetica II sim 68
1 Economia I não 5
1 Economia I sim 1
1 Estatística não 360
1 Estatística sim 60
1 Filosofia não 309
1 Filosofia sim 110
1 Introdução ao Estudo do Direito não 401
1 Introdução ao Estudo do Direito sim 35
1 Lingua Espanhola II não 322
1 Lingua Espanhola II sim 94
1 Lingua Inglesa II não 314
1 Lingua Inglesa II sim 102
1 Lingua Portuguesa II não 314
1 Lingua Portuguesa II sim 102
1 Técnicas Militares III não 206
1 Técnicas Militares III sim 210
1 Técnicas Militares IV não 299
1 Técnicas Militares IV sim 117
1 Tiro I não 241
1 Tiro I sim 177
1 Tiro II não 384
1 Tiro II sim 33
1 Treinamento Físico Militar I não 261
1 Treinamento Físico Militar I sim 158
1 Treinamento Físico Militar II não 389
1 Treinamento Físico Militar II sim 28
1 Treinamento Físico Militar III não 330
1 Treinamento Físico Militar III sim 90
2 Cibernetica III não 34
2 Emprego Tático I não 246
2 Emprego Tático I sim 51
2 História Militar não 332
2 História Militar sim 120
2 Introdução ao Estudo do Direito não 412
2 Introdução ao Estudo do Direito sim 41
2 Lingua Espanhola III não 443
2 Lingua Espanhola III sim 10
2 Lingua Inglesa III não 375
2 Lingua Inglesa III sim 76
2 Patrulhas não 140
2 Patrulhas sim 14
2 Psicologia não 213
2 Psicologia sim 241
2 Técnicas de Infantaria I não 106
2 Técnicas de Infantaria I sim 48
2 Técnicas de Infantaria II não 95
2 Técnicas de Infantaria II sim 59
2 Técnicas Militares V não 211
2 Técnicas Militares V sim 86
2 Técnicas Militares VI não 172
2 Técnicas Militares VI sim 127
2 Técnicas Militares VII não 93
2 Técnicas Militares VII sim 66
2 Técnicas Taticas e Procedimentos I não 50
2 Técnicas Taticas e Procedimentos I sim 13
2 Técnicas. Táticas e Procd Pel Fuz não 143
2 Técnicas. Táticas e Procd Pel Fuz sim 11
2 Tiro I não 330
2 Tiro I sim 124
2 Tiro II não 298
2 Tiro II sim 155
2 Treinamento Físico Militar I não 124
2 Treinamento Físico Militar I sim 328
2 Treinamento Físico Militar II não 406
2 Treinamento Físico Militar II sim 45
2 Treinamento Físico Militar III não 277
2 Treinamento Físico Militar III sim 176
3 Cibernetica IV não 43
3 Cibernetica IV sim 2
3 Direito Penal e Processual Penal Militar não 268
3 Direito Penal e Processual Penal Militar sim 190
3 Emprego Tático II não 212
3 Emprego Tático II sim 93
3 Ética Profissional Militar não 287
3 Ética Profissional Militar sim 168
3 Frações de Infantaria não 143
3 Frações de Infantaria sim 7
3 Lideranca Militar não 402
3 Lideranca Militar sim 53
3 Manobra I não 120
3 Manobra I sim 30
3 Manobra II não 148
3 Manobra II sim 2
3 Metodologia do Ensino Superior não 247
3 Metodologia do Ensino Superior sim 208
3 RI/Geopolítica não 259
3 RI/Geopolítica sim 196
3 Sociologia não 422
3 Sociologia sim 33
3 Técnicas de Infantaria III não 148
3 Técnicas de Infantaria III sim 2
3 Técnicas Militares IX não 102
3 Técnicas Militares IX sim 64
3 Técnicas Militares VII não 85
3 Técnicas Militares VII sim 55
3 Técnicas Militares VIII não 227
3 Técnicas Militares VIII sim 79
3 Técnicas Militares X não 101
3 Técnicas Militares X sim 65
3 Técnicas Taticas e Procedimentos II não 45
3 Técnicas Taticas e Procedimentos II sim 18
3 Tiro I não 302
3 Tiro I sim 156
3 Tiro II não 364
3 Tiro II sim 94
3 Treinamento Físico Militar I não 283
3 Treinamento Físico Militar I sim 171
3 Treinamento Físico Militar II não 377
3 Treinamento Físico Militar II sim 73
3 Treinamento Físico Militar III não 255
3 Treinamento Físico Militar III sim 203
4 Administração não 173
4 Administração sim 255
4 Administração e Logística não 33
4 Cibernetica V não 34
4 Direito Administrativo não 368
4 Direito Administrativo sim 60
4 Economia II não 251
4 Economia II sim 178
4 Emprego Tático III não 121
4 Emprego Tático III sim 89
4 Emprego Tatico IV não 34
4 Emprego Tatico IV sim 17
4 Emprego Tatico V não 27
4 Emprego Tatico V sim 24
4 Funções de Combate não 125
4 Funções de Combate sim 9
4 Geopolítica não 235
4 Geopolítica sim 194
4 Iniciação a Pesquisa Cientifica não 315
4 Iniciação a Pesquisa Cientifica sim 113
4 Manobra III não 71
4 Manobra III sim 63
4 Manobra IV não 69
4 Manobra IV sim 65
4 Não Guerra não 80
4 Não Guerra sim 54
4 Relatorias não 196
4 Relatorias sim 231
4 Técnicas Militares não 51
4 Técnicas Militares IX não 88
4 Técnicas Militares IX sim 19
4 Técnicas Militares X não 68
4 Técnicas Militares X sim 5
4 Técnicas Militares XI não 81
4 Técnicas Militares XI sim 22
4 Técnicas Militares XII não 78
4 Técnicas Militares XII sim 25
4 Treinamento Físico Militar I não 257
4 Treinamento Físico Militar I sim 172
4 Treinamento Físico Militar II não 368
4 Treinamento Físico Militar II sim 61
4 Treinamento Físico Militar III não 292
4 Treinamento Físico Militar III sim 138


recup_7_0 <- recup_7 %>% filter(ano==0)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup_7_0) + geom_col()+
  labs(title="Recuperação com nota CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup_7_0 <- recup_7 %>% filter(ano==1)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup_7_0) + geom_col()+
  labs(title="Recuperação com nota CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup_7_0 <- recup_7 %>% filter(ano==2)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup_7_0) + geom_col()+
  labs(title="Recuperação com nota CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup_7_0 <- recup_7 %>% filter(ano==3)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup_7_0) + geom_col()+
  labs(title="Recuperação com nota CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup_7_0 <- recup_7 %>% filter(ano==4)
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup_7_0) + geom_col()+
  labs(title="Recuperação com nota CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))

Desempenho dos cadetes em função da nota de corte para Recuperação (CA < 5,0 e/ou CA < 7,0)

Como ler a tabela a seguir?

 ano    disciplina    recup5      recup7      total_cadetes
 0     Cálculo I       não       sim           119

Tem-se 119 cadetes que ficariam em recuperação na disciplina cálculo I se a nota mínima de corte para recuperação aumentasse de 5 para 7

#names(notas)
recup_5_7 <- 
  notas %>% group_by(ano,disciplina,recup5,recup7) %>% summarise(total_cadetes=n()) 

kable(recup_5_7, row.names = F,longtable = TRUE, align=c('c', 'l', 'c', 'c'),digits =2,
      booktabs = T, caption = 'Desempenho dos cadetes', format.args = list(decimal.mark = ","))

ano disciplina recup5 recup7 total_cadetes
0 Cálculo I não não 277
0 Cálculo I não sim 119
0 Cálculo I sim sim 15
0 Cibernética I não não 256
0 Cibernética I não sim 153
0 Cibernética I sim sim 2
0 Física Aplicada não não 382
0 Física Aplicada não sim 28
0 Física Aplicada sim sim 1
0 História do Exército Brasileiro não não 345
0 História do Exército Brasileiro não sim 66
0 Introdução às Técnicas Militares não não 276
0 Introdução às Técnicas Militares não sim 135
0 Língua Espanhola I não não 377
0 Língua Espanhola I não sim 34
0 Língua Inglesa I não não 410
0 Língua Inglesa I não sim 1
0 Língua Portuguesa I não não 320
0 Língua Portuguesa I não sim 91
0 Química Aplicada não não 276
0 Química Aplicada não sim 132
0 Química Aplicada sim sim 3
0 Técnicas Militares I não não 405
0 Técnicas Militares I não sim 6
0 Técnicas Militares II não não 362
0 Técnicas Militares II não sim 46
0 Técnicas Militares II sim sim 2
0 Treinamento Físico Militar I não não 317
0 Treinamento Físico Militar I não sim 91
0 Treinamento Físico Militar I sim sim 3
0 Treinamento Físico Militar II não não 348
0 Treinamento Físico Militar II não sim 47
0 Treinamento Físico Militar II sim sim 16
0 Treinamento Físico Militar III não não 313
0 Treinamento Físico Militar III não sim 81
0 Treinamento Físico Militar III sim sim 17
1 Cibernetica II não não 352
1 Cibernetica II não sim 61
1 Cibernetica II sim sim 7
1 Economia I não não 5
1 Economia I não sim 1
1 Estatística não não 360
1 Estatística não sim 57
1 Estatística sim sim 3
1 Filosofia não não 309
1 Filosofia não sim 99
1 Filosofia sim sim 11
1 Introdução ao Estudo do Direito não não 401
1 Introdução ao Estudo do Direito não sim 35
1 Lingua Espanhola II não não 322
1 Lingua Espanhola II não sim 94
1 Lingua Inglesa II não não 314
1 Lingua Inglesa II não sim 101
1 Lingua Inglesa II sim sim 1
1 Lingua Portuguesa II não não 314
1 Lingua Portuguesa II não sim 100
1 Lingua Portuguesa II sim sim 2
1 Técnicas Militares III não não 206
1 Técnicas Militares III não sim 200
1 Técnicas Militares III sim sim 10
1 Técnicas Militares IV não não 299
1 Técnicas Militares IV não sim 108
1 Técnicas Militares IV sim sim 9
1 Tiro I não não 241
1 Tiro I não sim 141
1 Tiro I sim sim 36
1 Tiro II não não 384
1 Tiro II não sim 32
1 Tiro II sim sim 1
1 Treinamento Físico Militar I não não 261
1 Treinamento Físico Militar I não sim 146
1 Treinamento Físico Militar I sim sim 12
1 Treinamento Físico Militar II não não 389
1 Treinamento Físico Militar II não sim 23
1 Treinamento Físico Militar II sim sim 5
1 Treinamento Físico Militar III não não 330
1 Treinamento Físico Militar III não sim 80
1 Treinamento Físico Militar III sim sim 10
2 Cibernetica III não não 34
2 Emprego Tático I não não 246
2 Emprego Tático I não sim 50
2 Emprego Tático I sim sim 1
2 História Militar não não 332
2 História Militar não sim 120
2 Introdução ao Estudo do Direito não não 412
2 Introdução ao Estudo do Direito não sim 41
2 Lingua Espanhola III não não 443
2 Lingua Espanhola III não sim 10
2 Lingua Inglesa III não não 375
2 Lingua Inglesa III não sim 75
2 Lingua Inglesa III sim sim 1
2 Patrulhas não não 140
2 Patrulhas não sim 14
2 Psicologia não não 213
2 Psicologia não sim 225
2 Psicologia sim sim 16
2 Técnicas de Infantaria I não não 106
2 Técnicas de Infantaria I não sim 48
2 Técnicas de Infantaria II não não 95
2 Técnicas de Infantaria II não sim 50
2 Técnicas de Infantaria II sim sim 9
2 Técnicas Militares V não não 211
2 Técnicas Militares V não sim 80
2 Técnicas Militares V sim sim 6
2 Técnicas Militares VI não não 172
2 Técnicas Militares VI não sim 117
2 Técnicas Militares VI sim sim 10
2 Técnicas Militares VII não não 93
2 Técnicas Militares VII não sim 58
2 Técnicas Militares VII sim sim 8
2 Técnicas Taticas e Procedimentos I não não 50
2 Técnicas Taticas e Procedimentos I não sim 13
2 Técnicas. Táticas e Procd Pel Fuz não não 143
2 Técnicas. Táticas e Procd Pel Fuz não sim 11
2 Tiro I não não 330
2 Tiro I não sim 113
2 Tiro I sim sim 11
2 Tiro II não não 298
2 Tiro II não sim 135
2 Tiro II sim sim 20
2 Treinamento Físico Militar I não não 124
2 Treinamento Físico Militar I não sim 305
2 Treinamento Físico Militar I sim sim 23
2 Treinamento Físico Militar II não não 406
2 Treinamento Físico Militar II não sim 34
2 Treinamento Físico Militar II sim sim 11
2 Treinamento Físico Militar III não não 277
2 Treinamento Físico Militar III não sim 160
2 Treinamento Físico Militar III sim sim 16
3 Cibernetica IV não não 43
3 Cibernetica IV não sim 2
3 Direito Penal e Processual Penal Militar não não 268
3 Direito Penal e Processual Penal Militar não sim 180
3 Direito Penal e Processual Penal Militar sim sim 10
3 Emprego Tático II não não 212
3 Emprego Tático II não sim 88
3 Emprego Tático II sim sim 5
3 Ética Profissional Militar não não 287
3 Ética Profissional Militar não sim 160
3 Ética Profissional Militar sim sim 8
3 Frações de Infantaria não não 143
3 Frações de Infantaria não sim 7
3 Lideranca Militar não não 402
3 Lideranca Militar não sim 52
3 Lideranca Militar sim sim 1
3 Manobra I não não 120
3 Manobra I não sim 30
3 Manobra II não não 148
3 Manobra II não sim 2
3 Metodologia do Ensino Superior não não 247
3 Metodologia do Ensino Superior não sim 191
3 Metodologia do Ensino Superior sim sim 17
3 RI/Geopolítica não não 259
3 RI/Geopolítica não sim 188
3 RI/Geopolítica sim sim 8
3 Sociologia não não 422
3 Sociologia não sim 33
3 Técnicas de Infantaria III não não 148
3 Técnicas de Infantaria III não sim 2
3 Técnicas Militares IX não não 102
3 Técnicas Militares IX não sim 64
3 Técnicas Militares VII não não 85
3 Técnicas Militares VII não sim 51
3 Técnicas Militares VII sim sim 4
3 Técnicas Militares VIII não não 227
3 Técnicas Militares VIII não sim 76
3 Técnicas Militares VIII sim sim 3
3 Técnicas Militares X não não 101
3 Técnicas Militares X não sim 60
3 Técnicas Militares X sim sim 5
3 Técnicas Taticas e Procedimentos II não não 45
3 Técnicas Taticas e Procedimentos II não sim 18
3 Tiro I não não 302
3 Tiro I não sim 146
3 Tiro I sim sim 10
3 Tiro II não não 364
3 Tiro II não sim 80
3 Tiro II sim sim 14
3 Treinamento Físico Militar I não não 283
3 Treinamento Físico Militar I não sim 157
3 Treinamento Físico Militar I sim sim 14
3 Treinamento Físico Militar II não não 377
3 Treinamento Físico Militar II não sim 43
3 Treinamento Físico Militar II sim sim 30
3 Treinamento Físico Militar III não não 255
3 Treinamento Físico Militar III não sim 174
3 Treinamento Físico Militar III sim sim 29
4 Administração não não 173
4 Administração não sim 234
4 Administração sim sim 21
4 Administração e Logística não não 33
4 Cibernetica V não não 34
4 Direito Administrativo não não 368
4 Direito Administrativo não sim 60
4 Economia II não não 251
4 Economia II não sim 160
4 Economia II sim sim 18
4 Emprego Tático III não não 121
4 Emprego Tático III não sim 83
4 Emprego Tático III sim sim 6
4 Emprego Tatico IV não não 34
4 Emprego Tatico IV não sim 17
4 Emprego Tatico V não não 27
4 Emprego Tatico V não sim 24
4 Funções de Combate não não 125
4 Funções de Combate não sim 9
4 Geopolítica não não 235
4 Geopolítica não sim 185
4 Geopolítica sim sim 9
4 Iniciação a Pesquisa Cientifica não não 315
4 Iniciação a Pesquisa Cientifica não sim 109
4 Iniciação a Pesquisa Cientifica sim sim 4
4 Manobra III não não 71
4 Manobra III não sim 63
4 Manobra IV não não 69
4 Manobra IV não sim 65
4 Não Guerra não não 80
4 Não Guerra não sim 54
4 Relatorias não não 196
4 Relatorias não sim 213
4 Relatorias sim sim 18
4 Técnicas Militares não não 51
4 Técnicas Militares IX não não 88
4 Técnicas Militares IX não sim 19
4 Técnicas Militares X não não 68
4 Técnicas Militares X não sim 5
4 Técnicas Militares XI não não 81
4 Técnicas Militares XI não sim 22
4 Técnicas Militares XII não não 78
4 Técnicas Militares XII não sim 25
4 Treinamento Físico Militar I não não 257
4 Treinamento Físico Militar I não sim 168
4 Treinamento Físico Militar I sim sim 4
4 Treinamento Físico Militar II não não 368
4 Treinamento Físico Militar II não sim 45
4 Treinamento Físico Militar II sim sim 16
4 Treinamento Físico Militar III não não 292
4 Treinamento Físico Militar III não sim 130
4 Treinamento Físico Militar III sim sim 8


recup5_7_0 <- recup_5_7 %>% filter(ano==0,recup5=="não")
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup5_7_0) + geom_col()+
  labs(title="Cadetes que não fariam Recuperação caso a nota mínima fosse 5, mas fariam se a nota mínima fosse CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup5_7_0 <- recup_5_7 %>% filter(ano==1,recup5=="não")
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup5_7_0) + geom_col()+
  labs(title="Cadetes que não fariam Recuperação caso a nota mínima fosse 5, mas fariam se a nota mínima fosse CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup5_7_0 <- recup_5_7 %>% filter(ano==2,recup5=="não")
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup5_7_0) + geom_col()+
  labs(title="Cadetes que não fariam Recuperação caso a nota mínima fosse 5, mas fariam se a nota mínima fosse CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup5_7_0 <- recup_5_7 %>% filter(ano==3,recup5=="não")
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup5_7_0) + geom_col()+
  labs(title="Cadetes que não fariam Recuperação caso a nota mínima fosse 5, mas fariam se a nota mínima fosse CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))


recup5_7_0 <- recup_5_7 %>% filter(ano==4,recup5=="não")
ggplot(aes(y = total_cadetes, x = disciplina, fill=recup7), data = recup5_7_0) + geom_col()+
  labs(title="Cadetes que não fariam Recuperação caso a nota mínima fosse 5, mas fariam se a nota mínima fosse CA < 7", subtitle="", caption="Fonte: Cadeira de Estatística - AMAN")+  xlab("Disciplina") + ylab("Total de cadetes") + theme (axis.text.x = element_text(face="bold", size=12,angle=90)) +  geom_text(aes(label=total_cadetes), position = position_stack(vjust = 0.5))

NA
NA
NA
NA
LS0tDQp0aXRsZTogIkF2YWxpYcOnw6NvIGRvIGRlc2VtcGVuaG8gZG9zIGNhZGV0ZXMgbWF0cmljdWxhZG9zIGVtIDIwMTggKEVzUENFeCBlIEFNQU4pIGVtIGZ1bsOnw6NvIGRhIENvbnRhIGRlIEFubyAoQ0EpIg0KYXV0aG9yOiAiTGVvbmksIFIuIEMuIChNYWogLSBQcm9mZXNzb3IgRHIuKSAtIENoZWZlIGRhICBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSINCmRhdGU6ICdSZWxhdMOzcmlvIGdlcmFkbyBlbTogYHIgZm9ybWF0KFN5cy50aW1lKCksICIlZCBkZSAlQiBkZSAlWSIpYCcNCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBmaWdfY2FwdGlvbjogeWVzDQogICAgdGhlbWU6IGpvdXJuYWwNCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogMQ0KICB3b3JkX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiAnMScNCiAgcGRmX2RvY3VtZW50Og0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBmaWdfd2lkdGg6IDYuOA0KICAgIGxhdGV4X2VuZ2luZTogbHVhbGF0ZXgNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRvYzogeWVzDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IGthYmxlDQogICAgZmlnX2NhcHRpb246IHllcw0KICAgIHRvYzogeWVzDQpoZWFkZXItaW5jbHVkZXM6IFx1c2VwYWNrYWdlW2JyYXppbGlhbl17YmFiZWx9DQplbWFpbDogcmNsZW9uaUB5YWhvby5jb20uYnINCi0tLQ0KDQoNCiMgQmFzZSBkZSBkYWRvcw0KYGBge3Igd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0NCmxpYnJhcnkocmVhZHhsKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoa25pdHIpDQpub3RhcyA8LSByZWFkX2V4Y2VsKCJub3Rhc18yMDE4Lnhsc3giKQ0Kbm90YXMgPC0gbm90YXNbLGMoMSwyLDMsNSw3OjEwKV0NCm5vdGFzDQpgYGANCg0KIyBTdW3DoXJpbyBkYXMgZGlzY2lwbGluYXMgZW0gMjAxOA0KICAgICAgICANCiMjIyBUZW0tc2UgZGlzcG9uw612ZWwgcG9yIGRpc2NpcGxpbmEgYXMgc2VndWludGVzIGVzdGF0w61zdGljYXM6IA0KICAgICAgICANCiAgMS4gTcOtbmltbw0KICAyLiBNw6F4aW1vDQogIDMuIE1lZGlhbmENCiAgNC4gTcOpZGlhDQogIDUuIERlc3ZpbyBQYWRyw6NvDQogIDYuIENvZWYuIGRlIHZhcmlhw6fDo28gKCUpDQogIDcuIGxpbWl0ZSBpbmZlcmlvcg0KICA4LiBsaW1pdGUgc3VwZXJpb3INCg0Kb2JzOiBPIGxpbSBpbmZlcmlvciBlIG8gbGltaXRlIHN1cGVyaW9yIGZvaSBjYWxjdWxhZG8gY29tIGJhc2Ugbm8gc2VndWludGUgY3JpdMOpcmlvOiANCg0KKiBsaW0gaW5mZXJpb3IgPSBtw6lkaWEgLSAxIGRlc3ZpbyBwYWRyw6NvDQoqIGxpbSBzdXBlcmlvciA9IG3DqWRpYSArIDEgZGVzdmlvIHBhZHLDo28NCg0KYGBge3J9DQptZW5vcmVzIDwtIG5vdGFzICU+JSBncm91cF9ieShkaXNjaXBsaW5hKSAlPiUgc3VtbWFyaXNlKG1pbmltbz1taW4oY2EpKSANCm1haW9yZXMgPC0gbm90YXMgJT4lIGdyb3VwX2J5KGRpc2NpcGxpbmEpICU+JSBzdW1tYXJpc2UobWF4aW1vPW1heChjYSkpIA0KbWVkaWFzIDwtIG5vdGFzICU+JSBncm91cF9ieShkaXNjaXBsaW5hKSAlPiUgc3VtbWFyaXNlKG1lZGlhPW1lYW4oY2EpKSANCm1lZGlhbmEgPC0gbm90YXMgJT4lIGdyb3VwX2J5KGRpc2NpcGxpbmEpICU+JSBzdW1tYXJpc2UobWVkaWFuYT1tZWRpYW4oY2EpKSANCmRlc3Zpb3NwYWRyYW8gPC0gbm90YXMgJT4lIGdyb3VwX2J5KGRpc2NpcGxpbmEpICU+JSBzdW1tYXJpc2UoZGVzdmlvX3BhZHJhbz1zZChjYSkpIA0KY3ZzIDwtIChkZXN2aW9zcGFkcmFvJGRlc3Zpb19wYWRyYW8vbWVkaWFzJG1lZGlhKSoxMDANCg0KIyBsaW1pdGVzIHBhcmEgY2xhc3NpZmljYcOnw6NvIGRlc2VtcGVuaG8gYmFpeG8sIG1lZGlhbm8gZSBkZXNlbXBlbmhvIGFsdG8NCmxpIDwtIG1lZGlhcyRtZWRpYS1kZXN2aW9zcGFkcmFvJGRlc3Zpb19wYWRyYW8NCmxzIDwtIG1lZGlhcyRtZWRpYStkZXN2aW9zcGFkcmFvJGRlc3Zpb19wYWRyYW8NCg0KI3N1bcOhcmlvDQpzdW1hcmlvIDwtIGRhdGEuZnJhbWUobWVub3JlcywgbWFpb3JlcyRtYXhpbW8sIG1lZGlhbmEkbWVkaWFuYSwgbWVkaWFzJG1lZGlhLCBkZXN2aW9zcGFkcmFvJGRlc3Zpb19wYWRyYW8sIGN2cywgbGksIGxzKQ0KbmFtZXMgKHN1bWFyaW8pIDwtIGMoJ0Rpc2NpcGxpbmEnLCAnTcOtbmltbycsICdNw6F4aW1vJywgJ01lZGlhbmEnLCAnTcOpZGlhJywgJ0Rlc3Zpb19wYWRyw6NvJywgJ0NvZWYuIGRlIHZhcmlhw6fDo28gKCUpJywgJ2xpbSBpbmZlcmlvcicsJ2xpbSBzdXBlcmlvcicpDQprYWJsZShzdW1hcmlvLCByb3cubmFtZXMgPSBGLGxvbmd0YWJsZSA9IFRSVUUsIGFsaWduPWMoJ2MnLCAnYycsICdjJywgJ2MnLCdjJywgJ2MnLCAnYycsICdjJywgJ2MnKSwgZGlnaXRzID0yLCBib29rdGFicyA9IFQsY2FwdGlvbiA9ICdTdW3DoXJpbyBFc3RhdMOtc3RpY28uJywgZm9ybWF0LmFyZ3MgPSBsaXN0KGRlY2ltYWwubWFyayA9ICIsIikpDQpgYGANCg0KDQojIENsYXNzaWZpY2HDp8OjbyBkb3MgY2FkZXRlcyBlbSBmdW7Dp8OjbyBkb3MgbGltaXRlcyBkZSBkZXNlbXBlbmhvIA0KDQojIyBEZXNlbXBlbmhvIGJhaXhvDQoqIENBIDwgbGltaXRlIGluZmVyaW9yIGRhIGRpc2NpcGxpbmENCg0KIyMgRGVzZW1wZW5obyBtZWRpYW5vDQoqIGxpbWl0ZSBpbmZlcmlvciBkYSBkaXNjaXBsaW5hIDw9IENBIDw9IGxpbWl0ZSBzdXBlcmlvciBkYSBkaXNjaXBsaW5hDQoNCiMjIERlc2VtcGVuaG8gYWx0bw0KKiBDQSA+IGxpbWl0ZSBzdXBlcmlvciBkYSBkaXNjaXBsaW5hDQoNCg0KYGBge3IgZmlnLmhlaWdodD04LCBmaWcud2lkdGg9MTR9DQojbmFtZXMobm90YXMpDQojaHR0cHM6Ly93d3cuci1ncmFwaC1nYWxsZXJ5LmNvbS8xMjgtcmluZy1vci1kb251dC1wbG90Lmh0bWwNCmRlc2VtcGVuaG8gPC0gbm90YXMgJT4lIGdyb3VwX2J5KGFubyxkaXNjaXBsaW5hLGRlc2VtcGVuaG8pICU+JSBzdW1tYXJpc2UodG90YWxfY2FkZXRlcz1uKCkpIA0Ka2FibGUoZGVzZW1wZW5obywgcm93Lm5hbWVzID0gRixsb25ndGFibGUgPSBUUlVFLCBhbGlnbj1jKCdjJywgJ2wnLCAnYycsICdjJyksZGlnaXRzID0yLA0KICAgICAgYm9va3RhYnMgPSBULCBjYXB0aW9uID0gJ0Rlc2VtcGVuaG8gZG9zIGNhZGV0ZXMnLCBmb3JtYXQuYXJncyA9IGxpc3QoZGVjaW1hbC5tYXJrID0gIiwiKSkNCg0KIyBsaWJyYXJ5DQpsaWJyYXJ5KHRyZWVtYXApDQogDQojIHRyZWVtYXAgdG9kb3MgDQojdHJlZW1hcChkZXNlbXBlbmhvLGluZGV4PWMoImRpc2NpcGxpbmEiLCJkZXNlbXBlbmhvIiksdlNpemU9InRvdGFsX2NhZGV0ZXMiLHR5cGU9ImluZGV4IikgDQoNCiMgcHJpbWVpcm8gYW5vDQpkZXNlbXBlbmhvX28gPC0gZGVzZW1wZW5obyAgJT4lIGZpbHRlcihhbm89PTApDQpnZ3Bsb3QoYWVzKHkgPSB0b3RhbF9jYWRldGVzLCB4ID0gZGlzY2lwbGluYSwgZmlsbD1kZXNlbXBlbmhvKSwgZGF0YSA9IGRlc2VtcGVuaG9fbykgKyBnZW9tX2NvbCgpKw0KICBsYWJzKHRpdGxlPSIxwrogYW5vIC0gRXNQQ0V4Iiwgc3VidGl0bGU9IiIsIGNhcHRpb249IkZvbnRlOiBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSAtIEFNQU4iKSsgIHhsYWIoIkRpc2NpcGxpbmEiKSArIHlsYWIoIlRvdGFsIGRlIGNhZGV0ZXMiKSArIHRoZW1lIChheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChmYWNlPSJib2xkIiwgc2l6ZT0xMixhbmdsZT05MCkpICsgIGdlb21fdGV4dChhZXMobGFiZWw9dG90YWxfY2FkZXRlcyksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpKQ0KDQp0cmVlbWFwKGRlc2VtcGVuaG9fbywgdGl0bGUgPSAiMcK6IGFubyAtIEVzUENFeCIscG9zaXRpb24ubGVnZW5kID0iYm90dG9tIiwNCiAgICAgICAgICAgIGluZGV4PWMoImRpc2NpcGxpbmEiLCJkZXNlbXBlbmhvIiksDQogICAgICAgICAgICB2U2l6ZT0idG90YWxfY2FkZXRlcyIsZm9udHNpemUubGVnZW5kID0gMCwNCiAgICAgICAgICAgIHR5cGU9ImluZGV4Ig0KICAgICAgICAgICAgKSANCg0KIyBzZWd1bmRvIGFubw0KZGVzZW1wZW5ob18xIDwtIGRlc2VtcGVuaG8gICU+JSBmaWx0ZXIoYW5vPT0xKQ0KZ2dwbG90KGFlcyh5ID0gdG90YWxfY2FkZXRlcywgeCA9IGRpc2NpcGxpbmEsIGZpbGw9ZGVzZW1wZW5obyksIGRhdGEgPSBkZXNlbXBlbmhvXzEpICsgZ2VvbV9jb2woKSsNCiAgbGFicyh0aXRsZT0iMcK6IGFubyAtIEFNQU4iLCBzdWJ0aXRsZT0iIiwgY2FwdGlvbj0iRm9udGU6IENhZGVpcmEgZGUgRXN0YXTDrXN0aWNhIC0gQU1BTiIpKyAgeGxhYigiRGlzY2lwbGluYSIpICsgeWxhYigiVG90YWwgZGUgY2FkZXRlcyIpICsgdGhlbWUgKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGZhY2U9ImJvbGQiLCBzaXplPTEyLGFuZ2xlPTkwKSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsPXRvdGFsX2NhZGV0ZXMpLCBwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gMC41KSkNCg0KdHJlZW1hcChkZXNlbXBlbmhvXzEsdGl0bGUgPSAiMcK6IGFubyAtIEFNQU4iLHBvc2l0aW9uLmxlZ2VuZCA9ImJvdHRvbSIsDQogICAgICAgICAgICBpbmRleD1jKCJkaXNjaXBsaW5hIiwiZGVzZW1wZW5obyIpLA0KICAgICAgICAgICAgdlNpemU9InRvdGFsX2NhZGV0ZXMiLGZvbnRzaXplLmxlZ2VuZCA9IDAsDQogICAgICAgICAgICB0eXBlPSJpbmRleCINCiAgICAgICAgICAgICkgDQoNCiMgdGVyY2Vpcm8gYW5vDQpkZXNlbXBlbmhvXzIgPC0gZGVzZW1wZW5obyAgJT4lIGZpbHRlcihhbm89PTIpDQpnZ3Bsb3QoYWVzKHkgPSB0b3RhbF9jYWRldGVzLCB4ID0gZGlzY2lwbGluYSwgZmlsbD1kZXNlbXBlbmhvKSwgZGF0YSA9IGRlc2VtcGVuaG9fMikgKyBnZW9tX2NvbCgpKw0KICBsYWJzKHRpdGxlPSIywrogYW5vIC0gQU1BTiIsIHN1YnRpdGxlPSIiLCBjYXB0aW9uPSJGb250ZTogQ2FkZWlyYSBkZSBFc3RhdMOtc3RpY2EgLSBBTUFOIikrICB4bGFiKCJEaXNjaXBsaW5hIikgKyB5bGFiKCJUb3RhbCBkZSBjYWRldGVzIikgKyB0aGVtZSAoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoZmFjZT0iYm9sZCIsIHNpemU9MTIsYW5nbGU9OTApKSArDQogIGdlb21fdGV4dChhZXMobGFiZWw9dG90YWxfY2FkZXRlcyksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpKQ0KDQp0cmVlbWFwKGRlc2VtcGVuaG9fMiwgdGl0bGUgPSAiMsK6IGFubyAtIEFNQU4iLHBvc2l0aW9uLmxlZ2VuZCA9ImJvdHRvbSIsDQogICAgICAgICAgICBpbmRleD1jKCJkaXNjaXBsaW5hIiwiZGVzZW1wZW5obyIpLA0KICAgICAgICAgICAgdlNpemU9InRvdGFsX2NhZGV0ZXMiLGZvbnRzaXplLmxlZ2VuZCA9IDAsDQogICAgICAgICAgICB0eXBlPSJpbmRleCINCiAgICAgICAgICAgICkgDQojIHF1YXJ0byBhbm8NCmRlc2VtcGVuaG9fMyA8LSBkZXNlbXBlbmhvICAlPiUgZmlsdGVyKGFubz09MykNCmdncGxvdChhZXMoeSA9IHRvdGFsX2NhZGV0ZXMsIHggPSBkaXNjaXBsaW5hLCBmaWxsPWRlc2VtcGVuaG8pLCBkYXRhID0gZGVzZW1wZW5ob18zKSArIGdlb21fY29sKCkrDQogIGxhYnModGl0bGU9IjPCuiBhbm8gLSBBTUFOIiwgc3VidGl0bGU9IiIsIGNhcHRpb249IkZvbnRlOiBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSAtIEFNQU4iKSsgIHhsYWIoIkRpc2NpcGxpbmEiKSArIHlsYWIoIlRvdGFsIGRlIGNhZGV0ZXMiKSArIHRoZW1lIChheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChmYWNlPSJib2xkIiwgc2l6ZT0xMixhbmdsZT05MCkpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbD10b3RhbF9jYWRldGVzKSwgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDAuNSkpDQoNCnRyZWVtYXAoZGVzZW1wZW5ob18zLCB0aXRsZSA9ICIzwrogYW5vIC0gQU1BTiIscG9zaXRpb24ubGVnZW5kID0iYm90dG9tIiwNCiAgICAgICAgICAgIGluZGV4PWMoImRpc2NpcGxpbmEiLCJkZXNlbXBlbmhvIiksDQogICAgICAgICAgICB2U2l6ZT0idG90YWxfY2FkZXRlcyIsZm9udHNpemUubGVnZW5kID0gMCwNCiAgICAgICAgICAgIHR5cGU9ImluZGV4Ig0KICAgICAgICAgICAgKSANCg0KDQojIHF1aW50byBhbm8NCmRlc2VtcGVuaG9fNCA8LSBkZXNlbXBlbmhvICAlPiUgZmlsdGVyKGFubz09NCkNCmdncGxvdChhZXMoeSA9IHRvdGFsX2NhZGV0ZXMsIHggPSBkaXNjaXBsaW5hLCBmaWxsPWRlc2VtcGVuaG8pLCBkYXRhID0gZGVzZW1wZW5ob180KSArIGdlb21fY29sKCkrDQogIGxhYnModGl0bGU9IjTCuiBhbm8gLSBBTUFOIiwgc3VidGl0bGU9IiIsIGNhcHRpb249IkZvbnRlOiBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSAtIEFNQU4iKSsgIHhsYWIoIkRpc2NpcGxpbmEiKSArIHlsYWIoIlRvdGFsIGRlIGNhZGV0ZXMiKSArIHRoZW1lIChheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChmYWNlPSJib2xkIiwgc2l6ZT0xMixhbmdsZT05MCkpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbD10b3RhbF9jYWRldGVzKSwgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDAuNSkpDQoNCg0KdHJlZW1hcChkZXNlbXBlbmhvXzQsIHRpdGxlID0gIjTCuiBhbm8gLSBBTUFOIiwgcG9zaXRpb24ubGVnZW5kID0iYm90dG9tIiwNCiAgICAgICAgICAgIGluZGV4PWMoImRpc2NpcGxpbmEiLCJkZXNlbXBlbmhvIiksIA0KICAgICAgICAgICAgdlNpemU9InRvdGFsX2NhZGV0ZXMiLCBmb250c2l6ZS5sZWdlbmQgPSAwLA0KICAgICAgICAgICAgdHlwZT0iaW5kZXgiDQogICAgICAgICAgICApIA0KI2dncGxvdChkZXNlbXBlbmhvX28sIGFlcyh0b3RhbF9jYWRldGVzLCBkaXNjaXBsaW5hKSkgKyBnZW9tX2NvdW50KGFlcyhjb2xvciA9IGRlc2VtcGVuaG8pLCBzaXplID0gMykgK2dlb21fdGV4dChhZXMobGFiZWw9dG90YWxfY2FkZXRlcykpDQogIA0KYGBgDQoNCiMgRGVzZW1wZW5obyBkb3MgY2FkZXRlcyBlbSBmdW7Dp8OjbyBkYSBub3RhIGRlIGNvcnRlIHBhcmEgUmVjdXBlcmHDp8OjbyAoQ0EgPCA1LDApIA0KYGBge3IgZmlnLmhlaWdodD04LCBmaWcud2lkdGg9MTR9DQojbmFtZXMobm90YXMpDQpyZWN1cF81IDwtIA0KICBub3RhcyAlPiUgZ3JvdXBfYnkoYW5vLGRpc2NpcGxpbmEscmVjdXA1KSAlPiUgc3VtbWFyaXNlKHRvdGFsX2NhZGV0ZXM9bigpKSANCg0Ka2FibGUocmVjdXBfNSwgcm93Lm5hbWVzID0gRixsb25ndGFibGUgPSBUUlVFLCBhbGlnbj1jKCdjJywgJ2wnLCAnYycsICdjJyksZGlnaXRzID0yLA0KICAgICAgYm9va3RhYnMgPSBULCBjYXB0aW9uID0gJ0Rlc2VtcGVuaG8gZG9zIGNhZGV0ZXMnLCBmb3JtYXQuYXJncyA9IGxpc3QoZGVjaW1hbC5tYXJrID0gIiwiKSkNCg0KcmVjdXBfNV8wIDwtIHJlY3VwXzUgJT4lIGZpbHRlcihhbm89PTApDQpnZ3Bsb3QoYWVzKHkgPSB0b3RhbF9jYWRldGVzLCB4ID0gZGlzY2lwbGluYSwgZmlsbD1yZWN1cDUpLCBkYXRhID0gcmVjdXBfNV8wKSArIGdlb21fY29sKCkrDQogIGxhYnModGl0bGU9IlJlY3VwZXJhw6fDo28gY29tIG5vdGEgQ0EgPCA1Iiwgc3VidGl0bGU9IiIsIGNhcHRpb249IkZvbnRlOiBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSAtIEFNQU4iKSsgIHhsYWIoIkRpc2NpcGxpbmEiKSArIHlsYWIoIlRvdGFsIGRlIGNhZGV0ZXMiKSArIHRoZW1lIChheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChmYWNlPSJib2xkIiwgc2l6ZT0xMixhbmdsZT05MCkpICsgIGdlb21fdGV4dChhZXMobGFiZWw9dG90YWxfY2FkZXRlcyksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpKQ0KDQpyZWN1cF81XzAgPC0gcmVjdXBfNSAlPiUgZmlsdGVyKGFubz09MSkNCmdncGxvdChhZXMoeSA9IHRvdGFsX2NhZGV0ZXMsIHggPSBkaXNjaXBsaW5hLCBmaWxsPXJlY3VwNSksIGRhdGEgPSByZWN1cF81XzApICsgZ2VvbV9jb2woKSsNCiAgbGFicyh0aXRsZT0iUmVjdXBlcmHDp8OjbyBjb20gbm90YSBDQSA8IDUiLCBzdWJ0aXRsZT0iIiwgY2FwdGlvbj0iRm9udGU6IENhZGVpcmEgZGUgRXN0YXTDrXN0aWNhIC0gQU1BTiIpKyAgeGxhYigiRGlzY2lwbGluYSIpICsgeWxhYigiVG90YWwgZGUgY2FkZXRlcyIpICsgdGhlbWUgKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGZhY2U9ImJvbGQiLCBzaXplPTEyLGFuZ2xlPTkwKSkgKyAgZ2VvbV90ZXh0KGFlcyhsYWJlbD10b3RhbF9jYWRldGVzKSwgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDAuNSkpDQoNCnJlY3VwXzVfMCA8LSByZWN1cF81ICU+JSBmaWx0ZXIoYW5vPT0yKQ0KZ2dwbG90KGFlcyh5ID0gdG90YWxfY2FkZXRlcywgeCA9IGRpc2NpcGxpbmEsIGZpbGw9cmVjdXA1KSwgZGF0YSA9IHJlY3VwXzVfMCkgKyBnZW9tX2NvbCgpKw0KICBsYWJzKHRpdGxlPSJSZWN1cGVyYcOnw6NvIGNvbSBub3RhIENBIDwgNSIsIHN1YnRpdGxlPSIiLCBjYXB0aW9uPSJGb250ZTogQ2FkZWlyYSBkZSBFc3RhdMOtc3RpY2EgLSBBTUFOIikrICB4bGFiKCJEaXNjaXBsaW5hIikgKyB5bGFiKCJUb3RhbCBkZSBjYWRldGVzIikgKyB0aGVtZSAoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoZmFjZT0iYm9sZCIsIHNpemU9MTIsYW5nbGU9OTApKSArICBnZW9tX3RleHQoYWVzKGxhYmVsPXRvdGFsX2NhZGV0ZXMpLCBwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gMC41KSkNCg0KcmVjdXBfNV8wIDwtIHJlY3VwXzUgJT4lIGZpbHRlcihhbm89PTMpDQpnZ3Bsb3QoYWVzKHkgPSB0b3RhbF9jYWRldGVzLCB4ID0gZGlzY2lwbGluYSwgZmlsbD1yZWN1cDUpLCBkYXRhID0gcmVjdXBfNV8wKSArIGdlb21fY29sKCkrDQogIGxhYnModGl0bGU9IlJlY3VwZXJhw6fDo28gY29tIG5vdGEgQ0EgPCA1Iiwgc3VidGl0bGU9IiIsIGNhcHRpb249IkZvbnRlOiBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSAtIEFNQU4iKSsgIHhsYWIoIkRpc2NpcGxpbmEiKSArIHlsYWIoIlRvdGFsIGRlIGNhZGV0ZXMiKSArIHRoZW1lIChheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChmYWNlPSJib2xkIiwgc2l6ZT0xMixhbmdsZT05MCkpICsgIGdlb21fdGV4dChhZXMobGFiZWw9dG90YWxfY2FkZXRlcyksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpKQ0KDQpyZWN1cF81XzAgPC0gcmVjdXBfNSAlPiUgZmlsdGVyKGFubz09NCkNCmdncGxvdChhZXMoeSA9IHRvdGFsX2NhZGV0ZXMsIHggPSBkaXNjaXBsaW5hLCBmaWxsPXJlY3VwNSksIGRhdGEgPSByZWN1cF81XzApICsgZ2VvbV9jb2woKSsNCiAgbGFicyh0aXRsZT0iUmVjdXBlcmHDp8OjbyBjb20gbm90YSBDQSA8IDUiLCBzdWJ0aXRsZT0iIiwgY2FwdGlvbj0iRm9udGU6IENhZGVpcmEgZGUgRXN0YXTDrXN0aWNhIC0gQU1BTiIpKyAgeGxhYigiRGlzY2lwbGluYSIpICsgeWxhYigiVG90YWwgZGUgY2FkZXRlcyIpICsgdGhlbWUgKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGZhY2U9ImJvbGQiLCBzaXplPTEyLGFuZ2xlPTkwKSkgKyAgZ2VvbV90ZXh0KGFlcyhsYWJlbD10b3RhbF9jYWRldGVzKSwgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDAuNSkpDQoNCmBgYA0KDQoNCiMgRGVzZW1wZW5obyBkb3MgY2FkZXRlcyBlbSBmdW7Dp8OjbyBkYSBub3RhIGRlIGNvcnRlIHBhcmEgUmVjdXBlcmHDp8OjbyAoQ0EgPCA3LDApIA0KYGBge3IgZmlnLmhlaWdodD04LCBmaWcud2lkdGg9MTR9DQojbmFtZXMobm90YXMpDQpyZWN1cF83IDwtIA0KICBub3RhcyAlPiUgZ3JvdXBfYnkoYW5vLGRpc2NpcGxpbmEscmVjdXA3KSAlPiUgc3VtbWFyaXNlKHRvdGFsX2NhZGV0ZXM9bigpKSANCg0Ka2FibGUocmVjdXBfNywgcm93Lm5hbWVzID0gRixsb25ndGFibGUgPSBUUlVFLCBhbGlnbj1jKCdjJywgJ2wnLCAnYycsICdjJyksZGlnaXRzID0yLA0KICAgICAgYm9va3RhYnMgPSBULCBjYXB0aW9uID0gJ0Rlc2VtcGVuaG8gZG9zIGNhZGV0ZXMnLCBmb3JtYXQuYXJncyA9IGxpc3QoZGVjaW1hbC5tYXJrID0gIiwiKSkNCg0KcmVjdXBfN18wIDwtIHJlY3VwXzcgJT4lIGZpbHRlcihhbm89PTApDQpnZ3Bsb3QoYWVzKHkgPSB0b3RhbF9jYWRldGVzLCB4ID0gZGlzY2lwbGluYSwgZmlsbD1yZWN1cDcpLCBkYXRhID0gcmVjdXBfN18wKSArIGdlb21fY29sKCkrDQogIGxhYnModGl0bGU9IlJlY3VwZXJhw6fDo28gY29tIG5vdGEgQ0EgPCA3Iiwgc3VidGl0bGU9IiIsIGNhcHRpb249IkZvbnRlOiBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSAtIEFNQU4iKSsgIHhsYWIoIkRpc2NpcGxpbmEiKSArIHlsYWIoIlRvdGFsIGRlIGNhZGV0ZXMiKSArIHRoZW1lIChheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChmYWNlPSJib2xkIiwgc2l6ZT0xMixhbmdsZT05MCkpICsgIGdlb21fdGV4dChhZXMobGFiZWw9dG90YWxfY2FkZXRlcyksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpKQ0KDQpyZWN1cF83XzAgPC0gcmVjdXBfNyAlPiUgZmlsdGVyKGFubz09MSkNCmdncGxvdChhZXMoeSA9IHRvdGFsX2NhZGV0ZXMsIHggPSBkaXNjaXBsaW5hLCBmaWxsPXJlY3VwNyksIGRhdGEgPSByZWN1cF83XzApICsgZ2VvbV9jb2woKSsNCiAgbGFicyh0aXRsZT0iUmVjdXBlcmHDp8OjbyBjb20gbm90YSBDQSA8IDciLCBzdWJ0aXRsZT0iIiwgY2FwdGlvbj0iRm9udGU6IENhZGVpcmEgZGUgRXN0YXTDrXN0aWNhIC0gQU1BTiIpKyAgeGxhYigiRGlzY2lwbGluYSIpICsgeWxhYigiVG90YWwgZGUgY2FkZXRlcyIpICsgdGhlbWUgKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGZhY2U9ImJvbGQiLCBzaXplPTEyLGFuZ2xlPTkwKSkgKyAgZ2VvbV90ZXh0KGFlcyhsYWJlbD10b3RhbF9jYWRldGVzKSwgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDAuNSkpDQoNCnJlY3VwXzdfMCA8LSByZWN1cF83ICU+JSBmaWx0ZXIoYW5vPT0yKQ0KZ2dwbG90KGFlcyh5ID0gdG90YWxfY2FkZXRlcywgeCA9IGRpc2NpcGxpbmEsIGZpbGw9cmVjdXA3KSwgZGF0YSA9IHJlY3VwXzdfMCkgKyBnZW9tX2NvbCgpKw0KICBsYWJzKHRpdGxlPSJSZWN1cGVyYcOnw6NvIGNvbSBub3RhIENBIDwgNyIsIHN1YnRpdGxlPSIiLCBjYXB0aW9uPSJGb250ZTogQ2FkZWlyYSBkZSBFc3RhdMOtc3RpY2EgLSBBTUFOIikrICB4bGFiKCJEaXNjaXBsaW5hIikgKyB5bGFiKCJUb3RhbCBkZSBjYWRldGVzIikgKyB0aGVtZSAoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoZmFjZT0iYm9sZCIsIHNpemU9MTIsYW5nbGU9OTApKSArICBnZW9tX3RleHQoYWVzKGxhYmVsPXRvdGFsX2NhZGV0ZXMpLCBwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gMC41KSkNCg0KcmVjdXBfN18wIDwtIHJlY3VwXzcgJT4lIGZpbHRlcihhbm89PTMpDQpnZ3Bsb3QoYWVzKHkgPSB0b3RhbF9jYWRldGVzLCB4ID0gZGlzY2lwbGluYSwgZmlsbD1yZWN1cDcpLCBkYXRhID0gcmVjdXBfN18wKSArIGdlb21fY29sKCkrDQogIGxhYnModGl0bGU9IlJlY3VwZXJhw6fDo28gY29tIG5vdGEgQ0EgPCA3Iiwgc3VidGl0bGU9IiIsIGNhcHRpb249IkZvbnRlOiBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSAtIEFNQU4iKSsgIHhsYWIoIkRpc2NpcGxpbmEiKSArIHlsYWIoIlRvdGFsIGRlIGNhZGV0ZXMiKSArIHRoZW1lIChheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChmYWNlPSJib2xkIiwgc2l6ZT0xMixhbmdsZT05MCkpICsgIGdlb21fdGV4dChhZXMobGFiZWw9dG90YWxfY2FkZXRlcyksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpKQ0KDQpyZWN1cF83XzAgPC0gcmVjdXBfNyAlPiUgZmlsdGVyKGFubz09NCkNCmdncGxvdChhZXMoeSA9IHRvdGFsX2NhZGV0ZXMsIHggPSBkaXNjaXBsaW5hLCBmaWxsPXJlY3VwNyksIGRhdGEgPSByZWN1cF83XzApICsgZ2VvbV9jb2woKSsNCiAgbGFicyh0aXRsZT0iUmVjdXBlcmHDp8OjbyBjb20gbm90YSBDQSA8IDciLCBzdWJ0aXRsZT0iIiwgY2FwdGlvbj0iRm9udGU6IENhZGVpcmEgZGUgRXN0YXTDrXN0aWNhIC0gQU1BTiIpKyAgeGxhYigiRGlzY2lwbGluYSIpICsgeWxhYigiVG90YWwgZGUgY2FkZXRlcyIpICsgdGhlbWUgKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGZhY2U9ImJvbGQiLCBzaXplPTEyLGFuZ2xlPTkwKSkgKyAgZ2VvbV90ZXh0KGFlcyhsYWJlbD10b3RhbF9jYWRldGVzKSwgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDAuNSkpDQoNCmBgYA0KDQojIERlc2VtcGVuaG8gZG9zIGNhZGV0ZXMgZW0gZnVuw6fDo28gZGEgbm90YSBkZSBjb3J0ZSBwYXJhIFJlY3VwZXJhw6fDo28gKENBIDwgNSwwIGUvb3UgQ0EgPCA3LDApIA0KDQojIyBDb21vIGxlciBhIHRhYmVsYSBhIHNlZ3Vpcj8gDQoNCiAgICAgYW5vCWRpc2NpcGxpbmEJICByZWN1cDUJICByZWN1cDcJICB0b3RhbF9jYWRldGVzDQogICAgIDAJICAgQ8OhbGN1bG8gSQkgICBuw6NvCSAgICAgc2ltCSAgICAgICAxMTkNCg0KVGVtLXNlIDExOSBjYWRldGVzIHF1ZSBmaWNhcmlhbSBlbSByZWN1cGVyYcOnw6NvIG5hIGRpc2NpcGxpbmEgY8OhbGN1bG8gSSBzZSBhIG5vdGEgbcOtbmltYSBkZSBjb3J0ZSBwYXJhIHJlY3VwZXJhw6fDo28gYXVtZW50YXNzZSBkZSA1IHBhcmEgNw0KDQpgYGB7ciBmaWcuaGVpZ2h0PTgsIGZpZy53aWR0aD0xNH0NCiNuYW1lcyhub3RhcykNCnJlY3VwXzVfNyA8LSANCiAgbm90YXMgJT4lIGdyb3VwX2J5KGFubyxkaXNjaXBsaW5hLHJlY3VwNSxyZWN1cDcpICU+JSBzdW1tYXJpc2UodG90YWxfY2FkZXRlcz1uKCkpIA0KDQprYWJsZShyZWN1cF81XzcsIHJvdy5uYW1lcyA9IEYsbG9uZ3RhYmxlID0gVFJVRSwgYWxpZ249YygnYycsICdsJywgJ2MnLCAnYycpLGRpZ2l0cyA9MiwNCiAgICAgIGJvb2t0YWJzID0gVCwgY2FwdGlvbiA9ICdEZXNlbXBlbmhvIGRvcyBjYWRldGVzJywgZm9ybWF0LmFyZ3MgPSBsaXN0KGRlY2ltYWwubWFyayA9ICIsIikpDQoNCnJlY3VwNV83XzAgPC0gcmVjdXBfNV83ICU+JSBmaWx0ZXIoYW5vPT0wLHJlY3VwNT09Im7Do28iKQ0KZ2dwbG90KGFlcyh5ID0gdG90YWxfY2FkZXRlcywgeCA9IGRpc2NpcGxpbmEsIGZpbGw9cmVjdXA3KSwgZGF0YSA9IHJlY3VwNV83XzApICsgZ2VvbV9jb2woKSsNCiAgbGFicyh0aXRsZT0iQ2FkZXRlcyBxdWUgbsOjbyBmYXJpYW0gUmVjdXBlcmHDp8OjbyBjYXNvIGEgbm90YSBtw61uaW1hIGZvc3NlIDUsIG1hcyBmYXJpYW0gc2UgYSBub3RhIG3DrW5pbWEgZm9zc2UgQ0EgPCA3Iiwgc3VidGl0bGU9IiIsIGNhcHRpb249IkZvbnRlOiBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSAtIEFNQU4iKSsgIHhsYWIoIkRpc2NpcGxpbmEiKSArIHlsYWIoIlRvdGFsIGRlIGNhZGV0ZXMiKSArIHRoZW1lIChheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChmYWNlPSJib2xkIiwgc2l6ZT0xMixhbmdsZT05MCkpICsgIGdlb21fdGV4dChhZXMobGFiZWw9dG90YWxfY2FkZXRlcyksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpKQ0KDQpyZWN1cDVfN18wIDwtIHJlY3VwXzVfNyAlPiUgZmlsdGVyKGFubz09MSxyZWN1cDU9PSJuw6NvIikNCmdncGxvdChhZXMoeSA9IHRvdGFsX2NhZGV0ZXMsIHggPSBkaXNjaXBsaW5hLCBmaWxsPXJlY3VwNyksIGRhdGEgPSByZWN1cDVfN18wKSArIGdlb21fY29sKCkrDQogIGxhYnModGl0bGU9IkNhZGV0ZXMgcXVlIG7Do28gZmFyaWFtIFJlY3VwZXJhw6fDo28gY2FzbyBhIG5vdGEgbcOtbmltYSBmb3NzZSA1LCBtYXMgZmFyaWFtIHNlIGEgbm90YSBtw61uaW1hIGZvc3NlIENBIDwgNyIsIHN1YnRpdGxlPSIiLCBjYXB0aW9uPSJGb250ZTogQ2FkZWlyYSBkZSBFc3RhdMOtc3RpY2EgLSBBTUFOIikrICB4bGFiKCJEaXNjaXBsaW5hIikgKyB5bGFiKCJUb3RhbCBkZSBjYWRldGVzIikgKyB0aGVtZSAoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoZmFjZT0iYm9sZCIsIHNpemU9MTIsYW5nbGU9OTApKSArICBnZW9tX3RleHQoYWVzKGxhYmVsPXRvdGFsX2NhZGV0ZXMpLCBwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gMC41KSkNCg0KcmVjdXA1XzdfMCA8LSByZWN1cF81XzcgJT4lIGZpbHRlcihhbm89PTIscmVjdXA1PT0ibsOjbyIpDQpnZ3Bsb3QoYWVzKHkgPSB0b3RhbF9jYWRldGVzLCB4ID0gZGlzY2lwbGluYSwgZmlsbD1yZWN1cDcpLCBkYXRhID0gcmVjdXA1XzdfMCkgKyBnZW9tX2NvbCgpKw0KICBsYWJzKHRpdGxlPSJDYWRldGVzIHF1ZSBuw6NvIGZhcmlhbSBSZWN1cGVyYcOnw6NvIGNhc28gYSBub3RhIG3DrW5pbWEgZm9zc2UgNSwgbWFzIGZhcmlhbSBzZSBhIG5vdGEgbcOtbmltYSBmb3NzZSBDQSA8IDciLCBzdWJ0aXRsZT0iIiwgY2FwdGlvbj0iRm9udGU6IENhZGVpcmEgZGUgRXN0YXTDrXN0aWNhIC0gQU1BTiIpKyAgeGxhYigiRGlzY2lwbGluYSIpICsgeWxhYigiVG90YWwgZGUgY2FkZXRlcyIpICsgdGhlbWUgKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGZhY2U9ImJvbGQiLCBzaXplPTEyLGFuZ2xlPTkwKSkgKyAgZ2VvbV90ZXh0KGFlcyhsYWJlbD10b3RhbF9jYWRldGVzKSwgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDAuNSkpDQoNCnJlY3VwNV83XzAgPC0gcmVjdXBfNV83ICU+JSBmaWx0ZXIoYW5vPT0zLHJlY3VwNT09Im7Do28iKQ0KZ2dwbG90KGFlcyh5ID0gdG90YWxfY2FkZXRlcywgeCA9IGRpc2NpcGxpbmEsIGZpbGw9cmVjdXA3KSwgZGF0YSA9IHJlY3VwNV83XzApICsgZ2VvbV9jb2woKSsNCiAgbGFicyh0aXRsZT0iQ2FkZXRlcyBxdWUgbsOjbyBmYXJpYW0gUmVjdXBlcmHDp8OjbyBjYXNvIGEgbm90YSBtw61uaW1hIGZvc3NlIDUsIG1hcyBmYXJpYW0gc2UgYSBub3RhIG3DrW5pbWEgZm9zc2UgQ0EgPCA3Iiwgc3VidGl0bGU9IiIsIGNhcHRpb249IkZvbnRlOiBDYWRlaXJhIGRlIEVzdGF0w61zdGljYSAtIEFNQU4iKSsgIHhsYWIoIkRpc2NpcGxpbmEiKSArIHlsYWIoIlRvdGFsIGRlIGNhZGV0ZXMiKSArIHRoZW1lIChheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChmYWNlPSJib2xkIiwgc2l6ZT0xMixhbmdsZT05MCkpICsgIGdlb21fdGV4dChhZXMobGFiZWw9dG90YWxfY2FkZXRlcyksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpKQ0KDQpyZWN1cDVfN18wIDwtIHJlY3VwXzVfNyAlPiUgZmlsdGVyKGFubz09NCxyZWN1cDU9PSJuw6NvIikNCmdncGxvdChhZXMoeSA9IHRvdGFsX2NhZGV0ZXMsIHggPSBkaXNjaXBsaW5hLCBmaWxsPXJlY3VwNyksIGRhdGEgPSByZWN1cDVfN18wKSArIGdlb21fY29sKCkrDQogIGxhYnModGl0bGU9IkNhZGV0ZXMgcXVlIG7Do28gZmFyaWFtIFJlY3VwZXJhw6fDo28gY2FzbyBhIG5vdGEgbcOtbmltYSBmb3NzZSA1LCBtYXMgZmFyaWFtIHNlIGEgbm90YSBtw61uaW1hIGZvc3NlIENBIDwgNyIsIHN1YnRpdGxlPSIiLCBjYXB0aW9uPSJGb250ZTogQ2FkZWlyYSBkZSBFc3RhdMOtc3RpY2EgLSBBTUFOIikrICB4bGFiKCJEaXNjaXBsaW5hIikgKyB5bGFiKCJUb3RhbCBkZSBjYWRldGVzIikgKyB0aGVtZSAoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoZmFjZT0iYm9sZCIsIHNpemU9MTIsYW5nbGU9OTApKSArICBnZW9tX3RleHQoYWVzKGxhYmVsPXRvdGFsX2NhZGV0ZXMpLCBwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gMC41KSkNCg0KDQoNCg0KYGBgDQoNCg==