Die Zerlegung der Varianzen

Gleichungen und Grundideen der Quadratsummen

Ziel ist die Zerlegung in \(QS_{treat}\) und \(QS_{Res}\) zur Berechnung der Varianzen \(σ^2_{treat}\) und \(σ^2_{Res}\).

\(QS_{Total} = QS_{zwischen} + QS_{innerhalb}= QS_{zwischen}+ QS_{treat}+ QS_{Res}\)

Gesamtabweichung

\[QS_{Total} = \sum \limits_{i=1}^p \sum \limits_{v=1}^n (x_{vi}-\hat{u})^2\]
Summe der quadratischen Gesamtabweichung

Abweichung durch Faktor

\[QS_{zwischen} = p* \sum \limits_{v=1}^n (\hat{u_v}-\hat{u})^2\]
Summe der quadrierten Abweichung zwischen der Faktorstufen (Bedingungen der UV, Gruppe)

Abweichung innerhalb der Faktorstufen

\[QS_{innerhalb} = \sum \limits_{i=1}^p \sum \limits_{v=1}^n (x_{vi}-\hat{u_v})^2\]

Summe der quadrierten Abweichung innerhalb der Faktorstufen

Abweichung durch Residuums (“Fehler”)

\[QS_{Res} = \sum \limits_{i=1}^p \sum \limits_{v=1}^n (x_{vi}-\hat{u_i}-\hat{u_v}+\hat{u})^2\]
Summe der quadrierten Abweichung der Residual

Abweichung durch Treatment (Faktorstufen)

\[QS_{treat} = n* \sum \limits_{i=1}^p (\hat{u_i}-\hat{u})^2\]

\(\hat{u} = Gesamtmittelwert\)
\(\hat{u_i} = Mittelwert\,der\, Faktorstufe_i\)
\(n_i = Stichprobeumfang\,in\,Faktor\)
\(x_{vi} = Messwert\, von\, VP.\, in\, der\, Faktorstufe \,i\)

Rohdaten

Person T0 T1 T2 T3 \(P_v\) \(\hat{u}_{v}\)
1 85 82 75 70 312 78
2 81 78 73 66 298 74.5
3 80 72 68 62 282 70.5
4 74 71 65 61 271 67.75
5 79 68 61 59 267 66.75
Summe 399 371 342 318 1430
Mittelwert 79.8 74.2 68.4 63.6 - 71.5

\(\hat{u} = \frac{79.8+74.2+68.4+63.6}{4} =71.5\)

Berechnung der Quadratsumme-Total

Abweichungsquardrate der Messwerte vom Gesamtmittel Zur Berechnung der \(QS_{Total}\) werden die Rohwerte der 5 Teilnehmern zu den 4 Messzeitpunkten mit dem Gesamtmittelwert subtrahiert und anschließend quadriert. Die Summe dieser 20 Werte ist \(QS_{Total}\).

Die totale Quadratsumme repräsentiert die Gesamtvariation der Messwerte. Die Berechnung ist identisch zur einfaktoriellen Varianzanalyse ohne Messwiederholung.

\(QS_{Total} = (85-71.5)²+ (82-71.5)²+(75-71.5)²+(70-71.5)²+(81-71.5)²\\+....+(68-71.5)²+(61-71.5)²+(59-71.5)²= 1141\)
\(df_{Total} = (n*p)-1= 20-1 = 19\)
\(\hat{\sigma}_{Total}^2 =1141 / 19 = 285.25\)



Berechnung der Quadratsumme-Zwischen

Es wird die Summe der quadrierten Abweichungen der Mittelwerte jeder Person über alle vier Messzeitpunkte vom Grundniveau ermittelt. Dazu werden die unterschiedlichen beobachteten Messwerte einer Person zu den vier Messzeitpunkten durch den Mittelwert der Person über die vier Messzeitpunkte ersetzt. Da man davon ausgeht, dass die A-priori Unterschiede zwischen den Personen am besten durch die Mittelwerte der Personen über die Messzeitpunkte repräsentiert werden.

Rohdaten

Person T0 T1 T2 T3 \(P_v\) \(\hat{u}_{v}\)
1 85 82 75 70 312 78
2 81 78 73 66 298 74.5
3 80 72 68 62 282 70.5
4 74 71 65 61 271 67.75
5 79 68 61 59 267 66.75
Summe 399 371 342 318 1430
Mittelwert 79.8 74.2 68.4 63.6 - 71.5

\((\hat{u_v}-\hat{u})^2 = (78-71.5)^2 = 42.25\)
\((\hat{u_v}-\hat{u})^2 = (74.5-71.5)^ = 9\)
\((\hat{u_v}-\hat{u})^2 = (70.5-71.5)^2 = 1\)
\((\hat{u_v}-\hat{u})^2 = (67.75-71.5)^2 = 14.06\)
\((\hat{u_v}-\hat{u})^2 = (66.75-71.5)^2 = 22.56\)

Person T0 T1 T2 T3 \(Summe\)
1 42.25 42.25 42.25 42.25 169
2 9 9 9 9 36
3 1 1 1 1 4
4 14.06 14.06 14.06 14.06 56.25
5 22.56 22.56 22.56 22.56 90.24
Summe 88.87 88.87 88.87 88.87 355.48
88.87*4
[1] 355.48
169+36+4+56.25+90.24
[1] 355.49

\(QS_{Zwischen} = 4*[(78-71.5)² +(74.5-71.5)²+(70.5-71.5)²+(67.75-71.75)²+(66.75-71.5)²]= 355.48\)
\(df_{Zwischen} = n-1 = 5-1 = 4\)
\(\hat{\sigma}_{Zwischen}^2= 355.48 / 4 = 88.87\)

Berechnung der Quadratsumme-Innerhalb

In diesem Punkt ermitteln wir die Abweichungen der Messwerte einer Person, die zu den unterschiedlichen Messzeitpunkten erhoben wurden, vom jeweiligen Mittelwert der Person über die Messzeitpunkte hinweg. Dabei werden die individuellen Mittelwerte eine Schätzung der „wahren“ Ausprägung der Person darstellt. Dadurch müssen wir einen Korrektur bei jeder Person p durchführen. Damit ergibt sich folgende Formel für die Freiheitsgrade n·(p−1).

Rohdaten

Person T0 T1 T2 T3 \(P_v\) \(\hat{u}_{v}\)
1 85 82 75 70 312 78
2 81 78 73 66 298 74.5
3 80 72 68 62 282 70.5
4 74 71 65 61 271 67.75
5 79 68 61 59 267 66.75
Summe 399 371 342 318 1430
Mittelwert 79.8 74.2 68.4 63.6 - 71.5

\((x_{vi}-\hat{u_v})^2 = (85-78)^2 = 49\)
\((x_{vi}-\hat{u_v})^2 = (82-78)^2 = 16\)
\((x_{vi}-\hat{u_v})^2 = (82-78)^2 = 9\)
\((x_{vi}-\hat{u_v})^2 = (70-78)^2 = 64\)
\((x_{vi}-\hat{u_v})^2 = (81-74.5)^2 = 42.25\)

