Raven Shan
Introduction
“As the world becomes more secular, civilized restraints to bad behavior drop,” Fox television host Bill O’Reilly once said . This argument assumes that religious individuals are less inclined to commit violent acts than their non-religious counterparts. This assignment seeks to examine whether religious counties/states have lower violent crime rates than less religious ones. The objective is to use county-level data to create maps using the tmap package. I will start by examining each map separately, then comparing the two side by side. Essentially, the goal is to assess whether religious states indeed have lower violent crime rates.
Data and Variables
For this assignment, I use the tigris package to retrieve a county-level shape file, then Social Explorer to obtain the two datasets needed for this analysis. The first dataset is U.S. Religion data from 2010 which contains congregational membership information for every county and state. The variable used from this dataset is RCMS10_NV009_001 (renamed as “Religious”), which contains religious adherence rates by county. The 2nd dataset used in this study contains county-level crime data from The Uniform Crime Reporting Program. The variable selected was SE_T005_001 (renamed “ViolentCrimeRate”), which contains violent crime rates by county.
- Religious - county-level religious adherence rates (U.S. Religion Data).
- ViolentcrimeRate - county-level violent crime rates (U.S. Crime Data)
Religious Adherence Rates
The following map illustrates the religious adherence rate for each county within every state. The higher the rate, the more religious the county/state is. As seen in the map below, states appear to have a religious adherence rate between either 0 and 50 (grey coloring) or 50 and 100 (light green coloring). Therefore, for the purposes of this analysis, I will simply consider the states with a majority of counties having rates in the 50-100 range as religious (green coloring), and the states with most counties in the 0-50 range as less religious (grey coloring).
As seen by the green sections of the map, the religious states are located in the middle-east part of the country. These states include Utah, Montana, New Mexico, North Dakota, South Dakota, Nebraska, Kansas, Oklahoma, Texas, Minnesota, Iowa, Missouri, Arkansas, Louisiana, Wisconsin, half of the counties in Illinois, Kentucky, Tennessee, Mississippi, Alabama, South Carolina, Georgia, and Massachusetts. Specifically, North Dakota contains the most counties with the highest religious adherence rates (as seen by the darker green spots). Utah is the only state in which every counties is religious. New Mexico appears to be split evenly and overall, Western states appear to be the least religious.
us_states <- t_comb_data2 %>%
aggregate_map(by = "STATEFP")
tm1<- tm_shape(t_comb_data2, projection = 2163) + tm_polygons("Religious", palette = "BrBG", border.col = "grey", border.alpha = .4) +
tm_shape(us_states) + tm_borders(lwd = .36, col = "black", alpha = 1)
tm1

Violent Crime Rates
As seen by the following map, it appears that most states have varying degrees of violent crime activity. Many states have counties with relatively high rates, and these same states have counties with relatively low ones. Overall, a few states with extremely high-crime counties include California, Nebraska, New Mexico, South Carolina, and Florida. Contrarily, counties with some of the lowest violent crime rates belong to states such as Wyoming, Maine, Kentucky, and Virginia.
us_states <- c_comb_data2 %>%
aggregate_map(by = "STATEFP")
tm2 <- tm_shape(c_comb_data2, projection = 2163) + tm_polygons("ViolentCrimeRate", palette = "PiYG", border.col = "grey", border.alpha = .4, breaks=c(0,100,200,300,400,500,Inf)) +
tm_shape(us_states) + tm_borders(lwd = .36, col = "black", alpha = 1)
tm2

Map Comparison
The goal of this analysis is to determine whether religious counties/states have lower violent crime rates than their less religious counterparts. To do so, I arranged the two maps side by side. Overall, after comparing both maps, there does not appear to be enough evidence to suggest religious states have lower crime rates. It is indeed the case for some states, however. For example, Utah is a religious state, and they appear to have a relatively low crime rate. This is also the case for states like North Dakota, South Dakota, and Nebraska. However, there are other states which contradict the notion that religious states having lower crime rates. For example, South Carolina is a fairly religious state, meanwhile, their crime rates are relatively high compared to neighboring areas. This is also the case for Louisiana and Massachusetts. Ultimately, there is no sufficient enough indication of religious states having lower violent crime rates than more secular ones. While this is indeed true for some states, it is not the case for all. As for the states where this is the case, it is important to note that there could be other factors at play. To fully assess this would require a more thorough analysis.

