r plot simple slopes

"# Don't want def = TRUE for factors even though they are character#### Fit models ############################################################### Since output columns are conditional, I call summ here to see what they will# be. the data frame has columns for the slope of the test variable, the standard For more information on customizing the embed code, read Comprehensive, User-Friendly Toolkit for Probing Interactions#' \code{sim_slopes} conducts a simple slopes analysis for the purposes of#' understanding two- and three-way interaction effects in linear regression.#' @param centered A vector of quoted variable names that are to be#' mean-centered. If the model includes interactions at different levels (e.g., three two-way simple_slopes calculates all the simple effects of an interactionin a fitted model (linear, generalized linear, hierarchical linear, or ANOVA). Default#' @param jnalpha What should the alpha level be for the Johnson-Neyman#' interval? Default is the same as `format`.#' For more on what you can do with a `huxtable`, see \pkg{huxtable}.# This is a non-obvious way of seeing if we have a sim_margins or slopes# Get the number of moderator values per 2nd moderator values# Get the row I'll be inserting to; it's *2 because there are two row# tab <- huxtable::set_number_format(tab, value = digits)#' @title Plot coefficients from simple slopes analysis#' @description This creates a coefficient plot to visually summarize the#' @param ... arguments passed to [jtools::plot_coefs()]# If there's a second moderator, format as appropriate And John has another great way to do simple slopes in ggplot2! rdrr.io Find an R package R language docs Run R in your browser R Notebooks. slope for this variable was being tested. for continuous variables, and at each level of categorical variables. However, with the new package, I can't figure out how to plot the individual slopes, as in the figure for the probabilities of fixed effects by (random) group level, located here. models, the degrees of freedom and p-values will not appear, as these are I have X and Y data and want to put 95 % confidence interval in my R plot. (2005). In all but the linear model#' case, be aware that not all the assumptions applied to simple slopes#' \item{slopes}{A table of coefficients for the focal predictor at each#' \item{ints}{A table of coefficients for the intercept at each value of the#' \item{modx.values}{The values of the moderator used in the analysis}#' \item{mods}{A list containing each regression model created to estimate#' \item{jn}{If \code{johnson_neyman = TRUE}, a list of `johnson_neyman`#' objects from \code{\link{johnson_neyman}}. Plot coefficients from simple slopes analysis. By default, this function will provide slopes at -1 SD, the mean, and +1 SD can be overridden with the If a categorical variable with more than two levels is being tested, you may 11. Probing interactions in fixed and#' multilevel regression: Inferential and graphical techniques.#' \emph{Multivariate Behavioral Research}, \emph{40}(3), 373-400.#' \url{http://dx.doi.org/10.1207/s15327906mbr4003_5}#' Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). LS0tDQp0aXRsZTogJ0ludGVyYWN0aW9ucyBhbmQgU2ltcGxlIFNsb3BlcycNCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBmb250c2l6ZTogOHB0DQogICAgaGlnaGxpZ2h0OiB0ZXh0bWF0ZQ0KICAgIG51bWJlcl9zZWN0aW9uczogbm8NCiAgICB0aGVtZTogZmxhdGx5DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6DQogICAgICBjb2xsYXBzZWQ6IG5vDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoY2FjaGU9VFJVRSkNCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkgI1Nob3cgYWxsIHNjcmlwdCBieSBkZWZhdWx0DQprbml0cjo6b3B0c19jaHVuayRzZXQobWVzc2FnZSA9IEZBTFNFKSAjaGlkZSBtZXNzYWdlcyANCmtuaXRyOjpvcHRzX2NodW5rJHNldCh3YXJuaW5nID0gIEZBTFNFKSAjaGlkZSBwYWNrYWdlIHdhcm5pbmdzIA0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGZpZy53aWR0aD01KSAjU2V0IGRlZmF1bHQgZmlndXJlIHNpemVzDQprbml0cjo6b3B0c19jaHVuayRzZXQoZmlnLmhlaWdodD00LjUpICNTZXQgZGVmYXVsdCBmaWd1cmUgc2l6ZXMNCmtuaXRyOjpvcHRzX2NodW5rJHNldChmaWcuYWxpZ249J2NlbnRlcicpICNTZXQgZGVmYXVsdCBmaWd1cmUNCmtuaXRyOjpvcHRzX2NodW5rJHNldChmaWcuc2hvdyA9ICJob2xkIikgI1NldCBkZWZhdWx0IGZpZ3VyZQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KHJlc3VsdHMgPSAiaG9sZCIpICNTZXQgZGVmYXVsdCBmaWd1cmUNCmBgYA0KDQojIEludGVyYWN0aW9ucw0KLSBJbnRlcmFjdGlvbnMgaGF2ZSB0aGUgc2FtZSBtZWFuaW5nIHRoZXkgZGlkIGluIEFOT1ZBDQogICAgLSB0aGVyZSBpcyBhIHN5bmVyZ2lzdGljIGVmZmVjdCBiZXR3ZWVuIHR3byB2YXJpYWJsZXMNCiAgICAtIEhvd2V2ZXIgbm93IHdlIGNhbiBleGFtaW5lIGludGVyYWN0aW9ucyBiZXR3ZWVuIGNvbnRpbnVvdXMgdmFyaWFibGVzDQotIEFkZGl0aXZlIEVmZmVjdHM6DQoNCiQkWSA9IEJfMVggKyBCXzJaICsgQl8wJCQNCg0KLSBJbnRlcmFjdGl2ZSBFZmZlY3RzOiANCiQkWSA9IEJfMVggKyBCXzJaICsgQl8zWFogKyBCXzAkJA0KDQoNCiMjIEV4YW1wbGUgb2YgSW50ZXJhY3Rpb24NCi0gRFY6IFJlYWRpbmcgU3BlZWQsIElWczogQWdlICsgSVEgDQotIFNpbXVsYXRpb246ICRZID0gM1ggKyAuMlogKyAuNFhaICsxMDAgK1xlcHNpbG9uJA0KLSBTbyB3aGF0IHdlIG1lYW4gaXM6ICRSZWFkaW5nU3BlZWQgPSAzKkFnZSArIC4yKklRICsgLjQqQWdlKklRICsxMDAgK05vaXNlJA0KICAgIC0gU2V0IGFnZSB0byBiZSB1bmlmb3JtIGRpc3RyaWJ1dGlvbiBiZXR3ZWVuIDctMTcgDQogICAgLSBTZXQgSVEgdG8gYmUgbm9ybWFsLCAkTSQ9MTAwIGFuZCAkUyQ9MTUNCiAgICAtIFNldCAkXGVwc2lsb24kID0gMTUgKG5vcm1hbCBkaXN0cmlidXRpb24gb2Ygbm9pc2UpDQogICAgLSBOb3RlOiBGb3Igb3VyIHJlZ3Jlc3Npb24gc2ltdWxhdGlvbiB0byBtYXRjaCBvdXIgZXF1YXRpb24sIHdlIHNob3VsZCBjZW50ZXIgb3VyIFggYW5kIFogdmFyaWFibGVzIGZpcnN0LCBidXQgd2Ugd2lsbCBzYXZlIG91dCB0aGUgcmF3IHNjb3JlIA0KYGBge3IsIGVjaG89VFJVRSwgd2FybmluZz1GQUxTRX0NCnNldC5zZWVkKDQyKQ0KbiA8LSAyMDANCiMgVW5pZm9ybSBkaXN0cmlidXRpb24gb2YgQWdlcyANClggPC0gcnVuaWYobiwgNywgMTcpDQpYYzwtc2NhbGUoWCxzY2FsZT1GKQ0KIyBub3JtYWwgZGlzdHJvYnV0aW9uIG9mIElRICgxMDAgKy0xNSkgDQpaIDwtIHJub3JtKG4sIDEwMCwgMTUpDQpaYzwtc2NhbGUoWixzY2FsZT1GKQ0KIyBPdXIgZXF1YXRpb24gdG8gIGNyZWF0ZSBZDQpZIDwtIDMqWGMgKyAuMipaYyArIC40KlhjKlpjICsxMDAgKyBybm9ybShuLCBzZD0xNSkNCiNCdWlsdCBvdXIgZGF0YSBmcmFtZQ0KUmVhZGluZy5EYXRhPC1kYXRhLmZyYW1lKEFnZT1YLElRPVosUmVhZGluZ1NwZWVkPVkpDQpgYGANCg0KIyMgU2NhdHRlcnBsb3QgJiBjb3JyZWxhdGUgb3VyIHByZWRpY3RvcnMNCi0gV2Ugd2lsbCB1c2UgYSB1c2VmdWwgZGlhZ25vc3RpYyB0b29sIChHR2FsbHkpDQotIFdlIHdpbGwgdmlzdWFsaXplIHRoZSBkZW5zaXR5LCBzY2F0dGVycGxvdCBhbmQgY29ycmVsYXRpb24gYWxsIGF0IG9uY2UNCg0KYGBge3IsZmlnLndpZHRoPTQuNSxmaWcuaGVpZ2h0PTQuNX0NCmxpYnJhcnkoR0dhbGx5KQ0KRGlhZ1Bsb3QgPC0gZ2dwYWlycyhSZWFkaW5nLkRhdGEsICANCiAgICAgICAgICAgICAgbG93ZXIgPSBsaXN0KGNvbnRpbnVvdXMgPSAic21vb3RoIikpDQpEaWFnUGxvdA0KYGBgDQoNCi0gUHJlZGljdG9ycyBoYXZlIHNvbWUgaGV0ZXJvc2tlZGFzdGljIGlzc3VlcywgYnV0IHRoZSBjb3JyZWxhdGlvbnMgc2VlbSB0byBtYWtlIHNlbnNlDQoNCg0KIyMgTGV0J3MgdGVzdCBmb3IgYW4gaW50ZXJhY3Rpb24NCjEuIENlbnRlciB5b3VyIHZhcmlhYmxlcw0KMi4gTW9kZWwgMTogRXhhbWluZSBhIG1haW4tZWZmZWN0cyBtb2RlbCAoWCArIFopIFtub3QgbmVjZXNzYXJ5IGJ1dCB1c2VmdWxdDQozLiBNb2RlbCAyOiBFeGFtaW5lIGEgbWFpbi1lZmZlY3RzICsgSW50ZXJhY3Rpb24gbW9kZWwgKFggKyBaICsgWDpaKQ0KDQotIE5vdGU6IFlvdSBjYW4gc2ltcGx5IGNvZGUgaXQgYXMgWCpaIGluIHIsIGFzIGl0IHdpbGwgYXV0b21hdGljYWxseSBkbyAoWCArIFogKyBYOlopDQoNCmBgYHtyLCBlY2hvPVRSVUUsIHJlc3VsdHM9J2FzaXMnfQ0KI0NlbnRlcg0KUmVhZGluZy5EYXRhJEFnZS5DPC1zY2FsZShSZWFkaW5nLkRhdGEkQWdlLCBjZW50ZXIgPSBUUlVFLCBzY2FsZSA9IEZBTFNFKVssXQ0KUmVhZGluZy5EYXRhJElRLkM8LXNjYWxlKFJlYWRpbmcuRGF0YSRJUSwgY2VudGVyID0gVFJVRSwgc2NhbGUgPSBGQUxTRSlbLF0NCiMgUmVncmVzc2lvbnMNCkNlbnRlcmVkLlJlYWQuMTwtbG0oUmVhZGluZ1NwZWVkfkFnZS5DK0lRLkMsUmVhZGluZy5EYXRhKQ0KQ2VudGVyZWQuUmVhZC4yPC1sbShSZWFkaW5nU3BlZWR+QWdlLkMqSVEuQyxSZWFkaW5nLkRhdGEpDQojIFNob3cgcmVzdWx0cw0KbGlicmFyeShzdGFyZ2F6ZXIpDQpzdGFyZ2F6ZXIoQ2VudGVyZWQuUmVhZC4xLENlbnRlcmVkLlJlYWQuMix0eXBlPSJodG1sIiwNCiAgICAgICAgICBjb2x1bW4ubGFiZWxzID0gYygiTWFpbiBFZmZlY3RzIiwgIkludGVyYWN0aW9uIiksDQogICAgICAgICAgaW50ZXJjZXB0LmJvdHRvbSA9IEZBTFNFLCBzaW5nbGUucm93PVRSVUUsIA0KICAgICAgICAgIG5vdGVzLmFwcGVuZCA9IEZBTFNFLCBoZWFkZXI9RkFMU0UpDQpgYGANCg0KLSBBbHNvLCBjaGFuZ2UgaW4gJFJeMiQgaXMgc2lnbmlmaWNhbnQsIGFzIHdlIG1pZ2h0IGV4cGVjdA0KDQpgYGB7cn0NCkNoYW5nZUluUjwtYW5vdmEoQ2VudGVyZWQuUmVhZC4xLENlbnRlcmVkLlJlYWQuMikNCmtuaXRyOjprYWJsZShDaGFuZ2VJblIsIGRpZ2l0cz00KQ0KYGBgDQoNCiMjIyBFeGFtaW5lIHJlc2lkdWFscw0KLSBNYWluIEVmZmVjdHMgTW9kZWwNCmBgYHtyLCBmaWcud2lkdGg9Nn0NCmxpYnJhcnkoZ2dmb3J0aWZ5KQ0KYXV0b3Bsb3QoQ2VudGVyZWQuUmVhZC4xLCB3aGljaCA9IDE6MiwgbGFiZWwuc2l6ZSA9IDEpICsgdGhlbWVfYncoKQ0KYGBgDQoNCi0gSW50ZXJhY3Rpb25zIE1vZGVsDQoNCmBgYHtyLCBmaWcud2lkdGg9Nn0NCmF1dG9wbG90KENlbnRlcmVkLlJlYWQuMiwgd2hpY2ggPSAxOjIsIGxhYmVsLnNpemUgPSAxKSArIHRoZW1lX2J3KCkNCmBgYA0KDQojIyBVbmRlcnN0YW5kaW5nIHRoZSBJbnRlcmFjdGlvbiANCi0gTGV0J3MgZXhhbWluZSBhIDNkIHNjYXR0ZXIgcGxvdCBvZiB0aGUgcmF3IGRhdGEgYW5kIHBsb3QgYWdhaW5zdCBpdCB0aGUgcHJlZGljdGVkIHJlc3VsdHMgb2YgZWFjaCBtb2RlbCAoYWRkaXRpdmUgYW5kIGludGVyYWN0aW9uIG1vZGVsKQ0KLSBPbmNlIHdlIGhhdmUgYSAibW9kZWwiIG9mIHRoZSBkYXRhLCB3ZSBjYW4gZ2VuZXJhdGUgcHJlZGljdGlvbnMgZm9yICoqYWxsIHBvc3NpYmxlIEFnZXMqKiBhdCAqKmV2ZXJ5IHBvc3NpYmxlIElRKiogKHdpdGhpbiB0aGUgYWJzb2x1dGUgYm91bmRhcnkgbGltaXRzIGZvciBvdXIgZGF0YSkNCiAgICAtIFdpdGggMiBwcmVkaWN0b3JzIHRoYXQgZ2VuZXJhdGVzIGEgIjNEIHN1cmZhY2UgcGxhbmUuIg0KICAgICAgICAtIFlvdSBnbyBwYXN0IDIgcHJlZGljdG9ycyB3aXRoIHRoZXNlIHR5cGVzIG9mIHBsb3RzDQotIExldCdzIGV4YW1pbmUgTW9kZWwgMSAoYWRkaXRpdmUgZWZmZWN0cykgYXMgYSAzRCBzY2F0dGVyL3N1cmZhY2UgcGxvdA0KICAgIC0gU2NhdHRlciBkb3RzID0gUmF3IGRhdGEgcG9pbnRzDQogICAgLSBTdXJmYWNlID0gTW9kZWwgMSBQcmVkaWN0ZWQgUmVzdWx0cw0KICAgICAgICAtIEhvdyB3ZWxsIGRvZXMgdGhlIHN1cmZhY2UgZml0IHRoZSBkb3RzPyANCg0KYGBge3IsIGVjaG8gPSBGQUxTRX0NCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShkcGx5cikNClJlYWQuMTwtbG0oUmVhZGluZ1NwZWVkfkFnZStJUSxSZWFkaW5nLkRhdGEpDQpSZWFkLjI8LWxtKFJlYWRpbmdTcGVlZH5BZ2UqSVEsUmVhZGluZy5EYXRhKQ0KIyBwcmVkaWN0IG92ZXIgc2Vuc2libGUgZ3JpZCBvZiB2YWx1ZXMNCmdyYXBoX3Jlc28gPC0gLjUNCkFnZS5QTCA8LSBzZXEobWluKFJlYWRpbmcuRGF0YSRBZ2UpLCBtYXgoUmVhZGluZy5EYXRhJEFnZSksIGJ5ID0gZ3JhcGhfcmVzbykNCklRLlBMIDwtIHNlcShtaW4oUmVhZGluZy5EYXRhJElRKSwgbWF4KFJlYWRpbmcuRGF0YSRJUSksIGJ5ID0gZ3JhcGhfcmVzbykNCmQgPC0gc2V0TmFtZXMoZGF0YS5mcmFtZShleHBhbmQuZ3JpZChBZ2UuUEwsIElRLlBMKSksYygiQWdlIiwgIklRIikpDQp2YWxzMSA8LSBwcmVkaWN0KFJlYWQuMSwgbmV3ZGF0YSA9IGQpDQp2YWxzMiA8LSBwcmVkaWN0KFJlYWQuMiwgbmV3ZGF0YSA9IGQpDQojIGZvcm0gbWF0cml4IGFuZCBnaXZlIHRvIHBsb3RseQ0KbTEgPC0gbWF0cml4KHZhbHMxLCBucm93ID0gbGVuZ3RoKHVuaXF1ZShkJEFnZSkpLCBuY29sID0gbGVuZ3RoKHVuaXF1ZShkJElRKSkpDQptMiA8LSBtYXRyaXgodmFsczIsIG5yb3cgPSBsZW5ndGgodW5pcXVlKGQkQWdlKSksIG5jb2wgPSBsZW5ndGgodW5pcXVlKGQkSVEpKSkNCmBgYA0KDQpgYGB7ciwgZWNobyA9IEZBTFNFLCBmaWcud2lkdGg9NS41LGZpZy5oZWlnaHQ9NS41fQ0KcDEgPC0gcGxvdF9seShSZWFkaW5nLkRhdGEsIHggPSB+SVEsIHkgPSB+QWdlLCB6ID0gflJlYWRpbmdTcGVlZCkgJT4lDQogIGFkZF9tYXJrZXJzKG1hcmtlciA9IGxpc3Qoc2l6ZSA9IDQpKSAgJT4lIA0KICBhZGRfc3VyZmFjZSh4ID0gfklRLlBMLCB5ID0gfkFnZS5QTCwgeiA9IH5tMSxzaG93c2NhbGUgPSBGQUxTRSwgb3BhY2l0eT0uNzUpDQpwMQ0KYGBgDQoNCi0gTGV0J3MgZXhhbWluZSBNb2RlbCAyIChpbnRlcmFjdGlvbiBlZmZlY3RzKSBhcyBhIDNkIHNjYXR0ZXIvc3VyZmFjZSBwbG90DQogICAgLSBTY2F0dGVyIGRvdHMgPSBSYXcgZGF0YSBwb2ludHMNCiAgICAtIFN1cmZhY2UgPSBNb2RlbCAyIFByZWRpY3RlZCBSZXN1bHRzDQogICAgICAgIC0gSG93IHdlbGwgZG9lcyB0aGUgc3VyZmFjZSBmaXQgdGhlIGRvdHM/IA0KDQpgYGB7ciwgZWNobyA9IEZBTFNFLCBmaWcud2lkdGg9NS41LGZpZy5oZWlnaHQ9NS41fQ0KcDIgPC0gcGxvdF9seShSZWFkaW5nLkRhdGEsIHggPSB+SVEsIHkgPSB+QWdlLCB6ID0gflJlYWRpbmdTcGVlZCkgJT4lDQogIGFkZF9tYXJrZXJzKG1hcmtlciA9IGxpc3Qoc2l6ZSA9IDQpKSAgJT4lIA0KICBhZGRfc3VyZmFjZSh4ID0gfklRLlBMLCB5ID0gfkFnZS5QTCwgeiA9IH5tMixzaG93c2NhbGUgPSBGQUxTRSwgb3BhY2l0eT0uNzUpDQpwMg0KYGBgDQoNCg0KIyMgSG93IHZpc3VhbGl6ZSB0aGlzIGZvciBQYXBlcnM/DQotIFdlbGwsIHRoZXJlIGFyZSBzb21lIG9wdGlvbnMNCi0gV2UgY2FuIGRvIG91ciBmYW5jeS1wYW50cyBzdXJmYWNlIHBsb3QsIGJ1dCB0aGF0IGlzIGhhcmQgdG8gcHV0IGludG8gYSBwYXBlcg0KLSBNb3JlIGNvbW1vbiB0aGlzIGlzIHRvIGV4YW1pbmUgc2xvcGUgb2Ygb25lIGZhY3RvciBhdCBkaWZmZXJlbnQgbGV2ZWxzIG9mIHRoZSBvdGhlciAoU2ltcGxlIFNsb3BlcykgDQotIFdoYXQgd2UgbmVlZCB0byBkZWNpZGUgaXMgYXQgd2hpY2ggbGV2ZWxzDQoNCiMjIyBIYW5kIHBpY2tpbmcNCi0gTWFudWFsbHkgc2VsZWN0IHRoZSB3aGF0IGxldmVscyBvZiBlYWNoIHlvdSBhcmUgZ29pbmcgdG8gZXhhbWluZQ0KLSBGb3IgdHJhY2tpbmcgdmFsdWVzIG9mIGludGVyZXN0DQotIGhlcmUgSSBwaWNrZWQgLTMgdG8gMyBmb3IgYWdlIChtaXggYW5kIG1heCkgYW5kIC0xNSwgMCAxNSBmb3IgSVEgKHRoZW9yZXRpY2FsIDEgU0QgYW5kIG1lYW4pDQoNCmBgYHtyfQ0KbGlicmFyeShlZmZlY3RzKQ0KSW50ZXIuMWE8LWVmZmVjdChjKCJBZ2UuQypJUS5DIiksIENlbnRlcmVkLlJlYWQuMiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHhsZXZlbHM9bGlzdChBZ2UuQz1zZXEoLTMsMywgMSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElRLkM9YygtMTUsMCwxNSkpKQ0KYGBgDQoNCg0KYGBge3J9DQprbml0cjo6a2FibGUoc3VtbWFyeShJbnRlci4xYSkkZWZmZWN0LCBkaWdpdHM9NCkNCnBsb3QoSW50ZXIuMWEsIG11bHRpbGluZSA9IFRSVUUpDQpgYGANCg0KIyMjIFF1YW50aWxlDQotIEV4YW1pbmUgdGhlIGxldmVscyBiYXNlZCBvbiBxdWFudGlsZXMgKGJpbnMgYmFzZWQgb24gcHJvYmFiaWxpdHkpDQotIFdlIHdpbGwgZG8gdGhpcyBpbnRvIDUgZXF1YWwgYmlucyBiYXNlZCBvbiBwcm9iYWJpbGl0eSBjdXQtb2ZmcyANCi0gRG9lcyBub3QgYXNzdW1lIG5vcm1hbGl0eSBmb3IgSVYNCg0KYGBge3J9DQpJUS5RdWFudGlsZTwtcXVhbnRpbGUoUmVhZGluZy5EYXRhJElRLkMscHJvYnM9YygwLC4yNSwuNTAsLjc1LDEpKQ0KSVEuUXVhbnRpbGU8LXJvdW5kKElRLlF1YW50aWxlLDIpDQoNCkludGVyLjFiPC1lZmZlY3QoYygiQWdlLkMqSVEuQyIpLCBDZW50ZXJlZC5SZWFkLjIsDQogICAgICAgICAgICAgICAgIHhsZXZlbHM9bGlzdChBZ2UuQz1zZXEoLTMsMywgMSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVEuQz1JUS5RdWFudGlsZSkpDQpwbG90KEludGVyLjFiLCBtdWx0aWxpbmUgPSBUUlVFKQ0KYGBgDQoNCiMjIyBCYXNlZCBvbiB0aGUgU0QgDQotIFdlIHNlbGVjdCAzIHZhbHVlczogJE0tMVNEJCwgJE0kLCAkTSsxU0QkDQotIE5vdCBpdCBkb2VzIG5vdCBoYXZlIHRvIGJlIDEgU0QsIGl0IGNhbiBiZSAxLjUgLDIgb3IgMw0KLSBBc3N1bWVzIG5vcm1hbGl0eSBmb3IgSVYNCg0KYGBge3J9DQpJUS5TRDwtYyhtZWFuKFJlYWRpbmcuRGF0YSRJUS5DKS1zZChSZWFkaW5nLkRhdGEkSVEuQyksDQogICAgICAgICBtZWFuKFJlYWRpbmcuRGF0YSRJUS5DKSwNCiAgICAgICAgIG1lYW4oUmVhZGluZy5EYXRhJElRLkMpK3NkKFJlYWRpbmcuRGF0YSRJUS5DKSkNCklRLlNEPC1yb3VuZChJUS5TRCwyKQ0KDQpJbnRlci4xYzwtZWZmZWN0KGMoIkFnZS5DKklRLkMiKSwgQ2VudGVyZWQuUmVhZC4yLA0KICAgICAgICAgICAgICAgICB4bGV2ZWxzPWxpc3QoQWdlLkM9c2VxKC0zLDMsIDEpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElRLkM9SVEuU0QpKQ0KcGxvdChJbnRlci4xYywgbXVsdGlsaW5lID0gVFJVRSkNCmBgYA0KDQojIyBXaHkgY2VudGVyIHlvdXIgSVZzPw0KLSBUaGUgY2VudGVyIG9mIGVhY2ggSVYgcmVwcmVzZW50cyB0aGUgbWVhbiBvZiB0aGF0IElWDQotIFRodXMgd2hlbiB5b3UgaW50ZXJhY3QgdGhlbSAkWCpaJCwgdGhhdCBtZWFucyAkMCowID0gMCQNCi0gQWxzbywgdGhpcyBjYW4gcmVkdWNlIG11bHRpY29sbGluZWFyaXR5IGlzc3Vlcw0KLSBUaGlzIGlzIGJlY2F1c2UgaWYgJFgqWiQgY3JlYXRlcyBhIGxpbmUsIGl0IG1lYW5zIHlvdSBoYXZlIGFkZGVkIGEgbmV3IHByZWRpY3RvciAoWFopIHRoYXQgc3Ryb25nbHkgY29ycmVsYXRlcyB3aXRoIFggYW5kIFoNCg0KYGBge3J9DQpYPC1jKDAsMiw0LDYsOCwxMCkNClo8LWMoMCwyLDQsNiw4LDEwKQ0KWFo8LVgqWg0KcGxvdChYWikNCmBgYA0KDQotIENvcnJlbGF0aW9uczogJHJfe3gsen0kID0gYHIgcm91bmQoY29yKFgsWiksMilgLCAkcl97eCx4en0kID0gYHIgcm91bmQoY29yKFgsWFopLDIpYCwgJHJfe3oseHp9JCA9IGByIHJvdW5kKGNvcihaLFhaKSwyKWANCi1CdXQgaWYgeW91IGNlbnRlciB0aGVtLCBub3cgeW91IHdpbGwgbWFrZSBhIFUtc2hhcGVkIGludGVyYWN0aW9uIHdoaWNoIHdpbGwgYmUgb3J0aG9nb25hbCB0byBYIGFuZCBaIQ0KDQpgYGB7ciwgZWNobz1UUlVFLCB3YXJuaW5nPUZBTFNFfQ0KWC5DPC1zY2FsZShYLCBjZW50ZXIgPSBUUlVFLCBzY2FsZSA9IEZBTFNFKVssXQ0KWi5DPC1zY2FsZShaLCBjZW50ZXIgPSBUUlVFLCBzY2FsZSA9IEZBTFNFKVssXQ0KWFouQzwtWC5DKlouQw0KcGxvdChYWi5DKQ0KYGBgDQoNCi0gQ29ycmVsYXRpb25zOiAkcl97eF9jLHpfY30kID0gYHIgcm91bmQoY29yKFguQyxaLkMpLDIpYCwgJHJfe3hfYyx4el9jfSQgPSBgciByb3VuZChjb3IoWC5DLFhaLkMpLDIpYCwgJHJfe3pfYyx4el9jfSQgPSBgciByb3VuZChjb3IoWi5DLFhaLkMpLDIpYA0KDQotIExldCdzIGFwcGx5IHRoaXMgdG8gb3VyIGNsYXNzIGV4YW1wbGUNCi0gU2VlIGJlbG93IHdoZXJlIEkgbWFudWFsbHkgbXVsdGlwbHkgdGhlIHZhbHVlcyBhbmQgeW91IGNhbiBzZWUgYSB2ZXJ5IHN0cm9uZyBwb3NpdGl2ZSBzbG9wZQ0KLSBMZWZ0ID0gUmF3IFNjb3JlLCBSaWdodCBwbG90ID0gQ2VudGVyZWQgU2NvcmUNCg0KYGBge3IsIGVjaG89RkFMU0UsIGZpZy53aWR0aD0zLjI1LCBmaWcuaGVpZ2h0PTMuMjUsZmlnLnNob3c9J2hvbGQnLGZpZy5hbGlnbj0nY2VudGVyJ30NCmxpYnJhcnkoY2FyKQ0KUmVhZGluZy5EYXRhJEFnZS5YLklRPC1SZWFkaW5nLkRhdGEkQWdlKlJlYWRpbmcuRGF0YSRJUQ0KUmVhZGluZy5EYXRhJEFnZS5YLklRLkM8LVJlYWRpbmcuRGF0YSRBZ2UuQypSZWFkaW5nLkRhdGEkSVEuQw0Kc2NhdHRlcnBsb3QoUmVhZGluZ1NwZWVkfkFnZS5YLklRLCBkYXRhPSBSZWFkaW5nLkRhdGEsIHJlZy5saW5lPUZBTFNFLCBzbW9vdGhlcj1sb2Vzc0xpbmUpDQpzY2F0dGVycGxvdChSZWFkaW5nU3BlZWR+QWdlLlguSVEuQywgZGF0YT0gUmVhZGluZy5EYXRhLCByZWcubGluZT1GQUxTRSwgc21vb3RoZXI9bG9lc3NMaW5lKQ0KYGBgDQoNCiMjIyBMZXQncyBydW4gYW4gdW5jZW50ZXJlZCByZWdyZXNzaW9uDQotIGFzIHlvdSBjYW4gc2VlIHRoZSB0ZXJtcyBoYXZlIGNoYW5nZWQgZnJvbSBjZW50ZXJlZCBtb2RlbHMNCg0KYGBge3IsIGVjaG89VFJVRX0NClVuY2VudGVyZWQuUmVhZC4xPC1sbShSZWFkaW5nU3BlZWR+SVErQWdlLFJlYWRpbmcuRGF0YSkNClVuY2VudGVyZWQuUmVhZC4yPC1sbShSZWFkaW5nU3BlZWR+SVEqQWdlLFJlYWRpbmcuRGF0YSkNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRSwgcmVzdWx0cz0nYXNpcyd9DQpzdGFyZ2F6ZXIoVW5jZW50ZXJlZC5SZWFkLjEsVW5jZW50ZXJlZC5SZWFkLjIsdHlwZT0iaHRtbCIsDQogICAgICAgICAgY29sdW1uLmxhYmVscyA9IGMoIk1haW4gRWZmZWN0cyIsICJJbnRlcmFjdGlvbiIpLA0KICAgICAgICAgIGludGVyY2VwdC5ib3R0b20gPSBGQUxTRSwgc2luZ2xlLnJvdz1UUlVFLCANCiAgICAgICAgICBub3Rlcy5hcHBlbmQgPSBGQUxTRSwgaGVhZGVyPUZBTFNFKQ0KYGBgDQoNCiMjIyMgTXVsdGljb2xsaW5lYXJpdHkgb2YgdGhlIEludGVyYWN0aW9uDQotIE11bHRpY29sbGluZWFyaXR5IG9mIHRoZSB1bmNlbnRlcmVkIG1vZGVsDQoNCmBgYHtyLCBlY2hvPVRSVUUsIHdhcm5pbmc9RkFMU0V9DQp2aWYoVW5jZW50ZXJlZC5SZWFkLjIpDQpgYGANCg0KLSBXZSBsb3N0IG91ciBtYWluIGVmZmVjdCBvZiAqKkFnZSoqIGFzIHRoZSB2YXJpYW5jZXMgZ290IGFsbCBpbmZsYXRlZA0KLSBXZSBkaWQgbm90IGhhdmUgdGhpcyBwcm9ibGVtIGluIHRoZSBjZW50ZXJlZCBtb2RlbA0KDQpgYGB7ciwgZWNobz1UUlVFLCB3YXJuaW5nPUZBTFNFfQ0KdmlmKENlbnRlcmVkLlJlYWQuMikNCmBgYA0KDQotIE5vdGU6IEl0cyBPSyB0byBwbG90IHRoZSB1bmNlbnRlcmVkIHZlcnNpb24sIGJ1dCBydW4gdGhlIGFuYWx5c2lzIG9uIHRoZSBjZW50ZXJlZCBkYXRhDQoNCiMgVGVzdGluZyBTaW1wbGUgU2xvcGVzIA0KLSBUaGUgZ29hbCBoZXJlIGlzIHRvIGZpZ3VyZSBvdXQgd2hlbiB0aGUgc2xvcGUgYXQgYSBnaXZlbiBsZXZlbCBvZiBhbm90aGVyIHZhcmlhYmxlIGlzIGRpZmZlcmVudCBmcm9tIHplcm8NCi0gV2UgY2hvcCB1cCB0aGUgaW50ZXJhY3Rpb24gYXQgc3BlY2lmaWMgcGxhY2VzIGFzIHdlIGRpZCB3aXRoIHRoZSBpbnRlcmFjdGlvbnMgcGxvdHMgKC0xIFNELCBNLCArMSBTRCkgb24gdGhlICptb2RlcmF0aW5nKiB2YXJpYWJsZSAoYSB0aGlyZCB2YXJpYWJsZSB0aGF0IGFmZmVjdHMgdGhlIHN0cmVuZ3RoIG9mIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIGRlcGVuZGVudCBhbmQgaW5kZXBlbmRlbnQgdmFyaWFibGUpIA0KLSBOZXh0LCB3ZSB0ZXN0IHRoZSBzbG9wZXMgb24gdGhlICpwcmVkaWN0b3IqIHZhcmlhYmxlIChJViBvZiBtYWluIGludGVyZXN0KQ0KLSBFeGFtcGxlOiBQZXJmb3JtYW5jZSBvbiBhIHRhc2ssIHByZWRpY3RlZCBieSBMZXZlbCBvZiB0cmFpbmluZywgbW9kZXJhdGVkIGJ5IGhvdyBoYXJkIHRoZSBjaGFsbGVuZ2UgaXMNCg0KIyMgRXhhbXBsZSBvZiBJbnRlcmFjdGlvbg0KLSBEVjogUGVyZm9ybWFuY2UsIElWczogVHJhaW5pbmcgKFgpICsgQ2hhbGxlbmdlIChaKQ0KLSBTaW11bGF0aW9uOiAkWSA9IDIuMlggKyAyLjQ2WiArIC43NVhaICsxNiArXGVwc2lsb24kDQogICAgLSBTZXQgVHJhaW5pbmcgdG8gYmUgdW5pZm9ybSBkaXN0cmlidXRpb24gYmV0d2VlbiAtMTAgdG8gMTAgDQogICAgLSBTZXQgQ2hhbGxlbmdlIHRvIGJlIG5vcm1hbCwgJE0kPTAgYW5kICRTJD0xNQ0KICAgIC0gU2V0ICRcZXBzaWxvbiQgPSA1MCAobm9ybWFsIGRpc3RyaWJ1dGlvbiBvZiBub2lzZSkNCiAgICAtIE5vdGU6IEZvciBvdXIgcmVncmVzc2lvbiBzaW11bGF0aW9uIHdlIHdpbGwgc2V0IG1lYW5zIHRvIGFib3V0IHplcm8gKHNvIGFyZSBub3QgZm9yY2VkIHRvIGNlbnRlciB0aGVtKQ0KICAgIA0KYGBge3J9DQpzZXQuc2VlZCg0MikNCiMgMjUwIHBlb3BsZQ0KbiA8LSAyNTANCiNUcmFpbmluZyAobG93IHRvIGhpZ2gpDQpYIDwtIHJ1bmlmKG4sIC0xMCwgMTApDQojIG5vcm1hbCBkaXN0cmlidXRpb24gb2YgQ2hhbGxlbmdlIERpZmZpY3VsdHkNClogPC0gcm5vcm0obiwgMCwgMTUpDQojIE91ciBlcXVhdGlvbiB0byAgY3JlYXRlIFkNClkgPC0gMi4yKlggKyAyLjQ2KlogKyAuNzUqWCpaICsgMTYgKyBybm9ybShuLCBzZD01MCkNCiNCdWlsdCBvdXIgZGF0YSBmcmFtZQ0KU2tpbGwuRGF0YTwtZGF0YS5mcmFtZShUcmFpbmluZz1YLENoYWxsZW5nZT1aLFBlcmZvcm1hbmNlPVkpDQojcnVuIG91ciByZWdyZXNzaW9uDQpTa2lsbC5Nb2RlbC4xPC1sbShQZXJmb3JtYW5jZX5UcmFpbmluZytDaGFsbGVuZ2UsU2tpbGwuRGF0YSkNClNraWxsLk1vZGVsLjI8LWxtKFBlcmZvcm1hbmNlflRyYWluaW5nKkNoYWxsZW5nZSxTa2lsbC5EYXRhKQ0KYGBgDQoNCmBgYHtyLGVjaG89RkFMU0UsZmlnLndpZHRoPTQuNSxmaWcuaGVpZ2h0PTQuNX0NCkRpYWdQbG90MiA8LSBnZ3BhaXJzKFNraWxsLkRhdGEsICANCiAgICAgICAgICAgICAgbG93ZXIgPSBsaXN0KGNvbnRpbnVvdXMgPSAic21vb3RoIikpDQpEaWFnUGxvdDINCmBgYA0KDQpgYGB7cixlY2hvPUZBTFNFLCByZXN1bHRzPSdhc2lzJ30NCnN0YXJnYXplcihTa2lsbC5Nb2RlbC4xLFNraWxsLk1vZGVsLjIsdHlwZT0iaHRtbCIsDQogICAgICAgICAgY29sdW1uLmxhYmVscyA9IGMoIk1haW4gRWZmZWN0cyIsICJJbnRlcmFjdGlvbiIpLA0KICAgICAgICAgIGludGVyY2VwdC5ib3R0b20gPSBGQUxTRSwgc2luZ2xlLnJvdz1UUlVFLCANCiAgICAgICAgICBub3Rlcy5hcHBlbmQgPSBGQUxTRSwgaGVhZGVyPUZBTFNFKQ0KYGBgDQoNCg0KIyMgUGxvdHRpbmcgDQotIFdlIHdpbGwgdXNlIHRoZSBgcm9ja2NoYWxrYCBsaWJyYXJ5IHRvIHZpc3VhbGl6ZSBvdXIgaW50ZXJhY3Rpb24gYW5kIHRlc3Qgb3VyIHNpbXBsZSBzbG9wZXMNCg0KYGBge3J9DQpsaWJyYXJ5KHJvY2tjaGFsaykNCm0xcHMgPC0gcGxvdFNsb3BlcyhTa2lsbC5Nb2RlbC4yLCBtb2R4ID0gIkNoYWxsZW5nZSIsIHBsb3R4ID0gIlRyYWluaW5nIiwgbj0zLCBtb2R4VmFscz0ic3RkLmRldiIpDQptMXBzdHMgPC0gdGVzdFNsb3BlcyhtMXBzKQ0Kcm91bmQobTFwc3RzJGh5cG90ZXN0cyw0KQ0KYGBgDQoNCi0gV2Ugc2VlIHRoZSBzbG9wZSBhdCB0aGUgbWVhbiBpcyBub3Qgc2lnbmlmaWNhbnQsIA0KLSBUaGUgKzFTRCBhbmQgLTFTRCBhcmUgc2lnbmlmaWNhbnQsIHRoaXMgaXMgd2hhdCBpcyBkcml2aW5nIHRoZSBpbnRlcmFjdGlvbg0KLSBXZWxsIHRyYWluZWQgcGVvcGxlIGF0IGxvdyBsZXZlbHMgb2YgY2hhbGxlbmdlIGdldCB3b3JzZSB3aXRoIG1vcmUgdHJhaW5pbmcsIHdoaWxlIGhpZ2ggbGV2ZWxzIG9mIGNoYWxsZW5nZSB3aXRoIG1vcmUgdHJhaW5pbmcgZ2V0IGJldHRlcg0KLSBUaGUgYm9udXMgdXNpbmcgcm9ja2NoYWxrIGlzIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIG51bWJlciBvZiBsaW5lcyAoY2hhbmdlICRuPTMkKSB5b3Ugd2FudCB0byBzZWUgb3IgeW91IGNhbiB0ZXN0IHF1YW50aWxlcyBhcyB3ZWxsIChjaGFuZ2UgbW9keFZhbHM9InF1YW50aWxlIikNCg0KYGBge3J9DQptMXBRIDwtIHBsb3RTbG9wZXMoU2tpbGwuTW9kZWwuMiwgbW9keCA9ICJDaGFsbGVuZ2UiLCBwbG90eCA9ICJUcmFpbmluZyIsIG49NSwgbW9keFZhbHM9InF1YW50aWxlIikNCm0xcFF0cyA8LSB0ZXN0U2xvcGVzKG0xcFEpDQpyb3VuZChtMXBRdHMkaHlwb3Rlc3RzLDQpDQpgYGANCg0KIyMjIE5vdGVzDQotIFlvdSBvZnRlbiBkb24ndCBuZWVkIHRvIHJ1biB0aGUgKnQqLXRlc3RzIG9uIHRoZSBzaW1wbGUgc2xvcGVzLCBidXQgdGhleSBjYW4gdXNlZnVsIHRvIHRlc3QgdmVyeSBzcGVjaWZpYyBoeXBvdGhlc2VzDQotIFlvdSBjYW4gcnVuIHNpbXBsZSBzbG9wZXMgYW5hbHlzaXMgb24gdGhyZWUtd2F5IGludGVyYWN0aW9ucywgYnV0IGxldCdzIGxlYXZlIHRoYXQgYXNpZGUgZm9yIG5vdyBhcyB5b3Ugd291bGQgaGF2ZSB0byB1c2UgYSBkaWZmZXJlbnQgUi1wYWNrYWdlDQoNCiMgTm9uLUxpbmVhciBpbnRlcmFjdGlvbnMNCi0gWW91IGNhbiBoYXZlIG5vbi1saW5lYXIgdGVybXMgaW50ZXJhY3Rpbmcgd2l0aCBvdGhlciBsaW5lYXIgYW5kIG5vbi1saW5lYXIgdGVybXMNCi0gRXhhbXBsZTogUXVpdCBzbW9raW5nLCBYID0gRmVhciBvZiB5b3VyIGhlYWx0aCwgWiA9IG1vZGVyYXRlZCBieSBTZWxmLUVmZmljYWN5IGZvciBxdWl0dGluZw0KDQojIyBFeGFtcGxlIG9mIFBvbHlub21pYWwgSW50ZXJhY3Rpb24NCi0gRFY6IFF1aXQgc21va2luZywgSVZzOiBGZWFyIChYKSArIFNlbGYtRWZmaWNhY3kgKFopDQotIFNpbXVsYXRpb246ICRZID0gLS4xOFggLSAuMTVYXjIgKyBaICsgLjE2WFogKyAuMDdYXjJaICArMjAgK1xlcHNpbG9uJA0KICAgIC0gU2V0IEZlYXIgb2YgeW91ciBoZWFsdGggdG8gYmUgdW5pZm9ybSBkaXN0cmlidXRpb24gYmV0d2VlbiAxIHRvIDkgKGNlbnRlcmVkKSANCiAgICAtIFNldCBTZWxmLUVmZmljYWN5IHRvIGJlIG5vcm1hbCwgJE0kPTAgYW5kICRTJD0xNQ0KICAgIC0gU2V0ICRcZXBzaWxvbiQgPSAxMCAobm9ybWFsIGRpc3RyaWJ1dGlvbiBvZiBub2lzZSkNCiAgICANCmBgYHtyfQ0Kc2V0LnNlZWQoNDIpDQpuIDwtIDI1MA0KI0ZlYXIgb2YgSGVhbHRoDQpYIDwtIHNjYWxlKHJ1bmlmKG4sIDEsIDkpLCBzY2FsZT1GKQ0KI0NlbnRlcmVkIFNlbGYtRWZmaWNhY3kNClogPC0gc2NhbGUocnVuaWYobiwgMCwgMTUpLCBzY2FsZT1GKQ0KIyBPdXIgZXF1YXRpb24gdG8gIGNyZWF0ZSBZDQpZIDwtIC0uMDUqWCAtIC4yMCpYXjIgKyAuMTUqWCpaICsgLjIyKihYXjIpKlorIDM1ICsgcm5vcm0obiwgc2Q9MTApDQojQnVpbHQgb3VyIGRhdGEgZnJhbWUNClNtb2tlLkRhdGE8LWRhdGEuZnJhbWUoU21va2luZz1ZLEhlYWx0aD1YLFNlbGZFZmZpY2FjeT1aKQ0KI3J1biBvdXIgcmVncmVzc2lvbg0KU21va2UuTW9kZWwuMTwtbG0oU21va2luZ35wb2x5KEhlYWx0aCwyKStTZWxmRWZmaWNhY3ksU21va2UuRGF0YSkNClNtb2tlLk1vZGVsLjI8LWxtKFNtb2tpbmd+cG9seShIZWFsdGgsMikqU2VsZkVmZmljYWN5LFNtb2tlLkRhdGEpDQpTbW9rZS5Nb2RlbC4xLlI8LWxtKFNtb2tpbmd+cG9seShIZWFsdGgsMiwgcmF3PVQpK1NlbGZFZmZpY2FjeSxTbW9rZS5EYXRhKQ0KU21va2UuTW9kZWwuMi5SPC1sbShTbW9raW5nfnBvbHkoSGVhbHRoLDIsIHJhdz1UKSpTZWxmRWZmaWNhY3ksU21va2UuRGF0YSkNCmBgYA0KDQotIE9ydGhvZ29uYWwgUG9seW5vbWlhbHMNCmBgYHtyLCBlY2hvPUZBTFNFLCByZXN1bHRzPSdhc2lzJ30NCnN0YXJnYXplcihTbW9rZS5Nb2RlbC4xLFNtb2tlLk1vZGVsLjIsdHlwZT0iaHRtbCIsDQogICAgICAgICAgY29sdW1uLmxhYmVscyA9IGMoIk1haW4gRWZmZWN0cyIsICJJbnRlcmFjdGlvbiIpLA0KICAgICAgICAgIGludGVyY2VwdC5ib3R0b20gPSBGQUxTRSwgc2luZ2xlLnJvdz1UUlVFLCANCiAgICAgICAgICBub3Rlcy5hcHBlbmQgPSBGQUxTRSwgaGVhZGVyPUZBTFNFKQ0KYGBgDQoNCi0gUG93ZXIgUG9seW5vbWlhbHMNCg0KYGBge3IsIGVjaG89RkFMU0UsIHJlc3VsdHM9J2FzaXMnfQ0Kc3RhcmdhemVyKFNtb2tlLk1vZGVsLjEuUixTbW9rZS5Nb2RlbC4yLlIsdHlwZT0iaHRtbCIsDQogICAgICAgICAgY29sdW1uLmxhYmVscyA9IGMoIk1haW4gRWZmZWN0cyBOb24tT3J0aG8iLCAiSW50ZXJhY3Rpb24gTm9uLU9ydGhvIiksDQogICAgICAgICAgaW50ZXJjZXB0LmJvdHRvbSA9IEZBTFNFLCBzaW5nbGUucm93PVRSVUUsIA0KICAgICAgICAgIG5vdGVzLmFwcGVuZCA9IEZBTFNFLCBoZWFkZXI9RkFMU0UpDQpgYGANCg0KLSBOb3RlIGhvdyBkaWZmZXJlbnQgdGhlIHJlc3VsdHMgbWlnaHQgbG9vayB3aGVuIHlvdSBleGFtaW5lIHRoYXQgYXMgcG93ZXIgcG9seW5vbWlhbHMNCg0KDQojIyBQbG90dGluZyB0aGUgU2ltcGxlIFNsb3BlcyB3aGVuIHRoZXJlIGFyZSBDdXJ2ZXMNCi0gVGhlc2UgY2FuIGJlIGRvbmUgd2l0aCB0aGUgYGVmZmVjdHNgIHBhY2thZ2UgYXMgSSBzaG93ZWQgeW91IGFib3ZlIGFuZCBsYXN0IHdlZWsNCi0gV2Ugd2lsbCB3b3JrIHdpdGggdGhlIG9ydGhvZ29uYWwgcG9seW5vbWlhbCBtb2RlbHMNCiAgICAtIG9yIHdlIGNhbiBzaW1wbHkgdXNlIHRoZSBwbG90Q3VydmVzIGZ1bmN0aW9uIGZyb20gdGhlICdyb2NrY2hhbGsnIHBhY2thZ2UNCg0KYGBge3J9DQpTbW9rZUludGVyUGxvdCA8LSBwbG90Q3VydmVzKFNtb2tlLk1vZGVsLjIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R4ID0gIlNlbGZFZmZpY2FjeSIsIHBsb3R4ID0gIkhlYWx0aCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG49Myxtb2R4VmFscz0ic3RkLmRldiIpDQpgYGANCg0KLSBMZXRzIHBsb3QganVzdCB0aGUgbWFpbiBlZmZlY3QgKGFuZCB0aGluayBhYm91dCB3aGF0IGl0IG1lYW5zIHJlbGF0aXZlIHRoZSBwb3dlcikNCg0KYGBge3IsIGVjaG89VFJVRSwgd2FybmluZz1GQUxTRX0NCnBsb3RDdXJ2ZXMoU21va2UuTW9kZWwuMSwgcGxvdHggPSAiSGVhbHRoIikNCmBgYA0KDQotIERvZXMgbm90IGxvb2sgdmVyeSBxdWFkcmF0aWMsIGRvZXMgaXQ/IEluIG90aGVyIHdvcmRzLCB5b3UgY2Fubm90IHNlZSB0aGUgaGlnaGVyIG9yZGVyIGVmZmVjdHMgYXMgdGhleSBjYW4gYmUgaGlkZGVuIGJ5IHRoZSBtb2RlcmF0aW5nIHZhcmlhYmxlDQotIEhvdyB0byBmaW5kIHRoZXNlIGhpZGRlbiB0aGluZ3M/IA0KLSBZb3UgaGF2ZSB0byB0ZXN0IGZvciBpbnRlcmFjdGlvbnMgYW5kIGNoYW5nZXMgaW4gJFJeMiQNCi0gWW91IGhhdmUgdG8gdHJ5IHRvIGFkZCBoaWdoZXIgb3JkZXIgdGVybXMsIGJ1dCB0aGV5IHNob3VsZCBiZSBtb3RpdmF0ZWQgYnkgc29tZSB0aGVvcnkNCi0gV2hhdCBpZiB5b3UgZGlkIG5vdCBrbm93IHRoZSBzZWNvbmQgb3JkZXIgdGVybSB3YXMgaW4gdGhlIG1vZGVsIGFib3ZlLiANCg0KYGBge3IsIGVjaG89VFJVRSwgd2FybmluZz1GQUxTRX0NClNtb2tlLk1vZGVsLjEuTDwtbG0oU21va2luZ35IZWFsdGgrU2VsZkVmZmljYWN5LFNtb2tlLkRhdGEpDQpTbW9rZS5Nb2RlbC4yLkw8LWxtKFNtb2tpbmd+SGVhbHRoKlNlbGZFZmZpY2FjeSxTbW9rZS5EYXRhKQ0KYGBgDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCByZXN1bHRzPSdhc2lzJ30NCnN0YXJnYXplcihTbW9rZS5Nb2RlbC4xLkwsU21va2UuTW9kZWwuMi5MLHR5cGU9Imh0bWwiLA0KICAgICAgICAgIGNvbHVtbi5sYWJlbHMgPSBjKCJNYWluIEVmZmVjdHMiLCAiSW50ZXJhY3Rpb24iKSwNCiAgICAgICAgICBpbnRlcmNlcHQuYm90dG9tID0gRkFMU0UsDQogICAgICAgICAgc2luZ2xlLnJvdz1UUlVFLCANCiAgICAgICAgICBub3Rlcy5hcHBlbmQgPSBGQUxTRSwNCiAgICAgICAgICBoZWFkZXI9RkFMU0UpDQoNCmBgYA0KDQpgYGB7cn0NCkNoYW5nZUluUi5TbW9rZTwtYW5vdmEoU21va2UuTW9kZWwuMS5MLFNtb2tlLk1vZGVsLjIuTCkNCmtuaXRyOjprYWJsZShDaGFuZ2VJblIuU21va2UsIGRpZ2l0cz00KQ0KYGBgDQoNCi0gVGhlcmUgaXMgbm8gc2lnbmlmaWNhbnQgaW50ZXJhY3Rpb24sIGJ1dCBsZXQncyBwbG90IGl0IGFueXdheS4NCi0gUmVwbG90dGluZyBhcyBsaW5lYXIgaW50ZXJhY3Rpb24NCg0KYGBge3J9DQpTbW9rZUludGVyUGxvdC5MaW5lYXIgPC0gcGxvdFNsb3BlcyhTbW9rZS5Nb2RlbC4yLkwsIG1vZHggPSAiU2VsZkVmZmljYWN5IiwgcGxvdHggPSAiSGVhbHRoIiwgbj0zLCBtb2R4VmFscz0ic3RkLmRldiIpDQpgYGANCg0KDQotIExldCdzIGNoZWNrIHRoZSBjaGFuZ2UgaW4gJFJeMiQgZnJvbSBMaW5lYXIgaW50ZXJhY3Rpb24gbW9kZWwgdG8gcG9seSBpbnRlcmFjdGlvbiBtb2RlbCBub3cNCg0KYGBge3IsIGVjaG89VFJVRSwgcmVzdWx0cz0nYXNpcyd9DQpzdGFyZ2F6ZXIoU21va2UuTW9kZWwuMi5MLFNtb2tlLk1vZGVsLjIsdHlwZT0iaHRtbCIsDQogICAgICAgICAgY29sdW1uLmxhYmVscyA9IGMoIkxpbmVhciIsICJQb2x5IiksDQogICAgICAgICAgaW50ZXJjZXB0LmJvdHRvbSA9IEZBTFNFLA0KICAgICAgICAgIHNpbmdsZS5yb3c9VFJVRSwgDQogICAgICAgICAgbm90ZXMuYXBwZW5kID0gRkFMU0UsDQogICAgICAgICAgaGVhZGVyPUZBTFNFKQ0KYGBgDQoNCmBgYHtyfQ0KQ2hhbmdlSW5SLlNtb2tlLjI8LWFub3ZhKFNtb2tlLk1vZGVsLjIsU21va2UuTW9kZWwuMi5MKQ0Ka25pdHI6OmthYmxlKENoYW5nZUluUi5TbW9rZS4yLCBkaWdpdHM9NCkNCmBgYA0KDQojIyBOb3Rlcw0KLSBTbywgbW9kZWwgd2l0aCBwb2x5IGlzIGEgc2lnbmlmaWNhbnRseSBiZXR0ZXIgZml0DQotIFdvdWxkIGl0IGNoYW5nZSB0aGUgc3RvcnkgYnkgbXVjaD8gSW4gdGhpcyBjYXNlIFlFUywgYnV0IG5vdCBhbHdheXMhIA0KICAgIC0gU29tZXRpbWVzIHRoZSBpbXByb3ZlbWVudCBpbiBmaXQgaXMgbWlub3IgYW5kIGRvZXMgbm90IGNoYW5nZSB0aGUgc3RvcnkNCiAgICAgICAgLSBPZnRlbiBpZ25vcmluZyB0aGUgaGlnaGVyIG9yZGVyIHRlcm0gY2FuIG1ha2UgaXQgZWFzaWVyIHRvIHRlc3Qgc2ltcGxlIHNsb3BlcyBhbmQgdGVsbCBhIHN0b3J5DQogICAgLSBIb3dldmVyLCBpZ25vcmluZyB0aGUgaGlnaGVyIG9yZGVyIHRlcm1zIGNhbiB2aW9sYXRlIHlvdXIgYXNzdW1wdGlvbnMgd2hlbiB0aGUgcmVzdWx0cywgbGV0J3MgY29tcGFyZSBvdXIgbGluZWFyIHZzIHBvbHkgbW9kZWxzIHJlc2lkdWFscw0KDQotIExpbmVhciBNb2RlbA0KYGBge3IsIGZpZy53aWR0aD02fQ0KYXV0b3Bsb3QoU21va2UuTW9kZWwuMiwgd2hpY2ggPSAxOjIsIGxhYmVsLnNpemUgPSAxKSArIHRoZW1lX2J3KCkNCmBgYA0KDQotIFF1YWR0cmFkaWMgTW9kZWwNCmBgYHtyLCBmaWcud2lkdGg9Nn0NCmF1dG9wbG90KFNtb2tlLk1vZGVsLjIuTCwgd2hpY2ggPSAxOjIsIGxhYmVsLnNpemUgPSAxKSArIHRoZW1lX2J3KCkNCmBgYA0KDQo8c2NyaXB0Pg0KICAoZnVuY3Rpb24oaSxzLG8sZyxyLGEsbSl7aVsnR29vZ2xlQW5hbHl0aWNzT2JqZWN0J109cjtpW3JdPWlbcl18fGZ1bmN0aW9uKCl7DQogIChpW3JdLnE9aVtyXS5xfHxbXSkucHVzaChhcmd1bWVudHMpfSxpW3JdLmw9MSpuZXcgRGF0ZSgpO2E9cy5jcmVhdGVFbGVtZW50KG8pLA0KICBtPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUobylbMF07YS5hc3luYz0xO2Euc3JjPWc7bS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG0pDQogIH0pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnaHR0cHM6Ly93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20vYW5hbHl0aWNzLmpzJywnZ2EnKTsNCg0KICBnYSgnY3JlYXRlJywgJ1VBLTkwNDE1MTYwLTEnLCAnYXV0bycpOw0KICBnYSgnc2VuZCcsICdwYWdldmlldycpOw0KDQo8L3NjcmlwdD4NCg==\(ReadingSpeed = 3*Age + .2*IQ + .4*Age*IQ +100 +Noise\)\(Y = -.18X - .15X^2 + Z + .16XZ + .07X^2Z +20 +\epsilon\)

If you are using SPSS, this can be done by selecting "Covariance matrix" in the "Regression Coefficients" section of the "Statistics" dialog box. The program can be configured to evaluate the simple slopes for any value of the moderator. "# Saving key arguments as attributes of return object### Centering ################################################################## Use utility function shared by all interaction functions### Getting moderator values ##################################################"Johnson-Neyman intervals are not available for factor# Now specify def or not (for labeling w/ print method)# Don't want def = TRUE for factors even though they are character"mod2.values argument must include only levels of the factor. Using all factor levels instead. A 'sstest' value in a particular column indicates that the simple If you wish to test simple effects for a different interaction, simply switch Percentile.

140 0 obj <>stream