1 1. Introduction

This report demonstrates the standard format for STA 506 assignments using R Markdown. The purpose of this document is to show how narrative text, statistical analysis, tables, and figures can be combined into a professional report.

We analyze a built-in dataset to illustrate the workflow.


2 2. Data Description

For this example, we use the built-in mtcars dataset, which contains information about fuel efficiency and design characteristics of automobiles.

data(mtcars)
head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

The dataset contains 32 observations and 11 variables.

Key variables include:

  • mpg: Miles per gallon
  • hp: Horsepower
  • wt: Weight (1000 lbs)
  • cyl: Number of cylinders

3 3. Exploratory Data Analysis

3.1 3.1 Summary Statistics

We begin by examining summary statistics.

summary(mtcars[, c("mpg", "hp", "wt")])
      mpg              hp              wt       
 Min.   :10.40   Min.   : 52.0   Min.   :1.513  
 1st Qu.:15.43   1st Qu.: 96.5   1st Qu.:2.581  
 Median :19.20   Median :123.0   Median :3.325  
 Mean   :20.09   Mean   :146.7   Mean   :3.217  
 3rd Qu.:22.80   3rd Qu.:180.0   3rd Qu.:3.610  
 Max.   :33.90   Max.   :335.0   Max.   :5.424  

We observe that fuel efficiency varies substantially across vehicles, with horsepower and weight showing wide ranges.


3.2 3.2 Correlation Analysis

Next, we examine correlations among key variables.

cor(mtcars[, c("mpg", "hp", "wt")])
           mpg         hp         wt
mpg  1.0000000 -0.7761684 -0.8676594
hp  -0.7761684  1.0000000  0.6587479
wt  -0.8676594  0.6587479  1.0000000

There appears to be a strong negative relationship between fuel efficiency and both horsepower and vehicle weight.


3.3 3.3 Data Visualization

We visualize these relationships using scatterplots.

plot(
  mtcars$wt,
  mtcars$mpg,
  xlab = "Weight (1000 lbs)",
  ylab = "Miles Per Gallon",
  main = "MPG vs Vehicle Weight",
  pch = 19
)
abline(lm(mpg ~ wt, data = mtcars), col = "red")
Fuel Efficiency vs Weight

Fuel Efficiency vs Weight

The plot indicates that heavier vehicles tend to have lower fuel efficiency.


4 4. Statistical Modeling

4.1 4.1 Linear Regression Model

We fit a linear regression model to predict fuel efficiency.

model <- lm(mpg ~ wt + hp, data = mtcars)
summary(model)

Call:
lm(formula = mpg ~ wt + hp, data = mtcars)

Residuals:
   Min     1Q Median     3Q    Max 
-3.941 -1.600 -0.182  1.050  5.854 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 37.22727    1.59879  23.285  < 2e-16 ***
wt          -3.87783    0.63273  -6.129 1.12e-06 ***
hp          -0.03177    0.00903  -3.519  0.00145 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.593 on 29 degrees of freedom
Multiple R-squared:  0.8268,    Adjusted R-squared:  0.8148 
F-statistic: 69.21 on 2 and 29 DF,  p-value: 9.109e-12

The model relates miles per gallon to vehicle weight and horsepower.


4.2 4.2 Model Interpretation

Based on the estimated coefficients:

  • Weight has a strong negative effect on fuel efficiency
  • Horsepower also contributes negatively
  • Both predictors are statistically significant

This suggests that heavier and more powerful vehicles consume more fuel.


5 5. Model Diagnostics

We assess model assumptions using diagnostic plots.

par(mfrow = c(2,2))
plot(model)

par(mfrow = c(1,1))

Residual plots indicate reasonable linearity and homoscedasticity.


6 6. Results Summary

Our analysis shows that:

  1. Vehicle weight is the strongest predictor of MPG
  2. Horsepower provides additional explanatory power
  3. The fitted model explains a substantial portion of variation

These results are consistent with physical expectations.


7 7. Conclusion

This report demonstrates the standard structure for STA 506 assignments.

Using R Markdown allows for:

  • Reproducible analysis
  • Integrated narrative and code
  • Professional formatting

Future assignments will follow this template.


8 Appendix (Optional)

Additional analyses and code may be placed here if needed.