A Non-Spatial Approach to Illustrating Data
One non-spatial approach to presenting data is by creating the histograms below for each variable of interest. Clearly, this method cannot be used to answer my research question as I am interested in whether religious counties have lower violent crime rates, and if so, which ones. The graphs below present the distribution of the data, which is only suitable for exploratory purposes in this case.
Advantages and Disadvantages to Spatial and Non-spatial Approach
The main advantage of mapping spatial data is that it displays information geographically, whereas the conventional, non-spatial approach does not. Sometimes the research question calls for this method, and sometimes it will not. For this particular analysis, the spatial component is necessary as my research question involves counties/states. In my opinion, this approach is also more appealing. However, when the goal is not to illustrate information such as county or state-level data, the conventional approach (e.g.,histograms, regressions, line graphs) is just as useful. It allows us to get a better understanding of the data and how it is distributed. Overall, it is a more statistical and precise approach. However, the main weakness of the conventional approach is that it missing the spatial element. As seen in the histograms above, it does not account for geographic differences the way a map does. The conventional way to present data is not as multi-dimensional. It may also be more difficult for some people to conceptualize compared to a map. Overall, both the spatial and non-spatial approaches are useful. Choosing one over the other is solely based on the story the researcher is trying to tell.
LS0tDQp0aXRsZTogIlNvYyA3MTIgSG9tZXdvcmsgIzEwIC0gTWFwcGluZyBTcGF0aWFsIERhdGEiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoqUmF2ZW4gU2hhbioNCg0KLS0tDQoNCiMjIEludHJvZHVjdGlvbiAgDQoNCiIqQXMgdGhlIHdvcmxkIGJlY29tZXMgbW9yZSBzZWN1bGFyLCBjaXZpbGl6ZWQgcmVzdHJhaW50cyB0byBiYWQgYmVoYXZpb3IgZHJvcCwqIiBGb3ggdGVsZXZpc2lvbiBob3N0IEJpbGwgTydSZWlsbHkgb25jZSBzYWlkIFteMV0uIFRoaXMgYXJndW1lbnQgYXNzdW1lcyB0aGF0IHJlbGlnaW91cyBpbmRpdmlkdWFscyBhcmUgbGVzcyBpbmNsaW5lZCB0byBjb21taXQgdmlvbGVudCBhY3RzIHRoYW4gdGhlaXIgbm9uLXJlbGlnaW91cyBjb3VudGVycGFydHMuIFRoaXMgYXNzaWdubWVudCBzZWVrcyB0byBleGFtaW5lIHdoZXRoZXIgcmVsaWdpb3VzIGNvdW50aWVzL3N0YXRlcyBoYXZlIGxvd2VyIHZpb2xlbnQgY3JpbWUgcmF0ZXMgdGhhbiBsZXNzIHJlbGlnaW91cyBvbmVzLiBUaGUgb2JqZWN0aXZlIGlzIHRvIHVzZSBjb3VudHktbGV2ZWwgZGF0YSB0byBjcmVhdGUgbWFwcyB1c2luZyB0aGUgKnRtYXAqIHBhY2thZ2UuIEkgd2lsbCBzdGFydCBieSBleGFtaW5pbmcgZWFjaCBtYXAgc2VwYXJhdGVseSwgdGhlbiBjb21wYXJpbmcgdGhlIHR3byBzaWRlIGJ5IHNpZGUuIEVzc2VudGlhbGx5LCB0aGUgZ29hbCBpcyB0byBhc3Nlc3Mgd2hldGhlciByZWxpZ2lvdXMgc3RhdGVzIGluZGVlZCBoYXZlIGxvd2VyIHZpb2xlbnQgY3JpbWUgcmF0ZXMuIA0KDQotLS0NCg0KIyMgRGF0YSBhbmQgVmFyaWFibGVzIA0KDQpGb3IgdGhpcyBhc3NpZ25tZW50LCBJIHVzZSB0aGUgKnRpZ3JpcyogcGFja2FnZSB0byByZXRyaWV2ZSBhIGNvdW50eS1sZXZlbCBzaGFwZSBmaWxlLCB0aGVuIFNvY2lhbCBFeHBsb3JlciB0byBvYnRhaW4gdGhlIHR3byBkYXRhc2V0cyBuZWVkZWQgZm9yIHRoaXMgYW5hbHlzaXMuIFRoZSBmaXJzdCBkYXRhc2V0IGlzIFUuUy4gUmVsaWdpb24gZGF0YSBmcm9tIDIwMTAgd2hpY2ggY29udGFpbnMgY29uZ3JlZ2F0aW9uYWwgbWVtYmVyc2hpcCBpbmZvcm1hdGlvbiBmb3IgZXZlcnkgY291bnR5IGFuZCBzdGF0ZS4gVGhlIHZhcmlhYmxlIHVzZWQgZnJvbSB0aGlzIGRhdGFzZXQgaXMgUkNNUzEwX05WMDA5XzAwMSAocmVuYW1lZCBhcyAiUmVsaWdpb3VzIiksIHdoaWNoIGNvbnRhaW5zIHJlbGlnaW91cyBhZGhlcmVuY2UgcmF0ZXMgYnkgY291bnR5LiBUaGUgMm5kIGRhdGFzZXQgdXNlZCBpbiB0aGlzIHN0dWR5IGNvbnRhaW5zIGNvdW50eS1sZXZlbCBjcmltZSBkYXRhIGZyb20gVGhlIFVuaWZvcm0gQ3JpbWUgUmVwb3J0aW5nIFByb2dyYW0uIFRoZSB2YXJpYWJsZSBzZWxlY3RlZCB3YXMgU0VfVDAwNV8wMDEgKHJlbmFtZWQgIlZpb2xlbnRDcmltZVJhdGUiKSwgd2hpY2ggY29udGFpbnMgdmlvbGVudCBjcmltZSByYXRlcyBieSBjb3VudHkuIA0KDQoqICoqUmVsaWdpb3VzKiogLSBjb3VudHktbGV2ZWwgcmVsaWdpb3VzIGFkaGVyZW5jZSByYXRlcyAoVS5TLiBSZWxpZ2lvbiBEYXRhKS4NCiogKipWaW9sZW50Y3JpbWVSYXRlKiogLSBjb3VudHktbGV2ZWwgdmlvbGVudCBjcmltZSByYXRlcyAoVS5TLiBDcmltZSBEYXRhKQ0KDQotLS0NCg0KYGBge3IsIGVjaG89RkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoc2YpDQpsaWJyYXJ5KHRtYXApDQpsaWJyYXJ5KHRpZ3JpcykNCmxpYnJhcnkoc3BkZXApDQpsaWJyYXJ5KGRhdGEud29ybGQpDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0V9DQpsaWJyYXJ5KHRpZ3JpcykNCm9wdGlvbnModGlncmlzX2NsYXNzID0gInNmIikNCg0KdF9jb3VudHkgPC0gY291bnRpZXMoY2IgPSBUUlVFKQ0KbmFtZXModF9jb3VudHkpDQpgYGANCg0KIyNSZWxpZ2lvdXMgQWRoZXJlbmNlIFJhdGVzDQpgYGB7ciwgZWNobz1GQUxTRX0NCmxpYnJhcnkocmVhZHIpDQpzZV9kYXRhIDwtIHJlYWRfY3N2KCJDOi9Vc2Vycy9SYXZlbi9EZXNrdG9wL1IxMTY2ODY0MF9yZWwuY3N2IikNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCnNlX2RhdGEgPC0gc2VfZGF0YSU+JWZpbHRlcighaXMubmEoIlJDTVMxMF9OVjAwOV8wMDEiKSkNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmxpYnJhcnkoZHBseXIpDQpzZV9kYXRhIDwtIHJlbmFtZSAoc2VfZGF0YSwgDQogICAgICAgICAgICAgICAiUmVsaWdpb3VzIiA9IFJDTVMxMF9OVjAwOV8wMDEpDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0V9DQpsaWJyYXJ5KGRwbHlyKQ0Kc2VfZGF0YTIgPC0gc2VfZGF0YSAlPiUgDQogbXV0YXRlIChmaXBzID0gcGFyc2VfaW50ZWdlcihHZW9fRklQUykpIA0KdF9jb3VudHkgPC0gdF9jb3VudHkgJT4lIA0KICBtdXRhdGUoZmlwcyA9IHBhcnNlX2ludGVnZXIoR0VPSUQpKSANCnRfY29tYl9kYXRhIDwtIHRfY291bnR5ICU+JSANCiAgbGVmdF9qb2luKHNlX2RhdGEyLCBieSA9ICJmaXBzIikNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCnRfY29tYl9kYXRhMiA8LSB0X2NvbWJfZGF0YSAlPiUgDQogIGZpbHRlcihTVEFURUZQICE9ICIwMiIpICU+JSANCiAgZmlsdGVyKFNUQVRFRlAgIT0gIjE1IikgJT4lIA0KICBmaWx0ZXIoU1RBVEVGUCAhPSAiNjAiKSAlPiUgDQogIGZpbHRlcihTVEFURUZQICE9ICI2NiIpICU+JSANCiAgZmlsdGVyKFNUQVRFRlAgIT0gIjY5IikgJT4lIA0KICBmaWx0ZXIoU1RBVEVGUCAhPSAiNzIiKSAlPiUgDQogIGZpbHRlcihTVEFURUZQICE9ICI3OSIpICU+JQ0KICBmaWx0ZXIoU1RBVEVGUCAhPSAiNzgiKQ0KYGBgDQogIA0KVGhlIGZvbGxvd2luZyBtYXAgaWxsdXN0cmF0ZXMgdGhlIHJlbGlnaW91cyBhZGhlcmVuY2UgcmF0ZSBmb3IgZWFjaCBjb3VudHkgd2l0aGluIGV2ZXJ5IHN0YXRlLiBUaGUgaGlnaGVyIHRoZSByYXRlLCB0aGUgbW9yZSByZWxpZ2lvdXMgdGhlIGNvdW50eS9zdGF0ZSBpcy4gQXMgc2VlbiBpbiB0aGUgbWFwIGJlbG93LCBzdGF0ZXMgYXBwZWFyIHRvIGhhdmUgYSByZWxpZ2lvdXMgYWRoZXJlbmNlIHJhdGUgYmV0d2VlbiBlaXRoZXIgMCBhbmQgNTAgKGdyZXkgY29sb3JpbmcpIG9yIDUwIGFuZCAxMDAgKGxpZ2h0IGdyZWVuIGNvbG9yaW5nKS4gVGhlcmVmb3JlLCBmb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgYW5hbHlzaXMsIEkgd2lsbCBzaW1wbHkgY29uc2lkZXIgdGhlIHN0YXRlcyB3aXRoIGEgbWFqb3JpdHkgb2YgY291bnRpZXMgaGF2aW5nIHJhdGVzIGluIHRoZSA1MC0xMDAgcmFuZ2UgYXMgKnJlbGlnaW91cyogKGdyZWVuIGNvbG9yaW5nKSwgYW5kIHRoZSBzdGF0ZXMgd2l0aCBtb3N0IGNvdW50aWVzIGluIHRoZSAwLTUwIHJhbmdlIGFzICpsZXNzIHJlbGlnaW91cyogKGdyZXkgY29sb3JpbmcpLiANCg0KQXMgc2VlbiBieSB0aGUgZ3JlZW4gc2VjdGlvbnMgb2YgdGhlIG1hcCwgdGhlIHJlbGlnaW91cyBzdGF0ZXMgYXJlIGxvY2F0ZWQgaW4gdGhlIG1pZGRsZS1lYXN0IHBhcnQgb2YgdGhlIGNvdW50cnkuIFRoZXNlIHN0YXRlcyBpbmNsdWRlIFV0YWgsIE1vbnRhbmEsIE5ldyBNZXhpY28sIE5vcnRoIERha290YSwgU291dGggRGFrb3RhLCBOZWJyYXNrYSwgS2Fuc2FzLCBPa2xhaG9tYSwgVGV4YXMsIE1pbm5lc290YSwgSW93YSwgTWlzc291cmksIEFya2Fuc2FzLCBMb3Vpc2lhbmEsIFdpc2NvbnNpbiwgaGFsZiBvZiB0aGUgY291bnRpZXMgaW4gSWxsaW5vaXMsIEtlbnR1Y2t5LCBUZW5uZXNzZWUsIE1pc3Npc3NpcHBpLCBBbGFiYW1hLCBTb3V0aCBDYXJvbGluYSwgR2VvcmdpYSwgYW5kIE1hc3NhY2h1c2V0dHMuIFNwZWNpZmljYWxseSwgTm9ydGggRGFrb3RhIGNvbnRhaW5zIHRoZSBtb3N0IGNvdW50aWVzIHdpdGggdGhlIGhpZ2hlc3QgcmVsaWdpb3VzIGFkaGVyZW5jZSByYXRlcyAoYXMgc2VlbiBieSB0aGUgZGFya2VyIGdyZWVuIHNwb3RzKS4gVXRhaCBpcyB0aGUgb25seSBzdGF0ZSBpbiB3aGljaCBldmVyeSBjb3VudGllcyBpcyByZWxpZ2lvdXMuIE5ldyBNZXhpY28gYXBwZWFycyB0byBiZSBzcGxpdCBldmVubHkgYW5kIG92ZXJhbGwsIFdlc3Rlcm4gc3RhdGVzIGFwcGVhciB0byBiZSB0aGUgbGVhc3QgcmVsaWdpb3VzLiANCg0KYGBge3J9DQp1c19zdGF0ZXMgPC0gdF9jb21iX2RhdGEyICU+JSANCiAgYWdncmVnYXRlX21hcChieSA9ICJTVEFURUZQIikNCg0KdG0xPC0gdG1fc2hhcGUodF9jb21iX2RhdGEyLCBwcm9qZWN0aW9uID0gMjE2MykgKyB0bV9wb2x5Z29ucygiUmVsaWdpb3VzIiwgcGFsZXR0ZSA9ICJCckJHIiwgYm9yZGVyLmNvbCA9ICJncmV5IiwgYm9yZGVyLmFscGhhID0gLjQpICsgDQogIHRtX3NoYXBlKHVzX3N0YXRlcykgKyB0bV9ib3JkZXJzKGx3ZCA9IC4zNiwgY29sID0gImJsYWNrIiwgYWxwaGEgPSAxKQ0KdG0xDQpgYGANCg0KLS0tDQoNCiMjVmlvbGVudCBDcmltZSBSYXRlcw0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmxpYnJhcnkocmVhZHIpDQpjcmltZV9kYXRhIDwtIHJlYWRfY3N2KCJDOi9Vc2Vycy9SYXZlbi9EZXNrdG9wL1IxMTY3MDczNV9jcmltZS5jc3YiKQ0KYGBgDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KY3JpbWVfZGF0YSRTRV9UMDA1XzAwMSA8LSBhcy5udW1lcmljKGNyaW1lX2RhdGEkU0VfVDAwNV8wMDEpDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0V9DQpjcmltZV9kYXRhIDwtIGNyaW1lX2RhdGElPiVmaWx0ZXIoIWlzLm5hKCJTRV9UMDA1XzAwMSIpKQ0KYGBgDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KY3JpbWVfZGF0YSA8LSBkcGx5cjo6c2VsZWN0IChjcmltZV9kYXRhLCBTRV9UMDA0XzAwMSwgU0VfVDAwNV8wMDEsIEdlb19GSVBTKQ0KYGBgDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KY3JpbWVfZGF0YTwtY3JpbWVfZGF0YSU+JWZpbHRlcihTRV9UMDA1XzAwMTwxMDAwKQ0KYGBgDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KY3JpbWVfZGF0YSA8LSByZW5hbWUgKGNyaW1lX2RhdGEsIA0KICAgICAgICAgICAgICAgIlZpb2xlbnRDcmltZVJhdGUiID0gU0VfVDAwNV8wMDEpDQpgYGANCg0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmxpYnJhcnkoZHBseXIpDQpjcmltZV9kYXRhMiA8LSBjcmltZV9kYXRhICU+JSANCiBtdXRhdGUgKGZpcHMgPSBwYXJzZV9pbnRlZ2VyKEdlb19GSVBTKSkgDQp0X2NvdW50eSA8LSB0X2NvdW50eSAlPiUgDQogIG11dGF0ZShmaXBzID0gcGFyc2VfaW50ZWdlcihHRU9JRCkpIA0KY19jb21iX2RhdGEgPC0gdF9jb3VudHkgJT4lIA0KICBsZWZ0X2pvaW4oY3JpbWVfZGF0YTIsIGJ5ID0gImZpcHMiKQ0KYGBgDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KY19jb21iX2RhdGEyIDwtIGNfY29tYl9kYXRhICU+JSANCiAgZmlsdGVyKFNUQVRFRlAgIT0gIjAyIikgJT4lIA0KICBmaWx0ZXIoU1RBVEVGUCAhPSAiMTUiKSAlPiUNCiAgZmlsdGVyKFNUQVRFRlAgIT0gIjYwIikgJT4lIA0KICBmaWx0ZXIoU1RBVEVGUCAhPSAiNjYiKSAlPiUNCiAgZmlsdGVyKFNUQVRFRlAgIT0gIjY5IikgJT4lIA0KICBmaWx0ZXIoU1RBVEVGUCAhPSAiNzIiKSAlPiUNCiAgZmlsdGVyKFNUQVRFRlAgIT0gIjc5IikgJT4lDQogIGZpbHRlcihTVEFURUZQICE9ICI3OCIpDQpgYGANCg0KQXMgc2VlbiBieSB0aGUgZm9sbG93aW5nIG1hcCwgaXQgYXBwZWFycyB0aGF0IG1vc3Qgc3RhdGVzIGhhdmUgdmFyeWluZyBkZWdyZWVzIG9mIHZpb2xlbnQgY3JpbWUgYWN0aXZpdHkuIE1hbnkgc3RhdGVzIGhhdmUgY291bnRpZXMgd2l0aCByZWxhdGl2ZWx5IGhpZ2ggcmF0ZXMsIGFuZCB0aGVzZSBzYW1lIHN0YXRlcyBoYXZlIGNvdW50aWVzIHdpdGggcmVsYXRpdmVseSBsb3cgb25lcy4gT3ZlcmFsbCwgYSBmZXcgc3RhdGVzIHdpdGggZXh0cmVtZWx5IGhpZ2gtY3JpbWUgY291bnRpZXMgaW5jbHVkZSBDYWxpZm9ybmlhLCBOZWJyYXNrYSwgTmV3IE1leGljbywgU291dGggQ2Fyb2xpbmEsIGFuZCBGbG9yaWRhLiBDb250cmFyaWx5LCBjb3VudGllcyB3aXRoIHNvbWUgb2YgdGhlIGxvd2VzdCB2aW9sZW50IGNyaW1lIHJhdGVzIGJlbG9uZyB0byBzdGF0ZXMgc3VjaCBhcyBXeW9taW5nLCBNYWluZSwgS2VudHVja3ksIGFuZCBWaXJnaW5pYS4gIA0KDQpgYGB7cn0NCnVzX3N0YXRlcyA8LSBjX2NvbWJfZGF0YTIgJT4lIA0KICBhZ2dyZWdhdGVfbWFwKGJ5ID0gIlNUQVRFRlAiKQ0KDQp0bTIgPC0gdG1fc2hhcGUoY19jb21iX2RhdGEyLCBwcm9qZWN0aW9uID0gMjE2MykgKyB0bV9wb2x5Z29ucygiVmlvbGVudENyaW1lUmF0ZSIsIHBhbGV0dGUgPSAiUGlZRyIsIGJvcmRlci5jb2wgPSAiZ3JleSIsIGJvcmRlci5hbHBoYSA9IC40LCBicmVha3M9YygwLDEwMCwyMDAsMzAwLDQwMCw1MDAsSW5mKSkgKyANCiAgdG1fc2hhcGUodXNfc3RhdGVzKSArIHRtX2JvcmRlcnMobHdkID0gLjM2LCBjb2wgPSAiYmxhY2siLCBhbHBoYSA9IDEpDQp0bTINCmBgYA0KDQojI01hcCBDb21wYXJpc29uDQoNClRoZSBnb2FsIG9mIHRoaXMgYW5hbHlzaXMgaXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgcmVsaWdpb3VzIGNvdW50aWVzL3N0YXRlcyBoYXZlIGxvd2VyIHZpb2xlbnQgY3JpbWUgcmF0ZXMgdGhhbiB0aGVpciBsZXNzIHJlbGlnaW91cyBjb3VudGVycGFydHMuIFRvIGRvIHNvLCBJIGFycmFuZ2VkIHRoZSB0d28gbWFwcyBzaWRlIGJ5IHNpZGUuIE92ZXJhbGwsIGFmdGVyIGNvbXBhcmluZyBib3RoIG1hcHMsIHRoZXJlIGRvZXMgbm90IGFwcGVhciB0byBiZSBlbm91Z2ggZXZpZGVuY2UgdG8gc3VnZ2VzdCByZWxpZ2lvdXMgc3RhdGVzIGhhdmUgbG93ZXIgY3JpbWUgcmF0ZXMuIEl0IGlzIGluZGVlZCB0aGUgY2FzZSBmb3Igc29tZSBzdGF0ZXMsIGhvd2V2ZXIuIEZvciBleGFtcGxlLCBVdGFoIGlzIGEgcmVsaWdpb3VzIHN0YXRlLCBhbmQgdGhleSBhcHBlYXIgdG8gaGF2ZSBhIHJlbGF0aXZlbHkgbG93IGNyaW1lIHJhdGUuIFRoaXMgaXMgYWxzbyB0aGUgY2FzZSBmb3Igc3RhdGVzIGxpa2UgTm9ydGggRGFrb3RhLCBTb3V0aCBEYWtvdGEsIGFuZCBOZWJyYXNrYS4gSG93ZXZlciwgdGhlcmUgYXJlIG90aGVyIHN0YXRlcyB3aGljaCBjb250cmFkaWN0IHRoZSBub3Rpb24gdGhhdCByZWxpZ2lvdXMgc3RhdGVzIGhhdmluZyBsb3dlciBjcmltZSByYXRlcy4gRm9yIGV4YW1wbGUsIFNvdXRoIENhcm9saW5hIGlzIGEgZmFpcmx5IHJlbGlnaW91cyBzdGF0ZSwgbWVhbndoaWxlLCB0aGVpciBjcmltZSByYXRlcyBhcmUgcmVsYXRpdmVseSBoaWdoIGNvbXBhcmVkIHRvIG5laWdoYm9yaW5nIGFyZWFzLiBUaGlzIGlzIGFsc28gdGhlIGNhc2UgZm9yIExvdWlzaWFuYSBhbmQgTWFzc2FjaHVzZXR0cy4gVWx0aW1hdGVseSwgdGhlcmUgaXMgbm8gIHN1ZmZpY2llbnQgZW5vdWdoIGluZGljYXRpb24gb2YgcmVsaWdpb3VzIHN0YXRlcyBoYXZpbmcgbG93ZXIgdmlvbGVudCBjcmltZSByYXRlcyB0aGFuIG1vcmUgc2VjdWxhciBvbmVzLiBXaGlsZSB0aGlzIGlzIGluZGVlZCB0cnVlIGZvciBzb21lIHN0YXRlcywgaXQgaXMgbm90IHRoZSBjYXNlIGZvciBhbGwuIEFzIGZvciB0aGUgc3RhdGVzIHdoZXJlIHRoaXMgaXMgdGhlIGNhc2UsIGl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgdGhlcmUgY291bGQgYmUgb3RoZXIgZmFjdG9ycyBhdCBwbGF5LiBUbyBmdWxseSBhc3Nlc3MgdGhpcyB3b3VsZCByZXF1aXJlIGEgbW9yZSB0aG9yb3VnaCBhbmFseXNpcy4gDQoNCmBgYHtyIGZpZy53aWR0aD0xMCwgZWNobz1GQUxTRX0NCnRtYXBfYXJyYW5nZSh0bTEsdG0yKQ0KYGBgDQoNCi0tLQ0KDQojI0EgTm9uLVNwYXRpYWwgQXBwcm9hY2ggdG8gSWxsdXN0cmF0aW5nIERhdGENCg0KT25lIG5vbi1zcGF0aWFsIGFwcHJvYWNoIHRvIHByZXNlbnRpbmcgZGF0YSBpcyBieSBjcmVhdGluZyB0aGUgaGlzdG9ncmFtcyBiZWxvdyBmb3IgZWFjaCB2YXJpYWJsZSBvZiBpbnRlcmVzdC4gQ2xlYXJseSwgdGhpcyBtZXRob2QgY2Fubm90IGJlIHVzZWQgdG8gYW5zd2VyIG15IHJlc2VhcmNoIHF1ZXN0aW9uIGFzIEkgYW0gaW50ZXJlc3RlZCBpbiB3aGV0aGVyIHJlbGlnaW91cyBjb3VudGllcyBoYXZlIGxvd2VyIHZpb2xlbnQgY3JpbWUgcmF0ZXMsIGFuZCBpZiBzbywgd2hpY2ggb25lcy4gVGhlIGdyYXBocyBiZWxvdyBwcmVzZW50IHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIGRhdGEsIHdoaWNoIGlzIG9ubHkgc3VpdGFibGUgZm9yIGV4cGxvcmF0b3J5IHB1cnBvc2VzIGluIHRoaXMgY2FzZS4gDQoNCiMjI0ZpZ3VyZSAxLiBSZWxpZ2lvdXMgQWRoZXJlbmNlIFJhdGUNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KZ2dwbG90KHNlX2RhdGEyLCBhZXMoeD1SZWxpZ2lvdXMpKSArIGdlb21faGlzdG9ncmFtKCkNCmBgYA0KDQojIyNGaWd1cmUgMi4gVmlvbGVudCBDcmltZSBSYXRlDQoNClRoZSBkYXRhIGFwcGVhcnMgdG8gYmUgcG9zaXRpdmVseSBza2V3ZWQ7IGV4dHJlbWVseSBoaWdoIHZpb2xlbnQgY3JpbWUgcmF0ZXMgYXJlIG5vdCBuZWFybHkgYXMgY29tbW9uLiANCmBgYHtyLCBlY2hvPUZBTFNFfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KZ2dwbG90KGNyaW1lX2RhdGEyLCBhZXMoeD1WaW9sZW50Q3JpbWVSYXRlKSkgKyBnZW9tX2hpc3RvZ3JhbSgpDQpgYGANCg0KIyMjQWR2YW50YWdlcyBhbmQgRGlzYWR2YW50YWdlcyB0byBTcGF0aWFsIGFuZCBOb24tc3BhdGlhbCBBcHByb2FjaCANCg0KVGhlIG1haW4gYWR2YW50YWdlIG9mIG1hcHBpbmcgc3BhdGlhbCBkYXRhIGlzIHRoYXQgaXQgZGlzcGxheXMgaW5mb3JtYXRpb24gZ2VvZ3JhcGhpY2FsbHksIHdoZXJlYXMgdGhlIGNvbnZlbnRpb25hbCwgbm9uLXNwYXRpYWwgYXBwcm9hY2ggZG9lcyBub3QuIFNvbWV0aW1lcyB0aGUgcmVzZWFyY2ggcXVlc3Rpb24gY2FsbHMgZm9yIHRoaXMgbWV0aG9kLCBhbmQgc29tZXRpbWVzIGl0IHdpbGwgbm90LiBGb3IgdGhpcyBwYXJ0aWN1bGFyIGFuYWx5c2lzLCB0aGUgc3BhdGlhbCBjb21wb25lbnQgaXMgbmVjZXNzYXJ5IGFzIG15IHJlc2VhcmNoIHF1ZXN0aW9uIGludm9sdmVzIGNvdW50aWVzL3N0YXRlcy4gSW4gbXkgb3BpbmlvbiwgdGhpcyBhcHByb2FjaCBpcyBhbHNvIG1vcmUgYXBwZWFsaW5nLiBIb3dldmVyLCB3aGVuIHRoZSBnb2FsIGlzIG5vdCB0byBpbGx1c3RyYXRlIGluZm9ybWF0aW9uIHN1Y2ggYXMgY291bnR5IG9yIHN0YXRlLWxldmVsIGRhdGEsIHRoZSBjb252ZW50aW9uYWwgYXBwcm9hY2ggKGUuZy4saGlzdG9ncmFtcywgcmVncmVzc2lvbnMsIGxpbmUgZ3JhcGhzKSBpcyBqdXN0IGFzIHVzZWZ1bC4gSXQgYWxsb3dzIHVzIHRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkYXRhIGFuZCBob3cgaXQgaXMgZGlzdHJpYnV0ZWQuIE92ZXJhbGwsIGl0IGlzIGEgbW9yZSBzdGF0aXN0aWNhbCBhbmQgcHJlY2lzZSBhcHByb2FjaC4gSG93ZXZlciwgdGhlIG1haW4gd2Vha25lc3Mgb2YgdGhlIGNvbnZlbnRpb25hbCBhcHByb2FjaCBpcyB0aGF0IGl0IG1pc3NpbmcgdGhlIHNwYXRpYWwgZWxlbWVudC4gQXMgc2VlbiBpbiB0aGUgaGlzdG9ncmFtcyBhYm92ZSwgaXQgZG9lcyBub3QgYWNjb3VudCBmb3IgZ2VvZ3JhcGhpYyBkaWZmZXJlbmNlcyB0aGUgd2F5IGEgbWFwIGRvZXMuIFRoZSBjb252ZW50aW9uYWwgd2F5IHRvIHByZXNlbnQgZGF0YSBpcyBub3QgYXMgbXVsdGktZGltZW5zaW9uYWwuIEl0IG1heSBhbHNvIGJlIG1vcmUgZGlmZmljdWx0IGZvciBzb21lIHBlb3BsZSB0byBjb25jZXB0dWFsaXplIGNvbXBhcmVkIHRvIGEgbWFwLiBPdmVyYWxsLCBib3RoIHRoZSBzcGF0aWFsIGFuZCBub24tc3BhdGlhbCBhcHByb2FjaGVzIGFyZSB1c2VmdWwuIENob29zaW5nIG9uZSBvdmVyIHRoZSBvdGhlciBpcyBzb2xlbHkgYmFzZWQgb24gdGhlIHN0b3J5IHRoZSByZXNlYXJjaGVyIGlzIHRyeWluZyB0byB0ZWxsLg0KDQoNCg0KW14xXTogWnVja2VybWFuLCBQLiAoMjAxNSwgT2N0b2JlciAzMCkuIFRoaW5rIFJlbGlnaW9uIE1ha2VzIFNvY2lldHkgTGVzcyBWaW9sZW50PyBUaGluayBBZ2Fpbi4gUmV0cmlldmVkIGZyb20gaHR0cDovL3d3dy5sYXRpbWVzLmNvbS9vcGluaW9uL29wLWVkL2xhLW9lLTExMDEtenVja2VybWFuLXZpb2xlbmNlLXNlY3VsYXJpc20tMjAxNTExMDEtc3RvcnkuaHRtbC4NCg0KDQoNCg==