Course Description
The main goal of this course is to
- provide a framework for applying basic statistical learning methods to build predictive models or perform exploratory analysis,
- properly tune, select, and validate statistical learning models, and
- build an ensemble of learning algorithms. Topics include the concepts of Ordinary Least Squares, Subset Selection, Regularization, Dimension Reduction, Classification, Cross-validation, Bootstrapping, and Ensemble learning.
Learning Goal
UNIST School of Business Administration (SBA) is currently preparing for achieving International Accreditation by the AACSB International - the Association to Advance Collegiate Schools of Business, which represents the highest standard of achievement for business schools worldwide. Less than 5% of the world’s 13,000 business programs have earned this distinction. AACSB accreditation means students will receive relevant knowledge, challenging courses, useful skills, easier access to employers, and a wealth of resources to help them succeed. One of the main steps toward accreditation is Assurance of Learning, which “refers to processes for demonstrating that students achieve learning expectations for the programs in which they participate. Assurance of learning also assists the school and faculty members to improve programs and courses. By measuring learning, the school can evaluate its students’ success at achieving learning goals, use the measures to plan improvement efforts, and (depending on the type of measures) provide feedback and guidance for individual students” (Eligibility Procedures and Accreditation Standards for Business Accreditation, AACSB International - the Association to Advance Collegiate Schools of Business) Accordingly, the Business Communication course has been chosen for the assessment purposes in the 2016 spring semester. The students who take this course will be assessed according to the following learning goal developed by the School:
- GLG.3 Able to develop creative approaches in research and solving theoretical and practical problems. They will be
- 3b Able to develop a critical and reflective approach to research and application of management theory and practice.
- GLG 5. Our graduates will be able to demonstrate the extensive knowledge in the particular area of interest. They will be
- 5a Able to understand the main research stream in the particular area of interest.
Weekly Schedule
- 2/27 Course Orientation
- Chapter 1: Basic definitions
- Chapter 2: Statistical Learning Statistical learning goal: estimate f, Prediction versus model interpretability tradeoff, Common problem classes: supervised learning (e.g. regression, classification) versus unsupervised learning ( e.g. clustering)
- Download and install R.
- Download the PDF textbook An Introduction to Statistical Learning with Applications in R ISLR Seventh Printing.
- Import library “ISLR” within R.
- Download all datasets the ISLR R package with all datasets for the text.
- Read ISLR chapter 1 and chapter 2 through section 2.1.2 (pp. 1-24).
- Optionally watch these supplementary videos:
- 3/06 Ordinary Least Square
- Chapter 3: Simple linear regression Coefficient estimation, Assessing the accuracy of coefficient estimates, Assessing the accuracy of the model, Multiple linear regression, Relationships between response and predictors, Predictor selection, Assessing model fit, Prediction and confidence in prediction
- Read chapter 3 through the end of section 3.2 (p. 82).
- Do the guided lab of section 3.6 through 3.6.3.
- Optionally watch these supplementary videos.
- 3/13 Subset Selection
- 3/20 Regularization
- 3/27 Generalized Additive Model
- Chapter 7: Moving Beyond Linearity Polynomial regression, Step and basis functions, Regression and smoothing splines, Local regressions, Generalized Additive Models (GAMs)
- Read chapter 7 and complete the guided lab.
- Optionally watch these supplementary videos.
- 4/03 Discriminant Analysis
- Chapter 4: Classification Linear discriminant analysis (LDA) Quadratic discriminant analysis (QDA)
- Read chapter 4 and complete the guided lab.
- Optionally watch these supplementary videos.
- 4/10 Logistic Regression
- Chapter 4: Classification Logistic regression and multinomial logistic regression
- Read chapter 4 and complete the guided lab.
- Optionally watch these supplementary videos.
- 4/17 Accuracy, Precision, and Recall
- Chapter 5: Validation Cross-Validation, Validation set method, Leave-one-out cross validation (LOOCV), k-Fold cross validation and the bias-variance trade-off, The Bootstrap
- Read chapter 5 and complete the guided lab.
- Optionally watch these supplementary videos.
- 4/24 Support Vector Machine
- 5/01 Principal Component Analysis
- 5/08 K-means Clustering
- 5/15 Hierarchical Clustering
5/22 No class. Buddha’s birthday.
- 5/29 Classification and Regression Tree
- 6/05 Bagging and Boosting
- 6/12 Review and Discussion
par(mar = c(4, 4, .1, .1))
with(mtcars, {
plot(mpg~hp, pch=20, col='darkgray')
lines(lowess(hp, mpg))
})

