library(readr)
 student <- read_csv("/Users/cruz/Desktop/students.csv", col_names = TRUE)
Parsed with column specification:
cols(
  .default = col_character(),
  age = col_integer(),
  Medu = col_integer(),
  Fedu = col_integer(),
  traveltime = col_integer(),
  studytime = col_integer(),
  failures = col_integer(),
  famrel = col_integer(),
  freetime = col_integer(),
  goout = col_integer(),
  Dalc = col_integer(),
  Walc = col_integer(),
  health = col_integer(),
  absences = col_integer(),
  G1 = col_integer(),
  G2 = col_integer(),
  G3 = col_integer()
)
See spec(...) for full column specifications.
head(student)
library(dplyr)
package ‘dplyr’ was built under R version 3.4.1
Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
library(sjmisc)
package ‘sjmisc’ was built under R version 3.4.1Learn more about sjmisc with 'browseVignettes("sjmisc")'.
library(Zelig)
package ‘Zelig’ was built under R version 3.4.2Loading required package: survival
library(radiant.data)
Loading required package: magrittr
Loading required package: ggplot2
Loading required package: lubridate

Attaching package: ‘lubridate’

The following object is masked from ‘package:base’:

    date

Loading required package: tidyr
package ‘tidyr’ was built under R version 3.4.1
Attaching package: ‘tidyr’

The following object is masked from ‘package:magrittr’:

    extract

The following object is masked from ‘package:sjmisc’:

    replace_na


Attaching package: ‘radiant.data’

The following objects are masked from ‘package:lubridate’:

    month, wday

The following object is masked from ‘package:ggplot2’:

    diamonds

The following objects are masked from ‘package:sjmisc’:

    center, is_empty

The following object is masked from ‘package:dplyr’:

    mutate_each
library(DescTools)
package ‘DescTools’ was built under R version 3.4.1
Attaching package: ‘DescTools’

The following objects are masked from ‘package:Zelig’:

    Median, Mode

The following object is masked from ‘package:sjmisc’:

    %nin%
student2 <- student%>%
mutate(highed= ifelse(higher =="yes",1,0))
m0 <- glm(highed ~ age, family = binomial, data = student2)
summary(m0)

Call:
glm(formula = highed ~ age, family = binomial, data = student2)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.7515   0.1525   0.2143   0.3003   1.0397  

Coefficients:
            Estimate Std. Error z value   Pr(>|z|)    
(Intercept)  14.7370     3.1560   4.669 0.00000302 ***
age          -0.6859     0.1779  -3.855   0.000116 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 158.30  on 394  degrees of freedom
Residual deviance: 142.35  on 393  degrees of freedom
AIC: 146.35

Number of Fisher Scoring iterations: 6
m1 <- glm(highed ~ age + failures + studytime, family = binomial, data = student2)
summary(m1)

Call:
glm(formula = highed ~ age + failures + studytime, family = binomial, 
    data = student2)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.9603   0.1228   0.2048   0.2953   1.8641  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)   
(Intercept)  10.0939     3.3421   3.020  0.00253 **
age          -0.5151     0.1956  -2.633  0.00845 **
failures     -0.6932     0.2345  -2.956  0.00312 **
studytime     1.2582     0.4377   2.875  0.00404 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 158.30  on 394  degrees of freedom
Residual deviance: 118.99  on 391  degrees of freedom
AIC: 126.99

Number of Fisher Scoring iterations: 7
m2 <- glm(highed ~ age*failures + studytime, family = binomial, data = student2)
summary(m2)

Call:
glm(formula = highed ~ age * failures + studytime, family = binomial, 
    data = student2)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.0313   0.1059   0.1916   0.2795   1.5929  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)   
(Intercept)   12.9197     5.0331   2.567  0.01026 * 
age           -0.6806     0.2921  -2.330  0.01982 * 
failures      -2.7165     2.5687  -1.058  0.29027   
studytime      1.2767     0.4366   2.924  0.00346 **
age:failures   0.1160     0.1465   0.792  0.42843   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 158.30  on 394  degrees of freedom
Residual deviance: 118.38  on 390  degrees of freedom
AIC: 128.38

