Mapping Persons Without Insurance In America

In recent years, health insurance in America has become more of an issue. Millions of American every year do not have acces to health insurance, which then in turn effects their over all quality of life. It has been reported that nearly 33 million Americans are living without health insurance - that is over 10% of the overall US Population. This data was collected through social explorer’s Health data. This data is to be used to build awareness of the number of Americans between the ages of 18-75 whom are living without insurance. This data shows overall in each state who has reported not having health insurance.The basis of this analysis is to visualize our data on the percent of those living without insurance through two different methods. The first, method used is a non-spatial regression and ggplot that observes the relationship between states and the numer of persons without insurance. The second method used is through a spatial visual of the percentages all states and counties not having insurance.

library(tidyverse)
library(devtools)
library(tidyverse)
library(sf)
library(tmap)
library(tigris)
library(spdep)
library(data.world)
library(tigris)
library(ggplot2)
library(tidyverse)
library(nlme)
library(texreg)
library(nlme)
library(magrittr)
library(tidyr)
health <- read_csv("C:/Users/Meghan/Documents/health.csv")
health <- rename (health,
          "STATEFP" = Geo_STATE,
          "QualityOfLife" = SE_T001_001,
          "PoorHealth" = SE_T002_001,
          "Insurance" = SE_T006_002)
health<- health %>% 
  filter(!is.na(STATEFP),!is.na(QualityOfLife),!is.na(PoorHealth),!is.na(Insurance))
head(health)

Non Spatial Regression and Plot

NON SPATIAL REGRESSION and Plot Non-spatial data provides information of a correlation which is independent of all geometric considerations. Using Ecological regressions and ggplots our information may consume more factors that are independent.

Ecological Regression My first analysis produced was a Ecological regression of the relationship between Quality of Life and the persons without health insurance. The ecological regression, shown below illustrates the mean of all persons without health insurance and quality of life in each state. The regression evaluated is significant and it can be assumed that the quality of life (number of sick days) by states increase by 6 for every increase of persons without health insurance in the state.

GGPLOT

The plot below, shows a statistical observation of persons without health insurance among the counties within its State.

health<- health %>% 
  group_by(STATEFP) %>% 
  summarise(mean_p = mean(Insurance, na.rm = TRUE), mean_s = mean(QualityOfLife, na.rm = TRUE))
ecoobs <- lm(mean_p ~ mean_s, data = health)
summary(ecoobs)

Call:
lm(formula = mean_p ~ mean_s, data = health)

Residuals:
     Min       1Q   Median       3Q      Max 
-11.9403  -3.7649   0.7248   2.6969  11.4685 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   -3.380      4.049  -0.835    0.408    
mean_s         6.188      1.082   5.721 6.28e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.578 on 49 degrees of freedom
Multiple R-squared:  0.4005,    Adjusted R-squared:  0.3882 
F-statistic: 32.73 on 1 and 49 DF,  p-value: 6.278e-07
library(lemon)
ggplot(health, aes(x=STATEFP, y=Insurance)) + 
  geom_point() + 
  coord_capped_cart(bottom='both', left='none') +
  theme_light() + theme(panel.border=element_blank(), axis.line = element_line())

options(tigris_class = "sf")
t_county <- counties(cb = TRUE)
names(t_county)
 [1] "STATEFP"  "COUNTYFP" "COUNTYNS" "AFFGEOID" "GEOID"    "NAME"    
 [7] "LSAD"     "ALAND"    "AWATER"   "geometry"
names(ct_map)
 [1] "Geo_FIPS"     "Geo_NAME"     "Geo_QNAME"    "Geo_STATE"   
 [5] "Geo_COUNTY"   "SE_T001_001"  "SE_T001_002"  "SE_T002_001" 
 [9] "SE_T006_001"  "SE_T006_002"  "SE_T006_003"  "SE_NV005_001"
[13] "SE_NV005_002" "SE_NV005_003" "fips"        

Spatial Mapping the Number of Persons Without Health Insurance among States

Data is used in Spatial Analysis to define locations, shape, and size. Analyzing our data through spatial analysis, provides us with a general distinction multi-dimensional and auto correlation of the percent of those living without health insurance. The maps below, were created to see the progression of how adding visuals can introduce new information in regards to our research.

