Data
library(haven)
ddi <- read_ipums_ddi("/Volumes/Jyoti/Stat 2 /PROJECT/nhis_00013.xml")
data <- read_ipums_micro(ddi)
## Use of data from IPUMS NHIS is subject to conditions including that users
## should cite the data appropriately. Use command `ipums_conditions()` for more
## details.
data<- haven::zap_labels(data)
names(data) <- tolower(gsub(pattern = "_",replacement = "",x = names(data)))
Recode the variables
data<- filter(data, data$pregnantnow ==2)
#depression level
data$depfeelevl<-as.factor(data$depfeelevl)
data$depfeelevl<- car::Recode(data$depfeelevl,
recodes="1='ALot'; 2='A Little';
3='Between a Little and a Lot'; 7:9=NA; else=NA",
as.factor=T)
# medication for depression
data$deprx <- as.factor(data$deprx)
data$deprx<- car::Recode(data$deprx,
recodes="1='No'; 2='Yes';else=NA",
as.factor=T)
#currently Pregnant
data$pregnantnow<-as.factor(data$pregnantnow)
data$curpreg<-car::Recode(data$pregnantnow,
recodes="2='Yes';else=NA",
as.factor=T)
data$educ<-Recode(data$educ,
recodes="100:116 ='Less than HS'; 200:202='HS Diploma/GED'; 300:303='Some college';400= 'Undergraduate Degree'; 500:503:= 'Graduate Degree';else=NA", as.factor = T)
data$educ<-as.factor(data$educ)
#employment status
data$empstat<- car::Recode(data$empstat,
recodes="100='Employed'; 200='Unemployed';else=NA",
as.factor=T)
# income grouping
data$famtotinc_cat<-Recode(data$famtotinc, recodes = "0:49999='Less than 50k'; 50000:99999='50-100k';100000:149999='100-150k';150000:199999='150-200k';200000:250000='200-250k';else=NA", as.factor = T)
data$famtotinc_cat<-as.ordered(data$famtotinc)
##race
data$race<- car::Recode(data$racea,
recodes="100 ='White'; 200 ='African American';
400:590= 'Asian/Others'; else=NA",
as.factor=T)
#race/ethnicity
data$black<- car::Recode(data$hisprace,
recodes="03=1; 99=NA; else=0")
data$white<- car::Recode(data$hisprace,
recodes="02=1; 99=NA; else=0")
data$other<- car::Recode(data$hisprace,
recodes="4:7=1; 99=NA; else=0")
data$hispanic<- car::Recode(data$hisprace,
recodes="01=1; 99=NA; else=0")
data$hisprace<- as.factor(data$hisprace)
data$race_eth<-car::Recode(data$hisprace,
recodes="01='Hispanic'; 02='NH_White'; 03='NH_Black';04:07='NH_Other'; else=NA",
as.factor = T)
data$race_eth<-relevel(data$race_eth,
ref = "NH_White")
## marital status
data$mars<- car::Recode(data$marstat,
recodes ="10:13='Married'; 30:40='Divorced/Separated';
; 50='Never Married'; else=NA",
as.factor=T)
Filter data
data<-data%>%
filter(is.na(educ)==F)
data<-data%>%
filter(is.na(curpreg)==F)
data<-data%>%
filter(is.na(deprx)==F)
data<-data%>%
filter(is.na(empstat)==F)
data<-data%>%
filter(is.na(marstat)==F)
data<-data%>%
filter(is.na(race_eth)==F)
Survey design
#First we tell R our survey design
options(survey.lonely.psu = "adjust")
library(dplyr)
sub<-data%>%
select(curpreg, educ, deprx, empstat, race_eth, mars, sampweight,strata) %>%
filter( complete.cases(.))
#First we tell R our survey design
options(survey.lonely.psu = "adjust")
des<-svydesign(ids=~1,
strata=~strata,
weights=~sampweight,
data =sub)
## count education frequency
countedu <- sub %>%
group_by(educ)%>%
dplyr::summarise(numedu=n())
countedu
## count employment frequency
countemp <- sub %>%
group_by(empstat)%>%
dplyr::summarise(numemp=n())
countemp
## count marital status frequency
countmar <- sub %>%
group_by(mars)%>%
dplyr::summarise(nummar=n())
countmar
label(data$depfeelevl) <- "Depression Level"
label(data$deprx) <- "Medication for Depression"
label(data$pregnantnow) <-"Currently Pregnant"
label(data$educ) <- "Education Level"
label(data$empstat)<- "Employment Status"
label(data$race_eth)<- "Race/Ethnicity"
label(data$mars)<- "Marital Status"
Results
## Table 1: Demographic Characteristics of currently pregnant women who are either taking or not taking prescription medication for depression
table<-table1(~ educ + empstat + race_eth + mars | deprx, data=sub)
table
|
No (N=202) |
Yes (N=20) |
Overall (N=222) |
| educ |
|
|
|
| Graduate Degree |
32 (15.8%) |
4 (20.0%) |
36 (16.2%) |
| HS Diploma/GED |
33 (16.3%) |
2 (10.0%) |
35 (15.8%) |
| Less than HS |
14 (6.9%) |
1 (5.0%) |
15 (6.8%) |
| Some college |
54 (26.7%) |
10 (50.0%) |
64 (28.8%) |
| Undergraduate Degree |
69 (34.2%) |
3 (15.0%) |
72 (32.4%) |
| empstat |
|
|
|
| Employed |
153 (75.7%) |
15 (75.0%) |
168 (75.7%) |
| Unemployed |
49 (24.3%) |
5 (25.0%) |
54 (24.3%) |
| race_eth |
|
|
|
| NH_White |
129 (63.9%) |
17 (85.0%) |
146 (65.8%) |
| Hispanic |
35 (17.3%) |
3 (15.0%) |
38 (17.1%) |
| NH_Black |
18 (8.9%) |
0 (0%) |
18 (8.1%) |
| NH_Other |
20 (9.9%) |
0 (0%) |
20 (9.0%) |
| mars |
|
|
|
| Divorced/Separated |
10 (5.0%) |
1 (5.0%) |
11 (5.0%) |
| Married |
140 (69.3%) |
13 (65.0%) |
153 (68.9%) |
| Never Married |
52 (25.7%) |
6 (30.0%) |
58 (26.1%) |
## Figure 1: Depression Among currently Pregnant Women by Education
Fig1 <- ggplot(data = sub, aes(x=educ, fill=deprx)) +
geom_bar(position='fill')+
geom_text(data=countedu,
aes(x=educ, y=0.05, label=numedu),
size=5, colour="white", inherit.aes=FALSE)+
labs(title="Depression medication among currently pregnant women
by Education",
x="Education", y = "Population Proportion", fill ="Legend")+
theme(legend.position="right")
Fig1