Person T0 T1 T2 T3 \(Summe\)
1 49 16 9 64 138
2 42.25 12.25 2.25 72.25 129
3 90.25 2.25 6.25 72.25 171
4 39.06 10.56 7.56 45.56 102.74
5 150.06 1.56 33.06 60.06 244.74
785.48
138+129+171+102.74+244.74
[1] 785.48

\(QS_{innerhalb} = (85-78)²+(82-78)²+(75-78)²+(70-78)²+(81-74.5)²+....+(61-66.75)²+(59-66.75)²= 785.48\)
\(df_{innerhalb} = n*(p-1) =5*(4-1) = 15\)
\(\hat{\sigma}_{innerhalb}^2 = 785.48/ 15 = 52.365\)

Berechnung der Quadratsumme-Treatment (Faktorstufen)

Die \(QS_{treat}\) stellen den Anteil der Unterschiedlichkeit aller Messwerte dar, der auf die Aufprägunstufen zurückgeführt werden kann. Das bedeutet, dass es sich um ein “systematischen” Veränderungen der Messwerte aufgrund des Treatments zwischen den Messzeitpunkten handelt.

Die \(QS_{treat}\) berechnet sich durch das Aufsummieren der quadrierten Abweichungen der jeweiligen Mittelwerte zu jedem Messzeitpunkt vom Gesamtmittelwert.

Rohdaten

Person T0 T1 T2 T3 \(P_v\) \(\hat{u}_{v}\)
1 85 82 75 70 312 78
2 81 78 73 66 298 74.5
3 80 72 68 62 282 70.5
4 74 71 65 61 271 67.75
5 79 68 61 59 267 66.75
Summe 399 371 342 318 1430
Mittelwert 79.8 74.2 68.4 63.6 - 71.5

\((\hat{u_i}-\hat{u})^2 = (79.8-71.5)^2 = 68.89\)
\((\hat{u_i}-\hat{u})^2 = (74.2-71.5)^2 = 7.29\)
\((\hat{u_i}-\hat{u})^2 = (68.4-71.5)^2 = 9.61\)
\((\hat{u_i}-\hat{u})^2 = (63.6-71.5)^2 = 62.41\)

Person T0 T1 T2 T3 \(Summe\)
1 68.89 7.29 9.61 62.41 148.2
2 68.89 7.29 9.61 62.41 148.2
3 68.89 7.29 9.61 62.41 148.2
4 68.89 7.29 9.61 62.41 148.2
5 68.89 7.29 9.61 62.41 148.2
Summe 344.45 36.45 48.05 312.05 741
a <-((79.8-71.5)^2 )*5
b <-((74.2-71.5)^2 )*5
c <-((68.4-71.5)^2 )*5
d <-((63.6-71.5)^2 )*5
a+b+c+d

\(QS_{treat} = 5*[(79.8-71.5)²+(74.2-71.5)²+(68.4-71.5)²+(63.6-71.5)²]= 741\)
\(df_{treat} = p-1= 4-1 = 3\)
\(\hat{\sigma}_{treat}^2 = 741 /3 = 247\)

a <-((79.8-71.5)^2 )*5
b <-((74.2-71.5)^2 )*5
c <-((68.4-71.5)^2 )*5
d <-((63.6-71.5)^2 )*5
a+b+c+d

Berechnung der Quadratsumme-Residuals

Es werden vier Werte zur Berechnung herangezogen:

+die beobachteten Messwerte der Person zu dem Messzeitpunkt
+der Mittelwert der jeweiligen Person
+der Mittelwert des jeweiligen Messzeitpunkts
+der Mittelwert der Person über alle Messwiederholungsstufen

In der Residualvarianz werden die Effekte der Interaktion zwischen Person und Messzeitpunkt, sowie auch die Residuals berücksichtigt. Allerdings sind der Messzeitpunkteffekt und der Personeneffekt in dieser Quadratsumme multiplikativ verknüpft, da es sich um eine Interaktion handelt. Demzufolge werden auch bei der Berechnung der Freiheitsgrade (n−1) und (p−1) multipliziert.

Rohdaten

Person T0 T1 T2 T3 \(P_v\) \(\hat{u}_{v}\)
1 85 82 75 70 312 78
2 81 78 73 66 298 74.5
3 80 72 68 62 282 70.5
4 74 71 65 61 271 67.75
5 79 68 61 59 267 66.75
Summe 399 371 342 318 1430
Mittelwert 79.8 74.2 68.4 63.6 - 71.5

\((x_{vi}-\hat{u_i}-\hat{u_v}+\hat{u})^2 = (85-79.8-78+71.5)^2 = 1.69\)
\((x_{vi}-\hat{u_i}-\hat{u_v}+\hat{u})^2 = (82-74.2-78+71.5)^2 = 1.69\)
\((x_{vi}-\hat{u_i}-\hat{u_v}+\hat{u})^2 = (75-68.4-78+71.5)^2 = 0.01\)
\((x_{vi}-\hat{u_i}-\hat{u_v}+\hat{u})^2 = (70-63.6-78+71.5)^2 = 0.01\)
\((x_{vi}-\hat{u_i}-\hat{u_v}+\hat{u})^2 = (81-79.8-74.5+71.5)^2 = 3.24\)

(82-74.2-78+71.5)^2
[1] 1.69
(82-74.2-78+71.5)^2
[1] 1.69

Rohdaten

Person T0 T1 T2 T3 \(Summe\)
1 1.69 1.69 0.01 0.01 3.4
2 3.24 0.64 2.56 0.36 6.8
3 1.44 1.44 0.36 0.36 3.6
4 4.2025 0.3025 0.122 1.322 5.949
5 15.6025 2.102 7.022 0.0225 24.749
44.498

\(QS_{Res} = (85-79.8-78+71.5)²+(82-74.2-78+71.5)²+(75-68.4-78+71.5)²+(70-63.6-78+71.5)²\\ +(81-79.8-74.5+71.5)²+....+(61-68.4-66.75+71.5)²+(59-63.6-66.75+71.5)²= 44.498\)
\(df_{Res} = (n-1)*(p-1)= (5-1)*(4-1) = 12\)
\(\hat{\sigma}_{Res} ^2= 44.498 / 12 = 3.70\)

Zusammenfassung

Varianzquelle Quadratsumme df mittlere Quadratsumme
Treatment 802.25 3 267.42
Residuals 44.498 12 3.70
Innerhalb 785.48 15 52.365
Zwischen 355.46 4 88.865
Gesamt 1141.79 19 285.25

\(F_{kritisch}\)

\(DF-Zähler: df_{treat} -> 3\)
\(DF-Nenner: df_{Res}-> 12\)

Der Wert für \(F_{kritisch}\) liegt bei 3.49.

\(F_{emp}\)

\[F_{emp}= \frac{\hat{\sigma}_{treat}^2}{\hat{\sigma}_{Res}^2} = \frac{802.25} {44.49} = 18.03\]