Number of Fisher Scoring iterations: 7
library(texreg)
Version:  1.36.23
Date:     2017-03-03
Author:   Philip Leifeld (University of Glasgow)

Please cite the JSS article in your publications -- see citation("texreg").

Attaching package: ‘texreg’

The following object is masked from ‘package:tidyr’:

    extract

The following object is masked from ‘package:magrittr’:

    extract
screenreg(list(m0, m1, m2))

================================================
                Model 1     Model 2    Model 3  
------------------------------------------------
(Intercept)      14.74 ***   10.09 **   12.92 * 
                 (3.16)      (3.34)     (5.03)  
age              -0.69 ***   -0.52 **   -0.68 * 
                 (0.18)      (0.20)     (0.29)  
failures                     -0.69 **   -2.72   
                             (0.23)     (2.57)  
studytime                     1.26 **    1.28 **
                             (0.44)     (0.44)  
age:failures                             0.12   
                                        (0.15)  
------------------------------------------------
AIC             146.35      126.99     128.38   
BIC             154.31      142.91     148.28   
Log Likelihood  -71.17      -59.50     -59.19   
Deviance        142.35      118.99     118.38   
Num. obs.       395         395        395      
================================================
*** p < 0.001, ** p < 0.01, * p < 0.05
anova(m0, m1, m2, test = "Chisq")
Analysis of Deviance Table

Model 1: highed ~ age
Model 2: highed ~ age + failures + studytime
Model 3: highed ~ age * failures + studytime
  Resid. Df Resid. Dev Df Deviance    Pr(>Chi)    
1       393     142.35                            
2       391     118.99  2  23.3590 0.000008466 ***
3       390     118.38  1   0.6088      0.4352    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
library(visreg)
package ‘visreg’ was built under R version 3.4.1
visreg(m0, "age", scale = "response")

visreg(m1, "age", by = "failures", scale = "response")

visreg(m2, "age", by = "studytime", scale = "response")

