Utilizar el documento (el código de R) para responder a cada
pregunta.
Preguntas del estudio, en el contexto de los chances de ser admitido
a la UCLA:
¿Qué tan importante es realmente el inglés (toefl) para ser
aceptado en la UCLA, sobre todo si se toma en cuenta en conjunto con los
puntajes de GRE y cgpa?
¿Cuál es el odds ratio (OR) de ser admitido, entre los aplicantes
con experiencia en investigación y los que no tienen experiencia en
investigación?
Ranking de la universidad de orígen
- Cuáles son los chances (odds) de un aplicante que viene de una
unversidad de categoría dos (b) de ser admitido en la UCLA?
- Son los chances de ser admitido significativamente mayores si un
aplicante viene de una universidad de primera categoría, comparados con
los que vienen de otra universidad de segunda categoría?
- ¿Cuál es el papel de la experiencia en investigación, cuando se toma
en cuenta en en conjunto con el ranking de la universidad de origen? ¿La
importancia de la experiencia de investigación en la admisión, depende
del ranking de la universidad de origen?
Packages
if(!require(FSA)){install.packages("FSA")}
if(!require(tidyverse)){install.packages("tidyverse")}
if(!require(psych)){install.packages("psych")}
if(!require(lme4)){install.packages("lme4")}
if(!require(lmerTest)){install.packages("lmerTest")}
if(!require(nlme)){install.packages("nlme")}
if(!require(car)){install.packages("car")}
if(!require(plotly)){install.packages("plotly")}
if(!require(reshape2)){install.packages("reshape2")}
#
library(googlesheets4); gs4_deauth()
library(AICcmodavg)
library(tidyverse)
library(lme4)
library(psych)
library(plotly)
library(reshape2)
Datos
####en hoja Excel en G-Classroom [primera hoja]
ss='https://docs.google.com/spreadsheets/d/1mFSGQ_rKVKtO1_J4ifju8LFlHDaKpJ7YQW9LP12NSFc/edit?usp=sharing'
hoja='UCLA_admission'
rango= 'B2:J402'
ucla.i <- read_sheet(ss,
col_names = TRUE,
sheet= hoja,
range= rango,
col_types = NULL,
na= "NA")
✔ Reading from Admission_UCLA.
✔ Range ''UCLA_admission'!B2:J402'.
ucla.i$admit.F <- as.factor(ucla.i$admit)
ucla.i$research.F <- as.factor(ucla.i$Research)
str(ucla.i)
tibble [400 × 11] (S3: tbl_df/tbl/data.frame)
$ gre : num [1:400] 337 324 316 322 314 330 321 308 302 323 ...
$ toefl : num [1:400] 118 107 104 110 103 115 109 101 102 108 ...
$ u.rating : num [1:400] 4 4 3 3 2 5 3 2 1 3 ...
$ u.rank.F : chr [1:400] "b" "b" "c" "c" ...
$ SOP : num [1:400] 4.5 4 3 3.5 2 4.5 3 3 2 3.5 ...
$ LOR : num [1:400] 4.5 4.5 3.5 2.5 3 3 4 4 1.5 3 ...
$ cgpa : num [1:400] 9.65 8.87 8 8.67 8.21 9.34 8.2 7.9 8 8.6 ...
$ Research : num [1:400] 1 1 1 1 0 1 1 0 0 0 ...
$ admit : num [1:400] 1 0 0 1 0 1 0 0 0 0 ...
$ admit.F : Factor w/ 2 levels "0","1": 2 1 1 2 1 2 1 1 1 1 ...
$ research.F: Factor w/ 2 levels "0","1": 2 2 2 2 1 2 2 1 1 1 ...
Plots
GRE.
Admitidos Vrs. NO dmitidos . gre - toefl - SOP - LOR - cgpa
data <- ucla.i[,c("gre", "toefl", "cgpa", "SOP", "LOR", "admit")]
tmp <- melt(data=data, id.vars = "admit")
p <- ggplot(tmp, aes(x= as.factor(admit), y = value, fill=factor(admit)))
p + geom_boxplot() +
geom_point(position = position_jitter(width= 0.2, height= 0.2 ), size=0.5 ) +
facet_wrap(~variable, scales="free_y")