library(tmap)
tm_shape(t_comb_data) + tm_polygons("Insurance")

t_comb_data_sub <- t_comb_data %>% 
  filter(STATEFP.x != "02") %>% 
  filter(STATEFP.x != "15") %>% 
  filter(STATEFP.x != "60") %>% 
  filter(STATEFP.x != "66") %>% 
  filter(STATEFP.x != "69") %>% 
  filter(STATEFP.x != "72") %>% 
  filter(STATEFP.x != "78")
tm_shape(t_comb_data_sub, projection = 2163) + tm_polygons("Insurance")

t_comb_data_sub <- t_comb_data_sub %>% 
  mutate(redblue = Insurance - 50)
tm_shape(t_comb_data_sub, projection = 2163) + tm_polygons("redblue", palette = "-RdBu")

Mean of Persons without Insurance & Highlighting State Lines

To observe the differences between states clearly, inspecting the mean of persons without health insurance will help us differentiate the states numbers of those without health insurance. By highlighting the state lines gives this spatial visual a more clear understanding of lack onf insurance within the nation. Using the legend we can see the differences among states and their counties. From the visual above the most persons living without health insurance reside in the eastern portion of the United States. We can also identify large percentages of those lacking health insurance in the north eastern US.

library(tmaptools)
us_states <- t_comb_data_sub %>% 
  aggregate_map(by = "STATEFP.x")
tm_shape(t_comb_data_sub, projection = 2163) + tm_polygons("redblue", palette = "-RdBu") + 
  tm_shape(us_states) + tm_borders(lwd = .36, col = "black", alpha = 1)

tm_shape(t_comb_data_sub, projection = 2163) + tm_polygons("redblue", palette = "-RdBu", border.col = "grey", border.alpha = .4) + 
  tm_shape(us_states) + tm_borders(lwd = .36, col = "black", alpha = 1)

am_nations <- t_comb_data_sub %>% 
  aggregate_map(by = "Insurance")
tm_shape(t_comb_data_sub, projection = 2163) + tm_polygons("redblue", palette = "-RdBu") + 
  tm_shape(am_nations) + tm_borders(lwd = .36, col = "black", alpha = 1)

tm_shape(am_nations, projection = 2163) + tm_polygons(col = "MAP_COLORS") + tm_borders(lwd = .50, col = "black", alpha = 1)

Differences between Spatial and Non-Spatial Data

Non-spatial data is usually one dimensional and independent while spatial is multidimensional and auto correlated. Locational data is easily assessed through spatial analysis rather than processing locational functions which will have fallacies due to other independent variables influences. Spatial data evaluates insurance as a whole and its relationship between states but, is not as precise and specific as non-spatial.

Conclusion

