Berechnung der Teststatistik
Um zu prüfen, ob die Mittelwertsunterschiede statistisch signifikant sind, muss die zugehörige Teststatistik berechnet werden. Die Verteilung der Teststatistik t folgt einer theoretischen t-Verteilung, deren Form sich in Abhängigkeit der Freiheitsgrade unterscheidet. Die dem Test zu Grunde liegende t-Verteilung gibt dem Test den Namen t-Test.
Die Teststatistik berechnet sich mit:
\[ t = \frac{\bar {X_1} - \bar {X_2}}{Standardfehler der Mittelwertsdifferenz}\] mit:
\(\bar X_1, \bar X_2\): Mittelwerte der Variablen \(X_1\) und \(X_2\)
\(n_1, n_2\): Stichprobengröße der beiden Stichproben.
Die Freiheitsgrade werden folgend berechnet:
\[ df = n1 + n2 -2\]
mit:
- \(n_1, n_2\): Stichprobengröße der beiden Stichproben.
Es gibt zwei Arten für dieses Verfahren den Standardfehler der Mittelwertdifferenz
Sind die Populationsvarianzen bekannt, so wird der Standardfehler der Mittelwertsdifferenz wie folgt berechnet:
\[\sigma_{\bar X_1 - \bar X_2} = \sqrt{\frac{\sigma^2_1}{n_1}+\frac{\sigma^2_2}{n_2}} \] mit:
\(\sigma_{\bar X_1 - \bar X_2}\): Standardfehler der Verteilung der Mittelwertsdifferenzen
\(\sigma^2_1, \sigma^2_2\): Populationsvarianzen der Variablen \(X_1\) und \(X_2\)
\(n_1, n_2\): Stichprobengröße der beiden Stichproben.
Sind die Populationsvarianzen unbekannt, so wird der Standardfehler der Mittelwertsdifferenz wie folgt geschätzt:
\[ \hat \sigma_{\bar X_1 - \bar X_2} = \sqrt{\frac{\hat\sigma^2_{inn}}{n_1}+\frac{\hat\sigma^2_{inn}}{n_2}} \] mit:
\(\hat \sigma_{\bar X_1 - \bar X_2}\): Schätzer für den Standardfehler der Verteilung der Mittelwertsdifferenzen
\(n_1, n_2\): Stichprobengröße der beiden Stichproben.
\(\hat\sigma^2_{inn}\): Schätzer für die gepoolte Varianz der beiden Grundgesamtheiten.
wobei sich der Schätzer für die gepoolte Varianz der beiden Grundgesamtheiten berechnet mit:
\[
\hat\sigma^2_{inn} = \frac{(n_1 - 1)\cdot s_1^2 + (n_2-1)\cdot s_2^2}{n_1+n_2-2}
\] mit:
\(n_1, n_2\): Stichprobengröße der beiden Stichproben.
\(s_1^2, s_2^2\): Stichprobenvarianzen der Variablen \(X_1\) und \(X_2\)
Für das vorliegende Beispiel sind die Populationsvarianzen nicht bekannt, so dass sich nach Einfügen der Werte aus Abbildung in die entsprechenden Formeln folgendes ergibt:
\[
\hat\sigma^2_{inn} = \frac{(25 - 1)\cdot 3.70^2 + (26-1)\cdot 3.74^2}{25+26-2} =\frac{(25 - 1)\cdot 3.70^2 + (26-1)\cdot 3.74^2}{49} = \frac { 678.25}{49} = 13.841
\]
\[ t = \frac{\bar {X_1} - \bar {X_2}}{ \sqrt{\frac{\hat\sigma^2_{inn}}{n_1}+\frac{\hat\sigma^2_{inn}}{n_2}} }= \frac{21.00 - 16.15}{ \sqrt{\frac{13.841}{25}+\frac{13.841}{26}}}= 4.6\] Der Freiheitsgrad ist:
\[ df = 25 + 26 -2 = 49\] t-kritsch
qt(.975, df=49)
[1] 2.009575
Signifikanz der Teststatistik
Um zu beurteilen, ob der berechnete Wert statistisch signifikant ist, wird er mit einem kritischen Wert aus der t-Verteilung verglichen, der anhand der Freiheitsgrade bestimmt wird. Diese kritischen Werte sind in sogenannten t-Tabellen zu finden.
Die untenstehende Abbildung zeigt einen Auszug aus einer solchen Tabelle mit den kritischen Werten für die Signifikanzniveaus α = .05 und α = .01.
Im vorliegenden Fall liegt der kritische Wert bei 2.009 für df = 49 und α = .05. Da der Betrag der berechneten Teststatistik mit |4.6| deutlich über dem kritischen Wert liegt (|4.6| > 2.009), ist das Ergebnis statistisch signifikant.
Es kann somit angenommen werden, dass ein Unterschied zwischen den Mittelwerten besteht (t(49) = 4.6, p < .05, n = 51).
Hypothese
H1: Es gibt einen Unterschied zwischen dem Sicherheitsgefühl von Selbstständigen und Nicht-Selbstständigen. \(M_{S} \ne M_{NS}\)
H0: Es gibt keinen Unterschied zwischen dem Sicherheitsgefühl von Selbstständigen und Nicht-Selbstständigen.\(M_{S} = M_{NS}\)
Voraussetzungen des t-Tests für unabhängige Stichproben
Die abhängige Variable ist min. intervallskaliert -> Sicherheitsgefuehl(AV)
Es liegt eine unabhängige Variable vor, mittels der die beiden zu vergleichenden Gruppen gebildet werden. -> Ja, Selbstständigen und Nicht-Selbstständigen
Das untersuchte Merkmal ist in den Grundgesamtheiten der beiden Gruppen normalverteilt -> siehe Histogramm
Homogenität der Varianzen: Die Gruppen kommen aus Grundgesamtheiten mit annähernd identischer Varianz -> siehe Levene-Test
Die einzelnen Messwerte sind voneinander unabhängig (das Verhalten einer Versuchsperson hat keinen Einfluss auf das Verhalten einer anderen) -> ist gegeben.
Prüfung der Normalverteilung mithilfe des Histogramms
library(dplyr)
library(ggplot2)
t_testUN %>%
group_by(Selbststaendig) %>%
ggplot(aes(Sicherheitsgefuehl)) +
geom_histogram( binwidth=4, aes(fill=Selbststaendig), color="#e9ecef", alpha=0.7 ) + # Erstelle ein Histogramm, Unterteilung, Farbe + Transparenz
facet_wrap(~Selbststaendig)+ # Zwei Graphen
theme_classic()+ #Farbschema
labs(x="Gruppierungen", y="Anzahl") # Beschriftung

