Overview

I found that county-level crime rates (violent, property, and total) have little statistical impact on educational outcomes in West Virginia. There are a few reasons for this including generally low crime rates, positive correlation between funding and crime rates, and positive correlation between funding and educational outcomes.

The educational outcome I thought would be most impacted by crime rates was 11th grade math. I tested multiple grade levels and subjects before choosing this measure.

Correlations

Firstly, observing the correlations between these variables reveals interesting relationships with crime rates. For Example)

Crime rates are positively correlated with population, which has a strong pull on the model by influencing revenues and enrollment.

Surprisingly, but likely tied to their correlation with population, crime rates have a positive correlation with 11th grade math proficiency. This trend held true across grade levels and subjects.

Linear Regression Model

This model utilizes unemployment and total crime rate to predict 11th grade math scores. I intentionally excluded revenue from the model, as local revenue is by far the best predictor in the dataset which could overpower the other factors.


Call:
lm(formula = math_proficiency ~ total_crime_rate + unemployed, 
    data = t_train)

Residuals:
     Min       1Q   Median       3Q      Max 
-10.7893  -4.8249  -0.8843   3.3967  22.9208 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)       24.4371     4.0317   6.061 6.41e-07 ***
total_crime_rate   0.2271     0.1504   1.511   0.1399    
unemployed        -0.9998     0.3919  -2.551   0.0153 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 7.138 on 35 degrees of freedom
Multiple R-squared:  0.2438,    Adjusted R-squared:  0.2006 
F-statistic: 5.642 on 2 and 35 DF,  p-value: 0.007519
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
-13.20134  -2.80471  -0.58314   0.08583   6.82420  10.03340 
Warning: Ignoring unknown parameters: `method`

Additional Plots

Below are some additional plots which are helpful in understanding why crime rates are positively correlated with educational outcomes in West Virginia.

Discussion and Explanation

West Virginia is one of the lowest crime-rate states in the country, ranking in the bottom 10 in terms of crime rates. The state is also mostly rural with small populations and low funding.

Higher population areas in WV have (while still low) higher crime rates, but they also have higher populations, more funding, and generally better educational outcomes. Therefore, the state’s rural demographics and relatively low crime rates create this positive correlation because crime rates serve as a proxy for population and funding.

It is important to note in this example that correlation IS NOT causation. All else equal, one would normally expect higher crime rates to create worse educational outcomes.

Reccomendation

My understanding from analyzing this model is that many districts in WV are so underfunded that higher populations and subsequent increases in crime rates are actually beneficial for educational outcomes due to the higher funding that comes with higher populations. This may be a case where more state or federal funding needs to be allocated to districts that cannot meet their needs with local revenues.

