*,:after,:before{box-sizing:border-box}

/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media all and (max-width:800px){#admin-menu,#toolbar{display:none}html body.admin-menu,html body.toolbar{padding-top:0!important;margin-top:0!important}}#admin-menu,#toolbar{box-shadow:none!important}body.toolbar{padding-top:3.6em}.svg--enjoy-dims{width:36px;height:96px}.svg--logo-dims{width:206px;height:142px}@font-face{font-family:tstar_pro;src:url(../fonts/tstarpro-bold-webfont.woff2) format("woff2"),url(../fonts/tstarpro-bold-webfont.woff) format("woff");font-weight:700;font-style:normal}@font-face{font-family:tstar_pro;src:url(../fonts/tstarpro-medium-webfont.woff2) format("woff2"),url(../fonts/tstarpro-medium-webfont.woff) format("woff");font-weight:400;font-style:normal}img,media{max-width:100%;height:auto}body{overflow-x:hidden;min-width:320px}img{display:block;width:100%}.l-page{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:100vh;padding:3em}.l-grid{width:1000px}.l-grid:after{content:"";display:table;clear:both}@media (max-width:900px){.l-grid{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.l-grid__row{clear:left}.l-grid__row:after{content:"";display:table;clear:both}.l-grid__first{width:41.66667%;float:left;margin-right:-100%;margin-left:8.33333%;clear:none;padding-top:14%}@media (max-width:900px){.l-grid__first{float:none;width:100%;padding:0;max-width:300px;margin:0 auto;margin-bottom:2em}}.l-grid__second{width:27.75%;float:left;margin-right:-100%;margin-left:50%;clear:none}@media (max-width:900px){.l-grid__second{display:none}}.l-grid__third{width:15%;float:left;margin-right:-100%;margin-left:83.33333%;clear:none;padding-top:16%}@media (min-width:1200px){.l-grid__third{width:23.33333%;float:left;margin-right:-100%;margin-left:83.33333%;clear:none}}@media (min-width:1400px){.l-grid__third{width:30.83333%;float:left;margin-right:-100%;margin-left:83.33333%;clear:none}}@media (max-width:900px){.l-grid__third{float:none;width:100%;padding:0;max-width:300px;margin:0 auto}}.c-fancy-title{font-family:MuseoSlab-900;color:#b48b72;letter-spacing:.03em;line-height:1.1;text-align:center;font-size:20px}@media (min-width:1200px){.c-fancy-title{font-size:30px}}@media (min-width:1400px){.c-fancy-title{font-size:40px}}.l-grid__fourth{width:41.66667%;float:left;margin-right:-100%;margin-left:0;clear:none}@media (max-width:900px){.l-grid__fourth{text-align:center;float:none;width:100%;margin:0;padding:0 3em}}.l-grid__fifth{width:27.75%;float:left;margin-right:-100%;margin-left:22.25%;clear:none}@media (max-width:900px){.l-grid__fifth{display:none}}.l-grid__sixth{width:41.66667%;float:left;margin-right:-100%;margin-left:50%;clear:none}@media (max-width:900px){.l-grid__sixth{margin:0 auto;float:none;width:100%;max-width:300px}}.l-grid__seventh{width:41.66667%;float:left;margin-right:-100%;margin-left:50%;clear:none;margin-top:-14.33%}@media (max-width:900px){.l-grid__seventh{text-align:center;float:none;width:100%;margin:0;padding:3em}}.c-logo{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1;margin:0 auto;max-width:420px}@media (min-width:901px){.c-logo{margin-bottom:-100%;margin-top:-164px;width:420px}}.c-logo img{display:block;width:100%;height:auto}a{color:inherit}.c-body{padding:3em;font-family:MuseoSlab-300;font-size:15px;color:#404041}.c-body strong{font-family:MuseoSlab-700}@media (max-width:900px){.c-body{padding:0}}.c-announcement{font-family:Campton-SemiBold;font-size:18px;color:#404041;letter-spacing:6px;text-align:center;padding-top:16.8%}@media (max-width:900px){.c-announcement{margin:0;padding:0}}*{-webkit-font-smoothing:antialiased}html{font-family:tstar_pro,sans-serif;line-height:1.43;font-size:12px}@media (min-width:720px){html{font-size:14px}}p{margin:2em 0}h1,h2,h3,h4,h5,h6{font-size:1rem;margin:0}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9ub3JtYWxpemUuc2NzcyIsInN0eWxlcy5jc3MiLCJfaGFja3Muc2NzcyIsIi4uL3Nwcml0ZS9zcHJpdGUuc2NzcyIsInZhcmlhYmxlcy9fdHlwb2dyYXBoeS5zY3NzIiwiYmFzZS9fbWVkaWEuc2NzcyIsImJhc2UvX3RoZW1lLnNjc3MiLCJhYnN0cmFjdGlvbnMvX2NsZWFyZml4LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19hcGkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvbWF0aC9fY29sdW1ucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3Npbmd1bGFyaXR5Z3Mvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9hcGkvX2lzb2xhdGlvbi5zY3NzIiwiYmFzZS9fdHlwb2dyYXBoeS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUNFLHFCQUF1QixDQUN4Qjs7QUFFRCw0REFBNEQsQUFRNUQsS0FDRSx1QkFBd0IsQUFDeEIsMEJBQTJCLEFBQzNCLDZCQUErQixDQUNoQyxBQU1ELEtBQ0UsUUFBVSxDQUNYLEFBWUQsMkZBYUUsYUFBZSxDQUNoQixBQU9ELDRCQUlFLHFCQUFzQixBQUN0Qix1QkFBeUIsQ0FDMUIsQUFPRCxzQkFDRSxhQUFjLEFBQ2QsUUFBVSxDQUNYLEFDREQsa0JEVUUsWUFBYyxDQUNmLEFBU0QsRUFDRSw0QkFBOEIsQ0FDL0IsQUFNRCxpQkFFRSxTQUFXLENBQ1osQUFTRCxZQUNFLHdCQUEwQixDQUMzQixBQU1ELFNBRUUsZUFBa0IsQ0FDbkIsQUFNRCxJQUNFLGlCQUFtQixDQUNwQixBQU9ELEdBQ0UsY0FBZSxBQUNmLGNBQWlCLENBQ2xCLEFBTUQsS0FDRSxnQkFB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InNvdXJjZXNDb250ZW50IjpbIiosICo6YWZ0ZXIsICo6YmVmb3Jle1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufSIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbiosICo6YWZ0ZXIsICo6YmVmb3JlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5pbWcge1xuICBib3JkZXI6IDA7IH1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgI3Rvb2xiYXIsICNhZG1pbi1tZW51IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIGh0bWwgYm9keS50b29sYmFyLCBodG1sIGJvZHkuYWRtaW4tbWVudSB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH0gfVxuXG4jdG9vbGJhciwgI2FkbWluLW1lbnUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cblxuYm9keS50b29sYmFyIHtcbiAgcGFkZGluZy10b3A6IDMuNmVtOyB9XG5cbi5zdmctLWVuam95LWRpbXMge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiA5NnB4OyB9XG5cbi5zdmctLWxvZ28tZGltcyB7XG4gIHdpZHRoOiAyMDZweDtcbiAgaGVpZ2h0OiAxNDJweDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICd0c3Rhcl9wcm8nO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3RzdGFycHJvLWJvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvdHN0YXJwcm8tYm9sZC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICd0c3Rhcl9wcm8nO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3RzdGFycHJvLW1lZGl1bS13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy90c3RhcnByby1tZWRpdW0td2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICd0c3Rhcl9wcm8nO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3RzdGFycHJvLWJvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvdHN0YXJwcm8tYm9sZC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICd0c3Rhcl9wcm8nO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3RzdGFycHJvLW1lZGl1bS13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy90c3RhcnByby1tZWRpdW0td2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICd0c3Rhcl9wcm8nO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3RzdGFycHJvLWJvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvdHN0YXJwcm8tYm9sZC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICd0c3Rhcl9wcm8nO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3RzdGFycHJvLW1lZGl1bS13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy90c3RhcnByby1tZWRpdW0td2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5pbWcsIG1lZGlhIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87IH1cblxuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWluLXdpZHRoOiAzMjBweDsgfVxuXG5pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmwtcGFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgcGFkZGluZzogM2VtOyB9XG5cbi5sLWdyaWQge1xuICB3aWR0aDogMTAwMHB4OyB9XG4gIC5sLWdyaWQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLmwtZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5sLWdyaWRfX3JvdyB7XG4gIGNsZWFyOiBsZWZ0OyB9XG4gIC5sLWdyaWRfX3JvdzphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4ubC1ncmlkX19maXJzdCB7XG4gIHdpZHRoOiA0MS42NjY2NyU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IC0xMDAlO1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7XG4gIGNsZWFyOiBub25lO1xuICBwYWRkaW5nLXRvcDogMTQlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5sLWdyaWRfX2ZpcnN0IHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMmVtOyB9IH1cblxuLmwtZ3JpZF9fc2Vjb25kIHtcbiAgd2lkdGg6IDI3Ljc1JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogLTEwMCU7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIGNsZWFyOiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5sLWdyaWRfX3NlY29uZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmwtZ3JpZF9fdGhpcmQge1xuICB3aWR0aDogMTUlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTtcbiAgY2xlYXI6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAxNiU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5sLWdyaWRfX3RoaXJkIHtcbiAgICAgIHdpZHRoOiAyMy4zMzMzMyU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlO1xuICAgICAgY2xlYXI6IG5vbmU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gICAgLmwtZ3JpZF9fdGhpcmQge1xuICAgICAgd2lkdGg6IDMwLjgzMzMzJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7XG4gICAgICBjbGVhcjogbm9uZTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5sLWdyaWRfX3RoaXJkIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cblxuLmMtZmFuY3ktdGl0bGUge1xuICAvKiBpbnRlcmlldXIgJiA6ICovXG4gIGZvbnQtZmFtaWx5OiBNdXNlb1NsYWItOTAwO1xuICBjb2xvcjogI0I0OEI3MjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDIwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5jLWZhbmN5LXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgICAuYy1mYW5jeS10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDQwcHg7IH0gfVxuXG4ubC1ncmlkX19mb3VydGgge1xuICB3aWR0aDogNDEuNjY2NjclO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGNsZWFyOiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5sLWdyaWRfX2ZvdXJ0aCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMCAzZW07IH0gfVxuXG4ubC1ncmlkX19maWZ0aCB7XG4gIHdpZHRoOiAyNy43NSU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IC0xMDAlO1xuICBtYXJnaW4tbGVmdDogMjIuMjUlO1xuICBjbGVhcjogbm9uZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgICAubC1ncmlkX19maWZ0aCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmwtZ3JpZF9fc2l4dGgge1xuICB3aWR0aDogNDEuNjY2NjclO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgY2xlYXI6IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLmwtZ3JpZF9fc2l4dGgge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDsgfSB9XG5cbi5sLWdyaWRfX3NldmVudGgge1xuICB3aWR0aDogNDEuNjY2NjclO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgY2xlYXI6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0xNC4zMyU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLmwtZ3JpZF9fc2V2ZW50aCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogM2VtOyB9IH1cblxuLmMtbG9nbyB7XG4gIG9yZGVyOiAtMTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogNDIwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDkwMXB4KSB7XG4gICAgLmMtbG9nbyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xNjRweDtcbiAgICAgIHdpZHRoOiA0MjBweDsgfSB9XG4gIC5jLWxvZ28gaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuYSB7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5jLWJvZHkge1xuICBwYWRkaW5nOiAzZW07XG4gIC8qIEJhbGxpw6hyZSBpbnRlcmlldXIgOiAqL1xuICBmb250LWZhbWlseTogTXVzZW9TbGFiLTMwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjb2xvcjogIzQwNDA0MTsgfVxuICAuYy1ib2R5IHN0cm9uZyB7XG4gICAgZm9udC1mYW1pbHk6IE11c2VvU2xhYi03MDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLmMtYm9keSB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLmMtYW5ub3VuY2VtZW50IHtcbiAgLyogV0VCU0lURSBPTkxJTkUgU09PTjogKi9cbiAgZm9udC1mYW1pbHk6IENhbXB0b24tU2VtaUJvbGQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY29sb3I6ICM0MDQwNDE7XG4gIGxldHRlci1zcGFjaW5nOiA2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDE2LjglOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5jLWFubm91bmNlbWVudCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuKiB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XG5cbmh0bWwge1xuICBmb250LWZhbWlseTogXCJ0c3Rhcl9wcm9cIiwgc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDEuNDM7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzIwcHgpIHtcbiAgICBodG1sIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDsgfSB9XG5cbnAge1xuICBtYXJnaW46IDJlbSAwOyB9XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbjogMDsgfVxuICBoMSArIHAsIGgyICsgcCwgaDMgKyBwLCBoNCArIHAsIGg1ICsgcCwgaDYgKyBwIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4iLCIvLyBIaWRlIHRoZSB0b29sYmFyIG9yIGFkbWluIG1lbnUgb24gc21hbGwgc2NyZWVucy5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gICN0b29sYmFyLCAjYWRtaW4tbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJvZHkudG9vbGJhciwgYm9keS5hZG1pbi1tZW51IHtcbiAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbiN0b29sYmFyLCAjYWRtaW4tbWVudSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYm9keS50b29sYmFyIHtcbiAgcGFkZGluZy10b3A6IDMuNmVtO1xufSIsIi5zdmctLWVuam95LWRpbXMge1xyXG5cdHdpZHRoOiAzNnB4O1xyXG5cdGhlaWdodDogOTZweDtcclxufVxyXG5cclxuLnN2Zy0tbG9nby1kaW1zIHtcclxuXHR3aWR0aDogMjA2cHg7XHJcblx0aGVpZ2h0OiAxNDJweDtcclxufVxyXG5cclxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIElNUE9SVCBGT05UUyBIRVJFIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4kZm9udC1kZWZhdWx0OiBcInRzdGFyX3Byb1wiLHNhbnMtc2VyaWY7XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAndHN0YXJfcHJvJztcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvdHN0YXJwcm8tYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy90c3RhcnByby1ib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuXG5cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICd0c3Rhcl9wcm8nO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy90c3RhcnByby1tZWRpdW0td2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvdHN0YXJwcm8tbWVkaXVtLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG59IiwiaW1nLCBtZWRpYSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuIiwiQGluY2x1ZGUgYWRkLWdyaWQoMTIpO1xuQGluY2x1ZGUgYWRkLWd1dHRlcigwKTtcblxuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWluLXdpZHRoOiAzMjBweDtcbn1cblxuaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubC1wYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nOiAzZW07XG59XG5cbi5sLWdyaWQge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgd2lkdGg6IDEwMDBweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA5MDBweCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuXG4ubC1ncmlkX19yb3cge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgY2xlYXI6IGxlZnQ7XG59XG5cbi5sLWdyaWRfX2ZpcnN0IHtcbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKDUsIDIpO1xuICBwYWRkaW5nLXRvcDogMTQlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoIDkwMHB4KSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgfVxufVxuXG4ubC1ncmlkX19zZWNvbmQge1xuICBAaW5jbHVkZSBncmlkLXNwYW4oMy4zMywgNyk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggOTAwcHgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5sLWdyaWRfX3RoaXJkIHtcbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKDEuOCwgMTEpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTIwMHB4KSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDIuOCwgMTEpO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgxNDAwcHgpIHtcbiAgICBAaW5jbHVkZSBncmlkLXNwYW4oMy43LCAxMSk7XG4gIH1cbiAgcGFkZGluZy10b3A6IDE2JTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA5MDBweCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG4uYy1mYW5jeS10aXRsZSB7XG4gIC8qIGludGVyaWV1ciAmIDogKi9cbiAgZm9udC1mYW1pbHk6IE11c2VvU2xhYi05MDA7XG4gIGNvbG9yOiAjQjQ4QjcyO1xuICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMjBweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KDEyMDBweCkge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTQwMHB4KSB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICB9XG59XG5cbi5sLWdyaWRfX2ZvdXJ0aCB7XG4gIEBpbmNsdWRlIGdyaWQtc3Bhbig1LCAxKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA5MDBweCkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAzZW07XG4gIH1cbn1cblxuLmwtZ3JpZF9fZmlmdGgge1xuICBAaW5jbHVkZSBncmlkLXNwYW4oMy4zMywgNy0zLjMzKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA5MDBweCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxufVxuXG4ubC1ncmlkX19zaXh0aCB7XG4gIEBpbmNsdWRlIGdyaWQtc3Bhbig1LCA3KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA5MDBweCkge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMzAwcHg7XG4gIH1cbn1cblxuLmwtZ3JpZF9fc2V2ZW50aCB7XG4gIEBpbmNsdWRlIGdyaWQtc3Bhbig1LCA3KTtcbiAgbWFyZ2luLXRvcDogLTE0LjMzJTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA5MDBweCkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogM2VtO1xuICB9XG59XG5cblxuXG4vLyAyODNcbi8vIDQ0MVxuLy8gMS41NlxuLy9cbi5jLWxvZ28ge1xuICBvcmRlcjogLTE7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoOTAxcHgpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTY0cHg7XG4gICAgd2lkdGg6IDQyMHB4O1xuICB9XG4gIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuXG5cbi5jLWJvZHkge1xuICBwYWRkaW5nOiAzZW07XG4gIC8qIEJhbGxpw6hyZSBpbnRlcmlldXIgOiAqL1xuICBmb250LWZhbWlseTogTXVzZW9TbGFiLTMwMDtcbiAgc3Ryb25nIHtcbiAgICBmb250LWZhbWlseTogTXVzZW9TbGFiLTcwMDtcbiAgfVxuICBmb250LXNpemU6IDE1cHg7XG4gIGNvbG9yOiAjNDA0MDQxO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoIDkwMHB4KSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4uYy1hbm5vdW5jZW1lbnQge1xuICAvKiBXRUJTSVRFIE9OTElORSBTT09OOiAqL1xuICBmb250LWZhbWlseTogQ2FtcHRvbi1TZW1pQm9sZDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjb2xvcjogIzQwNDA0MTtcbiAgbGV0dGVyLXNwYWNpbmc6IDZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogMTYuOCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggOTAwcHgpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufSIsIkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YWZ0ZXJ7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4lY2xlYXJmaXgge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRCcmVha3BvaW50LVNldHRpbmdzOiAoXG4gICdkZWZhdWx0IG1lZGlhJzogYWxsLFxuICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxuICAnZGVmYXVsdCBwYWlyJzogd2lkdGgsXG5cbiAgJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJzogZmFsc2UsXG4gICd0byBlbXMnOiBmYWxzZSxcbiAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXG5cbiAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcbiAgJ25vIHF1ZXJ5IGZhbGxiYWNrcyc6IGZhbHNlLFxuXG4gICdiYXNlIGZvbnQgc2l6ZSc6IDE2cHgsXG5cbiAgJ2xlZ2FjeSBzeW50YXgnOiBmYWxzZVxuKTtcblxuJGJyZWFrcG9pbnQ6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9sZWdhY3ktc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xuXG4gIC8vIFJlc2V0IGNvbnRleHRzXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xuXG4gICRicmVha3BvaW50OiBicmVha3BvaW50KCRxdWVyeSwgZmFsc2UpO1xuXG4gICRxdWVyeS1zdHJpbmc6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeScpO1xuICAkcXVlcnktZmFsbGJhY2s6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdmYWxsYmFjaycpO1xuXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdjb250ZXh0IGhvbGRlcicpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeSBjb3VudCcpICFnbG9iYWw7XG5cbiAgLy8gQWxsb3cgZm9yIGFuIGFzLW5lZWRlZCBvdmVycmlkZSBvciB1c2FnZSBvZiBubyBxdWVyeSBmYWxsYmFjay5cbiAgQGlmICRuby1xdWVyeSAhPSBmYWxzZSB7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XG4gIH1cblxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICB9XG5cbiAgLy8gUHJpbnQgT3V0IFF1ZXJ5IFN0cmluZ1xuICBAaWYgbm90IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykgIT0gZmFsc2Ugb3IgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSA9PSB0cnVlIHtcblxuICAgICR0eXBlOiB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSk7XG4gICAgJHByaW50OiBmYWxzZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Jvb2wnKSB7XG4gICAgICAkcHJpbnQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIHtcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJHdyYXBwZXIge1xuICAgICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyaXRlIEZhbGxiYWNrXG4gICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIGFuZCAoJHByaW50ID09IHRydWUpIHtcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XG5cbiAgICAgIEBpZiAoJHR5cGUtZmFsbGJhY2sgIT0gJ2Jvb2wnKSB7XG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcbn1cblxuXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQGltcG9ydCBcImFwaS9mbG9hdFwiO1xuQGltcG9ydCBcImFwaS9pc29sYXRpb25cIjtcbkBpbXBvcnQgXCJhcGkvY2FsY1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIE1hc3RlciBHcmlkIFNwYW4gbWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGdyaWQtc3Bhbigkc3BhbiwgJGxvY2F0aW9uOiAxLCAkZ3JpZDogbnVsbCwgJGd1dHRlcjogbnVsbCwgJG91dHB1dC1zdHlsZTogbnVsbCwgJGd1dHRlci1zdHlsZTogbnVsbCwgJG9wdGlvbnM6IG51bGwpIHtcblxuICBAaWYgJG91dHB1dC1zdHlsZSA9PSBudWxsIHtcbiAgICAkb3V0cHV0LXN0eWxlOiBzZ3MtZ2V0KCdvdXRwdXQnKTtcbiAgfVxuXG4gICRHcmlkOiBmaW5kLWdyaWQoJGdyaWQpO1xuICAkR3V0dGVyOiBmaW5kLWd1dHRlcigkZ3V0dGVyKTtcbiAgJFN0eWxlOiBmaW5kLWd1dHRlci1zdHlsZSgkZ3V0dGVyLXN0eWxlKTtcblxuICAkU3RhcnQtUm93OiBzdGFydC1yb3coJGxvY2F0aW9uKTtcbiAgJEVuZC1Sb3c6IGVuZC1yb3coJHNwYW4sICRsb2NhdGlvbiwgJEdyaWQpO1xuXG4gICRGaXhlZC1HdXR0ZXI6IGZpeGVkLWd1dHRlcigkR3JpZCwgJEd1dHRlciwgJFN0eWxlKTtcbiAgJFNwbGl0LUd1dHRlcjogaW5kZXgoJFN0eWxlLCAnc3BsaXQnKTtcbiAgJEd1dHRlci1Qcm9wZXJ0eTogZ3V0dGVyLXByb3BlcnR5KCRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuXG4gICREaXJlY3Rpb246IHNncy1nZXQoJ2RpcmVjdGlvbicpO1xuICAkRnJvbTogaWYoJG9wdGlvbnMgYW5kIHR5cGUtb2YoJG9wdGlvbnMpID09ICdtYXAnLCBpZihtYXAtZ2V0KCRvcHRpb25zLCAnZnJvbScpLCBtYXAtZ2V0KCRvcHRpb25zLCAnZnJvbScpLCAkRGlyZWN0aW9uKSwgJERpcmVjdGlvbik7XG4gICRGcm9tOiBpZigkRnJvbSA9PSAnbHRyJyBvciAkRnJvbSA9PSAncnRsJywgbmFtZWQtZGlyZWN0aW9uKCRGcm9tKSwgJEZyb20pO1xuXG4gICRIb2xkZXI6ICgpO1xuICBAZWFjaCAkaywgJHYgaW4gJG9wdGlvbnMge1xuICAgICRIb2xkZXI6IGlmKCRrID09ICdmcm9tJywgJEhvbGRlciwgbWFwLW1lcmdlKCRIb2xkZXIsICgkazogJHYpKSk7XG4gIH1cbiAgJG9wdGlvbnM6IGlmKGxlbmd0aCgkSG9sZGVyKSA+IDAsICRIb2xkZXIsIG51bGwpO1xuXG4gICRTcGFuLU1hcDogKFxuICAgICdzcGFuJzogJHNwYW4sXG4gICAgJ2xvY2F0aW9uJzogJGxvY2F0aW9uLFxuICAgICdncmlkJzogJEdyaWQsXG4gICAgJ2d1dHRlcic6ICRHdXR0ZXIsXG4gICAgJ3N0eWxlJzogJFN0eWxlLFxuICAgICdzdGFydCByb3cnOiAkU3RhcnQtUm93LFxuICAgICdlbmQgcm93JzogJEVuZC1Sb3csXG4gICAgJ2ZpeGVkIGd1dHRlcic6ICRGaXhlZC1HdXR0ZXIsXG4gICAgJ3NwbGl0IGd1dHRlcic6ICRTcGxpdC1HdXR0ZXIsXG4gICAgJ2d1dHRlciBwcm9wZXJ0eSc6ICRHdXR0ZXItUHJvcGVydHksXG4gICAgJ29wdGlvbnMnOiAkb3B0aW9uc1xuICApO1xuXG4gIEBpZiBzZ3MtZ2V0KCdkZWJ1ZycpICE9IGZhbHNlIHtcbiAgICAtc2dzLXNwYW4tc2V0dGluZ3M6IGluc3BlY3QoJFNwYW4tTWFwKTtcbiAgfVxuXG5cbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cygnb3V0cHV0LSN7JG91dHB1dC1zdHlsZX0nKSB7XG4gICAgJExlZnQ6ICgpO1xuICAgICRSaWdodDogKCk7XG5cbiAgICBAaWYgJERpcmVjdGlvbiA9PSAnYm90aCcgb3IgJEZyb20gPT0gJ2xlZnQnIG9yICgkRGlyZWN0aW9uID09ICdydGwnIGFuZCAkRnJvbSA9PSAnb3Bwb3NpdGUnKSB7XG4gICAgICAkTGVmdDogY2FsbCgnb3V0cHV0LSN7JG91dHB1dC1zdHlsZX0nLCBtYXAtbWVyZ2UoJFNwYW4tTWFwLCAoJ2RpcmVjdGlvbic6IGxlZnQpKSk7XG4gICAgfVxuXG4gICAgQGlmICREaXJlY3Rpb24gPT0gJ2JvdGgnIG9yICRGcm9tID09ICdyaWdodCcgb3IgKCREaXJlY3Rpb24gPT0gJ2x0cicgYW5kICRGcm9tID09ICdvcHBvc2l0ZScpIHtcbiAgICAgICRSaWdodDogY2FsbCgnb3V0cHV0LSN7JG91dHB1dC1zdHlsZX0nLCBtYXAtbWVyZ2UoJFNwYW4tTWFwLCAoJ2RpcmVjdGlvbic6IHJpZ2h0KSkpO1xuICAgIH1cblxuICAgICRMZWZ0LUtleXM6IG1hcC1rZXlzKCRMZWZ0KTtcbiAgICAkUmlnaHQtS2V5czogbWFwLWtleXMoJFJpZ2h0KTtcbiAgICAkRXhjbHVkZTogKCk7XG5cbiAgICBAZWFjaCAka2V5IGluICRMZWZ0LUtleXMge1xuICAgICAgQGlmIGluZGV4KCRSaWdodC1LZXlzLCAka2V5KSB7XG4gICAgICAgIEBpZiBtYXAtZ2V0KCRSaWdodCwgJGtleSkgPT0gbWFwLWdldCgkTGVmdCwgJGtleSkge1xuICAgICAgICAgICRFeGNsdWRlOiBhcHBlbmQoJEV4Y2x1ZGUsICRrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWx3YXlzIHRyeSBhbmQgcHJpbnQgdGhlIExlZnQgdmFsdWVcbiAgICBAaW5jbHVkZSBncmlkLXNwYW4tYnVpbGQtZXhjbHVkZSgkTGVmdCwgJEV4Y2x1ZGUsIGZhbHNlKTtcblxuICAgIC8vIElmIERpcmVjdGlvbiBpcyBCb3RoIG9yIFJUTCwgYWRkIHRoZSBSVEwgYXR0cmlidXRlIHNlbGVjdG9yXG4gICAgQGlmICREaXJlY3Rpb24gPT0gJ2JvdGgnIG9yICREaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuLWJ1aWxkLWV4Y2x1ZGUoJFJpZ2h0LCAkRXhjbHVkZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbi1idWlsZC1leGNsdWRlKCRSaWdodCwgJEV4Y2x1ZGUsIHRydWUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhbiBvdXRwdXQgc3R5bGUgbmFtZWQgYCN7JG91dHB1dC1zdHlsZX1gLiBQbGVhc2UgZW5zdXJlIHRoYXQgdGhlIGZ1bmN0aW9uIGBvdXRwdXQtI3skb3V0cHV0LXN0eWxlfWAgYW5kIHRoYXQgdGhlIG91dHB1dCBzdHlsZSBgI3skb3V0cHV0LXN0eWxlfWAgYXJlIGJvdGggYXZhaWxhYmxlIGJlZm9yZSB0cnlpbmcgdG8gdXNlIHRoZW0uXCI7XG4gIH1cbn1cblxuQG1peGluIGdyaWQtc3Bhbi1idWlsZCgkcHJvcGVydHksICR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdtYXAnIHtcbiAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVhY2ggJHByZWZpeCwgJHZhbCBpbiAkdmFsdWUge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZ3JpZC1zcGFuLWJ1aWxkLWV4Y2x1ZGUoJHByb3BlcnRpZXMsICRkZWx0YSwgJGV4Y2x1ZGU6IGZhbHNlKSB7XG4gIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgJGV4Y2x1ZGUge1xuICAgICAgQGlmIG5vdCBpbmRleCgkZGVsdGEsICRwcm9wZXJ0eSkge1xuICAgICAgICBAaW5jbHVkZSBncmlkLXNwYW4tYnVpbGQoJHByb3BlcnR5LCAkdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4tYnVpbGQoJHByb3BlcnR5LCAkdmFsdWUpO1xuICAgIH1cbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCB3aWR0aCwgaW4gcGVyY2VudGFnZXMsIG9mIHRoZSBjb2x1bW4gc3BhblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gY29sdW1uLXNwYW4oJHNwYW4sICRsb2NhdGlvbiwgJGdyaWQ6IG51bGwsICRndXR0ZXI6IG51bGwsICRndXR0ZXItc3R5bGU6IG51bGwpIHtcbiAgLy8gRmluZCB0aGUgZ3JpZCBhbmQgZ3V0dGVyc1xuICAkZ3JpZDogZmluZC1ncmlkKCRncmlkKTtcbiAgJGd1dHRlcjogZmluZC1ndXR0ZXIoJGd1dHRlcik7XG4gICRndXR0ZXItc3R5bGU6IGZpbmQtZ3V0dGVyLXN0eWxlKCRndXR0ZXItc3R5bGUpO1xuXG4gIEBpZiBmaXhlZC1ndXR0ZXIoJGdyaWQsICRndXR0ZXIsICRndXR0ZXItc3R5bGUpIHtcbiAgICAkZ3V0dGVyOiAwO1xuICB9XG5cbiAgLy8gQGRlYnVnICRncmlkO1xuICAvLyBAZGVidWcgJGd1dHRlcjtcblxuICAvLyBDb21iaW5lIHRoZSBncmlkIGFuZCBndXR0ZXJzXG4gICRncmlkLWFuZC1ndXR0ZXJzOiBjb2x1bW4tc3VtKCRncmlkLCAkZ3V0dGVyLCAkZ3V0dGVyLXN0eWxlKTtcblxuICAvLyBAZGVidWcgJGdyaWQtYW5kLWd1dHRlcnM7XG5cbiAgLy8gRXF1YWwgd2lkdGggZ3JpZCBhcmUgZWFzeSEgRGVhbCB3aXRoIHRoZW0hXG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbnVtYmVyJyBvciBsZW5ndGgoJGdyaWQpID09IDEge1xuICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAkc3BhbiArICRndXR0ZXIgKiAoJHNwYW4gLSAxKTtcbiAgICBAcmV0dXJuICRzcGFuLWFuZC1ndXR0ZXJzIC8gJGdyaWQtYW5kLWd1dHRlcnMgKiAxMDAlO1xuICB9XG4gIC8vIEFzeW1tZXRyaWMgbGlzdHMgYXJlIGhhcmRlciwgc28gd2UncmUgZ29pbmcgdG8gdHJlYXQgdGhlbSBhcyB0aGVpciBvd24gZ3JpZFxuICBAZWxzZSBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbGlzdCcgb3IgbGVuZ3RoKCRncmlkKSA+IDEge1xuICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAwO1xuXG4gICAgQGlmICRsb2NhdGlvbiA9PSAxIGFuZCAkc3BhbiA+PSAxIHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHNwYW4ge1xuICAgICAgICAkc3Bhbi1hbmQtZ3V0dGVyczogJHNwYW4tYW5kLWd1dHRlcnMgKyBudGgoJGdyaWQsICRpKSArICRndXR0ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR0b3RhbDogJGxvY2F0aW9uICsgJHNwYW4gLSAxO1xuICAgICAgQGlmICR0b3RhbCAhPSAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICRsb2NhdGlvbiB0aHJvdWdoICR0b3RhbCB7XG4gICAgICAgICAgJHNwYW4tYW5kLWd1dHRlcnM6ICRzcGFuLWFuZC1ndXR0ZXJzICsgbnRoKCRncmlkLCAkaSkgKyAkZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAkc3Bhbi1hbmQtZ3V0dGVycyAtICRndXR0ZXI7XG5cbiAgICBAcmV0dXJuICRzcGFuLWFuZC1ndXR0ZXJzIC8gJGdyaWQtYW5kLWd1dHRlcnMgKiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIkNhbid0IGZpbmQgYSB3b3JraW5nIHNldCBvZiBncmlkISBUaGF0J3MgdGVycmlibGUhXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgdGhlIHRvdGFsIHN1bSBvZiB0aGUgZ3JpZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gY29sdW1uLXN1bSgkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSkge1xuICAkc3BsaXQ6IGlmKGluZGV4KCRndXR0ZXItc3R5bGUsICdzcGxpdCcpLCB0cnVlLCBmYWxzZSk7XG5cbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIG9yIGxlbmd0aCgkZ3JpZCkgPT0gMSB7XG4gICAgQGlmICRzcGxpdCB7XG4gICAgICBAcmV0dXJuIG50aCgkZ3JpZCwgMSkgKyAoKGNvbHVtbi1jb3VudChudGgoJGdyaWQsIDEpKSkgKiBudGgoJGd1dHRlciwgMSkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG50aCgkZ3JpZCwgMSkgKyAoKGNvbHVtbi1jb3VudChudGgoJGdyaWQsIDEpKSAtIDEpICogbnRoKCRndXR0ZXIsIDEpKTtcbiAgICB9XG5cbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbGlzdCcge1xuICAgICRzdW06IDA7XG4gICAgQGVhY2ggJGNvbHVtbiBpbiAkZ3JpZCB7XG4gICAgICAkc3VtOiAkc3VtICsgbnRoKCRjb2x1bW4sIDEpO1xuICAgIH1cbiAgICBAaWYgJHNwbGl0IHtcbiAgICAgICRzdW06ICRzdW0gKyAoY29sdW1uLWNvdW50KCRncmlkKSkgKiBudGgoJGd1dHRlciwgMSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzdW06ICRzdW0gKyAoY29sdW1uLWNvdW50KCRncmlkKSAtIDEpICogbnRoKCRndXR0ZXIsIDEpO1xuICAgIH1cbiAgICBAcmV0dXJuICRzdW07XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIHRoZSBudW1iZXIgb2YgZ3JpZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gY29sdW1uLWNvdW50KCRncmlkKSB7XG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkZ3JpZDtcbiAgfVxuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRncmlkKSA9PSAxIHtcbiAgICAgIEByZXR1cm4gbnRoKCRncmlkLCAxKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBsZW5ndGgoJGdyaWQpO1xuICAgIH1cbiAgfVxufSIsIkBmdW5jdGlvbiBvdXRwdXQtaXNvbGF0aW9uKCRTcGFuLU1hcCkge1xuICAvLyBTZXQgdXAgTGVmdC9SaWdodCBtYXBzXG4gICRSZXR1cm46ICgpO1xuXG4gICRTcGFuOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwYW4nKTtcbiAgJExvY2F0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2xvY2F0aW9uJyk7XG5cbiAgJEdyaWQ6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3JpZCcpO1xuICAkR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2d1dHRlcicpO1xuICAkU3R5bGU6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3R5bGUnKTtcblxuICAkU3RhcnQtUm93OiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3N0YXJ0IHJvdycpO1xuICAkRW5kLVJvdzogbWFwLWdldCgkU3Bhbi1NYXAsICdlbmQgcm93Jyk7XG5cbiAgJEZpeGVkLUd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdmaXhlZCBndXR0ZXInKTtcbiAgJFNwbGl0LUd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdzcGxpdCBndXR0ZXInKTtcbiAgJEd1dHRlci1Qcm9wZXJ0eTogbWFwLWdldCgkU3Bhbi1NYXAsICdndXR0ZXIgcHJvcGVydHknKTtcblxuICAkRGlyZWN0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2RpcmVjdGlvbicpO1xuICAkT3B0aW9uczogbWFwLWdldCgkU3Bhbi1NYXAsICdvcHRpb25zJyk7XG5cbiAgJFdpZHRoOiBjb2x1bW4tc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkR3JpZCwgJEd1dHRlciwgJFN0eWxlKTtcbiAgJE1hcmdpbi1TcGFuOiBjb2x1bW4tc3BhbigoJExvY2F0aW9uIC0gMSksIDEsICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuICAkR3V0dGVyLVNwYW46IGd1dHRlci1zcGFuKCRHdXR0ZXIsICRHcmlkKTtcblxuICAvLyBCYWNrd2FyZHMgQ29tcGF0aWJpbGl0eSBmb3IgT3B0aW9uc1xuICBAaWYgdHlwZS1vZigkT3B0aW9ucykgIT0gJ21hcCcgYW5kICRPcHRpb25zICE9IG51bGwge1xuICAgICRPcHRpb25zOiAoJ2NsZWFyJzogdW5xdW90ZShudGgoJE9wdGlvbnMsIDEpKSk7XG4gIH1cblxuICAkRGlyOiAkRGlyZWN0aW9uO1xuICAkT3BwOiBvcHBvc2l0ZS1kaXJlY3Rpb24oJERpcik7XG5cbiAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnd2lkdGgnOiAkV2lkdGgpKTtcblxuICBAaWYgKCRFbmQtUm93KSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnZmxvYXQnOiAkT3BwKSk7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAwKSk7XG5cbiAgICBAaWYgJFNwbGl0LUd1dHRlciBhbmQgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skT3BwfSc6IDApKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJERpcikpO1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyRPcHB9JzogLTEwMCUpKTtcblxuICAgIEBpZiAkU3RhcnQtUm93IHtcbiAgICAgIEBpZiAkU3BsaXQtR3V0dGVyIGFuZCBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6IDApKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICRTcGxpdC1HdXR0ZXIgYW5kIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAkTWFyZ2luLVNwYW4gKyAkR3V0dGVyLVNwYW4gKyAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJE1hcmdpbi1TcGFuICsgJEd1dHRlci1TcGFuKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJE1hcmdpbi1TcGFuKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIElmIG9wdGlvbnMgYXJlIHNldCwgd2UgbWVyZ2UgdGhlbSBpbiFcbiAgQGlmICgkT3B0aW9ucykge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAkT3B0aW9ucyk7XG4gIH1cblxuICAvLyBJZiBDTGVhciBpc24ndCBhbHJlYWR5IGF2YWlsYWJsZSwgc2V0IGl0IVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRSZXR1cm4sICdjbGVhcicpIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdjbGVhcic6IG5vbmUpKTtcbiAgfVxuXG4gIC8vIExlZnQgRml4ZWQgR3V0dGVyc1xuICBAaWYgJEZpeGVkLUd1dHRlciB7XG4gICAgQGlmIGluZGV4KCRTdHlsZSwgJ3NwbGl0Jykge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyREaXJ9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRFbmQtUm93IHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6IDApKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRSZXR1cm47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFwcHkgU3ludGF4IGZvciBJc29sYXRpb25cbi8vXG4vLyBNYWtlcyB3b3JraW5nIHdpdGggSXNvbGF0aW9uIGVhc2llciwgYXMgaXQgbW92ZXMgQ2xlYXIgdG8gYSAxc3QgY2xhc3MgY2l0aXplbiBvZiB0aGUgbWl4aW4sIGFuZCBhdXRvbWF0aWNhbGx5IGJ1aWxkcyB0aGUgdmVyYm9zZSBncmlkLXNwYW4gbWl4aW4gY2FsbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gaXNvbGF0aW9uLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGNsZWFyOiBmYWxzZSwgJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UsICRmcm9tOiBmYWxzZSkge1xuICAkT3B0aW9uczogKCk7XG4gIEBpZiAkY2xlYXIge1xuICAgICRPcHRpb25zOiBtYXAtbWVyZ2UoJE9wdGlvbnMsICgnY2xlYXInOiB1bnF1b3RlKCRjbGVhcikpKTtcbiAgfVxuICBAaWYgJGZyb20ge1xuICAgICRPcHRpb25zOiBtYXAtbWVyZ2UoJE9wdGlvbnMsICgnZnJvbSc6ICRmcm9tKSk7XG4gIH1cblxuICAkT3B0aW9uczogaWYobGVuZ3RoKCRPcHRpb25zKSA+IDAsICRPcHRpb25zLCBudWxsKTtcbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAnaXNvbGF0aW9uJywgJGd1dHRlci1zdHlsZSwgJE9wdGlvbnMpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcHB5IFN5bnRheCBvZiBBc3ltbWV0cmljIEdyaWRzXG4vL1xuLy8gTWFrZXMgd29ya2luZyB3aXRoIGFzeW1tZXRyaWMgZ3JpZHMgZWFzaWVyIVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gYXN5bW1ldHJpYy1zcGFuKCRMb2NhdGlvbiwgJFNwYW46IGZhbHNlLCAkZ3JpZDogZmFsc2UsICRndXR0ZXI6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSwgJGZyb206IGZhbHNlLCAkb3V0cHV0LXN0eWxlOiBmYWxzZSkge1xuXG4gICRTcGFuOiBpZigkU3BhbiAhPSBmYWxzZSwgJFNwYW4sIDEpO1xuICAkb3V0cHV0LXN0eWxlOiBpZigkb3V0cHV0LXN0eWxlICE9IGZhbHNlLCAkb3V0cHV0LXN0eWxlLCBzZ3MtZ2V0KCdhc3ltbWV0cmljIG91dHB1dCcpKTtcblxuICAkT3B0aW9uczogKCk7XG4gIEBpZiAkZnJvbSB7XG4gICAgJE9wdGlvbnM6IG1hcC1tZXJnZSgkT3B0aW9ucywgKCdmcm9tJzogJGZyb20pKTtcbiAgfVxuICAkT3B0aW9uczogaWYobGVuZ3RoKCRPcHRpb25zKSA+IDAsICRPcHRpb25zLCBudWxsKTtcblxuICBAaW5jbHVkZSBncmlkLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGdyaWQsICRndXR0ZXIsICRvdXRwdXQtc3R5bGUsICRndXR0ZXItc3R5bGUsICRPcHRpb25zKTtcbn0iLCJAaW1wb3J0IFwidmFyaWFibGVzL2NvbG9yc1wiO1xuXG4qIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1kZWZhdWx0O1xuICBsaW5lLWhlaWdodDogMS40MztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50LWxhcC1hbmQtdXApIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cblxuYm9keSB7XG59XG5cbnAge1xuICBtYXJnaW46IDJlbSAwO1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW46IDA7XG5cbiAgJiArIHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn0iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