The analysis conducted displays data on secondary school students. My focus in this analysis was to better understand some of the factors that go into students wanting to get a higher education in this particular school. Although the observations seem quite limited it does give some insight on the factors that go into wanting to receive a higher education. It is also important to note that there is some drop-off with students who do not want to receive a higher education or drop out of school. Thus, I ran this analysis to uncover what might be some of the factors/differences that went into wanting to receive a higher education in this particular secondary school. The variable that I chose to be my dependent variable was “higher” this displayed whether or not students wanted to get a higher education. The independent variables I choose were some that I thought would have a significant impact on whether students in this particular school wanted a higher education some of these include “age” which associated age to higher education. “failures” this variable displayed past class failures, and “study time” which displayed hours per week spent studying. These cohesive factors were taken into consideration when evaluating what type of impact goes into students in this particular school want to receive higher education. The first step I took was uploading the data and the necessary packages to run this analysis. I then took the dependent binary variable “higher” and used the mutate and ifelse function and changed it so that 1 would pertain to “Yes” and 0 would pertain to “No”. I then proceeded to use the glm function for model 0 and the findings displayed that age was statistically significant factor of higher education however age displayed a slightly negative correlation with students wanting to get higher education (-0.68). In model 1 we see a slight shift as more variables are factored in. For example, both “faillures” and “studytime” are factored into the glm function and we see that both are statistically significant however failures show a negative correlation of (-0.693) with receiving a higher education but “studytime” displayed a positive correlation (1.258) and was statistically significant. In the last model M2, I took a slightly different approach and created an interaction term between age and failures and the results displayed that there was not a negative correlation in fact there was a slight better/positive correlation in this instance however it is important to note that in this school agefailures was not statistically significant. The models proved my hypothesis to be true that as age and failure increase students are less likely to want higher education and study time factor had a positive impact on wanting to receive a higher education in this particular secondary school. In conclusion after assessing all three models, I used the likelihood ratio test to determine which model best fit the data and found that model 2 best described my data. The analysis conducted displays data on secondary school students. My focus in this analysis was to better understand some of the factors that go into students wanting to get a higher education in this particular school. Although the observations seem quite limited it does give some insight on the factors that go into wanting to receive a higher education. It is also important to note that there is some drop-off with students who do not want to receive a higher education or drop out of school. Thus, I ran this analysis to uncover what might be some of the factors/differences that went into wanting to receive a higher education in this particular secondary school. The variable that I chose to be my dependent variable was “higher” this displayed whether or not students wanted to get a higher education. The independent variables I choose were some that I thought would have a significant impact on whether students in this particular school wanted a higher education some of these include “age” which associated age to higher education. “failures” this variable displayed past class failures, and “study time” which displayed hours per week spent studying. These cohesive factors were taken into consideration when evaluating what type of impact goes into students in this particular school want to receive higher education. The first step I took was uploading the data and the necessary packages to run this analysis. I then took the dependent binary variable “higher” and used the mutate and ifelse function and changed it so that 1 would pertain to “Yes” and 0 would pertain to “No”. I then proceeded to use the glm function for model 0 and the findings displayed that age was statistically significant factor of higher education however age displayed a slightly negative correlation with students wanting to get higher education (-0.68). In model 1 we see a slight shift as more variables are factored in. For example, both “faillures” and “studytime” are factored into the glm function and we see that both are statistically significant however failures show a negative correlation of (-0.693) with receiving a higher education but “studytime” displayed a positive correlation (1.258) and was statistically significant. In the last model M2, I took a slightly different approach and created an interaction term between age and failures and the results displayed that there was not a negative correlation in fact there was a slight better/positive correlation in this instance however it is important to note that in this school agefailures was not statistically significant. The models proved my hypothesis to be true that as age and failure increase students are less likely to want higher education and study time factor had a positive impact on wanting to receive a higher education in this particular secondary school. In conclusion after assessing all three models, I used the likelihood ratio test to determine which model best fit the data and found that model 2 best described my data.

