I. Initialization Block

Initializing RStudio

The data set we will use primarily is Data3350 which was produced in 2015 during an undergraduate research project about personality and humor. The VarsData3350 PDF file has descriptions of each variable in the Data3350 file. Both are available for download in D2L. Be sure to put the Data3350 in your R folder in Documents, and make sure your working directory is set the same way (Session menu). The code block below uses the library function to ensure that the Mosaic package is loaded and will import the data frame used in this module: Data3350.

library(mosaic)
library(readxl)
Data3350 = read_excel("Data3350.xlsx")

II. Exercises

  1. Use the thrill-seeking variable Thrill from the Data3350 data frame to test for a significant difference between younger students and older students (G21 variable, with “Y” meaning yes, 21 or older). Test whether thrill-seeking levels are higher for younger students at the 0.05 level of significance.

  2. Use the toxic relationship beliefs variable TxRel from the Data3350 data frame to test for a significant difference between females and males (Sex variable). Use the 0.05 level of significance.

  3. Use the Anxiety variable Anx from the Data3350 data frame to test for a significant difference between females and males (Sex variable). Use the 0.05 level of significance.

  4. Use the Neuroticism variable Neuro from the Data3350 data frame to test for a significant difference between those involved in social Greek fraternities and sororities. Use the 0.05 level of significance.

  5. Use the Neuroticism variable Neuro from the Data3350 data frame to test for a significance difference in levels of Neuroticism based upon Primary Humor Style (PHS variable). Use the 0.05 level of significance, and conduct a post hoc Tukey HSD test if needed, including an mplot.

  6. Use the weight variable from the built-in R data frame ChickWeight to test for a significant difference in the growth of baby chicks based upon the grouping variable Diet. Use the 0.01 level of significance, and conduct a post hoc Tukey HSD test if needed, including an mplot.

  7. Use the Self-Esteem variable SE from the Data3350 data frame to test for a significance difference in levels of Self-Esteem based upon Primary Humor Style (PHS variable). Use the 0.05 level of significance, and conduct a post hoc Tukey HSD test if needed, including an mplot.

  8. Use the count variable from the built-in R data frame InsectSprays to test for a significant difference in the number of insects counted in a certain area based on the type of insecticide used. The variable spray is the grouping variable. Use the 0.01 level of significance, and conduct a post hoc Tukey HSD test if needed, including an mplot.

  9. Use the Adult Playfulness variable Play from the Data3350 data frame to test for a significance difference in levels of Playfulness based upon the Friend-making variable (Friends) which indicates whether the individual is most comfortable making friends with members of the same or opposite sex, or if the preference is equal. Use the 0.05 level of significance, and conduct a post hoc Tukey HSD test if needed, including an mplot.

  10. Use the subset command as shown above for the following hypothesis test. Males are more likely to use Aggressive Humor, and younger folks are more likely to use aggressive humor than older folks. Find the overall aggressive humor average using the (HSAG variable) in the Data3350 data frame. Subset a group of young men who are less than 20 years old, and test the hypothesis that this sub-population has a higher group mean than the overall population mean.

III. Code Blocks

favstats(~ HSAG, data = Data3350)
subset(Data3350, Sex == "F", c(Age,HSAG))
fem = subset(Data3350, Sex == "F", c(Age,HSAG))
yFem = subset(fem, Age < 20, HSAG)
yFem
t.test(~HSAG, data = yFem, 
       mu = 29,
       alternative = "less")
Pre = Data3350$Stress1
Post = Data3350$Stress2
Gain = Post - Pre
favstats(Gain)
histogram(Gain, width = 2)
boxplot(Gain, horizontal = TRUE)
t.test(Gain, alternative = "greater")
t.test(Post , Pre, data = Data3350, 
       paired = TRUE,
       alternative = "greater")
t.test(Post, Pre, 
       paired = FALSE,
       alternative = "greater")
