Questions
1. Background
Go to https://fivethirtyeight.com/features/the-ultimate-halloween-candy-power-ranking/ and watch the video and read the article.
Discuss the research question addressed in this article:
ANSWER: DATA: The data on “candy_rankings” was collected from the Federal Government Websites and New Reports based on the candies people consume or demand more during Halloween. In the data, the name of the Halloween candy is competitorname. The “candy_rankings” consists of 85 rows with 13 variables. The thirteen observed variables contained in the data are competitorname, chocolate, fruity, caramel, peanutyalmond, nougat, crispedricewafer, hard, bar, pluribus, sugarpercent, pricepercent and winpercent. The question is, “why are some candies preferred to other candies”? Is it because the candy contains chocolate, fruity, caramel, peanutyalmond, nougat or crispedricewafer? Is it because of its texture (hard or bar) or is it because of the amount (are there many in a bag?). We will run a regression a linear regression model to estimate the impact of these observable characteristics. The data was described using the R codes in the R file.
2. Data
Load the data set candy_rankings from the package fivethirtyeight. install.packages(“fivethirtyeight”) library(fivethirtyeight) data(candy_rankings) View(candy_rankings)
# ANSWER:
3. Summary Table
Create a well-formatted and informative summary statistics table. Interpret the mean of two of your variables.
# ANSWER:
library(stargazer)
Please cite as:
Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics Tables.
R package version 5.2.2. https://CRAN.R-project.org/package=stargazer
sillynames <- data.frame(candy_rankings)
stargazer(sillynames, type = "text")
===================================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
-------------------------------------------------------------------
chocolate 85 0.435 0.499 0 0 1 1
fruity 85 0.447 0.500 0 0 1 1
caramel 85 0.165 0.373 0 0 0 1
peanutyalmondy 85 0.165 0.373 0 0 0 1
nougat 85 0.082 0.277 0 0 0 1
crispedricewafer 85 0.082 0.277 0 0 0 1
hard 85 0.176 0.383 0 0 0 1
bar 85 0.247 0.434 0 0 0 1
pluribus 85 0.518 0.503 0 0 1 1
sugarpercent 85 0.479 0.283 0.011 0.220 0.732 0.988
pricepercent 85 0.469 0.286 0.011 0.255 0.651 0.976
winpercent 85 50.317 14.714 22.445 39.141 59.864 84.180
-------------------------------------------------------------------
ANSWER: From the table, we found out that there are 85 rows with 13 variables. The first column contains the variables, followed by the number of observations in each column, mean of the various variables, then the standard deviation associated with each variable, the minimum values for each variable, the 25th percentile for each variable, the 75th percentile and the maximum observation for each of the variables. The associated mean for the various variables is on the third column on the summary table. The mean is the average of all observations contained in each variable. Therefore, the mean is the weighted average. On average, taking chocolate into consideration, at least 0.435 candies contain chocolate and at least, 0.518 candies contain pluribus This applies to the mean of all other variables in the summary data.
4. Summary Graphs
Create two high-quality graphs/figures that illustrate the data in a way that is informative for the reader. Explain, in text, what these figures illustrate.
# ANSWER:
hist(candy_rankings$sugarpercent)

hist(candy_rankings$pricepercent)

# ANSWER:
boxplot(candy_rankings$sugarpercent)

boxplot(candy_rankings$pricepercent)