NA
NA
Poner atención> Las cartas se califican en base a escalas
ordinales son prácticamente variables categóricas-ordinales.
Research experience
Admitidos Vrs. NO dmitidos [ admit.F ~ research.F ]
p <- ggplot(data= ucla.i, aes(x =research.F, y= admit.F, fill= admit.F) )
p +
geom_col()

University Ranking
Admitidos Vrs. NO dmitidos [admit.F~ u.rank.F]
p <- ggplot(data= ucla.i, aes(x = u.rank.F, y= admit.F, fill= admit.F) )
p +
geom_col()

GLM
Pregunta 1: ¿Qué tan importante es realmente el inglés (toefl) para
ser aceptado en la UCLA, sobre todo si se toma en cuenta en conjunto con
los puntajes de GRE y cgpa?
m.toefl <- glm(data= ucla.i, admit.F ~ toefl, family= binomial )
summary(m.toefl)
Call:
glm(formula = admit.F ~ toefl, family = binomial, data = ucla.i)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -55.77147 5.81613 -9.589 <2e-16 ***
toefl 0.50373 0.05286 9.530 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 502.99 on 399 degrees of freedom
Residual deviance: 246.85 on 398 degrees of freedom
AIC: 250.85
Number of Fisher Scoring iterations: 6
m.intx.toefl <- glm(data= ucla.i, admit.F ~ toefl + gre + cgpa, family= binomial )
summary(m.intx.toefl)
Call:
glm(formula = admit.F ~ toefl + gre + cgpa, family = binomial,
data = ucla.i)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -94.54004 13.20713 -7.158 8.17e-13 ***
toefl 0.11238 0.07275 1.545 0.1224
gre 0.08697 0.04629 1.879 0.0603 .
cgpa 6.08228 1.00226 6.069 1.29e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 502.99 on 399 degrees of freedom
Residual deviance: 156.45 on 396 degrees of freedom
AIC: 164.45
Number of Fisher Scoring iterations: 7
Pregunta 2: ¿Cuál es el odds ratio (OR) de ser admitido, entre los
aplicantes con experiencia en investigación y los que no tienen
experiencia en investigación?
m.research <- glm(data= ucla.i, admit.F ~ research.F, family= binomial )
summary(m.research)
Call:
glm(formula = admit.F ~ research.F, family = binomial, data = ucla.i)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.9503 0.3419 -8.628 <2e-16 ***
research.F1 3.1426 0.3679 8.542 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 502.99 on 399 degrees of freedom
Residual deviance: 373.15 on 398 degrees of freedom
AIC: 377.15
Number of Fisher Scoring iterations: 5
Plot: [admit ~ research]
p <- ggplot(data= ucla.i, aes(x = Research, y= admit))
p + geom_point(aes(col=admit), position = position_jitter(width=0.1, height =0.1 )) +
geom_smooth(method = "glm", method.args= list(family="binomial"))