\[F_{kritisch} = 3.49 < 18.03 = F_{emp}\]

LS0tDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCiMgRGllIFplcmxlZ3VuZyBkZXIgVmFyaWFuemVuIA0KDQojIyMgR2xlaWNodW5nZW4gdW5kIEdydW5kaWRlZW4gZGVyIFF1YWRyYXRzdW1tZW4gDQoNClppZWwgaXN0IGRpZSBaZXJsZWd1bmcgaW4gJFFTX3t0cmVhdH0kIHVuZCAkUVNfe1Jlc30kIHp1ciBCZXJlY2hudW5nIGRlciBWYXJpYW56ZW4gJM+DXjJfe3RyZWF0fSQgdW5kICTPg14yX3tSZXN9JC4NCg0KJFFTX3tUb3RhbH0gPSBRU197endpc2NoZW59ICsgUVNfe2lubmVyaGFsYn09ICBRU197endpc2NoZW59KyBRU197dHJlYXR9KyBRU197UmVzfSQNCjxicj48YnI+DQoNCiMjIyBHZXNhbXRhYndlaWNodW5nDQokJFFTX3tUb3RhbH0gPSBcc3VtIFxsaW1pdHNfe2k9MX1ecCBcc3VtIFxsaW1pdHNfe3Y9MX1ebiAoeF97dml9LVxoYXR7dX0pXjIkJCA8YnI+DQpTdW1tZSBkZXIgcXVhZHJhdGlzY2hlbiBHZXNhbXRhYndlaWNodW5nPGJyPjxicj4NCg0KIyMjIEFid2VpY2h1bmcgZHVyY2ggRmFrdG9yDQokJFFTX3t6d2lzY2hlbn0gPSBwKiBcc3VtIFxsaW1pdHNfe3Y9MX1ebiAoXGhhdHt1X3Z9LVxoYXR7dX0pXjIkJCAgPGJyPg0KU3VtbWUgZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmcgendpc2NoZW4gZGVyIEZha3RvcnN0dWZlbiAoQmVkaW5ndW5nZW4gZGVyIFVWLCBHcnVwcGUpPGJyPjxicj4NCg0KIyMjIEFid2VpY2h1bmcgaW5uZXJoYWxiIGRlciBGYWt0b3JzdHVmZW4NCiQkUVNfe2lubmVyaGFsYn0gPSBcc3VtIFxsaW1pdHNfe2k9MX1ecCBcc3VtIFxsaW1pdHNfe3Y9MX1ebiAoeF97dml9LVxoYXR7dV92fSleMiQkIDxicj4NCg0KU3VtbWUgZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmcgaW5uZXJoYWxiIGRlciBGYWt0b3JzdHVmZW48YnI+PGJyPg0KDQoNCiMjIyBBYndlaWNodW5nIGR1cmNoIFJlc2lkdXVtcyAoIkZlaGxlciIpDQokJFFTX3tSZXN9ID0gXHN1bSBcbGltaXRzX3tpPTF9XnAgXHN1bSBcbGltaXRzX3t2PTF9Xm4gKHhfe3ZpfS1caGF0e3VfaX0tXGhhdHt1X3Z9LVxoYXR7dX0pXjIkJCAgPGJyPg0KU3VtbWUgZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmcgZGVyIFJlc2lkdWFsPGJyPjxicj4NCg0KDQojIyMgQWJ3ZWljaHVuZyBkdXJjaCBUcmVhdG1lbnQgKEZha3RvcnN0dWZlbikNCiQkUVNfe3RyZWF0fSA9IG4qIFxzdW0gXGxpbWl0c197aT0xfV5wIChcaGF0e3VfaX0tXGhhdHt1fSleMiQkICA8YnI+DQoNCg0KDQoNCiRcaGF0e3V9ID0gR2VzYW10bWl0dGVsd2VydCQ8YnI+DQokXGhhdHt1X2l9ID0gTWl0dGVsd2VydFwsZGVyXCwgRmFrdG9yc3R1ZmVfaSQ8YnI+DQokbl9pID0gU3RpY2hwcm9iZXVtZmFuZ1wsaW5cLEZha3RvciQ8YnI+DQokeF97dml9ID0gTWVzc3dlcnRcLCB2b25cLCBWUC5cLCBpblwsIGRlclwsIEZha3RvcnN0dWZlIFwsaSQ8YnI+DQoNCg0KIyMjIFJvaGRhdGVuIA0KDQpQZXJzb24gICAgICAgICAgICAgIHwJVDAgICAgICAgICAgICB8CVQxICAgICAgICAgICAgfAlUMiAgICAgICAgICAgIHwJVDMJICAgICAgICAgIHwkUF92JCAgICB8JFxoYXR7dX1fe3Z9JCANCi0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0NCjEJICAgICAgICAgICAgICAgICAgfDg1ICAgICAgICAgICAgIHwJODIgICAgICAgICAgICB8CTc1ICAgICAgICAgICAgfAkgIDcwCSAgICAgICAgfCAzMTIgICAgIHwqKjc4KioNCjIJICAgICAgICAgICAgICAgICAgfDgxICAgICAgICAgICAgIHwJNzggICAgICAgICAgICB8CTczICAgICAgICAgICAgfAkgIDY2CSAgICAgICAgfCAyOTggICAgIHwqKjc0LjUqKg0KMwkgICAgICAgICAgICAgICAgICB8ODAgICAgICAgICAgICAgfAk3MiAgICAgICAgICAgIHwJNjggICAgICAgICAgICB8CSAgNjIJICAgICAgICB8CTI4MiAgICAgfCoqNzAuNSoqDQo0ICAgICAgICAgICAgICAgICAgIHw3NCAgICAgICAgICAgICB8CTcxICAgICAgICAgICAgfAk2NSAgICAgICAgICAgIHwJICA2MQkgICAgICAgIHwJMjcxICAgICB8Kio2Ny43NSoqDQo1ICAgICAgICAgICAgICAgICAgIHw3OSAgICAgICAgICAgICB8CTY4ICAgICAgICAgICAgfAk2MSAgICAgICAgICAgIHwJICA1OQkgICAgICAgIHwJMjY3ICAgICB8Kio2Ni43NSoqDQoqKlN1bW1lKiogICAgICAgICAgIHwqKjM5OSoqICAgICAgICB8CSoqMzcxICoqICAgICAgfCoqMzQyKiogICAgICAgIHwJICAqKjMxOCoqCSAgICB8KioxNDMwKiogfA0KKipNaXR0ZWx3ZXJ0KiogICAgICB8Kio3OS44KiogICAgICAgfAkqKjc0LjIgKiogICAgIHwqKjY4LjQqKiAgICAgICB8CSAgKio2My42KiogICAgfAktICAgICAgIHwqKjcxLjUqKg0KDQokXGhhdHt1fSA9IFxmcmFjezc5LjgrNzQuMis2OC40KzYzLjZ9ezR9ID03MS41JDxicj4NCg0KDQojIyMJQmVyZWNobnVuZyBkZXIgUXVhZHJhdHN1bW1lLVRvdGFsIAkJDQoNCkFid2VpY2h1bmdzcXVhcmRyYXRlIGRlciBNZXNzd2VydGUgdm9tIEdlc2FtdG1pdHRlbA0KWnVyIEJlcmVjaG51bmcgZGVyICRRU197VG90YWx9JCB3ZXJkZW4gZGllIFJvaHdlcnRlIGRlciA1IFRlaWxuZWhtZXJuIHp1IGRlbiA0IE1lc3N6ZWl0cHVua3RlbiBtaXQgZGVtIEdlc2FtdG1pdHRlbHdlcnQgc3VidHJhaGllcnQgdW5kIGFuc2NobGllw59lbmQgcXVhZHJpZXJ0LiBEaWUgU3VtbWUgZGllc2VyIDIwIFdlcnRlIGlzdCAkUVNfe1RvdGFsfSQuDQoNCkRpZSB0b3RhbGUgUXVhZHJhdHN1bW1lIHJlcHLDpHNlbnRpZXJ0IGRpZSBHZXNhbXR2YXJpYXRpb24gZGVyIE1lc3N3ZXJ0ZS4gRGllIEJlcmVjaG51bmcgaXN0IGlkZW50aXNjaCB6dXIgZWluZmFrdG9yaWVsbGVuIFZhcmlhbnphbmFseXNlIG9obmUgTWVzc3dpZWRlcmhvbHVuZy4NCg0KDQoNCiRRU197VG90YWx9ID0gKDg1LTcxLjUpwrIrICg4Mi03MS41KcKyKyg3NS03MS41KcKyKyg3MC03MS41KcKyKyg4MS03MS41KcKyXFwrLi4uLisoNjgtNzEuNSnCsisoNjEtNzEuNSnCsisoNTktNzEuNSnCsj0gMTE0MSQ8YnI+DQokZGZfe1RvdGFsfSA9IChuKnApLTE9IDIwLTEgPSAxOSQ8YnI+DQokXGhhdHtcc2lnbWF9X3tUb3RhbH1eMiA9MTE0MSAvIDE5ID0gMjg1LjI1JDxicj4NCg0KPGJyPjxicj4NCg0KIyMjCUJlcmVjaG51bmcgZGVyIFF1YWRyYXRzdW1tZS1ad2lzY2hlbiAJDQoNCg0KRXMgd2lyZCBkaWUgU3VtbWUgZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmdlbiBkZXIgTWl0dGVsd2VydGUgamVkZXIgUGVyc29uIMO8YmVyIGFsbGUgdmllciBNZXNzemVpdHB1bmt0ZSB2b20gR3J1bmRuaXZlYXUgZXJtaXR0ZWx0LiBEYXp1IHdlcmRlbiBkaWUgdW50ZXJzY2hpZWRsaWNoZW4gYmVvYmFjaHRldGVuIE1lc3N3ZXJ0ZSBlaW5lciBQZXJzb24genUgZGVuIHZpZXIgTWVzc3plaXRwdW5rdGVuIGR1cmNoIGRlbiBNaXR0ZWx3ZXJ0IGRlciBQZXJzb24gw7xiZXIgZGllIHZpZXIgTWVzc3plaXRwdW5rdGUgZXJzZXR6dC4gRGEgbWFuIGRhdm9uIGF1c2dlaHQsIGRhc3MgZGllIEEtcHJpb3JpIFVudGVyc2NoaWVkZSB6d2lzY2hlbiBkZW4gUGVyc29uZW4gYW0gYmVzdGVuIGR1cmNoIGRpZSBNaXR0ZWx3ZXJ0ZSBkZXIgUGVyc29uZW4gw7xiZXIgZGllIE1lc3N6ZWl0cHVua3RlIHJlcHLDpHNlbnRpZXJ0IHdlcmRlbi4NCg0KIyMjIFJvaGRhdGVuIA0KDQpQZXJzb24gICAgICAgICAgICAgIHwJVDAgICAgICAgICAgICB8CVQxICAgICAgICAgICAgfAlUMiAgICAgICAgICAgIHwJVDMJICAgICAgICAgIHwkUF92JCAgICB8JFxoYXR7dX1fe3Z9JCANCi0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0NCjEJICAgICAgICAgICAgICAgICAgfDg1ICAgICAgICAgICAgIHwJODIgICAgICAgICAgICB8CTc1ICAgICAgICAgICAgfAkgIDcwCSAgICAgICAgfCAzMTIgICAgIHwqKjc4KioNCjIJICAgICAgICAgICAgICAgICAgfDgxICAgICAgICAgICAgIHwJNzggICAgICAgICAgICB8CTczICAgICAgICAgICAgfAkgIDY2CSAgICAgICAgfCAyOTggICAgIHwqKjc0LjUqKg0KMwkgICAgICAgICAgICAgICAgICB8ODAgICAgICAgICAgICAgfAk3MiAgICAgICAgICAgIHwJNjggICAgICAgICAgICB8CSAgNjIJICAgICAgICB8CTI4MiAgICAgfCoqNzAuNSoqDQo0ICAgICAgICAgICAgICAgICAgIHw3NCAgICAgICAgICAgICB8CTcxICAgICAgICAgICAgfAk2NSAgICAgICAgICAgIHwJICA2MQkgICAgICAgIHwJMjcxICAgICB8Kio2Ny43NSoqDQo1ICAgICAgICAgICAgICAgICAgIHw3OSAgICAgICAgICAgICB8CTY4ICAgICAgICAgICAgfAk2MSAgICAgICAgICAgIHwJICA1OQkgICAgICAgIHwJMjY3ICAgICB8Kio2Ni43NSoqDQoqKlN1bW1lKiogICAgICAgICAgIHwqKjM5OSoqICAgICAgICB8CSoqMzcxICoqICAgICAgfCoqMzQyKiogICAgICAgIHwJICAqKjMxOCoqCSAgICB8KioxNDMwKiogfA0KKipNaXR0ZWx3ZXJ0KiogICAgICB8Kio3OS44KiogICAgICAgfAkqKjc0LjIgKiogICAgIHwqKjY4LjQqKiAgICAgICB8CSAgKio2My42KiogICAgfAktICAgICAgIHwqKjcxLjUqKg0KDQokKFxoYXR7dV92fS1caGF0e3V9KV4yID0gKDc4LTcxLjUpXjIgPSA0Mi4yNSQ8YnI+DQokKFxoYXR7dV92fS1caGF0e3V9KV4yID0gKDc0LjUtNzEuNSleICA9IDkkPGJyPg0KJChcaGF0e3Vfdn0tXGhhdHt1fSleMiA9ICg3MC41LTcxLjUpXjIgPSAxJDxicj4NCiQoXGhhdHt1X3Z9LVxoYXR7dX0pXjIgPSAoNjcuNzUtNzEuNSleMiA9IDE0LjA2JDxicj4NCiQoXGhhdHt1X3Z9LVxoYXR7dX0pXjIgPSAoNjYuNzUtNzEuNSleMiA9IDIyLjU2JDxicj4NCg0KDQoNClBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgIHwJVDEgICAgICAgICAgICB8CVQyICAgICAgICAgICAgfAlUMwkgICAgICAgICAgfCRTdW1tZSQgIHwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18DQoxCSAgICAgICAgICAgICAgICAgIHw0Mi4yNSAgICAgICAgICB8CTQyLjI1ICAgICAgICAgfAk0Mi4yNSAgICAgICAgIHwJICA0Mi4yNQkgICAgICB8IDE2OSAgICAgfA0KMgkgICAgICAgICAgICAgICAgICB8OSAgICAgICAgICAgICAgfAk5ICAgICAgICAgICAgIHwJOSAgICAgICAgICAgICB8CSAgOQkgICAgICAgICAgfCAzNiAgICAgIHwNCjMJICAgICAgICAgICAgICAgICAgfDEgICAgICAgICAgICAgIHwJMSAgICAgICAgICAgICB8CTEgICAgICAgICAgICAgfAkgIDEJICAgICAgICAgIHwJNCAgICAgICB8DQo0ICAgICAgICAgICAgICAgICAgIHwxNC4wNiAgICAgICAgICB8CTE0LjA2ICAgICAgICAgfAkxNC4wNiAgICAgICAgIHwJICAxNC4wNiAgICAgICB8CTU2LjI1ICAgfA0KNSAgICAgICAgICAgICAgICAgICB8MjIuNTYgICAgICAgICAgfAkyMi41NiAgICAgICAgIHwJMjIuNTYgICAgICAgICB8CSAgMjIuNTYJICAgICAgfAk5MC4yNCAgIHwNCioqU3VtbWUqKiAgICAgICAgICAgfCoqODguODcqKiAgICAgIHwJKio4OC44NyAqKiAgICB8Kio4OC44NyoqICAgICAgfAkgICoqODguODcqKgkgIHwqKjM1NS40OCoqIHwNCg0KDQpgYGB7cn0NCjg4Ljg3KjQNCmBgYA0KDQpgYGB7cn0NCjE2OSszNis0KzU2LjI1KzkwLjI0DQpgYGANCg0KDQokUVNfe1p3aXNjaGVufSA9IDQqWyg3OC03MS41KcKyICsoNzQuNS03MS41KcKyKyg3MC41LTcxLjUpwrIrKDY3Ljc1LTcxLjc1KcKyKyg2Ni43NS03MS41KcKyXT0gMzU1LjQ4JDxicj4NCiRkZl97Wndpc2NoZW59ID0gbi0xID0gNS0xID0gNCQ8YnI+DQokXGhhdHtcc2lnbWF9X3tad2lzY2hlbn1eMj0gMzU1LjQ4IC8gNCA9IDg4Ljg3JDxicj4NCg0KDQoNCiMjIwlCZXJlY2hudW5nIGRlciBRdWFkcmF0c3VtbWUtSW5uZXJoYWxiIA0KDQpJbiBkaWVzZW0gUHVua3QgZXJtaXR0ZWxuIHdpciBkaWUgQWJ3ZWljaHVuZ2VuIGRlciBNZXNzd2VydGUgZWluZXIgUGVyc29uLCBkaWUgenUgZGVuIHVudGVyc2NoaWVkbGljaGVuIE1lc3N6ZWl0cHVua3RlbiBlcmhvYmVuIHd1cmRlbiwgdm9tIGpld2VpbGlnZW4gTWl0dGVsd2VydCBkZXIgUGVyc29uIMO8YmVyIGRpZSBNZXNzemVpdHB1bmt0ZSBoaW53ZWcuIERhYmVpIHdlcmRlbiBkaWUgaW5kaXZpZHVlbGxlbiBNaXR0ZWx3ZXJ0ZSBlaW5lIFNjaMOkdHp1bmcgZGVyIOKAnndhaHJlbuKAnCBBdXNwcsOkZ3VuZyBkZXIgUGVyc29uIGRhcnN0ZWxsdC4gRGFkdXJjaCBtw7xzc2VuIHdpciBlaW5lbiBLb3JyZWt0dXIgYmVpIGplZGVyICBQZXJzb24gcCBkdXJjaGbDvGhyZW4uIERhbWl0IGVyZ2lidCBzaWNoIGZvbGdlbmRlIEZvcm1lbCBmw7xyIGRpZSBGcmVpaGVpdHNncmFkZSBuwrcocOKIkjEpLiANCg0KDQojIyMgUm9oZGF0ZW4gDQoNClBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgIHwJVDEgICAgICAgICAgICB8CVQyICAgICAgICAgICAgfAlUMwkgICAgICAgICAgfCRQX3YkICAgIHwkXGhhdHt1fV97dn0kIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLQ0KMQkgICAgICAgICAgICAgICAgICB8ODUgICAgICAgICAgICAgfAk4MiAgICAgICAgICAgIHwJNzUgICAgICAgICAgICB8CSAgNzAJICAgICAgICB8IDMxMiAgICAgfCoqNzgqKg0KMgkgICAgICAgICAgICAgICAgICB8ODEgICAgICAgICAgICAgfAk3OCAgICAgICAgICAgIHwJNzMgICAgICAgICAgICB8CSAgNjYJICAgICAgICB8IDI5OCAgICAgfCoqNzQuNSoqDQozCSAgICAgICAgICAgICAgICAgIHw4MCAgICAgICAgICAgICB8CTcyICAgICAgICAgICAgfAk2OCAgICAgICAgICAgIHwJICA2MgkgICAgICAgIHwJMjgyICAgICB8Kio3MC41KioNCjQgICAgICAgICAgICAgICAgICAgfDc0ICAgICAgICAgICAgIHwJNzEgICAgICAgICAgICB8CTY1ICAgICAgICAgICAgfAkgIDYxCSAgICAgICAgfAkyNzEgICAgIHwqKjY3Ljc1KioNCjUgICAgICAgICAgICAgICAgICAgfDc5ICAgICAgICAgICAgIHwJNjggICAgICAgICAgICB8CTYxICAgICAgICAgICAgfAkgIDU5CSAgICAgICAgfAkyNjcgICAgIHwqKjY2Ljc1KioNCioqU3VtbWUqKiAgICAgICAgICAgfCoqMzk5KiogICAgICAgIHwJKiozNzEgKiogICAgICB8KiozNDIqKiAgICAgICAgfAkgICoqMzE4KioJICAgIHwqKjE0MzAqKiB8DQoqKk1pdHRlbHdlcnQqKiAgICAgIHwqKjc5LjgqKiAgICAgICB8CSoqNzQuMiAqKiAgICAgfCoqNjguNCoqICAgICAgIHwJICAqKjYzLjYqKiAgICB8CS0gICAgICAgfCoqNzEuNSoqDQoNCg0KJCh4X3t2aX0tXGhhdHt1X3Z9KV4yID0gKDg1LTc4KV4yID0gNDkkPGJyPg0KJCh4X3t2aX0tXGhhdHt1X3Z9KV4yID0gKDgyLTc4KV4yID0gMTYkPGJyPg0KJCh4X3t2aX0tXGhhdHt1X3Z9KV4yID0gKDgyLTc4KV4yID0gOSQ8YnI+DQokKHhfe3ZpfS1caGF0e3Vfdn0pXjIgPSAoNzAtNzgpXjIgPSA2NCQ8YnI+DQokKHhfe3ZpfS1caGF0e3Vfdn0pXjIgPSAoODEtNzQuNSleMiA9IDQyLjI1JDxicj4NCg0KDQoNCnxQZXJzb24gICAgICAgICAgICAgIHwJVDAgICAgICAgICAgICB8CVQxICAgICAgICAgICAgfAlUMiAgICAgICAgICAgIHwJVDMJICAgICAgICAgIHwkU3VtbWUkDQp8LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLQ0KfDEJICAgICAgICAgICAgICAgICAgfDQ5ICAgICAgICAgICAgfAkxNiAgICAgICAgICAgIHwJOSAgICAgICAgICAgICB8CSAgNjQJICAgICAgICB8IDEzOA0KfDIJICAgICAgICAgICAgICAgICAgfDQyLjI1ICAgICAgICAgIHwJMTIuMjUgICAgICAgICB8CTIuMjUgICAgICAgICAgfAkgIDcyLjI1CSAgICAgIHwgMTI5DQp8MwkgICAgICAgICAgICAgICAgICB8OTAuMjUgICAgICAgICAgfAkyLjI1ICAgICAgICAgIHwJNi4yNSAgICAgICAgICB8CSAgNzIuMjUJICAgICAgfAkxNzENCnw0ICAgICAgICAgICAgICAgICAgIHwzOS4wNiAgICAgICAgICB8CTEwLjU2ICAgICAgICAgfAk3LjU2ICAgICAgICAgIHwJICA0NS41NiAgICAgICB8CTEwMi43NA0KfDUgICAgICAgICAgICAgICAgICAgfDE1MC4wNiAgICAgICAgIHwJMS41NiAgICAgICAgICB8CTMzLjA2ICAgICAgICAgfAkgIDYwLjA2CSAgICAgIHwJMjQ0Ljc0DQp8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCoqNzg1LjQ4KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQpgYGB7cn0NCjEzOCsxMjkrMTcxKzEwMi43NCsyNDQuNzQNCmBgYA0KDQoNCiRRU197aW5uZXJoYWxifSA9ICg4NS03OCnCsisoODItNzgpwrIrKDc1LTc4KcKyKyg3MC03OCnCsisoODEtNzQuNSnCsisuLi4uKyg2MS02Ni43NSnCsisoNTktNjYuNzUpwrI9IDc4NS40OCQ8YnI+DQokZGZfe2lubmVyaGFsYn0gPSBuKihwLTEpID01Kig0LTEpID0gMTUkPGJyPg0KJFxoYXR7XHNpZ21hfV97aW5uZXJoYWxifV4yID0gNzg1LjQ4LyAxNSA9IDUyLjM2NSQ8YnI+DQoNCg0KDQojIyMJQmVyZWNobnVuZyBkZXIgUXVhZHJhdHN1bW1lLVRyZWF0bWVudCAoRmFrdG9yc3R1ZmVuKQ0KDQpEaWUgJFFTX3t0cmVhdH0kIHN0ZWxsZW4gZGVuIEFudGVpbCBkZXIgVW50ZXJzY2hpZWRsaWNoa2VpdCBhbGxlciBNZXNzd2VydGUgZGFyLCBkZXIgYXVmIGRpZSBBdWZwcsOkZ3Vuc3R1ZmVuIHp1csO8Y2tnZWbDvGhydCB3ZXJkZW4ga2Fubi4gRGFzIGJlZGV1dGV0LCBkYXNzIGVzIHNpY2ggdW0gZWluICJzeXN0ZW1hdGlzY2hlbiIgVmVyw6RuZGVydW5nZW4gZGVyIE1lc3N3ZXJ0ZSBhdWZncnVuZCBkZXMgVHJlYXRtZW50cyB6d2lzY2hlbiBkZW4gTWVzc3plaXRwdW5rdGVuIGhhbmRlbHQuIA0KDQpEaWUgJFFTX3t0cmVhdH0kIGJlcmVjaG5ldCBzaWNoIGR1cmNoIGRhcyBBdWZzdW1taWVyZW4gZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmdlbiBkZXIgamV3ZWlsaWdlbiBNaXR0ZWx3ZXJ0ZSB6dSBqZWRlbSBNZXNzemVpdHB1bmt0IHZvbSBHZXNhbXRtaXR0ZWx3ZXJ0Lg0KDQoNCiMjIyBSb2hkYXRlbiANCg0KUGVyc29uICAgICAgICAgICAgICB8CVQwICAgICAgICAgICAgfAlUMSAgICAgICAgICAgIHwJVDIgICAgICAgICAgICB8CVQzCSAgICAgICAgICB8JFBfdiQgICAgfCRcaGF0e3V9X3t2fSQgDQotLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tDQoxCSAgICAgICAgICAgICAgICAgIHw4NSAgICAgICAgICAgICB8CTgyICAgICAgICAgICAgfAk3NSAgICAgICAgICAgIHwJICA3MAkgICAgICAgIHwgMzEyICAgICB8Kio3OCoqDQoyCSAgICAgICAgICAgICAgICAgIHw4MSAgICAgICAgICAgICB8CTc4ICAgICAgICAgICAgfAk3MyAgICAgICAgICAgIHwJICA2NgkgICAgICAgIHwgMjk4ICAgICB8Kio3NC41KioNCjMJICAgICAgICAgICAgICAgICAgfDgwICAgICAgICAgICAgIHwJNzIgICAgICAgICAgICB8CTY4ICAgICAgICAgICAgfAkgIDYyCSAgICAgICAgfAkyODIgICAgIHwqKjcwLjUqKg0KNCAgICAgICAgICAgICAgICAgICB8NzQgICAgICAgICAgICAgfAk3MSAgICAgICAgICAgIHwJNjUgICAgICAgICAgICB8CSAgNjEJICAgICAgICB8CTI3MSAgICAgfCoqNjcuNzUqKg0KNSAgICAgICAgICAgICAgICAgICB8NzkgICAgICAgICAgICAgfAk2OCAgICAgICAgICAgIHwJNjEgICAgICAgICAgICB8CSAgNTkJICAgICAgICB8CTI2NyAgICAgfCoqNjYuNzUqKg0KKipTdW1tZSoqICAgICAgICAgICB8KiozOTkqKiAgICAgICAgfAkqKjM3MSAqKiAgICAgIHwqKjM0MioqICAgICAgICB8CSAgKiozMTgqKgkgICAgfCoqMTQzMCoqIHwNCioqTWl0dGVsd2VydCoqICAgICAgfCoqNzkuOCoqICAgICAgIHwJKio3NC4yICoqICAgICB8Kio2OC40KiogICAgICAgfAkgICoqNjMuNioqICAgIHwJLSAgICAgICB8Kio3MS41KioNCg0KDQoNCiQoXGhhdHt1X2l9LVxoYXR7dX0pXjIgPSAoNzkuOC03MS41KV4yID0gNjguODkkPGJyPg0KJChcaGF0e3VfaX0tXGhhdHt1fSleMiA9ICg3NC4yLTcxLjUpXjIgPSA3LjI5JDxicj4NCiQoXGhhdHt1X2l9LVxoYXR7dX0pXjIgPSAoNjguNC03MS41KV4yID0gOS42MSQ8YnI+DQokKFxoYXR7dV9pfS1caGF0e3V9KV4yID0gKDYzLjYtNzEuNSleMiA9IDYyLjQxJDxicj4NCg0KDQoNClBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgIHwJVDEgICAgICAgICAgICB8CVQyICAgICAgICAgICAgfAlUMwkgICAgICAgICAgfCRTdW1tZSQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0NCjEJICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxCSAgICAgIHwgMTQ4LjINCjIJICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxCSAgICAgIHwgMTQ4LjINCjMJICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxCSAgICAgIHwJMTQ4LjINCjQgICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxICAgICAgIHwJMTQ4LjINCjUgICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxCSAgICAgIHwJMTQ4LjINCioqU3VtbWUqKiAgICAgICAgICAgfCoqMzQ0LjQ1KiogICAgIHwJKiozNi40NSAqKiAgICB8Kio0OC4wNSoqICAgICAgfAkgICoqMzEyLjA1KiogIHwqKjc0MSoqIHwgIA0KDQoNCmBgYHtyfQ0KYSA8LSgoNzkuOC03MS41KV4yICkqNQ0KYiA8LSgoNzQuMi03MS41KV4yICkqNQ0KYyA8LSgoNjguNC03MS41KV4yICkqNQ0KZCA8LSgoNjMuNi03MS41KV4yICkqNQ0KYStiK2MrZA0KYGBgDQoNCg0KDQokUVNfe3RyZWF0fSA9IDUqWyg3OS44LTcxLjUpwrIrKDc0LjItNzEuNSnCsisoNjguNC03MS41KcKyKyg2My42LTcxLjUpwrJdPSA3NDEkIDxicj4NCiRkZl97dHJlYXR9ID0gcC0xPSA0LTEgPSAzJDxicj4NCiRcaGF0e1xzaWdtYX1fe3RyZWF0fV4yID0gNzQxIC8zID0gMjQ3JDxicj4NCg0KDQpgYGB7cn0NCmEgPC0oKDc5LjgtNzEuNSleMiApKjUNCmIgPC0oKDc0LjItNzEuNSleMiApKjUNCmMgPC0oKDY4LjQtNzEuNSleMiApKjUNCmQgPC0oKDYzLjYtNzEuNSleMiApKjUNCmErYitjK2QNCmBgYA0KDQoNCg0KIyMjCUJlcmVjaG51bmcgZGVyIFF1YWRyYXRzdW1tZS1SZXNpZHVhbHMNCg0KRXMgd2VyZGVuIHZpZXIgV2VydGUgenVyIEJlcmVjaG51bmcgaGVyYW5nZXpvZ2VuOjxicj4NCg0KK2RpZSBiZW9iYWNodGV0ZW4gTWVzc3dlcnRlIGRlciBQZXJzb24genUgZGVtIE1lc3N6ZWl0cHVua3QgPGJyPg0KK2RlciBNaXR0ZWx3ZXJ0IGRlciBqZXdlaWxpZ2VuIFBlcnNvbiA8YnI+DQorZGVyIE1pdHRlbHdlcnQgZGVzIGpld2VpbGlnZW4gTWVzc3plaXRwdW5rdHM8YnI+DQorZGVyIE1pdHRlbHdlcnQgZGVyIFBlcnNvbiDDvGJlciBhbGxlIE1lc3N3aWVkZXJob2x1bmdzc3R1ZmVuPGJyPg0KDQoNCkluIGRlciBSZXNpZHVhbHZhcmlhbnogd2VyZGVuIGRpZSBFZmZla3RlIGRlciBJbnRlcmFrdGlvbiB6d2lzY2hlbiBQZXJzb24gdW5kIE1lc3N6ZWl0cHVua3QsIHNvd2llIGF1Y2ggZGllIFJlc2lkdWFscyBiZXLDvGNrc2ljaHRpZ3QuIEFsbGVyZGluZ3Mgc2luZCBkZXIgTWVzc3plaXRwdW5rdGVmZmVrdCB1bmQgZGVyIFBlcnNvbmVuZWZmZWt0IGluIGRpZXNlciBRdWFkcmF0c3VtbWUgbXVsdGlwbGlrYXRpdiB2ZXJrbsO8cGZ0LCBkYSBlcyBzaWNoIHVtIGVpbmUgSW50ZXJha3Rpb24gaGFuZGVsdC4gRGVtenVmb2xnZSB3ZXJkZW4gYXVjaCBiZWkgZGVyIEJlcmVjaG51bmcgZGVyIEZyZWloZWl0c2dyYWRlIChu4oiSMSkgdW5kIChw4oiSMSkgbXVsdGlwbGl6aWVydC4NCg0KDQojIyMgUm9oZGF0ZW4gDQoNClBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgIHwJVDEgICAgICAgICAgICB8CVQyICAgICAgICAgICAgfAlUMwkgICAgICAgICAgfCRQX3YkICAgIHwkXGhhdHt1fV97dn0kIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLQ0KMQkgICAgICAgICAgICAgICAgICB8ODUgICAgICAgICAgICAgfAk4MiAgICAgICAgICAgIHwJNzUgICAgICAgICAgICB8CSAgNzAJICAgICAgICB8IDMxMiAgICAgfCoqNzgqKg0KMgkgICAgICAgICAgICAgICAgICB8ODEgICAgICAgICAgICAgfAk3OCAgICAgICAgICAgIHwJNzMgICAgICAgICAgICB8CSAgNjYJICAgICAgICB8IDI5OCAgICAgfCoqNzQuNSoqDQozCSAgICAgICAgICAgICAgICAgIHw4MCAgICAgICAgICAgICB8CTcyICAgICAgICAgICAgfAk2OCAgICAgICAgICAgIHwJICA2MgkgICAgICAgIHwJMjgyICAgICB8Kio3MC41KioNCjQgICAgICAgICAgICAgICAgICAgfDc0ICAgICAgICAgICAgIHwJNzEgICAgICAgICAgICB8CTY1ICAgICAgICAgICAgfAkgIDYxCSAgICAgICAgfAkyNzEgICAgIHwqKjY3Ljc1KioNCjUgICAgICAgICAgICAgICAgICAgfDc5ICAgICAgICAgICAgIHwJNjggICAgICAgICAgICB8CTYxICAgICAgICAgICAgfAkgIDU5CSAgICAgICAgfAkyNjcgICAgIHwqKjY2Ljc1KioNCioqU3VtbWUqKiAgICAgICAgICAgfCoqMzk5KiogICAgICAgIHwJKiozNzEgKiogICAgICB8KiozNDIqKiAgICAgICAgfAkgICoqMzE4KioJICAgIHwqKjE0MzAqKiB8DQoqKk1pdHRlbHdlcnQqKiAgICAgIHwqKjc5LjgqKiAgICAgICB8CSoqNzQuMiAqKiAgICAgfCoqNjguNCoqICAgICAgIHwJICAqKjYzLjYqKiAgICB8CS0gICAgICAgfCoqNzEuNSoqDQoNCg0KDQokKHhfe3ZpfS1caGF0e3VfaX0tXGhhdHt1X3Z9LVxoYXR7dX0pXjIgPSAoODUtNzkuOC03OCs3MS41KV4yICA9IDEuNjkkPGJyPg0KJCh4X3t2aX0tXGhhdHt1X2l9LVxoYXR7dV92fS1caGF0e3V9KV4yID0gKDgyLTc0LjItNzgrNzEuNSleMiAgPSAxLjY5JDxicj4NCiQoeF97dml9LVxoYXR7dV9pfS1caGF0e3Vfdn0tXGhhdHt1fSleMiA9ICg3NS02OC40LTc4KzcxLjUpXjIgID0gMC4wMSQ8YnI+DQokKHhfe3ZpfS1caGF0e3VfaX0tXGhhdHt1X3Z9LVxoYXR7dX0pXjIgPSAoNzAtNjMuNi03OCs3MS41KV4yICA9IDAuMDEkPGJyPg0KJCh4X3t2aX0tXGhhdHt1X2l9LVxoYXR7dV92fS1caGF0e3V9KV4yID0gKDgxLTc5LjgtNzQuNSs3MS41KV4yICA9IDMuMjQkPGJyPg0KDQoNCmBgYHtyfQ0KKDg1LTc5LjgtNzgrNzEuNSleMg0KYGBgDQoNCmBgYHtyfQ0KKDgyLTc0LjItNzgrNzEuNSleMg0KYGBgDQoNCiMjIyBSb2hkYXRlbiANCg0KfFBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgfAlUMSAgICAgICAgICAgIHwJVDIgICAgICAgICAgICB8CVQzCSAgICAgICAgICB8JFN1bW1lJCAgIA0KfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tDQp8MQkgICAgICAgICAgICAgICAgIHwxLjY5ICAgICAgICAgICB8CTEuNjkgICAgICAgICAgfAkwLjAxICAgICAgICAgIHwJICAwLjAxICAgICAgICB8IDMuNA0KfDIJICAgICAgICAgICAgICAgICB8My4yNCAgICAgICAgICAgfAkwLjY0ICAgICAgICAgIHwJMi41NiAgICAgICAgICB8CSAgMC4zNiAgICAgICAgfCA2LjgNCnwzCSAgICAgICAgICAgICAgICAgfDEuNDQgICAgICAgICAgIHwJMS40NCAgICAgICAgICB8CTAuMzYgICAgICAgICAgfAkgIDAuMzYJICAgICAgfAkzLjYNCnw0ICAgICAgICAgICAgICAgICAgIHw0LjIwMjUgICAgICAgICB8CTAuMzAyNSAgICAgICAgfAkwLjEyMiAgICAgICAgIHwJICAxLjMyMgkgICAgICB8CTUuOTQ5DQp8NSAgICAgICAgICAgICAgICAgICB8MTUuNjAyNSAgICAgICAgfAkyLjEwMiAgICAgICAgIHwJNy4wMjIgICAgICAgICB8CSAgMC4wMjI1CSAgICB8CTI0Ljc0OQ0KfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8Kio0NC40OTgqKiB8DQoNCg0KDQoNCiRRU197UmVzfSA9ICAoODUtNzkuOC03OCs3MS41KcKyKyg4Mi03NC4yLTc4KzcxLjUpwrIrKDc1LTY4LjQtNzgrNzEuNSnCsisoNzAtNjMuNi03OCs3MS41KcKyXFwgKyg4MS03OS44LTc0LjUrNzEuNSnCsisuLi4uKyg2MS02OC40LTY2Ljc1KzcxLjUpwrIrKDU5LTYzLjYtNjYuNzUrNzEuNSnCsj0gNDQuNDk4JDxicj4NCiRkZl97UmVzfSA9IChuLTEpKihwLTEpPSAoNS0xKSooNC0xKSA9IDEyJDxicj4NCiRcaGF0e1xzaWdtYX1fe1Jlc30gXjI9IDQ0LjQ5OCAvIDEyID0gMy43MCQ8YnI+DQoNCg0KDQoNCg0KIyAgWnVzYW1tZW5mYXNzdW5nIA0KDQoNClZhcmlhbnpxdWVsbGUgfCBRdWFkcmF0c3VtbWUgfCBkZiAgICAgIHwgbWl0dGxlcmUgUXVhZHJhdHN1bW1lfA0KLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS18DQpUcmVhdG1lbnQgICAgIHw4MDIuMjUgICAgICAgIHwzICAgICAgICB8MjY3LjQyICAgICAgICAgICAgICAgIHwNClJlc2lkdWFscyAgICAgfDQ0LjQ5OCAgICAgICAgfDEyICAgICAgIHwzLjcwICAgICAgICAgICAgICAgICAgfA0KSW5uZXJoYWxiICAgICB8Nzg1LjQ4ICAgICAgICB8MTUgICAgICAgfDUyLjM2NSAgICAgICAgICAgICAgICB8DQpad2lzY2hlbiAgICAgIHwzNTUuNDYgICAgICAgIHw0ICAgICAgICB8ODguODY1ICAgICAgICAgICAgICAgIHwNCkdlc2FtdCAgICAgICAgfDExNDEuNzkgICAgICAgfDE5ICAgICAgIHwyODUuMjUgICAgICAgICAgICAgICAgfA0KDQoNCg0KDQoNCiMjIyAkRl97a3JpdGlzY2h9JA0KJERGLVrDpGhsZXI6IGRmX3t0cmVhdH0gLT4gMyQgPGJyPg0KJERGLU5lbm5lcjogZGZfe1Jlc30tPiAxMiQNCg0KRGVyIFdlcnQgZsO8ciAkRl97a3JpdGlzY2h9JCBsaWVndCBiZWkgMy40OS4NCg0KDQojIyMgJEZfe2VtcH0kDQokJEZfe2VtcH09IFxmcmFje1xoYXR7XHNpZ21hfV97dHJlYXR9XjJ9e1xoYXR7XHNpZ21hfV97UmVzfV4yfSA9IFxmcmFjezgwMi4yNX0gezQ0LjQ5fSA9ICAxOC4wMyQkDQoNCg0KJCRGX3trcml0aXNjaH0gID0gMy40OSA8ICAxOC4wMyA9IEZfe2VtcH0kJA0KDQo=