LS0tDQp0aXRsZTogIlRoZSBJbXBhY3Qgb2YgQ3JpbWUgUmF0ZXMgb24gV1YgRWR1Y2F0aW9uYWwgT3V0Y29tZXMiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIE92ZXJ2aWV3DQoNCiMjIyBJIGZvdW5kIHRoYXQgY291bnR5LWxldmVsIGNyaW1lIHJhdGVzICh2aW9sZW50LCBwcm9wZXJ0eSwgYW5kIHRvdGFsKSBoYXZlIGxpdHRsZSBzdGF0aXN0aWNhbCBpbXBhY3Qgb24gZWR1Y2F0aW9uYWwgb3V0Y29tZXMgaW4gV2VzdCBWaXJnaW5pYS4gVGhlcmUgYXJlIGEgZmV3IHJlYXNvbnMgZm9yIHRoaXMgaW5jbHVkaW5nIGdlbmVyYWxseSBsb3cgY3JpbWUgcmF0ZXMsIHBvc2l0aXZlIGNvcnJlbGF0aW9uIGJldHdlZW4gZnVuZGluZyBhbmQgY3JpbWUgcmF0ZXMsIGFuZCBwb3NpdGl2ZSBjb3JyZWxhdGlvbiBiZXR3ZWVuIGZ1bmRpbmcgYW5kIGVkdWNhdGlvbmFsIG91dGNvbWVzLg0KDQojIyMgVGhlIGVkdWNhdGlvbmFsIG91dGNvbWUgSSB0aG91Z2h0IHdvdWxkIGJlIG1vc3QgaW1wYWN0ZWQgYnkgY3JpbWUgcmF0ZXMgd2FzIDExdGggZ3JhZGUgbWF0aC4gSSB0ZXN0ZWQgbXVsdGlwbGUgZ3JhZGUgbGV2ZWxzIGFuZCBzdWJqZWN0cyBiZWZvcmUgY2hvb3NpbmcgdGhpcyBtZWFzdXJlLg0KDQoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCiMjIExvYWQgYXNzZXNzbWVudCBkYXRhDQoNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShjYXJldCkNCmxpYnJhcnkocnBhcnQpDQpsaWJyYXJ5KHJlYWR4bCkNCg0KYXNzZXNzbWVudF9wYXRoIDwtICcuL3d2IGVkIHN0dWRlbnQgYWNoaWV2ZW1lbnQvSGlzdG9yaWNhbF9Bc3Nlc3NtZW50UmVzdWx0c19TWTE1LXRvLVNZMjEueGxzeCcNCg0KDQp0X2Fzc2Vzc19yYXdfc2Nob29sIDwtIHJlYWRfZXhjZWwocGF0aCA9IGFzc2Vzc21lbnRfcGF0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gJ1NZMjEgU2Nob29sICYgRGlzdHJpY3QnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSAnYjI6ZjczMTInKQ0KDQoNCnRfYXNzZXNzX3Jhd19tYXRoIDwtIHJlYWRfZXhjZWwocGF0aCA9IGFzc2Vzc21lbnRfcGF0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gJ1NZMjEgU2Nob29sICYgRGlzdHJpY3QnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSAnYW8zOmFvNzMxMicsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX25hbWVzID0gYygnbWF0aF9wcm9maWNpZW5jeScpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEgPSAnKionKQ0KDQp0X2Fzc2Vzc19yYXcgPC0gdF9hc3Nlc3NfcmF3X3NjaG9vbCAlPiUNCiAgYmluZF9jb2xzKHRfYXNzZXNzX3Jhd19tYXRoKSAlPiUgDQogIGphbml0b3I6OmNsZWFuX25hbWVzKCkgIA0KDQoNCiMgUmVtb3ZlIHN1Ymdyb3Vwcw0KdF9hc3Nlc3MgPC0gdF9hc3Nlc3NfcmF3ICU+JSANCiAgZmlsdGVyKHNjaG9vbCA9PSA5OTkpICU+JSANCiAgZmlsdGVyKHBvcHVsYXRpb25fZ3JvdXAgPT0gJ1RvdGFsIFBvcHVsYXRpb24nKSAlPiUgDQogIGZpbHRlcihjb3VudHkgIT0gJ1N0YXRld2lkZScpICU+JSANCiAgbXV0YXRlKHByb2ZpY2llbmN5ID0gbWF0aF9wcm9maWNpZW5jeSkgIA0KDQpwcmludCh0X2Fzc2VzcykNCmBgYA0KDQoNCg0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KDQojIyBMb2FkIHNwZW5kaW5nIGRhdGENCg0Kc3BlbmRpbmdfcGF0aCA8LSAnLi91cyBjZW5zdXMgZWQgc3BlbmRpbmcvZWxzZWMyMnQueGxzJw0KDQp0X3NwZW5kaW5nX3JhdyA8LSByZWFkX2V4Y2VsKHBhdGggPSBzcGVuZGluZ19wYXRoLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQgPSAnZWxzZWMyMnQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSAnYTE6Z2IxNDEwNicpICU+JSANCiAgamFuaXRvcjo6Y2xlYW5fbmFtZXMoKQ0KDQoNCmNvb3BlcmF0ZXMgPC0gYygnTU9VTlRBSU4gU1RBVEUgRURVQ0FUSU9OQUwgU0VSVklDRVMgQ09PUEVSQVRJVkUnLA0KICAgICAgICAgICAgICAgICdFQVNURVJOIFBBTkhBTkRMRSBJTlNUUlVDVElPTkFMIENPT1BFUkFUSVZFJywNCiAgICAgICAgICAgICAgICAnU09VVEhFUk4gRURVQ0FUSU9OQUwgU0VSVklDRVMgQ09PUEVSQVRJVkUnKQ0KDQp0X3NwZW5kaW5nIDwtIHRfc3BlbmRpbmdfcmF3ICU+JSANCiAgZmlsdGVyKHN0YXRlID09IDQ5KSAlPiUgDQogIGZpbHRlcighbmFtZSAlaW4lIGNvb3BlcmF0ZXMpICU+JSANCiAgc2VsZWN0KG5hbWUsIGVucm9sbCwgdGZlZHJldiwgdHN0cmV2LCB0bG9jcmV2LCB0b3RhbGV4cCwgcHBjc3RvdCkgJT4lIA0KICBtdXRhdGUoY291bnR5ID0gc3RyX3RvX3RpdGxlKHN0cl9zcGxpdF9pKG5hbWUsICcgJywxKSksDQogICAgICAgICBjb3VudHkgPSBpZmVsc2UoY291bnR5ID09ICdNYycsICdNY0Rvd2VsbCcsIGNvdW50eSkpDQoNCg0KcHJpbnQodF9zcGVuZGluZykNCmBgYA0KDQoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCiMjIExvYWQgZGVtb2dyYXBoaWMgZGF0YQ0KICANCg0KdF9kZW1vZ3JhcGhpY3NfdW5lbXBsb3llZCA8LSByZWFkX2NzdignLi9kZW1vZ3JhcGhpY3MvdW5lbXBsb3llZC5jc3YnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwID0gNCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYSA9ICdOL0EnKSAlPiUNCiAgamFuaXRvcjo6Y2xlYW5fbmFtZXMoKSAlPiUgDQogIGZpbHRlcihjb3VudHkgIT0gJ1dlc3QgVmlyZ2luaWEnLA0KICAgICAgICAgY291bnR5ICE9ICdVbml0ZWQgU3RhdGVzJywNCiAgICAgICAgICFpcy5uYSh2YWx1ZV9wZXJjZW50KSApICU+JSANCiAgc2VsZWN0KGNvdW50eSwgdmFsdWVfcGVyY2VudCkgJT4lDQogIHJlbmFtZSh1bmVtcGxveWVkID0gdmFsdWVfcGVyY2VudCkNCg0KDQp0X2RlbW9ncmFwaGljcyA8LSAgdF9kZW1vZ3JhcGhpY3NfdW5lbXBsb3llZA0KDQpwcmludCh0X2RlbW9ncmFwaGljcykNCmBgYA0KDQoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCg0KIyMgSm9pbmVkIGRhdGENCg0KIyBNZXJnZSBkYXRhDQp0IDwtIHRfYXNzZXNzICU+JSANCiAgbGVmdF9qb2luKHRfc3BlbmRpbmcsIGJ5ID0gImNvdW50eSIpICU+JSANCiAgc2VsZWN0KC1zY2hvb2wsIC1zdWJncm91cCwgLXBvcHVsYXRpb25fZ3JvdXAsIC1zY2hvb2xfbmFtZSwgLW5hbWUsIC1wcm9maWNpZW5jeSkgJT4lIA0KICBtdXRhdGUodGVtcF9jb3VudHkgPSBwYXN0ZShjb3VudHksICJDb3VudHkiLCBzZXAgPSAiICIpKSAlPiUgDQogIGxlZnRfam9pbih0X2RlbW9ncmFwaGljcywgYnkgPSBjKCJ0ZW1wX2NvdW50eSIgPSAiY291bnR5IikpICU+JSANCiAgc2VsZWN0KC10ZW1wX2NvdW50eSkgJT4lIA0KICBtdXRhdGUocmV2X3Blcl9zdHVkZW50ID0gKHRmZWRyZXYgKyB0c3RyZXYgKyB0bG9jcmV2KSAvIGVucm9sbCAqIDEwMDApICU+JSANCiAgbXV0YXRlKHN1cnBsdXNfcGVyX3N0dWRlbnQgPSByZXZfcGVyX3N0dWRlbnQgLSBwcGNzdG90KQ0KDQp0X2NyaW1lIDwtIHJlYWQuY3N2KCd3dl9jcmltZS5jc3YnKSAlPiUgDQogIHJlbmFtZShjb3VudHkgPSAnQ291bnR5JykNCg0KdCA8LSB0ICU+JSANCiAgbGVmdF9qb2luKHRfY3JpbWUsIGJ5ID0gJ2NvdW50eScpICU+JSANCiAgcmVuYW1lKHBvcF8yMDE5ID0gJ1gyMDE5LlBvcHVsYXRpb24nLA0KICAgICAgICAgdmlvbGVudF9jcmltZV9yYXRlID0gJ1Zpb2xlbnQuQ3JpbWUuUmF0ZScsDQogICAgICAgICBwcm9wZXJ0eV9jcmltZV9yYXRlID0gJ1Byb3BlcnR5LkNyaW1lLlJhdGUnLA0KICAgICAgICAgdG90YWxfY3JpbWVfcmF0ZSA9ICdUb3RhbC5DcmltZS5SYXRlJykgJT4lIA0KICBtdXRhdGUocGVyY2VudF9zdHVkZW50ID0gZW5yb2xsIC8gcG9wXzIwMTkgKiAxMDApDQpgYGANCg0KDQojIyBDb3JyZWxhdGlvbnMNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoZ2djb3JycGxvdCkNCg0KdF9udW1lcmljIDwtIHQgJT4lIA0KICBtdXRhdGUocG9wXzIwMTkgPSBhcy5udW1lcmljKHBvcF8yMDE5KSkgJT4lIA0KICBzZWxlY3Qod2hlcmUoaXMubnVtZXJpYykpDQoNCmdnY29ycnBsb3QoY29yKHRfbnVtZXJpYyksIA0KICAgICAgICAgICBjb2xvcnMgPSBjKCJkYXJrcmVkIiwgIndoaXRlIiwgInB1cnBsZTQiKSkNCmBgYA0KDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGluY2x1ZGU9RkFMU0V9DQpjb3IodF9udW1lcmljKQ0KY29yLnRlc3QodF9udW1lcmljJHJldl9wZXJfc3R1ZGVudCwgdF9udW1lcmljJG1hdGhfcHJvZmljaWVuY3kpDQpjb3IudGVzdCh0X251bWVyaWMkcHBjc3RvdCwgdF9udW1lcmljJG1hdGhfcHJvZmljaWVuY3kpDQpjb3IudGVzdCh0X251bWVyaWMkdG90YWxfY3JpbWVfcmF0ZSwgdF9udW1lcmljJG1hdGhfcHJvZmljaWVuY3kpDQpgYGANCg0KIyMjIEZpcnN0bHksIG9ic2VydmluZyB0aGUgY29ycmVsYXRpb25zIGJldHdlZW4gdGhlc2UgdmFyaWFibGVzIHJldmVhbHMgaW50ZXJlc3RpbmcgcmVsYXRpb25zaGlwcyB3aXRoIGNyaW1lIHJhdGVzLiBGb3IgRXhhbXBsZSkNCg0KIyMjIENyaW1lIHJhdGVzIGFyZSBwb3NpdGl2ZWx5IGNvcnJlbGF0ZWQgd2l0aCBwb3B1bGF0aW9uLCB3aGljaCBoYXMgYSBzdHJvbmcgcHVsbCBvbiB0aGUgbW9kZWwgYnkgaW5mbHVlbmNpbmcgcmV2ZW51ZXMgYW5kIGVucm9sbG1lbnQuDQoNCiMjIyBTdXJwcmlzaW5nbHksIGJ1dCBsaWtlbHkgdGllZCB0byB0aGVpciBjb3JyZWxhdGlvbiB3aXRoIHBvcHVsYXRpb24sIGNyaW1lIHJhdGVzIGhhdmUgYSBwb3NpdGl2ZSBjb3JyZWxhdGlvbiB3aXRoIDExdGggZ3JhZGUgbWF0aCBwcm9maWNpZW5jeS4gVGhpcyB0cmVuZCBoZWxkIHRydWUgYWNyb3NzIGdyYWRlIGxldmVscyBhbmQgc3ViamVjdHMuDQoNCg0KDQojIyBMaW5lYXIgUmVncmVzc2lvbiBNb2RlbA0KDQojIyMgVGhpcyBtb2RlbCB1dGlsaXplcyB1bmVtcGxveW1lbnQgYW5kIHRvdGFsIGNyaW1lIHJhdGUgdG8gcHJlZGljdCAxMXRoIGdyYWRlIG1hdGggc2NvcmVzLiBJIGludGVudGlvbmFsbHkgZXhjbHVkZWQgcmV2ZW51ZSBmcm9tIHRoZSBtb2RlbCwgYXMgbG9jYWwgcmV2ZW51ZSBpcyBieSBmYXIgdGhlIGJlc3QgcHJlZGljdG9yIGluIHRoZSBkYXRhc2V0IHdoaWNoIGNvdWxkIG92ZXJwb3dlciB0aGUgb3RoZXIgZmFjdG9ycy4NCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCnNldC5zZWVkKDEpDQoNCnNhbXBsZSA8LSBzYW1wbGUobnJvdyh0X251bWVyaWMpLCBzaXplID0gMC43ICogbnJvdyh0X251bWVyaWMpKQ0KDQp0X3RyYWluIDwtIHRfbnVtZXJpYyAlPiUgc2xpY2Uoc2FtcGxlKQ0KdF90ZXN0IDwtIHRfbnVtZXJpYyAlPiUgc2xpY2UoLXNhbXBsZSkNCmBgYA0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQptMSA8LSBsbShmb3JtdWxhID0gbWF0aF9wcm9maWNpZW5jeSB+IHRvdGFsX2NyaW1lX3JhdGUgKyB1bmVtcGxveWVkLCBkYXRhID0gdF90cmFpbikNCnN1bW1hcnkobTEpDQpgYGANCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KdF90ZXN0IDwtIHRfdGVzdCAlPiUgDQogIG11dGF0ZShwcmVkaWN0ZWQgPSBwcmVkaWN0KG0xLCBuZXdkYXRhID0gdF90ZXN0KSkgJT4lIA0KICBtdXRhdGUocmVzaWR1YWxzID0gcHJlZGljdGVkIC0gbWF0aF9wcm9maWNpZW5jeSkNCg0Kc3VtbWFyeSh0X3Rlc3QkcmVzaWR1YWxzKQ0KDQpnZ3Bsb3QodF90ZXN0KSArDQogIGFlcyh4ID0gcHJlZGljdGVkLCB5ID0gbWF0aF9wcm9maWNpZW5jeSkgKw0KICBnZW9tX3BvaW50KGNvbG9yID0gIiMxMTI0NDYiKSArDQogIGdlb21fYWJsaW5lKG1ldGhvZCA9IGxtKSArDQogIGNvb3JkX2VxdWFsKCkgKw0KICB0aGVtZV9taW5pbWFsKCkNCg0KDQoNCg0KYGBgDQojIyBBZGRpdGlvbmFsIFBsb3RzDQoNCiMjIyBCZWxvdyBhcmUgc29tZSBhZGRpdGlvbmFsIHBsb3RzIHdoaWNoIGFyZSBoZWxwZnVsIGluIHVuZGVyc3RhbmRpbmcgd2h5IGNyaW1lIHJhdGVzIGFyZSBwb3NpdGl2ZWx5IGNvcnJlbGF0ZWQgd2l0aCBlZHVjYXRpb25hbCBvdXRjb21lcyBpbiBXZXN0IFZpcmdpbmlhLg0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpnZ3Bsb3QodCkgKw0KICBhZXMoeCA9IHRvdGFsX2NyaW1lX3JhdGUsIHkgPSBtYXRoX3Byb2ZpY2llbmN5KSArDQogIGdlb21fcG9pbnQoY29sb3IgPSAiIzExMjQ0NiIpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gbG0pICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KZ2dwbG90KHQpICsNCiAgYWVzKHggPSBwb3BfMjAxOSwgeSA9IHRvdGFsX2NyaW1lX3JhdGUpICsNCiAgZ2VvbV9wb2ludChjb2xvciA9ICIjMTEyNDQ2IikgKw0KICBnZW9tX3Ntb290aChtZXRob2QgPSBsbSkgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpnZ3Bsb3QodCkgKw0KICBhZXMoeCA9IGVucm9sbCwgeSA9IHRvdGFsX2NyaW1lX3JhdGUpICsNCiAgZ2VvbV9wb2ludChjb2xvdXIgPSAiIzExMjQ0NiIpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gbG0pICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KZ2dwbG90KHQpICsNCiAgYWVzKHggPSBwZXJjZW50X3N0dWRlbnQsIHkgPSB0b3RhbF9jcmltZV9yYXRlKSArDQogIGdlb21fcG9pbnQoY29sb3VyID0gIiMxMTI0NDYiKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9IGxtKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBgDQoNCiMjIERpc2N1c3Npb24gYW5kIEV4cGxhbmF0aW9uDQoNCiMjIyBXZXN0IFZpcmdpbmlhIGlzIG9uZSBvZiB0aGUgbG93ZXN0IGNyaW1lLXJhdGUgc3RhdGVzIGluIHRoZSBjb3VudHJ5LCByYW5raW5nIGluIHRoZSBib3R0b20gMTAgaW4gdGVybXMgb2YgY3JpbWUgcmF0ZXMuIFRoZSBzdGF0ZSBpcyBhbHNvIG1vc3RseSBydXJhbCB3aXRoIHNtYWxsIHBvcHVsYXRpb25zIGFuZCBsb3cgZnVuZGluZy4gDQoNCiMjIyBIaWdoZXIgcG9wdWxhdGlvbiBhcmVhcyBpbiBXViBoYXZlICh3aGlsZSBzdGlsbCBsb3cpIGhpZ2hlciBjcmltZSByYXRlcywgYnV0IHRoZXkgYWxzbyBoYXZlIGhpZ2hlciBwb3B1bGF0aW9ucywgbW9yZSBmdW5kaW5nLCBhbmQgZ2VuZXJhbGx5IGJldHRlciBlZHVjYXRpb25hbCBvdXRjb21lcy4gVGhlcmVmb3JlLCB0aGUgc3RhdGUncyBydXJhbCBkZW1vZ3JhcGhpY3MgYW5kIHJlbGF0aXZlbHkgbG93IGNyaW1lIHJhdGVzIGNyZWF0ZSB0aGlzIHBvc2l0aXZlIGNvcnJlbGF0aW9uIGJlY2F1c2UgY3JpbWUgcmF0ZXMgc2VydmUgYXMgYSBwcm94eSBmb3IgcG9wdWxhdGlvbiBhbmQgZnVuZGluZy4gDQoNCiMjIyBJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSBpbiB0aGlzIGV4YW1wbGUgdGhhdCBjb3JyZWxhdGlvbiBJUyBOT1QgY2F1c2F0aW9uLiBBbGwgZWxzZSBlcXVhbCwgb25lIHdvdWxkIG5vcm1hbGx5IGV4cGVjdCBoaWdoZXIgY3JpbWUgcmF0ZXMgdG8gY3JlYXRlIHdvcnNlIGVkdWNhdGlvbmFsIG91dGNvbWVzLg0KDQojIyBSZWNjb21lbmRhdGlvbg0KDQojIyMgTXkgdW5kZXJzdGFuZGluZyBmcm9tIGFuYWx5emluZyB0aGlzIG1vZGVsIGlzIHRoYXQgbWFueSBkaXN0cmljdHMgaW4gV1YgYXJlIHNvIHVuZGVyZnVuZGVkIHRoYXQgaGlnaGVyIHBvcHVsYXRpb25zIGFuZCBzdWJzZXF1ZW50IGluY3JlYXNlcyBpbiBjcmltZSByYXRlcyBhcmUgYWN0dWFsbHkgYmVuZWZpY2lhbCBmb3IgZWR1Y2F0aW9uYWwgb3V0Y29tZXMgZHVlIHRvIHRoZSBoaWdoZXIgZnVuZGluZyB0aGF0IGNvbWVzIHdpdGggaGlnaGVyIHBvcHVsYXRpb25zLiBUaGlzIG1heSBiZSBhIGNhc2Ugd2hlcmUgbW9yZSBzdGF0ZSBvciBmZWRlcmFsIGZ1bmRpbmcgbmVlZHMgdG8gYmUgYWxsb2NhdGVkIHRvIGRpc3RyaWN0cyB0aGF0IGNhbm5vdCBtZWV0IHRoZWlyIG5lZWRzIHdpdGggbG9jYWwgcmV2ZW51ZXMuDQoNCiMjIFJlc291cmNlcw0KDQojIyMgIFdWIENyaW1lIFN0YXRzOiBodHRwczovL2Rhcy53di5nb3YvSkNTL09SU1AvU0FDL1B1YmxpY2F0aW9ucy9Eb2N1bWVudHMvQ3JpbWUlMjBpbiUyMFdWLUZpbmFsJTIwQ29weSUyMCUyODElMjklMjAlMjgyJTI5LnBkZg0KDQojIyMgQ3JpbWUgUmF0ZXMgYnkgU3RhdGU6IGh0dHBzOi8vd29ybGRwb3B1bGF0aW9ucmV2aWV3LmNvbS9zdGF0ZS1yYW5raW5ncy9jcmltZS1yYXRlLWJ5LXN0YXRlDQoNCiMjIyBMaW5rOiBodHRwczovL3JwdWJzLmNvbS9DbGF5Y2FuVENvZGUvMTI1MjM4NQ0K