Case 1 : Discrimination Against the Handicapped - Randomized Experiment
Cesare, S., R. Tannenbaum, A. Dalessio. (1990) study explored how physical handicaps affect people’s perception of employment qualifications. The researchers prepared five videotaped job interviews which all of them was the same expect the job applicant. In each of videos applicants have different disabilities.
| A |
Wheelchair |
| B |
Crutches |
| C |
Hearing Impaired |
| D |
Amputee |
| E |
No-Handicap |
Then 70 undergraduate students from a US University were randomly assigned to five different versions of the film. After viewing the videos students are asked to rate qualifications of the candidate on a 0 to 10 point qualification index.
Research question was if subjects systematically evaluate qualifications differently according to candidate’s handicap or not…
Display 1 : Stem and leaf diagrams of applicant qualification scores
data<-Sleuth2::case0601
tapply(data$Score,data$Handicap,stem)
The decimal point is at the |
0 | 9
2 | 506
4 | 129149
6 | 1748
The decimal point is at the |
0 | 9
2 | 56268
4 | 063589
6 | 12
The decimal point is at the |
3 | 7
4 | 033
5 | 18
6 | 0234
7 | 445
8 | 5
The decimal point is at the |
0 | 4
2 | 149479
4 | 237589
6 | 5
The decimal point is at the |
0 | 7
2 | 85
4 | 7803
6 | 1124246
$None
NULL
$Amputee
NULL
$Crutches
NULL
$Hearing
NULL
$Wheelchair
NULL
Summary of Statistical Findings - Linear Model
Stem and Leaf plots, points to enough evidence that qualifications differs according to handicap status. Also F-Test results points that handicap status differs significantly among the groups. But it’s not so dominant (F-test P value = 0,30)
summary(fit)
Call:
lm(formula = data$Score ~ data$Handicap)
Residuals:
Min 1Q Median 3Q Max
-3.6429 -1.2089 0.1143 1.3286 2.9000
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.9000 0.4364 11.228 <2e-16 ***
data$HandicapAmputee -0.4714 0.6172 -0.764 0.448
data$HandicapCrutches 1.0214 0.6172 1.655 0.103
data$HandicapHearing -0.8500 0.6172 -1.377 0.173
data$HandicapWheelchair 0.4429 0.6172 0.718 0.476
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.633 on 65 degrees of freedom
Multiple R-squared: 0.1497, Adjusted R-squared: 0.09741
F-statistic: 2.862 on 4 and 65 DF, p-value: 0.03013
Post-Hoc Tests
Presence of relatively weak rejection level H0 leads us to explore differences between distinct handicap status. Tukey-Krammer procedure will be used to assess these relationships. Tukey-Kramer procedure aka. Tukey’s HSD test is a post-hoc extension to F-test and compare’s all possible pairs according to means.
TukeyHSD(aov(lm(data$Score ~ data$Handicap )))
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = lm(data$Score ~ data$Handicap))
$`data$Handicap`
diff lwr upr p adj
Amputee-None -0.4714286 -2.2031613 1.2603042 0.9399911
Crutches-None 1.0214286 -0.7103041 2.7531614 0.4686232
Hearing-None -0.8500000 -2.5817327 0.8817328 0.6442517
Wheelchair-None 0.4428571 -1.2888756 2.1745899 0.9517374
Crutches-Amputee 1.4928572 -0.2388756 3.2245900 0.1232819
Hearing-Amputee -0.3785714 -2.1103042 1.3531614 0.9724743
Wheelchair-Amputee 0.9142857 -0.8174471 2.6460185 0.5781165
Hearing-Crutches -1.8714286 -3.6031614 -0.1396958 0.0277842
Wheelchair-Crutches -0.5785715 -2.3103043 1.1531613 0.8812292
Wheelchair-Hearing 1.2928571 -0.4388757 3.0245899 0.2348142
As it could be seen from the table the largest difference between average score means is measured between Crutches and Hearing Impaired groups. The difference is estimated 1.87 higher for Crutches group with %95 confidence interval from 0.14 to 3.60 points based on Tukey-Kramer procedure. On the other hand regarding on the research question we could observe that none of disabilities reflect significant difference with control group.
Although there is a significant evidence mean levels of scores for each groups are not equal, post-hoc test suggests that it’s the difference between two sub groups, the hearing impaired and crutches is the main reason behind this inference. Apart from these groups there are no other significant diversions between groups.
Linear Contrasts
The study of qualification scores two distinct handicap pairs comes into prominence, as both of them recorded lowest level of distance between average scores of handicaps. So we will focus on comparison of these two blocks to see they are segmented significantly from each other or not. So linear combination of two distinct block could be interpreted as follows. Notice that in order to sustain balance all parameters are multiplied with \(1/2\)
Each group contains 14 members
averages
None Amputee Crutches Hearing Wheelchair
4.90 4.43 5.92 4.05 5.34
\(µ_1\) = Average qualification score for No-Handicaps (4.90)
\(\mu_2\) = Average qualification score for Amputee (4.43)
\(\mu_3\) = Average qualification score for Crutches (5.92)
\(\mu_4\) = Average qualification score for Hearing (4.05)
\(\mu_5\) = Average qualification score for Wheelchair (5.34)
\(y = (\mu_3 + \mu_5)/2 - (\mu_2 - \mu_4)/2\)
\(S_p\) = 1.63 ; 65 df *Residual standard error of initial linear model
Estimation of Linear Model
\(g\) = \((\mu_3+\mu_5)/2 - (\mu_2+\mu_4)/2\) = \((5.921+5.343/2 - 4.429+4.050/2) = 1.393\)
Standard Error of the Estimate
\(SE(g) = 1.63\sqrt{(0)^2/14 + (-1/2)^2/14 + (1/2)^2/14 + (-1/2)^2/14 +(1/2)^2/14}=0.436\)
Construct 95% confidence interval
\(t_{65}(0.975) = 1.997\)
\(1.393\pm(1.997)(0.436)\longrightarrow from \hspace{0.50cm}0.522 \hspace{0.25cm} to \hspace{0.25cm} 2.264\)
since \(t=\frac{g}{SE(g)}=\frac{1.393}{0.436}=3.19\)
as \(t_{65}(0.975)=1.997\)
Finally, fit.contrast function can also be used to estimate parameters.
fit.contrast(lm(data$Score ~ data$Handicap),"data$Handicap",c(0,-1/2,1/2,-1/2,1/2),conf.int=0.95)
Estimate Std. Error t value Pr(>|t|) lower CI upper CI
data$Handicap c=( 0 -0.5 0.5 -0.5 0.5 ) 1.39 0.436 3.19 0.00218 0.521 2.26
Regarding to calculated t stats, we could say there is enough evidence that two distinct blocks are significantly differs from each other. So based on qualification scores there are two different main segments; one Crutches-Wheelchair group and the second Amputee-Hearing Impaired group.
Case 2: Pre Existing Preferences of Fish - A Randomized Experiment
Charles Darwin has proposed that sexual selection of the females could explain showy characteristics of males that are lowering their capacity to survive. However general theory purposes co-evolution of female preference with preferred male trait.
A.L. Basolo proposed and tested a selection model in which females have pre-existing biras for male trait even before males of the same species posses it. She selected the Southern Platy fish whose males don’t naturally develop the sword tails. Six pairs of males were surgically given artificial sword tails. One male of each pair have bright yellow sword, while the other received a transparent sword. Then the subject fishes placed on a tank described bellow, which allows female to spend time both two male fish.
Researcher took 20 minute observation period for all females, and recorded time she spent with the yellow-sword male. Did these females show preference for the males that were given yellow sword tails? Percentage of total time female courtships with yellow sword tailed males is the unit of analysis in this chapter. ##Summary of Statistical Findings
data2<-Sleuth2::case0602
boxplot(data2$Proportion*100 ~ data2$Pair,main="Percentage of time spent with yellow-sword male for 84 females")
options(digits=3)
by(data2$Proportion, data2$Pair,stat.desc)
As it clearly seen from box plots and summary statistics for six pairs, their median and mean levels seems very close to each other. In addition to this visual analysis when F-Test results also states that there is no evidence that mean percentage of time spend with yellow-sword males differs among pairs (p-value = 0.56 / F.Test).
summary(aov(lm(data2$Proportion*100 ~ data2$Pair)))
Df Sum Sq Mean Sq F value Pr(>F)
data2$Pair 5 939 188 0.79 0.56
Residuals 78 18637 239
aov(lm(data2$Proportion*100 ~ data2$Pair))
Call:
aov(formula = lm(data2$Proportion * 100 ~ data2$Pair))
Terms:
data2$Pair Residuals
Sum of Squares 939 18637
Deg. of Freedom 5 78
Residual standard error: 15.5
Estimated effects may be unbalanced
It could be observed from ANOVA table that, between group variation which stayed at 939 level was not enough to state male pairs significantly differs from each other regarding on courtship time. However, current linear model doesn’t take male body size into analysis. A linear effect model which takes body size into consideration would be alternative to see variation orginated from male body size is evident or not.
| Pair1 |
16 |
56.41 |
9.02 |
35 |
5 |
| Pair2 |
14 |
60.89 |
12.48 |
31 |
-3 |
| Pair3 |
17 |
62.43 |
22.29 |
33 |
1 |
| Pair4 |
14 |
67.00 |
14.33 |
34 |
3 |
| Pair5 |
9 |
64.21 |
9.41 |
28 |
-9 |
| Pair4 |
14 |
63.34 |
17.68 |
34 |
3 |
| Pooled |
84 |
62.13 |
15.46 |
Avg=32.5 |
|
Calculate the coefficients for linear combinations
Unlike the Handicap case, this time we have quantative explanatory variable (male body size) and we purpose that time spend with yellow-sword male is a linear function of male body size. So coefficients must be calculşated according to variations from mean
\(C_i=2*(X_i-32.5)\)
note that sum of coefficients are still equals to 0
\(g\)=-25.06
\(SE(g)=54.77\)
\(t=\frac{g}{SE(g)}=\frac{-25.06}{54.77}=-0.458\)
as \(t_{78}(0.975)=1.99\)
fit.contrast(lm(data2$Proportion ~ data2$Pair),"data2$Pair",c(5,-3,1,3,-9,3),conf.int=0.95)
Estimate Std. Error t value Pr(>|t|) lower CI upper CI
data2$Pair c=( 5 -3 1 3 -9 3 ) -0.251 0.548 -0.458 0.648 -1.34 0.839
There is no evidence that male body size has a linear association with group means.
LS0tCnRpdGxlOiAiQ2hhcHRlciA2OiBMaW5lYXIgQ29tYmluYXRpb25zIGFuZCBNdWx0aXBsZSBDb21wYXJpc29ucyBvZiBNZWFucyIKc3VidGl0bGU6ICLDlm1lciBaZXliZWsgLSA0MDMxNjIwMDkiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCiNDYXNlIDEgOiBEaXNjcmltaW5hdGlvbiBBZ2FpbnN0IHRoZSBIYW5kaWNhcHBlZCAtIFJhbmRvbWl6ZWQgRXhwZXJpbWVudCAKCkNlc2FyZSwgUy4sIFIuIFRhbm5lbmJhdW0sIEEuIERhbGVzc2lvLiAoMTk5MCkgc3R1ZHkgZXhwbG9yZWQgaG93IHBoeXNpY2FsIGhhbmRpY2FwcyBhZmZlY3QgcGVvcGxlJ3MgcGVyY2VwdGlvbiBvZiBlbXBsb3ltZW50IHF1YWxpZmljYXRpb25zLiBUaGUgcmVzZWFyY2hlcnMgcHJlcGFyZWQgZml2ZSB2aWRlb3RhcGVkIGpvYiBpbnRlcnZpZXdzIHdoaWNoIGFsbCBvZiB0aGVtIHdhcyB0aGUgc2FtZSBleHBlY3QgdGhlIGpvYiBhcHBsaWNhbnQuIEluIGVhY2ggb2YgdmlkZW9zIGFwcGxpY2FudHMgaGF2ZSBkaWZmZXJlbnQgZGlzYWJpbGl0aWVzLiAKCgoqQXBwbGljYW50KiB8ICAgIF8qRGlzc2FiaWxpdHkqXyAgfAotLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tfApBICAgICAgICAgfCAgICAgV2hlZWxjaGFpciAgfCAgICAgCkIgICAgICAgICB8IENydXRjaGVzICAgICAgICB8CkMgICAgICAgICB8IEhlYXJpbmcgSW1wYWlyZWR8CkQgICAgICAgICB8IEFtcHV0ZWUgICAgICAgICB8CkUgICAgICAgICB8IE5vLUhhbmRpY2FwICAgICB8CgpUaGVuIDcwIHVuZGVyZ3JhZHVhdGUgc3R1ZGVudHMgZnJvbSBhIFVTIFVuaXZlcnNpdHkgd2VyZSByYW5kb21seSBhc3NpZ25lZCB0byBmaXZlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgZmlsbS4gQWZ0ZXIgdmlld2luZyB0aGUgdmlkZW9zIHN0dWRlbnRzIGFyZSBhc2tlZCB0byByYXRlIHF1YWxpZmljYXRpb25zIG9mIHRoZSBjYW5kaWRhdGUgb24gYSAwIHRvIDEwIHBvaW50IHF1YWxpZmljYXRpb24gaW5kZXguIAoKUmVzZWFyY2ggcXVlc3Rpb24gd2FzIGlmIHN1YmplY3RzIHN5c3RlbWF0aWNhbGx5IGV2YWx1YXRlIHF1YWxpZmljYXRpb25zIGRpZmZlcmVudGx5IGFjY29yZGluZyB0byBjYW5kaWRhdGUncyBoYW5kaWNhcCBvciBub3QuLi4KCiMjRGlzcGxheSAxIDogU3RlbSBhbmQgbGVhZiBkaWFncmFtcyBvZiBhcHBsaWNhbnQgcXVhbGlmaWNhdGlvbiBzY29yZXMKYGBge3J9CmRhdGE8LVNsZXV0aDI6OmNhc2UwNjAxCnRhcHBseShkYXRhJFNjb3JlLGRhdGEkSGFuZGljYXAsc3RlbSkKYGBgCgojIyBTdW1tYXJ5IG9mIFN0YXRpc3RpY2FsIEZpbmRpbmdzIC0gTGluZWFyIE1vZGVsIApTdGVtIGFuZCBMZWFmIHBsb3RzLCBwb2ludHMgdG8gZW5vdWdoIGV2aWRlbmNlIHRoYXQgcXVhbGlmaWNhdGlvbnMgZGlmZmVycyBhY2NvcmRpbmcgdG8gaGFuZGljYXAgc3RhdHVzLiBBbHNvIEYtVGVzdCByZXN1bHRzIHBvaW50cyB0aGF0IGhhbmRpY2FwIHN0YXR1cyBkaWZmZXJzIHNpZ25pZmljYW50bHkgYW1vbmcgIHRoZSAgZ3JvdXBzLiBCdXQgaXQncyBub3Qgc28gZG9taW5hbnQgKEYtdGVzdCBQIHZhbHVlID0gMCwzMCkKCmBgYHtyfQpmaXQ8LWxtKGRhdGEkU2NvcmUgfiBkYXRhJEhhbmRpY2FwKQpzdW1tYXJ5KGZpdCkKYGBgCiMjUG9zdC1Ib2MgVGVzdHMKUHJlc2VuY2Ugb2YgcmVsYXRpdmVseSB3ZWFrIHJlamVjdGlvbiBsZXZlbCBIMCBsZWFkcyB1cyB0byBleHBsb3JlIGRpZmZlcmVuY2VzIGJldHdlZW4gZGlzdGluY3QgaGFuZGljYXAgc3RhdHVzLiBUdWtleS1LcmFtbWVyIHByb2NlZHVyZSB3aWxsIGJlIHVzZWQgdG8gYXNzZXNzIHRoZXNlIHJlbGF0aW9uc2hpcHMuIFR1a2V5LUtyYW1lciBwcm9jZWR1cmUgYWthLiBUdWtleSdzIEhTRCB0ZXN0IGlzIGEgcG9zdC1ob2MgZXh0ZW5zaW9uIHRvIEYtdGVzdCBhbmQgY29tcGFyZSdzIGFsbCBwb3NzaWJsZSBwYWlycyBhY2NvcmRpbmcgdG8gbWVhbnMuIApgYGB7cn0KcmVxdWlyZShkcGx5cikKVHVrZXlIU0QoYW92KGxtKGRhdGEkU2NvcmUgIH4gZGF0YSRIYW5kaWNhcCApKSkKYGBgCkFzIGl0IGNvdWxkIGJlIHNlZW4gZnJvbSB0aGUgdGFibGUgdGhlIGxhcmdlc3QgZGlmZmVyZW5jZSBiZXR3ZWVuIGF2ZXJhZ2Ugc2NvcmUgbWVhbnMgaXMgbWVhc3VyZWQgYmV0d2VlbiBDcnV0Y2hlcyBhbmQgSGVhcmluZyBJbXBhaXJlZCBncm91cHMuIFRoZSBkaWZmZXJlbmNlIGlzIGVzdGltYXRlZCAxLjg3IGhpZ2hlciBmb3IgQ3J1dGNoZXMgZ3JvdXAgd2l0aCAlOTUgY29uZmlkZW5jZSBpbnRlcnZhbCBmcm9tIDAuMTQgdG8gMy42MCBwb2ludHMgYmFzZWQgb24gVHVrZXktS3JhbWVyIHByb2NlZHVyZS4gT24gdGhlIG90aGVyIGhhbmQgcmVnYXJkaW5nICBvbiB0aGUgcmVzZWFyY2ggcXVlc3Rpb24gd2UgY291bGQgb2JzZXJ2ZSB0aGF0IG5vbmUgb2YgZGlzYWJpbGl0aWVzIHJlZmxlY3Qgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSB3aXRoIGNvbnRyb2wgZ3JvdXAuIAoKQWx0aG91Z2ggdGhlcmUgaXMgYSBzaWduaWZpY2FudCBldmlkZW5jZSBtZWFuIGxldmVscyBvZiBzY29yZXMgZm9yIGVhY2ggZ3JvdXBzIGFyZSBub3QgZXF1YWwsIHBvc3QtaG9jIHRlc3Qgc3VnZ2VzdHMgdGhhdCBpdCdzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIHN1YiBncm91cHMsIHRoZSBoZWFyaW5nIGltcGFpcmVkIGFuZCBjcnV0Y2hlcyBpcyB0aGUgbWFpbiByZWFzb24gYmVoaW5kIHRoaXMgaW5mZXJlbmNlLiBBcGFydCBmcm9tIHRoZXNlIGdyb3VwcyB0aGVyZSBhcmUgbm8gb3RoZXIgc2lnbmlmaWNhbnQgZGl2ZXJzaW9ucyBiZXR3ZWVuIGdyb3Vwcy4gCgojI0xpbmVhciBDb250cmFzdHMKVGhlIHN0dWR5IG9mIHF1YWxpZmljYXRpb24gc2NvcmVzIHR3byBkaXN0aW5jdCBoYW5kaWNhcCBwYWlycyBjb21lcyBpbnRvIHByb21pbmVuY2UsIGFzIGJvdGggb2YgdGhlbSByZWNvcmRlZCBsb3dlc3QgbGV2ZWwgb2YgZGlzdGFuY2UgYmV0d2VlbiBhdmVyYWdlIHNjb3JlcyBvZiBoYW5kaWNhcHMuIFNvIHdlIHdpbGwgZm9jdXMgb24gY29tcGFyaXNvbiBvZiB0aGVzZSB0d28gYmxvY2tzIHRvIHNlZSB0aGV5IGFyZSBzZWdtZW50ZWQgc2lnbmlmaWNhbnRseSBmcm9tIGVhY2ggb3RoZXIgb3Igbm90LiBTbyBsaW5lYXIgY29tYmluYXRpb24gb2YgdHdvIGRpc3RpbmN0IGJsb2NrIGNvdWxkIGJlIGludGVycHJldGVkIGFzIGZvbGxvd3MuIE5vdGljZSB0aGF0IGluIG9yZGVyIHRvIHN1c3RhaW4gYmFsYW5jZSBhbGwgcGFyYW1ldGVycyBhcmUgbXVsdGlwbGllZCB3aXRoICQxLzIkCgpFYWNoIGdyb3VwIGNvbnRhaW5zIDE0IG1lbWJlcnMgCgpgYGB7cn0KYXZlcmFnZXM8LXRhcHBseShkYXRhJFNjb3JlLGRhdGEkSGFuZGljYXAsbWVhbikKYXZlcmFnZXMKdGFibGUoYXZlcmFnZXMsc3RyaW5nc0FzRmFjdG9ycz1UUlVFKQo/dGFibGUKYGBgCgoKJMK1XzEkID0gQXZlcmFnZSBxdWFsaWZpY2F0aW9uIHNjb3JlIGZvciBOby1IYW5kaWNhcHMgKDQuOTApCgokXG11XzIkID0gQXZlcmFnZSBxdWFsaWZpY2F0aW9uIHNjb3JlIGZvciBBbXB1dGVlICg0LjQzKQogCiRcbXVfMyQgPSBBdmVyYWdlIHF1YWxpZmljYXRpb24gc2NvcmUgZm9yIENydXRjaGVzICg1LjkyKQoKJFxtdV80JCA9IEF2ZXJhZ2UgcXVhbGlmaWNhdGlvbiBzY29yZSBmb3IgSGVhcmluZyAoNC4wNSkKCiRcbXVfNSQgPSBBdmVyYWdlIHF1YWxpZmljYXRpb24gc2NvcmUgZm9yIFdoZWVsY2hhaXIgKDUuMzQpCgokeSA9IChcbXVfMyArIFxtdV81KS8yIC0gKFxtdV8yIC0gXG11XzQpLzIkCgoKJFNfcCQgPSAxLjYzIDsgNjUgZGYgKlJlc2lkdWFsIHN0YW5kYXJkIGVycm9yIG9mIGluaXRpYWwgbGluZWFyIG1vZGVsIAoKRXN0aW1hdGlvbiBvZiBMaW5lYXIgTW9kZWwgCgokZyQgPSAkKFxtdV8zK1xtdV81KS8yIC0gKFxtdV8yK1xtdV80KS8yJCA9ICQoNS45MjErNS4zNDMvMiAtIDQuNDI5KzQuMDUwLzIpID0gMS4zOTMkCgpTdGFuZGFyZCBFcnJvciBvZiB0aGUgRXN0aW1hdGUgCgokU0UoZykgPSAxLjYzXHNxcnR7KDApXjIvMTQgKyAoLTEvMileMi8xNCArICgxLzIpXjIvMTQgKyAoLTEvMileMi8xNCArKDEvMileMi8xNH09MC40MzYkCgpDb25zdHJ1Y3QgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWwKCiR0X3s2NX0oMC45NzUpID0gMS45OTckCgokMS4zOTNccG0oMS45OTcpKDAuNDM2KVxsb25ncmlnaHRhcnJvdyBmcm9tIFxoc3BhY2V7MC41MGNtfTAuNTIyIFxoc3BhY2V7MC4yNWNtfSB0byBcaHNwYWNlezAuMjVjbX0gMi4yNjQkCgpzaW5jZSAkdD1cZnJhY3tnfXtTRShnKX09XGZyYWN7MS4zOTN9ezAuNDM2fT0zLjE5JAoKYXMgJHRfezY1fSgwLjk3NSk9MS45OTckCgpGaW5hbGx5LCBmaXQuY29udHJhc3QgZnVuY3Rpb24gY2FuIGFsc28gYmUgdXNlZCB0byBlc3RpbWF0ZSBwYXJhbWV0ZXJzLgoKYGBge3J9CmZpdC5jb250cmFzdChsbShkYXRhJFNjb3JlIH4gZGF0YSRIYW5kaWNhcCksImRhdGEkSGFuZGljYXAiLGMoMCwtMS8yLDEvMiwtMS8yLDEvMiksY29uZi5pbnQ9MC45NSkKYGBgCgpSZWdhcmRpbmcgdG8gY2FsY3VsYXRlZCB0IHN0YXRzLCB3ZSBjb3VsZCBzYXkgdGhlcmUgaXMgZW5vdWdoIGV2aWRlbmNlIHRoYXQgdHdvIGRpc3RpbmN0IGJsb2NrcyBhcmUgc2lnbmlmaWNhbnRseSBkaWZmZXJzIGZyb20gZWFjaCBvdGhlci4gU28gYmFzZWQgb24gcXVhbGlmaWNhdGlvbiBzY29yZXMgdGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgbWFpbiBzZWdtZW50czsgb25lIENydXRjaGVzLVdoZWVsY2hhaXIgZ3JvdXAgYW5kIHRoZSBzZWNvbmQgQW1wdXRlZS1IZWFyaW5nIEltcGFpcmVkIGdyb3VwLiAKCiMjQ2FzZSAyOiBQcmUgRXhpc3RpbmcgUHJlZmVyZW5jZXMgb2YgRmlzaCAtIEEgUmFuZG9taXplZCBFeHBlcmltZW50CgpDaGFybGVzIERhcndpbiBoYXMgcHJvcG9zZWQgdGhhdCBzZXh1YWwgc2VsZWN0aW9uIG9mIHRoZSBmZW1hbGVzIGNvdWxkIGV4cGxhaW4gc2hvd3kgY2hhcmFjdGVyaXN0aWNzIG9mIG1hbGVzIHRoYXQgYXJlIGxvd2VyaW5nIHRoZWlyIGNhcGFjaXR5IHRvIHN1cnZpdmUuIEhvd2V2ZXIgZ2VuZXJhbCB0aGVvcnkgcHVycG9zZXMgY28tZXZvbHV0aW9uIG9mIGZlbWFsZSBwcmVmZXJlbmNlIHdpdGggcHJlZmVycmVkIG1hbGUgdHJhaXQuIAoKQS5MLiBCYXNvbG8gcHJvcG9zZWQgYW5kIHRlc3RlZCBhIHNlbGVjdGlvbiBtb2RlbCBpbiB3aGljaCBmZW1hbGVzIGhhdmUgcHJlLWV4aXN0aW5nIGJpcmFzIGZvciBtYWxlIHRyYWl0IGV2ZW4gYmVmb3JlIG1hbGVzIG9mIHRoZSBzYW1lIHNwZWNpZXMgcG9zc2VzIGl0LiBTaGUgc2VsZWN0ZWQgdGhlIFNvdXRoZXJuIFBsYXR5IGZpc2ggd2hvc2UgbWFsZXMgZG9uJ3QgbmF0dXJhbGx5IGRldmVsb3AgdGhlIHN3b3JkIHRhaWxzLiBTaXggcGFpcnMgb2YgbWFsZXMgd2VyZSBzdXJnaWNhbGx5IGdpdmVuIGFydGlmaWNpYWwgc3dvcmQgdGFpbHMuIE9uZSBtYWxlIG9mIGVhY2ggcGFpciBoYXZlIGJyaWdodCB5ZWxsb3cgc3dvcmQsIHdoaWxlIHRoZSAgb3RoZXIgcmVjZWl2ZWQgYSB0cmFuc3BhcmVudCBzd29yZC4gVGhlbiB0aGUgc3ViamVjdCBmaXNoZXMgcGxhY2VkIG9uIGEgdGFuayBkZXNjcmliZWQgYmVsbG93LCB3aGljaCBhbGxvd3MgZmVtYWxlIHRvIHNwZW5kIHRpbWUgYm90aCB0d28gbWFsZSBmaXNoLgoKIVtFeHBlcmltZW50YWwgdGFuayBhbGxvd2luZyBmZW1hbGUgZmlzaCB0byBjaG9vc2UgYmV0d2VlbiBtYWxlc10oL1VzZXJzL29tZXJ6ZXliZWsvTGlicmFyeS9Nb2JpbGUgRG9jdW1lbnRzL2NvbX5hcHBsZX5DbG91ZERvY3MvU3dvcmRmaXNoLnBuZykKClJlc2VhcmNoZXIgdG9vayAyMCBtaW51dGUgb2JzZXJ2YXRpb24gcGVyaW9kIGZvciBhbGwgZmVtYWxlcywgYW5kIHJlY29yZGVkIHRpbWUgc2hlIHNwZW50IHdpdGggdGhlIHllbGxvdy1zd29yZCBtYWxlLiBEaWQgdGhlc2UgZmVtYWxlcyBzaG93IHByZWZlcmVuY2UgZm9yIHRoZSBtYWxlcyB0aGF0IHdlcmUgZ2l2ZW4geWVsbG93IHN3b3JkIHRhaWxzPyBQZXJjZW50YWdlIG9mIHRvdGFsIHRpbWUgZmVtYWxlIGNvdXJ0c2hpcHMgd2l0aCB5ZWxsb3cgc3dvcmQgdGFpbGVkIG1hbGVzIGlzIHRoZSB1bml0IG9mIGFuYWx5c2lzIGluIHRoaXMgY2hhcHRlci4gCiMjU3VtbWFyeSBvZiBTdGF0aXN0aWNhbCBGaW5kaW5ncwoKYGBge3J9CmRhdGEyPC1TbGV1dGgyOjpjYXNlMDYwMgpib3hwbG90KGRhdGEyJFByb3BvcnRpb24qMTAwIH4gZGF0YTIkUGFpcixtYWluPSJQZXJjZW50YWdlIG9mIHRpbWUgc3BlbnQgd2l0aCB5ZWxsb3ctc3dvcmQgbWFsZSBmb3IgODQgZmVtYWxlcyIpCm9wdGlvbnMoZGlnaXRzPTMpCmJ5KGRhdGEyJFByb3BvcnRpb24sIGRhdGEyJFBhaXIsc3RhdC5kZXNjKQoKYGBgCgpBcyBpdCBjbGVhcmx5IHNlZW4gZnJvbSBib3ggcGxvdHMgYW5kIHN1bW1hcnkgc3RhdGlzdGljcyBmb3Igc2l4IHBhaXJzLCB0aGVpciBtZWRpYW4gYW5kIG1lYW4gbGV2ZWxzIHNlZW1zIHZlcnkgY2xvc2UgdG8gZWFjaCBvdGhlci4gSW4gYWRkaXRpb24gdG8gdGhpcyB2aXN1YWwgYW5hbHlzaXMgd2hlbiBGLVRlc3QgcmVzdWx0cyBhbHNvIHN0YXRlcyB0aGF0IHRoZXJlIGlzIG5vIGV2aWRlbmNlIHRoYXQgbWVhbiBwZXJjZW50YWdlIG9mIHRpbWUgc3BlbmQgd2l0aCB5ZWxsb3ctc3dvcmQgbWFsZXMgZGlmZmVycyBhbW9uZyBwYWlycyAocC12YWx1ZSA9IDAuNTYgLyBGLlRlc3QpLiAKCmBgYHtyfQpzdW1tYXJ5KGFvdihsbShkYXRhMiRQcm9wb3J0aW9uKjEwMCB+IGRhdGEyJFBhaXIpKSkKYGBgCgpgYGB7cn0KYW92KGxtKGRhdGEyJFByb3BvcnRpb24qMTAwIH4gZGF0YTIkUGFpcikpCmBgYAoKCkl0IGNvdWxkIGJlIG9ic2VydmVkIGZyb20gQU5PVkEgdGFibGUgdGhhdCwgYmV0d2VlbiBncm91cCB2YXJpYXRpb24gd2hpY2ggc3RheWVkIGF0IDkzOSBsZXZlbCB3YXMgbm90IGVub3VnaCB0byBzdGF0ZSBtYWxlIHBhaXJzIHNpZ25pZmljYW50bHkgZGlmZmVycyBmcm9tIGVhY2ggb3RoZXIgcmVnYXJkaW5nIG9uIGNvdXJ0c2hpcCB0aW1lLiBIb3dldmVyLCBjdXJyZW50IGxpbmVhciBtb2RlbCBkb2Vzbid0IHRha2UgbWFsZSBib2R5IHNpemUgaW50byBhbmFseXNpcy4gQSBsaW5lYXIgZWZmZWN0IG1vZGVsIHdoaWNoIHRha2VzIGJvZHkgc2l6ZSBpbnRvIGNvbnNpZGVyYXRpb24gd291bGQgYmUgYWx0ZXJuYXRpdmUgdG8gc2VlIHZhcmlhdGlvbiBvcmdpbmF0ZWQgZnJvbSBtYWxlIGJvZHkgc2l6ZSBpcyBldmlkZW50IG9yIG5vdC4gCgpHcm91cHwgbiB8IEF2Zy4gKCUpICAgICAgICAgfFN0YW5kLiBEZXYgfE1hbGUgQm9keSBTaXplIHwgQ29lZmZpY2llbnQgICAgICAgICAgICAgICAgICAgICAKLS0tLS18LS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLQpQYWlyMXwxNiB8NTYuNDF8OS4wMnwzNXw1ClBhaXIyfDE0fDYwLjg5fDEyLjQ4fDMxfC0zClBhaXIzfDE3fDYyLjQzfDIyLjI5fDMzfDEKUGFpcjR8MTR8NjcuMDB8MTQuMzN8MzR8MwpQYWlyNXw5fDY0LjIxfDkuNDF8Mjh8LTkKUGFpcjR8MTR8NjMuMzR8MTcuNjh8MzR8MwoqUG9vbGVkKnwqODQqfCo2Mi4xMyp8KjE1LjQ2KnwqQXZnPTMyLjUqfAoKQ2FsY3VsYXRlIHRoZSBjb2VmZmljaWVudHMgZm9yIGxpbmVhciBjb21iaW5hdGlvbnMKClVubGlrZSB0aGUgSGFuZGljYXAgY2FzZSwgdGhpcyB0aW1lIHdlIGhhdmUgcXVhbnRhdGl2ZSBleHBsYW5hdG9yeSB2YXJpYWJsZSAobWFsZSBib2R5IHNpemUpIGFuZCB3ZSBwdXJwb3NlIHRoYXQgdGltZSBzcGVuZCAgd2l0aCB5ZWxsb3ctc3dvcmQgbWFsZSBpcyBhIGxpbmVhciBmdW5jdGlvbiBvZiBtYWxlIGJvZHkgc2l6ZS4gU28gY29lZmZpY2llbnRzIG11c3QgYmUgY2FsY3VsxZ9hdGVkIGFjY29yZGluZyB0byB2YXJpYXRpb25zIGZyb20gbWVhbiAKCiRDX2k9MiooWF9pLTMyLjUpJAoKKm5vdGUgdGhhdCBzdW0gb2YgY29lZmZpY2llbnRzIGFyZSBzdGlsbCBlcXVhbHMgdG8gMCoKCiRnJD0tMjUuMDYKCiRTRShnKT01NC43NyQKCiR0PVxmcmFje2d9e1NFKGcpfT1cZnJhY3stMjUuMDZ9ezU0Ljc3fT0tMC40NTgkCgphcyAkdF97Nzh9KDAuOTc1KT0xLjk5JAoKCmBgYHtyfQpmaXQuY29udHJhc3QobG0oZGF0YTIkUHJvcG9ydGlvbiB+IGRhdGEyJFBhaXIpLCJkYXRhMiRQYWlyIixjKDUsLTMsMSwzLC05LDMpLGNvbmYuaW50PTAuOTUpCgpkYXRhMgpgYGAKClRoZXJlIGlzIG5vIGV2aWRlbmNlIHRoYXQgbWFsZSBib2R5IHNpemUgaGFzIGEgbGluZWFyIGFzc29jaWF0aW9uIHdpdGggZ3JvdXAgbWVhbnMuIAoKCgoKCgoKCgoK