/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/* font imports & definitions */
@font-face {
  font-family: 'ProximaNova-Regular';
  src: url("/css/fonts/ProximaNova-Regular.eot");
  src: url("/css/fonts/ProximaNova-Regular.woff2") format("woff2"), url("/css/fonts/ProximaNova-Regular.woff") format("woff"), url("/css/fonts/ProximaNova-Regular.ttf") format("truetype"), url("/css/fonts/ProximaNova-Regular.svg#ProximaNova-Regular") format("svg"), url("/css/fonts/ProximaNova-Regular.eot?#iefix") format("embedded-opentype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'ProximaNova-RegularIt';
  src: url("/css/fonts/ProximaNova-RegularIt.eot");
  src: url("/css/fonts/ProximaNova-RegularIt.woff2") format("woff2"), url("/css/fonts/ProximaNova-RegularIt.woff") format("woff"), url("/css/fonts/ProximaNova-RegularIt.ttf") format("truetype"), url("/css/fonts/ProximaNova-RegularIt.svg#ProximaNova-RegularIt") format("svg"), url("/css/fonts/ProximaNova-RegularIt.eot?#iefix") format("embedded-opentype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'ProximaNova-Bold';
  src: url("/css/fonts/ProximaNova-Bold.eot");
  src: url("/css/fonts/ProximaNova-Bold.woff2") format("woff2"), url("/css/fonts/ProximaNova-Bold.woff") format("woff"), url("/css/fonts/ProximaNova-Bold.ttf") format("truetype"), url("/css/fonts/ProximaNova-Bold.svg#ProximaNova-Bold") format("svg"), url("/css/fonts/ProximaNova-Bold.eot?#iefix") format("embedded-opentype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'ProximaNova-Light';
  src: url("/css/fonts/ProximaNova-Light.eot");
  src: url("/css/fonts/ProximaNova-Light.woff2") format("woff2"), url("/css/fonts/ProximaNova-Light.woff") format("woff"), url("/css/fonts/ProximaNova-Light.ttf") format("truetype"), url("/css/fonts/ProximaNova-Light.svg#ProximaNova-Light") format("svg"), url("/css/fonts/ProximaNova-Light.eot?#iefix") format("embedded-opentype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Bebas';
  src: url("/css/fonts/BEBAS___.eot");
  src: url("/css/fonts/BEBAS___.woff") format("woff"), url("/css/fonts/BEBAS___.ttf") format("truetype"), url("/css/fonts/BEBAS___.svg#Bebas") format("svg"), url("/css/fonts/BEBAS___.otf?#iefix") format("embedded-opentype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Kapra';
  src: url("/css/fonts/Kapra-Regular.eot");
  src: url("/css/fonts/Kapra-Regular.woff") format("woff"), url("/css/fonts/Kapra-Regular.ttf") format("truetype"), url("/css/fonts/Kapra-Regular.svg#Kapra") format("svg"), url("/css/fonts/Kapra-Regular.otf?#iefix") format("embedded-opentype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Slick';
  src: url("/css/fonts/slick.eot");
  src: url("/css/fonts/slick.woff") format("woff"), url("/css/fonts/slick.ttf") format("truetype"), url("/css/fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal; }

/* RCCL Variables */
.typography {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.heroheader {
  font-family: Kapra, "Open Sans", sans-serif;
  text-transform: uppercase; }
  @media only all and (min-width: 1920px) {
    .heroheader {
      font-size: 7rem; } }
  @media only all and (min-width: 1441px) and (max-width: 1919px) {
    .heroheader {
      font-size: 6rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .heroheader {
      font-size: 6rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .heroheader {
      font-size: 5rem; } }
  @media only all and (max-width: 768px) {
    .heroheader {
      font-size: 3rem; } }

.heading1 {
  font-family: Kapra, "Open Sans", sans-serif;
  text-transform: uppercase; }
  @media only all and (min-width: 1441px) {
    .heading1 {
      font-size: 4rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .heading1 {
      font-size: 4rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .heading1 {
      font-size: 4rem; } }
  @media only all and (max-width: 768px) {
    .heading1 {
      font-size: 2.625rem; } }

.heading2 {
  font-family: Kapra, "Open Sans", sans-serif;
  text-transform: uppercase; }
  @media only all and (min-width: 1441px) {
    .heading2 {
      font-size: 3rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .heading2 {
      font-size: 3rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .heading2 {
      font-size: 3rem; } }
  @media only all and (max-width: 768px) {
    .heading2 {
      font-size: 2.5rem; } }

.heading3 {
  font-family: Kapra, "Open Sans", sans-serif;
  text-transform: uppercase; }
  @media only all and (min-width: 1441px) {
    .heading3 {
      font-size: 2.625rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .heading3 {
      font-size: 2.625rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .heading3 {
      font-size: 2.625rem; } }
  @media only all and (max-width: 768px) {
    .heading3 {
      font-size: 2.5rem; } }

.heading4 {
  font-family: Kapra, "Open Sans", sans-serif;
  text-transform: uppercase; }
  @media only all and (min-width: 1441px) {
    .heading4 {
      font-size: 1.75rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .heading4 {
      font-size: 1.75rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .heading4 {
      font-size: 1.5rem; } }
  @media only all and (max-width: 768px) {
    .heading4 {
      font-size: 1.5rem; } }

.articleTitle {
  font-family: "ProximaNova-Bold", Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: 2px; }
  @media only all and (min-width: 1441px) {
    .articleTitle {
      font-size: 2rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .articleTitle {
      font-size: 2rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .articleTitle {
      font-size: 2rem; } }
  @media only all and (max-width: 768px) {
    .articleTitle {
      font-size: 1.375rem; } }

.pullQuote {
  font-family: 'Times New Roman';
  font-style: italic; }
  @media only all and (min-width: 1441px) {
    .pullQuote {
      font-size: 2.25rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .pullQuote {
      font-size: 2.25rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .pullQuote {
      font-size: 2.25rem; } }
  @media only all and (max-width: 768px) {
    .pullQuote {
      font-size: 2.25rem; } }

.subHeroHeader {
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase; }
  @media only all and (min-width: 1441px) {
    .subHeroHeader {
      font-size: 2rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .subHeroHeader {
      font-size: 2rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .subHeroHeader {
      font-size: 1.688rem; } }
  @media only all and (max-width: 768px) {
    .subHeroHeader {
      font-size: 1rem; } }

.titleUnderTiles {
  font-family: "ProximaNova-Bold", Arial, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase; }
  @media only all and (min-width: 1441px) {
    .titleUnderTiles {
      font-size: 1.375rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .titleUnderTiles {
      font-size: 1.375rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .titleUnderTiles {
      font-size: 1.375rem; } }
  @media only all and (max-width: 768px) {
    .titleUnderTiles {
      font-size: 1.375rem; } }

.subHeading {
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase; }
  @media only all and (min-width: 1441px) {
    .subHeading {
      font-size: 1.375rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .subHeading {
      font-size: 1.375rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .subHeading {
      font-size: 1.375rem; } }
  @media only all and (max-width: 768px) {
    .subHeading {
      font-size: 0.875rem; } }

.introCopy {
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  font-size: 1.5rem;
  line-height: 150%; }
  @media only all and (max-width: 768px) {
    .introCopy {
      font-size: 1.125rem; } }

.detailsText {
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase; }
  @media only all and (min-width: 1441px) {
    .detailsText {
      font-size: 0.875rem; } }
  @media only all and (min-width: 1025px) and (max-width: 1440px) {
    .detailsText {
      font-size: 0.875rem; } }
  @media only all and (min-width: 769px) and (max-width: 1024px) {
    .detailsText {
      font-size: 0.875rem; } }
  @media only all and (max-width: 768px) {
    .detailsText {
      font-size: 0.75rem; } }

.paragraphCopy {
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  font-size: 1.125rem;
  line-height: 150%; }
  @media only all and (max-width: 768px) {
    .paragraphCopy {
      font-size: 1rem; } }

.paragraphCopy--bold {
  font-family: "ProximaNova-Bold", Arial, sans-serif;
  font-size: 1.125rem;
  line-height: 27px; }
  @media only all and (max-width: 768px) {
    .paragraphCopy--bold {
      font-size: 1rem; } }

.article-item .paragraphCopy {
  font-size: 1rem; }

.articleLinks {
  font-family: "ProximaNova-Bold", Arial, sans-serif;
  font-size: 1.125rem;
  line-height: 120%;
  color: #005edc; }
  @media only all and (max-width: 768px) {
    .articleLinks {
      font-size: 1rem; } }

.hyperlink {
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-size: 0.875rem; }
  .hyperlink__white {
    font-family: "ProximaNova-Regular", Arial, sans-serif;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-size: 0.875rem;
    color: white;
    text-decoration: none; }
  @media only all and (max-width: 768px) {
    .hyperlink {
      font-size: 0.75rem; } }

.inlineHyperlink {
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  text-decoration: underline; }
  .inlineHyperlink__white {
    font-family: "ProximaNova-Regular", Arial, sans-serif;
    text-decoration: underline;
    color: white; }

.rightProtected {
  position: absolute;
  margin-top: 3px;
  margin-left: 5px;
  font-size: 2rem; }
  @media only all and (max-width: 1024px) {
    .rightProtected {
      font-size: 0.85rem; } }

.navy-text {
  color: #15264c; }

.white-text {
  color: #ffffff; }

.gray-text {
  color: #4a4a4a; }

.insiderTips__base1 {
  background-color: #BEE1DF;
  box-sizing: border-box;
  margin: 1.25rem 0 0.625rem 0;
  padding: 2rem 0;
  position: relative; }
  @media (min-width: 46.875rem) {
    .insiderTips__base1 {
      padding: 3rem 0 2rem 0; } }
  @media (min-width: 64rem) {
    .insiderTips__base1 {
      margin: 2.5rem 0 1.25rem 0;
      padding: 4rem 0 3rem 0; } }
  @media (min-width: 64.0625rem) {
    .insiderTips__base1 {
      margin: 3.75rem 0 2.5rem 0; } }

.insiderTips__icon {
  display: block;
  height: 3.4375rem;
  margin: 0 auto 0.9375rem auto;
  width: 3.4375rem; }

.insiderTips__image {
  display: block;
  height: 100%;
  width: 100%; }

.insiderTips__title {
  color: #076A6C;
  font-family: "ProximaNova-Bold", Arial, sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.125rem;
  margin-bottom: 0.9375rem;
  text-align: center;
  text-transform: uppercase; }
  @media (min-width: 64rem) {
    .insiderTips__title {
      font-size: 0.875rem; } }
  @media (min-width: 64.0625rem) {
    .insiderTips__title {
      font-size: 1rem; } }

.insiderTips__container {
  padding-top: 1rem; }
  @media (min-width: 46.875rem) {
    .insiderTips__container {
      padding-top: 0.5rem; } }

.insiderTips__list {
  -ms-flex-align: center;
      align-items: center;
  box-sizing: border-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: center;
      justify-content: center; }
  @media (min-width: 46.875rem) {
    .insiderTips__list {
      -ms-flex-align: start;
          align-items: flex-start;
      -ms-flex-direction: row;
          flex-direction: row; } }
  @media (min-width: 64.0625rem) {
    .insiderTips__list--double .insiderTips__item {
      padding: 0 1rem; }
    .insiderTips__list--double .insiderTips__itemNumber {
      margin-bottom: 0.5rem; }
    .insiderTips__list--double .insiderTips__itemText {
      font-size: 1.5rem;
      line-height: 1.8125rem; } }
  @media (min-width: 64.0625rem) {
    .insiderTips__list--single .insiderTips__item {
      padding: 0 17.25rem; }
    .insiderTips__list--single .insiderTips__itemText {
      font-size: 2rem;
      line-height: 2.4375rem; } }

.insiderTips__item {
  -ms-flex-align: center;
      align-items: center;
  box-sizing: border-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-preferred-size: auto;
      flex-basis: auto;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-positive: 1;
      flex-grow: 1;
  -ms-flex-pack: center;
      justify-content: center;
  padding: 0 1.25rem; }
  @media (min-width: 46.875rem) {
    .insiderTips__item {
      -ms-flex-preferred-size: 0;
          flex-basis: 0; } }

.insiderTips__itemNumber {
  border-bottom: 1px solid #076A6C;
  color: #076A6C;
  display: none;
  font-family: "ProximaNova-Light", Arial, sans-serif;
  font-size: 0.75rem;
  line-height: 1.125rem;
  margin-bottom: 0.3125rem;
  max-width: 2.1875rem;
  text-align: center;
  width: 100%; }
  @media (min-width: 46.875rem) {
    .insiderTips__itemNumber {
      display: inline-block; } }

.insiderTips__itemText {
  color: #076A6C;
  font-family: "ProximaNova-Light", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.25rem;
  text-align: center;
  width: 100%; }
  @media (min-width: 64rem) {
    .insiderTips__itemText {
      font-size: 1.125rem;
      line-height: 1.375rem; } }

.insiderTips__itemDivider {
  opacity: 0.6;
  filter: alpha(opacity=60);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
  background-color: #076A6C;
  height: 0.3125rem;
  margin: 1.875rem auto;
  width: 2.1875rem; }
  @media (min-width: 46.875rem) {
    .insiderTips__itemDivider {
      display: none; } }

.knockOutBtn {
  border: 1px solid white;
  padding: 16px;
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-size: 0.875rem;
  text-align: center;
  display: inline-block;
  text-decoration: none;
  color: white; }
  .knockOutBtn__Tile {
    padding: 8px;
    margin: 0;
    border: 1px solid white;
    font-family: "ProximaNova-Regular", Arial, sans-serif;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-size: 0.875rem;
    text-align: center;
    display: inline-block;
    text-decoration: none;
    color: white; }
  @media only all and (max-width: 768px) {
    .knockOutBtn {
      font-size: 0.75rem;
      margin: 32px 0px; } }

@media (max-width: 768px) {
  .knockOutBtn__Tile {
    font-size: 0.75rem; } }

.mosaicSlider__loadMore {
  border: 1px solid #15264c !important;
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #15264c;
  width: 30%; }

.blueBtn {
  background-color: #005edc;
  padding: 16px;
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-size: 0.875rem;
  text-align: center;
  display: inline-block;
  text-decoration: none;
  color: white; }
  @media only all and (max-width: 768px) {
    .blueBtn {
      font-size: 0.75rem;
      margin: 32px 0px; } }

.goldBtn {
  background-color: #F9C700;
  padding: 16px;
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-size: 0.875rem;
  text-align: center;
  display: inline-block;
  text-decoration: none;
  color: #15264c; }
  @media only all and (max-width: 768px) {
    .goldBtn {
      font-size: 0.75rem;
      margin: 32px 0px; } }

.max-width {
  max-width: 1440px; }

.merchandising-slant-copy {
  text-align: center; }
  .merchandising-slant-copy .paragraphCopy {
    width: 60%;
    margin: 0 auto; }
  .merchandising-slant-copy .inlineHyperlink {
    color: #ffffff; }

.weekend-section {
  background: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/caribbean/image/caribbean-beach-texture-background-slant.jpg") no-repeat;
  background-size: cover;
  width: 100%;
  color: white; }

.slanted {
  position: relative;
  z-index: 2;
  margin: 100px 0;
  padding: 2.5% 0;
  min-height: 120px;
  -ms-transform: skewY(-6deg);
  /* IE 9 */
  /* Safari */
  transform: skewY(-6deg);
  /* Standard syntax */ }

.weekend-section .mdc-layout-grid {
  -ms-transform: skewY(6deg);
  /* IE 9 */
  /* Safari */
  transform: skewY(6deg);
  /* Standard syntax */ }

/* FOR IPAD TO HAVE BACKGROUND HEIGHT */
.tile-image {
  background-size: cover;
  width: 100%;
  height: 420px; }

.bahamas {
  background: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/perfect-day/perfect-day-island-cococay-bahamas-paddle-boats.jpg");
  background-size: cover; }

.mexico {
  background: url("https://www.royalcaribbean.com/content/dam/royal/data/ports/puerto-costa-maya-mexico/costa-maya-mexico-chacchoben-mayan-ruins.jpg");
  background-size: cover; }

.cuba {
  background: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/cuba/havana-cuba-vintage-green-car.jpg");
  background-size: cover; }

.jamaica {
  background: url("https://www.royalcaribbean.com/content/dam/royal/data/ports/ocho-rios-jamaica/ocho-rios-jamaica-dunns-river-falls-vertical.jpg");
  background-size: cover; }

.layer {
  background-color: rgba(0, 0, 0, 0.5);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.overlay {
  position: relative;
  text-align: center; }

.overlay::before {
  content: ' ';
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3); }

.destination-title {
  margin-top: calc(15vw/2);
  z-index: 1;
  position: relative;
  line-height: 200%; }

.destination-type {
  width: 100%;
  font-size: 3rem;
  color: #fff; }

.destination-text {
  width: 90%;
  margin: 0 auto;
  margin-bottom: 16px; }

.destinations {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  overflow: hidden;
  -ms-flex-align: end;
      align-items: flex-end; }

.mobileOnly {
  display: none; }

.space {
  margin-top: 1500px;
  margin-right: 50px;
  margin-left: 50px; }

.button-border {
  font-family: "ProximaNova-Regular", Arial, sans-serif;
  text-decoration: none;
  border: 1px solid white;
  padding: 10px;
  letter-spacing: 1px;
  text-align: center;
  font-size: .75rem;
  color: #fff;
  margin: 0 auto;
  display: inline-block;
  white-space: nowrap; }

/* MEDIA QUERIES */
@media screen and (min-width: 1440px) and (max-width: 1919px) {
  .mdc-layout-grid__inner {
    padding-top: 35px; }
  .destination-title {
    margin-top: calc(20vw/2); } }

@media screen and (min-width: 1025px) and (max-width: 1439px) {
  .destination-title {
    margin-top: calc(18vw/2); }
  .tile-image {
    height: 320px; } }

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .destination-title {
    margin-top: calc(35vw/2); } }

@media screen and (min-width: 375px) and (max-width: 767px) {
  .destination-title {
    margin-top: calc(35vw/2); }
  .merchandising-slant-copy {
    text-align: center; }
    .merchandising-slant-copy .paragraphCopy {
      width: 100%;
      margin: 0 auto; } }

@media screen and (max-width: 479px) {
  .merchandising-slant-copy {
    text-align: center; }
    .merchandising-slant-copy .paragraphCopy {
      width: 100%;
      margin: 0 auto; }
  .mobileOnly {
    display: block; }
  .desktopOnly {
    display: none; }
  .destination-title {
    margin-top: calc(65vw/2); } }

.outsideCarousel .itineraryCarousel {
  margin-top: 0 !important; }

.outsideCarousel .itineraryCarousel__title {
  color: #15264c; }

.outsideCarousel .itineraryCarousel__description {
  color: #4a4a4a; }

.outsideCarousel .carouselTabs__filter {
  color: #005edc; }

.outsideCarousel .carouselTabs__link {
  color: #005edc; }

.itineraryCarousel {
  margin-top: -340px;
  position: relative;
  z-index: 20; }

.itineraryCarousel__base {
  background-color: transparent; }

.itineraryCarousel__title {
  color: white; }

.itineraryCarousel__description {
  color: white; }

.carouselTabs__filter {
  color: white; }

.carouselTabs__link {
  color: white; }

.carouselItem__base {
  background-color: white;
  padding: 0;
  margin: 0.625rem; }

@media screen and (max-width: 479px) {
  .itineraryCarousel {
    margin-top: -310px; }
  .itineraryCarousel__title {
    font-size: 2.1rem;
    text-align: left; }
  .itineraryCarousel__description {
    text-align: left; } }

.carib-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/caribbean/image/caribbean-jumping-off-boat-excursion-cruises.jpg"); }

.hawaii-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/hawaii/amazing-hawaii-beach-with-green-mountains.jpg"); }

.australia-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/australia/australia-sydney-opera-house.jpg"); }

.nz-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/australia-new-zealand/new-zealand-milford-sound-fjord.jpg"); }

.greece-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/greece-greek-isles/cliff-greece-village-and-beach-santorini.jpg"); }

.belize-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/belize/belize-blue-diving-whole.jpg"); }

.southern-caribbean-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/southern-caribbean/caribbean-bay-aerial-view.jpg"); }

.vanuatu-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/vanuatu-fiji/turquoise-water-beach-south-pacific.jpg"); }

.west-coast-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/west-coast/san-francisco-golden-gate-bridge.jpg"); }

.spain-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/spain-portugal-canary-islands/cala-mallorca-spain.jpg"); }

.eastern-caribbean-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/eastern-caribbean/caribbean-seaside-fort.jpg"); }

.italy-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/italy/italy-amalfi-coast.jpg"); }

.new-england-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/new-england/northeast-square-and-historical-figure-statue.jpg"); }

.bermuda-background-image {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/bermuda/bermuda-turquoise-beach-and-pink-sand.jpg"); }

.mexico-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/mexico/cozumel-mexico-cenote-swimming-on-rocks.JPG"); }

.trans-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/transatlantic/transatlantic-transpacific-cruises.jpg"); }

.alaska-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/alaska/alaska-ocean-and-snow-mountains.jpg"); }

.baltics-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/baltic-sea/baltic-sea-scandinavia-estonia-city.jpg"); }

.bahamas-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/bahamas/image/adventure-diving-feeding-sharks-in-the-bahamas.jpg"); }

.british-isles-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/british-isles/eilean-donan-castle-scottish-highlands.jpg"); }

.western-caribbean-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/western-caribbean/western-caribbean-jamaica-waterfall.jpg"); }

.croatia-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/croatia/dubrovnik-cityscape-walls-and-coastline.jpg"); }

.puertorico-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/puerto-rico/historic-puerto-rico-and-old-fort-attraction.jpg"); }

.jamaica-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/jamaica/sunset-river-colorful-boats-jamaica.jpg"); }

.canada-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/canada/canada-coast-lighthouse.jpg"); }

.panama-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/panama-canal/panama-canal-cruise-entry.jpg"); }

.cuba-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/cuba/cuba-cruise-destination.jpg"); }

.caribbean-beaches-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/caribbean-beaches/assets/beautiful-barbados-bottom-bay-beach-hero.jpg"); }

.perfect-day-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/perfect-day/assets/perfect-day-island-cococay-bahamas-overview-aerial.jpg"); }

.top-10-caribbean-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/top-10-caribbean-islands/window-cave-puerto-rico.jpg"); }

.caribbean-ancient-ruins-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/caribbean-ancient-ruins-and-cities/assets/san-juan-puerto-rico-san-felipe-del-morrro-fort-hero.jpg"); }

.caribbean-rainforest-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/caribbean-rainforest-and-parks/grenada-grand-etang-lake-and-rainforest.jpg"); }

.caribbean-wildlife-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/caribbean-wildlife-encounters/swimming-with-whale-sharks-in-cozumel-mexico.jpg"); }

.alaska-glaciers-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/alaska-glacier-cruises/alaska-glacier-bay-from-cruise-ship.jpg"); }

.alaska-cruise-tours-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/alaska-cruise-tours/wonder-lake-denali-national-park-mountains-background.jpg"); }

.alaska-national-parks-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/alaska-national-parks/spire-cove-kenai-fjords-national-park-resurrection-bay.jpg"); }

.alaska-wildlife-encounters-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/alaska-whale-watching-and-wildlife/whale-jumping-in-alaska.jpg"); }

.arabian-gulf-north-africa-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/arabian-gulf/assets/artificial-palm-island-dubai-united-arab-emirates.jpg"); }

.china-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/china-cruises/traditional-temple-suzhou-china.jpg"); }

.france-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/france/assets/french-riviera-botanical-garden.jpg"); }

.iceland-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/iceland/assets/stokksnes-iceland-lupine-flowers.jpg"); }

.ireland-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/ireland/assets/ireland-moher-in-county-clare-cliffs.jpg"); }

.japan-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/japan/assets/japan-fuji-mountain-himeji-castle-full-cherry-blossom-h.jpg"); }

.norway-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/norway/aurora-borealis-activity-norway.jpg"); }

.thailand-hero {
  background-image: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/thailand/assets/thailand-bangkok-marble-temple.jpg"); }

.text-white {
  color: white; }

@media (max-width: 768px) {
  .carib-background-image {
    background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/caribbean/image/caribbean-jumping-off-boat-excursion-cruises.jpg"); }
  .hawaii-background-image {
    background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/hawaii/amazing-hawaii-beach-with-green-mountains.jpg"); }
  .australia-background-image {
    background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/australia/australia-sydney-opera-house.jpg"); } }

@media (min-width: 769px) {
  .carib-background-image {
    background-image: url("https://www.royalcaribbean.com/content/dam/royal/data/ship/symphony/caribbean-adventure-jumping-boat-cruises.jpg"); }
  .hawaii-background-image {
    background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/hawaii/amazing-hawaii-beach-with-green-mountains.jpg"); }
  .australia-background-image {
    background-image: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/australia/australia-sydney-opera-house.jpg"); } }

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.hero_parallex {
  width: 100%;
  background-color: #002f36;
  position: relative; }
  .hero_parallex__black {
    background-color: black; }
  .hero_parallex__navy {
    background-color: #000c28; }

.page__parAbove {
  position: relative; }

.filler_content {
  width: 100%;
  height: 200vh; }

.hero_parallex_banner {
  width: 100%;
  text-align: center;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  z-index: 3;
  -ms-flex: 1 1 0%;
      flex: 1 1 0%;
  -ms-flex-flow: row nowrap;
      flex-flow: row nowrap;
  place-content: stretch center;
  -ms-flex-align: center;
      align-items: center; }

.tiles2.parbase {
  margin: auto; }

.aem-AuthorLayer-Design .hero_parallex_banner {
  height: 700px !important; }

.aem-AuthorLayer-Edit .hero_parallex_banner {
  height: 700px !important; }

.hero_parallex_banner {
  height: 70vh; }

.hero_parallex_image {
  width: 100%;
  position: absolute;
  margin: 0 auto;
  top: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  z-index: 1; }
  .hero_parallex_image img {
    width: 100%;
    height: 100%;
    object-fit: cover; }
  .hero_parallex_image::after {
    content: ' ';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    /* Gradient blue/green: */
    background-image: linear-gradient(-180deg, transparent 52%, #002f36 101%);
    z-index: 2; }
  .hero_parallex_image__black::after {
    /* Gradient black: */
    background-image: linear-gradient(-180deg, transparent 52%, black 101%); }
  .hero_parallex_image__navy::after {
    /* Gradient black: */
    background-image: linear-gradient(-180deg, transparent 52%, #000c28 101%); }
  .hero_parallex_image img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.aem-AuthorLayer-Design .hero_parallex_image {
  height: 700px !important; }

.aem-AuthorLayer-Edit .hero_parallex_image {
  height: 700px !important; }

.hero_parallex_image {
  height: 83vh; }

.hero_parallex_content {
  position: relative;
  z-index: 2;
  max-width: 1440px;
  margin: auto;
  display: -ms-flexbox;
  display: flex;
  -ms-flex: 1 1 0%;
      flex: 1 1 0%;
  -ms-flex-flow: row nowrap;
      flex-flow: row nowrap;
  place-content: stretch space-between;
  -ms-flex-align: stretch;
      align-items: stretch;
  padding-top: 75px;
  padding-bottom: 75px; }
  .hero_parallex_content .hero_parallex_content_intro {
    width: 50%;
    padding: 20px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-positive: 1;
        flex-grow: 1;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-direction: column;
        flex-direction: column; }
  .hero_parallex_content .hero_parallex_content_video {
    -ms-flex-align: center;
        align-items: center;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-positive: 1;
        flex-grow: 1;
    width: 50%;
    padding: 20px; }

@media (max-width: 768px) {
  .hero_parallex_content {
    -ms-flex-flow: column nowrap;
        flex-flow: column nowrap; }
  .hero_parallex_content_video {
    width: auto !important; }
  .hero_parallex_content_intro {
    width: auto !important; } }

/* FEATURED IMAGE */
.section-feature-image img {
  display: -ms-flexbox;
  display: flex;
  width: 90%;
  height: 600px;
  margin: 0 auto;
  background-size: cover;
  background-position: center center;
  object-fit: cover; }

.banner_withtext {
  margin: auto; }

.white-text-box {
  background-color: white;
  width: 75%;
  margin: 0 auto;
  padding: 80px;
  margin-top: -64px;
  text-align: center;
  position: relative; }

/* MEDIA QUERIES */
@media screen and (min-width: 1920px) {
  .banner_withtext {
    max-width: 1920px; } }

@media screen and (min-width: 1025px) and (max-width: 1439px) {
  .section-feature-image img {
    height: 450px; }
  .white-text-box {
    width: 70%; } }

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .section-feature-image img {
    height: 320px;
    width: 91%; }
  .white-text-box {
    background-color: white;
    width: 80%;
    margin: 0 auto;
    padding: 24px 24px;
    margin-top: -64px; } }

@media screen and (min-width: 375px) and (max-width: 767px) {
  .section-feature-image img {
    height: 320px;
    width: 91%; }
  .white-text-box {
    background-color: white;
    width: 76%;
    margin: 0 auto;
    padding: 16px 24px;
    margin-top: -50px;
    text-align: left; } }

@media screen and (max-width: 479px) {
  .white-text-box {
    background-color: white;
    width: 67%;
    margin: 0 auto;
    padding: 16px 24px;
    margin-top: -50px;
    text-align: left; } }

body {
  background-color: white; }

.wrapper {
  height: 100%;
  width: 100%;
  background-color: white;
  margin: auto;
  background-size: cover; }
  .wrapper .container {
    position: relative;
    width: 100%;
    height: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center; }
    .wrapper .container:before {
      content: ' ';
      background-image: linear-gradient(to right bottom, white 0%, white calc(50% - 1px), transparent 50%);
      position: absolute;
      width: 100%;
      height: 96px;
      top: 0;
      left: 0;
      z-index: 3; }
    .wrapper .container:after {
      content: ' ';
      background-image: linear-gradient(to left top, white 0%, white calc(50% - 1px), transparent 50%);
      position: absolute;
      width: 100%;
      height: 96px;
      bottom: 0;
      left: 0;
      z-index: 3; }
    .wrapper .container .background {
      background-size: cover;
      width: 100%;
      height: 100%;
      z-index: 1;
      position: absolute;
      background-repeat: no-repeat;
      top: 0;
      left: 0;
      background-position: center center; }
      .wrapper .container .background:before {
        content: ' ';
        background-color: rgba(21, 38, 76, 0.8);
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        z-index: 1; }
      .wrapper .container .background:after {
        content: ' ';
        background-image: radial-gradient(50% 150%, transparent 50%, rgba(0, 0, 0, 0.41) 100%);
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        z-index: 2; }
      .wrapper .container .background__black::before {
        background-color: transparent; }
    .wrapper .container .content {
      color: white;
      z-index: 5;
      position: relative;
      padding-top: 96px;
      padding-bottom: 96px;
      padding-left: 30px;
      padding-right: 30px; }
  .wrapper .container.centercontent {
    -webkit-box-align: center;
    -ms-flex-align: center;
    -ms-grid-row-align: center;
    align-items: center; }

/* MEDIA QUERIES */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .container:before {
    height: 48px !important; }
  .container:after {
    height: 48px !important; } }

@media screen and (min-width: 375px) and (max-width: 767px) {
  .container:before {
    height: 48px !important; }
  .container:after {
    height: 48px !important; } }

.tallTile {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  overflow: hidden;
  -ms-flex-align: end;
      align-items: flex-end; }
  .tallTile img {
    width: 100%;
    object-fit: cover;
    height: 500px;
    position: relative;
    z-index: 0; }
  .tallTile__content {
    background-size: cover;
    width: 100%;
    height: 420px; }
  .tallTile__overlay {
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    clear: float;
    width: 100%;
    height: 500px;
    /* Gradient: */
    opacity: 0.5;
    background-image: linear-gradient(-180deg, transparent 0%, #000000 50%, transparent 100%);
    color: #ffffff; }
  .tallTile__title {
    line-height: 200%;
    text-align: center;
    z-index: 2;
    color: white;
    margin: -350px auto 0 auto;
    position: absolute;
    width: 100%; }

.overlay {
  position: relative;
  text-align: center; }

@media only screen and (max-width: 1440px) {
  .tallTile__overlay {
    height: 450px; } }

@media only screen and (max-width: 1280px) {
  .tallTile__overlay {
    height: 450px; } }

@media only screen and (max-width: 1024px) {
  .tallTile__content {
    height: 360px; }
  .tallTile__title {
    margin: -400px auto 0 auto; } }

@media only screen and (max-width: 839px) {
  .overlay {
    height: 250px; }
  .tallTile__overlay {
    height: 300px; }
  .tallTile__title {
    margin: -467px auto 0 auto; } }

.promoPencilBanner {
  background-color: #FF6600;
  height: 100%;
  width: 100%;
  padding-top: 20px;
  padding-left: 20px; }

.space-for-carousel {
  height: 300px; }

.slant-content {
  padding: 0 !important; }

.twoWaysCopy {
  text-align: center; }
  .twoWaysCopy .introCopy {
    width: 80%;
    margin: 0 auto; }

.twoWaysImages img {
  object-fit: cover;
  width: 100%;
  height: 300px; }
  @media only all and (min-width: 375px) and (max-width: 767px) {
    .twoWaysImages img {
      object-fit: cover;
      width: 100%;
      height: 190px; } }

.alt-text-copy {
  text-align: left; }

.cuba-info {
  background: url("https://www.royalcaribbean.com/content/dam/royal/content/destinations/caribbean/image/caribbean-beach-texture-background-slant.jpg") no-repeat center center transparent;
  background-size: cover;
  width: 100%;
  height: 650px;
  color: white;
  text-align: center; }

.alaska-info {
  background: url("https://www.royalcaribbean.com/content/dam/royal/ports-and-destinations/destinations/Alaska/assets/alaska-juneau-pink-flowers-nature-mountains.jpg") no-repeat center center transparent;
  background-size: cover;
  width: 100%;
  height: 650px;
  color: white;
  text-align: center; }

.info-copy {
  width: 70% !important;
  margin: 0 auto !important;
  padding-bottom: 80px; }

.icon {
  width: 22%;
  padding-bottom: 16px; }

.logo {
  width: 36%; }

/* MEDIA QUERIES */
@media screen and (min-width: 1440px) and (max-width: 1919px) {
  .mdc-layout-grid__inner {
    padding-top: 35px; } }

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .twoWaysCopy {
    text-align: center; }
    .twoWaysCopy .introCopy {
      width: 100%;
      margin: 0 auto; }
  .space-for-carousel {
    height: 276px; }
  .cuba-info {
    height: 550px; }
  .info-copy {
    padding-bottom: 32px; } }

@media screen and (min-width: 767px) and (max-width: 840px) {
  .cuba-info {
    height: 750px; } }

@media screen and (min-width: 375px) and (max-width: 767px) {
  .twoWaysCopy .introCopy {
    width: 100%; }
  .twoWaysImages {
    height: 190px; }
  .space-for-carousel {
    height: 276px; }
  .cuba-tips-btn {
    margin: 0 !important; }
  .info-copy {
    width: 95% !important;
    padding-bottom: 32px; } }

@media screen and (max-width: 479px) {
  .twoWaysCopy {
    text-align: left; }
    .twoWaysCopy .introCopy {
      font-size: 1rem; }
  .max-width {
    padding: 0 !important; }
  .mobileOnly {
    display: block; }
  .desktopOnly {
    display: none; }
  .cuba-info {
    height: 1055px; }
  .info-copy {
    width: 90% !important;
    padding-top: 32px; }
  .cuba-info .paragraphCopy {
    width: 80%;
    margin: 0 auto; }
  .icon {
    width: 16%; }
  .cuba-logo {
    width: 50%;
    margin: 0 auto; }
  .logo {
    width: 60%; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9yZXNldC5zY3NzIiwiX2ZvbnRzLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJfdHlwb2dyYXBoeS5zY3NzIiwiX2NvbG9ycy5zY3NzIiwiX2luc2lkZXJ0aXBzLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJfYnV0dG9ucy5zY3NzIiwiX2ZvdXJUaWxlU2xhbnQuc2NzcyIsIl9pdGluZXJhcnlDYXJvdXNlbC5zY3NzIiwiX3BhcmFsbGF4SGVyby5zY3NzIiwiX3NlY3Rpb25GZWF0dXJlLnNjc3MiLCJfc2xhbnQuc2NzcyIsIl90YWxsVGlsZS5zY3NzIiwic3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0VBR0U7QUFFRjs7Ozs7Ozs7Ozs7OztFQWFDLFVBQVU7RUFDVixXQUFXO0VBQ1gsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QseUJBQXlCLEVBQ3pCOztBQUNELGlEQUFpRDtBQUNqRDs7RUFFQyxlQUFlLEVBQ2Y7O0FBQ0Q7RUFDQyxlQUFlLEVBQ2Y7O0FBQ0Q7RUFDQyxpQkFBaUIsRUFDakI7O0FBQ0Q7RUFDQyxhQUFhLEVBQ2I7O0FBQ0Q7O0VBRUMsWUFBWTtFQUNaLGNBQWMsRUFDZDs7QUFDRDtFQUNDLDBCQUEwQjtFQUMxQixrQkFBa0IsRUFDbEI7O0FDL0NELGdDQUFnQztBQUVoQztFQUNJLG1DQUFtQztFQUNuQywrQ0FBUTtFQUNSLHFWQUErVDtFQUMvVCxvQkFBb0I7RUFDcEIsbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UscUNBQXFDO0VBQ3JDLGlEQUFRO0VBQ1IsaVdBQTJVO0VBQzNVLG9CQUFvQjtFQUNwQixtQkFBbUIsRUFBQTs7QUFHckI7RUFDRSxnQ0FBZ0M7RUFDaEMsNENBQVE7RUFDUixtVUFBNlM7RUFDN1Msb0JBQW9CO0VBQ3BCLG1CQUFtQixFQUFBOztBQUdyQjtFQUNFLGlDQUFpQztFQUNqQyw2Q0FBUTtFQUNSLHlVQUFtVDtFQUNuVCxvQkFBb0I7RUFDcEIsbUJBQW1CLEVBQUE7O0FBR3JC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O0lBQ0UsZUFBZSxFQUNoQjtFQUVEO0lBQ0UsY0FBYyxFQUNmO0VBRUQ7SUFDQyxlQUFlLEVBQ2Y7RUFFRDtJQUNFLHNCQUFzQjtJQUN0QixrQkFBa0IsRUFDbkI7RUFFRDtJQUNFLFdBQVc7SUFDWCxlQUFlLEVBQ2hCO0VBRUQ7SUFDRSxXQUFXLEVBQ1o7RUFFRDtJQUNFLFdBQVc7SUFDWCxlQUFlLEVBQ2hCO0VBRUQ7SUFDRSxXQUFXLEVBQ1osRUFBQSIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0LyBcbiAgIHYyLjAgfCAyMDExMDEyNlxuICAgTGljZW5zZTogbm9uZSAocHVibGljIGRvbWFpbilcbiovXG5cbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbmgxLCBoMiwgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsIFxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGZvbnQtc2l6ZTogMTAwJTtcblx0Zm9udDogaW5oZXJpdDtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgXG5mb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbmJvZHkge1xuXHRsaW5lLWhlaWdodDogMTtcbn1cbm9sLCB1bCB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5ibG9ja3F1b3RlLCBxIHtcblx0cXVvdGVzOiBub25lO1xufVxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXG5xOmJlZm9yZSwgcTphZnRlciB7XG5cdGNvbnRlbnQ6ICcnO1xuXHRjb250ZW50OiBub25lO1xufVxudGFibGUge1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzogMDtcbn0iLCIvKiBmb250IGltcG9ydHMgJiBkZWZpbml0aW9ucyAqL1xuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1Byb3hpbWFOb3ZhLVJlZ3VsYXInO1xuICAgIHNyYzogdXJsKCcvY3NzL2ZvbnRzL1Byb3hpbWFOb3ZhLVJlZ3VsYXIuZW90Jyk7XG4gICAgc3JjOiB1cmwoJy9jc3MvZm9udHMvUHJveGltYU5vdmEtUmVndWxhci53b2ZmMicpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoJy9jc3MvZm9udHMvUHJveGltYU5vdmEtUmVndWxhci53b2ZmJykgZm9ybWF0KFwid29mZlwiKSwgdXJsKCcvY3NzL2ZvbnRzL1Byb3hpbWFOb3ZhLVJlZ3VsYXIudHRmJykgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1SZWd1bGFyLnN2ZyNQcm94aW1hTm92YS1SZWd1bGFyJykgZm9ybWF0KFwic3ZnXCIpLCB1cmwoJy9jc3MvZm9udHMvUHJveGltYU5vdmEtUmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIik7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnUHJveGltYU5vdmEtUmVndWxhckl0JztcbiAgICBzcmM6IHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1SZWd1bGFySXQuZW90Jyk7XG4gICAgc3JjOiB1cmwoJy9jc3MvZm9udHMvUHJveGltYU5vdmEtUmVndWxhckl0LndvZmYyJykgZm9ybWF0KFwid29mZjJcIiksIHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1SZWd1bGFySXQud29mZicpIGZvcm1hdChcIndvZmZcIiksIHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1SZWd1bGFySXQudHRmJykgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1SZWd1bGFySXQuc3ZnI1Byb3hpbWFOb3ZhLVJlZ3VsYXJJdCcpIGZvcm1hdChcInN2Z1wiKSwgdXJsKCcvY3NzL2ZvbnRzL1Byb3hpbWFOb3ZhLVJlZ3VsYXJJdC5lb3Q/I2llZml4JykgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIik7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnUHJveGltYU5vdmEtQm9sZCc7XG4gICAgc3JjOiB1cmwoJy9jc3MvZm9udHMvUHJveGltYU5vdmEtQm9sZC5lb3QnKTtcbiAgICBzcmM6IHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1Cb2xkLndvZmYyJykgZm9ybWF0KFwid29mZjJcIiksIHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1Cb2xkLndvZmYnKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoJy9jc3MvZm9udHMvUHJveGltYU5vdmEtQm9sZC50dGYnKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKCcvY3NzL2ZvbnRzL1Byb3hpbWFOb3ZhLUJvbGQuc3ZnI1Byb3hpbWFOb3ZhLUJvbGQnKSBmb3JtYXQoXCJzdmdcIiksIHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuICBcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdQcm94aW1hTm92YS1MaWdodCc7XG4gICAgc3JjOiB1cmwoJy9jc3MvZm9udHMvUHJveGltYU5vdmEtTGlnaHQuZW90Jyk7XG4gICAgc3JjOiB1cmwoJy9jc3MvZm9udHMvUHJveGltYU5vdmEtTGlnaHQud29mZjInKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKCcvY3NzL2ZvbnRzL1Byb3hpbWFOb3ZhLUxpZ2h0LndvZmYnKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoJy9jc3MvZm9udHMvUHJveGltYU5vdmEtTGlnaHQudHRmJykgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1MaWdodC5zdmcjUHJveGltYU5vdmEtTGlnaHQnKSBmb3JtYXQoXCJzdmdcIiksIHVybCgnL2Nzcy9mb250cy9Qcm94aW1hTm92YS1MaWdodC5lb3Q/I2llZml4JykgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIik7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnQmViYXMnO1xuICAgIHNyYzogdXJsKCcvY3NzL2ZvbnRzL0JFQkFTX19fLmVvdCcpO1xuICAgIHNyYzogdXJsKCcvY3NzL2ZvbnRzL0JFQkFTX19fLndvZmYnKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoJy9jc3MvZm9udHMvQkVCQVNfX18udHRmJykgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybCgnL2Nzcy9mb250cy9CRUJBU19fXy5zdmcjQmViYXMnKSBmb3JtYXQoXCJzdmdcIiksIHVybCgnL2Nzcy9mb250cy9CRUJBU19fXy5vdGY/I2llZml4JykgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIik7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnS2FwcmEnO1xuICAgIHNyYzogdXJsKCcvY3NzL2ZvbnRzL0thcHJhLVJlZ3VsYXIuZW90Jyk7XG4gICAgc3JjOiB1cmwoJy9jc3MvZm9udHMvS2FwcmEtUmVndWxhci53b2ZmJykgZm9ybWF0KFwid29mZlwiKSwgdXJsKCcvY3NzL2ZvbnRzL0thcHJhLVJlZ3VsYXIudHRmJykgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybCgnL2Nzcy9mb250cy9LYXByYS1SZWd1bGFyLnN2ZyNLYXByYScpIGZvcm1hdChcInN2Z1wiKSwgdXJsKCcvY3NzL2ZvbnRzL0thcHJhLVJlZ3VsYXIub3RmPyNpZWZpeCcpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gIFxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1NsaWNrJztcbiAgICBzcmM6IHVybCgnL2Nzcy9mb250cy9zbGljay5lb3QnKTtcbiAgICBzcmM6IHVybCgnL2Nzcy9mb250cy9zbGljay53b2ZmJykgZm9ybWF0KFwid29mZlwiKSwgdXJsKCcvY3NzL2ZvbnRzL3NsaWNrLnR0ZicpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoJy9jc3MvZm9udHMvc2xpY2suc3ZnI3NsaWNrJykgZm9ybWF0KFwic3ZnXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gICIsIi8qIFJDQ0wgVmFyaWFibGVzICovXG5cbiRyY2NsX2JsYWNrOiAjMDAwMDAwO1xuJHJjY2xfbmF2eTogIzE1MjY0YztcbiRyY2NsX2dyYXk6ICM0YTRhNGE7XG4kcmNjbF9nb2xkOiAjRjlDNzAwO1xuJHJjY2xfYmx1ZTogIzAwNWVkYztcbiRyY2NsX3doaXRlOiAjZmZmZmZmO1xuJHJjY2xfbWFnZW50YTogI0YyMEVBNztcbiRyY2NsX2RhcmtncmVlbjogIzA3NkE2QztcbiRyY2NsX2xpZ2h0Z3JlZW46ICNCRUUxREY7XG5cbiRyY2NsX2JsYWNrb3BhY2l0eTEwOiByZ2JhKDAsIDAsIDAsIC4xKTtcbiRyY2NsX2JsYWNrb3BhY2l0eTQwOiByZ2JhKDAsIDAsIDAsIC40KTtcbiRyY2NsX2JsYWNrb3BhY2l0eTU1OiByZ2JhKDAsIDAsIDAsIC41NSk7XG4kcmNjbF9ibGFja29wYWNpdHk3NTogcmdiYSgwLCAwLCAwLCAuNzUpO1xuJHJjY2xfYmxhY2tvcGFjaXR5ODU6IHJnYmEoMCwgMCwgMCwgLjg1KTtcbiRyY2NsX3doaXRlb3BhY2l0eTUwOiBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwwKSAwJSwgI0ZGRkZGRiA0NyUsICNGRkZGRkYgNTMuMjclLCByZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO1xuLy8gJHJjY2xfY2hhcmNvYWxncmV5OiAjNGE0YTRhO1xuLy8gJHJjY2xfbm9iZWxncmV5OiAjOWI5YjliO1xuLy8gJHJjY2xfcHJpbWFyeWJsdWU6ICMwMDczZmY7XG4vLyAkcmNjbF9yZWQ6ICNkYjAwMTY7XG4vLyAkcmNjbF9yb3lhbGJsdWU6ICMwMjE2NTQ7XG4vLyAkcmNjbF9yZWRFcnJvcjogI0QwMDIxQjtcbi8vICRyY2NsX3NwaW5uZXJDb2xvcjogIzAwNUVEQztcbi8vICRvZmZzZXQ6IDE4Nztcbi8vICRkdXJhdGlvbjogMS40cztcblxuJHByb3hpbWEtbGlnaHQ6IFwiUHJveGltYU5vdmEtTGlnaHRcIiwgQXJpYWwsIHNhbnMtc2VyaWYgO1xuJHByb3hpbWEtcmVnOiBcIlByb3hpbWFOb3ZhLVJlZ3VsYXJcIiwgQXJpYWwsIHNhbnMtc2VyaWYgO1xuJHByb3hpbWEtYm9sZDogXCJQcm94aW1hTm92YS1Cb2xkXCIsIEFyaWFsLCBzYW5zLXNlcmlmIDtcbiRrYXByYTogJ0thcHJhJyxJbXBhY3QsJ0FyaWFsIE5hcnJvdycsQXJpYWwsc2Fucy1zZXJpZiA7XG4vLyAkdGl0bGUtZm9udDogbm9ybWFsIDI0cHgvMS41ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xuJGNvb2wtcmVkOiAjRjQ0MzM2O1xuJGJveC1zaGFkb3ctYm90dG9tLW9ubHk6IDAgMnB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcblxuJGJhc2VfZm9udDogJ09wZW4gU2FucycsIHNhbnMtc2VyaWY7XG4ka2FwcmE6IEthcHJhICsgJywgJyArICRiYXNlX2ZvbnQ7XG4kYmFzZV9mb250LXNpemU6IDE2cHg7XG5cbiRicmVha3BvaW50X21vYmlsZTogNzUwcHg7XG4kYnJlYWtwb2ludF90YWJsZXQ6IDEwMjRweDtcbiRicmVha3BvaW50X2Rlc2t0b3A6IDE0NDBweDtcbiRicmVha3BvaW50X21heF93aWR0aDogMTkyMHB4O1xuXG4kaWNvbnNfYmFzZS1wYXRoOiAnL2V0Yy9kZXNpZ25zL3JveWFsL2ljb25zLyc7XG4iLCIudHlwb2dyYXBoeSB7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uaGVyb2hlYWRlciB7XG4gICAgZm9udC1mYW1pbHk6ICRrYXByYTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAgICAgICBmb250LXNpemU6IDdyZW07XG4gICAgfVxuXG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjE0NDFweCkgYW5kIChtYXgtd2lkdGg6MTkxOXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNnJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjEwMjVweCkgYW5kIChtYXgtd2lkdGg6MTQ0MHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNnJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjc2OXB4KSBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiA1cmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgIH1cbn1cblxuLmhlYWRpbmcxIHtcbiAgZm9udC1mYW1pbHk6ICRrYXByYTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICBAbWVkaWEgb25seSBhbGwgYW5kIChtaW4td2lkdGg6IDE0NDFweCkge1xuICAgICAgZm9udC1zaXplOiA0cmVtO1xuICB9XG4gIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDoxMDI1cHgpIGFuZCAobWF4LXdpZHRoOjE0NDBweCkge1xuICAgICAgZm9udC1zaXplOiA0cmVtO1xuICB9XG4gIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDo3NjlweCkgYW5kIChtYXgtd2lkdGg6MTAyNHB4KSB7XG4gICAgICBmb250LXNpemU6IDRyZW07XG4gIH1cbiAgLy8gU0hPVUxEIFRISVMgQkUgNCBSRU0gQVQgMTAyND8gT1IgMi42MjU/LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1heC13aWR0aDo3NjhweCkge1xuICAgICAgZm9udC1zaXplOiAyLjYyNXJlbTtcbiAgfVxufVxuXG4uaGVhZGluZzIge1xuICBmb250LWZhbWlseTogJGthcHJhO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gICAgICBmb250LXNpemU6IDNyZW07XG4gIH1cbiAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjEwMjVweCkgYW5kIChtYXgtd2lkdGg6MTQ0MHB4KSB7XG4gICAgICBmb250LXNpemU6IDNyZW07XG4gIH1cbiAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjc2OXB4KSBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgfVxuICBAbWVkaWEgb25seSBhbGwgYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICB9XG4gIC8vIEhFQURJTkcgMiBGT1IgTU9CSUxFPy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxufVxuXG4uaGVhZGluZzMge1xuICAgIGZvbnQtZmFtaWx5OiAka2FwcmE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi42MjVyZW07XG4gICAgfVxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDoxMDI1cHgpIGFuZCAobWF4LXdpZHRoOjE0NDBweCkge1xuICAgICAgICBmb250LXNpemU6IDIuNjI1cmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtaW4td2lkdGg6NzY5cHgpIGFuZCAobWF4LXdpZHRoOjEwMjRweCkge1xuICAgICAgICBmb250LXNpemU6IDIuNjI1cmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgfVxufVxuXG4uaGVhZGluZzQge1xuICAgIGZvbnQtZmFtaWx5OiAka2FwcmE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjEwMjVweCkgYW5kIChtYXgtd2lkdGg6MTQ0MHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjc2OXB4KSBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgfVxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1heC13aWR0aDo3NjhweCkge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB9XG59XG5cbi5hcnRpY2xlVGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiAkcHJveGltYS1ib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjEwMjVweCkgYW5kIChtYXgtd2lkdGg6MTQ0MHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjc2OXB4KSBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICB9XG59XG5cbi5wdWxsUXVvdGUge1xuICAgIGZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJztcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG5cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtaW4td2lkdGg6IDE0NDFweCkge1xuICAgICAgICBmb250LXNpemU6IDIuMjVyZW07XG4gICAgfVxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDoxMDI1cHgpIGFuZCAobWF4LXdpZHRoOjE0NDBweCkge1xuICAgICAgICBmb250LXNpemU6IDIuMjVyZW07XG4gICAgfVxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDo3NjlweCkgYW5kIChtYXgtd2lkdGg6MTAyNHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWF4LXdpZHRoOjc2OHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgICB9XG4gICAgLy8gTU9CSUxFIFNJWkUgRk9SIFBVTEwgUVVPVEU/LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG59XG5cbi5zdWJIZXJvSGVhZGVyIHtcbiAgICBmb250LWZhbWlseTogJHByb3hpbWEtcmVnO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjEwMjVweCkgYW5kIChtYXgtd2lkdGg6MTQ0MHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWluLXdpZHRoOjc2OXB4KSBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjY4OHJlbTtcbiAgICB9XG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWF4LXdpZHRoOjc2OHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG59XG5cbi50aXRsZVVuZGVyVGlsZXMge1xuICAgIGZvbnQtZmFtaWx5OiAkcHJveGltYS1ib2xkO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgfVxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDoxMDI1cHgpIGFuZCAobWF4LXdpZHRoOjE0NDBweCkge1xuICAgICAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtaW4td2lkdGg6NzY5cHgpIGFuZCAobWF4LXdpZHRoOjEwMjRweCkge1xuICAgICAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICB9XG59XG5cbi5zdWJIZWFkaW5nIHtcbiAgICBmb250LWZhbWlseTogJHByb3hpbWEtcmVnO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgfVxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDoxMDI1cHgpIGFuZCAobWF4LXdpZHRoOjE0NDBweCkge1xuICAgICAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtaW4td2lkdGg6NzY5cHgpIGFuZCAobWF4LXdpZHRoOjEwMjRweCkge1xuICAgICAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICB9XG59XG5cbi5pbnRyb0NvcHl7XG4gICAgZm9udC1mYW1pbHk6ICRwcm94aW1hLXJlZztcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTUwJTtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1heC13aWR0aDo3NjhweCkge1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIH1cbn1cblxuLmRldGFpbHNUZXh0IHtcbiAgICBmb250LWZhbWlseTogJHByb3hpbWEtcmVnO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgfVxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1pbi13aWR0aDoxMDI1cHgpIGFuZCAobWF4LXdpZHRoOjE0NDBweCkge1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtaW4td2lkdGg6NzY5cHgpIGFuZCAobWF4LXdpZHRoOjEwMjRweCkge1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIH1cbn1cblxuLnBhcmFncmFwaENvcHkge1xuICAgIGZvbnQtZmFtaWx5OiAkcHJveGltYS1yZWc7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTUwJTtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1heC13aWR0aDo3NjhweCkge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxufVxuXG4ucGFyYWdyYXBoQ29weS0tYm9sZCB7XG4gICAgZm9udC1mYW1pbHk6ICRwcm94aW1hLWJvbGQ7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMjdweDtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1heC13aWR0aDo3NjhweCkge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxufVxuXG4uYXJ0aWNsZS1pdGVtIC5wYXJhZ3JhcGhDb3B5IHtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG5cbi5hcnRpY2xlTGlua3Mge1xuICAgIGZvbnQtZmFtaWx5OiAkcHJveGltYS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgY29sb3I6ICRyY2NsX2JsdWU7XG5cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cbn1cblxuLmh5cGVybGluayB7XG4gICAgZm9udC1mYW1pbHk6ICRwcm94aW1hLXJlZztcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcblxuICAgICZfX3doaXRlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRwcm94aW1hLXJlZztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWF4LXdpZHRoOjc2OHB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICB9XG59XG5cbi5pbmxpbmVIeXBlcmxpbmsge1xuICBmb250LWZhbWlseTogJHByb3hpbWEtcmVnO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAmX193aGl0ZSB7XG4gICAgZm9udC1mYW1pbHk6ICRwcm94aW1hLXJlZztcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbn1cblxuLnJpZ2h0UHJvdGVjdGVkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgZm9udC1zaXplOiAycmVtO1xuXG4gICAgQG1lZGlhIG9ubHkgYWxsIGFuZCAobWF4LXdpZHRoOjEwMjRweCkge1xuICAgICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgfVxufSIsIi5uYXZ5LXRleHQge1xuICAgIGNvbG9yOiAkcmNjbF9uYXZ5O1xufVxuXG4ud2hpdGUtdGV4dCB7XG4gICAgY29sb3I6ICRyY2NsX3doaXRlO1xufVxuXG4uZ3JheS10ZXh0IHtcbiAgICBjb2xvcjogJHJjY2xfZ3JheTtcbn0iLCJcblxuLmluc2lkZXJUaXBzIHtcbiAgICAmX19iYXNlMSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmNjbF9saWdodGdyZWVuO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1hcmdpbjogcmVtLWNhbGMoMjBweCAwIDEwcHggMCk7XG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygzMnB4IDApO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNDhweCAwIDMycHggMCk7XG4gICAgICB9XG4gIFxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luOiByZW0tY2FsYyg0MHB4IDAgMjBweCAwKTtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNjRweCAwIDQ4cHggMCk7XG4gICAgICB9XG4gIFxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0tdXApIHtcbiAgICAgICAgbWFyZ2luOiByZW0tY2FsYyg2MHB4IDAgNDBweCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgICZfX2ljb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IHJlbS1jYWxjKDU1cHgpO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gcmVtLWNhbGMoMTVweCkgYXV0bztcbiAgICAgIHdpZHRoOiByZW0tY2FsYyg1NXB4KTtcbiAgICB9XG4gIFxuICAgICZfX2ltYWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICBcbiAgICAmX190aXRsZSB7XG4gICAgICBjb2xvcjogJHJjY2xfZGFya2dyZWVuO1xuICAgICAgZm9udC1mYW1pbHk6ICRwcm94aW1hLWJvbGQ7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEycHgpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDJweCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNXB4KTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIFxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNHB4KTtcbiAgICAgIH1cbiAgXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS11cCkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2cHgpO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxNnB4KTtcbiAgXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg4cHgpO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgJl9fbGlzdCB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIFxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCkge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIH1cbiAgXG4gICAgICAmLS1kb3VibGUge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS11cCkge1xuICAgICAgICAgIC5pbnNpZGVyVGlwcyB7XG4gICAgICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMCAxNnB4KTtcbiAgICAgICAgICAgIH1cbiAgXG4gICAgICAgICAgICAmX19pdGVtTnVtYmVyIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoOHB4KTtcbiAgICAgICAgICAgIH1cbiAgXG4gICAgICAgICAgICAmX19pdGVtVGV4dCB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjRweCk7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyOXB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICAmLS1zaW5nbGUge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bS11cCkge1xuICAgICAgICAgIC5pbnNpZGVyVGlwcyB7XG4gICAgICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMCAyNzZweCk7XG4gICAgICAgICAgICB9XG4gIFxuICAgICAgICAgICAgJl9faXRlbVRleHQge1xuICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDMycHgpO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzlweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmX19pdGVtIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygwIDIwcHgpO1xuICBcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwpIHtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgICZfX2l0ZW1OdW1iZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRyY2NsX2RhcmtncmVlbjtcbiAgICAgIGNvbG9yOiAkcmNjbF9kYXJrZ3JlZW47XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgZm9udC1mYW1pbHk6ICRwcm94aW1hLWxpZ2h0O1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMnB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygxOHB4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDVweCk7XG4gICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDM1cHgpO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gIFxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmX19pdGVtVGV4dCB7XG4gICAgICBjb2xvcjogJHJjY2xfZGFya2dyZWVuO1xuICAgICAgZm9udC1mYW1pbHk6ICRwcm94aW1hLWxpZ2h0O1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMHB4KTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICBcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMThweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMnB4KTtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgICZfX2l0ZW1EaXZpZGVyIHtcbiAgICAgIEBpbmNsdWRlIG9wYWNpdHkoMC42KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyY2NsX2RhcmtncmVlbjtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNXB4KTtcbiAgICAgIG1hcmdpbjogcmVtLWNhbGMoMzBweCkgYXV0bztcbiAgICAgIHdpZHRoOiByZW0tY2FsYygzNXB4KTtcbiAgXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBcbiAgXG4gIFxuICAgIiwiLy8gSXQgc3RyaXBzIHRoZSB1bml0IG9mIG1lYXN1cmUgYW5kIHJldHVybnMgaXRcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vIE5ldyBTeW50YXgsIGFsbG93cyB0byBvcHRpb25hbGx5IGNhbGN1bGF0ZSBvbiBhIGRpZmZlcmVudCBiYXNlIHZhbHVlIHRvIGNvdW50ZXIgY29tcG91bmRpbmcgZWZmZWN0IG9mIGVtXFwncy5cbi8vIENhbGwgd2l0aCAxLCAyLCAzIG9yIDQgcGFyYW1ldGVycywgXFwncHhcXCcgaXMgbm90IHJlcXVpcmVkIGJ1dCBzdXBwb3J0ZWRcbi8vIHJlbS1jYWxjKDEwIDIwIDMwcHggNDApO1xuLy8gU3BhY2UgZGVsaW1pdGVkLCBpZiB5b3Ugd2FudCB0byBkZWxpbWl0IHVzaW5nIGNvbW1hXFwncywgd3JhcCBpdCBpbiBhbm90aGVyIHBhaXIgb2YgYnJhY2tldHNcbi8vIHJlbS1jYWxjKCgxMCwgMjAsIDMwLCA0MHB4KSk7XG4vLyBPcHRpb25hbGx5IGNhbGwgd2l0aCBhIGRpZmZlcmVudCBiYXNlIChlZzogOHB4KSB0byBjYWxjdWxhdGUgZW0uXG4vLyByZW0tY2FsYygxNnB4IDMycHggNDhweCwgOHB4KTtcbi8vIElmIHlvdSByZXF1aXJlIHRvIGNvbW1hIHNlcGFyYXRlIHlvdXIgbGlzdFxuLy8gcmVtLWNhbGMoKDE2cHgsIDMycHgsIDQ4KSwgOHB4KTtcblxuQGZ1bmN0aW9uIGNvbnZlcnQtdG8tcmVtKCR2YWx1ZSwgJGJhc2UtdmFsdWU6ICRiYXNlX2ZvbnQtc2l6ZSkgIHtcbiAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlLXZhbHVlKSAqIDFyZW07XG4gIEBpZiAoJHZhbHVlID09IDByZW0pIHsgJHZhbHVlOiAwOyB9IC8vIFR1cm4gMGVtIGludG8gMFxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlLXZhbHVlOiAkYmFzZV9mb250LXNpemUpIHtcbiAgJG1heDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIEBpZiAkbWF4ID09IDEgeyBAcmV0dXJuIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAxKSwgJGJhc2UtdmFsdWUpOyB9XG5cbiAgJHJlbVZhbHVlczogKCk7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XG4gICAgJHJlbVZhbHVlczogYXBwZW5kKCRyZW1WYWx1ZXMsIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlLXZhbHVlKSk7XG4gIH1cbiAgQHJldHVybiAkcmVtVmFsdWVzO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICBAaWYgJGJyZWFrcG9pbnQgPT0geHNtYWxsIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogcmVtLWNhbGMoJGJyZWFrcG9pbnRfbW9iaWxlKSkgIHsgQGNvbnRlbnQgOyB9IC8vIDAgdG8gNzUwcHhcbiAgfVxuICBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBzbWFsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IHJlbS1jYWxjKCRicmVha3BvaW50X21vYmlsZSkpIHsgQGNvbnRlbnQgOyB9IC8vIDc1MCBhbmQgdXBcbiAgfVxuICBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBtZWRpdW0ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiByZW0tY2FsYygkYnJlYWtwb2ludF90YWJsZXQpKSB7IEBjb250ZW50IDsgfSAvLyAxMDI0IGFuZCB1cFxuICB9XG4gIEBlbHNlIGlmICRicmVha3BvaW50ID09IG1lZGl1bS11cCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IHJlbS1jYWxjKCRicmVha3BvaW50X3RhYmxldCArIDFweCkpIHsgQGNvbnRlbnQgOyB9IC8vIDEwMjUgYW5kIHVwXG4gIH1cbiAgQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gbGFyZ2Uge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiByZW0tY2FsYygkYnJlYWtwb2ludF9kZXNrdG9wKSkgeyBAY29udGVudCA7IH0gLy8gMTQ0MCBhbmQgdXBcbiAgfVxuICBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSB4bGFyZ2Uge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiByZW0tY2FsYygkYnJlYWtwb2ludF9tYXhfd2lkdGgpKSB7IEBjb250ZW50IDsgfSAvLyAxOTIwIGFuZCB1cFxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIkJyZWFrcG9pbnQgbWl4aW4gc3VwcG9ydHM6IHhzbWFsbCwgc21hbGwsIG1lZGl1bSwgbWVkaXVtLXVwLCBsYXJnZSwgeGxhcmdlXCI7XG4gIH1cbn1cblxuQG1peGluIG9wYWNpdHkoJG9wYWNpdHkpIHtcbiAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICRvcGFjaXR5LWllOiAkb3BhY2l0eSAqIDEwMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PSRvcGFjaXR5LWllKTsgLy9JRThcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT1cIiskb3BhY2l0eS1pZStcIilcIjtcbn1cblxuQG1peGluIHByZWZpeGVzKCRwcm9wLCAkdmFsKXtcbiAgLXdlYmtpdC0jeyRwcm9wfTogJHZhbDtcbiAgLW1vei0jeyRwcm9wfTogJHZhbDtcbiAgLW1zLSN7JHByb3B9OiAkdmFsO1xuICAtby0jeyRwcm9wfTogJHZhbDtcbiAgI3skcHJvcH06ICR2YWw7XG59IiwiLmtub2NrT3V0QnRuIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGZvbnQtZmFtaWx5OiAkcHJveGltYS1yZWc7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IHdoaXRlO1xuXG4gICAgJl9fVGlsZSB7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgICBmb250LWZhbWlseTogJHByb3hpbWEtcmVnO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfSBcbiAgICBcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1heC13aWR0aDo3NjhweCkge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIG1hcmdpbjogMzJweCAwcHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAua25vY2tPdXRCdG5fX1RpbGUge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgfVxufVxuXG4ubW9zYWljU2xpZGVyX19sb2FkTW9yZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHJjY2xfbmF2eSAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiAkcHJveGltYS1yZWc7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkcmNjbF9uYXZ5O1xuICAgIHdpZHRoOiAzMCU7XG59XG5cblxuLmJsdWVCdG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyY2NsX2JsdWU7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBmb250LWZhbWlseTogJHByb3hpbWEtcmVnO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIEBtZWRpYSBvbmx5IGFsbCBhbmQgKG1heC13aWR0aDo3NjhweCkge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIG1hcmdpbjogMzJweCAwcHg7XG4gICAgfVxufVxuXG4uZ29sZEJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJjY2xfZ29sZDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGZvbnQtZmFtaWx5OiAkcHJveGltYS1yZWc7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICRyY2NsX25hdnk7XG5cbiAgICBAbWVkaWEgb25seSBhbGwgYW5kIChtYXgtd2lkdGg6NzY4cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBtYXJnaW46IDMycHggMHB4O1xuICAgIH1cbn0iLCJcbi8vIE1FUkNIQU5ESVNJTkcgU0xBTlRcblxuLm1heC13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiAxNDQwcHg7XG4gIH1cbiAgXG4gIC5tZXJjaGFuZGlzaW5nLXNsYW50LWNvcHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgXG4gICAgLnBhcmFncmFwaENvcHkge1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICBcbiAgICAuaW5saW5lSHlwZXJsaW5rIHtcbiAgICAgIGNvbG9yOiAkcmNjbF93aGl0ZTtcbiAgICB9XG4gIFxuICB9XG4gIFxuICAud2Vla2VuZC1zZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9jYXJpYmJlYW4vaW1hZ2UvY2FyaWJiZWFuLWJlYWNoLXRleHR1cmUtYmFja2dyb3VuZC1zbGFudC5qcGcnKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgXG4gIC5zbGFudGVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW46IDEwMHB4IDA7XG4gICAgcGFkZGluZzogMi41JSAwO1xuICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xuICAgIC1tcy10cmFuc2Zvcm06IHNrZXdZKC02ZGVnKTsgLyogSUUgOSAqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WSgtNmRlZyk7IC8qIFNhZmFyaSAqL1xuICAgIHRyYW5zZm9ybTogc2tld1koLTZkZWcpOyAvKiBTdGFuZGFyZCBzeW50YXggKi9cbiAgfVxuICBcbiAgLndlZWtlbmQtc2VjdGlvbiAubWRjLWxheW91dC1ncmlkIHtcbiAgICAtbXMtdHJhbnNmb3JtOiBza2V3WSg2ZGVnKTsgLyogSUUgOSAqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WSg2ZGVnKTsgLyogU2FmYXJpICovXG4gICAgdHJhbnNmb3JtOiBza2V3WSg2ZGVnKTsgLyogU3RhbmRhcmQgc3ludGF4ICovXG4gIH0vKiBGT1IgSVBBRCBUTyBIQVZFIEJBQ0tHUk9VTkQgSEVJR0hUICovXG4gIFxuICBcbiAgXG4gIC50aWxlLWltYWdlIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogNDIwcHg7XG4gIH1cbiAgXG4gIC5iYWhhbWFzIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9wZXJmZWN0LWRheS9wZXJmZWN0LWRheS1pc2xhbmQtY29jb2NheS1iYWhhbWFzLXBhZGRsZS1ib2F0cy5qcGcnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB9XG4gIFxuICAubWV4aWNvIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9kYXRhL3BvcnRzL3B1ZXJ0by1jb3N0YS1tYXlhLW1leGljby9jb3N0YS1tYXlhLW1leGljby1jaGFjY2hvYmVuLW1heWFuLXJ1aW5zLmpwZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cbiAgXG4gIC5jdWJhIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9jdWJhL2hhdmFuYS1jdWJhLXZpbnRhZ2UtZ3JlZW4tY2FyLmpwZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cbiAgXG4gIC5qYW1haWNhIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9kYXRhL3BvcnRzL29jaG8tcmlvcy1qYW1haWNhL29jaG8tcmlvcy1qYW1haWNhLWR1bm5zLXJpdmVyLWZhbGxzLXZlcnRpY2FsLmpwZycpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cbiAgXG4gIFxuICAubGF5ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgXG4gIC5vdmVybGF5e1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgXG4gIC5vdmVybGF5OjpiZWZvcmV7XG4gICAgY29udGVudDogJyAnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICB9XG4gIFxuICAuZGVzdGluYXRpb24tdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMTV2dy8yKTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMjAwJTtcbiAgfVxuICBcbiAgLmRlc3RpbmF0aW9uLXR5cGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICBcbiAgLmRlc3RpbmF0aW9uLXRleHR7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOjE2cHg7XG4gIH1cbiAgXG4gIC5kZXN0aW5hdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbiAgXG4gIC5tb2JpbGVPbmx5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIFxuICAuc3BhY2Uge1xuICAgIG1hcmdpbi10b3A6IDE1MDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDUwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gIH1cblxuICBcbiAgLmJ1dHRvbi1ib3JkZXIge1xuICAgIGZvbnQtZmFtaWx5OiAkcHJveGltYS1yZWc7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuXG4gLyogTUVESUEgUVVFUklFUyAqL1xuICBcbiBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpe1xuXG4gIH1cbiAgXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0NDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTlweCl7XG5cbiAgICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgICBwYWRkaW5nLXRvcDozNXB4O1xuICAgIH1cbiAgXG4gICAgLmRlc3RpbmF0aW9uLXRpdGxlIHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoMjB2dy8yKTtcbiAgICB9XG4gIFxuICB9XG4gIFxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIGFuZCAobWF4LXdpZHRoOiAxNDM5cHgpe1xuXG4gICAgLmRlc3RpbmF0aW9uLXRpdGxlIHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoMTh2dy8yKTtcbiAgICB9XG4gIFxuICAgIC50aWxlLWltYWdlIHtcbiAgICAgIGhlaWdodDogMzIwcHg7XG4gICAgfVxuICAgIFxuICB9XG4gIFxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCl7XG5cbiAgICAuZGVzdGluYXRpb24tdGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYygzNXZ3LzIpO1xuICAgIH1cbiAgfVxuICBcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNzVweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KXtcblxuICAgICAgLmRlc3RpbmF0aW9uLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYygzNXZ3LzIpO1xuICAgICAgfVxuXG4gICAgICAubWVyY2hhbmRpc2luZy1zbGFudC1jb3B5IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgXG4gICAgICAgIC5wYXJhZ3JhcGhDb3B5IHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIFxuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgICAubWVyY2hhbmRpc2luZy1zbGFudC1jb3B5IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBcbiAgICAgIC5wYXJhZ3JhcGhDb3B5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgIFxuICAgIH1cbiAgXG4gICAgLm1vYmlsZU9ubHkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5kZXNrdG9wT25seSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbiAgICAuZGVzdGluYXRpb24tdGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYyg2NXZ3LzIpO1xuICAgIH1cbiAgXG4gIH0iLCIub3V0c2lkZUNhcm91c2VsIC5pdGluZXJhcnlDYXJvdXNlbCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLm91dHNpZGVDYXJvdXNlbCAuaXRpbmVyYXJ5Q2Fyb3VzZWxfX3RpdGxlIHtcbiAgY29sb3I6ICRyY2NsX25hdnk7XG59XG5cbi5vdXRzaWRlQ2Fyb3VzZWwgLml0aW5lcmFyeUNhcm91c2VsX19kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiAkcmNjbF9ncmF5O1xufVxuXG4ub3V0c2lkZUNhcm91c2VsIC5jYXJvdXNlbFRhYnNfX2ZpbHRlciB7XG4gIGNvbG9yOiAkcmNjbF9ibHVlO1xufVxuXG4ub3V0c2lkZUNhcm91c2VsIC5jYXJvdXNlbFRhYnNfX2xpbmsge1xuICBjb2xvcjogJHJjY2xfYmx1ZTtcbn1cblxuLml0aW5lcmFyeUNhcm91c2VsIHtcbiAgICBtYXJnaW4tdG9wOiAtMzQwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDIwO1xuICB9XG4gIFxuICAuaXRpbmVyYXJ5Q2Fyb3VzZWxfX2Jhc2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gIFxuICAuaXRpbmVyYXJ5Q2Fyb3VzZWxfX3RpdGxlIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgXG4gIC5pdGluZXJhcnlDYXJvdXNlbF9fZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuICBcbiAgLmNhcm91c2VsVGFic19fZmlsdGVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgXG4gIC5jYXJvdXNlbFRhYnNfX2xpbmsge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuICBcbiAgLmNhcm91c2VsSXRlbV9fYmFzZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAuNjI1cmVtO1xuICB9XG4gIFxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgIC5pdGluZXJhcnlDYXJvdXNlbCB7XG4gICAgICBtYXJnaW4tdG9wOiAtMzEwcHg7XG4gICAgfVxuICBcbiAgICAuaXRpbmVyYXJ5Q2Fyb3VzZWxfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZToyLjFyZW07XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgXG4gICAgLml0aW5lcmFyeUNhcm91c2VsX19kZXNjcmlwdGlvbiB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxuICAiLCIvLyBDYXJyaWJlYW4gVmFyaWFibGVzXG5cbiRjb2xvci1wcmltYXJ5OiAjMDAyZjM2O1xuJGNvbG9yLWJsYWNrOiBibGFjaztcbiRjb2xvci1uYXZ5OiAjMDAwYzI4O1xuXG4uY2FyaWItYmFja2dyb3VuZC1pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL2NhcmliYmVhbi9pbWFnZS9jYXJpYmJlYW4tanVtcGluZy1vZmYtYm9hdC1leGN1cnNpb24tY3J1aXNlcy5qcGcnKTtcbn1cblxuLmhhd2FpaS1iYWNrZ3JvdW5kLWltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvY29udGVudC9kZXN0aW5hdGlvbnMvaGF3YWlpL2FtYXppbmctaGF3YWlpLWJlYWNoLXdpdGgtZ3JlZW4tbW91bnRhaW5zLmpwZycpO1xufVxuXG4uYXVzdHJhbGlhLWJhY2tncm91bmQtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9hdXN0cmFsaWEvYXVzdHJhbGlhLXN5ZG5leS1vcGVyYS1ob3VzZS5qcGcnKTtcbn1cblxuLm56LWJhY2tncm91bmQtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9hdXN0cmFsaWEtbmV3LXplYWxhbmQvbmV3LXplYWxhbmQtbWlsZm9yZC1zb3VuZC1mam9yZC5qcGcnKTtcbn1cblxuLmdyZWVjZS1iYWNrZ3JvdW5kLWltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvY29udGVudC9kZXN0aW5hdGlvbnMvZ3JlZWNlLWdyZWVrLWlzbGVzL2NsaWZmLWdyZWVjZS12aWxsYWdlLWFuZC1iZWFjaC1zYW50b3JpbmkuanBnJyk7XG59XG5cbi5iZWxpemUtYmFja2dyb3VuZC1pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL2JlbGl6ZS9iZWxpemUtYmx1ZS1kaXZpbmctd2hvbGUuanBnJyk7XG59XG5cbi5zb3V0aGVybi1jYXJpYmJlYW4taW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9zb3V0aGVybi1jYXJpYmJlYW4vY2FyaWJiZWFuLWJheS1hZXJpYWwtdmlldy5qcGcnKTtcbn1cblxuLnZhbnVhdHUtYmFja2dyb3VuZC1pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL3ZhbnVhdHUtZmlqaS90dXJxdW9pc2Utd2F0ZXItYmVhY2gtc291dGgtcGFjaWZpYy5qcGcnKTtcbn1cblxuLndlc3QtY29hc3QtYmFja2dyb3VuZC1pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL3dlc3QtY29hc3Qvc2FuLWZyYW5jaXNjby1nb2xkZW4tZ2F0ZS1icmlkZ2UuanBnJyk7XG59XG5cbi5zcGFpbi1iYWNrZ3JvdW5kLWltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvY29udGVudC9kZXN0aW5hdGlvbnMvc3BhaW4tcG9ydHVnYWwtY2FuYXJ5LWlzbGFuZHMvY2FsYS1tYWxsb3JjYS1zcGFpbi5qcGcnKTtcbn1cblxuLmVhc3Rlcm4tY2FyaWJiZWFuLWJhY2tncm91bmQtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9lYXN0ZXJuLWNhcmliYmVhbi9jYXJpYmJlYW4tc2Vhc2lkZS1mb3J0LmpwZycpO1xufVxuXG4uaXRhbHktYmFja2dyb3VuZC1pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL2l0YWx5L2l0YWx5LWFtYWxmaS1jb2FzdC5qcGcnKTtcbn1cblxuLm5ldy1lbmdsYW5kLWJhY2tncm91bmQtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9uZXctZW5nbGFuZC9ub3J0aGVhc3Qtc3F1YXJlLWFuZC1oaXN0b3JpY2FsLWZpZ3VyZS1zdGF0dWUuanBnJyk7XG59XG5cbi5iZXJtdWRhLWJhY2tncm91bmQtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9iZXJtdWRhL2Jlcm11ZGEtdHVycXVvaXNlLWJlYWNoLWFuZC1waW5rLXNhbmQuanBnJyk7XG59XG5cbi5tZXhpY28taGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL21leGljby9jb3p1bWVsLW1leGljby1jZW5vdGUtc3dpbW1pbmctb24tcm9ja3MuSlBHJyk7XG59XG5cbi50cmFucy1oZXJvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvY29udGVudC9kZXN0aW5hdGlvbnMvdHJhbnNhdGxhbnRpYy90cmFuc2F0bGFudGljLXRyYW5zcGFjaWZpYy1jcnVpc2VzLmpwZycpO1xufVxuXG4uYWxhc2thLWhlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9hbGFza2EvYWxhc2thLW9jZWFuLWFuZC1zbm93LW1vdW50YWlucy5qcGcnKTtcbn1cblxuLmJhbHRpY3MtaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL2JhbHRpYy1zZWEvYmFsdGljLXNlYS1zY2FuZGluYXZpYS1lc3RvbmlhLWNpdHkuanBnJyk7XG59XG5cbi5iYWhhbWFzLWhlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9iYWhhbWFzL2ltYWdlL2FkdmVudHVyZS1kaXZpbmctZmVlZGluZy1zaGFya3MtaW4tdGhlLWJhaGFtYXMuanBnJyk7XG59XG5cbi5icml0aXNoLWlzbGVzLWhlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9icml0aXNoLWlzbGVzL2VpbGVhbi1kb25hbi1jYXN0bGUtc2NvdHRpc2gtaGlnaGxhbmRzLmpwZycpO1xufVxuXG4ud2VzdGVybi1jYXJpYmJlYW4taGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL3dlc3Rlcm4tY2FyaWJiZWFuL3dlc3Rlcm4tY2FyaWJiZWFuLWphbWFpY2Etd2F0ZXJmYWxsLmpwZycpO1xufVxuXG4uY3JvYXRpYS1oZXJvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvY29udGVudC9kZXN0aW5hdGlvbnMvY3JvYXRpYS9kdWJyb3ZuaWstY2l0eXNjYXBlLXdhbGxzLWFuZC1jb2FzdGxpbmUuanBnJyk7XG59XG5cbi5wdWVydG9yaWNvLWhlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9wdWVydG8tcmljby9oaXN0b3JpYy1wdWVydG8tcmljby1hbmQtb2xkLWZvcnQtYXR0cmFjdGlvbi5qcGcnKTtcbn1cblxuLmphbWFpY2EtaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL2phbWFpY2Evc3Vuc2V0LXJpdmVyLWNvbG9yZnVsLWJvYXRzLWphbWFpY2EuanBnJyk7XG59XG5cbi5jYW5hZGEtaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL2NhbmFkYS9jYW5hZGEtY29hc3QtbGlnaHRob3VzZS5qcGcnKTtcbn1cblxuLnBhbmFtYS1oZXJvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvY29udGVudC9kZXN0aW5hdGlvbnMvcGFuYW1hLWNhbmFsL3BhbmFtYS1jYW5hbC1jcnVpc2UtZW50cnkuanBnJyk7XG59XG5cbi5jdWJhLWhlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9jdWJhL2N1YmEtY3J1aXNlLWRlc3RpbmF0aW9uLmpwZycpO1xufVxuXG4uY2FyaWJiZWFuLWJlYWNoZXMtaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL3BvcnRzLWFuZC1kZXN0aW5hdGlvbnMvZGVzdGluYXRpb25zL2NhcmliYmVhbi1iZWFjaGVzL2Fzc2V0cy9iZWF1dGlmdWwtYmFyYmFkb3MtYm90dG9tLWJheS1iZWFjaC1oZXJvLmpwZycpO1xufVxuXG4ucGVyZmVjdC1kYXktaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL3BvcnRzLWFuZC1kZXN0aW5hdGlvbnMvZGVzdGluYXRpb25zL3BlcmZlY3QtZGF5L2Fzc2V0cy9wZXJmZWN0LWRheS1pc2xhbmQtY29jb2NheS1iYWhhbWFzLW92ZXJ2aWV3LWFlcmlhbC5qcGcnKTtcbn1cblxuLnRvcC0xMC1jYXJpYmJlYW4taGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL3BvcnRzLWFuZC1kZXN0aW5hdGlvbnMvZGVzdGluYXRpb25zL3RvcC0xMC1jYXJpYmJlYW4taXNsYW5kcy93aW5kb3ctY2F2ZS1wdWVydG8tcmljby5qcGcnKTtcbn1cblxuLmNhcmliYmVhbi1hbmNpZW50LXJ1aW5zLWhlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9wb3J0cy1hbmQtZGVzdGluYXRpb25zL2Rlc3RpbmF0aW9ucy9jYXJpYmJlYW4tYW5jaWVudC1ydWlucy1hbmQtY2l0aWVzL2Fzc2V0cy9zYW4tanVhbi1wdWVydG8tcmljby1zYW4tZmVsaXBlLWRlbC1tb3Jycm8tZm9ydC1oZXJvLmpwZycpO1xufVxuXG4uY2FyaWJiZWFuLXJhaW5mb3Jlc3QtaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL3BvcnRzLWFuZC1kZXN0aW5hdGlvbnMvZGVzdGluYXRpb25zL2NhcmliYmVhbi1yYWluZm9yZXN0LWFuZC1wYXJrcy9ncmVuYWRhLWdyYW5kLWV0YW5nLWxha2UtYW5kLXJhaW5mb3Jlc3QuanBnJyk7XG59XG5cbi5jYXJpYmJlYW4td2lsZGxpZmUtaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL3BvcnRzLWFuZC1kZXN0aW5hdGlvbnMvZGVzdGluYXRpb25zL2NhcmliYmVhbi13aWxkbGlmZS1lbmNvdW50ZXJzL3N3aW1taW5nLXdpdGgtd2hhbGUtc2hhcmtzLWluLWNvenVtZWwtbWV4aWNvLmpwZycpO1xufVxuXG4uYWxhc2thLWdsYWNpZXJzLWhlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9wb3J0cy1hbmQtZGVzdGluYXRpb25zL2Rlc3RpbmF0aW9ucy9hbGFza2EtZ2xhY2llci1jcnVpc2VzL2FsYXNrYS1nbGFjaWVyLWJheS1mcm9tLWNydWlzZS1zaGlwLmpwZycpO1xufVxuXG4uYWxhc2thLWNydWlzZS10b3Vycy1oZXJvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvcG9ydHMtYW5kLWRlc3RpbmF0aW9ucy9kZXN0aW5hdGlvbnMvYWxhc2thLWNydWlzZS10b3Vycy93b25kZXItbGFrZS1kZW5hbGktbmF0aW9uYWwtcGFyay1tb3VudGFpbnMtYmFja2dyb3VuZC5qcGcnKTtcbn1cblxuLmFsYXNrYS1uYXRpb25hbC1wYXJrcy1oZXJvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvcG9ydHMtYW5kLWRlc3RpbmF0aW9ucy9kZXN0aW5hdGlvbnMvYWxhc2thLW5hdGlvbmFsLXBhcmtzL3NwaXJlLWNvdmUta2VuYWktZmpvcmRzLW5hdGlvbmFsLXBhcmstcmVzdXJyZWN0aW9uLWJheS5qcGcnKTtcbn1cblxuLmFsYXNrYS13aWxkbGlmZS1lbmNvdW50ZXJzLWhlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9wb3J0cy1hbmQtZGVzdGluYXRpb25zL2Rlc3RpbmF0aW9ucy9hbGFza2Etd2hhbGUtd2F0Y2hpbmctYW5kLXdpbGRsaWZlL3doYWxlLWp1bXBpbmctaW4tYWxhc2thLmpwZycpO1xufVxuXG4uYXJhYmlhbi1ndWxmLW5vcnRoLWFmcmljYS1oZXJvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvcG9ydHMtYW5kLWRlc3RpbmF0aW9ucy9kZXN0aW5hdGlvbnMvYXJhYmlhbi1ndWxmL2Fzc2V0cy9hcnRpZmljaWFsLXBhbG0taXNsYW5kLWR1YmFpLXVuaXRlZC1hcmFiLWVtaXJhdGVzLmpwZycpO1xufVxuXG4uY2hpbmEtaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL3BvcnRzLWFuZC1kZXN0aW5hdGlvbnMvZGVzdGluYXRpb25zL2NoaW5hLWNydWlzZXMvdHJhZGl0aW9uYWwtdGVtcGxlLXN1emhvdS1jaGluYS5qcGcnKTtcbn1cblxuLmZyYW5jZS1oZXJvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvcG9ydHMtYW5kLWRlc3RpbmF0aW9ucy9kZXN0aW5hdGlvbnMvZnJhbmNlL2Fzc2V0cy9mcmVuY2gtcml2aWVyYS1ib3RhbmljYWwtZ2FyZGVuLmpwZycpO1xufVxuXG4uaWNlbGFuZC1oZXJvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvcG9ydHMtYW5kLWRlc3RpbmF0aW9ucy9kZXN0aW5hdGlvbnMvaWNlbGFuZC9hc3NldHMvc3Rva2tzbmVzLWljZWxhbmQtbHVwaW5lLWZsb3dlcnMuanBnJyk7XG59XG5cbi5pcmVsYW5kLWhlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9wb3J0cy1hbmQtZGVzdGluYXRpb25zL2Rlc3RpbmF0aW9ucy9pcmVsYW5kL2Fzc2V0cy9pcmVsYW5kLW1vaGVyLWluLWNvdW50eS1jbGFyZS1jbGlmZnMuanBnJyk7XG59XG5cbi5qYXBhbi1oZXJvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvcG9ydHMtYW5kLWRlc3RpbmF0aW9ucy9kZXN0aW5hdGlvbnMvamFwYW4vYXNzZXRzL2phcGFuLWZ1amktbW91bnRhaW4taGltZWppLWNhc3RsZS1mdWxsLWNoZXJyeS1ibG9zc29tLWguanBnJyk7XG59XG5cbi5ub3J3YXktaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL3BvcnRzLWFuZC1kZXN0aW5hdGlvbnMvZGVzdGluYXRpb25zL25vcndheS9hdXJvcmEtYm9yZWFsaXMtYWN0aXZpdHktbm9yd2F5LmpwZycpO1xufVxuXG4udGhhaWxhbmQtaGVybyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL3BvcnRzLWFuZC1kZXN0aW5hdGlvbnMvZGVzdGluYXRpb25zL3RoYWlsYW5kL2Fzc2V0cy90aGFpbGFuZC1iYW5na29rLW1hcmJsZS10ZW1wbGUuanBnJyk7XG59XG5cbi50ZXh0LXdoaXRlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNhcmliLWJhY2tncm91bmQtaW1hZ2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly93d3cucm95YWxjYXJpYmJlYW4uY29tL2NvbnRlbnQvZGFtL3JveWFsL2NvbnRlbnQvZGVzdGluYXRpb25zL2NhcmliYmVhbi9pbWFnZS9jYXJpYmJlYW4tanVtcGluZy1vZmYtYm9hdC1leGN1cnNpb24tY3J1aXNlcy5qcGcnKTtcbiAgfVxuXG4gIC5oYXdhaWktYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvY29udGVudC9kZXN0aW5hdGlvbnMvaGF3YWlpL2FtYXppbmctaGF3YWlpLWJlYWNoLXdpdGgtZ3JlZW4tbW91bnRhaW5zLmpwZycpO1xuICB9XG5cbiAgLmF1c3RyYWxpYS1iYWNrZ3JvdW5kLWltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9hdXN0cmFsaWEvYXVzdHJhbGlhLXN5ZG5leS1vcGVyYS1ob3VzZS5qcGcnKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7XG4gIC5jYXJpYi1iYWNrZ3JvdW5kLWltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9kYXRhL3NoaXAvc3ltcGhvbnkvY2FyaWJiZWFuLWFkdmVudHVyZS1qdW1waW5nLWJvYXQtY3J1aXNlcy5qcGcnKTtcbiAgfVxuXG4gIC5oYXdhaWktYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy5yb3lhbGNhcmliYmVhbi5jb20vY29udGVudC9kYW0vcm95YWwvY29udGVudC9kZXN0aW5hdGlvbnMvaGF3YWlpL2FtYXppbmctaGF3YWlpLWJlYWNoLXdpdGgtZ3JlZW4tbW91bnRhaW5zLmpwZycpO1xuICB9XG5cbiAgLmF1c3RyYWxpYS1iYWNrZ3JvdW5kLWltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9hdXN0cmFsaWEvYXVzdHJhbGlhLXN5ZG5leS1vcGVyYS1ob3VzZS5qcGcnKTtcbiAgfVxufVxuXG4qIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5oZXJvX3BhcmFsbGV4IHtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vIGhlaWdodDogNzB2aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmX19ibGFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJsYWNrO1xuICB9XG5cbiAgJl9fbmF2eSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW5hdnk7XG4gIH1cbn1cblxuLnBhZ2VfX3BhckFib3ZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmlsbGVyX2NvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyMDB2aDtcbn1cblxuLmhlcm9fcGFyYWxsZXhfYmFubmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAzO1xuICBmbGV4OiAxIDEgMCU7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgcGxhY2UtY29udGVudDogc3RyZXRjaCBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50aWxlczIucGFyYmFzZSB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLmFlbS1BdXRob3JMYXllci1EZXNpZ24ge1xuICAuaGVyb19wYXJhbGxleF9iYW5uZXIge1xuICAgIGhlaWdodDogNzAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuLmFlbS1BdXRob3JMYXllci1FZGl0IHtcbiAgLmhlcm9fcGFyYWxsZXhfYmFubmVyIHtcbiAgICBoZWlnaHQ6IDcwMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmhlcm9fcGFyYWxsZXhfYmFubmVyIHtcbiAgaGVpZ2h0OiA3MHZoO1xufVxuLmhlcm9fcGFyYWxsZXhfaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0b3A6IDA7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIHotaW5kZXg6IDE7XG5cbiAgaW1ne1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjsgXG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLyogR3JhZGllbnQgYmx1ZS9ncmVlbjogKi9cbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoLTE4MGRlZywgdHJhbnNwYXJlbnQgNTIlLCAkY29sb3ItcHJpbWFyeSAxMDElKTtcbiAgICAvLyAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KC0xNzhkZWcsIHJnYmEoMCwwLDAsMC4wMCkgNTglLCAkY29sb3ItcHJpbWFyeSA5NCUpO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cblxuICAmX19ibGFjayB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgLyogR3JhZGllbnQgYmxhY2s6ICovXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoLTE4MGRlZywgdHJhbnNwYXJlbnQgNTIlLCAkY29sb3ItYmxhY2sgMTAxJSk7XG4gICAgfVxuICB9XG5cbiAgJl9fbmF2eSB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgLyogR3JhZGllbnQgYmxhY2s6ICovXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoLTE4MGRlZywgdHJhbnNwYXJlbnQgNTIlLCAkY29sb3ItbmF2eSAxMDElKTtcbiAgICB9XG4gIH1cbiAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cblxuLmFlbS1BdXRob3JMYXllci1EZXNpZ24ge1xuICAuaGVyb19wYXJhbGxleF9pbWFnZSB7XG4gICAgaGVpZ2h0OiA3MDBweCAhaW1wb3J0YW50O1xuICB9XG59XG4uYWVtLUF1dGhvckxheWVyLUVkaXQge1xuICAuaGVyb19wYXJhbGxleF9pbWFnZSB7XG4gICAgaGVpZ2h0OiA3MDBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5oZXJvX3BhcmFsbGV4X2ltYWdlIHtcbiAgaGVpZ2h0OiA4M3ZoO1xufVxuXG4uaGVyb19wYXJhbGxleF9jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICBtYXgtd2lkdGg6IDE0NDBweDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMSAwJTtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBwbGFjZS1jb250ZW50OiBzdHJldGNoIHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBwYWRkaW5nLXRvcDogNzVweDtcbiAgcGFkZGluZy1ib3R0b206IDc1cHg7XG5cbiAgLmhlcm9fcGFyYWxsZXhfY29udGVudF9pbnRybyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAuaGVyb19wYXJhbGxleF9jb250ZW50X3ZpZGVvIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5oZXJvX3BhcmFsbGV4X2NvbnRlbnQge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgfVxuICAuaGVyb19wYXJhbGxleF9jb250ZW50X3ZpZGVvIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5oZXJvX3BhcmFsbGV4X2NvbnRlbnRfaW50cm8ge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8qIEZFQVRVUkVEIElNQUdFICovXG4uc2VjdGlvbi1mZWF0dXJlLWltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogNjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLmJhbm5lcl93aXRodGV4dCB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLndoaXRlLXRleHQtYm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHdpZHRoOiA3NSU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiA4MHB4O1xuICBtYXJnaW4tdG9wOiAtNjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIE1FRElBIFFVRVJJRVMgKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC5iYW5uZXJfd2l0aHRleHQge1xuICAgIG1heC13aWR0aDogMTkyMHB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0NDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTlweCkge1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIGFuZCAobWF4LXdpZHRoOiAxNDM5cHgpIHtcbiAgLnNlY3Rpb24tZmVhdHVyZS1pbWFnZSBpbWcge1xuICAgIGhlaWdodDogNDUwcHg7XG4gIH1cblxuICAud2hpdGUtdGV4dC1ib3gge1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnNlY3Rpb24tZmVhdHVyZS1pbWFnZSBpbWcge1xuICAgIGhlaWdodDogMzIwcHg7XG4gICAgd2lkdGg6IDkxJTtcbiAgfVxuICAud2hpdGUtdGV4dC1ib3gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiA4MCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMjRweCAyNHB4O1xuICAgIG1hcmdpbi10b3A6IC02NHB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM3NXB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnNlY3Rpb24tZmVhdHVyZS1pbWFnZSBpbWcge1xuICAgIGhlaWdodDogMzIwcHg7XG4gICAgd2lkdGg6IDkxJTtcbiAgfVxuXG4gIC53aGl0ZS10ZXh0LWJveCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgd2lkdGg6IDc2JTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAxNnB4IDI0cHg7XG4gICAgbWFyZ2luLXRvcDogLTUwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAud2hpdGUtdGV4dC1ib3gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiA2NyU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMTZweCAyNHB4O1xuICAgIG1hcmdpbi10b3A6IC01MHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbiIsIiRjb250ZW50QmFja2dyb3VuZDogd2hpdGU7XG4kYWNjZW50Q29sb3I6IHJnYmEoMjEsIDM4LCA3NiwgMC44KTtcbiRibGFja09wYWNpdHk6ICByZ2JhKDAsIDAsIDAsIDApO1xuJHNsYW50SGVpZ2h0OiA5NnB4O1xuJHNsYW50SGVpZ2h0TW9iaWxlOiA0OHB4O1xuYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnRCYWNrZ3JvdW5kO1xufVxuXG4ud3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50QmFja2dyb3VuZDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCB0b3AsICRjb250ZW50QmFja2dyb3VuZCAwJSwgJGNvbnRlbnRCYWNrZ3JvdW5kIGNhbGMoNTAlIC0gMXB4KSwgdHJhbnNwYXJlbnQgNTAlKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCBib3R0b20sICRjb250ZW50QmFja2dyb3VuZCAwJSwgJGNvbnRlbnRCYWNrZ3JvdW5kIGNhbGMoNTAlIC0gMXB4KSwgdHJhbnNwYXJlbnQgNTAlKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2xhbnRIZWlnaHQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJpZ2h0IGJvdHRvbSwgJGNvbnRlbnRCYWNrZ3JvdW5kIDAlLCAkY29udGVudEJhY2tncm91bmQgY2FsYyg1MCUgLSAxcHgpLCB0cmFuc3BhcmVudCA1MCUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQgdG9wLCAkY29udGVudEJhY2tncm91bmQgMCUsICRjb250ZW50QmFja2dyb3VuZCBjYWxjKDUwJSAtIDFweCksIHRyYW5zcGFyZW50IDUwJSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogJHNsYW50SGVpZ2h0O1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIH1cbiAgICAgICAgLmJhY2tncm91bmQge1xuICAgICAgICAgICBcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnRDb2xvcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoNTAlIDE1MCUsIHJnYmEoMCwgMCwgMCwgMCkgNTAlLCByZ2JhKDAsIDAsIDAsIDAuNDEpIDEwMCUpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCg1MCUgMTUwJSwgcmdiYSgwLCAwLCAwLCAwKSA1MCUsIHJnYmEoMCwgMCwgMCwgMC40MSkgMTAwJSk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICZfX2JsYWNrIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmV7IFxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrT3BhY2l0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkc2xhbnRIZWlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNsYW50SGVpZ2h0IDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNvbnRhaW5lci5jZW50ZXJjb250ZW50IHtcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLW1zLWdyaWQtcm93LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxufVxuXG5cblxuIC8qIE1FRElBIFFVRVJJRVMgKi9cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCl7XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgaGVpZ2h0OiAkc2xhbnRIZWlnaHRNb2JpbGUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBoZWlnaHQ6ICRzbGFudEhlaWdodE1vYmlsZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG59XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzc1cHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCl7XG5cbiAgICAuY29udGFpbmVyIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgaGVpZ2h0OiAkc2xhbnRIZWlnaHRNb2JpbGUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBoZWlnaHQ6ICRzbGFudEhlaWdodE1vYmlsZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxufVxuIiwiLnRhbGxUaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBoZWlnaHQ6IDUwMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQyMHB4O1xuICAgIH1cblxuICAgICZfX292ZXJsYXkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY2xlYXI6IGZsb2F0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICAgICAgLyogR3JhZGllbnQ6ICovXG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KC0xODBkZWcsIHJnYmEoMCwgMCwgMCwgMCkgMCUsICMwMDAwMDAgNTAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAtMzUwcHggYXV0byAwIGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7ICAgIFxuICAgIH1cbiAgfVxuXG5cbi5vdmVybGF5e1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0NDBweCkge1xuICAgIC50YWxsVGlsZSB7XG4gICAgICAgICZfX292ZXJsYXkge1xuICAgICAgICAgICAgaGVpZ2h0OiA0NTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyODBweCkge1xuXG4gICAgLnRhbGxUaWxlIHtcbiAgICAgICAgJl9fb3ZlcmxheSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ1MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gIH1cblxuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG5cbiAgICAudGFsbFRpbGUge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGhlaWdodDogMzYwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW46IC00MDBweCBhdXRvIDAgYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gIH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuXG4gICAgLm92ZXJsYXkge1xuICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICB9XG5cbiAgXG4gICAgLnRhbGxUaWxlIHtcbiAgICAgICAgJl9fb3ZlcmxheSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luOiAtNDY3cHggYXV0byAwIGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgfVxuICBcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MDBweCkge1xuXG4gIH1cbiAgIiwiQGltcG9ydCAncmVzZXQnO1xuQGltcG9ydCAnZm9udHMnO1xuQGltcG9ydCAndmFyaWFibGVzJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHknO1xuQGltcG9ydCAnY29sb3JzJztcbkBpbXBvcnQgJ21peGlucyc7XG5AaW1wb3J0ICdpbnNpZGVydGlwcyc7XG5AaW1wb3J0ICdidXR0b25zJztcbkBpbXBvcnQgJ2ZvdXJUaWxlU2xhbnQnO1xuQGltcG9ydCAnaXRpbmVyYXJ5Q2Fyb3VzZWwnO1xuQGltcG9ydCAncGFyYWxsYXhIZXJvJztcbkBpbXBvcnQgJ3NlY3Rpb25GZWF0dXJlJztcbkBpbXBvcnQgJ3NsYW50JztcbkBpbXBvcnQgJ3RhbGxUaWxlJztcblxuLnByb21vUGVuY2lsQmFubmVyIHtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY2NjAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuXG59XG5cblxuLy8gVFdPIFdBWSBUTyBFWFBMT1JFXG4uc3BhY2UtZm9yLWNhcm91c2VsIHtcbiAgaGVpZ2h0OiAzMDBweDtcbn1cblxuLnNsYW50LWNvbnRlbnQge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50d29XYXlzQ29weSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAuaW50cm9Db3B5IHtcbiAgICB3aWR0aDogODAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi50d29XYXlzSW1hZ2VzIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMDBweDtcblxuICBAbWVkaWEgb25seSBhbGwgYW5kIChtaW4td2lkdGg6IDM3NXB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDE5MHB4O1xuICB9XG59XG5cbi5hbHQtdGV4dC1jb3B5IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbiBcbi5jdWJhLWluZm8ge1xuICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9jb250ZW50L2Rlc3RpbmF0aW9ucy9jYXJpYmJlYW4vaW1hZ2UvY2FyaWJiZWFuLWJlYWNoLXRleHR1cmUtYmFja2dyb3VuZC1zbGFudC5qcGcnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlciB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNjUwcHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYWxhc2thLWluZm8ge1xuICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vd3d3LnJveWFsY2FyaWJiZWFuLmNvbS9jb250ZW50L2RhbS9yb3lhbC9wb3J0cy1hbmQtZGVzdGluYXRpb25zL2Rlc3RpbmF0aW9ucy9BbGFza2EvYXNzZXRzL2FsYXNrYS1qdW5lYXUtcGluay1mbG93ZXJzLW5hdHVyZS1tb3VudGFpbnMuanBnJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDY1MHB4O1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmluZm8tY29weSB7XG4gIHdpZHRoOiA3MCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDgwcHg7XG59XG5cbi5pY29uIHtcbiAgd2lkdGg6IDIyJTtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi5sb2dvIHtcbiAgd2lkdGg6IDM2JTtcbn1cbi8qIE1FRElBIFFVRVJJRVMgKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0NDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTlweCkge1xuICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgcGFkZGluZy10b3A6IDM1cHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSBhbmQgKG1heC13aWR0aDogMTQzOXB4KSB7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC50d29XYXlzQ29weSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmludHJvQ29weSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5zcGFjZS1mb3ItY2Fyb3VzZWwge1xuICAgIGhlaWdodDogMjc2cHg7XG4gIH1cblxuICAuY3ViYS1pbmZvIHtcbiAgICBoZWlnaHQ6IDU1MHB4O1xuICB9XG5cbiAgLmluZm8tY29weSB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIGFuZCAobWF4LXdpZHRoOiA4NDBweCkge1xuICAuY3ViYS1pbmZvIHtcbiAgICBoZWlnaHQ6IDc1MHB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM3NXB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnR3b1dheXNDb3B5IHtcbiAgICAuaW50cm9Db3B5IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC50d29XYXlzSW1hZ2VzIHtcbiAgICBoZWlnaHQ6IDE5MHB4O1xuICB9XG5cbiAgLnNwYWNlLWZvci1jYXJvdXNlbCB7XG4gICAgaGVpZ2h0OiAyNzZweDtcbiAgfVxuXG4gIC5jdWJhLXRpcHMtYnRuIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbmZvLWNvcHkge1xuICAgIHdpZHRoOiA5NSUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAudHdvV2F5c0NvcHkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAuaW50cm9Db3B5IHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAubWF4LXdpZHRoIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubW9iaWxlT25seSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuZGVza3RvcE9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuY3ViYS1pbmZvIHtcbiAgIGhlaWdodDogMTA1NXB4O1xuICB9XG5cbiAgLmluZm8tY29weSB7XG4gICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAzMnB4O1xuICB9XG5cbiAgLmN1YmEtaW5mbyAucGFyYWdyYXBoQ29weSB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuXG4gIC5pY29uIHtcbiAgICB3aWR0aDogMTYlO1xuICB9XG5cbiAgLmN1YmEtbG9nbyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuXG4gIC5sb2dvIHtcbiAgICB3aWR0aDogNjAlO1xuICB9XG59XG4iXX0= */
