# 0) Načítanie celej databázy
daje <- read.csv("World Happiness Report 2005-2021.csv",
sep = ",", header = TRUE)
# 1) Výber relevantných stĺpcov (bodkované názvy po načítaní)
udaje <- daje[, c("Country.name",
"Year",
"Life.Ladder",
"Log.GDP.per.capita",
"Healthy.life.expectancy.at.birth",
"Social.support")]
# 2) Premenovanie stĺpcov na jednoduchšie názvy
names(udaje) <- c("Country", "Year", "LifeLadder", "LogGDPpc", "HealthyLE", "SocialSupport")
# 3) Imputácia chýbajúcich hodnôt mediánom (globálne naprieč všetkými rokmi)
imp_cols <- c("LifeLadder", "LogGDPpc", "HealthyLE", "SocialSupport")
column_medians <- sapply(udaje[ , imp_cols], median, na.rm = TRUE)
for (col in imp_cols) {
udaje[[col]][is.na(udaje[[col]])] <- column_medians[col]
}
4. Odhad základného regresného modelu
# Lineárny model na všetkých rokoch (panelové dáta)
model <- lm(LifeLadder ~ LogGDPpc + HealthyLE + SocialSupport,
data = udaje)
# Výpis výsledkov
summary(model)
Call:
lm(formula = LifeLadder ~ LogGDPpc + HealthyLE + SocialSupport,
data = udaje)
Residuals:
Min 1Q Median 3Q Max
-2.39905 -0.42894 -0.02045 0.46367 2.24196
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.712818 0.130431 -20.799 <2e-16 ***
LogGDPpc 0.392011 0.022214 17.647 <2e-16 ***
HealthyLE 0.031931 0.003386 9.429 <2e-16 ***
SocialSupport 3.068553 0.158600 19.348 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.6298 on 2085 degrees of freedom
Multiple R-squared: 0.6817, Adjusted R-squared: 0.6812
F-statistic: 1488 on 3 and 2085 DF, p-value: < 2.2e-16
Regresný model ukázal, že všetky tri premenné – LogGDPpc, HealthyLE a
SocialSupport – predstavujú silné a štatisticky významné determinanty
subjektívnej spokojnosti obyvateľov meranej ukazovateľom Life Ladder.
Koeficient pri LogGDPpc je pozitívny, čo znamená, že vyšší príjem a
ekonomická úroveň krajiny zvyšujú subjektívne vnímanie kvality života;
keď sa HDP per capita zvýši približne o 1 %, spokojnosť narastie o
približne 0.00392 bodu, čo sa pri 10 % náraste HDP prejaví zhruba
0.039-bodovým zvýšením Life Ladder. Premenná HealthyLE má taktiež
pozitívny efekt a ukazuje, že dlhší život v lepšom zdravotnom stave
zvyšuje spokojnosť; každý jeden rok navyše pridáva približne 0.032 bodu,
čo znamená, že rozdiel medzi krajinami s dĺžkou života odlišujúcou sa o
10 rokov môže predstavovať až 0.32 bodu na škále subjektívneho šťastia.
Najsilnejší vplyv má premenná SocialSupport, pri ktorej zvýšenie
sociálnej opory o 0.1 bodu zvyšuje spokojnosť o viac než 0.3 bodu, čo
potvrdzuje dôležitosť medziľudských vzťahov a dostupnosti opory v
sociálnom prostredí. Všetky koeficienty sú vysoko štatisticky významné
(p < 2e–16), čo znamená, že ich vplyvy sú spoľahlivé a stabilné,
pričom vysoké t-hodnoty naznačujú nízku neistotu odhadov. Model vykazuje
veľmi dobrú vysvetlenosť, keďže Multiple R-squared dosahuje hodnotu
približne 0.68, takže vysvetľuje viac ako dve tretiny variability
subjektívnej spokojnosti naprieč krajinami a rokmi, čo je v rámci
sociálnych a ekonomických analýz veľmi silný výsledok. Adjusted
R-squared sa od Multiple R² takmer nelíši, čo znamená, že model nie je
preplnený a každá z premenných reálne prispieva k jeho vysvetľujúcej
schopnosti. Celkový F-test modelu je extrémne významný, čo potvrdzuje,
že kombinácia zvolených premenných má ako celok výrazný vysvetľujúci
efekt. Výsledky teda ukazujú, že ekonomické podmienky, zdravotný stav
populácie a sociálne väzby tvoria robustný základ pre porozumenie
medzinárodným rozdielom v subjektívnom hodnotení kvality života.
5. Korelačná matica
Korelácia dokáže zachytiť párové vzťahy medzi premennými. Ak medzi
niektorými vysvetľujúcimi premennými je vysoká korelácia (signalizujúca
multikolinearitu), potom je najjednoduchšie ju zo zoznamu regresorov
vylúčiť. Korelácie sa dajú aj testovať, alebo len vyčísliť a potom podľa
intuitívneho pravidla vylúčiť jednu premennú, ktorá má koreláciu s inou
premennou v absolútnej hodnote vyššiu ako 0.8, resp. 0.9.
# Vyber vysvetľujúce premenné z datasetu
xvars <- udaje[, c("LogGDPpc", "HealthyLE", "SocialSupport")]
# Korelačná matica zaokrúhlená na 3 desatinné miesta
round(cor(xvars), 3)
LogGDPpc HealthyLE SocialSupport
LogGDPpc 1.000 0.801 0.674
HealthyLE 0.801 1.000 0.596
SocialSupport 0.674 0.596 1.000
pairs(xvars,
main = "Scatterplotová matica – vplyvové premenné (WHR 2015)")

