Percent Vacant housing units for 2011, Cenus Tracts, Harris County, TX
Vach11<-get_acs(geography = "tract",
state="TX",
county = "201",
year = 2011,
variables="DP04_0003P" ,
geometry = T,
output = "wide",
progress_bar=F ) %>%
mutate(PVHU = DP04_0003PE,
PVHU_er = DP04_0003PM/1.645,
PVHU_cv =100* (PVHU_er/PVHU)) %>%
filter(complete.cases(PVHU), is.finite(PVHU_cv)==T)%>%
select(GEOID, PVHU, PVHU_er,PVHU_cv)
head(Vach11)
Percent Vacant housing units for 2019, Census Tracts, Harris County, TX
Vach19<-get_acs(geography = "tract",
state="TX",
county = "201",
year = 2019,
variables="DP04_0003P" ,
geometry = T,
output = "wide",
progress_bar=F) %>%
mutate(PVHU19 = DP04_0003PE,
PVHU_er19 = DP04_0003PM/1.645,
PVHU_cv19 =100* (PVHU_er19/PVHU19)) %>%
filter(complete.cases(PVHU19), is.finite(PVHU_cv19)==T)%>%
select(GEOID, PVHU19, PVHU_er19,PVHU_cv19)
head(Vach19)
Mapping Percent Vacant Housing Units for 2011 & 2019, Census Tracts, Harris County, TX


Calculating the differences between the two years (2011 & 2019), including the test for significance of the differences
# Make one of the dataset a non sf class dataset
Vach19_df <- Vach19 %>%
data.frame() %>%
select(-geometry)
# Then merge the non sf class dataset to the sf class dataset
Vach1119 <- left_join(Vach11, Vach19_df, by=c("GEOID"="GEOID")) %>%
na.omit()
#calculate the change between the percent vacant housing unit in 2011 and 2019
diff1119<-acstest(names = Vach1119$GEOID,
geoid =Vach1119$GEOID,
est1 = Vach1119$PVHU,
est2 = Vach1119$PVHU19,
err1 = Vach1119$PVHU_er,
err2=Vach1119$PVHU_er19,
alpha = .1,
yr1 = 2011, yr2=2019,
span = 4)
# Then merge the diffences dataset with the Vach1119
Mergediff <- left_join(Vach1119, diff1119, by=c("GEOID"="geoid"))
head(Mergediff)
Mapping Differences In Percent Vacant Housing Units Between 2011 & 2019, Census Tracts, Harris County, TX

Mapping Test For Significance of the Changes In Percent Vacant Housing Units Between 2011 & 2019, Census Tracts, Harris County, TX

