/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  scroll-behavior: smooth;
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

html {
  font-size: 62.5%;
  box-sizing: border-box;
  scroll-padding-top: 0rem;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

html, body {
  scroll-behavior: smooth;
}

body {
  font-family: sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  color: #000000;
  font-size: 2rem;
}
body.overflow-hidden {
  overflow: hidden;
}

html, body {
  scroll-behavior: smooth;
}

p {
  color: #000000;
  line-height: 1.5;
}

.contenedor {
  width: 95%;
  max-width: 120rem;
  margin: 0 auto;
}

a {
  text-decoration: none;
}

h1 {
  font-size: 3rem;
}

h2 {
  font-size: 4.6rem;
}

h3 {
  font-size: 5rem;
}

img {
  max-width: 100%;
  width: 100%;
  height: auto;
  display: block;
}

body > section {
  padding: 0 0 5rem 0;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.header {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  padding: 1rem;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
@media (min-width: 768px) {
  .header {
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
  }
}
.header img {
  width: 13rem;
  margin: 0;
}
.header h1 {
  display: none;
}

.navegacion-principal {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
}
.navegacion-principal .menu-toggle {
  display: none;
  background: none;
  border: none;
  font-size: 2rem;
  cursor: pointer;
  transition: transform 0.3s ease;
}
.navegacion-principal .menu-toggle:hover {
  transform: scale(1.1);
}
.navegacion-principal .menu {
  display: flex;
  list-style: none;
  margin: 1.5rem 0 0 0;
  padding: 0;
  transition: height 0.3s ease;
}
@media (min-width: 768px) {
  .navegacion-principal .menu {
    margin: 0;
  }
}
.navegacion-principal .menu li {
  margin: 0 1rem;
}
.navegacion-principal .menu li a {
  text-decoration: none;
  color: #000;
  position: relative;
}
.navegacion-principal .menu li a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0%;
  height: 2px;
  background: #eea24c;
  transition: width 0.3s ease;
}
.navegacion-principal .menu li a:hover::after {
  width: 100%;
}
@media (max-width: 768px) {
  .navegacion-principal .menu {
    display: none;
    flex-direction: column;
    text-align: center;
    line-height: 3rem;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #fff;
    transition: all 0.3s;
    width: 100%;
  }
  .navegacion-principal .menu-toggle {
    display: flex;
  }
  .navegacion-principal .menu.active {
    display: flex;
    position: relative;
    height: 10rem;
  }
}

.presentacion {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50rem;
  overflow: hidden;
  gap: 2rem;
  background: linear-gradient(270deg, #ffc021, #ff7637);
  background-size: 400% 400%;
  -webkit-animation: AnimationName 30s ease infinite;
  -moz-animation: AnimationName 30s ease infinite;
  animation: AnimationName 30s ease infinite;
}
@-webkit-keyframes AnimationName {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
@-moz-keyframes AnimationName {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
@keyframes AnimationName {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
@media (min-width: 768px) {
  .presentacion {
    grid-template-columns: repeat(2, 1fr);
    height: 60rem;
  }
}
.presentacion h2 {
  margin: 0;
  font-size: 5rem;
}
.presentacion h2 .logo {
  margin: 0;
  width: 6.5rem;
}
.presentacion .presentacion__texto {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 92%;
}
.presentacion .presentacion__texto span {
  color: #FFFFFF;
  margin: 0.5rem 0 2.5rem 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
}
.presentacion .presentacion__texto p {
  margin: 0;
  display: inline-block;
  text-align: center;
  font-weight: 700;
}

/* CSS */
.button {
  font-size: 2rem;
  font-weight: 200;
  margin: 4rem 0 0 0;
  letter-spacing: 1px;
  padding: 13px 20px 13px;
  outline: 0;
  border: 2px solid black;
  cursor: pointer;
  position: relative;
  background-color: rgba(0, 0, 0, 0);
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  color: #000000;
  font-weight: 500;
}

.button:after {
  content: "";
  background-color: #eea24c;
  width: 100%;
  z-index: -1;
  position: absolute;
  height: 100%;
  top: 7px;
  left: 7px;
  transition: 0.2s;
}

.button:hover:after {
  top: 0px;
  left: 0px;
}

@media (min-width: 768px) {
  .button {
    padding: 13px 50px 13px;
  }
}
.sobre-mi {
  width: 95%;
  max-width: 100rem;
  margin: 0 auto;
  border-top: 1px solid #e1e1e1;
  border-bottom: 1px solid #e1e1e1;
  scroll-margin-top: 8rem;
}
.sobre-mi h3 {
  text-align: center;
}
.sobre-mi p {
  color: #393939;
}

.proyectos {
  width: 95%;
  max-width: 100rem;
  margin: 0 auto;
  border-bottom: 1px solid #e1e1e1;
}
.proyectos .columnas {
  display: grid;
  gap: 2rem;
  place-items: center;
}
@media (min-width: 768px) {
  .proyectos .columnas {
    grid-template-columns: repeat(2, 1fr);
  }
}
.proyectos .columnas .proyecto {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 1rem;
  width: 80%;
  text-align: center;
  transition: transform 0.3s ease;
  margin: 1rem 0;
  -webkit-box-shadow: 10px 10px 43px -24px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: 10px 10px 43px -24px rgba(0, 0, 0, 0.75);
  box-shadow: 10px 10px 43px -24px rgba(0, 0, 0, 0.75);
}
@media (min-width: 768px) {
  .proyectos .columnas .proyecto {
    margin: 0.5rem 0;
  }
}
.proyectos .columnas .proyecto:hover {
  transform: translateY(-1rem);
}
.proyectos .columnas .proyecto h4 {
  font-weight: 700;
}
.proyectos .columnas .proyecto .desc {
  font-weight: 400;
  color: #464646;
  line-height: 1;
  font-size: 1.6rem;
}
.proyectos .columnas .proyecto .box {
  padding: 0 4rem 4rem 4rem;
}
.proyectos .columnas .proyecto .box .cuantopago {
  max-width: 40rem;
}
.proyectos .columnas .proyecto a {
  display: flex;
  justify-content: center;
  align-items: center;
}
.proyectos .columnas .proyecto a img {
  border-radius: 1rem 1rem 0 0;
  width: 100%;
  margin: 0;
  padding: 0;
}
.proyectos .columnas .proyecto .links {
  display: flex;
  justify-content: center;
  align-items: center;
  border-top: 1px solid #e1e1e1;
}
.proyectos .columnas .proyecto .links a {
  margin: 3rem 1rem 0 1rem;
  color: #000000;
  transition: all 0.3s;
}
.proyectos .columnas .proyecto .links a .web {
  width: 2.4rem;
}
.proyectos .columnas .proyecto .links a svg {
  width: 2.4rem;
  margin-left: 0.75rem;
}
.proyectos .columnas .proyecto .links a:hover {
  color: #eea24c;
}
.proyectos .columnas .proyecto .margin {
  margin-top: 1.3rem;
}
.proyectos .youtube {
  margin: 5rem 0;
  border-radius: 1rem;
  -webkit-box-shadow: 10px 10px 43px -24px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: 10px 10px 43px -24px rgba(0, 0, 0, 0.75);
  box-shadow: 10px 10px 43px -24px rgba(0, 0, 0, 0.75);
}
.proyectos .youtube .backg img {
  border-radius: 1rem 1rem 0 0;
}
.proyectos .youtube .links {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 1rem;
}
.proyectos .youtube .links a {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 3rem 1rem 0 1rem;
  color: #000000;
  transition: all 0.3s;
}
.proyectos .youtube .links a svg {
  width: 2.4rem;
  margin-left: 0.75rem;
}
.proyectos .youtube .links a:hover {
  color: #eea24c;
}
.proyectos .youtube .texto {
  padding: 0 2rem 2rem 2rem;
}

.servicios {
  width: 95%;
  max-width: 100rem;
  margin: 0 auto;
  padding-bottom: 2rem;
  border-bottom: 1px solid #e1e1e1;
  padding: 0 0 10rem 0;
  scroll-margin-top: 8rem;
}
.servicios h3 {
  text-align: center;
}
.servicios__contenedor {
  display: grid;
}
@media (min-width: 768px) {
  .servicios__contenedor {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}
.servicios__caja {
  display: flex;
  flex-direction: column;
  margin-top: 3rem;
  text-align: center;
}
@media (min-width: 768px) {
  .servicios__caja {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    margin-top: 0;
    text-align: left;
  }
}
.servicios__caja h4 {
  font-size: 2.3rem;
  margin: 1rem 0 0.5rem 0;
}
.servicios__caja p {
  margin: 0;
  font-size: 1.7rem;
  color: #464646;
}
.servicios__caja img {
  width: 5rem;
  align-self: center;
}

.porcentaje {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 30rem;
}
.porcentaje p {
  margin: 0;
}
.porcentaje .type {
  font-weight: 400;
  color: #464646;
  font-size: 1.5rem;
}
@media (min-width: 768px) {
  .porcentaje {
    align-items: initial;
    margin-left: 2rem;
  }
  .porcentaje p {
    margin-top: 0.5rem;
  }
}

.contacto {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  scroll-margin-top: 8rem;
}
.contacto h3 {
  margin: 3rem 0 2.5rem 0;
}
.contacto p {
  max-width: 25rem;
  text-align: center;
}
.contacto .logo {
  width: 10rem;
  padding: 0 0 2rem 0;
}
.contacto__redes {
  display: flex;
}
.contacto__redes a {
  width: 4rem;
  margin: 0 1rem;
  transition: all 0.2s;
}
.contacto__redes a:hover {
  transform: scale(1.2);
}

.footer {
  border-top: 1px solid #000000;
  padding: 1rem 0;
}
.footer p {
  text-align: center;
}

.certificados {
  width: 95%;
  max-width: 100rem;
  margin: 0 auto;
  border-bottom: 1px solid #e1e1e1;
}
.certificados .certificado {
  padding: 2rem 2rem 4rem 2rem;
  margin: 4rem 2rem;
  border-radius: 1rem;
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  text-align: center;
}
.certificados .certificado:hover {
  transform: translateY(-1rem);
}
.certificados .certificado__1 {
  background-color: hsl(35, 64%, 59%);
  background-image: radial-gradient(at 40% 20%, hsl(28, 100%, 74%) 0px, transparent 50%), radial-gradient(at 80% 0%, hsl(189, 100%, 56%) 0px, transparent 50%), radial-gradient(at 0% 50%, hsl(355, 100%, 93%) 0px, transparent 50%), radial-gradient(at 80% 50%, hsl(340, 100%, 76%) 0px, transparent 50%), radial-gradient(at 0% 100%, hsl(22, 100%, 77%) 0px, transparent 50%), radial-gradient(at 80% 100%, hsl(242, 100%, 70%) 0px, transparent 50%), radial-gradient(at 0% 0%, hsl(343, 100%, 76%) 0px, transparent 50%);
}
.certificados .certificado__2 {
  background-color: hsl(0, 100%, 50%);
  background-image: radial-gradient(at 40% 20%, hsl(163, 100%, 74%) 0px, transparent 50%), radial-gradient(at 80% 0%, hsl(324, 100%, 56%) 0px, transparent 50%), radial-gradient(at 0% 50%, hsl(130, 100%, 93%) 0px, transparent 50%), radial-gradient(at 80% 50%, hsl(115, 100%, 76%) 0px, transparent 50%), radial-gradient(at 0% 100%, hsl(157, 100%, 77%) 0px, transparent 50%), radial-gradient(at 80% 100%, hsl(17, 100%, 70%) 0px, transparent 50%), radial-gradient(at 0% 0%, hsl(118, 100%, 76%) 0px, transparent 50%);
}
.certificados .certificado__3 {
  background-color: #ffdd99;
  background-image: radial-gradient(at 14% 78%, hsl(19, 89%, 64%) 0px, transparent 50%), radial-gradient(at 73% 96%, hsl(208, 90%, 78%) 0px, transparent 50%), radial-gradient(at 63% 47%, hsl(302, 95%, 71%) 0px, transparent 50%), radial-gradient(at 76% 72%, hsl(264, 70%, 76%) 0px, transparent 50%), radial-gradient(at 44% 47%, hsl(41, 88%, 66%) 0px, transparent 50%), radial-gradient(at 11% 1%, hsl(332, 84%, 61%) 0px, transparent 50%), radial-gradient(at 2% 54%, hsl(281, 78%, 70%) 0px, transparent 50%);
}
.certificados .certificado h4 {
  margin-bottom: 3rem;
  font-size: 2.2rem;
}
.certificados .certificado__caja {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.certificados .certificado__caja a img {
  width: 35rem;
  border-radius: 1rem;
  box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.23) 0px 6px 6px;
  transition: all 0.3s;
}
.certificados .certificado__caja a img:hover {
  transform: scale(1.1, 1.1);
}
.certificados .certificado__caja .button {
  background-color: #FFFFFF;
}
@media (min-width: 768px) {
  .certificados .certificado__caja .button {
    width: 25%;
  }
}
.certificados .certificado__caja .button:hover {
  background-color: #eea24c;
}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJiYXNlL19ub3JtYWxpemUuc2NzcyIsImJhc2UvX2dsb2JhbGVzLnNjc3MiLCJiYXNlL192YXJpYWJsZS5zY3NzIiwibGF5b3V0L19oZWFkZXIuc2NzcyIsImJhc2UvX21peGlucy5zY3NzIiwibGF5b3V0L19zb2JyZS1taS5zY3NzIiwibGF5b3V0L19wcm95ZWN0b3Muc2NzcyIsImxheW91dC9fc2VydmljaW9zLnNjc3MiLCJsYXlvdXQvX2NvbnRhY3RvLnNjc3MiLCJsYXlvdXQvX2Zvb3Rlci5zY3NzIiwibGF5b3V0L19jZXJ0aWZpY2Fkb3Muc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUVBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtDO0VBQ0c7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0VBR0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFB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Q0E7SUFDQTs7O0FBS0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBLE9McEZDOztBS3dGTDtFQUNJO0VBQ0E7OztBQU1aO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJQTtFQUNJOztBQUdKO0VBQ0k7RUFDQSxPTC9HSztFS2dITDs7QUgzR0o7RUcyRko7SUFvQlE7SUFDQTs7RUFFQTtJQUNJOzs7O0FDMUhaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUVBOztBQUVBO0VBQ0k7OztBQ2hDaEI7RUFDSTtFQUNBOztBQUNBO0VBQ0k7OztBQ0hSO0VOd0JJO0VBQ0E7RUFDQTtFTXZCQTs7QUFFQTtFQXVDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQTFDQTtFQUNJOztBQUVKO0VBQ0k7RUFDQSxrQkFDQTs7QUFTSjtFQUNJO0VBQ0Esa0JBQ0E7O0FBU0o7RUFDSTtFQUNBLGtCQUNBOztBQWNKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFPWjtFQUNJLGtCUnpFUDs7QUVFTDtFTXNFUTtJQUtROzs7QUFHSjtFQUNJLGtCUm5GVCIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xyXG5cclxuLyogRG9jdW1lbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxyXG4gKi9cclxuXHJcbiBodG1sIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXHJcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxuICB9XHJcbiAgXHJcbiAgLyogU2VjdGlvbnNcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuICBcclxuICBib2R5IHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXHJcbiAgICovXHJcbiAgXHJcbiAgbWFpbiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxyXG4gICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXHJcbiAgICovXHJcbiAgXHJcbiAgaDEge1xyXG4gICAgZm9udC1zaXplOiAyZW07XHJcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xyXG4gIH1cclxuICBcclxuICAvKiBHcm91cGluZyBjb250ZW50XHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuICBcclxuICAvKipcclxuICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxyXG4gICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxyXG4gICAqL1xyXG4gIFxyXG4gIGhyIHtcclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXHJcbiAgICBoZWlnaHQ6IDA7IC8qIDEgKi9cclxuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG4gIFxyXG4gIHByZSB7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cclxuICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXHJcbiAgfVxyXG4gIFxyXG4gIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuICBcclxuICAvKipcclxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXHJcbiAgICovXHJcbiAgXHJcbiAgYSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cclxuICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxyXG4gICAqL1xyXG4gIFxyXG4gIGFiYnJbdGl0bGVdIHtcclxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cclxuICAgKi9cclxuICBcclxuICBiLFxyXG4gIHN0cm9uZyB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuICBcclxuICBjb2RlLFxyXG4gIGtiZCxcclxuICBzYW1wIHtcclxuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xyXG4gICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXHJcbiAgXHJcbiAgc21hbGwge1xyXG4gICAgZm9udC1zaXplOiA4MCU7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxyXG4gICAqIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuICBcclxuICBzdWIsXHJcbiAgc3VwIHtcclxuICAgIGZvbnQtc2l6ZTogNzUlO1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbiAgfVxyXG4gIFxyXG4gIHN1YiB7XHJcbiAgICBib3R0b206IC0wLjI1ZW07XHJcbiAgfVxyXG4gIFxyXG4gIHN1cCB7XHJcbiAgICB0b3A6IC0wLjVlbTtcclxuICB9XHJcbiAgXHJcbiAgLyogRW1iZWRkZWQgY29udGVudFxyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbiAgXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cclxuICAgKi9cclxuICBcclxuICBpbWcge1xyXG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG4gIH1cclxuICBcclxuICAvKiBGb3Jtc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbiAgXHJcbiAgLyoqXHJcbiAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxyXG4gICAqL1xyXG4gIFxyXG4gIGJ1dHRvbixcclxuICBpbnB1dCxcclxuICBvcHRncm91cCxcclxuICBzZWxlY3QsXHJcbiAgdGV4dGFyZWEge1xyXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cclxuICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cclxuICAgIG1hcmdpbjogMDsgLyogMiAqL1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cclxuICAgKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxyXG4gICAqL1xyXG4gIFxyXG4gIGJ1dHRvbixcclxuICBpbnB1dCB7IC8qIDEgKi9cclxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cclxuICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXHJcbiAgICovXHJcbiAgXHJcbiAgYnV0dG9uLFxyXG4gIHNlbGVjdCB7IC8qIDEgKi9cclxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxyXG4gICAqL1xyXG4gIFxyXG4gIGJ1dHRvbixcclxuICBbdHlwZT1cImJ1dHRvblwiXSxcclxuICBbdHlwZT1cInJlc2V0XCJdLFxyXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxyXG4gICAqL1xyXG4gIFxyXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcclxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxyXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcclxuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cclxuICAgKi9cclxuICBcclxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXHJcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXHJcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcclxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XHJcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cclxuICAgKi9cclxuICBcclxuICBmaWVsZHNldCB7XHJcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXHJcbiAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxyXG4gICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcclxuICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuICBcclxuICBsZWdlbmQge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cclxuICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cclxuICAgIHBhZGRpbmc6IDA7IC8qIDMgKi9cclxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICAgKi9cclxuICBcclxuICBwcm9ncmVzcyB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxyXG4gICAqL1xyXG4gIFxyXG4gIHRleHRhcmVhIHtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cclxuICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXHJcbiAgICovXHJcbiAgXHJcbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcclxuICBbdHlwZT1cInJhZGlvXCJdIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cclxuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxyXG4gICAqL1xyXG4gIFxyXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXHJcbiAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXHJcbiAgICovXHJcbiAgXHJcbiAgW3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cclxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cclxuICAgKi9cclxuICBcclxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXHJcbiAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxyXG4gICAqL1xyXG4gIFxyXG4gIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cclxuICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cclxuICB9XHJcbiAgXHJcbiAgLyogSW50ZXJhY3RpdmVcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4gIFxyXG4gIC8qXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cclxuICAgKi9cclxuICBcclxuICBkZXRhaWxzIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuICBcclxuICAvKlxyXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuICBcclxuICBzdW1tYXJ5IHtcclxuICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcclxuICB9XHJcbiAgXHJcbiAgLyogTWlzY1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxyXG4gICAqL1xyXG4gIFxyXG4gIHRlbXBsYXRlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxyXG4gICAqL1xyXG4gIFxyXG4gIFtoaWRkZW5dIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfSIsIkB1c2UgJ3ZhcmlhYmxlJyBhcyB2O1xyXG5cclxuaHRtbCB7XHJcbiAgICBmb250LXNpemU6IDYyLjUlO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHNjcm9sbC1wYWRkaW5nLXRvcDogMHJlbTtcclxufVxyXG4qLCBcclxuKjpiZWZvcmUsXHJcbio6YWZ0ZXIge1xyXG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcclxufVxyXG5cclxuaHRtbCxib2R5e1xyXG4gICAgc2Nyb2xsLWJlaGF2aW9yOnNtb290aDtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICBmb250LWZhbWlseTogdi4kZnVlbnRlX3ByaW5jaXBhbDtcclxuICAgIGZvbnQtb3B0aWNhbC1zaXppbmc6IGF1dG87XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBjb2xvcjogdi4kbmVncm87XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcblxyXG4gICAgJi5vdmVyZmxvdy1oaWRkZW57XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxufVxyXG5cclxuaHRtbCxib2R5e1xyXG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XHJcbn1cclxuXHJcbnAge1xyXG4gICAgY29sb3I6IHYuJG5lZ3JvO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxufVxyXG4uY29udGVuZWRvciB7XHJcbiAgICB3aWR0aDogOTUlO1xyXG4gICAgbWF4LXdpZHRoOiAxMjByZW07XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5hIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuaDEge1xyXG4gICAgZm9udC1zaXplOiAzcmVtO1xyXG59XHJcbmgyIHtcclxuICAgIGZvbnQtc2l6ZTogNC42cmVtO1xyXG59XHJcbmgzIHtcclxuICAgIGZvbnQtc2l6ZTogNXJlbTtcclxufVxyXG5pbWcge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5ib2R5ID4gc2VjdGlvbiB7XHJcbiAgICBwYWRkaW5nOiAwIDAgNXJlbSAwO1xyXG59IiwiXHJcbiRmdWVudGVfcHJpbmNpcGFsOiAgc2Fucy1zZXJpZjtcclxuXHJcbi8vIENPTE9SRVNcclxuJGdyaXM6I2UxZTFlMTtcclxuJGdyaXNPc2N1cm86ICM0NjQ2NDY7XHJcbiRhbWFyaWxsbzogI2VlYTI0YztcclxuJG5lZ3JvOiAjMDAwMDAwO1xyXG4kYmxhbmNvOiAjRkZGRkZGO1xyXG5cclxuLy8gTWVkaWEgUXVlcmllc1xyXG5cclxuJHRlbGVmb25vOiA0ODBweDtcclxuJHRhYmxldDogNzY4cHg7XHJcbiRkZXNrdG9wOiAxMjAwcHg7XHJcbiRkZXNrdG9wWEw6IDE0MDBweDsgIiwiQHVzZSAnLi4vYmFzZS92YXJpYWJsZScgYXMgdjtcclxuQHVzZSAnLi4vYmFzZS9taXhpbnMnIGFzIG07XHJcblxyXG5cclxuQGtleWZyYW1lcyBmYWRlSW4ge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuLy8gLmZhZGUtaW4ge1xyXG4vLyAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMXMgZWFzZS1vdXQgZm9yd2FyZHM7XHJcbi8vIH1cclxuXHJcbi5oZWFkZXJ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCl7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpbWd7XHJcbiAgICAgICAgd2lkdGg6IDEzcmVtO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICBoMXtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgICBcclxufVxyXG5cclxuLm5hdmVnYWNpb24tcHJpbmNpcGFse1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBcclxuXHJcbiAgICAubWVudS10b2dnbGV7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLm1lbnUtdG9nZ2xlOmhvdmVye1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICAgIH1cclxuXHJcbiAgICAubWVudXtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luOiAxLjVyZW0gMCAwIDA7XHJcbiAgICAgICAgQGluY2x1ZGUgbS50YWJsZXR7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xyXG5cclxuICAgICAgICBsaXtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XHJcblxyXG4gICAgICAgICAgICBhe1xyXG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTRweDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdi4kYW1hcmlsbG87XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6aG92ZXI6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7XHJcblxyXG4gICAgICAgIC5tZW51e1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDogMTAwJTtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBcclxuXHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1lbnUtdG9nZ2xle1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC5tZW51LmFjdGl2ZXtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4ucHJlc2VudGFjaW9ue1xyXG4gICAgXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgaGVpZ2h0OiA1MHJlbTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBnYXA6IDJyZW07XHJcblxyXG4gICAgXHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjZmZjMDIxLCAjZmY3NjM3KTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogNDAwJSA0MDAlO1xyXG5cclxuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBBbmltYXRpb25OYW1lIDMwcyBlYXNlIGluZmluaXRlO1xyXG4gICAgLW1vei1hbmltYXRpb246IEFuaW1hdGlvbk5hbWUgMzBzIGVhc2UgaW5maW5pdGU7XHJcbiAgICBhbmltYXRpb246IEFuaW1hdGlvbk5hbWUgMzBzIGVhc2UgaW5maW5pdGU7XHJcbiAgICBcclxuXHJcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgQW5pbWF0aW9uTmFtZSB7XHJcbiAgICAgICAgMCV7YmFja2dyb3VuZC1wb3NpdGlvbjowJSA1MCV9XHJcbiAgICAgICAgNTAle2JhY2tncm91bmQtcG9zaXRpb246MTAwJSA1MCV9XHJcbiAgICAgICAgMTAwJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAlIDUwJX1cclxuICAgIH1cclxuICAgIEAtbW96LWtleWZyYW1lcyBBbmltYXRpb25OYW1lIHtcclxuICAgICAgICAwJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAlIDUwJX1cclxuICAgICAgICA1MCV7YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlIDUwJX1cclxuICAgICAgICAxMDAle2JhY2tncm91bmQtcG9zaXRpb246MCUgNTAlfVxyXG4gICAgfVxyXG4gICAgQGtleWZyYW1lcyBBbmltYXRpb25OYW1lIHtcclxuICAgICAgICAwJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAlIDUwJX1cclxuICAgICAgICA1MCV7YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlIDUwJX1cclxuICAgICAgICAxMDAle2JhY2tncm91bmQtcG9zaXRpb246MCUgNTAlfVxyXG4gICAgfVxyXG4gICAgXHJcblxyXG5cclxuICAgIEBpbmNsdWRlIG0udGFibGV0e1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHJlbTtcclxuICAgIH1cclxuXHJcbiAgICBoMntcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiA1cmVtO1xyXG5cclxuICAgICAgICAubG9nb3tcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogNi41cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgIH1cclxuXHJcbiBcclxuICAgIFxyXG4gICBcclxuXHJcbiAgICAucHJlc2VudGFjaW9uX190ZXh0b3tcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgd2lkdGg6IDkyJTtcclxuXHJcbiAgICAgICAgc3BhbntcclxuICAgICAgICAgICAgY29sb3I6IHYuJGJsYW5jbztcclxuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMCAyLjVyZW0gMDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGdhcDogMnJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcbiAgICBcclxuXHJcbiAgICBcclxufVxyXG5cclxuLy8gLmJ1dHRvbntcclxuLy8gICAgIHdpZHRoOiA0MCU7XHJcbi8vICAgICBtYXJnaW46IDRyZW0gMCAwIDA7XHJcbi8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHYuJGJsYW5jbywgMCk7XHJcbi8vICAgICBib3JkZXI6IDJweCBzb2xpZCB2LiRhbWFyaWxsbztcclxuLy8gICAgIHBhZGRpbmc6IDFyZW07XHJcbi8vICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbi8vICAgICBib3JkZXItcmFkaXVzOiA1cmVtO1xyXG4vLyAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XHJcbi8vICAgICBjb2xvcjogdi4kbmVncm87XHJcbiAgICBcclxuLy8gICAgICY6aG92ZXJ7XHJcbi8vICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4vLyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHYuJGFtYXJpbGxvO1xyXG4vLyAgICAgfVxyXG4vLyB9XHJcblxyXG5cclxuXHJcbi8qIENTUyAqL1xyXG4uYnV0dG9uIHtcclxuICBmb250LXNpemU6IDJyZW07XHJcbiAgXHJcbiAgZm9udC13ZWlnaHQ6IDIwMDtcclxuICBtYXJnaW46IDRyZW0gMCAwIDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICBwYWRkaW5nOiAxM3B4IDIwcHggMTNweDtcclxuICBvdXRsaW5lOiAwO1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG4gIGNvbG9yOiB2LiRuZWdybztcclxuICBmb250LXdlaWdodDogNTAwO1xyXG5cclxufVxyXG5cclxuLmJ1dHRvbjphZnRlciB7XHJcbiAgY29udGVudDogXCJcIjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2LiRhbWFyaWxsbztcclxuICB3aWR0aDogMTAwJTtcclxuICB6LWluZGV4OiAtMTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHRvcDogN3B4O1xyXG4gIGxlZnQ6IDdweDtcclxuICB0cmFuc2l0aW9uOiAwLjJzO1xyXG59XHJcblxyXG4uYnV0dG9uOmhvdmVyOmFmdGVyIHtcclxuICB0b3A6IDBweDtcclxuICBsZWZ0OiAwcHg7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gIC5idXR0b24ge1xyXG4gICAgcGFkZGluZzogMTNweCA1MHB4IDEzcHg7XHJcbiAgfVxyXG59IiwiQHVzZSAndmFyaWFibGUnIGFzIHY7XHJcblxyXG5AbWl4aW4gdGVsZWZvbm97XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogdi4kdGVsZWZvbm8pe1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuQG1peGluIHRhYmxldHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiB2LiR0YWJsZXQpe1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gZGVza3RvcHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiB2LiRkZXNrdG9wKXtcclxuICAgICAgICBAY29udGVudDtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGRlc2t0b3BYTHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiB2LiRkZXNrdG9wWEwpe1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gY29udGVuZWRvcntcclxuICAgIHdpZHRoOiA5NSU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMHJlbTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG5cclxuQG1peGluIGdyaWQoJGNvbHVtbmFzIDogMSwgJGdhcCA6IDVyZW0pe1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCRjb2x1bW5hcywgMWZyKTtcclxuICAgIGdhcDogJGdhcDtcclxufVxyXG5cclxuQG1peGluIHJlc2V0ZWFyLWxpc3Rhe1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn0iLCJAdXNlICcuLi9iYXNlL3ZhcmlhYmxlJyBhcyB2O1xyXG5AdXNlICcuLi9iYXNlL21peGlucycgYXMgbTtcclxuXHJcbi5zb2JyZS1taXtcclxuICAgIEBpbmNsdWRlIG0uY29udGVuZWRvcjtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2LiRncmlzO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYuJGdyaXM7XHJcbiAgICBzY3JvbGwtbWFyZ2luLXRvcDogOHJlbTtcclxuICAgIFxyXG4gICAgaDN7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICAgIGNvbG9yOiBkYXJrZW4odi4kZ3Jpc09zY3VybywgNSUpO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG59IiwiQHVzZSAnLi4vYmFzZS92YXJpYWJsZScgYXMgdjtcclxuQHVzZSAnLi4vYmFzZS9taXhpbnMnIGFzIG07XHJcblxyXG4ucHJveWVjdG9ze1xyXG4gICAgQGluY2x1ZGUgbS5jb250ZW5lZG9yO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYuJGdyaXM7XHJcblxyXG4gICAgLmNvbHVtbmFze1xyXG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgZ2FwOiAycmVtO1xyXG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG0udGFibGV0e1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnByb3llY3Rve1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgICAgICAgICAgd2lkdGg6IDgwJTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTsgLy8gQcOxYWRpciB0cmFuc2ljacOzblxyXG4gICAgICAgICAgICBtYXJnaW46IDFyZW0gMDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG0udGFibGV0e1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAuNXJlbSAwO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcmVtKTsgLy8gTW92ZXIgaGFjaWEgYXJyaWJhIGFsIHBhc2FyIGVsIGN1cnNvclxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBoNHtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5kZXNje1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2LiRncmlzT3NjdXJvO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAxMHB4IDEwcHggNDNweCAtMjRweCByZ2JhKDAsMCwwLDAuNzUpO1xyXG4gICAgICAgICAgICAtbW96LWJveC1zaGFkb3c6IDEwcHggMTBweCA0M3B4IC0yNHB4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDEwcHggMTBweCA0M3B4IC0yNHB4IHJnYmEoMCwwLDAsMC43NSk7XHJcblxyXG4gICAgICAgICAgICAuYm94e1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCA0cmVtIDRyZW0gNHJlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAuY3VhbnRvcGFnb3tcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDQwcmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBhe1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGltZ3tcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtIDFyZW0gMCAgMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDsgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5saW5rc3tcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdi4kZ3JpcztcclxuICAgICAgICAgICAgICAgIGF7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAzcmVtIDFyZW0gMCAxcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2LiRuZWdybztcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC53ZWJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyLjRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBzdmd7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyLjRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuNzVyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBhOmhvdmVye1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2LiRhbWFyaWxsbztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLm1hcmdpbntcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuM3JlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICBcclxuICAgIH1cclxuXHJcbiAgICAueW91dHViZXtcclxuICAgICAgICBtYXJnaW46IDVyZW0gMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMTBweCAxMHB4IDQzcHggLTI0cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDEwcHggMTBweCA0M3B4IC0yNHB4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMTBweCAxMHB4IDQzcHggLTI0cHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAgICAgICBcclxuICAgICAgICAuYmFja2d7XHJcbiAgICAgICAgICAgIGltZ3tcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW0gMXJlbSAwIDA7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmxpbmtze1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDNyZW0gMXJlbSAwIDFyZW07XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdi4kbmVncm87XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcclxuXHJcbiAgICAgICAgICAgICAgICBzdmd7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLjc1cmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGE6aG92ZXJ7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdi4kYW1hcmlsbG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC50ZXh0b3tcclxuICAgICAgICAgICAgcGFkZGluZzogMCAycmVtIDJyZW0gMnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59IiwiQHVzZSAnLi4vYmFzZS92YXJpYWJsZScgYXMgdjtcclxuQHVzZSAnLi4vYmFzZS9taXhpbnMnIGFzIG07XHJcblxyXG5cclxuLy8gLmhhYmlsaWRhZGVze1xyXG4vLyAgICAgQGluY2x1ZGUgbS5jb250ZW5lZG9yO1xyXG4vLyAgICAgLnByb2dyYW1hc3tcclxuLy8gICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG5cclxuICAgICAgICBcclxuXHJcbi8vICAgICAgICAgLmZpbGExe1xyXG4vLyAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgIH1cclxuLy8gfVxyXG5cclxuLy8gLmNvbnRhaW5lci1we1xyXG4vLyAgICAgZGlzcGxheTogZmxleDtcclxuLy8gICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4vLyAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuLy8gICAgIGJvcmRlcjogMS41cHggc29saWQgdi4kYW1hcmlsbG87XHJcbi8vICAgICBtaW4td2lkdGg6IDcuNSU7XHJcbi8vICAgICBtYXgtd2lkdGg6MjUlO1xyXG4vLyAgICAgbWF4LWhlaWdodDogM3JlbTtcclxuLy8gICAgIC5pY29ub3tcclxuICAgICAgICBcclxuLy8gICAgICAgICBjb2xvcjogdi4kYW1hcmlsbG87XHJcbi8vICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuLy8gICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuLy8gICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xyXG4vLyAgICAgICAgIHBhZGRpbmc6IC41cmVtO1xyXG4vLyAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xyXG4vLyAgICAgICAgIHN2Z3tcclxuLy8gICAgICAgICAgICAgd2lkdGg6IDNyZW07XHJcbi8vICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuLy8gICAgICAgICB9XHJcbiAgICBcclxuLy8gICAgIH1cclxuLy8gfVxyXG5cclxuLnNlcnZpY2lvc3tcclxuICAgIEBpbmNsdWRlIG0uY29udGVuZWRvcjtcclxuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHYuJGdyaXM7XHJcbiAgICBwYWRkaW5nOiAwIDAgMTByZW0gMDtcclxuICAgIHNjcm9sbC1tYXJnaW4tdG9wOiA4cmVtO1xyXG5cclxuICAgIGgze1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgJl9fY29udGVuZWRvcntcclxuICAgICAgICBcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtLnRhYmxldHtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuICAgICAgICAgICAgZ2FwOiAycmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBcclxuICBcclxuICAgICZfX2NhamF7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtLnRhYmxldHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGdhcDogMnJlbTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBoNHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyLjNyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwIDAuNXJlbSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcclxuICAgICAgICAgICAgY29sb3I6IHYuJGdyaXNPc2N1cm87XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBcclxuICAgICAgICBpbWd7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1cmVtO1xyXG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcblxyXG59XHJcbi5wb3JjZW50YWple1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtaW4td2lkdGg6IDMwcmVtO1xyXG5cclxuIFxyXG4gICAgXHJcbiAgICBwe1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICAudHlwZXtcclxuICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgIGNvbG9yOiB2LiRncmlzT3NjdXJvO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG0udGFibGV0e1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBpbml0aWFsO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xyXG5cclxuICAgICAgICBwe1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAuNXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgXHJcbiAgIFxyXG59XHJcblxyXG5cclxuLy8gQGtleWZyYW1lcyBzbGlkZXtcclxuLy8gICAgIGZyb217XHJcbi8vICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4vLyAgICAgfVxyXG4vLyAgICAgdG97XHJcbi8vICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcclxuLy8gICAgIH1cclxuLy8gfVxyXG4vLyAubG9nb3N7XHJcbi8vICAgICBAaW5jbHVkZSBtLmNvbnRlbmVkb3I7XHJcbiAgICBcclxuLy8gICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gICAgIG1hcmdpbjogNXJlbSAwIDAgMCA7XHJcbi8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdi4kYmxhbmNvO1xyXG4vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIFxyXG5cclxuICAgIFxyXG4vLyAgICAgLmxvZ29zLXNsaWRle1xyXG4vLyAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4vLyAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbi8vICAgICAgICAgYW5pbWF0aW9uOiA4cyBzbGlkZSBpbmZpbml0ZSBsaW5lYXI7XHJcbi8vICAgICB9XHJcbiAgICBcclxuLy8gICAgIC5sb2dvcy1zbGlkZSBpbWd7XHJcbi8vICAgICAgICAgaGVpZ2h0OiA1cmVtO1xyXG4vLyAgICAgICAgIHdpZHRoOiA1cmVtO1xyXG4vLyAgICAgICAgIG1hcmdpbjogMCAycmVtO1xyXG4vLyAgICAgfVxyXG4gICAgXHJcbi8vIH1cclxuXHJcbi8vIC5sb2dvczpiZWZvcmUsXHJcbi8vIC5sb2dvczphZnRlcntcclxuLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICAgIHRvcDogMDtcclxuLy8gICAgIGxlZnQ6IDA7XHJcbi8vICAgICB3aWR0aDogMjVyZW07XHJcbi8vICAgICBoZWlnaHQ6IDEwMCU7XHJcbi8vICAgICBjb250ZW50OiBcIlwiO1xyXG4vLyAgICAgei1pbmRleDogMjtcclxuLy8gfVxyXG5cclxuLy8gLmxvZ29zOmJlZm9yZXtcclxuLy8gICAgIGxlZnQ6IDA7XHJcbi8vICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpO1xyXG4vLyB9XHJcblxyXG4vLyAubG9nb3M6YWZ0ZXJ7XHJcbi8vICAgICByaWdodDogMDtcclxuLy8gICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSk7XHJcbi8vIH1cclxuXHJcbiIsIkB1c2UgJy4uL2Jhc2UvdmFyaWFibGUnIGFzIHY7XHJcbkB1c2UgJy4uL2Jhc2UvbWl4aW5zJyBhcyBtO1xyXG5cclxuLmNvbnRhY3Rve1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBzY3JvbGwtbWFyZ2luLXRvcDogOHJlbTtcclxuXHJcbiAgICBoM3tcclxuICAgICAgICBtYXJnaW46IDNyZW0gMCAyLjVyZW0gMDtcclxuICAgIH1cclxuXHJcbiAgICBwe1xyXG4gICAgICAgIG1heC13aWR0aDogMjVyZW07XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5sb2dve1xyXG4gICAgICAgIHdpZHRoOiAxMHJlbTtcclxuICAgICAgICBwYWRkaW5nOiAwIDAgMnJlbSAwO1xyXG4gICAgfVxyXG5cclxuICAgICZfX3JlZGVze1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0cmVtO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xyXG5cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIFxyXG59IiwiQHVzZSAnLi4vYmFzZS92YXJpYWJsZScgYXMgdjtcclxuQHVzZSAnLi4vYmFzZS9taXhpbnMnIGFzIG07XHJcblxyXG4uZm9vdGVye1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHYuJG5lZ3JvO1xyXG4gICAgcGFkZGluZzogMXJlbSAwO1xyXG4gICAgcHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbn0iLCJAdXNlICcuLi9iYXNlL3ZhcmlhYmxlJyBhcyB2O1xyXG5AdXNlICcuLi9iYXNlL21peGlucycgYXMgbTtcclxuXHJcblxyXG4uY2VydGlmaWNhZG9ze1xyXG5cclxuICAgIEBpbmNsdWRlIG0uY29udGVuZWRvcjtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2LiRncmlzO1xyXG5cclxuICAgIC5jZXJ0aWZpY2Fkb3tcclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcmVtKTsgLy8gTW92ZXIgaGFjaWEgYXJyaWJhIGFsIHBhc2FyIGVsIGN1cnNvclxyXG4gICAgICAgIH1cclxuICAgICAgICAmX18xe1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMzUsNjQlLDU5JSwxKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGF0IDQwJSAyMCUsIGhzbGEoMjgsMTAwJSw3NCUsMSkgMHB4LCB0cmFuc3BhcmVudCA1MCUpLFxyXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoYXQgODAlIDAlLCBoc2xhKDE4OSwxMDAlLDU2JSwxKSAwcHgsIHRyYW5zcGFyZW50IDUwJSksXHJcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChhdCAwJSA1MCUsIGhzbGEoMzU1LDEwMCUsOTMlLDEpIDBweCwgdHJhbnNwYXJlbnQgNTAlKSxcclxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGF0IDgwJSA1MCUsIGhzbGEoMzQwLDEwMCUsNzYlLDEpIDBweCwgdHJhbnNwYXJlbnQgNTAlKSxcclxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGF0IDAlIDEwMCUsIGhzbGEoMjIsMTAwJSw3NyUsMSkgMHB4LCB0cmFuc3BhcmVudCA1MCUpLFxyXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoYXQgODAlIDEwMCUsIGhzbGEoMjQyLDEwMCUsNzAlLDEpIDBweCwgdHJhbnNwYXJlbnQgNTAlKSxcclxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGF0IDAlIDAlLCBoc2xhKDM0MywxMDAlLDc2JSwxKSAwcHgsIHRyYW5zcGFyZW50IDUwJSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmX18ye1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwxMDAlLDUwJSwxKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGF0IDQwJSAyMCUsIGhzbGEoMTYzLDEwMCUsNzQlLDEpIDBweCwgdHJhbnNwYXJlbnQgNTAlKSxcclxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGF0IDgwJSAwJSwgaHNsYSgzMjQsMTAwJSw1NiUsMSkgMHB4LCB0cmFuc3BhcmVudCA1MCUpLFxyXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoYXQgMCUgNTAlLCBoc2xhKDEzMCwxMDAlLDkzJSwxKSAwcHgsIHRyYW5zcGFyZW50IDUwJSksXHJcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChhdCA4MCUgNTAlLCBoc2xhKDExNSwxMDAlLDc2JSwxKSAwcHgsIHRyYW5zcGFyZW50IDUwJSksXHJcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChhdCAwJSAxMDAlLCBoc2xhKDE1NywxMDAlLDc3JSwxKSAwcHgsIHRyYW5zcGFyZW50IDUwJSksXHJcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChhdCA4MCUgMTAwJSwgaHNsYSgxNywxMDAlLDcwJSwxKSAwcHgsIHRyYW5zcGFyZW50IDUwJSksXHJcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChhdCAwJSAwJSwgaHNsYSgxMTgsMTAwJSw3NiUsMSkgMHB4LCB0cmFuc3BhcmVudCA1MCUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fM3tcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojZmZkZDk5O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOlxyXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoYXQgMTQlIDc4JSwgaHNsYSgxOSw4OSUsNjQlLDEpIDBweCwgdHJhbnNwYXJlbnQgNTAlKSxcclxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGF0IDczJSA5NiUsIGhzbGEoMjA4LDkwJSw3OCUsMSkgMHB4LCB0cmFuc3BhcmVudCA1MCUpLFxyXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoYXQgNjMlIDQ3JSwgaHNsYSgzMDIsOTUlLDcxJSwxKSAwcHgsIHRyYW5zcGFyZW50IDUwJSksXHJcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChhdCA3NiUgNzIlLCBoc2xhKDI2NCw3MCUsNzYlLDEpIDBweCwgdHJhbnNwYXJlbnQgNTAlKSxcclxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGF0IDQ0JSA0NyUsIGhzbGEoNDEsODglLDY2JSwxKSAwcHgsIHRyYW5zcGFyZW50IDUwJSksXHJcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChhdCAxMSUgMSUsIGhzbGEoMzMyLDg0JSw2MSUsMSkgMHB4LCB0cmFuc3BhcmVudCA1MCUpLFxyXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoYXQgMiUgNTQlLCBoc2xhKDI4MSw3OCUsNzAlLDEpIDBweCwgdHJhbnNwYXJlbnQgNTAlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFkZGluZzogMnJlbSAycmVtIDRyZW0gMnJlbTtcclxuICAgICAgICBtYXJnaW46IDRyZW0gMnJlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IHJnYmEoMTAwLCAxMDAsIDExMSwgMC4yKSAwcHggN3B4IDI5cHggMHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgaDR7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmX19jYWphe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgIGF7XHJcbiAgICAgICAgICAgICAgICBpbWd7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDM1cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjE5KSAwcHggMTBweCAyMHB4LCByZ2JhKDAsIDAsIDAsIDAuMjMpIDBweCA2cHggNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEsIDEuMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgIC5idXR0b257XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2LiRibGFuY287XHJcbiAgICAgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtLnRhYmxldHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjUlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdi4kYW1hcmlsbG87XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICBcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0= */
