@charset "UTF-8";
/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/*! normalize.css v2.1.2 | MIT License | git.io/normalize */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined in IE 8/9.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block; }

/**
 * Correct `inline-block` display not defined in IE 8/9.
 */
audio,
canvas,
video {
  display: inline-block; }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address styling not present in IE 8/9.
 */
[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* ==========================================================================
   Links
   ========================================================================== */
/**
 * Address `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* ==========================================================================
   Typography
   ========================================================================== */
/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari 5, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9, Safari 5, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari 5 and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Correct font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

/**
 * Improve readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre-wrap; }

/**
 * Set consistent quote types.
 */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* ==========================================================================
   Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9.
 */
img {
  border: 0; }

/**
 * Correct overflow displayed oddly in IE 9.
 */
svg:not(:root) {
  overflow: hidden; }

/* ==========================================================================
   Figures
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */
/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * 1. Correct font family not being inherited in all browsers.
 * 2. Correct font size not being inherited in all browsers.
 * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
 */
button,
input,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
button,
input {
  line-height: normal; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
 * Correct `select` style inheritance in Firefox 4+ and Opera.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * 1. Address box sizing set to `content-box` in IE 8/9.
 * 2. Remove excess padding in IE 8/9.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * 1. Remove default vertical scrollbar in IE 8/9.
 * 2. Improve readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

/* ==========================================================================
   Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/* Tabac Slab from suitcasetype.com */
@font-face {
  font-family: 'TabacSlab';
  src: url("/fonts/tabac-slab/Tabac_Slab_Regular.eot");
  src: url("/fonts/tabac-slab/Tabac_Slab_Regular.eot?#iefix") format("embedded-opentype"), url("/fonts/tabac-slab/Tabac_Slab_Regular.woff") format("woff"), local("☺");
  font-weight: bold;
  font-style: normal; }
/* Font-Awesome fonts */
/*!
 *  Font Awesome 3.2.1
 *  the iconic font designed for Bootstrap
 *  ------------------------------------------------------------------------------
 *  The full suite of pictographic icons, examples, and documentation can be
 *  found at http://fontawesome.io.  Stay up to date on Twitter at
 *  http://twitter.com/fontawesome.
 *
 *  License
 *  ------------------------------------------------------------------------------
 *  - The Font Awesome font is licensed under SIL OFL 1.1 -
 *    http://scripts.sil.org/OFL
 *  - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
 *    http://opensource.org/licenses/mit-license.html
 *  - Font Awesome documentation licensed under CC BY 3.0 -
 *    http://creativecommons.org/licenses/by/3.0/
 *  - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
 *    "Font Awesome by Dave Gandy - http://fontawesome.io"
 *
 *  Author - Dave Gandy
 *  ------------------------------------------------------------------------------
 *  Email: dave@fontawesome.io
 *  Twitter: http://twitter.com/davegandy
 *  Work: Lead Product Designer @ Kyruus - http://kyruus.com
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url("./fonts/font-awesome/fontawesome-webfont.eot?v=3.2.1");
  src: url("./fonts/font-awesome/fontawesome-webfont.eot?#iefix&v=3.2.1") format("embedded-opentype"), url("./fonts/font-awesome/fontawesome-webfont.woff?v=3.2.1") format("woff"), url("./fonts/font-awesome/fontawesome-webfont.ttf?v=3.2.1") format("truetype"), url("./fonts/font-awesome/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1") format("svg");
  font-weight: normal;
  font-style: normal; }
/* FONT AWESOME CORE
 * -------------------------- */
[class^="icon-"],
[class*=" icon-"] {
  font-family: FontAwesome;
  font-weight: normal;
  font-style: normal;
  text-decoration: inherit;
  -webkit-font-smoothing: antialiased;
  *margin-right: .3em; }

[class^="icon-"]:before,
[class*=" icon-"]:before {
  text-decoration: inherit;
  display: inline-block;
  speak: none; }

/* makes the font 33% larger relative to the icon container */
.icon-large:before {
  vertical-align: -10%;
  font-size: 1.33333em; }

/* makes sure icons active on rollover in links */
a [class^="icon-"],
a [class*=" icon-"] {
  display: inline; }

/* increased font size for icon-large */
[class^="icon-"].icon-fixed-width,
[class*=" icon-"].icon-fixed-width {
  display: inline-block;
  width: 1.14286em;
  text-align: right;
  padding-right: 0.28571em; }
  [class^="icon-"].icon-fixed-width.icon-large,
  [class*=" icon-"].icon-fixed-width.icon-large {
    width: 1.42857em; }

.icons-ul {
  margin-left: 2.14286em;
  list-style-type: none; }
  .icons-ul > li {
    position: relative; }
  .icons-ul .icon-li {
    position: absolute;
    left: -2.14286em;
    width: 2.14286em;
    text-align: center;
    line-height: inherit; }

[class^="icon-"].hide,
[class*=" icon-"].hide {
  display: none; }

.icon-muted {
  color: #eeeeee; }

.icon-light {
  color: white; }

.icon-dark {
  color: #333333; }

.icon-border {
  border: solid 1px #eeeeee;
  padding: .2em .25em .15em;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  border-radius: 3px; }

.icon-2x {
  font-size: 2em; }
  .icon-2x.icon-border {
    border-width: 2px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    border-radius: 4px; }

.icon-3x {
  font-size: 3em; }
  .icon-3x.icon-border {
    border-width: 3px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px; }

.icon-4x {
  font-size: 4em; }
  .icon-4x.icon-border {
    border-width: 4px;
    -moz-border-radius: 6px;
    -webkit-border-radius: 6px;
    border-radius: 6px; }

.icon-5x {
  font-size: 5em; }
  .icon-5x.icon-border {
    border-width: 5px;
    -moz-border-radius: 7px;
    -webkit-border-radius: 7px;
    border-radius: 7px; }

.pull-right {
  float: right; }

.pull-left {
  float: left; }

[class^="icon-"].pull-left,
[class*=" icon-"].pull-left {
  margin-right: .3em; }
[class^="icon-"].pull-right,
[class*=" icon-"].pull-right {
  margin-left: .3em; }

/* BOOTSTRAP SPECIFIC CLASSES
 * -------------------------- */
/* Bootstrap 2.0 sprites.less reset */
[class^="icon-"],
[class*=" icon-"] {
  display: inline;
  width: auto;
  height: auto;
  line-height: normal;
  vertical-align: baseline;
  background-image: none;
  background-position: 0% 0%;
  background-repeat: repeat;
  margin-top: 0; }

/* more sprites.less reset */
.icon-white,
.nav-pills > .active > a > [class^="icon-"],
.nav-pills > .active > a > [class*=" icon-"],
.nav-list > .active > a > [class^="icon-"],
.nav-list > .active > a > [class*=" icon-"],
.navbar-inverse .nav > .active > a > [class^="icon-"],
.navbar-inverse .nav > .active > a > [class*=" icon-"],
.dropdown-menu > li > a:hover > [class^="icon-"],
.dropdown-menu > li > a:hover > [class*=" icon-"],
.dropdown-menu > .active > a > [class^="icon-"],
.dropdown-menu > .active > a > [class*=" icon-"],
.dropdown-submenu:hover > a > [class^="icon-"],
.dropdown-submenu:hover > a > [class*=" icon-"] {
  background-image: none; }

/* keeps Bootstrap styles with and without icons the same */
.btn [class^="icon-"].icon-large,
.btn [class*=" icon-"].icon-large, .nav [class^="icon-"].icon-large,
.nav [class*=" icon-"].icon-large {
  line-height: .9em; }
.btn [class^="icon-"].icon-spin,
.btn [class*=" icon-"].icon-spin, .nav [class^="icon-"].icon-spin,
.nav [class*=" icon-"].icon-spin {
  display: inline-block; }

.nav-tabs [class^="icon-"], .nav-tabs [class^="icon-"].icon-large,
.nav-tabs [class*=" icon-"],
.nav-tabs [class*=" icon-"].icon-large, .nav-pills [class^="icon-"], .nav-pills [class^="icon-"].icon-large,
.nav-pills [class*=" icon-"],
.nav-pills [class*=" icon-"].icon-large {
  line-height: .9em; }

.btn [class^="icon-"].pull-left.icon-2x, .btn [class^="icon-"].pull-right.icon-2x,
.btn [class*=" icon-"].pull-left.icon-2x,
.btn [class*=" icon-"].pull-right.icon-2x {
  margin-top: .18em; }
.btn [class^="icon-"].icon-spin.icon-large,
.btn [class*=" icon-"].icon-spin.icon-large {
  line-height: .8em; }

.btn.btn-small [class^="icon-"].pull-left.icon-2x, .btn.btn-small [class^="icon-"].pull-right.icon-2x,
.btn.btn-small [class*=" icon-"].pull-left.icon-2x,
.btn.btn-small [class*=" icon-"].pull-right.icon-2x {
  margin-top: .25em; }

.btn.btn-large [class^="icon-"],
.btn.btn-large [class*=" icon-"] {
  margin-top: 0; }
  .btn.btn-large [class^="icon-"].pull-left.icon-2x, .btn.btn-large [class^="icon-"].pull-right.icon-2x,
  .btn.btn-large [class*=" icon-"].pull-left.icon-2x,
  .btn.btn-large [class*=" icon-"].pull-right.icon-2x {
    margin-top: .05em; }
  .btn.btn-large [class^="icon-"].pull-left.icon-2x,
  .btn.btn-large [class*=" icon-"].pull-left.icon-2x {
    margin-right: .2em; }
  .btn.btn-large [class^="icon-"].pull-right.icon-2x,
  .btn.btn-large [class*=" icon-"].pull-right.icon-2x {
    margin-left: .2em; }

/* Fixes alignment in nav lists */
.nav-list [class^="icon-"],
.nav-list [class*=" icon-"] {
  line-height: inherit; }

/* EXTRAS
 * -------------------------- */
/* Stacked and layered icon */
.icon-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: -35%; }
  .icon-stack [class^="icon-"],
  .icon-stack [class*=" icon-"] {
    display: block;
    text-align: center;
    position: absolute;
    width: 100%;
    height: 100%;
    font-size: 1em;
    line-height: inherit;
    *line-height: 2em; }
  .icon-stack .icon-stack-base {
    font-size: 2em;
    *line-height: 1em; }

/* Animated rotating icon */
.icon-spin {
  display: inline-block;
  -moz-animation: spin 2s infinite linear;
  -o-animation: spin 2s infinite linear;
  -webkit-animation: spin 2s infinite linear;
  animation: spin 2s infinite linear; }

/* Prevent stack and spinners from being taken inline when inside a link */
a .icon-stack,
a .icon-spin {
  display: inline-block;
  text-decoration: none; }

@-moz-keyframes spin {
  0% {
    -moz-transform: rotate(0deg); }
  100% {
    -moz-transform: rotate(359deg); } }
@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(359deg); } }
@-o-keyframes spin {
  0% {
    -o-transform: rotate(0deg); }
  100% {
    -o-transform: rotate(359deg); } }
@-ms-keyframes spin {
  0% {
    -ms-transform: rotate(0deg); }
  100% {
    -ms-transform: rotate(359deg); } }
@keyframes spin {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(359deg); } }
/* Icon rotations and mirroring */
.icon-rotate-90:before {
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  transform: rotate(90deg);
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); }

.icon-rotate-180:before {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); }

.icon-rotate-270:before {
  -webkit-transform: rotate(270deg);
  -moz-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  -o-transform: rotate(270deg);
  transform: rotate(270deg);
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); }

.icon-flip-horizontal:before {
  -webkit-transform: scale(-1, 1);
  -moz-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  -o-transform: scale(-1, 1);
  transform: scale(-1, 1); }

.icon-flip-vertical:before {
  -webkit-transform: scale(1, -1);
  -moz-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  -o-transform: scale(1, -1);
  transform: scale(1, -1); }

/* ensure rotation occurs inside anchor tags */
a .icon-rotate-90:before, a .icon-rotate-180:before, a .icon-rotate-270:before, a .icon-flip-horizontal:before, a .icon-flip-vertical:before {
  display: inline-block; }

/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
 * readers do not read off random characters that represent icons */
.icon-glass:before {
  content: ""; }

.icon-music:before {
  content: ""; }

.icon-search:before {
  content: ""; }

.icon-envelope-alt:before {
  content: ""; }

.icon-heart:before {
  content: ""; }

.icon-star:before {
  content: ""; }

.icon-star-empty:before {
  content: ""; }

.icon-user:before {
  content: ""; }

.icon-film:before {
  content: ""; }

.icon-th-large:before {
  content: ""; }

.icon-th:before {
  content: ""; }

.icon-th-list:before {
  content: ""; }

.icon-ok:before {
  content: ""; }

.icon-remove:before {
  content: ""; }

.icon-zoom-in:before {
  content: ""; }

.icon-zoom-out:before {
  content: ""; }

.icon-power-off:before,
.icon-off:before {
  content: ""; }

.icon-signal:before {
  content: ""; }

.icon-gear:before,
.icon-cog:before {
  content: ""; }

.icon-trash:before {
  content: ""; }

.icon-home:before {
  content: ""; }

.icon-file-alt:before {
  content: ""; }

.icon-time:before {
  content: ""; }

.icon-road:before {
  content: ""; }

.icon-download-alt:before {
  content: ""; }

.icon-download:before {
  content: ""; }

.icon-upload:before {
  content: ""; }

.icon-inbox:before {
  content: ""; }

.icon-play-circle:before {
  content: ""; }

.icon-rotate-right:before,
.icon-repeat:before {
  content: ""; }

.icon-refresh:before {
  content: ""; }

.icon-list-alt:before {
  content: ""; }

.icon-lock:before {
  content: ""; }

.icon-flag:before {
  content: ""; }

.icon-headphones:before {
  content: ""; }

.icon-volume-off:before {
  content: ""; }

.icon-volume-down:before {
  content: ""; }

.icon-volume-up:before {
  content: ""; }

.icon-qrcode:before {
  content: ""; }

.icon-barcode:before {
  content: ""; }

.icon-tag:before {
  content: ""; }

.icon-tags:before {
  content: ""; }

.icon-book:before {
  content: ""; }

.icon-bookmark:before {
  content: ""; }

.icon-print:before {
  content: ""; }

.icon-camera:before {
  content: ""; }

.icon-font:before {
  content: ""; }

.icon-bold:before {
  content: ""; }

.icon-italic:before {
  content: ""; }

.icon-text-height:before {
  content: ""; }

.icon-text-width:before {
  content: ""; }

.icon-align-left:before {
  content: ""; }

.icon-align-center:before {
  content: ""; }

.icon-align-right:before {
  content: ""; }

.icon-align-justify:before {
  content: ""; }

.icon-list:before {
  content: ""; }

.icon-indent-left:before {
  content: ""; }

.icon-indent-right:before {
  content: ""; }

.icon-facetime-video:before {
  content: ""; }

.icon-picture:before {
  content: ""; }

.icon-pencil:before {
  content: ""; }

.icon-map-marker:before {
  content: ""; }

.icon-adjust:before {
  content: ""; }

.icon-tint:before {
  content: ""; }

.icon-edit:before {
  content: ""; }

.icon-share:before {
  content: ""; }

.icon-check:before {
  content: ""; }

.icon-move:before {
  content: ""; }

.icon-step-backward:before {
  content: ""; }

.icon-fast-backward:before {
  content: ""; }

.icon-backward:before {
  content: ""; }

.icon-play:before {
  content: ""; }

.icon-pause:before {
  content: ""; }

.icon-stop:before {
  content: ""; }

.icon-forward:before {
  content: ""; }

.icon-fast-forward:before {
  content: ""; }

.icon-step-forward:before {
  content: ""; }

.icon-eject:before {
  content: ""; }

.icon-chevron-left:before {
  content: ""; }

.icon-chevron-right:before {
  content: ""; }

.icon-plus-sign:before {
  content: ""; }

.icon-minus-sign:before {
  content: ""; }

.icon-remove-sign:before {
  content: ""; }

.icon-ok-sign:before {
  content: ""; }

.icon-question-sign:before {
  content: ""; }

.icon-info-sign:before {
  content: ""; }

.icon-screenshot:before {
  content: ""; }

.icon-remove-circle:before {
  content: ""; }

.icon-ok-circle:before {
  content: ""; }

.icon-ban-circle:before {
  content: ""; }

.icon-arrow-left:before {
  content: ""; }

.icon-arrow-right:before {
  content: ""; }

.icon-arrow-up:before {
  content: ""; }

.icon-arrow-down:before {
  content: ""; }

.icon-mail-forward:before,
.icon-share-alt:before {
  content: ""; }

.icon-resize-full:before {
  content: ""; }

.icon-resize-small:before {
  content: ""; }

.icon-plus:before {
  content: ""; }

.icon-minus:before {
  content: ""; }

.icon-asterisk:before {
  content: ""; }

.icon-exclamation-sign:before {
  content: ""; }

.icon-gift:before {
  content: ""; }

.icon-leaf:before {
  content: ""; }

.icon-fire:before {
  content: ""; }

.icon-eye-open:before {
  content: ""; }

.icon-eye-close:before {
  content: ""; }

.icon-warning-sign:before {
  content: ""; }

.icon-plane:before {
  content: ""; }

.icon-calendar:before {
  content: ""; }

.icon-random:before {
  content: ""; }

.icon-comment:before {
  content: ""; }

.icon-magnet:before {
  content: ""; }

.icon-chevron-up:before {
  content: ""; }

.icon-chevron-down:before {
  content: ""; }

.icon-retweet:before {
  content: ""; }

.icon-shopping-cart:before {
  content: ""; }

.icon-folder-close:before {
  content: ""; }

.icon-folder-open:before {
  content: ""; }

.icon-resize-vertical:before {
  content: ""; }

.icon-resize-horizontal:before {
  content: ""; }

.icon-bar-chart:before {
  content: ""; }

.icon-twitter-sign:before {
  content: ""; }

.icon-facebook-sign:before {
  content: ""; }

.icon-camera-retro:before {
  content: ""; }

.icon-key:before {
  content: ""; }

.icon-gears:before,
.icon-cogs:before {
  content: ""; }

.icon-comments:before {
  content: ""; }

.icon-thumbs-up-alt:before {
  content: ""; }

.icon-thumbs-down-alt:before {
  content: ""; }

.icon-star-half:before {
  content: ""; }

.icon-heart-empty:before {
  content: ""; }

.icon-signout:before {
  content: ""; }

.icon-linkedin-sign:before {
  content: ""; }

.icon-pushpin:before {
  content: ""; }

.icon-external-link:before {
  content: ""; }

.icon-signin:before {
  content: ""; }

.icon-trophy:before {
  content: ""; }

.icon-github-sign:before {
  content: ""; }

.icon-upload-alt:before {
  content: ""; }

.icon-lemon:before {
  content: ""; }

.icon-phone:before {
  content: ""; }

.icon-unchecked:before,
.icon-check-empty:before {
  content: ""; }

.icon-bookmark-empty:before {
  content: ""; }

.icon-phone-sign:before {
  content: ""; }

.icon-twitter:before {
  content: ""; }

.icon-facebook:before {
  content: ""; }

.icon-github:before {
  content: ""; }

.icon-unlock:before {
  content: ""; }

.icon-credit-card:before {
  content: ""; }

.icon-rss:before {
  content: ""; }

.icon-hdd:before {
  content: ""; }

.icon-bullhorn:before {
  content: ""; }

.icon-bell:before {
  content: ""; }

.icon-certificate:before {
  content: ""; }

.icon-hand-right:before {
  content: ""; }

.icon-hand-left:before {
  content: ""; }

.icon-hand-up:before {
  content: ""; }

.icon-hand-down:before {
  content: ""; }

.icon-circle-arrow-left:before {
  content: ""; }

.icon-circle-arrow-right:before {
  content: ""; }

.icon-circle-arrow-up:before {
  content: ""; }

.icon-circle-arrow-down:before {
  content: ""; }

.icon-globe:before {
  content: ""; }

.icon-wrench:before {
  content: ""; }

.icon-tasks:before {
  content: ""; }

.icon-filter:before {
  content: ""; }

.icon-briefcase:before {
  content: ""; }

.icon-fullscreen:before {
  content: ""; }

.icon-group:before {
  content: ""; }

.icon-link:before {
  content: ""; }

.icon-cloud:before {
  content: ""; }

.icon-beaker:before {
  content: ""; }

.icon-cut:before {
  content: ""; }

.icon-copy:before {
  content: ""; }

.icon-paperclip:before,
.icon-paper-clip:before {
  content: ""; }

.icon-save:before {
  content: ""; }

.icon-sign-blank:before {
  content: ""; }

.icon-reorder:before {
  content: ""; }

.icon-list-ul:before {
  content: ""; }

.icon-list-ol:before {
  content: ""; }

.icon-strikethrough:before {
  content: ""; }

.icon-underline:before {
  content: ""; }

.icon-table:before {
  content: ""; }

.icon-magic:before {
  content: ""; }

.icon-truck:before {
  content: ""; }

.icon-pinterest:before {
  content: ""; }

.icon-pinterest-sign:before {
  content: ""; }

.icon-google-plus-sign:before {
  content: ""; }

.icon-google-plus:before {
  content: ""; }

.icon-money:before {
  content: ""; }

.icon-caret-down:before {
  content: ""; }

.icon-caret-up:before {
  content: ""; }

.icon-caret-left:before {
  content: ""; }

.icon-caret-right:before {
  content: ""; }

.icon-columns:before {
  content: ""; }

.icon-sort:before {
  content: ""; }

.icon-sort-down:before {
  content: ""; }

.icon-sort-up:before {
  content: ""; }

.icon-envelope:before {
  content: ""; }

.icon-linkedin:before {
  content: ""; }

.icon-rotate-left:before,
.icon-undo:before {
  content: ""; }

.icon-legal:before {
  content: ""; }

.icon-dashboard:before {
  content: ""; }

.icon-comment-alt:before {
  content: ""; }

.icon-comments-alt:before {
  content: ""; }

.icon-bolt:before {
  content: ""; }

.icon-sitemap:before {
  content: ""; }

.icon-umbrella:before {
  content: ""; }

.icon-paste:before {
  content: ""; }

.icon-lightbulb:before {
  content: ""; }

.icon-exchange:before {
  content: ""; }

.icon-cloud-download:before {
  content: ""; }

.icon-cloud-upload:before {
  content: ""; }

.icon-user-md:before {
  content: ""; }

.icon-stethoscope:before {
  content: ""; }

.icon-suitcase:before {
  content: ""; }

.icon-bell-alt:before {
  content: ""; }

.icon-coffee:before {
  content: ""; }

.icon-food:before {
  content: ""; }

.icon-file-text-alt:before {
  content: ""; }

.icon-building:before {
  content: ""; }

.icon-hospital:before {
  content: ""; }

.icon-ambulance:before {
  content: ""; }

.icon-medkit:before {
  content: ""; }

.icon-fighter-jet:before {
  content: ""; }

.icon-beer:before {
  content: ""; }

.icon-h-sign:before {
  content: ""; }

.icon-plus-sign-alt:before {
  content: ""; }

.icon-double-angle-left:before {
  content: ""; }

.icon-double-angle-right:before {
  content: ""; }

.icon-double-angle-up:before {
  content: ""; }

.icon-double-angle-down:before {
  content: ""; }

.icon-angle-left:before {
  content: ""; }

.icon-angle-right:before {
  content: ""; }

.icon-angle-up:before {
  content: ""; }

.icon-angle-down:before {
  content: ""; }

.icon-desktop:before {
  content: ""; }

.icon-laptop:before {
  content: ""; }

.icon-tablet:before {
  content: ""; }

.icon-mobile-phone:before {
  content: ""; }

.icon-circle-blank:before {
  content: ""; }

.icon-quote-left:before {
  content: ""; }

.icon-quote-right:before {
  content: ""; }

.icon-spinner:before {
  content: ""; }

.icon-circle:before {
  content: ""; }

.icon-mail-reply:before,
.icon-reply:before {
  content: ""; }

.icon-github-alt:before {
  content: ""; }

.icon-folder-close-alt:before {
  content: ""; }

.icon-folder-open-alt:before {
  content: ""; }

.icon-expand-alt:before {
  content: ""; }

.icon-collapse-alt:before {
  content: ""; }

.icon-smile:before {
  content: ""; }

.icon-frown:before {
  content: ""; }

.icon-meh:before {
  content: ""; }

.icon-gamepad:before {
  content: ""; }

.icon-keyboard:before {
  content: ""; }

.icon-flag-alt:before {
  content: ""; }

.icon-flag-checkered:before {
  content: ""; }

.icon-terminal:before {
  content: ""; }

.icon-code:before {
  content: ""; }

.icon-reply-all:before {
  content: ""; }

.icon-mail-reply-all:before {
  content: ""; }

.icon-star-half-full:before,
.icon-star-half-empty:before {
  content: ""; }

.icon-location-arrow:before {
  content: ""; }

.icon-crop:before {
  content: ""; }

.icon-code-fork:before {
  content: ""; }

.icon-unlink:before {
  content: ""; }

.icon-question:before {
  content: ""; }

.icon-info:before {
  content: ""; }

.icon-exclamation:before {
  content: ""; }

.icon-superscript:before {
  content: ""; }

.icon-subscript:before {
  content: ""; }

.icon-eraser:before {
  content: ""; }

.icon-puzzle-piece:before {
  content: ""; }

.icon-microphone:before {
  content: ""; }

.icon-microphone-off:before {
  content: ""; }

.icon-shield:before {
  content: ""; }

.icon-calendar-empty:before {
  content: ""; }

.icon-fire-extinguisher:before {
  content: ""; }

.icon-rocket:before {
  content: ""; }

.icon-maxcdn:before {
  content: ""; }

.icon-chevron-sign-left:before {
  content: ""; }

.icon-chevron-sign-right:before {
  content: ""; }

.icon-chevron-sign-up:before {
  content: ""; }

.icon-chevron-sign-down:before {
  content: ""; }

.icon-html5:before {
  content: ""; }

.icon-css3:before {
  content: ""; }

.icon-anchor:before {
  content: ""; }

.icon-unlock-alt:before {
  content: ""; }

.icon-bullseye:before {
  content: ""; }

.icon-ellipsis-horizontal:before {
  content: ""; }

.icon-ellipsis-vertical:before {
  content: ""; }

.icon-rss-sign:before {
  content: ""; }

.icon-play-sign:before {
  content: ""; }

.icon-ticket:before {
  content: ""; }

.icon-minus-sign-alt:before {
  content: ""; }

.icon-check-minus:before {
  content: ""; }

.icon-level-up:before {
  content: ""; }

.icon-level-down:before {
  content: ""; }

.icon-check-sign:before {
  content: ""; }

.icon-edit-sign:before {
  content: ""; }

.icon-external-link-sign:before {
  content: ""; }

.icon-share-sign:before {
  content: ""; }

.icon-compass:before {
  content: ""; }

.icon-collapse:before {
  content: ""; }

.icon-collapse-top:before {
  content: ""; }

.icon-expand:before {
  content: ""; }

.icon-euro:before,
.icon-eur:before {
  content: ""; }

.icon-gbp:before {
  content: ""; }

.icon-dollar:before,
.icon-usd:before {
  content: ""; }

.icon-rupee:before,
.icon-inr:before {
  content: ""; }

.icon-yen:before,
.icon-jpy:before {
  content: ""; }

.icon-renminbi:before,
.icon-cny:before {
  content: ""; }

.icon-won:before,
.icon-krw:before {
  content: ""; }

.icon-bitcoin:before,
.icon-btc:before {
  content: ""; }

.icon-file:before {
  content: ""; }

.icon-file-text:before {
  content: ""; }

.icon-sort-by-alphabet:before {
  content: ""; }

.icon-sort-by-alphabet-alt:before {
  content: ""; }

.icon-sort-by-attributes:before {
  content: ""; }

.icon-sort-by-attributes-alt:before {
  content: ""; }

.icon-sort-by-order:before {
  content: ""; }

.icon-sort-by-order-alt:before {
  content: ""; }

.icon-thumbs-up:before {
  content: ""; }

.icon-thumbs-down:before {
  content: ""; }

.icon-youtube-sign:before {
  content: ""; }

.icon-youtube:before {
  content: ""; }

.icon-xing:before {
  content: ""; }

.icon-xing-sign:before {
  content: ""; }

.icon-youtube-play:before {
  content: ""; }

.icon-dropbox:before {
  content: ""; }

.icon-stackexchange:before {
  content: ""; }

.icon-instagram:before {
  content: ""; }

.icon-flickr:before {
  content: ""; }

.icon-adn:before {
  content: ""; }

.icon-bitbucket:before {
  content: ""; }

.icon-bitbucket-sign:before {
  content: ""; }

.icon-tumblr:before {
  content: ""; }

.icon-tumblr-sign:before {
  content: ""; }

.icon-long-arrow-down:before {
  content: ""; }

.icon-long-arrow-up:before {
  content: ""; }

.icon-long-arrow-left:before {
  content: ""; }

.icon-long-arrow-right:before {
  content: ""; }

.icon-apple:before {
  content: ""; }

.icon-windows:before {
  content: ""; }

.icon-android:before {
  content: ""; }

.icon-linux:before {
  content: ""; }

.icon-dribbble:before {
  content: ""; }

.icon-skype:before {
  content: ""; }

.icon-foursquare:before {
  content: ""; }

.icon-trello:before {
  content: ""; }

.icon-female:before {
  content: ""; }

.icon-male:before {
  content: ""; }

.icon-gittip:before {
  content: ""; }

.icon-sun:before {
  content: ""; }

.icon-moon:before {
  content: ""; }

.icon-archive:before {
  content: ""; }

.icon-bug:before {
  content: ""; }

.icon-vk:before {
  content: ""; }

.icon-weibo:before {
  content: ""; }

.icon-renren:before {
  content: ""; }

/* Reset */
* {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  min-width: 320px; }

body,
button {
  font-weight: 300;
  font-family: "proxima-nova", Helvetica, Arial, sans-serif; }

body {
  color: #434951;
  -webkit-font-smoothing: subpixel-antialiased; }

h1,
h2 {
  margin: 0;
  font-weight: inherit; }

html:not(.wf-proximanova-n3-active) p {
  letter-spacing: -0.018em; }

button[class^="icon-"],
button[class*=" icon-"] {
  background: none;
  border: none; }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/*
 * Classes to specify font size.
 */
.text-size-1 {
  font-size: 34px;
  font-size: 2.125rem;
  line-height: 1.4;
  font-family: "TabacSlab", sans-serif;
  font-weight: bold; }
  @media (min-width: 695px) {
    .text-size-1 {
      font-size: 38px;
      font-size: 2.375rem; } }
  @media (min-width: 825px) {
    .text-size-1 {
      font-size: 44px;
      font-size: 2.75rem; } }
  @media (min-width: 925px) {
    .text-size-1 {
      font-size: 48px;
      font-size: 3rem; } }
  @media (min-width: 480px) {
    .text-size-1 {
      font-size: 38px;
      font-size: 2.375rem; } }
  @media (min-width: 580px) {
    .text-size-1 {
      font-size: 44px;
      font-size: 2.75rem; } }
  @media (min-width: 925px) {
    .text-size-1 {
      font-size: 48px;
      font-size: 3rem; } }

.text-size-2 {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 1.33333; }
  @media (min-width: 695px) {
    .text-size-2 {
      font-size: 26px;
      font-size: 1.625rem; } }
  @media (min-width: 825px) {
    .text-size-2 {
      font-size: 32px;
      font-size: 2rem; } }
  @media (min-width: 925px) {
    .text-size-2 {
      font-size: 36px;
      font-size: 2.25rem; } }
  @media (min-width: 480px) {
    .text-size-2 {
      font-size: 26px;
      font-size: 1.625rem; } }
  @media (min-width: 580px) {
    .text-size-2 {
      font-size: 32px;
      font-size: 2rem; } }
  @media (min-width: 925px) {
    .text-size-2 {
      font-size: 36px;
      font-size: 2.25rem; } }

.text-size-3 {
  font-size: 21px;
  font-size: 1.3125rem;
  line-height: 1.4; }
  @media (min-width: 695px) {
    .text-size-3 {
      font-size: 23px;
      font-size: 1.4375rem; } }
  @media (min-width: 825px) {
    .text-size-3 {
      font-size: 26px;
      font-size: 1.625rem; } }
  @media (min-width: 925px) {
    .text-size-3 {
      font-size: 28px;
      font-size: 1.75rem; } }
  @media (min-width: 480px) {
    .text-size-3 {
      font-size: 23px;
      font-size: 1.4375rem; } }
  @media (min-width: 580px) {
    .text-size-3 {
      font-size: 26px;
      font-size: 1.625rem; } }
  @media (min-width: 925px) {
    .text-size-3 {
      font-size: 28px;
      font-size: 1.75rem; } }

.text-size-4 {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1.23077; }
  @media (min-width: 695px) {
    .text-size-4 {
      font-size: 22px;
      font-size: 1.375rem; } }
  @media (min-width: 825px) {
    .text-size-4 {
      font-size: 24px;
      font-size: 1.5rem; } }
  @media (min-width: 925px) {
    .text-size-4 {
      font-size: 26px;
      font-size: 1.625rem; } }
  @media (min-width: 480px) {
    .text-size-4 {
      font-size: 22px;
      font-size: 1.375rem; } }
  @media (min-width: 580px) {
    .text-size-4 {
      font-size: 24px;
      font-size: 1.5rem; } }
  @media (min-width: 925px) {
    .text-size-4 {
      font-size: 26px;
      font-size: 1.625rem; } }

.text-size-5 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.4; }
  @media (min-width: 695px) {
    .text-size-5 {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 825px) {
    .text-size-5 {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .text-size-5 {
      font-size: 21px;
      font-size: 1.3125rem; } }
  @media (min-width: 480px) {
    .text-size-5 {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 580px) {
    .text-size-5 {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .text-size-5 {
      font-size: 21px;
      font-size: 1.3125rem; } }

.text-size-6 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.4; }

.text-size-7 {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.4; }

.text-size-8 {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.4; }
  @media (min-width: 695px) {
    .text-size-8 {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 825px) {
    .text-size-8 {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .text-size-8 {
      font-size: 21px;
      font-size: 1.3125rem; } }
  @media (min-width: 480px) {
    .text-size-8 {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 580px) {
    .text-size-8 {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .text-size-8 {
      font-size: 21px;
      font-size: 1.3125rem; } }

.text-weight-normal {
  font-weight: 300; }

.text-weight-reg {
  font-weight: 400; }

.text-weight-bold {
  font-weight: 600; }

/* Used when copy blocks are narrower at large sizes. Primarily for blocks of single column large text */
@media (min-width: 825px) {
  .text-narrow {
    padding: 0 35px; } }
@media (min-width: 925px) {
  .text-narrow {
    padding: 0 70px; } }

/* Global Styles */
.br {
  display: block; }

.nobr {
  white-space: nowrap; }

.btn {
  -moz-border-radius: 6px;
  -webkit-border-radius: 6px;
  border-radius: 6px;
  letter-spacing: .125em;
  text-transform: uppercase;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.4;
  font-weight: 400;
  border-style: none;
  color: inherit;
  display: inline-block;
  line-height: 1;
  padding: 1em;
  text-align: center;
  text-decoration: none; }
  @media (min-width: 695px) {
    .btn {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 825px) {
    .btn {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .btn {
      font-size: 21px;
      font-size: 1.3125rem; } }
  @media (min-width: 480px) {
    .btn {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 580px) {
    .btn {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .btn {
      font-size: 21px;
      font-size: 1.3125rem; } }
  .btn:hover {
    color: inherit;
    text-decoration: none; }
  .btn:active {
    outline: none; }

/* avoid display of broken image in non svg browsers */
.no-svg .svg-img {
  display: none !important; }

/* create responsive ratio wrapper for use with svg_inline helper
ratio is added inline via helper */
.svg-inline-wrap {
  display: inline-block;
  position: relative;
  height: 0;
  width: 100%;
  vertical-align: middle;
  overflow: hidden; }
  .svg-inline-wrap svg {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0; }

.no-svg .svg-inline-wrap {
  display: block;
  height: auto;
  text-align: center;
  padding-bottom: 0 !important; }
  .no-svg .svg-inline-wrap img {
    max-width: 100%; }

/* override text-transform for special cases (e.g. iPhone, PROe) */
.lowercase {
  text-transform: none; }

/* Modules */
/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
.logo-code42-inlined .logo-icon {
  fill: #FE5000; }

.main-header {
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  font-family: "proxima-nova", Helvetica, Arial, sans-serif;
  font-weight: 300;
  position: absolute;
  width: 100%;
  top: 0;
  z-index: 15;
  -moz-transition: opacity 0.33s ease;
  -o-transition: opacity 0.33s ease;
  -webkit-transition: opacity 0.33s ease;
  transition: opacity 0.33s ease; }
  .main-header svg, .main-header img {
    display: block;
    vertical-align: middle; }
  .main-header a {
    text-decoration: none; }
  .main-header button {
    background: transparent url("images/icon-menu-dark.svg") no-repeat right 4px;
    color: #464c59;
    line-height: 22px;
    z-index: 15;
    position: relative;
    padding-right: 27px;
    margin-right: 0;
    padding-left: 0;
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    cursor: pointer; }
    .no-svg .main-header button {
      background-image: url("images/icon-menu-dark.png"); }
    .main-header button:after {
      content: none; }

.main-header-logo, .c42-product-header-logo {
  float: left;
  left: 0;
  /* Needed for main-nav animation */
  position: relative;
  /* Needed for main-nav animation */ }

.main-header-buttons {
  list-style: none;
  margin: 0;
  padding: 0;
  float: right;
  font-size: 14px;
  font-size: 0.875rem; }
  .main-header-buttons li {
    display: inline-block;
    padding: 0 .25em; }
    .main-header-buttons li:last-child {
      padding-right: 0px; }
  .main-header-buttons a,
  .main-header-buttons button {
    letter-spacing: .125em;
    text-transform: uppercase;
    -webkit-font-smoothing: subpixel-antialiased; }
  .main-header-buttons a {
    padding: 10px 0;
    position: relative; }
    .main-header-buttons a:link, .main-header-buttons a:active, .main-header-buttons a:visited {
      color: #464c59;
      margin: 0 10px;
      text-decoration: none; }
    .main-header-buttons a:after {
      content: '';
      position: absolute;
      bottom: 0;
      display: block;
      width: 100%;
      height: 2px;
      opacity: 0;
      -moz-transition: all 0.2s ease;
      -o-transition: all 0.2s ease;
      -webkit-transition: all 0.2s ease;
      transition: all 0.2s ease; }
    .main-header-buttons a:hover:after {
      opacity: 0.2;
      bottom: 6px; }
    .main-header-buttons a.current-page {
      opacity: 0.5; }
      .main-header-buttons a.current-page:hover:after {
        opacity: 0.4; }
  .main-header-buttons .header-try-buy a:after {
    display: none; }
  .main-header-buttons button {
    border: none;
    min-height: 20px;
    padding-top: 0;
    margin-top: 6px;
    margin-left: 5px; }

.lt-ie9 .main-header-buttons a:after {
  display: none; }

.c42-header-wrapper {
  display: block;
  position: relative;
  width: auto;
  z-index: 10;
  max-height: 42px;
  padding: 12px 20px;
  background: rgba(189, 204, 212, 0.2);
  overflow: hidden;
  *zoom: 1; }
  .c42-header-wrapper .c42-global-header-links {
    display: inline-block;
    float: right;
    font-size: 14px;
    font-size: 0.875rem;
    list-style: none;
    margin: 0;
    padding: 0; }
    .c42-header-wrapper .c42-global-header-links li {
      display: inline;
      margin-left: 22px; }
    .c42-header-wrapper .c42-global-header-links a:link, .c42-header-wrapper .c42-global-header-links a:active, .c42-header-wrapper .c42-global-header-links a:visited {
      text-decoration: none;
      color: #fff; }
  .c42-header-wrapper .c42-product-header-logo {
    display: block; }
  .c42-header-wrapper .c42-product-header-logo img, .c42-header-wrapper .c42-product-header-logo svg {
    height: 18px;
    width: 81px;
    float: left; }

.code42 .main-header, .shareplan .main-header, .enterprise .main-header {
  height: 80px;
  padding: 24px 20px;
  background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjkiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjM3Ii8+PHN0b3Agb2Zmc2V0PSI2MCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4yNiIvPjxzdG9wIG9mZnNldD0iNzAlIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAuMTYiLz48c3RvcCBvZmZzZXQ9IjgwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjA4Ii8+PHN0b3Agb2Zmc2V0PSI5MCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4wMiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=');
  background-size: 100%;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0, 0, 0, 0.9)), color-stop(50%, rgba(0, 0, 0, 0.37)), color-stop(60%, rgba(0, 0, 0, 0.26)), color-stop(70%, rgba(0, 0, 0, 0.16)), color-stop(80%, rgba(0, 0, 0, 0.08)), color-stop(90%, rgba(0, 0, 0, 0.02)), color-stop(100%, rgba(0, 0, 0, 0)));
  background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.37) 50%, rgba(0, 0, 0, 0.26) 60%, rgba(0, 0, 0, 0.16) 70%, rgba(0, 0, 0, 0.08) 80%, rgba(0, 0, 0, 0.02) 90%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.37) 50%, rgba(0, 0, 0, 0.26) 60%, rgba(0, 0, 0, 0.16) 70%, rgba(0, 0, 0, 0.08) 80%, rgba(0, 0, 0, 0.02) 90%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.37) 50%, rgba(0, 0, 0, 0.26) 60%, rgba(0, 0, 0, 0.16) 70%, rgba(0, 0, 0, 0.08) 80%, rgba(0, 0, 0, 0.02) 90%, rgba(0, 0, 0, 0) 100%); }
  .code42 .main-header .logo-code42-inlined .logo-text, .shareplan .main-header .logo-code42-inlined .logo-text, .enterprise .main-header .logo-code42-inlined .logo-text {
    fill: #FFF; }
  .code42 .main-header button, .shareplan .main-header button, .enterprise .main-header button {
    background: transparent url("images/icon-menu-light.svg") no-repeat right 4px;
    color: #FFF; }
    .no-svg .code42 .main-header button, .no-svg .shareplan .main-header button, .no-svg .enterprise .main-header button {
      background-image: url("images/icon-menu-light.png"); }
  .code42 .main-header .main-header-buttons a, .shareplan .main-header .main-header-buttons a, .enterprise .main-header .main-header-buttons a {
    display: block; }
    .code42 .main-header .main-header-buttons a:link, .code42 .main-header .main-header-buttons a:active, .code42 .main-header .main-header-buttons a:visited, .shareplan .main-header .main-header-buttons a:link, .shareplan .main-header .main-header-buttons a:active, .shareplan .main-header .main-header-buttons a:visited, .enterprise .main-header .main-header-buttons a:link, .enterprise .main-header .main-header-buttons a:active, .enterprise .main-header .main-header-buttons a:visited {
      color: #fff; }
  .code42 .main-header .main-header-buttons .header-try-buy, .shareplan .main-header .main-header-buttons .header-try-buy, .enterprise .main-header .main-header-buttons .header-try-buy {
    padding-bottom: 2px; }
    .code42 .main-header .main-header-buttons .header-try-buy a:link, .code42 .main-header .main-header-buttons .header-try-buy a:active, .code42 .main-header .main-header-buttons .header-try-buy a:visited, .shareplan .main-header .main-header-buttons .header-try-buy a:link, .shareplan .main-header .main-header-buttons .header-try-buy a:active, .shareplan .main-header .main-header-buttons .header-try-buy a:visited, .enterprise .main-header .main-header-buttons .header-try-buy a:link, .enterprise .main-header .main-header-buttons .header-try-buy a:active, .enterprise .main-header .main-header-buttons .header-try-buy a:visited {
      padding: .214285714em .357142857em .142857143em .50em;
      /* 14px */
      border: 1px solid #fff;
      border-radius: 4px;
      -moz-transition: all 150ms ease-in-out;
      -o-transition: all 150ms ease-in-out;
      -webkit-transition: all 150ms ease-in-out;
      transition: all 150ms ease-in-out; }
.code42 .fixed-header, .shareplan .fixed-header, .enterprise .fixed-header {
  height: 80px;
  position: fixed;
  background-image: none;
  background-color: #fff;
  left: 0;
  box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.1); }
  .code42 .fixed-header .logo-code42-inlined .logo-text, .shareplan .fixed-header .logo-code42-inlined .logo-text, .enterprise .fixed-header .logo-code42-inlined .logo-text {
    fill: #464c59; }
  .code42 .fixed-header button, .shareplan .fixed-header button, .enterprise .fixed-header button {
    background: transparent url("images/icon-menu-dark.svg") no-repeat right 4px;
    color: #464c59; }
    .no-svg .code42 .fixed-header button, .no-svg .shareplan .fixed-header button, .no-svg .enterprise .fixed-header button {
      background-image: url("images/icon-menu-dark.png"); }
  .code42 .fixed-header .main-header-buttons a:link, .code42 .fixed-header .main-header-buttons a:active, .code42 .fixed-header .main-header-buttons a:visited, .shareplan .fixed-header .main-header-buttons a:link, .shareplan .fixed-header .main-header-buttons a:active, .shareplan .fixed-header .main-header-buttons a:visited, .enterprise .fixed-header .main-header-buttons a:link, .enterprise .fixed-header .main-header-buttons a:active, .enterprise .fixed-header .main-header-buttons a:visited {
    color: #464c59; }
  .code42 .fixed-header .main-header-buttons a .header-try-buy, .shareplan .fixed-header .main-header-buttons a .header-try-buy, .enterprise .fixed-header .main-header-buttons a .header-try-buy {
    padding-bottom: 2px; }
    .code42 .fixed-header .main-header-buttons a .header-try-buy a:link, .code42 .fixed-header .main-header-buttons a .header-try-buy a:active, .code42 .fixed-header .main-header-buttons a .header-try-buy a:visited, .shareplan .fixed-header .main-header-buttons a .header-try-buy a:link, .shareplan .fixed-header .main-header-buttons a .header-try-buy a:active, .shareplan .fixed-header .main-header-buttons a .header-try-buy a:visited, .enterprise .fixed-header .main-header-buttons a .header-try-buy a:link, .enterprise .fixed-header .main-header-buttons a .header-try-buy a:active, .enterprise .fixed-header .main-header-buttons a .header-try-buy a:visited {
      padding: .214285714em .357142857em .142857143em .50em;
      /* 14px */
      border: 1px solid #fff;
      border-radius: 4px; }
.code42 .c42-header-wrapper, .shareplan .c42-header-wrapper, .enterprise .c42-header-wrapper {
  display: none; }
.code42 .main-header-lightbg, .shareplan .main-header-lightbg, .enterprise .main-header-lightbg {
  background-image: none; }
  .code42 .main-header-lightbg .logo-code42-inlined .logo-text, .code42 .main-header-lightbg .main-header-logo g path, .shareplan .main-header-lightbg .logo-code42-inlined .logo-text, .shareplan .main-header-lightbg .main-header-logo g path, .enterprise .main-header-lightbg .logo-code42-inlined .logo-text, .enterprise .main-header-lightbg .main-header-logo g path {
    fill: #464c59; }
  .code42 .main-header-lightbg button, .shareplan .main-header-lightbg button, .enterprise .main-header-lightbg button {
    background: transparent url("images/images/icon-menu-dark.svg") no-repeat right 4px;
    color: #464c59; }
    .no-svg .code42 .main-header-lightbg button, .no-svg .shareplan .main-header-lightbg button, .no-svg .enterprise .main-header-lightbg button {
      background-image: url("images/images/icon-menu-dark.png"); }
  .code42 .main-header-lightbg .main-header-buttons .main-header-menu-text a, .shareplan .main-header-lightbg .main-header-buttons .main-header-menu-text a, .enterprise .main-header-lightbg .main-header-buttons .main-header-menu-text a {
    color: #464c59; }
    .code42 .main-header-lightbg .main-header-buttons .main-header-menu-text a:after, .shareplan .main-header-lightbg .main-header-buttons .main-header-menu-text a:after, .enterprise .main-header-lightbg .main-header-buttons .main-header-menu-text a:after {
      background-color: #000; }
  .code42 .main-header-lightbg .c42-global-header-links a, .shareplan .main-header-lightbg .c42-global-header-links a, .enterprise .main-header-lightbg .c42-global-header-links a {
    color: #464c59; }
  .code42 .main-header-lightbg .main-header-buttons .header-try-buy a, .shareplan .main-header-lightbg .main-header-buttons .header-try-buy a, .enterprise .main-header-lightbg .main-header-buttons .header-try-buy a {
    padding: .214285714em .357142857em .142857143em .50em;
    /* 14px */
    border: 1px solid #464c59;
    border-radius: 4px; }
@media (max-width: 480px) {
  .code42 .main-header, .code42 .fixed-header, .shareplan .main-header, .shareplan .fixed-header, .enterprise .main-header, .enterprise .fixed-header {
    height: 53px;
    padding: 15px 20px; }
    .code42 .main-header .main-header-logo svg, .code42 .main-header .main-header-logo img, .code42 .fixed-header .main-header-logo svg, .code42 .fixed-header .main-header-logo img, .shareplan .main-header .main-header-logo svg, .shareplan .main-header .main-header-logo img, .shareplan .fixed-header .main-header-logo svg, .shareplan .fixed-header .main-header-logo img, .enterprise .main-header .main-header-logo svg, .enterprise .main-header .main-header-logo img, .enterprise .fixed-header .main-header-logo svg, .enterprise .fixed-header .main-header-logo img {
      height: 23px;
      width: 96px; }
  .code42 .main-header-menu-text, .shareplan .main-header-menu-text, .enterprise .main-header-menu-text {
    display: none; }
  .code42 .main-header-buttons button, .shareplan .main-header-buttons button, .enterprise .main-header-buttons button {
    margin-top: 0; } }
@media (max-width: 1024px) {
  .code42 .header-contact-sales, .shareplan .header-contact-sales, .enterprise .header-contact-sales {
    display: none; } }
@media (max-width: 865px) {
  .code42 .header-support, .shareplan .header-support, .enterprise .header-support {
    display: none; } }

.crashplan .main-header-buttons, .business .main-header-buttons, .store .main-header-buttons {
  margin-top: 10px; }
  .crashplan .main-header-buttons li, .business .main-header-buttons li, .store .main-header-buttons li {
    padding: 0 .20em;
    color: #fff; }
    .crashplan .main-header-buttons li:last-child, .business .main-header-buttons li:last-child, .store .main-header-buttons li:last-child {
      padding-right: 0; }
.crashplan .main-header, .business .main-header, .store .main-header {
  height: 53px;
  background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjkiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjM3Ii8+PHN0b3Agb2Zmc2V0PSI2MCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4yNiIvPjxzdG9wIG9mZnNldD0iNzAlIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAuMTYiLz48c3RvcCBvZmZzZXQ9IjgwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjA4Ii8+PHN0b3Agb2Zmc2V0PSI5MCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4wMiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=');
  background-size: 100%;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0, 0, 0, 0.9)), color-stop(50%, rgba(0, 0, 0, 0.37)), color-stop(60%, rgba(0, 0, 0, 0.26)), color-stop(70%, rgba(0, 0, 0, 0.16)), color-stop(80%, rgba(0, 0, 0, 0.08)), color-stop(90%, rgba(0, 0, 0, 0.02)), color-stop(100%, rgba(0, 0, 0, 0)));
  background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.37) 50%, rgba(0, 0, 0, 0.26) 60%, rgba(0, 0, 0, 0.16) 70%, rgba(0, 0, 0, 0.08) 80%, rgba(0, 0, 0, 0.02) 90%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.37) 50%, rgba(0, 0, 0, 0.26) 60%, rgba(0, 0, 0, 0.16) 70%, rgba(0, 0, 0, 0.08) 80%, rgba(0, 0, 0, 0.02) 90%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.37) 50%, rgba(0, 0, 0, 0.26) 60%, rgba(0, 0, 0, 0.16) 70%, rgba(0, 0, 0, 0.08) 80%, rgba(0, 0, 0, 0.02) 90%, rgba(0, 0, 0, 0) 100%); }
  .crashplan .main-header .main-header-logo, .business .main-header .main-header-logo, .store .main-header .main-header-logo {
    margin: 14px 0; }
  .crashplan .main-header .main-header-logo img, .crashplan .main-header .main-header-logo svg, .business .main-header .main-header-logo img, .business .main-header .main-header-logo svg, .store .main-header .main-header-logo img, .store .main-header .main-header-logo svg {
    height: 23px;
    width: 165px; }
  .crashplan .main-header .logo-code42-inlined .logo-text, .crashplan .main-header .main-header-logo path, .business .main-header .logo-code42-inlined .logo-text, .business .main-header .main-header-logo path, .store .main-header .logo-code42-inlined .logo-text, .store .main-header .main-header-logo path {
    fill: #FFF; }
  .crashplan .main-header button, .business .main-header button, .store .main-header button {
    background: transparent url("images/icon-menu-light.svg") no-repeat right 4px;
    color: #FFF; }
    .no-svg .crashplan .main-header button, .no-svg .business .main-header button, .no-svg .store .main-header button {
      background-image: url("images/icon-menu-light.png"); }
  .crashplan .main-header .main-header-buttons a, .business .main-header .main-header-buttons a, .store .main-header .main-header-buttons a {
    display: block; }
    .crashplan .main-header .main-header-buttons a:link, .crashplan .main-header .main-header-buttons a:active, .crashplan .main-header .main-header-buttons a:visited, .business .main-header .main-header-buttons a:link, .business .main-header .main-header-buttons a:active, .business .main-header .main-header-buttons a:visited, .store .main-header .main-header-buttons a:link, .store .main-header .main-header-buttons a:active, .store .main-header .main-header-buttons a:visited {
      color: #fff; }
  .crashplan .main-header .main-header-buttons .header-try-buy, .business .main-header .main-header-buttons .header-try-buy, .store .main-header .main-header-buttons .header-try-buy {
    padding-bottom: 2px; }
    .crashplan .main-header .main-header-buttons .header-try-buy a:link, .crashplan .main-header .main-header-buttons .header-try-buy a:active, .crashplan .main-header .main-header-buttons .header-try-buy a:visited, .business .main-header .main-header-buttons .header-try-buy a:link, .business .main-header .main-header-buttons .header-try-buy a:active, .business .main-header .main-header-buttons .header-try-buy a:visited, .store .main-header .main-header-buttons .header-try-buy a:link, .store .main-header .main-header-buttons .header-try-buy a:active, .store .main-header .main-header-buttons .header-try-buy a:visited {
      padding: .214285714em .357142857em .142857143em .50em;
      /* 14px */
      border: 1px solid #fff;
      border-radius: 4px;
      -moz-transition: all 150ms ease-in-out;
      -o-transition: all 150ms ease-in-out;
      -webkit-transition: all 150ms ease-in-out;
      transition: all 150ms ease-in-out; }
.crashplan .fixed-header, .business .fixed-header, .store .fixed-header {
  height: 53px;
  position: fixed;
  background-image: none;
  background-color: #fff;
  box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.1); }
  .crashplan .fixed-header .logo-code42-inlined .logo-text, .crashplan .fixed-header .main-header-logo path, .business .fixed-header .logo-code42-inlined .logo-text, .business .fixed-header .main-header-logo path, .store .fixed-header .logo-code42-inlined .logo-text, .store .fixed-header .main-header-logo path {
    fill: #464c59; }
  .crashplan .fixed-header button, .business .fixed-header button, .store .fixed-header button {
    background: transparent url("images/icon-menu-dark.svg") no-repeat right 4px;
    color: #464c59; }
    .no-svg .crashplan .fixed-header button, .no-svg .business .fixed-header button, .no-svg .store .fixed-header button {
      background-image: url("images/icon-menu-dark.png"); }
  .crashplan .fixed-header .main-header-buttons a:link, .crashplan .fixed-header .main-header-buttons a:active, .crashplan .fixed-header .main-header-buttons a:visited, .business .fixed-header .main-header-buttons a:link, .business .fixed-header .main-header-buttons a:active, .business .fixed-header .main-header-buttons a:visited, .store .fixed-header .main-header-buttons a:link, .store .fixed-header .main-header-buttons a:active, .store .fixed-header .main-header-buttons a:visited {
    color: #464c59; }
  .crashplan .fixed-header .c42-global-header-links a:link, .crashplan .fixed-header .c42-global-header-links a:active, .crashplan .fixed-header .c42-global-header-links a:visited, .business .fixed-header .c42-global-header-links a:link, .business .fixed-header .c42-global-header-links a:active, .business .fixed-header .c42-global-header-links a:visited, .store .fixed-header .c42-global-header-links a:link, .store .fixed-header .c42-global-header-links a:active, .store .fixed-header .c42-global-header-links a:visited {
    color: #464c59; }
  .crashplan .fixed-header .main-header-buttons .header-try-buy, .business .fixed-header .main-header-buttons .header-try-buy, .store .fixed-header .main-header-buttons .header-try-buy {
    margin-right: .30em;
    padding: 0 0 2px 0; }
    .crashplan .fixed-header .main-header-buttons .header-try-buy a:link, .crashplan .fixed-header .main-header-buttons .header-try-buy a:active, .crashplan .fixed-header .main-header-buttons .header-try-buy a:visited, .business .fixed-header .main-header-buttons .header-try-buy a:link, .business .fixed-header .main-header-buttons .header-try-buy a:active, .business .fixed-header .main-header-buttons .header-try-buy a:visited, .store .fixed-header .main-header-buttons .header-try-buy a:link, .store .fixed-header .main-header-buttons .header-try-buy a:active, .store .fixed-header .main-header-buttons .header-try-buy a:visited {
      padding: .214285714em .357142857em .142857143em .50em;
      /* 14px */
      border: 1px solid #464c59;
      border-radius: 4px; }
@media (max-width: 810px) {
  .crashplan .main-header .main-header-buttons a, .crashplan .fixed-header .main-header-buttons a, .business .main-header .main-header-buttons a, .business .fixed-header .main-header-buttons a, .store .main-header .main-header-buttons a, .store .fixed-header .main-header-buttons a {
    display: none; }
  .crashplan .main-header .main-header-buttons li, .crashplan .fixed-header .main-header-buttons li, .business .main-header .main-header-buttons li, .business .fixed-header .main-header-buttons li, .store .main-header .main-header-buttons li, .store .fixed-header .main-header-buttons li {
    height: 20px; } }
@media (max-width: 720px) {
  .crashplan .c42-global-header-links, .business .c42-global-header-links, .store .c42-global-header-links {
    display: none; }
  .crashplan .header-nav-toggle, .business .header-nav-toggle, .store .header-nav-toggle {
    position: absolute;
    right: 18px;
    top: 6px; }
  .crashplan .c42-header-wrapper, .business .c42-header-wrapper, .store .c42-header-wrapper {
    background-image: none;
    background-color: #fff; }
  .crashplan .fixed-header, .business .fixed-header, .store .fixed-header {
    height: 42px; }
    .crashplan .fixed-header .main-header-logo, .business .fixed-header .main-header-logo, .store .fixed-header .main-header-logo {
      display: none; } }

.code42 .main-header-lightbg, .crashplan .main-header-lightbg, .shareplan .main-header-lightbg, .enterprise .main-header-lightbg, .business .main-header-lightbg, .store .main-header-lightbg {
  background-image: none; }
  .code42 .main-header-lightbg .logo-code42-inlined .logo-text, .code42 .main-header-lightbg .main-header-logo g path, .crashplan .main-header-lightbg .logo-code42-inlined .logo-text, .crashplan .main-header-lightbg .main-header-logo g path, .shareplan .main-header-lightbg .logo-code42-inlined .logo-text, .shareplan .main-header-lightbg .main-header-logo g path, .enterprise .main-header-lightbg .logo-code42-inlined .logo-text, .enterprise .main-header-lightbg .main-header-logo g path, .business .main-header-lightbg .logo-code42-inlined .logo-text, .business .main-header-lightbg .main-header-logo g path, .store .main-header-lightbg .logo-code42-inlined .logo-text, .store .main-header-lightbg .main-header-logo g path {
    fill: #464c59; }
  .code42 .main-header-lightbg button, .crashplan .main-header-lightbg button, .shareplan .main-header-lightbg button, .enterprise .main-header-lightbg button, .business .main-header-lightbg button, .store .main-header-lightbg button {
    background: transparent url("images/images/icon-menu-dark.svg") no-repeat right 4px;
    color: #464c59; }
    .no-svg .code42 .main-header-lightbg button, .no-svg .crashplan .main-header-lightbg button, .no-svg .shareplan .main-header-lightbg button, .no-svg .enterprise .main-header-lightbg button, .no-svg .business .main-header-lightbg button, .no-svg .store .main-header-lightbg button {
      background-image: url("images/images/icon-menu-dark.png"); }
  .code42 .main-header-lightbg .main-header-buttons .main-header-menu-text a, .crashplan .main-header-lightbg .main-header-buttons .main-header-menu-text a, .shareplan .main-header-lightbg .main-header-buttons .main-header-menu-text a, .enterprise .main-header-lightbg .main-header-buttons .main-header-menu-text a, .business .main-header-lightbg .main-header-buttons .main-header-menu-text a, .store .main-header-lightbg .main-header-buttons .main-header-menu-text a {
    color: #464c59; }
    .code42 .main-header-lightbg .main-header-buttons .main-header-menu-text a:after, .crashplan .main-header-lightbg .main-header-buttons .main-header-menu-text a:after, .shareplan .main-header-lightbg .main-header-buttons .main-header-menu-text a:after, .enterprise .main-header-lightbg .main-header-buttons .main-header-menu-text a:after, .business .main-header-lightbg .main-header-buttons .main-header-menu-text a:after, .store .main-header-lightbg .main-header-buttons .main-header-menu-text a:after {
      background-color: #000; }
  .code42 .main-header-lightbg .c42-global-header-links a, .crashplan .main-header-lightbg .c42-global-header-links a, .shareplan .main-header-lightbg .c42-global-header-links a, .enterprise .main-header-lightbg .c42-global-header-links a, .business .main-header-lightbg .c42-global-header-links a, .store .main-header-lightbg .c42-global-header-links a {
    color: #464c59; }
  .code42 .main-header-lightbg .main-header-buttons .header-try-buy a, .crashplan .main-header-lightbg .main-header-buttons .header-try-buy a, .shareplan .main-header-lightbg .main-header-buttons .header-try-buy a, .enterprise .main-header-lightbg .main-header-buttons .header-try-buy a, .business .main-header-lightbg .main-header-buttons .header-try-buy a, .store .main-header-lightbg .main-header-buttons .header-try-buy a {
    padding: .214285714em .357142857em .142857143em .50em;
    /* 14px */
    border: 1px solid #464c59;
    border-radius: 4px; }
.code42 .main-header-darkbg .logo-code42-inlined .logo-text, .code42 .main-header-darkbg .main-header-logo g path, .crashplan .main-header-darkbg .logo-code42-inlined .logo-text, .crashplan .main-header-darkbg .main-header-logo g path, .shareplan .main-header-darkbg .logo-code42-inlined .logo-text, .shareplan .main-header-darkbg .main-header-logo g path, .enterprise .main-header-darkbg .logo-code42-inlined .logo-text, .enterprise .main-header-darkbg .main-header-logo g path, .business .main-header-darkbg .logo-code42-inlined .logo-text, .business .main-header-darkbg .main-header-logo g path, .store .main-header-darkbg .logo-code42-inlined .logo-text, .store .main-header-darkbg .main-header-logo g path {
  fill: #fff; }
.code42 .main-header-darkbg button, .crashplan .main-header-darkbg button, .shareplan .main-header-darkbg button, .enterprise .main-header-darkbg button, .business .main-header-darkbg button, .store .main-header-darkbg button {
  background: transparent url("images/images/icon-menu-light.svg") no-repeat right 4px;
  color: #fff; }
  .no-svg .code42 .main-header-darkbg button, .no-svg .crashplan .main-header-darkbg button, .no-svg .shareplan .main-header-darkbg button, .no-svg .enterprise .main-header-darkbg button, .no-svg .business .main-header-darkbg button, .no-svg .store .main-header-darkbg button {
    background-image: url("images/images/icon-menu-light.png"); }
.code42 .main-header-darkbg .main-header-buttons .main-header-menu-text a, .crashplan .main-header-darkbg .main-header-buttons .main-header-menu-text a, .shareplan .main-header-darkbg .main-header-buttons .main-header-menu-text a, .enterprise .main-header-darkbg .main-header-buttons .main-header-menu-text a, .business .main-header-darkbg .main-header-buttons .main-header-menu-text a, .store .main-header-darkbg .main-header-buttons .main-header-menu-text a {
  color: #fff; }
  .code42 .main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .crashplan .main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .shareplan .main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .enterprise .main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .business .main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .store .main-header-darkbg .main-header-buttons .main-header-menu-text a:after {
    background-color: #FFF; }
.code42 .main-header-darkbg .c42-global-header-links a, .crashplan .main-header-darkbg .c42-global-header-links a, .shareplan .main-header-darkbg .c42-global-header-links a, .enterprise .main-header-darkbg .c42-global-header-links a, .business .main-header-darkbg .c42-global-header-links a, .store .main-header-darkbg .c42-global-header-links a {
  color: #fff; }
.code42 .main-header-darkbg .main-header-buttons .header-try-buy a, .crashplan .main-header-darkbg .main-header-buttons .header-try-buy a, .shareplan .main-header-darkbg .main-header-buttons .header-try-buy a, .enterprise .main-header-darkbg .main-header-buttons .header-try-buy a, .business .main-header-darkbg .main-header-buttons .header-try-buy a, .store .main-header-darkbg .main-header-buttons .header-try-buy a {
  padding: .214285714em .357142857em .142857143em .50em;
  /* 14px */
  border: 1px solid #fff;
  border-radius: 4px; }
.code42 .main-header-lightbg .main-header-buttons .header-try-buy a:link, .code42 .main-header-lightbg .main-header-buttons .header-try-buy a:active, .code42 .main-header-lightbg .main-header-buttons .header-try-buy a:visited, .code42 .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:link, .code42 .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:active, .code42 .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:visited, .crashplan .main-header-lightbg .main-header-buttons .header-try-buy a:link, .crashplan .main-header-lightbg .main-header-buttons .header-try-buy a:active, .crashplan .main-header-lightbg .main-header-buttons .header-try-buy a:visited, .crashplan .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:link, .crashplan .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:active, .crashplan .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:visited, .shareplan .main-header-lightbg .main-header-buttons .header-try-buy a:link, .shareplan .main-header-lightbg .main-header-buttons .header-try-buy a:active, .shareplan .main-header-lightbg .main-header-buttons .header-try-buy a:visited, .shareplan .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:link, .shareplan .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:active, .shareplan .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:visited, .enterprise .main-header-lightbg .main-header-buttons .header-try-buy a:link, .enterprise .main-header-lightbg .main-header-buttons .header-try-buy a:active, .enterprise .main-header-lightbg .main-header-buttons .header-try-buy a:visited, .enterprise .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:link, .enterprise .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:active, .enterprise .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:visited, .business .main-header-lightbg .main-header-buttons .header-try-buy a:link, .business .main-header-lightbg .main-header-buttons .header-try-buy a:active, .business .main-header-lightbg .main-header-buttons .header-try-buy a:visited, .business .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:link, .business .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:active, .business .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:visited, .store .main-header-lightbg .main-header-buttons .header-try-buy a:link, .store .main-header-lightbg .main-header-buttons .header-try-buy a:active, .store .main-header-lightbg .main-header-buttons .header-try-buy a:visited, .store .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:link, .store .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:active, .store .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:visited {
  border: 1px solid #464c59; }
.code42 .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .code42 .main-header.main-header-darkbg .main-header-logo g path, .crashplan .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .crashplan .main-header.main-header-darkbg .main-header-logo g path, .shareplan .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .shareplan .main-header.main-header-darkbg .main-header-logo g path, .enterprise .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .enterprise .main-header.main-header-darkbg .main-header-logo g path, .business .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .business .main-header.main-header-darkbg .main-header-logo g path, .store .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .store .main-header.main-header-darkbg .main-header-logo g path {
  fill: #fff; }
.code42 .main-header.main-header-darkbg button, .crashplan .main-header.main-header-darkbg button, .shareplan .main-header.main-header-darkbg button, .enterprise .main-header.main-header-darkbg button, .business .main-header.main-header-darkbg button, .store .main-header.main-header-darkbg button {
  background: transparent url("images/images/icon-menu-light.svg") no-repeat right 4px;
  color: #fff; }
  .no-svg .code42 .main-header.main-header-darkbg button, .no-svg .crashplan .main-header.main-header-darkbg button, .no-svg .shareplan .main-header.main-header-darkbg button, .no-svg .enterprise .main-header.main-header-darkbg button, .no-svg .business .main-header.main-header-darkbg button, .no-svg .store .main-header.main-header-darkbg button {
    background-image: url("images/images/icon-menu-light.png"); }
.code42 .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .crashplan .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .shareplan .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .enterprise .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .business .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .store .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a {
  color: #fff; }
  .code42 .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .crashplan .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .shareplan .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .enterprise .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .business .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .store .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after {
    background-color: #FFF; }
.code42 .main-header.main-header-darkbg .c42-global-header-links a, .crashplan .main-header.main-header-darkbg .c42-global-header-links a, .shareplan .main-header.main-header-darkbg .c42-global-header-links a, .enterprise .main-header.main-header-darkbg .c42-global-header-links a, .business .main-header.main-header-darkbg .c42-global-header-links a, .store .main-header.main-header-darkbg .c42-global-header-links a {
  color: #fff; }
.code42 .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .crashplan .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .shareplan .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .enterprise .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .business .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .store .main-header.main-header-darkbg .main-header-buttons .header-try-buy a {
  padding: .214285714em .357142857em .142857143em .50em;
  /* 14px */
  border: 1px solid #fff;
  border-radius: 4px; }
.code42 .main-header.fixed-header .logo-code42-inlined .logo-text, .code42 .main-header.fixed-header .main-header-logo g path, .crashplan .main-header.fixed-header .logo-code42-inlined .logo-text, .crashplan .main-header.fixed-header .main-header-logo g path, .shareplan .main-header.fixed-header .logo-code42-inlined .logo-text, .shareplan .main-header.fixed-header .main-header-logo g path, .enterprise .main-header.fixed-header .logo-code42-inlined .logo-text, .enterprise .main-header.fixed-header .main-header-logo g path, .business .main-header.fixed-header .logo-code42-inlined .logo-text, .business .main-header.fixed-header .main-header-logo g path, .store .main-header.fixed-header .logo-code42-inlined .logo-text, .store .main-header.fixed-header .main-header-logo g path {
  fill: #464c59; }
.code42 .main-header.fixed-header button, .crashplan .main-header.fixed-header button, .shareplan .main-header.fixed-header button, .enterprise .main-header.fixed-header button, .business .main-header.fixed-header button, .store .main-header.fixed-header button {
  background: transparent url("images/images/icon-menu-dark.svg") no-repeat right 4px;
  color: #464c59; }
  .no-svg .code42 .main-header.fixed-header button, .no-svg .crashplan .main-header.fixed-header button, .no-svg .shareplan .main-header.fixed-header button, .no-svg .enterprise .main-header.fixed-header button, .no-svg .business .main-header.fixed-header button, .no-svg .store .main-header.fixed-header button {
    background-image: url("images/images/icon-menu-dark.png"); }
.code42 .main-header.fixed-header .main-header-buttons .main-header-menu-text a, .crashplan .main-header.fixed-header .main-header-buttons .main-header-menu-text a, .shareplan .main-header.fixed-header .main-header-buttons .main-header-menu-text a, .enterprise .main-header.fixed-header .main-header-buttons .main-header-menu-text a, .business .main-header.fixed-header .main-header-buttons .main-header-menu-text a, .store .main-header.fixed-header .main-header-buttons .main-header-menu-text a {
  color: #464c59; }
  .code42 .main-header.fixed-header .main-header-buttons .main-header-menu-text a:after, .crashplan .main-header.fixed-header .main-header-buttons .main-header-menu-text a:after, .shareplan .main-header.fixed-header .main-header-buttons .main-header-menu-text a:after, .enterprise .main-header.fixed-header .main-header-buttons .main-header-menu-text a:after, .business .main-header.fixed-header .main-header-buttons .main-header-menu-text a:after, .store .main-header.fixed-header .main-header-buttons .main-header-menu-text a:after {
    background-color: #000; }
.code42 .main-header.fixed-header .c42-global-header-links a, .crashplan .main-header.fixed-header .c42-global-header-links a, .shareplan .main-header.fixed-header .c42-global-header-links a, .enterprise .main-header.fixed-header .c42-global-header-links a, .business .main-header.fixed-header .c42-global-header-links a, .store .main-header.fixed-header .c42-global-header-links a {
  color: #464c59; }
.code42 .main-header.fixed-header .main-header-buttons .header-try-buy a, .crashplan .main-header.fixed-header .main-header-buttons .header-try-buy a, .shareplan .main-header.fixed-header .main-header-buttons .header-try-buy a, .enterprise .main-header.fixed-header .main-header-buttons .header-try-buy a, .business .main-header.fixed-header .main-header-buttons .header-try-buy a, .store .main-header.fixed-header .main-header-buttons .header-try-buy a {
  padding: .214285714em .357142857em .142857143em .50em;
  /* 14px */
  border: 1px solid #464c59;
  border-radius: 4px; }
@media (max-width: 720px) {
  .code42 .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .code42 .main-header.main-header-darkbg .main-header-logo g path, .crashplan .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .crashplan .main-header.main-header-darkbg .main-header-logo g path, .shareplan .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .shareplan .main-header.main-header-darkbg .main-header-logo g path, .enterprise .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .enterprise .main-header.main-header-darkbg .main-header-logo g path, .business .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .business .main-header.main-header-darkbg .main-header-logo g path, .store .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .store .main-header.main-header-darkbg .main-header-logo g path {
    fill: #464c59; }
  .code42 .main-header.main-header-darkbg button, .crashplan .main-header.main-header-darkbg button, .shareplan .main-header.main-header-darkbg button, .enterprise .main-header.main-header-darkbg button, .business .main-header.main-header-darkbg button, .store .main-header.main-header-darkbg button {
    background: transparent url("images/images/icon-menu-dark.svg") no-repeat right 4px;
    color: #464c59; }
    .no-svg .code42 .main-header.main-header-darkbg button, .no-svg .crashplan .main-header.main-header-darkbg button, .no-svg .shareplan .main-header.main-header-darkbg button, .no-svg .enterprise .main-header.main-header-darkbg button, .no-svg .business .main-header.main-header-darkbg button, .no-svg .store .main-header.main-header-darkbg button {
      background-image: url("images/images/icon-menu-dark.png"); }
  .code42 .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .crashplan .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .shareplan .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .enterprise .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .business .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a, .store .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a {
    color: #464c59; }
    .code42 .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .crashplan .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .shareplan .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .enterprise .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .business .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after, .store .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after {
      background-color: #000; }
  .code42 .main-header.main-header-darkbg .c42-global-header-links a, .crashplan .main-header.main-header-darkbg .c42-global-header-links a, .shareplan .main-header.main-header-darkbg .c42-global-header-links a, .enterprise .main-header.main-header-darkbg .c42-global-header-links a, .business .main-header.main-header-darkbg .c42-global-header-links a, .store .main-header.main-header-darkbg .c42-global-header-links a {
    color: #464c59; }
  .code42 .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .crashplan .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .shareplan .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .enterprise .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .business .main-header.main-header-darkbg .main-header-buttons .header-try-buy a, .store .main-header.main-header-darkbg .main-header-buttons .header-try-buy a {
    padding: .214285714em .357142857em .142857143em .50em;
    /* 14px */
    border: 1px solid #464c59;
    border-radius: 4px; }
  .code42 .main-header.main-header-darkbg .main-header-logo g path, .crashplan .main-header.main-header-darkbg .main-header-logo g path, .shareplan .main-header.main-header-darkbg .main-header-logo g path, .enterprise .main-header.main-header-darkbg .main-header-logo g path, .business .main-header.main-header-darkbg .main-header-logo g path, .store .main-header.main-header-darkbg .main-header-logo g path {
    fill: #fff; } }

.code42 .main-header-lightbg .main-header-buttons .header-try-buy a:hover, .code42 .main-header-darkbg .main-header-buttons .header-try-buy a:hover, .code42 .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:hover {
  color: #fff;
  border: 1px solid #FE5000;
  background-color: #FE5000;
  -moz-transition: all 150ms ease-in-out;
  -o-transition: all 150ms ease-in-out;
  -webkit-transition: all 150ms ease-in-out;
  transition: all 150ms ease-in-out; }
@media (max-width: 720px) {
  .code42 .main-header.main-header-darkbg .logo-code42-inlined .logo-text, .code42 .main-header.main-header-darkbg .main-header-logo g path {
    fill: #fff; }
  .code42 .main-header.main-header-darkbg button {
    background: transparent url("images/images/icon-menu-light.svg") no-repeat right 4px;
    color: #fff; }
    .no-svg .code42 .main-header.main-header-darkbg button {
      background-image: url("images/images/icon-menu-light.png"); }
  .code42 .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a {
    color: #fff; }
    .code42 .main-header.main-header-darkbg .main-header-buttons .main-header-menu-text a:after {
      background-color: #FFF; }
  .code42 .main-header.main-header-darkbg .c42-global-header-links a {
    color: #fff; }
  .code42 .main-header.main-header-darkbg .main-header-buttons .header-try-buy a {
    padding: .214285714em .357142857em .142857143em .50em;
    /* 14px */
    border: 1px solid #fff;
    border-radius: 4px; }
  .code42 .main-header.fixed-header .logo-code42-inlined .logo-text, .code42 .main-header.fixed-header .main-header-logo g path {
    fill: #464c59; }
  .code42 .main-header.fixed-header button {
    background: transparent url("images/images/icon-menu-dark.svg") no-repeat right 4px;
    color: #464c59; }
    .no-svg .code42 .main-header.fixed-header button {
      background-image: url("images/images/icon-menu-dark.png"); }
  .code42 .main-header.fixed-header .main-header-buttons .main-header-menu-text a {
    color: #464c59; }
    .code42 .main-header.fixed-header .main-header-buttons .main-header-menu-text a:after {
      background-color: #000; }
  .code42 .main-header.fixed-header .c42-global-header-links a {
    color: #464c59; }
  .code42 .main-header.fixed-header .main-header-buttons .header-try-buy a {
    padding: .214285714em .357142857em .142857143em .50em;
    /* 14px */
    border: 1px solid #464c59;
    border-radius: 4px; } }

.crashplan .main-header-lightbg .main-header-buttons .header-try-buy a:hover, .crashplan .main-header-darkbg .main-header-buttons .header-try-buy a:hover, .crashplan .main-header-darkbg.fixed-header .main-header-buttons .header-try-buy a:hover {
  color: #fff;
  border: 1px solid #7ab700;
  background-color: #7ab700;
  -moz-transition: all 150ms ease-in-out;
  -o-transition: all 150ms ease-in-out;
  -webkit-transition: all 150ms ease-in-out;
  transition: all 150ms ease-in-out; }

.store .header-buy {
  display: none; }
@media (max-width: 1024px) {
  .store .header-contact-sales {
    display: none; } }
@media (max-width: 865px) {
  .store .header-support {
    display: none; } }

@media (max-width: 759px) {
  .code42 .main-header-menu-text,
  .crashplan .main-header-menu-text,
  .store .main-header-menu-text,
  .shareplan .main-header-menu-text,
  .business .main-header-menu-text,
  .enterprise .main-header-menu-text {
    display: none; } }

.crashplan .main-header-content, .store .main-header-content, .business .main-header-content {
  padding: 0 20px; }

/* Hide Try/Buy Button in store */
.store_index .header-try-buy {
  display: none; }

/* MOBILE FIXES ------------------------ */
.mobile .business .fixed-header,
.mobile .enterprise .fixed-header {
  display: none !important; }

/* IE FIXES ------------------------ */
/* ie8 */
.ie8 .code42 .main-header,
.ie8 .crashplan .main-header,
.ie8 .store .main-header,
.ie8 .shareplan .main-header,
.ie8 .enterprise .main-header,
.ie8 .business .main-header {
  position: fixed;
  background: #fff;
  border-bottom: solid 1px #c1cad1; }
  .ie8 .code42 .main-header .main-header-buttons a:link, .ie8 .code42 .main-header .main-header-buttons a:active, .ie8 .code42 .main-header .main-header-buttons a:visited,
  .ie8 .crashplan .main-header .main-header-buttons a:link,
  .ie8 .crashplan .main-header .main-header-buttons a:active,
  .ie8 .crashplan .main-header .main-header-buttons a:visited,
  .ie8 .store .main-header .main-header-buttons a:link,
  .ie8 .store .main-header .main-header-buttons a:active,
  .ie8 .store .main-header .main-header-buttons a:visited,
  .ie8 .shareplan .main-header .main-header-buttons a:link,
  .ie8 .shareplan .main-header .main-header-buttons a:active,
  .ie8 .shareplan .main-header .main-header-buttons a:visited,
  .ie8 .enterprise .main-header .main-header-buttons a:link,
  .ie8 .enterprise .main-header .main-header-buttons a:active,
  .ie8 .enterprise .main-header .main-header-buttons a:visited,
  .ie8 .business .main-header .main-header-buttons a:link,
  .ie8 .business .main-header .main-header-buttons a:active,
  .ie8 .business .main-header .main-header-buttons a:visited {
    color: #434951; }
  .ie8 .code42 .main-header button,
  .ie8 .crashplan .main-header button,
  .ie8 .store .main-header button,
  .ie8 .shareplan .main-header button,
  .ie8 .enterprise .main-header button,
  .ie8 .business .main-header button {
    background-image: url("images/icon-menu-dark.png");
    color: #464c59; }
  .ie8 .code42 .main-header .c42-header-wrapper,
  .ie8 .crashplan .main-header .c42-header-wrapper,
  .ie8 .store .main-header .c42-header-wrapper,
  .ie8 .shareplan .main-header .c42-header-wrapper,
  .ie8 .enterprise .main-header .c42-header-wrapper,
  .ie8 .business .main-header .c42-header-wrapper {
    background: #F2F5F7; }
  .ie8 .code42 .main-header .c42-global-header-links a,
  .ie8 .crashplan .main-header .c42-global-header-links a,
  .ie8 .store .main-header .c42-global-header-links a,
  .ie8 .shareplan .main-header .c42-global-header-links a,
  .ie8 .enterprise .main-header .c42-global-header-links a,
  .ie8 .business .main-header .c42-global-header-links a {
    color: #989FA7 !important; }

/* ie9 */
.ie9 .code42 .main-header,
.ie9 .crashplan .main-header,
.ie9 .store .main-header,
.ie9 .shareplan .main-header,
.ie9 .enterprise .main-header,
.ie9 .business .main-header {
  background: rgba(0, 0, 0, 0.3); }
  .ie9 .code42 .main-header.fixed-header,
  .ie9 .crashplan .main-header.fixed-header,
  .ie9 .store .main-header.fixed-header,
  .ie9 .shareplan .main-header.fixed-header,
  .ie9 .enterprise .main-header.fixed-header,
  .ie9 .business .main-header.fixed-header {
    background: #fff; }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
.main-nav {
  font-family: "proxima-nova", Helvetica, Arial, sans-serif;
  background: #050505;
  color: #FFF;
  overflow-y: auto;
  padding-top: 28px;
  position: fixed;
  height: 100%;
  width: 306px;
  z-index: 2;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.75;
  font-weight: 100;
  -moz-transition: margin 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  -o-transition: margin 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  -webkit-transition: margin 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  transition: margin 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  top: 0;
  left: 100%;
  margin-left: 0; }
  @media (max-width: 500px) {
    .main-nav {
      width: 100%; } }
  .main-nav nav {
    margin-left: -18px; }
  .main-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    line-height: 1.75; }
  .main-nav li {
    margin-bottom: 0; }
  .main-nav a {
    color: #FFF;
    display: block;
    text-decoration: none;
    /* Disabling external link icon for now, but expect to return */
    /*&[target="_blank"]:hover:after {
    	font-family: "FontAwesome";
    	content: "\00A0\00A0\f08e";
    	position: relative;
    	top: 1px;
    }*/ }
    .main-nav a:hover {
      color: #FFF;
      text-decoration: none; }
    .main-nav a.header-try-buy {
      -moz-transition: all 150ms ease-in-out;
      -o-transition: all 150ms ease-in-out;
      -webkit-transition: all 150ms ease-in-out;
      transition: all 150ms ease-in-out;
      padding: .214285714em .357142857em .142857143em .50em;
      /* 14px */
      border: 1px solid white;
      border-radius: 4px;
      text-transform: uppercase;
      display: inline-block;
      margin: 10px 0px 0px 18px;
      letter-spacing: 1.75px;
      font-size: 14px; }
      .main-nav a.header-try-buy:hover {
        color: #FFF;
        border: 1px solid #FE5000;
        background-color: #FE5000; }
  .main-nav button {
    border: none;
    background: transparent url("images/nav-icon-close.svg") no-repeat 31px 17px;
    width: 60px;
    height: 40px;
    position: absolute;
    right: 0px;
    top: 16px;
    margin: 0; }
    .no-svg .main-nav button {
      background-image: url("images/nav-icon-close.png"); }
    .main-nav button:hover {
      background-position: 31px -47px; }
    .main-nav button:after {
      content: none; }
  .main-nav .main-nav-tier1 {
    padding-left: 16px;
    padding-right: 16px; }
  .main-nav .main-nav-tier2 {
    margin-bottom: 30px;
    margin-left: 18px; }
    .main-nav .main-nav-tier2 li a {
      padding-left: 18px; }
      .main-nav .main-nav-tier2 li a.header-try-buy {
        height: 24px;
        padding: 1px 5px 2px 7px;
        margin: 2px 0px 6px 18px;
        letter-spacing: 1.75px;
        font-weight: 300;
        line-height: 22px;
        vertical-align: top; }
  .code42 .main-nav .main-nav-tier2 {
    margin-bottom: 20px;
    border-bottom: 1px solid #4C4C4C;
    padding-bottom: 20px; }
    .code42 .main-nav .main-nav-tier2:last-child {
      border-bottom: none; }
  .crashplan .main-nav .main-nav-tier2, .business .main-nav .main-nav-tier2 {
    border-bottom: 1px solid #4C4C4C;
    padding-bottom: 15px;
    margin-bottom: 15px; }
    .crashplan .main-nav .main-nav-tier2 .header-try-buy, .business .main-nav .main-nav-tier2 .header-try-buy {
      margin-top: 10px; }
    .crashplan .main-nav .main-nav-tier2:last-child, .business .main-nav .main-nav-tier2:last-child {
      border-bottom: none; }
  .business .main-nav .main-nav-tier2 .header-try-buy {
    height: 19px; }
  .main-nav .main-nav-tier1-headline {
    letter-spacing: .125em;
    text-transform: uppercase;
    border-bottom: 1px solid #344A52;
    color: #FFF;
    display: block;
    margin-bottom: .5em;
    margin-left: 18px; }
  .main-nav .main-nav-tier2-headline {
    background-repeat: no-repeat;
    background-position: 0 5px;
    cursor: pointer;
    padding-left: 18px;
    position: relative; }
  .main-nav .main-nav-tier2-headline, .main-nav a {
    font-weight: 300;
    -webkit-transition: color 0.1s ease-out;
    transition: color 0.1s ease-out; }
    .main-nav .main-nav-tier2-headline.header-try-buy:hover, .main-nav a.header-try-buy:hover {
      opacity: 1; }
    .main-nav .main-nav-tier2-headline:hover, .main-nav a:hover {
      color: gray; }
    .main-nav .main-nav-tier2-headline.main-nav-current:hover, .main-nav a.main-nav-current:hover {
      color: #cb4000; }
  .main-nav .main-nav-tier3 {
    padding-left: 20px; }
  .main-nav a.main-nav-current {
    color: #FE5000; }
  .main-nav .main-nav-tier2-headline {
    background: url("images/code42/nav-icon-minus.png") 0px center no-repeat;
    color: #FFF; }
  .main-nav .main-nav-collapsed .main-nav-tier2-headline {
    background: url("images/code42/nav-icon-plus.png") 0px center no-repeat; }
  .main-nav .nav-social {
    margin: 0;
    padding: 0;
    border: 0;
    overflow: hidden;
    *zoom: 1; }
    .main-nav .nav-social li {
      list-style-image: none;
      list-style-type: none;
      margin-left: 0;
      white-space: nowrap;
      float: left;
      padding-left: 4px;
      padding-right: 4px; }
      .main-nav .nav-social li:first-child {
        padding-left: 0; }
      .main-nav .nav-social li:last-child {
        padding-right: 0; }
      .main-nav .nav-social li.last {
        padding-right: 0; }
    .main-nav .nav-social li {
      padding: 0 .75em; }
      .main-nav .nav-social li:first-child {
        padding-left: 0; }
  .main-nav .not-current-section {
    margin-bottom: 30px; }
    .main-nav .not-current-section .main-nav-tier1-headline {
      background: url("images/code42/nav-icon-arrow.png") right 8px no-repeat;
      cursor: pointer;
      color: #859297; }
    .main-nav .not-current-section .main-nav-tier2 {
      display: none; }

.page-wrapper,
.main-header-logo,
.c42-product-header-logo,
.sp-subnav,
.store-cart,
.fixed-header,
#careersFooter {
  -moz-transition: left 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1), opacity 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  -o-transition: left 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1), opacity 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  -webkit-transition: left 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1), opacity 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  transition: left 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1), opacity 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  left: 0;
  /* Firefox needs a default value for the animation to work correctly */ }

.notransition {
  -moz-transition: none !important;
  -o-transition: none !important;
  -webkit-transition: none !important;
  transition: none !important; }

#livechat-compact-container, #livechat-container {
  -moz-transition: right 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1), opacity 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  -o-transition: right 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1), opacity 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  -webkit-transition: right 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1), opacity 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  transition: right 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1), opacity 0.33s cubic-bezier(0.694, 0.0482, 0.335, 1);
  right: inherit; }

.main-nav-open .main-header-logo,
.main-nav-open .c42-product-header-logo,
.main-nav-open .sp-subnav,
.main-nav-open .store-cart,
.main-nav-open .page-wrapper,
.main-nav-open .fixed-header,
.main-nav-open #careersFooter, .ie8 .main-nav-open .main-header {
  left: -306px; }
  @media (max-width: 500px) {
    .main-nav-open .main-header-logo,
    .main-nav-open .c42-product-header-logo,
    .main-nav-open .sp-subnav,
    .main-nav-open .store-cart,
    .main-nav-open .page-wrapper,
    .main-nav-open .fixed-header,
    .main-nav-open #careersFooter, .ie8 .main-nav-open .main-header {
      left: -100%; } }
.main-nav-open .main-nav {
  margin-left: -306px; }
  @media (max-width: 500px) {
    .main-nav-open .main-nav {
      margin-left: -100%; } }
.main-nav-open #livechat-compact-container, .main-nav-open #livechat-container {
  right: 321px !important; }
  @media (max-width: 500px) {
    .main-nav-open #livechat-compact-container, .main-nav-open #livechat-container {
      display: none; } }
.main-nav-open .main-header {
  opacity: 0; }
  @media (min-width: 421px) {
    .main-nav-open .main-header {
      opacity: 1; } }
@media (min-width: 421px) {
  .main-nav-open.code42 .main-header, .main-nav-open.shareplan .main-header, .main-nav-open.enterprise .main-header {
    opacity: 0; } }
@media (min-width: 475px) {
  .main-nav-open.code42 .main-header, .main-nav-open.shareplan .main-header, .main-nav-open.enterprise .main-header {
    opacity: 1; } }
@media (max-width: 1280px) {
  .main-nav-open.code42 .main-header .main-header-buttons a, .main-nav-open.shareplan .main-header .main-header-buttons a, .main-nav-open.enterprise .main-header .main-header-buttons a {
    display: none; } }
@media (max-width: 920px) {
  .main-nav-open.store .main-header .main-header-buttons a {
    display: none; } }
.main-nav-open .main-header-logo, .main-nav-open .c42-product-header-logo {
  left: 306px !important; }
@media (max-width: 1024px) {
  .main-nav-open .main-header-buttons a {
    display: none; } }
@media (max-width: 1080px) {
  .main-nav-open.crashplan .main-header-menu-text a, .main-nav-open.business .main-header-menu-text a {
    display: none; } }
@media (max-width: 500px) {
  .main-nav-open nav {
    margin-left: 0; }
  .main-nav-open .main-nav-tier1 {
    padding-left: 0; }
  .main-nav-open .main-nav {
    width: 100%; } }

.code42 .main-nav-tier1-headline, .code42 .business-nav, .code42 .home-nav, .enterprise .main-nav-tier1-headline, .enterprise .business-nav, .enterprise .home-nav, .shareplan .main-nav-tier1-headline, .shareplan .business-nav, .shareplan .home-nav, .resources .main-nav-tier1-headline, .resources .business-nav, .resources .home-nav {
  display: none; }

.business .business-enterprise-nav-title {
  display: none; }

.crashplan .business-nav, .crashplan .enterprise-nav-title, .store .business-nav, .store .enterprise-nav-title {
  display: none; }

.no-js .main-nav {
  display: block;
  position: static;
  width: 100%; }
  .no-js .main-nav .main-nav-tier1 > li {
    float: left;
    margin-right: 14px; }
  .no-js .main-nav button {
    display: none; }
.no-js .main-header {
  display: none; }
.no-js .page-content {
  padding-top: 0; }
  .no-js .page-content .banner-content {
    position: static; }

/*@import "main-footer";*/
/* Page elements */
.page-wrapper {
  background: #FFF;
  min-height: 100%;
  position: relative;
  z-index: 10; }

.page-content.add-header-space {
  padding-top: 53px; }

.content-wrapper {
  margin-left: auto;
  margin-right: auto;
  max-width: 1400px;
  padding-left: 20px;
  padding-right: 20px; }
  @media (min-width: 421px) {
    .content-wrapper {
      padding-left: 10%;
      padding-right: 10%; } }
  @media (min-width: 1400px) {
    .content-wrapper {
      padding-left: 150px;
      padding-right: 150px; } }

.main-content {
  background: #FFF; }
  .crashplan .main-content, .store .main-content {
    padding-bottom: 3em; }

.modal-video-container {
  display: none; }

.cart-checker.cart-is-empty {
  display: none; }

body > img {
  /* applies to analytics images appended to page */
  position: absolute;
  left: -1px;
  bottom: -1px; }

/* Apply to Brighttag iFrame, instead of with deprecated attributes, for html validation */
.brighttag-iframe {
  border: 0;
  overflow: hidden;
  margin: 0; }

/* Make ng-cloak/hide work on load since we load AngularJS after the page loads */
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
  display: none !important; }

[ng-click] {
  cursor: pointer; }

/* SimpleModal jQuery Plugin*/
#simplemodal-overlay {
  background: rgba(0, 0, 0, 0.5); }

#simplemodal-container {
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  background: #FFF;
  overflow: visible !important;
  padding: 15px;
  position: fixed !important;
  /* IE fix */ }

.modalCloseImg {
  background: url("images/icon-close-modal.png") no-repeat;
  cursor: pointer;
  height: 25px;
  left: -8px;
  position: absolute;
  top: -8px;
  width: 25px;
  z-index: 100; }

/*
 * HTML5 Boilerplate Image replacement
 */
.ir {
  background-color: transparent;
  border: 0;
  overflow: hidden;
  /* IE 6/7 fallback */
  *text-indent: -9999px; }

.ir:before {
  content: "";
  display: block;
  width: 0;
  height: 150%; }

/*
 * HTML5 Boilerplate Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.clearfix:before,
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

.clearfix:after {
  clear: both; }

/*
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.clearfix {
  *zoom: 1; }

/*
 * HTML5 Boilerplate: Hide only visually, but have it available for screenreaders: h5bp.com/v
 */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
 * Extends the .visuallyhidden class to allow the element to be focusable
 * when navigated to via the keyboard: h5bp.com/p
 */
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

.legacy-footer-wrap {
  position: relative;
  z-index: 2;
  background-color: #101F31;
  color: #E8E9EB;
  font-size: 13px;
  font-size: .8125rem;
  font-weight: 100;
  font-family: "proxima-nova", Helvetica, Arial, sans-serif;
  padding-top: 40px;
  -moz-box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.5);
  -webkit-box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.5);
  box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.5);
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0); }
  .business .legacy-footer-wrap *, .business .legacy-footer-wrap *:before, .business .legacy-footer-wrap *:after {
    box-sizing: border-box; }
  .enterprise .legacy-footer-wrap {
    line-height: normal; }
  .legacy-footer-wrap p {
    margin: 0;
    padding: 0; }
  .legacy-footer-wrap ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: block; }
  .legacy-footer-wrap a:link, .legacy-footer-wrap a:visited, .legacy-footer-wrap a:focus, .legacy-footer-wrap a:active {
    color: #D3D4D7;
    text-decoration: none; }
  .legacy-footer-wrap a:hover {
    color: #fff; }
  @media (max-width: 830px) {
    .legacy-footer-wrap {
      padding-top: 25px; } }
  .legacy-footer-wrap.no-careers {
    margin-bottom: 0px; }

.c42-copyright {
  background: #464C59;
  text-align: center;
  border-top: 1px solid #52656d;
  min-height: 25px;
  line-height: 25px;
  color: #b6bebf;
  font-size: 12px;
  font-size: .75rem;
  padding-right: 0;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0); }
  .c42-copyright a {
    color: #b6bebf; }
    .c42-copyright a:hover {
      color: #fff; }

.crashplan .c42-copyright, .shareplan .c42-copyright, .store .c42-copyright {
  display: none; }

/* intermediate breakpoint */
@media (min-width: 530px) {
  .c42-footer-nav li {
    width: 15%; }
    .c42-footer-nav li:first-child {
      width: 40%; }

  .c42-copyright {
    text-align: right;
    padding-right: 20px; } }
.legacy-footer, .footer-copyright {
  padding: 0 20px; }

.legacy-footer {
  padding-bottom: 35px; }
  .legacy-footer:after {
    content: "";
    display: table;
    clear: both; }
  .legacy-footer .legacy-footer-logo {
    width: 90px;
    height: 20px;
    margin-bottom: 12px; }
  .legacy-footer .legacy-footer-logo-icon {
    fill: #FE5000; }
  .legacy-footer .legacy-footer-logo-text {
    fill: #fff; }
  .legacy-footer .c42-summary, .legacy-footer .product-column, .legacy-footer .footer-social-links {
    float: left; }
  .legacy-footer .c42-summary {
    padding-right: 30px; }
    .legacy-footer .c42-summary p {
      margin-bottom: 20px;
      line-height: 19px;
      color: #D3D4D7; }
    @media (max-width: 1000px) {
      .legacy-footer .c42-summary {
        width: 30%;
        margin-right: 30px; } }
    @media (max-width: 830px) {
      .legacy-footer .c42-summary {
        width: 100%;
        padding: 0 20px; }
        .legacy-footer .c42-summary li {
          max-width: 100%; } }
  .legacy-footer .product-columns {
    width: 100%; }
    .legacy-footer .product-columns:after {
      content: "";
      display: table;
      clear: both; }
    .legacy-footer .product-columns input {
      display: none; }
    .legacy-footer .product-columns .product-column {
      width: 14%;
      margin-left: 10px;
      float: left; }
      .legacy-footer .product-columns .product-column ul li {
        margin: 7px 0; }
      .legacy-footer .product-columns .product-column.code42-column {
        width: 13%; }
      .legacy-footer .product-columns .product-column .footer-section-title {
        margin-top: 4px;
        font-weight: normal;
        margin-bottom: 20px;
        display: block;
        color: #D3D4D7;
        -webkit-tap-highlight-color: transparent; }
        @media (max-width: 830px) {
          .legacy-footer .product-columns .product-column .footer-section-title {
            margin-top: 0px;
            position: relative;
            z-index: 20;
            cursor: pointer;
            background: #F2F4F4;
            margin-bottom: 0;
            color: #9BABB8;
            font-size: 16px;
            font-size: 1rem;
            line-height: 60px;
            border-bottom: 2px solid #fff; } }
      @media (max-width: 1000px) {
        .legacy-footer .product-columns .product-column {
          width: 16%; } }
      @media (max-width: 830px) {
        .legacy-footer .product-columns .product-column {
          float: none;
          width: 100%;
          margin-left: 0; }
          .legacy-footer .product-columns .product-column.code42-column {
            width: 100%; }
          .legacy-footer .product-columns .product-column:last-child label {
            border: none; } }
    @media (max-width: 830px) {
      .legacy-footer .product-columns {
        margin-top: 30px;
        text-align: center;
        display: inline-block; }
        .legacy-footer .product-columns input:checked + label.footer-section-title {
          background: #D3DADA;
          color: #fff;
          border-bottom: none;
          cursor: default; }
        .legacy-footer .product-columns label:hover:after, .legacy-footer .product-columns input:checked + label:hover:after {
          content: '';
          width: 24px;
          height: 24px;
          right: 13px;
          top: 7px; }
        .legacy-footer .product-columns ul {
          overflow: hidden;
          max-height: 0;
          position: relative;
          z-index: 10;
          width: 100%;
          max-width: 600px;
          margin: 0 auto;
          padding-left: 10px;
          padding-right: 10px;
          font-size: 0;
          -moz-transition: ease 0.5s;
          -o-transition: ease 0.5s;
          -webkit-transition: ease 0.5s;
          transition: ease 0.5s;
          text-align: left; }
        .legacy-footer .product-columns input:checked ~ ul {
          padding: 20px 10px;
          max-height: 400px; }
        .legacy-footer .product-columns li {
          width: 33%;
          padding: 0 10px;
          display: inline-block;
          vertical-align: top;
          text-align: center;
          font-size: 13px;
          font-size: .8125rem; } }
  .legacy-footer li.footer-section-title {
    font-weight: normal;
    margin-bottom: 11px; }
  .legacy-footer .footer-truste {
    text-align: right;
    width: auto;
    float: right; }
    @media (max-width: 1000px) {
      .legacy-footer .footer-truste {
        float: none;
        text-align: left;
        margin-top: 30px;
        display: inline-block; } }
    @media (max-width: 830px) {
      .legacy-footer .footer-truste {
        margin-left: 20px;
        margin-top: 0; } }
    @media (max-width: 385px) {
      .legacy-footer .footer-truste {
        float: none;
        text-align: left;
        margin-top: 20px;
        margin-left: 0;
        display: block; } }
  @media (max-width: 830px) {
    .legacy-footer {
      padding: 0;
      margin-bottom: -4px; } }

.footer-copyright {
  font-size: 12px;
  line-height: 19px;
  background-color: #1B293A;
  padding-top: 5px;
  padding-bottom: 5px; }

/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* Bootstrap defaults for 940 grid */
/* Fluid grid 940px */
.row-fluid {
  width: 100%;
  overflow: hidden;
  *zoom: 1;
  /* Space grid-sized controls properly if multiple per line */
  /* generate .spanX and .offsetX */ }
  .row-fluid [class*="span"] {
    float: left;
    margin-left: 2.12766%;
    *margin-left: 2.07447%; }
  .row-fluid [class*="span"]:first-child {
    margin-left: 0; }
  .row-fluid .controls-row [class*="span"] + [class*="span"] {
    margin-left: 2.12766%; }
  .row-fluid .span1 {
    width: 6.38298%;
    *width: 6.32979%; }
  .row-fluid .span2 {
    width: 14.89362%;
    *width: 14.84043%; }
  .row-fluid .span3 {
    width: 23.40426%;
    *width: 23.35106%; }
  .row-fluid .span4 {
    width: 31.91489%;
    *width: 31.8617%; }
  .row-fluid .span5 {
    width: 40.42553%;
    *width: 40.37234%; }
  .row-fluid .span6 {
    width: 48.93617%;
    *width: 48.88298%; }
  .row-fluid .span7 {
    width: 57.44681%;
    *width: 57.39362%; }
  .row-fluid .span8 {
    width: 65.95745%;
    *width: 65.90426%; }
  .row-fluid .span9 {
    width: 74.46809%;
    *width: 74.41489%; }
  .row-fluid .span10 {
    width: 82.97872%;
    *width: 82.92553%; }
  .row-fluid .span11 {
    width: 91.48936%;
    *width: 91.43617%; }
  .row-fluid .span12 {
    width: 100%;
    *width: 99.94681%; }
  .row-fluid .offset1 {
    margin-left: 10.6383%;
    *margin-left: 10.53191%; }
  .row-fluid .offset1:first-child {
    margin-left: 8.51064%;
    *margin-left: 8.40426%; }
  .row-fluid .offset2 {
    margin-left: 19.14894%;
    *margin-left: 19.04255%; }
  .row-fluid .offset2:first-child {
    margin-left: 17.02128%;
    *margin-left: 16.91489%; }
  .row-fluid .offset3 {
    margin-left: 27.65957%;
    *margin-left: 27.55319%; }
  .row-fluid .offset3:first-child {
    margin-left: 25.53191%;
    *margin-left: 25.42553%; }
  .row-fluid .offset4 {
    margin-left: 36.17021%;
    *margin-left: 36.06383%; }
  .row-fluid .offset4:first-child {
    margin-left: 34.04255%;
    *margin-left: 33.93617%; }
  .row-fluid .offset5 {
    margin-left: 44.68085%;
    *margin-left: 44.57447%; }
  .row-fluid .offset5:first-child {
    margin-left: 42.55319%;
    *margin-left: 42.44681%; }
  .row-fluid .offset6 {
    margin-left: 53.19149%;
    *margin-left: 53.08511%; }
  .row-fluid .offset6:first-child {
    margin-left: 51.06383%;
    *margin-left: 50.95745%; }
  .row-fluid .offset7 {
    margin-left: 61.70213%;
    *margin-left: 61.59574%; }
  .row-fluid .offset7:first-child {
    margin-left: 59.57447%;
    *margin-left: 59.46809%; }
  .row-fluid .offset8 {
    margin-left: 70.21277%;
    *margin-left: 70.10638%; }
  .row-fluid .offset8:first-child {
    margin-left: 68.08511%;
    *margin-left: 67.97872%; }
  .row-fluid .offset9 {
    margin-left: 78.7234%;
    *margin-left: 78.61702%; }
  .row-fluid .offset9:first-child {
    margin-left: 76.59574%;
    *margin-left: 76.48936%; }
  .row-fluid .offset10 {
    margin-left: 87.23404%;
    *margin-left: 87.12766%; }
  .row-fluid .offset10:first-child {
    margin-left: 85.10638%;
    *margin-left: 85.0%; }
  .row-fluid .offset11 {
    margin-left: 95.74468%;
    *margin-left: 95.6383%; }
  .row-fluid .offset11:first-child {
    margin-left: 93.61702%;
    *margin-left: 93.51064%; }
  .row-fluid .offset12 {
    margin-left: 104.25532%;
    *margin-left: 104.14894%; }
  .row-fluid .offset12:first-child {
    margin-left: 102.12766%;
    *margin-left: 102.02128%; }

/* Reset utility classes */
[class*="span"].hide,
.row-fluid [class*="span"].hide {
  display: none; }

[class*="span"].pull-right,
.row-fluid [class*="span"].pull-right {
  float: right; }

/* breakpoint to one column */
@media (max-width: 620px) {
  .container {
    width: auto; }

  .row-fluid {
    width: 100%; }

  .row {
    margin-left: 0; }

  [class*="span"],
  .row-fluid [class*="span"] {
    float: none;
    display: block;
    width: 100%;
    margin-left: 0;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box; }

  .span12,
  .row-fluid .span12 {
    width: 100%;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box; }

  .row-fluid [class*="offset"]:first-child {
    margin-left: 0; }

  .controls-row [class*="span"] + [class*="span"] {
    margin-left: 0; } }
/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
.header-cart-widget a {
  background: transparent url("images/crashplan/store-cart-full.svg") no-repeat 0 6px;
  font-weight: 300;
  letter-spacing: normal;
  padding-left: 25px;
  text-transform: none; }
  .no-svg .header-cart-widget a {
    background-image: url("images/crashplan/store-cart-full.png"); }
  .header-cart-widget a:link, .header-cart-widget a:visited, .header-cart-widget a:hover {
    color: #8CA1A6; }
  .header-cart-widget a:after {
    left: 0; }

.header-cart-empty a {
  background: transparent url("images/crashplan/store-cart-empty.svg") no-repeat 0 6px; }
  .no-svg .header-cart-empty a {
    background-image: url("images/crashplan/store-cart-empty.png"); }
@media (min-width: 720px) {
  .header-cart-empty {
    /* Header widget is hidden when empty */
    display: none; } }

.store .header-cart-empty {
  /* Header widget is always visible in the store */
  display: block !important; }

.animated {
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  -ms-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-duration: 1s;
  -moz-animation-duration: 1s;
  -ms-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s; }

.animated.hinge {
  -webkit-animation-duration: 1s;
  -moz-animation-duration: 1s;
  -ms-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s; }

@-webkit-keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
@-moz-keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
@-o-keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
@keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
.flash {
  -webkit-animation-name: flash;
  -moz-animation-name: flash;
  -o-animation-name: flash;
  animation-name: flash; }

@-webkit-keyframes shake {
  0%, 100% {
    -webkit-transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translateX(-10px); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translateX(10px); } }
@-moz-keyframes shake {
  0%, 100% {
    -moz-transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% {
    -moz-transform: translateX(-10px); }
  20%, 40%, 60%, 80% {
    -moz-transform: translateX(10px); } }
@-o-keyframes shake {
  0%, 100% {
    -o-transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% {
    -o-transform: translateX(-10px); }
  20%, 40%, 60%, 80% {
    -o-transform: translateX(10px); } }
@keyframes shake {
  0%, 100% {
    transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% {
    transform: translateX(-10px); }
  20%, 40%, 60%, 80% {
    transform: translateX(10px); } }
.shake {
  -webkit-animation-name: shake;
  -moz-animation-name: shake;
  -o-animation-name: shake;
  animation-name: shake; }

@-webkit-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0); }
  40% {
    -webkit-transform: translateY(-30px); }
  60% {
    -webkit-transform: translateY(-15px); } }
@-moz-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -moz-transform: translateY(0); }
  40% {
    -moz-transform: translateY(-30px); }
  60% {
    -moz-transform: translateY(-15px); } }
@-o-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -o-transform: translateY(0); }
  40% {
    -o-transform: translateY(-30px); }
  60% {
    -o-transform: translateY(-15px); } }
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0); }
  40% {
    transform: translateY(-30px); }
  60% {
    transform: translateY(-15px); } }
.bounce {
  -webkit-animation-name: bounce;
  -moz-animation-name: bounce;
  -o-animation-name: bounce;
  animation-name: bounce; }

@-webkit-keyframes tada {
  0% {
    -webkit-transform: scale(1); }
  10%, 20% {
    -webkit-transform: scale(0.9) rotate(-3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale(1.1) rotate(3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale(1.1) rotate(-3deg); }
  100% {
    -webkit-transform: scale(1) rotate(0); } }
@-moz-keyframes tada {
  0% {
    -moz-transform: scale(1); }
  10%, 20% {
    -moz-transform: scale(0.9) rotate(-3deg); }
  30%, 50%, 70%, 90% {
    -moz-transform: scale(1.1) rotate(3deg); }
  40%, 60%, 80% {
    -moz-transform: scale(1.1) rotate(-3deg); }
  100% {
    -moz-transform: scale(1) rotate(0); } }
@-o-keyframes tada {
  0% {
    -o-transform: scale(1); }
  10%, 20% {
    -o-transform: scale(0.9) rotate(-3deg); }
  30%, 50%, 70%, 90% {
    -o-transform: scale(1.1) rotate(3deg); }
  40%, 60%, 80% {
    -o-transform: scale(1.1) rotate(-3deg); }
  100% {
    -o-transform: scale(1) rotate(0); } }
@keyframes tada {
  0% {
    transform: scale(1); }
  10%, 20% {
    transform: scale(0.9) rotate(-3deg); }
  30%, 50%, 70%, 90% {
    transform: scale(1.1) rotate(3deg); }
  40%, 60%, 80% {
    transform: scale(1.1) rotate(-3deg); }
  100% {
    transform: scale(1) rotate(0); } }
.tada {
  -webkit-animation-name: tada;
  -moz-animation-name: tada;
  -o-animation-name: tada;
  animation-name: tada; }

@-webkit-keyframes swing {
  20%, 40%, 60%, 80%, 100% {
    -webkit-transform-origin: top center; }
  20% {
    -webkit-transform: rotate(15deg); }
  40% {
    -webkit-transform: rotate(-10deg); }
  60% {
    -webkit-transform: rotate(5deg); }
  80% {
    -webkit-transform: rotate(-5deg); }
  100% {
    -webkit-transform: rotate(0deg); } }
@-moz-keyframes swing {
  20% {
    -moz-transform: rotate(15deg); }
  40% {
    -moz-transform: rotate(-10deg); }
  60% {
    -moz-transform: rotate(5deg); }
  80% {
    -moz-transform: rotate(-5deg); }
  100% {
    -moz-transform: rotate(0deg); } }
@-o-keyframes swing {
  20% {
    -o-transform: rotate(15deg); }
  40% {
    -o-transform: rotate(-10deg); }
  60% {
    -o-transform: rotate(5deg); }
  80% {
    -o-transform: rotate(-5deg); }
  100% {
    -o-transform: rotate(0deg); } }
@keyframes swing {
  20% {
    transform: rotate(15deg); }
  40% {
    transform: rotate(-10deg); }
  60% {
    transform: rotate(5deg); }
  80% {
    transform: rotate(-5deg); }
  100% {
    transform: rotate(0deg); } }
.swing {
  -webkit-transform-origin: top center;
  -moz-transform-origin: top center;
  -o-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  -moz-animation-name: swing;
  -o-animation-name: swing;
  animation-name: swing; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes wobble {
  0% {
    -webkit-transform: translateX(0%); }
  15% {
    -webkit-transform: translateX(-25%) rotate(-5deg); }
  30% {
    -webkit-transform: translateX(20%) rotate(3deg); }
  45% {
    -webkit-transform: translateX(-15%) rotate(-3deg); }
  60% {
    -webkit-transform: translateX(10%) rotate(2deg); }
  75% {
    -webkit-transform: translateX(-5%) rotate(-1deg); }
  100% {
    -webkit-transform: translateX(0%); } }
@-moz-keyframes wobble {
  0% {
    -moz-transform: translateX(0%); }
  15% {
    -moz-transform: translateX(-25%) rotate(-5deg); }
  30% {
    -moz-transform: translateX(20%) rotate(3deg); }
  45% {
    -moz-transform: translateX(-15%) rotate(-3deg); }
  60% {
    -moz-transform: translateX(10%) rotate(2deg); }
  75% {
    -moz-transform: translateX(-5%) rotate(-1deg); }
  100% {
    -moz-transform: translateX(0%); } }
@-o-keyframes wobble {
  0% {
    -o-transform: translateX(0%); }
  15% {
    -o-transform: translateX(-25%) rotate(-5deg); }
  30% {
    -o-transform: translateX(20%) rotate(3deg); }
  45% {
    -o-transform: translateX(-15%) rotate(-3deg); }
  60% {
    -o-transform: translateX(10%) rotate(2deg); }
  75% {
    -o-transform: translateX(-5%) rotate(-1deg); }
  100% {
    -o-transform: translateX(0%); } }
@keyframes wobble {
  0% {
    transform: translateX(0%); }
  15% {
    transform: translateX(-25%) rotate(-5deg); }
  30% {
    transform: translateX(20%) rotate(3deg); }
  45% {
    transform: translateX(-15%) rotate(-3deg); }
  60% {
    transform: translateX(10%) rotate(2deg); }
  75% {
    transform: translateX(-5%) rotate(-1deg); }
  100% {
    transform: translateX(0%); } }
.wobble {
  -webkit-animation-name: wobble;
  -moz-animation-name: wobble;
  -o-animation-name: wobble;
  animation-name: wobble; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scale(1); }
  50% {
    -webkit-transform: scale(1.1); }
  100% {
    -webkit-transform: scale(1); } }
@-moz-keyframes pulse {
  0% {
    -moz-transform: scale(1); }
  50% {
    -moz-transform: scale(1.1); }
  100% {
    -moz-transform: scale(1); } }
@-o-keyframes pulse {
  0% {
    -o-transform: scale(1); }
  50% {
    -o-transform: scale(1.1); }
  100% {
    -o-transform: scale(1); } }
@keyframes pulse {
  0% {
    transform: scale(1); }
  50% {
    transform: scale(1.1); }
  100% {
    transform: scale(1); } }
.pulse {
  -webkit-animation-name: pulse;
  -moz-animation-name: pulse;
  -o-animation-name: pulse;
  animation-name: pulse; }

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@-moz-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@-o-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
.fadeIn {
  -webkit-animation-name: fadeIn;
  -moz-animation-name: fadeIn;
  -o-animation-name: fadeIn;
  animation-name: fadeIn; }

@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }
@-moz-keyframes fadeInUp {
  0% {
    opacity: 0;
    -moz-transform: translateY(20px); }
  100% {
    opacity: 1;
    -moz-transform: translateY(0); } }
@-o-keyframes fadeInUp {
  0% {
    opacity: 0;
    -o-transform: translateY(20px); }
  100% {
    opacity: 1;
    -o-transform: translateY(0); } }
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
.fadeInUp {
  -webkit-animation-name: fadeInUp;
  -moz-animation-name: fadeInUp;
  -o-animation-name: fadeInUp;
  animation-name: fadeInUp; }

@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0); } }
@-moz-keyframes fadeInDown {
  0% {
    opacity: 0;
    -moz-transform: translateY(-20px); }
  100% {
    opacity: 1;
    -moz-transform: translateY(0); } }
@-o-keyframes fadeInDown {
  0% {
    opacity: 0;
    -o-transform: translateY(-20px); }
  100% {
    opacity: 1;
    -o-transform: translateY(0); } }
@keyframes fadeInDown {
  0% {
    opacity: 0;
    transform: translateY(-20px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
.fadeInDown {
  -webkit-animation-name: fadeInDown;
  -moz-animation-name: fadeInDown;
  -o-animation-name: fadeInDown;
  animation-name: fadeInDown; }

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }
@-moz-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }
@-o-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }
@keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }
.fadeOut {
  -webkit-animation-name: fadeOut;
  -moz-animation-name: fadeOut;
  -o-animation-name: fadeOut;
  animation-name: fadeOut; }

@-webkit-keyframes fadeOutUp {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-20px); } }
@-moz-keyframes fadeOutUp {
  0% {
    opacity: 1;
    -moz-transform: translateY(0); }
  100% {
    opacity: 0;
    -moz-transform: translateY(-20px); } }
@-o-keyframes fadeOutUp {
  0% {
    opacity: 1;
    -o-transform: translateY(0); }
  100% {
    opacity: 0;
    -o-transform: translateY(-20px); } }
@keyframes fadeOutUp {
  0% {
    opacity: 1;
    transform: translateY(0); }
  100% {
    opacity: 0;
    transform: translateY(-20px); } }
.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  -moz-animation-name: fadeOutUp;
  -o-animation-name: fadeOutUp;
  animation-name: fadeOutUp; }

@-webkit-keyframes fadeOutDown {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(20px); } }
@-moz-keyframes fadeOutDown {
  0% {
    opacity: 1;
    -moz-transform: translateY(0); }
  100% {
    opacity: 0;
    -moz-transform: translateY(20px); } }
@-o-keyframes fadeOutDown {
  0% {
    opacity: 1;
    -o-transform: translateY(0); }
  100% {
    opacity: 0;
    -o-transform: translateY(20px); } }
@keyframes fadeOutDown {
  0% {
    opacity: 1;
    transform: translateY(0); }
  100% {
    opacity: 0;
    transform: translateY(20px); } }
.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  -moz-animation-name: fadeOutDown;
  -o-animation-name: fadeOutDown;
  animation-name: fadeOutDown; }

@-webkit-keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft; }

@-webkit-keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight; }

/*! Hint.css - v1.3.0 - 2013-08-05
* http://kushagragour.in/lab/hint/
* Copyright (c) 2013 Kushagra Gour; Licensed MIT */
/*-------------------------------------*\
	HINT.css - A CSS tooltip library
\*-------------------------------------*/
/**
 * HINT.css is a tooltip library made in pure CSS.
 *
 * Source: https://github.com/chinchang/hint.css
 * Demo: http://kushagragour.in/labs/hint/
 *
 * Release under The MIT License
 *
 */
/**
 * source: hint-core.scss
 *
 * Defines the basic styling for the tooltip.
 * Each tooltip is made of 2 parts:
 * 	1) body (:after)
 * 	2) arrow (:before)
 * 
 * Classes added:
 * 	1) hint
 */
.hint, [data-hint] {
  position: relative;
  display: inline-block;
  /**
   * tooltip arrow
   */
  /**
   * tooltip body
   */ }

.hint:before, .hint:after, [data-hint]:before, [data-hint]:after {
  position: absolute;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  visibility: hidden;
  opacity: 0;
  z-index: 1000000;
  pointer-events: none;
  -webkit-transition: 0.3s ease;
  -moz-transition: 0.3s ease;
  transition: 0.3s ease; }

.hint:hover:before, .hint:hover:after, .hint:focus:before, .hint:focus:after, [data-hint]:hover:before, [data-hint]:hover:after, [data-hint]:focus:before, [data-hint]:focus:after {
  visibility: visible;
  opacity: 1; }

.hint:before, [data-hint]:before {
  content: '';
  position: absolute;
  background: transparent;
  border: 6px solid transparent;
  z-index: 1000001; }

.hint:after, [data-hint]:after {
  content: attr(data-hint);
  background: #383838;
  color: white;
  text-shadow: 0 -1px 0px black;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 12px;
  white-space: nowrap;
  box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.3); }

/**
 * source: hint-position.scss
 *
 * Defines the positoning logic for the tooltips.
 * 
 * Classes added:
 * 	1) hint--top
 * 	2) hint--bottom
 * 	3) hint--left
 * 	4) hint--right
 */
/**
 * set default color for tooltip arrows
 */
.hint--top:before {
  border-top-color: #383838; }

.hint--bottom:before {
  border-bottom-color: #383838; }

.hint--left:before {
  border-left-color: #383838; }

.hint--right:before {
  border-right-color: #383838; }

/**
 * top tooltip
 */
.hint--top:before {
  margin-bottom: -12px; }

.hint--top:after {
  margin-left: -18px; }

.hint--top:before, .hint--top:after {
  bottom: 100%;
  left: 50%; }

.hint--top:hover:after, .hint--top:hover:before, .hint--top:focus:after, .hint--top:focus:before {
  -webkit-transform: translateY(-8px);
  -moz-transform: translateY(-8px);
  transform: translateY(-8px); }

/**
 * bottom tooltip
 */
.hint--bottom:before {
  margin-top: -12px; }

.hint--bottom:after {
  margin-left: -18px; }

.hint--bottom:before, .hint--bottom:after {
  top: 100%;
  left: 50%; }

.hint--bottom:hover:after, .hint--bottom:hover:before, .hint--bottom:focus:after, .hint--bottom:focus:before {
  -webkit-transform: translateY(8px);
  -moz-transform: translateY(8px);
  transform: translateY(8px); }

/**
 * right tooltip
 */
.hint--right:before {
  margin-left: -12px;
  margin-bottom: -6px; }

.hint--right:after {
  margin-bottom: -14px; }

.hint--right:before, .hint--right:after {
  left: 100%;
  bottom: 50%; }

.hint--right:hover:after, .hint--right:hover:before, .hint--right:focus:after, .hint--right:focus:before {
  -webkit-transform: translateX(8px);
  -moz-transform: translateX(8px);
  transform: translateX(8px); }

/**
 * left tooltip
 */
.hint--left:before {
  margin-right: -12px;
  margin-bottom: -6px; }

.hint--left:after {
  margin-bottom: -14px; }

.hint--left:before, .hint--left:after {
  right: 100%;
  bottom: 50%; }

.hint--left:hover:after, .hint--left:hover:before, .hint--left:focus:after, .hint--left:focus:before {
  -webkit-transform: translateX(-8px);
  -moz-transform: translateX(-8px);
  transform: translateX(-8px); }

/**
 * source: hint-color-types.scss
 *
 * Contains tooltips of various types based on color differences.
 * 
 * Classes added:
 * 	1) hint--error
 * 	2) hint--warning
 * 	3) hint--info
 * 	4) hint--success
 * 	
 */
/**
 * Error
 */
.hint--error:after {
  background-color: #b34e4d;
  text-shadow: 0 -1px 0px #592726; }

.hint--error.hint--top:before {
  border-top-color: #b34e4d; }

.hint--error.hint--bottom:before {
  border-bottom-color: #b34e4d; }

.hint--error.hint--left:before {
  border-left-color: #b34e4d; }

.hint--error.hint--right:before {
  border-right-color: #b34e4d; }

/**
 * Warning
 */
.hint--warning:after {
  background-color: #c09854;
  text-shadow: 0 -1px 0px #6c5328; }

.hint--warning.hint--top:before {
  border-top-color: #c09854; }

.hint--warning.hint--bottom:before {
  border-bottom-color: #c09854; }

.hint--warning.hint--left:before {
  border-left-color: #c09854; }

.hint--warning.hint--right:before {
  border-right-color: #c09854; }

/**
 * Info
 */
.hint--info:after {
  background-color: #3986ac;
  text-shadow: 0 -1px 0px #193b4d; }

.hint--info.hint--top:before {
  border-top-color: #3986ac; }

.hint--info.hint--bottom:before {
  border-bottom-color: #3986ac; }

.hint--info.hint--left:before {
  border-left-color: #3986ac; }

.hint--info.hint--right:before {
  border-right-color: #3986ac; }

/**
 * Success
 */
.hint--success:after {
  background-color: #458746;
  text-shadow: 0 -1px 0px #1a321a; }

.hint--success.hint--top:before {
  border-top-color: #458746; }

.hint--success.hint--bottom:before {
  border-bottom-color: #458746; }

.hint--success.hint--left:before {
  border-left-color: #458746; }

.hint--success.hint--right:before {
  border-right-color: #458746; }

/**
 * source: hint-always.scss
 *
 * Defines a persisted tooltip which shows always.
 * 
 * Classes added:
 * 	1) hint--always
 * 	
 */
.hint--always:after, .hint--always:before {
  opacity: 1;
  visibility: visible; }

.hint--always.hint--top:after, .hint--always.hint--top:before {
  -webkit-transform: translateY(-8px);
  -moz-transform: translateY(-8px);
  transform: translateY(-8px); }

.hint--always.hint--bottom:after, .hint--always.hint--bottom:before {
  -webkit-transform: translateY(8px);
  -moz-transform: translateY(8px);
  transform: translateY(8px); }

.hint--always.hint--left:after, .hint--always.hint--left:before {
  -webkit-transform: translateX(-8px);
  -moz-transform: translateX(-8px);
  transform: translateX(-8px); }

.hint--always.hint--right:after, .hint--always.hint--right:before {
  -webkit-transform: translateX(8px);
  -moz-transform: translateX(8px);
  transform: translateX(8px); }

/**
 * source: hint-rounded.scss
 *
 * Defines rounded corner tooltips.
 * 
 * Classes added:
 * 	1) hint--rounded
 *  
 */
.hint--rounded:after {
  border-radius: 4px; }

/**
 * source: hint-effects.scss
 *
 * Defines various transition effects for the tooltips.
 * 
 * Classes added:
 * 	1) hint--bounce
 * 	
 */
.hint--bounce:before, .hint--bounce:after {
  -webkit-transition: opacity 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
  -moz-transition: opacity 0.3s ease, visibility 0.3s ease, -moz-transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
.btn {
  color: #FFF;
  background: gray;
  letter-spacing: normal;
  text-transform: none;
  font-size: 16px;
  font-size: 1rem;
  padding: 1.25em 1.875em; }
  .btn:link, .btn:visited {
    color: #FFF; }
  .btn:hover {
    cursor: pointer;
    background: black;
    color: white; }
  .btn:active {
    background: red;
    color: white;
    position: relative;
    top: 2px; }
  @media (min-width: 580px) {
    .btn {
      font-size: 19px;
      font-size: 1.1875rem; } }

.btn, [class^="btn-"],
[class*=" btn-"] {
  border-radius: 4px;
  display: inline-block;
  transition: background-color .2s; }
  .btn[disabled=disabled], .btn:disabled, .btn[disabled=disabled]:hover, .btn:disabled:hover, .btn[disabled=disabled]:active, .btn:disabled:active, [class^="btn-"][disabled=disabled], [class^="btn-"]:disabled, [class^="btn-"][disabled=disabled]:hover, [class^="btn-"]:disabled:hover, [class^="btn-"][disabled=disabled]:active, [class^="btn-"]:disabled:active,
  [class*=" btn-"][disabled=disabled],
  [class*=" btn-"]:disabled,
  [class*=" btn-"][disabled=disabled]:hover,
  [class*=" btn-"]:disabled:hover,
  [class*=" btn-"][disabled=disabled]:active,
  [class*=" btn-"]:disabled:active {
    color: white;
    background: #a7b8bc;
    border: none;
    cursor: default;
    box-shadow: none; }

.btn-con {
  color: #FFF;
  background: #7ab700; }
  .btn-con:link, .btn-con:visited {
    color: #FFF; }
  .btn-con:hover {
    cursor: pointer;
    background: #cee08c;
    color: white; }
  .btn-con:active {
    background: #0b3d04;
    color: white;
    position: relative;
    top: 2px; }

.btn-con::-moz-selection {
  background: rgba(255, 255, 255, 0.75);
  color: #7ab700; }

.btn-con::selection {
  background: rgba(255, 255, 255, 0.75);
  color: #7ab700; }

.btn-biz, .business-btn {
  color: #FFF;
  background: #1ab6e8; }
  .btn-biz:link, .btn-biz:visited, .business-btn:link, .business-btn:visited {
    color: #FFF; }
  .btn-biz:hover, .business-btn:hover {
    cursor: pointer;
    background: #b9e5ef;
    color: white; }
  .btn-biz:active, .business-btn:active {
    background: #033e66;
    color: white;
    position: relative;
    top: 2px; }

.btn-biz::-moz-selection {
  background: rgba(255, 255, 255, 0.75);
  color: #1ab6e8; }

.btn-biz::selection {
  background: rgba(255, 255, 255, 0.75);
  color: #1ab6e8; }

.btn-ent {
  color: #FFF;
  background: #45535a; }
  .btn-ent:link, .btn-ent:visited {
    color: #FFF; }
  .btn-ent:hover {
    cursor: pointer;
    background: #4f6366;
    color: white; }
  .btn-ent:active {
    background: #273e47;
    color: white;
    position: relative;
    top: 2px; }

.btn-ent::-moz-selection {
  background: rgba(255, 255, 255, 0.75);
  color: #45535a; }

.btn-ent::selection {
  background: rgba(255, 255, 255, 0.75);
  color: #45535a; }

.btn-con-white {
  color: #FFF;
  background: #7ab700;
  background: white;
  color: #7ab700; }
  .btn-con-white:link, .btn-con-white:visited {
    color: #FFF; }
  .btn-con-white:hover {
    cursor: pointer;
    background: #cee08c;
    color: white; }
  .btn-con-white:active {
    background: #0b3d04;
    color: white;
    position: relative;
    top: 2px; }
  .btn-con-white:link, .btn-con-white:visited {
    color: #7ab700; }
  .btn-con-white:hover {
    color: #FFF; }

.btn-biz-white.shadow, .business-btn-1 {
  color: #FFF;
  background: #1ab6e8;
  box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5);
  background: white;
  color: #1ab6e8; }
  .btn-biz-white.shadow:link, .btn-biz-white.shadow:visited, .business-btn-1:link, .business-btn-1:visited {
    color: #FFF; }
  .btn-biz-white.shadow:hover, .business-btn-1:hover {
    cursor: pointer;
    background: #b9e5ef;
    color: white;
    box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-biz-white.shadow:active, .business-btn-1:active {
    background: #033e66;
    color: white;
    position: relative;
    top: 2px;
    box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-biz-white.shadow:link, .btn-biz-white.shadow:visited, .business-btn-1:link, .business-btn-1:visited {
    color: #1ab6e8; }
  .btn-biz-white.shadow:hover, .business-btn-1:hover {
    color: #FFF; }

.btn-con-white.shadow, .consumer-btn-1 {
  color: #FFF;
  background: #7ab700;
  box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5);
  background: white;
  color: #7ab700; }
  .btn-con-white.shadow:link, .btn-con-white.shadow:visited, .consumer-btn-1:link, .consumer-btn-1:visited {
    color: #FFF; }
  .btn-con-white.shadow:hover, .consumer-btn-1:hover {
    cursor: pointer;
    background: #cee08c;
    color: white;
    box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-con-white.shadow:active, .consumer-btn-1:active {
    background: #0b3d04;
    color: white;
    position: relative;
    top: 2px;
    box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-con-white.shadow:link, .btn-con-white.shadow:visited, .consumer-btn-1:link, .consumer-btn-1:visited {
    color: #7ab700; }
  .btn-con-white.shadow:hover, .consumer-btn-1:hover {
    color: #FFF; }

.btn-con.shadow {
  color: #FFF;
  background: #7ab700;
  box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-con.shadow:link, .btn-con.shadow:visited {
    color: #FFF; }
  .btn-con.shadow:hover {
    cursor: pointer;
    background: #cee08c;
    color: white;
    box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-con.shadow:active {
    background: #0b3d04;
    color: white;
    position: relative;
    top: 2px;
    box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.5); }

.btn-biz.shadow {
  color: #FFF;
  background: #1ab6e8;
  box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-biz.shadow:link, .btn-biz.shadow:visited {
    color: #FFF; }
  .btn-biz.shadow:hover {
    cursor: pointer;
    background: #b9e5ef;
    color: white;
    box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-biz.shadow:active {
    background: #033e66;
    color: white;
    position: relative;
    top: 2px;
    box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.5); }

.btn-ent.shadow {
  color: #FFF;
  background: #45535a;
  box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-ent.shadow:link, .btn-ent.shadow:visited {
    color: #FFF; }
  .btn-ent.shadow:hover {
    cursor: pointer;
    background: #4f6366;
    color: white;
    box-shadow: 0px 4px 0px 0px rgba(0, 0, 0, 0.5); }
  .btn-ent.shadow:active {
    background: #273e47;
    color: white;
    position: relative;
    top: 2px;
    box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.5); }

.consumer-btn-1, .btn-con.shadow, .btn-biz.shadow, .btn-ent.shadow {
  font-size: 14px;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: .15em;
  padding: 1.25em 1.375em; }
  @media (min-width: 580px) {
    .consumer-btn-1, .btn-con.shadow, .btn-biz.shadow, .btn-ent.shadow {
      font-size: 17px;
      font-size: 1.0625rem; } }

.business-btn-1 {
  font-size: 14px;
  font-size: 0.875rem;
  letter-spacing: .15em;
  padding: 1.25em 1.375em; }
  @media (min-width: 580px) {
    .business-btn-1 {
      font-size: 17px;
      font-size: 1.0625rem; } }

.btn-size-3 {
  padding: .938em 1.25em; }

body {
  color: #4D5B62;
  -webkit-font-smoothing: subpixel-antialiased; }

/* global resets */
h1, h2, h3, h4, h5, p {
  margin: 0;
  padding: 0; }

/* Global CrashPlan inline link styling */
a {
  text-decoration: none;
  color: #7AB700; }
  a:hover {
    color: #b4d66f;
    text-decoration: underline; }

::-moz-selection {
  background: rgba(122, 183, 0, 0.75);
  color: #FFF;
  text-shadow: none; }

::selection {
  background: rgba(122, 183, 0, 0.75);
  color: #FFF;
  text-shadow: none; }

/* add-on caret */
.caret:after {
  font-family: FontAwesome;
  content: " "; }

.clickable-parent {
  cursor: pointer; }

/* CrashPlan font sizes */
.text-size-1 {
  font-size: 48px;
  font-size: 3rem;
  line-height: 1.4;
  font-family: "TabacSlab", sans-serif;
  font-weight: bold;
  text-shadow: 0px 1px 4px rgba(0, 0, 0, 0.5);
  -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(color='black', Direction=135, Strength=2)";
  zoom: 1;
  line-height: 1.05; }
  @media (min-width: 695px) {
    .text-size-1 {
      font-size: 70px;
      font-size: 4.375rem; } }
  @media (min-width: 825px) {
    .text-size-1 {
      font-size: 78px;
      font-size: 4.875rem; } }
  @media (min-width: 925px) {
    .text-size-1 {
      font-size: 88px;
      font-size: 5.5rem; } }
  @media (min-width: 480px) {
    .text-size-1 {
      font-size: 70px;
      font-size: 4.375rem; } }
  @media (min-width: 580px) {
    .text-size-1 {
      font-size: 78px;
      font-size: 4.875rem; } }
  @media (min-width: 925px) {
    .text-size-1 {
      font-size: 88px;
      font-size: 5.5rem; } }

.text-size-2 {
  font-size: 30px;
  font-size: 1.875rem;
  line-height: 1.33333;
  font-weight: 100; }
  @media (min-width: 695px) {
    .text-size-2 {
      font-size: 38px;
      font-size: 2.375rem; } }
  @media (min-width: 825px) {
    .text-size-2 {
      font-size: 44px;
      font-size: 2.75rem; } }
  @media (min-width: 925px) {
    .text-size-2 {
      font-size: 48px;
      font-size: 3rem; } }
  @media (min-width: 480px) {
    .text-size-2 {
      font-size: 38px;
      font-size: 2.375rem; } }
  @media (min-width: 580px) {
    .text-size-2 {
      font-size: 44px;
      font-size: 2.75rem; } }
  @media (min-width: 925px) {
    .text-size-2 {
      font-size: 48px;
      font-size: 3rem; } }

.text-size-3 {
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 1.4; }
  @media (min-width: 695px) {
    .text-size-3 {
      font-size: 28px;
      font-size: 1.75rem; } }
  @media (min-width: 825px) {
    .text-size-3 {
      font-size: 32px;
      font-size: 2rem; } }
  @media (min-width: 925px) {
    .text-size-3 {
      font-size: 34px;
      font-size: 2.125rem; } }
  @media (min-width: 480px) {
    .text-size-3 {
      font-size: 28px;
      font-size: 1.75rem; } }
  @media (min-width: 580px) {
    .text-size-3 {
      font-size: 32px;
      font-size: 2rem; } }
  @media (min-width: 925px) {
    .text-size-3 {
      font-size: 34px;
      font-size: 2.125rem; } }

.text-size-4 {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 1.23077; }
  @media (min-width: 695px) {
    .text-size-4 {
      font-size: 22px;
      font-size: 1.375rem; } }
  @media (min-width: 825px) {
    .text-size-4 {
      font-size: 24px;
      font-size: 1.5rem; } }
  @media (min-width: 925px) {
    .text-size-4 {
      font-size: 26px;
      font-size: 1.625rem; } }
  @media (min-width: 480px) {
    .text-size-4 {
      font-size: 22px;
      font-size: 1.375rem; } }
  @media (min-width: 580px) {
    .text-size-4 {
      font-size: 24px;
      font-size: 1.5rem; } }
  @media (min-width: 925px) {
    .text-size-4 {
      font-size: 26px;
      font-size: 1.625rem; } }

.text-size-5 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.4;
  line-height: 1.2; }
  @media (min-width: 695px) {
    .text-size-5 {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 825px) {
    .text-size-5 {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .text-size-5 {
      font-size: 22px;
      font-size: 1.375rem; } }
  @media (min-width: 480px) {
    .text-size-5 {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 580px) {
    .text-size-5 {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .text-size-5 {
      font-size: 22px;
      font-size: 1.375rem; } }

.text-size-5-shadow {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.4;
  line-height: 1.2;
  text-shadow: 0px 1px 4px rgba(0, 0, 0, 0.5);
  -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(color='black', Direction=135, Strength=2)";
  zoom: 1; }
  @media (min-width: 695px) {
    .text-size-5-shadow {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 825px) {
    .text-size-5-shadow {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .text-size-5-shadow {
      font-size: 22px;
      font-size: 1.375rem; } }
  @media (min-width: 480px) {
    .text-size-5-shadow {
      font-size: 17px;
      font-size: 1.0625rem; } }
  @media (min-width: 580px) {
    .text-size-5-shadow {
      font-size: 19px;
      font-size: 1.1875rem; } }
  @media (min-width: 925px) {
    .text-size-5-shadow {
      font-size: 22px;
      font-size: 1.375rem; } }

.text-size-6 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.4; }

.text-size-7 {
  font-size: 12px;
  font-size: .75rem;
  line-height: 1.4;
  font-weight: 300; }

.text-size-8 {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.4; }
  @media (min-width: 695px) {
    .text-size-8 {
      font-size: 14px;
      font-size: 0.875rem; } }
  @media (min-width: 825px) {
    .text-size-8 {
      font-size: 16px;
      font-size: 1rem; } }
  @media (min-width: 925px) {
    .text-size-8 {
      font-size: 16px;
      font-size: 1rem; } }
  @media (min-width: 480px) {
    .text-size-8 {
      font-size: 14px;
      font-size: 0.875rem; } }
  @media (min-width: 580px) {
    .text-size-8 {
      font-size: 16px;
      font-size: 1rem; } }
  @media (min-width: 925px) {
    .text-size-8 {
      font-size: 16px;
      font-size: 1rem; } }

.fixed-34px {
  font-size: 34px;
  font-size: 2.125rem;
  font-weight: 300; }

.consumer-btn-2, .consumer-btn-3 {
  text-transform: none;
  font-size: 16px;
  font-size: 1rem; }
  @media (min-width: 580px) {
    .consumer-btn-2, .consumer-btn-3 {
      font-size: 19px;
      font-size: 1.1875rem; } }

.consumer-btn-2 {
  padding: 1.250em 1.875em;
  /*padding: 1.0526em 1.1579em;*/ }

.consumer-btn-3 {
  padding: 0.938em 1.250em;
  /*padding: 0.6842em 1.0526em;*/ }

.btn-caption {
  display: block;
  text-align: center;
  margin-top: 10px;
  font-size: 1.063em; }
  @media (max-width: 580px) {
    .btn-caption {
      font-size: 0.875em; } }

.content-wrapper {
  max-width: 1280px;
  padding: 0 30px; }

/* Carousel shared styling */
.feature-banner,
.feature-banner-content {
  background-position: 80% center;
  background-repeat: no-repeat;
  background-size: cover; }

.feature-banner-content {
  position: relative; }

.feature-banner-bg {
  left: 50%;
  margin-left: -800px;
  min-height: 100%;
  position: absolute;
  top: 0;
  min-width: 100%; }
  @media (min-width: 1600px) {
    .feature-banner-bg {
      margin-left: -50%; } }
  .feature-banner-bg video,
  .feature-banner-bg img {
    min-width: 100%; }

.feature-banner-bg2 {
  position: absolute;
  top: 0;
  width: 100%; }

.wrapper {
  display: block;
  height: 100%;
  padding: 0 30px;
  margin: 0 auto;
  width: 100%;
  max-width: 1280px;
  line-height: 1;
  overflow: hidden; }

body.modal-SCROLL-LOCK {
  overflow: hidden; }

.modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 42;
  position: fixed; }

.modal-sheet {
  position: absolute;
  top: 50%;
  left: 50%;
  max-width: 620px;
  min-height: 170px;
  background: white;
  -moz-border-radius: 4px;
  -webkit-border-radius: 4px;
  border-radius: 4px;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -moz-box-shadow: 0 0 20px 0 black;
  -webkit-box-shadow: 0 0 20px 0 black;
  box-shadow: 0 0 20px 0 black; }

.modal-close {
  cursor: pointer;
  position: absolute;
  right: 8px;
  top: 8px;
  width: 22px;
  height: 22px;
  font-size: 22px;
  color: #8CA1A6; }
  .modal-close:before {
    content: "";
    line-height: 1em;
    height: 1em;
    border-left: 1px solid #8CA1A6;
    left: .5em;
    position: absolute;
    transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    /* IE 9 */
    -webkit-transform: rotate(45deg);
    /* Safari and Chrome */ }
  .modal-close:after {
    line-height: 1em;
    position: absolute;
    content: "";
    line-height: 1em;
    height: 1em;
    left: .5em;
    border-left: 1px solid #8CA1A6;
    transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    /* IE 9 */
    -webkit-transform: rotate(-45deg);
    /* Safari and Chrome */ }

.modal-content {
  text-align: center;
  font-size: 23px;
  font-size: 1.4375rem;
  padding: 40px 20px 40px 20px; }

/* mobile - Get the App */
a.get-the-app-button {
  display: inline-block;
  padding: 8px 30px 8px 30px;
  margin-top: 1.1em;
  text-align: center;
  border: 1px solid #8CA1A6;
  color: #8CA1A6;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 400;
  white-space: nowrap; }

.feature-banner {
  height: 313px;
  padding-top: 53px;
  overflow: hidden; }
  @media (min-width: 720px) {
    .feature-banner {
      height: 458px; } }
  @media (min-width: 1024px) {
    .feature-banner {
      height: 658px; } }
  .feature-banner.feature-banner-center-headline {
    line-height: 260px; }
    @media (min-width: 720px) {
      .feature-banner.feature-banner-center-headline {
        line-height: 405px; } }
    @media (min-width: 1024px) {
      .feature-banner.feature-banner-center-headline {
        line-height: 605px; } }

/* breakpoints */
@media (max-width: 719px) {
  .store-cart {
    top: 70px; } }
@media (max-width: 480px) {
  .hide-mobile {
    display: none; } }
/* Shared variables and mixins for Consumer Store */
/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/* Shared variables and mixins for Consumer Store */
/* Consumer Store Cart Component */
.store-cart {
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  /* Top position set in main-header.scss to account for variable size header */
  color: #FFF;
  overflow: hidden;
  padding-bottom: 22px;
  position: fixed;
  top: 42px;
  width: 100%;
  z-index: 16; }
  .store-cart .content-wrapper {
    background: #49575D;
    /* Since the store view overrides the content-wrapper padding, we need to re-apply it here. TODO: Refactor so this isnt't needed. */
    padding-left: 10px !important;
    padding-right: 10px !important;
    position: relative; }
    @media (min-width: 720px) {
      .store-cart .content-wrapper {
        padding-left: 20px !important;
        padding-right: 20px !important; } }
  .store-cart .btn {
    font-size: 18px;
    font-size: 1.125rem;
    text-transform: none; }
  @media (min-width: 720px) {
    .store-cart {
      top: 53px; } }

.store-cart-container {
  background: #49575D;
  border-bottom: 2px solid white; }
  .store-cart-collapsed .store-cart-container {
    border-bottom: none; }

.store-cart-content {
  position: relative;
  padding: 10px 0; }

@media (min-width: 1280px) {
  .store-cart-content-mobile {
    display: none; } }
.store-cart-content-mobile .store-cart-mobile-total {
  font-size: 18px;
  font-size: 1.125rem;
  font-weight: normal;
  line-height: 3em; }
.store-cart-content-mobile .store-cart-mobile-total-label {
  color: #8DA2A7;
  margin-right: .25em;
  text-transform: uppercase; }

@media (max-width: 1279px) {
  .store-cart-content-desktop {
    display: none; } }

.store-cart-expand-toggle {
  background: transparent;
  border: none;
  color: inherit;
  padding: 0;
  -moz-border-radius: 0 0 90px 90px;
  -webkit-border-radius: 0;
  border-radius: 0 0 90px 90px;
  border: 2px solid white;
  border-top: none;
  background: #49575D;
  font-size: 20px;
  height: 22px;
  overflow: visible;
  position: absolute;
  right: 8%;
  bottom: -22px;
  width: 44px;
  outline: none; }
  .store-cart-expand-toggle > span {
    bottom: 0;
    display: block;
    height: 100%;
    width: 100%; }
  .store-cart-expand-toggle:focus {
    border-color: #a4abae; }

.store-cart-collapse {
  bottom: 4px;
  left: 0;
  position: absolute;
  width: 100%; }

.store-cart-expand {
  position: absolute;
  left: 0;
  bottom: 4px;
  width: 100%; }
  .store-cart-expand .store-cart-expand-count {
    bottom: 9px;
    display: block;
    font-size: 11px;
    font-weight: bold;
    left: 0;
    padding-left: 2px;
    position: absolute;
    text-align: center;
    width: 100%; }

.store-cart-description,
.store-cart-line-items,
.store-cart-totals {
  float: left; }

.store-content-checkout-btn {
  float: right; }

.store-cart-line-items,
.store-content-checkout-btn {
  margin-left: 2%; }

.store-cart-description {
  font-size: 18px;
  font-size: 1.125rem;
  background: url("images/icon-cart.png") no-repeat 0 0;
  min-height: 53px;
  padding: 15px 0 0 60px;
  width: 17%; }

.store-cart-line-items {
  width: 40%; }
  .store-cart-line-items ul {
    list-style: none;
    margin: 0;
    padding: 0; }
  .store-cart-line-items li {
    font-size: 16px;
    font-size: 1rem;
    background: #9AA2A5;
    line-height: 1;
    margin-bottom: 1px;
    padding: 12px;
    vertical-align: top; }
  .store-cart-line-items button {
    background: transparent;
    border: none;
    color: inherit;
    padding: 0;
    margin-right: 6px; }

.store-cart-line-items-price {
  float: right;
  text-align: right;
  width: 95px; }

.store-cart-totals {
  width: 23%; }

.store-cart-total-label {
  color: #7AB700;
  font-weight: normal;
  text-transform: uppercase;
  font-size: 14px;
  font-size: 0.875rem;
  display: inline-block;
  text-align: right;
  width: 45%; }

.store-cart-total-amount {
  font-size: 16px;
  font-size: 1rem; }

.store-cart-total-total .store-cart-total-label,
.store-cart-total-total .store-cart-total-amount {
  font-size: 23px;
  font-size: 1.4375rem; }

.store-content-checkout-btn {
  float: right; }

/*
.store-cart-collapsed {

	.store-cart-description {
		line-height: $store-cart-summary-icon-size;
		padding-top: 0;
	}
}
*/
/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/* SubscriptionProductType component */
.store-subscription-product-type input[type="radio"] {
  display: none; }
  .store-subscription-product-type input[type="radio"] + label {
    cursor: pointer;
    display: block;
    padding-left: 35px;
    position: relative; }
    .store-subscription-product-type input[type="radio"] + label .checkbox {
      font-family: "FontAwesome";
      font-weight: normal;
      font-style: normal;
      text-decoration: inherit;
      -webkit-font-smoothing: antialiased;
      color: #AAADAF;
      display: inline-block;
      font-size: 1.1667em;
      height: 20px;
      margin-left: 1px;
      position: absolute;
      top: 0;
      left: 0; }
      .store-subscription-product-type input[type="radio"] + label .checkbox:before {
        margin-left: 0;
        content: '\F096'; }
  .store-subscription-product-type input[type="radio"]:checked + label {
    color: #49575D;
    font-weight: bold; }
    .store-subscription-product-type input[type="radio"]:checked + label .checkbox:before {
      color: #7AB700;
      content: '\F046'; }

.lt-ie9 .store-subscription-product-type input[type="radio"] {
  display: inline; }
  .lt-ie9 .store-subscription-product-type input[type="radio"] + label {
    display: inline;
    padding-left: 0; }
    .lt-ie9 .store-subscription-product-type input[type="radio"] + label .checkbox {
      display: inline;
      position: relative; }
      .lt-ie9 .store-subscription-product-type input[type="radio"] + label .checkbox:before {
        content: ''; }
  .lt-ie9 .store-subscription-product-type input[type="radio"]:checked + label .checkbox:before {
    content: ''; }

.store-subscription-product-type ol {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 18px;
  font-size: 1.125rem;
  margin: 0 0 2em; }
  .store-subscription-product-type ol li {
    color: #AAADAF;
    margin-bottom: 1em; }

.store-subscription-product-length {
  display: inline-block;
  min-width: 70px; }

.store-subscription-product-price {
  font-size: 58px;
  font-size: 3.625rem; }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/* Cart Section */
.store-cart-summary-th {
  display: none; }
  @media (min-width: 720px) {
    .store-cart-summary-th {
      display: block; } }

.store-cart-summary-line-items {
  font-size: 16px;
  font-size: 1rem; }
  .store-cart-summary-line-items ul {
    list-style: none;
    margin: 0;
    padding: 0; }
  .store-cart-summary-line-items li {
    margin-bottom: 1em; }

.store-cart-summary-line-item {
  border-bottom: 1px solid #EBECED;
  position: relative; }
  @media (min-width: 720px) {
    .store-cart-summary-line-item {
      border-bottom: none;
      padding-top: 0; } }
  .store-cart-summary-line-item .store-cart-summary-line-item-col-label {
    display: block; }
    @media (min-width: 720px) {
      .store-cart-summary-line-item .store-cart-summary-line-item-col-label {
        display: none; } }
  .store-cart-summary-line-item .store-cart-summary-line-item-info .store-cart-summary-line-item-col-label {
    display: none; }

@media (min-width: 720px) {
  .store-cart-summary-line-item-group {
    float: left; } }

.store-cart-summary-line-item-info {
  margin-bottom: 1em; }
  @media (min-width: 720px) {
    .store-cart-summary-line-item-info {
      margin-bottom: 0;
      width: 60%; } }
  .store-cart-summary-line-item-info .store-cart-summary-line-item-row {
    background: #EBECED;
    color: #676767;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0 35px 0 3%; }
    @media (min-width: 720px) {
      .store-cart-summary-line-item-info .store-cart-summary-line-item-row {
        padding-right: 3%; } }

@media (min-width: 720px) {
  .store-cart-summary-line-item-pricing {
    width: 40%; }
    .store-cart-summary-line-item-pricing .store-cart-summary-line-item-row {
      background: #EBECED;
      color: #676767; } }

.store-cart-summary-line-item-col {
  float: left; }

.store-cart-summary-line-item-row {
  font-weight: bold;
  height: 2em;
  line-height: 2em; }

.store-cart-summary-line-item-description {
  color: #8C8C8C;
  padding: 0.25em 3%; }
  @media (min-width: 720px) {
    .store-cart-summary-line-item-description {
      padding-left: 3%;
      padding-right: 1.5%; } }

.store-cart-summary-line-item-col-label {
  font-size: 14px;
  font-size: 0.875rem;
  color: #7AB700;
  font-weight: normal;
  text-transform: uppercase; }

.store-cart-summary-line-item-unit-price {
  width: 43%; }
  @media (min-width: 720px) {
    .store-cart-summary-line-item-unit-price {
      width: 36%; } }

.store-cart-summary-line-item-subtotal {
  text-align: right;
  width: 43%; }
  @media (min-width: 720px) {
    .store-cart-summary-line-item-subtotal {
      text-align: left;
      width: 41%; } }

.store-cart-summary-line-item-qty {
  text-align: center;
  width: 14%; }
  @media (min-width: 720px) {
    .store-cart-summary-line-item-qty {
      width: 23%; } }
  .store-cart-summary-line-item-qty input {
    border: solid 1px #CCD4D5;
    padding: 1px 0.25em;
    text-align: left;
    width: 3.1em; }
    @media (min-width: 720px) {
      .store-cart-summary-line-item-qty input {
        border: none; } }

.store-cart-summary-line-item-remove {
  position: absolute;
  right: 0;
  top: 0; }
  .store-cart-summary-line-item-remove button {
    background: transparent;
    border: none;
    color: inherit;
    padding: 0;
    padding: .5em .5em .3em; }

/* Totals Section */
.store-cart-summary-totals {
  float: right;
  margin: 1em 0 0;
  width: 75%; }
  @media (min-width: 720px) {
    .store-cart-summary-totals {
      width: 40%; } }

@media (min-width: 720px) {
  .store-cart-summary-total {
    margin-bottom: .5em; } }

.store-cart-summary-total-label,
.store-cart-summary-total-amount {
  float: left; }

.store-cart-summary-total-label {
  color: #7AB700;
  font-weight: normal;
  text-transform: uppercase;
  font-size: 14px;
  font-size: 0.875rem;
  margin-right: 6%;
  text-align: right;
  width: 53%; }

.store-cart-summary-total-amount {
  font-size: 16px;
  font-size: 1rem;
  color: #676767;
  font-weight: normal;
  text-align: right;
  width: 41%; }
  @media (min-width: 720px) {
    .store-cart-summary-total-amount {
      text-align: left; } }

.store-cart-summary-total-total {
  margin-top: .5em; }
  .store-cart-summary-total-total .store-cart-summary-total-label,
  .store-cart-summary-total-total .store-cart-summary-total-amount {
    font-size: 22px;
    font-size: 1.375rem;
    font-weight: bold; }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
.store-credit-card-form {
  	/*.store-credit-card-form-type {
  		float: left;
  		margin-right: 2em;
  		width: 23px;
  
  		img {
  			display: block;
  			margin-top: 1.5em;
  		}
  	}*/
  	/*.store-credit-card-form-type-field {
  		ul {
  			@include list-reset;
  
  			margin-top: .5em;
  		}
  
  		li {
  			float: left;
  			margin-right: 2%;
  		}
  
  		label {
  			display: inline;
  		}
  
  		img {
  			vertical-align: middle;
  		}
  	}*/ }
  .store-credit-card-form .store-credit-card-form-number-field {
    float: left;
    margin-right: 1.5em;
    padding-right: 42px; }
    .store-credit-card-form .store-credit-card-form-number-field input[type="text"] {
      width: 9.6em; }
    .store-credit-card-form .store-credit-card-form-number-field.visa {
      background: url("images/store/visa.png") no-repeat right bottom; }
    .store-credit-card-form .store-credit-card-form-number-field.mastercard {
      background: url("images/store/mastercard.png") no-repeat right bottom; }
    .store-credit-card-form .store-credit-card-form-number-field.american_express {
      background: url("images/store/american_express.png") no-repeat right bottom; }
    .store-credit-card-form .store-credit-card-form-number-field.discover {
      background: url("images/store/discover.png") no-repeat right bottom; }
    .store-credit-card-form .store-credit-card-form-number-field.diners_club {
      background: url("images/store/diners_club.png") no-repeat right bottom; }
  .store-credit-card-form .store-credit-card-form-code-field {
    float: left;
    width: 3em; }
  .store-credit-card-form .store-credit-card-form-expiration-field-month {
    float: left;
    margin-right: 2%;
    width: 49%; }
  .store-credit-card-form .store-credit-card-form-expiration-field-year {
    float: left;
    width: 49%; }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
.store-address-form .store-address-form-zip-field input[type="text"] {
  width: 8em; }
@media (min-width: 400px) and (max-width: 620px) {
  .store-address-form .store-address-form-state-field {
    float: left;
    margin-right: 2%;
    width: 64%; }
  .store-address-form .store-address-form-zip-field {
    float: left;
    width: 34%; }
    .store-address-form .store-address-form-zip-field input {
      width: 100%; } }
@media (min-width: 1000px) {
  .store-address-form .store-address-form-state-field {
    float: left;
    margin-right: 2%;
    width: 64%; }
  .store-address-form .store-address-form-zip-field {
    float: left;
    width: 34%; }
    .store-address-form .store-address-form-zip-field input {
      width: 100%; } }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/* Consumer Store Checkout Progress Component */
.store-checkout-progress {
  font-size: 14px;
  font-size: 0.875rem;
  float: left; }
  .store-checkout-progress li {
    height: 2.3em;
    line-height: 2.3em; }
    .store-checkout-progress li:before, .store-checkout-progress li:after {
      border-top: 1.15em solid transparent;
      border-bottom: 1.15em solid transparent; }
  @media (min-width: 720px) {
    .store-checkout-progress {
      font-size: 17px;
      font-size: 1.0625rem;
      display: block; }
      .store-checkout-progress li {
        height: 3em;
        line-height: 3em; }
        .store-checkout-progress li:before, .store-checkout-progress li:after {
          border-top: 1.5em solid transparent;
          border-bottom: 1.5em solid transparent; } }
  .store-checkout-progress ol {
    list-style: none;
    margin: 0;
    padding: 0;
    margin-left: 30px; }
    @media (max-width: 719px) {
      .store-checkout-progress ol:first-child {
        margin-left: 0; } }
  .store-checkout-progress li {
    background: #BDC7CA;
    color: #83989D;
    display: block;
    float: left;
    margin-right: 13px;
    padding: 1px 5px 1px 18px;
    position: relative; }
    @media (min-width: 720px) {
      .store-checkout-progress li {
        padding: 0 17px 0 30px; } }
    .store-checkout-progress li:before, .store-checkout-progress li:after {
      border-left-width: 13px;
      border-left-style: solid;
      content: '';
      position: absolute;
      top: 0; }
    .store-checkout-progress li:before {
      border-left-color: #FFF;
      left: 0; }
      @media (min-width: 720px) {
        .store-checkout-progress li:before {
          border-left-color: #EBECED; } }
    .store-checkout-progress li:after {
      border-left-color: #BDC7CA;
      right: -13px; }
    .store-checkout-progress li:first-child {
      -moz-border-radius: 6px 0 0 6px;
      -webkit-border-radius: 6px;
      border-radius: 6px 0 0 6px; }
      .store-checkout-progress li:first-child:before {
        border: none; }
  .store-checkout-progress .selected {
    background-color: #7AB700;
    color: #FFF; }
    .store-checkout-progress .selected:after {
      border-left-color: #7AB700; }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/* Shared variables and mixins for Consumer Store */
.store-order-summary {
  margin-bottom: 2em; }

.store-order-summary-info,
.store-order-summary-payment-address,
.store-order-summary-shipping-address {
  color: #83989D; }
  @media (min-width: 720px) {
    .store-order-summary-info,
    .store-order-summary-payment-address,
    .store-order-summary-shipping-address {
      font-size: 13px;
      font-size: 0.8125rem;
      float: left;
      margin-left: 35px;
      width: 21%; } }
  .store-order-summary-info:first-child,
  .store-order-summary-payment-address:first-child,
  .store-order-summary-shipping-address:first-child {
    margin-left: 0; }
  .store-order-summary-info p,
  .store-order-summary-payment-address p,
  .store-order-summary-shipping-address p {
    margin: 0; }
  .store-order-summary-info h3,
  .store-order-summary-payment-address h3,
  .store-order-summary-shipping-address h3 {
    font-size: 16px;
    font-size: 1rem;
    font-weight: 300;
    margin: 0 10px 0 0; }
    @media (min-width: 720px) {
      .store-order-summary-info h3,
      .store-order-summary-payment-address h3,
      .store-order-summary-shipping-address h3 {
        font-size: 13px;
        font-size: 0.8125rem; } }

@media (max-width: 719px) {
  .store-order-summary-payment-address,
  .store-order-summary-shipping-address {
    margin-top: 2em; } }
.store-order-summary-payment-address p,
.store-order-summary-shipping-address p {
  float: right;
  width: 185px; }
  @media (min-width: 720px) {
    .store-order-summary-payment-address p,
    .store-order-summary-shipping-address p {
      float: none;
      width: auto; } }
@media (max-width: 719px) {
  .store-order-summary-payment-address h3,
  .store-order-summary-shipping-address h3 {
    float: left; } }

.store-order-summary-label {
  text-transform: uppercase; }

.address-line {
  display: block; }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/* Shared variables and mixins for Consumer Store */
/* Consumer Currency Component */
.store-currency-component span {
  font-size: .55em;
  line-height: 1.5em;
  vertical-align: text-top; }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/* Shared variables and mixins for Consumer Store */
/* Consumer Store Notice Component */
.store-notice {
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  background: #333D47;
  color: #FFF;
  text-align: center;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 30; }
  .store-notice button {
    background: transparent;
    border: none;
    color: inherit;
    padding: 0;
    float: right;
    margin: 1.5em 2em 0; }
  .store-notice.error {
    background: #D60016; }
    .store-notice.error a {
      color: #fff; }

.store-notice-content {
  padding: 1.5em 4em 1.5em 2em; }

.page-content {
  padding-top: 50px; }
  @media (min-width: 720px) {
    .page-content {
      padding-top: 53px; } }

.store-view .btn {
  padding: 15px;
  font-weight: 200; }

.store-loading {
  background: #FFF url("images/loading.gif") no-repeat center center;
  background-color: rgba(255, 255, 255, 0.6);
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 100; }

.store-logout {
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  background-color: rgba(0, 0, 0, 0.6);
  bottom: 0;
  padding: 1em;
  position: fixed;
  text-align: right;
  width: 100%;
  z-index: 1000; }

.store-mobile-crashplan-logo {
  position: absolute;
  top: 56px;
  left: 20px; }
  .store-mobile-crashplan-logo svg, .store-mobile-crashplan-logo img {
    width: 165px;
    height: 23px; }
  @media (min-width: 720px) {
    .store-mobile-crashplan-logo {
      display: none; } }

/* View styles are included after so they can override global store styles */
/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/* Shared variables and mixins for Consumer Store */
/* Consumer Store Store View */
/* SASS Variables and Mixins */
/* Overrides */
footer {
  margin-top: 0; }

@media (max-width: 939px) {
  .store-store-view .content-wrapper {
    /* TODO: Refactor so this isnt't needed. */
    padding-left: 0;
    padding-right: 0; } }
/* Utilities */
.hidden {
  display: none; }

@media (max-width: 939px) {
  .desktop-only {
    display: none !important; } }

@media (min-width: 940px) {
  .mobile-only {
    display: none !important; } }

/* Comsumer store styles */
.cta-banner {
  background-color: #333D47;
  padding: 15px 50px;
  color: #FFF;
  font-weight: 200;
  font-size: 18px;
  font-size: 1.125rem;
  margin: -20px 0 55px; }
  .cta-banner .cta-message {
    padding: 7px 0px 7px;
    display: block;
    float: left;
    width: 70%;
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 0.14em; }
  .cta-banner .disclaimer {
    font-size: 10px;
    font-size: .625rem;
    display: block;
    text-transform: none;
    margin-top: 5px; }
  .cta-banner .btn {
    text-transform: uppercase;
    letter-spacing: 0.14em;
    padding: 10px 30px;
    background-color: #7AB700;
    font-size: 16px;
    font-size: 1rem;
    float: right; }
  @media (max-width: 940px) {
    .cta-banner {
      text-align: center; }
      .cta-banner .cta-message {
        float: none;
        width: 100%; }
      .cta-banner .btn {
        margin-top: 10px;
        float: none; } }
  @media (min-width: 940px) {
    .cta-banner .btn {
      margin: 20px 0px; } }
  @media (min-width: 1295px) {
    .cta-banner .btn {
      margin: 10px 0px; } }

.store-plans-toggle {
  color: #FFF !important;
  /* Override default link colors */
  cursor: pointer;
  left: 0;
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  width: 100%; }
  .store-plans-toggle span {
    display: block;
    height: 100%;
    width: 30px; }
  .store-plans-toggle:before {
    font-family: "FontAwesome";
    font-weight: normal;
    font-style: normal;
    text-decoration: inherit;
    -webkit-font-smoothing: antialiased;
    font-size: 20px;
    font-size: 1.25rem;
    content: "\F078";
    left: 5px;
    margin-top: -11px;
    position: absolute;
    top: 50%; }
  .store-plans-toggle.store-drawer-toggle-expanded:before {
    content: "\F077"; }
  .store-plans-toggle:hover {
    text-decoration: none; }

.store-view-drawer-content {
  display: none;
  position: relative; }
  @media (min-width: 940px) {
    .store-view-drawer-content {
      display: block !important; } }

.store-store-view {
  color: #49575D; }
  .store-store-view h1 {
    font-size: 54px;
    font-size: 3.375rem;
    font-weight: 100; }
    @media (max-width: 620px) {
      .store-store-view h1 {
        font-size: 27px;
        font-size: 1.7rem; } }
    @media (min-width: 621px) and (max-width: 1024px) {
      .store-store-view h1 {
        font-size: 40px;
        font-size: 2.5rem; } }
  .store-store-view .store-secondary-btn {
    font-size: 15px;
    font-size: .9375rem; }

.store-store-view-headline {
  margin: 50px 0 55px;
  padding-left: 20px;
  padding-right: 20px;
  text-align: center; }

.store-plans h2 {
  font-size: 19px;
  font-size: 1.2rem;
  color: #FFF;
  font-weight: 300;
  text-align: center;
  text-transform: uppercase;
  padding: 10px; }

@media (min-width: 940px) {
  .store-plans-personal {
    margin-right: 2.04918%; } }

@media (min-width: 940px) {
  .store-plans-group-single,
  .store-plans-group-online {
    float: left; } }

@media (min-width: 940px) {
  .store-plans-group-single {
    width: 26.22951%; } }

@media (min-width: 940px) {
  .store-plans-group-online {
    width: 43.44262%; } }
@media (min-width: 940px) and (max-width: 1279px) {
  .store-plans-group-online {
    margin-right: 0;
    width: 58.60656%; } }
.store-plans-group-online h2 {
  background: #569800; }
@media (min-width: 940px) and (max-width: 1279px) {
  .store-plans-group-online .store-plans-features {
    padding-left: 28%; } }

@media (min-width: 940px) and (max-width: 1279px) {
  .store-plans-group-business {
    margin-top: 70px;
    width: 100%; }
    .store-plans-group-business .store-plans-heading,
    .store-plans-group-business .store-plans-detail,
    .store-plans-group-business .store-plans-features {
      float: left;
      height: 100%; }
    .store-plans-group-business .store-plans-heading,
    .store-plans-group-business .store-plans-detail {
      width: 27%; }
    .store-plans-group-business .store-plans-detail {
      border-bottom: 1px solid #C2CBD2;
      border-left: 0;
      border-right: 0; }
    .store-plans-group-business .store-plans-features {
      border-top: 0;
      width: 46%; } }
.store-plans-group-business h2,
.store-plans-group-business .store-plans-toggle span {
  background: #0087D1; }
.store-plans-group-business .store-plans-heading {
  background: #12B5EA; }
.store-plans-group-business .store-plan-min-price-price {
  padding-top: 13px; }

.store-plans-group-business *::-moz-selection {
  background: rgba(26, 182, 232, 0.75);
  color: #FFF;
  text-shadow: none; }

.store-plans-group-business *::selection {
  background: rgba(26, 182, 232, 0.75);
  color: #FFF;
  text-shadow: none; }

.store-plans-group-business .store-plans-heading *::-moz-selection {
  background: rgba(255, 255, 255, 0.75);
  color: #1ab6e8; }

.store-plans-group-business .store-plans-heading *::selection {
  background: rgba(255, 255, 255, 0.75);
  color: #1ab6e8; }

@media (min-width: 940px) and (max-width: 1279px) {
  .store-plans-business-row-container {
    height: 485px; }
    .store-plans-business-row-container .business-drawer-content {
      height: 100%; } }

@media (min-width: 940px) {
  .store-plans-online {
    float: left;
    width: 50%; } }
.store-plans-online .store-plans-toggle span {
  background: #569800; }

@media (min-width: 940px) and (max-width: 1279px) {
  .store-plans-group-free {
    width: 39.34426%; } }
.store-plans-group-free h2,
.store-plans-group-free .store-plans-toggle span {
  background: #7AB700; }
.store-plans-group-free .store-plans-heading {
  background: #A5CE52; }
.store-plans-group-free .store-plan-num-computers {
  display: none; }
  @media (min-width: 940px) {
    .store-plans-group-free .store-plan-num-computers {
      display: block; } }

.store-plans-online-individual .store-plans-heading {
  background: #7AB700; }

.store-plans-online-family .store-plans-heading {
  background: #7AB700; }
  @media (min-width: 940px) {
    .store-plans-online-family .store-plans-heading {
      background: #63A002; } }
.store-plans-online-family .store-plans-detail {
  border-left: none; }

.store-plans-heading {
  color: #FFF;
  height: 88px;
  margin-bottom: 1px;
  padding: 1em 0;
  position: relative;
  text-align: center; }
  @media (min-width: 940px) {
    .store-plans-heading {
      height: 250px;
      margin-bottom: 0;
      padding: 0; } }
  .store-plans-heading h4 {
    font-size: 40px;
    font-size: 2.5rem;
    font-weight: 300;
    line-height: 1; }
    @media (min-width: 940px) {
      .store-plans-heading h4 {
        font-size: 48px;
        font-size: 3rem;
        padding: 20px 0 16px; } }
  @media (min-width: 940px) {
    .store-plans-heading .store-plan-num-computers {
      font-size: 19px;
      font-size: 1.2rem;
      bottom: 16px;
      bottom: 1rem;
      left: 0;
      position: absolute;
      width: 100%; } }

@media (min-width: 620px) and (max-width: 939px) {
  .store-plans-detail,
  .store-plans-features {
    float: left;
    width: 50%; } }
@media (min-width: 940px) {
  .store-plans-detail,
  .store-plans-features {
    border-left: 1px solid #C2CBD2;
    border-right: 1px solid #C2CBD2; } }

.store-plans-detail {
  text-align: center;
  padding: 2em 20px 0 23px; }
  @media (min-width: 940px) {
    .store-plans-detail {
      height: 290px;
      padding-top: 2em;
      position: relative; }
      .store-discount-present .store-plans-detail {
        height: 325px;
        padding-top: 1em; } }
  .store-plans-detail ol {
    margin: 0 auto;
    text-align: left;
    width: 235px; }
  .store-plans-detail .store-plans-detail-btn {
    bottom: 96px;
    bottom: 6rem; }
    @media (min-width: 620px) {
      .store-plans-detail .store-plans-detail-btn {
        left: 0;
        position: absolute;
        width: 50%; } }
    @media (min-width: 940px) {
      .store-plans-detail .store-plans-detail-btn {
        bottom: 32px;
        bottom: 2rem;
        width: 100%; } }

.store-plans-features {
  padding: 2em 15px 2em 30px;
  position: relative; }
  @media (min-width: 620px) and (max-width: 939px) {
    .store-plans-features:before {
      background: #C2CBD2;
      content: '';
      display: block;
      height: 80%;
      left: 0;
      position: absolute;
      top: 10%;
      width: 1px; } }
  @media (min-width: 940px) {
    .store-plans-features {
      border-bottom: 1px solid #C2CBD2;
      border-top: 1px solid #C2CBD2;
      padding: 1em 5px 1em 10px; } }
  @media (min-width: 940px) and (max-width: 1279px) {
    .store-plans-features {
      height: 455px; } }
  @media (min-width: 1280px) {
    .store-plans-features {
      height: 525px; } }
  .store-plans-features ul {
    list-style: none;
    margin: 0;
    padding: 0; }
  .store-plans-features li {
    margin-bottom: .9em;
    padding-left: 25px;
    position: relative; }
    .store-plans-features li:before {
      font-family: "FontAwesome";
      font-weight: normal;
      font-style: normal;
      text-decoration: inherit;
      -webkit-font-smoothing: antialiased;
      content: "\f00c";
      color: #C2CBD2;
      font-size: 1.2em;
      left: 0;
      position: absolute;
      top: 0; }

.store-plans-group-single .store-plans-detail p {
  font-size: 21px;
  font-size: 1.4rem;
  color: #AAADAF;
  margin: 1em 0;
  text-align: center; }
  @media (min-width: 940px) {
    .store-plans-group-single .store-plans-detail p {
      margin-top: 40px; }
      .store-discount-present .store-plans-group-single .store-plans-detail p {
        margin-top: 90px; } }
.store-plans-group-single .store-plans-mobile-headline {
  font-size: 23px;
  font-size: 1.4rem;
  color: #7AB700; }

.store-plan-min-price {
  padding: 0 2em; }
  .store-plan-min-price .store-plan-min-price-intro {
    font-size: 23px;
    font-size: 1.4rem;
    display: block;
    font-weight: bold; }
  .store-plan-min-price .store-plan-min-price-price {
    font-size: 33px;
    font-size: 2.1rem;
    display: block;
    line-height: 1.5;
    font-weight: bold; }
  .store-plan-min-price .store-plan-min-price-detail {
    font-size: 16px;
    font-size: 1rem;
    display: block;
    font-weight: normal; }

.store-store-view-compare {
  margin: 25px 0 60px;
  text-align: center; }

.store-store-view-subscriptions-postscript {
  font-size: .9em;
  margin: 1em 0;
  text-align: center; }

/* Additional Options/FAQs tab */
.store-store-view-seed-price {
  margin-bottom: 1em;
  /* Actual Price Element */ }
  .store-store-view-seed-price .store-currency-component {
    font-size: 48px;
    font-size: 3rem;
    color: #000; }
  .store-store-view-seed-price .btn {
    font-size: 17px;
    font-size: 1.1rem;
    left: 10px;
    position: relative;
    top: -11px; }
  .store-store-view-seed-price p {
    font-size: 12px;
    font-size: .75rem;
    font-weight: normal; }

.store-store-view-tabs {
  padding-bottom: 3em; }
  .store-store-view-tabs h3 {
    font-size: 40px;
    font-size: 2.5rem;
    color: #7AB700;
    font-weight: 300;
    margin: 0 0 .5em; }
  .store-store-view-tabs p {
    margin-bottom: 1em; }

.store-store-view-tab-headers {
  margin-bottom: 65px; }

.store-store-view-tab-header {
  font-size: 33px;
  font-size: 2.1rem;
  border-bottom: 7px solid #CED5DC;
  color: #808488;
  cursor: pointer;
  float: left;
  font-weight: 300;
  overflow: visible;
  padding-bottom: 15px;
  position: relative;
  text-align: center;
  width: 50%; }
  .store-store-view-tab-header.selected {
    border-bottom-color: #667278;
    color: #667278;
    cursor: default;
    font-weight: normal; }
    .store-store-view-tab-header.selected:after {
      border-left: 11px solid transparent;
      border-right: 11px solid transparent;
      border-top: 11px solid #667278;
      bottom: -18px;
      content: '';
      left: 50%;
      position: absolute; }

.store-store-view-tab-additional-col {
  padding: 0 30px; }
  .store-store-view-tab-additional-col .store-store-view-tab-wrapper {
    border-top: 1px solid #D4D4D4;
    padding: 30px 0; }
    @media (min-width: 940px) {
      .store-store-view-tab-additional-col .store-store-view-tab-wrapper {
        border-top: none;
        padding: 0; } }
  .store-store-view-tab-additional-col:first-child .store-store-view-tab-wrapper {
    border-top: none; }
  @media (min-width: 940px) {
    .store-store-view-tab-additional-col {
      float: left;
      padding: 0 3%; } }
  @media (min-width: 1280px) {
    .store-store-view-tab-additional-col {
      border-left: 1px solid #D4D4D4;
      width: 50%; }
      .store-store-view-tab-additional-col:first-child {
        border-left: 0; } }

.store-store-view-restore h3 {
  color: #C50000; }

.store-store-view-gift h3 {
  font-size: 35px;
  font-size: 2.2rem; }
@media (min-width: 940px) and (max-width: 1279px) {
  .store-store-view-gift {
    border-top: 1px solid #D4D4D4;
    height: auto;
    padding-bottom: 30px;
    padding-top: 55px;
    margin-top: 30px;
    width: 100%; }
    .store-store-view-gift .store-gift-intro,
    .store-store-view-gift .store-gift-subscriptions {
      float: left;
      width: 50%; }
    .store-store-view-gift .store-gift-intro {
      padding-right: 3%; }
    .store-store-view-gift .store-gift-subscriptions {
      padding-left: 3%; } }

.store-restore-btn,
.store-gift-subscriptions-btn {
  padding-top: 30px; }
  .store-restore-btn p,
  .store-gift-subscriptions-btn p {
    margin-top: 1em; }

@media (min-width: 940px) and (max-width: 1279px) {
  .store-restore-intro,
  .store-restore-btn,
  .store-gift-subscriptions-intro,
  .store-gift-subscriptions-btn {
    float: left;
    width: 50%; }

  .store-restore-intro,
  .store-gift-subscriptions-intro {
    padding-right: 3%; }

  .store-restore-btn,
  .store-gift-subscriptions-btn {
    text-align: center; }
    .store-restore-btn .btn,
    .store-gift-subscriptions-btn .btn {
      width: 220px; } }
.store-store-view-additional-mobile h2,
.store-store-view-faq-mobile h2 {
  font-size: 22px;
  font-size: 1.375rem;
  background: #CED5DC;
  color: #808488;
  height: 69px;
  margin-bottom: 1px;
  padding: 1em 0;
  position: relative;
  text-align: center; }
.store-store-view-additional-mobile .store-plans-toggle span,
.store-store-view-faq-mobile .store-plans-toggle span {
  background: #808488; }

.region-aunz .store-store-view-tab-additional-col {
  border-left: 0;
  width: 100%; }
@media (min-width: 940px) {
  .region-aunz .store-gift-subscriptions-intro,
  .region-aunz .store-gift-subscriptions-btn {
    float: left;
    width: 50%; }
  .region-aunz .store-gift-subscriptions-btn {
    text-align: center; } }

/* FAQs */
.faq-q {
  font-size: 18px;
  font-size: 1.125rem;
  color: #667278;
  font-weight: bold; }

.faq-a {
  font-size: 16px;
  font-size: 1rem;
  color: #808488;
  margin: 0 0 1em;
  padding: 1em 8px; }

.faq {
  border-bottom: 1px solid #D4D4D4;
  margin-bottom: 1.5em; }

.store-store-view-faq ul {
  list-style: none;
  width: 48%;
  float: left; }

.store-store-view-faq-mobile .store-store-view-faq {
  padding: 25px; }
@media (max-width: 620px) {
  .store-store-view-faq-mobile ul {
    float: none;
    width: 100%;
    padding-left: 0; } }
.store-store-view-faq-mobile .faq {
  padding-left: 2%;
  padding-right: 2%;
  /*Grid Breakpoint */ }
  @media (max-width: 620px) {
    .store-store-view-faq-mobile .faq {
      border-bottom: 1px solid #D4D4D4;
      margin-bottom: 1em; } }
.store-store-view-faq-mobile .faq-a {
  font-size: 16px;
  font-size: 1rem;
  padding: 0; }

.discount-promo {
  font-size: 16px;
  font-size: 1rem;
  color: #FE5000;
  margin-top: 2em;
  display: inline-block; }
  .discount-promo:hover {
    color: #333D47; }
  @media (max-width: 700px) {
    .discount-promo {
      margin-top: 40px; } }
  @media (max-width: 445px) {
    .mobile .discount-promo {
      margin-top: 100px; } }

.store-subscription-product-original-price {
  font-size: 18px;
  font-size: 1.125rem;
  color: #C50000;
  display: block;
  text-decoration: line-through; }
  .store-plans-plan-list .store-subscription-product-original-price {
    margin-left: 75px; }
  .store-subscription-product-price .store-subscription-product-original-price, .store-gift-subscription-price .store-subscription-product-original-price {
    font-size: 22px;
    font-size: 1.375rem;
    margin: 0 auto; }

/**
 * Colors
 */
/* CrashPlan business colors */
/**
 * Fonts
 */
/* Default browser font size, used for calculation. If font-size is set on HTML element, set accordingly */
/**
 * Breakpoints
 */
/**
 * Main Headers
 **/
/**
 * Layers
 **/
/**
 * Fluid Type
 */
/*
 * Mixin to specify fluid font-sizes and related properties
 * $base-size Font size at sizes lower than first breakpoint
 * $size-at-bp-1 Font size between first and second breakpoints
 * $size-at-bp-2 Font size between second and third breakpoints
 * $size-at-bp-3 Font size at third btrakpoint and larger
 * $line-height Line height, defaults to 1.4
 */
/* Largest text size. Used excusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/**
 * Site Style Mixins
 */
/* Used for elements using font-awesome. */
/* */
/* */
/**
 * Utility Mixins
 **

/* Disable list style and default margin/padding */
/* Reset link color inheritance */
/* Display ul or ol horizontally */
/* Reset browser defaults for button element */
/* Set property with rgba color and fallback */
/* Set border (or border-top, border-left, etc...) with rgba color and fallback */
/* Use rem units with px fallback for compatability. Takes either (unitless) rem or px */
/* Set background property with svg
 * $image is path to image without extension, same path is used for png fallback
 * $properties is the rest of the background properties (e.g no-repeat 0 0)
 * $color is optional and is the background color that should be used, default is transparent.
 */
/* Set background image property with svg
 * $image is path to image without extension, same path is used for png fallback
 */
/* Used for elements using font-awesome with pseudo elements. */
/* Fix rendering bugs on position:fixed elements */
/* Clear &after element */
/* CrashPlan consumer colors */
/* CrashPlan specific breakpoints */
/* Text shadow styles */
/* Largest text size. Used exclusively for main headlines */
/* Size for main body text */
/* Smallest text size. Used for column body text */
/* Exception: tiny text */
/* code42 Button Mixins */
/* Shared variables and mixins for Consumer Store */
/* Consumer Store Checkout Process Views */
@media (min-width: 720px) {
  .checkout-page .page-wrapper,
  .checkout-page .page-wrapper .main-content {
    background: #EBECED; }
  .checkout-page .main-header {
    left: 0;
    /* Needed to override main nav shifting */
    position: absolute; }
  .checkout-page .main-header-bg {
    background: #FFF !important; } }
.checkout-page .main-header-bg {
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
  box-shadow: none; }
.checkout-page .header-cart-widget {
  display: none; }

.store-checkout-header {
  margin: 25px auto 40px;
  max-width: 980px; }
  .store-checkout-header h1 {
    font-size: 46px;
    font-size: 2.875rem;
    display: none;
    float: left;
    line-height: 1; }
  @media (min-width: 720px) {
    .store-checkout-header {
      margin-top: 60px; }
      .store-checkout-header h1 {
        display: block; } }
  .store-checkout-header .au-currency-notice {
    clear: left;
    display: block;
    padding-top: 2em;
    text-align: center; }

.store-checkout-mobile-headline {
  font-size: 36px;
  font-size: 2.25rem; }
  @media (min-width: 720px) {
    .store-checkout-mobile-headline {
      display: none; } }

.store-checkout-content {
  background: #FFF;
  margin: 0 auto 120px;
  max-width: 980px; }
  .store-checkout-content .blank-cart {
    text-align: center; }
  .store-checkout-content .error {
    padding-bottom: 20px;
    text-align: center;
    font-weight: bold;
    color: #D60016; }
  @media (min-width: 720px) {
    .store-checkout-content {
      padding: 25px 30px; } }

.store-purchase-agreement {
  margin-top: 2em;
  text-align: right; }
  .store-purchase-agreement label {
    cursor: pointer; }
  .store-purchase-agreement p {
    margin-top: .5em; }

.store-checkout-actions {
  font-size: 17px;
  font-size: 1.0625rem;
  margin-top: 2em; }
  .store-checkout-actions .btn {
    display: block;
    margin-bottom: 5px;
    width: 100%;
    font-weight: normal; }
    @media (min-width: 450px) {
      .store-checkout-actions .btn {
        display: inline-block;
        float: right;
        width: auto; } }
  .store-checkout-actions .store-checkout-action-back {
    float: left; }
  .store-checkout-actions .store-checkout-action-back-to-store {
    margin-left: 0; }
    @media (min-width: 720px) {
      .store-checkout-actions .store-checkout-action-back-to-store {
        float: left; } }

.store-payment-view {
  color: #676767; }
  .store-payment-view .store-checkout-content h2 {
    font-size: 22px;
    font-size: 1.375rem;
    color: #7AB700;
    margin: 0 0 1em; }
    @media (min-width: 720px) {
      .store-payment-view .store-checkout-content h2 {
        color: #676767; } }
  .store-payment-view form {
    position: relative; }
  .store-payment-view .row-fluid {
    overflow: visible; }

.store-confirmation-view {
  color: #676767; }
  .store-confirmation-view .store-checkout-content h2 {
    font-size: 22px;
    font-size: 1.375rem;
    display: none;
    margin: 0 0 1em; }
    @media (min-width: 720px) {
      .store-confirmation-view .store-checkout-content h2 {
        display: block; } }

.store-checkout-shipping-form {
  margin-top: 2em; }

/* Form Styles */
.form-field {
  margin-bottom: 1em; }
  .form-field label {
    display: block;
    font-weight: bold;
    margin-bottom: .25em; }
    .form-field label[for] {
      cursor: pointer; }
    .form-field label.inline {
      display: inline;
      margin-left: 5px;
      font-weight: 300; }
  .form-field select {
    width: 100%; }
  .form-field input[type="text"],
  .form-field input[type="email"],
  .form-field textarea {
    -moz-border-radius: 6px;
    -webkit-border-radius: 6px;
    border-radius: 6px;
    border: 1px solid #CCD4D5;
    padding: 2px .5em;
    width: 100%; }
  .form-field textarea {
    resize: vertical; }

.form-field-help {
  display: block;
  margin-top: .5em;
  font-size: .75em; }

.store-payment-form-phone-field input[type="text"] {
  width: 50%; }

/* Receipt View */
.store-receipt-view .store-receipt-print-btn {
  float: right; }
  @media (max-width: 719px) {
    .store-receipt-view .store-receipt-print-btn {
      display: none; } }

.store-receipt-recipient {
  font-size: 16px;
  font-size: 1rem;
  color: #83989D;
  font-weight: bold;
  margin-bottom: 2em; }
  @media (min-width: 720px) {
    .store-receipt-recipient {
      font-size: 13px;
      font-size: 0.8125rem;
      text-align: center; } }

.store-receipt-heading {
  color: #83989D;
  margin-bottom: 2em; }
  .store-receipt-heading h2 {
    font-size: 42px;
    font-size: 2.625rem;
    display: none;
    line-height: 1;
    text-transform: uppercase; }
  @media (min-width: 720px) {
    .store-receipt-heading {
      float: right;
      width: 175px; }
      .store-receipt-heading h2 {
        display: block; }
      .store-receipt-heading p {
        font-size: 12px;
        font-size: 0.75rem; } }

.store-receipt-new,
.store-receipt-existing {
  margin-top: 2em; }
  @media (min-width: 720px) {
    .store-receipt-new,
    .store-receipt-existing {
      float: left;
      width: 50%; } }
  .store-receipt-new h3,
  .store-receipt-existing h3 {
    font-size: 32px;
    font-size: 2rem;
    color: #667278;
    font-weight: 300;
    margin: 0 0 .5em; }
  .store-receipt-new ol,
  .store-receipt-existing ol {
    list-style: none;
    margin: 0;
    padding: 0; }
    .store-receipt-new ol li,
    .store-receipt-existing ol li {
      margin-bottom: 1em;
      position: relative; }
  .store-receipt-new .li-ordinal,
  .store-receipt-existing .li-ordinal {
    color: #7AB700;
    left: 0;
    position: absolute;
    top: 0; }
  .store-receipt-new .li-content,
  .store-receipt-existing .li-content {
    display: inline-block;
    padding-left: 25px; }

@media (min-width: 720px) {
  .store-receipt-new {
    border-right: 1px solid #BDC7CA;
    padding: 0 6% 0 2%; }
    .store-receipt-new h3 {
      text-align: center; } }
.store-receipt-new .store-receipt-download {
  margin: 2em 0;
  text-align: center; }

@media (min-width: 720px) {
  .store-receipt-existing {
    padding: 0 2% 0 6%; } }

.store-receipt-licenses ul {
  list-style: none;
  margin: 0;
  padding: 0; }

.store-receipt-license {
  border: 1px solid #D6D6D6;
  text-align: center; }

.store-receipt-license-product {
  background: #EBECED;
  color: #676767;
  display: block;
  padding: 1em; }

.store-receipt-license-key {
  color: #454545;
  padding: 1em; }

.store-receipt-licence-notice {
  margin-bottom: 1em; }
  .store-receipt-licence-notice span {
    color: #E31C24; }

.gift-memo-summary {
  margin-bottom: 1em;
  padding-left: 1.250em;
  word-wrap: break-word; }

form input {
  outline: none;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -moz-transition: all 0.25s ease-in-out;
  -o-transition: all 0.25s ease-in-out;
  -webkit-transition: all 0.25s ease-in-out;
  transition: all 0.25s ease-in-out; }
  form input:focus {
    -moz-box-shadow: 0 0 5px rgba(122, 183, 34, 0.5);
    -webkit-box-shadow: 0 0 5px rgba(122, 183, 34, 0.5);
    box-shadow: 0 0 5px rgba(122, 183, 34, 0.5);
    border: 1px solid rgba(122, 183, 34, 0.3); }
  form input.ng-invalid.ng-dirty {
    -moz-box-shadow: 0 0 5px rgba(225, 0, 27, 0.5);
    -webkit-box-shadow: 0 0 5px rgba(225, 0, 27, 0.5);
    box-shadow: 0 0 5px rgba(225, 0, 27, 0.5);
    border: 1px solid rgba(225, 0, 27, 0.8); }

.store-purchase-autorenew-disclosure {
  font-size: 1.15em;
  padding: 1em 0; }
  @media (min-width: 720px) {
    .store-purchase-autorenew-disclosure {
      padding-left: 50%; } }

/* TODO: still need this since we moved the print styles to a separate stylesheet? */
@media print {
  .main-nav, .visuallyhidden, .main-header-content, .legacy-footer,
  .store-checkout-header, .main-header-buttons, .main-header-logo:after, .main-header-logo-mobile {
    display: none; }

  #mainHeader, .main-header-content {
    display: inline-block; }

  .main-header-logo img {
    margin-left: 2em; }

  #mainHeader {
    margin-top: 2em; }

  body {
    font-family: "proxima-nova", sans-serif;
    line-height: 1em;
    width: 900px;
    margin: 0 auto; }

  .store-receipt-heading {
    float: right;
    width: 300px; }

  .store-order-summary-info {
    width: 300px;
    padding-top: 11px;
    margin-bottom: 1em; }

  .store-receipt-recipient {
    text-align: center; }

  .store-order-summary-info p {
    margin: 5px; }

  .store-order-summary-payment-address, .store-order-summary-shipping-address {
    float: left;
    width: 300px; }

  .store-cart-summary {
    padding-top: 1em;
    clear: both; }

  .store-cart-summary-line-item-col {
    width: 16%;
    float: left;
    text-align: right; }

  .store-cart-summary-line-item-col-label, .store-cart-summary-line-item-row {
    padding-right: .5em; }

  .store-cart-summary-line-item-qty {
    width: 7%; }

  .store-cart-summary-line-item-group.store-cart-summary-line-item-info {
    width: 60%;
    float: left; }

  .store-cart-summary-line-item-col-label {
    font-weight: bold;
    padding-bottom: 3px;
    border-bottom: 1px solid #eee; }

  .store-cart-summary-line-item-col-label, .store-cart-summary-line-item-row, .store-cart-summary-line-item-description {
    padding-left: .5em; }

  .store-cart-summary-totals {
    clear: both;
    margin-left: 540px;
    text-align: right;
    padding-right: .5em;
    padding-top: 1em; }

  .store-cart-summary-totals div div {
    width: 50px; }

  .store-cart-summary-total {
    line-height: 1.6em; }

  .store-cart-summary-line-item-row {
    line-height: 1.6em;
    background-color: #eee; }

  .store-cart-summary-line-item-description, .store-cart-summary-line-item-col-label {
    line-height: 1.6em; }

  .store-cart-summary-line-item-col-label {
    padding-top: .3em;
    background-color: gray;
    color: white;
    letter-spacing: 1px; }

  .store-cart-summary-line-item-group:first-child .store-cart-summary-line-item-col-label {
    border-top-left-radius: 4px; }

  .store-cart-summary-line-item-col:last-child .store-cart-summary-line-item-col-label {
    border-top-right-radius: 4px; }

  .store-cart-summary-total.store-cart-summary-total-subtotal div,
  .store-cart-summary-total.store-cart-summary-total-tax div,
  .store-cart-summary-total.store-cart-summary-total-total div {
    display: inline; }

  ul {
    list-style: none;
    padding: 0; }

  a {
    font-size: 0; }

  a:after {
    font-size: 16px;
    content: attr(href); }

  .main-header-logo:after,
  .c42-product-header-logo:after {
    content: ''; }

  div.store-order-summary-info {
    border: 1px solid gray;
    padding-top: 0;
    border-radius: 3px; }

  .store-order-summary-info p {
    margin: 0; }
    .store-order-summary-info p:first-child span {
      padding-top: .5em; }
    .store-order-summary-info p:last-child span {
      padding-bottom: .5em; }

  .store-order-summary-label {
    background-color: gray;
    display: inline-block;
    min-width: 8.5em;
    line-height: 1.6em;
    text-align: right;
    color: white;
    margin-right: .25em;
    padding-right: .5em; }

  .store-receipt-heading h2 {
    color: gray;
    font-size: 2.1em;
    text-transform: uppercase;
    margin-top: .3em; }

  .store-receipt-heading p {
    line-height: 1.4em; }

  .address-line {
    display: block;
    line-height: 1.4em; }

  .store-receipt-new {
    line-height: 1.2em;
    display: inline-block;
    float: left;
    width: 50%;
    margin-right: 5%; }

  .store-receipt-existing {
    width: 45%;
    line-height: 1.2em;
    display: inline-block;
    float: right; }

  .store-receipt-new ol, .store-receipt-existing ol {
    padding-left: 1.4em; }

  .li-ordinal {
    display: none; }

  .store-receipt-licence-notice {
    background-color: gray;
    color: white;
    text-align: center;
    line-height: 1.5em;
    border-radius: 4px;
    margin-bottom: 0; }

  .store-receipt-license {
    padding-top: .5em;
    background-color: #eee;
    padding: .5em;
    text-align: center; }

  .c42-global-header-links,
  .store-mobile-crashplan-logo {
    display: none; } }
@media print {
  .main-nav, .visuallyhidden, .main-header-content, .legacy-footer,
  .store-checkout-header, .main-header-buttons, .main-header-logo:after, .main-header-logo-mobile {
    display: none; }

  #mainHeader, .main-header-content {
    display: inline-block; }

  .main-header-logo img {
    margin-left: 2em; }

  #mainHeader {
    margin-top: 2em; }

  body {
    font-family: "proxima-nova", sans-serif;
    line-height: 1em;
    width: 900px;
    margin: 0 auto; }

  .store-receipt-heading {
    float: right;
    width: 300px; }

  .store-order-summary-info {
    width: 300px;
    padding-top: 11px;
    margin-bottom: 1em; }

  .store-receipt-recipient {
    text-align: center; }

  .store-order-summary-info p {
    margin: 5px; }

  .store-order-summary-payment-address, .store-order-summary-shipping-address {
    float: left;
    width: 300px; }

  .store-cart-summary {
    padding-top: 1em;
    clear: both; }

  .store-cart-summary-line-item-col {
    width: 16%;
    float: left;
    text-align: right; }

  .store-cart-summary-line-item-col-label, .store-cart-summary-line-item-row {
    padding-right: .5em; }

  .store-cart-summary-line-item-qty {
    width: 7%; }

  .store-cart-summary-line-item-group.store-cart-summary-line-item-info {
    width: 60%;
    float: left; }

  .store-cart-summary-line-item-col-label {
    font-weight: bold;
    padding-bottom: 3px;
    border-bottom: 1px solid #eee; }

  .store-cart-summary-line-item-col-label, .store-cart-summary-line-item-row, .store-cart-summary-line-item-description {
    padding-left: .5em; }

  .store-cart-summary-totals {
    clear: both;
    margin-left: 540px;
    text-align: right;
    padding-right: .5em;
    padding-top: 1em; }

  .store-cart-summary-totals div div {
    width: 50px; }

  .store-cart-summary-total {
    line-height: 1.6em; }

  .store-cart-summary-line-item-row {
    line-height: 1.6em;
    background-color: #eee; }

  .store-cart-summary-line-item-description, .store-cart-summary-line-item-col-label {
    line-height: 1.6em; }

  .store-cart-summary-line-item-col-label {
    padding-top: .3em;
    background-color: gray;
    color: white;
    letter-spacing: 1px; }

  .store-cart-summary-line-item-group:first-child .store-cart-summary-line-item-col-label {
    border-top-left-radius: 4px; }

  .store-cart-summary-line-item-col:last-child .store-cart-summary-line-item-col-label {
    border-top-right-radius: 4px; }

  .store-cart-summary-total.store-cart-summary-total-subtotal div,
  .store-cart-summary-total.store-cart-summary-total-tax div,
  .store-cart-summary-total.store-cart-summary-total-total div {
    display: inline; }

  ul {
    list-style: none;
    padding: 0; }

  a {
    font-size: 0; }

  a:after {
    font-size: 16px;
    content: attr(href); }

  .main-header-logo:after,
  .c42-product-header-logo:after {
    content: ''; }

  div.store-order-summary-info {
    border: 1px solid gray;
    padding-top: 0;
    border-radius: 3px; }

  .store-order-summary-info p {
    margin: 0; }
    .store-order-summary-info p:first-child span {
      padding-top: .5em; }
    .store-order-summary-info p:last-child span {
      padding-bottom: .5em; }

  .store-order-summary-label {
    background-color: gray;
    display: inline-block;
    min-width: 8.5em;
    line-height: 1.6em;
    text-align: right;
    color: white;
    margin-right: .25em;
    padding-right: .5em; }

  .store-receipt-heading h2 {
    color: gray;
    font-size: 2.1em;
    text-transform: uppercase;
    margin-top: .3em; }

  .store-receipt-heading p {
    line-height: 1.4em; }

  .address-line {
    display: block;
    line-height: 1.4em; }

  .store-receipt-new {
    line-height: 1.2em;
    display: inline-block;
    float: left;
    width: 50%;
    margin-right: 5%; }

  .store-receipt-existing {
    width: 45%;
    line-height: 1.2em;
    display: inline-block;
    float: right; }

  .store-receipt-new ol, .store-receipt-existing ol {
    padding-left: 1.4em; }

  .li-ordinal {
    display: none; }

  .store-receipt-licence-notice {
    background-color: gray;
    color: white;
    text-align: center;
    line-height: 1.5em;
    border-radius: 4px;
    margin-bottom: 0; }

  .store-receipt-license {
    padding-top: .5em;
    background-color: #eee;
    padding: .5em;
    text-align: center; }

  .c42-global-header-links,
  .store-mobile-crashplan-logo {
    display: none; } }



/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlbmRvci9fbm9ybWFsaXplLnNjc3MiLCJfZm9udHMuc2NzcyIsInZlbmRvci9fcGF0aC5zY3NzIiwidmVuZG9yL19jb3JlLnNjc3MiLCJ2ZW5kb3IvX21peGlucy5zY3NzIiwidmVuZG9yL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy5ydm0vZ2Vtcy9ydWJ5LTIuMS4xL2dlbXMvY29tcGFzcy1jb3JlLTEuMC4zL3N0eWxlc2hlZXRzL2NvbXBhc3MvX3N1cHBvcnQuc2NzcyIsIi4uLy4uLy4uLy5ydm0vZ2Vtcy9ydWJ5LTIuMS4xL2dlbXMvY29tcGFzcy1jb3JlLTEuMC4zL3N0eWxlc2hlZXRzL2NvbXBhc3MvY3NzMy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwidmVuZG9yL19ib290c3RyYXAuc2NzcyIsInZlbmRvci9fZXh0cmFzLnNjc3MiLCJ2ZW5kb3IvX2ljb25zLnNjc3MiLCJzaXRlLnNjc3MiLCIuLi8uLi8uLi8ucnZtL2dlbXMvcnVieS0yLjEuMS9nZW1zL2NvbXBhc3MtY29yZS0xLjAuMy9zdHlsZXNoZWV0cy9jb21wYXNzL2NzczMvX2JveC1zaXppbmcuc2NzcyIsIl9nbG9iYWwuc2NzcyIsIl9mbHVpZC10eXBlLnNjc3MiLCIuLi8uLi8uLi8ucnZtL2dlbXMvcnVieS0yLjEuMS9nZW1zL2JyZWFrcG9pbnQtMi41LjAvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsIl9tYWluLWhlYWRlci5zY3NzIiwiLi4vLi4vLi4vLnJ2bS9nZW1zL3J1YnktMi4xLjEvZ2Vtcy9jb21wYXNzLWNvcmUtMS4wLjMvc3R5bGVzaGVldHMvY29tcGFzcy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi8ucnZtL2dlbXMvcnVieS0yLjEuMS9nZW1zL2NvbXBhc3MtY29yZS0xLjAuMy9zdHlsZXNoZWV0cy9jb21wYXNzL3R5cG9ncmFwaHkvX3VuaXRzLnNjc3MiLCIuLi8uLi8uLi8ucnZtL2dlbXMvcnVieS0yLjEuMS9nZW1zL2NvbXBhc3MtY29yZS0xLjAuMy9zdHlsZXNoZWV0cy9jb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vLi4vLnJ2bS9nZW1zL3J1YnktMi4xLjEvZ2Vtcy9jb21wYXNzLWNvcmUtMS4wLjMvc3R5bGVzaGVldHMvY29tcGFzcy91dGlsaXRpZXMvZ2VuZXJhbC9faGFja3Muc2NzcyIsIi4uLy4uLy4uLy5ydm0vZ2Vtcy9ydWJ5LTIuMS4xL2dlbXMvY29tcGFzcy1jb3JlLTEuMC4zL3N0eWxlc2hlZXRzL2NvbXBhc3MvY3NzMy9faW1hZ2VzLnNjc3MiLCJfY3Auc2NzcyIsIl9tYWluLW5hdi5zY3NzIiwiLi4vLi4vLi4vLnJ2bS9nZW1zL3J1YnktMi4xLjEvZ2Vtcy9jb21wYXNzLWNvcmUtMS4wLjMvc3R5bGVzaGVldHMvY29tcGFzcy9yZXNldC9fdXRpbGl0aWVzLnNjc3MiLCIuLi8uLi8uLi8ucnZtL2dlbXMvcnVieS0yLjEuMS9nZW1zL2NvbXBhc3MtY29yZS0xLjAuMy9zdHlsZXNoZWV0cy9jb21wYXNzL3R5cG9ncmFwaHkvbGlzdHMvX2hvcml6b250YWwtbGlzdC5zY3NzIiwiLi4vLi4vLi4vLnJ2bS9nZW1zL3J1YnktMi4xLjEvZ2Vtcy9jb21wYXNzLWNvcmUtMS4wLjMvc3R5bGVzaGVldHMvY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL19idWxsZXRzLnNjc3MiLCIuLi8uLi8uLi8ucnZtL2dlbXMvcnVieS0yLjEuMS9nZW1zL2NvbXBhc3MtY29yZS0xLjAuMy9zdHlsZXNoZWV0cy9jb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL19mbG9hdC5zY3NzIiwiX3NpbXBsZS1tb2RhbC5zY3NzIiwiX2h0bWw1Ym9pbGVycGxhdGUtdXRpbGl0aWVzLnNjc3MiLCJfbGVnYWN5LWZvb3Rlci5zY3NzIiwiLi4vLi4vLi4vLnJ2bS9nZW1zL3J1YnktMi4xLjEvZ2Vtcy9jb21wYXNzLWNvcmUtMS4wLjMvc3R5bGVzaGVldHMvY29tcGFzcy9jc3MzL19ib3gtc2hhZG93LnNjc3MiLCJfZ3JpZC5zY3NzIiwiX2hlYWRlci1jYXJ0LXdpZGdldC5zY3NzIiwidmVuZG9yL19hbmltYXRlLWN1c3RvbS5zY3NzIiwidmVuZG9yL19oaW50LnNjc3MiLCJjcmFzaHBsYW4vX3N0eWxlZ3VpZGUuc2NzcyIsImNyYXNocGxhbi9zaXRlLnNjc3MiLCIuLi8uLi8uLi8ucnZtL2dlbXMvcnVieS0yLjEuMS9nZW1zL2NvbXBhc3MtY29yZS0xLjAuMy9zdHlsZXNoZWV0cy9jb21wYXNzL2NzczMvX3RleHQtc2hhZG93LnNjc3MiLCJzdG9yZS9fY2FydC5zY3NzIiwic3RvcmUvX3N0b3JlLXZhcnMuc2NzcyIsInN0b3JlL19zdWJzY3JpcHRpb24tcHJvZHVjdC10eXBlLnNjc3MiLCJzdG9yZS9fY2FydC1zdW1tYXJ5LnNjc3MiLCJzdG9yZS9fY3JlZGl0LWNhcmQtZm9ybS5zY3NzIiwic3RvcmUvX2FkZHJlc3MtZm9ybS5zY3NzIiwic3RvcmUvX2NoZWNrb3V0LXByb2dyZXNzLnNjc3MiLCJzdG9yZS9fb3JkZXItc3VtbWFyeS5zY3NzIiwic3RvcmUvX2N1cnJlbmN5LnNjc3MiLCJzdG9yZS9fbm90aWNlLnNjc3MiLCJzdG9yZS5zY3NzIiwic3RvcmUvX3N0b3JlLXZpZXcuc2NzcyIsInN0b3JlL19jaGVja291dC12aWV3cy5zY3NzIiwic3RvcmUvcmVjZWlwdC1wcmludC12aWV3LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQTs7Ozs7Ozs7Ozs7T0FXUTtFQUNKLE9BQU8sRUFBRSxLQUFLOzs7OztBQU9sQjs7S0FFTTtFQUNGLE9BQU8sRUFBRSxZQUFZOzs7Ozs7QUFRekIscUJBQXNCO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsTUFBTSxFQUFFLENBQUM7Ozs7O0FBT2IsUUFBUztFQUNMLE9BQU8sRUFBRSxJQUFJOzs7Ozs7Ozs7O0FBYWpCLElBQUs7RUFDRCxXQUFXLEVBQUUs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QVUsRUFBRSxNQUFNOztFQUduQjs4QkFDNkI7SUFDNUIsT0FBTyxFQUFFLElBQUkiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZVJvb3QiOiIvc291cmNlLyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHYyLjEuMiB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG52aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJhc2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBgb3V0bGluZWAgaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIENocm9tZSBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuYTpmb2N1cyB7XG4gICAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgICBvdXRsaW5lOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVHlwb2dyYXBoeVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcbiAgICBmb250LXNpemU6IDFlbTtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIHByZS1mb3JtYXR0ZWQgdGV4dCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG5cbi8qKlxuICogU2V0IGNvbnNpc3RlbnQgcXVvdGUgdHlwZXMuXG4gKi9cblxucSB7XG4gICAgcXVvdGVzOiBcIlxcMjAxQ1wiIFwiXFwyMDFEXCIgXCJcXDIwMThcIiBcIlxcMjAxOVwiO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICAgIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkuXG4gKi9cblxuaW1nIHtcbiAgICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgOS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZpZ3VyZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkgNS5cbiAqL1xuXG5maWd1cmUge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBmb250IGZhbWlseSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgZm9udCBzaXplIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMiAqL1xuICAgIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIENocm9tZSwgU2FmYXJpIDUrLCBhbmQgSUUgOCsuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3ggNCsgYW5kIE9wZXJhLlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogb24gT1MgWC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS5cbiAqIDIuIEltcHJvdmUgcmVhZGFiaWxpdHkgYW5kIGFsaWdubWVudCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxudGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvOyAvKiAxICovXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgLyogMiAqL1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbn1cbiIsIiRiYXNlRm9udFBhdGg6IFwiL2ZvbnRzXCI7XG5cbi8qIFRhYmFjIFNsYWIgZnJvbSBzdWl0Y2FzZXR5cGUuY29tICovXG5AZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6ICdUYWJhY1NsYWInO1xuXHRzcmM6IHVybCgnI3skYmFzZUZvbnRQYXRofS90YWJhYy1zbGFiL1RhYmFjX1NsYWJfUmVndWxhci5lb3QnKTtcblx0c3JjOiB1cmwoJyN7JGJhc2VGb250UGF0aH0vdGFiYWMtc2xhYi9UYWJhY19TbGFiX1JlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcblx0XHR1cmwoJyN7JGJhc2VGb250UGF0aH0vdGFiYWMtc2xhYi9UYWJhY19TbGFiX1JlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRsb2NhbCgn4pi6Jyk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi8qIEZvbnQtQXdlc29tZSBmb250cyAqL1xuQGltcG9ydCBcInZlbmRvci9mb250LWF3ZXNvbWVcIjtcbiIsIi8qIEZPTlQgUEFUSFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnO1xuICBzcmM6IHVybCgnI3skRm9udEF3ZXNvbWVQYXRofS9mb250YXdlc29tZS13ZWJmb250LmVvdD92PSN7JEZvbnRBd2Vzb21lVmVyc2lvbn0nKTtcbiAgc3JjOiB1cmwoJyN7JEZvbnRBd2Vzb21lUGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/I2llZml4JnY9I3skRm9udEF3ZXNvbWVWZXJzaW9ufScpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICB1cmwoJyN7JEZvbnRBd2Vzb21lUGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9I3skRm9udEF3ZXNvbWVWZXJzaW9ufScpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnI3skRm9udEF3ZXNvbWVQYXRofS9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PSN7JEZvbnRBd2Vzb21lVmVyc2lvbn0nKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCcjeyRGb250QXdlc29tZVBhdGh9L2ZvbnRhd2Vzb21lLXdlYmZvbnQuc3ZnI2ZvbnRhd2Vzb21lcmVndWxhcj92PSN7JEZvbnRBd2Vzb21lVmVyc2lvbn0nKSBmb3JtYXQoJ3N2ZycpO1xuLy8gIHNyYzogdXJsKCcjeyRGb250QXdlc29tZVBhdGh9L0ZvbnRBd2Vzb21lLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgLy8gdXNlZCB3aGVuIGRldmVsb3BpbmcgZm9udHNcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuIiwiLyogRk9OVCBBV0VTT01FIENPUkVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbltjbGFzc149XCJpY29uLVwiXSxcbltjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICBAaW5jbHVkZSBpY29uLUZvbnRBd2Vzb21lKCk7XG59XG5cbltjbGFzc149XCJpY29uLVwiXTpiZWZvcmUsXG5bY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBzcGVhazogbm9uZTtcbn1cblxuLyogbWFrZXMgdGhlIGZvbnQgMzMlIGxhcmdlciByZWxhdGl2ZSB0byB0aGUgaWNvbiBjb250YWluZXIgKi9cbi5pY29uLWxhcmdlOmJlZm9yZSB7XG4gIHZlcnRpY2FsLWFsaWduOiAtMTAlO1xuICBmb250LXNpemU6ICg0ZW0vMyk7XG59XG5cbi8qIG1ha2VzIHN1cmUgaWNvbnMgYWN0aXZlIG9uIHJvbGxvdmVyIGluIGxpbmtzICovXG5hIHtcbiAgW2NsYXNzXj1cImljb24tXCJdLFxuICBbY2xhc3MqPVwiIGljb24tXCJdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbn1cblxuLyogaW5jcmVhc2VkIGZvbnQgc2l6ZSBmb3IgaWNvbi1sYXJnZSAqL1xuW2NsYXNzXj1cImljb24tXCJdLFxuW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gICYuaWNvbi1maXhlZC13aWR0aCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAoMTZlbS8xNCk7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgcGFkZGluZy1yaWdodDogKDRlbS8xNCk7XG4gICAgJi5pY29uLWxhcmdlIHtcbiAgICAgIHdpZHRoOiAoMjBlbS8xNCk7XG4gICAgfVxuICB9XG59XG5cbi5pY29ucy11bCB7XG4gIG1hcmdpbi1sZWZ0OiAkaWNvbnMtbGktd2lkdGg7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICA+IGxpIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbiAgLmljb24tbGkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtJGljb25zLWxpLXdpZHRoO1xuICAgIHdpZHRoOiAkaWNvbnMtbGktd2lkdGg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG59XG5cbi8vIGFsbG93cyB1c2FnZSBvZiB0aGUgaGlkZSBjbGFzcyBkaXJlY3RseSBvbiBmb250IGF3ZXNvbWUgaWNvbnNcbltjbGFzc149XCJpY29uLVwiXSxcbltjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICAmLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmljb24tbXV0ZWQgeyBjb2xvcjogJGljb25NdXRlZDsgfVxuLmljb24tbGlnaHQgeyBjb2xvcjogJGljb25MaWdodDsgfVxuLmljb24tZGFyayB7IGNvbG9yOiAkaWNvbkRhcms7IH1cblxuLy8gSWNvbiBCb3JkZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5pY29uLWJvcmRlciB7XG4gIGJvcmRlcjogc29saWQgMXB4ICRib3JkZXJDb2xvcjtcbiAgcGFkZGluZzogLjJlbSAuMjVlbSAuMTVlbTtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygzcHgpO1xufVxuXG4vLyBJY29uIFNpemVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5pY29uLTJ4IHtcbiAgZm9udC1zaXplOiAyZW07XG4gICYuaWNvbi1ib3JkZXIge1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNHB4KTtcbiAgfVxufVxuLmljb24tM3gge1xuICBmb250LXNpemU6IDNlbTtcbiAgJi5pY29uLWJvcmRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAzcHg7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg1cHgpO1xuICB9XG59XG4uaWNvbi00eCB7XG4gIGZvbnQtc2l6ZTogNGVtO1xuICAmLmljb24tYm9yZGVyIHtcbiAgICBib3JkZXItd2lkdGg6IDRweDtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDZweCk7XG4gIH1cbn1cblxuLmljb24tNXgge1xuICBmb250LXNpemU6IDVlbTtcbiAgJi5pY29uLWJvcmRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiA1cHg7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg3cHgpO1xuICB9XG59XG5cblxuLy8gRmxvYXRzICYgTWFyZ2luc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBRdWljayBmbG9hdHNcbi5wdWxsLXJpZ2h0IHsgZmxvYXQ6IHJpZ2h0OyB9XG4ucHVsbC1sZWZ0IHsgZmxvYXQ6IGxlZnQ7IH1cblxuW2NsYXNzXj1cImljb24tXCJdLFxuW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gICYucHVsbC1sZWZ0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC4zZW07XG4gIH1cbiAgJi5wdWxsLXJpZ2h0IHtcbiAgICBtYXJnaW4tbGVmdDogLjNlbTtcbiAgfVxufVxuIiwiLy8gTWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaWNvbigkaWNvbikge1xuICBAaW5jbHVkZSBpY29uLUZvbnRBd2Vzb21lKCk7XG4gIGNvbnRlbnQ6ICRpY29uO1xufVxuXG5AbWl4aW4gaWNvbi1Gb250QXdlc29tZSgpIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICptYXJnaW4tcmlnaHQ6IC4zZW07IC8vIGZpeGVzIGllNyBpc3N1ZXNcbn1cblxuLy8gQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1cykge1xuLy8gICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4vLyAgIC1tb3otYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbi8vICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbi8vIH1cblxuQG1peGluIGljb24tc3RhY2soJHdpZHRoOiAyZW0sICRoZWlnaHQ6IDJlbSwgJHRvcC1mb250LXNpemU6IDFlbSwgJGJhc2UtZm9udC1zaXplOiAyZW0pIHtcbiAgLmljb24tc3RhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICR3aWR0aDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTM1JTtcbiAgICBbY2xhc3NePVwiaWNvbi1cIl0sXG4gICAgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZm9udC1zaXplOiAkdG9wLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgKmxpbmUtaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgICAuaWNvbi1zdGFjay1iYXNlIHtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgICAgKmxpbmUtaGVpZ2h0OiAjeyRoZWlnaHQgLyAkYmFzZS1mb250LXNpemV9ZW07XG4gICAgfVxuICB9XG59XG4iLCIvLyBWYXJpYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRGb250QXdlc29tZVBhdGg6IFwiLi9mb250cy9mb250LWF3ZXNvbWVcIiAhZGVmYXVsdDtcbiRGb250QXdlc29tZVZlcnNpb246IFwiMy4yLjFcIiAhZGVmYXVsdDtcbiRib3JkZXJDb2xvcjogI2VlZWVlZSAhZGVmYXVsdDtcbiRpY29uTXV0ZWQ6ICNlZWVlZWUgIWRlZmF1bHQ7XG4kaWNvbkxpZ2h0OiB3aGl0ZSAhZGVmYXVsdDtcbiRpY29uRGFyazogIzMzMzMzMyAhZGVmYXVsdDtcbiRpY29ucy1saS13aWR0aDogKDMwZW0vMTQpO1xuXG5cbiRnbGFzczogXCJcXGYwMDBcIjtcblxuJG11c2ljOiBcIlxcZjAwMVwiO1xuXG4kc2VhcmNoOiBcIlxcZjAwMlwiO1xuXG4kZW52ZWxvcGUtYWx0OiBcIlxcZjAwM1wiO1xuXG4kaGVhcnQ6IFwiXFxmMDA0XCI7XG5cbiRzdGFyOiBcIlxcZjAwNVwiO1xuXG4kc3Rhci1lbXB0eTogXCJcXGYwMDZcIjtcblxuJHVzZXI6IFwiXFxmMDA3XCI7XG5cbiRmaWxtOiBcIlxcZjAwOFwiO1xuXG4kdGgtbGFyZ2U6IFwiXFxmMDA5XCI7XG5cbiR0aDogXCJcXGYwMGFcIjtcblxuJHRoLWxpc3Q6IFwiXFxmMDBiXCI7XG5cbiRvazogXCJcXGYwMGNcIjtcblxuJHJlbW92ZTogXCJcXGYwMGRcIjtcblxuJHpvb20taW46IFwiXFxmMDBlXCI7XG5cbiR6b29tLW91dDogXCJcXGYwMTBcIjtcblxuJG9mZjogXCJcXGYwMTFcIjtcblxuJHNpZ25hbDogXCJcXGYwMTJcIjtcblxuJGNvZzogXCJcXGYwMTNcIjtcblxuJHRyYXNoOiBcIlxcZjAxNFwiO1xuXG4kaG9tZTogXCJcXGYwMTVcIjtcblxuJGZpbGUtYWx0OiBcIlxcZjAxNlwiO1xuXG4kdGltZTogXCJcXGYwMTdcIjtcblxuJHJvYWQ6IFwiXFxmMDE4XCI7XG5cbiRkb3dubG9hZC1hbHQ6IFwiXFxmMDE5XCI7XG5cbiRkb3dubG9hZDogXCJcXGYwMWFcIjtcblxuJHVwbG9hZDogXCJcXGYwMWJcIjtcblxuJGluYm94OiBcIlxcZjAxY1wiO1xuXG4kcGxheS1jaXJjbGU6IFwiXFxmMDFkXCI7XG5cbiRyZXBlYXQ6IFwiXFxmMDFlXCI7XG5cbiRyZWZyZXNoOiBcIlxcZjAyMVwiO1xuXG4kbGlzdC1hbHQ6IFwiXFxmMDIyXCI7XG5cbiRsb2NrOiBcIlxcZjAyM1wiO1xuXG4kZmxhZzogXCJcXGYwMjRcIjtcblxuJGhlYWRwaG9uZXM6IFwiXFxmMDI1XCI7XG5cbiR2b2x1bWUtb2ZmOiBcIlxcZjAyNlwiO1xuXG4kdm9sdW1lLWRvd246IFwiXFxmMDI3XCI7XG5cbiR2b2x1bWUtdXA6IFwiXFxmMDI4XCI7XG5cbiRxcmNvZGU6IFwiXFxmMDI5XCI7XG5cbiRiYXJjb2RlOiBcIlxcZjAyYVwiO1xuXG4kdGFnOiBcIlxcZjAyYlwiO1xuXG4kdGFnczogXCJcXGYwMmNcIjtcblxuJGJvb2s6IFwiXFxmMDJkXCI7XG5cbiRib29rbWFyazogXCJcXGYwMmVcIjtcblxuJHByaW50OiBcIlxcZjAyZlwiO1xuXG4kY2FtZXJhOiBcIlxcZjAzMFwiO1xuXG4kZm9udDogXCJcXGYwMzFcIjtcblxuJGJvbGQ6IFwiXFxmMDMyXCI7XG5cbiRpdGFsaWM6IFwiXFxmMDMzXCI7XG5cbiR0ZXh0LWhlaWdodDogXCJcXGYwMzRcIjtcblxuJHRleHQtd2lkdGg6IFwiXFxmMDM1XCI7XG5cbiRhbGlnbi1sZWZ0OiBcIlxcZjAzNlwiO1xuXG4kYWxpZ24tY2VudGVyOiBcIlxcZjAzN1wiO1xuXG4kYWxpZ24tcmlnaHQ6IFwiXFxmMDM4XCI7XG5cbiRhbGlnbi1qdXN0aWZ5OiBcIlxcZjAzOVwiO1xuXG4kbGlzdDogXCJcXGYwM2FcIjtcblxuJGluZGVudC1sZWZ0OiBcIlxcZjAzYlwiO1xuXG4kaW5kZW50LXJpZ2h0OiBcIlxcZjAzY1wiO1xuXG4kZmFjZXRpbWUtdmlkZW86IFwiXFxmMDNkXCI7XG5cbiRwaWN0dXJlOiBcIlxcZjAzZVwiO1xuXG4kcGVuY2lsOiBcIlxcZjA0MFwiO1xuXG4kbWFwLW1hcmtlcjogXCJcXGYwNDFcIjtcblxuJGFkanVzdDogXCJcXGYwNDJcIjtcblxuJHRpbnQ6IFwiXFxmMDQzXCI7XG5cbiRlZGl0OiBcIlxcZjA0NFwiO1xuXG4kc2hhcmU6IFwiXFxmMDQ1XCI7XG5cbiRjaGVjazogXCJcXGYwNDZcIjtcblxuJG1vdmU6IFwiXFxmMDQ3XCI7XG5cbiRzdGVwLWJhY2t3YXJkOiBcIlxcZjA0OFwiO1xuXG4kZmFzdC1iYWNrd2FyZDogXCJcXGYwNDlcIjtcblxuJGJhY2t3YXJkOiBcIlxcZjA0YVwiO1xuXG4kcGxheTogXCJcXGYwNGJcIjtcblxuJHBhdXNlOiBcIlxcZjA0Y1wiO1xuXG4kc3RvcDogXCJcXGYwNGRcIjtcblxuJGZvcndhcmQ6IFwiXFxmMDRlXCI7XG5cbiRmYXN0LWZvcndhcmQ6IFwiXFxmMDUwXCI7XG5cbiRzdGVwLWZvcndhcmQ6IFwiXFxmMDUxXCI7XG5cbiRlamVjdDogXCJcXGYwNTJcIjtcblxuJGNoZXZyb24tbGVmdDogXCJcXGYwNTNcIjtcblxuJGNoZXZyb24tcmlnaHQ6IFwiXFxmMDU0XCI7XG5cbiRwbHVzLXNpZ246IFwiXFxmMDU1XCI7XG5cbiRtaW51cy1zaWduOiBcIlxcZjA1NlwiO1xuXG4kcmVtb3ZlLXNpZ246IFwiXFxmMDU3XCI7XG5cbiRvay1zaWduOiBcIlxcZjA1OFwiO1xuXG4kcXVlc3Rpb24tc2lnbjogXCJcXGYwNTlcIjtcblxuJGluZm8tc2lnbjogXCJcXGYwNWFcIjtcblxuJHNjcmVlbnNob3Q6IFwiXFxmMDViXCI7XG5cbiRyZW1vdmUtY2lyY2xlOiBcIlxcZjA1Y1wiO1xuXG4kb2stY2lyY2xlOiBcIlxcZjA1ZFwiO1xuXG4kYmFuLWNpcmNsZTogXCJcXGYwNWVcIjtcblxuJGFycm93LWxlZnQ6IFwiXFxmMDYwXCI7XG5cbiRhcnJvdy1yaWdodDogXCJcXGYwNjFcIjtcblxuJGFycm93LXVwOiBcIlxcZjA2MlwiO1xuXG4kYXJyb3ctZG93bjogXCJcXGYwNjNcIjtcblxuJHNoYXJlLWFsdDogXCJcXGYwNjRcIjtcblxuJHJlc2l6ZS1mdWxsOiBcIlxcZjA2NVwiO1xuXG4kcmVzaXplLXNtYWxsOiBcIlxcZjA2NlwiO1xuXG4kcGx1czogXCJcXGYwNjdcIjtcblxuJG1pbnVzOiBcIlxcZjA2OFwiO1xuXG4kYXN0ZXJpc2s6IFwiXFxmMDY5XCI7XG5cbiRleGNsYW1hdGlvbi1zaWduOiBcIlxcZjA2YVwiO1xuXG4kZ2lmdDogXCJcXGYwNmJcIjtcblxuJGxlYWY6IFwiXFxmMDZjXCI7XG5cbiRmaXJlOiBcIlxcZjA2ZFwiO1xuXG4kZXllLW9wZW46IFwiXFxmMDZlXCI7XG5cbiRleWUtY2xvc2U6IFwiXFxmMDcwXCI7XG5cbiR3YXJuaW5nLXNpZ246IFwiXFxmMDcxXCI7XG5cbiRwbGFuZTogXCJcXGYwNzJcIjtcblxuJGNhbGVuZGFyOiBcIlxcZjA3M1wiO1xuXG4kcmFuZG9tOiBcIlxcZjA3NFwiO1xuXG4kY29tbWVudDogXCJcXGYwNzVcIjtcblxuJG1hZ25ldDogXCJcXGYwNzZcIjtcblxuJGNoZXZyb24tdXA6IFwiXFxmMDc3XCI7XG5cbiRjaGV2cm9uLWRvd246IFwiXFxmMDc4XCI7XG5cbiRyZXR3ZWV0OiBcIlxcZjA3OVwiO1xuXG4kc2hvcHBpbmctY2FydDogXCJcXGYwN2FcIjtcblxuJGZvbGRlci1jbG9zZTogXCJcXGYwN2JcIjtcblxuJGZvbGRlci1vcGVuOiBcIlxcZjA3Y1wiO1xuXG4kcmVzaXplLXZlcnRpY2FsOiBcIlxcZjA3ZFwiO1xuXG4kcmVzaXplLWhvcml6b250YWw6IFwiXFxmMDdlXCI7XG5cbiRiYXItY2hhcnQ6IFwiXFxmMDgwXCI7XG5cbiR0d2l0dGVyLXNpZ246IFwiXFxmMDgxXCI7XG5cbiRmYWNlYm9vay1zaWduOiBcIlxcZjA4MlwiO1xuXG4kY2FtZXJhLXJldHJvOiBcIlxcZjA4M1wiO1xuXG4ka2V5OiBcIlxcZjA4NFwiO1xuXG4kY29nczogXCJcXGYwODVcIjtcblxuJGNvbW1lbnRzOiBcIlxcZjA4NlwiO1xuXG4kdGh1bWJzLXVwLWFsdDogXCJcXGYwODdcIjtcblxuJHRodW1icy1kb3duLWFsdDogXCJcXGYwODhcIjtcblxuJHN0YXItaGFsZjogXCJcXGYwODlcIjtcblxuJGhlYXJ0LWVtcHR5OiBcIlxcZjA4YVwiO1xuXG4kc2lnbm91dDogXCJcXGYwOGJcIjtcblxuJGxpbmtlZGluLXNpZ246IFwiXFxmMDhjXCI7XG5cbiRwdXNocGluOiBcIlxcZjA4ZFwiO1xuXG4kZXh0ZXJuYWwtbGluazogXCJcXGYwOGVcIjtcblxuJHNpZ25pbjogXCJcXGYwOTBcIjtcblxuJHRyb3BoeTogXCJcXGYwOTFcIjtcblxuJGdpdGh1Yi1zaWduOiBcIlxcZjA5MlwiO1xuXG4kdXBsb2FkLWFsdDogXCJcXGYwOTNcIjtcblxuJGxlbW9uOiBcIlxcZjA5NFwiO1xuXG4kcGhvbmU6IFwiXFxmMDk1XCI7XG5cbiRjaGVjay1lbXB0eTogXCJcXGYwOTZcIjtcblxuJGJvb2ttYXJrLWVtcHR5OiBcIlxcZjA5N1wiO1xuXG4kcGhvbmUtc2lnbjogXCJcXGYwOThcIjtcblxuJHR3aXR0ZXI6IFwiXFxmMDk5XCI7XG5cbiRmYWNlYm9vazogXCJcXGYwOWFcIjtcblxuJGdpdGh1YjogXCJcXGYwOWJcIjtcblxuJHVubG9jazogXCJcXGYwOWNcIjtcblxuJGNyZWRpdC1jYXJkOiBcIlxcZjA5ZFwiO1xuXG4kcnNzOiBcIlxcZjA5ZVwiO1xuXG4kaGRkOiBcIlxcZjBhMFwiO1xuXG4kYnVsbGhvcm46IFwiXFxmMGExXCI7XG5cbiRiZWxsOiBcIlxcZjBhMlwiO1xuXG4kY2VydGlmaWNhdGU6IFwiXFxmMGEzXCI7XG5cbiRoYW5kLXJpZ2h0OiBcIlxcZjBhNFwiO1xuXG4kaGFuZC1sZWZ0OiBcIlxcZjBhNVwiO1xuXG4kaGFuZC11cDogXCJcXGYwYTZcIjtcblxuJGhhbmQtZG93bjogXCJcXGYwYTdcIjtcblxuJGNpcmNsZS1hcnJvdy1sZWZ0OiBcIlxcZjBhOFwiO1xuXG4kY2lyY2xlLWFycm93LXJpZ2h0OiBcIlxcZjBhOVwiO1xuXG4kY2lyY2xlLWFycm93LXVwOiBcIlxcZjBhYVwiO1xuXG4kY2lyY2xlLWFycm93LWRvd246IFwiXFxmMGFiXCI7XG5cbiRnbG9iZTogXCJcXGYwYWNcIjtcblxuJHdyZW5jaDogXCJcXGYwYWRcIjtcblxuJHRhc2tzOiBcIlxcZjBhZVwiO1xuXG4kZmlsdGVyOiBcIlxcZjBiMFwiO1xuXG4kYnJpZWZjYXNlOiBcIlxcZjBiMVwiO1xuXG4kZnVsbHNjcmVlbjogXCJcXGYwYjJcIjtcblxuJGdyb3VwOiBcIlxcZjBjMFwiO1xuXG4kbGluazogXCJcXGYwYzFcIjtcblxuJGNsb3VkOiBcIlxcZjBjMlwiO1xuXG4kYmVha2VyOiBcIlxcZjBjM1wiO1xuXG4kY3V0OiBcIlxcZjBjNFwiO1xuXG4kY29weTogXCJcXGYwYzVcIjtcblxuJHBhcGVyLWNsaXA6IFwiXFxmMGM2XCI7XG5cbiRzYXZlOiBcIlxcZjBjN1wiO1xuXG4kc2lnbi1ibGFuazogXCJcXGYwYzhcIjtcblxuJHJlb3JkZXI6IFwiXFxmMGM5XCI7XG5cbiRsaXN0LXVsOiBcIlxcZjBjYVwiO1xuXG4kbGlzdC1vbDogXCJcXGYwY2JcIjtcblxuJHN0cmlrZXRocm91Z2g6IFwiXFxmMGNjXCI7XG5cbiR1bmRlcmxpbmU6IFwiXFxmMGNkXCI7XG5cbiR0YWJsZTogXCJcXGYwY2VcIjtcblxuJG1hZ2ljOiBcIlxcZjBkMFwiO1xuXG4kdHJ1Y2s6IFwiXFxmMGQxXCI7XG5cbiRwaW50ZXJlc3Q6IFwiXFxmMGQyXCI7XG5cbiRwaW50ZXJlc3Qtc2lnbjogXCJcXGYwZDNcIjtcblxuJGdvb2dsZS1wbHVzLXNpZ246IFwiXFxmMGQ0XCI7XG5cbiRnb29nbGUtcGx1czogXCJcXGYwZDVcIjtcblxuJG1vbmV5OiBcIlxcZjBkNlwiO1xuXG4kY2FyZXQtZG93bjogXCJcXGYwZDdcIjtcblxuJGNhcmV0LXVwOiBcIlxcZjBkOFwiO1xuXG4kY2FyZXQtbGVmdDogXCJcXGYwZDlcIjtcblxuJGNhcmV0LXJpZ2h0OiBcIlxcZjBkYVwiO1xuXG4kY29sdW1uczogXCJcXGYwZGJcIjtcblxuJHNvcnQ6IFwiXFxmMGRjXCI7XG5cbiRzb3J0LWRvd246IFwiXFxmMGRkXCI7XG5cbiRzb3J0LXVwOiBcIlxcZjBkZVwiO1xuXG4kZW52ZWxvcGU6IFwiXFxmMGUwXCI7XG5cbiRsaW5rZWRpbjogXCJcXGYwZTFcIjtcblxuJHVuZG86IFwiXFxmMGUyXCI7XG5cbiRsZWdhbDogXCJcXGYwZTNcIjtcblxuJGRhc2hib2FyZDogXCJcXGYwZTRcIjtcblxuJGNvbW1lbnQtYWx0OiBcIlxcZjBlNVwiO1xuXG4kY29tbWVudHMtYWx0OiBcIlxcZjBlNlwiO1xuXG4kYm9sdDogXCJcXGYwZTdcIjtcblxuJHNpdGVtYXA6IFwiXFxmMGU4XCI7XG5cbiR1bWJyZWxsYTogXCJcXGYwZTlcIjtcblxuJHBhc3RlOiBcIlxcZjBlYVwiO1xuXG4kbGlnaHRidWxiOiBcIlxcZjBlYlwiO1xuXG4kZXhjaGFuZ2U6IFwiXFxmMGVjXCI7XG5cbiRjbG91ZC1kb3dubG9hZDogXCJcXGYwZWRcIjtcblxuJGNsb3VkLXVwbG9hZDogXCJcXGYwZWVcIjtcblxuJHVzZXItbWQ6IFwiXFxmMGYwXCI7XG5cbiRzdGV0aG9zY29wZTogXCJcXGYwZjFcIjtcblxuJHN1aXRjYXNlOiBcIlxcZjBmMlwiO1xuXG4kYmVsbC1hbHQ6IFwiXFxmMGYzXCI7XG5cbiRjb2ZmZWU6IFwiXFxmMGY0XCI7XG5cbiRmb29kOiBcIlxcZjBmNVwiO1xuXG4kZmlsZS10ZXh0LWFsdDogXCJcXGYwZjZcIjtcblxuJGJ1aWxkaW5nOiBcIlxcZjBmN1wiO1xuXG4kaG9zcGl0YWw6IFwiXFxmMGY4XCI7XG5cbiRhbWJ1bGFuY2U6IFwiXFxmMGY5XCI7XG5cbiRtZWRraXQ6IFwiXFxmMGZhXCI7XG5cbiRmaWdodGVyLWpldDogXCJcXGYwZmJcIjtcblxuJGJlZXI6IFwiXFxmMGZjXCI7XG5cbiRoLXNpZ246IFwiXFxmMGZkXCI7XG5cbiRwbHVzLXNpZ24tYWx0OiBcIlxcZjBmZVwiO1xuXG4kZG91YmxlLWFuZ2xlLWxlZnQ6IFwiXFxmMTAwXCI7XG5cbiRkb3VibGUtYW5nbGUtcmlnaHQ6IFwiXFxmMTAxXCI7XG5cbiRkb3VibGUtYW5nbGUtdXA6IFwiXFxmMTAyXCI7XG5cbiRkb3VibGUtYW5nbGUtZG93bjogXCJcXGYxMDNcIjtcblxuJGFuZ2xlLWxlZnQ6IFwiXFxmMTA0XCI7XG5cbiRhbmdsZS1yaWdodDogXCJcXGYxMDVcIjtcblxuJGFuZ2xlLXVwOiBcIlxcZjEwNlwiO1xuXG4kYW5nbGUtZG93bjogXCJcXGYxMDdcIjtcblxuJGRlc2t0b3A6IFwiXFxmMTA4XCI7XG5cbiRsYXB0b3A6IFwiXFxmMTA5XCI7XG5cbiR0YWJsZXQ6IFwiXFxmMTBhXCI7XG5cbiRtb2JpbGUtcGhvbmU6IFwiXFxmMTBiXCI7XG5cbiRjaXJjbGUtYmxhbms6IFwiXFxmMTBjXCI7XG5cbiRxdW90ZS1sZWZ0OiBcIlxcZjEwZFwiO1xuXG4kcXVvdGUtcmlnaHQ6IFwiXFxmMTBlXCI7XG5cbiRzcGlubmVyOiBcIlxcZjExMFwiO1xuXG4kY2lyY2xlOiBcIlxcZjExMVwiO1xuXG4kcmVwbHk6IFwiXFxmMTEyXCI7XG5cbiRnaXRodWItYWx0OiBcIlxcZjExM1wiO1xuXG4kZm9sZGVyLWNsb3NlLWFsdDogXCJcXGYxMTRcIjtcblxuJGZvbGRlci1vcGVuLWFsdDogXCJcXGYxMTVcIjtcblxuJGV4cGFuZC1hbHQ6IFwiXFxmMTE2XCI7XG5cbiRjb2xsYXBzZS1hbHQ6IFwiXFxmMTE3XCI7XG5cbiRzbWlsZTogXCJcXGYxMThcIjtcblxuJGZyb3duOiBcIlxcZjExOVwiO1xuXG4kbWVoOiBcIlxcZjExYVwiO1xuXG4kZ2FtZXBhZDogXCJcXGYxMWJcIjtcblxuJGtleWJvYXJkOiBcIlxcZjExY1wiO1xuXG4kZmxhZy1hbHQ6IFwiXFxmMTFkXCI7XG5cbiRmbGFnLWNoZWNrZXJlZDogXCJcXGYxMWVcIjtcblxuJHRlcm1pbmFsOiBcIlxcZjEyMFwiO1xuXG4kY29kZTogXCJcXGYxMjFcIjtcblxuJHJlcGx5LWFsbDogXCJcXGYxMjJcIjtcblxuJG1haWwtcmVwbHktYWxsOiBcIlxcZjEyMlwiO1xuXG4kc3Rhci1oYWxmLWVtcHR5OiBcIlxcZjEyM1wiO1xuXG4kbG9jYXRpb24tYXJyb3c6IFwiXFxmMTI0XCI7XG5cbiRjcm9wOiBcIlxcZjEyNVwiO1xuXG4kY29kZS1mb3JrOiBcIlxcZjEyNlwiO1xuXG4kdW5saW5rOiBcIlxcZjEyN1wiO1xuXG4kcXVlc3Rpb246IFwiXFxmMTI4XCI7XG5cbiRpbmZvOiBcIlxcZjEyOVwiO1xuXG4kZXhjbGFtYXRpb246IFwiXFxmMTJhXCI7XG5cbiRzdXBlcnNjcmlwdDogXCJcXGYxMmJcIjtcblxuJHN1YnNjcmlwdDogXCJcXGYxMmNcIjtcblxuJGVyYXNlcjogXCJcXGYxMmRcIjtcblxuJHB1enpsZS1waWVjZTogXCJcXGYxMmVcIjtcblxuJG1pY3JvcGhvbmU6IFwiXFxmMTMwXCI7XG5cbiRtaWNyb3Bob25lLW9mZjogXCJcXGYxMzFcIjtcblxuJHNoaWVsZDogXCJcXGYxMzJcIjtcblxuJGNhbGVuZGFyLWVtcHR5OiBcIlxcZjEzM1wiO1xuXG4kZmlyZS1leHRpbmd1aXNoZXI6IFwiXFxmMTM0XCI7XG5cbiRyb2NrZXQ6IFwiXFxmMTM1XCI7XG5cbiRtYXhjZG46IFwiXFxmMTM2XCI7XG5cbiRjaGV2cm9uLXNpZ24tbGVmdDogXCJcXGYxMzdcIjtcblxuJGNoZXZyb24tc2lnbi1yaWdodDogXCJcXGYxMzhcIjtcblxuJGNoZXZyb24tc2lnbi11cDogXCJcXGYxMzlcIjtcblxuJGNoZXZyb24tc2lnbi1kb3duOiBcIlxcZjEzYVwiO1xuXG4kaHRtbDU6IFwiXFxmMTNiXCI7XG5cbiRjc3MzOiBcIlxcZjEzY1wiO1xuXG4kYW5jaG9yOiBcIlxcZjEzZFwiO1xuXG4kdW5sb2NrLWFsdDogXCJcXGYxM2VcIjtcblxuJGJ1bGxzZXllOiBcIlxcZjE0MFwiO1xuXG4kZWxsaXBzaXMtaG9yaXpvbnRhbDogXCJcXGYxNDFcIjtcblxuJGVsbGlwc2lzLXZlcnRpY2FsOiBcIlxcZjE0MlwiO1xuXG4kcnNzLXNpZ246IFwiXFxmMTQzXCI7XG5cbiRwbGF5LXNpZ246IFwiXFxmMTQ0XCI7XG5cbiR0aWNrZXQ6IFwiXFxmMTQ1XCI7XG5cbiRtaW51cy1zaWduLWFsdDogXCJcXGYxNDZcIjtcblxuJGNoZWNrLW1pbnVzOiBcIlxcZjE0N1wiO1xuXG4kbGV2ZWwtdXA6IFwiXFxmMTQ4XCI7XG5cbiRsZXZlbC1kb3duOiBcIlxcZjE0OVwiO1xuXG4kY2hlY2stc2lnbjogXCJcXGYxNGFcIjtcblxuJGVkaXQtc2lnbjogXCJcXGYxNGJcIjtcblxuJGV4dGVybmFsLWxpbmstc2lnbjogXCJcXGYxNGNcIjtcblxuJHNoYXJlLXNpZ246IFwiXFxmMTRkXCI7XG5cbiRjb21wYXNzOiBcIlxcZjE0ZVwiO1xuXG4kY29sbGFwc2U6IFwiXFxmMTUwXCI7XG5cbiRjb2xsYXBzZS10b3A6IFwiXFxmMTUxXCI7XG5cbiRleHBhbmQ6IFwiXFxmMTUyXCI7XG5cbiRldXI6IFwiXFxmMTUzXCI7XG5cbiRnYnA6IFwiXFxmMTU0XCI7XG5cbiR1c2Q6IFwiXFxmMTU1XCI7XG5cbiRpbnI6IFwiXFxmMTU2XCI7XG5cbiRqcHk6IFwiXFxmMTU3XCI7XG5cbiRjbnk6IFwiXFxmMTU4XCI7XG5cbiRrcnc6IFwiXFxmMTU5XCI7XG5cbiRidGM6IFwiXFxmMTVhXCI7XG5cbiRmaWxlOiBcIlxcZjE1YlwiO1xuXG4kZmlsZS10ZXh0OiBcIlxcZjE1Y1wiO1xuXG4kc29ydC1ieS1hbHBoYWJldDogXCJcXGYxNWRcIjtcblxuJHNvcnQtYnktYWxwaGFiZXQtYWx0OiBcIlxcZjE1ZVwiO1xuXG4kc29ydC1ieS1hdHRyaWJ1dGVzOiBcIlxcZjE2MFwiO1xuXG4kc29ydC1ieS1hdHRyaWJ1dGVzLWFsdDogXCJcXGYxNjFcIjtcblxuJHNvcnQtYnktb3JkZXI6IFwiXFxmMTYyXCI7XG5cbiRzb3J0LWJ5LW9yZGVyLWFsdDogXCJcXGYxNjNcIjtcblxuJHRodW1icy11cDogXCJcXGYxNjRcIjtcblxuJHRodW1icy1kb3duOiBcIlxcZjE2NVwiO1xuXG4keW91dHViZS1zaWduOiBcIlxcZjE2NlwiO1xuXG4keW91dHViZTogXCJcXGYxNjdcIjtcblxuJHhpbmc6IFwiXFxmMTY4XCI7XG5cbiR4aW5nLXNpZ246IFwiXFxmMTY5XCI7XG5cbiR5b3V0dWJlLXBsYXk6IFwiXFxmMTZhXCI7XG5cbiRkcm9wYm94OiBcIlxcZjE2YlwiO1xuXG4kc3RhY2tleGNoYW5nZTogXCJcXGYxNmNcIjtcblxuJGluc3RhZ3JhbTogXCJcXGYxNmRcIjtcblxuJGZsaWNrcjogXCJcXGYxNmVcIjtcblxuJGFkbjogXCJcXGYxNzBcIjtcblxuJGJpdGJ1Y2tldDogXCJcXGYxNzFcIjtcblxuJGJpdGJ1Y2tldC1zaWduOiBcIlxcZjE3MlwiO1xuXG4kdHVtYmxyOiBcIlxcZjE3M1wiO1xuXG4kdHVtYmxyLXNpZ246IFwiXFxmMTc0XCI7XG5cbiRsb25nLWFycm93LWRvd246IFwiXFxmMTc1XCI7XG5cbiRsb25nLWFycm93LXVwOiBcIlxcZjE3NlwiO1xuXG4kbG9uZy1hcnJvdy1sZWZ0OiBcIlxcZjE3N1wiO1xuXG4kbG9uZy1hcnJvdy1yaWdodDogXCJcXGYxNzhcIjtcblxuJGFwcGxlOiBcIlxcZjE3OVwiO1xuXG4kd2luZG93czogXCJcXGYxN2FcIjtcblxuJGFuZHJvaWQ6IFwiXFxmMTdiXCI7XG5cbiRsaW51eDogXCJcXGYxN2NcIjtcblxuJGRyaWJiYmxlOiBcIlxcZjE3ZFwiO1xuXG4kc2t5cGU6IFwiXFxmMTdlXCI7XG5cbiRmb3Vyc3F1YXJlOiBcIlxcZjE4MFwiO1xuXG4kdHJlbGxvOiBcIlxcZjE4MVwiO1xuXG4kZmVtYWxlOiBcIlxcZjE4MlwiO1xuXG4kbWFsZTogXCJcXGYxODNcIjtcblxuJGdpdHRpcDogXCJcXGYxODRcIjtcblxuJHN1bjogXCJcXGYxODVcIjtcblxuJG1vb246IFwiXFxmMTg2XCI7XG5cbiRhcmNoaXZlOiBcIlxcZjE4N1wiO1xuXG4kYnVnOiBcIlxcZjE4OFwiO1xuXG4kdms6IFwiXFxmMTg5XCI7XG5cbiR3ZWlibzogXCJcXGYxOGFcIjtcblxuJHJlbnJlbjogXCJcXGYxOGJcIjtcblxuIiwiLy8gTWFwIG9mIGNvbXBhc3MgZXh0ZW5zaW9ucyB0aGF0IGFyZSBsb2FkZWQuIFRoZSB2YWx1ZSB3aWxsIGVpdGhlciBiZVxuLy8gdGhlIHZlcnNpb24gb2YgdGhlIGV4dGVuc2lvbiBvciBgdHJ1ZWAgaWYgdGhlIHZlcnNpb24gaXMgdW5rbm93bi5cbiRjb21wYXNzLWV4dGVuc2lvbnM6IGNvbXBhc3MtZXh0ZW5zaW9ucygpICFkZWZhdWx0O1xuXG4vLyBUaGUgbGlzdCBvZiBicm93c2VycyB5b3Ugd2FudCB0byBzdXBwb3J0LlxuLy8gRGVmYXVsdHMgdG8gYWxsLlxuJHN1cHBvcnRlZC1icm93c2VyczogYnJvd3NlcnMoKSAhZGVmYXVsdDtcblxuLy8gVGhlIGJyb3dzZXIgdXNhZ2UgdGhyZXNob2xkIGZvciBmZWF0dXJlcyB0aGF0IGdyYWNlZnVsbHkgZGVncmFkZVxuLy8gRGVmYXVsdHMgdG8gMSB1c2VyIGluIDEsMDAwLlxuJGdyYWNlZnVsLXVzYWdlLXRocmVzaG9sZDogMC4xICFkZWZhdWx0O1xuXG4vLyBUaGUgYnJvd3NlciB1c2FnZSB0aHJlc2hvbGQgZm9yIGZlYXR1cmVzIHRoYXQgY2Fubm90IGRlZ3JhZGUgZ3JhY2VmdWxseVxuLy8gRGVmYXVsdHMgdG8gMSB1c2VyIGluIDEwLDAwMC5cbiRjcml0aWNhbC11c2FnZS10aHJlc2hvbGQ6IDAuMDEgIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGlzIHRvIHRydWUgdG8gZ2VuZXJhdGUgY29tbWVudHMgdGhhdCB3aWxsIGV4cGxhaW4gd2h5IGEgcHJlZml4IHdhcyBpbmNsdWRlZCBvciBvbWl0dGVkLlxuJGRlYnVnLWJyb3dzZXItc3VwcG9ydDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIE1pbmltdW0gYnJvd3NlciB2ZXJzaW9ucyB0aGF0IG11c3QgYmUgc3VwcG9ydGVkLlxuLy8gVGhlIGtleXMgb2YgdGhpcyBtYXAgYXJlIGFueSB2YWxpZCBicm93c2VyIGFjY29yZGluZyB0byBgYnJvd3NlcnMoKWAuXG4vLyBUaGUgdmFsdWVzIG9mIHRoaXMgbWFwIGFyZSB0aGUgbWluIHZlcnNpb24gdGhhdCBpcyB2YWxpZCBmb3IgdGhhdCBicm93c2VyXG4vLyBhY2NvcmRpbmcgdG8gYGJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIpYFxuJGJyb3dzZXItbWluaW11bS12ZXJzaW9uczogKFxuICAnY2hyb21lJzogIG51bGwsXG4gICdmaXJlZm94JzogbnVsbCxcbiAgJ2llJzogICAgICBudWxsLFxuICAnc2FmYXJpJzogIG51bGwsXG4gICdvcGVyYSc6ICAgbnVsbFxuKSAhZGVmYXVsdDtcblxuXG4vLyBAcHJpdmF0ZVxuJGRlZmF1bHQtY2FwYWJpbGl0eS1vcHRpb25zOiAoXG4gIChmdWxsLXN1cHBvcnQ6IHRydWUpLFxuICAocGFydGlhbC1zdXBwb3J0OiB0cnVlKVxuKTtcblxuLy8gV2hlbiBhIHByZWZpeCBpbiBpbiBjb250ZXh0LCBidXQgdGhlcmUgaXMgbm8gY3VycmVudCBwcmVmaXhcbi8vIFRoYXQgY29udGV4dCBpcyByZWNvcmRlZCBoZXJlIHNvIG90aGVyIHByZWZpeGVzIGNhbiBiZSBhdm9pZGVkLlxuJHByZWZpeC1jb250ZXh0OiBudWxsO1xuXG4vLyBXaGVuIGEgcHJlZml4IGlzIGluIGEgc2VsZWN0b3Igb3IgZGlyZWN0aXZlIHNjb3BlLCB0aGlzIGlzIHNldCB0byB0aGVcbi8vIGN1cnJlbnQgcHJlZml4IHZhbHVlLiAgV2hlbiBgbnVsbGAsIGVpdGhlciB0aGVyZSBpcyBubyBwcmVmaXggaW4gc2NvcGVcbi8vIG9yIHRoZSBvZmZpY2lhbCBwcmVmaXggaXMgYmVpbmcgcmVuZGVyZWQuIFRoZSBgJHByZWZpeC1jb250ZXh0YFxuLy8gdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gbWFrZSB0aGF0IGRpc3RpbmN0aW9uLlxuJGN1cnJlbnQtcHJlZml4OiBudWxsO1xuXG4vLyBXaGVuIGluIGEgY29udGV4dCB0aGF0IG9ubHkgZXhpc3RzIGluIGEgcGFydGljdWxhciB2ZXJzaW9uXG4vLyB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byB0aG9zZSB2ZXJzaW9ucy5cbiRjdXJyZW50LWJyb3dzZXItdmVyc2lvbnM6ICgpO1xuXG4vLyBUaGUgbGVnYWN5IHN1cHBvcnQgQ1NTIDIuMSBTZWxlY3RvcnMuXG4vLyBEZWZhdWx0cyB0byB0aGUgJGNyaXRpY2FsLXVzYWdlLXRocmVzaG9sZC5cbiRjc3Mtc2VsMi1zdXBwb3J0LXRocmVzaG9sZDogJGNyaXRpY2FsLXVzYWdlLXRocmVzaG9sZCAhZGVmYXVsdDtcblxuLy8gQ2hlY2sgaWYgdGhlIGJyb3dzZXIgaXMgaW4gc2NvcGUgZ2l2ZW4gdGhlIGJyb3dzZXIgc3VwcG9ydCBhbmQgY3VycmVudCBwcmVmaXggbWluaW11bXMuXG5AZnVuY3Rpb24gYnJvd3Nlci1vdXQtb2Ytc2NvcGUoJGJyb3dzZXIsICR2ZXJzaW9uOiBudWxsKSB7XG4gIEBpZiBub3QgaW5kZXgoJHN1cHBvcnRlZC1icm93c2VycywgJGJyb3dzZXIpIHtcbiAgICBAaWYgJGRlYnVnLWJyb3dzZXItc3VwcG9ydCB7XG4gICAgICBAcmV0dXJuIFwiI3skYnJvd3Nlcn0gaXMgbm90IGxpc3RlZCBhcyBhIHN1cHBvcnRlZCBicm93c2VyLlwiXG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9IEBlbHNlIGlmIG5vdCAoJGN1cnJlbnQtcHJlZml4ID09IG51bGwgb3IgJGN1cnJlbnQtcHJlZml4ID09IGJyb3dzZXItcHJlZml4KCRicm93c2VyKSkge1xuICAgIEBpZiAkZGVidWctYnJvd3Nlci1zdXBwb3J0IHtcbiAgICAgIEByZXR1cm4gXCIjeyRicm93c2VyfSAjeyR2ZXJzaW9ufSBpcyBpbmNvbXBhdGlibGUgd2l0aCAjeyRjdXJyZW50LXByZWZpeH0uXCJcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgJGN1cnJlbnQtcmFuZ2U6IG1hcC1nZXQoJGN1cnJlbnQtYnJvd3Nlci12ZXJzaW9ucywgJGJyb3dzZXIpO1xuICAkY3VycmVudC1taW46IGlmKCRjdXJyZW50LXJhbmdlLCBudGgoJGN1cnJlbnQtcmFuZ2UsIDEpLCBudWxsKTtcbiAgJGN1cnJlbnQtbWF4OiBpZigkY3VycmVudC1yYW5nZSwgbnRoKCRjdXJyZW50LXJhbmdlLCAyKSwgbnVsbCk7XG4gIEBpZiBub3QgKCR2ZXJzaW9uIGFuZCAkY3VycmVudC1tYXgpIHtcbiAgICAvLyBXZSBkb24ndCBoYXZlIGFueSB2ZXJzaW9ucyB0byBjb21wYXJlXG4gICAgQHJldHVybiBmYWxzZTtcbiAgfSBAZWxzZSB7XG4gICAgLy8gSWYgdGhlIHZlcnNpb24gaXMgbGVzcyB0aGFuIHRoZSBjdXJyZW50IG1pbiwgaXQgaXMgbm90IHN1cHBvcnRlZFxuICAgICR0b28tb2xkOiBjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICR2ZXJzaW9uLCAkY3VycmVudC1taW4pIDwgMDtcbiAgICAkdG9vLW5ldzogY29tcGFyZS1icm93c2VyLXZlcnNpb25zKCRicm93c2VyLCAkdmVyc2lvbiwgJGN1cnJlbnQtbWF4KSA+IDA7XG4gICAgQGlmICR0b28tb2xkIG9yICR0b28tbmV3IHtcbiAgICAgIEBpZiAkZGVidWctYnJvd3Nlci1zdXBwb3J0IHtcbiAgICAgICAgQHJldHVybiBcIlRoZSBjdXJyZW50IHNjb3BlIG9ubHkgd29ya3Mgd2l0aCAje2Rpc3BsYXktYnJvd3Nlci1yYW5nZSgkYnJvd3NlciwgJGN1cnJlbnQtbWluLCAkY3VycmVudC1tYXgpfS5cIjtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG4vLyBDaGVjayB3aGV0aGVyIHRoZSBicm93c2VyIGlzIHN1cHBvcnRlZCBhY2NvcmRpbmcgdG8gdGhlIHN1cHBvcnRlZCBicm93c2Vycyxcbi8vIGRlY2xhcmVkIG1pbmltdW0gc3VwcG9ydCBhbmQgdXNhZ2UgdGhyZXNob2xkcy5cbkBmdW5jdGlvbiBzdXBwb3J0LWxlZ2FjeS1icm93c2VyKCRicm93c2VyLCAkbWluLXZlcnNpb24sICRtYXgtdmVyc2lvbjogbnVsbCwgJHRocmVzaG9sZDogJGNyaXRpY2FsLXVzYWdlLXRocmVzaG9sZCkge1xuICBAaWYgbm90IGluZGV4KCRzdXBwb3J0ZWQtYnJvd3NlcnMsICRicm93c2VyKSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBDaGVjayBhZ2Fpc3QgdXNhZ2Ugc3RhdHMgYW5kIGRlY2xhcmVkIG1pbmltdW1zXG4gICRtaW4tcmVxdWlyZWQtdmVyc2lvbjogbWFwLWdldCgkYnJvd3Nlci1taW5pbXVtLXZlcnNpb25zLCAkYnJvd3Nlcik7XG4gICR1c2FnZTogaWYoJG1heC12ZXJzaW9uLFxuICAgICAgICAgICAgIG9taXR0ZWQtdXNhZ2UoJGJyb3dzZXIsICRtaW4tdmVyc2lvbiwgJG1heC12ZXJzaW9uKSxcbiAgICAgICAgICAgICBvbWl0dGVkLXVzYWdlKCRicm93c2VyLCAkbWluLXZlcnNpb24pKTtcbiAgQHJldHVybiAkdXNhZ2UgPiAkdGhyZXNob2xkIG9yXG4gICAgICAgICAgKCRtaW4tcmVxdWlyZWQtdmVyc2lvbiBhbmRcbiAgICAgICAgICAgY29tcGFyZS1icm93c2VyLXZlcnNpb25zKCRicm93c2VyLCAkbWF4LXZlcnNpb24gb3IgJG1pbi12ZXJzaW9uLCAkbWluLXJlcXVpcmVkLXZlcnNpb24pID49IDApO1xufVxuXG4vLyBJbmNsdWRlIGNvbnRlbnQgZm9yIGEgbGVnYWN5IGJyb3dzZXJcbi8vIFZlcnNpb24gY2FuIGJlIGEgc2luZ2xlIHZlcnNpb24gc3RyaW5nIG9yIGEgbGlzdCBvZiB2ZXJzaW9ucyBvcmRlcmVkIGZyb20gb2xkZXN0IHRvIG5ld2VzdC5cbkBtaXhpbiBmb3ItbGVnYWN5LWJyb3dzZXIoJGJyb3dzZXIsICRtaW4tdmVyc2lvbiwgJG1heC12ZXJzaW9uOiAkbWluLXZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICR0aHJlc2hvbGQ6ICRjcml0aWNhbC11c2FnZS10aHJlc2hvbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICRyYW5nZXM6ICgkYnJvd3NlcjogJG1pbi12ZXJzaW9uICRtYXgtdmVyc2lvbikpIHtcbiAgQGlmIG5vdCBicm93c2VyLW91dC1vZi1zY29wZSgkYnJvd3NlciwgJG1heC12ZXJzaW9uKSBhbmRcbiAgICAgIHN1cHBvcnQtbGVnYWN5LWJyb3dzZXIoJGJyb3dzZXIsICRtaW4tdmVyc2lvbiwgJG1heC12ZXJzaW9uLCAkdGhyZXNob2xkKVxuICB7XG4gICAgQGlmICRkZWJ1Zy1icm93c2VyLXN1cHBvcnQge1xuICAgICAgLyogQ29udGVudCBmb3IgI3tkaXNwbGF5LWJyb3dzZXItcmFuZ2UoJGJyb3dzZXIsICRtaW4tdmVyc2lvbiwgJG1heC12ZXJzaW9uKX0uXG4gICAgICBNaW4gdmVyc2lvbjogI3ttYXAtZ2V0KCRicm93c2VyLW1pbmltdW0tdmVyc2lvbnMsICRicm93c2VyKSBvciB1bnNwZWNpZmllZH0uXG4gICAgICBVc2VyIHRocmVzaG9sZCB0byBrZWVwOiAjeyR0aHJlc2hvbGR9JS4gSWYgI3tkaXNwbGF5LWJyb3dzZXItcmFuZ2UoJGJyb3dzZXIsICRtaW4tdmVyc2lvbiwgJG1heC12ZXJzaW9uKX0gYXJlIG9taXR0ZWQ6ICN7b21pdHRlZC11c2FnZSgkYnJvd3NlciwgJG1pbi12ZXJzaW9uLCAkbWF4LXZlcnNpb24pfSUuICovXG4gICAgfVxuICAgIEBpbmNsdWRlIHdpdGgtYnJvd3Nlci1yYW5nZXMoaW50ZXJzZWN0LWJyb3dzZXItcmFuZ2VzKCRjdXJyZW50LWJyb3dzZXItdmVyc2lvbnMsICRyYW5nZXMpKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGRlYnVnLWJyb3dzZXItc3VwcG9ydCBhbmQgYnJvd3Nlci1vdXQtb2Ytc2NvcGUoJGJyb3dzZXIsICRtYXgtdmVyc2lvbikge1xuICAgIC8qIENvbnRlbnQgZm9yICN7ZGlzcGxheS1icm93c2VyLXJhbmdlKCRicm93c2VyLCAkbWluLXZlcnNpb24sICRtYXgtdmVyc2lvbil9IG9taXR0ZWQuXG4gICAgICAgTm90IGFsbG93ZWQgaW4gdGhlIGN1cnJlbnQgc2NvcGU6ICN7YnJvd3Nlci1vdXQtb2Ytc2NvcGUoJGJyb3dzZXIsICRtYXgtdmVyc2lvbil9ICovXG4gIH0gQGVsc2UgaWYgJGRlYnVnLWJyb3dzZXItc3VwcG9ydCBhbmQgbm90XG4gICAgICAgICAgICAgc3VwcG9ydC1sZWdhY3ktYnJvd3NlcigkYnJvd3NlciwgJG1pbi12ZXJzaW9uLCAkbWF4LXZlcnNpb24sICR0aHJlc2hvbGQpIHtcbiAgICBAaWYgb21pdHRlZC11c2FnZSgkYnJvd3NlciwgJG1pbi12ZXJzaW9uLCAkbWF4LXZlcnNpb24pID4gJHRocmVzaG9sZCB7XG4gICAgICAvKiBDb250ZW50IGZvciAje2Rpc3BsYXktYnJvd3Nlci1yYW5nZSgkYnJvd3NlciwgJG1pbi12ZXJzaW9uLCAkbWF4LXZlcnNpb24pfSBvbWl0dGVkLlxuICAgICAgICAgVXNlciB0aHJlc2hvbGQgdG8ga2VlcDogI3skdGhyZXNob2xkfSUuIElmICN7ZGlzcGxheS1icm93c2VyLXJhbmdlKCRicm93c2VyLCAkbWluLXZlcnNpb24sICRtYXgtdmVyc2lvbil9IGFuZCBiZWxvdyBhcmUgb21pdHRlZDogI3tvbWl0dGVkLXVzYWdlKCRicm93c2VyLCAkbWluLXZlcnNpb24sICRtYXgtdmVyc2lvbil9JS4gKi9cbiAgICB9IEBlbHNlIHtcbiAgICAgIC8qIENvbnRlbnQgZm9yICN7ZGlzcGxheS1icm93c2VyLXJhbmdlKCRicm93c2VyLCAkbWluLXZlcnNpb24sICRtYXgtdmVyc2lvbil9IG9taXR0ZWQuXG4gICAgICAgICBNaW5pbXVtIHN1cHBvcnQgaXMgI3ttYXAtZ2V0KCRicm93c2VyLW1pbmltdW0tdmVyc2lvbnMsICRicm93c2VyKX0uICovXG4gICAgfVxuICB9XG59XG5cbkBmdW5jdGlvbiBkaXNwbGF5LWJyb3dzZXItcmFuZ2UoJGJyb3dzZXIsICRtaW4tdmVyc2lvbiwgJG1heC12ZXJzaW9uOiAkbWluLXZlcnNpb24pIHtcbiAgQHJldHVybiBcIiN7dW5xdW90ZSgkYnJvd3Nlcil9ICN7dW5xdW90ZSgkbWluLXZlcnNpb24pfSN7aWYoJG1heC12ZXJzaW9uICE9ICRtaW4tdmVyc2lvbiwgdW5xdW90ZSgnIC0nKSB1bnF1b3RlKCRtYXgtdmVyc2lvbiksIG51bGwpfVwiO1xufVxuXG5cbi8vIFJlbmRlcnMgdGhlIGNvbnRlbnQgb25jZSBpZiBhbnkgb2YgdGhlIGxlZ2FjeSBicm93c2VycyBhcmUgc3VwcG9ydGVkLlxuLy8gJGJyb3dzZXJzIGlzIGEgbWFwIG9mIGJyb3dzZXIgbmFtZSB0byB2ZXJzaW9uIHJhbmdlc1xuQG1peGluIGZvci1sZWdhY3ktYnJvd3NlcnMoJGJyb3dzZXJzLCAkdGhyZXNob2xkOiAkY3JpdGljYWwtdXNhZ2UtdGhyZXNob2xkKSB7XG4gICRyZW5kZXJlZDogZmFsc2U7XG4gIEBlYWNoICRicm93c2VyLCAkcmFuZ2UgaW4gJGJyb3dzZXJzIHtcbiAgICBAaWYgbm90ICRyZW5kZXJlZCB7XG4gICAgICBAaW5jbHVkZSBmb3ItbGVnYWN5LWJyb3dzZXIoJGJyb3dzZXIsICRyYW5nZS4uLiwgJHRocmVzaG9sZDogJHRocmVzaG9sZCwgJHJhbmdlczogJGJyb3dzZXJzKSB7XG4gICAgICAgICRyZW5kZXJlZDogdHJ1ZTtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIElmIHRoZXJlJ3MgYSBwcmVmaXggY29udGV4dCBpbiBzY29wZSwgdGhpcyB3aWxsIG9ubHkgb3V0cHV0IHRoZSBjb250ZW50IGlmIHRoZSBwcmVmaXggbWF0Y2hlcy5cbi8vIE90aGVyd2lzZSwgc2V0cyB0aGUgY3VycmVudCBwcmVmaXggc2NvcGUgYW5kIG91dHB1dHMgdGhlIGNvbnRlbnQuXG5AbWl4aW4gd2l0aC1wcmVmaXgoJHByZWZpeCkge1xuICBAaWYgJGN1cnJlbnQtcHJlZml4IG9yICRwcmVmaXgtY29udGV4dCB7XG4gICAgQGlmICRjdXJyZW50LXByZWZpeCA9PSAkcHJlZml4IG9yICRwcmVmaXgtY29udGV4dCA9PSAkcHJlZml4IHtcbiAgICAgIEBpZiAkZGVidWctYnJvd3Nlci1zdXBwb3J0IHtcbiAgICAgICAgQGlmICRwcmVmaXgge1xuICAgICAgICAgIC8qIGNvbnRlbnQgZm9yICN7JHByZWZpeH0gYmVjYXVzZSAjeyRjdXJyZW50LXByZWZpeCBvciAkcHJlZml4LWNvbnRleHR9IGlzIGFscmVhZHkgaW4gc2NvcGUuICovXG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIC8qIHVucHJlZml4ZWQgY29udGVudC4gI3skY3VycmVudC1wcmVmaXggb3IgJHByZWZpeC1jb250ZXh0fSBpcyBhbHJlYWR5IGluIHNjb3BlLiAqL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkb2xkLXByZWZpeC1jb250ZXh0OiAkcHJlZml4LWNvbnRleHQ7XG4gICAgICAkb2xkLXByZWZpeDogJGN1cnJlbnQtcHJlZml4O1xuICAgICAgJHByZWZpeC1jb250ZXh0OiAkcHJlZml4LWNvbnRleHQgb3IgJGN1cnJlbnQtcHJlZml4ICFnbG9iYWw7XG4gICAgICAkY3VycmVudC1wcmVmaXg6ICRwcmVmaXggIWdsb2JhbDtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJHByZWZpeC1jb250ZXh0OiAkb2xkLXByZWZpeC1jb250ZXh0ICFnbG9iYWw7XG4gICAgICAkY3VycmVudC1wcmVmaXg6ICRvbGQtcHJlZml4ICFnbG9iYWw7XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG51bGwge1xuICAgICAgJG9sZC1wcmVmaXgtY29udGV4dDogJHByZWZpeC1jb250ZXh0O1xuICAgICAgJHByZWZpeC1jb250ZXh0OiAkcHJlZml4LWNvbnRleHQgb3IgJGN1cnJlbnQtcHJlZml4ICFnbG9iYWw7XG4gICAgICAkY3VycmVudC1wcmVmaXg6IG51bGwgIWdsb2JhbDtcbiAgICAgIEBpZiAkZGVidWctYnJvd3Nlci1zdXBwb3J0IHtcbiAgICAgICAgLyogQ29udGVudCBmb3Igb2ZmaWNpYWwgc3ludGF4LiBQcmVmaXggY29udGV4dCBpcyBzdGlsbCAjeyRwcmVmaXgtY29udGV4dH0uICovXG4gICAgICB9XG4gICAgICBAY29udGVudDtcbiAgICAgICRjdXJyZW50LXByZWZpeDogJHByZWZpeC1jb250ZXh0ICFnbG9iYWw7XG4gICAgICAkcHJlZml4LWNvbnRleHQ6ICRvbGQtcHJlZml4LWNvbnRleHQgIWdsb2JhbDtcbiAgICB9IEBlbHNlIGlmICRkZWJ1Zy1icm93c2VyLXN1cHBvcnQge1xuICAgICAgLyogT21pdHRpbmcgY29udGVudCBmb3IgI3skcHJlZml4fSBiZWNhdXNlICN7JGN1cnJlbnQtcHJlZml4fSBpcyBhbHJlYWR5IGluIHNjb3BlLiAqL1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmICRkZWJ1Zy1icm93c2VyLXN1cHBvcnQgYW5kICRwcmVmaXgge1xuICAgICAgLyogQ3JlYXRpbmcgbmV3ICN7JHByZWZpeH0gY29udGV4dC4gKi9cbiAgICB9XG4gICAgJHByZWZpeC1jb250ZXh0OiAkcHJlZml4ICFnbG9iYWw7XG4gICAgJGN1cnJlbnQtcHJlZml4OiAkcHJlZml4ICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gICAgJGN1cnJlbnQtcHJlZml4OiBudWxsICFnbG9iYWw7XG4gICAgJHByZWZpeC1jb250ZXh0OiBudWxsICFnbG9iYWw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHByZWZpeGVzLWZvci1jYXBhYmlsaXR5KCRjYXBhYmlsaXR5LCAkdGhyZXNob2xkLCAkY2FwYWJpbGl0eS1vcHRpb25zOiAkZGVmYXVsdC1jYXBhYmlsaXR5LW9wdGlvbnMpIHtcbiAgJHJlc3VsdDogKCk7XG4gIEBlYWNoICRwcmVmaXggaW4gYnJvd3Nlci1wcmVmaXhlcygkc3VwcG9ydGVkLWJyb3dzZXJzKSB7XG4gICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgKCRwcmVmaXg6IHVzZS1wcmVmaXgoJHByZWZpeCwgJGNhcGFiaWxpdHksICR0aHJlc2hvbGQsICRjYXBhYmlsaXR5LW9wdGlvbnMpKSk7XG4gIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLyBZaWVsZHMgdG8gdGhlIG1peGluIGNvbnRlbnQgb25jZSBmb3IgZWFjaCBwcmVmaXggcmVxdWlyZWQuXG4vLyBUaGUgY3VycmVudCBwcmVmaXggaXMgc2V0IHRvIHRoZSAkY3VycmVudC1wcmVmaXggZ2xvYmFsIGZvciB1c2UgYnkgdGhlIGluY2x1ZGVkIGNvbnRlbnQuXG4vLyBBbHNvIHlpZWxkcyB0byB0aGUgY29udGVudCBvbmNlIHdpdGggJGN1cnJlbnQtcHJlZml4IHNldCB0byBudWxsIGZvciB0aGUgb2ZmaWNpYWwgdmVyc2lvblxuLy8gYXMgbG9uZyBhcyB0aGVyZSdzIG5vdCBhbHJlYWR5IGEgcHJlZml4IGluIHNjb3BlLlxuQG1peGluIHdpdGgtZWFjaC1wcmVmaXgoJGNhcGFiaWxpdHksICR0aHJlc2hvbGQsICRjYXBhYmlsaXR5LW9wdGlvbnM6ICRkZWZhdWx0LWNhcGFiaWxpdHktb3B0aW9ucykge1xuICBAZWFjaCAkcHJlZml4LCAkc2hvdWxkLXVzZS1wcmVmaXggaW4gcHJlZml4ZXMtZm9yLWNhcGFiaWxpdHkoJGNhcGFiaWxpdHksICR0aHJlc2hvbGQsICRjYXBhYmlsaXR5LW9wdGlvbnMpIHtcbiAgICBAaWYgJHNob3VsZC11c2UtcHJlZml4IHtcbiAgICAgIEBpZiAkZGVidWctYnJvd3Nlci1zdXBwb3J0IGFuZCB0eXBlLW9mKCRzaG91bGQtdXNlLXByZWZpeCkgPT0gbGlzdCB7XG4gICAgICAgIC8qIENhcGFiaWxpdHkgI3skY2FwYWJpbGl0eX0gaXMgcHJlZml4ZWQgd2l0aCAjeyRwcmVmaXh9IGJlY2F1c2UgI3skc2hvdWxkLXVzZS1wcmVmaXh9IGlzIHJlcXVpcmVkLiAqL1xuICAgICAgfSBAZWxzZSBpZiAkZGVidWctYnJvd3Nlci1zdXBwb3J0IGFuZCB0eXBlLW9mKCRzaG91bGQtdXNlLXByZWZpeCkgPT0gbnVtYmVyIHtcbiAgICAgICAgLyogQ2FwYWJpbGl0eSAjeyRjYXBhYmlsaXR5fSBpcyBwcmVmaXhlZCB3aXRoICN7JHByZWZpeH0gYmVjYXVzZSAjeyRzaG91bGQtdXNlLXByZWZpeH0lIG9mIHVzZXJzIG5lZWQgaXQgd2hpY2ggaXMgbW9yZSB0aGFuIHRoZSB0aHJlc2hvbGQgb2YgI3skdGhyZXNob2xkfSUuICovXG4gICAgICB9XG4gICAgICBAaW5jbHVkZSB3aXRoLXByZWZpeCgkcHJlZml4KSB7XG4gICAgICAgIEBpbmNsdWRlIHdpdGgtYnJvd3Nlci1yYW5nZXMoJGNhcGFiaWxpdHkpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJGRlYnVnLWJyb3dzZXItc3VwcG9ydCB7XG4gICAgICAvKiBDYXBhYmlsaXR5ICN7JGNhcGFiaWxpdHl9IGlzIG5vdCBwcmVmaXhlZCB3aXRoICN7JHByZWZpeH0gYmVjYXVzZSAje3ByZWZpeC11c2FnZSgkcHJlZml4LCAkY2FwYWJpbGl0eSwgJGNhcGFiaWxpdHktb3B0aW9ucyl9JSBvZiB1c2VycyBhcmUgYWZmZWN0ZWQgd2hpY2ggaXMgbGVzcyB0aGFuIHRoZSB0aHJlc2hvbGQgb2YgI3skdGhyZXNob2xkfS4gKi9cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgd2l0aC1wcmVmaXgobnVsbCkge1xuICAgIEBpbmNsdWRlIHdpdGgtYnJvd3Nlci1yYW5nZXMoJGNhcGFiaWxpdHkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBSZXR1cm5zIHRydWUgaWYgYXQgbGVhc3Qgb25lIGJyb3dzZXItdmVyc2lvbiBwYWlyIGluICRzdWJzZXQtcmFuZ2VzXG4vLyBpcyBhIGhpZ2hlciAob3Igc2FtZSkgdmVyc2lvbiB0aGFuIHRoZSBicm93c2VyLXZlcnNpb24gcGFpcnMgaW5cbi8vICRyYW5nZXMuXG5AZnVuY3Rpb24gaGFzLWJyb3dzZXItc3Vic2V0KCRyYW5nZXMsICRzdWJzZXQtcmFuZ2VzKSB7XG4gICRmb3VuZC1taXNtYXRjaDogZmFsc2U7XG4gIEBlYWNoICRicm93c2VyLCAkc3Vic2V0LXJhbmdlIGluICRzdWJzZXQtcmFuZ2VzIHtcbiAgICAkcmFuZ2U6IG1hcC1nZXQoJHJhbmdlcywgJGJyb3dzZXIpO1xuICAgIEBpZiAkcmFuZ2Uge1xuICAgICAgJG1pbi0xOiBudGgoJHN1YnNldC1yYW5nZSwgMSk7XG4gICAgICAkbWF4LTE6IG50aCgkc3Vic2V0LXJhbmdlLCAyKTtcbiAgICAgICRtaW4tMjogbnRoKCRyYW5nZSwgMSk7XG4gICAgICAkbWF4LTI6IG50aCgkcmFuZ2UsIDIpO1xuICAgICAgQGlmIChjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICRtaW4tMiwgJG1pbi0xKSA8PSAwIGFuZFxuICAgICAgICAgICBjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICRtaW4tMSwgJG1heC0yKSA8PSAwKSBvclxuICAgICAgICAgIChjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICRtaW4tMiwgJG1heC0xKSA8PSAwIGFuZFxuICAgICAgICAgICBjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICRtYXgtMSwgJG1heC0yKSA8PSAwKSBvclxuICAgICAgICAgIChjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICRtaW4tMSwgJG1pbi0yKSA8PSAwIGFuZFxuICAgICAgICAgICBjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICRtYXgtMSwgJG1heC0yKSA+PSAwKSBvclxuICAgICAgICAgIChjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICRtaW4tMSwgJG1pbi0yKSA+PSAwIGFuZFxuICAgICAgICAgICBjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICRtYXgtMSwgJG1heC0yKSA8PSAwKSB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkZm91bmQtbWlzbWF0Y2g6IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiBub3QgJGZvdW5kLW1pc21hdGNoO1xufVxuXG4vLyBXaGVuIHRoZSBzYW1lIGJyb3dzZXIgaXMgaW4gYm90aCBtYXBzLCB0aGVuIHRoZSBtaW5pbXVtIHdpbGwgYmUgc2V0XG4vLyB0byB0aGUgbWF4aW11bSBvZiB0aGUgdHdvIG1pbmltdW0gdmVyc2lvbnMsIGFuZCB0aGUgbWF4aW11bSB3aWxsIGJlXG4vLyBzZXQgdG8gdGhlIG1pbm11bSBvZiB0aGUgdHdvIG1heGltdW0gdmVyc2lvbnMuXG5AZnVuY3Rpb24gaW50ZXJzZWN0LWJyb3dzZXItcmFuZ2VzKCRyYW5nZXMsICRuZXctcmFuZ2VzKSB7XG4gIEBlYWNoICRicm93c2VyLCAkbmV3LXJhbmdlIGluICRuZXctcmFuZ2VzIHtcbiAgICAkb2xkLXJhbmdlOiBtYXAtZ2V0KCRyYW5nZXMsICRicm93c2VyKTtcbiAgICBAaWYgJG9sZC1yYW5nZSB7XG4gICAgICAkb2xkLW1pbjogbnRoKCRvbGQtcmFuZ2UsIDEpO1xuICAgICAgJG9sZC1tYXg6IGlmKGxlbmd0aCgkb2xkLXJhbmdlKSA9PSAxLCAkb2xkLW1pbiwgbnRoKCRvbGQtcmFuZ2UsIDIpKTtcbiAgICAgICRuZXctbWluOiBudGgoJG5ldy1yYW5nZSwgMSk7XG4gICAgICAkbmV3LW1heDogaWYobGVuZ3RoKCRuZXctcmFuZ2UpID09IDEsICRuZXctbWluLCBudGgoJG5ldy1yYW5nZSwgMikpO1xuICAgICAgJG1heGltaW46IGlmKGNvbXBhcmUtYnJvd3Nlci12ZXJzaW9ucygkYnJvd3NlciwgJG9sZC1taW4sICRuZXctbWluKSA+IDAsXG4gICAgICAgICAgICAgICAgICAgJG9sZC1taW4sICRuZXctbWluKTtcbiAgICAgICRtaW5pbWF4OiBpZihjb21wYXJlLWJyb3dzZXItdmVyc2lvbnMoJGJyb3dzZXIsICRvbGQtbWF4LCAkbmV3LW1heCkgPCAwLFxuICAgICAgICAgICAgICAgICAgICRvbGQtbWF4LCAkbmV3LW1heCk7XG4gICAgICAkcmFuZ2VzOiBtYXAtbWVyZ2UoJHJhbmdlcywgKCRicm93c2VyOiAkbWF4aW1pbiAkbWluaW1heCkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJhbmdlczogbWFwLW1lcmdlKCRyYW5nZXMsICgkYnJvd3NlcjogJG5ldy1yYW5nZSkpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRyYW5nZXM7XG59XG5cbi8vIElmIHBhc3NlZCBhIG1hcCwgdGhhdCB3aWxsIGJlIHRoZSBuZXcgYnJvd3NlciByYW5nZXMuXG4vLyBPdGhlcndpc2UgYSByYW5nZSBtYXAgd2lsbCBiZSBjcmVhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiBjYXBhYmlsaXR5IGFuZCBwcmVmaXhcbi8vIHVzaW5nIHRoZSBgYnJvd3Nlci1yYW5nZXMoJGNhcGFiaWxpdHksICRwcmVmaXgpYCBmdW5jdGlvbi5cbi8vXG4vLyBJZiB0aGVyZSBhcmUgY3VycmVudCByYW5nZXMgaW4gc2NvcGUgYW5kIHRoZSBuZXcgcmFuZ2VzIGhhdmUgc29tZSBvdmVybGFwXG4vLyB3aXRoIHRoZSBjdXJyZW50LCBcbi8vXG4vLyBJZiB0aGVyZSBpcyBubyBvdmVybGFwLCB0aGVuIHRoZSBjb250ZW50IHdpbGwgbm90IGJlIHJlbmRlcmVkLlxuQG1peGluIHdpdGgtYnJvd3Nlci1yYW5nZXMoJGNhcGFiaWxpdHksICRwcmVmaXg6ICRjdXJyZW50LXByZWZpeCkge1xuICAkbmV3LXJhbmdlczogbnVsbDtcbiAgQGlmIHR5cGUtb2YoJGNhcGFiaWxpdHkpID09IG1hcCB7XG4gICAgJG5ldy1yYW5nZXM6ICRjYXBhYmlsaXR5O1xuICB9IEBlbHNlIHtcbiAgICAkbmV3LXJhbmdlczogYnJvd3Nlci1yYW5nZXMoJGNhcGFiaWxpdHksICRwcmVmaXgpO1xuICB9XG5cbiAgQGlmIGhhcy1icm93c2VyLXN1YnNldCgkY3VycmVudC1icm93c2VyLXZlcnNpb25zLCAkbmV3LXJhbmdlcykge1xuICAgICRvbGQtcmFuZ2VzOiAkY3VycmVudC1icm93c2VyLXZlcnNpb25zO1xuICAgICRjdXJyZW50LWJyb3dzZXItdmVyc2lvbnM6IGludGVyc2VjdC1icm93c2VyLXJhbmdlcygkb2xkLXJhbmdlcywgJG5ldy1yYW5nZXMpICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gICAgJGN1cnJlbnQtYnJvd3Nlci12ZXJzaW9uczogJG9sZC1yYW5nZXMgIWdsb2JhbDtcbiAgfSBAZWxzZSBpZiAkZGVidWctYnJvd3Nlci1zdXBwb3J0IHtcbiAgICAvKiBFeGNsdWRpbmcgY29udGVudCBiZWNhdXNlICN7aW5zcGVjdCgkbmV3LXJhbmdlcyl9IGlzIG5vdCBpbmNsdWRlZCB3aXRoaW5cbiAgICAgICAje2luc3BlY3QoJGN1cnJlbnQtYnJvd3Nlci12ZXJzaW9ucyl9ICovXG4gIH1cbn1cblxuLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBwcmVmaXhlZCB1c2FnZSBzdGF0cyBmb3IgdGhlIGNhcGFiaWxpdHkgZXhjZWVkIHRoZSB0aHJlc2hvbGRcbi8vIG9yIGlmIHRoZSBtaW5pbXVtIHZlcnNpb24gZm9yIGEgc3VwcG9ydGVkIGJyb3dzZXIgd291bGQgcmVxdWlyZSBhIHByZWZpeCBmb3IgdGhlIGNhcGFiaWxpdHkuXG5AZnVuY3Rpb24gdXNlLXByZWZpeCgkcHJlZml4LCAkY2FwYWJpbGl0eSwgJHRocmVzaG9sZCwgJGNhcGFiaWxpdHktb3B0aW9uczogJGRlZmF1bHQtY2FwYWJpbGl0eS1vcHRpb25zKSB7XG4gICR1c2FnZTogcHJlZml4LXVzYWdlKCRwcmVmaXgsICRjYXBhYmlsaXR5LCAkY2FwYWJpbGl0eS1vcHRpb25zKTtcbiAgQGlmICR1c2FnZSA+ICR0aHJlc2hvbGQge1xuICAgIEByZXR1cm4gJHVzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAZWFjaCAkYnJvd3NlciBpbiBicm93c2VycygkcHJlZml4KSB7XG4gICAgICBAaWYgaW5kZXgoJHN1cHBvcnRlZC1icm93c2VycywgJGJyb3dzZXIpIHtcbiAgICAgICAgJG1pbi12ZXJzaW9uOiBtYXAtZ2V0KCRicm93c2VyLW1pbmltdW0tdmVyc2lvbnMsICRicm93c2VyKTtcbiAgICAgICAgQGlmICRtaW4tdmVyc2lvbiB7XG4gICAgICAgICAgJGFjdHVhbC1wcmVmaXg6IGJyb3dzZXItcmVxdWlyZXMtcHJlZml4KCRicm93c2VyLCAkbWluLXZlcnNpb24sICRjYXBhYmlsaXR5LCAkY2FwYWJpbGl0eS1vcHRpb25zKTtcbiAgICAgICAgICBAaWYgJGFjdHVhbC1wcmVmaXggYW5kICRwcmVmaXggPT0gJGFjdHVhbC1wcmVmaXgge1xuICAgICAgICAgICAgQHJldHVybiAkYnJvd3NlciAkbWluLXZlcnNpb247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbkBmdW5jdGlvbiBwcmVmaXgtaWRlbnRpZmllcigkaWRlbnQsICRwcmVmaXg6ICRjdXJyZW50LXByZWZpeCkge1xuICBAcmV0dXJuIHVucXVvdGUoXCIjeyRwcmVmaXh9I3tpZigkcHJlZml4LCAnLScsIG51bGwpfSN7JGlkZW50fVwiKTtcbn1cblxuLy8gT3V0cHV0IGEgcHJvcGVydHkgYW5kIHZhbHVlIHVzaW5nIHRoZSBjdXJyZW50IHByZWZpeC5cbi8vIEl0IHdpbGwgYmUgdW5wcmVmaXhlZCBpZiAkY3VycmVudC1wcmVmaXggaXMgbnVsbC5cbkBtaXhpbiBwcmVmaXgtcHJvcCgkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeDogJGN1cnJlbnQtcHJlZml4KSB7XG4gICN7cHJlZml4LWlkZW50aWZpZXIoJHByb3BlcnR5LCAkcHJlZml4KX06ICR2YWx1ZTtcbn1cblxuLy8gRW1pdCBhIHNldCBvZiBwcm9wZXJ0aWVzIHdpdGggdGhlIHByZWZpeCBnb3Zlcm5lZCBieSB0aGUgY2FwYWJpbGl0eSBhbmQgdXNhZ2UgdGhyZXNob2xkIGdpdmVuLlxuLy9cbi8vIEV4YW1wbGU6XG4vL1xuLy8gICAgIEBpbmNsdWRlIHByZWZpeGVkLXByb3BlcnRpZXMoY3NzLWFuaW1hdGlvbiwgJGFuaW1hdGlvbi1zdXBwb3J0LXRocmVzaG9sZCxcbi8vICAgICAgIChhbmltYXRpb24tbmFtZTogZm9vLCBhbmltYXRpb24tZHVyYXRpb246IDJzKVxuLy8gICAgICk7XG5AbWl4aW4gcHJlZml4ZWQtcHJvcGVydGllcygkY2FwYWJpbGl0eSwgJHRocmVzaG9sZCwgJHByb3BlcnRpZXMsICRjYXBhYmlsaXR5LW9wdGlvbnM6ICRkZWZhdWx0LWNhcGFiaWxpdHktb3B0aW9ucykge1xuICBAaW5jbHVkZSB3aXRoLWVhY2gtcHJlZml4KCRjYXBhYmlsaXR5LCAkdGhyZXNob2xkLCAkY2FwYWJpbGl0eS1vcHRpb25zKSB7XG4gICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkcHJvcGVydGllcyB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXgtcHJvcCgkcHJvcCwgJHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBAcHJpdmF0ZVxuQGZ1bmN0aW9uIHdhcm4tYWJvdXQtb2xkLXZhcmlhYmxlcygpIHtcbiAgJG9sZC12YXJpYWJsZXMtaW4tdXNlOiAoKTtcbiAgQGVhY2ggJG9sZC12YXJpYWJsZS1uYW1lIGluXG4gICAgICAgIChsZWdhY3ktc3VwcG9ydC1mb3ItaWUsIGxlZ2FjeS1zdXBwb3J0LWZvci1pZTYsIGxlZ2FjeS1zdXBwb3J0LWZvci1pZTcsXG4gICAgICAgICBsZWdhY3ktc3VwcG9ydC1mb3ItaWU4LCBsZWdhY3ktc3VwcG9ydC1mb3ItbW96aWxsYSwgbGVnYWN5LXN1cHBvcnQtZm9yLXdlYmtpdCxcbiAgICAgICAgIGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhLCBleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LFxuICAgICAgICAgZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLCBleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0LFxuICAgICAgICAgZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sLCBleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnKVxuICB7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJG9sZC12YXJpYWJsZS1uYW1lKSB7XG4gICAgICAkb2xkLXZhcmlhYmxlcy1pbi11c2U6IGFwcGVuZCgkb2xkLXZhcmlhYmxlcy1pbi11c2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnF1b3RlKFwiJCN7JG9sZC12YXJpYWJsZS1uYW1lfVwiKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuICBAaWYgbGVuZ3RoKCRvbGQtdmFyaWFibGVzLWluLXVzZSkgPiAwIHtcbiAgICBAd2FybiBcIkNvbXBhc3MgaGFzIGNoYW5nZWQgaG93IGJyb3dzZXIgc3VwcG9ydCBpcyBjb25maWd1cmVkLiBcIiArXG4gICAgICAgICAgXCJUaGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIFwiICtcbiAgICAgICAgICBcImFyZSBubyBsb25nZXIgc3VwcG9ydGVkOiAjeyRvbGQtdmFyaWFibGVzLWluLXVzZX0uXCIgK1xuICAgICAgICAgIFwiRGV0YWlsczogaHR0cDovL2NvbXBhc3Mtc3R5bGUub3JnL2hlbHAvZG9jdW1lbnRhdGlvbi90dW5pbmctdmVuZG9yLXByZWZpeGVzL1wiXG4gIH1cbiAgQHJldHVybiAkb2xkLXZhcmlhYmxlcy1pbi11c2U7XG59XG5cbi8vIEBwcml2YXRlXG5AZnVuY3Rpb24gd2Fybi1hYm91dC1waWUtcmVtb3ZhbCgpIHtcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXBpZSkge1xuICAgIEB3YXJuIFwiQ29tcGFzcyBubyBsb25nZXIgc3VwcG9ydHMgY3NzM3BpZS5cIjtcbiAgfVxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vIEVuYWJsZSBicm93c2VyIHN1cHBvcnQgZGVidWdnaW5nIHdpdGhpbiB0aGUgY29udGVudCBibG9jay5cbi8vIE9yIHlvdSBjYW4gZW5hYmxlIGl0IGZvciB0aGUgd2hvbGUgc3R5bGVzaGVldCBieSBzZXR0aW5nIGAkZGVidWctYnJvd3Nlci1zdXBwb3J0YCB0byB0cnVlLlxuQG1peGluIHdpdGgtYnJvd3Nlci1zdXBwb3J0LWRlYnVnZ2luZyB7XG4gICRjdXJyZW50LXN0YXR1czogJGRlYnVnLWJyb3dzZXItc3VwcG9ydDtcbiAgJGRlYnVnLWJyb3dzZXItc3VwcG9ydDogdHJ1ZSAhZ2xvYmFsO1xuICBAY29udGVudDtcbiAgJGRlYnVnLWJyb3dzZXItc3VwcG9ydDogJGN1cnJlbnQtc3RhdHVzICFnbG9iYWw7XG59XG5cbi8vIFNldCBhIGRlZmF1bHQgdmFsdWUgaWYgdGhlIGdpdmVuIGFyZ2xpc3QgaXMgZW1wdHlcbkBmdW5jdGlvbiBzZXQtYXJnbGlzdC1kZWZhdWx0KCRhcmdsaXN0LCAkZGVmYXVsdCkge1xuICAkZGVmYXVsdC1pbmRleDogaW5kZXgoJGFyZ2xpc3QsIGRlZmF1bHQpO1xuICBAaWYgJGRlZmF1bHQtaW5kZXgge1xuICAgICRhcmdsaXN0OiBzZXQtbnRoKCRhcmdsaXN0LCAkZGVmYXVsdC1pbmRleCwgJGRlZmF1bHQpXG4gIH1cbiAgQHJldHVybiBpZihsZW5ndGgoJGFyZ2xpc3QpID4gMCwgJGFyZ2xpc3QsICRkZWZhdWx0KTtcbn1cblxuXG4vLyBAcHJpdmF0ZVxuJG9sZC12YXJpYWJsZS13YXJuaW5ncy1pc3N1ZWQ6IHdhcm4tYWJvdXQtb2xkLXZhcmlhYmxlcygpICFkZWZhdWx0O1xuXG4vLyBAcHJpdmF0ZVxuJHBpZS1yZW1vdmFsLXdhcm5pbmctaXNzdWVkOiB3YXJuLWFib3V0LXBpZS1yZW1vdmFsKCkgIWRlZmF1bHQ7XG5cbi8vIEBwcml2YXRlXG5AZnVuY3Rpb24gd2Fybi1hYm91dC11c2VsZXNzLXByZWZpeC1hcmd1bWVudHMoJG1vejogbnVsbCwgJHdlYmtpdDogbnVsbCwgJG86IG51bGwsICRraHRtbDogbnVsbCwgJG9mZmljaWFsOiBudWxsKSB7XG4gIEBpZiAkbW96ICE9IG51bGwgb3IgJHdlYmtpdCAhPSBudWxsIG9yICRvICE9IG51bGwgb3IgJGtodG1sICE9IG51bGwgb3IgJG9mZmljaWFsICE9IG51bGwge1xuICAgIEB3YXJuIFwiQnJvd3NlciBwcmVmaXggYXJndW1lbnRzIHRvIHRoaXMgbWl4aW4gYXJlIG5vIGxvbmdlciB1c2VkIGFuZCBcIiArXG4gICAgICAgICAgXCJ3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgcmVsZWFzZS5cIjtcbiAgfVxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vIGNvZXJjZSBhIGxpc3QgdG8gYmUgY29tbWEgZGVsaW1pdGVkIG9yIG1ha2UgYSBuZXcsIGVtcHR5IGNvbW1hIGRlbGltaXRlZCBsaXN0LlxuQGZ1bmN0aW9uIGNvbW1hLWxpc3QoJGxpc3Q6ICgpKSB7XG4gIEByZXR1cm4gam9pbigoKSwgJGxpc3QsIGNvbW1hKTtcbn1cblxuLy8gQHByaXZhdGUgUmV0dXJucyB0aGUgbGVnYWN5IHZhbHVlIGZvciBhIGdpdmVuIGJveC1tb2RlbFxuLy8gLSBVc2VkIGJ5IGJhY2tncm91bmQtY2xpcCBhbmQgLW9yaWdpbi5cbkBmdW5jdGlvbiBsZWdhY3ktYm94KCRib3gpIHtcbiAgJGJveDogdW5xdW90ZSgkYm94KTtcbiAgQGlmICRib3ggPT0gcGFkZGluZy1ib3ggeyAkYm94OiBwYWRkaW5nOyB9XG4gIEBpZiAkYm94ID09IGJvcmRlci1ib3ggeyAkYm94OiBib3JkZXI7IH1cbiAgQGlmICRib3ggPT0gY29udGVudC1ib3ggeyAkYm94OiBjb250ZW50OyB9XG4gIEByZXR1cm4gJGJveDtcbn1cbiIsIi8vIEJvcmRlciBSYWRpdXNcblxuQGltcG9ydCBcImNvbXBhc3Mvc3VwcG9ydFwiO1xuXG5cbi8vIFRoZSB0aGUgdXNlciB0aHJlc2hvbGQgZm9yIGJvcmRlci1yYWRpdXMgc3VwcG9ydC4gRGVmYXVsdHMgdG8gYCRncmFjZWZ1bC11c2FnZS10aHJlc2hvbGRgXG4kYm9yZGVyLXJhZGl1cy10aHJlc2hvbGQ6ICRncmFjZWZ1bC11c2FnZS10aHJlc2hvbGQgIWRlZmF1bHQ7XG5cbi8vIFRoZSBsZW5ndGggb2YgYSBib3JkZXItcmFkaXVzIHRvIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiRkZWZhdWx0LWJvcmRlci1yYWRpdXM6IDVweCAhZGVmYXVsdDtcblxuXG4vLyBSb3VuZCBhbGwgY29ybmVycyBieSBhIHNwZWNpZmljIGFtb3VudCwgZGVmYXVsdHMgdG8gdmFsdWUgb2YgYCRkZWZhdWx0LWJvcmRlci1yYWRpdXNgLlxuLy9cbi8vIFdoZW4gdHdvIHZhbHVlcyBhcmUgcGFzc2VkLCB0aGUgZmlyc3QgaXMgdGhlIGhvcml6b250YWwgcmFkaXVzXG4vLyBhbmQgdGhlIHNlY29uZCBpcyB0aGUgdmVydGljYWwgcmFkaXVzLlxuLy9cbi8vIE5vdGU6IHdlYmtpdCBkb2VzIG5vdCBzdXBwb3J0IHNob3J0aGFuZCBzeW50YXggZm9yIHNldmVyYWwgY29ybmVycyBhdCBvbmNlLlxuLy8gU28gaW4gdGhlIGNhc2Ugd2hlcmUgeW91IHBhc3Mgc2V2ZXJhbCB2YWx1ZXMgb25seSB0aGUgZmlyc3Qgd2lsbCBiZSBwYXNzZWQgdG8gd2Via2l0LlxuLy9cbi8vIEV4YW1wbGVzOlxuLy9cbi8vICAgICAuc2ltcGxlICAgeyBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDRweCwgNHB4KTsgfVxuLy8gICAgIC5jb21wb3VuZCB7IEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4IDVweCwgM3B4IDZweCk7IH1cbi8vICAgICAuY3JhenkgICAgeyBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDFweCAzcHggNXB4IDdweCwgMnB4IDRweCA2cHggOHB4KX1cbi8vXG4vLyBXaGljaCBnZW5lcmF0ZXM6XG4vL1xuLy8gICAgIC5zaW1wbGUge1xuLy8gICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHggLyA0cHg7XG4vLyAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweCA0cHg7XG4vLyAgICAgICBib3JkZXItcmFkaXVzOiA0cHggLyA0cHg7IH1cbi8vICAgICBcbi8vICAgICAuY29tcG91bmQge1xuLy8gICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAycHggNXB4IC8gM3B4IDZweDtcbi8vICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4IDNweDtcbi8vICAgICAgIGJvcmRlci1yYWRpdXM6IDJweCA1cHggLyAzcHggNnB4OyB9XG4vLyAgICAgXG4vLyAgICAgLmNyYXp5IHtcbi8vICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMXB4IDNweCA1cHggN3B4IC8gMnB4IDRweCA2cHggOHB4O1xuLy8gICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxcHggMnB4O1xuLy8gICAgICAgYm9yZGVyLXJhZGl1czogMXB4IDNweCA1cHggN3B4IC8gMnB4IDRweCA2cHggOHB4OyB9XG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzLCAkdmVydGljYWwtcmFkaXVzOiBmYWxzZSkge1xuICBAaW5jbHVkZSB3aXRoLWVhY2gtcHJlZml4KGJvcmRlci1yYWRpdXMsICRib3JkZXItcmFkaXVzLXRocmVzaG9sZCkge1xuICAgIEBpZiAkY3VycmVudC1wcmVmaXggPT0gLXdlYmtpdCB7XG4gICAgICAvLyBMZWdhY3kgV2Via2l0IGRpZG4ndCB1bmRlcnN0YW5kIHRoZSBvZmZpY2lhbCBzaG9ydGhhbmQgc3ludGF4IGZvciBzcGVjaWZ5aW5nIGEgdmVydGljYWwgcmFkaXVzLlxuICAgICAgJGxlZ2FjeS13ZWJraXQtcmFkaXVzOiBmaXJzdC12YWx1ZS1vZigkcmFkaXVzKTtcbiAgICAgIEBpZiAkdmVydGljYWwtcmFkaXVzIHsgJGxlZ2FjeS13ZWJraXQtcmFkaXVzOiBhcHBlbmQoJGxlZ2FjeS13ZWJraXQtcmFkaXVzLCBmaXJzdC12YWx1ZS1vZigkdmVydGljYWwtcmFkaXVzKSk7IH1cbiAgICAgIEBpbmNsdWRlIHByZWZpeC1wcm9wKGJvcmRlci1yYWRpdXMsICRsZWdhY3ktd2Via2l0LXJhZGl1cyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvLyBPZmZpY2lhbCBzeW50YXggZm9yIGV2ZXJ5b25lIGVsc2VcbiAgICAgIEBpbmNsdWRlIHByZWZpeC1wcm9wKGJvcmRlci1yYWRpdXMsIGlmKCR2ZXJ0aWNhbC1yYWRpdXMsICN7JHJhZGl1c30gLyAjeyR2ZXJ0aWNhbC1yYWRpdXN9LCAkcmFkaXVzKSk7XG4gICAgfVxuICB9XG59XG5cbi8vIFJvdW5kIHJhZGl1cyBhdCBwb3NpdGlvbiBieSBhbW91bnQuXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkdmVydGA6IGB0b3BgLCBgYm90dG9tYFxuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkaG9yemA6IGBsZWZ0YCwgYHJpZ2h0YFxuQG1peGluIGJvcmRlci1jb3JuZXItcmFkaXVzKCR2ZXJ0LCAkaG9yeiwgJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSB3aXRoLWVhY2gtcHJlZml4KGJvcmRlci1yYWRpdXMsICRib3JkZXItcmFkaXVzLXRocmVzaG9sZCkge1xuICAgIEBpZiAkY3VycmVudC1wcmVmaXggPT0gLW1veiB7XG4gICAgICAvLyBTdXBwb3J0IGZvciBtb3ppbGxhJ3Mgc3ludGF4IGZvciBzcGVjaWZ5aW5nIGEgY29ybmVyXG4gICAgICBAaW5jbHVkZSBwcmVmaXgtcHJvcChcImJvcmRlci1yYWRpdXMtI3skdmVydH0jeyRob3J6fVwiLCAkcmFkaXVzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIC8vIE9mZmljaWFsIHN5bnRheCBmb3IgZXZlcnlvbmUgZWxzZVxuICAgICAgQGluY2x1ZGUgcHJlZml4LXByb3AoXCJib3JkZXItI3skdmVydH0tI3skaG9yen0tcmFkaXVzXCIsICRyYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBSb3VuZCB0b3AtbGVmdCBjb3JuZXIgb25seVxuQG1peGluIGJvcmRlci10b3AtbGVmdC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItY29ybmVyLXJhZGl1cyh0b3AsIGxlZnQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIHRvcC1yaWdodCBjb3JuZXIgb25seVxuQG1peGluIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLWNvcm5lci1yYWRpdXModG9wLCByaWdodCwgJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90dG9tLWxlZnQgY29ybmVyIG9ubHlcbkBtaXhpbiBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLWNvcm5lci1yYWRpdXMoYm90dG9tLCBsZWZ0LCAkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3R0b20tcmlnaHQgY29ybmVyIG9ubHlcbkBtaXhpbiBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1jb3JuZXItcmFkaXVzKGJvdHRvbSwgcmlnaHQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIGJvdGggdG9wIGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItdG9wLWxlZnQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIHJpZ2h0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIGJvdHRvbSBjb3JuZXJzIGJ5IGFtb3VudFxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMoJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90aCBsZWZ0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTsgfVxuIiwiLyogQk9PVFNUUkFQIFNQRUNJRklDIENMQVNTRVNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIEJvb3RzdHJhcCAyLjAgc3ByaXRlcy5sZXNzIHJlc2V0ICovXG5bY2xhc3NePVwiaWNvbi1cIl0sXG5bY2xhc3MqPVwiIGljb24tXCJdIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4vKiBtb3JlIHNwcml0ZXMubGVzcyByZXNldCAqL1xuLmljb24td2hpdGUsXG4ubmF2LXBpbGxzID4gLmFjdGl2ZSA+IGEgPiBbY2xhc3NePVwiaWNvbi1cIl0sXG4ubmF2LXBpbGxzID4gLmFjdGl2ZSA+IGEgPiBbY2xhc3MqPVwiIGljb24tXCJdLFxuLm5hdi1saXN0ID4gLmFjdGl2ZSA+IGEgPiBbY2xhc3NePVwiaWNvbi1cIl0sXG4ubmF2LWxpc3QgPiAuYWN0aXZlID4gYSA+IFtjbGFzcyo9XCIgaWNvbi1cIl0sXG4ubmF2YmFyLWludmVyc2UgLm5hdiA+IC5hY3RpdmUgPiBhID4gW2NsYXNzXj1cImljb24tXCJdLFxuLm5hdmJhci1pbnZlcnNlIC5uYXYgPiAuYWN0aXZlID4gYSA+IFtjbGFzcyo9XCIgaWNvbi1cIl0sXG4uZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlciA+IFtjbGFzc149XCJpY29uLVwiXSxcbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyID4gW2NsYXNzKj1cIiBpY29uLVwiXSxcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEgPiBbY2xhc3NePVwiaWNvbi1cIl0sXG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhID4gW2NsYXNzKj1cIiBpY29uLVwiXSxcbi5kcm9wZG93bi1zdWJtZW51OmhvdmVyID4gYSA+IFtjbGFzc149XCJpY29uLVwiXSxcbi5kcm9wZG93bi1zdWJtZW51OmhvdmVyID4gYSA+IFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG5cbi8qIGtlZXBzIEJvb3RzdHJhcCBzdHlsZXMgd2l0aCBhbmQgd2l0aG91dCBpY29ucyB0aGUgc2FtZSAqL1xuLmJ0biwgLm5hdiB7XG4gIFtjbGFzc149XCJpY29uLVwiXSxcbiAgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gICAgLy8gICAgZGlzcGxheTogaW5saW5lO1xuICAgICYuaWNvbi1sYXJnZSB7IGxpbmUtaGVpZ2h0OiAuOWVtOyB9XG4gICAgJi5pY29uLXNwaW4geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgfVxufVxuLm5hdi10YWJzLCAubmF2LXBpbGxzIHtcbiAgW2NsYXNzXj1cImljb24tXCJdLFxuICBbY2xhc3MqPVwiIGljb24tXCJdIHtcbiAgICAmLCAmLmljb24tbGFyZ2UgeyBsaW5lLWhlaWdodDogLjllbTsgfVxuICB9XG59XG4uYnRuIHtcbiAgW2NsYXNzXj1cImljb24tXCJdLFxuICBbY2xhc3MqPVwiIGljb24tXCJdIHtcbiAgICAmLnB1bGwtbGVmdCwgJi5wdWxsLXJpZ2h0IHtcbiAgICAgICYuaWNvbi0yeCB7IG1hcmdpbi10b3A6IC4xOGVtOyB9XG4gICAgfVxuICAgICYuaWNvbi1zcGluLmljb24tbGFyZ2UgeyBsaW5lLWhlaWdodDogLjhlbTsgfVxuICB9XG59XG4uYnRuLmJ0bi1zbWFsbCB7XG4gIFtjbGFzc149XCJpY29uLVwiXSxcbiAgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gICAgJi5wdWxsLWxlZnQsICYucHVsbC1yaWdodCB7XG4gICAgICAmLmljb24tMnggeyBtYXJnaW4tdG9wOiAuMjVlbTsgfVxuICAgIH1cbiAgfVxufVxuLmJ0bi5idG4tbGFyZ2Uge1xuICBbY2xhc3NePVwiaWNvbi1cIl0sXG4gIFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICAgIG1hcmdpbi10b3A6IDA7IC8vIG92ZXJyaWRlcyBib290c3RyYXAgZGVmYXVsdFxuICAgICYucHVsbC1sZWZ0LCAmLnB1bGwtcmlnaHQge1xuICAgICAgJi5pY29uLTJ4IHsgbWFyZ2luLXRvcDogLjA1ZW07IH1cbiAgICB9XG4gICAgJi5wdWxsLWxlZnQuaWNvbi0yeCB7IG1hcmdpbi1yaWdodDogLjJlbTsgfVxuICAgICYucHVsbC1yaWdodC5pY29uLTJ4IHsgbWFyZ2luLWxlZnQ6IC4yZW07IH1cbiAgfVxufVxuXG4vKiBGaXhlcyBhbGlnbm1lbnQgaW4gbmF2IGxpc3RzICovXG4ubmF2LWxpc3QgW2NsYXNzXj1cImljb24tXCJdLFxuLm5hdi1saXN0IFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cbiIsIi8qIEVYVFJBU1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogU3RhY2tlZCBhbmQgbGF5ZXJlZCBpY29uICovXG5AaW5jbHVkZSBpY29uLXN0YWNrKCk7XG5cbi8qIEFuaW1hdGVkIHJvdGF0aW5nIGljb24gKi9cbi5pY29uLXNwaW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC1tb3otYW5pbWF0aW9uOiBzcGluIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgLW8tYW5pbWF0aW9uOiBzcGluIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IHNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4vKiBQcmV2ZW50IHN0YWNrIGFuZCBzcGlubmVycyBmcm9tIGJlaW5nIHRha2VuIGlubGluZSB3aGVuIGluc2lkZSBhIGxpbmsgKi9cbmEgLmljb24tc3RhY2ssXG5hIC5pY29uLXNwaW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQC1tb3ota2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7IC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7IC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsgfVxufVxuQC1vLWtleWZyYW1lcyBzcGluIHtcbiAgMCUgeyAtby10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHsgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsgfVxufVxuQC1tcy1rZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHsgLW1zLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUgeyAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsgfVxufVxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsgfVxufVxuXG4vKiBJY29uIHJvdGF0aW9ucyBhbmQgbWlycm9yaW5nICovXG4uaWNvbi1yb3RhdGUtOTA6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0xKTtcbn1cblxuLmljb24tcm90YXRlLTE4MDpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Mik7XG59XG5cbi5pY29uLXJvdGF0ZS0yNzA6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTMpO1xufVxuXG4uaWNvbi1mbGlwLWhvcml6b250YWw6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgLW1vei10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG59XG5cbi5pY29uLWZsaXAtdmVydGljYWw6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbiAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG59XG5cbi8qIGVuc3VyZSByb3RhdGlvbiBvY2N1cnMgaW5zaWRlIGFuY2hvciB0YWdzICovXG5hIHtcbiAgLmljb24tcm90YXRlLTkwLCAuaWNvbi1yb3RhdGUtMTgwLCAuaWNvbi1yb3RhdGUtMjcwLCAuaWNvbi1mbGlwLWhvcml6b250YWwsIC5pY29uLWZsaXAtdmVydGljYWwge1xuICAgICY6YmVmb3JlIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIH1cbn1cbiIsIi8qIEZvbnQgQXdlc29tZSB1c2VzIHRoZSBVbmljb2RlIFByaXZhdGUgVXNlIEFyZWEgKFBVQSkgdG8gZW5zdXJlIHNjcmVlblxuICogcmVhZGVycyBkbyBub3QgcmVhZCBvZmYgcmFuZG9tIGNoYXJhY3RlcnMgdGhhdCByZXByZXNlbnQgaWNvbnMgKi9cblxuLmljb24tZ2xhc3M6YmVmb3JlIHsgY29udGVudDogJGdsYXNzOyB9XG4uaWNvbi1tdXNpYzpiZWZvcmUgeyBjb250ZW50OiAkbXVzaWM7IH1cbi5pY29uLXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiAkc2VhcmNoOyB9XG4uaWNvbi1lbnZlbG9wZS1hbHQ6YmVmb3JlIHsgY29udGVudDogJGVudmVsb3BlLWFsdDsgfVxuLmljb24taGVhcnQ6YmVmb3JlIHsgY29udGVudDogJGhlYXJ0OyB9XG4uaWNvbi1zdGFyOmJlZm9yZSB7IGNvbnRlbnQ6ICRzdGFyOyB9XG4uaWNvbi1zdGFyLWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICRzdGFyLWVtcHR5OyB9XG4uaWNvbi11c2VyOmJlZm9yZSB7IGNvbnRlbnQ6ICR1c2VyOyB9XG4uaWNvbi1maWxtOmJlZm9yZSB7IGNvbnRlbnQ6ICRmaWxtOyB9XG4uaWNvbi10aC1sYXJnZTpiZWZvcmUgeyBjb250ZW50OiAkdGgtbGFyZ2U7IH1cbi5pY29uLXRoOmJlZm9yZSB7IGNvbnRlbnQ6ICR0aDsgfVxuLmljb24tdGgtbGlzdDpiZWZvcmUgeyBjb250ZW50OiAkdGgtbGlzdDsgfVxuLmljb24tb2s6YmVmb3JlIHsgY29udGVudDogJG9rOyB9XG4uaWNvbi1yZW1vdmU6YmVmb3JlIHsgY29udGVudDogJHJlbW92ZTsgfVxuLmljb24tem9vbS1pbjpiZWZvcmUgeyBjb250ZW50OiAkem9vbS1pbjsgfVxuLmljb24tem9vbS1vdXQ6YmVmb3JlIHsgY29udGVudDogJHpvb20tb3V0OyB9XG4uaWNvbi1wb3dlci1vZmY6YmVmb3JlLFxuLmljb24tb2ZmOmJlZm9yZSB7IGNvbnRlbnQ6ICRvZmY7IH1cbi5pY29uLXNpZ25hbDpiZWZvcmUgeyBjb250ZW50OiAkc2lnbmFsOyB9XG4uaWNvbi1nZWFyOmJlZm9yZSxcbi5pY29uLWNvZzpiZWZvcmUgeyBjb250ZW50OiAkY29nOyB9XG4uaWNvbi10cmFzaDpiZWZvcmUgeyBjb250ZW50OiAkdHJhc2g7IH1cbi5pY29uLWhvbWU6YmVmb3JlIHsgY29udGVudDogJGhvbWU7IH1cbi5pY29uLWZpbGUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmaWxlLWFsdDsgfVxuLmljb24tdGltZTpiZWZvcmUgeyBjb250ZW50OiAkdGltZTsgfVxuLmljb24tcm9hZDpiZWZvcmUgeyBjb250ZW50OiAkcm9hZDsgfVxuLmljb24tZG93bmxvYWQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRkb3dubG9hZC1hbHQ7IH1cbi5pY29uLWRvd25sb2FkOmJlZm9yZSB7IGNvbnRlbnQ6ICRkb3dubG9hZDsgfVxuLmljb24tdXBsb2FkOmJlZm9yZSB7IGNvbnRlbnQ6ICR1cGxvYWQ7IH1cbi5pY29uLWluYm94OmJlZm9yZSB7IGNvbnRlbnQ6ICRpbmJveDsgfVxuLmljb24tcGxheS1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogJHBsYXktY2lyY2xlOyB9XG4uaWNvbi1yb3RhdGUtcmlnaHQ6YmVmb3JlLFxuLmljb24tcmVwZWF0OmJlZm9yZSB7IGNvbnRlbnQ6ICRyZXBlYXQ7IH1cbi5pY29uLXJlZnJlc2g6YmVmb3JlIHsgY29udGVudDogJHJlZnJlc2g7IH1cbi5pY29uLWxpc3QtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRsaXN0LWFsdDsgfVxuLmljb24tbG9jazpiZWZvcmUgeyBjb250ZW50OiAkbG9jazsgfVxuLmljb24tZmxhZzpiZWZvcmUgeyBjb250ZW50OiAkZmxhZzsgfVxuLmljb24taGVhZHBob25lczpiZWZvcmUgeyBjb250ZW50OiAkaGVhZHBob25lczsgfVxuLmljb24tdm9sdW1lLW9mZjpiZWZvcmUgeyBjb250ZW50OiAkdm9sdW1lLW9mZjsgfVxuLmljb24tdm9sdW1lLWRvd246YmVmb3JlIHsgY29udGVudDogJHZvbHVtZS1kb3duOyB9XG4uaWNvbi12b2x1bWUtdXA6YmVmb3JlIHsgY29udGVudDogJHZvbHVtZS11cDsgfVxuLmljb24tcXJjb2RlOmJlZm9yZSB7IGNvbnRlbnQ6ICRxcmNvZGU7IH1cbi5pY29uLWJhcmNvZGU6YmVmb3JlIHsgY29udGVudDogJGJhcmNvZGU7IH1cbi5pY29uLXRhZzpiZWZvcmUgeyBjb250ZW50OiAkdGFnOyB9XG4uaWNvbi10YWdzOmJlZm9yZSB7IGNvbnRlbnQ6ICR0YWdzOyB9XG4uaWNvbi1ib29rOmJlZm9yZSB7IGNvbnRlbnQ6ICRib29rOyB9XG4uaWNvbi1ib29rbWFyazpiZWZvcmUgeyBjb250ZW50OiAkYm9va21hcms7IH1cbi5pY29uLXByaW50OmJlZm9yZSB7IGNvbnRlbnQ6ICRwcmludDsgfVxuLmljb24tY2FtZXJhOmJlZm9yZSB7IGNvbnRlbnQ6ICRjYW1lcmE7IH1cbi5pY29uLWZvbnQ6YmVmb3JlIHsgY29udGVudDogJGZvbnQ7IH1cbi5pY29uLWJvbGQ6YmVmb3JlIHsgY29udGVudDogJGJvbGQ7IH1cbi5pY29uLWl0YWxpYzpiZWZvcmUgeyBjb250ZW50OiAkaXRhbGljOyB9XG4uaWNvbi10ZXh0LWhlaWdodDpiZWZvcmUgeyBjb250ZW50OiAkdGV4dC1oZWlnaHQ7IH1cbi5pY29uLXRleHQtd2lkdGg6YmVmb3JlIHsgY29udGVudDogJHRleHQtd2lkdGg7IH1cbi5pY29uLWFsaWduLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGFsaWduLWxlZnQ7IH1cbi5pY29uLWFsaWduLWNlbnRlcjpiZWZvcmUgeyBjb250ZW50OiAkYWxpZ24tY2VudGVyOyB9XG4uaWNvbi1hbGlnbi1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAkYWxpZ24tcmlnaHQ7IH1cbi5pY29uLWFsaWduLWp1c3RpZnk6YmVmb3JlIHsgY29udGVudDogJGFsaWduLWp1c3RpZnk7IH1cbi5pY29uLWxpc3Q6YmVmb3JlIHsgY29udGVudDogJGxpc3Q7IH1cbi5pY29uLWluZGVudC1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRpbmRlbnQtbGVmdDsgfVxuLmljb24taW5kZW50LXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICRpbmRlbnQtcmlnaHQ7IH1cbi5pY29uLWZhY2V0aW1lLXZpZGVvOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYWNldGltZS12aWRlbzsgfVxuLmljb24tcGljdHVyZTpiZWZvcmUgeyBjb250ZW50OiAkcGljdHVyZTsgfVxuLmljb24tcGVuY2lsOmJlZm9yZSB7IGNvbnRlbnQ6ICRwZW5jaWw7IH1cbi5pY29uLW1hcC1tYXJrZXI6YmVmb3JlIHsgY29udGVudDogJG1hcC1tYXJrZXI7IH1cbi5pY29uLWFkanVzdDpiZWZvcmUgeyBjb250ZW50OiAkYWRqdXN0OyB9XG4uaWNvbi10aW50OmJlZm9yZSB7IGNvbnRlbnQ6ICR0aW50OyB9XG4uaWNvbi1lZGl0OmJlZm9yZSB7IGNvbnRlbnQ6ICRlZGl0OyB9XG4uaWNvbi1zaGFyZTpiZWZvcmUgeyBjb250ZW50OiAkc2hhcmU7IH1cbi5pY29uLWNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6ICRjaGVjazsgfVxuLmljb24tbW92ZTpiZWZvcmUgeyBjb250ZW50OiAkbW92ZTsgfVxuLmljb24tc3RlcC1iYWNrd2FyZDpiZWZvcmUgeyBjb250ZW50OiAkc3RlcC1iYWNrd2FyZDsgfVxuLmljb24tZmFzdC1iYWNrd2FyZDpiZWZvcmUgeyBjb250ZW50OiAkZmFzdC1iYWNrd2FyZDsgfVxuLmljb24tYmFja3dhcmQ6YmVmb3JlIHsgY29udGVudDogJGJhY2t3YXJkOyB9XG4uaWNvbi1wbGF5OmJlZm9yZSB7IGNvbnRlbnQ6ICRwbGF5OyB9XG4uaWNvbi1wYXVzZTpiZWZvcmUgeyBjb250ZW50OiAkcGF1c2U7IH1cbi5pY29uLXN0b3A6YmVmb3JlIHsgY29udGVudDogJHN0b3A7IH1cbi5pY29uLWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogJGZvcndhcmQ7IH1cbi5pY29uLWZhc3QtZm9yd2FyZDpiZWZvcmUgeyBjb250ZW50OiAkZmFzdC1mb3J3YXJkOyB9XG4uaWNvbi1zdGVwLWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogJHN0ZXAtZm9yd2FyZDsgfVxuLmljb24tZWplY3Q6YmVmb3JlIHsgY29udGVudDogJGVqZWN0OyB9XG4uaWNvbi1jaGV2cm9uLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGNoZXZyb24tbGVmdDsgfVxuLmljb24tY2hldnJvbi1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAkY2hldnJvbi1yaWdodDsgfVxuLmljb24tcGx1cy1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6ICRwbHVzLXNpZ247IH1cbi5pY29uLW1pbnVzLXNpZ246YmVmb3JlIHsgY29udGVudDogJG1pbnVzLXNpZ247IH1cbi5pY29uLXJlbW92ZS1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6ICRyZW1vdmUtc2lnbjsgfVxuLmljb24tb2stc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkb2stc2lnbjsgfVxuLmljb24tcXVlc3Rpb24tc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkcXVlc3Rpb24tc2lnbjsgfVxuLmljb24taW5mby1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6ICRpbmZvLXNpZ247IH1cbi5pY29uLXNjcmVlbnNob3Q6YmVmb3JlIHsgY29udGVudDogJHNjcmVlbnNob3Q7IH1cbi5pY29uLXJlbW92ZS1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogJHJlbW92ZS1jaXJjbGU7IH1cbi5pY29uLW9rLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiAkb2stY2lyY2xlOyB9XG4uaWNvbi1iYW4tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICRiYW4tY2lyY2xlOyB9XG4uaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRhcnJvdy1sZWZ0OyB9XG4uaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAkYXJyb3ctcmlnaHQ7IH1cbi5pY29uLWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRhcnJvdy11cDsgfVxuLmljb24tYXJyb3ctZG93bjpiZWZvcmUgeyBjb250ZW50OiAkYXJyb3ctZG93bjsgfVxuLmljb24tbWFpbC1mb3J3YXJkOmJlZm9yZSxcbi5pY29uLXNoYXJlLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkc2hhcmUtYWx0OyB9XG4uaWNvbi1yZXNpemUtZnVsbDpiZWZvcmUgeyBjb250ZW50OiAkcmVzaXplLWZ1bGw7IH1cbi5pY29uLXJlc2l6ZS1zbWFsbDpiZWZvcmUgeyBjb250ZW50OiAkcmVzaXplLXNtYWxsOyB9XG4uaWNvbi1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICRwbHVzOyB9XG4uaWNvbi1taW51czpiZWZvcmUgeyBjb250ZW50OiAkbWludXM7IH1cbi5pY29uLWFzdGVyaXNrOmJlZm9yZSB7IGNvbnRlbnQ6ICRhc3RlcmlzazsgfVxuLmljb24tZXhjbGFtYXRpb24tc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkZXhjbGFtYXRpb24tc2lnbjsgfVxuLmljb24tZ2lmdDpiZWZvcmUgeyBjb250ZW50OiAkZ2lmdDsgfVxuLmljb24tbGVhZjpiZWZvcmUgeyBjb250ZW50OiAkbGVhZjsgfVxuLmljb24tZmlyZTpiZWZvcmUgeyBjb250ZW50OiAkZmlyZTsgfVxuLmljb24tZXllLW9wZW46YmVmb3JlIHsgY29udGVudDogJGV5ZS1vcGVuOyB9XG4uaWNvbi1leWUtY2xvc2U6YmVmb3JlIHsgY29udGVudDogJGV5ZS1jbG9zZTsgfVxuLmljb24td2FybmluZy1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6ICR3YXJuaW5nLXNpZ247IH1cbi5pY29uLXBsYW5lOmJlZm9yZSB7IGNvbnRlbnQ6ICRwbGFuZTsgfVxuLmljb24tY2FsZW5kYXI6YmVmb3JlIHsgY29udGVudDogJGNhbGVuZGFyOyB9XG4uaWNvbi1yYW5kb206YmVmb3JlIHsgY29udGVudDogJHJhbmRvbTsgfVxuLmljb24tY29tbWVudDpiZWZvcmUgeyBjb250ZW50OiAkY29tbWVudDsgfVxuLmljb24tbWFnbmV0OmJlZm9yZSB7IGNvbnRlbnQ6ICRtYWduZXQ7IH1cbi5pY29uLWNoZXZyb24tdXA6YmVmb3JlIHsgY29udGVudDogJGNoZXZyb24tdXA7IH1cbi5pY29uLWNoZXZyb24tZG93bjpiZWZvcmUgeyBjb250ZW50OiAkY2hldnJvbi1kb3duOyB9XG4uaWNvbi1yZXR3ZWV0OmJlZm9yZSB7IGNvbnRlbnQ6ICRyZXR3ZWV0OyB9XG4uaWNvbi1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRzaG9wcGluZy1jYXJ0OyB9XG4uaWNvbi1mb2xkZXItY2xvc2U6YmVmb3JlIHsgY29udGVudDogJGZvbGRlci1jbG9zZTsgfVxuLmljb24tZm9sZGVyLW9wZW46YmVmb3JlIHsgY29udGVudDogJGZvbGRlci1vcGVuOyB9XG4uaWNvbi1yZXNpemUtdmVydGljYWw6YmVmb3JlIHsgY29udGVudDogJHJlc2l6ZS12ZXJ0aWNhbDsgfVxuLmljb24tcmVzaXplLWhvcml6b250YWw6YmVmb3JlIHsgY29udGVudDogJHJlc2l6ZS1ob3Jpem9udGFsOyB9XG4uaWNvbi1iYXItY2hhcnQ6YmVmb3JlIHsgY29udGVudDogJGJhci1jaGFydDsgfVxuLmljb24tdHdpdHRlci1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6ICR0d2l0dGVyLXNpZ247IH1cbi5pY29uLWZhY2Vib29rLXNpZ246YmVmb3JlIHsgY29udGVudDogJGZhY2Vib29rLXNpZ247IH1cbi5pY29uLWNhbWVyYS1yZXRybzpiZWZvcmUgeyBjb250ZW50OiAkY2FtZXJhLXJldHJvOyB9XG4uaWNvbi1rZXk6YmVmb3JlIHsgY29udGVudDogJGtleTsgfVxuLmljb24tZ2VhcnM6YmVmb3JlLFxuLmljb24tY29nczpiZWZvcmUgeyBjb250ZW50OiAkY29nczsgfVxuLmljb24tY29tbWVudHM6YmVmb3JlIHsgY29udGVudDogJGNvbW1lbnRzOyB9XG4uaWNvbi10aHVtYnMtdXAtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICR0aHVtYnMtdXAtYWx0OyB9XG4uaWNvbi10aHVtYnMtZG93bi1hbHQ6YmVmb3JlIHsgY29udGVudDogJHRodW1icy1kb3duLWFsdDsgfVxuLmljb24tc3Rhci1oYWxmOmJlZm9yZSB7IGNvbnRlbnQ6ICRzdGFyLWhhbGY7IH1cbi5pY29uLWhlYXJ0LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICRoZWFydC1lbXB0eTsgfVxuLmljb24tc2lnbm91dDpiZWZvcmUgeyBjb250ZW50OiAkc2lnbm91dDsgfVxuLmljb24tbGlua2VkaW4tc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkbGlua2VkaW4tc2lnbjsgfVxuLmljb24tcHVzaHBpbjpiZWZvcmUgeyBjb250ZW50OiAkcHVzaHBpbjsgfVxuLmljb24tZXh0ZXJuYWwtbGluazpiZWZvcmUgeyBjb250ZW50OiAkZXh0ZXJuYWwtbGluazsgfVxuLmljb24tc2lnbmluOmJlZm9yZSB7IGNvbnRlbnQ6ICRzaWduaW47IH1cbi5pY29uLXRyb3BoeTpiZWZvcmUgeyBjb250ZW50OiAkdHJvcGh5OyB9XG4uaWNvbi1naXRodWItc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkZ2l0aHViLXNpZ247IH1cbi5pY29uLXVwbG9hZC1hbHQ6YmVmb3JlIHsgY29udGVudDogJHVwbG9hZC1hbHQ7IH1cbi5pY29uLWxlbW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICRsZW1vbjsgfVxuLmljb24tcGhvbmU6YmVmb3JlIHsgY29udGVudDogJHBob25lOyB9XG4uaWNvbi11bmNoZWNrZWQ6YmVmb3JlLFxuLmljb24tY2hlY2stZW1wdHk6YmVmb3JlIHsgY29udGVudDogJGNoZWNrLWVtcHR5OyB9XG4uaWNvbi1ib29rbWFyay1lbXB0eTpiZWZvcmUgeyBjb250ZW50OiAkYm9va21hcmstZW1wdHk7IH1cbi5pY29uLXBob25lLXNpZ246YmVmb3JlIHsgY29udGVudDogJHBob25lLXNpZ247IH1cbi5pY29uLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogJHR3aXR0ZXI7IH1cbi5pY29uLWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6ICRmYWNlYm9vazsgfVxuLmljb24tZ2l0aHViOmJlZm9yZSB7IGNvbnRlbnQ6ICRnaXRodWI7IH1cbi5pY29uLXVubG9jazpiZWZvcmUgeyBjb250ZW50OiAkdW5sb2NrOyB9XG4uaWNvbi1jcmVkaXQtY2FyZDpiZWZvcmUgeyBjb250ZW50OiAkY3JlZGl0LWNhcmQ7IH1cbi5pY29uLXJzczpiZWZvcmUgeyBjb250ZW50OiAkcnNzOyB9XG4uaWNvbi1oZGQ6YmVmb3JlIHsgY29udGVudDogJGhkZDsgfVxuLmljb24tYnVsbGhvcm46YmVmb3JlIHsgY29udGVudDogJGJ1bGxob3JuOyB9XG4uaWNvbi1iZWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICRiZWxsOyB9XG4uaWNvbi1jZXJ0aWZpY2F0ZTpiZWZvcmUgeyBjb250ZW50OiAkY2VydGlmaWNhdGU7IH1cbi5pY29uLWhhbmQtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGhhbmQtcmlnaHQ7IH1cbi5pY29uLWhhbmQtbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkaGFuZC1sZWZ0OyB9XG4uaWNvbi1oYW5kLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRoYW5kLXVwOyB9XG4uaWNvbi1oYW5kLWRvd246YmVmb3JlIHsgY29udGVudDogJGhhbmQtZG93bjsgfVxuLmljb24tY2lyY2xlLWFycm93LWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGNpcmNsZS1hcnJvdy1sZWZ0OyB9XG4uaWNvbi1jaXJjbGUtYXJyb3ctcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGNpcmNsZS1hcnJvdy1yaWdodDsgfVxuLmljb24tY2lyY2xlLWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRjaXJjbGUtYXJyb3ctdXA7IH1cbi5pY29uLWNpcmNsZS1hcnJvdy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRjaXJjbGUtYXJyb3ctZG93bjsgfVxuLmljb24tZ2xvYmU6YmVmb3JlIHsgY29udGVudDogJGdsb2JlOyB9XG4uaWNvbi13cmVuY2g6YmVmb3JlIHsgY29udGVudDogJHdyZW5jaDsgfVxuLmljb24tdGFza3M6YmVmb3JlIHsgY29udGVudDogJHRhc2tzOyB9XG4uaWNvbi1maWx0ZXI6YmVmb3JlIHsgY29udGVudDogJGZpbHRlcjsgfVxuLmljb24tYnJpZWZjYXNlOmJlZm9yZSB7IGNvbnRlbnQ6ICRicmllZmNhc2U7IH1cbi5pY29uLWZ1bGxzY3JlZW46YmVmb3JlIHsgY29udGVudDogJGZ1bGxzY3JlZW47IH1cbi5pY29uLWdyb3VwOmJlZm9yZSB7IGNvbnRlbnQ6ICRncm91cDsgfVxuLmljb24tbGluazpiZWZvcmUgeyBjb250ZW50OiAkbGluazsgfVxuLmljb24tY2xvdWQ6YmVmb3JlIHsgY29udGVudDogJGNsb3VkOyB9XG4uaWNvbi1iZWFrZXI6YmVmb3JlIHsgY29udGVudDogJGJlYWtlcjsgfVxuLmljb24tY3V0OmJlZm9yZSB7IGNvbnRlbnQ6ICRjdXQ7IH1cbi5pY29uLWNvcHk6YmVmb3JlIHsgY29udGVudDogJGNvcHk7IH1cbi5pY29uLXBhcGVyY2xpcDpiZWZvcmUsXG4uaWNvbi1wYXBlci1jbGlwOmJlZm9yZSB7IGNvbnRlbnQ6ICRwYXBlci1jbGlwOyB9XG4uaWNvbi1zYXZlOmJlZm9yZSB7IGNvbnRlbnQ6ICRzYXZlOyB9XG4uaWNvbi1zaWduLWJsYW5rOmJlZm9yZSB7IGNvbnRlbnQ6ICRzaWduLWJsYW5rOyB9XG4uaWNvbi1yZW9yZGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRyZW9yZGVyOyB9XG4uaWNvbi1saXN0LXVsOmJlZm9yZSB7IGNvbnRlbnQ6ICRsaXN0LXVsOyB9XG4uaWNvbi1saXN0LW9sOmJlZm9yZSB7IGNvbnRlbnQ6ICRsaXN0LW9sOyB9XG4uaWNvbi1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7IGNvbnRlbnQ6ICRzdHJpa2V0aHJvdWdoOyB9XG4uaWNvbi11bmRlcmxpbmU6YmVmb3JlIHsgY29udGVudDogJHVuZGVybGluZTsgfVxuLmljb24tdGFibGU6YmVmb3JlIHsgY29udGVudDogJHRhYmxlOyB9XG4uaWNvbi1tYWdpYzpiZWZvcmUgeyBjb250ZW50OiAkbWFnaWM7IH1cbi5pY29uLXRydWNrOmJlZm9yZSB7IGNvbnRlbnQ6ICR0cnVjazsgfVxuLmljb24tcGludGVyZXN0OmJlZm9yZSB7IGNvbnRlbnQ6ICRwaW50ZXJlc3Q7IH1cbi5pY29uLXBpbnRlcmVzdC1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6ICRwaW50ZXJlc3Qtc2lnbjsgfVxuLmljb24tZ29vZ2xlLXBsdXMtc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkZ29vZ2xlLXBsdXMtc2lnbjsgfVxuLmljb24tZ29vZ2xlLXBsdXM6YmVmb3JlIHsgY29udGVudDogJGdvb2dsZS1wbHVzOyB9XG4uaWNvbi1tb25leTpiZWZvcmUgeyBjb250ZW50OiAkbW9uZXk7IH1cbi5pY29uLWNhcmV0LWRvd246YmVmb3JlIHsgY29udGVudDogJGNhcmV0LWRvd247IH1cbi5pY29uLWNhcmV0LXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRjYXJldC11cDsgfVxuLmljb24tY2FyZXQtbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkY2FyZXQtbGVmdDsgfVxuLmljb24tY2FyZXQtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGNhcmV0LXJpZ2h0OyB9XG4uaWNvbi1jb2x1bW5zOmJlZm9yZSB7IGNvbnRlbnQ6ICRjb2x1bW5zOyB9XG4uaWNvbi1zb3J0OmJlZm9yZSB7IGNvbnRlbnQ6ICRzb3J0OyB9XG4uaWNvbi1zb3J0LWRvd246YmVmb3JlIHsgY29udGVudDogJHNvcnQtZG93bjsgfVxuLmljb24tc29ydC11cDpiZWZvcmUgeyBjb250ZW50OiAkc29ydC11cDsgfVxuLmljb24tZW52ZWxvcGU6YmVmb3JlIHsgY29udGVudDogJGVudmVsb3BlOyB9XG4uaWNvbi1saW5rZWRpbjpiZWZvcmUgeyBjb250ZW50OiAkbGlua2VkaW47IH1cbi5pY29uLXJvdGF0ZS1sZWZ0OmJlZm9yZSxcbi5pY29uLXVuZG86YmVmb3JlIHsgY29udGVudDogJHVuZG87IH1cbi5pY29uLWxlZ2FsOmJlZm9yZSB7IGNvbnRlbnQ6ICRsZWdhbDsgfVxuLmljb24tZGFzaGJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICRkYXNoYm9hcmQ7IH1cbi5pY29uLWNvbW1lbnQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRjb21tZW50LWFsdDsgfVxuLmljb24tY29tbWVudHMtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRjb21tZW50cy1hbHQ7IH1cbi5pY29uLWJvbHQ6YmVmb3JlIHsgY29udGVudDogJGJvbHQ7IH1cbi5pY29uLXNpdGVtYXA6YmVmb3JlIHsgY29udGVudDogJHNpdGVtYXA7IH1cbi5pY29uLXVtYnJlbGxhOmJlZm9yZSB7IGNvbnRlbnQ6ICR1bWJyZWxsYTsgfVxuLmljb24tcGFzdGU6YmVmb3JlIHsgY29udGVudDogJHBhc3RlOyB9XG4uaWNvbi1saWdodGJ1bGI6YmVmb3JlIHsgY29udGVudDogJGxpZ2h0YnVsYjsgfVxuLmljb24tZXhjaGFuZ2U6YmVmb3JlIHsgY29udGVudDogJGV4Y2hhbmdlOyB9XG4uaWNvbi1jbG91ZC1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiAkY2xvdWQtZG93bmxvYWQ7IH1cbi5pY29uLWNsb3VkLXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiAkY2xvdWQtdXBsb2FkOyB9XG4uaWNvbi11c2VyLW1kOmJlZm9yZSB7IGNvbnRlbnQ6ICR1c2VyLW1kOyB9XG4uaWNvbi1zdGV0aG9zY29wZTpiZWZvcmUgeyBjb250ZW50OiAkc3RldGhvc2NvcGU7IH1cbi5pY29uLXN1aXRjYXNlOmJlZm9yZSB7IGNvbnRlbnQ6ICRzdWl0Y2FzZTsgfVxuLmljb24tYmVsbC1hbHQ6YmVmb3JlIHsgY29udGVudDogJGJlbGwtYWx0OyB9XG4uaWNvbi1jb2ZmZWU6YmVmb3JlIHsgY29udGVudDogJGNvZmZlZTsgfVxuLmljb24tZm9vZDpiZWZvcmUgeyBjb250ZW50OiAkZm9vZDsgfVxuLmljb24tZmlsZS10ZXh0LWFsdDpiZWZvcmUgeyBjb250ZW50OiAkZmlsZS10ZXh0LWFsdDsgfVxuLmljb24tYnVpbGRpbmc6YmVmb3JlIHsgY29udGVudDogJGJ1aWxkaW5nOyB9XG4uaWNvbi1ob3NwaXRhbDpiZWZvcmUgeyBjb250ZW50OiAkaG9zcGl0YWw7IH1cbi5pY29uLWFtYnVsYW5jZTpiZWZvcmUgeyBjb250ZW50OiAkYW1idWxhbmNlOyB9XG4uaWNvbi1tZWRraXQ6YmVmb3JlIHsgY29udGVudDogJG1lZGtpdDsgfVxuLmljb24tZmlnaHRlci1qZXQ6YmVmb3JlIHsgY29udGVudDogJGZpZ2h0ZXItamV0OyB9XG4uaWNvbi1iZWVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRiZWVyOyB9XG4uaWNvbi1oLXNpZ246YmVmb3JlIHsgY29udGVudDogJGgtc2lnbjsgfVxuLmljb24tcGx1cy1zaWduLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkcGx1cy1zaWduLWFsdDsgfVxuLmljb24tZG91YmxlLWFuZ2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGRvdWJsZS1hbmdsZS1sZWZ0OyB9XG4uaWNvbi1kb3VibGUtYW5nbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGRvdWJsZS1hbmdsZS1yaWdodDsgfVxuLmljb24tZG91YmxlLWFuZ2xlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRkb3VibGUtYW5nbGUtdXA7IH1cbi5pY29uLWRvdWJsZS1hbmdsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRkb3VibGUtYW5nbGUtZG93bjsgfVxuLmljb24tYW5nbGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkYW5nbGUtbGVmdDsgfVxuLmljb24tYW5nbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJGFuZ2xlLXJpZ2h0OyB9XG4uaWNvbi1hbmdsZS11cDpiZWZvcmUgeyBjb250ZW50OiAkYW5nbGUtdXA7IH1cbi5pY29uLWFuZ2xlLWRvd246YmVmb3JlIHsgY29udGVudDogJGFuZ2xlLWRvd247IH1cbi5pY29uLWRlc2t0b3A6YmVmb3JlIHsgY29udGVudDogJGRlc2t0b3A7IH1cbi5pY29uLWxhcHRvcDpiZWZvcmUgeyBjb250ZW50OiAkbGFwdG9wOyB9XG4uaWNvbi10YWJsZXQ6YmVmb3JlIHsgY29udGVudDogJHRhYmxldDsgfVxuLmljb24tbW9iaWxlLXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6ICRtb2JpbGUtcGhvbmU7IH1cbi5pY29uLWNpcmNsZS1ibGFuazpiZWZvcmUgeyBjb250ZW50OiAkY2lyY2xlLWJsYW5rOyB9XG4uaWNvbi1xdW90ZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6ICRxdW90ZS1sZWZ0OyB9XG4uaWNvbi1xdW90ZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAkcXVvdGUtcmlnaHQ7IH1cbi5pY29uLXNwaW5uZXI6YmVmb3JlIHsgY29udGVudDogJHNwaW5uZXI7IH1cbi5pY29uLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiAkY2lyY2xlOyB9XG4uaWNvbi1tYWlsLXJlcGx5OmJlZm9yZSxcbi5pY29uLXJlcGx5OmJlZm9yZSB7IGNvbnRlbnQ6ICRyZXBseTsgfVxuLmljb24tZ2l0aHViLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkZ2l0aHViLWFsdDsgfVxuLmljb24tZm9sZGVyLWNsb3NlLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkZm9sZGVyLWNsb3NlLWFsdDsgfVxuLmljb24tZm9sZGVyLW9wZW4tYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRmb2xkZXItb3Blbi1hbHQ7IH1cbi5pY29uLWV4cGFuZC1hbHQ6YmVmb3JlIHsgY29udGVudDogJGV4cGFuZC1hbHQ7IH1cbi5pY29uLWNvbGxhcHNlLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkY29sbGFwc2UtYWx0OyB9XG4uaWNvbi1zbWlsZTpiZWZvcmUgeyBjb250ZW50OiAkc21pbGU7IH1cbi5pY29uLWZyb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICRmcm93bjsgfVxuLmljb24tbWVoOmJlZm9yZSB7IGNvbnRlbnQ6ICRtZWg7IH1cbi5pY29uLWdhbWVwYWQ6YmVmb3JlIHsgY29udGVudDogJGdhbWVwYWQ7IH1cbi5pY29uLWtleWJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6ICRrZXlib2FyZDsgfVxuLmljb24tZmxhZy1hbHQ6YmVmb3JlIHsgY29udGVudDogJGZsYWctYWx0OyB9XG4uaWNvbi1mbGFnLWNoZWNrZXJlZDpiZWZvcmUgeyBjb250ZW50OiAkZmxhZy1jaGVja2VyZWQ7IH1cbi5pY29uLXRlcm1pbmFsOmJlZm9yZSB7IGNvbnRlbnQ6ICR0ZXJtaW5hbDsgfVxuLmljb24tY29kZTpiZWZvcmUgeyBjb250ZW50OiAkY29kZTsgfVxuLmljb24tcmVwbHktYWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICRyZXBseS1hbGw7IH1cbi5pY29uLW1haWwtcmVwbHktYWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICRtYWlsLXJlcGx5LWFsbDsgfVxuLmljb24tc3Rhci1oYWxmLWZ1bGw6YmVmb3JlLFxuLmljb24tc3Rhci1oYWxmLWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICRzdGFyLWhhbGYtZW1wdHk7IH1cbi5pY29uLWxvY2F0aW9uLWFycm93OmJlZm9yZSB7IGNvbnRlbnQ6ICRsb2NhdGlvbi1hcnJvdzsgfVxuLmljb24tY3JvcDpiZWZvcmUgeyBjb250ZW50OiAkY3JvcDsgfVxuLmljb24tY29kZS1mb3JrOmJlZm9yZSB7IGNvbnRlbnQ6ICRjb2RlLWZvcms7IH1cbi5pY29uLXVubGluazpiZWZvcmUgeyBjb250ZW50OiAkdW5saW5rOyB9XG4uaWNvbi1xdWVzdGlvbjpiZWZvcmUgeyBjb250ZW50OiAkcXVlc3Rpb247IH1cbi5pY29uLWluZm86YmVmb3JlIHsgY29udGVudDogJGluZm87IH1cbi5pY29uLWV4Y2xhbWF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICRleGNsYW1hdGlvbjsgfVxuLmljb24tc3VwZXJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogJHN1cGVyc2NyaXB0OyB9XG4uaWNvbi1zdWJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogJHN1YnNjcmlwdDsgfVxuLmljb24tZXJhc2VyOmJlZm9yZSB7IGNvbnRlbnQ6ICRlcmFzZXI7IH1cbi5pY29uLXB1enpsZS1waWVjZTpiZWZvcmUgeyBjb250ZW50OiAkcHV6emxlLXBpZWNlOyB9XG4uaWNvbi1taWNyb3Bob25lOmJlZm9yZSB7IGNvbnRlbnQ6ICRtaWNyb3Bob25lOyB9XG4uaWNvbi1taWNyb3Bob25lLW9mZjpiZWZvcmUgeyBjb250ZW50OiAkbWljcm9waG9uZS1vZmY7IH1cbi5pY29uLXNoaWVsZDpiZWZvcmUgeyBjb250ZW50OiAkc2hpZWxkOyB9XG4uaWNvbi1jYWxlbmRhci1lbXB0eTpiZWZvcmUgeyBjb250ZW50OiAkY2FsZW5kYXItZW1wdHk7IH1cbi5pY29uLWZpcmUtZXh0aW5ndWlzaGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRmaXJlLWV4dGluZ3Vpc2hlcjsgfVxuLmljb24tcm9ja2V0OmJlZm9yZSB7IGNvbnRlbnQ6ICRyb2NrZXQ7IH1cbi5pY29uLW1heGNkbjpiZWZvcmUgeyBjb250ZW50OiAkbWF4Y2RuOyB9XG4uaWNvbi1jaGV2cm9uLXNpZ24tbGVmdDpiZWZvcmUgeyBjb250ZW50OiAkY2hldnJvbi1zaWduLWxlZnQ7IH1cbi5pY29uLWNoZXZyb24tc2lnbi1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAkY2hldnJvbi1zaWduLXJpZ2h0OyB9XG4uaWNvbi1jaGV2cm9uLXNpZ24tdXA6YmVmb3JlIHsgY29udGVudDogJGNoZXZyb24tc2lnbi11cDsgfVxuLmljb24tY2hldnJvbi1zaWduLWRvd246YmVmb3JlIHsgY29udGVudDogJGNoZXZyb24tc2lnbi1kb3duOyB9XG4uaWNvbi1odG1sNTpiZWZvcmUgeyBjb250ZW50OiAkaHRtbDU7IH1cbi5pY29uLWNzczM6YmVmb3JlIHsgY29udGVudDogJGNzczM7IH1cbi5pY29uLWFuY2hvcjpiZWZvcmUgeyBjb250ZW50OiAkYW5jaG9yOyB9XG4uaWNvbi11bmxvY2stYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICR1bmxvY2stYWx0OyB9XG4uaWNvbi1idWxsc2V5ZTpiZWZvcmUgeyBjb250ZW50OiAkYnVsbHNleWU7IH1cbi5pY29uLWVsbGlwc2lzLWhvcml6b250YWw6YmVmb3JlIHsgY29udGVudDogJGVsbGlwc2lzLWhvcml6b250YWw7IH1cbi5pY29uLWVsbGlwc2lzLXZlcnRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6ICRlbGxpcHNpcy12ZXJ0aWNhbDsgfVxuLmljb24tcnNzLXNpZ246YmVmb3JlIHsgY29udGVudDogJHJzcy1zaWduOyB9XG4uaWNvbi1wbGF5LXNpZ246YmVmb3JlIHsgY29udGVudDogJHBsYXktc2lnbjsgfVxuLmljb24tdGlja2V0OmJlZm9yZSB7IGNvbnRlbnQ6ICR0aWNrZXQ7IH1cbi5pY29uLW1pbnVzLXNpZ24tYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRtaW51cy1zaWduLWFsdDsgfVxuLmljb24tY2hlY2stbWludXM6YmVmb3JlIHsgY29udGVudDogJGNoZWNrLW1pbnVzOyB9XG4uaWNvbi1sZXZlbC11cDpiZWZvcmUgeyBjb250ZW50OiAkbGV2ZWwtdXA7IH1cbi5pY29uLWxldmVsLWRvd246YmVmb3JlIHsgY29udGVudDogJGxldmVsLWRvd247IH1cbi5pY29uLWNoZWNrLXNpZ246YmVmb3JlIHsgY29udGVudDogJGNoZWNrLXNpZ247IH1cbi5pY29uLWVkaXQtc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkZWRpdC1zaWduOyB9XG4uaWNvbi1leHRlcm5hbC1saW5rLXNpZ246YmVmb3JlIHsgY29udGVudDogJGV4dGVybmFsLWxpbmstc2lnbjsgfVxuLmljb24tc2hhcmUtc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkc2hhcmUtc2lnbjsgfVxuLmljb24tY29tcGFzczpiZWZvcmUgeyBjb250ZW50OiAkY29tcGFzczsgfVxuLmljb24tY29sbGFwc2U6YmVmb3JlIHsgY29udGVudDogJGNvbGxhcHNlOyB9XG4uaWNvbi1jb2xsYXBzZS10b3A6YmVmb3JlIHsgY29udGVudDogJGNvbGxhcHNlLXRvcDsgfVxuLmljb24tZXhwYW5kOmJlZm9yZSB7IGNvbnRlbnQ6ICRleHBhbmQ7IH1cbi5pY29uLWV1cm86YmVmb3JlLFxuLmljb24tZXVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRldXI7IH1cbi5pY29uLWdicDpiZWZvcmUgeyBjb250ZW50OiAkZ2JwOyB9XG4uaWNvbi1kb2xsYXI6YmVmb3JlLFxuLmljb24tdXNkOmJlZm9yZSB7IGNvbnRlbnQ6ICR1c2Q7IH1cbi5pY29uLXJ1cGVlOmJlZm9yZSxcbi5pY29uLWlucjpiZWZvcmUgeyBjb250ZW50OiAkaW5yOyB9XG4uaWNvbi15ZW46YmVmb3JlLFxuLmljb24tanB5OmJlZm9yZSB7IGNvbnRlbnQ6ICRqcHk7IH1cbi5pY29uLXJlbm1pbmJpOmJlZm9yZSxcbi5pY29uLWNueTpiZWZvcmUgeyBjb250ZW50OiAkY255OyB9XG4uaWNvbi13b246YmVmb3JlLFxuLmljb24ta3J3OmJlZm9yZSB7IGNvbnRlbnQ6ICRrcnc7IH1cbi5pY29uLWJpdGNvaW46YmVmb3JlLFxuLmljb24tYnRjOmJlZm9yZSB7IGNvbnRlbnQ6ICRidGM7IH1cbi5pY29uLWZpbGU6YmVmb3JlIHsgY29udGVudDogJGZpbGU7IH1cbi5pY29uLWZpbGUtdGV4dDpiZWZvcmUgeyBjb250ZW50OiAkZmlsZS10ZXh0OyB9XG4uaWNvbi1zb3J0LWJ5LWFscGhhYmV0OmJlZm9yZSB7IGNvbnRlbnQ6ICRzb3J0LWJ5LWFscGhhYmV0OyB9XG4uaWNvbi1zb3J0LWJ5LWFscGhhYmV0LWFsdDpiZWZvcmUgeyBjb250ZW50OiAkc29ydC1ieS1hbHBoYWJldC1hbHQ7IH1cbi5pY29uLXNvcnQtYnktYXR0cmlidXRlczpiZWZvcmUgeyBjb250ZW50OiAkc29ydC1ieS1hdHRyaWJ1dGVzOyB9XG4uaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICRzb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0OyB9XG4uaWNvbi1zb3J0LWJ5LW9yZGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICRzb3J0LWJ5LW9yZGVyOyB9XG4uaWNvbi1zb3J0LWJ5LW9yZGVyLWFsdDpiZWZvcmUgeyBjb250ZW50OiAkc29ydC1ieS1vcmRlci1hbHQ7IH1cbi5pY29uLXRodW1icy11cDpiZWZvcmUgeyBjb250ZW50OiAkdGh1bWJzLXVwOyB9XG4uaWNvbi10aHVtYnMtZG93bjpiZWZvcmUgeyBjb250ZW50OiAkdGh1bWJzLWRvd247IH1cbi5pY29uLXlvdXR1YmUtc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkeW91dHViZS1zaWduOyB9XG4uaWNvbi15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6ICR5b3V0dWJlOyB9XG4uaWNvbi14aW5nOmJlZm9yZSB7IGNvbnRlbnQ6ICR4aW5nOyB9XG4uaWNvbi14aW5nLXNpZ246YmVmb3JlIHsgY29udGVudDogJHhpbmctc2lnbjsgfVxuLmljb24teW91dHViZS1wbGF5OmJlZm9yZSB7IGNvbnRlbnQ6ICR5b3V0dWJlLXBsYXk7IH1cbi5pY29uLWRyb3Bib3g6YmVmb3JlIHsgY29udGVudDogJGRyb3Bib3g7IH1cbi5pY29uLXN0YWNrZXhjaGFuZ2U6YmVmb3JlIHsgY29udGVudDogJHN0YWNrZXhjaGFuZ2U7IH1cbi5pY29uLWluc3RhZ3JhbTpiZWZvcmUgeyBjb250ZW50OiAkaW5zdGFncmFtOyB9XG4uaWNvbi1mbGlja3I6YmVmb3JlIHsgY29udGVudDogJGZsaWNrcjsgfVxuLmljb24tYWRuOmJlZm9yZSB7IGNvbnRlbnQ6ICRhZG47IH1cbi5pY29uLWJpdGJ1Y2tldDpiZWZvcmUgeyBjb250ZW50OiAkYml0YnVja2V0OyB9XG4uaWNvbi1iaXRidWNrZXQtc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkYml0YnVja2V0LXNpZ247IH1cbi5pY29uLXR1bWJscjpiZWZvcmUgeyBjb250ZW50OiAkdHVtYmxyOyB9XG4uaWNvbi10dW1ibHItc2lnbjpiZWZvcmUgeyBjb250ZW50OiAkdHVtYmxyLXNpZ247IH1cbi5pY29uLWxvbmctYXJyb3ctZG93bjpiZWZvcmUgeyBjb250ZW50OiAkbG9uZy1hcnJvdy1kb3duOyB9XG4uaWNvbi1sb25nLWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICRsb25nLWFycm93LXVwOyB9XG4uaWNvbi1sb25nLWFycm93LWxlZnQ6YmVmb3JlIHsgY29udGVudDogJGxvbmctYXJyb3ctbGVmdDsgfVxuLmljb24tbG9uZy1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAkbG9uZy1hcnJvdy1yaWdodDsgfVxuLmljb24tYXBwbGU6YmVmb3JlIHsgY29udGVudDogJGFwcGxlOyB9XG4uaWNvbi13aW5kb3dzOmJlZm9yZSB7IGNvbnRlbnQ6ICR3aW5kb3dzOyB9XG4uaWNvbi1hbmRyb2lkOmJlZm9yZSB7IGNvbnRlbnQ6ICRhbmRyb2lkOyB9XG4uaWNvbi1saW51eDpiZWZvcmUgeyBjb250ZW50OiAkbGludXg7IH1cbi5pY29uLWRyaWJiYmxlOmJlZm9yZSB7IGNvbnRlbnQ6ICRkcmliYmJsZTsgfVxuLmljb24tc2t5cGU6YmVmb3JlIHsgY29udGVudDogJHNreXBlOyB9XG4uaWNvbi1mb3Vyc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmb3Vyc3F1YXJlOyB9XG4uaWNvbi10cmVsbG86YmVmb3JlIHsgY29udGVudDogJHRyZWxsbzsgfVxuLmljb24tZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6ICRmZW1hbGU7IH1cbi5pY29uLW1hbGU6YmVmb3JlIHsgY29udGVudDogJG1hbGU7IH1cbi5pY29uLWdpdHRpcDpiZWZvcmUgeyBjb250ZW50OiAkZ2l0dGlwOyB9XG4uaWNvbi1zdW46YmVmb3JlIHsgY29udGVudDogJHN1bjsgfVxuLmljb24tbW9vbjpiZWZvcmUgeyBjb250ZW50OiAkbW9vbjsgfVxuLmljb24tYXJjaGl2ZTpiZWZvcmUgeyBjb250ZW50OiAkYXJjaGl2ZTsgfVxuLmljb24tYnVnOmJlZm9yZSB7IGNvbnRlbnQ6ICRidWc7IH1cbi5pY29uLXZrOmJlZm9yZSB7IGNvbnRlbnQ6ICR2azsgfVxuLmljb24td2VpYm86YmVmb3JlIHsgY29udGVudDogJHdlaWJvOyB9XG4uaWNvbi1yZW5yZW46YmVmb3JlIHsgY29udGVudDogJHJlbnJlbjsgfVxuIiwiQGltcG9ydCBcImdsb2JhbFwiO1xuXG5AaW1wb3J0IFwidmVuZG9yL25vcm1hbGl6ZVwiO1xuQGltcG9ydCBcImZvbnRzXCI7XG5cbi8qIFJlc2V0ICovXG5cbioge1xuXHRAaW5jbHVkZSBib3gtc2l6aW5nKCBib3JkZXItYm94ICk7XG59XG5cbmh0bWwsXG5ib2R5IHtcblx0bWluLXdpZHRoOiAzMjBweDtcbn1cblxuYm9keSxcbmJ1dHRvbiB7XG5cdEBpbmNsdWRlIGJvZHktZm9udHM7XG59XG5cbmJvZHkge1xuXHRjb2xvcjogJGJvZHktdGV4dC1jb2xvcjtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG59XG5cbmgxLFxuaDIge1xuXHRtYXJnaW46IDA7XG5cdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vL3dlYmZvbnQgZmFsbGJhY2sgYWRqdXN0bWVudFxuaHRtbDpub3QoLndmLXByb3hpbWFub3ZhLW4zLWFjdGl2ZSkgcCB7XG5cdGxldHRlci1zcGFjaW5nOi0wLjAxOGVtO1xufVxuXG5idXR0b25bY2xhc3NePVwiaWNvbi1cIl0sXG5idXR0b25bY2xhc3MqPVwiIGljb24tXCJdIHtcblx0YmFja2dyb3VuZDogbm9uZTtcblx0Ym9yZGVyOiBub25lO1xufVxuXG5AaW1wb3J0IFwiZmx1aWQtdHlwZVwiO1xuXG4vKiBHbG9iYWwgU3R5bGVzICovXG5cbi5iciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubm9iciB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5idG4ge1xuXHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKCA2cHggKTtcblx0QGluY2x1ZGUgc3Ryb25nLWN0YS10ZXh0O1xuXHRAaW5jbHVkZSB0ZXh0LXNpemUtODtcblx0QGluY2x1ZGUgdGV4dC13ZWlnaHQtcmVnO1xuXG5cdGJvcmRlci1zdHlsZTogbm9uZTtcblx0Y29sb3I6IGluaGVyaXQ7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bGluZS1oZWlnaHQ6IDE7XG5cdHBhZGRpbmc6IDFlbTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG5cblx0JjphY3RpdmUge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cblxuLyogYXZvaWQgZGlzcGxheSBvZiBicm9rZW4gaW1hZ2UgaW4gbm9uIHN2ZyBicm93c2VycyAqL1xuLm5vLXN2ZyAuc3ZnLWltZyB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogY3JlYXRlIHJlc3BvbnNpdmUgcmF0aW8gd3JhcHBlciBmb3IgdXNlIHdpdGggc3ZnX2lubGluZSBoZWxwZXJcbnJhdGlvIGlzIGFkZGVkIGlubGluZSB2aWEgaGVscGVyICovXG4uc3ZnLWlubGluZS13cmFwIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0c3ZnIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwOyBib3R0b206IDA7XG5cdFx0bGVmdDogMDsgcmlnaHQ6IDA7XG5cdH1cbn1cblxuLm5vLXN2ZyAuc3ZnLWlubGluZS13cmFwIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGhlaWdodDogYXV0bztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG5cdGltZyB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG59XG4vKiBvdmVycmlkZSB0ZXh0LXRyYW5zZm9ybSBmb3Igc3BlY2lhbCBjYXNlcyAoZS5nLiBpUGhvbmUsIFBST2UpICovXG4ubG93ZXJjYXNlIHtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qIE1vZHVsZXMgKi9cblxuQGltcG9ydCBcIm1haW4taGVhZGVyXCI7XG5AaW1wb3J0IFwibWFpbi1uYXZcIjtcbi8qQGltcG9ydCBcIm1haW4tZm9vdGVyXCI7Ki9cblxuLyogUGFnZSBlbGVtZW50cyAqL1xuXG4ucGFnZS13cmFwcGVyIHtcblx0YmFja2dyb3VuZDogI0ZGRjtcblx0bWluLWhlaWdodDogMTAwJTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAkbGF5ZXItaW5kZXgtbWFpbi1jb250ZW50O1xufVxuXG4ucGFnZS1jb250ZW50IHtcblx0Ji5hZGQtaGVhZGVyLXNwYWNlIHtcblx0XHRwYWRkaW5nLXRvcDogJHByb2R1Y3QtaGVhZGVyLWhlaWdodDtcblx0fVxufVxuXG4uY29udGVudC13cmFwcGVyIHtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0bWF4LXdpZHRoOiAkbWF4LWNvbnRlbnQtd2lkdGg7XG5cdHBhZGRpbmctbGVmdDogMjBweDtcblx0cGFkZGluZy1yaWdodDogMjBweDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCA0MjFweCApIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwJTtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMCU7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRtYXgtY29udGVudC13aWR0aCkge1xuXHRcdHBhZGRpbmctbGVmdDogMTUwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTUwcHg7XG5cdH1cbn1cblxuLm1haW4tY29udGVudCB7XG5cdGJhY2tncm91bmQ6ICNGRkY7XG5cblx0LmNyYXNocGxhbiAmLFxuXHQuc3RvcmUgJiB7XG5cdFx0cGFkZGluZy1ib3R0b206IDNlbTtcblx0fVxufVxuXG4ubW9kYWwtdmlkZW8tY29udGFpbmVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5jYXJ0LWNoZWNrZXIuY2FydC1pcy1lbXB0eSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbmJvZHkgPiBpbWcgeyAvKiBhcHBsaWVzIHRvIGFuYWx5dGljcyBpbWFnZXMgYXBwZW5kZWQgdG8gcGFnZSAqL1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IC0xcHg7IGJvdHRvbTogLTFweDtcbn1cblxuLyogQXBwbHkgdG8gQnJpZ2h0dGFnIGlGcmFtZSwgaW5zdGVhZCBvZiB3aXRoIGRlcHJlY2F0ZWQgYXR0cmlidXRlcywgZm9yIGh0bWwgdmFsaWRhdGlvbiAqL1xuLmJyaWdodHRhZy1pZnJhbWUge1xuXHRib3JkZXI6MDtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRtYXJnaW46MDtcbn1cblxuLyogTWFrZSBuZy1jbG9hay9oaWRlIHdvcmsgb24gbG9hZCBzaW5jZSB3ZSBsb2FkIEFuZ3VsYXJKUyBhZnRlciB0aGUgcGFnZSBsb2FkcyAqL1xuW25nXFw6Y2xvYWtdLCBbbmctY2xvYWtdLCBbZGF0YS1uZy1jbG9ha10sIFt4LW5nLWNsb2FrXSwgLm5nLWNsb2FrLCAueC1uZy1jbG9hayB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuW25nLWNsaWNrXSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuQGltcG9ydCBcInNpbXBsZS1tb2RhbFwiO1xuQGltcG9ydCBcImh0bWw1Ym9pbGVycGxhdGUtdXRpbGl0aWVzXCI7XG4iLCIvLyBCb3ggU2l6aW5nXG5cbkBpbXBvcnQgXCJjb21wYXNzL3N1cHBvcnRcIjtcblxuLy8gVGhlIHByZWZpeGVkIHN1cHBvcnQgdGhyZXNob2xkIGZvciBib3gtc2l6aW5nLlxuLy8gRGVmYXVsdHMgdG8gdGhlICRncmFjZWZ1bC11c2FnZS10aHJlc2hvbGQuXG4kYm94LXNpemluZy1zdXBwb3J0LXRocmVzaG9sZDogJGNyaXRpY2FsLXVzYWdlLXRocmVzaG9sZCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgYm94LXNpemluZyBtb2RlbCB3aGVuIG5vIGFyZ3VtZW50IGlzIHByb3ZpZGVkIHRvIHRoZSBib3gtc2l6aW5nIG1peGluOiBbIGNvbnRlbnQtYm94IHwgYm9yZGVyLWJveCB8IHBhZGRpbmctYm94IF1cbi8vXG4vLyBUaGUgYnJvd3NlciBkZWZhdWx0IGlzIGNvbnRlbnQtYm94LCBjb21wYXNzIGRlZmF1bHRzIHRvIGJvcmRlci1ib3guXG4kZGVmYXVsdC1ib3gtc2l6aW5nOiBib3JkZXItYm94ICFkZWZhdWx0O1xuXG5cbi8vIENoYW5nZSB0aGUgYm94IG1vZGVsIGZvciBNb3ppbGxhLCBXZWJraXQsIElFOCBhbmQgdGhlIGZ1dHVyZVxuLy9cbi8vICAgICAkYm94LW1vZGVsOiBbIGNvbnRlbnQtYm94IHwgYm9yZGVyLWJveCB8IHBhZGRpbmctYm94IF1cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gtbW9kZWw6ICRkZWZhdWx0LWJveC1zaXppbmcpIHtcbiAgJGJveC1tb2RlbDogdW5xdW90ZSgkYm94LW1vZGVsKTtcbiAgQGluY2x1ZGUgcHJlZml4ZWQtcHJvcGVydGllcyhjc3MzLWJveHNpemluZywgJGJveC1zaXppbmctc3VwcG9ydC10aHJlc2hvbGQsIChib3gtc2l6aW5nOiAkYm94LW1vZGVsKSk7XG59XG4iLCJAaW1wb3J0IFwiY29tcGFzc1wiO1xuQGltcG9ydCBcImJyZWFrcG9pbnRcIjtcblxuLy8gRGlzYWJsZSBzdXBwb3J0IGZvciBvbGRlciBsaW5lYXIgZ3JhZGllbnQgc3luZXggd2hpY2ggdGhyb3dzIGVycm9ycyBpbiBjb21wYXNzIDEyLjIgaHR0cHM6Ly9naXRodWIuY29tL2NocmlzZXBwc3RlaW4vY29tcGFzcy9pc3N1ZXMvODE0XG4kc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyA6IGZhbHNlO1xuXG4vKipcbiAqIENvbG9yc1xuICovXG5cbiRtYWluLW5hdi1saW5rLWNvbG9yOiAjRkZGO1xuJGJvZHktdGV4dC1jb2xvcjogIzQzNDk1MTtcbiRsaWdodC1ib3JkZXItY29sb3I6ICNFN0U3RTg7XG4kbWVkaXVtLWdyZXktYmx1ZS1jb2xvcjogIzg4OEY5ODtcbiRkYXJrLWJsdWUtY29sb3I6ICMxMDFGMzE7XG4kYnJhbmQtY29kZTQyLWNvbG9yOiAjRkU1MDAwO1xuJGJyYW5kLWNyYXNocGxhbi1jb25zdW1lci1jb2xvcjogIzdBQjcwMDtcbiRicmFuZC1jcmFzaHBsYW4tYnVzaW5lc3MtY29sb3I6ICMwMEJCRTM7XG4kYnJhbmQtY3Jhc2hwbGFuLWVudGVycHJpc2UtY29sb3I6ICMwMDA7XG4kYnJhbmQtc2hhcmVwbGFuLWNvbG9yOiAjRUYzMzQwO1xuJGNwLWdyZWVuLWM6ICM4OUJFMUU7XG4kY3Atc3RlcC1iYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1Zjc1O1xuXG4vKiBDcmFzaFBsYW4gYnVzaW5lc3MgY29sb3JzICovXG4kY3AtYnVzaW5lc3MtdGVhbDogIzAwQjRFRDtcblxuLyoqXG4gKiBGb250c1xuICovXG5cbi8qIERlZmF1bHQgYnJvd3NlciBmb250IHNpemUsIHVzZWQgZm9yIGNhbGN1bGF0aW9uLiBJZiBmb250LXNpemUgaXMgc2V0IG9uIEhUTUwgZWxlbWVudCwgc2V0IGFjY29yZGluZ2x5ICovXG4kYmFzZS1mb250LXNpemU6IDE2cHg7XG4kYmFzZS1mb250LXN0YWNrOiBcInByb3hpbWEtbm92YVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4vKipcbiAqIEJyZWFrcG9pbnRzXG4gKi9cblxuJG1heC1jb250ZW50LXdpZHRoOiAxNDAwcHg7XG4kYmFubmVyLWJyZWFrcG9pbnQ6IDcyMHB4O1xuJG1vYmlsZS1icmVha3BvaW50OiA3MjBweDtcbiRkZXNrdG9wLWJyZWFrcG9pbnQ6IDEwMjRweDtcblxuLyoqXG4gKiBNYWluIEhlYWRlcnNcbiAqKi9cbiRoZWFkZXItbGVmdC1yaWdodC1wYWRkaW5nOiAyMHB4O1xuJGM0Mi1oZWFkZXItbG9nby1oZWlnaHQ6IDMycHg7XG4kYzQyLWhlYWRlci1sb2dvLXdpZHRoOiAxNDFweDtcbiRjNDItcHJvZHVjdC1oZWFkZXItbG9nby1oZWlnaHQ6IDE4cHg7XG4kYzQyLXByb2R1Y3QtaGVhZGVyLWxvZ28td2lkdGg6IDgxcHg7XG4kYzQyLXByb2R1Y3QtaGVhZGVyLXBhZGRpbmc6IDEycHg7XG4kYzQyLWhlYWRlci1wYWRkaW5nOiAyNHB4O1xuJHByb2R1Y3QtaGVhZGVyLWxvZ28taGVpZ2h0OiAyM3B4O1xuJHByb2R1Y3QtaGVhZGVyLWxvZ28td2lkdGg6IDE2NXB4O1xuJHByb2R1Y3QtaGVhZGVyLW91dGVyLWhlaWdodDogNTNweDtcblxuJGM0Mi1oZWFkZXItaGVpZ2h0OiAkYzQyLWhlYWRlci1sb2dvLWhlaWdodCArICRjNDItaGVhZGVyLXBhZGRpbmcgKiAyO1xuJGM0Mi1oZWFkZXItaGVpZ2h0LW1vYmlsZTogKCRjNDItaGVhZGVyLWxvZ28taGVpZ2h0IC0gOSkgKyAoKCRjNDItaGVhZGVyLXBhZGRpbmcgLSA5KSAqIDIpO1xuJGM0Mi1wcm9kdWN0LWhlYWRlci1oZWlnaHQ6ICRjNDItcHJvZHVjdC1oZWFkZXItbG9nby1oZWlnaHQgKyAoJGM0Mi1wcm9kdWN0LWhlYWRlci1wYWRkaW5nICogMik7XG4kcHJvZHVjdC1oZWFkZXItaGVpZ2h0OiAkcHJvZHVjdC1oZWFkZXItb3V0ZXItaGVpZ2h0O1xuXG4vKipcbiAqIExheWVyc1xuICoqL1xuXG4kbGF5ZXItaW5jcmVtZW50OiA1O1xuJGxheWVyLWluZGV4LW1haW4tY29udGVudDogMTA7XG4kbGF5ZXItaW5kZXgtbWFpbi1uYXY6IDI7XG4kbGF5ZXItaW5kZXgtbWFpbi1oZWFkZXI6ICRsYXllci1pbmRleC1tYWluLWNvbnRlbnQgKyAkbGF5ZXItaW5jcmVtZW50O1xuXG4vKipcbiAqIEZsdWlkIFR5cGVcbiAqL1xuXG4kZmx1aWQtdHlwZS1icmVha3BvaW50LTE6IDY5NXB4O1xuJGZsdWlkLXR5cGUtYnJlYWtwb2ludC0yOiA4MjVweDtcbiRmbHVpZC10eXBlLWJyZWFrcG9pbnQtMzogOTI1cHg7XG5cbiRmbHVpZC10eXBlLWJyZWFrcG9pbnQtY3AtMTogNDgwcHg7XG4kZmx1aWQtdHlwZS1icmVha3BvaW50LWNwLTI6IDU4MHB4O1xuJGZsdWlkLXR5cGUtYnJlYWtwb2ludC1jcC0zOiA5MjVweDtcblxuLypcbiAqIE1peGluIHRvIHNwZWNpZnkgZmx1aWQgZm9udC1zaXplcyBhbmQgcmVsYXRlZCBwcm9wZXJ0aWVzXG4gKiAkYmFzZS1zaXplIEZvbnQgc2l6ZSBhdCBzaXplcyBsb3dlciB0aGFuIGZpcnN0IGJyZWFrcG9pbnRcbiAqICRzaXplLWF0LWJwLTEgRm9udCBzaXplIGJldHdlZW4gZmlyc3QgYW5kIHNlY29uZCBicmVha3BvaW50c1xuICogJHNpemUtYXQtYnAtMiBGb250IHNpemUgYmV0d2VlbiBzZWNvbmQgYW5kIHRoaXJkIGJyZWFrcG9pbnRzXG4gKiAkc2l6ZS1hdC1icC0zIEZvbnQgc2l6ZSBhdCB0aGlyZCBidHJha3BvaW50IGFuZCBsYXJnZXJcbiAqICRsaW5lLWhlaWdodCBMaW5lIGhlaWdodCwgZGVmYXVsdHMgdG8gMS40XG4gKi9cbkBtaXhpbiBmbHVpZC10eXBlLWZvbnQtc2l6ZSggJGJhc2Utc2l6ZSwgJHNpemUtYXQtYnAtMSwgJHNpemUtYXQtYnAtMiwgJHNpemUtYXQtYnAtMywgJGxpbmUtaGVpZ2h0OiAxLjQgKSB7XG5cdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAkYmFzZS1zaXplICk7XG5cblx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkZmx1aWQtdHlwZS1icmVha3BvaW50LTEgKSB7XG5cdFx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsICRzaXplLWF0LWJwLTEgKTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRmbHVpZC10eXBlLWJyZWFrcG9pbnQtMiApIHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgJHNpemUtYXQtYnAtMiApO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGZsdWlkLXR5cGUtYnJlYWtwb2ludC0zICkge1xuXHRcdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAkc2l6ZS1hdC1icC0zICk7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkZmx1aWQtdHlwZS1icmVha3BvaW50LWNwLTEgKSB7XG5cdFx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsICRzaXplLWF0LWJwLTEgKTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRmbHVpZC10eXBlLWJyZWFrcG9pbnQtY3AtMiApIHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgJHNpemUtYXQtYnAtMiApO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGZsdWlkLXR5cGUtYnJlYWtwb2ludC1jcC0zICkge1xuXHRcdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAkc2l6ZS1hdC1icC0zICk7XG5cdH1cbn1cblxuLyogTGFyZ2VzdCB0ZXh0IHNpemUuIFVzZWQgZXhjdXNpdmVseSBmb3IgbWFpbiBoZWFkbGluZXMgKi9cbkBtaXhpbiB0ZXh0LXNpemUtMSB7XG5cdEBpbmNsdWRlIGZsdWlkLXR5cGUtZm9udC1zaXplKCAzNHB4LCAzOHB4LCA0NHB4LCA0OHB4ICk7XG5cdEBpbmNsdWRlIGhlYWRlci1mb250cztcbn1cblxuQG1peGluIHRleHQtc2l6ZS0yIHtcblx0QGluY2x1ZGUgZmx1aWQtdHlwZS1mb250LXNpemUoIDIycHgsIDI2cHgsIDMycHgsIDM2cHgsICg0OHB4LzM2cHgpICk7XG59XG5cbkBtaXhpbiB0ZXh0LXNpemUtMyB7XG5cdEBpbmNsdWRlIGZsdWlkLXR5cGUtZm9udC1zaXplKCAyMXB4LCAyM3B4LCAyNnB4LCAyOHB4ICk7XG59XG5cbkBtaXhpbiB0ZXh0LXNpemUtNCB7XG5cdEBpbmNsdWRlIGZsdWlkLXR5cGUtZm9udC1zaXplKCAyMHB4LCAyMnB4LCAyNHB4LCAyNnB4LCAoMzJweC8yNnB4KSApO1xufVxuXG4vKiBTaXplIGZvciBtYWluIGJvZHkgdGV4dCAqL1xuQG1peGluIHRleHQtc2l6ZS01IHtcblx0QGluY2x1ZGUgZmx1aWQtdHlwZS1mb250LXNpemUoIDE2cHgsIDE3cHgsIDE5cHgsIDIxcHggKTtcbn1cblxuLyogU21hbGxlc3QgdGV4dCBzaXplLiBVc2VkIGZvciBjb2x1bW4gYm9keSB0ZXh0ICovXG5AbWl4aW4gdGV4dC1zaXplLTYge1xuXHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMTZweCApO1xuXG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi8qIEV4Y2VwdGlvbjogdGlueSB0ZXh0ICovXG5AbWl4aW4gdGV4dC1zaXplLTcge1xuXHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMTJweCApO1xuXG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbkBtaXhpbiB0ZXh0LXNpemUtOCB7XG5cdEBpbmNsdWRlIGZsdWlkLXR5cGUtZm9udC1zaXplKCAxNHB4LCAxN3B4LCAxOXB4LCAyMXB4ICk7XG59XG5cbkBtaXhpbiB0ZXh0LXdlaWdodC1ub3JtYWwge1xuXHRmb250LXdlaWdodDogMzAwO1xufVxuXG5AbWl4aW4gdGV4dC13ZWlnaHQtcmVnIHtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1peGluIHRleHQtd2VpZ2h0LWJvbGQge1xuXHRmb250LXdlaWdodDogNjAwO1xufVxuXG5AbWl4aW4gdGV4dC13ZWlnaHQtdGhpbiB7XG5cdGZvbnQtd2VpZ2h0OiAxMDA7XG59XG5cblxuLyoqXG4gKiBTaXRlIFN0eWxlIE1peGluc1xuICovXG5cbkBtaXhpbiBib2R5LWZvbnRzIHtcblx0QGluY2x1ZGUgdGV4dC13ZWlnaHQtbm9ybWFsO1xuXG5cdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LXN0YWNrO1xufVxuXG5AbWl4aW4gaGVhZGVyLWZvbnRzIHtcblx0Zm9udC1mYW1pbHk6IFwiVGFiYWNTbGFiXCIsIHNhbnMtc2VyaWY7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBVc2VkIGZvciBlbGVtZW50cyB1c2luZyBmb250LWF3ZXNvbWUuICovXG5AbWl4aW4gZm9udC1hd2Vzb21lLWNvbnRlbnQge1xuXHRmb250LWZhbWlseTogJGljb24tZm9udDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHR0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG4vKiAqL1xuQG1peGluIHN0cm9uZy1jdGEtdGV4dCB7XG5cdGxldHRlci1zcGFjaW5nOiAuMTI1ZW07XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi8qICovXG5AbWl4aW4gc3Ryb25nLWN0YS10ZXh0LW5lZ2F0ZSB7XG5cdGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIFV0aWxpdHkgTWl4aW5zXG4gKipcblxuLyogRGlzYWJsZSBsaXN0IHN0eWxlIGFuZCBkZWZhdWx0IG1hcmdpbi9wYWRkaW5nICovXG5AbWl4aW4gbGlzdC1yZXNldCB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLyogUmVzZXQgbGluayBjb2xvciBpbmhlcml0YW5jZSAqL1xuQG1peGluIGxpbmstY29sb3ItcmVzZXQoKSB7XG5cdGEge1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGJyYW5kLWNvZGU0Mi1jb2xvcjtcblx0XHR9XG5cdH1cbn1cblxuLyogRGlzcGxheSB1bCBvciBvbCBob3Jpem9udGFsbHkgKi9cbkBtaXhpbiBob3Jpem9udGFsLWxpc3Qge1xuXG5cdD4gbGkge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG59XG5cbi8qIFJlc2V0IGJyb3dzZXIgZGVmYXVsdHMgZm9yIGJ1dHRvbiBlbGVtZW50ICovXG5AbWl4aW4gYnV0dG9uLXJlc2V0IHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogbm9uZTtcblx0Y29sb3I6IGluaGVyaXQ7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qIFNldCBwcm9wZXJ0eSB3aXRoIHJnYmEgY29sb3IgYW5kIGZhbGxiYWNrICovXG5AbWl4aW4gcHJvcGVydHktcmdiYSggJHByb3BlcnR5LCAkY29sb3IsICRvcGFjaXR5ICkge1xuXHQjeyRwcm9wZXJ0eX06ICRjb2xvcjtcblx0I3skcHJvcGVydHl9OiByZ2JhKCAkY29sb3IsICRvcGFjaXR5ICk7XG59XG5cbi8qIFNldCBib3JkZXIgKG9yIGJvcmRlci10b3AsIGJvcmRlci1sZWZ0LCBldGMuLi4pIHdpdGggcmdiYSBjb2xvciBhbmQgZmFsbGJhY2sgKi9cbkBtaXhpbiBib3JkZXItcmdiYSggJHByb3BlcnR5LCAkd2lkdGgsICRzdHlsZSwgJGNvbG9yLCAkb3BhY2l0eSApIHtcblx0I3skcHJvcGVydHl9OiAkd2lkdGggJHN0eWxlICRjb2xvcjtcblx0I3skcHJvcGVydHl9OiAkd2lkdGggJHN0eWxlIHJnYmEoICRjb2xvciwgJG9wYWNpdHkgKTtcbn1cblxuLyogVXNlIHJlbSB1bml0cyB3aXRoIHB4IGZhbGxiYWNrIGZvciBjb21wYXRhYmlsaXR5LiBUYWtlcyBlaXRoZXIgKHVuaXRsZXNzKSByZW0gb3IgcHggKi9cbkBtaXhpbiByZW0gKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG5cdCRmYWxsYmFjazogJHZhbHVlICogJGJhc2UtZm9udC1zaXplO1xuXHQkcmVtLXZhbDogJHZhbHVlO1xuXG5cdEBpZiB1bml0KCR2YWx1ZSkgPT0gXCJweFwiIHtcblx0XHQkZmFsbGJhY2s6ICR2YWx1ZTtcblx0XHQkcmVtLXZhbDogI3skdmFsdWUgLyAkYmFzZS1mb250LXNpemV9O1xuXHR9XG5cblx0I3skcHJvcGVydHl9OiAkZmFsbGJhY2s7XG5cdCN7JHByb3BlcnR5fTogI3skcmVtLXZhbH1yZW07XG59XG5cbi8qIFNldCBiYWNrZ3JvdW5kIHByb3BlcnR5IHdpdGggc3ZnXG4gKiAkaW1hZ2UgaXMgcGF0aCB0byBpbWFnZSB3aXRob3V0IGV4dGVuc2lvbiwgc2FtZSBwYXRoIGlzIHVzZWQgZm9yIHBuZyBmYWxsYmFja1xuICogJHByb3BlcnRpZXMgaXMgdGhlIHJlc3Qgb2YgdGhlIGJhY2tncm91bmQgcHJvcGVydGllcyAoZS5nIG5vLXJlcGVhdCAwIDApXG4gKiAkY29sb3IgaXMgb3B0aW9uYWwgYW5kIGlzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHRoYXQgc2hvdWxkIGJlIHVzZWQsIGRlZmF1bHQgaXMgdHJhbnNwYXJlbnQuXG4gKi9cbkBtaXhpbiBzdmctYmFja2dyb3VuZCggJGltYWdlLCAkcHJvcGVydGllcywgJGNvbG9yOiB0cmFuc3BhcmVudCApIHtcblxuXHRiYWNrZ3JvdW5kOiAkY29sb3IgdXJsKFwiaW1hZ2VzLyN7JGltYWdlfS5zdmdcIikgJHByb3BlcnRpZXM7XG5cblx0Lm5vLXN2ZyAmIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvI3skaW1hZ2V9LnBuZ1wiKTtcblx0fVxufVxuXG4vKiBTZXQgYmFja2dyb3VuZCBpbWFnZSBwcm9wZXJ0eSB3aXRoIHN2Z1xuICogJGltYWdlIGlzIHBhdGggdG8gaW1hZ2Ugd2l0aG91dCBleHRlbnNpb24sIHNhbWUgcGF0aCBpcyB1c2VkIGZvciBwbmcgZmFsbGJhY2tcbiAqL1xuQG1peGluIHN2Zy1iYWNrZ3JvdW5kLWltYWdlKCAkaW1hZ2UgKSB7XG5cblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzLyN7JGltYWdlfS5zdmdcIik7XG5cblx0Lm5vLXN2ZyAmIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvI3skaW1hZ2V9LnBuZ1wiKTtcblx0fVxufVxuXG4vKiBVc2VkIGZvciBlbGVtZW50cyB1c2luZyBmb250LWF3ZXNvbWUgd2l0aCBwc2V1ZG8gZWxlbWVudHMuICovXG5AbWl4aW4gZm9udC1hd2Vzb21lLWNvbnRlbnQge1xuXHRmb250LWZhbWlseTogXCJGb250QXdlc29tZVwiO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbi8qIEZpeCByZW5kZXJpbmcgYnVncyBvbiBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyAqL1xuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHktZml4IHtcblx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xufVxuXG4vKiBDbGVhciAmYWZ0ZXIgZWxlbWVudCAqL1xuQG1peGluIGNsZWFyLWFmdGVyIHtcblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRjbGVhcjogYm90aDtcblx0fVxufVxuXG4vLyBUZXh0IG92ZXJmbC4uLiAoc2luZ2xlIGxpbmUgb25seSkgaHR0cDovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy90cnVuY2F0ZS1zdHJpbmctd2l0aC1lbGxpcHNpcy9cbkBtaXhpbiB0ZXh0LW92ZXJmbG93IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcdFx0XHQvLyBIaWRlIG92ZXJmbG93aW5nIHRleHRcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7IFx0XHQvLyBQcmV2ZW50IHRleHQgd3JhcHBpbmdcbn1cblxuLy8gQ2VudGVyIGFuIGl0ZW0gaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGhpbiBhIGNvbnRhaW5lclxuLy8gd2lkdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzIHJlZmVyIHRvIHRoZSBlbGVtZW50IHRvIGJlIGNlbnRlcmVkLlxuQG1peGluIGFic29sdXRlLWNlbnRlciggJHdpZHRoLCAkaGVpZ2h0OiAkd2lkdGggKSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogNTAlO1xuXHR0b3A6IDUwJTtcblx0bWFyZ2luLWxlZnQ6IC0oICR3aWR0aCAvIDIgKTtcblx0bWFyZ2luLXRvcDogLSggJGhlaWdodCAvIDIgKTtcbn1cblxuQG1peGluIGdyaWQtYnJlYWtwb2ludGVyKCR0d28tdXAtYnAsICR0aHJlZS11cC1icDogXCJcIiwgJGZvdXItdXAtYnA6IFwiXCIsICRmaXZlLXVwLWJwOiBcIlwiKSB7XG5cdCR0aHJlZS11cC1icDogbnVsbCAhZGVmYXVsdDtcblx0JGZvdXItdXAtYnA6IG51bGwgIWRlZmF1bHQ7XG5cdCRmaXZlLXVwLWJwOiBudWxsICFkZWZhdWx0O1xuXG5cdEBpbmNsdWRlIGxpc3QtcmVzZXQ7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGZvbnQtc2l6ZTogMDtcblxuXHQuZ3JpZC1pdGVtIHtcblx0XHRAaW5jbHVkZSByZW0oZm9udC1zaXplLCAxNnB4KTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICR0d28tdXAtYnAgKSB7XG5cdFx0bWFyZ2luOiAwIC0yLjI1JTtcblxuXHRcdC5ncmlkLWl0ZW0ge1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdHBhZGRpbmc6IDAgMi4yNSU7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cdFx0fVxuXHR9XG5cblx0QGlmICR0aHJlZS11cC1icCAhPSBcIlwiIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkdGhyZWUtdXAtYnAgKSB7XG5cdFx0XHQuZ3JpZC1pdGVtIHtcblx0XHRcdFx0d2lkdGg6IDMzLjMzMzMlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdEBpZiAkZm91ci11cC1icCAhPSBcIlwiIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkZm91ci11cC1icCApIHtcblx0XHRcdC5ncmlkLWl0ZW0ge1xuXHRcdFx0XHR3aWR0aDogMjUlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdEBpZiAkZml2ZS11cC1icCAhPSBcIlwiIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkZml2ZS11cC1icCApIHtcblx0XHRcdC5ncmlkLWl0ZW0ge1xuXHRcdFx0XHR3aWR0aDogMjAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vKlxuICogQ2xhc3NlcyB0byBzcGVjaWZ5IGZvbnQgc2l6ZS5cbiAqL1xuXG4udGV4dC1zaXplLTEge1xuXHRAaW5jbHVkZSB0ZXh0LXNpemUtMTtcbn1cblxuLnRleHQtc2l6ZS0yIHtcblx0QGluY2x1ZGUgdGV4dC1zaXplLTI7XG59XG5cbi50ZXh0LXNpemUtMyB7XG5cdEBpbmNsdWRlIHRleHQtc2l6ZS0zO1xufVxuXG4udGV4dC1zaXplLTQge1xuXHRAaW5jbHVkZSB0ZXh0LXNpemUtNDtcbn1cblxuLnRleHQtc2l6ZS01IHtcblx0QGluY2x1ZGUgdGV4dC1zaXplLTU7XG59XG5cbi50ZXh0LXNpemUtNiB7XG5cdEBpbmNsdWRlIHRleHQtc2l6ZS02O1xufVxuXG4udGV4dC1zaXplLTcge1xuXHRAaW5jbHVkZSB0ZXh0LXNpemUtNztcbn1cblxuLnRleHQtc2l6ZS04IHtcblx0QGluY2x1ZGUgdGV4dC1zaXplLTg7XG59XG5cbi50ZXh0LXdlaWdodC1ub3JtYWwge1xuXHRAaW5jbHVkZSB0ZXh0LXdlaWdodC1ub3JtYWw7XG59XG5cbi50ZXh0LXdlaWdodC1yZWcge1xuXHRAaW5jbHVkZSB0ZXh0LXdlaWdodC1yZWc7XG59XG5cbi50ZXh0LXdlaWdodC1ib2xkIHtcblx0QGluY2x1ZGUgdGV4dC13ZWlnaHQtYm9sZDtcbn1cblxuLyogVXNlZCB3aGVuIGNvcHkgYmxvY2tzIGFyZSBuYXJyb3dlciBhdCBsYXJnZSBzaXplcy4gUHJpbWFyaWx5IGZvciBibG9ja3Mgb2Ygc2luZ2xlIGNvbHVtbiBsYXJnZSB0ZXh0ICovXG4udGV4dC1uYXJyb3cge1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIDgyNXB4ICkge1xuXHRcdHBhZGRpbmc6IDAgMzVweDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIDkyNXB4ICkge1xuXHRcdHBhZGRpbmc6IDAgNzBweDtcblx0fVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IEZlYXR1cmVzXG4kYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhOiAgICAgIGFsbCAhZGVmYXVsdDtcbiRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZTogICAgbWluLXdpZHRoICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtZGVmYXVsdC1wYWlyOiAgICAgICB3aWR0aCAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBUcmFuc2Zvcm1zXG4kYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGw6ICAgIGZhbHNlICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtdG8tZW1zOiAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRicmVha3BvaW50LXJlc29sdXRpb25zOiAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBObyBRdWVyeSBPcHRpb25zXG4kYnJlYWtwb2ludC1uby1xdWVyaWVzOiAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGVmdGF1bHQgQmFzZSBGb250IFNpemVcbiRicmVha3BvaW50LWJhc2UtZm9udC1zaXplOiAgICAgMTZweCAhZGVmYXVsdDtcblxuLy8gTGVnYWN5IFN5bnRheCBTdXBwb3J0XG4kYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4OiAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCAkYnJlYWtwb2ludC1uby1xdWVyaWVzIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzICE9IGZhbHNlIG9yICRicmVha3BvaW50LW5vLXF1ZXJpZXMgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZigkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3Mge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJjcFwiO1xuXG4kaGVhZGVyLXRleHQtY29sb3ItZGFyazogIzQ2NGM1OTtcbiRoZWFkZXItdGV4dC1jb2xvci1saWdodDogI2ZmZjtcblxuQG1peGluIGRhcmtlbi1oZWFkZXItY29udGVudCB7XG5cdC5sb2dvLWNvZGU0Mi1pbmxpbmVkIC5sb2dvLXRleHQsIC5tYWluLWhlYWRlci1sb2dvIGcgcGF0aCB7XG5cdFx0ZmlsbDogJGhlYWRlci10ZXh0LWNvbG9yLWRhcms7XG5cdH1cblxuXHRidXR0b24ge1xuXHRcdEBpbmNsdWRlIHN2Zy1iYWNrZ3JvdW5kKCBcImltYWdlcy9pY29uLW1lbnUtZGFya1wiLCBuby1yZXBlYXQgcmlnaHQgNHB4ICk7XG5cdFx0Y29sb3I6ICRoZWFkZXItdGV4dC1jb2xvci1kYXJrO1xuXHR9XG5cblx0Lm1haW4taGVhZGVyLWJ1dHRvbnMgLm1haW4taGVhZGVyLW1lbnUtdGV4dCBhIHtcblx0XHRjb2xvcjogJGhlYWRlci10ZXh0LWNvbG9yLWRhcms7XG5cdFx0JjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuXHRcdH1cblx0fVxuXG5cdC5jNDItZ2xvYmFsLWhlYWRlci1saW5rcyBhIHtcblx0XHRjb2xvcjogJGhlYWRlci10ZXh0LWNvbG9yLWRhcms7XG5cdH1cblxuXHQubWFpbi1oZWFkZXItYnV0dG9ucyAuaGVhZGVyLXRyeS1idXkgYXtcblx0XHRwYWRkaW5nOiAuMjE0Mjg1NzE0ZW0gLjM1NzE0Mjg1N2VtIC4xNDI4NTcxNDNlbSAuNTBlbTsgLyogMTRweCAqL1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRoZWFkZXItdGV4dC1jb2xvci1kYXJrO1xuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0fVxufVxuXG5AbWl4aW4gbGlnaHRlbi1oZWFkZXItY29udGVudCB7XG5cdC5sb2dvLWNvZGU0Mi1pbmxpbmVkIC5sb2dvLXRleHQsIC5tYWluLWhlYWRlci1sb2dvIGcgcGF0aCB7XG5cdFx0ZmlsbDogJGhlYWRlci10ZXh0LWNvbG9yLWxpZ2h0O1xuXHR9XG5cblx0YnV0dG9uIHtcblx0XHRAaW5jbHVkZSBzdmctYmFja2dyb3VuZCggXCJpbWFnZXMvaWNvbi1tZW51LWxpZ2h0XCIsIG5vLXJlcGVhdCByaWdodCA0cHggKTtcblx0XHRjb2xvcjogJGhlYWRlci10ZXh0LWNvbG9yLWxpZ2h0O1xuXHR9XG5cblx0Lm1haW4taGVhZGVyLWJ1dHRvbnMgLm1haW4taGVhZGVyLW1lbnUtdGV4dCBhIHtcblx0XHRjb2xvcjogJGhlYWRlci10ZXh0LWNvbG9yLWxpZ2h0O1xuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcblx0XHR9XG5cdH1cblxuXHQuYzQyLWdsb2JhbC1oZWFkZXItbGlua3MgYSB7XG5cdFx0Y29sb3I6ICRoZWFkZXItdGV4dC1jb2xvci1saWdodDtcblx0fVxuXG5cdC5tYWluLWhlYWRlci1idXR0b25zIC5oZWFkZXItdHJ5LWJ1eSBhe1xuXHRcdHBhZGRpbmc6IC4yMTQyODU3MTRlbSAuMzU3MTQyODU3ZW0gLjE0Mjg1NzE0M2VtIC41MGVtOyAvKiAxNHB4ICovXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGhlYWRlci10ZXh0LWNvbG9yLWxpZ2h0O1xuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0fVxufVxuXG4ubG9nby1jb2RlNDItaW5saW5lZCAubG9nby1pY29uIHtcblx0ZmlsbDogJGJyYW5kLWNvZGU0Mi1jb2xvcjtcbn1cblxuLm1haW4taGVhZGVyIHtcblx0QGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eS1maXg7XG5cdGZvbnQtZmFtaWx5OiBcInByb3hpbWEtbm92YVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6ICRsYXllci1pbmRleC1tYWluLWhlYWRlcjtcblxuXHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4zM3MgZWFzZSk7IC8vIGZvciBtYWluIG5hdiBhdCBtb2JpbGUgdmlld1xuXG5cdHN2ZywgaW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG5cblx0YSB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG5cblx0YnV0dG9uIHtcblx0XHRAaW5jbHVkZSBzdmctYmFja2dyb3VuZCggXCJpY29uLW1lbnUtZGFya1wiLCBuby1yZXBlYXQgcmlnaHQgNHB4ICk7XG5cdFx0Y29sb3I6ICRoZWFkZXItdGV4dC1jb2xvci1kYXJrO1xuXHRcdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRcdHotaW5kZXg6ICRsYXllci1pbmRleC1tYWluLWhlYWRlcjtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy1yaWdodDogMjdweDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0XHRmb250LXdlaWdodDogaW5oZXJpdDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi5tYWluLWhlYWRlci1sb2dvLCAuYzQyLXByb2R1Y3QtaGVhZGVyLWxvZ28ge1xuXHRmbG9hdDogbGVmdDtcblx0bGVmdDogMDtcdFx0XHRcdC8qIE5lZWRlZCBmb3IgbWFpbi1uYXYgYW5pbWF0aW9uICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcdFx0LyogTmVlZGVkIGZvciBtYWluLW5hdiBhbmltYXRpb24gKi9cbn1cblxuLm1haW4taGVhZGVyLWJ1dHRvbnMge1xuXHRAaW5jbHVkZSBsaXN0LXJlc2V0O1xuXG5cdGZsb2F0OiByaWdodDtcblxuXHRAaW5jbHVkZSByZW0oZm9udC1zaXplLCAxNHB4KTtcblxuXHRsaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6IDAgLjI1ZW07XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMHB4O1xuXHRcdH1cblx0fVxuXG5cdGEsXG5cdGJ1dHRvbiB7XG5cdFx0QGluY2x1ZGUgc3Ryb25nLWN0YS10ZXh0O1xuXHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkOyAvLyBmaXhlcyBzYWZhcmkgcmVuZGVyaW5nIG9mIHNtYWxsIHRleHRcblx0fVxuXG5cdGEge1xuXHRcdHBhZGRpbmc6MTBweCAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHQmOmxpbmssXG5cdFx0JjphY3RpdmUsXG5cdFx0Jjp2aXNpdGVkIHtcblx0XHRcdGNvbG9yOiAkaGVhZGVyLXRleHQtY29sb3ItZGFyaztcblx0XHRcdG1hcmdpbjogMCAxMHB4O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMnB4O1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuMnMgZWFzZSk7XG5cdFx0fVxuXHRcdCY6aG92ZXI6YWZ0ZXIge1xuXHRcdFx0b3BhY2l0eTogMC4yO1xuXHRcdFx0Ym90dG9tOiA2cHg7XG5cdFx0fVxuXHRcdCYuY3VycmVudC1wYWdlIHtcblx0XHRcdG9wYWNpdHk6MC41O1xuXHRcdFx0Jjpob3ZlcjphZnRlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDAuNDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LmhlYWRlci10cnktYnV5IGE6YWZ0ZXIge1xuXHRcdGRpc3BsYXk6bm9uZTtcblx0fVxuXG5cdGJ1dHRvbiB7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdG1pbi1oZWlnaHQ6IDIwcHg7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0bWFyZ2luLXRvcDogNnB4O1xuXHRcdG1hcmdpbi1sZWZ0OiA1cHg7XG5cdH1cbn1cbi5sdC1pZTkgLm1haW4taGVhZGVyLWJ1dHRvbnMgYTphZnRlciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jNDItaGVhZGVyLXdyYXBwZXIge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogYXV0bztcblx0ei1pbmRleDogJGxheWVyLWluZGV4LW1haW4taGVhZGVyIC0gNTtcblx0bWF4LWhlaWdodDogJGM0Mi1wcm9kdWN0LWhlYWRlci1oZWlnaHQ7XG5cdHBhZGRpbmc6ICRjNDItcHJvZHVjdC1oZWFkZXItcGFkZGluZyAkaGVhZGVyLWxlZnQtcmlnaHQtcGFkZGluZztcblx0YmFja2dyb3VuZDogcmdiYSgxODksMjA0LDIxMiwwLjIpO1xuXG5cdC5jNDItZ2xvYmFsLWhlYWRlci1saW5rcyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRAaW5jbHVkZSByZW0oZm9udC1zaXplLCAxNHB4KTtcblxuXHRcdEBpbmNsdWRlIGxpc3QtcmVzZXQ7XG5cblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0XHRtYXJnaW4tbGVmdDogMjJweDtcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdCY6bGluayxcblx0XHRcdCY6YWN0aXZlLFxuXHRcdFx0Jjp2aXNpdGVkIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuYzQyLXByb2R1Y3QtaGVhZGVyLWxvZ28ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0LmM0Mi1wcm9kdWN0LWhlYWRlci1sb2dvIGltZywgLmM0Mi1wcm9kdWN0LWhlYWRlci1sb2dvIHN2ZyB7XG5cdFx0aGVpZ2h0OiAkYzQyLXByb2R1Y3QtaGVhZGVyLWxvZ28taGVpZ2h0O1xuXHRcdHdpZHRoOiAkYzQyLXByb2R1Y3QtaGVhZGVyLWxvZ28td2lkdGg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdH1cblxuXHRAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLmNvZGU0MiwgLnNoYXJlcGxhbiwgLmVudGVycHJpc2Uge1xuXHQubWFpbi1oZWFkZXIge1xuXHRcdGhlaWdodDogJGM0Mi1oZWFkZXItaGVpZ2h0O1xuXHRcdHBhZGRpbmc6ICRjNDItaGVhZGVyLXBhZGRpbmcgJGhlYWRlci1sZWZ0LXJpZ2h0LXBhZGRpbmc7XG5cdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuOSkgMCUscmdiYSgwLDAsMCwwLjM3KSA1MCUscmdiYSgwLDAsMCwwLjI2KSA2MCUscmdiYSgwLDAsMCwwLjE2KSA3MCUscmdiYSgwLDAsMCwwLjA4KSA4MCUscmdiYSgwLDAsMCwwLjAyKSA5MCUscmdiYSgwLDAsMCwwKSAxMDAlKSk7XG5cblx0XHQubG9nby1jb2RlNDItaW5saW5lZCAubG9nby10ZXh0IHtcblx0XHRcdGZpbGw6ICNGRkY7XG5cdFx0fVxuXG5cdFx0YnV0dG9uIHtcblx0XHRcdEBpbmNsdWRlIHN2Zy1iYWNrZ3JvdW5kKCBcImljb24tbWVudS1saWdodFwiLCBuby1yZXBlYXQgcmlnaHQgNHB4ICk7XG5cdFx0XHRjb2xvcjogI0ZGRjtcblx0XHR9XG5cblx0XHQubWFpbi1oZWFkZXItYnV0dG9ucyB7XG5cblx0XHRcdGEge1xuXHRcdFx0XHQmOmxpbmssXG5cdFx0XHRcdCY6YWN0aXZlLFxuXHRcdFx0XHQmOnZpc2l0ZWQge1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHQuaGVhZGVyLXRyeS1idXkge1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMnB4O1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdCY6bGluayxcblx0XHRcdFx0XHQmOmFjdGl2ZSxcblx0XHRcdFx0XHQmOnZpc2l0ZWQge1xuXHRcdFx0XHRcdFx0cGFkZGluZzogLjIxNDI4NTcxNGVtIC4zNTcxNDI4NTdlbSAuMTQyODU3MTQzZW0gLjUwZW07IC8qIDE0cHggKi9cblx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyBlYXNlLWluLW91dCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVx0XHRcdFx0XG5cdH1cblxuXHQuZml4ZWQtaGVhZGVyIHtcblx0XHRoZWlnaHQ6ICRjNDItaGVhZGVyLWhlaWdodDtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdGxlZnQ6MDtcblxuXHRcdGJveC1zaGFkb3c6IDBweCAxcHggM3B4IDFweCByZ2JhKDAsMCwwLC4xKTtcblxuXHRcdC5sb2dvLWNvZGU0Mi1pbmxpbmVkIC5sb2dvLXRleHQge1xuXHRcdFx0ZmlsbDogJGhlYWRlci10ZXh0LWNvbG9yLWRhcms7XG5cdFx0fVxuXG5cdFx0YnV0dG9uIHtcblx0XHRcdEBpbmNsdWRlIHN2Zy1iYWNrZ3JvdW5kKCBcImljb24tbWVudS1kYXJrXCIsIG5vLXJlcGVhdCByaWdodCA0cHggKTtcblx0XHRcdGNvbG9yOiAkaGVhZGVyLXRleHQtY29sb3ItZGFyaztcblx0XHR9XG5cblx0XHQubWFpbi1oZWFkZXItYnV0dG9ucyBhIHtcblx0XHRcdCY6bGluayxcblx0XHRcdCY6YWN0aXZlLFxuXHRcdFx0Jjp2aXNpdGVkIHtcblx0XHRcdFx0Y29sb3I6ICRoZWFkZXItdGV4dC1jb2xvci1kYXJrO1xuXHRcdFx0fVxuXG5cdFx0XHQuaGVhZGVyLXRyeS1idXkge1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMnB4O1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdCY6bGluayxcblx0XHRcdFx0XHQmOmFjdGl2ZSxcblx0XHRcdFx0XHQmOnZpc2l0ZWQge1xuXHRcdFx0XHRcdFx0cGFkZGluZzogLjIxNDI4NTcxNGVtIC4zNTcxNDI4NTdlbSAuMTQyODU3MTQzZW0gLjUwZW07IC8qIDE0cHggKi9cblx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmM0Mi1oZWFkZXItd3JhcHBlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5tYWluLWhlYWRlci1saWdodGJnIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdEBpbmNsdWRlIGRhcmtlbi1oZWFkZXItY29udGVudDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoICRtb2JpbGUtYnJlYWtwb2ludC0yKXtcblx0XHQubWFpbi1oZWFkZXIsIC5maXhlZC1oZWFkZXIge1xuXHRcdFx0aGVpZ2h0OiAkYzQyLWhlYWRlci1oZWlnaHQtbW9iaWxlO1xuXHRcdFx0cGFkZGluZzogKCRjNDItaGVhZGVyLXBhZGRpbmcgLSA5KSAyMHB4O1xuXG5cdFx0XHQubWFpbi1oZWFkZXItbG9nbyBzdmcsIC5tYWluLWhlYWRlci1sb2dvIGltZywgIHtcblx0XHRcdFx0aGVpZ2h0OiAkYzQyLWhlYWRlci1sb2dvLWhlaWdodCAtIDk7IC8vIDIzcHhcblx0XHRcdFx0d2lkdGg6ICRjNDItaGVhZGVyLWxvZ28td2lkdGggLSA0NTsgLy8gOTZweFxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5tYWluLWhlYWRlci1tZW51LXRleHQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQubWFpbi1oZWFkZXItYnV0dG9ucyBidXR0b24ge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAkZGVza3RvcC1icmVha3BvaW50KXtcblx0XHQuaGVhZGVyLWNvbnRhY3Qtc2FsZXMge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggODY1cHgpe1xuXHRcdC5oZWFkZXItc3VwcG9ydCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4uY3Jhc2hwbGFuLCAuYnVzaW5lc3MsIC5zdG9yZSB7XG5cblx0Lm1haW4taGVhZGVyLWJ1dHRvbnMge1xuXG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblxuXHRcdGxpIHtcblx0XHRcdHBhZGRpbmc6IDAgLjIwZW07XG5cdFx0XHRjb2xvcjogI2ZmZjtcblxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQubWFpbi1oZWFkZXIge1xuXHRcdGhlaWdodDogJHByb2R1Y3QtaGVhZGVyLWhlaWdodDtcblx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLC45KSAwJSxyZ2JhKDAsMCwwLDAuMzcpIDUwJSxyZ2JhKDAsMCwwLDAuMjYpIDYwJSxyZ2JhKDAsMCwwLDAuMTYpIDcwJSxyZ2JhKDAsMCwwLDAuMDgpIDgwJSxyZ2JhKDAsMCwwLDAuMDIpIDkwJSxyZ2JhKDAsMCwwLDApIDEwMCUpKTtcblx0XHRcblx0XHQubWFpbi1oZWFkZXItbG9nbyB7XG5cdFx0XHRtYXJnaW46IDE0cHggMDtcdFx0XHRcblx0XHR9XG5cblx0XHQubWFpbi1oZWFkZXItbG9nbyBpbWcsIC5tYWluLWhlYWRlci1sb2dvIHN2ZyB7XG5cdFx0XHRoZWlnaHQ6ICRwcm9kdWN0LWhlYWRlci1sb2dvLWhlaWdodDtcblx0XHRcdHdpZHRoOiAkcHJvZHVjdC1oZWFkZXItbG9nby13aWR0aDtcblx0XHR9XG5cblx0XHQubG9nby1jb2RlNDItaW5saW5lZCAubG9nby10ZXh0LCAubWFpbi1oZWFkZXItbG9nbyBwYXRoIHtcblx0XHRcdGZpbGw6ICNGRkY7XG5cdFx0fVxuXG5cdFx0YnV0dG9uIHtcblx0XHRcdEBpbmNsdWRlIHN2Zy1iYWNrZ3JvdW5kKCBcImljb24tbWVudS1saWdodFwiLCBuby1yZXBlYXQgcmlnaHQgNHB4ICk7XG5cdFx0XHRjb2xvcjogI0ZGRjtcblx0XHR9XG5cblx0XHQubWFpbi1oZWFkZXItYnV0dG9ucyB7XG5cdFx0XHRhIHtcblx0XHRcdFx0JjpsaW5rLFxuXHRcdFx0XHQmOmFjdGl2ZSxcblx0XHRcdFx0Jjp2aXNpdGVkIHtcblx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0fVxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuXHRcdFx0LmhlYWRlci10cnktYnV5IHtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDJweDtcblxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHQmOmxpbmssXG5cdFx0XHRcdFx0JjphY3RpdmUsXG5cdFx0XHRcdFx0Jjp2aXNpdGVkIHtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IC4yMTQyODU3MTRlbSAuMzU3MTQyODU3ZW0gLjE0Mjg1NzE0M2VtIC41MGVtOyAvKiAxNHB4ICovXG5cdFx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRcdFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgZWFzZS1pbi1vdXQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblx0LmZpeGVkLWhlYWRlciB7XG5cdFx0aGVpZ2h0OiAkcHJvZHVjdC1oZWFkZXItaGVpZ2h0O1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XG5cdFx0LmxvZ28tY29kZTQyLWlubGluZWQgLmxvZ28tdGV4dCwgLm1haW4taGVhZGVyLWxvZ28gcGF0aCB7XG5cdFx0XHRmaWxsOiAkaGVhZGVyLXRleHQtY29sb3ItZGFyaztcblx0XHR9XG5cblx0XHRib3gtc2hhZG93OiAwcHggMXB4IDNweCAxcHggcmdiYSgwLDAsMCwuMSk7XG5cblx0XHRidXR0b24ge1xuXHRcdFx0QGluY2x1ZGUgc3ZnLWJhY2tncm91bmQoIFwiaWNvbi1tZW51LWRhcmtcIiwgbm8tcmVwZWF0IHJpZ2h0IDRweCApO1xuXHRcdFx0Y29sb3I6ICRoZWFkZXItdGV4dC1jb2xvci1kYXJrO1xuXHRcdH1cblxuXHRcdC5tYWluLWhlYWRlci1idXR0b25zIGEge1xuXHRcdFx0JjpsaW5rLFxuXHRcdFx0JjphY3RpdmUsXG5cdFx0XHQmOnZpc2l0ZWQge1xuXHRcdFx0XHRjb2xvcjogJGhlYWRlci10ZXh0LWNvbG9yLWRhcms7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmM0Mi1nbG9iYWwtaGVhZGVyLWxpbmtzIGEge1xuXHRcdFx0JjpsaW5rLFxuXHRcdFx0JjphY3RpdmUsXG5cdFx0XHQmOnZpc2l0ZWQge1xuXHRcdFx0XHRjb2xvcjogJGhlYWRlci10ZXh0LWNvbG9yLWRhcms7XG5cdFx0XHR9XHRcdFx0XG5cdFx0fVxuXG5cdFx0Lm1haW4taGVhZGVyLWJ1dHRvbnMgLmhlYWRlci10cnktYnV5IHtcblx0XHRcdG1hcmdpbi1yaWdodDogLjMwZW07XG5cdFx0XHRwYWRkaW5nOiAwIDAgMnB4IDA7XG5cblx0XHRcdGEge1xuXHRcdFx0XHQmOmxpbmssXG5cdFx0XHRcdCY6YWN0aXZlLFxuXHRcdFx0XHQmOnZpc2l0ZWQge1x0XHRcdFx0XG5cdFx0XHRcdFx0cGFkZGluZzogLjIxNDI4NTcxNGVtIC4zNTcxNDI4NTdlbSAuMTQyODU3MTQzZW0gLjUwZW07IC8qIDE0cHggKi9cblx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkaGVhZGVyLXRleHQtY29sb3ItZGFyaztcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA4MTBweCl7XG5cdFx0Lm1haW4taGVhZGVyLCAuZml4ZWQtaGVhZGVyIHtcblx0XHRcdC5tYWluLWhlYWRlci1idXR0b25zIGEge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQubWFpbi1oZWFkZXItYnV0dG9ucyBsaSB7XG5cdFx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cdFxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoICRtb2JpbGUtYnJlYWtwb2ludCl7XG5cdFx0LmM0Mi1nbG9iYWwtaGVhZGVyLWxpbmtzIHtcblx0XHRcdGRpc3BsYXk6IG5vbmVcdFx0XHRcblx0XHR9XG5cblx0XHQuaGVhZGVyLW5hdi10b2dnbGUge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0cmlnaHQ6IDE4cHg7XG5cdFx0XHR0b3A6IDZweDtcblx0XHR9XG5cblx0XHQuYzQyLWhlYWRlci13cmFwcGVyIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdH1cblxuXHRcdC5maXhlZC1oZWFkZXIge1xuXHRcdFx0aGVpZ2h0OiAkYzQyLXByb2R1Y3QtaGVhZGVyLWhlaWdodDtcblx0XHRcdFxuXHRcdFx0Lm1haW4taGVhZGVyLWxvZ28ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG59XG5cbi5jb2RlNDIsIC5jcmFzaHBsYW4sIC5zaGFyZXBsYW4sIC5lbnRlcnByaXNlLCAuYnVzaW5lc3MsIC5zdG9yZSB7XG5cdC5tYWluLWhlYWRlci1saWdodGJnIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdEBpbmNsdWRlIGRhcmtlbi1oZWFkZXItY29udGVudDtcblx0fVxuXG5cdC5tYWluLWhlYWRlci1kYXJrYmcge1xuXHRcdEBpbmNsdWRlIGxpZ2h0ZW4taGVhZGVyLWNvbnRlbnQ7XG5cdH1cblxuXHQubWFpbi1oZWFkZXItbGlnaHRiZywgLm1haW4taGVhZGVyLWRhcmtiZy5maXhlZC1oZWFkZXIge1xuXHRcdC5tYWluLWhlYWRlci1idXR0b25zIC5oZWFkZXItdHJ5LWJ1eSBhIHtcblx0XHRcdCY6bGluayxcblx0XHRcdCY6YWN0aXZlLFxuXHRcdFx0Jjp2aXNpdGVkIHtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGhlYWRlci10ZXh0LWNvbG9yLWRhcms7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lm1haW4taGVhZGVyLm1haW4taGVhZGVyLWRhcmtiZyB7XG5cdFx0QGluY2x1ZGUgbGlnaHRlbi1oZWFkZXItY29udGVudDtcblx0fVxuXG5cdC5tYWluLWhlYWRlci5maXhlZC1oZWFkZXIge1xuXHRcdEBpbmNsdWRlIGRhcmtlbi1oZWFkZXItY29udGVudDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoICRtb2JpbGUtYnJlYWtwb2ludCl7XG5cdFx0Lm1haW4taGVhZGVyLm1haW4taGVhZGVyLWRhcmtiZyB7XG5cdFx0XHRAaW5jbHVkZSBkYXJrZW4taGVhZGVyLWNvbnRlbnQ7XG5cblx0XHRcdC5tYWluLWhlYWRlci1sb2dvIGcgcGF0aCB7XG5cdFx0XHRcdGZpbGw6ICRoZWFkZXItdGV4dC1jb2xvci1saWdodDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNvZGU0MiB7XG5cdC5tYWluLWhlYWRlci1saWdodGJnLCAubWFpbi1oZWFkZXItZGFya2JnLCAubWFpbi1oZWFkZXItZGFya2JnLmZpeGVkLWhlYWRlciB7XG5cdFx0Lm1haW4taGVhZGVyLWJ1dHRvbnMgLmhlYWRlci10cnktYnV5IHtcblx0XHRcdGE6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGJyYW5kLWNvZGU0Mi1jb2xvcjtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLWNvZGU0Mi1jb2xvcjtcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgZWFzZS1pbi1vdXQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoICRtb2JpbGUtYnJlYWtwb2ludCl7XG5cdFx0Lm1haW4taGVhZGVyLm1haW4taGVhZGVyLWRhcmtiZyB7XG5cdFx0XHRAaW5jbHVkZSBsaWdodGVuLWhlYWRlci1jb250ZW50O1xuXHRcdH1cblxuXHRcdC5tYWluLWhlYWRlci5maXhlZC1oZWFkZXIge1xuXHRcdFx0QGluY2x1ZGUgZGFya2VuLWhlYWRlci1jb250ZW50O1xuXHRcdH1cblx0fVxufVxuXG4uY3Jhc2hwbGFuIHtcblx0Lm1haW4taGVhZGVyLWxpZ2h0YmcsIC5tYWluLWhlYWRlci1kYXJrYmcsIC5tYWluLWhlYWRlci1kYXJrYmcuZml4ZWQtaGVhZGVyIHtcblx0XHQubWFpbi1oZWFkZXItYnV0dG9ucyAuaGVhZGVyLXRyeS1idXkge1xuXHRcdFx0YTpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkY29uc3VtZXJDb2xvcjtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbnN1bWVyQ29sb3I7XG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zIGVhc2UtaW4tb3V0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnN0b3JlIHtcblx0LmhlYWRlci1idXkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAkZGVza3RvcC1icmVha3BvaW50KXtcblx0XHQuaGVhZGVyLWNvbnRhY3Qtc2FsZXMge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggODY1cHgpe1xuXHRcdC5oZWFkZXItc3VwcG9ydCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4uY29kZTQyIC5tYWluLWhlYWRlci1tZW51LXRleHQsXG4uY3Jhc2hwbGFuIC5tYWluLWhlYWRlci1tZW51LXRleHQsXG4uc3RvcmUgLm1haW4taGVhZGVyLW1lbnUtdGV4dCxcbi5zaGFyZXBsYW4gLm1haW4taGVhZGVyLW1lbnUtdGV4dCxcbi5idXNpbmVzcyAubWFpbi1oZWFkZXItbWVudS10ZXh0LFxuLmVudGVycHJpc2UgLm1haW4taGVhZGVyLW1lbnUtdGV4dCB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1heC13aWR0aCA3NTlweCApIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5jcmFzaHBsYW4sIC5zdG9yZSwgLmJ1c2luZXNzIHtcblx0Lm1haW4taGVhZGVyLWNvbnRlbnQge1xuXHRcdHBhZGRpbmc6IDAgMjBweDtcblx0fVx0XHRcbn1cblxuLyogSGlkZSBUcnkvQnV5IEJ1dHRvbiBpbiBzdG9yZSAqL1xuLnN0b3JlX2luZGV4IC5oZWFkZXItdHJ5LWJ1eSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE1PQklMRSBGSVhFUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5tb2JpbGUge1xuXHQuYnVzaW5lc3MsXG5cdC5lbnRlcnByaXNlIHtcblx0XHQuZml4ZWQtaGVhZGVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuLyogSUUgRklYRVMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBpZTggKi9cbi5pZTggLmNvZGU0MiAubWFpbi1oZWFkZXIsXG4uaWU4IC5jcmFzaHBsYW4gLm1haW4taGVhZGVyLFxuLmllOCAuc3RvcmUgLm1haW4taGVhZGVyLFxuLmllOCAuc2hhcmVwbGFuIC5tYWluLWhlYWRlcixcbi5pZTggLmVudGVycHJpc2UgLm1haW4taGVhZGVyLFxuLmllOCAuYnVzaW5lc3MgLm1haW4taGVhZGVyIHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2MxY2FkMTtcblxuXHQubWFpbi1oZWFkZXItYnV0dG9ucyBhIHtcblx0XHQmOmxpbmssXG5cdFx0JjphY3RpdmUsXG5cdFx0Jjp2aXNpdGVkIHtcblx0XHRcdGNvbG9yOiAkYm9keS10ZXh0LWNvbG9yO1xuXHRcdH1cblx0fVxuXG5cdGJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL2ljb24tbWVudS1kYXJrLnBuZ1wiKTtcblx0XHRjb2xvcjogJGhlYWRlci10ZXh0LWNvbG9yLWRhcms7XG5cdH1cblxuXHQuYzQyLWhlYWRlci13cmFwcGVyIHtcblx0XHRiYWNrZ3JvdW5kOiAjRjJGNUY3O1xuXHR9XG5cblx0LmM0Mi1nbG9iYWwtaGVhZGVyLWxpbmtzIGEge1xuXHRcdGNvbG9yOiAjOTg5RkE3ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLyogaWU5ICovXG4uaWU5IC5jb2RlNDIgLm1haW4taGVhZGVyLFxuLmllOSAuY3Jhc2hwbGFuIC5tYWluLWhlYWRlcixcbi5pZTkgLnN0b3JlIC5tYWluLWhlYWRlcixcbi5pZTkgLnNoYXJlcGxhbiAubWFpbi1oZWFkZXIsXG4uaWU5IC5lbnRlcnByaXNlIC5tYWluLWhlYWRlcixcbi5pZTkgLmJ1c2luZXNzIC5tYWluLWhlYWRlciB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTsvLyBpZTkgZG9lc24ndCBzdXBwb3J0IGNzczMgZ3JhZGllbnRzLlxuXG5cdCYuZml4ZWQtaGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHR9IFxufSIsIkBpbXBvcnQgXCJjb21wYXNzL3N1cHBvcnRcIjtcblxuLy8gVGhlIHRoZSB1c2VyIHRocmVzaG9sZCBmb3IgdHJhbnNpdGlvbiBzdXBwb3J0LiBEZWZhdWx0cyB0byBgJGdyYWNlZnVsLXVzYWdlLXRocmVzaG9sZGBcbiR0cmFuc2l0aW9uLXN1cHBvcnQtdGhyZXNob2xkOiAkZ3JhY2VmdWwtdXNhZ2UtdGhyZXNob2xkICFkZWZhdWx0O1xuXG5cbi8vIENTUyBUcmFuc2l0aW9uc1xuLy8gQ3VycmVudGx5IG9ubHkgd29ya3MgaW4gV2Via2l0LlxuLy9cbi8vICogZXhwZWN0ZWQgaW4gQ1NTMywgRmlyZUZveCAzLjYvNyBhbmQgT3BlcmEgUHJlc3RvIDIuM1xuLy8gKiBXZSdsbCBiZSBwcmVwYXJlZC5cbi8vXG4vLyBJbmNsdWRpbmcgdGhpcyBzdWJtb2R1bGUgc2V0cyBmb2xsb3dpbmcgZGVmYXVsdHMgZm9yIHRoZSBtaXhpbnM6XG4vL1xuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHkgOiBhbGxcbi8vICAgICAkZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uIDogMXNcbi8vICAgICAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uIDogZmFsc2Vcbi8vICAgICAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5ICAgIDogZmFsc2Vcbi8vXG4vLyBPdmVycmlkZSB0aGVtIGlmIHlvdSBsaWtlLiBUaW1pbmctZnVuY3Rpb24gYW5kIGRlbGF5IGFyZSBzZXQgdG8gZmFsc2UgZm9yIGJyb3dzZXIgZGVmYXVsdHMgKGVhc2UsIDBzKS5cblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsICFkZWZhdWx0O1xuXG4kZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxcyAhZGVmYXVsdDtcblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbjogbnVsbCAhZGVmYXVsdDtcblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheTogbnVsbCAhZGVmYXVsdDtcblxuJHRyYW5zaXRpb25hYmxlLXByZWZpeGVkLXZhbHVlczogdHJhbnNmb3JtLCB0cmFuc2Zvcm0tb3JpZ2luICFkZWZhdWx0O1xuXG5cblxuLy8gQ2hlY2tzIGlmIHRoZSB2YWx1ZSBnaXZlbiBpcyBhIHVuaXQgb2YgdGltZS5cbkBmdW5jdGlvbiBpcy10aW1lKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBudW1iZXIsIG5vdCBub3QgaW5kZXgocyBtcywgdW5pdCgkdmFsdWUpKSwgZmFsc2UpO1xufVxuXG4vLyBSZXR1cm5zIGAkcHJvcGVydHlgIHdpdGggdGhlIGdpdmVuIHByZWZpeCBpZiBpdCBpcyBmb3VuZCBpbiBgJHRyYW5zaXRpb25hYmxlLXByZWZpeGVkLXZhbHVlc2AuXG5AZnVuY3Rpb24gcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oJHByZWZpeCwgJHByb3BlcnR5KSB7XG4gIEBpZiBub3QgJHByZWZpeCB7XG4gICAgQHJldHVybiAkcHJvcGVydHk7XG4gIH1cbiAgQGlmIHR5cGUtb2YoJHByb3BlcnR5KSA9PSBsaXN0IG9yIHR5cGUtb2YoJHByb3BlcnR5KSA9PSBhcmdsaXN0IHtcbiAgICAkbmV3LWxpc3Q6IGNvbW1hLWxpc3QoKTtcbiAgICBAZWFjaCAkdiBpbiAkcHJvcGVydHkge1xuICAgICAgJG5ldy1saXN0OiBhcHBlbmQoJG5ldy1saXN0LCBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigkcHJlZml4LCAkdikpO1xuICAgIH1cbiAgICBAcmV0dXJuICRuZXctbGlzdDtcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGluZGV4KCR0cmFuc2l0aW9uYWJsZS1wcmVmaXhlZC12YWx1ZXMsICRwcm9wZXJ0eSkge1xuICAgICAgQHJldHVybiAjeyRwcmVmaXh9LSN7JHByb3BlcnR5fTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gJHByb3BlcnR5O1xuICAgIH1cbiAgfVxufVxuXG4vLyBSZXR1cm5zICR0cmFuc2l0aW9uLW1hcCB3aGljaCBpbmNsdWRlcyBrZXkgYW5kIHZhbHVlcyB0aGF0IG1hcCB0byBhIHRyYW5zaXRpb24gZGVjbGFyYXRpb25cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLW1hcCgkdHJhbnNpdGlvbikge1xuICAkdHJhbnNpdGlvbi1tYXA6ICgpO1xuXG4gIEBlYWNoICRpdGVtIGluICR0cmFuc2l0aW9uIHtcbiAgICBAaWYgaXMtdGltZSgkaXRlbSkge1xuICAgICAgQGlmIG1hcC1oYXMta2V5KCR0cmFuc2l0aW9uLW1hcCwgZHVyYXRpb24pIHtcbiAgICAgICAgJHRyYW5zaXRpb24tbWFwOiBtYXAtbWVyZ2UoJHRyYW5zaXRpb24tbWFwLCAoZGVsYXk6ICRpdGVtKSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHRyYW5zaXRpb24tbWFwOiBtYXAtbWVyZ2UoJHRyYW5zaXRpb24tbWFwLCAoZHVyYXRpb246ICRpdGVtKSk7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdHJhbnNpdGlvbi1tYXAsIHByb3BlcnR5KSB7XG4gICAgICAkdHJhbnNpdGlvbi1tYXA6IG1hcC1tZXJnZSgkdHJhbnNpdGlvbi1tYXAsICh0aW1pbmctZnVuY3Rpb246ICRpdGVtKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkdHJhbnNpdGlvbi1tYXA6IG1hcC1tZXJnZSgkdHJhbnNpdGlvbi1tYXAsIChwcm9wZXJ0eTogJGl0ZW0pKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR0cmFuc2l0aW9uLW1hcDtcbn1cblxuLy8gT25lIG9yIG1vcmUgcHJvcGVydGllcyB0byB0cmFuc2l0aW9uXG4vL1xuLy8gKiBmb3IgbXVsdGlwbGUsIHVzZSBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4vLyAqIGFsc28gYWNjZXB0cyBcImFsbFwiIG9yIFwibm9uZVwiXG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gICRwcm9wZXJ0aWVzOiBzZXQtYXJnbGlzdC1kZWZhdWx0KCRwcm9wZXJ0aWVzLCAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5KTtcbiAgQGluY2x1ZGUgd2l0aC1lYWNoLXByZWZpeChjc3MtdHJhbnNpdGlvbnMsICR0cmFuc2l0aW9uLXN1cHBvcnQtdGhyZXNob2xkKSB7XG4gICAgJHByb3BzOiBpZigkY3VycmVudC1wcmVmaXgsIHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCRjdXJyZW50LXByZWZpeCwgJHByb3BlcnRpZXMpLCAkcHJvcGVydGllcyk7XG4gICAgQGluY2x1ZGUgcHJlZml4LXByb3AodHJhbnNpdGlvbi1wcm9wZXJ0eSwgJHByb3BzKTtcbiAgfVxufVxuXG4vLyBPbmUgb3IgbW9yZSBkdXJhdGlvbnMgaW4gc2Vjb25kc1xuLy9cbi8vICogZm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiB0aGVzZSBkdXJhdGlvbnMgd2lsbCBhZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkZHVyYXRpb25zLi4uKSB7XG4gICRkdXJhdGlvbnM6IHNldC1hcmdsaXN0LWRlZmF1bHQoJGR1cmF0aW9ucywgJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbik7XG4gIEBpbmNsdWRlIHByZWZpeGVkLXByb3BlcnRpZXMoY3NzLXRyYW5zaXRpb25zLCAkdHJhbnNpdGlvbi1zdXBwb3J0LXRocmVzaG9sZCwgKFxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbnNcbiAgKSk7XG59XG5cbi8vIE9uZSBvciBtb3JlIHRpbWluZyBmdW5jdGlvbnNcbi8vXG4vLyAqIFsgZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKHgxLCB5MSwgeDIsIHkyKV1cbi8vICogRm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiBUaGVzZSBmdW5jdGlvbnMgd2lsbCBlZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJGZ1bmN0aW9ucy4uLikge1xuICAkZnVuY3Rpb25zOiBzZXQtYXJnbGlzdC1kZWZhdWx0KCRmdW5jdGlvbnMsICRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb24pO1xuICBAaW5jbHVkZSBwcmVmaXhlZC1wcm9wZXJ0aWVzKGNzcy10cmFuc2l0aW9ucywgJHRyYW5zaXRpb24tc3VwcG9ydC10aHJlc2hvbGQsIChcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGZ1bmN0aW9uc1xuICApKTtcbn1cblxuLy8gT25lIG9yIG1vcmUgdHJhbnNpdGlvbi1kZWxheXMgaW4gc2Vjb25kc1xuLy9cbi8vICogZm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiB0aGVzZSBkZWxheXMgd2lsbCBlZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkZGVsYXlzLi4uKSB7XG4gICRkZWxheXM6IHNldC1hcmdsaXN0LWRlZmF1bHQoJGRlbGF5cywgJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheSk7XG4gIEBpbmNsdWRlIHByZWZpeGVkLXByb3BlcnRpZXMoY3NzLXRyYW5zaXRpb25zLCAkdHJhbnNpdGlvbi1zdXBwb3J0LXRocmVzaG9sZCwgKFxuICAgIHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheXNcbiAgKSk7XG59XG5cbi8vIFRyYW5zaXRpb24gYWxsLWluLW9uZSBzaG9ydGhhbmRcblxuQG1peGluIHNpbmdsZS10cmFuc2l0aW9uKFxuICAkcHJvcGVydHk6ICRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHksXG4gICRkdXJhdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgJGZ1bmN0aW9uOiAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uLFxuICAkZGVsYXk6ICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXlcbikge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbXBhY3QoJHByb3BlcnR5ICRkdXJhdGlvbiAkZnVuY3Rpb24gJGRlbGF5KSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9ucy4uLikge1xuICAkZGVmYXVsdDogKGNvbXBhY3QoJGRlZmF1bHQtdHJhbnNpdGlvbi1wcm9wZXJ0eSAkZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uICRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb24gJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheSksKTtcbiAgJHRyYW5zaXRpb25zOiBpZihsZW5ndGgoJHRyYW5zaXRpb25zKSA9PSAxIGFuZCB0eXBlLW9mKG50aCgkdHJhbnNpdGlvbnMsIDEpKSA9PSBsaXN0IGFuZCBsaXN0LXNlcGFyYXRvcihudGgoJHRyYW5zaXRpb25zLCAxKSkgPT0gY29tbWEsIG50aCgkdHJhbnNpdGlvbnMsIDEpLCAkdHJhbnNpdGlvbnMpO1xuICAkdHJhbnNpdGlvbnM6IHNldC1hcmdsaXN0LWRlZmF1bHQoJHRyYW5zaXRpb25zLCAkZGVmYXVsdCk7XG5cblxuICBAaW5jbHVkZSB3aXRoLWVhY2gtcHJlZml4KGNzcy10cmFuc2l0aW9ucywgJHRyYW5zaXRpb24tc3VwcG9ydC10aHJlc2hvbGQpIHtcbiAgICAkZGVsYXlzOiBjb21tYS1saXN0KCk7XG4gICAgJHRyYW5zaXRpb25zLXdpdGhvdXQtZGVsYXlzOiBjb21tYS1saXN0KCk7XG4gICAgJHRyYW5zaXRpb25zLXdpdGgtZGVsYXlzOiBjb21tYS1saXN0KCk7XG4gICAgJGhhcy1kZWxheXM6IGZhbHNlO1xuXG5cbiAgICAvLyBUaGlzIGJsb2NrIGNhbiBiZSBtYWRlIGNvbnNpZGVyYWJseSBzaW1wbGVyIGF0IHRoZSBwb2ludCBpbiB0aW1lIHRoYXRcbiAgICAvLyB3ZSBubyBsb25nZXIgbmVlZCB0byBkZWFsIHdpdGggdGhlIGRpZmZlcmVuY2VzIGluIGhvdyBkZWxheXMgYXJlIHRyZWF0ZWQuXG4gICAgQGVhY2ggJHRyYW5zaXRpb24gaW4gJHRyYW5zaXRpb25zIHtcbiAgICAgIC8vIERlY2xhcmUgaW5pdGlhbCB2YWx1ZXMgZm9yIHRyYW5zaXRpb25cbiAgICAgICR0cmFuc2l0aW9uOiB0cmFuc2l0aW9uLW1hcCgkdHJhbnNpdGlvbik7XG5cbiAgICAgICRwcm9wZXJ0eTogbWFwLWdldCgkdHJhbnNpdGlvbiwgcHJvcGVydHkpO1xuICAgICAgJGR1cmF0aW9uOiBtYXAtZ2V0KCR0cmFuc2l0aW9uLCBkdXJhdGlvbik7XG4gICAgICAkdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCR0cmFuc2l0aW9uLCB0aW1pbmctZnVuY3Rpb24pO1xuICAgICAgJGRlbGF5OiBtYXAtZ2V0KCR0cmFuc2l0aW9uLCBkZWxheSk7XG5cbiAgICAgIC8vIFBhcnNlIHRyYW5zaXRpb24gc3RyaW5nIHRvIGFzc2lnbiB2YWx1ZXMgaW50byBjb3JyZWN0IHZhcmlhYmxlc1xuICAgICAgJGhhcy1kZWxheXM6ICRoYXMtZGVsYXlzIG9yICRkZWxheTtcblxuICAgICAgQGlmICRjdXJyZW50LXByZWZpeCA9PSAtd2Via2l0IHtcbiAgICAgICAgLy8gS2VlcCBhIGxpc3Qgb2YgZGVsYXlzIGluIGNhc2Ugb25lIGlzIHNwZWNpZmllZFxuICAgICAgICAkZGVsYXlzOiBhcHBlbmQoJGRlbGF5cywgaWYoJGRlbGF5LCAkZGVsYXksIDBzKSk7XG4gICAgICAgICR0cmFuc2l0aW9ucy13aXRob3V0LWRlbGF5czogYXBwZW5kKCR0cmFuc2l0aW9ucy13aXRob3V0LWRlbGF5cyxcbiAgICAgICAgICBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigkY3VycmVudC1wcmVmaXgsICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR0cmFuc2l0aW9ucy13aXRoLWRlbGF5czogYXBwZW5kKCR0cmFuc2l0aW9ucy13aXRoLWRlbGF5cyxcbiAgICAgICAgICBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigkY3VycmVudC1wcmVmaXgsICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24gJGRlbGF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGN1cnJlbnQtcHJlZml4ID09IC13ZWJraXQge1xuICAgICAgQGluY2x1ZGUgcHJlZml4LXByb3AodHJhbnNpdGlvbiwgJHRyYW5zaXRpb25zLXdpdGhvdXQtZGVsYXlzKTtcbiAgICAgIEBpZiAkaGFzLWRlbGF5cyB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeC1wcm9wKHRyYW5zaXRpb24tZGVsYXksICRkZWxheXMpO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJGN1cnJlbnQtcHJlZml4IHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeC1wcm9wKHRyYW5zaXRpb24sICR0cmFuc2l0aW9ucy13aXRoLWRlbGF5cyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbnMtd2l0aC1kZWxheXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBAcHJpdmF0ZSBEZWZhdWx0IGZvbnQtc2l6ZSBmb3IgYWxsIGJyb3dzZXJzXG4kYnJvd3Nlci1kZWZhdWx0LWZvbnQtc2l6ZTogMTZweDtcblxuLy8gQmFzZSBmb250IHNpemUgaW4gcGl4ZWxzLCBpZiBub3QgYWxyZWFkeSBkZWZpbmVkLlxuLy8gU2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBmb250LXNpemUgb2YgdGhlIGh0bWwgZWxlbWVudC5cbiRiYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8gV2hldGhlciB0byBvdXRwdXQgZmFsbGJhY2sgdmFsdWVzIGluIHB4IHdoZW4gb3V0cHV0dGluZyByZW1zLlxuJHJlbS13aXRoLXB4LWZhbGxiYWNrOiB0cnVlICFkZWZhdWx0O1xuXG5cbi8vIENvbnZlcnQgYW55IENTUyA8bGVuZ3RoPiBvciA8cGVyY2VudGFnZT4gdmFsdWUgdG8gYW55IGFub3RoZXIuXG4vL1xuLy8gQHBhcmFtICRsZW5ndGhcbi8vICAgQSBjc3MgPGxlbmd0aD4gb3IgPHBlcmNlbnRhZ2U+IHZhbHVlXG4vL1xuLy8gQHBhcmFtICR0by11bml0XG4vLyAgIFN0cmluZyBtYXRjaGluZyBhIGNzcyB1bml0IGtleXdvcmQsIGUuZy4gJ2VtJywgJyUnLCBldGMuXG4vL1xuLy8gQHBhcmFtICRmcm9tLWNvbnRleHRcbi8vICAgV2hlbiBjb252ZXJ0aW5nIGZyb20gcmVsYXRpdmUgdW5pdHMsIHRoZSBhYnNvbHV0ZSBsZW5ndGggKGluIHB4KSB0b1xuLy8gICB3aGljaCAkbGVuZ3RoIHJlZmVycyAoZS5nLiBmb3IgJGxlbmd0aHMgaW4gZW0gdW5pdHMsIHdvdWxkIG5vcm1hbGx5IGJlIHRoZVxuLy8gICBmb250LXNpemUgb2YgdGhlIGN1cnJlbnQgZWxlbWVudCkuXG4vL1xuLy8gQHBhcmFtICR0by1jb250ZXh0XG4vLyAgIEZvciBjb252ZXJ0aW5nIHRvIHJlbGF0aXZlIHVuaXRzLCB0aGUgYWJzb2x1dGUgbGVuZ3RoIGluIHB4IHRvIHdoaWNoIHRoZVxuLy8gICBvdXRwdXQgdmFsdWUgd2lsbCByZWZlci4gRGVmYXVsdHMgdG8gdGhlIHNhbWUgYXMgJGZyb20tY29udGV4dCwgc2luY2UgaXQgaXNcbi8vICAgcmFyZWx5IG5lZWRlZC5cbkBmdW5jdGlvbiBjb252ZXJ0LWxlbmd0aChcblx0JGxlbmd0aCxcblx0JHRvLXVuaXQsXG5cdCRmcm9tLWNvbnRleHQ6ICRiYXNlLWZvbnQtc2l6ZSxcblx0JHRvLWNvbnRleHQ6ICRmcm9tLWNvbnRleHRcbikge1xuXG5cdCRmcm9tLXVuaXQ6IHVuaXQoJGxlbmd0aCk7XG5cblx0Ly8gT3B0aW1pemUgZm9yIGNhc2VzIHdoZXJlIGBmcm9tYCBhbmQgYHRvYCB1bml0cyBhcmUgYWNjaWRlbnRhbGx5IHRoZSBzYW1lLlxuXHRAaWYgJGZyb20tdW5pdCA9PSAkdG8tdW5pdCB7IEByZXR1cm4gJGxlbmd0aDsgfVxuXG5cdC8vIENvbnRleHQgdmFsdWVzIG11c3QgYmUgaW4gcHggc28gd2UgY2FuIGRldGVybWluZSBhIGNvbnZlcnNpb24gcmF0aW8gZm9yXG5cdC8vIHJlbGF0aXZlIHVuaXRzLlxuXHRAaWYgdW5pdCgkZnJvbS1jb250ZXh0KSAhPSAncHgnIHsgQHdhcm4gXCJQYXJlbWV0ZXIgJGZyb20tY29udGV4dCBtdXN0IHJlc29sdmUgdG8gYSB2YWx1ZSBpbiBwaXhlbCB1bml0cy5cIjsgfVxuXHRAaWYgdW5pdCgkdG8tY29udGV4dCkgIT0gJ3B4JyB7IEB3YXJuIFwiUGFyYW1ldGVyICR0by1jb250ZXh0IG11c3QgcmVzb2x2ZSB0byBhIHZhbHVlIGluIHBpeGVsIHVuaXRzLlwiOyB9XG5cblx0Ly8gQ29udmVydCBpbnB1dCBsZW5ndGggdG8gcGl4ZWxzXG5cdCRweC1sZW5ndGg6ICRsZW5ndGg7XG5cblx0QGlmICRmcm9tLXVuaXQgIT0gJ3B4JyB7XG5cdFx0Ly8gQ29udmVydCByZWxhdGl2ZSB1bml0cyB1c2luZyB0aGUgZnJvbS1jb250ZXh0IHBhcmFtZXRlci5cblx0XHRAaWYgICAgICAkZnJvbS11bml0ID09ICdlbScgIHsgJHB4LWxlbmd0aDogJGxlbmd0aCAqICRmcm9tLWNvbnRleHQgLyAxZW0gfVxuXHRcdEBlbHNlIGlmICRmcm9tLXVuaXQgPT0gJ3JlbScgeyAkcHgtbGVuZ3RoOiAkbGVuZ3RoICogJGJhc2UtZm9udC1zaXplIC8gMXJlbSB9XG5cdFx0QGVsc2UgaWYgJGZyb20tdW5pdCA9PSAnJScgICB7ICRweC1sZW5ndGg6ICRsZW5ndGggKiAkZnJvbS1jb250ZXh0IC8gMTAwJSB9XG5cdFx0QGVsc2UgaWYgJGZyb20tdW5pdCA9PSAnZXgnICB7ICRweC1sZW5ndGg6ICRsZW5ndGggKiAkZnJvbS1jb250ZXh0IC8gMmV4IH1cblx0XHQvLyBDb252ZXJ0IGFic29sdXRlIHVuaXRzIHVzaW5nIFNhc3MnIGNvbnZlcnNpb24gdGFibGUuXG5cdFx0QGVsc2UgaWYgJGZyb20tdW5pdCA9PSAnaW4nICBvclxuXHRcdFx0XHRcdFx0ICRmcm9tLXVuaXQgPT0gJ21tJyAgb3Jcblx0XHRcdFx0XHRcdCAkZnJvbS11bml0ID09ICdjbScgIG9yXG5cdFx0XHRcdFx0XHQgJGZyb20tdW5pdCA9PSAncHQnICBvclxuXHRcdFx0XHRcdFx0ICRmcm9tLXVuaXQgPT0gJ3BjJyAgeyAkcHgtbGVuZ3RoOiAwcHggKyAkbGVuZ3RoIH1cblx0XHQvLyBDZXJ0YWluIHVuaXRzIGNhbid0IGJlIGNvbnZlcnRlZC5cblx0XHRAZWxzZSBpZiAkZnJvbS11bml0ID09ICdjaCcgIG9yXG5cdFx0XHRcdFx0XHQgJGZyb20tdW5pdCA9PSAndncnICBvclxuXHRcdFx0XHRcdFx0ICRmcm9tLXVuaXQgPT0gJ3ZoJyAgb3Jcblx0XHRcdFx0XHRcdCAkZnJvbS11bml0ID09ICd2bWluJyB7XG5cdFx0XHRAd2FybiBcIiN7JGZyb20tdW5pdH0gdW5pdHMgY2FuJ3QgYmUgcmVsaWFibHkgY29udmVydGVkOyBSZXR1cm5pbmcgb3JpZ2luYWwgdmFsdWUuXCI7XG5cdFx0XHRAcmV0dXJuICRsZW5ndGg7XG5cdFx0fVxuXHRcdEBlbHNlIHtcblx0XHRcdEB3YXJuIFwiI3skZnJvbS11bml0fSBpcyBhbiB1bmtub3duIGxlbmd0aCB1bml0LiBSZXR1cm5pbmcgb3JpZ2luYWwgdmFsdWUuXCI7XG5cdFx0XHRAcmV0dXJuICRsZW5ndGg7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ29udmVydCBsZW5ndGggaW4gcGl4ZWxzIHRvIHRoZSBvdXRwdXQgdW5pdFxuXHQkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aDtcblx0QGlmICR0by11bml0ICE9ICdweCcge1xuXHRcdC8vIFJlbGF0aXZlIHVuaXRzXG5cdFx0QGlmICAgICAgJHRvLXVuaXQgPT0gJ2VtJyAgeyAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDFlbSAvICR0by1jb250ZXh0IH1cblx0XHRAZWxzZSBpZiAkdG8tdW5pdCA9PSAncmVtJyB7ICRvdXRwdXQtbGVuZ3RoOiAkcHgtbGVuZ3RoICogMXJlbSAvICRiYXNlLWZvbnQtc2l6ZSB9XG5cdFx0QGVsc2UgaWYgJHRvLXVuaXQgPT0gJyUnICAgeyAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDEwMCUgLyAkdG8tY29udGV4dCB9XG5cdFx0QGVsc2UgaWYgJHRvLXVuaXQgPT0gJ2V4JyAgeyAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDJleCAvICR0by1jb250ZXh0IH1cblx0XHQvLyBBYnNvbHV0ZSB1bml0c1xuXHRcdEBlbHNlIGlmICR0by11bml0ID09ICdpbicgIHsgJG91dHB1dC1sZW5ndGg6IDBpbiArICRweC1sZW5ndGggfVxuXHRcdEBlbHNlIGlmICR0by11bml0ID09ICdtbScgIHsgJG91dHB1dC1sZW5ndGg6IDBtbSArICRweC1sZW5ndGggfVxuXHRcdEBlbHNlIGlmICR0by11bml0ID09ICdjbScgIHsgJG91dHB1dC1sZW5ndGg6IDBjbSArICRweC1sZW5ndGggfVxuXHRcdEBlbHNlIGlmICR0by11bml0ID09ICdwdCcgIHsgJG91dHB1dC1sZW5ndGg6IDBwdCArICRweC1sZW5ndGggfVxuXHRcdEBlbHNlIGlmICR0by11bml0ID09ICdwYycgIHsgJG91dHB1dC1sZW5ndGg6IDBwYyArICRweC1sZW5ndGggfVxuXHRcdC8vIE5vbi1jb252ZXJ0aWJsZSB1bml0c1xuXHRcdEBlbHNlIGlmICR0by11bml0ID09ICdjaCcgIG9yXG5cdFx0XHRcdFx0XHQgJHRvLXVuaXQgPT0gJ3Z3JyAgb3Jcblx0XHRcdFx0XHRcdCAkdG8tdW5pdCA9PSAndmgnICBvclxuXHRcdFx0XHRcdFx0ICR0by11bml0ID09ICd2bWluJyB7XG5cdFx0XHRAd2FybiBcIiN7JHRvLXVuaXR9IHVuaXRzIGNhbid0IGJlIHJlbGlhYmx5IGNvbnZlcnRlZDsgUmV0dXJuaW5nIG9yaWdpbmFsIHZhbHVlLlwiO1xuXHRcdFx0QHJldHVybiAkbGVuZ3RoO1xuXHRcdH1cblx0XHRAZWxzZSB7XG5cdFx0XHRAd2FybiBcIiN7JHRvLXVuaXR9IGlzIGFuIHVua25vd24gbGVuZ3RoIHVuaXQuIFJldHVybmluZyBvcmlnaW5hbCB2YWx1ZS5cIjtcblx0XHRcdEByZXR1cm4gJGxlbmd0aDtcblx0XHR9XG5cdH1cblxuXHRAcmV0dXJuICRvdXRwdXQtbGVuZ3RoO1xufVxuXG5cbi8vIEBwcml2YXRlIEdldCB0aGUgcHgvcmVtIHZlcnNpb25zIG9mIGEgdmFsdWUuXG5AZnVuY3Rpb24gcmVtLWZhbGxiYWNrLXZhbHVlcygkdmFsdWUpIHtcbiAgJF9yZXR1cm46IChcbiAgICBweDogJHZhbHVlLFxuICAgIHJlbTogJHZhbHVlLFxuICApO1xuXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyIGFuZCBub3QgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgQGlmIHVuaXQoJHZhbHVlKSA9PSByZW0ge1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKFxuICAgICAgICBweDogcm91bmQoY29udmVydC1sZW5ndGgoJHZhbHVlLCBweCkpLFxuICAgICAgKSk7XG4gICAgfSBAZWxzZSBpZiB1bml0KCR2YWx1ZSkgPT0gcHgge1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKFxuICAgICAgICBweDogcm91bmQoJHZhbHVlKSxcbiAgICAgICAgcmVtOiBjb252ZXJ0LWxlbmd0aCgkdmFsdWUsIHJlbSksXG4gICAgICApKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG4vLyBAcHJpdmF0ZSBHZXQgdGhlIHB4L3JlbSB2ZXJzaW9ucyBvZiBhIGxpc3QgKG9yIG5lc3RlZCBsaXN0cykuXG5AZnVuY3Rpb24gbGlzdC1jb252ZXJ0LXJlbXMoJHZhbHVlKSB7XG4gICRfZW1wdHk6IChcbiAgICBweDogKCksXG4gICAgcmVtOiAoKSxcbiAgKTtcbiAgJF9yZXR1cm46ICRfZW1wdHk7XG4gICRfc2VwOiBudWxsO1xuXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgJF9zZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZSk7XG4gICAgQGVhY2ggJHN1YiBpbiAkdmFsdWUge1xuICAgICAgJF90aGlzOiBsaXN0LWNvbnZlcnQtcmVtcygkc3ViKTtcbiAgICAgICRfcmV0dXJuOiAoXG4gICAgICAgIHB4OiBhcHBlbmQobWFwLWdldCgkX3JldHVybiwgcHgpLCBtYXAtZ2V0KCRfdGhpcywgcHgpLCAkX3NlcCksXG4gICAgICAgIHJlbTogYXBwZW5kKG1hcC1nZXQoJF9yZXR1cm4sIHJlbSksIG1hcC1nZXQoJF90aGlzLCByZW0pLCAkX3NlcCksXG4gICAgICApO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJF90aGlzOiByZW0tZmFsbGJhY2stdmFsdWVzKCR2YWx1ZSk7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgJF90aGlzKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gT3V0cHV0IGEgZ2l2ZW4gc3R5bGUgcnVsZSBjb250YWluaW5nIHJlbSB2YWx1ZXMgYWxvbmcgd2l0aCBhbiAob3B0aW9uYWwpXG4vLyBmYWxsYmFjayBydWxlIGZvciBvbGRlciBicm93c2VycyAod2l0aCByZW0gdmFsdWVzIGNvbnZlcnRlZCB0byBweCkuXG4vL1xuLy8gQHBhcmFtICRwcm9wZXJ0eVxuLy8gICBUaGUgY3NzIHByb3BlcnR5IG5hbWUuXG4vL1xuLy8gQHBhcmFtICR2YWx1ZXNcbi8vICAgVGhlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIGZvciB0aGUgcHJvcGVydHkuXG4vL1xuLy8gQHBhcmFtICR1c2UtcHgtZmFsbGJhY2tcbi8vICAgWyB0cnVlIHwgZmFsc2UgXVxuLy9cbkBtaXhpbiByZW0oJHByb3BlcnR5LCAkdmFsdWVzLCAkdXNlLXB4LWZhbGxiYWNrOiAkcmVtLXdpdGgtcHgtZmFsbGJhY2spIHtcblxuICAvLyBnZXQgY29udmVydGVkIHZhbHVlcy5cbiAgJHZhbHVlczogbGlzdC1jb252ZXJ0LXJlbXMoJHZhbHVlcyk7XG4gICRweC12YWx1ZXM6IG1hcC1nZXQoJHZhbHVlcywgcHgpO1xuICAkdmFsdWVzOiBtYXAtZ2V0KCR2YWx1ZXMsIHJlbSk7XG5cbiAgLy8gVXNlIHBpeGVsIGZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvbid0IHVuZGVyc3RhbmQgcmVtIHVuaXRzLlxuICBAaWYgJHVzZS1weC1mYWxsYmFjayBhbmQgJHB4LXZhbHVlcyAhPSAkdmFsdWVzIHtcbiAgICAjeyRwcm9wZXJ0eX06ICRweC12YWx1ZXM7XG4gIH1cblxuICAvLyBVc2UgcmVtIHZhbHVlcyBmb3IgZXZlcnlvbmUgZWxzZSAob3ZlcnJpZGVzIHBpeGVsIHZhbHVlcykuXG4gICN7JHByb3BlcnR5fTogJHZhbHVlcztcbn1cbiIsIi8vIEBkb2Mgb2ZmXG4vLyBFeHRlbmRzIHRoZSBib3R0b20gb2YgdGhlIGVsZW1lbnQgdG8gZW5jbG9zZSBhbnkgZmxvYXRzIGl0IGNvbnRhaW5zLlxuLy8gQGRvYyBvblxuXG5AaW1wb3J0IFwiaGFja3NcIjtcblxuLy8gVGhpcyBiYXNpYyBtZXRob2QgaXMgcHJlZmVycmVkIGZvciB0aGUgdXN1YWwgY2FzZSwgd2hlbiBwb3NpdGlvbmVkXG4vLyBjb250ZW50IHdpbGwgbm90IHNob3cgb3V0c2lkZSB0aGUgYm91bmRzIG9mIHRoZSBjb250YWluZXIuXG4vL1xuLy8gUmVjb21tZW5kYXRpb25zIGluY2x1ZGUgdXNpbmcgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGEgd2lkdGguXG4vLyBDcmVkaXQ6IFtxdWlya3Ntb2RlLm9yZ10oaHR0cDovL3d3dy5xdWlya3Ntb2RlLm9yZy9ibG9nL2FyY2hpdmVzLzIwMDUvMDMvY2xlYXJpbmdfZmxvYXRzLmh0bWwpXG5AbWl4aW4gY2xlYXJmaXgge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSBoYXMtbGF5b3V0O1xufVxuXG4vLyBUaGlzIG9sZGVyIG1ldGhvZCBmcm9tIFBvc2l0aW9uIElzIEV2ZXJ5dGhpbmcgY2FsbGVkXG4vLyBbRWFzeSBDbGVhcmluZ10oaHR0cDovL3d3dy5wb3NpdGlvbmlzZXZlcnl0aGluZy5uZXQvZWFzeWNsZWFyaW5nLmh0bWwpXG4vLyBoYXMgdGhlIGFkdmFudGFnZSBvZiBhbGxvd2luZyBwb3NpdGlvbmVkIGVsZW1lbnRzIHRvIGhhbmdcbi8vIG91dHNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgY29udGFpbmVyIGF0IHRoZSBleHBlbnNlIG9mIG1vcmUgdHJpY2t5IENTUy5cbkBtaXhpbiBsZWdhY3ktcGllLWNsZWFyZml4IHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudCAgICA6IFwiXFwwMDIwXCI7XG4gICAgZGlzcGxheSAgICA6IGJsb2NrO1xuICAgIGhlaWdodCAgICAgOiAwO1xuICAgIGNsZWFyICAgICAgOiBib3RoO1xuICAgIG92ZXJmbG93ICAgOiBoaWRkZW47XG4gICAgdmlzaWJpbGl0eSA6IGhpZGRlbjtcbiAgfVxuICBAaW5jbHVkZSBoYXMtbGF5b3V0O1xufVxuXG4vLyBUaGlzIGlzIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZiB0aGUgUElFIGNsZWFyZml4IG1ldGhvZCB0aGF0IHJlZHVjZXMgdGhlIGFtb3VudCBvZiBDU1Mgb3V0cHV0LlxuLy8gSWYgeW91IG5lZWQgdG8gc3VwcG9ydCBGaXJlZm94IGJlZm9yZSAzLjUgeW91IG5lZWQgdG8gdXNlIGBsZWdhY3ktcGllLWNsZWFyZml4YCBpbnN0ZWFkLlxuLy9cbi8vIEFkYXB0ZWQgZnJvbTogW0EgbmV3IG1pY3JvIGNsZWFyZml4IGhhY2tdKGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLylcbkBtaXhpbiBwaWUtY2xlYXJmaXgge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG59XG4iLCJAaW1wb3J0IFwiY29tcGFzcy9zdXBwb3J0XCI7XG5cbi8vIFRoZSBsZWdhY3kgc3VwcG9ydCB0aHJlc2hvbGQgZm9yIGhhcy1sYXlvdXQuXG4vLyBEZWZhdWx0cyB0byB0aGUgJGNyaXRpY2FsLXVzYWdlLXRocmVzaG9sZC5cbiRoYXMtbGF5b3V0LXN1cHBvcnQtdGhyZXNob2xkOiAkY3JpdGljYWwtdXNhZ2UtdGhyZXNob2xkICFkZWZhdWx0O1xuXG4vLyBUaGUgYHpvb21gIGFwcHJvYWNoIGdlbmVyYXRlcyBsZXNzIENTUyBidXQgZG9lcyBub3QgdmFsaWRhdGUuXG4vLyBTZXQgdGhpcyB0byBgYmxvY2tgIHRvIHVzZSB0aGUgZGlzcGxheS1wcm9wZXJ0eSB0byBoYWNrIHRoZVxuLy8gZWxlbWVudCB0byBnYWluIGxheW91dC5cbiRkZWZhdWx0LWhhcy1sYXlvdXQtYXBwcm9hY2g6IHpvb20gIWRlZmF1bHQ7XG5cbi8vIFRoaXMgbWl4aW4gY2F1c2VzIGFuIGVsZW1lbnQgbWF0Y2hpbmcgdGhlIHNlbGVjdG9yXG4vLyB0byBnYWluIHRoZSBcImhhc0xheW91dFwiIHByb3BlcnR5IGluIGludGVybmV0IGV4cGxvcmVyLlxuLy8gTW9yZSBpbmZvcm1hdGlvbiBvbiBbaGFzTGF5b3V0XShodHRwOi8vcmVmZXJlbmNlLnNpdGVwb2ludC5jb20vY3NzL2hhc2xheW91dCkuXG5AbWl4aW4gaGFzLWxheW91dCgkYXBwcm9hY2g6ICRkZWZhdWx0LWhhcy1sYXlvdXQtYXBwcm9hY2gpIHtcbiAgQGlmIHN1cHBvcnQtbGVnYWN5LWJyb3dzZXIoXCJpZVwiLCBcIjdcIiwgJHRocmVzaG9sZDogJGhhcy1sYXlvdXQtc3VwcG9ydC10aHJlc2hvbGQpIHtcbiAgICBAaWYgJGFwcHJvYWNoID09IHpvb20ge1xuICAgICAgQGluY2x1ZGUgaGFzLWxheW91dC16b29tO1xuICAgIH0gQGVsc2UgaWYgJGFwcHJvYWNoID09IGJsb2NrIHtcbiAgICAgIEBpbmNsdWRlIGhhcy1sYXlvdXQtYmxvY2s7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAd2FybiBcIlVua25vd24gaGFzLWxheW91dCBhcHByb2FjaDogI3skYXBwcm9hY2h9XCI7XG4gICAgICBAaW5jbHVkZSBoYXMtbGF5b3V0LXpvb207XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBoYXMtbGF5b3V0LXpvb20ge1xuICBAaWYgc3VwcG9ydC1sZWdhY3ktYnJvd3NlcihcImllXCIsIFwiN1wiLCAkdGhyZXNob2xkOiAkaGFzLWxheW91dC1zdXBwb3J0LXRocmVzaG9sZCkge1xuICAgICp6b29tOiAxO1xuICB9XG59XG5cbkBtaXhpbiBoYXMtbGF5b3V0LWJsb2NrIHtcbiAgQGlmIHN1cHBvcnQtbGVnYWN5LWJyb3dzZXIoXCJpZVwiLCBcIjdcIiwgJHRocmVzaG9sZDogJGhhcy1sYXlvdXQtc3VwcG9ydC10aHJlc2hvbGQpIHtcbiAgICAvLyBUaGlzIG1ha2VzIGllNiBnZXQgbGF5b3V0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8vIGFuZCB0aGlzIHB1dHMgaXQgYmFjayB0byBibG9ja1xuICAgICYgeyBkaXNwbGF5OiBibG9jazsgfVxuICB9XG59XG5cblxuLy8gVGhlIGxlZ2FjeSBzdXBwb3J0IHRocmVzaG9sZCBmb3IgSUU2IGF0dHJpYnV0ZSBoYWNrLlxuLy8gRGVmYXVsdHMgdG8gdGhlICRjcml0aWNhbC11c2FnZS10aHJlc2hvbGQuXG4kaWU2LWF0dHJpYnV0ZS1oYWNrLXN1cHBvcnQtdGhyZXNob2xkOiAkY3JpdGljYWwtdXNhZ2UtdGhyZXNob2xkICFkZWZhdWx0O1xuXG4vLyBBIGhhY2sgdG8gc3VwcGx5IElFNiAoYW5kIGJlbG93KSB3aXRoIGEgZGlmZmVyZW50IHByb3BlcnR5IHZhbHVlLlxuLy8gW1JlYWQgbW9yZV0oaHR0cDovL3d3dy5jc3Nwb3J0YWwuY29tL2Nzcy1oYWNrcy8jaW5fY3NzLWltcG9ydGFudCkuXG5AbWl4aW4gYmFuZy1oYWNrKCRwcm9wZXJ0eSwgJHZhbHVlLCAkaWU2LXZhbHVlKSB7XG4gIEBpZiBzdXBwb3J0LWxlZ2FjeS1icm93c2VyKFwiaWVcIiwgXCI2XCIsICR0aHJlc2hvbGQ6ICRpZTYtYXR0cmlidXRlLWhhY2stc3VwcG9ydC10aHJlc2hvbGQpIHtcbiAgICBAd2FybiBcIml0J3MgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSB1bmRlcnNjb3JlLWhhY2soKSBtaXhpbiBpbnN0ZWFkIG9mIGJhbmctaGFjaygpXCI7XG4gICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX0gIWltcG9ydGFudDtcbiAgICAjeyRwcm9wZXJ0eX06ICN7JGllNi12YWx1ZX07XG4gIH1cbn1cblxuLy8gQSBoYWNrIHRvIHN1cHBseSBJRTYgKGFuZCBiZWxvdykgd2l0aCBhIGRpZmZlcmVudCBwcm9wZXJ0eSB2YWx1ZS5cbi8vIFtSZWFkIG1vcmVdKGh0dHA6Ly93d3cucGF1bGlyaXNoLmNvbS8yMDA5L2Jyb3dzZXItc3BlY2lmaWMtY3NzLWhhY2tzLylcbkBtaXhpbiB1bmRlcnNjb3JlLWhhY2soJHByb3BlcnR5LCAkdmFsdWUsICRpZTYtdmFsdWUpIHtcbiAgQGlmIHN1cHBvcnQtbGVnYWN5LWJyb3dzZXIoXCJpZVwiLCBcIjZcIiwgJHRocmVzaG9sZDogJGllNi1hdHRyaWJ1dGUtaGFjay1zdXBwb3J0LXRocmVzaG9sZCkge1xuICAgICN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICAgIF8jeyRwcm9wZXJ0eX06ICN7JGllNi12YWx1ZX07XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJjb21wYXNzL3N1cHBvcnRcIjtcbkBpbXBvcnQgXCJjb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL2hhY2tzXCI7XG5cbiRncmFkaWVudC1zdXBwb3J0LXRocmVzaG9sZDogJGdyYWNlZnVsLXVzYWdlLXRocmVzaG9sZCAhZGVmYXVsdDtcbiRzdmctZ3JhZGllbnQtc2hpbS10aHJlc2hvbGQ6ICRncmFjZWZ1bC11c2FnZS10aHJlc2hvbGQgIWRlZmF1bHQ7XG4kYm9yZGVyLWltYWdlLXN1cHBvcnQtdGhyZXNob2xkOiAkZ3JhY2VmdWwtdXNhZ2UtdGhyZXNob2xkICFkZWZhdWx0O1xuJG93Zy10aHJlc2hvbGQ6ICRncmFjZWZ1bC11c2FnZS10aHJlc2hvbGQgIWRlZmF1bHQ7XG5cbi8vIENvbXBhc3MgYXNzdW1lcyB5b3Ugd2lsbCB1c2UgdGhlIG9mZmljaWFsIGdyYWRpZW50IHN5bnRheCxcbi8vIHVubGVzcyBvdGhlcndpc2UgaW5zdHJ1Y3RlZC5cbiR1c2UtbGVnYWN5LWdyYWRpZW50LXN5bnRheDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIENyZWF0ZSBhIGxpbmVhciBncmFkaWVudCB1c2luZyBzdGFuZGFyZCBvZmZpY2lhbCBvciBsZWdhY3kgc3ludGF4LlxuLy8gVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGluY2x1ZGVkIGluIG9uZSBvZiB0aGUgZm9sbG93aW5nXG4vLyBpbWFnZSBtb2R1bGUgbWl4aW5zIHRvIHdvcmsgcHJvcGVybHkuXG5AZnVuY3Rpb24gbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGRldGFpbHMuLi4pIHtcbiAgJGxlZ2FjeS1zeW50YXg6ICR1c2UtbGVnYWN5LWdyYWRpZW50LXN5bnRheDtcblxuICBAaWYgdHlwZS1vZigkYW5nbGUpICE9ICdudW1iZXInIHtcbiAgICAkYW5nbGU6IGNvbXBhY3QoJGFuZ2xlKTtcbiAgICAkbGVnYWN5LXN5bnRheDogaWYoaW5kZXgoJGFuZ2xlLCAndG8nKSwgZmFsc2UsIHRydWUpO1xuICB9XG5cbiAgQGlmICRsZWdhY3ktc3ludGF4IHtcbiAgICBAcmV0dXJuIF9saW5lYXItZ3JhZGllbnRfbGVnYWN5KCRhbmdsZSwgJGRldGFpbHMuLi4pO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIF9saW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkZGV0YWlscy4uLik7XG4gIH1cbn1cblxuLy8gVGhlc2UgYnJvd3NlcnMgc3VwcG9ydCBzdmcgYnV0IG5vdCBncmFkaWVudHNcbi8vIHNvIHdlIGNhbiBzaGltIHRoZSBncmFkaWVudCB3aXRoIGFuIGlubGluZSBzdmcgZmlsZS5cbiRicm93c2Vycy1zdXBwb3J0aW5nLXN2Zy1idXQtbm90LWdyYWRpZW50czogKGllOiBcIjlcIiwgb3BlcmE6IFwiOS41LTkuNlwiKTtcblxuLy8gVGhlc2UgYnJvd3NlcnMgcmVxdWlyZSB0aGUgb2xkIHdlYmtpdCBncmFkaWVudCBzeW50YXhcbiRicm93c2Vycy1zdXBwb3J0aW5nLW9sZC13ZWJraXQtZ3JhZGllbnRzOiAoYW5kcm9pZDogKFwiMi4xXCIsIFwiM1wiKSk7XG5cbkBtaXhpbiBlYWNoLWdyYWRpZW50LXByZWZpeCgkdmFsdWVzKSB7XG4gIEBpZiBwcmVmaXhlZCgtc3ZnLCAkdmFsdWVzKSB7XG4gICAgQGluY2x1ZGUgZm9yLWxlZ2FjeS1icm93c2VycygkYnJvd3NlcnMtc3VwcG9ydGluZy1zdmctYnV0LW5vdC1ncmFkaWVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3ZnLWdyYWRpZW50LXNoaW0tdGhyZXNob2xkKVxuICAgIHtcbiAgICAgIEBpbmNsdWRlIHdpdGgtcHJlZml4KC1zdmcpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiBwcmVmaXhlZCgtb3dnLCAkdmFsdWVzKSB7XG4gICAgQGluY2x1ZGUgZm9yLWxlZ2FjeS1icm93c2VycygkYnJvd3NlcnMtc3VwcG9ydGluZy1vbGQtd2Via2l0LWdyYWRpZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvd2ctdGhyZXNob2xkKVxuICAgIHtcbiAgICAgIEBpbmNsdWRlIHdpdGgtcHJlZml4KC1vd2cpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHdpdGgtZWFjaC1wcmVmaXgoY3NzLWdyYWRpZW50cywgJGdyYWRpZW50LXN1cHBvcnQtdGhyZXNob2xkKSB7XG4gICAgQGlmICRjdXJyZW50LXByZWZpeCB7XG4gICAgICBAaWYgcHJlZml4ZWQoJGN1cnJlbnQtcHJlZml4LCAkdmFsdWVzKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfSBAZWxzZSBpZiAkZGVidWctYnJvd3Nlci1zdXBwb3J0IHtcbiAgICAgICAgLyogVGhlcmUgaXMgbm90IGEgdmFsdWUgdGhhdCBuZWVkcyB0byBiZSBwcmVmaXhlZCB3aXRoICN7JGN1cnJlbnQtcHJlZml4fSBpbjogI3skdmFsdWVzfSAqL1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpbWFnZS1wcm9wZXJ0eSgkcHJvcGVydHksICR2YWx1ZXMuLi4pIHtcbiAgQGluY2x1ZGUgZWFjaC1ncmFkaWVudC1wcmVmaXgoJHZhbHVlcykge1xuICAgIEBpZiAkY3VycmVudC1wcmVmaXgge1xuICAgICAgI3skcHJvcGVydHl9OiBwcmVmaXgoJGN1cnJlbnQtcHJlZml4LCAkdmFsdWVzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlcztcbiAgICB9XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHdpdGhpbiB2YWx1ZXMuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgQGluY2x1ZGUgaW1hZ2UtcHJvcGVydHkoYmFja2dyb3VuZCwgJGJhY2tncm91bmRzLi4uKTtcbn1cblxuLy8gU2V0IGFueSBudW1iZXIgb2YgYmFja2dyb3VuZCBsYXllcnMsIGFsb25nIHdpdGggYSBmYWxsYmFjay5cbi8vIFRoZSBmaW5hbCBhcmd1bWVudCB3aWxsIGJlIG91dHB1dCBzZXBhcmF0ZWx5LCBmaXJzdCwgYXMgYSBjc3MyIGZhbGxiYWNrLlxuQG1peGluIGJhY2tncm91bmQtd2l0aC1jc3MyLWZhbGxiYWNrKCRiYWNrZ3JvdW5kcy4uLikge1xuICBAaWYgbGVuZ3RoKCRiYWNrZ3JvdW5kcykgPiAxIG9yIHByZWZpeGVkKC1jc3MyLCAkYmFja2dyb3VuZHMpIHtcbiAgICBiYWNrZ3JvdW5kOiAtY3NzMihudGgoJGJhY2tncm91bmRzLCAtMSkpO1xuICB9XG4gIEBpbmNsdWRlIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKTtcbn1cblxuXG4vLyBCYWNrZ3JvdW5kIGltYWdlIHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgd2l0aGluIHZhbHVlcy5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgQGluY2x1ZGUgaW1hZ2UtcHJvcGVydHkoYmFja2dyb3VuZC1pbWFnZSwgJGltYWdlcy4uLikge1xuICAgIEBpZiAkY3VycmVudC1wcmVmaXggPT0gLXN2ZyB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vIEVtaXQgYSBJRS1TcGVjaWZpYyBmaWx0ZXJzIHRoYXQgcmVuZGVycyBhIHNpbXBsZSBsaW5lYXIgZ3JhZGllbnQuXG4vLyBGb3IgdXNlIGluIElFIDYgLSA4LiBCZXN0IHByYWN0aWNlIHdvdWxkIGhhdmUgeW91IGFwcGx5IHRoaXMgdmlhIGFcbi8vIGNvbmRpdGlvbmFsIElFIHN0eWxlc2hlZXQsIGJ1dCBpZiB5b3UgbXVzdCwgeW91IHNob3VsZCBwbGFjZSB0aGlzIGJlZm9yZVxuLy8gYW55IGJhY2tncm91bmQtaW1hZ2UgcHJvcGVydGllcyB0aGF0IHlvdSBoYXZlIHNwZWNpZmllZC5cbi8vXG4vLyBGb3IgdGhlIGAkb3JpZW50YXRpb25gIHBhcmFtZXRlciwgeW91IGNhbiBwYXNzIGB2ZXJ0aWNhbGAgb3IgYGhvcml6b250YWxgLlxuQG1peGluIGZpbHRlci1ncmFkaWVudChcbiAgJHN0YXJ0LWNvbG9yLFxuICAkZW5kLWNvbG9yLFxuICAkb3JpZW50YXRpb246IHZlcnRpY2FsXG4pIHtcbiAgQGluY2x1ZGUgZm9yLWxlZ2FjeS1icm93c2VycygoaWU6IFwiOFwiKSwgJGdyYWRpZW50LXN1cHBvcnQtdGhyZXNob2xkKSB7XG4gICAgQGluY2x1ZGUgaGFzLWxheW91dDtcbiAgICAkZ3JhZGllbnQtdHlwZTogaWYoJG9yaWVudGF0aW9uID09IHZlcnRpY2FsLCAwLCAxKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChncmFkaWVudFR5cGU9I3skZ3JhZGllbnQtdHlwZX0sIHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9Jyk7XG4gIH1cbn1cblxuXG4vLyBCb3JkZXIgaW1hZ2UgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMuXG5AbWl4aW4gYm9yZGVyLWltYWdlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSB3aXRoLWVhY2gtcHJlZml4KGJvcmRlci1pbWFnZSwgJGJvcmRlci1pbWFnZS1zdXBwb3J0LXRocmVzaG9sZCkge1xuICAgICRib3JkZXItcHJlZml4OiAkY3VycmVudC1wcmVmaXg7XG4gICAgQGluY2x1ZGUgZWFjaC1ncmFkaWVudC1wcmVmaXgoJHZhbHVlKSB7XG4gICAgICBAaWYgJGN1cnJlbnQtcHJlZml4IGFuZCBwcmVmaXhlZCgkY3VycmVudC1wcmVmaXgsICR2YWx1ZSkge1xuICAgICAgICAkbGVnYWN5LXZhbHVlOiByZWplY3QoJHZhbHVlLCBmaWxsKTtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4LXByb3AoYm9yZGVyLWltYWdlLCBwcmVmaXgoJGN1cnJlbnQtcHJlZml4LCAkbGVnYWN5LXZhbHVlKSwgJHByZWZpeDogJGJvcmRlci1wcmVmaXgpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeC1wcm9wKGJvcmRlci1pbWFnZSwgJHZhbHVlLCAkcHJlZml4OiAkYm9yZGVyLXByZWZpeCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIExpc3Qgc3R5bGUgaW1hZ2UgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGxpc3Qtc3R5bGUtaW1hZ2UoJGltYWdlKSB7XG4gIEBpbmNsdWRlIGltYWdlLXByb3BlcnR5KGxpc3Qtc3R5bGUtaW1hZ2UsICRpbWFnZSk7XG59XG5cbi8vIExpc3Qgc3R5bGUgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGxpc3Qtc3R5bGUoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGltYWdlLXByb3BlcnR5KGxpc3Qtc3R5bGUsICR2YWx1ZSk7XG59XG5cbi8vIGNvbnRlbnQgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGNvbnRlbnQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGltYWdlLXByb3BlcnR5KGNvbnRlbnQsICR2YWx1ZSk7XG59XG4iLCJAaW1wb3J0IFwiY29tcGFzc1wiO1xuQGltcG9ydCBcImJyZWFrcG9pbnRcIjtcblxuLyogQ3Jhc2hQbGFuIGNvbnN1bWVyIGNvbG9ycyAqL1xuJGNwLWxpZ2h0LWdyYXk6ICNFRUYxRjQ7XG4kY3AtbWVkaXVtLWdyYXk6ICM4Q0ExQTY7XG4kY3AtYm9keS1vbi13aGl0ZTogIzRENUI2MjtcbiRjcC10ZWFsOiAjNEM3NDdBO1xuJGNwLW1lZGl1bS1ibHVlOiAjNjA3QThCO1xuJGNwLW1haW4tbmF2LWxpbmstY29sb3I6ICNEN0RFRTU7XG5cbiRidXNpbmVzc0NvbG9yOiByZ2IoMjYsMTgyLDIzMik7XG4kY29uc3VtZXJDb2xvcjogcmdiKDEyMiwxODMsMCk7XG4kZW50ZXJwcmlzZUNvbG9yOiByZ2IoNjksODMsOTApO1xuXG5cbi8qIENyYXNoUGxhbiBzcGVjaWZpYyBicmVha3BvaW50cyAqL1xuJG1vYmlsZS1icmVha3BvaW50LTE6IDYyMHB4O1xuJG1vYmlsZS1icmVha3BvaW50LTI6IDQ4MHB4O1xuXG4vKiBUZXh0IHNoYWRvdyBzdHlsZXMgKi9cbiRkZWZhdWx0LXRleHQtc2hhZG93LWNvbG9yOiByZ2JhKDAsMCwwLDAuNSk7XG4kZGVmYXVsdC10ZXh0LXNoYWRvdy1ibHVyOiA0cHg7XG4kZGVmYXVsdC10ZXh0LXNoYWRvdy12LW9mZnNldDogMXB4O1xuXG4vLyBCYW5uZXIgaGVpZ2h0c1xuJGNwLWJhbm5lci1oZWlnaHQtc206IDI2MHB4O1xuJGNwLWJhbm5lci1oZWlnaHQtbWQ6IDQwNXB4O1xuJGNwLWJhbm5lci1oZWlnaHQtbGc6IDYwNXB4O1xuXG5AbWl4aW4gc2hhZG93LXRleHQge1xuXHRAaW5jbHVkZSBzaW5nbGUtdGV4dC1zaGFkb3c7XG5cdC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LlNoYWRvdyhjb2xvcj0nYmxhY2snLCBEaXJlY3Rpb249MTM1LCBTdHJlbmd0aD0yKVwiO1xuXHR6b29tOiAxO1xufVxuXG4vKiBMYXJnZXN0IHRleHQgc2l6ZS4gVXNlZCBleGNsdXNpdmVseSBmb3IgbWFpbiBoZWFkbGluZXMgKi9cbkBtaXhpbiBjcC10ZXh0LXNpemUtMSB7XG5cdEBpbmNsdWRlIGZsdWlkLXR5cGUtZm9udC1zaXplKCA0OHB4LCA3MHB4LCA3OHB4LCA4OHB4ICk7XG5cdEBpbmNsdWRlIGhlYWRlci1mb250cztcblx0QGluY2x1ZGUgc2hhZG93LXRleHQ7XG5cdGxpbmUtaGVpZ2h0OiAxLjA1O1xufVxuXG5AbWl4aW4gY3AtdGV4dC1zaXplLTIge1xuXHRAaW5jbHVkZSBmbHVpZC10eXBlLWZvbnQtc2l6ZSggMzBweCwgMzhweCwgNDRweCwgNDhweCwgKDQ4cHgvMzZweCkgKTtcblx0QGluY2x1ZGUgdGV4dC13ZWlnaHQtdGhpbjtcbn1cblxuQG1peGluIGNwLXRleHQtc2l6ZS0zIHtcblx0QGluY2x1ZGUgZmx1aWQtdHlwZS1mb250LXNpemUoIDI2cHgsIDI4cHgsIDMycHgsIDM0cHggKTtcbn1cblxuQG1peGluIGNwLXRleHQtc2l6ZS00IHtcblx0QGluY2x1ZGUgZmx1aWQtdHlwZS1mb250LXNpemUoIDIycHgsIDIycHgsIDI0cHgsIDI2cHgsICgzMnB4LzI2cHgpICk7XG59XG5cbi8qIFNpemUgZm9yIG1haW4gYm9keSB0ZXh0ICovXG5AbWl4aW4gY3AtdGV4dC1zaXplLTUge1xuXHRAaW5jbHVkZSBmbHVpZC10eXBlLWZvbnQtc2l6ZSggMTZweCwgMTdweCwgMTlweCwgMjJweCApO1xuXHRsaW5lLWhlaWdodDogMS4yXG59XG5AbWl4aW4gY3AtdGV4dC1zaXplLTUtc2hhZG93IHtcblx0QGluY2x1ZGUgY3AtdGV4dC1zaXplLTU7XG5cdEBpbmNsdWRlIHNoYWRvdy10ZXh0O1xufVxuXG4vKiBTbWFsbGVzdCB0ZXh0IHNpemUuIFVzZWQgZm9yIGNvbHVtbiBib2R5IHRleHQgKi9cbkBtaXhpbiBjcC10ZXh0LXNpemUtNiB7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0Zm9udC1zaXplOiAxcmVtO1xuXG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi8qIEV4Y2VwdGlvbjogdGlueSB0ZXh0ICovXG5AbWl4aW4gY3AtdGV4dC1zaXplLTcge1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtc2l6ZTogLjc1cmVtO1xuXG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbkBtaXhpbiBjcC10ZXh0LXNpemUtOCB7XG5cdEBpbmNsdWRlIGZsdWlkLXR5cGUtZm9udC1zaXplKCAxNHB4LCAxNHB4LCAxNnB4LCAxNnB4ICk7XG59XG5cbi8qIGNvZGU0MiBCdXR0b24gTWl4aW5zICovXG5AbWl4aW4gYnRuU3RhdGVzKCRjbHI6IGdyYXksICRodnI6IGJsYWNrLCAkYWN0OiByZWQsICRkczogZmFsc2UpIHtcblx0Y29sb3I6ICNGRkY7XG5cdGJhY2tncm91bmQ6ICRjbHI7XG5cdCY6bGluaywgJjp2aXNpdGVkIHtcblx0XHRjb2xvcjogI0ZGRjtcblx0fVxuXHQmOmhvdmVyIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0YmFja2dyb3VuZDogJGh2cjtcblx0XHRjb2xvcjogbGlnaHRlbigkY2xyLDEwMCk7XG5cdFx0QGlmKCRkcykge1xuXHRcdFx0Ym94LXNoYWRvdzogMHB4IDRweCAwcHggMHB4IHJnYmEoMCwwLDAsLjUpO1xuXHRcdH1cblx0fVxuXHQmOmFjdGl2ZSB7XG5cdFx0YmFja2dyb3VuZDogJGFjdDtcblx0XHRjb2xvcjogbGlnaHRlbigkY2xyLDEwMCk7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogMnB4O1xuXHRcdEBpZigkZHMpIHtcblx0XHRcdGJveC1zaGFkb3c6IDBweCAycHggMHB4IDBweCByZ2JhKDAsMCwwLC41KTtcblx0XHR9XG5cdH1cblx0QGlmKCRkcykge1xuXHRcdGJveC1zaGFkb3c6IDBweCA0cHggMHB4IDBweCByZ2JhKDAsMCwwLC41KTtcblx0fVxufVxuXG5AbWl4aW4gYnRuT25CYWNrZ3JvdW5kKCRjbHI6IGdyZXksICRodnI6IGJsYWNrLCAkYWN0OiByZWQsICRkczogZmFsc2UpIHtcblx0QGluY2x1ZGUgYnRuU3RhdGVzKCRjbHIsICRodnIsICRhY3QsICRkcyk7XG5cdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGNsciwxMDApO1xuXHRjb2xvcjogJGNscjtcblx0Ly8gRW5mb3JjZXMgY29sb3JzIGZvciBidXR0b25zIHdpdGggYmFja2dyb3VuZHMuXG5cdCY6bGluaywgJjp2aXNpdGVkIHtcblx0XHRjb2xvcjogJGNscjtcblx0fVxuXHQmOmhvdmVyIHtcblx0XHRjb2xvcjogI0ZGRjtcblx0fVxuXG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiY3BcIjtcblxuJG1haW4tbmF2LXNlY3Rpb24tc3BhY2luZzogMzBweDtcbiRtYWluLW5hdi13aWR0aDogMzA2cHg7XG4kbWFpbi1uYXYtdGllcjItcGFkZGluZzogMThweDtcbiRtYWluLW5hdi10cmFuc2l0aW9uOiAwLjMzcyBjdWJpYy1iZXppZXIoMC42OTQsIDAuMDQ4MiwgMC4zMzUsIDEpO1xuXG4ubWFpbi1uYXYge1xuXHRmb250LWZhbWlseTogXCJwcm94aW1hLW5vdmFcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblx0YmFja2dyb3VuZDogIzA1MDUwNTtcblx0Y29sb3I6ICRtYWluLW5hdi1saW5rLWNvbG9yO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRwYWRkaW5nLXRvcDogMjhweDtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRoZWlnaHQ6MTAwJTtcblx0d2lkdGg6ICRtYWluLW5hdi13aWR0aDtcblx0ei1pbmRleDogJGxheWVyLWluZGV4LW1haW4tbmF2O1xuXHRAaW5jbHVkZSByZW0oZm9udC1zaXplLCAxNnB4KTtcblx0bGluZS1oZWlnaHQ6IDEuNzU7XG5cdGZvbnQtd2VpZ2h0OiAxMDA7XG5cblx0QGluY2x1ZGUgdHJhbnNpdGlvbiggbWFyZ2luICRtYWluLW5hdi10cmFuc2l0aW9uICk7XG5cblx0dG9wOjA7XG5cdGxlZnQ6MTAwJTtcblx0bWFyZ2luLWxlZnQ6MDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA1MDBweCl7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHRuYXYge1xuXHRcdG1hcmdpbi1sZWZ0OiAtJG1haW4tbmF2LXRpZXIyLXBhZGRpbmc7XG5cdH1cblxuXHQvLyBQcmV2ZW50IG92ZXJyaWRlcyBmcm9tIHBhZ2Ugc3R5bGVzXG5cdHVsIHtcblx0XHRAaW5jbHVkZSBsaXN0LXJlc2V0O1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjc1O1xuXHR9XG5cblx0bGkge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHRhIHtcblx0XHRjb2xvcjogJG1haW4tbmF2LWxpbmstY29sb3I7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJG1haW4tbmF2LWxpbmstY29sb3I7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXG5cdFx0Ji5oZWFkZXItdHJ5LWJ1eSB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyBlYXNlLWluLW91dCk7XG5cdFx0XHRwYWRkaW5nOiAuMjE0Mjg1NzE0ZW0gLjM1NzE0Mjg1N2VtIC4xNDI4NTcxNDNlbSAuNTBlbTsgLyogMTRweCAqL1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgd2hpdGU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luOiAxMHB4IDBweCAwcHggMThweDtcblx0XHRcdGxldHRlci1zcGFjaW5nOiAxLjc1cHg7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGJyYW5kLWNvZGU0Mi1jb2xvcjtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLWNvZGU0Mi1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBEaXNhYmxpbmcgZXh0ZXJuYWwgbGluayBpY29uIGZvciBub3csIGJ1dCBleHBlY3QgdG8gcmV0dXJuICovXG5cdFx0LyomW3RhcmdldD1cIl9ibGFua1wiXTpob3ZlcjphZnRlciB7XG5cdFx0XHRmb250LWZhbWlseTogXCJGb250QXdlc29tZVwiO1xuXHRcdFx0Y29udGVudDogXCJcXDAwQTBcXDAwQTBcXGYwOGVcIjtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHRvcDogMXB4O1xuXHRcdH0qL1xuXHR9XG5cblx0YnV0dG9uIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0QGluY2x1ZGUgc3ZnLWJhY2tncm91bmQoIFwibmF2LWljb24tY2xvc2VcIiwgbm8tcmVwZWF0IDMxcHggMTdweCApO1xuXHRcdHdpZHRoOiA2MHB4O1xuXHRcdGhlaWdodDogNDBweDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDBweDtcblx0XHR0b3A6IDE2cHg7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAzMXB4IC00N3B4O1xuXHRcdH1cblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQubWFpbi1uYXYtdGllcjEge1xuXHRcdHBhZGRpbmctbGVmdDogMTZweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuXHR9XG5cblx0Lm1haW4tbmF2LXRpZXIyIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkbWFpbi1uYXYtc2VjdGlvbi1zcGFjaW5nO1xuXHRcdG1hcmdpbi1sZWZ0OiAkbWFpbi1uYXYtdGllcjItcGFkZGluZztcblxuXHRcdGxpIGEge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAkbWFpbi1uYXYtdGllcjItcGFkZGluZztcblxuXHRcdFx0Ji5oZWFkZXItdHJ5LWJ1eSB7XG5cdFx0XHRcdGhlaWdodDogMjRweDtcblx0XHRcdFx0cGFkZGluZzogMXB4IDVweCAycHggN3B4O1xuXHRcdFx0XHRtYXJnaW46IDJweCAwcHggNnB4IDE4cHg7XG5cdFx0XHRcdGxldHRlci1zcGFjaW5nOiAxLjc1cHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jb2RlNDIgJiAubWFpbi1uYXYtdGllcjIge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0QzRDNEM7XG5cdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQuY3Jhc2hwbGFuICYgLm1haW4tbmF2LXRpZXIyLFxuXHQuYnVzaW5lc3MgJiAubWFpbi1uYXYtdGllcjIge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNEM0QzRDO1xuXHRcdHBhZGRpbmctYm90dG9tOiAkbWFpbi1uYXYtc2VjdGlvbi1zcGFjaW5nIC8gMjtcblx0XHRtYXJnaW4tYm90dG9tOiAkbWFpbi1uYXYtc2VjdGlvbi1zcGFjaW5nIC8gMjtcblxuXHRcdC5oZWFkZXItdHJ5LWJ1eSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAkbWFpbi1uYXYtc2VjdGlvbi1zcGFjaW5nIC8gMztcblx0XHR9XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQuYnVzaW5lc3MgJiAubWFpbi1uYXYtdGllcjIgLmhlYWRlci10cnktYnV5IHtcblx0XHRoZWlnaHQ6IDE5cHg7XG5cdH1cblxuXG5cdC5tYWluLW5hdi10aWVyMS1oZWFkbGluZSB7XG5cdFx0QGluY2x1ZGUgc3Ryb25nLWN0YS10ZXh0O1xuXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzNDRBNTI7XG5cdFx0Y29sb3I6ICRtYWluLW5hdi1saW5rLWNvbG9yO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi1ib3R0b206IC41ZW07XG5cdFx0bWFyZ2luLWxlZnQ6ICRtYWluLW5hdi10aWVyMi1wYWRkaW5nO1xuXHR9XG5cblx0Lm1haW4tbmF2LXRpZXIyLWhlYWRsaW5lIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgNXB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRwYWRkaW5nLWxlZnQ6ICRtYWluLW5hdi10aWVyMi1wYWRkaW5nO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXHQubWFpbi1uYXYtdGllcjItaGVhZGxpbmUsIGEge1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0LXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2Utb3V0OyBcblx0XHRcdFx0dHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLW91dDsgXG5cdFx0Ji5oZWFkZXItdHJ5LWJ1eTpob3ZlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiBzaGFkZSgkbWFpbi1uYXYtbGluay1jb2xvciwgNTApO1xuXHRcdH1cblx0XHQmLm1haW4tbmF2LWN1cnJlbnQ6aG92ZXIge1xuXHRcdFx0Y29sb3I6IHNoYWRlKCRicmFuZC1jb2RlNDItY29sb3IsIDIwKTtcblx0XHR9XG5cdH1cblxuXHQubWFpbi1uYXYtdGllcjMge1xuXHRcdHBhZGRpbmctbGVmdDogMjBweDtcblx0fVxuXG5cdGEubWFpbi1uYXYtY3VycmVudCB7XG5cdFx0Y29sb3I6ICRicmFuZC1jb2RlNDItY29sb3I7XG5cdH1cblxuXHQubWFpbi1uYXYtdGllcjItaGVhZGxpbmUge1xuXHRcdGJhY2tncm91bmQ6IHVybCggXCJpbWFnZXMvY29kZTQyL25hdi1pY29uLW1pbnVzLnBuZ1wiICkgMHB4IGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0Y29sb3I6ICRtYWluLW5hdi1saW5rLWNvbG9yO1xuXHR9XG5cblx0Lm1haW4tbmF2LWNvbGxhcHNlZCB7XG5cdFx0Lm1haW4tbmF2LXRpZXIyLWhlYWRsaW5lIHtcblx0XHRcdGJhY2tncm91bmQ6IHVybCggXCJpbWFnZXMvY29kZTQyL25hdi1pY29uLXBsdXMucG5nXCIgKSAwcHggY2VudGVyIG5vLXJlcGVhdDtcblx0XHR9XG5cdH1cblxuXG5cdC5uYXYtc29jaWFsIHtcblx0XHRAaW5jbHVkZSBob3Jpem9udGFsLWxpc3Q7XG5cblx0XHRsaSB7XG5cdFx0XHRwYWRkaW5nOiAwIC43NWVtO1xuXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5ub3QtY3VycmVudC1zZWN0aW9uIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkbWFpbi1uYXYtc2VjdGlvbi1zcGFjaW5nO1xuXHRcdC5tYWluLW5hdi10aWVyMS1oZWFkbGluZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvY29kZTQyL25hdi1pY29uLWFycm93LnBuZ1wiKSByaWdodCA4cHggbm8tcmVwZWF0O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Y29sb3I6ICM4NTkyOTc7XG5cdFx0fVxuXG5cdFx0Lm1haW4tbmF2LXRpZXIyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi5wYWdlLXdyYXBwZXIsXG4ubWFpbi1oZWFkZXItbG9nbyxcbi5jNDItcHJvZHVjdC1oZWFkZXItbG9nbyxcbi5zcC1zdWJuYXYsXG4uc3RvcmUtY2FydCxcbi5maXhlZC1oZWFkZXIsXG4jY2FyZWVyc0Zvb3RlciB7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oIGxlZnQgJG1haW4tbmF2LXRyYW5zaXRpb24sIG9wYWNpdHkgJG1haW4tbmF2LXRyYW5zaXRpb24gKTtcblx0bGVmdDogMDtcdC8qIEZpcmVmb3ggbmVlZHMgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgYW5pbWF0aW9uIHRvIHdvcmsgY29ycmVjdGx5ICovXG59XG4ubm90cmFuc2l0aW9uIHtcblx0QGluY2x1ZGUgdHJhbnNpdGlvbiggbm9uZSAhaW1wb3J0YW50ICk7XG59XG5cbi8vIEVudGVycHJpc2Ugc2l0ZSBsaXZlIGNoYXRcbiNsaXZlY2hhdC1jb21wYWN0LWNvbnRhaW5lciwgI2xpdmVjaGF0LWNvbnRhaW5lciB7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oIHJpZ2h0ICRtYWluLW5hdi10cmFuc2l0aW9uLCBvcGFjaXR5ICRtYWluLW5hdi10cmFuc2l0aW9uICk7XG5cdHJpZ2h0OiBpbmhlcml0O1x0Ly8gZm9yY2Ugb3ZlcnJpZGUgZWxlbWVudCBzdHlsZSBmcm9tIGxpdmVjaGF0XG59XG5cbi5tYWluLW5hdi1vcGVuIHtcblx0Lm1haW4taGVhZGVyLWxvZ28sXG5cdC5jNDItcHJvZHVjdC1oZWFkZXItbG9nbyxcblx0LnNwLXN1Ym5hdixcblx0LnN0b3JlLWNhcnQsXG5cdC5wYWdlLXdyYXBwZXIsIFxuXHQuZml4ZWQtaGVhZGVyLCBcblx0I2NhcmVlcnNGb290ZXIsIFxuXHQuaWU4ICYgLm1haW4taGVhZGVyIHtcblx0XHRsZWZ0OiAtJG1haW4tbmF2LXdpZHRoO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoIDUwMHB4KXtcblx0XHRcdGxlZnQ6LTEwMCU7XG5cdFx0fVxuXHR9XG5cdFxuXHQubWFpbi1uYXYge1xuXHRcdG1hcmdpbi1sZWZ0Oi0kbWFpbi1uYXYtd2lkdGg7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggNTAwcHgpe1xuXHRcdFx0bWFyZ2luLWxlZnQ6LTEwMCU7XG5cdFx0fVxuXHR9XG5cblx0Ly8gRW50ZXJwcmlzZSBzaXRlIGxpdmUgY2hhdFxuXHQjbGl2ZWNoYXQtY29tcGFjdC1jb250YWluZXIsICNsaXZlY2hhdC1jb250YWluZXIge1xuXHRcdHJpZ2h0OiAkbWFpbi1uYXYtd2lkdGggKyAxNSAhaW1wb3J0YW50O1x0Ly8gZm9yY2Ugb3ZlcnJpZGUgZWxlbWVudCBzdHlsZSBmcm9tIGxpdmVjaGF0XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA1MDBweCl7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC5tYWluLWhlYWRlciB7XG5cdFx0b3BhY2l0eTogMDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIDQyMXB4ICkge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHQmLmNvZGU0MiwgJi5zaGFyZXBsYW4sICYuZW50ZXJwcmlzZSB7XG5cdFx0Lm1haW4taGVhZGVyIHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIDQyMXB4ICkge1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCA0NzVweCApIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggMTI4MHB4KXtcblx0XHRcdFx0Lm1haW4taGVhZGVyLWJ1dHRvbnMgYSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuc3RvcmUge1xuXHRcdC5tYWluLWhlYWRlciB7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA5MjBweCl7XG5cdFx0XHRcdC5tYWluLWhlYWRlci1idXR0b25zIGEge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XHRcdFxuXHR9XG5cblx0Lm1haW4taGVhZGVyLWxvZ28sIC5jNDItcHJvZHVjdC1oZWFkZXItbG9nb3tcblx0XHRsZWZ0OiAkbWFpbi1uYXYtd2lkdGggIWltcG9ydGFudDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoICRkZXNrdG9wLWJyZWFrcG9pbnQpe1xuXHRcdC5tYWluLWhlYWRlci1idXR0b25zIGEge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAxMDgwcHgpe1xuXHRcdCYuY3Jhc2hwbGFuLCAmLmJ1c2luZXNzIHtcblx0XHRcdC5tYWluLWhlYWRlci1tZW51LXRleHQgYSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggNTAwcHgpe1xuXHRcdG5hdiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHR9XG5cblx0XHQubWFpbi1uYXYtdGllcjEge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdH1cblxuXHRcdC5tYWluLW5hdiB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cblxuLy8gZGlzcGxheWluZyBzZWN0aW9uIHRpdGxlc1xuLmNvZGU0MiwgLmVudGVycHJpc2UsIC5zaGFyZXBsYW4sIC5yZXNvdXJjZXMge1xuXHQubWFpbi1uYXYtdGllcjEtaGVhZGxpbmUsIC5idXNpbmVzcy1uYXYsIC5ob21lLW5hdiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uYnVzaW5lc3Mge1xuXHQuYnVzaW5lc3MtZW50ZXJwcmlzZS1uYXYtdGl0bGUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmNyYXNocGxhbiwgLnN0b3JlIHtcblx0LmJ1c2luZXNzLW5hdiwgLmVudGVycHJpc2UtbmF2LXRpdGxlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi8vIE5vIEphdmFTY3JpcHQgZmFsbGJhY2tcbi5uby1qcyB7XG5cdC5tYWluLW5hdiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHN0YXRpYztcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdC5tYWluLW5hdi10aWVyMSB7XG5cdFx0XHQ+IGxpIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMTRweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBIaWRlIGNsb3NlIGJ1dHRvblxuXHRcdGJ1dHRvbiB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC8vIEhpZGUgTWFpbiBIZWFkZXIgc2luY2UgaXQgb3ZlcmxhcHMgdGhlIG1haW4gbmF2LCBpc24ndCBuZWVkZWQgc2luY2UgdGhlIG1haW4gbmF2IGlzIGFsd2F5cyBvcGVuLCBhbmQgaXQgcmVxdWlyZXMgamF2YXNjcmlwdCBmb3IgdGhlIGRyYWsvbGlnaHQgc3dpdGhpbmcuXG5cdC5tYWluLWhlYWRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5wYWdlLWNvbnRlbnQge1xuXHRcdHBhZGRpbmctdG9wOjA7XG5cdFx0LmJhbm5lci1jb250ZW50IHtcblx0XHRcdHBvc2l0aW9uOiBzdGF0aWM7XG5cdFx0fVxuXHR9XG59IiwiLy8gQmFzZWQgb24gW0VyaWMgTWV5ZXIncyByZXNldCAyLjBdKGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvaW5kZXguaHRtbClcbi8vIEdsb2JhbCByZXNldCBydWxlcy5cbi8vIEZvciBtb3JlIHNwZWNpZmljIHJlc2V0cywgdXNlIHRoZSByZXNldCBtaXhpbnMgcHJvdmlkZWQgYmVsb3dcbkBtaXhpbiBnbG9iYWwtcmVzZXQge1xuICBodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbiAgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuICBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG4gIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG4gIGIsIHUsIGksIGNlbnRlcixcbiAgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbiAgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG4gIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuICBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgXG4gIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgXG4gIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxuICB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc2V0LWJveC1tb2RlbDtcbiAgICBAaW5jbHVkZSByZXNldC1mb250OyB9XG4gIC8vIFVubGlrZSBFcmljJ3Mgb3JpZ2luYWwgcmVzZXQsIHdlIHJlc2V0IHRoZSBodG1sIGVsZW1lbnQgdG8gYmUgY29tcGF0aWJsZVxuICAvLyB3aXRoIHRoZSB2ZXJ0aWNhbCByaHl0aG0gbWl4aW5zLlxuICBodG1sIHtcbiAgICBAaW5jbHVkZSByZXNldC1ib2R5OyB9XG4gIG9sLCB1bCB7XG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZTsgfVxuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgcmVzZXQtdGFibGU7IH1cbiAgY2FwdGlvbiwgdGgsIHRkIHtcbiAgICBAaW5jbHVkZSByZXNldC10YWJsZS1jZWxsOyB9XG4gIHEsIGJsb2NrcXVvdGUge1xuICAgIEBpbmNsdWRlIHJlc2V0LXF1b3RhdGlvbjsgfVxuICBhIGltZyB7XG4gICAgQGluY2x1ZGUgcmVzZXQtaW1hZ2UtYW5jaG9yLWJvcmRlcjsgfVxuICBAaW5jbHVkZSByZXNldC1odG1sNTsgfVxuXG4vLyBSZXNldCBhbGwgZWxlbWVudHMgd2l0aGluIHNvbWUgc2VsZWN0b3Igc2NvcGUuIFRvIHJlc2V0IHRoZSBzZWxlY3RvciBpdHNlbGYsXG4vLyBtaXhpbiB0aGUgYXBwcm9wcmlhdGUgcmVzZXQgbWl4aW4gZm9yIHRoYXQgZWxlbWVudCB0eXBlIGFzIHdlbGwuIFRoaXMgY291bGQgYmVcbi8vIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBzdHlsZSBhIHBhcnQgb2YgeW91ciBwYWdlIGluIGEgZHJhbWF0aWNhbGx5IGRpZmZlcmVudCB3YXkuXG5AbWl4aW4gbmVzdGVkLXJlc2V0IHtcbiAgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG4gIGEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbiAgZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuICBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuICBiLCB1LCBpLCBjZW50ZXIsXG4gIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG4gIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxuICB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbiAgYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsIFxuICBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIFxuICBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbiAgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNldC1ib3gtbW9kZWw7XG4gICAgQGluY2x1ZGUgcmVzZXQtZm9udDsgfVxuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgcmVzZXQtdGFibGU7IH1cbiAgY2FwdGlvbiwgdGgsIHRkIHtcbiAgICBAaW5jbHVkZSByZXNldC10YWJsZS1jZWxsOyB9XG4gIHEsIGJsb2NrcXVvdGUge1xuICAgIEBpbmNsdWRlIHJlc2V0LXF1b3RhdGlvbjsgfVxuICBhIGltZyB7XG4gICAgQGluY2x1ZGUgcmVzZXQtaW1hZ2UtYW5jaG9yLWJvcmRlcjsgfSB9XG5cbi8vIFJlc2V0IHRoZSBib3ggbW9kZWwgbWVhc3VyZW1lbnRzLlxuQG1peGluIHJlc2V0LWJveC1tb2RlbCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbi8vIFJlc2V0IHRoZSBmb250IGFuZCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gcmVzZXQtZm9udCB7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbi8vIFJlc2V0cyB0aGUgb3V0bGluZSB3aGVuIGZvY3VzLlxuLy8gRm9yIGFjY2Vzc2liaWxpdHkgeW91IG5lZWQgdG8gYXBwbHkgc29tZSBzdHlsaW5nIGluIGl0cyBwbGFjZS5cbkBtaXhpbiByZXNldC1mb2N1cyB7XG4gIG91dGxpbmU6IDA7IH1cblxuLy8gUmVzZXQgYSBib2R5IGVsZW1lbnQuXG5AbWl4aW4gcmVzZXQtYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi8vIFJlc2V0IHRoZSBsaXN0IHN0eWxlIG9mIGFuIGVsZW1lbnQuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLy8gUmVzZXQgYSB0YWJsZVxuQG1peGluIHJlc2V0LXRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuLy8gUmVzZXQgYSB0YWJsZSBjZWxsIChgdGhgLCBgdGRgKVxuQG1peGluIHJlc2V0LXRhYmxlLWNlbGwge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8vIFJlc2V0IGEgcXVvdGF0aW9uIChgcWAsIGBibG9ja3F1b3RlYClcbkBtaXhpbiByZXNldC1xdW90YXRpb24ge1xuICBxdW90ZXM6IG5vbmU7XG4gICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiOyBcbiAgICBjb250ZW50OiBub25lOyB9IH1cblxuLy8gUmVzZXRzIHRoZSBib3JkZXIuXG5AbWl4aW4gcmVzZXQtaW1hZ2UtYW5jaG9yLWJvcmRlciB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4vLyBVbnJlY29nbml6ZWQgZWxlbWVudHMgYXJlIGRpc3BsYXllZCBpbmxpbmUuXG4vLyBUaGlzIHJlc2V0IHByb3ZpZGVzIGEgYmFzaWMgcmVzZXQgZm9yIGJsb2NrIGh0bWw1IGVsZW1lbnRzXG4vLyBzbyB0aGV5IGFyZSByZW5kZXJlZCBjb3JyZWN0bHkgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCByZWNvZ25pemUgdGhlbVxuLy8gYW5kIHJlc2V0IGluIGJyb3dzZXJzIHRoYXQgaGF2ZSBkZWZhdWx0IHN0eWxlcyBmb3IgdGhlbS5cbkBtaXhpbiByZXNldC1odG1sNSB7XG4gICN7ZWxlbWVudHMtb2YtdHlwZShodG1sNS1ibG9jayl9IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi8vIFJlc2V0cyB0aGUgZGlzcGxheSBvZiBpbmxpbmUgYW5kIGJsb2NrIGVsZW1lbnRzIHRvIHRoZWlyIGRlZmF1bHQgZGlzcGxheVxuLy8gYWNjb3JkaW5nIHRvIHRoZWlyIHRhZyB0eXBlLiBFbGVtZW50cyB0aGF0IGhhdmUgYSBkZWZhdWx0IGRpc3BsYXkgdGhhdCB2YXJpZXMgYWNyb3NzXG4vLyB2ZXJzaW9ucyBvZiBodG1sIG9yIGJyb3dzZXIgYXJlIG5vdCBoYW5kbGVkIGhlcmUsIGJ1dCB0aGlzIGNvdmVycyB0aGUgOTAlIHVzZSBjYXNlLlxuLy8gVXNhZ2UgRXhhbXBsZTpcbi8vXG4vLyAgICAgLy8gVHVybiBvZmYgdGhlIGRpc3BsYXkgZm9yIGJvdGggb2YgdGhlc2UgY2xhc3Nlc1xuLy8gICAgIC51bnJlZ2lzdGVyZWQtb25seSwgLnJlZ2lzdGVyZWQtb25seVxuLy8gICAgICAgZGlzcGxheTogbm9uZVxuLy8gICAgIC8vIE5vdyB0dXJuIG9ubHkgb25lIG9mIHRoZW0gYmFjayBvbiBkZXBlbmRpbmcgb24gc29tZSBvdGhlciBjb250ZXh0LlxuLy8gICAgIGJvZHkucmVnaXN0ZXJlZFxuLy8gICAgICAgK3Jlc2V0LWRpc3BsYXkoXCIucmVnaXN0ZXJlZC1vbmx5XCIpXG4vLyAgICAgYm9keS51bnJlZ2lzdGVyZWRcbi8vICAgICAgICtyZXNldC1kaXNwbGF5KFwiLnVucmVnaXN0ZXJlZC1vbmx5XCIpXG5AbWl4aW4gcmVzZXQtZGlzcGxheSgkc2VsZWN0b3I6IFwiXCIsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gICN7YXBwZW5kLXNlbGVjdG9yKGVsZW1lbnRzLW9mLXR5cGUoXCJpbmxpbmVcIiksICRzZWxlY3Rvcil9IHtcbiAgICBAaWYgJGltcG9ydGFudCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfSB9XG4gICN7YXBwZW5kLXNlbGVjdG9yKGVsZW1lbnRzLW9mLXR5cGUoXCJibG9ja1wiKSwgJHNlbGVjdG9yKX0ge1xuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9IH1cbiIsIi8vIEhvcml6b250YWwgbGlzdCBsYXlvdXQgbW9kdWxlLlxuLy9cbi8vIEVhc3kgbW9kZSB1c2luZyBzaW1wbGUgZGVzY2VuZGFudCBsaSBzZWxlY3RvcnM6XG4vL1xuLy8gICB1bC5uYXZcbi8vICAgICAraG9yaXpvbnRhbC1saXN0XG4vL1xuLy8gQWR2YW5jZWQgbW9kZTpcbi8vIElmIHlvdSBuZWVkIHRvIHRhcmdldCB0aGUgbGlzdCBpdGVtcyB1c2luZyBhIGRpZmZlcmVudCBzZWxlY3RvciB0aGVuIHVzZVxuLy8gK2hvcml6b250YWwtbGlzdC1jb250YWluZXIgb24geW91ciB1bC9vbCBhbmQgK2hvcml6b250YWwtbGlzdC1pdGVtIG9uIHlvdXIgbGkuXG4vLyBUaGlzIG1heSBoZWxwIHdoZW4gd29ya2luZyBvbiBsYXlvdXRzIGludm9sdmluZyBuZXN0ZWQgbGlzdHMuIEZvciBleGFtcGxlOlxuLy9cbi8vICAgdWwubmF2XG4vLyAgICAgK2hvcml6b250YWwtbGlzdC1jb250YWluZXJcbi8vICAgICA+IGxpXG4vLyAgICAgICAraG9yaXpvbnRhbC1saXN0LWl0ZW1cblxuQGltcG9ydCBcImJ1bGxldHNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiY29tcGFzcy91dGlsaXRpZXMvZ2VuZXJhbC9yZXNldFwiO1xuQGltcG9ydCBcImNvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvZmxvYXRcIjtcbkBpbXBvcnQgXCJjb21wYXNzL3N1cHBvcnRcIjtcblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IHNlbGVjdG9yIHRoYXQgdGFyZ2V0IGEgdWwgb3Igb2wgdGhhdCBpcyBtZWFudFxuLy8gdG8gaGF2ZSBhIGhvcml6b250YWwgbGF5b3V0LiBVc2VkIHRvIGltcGxlbWVudCAraG9yaXpvbnRhbC1saXN0LlxuQG1peGluIGhvcml6b250YWwtbGlzdC1jb250YWluZXIge1xuICBAaW5jbHVkZSByZXNldC1ib3gtbW9kZWw7XG4gIEBpbmNsdWRlIGNsZWFyZml4OyB9XG5cbi8vIENhbiBiZSBtaXhlZCBpbnRvIGFueSBsaSBzZWxlY3RvciB0aGF0IGlzIG1lYW50IHRvIHBhcnRpY2lwYXRlIGluIGEgaG9yaXpvbnRhbCBsYXlvdXQuXG4vLyBVc2VkIHRvIGltcGxlbWVudCAraG9yaXpvbnRhbC1saXN0LlxuLy9cbi8vIDpsYXN0LWNoaWxkIGlzIG5vdCBmdWxseSBzdXBwb3J0ZWRcbi8vIHNlZSBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Nzcy9jb250ZW50cy5odG1sI3QyOSBmb3IgdGhlIHN1cHBvcnQgbWF0cml4XG4vL1xuLy8gSUU4IGlnbm9yZXMgcnVsZXMgdGhhdCBhcmUgaW5jbHVkZWQgb24gdGhlIHNhbWUgbGluZSBhcyA6bGFzdC1jaGlsZFxuLy8gc2VlIGh0dHA6Ly93d3cucmljaGFyZHNjYXJyb3R0LmNvLnVrL3Bvc3RzL3ZpZXcvaWU4LWxhc3QtY2hpbGQtYnVnIGZvciBkZXRhaWxzXG4vL1xuLy8gU2V0dGluZyBgJHBhZGRpbmdgIHRvIGBmYWxzZWAgZGlzYWJsZXMgdGhlIHBhZGRpbmcgYmV0d2VlbiBsaXN0IGVsZW1lbnRzXG5AbWl4aW4gaG9yaXpvbnRhbC1saXN0LWl0ZW0oJHBhZGRpbmc6IDRweCwgJGRpcmVjdGlvbjogbGVmdCkge1xuICBAaW5jbHVkZSBuby1idWxsZXQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIEBpbmNsdWRlIGZsb2F0KCRkaXJlY3Rpb24pO1xuICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmc6IHtcbiAgICAgIGxlZnQ6ICRwYWRkaW5nO1xuICAgICAgcmlnaHQ6ICRwYWRkaW5nO1xuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkICN7aWYoc3VwcG9ydC1sZWdhY3ktYnJvd3NlcihcImllXCIsIFwiNlwiLCAkdGhyZXNob2xkOiAkY3NzLXNlbDItc3VwcG9ydC10aHJlc2hvbGQpLCAnLCAmLmZpcnN0JywgJycpfSB7IHBhZGRpbmctI3skZGlyZWN0aW9ufTogMDsgfVxuICAgICY6bGFzdC1jaGlsZCB7IHBhZGRpbmctI3tvcHBvc2l0ZS1wb3NpdGlvbigkZGlyZWN0aW9uKX06IDA7IH1cbiAgICBAaWYgc3VwcG9ydC1sZWdhY3ktYnJvd3NlcihcImllXCIsIFwiN1wiLCAkdGhyZXNob2xkOiAkY3NzLXNlbDItc3VwcG9ydC10aHJlc2hvbGQpIHtcbiAgICAgICYubGFzdCB7IHBhZGRpbmctI3tvcHBvc2l0ZS1wb3NpdGlvbigkZGlyZWN0aW9uKX06IDA7IH0gfVxuICB9XG59XG5cbi8vIEEgbGlzdChvbCx1bCkgdGhhdCBpcyBsYXllZCBvdXQgc3VjaCB0aGF0IHRoZSBlbGVtZW50cyBhcmUgZmxvYXRlZCBsZWZ0IGFuZCB3b24ndCB3cmFwLlxuLy8gVGhpcyBpcyBub3QgYW4gaW5saW5lIGxpc3QuXG4vL1xuLy8gU2V0dGluZyBgJHBhZGRpbmdgIHRvIGBmYWxzZWAgZGlzYWJsZXMgdGhlIHBhZGRpbmcgYmV0d2VlbiBsaXN0IGVsZW1lbnRzXG5AbWl4aW4gaG9yaXpvbnRhbC1saXN0KCRwYWRkaW5nOiA0cHgsICRkaXJlY3Rpb246IGxlZnQpIHtcbiAgQGluY2x1ZGUgaG9yaXpvbnRhbC1saXN0LWNvbnRhaW5lcjtcbiAgbGkge1xuICAgIEBpbmNsdWRlIGhvcml6b250YWwtbGlzdC1pdGVtKCRwYWRkaW5nLCAkZGlyZWN0aW9uKTsgfSB9XG4iLCIvLyBUdXJuIG9mZiB0aGUgYnVsbGV0IGZvciBhbiBlbGVtZW50IG9mIGEgbGlzdFxuQG1peGluIG5vLWJ1bGxldCB7XG4gIGxpc3Qtc3R5bGUtaW1hZ2UgOiBub25lO1xuICBsaXN0LXN0eWxlLXR5cGUgIDogbm9uZTtcbiAgbWFyZ2luLWxlZnQgICAgICA6IDA7XG59XG5cbi8vIHR1cm5zIG9mZiB0aGUgYnVsbGV0cyBmb3IgYW4gZW50aXJlIGxpc3RcbkBtaXhpbiBuby1idWxsZXRzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGkgeyBAaW5jbHVkZSBuby1idWxsZXQ7IH1cbn1cblxuLy8gTWFrZSBhIGxpc3QodWwvb2wpIGhhdmUgYW4gaW1hZ2UgYnVsbGV0LlxuLy9cbi8vIFRoZSBtaXhpbiBzaG91bGQgYmUgdXNlZCBsaWtlIHRoaXMgZm9yIGFuIGljb24gdGhhdCBpcyA1eDc6XG4vL1xuLy8gICAgIHVsLnByZXR0eVxuLy8gICAgICAgK3ByZXR0eS1idWxsZXRzKFwibXktaWNvbi5wbmdcIiwgNXB4LCA3cHgpXG4vL1xuLy8gQWRkaXRpb25hbGx5LCBpZiB0aGUgaW1hZ2UgZGltZW5zaW9ucyBhcmUgbm90IHByb3ZpZGVkLFxuLy8gVGhlIGltYWdlIGRpbWVuc2lvbnMgd2lsbCBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgaW1hZ2UgaXRzZWxmLlxuLy9cbi8vICAgICB1bC5wcmV0dHlcbi8vICAgICAgICtwcmV0dHktYnVsbGV0cyhcIm15LWljb24ucG5nXCIpXG4vL1xuQG1peGluIHByZXR0eS1idWxsZXRzKCRidWxsZXQtaWNvbiwgJHdpZHRoOiBpbWFnZS13aWR0aCgkYnVsbGV0LWljb24pLCAkaGVpZ2h0OiBpbWFnZS1oZWlnaHQoJGJ1bGxldC1pY29uKSwgJGxpbmUtaGVpZ2h0OiAxOHB4LCAkcGFkZGluZzogMTRweCkge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGkge1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogaW1hZ2UtdXJsKCRidWxsZXQtaWNvbikgbm8tcmVwZWF0ICgkcGFkZGluZyAtICR3aWR0aCkgLyAyICgkbGluZS1oZWlnaHQgLSAkaGVpZ2h0KSAvIDI7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiY29tcGFzcy9zdXBwb3J0XCI7XG5cbi8vIFRoZSBsZWdhY3kgc3VwcG9ydCB0aHJlc2hvbGQgZm9yIGZsb2F0LlxuLy8gRGVmYXVsdHMgdG8gdGhlICRjcml0aWNhbC11c2FnZS10aHJlc2hvbGQuXG4kbGVnYWN5LWZsb2F0LXN1cHBvcnQtdGhyZXNob2xkOiAkY3JpdGljYWwtdXNhZ2UtdGhyZXNob2xkICFkZWZhdWx0O1xuXG4vLyBJbXBsZW1lbnRhdGlvbiBvZiBmbG9hdDpsZWZ0IHdpdGggZml4IGZvciB0aGVcbi8vIFtkb3VibGUtbWFyZ2luIGJ1ZyBpbiBJRTUvNl0oaHR0cDovL3d3dy5wb3NpdGlvbmlzZXZlcnl0aGluZy5uZXQvZXhwbG9yZXIvZG91YmxlZC1tYXJnaW4uaHRtbClcbkBtaXhpbiBmbG9hdC1sZWZ0IHtcbiAgQGluY2x1ZGUgZmxvYXQobGVmdCk7IH1cblxuLy8gSW1wbGVtZW50YXRpb24gb2YgZmxvYXQ6cmlnaHQgd2l0aCBmaXggZm9yIHRoZVxuLy8gW2RvdWJsZS1tYXJnaW4gYnVnIGluIElFNS82XShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9leHBsb3Jlci9kb3VibGVkLW1hcmdpbi5odG1sKVxuQG1peGluIGZsb2F0LXJpZ2h0IHtcbiAgQGluY2x1ZGUgZmxvYXQocmlnaHQpOyB9XG5cbi8vIERpcmVjdGlvbiBpbmRlcGVuZGVudCBmbG9hdCBtaXhpbiB0aGF0IGZpeGVzIHRoZVxuLy8gW2RvdWJsZS1tYXJnaW4gYnVnIGluIElFNS82XShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9leHBsb3Jlci9kb3VibGVkLW1hcmdpbi5odG1sKVxuQG1peGluIGZsb2F0KCRzaWRlOiBsZWZ0KSB7XG4gIGZsb2F0OiB1bnF1b3RlKCRzaWRlKTtcbiAgQGlmIHN1cHBvcnQtbGVnYWN5LWJyb3dzZXIoXCJpZVwiLCBcIjZcIiwgJHRocmVzaG9sZDogJGxlZ2FjeS1mbG9hdC1zdXBwb3J0LXRocmVzaG9sZCkge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfSB9XG5cbi8vIFJlc2V0cyBmbG9hdGVkIGVsZW1lbnRzIGJhY2sgdG8gdGhlaXIgZGVmYXVsdCBvZiBgZmxvYXQ6IG5vbmVgIGFuZCBkZWZhdWx0c1xuLy8gdG8gYGRpc3BsYXk6IGJsb2NrYCB1bmxlc3MgeW91IHBhc3MgYGlubGluZWAgYXMgYW4gYXJndW1lbnRcbi8vXG4vLyBVc2FnZSBFeGFtcGxlOlxuLy9cbi8vICAgICBib2R5LmhvbWVwYWdlXG4vLyAgICAgICAjZm9vdGVyIGxpXG4vLyAgICAgICAgICtmbG9hdC1sZWZ0XG4vLyAgICAgYm9keS5zaWdudXBcbi8vICAgICAgICNmb290ZXIgbGlcbi8vICAgICAgICAgK3Jlc2V0LWZsb2F0XG5AbWl4aW4gcmVzZXQtZmxvYXQoJGRpc3BsYXk6IGJsb2NrKSB7XG4gIGZsb2F0OiBub25lO1xuICBAaWYgc3VwcG9ydC1sZWdhY3ktYnJvd3NlcihcImllXCIsIFwiNlwiLCAkdGhyZXNob2xkOiAkbGVnYWN5LWZsb2F0LXN1cHBvcnQtdGhyZXNob2xkKSB7XG4gICAgZGlzcGxheTogJGRpc3BsYXk7IH0gfVxuIiwiLyogU2ltcGxlTW9kYWwgalF1ZXJ5IFBsdWdpbiovXG5cbiNzaW1wbGVtb2RhbC1vdmVybGF5IHtcblx0Ly8gSW50ZW50aW9uYWxseSBub3QgdXNpbmcgbWl4aW4gYmVjdWF1c2UgdGhlIGZhbGxiYWNrIHNob3VsZCBiZSB0cmFuc3BhcmVudCBpbnN0ZWFkIG9mIGEgc29saWQgY29sb3Jcblx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG4jc2ltcGxlbW9kYWwtY29udGFpbmVyIHtcblx0Ly8gU2ltcGxlIE1vZGFsIHBsdWdpbiBkb2Vzbid0IGhhbmRsZSBib3JkZXItYm94IGNvcnJlY3RseVxuXHRAaW5jbHVkZSBib3gtc2l6aW5nKCBjb250ZW50LWJveCApO1xuXG5cdGJhY2tncm91bmQ6ICNGRkY7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDE1cHg7XG5cdHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50OyAvKiBJRSBmaXggKi9cbn1cblxuLm1vZGFsQ2xvc2VJbWcge1xuXHRiYWNrZ3JvdW5kOiB1cmwoIFwiaW1hZ2VzL2ljb24tY2xvc2UtbW9kYWwucG5nXCIgKSBuby1yZXBlYXQ7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0aGVpZ2h0OiAyNXB4O1xuXHRsZWZ0OiAtOHB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogLThweDtcblx0d2lkdGg6IDI1cHg7XG5cdHotaW5kZXg6IDEwMDtcbn1cbiIsIi8qXG4gKiBIVE1MNSBCb2lsZXJwbGF0ZSBJbWFnZSByZXBsYWNlbWVudFxuICovXG5cbi5pciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRib3JkZXI6IDA7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdC8qIElFIDYvNyBmYWxsYmFjayAqL1xuXHQqdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG59XG5cbi5pcjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlwiO1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDA7XG5cdGhlaWdodDogMTUwJTtcbn1cblxuLypcbiAqIEhUTUw1IEJvaWxlcnBsYXRlIENsZWFyZml4OiBjb250YWluIGZsb2F0c1xuICpcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBgY29udGVudGVkaXRhYmxlYCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgcmVjZWl2ZSB0aGUgYGNsZWFyZml4YCBjbGFzcy5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKi9cblxuLmNsZWFyZml4OmJlZm9yZSxcbi5jbGVhcmZpeDphZnRlciB7XG5cdGNvbnRlbnQ6IFwiIFwiOyAvKiAxICovXG5cdGRpc3BsYXk6IHRhYmxlOyAvKiAyICovXG59XG5cbi5jbGVhcmZpeDphZnRlciB7XG5cdGNsZWFyOiBib3RoO1xufVxuXG4vKlxuICogRm9yIElFIDYvNyBvbmx5XG4gKiBJbmNsdWRlIHRoaXMgcnVsZSB0byB0cmlnZ2VyIGhhc0xheW91dCBhbmQgY29udGFpbiBmbG9hdHMuXG4gKi9cblxuLmNsZWFyZml4IHtcblx0Knpvb206IDE7XG59XG5cbi8qXG4gKiBIVE1MNSBCb2lsZXJwbGF0ZTogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbnJlYWRlcnM6IGg1YnAuY29tL3ZcbiAqL1xuXG4udmlzdWFsbHloaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbi8qXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnQgdG8gYmUgZm9jdXNhYmxlXG4gKiB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOiBoNWJwLmNvbS9wXG4gKi9cblxuLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTphY3RpdmUsXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmZvY3VzIHtcbiAgICBjbGlwOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbn1cbiIsIlxuXG4kZm9vdGVyLWJyZWFrcG9pbnQtMTogMTAwMHB4O1xuJGZvb3Rlci1icmVha3BvaW50LTI6IDgzMHB4O1xuJHByb2R1Y3QtY29sdW1uLXdpZHRoOiAxNCU7XG4kZm9vdGVyLXRleHQtY29sb3I6ICNEM0Q0RDc7XG5cbi5sZWdhY3ktZm9vdGVyLXdyYXAge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDI7XG5cdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJsdWUtY29sb3I7XG5cdGNvbG9yOiAjRThFOUVCO1xuXHRmb250LXNpemU6IDEzcHg7XG5cdGZvbnQtc2l6ZTogLjgxMjVyZW07XG5cdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LXN0YWNrO1xuXHRwYWRkaW5nLXRvcDogNDBweDtcblx0QGluY2x1ZGUgYm94LXNoYWRvdygwcHggMTBweCAzMHB4IHJnYmEoMCwwLDAsLjUpKTtcblxuXHQuYnVzaW5lc3MgJiB7XG5cdFx0KiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHR9XG5cdH1cblxuXHQuZW50ZXJwcmlzZSAmIHtcblx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHR9XG5cblx0Ly8gUHJldmVudCBmbGFzaGluZyB0ZXh0IGZyb20gYW5pbWF0aW9ucyBvbiBjNDIgaG9tZXBhZ2Vcblx0QGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eS1maXg7XG5cblx0cCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHR1bCB7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdGEge1xuXHRcdCY6bGluayxcblx0XHQmOnZpc2l0ZWQsXG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRjb2xvcjogJGZvb3Rlci10ZXh0LWNvbG9yO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggJGZvb3Rlci1icmVha3BvaW50LTIpe1xuXHRcdHBhZGRpbmctdG9wOiAyNXB4O1xuXHR9XG5cblx0Ji5uby1jYXJlZXJzIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cdH1cbn1cblxuLmM0Mi1jb3B5cmlnaHQge1xuXHRiYWNrZ3JvdW5kOiAjNDY0QzU5O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAjNTI2NTZkO1xuXHRtaW4taGVpZ2h0OiAyNXB4O1xuXHRsaW5lLWhlaWdodDogMjVweDtcblx0Y29sb3I6ICNiNmJlYmY7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC1zaXplOiAuNzVyZW07XG5cdHBhZGRpbmctcmlnaHQ6IDA7XG5cdEBpbmNsdWRlIGJhY2tmYWNlLXZpc2liaWxpdHktZml4O1x0Ly8gcHJldmVudHMgYmxpbmtpbmcgb2YgdGV4dFxuXG5cdGEge1xuXHRcdGNvbG9yOiAjYjZiZWJmO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cdH1cbn1cblxuLmNyYXNocGxhbiwgLnNoYXJlcGxhbiwgLnN0b3JlIHtcblx0LmM0Mi1jb3B5cmlnaHQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLyogaW50ZXJtZWRpYXRlIGJyZWFrcG9pbnQgKi9cbkBpbmNsdWRlIGJyZWFrcG9pbnQoIDUzMHB4ICkge1xuXHQuYzQyLWZvb3Rlci1uYXYge1xuXHRcdGxpIHtcblx0XHRcdHdpZHRoOiAxNSU7XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0d2lkdGg6IDQwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuYzQyLWNvcHlyaWdodCB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0fVxufVxuXG4ubGVnYWN5LWZvb3RlciwgLmZvb3Rlci1jb3B5cmlnaHQge1xuXHRwYWRkaW5nOiAwIDIwcHg7XG59XG5cbi5sZWdhY3ktZm9vdGVyIHtcblx0cGFkZGluZy1ib3R0b206IDM1cHg7XG5cblx0QGluY2x1ZGUgY2xlYXItYWZ0ZXI7XG5cblx0LmxlZ2FjeS1mb290ZXItbG9nbyB7XG5cdFx0d2lkdGg6IDkwcHg7XG5cdFx0aGVpZ2h0OiAyMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDEycHg7XG5cdH1cblxuXHQubGVnYWN5LWZvb3Rlci1sb2dvLWljb24ge1xuXHRcdGZpbGw6ICRicmFuZC1jb2RlNDItY29sb3I7XG5cdH1cblxuXHQubGVnYWN5LWZvb3Rlci1sb2dvLXRleHQge1xuXHRcdGZpbGw6ICNmZmY7XG5cdH1cblxuXHQuYzQyLXN1bW1hcnksIC5wcm9kdWN0LWNvbHVtbiwgLmZvb3Rlci1zb2NpYWwtbGlua3Mge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG5cblx0LmM0Mi1zdW1tYXJ5IHtcblx0XHRwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE5cHg7XG5cdFx0XHRjb2xvcjogJGZvb3Rlci10ZXh0LWNvbG9yO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1heC13aWR0aCAkZm9vdGVyLWJyZWFrcG9pbnQtMSApIHtcblx0XHRcdHdpZHRoOiAzMCU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDMwcHg7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWF4LXdpZHRoICRmb290ZXItYnJlYWtwb2ludC0yICkge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiAwIDIwcHg7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5wcm9kdWN0LWNvbHVtbnMge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdEBpbmNsdWRlIGNsZWFyLWFmdGVyO1xuXG5cdFx0aW5wdXQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQucHJvZHVjdC1jb2x1bW4ge1xuXHRcdFx0d2lkdGg6ICRwcm9kdWN0LWNvbHVtbi13aWR0aDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cblx0XHRcdHVsIGxpIHtcblx0XHRcdFx0bWFyZ2luOiA3cHggMDtcblx0XHRcdH1cblxuXHRcdFx0Ji5jb2RlNDItY29sdW1uIHtcblx0XHRcdFx0d2lkdGg6ICRwcm9kdWN0LWNvbHVtbi13aWR0aCAtIDE7XG5cdFx0XHR9XG5cblx0XHRcdC5mb290ZXItc2VjdGlvbi10aXRsZSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDRweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGNvbG9yOiAkZm9vdGVyLXRleHQtY29sb3I7XG5cdFx0XHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAkZm9vdGVyLWJyZWFrcG9pbnQtMil7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMHB4O1xuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHR6LWluZGV4OiAyMDtcblx0XHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogI0YyRjRGNDtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdGNvbG9yOiAjOUJBQkI4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0XHRmb250LXNpemU6IDFyZW07XG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDYwcHg7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmY7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWF4LXdpZHRoICRmb290ZXItYnJlYWtwb2ludC0xICkge1xuXHRcdFx0XHR3aWR0aDogJHByb2R1Y3QtY29sdW1uLXdpZHRoICsgMjtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggJGZvb3Rlci1icmVha3BvaW50LTIpe1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXG5cdFx0XHRcdCYuY29kZTQyLWNvbHVtbiB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmxhc3QtY2hpbGQgbGFiZWx7XG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggJGZvb3Rlci1icmVha3BvaW50LTIpe1xuXHRcdFx0bWFyZ2luLXRvcDogMzBweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRcdFx0aW5wdXQ6Y2hlY2tlZCArIGxhYmVsLmZvb3Rlci1zZWN0aW9uLXRpdGxlIHtcblx0XHRcdFx0YmFja2dyb3VuZDogI0QzREFEQTtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRcdH1cblxuXHRcdFx0bGFiZWw6aG92ZXI6YWZ0ZXIsIGlucHV0OmNoZWNrZWQgKyBsYWJlbDpob3ZlcjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHR3aWR0aDogMjRweDtcblx0XHRcdFx0aGVpZ2h0OiAyNHB4O1xuXHRcdFx0XHRyaWdodDogMTNweDtcblx0XHRcdFx0dG9wOiA3cHg7XG5cdFx0XHR9XG5cblx0XHRcdHVsIHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0bWF4LWhlaWdodDogMDtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHR6LWluZGV4OiAxMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1heC13aWR0aDogNjAwcHg7XG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMDtcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbigwLjVzIGVhc2UpO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0XHR9XG5cblx0XHRcdGlucHV0OmNoZWNrZWQgfiB1bCB7XG5cdFx0XHRcdHBhZGRpbmc6IDIwcHggMTBweDtcblx0XHRcdFx0bWF4LWhlaWdodDogNDAwcHg7XG5cdFx0XHR9XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0d2lkdGg6IDMzJTtcblx0XHRcdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRmb250LXNpemU6IC44MTI1cmVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGxpLmZvb3Rlci1zZWN0aW9uLXRpdGxlIHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdG1hcmdpbi1ib3R0b206IDExcHg7XG5cdH1cblxuXHQuZm9vdGVyLXRydXN0ZSB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWF4LXdpZHRoICRmb290ZXItYnJlYWtwb2ludC0xICkge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0bWFyZ2luLXRvcDogMzBweDtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBtYXgtd2lkdGggJGZvb3Rlci1icmVha3BvaW50LTIgKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggMzg1cHgpe1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggJGZvb3Rlci1icmVha3BvaW50LTIpe1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogLTRweDtcblx0fVxufVxuXG4uZm9vdGVyLWNvcHlyaWdodCB7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0bGluZS1oZWlnaHQ6IDE5cHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICMxQjI5M0E7XG5cdHBhZGRpbmctdG9wOiA1cHg7XG5cdHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG4iLCIvLyBCb3ggU2hhZG93XG5cbkBpbXBvcnQgXCJjb21wYXNzL3N1cHBvcnRcIjtcblxuLy8gVGhlIHByZWZpeGVkIHN1cHBvcnQgdGhyZXNob2xkIGZvciBib3gtc2hhZG93LlxuLy8gRGVmYXVsdHMgdG8gdGhlICRncmFjZWZ1bC11c2FnZS10aHJlc2hvbGQuXG4kYm94LXNoYWRvdy1zdXBwb3J0LXRocmVzaG9sZDogJGdyYWNlZnVsLXVzYWdlLXRocmVzaG9sZCAhZGVmYXVsdDtcblxuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgYm94IHNoYWRvd3NcbiRkZWZhdWx0LWJveC1zaGFkb3ctY29sb3I6ICMzMzMzMzMgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGhvcml6b250YWwgb2Zmc2V0LiBQb3NpdGl2ZSBpcyB0byB0aGUgcmlnaHQuXG4kZGVmYXVsdC1ib3gtc2hhZG93LWgtb2Zmc2V0OiAwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHZlcnRpY2FsIG9mZnNldC4gUG9zaXRpdmUgaXMgZG93bi5cbiRkZWZhdWx0LWJveC1zaGFkb3ctdi1vZmZzZXQ6IDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgYmx1ciBsZW5ndGguXG4kZGVmYXVsdC1ib3gtc2hhZG93LWJsdXI6IDVweCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgc3ByZWFkIGxlbmd0aC5cbiRkZWZhdWx0LWJveC1zaGFkb3ctc3ByZWFkOiBudWxsICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBzaGFkb3cgaW5zZXQ6IGluc2V0IG9yIG51bGwgKGZvciBzdGFuZGFyZCBzaGFkb3cpLlxuJGRlZmF1bHQtYm94LXNoYWRvdy1pbnNldDogbnVsbCAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIGRlZmF1bHQtYm94LXNoYWRvdygpIHtcbiAgQHJldHVybiBjb21wYWN0KGlmKCRkZWZhdWx0LWJveC1zaGFkb3ctaW5zZXQsIGluc2V0LCBudWxsKVxuICAgICAgICAgICAgICAgICAgJGRlZmF1bHQtYm94LXNoYWRvdy1oLW9mZnNldFxuICAgICAgICAgICAgICAgICAgJGRlZmF1bHQtYm94LXNoYWRvdy12LW9mZnNldFxuICAgICAgICAgICAgICAgICAgJGRlZmF1bHQtYm94LXNoYWRvdy1ibHVyXG4gICAgICAgICAgICAgICAgICAkZGVmYXVsdC1ib3gtc2hhZG93LXNwcmVhZFxuICAgICAgICAgICAgICAgICAgJGRlZmF1bHQtYm94LXNoYWRvdy1jb2xvcik7XG59XG5cbi8vIFByb3ZpZGVzIGNyb3NzLWJyb3dzZXIgZm9yIFdlYmtpdCwgR2Vja28sIGFuZCBDU1MzIGJveCBzaGFkb3dzXG4vLyB3aGVuIG9uZSBvciBtb3JlIGJveCBzaGFkb3dzIGFyZSBuZWVkZWQuXG4vLyBFYWNoIHNoYWRvdyBhcmd1bWVudCBzaG91bGQgYWRoZXJlIHRvIHRoZSBzdGFuZGFyZCBjc3MzIHN5bnRheFxuLy8gZm9yIHRoZSBib3gtc2hhZG93IHByb3BlcnR5LlxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAkc2hhZG93OiBzZXQtYXJnbGlzdC1kZWZhdWx0KCRzaGFkb3csIGRlZmF1bHQtYm94LXNoYWRvdygpKTtcbiAgQGluY2x1ZGUgcHJlZml4ZWQtcHJvcGVydGllcyhjc3MtYm94c2hhZG93LCAkYm94LXNoYWRvdy1zdXBwb3J0LXRocmVzaG9sZCwgKGJveC1zaGFkb3c6ICRzaGFkb3cpKTtcbn1cblxuLy8gUHJvdmlkZXMgYSBzaW5nbGUgY3Jvc3MtYnJvd3NlciBDU1MgYm94IHNoYWRvdyBmb3IgV2Via2l0LCBHZWNrbywgYW5kIENTUzMuXG4vLyBJbmNsdWRlcyBkZWZhdWx0IGFyZ3VtZW50cyBmb3IgY29sb3IsIGhvcml6b250YWwgb2Zmc2V0LCB2ZXJ0aWNhbCBvZmZzZXQsIGJsdXIgbGVuZ3RoLCBzcHJlYWQgbGVuZ3RoLCBhbmQgaW5zZXQuXG5AbWl4aW4gc2luZ2xlLWJveC1zaGFkb3coXG4gICRob2ZmICAgOiBudWxsLFxuICAkdm9mZiAgIDogbnVsbCxcbiAgJGJsdXIgICA6IG51bGwsXG4gICRzcHJlYWQgOiBudWxsLFxuICAkY29sb3IgIDogbnVsbCxcbiAgJGluc2V0ICA6ICRkZWZhdWx0LWJveC1zaGFkb3ctaW5zZXRcbikge1xuICAvLyBIYW5kbGUgbGVnYWN5IGFyZ3VtZW50IG9yZGVyXG4gIEBpZiBub3QgKCRob2ZmID09IG5vbmUgb3IgJGhvZmYgPT0gbnVsbCkgYW5kIHR5cGUtb2YoJGhvZmYpICE9IG51bWJlciB7XG4gICAgQHdhcm4gXCJUaGUgJGNvbG9yIGFyZ3VtZW50IGZvciBzaW5nbGUtYm94LXNoYWRvdyBpcyBub3cgdGhlIDV0aCBhcmd1bWVudCBpbnN0ZWFkIG9mIHRoZSAxc3QuXCI7XG4gICAgJHRtcC1jb2xvcjogJGNvbG9yO1xuICAgICRjb2xvcjogJGhvZmY7XG4gICAgJGhvZmY6ICR2b2ZmO1xuICAgICR2b2ZmOiAkYmx1cjtcbiAgICAkYmx1cjogJHNwcmVhZDtcbiAgICAkc3ByZWFkOiAkdG1wLWNvbG9yXG4gIH1cblxuICAvLyBOZWVkIHRvIHNldCB0aGVzZSBkZWZhdWx0cyBoZXJlIGluc3RlYWQgb2YgdGhlIGFyZ2xpc3QgdG8gc3VwcG9ydCB0aGUgYWJvdmUgYmFja3dhcmRzIGNvbXBhdCBoYW5kbGluZ1xuICBAaWYgJGhvZmYgICA9PSBudWxsIHsgJGhvZmY6ICAgJGRlZmF1bHQtYm94LXNoYWRvdy1oLW9mZnNldDsgfVxuICBAaWYgJHZvZmYgICA9PSBudWxsIHsgJGhvZmY6ICAgJGRlZmF1bHQtYm94LXNoYWRvdy12LW9mZnNldDsgfVxuICBAaWYgJGJsdXIgICA9PSBudWxsIHsgJGJsdXI6ICAgJGRlZmF1bHQtYm94LXNoYWRvdy1ibHVyOyAgICAgfVxuICBAaWYgJHNwcmVhZCA9PSBudWxsIHsgJHNwcmVhZDogJGRlZmF1bHQtYm94LXNoYWRvdy1zcHJlYWQ7ICAgfVxuICBAaWYgJGNvbG9yICA9PSBudWxsIHsgJGNvbG9yOiAgJGRlZmF1bHQtYm94LXNoYWRvdy1jb2xvcjsgICAgfVxuXG4gIEBpZiBub3QgKCRpbnNldCA9PSB0cnVlIG9yICRpbnNldCA9PSBmYWxzZSBvciAkaW5zZXQgPT0gbnVsbCBvciAkaW5zZXQgPT0gaW5zZXQpIHtcbiAgICBAd2FybiBcIiRpbnNldCBleHBlY3RlZCB0byBiZSB0cnVlIG9yIHRoZSBpbnNldCBrZXl3b3JkLiBHb3QgI3skaW5zZXR9IGluc3RlYWQuIFVzaW5nOiBpbnNldFwiO1xuICB9XG5cbiAgQGlmICRob2ZmID09IG5vbmUge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIH0gQGVsc2Uge1xuICAgICRmdWxsICAgOiAkaG9mZiAkdm9mZjtcbiAgICBAaWYgJGJsdXIgICB7ICRmdWxsOiAkZnVsbCAkYmx1cjsgICB9XG4gICAgQGlmICRzcHJlYWQgeyAkZnVsbDogJGZ1bGwgJHNwcmVhZDsgfVxuICAgIEBpZiAkY29sb3IgIHsgJGZ1bGw6ICRmdWxsICRjb2xvcjsgIH1cbiAgICBAaWYgJGluc2V0ICB7ICRmdWxsOiBpbnNldCAkZnVsbDsgICB9XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkZnVsbCk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLyogQm9vdHN0cmFwIGRlZmF1bHRzIGZvciA5NDAgZ3JpZCAqL1xuJGdyaWRDb2x1bW5zOiAgICAgICAgICAgICAxMjtcbiRncmlkQ29sdW1uV2lkdGg6ICAgICAgICAgNjBweDtcbiRncmlkR3V0dGVyV2lkdGg6ICAgICAgICAgMjBweDtcbiRncmlkUm93V2lkdGg6ICAgICAgICAgICAgKCRncmlkQ29sdW1ucyAqICRncmlkQ29sdW1uV2lkdGgpICsgKCRncmlkR3V0dGVyV2lkdGggKiAoJGdyaWRDb2x1bW5zIC0gMSkpO1xuXG4kZmx1aWRHcmlkQ29sdW1uV2lkdGg6ICAgIHBlcmNlbnRhZ2UoJGdyaWRDb2x1bW5XaWR0aC8kZ3JpZFJvd1dpZHRoKTtcbiRmbHVpZEdyaWRHdXR0ZXJXaWR0aDogICAgcGVyY2VudGFnZSgkZ3JpZEd1dHRlcldpZHRoLyRncmlkUm93V2lkdGgpO1xuXG5AbWl4aW4gZ3JpZC1mbHVpZCgkZmx1aWRHcmlkQ29sdW1uV2lkdGgsICRmbHVpZEdyaWRHdXR0ZXJXaWR0aCkge1xuXHQucm93LWZsdWlkIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXHRcdFtjbGFzcyo9XCJzcGFuXCJdIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luLWxlZnQ6ICRmbHVpZEdyaWRHdXR0ZXJXaWR0aDtcblx0XHRcdCptYXJnaW4tbGVmdDogJGZsdWlkR3JpZEd1dHRlcldpZHRoIC0gKC41IC8gJGdyaWRSb3dXaWR0aCAqIDEwMHB4ICogMSUpO1xuXHRcdH1cblx0XHRbY2xhc3MqPVwic3BhblwiXTpmaXJzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHR9XG5cblx0XHQvKiBTcGFjZSBncmlkLXNpemVkIGNvbnRyb2xzIHByb3Blcmx5IGlmIG11bHRpcGxlIHBlciBsaW5lICovXG5cdFx0LmNvbnRyb2xzLXJvdyBbY2xhc3MqPVwic3BhblwiXSArIFtjbGFzcyo9XCJzcGFuXCJdIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAkZmx1aWRHcmlkR3V0dGVyV2lkdGg7XG5cdFx0fVxuXG5cdFx0LyogZ2VuZXJhdGUgLnNwYW5YIGFuZCAub2Zmc2V0WCAqL1xuXHRcdEBpbmNsdWRlIGdyaWQtZmx1aWQtc3Bhbi14KCRncmlkQ29sdW1ucywgJGZsdWlkR3JpZENvbHVtbldpZHRoLCAkZmx1aWRHcmlkR3V0dGVyV2lkdGgpO1xuXHRcdEBpbmNsdWRlIGdyaWQtZmx1aWQtb2Zmc2V0LXgoJGdyaWRDb2x1bW5zLCAkZmx1aWRHcmlkQ29sdW1uV2lkdGgsICRmbHVpZEdyaWRHdXR0ZXJXaWR0aCk7XG5cdH1cbn1cblxuQG1peGluIGdyaWQtZmx1aWQtc3Bhbi14KCRncmlkQ29sdW1ucywgJGZsdWlkR3JpZENvbHVtbldpZHRoLCAkZmx1aWRHcmlkR3V0dGVyV2lkdGgpIHtcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZENvbHVtbnMge1xuXHRcdC5zcGFuI3skaX0geyBAaW5jbHVkZSBncmlkLWZsdWlkLXNwYW4oJGksICRmbHVpZEdyaWRDb2x1bW5XaWR0aCwgJGZsdWlkR3JpZEd1dHRlcldpZHRoKTsgfVxuXHR9XG59XG5cbkBtaXhpbiBncmlkLWZsdWlkLW9mZnNldC14KCRncmlkQ29sdW1ucywgJGZsdWlkR3JpZENvbHVtbldpZHRoLCAkZmx1aWRHcmlkR3V0dGVyV2lkdGgpIHtcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZENvbHVtbnMge1xuXHRcdC5vZmZzZXQjeyRpfSB7IEBpbmNsdWRlIGdyaWQtZmx1aWQtb2Zmc2V0KCRpLCAkZmx1aWRHcmlkQ29sdW1uV2lkdGgsICRmbHVpZEdyaWRHdXR0ZXJXaWR0aCk7IH1cblx0XHQub2Zmc2V0I3skaX06Zmlyc3QtY2hpbGQgeyBAaW5jbHVkZSBncmlkLWZsdWlkLW9mZnNldC1maXJzdC1jaGlsZCgkaSwgJGZsdWlkR3JpZENvbHVtbldpZHRoLCAkZmx1aWRHcmlkR3V0dGVyV2lkdGgpOyB9XG5cdH1cbn1cblxuQG1peGluIGdyaWQtZmx1aWQtc3BhbigkY29sdW1ucywgJGZsdWlkR3JpZENvbHVtbldpZHRoLCAkZmx1aWRHcmlkR3V0dGVyV2lkdGgpIHtcblx0d2lkdGg6ICgkZmx1aWRHcmlkQ29sdW1uV2lkdGggKiAkY29sdW1ucykgKyAoJGZsdWlkR3JpZEd1dHRlcldpZHRoICogKCRjb2x1bW5zIC0gMSkpO1xuXHQqd2lkdGg6ICgkZmx1aWRHcmlkQ29sdW1uV2lkdGggKiAkY29sdW1ucykgKyAoJGZsdWlkR3JpZEd1dHRlcldpZHRoICogKCRjb2x1bW5zIC0gMSkpIC0gKC41IC8gJGdyaWRSb3dXaWR0aCAqIDEwMHB4ICogMSUpO1xufVxuXG5AbWl4aW4gZ3JpZC1mbHVpZC1vZmZzZXQoJGNvbHVtbnMsICRmbHVpZEdyaWRDb2x1bW5XaWR0aCwgJGZsdWlkR3JpZEd1dHRlcldpZHRoKSB7XG5cdG1hcmdpbi1sZWZ0OiAoJGZsdWlkR3JpZENvbHVtbldpZHRoICogJGNvbHVtbnMpICsgKCRmbHVpZEdyaWRHdXR0ZXJXaWR0aCAqICgkY29sdW1ucyAtIDEpKSArICgkZmx1aWRHcmlkR3V0dGVyV2lkdGggKiAyKTtcblx0Km1hcmdpbi1sZWZ0OiAoJGZsdWlkR3JpZENvbHVtbldpZHRoICogJGNvbHVtbnMpICsgKCRmbHVpZEdyaWRHdXR0ZXJXaWR0aCAqICgkY29sdW1ucyAtIDEpKSAtICguNSAvICRncmlkUm93V2lkdGggKiAxMDBweCAqIDElKSArICgkZmx1aWRHcmlkR3V0dGVyV2lkdGggKiAyKSAtICguNSAvICRncmlkUm93V2lkdGggKiAxMDBweCAqIDElKTtcbn1cblxuQG1peGluIGdyaWQtZmx1aWQtb2Zmc2V0LWZpcnN0LWNoaWxkKCRjb2x1bW5zLCAkZmx1aWRHcmlkQ29sdW1uV2lkdGgsICRmbHVpZEdyaWRHdXR0ZXJXaWR0aCkge1xuXHRtYXJnaW4tbGVmdDogKCRmbHVpZEdyaWRDb2x1bW5XaWR0aCAqICRjb2x1bW5zKSArICgkZmx1aWRHcmlkR3V0dGVyV2lkdGggKiAoJGNvbHVtbnMgLSAxKSkgKyAoJGZsdWlkR3JpZEd1dHRlcldpZHRoKTtcblx0Km1hcmdpbi1sZWZ0OiAoJGZsdWlkR3JpZENvbHVtbldpZHRoICogJGNvbHVtbnMpICsgKCRmbHVpZEdyaWRHdXR0ZXJXaWR0aCAqICgkY29sdW1ucyAtIDEpKSAtICguNSAvICRncmlkUm93V2lkdGggKiAxMDBweCAqIDElKSArICRmbHVpZEdyaWRHdXR0ZXJXaWR0aCAtICguNSAvICRncmlkUm93V2lkdGggKiAxMDBweCAqIDElKTtcbn1cblxuLyogRmx1aWQgZ3JpZCA5NDBweCAqL1xuQGluY2x1ZGUgZ3JpZC1mbHVpZCgkZmx1aWRHcmlkQ29sdW1uV2lkdGgsICRmbHVpZEdyaWRHdXR0ZXJXaWR0aCk7XG5cbi8qIFJlc2V0IHV0aWxpdHkgY2xhc3NlcyAqL1xuW2NsYXNzKj1cInNwYW5cIl0uaGlkZSxcbi5yb3ctZmx1aWQgW2NsYXNzKj1cInNwYW5cIl0uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltjbGFzcyo9XCJzcGFuXCJdLnB1bGwtcmlnaHQsXG4ucm93LWZsdWlkIFtjbGFzcyo9XCJzcGFuXCJdLnB1bGwtcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi8qIGJyZWFrcG9pbnQgdG8gb25lIGNvbHVtbiAqL1xuQGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggNjIwcHgpIHtcblxuXHQvLyBHUklEICYgQ09OVEFJTkVSU1xuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLVxuXHQvLyBSZW1vdmUgd2lkdGggZnJvbSBjb250YWluZXJzXG5cdC5jb250YWluZXIge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG5cblx0Ly8gRmx1aWQgcm93c1xuXHQucm93LWZsdWlkIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXHQvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbiBvbiByb3dzIGFuZCB0aHVtYm5haWxzXG5cdC5yb3csXG5cdHtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXG5cdC8vIE1ha2UgYWxsIGdyaWQtc2l6ZWQgZWxlbWVudHMgYmxvY2sgbGV2ZWwgYWdhaW5cblx0W2NsYXNzKj1cInNwYW5cIl0sXG5cdC5yb3ctZmx1aWQgW2NsYXNzKj1cInNwYW5cIl0ge1xuXHRcdGZsb2F0OiBub25lO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG5cdH1cblxuXHQuc3BhbjEyLFxuXHQucm93LWZsdWlkIC5zcGFuMTIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG5cdH1cblxuXHQucm93LWZsdWlkIFtjbGFzcyo9XCJvZmZzZXRcIl06Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0LmNvbnRyb2xzLXJvdyBbY2xhc3MqPVwic3BhblwiXSArIFtjbGFzcyo9XCJzcGFuXCJdIHtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi5oZWFkZXItY2FydC13aWRnZXQge1xuXHRhIHtcblx0XHRAaW5jbHVkZSBzdmctYmFja2dyb3VuZCggXCJjcmFzaHBsYW4vc3RvcmUtY2FydC1mdWxsXCIsIG5vLXJlcGVhdCAwIDZweCApO1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcblx0XHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cblx0XHQmOmxpbmssXG5cdFx0Jjp2aXNpdGVkLFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRjcC1tZWRpdW0tZ3JheTtcblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5oZWFkZXItY2FydC1lbXB0eSB7XG5cblx0YSB7XG5cdFx0QGluY2x1ZGUgc3ZnLWJhY2tncm91bmQoIFwiY3Jhc2hwbGFuL3N0b3JlLWNhcnQtZW1wdHlcIiwgbm8tcmVwZWF0IDAgNnB4ICk7XG5cdH1cblxuXHQvL1NhbWUgYnJlYWtwb2ludCBhcyBtYWluIGhlYWRlciB0ZXh0L2ljb24gc3dpdGNoXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRtb2JpbGUtYnJlYWtwb2ludCApIHtcblx0XHQvKiBIZWFkZXIgd2lkZ2V0IGlzIGhpZGRlbiB3aGVuIGVtcHR5ICovXG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uc3RvcmUgLmhlYWRlci1jYXJ0LWVtcHR5IHtcblx0LyogSGVhZGVyIHdpZGdldCBpcyBhbHdheXMgdmlzaWJsZSBpbiB0aGUgc3RvcmUgKi9cblx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbiIsIi5hbmltYXRlZHstd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstbW96LWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstbXMtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1vLWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MXM7LW1vei1hbmltYXRpb24tZHVyYXRpb246MXM7LW1zLWFuaW1hdGlvbi1kdXJhdGlvbjoxczstby1hbmltYXRpb24tZHVyYXRpb246MXM7YW5pbWF0aW9uLWR1cmF0aW9uOjFzO30uYW5pbWF0ZWQuaGluZ2V7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MXM7LW1vei1hbmltYXRpb24tZHVyYXRpb246MXM7LW1zLWFuaW1hdGlvbi1kdXJhdGlvbjoxczstby1hbmltYXRpb24tZHVyYXRpb246MXM7YW5pbWF0aW9uLWR1cmF0aW9uOjFzO31ALXdlYmtpdC1rZXlmcmFtZXMgZmxhc2gge1xuXHQwJSwgNTAlLCAxMDAlIHtvcGFjaXR5OiAxO31cdDI1JSwgNzUlIHtvcGFjaXR5OiAwO31cbn1cblxuQC1tb3ota2V5ZnJhbWVzIGZsYXNoIHtcblx0MCUsIDUwJSwgMTAwJSB7b3BhY2l0eTogMTt9XHRcblx0MjUlLCA3NSUge29wYWNpdHk6IDA7fVxufVxuXG5ALW8ta2V5ZnJhbWVzIGZsYXNoIHtcblx0MCUsIDUwJSwgMTAwJSB7b3BhY2l0eTogMTt9XHRcblx0MjUlLCA3NSUge29wYWNpdHk6IDA7fVxufVxuXG5Aa2V5ZnJhbWVzIGZsYXNoIHtcblx0MCUsIDUwJSwgMTAwJSB7b3BhY2l0eTogMTt9XHRcblx0MjUlLCA3NSUge29wYWNpdHk6IDA7fVxufVxuXG4uZmxhc2gge1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGFzaDtcblx0LW1vei1hbmltYXRpb24tbmFtZTogZmxhc2g7XG5cdC1vLWFuaW1hdGlvbi1uYW1lOiBmbGFzaDtcblx0YW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIHNoYWtlIHtcblx0MCUsIDEwMCUgey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO31cblx0MTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUgey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTt9XG5cdDIwJSwgNDAlLCA2MCUsIDgwJSB7LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7fVxufVxuXG5ALW1vei1rZXlmcmFtZXMgc2hha2Uge1xuXHQwJSwgMTAwJSB7LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7fVxuXHQxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpO31cblx0MjAlLCA0MCUsIDYwJSwgODAlIHstbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTt9XG59XG5cbkAtby1rZXlmcmFtZXMgc2hha2Uge1xuXHQwJSwgMTAwJSB7LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO31cblx0MTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUgey1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7fVxuXHQyMCUsIDQwJSwgNjAlLCA4MCUgey1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTt9XG59XG5cbkBrZXlmcmFtZXMgc2hha2Uge1xuXHQwJSwgMTAwJSB7dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO31cblx0MTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge3RyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7fVxuXHQyMCUsIDQwJSwgNjAlLCA4MCUge3RyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTt9XG59XG5cbi5zaGFrZSB7XG5cdC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xuXHQtbW96LWFuaW1hdGlvbi1uYW1lOiBzaGFrZTtcblx0LW8tYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xuXHRhbmltYXRpb24tbmFtZTogc2hha2U7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHtcblx0MCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUgey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO31cblx0NDAlIHstd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7fVxuXHQ2MCUgey13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTt9XG59XG5cbkAtbW96LWtleWZyYW1lcyBib3VuY2Uge1xuXHQwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7fVxuXHQ0MCUgey1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTt9XG5cdDYwJSB7LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO31cbn1cblxuQC1vLWtleWZyYW1lcyBib3VuY2Uge1xuXHQwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO31cblx0NDAlIHstby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO31cblx0NjAlIHstby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO31cbn1cbkBrZXlmcmFtZXMgYm91bmNlIHtcblx0MCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge3RyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTt9XG5cdDQwJSB7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTt9XG5cdDYwJSB7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTt9XG59XG5cbi5ib3VuY2Uge1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2U7XG5cdC1tb3otYW5pbWF0aW9uLW5hbWU6IGJvdW5jZTtcblx0LW8tYW5pbWF0aW9uLW5hbWU6IGJvdW5jZTtcblx0YW5pbWF0aW9uLW5hbWU6IGJvdW5jZTtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyB0YWRhIHtcblx0MCUgey13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTt9XHRcblx0MTAlLCAyMCUgey13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpIHJvdGF0ZSgtM2RlZyk7fVxuXHQzMCUsIDUwJSwgNzAlLCA5MCUgey13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgzZGVnKTt9XG5cdDQwJSwgNjAlLCA4MCUgey13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgtM2RlZyk7fVxuXHQxMDAlIHstd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDApO31cbn1cblxuQC1tb3ota2V5ZnJhbWVzIHRhZGEge1xuXHQwJSB7LW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO31cdFxuXHQxMCUsIDIwJSB7LW1vei10cmFuc2Zvcm06IHNjYWxlKDAuOSkgcm90YXRlKC0zZGVnKTt9XG5cdDMwJSwgNTAlLCA3MCUsIDkwJSB7LW1vei10cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKDNkZWcpO31cblx0NDAlLCA2MCUsIDgwJSB7LW1vei10cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKC0zZGVnKTt9XG5cdDEwMCUgey1tb3otdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMCk7fVxufVxuXG5ALW8ta2V5ZnJhbWVzIHRhZGEge1xuXHQwJSB7LW8tdHJhbnNmb3JtOiBzY2FsZSgxKTt9XHRcblx0MTAlLCAyMCUgey1vLXRyYW5zZm9ybTogc2NhbGUoMC45KSByb3RhdGUoLTNkZWcpO31cblx0MzAlLCA1MCUsIDcwJSwgOTAlIHstby10cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKDNkZWcpO31cblx0NDAlLCA2MCUsIDgwJSB7LW8tdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgtM2RlZyk7fVxuXHQxMDAlIHstby10cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwKTt9XG59XG5cbkBrZXlmcmFtZXMgdGFkYSB7XG5cdDAlIHt0cmFuc2Zvcm06IHNjYWxlKDEpO31cdFxuXHQxMCUsIDIwJSB7dHJhbnNmb3JtOiBzY2FsZSgwLjkpIHJvdGF0ZSgtM2RlZyk7fVxuXHQzMCUsIDUwJSwgNzAlLCA5MCUge3RyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoM2RlZyk7fVxuXHQ0MCUsIDYwJSwgODAlIHt0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKC0zZGVnKTt9XG5cdDEwMCUge3RyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDApO31cbn1cblxuLnRhZGEge1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB0YWRhO1xuXHQtbW96LWFuaW1hdGlvbi1uYW1lOiB0YWRhO1xuXHQtby1hbmltYXRpb24tbmFtZTogdGFkYTtcblx0YW5pbWF0aW9uLW5hbWU6IHRhZGE7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgc3dpbmcge1xuXHQyMCUsIDQwJSwgNjAlLCA4MCUsIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7IH1cblx0MjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7IH1cdFxuXHQ0MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7IH1cblx0NjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTsgfVx0XG5cdDgwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpOyB9XHRcblx0MTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbn1cblxuQC1tb3ota2V5ZnJhbWVzIHN3aW5nIHtcblx0MjAlIHsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7IH1cdFxuXHQ0MCUgeyAtbW96LXRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7IH1cblx0NjAlIHsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTsgfVx0XG5cdDgwJSB7IC1tb3otdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpOyB9XHRcblx0MTAwJSB7IC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbn1cblxuQC1vLWtleWZyYW1lcyBzd2luZyB7XG5cdDIwJSB7IC1vLXRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTsgfVx0XG5cdDQwJSB7IC1vLXRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7IH1cblx0NjAlIHsgLW8tdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7IH1cdFxuXHQ4MCUgeyAtby10cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7IH1cdFxuXHQxMDAlIHsgLW8tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbn1cblxuQGtleWZyYW1lcyBzd2luZyB7XG5cdDIwJSB7IHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKTsgfVx0XG5cdDQwJSB7IHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7IH1cblx0NjAlIHsgdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7IH1cdFxuXHQ4MCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7IH1cdFxuXHQxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbn1cblxuLnN3aW5nIHtcblx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG5cdC1vLXRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG5cdHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG5cdC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHN3aW5nO1xuXHQtbW96LWFuaW1hdGlvbi1uYW1lOiBzd2luZztcblx0LW8tYW5pbWF0aW9uLW5hbWU6IHN3aW5nO1xuXHRhbmltYXRpb24tbmFtZTogc3dpbmc7XG59XG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHdvYmJsZSB7XG4gIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9XG4gIDE1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpIHJvdGF0ZSgtNWRlZyk7IH1cbiAgMzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAlKSByb3RhdGUoM2RlZyk7IH1cbiAgNDUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE1JSkgcm90YXRlKC0zZGVnKTsgfVxuICA2MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpIHJvdGF0ZSgyZGVnKTsgfVxuICA3NSUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpIHJvdGF0ZSgtMWRlZyk7IH1cbiAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsgfVxufVxuXG5ALW1vei1rZXlmcmFtZXMgd29iYmxlIHtcbiAgMCUgeyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7IH1cbiAgMTUlIHsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSkgcm90YXRlKC01ZGVnKTsgfVxuICAzMCUgeyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMCUpIHJvdGF0ZSgzZGVnKTsgfVxuICA0NSUgeyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTUlKSByb3RhdGUoLTNkZWcpOyB9XG4gIDYwJSB7IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwJSkgcm90YXRlKDJkZWcpOyB9XG4gIDc1JSB7IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSkgcm90YXRlKC0xZGVnKTsgfVxuICAxMDAlIHsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9XG59XG5cbkAtby1rZXlmcmFtZXMgd29iYmxlIHtcbiAgMCUgeyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9XG4gIDE1JSB7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUlKSByb3RhdGUoLTVkZWcpOyB9XG4gIDMwJSB7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMCUpIHJvdGF0ZSgzZGVnKTsgfVxuICA0NSUgeyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE1JSkgcm90YXRlKC0zZGVnKTsgfVxuICA2MCUgeyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAlKSByb3RhdGUoMmRlZyk7IH1cbiAgNzUlIHsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSkgcm90YXRlKC0xZGVnKTsgfVxuICAxMDAlIHsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHdvYmJsZSB7XG4gIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsgfVxuICAxNSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSkgcm90YXRlKC01ZGVnKTsgfVxuICAzMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAlKSByb3RhdGUoM2RlZyk7IH1cbiAgNDUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNSUpIHJvdGF0ZSgtM2RlZyk7IH1cbiAgNjAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwJSkgcm90YXRlKDJkZWcpOyB9XG4gIDc1JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpIHJvdGF0ZSgtMWRlZyk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7IH1cbn1cblxuLndvYmJsZSB7XG5cdC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcblx0LW1vei1hbmltYXRpb24tbmFtZTogd29iYmxlO1xuXHQtby1hbmltYXRpb24tbmFtZTogd29iYmxlO1xuXHRhbmltYXRpb24tbmFtZTogd29iYmxlO1xufVxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZSB7XG4gICAgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IH1cdFxuXHQ1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfVxuICAgIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cbkAtbW96LWtleWZyYW1lcyBwdWxzZSB7XG4gICAgMCUgeyAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7IH1cdFxuXHQ1MCUgeyAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfVxuICAgIDEwMCUgeyAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cbkAtby1rZXlmcmFtZXMgcHVsc2Uge1xuICAgIDAlIHsgLW8tdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVx0XG5cdDUwJSB7IC1vLXRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfVxuICAgIDEwMCUgeyAtby10cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cdFxuXHQ1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG4ucHVsc2Uge1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcblx0LW1vei1hbmltYXRpb24tbmFtZTogcHVsc2U7XG5cdC1vLWFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcblx0YW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbiB7XG5cdDAlIHtvcGFjaXR5OiAwO31cdFxuXHQxMDAlIHtvcGFjaXR5OiAxO31cbn1cblxuQC1tb3ota2V5ZnJhbWVzIGZhZGVJbiB7XG5cdDAlIHtvcGFjaXR5OiAwO31cdFxuXHQxMDAlIHtvcGFjaXR5OiAxO31cbn1cblxuQC1vLWtleWZyYW1lcyBmYWRlSW4ge1xuXHQwJSB7b3BhY2l0eTogMDt9XHRcblx0MTAwJSB7b3BhY2l0eTogMTt9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcblx0MCUge29wYWNpdHk6IDA7fVx0XG5cdDEwMCUge29wYWNpdHk6IDE7fVxufVxuXG4uZmFkZUluIHtcblx0LXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluO1xuXHQtbW96LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG5cdC1vLWFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG5cdGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluVXAge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcblx0fVxuXHRcblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0fVxufVxuXG5ALW1vei1rZXlmcmFtZXMgZmFkZUluVXAge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcblx0fVxuXHRcblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0fVxufVxuXG5ALW8ta2V5ZnJhbWVzIGZhZGVJblVwIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuXHR9XG5cdFxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuXHR9XG5cdFxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0fVxufVxuXG4uZmFkZUluVXAge1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcblx0LW1vei1hbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG5cdC1vLWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcblx0YW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG5cdH1cblx0XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdH1cbn1cblxuQC1tb3ota2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG5cdH1cblx0XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdH1cbn1cblxuQC1vLWtleWZyYW1lcyBmYWRlSW5Eb3duIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcblx0fVxuXHRcblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcblx0fVxuXHRcblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdH1cbn1cblxuLmZhZGVJbkRvd24ge1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuXHQtbW96LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuXHQtby1hbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcblx0YW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dCB7XG5cdDAlIHtvcGFjaXR5OiAxO31cblx0MTAwJSB7b3BhY2l0eTogMDt9XG59XG5cbkAtbW96LWtleWZyYW1lcyBmYWRlT3V0IHtcblx0MCUge29wYWNpdHk6IDE7fVxuXHQxMDAlIHtvcGFjaXR5OiAwO31cbn1cblxuQC1vLWtleWZyYW1lcyBmYWRlT3V0IHtcblx0MCUge29wYWNpdHk6IDE7fVxuXHQxMDAlIHtvcGFjaXR5OiAwO31cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcblx0MCUge29wYWNpdHk6IDE7fVxuXHQxMDAlIHtvcGFjaXR5OiAwO31cbn1cblxuLmZhZGVPdXQge1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xuXHQtbW96LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xuXHQtby1hbmltYXRpb24tbmFtZTogZmFkZU91dDtcblx0YW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdH1cblx0XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xuXHR9XG59XG5ALW1vei1rZXlmcmFtZXMgZmFkZU91dFVwIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdH1cblx0XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xuXHR9XG59XG5ALW8ta2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0fVxuXHRcblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0fVxuXHRcblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xuXHR9XG59XG5cbi5mYWRlT3V0VXAge1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG5cdC1tb3otYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDtcblx0LW8tYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDtcblx0YW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0RG93biB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuXHR9XG5cdFxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuXHR9XG59XG5cbkAtbW96LWtleWZyYW1lcyBmYWRlT3V0RG93biB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuXHR9XG5cdFxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuXHR9XG59XG5cbkAtby1rZXlmcmFtZXMgZmFkZU91dERvd24ge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdH1cblx0XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdH1cblx0XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuXHR9XG59XG5cbi5mYWRlT3V0RG93biB7XG5cdC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xuXHQtbW96LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcblx0LW8tYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xuXHRhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0dHJhbnNmb3JtOiBub25lO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuXHRcdHRyYW5zZm9ybTogbm9uZTtcblx0fVxufVxuXG4uZmFkZUluTGVmdCB7XG5cdC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7XG5cdGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0dHJhbnNmb3JtOiBub25lO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0dHJhbnNmb3JtOiBub25lO1xuXHR9XG59XG5cbi5mYWRlSW5SaWdodCB7XG5cdC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xuXHRhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG59XG4iLCIvKiEgSGludC5jc3MgLSB2MS4zLjAgLSAyMDEzLTA4LTA1XG4qIGh0dHA6Ly9rdXNoYWdyYWdvdXIuaW4vbGFiL2hpbnQvXG4qIENvcHlyaWdodCAoYykgMjAxMyBLdXNoYWdyYSBHb3VyOyBMaWNlbnNlZCBNSVQgKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdEhJTlQuY3NzIC0gQSBDU1MgdG9vbHRpcCBsaWJyYXJ5XG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogSElOVC5jc3MgaXMgYSB0b29sdGlwIGxpYnJhcnkgbWFkZSBpbiBwdXJlIENTUy5cbiAqXG4gKiBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaGluY2hhbmcvaGludC5jc3NcbiAqIERlbW86IGh0dHA6Ly9rdXNoYWdyYWdvdXIuaW4vbGFicy9oaW50L1xuICpcbiAqIFJlbGVhc2UgdW5kZXIgVGhlIE1JVCBMaWNlbnNlXG4gKlxuICovXG4vKipcbiAqIHNvdXJjZTogaGludC1jb3JlLnNjc3NcbiAqXG4gKiBEZWZpbmVzIHRoZSBiYXNpYyBzdHlsaW5nIGZvciB0aGUgdG9vbHRpcC5cbiAqIEVhY2ggdG9vbHRpcCBpcyBtYWRlIG9mIDIgcGFydHM6XG4gKiBcdDEpIGJvZHkgKDphZnRlcilcbiAqIFx0MikgYXJyb3cgKDpiZWZvcmUpXG4gKiBcbiAqIENsYXNzZXMgYWRkZWQ6XG4gKiBcdDEpIGhpbnRcbiAqL1xuLmhpbnQsIFtkYXRhLWhpbnRdIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qKlxuICAgKiB0b29sdGlwIGFycm93XG4gICAqL1xuICAvKipcbiAgICogdG9vbHRpcCBib2R5XG4gICAqLyB9XG4gIC5oaW50OmJlZm9yZSwgLmhpbnQ6YWZ0ZXIsIFtkYXRhLWhpbnRdOmJlZm9yZSwgW2RhdGEtaGludF06YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogMTAwMDAwMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgZWFzZTtcbiAgICAtbW96LXRyYW5zaXRpb246IDAuM3MgZWFzZTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGVhc2U7IH1cbiAgLmhpbnQ6aG92ZXI6YmVmb3JlLCAuaGludDpob3ZlcjphZnRlciwgLmhpbnQ6Zm9jdXM6YmVmb3JlLCAuaGludDpmb2N1czphZnRlciwgW2RhdGEtaGludF06aG92ZXI6YmVmb3JlLCBbZGF0YS1oaW50XTpob3ZlcjphZnRlciwgW2RhdGEtaGludF06Zm9jdXM6YmVmb3JlLCBbZGF0YS1oaW50XTpmb2N1czphZnRlciB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5oaW50OmJlZm9yZSwgW2RhdGEtaGludF06YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgei1pbmRleDogMTAwMDAwMTsgfVxuICAuaGludDphZnRlciwgW2RhdGEtaGludF06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaW50KTtcbiAgICBiYWNrZ3JvdW5kOiAjMzgzODM4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDBweCBibGFjaztcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3gtc2hhZG93OiA0cHggNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cblxuLyoqXG4gKiBzb3VyY2U6IGhpbnQtcG9zaXRpb24uc2Nzc1xuICpcbiAqIERlZmluZXMgdGhlIHBvc2l0b25pbmcgbG9naWMgZm9yIHRoZSB0b29sdGlwcy5cbiAqIFxuICogQ2xhc3NlcyBhZGRlZDpcbiAqIFx0MSkgaGludC0tdG9wXG4gKiBcdDIpIGhpbnQtLWJvdHRvbVxuICogXHQzKSBoaW50LS1sZWZ0XG4gKiBcdDQpIGhpbnQtLXJpZ2h0XG4gKi9cbi8qKlxuICogc2V0IGRlZmF1bHQgY29sb3IgZm9yIHRvb2x0aXAgYXJyb3dzXG4gKi9cbi5oaW50LS10b3A6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzM4MzgzODsgfVxuXG4uaGludC0tYm90dG9tOmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMzODM4Mzg7IH1cblxuLmhpbnQtLWxlZnQ6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMzODM4Mzg7IH1cblxuLmhpbnQtLXJpZ2h0OmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzM4MzgzODsgfVxuXG4vKipcbiAqIHRvcCB0b29sdGlwXG4gKi9cbi5oaW50LS10b3A6YmVmb3JlIHtcbiAgbWFyZ2luLWJvdHRvbTogLTEycHg7IH1cbi5oaW50LS10b3A6YWZ0ZXIge1xuICBtYXJnaW4tbGVmdDogLTE4cHg7IH1cbi5oaW50LS10b3A6YmVmb3JlLCAuaGludC0tdG9wOmFmdGVyIHtcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7IH1cbi5oaW50LS10b3A6aG92ZXI6YWZ0ZXIsIC5oaW50LS10b3A6aG92ZXI6YmVmb3JlLCAuaGludC0tdG9wOmZvY3VzOmFmdGVyLCAuaGludC0tdG9wOmZvY3VzOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9XG5cbi8qKlxuICogYm90dG9tIHRvb2x0aXBcbiAqL1xuLmhpbnQtLWJvdHRvbTpiZWZvcmUge1xuICBtYXJnaW4tdG9wOiAtMTJweDsgfVxuLmhpbnQtLWJvdHRvbTphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiAtMThweDsgfVxuLmhpbnQtLWJvdHRvbTpiZWZvcmUsIC5oaW50LS1ib3R0b206YWZ0ZXIge1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDUwJTsgfVxuLmhpbnQtLWJvdHRvbTpob3ZlcjphZnRlciwgLmhpbnQtLWJvdHRvbTpob3ZlcjpiZWZvcmUsIC5oaW50LS1ib3R0b206Zm9jdXM6YWZ0ZXIsIC5oaW50LS1ib3R0b206Zm9jdXM6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7IH1cblxuLyoqXG4gKiByaWdodCB0b29sdGlwXG4gKi9cbi5oaW50LS1yaWdodDpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogLTEycHg7XG4gIG1hcmdpbi1ib3R0b206IC02cHg7IH1cbi5oaW50LS1yaWdodDphZnRlciB7XG4gIG1hcmdpbi1ib3R0b206IC0xNHB4OyB9XG4uaGludC0tcmlnaHQ6YmVmb3JlLCAuaGludC0tcmlnaHQ6YWZ0ZXIge1xuICBsZWZ0OiAxMDAlO1xuICBib3R0b206IDUwJTsgfVxuLmhpbnQtLXJpZ2h0OmhvdmVyOmFmdGVyLCAuaGludC0tcmlnaHQ6aG92ZXI6YmVmb3JlLCAuaGludC0tcmlnaHQ6Zm9jdXM6YWZ0ZXIsIC5oaW50LS1yaWdodDpmb2N1czpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTsgfVxuXG4vKipcbiAqIGxlZnQgdG9vbHRpcFxuICovXG4uaGludC0tbGVmdDpiZWZvcmUge1xuICBtYXJnaW4tcmlnaHQ6IC0xMnB4O1xuICBtYXJnaW4tYm90dG9tOiAtNnB4OyB9XG4uaGludC0tbGVmdDphZnRlciB7XG4gIG1hcmdpbi1ib3R0b206IC0xNHB4OyB9XG4uaGludC0tbGVmdDpiZWZvcmUsIC5oaW50LS1sZWZ0OmFmdGVyIHtcbiAgcmlnaHQ6IDEwMCU7XG4gIGJvdHRvbTogNTAlOyB9XG4uaGludC0tbGVmdDpob3ZlcjphZnRlciwgLmhpbnQtLWxlZnQ6aG92ZXI6YmVmb3JlLCAuaGludC0tbGVmdDpmb2N1czphZnRlciwgLmhpbnQtLWxlZnQ6Zm9jdXM6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7IH1cblxuLyoqXG4gKiBzb3VyY2U6IGhpbnQtY29sb3ItdHlwZXMuc2Nzc1xuICpcbiAqIENvbnRhaW5zIHRvb2x0aXBzIG9mIHZhcmlvdXMgdHlwZXMgYmFzZWQgb24gY29sb3IgZGlmZmVyZW5jZXMuXG4gKiBcbiAqIENsYXNzZXMgYWRkZWQ6XG4gKiBcdDEpIGhpbnQtLWVycm9yXG4gKiBcdDIpIGhpbnQtLXdhcm5pbmdcbiAqIFx0MykgaGludC0taW5mb1xuICogXHQ0KSBoaW50LS1zdWNjZXNzXG4gKiBcdFxuICovXG4vKipcbiAqIEVycm9yXG4gKi9cbi5oaW50LS1lcnJvcjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMzRlNGQ7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMHB4ICM1OTI3MjY7IH1cbi5oaW50LS1lcnJvci5oaW50LS10b3A6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2IzNGU0ZDsgfVxuLmhpbnQtLWVycm9yLmhpbnQtLWJvdHRvbTpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYjM0ZTRkOyB9XG4uaGludC0tZXJyb3IuaGludC0tbGVmdDpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2IzNGU0ZDsgfVxuLmhpbnQtLWVycm9yLmhpbnQtLXJpZ2h0OmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogI2IzNGU0ZDsgfVxuXG4vKipcbiAqIFdhcm5pbmdcbiAqL1xuLmhpbnQtLXdhcm5pbmc6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzA5ODU0O1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDBweCAjNmM1MzI4OyB9XG4uaGludC0td2FybmluZy5oaW50LS10b3A6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2MwOTg1NDsgfVxuLmhpbnQtLXdhcm5pbmcuaGludC0tYm90dG9tOmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNjMDk4NTQ7IH1cbi5oaW50LS13YXJuaW5nLmhpbnQtLWxlZnQ6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNjMDk4NTQ7IH1cbi5oaW50LS13YXJuaW5nLmhpbnQtLXJpZ2h0OmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogI2MwOTg1NDsgfVxuXG4vKipcbiAqIEluZm9cbiAqL1xuLmhpbnQtLWluZm86YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzk4NmFjO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDBweCAjMTkzYjRkOyB9XG4uaGludC0taW5mby5oaW50LS10b3A6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzM5ODZhYzsgfVxuLmhpbnQtLWluZm8uaGludC0tYm90dG9tOmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMzOTg2YWM7IH1cbi5oaW50LS1pbmZvLmhpbnQtLWxlZnQ6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMzOTg2YWM7IH1cbi5oaW50LS1pbmZvLmhpbnQtLXJpZ2h0OmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzM5ODZhYzsgfVxuXG4vKipcbiAqIFN1Y2Nlc3NcbiAqL1xuLmhpbnQtLXN1Y2Nlc3M6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDU4NzQ2O1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDBweCAjMWEzMjFhOyB9XG4uaGludC0tc3VjY2Vzcy5oaW50LS10b3A6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzQ1ODc0NjsgfVxuLmhpbnQtLXN1Y2Nlc3MuaGludC0tYm90dG9tOmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICM0NTg3NDY7IH1cbi5oaW50LS1zdWNjZXNzLmhpbnQtLWxlZnQ6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM0NTg3NDY7IH1cbi5oaW50LS1zdWNjZXNzLmhpbnQtLXJpZ2h0OmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzQ1ODc0NjsgfVxuXG4vKipcbiAqIHNvdXJjZTogaGludC1hbHdheXMuc2Nzc1xuICpcbiAqIERlZmluZXMgYSBwZXJzaXN0ZWQgdG9vbHRpcCB3aGljaCBzaG93cyBhbHdheXMuXG4gKiBcbiAqIENsYXNzZXMgYWRkZWQ6XG4gKiBcdDEpIGhpbnQtLWFsd2F5c1xuICogXHRcbiAqL1xuLmhpbnQtLWFsd2F5czphZnRlciwgLmhpbnQtLWFsd2F5czpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4uaGludC0tYWx3YXlzLmhpbnQtLXRvcDphZnRlciwgLmhpbnQtLWFsd2F5cy5oaW50LS10b3A6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH1cbi5oaW50LS1hbHdheXMuaGludC0tYm90dG9tOmFmdGVyLCAuaGludC0tYWx3YXlzLmhpbnQtLWJvdHRvbTpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfVxuLmhpbnQtLWFsd2F5cy5oaW50LS1sZWZ0OmFmdGVyLCAuaGludC0tYWx3YXlzLmhpbnQtLWxlZnQ6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7IH1cbi5oaW50LS1hbHdheXMuaGludC0tcmlnaHQ6YWZ0ZXIsIC5oaW50LS1hbHdheXMuaGludC0tcmlnaHQ6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cblxuLyoqXG4gKiBzb3VyY2U6IGhpbnQtcm91bmRlZC5zY3NzXG4gKlxuICogRGVmaW5lcyByb3VuZGVkIGNvcm5lciB0b29sdGlwcy5cbiAqIFxuICogQ2xhc3NlcyBhZGRlZDpcbiAqIFx0MSkgaGludC0tcm91bmRlZFxuICogIFxuICovXG4uaGludC0tcm91bmRlZDphZnRlciB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDsgfVxuXG4vKipcbiAqIHNvdXJjZTogaGludC1lZmZlY3RzLnNjc3NcbiAqXG4gKiBEZWZpbmVzIHZhcmlvdXMgdHJhbnNpdGlvbiBlZmZlY3RzIGZvciB0aGUgdG9vbHRpcHMuXG4gKiBcbiAqIENsYXNzZXMgYWRkZWQ6XG4gKiBcdDEpIGhpbnQtLWJvdW5jZVxuICogXHRcbiAqL1xuLmhpbnQtLWJvdW5jZTpiZWZvcmUsIC5oaW50LS1ib3VuY2U6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB2aXNpYmlsaXR5IDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC43MSwgMS43LCAwLjc3LCAxLjI0KTtcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdmlzaWJpbGl0eSAwLjNzIGVhc2UsIC1tb3otdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNzEsIDEuNywgMC43NywgMS4yNCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB2aXNpYmlsaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNzEsIDEuNywgMC43NywgMS4yNCk7IH0iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiY3BcIjtcblxuXG4vLyBBbGwgQ1AgYnV0dG9uc1xuLmJ0biB7XG4gIEBpbmNsdWRlIGJ0blN0YXRlcztcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxNnB4ICk7XG4gIHBhZGRpbmc6IDEuMjVlbSAxLjg3NWVtO1xuICBAaW5jbHVkZSBicmVha3BvaW50KCA1ODBweCApIHtcblx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDE5cHggKTtcbiAgfVxufVxuXG4uYnRuLCBbY2xhc3NePVwiYnRuLVwiXSxcbltjbGFzcyo9XCIgYnRuLVwiXSB7XG5cbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzO1xuICAmW2Rpc2FibGVkPWRpc2FibGVkXSwgJjpkaXNhYmxlZCwgJltkaXNhYmxlZD1kaXNhYmxlZF06aG92ZXIsICY6ZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWQ9ZGlzYWJsZWRdOmFjdGl2ZSwgJjpkaXNhYmxlZDphY3RpdmUsICB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQ6ICNhN2I4YmM7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cblxuLmJ0bi1jb24ge1xuICBAaW5jbHVkZSBidG5TdGF0ZXMoJGNvbnN1bWVyQ29sb3IsICNjZWUwOGMsICMwYjNkMDQpO1xufVxuLmJ0bi1jb246Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7XG4gIGNvbG9yOnJnYmEoMTIyLDE4MywwLDEpO1xufVxuLmJ0bi1jb246OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuNzUpO1xuICBjb2xvcjpyZ2JhKDEyMiwxODMsMCwxKTtcbn1cbi5idG4tYml6LCAuYnVzaW5lc3MtYnRuIHtcbiAgQGluY2x1ZGUgYnRuU3RhdGVzKCRidXNpbmVzc0NvbG9yLCAjYjllNWVmLCAjMDMzZTY2KTtcbn1cbi5idG4tYml6OjotbW96LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuNzUpO1xuICBjb2xvcjpyZ2JhKDI2LDE4MiwyMzIsMSk7XG59XG4uYnRuLWJpejo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7XG4gIGNvbG9yOnJnYmEoMjYsMTgyLDIzMiwxKTtcbn1cbi5idG4tZW50IHtcbiAgQGluY2x1ZGUgYnRuU3RhdGVzKCRlbnRlcnByaXNlQ29sb3IsICM0ZjYzNjYsICMyNzNlNDcpO1xufVxuLmJ0bi1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7XG4gIGNvbG9yOnJnYmEoNjksODMsOTAsMSk7XG59XG4uYnRuLWVudDo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7XG4gIGNvbG9yOnJnYmEoNjksODMsOTAsMSk7XG59XG4uYnRuLWNvbi13aGl0ZSB7XG4gIEBpbmNsdWRlIGJ0bk9uQmFja2dyb3VuZCgkY29uc3VtZXJDb2xvciwgI2NlZTA4YywgIzBiM2QwNCk7XG59XG5cbi5idG4tYml6LXdoaXRlLnNoYWRvdywgLmJ1c2luZXNzLWJ0bi0xIHtcbiAgQGluY2x1ZGUgYnRuT25CYWNrZ3JvdW5kKCRidXNpbmVzc0NvbG9yLCAjYjllNWVmLCAjMDMzZTY2LCB0cnVlKTtcbn1cbi5idG4tY29uLXdoaXRlLnNoYWRvdywgLmNvbnN1bWVyLWJ0bi0xIHtcbiAgQGluY2x1ZGUgYnRuT25CYWNrZ3JvdW5kKCRjb25zdW1lckNvbG9yLCAjY2VlMDhjLCAjMGIzZDA0LCB0cnVlKTtcbn1cbi5idG4tY29uLnNoYWRvdyB7XG4gIEBpbmNsdWRlIGJ0blN0YXRlcygkY29uc3VtZXJDb2xvciwgI2NlZTA4YywgIzBiM2QwNCwgdHJ1ZSk7XG59XG4uYnRuLWJpei5zaGFkb3cge1xuICBAaW5jbHVkZSBidG5TdGF0ZXMoJGJ1c2luZXNzQ29sb3IsICNiOWU1ZWYsICMwMzNlNjYsIHRydWUpO1xufVxuLmJ0bi1lbnQuc2hhZG93IHtcbiAgQGluY2x1ZGUgYnRuU3RhdGVzKCRlbnRlcnByaXNlQ29sb3IsICM0ZjYzNjYsICMyNzNlNDcsIHRydWUpO1xufVxuXG4uY29uc3VtZXItYnRuLTEsIC5idG4tY29uLnNoYWRvdywgLmJ0bi1iaXouc2hhZG93LCAuYnRuLWVudC5zaGFkb3cge1xuXHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMTRweCApO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRsZXR0ZXItc3BhY2luZzogLjE1ZW07XG5cdHBhZGRpbmc6IDEuMjVlbSAxLjM3NWVtO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIDU4MHB4ICkge1xuXHRcdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxN3B4ICk7XG5cdH1cbn1cbi5idXNpbmVzcy1idG4tMSB7XG5cdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxNHB4ICk7XG5cblx0bGV0dGVyLXNwYWNpbmc6IC4xNWVtO1xuXHRwYWRkaW5nOiAxLjI1ZW0gMS4zNzVlbTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCA1ODBweCApIHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMTdweCApO1xuXHR9XG59XG4uYnRuLXNpemUtMyB7XG5cdHBhZGRpbmc6IC45MzhlbSAxLjI1ZW07XG59XG4iLCJAaW1wb3J0IFwibGVnYWN5LWZvb3RlclwiO1xuQGltcG9ydCBcImNwXCI7XG5AaW1wb3J0IFwiZ3JpZFwiO1xuQGltcG9ydCBcImhlYWRlci1jYXJ0LXdpZGdldFwiO1xuQGltcG9ydCBcInZlbmRvci9hbmltYXRlLWN1c3RvbVwiO1xuQGltcG9ydCBcInZlbmRvci9oaW50XCI7XG5AaW1wb3J0IFwiY3Jhc2hwbGFuL3N0eWxlZ3VpZGVcIjtcblxuYm9keSB7XG5cdGNvbG9yOiAkY3AtYm9keS1vbi13aGl0ZTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG59XG5cbi8qIGdsb2JhbCByZXNldHMgKi9cbmgxLCBoMiwgaDMsIGg0LCBoNSwgcCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLyogR2xvYmFsIENyYXNoUGxhbiBpbmxpbmUgbGluayBzdHlsaW5nICovXG5hIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRjb2xvcjogJGJyYW5kLWNyYXNocGxhbi1jb25zdW1lci1jb2xvcjtcblx0XG5cdCY6aG92ZXIge1xuXHRcdGNvbG9yOiB0aW50KCAkYnJhbmQtY3Jhc2hwbGFuLWNvbnN1bWVyLWNvbG9yLCA0My40JSApO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG59XG5cbjo6LW1vei1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOnJnYmEoMTIyLDE4MywwLC43NSk7XG5cdGNvbG9yOiNGRkY7XG5cdHRleHQtc2hhZG93Om5vbmU7XG59XG46OnNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQ6cmdiYSgxMjIsMTgzLDAsLjc1KTtcblx0Y29sb3I6I0ZGRjtcblx0dGV4dC1zaGFkb3c6bm9uZTtcbn1cblxuLyogYWRkLW9uIGNhcmV0ICovXG4uY2FyZXQge1xuXHQmOmFmdGVyIHtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0Y29udGVudDogJyBcXEYxMDUnXG5cdH1cbn1cblxuLmNsaWNrYWJsZS1wYXJlbnQge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIENyYXNoUGxhbiBmb250IHNpemVzICovXG4udGV4dC1zaXplLTEge1xuXHRAaW5jbHVkZSBjcC10ZXh0LXNpemUtMTtcbn1cblxuLnRleHQtc2l6ZS0yIHtcblx0QGluY2x1ZGUgY3AtdGV4dC1zaXplLTI7XG59XG5cbi50ZXh0LXNpemUtMyB7XG5cdEBpbmNsdWRlIGNwLXRleHQtc2l6ZS0zO1xufVxuXG4udGV4dC1zaXplLTQge1xuXHRAaW5jbHVkZSBjcC10ZXh0LXNpemUtNDtcbn1cblxuLnRleHQtc2l6ZS01IHtcblx0QGluY2x1ZGUgY3AtdGV4dC1zaXplLTU7XG59XG4udGV4dC1zaXplLTUtc2hhZG93IHtcblx0QGluY2x1ZGUgY3AtdGV4dC1zaXplLTUtc2hhZG93O1xufVxuXG4udGV4dC1zaXplLTYge1xuXHRAaW5jbHVkZSBjcC10ZXh0LXNpemUtNjtcbn1cblxuLnRleHQtc2l6ZS03IHtcblx0QGluY2x1ZGUgY3AtdGV4dC1zaXplLTc7XG5cdGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi50ZXh0LXNpemUtOCB7XG5cdEBpbmNsdWRlIGNwLXRleHQtc2l6ZS04O1xufVxuXG4uZml4ZWQtMzRweCB7XG5cdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAzNHB4ICk7XG5cdGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi5jb25zdW1lci1idG4tMiwgLmNvbnN1bWVyLWJ0bi0zIHtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxNnB4ICk7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggNTgwcHggKSB7XG5cdFx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDE5cHggKTtcblx0fVxufVxuXG4uY29uc3VtZXItYnRuLTIge1xuXHRwYWRkaW5nOiAxLjI1MGVtIDEuODc1ZW07XG5cdC8qcGFkZGluZzogMS4wNTI2ZW0gMS4xNTc5ZW07Ki9cbn1cblxuLmNvbnN1bWVyLWJ0bi0zIHtcblx0cGFkZGluZzogMC45MzhlbSAxLjI1MGVtO1xuXHQvKnBhZGRpbmc6IDAuNjg0MmVtIDEuMDUyNmVtOyovXG59XG5cbi5idG4tY2FwdGlvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdGZvbnQtc2l6ZTogMS4wNjNlbTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA1ODBweCl7XG5cdFx0Zm9udC1zaXplOiAwLjg3NWVtO1xuXHR9XG59XG5cbi5jb250ZW50LXdyYXBwZXIge1xuXHRtYXgtd2lkdGg6IDEyODBweDtcblx0cGFkZGluZzogMCAzMHB4O1xufVxuXG4vKiBDYXJvdXNlbCBzaGFyZWQgc3R5bGluZyAqL1xuXG4uZmVhdHVyZS1iYW5uZXIsXG4uZmVhdHVyZS1iYW5uZXItY29udGVudCB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDgwJSBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi5mZWF0dXJlLWJhbm5lci1jb250ZW50IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmVhdHVyZS1iYW5uZXItYmcge1xuXHRsZWZ0OiA1MCU7XG5cdG1hcmdpbi1sZWZ0OiAtODAwcHg7XG5cdG1pbi1oZWlnaHQ6IDEwMCU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRtaW4td2lkdGg6IDEwMCU7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggMTYwMHB4ICkge1xuXHRcdG1hcmdpbi1sZWZ0OiAtNTAlO1xuXHR9XG5cblx0dmlkZW8sXG5cdGltZyB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5mZWF0dXJlLWJhbm5lci1iZzIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi53cmFwcGVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMCAzMHB4O1xuXHRtYXJnaW46IDAgYXV0bztcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMTI4MHB4O1xuXHRsaW5lLWhlaWdodDogMTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gTW9iaWxlIENyYXNoUGxhbiAtIHVzaW5nIGpxdWVyeS5jNDIucXVpY2stbW9kYWwuanNcblxuYm9keS5tb2RhbC1TQ1JPTEwtTE9DSyB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tb2RhbC1vdmVybGF5IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdGJvdHRvbTogMDtcblx0cmlnaHQ6IDA7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjQpO1xuXHR6LWluZGV4OiA0Mjtcblx0cG9zaXRpb246IGZpeGVkO1xufVxuXG4ubW9kYWwtc2hlZXQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTAlO1xuXHRsZWZ0OiA1MCU7XG5cdG1heC13aWR0aDogNjIwcHg7XG5cdG1pbi1oZWlnaHQ6IDE3MHB4O1xuXHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg0cHgpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBcdEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDIwcHggMCBibGFjayk7XG59XG5cbi5tb2RhbC1jbG9zZSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogOHB4O1xuXHR0b3A6IDhweDtcblx0d2lkdGg6IDIycHg7XG5cdGhlaWdodDogMjJweDtcblx0Zm9udC1zaXplOiAyMnB4O1xuXHRjb2xvcjogJGNwLW1lZGl1bS1ncmF5O1xuXHQmOmJlZm9yZSB7XG5cdCAgICBjb250ZW50OiBcIlwiO1xuXHQgICAgbGluZS1oZWlnaHQ6IDFlbTtcblx0ICAgIGhlaWdodDogMWVtO1xuXHQgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY3AtbWVkaXVtLWdyYXk7XG5cdCAgICBsZWZ0OiAuNWVtO1xuXHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHQgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgLyogSUUgOSAqL1xuXHQgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IC8qIFNhZmFyaSBhbmQgQ2hyb21lICovXG4gIFx0fVxuXHQmOmFmdGVyIHtcblx0XHRsaW5lLWhlaWdodDogMWVtO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGxpbmUtaGVpZ2h0OiAxZW07XG5cdFx0aGVpZ2h0OiAxZW07XG5cdFx0bGVmdDogLjVlbTtcblx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkICRjcC1tZWRpdW0tZ3JheTtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXHRcdC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyAvKiBJRSA5ICovXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyAvKiBTYWZhcmkgYW5kIENocm9tZSAqL1xuXHR9XG59XG4ubW9kYWwtY29udGVudCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDIzcHggKTtcblx0cGFkZGluZzogNDBweCAyMHB4IDQwcHggMjBweDtcbn1cblxuLyogbW9iaWxlIC0gR2V0IHRoZSBBcHAgKi9cbmEuZ2V0LXRoZS1hcHAtYnV0dG9uIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOiA4cHggMzBweCA4cHggMzBweDtcblx0bWFyZ2luLXRvcDogMS4xZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Ym9yZGVyOiAxcHggc29saWQgJGNwLW1lZGl1bS1ncmF5O1xuXHRjb2xvcjogJGNwLW1lZGl1bS1ncmF5O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xufVxuXG4uZmVhdHVyZS1iYW5uZXIge1xuXHRoZWlnaHQ6ICRjcC1iYW5uZXItaGVpZ2h0LXNtICsgJHByb2R1Y3QtaGVhZGVyLWhlaWdodDtcblx0cGFkZGluZy10b3A6ICRwcm9kdWN0LWhlYWRlci1oZWlnaHQ7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJG1vYmlsZS1icmVha3BvaW50ICkge1xuXHRcdGhlaWdodDogJGNwLWJhbm5lci1oZWlnaHQtbWQgKyAkcHJvZHVjdC1oZWFkZXItaGVpZ2h0O1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGRlc2t0b3AtYnJlYWtwb2ludCApIHtcblx0XHRoZWlnaHQ6ICRjcC1iYW5uZXItaGVpZ2h0LWxnICsgJHByb2R1Y3QtaGVhZGVyLWhlaWdodDtcblx0fVxuXG5cdCYuZmVhdHVyZS1iYW5uZXItY2VudGVyLWhlYWRsaW5lIHtcblx0XHRsaW5lLWhlaWdodDogJGNwLWJhbm5lci1oZWlnaHQtc207XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkbW9iaWxlLWJyZWFrcG9pbnQgKSB7XG5cdFx0XHRsaW5lLWhlaWdodDogJGNwLWJhbm5lci1oZWlnaHQtbWQ7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJGRlc2t0b3AtYnJlYWtwb2ludCApIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiAkY3AtYmFubmVyLWhlaWdodC1sZztcblx0XHR9XG5cdH1cbn1cblxuLyogYnJlYWtwb2ludHMgKi9cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoICggJG1vYmlsZS1icmVha3BvaW50IC0gMSApKSB7XG5cblx0LnN0b3JlLWNhcnQge1xuXHRcdHRvcDogNzBweDtcblx0fVxuXG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoICRtb2JpbGUtYnJlYWtwb2ludC0yKSB7XG5cdC5oaWRlLW1vYmlsZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4iLCIvLyBUZXh0IFNoYWRvd1xuXG5AaW1wb3J0IFwiY29tcGFzcy9zdXBwb3J0XCI7XG5cblxuLy8gVGhlc2UgZGVmYXVsdHMgbWFrZSB0aGUgYXJndW1lbnRzIG9wdGlvbmFsIGZvciB0aGlzIG1peGluXG4vLyBJZiB5b3UgbGlrZSwgc2V0IGRpZmZlcmVudCBkZWZhdWx0cyBpbiB5b3VyIHByb2plY3RcblxuJGRlZmF1bHQtdGV4dC1zaGFkb3ctY29sb3IgICAgICA6ICNhYWFhYWEgIWRlZmF1bHQ7XG4kZGVmYXVsdC10ZXh0LXNoYWRvdy1oLW9mZnNldCAgIDogMHB4ICAgICAhZGVmYXVsdDtcbiRkZWZhdWx0LXRleHQtc2hhZG93LXYtb2Zmc2V0ICAgOiAwcHggICAgICFkZWZhdWx0O1xuJGRlZmF1bHQtdGV4dC1zaGFkb3ctYmx1ciAgICAgICA6IDFweCAgICAgIWRlZmF1bHQ7XG4kZGVmYXVsdC10ZXh0LXNoYWRvdy1zcHJlYWQgICAgIDogZmFsc2UgICAhZGVmYXVsdDtcblxuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIHRleHQgc2hhZG93cyB3aGVuIG9uZSBvciBtb3JlIHNoYWRvd3MgYXJlIG5lZWRlZC5cbi8vIEVhY2ggc2hhZG93IGFyZ3VtZW50IHNob3VsZCBhZGhlcmUgdG8gdGhlIHN0YW5kYXJkIGNzczMgc3ludGF4IGZvciB0aGVcbi8vIHRleHQtc2hhZG93IHByb3BlcnR5LlxuLy9cbi8vIE5vdGU6IGlmIGFueSBzaGFkb3cgaGFzIGEgc3ByZWFkIHBhcmFtZXRlciwgdGhpcyB3aWxsIGNhdXNlIHRoZSBtaXhpblxuLy8gdG8gZW1pdCB0aGUgc2hhZG93IGRlY2xhcmF0aW9uIHR3aWNlLCBmaXJzdCB3aXRob3V0IHRoZSBzcHJlYWQsXG4vLyB0aGVuIHdpdGggdGhlIHNwcmVhZCBpbmNsdWRlZC4gVGhpcyBhbGxvd3MgeW91IHRvIHByb2dyZXNzaXZlbHlcbi8vIGVuaGFuY2UgdGhlIGJyb3dzZXJzIHRoYXQgZG8gc3VwcG9ydCB0aGUgc3ByZWFkIHBhcmFtZXRlci5cbkBtaXhpbiB0ZXh0LXNoYWRvdyhcbiAgJHNoYWRvdy4uLlxuKSB7XG4gICRzaGFkb3c6IGlmKGxlbmd0aCgkc2hhZG93KSA+IDAsICRzaGFkb3csIGRlZmF1bHQpO1xuICAkZGVmYXVsdDogLWNvbXBhc3Mtc3BhY2UtbGlzdChjb21wYWN0KCRkZWZhdWx0LXRleHQtc2hhZG93LWgtb2Zmc2V0ICRkZWZhdWx0LXRleHQtc2hhZG93LXYtb2Zmc2V0ICRkZWZhdWx0LXRleHQtc2hhZG93LWJsdXIgJGRlZmF1bHQtdGV4dC1zaGFkb3ctc3ByZWFkICRkZWZhdWx0LXRleHQtc2hhZG93LWNvbG9yKSk7XG4gICRzaGFkb3dzLXdpdGhvdXQtc3ByZWFkOiBqb2luKCgpLCgpLGNvbW1hKTtcbiAgJHNoYWRvd3M6IGpvaW4oKCksKCksY29tbWEpO1xuICAkaGFzLXNwcmVhZDogZmFsc2U7XG5cbiAgQGVhY2ggJGxheWVyIGluICRzaGFkb3cge1xuICAgICRsYXllcjogaWYoJGxheWVyID09ICdkZWZhdWx0JywgJGRlZmF1bHQsICRsYXllcik7XG4gICAgQGlmIGxlbmd0aCgkbGF5ZXIpID4gNCB7XG4gICAgICAkaGFzLXNwcmVhZDogdHJ1ZTtcbiAgICAgICRzaGFkb3dzLXdpdGhvdXQtc3ByZWFkOiBhcHBlbmQoJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQsIG50aCgkbGF5ZXIsMSkgbnRoKCRsYXllciwyKSBudGgoJGxheWVyLDMpIG50aCgkbGF5ZXIsNSkpO1xuICAgICAgJHNoYWRvd3M6IGFwcGVuZCgkc2hhZG93cywgJGxheWVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRzaGFkb3dzLXdpdGhvdXQtc3ByZWFkOiBhcHBlbmQoJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQsICRsYXllcik7XG4gICAgICAkc2hhZG93czogYXBwZW5kKCRzaGFkb3dzLCAkbGF5ZXIpO1xuICAgIH1cbiAgfVxuICBAaWYgJGhhcy1zcHJlYWQge1xuICAgIHRleHQtc2hhZG93OiAkc2hhZG93cy13aXRob3V0LXNwcmVhZDtcbiAgfVxuICB0ZXh0LXNoYWRvdzogJHNoYWRvd3M7XG59XG5cbi8vIFByb3ZpZGVzIGEgc2luZ2xlIGNyb3NzLWJyb3dzZXIgQ1NTIHRleHQgc2hhZG93LlxuLy9cbi8vIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciB0aGUgY29sb3IsIGhvcml6b250YWwgb2Zmc2V0LCB2ZXJ0aWNhbCBvZmZzZXQsIGJsdXIsIGFuZCBzcHJlYWRcbi8vIGFjY29yZGluZyB0byB0aGUgY29uZmlndXJhdGlvbiBkZWZhdWx0cyBhYm92ZS5cbkBtaXhpbiBzaW5nbGUtdGV4dC1zaGFkb3coXG4gICRob2ZmOiBmYWxzZSxcbiAgJHZvZmY6IGZhbHNlLFxuICAkYmx1cjogZmFsc2UsXG4gICRzcHJlYWQ6IGZhbHNlLFxuICAkY29sb3I6IGZhbHNlXG4pIHtcbiAgLy8gQSBsb3Qgb2YgcGVvcGxlIHRoaW5rIHRoZSBjb2xvciBjb21lcyBmaXJzdC4gSXQgZG9lc24ndC5cbiAgQGlmIHR5cGUtb2YoJGhvZmYpID09IGNvbG9yIHtcbiAgICAkdGVtcC1jb2xvcjogJGhvZmY7XG4gICAgJGhvZmY6ICR2b2ZmO1xuICAgICR2b2ZmOiAkYmx1cjtcbiAgICAkYmx1cjogJHNwcmVhZDtcbiAgICAkc3ByZWFkOiAkY29sb3I7XG4gICAgJGNvbG9yOiAkdGVtcC1jb2xvcjtcbiAgfVxuICAvLyBDYW4ndCByZWx5IG9uIGRlZmF1bHQgYXNzaWdubWVudCB3aXRoIG11bHRpcGxlIHN1cHBvcnRlZCBhcmd1bWVudCBvcmRlcnMuXG4gICRob2ZmOiAgIGlmKCRob2ZmLCAgICRob2ZmLCAgICRkZWZhdWx0LXRleHQtc2hhZG93LWgtb2Zmc2V0KTtcbiAgJHZvZmY6ICAgaWYoJHZvZmYsICAgJHZvZmYsICAgJGRlZmF1bHQtdGV4dC1zaGFkb3ctdi1vZmZzZXQpO1xuICAkYmx1cjogICBpZigkYmx1ciwgICAkYmx1ciwgICAkZGVmYXVsdC10ZXh0LXNoYWRvdy1ibHVyICAgICk7XG4gICRzcHJlYWQ6IGlmKCRzcHJlYWQsICRzcHJlYWQsICRkZWZhdWx0LXRleHQtc2hhZG93LXNwcmVhZCAgKTtcbiAgJGNvbG9yOiAgaWYoJGNvbG9yLCAgJGNvbG9yLCAgJGRlZmF1bHQtdGV4dC1zaGFkb3ctY29sb3IgICApO1xuICAvLyBXZSBkb24ndCBuZWVkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciB0aGlzIHByb3BlcnR5LlxuICBAaWYgJGNvbG9yID09IG5vbmUgb3IgJGhvZmYgPT0gbm9uZSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaGFkb3cobm9uZSk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIHRleHQtc2hhZG93KGNvbXBhY3QoJGhvZmYgJHZvZmYgJGJsdXIgJHNwcmVhZCAkY29sb3IpKTtcbiAgfVxufVxuIiwiQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImNwXCI7XG5AaW1wb3J0IFwic3RvcmUvc3RvcmUtdmFyc1wiO1xuXG4kY2FydC1icDogMTI4MHB4O1xuXG4vKiBDb25zdW1lciBTdG9yZSBDYXJ0IENvbXBvbmVudCAqL1xuXG4uc3RvcmUtY2FydCB7XG5cdEBpbmNsdWRlIGJhY2tmYWNlLXZpc2liaWxpdHktZml4O1xuXHQvKiBUb3AgcG9zaXRpb24gc2V0IGluIG1haW4taGVhZGVyLnNjc3MgdG8gYWNjb3VudCBmb3IgdmFyaWFibGUgc2l6ZSBoZWFkZXIgKi9cblx0Y29sb3I6ICNGRkY7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmctYm90dG9tOiAyMnB4O1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogJGM0Mi1wcm9kdWN0LWhlYWRlci1oZWlnaHQ7XG5cdHdpZHRoOiAxMDAlO1xuXHR6LWluZGV4OiAxNjtcblxuXHQuY29udGVudC13cmFwcGVyIHtcblx0XHRiYWNrZ3JvdW5kOiAkc3RvcmUtY2FydC1iZy1jb2xvcjtcblx0XHQvKiBTaW5jZSB0aGUgc3RvcmUgdmlldyBvdmVycmlkZXMgdGhlIGNvbnRlbnQtd3JhcHBlciBwYWRkaW5nLCB3ZSBuZWVkIHRvIHJlLWFwcGx5IGl0IGhlcmUuIFRPRE86IFJlZmFjdG9yIHNvIHRoaXMgaXNudCd0IG5lZWRlZC4gKi9cblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHggIWltcG9ydGFudDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJG1vYmlsZS1icmVha3BvaW50ICkge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdH1cblxuXHQuYnRuIHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMThweCApO1xuXG5cdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkbW9iaWxlLWJyZWFrcG9pbnQgKSB7XG5cdFx0dG9wOiAkcHJvZHVjdC1oZWFkZXItaGVpZ2h0O1xuXHR9XG59XG5cbi5zdG9yZS1jYXJ0LWNvbnRhaW5lciB7XG5cdGJhY2tncm91bmQ6ICRzdG9yZS1jYXJ0LWJnLWNvbG9yO1xuXHRib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XG5cblx0LnN0b3JlLWNhcnQtY29sbGFwc2VkICYge1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdH1cbn1cblxuLnN0b3JlLWNhcnQtY29udGVudCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMTBweCAwO1xufVxuXG4uc3RvcmUtY2FydC1jb250ZW50LW1vYmlsZSB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRjYXJ0LWJwICkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQuc3RvcmUtY2FydC1tb2JpbGUtdG90YWwge1xuXHRcdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxOHB4ICk7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRsaW5lLWhlaWdodDogM2VtO1xuXHR9XG5cblx0LnN0b3JlLWNhcnQtbW9iaWxlLXRvdGFsLWxhYmVsIHtcblx0XHRjb2xvcjogIzhEQTJBNztcblx0XHRtYXJnaW4tcmlnaHQ6IC4yNWVtO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdH1cblxuXHQuc3RvcmUtY2FydC1tb2JpbGUtdG90YWwtYW1vdW50IHtcblx0fVxufVxuXG4uc3RvcmUtY2FydC1jb250ZW50LWRlc2t0b3Age1xuXHRAaW5jbHVkZSBicmVha3BvaW50KCBtYXgtd2lkdGggJGNhcnQtYnAgLSAxICkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLnN0b3JlLWNhcnQtZXhwYW5kLXRvZ2dsZSB7XG5cdEBpbmNsdWRlIGJ1dHRvbi1yZXNldDtcblx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyggMCAwIDkwcHggOTBweCApO1xuXG5cdGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuXHRib3JkZXItdG9wOiBub25lO1xuXHRiYWNrZ3JvdW5kOiAkc3RvcmUtY2FydC1iZy1jb2xvcjtcblx0Zm9udC1zaXplOiAkc3RvcmUtY2FydC10b2dnbGUtYnRuLWljb24tc2l6ZTtcblx0aGVpZ2h0OiAkc3RvcmUtY2FydC10b2dnbGUtYnRuLXNpemUvMjtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDglO1xuXHRib3R0b206IC0oICRzdG9yZS1jYXJ0LXRvZ2dsZS1idG4tc2l6ZSAvIDIgKTtcblx0d2lkdGg6ICRzdG9yZS1jYXJ0LXRvZ2dsZS1idG4tc2l6ZTtcblx0b3V0bGluZTogbm9uZTtcblxuXHQ+IHNwYW4ge1xuXHRcdGJvdHRvbTogMDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHRpbnQoICRzdG9yZS1jYXJ0LWJnLWNvbG9yLCA1MCUgKTtcblx0fVxufVxuXG4uc3RvcmUtY2FydC1jb2xsYXBzZSB7XG5cdGJvdHRvbTogNHB4O1xuXHRsZWZ0OiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4uc3RvcmUtY2FydC1leHBhbmQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdGJvdHRvbTogNHB4O1xuXHR3aWR0aDogMTAwJTtcblxuXHQuc3RvcmUtY2FydC1leHBhbmQtY291bnQge1xuXHRcdGJvdHRvbTogOXB4O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRsZWZ0OiAwO1xuXHRcdHBhZGRpbmctbGVmdDogMnB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLnN0b3JlLWNhcnQtZGVzY3JpcHRpb24sXG4uc3RvcmUtY2FydC1saW5lLWl0ZW1zLFxuLnN0b3JlLWNhcnQtdG90YWxzIHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5cbi5zdG9yZS1jb250ZW50LWNoZWNrb3V0LWJ0biB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLnN0b3JlLWNhcnQtbGluZS1pdGVtcyxcbi5zdG9yZS1jb250ZW50LWNoZWNrb3V0LWJ0blxue1xuXHRtYXJnaW4tbGVmdDogMiU7XG59XG5cbi5zdG9yZS1jYXJ0LWRlc2NyaXB0aW9uIHtcblx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDE4cHggKTtcblxuXHRiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvaWNvbi1jYXJ0LnBuZ1wiICkgbm8tcmVwZWF0IDAgMDtcblx0bWluLWhlaWdodDogJHN0b3JlLWNhcnQtc3VtbWFyeS1pY29uLXNpemU7XG5cdHBhZGRpbmc6IDE1cHggMCAwIDYwcHg7XG5cdHdpZHRoOiAxNyU7XG59XG5cbi5zdG9yZS1jYXJ0LWxpbmUtaXRlbXMge1xuXG5cdHdpZHRoOiA0MCU7XG5cblx0dWwge1xuXHRcdEBpbmNsdWRlIGxpc3QtcmVzZXQ7XG5cdH1cblxuXHRsaSB7XG5cdFx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDE2cHggKTtcblxuXHRcdGJhY2tncm91bmQ6ICM5QUEyQTU7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0bWFyZ2luLWJvdHRvbTogMXB4O1xuXHRcdHBhZGRpbmc6IDEycHg7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG5cdGJ1dHRvbiB7XG5cdFx0QGluY2x1ZGUgYnV0dG9uLXJlc2V0O1xuXHRcdG1hcmdpbi1yaWdodDogNnB4O1xuXHR9XG59XG5cbi5zdG9yZS1jYXJ0LWxpbmUtaXRlbXMtcHJpY2Uge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR3aWR0aDogOTVweDtcbn1cblxuLnN0b3JlLWNhcnQtdG90YWxzIHtcblx0d2lkdGg6IDIzJTtcbn1cblxuLnN0b3JlLWNhcnQtdG90YWwtbGFiZWwge1xuXHRAaW5jbHVkZSBzdG9yZS1jYXJ0LWxhYmVsO1xuXHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMTRweCApO1xuXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdHdpZHRoOiA0NSU7XG59XG5cbi5zdG9yZS1jYXJ0LXRvdGFsLWFtb3VudCB7XG5cdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxNnB4ICk7XG59XG5cbi5zdG9yZS1jYXJ0LXRvdGFsLXRvdGFsIHtcblxuXHQuc3RvcmUtY2FydC10b3RhbC1sYWJlbCxcblx0LnN0b3JlLWNhcnQtdG90YWwtYW1vdW50IHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMjNweCApO1xuXHR9XG59XG5cbi5zdG9yZS1jb250ZW50LWNoZWNrb3V0LWJ0biB7XG5cdGZsb2F0OiByaWdodDtcbn1cbi8qXG4uc3RvcmUtY2FydC1jb2xsYXBzZWQge1xuXG5cdC5zdG9yZS1jYXJ0LWRlc2NyaXB0aW9uIHtcblx0XHRsaW5lLWhlaWdodDogJHN0b3JlLWNhcnQtc3VtbWFyeS1pY29uLXNpemU7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdH1cbn1cbiovXG4iLCIvKiBTaGFyZWQgdmFyaWFibGVzIGFuZCBtaXhpbnMgZm9yIENvbnN1bWVyIFN0b3JlICovXG5cbiRzdG9yZS1jaGVja291dC1wYWdlLWJnLWNvbG9yOiAjRUJFQ0VEO1xuJHN0b3JlLWJvZHktdGV4dC1jb2xvcjogIzQ5NTc1RDtcbiRzdG9yZS1jYXJ0LWJnLWNvbG9yOiAkc3RvcmUtYm9keS10ZXh0LWNvbG9yO1xuJHN0b3JlLWNhcnQtdG9nZ2xlLWJ0bi1zaXplOiA0NHB4O1xuJHN0b3JlLWNhcnQtdG9nZ2xlLWJ0bi1pY29uLXNpemU6IDIwcHg7XG4kc3RvcmUtY2FydC1zdW1tYXJ5LWljb24tc2l6ZTogNTNweDtcbiRzdG9yZS1yZWNlaXB0LXRleHQtY29sb3I6ICM4Mzk4OUQ7XG4kc3RvcmUtbW9iaWxlLWJwOiAkbW9iaWxlLWJyZWFrcG9pbnQ7XG4kc3RvcmUtYm9yZGVyLWNvbG9yOiAjQzJDQkQyO1xuXG5cbkBtaXhpbiBzdG9yZS1jYXJ0LWxhYmVsIHtcblx0Y29sb3I6ICRicmFuZC1jcmFzaHBsYW4tY29uc3VtZXItY29sb3I7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbkBtaXhpbiBjb25zdW1lci1zdG9yZS1jaGVja2JveCggJHNlbGVjdG9yICkge1xuXG5cdCN7JHNlbGVjdG9yfSB7XG5cdFx0aW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRcdCsgbGFiZWwge1xuXG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMzVweDtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHRcdC5jaGVja2JveCB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZm9udC1hd2Vzb21lLWNvbnRlbnQ7XG5cblx0XHRcdFx0XHRjb2xvcjogI0FBQURBRjtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxLjE2NjdlbTtcblx0XHRcdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDFweDtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRcdGxlZnQ6IDA7XG5cblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6ICdcXEYwOTYnO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOmNoZWNrZWQgKyBsYWJlbCB7XG5cblx0XHRcdFx0Y29sb3I6ICRzdG9yZS1ib2R5LXRleHQtY29sb3I7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0XHRcdC5jaGVja2JveDpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbG9yOiAkYnJhbmQtY3Jhc2hwbGFuLWNvbnN1bWVyLWNvbG9yO1xuXHRcdFx0XHRcdGNvbnRlbnQ6ICdcXEYwNDYnO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gRmFuY3kgcmFkaW8gYnV0dG9ucyBkb24ndCB3b3JrIGluIElFOC5cblx0Lmx0LWllOSAjeyRzZWxlY3Rvcn0ge1xuXHRcdGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cblx0XHRcdCsgbGFiZWwge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0Ly9wb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdFx0LmNoZWNrYm94IHtcblx0XHRcdFx0XHQvL0BpbmNsdWRlIGZvbnQtYXdlc29tZS1jb250ZW50O1xuXG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0XHRcdC8vaGVpZ2h0OiAyMHB4O1xuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOmNoZWNrZWQgKyBsYWJlbCB7XG5cblx0XHRcdFx0LmNoZWNrYm94OmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJjcFwiO1xuXG4vKiBTdWJzY3JpcHRpb25Qcm9kdWN0VHlwZSBjb21wb25lbnQgKi9cblxuQGluY2x1ZGUgY29uc3VtZXItc3RvcmUtY2hlY2tib3goIFwiLnN0b3JlLXN1YnNjcmlwdGlvbi1wcm9kdWN0LXR5cGVcIiApO1xuXG4uc3RvcmUtc3Vic2NyaXB0aW9uLXByb2R1Y3QtdHlwZSB7XG5cblx0b2wge1xuXHRcdEBpbmNsdWRlIGxpc3QtcmVzZXQ7XG5cdFx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDE4cHggKTtcblxuXHRcdG1hcmdpbjogMCAwIDJlbTtcblxuXHRcdGxpIHtcblx0XHRcdGNvbG9yOiAjQUFBREFGO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMWVtO1xuXHRcdH1cblx0fVxufVxuXG4uc3RvcmUtc3Vic2NyaXB0aW9uLXByb2R1Y3QtbGVuZ3RoIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtaW4td2lkdGg6IDcwcHg7XG59XG5cbi5zdG9yZS1zdWJzY3JpcHRpb24tcHJvZHVjdC1wcmljZSB7XG5cdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCA1OHB4ICk7XG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiY3BcIjtcblxuJHN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tcGFkZGluZy1oZWlnaHQ6IC4yNWVtO1xuJHN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tcGFkZGluZy13aWR0aDogMyU7XG4kc3RvcmUtY2FydC1zdW1tYXJ5LXF0eS1maWVsZC1wYWRkaW5nLWhlaWdodDogMXB4O1xuXG5AbWl4aW4gc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1yb3ctc3R5bGVzIHtcblx0YmFja2dyb3VuZDogI0VCRUNFRDtcblx0Y29sb3I6ICM2NzY3Njc7XG59XG5cblxuLyogQ2FydCBTZWN0aW9uICovXG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktdGgge1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW1zIHtcblx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDE2cHggKTtcblxuXHR1bCB7XG5cdFx0QGluY2x1ZGUgbGlzdC1yZXNldDtcblx0fVxuXG5cdGxpIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdH1cbn1cblxuLnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0ge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VCRUNFRDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0fVxuXG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLWNvbC1sYWJlbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQuc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1pbmZvIHtcblx0XHQuc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1jb2wtbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tZ3JvdXAge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG59XG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLWluZm8ge1xuXG5cdG1hcmdpbi1ib3R0b206IDFlbTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0d2lkdGg6IDYwJTtcblx0fVxuXG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLXJvdyB7XG5cdFx0QGluY2x1ZGUgc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1yb3ctc3R5bGVzO1xuXHRcdEBpbmNsdWRlIHRleHQtb3ZlcmZsb3c7XG5cdFx0cGFkZGluZzogMCAzNXB4IDAgJHN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tcGFkZGluZy13aWR0aDtcdC8vIEFkZCBwYWRkaW5nIHNvIHJlbW92ZSBpY29uIGRvZXNuJ3Qgb3ZlcmxhcCBwcm9kdWN0IG5hbWVcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAkc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1wYWRkaW5nLXdpZHRoO1xuXHRcdH1cblx0fVxufVxuXG4uc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1wcmljaW5nIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLW1vYmlsZS1icCApIHtcblx0XHR3aWR0aDogNDAlO1xuXG5cdFx0LnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tcm93IHtcblx0XHRcdEBpbmNsdWRlIHN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tcm93LXN0eWxlcztcblx0XHR9XG5cdH1cbn1cblxuLnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tY29sIHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLXJvdyB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRoZWlnaHQ6IDJlbTtcblx0bGluZS1oZWlnaHQ6IDJlbTtcbn1cblxuLnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tZGVzY3JpcHRpb24ge1xuXHRjb2xvcjogIzhDOEM4Qztcblx0cGFkZGluZzogJHN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tcGFkZGluZy1oZWlnaHQgJHN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tcGFkZGluZy13aWR0aDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdHBhZGRpbmctbGVmdDogKCAkc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1wYWRkaW5nLXdpZHRoICk7XG5cdFx0cGFkZGluZy1yaWdodDogKCAkc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1wYWRkaW5nLXdpZHRoIC8gMiApO1xuXHR9XG59XG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLWNvbC1sYWJlbCB7XG5cdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxNHB4ICk7XG5cdEBpbmNsdWRlIHN0b3JlLWNhcnQtbGFiZWw7XG59XG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLXVuaXQtcHJpY2Uge1xuXG5cdHdpZHRoOiA0MyU7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLW1vYmlsZS1icCApIHtcblx0XHR3aWR0aDogMzYlO1xuXHR9XG59XG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLXN1YnRvdGFsIHtcblxuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0d2lkdGg6IDQzJTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0d2lkdGg6IDQxJTtcblx0fVxufVxuXG4uc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1xdHkge1xuXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0d2lkdGg6IDE0JTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdHdpZHRoOiAyMyU7XG5cdH1cblxuXHRpbnB1dCB7XG5cdFx0Ym9yZGVyOiBzb2xpZCAxcHggI0NDRDRENTtcblx0XHRwYWRkaW5nOiAkc3RvcmUtY2FydC1zdW1tYXJ5LXF0eS1maWVsZC1wYWRkaW5nLWhlaWdodCAuMjVlbTtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdHdpZHRoOiAzLjFlbTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLXJlbW92ZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblxuXHRidXR0b24ge1xuXHRcdEBpbmNsdWRlIGJ1dHRvbi1yZXNldDtcblxuXHRcdHBhZGRpbmc6IC41ZW0gLjVlbSAuM2VtO1xuXHR9XG59XG5cbi8qIFRvdGFscyBTZWN0aW9uICovXG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktdG90YWxzIHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRtYXJnaW46IDFlbSAwIDA7XG5cdHdpZHRoOiA3NSU7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLW1vYmlsZS1icCApIHtcblx0XHR3aWR0aDogNDAlO1xuXHR9XG59XG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktdG90YWwge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdG1hcmdpbi1ib3R0b206IC41ZW07XG5cdH1cbn1cblxuLnN0b3JlLWNhcnQtc3VtbWFyeS10b3RhbC1sYWJlbCxcbi5zdG9yZS1jYXJ0LXN1bW1hcnktdG90YWwtYW1vdW50IHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5cbi5zdG9yZS1jYXJ0LXN1bW1hcnktdG90YWwtbGFiZWwge1xuXHRAaW5jbHVkZSBzdG9yZS1jYXJ0LWxhYmVsO1xuXHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMTRweCApO1xuXG5cdG1hcmdpbi1yaWdodDogNiU7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR3aWR0aDogNTMlO1xufVxuXG4uc3RvcmUtY2FydC1zdW1tYXJ5LXRvdGFsLWFtb3VudCB7XG5cdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxNnB4ICk7XG5cblx0Y29sb3I6ICM2NzY3Njc7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR3aWR0aDogNDElO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxufVxuXG4uc3RvcmUtY2FydC1zdW1tYXJ5LXRvdGFsLXRvdGFsIHtcblxuXHRtYXJnaW4tdG9wOiAuNWVtO1xuXG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktdG90YWwtbGFiZWwsXG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktdG90YWwtYW1vdW50IHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMjJweCApO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR9XG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiY3BcIjtcblxuQG1peGluIHN0b3JlLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC10eXBlKCAkY2FyZCApIHtcblx0Ji4jeyRjYXJkfSB7XG5cdFx0YmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL3N0b3JlLyN7JGNhcmR9LnBuZ1wiICkgbm8tcmVwZWF0IHJpZ2h0IGJvdHRvbTtcblx0fVxufVxuXG4uc3RvcmUtY3JlZGl0LWNhcmQtZm9ybSB7XG5cblx0LnN0b3JlLWNyZWRpdC1jYXJkLWZvcm0tbnVtYmVyLWZpZWxkIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IDEuNWVtO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDQycHg7XG5cblx0XHRpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG5cdFx0XHR3aWR0aDogOS42ZW1cblx0XHR9XG5cblx0XHRAaW5jbHVkZSBzdG9yZS1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtdHlwZSggXCJ2aXNhXCIgKTtcblx0XHRAaW5jbHVkZSBzdG9yZS1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtdHlwZSggXCJtYXN0ZXJjYXJkXCIgKTtcblx0XHRAaW5jbHVkZSBzdG9yZS1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtdHlwZSggXCJhbWVyaWNhbl9leHByZXNzXCIgKTtcblx0XHRAaW5jbHVkZSBzdG9yZS1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtdHlwZSggXCJkaXNjb3ZlclwiICk7XG5cdFx0QGluY2x1ZGUgc3RvcmUtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLXR5cGUoIFwiZGluZXJzX2NsdWJcIiApO1xuXHR9XG5cblx0Lyouc3RvcmUtY3JlZGl0LWNhcmQtZm9ybS10eXBlIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IDJlbTtcblx0XHR3aWR0aDogMjNweDtcblxuXHRcdGltZyB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbi10b3A6IDEuNWVtO1xuXHRcdH1cblx0fSovXG5cblx0LnN0b3JlLWNyZWRpdC1jYXJkLWZvcm0tY29kZS1maWVsZCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDNlbTtcblx0fVxuXG5cdC5zdG9yZS1jcmVkaXQtY2FyZC1mb3JtLWV4cGlyYXRpb24tZmllbGQtbW9udGgge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdG1hcmdpbi1yaWdodDogMiU7XG5cdFx0d2lkdGg6IDQ5JTtcblx0fVxuXG5cdC5zdG9yZS1jcmVkaXQtY2FyZC1mb3JtLWV4cGlyYXRpb24tZmllbGQteWVhciB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDQ5JTtcblx0fVxuXG5cdC8qLnN0b3JlLWNyZWRpdC1jYXJkLWZvcm0tdHlwZS1maWVsZCB7XG5cdFx0dWwge1xuXHRcdFx0QGluY2x1ZGUgbGlzdC1yZXNldDtcblxuXHRcdFx0bWFyZ2luLXRvcDogLjVlbTtcblx0XHR9XG5cblx0XHRsaSB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1hcmdpbi1yaWdodDogMiU7XG5cdFx0fVxuXG5cdFx0bGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdH1cblxuXHRcdGltZyB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdH1cblx0fSovXG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiY3BcIjtcblxuQG1peGluIHN0b3JlLWFkZHJlc3MtZm9ybS1maWVsZHMtc2lkZS1ieS1zaWRlIHtcblx0LnN0b3JlLWFkZHJlc3MtZm9ybS1zdGF0ZS1maWVsZCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiAyJTtcblx0XHR3aWR0aDogNjQlO1xuXHR9XG5cblx0LnN0b3JlLWFkZHJlc3MtZm9ybS16aXAtZmllbGQge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiAzNCU7XG5cblx0XHRpbnB1dCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cblxuLnN0b3JlLWFkZHJlc3MtZm9ybSB7XG5cblx0LnN0b3JlLWFkZHJlc3MtZm9ybS16aXAtZmllbGQge1xuXHRcdGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcblx0XHRcdHdpZHRoOiA4ZW07XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2lkZSBieSBzaWRlIG9uY2UgYmlnIGVub3VnaC4gNjIwIGlzIGdyaWQgYnJlYWtwb2ludFxuXHRAaW5jbHVkZSBicmVha3BvaW50KCA0MDBweCA2MjBweCApIHtcblx0XHRAaW5jbHVkZSBzdG9yZS1hZGRyZXNzLWZvcm0tZmllbGRzLXNpZGUtYnktc2lkZTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIDEwMDBweCApIHtcblx0XHRAaW5jbHVkZSBzdG9yZS1hZGRyZXNzLWZvcm0tZmllbGRzLXNpZGUtYnktc2lkZTtcblx0fVxufVxuIiwiQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImNwXCI7XG5cbkBtaXhpbiBzZXQtcHJvZ3Jlc3MtYmFyLWhlaWdodCggJHN0b3JlLWNoZWNrb3V0LXByb2dyZXNzLWhlaWdodCApIHtcblx0bGkge1xuXHRcdGhlaWdodDogJHN0b3JlLWNoZWNrb3V0LXByb2dyZXNzLWhlaWdodDtcblx0XHRsaW5lLWhlaWdodDogJHN0b3JlLWNoZWNrb3V0LXByb2dyZXNzLWhlaWdodDtcblxuXHRcdCY6YmVmb3JlLFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLXRvcDogKCAkc3RvcmUtY2hlY2tvdXQtcHJvZ3Jlc3MtaGVpZ2h0IC8gMiApIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogKCAkc3RvcmUtY2hlY2tvdXQtcHJvZ3Jlc3MtaGVpZ2h0IC8gMiApICBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHR9XG5cdH1cbn1cblxuLyogQ29uc3VtZXIgU3RvcmUgQ2hlY2tvdXQgUHJvZ3Jlc3MgQ29tcG9uZW50ICovXG5cbiRzdG9yZS1jaGVja291dC1wcm9ncmVzcy1iZy1jb2xvcjogI0JEQzdDQTtcbiRzdG9yZS1jaGVja291dC1wcm9ncmVzcy1oZWlnaHQ6IDNlbTtcbiRzdG9yZS1jaGVja291dC1wcm9ncmVzcy13ZWRnZS13aWR0aDogMTNweDtcbiRzdG9yZS1jaGVja291dC1wcm9ncmVzcy13ZWRnZS1yb3VuZGluZzogNnB4O1xuXG4uc3RvcmUtY2hlY2tvdXQtcHJvZ3Jlc3Mge1xuXHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMTRweCApO1xuXHRAaW5jbHVkZSBzZXQtcHJvZ3Jlc3MtYmFyLWhlaWdodCggMi4zZW0gKTtcblxuXHRmbG9hdDogbGVmdDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxN3B4ICk7XG5cdFx0QGluY2x1ZGUgc2V0LXByb2dyZXNzLWJhci1oZWlnaHQoIDNlbSApO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0b2wge1xuXHRcdEBpbmNsdWRlIGxpc3QtcmVzZXQ7XG5cblx0XHRtYXJnaW4tbGVmdDogMzBweDtcblxuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBtYXgtd2lkdGggJHN0b3JlLW1vYmlsZS1icCAtIDEgKSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGxpIHtcblx0XHRiYWNrZ3JvdW5kOiAkc3RvcmUtY2hlY2tvdXQtcHJvZ3Jlc3MtYmctY29sb3I7XG5cdFx0Y29sb3I6ICM4Mzk4OUQ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiAkc3RvcmUtY2hlY2tvdXQtcHJvZ3Jlc3Mtd2VkZ2Utd2lkdGg7XG5cdFx0cGFkZGluZzogMXB4IDVweCAxcHggMThweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdFx0cGFkZGluZzogMCAxN3B4IDAgMzBweDtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSxcblx0XHQmOmFmdGVyIHtcblx0XHRcdGJvcmRlci1sZWZ0LXdpZHRoOiAkc3RvcmUtY2hlY2tvdXQtcHJvZ3Jlc3Mtd2VkZ2Utd2lkdGg7XG5cdFx0XHRib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRib3JkZXItbGVmdC1jb2xvcjogI0ZGRjtcblx0XHRcdGxlZnQ6IDA7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiAkc3RvcmUtY2hlY2tvdXQtcGFnZS1iZy1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiAkc3RvcmUtY2hlY2tvdXQtcHJvZ3Jlc3MtYmctY29sb3I7XG5cdFx0XHRyaWdodDogLSRzdG9yZS1jaGVja291dC1wcm9ncmVzcy13ZWRnZS13aWR0aDtcblx0XHR9XG5cblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoICRzdG9yZS1jaGVja291dC1wcm9ncmVzcy13ZWRnZS1yb3VuZGluZyAwIDAgJHN0b3JlLWNoZWNrb3V0LXByb2dyZXNzLXdlZGdlLXJvdW5kaW5nICk7XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5zZWxlY3RlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLWNyYXNocGxhbi1jb25zdW1lci1jb2xvcjtcblx0XHRjb2xvcjogI0ZGRjtcblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWxlZnQtY29sb3I6ICRicmFuZC1jcmFzaHBsYW4tY29uc3VtZXItY29sb3I7XG5cdFx0fVxuXHR9XG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiY3BcIjtcbkBpbXBvcnQgXCJzdG9yZS9zdG9yZS12YXJzXCI7XG5cbi5zdG9yZS1vcmRlci1zdW1tYXJ5IHtcblx0bWFyZ2luLWJvdHRvbTogMmVtO1xufVxuXG4uc3RvcmUtb3JkZXItc3VtbWFyeS1pbmZvLFxuLnN0b3JlLW9yZGVyLXN1bW1hcnktcGF5bWVudC1hZGRyZXNzLFxuLnN0b3JlLW9yZGVyLXN1bW1hcnktc2hpcHBpbmctYWRkcmVzcyB7XG5cblx0Y29sb3I6ICRzdG9yZS1yZWNlaXB0LXRleHQtY29sb3I7XG5cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxM3B4ICk7XG5cblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tbGVmdDogMzVweDtcblx0XHR3aWR0aDogMjElO1xuXHR9XG5cblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRwIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHRoMyB7XG5cdFx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDE2cHggKTtcblxuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLW1vYmlsZS1icCApIHtcblx0XHRcdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxM3B4ICk7XG5cdFx0fVxuXHR9XG59XG5cbi5zdG9yZS1vcmRlci1zdW1tYXJ5LXBheW1lbnQtYWRkcmVzcyxcbi5zdG9yZS1vcmRlci1zdW1tYXJ5LXNoaXBwaW5nLWFkZHJlc3Mge1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1heC13aWR0aCAkc3RvcmUtbW9iaWxlLWJwIC0gMXB4ICkge1xuXHRcdG1hcmdpbi10b3A6IDJlbTtcblx0fVxuXG5cdHAge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHR3aWR0aDogMTg1cHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cdH1cblxuXHRoMyB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWF4LXdpZHRoICRzdG9yZS1tb2JpbGUtYnAgLSAxcHggKSB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHR9XG5cdH1cbn1cblxuLnN0b3JlLW9yZGVyLXN1bW1hcnktbGFiZWwge1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uYWRkcmVzcy1saW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiY3BcIjtcbkBpbXBvcnQgXCJzdG9yZS9zdG9yZS12YXJzXCI7XG5cbi8qIENvbnN1bWVyIEN1cnJlbmN5IENvbXBvbmVudCAqL1xuXG4uc3RvcmUtY3VycmVuY3ktY29tcG9uZW50IHtcblxuXHRzcGFuIHtcblx0XHRmb250LXNpemU6IC41NWVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjVlbTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG5cdH1cblxufVxuIiwiQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImNwXCI7XG5AaW1wb3J0IFwic3RvcmUvc3RvcmUtdmFyc1wiO1xuXG4vKiBDb25zdW1lciBTdG9yZSBOb3RpY2UgQ29tcG9uZW50ICovXG5cbi5zdG9yZS1ub3RpY2Uge1xuXHRAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5LWZpeDtcblx0YmFja2dyb3VuZDogIzMzM0Q0Nztcblx0Y29sb3I6ICNGRkY7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHR6LWluZGV4OiAzMDtcblxuXHRidXR0b24ge1xuXHRcdEBpbmNsdWRlIGJ1dHRvbi1yZXNldDtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0bWFyZ2luOiAxLjVlbSAyZW0gMDtcblx0fVxuXG5cdCYuZXJyb3Ige1xuXHRcdGJhY2tncm91bmQ6ICNENjAwMTY7XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cdH1cbn1cblxuLnN0b3JlLW5vdGljZS1jb250ZW50IHtcblx0cGFkZGluZzogMS41ZW0gNGVtIDEuNWVtIDJlbTtcbn1cbiIsIkBpbXBvcnQgXCJzdG9yZS9zdG9yZS12YXJzXCI7XG5AaW1wb3J0IFwic3RvcmUvY2FydFwiO1xuQGltcG9ydCBcInN0b3JlL3N1YnNjcmlwdGlvbi1wcm9kdWN0LXR5cGVcIjtcbkBpbXBvcnQgXCJzdG9yZS9jYXJ0LXN1bW1hcnlcIjtcbkBpbXBvcnQgXCJzdG9yZS9jcmVkaXQtY2FyZC1mb3JtXCI7XG5AaW1wb3J0IFwic3RvcmUvYWRkcmVzcy1mb3JtXCI7XG5AaW1wb3J0IFwic3RvcmUvY2hlY2tvdXQtcHJvZ3Jlc3NcIjtcbkBpbXBvcnQgXCJzdG9yZS9vcmRlci1zdW1tYXJ5XCI7XG5AaW1wb3J0IFwic3RvcmUvY3VycmVuY3lcIjtcbkBpbXBvcnQgXCJzdG9yZS9ub3RpY2VcIjtcblxuXG4kc3RvcmUtY2hlY2tvdXQtcGFnZS1iZy1jb2xvcjogI0VCRUNFRDtcbiRzdG9yZS1jYXJ0LWJnLWNvbG9yOiAjNDk1NzVEO1xuJHN0b3JlLWNhcnQtdG9nZ2xlLWJ0bi1zaXplOiA0NHB4O1xuJHN0b3JlLWNhcnQtdG9nZ2xlLWJ0bi1pY29uLXNpemU6IDIwcHg7XG4kc3RvcmUtY2FydC1zdW1tYXJ5LWljb24tc2l6ZTogNTNweDtcbiRzdG9yZS1yZWNlaXB0LXRleHQtY29sb3I6ICM4Mzk4OUQ7XG4kc3RvcmUtbW9iaWxlLWJwOiAkbW9iaWxlLWJyZWFrcG9pbnQ7XG5cbkBtaXhpbiBzdG9yZS1jYXJ0LWxhYmVsIHtcblx0Y29sb3I6ICRicmFuZC1jcmFzaHBsYW4tY29uc3VtZXItY29sb3I7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cblxuLnBhZ2UtY29udGVudCB7XG5cdHBhZGRpbmctdG9wOiA1MHB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJhbm5lci1icmVha3BvaW50KXtcblx0XHRwYWRkaW5nLXRvcDogJHByb2R1Y3QtaGVhZGVyLWhlaWdodDtcblx0fVxufVxuXG4uc3RvcmUtdmlldyB7XG5cdC5idG4ge1xuXHRcdHBhZGRpbmc6IDE1cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDIwMDtcblx0fVxufVxuXG4uc3RvcmUtbG9hZGluZyB7XG5cdGJhY2tncm91bmQ6ICNGRkYgdXJsKCBcImltYWdlcy9sb2FkaW5nLmdpZlwiICkgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoIDI1NSwgMjU1LCAyNTUsIDAuNiApO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGxlZnQ6IDA7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0ei1pbmRleDogMTAwO1xufVxuXG4uc3RvcmUtbG9nb3V0IHtcblx0QGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eS1maXg7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoIDAsIDAsIDAsIDAuNiApO1xuXHRib3R0b206IDA7XG5cdHBhZGRpbmc6IDFlbTtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6IDEwMDA7XG59XG5cbi5zdG9yZS1tb2JpbGUtY3Jhc2hwbGFuLWxvZ28ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogJGM0Mi1wcm9kdWN0LWhlYWRlci1oZWlnaHQgKyAkYzQyLXByb2R1Y3QtaGVhZGVyLXBhZGRpbmcgKyAyO1xuXHRsZWZ0OiAkaGVhZGVyLWxlZnQtcmlnaHQtcGFkZGluZztcblxuXHRzdmcsIGltZyB7XG5cdFx0d2lkdGg6IDE2NXB4OyBoZWlnaHQ6IDIzcHg7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRiYW5uZXItYnJlYWtwb2ludCkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxufVxuXG4vKiBWaWV3IHN0eWxlcyBhcmUgaW5jbHVkZWQgYWZ0ZXIgc28gdGhleSBjYW4gb3ZlcnJpZGUgZ2xvYmFsIHN0b3JlIHN0eWxlcyAqL1xuQGltcG9ydCBcInN0b3JlL3N0b3JlLXZpZXdcIjtcbkBpbXBvcnQgXCJzdG9yZS9jaGVja291dC12aWV3c1wiO1xuXG4vKiBUT0RPOiBzdGlsbCBuZWVkIHRoaXMgc2luY2Ugd2UgbW92ZWQgdGhlIHByaW50IHN0eWxlcyB0byBhIHNlcGFyYXRlIHN0eWxlc2hlZXQ/ICovXG5AaW1wb3J0IFwic3RvcmUvcmVjZWlwdC1wcmludC12aWV3XCI7XG4iLCJAaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiY3BcIjtcbkBpbXBvcnQgXCJzdG9yZS9zdG9yZS12YXJzXCI7XG5cbi8qIENvbnN1bWVyIFN0b3JlIFN0b3JlIFZpZXcgKi9cblxuLyogU0FTUyBWYXJpYWJsZXMgYW5kIE1peGlucyAqL1xuXG4kc3RvcmUtdmlldy10YWItYXJyb3ctc2l6ZTogMTFweDtcbiRzdG9yZS12aWV3LXRhYi1ib3JkZXItc2l6ZTogN3B4O1xuJHN0b3JlLXZpZXctbW9iaWxlLWhlYWRlci1zaXplOiAzMHB4O1xuJHN0b3JlLXZpZXctc3ViLWJvcmRlci1zdHlsZTogMXB4IHNvbGlkICRzdG9yZS1ib3JkZXItY29sb3I7XG4kc3RvcmUtdmlldy1hZGRpdGlvbmFsLWJvcmRlci1zdHlsZTogMXB4IHNvbGlkICNENEQ0RDQ7XG4kc3RvcmUtY29udGVudC13aWR0aDogMTIyMHB4O1xuJHN0b3JlLXZpZXctc3ViLWJwLTE6IDEyODBweDtcbiRzdG9yZS12aWV3LXN1Yi1icC0yOiA2MjBweDtcbiRzdG9yZS12aWV3LXN1Yi1icC0zOiA5NDBweDtcbiRzdG9yZS12aWV3LXN1Yi1zaW5nbGUtY29sLXdpZHRoOiAzMjBweDtcbiRzdG9yZS12aWV3LXN1Yi1kb3VibGUtY29sLXdpZHRoOiA1MzBweDtcbiRzdG9yZS12aWV3LXN1Yi1jb2wtc3BhY2luZzogKCAkc3RvcmUtY29udGVudC13aWR0aCAtICggKCAkc3RvcmUtdmlldy1zdWItc2luZ2xlLWNvbC13aWR0aCAqIDIgKSArICRzdG9yZS12aWV3LXN1Yi1kb3VibGUtY29sLXdpZHRoICkgKSAvIDI7XG5cbkBtaXhpbiBkZXNrdG9wLW9ubHkge1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0zICkge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi8qIE92ZXJyaWRlcyAqL1xuXG5mb290ZXIge1xuXHRtYXJnaW4tdG9wOiAwO1xufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KCBtYXgtd2lkdGggJHN0b3JlLXZpZXctc3ViLWJwLTMgLSAxICkge1xuXHQuc3RvcmUtc3RvcmUtdmlldyAuY29udGVudC13cmFwcGVyIHtcblx0XHQvKiBUT0RPOiBSZWZhY3RvciBzbyB0aGlzIGlzbnQndCBuZWVkZWQuICovXG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdH1cbn1cblxuLyogVXRpbGl0aWVzICovXG5cbi5oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGVza3RvcC1vbmx5IHtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCBtYXgtd2lkdGggJHN0b3JlLXZpZXctc3ViLWJwLTMgLSAxICkge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4ubW9iaWxlLW9ubHkge1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0zICkge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4vKiBDb21zdW1lciBzdG9yZSBzdHlsZXMgKi9cblxuLmN0YS1iYW5uZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzRDQ3O1xuXHRwYWRkaW5nOjE1cHggNTBweDtcblx0Y29sb3I6ICNGRkY7XG5cdGZvbnQtd2VpZ2h0OiAyMDA7XG5cdGZvbnQtc2l6ZTogMThweDtcblx0Zm9udC1zaXplOiAxLjEyNXJlbTtcblx0bWFyZ2luOiAtMjBweCAwIDU1cHg7XG5cblx0LmN0YS1tZXNzYWdlIHtcblx0XHRwYWRkaW5nOiA3cHggMHB4IDdweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDo3MCU7XG5cdFx0dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRsZXR0ZXItc3BhY2luZzowLjE0ZW07XG5cdH1cblxuXHQuZGlzY2xhaW1lciB7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdGZvbnQtc2l6ZTogLjYyNXJlbTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0ZXh0LXRyYW5zZm9ybTpub25lO1xuXHRcdG1hcmdpbi10b3A6NXB4O1xuXHR9XG5cblx0LmJ0biB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRsZXR0ZXItc3BhY2luZzogMC4xNGVtO1xuXHRcdHBhZGRpbmc6IDEwcHggMzBweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtY3Jhc2hwbGFuLWNvbnN1bWVyLWNvbG9yO1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRmb250LXNpemU6IDFyZW07XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWF4LXdpZHRoICRzdG9yZS12aWV3LXN1Yi1icC0zICkge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdC5jdGEtbWVzc2FnZSB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0fVxuXG5cdFx0LmJ0biB7XG5cdFx0XHRtYXJnaW4tdG9wOjEwcHg7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCBtaW4td2lkdGggJHN0b3JlLXZpZXctc3ViLWJwLTMgKSB7XG5cdFx0LmJ0biB7XG5cdFx0XHRtYXJnaW46MjBweCAwcHg7XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggMTI5NXB4ICkge1xuXHRcdC5idG4ge1xuXHRcdFx0bWFyZ2luOjEwcHggMHB4O1xuXHRcdH1cblx0fVxufVxuXG4uc3RvcmUtcGxhbnMtdG9nZ2xlIHtcblx0Y29sb3I6ICNGRkYgIWltcG9ydGFudDsgLyogT3ZlcnJpZGUgZGVmYXVsdCBsaW5rIGNvbG9ycyAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGxlZnQ6IDA7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblxuXHRzcGFuIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IDMwcHg7XG5cdH1cblxuXHQmOmJlZm9yZSB7XG5cdFx0QGluY2x1ZGUgZm9udC1hd2Vzb21lLWNvbnRlbnQ7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGZvbnQtc2l6ZTogMS4yNXJlbTtcblxuXHRcdGNvbnRlbnQ6IFwiXFxGMDc4XCI7XG5cdFx0bGVmdDogNXB4O1xuXHRcdG1hcmdpbi10b3A6IC0xMXB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0fVxuXG5cdCYuc3RvcmUtZHJhd2VyLXRvZ2dsZS1leHBhbmRlZCB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcXEYwNzdcIjtcblx0XHR9XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cbn1cblxuLnN0b3JlLXZpZXctZHJhd2VyLWNvbnRlbnQge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTMgKSB7XG5cdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblx0fVxufVxuXG4uc3RvcmUtc3RvcmUtdmlldyB7XG5cdGNvbG9yOiAkc3RvcmUtYm9keS10ZXh0LWNvbG9yO1xuXG5cdGgxIHtcblx0XHRmb250LXNpemU6IDU0cHg7XG5cdFx0Zm9udC1zaXplOiAzLjM3NXJlbTtcblxuXHRcdGZvbnQtd2VpZ2h0OiAxMDA7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCBtYXgtd2lkdGggNjIwcHggKSB7XG5cdFx0XHRmb250LXNpemU6IDI3cHg7XG5cdFx0XHRmb250LXNpemU6IDEuN3JlbTtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCA2MjFweCAxMDI0cHggKSB7XG5cdFx0XHRmb250LXNpemU6IDQwcHg7XG5cdFx0XHRmb250LXNpemU6IDIuNXJlbTtcblx0XHR9XG5cblx0fVxuXG5cdC5zdG9yZS1zZWNvbmRhcnktYnRuIHtcblx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0Zm9udC1zaXplOiAuOTM3NXJlbTtcblx0fVxufVxuXG4uc3RvcmUtc3RvcmUtdmlldy1oZWFkbGluZSB7XG5cdG1hcmdpbjogNTBweCAwIDU1cHg7XG5cdHBhZGRpbmctbGVmdDogMjBweDtcblx0cGFkZGluZy1yaWdodDogMjBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc3RvcmUtcGxhbnMge1xuXHRoMiB7XG5cdFx0Zm9udC1zaXplOiAxOXB4O1xuXHRcdGZvbnQtc2l6ZTogMS4ycmVtO1xuXHRcdGNvbG9yOiAjRkZGO1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0cGFkZGluZzogMTBweDtcblx0fVxufVxuXG4uc3RvcmUtcGxhbnMtcGVyc29uYWwge1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0zICkge1xuXHRcdG1hcmdpbi1yaWdodDogKCAkc3RvcmUtdmlldy1zdWItY29sLXNwYWNpbmcgLyAkc3RvcmUtY29udGVudC13aWR0aCApICogMTAwJTtcblx0fVxufVxuXG4uc3RvcmUtcGxhbnMtZ3JvdXAtc2luZ2xlLFxuLnN0b3JlLXBsYW5zLWdyb3VwLW9ubGluZSB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0zICkge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG59XG5cbi5zdG9yZS1wbGFucy1ncm91cC1zaW5nbGUge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyApIHtcblx0XHR3aWR0aDogKCAkc3RvcmUtdmlldy1zdWItc2luZ2xlLWNvbC13aWR0aCAvICRzdG9yZS1jb250ZW50LXdpZHRoICkgKiAxMDAlO1xuXHR9XG59XG5cbi5zdG9yZS1wbGFucy1ncm91cC1vbmxpbmUge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyApIHtcblx0XHR3aWR0aDogKCAkc3RvcmUtdmlldy1zdWItZG91YmxlLWNvbC13aWR0aCAvICRzdG9yZS1jb250ZW50LXdpZHRoICkgKiAxMDAlO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTMgKCAkc3RvcmUtdmlldy1zdWItYnAtMSAtIDEgKSApIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0d2lkdGg6ICggKCAkc3RvcmUtdmlldy1zdWItZG91YmxlLWNvbC13aWR0aCArICggJHN0b3JlLXZpZXctc3ViLXNpbmdsZS1jb2wtd2lkdGggLyAyICkgKyAkc3RvcmUtdmlldy1zdWItY29sLXNwYWNpbmcgKSAvICRzdG9yZS1jb250ZW50LXdpZHRoICkgKiAxMDAlO1xuXHR9XG5cblx0aDIge1xuXHRcdGJhY2tncm91bmQ6ICM1Njk4MDA7XG5cdH1cblxuXHQuc3RvcmUtcGxhbnMtZmVhdHVyZXMge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0zICggJHN0b3JlLXZpZXctc3ViLWJwLTEgLSAxICkgKSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDI4JTtcblx0XHR9XG5cdH1cbn1cblxuLnN0b3JlLXBsYW5zLWdyb3VwLWJ1c2luZXNzIHtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyAoICRzdG9yZS12aWV3LXN1Yi1icC0xIC0gMSApICkge1xuXHRcdG1hcmdpbi10b3A6IDcwcHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHQuc3RvcmUtcGxhbnMtaGVhZGluZyxcblx0XHQuc3RvcmUtcGxhbnMtZGV0YWlsLFxuXHRcdC5zdG9yZS1wbGFucy1mZWF0dXJlcyB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHR9XG5cblx0XHQuc3RvcmUtcGxhbnMtaGVhZGluZyxcblx0XHQuc3RvcmUtcGxhbnMtZGV0YWlsIHtcblx0XHRcdHdpZHRoOiAyNyVcblx0XHR9XG5cblx0XHQuc3RvcmUtcGxhbnMtZGV0YWlsIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc3RvcmUtYm9yZGVyLWNvbG9yO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6IDA7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDA7XG5cdFx0fVxuXG5cdFx0LnN0b3JlLXBsYW5zLWZlYXR1cmVzIHtcblx0XHRcdGJvcmRlci10b3A6IDA7XG5cdFx0XHR3aWR0aDogNDYlO1xuXHRcdH1cblx0fVxuXG5cdGgyLFxuXHQuc3RvcmUtcGxhbnMtdG9nZ2xlIHNwYW4ge1xuXHRcdGJhY2tncm91bmQ6ICMwMDg3RDE7XG5cdH1cblxuXHQuc3RvcmUtcGxhbnMtaGVhZGluZyB7XG5cdFx0YmFja2dyb3VuZDogIzEyQjVFQTtcblx0fVxuXG5cdC5zdG9yZS1wbGFuLW1pbi1wcmljZS1wcmljZSB7XG5cdFx0cGFkZGluZy10b3A6IDEzcHg7XG5cdH1cbn1cbi5zdG9yZS1wbGFucy1ncm91cC1idXNpbmVzcyAqOjotbW96LXNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQ6cmdiYSgyNiwxODIsMjMyLDAuNzUpO1xuICBcdGNvbG9yOiNGRkY7XG5cdHRleHQtc2hhZG93Om5vbmU7XG59XG4uc3RvcmUtcGxhbnMtZ3JvdXAtYnVzaW5lc3MgKjo6c2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDpyZ2JhKDI2LDE4MiwyMzIsMC43NSk7XG4gIFx0Y29sb3I6I0ZGRjtcblx0dGV4dC1zaGFkb3c6bm9uZTtcbn1cbi5zdG9yZS1wbGFucy1ncm91cC1idXNpbmVzcyAuc3RvcmUtcGxhbnMtaGVhZGluZyAqOjotbW96LXNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuNzUpO1xuICBjb2xvcjpyZ2JhKDI2LDE4MiwyMzIsMSk7XG59XG4uc3RvcmUtcGxhbnMtZ3JvdXAtYnVzaW5lc3MgLnN0b3JlLXBsYW5zLWhlYWRpbmcgKjo6c2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7XG4gIFx0Y29sb3I6cmdiYSgyNiwxODIsMjMyLDEpO1xufVxuXG4uc3RvcmUtcGxhbnMtYnVzaW5lc3Mtcm93LWNvbnRhaW5lciB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0zICggJHN0b3JlLXZpZXctc3ViLWJwLTEgLSAxICkgKSB7XG5cdFx0aGVpZ2h0OiA0ODVweDtcblxuXHRcdC5idXNpbmVzcy1kcmF3ZXItY29udGVudCB7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cbi5zdG9yZS1wbGFucy1vbmxpbmUge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyApIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogNTAlO1xuXHR9XG5cblx0LnN0b3JlLXBsYW5zLXRvZ2dsZSBzcGFuIHtcblx0XHRiYWNrZ3JvdW5kOiAjNTY5ODAwO1xuXHR9XG59XG5cbi5zdG9yZS1wbGFucy1ncm91cC1mcmVlIHtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyAoICRzdG9yZS12aWV3LXN1Yi1icC0xIC0gMSApICkge1xuXHRcdHdpZHRoOiAoICggJHN0b3JlLXZpZXctc3ViLXNpbmdsZS1jb2wtd2lkdGggKyAoICRzdG9yZS12aWV3LXN1Yi1zaW5nbGUtY29sLXdpZHRoIC8gMiApICkgLyAkc3RvcmUtY29udGVudC13aWR0aCApICogMTAwJTtcblx0fVxuXG5cdGgyLFxuXHQuc3RvcmUtcGxhbnMtdG9nZ2xlIHNwYW4ge1xuXHRcdGJhY2tncm91bmQ6ICM3QUI3MDA7XG5cdH1cblxuXHQuc3RvcmUtcGxhbnMtaGVhZGluZyB7XG5cdFx0YmFja2dyb3VuZDogI0E1Q0U1Mjtcblx0fVxuXG5cdC5zdG9yZS1wbGFuLW51bS1jb21wdXRlcnMge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyApIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxufVxuXG4uc3RvcmUtcGxhbnMtb25saW5lLWluZGl2aWR1YWwge1xuXHQuc3RvcmUtcGxhbnMtaGVhZGluZyB7XG5cdFx0YmFja2dyb3VuZDogIzdBQjcwMDtcblx0fVxufVxuXG4uc3RvcmUtcGxhbnMtb25saW5lLWZhbWlseSB7XG5cdC5zdG9yZS1wbGFucy1oZWFkaW5nIHtcblx0XHRiYWNrZ3JvdW5kOiAjN0FCNzAwO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTMgKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjNjNBMDAyO1xuXHRcdH1cblx0fVxuXG5cdC5zdG9yZS1wbGFucy1kZXRhaWwge1xuXHRcdGJvcmRlci1sZWZ0OiBub25lO1xuXHR9XG59XG5cbi5zdG9yZS1wbGFucy1oZWFkaW5nIHtcblxuXHRjb2xvcjogI0ZGRjtcblx0aGVpZ2h0OiA4OHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxcHg7XG5cdHBhZGRpbmc6IDFlbSAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyApIHtcblx0XHRoZWlnaHQ6IDI1MHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdGg0IHtcblxuXHRcdGZvbnQtc2l6ZTogNDBweDtcblx0XHRmb250LXNpemU6IDIuNXJlbTtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTMgKSB7XG5cdFx0XHRmb250LXNpemU6IDQ4cHg7XG5cdFx0XHRmb250LXNpemU6IDNyZW07XG5cblx0XHRcdHBhZGRpbmc6IDIwcHggMCAxNnB4O1xuXHRcdH1cblx0fVxuXG5cdC5zdG9yZS1wbGFuLW51bS1jb21wdXRlcnMge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0zICkge1xuXHRcdFx0Zm9udC1zaXplOiAxOXB4O1xuXHRcdFx0Zm9udC1zaXplOiAxLjJyZW07XG5cdFx0XHRib3R0b206IDE2cHg7XG5cdFx0XHRib3R0b206IDFyZW07XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cbi5zdG9yZS1wbGFucy1kZXRhaWwsXG4uc3RvcmUtcGxhbnMtZmVhdHVyZXMge1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0yICRzdG9yZS12aWV3LXN1Yi1icC0zIC0gMSApIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogNTAlO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTMgKSB7XG5cdFx0Ym9yZGVyLWxlZnQ6ICRzdG9yZS12aWV3LXN1Yi1ib3JkZXItc3R5bGU7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAkc3RvcmUtdmlldy1zdWItYm9yZGVyLXN0eWxlO1xuXHR9XG59XG5cbi5zdG9yZS1wbGFucy1kZXRhaWwge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmc6IDJlbSAyMHB4IDAgMjNweDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyApIHtcblx0XHRoZWlnaHQ6IDI5MHB4O1xuXHRcdHBhZGRpbmctdG9wOiAyZW07XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0LnN0b3JlLWRpc2NvdW50LXByZXNlbnQgJiB7XG5cdFx0XHRoZWlnaHQ6IDMyNXB4O1xuXHRcdFx0cGFkZGluZy10b3A6IDFlbTtcblx0XHR9XG5cdH1cblxuXHRvbCB7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR3aWR0aDogMjM1cHg7XG5cdH1cblxuXHQuc3RvcmUtcGxhbnMtZGV0YWlsLWJ0biB7XG5cdFx0Ym90dG9tOiA5NnB4O1xuXHRcdGJvdHRvbTogNnJlbTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0yICkge1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTMgKSB7XG5cdFx0XHRib3R0b206IDMycHg7XG5cdFx0XHRib3R0b206IDJyZW07XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cblxuLnN0b3JlLXBsYW5zLWZlYXR1cmVzIHtcblxuXHRwYWRkaW5nOiAyZW0gMTVweCAyZW0gMzBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0yICRzdG9yZS12aWV3LXN1Yi1icC0zIC0gMSApIHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkc3RvcmUtYm9yZGVyLWNvbG9yO1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGhlaWdodDogODAlO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMTAlO1xuXHRcdFx0d2lkdGg6IDFweDtcblx0XHR9XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyApIHtcblx0XHRib3JkZXItYm90dG9tOiAkc3RvcmUtdmlldy1zdWItYm9yZGVyLXN0eWxlO1xuXHRcdGJvcmRlci10b3A6ICRzdG9yZS12aWV3LXN1Yi1ib3JkZXItc3R5bGU7XG5cdFx0cGFkZGluZzogMWVtIDVweCAxZW0gMTBweDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0zICRzdG9yZS12aWV3LXN1Yi1icC0xIC0gMSApIHtcblx0XHRoZWlnaHQ6IDQ1NXB4O1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTEgKSB7XG5cdFx0aGVpZ2h0OiA1MjVweDtcblx0fVxuXG5cdHVsIHtcblx0XHRAaW5jbHVkZSBsaXN0LXJlc2V0O1xuXHR9XG5cblx0bGkge1xuXHRcdG1hcmdpbi1ib3R0b206IC45ZW07XG5cdFx0cGFkZGluZy1sZWZ0OiAyNXB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIGZvbnQtYXdlc29tZS1jb250ZW50O1xuXHRcdFx0Y29udGVudDogXCJcXGYwMGNcIjtcblx0XHRcdGNvbG9yOiAkc3RvcmUtYm9yZGVyLWNvbG9yO1xuXHRcdFx0Zm9udC1zaXplOiAxLjJlbTtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5zdG9yZS1wbGFucy1ncm91cC1zaW5nbGUge1xuXG5cdC5zdG9yZS1wbGFucy1kZXRhaWwge1xuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAyMXB4O1xuXHRcdFx0Zm9udC1zaXplOiAxLjRyZW07XG5cdFx0XHRjb2xvcjogI0FBQURBRjtcblx0XHRcdG1hcmdpbjogMWVtIDA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS12aWV3LXN1Yi1icC0zICkge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA0MHB4O1xuXG5cdFx0XHRcdC5zdG9yZS1kaXNjb3VudC1wcmVzZW50ICYge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDkwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuc3RvcmUtcGxhbnMtbW9iaWxlLWhlYWRsaW5lIHtcblx0XHRmb250LXNpemU6IDIzcHg7XG5cdFx0Zm9udC1zaXplOiAxLjRyZW07XG5cdFx0Y29sb3I6ICRicmFuZC1jcmFzaHBsYW4tY29uc3VtZXItY29sb3I7XG5cdH1cbn1cblxuLnN0b3JlLXBsYW4tbWluLXByaWNlIHtcblxuXHRwYWRkaW5nOiAwIDJlbTtcblxuXHQuc3RvcmUtcGxhbi1taW4tcHJpY2UtaW50cm8ge1xuXHRcdGZvbnQtc2l6ZTogMjNweDtcblx0XHRmb250LXNpemU6IDEuNHJlbTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuXG5cdC5zdG9yZS1wbGFuLW1pbi1wcmljZS1wcmljZSB7XG5cdFx0Zm9udC1zaXplOiAzM3B4O1xuXHRcdGZvbnQtc2l6ZTogMi4xcmVtO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjU7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHQuc3RvcmUtcGxhbi1taW4tcHJpY2UtZGV0YWlsIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdH1cbn1cblxuXG4uc3RvcmUtc3RvcmUtdmlldy1jb21wYXJlIHtcblx0bWFyZ2luOiAyNXB4IDAgNjBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc3RvcmUtc3RvcmUtdmlldy1zdWJzY3JpcHRpb25zLXBvc3RzY3JpcHQge1xuXHRmb250LXNpemU6IC45ZW07XG5cdG1hcmdpbjogMWVtIDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogQWRkaXRpb25hbCBPcHRpb25zL0ZBUXMgdGFiICovXG5cbi5zdG9yZS1zdG9yZS12aWV3LXNlZWQtcHJpY2Uge1xuXG5cdG1hcmdpbi1ib3R0b206IDFlbTtcblxuXHQvKiBBY3R1YWwgUHJpY2UgRWxlbWVudCAqL1xuXHQuc3RvcmUtY3VycmVuY3ktY29tcG9uZW50IHtcblx0XHRmb250LXNpemU6IDQ4cHg7XG5cdFx0Zm9udC1zaXplOiAzcmVtO1xuXHRcdGNvbG9yOiAjMDAwO1xuXHR9XG5cblx0LmJ0biB7XG5cdFx0Zm9udC1zaXplOiAxN3B4O1xuXHRcdGZvbnQtc2l6ZTogMS4xcmVtO1xuXG5cdFx0bGVmdDogMTBweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAtMTFweDtcblx0fVxuXG5cdHAge1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRmb250LXNpemU6IC43NXJlbTtcblxuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7IC8vVG9vIHNtYWxsIGZvciBsaWdodCBmb250IHdlaWdodFxuXHR9XG59XG5cbi5zdG9yZS1zdG9yZS12aWV3LXRhYnMge1xuXHRwYWRkaW5nLWJvdHRvbTogM2VtO1xuXG5cdGgzIHtcblx0XHRmb250LXNpemU6IDQwcHg7XG5cdFx0Zm9udC1zaXplOiAyLjVyZW07XG5cblx0XHRjb2xvcjogJGJyYW5kLWNyYXNocGxhbi1jb25zdW1lci1jb2xvcjtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdG1hcmdpbjogMCAwIC41ZW07XG5cdH1cblxuXHRwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdH1cbn1cblxuLnN0b3JlLXN0b3JlLXZpZXctdGFiLWhlYWRlcnMge1xuXHRtYXJnaW4tYm90dG9tOiA2NXB4O1xufVxuXG4uc3RvcmUtc3RvcmUtdmlldy10YWItaGVhZGVyIHtcblx0Zm9udC1zaXplOiAzM3B4O1xuXHRmb250LXNpemU6IDIuMXJlbTtcblx0Ym9yZGVyLWJvdHRvbTogJHN0b3JlLXZpZXctdGFiLWJvcmRlci1zaXplIHNvbGlkICNDRUQ1REM7XG5cdGNvbG9yOiAjODA4NDg4O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGZsb2F0OiBsZWZ0O1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcblx0cGFkZGluZy1ib3R0b206IDE1cHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR3aWR0aDogNTAlO1xuXG5cdCYuc2VsZWN0ZWQge1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6ICM2NjcyNzg7XG5cdFx0Y29sb3I6ICM2NjcyNzg7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdGJvcmRlci1sZWZ0OiAkc3RvcmUtdmlldy10YWItYXJyb3ctc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlci1yaWdodDogJHN0b3JlLXZpZXctdGFiLWFycm93LXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3JkZXItdG9wOiAkc3RvcmUtdmlldy10YWItYXJyb3ctc2l6ZSBzb2xpZCAjNjY3Mjc4O1xuXHRcdFx0Ym90dG9tOiAtICggJHN0b3JlLXZpZXctdGFiLWFycm93LXNpemUgKyAkc3RvcmUtdmlldy10YWItYm9yZGVyLXNpemUpO1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXHR9XG59XG5cbi5zdG9yZS1zdG9yZS12aWV3LXRhYi1hZGRpdGlvbmFsLWNvbCB7XG5cblx0cGFkZGluZzogMCAzMHB4O1xuXG5cdC5zdG9yZS1zdG9yZS12aWV3LXRhYi13cmFwcGVyIHtcblx0XHRib3JkZXItdG9wOiAkc3RvcmUtdmlldy1hZGRpdGlvbmFsLWJvcmRlci1zdHlsZTtcblx0XHRwYWRkaW5nOiAzMHB4IDA7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyApIHtcblx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG5cdCY6Zmlyc3QtY2hpbGQgLnN0b3JlLXN0b3JlLXZpZXctdGFiLXdyYXBwZXIge1xuXHRcdGJvcmRlci10b3A6IG5vbmU7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyApIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRwYWRkaW5nOiAwIDMlO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTEgKSB7XG5cdFx0Ym9yZGVyLWxlZnQ6ICRzdG9yZS12aWV3LWFkZGl0aW9uYWwtYm9yZGVyLXN0eWxlO1xuXHRcdHdpZHRoOiA1MCU7XG5cblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci1sZWZ0OiAwO1xuXHRcdH1cblx0fVxufVxuXG4uc3RvcmUtc3RvcmUtdmlldy1yZXN0b3JlIHtcblx0aDMge1xuXHRcdGNvbG9yOiAjQzUwMDAwO1xuXHR9XG59XG5cbi5zdG9yZS1zdG9yZS12aWV3LWdpZnQge1xuXHRoMyB7XG5cdFx0Zm9udC1zaXplOiAzNXB4O1xuXHRcdGZvbnQtc2l6ZTogMi4ycmVtO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTMgKCAkc3RvcmUtdmlldy1zdWItYnAtMSAtIDEgKSApIHtcblx0XHRib3JkZXItdG9wOiAkc3RvcmUtdmlldy1hZGRpdGlvbmFsLWJvcmRlci1zdHlsZTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0cGFkZGluZy1ib3R0b206IDMwcHg7XG5cdFx0cGFkZGluZy10b3A6IDU1cHg7XG5cdFx0bWFyZ2luLXRvcDogMzBweDtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdC5zdG9yZS1naWZ0LWludHJvLFxuXHRcdC5zdG9yZS1naWZ0LXN1YnNjcmlwdGlvbnMge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdH1cblxuXHRcdC5zdG9yZS1naWZ0LWludHJvIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDMlO1xuXHRcdH1cblxuXHRcdC5zdG9yZS1naWZ0LXN1YnNjcmlwdGlvbnMge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAzJTtcblx0XHR9XG5cdH1cbn1cblxuLnN0b3JlLXJlc3RvcmUtYnRuLFxuLnN0b3JlLWdpZnQtc3Vic2NyaXB0aW9ucy1idG4ge1xuXG5cdHBhZGRpbmctdG9wOiAzMHB4O1xuXG5cdHAge1xuXHRcdG1hcmdpbi10b3A6IDFlbTtcblx0fVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtdmlldy1zdWItYnAtMyAoICRzdG9yZS12aWV3LXN1Yi1icC0xIC0gMSApICkge1xuXHQuc3RvcmUtcmVzdG9yZS1pbnRybyxcblx0LnN0b3JlLXJlc3RvcmUtYnRuLFxuXHQuc3RvcmUtZ2lmdC1zdWJzY3JpcHRpb25zLWludHJvLFxuXHQuc3RvcmUtZ2lmdC1zdWJzY3JpcHRpb25zLWJ0biB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDUwJTtcblx0fVxuXG5cdC5zdG9yZS1yZXN0b3JlLWludHJvLFxuXHQuc3RvcmUtZ2lmdC1zdWJzY3JpcHRpb25zLWludHJvIHtcblx0XHRwYWRkaW5nLXJpZ2h0OiAzJTtcblx0fVxuXG5cdC5zdG9yZS1yZXN0b3JlLWJ0bixcblx0LnN0b3JlLWdpZnQtc3Vic2NyaXB0aW9ucy1idG4ge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdC5idG4ge1xuXHRcdFx0d2lkdGg6IDIyMHB4O1xuXHRcdH1cblx0fVxufVxuXG4uc3RvcmUtc3RvcmUtdmlldy1hZGRpdGlvbmFsLW1vYmlsZSxcbi5zdG9yZS1zdG9yZS12aWV3LWZhcS1tb2JpbGUge1xuXHRoMiB7XG5cdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdGZvbnQtc2l6ZTogMS4zNzVyZW07XG5cdFx0YmFja2dyb3VuZDogI0NFRDVEQztcblx0XHRjb2xvcjogIzgwODQ4ODtcblx0XHRoZWlnaHQ6IDY5cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMXB4O1xuXHRcdHBhZGRpbmc6IDFlbSAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHQuc3RvcmUtcGxhbnMtdG9nZ2xlIHNwYW4ge1xuXHRcdGJhY2tncm91bmQ6ICM4MDg0ODg7XG5cdH1cbn1cblxuLy8gT3ZlcnJpZGUgbGF5b3V0IGZvciBBVSBzdG9yZSBzaW5jZSB0aGUgbnVtYmVyIG9mIGFkZGl0aW9uYWwgcHJvZHVjdHMgaXMgZGlmZmVyZW50XG4ucmVnaW9uLWF1bnoge1xuXHQuc3RvcmUtc3RvcmUtdmlldy10YWItYWRkaXRpb25hbC1jb2wge1xuXHRcdGJvcmRlci1sZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLXZpZXctc3ViLWJwLTMgKSB7XG5cdFx0LnN0b3JlLWdpZnQtc3Vic2NyaXB0aW9ucy1pbnRybyxcblx0XHQuc3RvcmUtZ2lmdC1zdWJzY3JpcHRpb25zLWJ0biB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVxuXG5cdFx0LnN0b3JlLWdpZnQtc3Vic2NyaXB0aW9ucy1idG4ge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdH1cblx0fVxufVxuXG4vKiBGQVFzICovXG5cbi5mYXEtcSB7XG5cdGZvbnQtc2l6ZTogMThweDtcblx0Zm9udC1zaXplOiAxLjEyNXJlbTtcblx0Y29sb3I6ICM2NjcyNzg7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZmFxLWEge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGZvbnQtc2l6ZTogMXJlbTtcblx0Y29sb3I6ICM4MDg0ODg7XG5cdG1hcmdpbjogMCAwIDFlbTtcblx0cGFkZGluZzogMWVtIDhweDtcbn1cbi5mYXEge1xuXHRib3JkZXItYm90dG9tOiAkc3RvcmUtdmlldy1hZGRpdGlvbmFsLWJvcmRlci1zdHlsZTtcblx0bWFyZ2luLWJvdHRvbTogMS41ZW07XG59XG4uc3RvcmUtc3RvcmUtdmlldy1mYXEge1xuXG5cdHVsIHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdHdpZHRoOiA0OCU7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdH1cbn1cbi5zdG9yZS1zdG9yZS12aWV3LWZhcS1tb2JpbGUge1xuXHQuc3RvcmUtc3RvcmUtdmlldy1mYXEge1xuXHRcdHBhZGRpbmc6IDI1cHg7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWF4LXdpZHRoIDYyMHB4ICkge1xuXHRcdHVsIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0fVxuXHR9XG5cdC5mYXEge1xuXG5cdFx0cGFkZGluZy1sZWZ0OiAyJTtcblx0XHRwYWRkaW5nLXJpZ2h0OiAyJTtcblxuXHRcdC8qR3JpZCBCcmVha3BvaW50ICovXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCggbWF4LXdpZHRoIDYyMHB4ICkge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogJHN0b3JlLXZpZXctYWRkaXRpb25hbC1ib3JkZXItc3R5bGU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdFx0fVxuXHR9XG5cblx0LmZhcS1hIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbn1cblxuLmRpc2NvdW50LXByb21vIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRjb2xvcjogJGJyYW5kLWNvZGU0Mi1jb2xvcjtcblx0bWFyZ2luLXRvcDogMmVtO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6ICMzMzNENDc7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCA3MDBweCl7XG5cdFx0bWFyZ2luLXRvcDogNDBweDtcblx0fVxuXG5cdC5tb2JpbGUgICYge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoIDQ0NXB4KXtcblx0XHRcdG1hcmdpbi10b3A6IDEwMHB4O1xuXHRcdH1cblx0fVxufVxuXG4uc3RvcmUtc3Vic2NyaXB0aW9uLXByb2R1Y3Qtb3JpZ2luYWwtcHJpY2Uge1xuXHRmb250LXNpemU6IDE4cHg7XG5cdGZvbnQtc2l6ZTogMS4xMjVyZW07XG5cdGNvbG9yOiAjQzUwMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG5cblx0LnN0b3JlLXBsYW5zLXBsYW4tbGlzdCAmIHtcblx0XHRtYXJnaW4tbGVmdDogNzVweDtcblx0fVxuXG5cdC5zdG9yZS1zdWJzY3JpcHRpb24tcHJvZHVjdC1wcmljZSAmLFxuXHQuc3RvcmUtZ2lmdC1zdWJzY3JpcHRpb24tcHJpY2UgJiB7XG5cdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdGZvbnQtc2l6ZTogMS4zNzVyZW07XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJjcFwiO1xuQGltcG9ydCBcInN0b3JlL3N0b3JlLXZhcnNcIjtcblxuLyogQ29uc3VtZXIgU3RvcmUgQ2hlY2tvdXQgUHJvY2VzcyBWaWV3cyAqL1xuXG4uY2hlY2tvdXQtcGFnZSB7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLW1vYmlsZS1icCApIHtcblx0XHQucGFnZS13cmFwcGVyIHtcblxuXHRcdFx0Jixcblx0XHRcdC5tYWluLWNvbnRlbnQge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkc3RvcmUtY2hlY2tvdXQtcGFnZS1iZy1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQubWFpbi1oZWFkZXIge1xuXHRcdFx0bGVmdDogMDsgLyogTmVlZGVkIHRvIG92ZXJyaWRlIG1haW4gbmF2IHNoaWZ0aW5nICovXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXG5cdFx0Lm1haW4taGVhZGVyLWJnIHtcblx0XHRcdGJhY2tncm91bmQ6ICNGRkYgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQubWFpbi1oZWFkZXItYmcge1xuXHRcdEBpbmNsdWRlIGJveC1zaGFkb3coIG5vbmUgKTtcblx0fVxuXG5cdC5oZWFkZXItY2FydC13aWRnZXQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuXG4uc3RvcmUtY2hlY2tvdXQtaGVhZGVyIHtcblxuXHRtYXJnaW46IDI1cHggYXV0byA0MHB4O1xuXHRtYXgtd2lkdGg6IDk4MHB4O1xuXG5cdGgxIHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgNDZweCApO1xuXG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0bWFyZ2luLXRvcDogNjBweDtcblxuXHRcdGgxIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdC5hdS1jdXJyZW5jeS1ub3RpY2Uge1xuXHRcdGNsZWFyOiBsZWZ0O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBhZGRpbmctdG9wOiAyZW07XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG59XG5cbi5zdG9yZS1jaGVja291dC1tb2JpbGUtaGVhZGxpbmUge1xuXHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMzZweCApO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uc3RvcmUtY2hlY2tvdXQtY29udGVudCB7XG5cdGJhY2tncm91bmQ6ICNGRkY7XG5cdG1hcmdpbjogMCBhdXRvIDEyMHB4O1xuXHRtYXgtd2lkdGg6IDk4MHB4O1xuXHQuYmxhbmstY2FydCB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cdC5lcnJvciB7XG5cdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGNvbG9yOiAjRDYwMDE2O1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0cGFkZGluZzogMjVweCAzMHB4O1xuXHR9XG59XG5cbi5zdG9yZS1wdXJjaGFzZS1hZ3JlZW1lbnQge1xuXHRtYXJnaW4tdG9wOiAyZW07XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXG5cdGxhYmVsIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cblxuXHRwIHtcblx0XHRtYXJnaW4tdG9wOiAuNWVtO1xuXHR9XG59XG5cbi5zdG9yZS1jaGVja291dC1hY3Rpb25zIHtcblx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDE3cHggKTtcblx0bWFyZ2luLXRvcDogMmVtO1xuXG5cdC5idG4ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIDQ1MHB4ICkge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXHR9XG5cblx0LnN0b3JlLWNoZWNrb3V0LWFjdGlvbi1iYWNrIHtcblx0XHRmbG9hdDogbGVmdDtcblx0fVxuXG5cdC5zdG9yZS1jaGVja291dC1hY3Rpb24tYmFjay10by1zdG9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0fVxuXHR9XG59XG5cbi5zdG9yZS1wYXltZW50LXZpZXcge1xuXHRjb2xvcjogIzY3Njc2NztcblxuXHQuc3RvcmUtY2hlY2tvdXQtY29udGVudCBoMiB7XG5cdFx0QGluY2x1ZGUgcmVtKCBmb250LXNpemUsIDIycHggKTtcblxuXHRcdGNvbG9yOiAkYnJhbmQtY3Jhc2hwbGFuLWNvbnN1bWVyLWNvbG9yO1xuXHRcdG1hcmdpbjogMCAwIDFlbTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0XHRjb2xvcjogIzY3Njc2Nztcblx0XHR9XG5cblx0fVxuXG5cdGZvcm0ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG5cdC5yb3ctZmx1aWQge1xuXHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXHR9XG59XG5cbi5zdG9yZS1jb25maXJtYXRpb24tdmlldyB7XG5cdGNvbG9yOiAjNjc2NzY3O1xuXG5cdC5zdG9yZS1jaGVja291dC1jb250ZW50IGgyIHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMjJweCApO1xuXG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRtYXJnaW46IDAgMCAxZW07XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG59XG5cbi5zdG9yZS1jaGVja291dC1zaGlwcGluZy1mb3JtIHtcblx0bWFyZ2luLXRvcDogMmVtO1xufVxuXG4vKiBGb3JtIFN0eWxlcyAqL1xuLmZvcm0tZmllbGQge1xuXG5cdG1hcmdpbi1ib3R0b206IDFlbTtcblxuXHRsYWJlbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogLjI1ZW07XG5cblx0XHQmW2Zvcl0ge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdH1cblxuXHRcdCYuaW5saW5lIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRcdG1hcmdpbi1sZWZ0OiA1cHg7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdH1cblx0fVxuXG5cdHNlbGVjdCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHRpbnB1dFt0eXBlPVwidGV4dFwiXSxcblx0aW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuXHR0ZXh0YXJlYSB7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyggNnB4ICk7XG5cblx0XHRib3JkZXI6IDFweCBzb2xpZCAjQ0NENEQ1O1xuXHRcdHBhZGRpbmc6IDJweCAuNWVtO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0dGV4dGFyZWEge1xuXHRcdHJlc2l6ZTogdmVydGljYWw7XG5cdH1cbn1cblxuLmZvcm0tZmllbGQtaGVscCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tdG9wOiAuNWVtO1xuXHRmb250LXNpemU6IC43NWVtO1xufVxuXG4uc3RvcmUtcGF5bWVudC1mb3JtLXBob25lLWZpZWxkIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcblx0d2lkdGg6IDUwJTtcbn1cblxuLyogUmVjZWlwdCBWaWV3ICovXG5cbi5zdG9yZS1yZWNlaXB0LXZpZXcge1xuXHQuc3RvcmUtcmVjZWlwdC1wcmludC1idG4ge1xuXHRcdGZsb2F0OiByaWdodDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoIG1heC13aWR0aCAkc3RvcmUtbW9iaWxlLWJwIC0gMSApIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi5zdG9yZS1yZWNlaXB0LXJlY2lwaWVudCB7XG5cdEBpbmNsdWRlIHJlbSggZm9udC1zaXplLCAxNnB4ICk7XG5cblx0Y29sb3I6ICRzdG9yZS1yZWNlaXB0LXRleHQtY29sb3I7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRtYXJnaW4tYm90dG9tOiAyZW07XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLW1vYmlsZS1icCApIHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMTNweCApO1xuXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG59XG5cbi5zdG9yZS1yZWNlaXB0LWhlYWRpbmcge1xuXHRjb2xvcjogJHN0b3JlLXJlY2VpcHQtdGV4dC1jb2xvcjtcblx0bWFyZ2luLWJvdHRvbTogMmVtO1xuXG5cdGgyIHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgNDJweCApO1xuXG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLW1vYmlsZS1icCApIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0d2lkdGg6IDE3NXB4O1xuXG5cdFx0aDIge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMTJweCApO1xuXHRcdH1cblx0fVxufVxuXG4uc3RvcmUtcmVjZWlwdC1uZXcsXG4uc3RvcmUtcmVjZWlwdC1leGlzdGluZyB7XG5cblx0bWFyZ2luLXRvcDogMmVtO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoICRzdG9yZS1tb2JpbGUtYnAgKSB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDUwJTtcblx0fVxuXG5cdGgzIHtcblx0XHRAaW5jbHVkZSByZW0oIGZvbnQtc2l6ZSwgMzJweCApO1xuXG5cdFx0Y29sb3I6ICM2NjcyNzg7XG5cdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRtYXJnaW46IDAgMCAuNWVtO1xuXHR9XG5cblx0b2wge1xuXHRcdEBpbmNsdWRlIGxpc3QtcmVzZXQ7XG5cblx0XHRsaSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXHR9XG5cblx0LmxpLW9yZGluYWwge1xuXHRcdGNvbG9yOiAkYnJhbmQtY3Jhc2hwbGFuLWNvbnN1bWVyLWNvbG9yO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0fVxuXG5cdC5saS1jb250ZW50IHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZy1sZWZ0OiAyNXB4O1xuXHR9XG59XG5cbi5zdG9yZS1yZWNlaXB0LW5ldyB7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLW1vYmlsZS1icCApIHtcblxuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNCREM3Q0E7XG5cdFx0cGFkZGluZzogMCA2JSAwIDIlO1xuXG5cdFx0aDMge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdH1cblx0fVxuXG5cdC5zdG9yZS1yZWNlaXB0LWRvd25sb2FkIHtcblx0XHRtYXJnaW46IDJlbSAwO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufVxuXG4uc3RvcmUtcmVjZWlwdC1leGlzdGluZyB7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCggJHN0b3JlLW1vYmlsZS1icCApIHtcblx0XHRwYWRkaW5nOiAwIDIlIDAgNiU7XG5cdH1cbn1cblxuLnN0b3JlLXJlY2VpcHQtbGljZW5zZXMge1xuXG5cdHVsIHtcblx0XHRAaW5jbHVkZSBsaXN0LXJlc2V0O1xuXHR9XG59XG5cbi5zdG9yZS1yZWNlaXB0LWxpY2Vuc2Uge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjRDZENkQ2O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zdG9yZS1yZWNlaXB0LWxpY2Vuc2UtcHJvZHVjdCB7XG5cdGJhY2tncm91bmQ6ICNFQkVDRUQ7XG5cdGNvbG9yOiAjNjc2NzY3O1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogMWVtO1xufVxuXG4uc3RvcmUtcmVjZWlwdC1saWNlbnNlLWtleSB7XG5cdGNvbG9yOiAjNDU0NTQ1O1xuXHRwYWRkaW5nOiAxZW07XG59XG5cbi5zdG9yZS1yZWNlaXB0LWxpY2VuY2Utbm90aWNlIHtcblxuXHRtYXJnaW4tYm90dG9tOiAxZW07XG5cblx0c3BhbiB7XG5cdFx0Y29sb3I6ICNFMzFDMjQ7XG5cdH1cbn1cblxuLmdpZnQtbWVtby1zdW1tYXJ5IHtcblx0bWFyZ2luLWJvdHRvbTogMWVtO1xuXHRwYWRkaW5nLWxlZnQ6IDEuMjUwZW07XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLy8gZm9ybXMgc3R5bGVzXG5mb3JtIHtcblx0aW5wdXQge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwgMC4yKTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjI1cyBlYXNlLWluLW91dCk7XG5cdFx0Ly8gdmFsaWQgaW5wdXQgc3RhdGVcblx0XHQmOmZvY3VzIHtcblx0XHRcdEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDVweCByZ2JhKDEyMiwxODMsMzQsIDAuNSkpO1xuXHRcdFx0Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyMiwxODMsMzQsIDAuMyk7XG5cdFx0fVxuXHRcdC8vIGludmFsaWQgaW5wdXQgc3RhdGVcblx0XHQmLm5nLWludmFsaWQubmctZGlydHkge1xuXHRcdFx0QGluY2x1ZGUgYm94LXNoYWRvdygwIDAgNXB4IHJnYmEoMjI1LDAsMjcsIDAuNSkpO1xuXHRcdFx0Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIyNSwwLDI3LCAwLjgpO1xuXHRcdH1cblx0fVxuXG59XG5cbi5zdG9yZS1wdXJjaGFzZS1hdXRvcmVuZXctZGlzY2xvc3VyZSB7XG5cdGZvbnQtc2l6ZTogMS4xNWVtO1xuXHRwYWRkaW5nOiAxZW0gMDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCAkc3RvcmUtbW9iaWxlLWJwICkge1xuXHRcdHBhZGRpbmctbGVmdDogNTAlO1xuXHR9XG59IiwiQG1lZGlhIHByaW50IHtcblx0Lm1haW4tbmF2LCAudmlzdWFsbHloaWRkZW4sIC5tYWluLWhlYWRlci1jb250ZW50LCAubGVnYWN5LWZvb3Rlcixcblx0LnN0b3JlLWNoZWNrb3V0LWhlYWRlciwgLm1haW4taGVhZGVyLWJ1dHRvbnMsIC5tYWluLWhlYWRlci1sb2dvOmFmdGVyLCAubWFpbi1oZWFkZXItbG9nby1tb2JpbGUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQjbWFpbkhlYWRlciwgLm1haW4taGVhZGVyLWNvbnRlbnQge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXHQubWFpbi1oZWFkZXItbG9nbyBpbWd7XG5cdFx0bWFyZ2luLWxlZnQ6IDJlbTtcblx0fVxuXHQjbWFpbkhlYWRlciB7XG5cdFx0bWFyZ2luLXRvcDogMmVtO1xuXHR9XG5cdGJvZHkge1xuXHRcdGZvbnQtZmFtaWx5OiBcInByb3hpbWEtbm92YVwiLCBzYW5zLXNlcmlmO1xuXHRcdGxpbmUtaGVpZ2h0OiAxZW07XG5cdFx0d2lkdGg6IDkwMHB4O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHR9XG5cdC5zdG9yZS1yZWNlaXB0LWhlYWRpbmcge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHR3aWR0aDogMzAwcHg7XG5cdH1cblx0LnN0b3JlLW9yZGVyLXN1bW1hcnktaW5mbyB7XG5cdFx0d2lkdGg6IDMwMHB4O1xuXHRcdHBhZGRpbmctdG9wOiAxMXB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDFlbTtcblx0fVxuXHQuc3RvcmUtcmVjZWlwdC1yZWNpcGllbnQge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXHQuc3RvcmUtb3JkZXItc3VtbWFyeS1pbmZvIHAge1xuXHRcdG1hcmdpbjogNXB4O1xuXHR9XG5cdC5zdG9yZS1vcmRlci1zdW1tYXJ5LXBheW1lbnQtYWRkcmVzcywgLnN0b3JlLW9yZGVyLXN1bW1hcnktc2hpcHBpbmctYWRkcmVzcyB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDMwMHB4O1xuXHR9XG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnkge1xuXHRcdHBhZGRpbmctdG9wOiAxZW07XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cblx0LnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tY29sIHtcblx0XHR3aWR0aDogMTYlO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLWNvbC1sYWJlbCwgLnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tcm93IHtcblx0XHRwYWRkaW5nLXJpZ2h0OiAuNWVtO1xuXHR9XG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLXF0eSB7XG5cdFx0d2lkdGg6IDclO1xuXHR9XG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLWdyb3VwLnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0taW5mbyB7XG5cdFx0d2lkdGg6IDYwJTtcblx0XHRmbG9hdDogbGVmdDtcblx0fVxuXHQuc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1jb2wtbGFiZWwge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdHBhZGRpbmctYm90dG9tOiAzcHg7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG5cdH1cblx0LnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tY29sLWxhYmVsLCAuc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1yb3csIC5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLWRlc2NyaXB0aW9uIHtcblx0XHRwYWRkaW5nLWxlZnQ6IC41ZW07XG5cdH1cblxuXHQuc3RvcmUtY2FydC1zdW1tYXJ5LXRvdGFscyB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0bWFyZ2luLWxlZnQ6IDU0MHB4O1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IC41ZW07XG5cdFx0cGFkZGluZy10b3A6IDFlbTtcblx0fVxuXHQuc3RvcmUtY2FydC1zdW1tYXJ5LXRvdGFscyBkaXYgZGl2IHtcblx0XHR3aWR0aDogNTBweDtcblx0fVxuXHQuc3RvcmUtY2FydC1zdW1tYXJ5LXRvdGFsIHtcblx0XHRsaW5lLWhlaWdodDogMS42ZW07XG5cdH1cblx0LnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tcm93IHtcblx0XHRsaW5lLWhlaWdodDogMS42ZW07XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0fVxuXHQgLnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tZGVzY3JpcHRpb24sIC5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLWNvbC1sYWJlbCB7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNmVtO1xuXHR9XG5cblx0LnN0b3JlLWNhcnQtc3VtbWFyeS1saW5lLWl0ZW0tY29sLWxhYmVsIHtcblx0XHRwYWRkaW5nLXRvcDogLjNlbTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHR9XG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLWdyb3VwOmZpcnN0LWNoaWxkIHtcblx0XHQuc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1jb2wtbGFiZWwge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuXHRcdH1cblx0fVxuXG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktbGluZS1pdGVtLWNvbDpsYXN0LWNoaWxkIHtcblx0XHQuc3RvcmUtY2FydC1zdW1tYXJ5LWxpbmUtaXRlbS1jb2wtbGFiZWwge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcblx0XHR9XG5cdH1cblxuXHQuc3RvcmUtY2FydC1zdW1tYXJ5LXRvdGFsLnN0b3JlLWNhcnQtc3VtbWFyeS10b3RhbC1zdWJ0b3RhbCBkaXYsXG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktdG90YWwuc3RvcmUtY2FydC1zdW1tYXJ5LXRvdGFsLXRheCBkaXYsXG5cdC5zdG9yZS1jYXJ0LXN1bW1hcnktdG90YWwuc3RvcmUtY2FydC1zdW1tYXJ5LXRvdGFsLXRvdGFsIGRpdiB7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHR9XG5cdHVsIHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXG5cblx0YSB7XG5cdFx0Zm9udC1zaXplOiAwO1xuXHR9XG5cdGE6YWZ0ZXIge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRjb250ZW50OiBhdHRyKGhyZWYpO1xuXHR9XG5cdC5tYWluLWhlYWRlci1sb2dvOmFmdGVyLFxuXHQuYzQyLXByb2R1Y3QtaGVhZGVyLWxvZ286YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHR9XG5cdGRpdi5zdG9yZS1vcmRlci1zdW1tYXJ5LWluZm8ge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHR9XG5cdC5zdG9yZS1vcmRlci1zdW1tYXJ5LWluZm8gcCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdCY6Zmlyc3QtY2hpbGQgc3Bhbntcblx0XHRcdHBhZGRpbmctdG9wOiAuNWVtO1xuXHRcdH1cblx0XHQmOmxhc3QtY2hpbGQgc3Bhbntcblx0XHRcdHBhZGRpbmctYm90dG9tOiAuNWVtO1xuXHRcdH1cblx0fVxuXHQuc3RvcmUtb3JkZXItc3VtbWFyeS1sYWJlbCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogZ3JheTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bWluLXdpZHRoOiA4LjVlbTtcblx0XHRsaW5lLWhlaWdodDogMS42ZW07XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdG1hcmdpbi1yaWdodDogLjI1ZW07XG5cdFx0cGFkZGluZy1yaWdodDogLjVlbTtcblxuXHR9XG5cblx0LnN0b3JlLXJlY2VpcHQtaGVhZGluZyBoMiB7XG5cdFx0Y29sb3I6IGdyYXk7XG5cdFx0Zm9udC1zaXplOiAyLjFlbTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdG1hcmdpbi10b3A6IC4zZW07XG5cdH1cblx0LnN0b3JlLXJlY2VpcHQtaGVhZGluZyBwIHtcblx0XHRsaW5lLWhlaWdodDogMS40ZW07XG5cdH1cblxuXHQuYWRkcmVzcy1saW5lIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRsaW5lLWhlaWdodDogMS40ZW07XG5cdH1cblx0LnN0b3JlLXJlY2VpcHQtbmV3IHtcblx0XHRsaW5lLWhlaWdodDogMS4yZW07XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGgzIHtcblx0XHRcdC8vbWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdFx0d2lkdGg6IDUwJTtcblx0XHRtYXJnaW4tcmlnaHQ6IDUlO1xuXHR9XG5cdC5zdG9yZS1yZWNlaXB0LWV4aXN0aW5nIHtcblx0XHR3aWR0aDogNDUlO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjJlbTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cdC5zdG9yZS1yZWNlaXB0LW5ldywgLnN0b3JlLXJlY2VpcHQtZXhpc3Rpbmcge1xuXHRcdG9sIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMS40ZW07XG5cdFx0fVxuXHR9XG5cdC5saS1vcmRpbmFsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdH1cblx0LnN0b3JlLXJlY2VpcHQtbGljZW5jZS1ub3RpY2Uge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGdyYXk7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRsaW5lLWhlaWdodDogMS41ZW07XG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblx0LnN0b3JlLXJlY2VpcHQtbGljZW5zZSB7XG5cdFx0cGFkZGluZy10b3A6IC41ZW07XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHRwYWRkaW5nOiAuNWVtO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG5cdC5jNDItZ2xvYmFsLWhlYWRlci1saW5rcyxcblx0LnN0b3JlLW1vYmlsZS1jcmFzaHBsYW4tbG9nbyB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG59XG4iXX0= */