Pregunta 3
Ranking de la universidad de orígen
a) Cuáles son los chances (odds) de un aplicante que viene de una
unversidad de categoría dos (b) de ser admitido en la UCLA?
b) Son los chances de ser admitido significativamente mayores si un
aplicante viene de una universidad de primera categoría, comparados con
los que vienen de otra universidad de segunda categoría?
m.uRank <- glm(data= ucla.i, admit.F ~ u.rank.F, family= binomial )
summary(m.uRank)
Call:
glm(formula = admit.F ~ u.rank.F, family = binomial, data = ucla.i)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.8718 0.3798 4.929 8.28e-07 ***
u.rank.Fb -1.1989 0.4524 -2.650 0.00805 **
u.rank.Fc -3.5458 0.4481 -7.913 2.51e-15 ***
u.rank.Fd -4.6952 0.5664 -8.290 < 2e-16 ***
u.rank.Fe -5.0907 1.0879 -4.679 2.88e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 502.99 on 399 degrees of freedom
Residual deviance: 312.51 on 395 degrees of freedom
AIC: 322.51
Number of Fisher Scoring iterations: 5
table(ucla.i$u.rank.F, ucla.i$admit.F)
0 1
a 8 52
b 25 49
c 112 21
d 101 6
e 25 1
(49/25)
[1] 1.96
(52/8)/(49/25)
[1] 3.316327
odds.b <- exp(m.uRank$coefficients[1]+m.uRank$coefficients[2])
OR.a.Vrs.b <- exp(m.uRank$coefficients[1])/exp(m.uRank$coefficients[1]+m.uRank$coefficients[2])
as.numeric(odds.b)
[1] 1.96
as.numeric(OR.a.Vrs.b)
[1] 3.316327
c) ¿Cuál es el papel de la experiencia en investigación, cuando se
toma en cuenta en en conjunto con el ranking de la universidad de
origen?
¿La importancia de la experiencia de investigación en la admisión,
depende del ranking de la universidad de origen?
m.intx <- glm(data= ucla.i, admit.F ~ u.rank.F * Research, family= binomial )
summary(m.intx)
Call:
glm(formula = admit.F ~ u.rank.F * Research, family = binomial,
data = ucla.i)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.9459 1.0690 -1.820 0.0687 .
u.rank.Fb 0.9343 1.2181 0.767 0.4431
u.rank.Fc -1.0330 1.2219 -0.845 0.3979
u.rank.Fd -2.3582 1.4685 -1.606 0.1083
u.rank.Fe -15.6202 863.3100 -0.018 0.9856
Research 5.8777 1.4705 3.997 6.41e-05 ***
u.rank.Fb:Research -3.6985 1.6115 -2.295 0.0217 *
u.rank.Fc:Research -3.9787 1.6085 -2.474 0.0134 *
u.rank.Fd:Research -3.2601 1.8474 -1.765 0.0776 .
u.rank.Fe:Research 10.3020 863.3113 0.012 0.9905
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 502.99 on 399 degrees of freedom
Residual deviance: 245.75 on 390 degrees of freedom
AIC: 265.75
Number of Fisher Scoring iterations: 16
#
p <- ggplot(data= ucla.i, aes(x = Research, y= admit, col= u.rank.F) )
p + geom_point(position = position_jitter(width=0.1, height =0.1 )) +
geom_smooth(method ="glm", method.args= list(family="binomial"), se=FALSE)