Najvýraznejší pozitívny trend je viditeľný medzi LogGDPpc a HealthyLE
– bohatšie krajiny majú spravidla vyššiu dĺžku života a body ležia v
úzkom, takmer lineárnom páse. Podobne aj vzťah medzi SocialSupport a
HealthyLE naznačuje, že krajiny s lepším zdravotným stavom populácie
majú zároveň silnejšiu sociálnu oporu. Vzťah medzi LogGDPpc a
SocialSupport je pozitívny, no rozptýlenejší, čo znamená, že ekonomická
úroveň nie je jediným faktorom ovplyvňujúcim sociálne väzby. Vo všetkých
grafických kombináciách je patrné, že premenné majú prevažne priamu
(pozitívnu) väzbu, čo je v súlade s výsledkami regresie aj korelačnej
matice. Zároveň vidíme aj určité zhluky bodov predstavujúce krajiny s
podobným socioekonomickým profilom, čo je typické pri panelových dátach.
Matica teda naznačuje potenciálnu, ale nie problémovú mieru kolinearít –
najmä medzi LogGDPpc a HealthyLE –, avšak jej sila sa ukáže až v
číselných ukazovateľoch, ako VIF alebo Condition Number.
6. VIF
library(car)
vif(model)
LogGDPpc HealthyLE SocialSupport
3.352478 2.838512 1.861575
Hodnoty VIF pre všetky tri premenné sú nízke, čo znamená, že
multikolinearita v modeli nepredstavuje problém. Najvyšší VIF má
premenná LogGDPpc (3.35), čo naznačuje miernu, ale úplne akceptovateľnú
vzájomnú koreláciu s ostatnými premennými. HealthyLE má VIF 2.84, čo
potvrdzuje, že jej lineárny vzťah s ostatnými premennými je slabý a
stabilný. SocialSupport vykazuje najnižší VIF (1.86), takže táto
premenná je od ostatných vysvetľujúcich veličín najmenej závislá. Všetky
hodnoty sú výrazne pod kritickou hranicou 10, ktorá sa považuje za
indikátor vážnej multikolinearity. Nízke VIF potvrdzujú, že regresné
koeficienty budú stabilné, spoľahlivé a interpretovateľné bez skreslenia
spôsobeného závislosťou medzi regresormi. Súčasne tieto výsledky
korešpondujú s vizuálnou scatterplotovou maticou, ktorá síce naznačovala
pozitívne vzťahy medzi premennými, no ich intenzita je zjavne nízka až
stredná. Model je teda z hľadiska multikolinearity dobre špecifikovaný a
žiadna z premenných nie je kandidátom na odstránenie.
My však na báze učenie budeme pracovať s dátami ako keby sa v nich
multikolinearita vyskytovala
7. Condition Number
# Návrhová matica X bez interceptu
X <- model.matrix(model)[, -1, drop = FALSE]
## (A) Kappa bez škálovania
kappa_unscaled <- kappa(X)
## (B) Kappa po štandardizácii (scale = TRUE)
Xz <- scale(X, center = TRUE, scale = TRUE)
kappa_scaled <- kappa(Xz)
## (C) Condition number cez vlastné čísla
XtX <- t(Xz) %*% Xz
eig_vals <- eigen(XtX, symmetric = TRUE, only.values = TRUE)$values
condition_number <- sqrt(max(eig_vals) / min(eig_vals))
kappa_unscaled
[1] 730.8481
kappa_scaled
[1] 3.470355
condition_number
[1] 3.551354
Hodnoty Condition Number ukazujú veľmi priaznivú situáciu z hľadiska
multikolinearity. Neškálovaná verzia (730.85) je extrémne vysoká, no
táto hodnota sa neinterpretuje, pretože je ovplyvnená rozdielnymi
jednotkami premenných. Rozhodujúce sú škálované ukazovatele:
kappa_scaled = 3.47 a alternatívne vypočítaný condition_number = 3.55.
Obe hodnoty sú hlboko pod hranicou 10, ktorá sa štandardne považuje za
limit, pri ktorom multikolinearita začína byť problémom. Výsledky preto
jasne naznačujú, že medzi premennými v modeli neexistuje žiadna
relevantná lineárna závislosť, ktorá by narúšala stabilitu odhadov.
Takéto nízke kondičné čísla potvrdzujú, že model je dobre identifikovaný
a regresné koeficienty sú spoľahlivé a necitlivé na malé zmeny v
údajoch. Zároveň to dopĺňa zistenia z VIF, ktoré boli taktiež nízke,
takže oba diagnostické prístupy sa navzájom potvrdzujú. Model je teda z
pohľadu multikolinearity úplne bezproblémový.
8. Vynechanie premenných
# Model bez LogGDPpc (najvyšší VIF)
model_noGDP <- lm(LifeLadder ~ HealthyLE + SocialSupport,
data = udaje)
summary(model_noGDP)
Call:
lm(formula = LifeLadder ~ HealthyLE + SocialSupport, data = udaje)
Residuals:
Min 1Q Median 3Q Max
-2.22137 -0.46134 -0.04537 0.50695 2.85596
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.509235 0.139251 -18.02 <2e-16 ***
HealthyLE 0.072182 0.002683 26.91 <2e-16 ***
SocialSupport 4.212115 0.155156 27.15 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.6751 on 2086 degrees of freedom
Multiple R-squared: 0.6341, Adjusted R-squared: 0.6338
F-statistic: 1808 on 2 and 2086 DF, p-value: < 2.2e-16
# Model bez HealthyLE
model_noHE <- lm(LifeLadder ~ LogGDPpc + SocialSupport,
data = udaje)
summary(model_noHE)
Call:
lm(formula = LifeLadder ~ LogGDPpc + SocialSupport, data = udaje)
Residuals:
Min 1Q Median 3Q Max
-2.2287 -0.4217 -0.0088 0.4831 2.1694
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.17106 0.11954 -18.16 <2e-16 ***
LogGDPpc 0.53309 0.01676 31.80 <2e-16 ***
SocialSupport 3.25828 0.16060 20.29 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.643 on 2086 degrees of freedom
Multiple R-squared: 0.6681, Adjusted R-squared: 0.6678
F-statistic: 2100 on 2 and 2086 DF, p-value: < 2.2e-16
# Model bez SocialSupport
model_noSS <- lm(LifeLadder ~ LogGDPpc + HealthyLE,
data = udaje)
summary(model_noSS)
Call:
lm(formula = LifeLadder ~ LogGDPpc + HealthyLE, data = udaje)
Residuals:
Min 1Q Median 3Q Max
-3.3350 -0.4640 0.0089 0.5014 2.2361
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.394747 0.140493 -17.05 <2e-16 ***
LogGDPpc 0.567612 0.022015 25.78 <2e-16 ***
HealthyLE 0.040243 0.003647 11.03 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.6839 on 2086 degrees of freedom
Multiple R-squared: 0.6245, Adjusted R-squared: 0.6242
F-statistic: 1735 on 2 and 2086 DF, p-value: < 2.2e-16
Pri vynechávaní premenných sa ukazuje, že všetky tri dvojpremenné
modely ostávajú štatisticky významné, no ich vysvetľovacia sila sa
odlišuje. Model bez LogGDPpc (t. j. HealthyLE + SocialSupport) má
najnižšiu vysvetlenosť, R² = 0.634, čo znamená, že odstránenie
ekonomickej premennej znižuje kvalitu modelu najviac. Model bez
HealthyLE (LogGDPpc + SocialSupport) si zachováva veľmi vysoké R² =
0.668, teda takmer identické ako pôvodný trojpremenný model, čo
naznačuje, že kombinácia ekonomického výkonu a sociálnej opory zachytáva
väčšinu variability Life Ladder. Model bez SocialSupport (LogGDPpc +
HealthyLE) má R² = 0.625, čo je najnižšia hodnota zo všetkých
porovnávaných modelov, čo potvrdzuje, že SocialSupport je kľúčovým
regresorom. Z pohľadu silných efektov ostáva SocialSupport
najdominantnejšou premennou aj v dvojpremenných modeloch, s vysokými
t-hodnotami a stabilným koeficientom. LogGDPpc si taktiež zachováva
veľmi silný vplyv a vysokú štatistickú významnosť, zatiaľ čo HealthyLE
má najslabší relatívny príspevok. Celkovo možno konštatovať, že najväčší
pokles vysvetlenosti nastáva po odstránení SocialSupport, čo potvrdzuje
jej centrálne postavenie v modeli subjektívneho šťastia. Model bez
HealthyLE prináša najmenšiu stratu R², čo naznačuje, že ekonomická
úroveň a sociálna opora spolu nesú najväčšiu časť informácie o Life
Ladder. Výsledky teda ukazujú, že ak by sa mala nejaká premenná
vynechať, najmenšiu škodu spôsobí odstránenie HealthyLE, zatiaľ čo
vynechanie SocialSupport alebo LogGDPpc výraznejšie znižuje kvalitu
modelu.
9. Škálovanie
# Vytvorenie škálovaných premenných
udaje$LogGDPpc_c <- scale(udaje$LogGDPpc, center = TRUE, scale = TRUE)
udaje$HealthyLE_c <- scale(udaje$HealthyLE, center = TRUE, scale = TRUE)
udaje$SocialSupport_c <- scale(udaje$SocialSupport, center = TRUE, scale = TRUE)
# Model so škálovanými premennými
model_scaled <- lm(LifeLadder ~ LogGDPpc_c + HealthyLE_c + SocialSupport_c,
data = udaje)
summary(model_scaled)
Call:
lm(formula = LifeLadder ~ LogGDPpc_c + HealthyLE_c + SocialSupport_c,
data = udaje)
Residuals:
Min 1Q Median 3Q Max
-2.39905 -0.42894 -0.02045 0.46367 2.24196
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.47375 0.01378 397.210 <2e-16 ***
LogGDPpc_c 0.44538 0.02524 17.647 <2e-16 ***
HealthyLE_c 0.21897 0.02322 9.429 <2e-16 ***
SocialSupport_c 0.36386 0.01881 19.348 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.6298 on 2085 degrees of freedom
Multiple R-squared: 0.6817, Adjusted R-squared: 0.6812
F-statistic: 1488 on 3 and 2085 DF, p-value: < 2.2e-16
# VIF po škálovaní
vif(model_scaled)
LogGDPpc_c HealthyLE_c SocialSupport_c
3.352478 2.838512 1.861575
Škálovaný model ukazuje, že po centrácii a štandardizácii premenných
sa nemení ich štatistická významnosť ani smer vplyvu, no menia sa
numerické hodnoty koeficientov, keďže všetky regresory sú teraz
vyjadrené v štandardných odchýlkach. LogGDPpc_c ostáva silným a
štatisticky významným prediktorom spokojnosti, pričom jeho koeficient
0.445 naznačuje, že zvýšenie ekonomickej úrovne o jednu štandardnú
odchýlku zvyšuje Life Ladder o takmer polovicu bodu. HealthyLE_c má po
škálovaní koeficient 0.219, čo znamená, že krajinám s výrazne vyššou
dĺžkou života narastá spokojnosť o približne pätinu bodu pri zmene o
jednu štandardnú odchýlku. SocialSupport_c má naďalej najsilnejší efekt
(0.364), čo potvrdzuje jeho dominantné postavenie medzi vysvetľujúcimi
premennými. Hodnoty VIF po škálovaní zostávajú veľmi nízke, takže
škálovanie neodhalilo žiadnu novú formu multikolinearity, ale naopak
potvrdilo stabilitu modelu. R² aj Adjusted R² sa nezmenili, čo dokazuje,
že škálovanie nemení vysvetľovaciu silu modelu, iba jeho číselnú
reprezentáciu. Veľmi výrazne sa zlepšil Condition Number, ktorý klesol
na hodnoty okolo 3.5, čo je jednoznačným znakom absencie
multikolinearity. Škálovanie preto zlepšuje numerickú stabilitu a
umožňuje jednoduchšie porovnávanie relatívnej sily regresorov bez toho,
aby znižovalo interpretovateľnosť výsledkov. Celkovo škálovaný model
potvrdzuje pôvodné zistenia, pričom jasnejšie ukazuje, ktoré premenné
majú na Life Ladder najsilnejší štandardizovaný vplyv.
10. Condition number po škálovaní
X <- model.matrix(model_scaled)[, -1]
XtX <- t(X) %*% X
eig <- eigen(XtX)
condition_number_scaled <- sqrt(max(eig$values) / min(eig$values))
condition_number_scaled
[1] 3.551354
Škálovaný model ukazuje, že po centrácii a štandardizácii premenných
sa nemení ich štatistická významnosť ani smer vplyvu, no menia sa
numerické hodnoty koeficientov, keďže všetky regresory sú teraz
vyjadrené v štandardných odchýlkach. LogGDPpc_c ostáva silným a
štatisticky významným prediktorom spokojnosti, pričom jeho koeficient
0.445 naznačuje, že zvýšenie ekonomickej úrovne o jednu štandardnú
odchýlku zvyšuje Life Ladder o takmer polovicu bodu. HealthyLE_c má po
škálovaní koeficient 0.219, čo znamená, že krajinám s výrazne vyššou
dĺžkou života narastá spokojnosť o približne pätinu bodu pri zmene o
jednu štandardnú odchýlku. SocialSupport_c má naďalej najsilnejší efekt
(0.364), čo potvrdzuje jeho dominantné postavenie medzi vysvetľujúcimi
premennými. Hodnoty VIF po škálovaní zostávajú veľmi nízke, takže
škálovanie neodhalilo žiadnu novú formu multikolinearity, ale naopak
potvrdilo stabilitu modelu. R² aj Adjusted R² sa nezmenili, čo dokazuje,
že škálovanie nemení vysvetľovaciu silu modelu, iba jeho číselnú
reprezentáciu. Veľmi výrazne sa zlepšil Condition Number, ktorý klesol
na hodnoty okolo 3.5, čo je jednoznačným znakom absencie
multikolinearity. Škálovanie preto zlepšuje numerickú stabilitu a
umožňuje jednoduchšie porovnávanie relatívnej sily regresorov bez toho,
aby znižovalo interpretovateľnosť výsledkov. Celkovo škálovaný model
potvrdzuje pôvodné zistenia, pričom jasnejšie ukazuje, ktoré premenné
majú na Life Ladder najsilnejší štandardizovaný vplyv.
11. Úprava premennej bez straty interpretácie
udaje$HealthyLE10 <- udaje$HealthyLE / 10
head(udaje)
model_HE10 <- lm(LifeLadder ~ LogGDPpc + HealthyLE10 + SocialSupport,
data = udaje)
summary(model_HE10)
Call:
lm(formula = LifeLadder ~ LogGDPpc + HealthyLE10 + SocialSupport,
data = udaje)
Residuals:
Min 1Q Median 3Q Max
-2.39905 -0.42894 -0.02045 0.46367 2.24196
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.71282 0.13043 -20.799 <2e-16 ***
LogGDPpc 0.39201 0.02221 17.647 <2e-16 ***
HealthyLE10 0.31931 0.03386 9.429 <2e-16 ***
SocialSupport 3.06855 0.15860 19.348 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.6298 on 2085 degrees of freedom
Multiple R-squared: 0.6817, Adjusted R-squared: 0.6812
F-statistic: 1488 on 3 and 2085 DF, p-value: < 2.2e-16
vif(model_HE10)
LogGDPpc HealthyLE10 SocialSupport
3.352478 2.838512 1.861575
X <- model.matrix(model_HE10)[, -1]
XtX <- t(X) %*% X
eig <- eigen(XtX)
condition_number_HE10 <- sqrt(max(eig$values) / min(eig$values))
condition_number_HE10
[1] 130.6275
Úprava premennej HealthyLE na HealthyLE10 zachováva
interpretovateľnosť modelu a zároveň znižuje numerické rozdiely medzi
regresormi, keďže premenná dĺžky života bola pôvodne vyjadrená v
desiatkach rokov. Koeficient pri HealthyLE10 má teraz hodnotu 0.319, čo
znamená, že zvýšenie očakávanej dĺžky života o 10 rokov vedie k nárastu
Life Ladder približne o 0.32 bodu, čiže interpretácia je intuitívna a
zároveň bližšia reálnym rozdielom medzi krajinami. Ostatné koeficienty
sa prakticky nezmenili, čo potvrdzuje, že táto úprava nemení štruktúru
vzťahov v modeli, iba spríjemňuje interpretáciu. VIF hodnoty zostali
totožné, čo znamená, že ani táto transformácia nezvyšuje
multikolinearitu a regresné koeficienty zostávajú stabilné. Condition
Number klesol na úroveň približne 130, čo je síce výrazne lepšie ako
pôvodná neškálovaná verzia, no stále sa nachádza na hranici medzi nízkou
a miernou multikolinearitou. Tento výsledok ukazuje, že samotná zmena
jednotiek zlepšuje numerickú stabilitu modelu, ale nerieši
multikolinearitu tak účinne ako kompletné škálovanie. Napriek tomu však
upravený model zachováva výbornú interpretovateľnosť, rovnakú
štatistickú významnosť aj identickú úroveň vysvetlenej variability (R² ≈
0.68) ako pôvodný model. Úprava premennej je preto vhodná v situáciách,
keď je prioritou porovnateľnosť jednotiek a prehľadná ekonomická
interpretácia regresných koeficientov.
12. Záver
Na základe všetkých vykonaných analýz možno konštatovať, že regresný
model vysvetľujúci spokojnosť so životom je štatisticky silný, stabilný
a dobre špecifikovaný. Základný model aj všetky jeho modifikácie
preukázali, že LogGDPpc, HealthyLE a SocialSupport majú výrazný a
štatisticky významný pozitívny vplyv na Life Ladder, pričom
najdominantnejšou premennou zostáva sociálna opora. Diagnostické
ukazovatele multikolinearity – VIF aj Condition Number – jednoznačne
potvrdili, že medzi premennými neexistuje problémová lineárna závislosť
a model netrpí multikolinearitou ani pri použití pôvodných, ani
škálovaných veličín. Vynechávanie jednotlivých premenných ukázalo, že
najväčšiu stratu vysvetľovacej schopnosti spôsobuje odstránenie
SocialSupport, zatiaľ čo vynechanie HealthyLE má najmenší dopad, čo
odráža relatívnu silu ich vzťahu k Life Ladder. Škálovanie premenných
výrazne zlepšilo numerickú stabilitu modelu a potvrdilo rovnaké
smerovanie aj veľkosť efektov, pričom VIF aj Condition Number zostali na
ideálnych hodnotách. Alternatívna úprava premennej HealthyLE10 zachovala
ekonomickú interpretovateľnosť a zároveň tvorila konzistentné výsledky s
pôvodným modelom. Celkovo sa všetky prístupy zhodujú v tom, že model je
robustný, jeho koeficienty sú spoľahlivé a nič nenasvedčuje prítomnosti
multikolinearity, ktorá by ohrozovala dôveryhodnosť odhadov.
LS0tCnRpdGxlOiAiQ3ZpxI1lbmllIDEwIOKAkyBNdWx0aWtvbGluZWFyaXRhIHYgcmVncmVzbsO9Y2ggbW9kZWxvY2ggLSByaWXFoWVuaWUiCmF1dGhvcjogIklaICYgQ2hhdEdQVCIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CgojIDApIE5hxI3DrXRhbmllIGNlbGVqIGRhdGFiw6F6eQpkYWplIDwtIHJlYWQuY3N2KCJXb3JsZCBIYXBwaW5lc3MgUmVwb3J0IDIwMDUtMjAyMS5jc3YiLAogICAgICAgICAgICAgICAgIHNlcCA9ICIsIiwgaGVhZGVyID0gVFJVRSkKCiMgMSkgVsO9YmVyIHJlbGV2YW50bsO9Y2ggc3TEunBjb3YgKGJvZGtvdmFuw6kgbsOhenZ5IHBvIG5hxI3DrXRhbsOtKQp1ZGFqZSA8LSBkYWplWywgYygiQ291bnRyeS5uYW1lIiwKICAgICAgICAgICAgICAgICAgIlllYXIiLAogICAgICAgICAgICAgICAgICAiTGlmZS5MYWRkZXIiLAogICAgICAgICAgICAgICAgICAiTG9nLkdEUC5wZXIuY2FwaXRhIiwKICAgICAgICAgICAgICAgICAgIkhlYWx0aHkubGlmZS5leHBlY3RhbmN5LmF0LmJpcnRoIiwKICAgICAgICAgICAgICAgICAgIlNvY2lhbC5zdXBwb3J0IildCgojIDIpIFByZW1lbm92YW5pZSBzdMS6cGNvdiBuYSBqZWRub2R1Y2jFoWllIG7DoXp2eQpuYW1lcyh1ZGFqZSkgPC0gYygiQ291bnRyeSIsICJZZWFyIiwgIkxpZmVMYWRkZXIiLCAiTG9nR0RQcGMiLCAiSGVhbHRoeUxFIiwgIlNvY2lhbFN1cHBvcnQiKQoKIyAzKSBJbXB1dMOhY2lhIGNow71iYWrDumNpY2ggaG9kbsO0dCBtZWRpw6Fub20gKGdsb2LDoWxuZSBuYXByaWXEjSB2xaFldGvDvW1pIHJva21pKQppbXBfY29scyA8LSBjKCJMaWZlTGFkZGVyIiwgIkxvZ0dEUHBjIiwgIkhlYWx0aHlMRSIsICJTb2NpYWxTdXBwb3J0IikKY29sdW1uX21lZGlhbnMgPC0gc2FwcGx5KHVkYWplWyAsIGltcF9jb2xzXSwgbWVkaWFuLCBuYS5ybSA9IFRSVUUpCgpmb3IgKGNvbCBpbiBpbXBfY29scykgewogIHVkYWplW1tjb2xdXVtpcy5uYSh1ZGFqZVtbY29sXV0pXSA8LSBjb2x1bW5fbWVkaWFuc1tjb2xdCn0KCmBgYAoKLS0tCgojIDQuIE9kaGFkIHrDoWtsYWRuw6lobyByZWdyZXNuw6lobyBtb2RlbHUKCmBgYHtyfQoKIyBMaW5lw6FybnkgbW9kZWwgbmEgdsWhZXRrw71jaCByb2tvY2ggKHBhbmVsb3bDqSBkw6F0YSkKbW9kZWwgPC0gbG0oTGlmZUxhZGRlciB+IExvZ0dEUHBjICsgSGVhbHRoeUxFICsgU29jaWFsU3VwcG9ydCwKICAgICAgICAgICAgZGF0YSA9IHVkYWplKQoKIyBWw71waXMgdsO9c2xlZGtvdgpzdW1tYXJ5KG1vZGVsKQoKYGBgClJlZ3Jlc27DvSBtb2RlbCB1a8OhemFsLCDFvmUgdsWhZXRreSB0cmkgcHJlbWVubsOpIOKAkyBMb2dHRFBwYywgSGVhbHRoeUxFIGEgU29jaWFsU3VwcG9ydCDigJMgcHJlZHN0YXZ1asO6IHNpbG7DqSBhIMWhdGF0aXN0aWNreSB2w716bmFtbsOpIGRldGVybWluYW50eSBzdWJqZWt0w612bmVqIHNwb2tvam5vc3RpIG9ieXZhdGXEvm92IG1lcmFuZWogdWthem92YXRlxL5vbSBMaWZlIExhZGRlci4gS29lZmljaWVudCBwcmkgTG9nR0RQcGMgamUgcG96aXTDrXZueSwgxI1vIHpuYW1lbsOhLCDFvmUgdnnFocWhw60gcHLDrWplbSBhIGVrb25vbWlja8OhIMO6cm92ZcWIIGtyYWppbnkgenZ5xaF1asO6IHN1Ympla3TDrXZuZSB2bsOtbWFuaWUga3ZhbGl0eSDFvml2b3RhOyBrZcSPIHNhIEhEUCBwZXIgY2FwaXRhIHp2w73FoWkgcHJpYmxpxb5uZSBvIDEgJSwgc3Bva29qbm9zxaUgbmFyYXN0aWUgbyBwcmlibGnFvm5lIDAuMDAzOTIgYm9kdSwgxI1vIHNhIHByaSAxMCAlIG7DoXJhc3RlIEhEUCBwcmVqYXbDrSB6aHJ1YmEgMC4wMzktYm9kb3bDvW0genbDvcWhZW7DrW0gTGlmZSBMYWRkZXIuIFByZW1lbm7DoSBIZWFsdGh5TEUgbcOhIHRha3RpZcW+IHBveml0w612bnkgZWZla3QgYSB1a2F6dWplLCDFvmUgZGxoxaHDrSDFvml2b3QgdiBsZXDFoW9tIHpkcmF2b3Rub20gc3RhdmUgenZ5xaF1amUgc3Bva29qbm9zxaU7IGthxb5kw70gamVkZW4gcm9rIG5hdnnFoWUgcHJpZMOhdmEgcHJpYmxpxb5uZSAwLjAzMiBib2R1LCDEjW8gem5hbWVuw6EsIMW+ZSByb3pkaWVsIG1lZHppIGtyYWppbmFtaSBzIGTEusW+a291IMW+aXZvdGEgb2RsacWhdWrDumNvdSBzYSBvIDEwIHJva292IG3DtMW+ZSBwcmVkc3Rhdm92YcWlIGHFviAwLjMyIGJvZHUgbmEgxaFrw6FsZSBzdWJqZWt0w612bmVobyDFocWlYXN0aWEuIE5hanNpbG5lasWhw60gdnBseXYgbcOhIHByZW1lbm7DoSBTb2NpYWxTdXBwb3J0LCBwcmkga3RvcmVqIHp2w73FoWVuaWUgc29jacOhbG5laiBvcG9yeSBvIDAuMSBib2R1IHp2ecWhdWplIHNwb2tvam5vc8WlIG8gdmlhYyBuZcW+IDAuMyBib2R1LCDEjW8gcG90dnJkenVqZSBkw7RsZcW+aXRvc8WlIG1lZHppxL51ZHNrw71jaCB2esWlYWhvdiBhIGRvc3R1cG5vc3RpIG9wb3J5IHYgc29jacOhbG5vbSBwcm9zdHJlZMOtLiBWxaFldGt5IGtvZWZpY2llbnR5IHPDuiB2eXNva28gxaF0YXRpc3RpY2t5IHbDvXpuYW1uw6kgKHAgPCAyZeKAkzE2KSwgxI1vIHpuYW1lbsOhLCDFvmUgaWNoIHZwbHl2eSBzw7ogc3BvxL5haGxpdsOpIGEgc3RhYmlsbsOpLCBwcmnEjW9tIHZ5c29rw6kgdC1ob2Rub3R5IG5hem5hxI11asO6IG7DrXprdSBuZWlzdG90dSBvZGhhZG92LiBNb2RlbCB2eWthenVqZSB2ZcS+bWkgZG9icsO6IHZ5c3ZldGxlbm9zxaUsIGtlxI/FvmUgTXVsdGlwbGUgUi1zcXVhcmVkIGRvc2FodWplIGhvZG5vdHUgcHJpYmxpxb5uZSAwLjY4LCB0YWvFvmUgdnlzdmV0xL51amUgdmlhYyBha28gZHZlIHRyZXRpbnkgdmFyaWFiaWxpdHkgc3ViamVrdMOtdm5laiBzcG9rb2pub3N0aSBuYXByaWXEjSBrcmFqaW5hbWkgYSByb2ttaSwgxI1vIGplIHYgcsOhbWNpIHNvY2nDoWxueWNoIGEgZWtvbm9taWNrw71jaCBhbmFsw716IHZlxL5taSBzaWxuw70gdsO9c2xlZG9rLiBBZGp1c3RlZCBSLXNxdWFyZWQgc2Egb2QgTXVsdGlwbGUgUsKyIHRha21lciBuZWzDrcWhaSwgxI1vIHpuYW1lbsOhLCDFvmUgbW9kZWwgbmllIGplIHByZXBsbmVuw70gYSBrYcW+ZMOhIHogcHJlbWVubsO9Y2ggcmXDoWxuZSBwcmlzcGlldmEgayBqZWhvIHZ5c3ZldMS+dWrDumNlaiBzY2hvcG5vc3RpLiBDZWxrb3bDvSBGLXRlc3QgbW9kZWx1IGplIGV4dHLDqW1uZSB2w716bmFtbsO9LCDEjW8gcG90dnJkenVqZSwgxb5lIGtvbWJpbsOhY2lhIHp2b2xlbsO9Y2ggcHJlbWVubsO9Y2ggbcOhIGFrbyBjZWxvayB2w71yYXpuw70gdnlzdmV0xL51asO6Y2kgZWZla3QuIFbDvXNsZWRreSB0ZWRhIHVrYXp1asO6LCDFvmUgZWtvbm9taWNrw6kgcG9kbWllbmt5LCB6ZHJhdm90bsO9IHN0YXYgcG9wdWzDoWNpZSBhIHNvY2nDoWxuZSB2w6R6YnkgdHZvcmlhIHJvYnVzdG7DvSB6w6FrbGFkIHByZSBwb3JvenVtZW5pZSBtZWR6aW7DoXJvZG7DvW0gcm96ZGllbG9tIHYgc3ViamVrdMOtdm5vbSBob2Rub3RlbsOtIGt2YWxpdHkgxb5pdm90YS4KCi0tLQoKIyA1LiBLb3JlbGHEjW7DoSBtYXRpY2EKCktvcmVsw6FjaWEgZG9rw6HFvmUgemFjaHl0acWlIHDDoXJvdsOpIHZ6xaVhaHkgbWVkemkgcHJlbWVubsO9bWkuIEFrIG1lZHppIG5pZWt0b3LDvW1pIHZ5c3ZldMS+dWrDumNpbWkgcHJlbWVubsO9bWkgamUgdnlzb2vDoSBrb3JlbMOhY2lhIChzaWduYWxpenVqw7pjYSBtdWx0aWtvbGluZWFyaXR1KSwgcG90b20gamUgbmFqamVkbm9kdWNoxaFpZSBqdSB6byB6b3puYW11IHJlZ3Jlc29yb3Ygdnlsw7rEjWnFpS4gS29yZWzDoWNpZSBzYSBkYWrDuiBhaiB0ZXN0b3ZhxaUsIGFsZWJvIGxlbiB2ecSNw61zbGnFpSBhIHBvdG9tIHBvZMS+YSBpbnR1aXTDrXZuZWhvIHByYXZpZGxhIHZ5bMO6xI1pxaUgamVkbnUgcHJlbWVubsO6LCBrdG9yw6EgbcOhIGtvcmVsw6FjaXUgcyBpbm91IHByZW1lbm5vdSB2IGFic29sw7p0bmVqIGhvZG5vdGUgdnnFocWhaXUgYWtvIDAuOCwgcmVzcC4gMC45LgoKYGBge3J9CgojIFZ5YmVyIHZ5c3ZldMS+dWrDumNlIHByZW1lbm7DqSB6IGRhdGFzZXR1Cnh2YXJzIDwtIHVkYWplWywgYygiTG9nR0RQcGMiLCAiSGVhbHRoeUxFIiwgIlNvY2lhbFN1cHBvcnQiKV0KCiMgS29yZWxhxI1uw6EgbWF0aWNhIHphb2tyw7pobGVuw6EgbmEgMyBkZXNhdGlubsOpIG1pZXN0YQpyb3VuZChjb3IoeHZhcnMpLCAzKQoKcGFpcnMoeHZhcnMsCiAgICAgIG1haW4gPSAiU2NhdHRlcnBsb3RvdsOhIG1hdGljYSDigJMgdnBseXZvdsOpIHByZW1lbm7DqSAoV0hSIDIwMTUpIikKCmBgYApOYWp2w71yYXpuZWrFocOtIHBveml0w612bnkgdHJlbmQgamUgdmlkaXRlxL5uw70gbWVkemkgTG9nR0RQcGMgYSBIZWFsdGh5TEUg4oCTIGJvaGF0xaFpZSBrcmFqaW55IG1hasO6IHNwcmF2aWRsYSB2ecWhxaFpdSBkxLrFvmt1IMW+aXZvdGEgYSBib2R5IGxlxb5pYSB2IMO6emtvbSwgdGFrbWVyIGxpbmXDoXJub20gcMOhc2UuIFBvZG9ibmUgYWogdnrFpWFoIG1lZHppIFNvY2lhbFN1cHBvcnQgYSBIZWFsdGh5TEUgbmF6bmHEjXVqZSwgxb5lIGtyYWppbnkgcyBsZXDFocOtbSB6ZHJhdm90bsO9bSBzdGF2b20gcG9wdWzDoWNpZSBtYWrDuiB6w6Fyb3ZlxYggc2lsbmVqxaFpdSBzb2Npw6FsbnUgb3BvcnUuIFZ6xaVhaCBtZWR6aSBMb2dHRFBwYyBhIFNvY2lhbFN1cHBvcnQgamUgcG96aXTDrXZueSwgbm8gcm96cHTDvWxlbmVqxaHDrSwgxI1vIHpuYW1lbsOhLCDFvmUgZWtvbm9taWNrw6Egw7pyb3ZlxYggbmllIGplIGplZGluw71tIGZha3Rvcm9tIG92cGx5dsWIdWrDumNpbSBzb2Npw6FsbmUgdsOkemJ5LiBWbyB2xaFldGvDvWNoIGdyYWZpY2vDvWNoIGtvbWJpbsOhY2nDoWNoIGplIHBhdHJuw6ksIMW+ZSBwcmVtZW5uw6kgbWFqw7ogcHJldmHFvm5lIHByaWFtdSAocG96aXTDrXZudSkgdsOkemJ1LCDEjW8gamUgdiBzw7psYWRlIHMgdsO9c2xlZGthbWkgcmVncmVzaWUgYWoga29yZWxhxI1uZWogbWF0aWNlLiBaw6Fyb3ZlxYggdmlkw61tZSBhaiB1csSNaXTDqSB6aGx1a3kgYm9kb3YgcHJlZHN0YXZ1asO6Y2Uga3JhamlueSBzIHBvZG9ibsO9bSBzb2Npb2Vrb25vbWlja8O9bSBwcm9maWxvbSwgxI1vIGplIHR5cGlja8OpIHByaSBwYW5lbG92w71jaCBkw6F0YWNoLiBNYXRpY2EgdGVkYSBuYXpuYcSNdWplIHBvdGVuY2nDoWxudSwgYWxlIG5pZSBwcm9ibMOpbW92w7ogbWllcnUga29saW5lYXLDrXQg4oCTIG5ham3DpCBtZWR6aSBMb2dHRFBwYyBhIEhlYWx0aHlMRSDigJMsIGF2xaFhayBqZWogc2lsYSBzYSB1a8Ohxb5lIGHFviB2IMSNw61zZWxuw71jaCB1a2F6b3ZhdGXEvm9jaCwgYWtvIFZJRiBhbGVibyBDb25kaXRpb24gTnVtYmVyLgoKCi0tLQoKIyA2LiBWSUYKCmBgYHtyfQpsaWJyYXJ5KGNhcikKdmlmKG1vZGVsKQpgYGAKCkhvZG5vdHkgVklGIHByZSB2xaFldGt5IHRyaSBwcmVtZW5uw6kgc8O6IG7DrXprZSwgxI1vIHpuYW1lbsOhLCDFvmUgbXVsdGlrb2xpbmVhcml0YSB2IG1vZGVsaSBuZXByZWRzdGF2dWplIHByb2Jsw6ltLiBOYWp2ecWhxaHDrSBWSUYgbcOhIHByZW1lbm7DoSBMb2dHRFBwYyAoMy4zNSksIMSNbyBuYXpuYcSNdWplIG1pZXJudSwgYWxlIMO6cGxuZSBha2NlcHRvdmF0ZcS+bsO6IHZ6w6Fqb21uw7oga29yZWzDoWNpdSBzIG9zdGF0bsO9bWkgcHJlbWVubsO9bWkuIEhlYWx0aHlMRSBtw6EgVklGIDIuODQsIMSNbyBwb3R2cmR6dWplLCDFvmUgamVqIGxpbmXDoXJueSB2esWlYWggcyBvc3RhdG7DvW1pIHByZW1lbm7DvW1pIGplIHNsYWLDvSBhIHN0YWJpbG7DvS4gU29jaWFsU3VwcG9ydCB2eWthenVqZSBuYWpuacW+xaHDrSBWSUYgKDEuODYpLCB0YWvFvmUgdMOhdG8gcHJlbWVubsOhIGplIG9kIG9zdGF0bsO9Y2ggdnlzdmV0xL51asO6Y2ljaCB2ZWxpxI3DrW4gbmFqbWVuZWogesOhdmlzbMOhLiBWxaFldGt5IGhvZG5vdHkgc8O6IHbDvXJhem5lIHBvZCBrcml0aWNrb3UgaHJhbmljb3UgMTAsIGt0b3LDoSBzYSBwb3Zhxb51amUgemEgaW5kaWvDoXRvciB2w6HFvm5laiBtdWx0aWtvbGluZWFyaXR5LiBOw616a2UgVklGIHBvdHZyZHp1asO6LCDFvmUgcmVncmVzbsOpIGtvZWZpY2llbnR5IGJ1ZMO6IHN0YWJpbG7DqSwgc3BvxL5haGxpdsOpIGEgaW50ZXJwcmV0b3ZhdGXEvm7DqSBiZXogc2tyZXNsZW5pYSBzcMO0c29iZW7DqWhvIHrDoXZpc2xvc8Wlb3UgbWVkemkgcmVncmVzb3JtaS4gU8O6xI1hc25lIHRpZXRvIHbDvXNsZWRreSBrb3JlxaFwb25kdWrDuiBzIHZpenXDoWxub3Ugc2NhdHRlcnBsb3Rvdm91IG1hdGljb3UsIGt0b3LDoSBzw61jZSBuYXpuYcSNb3ZhbGEgcG96aXTDrXZuZSB2esWlYWh5IG1lZHppIHByZW1lbm7DvW1pLCBubyBpY2ggaW50ZW56aXRhIGplIHpqYXZuZSBuw616a2EgYcW+IHN0cmVkbsOhLiBNb2RlbCBqZSB0ZWRhIHogaMS+YWRpc2thIG11bHRpa29saW5lYXJpdHkgZG9icmUgxaFwZWNpZmlrb3ZhbsO9IGEgxb5pYWRuYSB6IHByZW1lbm7DvWNoIG5pZSBqZSBrYW5kaWTDoXRvbSBuYSBvZHN0csOhbmVuaWUuCgpNeSB2xaFhayBuYSBiw6F6ZSB1xI1lbmllIGJ1ZGVtZSBwcmFjb3ZhxaUgcyBkw6F0YW1pIGFrbyBrZWJ5IHNhIHYgbmljaCBtdWx0aWtvbGluZWFyaXRhIHZ5c2t5dG92YWxhCgotLS0KCiMgNy4gQ29uZGl0aW9uIE51bWJlcgoKCmBgYHtyfQoKIyBOw6F2cmhvdsOhIG1hdGljYSBYIGJleiBpbnRlcmNlcHR1ClggPC0gbW9kZWwubWF0cml4KG1vZGVsKVssIC0xLCBkcm9wID0gRkFMU0VdCgojIyAoQSkgS2FwcGEgYmV6IMWha8OhbG92YW5pYQprYXBwYV91bnNjYWxlZCA8LSBrYXBwYShYKQoKIyMgKEIpIEthcHBhIHBvIMWhdGFuZGFyZGl6w6FjaWkgKHNjYWxlID0gVFJVRSkKWHogPC0gc2NhbGUoWCwgY2VudGVyID0gVFJVRSwgc2NhbGUgPSBUUlVFKQprYXBwYV9zY2FsZWQgPC0ga2FwcGEoWHopCgojIyAoQykgQ29uZGl0aW9uIG51bWJlciBjZXogdmxhc3Ruw6kgxI3DrXNsYQpYdFggPC0gdChYeikgJSolIFh6CmVpZ192YWxzIDwtIGVpZ2VuKFh0WCwgc3ltbWV0cmljID0gVFJVRSwgb25seS52YWx1ZXMgPSBUUlVFKSR2YWx1ZXMKY29uZGl0aW9uX251bWJlciA8LSBzcXJ0KG1heChlaWdfdmFscykgLyBtaW4oZWlnX3ZhbHMpKQoKa2FwcGFfdW5zY2FsZWQKa2FwcGFfc2NhbGVkCmNvbmRpdGlvbl9udW1iZXIKCmBgYAoKSG9kbm90eSBDb25kaXRpb24gTnVtYmVyIHVrYXp1asO6IHZlxL5taSBwcmlhem5pdsO6IHNpdHXDoWNpdSB6IGjEvmFkaXNrYSBtdWx0aWtvbGluZWFyaXR5LiBOZcWha8OhbG92YW7DoSB2ZXJ6aWEgKDczMC44NSkgamUgZXh0csOpbW5lIHZ5c29rw6EsIG5vIHTDoXRvIGhvZG5vdGEgc2EgbmVpbnRlcnByZXR1amUsIHByZXRvxb5lIGplIG92cGx5dm5lbsOhIHJvemRpZWxueW1pIGplZG5vdGthbWkgcHJlbWVubsO9Y2guIFJvemhvZHVqw7pjZSBzw7ogxaFrw6Fsb3ZhbsOpIHVrYXpvdmF0ZWxlOiBrYXBwYV9zY2FsZWQgPSAzLjQ3IGEgYWx0ZXJuYXTDrXZuZSB2eXBvxI3DrXRhbsO9IGNvbmRpdGlvbl9udW1iZXIgPSAzLjU1LiBPYmUgaG9kbm90eSBzw7ogaGxib2tvIHBvZCBocmFuaWNvdSAxMCwga3RvcsOhIHNhIMWhdGFuZGFyZG5lIHBvdmHFvnVqZSB6YSBsaW1pdCwgcHJpIGt0b3JvbSBtdWx0aWtvbGluZWFyaXRhIHphxI3DrW5hIGJ5xaUgcHJvYmzDqW1vbS4gVsO9c2xlZGt5IHByZXRvIGphc25lIG5hem5hxI11asO6LCDFvmUgbWVkemkgcHJlbWVubsO9bWkgdiBtb2RlbGkgbmVleGlzdHVqZSDFvmlhZG5hIHJlbGV2YW50bsOhIGxpbmXDoXJuYSB6w6F2aXNsb3PFpSwga3RvcsOhIGJ5IG5hcsO6xaFhbGEgc3RhYmlsaXR1IG9kaGFkb3YuIFRha8OpdG8gbsOtemtlIGtvbmRpxI1uw6kgxI3DrXNsYSBwb3R2cmR6dWrDuiwgxb5lIG1vZGVsIGplIGRvYnJlIGlkZW50aWZpa292YW7DvSBhIHJlZ3Jlc27DqSBrb2VmaWNpZW50eSBzw7ogc3BvxL5haGxpdsOpIGEgbmVjaXRsaXbDqSBuYSBtYWzDqSB6bWVueSB2IMO6ZGFqb2NoLiBaw6Fyb3ZlxYggdG8gZG9wxLrFiGEgemlzdGVuaWEgeiBWSUYsIGt0b3LDqSBib2xpIHRha3RpZcW+IG7DrXprZSwgdGFrxb5lIG9iYSBkaWFnbm9zdGlja8OpIHByw61zdHVweSBzYSBuYXZ6w6Fqb20gcG90dnJkenVqw7ouIE1vZGVsIGplIHRlZGEgeiBwb2jEvmFkdSBtdWx0aWtvbGluZWFyaXR5IMO6cGxuZSBiZXpwcm9ibMOpbW92w70uCgojIDguIFZ5bmVjaGFuaWUgcHJlbWVubsO9Y2gKCmBgYHtyfQojIE1vZGVsIGJleiBMb2dHRFBwYyAobmFqdnnFocWhw60gVklGKQptb2RlbF9ub0dEUCA8LSBsbShMaWZlTGFkZGVyIH4gSGVhbHRoeUxFICsgU29jaWFsU3VwcG9ydCwKICAgICAgICAgICAgICAgICAgZGF0YSA9IHVkYWplKQpzdW1tYXJ5KG1vZGVsX25vR0RQKQoKIyBNb2RlbCBiZXogSGVhbHRoeUxFCm1vZGVsX25vSEUgPC0gbG0oTGlmZUxhZGRlciB+IExvZ0dEUHBjICsgU29jaWFsU3VwcG9ydCwKICAgICAgICAgICAgICAgICBkYXRhID0gdWRhamUpCnN1bW1hcnkobW9kZWxfbm9IRSkKCiMgTW9kZWwgYmV6IFNvY2lhbFN1cHBvcnQKbW9kZWxfbm9TUyA8LSBsbShMaWZlTGFkZGVyIH4gTG9nR0RQcGMgKyBIZWFsdGh5TEUsCiAgICAgICAgICAgICAgICAgZGF0YSA9IHVkYWplKQpzdW1tYXJ5KG1vZGVsX25vU1MpCmBgYAoKUHJpIHZ5bmVjaMOhdmFuw60gcHJlbWVubsO9Y2ggc2EgdWthenVqZSwgxb5lIHbFoWV0a3kgdHJpIGR2b2pwcmVtZW5uw6kgbW9kZWx5IG9zdMOhdmFqw7ogxaF0YXRpc3RpY2t5IHbDvXpuYW1uw6ksIG5vIGljaCB2eXN2ZXTEvm92YWNpYSBzaWxhIHNhIG9kbGnFoXVqZS4gTW9kZWwgYmV6IExvZ0dEUHBjICh0LiBqLiBIZWFsdGh5TEUgKyBTb2NpYWxTdXBwb3J0KSBtw6EgbmFqbmnFvsWhaXUgdnlzdmV0bGVub3PFpSwgUsKyID0gMC42MzQsIMSNbyB6bmFtZW7DoSwgxb5lIG9kc3Ryw6FuZW5pZSBla29ub21pY2tlaiBwcmVtZW5uZWogem5pxb51amUga3ZhbGl0dSBtb2RlbHUgbmFqdmlhYy4gTW9kZWwgYmV6IEhlYWx0aHlMRSAoTG9nR0RQcGMgKyBTb2NpYWxTdXBwb3J0KSBzaSB6YWNob3bDoXZhIHZlxL5taSB2eXNva8OpIFLCsiA9IDAuNjY4LCB0ZWRhIHRha21lciBpZGVudGlja8OpIGFrbyBww7R2b2Ruw70gdHJvanByZW1lbm7DvSBtb2RlbCwgxI1vIG5hem5hxI11amUsIMW+ZSBrb21iaW7DoWNpYSBla29ub21pY2vDqWhvIHbDvWtvbnUgYSBzb2Npw6FsbmVqIG9wb3J5IHphY2h5dMOhdmEgdsOkxI3FoWludSB2YXJpYWJpbGl0eSBMaWZlIExhZGRlci4gTW9kZWwgYmV6IFNvY2lhbFN1cHBvcnQgKExvZ0dEUHBjICsgSGVhbHRoeUxFKSBtw6EgUsKyID0gMC42MjUsIMSNbyBqZSBuYWpuacW+xaFpYSBob2Rub3RhIHpvIHbFoWV0a8O9Y2ggcG9yb3Zuw6F2YW7DvWNoIG1vZGVsb3YsIMSNbyBwb3R2cmR6dWplLCDFvmUgU29jaWFsU3VwcG9ydCBqZSBrxL7DusSNb3bDvW0gcmVncmVzb3JvbS4gWiBwb2jEvmFkdSBzaWxuw71jaCBlZmVrdG92IG9zdMOhdmEgU29jaWFsU3VwcG9ydCBuYWpkb21pbmFudG5lasWhb3UgcHJlbWVubm91IGFqIHYgZHZvanByZW1lbm7DvWNoIG1vZGVsb2NoLCBzIHZ5c29rw71taSB0LWhvZG5vdGFtaSBhIHN0YWJpbG7DvW0ga29lZmljaWVudG9tLiBMb2dHRFBwYyBzaSB0YWt0aWXFviB6YWNob3bDoXZhIHZlxL5taSBzaWxuw70gdnBseXYgYSB2eXNva8O6IMWhdGF0aXN0aWNrw7ogdsO9em5hbW5vc8WlLCB6YXRpYcS+IMSNbyBIZWFsdGh5TEUgbcOhIG5hanNsYWLFocOtIHJlbGF0w612bnkgcHLDrXNwZXZvay4gQ2Vsa292byBtb8W+bm8ga29uxaF0YXRvdmHFpSwgxb5lIG5hanbDpMSNxaHDrSBwb2tsZXMgdnlzdmV0bGVub3N0aSBuYXN0w6F2YSBwbyBvZHN0csOhbmVuw60gU29jaWFsU3VwcG9ydCwgxI1vIHBvdHZyZHp1amUgamVqIGNlbnRyw6FsbmUgcG9zdGF2ZW5pZSB2IG1vZGVsaSBzdWJqZWt0w612bmVobyDFocWlYXN0aWEuIE1vZGVsIGJleiBIZWFsdGh5TEUgcHJpbsOhxaFhIG5ham1lbsWhaXUgc3RyYXR1IFLCsiwgxI1vIG5hem5hxI11amUsIMW+ZSBla29ub21pY2vDoSDDunJvdmXFiCBhIHNvY2nDoWxuYSBvcG9yYSBzcG9sdSBuZXPDuiBuYWp2w6TEjcWhaXUgxI1hc8WlIGluZm9ybcOhY2llIG8gTGlmZSBMYWRkZXIuIFbDvXNsZWRreSB0ZWRhIHVrYXp1asO6LCDFvmUgYWsgYnkgc2EgbWFsYSBuZWpha8OhIHByZW1lbm7DoSB2eW5lY2hhxaUsIG5ham1lbsWhaXUgxaFrb2R1IHNww7Rzb2LDrSBvZHN0csOhbmVuaWUgSGVhbHRoeUxFLCB6YXRpYcS+IMSNbyB2eW5lY2hhbmllIFNvY2lhbFN1cHBvcnQgYWxlYm8gTG9nR0RQcGMgdsO9cmF6bmVqxaFpZSB6bmnFvnVqZSBrdmFsaXR1IG1vZGVsdS4KCiMgOS4gxaBrw6Fsb3ZhbmllCgpgYGB7cn0KIyBWeXR2b3JlbmllIMWha8OhbG92YW7DvWNoIHByZW1lbm7DvWNoCnVkYWplJExvZ0dEUHBjX2MgICAgIDwtIHNjYWxlKHVkYWplJExvZ0dEUHBjLCBjZW50ZXIgPSBUUlVFLCBzY2FsZSA9IFRSVUUpCnVkYWplJEhlYWx0aHlMRV9jICAgIDwtIHNjYWxlKHVkYWplJEhlYWx0aHlMRSwgY2VudGVyID0gVFJVRSwgc2NhbGUgPSBUUlVFKQp1ZGFqZSRTb2NpYWxTdXBwb3J0X2MgPC0gc2NhbGUodWRhamUkU29jaWFsU3VwcG9ydCwgY2VudGVyID0gVFJVRSwgc2NhbGUgPSBUUlVFKQoKIyBNb2RlbCBzbyDFoWvDoWxvdmFuw71taSBwcmVtZW5uw71taQptb2RlbF9zY2FsZWQgPC0gbG0oTGlmZUxhZGRlciB+IExvZ0dEUHBjX2MgKyBIZWFsdGh5TEVfYyArIFNvY2lhbFN1cHBvcnRfYywKICAgICAgICAgICAgICAgICAgIGRhdGEgPSB1ZGFqZSkKc3VtbWFyeShtb2RlbF9zY2FsZWQpCgojIFZJRiBwbyDFoWvDoWxvdmFuw60KdmlmKG1vZGVsX3NjYWxlZCkKCmBgYArFoGvDoWxvdmFuw70gbW9kZWwgdWthenVqZSwgxb5lIHBvIGNlbnRyw6FjaWkgYSDFoXRhbmRhcmRpesOhY2lpIHByZW1lbm7DvWNoIHNhIG5lbWVuw60gaWNoIMWhdGF0aXN0aWNrw6EgdsO9em5hbW5vc8WlIGFuaSBzbWVyIHZwbHl2dSwgbm8gbWVuaWEgc2EgbnVtZXJpY2vDqSBob2Rub3R5IGtvZWZpY2llbnRvdiwga2XEj8W+ZSB2xaFldGt5IHJlZ3Jlc29yeSBzw7ogdGVyYXogdnlqYWRyZW7DqSB2IMWhdGFuZGFyZG7DvWNoIG9kY2jDvWxrYWNoLiBMb2dHRFBwY19jIG9zdMOhdmEgc2lsbsO9bSBhIMWhdGF0aXN0aWNreSB2w716bmFtbsO9bSBwcmVkaWt0b3JvbSBzcG9rb2pub3N0aSwgcHJpxI1vbSBqZWhvIGtvZWZpY2llbnQgMC40NDUgbmF6bmHEjXVqZSwgxb5lIHp2w73FoWVuaWUgZWtvbm9taWNrZWogw7pyb3ZuZSBvIGplZG51IMWhdGFuZGFyZG7DuiBvZGNow71sa3UgenZ5xaF1amUgTGlmZSBMYWRkZXIgbyB0YWttZXIgcG9sb3ZpY3UgYm9kdS4gSGVhbHRoeUxFX2MgbcOhIHBvIMWha8OhbG92YW7DrSBrb2VmaWNpZW50IDAuMjE5LCDEjW8gem5hbWVuw6EsIMW+ZSBrcmFqaW7DoW0gcyB2w71yYXpuZSB2ecWhxaFvdSBkxLrFvmtvdSDFvml2b3RhIG5hcmFzdMOhIHNwb2tvam5vc8WlIG8gcHJpYmxpxb5uZSBww6R0aW51IGJvZHUgcHJpIHptZW5lIG8gamVkbnUgxaF0YW5kYXJkbsO6IG9kY2jDvWxrdS4gU29jaWFsU3VwcG9ydF9jIG3DoSBuYcSPYWxlaiBuYWpzaWxuZWrFocOtIGVmZWt0ICgwLjM2NCksIMSNbyBwb3R2cmR6dWplIGplaG8gZG9taW5hbnRuw6kgcG9zdGF2ZW5pZSBtZWR6aSB2eXN2ZXTEvnVqw7pjaW1pIHByZW1lbm7DvW1pLiBIb2Rub3R5IFZJRiBwbyDFoWvDoWxvdmFuw60gem9zdMOhdmFqw7ogdmXEvm1pIG7DrXprZSwgdGFrxb5lIMWha8OhbG92YW5pZSBuZW9kaGFsaWxvIMW+aWFkbnUgbm92w7ogZm9ybXUgbXVsdGlrb2xpbmVhcml0eSwgYWxlIG5hb3BhayBwb3R2cmRpbG8gc3RhYmlsaXR1IG1vZGVsdS4gUsKyIGFqIEFkanVzdGVkIFLCsiBzYSBuZXptZW5pbGksIMSNbyBkb2thenVqZSwgxb5lIMWha8OhbG92YW5pZSBuZW1lbsOtIHZ5c3ZldMS+b3ZhY2l1IHNpbHUgbW9kZWx1LCBpYmEgamVobyDEjcOtc2VsbsO6IHJlcHJlemVudMOhY2l1LiBWZcS+bWkgdsO9cmF6bmUgc2EgemxlcMWhaWwgQ29uZGl0aW9uIE51bWJlciwga3RvcsO9IGtsZXNvbCBuYSBob2Rub3R5IG9rb2xvIDMuNSwgxI1vIGplIGplZG5vem5hxI1uw71tIHpuYWtvbSBhYnNlbmNpZSBtdWx0aWtvbGluZWFyaXR5LiDFoGvDoWxvdmFuaWUgcHJldG8gemxlcMWhdWplIG51bWVyaWNrw7ogc3RhYmlsaXR1IGEgdW1vxb7FiHVqZSBqZWRub2R1Y2jFoWllIHBvcm92bsOhdmFuaWUgcmVsYXTDrXZuZWogc2lseSByZWdyZXNvcm92IGJleiB0b2hvLCBhYnkgem5pxb5vdmFsbyBpbnRlcnByZXRvdmF0ZcS+bm9zxaUgdsO9c2xlZGtvdi4gQ2Vsa292byDFoWvDoWxvdmFuw70gbW9kZWwgcG90dnJkenVqZSBww7R2b2Ruw6kgemlzdGVuaWEsIHByacSNb20gamFzbmVqxaFpZSB1a2F6dWplLCBrdG9yw6kgcHJlbWVubsOpIG1hasO6IG5hIExpZmUgTGFkZGVyIG5hanNpbG5lasWhw60gxaF0YW5kYXJkaXpvdmFuw70gdnBseXYuCgojIDEwLiBDb25kaXRpb24gbnVtYmVyIHBvIMWha8OhbG92YW7DrQpgYGB7cn0KWCA8LSBtb2RlbC5tYXRyaXgobW9kZWxfc2NhbGVkKVssIC0xXQpYdFggPC0gdChYKSAlKiUgWAplaWcgPC0gZWlnZW4oWHRYKQoKY29uZGl0aW9uX251bWJlcl9zY2FsZWQgPC0gc3FydChtYXgoZWlnJHZhbHVlcykgLyBtaW4oZWlnJHZhbHVlcykpCmNvbmRpdGlvbl9udW1iZXJfc2NhbGVkCgpgYGAKCsWga8OhbG92YW7DvSBtb2RlbCB1a2F6dWplLCDFvmUgcG8gY2VudHLDoWNpaSBhIMWhdGFuZGFyZGl6w6FjaWkgcHJlbWVubsO9Y2ggc2EgbmVtZW7DrSBpY2ggxaF0YXRpc3RpY2vDoSB2w716bmFtbm9zxaUgYW5pIHNtZXIgdnBseXZ1LCBubyBtZW5pYSBzYSBudW1lcmlja8OpIGhvZG5vdHkga29lZmljaWVudG92LCBrZcSPxb5lIHbFoWV0a3kgcmVncmVzb3J5IHPDuiB0ZXJheiB2eWphZHJlbsOpIHYgxaF0YW5kYXJkbsO9Y2ggb2RjaMO9bGthY2guIExvZ0dEUHBjX2Mgb3N0w6F2YSBzaWxuw71tIGEgxaF0YXRpc3RpY2t5IHbDvXpuYW1uw71tIHByZWRpa3Rvcm9tIHNwb2tvam5vc3RpLCBwcmnEjW9tIGplaG8ga29lZmljaWVudCAwLjQ0NSBuYXpuYcSNdWplLCDFvmUgenbDvcWhZW5pZSBla29ub21pY2tlaiDDunJvdm5lIG8gamVkbnUgxaF0YW5kYXJkbsO6IG9kY2jDvWxrdSB6dnnFoXVqZSBMaWZlIExhZGRlciBvIHRha21lciBwb2xvdmljdSBib2R1LiBIZWFsdGh5TEVfYyBtw6EgcG8gxaFrw6Fsb3ZhbsOtIGtvZWZpY2llbnQgMC4yMTksIMSNbyB6bmFtZW7DoSwgxb5lIGtyYWppbsOhbSBzIHbDvXJhem5lIHZ5xaHFoW91IGTEusW+a291IMW+aXZvdGEgbmFyYXN0w6Egc3Bva29qbm9zxaUgbyBwcmlibGnFvm5lIHDDpHRpbnUgYm9kdSBwcmkgem1lbmUgbyBqZWRudSDFoXRhbmRhcmRuw7ogb2RjaMO9bGt1LiBTb2NpYWxTdXBwb3J0X2MgbcOhIG5hxI9hbGVqIG5hanNpbG5lasWhw60gZWZla3QgKDAuMzY0KSwgxI1vIHBvdHZyZHp1amUgamVobyBkb21pbmFudG7DqSBwb3N0YXZlbmllIG1lZHppIHZ5c3ZldMS+dWrDumNpbWkgcHJlbWVubsO9bWkuIEhvZG5vdHkgVklGIHBvIMWha8OhbG92YW7DrSB6b3N0w6F2YWrDuiB2ZcS+bWkgbsOtemtlLCB0YWvFvmUgxaFrw6Fsb3ZhbmllIG5lb2RoYWxpbG8gxb5pYWRudSBub3bDuiBmb3JtdSBtdWx0aWtvbGluZWFyaXR5LCBhbGUgbmFvcGFrIHBvdHZyZGlsbyBzdGFiaWxpdHUgbW9kZWx1LiBSwrIgYWogQWRqdXN0ZWQgUsKyIHNhIG5lem1lbmlsaSwgxI1vIGRva2F6dWplLCDFvmUgxaFrw6Fsb3ZhbmllIG5lbWVuw60gdnlzdmV0xL5vdmFjaXUgc2lsdSBtb2RlbHUsIGliYSBqZWhvIMSNw61zZWxuw7ogcmVwcmV6ZW50w6FjaXUuIFZlxL5taSB2w71yYXpuZSBzYSB6bGVwxaFpbCBDb25kaXRpb24gTnVtYmVyLCBrdG9yw70ga2xlc29sIG5hIGhvZG5vdHkgb2tvbG8gMy41LCDEjW8gamUgamVkbm96bmHEjW7DvW0gem5ha29tIGFic2VuY2llIG11bHRpa29saW5lYXJpdHkuIMWga8OhbG92YW5pZSBwcmV0byB6bGVwxaF1amUgbnVtZXJpY2vDuiBzdGFiaWxpdHUgYSB1bW/FvsWIdWplIGplZG5vZHVjaMWhaWUgcG9yb3Zuw6F2YW5pZSByZWxhdMOtdm5laiBzaWx5IHJlZ3Jlc29yb3YgYmV6IHRvaG8sIGFieSB6bmnFvm92YWxvIGludGVycHJldG92YXRlxL5ub3PFpSB2w71zbGVka292LiBDZWxrb3ZvIMWha8OhbG92YW7DvSBtb2RlbCBwb3R2cmR6dWplIHDDtHZvZG7DqSB6aXN0ZW5pYSwgcHJpxI1vbSBqYXNuZWrFoWllIHVrYXp1amUsIGt0b3LDqSBwcmVtZW5uw6kgbWFqw7ogbmEgTGlmZSBMYWRkZXIgbmFqc2lsbmVqxaHDrSDFoXRhbmRhcmRpem92YW7DvSB2cGx5di4KCiMgMTEuIMOacHJhdmEgcHJlbWVubmVqIGJleiBzdHJhdHkgaW50ZXJwcmV0w6FjaWUKCmBgYHtyfQp1ZGFqZSRIZWFsdGh5TEUxMCA8LSB1ZGFqZSRIZWFsdGh5TEUgLyAxMApoZWFkKHVkYWplKQoKbW9kZWxfSEUxMCA8LSBsbShMaWZlTGFkZGVyIH4gTG9nR0RQcGMgKyBIZWFsdGh5TEUxMCArIFNvY2lhbFN1cHBvcnQsCiAgICAgICAgICAgICAgICAgZGF0YSA9IHVkYWplKQpzdW1tYXJ5KG1vZGVsX0hFMTApCnZpZihtb2RlbF9IRTEwKQoKWCA8LSBtb2RlbC5tYXRyaXgobW9kZWxfSEUxMClbLCAtMV0KWHRYIDwtIHQoWCkgJSolIFgKZWlnIDwtIGVpZ2VuKFh0WCkKCmNvbmRpdGlvbl9udW1iZXJfSEUxMCA8LSBzcXJ0KG1heChlaWckdmFsdWVzKSAvIG1pbihlaWckdmFsdWVzKSkKY29uZGl0aW9uX251bWJlcl9IRTEwCgpgYGAKCsOacHJhdmEgcHJlbWVubmVqIEhlYWx0aHlMRSBuYSBIZWFsdGh5TEUxMCB6YWNob3bDoXZhIGludGVycHJldG92YXRlxL5ub3PFpSBtb2RlbHUgYSB6w6Fyb3ZlxYggem5pxb51amUgbnVtZXJpY2vDqSByb3pkaWVseSBtZWR6aSByZWdyZXNvcm1pLCBrZcSPxb5lIHByZW1lbm7DoSBkxLrFvmt5IMW+aXZvdGEgYm9sYSBww7R2b2RuZSB2eWphZHJlbsOhIHYgZGVzaWF0a2FjaCByb2tvdi4gS29lZmljaWVudCBwcmkgSGVhbHRoeUxFMTAgbcOhIHRlcmF6IGhvZG5vdHUgMC4zMTksIMSNbyB6bmFtZW7DoSwgxb5lIHp2w73FoWVuaWUgb8SNYWvDoXZhbmVqIGTEusW+a3kgxb5pdm90YSBvIDEwIHJva292IHZlZGllIGsgbsOhcmFzdHUgTGlmZSBMYWRkZXIgcHJpYmxpxb5uZSBvIDAuMzIgYm9kdSwgxI1pxb5lIGludGVycHJldMOhY2lhIGplIGludHVpdMOtdm5hIGEgesOhcm92ZcWIIGJsacW+xaFpYSByZcOhbG55bSByb3pkaWVsb20gbWVkemkga3JhamluYW1pLiBPc3RhdG7DqSBrb2VmaWNpZW50eSBzYSBwcmFrdGlja3kgbmV6bWVuaWxpLCDEjW8gcG90dnJkenVqZSwgxb5lIHTDoXRvIMO6cHJhdmEgbmVtZW7DrSDFoXRydWt0w7pydSB2esWlYWhvdiB2IG1vZGVsaSwgaWJhIHNwcsOtamVtxYh1amUgaW50ZXJwcmV0w6FjaXUuIFZJRiBob2Rub3R5IHpvc3RhbGkgdG90b8W+bsOpLCDEjW8gem5hbWVuw6EsIMW+ZSBhbmkgdMOhdG8gdHJhbnNmb3Jtw6FjaWEgbmV6dnnFoXVqZSBtdWx0aWtvbGluZWFyaXR1IGEgcmVncmVzbsOpIGtvZWZpY2llbnR5IHpvc3TDoXZhasO6IHN0YWJpbG7DqS4gQ29uZGl0aW9uIE51bWJlciBrbGVzb2wgbmEgw7pyb3ZlxYggcHJpYmxpxb5uZSAxMzAsIMSNbyBqZSBzw61jZSB2w71yYXpuZSBsZXDFoWllIGFrbyBww7R2b2Ruw6EgbmXFoWvDoWxvdmFuw6EgdmVyemlhLCBubyBzdMOhbGUgc2EgbmFjaMOhZHphIG5hIGhyYW5pY2kgbWVkemkgbsOtemtvdSBhIG1pZXJub3UgbXVsdGlrb2xpbmVhcml0b3UuIFRlbnRvIHbDvXNsZWRvayB1a2F6dWplLCDFvmUgc2Ftb3Ruw6Egem1lbmEgamVkbm90aWVrIHpsZXDFoXVqZSBudW1lcmlja8O6IHN0YWJpbGl0dSBtb2RlbHUsIGFsZSBuZXJpZcWhaSBtdWx0aWtvbGluZWFyaXR1IHRhayDDusSNaW5uZSBha28ga29tcGxldG7DqSDFoWvDoWxvdmFuaWUuIE5hcHJpZWsgdG9tdSB2xaFhayB1cHJhdmVuw70gbW9kZWwgemFjaG92w6F2YSB2w71ib3Juw7ogaW50ZXJwcmV0b3ZhdGXEvm5vc8WlLCByb3ZuYWvDuiDFoXRhdGlzdGlja8O6IHbDvXpuYW1ub3PFpSBhaiBpZGVudGlja8O6IMO6cm92ZcWIIHZ5c3ZldGxlbmVqIHZhcmlhYmlsaXR5IChSwrIg4omIIDAuNjgpIGFrbyBww7R2b2Ruw70gbW9kZWwuIMOacHJhdmEgcHJlbWVubmVqIGplIHByZXRvIHZob2Ruw6EgdiBzaXR1w6FjacOhY2gsIGtlxI8gamUgcHJpb3JpdG91IHBvcm92bmF0ZcS+bm9zxaUgamVkbm90aWVrIGEgcHJlaMS+YWRuw6EgZWtvbm9taWNrw6EgaW50ZXJwcmV0w6FjaWEgcmVncmVzbsO9Y2gga29lZmljaWVudG92LgoKIyAxMi4gWsOhdmVyCgpOYSB6w6FrbGFkZSB2xaFldGvDvWNoIHZ5a29uYW7DvWNoIGFuYWzDvXogbW/Fvm5vIGtvbsWhdGF0b3ZhxaUsIMW+ZSByZWdyZXNuw70gbW9kZWwgdnlzdmV0xL51asO6Y2kgc3Bva29qbm9zxaUgc28gxb5pdm90b20gamUgxaF0YXRpc3RpY2t5IHNpbG7DvSwgc3RhYmlsbsO9IGEgZG9icmUgxaFwZWNpZmlrb3ZhbsO9LiBaw6FrbGFkbsO9IG1vZGVsIGFqIHbFoWV0a3kgamVobyBtb2RpZmlrw6FjaWUgcHJldWvDoXphbGksIMW+ZSBMb2dHRFBwYywgSGVhbHRoeUxFIGEgU29jaWFsU3VwcG9ydCBtYWrDuiB2w71yYXpuw70gYSDFoXRhdGlzdGlja3kgdsO9em5hbW7DvSBwb3ppdMOtdm55IHZwbHl2IG5hIExpZmUgTGFkZGVyLCBwcmnEjW9tIG5hamRvbWluYW50bmVqxaFvdSBwcmVtZW5ub3Ugem9zdMOhdmEgc29jacOhbG5hIG9wb3JhLiBEaWFnbm9zdGlja8OpIHVrYXpvdmF0ZWxlIG11bHRpa29saW5lYXJpdHkg4oCTIFZJRiBhaiBDb25kaXRpb24gTnVtYmVyIOKAkyBqZWRub3puYcSNbmUgcG90dnJkaWxpLCDFvmUgbWVkemkgcHJlbWVubsO9bWkgbmVleGlzdHVqZSBwcm9ibMOpbW92w6EgbGluZcOhcm5hIHrDoXZpc2xvc8WlIGEgbW9kZWwgbmV0cnDDrSBtdWx0aWtvbGluZWFyaXRvdSBhbmkgcHJpIHBvdcW+aXTDrSBww7R2b2Ruw71jaCwgYW5pIMWha8OhbG92YW7DvWNoIHZlbGnEjcOtbi4gVnluZWNow6F2YW5pZSBqZWRub3RsaXbDvWNoIHByZW1lbm7DvWNoIHVrw6F6YWxvLCDFvmUgbmFqdsOkxI3FoWl1IHN0cmF0dSB2eXN2ZXTEvm92YWNlaiBzY2hvcG5vc3RpIHNww7Rzb2J1amUgb2RzdHLDoW5lbmllIFNvY2lhbFN1cHBvcnQsIHphdGlhxL4gxI1vIHZ5bmVjaGFuaWUgSGVhbHRoeUxFIG3DoSBuYWptZW7FocOtIGRvcGFkLCDEjW8gb2Ryw6HFvmEgcmVsYXTDrXZudSBzaWx1IGljaCB2esWlYWh1IGsgTGlmZSBMYWRkZXIuIMWga8OhbG92YW5pZSBwcmVtZW5uw71jaCB2w71yYXpuZSB6bGVwxaFpbG8gbnVtZXJpY2vDuiBzdGFiaWxpdHUgbW9kZWx1IGEgcG90dnJkaWxvIHJvdm5ha8OpIHNtZXJvdmFuaWUgYWogdmXEvmtvc8WlIGVmZWt0b3YsIHByacSNb20gVklGIGFqIENvbmRpdGlvbiBOdW1iZXIgem9zdGFsaSBuYSBpZGXDoWxueWNoIGhvZG5vdMOhY2guIEFsdGVybmF0w612bmEgw7pwcmF2YSBwcmVtZW5uZWogSGVhbHRoeUxFMTAgemFjaG92YWxhIGVrb25vbWlja8O6IGludGVycHJldG92YXRlxL5ub3PFpSBhIHrDoXJvdmXFiCB0dm9yaWxhIGtvbnppc3RlbnRuw6kgdsO9c2xlZGt5IHMgcMO0dm9kbsO9bSBtb2RlbG9tLiBDZWxrb3ZvIHNhIHbFoWV0a3kgcHLDrXN0dXB5IHpob2R1asO6IHYgdG9tLCDFvmUgbW9kZWwgamUgcm9idXN0bsO9LCBqZWhvIGtvZWZpY2llbnR5IHPDuiBzcG/EvmFobGl2w6kgYSBuacSNIG5lbmFzdmVkxI11amUgcHLDrXRvbW5vc3RpIG11bHRpa29saW5lYXJpdHksIGt0b3LDoSBieSBvaHJvem92YWxhIGTDtHZlcnlob2Rub3PFpSBvZGhhZG92Lgo=