LS0tDQp0aXRsZTogIkdJUyBIb21ld29yayA0IC0gTWFwcGluZyBVc2luZyB0aGUgQW1lcmljYW4gQ29tbXVuaXR5IFN1cnZleSAtIENoYW5nZSBNYXBwaW5nIg0KYXV0aG9yOiAiU2Ftc29uIEEgT2xvd29sYWp1LCBNUEgiDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclZCAlQiwgJVknKWAiDQpvdXRwdXQ6DQogICBodG1sX2RvY3VtZW50Og0KICAgIGRmX3ByaW50OiBwYWdlZA0KICAgIGZpZ19oZWlnaHQ6IDcNCiAgICBmaWdfd2lkdGg6IDcNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgIGFsd2F5c19hbGxvd19odG1sOiB5ZXMNCi0tLQ0KDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkodGlkeWNlbnN1cykNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShzZikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoZ2dzbikNCmxpYnJhcnkocmlvKQ0KbGlicmFyeSh0bWFwKQ0KYGBgDQoNCg0KYGBge3IscmVzdWx0cz0naGlkZScsZWNobz1GQUxTRX0NCnYxMF9Qcm9maWxlIDwtIGxvYWRfdmFyaWFibGVzKDIwMTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWNzNS9wcm9maWxlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlID0gVFJVRSkgI2RlbW9ncmFwaGljIHByb2ZpbGUgdGFibGVzDQp2MTlfUHJvZmlsZSA8LSBsb2FkX3ZhcmlhYmxlcygyMDE5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFjczUvcHJvZmlsZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZSA9IFRSVUUpICNkZW1vZ3JhcGhpYyANCg0KI1NlYXJjaCBmb3IgdmFyaWFibGVzIGJ5IHVzaW5nIGdyZXAoKQ0KDQp2MTBfUHJvZmlsZVtncmVwKHggPSB2MTBfUHJvZmlsZSRsYWJlbCwNCiAgICAgICAgICAgICAgICAgIlZhY2FudCBob3VzaW5nIHVuaXRzIiwNCiAgICAgICAgICAgICAgICAgaWdub3JlLmNhc2UgPSBUUlVFKSwgDQogICAgICAgICAgICBjKCJuYW1lIiwgImxhYmVsIildDQoNCnYxOV9Qcm9maWxlW2dyZXAoeCA9IHYxOV9Qcm9maWxlJGxhYmVsLA0KICAgICAgICAgICAgICAgICAiVmFjYW50IGhvdXNpbmcgdW5pdHMiLA0KICAgICAgICAgICAgICAgICBpZ25vcmUuY2FzZSA9IFRSVUUpLA0KICAgICAgICAgICAgYygibmFtZSIsICJsYWJlbCIpXQ0KYGBgDQoNCg0KIyBQZXJjZW50IFZhY2FudCBob3VzaW5nIHVuaXRzIGZvciAyMDExLCBDZW51cyBUcmFjdHMsIEhhcnJpcyBDb3VudHksIFRYDQoNCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQpWYWNoMTE8LWdldF9hY3MoZ2VvZ3JhcGh5ID0gInRyYWN0IiwNCiAgICAgICAgICAgICAgICBzdGF0ZT0iVFgiLA0KICAgICAgICAgICAgICAgIGNvdW50eSA9ICIyMDEiLA0KICAgICAgICAgICAgICAgIHllYXIgPSAyMDExLA0KICAgICAgICAgICAgICAgIHZhcmlhYmxlcz0iRFAwNF8wMDAzUCIgLA0KICAgICAgICAgICAgICAgIGdlb21ldHJ5ID0gVCwNCiAgICAgICAgICAgICAgICBvdXRwdXQgPSAid2lkZSIsDQogICAgICAgICAgICAgICBwcm9ncmVzc19iYXI9RiApICU+JSAgDQogIG11dGF0ZShQVkhVID0gRFAwNF8wMDAzUEUsDQogICAgICAgICBQVkhVX2VyID0gRFAwNF8wMDAzUE0vMS42NDUsDQogICAgICAgICBQVkhVX2N2ID0xMDAqIChQVkhVX2VyL1BWSFUpKSAlPiUNCiAgZmlsdGVyKGNvbXBsZXRlLmNhc2VzKFBWSFUpLCBpcy5maW5pdGUoUFZIVV9jdik9PVQpJT4lDQogIHNlbGVjdChHRU9JRCwgUFZIVSwgUFZIVV9lcixQVkhVX2N2KQ0KDQpoZWFkKFZhY2gxMSkNCmBgYA0KDQojIFBlcmNlbnQgVmFjYW50IGhvdXNpbmcgdW5pdHMgZm9yIDIwMTksIENlbnN1cyBUcmFjdHMsIEhhcnJpcyBDb3VudHksIFRYIA0KDQpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NClZhY2gxOTwtZ2V0X2FjcyhnZW9ncmFwaHkgPSAidHJhY3QiLA0KICAgICAgICAgICAgICAgIHN0YXRlPSJUWCIsDQogICAgICAgICAgICAgICAgY291bnR5ID0gIjIwMSIsDQogICAgICAgICAgICAgICAgeWVhciA9IDIwMTksDQogICAgICAgICAgICAgICAgdmFyaWFibGVzPSJEUDA0XzAwMDNQIiAsDQogICAgICAgICAgICAgICAgZ2VvbWV0cnkgPSBULA0KICAgICAgICAgICAgICAgIG91dHB1dCA9ICJ3aWRlIiwNCiAgICAgICAgICAgICAgICBwcm9ncmVzc19iYXI9RikgJT4lICANCiAgbXV0YXRlKFBWSFUxOSA9IERQMDRfMDAwM1BFLA0KICAgICAgICAgUFZIVV9lcjE5ID0gRFAwNF8wMDAzUE0vMS42NDUsDQogICAgICAgICBQVkhVX2N2MTkgPTEwMCogKFBWSFVfZXIxOS9QVkhVMTkpKSAlPiUNCiAgZmlsdGVyKGNvbXBsZXRlLmNhc2VzKFBWSFUxOSksIGlzLmZpbml0ZShQVkhVX2N2MTkpPT1UKSU+JQ0KICBzZWxlY3QoR0VPSUQsIFBWSFUxOSwgUFZIVV9lcjE5LFBWSFVfY3YxOSkNCg0KaGVhZChWYWNoMTkpDQpgYGANCg0KIyAqKk1hcHBpbmcgUGVyY2VudCBWYWNhbnQgSG91c2luZyBVbml0cyBmb3IgMjAxMSAmIDIwMTksIENlbnN1cyBUcmFjdHMsIEhhcnJpcyBDb3VudHksIFRYKioNCg0KYGBge3IsZmlnLmFsaWduPSdjZW50ZXInLG91dC53aWR0aD0nMTAwJScsIGVjaG89RkFMU0V9DQoNCihwMSA8LSB0bV9zaGFwZShWYWNoMTEpKw0KICB0bV9wb2x5Z29ucyhjKCJQVkhVIiksDQogICAgICAgICAgICAgIHRpdGxlPWMoIiUgVmFjYW50IEhvdXNpbmcgVW5pdHMiKSwgDQogICAgICAgICAgICAgIHBhbGV0dGU9IkJsdWVzIiwNCiAgICAgICAgICAgICAgc3R5bGU9InF1YW50aWxlIiwNCiAgICAgICAgICAgICAgbj01KSsNCiAgdG1fc2NhbGVfYmFyKHBvc2l0aW9uID0gYygiTEVGVCIsICJCT1RUT00iKSkrDQogIHRtX2NvbXBhc3MoIHNpemUgPSAyLCBwb3NpdGlvbiA9IGMoInJpZ2h0IiwgInRvcCIpKSsNCiAgdG1fY3JlZGl0cygiRGF0YSBzb3VyY2U6XG4gQUNTIDV5ZWFyIEVzdGltYXRlcyIsDQogICAgICAgICAgICAgYWxpZ24gPSAicmlnaHQiLCANCiAgICAgICAgICAgICBwb3NpdGlvbj1jKCJyaWdodCIsICJCT1RUT00iKSxzaXplID0gMC41LCApICsgDQogIHRtX2xheW91dChtYWluLnRpdGxlID0gIlBlcmNlbnQgRXN0aW1hdGUgb2YgVmFjYW50IEhvdXNpbmcgVW5pdHMsIENlbnN1cyBUcmFjdHMsIEhhcnJpcyBDb3VudHksIFRYICgyMDA3LTIwMTEpICIsDQogICAgICAgICAgICBtYWluLnRpdGxlLmZvbnRmYW1pbHk9ICJzZXJpZiIsDQogICAgICAgICAgICBtYWluLnRpdGxlLmZvbnRmYWNlID0gImJvbGQiLA0KICAgICAgICAgICAgbWFpbi50aXRsZS5zaXplID0xLCANCiAgICAgICAgICAgIGxlZ2VuZC5mcmFtZSA9IFRSVUUsDQogICAgICAgICAgICBsZWdlbmQudGl0bGUuZm9udGZhY2UgPSAiYm9sZCIsDQogICAgICAgICAgICBsZWdlbmQudGl0bGUuc2l6ZSA9IC44LA0KICAgICAgICAgICAgdGl0bGUucG9zaXRpb24gPSBjKCdyaWdodCcsICd0b3AnKSwgDQogICAgICAgICAgICBpbm5lci5tYXJnaW5zPWMoLjA0LC4wMywgLjAyLCAuMDEpKSkNCg0KKHAyIDwtICB0bV9zaGFwZShWYWNoMTkpKw0KICB0bV9wb2x5Z29ucyhjKCJQVkhVMTkiKSwNCiAgICAgICAgICAgICAgdGl0bGU9YygiJSBWYWNhbnQgSG91c2luZyBVbml0cyIpLCANCiAgICAgICAgICAgICAgcGFsZXR0ZT0iQmx1ZXMiLA0KICAgICAgICAgICAgICBzdHlsZT0icXVhbnRpbGUiLA0KICAgICAgICAgICAgICBuPTUpKw0KICB0bV9zY2FsZV9iYXIocG9zaXRpb24gPSBjKCJMRUZUIiwgIkJPVFRPTSIpKSsNCiAgdG1fY29tcGFzcyggc2l6ZSA9IDIsIHBvc2l0aW9uID0gYygicmlnaHQiLCAidG9wIikpKw0KICB0bV9jcmVkaXRzKCJEYXRhIHNvdXJjZTpcbiBBQ1MgNXllYXIgRXN0aW1hdGVzIiwNCiAgICAgICAgICAgICBhbGlnbiA9ICJyaWdodCIsIA0KICAgICAgICAgICAgIHBvc2l0aW9uPWMoInJpZ2h0IiwgIkJPVFRPTSIpLHNpemUgPSAwLjUgKSArIA0KICB0bV9sYXlvdXQobWFpbi50aXRsZSA9ICJQZXJjZW50IEVzdGltYXRlIG9mIFZhY2FudCBIb3VzaW5nIFVuaXRzLCBDZW5zdXMgVHJhY3RzLCBIYXJyaXMgQ291bnR5LCBUWCAgKDIwMTUtMjAxOSkgIiwNCiAgICAgICAgICAgIG1haW4udGl0bGUuZm9udGZhbWlseT0gInNlcmlmIiwNCiAgICAgICAgICAgIG1haW4udGl0bGUuZm9udGZhY2UgPSAiYm9sZCIsDQogICAgICAgICAgICBtYWluLnRpdGxlLnNpemUgPTEsIA0KICAgICAgICAgICAgbGVnZW5kLmZyYW1lID0gVFJVRSwNCiAgICAgICAgICAgIGxlZ2VuZC50aXRsZS5mb250ZmFjZSA9ICJib2xkIiwNCiAgICAgICAgICAgIGxlZ2VuZC50aXRsZS5zaXplID0gLjgsDQogICAgICAgICAgICB0aXRsZS5wb3NpdGlvbiA9IGMoJ3JpZ2h0JywgJ3RvcCcpLCANCiAgICAgICAgICAgIGlubmVyLm1hcmdpbnM9YyguMDQsLjAzLCAuMDIsIC4wMSkpKQ0KDQpgYGANCg0KDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KIA0KIyBjcmVhdGluZyBhIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB0d28gb3V0Y29tZXMgDQogYWNzdGVzdDwtZnVuY3Rpb24obmFtZXMsZ2VvaWQsIGVzdDEsIGVycjEsIGVzdDIsIGVycjIsIGFscGhhLCB5cjEsIHlyMiwgc3Bhbil7DQogIA0KICBzZTE8LWVycjEvcW5vcm0oLjkwKQ0KICBzZTI8LWVycjIvcW5vcm0oLjkwKQ0KICB5cnMxPC1zZXEoeXIxLCB0bz15cjEtc3BhbikNCiAgeXJzMjwtc2VxKHlyMiwgdG89eXIyLXNwYW4pDQoNCiAgQzwtbWVhbih5cnMyJWluJXlyczEpDQogIGRpZmY8LSAoZXN0MS1lc3QyKQ0KICB0ZXN0PC0oZXN0MS1lc3QyKSAvIChzcXJ0KDEtQykqc3FydChzZTFeMitzZTJeMikpDQogIGNyaXQ8LXFub3JtKDEtYWxwaGEvMikNCiAgcHZhbDwtMS1wbm9ybShhYnModGVzdCkpDQogIHJlc3VsdDwtTlVMTA0KICByZXN1bHRbcHZhbCA+IGFscGhhXTwtIkluc2lnbmlmaWNhbnQgQ2hhbmdlIg0KICByZXN1bHRbcHZhbCA8IGFscGhhICYgdGVzdCA8IDBdPC0gIlNpZ25pZmljYW50IEluY3JlYXNlIg0KICByZXN1bHRbcHZhbCA8IGFscGhhICYgdGVzdCA+IDBdPC0iU2lnbmlmaWNhbnQgRGVjcmVhc2UiIA0KICANCiAgZGF0YS5mcmFtZShuYW1lPW5hbWVzLGdlb2lkPWdlb2lkLCBlc3QxPWVzdDEsIGVzdDI9ZXN0Miwgc2UxPXNlMSwgc2UyPXNlMixkaWZmZXJlbmNlPWRpZmYsIHRlc3Q9dGVzdCwgcmVzdWx0PXJlc3VsdCwgcHZhbD1wdmFsKQ0KfQ0KYGBgDQoNCiMgQ2FsY3VsYXRpbmcgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHR3byB5ZWFycyAoMjAxMSAmIDIwMTkpLCBpbmNsdWRpbmcgdGhlIHRlc3QgZm9yIHNpZ25pZmljYW5jZSBvZiB0aGUgZGlmZmVyZW5jZXMNCg0KYGBge3J9DQoNCiMgTWFrZSBvbmUgb2YgdGhlIGRhdGFzZXQgYSBub24gc2YgY2xhc3MgZGF0YXNldA0KVmFjaDE5X2RmIDwtIFZhY2gxOSAlPiUgDQogIGRhdGEuZnJhbWUoKSAlPiUgDQogIHNlbGVjdCgtZ2VvbWV0cnkpDQoNCiAjIFRoZW4gbWVyZ2UgdGhlIG5vbiBzZiBjbGFzcyBkYXRhc2V0IHRvIHRoZSBzZiBjbGFzcyBkYXRhc2V0IA0KVmFjaDExMTkgPC0gbGVmdF9qb2luKFZhY2gxMSwgVmFjaDE5X2RmLCBieT1jKCJHRU9JRCI9IkdFT0lEIikpICU+JSANCiAgIG5hLm9taXQoKQ0KDQojY2FsY3VsYXRlIHRoZSBjaGFuZ2UgYmV0d2VlbiB0aGUgcGVyY2VudCB2YWNhbnQgaG91c2luZyB1bml0IGluIDIwMTEgYW5kIDIwMTkNCmRpZmYxMTE5PC1hY3N0ZXN0KG5hbWVzID0gVmFjaDExMTkkR0VPSUQsDQogICAgICAgICAgICAgICAgICAgIGdlb2lkID1WYWNoMTExOSRHRU9JRCwNCiAgICAgICAgICAgICAgICAgICAgZXN0MSA9IFZhY2gxMTE5JFBWSFUsDQogICAgICAgICAgICAgICAgICAgIGVzdDIgPSBWYWNoMTExOSRQVkhVMTksDQogICAgICAgICAgICAgICAgICAgIGVycjEgPSBWYWNoMTExOSRQVkhVX2VyLA0KICAgICAgICAgICAgICAgICAgICBlcnIyPVZhY2gxMTE5JFBWSFVfZXIxOSwNCiAgICAgICAgICAgICAgICAgICAgYWxwaGEgPSAuMSwNCiAgICAgICAgICAgICAgICAgICAgeXIxID0gMjAxMSwgeXIyPTIwMTksDQogICAgICAgICAgICAgICAgICAgIHNwYW4gPSA0KQ0KDQojIFRoZW4gbWVyZ2UgdGhlIGRpZmZlbmNlcyBkYXRhc2V0IHdpdGggdGhlIFZhY2gxMTE5DQpNZXJnZWRpZmYgPC0gbGVmdF9qb2luKFZhY2gxMTE5LCBkaWZmMTExOSwgYnk9YygiR0VPSUQiPSJnZW9pZCIpKSANCg0KaGVhZChNZXJnZWRpZmYpDQpgYGANCg0KDQojICoqTWFwcGluZyBEaWZmZXJlbmNlcyBJbiBQZXJjZW50IFZhY2FudCBIb3VzaW5nIFVuaXRzIEJldHdlZW4gMjAxMSAmIDIwMTksIENlbnN1cyBUcmFjdHMsIEhhcnJpcyBDb3VudHksIFRYKioNCg0KYGBge3IsIGZpZy5hbGlnbj0nY2VudGVyJyxvdXQud2lkdGg9JzEwMCUnLGVjaG89RkFMU0V9DQogIHRtX3NoYXBlKE1lcmdlZGlmZikrDQogIHRtX3BvbHlnb25zKGMoImRpZmZlcmVuY2UiKSwNCiAgICAgICAgICAgICAgdGl0bGU9YygiQ2hhbmdlcyBpbiBQZXJjZW50IiksIA0KICAgICAgICAgICAgICBwYWxldHRlPSJCbHVlcyIsDQogICAgICAgICAgICAgIHN0eWxlPSJxdWFudGlsZSIsDQogICAgICAgICAgICAgIG49NSkrDQogIHRtX3NjYWxlX2Jhcihwb3NpdGlvbiA9IGMoIkxFRlQiLCAiQk9UVE9NIikpKw0KICB0bV9jb21wYXNzKCBzaXplID0gMiwgcG9zaXRpb24gPSBjKCJyaWdodCIsICJ0b3AiKSkrDQogIHRtX2NyZWRpdHMoIkRhdGEgc291cmNlOlxuIEFDUyA1eWVhciBFc3RpbWF0ZXMiLA0KICAgICAgICAgICAgIGFsaWduID0gInJpZ2h0IiwgDQogICAgICAgICAgICAgcG9zaXRpb249YygicmlnaHQiLCAiQk9UVE9NIiksc2l6ZSA9IDAuNSApICsgDQogIHRtX2xheW91dChtYWluLnRpdGxlID0gIkNoYW5nZSBpbiBQZXJjZW50IG9mIFZhY2FudCBIb3VzaW5nIFVuaXRzLCBDZW5zdXMgVHJhY3RzLCBIYXJyaXMgQ291bnR5LCBUWCAoMjAxMS0yMDE5KSAiLA0KICAgICAgICAgICAgbWFpbi50aXRsZS5mb250ZmFtaWx5PSAic2VyaWYiLA0KICAgICAgICAgICAgbWFpbi50aXRsZS5mb250ZmFjZSA9ICJib2xkIiwNCiAgICAgICAgICAgIG1haW4udGl0bGUuc2l6ZSA9MSwgDQogICAgICAgICAgICBsZWdlbmQuZnJhbWUgPSBUUlVFLA0KICAgICAgICAgICAgbGVnZW5kLnRpdGxlLmZvbnRmYWNlID0gImJvbGQiLA0KICAgICAgICAgICAgbGVnZW5kLnRpdGxlLnNpemUgPS44LA0KICAgICAgICAgICAgdGl0bGUucG9zaXRpb24gPSBjKCdyaWdodCcsICd0b3AnKSwgDQogICAgICAgICAgICBpbm5lci5tYXJnaW5zPWMoLjA0LC4wMywgLjAyLCAuMDEpKQ0KYGBgDQoNCiMgKipNYXBwaW5nIFRlc3QgRm9yIFNpZ25pZmljYW5jZSBvZiB0aGUgQ2hhbmdlcyBJbiBQZXJjZW50IFZhY2FudCBIb3VzaW5nIFVuaXRzIEJldHdlZW4gMjAxMSAmIDIwMTksIENlbnN1cyBUcmFjdHMsIEhhcnJpcyBDb3VudHksIFRYKioNCmBgYHtyLCBmaWcuYWxpZ249J2NlbnRlcicsb3V0LndpZHRoPScxMDAlJyxlY2hvPUZBTFNFfQ0KdG1fc2hhcGUoTWVyZ2VkaWZmKSsNCiAgdG1fcG9seWdvbnMoYygicmVzdWx0IiksDQogICAgICAgICAgICAgIHRpdGxlPWMoIlRlc3QgT2YgU2lnbmlmaWNhbmNlIiksIA0KICAgICAgICAgICAgICBwYWxldHRlPSJTZXQyIiwNCiAgICAgICAgICAgICAgc3R5bGU9InF1YW50aWxlIiwNCiAgICAgICAgICAgICAgbj01KSsNCiAgdG1fc2NhbGVfYmFyKHBvc2l0aW9uID0gYygiTEVGVCIsICJCT1RUT00iKSkrDQogIHRtX2NvbXBhc3MoIHNpemUgPSAyLCBwb3NpdGlvbiA9IGMoInJpZ2h0IiwgInRvcCIpKSsNCiAgdG1fY3JlZGl0cygiRGF0YSBzb3VyY2U6XG4gQUNTIDV5ZWFyIEVzdGltYXRlcyIsDQogICAgICAgICAgICAgYWxpZ24gPSAicmlnaHQiLCANCiAgICAgICAgICAgICBwb3NpdGlvbj1jKCJyaWdodCIsICJCT1RUT00iKSxzaXplID0gMC41ICkgKyANCiAgdG1fbGF5b3V0KG1haW4udGl0bGUgPSAiVGVzdCBGb3IgU2lnbmlmaWNhbmNlIENoYW5nZXMgaW4gUGVyY2VudCBvZiBWYWNhbnQgSG91c2luZyBVbml0cywgQ2Vuc3VzIFRyYWN0cyxcbiBIYXJyaXMgQ291bnR5LCBUWCAoMjAxMS0yMDE5KSAiLA0KICAgICAgICAgICAgbWFpbi50aXRsZS5mb250ZmFtaWx5PSAic2VyaWYiLA0KICAgICAgICAgICAgbWFpbi50aXRsZS5mb250ZmFjZSA9ICJib2xkIiwNCiAgICAgICAgICAgIG1haW4udGl0bGUuc2l6ZSA9MSwgDQogICAgICAgICAgICBsZWdlbmQuZnJhbWUgPSBUUlVFLA0KICAgICAgICAgICAgbGVnZW5kLnRpdGxlLmZvbnRmYWNlID0gImJvbGQiLA0KICAgICAgICAgICAgbGVnZW5kLnRpdGxlLnNpemUgPS44LA0KICAgICAgICAgICAgdGl0bGUucG9zaXRpb24gPSBjKCdyaWdodCcsICd0b3AnKSwgDQogICAgICAgICAgICBpbm5lci5tYXJnaW5zPWMoLjA0LC4wMywgLjAyLCAuMDEpKQ0KYGBgDQoNCg==