LS0tDQp0aXRsZTogIlRhcmVhX0FkbWlzc2lvbnMiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyMjIFV0aWxpemFyIGVsIGRvY3VtZW50byAoZWwgY8OzZGlnbyBkZSBSKSBwYXJhIHJlc3BvbmRlciBhIGNhZGEgcHJlZ3VudGEuDQoNCiMjIyMjIFByZWd1bnRhcyBkZWwgZXN0dWRpbywgZW4gZWwgY29udGV4dG8gZGUgbG9zIGNoYW5jZXMgZGUgc2VyIGFkbWl0aWRvIGEgbGEgVUNMQToNCg0KMS4gwr9RdcOpIHRhbiBpbXBvcnRhbnRlIGVzIHJlYWxtZW50ZSBlbCBpbmdsw6lzICh0b2VmbCkgcGFyYSBzZXIgYWNlcHRhZG8gZW4gbGEgVUNMQSwgc29icmUgdG9kbyBzaSBzZSB0b21hIGVuIGN1ZW50YSBlbiBjb25qdW50byBjb24gbG9zIHB1bnRhamVzIGRlIEdSRSB5IGNncGE/DQoNCjIuIMK/Q3XDoWwgZXMgZWwgb2RkcyByYXRpbyAoT1IpIGRlIHNlciBhZG1pdGlkbywgZW50cmUgbG9zIGFwbGljYW50ZXMgY29uIGV4cGVyaWVuY2lhIGVuIGludmVzdGlnYWNpw7NuIHkgbG9zIHF1ZSBubyB0aWVuZW4gZXhwZXJpZW5jaWEgZW4gaW52ZXN0aWdhY2nDs24/IA0KDQozLiBSYW5raW5nIGRlIGxhIHVuaXZlcnNpZGFkIGRlIG9yw61nZW4gDQphKSBDdcOhbGVzIHNvbiBsb3MgY2hhbmNlcyAob2RkcykgZGUgdW4gYXBsaWNhbnRlIHF1ZSB2aWVuZSBkZSB1bmEgdW52ZXJzaWRhZCBkZSBjYXRlZ29yw61hIGRvcyAoYikgZGUgc2VyIGFkbWl0aWRvIGVuIGxhIFVDTEE/IA0KYikgU29uIGxvcyBjaGFuY2VzIGRlIHNlciBhZG1pdGlkbyBzaWduaWZpY2F0aXZhbWVudGUgbWF5b3JlcyBzaSB1biBhcGxpY2FudGUgdmllbmUgZGUgdW5hIHVuaXZlcnNpZGFkIGRlIHByaW1lcmEgY2F0ZWdvcsOtYSwgY29tcGFyYWRvcyBjb24gbG9zIHF1ZSB2aWVuZW4gZGUgb3RyYSB1bml2ZXJzaWRhZCBkZSBzZWd1bmRhIGNhdGVnb3LDrWE/DQpjKSDCv0N1w6FsIGVzIGVsIHBhcGVsIGRlIGxhIGV4cGVyaWVuY2lhIGVuIGludmVzdGlnYWNpw7NuLCBjdWFuZG8gc2UgdG9tYSBlbiBjdWVudGEgZW4gZW4gY29uanVudG8gY29uIGVsIHJhbmtpbmcgZGUgbGEgdW5pdmVyc2lkYWQgZGUgb3JpZ2VuPw0Kwr9MYSBpbXBvcnRhbmNpYSBkZSBsYSBleHBlcmllbmNpYSBkZSBpbnZlc3RpZ2FjacOzbiBlbiBsYSBhZG1pc2nDs24sIGRlcGVuZGUgZGVsIHJhbmtpbmcgZGUgbGEgdW5pdmVyc2lkYWQgZGUgb3JpZ2VuPw0KDQojIyMgUGFja2FnZXMNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQppZighcmVxdWlyZShGU0EpKXtpbnN0YWxsLnBhY2thZ2VzKCJGU0EiKX0NCmlmKCFyZXF1aXJlKHRpZHl2ZXJzZSkpe2luc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpfQ0KaWYoIXJlcXVpcmUocHN5Y2gpKXtpbnN0YWxsLnBhY2thZ2VzKCJwc3ljaCIpfQ0KaWYoIXJlcXVpcmUobG1lNCkpe2luc3RhbGwucGFja2FnZXMoImxtZTQiKX0NCmlmKCFyZXF1aXJlKGxtZXJUZXN0KSl7aW5zdGFsbC5wYWNrYWdlcygibG1lclRlc3QiKX0NCmlmKCFyZXF1aXJlKG5sbWUpKXtpbnN0YWxsLnBhY2thZ2VzKCJubG1lIil9DQppZighcmVxdWlyZShjYXIpKXtpbnN0YWxsLnBhY2thZ2VzKCJjYXIiKX0NCmlmKCFyZXF1aXJlKHBsb3RseSkpe2luc3RhbGwucGFja2FnZXMoInBsb3RseSIpfQ0KaWYoIXJlcXVpcmUocmVzaGFwZTIpKXtpbnN0YWxsLnBhY2thZ2VzKCJyZXNoYXBlMiIpfQ0KDQojDQpsaWJyYXJ5KGdvb2dsZXNoZWV0czQpOyBnczRfZGVhdXRoKCkNCmxpYnJhcnkoQUlDY21vZGF2ZykNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShsbWU0KQ0KbGlicmFyeShwc3ljaCkNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShyZXNoYXBlMikNCmBgYCAgDQoNCiMjIERhdG9zIA0KIyMjI2VuIGhvamEgRXhjZWwgZW4gRy1DbGFzc3Jvb20gW3ByaW1lcmEgaG9qYV0NCmBgYHtyfQ0Kc3M9J2h0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFtRlNHUV9yS1ZLdE8xX0o0aWZqdThMRmxIRGFLcEo3WVFXOUxQMTJOU0ZjL2VkaXQ/dXNwPXNoYXJpbmcnDQpob2phPSdVQ0xBX2FkbWlzc2lvbicNCnJhbmdvPSAnQjI6SjQwMicNCnVjbGEuaSA8LSByZWFkX3NoZWV0KHNzLA0KICAgICAgICAgICAgICAgICAgY29sX25hbWVzID0gVFJVRSwNCiAgICAgICAgICAgICAgICAgIHNoZWV0PSBob2phLA0KICAgICAgICAgICAgICAgICAgcmFuZ2U9IHJhbmdvLA0KICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gTlVMTCwNCiAgICAgICAgICAgICAgICAgIG5hPSAiTkEiKQ0KdWNsYS5pJGFkbWl0LkYgPC0gYXMuZmFjdG9yKHVjbGEuaSRhZG1pdCkNCnVjbGEuaSRyZXNlYXJjaC5GIDwtIGFzLmZhY3Rvcih1Y2xhLmkkUmVzZWFyY2gpDQpzdHIodWNsYS5pKQ0KYGBgICANCiMjIFBsb3RzDQojIyMjIEdSRS4gDQojIyMjIyBBZG1pdGlkb3MgVnJzLiBOTyBkbWl0aWRvcyAuIGdyZSAtIHRvZWZsIC0gU09QIC0gTE9SIC0gY2dwYQ0KYGBge3IgLCBmaWcud2lkdGg9MTAsIGZpZy5oZWlnaHQ9OH0NCmRhdGEgPC0gdWNsYS5pWyxjKCJncmUiLCAidG9lZmwiLCAiY2dwYSIsICJTT1AiLCAiTE9SIiwgImFkbWl0IildDQp0bXAgPC0gbWVsdChkYXRhPWRhdGEsIGlkLnZhcnMgPSAiYWRtaXQiKQ0KDQpwIDwtIGdncGxvdCh0bXAsIGFlcyh4PSBhcy5mYWN0b3IoYWRtaXQpLCB5ID0gdmFsdWUsIGZpbGw9ZmFjdG9yKGFkbWl0KSkpDQpwICsgZ2VvbV9ib3hwbG90KCkgKw0KICBnZW9tX3BvaW50KHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoPSAwLjIsIGhlaWdodD0gMC4yICksIHNpemU9MC41ICkgKw0KICBmYWNldF93cmFwKH52YXJpYWJsZSwgc2NhbGVzPSJmcmVlX3kiKQ0KDQoNCmBgYCAgDQojIyMjIyBQb25lciBhdGVuY2nDs24+IExhcyBjYXJ0YXMgc2UgY2FsaWZpY2FuIGVuIGJhc2UgYSBlc2NhbGFzIG9yZGluYWxlcyBzb24gcHLDoWN0aWNhbWVudGUgdmFyaWFibGVzIGNhdGVnw7NyaWNhcy1vcmRpbmFsZXMuDQoNCiMjIyMgUmVzZWFyY2ggZXhwZXJpZW5jZQ0KIyMjIyMgQWRtaXRpZG9zIFZycy4gTk8gZG1pdGlkb3MgWyBhZG1pdC5GIH4gcmVzZWFyY2guRiBdDQpgYGB7ciwgZmlnLndpZHRoPTYsIGZpZy5oZWlnaHQ9NH0NCnAgPC0gZ2dwbG90KGRhdGE9IHVjbGEuaSwgYWVzKHggPXJlc2VhcmNoLkYsIHk9IGFkbWl0LkYsIGZpbGw9IGFkbWl0LkYpICkNCnAgKyANCiAgZ2VvbV9jb2woKQ0KYGBgICANCg0KIyMjIyBVbml2ZXJzaXR5IFJhbmtpbmcNCiMjIyMjIEFkbWl0aWRvcyBWcnMuIE5PIGRtaXRpZG9zIFthZG1pdC5GfiB1LnJhbmsuRl0NCmBgYHtyLCBmaWcud2lkdGg9NiwgZmlnLmhlaWdodD01fQ0KcCA8LSBnZ3Bsb3QoZGF0YT0gdWNsYS5pLCBhZXMoeCA9IHUucmFuay5GLCB5PSBhZG1pdC5GLCBmaWxsPSBhZG1pdC5GKSApDQpwICsgDQogIGdlb21fY29sKCkNCmBgYCAgDQoNCiMjIEdMTQ0KIyMjIyAgUHJlZ3VudGEgMTogwr9RdcOpIHRhbiBpbXBvcnRhbnRlIGVzIHJlYWxtZW50ZSBlbCBpbmdsw6lzICh0b2VmbCkgcGFyYSBzZXIgYWNlcHRhZG8gZW4gbGEgVUNMQSwgc29icmUgdG9kbyBzaSBzZSB0b21hIGVuIGN1ZW50YSBlbiBjb25qdW50byBjb24gbG9zIHB1bnRhamVzIGRlIEdSRSB5IGNncGE/DQpgYGB7cn0NCm0udG9lZmwgPC0gZ2xtKGRhdGE9IHVjbGEuaSwgYWRtaXQuRiB+IHRvZWZsLCBmYW1pbHk9IGJpbm9taWFsICkNCnN1bW1hcnkobS50b2VmbCkNCg0KbS5pbnR4LnRvZWZsIDwtIGdsbShkYXRhPSB1Y2xhLmksIGFkbWl0LkYgfiB0b2VmbCArIGdyZSArIGNncGEsIGZhbWlseT0gYmlub21pYWwgKQ0Kc3VtbWFyeShtLmludHgudG9lZmwpDQpgYGAgIA0KDQoNCiMjIyMgIFByZWd1bnRhIDI6IMK/Q3XDoWwgZXMgZWwgb2RkcyByYXRpbyAoT1IpIGRlIHNlciBhZG1pdGlkbywgZW50cmUgbG9zIGFwbGljYW50ZXMgY29uIGV4cGVyaWVuY2lhIGVuIGludmVzdGlnYWNpw7NuIHkgbG9zIHF1ZSBubyB0aWVuZW4gZXhwZXJpZW5jaWEgZW4gaW52ZXN0aWdhY2nDs24/ICANCmBgYHtyfQ0KbS5yZXNlYXJjaCA8LSBnbG0oZGF0YT0gdWNsYS5pLCBhZG1pdC5GIH4gcmVzZWFyY2guRiwgZmFtaWx5PSBiaW5vbWlhbCApDQpzdW1tYXJ5KG0ucmVzZWFyY2gpDQpgYGAgIA0KDQojIyMjIFBsb3Q6IFthZG1pdCB+IHJlc2VhcmNoXQ0KYGBge3J9DQpwIDwtIGdncGxvdChkYXRhPSB1Y2xhLmksIGFlcyh4ID0gUmVzZWFyY2gsIHk9IGFkbWl0KSkNCnAgKyBnZW9tX3BvaW50KGFlcyhjb2w9YWRtaXQpLCAgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGg9MC4xLCBoZWlnaHQgPTAuMSApKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJnbG0iLCBtZXRob2QuYXJncz0gbGlzdChmYW1pbHk9ImJpbm9taWFsIikpDQpgYGAgIA0KDQojIyMjIFByZWd1bnRhIDMNCiMjIyMjIFJhbmtpbmcgZGUgbGEgdW5pdmVyc2lkYWQgZGUgb3LDrWdlbiANCiMjIyMjIGEpIEN1w6FsZXMgc29uIGxvcyBjaGFuY2VzIChvZGRzKSBkZSB1biBhcGxpY2FudGUgcXVlIHZpZW5lIGRlIHVuYSB1bnZlcnNpZGFkIGRlIGNhdGVnb3LDrWEgZG9zIChiKSBkZSBzZXIgYWRtaXRpZG8gZW4gbGEgVUNMQT8gDQojIyMjIyBiKSBTb24gbG9zIGNoYW5jZXMgZGUgc2VyIGFkbWl0aWRvIHNpZ25pZmljYXRpdmFtZW50ZSBtYXlvcmVzIHNpIHVuIGFwbGljYW50ZSB2aWVuZSBkZSB1bmEgdW5pdmVyc2lkYWQgZGUgcHJpbWVyYSBjYXRlZ29yw61hLCBjb21wYXJhZG9zIGNvbiBsb3MgcXVlIHZpZW5lbiBkZSBvdHJhIHVuaXZlcnNpZGFkIGRlIHNlZ3VuZGEgY2F0ZWdvcsOtYT8gIA0KYGBge3J9DQptLnVSYW5rIDwtIGdsbShkYXRhPSB1Y2xhLmksIGFkbWl0LkYgfiB1LnJhbmsuRiwgZmFtaWx5PSBiaW5vbWlhbCApDQpzdW1tYXJ5KG0udVJhbmspDQoNCnRhYmxlKHVjbGEuaSR1LnJhbmsuRiwgdWNsYS5pJGFkbWl0LkYpDQoNCig0OS8yNSkNCg0KKDUyLzgpLyg0OS8yNSkNCg0Kb2Rkcy5iIDwtIGV4cChtLnVSYW5rJGNvZWZmaWNpZW50c1sxXSttLnVSYW5rJGNvZWZmaWNpZW50c1syXSkNCg0KT1IuYS5WcnMuYiA8LSBleHAobS51UmFuayRjb2VmZmljaWVudHNbMV0pL2V4cChtLnVSYW5rJGNvZWZmaWNpZW50c1sxXSttLnVSYW5rJGNvZWZmaWNpZW50c1syXSkNCg0KYXMubnVtZXJpYyhvZGRzLmIpDQoNCmFzLm51bWVyaWMoT1IuYS5WcnMuYikNCmBgYCAgDQojIyMjIyBjKSDCv0N1w6FsIGVzIGVsIHBhcGVsIGRlIGxhIGV4cGVyaWVuY2lhIGVuIGludmVzdGlnYWNpw7NuLCBjdWFuZG8gc2UgdG9tYSBlbiBjdWVudGEgZW4gZW4gY29uanVudG8gY29uIGVsIHJhbmtpbmcgZGUgbGEgdW5pdmVyc2lkYWQgZGUgb3JpZ2VuPw0KIyMjIyMgwr9MYSBpbXBvcnRhbmNpYSBkZSBsYSBleHBlcmllbmNpYSBkZSBpbnZlc3RpZ2FjacOzbiBlbiBsYSBhZG1pc2nDs24sIGRlcGVuZGUgZGVsIHJhbmtpbmcgZGUgbGEgdW5pdmVyc2lkYWQgZGUgb3JpZ2VuPw0KYGBge3J9DQptLmludHggPC0gZ2xtKGRhdGE9IHVjbGEuaSwgYWRtaXQuRiB+IHUucmFuay5GICogUmVzZWFyY2gsIGZhbWlseT0gYmlub21pYWwgKQ0Kc3VtbWFyeShtLmludHgpDQojDQpwIDwtIGdncGxvdChkYXRhPSB1Y2xhLmksIGFlcyh4ID0gUmVzZWFyY2gsIHk9IGFkbWl0LCBjb2w9IHUucmFuay5GKSApDQpwICsgZ2VvbV9wb2ludChwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcih3aWR0aD0wLjEsIGhlaWdodCA9MC4xICkpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0iZ2xtIiwgbWV0aG9kLmFyZ3M9IGxpc3QoZmFtaWx5PSJiaW5vbWlhbCIpLCBzZT1GQUxTRSkNCmBgYCAg