## Figure 2: Depression Among Currently Pregnant Women by Employment Status
Fig2 <- ggplot(data = sub, aes(x=empstat, fill=deprx)) +
geom_bar(position='fill')+
geom_text(data=countemp,
aes(x=empstat, y=0.05, label=numemp),
size=5, colour="white", inherit.aes=FALSE)+
labs(title="Depression medication among currently pregnant women by Employment Status",
x="Employment", y = "Population Proportion", fill ="Legend")+
theme(legend.position="right")
Fig2

# Figure 3: Depression Among Currently Pregnant Women by Marital Status
Fig3 <- ggplot(data = sub, aes(x=mars, fill=deprx)) +
geom_bar(position='fill')+
geom_text(data=countmar,
aes(x=mars, y=0.05, label=nummar),
size=5, colour="white", inherit.aes=FALSE)+
labs(title="Depression medication among currently pregnant women by Marital Status",
x="Marital Status", y = "Population Proportion", fill ="Legend")+
theme(legend.position="right")
Fig3

LS0tCnRpdGxlOiAiUHJlbmF0YWwgRGVwcmVzc2lvbiwgRGVzY3JpcHRpdmUiCmF1dGhvcjogIkp5b3RpIE5lcGFsLCBNU1ciCmRhdGU6ICAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclZCAlQiwgJVknKWAiCm91dHB1dDoKICAgaHRtbF9kb2N1bWVudDoKICAgIGRmX3ByaW50OiBwYWdlZAogICAgZmlnX2hlaWdodDogNwogICAgZmlnX3dpZHRoOiA3CiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKLS0tCgpgYGB7ciBpbmNsdWRlPUZBTFNFfQpsaWJyYXJ5KHN0YXJnYXplciwgcXVpZXRseSA9IFQpCmxpYnJhcnkoc3VydmV5LCBxdWlldGx5ID0gVCkKbGlicmFyeShjYXIsIHF1aWV0bHkgPSBUKQpsaWJyYXJ5KHF1ZXN0aW9uciwgcXVpZXRseSA9IFQpCmxpYnJhcnkoZHBseXIsIHF1aWV0bHkgPSBUKQpsaWJyYXJ5KGZvcmNhdHMsIHF1aWV0bHkgPSBUKQpsaWJyYXJ5KHRpZHl2ZXJzZSwgcXVpZXRseSA9IFQpCmxpYnJhcnkoc3J2eXIsIHF1aWV0bHkgPSBUKQpsaWJyYXJ5KGd0c3VtbWFyeSwgcXVpZXRseSA9IFQpCmxpYnJhcnkoY2FyZXQsIHF1aWV0bHkgPSBUKQpsaWJyYXJ5KGlwdW1zciwgcXVpZXRseSA9IFQpCmxpYnJhcnkodGFibGUxLCBxdWlldGx5ID0gVCkKbGlicmFyeShnZ3Bsb3QyLCBxdWlldGx5ID0gVCkKYGBgCgojIyMgRGF0YQpgYGB7cn0KbGlicmFyeShoYXZlbikKCmRkaSA8LSByZWFkX2lwdW1zX2RkaSgiL1ZvbHVtZXMvSnlvdGkvU3RhdCAyIC9QUk9KRUNUL25oaXNfMDAwMTMueG1sIikKZGF0YSA8LSByZWFkX2lwdW1zX21pY3JvKGRkaSkKZGF0YTwtIGhhdmVuOjp6YXBfbGFiZWxzKGRhdGEpCgpuYW1lcyhkYXRhKSA8LSB0b2xvd2VyKGdzdWIocGF0dGVybiA9ICJfIixyZXBsYWNlbWVudCA9ICAiIix4ID0gIG5hbWVzKGRhdGEpKSkKCmBgYAoKIyMgUmVjb2RlIHRoZSB2YXJpYWJsZXMKYGBge3J9CmRhdGE8LSBmaWx0ZXIoZGF0YSwgZGF0YSRwcmVnbmFudG5vdyA9PTIpCgoKI2RlcHJlc3Npb24gbGV2ZWwKZGF0YSRkZXBmZWVsZXZsPC1hcy5mYWN0b3IoZGF0YSRkZXBmZWVsZXZsKQpkYXRhJGRlcGZlZWxldmw8LSBjYXI6OlJlY29kZShkYXRhJGRlcGZlZWxldmwsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjb2Rlcz0iMT0nQUxvdCc7IDI9J0EgTGl0dGxlJzsgCiAgICAgICAgICAgICAgICAgICAgICAgMz0nQmV0d2VlbiBhIExpdHRsZSBhbmQgYSBMb3QnOyA3Ojk9TkE7IGVsc2U9TkEiLAogICAgICAgICAgICAgICAgICAgICAgYXMuZmFjdG9yPVQpCgoKIyBtZWRpY2F0aW9uIGZvciBkZXByZXNzaW9uCmRhdGEkZGVwcnggPC0gYXMuZmFjdG9yKGRhdGEkZGVwcngpCgpkYXRhJGRlcHJ4PC0gY2FyOjpSZWNvZGUoZGF0YSRkZXByeCwKICAgICAgICAgICAgICAgICAgICAgICByZWNvZGVzPSIxPSdObyc7IDI9J1llcyc7ZWxzZT1OQSIsCiAgICAgICAgICAgICAgICAgICAgICAgYXMuZmFjdG9yPVQpCgoKCiNjdXJyZW50bHkgUHJlZ25hbnQgCmRhdGEkcHJlZ25hbnRub3c8LWFzLmZhY3RvcihkYXRhJHByZWduYW50bm93KQpkYXRhJGN1cnByZWc8LWNhcjo6UmVjb2RlKGRhdGEkcHJlZ25hbnRub3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2Rlcz0iMj0nWWVzJztlbHNlPU5BIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5mYWN0b3I9VCkKICAgICAgICAKZGF0YSRlZHVjPC1SZWNvZGUoZGF0YSRlZHVjLAogICAgICAgICAgICAgICAgICAgICAgICByZWNvZGVzPSIxMDA6MTE2ID0nTGVzcyB0aGFuIEhTJzsgMjAwOjIwMj0nSFMgRGlwbG9tYS9HRUQnOyAzMDA6MzAzPSdTb21lIGNvbGxlZ2UnOzQwMD0gJ1VuZGVyZ3JhZHVhdGUgRGVncmVlJzsgNTAwOjUwMzo9ICdHcmFkdWF0ZSBEZWdyZWUnO2Vsc2U9TkEiLCBhcy5mYWN0b3IgPSBUKQpkYXRhJGVkdWM8LWFzLmZhY3RvcihkYXRhJGVkdWMpCgoKCiNlbXBsb3ltZW50IHN0YXR1cwoKZGF0YSRlbXBzdGF0PC0gY2FyOjpSZWNvZGUoZGF0YSRlbXBzdGF0LAogICAgICAgICAgICAgICAgICAgICAgIHJlY29kZXM9IjEwMD0nRW1wbG95ZWQnOyAyMDA9J1VuZW1wbG95ZWQnO2Vsc2U9TkEiLAogICAgICAgICAgICAgICAgICAgICAgIGFzLmZhY3Rvcj1UKQoKCiMgaW5jb21lIGdyb3VwaW5nCgpkYXRhJGZhbXRvdGluY19jYXQ8LVJlY29kZShkYXRhJGZhbXRvdGluYywgcmVjb2RlcyA9ICIwOjQ5OTk5PSdMZXNzIHRoYW4gNTBrJzsgNTAwMDA6OTk5OTk9JzUwLTEwMGsnOzEwMDAwMDoxNDk5OTk9JzEwMC0xNTBrJzsxNTAwMDA6MTk5OTk5PScxNTAtMjAwayc7MjAwMDAwOjI1MDAwMD0nMjAwLTI1MGsnO2Vsc2U9TkEiLCBhcy5mYWN0b3IgPSBUKQpkYXRhJGZhbXRvdGluY19jYXQ8LWFzLm9yZGVyZWQoZGF0YSRmYW10b3RpbmMpCgoKIyNyYWNlCmRhdGEkcmFjZTwtIGNhcjo6UmVjb2RlKGRhdGEkcmFjZWEsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjb2Rlcz0iMTAwID0nV2hpdGUnOyAyMDAgPSdBZnJpY2FuIEFtZXJpY2FuJzsgCiAgICAgICAgICAgICAgICAgICAgICAgNDAwOjU5MD0gJ0FzaWFuL090aGVycyc7IGVsc2U9TkEiLCAKICAgICAgICAgICAgICAgICAgICAgICBhcy5mYWN0b3I9VCkKCgojcmFjZS9ldGhuaWNpdHkKZGF0YSRibGFjazwtIGNhcjo6UmVjb2RlKGRhdGEkaGlzcHJhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjb2Rlcz0iMDM9MTsgOTk9TkE7IGVsc2U9MCIpCgpkYXRhJHdoaXRlPC0gY2FyOjpSZWNvZGUoZGF0YSRoaXNwcmFjZSwKICAgICAgICAgICAgICAgICAgICAgICByZWNvZGVzPSIwMj0xOyA5OT1OQTsgZWxzZT0wIikKCmRhdGEkb3RoZXI8LSBjYXI6OlJlY29kZShkYXRhJGhpc3ByYWNlLAogICAgICAgICAgICAgICAgICAgICAgcmVjb2Rlcz0iNDo3PTE7IDk5PU5BOyBlbHNlPTAiKQoKZGF0YSRoaXNwYW5pYzwtIGNhcjo6UmVjb2RlKGRhdGEkaGlzcHJhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjb2Rlcz0iMDE9MTsgOTk9TkE7IGVsc2U9MCIpCgpkYXRhJGhpc3ByYWNlPC0gYXMuZmFjdG9yKGRhdGEkaGlzcHJhY2UpCgpkYXRhJHJhY2VfZXRoPC1jYXI6OlJlY29kZShkYXRhJGhpc3ByYWNlLApyZWNvZGVzPSIwMT0nSGlzcGFuaWMnOyAwMj0nTkhfV2hpdGUnOyAwMz0nTkhfQmxhY2snOzA0OjA3PSdOSF9PdGhlcic7IGVsc2U9TkEiLAphcy5mYWN0b3IgPSBUKQpkYXRhJHJhY2VfZXRoPC1yZWxldmVsKGRhdGEkcmFjZV9ldGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmID0gIk5IX1doaXRlIikKCiMjIG1hcml0YWwgc3RhdHVzCmRhdGEkbWFyczwtIGNhcjo6UmVjb2RlKGRhdGEkbWFyc3RhdCwgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29kZXMgPSIxMDoxMz0nTWFycmllZCc7IDMwOjQwPSdEaXZvcmNlZC9TZXBhcmF0ZWQnOyAKICAgICAgICAgICAgICAgICAgICAgICAgOyA1MD0nTmV2ZXIgTWFycmllZCc7IGVsc2U9TkEiLCAKICAgICAgICAgICAgICAgICAgICAgICAgYXMuZmFjdG9yPVQpCgoKYGBgCgojIyBGaWx0ZXIgZGF0YQpgYGB7cn0KZGF0YTwtZGF0YSU+JQogIGZpbHRlcihpcy5uYShlZHVjKT09RikKZGF0YTwtZGF0YSU+JQogIGZpbHRlcihpcy5uYShjdXJwcmVnKT09RikKZGF0YTwtZGF0YSU+JQogIGZpbHRlcihpcy5uYShkZXByeCk9PUYpCmRhdGE8LWRhdGElPiUKICBmaWx0ZXIoaXMubmEoZW1wc3RhdCk9PUYpCmRhdGE8LWRhdGElPiUKICBmaWx0ZXIoaXMubmEobWFyc3RhdCk9PUYpCmRhdGE8LWRhdGElPiUKICBmaWx0ZXIoaXMubmEocmFjZV9ldGgpPT1GKQpgYGAKCgojIyBTdXJ2ZXkgZGVzaWduCmBgYHtyfQojRmlyc3Qgd2UgdGVsbCBSIG91ciBzdXJ2ZXkgZGVzaWduCm9wdGlvbnMoc3VydmV5LmxvbmVseS5wc3UgPSAiYWRqdXN0IikKCmxpYnJhcnkoZHBseXIpCnN1YjwtZGF0YSU+JQogIHNlbGVjdChjdXJwcmVnLCBlZHVjLCBkZXByeCwgZW1wc3RhdCwgcmFjZV9ldGgsIG1hcnMsIHNhbXB3ZWlnaHQsc3RyYXRhKSAlPiUKICBmaWx0ZXIoIGNvbXBsZXRlLmNhc2VzKC4pKQoKCiNGaXJzdCB3ZSB0ZWxsIFIgb3VyIHN1cnZleSBkZXNpZ24KCm9wdGlvbnMoc3VydmV5LmxvbmVseS5wc3UgPSAiYWRqdXN0IikKZGVzPC1zdnlkZXNpZ24oaWRzPX4xLAogICAgICAgICAgICAgICBzdHJhdGE9fnN0cmF0YSwKICAgICAgICAgICAgICAgd2VpZ2h0cz1+c2FtcHdlaWdodCwKICAgICAgICAgICAgICAgZGF0YSA9c3ViKQoKYGBgCgoKYGBge3J9CiMjIGNvdW50IGVkdWNhdGlvbiBmcmVxdWVuY3kKY291bnRlZHUgPC0gc3ViICU+JSAKICBncm91cF9ieShlZHVjKSU+JQpkcGx5cjo6c3VtbWFyaXNlKG51bWVkdT1uKCkpCmNvdW50ZWR1CgojIyBjb3VudCBlbXBsb3ltZW50IGZyZXF1ZW5jeQpjb3VudGVtcCA8LSBzdWIgJT4lIAogIGdyb3VwX2J5KGVtcHN0YXQpJT4lCmRwbHlyOjpzdW1tYXJpc2UobnVtZW1wPW4oKSkKY291bnRlbXAKCiMjIGNvdW50IG1hcml0YWwgc3RhdHVzIGZyZXF1ZW5jeQpjb3VudG1hciA8LSBzdWIgJT4lIAogIGdyb3VwX2J5KG1hcnMpJT4lCmRwbHlyOjpzdW1tYXJpc2UobnVtbWFyPW4oKSkKY291bnRtYXIKYGBgCgoKYGBge3J9CmxhYmVsKGRhdGEkZGVwZmVlbGV2bCkgPC0gIkRlcHJlc3Npb24gTGV2ZWwiCmxhYmVsKGRhdGEkZGVwcngpIDwtICJNZWRpY2F0aW9uIGZvciBEZXByZXNzaW9uIgpsYWJlbChkYXRhJHByZWduYW50bm93KSA8LSJDdXJyZW50bHkgUHJlZ25hbnQiCmxhYmVsKGRhdGEkZWR1YykgPC0gIkVkdWNhdGlvbiBMZXZlbCIKbGFiZWwoZGF0YSRlbXBzdGF0KTwtICJFbXBsb3ltZW50IFN0YXR1cyIKbGFiZWwoZGF0YSRyYWNlX2V0aCk8LSAiUmFjZS9FdGhuaWNpdHkiCmxhYmVsKGRhdGEkbWFycyk8LSAiTWFyaXRhbCBTdGF0dXMiCmBgYAoKCiMjIFJlc3VsdHMKYGBge3J9CiMjIFRhYmxlIDE6IERlbW9ncmFwaGljIENoYXJhY3RlcmlzdGljcyBvZiBjdXJyZW50bHkgcHJlZ25hbnQgd29tZW4gd2hvIGFyZSBlaXRoZXIgdGFraW5nIG9yIG5vdCB0YWtpbmcgcHJlc2NyaXB0aW9uIG1lZGljYXRpb24gZm9yIGRlcHJlc3Npb24KdGFibGU8LXRhYmxlMSh+IGVkdWMgKyBlbXBzdGF0ICsgcmFjZV9ldGggKyBtYXJzIHwgZGVwcngsIGRhdGE9c3ViKQp0YWJsZQpgYGAKCgoKYGBge3J9CiMjIEZpZ3VyZSAxOiBEZXByZXNzaW9uIEFtb25nIGN1cnJlbnRseSBQcmVnbmFudCBXb21lbiBieSBFZHVjYXRpb24KRmlnMSA8LSBnZ3Bsb3QoZGF0YSA9IHN1YiwgYWVzKHg9ZWR1YywgZmlsbD1kZXByeCkpICsgCiAgZ2VvbV9iYXIocG9zaXRpb249J2ZpbGwnKSsKICAgIGdlb21fdGV4dChkYXRhPWNvdW50ZWR1LCAKICAgICAgICAgICAgYWVzKHg9ZWR1YywgeT0wLjA1LCBsYWJlbD1udW1lZHUpLCAKICAgICAgICAgICAgc2l6ZT01LCBjb2xvdXI9IndoaXRlIiwgaW5oZXJpdC5hZXM9RkFMU0UpKwpsYWJzKHRpdGxlPSJEZXByZXNzaW9uIG1lZGljYXRpb24gYW1vbmcgY3VycmVudGx5IHByZWduYW50IHdvbWVuIAogICAgIGJ5IEVkdWNhdGlvbiIsIAogICAgICAgICB4PSJFZHVjYXRpb24iLCB5ID0gIlBvcHVsYXRpb24gUHJvcG9ydGlvbiIsIGZpbGwgPSJMZWdlbmQiKSsKICB0aGVtZShsZWdlbmQucG9zaXRpb249InJpZ2h0IikKRmlnMQpgYGAKCgoKCmBgYHtyfQojIyBGaWd1cmUgMjogRGVwcmVzc2lvbiBBbW9uZyBDdXJyZW50bHkgUHJlZ25hbnQgV29tZW4gYnkgRW1wbG95bWVudCBTdGF0dXMKRmlnMiA8LSBnZ3Bsb3QoZGF0YSA9IHN1YiwgYWVzKHg9ZW1wc3RhdCwgZmlsbD1kZXByeCkpICsgCiAgZ2VvbV9iYXIocG9zaXRpb249J2ZpbGwnKSsKICBnZW9tX3RleHQoZGF0YT1jb3VudGVtcCwgCiAgICAgICAgICAgIGFlcyh4PWVtcHN0YXQsIHk9MC4wNSwgbGFiZWw9bnVtZW1wKSwgCiAgICAgICAgICAgIHNpemU9NSwgY29sb3VyPSJ3aGl0ZSIsIGluaGVyaXQuYWVzPUZBTFNFKSsKICBsYWJzKHRpdGxlPSJEZXByZXNzaW9uIG1lZGljYXRpb24gYW1vbmcgY3VycmVudGx5IHByZWduYW50IHdvbWVuIGJ5IEVtcGxveW1lbnQgU3RhdHVzIiwgCiAgICAgICAgIHg9IkVtcGxveW1lbnQiLCB5ID0gIlBvcHVsYXRpb24gUHJvcG9ydGlvbiIsIGZpbGwgPSJMZWdlbmQiKSsKICB0aGVtZShsZWdlbmQucG9zaXRpb249InJpZ2h0IikKRmlnMgpgYGAKCgpgYGB7cn0KIyBGaWd1cmUgMzogRGVwcmVzc2lvbiBBbW9uZyBDdXJyZW50bHkgUHJlZ25hbnQgV29tZW4gYnkgTWFyaXRhbCBTdGF0dXMKRmlnMyA8LSBnZ3Bsb3QoZGF0YSA9IHN1YiwgYWVzKHg9bWFycywgZmlsbD1kZXByeCkpICsgCiAgZ2VvbV9iYXIocG9zaXRpb249J2ZpbGwnKSsKICBnZW9tX3RleHQoZGF0YT1jb3VudG1hciwgCiAgICAgICAgICAgIGFlcyh4PW1hcnMsIHk9MC4wNSwgbGFiZWw9bnVtbWFyKSwgCiAgICAgICAgICAgIHNpemU9NSwgY29sb3VyPSJ3aGl0ZSIsIGluaGVyaXQuYWVzPUZBTFNFKSsKICBsYWJzKHRpdGxlPSJEZXByZXNzaW9uIG1lZGljYXRpb24gYW1vbmcgY3VycmVudGx5IHByZWduYW50IHdvbWVuIGJ5IE1hcml0YWwgU3RhdHVzIiwgCiAgICAgICAgIHg9Ik1hcml0YWwgU3RhdHVzIiwgeSA9ICJQb3B1bGF0aW9uIFByb3BvcnRpb24iLCBmaWxsID0iTGVnZW5kIikrCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJyaWdodCIpCkZpZzMKYGBgCgo=