Es liegt eine Normalverteilung von.
Deskriptive Statistiken
#library(dplyr)
t_testUN %>%
group_by(Selbststaendig) %>%
summarize(Anzahl = n(), Mittelwert = mean(Sicherheitsgefuehl), Median = median(Sicherheitsgefuehl), Standardabweichung = sd(Sicherheitsgefuehl)) %>%
mutate_if(is.numeric, round, 2)
`summarise()` ungrouping output (override with `.groups` argument)
Es zeigt sich für diese Fragestellung einen Mittelwertsunterschied. Das Sicherheitsgefühl bei Nicht-Selbstständigen ist höher (M = 21.00 SD = 3.7, n = 25) als bei Selbstständigen (M = 16.15 SD = 3.74, n = 26).
Test auf Varianzhomogenität (Levene-Test)
Für die Durchführung eines t-Tests für unabhängige Gruppen ist die Annahme der Varianzhomogenität erforderlich. Wenn jedoch Varianzheterogenität – also ungleiche Varianzen – vorliegt, müssen unter anderem die Freiheitsgrade des t-Wertes angepasst werden.
Ob die Varianzen tatsächlich gleich sind, lässt sich mit dem Levene-Test überprüfen.
Der Levene-Test geht von der Nullhypothese aus, dass sich die Varianzen nicht unterscheiden. Ein nicht signifikantes Ergebnis spricht daher dafür, dass die Varianzen als gleich angenommen werden können – es liegt also Varianzhomogenität vor.
Ist das Testergebnis hingegen signifikant, deutet dies auf Varianzheterogenität hin – die Annahme gleicher Varianzen muss dann verworfen werden.
library(car)
leveneTest(t_testUN$Sicherheitsgefuehl, t_testUN$Selbststaendig, center = mean)
Levene's Test for Homogeneity of Variance (center = mean)
Df F value Pr(>F)
group 1 0.1566 0.694
49
Also es ist zuerkennen, das Homogenität vorliegt, da der Levene-Test nicht signifikant ist. Daher können wir von gleichen Varianzen ausgehen (F(1, 49) = .1566, p = .694). Es ist daher nicht notwendig eine Welch-Korrektur durchzuführen.
Mit Welch-Korrektur: p < 0.05 => Ergebnis Signifikant –> Varianzen heterogen
Ohne Welch-Korrektur: p > 0.05 => Ergebnis nicht Signifikant –> Varianzen homogen –> H0 mit Annahme Var1=Var2
Ergebnisse des t-Tests für unabhängige Stichproben
An dieser Stelle findet die eigentliche Auswertung des t-Testes statt. Beim t-test wird die t-Verteilung verwendet.
Auch hier ist auf die Reihenfolge zu achten erst AV und dann UV. Da in diesem Beispiel eine ungerichtete Hypothese verwendet wird mit einem Sig.-Niveau von 0.05,ist “con= 0.95, alt =”two.sided"" zu verwenden. Sollten Sie sich jedoch entscheiden eine gerichtete Hypothese zu verwenden, dann empfiehlt es sich folgende Zeilen zu ersetzen “con= 0.95, alt =”greater"" Je nach Richtung “less” or “greater”. Sollte eine 1 bei p-value stehen ist es genau die andere Richtung.
“Var.eq =True” bedeutet, dass die Varianzen homogen (gleich) sind, bzw. “Var.eq =False” das die Varianzen hetrogen sind.
Variante 1: ohne Welch - Korrektur
##Gerichtete Hypothese
#test1<- t.test(t_testUN$Sicherheitsgefuehl~t_testUN$Selbststaendig, var.eq = TRUE, con= 0.95, alt = "greater")
##ungerichtete Hypothese
test1<- t.test(t_testUN$Sicherheitsgefuehl~t_testUN$Selbststaendig, var.eq = TRUE, con= 0.95, alt = "two.sided")
test1
Two Sample t-test
data: t_testUN$Sicherheitsgefuehl by t_testUN$Selbststaendig
t = 4.6532, df = 49, p-value = 2.513e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
2.753235 6.939072
sample estimates:
mean in group nicht-selbststaendig mean in group selbststaendig
21.00000 16.15385
Die Teststatistik betraegt t = 4.65 und der zugehörige Signifikanzwert p = 2.513e-05. Damit ist der Unterschied signifikant:
Mittelwerte der beiden Arten der Selbstständigkeit unterscheiden sich (t(49) = 4.65, p = 2.513e-05, n= 51)
Variante 2: MIT Welch-Korrektur
welch<- t.test(t_testUN$Sicherheitsgefuehl~t_testUN$Selbststaendig, var.eq = FALSE, con= 0.95, alt = "two.sided")
welch
Welch Two Sample t-test
data: t_testUN$Sicherheitsgefuehl by t_testUN$Selbststaendig
t = 4.6542, df = 48.959, p-value = 2.507e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
2.753659 6.938649
sample estimates:
mean in group nicht-selbststaendig mean in group selbststaendig
21.00000 16.15385
mit Welch-Korrektur(t(48.959) = 4.65, p = 2.507e-05)
Berechnung der Effektstärke
Bei gleichgroßen Gruppen
\[r=\sqrt{\frac{t^2}{t^2+df}}\]
eff <- sqrt ((test1$statistic^2 )/ (test1$statistic^2 + test1$parameter))
sprintf("Die Effektstärke liegt bei %.2f",eff )
[1] "Die Effektstärke liegt bei 0.55"
Zur Beurteilung der Groesse des Effektes dient die Einteilung von Cohen (1992):
\[
\begin{align}
\text{Schwacher Effekt: } 0.10 &< ||r|| < 0.30 \\
\text{Schwacher bis mittlerer Effekt: } 0.30 &= ||r|| \\
\text{Mittlerer Effekt: } 0.30 &< ||r|| < 0.50 \\
\text{Mittlerer bis starker Effekt: }0.50 &= ||r|| \\
\text{Starker Effekt: } 0.50 &< ||r||
\end{align}
\] Im Rahmen des t-Tests fuer unabhängige Stichprobe berechnen wir nach Pearson und interpretieren nach Cohen(1992).
Damit entspricht eine Effektstaerke von .55 einem starken Effekt.
ALTERNATIVE
Bei ungleichgroßen Gruppen
\[ d = (\frac {n1+n2}{n1*n2}+ 0.5*d^2/df) * (\frac{(n1+n2}{df})\]
Diese Formel verwendet das EffSize-Package - Cooper et al. (2009):
library(effsize)
cohen.d(d = t_testUN$Sicherheitsgefuehl, f= t_testUN$Selbststaendig)
Cohen's d
d estimate: 1.3034 (large)
95 percent confidence interval:
lower upper
0.6836258 1.9231733
Interpretation von d nach Cohen (1988):
\[
\begin{align}
\text{Schwacher Effekt: } 0.20 &< ||d|| < 0.50 \\
\text{Schwacher bis mittlerer Effekt: } 0.50 &= ||d|| \\
\text{Mittlerer Effekt: } 0.50 &< ||d|| < 0.80 \\
\text{Mittlerer bis starker Effekt: }0.80 &= ||d|| \\
\text{Starker Effekt: } 0.80 &< ||d||
\end{align}
\]
Damit entspricht eine Effektstaerke von 1.3 einem starken Effekt.
Eine Aussage
Nicht-Selbststaendige fühlen sich signifikant beruflich sicherer (M = 21, SD = 3.69, n = 25) als Selbständige (M = 16.15, SD = 3.73, n = 26) (t(49) = 4.6532, p = 2.513e-05, n = 51). Die Effektstärke liegt bei r = .55 und entspricht damit einem starken Effekt nach Cohen (1992). H0 kann verworfen werden.
LS0tDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCg0KIyMgQmVyZWNobnVuZyBkZXIgVGVzdHN0YXRpc3Rpaw0KVW0genUgcHLDvGZlbiwgb2IgZGllIE1pdHRlbHdlcnRzdW50ZXJzY2hpZWRlIHN0YXRpc3Rpc2NoIHNpZ25pZmlrYW50IHNpbmQsIG11c3MgZGllIHp1Z2Vow7ZyaWdlIFRlc3RzdGF0aXN0aWsgYmVyZWNobmV0IHdlcmRlbi4gRGllIFZlcnRlaWx1bmcgZGVyIFRlc3RzdGF0aXN0aWsgdCBmb2xndCBlaW5lciB0aGVvcmV0aXNjaGVuIHQtVmVydGVpbHVuZywgZGVyZW4gRm9ybSBzaWNoIGluIEFiaMOkbmdpZ2tlaXQgZGVyIEZyZWloZWl0c2dyYWRlIHVudGVyc2NoZWlkZXQuIERpZSBkZW0gVGVzdCB6dSBHcnVuZGUgbGllZ2VuZGUgdC1WZXJ0ZWlsdW5nIGdpYnQgZGVtIFRlc3QgZGVuIE5hbWVuIHQtVGVzdC4NCg0KRGllIFRlc3RzdGF0aXN0aWsgYmVyZWNobmV0IHNpY2ggbWl0Og0KDQokJCB0ID0gXGZyYWN7XGJhciB7WF8xfSAtIFxiYXIge1hfMn19e1N0YW5kYXJkZmVobGVyIGRlciBNaXR0ZWx3ZXJ0c2RpZmZlcmVuen0kJA0KbWl0Og0KDQoqICRcYmFyIFhfMSwgXGJhciBYXzIkOiBNaXR0ZWx3ZXJ0ZSBkZXIgVmFyaWFibGVuICRYXzEkIHVuZCAkWF8yJA0KDQoqICRuXzEsIG5fMiQ6IFN0aWNocHJvYmVuZ3LDtsOfZSBkZXIgYmVpZGVuIFN0aWNocHJvYmVuLg0KDQo8YnI+PGJyPg0KRGllIEZyZWloZWl0c2dyYWRlIHdlcmRlbiBmb2xnZW5kIGJlcmVjaG5ldDoNCg0KJCQgZGYgPSAgbjEgKyBuMiAtMiQkDQoNCm1pdDoNCg0KKiAkbl8xLCBuXzIkOiBTdGljaHByb2Jlbmdyw7bDn2UgZGVyIGJlaWRlbiBTdGljaHByb2Jlbi4NCjxicj48YnI+DQoNCioqRXMgZ2lidCB6d2VpIEFydGVuIGbDvHIgZGllc2VzIFZlcmZhaHJlbiBkZW4gU3RhbmRhcmRmZWhsZXIgZGVyIE1pdHRlbHdlcnRkaWZmZXJlbnoqKg0KDQo8YnI+PGJyPg0KDQoNCiogJFxzaWdtYV97XGJhciBYXzEgLSBcYmFyIFhfMn0kOiBTdGFuZGFyZGZlaGxlciBkZXIgTWl0dGVsd2VydHNkaWZmZXJlbnoNCg0KKiAkXGhhdCBcc2lnbWFfe1xiYXIgWF8xIC0gXGJhciBYXzJ9JDogU2Now6R0emVyIGbDvHIgZGVuIFN0YW5kYXJkZmVobGVyIGRlciBWZXJ0ZWlsdW5nIGRlciBNaXR0ZWx3ZXJ0c2RpZmZlcmVuemVuDQoNCg0KDQoNClNpbmQgZGllIFBvcHVsYXRpb25zdmFyaWFuemVuIGJla2FubnQsIHNvIHdpcmQgZGVyIFN0YW5kYXJkZmVobGVyIGRlciBNaXR0ZWx3ZXJ0c2RpZmZlcmVueiB3aWUgZm9sZ3QgYmVyZWNobmV0Og0KDQokJFxzaWdtYV97XGJhciBYXzEgLSBcYmFyIFhfMn0gPSBcc3FydHtcZnJhY3tcc2lnbWFeMl8xfXtuXzF9K1xmcmFje1xzaWdtYV4yXzJ9e25fMn19ICQkDQptaXQ6DQoNCiogJFxzaWdtYV97XGJhciBYXzEgLSBcYmFyIFhfMn0kOiBTdGFuZGFyZGZlaGxlciBkZXIgVmVydGVpbHVuZyBkZXIgTWl0dGVsd2VydHNkaWZmZXJlbnplbg0KDQoqICRcc2lnbWFeMl8xLCBcc2lnbWFeMl8yJDogUG9wdWxhdGlvbnN2YXJpYW56ZW4gZGVyIFZhcmlhYmxlbiAkWF8xJCB1bmQgJFhfMiQNCg0KKiAkbl8xLCBuXzIkOiBTdGljaHByb2Jlbmdyw7bDn2UgZGVyIGJlaWRlbiBTdGljaHByb2Jlbi4NCjxicj48YnI+DQoNClNpbmQgZGllIFBvcHVsYXRpb25zdmFyaWFuemVuIHVuYmVrYW5udCwgc28gd2lyZCBkZXIgU3RhbmRhcmRmZWhsZXIgZGVyIE1pdHRlbHdlcnRzZGlmZmVyZW56IHdpZSBmb2xndCBnZXNjaMOkdHp0Og0KDQokJCBcaGF0IFxzaWdtYV97XGJhciBYXzEgLSBcYmFyIFhfMn0gPSBcc3FydHtcZnJhY3tcaGF0XHNpZ21hXjJfe2lubn19e25fMX0rXGZyYWN7XGhhdFxzaWdtYV4yX3tpbm59fXtuXzJ9fSAkJA0KbWl0Og0KDQoqICRcaGF0IFxzaWdtYV97XGJhciBYXzEgLSBcYmFyIFhfMn0kOiBTY2jDpHR6ZXIgZsO8ciBkZW4gU3RhbmRhcmRmZWhsZXIgZGVyIFZlcnRlaWx1bmcgZGVyIE1pdHRlbHdlcnRzZGlmZmVyZW56ZW4NCg0KKiAkbl8xLCBuXzIkOiBTdGljaHByb2Jlbmdyw7bDn2UgZGVyIGJlaWRlbiBTdGljaHByb2Jlbi4NCg0KKiAkXGhhdFxzaWdtYV4yX3tpbm59JDogU2Now6R0emVyIGbDvHIgZGllIGdlcG9vbHRlIFZhcmlhbnogZGVyIGJlaWRlbiBHcnVuZGdlc2FtdGhlaXRlbi4NCg0Kd29iZWkgc2ljaCBkZXIgIFNjaMOkdHplciBmw7xyIGRpZSBnZXBvb2x0ZSBWYXJpYW56IGRlciBiZWlkZW4gR3J1bmRnZXNhbXRoZWl0ZW4gYmVyZWNobmV0IG1pdDoNCg0KJCQNClxoYXRcc2lnbWFeMl97aW5ufSA9IFxmcmFjeyhuXzEgLSAxKVxjZG90IHNfMV4yICsgKG5fMi0xKVxjZG90IHNfMl4yfXtuXzErbl8yLTJ9DQokJA0KbWl0Og0KDQoqICRuXzEsIG5fMiQ6IFN0aWNocHJvYmVuZ3LDtsOfZSBkZXIgYmVpZGVuIFN0aWNocHJvYmVuLg0KDQoqICRzXzFeMiwgc18yXjIkOiBTdGljaHByb2JlbnZhcmlhbnplbiBkZXIgVmFyaWFibGVuICRYXzEkIHVuZCAkWF8yJA0KPGJyPjxicj4NCjxicj48YnI+DQoNCg0KRsO8ciBkYXMgdm9ybGllZ2VuZGUgQmVpc3BpZWwgc2luZCBkaWUgUG9wdWxhdGlvbnN2YXJpYW56ZW4gbmljaHQgYmVrYW5udCwgc28gZGFzcyBzaWNoIG5hY2ggRWluZsO8Z2VuIGRlciBXZXJ0ZSBhdXMgQWJiaWxkdW5nIGluIGRpZSBlbnRzcHJlY2hlbmRlbiBGb3JtZWxuIGZvbGdlbmRlcyBlcmdpYnQ6DQoNCg0KJCQNClxoYXRcc2lnbWFeMl97aW5ufSA9IFxmcmFjeygyNSAtIDEpXGNkb3QgMy43MF4yICsgKDI2LTEpXGNkb3QgMy43NF4yfXsyNSsyNi0yfSA9XGZyYWN7KDI1IC0gMSlcY2RvdCAzLjcwXjIgKyAoMjYtMSlcY2RvdCAzLjc0XjJ9ezQ5fSA9IFxmcmFjIHsgNjc4LjI1fXs0OX0gPSAxMy44NDENCiQkDQoNCiQkIHQgPSBcZnJhY3tcYmFyIHtYXzF9IC0gXGJhciB7WF8yfX17IFxzcXJ0e1xmcmFje1xoYXRcc2lnbWFeMl97aW5ufX17bl8xfStcZnJhY3tcaGF0XHNpZ21hXjJfe2lubn19e25fMn19IH09IFxmcmFjezIxLjAwIC0gMTYuMTV9eyBcc3FydHtcZnJhY3sxMy44NDF9ezI1fStcZnJhY3sxMy44NDF9ezI2fX19PSA0LjYkJA0KRGVyIEZyZWloZWl0c2dyYWQgaXN0Og0KDQokJCBkZiA9ICAyNSArIDI2IC0yID0gNDkkJA0KKip0LWtyaXRzY2gqKg0KYGBge3J9DQpxdCguOTc1LCBkZj00OSkNCmBgYA0KDQojIyBTaWduaWZpa2FueiBkZXIgVGVzdHN0YXRpc3Rpaw0KDQpEZXIgYmVyZWNobmV0ZSBXZXJ0IG11c3MgbnVuIGF1ZiBTaWduaWZpa2FueiBnZXByw7xmdCB3ZXJkZW4uIERhenUgd2lyZCBkaWUgVGVzdHN0YXRpc3RpayBtaXQgZGVtIGtyaXRpc2NoZW4gV2VydCBkZXIgZHVyY2ggZGllIEZyZWloZWl0c2dyYWRlIGJlc3RpbW10ZW4gdC1WZXJ0ZWlsdW5nIHZlcmdsaWNoZW4gd2VyZGVuLiBEaWVzZXIga3JpdGlzY2hlIFdlcnQga2FubiBUYWJlbGxlbiBlbnRub21tZW4gd2VyZGVuLiBBYmJpbGR1bmcgemVpZ3QgZWluZW4gQXVzc2Nobml0dCBlaW5lciB0LVRhYmVsbGUsIGRlciBlaW5pZ2Uga3JpdGlzY2hlIFdlcnRlIGbDvHIgZGllIFNpZ25pZmlrYW56bml2ZWF1cyAuMDUgdW5kIC4wMSB6ZWlndC4NCg0KDQpGw7xyIGRhcyB2b3JsaWVnZW5kZSBCZWlzcGllbCBiZXRyw6RndCBkZXIga3JpdGlzY2hlIFdlcnQgMi4wMDkgYmVpIGRmID0gNDkgdW5kIM6xID0gLjA1LiBJc3QgZGVyIEJldHJhZyBkZXIgVGVzdHN0YXRpc3RpayBow7ZoZXIgYWxzIGRlciBrcml0aXNjaGUgV2VydCwgc28gaXN0IGRlciBVbnRlcnNjaGllZCBzaWduaWZpa2FudC4gRGllcyBpc3QgZsO8ciBkYXMgQmVpc3BpZWwgZGVyIEZhbGwgKCR8NC42fCA+IDIuMDA5JCkuIEVzIGthbm4gYWxzbyBkYXZvbiBhdXNnZWdhbmdlbiB3ZXJkZW4sIGRhc3Mgc2ljaCBkaWUgYmVpZGVuIE1pdHRlbHdlcnRlIHVudGVyc2NoZWlkZW4gKHQoNDkpID0gNC42LCBwIDwgLjA1LCBuID0gNTEgKS4NCg0KDQojCUh5cG90aGVzZSANCkgxOiBFcyBnaWJ0IGVpbmVuIFVudGVyc2NoaWVkIHp3aXNjaGVuIGRlbSBTaWNoZXJoZWl0c2dlZsO8aGwgdm9uIFNlbGJzdHN0w6RuZGlnZW4gdW5kIE5pY2h0LVNlbGJzdHN0w6RuZGlnZW4uICRNX3tTfSBcbmUgTV97TlN9JCANCg0KDQpIMDogRXMgZ2lidCBrZWluZW4gVW50ZXJzY2hpZWQgendpc2NoZW4gZGVtIFNpY2hlcmhlaXRzZ2Vmw7xobCB2b24gU2VsYnN0c3TDpG5kaWdlbiB1bmQgTmljaHQtU2VsYnN0c3TDpG5kaWdlbi4kTV97U30gPSBNX3tOU30kIA0KDQoNCiMJVm9yYXVzc2V0enVuZ2VuIGRlcyB0LVRlc3RzIGbDvHIgdW5hYmjDpG5naWdlIFN0aWNocHJvYmVuDQoNCg0KRGllIGFiaMOkbmdpZ2UgVmFyaWFibGUgaXN0IG1pbi4gaW50ZXJ2YWxsc2thbGllcnQgLT4gU2ljaGVyaGVpdHNnZWZ1ZWhsKEFWKQ0KDQpFcyBsaWVndCBlaW5lIHVuYWJow6RuZ2lnZSBWYXJpYWJsZSB2b3IsIG1pdHRlbHMgZGVyIGRpZSBiZWlkZW4genUgdmVyZ2xlaWNoZW5kZW4gR3J1cHBlbiBnZWJpbGRldCB3ZXJkZW4uIC0+IEphLCBTZWxic3RzdMOkbmRpZ2VuIHVuZCBOaWNodC1TZWxic3RzdMOkbmRpZ2VuDQoNCkRhcyB1bnRlcnN1Y2h0ZSBNZXJrbWFsIGlzdCBpbiBkZW4gR3J1bmRnZXNhbXRoZWl0ZW4gZGVyIGJlaWRlbiBHcnVwcGVuIG5vcm1hbHZlcnRlaWx0IC0+IHNpZWhlIEhpc3RvZ3JhbW0NCg0KSG9tb2dlbml0w6R0IGRlciBWYXJpYW56ZW46IERpZSBHcnVwcGVuIGtvbW1lbiBhdXMgR3J1bmRnZXNhbXRoZWl0ZW4gbWl0IGFubsOkaGVybmQgaWRlbnRpc2NoZXIgVmFyaWFueiAtPiBzaWVoZSBMZXZlbmUtVGVzdA0KDQpEaWUgZWluemVsbmVuIE1lc3N3ZXJ0ZSBzaW5kIHZvbmVpbmFuZGVyIHVuYWJow6RuZ2lnIChkYXMgVmVyaGFsdGVuIGVpbmVyIFZlcnN1Y2hzcGVyc29uIGhhdCBrZWluZW4gRWluZmx1c3MgYXVmIGRhcyBWZXJoYWx0ZW4gZWluZXIgYW5kZXJlbikgLT4gaXN0IGdlZ2ViZW4uDQoNCg0KIyMgUHLDvGZ1bmcgZGVyIE5vcm1hbHZlcnRlaWx1bmcgbWl0aGlsZmUgZGVzIEhpc3RvZ3JhbW1zDQoNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoZ2dwbG90MikNCg0KICB0X3Rlc3RVTiAlPiUNCiAgZ3JvdXBfYnkoU2VsYnN0c3RhZW5kaWcpICU+JQ0KICBnZ3Bsb3QoYWVzKFNpY2hlcmhlaXRzZ2VmdWVobCkpICsgDQogICAgZ2VvbV9oaXN0b2dyYW0oIGJpbndpZHRoPTQsIGFlcyhmaWxsPVNlbGJzdHN0YWVuZGlnKSwgY29sb3I9IiNlOWVjZWYiLCBhbHBoYT0wLjcgKSArICMgRXJzdGVsbGUgZWluIEhpc3RvZ3JhbW0sIFVudGVydGVpbHVuZywgRmFyYmUgKyBUcmFuc3BhcmVueg0KICAgZmFjZXRfd3JhcCh+U2VsYnN0c3RhZW5kaWcpKyAjIFp3ZWkgR3JhcGhlbg0KICAgIHRoZW1lX2NsYXNzaWMoKSsgI0ZhcmJzY2hlbWENCiAgICBsYWJzKHg9IkdydXBwaWVydW5nZW4iLCB5PSJBbnphaGwiKSAjIEJlc2NocmlmdHVuZw0KIA0KICANCmBgYA0KRXMgbGllZ3QgZWluZSBOb3JtYWx2ZXJ0ZWlsdW5nIHZvbi4gDQoNCiMJRGVza3JpcHRpdmUgU3RhdGlzdGlrZW4NCg0KYGBge3J9DQojbGlicmFyeShkcGx5cikNCnRfdGVzdFVOICU+JQ0KZ3JvdXBfYnkoU2VsYnN0c3RhZW5kaWcpICU+JQ0KICBzdW1tYXJpemUoQW56YWhsID0gbigpLCBNaXR0ZWx3ZXJ0ID0gbWVhbihTaWNoZXJoZWl0c2dlZnVlaGwpLCBNZWRpYW4gPSBtZWRpYW4oU2ljaGVyaGVpdHNnZWZ1ZWhsKSwgU3RhbmRhcmRhYndlaWNodW5nID0gc2QoU2ljaGVyaGVpdHNnZWZ1ZWhsKSkgJT4lDQogIG11dGF0ZV9pZihpcy5udW1lcmljLCByb3VuZCwgMikNCmBgYA0KDQpFcyB6ZWlndCBzaWNoIGbDvHIgZGllc2UgRnJhZ2VzdGVsbHVuZyBlaW5lbiBNaXR0ZWx3ZXJ0c3VudGVyc2NoaWVkLiBEYXMgU2ljaGVyaGVpdHNnZWbDvGhsIGJlaSBOaWNodC1TZWxic3RzdMOkbmRpZ2VuIGlzdCBow7ZoZXIgKE0gPSAyMS4wMCBTRCA9IDMuNywgbiA9IDI1KSBhbHMgYmVpIFNlbGJzdHN0w6RuZGlnZW4gKE0gPSAxNi4xNSBTRCA9IDMuNzQsIG4gPSAyNikuDQoNCg0KIwlUZXN0IGF1ZiBWYXJpYW56aG9tb2dlbml0w6R0IChMZXZlbmUtVGVzdCkNCg0KDQpEZXIgdC1UZXN0IGbDvHIgdW5hYmjDpG5naWdlIEdydXBwZW4gc2V0enQgVmFyaWFuemhvbW9nZW5pdMOkdCB2b3JhdXMuIExpZWd0IFZhcmlhbnpoZXRlcm9nZW5pdMOkdCB2b3IgKGFsc28gdW50ZXJzY2hpZWRsaWNoZSBWYXJpYW56ZW4pLCBzbyBtw7xzc2VuIHVudGVyIGFuZGVyZW0gZGllIEZyZWloZWl0c2dlcmFkZSBkZXMgdC1XZXJ0ZXMgYW5nZXBhc3N0IHdlcmRlbi4gT2IgZGllIFZhcmlhbnplbiBudW4gaG9tb2dlbiAoImdsZWljaCIpIHNpbmQsIGzDpHNzdCBzaWNoIG1pdCBkZW0gTGV2ZW5lLVRlc3QgYXVmIFZhcmlhbnpob21vZ2VuaXTDpHQgcHLDvGZlbi4NCg0KRGVyIExldmVuZS1UZXN0IHZlcndlbmRldCBkaWUgTnVsbGh5cG90aGVzZSwgZGFzcyBzaWNoIGRpZSBiZWlkZW4gVmFyaWFuemVuIG5pY2h0IHVudGVyc2NoZWlkZW4uIERhaGVyIGJlZGV1dGV0IGVpbiBuaWNodCBzaWduaWZpa2FudGVzIEVyZ2VibmlzLCBkYXNzIHNpY2ggZGllIFZhcmlhbnplbiBuaWNodCB1bnRlcnNjaGVpZGVuIHVuZCBhbHNvIFZhcmlhbnpob21vZ2VuaXTDpHQgdm9ybGllZ3QuIElzdCBkZXIgVGVzdCBzaWduaWZpa2FudCwgc28gd2lyZCB2b24gVmFyaWFuemhldGVyb2dlbml0w6R0IGF1c2dlZ2FuZ2VuLg0KDQoNCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoY2FyKQ0KDQpsZXZlbmVUZXN0KHRfdGVzdFVOJFNpY2hlcmhlaXRzZ2VmdWVobCwgdF90ZXN0VU4kU2VsYnN0c3RhZW5kaWcsIGNlbnRlciA9IG1lYW4pDQpgYGANCg0KDQpBbHNvIGVzIGlzdCB6dWVya2VubmVuLCBkYXMgSG9tb2dlbml0w6R0IHZvcmxpZWd0LCBkYSBkZXIgTGV2ZW5lLVRlc3QgbmljaHQgc2lnbmlmaWthbnQgaXN0LiBEYWhlciBrw7ZubmVuIHdpciB2b24gZ2xlaWNoZW4gVmFyaWFuemVuIGF1c2dlaGVuIChGKDEsIDQ5KSA9IC4xNTY2LCBwID0gLjY5NCkuIEVzIGlzdCBkYWhlciBuaWNodCBub3R3ZW5kaWcgZWluZSBXZWxjaC1Lb3JyZWt0dXIgZHVyY2h6dWbDvGhyZW4uDQoNCg0KDQpNaXQgV2VsY2gtS29ycmVrdHVyOiBwIDwgMC4wNSA9PiBFcmdlYm5pcyBTaWduaWZpa2FudCAtLT4gVmFyaWFuemVuIGhldGVyb2dlbg0KDQpPaG5lIFdlbGNoLUtvcnJla3R1cjogcCA+IDAuMDUgPT4gRXJnZWJuaXMgbmljaHQgU2lnbmlmaWthbnQgLS0+IFZhcmlhbnplbiBob21vZ2VuIC0tPiBIMCBtaXQgQW5uYWhtZSBWYXIxPVZhcjINCg0KDQoNCg0KIwlFcmdlYm5pc3NlIGRlcyB0LVRlc3RzIGbDvHIgdW5hYmjDpG5naWdlIFN0aWNocHJvYmVuDQoNCg0KQW4gZGllc2VyIFN0ZWxsZSBmaW5kZXQgZGllIGVpZ2VudGxpY2hlIEF1c3dlcnR1bmcgZGVzIHQtVGVzdGVzIHN0YXR0LiBCZWltIHQtdGVzdCB3aXJkIGRpZSB0LVZlcnRlaWx1bmcgdmVyd2VuZGV0Lg0KDQpBdWNoIGhpZXIgaXN0IGF1ZiBkaWUgUmVpaGVuZm9sZ2UgenUgYWNodGVuIGVyc3QgQVYgdW5kIGRhbm4gVVYuIERhIGluIGRpZXNlbSBCZWlzcGllbCBlaW5lIHVuZ2VyaWNodGV0ZSBIeXBvdGhlc2UgdmVyd2VuZGV0IHdpcmQgbWl0IGVpbmVtIFNpZy4tTml2ZWF1IHZvbiAwLjA1LGlzdCDigJxjb249IDAuOTUsIGFsdCA94oCddHdvLnNpZGVkIiIgenUgdmVyd2VuZGVuLiANClNvbGx0ZW4gU2llIHNpY2ggamVkb2NoIGVudHNjaGVpZGVuIGVpbmUgZ2VyaWNodGV0ZSBIeXBvdGhlc2UgenUgdmVyd2VuZGVuLCBkYW5uIGVtcGZpZWhsdCBlcyBzaWNoIGZvbGdlbmRlIFplaWxlbiB6dSBlcnNldHplbiDigJxjb249IDAuOTUsIGFsdCA94oCdZ3JlYXRlciIiDQpKZSBuYWNoIFJpY2h0dW5nIOKAnGxlc3PigJ0gb3Ig4oCcZ3JlYXRlcuKAnS4gU29sbHRlIGVpbmUgMSBiZWkgcC12YWx1ZSBzdGVoZW4gaXN0IGVzIGdlbmF1IGRpZSBhbmRlcmUgUmljaHR1bmcuDQoNCuKAnFZhci5lcSA9VHJ1ZeKAnSBiZWRldXRldCwgZGFzcyBkaWUgVmFyaWFuemVuIGhvbW9nZW4gKGdsZWljaCkgc2luZCwgYnp3LiDigJxWYXIuZXEgPUZhbHNl4oCdIGRhcyBkaWUgVmFyaWFuemVuIGhldHJvZ2VuIHNpbmQuDQoNCg0KDQojIyBWYXJpYW50ZSAxOiBvaG5lIFdlbGNoIC0gS29ycmVrdHVyIA0KYGBge3J9DQojI0dlcmljaHRldGUgSHlwb3RoZXNlDQojdGVzdDE8LSB0LnRlc3QodF90ZXN0VU4kU2ljaGVyaGVpdHNnZWZ1ZWhsfnRfdGVzdFVOJFNlbGJzdHN0YWVuZGlnLCB2YXIuZXEgPSBUUlVFLCBjb249IDAuOTUsIGFsdCA9ICJncmVhdGVyIikNCg0KIyN1bmdlcmljaHRldGUgSHlwb3RoZXNlDQp0ZXN0MTwtIHQudGVzdCh0X3Rlc3RVTiRTaWNoZXJoZWl0c2dlZnVlaGx+dF90ZXN0VU4kU2VsYnN0c3RhZW5kaWcsIHZhci5lcSA9IFRSVUUsIGNvbj0gMC45NSwgYWx0ID0gInR3by5zaWRlZCIpDQp0ZXN0MQ0KYGBgDQoNCg0KDQpEaWUgVGVzdHN0YXRpc3RpayBiZXRyYWVndCB0ID0gNC42NSB1bmQgZGVyIHp1Z2Vow7ZyaWdlIFNpZ25pZmlrYW56d2VydCBwID0gMi41MTNlLTA1LiBEYW1pdCBpc3QgZGVyIFVudGVyc2NoaWVkIHNpZ25pZmlrYW50Og0KDQpNaXR0ZWx3ZXJ0ZSBkZXIgYmVpZGVuIEFydGVuIGRlciBTZWxic3RzdMOkbmRpZ2tlaXQgdW50ZXJzY2hlaWRlbiBzaWNoICh0KDQ5KSA9IDQuNjUsIHAgPSAyLjUxM2UtMDUsIG49IDUxKQ0KDQoNCiMjIFZhcmlhbnRlIDI6ICBNSVQgV2VsY2gtS29ycmVrdHVyDQoNCmBgYHtyfQ0KDQp3ZWxjaDwtIHQudGVzdCh0X3Rlc3RVTiRTaWNoZXJoZWl0c2dlZnVlaGx+dF90ZXN0VU4kU2VsYnN0c3RhZW5kaWcsIHZhci5lcSA9IEZBTFNFLCBjb249IDAuOTUsIGFsdCA9ICJ0d28uc2lkZWQiKQ0Kd2VsY2gNCmBgYA0KDQptaXQgV2VsY2gtS29ycmVrdHVyKHQoNDguOTU5KSA9IDQuNjUsIHAgPSAyLjUwN2UtMDUpDQoNCg0KDQojCUJlcmVjaG51bmcgZGVyIEVmZmVrdHN0w6Rya2UNCg0KIyMgQmVpIGdsZWljaGdyb8OfZW4gR3J1cHBlbg0KDQokJHI9XHNxcnR7XGZyYWN7dF4yfXt0XjIrZGZ9fSQkDQoNCg0KYGBge3J9DQplZmYgPC0gc3FydCAoKHRlc3QxJHN0YXRpc3RpY14yICkvICh0ZXN0MSRzdGF0aXN0aWNeMiArIHRlc3QxJHBhcmFtZXRlcikpDQpzcHJpbnRmKCJEaWUgRWZmZWt0c3TDpHJrZSBsaWVndCBiZWkgJS4yZiIsZWZmICkNCmBgYA0KDQpadXIgQmV1cnRlaWx1bmcgZGVyIEdyb2Vzc2UgZGVzIEVmZmVrdGVzIGRpZW50IGRpZSBFaW50ZWlsdW5nIHZvbiBDb2hlbiAoMTk5Mik6DQoNCiQkDQpcYmVnaW57YWxpZ259DQpcdGV4dHtTY2h3YWNoZXIgRWZmZWt0OiB9IDAuMTAgJjwgfHxyfHwgPCAwLjMwICAgICAgICAgICAgIFxcDQpcdGV4dHtTY2h3YWNoZXIgYmlzIG1pdHRsZXJlciBFZmZla3Q6IH0gMC4zMCAmPSB8fHJ8fCAgICAgIFxcDQpcdGV4dHtNaXR0bGVyZXIgRWZmZWt0OiB9IDAuMzAgJjwgfHxyfHwgPCAwLjUwICAgICAgICAgICAgIFxcDQpcdGV4dHtNaXR0bGVyZXIgYmlzIHN0YXJrZXIgRWZmZWt0OiB9MC41MCAmPSB8fHJ8fCAgICAgICAgIFxcDQpcdGV4dHtTdGFya2VyIEVmZmVrdDogfSAwLjUwICY8IHx8cnx8ICAgICAgICANClxlbmR7YWxpZ259DQokJA0KSW0gUmFobWVuIGRlcyB0LVRlc3RzIGZ1ZXIgdW5hYmjDpG5naWdlIFN0aWNocHJvYmUgYmVyZWNobmVuIHdpciBuYWNoIFBlYXJzb24gdW5kIGludGVycHJldGllcmVuIG5hY2ggQ29oZW4oMTk5MikuDQoNCkRhbWl0IGVudHNwcmljaHQgZWluZSBFZmZla3RzdGFlcmtlIHZvbiAuNTUgZWluZW0gc3RhcmtlbiBFZmZla3QuDQoNCg0KDQojIEFMVEVSTkFUSVZFIA0KDQojIyBCZWkgdW5nbGVpY2hncm/Dn2VuIEdydXBwZW4NCg0KDQoNCiQkIGQgPSAoXGZyYWMge24xK24yfXtuMSpuMn0rIDAuNSpkXjIvZGYpICogKFxmcmFjeyhuMStuMn17ZGZ9KSQkDQoNCkRpZXNlIEZvcm1lbCB2ZXJ3ZW5kZXQgZGFzIEVmZlNpemUtUGFja2FnZSAtIENvb3BlciBldCBhbC4gKDIwMDkpOg0KDQoNCmBgYHtyfQ0KbGlicmFyeShlZmZzaXplKQ0KDQpjb2hlbi5kKGQgPSB0X3Rlc3RVTiRTaWNoZXJoZWl0c2dlZnVlaGwsIGY9IHRfdGVzdFVOJFNlbGJzdHN0YWVuZGlnKQ0KYGBgDQoNCkludGVycHJldGF0aW9uIHZvbiBkIG5hY2ggQ29oZW4gKDE5ODgpOg0KDQokJA0KXGJlZ2lue2FsaWdufQ0KXHRleHR7U2Nod2FjaGVyIEVmZmVrdDogfSAwLjIwICY8IHx8ZHx8IDwgMC41MCAgICAgICAgICAgICBcXA0KXHRleHR7U2Nod2FjaGVyIGJpcyBtaXR0bGVyZXIgRWZmZWt0OiB9IDAuNTAgJj0gfHxkfHwgICAgICBcXA0KXHRleHR7TWl0dGxlcmVyIEVmZmVrdDogfSAwLjUwICY8IHx8ZHx8IDwgMC44MCAgICAgICAgICAgICBcXA0KXHRleHR7TWl0dGxlcmVyIGJpcyBzdGFya2VyIEVmZmVrdDogfTAuODAgJj0gfHxkfHwgICAgICAgICBcXA0KXHRleHR7U3RhcmtlciBFZmZla3Q6IH0gMC44MCAmPCB8fGR8fCAgICAgICAgDQpcZW5ke2FsaWdufQ0KJCQNCg0KRGFtaXQgZW50c3ByaWNodCBlaW5lIEVmZmVrdHN0YWVya2Ugdm9uIDEuMyBlaW5lbSBzdGFya2VuIEVmZmVrdC4NCg0KDQoNCiMJRWluZSBBdXNzYWdlDQoNCk5pY2h0LVNlbGJzdHN0YWVuZGlnZSBmw7xobGVuIHNpY2ggc2lnbmlmaWthbnQgYmVydWZsaWNoIHNpY2hlcmVyIChNID0gMjEsIFNEID0gMy42OSwgbiA9IDI1KSBhbHMgU2VsYnN0w6RuZGlnZSAoTSA9IDE2LjE1LCBTRCA9IDMuNzMsIG4gPSAyNikgKHQoNDkpID0gNC42NTMyLCBwID0gMi41MTNlLTA1LCBuID0gNTEpLiBEaWUgRWZmZWt0c3TDpHJrZSBsaWVndCBiZWkgciA9IC41NSB1bmQgZW50c3ByaWNodCBkYW1pdCBlaW5lbSBzdGFya2VuIEVmZmVrdCBuYWNoIENvaGVuICgxOTkyKS4gSDAga2FubiB2ZXJ3b3JmZW4gd2VyZGVuLg0KDQoNCg==