plot(cars)

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).
The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.
LS0tDQp0aXRsZTogIlN0YXRpc3RpY2FsIExlYXJuaW5nIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KDQotLS0NCg0KIyMjIENvdXJzZSBEZXNjcmlwdGlvbiANCg0KVGhlIG1haW4gZ29hbCBvZiB0aGlzIGNvdXJzZSBpcyB0byANCg0KIChpKSBwcm92aWRlIGEgZnJhbWV3b3JrIGZvciBhcHBseWluZyBiYXNpYyBzdGF0aXN0aWNhbCBsZWFybmluZyBtZXRob2RzIHRvIGJ1aWxkIHByZWRpY3RpdmUgbW9kZWxzIG9yIHBlcmZvcm0gZXhwbG9yYXRvcnkgYW5hbHlzaXMsIA0KIChpaSkgcHJvcGVybHkgdHVuZSwgc2VsZWN0LCBhbmQgdmFsaWRhdGUgc3RhdGlzdGljYWwgbGVhcm5pbmcgbW9kZWxzLCBhbmQgDQogKGlpaSkgYnVpbGQgYW4gZW5zZW1ibGUgb2YgbGVhcm5pbmcgYWxnb3JpdGhtcy4NClRvcGljcyBpbmNsdWRlIHRoZSBjb25jZXB0cyBvZiBPcmRpbmFyeSBMZWFzdCBTcXVhcmVzLCBTdWJzZXQgU2VsZWN0aW9uLCBSZWd1bGFyaXphdGlvbiwgRGltZW5zaW9uIFJlZHVjdGlvbiwgDQpDbGFzc2lmaWNhdGlvbiwgQ3Jvc3MtdmFsaWRhdGlvbiwgQm9vdHN0cmFwcGluZywgYW5kIEVuc2VtYmxlIGxlYXJuaW5nLg0KDQotLS0NCi0tLQ0KIyMjIExlYXJuaW5nIEdvYWwgCQkJCQkNCg0KVU5JU1QgU2Nob29sIG9mIEJ1c2luZXNzIEFkbWluaXN0cmF0aW9uIChTQkEpIGlzIGN1cnJlbnRseSBwcmVwYXJpbmcgZm9yIGFjaGlldmluZyBJbnRlcm5hdGlvbmFsIEFjY3JlZGl0YXRpb24gYnkgdGhlIEFBQ1NCIEludGVybmF0aW9uYWwgLSB0aGUgQXNzb2NpYXRpb24gdG8gQWR2YW5jZSBDb2xsZWdpYXRlIFNjaG9vbHMgb2YgQnVzaW5lc3MsIHdoaWNoIHJlcHJlc2VudHMgdGhlIGhpZ2hlc3Qgc3RhbmRhcmQgb2YgYWNoaWV2ZW1lbnQgZm9yIGJ1c2luZXNzIHNjaG9vbHMgd29ybGR3aWRlLiBMZXNzIHRoYW4gNSUgb2YgdGhlIHdvcmxkJ3MgMTMsMDAwIGJ1c2luZXNzIHByb2dyYW1zIGhhdmUgZWFybmVkIHRoaXMgZGlzdGluY3Rpb24uIEFBQ1NCIGFjY3JlZGl0YXRpb24gbWVhbnMgc3R1ZGVudHMgd2lsbCByZWNlaXZlIHJlbGV2YW50IGtub3dsZWRnZSwgY2hhbGxlbmdpbmcgY291cnNlcywgdXNlZnVsIHNraWxscywgZWFzaWVyIGFjY2VzcyB0byBlbXBsb3llcnMsIGFuZCBhIHdlYWx0aCBvZiByZXNvdXJjZXMgdG8gaGVscCB0aGVtIHN1Y2NlZWQuIA0KT25lIG9mIHRoZSBtYWluIHN0ZXBzIHRvd2FyZCBhY2NyZWRpdGF0aW9uIGlzIEFzc3VyYW5jZSBvZiBMZWFybmluZywgd2hpY2gg4oCccmVmZXJzIHRvIHByb2Nlc3NlcyBmb3IgZGVtb25zdHJhdGluZyB0aGF0IHN0dWRlbnRzIGFjaGlldmUgbGVhcm5pbmcgZXhwZWN0YXRpb25zIGZvciB0aGUgcHJvZ3JhbXMgaW4gd2hpY2ggdGhleSBwYXJ0aWNpcGF0ZS4gQXNzdXJhbmNlIG9mIGxlYXJuaW5nIGFsc28gYXNzaXN0cyB0aGUgc2Nob29sIGFuZCBmYWN1bHR5IG1lbWJlcnMgdG8gaW1wcm92ZSBwcm9ncmFtcyBhbmQgY291cnNlcy4gQnkgbWVhc3VyaW5nIGxlYXJuaW5nLCB0aGUgc2Nob29sIGNhbiBldmFsdWF0ZSBpdHMgc3R1ZGVudHPigJkgc3VjY2VzcyBhdCBhY2hpZXZpbmcgbGVhcm5pbmcgZ29hbHMsIHVzZSB0aGUgbWVhc3VyZXMgdG8gcGxhbiBpbXByb3ZlbWVudCBlZmZvcnRzLCBhbmQgKGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiBtZWFzdXJlcykgcHJvdmlkZSBmZWVkYmFjayBhbmQgZ3VpZGFuY2UgZm9yIGluZGl2aWR1YWwgc3R1ZGVudHPigJ0gKEVsaWdpYmlsaXR5IFByb2NlZHVyZXMgYW5kIEFjY3JlZGl0YXRpb24gU3RhbmRhcmRzIGZvciBCdXNpbmVzcyBBY2NyZWRpdGF0aW9uLCBBQUNTQiBJbnRlcm5hdGlvbmFsIC0gdGhlIEFzc29jaWF0aW9uIHRvIEFkdmFuY2UgQ29sbGVnaWF0ZSBTY2hvb2xzIG9mIEJ1c2luZXNzKQ0KQWNjb3JkaW5nbHksIHRoZSBCdXNpbmVzcyBDb21tdW5pY2F0aW9uIGNvdXJzZSBoYXMgYmVlbiBjaG9zZW4gZm9yIHRoZSBhc3Nlc3NtZW50IHB1cnBvc2VzIGluIHRoZSAyMDE2IHNwcmluZyBzZW1lc3Rlci4gVGhlIHN0dWRlbnRzIHdobyB0YWtlIHRoaXMgY291cnNlIHdpbGwgYmUgYXNzZXNzZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgbGVhcm5pbmcgZ29hbCBkZXZlbG9wZWQgYnkgdGhlIFNjaG9vbDoNCg0KDQogICAxLiBHTEcuMyBBYmxlIHRvIGRldmVsb3AgY3JlYXRpdmUgYXBwcm9hY2hlcyBpbiByZXNlYXJjaCBhbmQgc29sdmluZyB0aGVvcmV0aWNhbCBhbmQgcHJhY3RpY2FsIHByb2JsZW1zLiAgVGhleSB3aWxsIGJlDQogICANCiAgICsgM2IgQWJsZSB0byBkZXZlbG9wIGEgY3JpdGljYWwgYW5kIHJlZmxlY3RpdmUgYXBwcm9hY2ggdG8gcmVzZWFyY2ggYW5kIGFwcGxpY2F0aW9uIG9mIG1hbmFnZW1lbnQgdGhlb3J5IGFuZCBwcmFjdGljZS4gDQogICANCiAgIDIuIEdMRyA1LiBPdXIgZ3JhZHVhdGVzIHdpbGwgYmUgYWJsZSB0byBkZW1vbnN0cmF0ZSB0aGUgZXh0ZW5zaXZlIGtub3dsZWRnZSBpbiB0aGUgcGFydGljdWxhciBhcmVhIG9mIGludGVyZXN0LiAgVGhleSB3aWxsIGJlDQogICANCiAgICsgNWEgQWJsZSB0byB1bmRlcnN0YW5kIHRoZSBtYWluIHJlc2VhcmNoIHN0cmVhbSBpbiB0aGUgcGFydGljdWxhciBhcmVhIG9mIGludGVyZXN0Lg0KICAgDQoNCi0tLQ0KDQojIyMgV2Vla2x5IFNjaGVkdWxlCQ0KDQoNCjEuIDIvMjcJQ291cnNlIE9yaWVudGF0aW9uIAkNCisgQ2hhcHRlciAxOg0KX19CYXNpYyBkZWZpbml0aW9uc19fDQorIENoYXB0ZXIgMjogX19TdGF0aXN0aWNhbCBMZWFybmluZ19fDQpTdGF0aXN0aWNhbCBsZWFybmluZyBnb2FsOiBlc3RpbWF0ZSBmLA0KUHJlZGljdGlvbiB2ZXJzdXMgbW9kZWwgaW50ZXJwcmV0YWJpbGl0eSB0cmFkZW9mZiwNCkNvbW1vbiBwcm9ibGVtIGNsYXNzZXM6IHN1cGVydmlzZWQgbGVhcm5pbmcgKGUuZy4gcmVncmVzc2lvbiwgY2xhc3NpZmljYXRpb24pIHZlcnN1cyB1bnN1cGVydmlzZWQgbGVhcm5pbmcgKCBlLmcuIGNsdXN0ZXJpbmcpDQoNCihpKSBEb3dubG9hZCBhbmQgaW5zdGFsbCBSLg0KKGlpKSBEb3dubG9hZCB0aGUgUERGIHRleHRib29rIEFuIEludHJvZHVjdGlvbiB0byBTdGF0aXN0aWNhbCBMZWFybmluZyB3aXRoIEFwcGxpY2F0aW9ucyBpbiBSIFtJU0xSIFNldmVudGggUHJpbnRpbmddKGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9vcGVuP2lkPTFLRkFuWDM4N2NaTUhjTERnRm1wRW1QVXJ0QzBHeUFTTykuDQooaWlpKSBJbXBvcnQgbGlicmFyeSAiSVNMUiIgd2l0aGluIFIuICANCihpdikgRG93bmxvYWQgYWxsIGRhdGFzZXRzIHRoZSBJU0xSIFIgcGFja2FnZSB3aXRoIGFsbCBkYXRhc2V0cyBmb3IgdGhlIHRleHQuDQoodikgUmVhZCBJU0xSIGNoYXB0ZXIgMSBhbmQgY2hhcHRlciAyIHRocm91Z2ggc2VjdGlvbiAyLjEuMiAocHAuIDEtMjQpLg0KKHZpKSBPcHRpb25hbGx5IHdhdGNoIHRoZXNlIHN1cHBsZW1lbnRhcnkgdmlkZW9zOg0KDQogICsgSVNMUiBTbGlkZXM6ICBbU3RhdGlzdGljYWwgTGVhcm5pbmddKGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9vcGVuP2lkPTF2SkNoQkRyNkFaTjgwU2dJeFh6S0xjZENsaG4wVEtjVCkNCiAgKyBJU0xSIFZpZGVvczogIFtPcGVuaW5nIFJlbWFya3MgYW5kIEV4YW1wbGVzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTJ3TGZGQl82U0tJKSwgW1N1cGVydmlzZWQgYW5kIFVuc3VwZXJ2aXNlZCBMZWFybmluZ10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1MdmFUb2toWW5EdykNCiANCjIuIDMvMDYJT3JkaW5hcnkgTGVhc3QgU3F1YXJlCQ0KKyBDaGFwdGVyIDM6DQpfX1NpbXBsZSBsaW5lYXIgcmVncmVzc2lvbl9fDQpDb2VmZmljaWVudCBlc3RpbWF0aW9uLA0KQXNzZXNzaW5nIHRoZSBhY2N1cmFjeSBvZiBjb2VmZmljaWVudCBlc3RpbWF0ZXMsDQpBc3Nlc3NpbmcgdGhlIGFjY3VyYWN5IG9mIHRoZSBtb2RlbCwNCk11bHRpcGxlIGxpbmVhciByZWdyZXNzaW9uLA0KUmVsYXRpb25zaGlwcyBiZXR3ZWVuIHJlc3BvbnNlIGFuZCBwcmVkaWN0b3JzLA0KUHJlZGljdG9yIHNlbGVjdGlvbiwNCkFzc2Vzc2luZyBtb2RlbCBmaXQsDQpQcmVkaWN0aW9uIGFuZCBjb25maWRlbmNlIGluIHByZWRpY3Rpb24NCihpKSBSZWFkIGNoYXB0ZXIgMyB0aHJvdWdoIHRoZSBlbmQgb2Ygc2VjdGlvbiAzLjIgKHAuIDgyKS4gIA0KKGlpKSBEbyB0aGUgZ3VpZGVkIGxhYiBvZiBzZWN0aW9uIDMuNiB0aHJvdWdoIDMuNi4zLg0KKGlpaSkgT3B0aW9uYWxseSB3YXRjaCB0aGVzZSBzdXBwbGVtZW50YXJ5IHZpZGVvcy4NCiAgKyBJU0xSIFNsaWRlczogIFtMaW5lYXIgUmVncmVzc2lvbl0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/aWQ9MUFSN0R0aVhpM2cwcWFySFhWZ0JaczRSREthRlo3bW5fKQ0KICArIElTTFIgVmlkZW9zOiAgW1NpbXBsZSBMaW5lYXIgUmVncmVzc2lvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1Qc0U5VXFvV3RTNCZsaXN0PVBMNS1kYTNxR0I1SUJTU0NQQU5oVGdydzgyd3M3d19vcjkpLCBbSHlwb3RoZXNpcyBUZXN0aW5nXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUo2QWRvaU5VeVdJJmxpc3Q9UEw1LWRhM3FHQjVJQlNTQ1BBTmhUZ3J3ODJ3czd3X29yOSksIFtJbnRlcnByZXRpbmcgUmVncmVzc2lvbiBDb2VmZmljaWVudHNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9MWhiQ0p5TTljY3MmbGlzdD1QTDUtZGEzcUdCNUlCU1NDUEFOaFRncnc4MndzN3dfb3I5KSwgW0ludGVyYWN0aW9ucyBhbmQgTm9ubGluZWFyaXR5XShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUlGelZ4THYwVEtRJmxpc3Q9UEw1LWRhM3FHQjVJQlNTQ1BBTmhUZ3J3ODJ3czd3X29yOSkNCg0KMy4gMy8xMwlTdWJzZXQgU2VsZWN0aW9uCQ0KICArIElTTFIgU2xpZGVzOiBbTW9kZWwgU2VsZWN0aW9uXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xZGR2M1laSjliZHFjejhwQzRNeU4zTUpqdVVhU3FCWkMpDQogICsgSVNMUiBWaWRlb3M6IFtNb2RlbCBTZWxlY3Rpb24gYW5kIFF1YWxpdGF0aXZlIFByZWRpY3RvcnNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9M1Q2UlhtSUhiSjQmbGlzdD1QTDUtZGEzcUdCNUlCU1NDUEFOaFRncnc4MndzN3dfb3I5KSwgIFtCZXN0IFN1YnNldCBTZWxlY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9OTFzaTUybmszTEEpLCBbRm9yd2FyZCBTdGVwd2lzZSBTZWxlY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9bkxwSmRfaUttckUpLCBbQmFja3dhcmQgU3RlcHdpc2UgU2VsZWN0aW9uXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PU5KaE1TcEkyVWo4KSwgW0VzdGltYXRpbmcgVGVzdCBFcnJvciBJXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUxraWZFNDRteUxjKSwgW0VzdGltYXRpbmcgVGVzdCBFcnJvciBJSV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj0zcDlKTmFKQ09iNCkNCiAgDQo0LiAzLzIwCVJlZ3VsYXJpemF0aW9uCQ0KICArIElTTFIgU2xpZGVzOiBbTW9kZWwgU2VsZWN0aW9uXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xZGR2M1laSjliZHFjejhwQzRNeU4zTUpqdVVhU3FCWkMpDQogICsgSVNMUiBWaWRlb3M6IFtTaHJpbmthZ2UgTWV0aG9kcyBhbmQgUmlkZ2UgUmVncmVzc2lvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1jU0t6cWIwRUtTMCksIFtUaGUgTGFzc29dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9QTVJMUcxTWZVbUEpLCBbVHVuaW5nIFBhcmFtZXRlciBTZWxlY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9eE1LVlVzdGpYQkUpDQogIA0KNS4gMy8yNwlHZW5lcmFsaXplZCBBZGRpdGl2ZSBNb2RlbAkNCisgQ2hhcHRlciA3OiBfX01vdmluZyBCZXlvbmQgTGluZWFyaXR5X18NClBvbHlub21pYWwgcmVncmVzc2lvbiwNClN0ZXAgYW5kIGJhc2lzIGZ1bmN0aW9ucywNClJlZ3Jlc3Npb24gYW5kIHNtb290aGluZyBzcGxpbmVzLA0KTG9jYWwgcmVncmVzc2lvbnMsDQpHZW5lcmFsaXplZCBBZGRpdGl2ZSBNb2RlbHMgKEdBTXMpDQooaSkgUmVhZCBjaGFwdGVyIDcgYW5kIGNvbXBsZXRlIHRoZSBndWlkZWQgbGFiLg0KKGlpKSBPcHRpb25hbGx5IHdhdGNoIHRoZXNlIHN1cHBsZW1lbnRhcnkgdmlkZW9zLg0KICArIElTTFIgU2xpZGVzOiBbTW92aW5nIEJleW9uZCBMaW5lYXJpdHkNCl0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/aWQ9MXFvdVFQaDNpa0ctT0pObWl2d3pYdURVV3l4em9ldEtJKQ0KICArIElTTFIgVmlkZW9zOiAgW1BvbHlub21pYWwgUmVncmVzc2lvbiBhbmQgU3RlcCBGdW5jdGlvbnNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Z3RYUVhBN3FGM2MmbGlzdD1QTDUtZGEzcUdCNUlCbjg0ZnZoaC11Mk1VODBqdm84T29SKSwgW1BpZWNld2lzZSBQb2x5bm9taWFscyBhbmQgU3BsaW5lc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj03WklxelROQjhsayZsaXN0PVBMNS1kYTNxR0I1SUJuODRmdmhoLXUyTVU4MGp2bzhPb1IpLCBbU21vb3RoaW5nIFNwbGluZXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9bXhYSEphMURzV1EmbGlzdD1QTDUtZGEzcUdCNUlCbjg0ZnZoaC11Mk1VODBqdm84T29SKSwgW0xvY2FsIFJlZ3Jlc3Npb24gYW5kIEdlbmVyYWxpemVkIEFkZGl0aXZlIE1vZGVsc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1OMmhCWHFQaWVnUSZsaXN0PVBMNS1kYTNxR0I1SUJuODRmdmhoLXUyTVU4MGp2bzhPb1IpDQogIA0KNi4gNC8wMwlEaXNjcmltaW5hbnQgQW5hbHlzaXMJDQorIENoYXB0ZXIgNDogX19DbGFzc2lmaWNhdGlvbl9fDQpMaW5lYXIgZGlzY3JpbWluYW50IGFuYWx5c2lzIChMREEpDQpRdWFkcmF0aWMgZGlzY3JpbWluYW50IGFuYWx5c2lzIChRREEpDQooaSkgUmVhZCBjaGFwdGVyIDQgYW5kIGNvbXBsZXRlIHRoZSBndWlkZWQgbGFiLg0KKGlpKSBPcHRpb25hbGx5IHdhdGNoIHRoZXNlIHN1cHBsZW1lbnRhcnkgdmlkZW9zLg0KICArIElTTFIgU2xpZGVzOiBbQ2xhc3NpZmljYXRpb25dKGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9vcGVuP2lkPTFPU1M5bmFxaDZqR1BSN1hjVGI0bzQzUUpTelpKaXNsbikNCiAgKyBJU0xSIFZpZGVvczogW0ludHJvZHVjdGlvbiB0byBDbGFzc2lmaWNhdGlvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1zcXEyMS1WSWExYyksW0xpbmVhciBEaXNjcmltaW5hbnQgQW5hbHlzaXMgYW5kIEJheWVzIFRoZW9yZW1dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9UmZyR2lHMUhtM00pLCBbVW5pdmFyaWF0ZSBMaW5lYXIgRGlzY3JpbWluYW50IEFuYWx5c2lzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVFHMHBWSlhUNkVVKSwgW011bHRpdmFyaWF0ZSBMaW5lYXIgRGlzY3JpbWluYW50IEFuYWx5c2lzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVg0VkRaRHAydnF3KSwgW1F1YWRyYXRpYyBEaXNjcmltaW5hbnQgQW5hbHlzaXMgYW5kIE5haXZlIEJheWVzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTZGaU5HVFlBT0FBKQ0KIA0KNy4gNC8xMAlMb2dpc3RpYyBSZWdyZXNzaW9uCQ0KKyBDaGFwdGVyIDQ6IF9fQ2xhc3NpZmljYXRpb25fXw0KTG9naXN0aWMgcmVncmVzc2lvbiBhbmQgbXVsdGlub21pYWwgbG9naXN0aWMgcmVncmVzc2lvbg0KKGkpIFJlYWQgY2hhcHRlciA0IGFuZCBjb21wbGV0ZSB0aGUgZ3VpZGVkIGxhYi4NCihpaSkgT3B0aW9uYWxseSB3YXRjaCB0aGVzZSBzdXBwbGVtZW50YXJ5IHZpZGVvcy4NCiAgKyBJU0xSIFNsaWRlczogW0NsYXNzaWZpY2F0aW9uXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xT1NTOW5hcWg2akdQUjdYY1RiNG80M1FKU3paSmlzbG4pDQogICsgSVNMUiBWaWRlb3M6IFtMb2dpc3RpYyBSZWdyZXNzaW9uXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTMxUTVGR1JueHQ0KSwgW011bHRpcGxlIExvZ2lzdGljIFJlZ3Jlc3Npb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TXBYOHJWdl91NEUpDQoNCjguIDQvMTcJQWNjdXJhY3ksIFByZWNpc2lvbiwgYW5kIFJlY2FsbAkNCisgQ2hhcHRlciA1OiBfX1ZhbGlkYXRpb25fXw0KQ3Jvc3MtVmFsaWRhdGlvbiwNClZhbGlkYXRpb24gc2V0IG1ldGhvZCwNCkxlYXZlLW9uZS1vdXQgY3Jvc3MgdmFsaWRhdGlvbiAoTE9PQ1YpLA0Kay1Gb2xkIGNyb3NzIHZhbGlkYXRpb24gYW5kIHRoZSBiaWFzLXZhcmlhbmNlIHRyYWRlLW9mZiwNClRoZSBCb290c3RyYXANCihpKSBSZWFkIGNoYXB0ZXIgNSBhbmQgY29tcGxldGUgdGhlIGd1aWRlZCBsYWIuDQooaWkpIE9wdGlvbmFsbHkgd2F0Y2ggdGhlc2Ugc3VwcGxlbWVudGFyeSB2aWRlb3MuDQogICsgSVNMUiBTbGlkZXM6IFtDcm9zcy12YWxpZGF0aW9uIGFuZCB0aGUgQm9vdHN0cmFwXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xRWEzXzVlTGVYNDg2RktFbmJqSVlXeVo5MmRTXy02cE4pDQogICsgSVNMUiBWaWRlb3M6IFtWYWxpZGF0aW9uIFNldCBBcHByb2FjaF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1fMmlqNmVhYVNsMCksIFtrLWZvbGQgQ3Jvc3MtVmFsaWRhdGlvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1uWkFNNU9Ycmt0WSksIFtDcm9zcy1WYWxpZGF0aW9uOiBUaGUgUmlnaHQgYW5kIFdyb25nIFdheXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9UzA2SnBWb05hQTApDQogIA0KOS4gNC8yNAlTdXBwb3J0IFZlY3RvciBNYWNoaW5lCSAgICAgICAgIA0KICArIElTTFIgU2xpZGVzOiBbU3VwcG9ydCBWZWN0b3IgTWFjaGluZXMNCl0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/aWQ9MXVzME1BV0d4SmdRZElRRWJoR2pBZ1NNLTk4NnRtWlZhKQ0KICArIElTTFIgVmlkZW9zOiBbU3VwcG9ydCBWZWN0b3IgTWFjaGluZXNdKGh0dHBzOi8veW91dHUuYmUvTjhPUGtQNkJ5SEkpICAgIA0KICANCjEwLiA1LzAxCVByaW5jaXBhbCBDb21wb25lbnQgQW5hbHlzaXMJICANCiAgKyBJU0xSIFNsaWRlczogW1Vuc3VwZXJ2aXNlZCBMZWFybmluZ10oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/aWQ9MVllUkpqYThiZUxGZGttRTF3NWU1a1BUekg2VUhpVUU4KQ0KICArIElTTFIgVmlkZW9zOiBbVW5zdXBlcnZpc2VkIExlYXJuaW5nIGFuZCBQcmluY2lwYWwgQ29tcG9uZW50cyBBbmFseXNpc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1pcHl4U1lYZ3pqUSksIFtFeHBsb3JpbmcgUHJpbmNpcGFsIENvbXBvbmVudHMgQW5hbHlzaXMgYW5kIFByb3BvcnRpb24gb2YgVmFyaWFuY2UgRXhwbGFpbmVkXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWRidVNHV0NnZHp3KSANCiAgDQoxMS4gNS8wOAlLLW1lYW5zIENsdXN0ZXJpbmcJDQogICsgSVNMUiBTbGlkZXM6IFtodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xWWVSSmphOGJlTEZka21FMXc1ZTVrUFR6SDZVSGlVRThdDQogICsgSVNMUiBWaWRlb3M6IFtLLW1lYW5zIENsdXN0ZXJpbmddKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9YUl5YnVOdDlwczQpICAgICAgICAgICAgICANCiAgDQoxMi4gNS8xNQlIaWVyYXJjaGljYWwgQ2x1c3RlcmluZwkNCiAgKyBJU0xSIFNsaWRlczogW2h0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9vcGVuP2lkPTFZZVJKamE4YmVMRmRrbUUxdzVlNWtQVHpINlVIaVVFOF0NCiAgKyBJU0xSIFZpZGVvczogW0hpZXJhcmNoaWNhbCBDbHVzdGVyaW5nXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVR1dWM5WTA2dEFjKQ0KICANCjEzLiA1LzIyICBObyBjbGFzcy4gCUJ1ZGRoYSdzIGJpcnRoZGF5Lg0KDQoNCjE0LiA1LzI5CUNsYXNzaWZpY2F0aW9uIGFuZCBSZWdyZXNzaW9uIFRyZWUJICANCiAgKyBJU0xSIFNsaWRlczogW1RyZWUtYmFzZWQgTWV0aG9kcw0KXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xeVZrLWtSNWg3NVRHZEotTkJFZ05DNDJTQ195ZU5MNkQpDQogICsgSVNMUiBWaWRlb3M6IFtEZWNpc2lvbiBUcmVlc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj02RU5UYkszeVFVUSksIFtQcnVuaW5nIGEgRGVjaXNpb24gVHJlZV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1HZlBSN1hoZG9rYyksIFtDbGFzc2lmaWNhdGlvbiBUcmVlcyBhbmQgQ29tcGFyaXNvbiB3aXRoIExpbmVhciBNb2RlbHNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9aFBFSm9JVEJiUTQpDQogIA0KICANCjE1LiA2LzA1CUJhZ2dpbmcgYW5kIEJvb3N0aW5nCSAgICAgICAgICAgICANCiAgKyBJU0xSIFNsaWRlczogW1RyZWUtYmFzZWQgTWV0aG9kcw0KXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xeVZrLWtSNWg3NVRHZEotTkJFZ05DNDJTQ195ZU5MNkQpDQogICsgSVNMUiBWaWRlb3M6IFtCb290c3RyYXAgQWdncmVnYXRpb24gKEJhZ2dpbmcpIGFuZCBSYW5kb20gRm9yZXN0c10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1scV94ekJSSVdtNCksIFtCb29zdGluZyBhbmQgVmFyaWFibGUgSW1wb3J0YW5jZV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1VM01kQk55c2s5dykNCg0KICANCjE2LiA2LzEyCVJldmlldyBhbmQgRGlzY3Vzc2lvbgkgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQotLS0NCg0KLS0tDQojIyMgQ291cnNlIEluZm9ybWF0aW9uDQoNCkNvdXJzZSBDb2RlOiBCQVQ1MTMwMQkNCg0KSW5zdHJ1Y3RvcjoJSmVvbmdoYW4gSG9uZw0KDQpDb3Vyc2UgVGl0bGU6CVN0YXRpc3RpY2FsIExlYXJuaW5nCQ0KDQpPZmZpY2U6CUJBQjExNCA3MDYtMQ0KDQpZZWFyL1NlbWVzdGVyOiAyMDE4L1NwcmluZwkNCg0KVGVsZXBob25lOiAzMDQ0DQoNCkUtbWFpbDoJamVvbmdoYW4uaG9uZ0B1bmlzdC5hYy5rcg0KDQpDbGFzc3Jvb206IENhbXB1cy0xMDgNCg0KQ2xhc3MgVGltZTogVHVlIDE5OjAwLTIxOjMwIAkNCg0KT2ZmaWNlIEhvdXJzOglUdWUgMjE6MzAgfjIyOjMwDQoNCi0tLQ0KDQotLS0NCiMjIyBMZWFybmluZyBHb2FsIAkJCQkJDQpVTklTVCBTY2hvb2wgb2YgQnVzaW5lc3MgQWRtaW5pc3RyYXRpb24gKFNCQSkgaXMgY3VycmVudGx5IHByZXBhcmluZyBmb3IgYWNoaWV2aW5nIEludGVybmF0aW9uYWwgQWNjcmVkaXRhdGlvbiBieSB0aGUgQUFDU0IgSW50ZXJuYXRpb25hbCAtIHRoZSBBc3NvY2lhdGlvbiB0byBBZHZhbmNlIENvbGxlZ2lhdGUgU2Nob29scyBvZiBCdXNpbmVzcywgd2hpY2ggcmVwcmVzZW50cyB0aGUgaGlnaGVzdCBzdGFuZGFyZCBvZiBhY2hpZXZlbWVudCBmb3IgYnVzaW5lc3Mgc2Nob29scyB3b3JsZHdpZGUuIExlc3MgdGhhbiA1JSBvZiB0aGUgd29ybGQncyAxMywwMDAgYnVzaW5lc3MgcHJvZ3JhbXMgaGF2ZSBlYXJuZWQgdGhpcyBkaXN0aW5jdGlvbi4gQUFDU0IgYWNjcmVkaXRhdGlvbiBtZWFucyBzdHVkZW50cyB3aWxsIHJlY2VpdmUgcmVsZXZhbnQga25vd2xlZGdlLCBjaGFsbGVuZ2luZyBjb3Vyc2VzLCB1c2VmdWwgc2tpbGxzLCBlYXNpZXIgYWNjZXNzIHRvIGVtcGxveWVycywgYW5kIGEgd2VhbHRoIG9mIHJlc291cmNlcyB0byBoZWxwIHRoZW0gc3VjY2VlZC4gDQpPbmUgb2YgdGhlIG1haW4gc3RlcHMgdG93YXJkIGFjY3JlZGl0YXRpb24gaXMgQXNzdXJhbmNlIG9mIExlYXJuaW5nLCB3aGljaCDigJxyZWZlcnMgdG8gcHJvY2Vzc2VzIGZvciBkZW1vbnN0cmF0aW5nIHRoYXQgc3R1ZGVudHMgYWNoaWV2ZSBsZWFybmluZyBleHBlY3RhdGlvbnMgZm9yIHRoZSBwcm9ncmFtcyBpbiB3aGljaCB0aGV5IHBhcnRpY2lwYXRlLiBBc3N1cmFuY2Ugb2YgbGVhcm5pbmcgYWxzbyBhc3Npc3RzIHRoZSBzY2hvb2wgYW5kIGZhY3VsdHkgbWVtYmVycyB0byBpbXByb3ZlIHByb2dyYW1zIGFuZCBjb3Vyc2VzLiBCeSBtZWFzdXJpbmcgbGVhcm5pbmcsIHRoZSBzY2hvb2wgY2FuIGV2YWx1YXRlIGl0cyBzdHVkZW50c+KAmSBzdWNjZXNzIGF0IGFjaGlldmluZyBsZWFybmluZyBnb2FscywgdXNlIHRoZSBtZWFzdXJlcyB0byBwbGFuIGltcHJvdmVtZW50IGVmZm9ydHMsIGFuZCAoZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIG1lYXN1cmVzKSBwcm92aWRlIGZlZWRiYWNrIGFuZCBndWlkYW5jZSBmb3IgaW5kaXZpZHVhbCBzdHVkZW50c+KAnSAoRWxpZ2liaWxpdHkgUHJvY2VkdXJlcyBhbmQgQWNjcmVkaXRhdGlvbiBTdGFuZGFyZHMgZm9yIEJ1c2luZXNzIEFjY3JlZGl0YXRpb24sIEFBQ1NCIEludGVybmF0aW9uYWwgLSB0aGUgQXNzb2NpYXRpb24gdG8gQWR2YW5jZSBDb2xsZWdpYXRlIFNjaG9vbHMgb2YgQnVzaW5lc3MpDQpBY2NvcmRpbmdseSwgdGhlIEJ1c2luZXNzIENvbW11bmljYXRpb24gY291cnNlIGhhcyBiZWVuIGNob3NlbiBmb3IgdGhlIGFzc2Vzc21lbnQgcHVycG9zZXMgaW4gdGhlIDIwMTYgc3ByaW5nIHNlbWVzdGVyLiBUaGUgc3R1ZGVudHMgd2hvIHRha2UgdGhpcyBjb3Vyc2Ugd2lsbCBiZSBhc3Nlc3NlZCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBsZWFybmluZyBnb2FsIGRldmVsb3BlZCBieSB0aGUgU2Nob29sOg0KDQoqIEdMRy4zIEFibGUgdG8gZGV2ZWxvcCBjcmVhdGl2ZSBhcHByb2FjaGVzIGluIHJlc2VhcmNoIGFuZCBzb2x2aW5nIHRoZW9yZXRpY2FsIGFuZCBwcmFjdGljYWwgcHJvYmxlbXMuICBUaGV5IHdpbGwgYmUNCg0KKiAzYiBBYmxlIHRvIGRldmVsb3AgYSBjcml0aWNhbCBhbmQgcmVmbGVjdGl2ZSBhcHByb2FjaCB0byByZXNlYXJjaCBhbmQgYXBwbGljYXRpb24gb2YgbWFuYWdlbWVudCB0aGVvcnkgYW5kIHByYWN0aWNlLiANCg0KKiBHTEcgNS4gT3VyIGdyYWR1YXRlcyB3aWxsIGJlIGFibGUgdG8gZGVtb25zdHJhdGUgdGhlIGV4dGVuc2l2ZSBrbm93bGVkZ2UgaW4gdGhlIHBhcnRpY3VsYXIgYXJlYSBvZiBpbnRlcmVzdC4gIFRoZXkgd2lsbCBiZQ0KDQoqIDVhIEFibGUgdG8gdW5kZXJzdGFuZCB0aGUgbWFpbiByZXNlYXJjaCBzdHJlYW0gaW4gdGhlIHBhcnRpY3VsYXIgYXJlYSBvZiBpbnRlcmVzdA0KDQotLS0NCg0KLS0tDQoNCg0KYGBge3IgZ3JhcGhpY3N9DQpwYXIobWFyID0gYyg0LCA0LCAuMSwgLjEpKQ0Kd2l0aChtdGNhcnMsIHsNCnBsb3QobXBnfmhwLCBwY2g9MjAsIGNvbD0nZGFya2dyYXknKQ0KbGluZXMobG93ZXNzKGhwLCBtcGcpKQ0KfSkNCmBgYA0KDQpgYGB7cn0NCnBsb3QoY2FycykNCmBgYA0KDQpBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhciBvciBieSBwcmVzc2luZyAqQ3RybCtBbHQrSSouDQoNCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiBvciBwcmVzcyAqQ3RybCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLg0KDQpUaGUgcHJldmlldyBzaG93cyB5b3UgYSByZW5kZXJlZCBIVE1MIGNvcHkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBlZGl0b3IuIENvbnNlcXVlbnRseSwgdW5saWtlICpLbml0KiwgKlByZXZpZXcqIGRvZXMgbm90IHJ1biBhbnkgUiBjb2RlIGNodW5rcy4gSW5zdGVhZCwgdGhlIG91dHB1dCBvZiB0aGUgY2h1bmsgd2hlbiBpdCB3YXMgbGFzdCBydW4gaW4gdGhlIGVkaXRvciBpcyBkaXNwbGF5ZWQuDQo=