tally(Caff ~ G21, data = Data3350)
favstats(Caff ~ G21, data = Data3350)
favstats(Sleep ~ G21, data = Data3350)
histogram (~ Caff | G21 , data = Data3350, layout = c(1,2))
boxplot( Caff ~ G21 , data = Data3350, horizontal = TRUE, layout = c(1,2))
histogram (~ Sleep | G21 , data = Data3350, layout = c(1,2))
boxplot( Sleep ~ G21 , data = Data3350, horizontal = TRUE, layout = c(1,2))
t.test(Caff ~ G21, data = Data3350,
       alternative = "less")
t.test(Sleep ~ G21, data = Data3350,
       alternative = "greater")
mean(Sleep ~ G21, data = Data3350 )
mean(Sleep ~ G21, data = Data3350 )[[1]][1]-mean(Sleep ~ G21, data = Data3350 )[[2]][1]
tally(shuffle(Sleep) ~ G21 , data = Data3350)
shuf = do(1000) * mean(shuffle(Sleep) ~ G21 , data = Data3350)
shuf$diff = shuf$N - shuf$Y
shuf
sum(shuf$diff > .705)
t.test(OCD ~ Sex, data = Data3350)
t.test(Play ~ G21, data = Data3350,
       alternative = "greater")
t.test(CHS ~ Sex, data = Data3350,
       alternative = "less")