LS0tCnRpdGxlOiAiQ3J1el9NQTcxMl9IVzQiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCmBgYHtyfQpsaWJyYXJ5KHJlYWRyKQogc3R1ZGVudCA8LSByZWFkX2NzdigiL1VzZXJzL2NydXovRGVza3RvcC9zdHVkZW50cy5jc3YiLCBjb2xfbmFtZXMgPSBUUlVFKQpgYGAKYGBge3J9CmhlYWQoc3R1ZGVudCkKYGBgCmBgYHtyfQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHNqbWlzYykKbGlicmFyeShaZWxpZykKbGlicmFyeShyYWRpYW50LmRhdGEpCmxpYnJhcnkoRGVzY1Rvb2xzKQoKCnN0dWRlbnQyIDwtIHN0dWRlbnQlPiUKbXV0YXRlKGhpZ2hlZD0gaWZlbHNlKGhpZ2hlciA9PSJ5ZXMiLDEsMCkpCgptMCA8LSBnbG0oaGlnaGVkIH4gYWdlLCBmYW1pbHkgPSBiaW5vbWlhbCwgZGF0YSA9IHN0dWRlbnQyKQpzdW1tYXJ5KG0wKQoKCmBgYApgYGB7cn0KCm0xIDwtIGdsbShoaWdoZWQgfiBhZ2UgKyBmYWlsdXJlcyArIHN0dWR5dGltZSwgZmFtaWx5ID0gYmlub21pYWwsIGRhdGEgPSBzdHVkZW50MikKc3VtbWFyeShtMSkKCmBgYApgYGB7cn0KCm0yIDwtIGdsbShoaWdoZWQgfiBhZ2UqZmFpbHVyZXMgKyBzdHVkeXRpbWUsIGZhbWlseSA9IGJpbm9taWFsLCBkYXRhID0gc3R1ZGVudDIpCnN1bW1hcnkobTIpCgpgYGAKCgpgYGB7cn0KbGlicmFyeSh0ZXhyZWcpCnNjcmVlbnJlZyhsaXN0KG0wLCBtMSwgbTIpKQoKCmBgYApgYGB7cn0KYW5vdmEobTAsIG0xLCBtMiwgdGVzdCA9ICJDaGlzcSIpCmBgYApgYGB7cn0KbGlicmFyeSh2aXNyZWcpCnZpc3JlZyhtMCwgImFnZSIsIHNjYWxlID0gInJlc3BvbnNlIikKYGBgCmBgYHtyfQp2aXNyZWcobTEsICJhZ2UiLCBieSA9ICJmYWlsdXJlcyIsIHNjYWxlID0gInJlc3BvbnNlIikKYGBgCgpgYGB7cn0KdmlzcmVnKG0yLCAiYWdlIiwgYnkgPSAic3R1ZHl0aW1lIiwgc2NhbGUgPSAicmVzcG9uc2UiKQpgYGAKCgpUaGUgYW5hbHlzaXMgY29uZHVjdGVkIGRpc3BsYXlzIGRhdGEgb24gc2Vjb25kYXJ5IHNjaG9vbCBzdHVkZW50cy4gTXkgZm9jdXMgaW4gdGhpcyBhbmFseXNpcyB3YXMgdG8gYmV0dGVyIHVuZGVyc3RhbmQgc29tZSBvZiB0aGUgZmFjdG9ycyB0aGF0IGdvIGludG8gc3R1ZGVudHMgd2FudGluZyB0byBnZXQgYSBoaWdoZXIgZWR1Y2F0aW9uIGluIHRoaXMgcGFydGljdWxhciBzY2hvb2wuIEFsdGhvdWdoIHRoZSBvYnNlcnZhdGlvbnMgc2VlbSBxdWl0ZSBsaW1pdGVkIGl0IGRvZXMgZ2l2ZSBzb21lIGluc2lnaHQgb24gdGhlIGZhY3RvcnMgdGhhdCBnbyBpbnRvIHdhbnRpbmcgdG8gcmVjZWl2ZSBhIGhpZ2hlciBlZHVjYXRpb24uIEl0IGlzIGFsc28gaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGVyZSBpcyBzb21lIGRyb3Atb2ZmIHdpdGggc3R1ZGVudHMgd2hvIGRvIG5vdCB3YW50IHRvIHJlY2VpdmUgYSBoaWdoZXIgZWR1Y2F0aW9uIG9yIGRyb3Agb3V0IG9mIHNjaG9vbC4gVGh1cywgSSByYW4gdGhpcyBhbmFseXNpcyB0byB1bmNvdmVyIHdoYXQgbWlnaHQgYmUgc29tZSBvZiB0aGUgZmFjdG9ycy9kaWZmZXJlbmNlcyB0aGF0IHdlbnQgaW50byB3YW50aW5nIHRvIHJlY2VpdmUgYSBoaWdoZXIgZWR1Y2F0aW9uIGluIHRoaXMgcGFydGljdWxhciBzZWNvbmRhcnkgc2Nob29sLgoJVGhlIHZhcmlhYmxlIHRoYXQgSSBjaG9zZSB0byBiZSBteSBkZXBlbmRlbnQgdmFyaWFibGUgd2FzIOKAnGhpZ2hlcuKAnSB0aGlzIGRpc3BsYXllZCB3aGV0aGVyIG9yIG5vdCBzdHVkZW50cyB3YW50ZWQgdG8gZ2V0IGEgaGlnaGVyIGVkdWNhdGlvbi4gVGhlIGluZGVwZW5kZW50IHZhcmlhYmxlcyBJIGNob29zZSB3ZXJlIHNvbWUgdGhhdCBJIHRob3VnaHQgd291bGQgaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB3aGV0aGVyIHN0dWRlbnRzIGluIHRoaXMgcGFydGljdWxhciBzY2hvb2wgd2FudGVkIGEgaGlnaGVyIGVkdWNhdGlvbiBzb21lIG9mIHRoZXNlIGluY2x1ZGUg4oCcYWdl4oCdIHdoaWNoIGFzc29jaWF0ZWQgYWdlIHRvIGhpZ2hlciBlZHVjYXRpb24uIOKAnGZhaWx1cmVz4oCdIHRoaXMgdmFyaWFibGUgZGlzcGxheWVkIHBhc3QgY2xhc3MgZmFpbHVyZXMsIGFuZCDigJxzdHVkeSB0aW1l4oCdIHdoaWNoIGRpc3BsYXllZCBob3VycyBwZXIgd2VlayBzcGVudCBzdHVkeWluZy4gVGhlc2UgY29oZXNpdmUgZmFjdG9ycyB3ZXJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIGV2YWx1YXRpbmcgd2hhdCB0eXBlIG9mIGltcGFjdCBnb2VzIGludG8gc3R1ZGVudHMgaW4gdGhpcyBwYXJ0aWN1bGFyIHNjaG9vbCB3YW50IHRvIHJlY2VpdmUgaGlnaGVyIGVkdWNhdGlvbi4KCSBUaGUgZmlyc3Qgc3RlcCBJIHRvb2sgd2FzIHVwbG9hZGluZyB0aGUgZGF0YSBhbmQgdGhlIG5lY2Vzc2FyeSBwYWNrYWdlcyB0byBydW4gdGhpcyBhbmFseXNpcy4gSSB0aGVuIHRvb2sgdGhlIGRlcGVuZGVudCBiaW5hcnkgdmFyaWFibGUg4oCcaGlnaGVy4oCdIGFuZCB1c2VkIHRoZSBtdXRhdGUgYW5kIGlmZWxzZSBmdW5jdGlvbiBhbmQgY2hhbmdlZCBpdCBzbyB0aGF0IDEgd291bGQgcGVydGFpbiB0byDigJxZZXPigJ0gYW5kIDAgd291bGQgcGVydGFpbiB0byDigJxOb+KAnS4gSSB0aGVuIHByb2NlZWRlZCB0byB1c2UgdGhlIGdsbSBmdW5jdGlvbiBmb3IgbW9kZWwgMCBhbmQgdGhlIGZpbmRpbmdzIGRpc3BsYXllZCB0aGF0IGFnZSB3YXMgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBmYWN0b3Igb2YgaGlnaGVyIGVkdWNhdGlvbiBob3dldmVyIGFnZSBkaXNwbGF5ZWQgYSBzbGlnaHRseSBuZWdhdGl2ZSBjb3JyZWxhdGlvbiB3aXRoIHN0dWRlbnRzIHdhbnRpbmcgdG8gZ2V0IGhpZ2hlciBlZHVjYXRpb24gKC0wLjY4KS4gSW4gbW9kZWwgMSB3ZSBzZWUgYSBzbGlnaHQgc2hpZnQgYXMgbW9yZSB2YXJpYWJsZXMgYXJlIGZhY3RvcmVkIGluLiBGb3IgZXhhbXBsZSwgYm90aCDigJxmYWlsbHVyZXPigJ0gYW5kIOKAnHN0dWR5dGltZeKAnSBhcmUgZmFjdG9yZWQgaW50byB0aGUgZ2xtIGZ1bmN0aW9uIGFuZCB3ZSBzZWUgdGhhdCBib3RoIGFyZSBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50IGhvd2V2ZXIgZmFpbHVyZXMgc2hvdyBhIG5lZ2F0aXZlIGNvcnJlbGF0aW9uIG9mICgtMC42OTMpIHdpdGggcmVjZWl2aW5nIGEgaGlnaGVyIGVkdWNhdGlvbiBidXQg4oCcc3R1ZHl0aW1l4oCdIGRpc3BsYXllZCBhIHBvc2l0aXZlIGNvcnJlbGF0aW9uICgxLjI1OCkgYW5kIHdhcyBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50LgpJbiB0aGUgbGFzdCBtb2RlbCBNMiwgSSB0b29rIGEgc2xpZ2h0bHkgZGlmZmVyZW50IGFwcHJvYWNoIGFuZCBjcmVhdGVkIGFuIGludGVyYWN0aW9uIHRlcm0gYmV0d2VlbiBhZ2UgYW5kIGZhaWx1cmVzIGFuZCB0aGUgcmVzdWx0cyBkaXNwbGF5ZWQgdGhhdCB0aGVyZSB3YXMgbm90IGEgbmVnYXRpdmUgY29ycmVsYXRpb24gaW4gZmFjdCB0aGVyZSB3YXMgYSBzbGlnaHQgYmV0dGVyL3Bvc2l0aXZlIGNvcnJlbGF0aW9uIGluIHRoaXMgaW5zdGFuY2UgaG93ZXZlciBpdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IGluIHRoaXMgc2Nob29sIGFnZSpmYWlsdXJlcyB3YXMgbm90IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQuIFRoZSBtb2RlbHMgcHJvdmVkIG15IGh5cG90aGVzaXMgdG8gYmUgdHJ1ZSB0aGF0IGFzIGFnZSBhbmQgZmFpbHVyZSBpbmNyZWFzZSBzdHVkZW50cyBhcmUgbGVzcyBsaWtlbHkgdG8gd2FudCBoaWdoZXIgZWR1Y2F0aW9uIGFuZCBzdHVkeSB0aW1lIGZhY3RvciBoYWQgYSBwb3NpdGl2ZSBpbXBhY3Qgb24gd2FudGluZyB0byByZWNlaXZlIGEgaGlnaGVyIGVkdWNhdGlvbiBpbiB0aGlzIHBhcnRpY3VsYXIgc2Vjb25kYXJ5IHNjaG9vbC4KSW4gY29uY2x1c2lvbiBhZnRlciBhc3Nlc3NpbmcgYWxsIHRocmVlIG1vZGVscywgSSB1c2VkIHRoZSBsaWtlbGlob29kIHJhdGlvIHRlc3QgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZGVsIGJlc3QgZml0IHRoZSBkYXRhIGFuZCBmb3VuZCB0aGF0IG1vZGVsIDIgYmVzdCBkZXNjcmliZWQgbXkgZGF0YS4KVGhlIGFuYWx5c2lzIGNvbmR1Y3RlZCBkaXNwbGF5cyBkYXRhIG9uIHNlY29uZGFyeSBzY2hvb2wgc3R1ZGVudHMuIE15IGZvY3VzIGluIHRoaXMgYW5hbHlzaXMgd2FzIHRvIGJldHRlciB1bmRlcnN0YW5kIHNvbWUgb2YgdGhlIGZhY3RvcnMgdGhhdCBnbyBpbnRvIHN0dWRlbnRzIHdhbnRpbmcgdG8gZ2V0IGEgaGlnaGVyIGVkdWNhdGlvbiBpbiB0aGlzIHBhcnRpY3VsYXIgc2Nob29sLiBBbHRob3VnaCB0aGUgb2JzZXJ2YXRpb25zIHNlZW0gcXVpdGUgbGltaXRlZCBpdCBkb2VzIGdpdmUgc29tZSBpbnNpZ2h0IG9uIHRoZSBmYWN0b3JzIHRoYXQgZ28gaW50byB3YW50aW5nIHRvIHJlY2VpdmUgYSBoaWdoZXIgZWR1Y2F0aW9uLiBJdCBpcyBhbHNvIGltcG9ydGFudCB0byBub3RlIHRoYXQgdGhlcmUgaXMgc29tZSBkcm9wLW9mZiB3aXRoIHN0dWRlbnRzIHdobyBkbyBub3Qgd2FudCB0byByZWNlaXZlIGEgaGlnaGVyIGVkdWNhdGlvbiBvciBkcm9wIG91dCBvZiBzY2hvb2wuIFRodXMsIEkgcmFuIHRoaXMgYW5hbHlzaXMgdG8gdW5jb3ZlciB3aGF0IG1pZ2h0IGJlIHNvbWUgb2YgdGhlIGZhY3RvcnMvZGlmZmVyZW5jZXMgdGhhdCB3ZW50IGludG8gd2FudGluZyB0byByZWNlaXZlIGEgaGlnaGVyIGVkdWNhdGlvbiBpbiB0aGlzIHBhcnRpY3VsYXIgc2Vjb25kYXJ5IHNjaG9vbC4KCVRoZSB2YXJpYWJsZSB0aGF0IEkgY2hvc2UgdG8gYmUgbXkgZGVwZW5kZW50IHZhcmlhYmxlIHdhcyDigJxoaWdoZXLigJ0gdGhpcyBkaXNwbGF5ZWQgd2hldGhlciBvciBub3Qgc3R1ZGVudHMgd2FudGVkIHRvIGdldCBhIGhpZ2hlciBlZHVjYXRpb24uIFRoZSBpbmRlcGVuZGVudCB2YXJpYWJsZXMgSSBjaG9vc2Ugd2VyZSBzb21lIHRoYXQgSSB0aG91Z2h0IHdvdWxkIGhhdmUgYSBzaWduaWZpY2FudCBpbXBhY3Qgb24gd2hldGhlciBzdHVkZW50cyBpbiB0aGlzIHBhcnRpY3VsYXIgc2Nob29sIHdhbnRlZCBhIGhpZ2hlciBlZHVjYXRpb24gc29tZSBvZiB0aGVzZSBpbmNsdWRlIOKAnGFnZeKAnSB3aGljaCBhc3NvY2lhdGVkIGFnZSB0byBoaWdoZXIgZWR1Y2F0aW9uLiDigJxmYWlsdXJlc+KAnSB0aGlzIHZhcmlhYmxlIGRpc3BsYXllZCBwYXN0IGNsYXNzIGZhaWx1cmVzLCBhbmQg4oCcc3R1ZHkgdGltZeKAnSB3aGljaCBkaXNwbGF5ZWQgaG91cnMgcGVyIHdlZWsgc3BlbnQgc3R1ZHlpbmcuIFRoZXNlIGNvaGVzaXZlIGZhY3RvcnMgd2VyZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBldmFsdWF0aW5nIHdoYXQgdHlwZSBvZiBpbXBhY3QgZ29lcyBpbnRvIHN0dWRlbnRzIGluIHRoaXMgcGFydGljdWxhciBzY2hvb2wgd2FudCB0byByZWNlaXZlIGhpZ2hlciBlZHVjYXRpb24uCgkgVGhlIGZpcnN0IHN0ZXAgSSB0b29rIHdhcyB1cGxvYWRpbmcgdGhlIGRhdGEgYW5kIHRoZSBuZWNlc3NhcnkgcGFja2FnZXMgdG8gcnVuIHRoaXMgYW5hbHlzaXMuIEkgdGhlbiB0b29rIHRoZSBkZXBlbmRlbnQgYmluYXJ5IHZhcmlhYmxlIOKAnGhpZ2hlcuKAnSBhbmQgdXNlZCB0aGUgbXV0YXRlIGFuZCBpZmVsc2UgZnVuY3Rpb24gYW5kIGNoYW5nZWQgaXQgc28gdGhhdCAxIHdvdWxkIHBlcnRhaW4gdG8g4oCcWWVz4oCdIGFuZCAwIHdvdWxkIHBlcnRhaW4gdG8g4oCcTm/igJ0uIEkgdGhlbiBwcm9jZWVkZWQgdG8gdXNlIHRoZSBnbG0gZnVuY3Rpb24gZm9yIG1vZGVsIDAgYW5kIHRoZSBmaW5kaW5ncyBkaXNwbGF5ZWQgdGhhdCBhZ2Ugd2FzIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgZmFjdG9yIG9mIGhpZ2hlciBlZHVjYXRpb24gaG93ZXZlciBhZ2UgZGlzcGxheWVkIGEgc2xpZ2h0bHkgbmVnYXRpdmUgY29ycmVsYXRpb24gd2l0aCBzdHVkZW50cyB3YW50aW5nIHRvIGdldCBoaWdoZXIgZWR1Y2F0aW9uICgtMC42OCkuIEluIG1vZGVsIDEgd2Ugc2VlIGEgc2xpZ2h0IHNoaWZ0IGFzIG1vcmUgdmFyaWFibGVzIGFyZSBmYWN0b3JlZCBpbi4gRm9yIGV4YW1wbGUsIGJvdGgg4oCcZmFpbGx1cmVz4oCdIGFuZCDigJxzdHVkeXRpbWXigJ0gYXJlIGZhY3RvcmVkIGludG8gdGhlIGdsbSBmdW5jdGlvbiBhbmQgd2Ugc2VlIHRoYXQgYm90aCBhcmUgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBob3dldmVyIGZhaWx1cmVzIHNob3cgYSBuZWdhdGl2ZSBjb3JyZWxhdGlvbiBvZiAoLTAuNjkzKSB3aXRoIHJlY2VpdmluZyBhIGhpZ2hlciBlZHVjYXRpb24gYnV0IOKAnHN0dWR5dGltZeKAnSBkaXNwbGF5ZWQgYSBwb3NpdGl2ZSBjb3JyZWxhdGlvbiAoMS4yNTgpIGFuZCB3YXMgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudC4KSW4gdGhlIGxhc3QgbW9kZWwgTTIsIEkgdG9vayBhIHNsaWdodGx5IGRpZmZlcmVudCBhcHByb2FjaCBhbmQgY3JlYXRlZCBhbiBpbnRlcmFjdGlvbiB0ZXJtIGJldHdlZW4gYWdlIGFuZCBmYWlsdXJlcyBhbmQgdGhlIHJlc3VsdHMgZGlzcGxheWVkIHRoYXQgdGhlcmUgd2FzIG5vdCBhIG5lZ2F0aXZlIGNvcnJlbGF0aW9uIGluIGZhY3QgdGhlcmUgd2FzIGEgc2xpZ2h0IGJldHRlci9wb3NpdGl2ZSBjb3JyZWxhdGlvbiBpbiB0aGlzIGluc3RhbmNlIGhvd2V2ZXIgaXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCBpbiB0aGlzIHNjaG9vbCBhZ2UqZmFpbHVyZXMgd2FzIG5vdCBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50LiBUaGUgbW9kZWxzIHByb3ZlZCBteSBoeXBvdGhlc2lzIHRvIGJlIHRydWUgdGhhdCBhcyBhZ2UgYW5kIGZhaWx1cmUgaW5jcmVhc2Ugc3R1ZGVudHMgYXJlIGxlc3MgbGlrZWx5IHRvIHdhbnQgaGlnaGVyIGVkdWNhdGlvbiBhbmQgc3R1ZHkgdGltZSBmYWN0b3IgaGFkIGEgcG9zaXRpdmUgaW1wYWN0IG9uIHdhbnRpbmcgdG8gcmVjZWl2ZSBhIGhpZ2hlciBlZHVjYXRpb24gaW4gdGhpcyBwYXJ0aWN1bGFyIHNlY29uZGFyeSBzY2hvb2wuCkluIGNvbmNsdXNpb24gYWZ0ZXIgYXNzZXNzaW5nIGFsbCB0aHJlZSBtb2RlbHMsIEkgdXNlZCB0aGUgbGlrZWxpaG9vZCByYXRpbyB0ZXN0IHRvIGRldGVybWluZSB3aGljaCBtb2RlbCBiZXN0IGZpdCB0aGUgZGF0YSBhbmQgZm91bmQgdGhhdCBtb2RlbCAyIGJlc3QgZGVzY3JpYmVkIG15IGRhdGEuCgo=