Evaluating both spatial and non-spatial analysis, I have found that both have great advantages but, also appear to have disadvantages. Spatial data is simple and appealing but, does not offer in depth analysis. By ultimately combining both types of data analysis, locational observations can be evaluated easily a alongside independent associations with other factors.

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyBNYXBwaW5nIFBlcnNvbnMgV2l0aG91dCBJbnN1cmFuY2UgSW4gQW1lcmljYQ0KSW4gcmVjZW50IHllYXJzLCBoZWFsdGggaW5zdXJhbmNlIGluIEFtZXJpY2EgaGFzIGJlY29tZSBtb3JlIG9mIGFuIGlzc3VlLiBNaWxsaW9ucyBvZiBBbWVyaWNhbiBldmVyeSB5ZWFyIGRvIG5vdCBoYXZlIGFjY2VzIHRvIGhlYWx0aCBpbnN1cmFuY2UsIHdoaWNoIHRoZW4gaW4gdHVybiBlZmZlY3RzIHRoZWlyIG92ZXIgYWxsIHF1YWxpdHkgb2YgbGlmZS4gSXQgaGFzIGJlZW4gcmVwb3J0ZWQgdGhhdCBuZWFybHkgMzMgbWlsbGlvbiBBbWVyaWNhbnMgYXJlIGxpdmluZyB3aXRob3V0IGhlYWx0aCBpbnN1cmFuY2UgLSB0aGF0IGlzIG92ZXIgMTAlIG9mIHRoZSBvdmVyYWxsIFVTIFBvcHVsYXRpb24uIFRoaXMgZGF0YSB3YXMgY29sbGVjdGVkIHRocm91Z2ggc29jaWFsIGV4cGxvcmVyJ3MgSGVhbHRoIGRhdGEuIFRoaXMgZGF0YSBpcyB0byBiZSB1c2VkIHRvIGJ1aWxkIGF3YXJlbmVzcyBvZiB0aGUgbnVtYmVyIG9mIEFtZXJpY2FucyBiZXR3ZWVuIHRoZSBhZ2VzIG9mIDE4LTc1IHdob20gYXJlIGxpdmluZyB3aXRob3V0IGluc3VyYW5jZS4gVGhpcyBkYXRhIHNob3dzIG92ZXJhbGwgaW4gZWFjaCBzdGF0ZSB3aG8gaGFzIHJlcG9ydGVkIG5vdCBoYXZpbmcgaGVhbHRoIGluc3VyYW5jZS5UaGUgYmFzaXMgb2YgdGhpcyBhbmFseXNpcyBpcyB0byB2aXN1YWxpemUgb3VyIGRhdGEgb24gdGhlIHBlcmNlbnQgb2YgdGhvc2UgbGl2aW5nIHdpdGhvdXQgaW5zdXJhbmNlIHRocm91Z2ggdHdvIGRpZmZlcmVudCBtZXRob2RzLiBUaGUgZmlyc3QsIG1ldGhvZCB1c2VkIGlzIGEgbm9uLXNwYXRpYWwgcmVncmVzc2lvbiBhbmQgZ2dwbG90IHRoYXQgb2JzZXJ2ZXMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHN0YXRlcyBhbmQgdGhlIG51bWVyIG9mIHBlcnNvbnMgd2l0aG91dCBpbnN1cmFuY2UuIFRoZSBzZWNvbmQgbWV0aG9kIHVzZWQgaXMgdGhyb3VnaCBhIHNwYXRpYWwgdmlzdWFsIG9mIHRoZSBwZXJjZW50YWdlcyBhbGwgc3RhdGVzIGFuZCBjb3VudGllcyBub3QgaGF2aW5nIGluc3VyYW5jZS4NCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGRldnRvb2xzKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHNmKQ0KbGlicmFyeSh0bWFwKQ0KbGlicmFyeSh0aWdyaXMpDQpsaWJyYXJ5KHNwZGVwKQ0KbGlicmFyeShkYXRhLndvcmxkKQ0KbGlicmFyeSh0aWdyaXMpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkobmxtZSkNCmxpYnJhcnkodGV4cmVnKQ0KbGlicmFyeShubG1lKQ0KbGlicmFyeShtYWdyaXR0cikNCmxpYnJhcnkodGlkeXIpDQpoZWFsdGggPC0gcmVhZF9jc3YoIkM6L1VzZXJzL01lZ2hhbi9Eb2N1bWVudHMvaGVhbHRoLmNzdiIpDQpgYGANCg0KYGBge3J9DQpoZWFsdGggPC0gcmVuYW1lIChoZWFsdGgsDQogICAgICAgICAgIlNUQVRFRlAiID0gR2VvX1NUQVRFLA0KICAgICAgICAgICJRdWFsaXR5T2ZMaWZlIiA9IFNFX1QwMDFfMDAxLA0KICAgICAgICAgICJQb29ySGVhbHRoIiA9IFNFX1QwMDJfMDAxLA0KICAgICAgICAgICJJbnN1cmFuY2UiID0gU0VfVDAwNl8wMDIpDQoNCmhlYWx0aDwtIGhlYWx0aCAlPiUgDQogIGZpbHRlcighaXMubmEoU1RBVEVGUCksIWlzLm5hKFF1YWxpdHlPZkxpZmUpLCFpcy5uYShQb29ySGVhbHRoKSwhaXMubmEoSW5zdXJhbmNlKSkNCmBgYA0KDQpgYGB7cn0NCmhlYWQoaGVhbHRoKQ0KYGBgDQoNCiMjIE5vbiBTcGF0aWFsIFJlZ3Jlc3Npb24gYW5kIFBsb3QgDQpOT04gU1BBVElBTCBSRUdSRVNTSU9OIGFuZCBQbG90DQpOb24tc3BhdGlhbCBkYXRhIHByb3ZpZGVzIGluZm9ybWF0aW9uIG9mIGEgY29ycmVsYXRpb24gd2hpY2ggaXMgaW5kZXBlbmRlbnQgb2YgYWxsIGdlb21ldHJpYyBjb25zaWRlcmF0aW9ucy4gVXNpbmcgRWNvbG9naWNhbCByZWdyZXNzaW9ucyBhbmQgZ2dwbG90cyBvdXIgaW5mb3JtYXRpb24gbWF5IGNvbnN1bWUgbW9yZSBmYWN0b3JzIHRoYXQgYXJlIGluZGVwZW5kZW50Lg0KDQpFY29sb2dpY2FsIFJlZ3Jlc3Npb24NCk15IGZpcnN0IGFuYWx5c2lzIHByb2R1Y2VkIHdhcyBhIEVjb2xvZ2ljYWwgcmVncmVzc2lvbiBvZiB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gUXVhbGl0eSBvZiBMaWZlIGFuZCB0aGUgcGVyc29ucyB3aXRob3V0IGhlYWx0aCBpbnN1cmFuY2UuIFRoZSBlY29sb2dpY2FsIHJlZ3Jlc3Npb24sIHNob3duIGJlbG93IGlsbHVzdHJhdGVzIHRoZSBtZWFuIG9mIGFsbCBwZXJzb25zIHdpdGhvdXQgaGVhbHRoIGluc3VyYW5jZSBhbmQgcXVhbGl0eSBvZiBsaWZlIGluIGVhY2ggc3RhdGUuIFRoZSByZWdyZXNzaW9uIGV2YWx1YXRlZCBpcyBzaWduaWZpY2FudCBhbmQgaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCB0aGUgcXVhbGl0eSBvZiBsaWZlIChudW1iZXIgb2Ygc2ljayBkYXlzKSBieSBzdGF0ZXMgaW5jcmVhc2UgYnkgNiBmb3IgZXZlcnkgaW5jcmVhc2Ugb2YgcGVyc29ucyB3aXRob3V0IGhlYWx0aCBpbnN1cmFuY2UgaW4gdGhlIHN0YXRlLiANCg0KR0dQTE9UDQoNClRoZSBwbG90IGJlbG93LCBzaG93cyBhIHN0YXRpc3RpY2FsIG9ic2VydmF0aW9uIG9mIHBlcnNvbnMgd2l0aG91dCBoZWFsdGggaW5zdXJhbmNlIGFtb25nIHRoZSBjb3VudGllcyB3aXRoaW4gaXRzIFN0YXRlLg0KDQpgYGB7cn0NCmhlYWx0aDwtIGhlYWx0aCAlPiUgDQogIGdyb3VwX2J5KFNUQVRFRlApICU+JSANCiAgc3VtbWFyaXNlKG1lYW5fcCA9IG1lYW4oSW5zdXJhbmNlLCBuYS5ybSA9IFRSVUUpLCBtZWFuX3MgPSBtZWFuKFF1YWxpdHlPZkxpZmUsIG5hLnJtID0gVFJVRSkpDQoNCmVjb29icyA8LSBsbShtZWFuX3AgfiBtZWFuX3MsIGRhdGEgPSBoZWFsdGgpDQpzdW1tYXJ5KGVjb29icykNCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkobGVtb24pDQpnZ3Bsb3QoaGVhbHRoLCBhZXMoeD1TVEFURUZQLCB5PUluc3VyYW5jZSkpICsgDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXBwZWRfY2FydChib3R0b209J2JvdGgnLCBsZWZ0PSdub25lJykgKw0KICB0aGVtZV9saWdodCgpICsgdGhlbWUocGFuZWwuYm9yZGVyPWVsZW1lbnRfYmxhbmsoKSwgYXhpcy5saW5lID0gZWxlbWVudF9saW5lKCkpDQpgYGANCg0KYGBge3J9DQpvcHRpb25zKHRpZ3Jpc19jbGFzcyA9ICJzZiIpDQp0X2NvdW50eSA8LSBjb3VudGllcyhjYiA9IFRSVUUpDQpuYW1lcyh0X2NvdW50eSkNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmhlYWx0aCA8LSBoZWFsdGggJT4lDQogIG11dGF0ZSAoZmlwcyA9IHBhcnNlX2ludGVnZXIoR2VvX0ZJUFMpKQ0KdF9jb3VudHkgPC0gdF9jb3VudHkgJT4lDQogIG11dGF0ZSAoZmlwcyA9IHBhcnNlX2ludGVnZXIoR0VPSUQpKQ0KdF9jb21iX2RhdGEgPC0gdF9jb3VudHkgJT4lDQogIGxlZnRfam9pbihoZWFsdGgsIGJ5ID0iZmlwcyIpDQpgYGANCg0KYGBge3J9DQpuYW1lcyhjdF9tYXApDQpgYGANCg0KIyMgU3BhdGlhbCBNYXBwaW5nIHRoZSBOdW1iZXIgb2YgUGVyc29ucyBXaXRob3V0IEhlYWx0aCBJbnN1cmFuY2UgYW1vbmcgU3RhdGVzDQpEYXRhIGlzIHVzZWQgaW4gU3BhdGlhbCBBbmFseXNpcyB0byBkZWZpbmUgbG9jYXRpb25zLCBzaGFwZSwgYW5kIHNpemUuIEFuYWx5emluZyBvdXIgZGF0YSB0aHJvdWdoIHNwYXRpYWwgYW5hbHlzaXMsIHByb3ZpZGVzIHVzIHdpdGggYSBnZW5lcmFsIGRpc3RpbmN0aW9uIG11bHRpLWRpbWVuc2lvbmFsIGFuZCBhdXRvIGNvcnJlbGF0aW9uIG9mIHRoZSBwZXJjZW50IG9mIHRob3NlIGxpdmluZyB3aXRob3V0IGhlYWx0aCBpbnN1cmFuY2UuIFRoZSBtYXBzIGJlbG93LCB3ZXJlIGNyZWF0ZWQgdG8gc2VlIHRoZSBwcm9ncmVzc2lvbiBvZiBob3cgYWRkaW5nIHZpc3VhbHMgY2FuIGludHJvZHVjZSBuZXcgaW5mb3JtYXRpb24gaW4gcmVnYXJkcyB0byBvdXIgcmVzZWFyY2guDQoNCmBgYHtyfQ0KbGlicmFyeSh0bWFwKQ0KdG1fc2hhcGUodF9jb21iX2RhdGEpICsgdG1fcG9seWdvbnMoIkluc3VyYW5jZSIpDQpgYGANCg0KYGBge3J9DQp0X2NvbWJfZGF0YV9zdWIgPC0gdF9jb21iX2RhdGEgJT4lIA0KICBmaWx0ZXIoU1RBVEVGUC54ICE9ICIwMiIpICU+JSANCiAgZmlsdGVyKFNUQVRFRlAueCAhPSAiMTUiKSAlPiUgDQogIGZpbHRlcihTVEFURUZQLnggIT0gIjYwIikgJT4lIA0KICBmaWx0ZXIoU1RBVEVGUC54ICE9ICI2NiIpICU+JSANCiAgZmlsdGVyKFNUQVRFRlAueCAhPSAiNjkiKSAlPiUgDQogIGZpbHRlcihTVEFURUZQLnggIT0gIjcyIikgJT4lIA0KICBmaWx0ZXIoU1RBVEVGUC54ICE9ICI3OCIpDQoNCnRtX3NoYXBlKHRfY29tYl9kYXRhX3N1YiwgcHJvamVjdGlvbiA9IDIxNjMpICsgdG1fcG9seWdvbnMoIkluc3VyYW5jZSIpDQpgYGANCg0KYGBge3J9DQp0X2NvbWJfZGF0YV9zdWIgPC0gdF9jb21iX2RhdGFfc3ViICU+JSANCiAgbXV0YXRlKHJlZGJsdWUgPSBJbnN1cmFuY2UgLSA1MCkNCg0KdG1fc2hhcGUodF9jb21iX2RhdGFfc3ViLCBwcm9qZWN0aW9uID0gMjE2MykgKyB0bV9wb2x5Z29ucygicmVkYmx1ZSIsIHBhbGV0dGUgPSAiLVJkQnUiKQ0KYGBgDQoNCiMjIE1lYW4gb2YgUGVyc29ucyB3aXRob3V0IEluc3VyYW5jZSAmIEhpZ2hsaWdodGluZyBTdGF0ZSBMaW5lcyANClRvIG9ic2VydmUgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gc3RhdGVzIGNsZWFybHksIGluc3BlY3RpbmcgdGhlIG1lYW4gb2YgcGVyc29ucyB3aXRob3V0IGhlYWx0aCBpbnN1cmFuY2Ugd2lsbCBoZWxwIHVzIGRpZmZlcmVudGlhdGUgdGhlIHN0YXRlcyBudW1iZXJzIG9mIHRob3NlIHdpdGhvdXQgaGVhbHRoIGluc3VyYW5jZS4gQnkgaGlnaGxpZ2h0aW5nIHRoZSBzdGF0ZSBsaW5lcyBnaXZlcyB0aGlzIHNwYXRpYWwgdmlzdWFsIGEgbW9yZSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIGxhY2sgb25mIGluc3VyYW5jZSB3aXRoaW4gdGhlIG5hdGlvbi4gVXNpbmcgdGhlIGxlZ2VuZCB3ZSBjYW4gc2VlIHRoZSBkaWZmZXJlbmNlcyBhbW9uZyBzdGF0ZXMgYW5kIHRoZWlyIGNvdW50aWVzLiBGcm9tIHRoZSB2aXN1YWwgYWJvdmUgdGhlIG1vc3QgcGVyc29ucyBsaXZpbmcgd2l0aG91dCBoZWFsdGggaW5zdXJhbmNlIHJlc2lkZSBpbiB0aGUgZWFzdGVybiBwb3J0aW9uIG9mIHRoZSBVbml0ZWQgU3RhdGVzLiBXZSBjYW4gYWxzbyBpZGVudGlmeSBsYXJnZSBwZXJjZW50YWdlcyBvZiB0aG9zZSBsYWNraW5nIGhlYWx0aCBpbnN1cmFuY2UgaW4gdGhlIG5vcnRoIGVhc3Rlcm4gVVMuDQoNCmBgYHtyfQ0KbGlicmFyeSh0bWFwdG9vbHMpDQp1c19zdGF0ZXMgPC0gdF9jb21iX2RhdGFfc3ViICU+JSANCiAgYWdncmVnYXRlX21hcChieSA9ICJTVEFURUZQLngiKQ0KDQp0bV9zaGFwZSh0X2NvbWJfZGF0YV9zdWIsIHByb2plY3Rpb24gPSAyMTYzKSArIHRtX3BvbHlnb25zKCJyZWRibHVlIiwgcGFsZXR0ZSA9ICItUmRCdSIpICsgDQogIHRtX3NoYXBlKHVzX3N0YXRlcykgKyB0bV9ib3JkZXJzKGx3ZCA9IC4zNiwgY29sID0gImJsYWNrIiwgYWxwaGEgPSAxKQ0KYGBgDQoNCmBgYHtyfQ0KdG1fc2hhcGUodF9jb21iX2RhdGFfc3ViLCBwcm9qZWN0aW9uID0gMjE2MykgKyB0bV9wb2x5Z29ucygicmVkYmx1ZSIsIHBhbGV0dGUgPSAiLVJkQnUiLCBib3JkZXIuY29sID0gImdyZXkiLCBib3JkZXIuYWxwaGEgPSAuNCkgKyANCiAgdG1fc2hhcGUodXNfc3RhdGVzKSArIHRtX2JvcmRlcnMobHdkID0gLjM2LCBjb2wgPSAiYmxhY2siLCBhbHBoYSA9IDEpDQpgYGANCg0KYGBge3J9DQphbV9uYXRpb25zIDwtIHRfY29tYl9kYXRhX3N1YiAlPiUgDQogIGFnZ3JlZ2F0ZV9tYXAoYnkgPSAiU1RBVEVGTS54IikNCg0KdG1fc2hhcGUodF9jb21iX2RhdGFfc3ViLCBwcm9qZWN0aW9uID0gMjE2MykgKyB0bV9wb2x5Z29ucygicmVkYmx1ZSIsIHBhbGV0dGUgPSAiLVJkQnUiKSArIA0KICB0bV9zaGFwZShhbV9uYXRpb25zKSArIHRtX2JvcmRlcnMobHdkID0gLjM2LCBjb2wgPSAiYmxhY2siLCBhbHBoYSA9IDEpDQpgYGANCg0KYGBge3J9DQp0bV9zaGFwZShhbV9uYXRpb25zLCBwcm9qZWN0aW9uID0gMjE2MykgKyB0bV9wb2x5Z29ucyhjb2wgPSAiTUFQX0NPTE9SUyIpICsgdG1fYm9yZGVycyhsd2QgPSAuNTAsIGNvbCA9ICJibGFjayIsIGFscGhhID0gMSkNCmBgYA0KDQojIyBEaWZmZXJlbmNlcyBiZXR3ZWVuIFNwYXRpYWwgYW5kIE5vbi1TcGF0aWFsIERhdGENCk5vbi1zcGF0aWFsIGRhdGEgaXMgdXN1YWxseSBvbmUgZGltZW5zaW9uYWwgYW5kIGluZGVwZW5kZW50IHdoaWxlIHNwYXRpYWwgaXMgbXVsdGlkaW1lbnNpb25hbCBhbmQgYXV0byBjb3JyZWxhdGVkLg0KTG9jYXRpb25hbCBkYXRhIGlzIGVhc2lseSBhc3Nlc3NlZCB0aHJvdWdoIHNwYXRpYWwgYW5hbHlzaXMgcmF0aGVyIHRoYW4gcHJvY2Vzc2luZyBsb2NhdGlvbmFsIGZ1bmN0aW9ucyB3aGljaCB3aWxsIGhhdmUgZmFsbGFjaWVzIGR1ZSB0byBvdGhlciBpbmRlcGVuZGVudCB2YXJpYWJsZXMgaW5mbHVlbmNlcy4NClNwYXRpYWwgZGF0YSBldmFsdWF0ZXMgaW5zdXJhbmNlIGFzIGEgd2hvbGUgYW5kIGl0cyByZWxhdGlvbnNoaXAgYmV0d2VlbiBzdGF0ZXMgYnV0LCBpcyBub3QgYXMgcHJlY2lzZSBhbmQgc3BlY2lmaWMgYXMgbm9uLXNwYXRpYWwuDQoNCiMjIENvbmNsdXNpb24NCkV2YWx1YXRpbmcgYm90aCBzcGF0aWFsIGFuZCBub24tc3BhdGlhbCBhbmFseXNpcywgSSBoYXZlIGZvdW5kIHRoYXQgYm90aCBoYXZlIGdyZWF0IGFkdmFudGFnZXMgYnV0LCBhbHNvIGFwcGVhciB0byBoYXZlIGRpc2FkdmFudGFnZXMuIFNwYXRpYWwgZGF0YSBpcyBzaW1wbGUgYW5kIGFwcGVhbGluZyBidXQsIGRvZXMgbm90IG9mZmVyIGluIGRlcHRoIGFuYWx5c2lzLiBCeSB1bHRpbWF0ZWx5IGNvbWJpbmluZyBib3RoIHR5cGVzIG9mIGRhdGEgYW5hbHlzaXMsIGxvY2F0aW9uYWwgb2JzZXJ2YXRpb25zIGNhbiBiZSBldmFsdWF0ZWQgZWFzaWx5IGEgYWxvbmdzaWRlIGluZGVwZW5kZW50IGFzc29jaWF0aW9ucyB3aXRoIG90aGVyIGZhY3RvcnMuDQo=