favstats(Neuro ~ PHS, data = Data3350)
mod = lm(Neuro ~ PHS , data = Data3350)
anova(mod)
TukeyHSD(mod, conf.level = 0.95)
mplot(TukeyHSD(mod, conf.level = 0.95))
mod2 = lm(GPA ~ SitClass, data = Data3350)
favstats(GPA ~ SitClass, data = Data3350)
anova(mod2)
mod3 = lm(Opt ~ PHS, data = Data3350)
favstats(Opt ~ PHS, data = Data3350)
anova(mod3)
TukeyHSD(mod3)
mplot(TukeyHSD(mod3))
mod4 = lm(TxRel ~ Friends, data = Data3350)
favstats(TxRel ~ Friends, data = Data3350)
anova(mod4)
mplot(TukeyHSD(mod4, conf.level = .9))
mod5 = lm(Narc ~ PHS, data = Data3350)
favstats(Narc ~ PHS, data = Data3350)
anova(mod5)
TukeyHSD(mod5)
mplot(TukeyHSD(mod5))
LS0tDQp0aXRsZTogIkh5cG90aGVzaXMgVGVzdGluZzogTWVhbnMiDQpzdWJ0aXRsZTogVU5HIE1BVEggMzM1MCAob25saW5lKQ0KYXV0aG9yOiBSb2JiIFNpbm4NCmRhdGU6IEp1bHkgMjAyMA0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5JLiBJbml0aWFsaXphdGlvbiBCbG9jazwvc3Bhbj4NCg0KPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7IG1hcmdpbjogOHB4OyBib3JkZXI6MnB4IGJsYWNrIHNvbGlkOyBwYWRkaW5nOiAwcHggMTBweCA1cHgiPg0KIyMjIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+SW5pdGlhbGl6aW5nIFJTdHVkaW88L3NwYW4+DQpUaGUgZGF0YSBzZXQgd2Ugd2lsbCB1c2UgcHJpbWFyaWx5IGlzICoqRGF0YTMzNTAqKiB3aGljaCB3YXMgcHJvZHVjZWQgaW4gMjAxNSBkdXJpbmcgYW4gdW5kZXJncmFkdWF0ZSByZXNlYXJjaCBwcm9qZWN0IGFib3V0IHBlcnNvbmFsaXR5IGFuZCBodW1vci4gVGhlICoqVmFyc0RhdGEzMzUwKiogUERGIGZpbGUgaGFzIGRlc2NyaXB0aW9ucyBvZiBlYWNoIHZhcmlhYmxlIGluIHRoZSBEYXRhMzM1MCBmaWxlLiBCb3RoIGFyZSBhdmFpbGFibGUgZm9yIGRvd25sb2FkIGluIEQyTC4gQmUgc3VyZSB0byBwdXQgdGhlIERhdGEzMzUwIGluIHlvdXIgUiBmb2xkZXIgaW4gRG9jdW1lbnRzLCBhbmQgbWFrZSBzdXJlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgc2V0IHRoZSBzYW1lIHdheSAoU2Vzc2lvbiBtZW51KS4gVGhlIGNvZGUgYmxvY2sgYmVsb3cgdXNlcyB0aGUgKipsaWJyYXJ5KiogZnVuY3Rpb24gdG8gZW5zdXJlIHRoYXQgdGhlICoqTW9zYWljKiogcGFja2FnZSBpcyBsb2FkZWQgYW5kIHdpbGwgaW1wb3J0IHRoZSBkYXRhIGZyYW1lIHVzZWQgaW4gdGhpcyBtb2R1bGU6ICoqRGF0YTMzNTAqKi4NCmBgYHtyfQ0KbGlicmFyeShtb3NhaWMpDQpsaWJyYXJ5KHJlYWR4bCkNCkRhdGEzMzUwID0gcmVhZF9leGNlbCgiRGF0YTMzNTAueGxzeCIpDQpgYGANCjwvZGl2Pg0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPklJLiBFeGVyY2lzZXM8L3NwYW4+DQoNCjEuIFVzZSB0aGUgdGhyaWxsLXNlZWtpbmcgdmFyaWFibGUgKipUaHJpbGwqKiBmcm9tIHRoZSBEYXRhMzM1MCBkYXRhIGZyYW1lIHRvIHRlc3QgZm9yIGEgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSBiZXR3ZWVuIHlvdW5nZXIgc3R1ZGVudHMgYW5kIG9sZGVyIHN0dWRlbnRzICgqRzIxKiB2YXJpYWJsZSwgd2l0aCAiWSIgbWVhbmluZyB5ZXMsIDIxIG9yIG9sZGVyKS4gVGVzdCB3aGV0aGVyIHRocmlsbC1zZWVraW5nIGxldmVscyBhcmUgaGlnaGVyIGZvciB5b3VuZ2VyIHN0dWRlbnRzIGF0IHRoZSAwLjA1IGxldmVsIG9mIHNpZ25pZmljYW5jZS4NCg0KMi4gVXNlIHRoZSB0b3hpYyByZWxhdGlvbnNoaXAgYmVsaWVmcyB2YXJpYWJsZSAqKlR4UmVsKiogZnJvbSB0aGUgRGF0YTMzNTAgZGF0YSBmcmFtZSB0byB0ZXN0IGZvciBhIHNpZ25pZmljYW50IGRpZmZlcmVuY2UgYmV0d2VlbiBmZW1hbGVzIGFuZCBtYWxlcyAoKlNleCogdmFyaWFibGUpLiBVc2UgdGhlIDAuMDUgbGV2ZWwgb2Ygc2lnbmlmaWNhbmNlLg0KDQozLiBVc2UgdGhlIEFueGlldHkgdmFyaWFibGUgKipBbngqKiBmcm9tIHRoZSBEYXRhMzM1MCBkYXRhIGZyYW1lIHRvIHRlc3QgZm9yIGEgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSBiZXR3ZWVuIGZlbWFsZXMgYW5kIG1hbGVzICgqU2V4KiB2YXJpYWJsZSkuIFVzZSB0aGUgMC4wNSBsZXZlbCBvZiBzaWduaWZpY2FuY2UuDQoNCjQuIFVzZSB0aGUgTmV1cm90aWNpc20gdmFyaWFibGUgKipOZXVybyoqIGZyb20gdGhlIERhdGEzMzUwIGRhdGEgZnJhbWUgdG8gdGVzdCBmb3IgYSBzaWduaWZpY2FudCBkaWZmZXJlbmNlIGJldHdlZW4gdGhvc2UgaW52b2x2ZWQgaW4gc29jaWFsICoqR3JlZWsqKiBmcmF0ZXJuaXRpZXMgYW5kIHNvcm9yaXRpZXMuIFVzZSB0aGUgMC4wNSBsZXZlbCBvZiBzaWduaWZpY2FuY2UuDQoNCjUuIFVzZSB0aGUgTmV1cm90aWNpc20gdmFyaWFibGUgKipOZXVybyoqIGZyb20gdGhlIERhdGEzMzUwIGRhdGEgZnJhbWUgdG8gdGVzdCBmb3IgYSBzaWduaWZpY2FuY2UgZGlmZmVyZW5jZSBpbiBsZXZlbHMgb2YgTmV1cm90aWNpc20gIGJhc2VkIHVwb24gUHJpbWFyeSBIdW1vciBTdHlsZSAoKipQSFMqKiB2YXJpYWJsZSkuIFVzZSB0aGUgMC4wNSBsZXZlbCBvZiBzaWduaWZpY2FuY2UsIGFuZCBjb25kdWN0IGEgKnBvc3QgaG9jKiBUdWtleSBIU0QgdGVzdCBpZiBuZWVkZWQsIGluY2x1ZGluZyBhbiAqKm1wbG90KiouDQoNCjYuIFVzZSB0aGUgKip3ZWlnaHQqKiB2YXJpYWJsZSBmcm9tIHRoZSBidWlsdC1pbiBSIGRhdGEgZnJhbWUgKipDaGlja1dlaWdodCoqIHRvIHRlc3QgZm9yIGEgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSBpbiB0aGUgZ3Jvd3RoIG9mIGJhYnkgY2hpY2tzIGJhc2VkIHVwb24gdGhlIGdyb3VwaW5nIHZhcmlhYmxlICoqRGlldCoqLiBVc2UgdGhlIDAuMDEgbGV2ZWwgb2Ygc2lnbmlmaWNhbmNlLCBhbmQgY29uZHVjdCBhICpwb3N0IGhvYyogVHVrZXkgSFNEIHRlc3QgaWYgbmVlZGVkLCBpbmNsdWRpbmcgYW4gKiptcGxvdCoqLg0KDQo3LiBVc2UgdGhlIFNlbGYtRXN0ZWVtIHZhcmlhYmxlICoqU0UqKiBmcm9tIHRoZSBEYXRhMzM1MCBkYXRhIGZyYW1lIHRvIHRlc3QgZm9yIGEgc2lnbmlmaWNhbmNlIGRpZmZlcmVuY2UgaW4gbGV2ZWxzIG9mIFNlbGYtRXN0ZWVtICBiYXNlZCB1cG9uIFByaW1hcnkgSHVtb3IgU3R5bGUgKCoqUEhTKiogdmFyaWFibGUpLiBVc2UgdGhlIDAuMDUgbGV2ZWwgb2Ygc2lnbmlmaWNhbmNlLCBhbmQgY29uZHVjdCBhICpwb3N0IGhvYyogVHVrZXkgSFNEIHRlc3QgaWYgbmVlZGVkLCBpbmNsdWRpbmcgYW4gKiptcGxvdCoqLg0KDQo4LiBVc2UgdGhlICoqY291bnQqKiB2YXJpYWJsZSBmcm9tIHRoZSBidWlsdC1pbiBSIGRhdGEgZnJhbWUgKipJbnNlY3RTcHJheXMqKiB0byB0ZXN0IGZvciBhIHNpZ25pZmljYW50IGRpZmZlcmVuY2UgaW4gdGhlIG51bWJlciBvZiBpbnNlY3RzIGNvdW50ZWQgaW4gYSBjZXJ0YWluIGFyZWEgYmFzZWQgb24gdGhlIHR5cGUgb2YgaW5zZWN0aWNpZGUgdXNlZC4gVGhlIHZhcmlhYmxlICoqc3ByYXkqKiBpcyB0aGUgZ3JvdXBpbmcgdmFyaWFibGUuIFVzZSB0aGUgMC4wMSBsZXZlbCBvZiBzaWduaWZpY2FuY2UsIGFuZCBjb25kdWN0IGEgKnBvc3QgaG9jKiBUdWtleSBIU0QgdGVzdCBpZiBuZWVkZWQsIGluY2x1ZGluZyBhbiAqKm1wbG90KiouDQoNCjkuIFVzZSB0aGUgQWR1bHQgUGxheWZ1bG5lc3MgdmFyaWFibGUgKipQbGF5KiogZnJvbSB0aGUgRGF0YTMzNTAgZGF0YSBmcmFtZSB0byB0ZXN0IGZvciBhIHNpZ25pZmljYW5jZSBkaWZmZXJlbmNlIGluIGxldmVscyBvZiBQbGF5ZnVsbmVzcyBiYXNlZCB1cG9uIHRoZSBGcmllbmQtbWFraW5nIHZhcmlhYmxlICgqKkZyaWVuZHMqKikgd2hpY2ggaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGluZGl2aWR1YWwgaXMgbW9zdCBjb21mb3J0YWJsZSBtYWtpbmcgZnJpZW5kcyB3aXRoIG1lbWJlcnMgb2YgdGhlIHNhbWUgb3Igb3Bwb3NpdGUgc2V4LCBvciBpZiB0aGUgcHJlZmVyZW5jZSBpcyBlcXVhbC4gVXNlIHRoZSAwLjA1IGxldmVsIG9mIHNpZ25pZmljYW5jZSwgYW5kIGNvbmR1Y3QgYSAqcG9zdCBob2MqIFR1a2V5IEhTRCB0ZXN0IGlmIG5lZWRlZCwgaW5jbHVkaW5nIGFuICoqbXBsb3QqKi4NCg0KMTAuIFVzZSB0aGUgKipzdWJzZXQqKiBjb21tYW5kIGFzIHNob3duIGFib3ZlIGZvciB0aGUgZm9sbG93aW5nIGh5cG90aGVzaXMgdGVzdC4gTWFsZXMgYXJlIG1vcmUgbGlrZWx5IHRvIHVzZSBBZ2dyZXNzaXZlIEh1bW9yLCBhbmQgeW91bmdlciBmb2xrcyBhcmUgbW9yZSBsaWtlbHkgdG8gdXNlIGFnZ3Jlc3NpdmUgaHVtb3IgdGhhbiBvbGRlciBmb2xrcy4gRmluZCB0aGUgb3ZlcmFsbCBhZ2dyZXNzaXZlIGh1bW9yIGF2ZXJhZ2UgdXNpbmcgdGhlICgqKkhTQUcqKiB2YXJpYWJsZSkgaW4gdGhlIERhdGEzMzUwIGRhdGEgZnJhbWUuIFN1YnNldCBhIGdyb3VwIG9mIHlvdW5nIG1lbiB3aG8gYXJlIGxlc3MgdGhhbiAyMCB5ZWFycyBvbGQsIGFuZCB0ZXN0IHRoZSBoeXBvdGhlc2lzIHRoYXQgdGhpcyBzdWItcG9wdWxhdGlvbiBoYXMgYSBoaWdoZXIgZ3JvdXAgbWVhbiB0aGFuIHRoZSBvdmVyYWxsIHBvcHVsYXRpb24gbWVhbi4NCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5JSUkuIENvZGUgQmxvY2tzPC9zcGFuPg0KDQpgYGB7cn0NCmZhdnN0YXRzKH4gSFNBRywgZGF0YSA9IERhdGEzMzUwKQ0KYGBgDQoNCmBgYHtyfQ0Kc3Vic2V0KERhdGEzMzUwLCBTZXggPT0gIkYiLCBjKEFnZSxIU0FHKSkNCmBgYA0KDQpgYGB7cn0NCmZlbSA9IHN1YnNldChEYXRhMzM1MCwgU2V4ID09ICJGIiwgYyhBZ2UsSFNBRykpDQpgYGANCg0KYGBge3J9DQp5RmVtID0gc3Vic2V0KGZlbSwgQWdlIDwgMjAsIEhTQUcpDQp5RmVtDQpgYGANCg0KYGBge3J9DQp0LnRlc3QofkhTQUcsIGRhdGEgPSB5RmVtLCANCiAgICAgICBtdSA9IDI5LA0KICAgICAgIGFsdGVybmF0aXZlID0gImxlc3MiKQ0KYGBgDQoNCmBgYHtyfQ0KUHJlID0gRGF0YTMzNTAkU3RyZXNzMQ0KUG9zdCA9IERhdGEzMzUwJFN0cmVzczINCmBgYA0KDQpgYGB7cn0NCkdhaW4gPSBQb3N0IC0gUHJlDQpgYGANCg0KYGBge3J9DQpmYXZzdGF0cyhHYWluKQ0KYGBgDQoNCmBgYHtyfQ0KaGlzdG9ncmFtKEdhaW4sIHdpZHRoID0gMikNCmJveHBsb3QoR2FpbiwgaG9yaXpvbnRhbCA9IFRSVUUpDQpgYGANCg0KYGBge3J9DQp0LnRlc3QoR2FpbiwgYWx0ZXJuYXRpdmUgPSAiZ3JlYXRlciIpDQpgYGANCg0KYGBge3J9DQp0LnRlc3QoUG9zdCAsIFByZSwgZGF0YSA9IERhdGEzMzUwLCANCiAgICAgICBwYWlyZWQgPSBUUlVFLA0KICAgICAgIGFsdGVybmF0aXZlID0gImdyZWF0ZXIiKQ0KYGBgDQoNCmBgYHtyfQ0KdC50ZXN0KFBvc3QsIFByZSwgDQogICAgICAgcGFpcmVkID0gRkFMU0UsDQogICAgICAgYWx0ZXJuYXRpdmUgPSAiZ3JlYXRlciIpDQpgYGANCg0KYGBge3J9DQp0YWxseShDYWZmIH4gRzIxLCBkYXRhID0gRGF0YTMzNTApDQpgYGANCg0KYGBge3J9DQpmYXZzdGF0cyhDYWZmIH4gRzIxLCBkYXRhID0gRGF0YTMzNTApDQpgYGANCg0KYGBge3J9DQpmYXZzdGF0cyhTbGVlcCB+IEcyMSwgZGF0YSA9IERhdGEzMzUwKQ0KYGBgDQoNCmBgYHtyfQ0KaGlzdG9ncmFtICh+IENhZmYgfCBHMjEgLCBkYXRhID0gRGF0YTMzNTAsIGxheW91dCA9IGMoMSwyKSkNCmJveHBsb3QoIENhZmYgfiBHMjEgLCBkYXRhID0gRGF0YTMzNTAsIGhvcml6b250YWwgPSBUUlVFLCBsYXlvdXQgPSBjKDEsMikpDQpgYGANCg0KYGBge3J9DQpoaXN0b2dyYW0gKH4gU2xlZXAgfCBHMjEgLCBkYXRhID0gRGF0YTMzNTAsIGxheW91dCA9IGMoMSwyKSkNCmJveHBsb3QoIFNsZWVwIH4gRzIxICwgZGF0YSA9IERhdGEzMzUwLCBob3Jpem9udGFsID0gVFJVRSwgbGF5b3V0ID0gYygxLDIpKQ0KYGBgDQoNCmBgYHtyfQ0KdC50ZXN0KENhZmYgfiBHMjEsIGRhdGEgPSBEYXRhMzM1MCwNCiAgICAgICBhbHRlcm5hdGl2ZSA9ICJsZXNzIikNCmBgYA0KDQpgYGB7cn0NCnQudGVzdChTbGVlcCB+IEcyMSwgZGF0YSA9IERhdGEzMzUwLA0KICAgICAgIGFsdGVybmF0aXZlID0gImdyZWF0ZXIiKQ0KYGBgDQoNCmBgYHtyfQ0KbWVhbihTbGVlcCB+IEcyMSwgZGF0YSA9IERhdGEzMzUwICkNCmBgYA0KDQpgYGB7cn0NCm1lYW4oU2xlZXAgfiBHMjEsIGRhdGEgPSBEYXRhMzM1MCApW1sxXV1bMV0tbWVhbihTbGVlcCB+IEcyMSwgZGF0YSA9IERhdGEzMzUwIClbWzJdXVsxXQ0KYGBgDQoNCmBgYHtyfQ0KdGFsbHkoc2h1ZmZsZShTbGVlcCkgfiBHMjEgLCBkYXRhID0gRGF0YTMzNTApDQpgYGANCg0KYGBge3J9DQpzaHVmID0gZG8oMTAwMCkgKiBtZWFuKHNodWZmbGUoU2xlZXApIH4gRzIxICwgZGF0YSA9IERhdGEzMzUwKQ0Kc2h1ZiRkaWZmID0gc2h1ZiROIC0gc2h1ZiRZDQpzaHVmDQpgYGANCg0KYGBge3J9DQpzdW0oc2h1ZiRkaWZmID4gLjcwNSkNCmBgYA0KDQpgYGB7cn0NCnQudGVzdChPQ0QgfiBTZXgsIGRhdGEgPSBEYXRhMzM1MCkNCmBgYA0KDQpgYGB7cn0NCnQudGVzdChQbGF5IH4gRzIxLCBkYXRhID0gRGF0YTMzNTAsDQogICAgICAgYWx0ZXJuYXRpdmUgPSAiZ3JlYXRlciIpDQpgYGANCg0KYGBge3J9DQp0LnRlc3QoQ0hTIH4gU2V4LCBkYXRhID0gRGF0YTMzNTAsDQogICAgICAgYWx0ZXJuYXRpdmUgPSAibGVzcyIpDQpgYGANCg0KYGBge3J9DQpmYXZzdGF0cyhOZXVybyB+IFBIUywgZGF0YSA9IERhdGEzMzUwKQ0KYGBgDQoNCmBgYHtyfQ0KbW9kID0gbG0oTmV1cm8gfiBQSFMgLCBkYXRhID0gRGF0YTMzNTApDQphbm92YShtb2QpDQpgYGANCg0KYGBge3J9DQpUdWtleUhTRChtb2QsIGNvbmYubGV2ZWwgPSAwLjk1KQ0KYGBgDQoNCmBgYHtyfQ0KbXBsb3QoVHVrZXlIU0QobW9kLCBjb25mLmxldmVsID0gMC45NSkpDQpgYGANCg0KYGBge3J9DQptb2QyID0gbG0oR1BBIH4gU2l0Q2xhc3MsIGRhdGEgPSBEYXRhMzM1MCkNCmZhdnN0YXRzKEdQQSB+IFNpdENsYXNzLCBkYXRhID0gRGF0YTMzNTApDQphbm92YShtb2QyKQ0KYGBgDQoNCmBgYHtyfQ0KbW9kMyA9IGxtKE9wdCB+IFBIUywgZGF0YSA9IERhdGEzMzUwKQ0KZmF2c3RhdHMoT3B0IH4gUEhTLCBkYXRhID0gRGF0YTMzNTApDQphbm92YShtb2QzKQ0KYGBgDQoNCmBgYHtyfQ0KVHVrZXlIU0QobW9kMykNCm1wbG90KFR1a2V5SFNEKG1vZDMpKQ0KYGBgDQoNCmBgYHtyfQ0KbW9kNCA9IGxtKFR4UmVsIH4gRnJpZW5kcywgZGF0YSA9IERhdGEzMzUwKQ0KZmF2c3RhdHMoVHhSZWwgfiBGcmllbmRzLCBkYXRhID0gRGF0YTMzNTApDQphbm92YShtb2Q0KQ0KbXBsb3QoVHVrZXlIU0QobW9kNCwgY29uZi5sZXZlbCA9IC45KSkNCmBgYA0KDQpgYGB7cn0NCm1vZDUgPSBsbShOYXJjIH4gUEhTLCBkYXRhID0gRGF0YTMzNTApDQpmYXZzdGF0cyhOYXJjIH4gUEhTLCBkYXRhID0gRGF0YTMzNTApDQphbm92YShtb2Q1KQ0KYGBgDQoNCg0KYGBge3J9DQpUdWtleUhTRChtb2Q1KQ0KbXBsb3QoVHVrZXlIU0QobW9kNSkpDQpgYGANCg0K