ANSWER:
5. Empirical Model
Write a multiple linear regression empirical model that was was estimated in the article. Intepret the coefficients in the context of the problem. What would it mean for a coefficient to be statistically significant? What is the assumptions made when using this linear model?
\[ answer \] We will create a linear regression model with winpercent as our dependent variable and independent variables (chocolate, fruity, caramel, peanutyalmondy, nougat, crispedricewafer, hard, bar and pluribus). All the independent variables are dummy variables with FALSE =0 and TRUE= 1 except winpercent, sugarpercent and pricepercent. The linear regression being considered here is the multiple linear regression. After we created the regression, we found out that the linear multiple regression model is Winpercent = B0 + B1chocolate + B2fruity + B3nougat + B4caramel + B5peanutyalmondy + B6crispedricewafer + B7hard + B8bar + B9pluribus + B10sugarpercent + B11pricepercernt + e, where e is the error term. This is the non-estimated model. There are 12 parameters, the error term, and 12 variables in this model. All of the variables on the right-hand side of the regression model are categorical in nature. The concept of a dummy variable comes into play here. The constant term is represented by the parameter B0. When all other variables are held constant, the winpercent equals B0. Holding all other variables constant, candy containing chocolate and having D equal to 1 corresponds to a B1 extra gain in total win % based on 269,000 matchups than non-chocolate candies. Moreover, candy containing fruity and having D as 1 is B2 on average more than candy that does not contain fruity. Candy that contains nougat has a D of 1 and is B3 on average higher than candy that does not contain nougat. Candy that contains caramel has a D of 1 and is B4 on average 1% more than candy that does not contain caramel for the criterion B4. Candy that contains peanutyalmondy has a D of 1 and is B5 on average 1% greater than candy that does not contain peanutyalmondy. Using the parameter B6, crispedricewafer-containing candies have a D as 1 that is B6 on average winpercent higher than non-crispedricewafer-containing candies. Candy that is hard has a D as 1 for the parameter B7, which means that it is B7 on average winpercent greater than candy that is not hard. Candies that are bars have a D of 1 and are B8 on average winpercent more than candies that are not bars for the criterion B8. For the criterion B9, candies that are one of many in a bag and have a D of 1 are B9 on average 1% greater than candies that are not one of many in a box or bag. keeping all other variables fixed, each further unit rise in sugarpercent equates to a B10 additional increase in winpercent for the parameter B10. And, assuming all other factors remain constant, each further unit increase in pricepercent equates to a B11 increase in winpercent. Since the F-statistic is 8.84, and the p-value is less than an alpha level of 0.05, the regression equation is statistically significant.
ANSWER:
6. Results
Replicate the regression table in the article. Display results in a nicely-formatted table.
# ANSWE
lm(formula=winpercent~D + J + A + P + C + R + V + E + B + sugerpercent + pricepercent,data=candy_rankings)
=============================================== Dependent variable: ————————– winpercent ———————————————– D 19.748*** (3.899)
J 9.422** (3.763)
A 2.224 (3.657)
P 10.071*** (3.616) C 0.804 (5.716)
R 8.919* (5.268)
V -6.165* (3.455)
E 0.442 (5.061)
B -0.854 (3.040)
sugarpercent 9.087* (4.659)
pricepercent -5.928 (5.513)
Constant 34.534*** (4.320) ———————————————– Observations 85 R2 0.540 Adjusted R2 0.471 Residual Std. Error 10.703 (df = 73) F Statistic 7.797*** (df = 11; 73) =============================================== Note: p<0.1; p<0.05; p<0.01
Call: lm(formula = winpercent ~ D + J + A + P + C + R + V + E + B + sugarpercent + pricepercent, data = candy_rankings) Residuals: Min 1Q Median 3Q Max - 20.2244 -6.6247 0.1986 6.8420 23.8680 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 34.5340 4.3199 7.994 1.44e-11 D 19.7481 3.8987 5.065 2.96e-06 J 9.4223 3.7630 2.504 0.01452 * A 2.2245 3.6574 0.608 0.54493 P 10.0707 3.6158 2.785 0.00681 ** C 0.8043 5.7164 0.141 0.88849 R 8.9190 5.2679 1.693 0.09470 . V -6.1653 3.4551 -1.784 0.07852 . E 0.4415 5.0611 0.087 0.93072 B -0.8545 3.0401 -0.281 0.77945 sugarpercent 9.0868 4.6595 1.950 0.05500 . pricepercent -5.9284 5.5132 -1.075 0.28578 — Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 10.7 on 73 degrees of freedom Multiple R-squared: 0.5402, Adjusted R-squared: 0.4709 F-statistic: 7.797 on 11 and 73 DF, p-value: 9.504e-09
Based on the results of our regression, the estimated model is winpercenthat = 34.5340 + 19.7481D1+9.4223D2+2.2245D3+10.0707D4+0.8043D5+8.9190D6-6.1653D7+0.4415D8- 0.8545D9+9.0868sugarperecnt-5.9284pricepercent The estimated model contains D1, D2, D3, D4, D5, D6, D7, D8 and D9 as dummy variables. ## 7. Discussion
Interpret your results from question 6. Did the model explain much of the variation in the dependent variable? Do you feel like anything may have been omitted from the regression that should have been included?
ANSWER:
At least winpercent is equal to 34.5340. Candies which contain chocolate, which have D as 1, will correspond to 19.7481 additional increase in overall win percentage according to 269,000 matchups than candies not made of chocolate. Also candy which contains fruity, which have D as 1 is 9.4223 on average winpercent more than candies which does not contain fruity. For candy which contain caramel which have a D as 1 is 2.2245 on average winpercent more than candies which do not contain caramel. For candy which contain peanutyalmondy which have a D as 1 is 10.0707 on average winpercent more than candies which do not contain peanutyalmondy. For the candy which contain nougat which have a D as 1 is 0.8043 on average winpercent more than candies which do not contain nougat. With candy which contain crispedricewafer have a D as 1 is 8.9190 on average winpercent more than candies which do not contain crispedricewafer. For candies which are hard have a D as 1 is -6.1653 on average winpercent less than candies which are not hard. For candies which are bar which have a D as 1 is 0.4415 on average winpercent more than candies which are not bars. With candy which is one of many contained in a bag or box which have a D as 1 is -0.8545 on average winpercent less than candies which do not contain one of many in a box or bag. Holding all other variables constant, each additional unit increase in sugarpercent will corresponds to 9.0868 additional increase in winpercent. And holding all other variables constant, each additional unit increase in pricepercent will corresponds to -5.9284 decrease in winpercent.
Hypothesis testing using the F-statistic H0: B0=B1=B2=B3=B4=B5=B6=B7=B8=B9=B9=B10=B11=0 H1: B0 ≠𝐵1≠𝐵2≠𝐵3≠𝐵4≠𝐵5≠𝐵6≠𝐵7≠𝐵8≠𝐵9≠𝐵10≠𝐵11≠0 F-statistic: 7.797 on 11 and 73 DF, p-value: 9.504e-09 Looking at our results for the F-statistic, which is 7.797, the p-value which is 9.504e-09 is less than an alpha level of 0.05. Since our p-value is less than the alpha level, we reject Ho and we conclude that the regression equation is statistically significant. R^2 interpretation: From our results, R^2 was 0.540. This means that 54.0% of the total variance in winpercent is explained by the model. H0: B1=0 H1: B1 ≠0 D 19.7481 3.8987 5.065 2.96e-06 Here the variable D represents chocolate, we notice that the p-value which is 2.96e-06 is less than 0.05 so we reject Ho and we conclude that the variable chocolate is statistically significant in the model. H0:B2=0 B1:B1 ≠ 0 J 9.4223 3.7630 2.504 0.01452 Here, the variable J is fruity, since the p-value is 0.01452 is less than an alpha level of 0.05, we reject HO and we conclude that fruity is statistically significant in the model. H0: B4=0 H1: B4 ≠0 P 10.0707 3.6158 2.785 0.00681 The variable P here represents peanutyalmondy. The p-value of 0.00681 is less than an alpha level of 0.05, therefore we reject Ho and we conclude that peanutyalmondy is statistically significant in the model. Looking at all the remaining variables in the data summary, they all have p-values greater than an alpha level of 0.05, so we fail to reject Ho and we conclude that caramel, nougat, hard, bar, sugarpercent, pricepercent, crispedricewafer, pluribus are all not statistically significant in the model.
LS0tDQp0aXRsZTogIlJlcGxpY2F0aW9uIEFzc2lnbm1lbnQgMSAtIENhbmR5IFJhbmtpbmdzIg0KYXV0aG9yOiAiSm9zZXBoIEFuYW5kYXVnbyBBZGFzb29nbyIgDQpkYXRlOiAiRHVlIE9jdG9iZXIgMTMsIDIwMjEgYnkgMTE6NTkgUE0gQ0RUIiANCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMgSW5zdHJ1Y3Rpb25zIGFuZCBTZXR1cCANCg0KKiBBbnN3ZXIgYWxsIHRoZSBmb2xsb3dpbmcgcXVlc3Rpb25zIGluIHRoaXMgbm90ZWJvb2sgZWl0aGVyIGZvbGxvd2luZyB0aGUgYCMgQU5TV0VSOmAgb3IgYCoqQU5TV0VSKipgIHByb21wdHMuIEZvciBtYXRoZW1hdGljYWwgZXF1YXRpb25zLCByZXBsYWNlIHRoZSB0ZXh0IGJldHdlZW4gdGhlIGAkJGAgd2l0aCB0aGUgYXBwcm9wcmlhdGUgZm9ybXVsYXMuIA0KDQoqIFVzZSBjb21wbGV0ZSBzZW50ZW5jZXMsIHByb29mLXJlYWQsIGFuZCBzaG93IGFsbCBuZWNlc3Nhcnkgd29yay4gQWZ0ZXIgeW91IGZpbmlzaCwgbWFrZSBzdXJlIHRvIHJlLXJ1biBhbGwgdGhlIFItY2h1bmtzIGJlZm9yZSBjbGlja2luZyAiUHJldmlldyIgYW5kIHN1Ym1pdHRpbmcuIFlvdSBjYW4gZG8gdGhpcyBieSBjbGlja2luZyB0aGUgZHJvcGRvd24gbWVudSB0aGF0IHNheXMgIlJ1biIgaW4gdGhlIHRvb2xiYXIgYWJvdmUgYW5kIHRoZW4gc2VsZWN0aW5nICJSdW4gQWxsIi4gVGhlcmUgaXMgYSBub24temVybyBwcm9iYWJpbGl0eSB0aGF0IERyLiBTZWxieSB3aWxsIGRvd25sb2FkIHRoZSBSbWQgZmlsZSBhbmQgdHJ5IHRvIHJ1biBpdCBvbiBoZXIgY29tcHV0ZXIuIElmIGl0IGRvZXMgbm90IHJ1biBmcm9tIHRvcCB0byBib3R0b20sIHNoZSB3aWxsIG5vdCBhY2NlcHQgdGhlIGFzc2lnbm1lbnQuIA0KDQoqIFN1Ym1pdCB5b3VyIC5uYi5odG1sIGZpbGUgb24gQ2FudmFzIGJ5IHRoZSBkYXRlIGFuZCB0aW1lIGxpc3RlZCBhYm92ZS4NCg0KKiBMYXN0bHksIHBvc3QgYWxsIGNvZGUgdXNlZCB0byBsb2FkIG5lY2Vzc2FyeSBsaWJyYXJpZXMgaW4gdGhlIGZvbGxvd2luZyBSLWNodW5rLiANCg0KYGBge3J9DQojIEFOU1dFUjogDQppbnN0YWxsLnBhY2thZ2VzKCJmaXZldGhpcnR5ZWlnaHQiKSANCmxpYnJhcnkoZml2ZXRoaXJ0eWVpZ2h0KSANCmRhdGEoY2FuZHlfcmFua2luZ3MpDQpWaWV3KGNhbmR5X3JhbmtpbmdzKQ0KYGBgDQoNCg0KIyBRdWVzdGlvbnMNCg0KIyMgMS4gKkJhY2tncm91bmQqIA0KR28gdG8gaHR0cHM6Ly9maXZldGhpcnR5ZWlnaHQuY29tL2ZlYXR1cmVzL3RoZS11bHRpbWF0ZS1oYWxsb3dlZW4tY2FuZHktcG93ZXItcmFua2luZy8gYW5kIHdhdGNoIHRoZSB2aWRlbyBhbmQgcmVhZCB0aGUgYXJ0aWNsZS4gDQoNCkRpc2N1c3MgdGhlIHJlc2VhcmNoIHF1ZXN0aW9uIGFkZHJlc3NlZCBpbiB0aGlzIGFydGljbGU6DQoNCioqQU5TV0VSOioqDQpEQVRBOiBUaGUgZGF0YSBvbiDigJxjYW5keV9yYW5raW5nc+KAnSB3YXMgY29sbGVjdGVkIGZyb20gdGhlIEZlZGVyYWwgR292ZXJubWVudCBXZWJzaXRlcyBhbmQgTmV3IFJlcG9ydHMgYmFzZWQgb24gdGhlIGNhbmRpZXMgcGVvcGxlIGNvbnN1bWUgb3IgZGVtYW5kIG1vcmUgZHVyaW5nIEhhbGxvd2Vlbi4gSW4gdGhlIGRhdGEsIHRoZSBuYW1lIG9mIHRoZSBIYWxsb3dlZW4gY2FuZHkgaXMgY29tcGV0aXRvcm5hbWUuIFRoZSDigJxjYW5keV9yYW5raW5nc+KAnSBjb25zaXN0cyBvZiA4NSByb3dzIHdpdGggMTMgdmFyaWFibGVzLiBUaGUgdGhpcnRlZW4gb2JzZXJ2ZWQgdmFyaWFibGVzIGNvbnRhaW5lZCBpbiB0aGUgZGF0YSBhcmUgY29tcGV0aXRvcm5hbWUsIGNob2NvbGF0ZSwgZnJ1aXR5LCBjYXJhbWVsLCBwZWFudXR5YWxtb25kLCBub3VnYXQsIGNyaXNwZWRyaWNld2FmZXIsIGhhcmQsIGJhciwgcGx1cmlidXMsIHN1Z2FycGVyY2VudCwgcHJpY2VwZXJjZW50IGFuZCB3aW5wZXJjZW50LiBUaGUgcXVlc3Rpb24gaXMsIOKAnHdoeSBhcmUgc29tZSBjYW5kaWVzIHByZWZlcnJlZCB0byBvdGhlciBjYW5kaWVz4oCdPyBJcyBpdCBiZWNhdXNlIHRoZSBjYW5keSBjb250YWlucyBjaG9jb2xhdGUsIGZydWl0eSwgY2FyYW1lbCwgcGVhbnV0eWFsbW9uZCwgbm91Z2F0IG9yIGNyaXNwZWRyaWNld2FmZXI/IElzIGl0IGJlY2F1c2Ugb2YgaXRzIHRleHR1cmUgKGhhcmQgb3IgYmFyKSBvciBpcyBpdCBiZWNhdXNlIG9mIHRoZSBhbW91bnQgKGFyZSB0aGVyZSBtYW55IGluIGEgYmFnPykuIFdlIHdpbGwgcnVuIGEgcmVncmVzc2lvbiBhIGxpbmVhciByZWdyZXNzaW9uIG1vZGVsIHRvIGVzdGltYXRlIHRoZSBpbXBhY3Qgb2YgdGhlc2Ugb2JzZXJ2YWJsZSBjaGFyYWN0ZXJpc3RpY3MuIFRoZSBkYXRhIHdhcyBkZXNjcmliZWQgdXNpbmcgdGhlIFIgY29kZXMgaW4gdGhlIFIgZmlsZS4NCg0KIyMgMi4gKkRhdGEqIA0KDQpMb2FkIHRoZSBkYXRhIHNldCBgY2FuZHlfcmFua2luZ3NgIGZyb20gdGhlIHBhY2thZ2UgYGZpdmV0aGlydHllaWdodGAuDQppbnN0YWxsLnBhY2thZ2VzKCJmaXZldGhpcnR5ZWlnaHQiKQ0KbGlicmFyeShmaXZldGhpcnR5ZWlnaHQpDQpkYXRhKGNhbmR5X3JhbmtpbmdzKSANClZpZXcoY2FuZHlfcmFua2luZ3MpDQoNCmBgYHtyfQ0KIyBBTlNXRVI6IA0KDQpgYGANCg0KIyMgMy4gKlN1bW1hcnkgVGFibGUqIA0KDQpDcmVhdGUgYSB3ZWxsLWZvcm1hdHRlZCBhbmQgaW5mb3JtYXRpdmUgc3VtbWFyeSBzdGF0aXN0aWNzIHRhYmxlLiBJbnRlcnByZXQgdGhlIG1lYW4gb2YgdHdvIG9mIHlvdXIgdmFyaWFibGVzLiANCg0KYGBge3J9DQojIEFOU1dFUjogDQpsaWJyYXJ5KHN0YXJnYXplcikgDQpzaWxseW5hbWVzIDwtIGRhdGEuZnJhbWUoY2FuZHlfcmFua2luZ3MpDQpzdGFyZ2F6ZXIoc2lsbHluYW1lcywgdHlwZSA9ICJ0ZXh0IikNCmBgYA0KDQoqKkFOU1dFUjoqKg0KIEZyb20gdGhlIHRhYmxlLCB3ZSBmb3VuZCBvdXQgdGhhdCB0aGVyZSBhcmUgODUgcm93cyB3aXRoIDEzIHZhcmlhYmxlcy4gVGhlIGZpcnN0IGNvbHVtbiBjb250YWlucyB0aGUgdmFyaWFibGVzLCBmb2xsb3dlZCBieSB0aGUgbnVtYmVyIG9mIG9ic2VydmF0aW9ucyBpbiBlYWNoIGNvbHVtbiwgbWVhbiBvZiB0aGUgdmFyaW91cyB2YXJpYWJsZXMsIHRoZW4gdGhlIHN0YW5kYXJkIGRldmlhdGlvbiBhc3NvY2lhdGVkIHdpdGggZWFjaCB2YXJpYWJsZSwgdGhlIG1pbmltdW0gdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLCB0aGUgMjV0aCBwZXJjZW50aWxlIGZvciBlYWNoIHZhcmlhYmxlLCB0aGUgNzV0aCBwZXJjZW50aWxlIGFuZCB0aGUgbWF4aW11bSBvYnNlcnZhdGlvbiBmb3IgZWFjaCBvZiB0aGUgdmFyaWFibGVzLiBUaGUgYXNzb2NpYXRlZCBtZWFuIGZvciB0aGUgdmFyaW91cyB2YXJpYWJsZXMgaXMgb24gdGhlIHRoaXJkIGNvbHVtbiBvbiB0aGUgc3VtbWFyeSB0YWJsZS4gVGhlIG1lYW4gaXMgdGhlIGF2ZXJhZ2Ugb2YgYWxsIG9ic2VydmF0aW9ucyBjb250YWluZWQgaW4gZWFjaCB2YXJpYWJsZS4gVGhlcmVmb3JlLCB0aGUgbWVhbiBpcyB0aGUgd2VpZ2h0ZWQgYXZlcmFnZS4gIE9uIGF2ZXJhZ2UsIHRha2luZyBjaG9jb2xhdGUgaW50byBjb25zaWRlcmF0aW9uLCBhdCBsZWFzdCAwLjQzNSBjYW5kaWVzIGNvbnRhaW4gY2hvY29sYXRlIGFuZCBhdCBsZWFzdCwgMC41MTggY2FuZGllcyBjb250YWluIHBsdXJpYnVzIFRoaXMgYXBwbGllcyB0byB0aGUgbWVhbiBvZiBhbGwgb3RoZXIgdmFyaWFibGVzIGluIHRoZSBzdW1tYXJ5IGRhdGEuIA0KDQojIyA0LiAqU3VtbWFyeSBHcmFwaHMqIA0KDQpDcmVhdGUgdHdvIGhpZ2gtcXVhbGl0eSBncmFwaHMvZmlndXJlcyB0aGF0IGlsbHVzdHJhdGUgdGhlIGRhdGEgaW4gYSB3YXkgdGhhdCBpcyBpbmZvcm1hdGl2ZSBmb3IgdGhlIHJlYWRlci4gRXhwbGFpbiwgaW4gdGV4dCwgd2hhdCB0aGVzZSBmaWd1cmVzIGlsbHVzdHJhdGUuIA0KDQpgYGB7cn0NCiMgQU5TV0VSOiANCmhpc3QoY2FuZHlfcmFua2luZ3Mkc3VnYXJwZXJjZW50KQ0KaGlzdChjYW5keV9yYW5raW5ncyRwcmljZXBlcmNlbnQpDQpgYGANCg0KYGBge3J9DQojIEFOU1dFUjogDQpib3hwbG90KGNhbmR5X3JhbmtpbmdzJHN1Z2FycGVyY2VudCkNCmJveHBsb3QoY2FuZHlfcmFua2luZ3MkcHJpY2VwZXJjZW50KQ0KYGBgDQoNCioqQU5TV0VSOioqDQoNCiMjIDUuICpFbXBpcmljYWwgTW9kZWwqIA0KDQpXcml0ZSBhIG11bHRpcGxlIGxpbmVhciByZWdyZXNzaW9uIGVtcGlyaWNhbCBtb2RlbCB0aGF0IHdhcyB3YXMgZXN0aW1hdGVkIGluIHRoZSBhcnRpY2xlLiBJbnRlcHJldCB0aGUgY29lZmZpY2llbnRzIGluIHRoZSBjb250ZXh0IG9mIHRoZSBwcm9ibGVtLiBXaGF0IHdvdWxkIGl0IG1lYW4gZm9yIGEgY29lZmZpY2llbnQgdG8gYmUgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudD8gV2hhdCBpcyB0aGUgYXNzdW1wdGlvbnMgbWFkZSB3aGVuIHVzaW5nIHRoaXMgbGluZWFyIG1vZGVsPw0KDQokJCBhbnN3ZXIgJCQNCiAgV2Ugd2lsbCBjcmVhdGUgYSBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbCB3aXRoIHdpbnBlcmNlbnQgYXMgb3VyIGRlcGVuZGVudCB2YXJpYWJsZSBhbmQgaW5kZXBlbmRlbnQgdmFyaWFibGVzIChjaG9jb2xhdGUsIGZydWl0eSwgY2FyYW1lbCwgcGVhbnV0eWFsbW9uZHksIG5vdWdhdCwgY3Jpc3BlZHJpY2V3YWZlciwgaGFyZCwgYmFyIGFuZCBwbHVyaWJ1cykuIEFsbCB0aGUgaW5kZXBlbmRlbnQgdmFyaWFibGVzIGFyZSBkdW1teSB2YXJpYWJsZXMgd2l0aCBGQUxTRSA9MCBhbmQgVFJVRT0gMSBleGNlcHQgd2lucGVyY2VudCwgc3VnYXJwZXJjZW50IGFuZCBwcmljZXBlcmNlbnQuIFRoZSBsaW5lYXIgcmVncmVzc2lvbiBiZWluZyBjb25zaWRlcmVkIGhlcmUgaXMgdGhlIG11bHRpcGxlIGxpbmVhciByZWdyZXNzaW9uLiBBZnRlciB3ZSBjcmVhdGVkIHRoZSByZWdyZXNzaW9uLCB3ZSBmb3VuZCBvdXQgdGhhdCB0aGUgbGluZWFyIG11bHRpcGxlIHJlZ3Jlc3Npb24gbW9kZWwgaXMgV2lucGVyY2VudCA9IEIwICsgQjFjaG9jb2xhdGUgKyBCMmZydWl0eSArIEIzbm91Z2F0ICsgQjRjYXJhbWVsICsgQjVwZWFudXR5YWxtb25keSArICBCNmNyaXNwZWRyaWNld2FmZXIgKyBCN2hhcmQgKyBCOGJhciArIEI5cGx1cmlidXMgKyBCMTBzdWdhcnBlcmNlbnQgKyBCMTFwcmljZXBlcmNlcm50ICsgZSwgd2hlcmUgZSBpcyB0aGUgZXJyb3IgdGVybS4gIFRoaXMgaXMgdGhlIG5vbi1lc3RpbWF0ZWQgbW9kZWwuIFRoZXJlIGFyZSAxMiBwYXJhbWV0ZXJzLCB0aGUgZXJyb3IgdGVybSwgYW5kIDEyIHZhcmlhYmxlcyBpbiB0aGlzIG1vZGVsLiBBbGwgb2YgdGhlIHZhcmlhYmxlcyBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlIG9mIHRoZSByZWdyZXNzaW9uIG1vZGVsIGFyZSBjYXRlZ29yaWNhbCBpbiBuYXR1cmUuIFRoZSBjb25jZXB0IG9mIGEgZHVtbXkgdmFyaWFibGUgY29tZXMgaW50byBwbGF5IGhlcmUuIFRoZSBjb25zdGFudCB0ZXJtIGlzIHJlcHJlc2VudGVkIGJ5IHRoZSBwYXJhbWV0ZXIgQjAuIFdoZW4gYWxsIG90aGVyIHZhcmlhYmxlcyBhcmUgaGVsZCBjb25zdGFudCwgdGhlIHdpbnBlcmNlbnQgZXF1YWxzIEIwLiBIb2xkaW5nIGFsbCBvdGhlciB2YXJpYWJsZXMgY29uc3RhbnQsIGNhbmR5IGNvbnRhaW5pbmcgY2hvY29sYXRlIGFuZCBoYXZpbmcgRCBlcXVhbCB0byAxIGNvcnJlc3BvbmRzIHRvIGEgQjEgZXh0cmEgZ2FpbiBpbiB0b3RhbCB3aW4gJSBiYXNlZCBvbiAyNjksMDAwIG1hdGNodXBzIHRoYW4gbm9uLWNob2NvbGF0ZSBjYW5kaWVzLiBNb3Jlb3ZlciwgY2FuZHkgY29udGFpbmluZyBmcnVpdHkgYW5kIGhhdmluZyBEIGFzIDEgaXMgQjIgb24gYXZlcmFnZSBtb3JlIHRoYW4gY2FuZHkgdGhhdCBkb2VzIG5vdCBjb250YWluIGZydWl0eS4gQ2FuZHkgdGhhdCBjb250YWlucyBub3VnYXQgaGFzIGEgRCBvZiAxIGFuZCBpcyBCMyBvbiBhdmVyYWdlIGhpZ2hlciB0aGFuIGNhbmR5IHRoYXQgZG9lcyBub3QgY29udGFpbiBub3VnYXQuIENhbmR5IHRoYXQgY29udGFpbnMgY2FyYW1lbCBoYXMgYSBEIG9mIDEgYW5kIGlzIEI0IG9uIGF2ZXJhZ2UgMSUgbW9yZSB0aGFuIGNhbmR5IHRoYXQgZG9lcyBub3QgY29udGFpbiBjYXJhbWVsIGZvciB0aGUgY3JpdGVyaW9uIEI0LiBDYW5keSB0aGF0IGNvbnRhaW5zIHBlYW51dHlhbG1vbmR5IGhhcyBhIEQgb2YgMSBhbmQgaXMgQjUgb24gYXZlcmFnZSAxJSBncmVhdGVyIHRoYW4gY2FuZHkgdGhhdCBkb2VzIG5vdCBjb250YWluIHBlYW51dHlhbG1vbmR5LiBVc2luZyB0aGUgcGFyYW1ldGVyIEI2LCBjcmlzcGVkcmljZXdhZmVyLWNvbnRhaW5pbmcgY2FuZGllcyBoYXZlIGEgRCBhcyAxIHRoYXQgaXMgQjYgb24gYXZlcmFnZSB3aW5wZXJjZW50IGhpZ2hlciB0aGFuIG5vbi1jcmlzcGVkcmljZXdhZmVyLWNvbnRhaW5pbmcgY2FuZGllcy4gQ2FuZHkgdGhhdCBpcyBoYXJkIGhhcyBhIEQgYXMgMSBmb3IgdGhlIHBhcmFtZXRlciBCNywgd2hpY2ggbWVhbnMgdGhhdCBpdCBpcyBCNyBvbiBhdmVyYWdlIHdpbnBlcmNlbnQgZ3JlYXRlciB0aGFuIGNhbmR5IHRoYXQgaXMgbm90IGhhcmQuIENhbmRpZXMgdGhhdCBhcmUgYmFycyBoYXZlIGEgRCBvZiAxIGFuZCBhcmUgQjggb24gYXZlcmFnZSB3aW5wZXJjZW50IG1vcmUgdGhhbiBjYW5kaWVzIHRoYXQgYXJlIG5vdCANCmJhcnMgZm9yIHRoZSBjcml0ZXJpb24gQjguIEZvciB0aGUgY3JpdGVyaW9uIEI5LCBjYW5kaWVzIHRoYXQgYXJlIG9uZSBvZiBtYW55IGluIGEgYmFnIGFuZCBoYXZlIGEgRCBvZiAxIGFyZSBCOSBvbiBhdmVyYWdlIDElIGdyZWF0ZXIgdGhhbiBjYW5kaWVzIHRoYXQgYXJlIG5vdCBvbmUgb2YgbWFueSBpbiBhIGJveCBvciBiYWcuICBrZWVwaW5nIGFsbCBvdGhlciB2YXJpYWJsZXMgZml4ZWQsIGVhY2ggZnVydGhlciB1bml0IHJpc2UgaW4gc3VnYXJwZXJjZW50IGVxdWF0ZXMgdG8gYSBCMTAgYWRkaXRpb25hbCBpbmNyZWFzZSBpbiB3aW5wZXJjZW50IGZvciB0aGUgcGFyYW1ldGVyIEIxMC4gQW5kLCBhc3N1bWluZyBhbGwgb3RoZXIgZmFjdG9ycyByZW1haW4gY29uc3RhbnQsIGVhY2ggZnVydGhlciB1bml0IGluY3JlYXNlIGluIHByaWNlcGVyY2VudCBlcXVhdGVzIHRvIGEgQjExIGluY3JlYXNlIGluIHdpbnBlcmNlbnQuICBTaW5jZSB0aGUgRi1zdGF0aXN0aWMgaXMgOC44NCwgYW5kIHRoZSBwLXZhbHVlIGlzIGxlc3MgdGhhbiBhbiBhbHBoYSBsZXZlbCBvZiAwLjA1LCB0aGUgcmVncmVzc2lvbiBlcXVhdGlvbiBpcyBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50Lg0KDQoqKkFOU1dFUjoqKg0KDQojIyA2LiAqUmVzdWx0cyogDQoNClJlcGxpY2F0ZSB0aGUgcmVncmVzc2lvbiB0YWJsZSBpbiB0aGUgYXJ0aWNsZS4gRGlzcGxheSByZXN1bHRzIGluIGEgbmljZWx5LWZvcm1hdHRlZCB0YWJsZS4NCg0KYGBge3J9DQojIEFOU1dFDQpsbShmb3JtdWxhPXdpbnBlcmNlbnR+RCArIEogKyBBICsgUCArIEMgKyBSICsgViArIEUgKyBCICsgc3VnZXJwZXJjZW50ICsgcHJpY2VwZXJjZW50LGRhdGE9Y2FuZHlfcmFua2luZ3MpDQpgYGANCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiBEZXBlbmRlbnQgdmFyaWFibGU6IA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQp3aW5wZXJjZW50IA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkQgMTkuNzQ4KioqIA0KICgzLjg5OSkgDQogDQpKIDkuNDIyKiogDQogKDMuNzYzKSANCiANCkEgMi4yMjQgDQogKDMuNjU3KSANCiANClAgMTAuMDcxKioqIA0KICgzLjYxNikgDQpDIDAuODA0IA0KICg1LjcxNikgDQogDQpSIDguOTE5KiANCiAoNS4yNjgpIA0KIA0KViAtNi4xNjUqIA0KICgzLjQ1NSkgDQogDQpFIDAuNDQyIA0KICg1LjA2MSkgDQogDQpCIC0wLjg1NCANCiAoMy4wNDApIA0KIA0Kc3VnYXJwZXJjZW50IDkuMDg3KiANCiAoNC42NTkpIA0KIA0KcHJpY2VwZXJjZW50IC01LjkyOCANCiAoNS41MTMpIA0KIA0KQ29uc3RhbnQgMzQuNTM0KioqIA0KICg0LjMyMCkgDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KT2JzZXJ2YXRpb25zIDg1IA0KUjIgMC41NDAgDQpBZGp1c3RlZCBSMiAwLjQ3MSANClJlc2lkdWFsIFN0ZC4gRXJyb3IgMTAuNzAzIChkZiA9IDczKSANCkYgU3RhdGlzdGljIDcuNzk3KioqIChkZiA9IDExOyA3MykgDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBOb3RlOiAqcDwwLjE7ICoqcDwwLjA1OyAqKipwPDAuMDEgDQogDQogDQpDYWxsOg0KbG0oZm9ybXVsYSA9IHdpbnBlcmNlbnQgfiBEICsgSiArIEEgKyBQICsgQyArIFIgKyBWICsgRSArIEIgKyANCnN1Z2FycGVyY2VudCArIHByaWNlcGVyY2VudCwgZGF0YSA9IGNhbmR5X3JhbmtpbmdzKQ0KUmVzaWR1YWxzOg0KIE1pbiAxUSBNZWRpYW4gM1EgTWF4IC0NCjIwLjIyNDQgLTYuNjI0NyAwLjE5ODYgNi44NDIwIDIzLjg2ODAgDQpDb2VmZmljaWVudHM6DQogICBFc3RpbWF0ZSAgICAgICAgU3RkLiBFcnJvciAgdCB2YWx1ZSAgUHIoPnx0fCkgDQogICAoSW50ZXJjZXB0KSAgICAgMzQuNTM0MCAgICAgNC4zMTk5ICAgNy45OTQgMS40NGUtMTEgKioqDQpEICAgMTkuNzQ4MSAgICAgICAgMy44OTg3ICAgICAgNS4wNjUgICAgMi45NmUtMDYgKioqDQpKICAgOS40MjIzICAgICAgICAgMy43NjMwICAgICAgMi41MDQgICAgMC4wMTQ1MiAqIA0KQSAgIDIuMjI0NSAgICAgICAgIDMuNjU3NCAgICAgIDAuNjA4ICAgIDAuNTQ0OTMgDQpQICAgMTAuMDcwNyAgICAgICAgMy42MTU4ICAgICAgMi43ODUgICAgMC4wMDY4MSAqKiANCkMgICAwLjgwNDMgICAgICAgICA1LjcxNjQgICAgICAwLjE0MSAgICAwLjg4ODQ5IA0KUiAgIDguOTE5MCAgICAgICAgIDUuMjY3OSAgICAgIDEuNjkzICAgIDAuMDk0NzAgLiANClYgIC02LjE2NTMgICAgICAgICAzLjQ1NTEgICAgIC0xLjc4NCAgICAwLjA3ODUyIC4gDQpFICAgMC40NDE1ICAgICAgICAgNS4wNjExICAgICAgMC4wODcgICAgMC45MzA3MiBCIA0KICAgLTAuODU0NSAgICAgICAgIDMuMDQwMSAgICAgLTAuMjgxICAgIDAuNzc5NDUgc3VnYXJwZXJjZW50IA0KICAgIDkuMDg2OCAgICAgICAgIDQuNjU5NSAgICAgIDEuOTUwICAgIDAuMDU1MDAgLiBwcmljZXBlcmNlbnQgDQogICAtNS45Mjg0ICAgICAgICAgNS41MTMyICAgICAtMS4wNzUgICAgMC4yODU3OCAtLS0NClNpZ25pZi4gY29kZXM6IDAg4oCYKioq4oCZIDAuMDAxIOKAmCoq4oCZIDAuMDEg4oCYKuKAmSAwLjA1IOKAmC7igJkgMC4xIOKAmCDigJkgMQ0KUmVzaWR1YWwgc3RhbmRhcmQgZXJyb3I6IDEwLjcgb24gNzMgZGVncmVlcyBvZiBmcmVlZG9tDQpNdWx0aXBsZSBSLXNxdWFyZWQ6IDAuNTQwMiwgQWRqdXN0ZWQgUi1zcXVhcmVkOiAwLjQ3MDkgDQpGLXN0YXRpc3RpYzogNy43OTcgb24gMTEgYW5kIDczIERGLCBwLXZhbHVlOiA5LjUwNGUtMDkNCg0KQmFzZWQgb24gdGhlIHJlc3VsdHMgb2Ygb3VyIHJlZ3Jlc3Npb24sIHRoZSBlc3RpbWF0ZWQgbW9kZWwgaXMgd2lucGVyY2VudGhhdCA9IDM0LjUzNDAgKyANCjE5Ljc0ODFEMSs5LjQyMjNEMisyLjIyNDVEMysxMC4wNzA3RDQrMC44MDQzRDUrOC45MTkwRDYtNi4xNjUzRDcrMC40NDE1RDgtDQowLjg1NDVEOSs5LjA4NjhzdWdhcnBlcmVjbnQtNS45Mjg0cHJpY2VwZXJjZW50DQpUaGUgZXN0aW1hdGVkIG1vZGVsIGNvbnRhaW5zIEQxLCBEMiwgRDMsIEQ0LCBENSwgRDYsIEQ3LCBEOCBhbmQgRDkgYXMgZHVtbXkgdmFyaWFibGVzLiANCiMjIDcuICpEaXNjdXNzaW9uKiANCg0KSW50ZXJwcmV0IHlvdXIgcmVzdWx0cyBmcm9tIHF1ZXN0aW9uIDYuIERpZCB0aGUgbW9kZWwgZXhwbGFpbiBtdWNoIG9mIHRoZSB2YXJpYXRpb24gaW4gdGhlIGRlcGVuZGVudCB2YXJpYWJsZT8gRG8geW91IGZlZWwgbGlrZSBhbnl0aGluZyBtYXkgaGF2ZSBiZWVuIG9taXR0ZWQgZnJvbSB0aGUgcmVncmVzc2lvbiB0aGF0IHNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQ/IA0KDQoqKkFOU1dFUjoqKg0KDQpBdCBsZWFzdCB3aW5wZXJjZW50IGlzIGVxdWFsIHRvIDM0LjUzNDAuIENhbmRpZXMgd2hpY2ggY29udGFpbiBjaG9jb2xhdGUsIHdoaWNoIGhhdmUgRCBhcyAxLCB3aWxsIA0KY29ycmVzcG9uZCB0byAxOS43NDgxIGFkZGl0aW9uYWwgaW5jcmVhc2UgaW4gb3ZlcmFsbCB3aW4gcGVyY2VudGFnZSBhY2NvcmRpbmcgdG8gMjY5LDAwMCBtYXRjaHVwcyANCnRoYW4gY2FuZGllcyBub3QgbWFkZSBvZiBjaG9jb2xhdGUuIEFsc28gY2FuZHkgd2hpY2ggY29udGFpbnMgZnJ1aXR5LCB3aGljaCBoYXZlIEQgYXMgMSBpcyA5LjQyMjMgb24gYXZlcmFnZSB3aW5wZXJjZW50IG1vcmUgdGhhbiBjYW5kaWVzIHdoaWNoIGRvZXMgbm90IGNvbnRhaW4gZnJ1aXR5LiBGb3IgY2FuZHkgd2hpY2ggY29udGFpbiBjYXJhbWVsIA0Kd2hpY2ggaGF2ZSBhIEQgYXMgMSBpcyAyLjIyNDUgb24gYXZlcmFnZSB3aW5wZXJjZW50IG1vcmUgdGhhbiBjYW5kaWVzIHdoaWNoIGRvIG5vdCBjb250YWluIGNhcmFtZWwuIA0KRm9yIGNhbmR5IHdoaWNoIGNvbnRhaW4gcGVhbnV0eWFsbW9uZHkgd2hpY2ggaGF2ZSBhIEQgYXMgMSBpcyAxMC4wNzA3IG9uIGF2ZXJhZ2Ugd2lucGVyY2VudCBtb3JlIA0KdGhhbiBjYW5kaWVzIHdoaWNoIGRvIG5vdCBjb250YWluIHBlYW51dHlhbG1vbmR5LiBGb3IgdGhlIGNhbmR5IHdoaWNoIGNvbnRhaW4gbm91Z2F0IHdoaWNoIGhhdmUgYSBEIA0KYXMgMSBpcyAwLjgwNDMgb24gYXZlcmFnZSB3aW5wZXJjZW50IG1vcmUgdGhhbiBjYW5kaWVzIHdoaWNoIGRvIG5vdCBjb250YWluIG5vdWdhdC4NCldpdGggY2FuZHkgd2hpY2ggY29udGFpbiBjcmlzcGVkcmljZXdhZmVyIGhhdmUgYSBEIGFzIDEgaXMgOC45MTkwIG9uIGF2ZXJhZ2Ugd2lucGVyY2VudCBtb3JlIHRoYW4gDQpjYW5kaWVzIHdoaWNoIGRvIG5vdCBjb250YWluIGNyaXNwZWRyaWNld2FmZXIuIEZvciBjYW5kaWVzIHdoaWNoIGFyZSBoYXJkIGhhdmUgYSBEIGFzIDEgaXMgLTYuMTY1MyBvbiBhdmVyYWdlIHdpbnBlcmNlbnQgbGVzcyB0aGFuIGNhbmRpZXMgd2hpY2ggYXJlIG5vdCBoYXJkLiBGb3IgY2FuZGllcyB3aGljaCBhcmUgYmFyIHdoaWNoIGhhdmUgYSBEIGFzIDEgaXMgMC40NDE1IG9uIGF2ZXJhZ2Ugd2lucGVyY2VudCBtb3JlIHRoYW4gY2FuZGllcyB3aGljaCBhcmUgbm90IGJhcnMuIFdpdGggY2FuZHkgd2hpY2ggaXMgb25lIG9mIG1hbnkgY29udGFpbmVkIGluIGEgYmFnIG9yIGJveCB3aGljaCBoYXZlIGEgRCBhcyAxIGlzIC0wLjg1NDUgb24gYXZlcmFnZSB3aW5wZXJjZW50IGxlc3MgdGhhbiBjYW5kaWVzIHdoaWNoIGRvIG5vdCBjb250YWluIG9uZSBvZiBtYW55IGluIGEgYm94IG9yIGJhZy4gSG9sZGluZyBhbGwgb3RoZXIgdmFyaWFibGVzIGNvbnN0YW50LCBlYWNoIGFkZGl0aW9uYWwgdW5pdCBpbmNyZWFzZSBpbiBzdWdhcnBlcmNlbnQgd2lsbCBjb3JyZXNwb25kcyB0byA5LjA4NjggYWRkaXRpb25hbCBpbmNyZWFzZSBpbiB3aW5wZXJjZW50LiBBbmQgaG9sZGluZyBhbGwgb3RoZXIgdmFyaWFibGVzIGNvbnN0YW50LCBlYWNoIGFkZGl0aW9uYWwgdW5pdCBpbmNyZWFzZSBpbiBwcmljZXBlcmNlbnQgd2lsbCBjb3JyZXNwb25kcyB0byAtNS45Mjg0IGRlY3JlYXNlIGluIHdpbnBlcmNlbnQuDQoNCkh5cG90aGVzaXMgdGVzdGluZyB1c2luZyB0aGUgRi1zdGF0aXN0aWMNCkgwOiBCMD1CMT1CMj1CMz1CND1CNT1CNj1CNz1COD1COT1COT1CMTA9QjExPTANCkgxOiBCMCDiiaDwnZC1MeKJoPCdkLUy4omg8J2QtTPiiaDwnZC1NOKJoPCdkLU14omg8J2QtTbiiaDwnZC1N+KJoPCdkLU44omg8J2QtTniiaDwnZC1MTDiiaDwnZC1MTHiiaAwDQpGLXN0YXRpc3RpYzogNy43OTcgb24gMTEgYW5kIDczIERGLCBwLXZhbHVlOiA5LjUwNGUtMDkNCkxvb2tpbmcgYXQgb3VyIHJlc3VsdHMgZm9yIHRoZSBGLXN0YXRpc3RpYywgd2hpY2ggaXMgNy43OTcsIHRoZSBwLXZhbHVlIHdoaWNoIGlzIDkuNTA0ZS0wOSBpcyBsZXNzIHRoYW4gYW4gYWxwaGEgbGV2ZWwgb2YgMC4wNS4gU2luY2Ugb3VyIHAtdmFsdWUgaXMgbGVzcyB0aGFuIHRoZSBhbHBoYSBsZXZlbCwgd2UgcmVqZWN0IEhvIGFuZCB3ZSBjb25jbHVkZSB0aGF0IHRoZSByZWdyZXNzaW9uIGVxdWF0aW9uIGlzIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQuDQpSXjIgaW50ZXJwcmV0YXRpb246IEZyb20gb3VyIHJlc3VsdHMsIFJeMiB3YXMgMC41NDAuIFRoaXMgbWVhbnMgdGhhdCA1NC4wJSBvZiB0aGUgdG90YWwgdmFyaWFuY2UgaW4gDQp3aW5wZXJjZW50IGlzIGV4cGxhaW5lZCBieSB0aGUgbW9kZWwuIA0KSDA6IEIxPTANCkgxOiBCMSDiiaAwDQpEIDE5Ljc0ODEgMy44OTg3IDUuMDY1IDIuOTZlLTA2ICoqKg0KSGVyZSB0aGUgdmFyaWFibGUgRCByZXByZXNlbnRzIGNob2NvbGF0ZSwgd2Ugbm90aWNlIHRoYXQgdGhlIHAtdmFsdWUgd2hpY2ggaXMgMi45NmUtMDYgaXMgbGVzcyB0aGFuIDAuMDUgDQpzbyB3ZSByZWplY3QgSG8gYW5kIHdlIGNvbmNsdWRlIHRoYXQgdGhlIHZhcmlhYmxlIGNob2NvbGF0ZSBpcyBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50IGluIHRoZSBtb2RlbC4gDQpIMDpCMj0wDQpCMTpCMSDiiaAgMA0KSiA5LjQyMjMgMy43NjMwIDIuNTA0IDAuMDE0NTIgKiANCkhlcmUsIHRoZSB2YXJpYWJsZSBKIGlzIGZydWl0eSwgc2luY2UgdGhlIHAtdmFsdWUgaXMgMC4wMTQ1MiBpcyBsZXNzIHRoYW4gYW4gYWxwaGEgbGV2ZWwgb2YgMC4wNSwgd2UgcmVqZWN0IEhPIA0KYW5kIHdlIGNvbmNsdWRlIHRoYXQgZnJ1aXR5IGlzIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgaW4gdGhlIG1vZGVsLg0KSDA6IEI0PTANCkgxOiBCNCDiiaAwDQpQIDEwLjA3MDcgMy42MTU4IDIuNzg1IDAuMDA2ODEgKioNClRoZSB2YXJpYWJsZSBQIGhlcmUgcmVwcmVzZW50cyBwZWFudXR5YWxtb25keS4gVGhlIHAtdmFsdWUgb2YgMC4wMDY4MSBpcyBsZXNzIHRoYW4gYW4gYWxwaGEgbGV2ZWwgb2YgMC4wNSwgdGhlcmVmb3JlIHdlIHJlamVjdCBIbyBhbmQgd2UgY29uY2x1ZGUgdGhhdCBwZWFudXR5YWxtb25keSBpcyBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50IGluIHRoZSBtb2RlbC4NCkxvb2tpbmcgYXQgYWxsIHRoZSByZW1haW5pbmcgdmFyaWFibGVzIGluIHRoZSBkYXRhIHN1bW1hcnksIHRoZXkgYWxsIGhhdmUgcC12YWx1ZXMgZ3JlYXRlciB0aGFuIGFuIGFscGhhIA0KbGV2ZWwgb2YgMC4wNSwgc28gd2UgZmFpbCB0byByZWplY3QgSG8gYW5kIHdlIGNvbmNsdWRlIHRoYXQgY2FyYW1lbCwgbm91Z2F0LCBoYXJkLCBiYXIsIHN1Z2FycGVyY2VudCwgDQpwcmljZXBlcmNlbnQsIGNyaXNwZWRyaWNld2FmZXIsIHBsdXJpYnVzIGFyZSBhbGwgbm90IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgaW4gdGhlIG1vZGVsLg0K