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
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
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\)
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
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\)
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
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\)
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
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
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\)
LS0tDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCiMgRGllIFplcmxlZ3VuZyBkZXIgVmFyaWFuemVuIA0KDQojIyMgR2xlaWNodW5nZW4gdW5kIEdydW5kaWRlZW4gZGVyIFF1YWRyYXRzdW1tZW4gDQoNClppZWwgaXN0IGRpZSBaZXJsZWd1bmcgaW4gJFFTX3t0cmVhdH0kIHVuZCAkUVNfe1Jlc30kIHp1ciBCZXJlY2hudW5nIGRlciBWYXJpYW56ZW4gJM+DXjJfe3RyZWF0fSQgdW5kICTPg14yX3tSZXN9JC4NCg0KJFFTX3tUb3RhbH0gPSBRU197endpc2NoZW59ICsgUVNfe2lubmVyaGFsYn09ICBRU197endpc2NoZW59KyBRU197dHJlYXR9KyBRU197UmVzfSQNCjxicj48YnI+DQoNCiMjIyBHZXNhbXRhYndlaWNodW5nDQokJFFTX3tUb3RhbH0gPSBcc3VtIFxsaW1pdHNfe2k9MX1ecCBcc3VtIFxsaW1pdHNfe3Y9MX1ebiAoeF97dml9LVxoYXR7dX0pXjIkJCA8YnI+DQpTdW1tZSBkZXIgcXVhZHJhdGlzY2hlbiBHZXNhbXRhYndlaWNodW5nPGJyPjxicj4NCg0KIyMjIEFid2VpY2h1bmcgZHVyY2ggRmFrdG9yDQokJFFTX3t6d2lzY2hlbn0gPSBwKiBcc3VtIFxsaW1pdHNfe3Y9MX1ebiAoXGhhdHt1X3Z9LVxoYXR7dX0pXjIkJCAgPGJyPg0KU3VtbWUgZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmcgendpc2NoZW4gZGVyIEZha3RvcnN0dWZlbiAoQmVkaW5ndW5nZW4gZGVyIFVWLCBHcnVwcGUpPGJyPjxicj4NCg0KIyMjIEFid2VpY2h1bmcgaW5uZXJoYWxiIGRlciBGYWt0b3JzdHVmZW4NCiQkUVNfe2lubmVyaGFsYn0gPSBcc3VtIFxsaW1pdHNfe2k9MX1ecCBcc3VtIFxsaW1pdHNfe3Y9MX1ebiAoeF97dml9LVxoYXR7dV92fSleMiQkIDxicj4NCg0KU3VtbWUgZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmcgaW5uZXJoYWxiIGRlciBGYWt0b3JzdHVmZW48YnI+PGJyPg0KDQoNCiMjIyBBYndlaWNodW5nIGR1cmNoIFJlc2lkdXVtcyAoIkZlaGxlciIpDQokJFFTX3tSZXN9ID0gXHN1bSBcbGltaXRzX3tpPTF9XnAgXHN1bSBcbGltaXRzX3t2PTF9Xm4gKHhfe3ZpfS1caGF0e3VfaX0tXGhhdHt1X3Z9LVxoYXR7dX0pXjIkJCAgPGJyPg0KU3VtbWUgZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmcgZGVyIFJlc2lkdWFsPGJyPjxicj4NCg0KDQojIyMgQWJ3ZWljaHVuZyBkdXJjaCBUcmVhdG1lbnQgKEZha3RvcnN0dWZlbikNCiQkUVNfe3RyZWF0fSA9IG4qIFxzdW0gXGxpbWl0c197aT0xfV5wIChcaGF0e3VfaX0tXGhhdHt1fSleMiQkICA8YnI+DQoNCg0KDQoNCiRcaGF0e3V9ID0gR2VzYW10bWl0dGVsd2VydCQ8YnI+DQokXGhhdHt1X2l9ID0gTWl0dGVsd2VydFwsZGVyXCwgRmFrdG9yc3R1ZmVfaSQ8YnI+DQokbl9pID0gU3RpY2hwcm9iZXVtZmFuZ1wsaW5cLEZha3RvciQ8YnI+DQokeF97dml9ID0gTWVzc3dlcnRcLCB2b25cLCBWUC5cLCBpblwsIGRlclwsIEZha3RvcnN0dWZlIFwsaSQ8YnI+DQoNCg0KIyMjIFJvaGRhdGVuIA0KDQpQZXJzb24gICAgICAgICAgICAgIHwJVDAgICAgICAgICAgICB8CVQxICAgICAgICAgICAgfAlUMiAgICAgICAgICAgIHwJVDMJICAgICAgICAgIHwkUF92JCAgICB8JFxoYXR7dX1fe3Z9JCANCi0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0NCjEJICAgICAgICAgICAgICAgICAgfDg1ICAgICAgICAgICAgIHwJODIgICAgICAgICAgICB8CTc1ICAgICAgICAgICAgfAkgIDcwCSAgICAgICAgfCAzMTIgICAgIHwqKjc4KioNCjIJICAgICAgICAgICAgICAgICAgfDgxICAgICAgICAgICAgIHwJNzggICAgICAgICAgICB8CTczICAgICAgICAgICAgfAkgIDY2CSAgICAgICAgfCAyOTggICAgIHwqKjc0LjUqKg0KMwkgICAgICAgICAgICAgICAgICB8ODAgICAgICAgICAgICAgfAk3MiAgICAgICAgICAgIHwJNjggICAgICAgICAgICB8CSAgNjIJICAgICAgICB8CTI4MiAgICAgfCoqNzAuNSoqDQo0ICAgICAgICAgICAgICAgICAgIHw3NCAgICAgICAgICAgICB8CTcxICAgICAgICAgICAgfAk2NSAgICAgICAgICAgIHwJICA2MQkgICAgICAgIHwJMjcxICAgICB8Kio2Ny43NSoqDQo1ICAgICAgICAgICAgICAgICAgIHw3OSAgICAgICAgICAgICB8CTY4ICAgICAgICAgICAgfAk2MSAgICAgICAgICAgIHwJICA1OQkgICAgICAgIHwJMjY3ICAgICB8Kio2Ni43NSoqDQoqKlN1bW1lKiogICAgICAgICAgIHwqKjM5OSoqICAgICAgICB8CSoqMzcxICoqICAgICAgfCoqMzQyKiogICAgICAgIHwJICAqKjMxOCoqCSAgICB8KioxNDMwKiogfA0KKipNaXR0ZWx3ZXJ0KiogICAgICB8Kio3OS44KiogICAgICAgfAkqKjc0LjIgKiogICAgIHwqKjY4LjQqKiAgICAgICB8CSAgKio2My42KiogICAgfAktICAgICAgIHwqKjcxLjUqKg0KDQokXGhhdHt1fSA9IFxmcmFjezc5LjgrNzQuMis2OC40KzYzLjZ9ezR9ID03MS41JDxicj4NCg0KDQojIyMJQmVyZWNobnVuZyBkZXIgUXVhZHJhdHN1bW1lLVRvdGFsIAkJDQoNCkFid2VpY2h1bmdzcXVhcmRyYXRlIGRlciBNZXNzd2VydGUgdm9tIEdlc2FtdG1pdHRlbA0KWnVyIEJlcmVjaG51bmcgZGVyICRRU197VG90YWx9JCB3ZXJkZW4gZGllIFJvaHdlcnRlIGRlciA1IFRlaWxuZWhtZXJuIHp1IGRlbiA0IE1lc3N6ZWl0cHVua3RlbiBtaXQgZGVtIEdlc2FtdG1pdHRlbHdlcnQgc3VidHJhaGllcnQgdW5kIGFuc2NobGllw59lbmQgcXVhZHJpZXJ0LiBEaWUgU3VtbWUgZGllc2VyIDIwIFdlcnRlIGlzdCAkUVNfe1RvdGFsfSQuDQoNCkRpZSB0b3RhbGUgUXVhZHJhdHN1bW1lIHJlcHLDpHNlbnRpZXJ0IGRpZSBHZXNhbXR2YXJpYXRpb24gZGVyIE1lc3N3ZXJ0ZS4gRGllIEJlcmVjaG51bmcgaXN0IGlkZW50aXNjaCB6dXIgZWluZmFrdG9yaWVsbGVuIFZhcmlhbnphbmFseXNlIG9obmUgTWVzc3dpZWRlcmhvbHVuZy4NCg0KDQoNCiRRU197VG90YWx9ID0gKDg1LTcxLjUpwrIrICg4Mi03MS41KcKyKyg3NS03MS41KcKyKyg3MC03MS41KcKyKyg4MS03MS41KcKyXFwrLi4uLisoNjgtNzEuNSnCsisoNjEtNzEuNSnCsisoNTktNzEuNSnCsj0gMTE0MSQ8YnI+DQokZGZfe1RvdGFsfSA9IChuKnApLTE9IDIwLTEgPSAxOSQ8YnI+DQokXGhhdHtcc2lnbWF9X3tUb3RhbH1eMiA9MTE0MSAvIDE5ID0gMjg1LjI1JDxicj4NCg0KPGJyPjxicj4NCg0KIyMjCUJlcmVjaG51bmcgZGVyIFF1YWRyYXRzdW1tZS1ad2lzY2hlbiAJDQoNCg0KRXMgd2lyZCBkaWUgU3VtbWUgZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmdlbiBkZXIgTWl0dGVsd2VydGUgamVkZXIgUGVyc29uIMO8YmVyIGFsbGUgdmllciBNZXNzemVpdHB1bmt0ZSB2b20gR3J1bmRuaXZlYXUgZXJtaXR0ZWx0LiBEYXp1IHdlcmRlbiBkaWUgdW50ZXJzY2hpZWRsaWNoZW4gYmVvYmFjaHRldGVuIE1lc3N3ZXJ0ZSBlaW5lciBQZXJzb24genUgZGVuIHZpZXIgTWVzc3plaXRwdW5rdGVuIGR1cmNoIGRlbiBNaXR0ZWx3ZXJ0IGRlciBQZXJzb24gw7xiZXIgZGllIHZpZXIgTWVzc3plaXRwdW5rdGUgZXJzZXR6dC4gRGEgbWFuIGRhdm9uIGF1c2dlaHQsIGRhc3MgZGllIEEtcHJpb3JpIFVudGVyc2NoaWVkZSB6d2lzY2hlbiBkZW4gUGVyc29uZW4gYW0gYmVzdGVuIGR1cmNoIGRpZSBNaXR0ZWx3ZXJ0ZSBkZXIgUGVyc29uZW4gw7xiZXIgZGllIE1lc3N6ZWl0cHVua3RlIHJlcHLDpHNlbnRpZXJ0IHdlcmRlbi4NCg0KIyMjIFJvaGRhdGVuIA0KDQpQZXJzb24gICAgICAgICAgICAgIHwJVDAgICAgICAgICAgICB8CVQxICAgICAgICAgICAgfAlUMiAgICAgICAgICAgIHwJVDMJICAgICAgICAgIHwkUF92JCAgICB8JFxoYXR7dX1fe3Z9JCANCi0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0NCjEJICAgICAgICAgICAgICAgICAgfDg1ICAgICAgICAgICAgIHwJODIgICAgICAgICAgICB8CTc1ICAgICAgICAgICAgfAkgIDcwCSAgICAgICAgfCAzMTIgICAgIHwqKjc4KioNCjIJICAgICAgICAgICAgICAgICAgfDgxICAgICAgICAgICAgIHwJNzggICAgICAgICAgICB8CTczICAgICAgICAgICAgfAkgIDY2CSAgICAgICAgfCAyOTggICAgIHwqKjc0LjUqKg0KMwkgICAgICAgICAgICAgICAgICB8ODAgICAgICAgICAgICAgfAk3MiAgICAgICAgICAgIHwJNjggICAgICAgICAgICB8CSAgNjIJICAgICAgICB8CTI4MiAgICAgfCoqNzAuNSoqDQo0ICAgICAgICAgICAgICAgICAgIHw3NCAgICAgICAgICAgICB8CTcxICAgICAgICAgICAgfAk2NSAgICAgICAgICAgIHwJICA2MQkgICAgICAgIHwJMjcxICAgICB8Kio2Ny43NSoqDQo1ICAgICAgICAgICAgICAgICAgIHw3OSAgICAgICAgICAgICB8CTY4ICAgICAgICAgICAgfAk2MSAgICAgICAgICAgIHwJICA1OQkgICAgICAgIHwJMjY3ICAgICB8Kio2Ni43NSoqDQoqKlN1bW1lKiogICAgICAgICAgIHwqKjM5OSoqICAgICAgICB8CSoqMzcxICoqICAgICAgfCoqMzQyKiogICAgICAgIHwJICAqKjMxOCoqCSAgICB8KioxNDMwKiogfA0KKipNaXR0ZWx3ZXJ0KiogICAgICB8Kio3OS44KiogICAgICAgfAkqKjc0LjIgKiogICAgIHwqKjY4LjQqKiAgICAgICB8CSAgKio2My42KiogICAgfAktICAgICAgIHwqKjcxLjUqKg0KDQokKFxoYXR7dV92fS1caGF0e3V9KV4yID0gKDc4LTcxLjUpXjIgPSA0Mi4yNSQ8YnI+DQokKFxoYXR7dV92fS1caGF0e3V9KV4yID0gKDc0LjUtNzEuNSleICA9IDkkPGJyPg0KJChcaGF0e3Vfdn0tXGhhdHt1fSleMiA9ICg3MC41LTcxLjUpXjIgPSAxJDxicj4NCiQoXGhhdHt1X3Z9LVxoYXR7dX0pXjIgPSAoNjcuNzUtNzEuNSleMiA9IDE0LjA2JDxicj4NCiQoXGhhdHt1X3Z9LVxoYXR7dX0pXjIgPSAoNjYuNzUtNzEuNSleMiA9IDIyLjU2JDxicj4NCg0KDQoNClBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgIHwJVDEgICAgICAgICAgICB8CVQyICAgICAgICAgICAgfAlUMwkgICAgICAgICAgfCRTdW1tZSQgIHwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18DQoxCSAgICAgICAgICAgICAgICAgIHw0Mi4yNSAgICAgICAgICB8CTQyLjI1ICAgICAgICAgfAk0Mi4yNSAgICAgICAgIHwJICA0Mi4yNQkgICAgICB8IDE2OSAgICAgfA0KMgkgICAgICAgICAgICAgICAgICB8OSAgICAgICAgICAgICAgfAk5ICAgICAgICAgICAgIHwJOSAgICAgICAgICAgICB8CSAgOQkgICAgICAgICAgfCAzNiAgICAgIHwNCjMJICAgICAgICAgICAgICAgICAgfDEgICAgICAgICAgICAgIHwJMSAgICAgICAgICAgICB8CTEgICAgICAgICAgICAgfAkgIDEJICAgICAgICAgIHwJNCAgICAgICB8DQo0ICAgICAgICAgICAgICAgICAgIHwxNC4wNiAgICAgICAgICB8CTE0LjA2ICAgICAgICAgfAkxNC4wNiAgICAgICAgIHwJICAxNC4wNiAgICAgICB8CTU2LjI1ICAgfA0KNSAgICAgICAgICAgICAgICAgICB8MjIuNTYgICAgICAgICAgfAkyMi41NiAgICAgICAgIHwJMjIuNTYgICAgICAgICB8CSAgMjIuNTYJICAgICAgfAk5MC4yNCAgIHwNCioqU3VtbWUqKiAgICAgICAgICAgfCoqODguODcqKiAgICAgIHwJKio4OC44NyAqKiAgICB8Kio4OC44NyoqICAgICAgfAkgICoqODguODcqKgkgIHwqKjM1NS40OCoqIHwNCg0KDQpgYGB7cn0NCjg4Ljg3KjQNCmBgYA0KDQpgYGB7cn0NCjE2OSszNis0KzU2LjI1KzkwLjI0DQpgYGANCg0KDQokUVNfe1p3aXNjaGVufSA9IDQqWyg3OC03MS41KcKyICsoNzQuNS03MS41KcKyKyg3MC41LTcxLjUpwrIrKDY3Ljc1LTcxLjc1KcKyKyg2Ni43NS03MS41KcKyXT0gMzU1LjQ4JDxicj4NCiRkZl97Wndpc2NoZW59ID0gbi0xID0gNS0xID0gNCQ8YnI+DQokXGhhdHtcc2lnbWF9X3tad2lzY2hlbn1eMj0gMzU1LjQ4IC8gNCA9IDg4Ljg3JDxicj4NCg0KDQoNCiMjIwlCZXJlY2hudW5nIGRlciBRdWFkcmF0c3VtbWUtSW5uZXJoYWxiIA0KDQpJbiBkaWVzZW0gUHVua3QgZXJtaXR0ZWxuIHdpciBkaWUgQWJ3ZWljaHVuZ2VuIGRlciBNZXNzd2VydGUgZWluZXIgUGVyc29uLCBkaWUgenUgZGVuIHVudGVyc2NoaWVkbGljaGVuIE1lc3N6ZWl0cHVua3RlbiBlcmhvYmVuIHd1cmRlbiwgdm9tIGpld2VpbGlnZW4gTWl0dGVsd2VydCBkZXIgUGVyc29uIMO8YmVyIGRpZSBNZXNzemVpdHB1bmt0ZSBoaW53ZWcuIERhYmVpIHdlcmRlbiBkaWUgaW5kaXZpZHVlbGxlbiBNaXR0ZWx3ZXJ0ZSBlaW5lIFNjaMOkdHp1bmcgZGVyIOKAnndhaHJlbuKAnCBBdXNwcsOkZ3VuZyBkZXIgUGVyc29uIGRhcnN0ZWxsdC4gRGFkdXJjaCBtw7xzc2VuIHdpciBlaW5lbiBLb3JyZWt0dXIgYmVpIGplZGVyICBQZXJzb24gcCBkdXJjaGbDvGhyZW4uIERhbWl0IGVyZ2lidCBzaWNoIGZvbGdlbmRlIEZvcm1lbCBmw7xyIGRpZSBGcmVpaGVpdHNncmFkZSBuwrcocOKIkjEpLiANCg0KDQojIyMgUm9oZGF0ZW4gDQoNClBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgIHwJVDEgICAgICAgICAgICB8CVQyICAgICAgICAgICAgfAlUMwkgICAgICAgICAgfCRQX3YkICAgIHwkXGhhdHt1fV97dn0kIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLQ0KMQkgICAgICAgICAgICAgICAgICB8ODUgICAgICAgICAgICAgfAk4MiAgICAgICAgICAgIHwJNzUgICAgICAgICAgICB8CSAgNzAJICAgICAgICB8IDMxMiAgICAgfCoqNzgqKg0KMgkgICAgICAgICAgICAgICAgICB8ODEgICAgICAgICAgICAgfAk3OCAgICAgICAgICAgIHwJNzMgICAgICAgICAgICB8CSAgNjYJICAgICAgICB8IDI5OCAgICAgfCoqNzQuNSoqDQozCSAgICAgICAgICAgICAgICAgIHw4MCAgICAgICAgICAgICB8CTcyICAgICAgICAgICAgfAk2OCAgICAgICAgICAgIHwJICA2MgkgICAgICAgIHwJMjgyICAgICB8Kio3MC41KioNCjQgICAgICAgICAgICAgICAgICAgfDc0ICAgICAgICAgICAgIHwJNzEgICAgICAgICAgICB8CTY1ICAgICAgICAgICAgfAkgIDYxCSAgICAgICAgfAkyNzEgICAgIHwqKjY3Ljc1KioNCjUgICAgICAgICAgICAgICAgICAgfDc5ICAgICAgICAgICAgIHwJNjggICAgICAgICAgICB8CTYxICAgICAgICAgICAgfAkgIDU5CSAgICAgICAgfAkyNjcgICAgIHwqKjY2Ljc1KioNCioqU3VtbWUqKiAgICAgICAgICAgfCoqMzk5KiogICAgICAgIHwJKiozNzEgKiogICAgICB8KiozNDIqKiAgICAgICAgfAkgICoqMzE4KioJICAgIHwqKjE0MzAqKiB8DQoqKk1pdHRlbHdlcnQqKiAgICAgIHwqKjc5LjgqKiAgICAgICB8CSoqNzQuMiAqKiAgICAgfCoqNjguNCoqICAgICAgIHwJICAqKjYzLjYqKiAgICB8CS0gICAgICAgfCoqNzEuNSoqDQoNCg0KJCh4X3t2aX0tXGhhdHt1X3Z9KV4yID0gKDg1LTc4KV4yID0gNDkkPGJyPg0KJCh4X3t2aX0tXGhhdHt1X3Z9KV4yID0gKDgyLTc4KV4yID0gMTYkPGJyPg0KJCh4X3t2aX0tXGhhdHt1X3Z9KV4yID0gKDgyLTc4KV4yID0gOSQ8YnI+DQokKHhfe3ZpfS1caGF0e3Vfdn0pXjIgPSAoNzAtNzgpXjIgPSA2NCQ8YnI+DQokKHhfe3ZpfS1caGF0e3Vfdn0pXjIgPSAoODEtNzQuNSleMiA9IDQyLjI1JDxicj4NCg0KDQoNCnxQZXJzb24gICAgICAgICAgICAgIHwJVDAgICAgICAgICAgICB8CVQxICAgICAgICAgICAgfAlUMiAgICAgICAgICAgIHwJVDMJICAgICAgICAgIHwkU3VtbWUkDQp8LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLQ0KfDEJICAgICAgICAgICAgICAgICAgfDQ5ICAgICAgICAgICAgfAkxNiAgICAgICAgICAgIHwJOSAgICAgICAgICAgICB8CSAgNjQJICAgICAgICB8IDEzOA0KfDIJICAgICAgICAgICAgICAgICAgfDQyLjI1ICAgICAgICAgIHwJMTIuMjUgICAgICAgICB8CTIuMjUgICAgICAgICAgfAkgIDcyLjI1CSAgICAgIHwgMTI5DQp8MwkgICAgICAgICAgICAgICAgICB8OTAuMjUgICAgICAgICAgfAkyLjI1ICAgICAgICAgIHwJNi4yNSAgICAgICAgICB8CSAgNzIuMjUJICAgICAgfAkxNzENCnw0ICAgICAgICAgICAgICAgICAgIHwzOS4wNiAgICAgICAgICB8CTEwLjU2ICAgICAgICAgfAk3LjU2ICAgICAgICAgIHwJICA0NS41NiAgICAgICB8CTEwMi43NA0KfDUgICAgICAgICAgICAgICAgICAgfDE1MC4wNiAgICAgICAgIHwJMS41NiAgICAgICAgICB8CTMzLjA2ICAgICAgICAgfAkgIDYwLjA2CSAgICAgIHwJMjQ0Ljc0DQp8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCoqNzg1LjQ4KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQpgYGB7cn0NCjEzOCsxMjkrMTcxKzEwMi43NCsyNDQuNzQNCmBgYA0KDQoNCiRRU197aW5uZXJoYWxifSA9ICg4NS03OCnCsisoODItNzgpwrIrKDc1LTc4KcKyKyg3MC03OCnCsisoODEtNzQuNSnCsisuLi4uKyg2MS02Ni43NSnCsisoNTktNjYuNzUpwrI9IDc4NS40OCQ8YnI+DQokZGZfe2lubmVyaGFsYn0gPSBuKihwLTEpID01Kig0LTEpID0gMTUkPGJyPg0KJFxoYXR7XHNpZ21hfV97aW5uZXJoYWxifV4yID0gNzg1LjQ4LyAxNSA9IDUyLjM2NSQ8YnI+DQoNCg0KDQojIyMJQmVyZWNobnVuZyBkZXIgUXVhZHJhdHN1bW1lLVRyZWF0bWVudCAoRmFrdG9yc3R1ZmVuKQ0KDQpEaWUgJFFTX3t0cmVhdH0kIHN0ZWxsZW4gZGVuIEFudGVpbCBkZXIgVW50ZXJzY2hpZWRsaWNoa2VpdCBhbGxlciBNZXNzd2VydGUgZGFyLCBkZXIgYXVmIGRpZSBBdWZwcsOkZ3Vuc3R1ZmVuIHp1csO8Y2tnZWbDvGhydCB3ZXJkZW4ga2Fubi4gRGFzIGJlZGV1dGV0LCBkYXNzIGVzIHNpY2ggdW0gZWluICJzeXN0ZW1hdGlzY2hlbiIgVmVyw6RuZGVydW5nZW4gZGVyIE1lc3N3ZXJ0ZSBhdWZncnVuZCBkZXMgVHJlYXRtZW50cyB6d2lzY2hlbiBkZW4gTWVzc3plaXRwdW5rdGVuIGhhbmRlbHQuIA0KDQpEaWUgJFFTX3t0cmVhdH0kIGJlcmVjaG5ldCBzaWNoIGR1cmNoIGRhcyBBdWZzdW1taWVyZW4gZGVyIHF1YWRyaWVydGVuIEFid2VpY2h1bmdlbiBkZXIgamV3ZWlsaWdlbiBNaXR0ZWx3ZXJ0ZSB6dSBqZWRlbSBNZXNzemVpdHB1bmt0IHZvbSBHZXNhbXRtaXR0ZWx3ZXJ0Lg0KDQoNCiMjIyBSb2hkYXRlbiANCg0KUGVyc29uICAgICAgICAgICAgICB8CVQwICAgICAgICAgICAgfAlUMSAgICAgICAgICAgIHwJVDIgICAgICAgICAgICB8CVQzCSAgICAgICAgICB8JFBfdiQgICAgfCRcaGF0e3V9X3t2fSQgDQotLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tDQoxCSAgICAgICAgICAgICAgICAgIHw4NSAgICAgICAgICAgICB8CTgyICAgICAgICAgICAgfAk3NSAgICAgICAgICAgIHwJICA3MAkgICAgICAgIHwgMzEyICAgICB8Kio3OCoqDQoyCSAgICAgICAgICAgICAgICAgIHw4MSAgICAgICAgICAgICB8CTc4ICAgICAgICAgICAgfAk3MyAgICAgICAgICAgIHwJICA2NgkgICAgICAgIHwgMjk4ICAgICB8Kio3NC41KioNCjMJICAgICAgICAgICAgICAgICAgfDgwICAgICAgICAgICAgIHwJNzIgICAgICAgICAgICB8CTY4ICAgICAgICAgICAgfAkgIDYyCSAgICAgICAgfAkyODIgICAgIHwqKjcwLjUqKg0KNCAgICAgICAgICAgICAgICAgICB8NzQgICAgICAgICAgICAgfAk3MSAgICAgICAgICAgIHwJNjUgICAgICAgICAgICB8CSAgNjEJICAgICAgICB8CTI3MSAgICAgfCoqNjcuNzUqKg0KNSAgICAgICAgICAgICAgICAgICB8NzkgICAgICAgICAgICAgfAk2OCAgICAgICAgICAgIHwJNjEgICAgICAgICAgICB8CSAgNTkJICAgICAgICB8CTI2NyAgICAgfCoqNjYuNzUqKg0KKipTdW1tZSoqICAgICAgICAgICB8KiozOTkqKiAgICAgICAgfAkqKjM3MSAqKiAgICAgIHwqKjM0MioqICAgICAgICB8CSAgKiozMTgqKgkgICAgfCoqMTQzMCoqIHwNCioqTWl0dGVsd2VydCoqICAgICAgfCoqNzkuOCoqICAgICAgIHwJKio3NC4yICoqICAgICB8Kio2OC40KiogICAgICAgfAkgICoqNjMuNioqICAgIHwJLSAgICAgICB8Kio3MS41KioNCg0KDQoNCiQoXGhhdHt1X2l9LVxoYXR7dX0pXjIgPSAoNzkuOC03MS41KV4yID0gNjguODkkPGJyPg0KJChcaGF0e3VfaX0tXGhhdHt1fSleMiA9ICg3NC4yLTcxLjUpXjIgPSA3LjI5JDxicj4NCiQoXGhhdHt1X2l9LVxoYXR7dX0pXjIgPSAoNjguNC03MS41KV4yID0gOS42MSQ8YnI+DQokKFxoYXR7dV9pfS1caGF0e3V9KV4yID0gKDYzLjYtNzEuNSleMiA9IDYyLjQxJDxicj4NCg0KDQoNClBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgIHwJVDEgICAgICAgICAgICB8CVQyICAgICAgICAgICAgfAlUMwkgICAgICAgICAgfCRTdW1tZSQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0NCjEJICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxCSAgICAgIHwgMTQ4LjINCjIJICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxCSAgICAgIHwgMTQ4LjINCjMJICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxCSAgICAgIHwJMTQ4LjINCjQgICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxICAgICAgIHwJMTQ4LjINCjUgICAgICAgICAgICAgICAgICAgfDY4Ljg5ICAgICAgICAgIHwJNy4yOSAgICAgICAgICB8CTkuNjEgICAgICAgICAgfAkgIDYyLjQxCSAgICAgIHwJMTQ4LjINCioqU3VtbWUqKiAgICAgICAgICAgfCoqMzQ0LjQ1KiogICAgIHwJKiozNi40NSAqKiAgICB8Kio0OC4wNSoqICAgICAgfAkgICoqMzEyLjA1KiogIHwqKjc0MSoqIHwgIA0KDQoNCmBgYHtyfQ0KYSA8LSgoNzkuOC03MS41KV4yICkqNQ0KYiA8LSgoNzQuMi03MS41KV4yICkqNQ0KYyA8LSgoNjguNC03MS41KV4yICkqNQ0KZCA8LSgoNjMuNi03MS41KV4yICkqNQ0KYStiK2MrZA0KYGBgDQoNCg0KDQokUVNfe3RyZWF0fSA9IDUqWyg3OS44LTcxLjUpwrIrKDc0LjItNzEuNSnCsisoNjguNC03MS41KcKyKyg2My42LTcxLjUpwrJdPSA3NDEkIDxicj4NCiRkZl97dHJlYXR9ID0gcC0xPSA0LTEgPSAzJDxicj4NCiRcaGF0e1xzaWdtYX1fe3RyZWF0fV4yID0gNzQxIC8zID0gMjQ3JDxicj4NCg0KDQpgYGB7cn0NCmEgPC0oKDc5LjgtNzEuNSleMiApKjUNCmIgPC0oKDc0LjItNzEuNSleMiApKjUNCmMgPC0oKDY4LjQtNzEuNSleMiApKjUNCmQgPC0oKDYzLjYtNzEuNSleMiApKjUNCmErYitjK2QNCmBgYA0KDQoNCg0KIyMjCUJlcmVjaG51bmcgZGVyIFF1YWRyYXRzdW1tZS1SZXNpZHVhbHMNCg0KRXMgd2VyZGVuIHZpZXIgV2VydGUgenVyIEJlcmVjaG51bmcgaGVyYW5nZXpvZ2VuOjxicj4NCg0KK2RpZSBiZW9iYWNodGV0ZW4gTWVzc3dlcnRlIGRlciBQZXJzb24genUgZGVtIE1lc3N6ZWl0cHVua3QgPGJyPg0KK2RlciBNaXR0ZWx3ZXJ0IGRlciBqZXdlaWxpZ2VuIFBlcnNvbiA8YnI+DQorZGVyIE1pdHRlbHdlcnQgZGVzIGpld2VpbGlnZW4gTWVzc3plaXRwdW5rdHM8YnI+DQorZGVyIE1pdHRlbHdlcnQgZGVyIFBlcnNvbiDDvGJlciBhbGxlIE1lc3N3aWVkZXJob2x1bmdzc3R1ZmVuPGJyPg0KDQoNCkluIGRlciBSZXNpZHVhbHZhcmlhbnogd2VyZGVuIGRpZSBFZmZla3RlIGRlciBJbnRlcmFrdGlvbiB6d2lzY2hlbiBQZXJzb24gdW5kIE1lc3N6ZWl0cHVua3QsIHNvd2llIGF1Y2ggZGllIFJlc2lkdWFscyBiZXLDvGNrc2ljaHRpZ3QuIEFsbGVyZGluZ3Mgc2luZCBkZXIgTWVzc3plaXRwdW5rdGVmZmVrdCB1bmQgZGVyIFBlcnNvbmVuZWZmZWt0IGluIGRpZXNlciBRdWFkcmF0c3VtbWUgbXVsdGlwbGlrYXRpdiB2ZXJrbsO8cGZ0LCBkYSBlcyBzaWNoIHVtIGVpbmUgSW50ZXJha3Rpb24gaGFuZGVsdC4gRGVtenVmb2xnZSB3ZXJkZW4gYXVjaCBiZWkgZGVyIEJlcmVjaG51bmcgZGVyIEZyZWloZWl0c2dyYWRlIChu4oiSMSkgdW5kIChw4oiSMSkgbXVsdGlwbGl6aWVydC4NCg0KDQojIyMgUm9oZGF0ZW4gDQoNClBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgIHwJVDEgICAgICAgICAgICB8CVQyICAgICAgICAgICAgfAlUMwkgICAgICAgICAgfCRQX3YkICAgIHwkXGhhdHt1fV97dn0kIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLQ0KMQkgICAgICAgICAgICAgICAgICB8ODUgICAgICAgICAgICAgfAk4MiAgICAgICAgICAgIHwJNzUgICAgICAgICAgICB8CSAgNzAJICAgICAgICB8IDMxMiAgICAgfCoqNzgqKg0KMgkgICAgICAgICAgICAgICAgICB8ODEgICAgICAgICAgICAgfAk3OCAgICAgICAgICAgIHwJNzMgICAgICAgICAgICB8CSAgNjYJICAgICAgICB8IDI5OCAgICAgfCoqNzQuNSoqDQozCSAgICAgICAgICAgICAgICAgIHw4MCAgICAgICAgICAgICB8CTcyICAgICAgICAgICAgfAk2OCAgICAgICAgICAgIHwJICA2MgkgICAgICAgIHwJMjgyICAgICB8Kio3MC41KioNCjQgICAgICAgICAgICAgICAgICAgfDc0ICAgICAgICAgICAgIHwJNzEgICAgICAgICAgICB8CTY1ICAgICAgICAgICAgfAkgIDYxCSAgICAgICAgfAkyNzEgICAgIHwqKjY3Ljc1KioNCjUgICAgICAgICAgICAgICAgICAgfDc5ICAgICAgICAgICAgIHwJNjggICAgICAgICAgICB8CTYxICAgICAgICAgICAgfAkgIDU5CSAgICAgICAgfAkyNjcgICAgIHwqKjY2Ljc1KioNCioqU3VtbWUqKiAgICAgICAgICAgfCoqMzk5KiogICAgICAgIHwJKiozNzEgKiogICAgICB8KiozNDIqKiAgICAgICAgfAkgICoqMzE4KioJICAgIHwqKjE0MzAqKiB8DQoqKk1pdHRlbHdlcnQqKiAgICAgIHwqKjc5LjgqKiAgICAgICB8CSoqNzQuMiAqKiAgICAgfCoqNjguNCoqICAgICAgIHwJICAqKjYzLjYqKiAgICB8CS0gICAgICAgfCoqNzEuNSoqDQoNCg0KDQokKHhfe3ZpfS1caGF0e3VfaX0tXGhhdHt1X3Z9LVxoYXR7dX0pXjIgPSAoODUtNzkuOC03OCs3MS41KV4yICA9IDEuNjkkPGJyPg0KJCh4X3t2aX0tXGhhdHt1X2l9LVxoYXR7dV92fS1caGF0e3V9KV4yID0gKDgyLTc0LjItNzgrNzEuNSleMiAgPSAxLjY5JDxicj4NCiQoeF97dml9LVxoYXR7dV9pfS1caGF0e3Vfdn0tXGhhdHt1fSleMiA9ICg3NS02OC40LTc4KzcxLjUpXjIgID0gMC4wMSQ8YnI+DQokKHhfe3ZpfS1caGF0e3VfaX0tXGhhdHt1X3Z9LVxoYXR7dX0pXjIgPSAoNzAtNjMuNi03OCs3MS41KV4yICA9IDAuMDEkPGJyPg0KJCh4X3t2aX0tXGhhdHt1X2l9LVxoYXR7dV92fS1caGF0e3V9KV4yID0gKDgxLTc5LjgtNzQuNSs3MS41KV4yICA9IDMuMjQkPGJyPg0KDQoNCmBgYHtyfQ0KKDg1LTc5LjgtNzgrNzEuNSleMg0KYGBgDQoNCmBgYHtyfQ0KKDgyLTc0LjItNzgrNzEuNSleMg0KYGBgDQoNCiMjIyBSb2hkYXRlbiANCg0KfFBlcnNvbiAgICAgICAgICAgICAgfAlUMCAgICAgICAgICAgfAlUMSAgICAgICAgICAgIHwJVDIgICAgICAgICAgICB8CVQzCSAgICAgICAgICB8JFN1bW1lJCAgIA0KfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tDQp8MQkgICAgICAgICAgICAgICAgIHwxLjY5ICAgICAgICAgICB8CTEuNjkgICAgICAgICAgfAkwLjAxICAgICAgICAgIHwJICAwLjAxICAgICAgICB8IDMuNA0KfDIJICAgICAgICAgICAgICAgICB8My4yNCAgICAgICAgICAgfAkwLjY0ICAgICAgICAgIHwJMi41NiAgICAgICAgICB8CSAgMC4zNiAgICAgICAgfCA2LjgNCnwzCSAgICAgICAgICAgICAgICAgfDEuNDQgICAgICAgICAgIHwJMS40NCAgICAgICAgICB8CTAuMzYgICAgICAgICAgfAkgIDAuMzYJICAgICAgfAkzLjYNCnw0ICAgICAgICAgICAgICAgICAgIHw0LjIwMjUgICAgICAgICB8CTAuMzAyNSAgICAgICAgfAkwLjEyMiAgICAgICAgIHwJICAxLjMyMgkgICAgICB8CTUuOTQ5DQp8NSAgICAgICAgICAgICAgICAgICB8MTUuNjAyNSAgICAgICAgfAkyLjEwMiAgICAgICAgIHwJNy4wMjIgICAgICAgICB8CSAgMC4wMjI1CSAgICB8CTI0Ljc0OQ0KfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8Kio0NC40OTgqKiB8DQoNCg0KDQoNCiRRU197UmVzfSA9ICAoODUtNzkuOC03OCs3MS41KcKyKyg4Mi03NC4yLTc4KzcxLjUpwrIrKDc1LTY4LjQtNzgrNzEuNSnCsisoNzAtNjMuNi03OCs3MS41KcKyXFwgKyg4MS03OS44LTc0LjUrNzEuNSnCsisuLi4uKyg2MS02OC40LTY2Ljc1KzcxLjUpwrIrKDU5LTYzLjYtNjYuNzUrNzEuNSnCsj0gNDQuNDk4JDxicj4NCiRkZl97UmVzfSA9IChuLTEpKihwLTEpPSAoNS0xKSooNC0xKSA9IDEyJDxicj4NCiRcaGF0e1xzaWdtYX1fe1Jlc30gXjI9IDQ0LjQ5OCAvIDEyID0gMy43MCQ8YnI+DQoNCg0KDQoNCg0KIyAgWnVzYW1tZW5mYXNzdW5nIA0KDQoNClZhcmlhbnpxdWVsbGUgfCBRdWFkcmF0c3VtbWUgfCBkZiAgICAgIHwgbWl0dGxlcmUgUXVhZHJhdHN1bW1lfA0KLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS18DQpUcmVhdG1lbnQgICAgIHw4MDIuMjUgICAgICAgIHwzICAgICAgICB8MjY3LjQyICAgICAgICAgICAgICAgIHwNClJlc2lkdWFscyAgICAgfDQ0LjQ5OCAgICAgICAgfDEyICAgICAgIHwzLjcwICAgICAgICAgICAgICAgICAgfA0KSW5uZXJoYWxiICAgICB8Nzg1LjQ4ICAgICAgICB8MTUgICAgICAgfDUyLjM2NSAgICAgICAgICAgICAgICB8DQpad2lzY2hlbiAgICAgIHwzNTUuNDYgICAgICAgIHw0ICAgICAgICB8ODguODY1ICAgICAgICAgICAgICAgIHwNCkdlc2FtdCAgICAgICAgfDExNDEuNzkgICAgICAgfDE5ICAgICAgIHwyODUuMjUgICAgICAgICAgICAgICAgfA0KDQoNCg0KDQoNCiMjIyAkRl97a3JpdGlzY2h9JA0KJERGLVrDpGhsZXI6IGRmX3t0cmVhdH0gLT4gMyQgPGJyPg0KJERGLU5lbm5lcjogZGZfe1Jlc30tPiAxMiQNCg0KRGVyIFdlcnQgZsO8ciAkRl97a3JpdGlzY2h9JCBsaWVndCBiZWkgMy40OS4NCg0KDQojIyMgJEZfe2VtcH0kDQokJEZfe2VtcH09IFxmcmFje1xoYXR7XHNpZ21hfV97dHJlYXR9XjJ9e1xoYXR7XHNpZ21hfV97UmVzfV4yfSA9IFxmcmFjezgwMi4yNX0gezQ0LjQ5fSA9ICAxOC4wMyQkDQoNCg0KJCRGX3trcml0aXNjaH0gID0gMy40OSA8ICAxOC4wMyA9IEZfe2VtcH0kJA0KDQo=