mean(mtcars$mpg)
[1] 20.09062
sd(mtcars$mpg)
[1] 6.026948
LS0tCnRpdGxlOiAiWW91ciBSZXBvcnQgVGl0bGUiCmF1dGhvcjogIkNoYXJsaWUgTW9yZ2FuIgpkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OiAgICAgICAgICAgIyBvdXRwdXQgZG9jdW1lbnQgZm9ybWF0CiAgICB0b2M6IHllcyAgICAgICAgICAgICAgICMgYWRkIHRhYmxlIG9mIGNvbnRlbnRzCiAgICB0b2NfZmxvYXQ6IHllcyAgICAgICAgICMgZmxvYXRpbmcgVE9DCiAgICB0b2NfZGVwdGg6IDQgICAgICAgICAgICMgZGVwdGggb2YgVE9DIGhlYWRpbmdzCiAgICBmaWdfd2lkdGg6IDYgICAgICAgICAgICMgZ2xvYmFsIGZpZ3VyZSB3aWR0aAogICAgZmlnX2hlaWdodDogNCAgICAgICAgICAjIGdsb2JhbCBmaWd1cmUgaGVpZ2h0CiAgICBmaWdfY2FwdGlvbjogeWVzICAgICAgICMgYWRkIGZpZ3VyZSBjYXB0aW9ucwogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMgICAjIG51bWJlciBzZWN0aW9uIGhlYWRpbmdzCiAgICB0b2NfY29sbGFwc2VkOiB5ZXMgICAgICMgY29sbGFwc2UgVE9DIHN1YmhlYWRpbmdzCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUgICAgICMgZm9sZC9oaWRlIGNvZGUgYnkgZGVmYXVsdAogICAgY29kZV9kb3dubG9hZDogeWVzICAgICAjIGFsbG93IGRvd25sb2FkaW5nIHRoZSAuUm1kCiAgICBzbW9vdGhfc2Nyb2xsOiB5ZXMgICAgICMgc21vb3RoIHNjcm9sbGluZwogICAgdGhlbWU6IGx1bWVuICAgICAgICAgICAjIEhUTUwgdGhlbWUKICAgIGhpZ2hsaWdodDogdGFuZ28gICAgICAgIyBzeW50YXggaGlnaGxpZ2h0aW5nIHN0eWxlCiAgcGRmX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogNAogICAgZmlnX2NhcHRpb246IHllcwogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMKICB3b3JkX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogJzQnCi0tLQoKYGBge2NzcywgZWNobyA9IEZBTFNFfQpkaXYjVE9DIGxpIHsgICAgIC8qIHRhYmxlIG9mIGNvbnRlbnQgICovCiAgICBsaXN0LXN0eWxlOnVwcGVyLXJvbWFuOwogICAgYmFja2dyb3VuZC1pbWFnZTpub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6bm9uZTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246MDsKfQoKaDEudGl0bGUgeyAgICAvKiBsZXZlbCAxIGhlYWRlciBvZiB0aXRsZSAgKi8KICBmb250LXNpemU6IDI0cHg7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgY29sb3I6IERhcmtSZWQ7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgpoNC5hdXRob3IgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLwogIGZvbnQtc2l6ZTogMThweDsKICBmb250LXdlaWdodDogYm9sZDsKICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsKICBjb2xvcjogRGFya1JlZDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmg0LmRhdGUgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLwogIGZvbnQtc2l6ZTogMThweDsKICBmb250LXdlaWdodDogYm9sZDsKICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsKICBjb2xvcjogRGFya0JsdWU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgpoMSB7IC8qIEhlYWRlciAxIC0gYW5kIHRoZSBhdXRob3IgYW5kIGRhdGEgaGVhZGVycyB1c2UgdGhpcyB0b28gICovCiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogYm9sZDsKICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOwogICAgY29sb3I6IGRhcmtyZWQ7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmgyIHsgLyogSGVhZGVyIDIgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8KICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7CiAgICBjb2xvcjogbmF2eTsKICAgIHRleHQtYWxpZ246IGxlZnQ7Cn0KCmgzIHsgLyogSGVhZGVyIDMgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8KICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7CiAgICBjb2xvcjogbmF2eTsKICAgIHRleHQtYWxpZ246IGxlZnQ7Cn0KCmg0IHsgLyogSGVhZGVyIDQgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8KICAgIGZvbnQtc2l6ZTogMTRweDsKICBmb250LXdlaWdodDogYm9sZDsKICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOwogICAgY29sb3I6IGRhcmtyZWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0Owp9CgovKiBBZGQgZG90cyBhZnRlciBudW1iZXJlZCBoZWFkZXJzICovCi5oZWFkZXItc2VjdGlvbi1udW1iZXI6OmFmdGVyIHsKICBjb250ZW50OiAiLiI7Cn0KYGBgCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KIyBjb2RlIGNodW5rIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBSIGNvZGUsIHdhcm5pbmdzLCBhbmQgb3V0cHV0IAojIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dCBmaWxlcy4KCmlmICghcmVxdWlyZSgia25pdHIiKSkgeyAgICAgICAgICAgICAgICAgICAgICAjIHVzZSBjb25kaXRpb25hbCBzdGF0ZW1lbnQgdG8gZGV0ZWN0CiAgIGluc3RhbGwucGFja2FnZXMoImtuaXRyIikgICAgICAgICAgICAgICAgICAjIHdoZXRoZXIgYSBwYWNrYWdlIHdhcyBpbnN0YWxsZWQgaW4KICAgbGlicmFyeShrbml0cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgeW91ciBtYWNoaW5lLiBJZiBub3QsIGluc3RhbGwgaXQgYW5kCn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGxvYWQgaXQgdG8gdGhlIHdvcmtpbmcgZGlyZWN0b3J5LgojCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgICAgICAgICAgICAjIGluY2x1ZGUgY29kZSBjaHVuayBpbiB0aGUgb3V0cHV0IGZpbGUKICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgPSBGQUxTRSwgICAgICAgICMgc29tZXRpbWVzLCB5b3UgY29kZSBtYXkgcHJvZHVjZSB3YXJuaW5nIG1lc3NhZ2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB5b3UgY2FuIGNob29zZSB0byBpbmNsdWRlIHRoZSB3YXJuaW5nIG1lc3NhZ2VzIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBvdXRwdXQgZmlsZS4gCiAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzID0gVFJVRSwgICAgICAgICAjIHlvdSBjYW4gYWxzbyBkZWNpZGUgd2hldGhlciB0byBpbmNsdWRlIHRoZSBvdXRwdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW4gdGhlIG91dHB1dCBmaWxlLgogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IEZBTFNFLCAgICAgICAgIyBzdXBwcmVzcyBtZXNzYWdlcyAKICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBOQSAgICAgICAgICAgICMgcmVtb3ZlIHRoZSBkZWZhdWx0IGxlYWRpbmcgaGFzaCB0YWdzIGluIHRoZSBvdXRwdXQKICAgICAgICAgICAgICAgICAgICAgICkgICAKYGBgCgojIyAxLiBJbnRyb2R1Y3Rpb24KClRoaXMgcmVwb3J0IGRlbW9uc3RyYXRlcyB0aGUgc3RhbmRhcmQgZm9ybWF0IGZvciBTVEEgNTA2IGFzc2lnbm1lbnRzIHVzaW5nIFIgTWFya2Rvd24uClRoZSBwdXJwb3NlIG9mIHRoaXMgZG9jdW1lbnQgaXMgdG8gc2hvdyBob3cgbmFycmF0aXZlIHRleHQsIHN0YXRpc3RpY2FsIGFuYWx5c2lzLCB0YWJsZXMsCmFuZCBmaWd1cmVzIGNhbiBiZSBjb21iaW5lZCBpbnRvIGEgcHJvZmVzc2lvbmFsIHJlcG9ydC4KCldlIGFuYWx5emUgYSBidWlsdC1pbiBkYXRhc2V0IHRvIGlsbHVzdHJhdGUgdGhlIHdvcmtmbG93LgoKLS0tCgojIyAyLiBEYXRhIERlc2NyaXB0aW9uCgpGb3IgdGhpcyBleGFtcGxlLCB3ZSB1c2UgdGhlIGJ1aWx0LWluIGBtdGNhcnNgIGRhdGFzZXQsIHdoaWNoIGNvbnRhaW5zIGluZm9ybWF0aW9uCmFib3V0IGZ1ZWwgZWZmaWNpZW5jeSBhbmQgZGVzaWduIGNoYXJhY3RlcmlzdGljcyBvZiBhdXRvbW9iaWxlcy4KCmBgYHtyIGxvYWQtZGF0YX0KZGF0YShtdGNhcnMpCmhlYWQobXRjYXJzKQpgYGAKClRoZSBkYXRhc2V0IGNvbnRhaW5zIGByIG5yb3cobXRjYXJzKWAgb2JzZXJ2YXRpb25zIGFuZCBgciBuY29sKG10Y2FycylgIHZhcmlhYmxlcy4KCktleSB2YXJpYWJsZXMgaW5jbHVkZToKCi0gbXBnOiBNaWxlcyBwZXIgZ2FsbG9uICAKLSBocDogSG9yc2Vwb3dlciAgCi0gd3Q6IFdlaWdodCAoMTAwMCBsYnMpICAKLSBjeWw6IE51bWJlciBvZiBjeWxpbmRlcnMgIAoKLS0tCgojIyAzLiBFeHBsb3JhdG9yeSBEYXRhIEFuYWx5c2lzCgojIyMgMy4xIFN1bW1hcnkgU3RhdGlzdGljcwoKV2UgYmVnaW4gYnkgZXhhbWluaW5nIHN1bW1hcnkgc3RhdGlzdGljcy4KCmBgYHtyIHN1bW1hcnktc3RhdHN9CnN1bW1hcnkobXRjYXJzWywgYygibXBnIiwgImhwIiwgInd0IildKQpgYGAKCldlIG9ic2VydmUgdGhhdCBmdWVsIGVmZmljaWVuY3kgdmFyaWVzIHN1YnN0YW50aWFsbHkgYWNyb3NzIHZlaGljbGVzLCB3aXRoIGhvcnNlcG93ZXIKYW5kIHdlaWdodCBzaG93aW5nIHdpZGUgcmFuZ2VzLgoKLS0tCgojIyMgMy4yIENvcnJlbGF0aW9uIEFuYWx5c2lzCgpOZXh0LCB3ZSBleGFtaW5lIGNvcnJlbGF0aW9ucyBhbW9uZyBrZXkgdmFyaWFibGVzLgoKYGBge3IgY29ycmVsYXRpb259CmNvcihtdGNhcnNbLCBjKCJtcGciLCAiaHAiLCAid3QiKV0pCmBgYAoKVGhlcmUgYXBwZWFycyB0byBiZSBhIHN0cm9uZyBuZWdhdGl2ZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBmdWVsIGVmZmljaWVuY3kgYW5kIGJvdGgKaG9yc2Vwb3dlciBhbmQgdmVoaWNsZSB3ZWlnaHQuCgotLS0KCiMjIyAzLjMgRGF0YSBWaXN1YWxpemF0aW9uCgpXZSB2aXN1YWxpemUgdGhlc2UgcmVsYXRpb25zaGlwcyB1c2luZyBzY2F0dGVycGxvdHMuCgpgYGB7ciBzY2F0dGVycGxvdCwgZmlnLmNhcD0iRnVlbCBFZmZpY2llbmN5IHZzIFdlaWdodCJ9CnBsb3QoCiAgbXRjYXJzJHd0LAogIG10Y2FycyRtcGcsCiAgeGxhYiA9ICJXZWlnaHQgKDEwMDAgbGJzKSIsCiAgeWxhYiA9ICJNaWxlcyBQZXIgR2FsbG9uIiwKICBtYWluID0gIk1QRyB2cyBWZWhpY2xlIFdlaWdodCIsCiAgcGNoID0gMTkKKQphYmxpbmUobG0obXBnIH4gd3QsIGRhdGEgPSBtdGNhcnMpLCBjb2wgPSAicmVkIikKYGBgCgpUaGUgcGxvdCBpbmRpY2F0ZXMgdGhhdCBoZWF2aWVyIHZlaGljbGVzIHRlbmQgdG8gaGF2ZSBsb3dlciBmdWVsIGVmZmljaWVuY3kuCgotLS0KCiMjIDQuIFN0YXRpc3RpY2FsIE1vZGVsaW5nCgojIyMgNC4xIExpbmVhciBSZWdyZXNzaW9uIE1vZGVsCgpXZSBmaXQgYSBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbCB0byBwcmVkaWN0IGZ1ZWwgZWZmaWNpZW5jeS4KCmBgYHtyIHJlZ3Jlc3Npb259Cm1vZGVsIDwtIGxtKG1wZyB+IHd0ICsgaHAsIGRhdGEgPSBtdGNhcnMpCnN1bW1hcnkobW9kZWwpCmBgYAoKVGhlIG1vZGVsIHJlbGF0ZXMgbWlsZXMgcGVyIGdhbGxvbiB0byB2ZWhpY2xlIHdlaWdodCBhbmQgaG9yc2Vwb3dlci4KCi0tLQoKIyMjIDQuMiBNb2RlbCBJbnRlcnByZXRhdGlvbgoKQmFzZWQgb24gdGhlIGVzdGltYXRlZCBjb2VmZmljaWVudHM6CgotIFdlaWdodCBoYXMgYSBzdHJvbmcgbmVnYXRpdmUgZWZmZWN0IG9uIGZ1ZWwgZWZmaWNpZW5jeSAgCi0gSG9yc2Vwb3dlciBhbHNvIGNvbnRyaWJ1dGVzIG5lZ2F0aXZlbHkgIAotIEJvdGggcHJlZGljdG9ycyBhcmUgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCAgCgpUaGlzIHN1Z2dlc3RzIHRoYXQgaGVhdmllciBhbmQgbW9yZSBwb3dlcmZ1bCB2ZWhpY2xlcyBjb25zdW1lIG1vcmUgZnVlbC4KCi0tLQoKIyMgNS4gTW9kZWwgRGlhZ25vc3RpY3MKCldlIGFzc2VzcyBtb2RlbCBhc3N1bXB0aW9ucyB1c2luZyBkaWFnbm9zdGljIHBsb3RzLgoKYGBge3IgZGlhZ25vc3RpY3N9CnBhcihtZnJvdyA9IGMoMiwyKSkKcGxvdChtb2RlbCkKcGFyKG1mcm93ID0gYygxLDEpKQpgYGAKClJlc2lkdWFsIHBsb3RzIGluZGljYXRlIHJlYXNvbmFibGUgbGluZWFyaXR5IGFuZCBob21vc2NlZGFzdGljaXR5LgoKLS0tCgojIyA2LiBSZXN1bHRzIFN1bW1hcnkKCk91ciBhbmFseXNpcyBzaG93cyB0aGF0OgoKMS4gVmVoaWNsZSB3ZWlnaHQgaXMgdGhlIHN0cm9uZ2VzdCBwcmVkaWN0b3Igb2YgTVBHICAKMi4gSG9yc2Vwb3dlciBwcm92aWRlcyBhZGRpdGlvbmFsIGV4cGxhbmF0b3J5IHBvd2VyICAKMy4gVGhlIGZpdHRlZCBtb2RlbCBleHBsYWlucyBhIHN1YnN0YW50aWFsIHBvcnRpb24gb2YgdmFyaWF0aW9uICAKClRoZXNlIHJlc3VsdHMgYXJlIGNvbnNpc3RlbnQgd2l0aCBwaHlzaWNhbCBleHBlY3RhdGlvbnMuCgotLS0KCiMjIDcuIENvbmNsdXNpb24KClRoaXMgcmVwb3J0IGRlbW9uc3RyYXRlcyB0aGUgc3RhbmRhcmQgc3RydWN0dXJlIGZvciBTVEEgNTA2IGFzc2lnbm1lbnRzLgoKVXNpbmcgUiBNYXJrZG93biBhbGxvd3MgZm9yOgoKLSBSZXByb2R1Y2libGUgYW5hbHlzaXMgIAotIEludGVncmF0ZWQgbmFycmF0aXZlIGFuZCBjb2RlICAKLSBQcm9mZXNzaW9uYWwgZm9ybWF0dGluZyAgCgpGdXR1cmUgYXNzaWdubWVudHMgd2lsbCBmb2xsb3cgdGhpcyB0ZW1wbGF0ZS4KCi0tLQoKIyMgQXBwZW5kaXggKE9wdGlvbmFsKQoKQWRkaXRpb25hbCBhbmFseXNlcyBhbmQgY29kZSBtYXkgYmUgcGxhY2VkIGhlcmUgaWYgbmVlZGVkLgoKYGBge3IgZXh0cmF9Cm1lYW4obXRjYXJzJG1wZykKc2QobXRjYXJzJG1wZykKYGBgCgo=