/**
 * AT&T About Us Global Navigation & Footer for AEM
 * by FleishmanHillard, c. 2018
 *
 * NOTE: ATTN DEVS!
 * Please use this stylesheet for importing SASS partials only. Do not author any SASS or CSS directly in this file.
 * Also, please first refer to the _abstracts partials to review the existing global style settings and utilities before creating new ones.
 *
 * For style guidelines and coding conventions for this project,
 * please consult the README.md in the root of the project.
 */
/*==========
  NAVIGATION
  ==========*/
/*=========
  Abstracts
  =========*/
/*=========
  VARIABLES
  =========*/
/*===========
  Breakpoints
  ===========*/
/* we switch from mobile to tablet here */
/* we switch from tablet to desktop here */
/* max width of standard 15" laptop viewport */
/*============
  Global Sizes
  ============*/
/* Component Margin/Paddings */
/* Section Margin/Paddings */
/* Line Height */
/* Misc */
/*==================
  Responsive Columns
  ==================*/
/*
   * The following column sizing map is used to determine how different sized columns will adjust their widths at different breakpoints.
   * For each column size (12, 9, 8, 6, 4, 3, 2), the subsequent responsive widths are listed in parentheses, going in order from mobile, to tablet, to small desktop, to full desktop.
   * ex: colSize:(mobileWidth, tabletWidth, smDesktopWidth, lgDesktopWidth), where the width values refer to the number of parts-per-12 that the column should occupy at each screen size.
   * Note that all column widths are 12-based, so a 12 represents a full-width appearance.
   * Since all column sizes should appear full-width at mobile viewport size, the first number in each sequence is 12.
   * The settings from this map get applied by the columnSizer loop statement found in the "Columns" section of the _layout partial (see the styles under ".col").
   */
/*=============
  Color Palette
  =============*/
/* Global Colors */
/* 2019 New Brand Secondary Colors */
/* Specific Use Colors */
/* call-to-action elements (links, buttons) */
/* call-to-action hover state */
/* transparent header link highlight */
/* standard links inside of text blocks */
/* general page body copy */
/* Color Maps */
/* Category Themes - theme names below are based on theme-- category classes that get applied to the body element by AEM */
/*

  Communications: ("blue", $attBlue),
  company: ("silver", "silver")

  */
/*=============
  Font Families
  =============*/
/* Aleck Sans - Base Font Variants */
@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Italic */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.svg#webfont") format("svg");
  font-weight: 400;
  font-style: italic; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Light */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.svg#webfont") format("svg");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Light Italic */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.svg#webfont") format("svg");
  font-weight: 300;
  font-style: italic; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Bold */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.svg#webfont") format("svg");
  font-weight: 700;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans';
  /* Aleck Sans Bold Italic */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.svg#webfont") format("svg");
  font-weight: 700;
  font-style: italic; }

/* Aleck Sans - Additional Font Variants */
@font-face {
  font-family: 'Aleck Sans Medium';
  /* Aleck Sans Medium */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans Medium';
  /* Aleck Sans Medium Italic */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.svg#webfont") format("svg");
  font-weight: 400;
  font-style: italic; }

@font-face {
  font-family: 'Aleck Sans Black';
  /* Aleck Sans Black */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Sans Black';
  /* Aleck Sans Black Italic */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.svg#webfont") format("svg");
  font-weight: 400;
  font-style: italic; }

/* Aleck Slab */
@font-face {
  font-family: 'Aleck Slab';
  /* Aleck Slab */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: 'Aleck Slab';
  /* Aleck Slab Italic */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.svg#webfont") format("svg");
  font-weight: 400;
  font-style: italic; }

/* AT&T Icon Font */
@font-face {
  font-family: 'ATT_Icons';
  /* AT&T Icon Font */
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.eot");
  src: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.eot?#iefix") format("embedded-opentype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.woff") format("woff"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.ttf") format("truetype"), url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.svg#webfont") format("svg");
  font-weight: 400;
  font-style: normal; }

/*==============
  Font Variables
  ==============*/
/* AT&T Icon Font Maps */
/*================
  Nav Highlighting
  ================*/
/*
   * The following map sets the nav highlighting default for different body classes
   * ex: bodyClassName: "nav-item-class-name"
   * Note that if a nav item with class of "nav-company" exists and you're on a page with a body class of "nav-company", that will highlight as well
   */
/*======
  MIXINS
  ======*/
/*=======
  Accents
  =======*/
/*==========
  Animations
  ==========*/
/*=================
  Container Queries
  =================*/
/*===========
  Positioning
  ===========*/
/*====
  Misc
  ====*/
/* Silver style */
/* Default button style for white, gray or black backgrounds */
/* Horizontal/Vertical Rules */
/*==========
  Typography
  ==========*/
/*======
  Layout
  ======*/
/*======
  HEADER
  ======*/
body > .wrapper {
  width: 100%;
  overflow: hidden;
  position: relative; }

body > .wrapper .canvas {
  -webkit-transition: all 300ms ease;
  -o-transition: all 300ms ease;
  transition: all 300ms ease;
  position: relative;
  width: 100%;
  min-height: 100vh; }
  @media (max-width: 767px) {
    body > .wrapper .canvas {
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
      body > .wrapper .canvas.canvas--on {
        -webkit-transform: translateX(-80%);
            -ms-transform: translateX(-80%);
                transform: translateX(-80%); } }
    @media (max-width: 767px) and (min-width: 360px) {
      body > .wrapper .canvas.canvas--on {
        -webkit-transform: translateX(-320px);
            -ms-transform: translateX(-320px);
                transform: translateX(-320px); } }
    @media (max-width: 767px) and (min-width: 768px) {
      body > .wrapper .canvas.canvas--on {
        -webkit-transform: translateX(-400px);
            -ms-transform: translateX(-400px);
                transform: translateX(-400px); } }
  @media (min-width: 768px) {
    body > .wrapper .canvas {
      overflow: auto; } }

/* Skip Navigation */
.skip-navigation {
  background-color: #414141; }
  @media (min-width: 768px) {
    .skip-navigation {
      background-color: #000; } }

.skip-navigation a {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  width: 1px;
  position: absolute !important;
  word-wrap: normal !important;
  color: transparent;
  width: calc(100vw - 10px);
  padding: 5px;
  top: 5px; }
  .skip-navigation a:focus {
    clip: auto !important;
    -webkit-clip-path: none;
            clip-path: none;
    z-index: 100000;
    outline: 0; }
  @media (min-width: 768px) {
    .skip-navigation a {
      top: -30px; } }
  .skip-navigation a:focus {
    -webkit-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    transition: all 300ms ease;
    font-size: 12px;
    display: block;
    position: relative !important;
    text-decoration: underline;
    text-align: center;
    padding: 5px 5px 10px;
    height: auto;
    margin: 0 auto;
    top: 5px;
    -webkit-clip-path: none;
            clip-path: none;
    clip: initial;
    color: #C9C9C9;
    z-index: 9999999999; }
    @media (min-width: 768px) {
      .skip-navigation a:focus {
        position: absolute !important;
        padding-bottom: 5px;
        width: auto;
        text-align: left;
        left: 5px; } }

/* Standard and Microsite Headers */
#att-microsite-header.plusGlobal .siteNav {
  margin-top: 0px; }

#att-about-header > div,
#att-microsite-header .microsite-nav {
  background-color: #000;
  border-bottom: 1px solid #5A5A5A; }

@media (min-width: 768px) {
  #att-microsite-header.plusGlobal .siteNav {
    margin-top: 50px; } }

@media (min-width: 1220px) {
  #att-about-header.header--transparent > div,
  #att-microsite-header.header--transparent .microsite-nav {
    background-color: rgba(0, 0, 0, 0.65); } }

@media (min-width: 1220px) {
  #att-about-header.header--fixed > div,
  #att-microsite-header.header--fixed .microsite-nav {
    background-color: #000; } }

header {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }
  header *,
  header *:before,
  header *:after {
    -webkit-box-sizing: inherit;
            box-sizing: inherit; }
  .touch header,
  .touchevents header {
    cursor: pointer; }

@media (min-width: 768px) {
  .header--secondary + * {
    margin-top: 105px; } }

@media (min-width: 768px) {
  .header--secondary.active + * {
    margin-top: 72px; } }

@media (min-width: 1440px) {
  .header--secondary.active + * {
    margin-top: 105px; } }

@media (min-width: 768px) {
  .header--secondary.active--wGlobal + * {
    margin-top: 122px; } }

@media (min-width: 1440px) {
  .header--secondary.active--wGlobal + * {
    margin-top: 122px; } }

@media (min-width: 768px) {
  .header + *,
  .header + .header--secondary + * {
    margin-top: 105px;
    top: 0; } }

@media (min-width: 768px) {
  .header.header--transparent + * {
    margin-top: 105px; } }

@media (min-width: 1220px) {
  .header.header--transparent + * {
    margin-top: 0;
    min-height: auto; } }

@media (min-width: 1220px) {
  .header.header--transparent + .header--secondary.header--transparent + * {
    margin-top: 0; } }

@media (min-width: 1220px) {
  .header--secondary.header--transparent {
    position: fixed;
    width: 100%;
    top: 0; } }

@media (min-width: 1220px) {
  .header--secondary.header--transparent + * {
    margin-top: 0; } }

@media (min-width: 1220px) {
  .header--secondary.header--transparent.active.plusGlobal + *, .header--secondary.header--transparent.active--wGlobal + * {
    margin-top: 50px; } }

.att-about-header__wrap {
  z-index: 10; }
  @media (min-width: 768px) {
    .att-about-header__wrap {
      -webkit-transition: all 450ms ease;
      -o-transition: all 450ms ease;
      transition: all 450ms ease;
      position: fixed;
      height: 105px;
      width: 100%;
      margin-top: 0; }
      #att-about-header.header--fixed .att-about-header__wrap {
        height: 72px; } }

.plusMicrosite {
  height: 50px !important; }

.header--secondary > * {
  z-index: 10; }
  @media (min-width: 768px) {
    .header--secondary > * {
      -webkit-transition: all 450ms ease;
      -o-transition: all 450ms ease;
      transition: all 450ms ease;
      position: fixed;
      width: 100%;
      margin-top: 0;
      top: 0; } }

@media (min-width: 1220px) {
  #att-about-header {
    position: relative;
    z-index: 999999999; } }

#att-microsite-header {
  z-index: 5; }
  #att-microsite-header .component {
    margin-bottom: 0; }
  #att-microsite-header .microsite-nav {
    -webkit-transition: all 450ms ease;
    -o-transition: all 450ms ease;
    transition: all 450ms ease;
    margin: 0;
    padding: 0; }
    @media (min-width: 1024px) {
      #att-microsite-header .microsite-nav {
        height: 105px; } }
  @media (min-width: 1024px) {
    #att-microsite-header.header--fixed .microsite-nav {
      height: 72px; } }
  @media (min-width: 1024px) {
    #att-microsite-header .microsite-nav.microsite-nav--plusGlobal {
      height: 72px; } }
  @media (min-width: 1440px) {
    #att-microsite-header .microsite-nav.microsite-nav--plusGlobal {
      height: 72px; } }
  @media (min-width: 1024px) {
    #att-microsite-header.header--fixed .microsite-nav.microsite-nav--plusGlobal {
      height: 60px; } }

/* Author Instance Display Fixes */
.aem-AuthorLayer-Edit #att-about-header {
  min-height: 72px; }
  @media (min-width: 768px) {
    .aem-AuthorLayer-Edit #att-about-header {
      min-height: 105px; } }

.aem-AuthorLayer-Edit #att-about-header + *,
.aem-AuthorLayer-Edit #att-about-header + .header--secondary + *,
.aem-AuthorLayer-Edit #att-microsite-header + * {
  margin-top: 0; }

.aem-AuthorLayer-Edit #att-microsite-header.active + *,
.aem-AuthorLayer-Edit #att-microsite-header.active--wGlobal + * {
  min-height: 100px; }

.aem-AuthorLayer-Edit #att-microsite-header.active + * {
  margin-top: 130px; }

.aem-AuthorLayer-Edit #att-microsite-header.active--wGlobal + * {
  margin-top: 180px; }

/*======
  FOOTER
  ======*/
#att-about-footer {
  background-color: #191919; }

#att-about-footer .footer__wrap {
  font-family: "Arial", "Helvetica", sans-serif;
  font-size: 11px;
  line-height: 1;
  max-width: 1220px;
  margin: 0 auto;
  padding: 20px;
  color: #959595; }
  @media (min-width: 768px) and (max-width: 1439px) {
    #att-about-footer .footer__wrap {
      padding-left: 55px;
      padding-right: 55px; } }
  @media (min-width: 1024px) {
    #att-about-footer .footer__wrap {
      padding-bottom: 50px; } }
  @media (min-width: 1440px) {
    #att-about-footer .footer__wrap {
      padding-right: 0;
      padding-left: 0; } }
  #att-about-footer .footer__wrap a {
    color: inherit; }

#att-about-footer .footer__menu {
  margin: 10px 0 20px;
  padding: 0; }
  #att-about-footer .footer__menu li {
    display: inline-block;
    margin-right: 16px;
    margin-bottom: .5rem; }
  #att-about-footer .footer__menu a {
    font-weight: 300;
    text-decoration: none; }
    #att-about-footer .footer__menu a:hover {
      text-decoration: underline; }

#att-about-footer .footer__copyright {
  margin: 20px 0; }
  #att-about-footer .footer__copyright p {
    margin: 0; }
  #att-about-footer .footer__copyright a {
    text-decoration: underline; }

#att-about-footer .footer-icon-left {
  width: 32px;
  margin-left: 5px;
  vertical-align: middle; }

#att-about-footer .footer-icon-right {
  width: 32px;
  margin-right: 5px;
  vertical-align: middle; }

/*==========
  Components
  ==========*/
/*===
  NAV
  ===*/
/* Nav-specific settings */
/* Helper mixins */
/*=====================*/
#att-about-header .nav {
  max-width: 1220px;
  margin: 0 auto;
  height: 100%;
  -webkit-font-smoothing: subpixel-antialiased; }
  #att-about-header .nav:after {
    content: "";
    display: table;
    clear: both; }

#att-about-header .plusMicrosite .nav__utils {
  height: 50px; }

#att-about-header .nav__utils {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0 20px;
  height: 72px; }
  #att-about-header .nav__utils:after {
    content: "";
    display: table;
    clear: both; }
  @media (min-width: 768px) {
    #att-about-header .nav__utils {
      padding: 0 55px;
      float: left;
      width: 15%; } }
  @media (min-width: 1440px) {
    #att-about-header .nav__utils {
      padding: 0; } }

/* Nav Logo */
.nav__logo {
  position: relative;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  top: 50%;
  display: block;
  float: left; }
  .nav__logo .logo__icon {
    -webkit-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    transition: all 300ms ease;
    height: 38px;
    min-width: 95px;
    background-repeat: no-repeat;
    background-position: 0 0;
    background-size: 100%;
    display: block;
    /* NOTE: Logo color can vary based on the theme. Default treatment is silver. */
    background-image: url("https://www.att.com/es-us/sdabout/ui/corpcomm_internet_attus/1.0.0/images/logo_att-white-text.png"); }
    @media (min-width: 1220px) {
      .nav__logo .logo__icon {
        height: 38px;
        min-width: 95px; }
        .header--fixed .nav__logo .logo__icon {
          height: 38px;
          min-width: 95px; } }

/* Hamburger Toggle */
#att-about-header .nav__toggle,
.microsite-nav--plusGlobal .nav__toggle {
  height: 24px;
  width: 24px;
  background-color: transparent;
  padding: 0;
  border: 0; }
  #att-about-header .nav__toggle:focus,
  .microsite-nav--plusGlobal .nav__toggle:focus {
    outline: 0; }
  @media (min-width: 768px) {
    #att-about-header .nav__toggle,
    .microsite-nav--plusGlobal .nav__toggle {
      display: none; } }

#att-about-header .nav__toggle .bar,
.microsite-nav--plusGlobal .nav__toggle .bar {
  -webkit-transition: all 300ms ease;
  -o-transition: all 300ms ease;
  transition: all 300ms ease;
  display: block;
  background: #FFF;
  width: 100%;
  height: 3px;
  margin-bottom: 4px; }

.nav__toggle--open {
  position: relative;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  top: 50%;
  float: right; }
  .nav--open .nav__toggle--open {
    display: none; }

.nav__toggle--close {
  display: none; }
  .nav--open .nav__toggle--close {
    display: block;
    position: absolute;
    top: 22px;
    right: 20px; }
    @media (min-width: 768px) {
      .nav--open .nav__toggle--close {
        display: none; } }
  .nav--open .nav__toggle--close .bar {
    position: absolute;
    background: none;
    top: 8px; }
    .nav--open .nav__toggle--close .bar:first-child, .nav--open .nav__toggle--close .bar:last-child {
      background: #FFF; }
    .nav--open .nav__toggle--close .bar:first-child {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .nav--open .nav__toggle--close .bar:last-child {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }

@media (min-width: 768px) {
  #att-about-header .nav__utils,
  #att-about-header .nav__menu--primary {
    height: 100%; } }

/* Nav Menus */
.nav__menu {
  position: absolute;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background-color: #000; }
  @media (min-width: 768px) {
    .nav__menu {
      padding-right: 55px; } }
  @media (min-width: 1220px) {
    .nav__menu {
      padding-right: 55px; } }
  .nav__menu li {
    position: relative;
    list-style-type: none;
    margin: 0;
    z-index: 10;
    text-align: left; }
    .nav__menu li.expanded > .nav__menu-parent:after {
      content: '';
      background-color: #FFF;
      padding: 0;
      height: 2px;
      width: 12px;
      top: 19px;
      left: 14px; }
  .nav__menu .nav__menu-item {
    display: inline-block;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    position: relative;
    height: 100%;
    width: 100%;
    font-family: "Aleck Sans", "Arial", "Helvetica", sans-serif;
    font-weight: 300;
    font-size: 16px;
    line-height: 1.25;
    text-decoration: none;
    color: #FFF; }
    @media (min-width: 768px) {
      .nav__menu .nav__menu-item {
        font-size: 14px; } }
    .nav__menu .nav__menu-item span {
      display: inline-block;
      position: relative; }
      @media (max-width: 360px) {
        .nav__menu .nav__menu-item span {
          font-size: 14px; } }
  .nav__menu .nav__menu-parent {
    position: absolute;
    display: block;
    height: 40px;
    width: 40px;
    padding: 10px 0;
    right: 0;
    top: 0;
    line-height: 1;
    text-decoration: none; }
    .nav__menu .nav__menu-parent:after {
      content: '+';
      display: inline-block;
      position: absolute;
      right: 10px;
      top: 10%;
      float: right;
      padding: 3px;
      color: #FFF;
      font-family: "Aleck Sans", "Arial", "Helvetica", sans-serif;
      font-size: 25px;
      font-weight: 300;
      cursor: pointer; }
    @media (min-width: 768px) {
      .nav__menu .nav__menu-parent {
        height: 37px; } }
    .nav__menu .nav__menu-parent:hover {
      text-decoration: none; }

/* Primary Menus */
.nav__menu--primary {
  width: 320px;
  padding-left: 0;
  margin: 0; }
  @media (min-width: 768px) {
    .nav__menu--primary {
      width: 400px; }
      .nav__menu--primary:focus {
        outline: none; } }
  @media (max-width: 767px) {
    .nav__menu--primary {
      -webkit-transition: width 300ms ease;
      -o-transition: width 300ms ease;
      transition: width 300ms ease;
      max-width: 80%;
      left: 100%;
      top: 0;
      height: 100%;
      padding-top: 72px;
      border-left: 1px solid #5A5A5A; } }
  @media (max-width: 767px) and (min-width: 360px) {
    .nav__menu--primary {
      max-width: none; } }
  @media (min-width: 768px) {
    .nav__menu--primary {
      position: relative;
      float: right;
      width: 85%;
      background-color: transparent;
      text-align: right; } }
  @media (min-width: 1440px) {
    .nav__menu--primary {
      padding-right: 0; } }
  .nav__menu--primary > li {
    /* NOTE: Apply highlighting to nav items based on the body class name. */ }
    .story:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .story:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .story:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .blog:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .blog:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .blog:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .all-posts:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .all-posts:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .all-posts:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .media-gallery:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .media-gallery:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .media-gallery:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .media-kit:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .media-kit:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .media-kit:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .media-kit-landing:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .media-kit-landing:not([class*="nav-"]) .nav__menu--primary > li.nav-news > .nav__menu-item:before,
        .nav-news .nav__menu--primary > li.nav-news > .nav__menu-item:before {
          opacity: 1; } }
    .media-kit-landing:not([class*="nav-"]) .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item,
    .nav-news .header--transparent .nav__menu--primary > li.nav-news > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    .nav__menu--primary > li.active > .nav__menu-item {
      color: #009FDB; }
      @media (min-width: 768px) {
        .nav__menu--primary > li.active > .nav__menu-item:before {
          opacity: 1; } }
    .header--transparent .nav__menu--primary > li.active > .nav__menu-item {
      text-shadow: 0px 0px 30px rgba(0, 0, 0, 0.5); }
    @media (max-width: 767px) {
      .nav__menu--primary > li {
        border-bottom: 1px solid #5A5A5A; }
        .nav__menu--primary > li.expanded > .nav__menu-item:after {
          -webkit-transform: translate(1px, -2px) rotate(45deg);
              -ms-transform: translate(1px, -2px) rotate(45deg);
                  transform: translate(1px, -2px) rotate(45deg); }
        .nav__menu--primary > li.expanded > .nav__menu-item span {
          border-bottom: 2px solid #009FDB;
          padding-bottom: 9px; } }
    @media (min-width: 768px) {
      .nav__menu--primary > li {
        display: inline-block;
        height: 100%;
        margin: 0 0 0 20px; }
        .nav__menu--primary > li:first-child {
          margin-left: 0; }
        .nav__menu--primary > li:nth-last-child(-n+2) > .nav__menu--nested {
          right: 0; }
        .nav__menu--primary > li:hover > .nav__menu-item:before,
        .nav__menu--primary > li.expanded > .nav__menu-item:before {
          opacity: 1; }
        .nav__menu--primary > li:hover > .nav__menu-item:after,
        .nav__menu--primary > li.expanded > .nav__menu-item:after {
          -webkit-transform: translate(1px, -2px) rotate(45deg);
              -ms-transform: translate(1px, -2px) rotate(45deg);
                  transform: translate(1px, -2px) rotate(45deg); } }
    @media (min-width: 850px) {
      .nav__menu--primary > li {
        margin-left: 35px; } }
    @media (min-width: 1024px) {
      .nav__menu--primary > li {
        margin-left: 65px; } }
    @media (min-width: 1220px) {
      .nav__menu--primary > li {
        margin-left: 80px; } }
    @media (min-width: 1440px) {
      .nav__menu--primary > li.last-item {
        padding-right: 0;
        margin-right: 0; } }
    @media (min-width: 1600px) {
      .nav__menu--primary > li:nth-last-child(-n+2) > .nav__menu--nested {
        right: auto; }
      .nav__menu--primary > li:last-child > .nav__menu--nested {
        right: 0; } }
    @media (max-width: 767px) {
      .nav__menu--primary > li > .nav__menu-item {
        width: calc(100% - 100px);
        padding: 10px 0 10px 20px; } }
    @media (min-width: 768px) {
      .nav__menu--primary > li > .nav__menu-item {
        text-transform: uppercase;
        font-weight: 400; }
        .nav__menu--primary > li > .nav__menu-item:before {
          -webkit-transition: all 300ms ease;
          -o-transition: all 300ms ease;
          transition: all 300ms ease;
          content: "";
          display: block;
          position: absolute;
          bottom: -1px;
          height: 5px;
          width: 100%;
          background-color: #009FDB;
          opacity: 0; }
        .nav__menu--primary > li > .nav__menu-item:focus:before {
          opacity: 1; } }
    @media (min-width: 768px) {
      .nav__menu--primary > li > .nav__menu-item span {
        display: block;
        top: 50%;
        -webkit-transform: translate(0, -50%);
            -ms-transform: translate(0, -50%);
                transform: translate(0, -50%); } }
    @media (min-width: 768px) {
      .nav__menu--primary > li > .nav__menu-parent {
        height: 0;
        width: 0;
        padding: 0; }
        .nav__menu--primary > li > .nav__menu-parent:after {
          content: none; } }
    @media (min-width: 768px) {
      .nav__menu--primary > li.expanded > .nav__menu-parent:after {
        content: none; } }

@media (min-width: 768px) {
  .microsite-nav--plusGlobal .nav__menu--primary {
    position: relative;
    float: right;
    width: 85%;
    background-color: transparent;
    text-align: right;
    top: 45%; } }

.microsite-nav--plusGlobal .nav__logo {
  position: relative;
  -webkit-transform: translateY(20%);
  -ms-transform: translateY(20%);
  transform: translateY(20%);
  top: 50%;
  display: block;
  float: left; }

/* Subnavs */
.nav__menu--secondary,
.nav__menu--tertiary {
  display: none;
  position: relative; }
  @media (min-width: 768px) {
    .nav__menu--secondary,
    .nav__menu--tertiary {
      position: absolute;
      width: 260px;
      margin-top: 1px;
      padding: 10px 0; }
      .nav__menu--secondary .nav__menu--nested,
      .nav__menu--tertiary .nav__menu--nested {
        position: relative;
        background-color: #000;
        margin-top: 0;
        padding: 5px 10px; } }
  @media (min-width: 1220px) {
    .nav__menu--secondary,
    .nav__menu--tertiary {
      width: 300px; } }
  @media (min-width: 1440px) {
    .nav__menu--secondary,
    .nav__menu--tertiary {
      width: 340px; } }
  @media (max-width: 767px) {
    .nav__menu--secondary li,
    .nav__menu--tertiary li {
      border-bottom: 1px solid #5A5A5A; } }
  @media (min-width: 768px) {
    .nav__menu--secondary li:hover,
    .nav__menu--tertiary li:hover {
      background-color: #5A5A5A; } }
  @media (min-width: 768px) {
    .nav__menu--secondary li:hover .nav__menu-parent,
    .nav__menu--tertiary li:hover .nav__menu-parent {
      background-color: #676767; } }
  .nav__menu--secondary li:last-child,
  .nav__menu--tertiary li:last-child {
    border-bottom: 0; }
  .nav__menu--secondary .nav__menu-item,
  .nav__menu--tertiary .nav__menu-item {
    width: calc(100% - 100px);
    padding: 10px 0 10px 0; }
    @media (min-width: 768px) {
      .nav__menu--secondary .nav__menu-item,
      .nav__menu--tertiary .nav__menu-item {
        padding-left: 20px;
        width: calc(100% - 40px); } }
    @media (min-width: 768px) {
      .nav__menu--secondary .nav__menu-item:focus,
      .nav__menu--tertiary .nav__menu-item:focus {
        background-color: #5A5A5A; } }
    .nav__menu--secondary .nav__menu-item:last-child,
    .nav__menu--tertiary .nav__menu-item:last-child {
      width: 100%;
      padding-right: 20px; }

/* Secondary Subnavs */
.nav__menu--secondary {
  /* When in desktop, rely on the hover or focused state of the parent element to show secondary navs */ }
  @media (max-width: 767px) {
    .nav__menu--secondary {
      padding-left: 40px;
      /* When in mobile, rely on the .expanded class of the parent element to show secondary navs */ }
      .expanded > .nav__menu-parent + .nav__menu--secondary {
        display: block; } }
  @media (min-width: 768px) {
    .nav__menu--primary > li:hover > .nav__menu-parent + .nav__menu--secondary,
    .nav__menu--primary > li.expanded > .nav__menu-parent + .nav__menu--secondary {
      display: block; } }

/* Tertiary Subnavs */
.nav__menu--tertiary {
  /* Always rely on the .expanded class of the parent element to show tertiary navs */ }
  @media (max-width: 767px) {
    .nav__menu--tertiary {
      padding-left: 25px; } }
  @media (min-width: 768px) {
    .nav__menu--tertiary {
      position: relative;
      background-color: #000;
      margin-top: 0;
      padding: 5px 10px; } }
  @media (min-width: 768px) {
    .nav__menu--tertiary li .nav__menu-item {
      padding-left: 30px; } }
  .expanded > .nav__menu-parent + .nav__menu--tertiary {
    display: block; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbF9uYXYuc2NzcyIsIl9hYnN0cmFjdHMvX3ZhcmlhYmxlcy5zY3NzIiwiX2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJfbGF5b3V0L19oZWFkZXIuc2NzcyIsIl9sYXlvdXQvX2Zvb3Rlci5zY3NzIiwiX2NvbXBvbmVudHMvX25hdi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSDs7Y0FFYztBQUlkOzthQUVhO0FDcEJiOzthQUVhO0FBRWI7O2VBRWU7QUFHZSwwQ0FBMEM7QUFDM0MsMkNBQTJDO0FBR3pDLCtDQUErQztBQUc5RTs7Z0JBRWdCO0FBZ0JkLCtCQUErQjtBQVEvQiw2QkFBNkI7QUFVN0IsaUJBQWlCO0FBU2pCLFVBQVU7QUFLWjs7c0JBRXNCO0FBRXBCOzs7Ozs7O0tBT0c7QUFZTDs7aUJBRWlCO0FBRWYsbUJBQW1CO0FBZ0JuQixxQ0FBcUM7QUFTckMseUJBQXlCO0FBRUYsOENBQThDO0FBQzVCLGdDQUFnQztBQUM1Qix1Q0FBdUM7QUFDekQsMENBQTBDO0FBQ3JDLDRCQUE0QjtBQUk1RCxnQkFBZ0I7QUErQmhCLDJIQUEySDtBQU8zSDs7Ozs7SUFLRTtBQUVKOztpQkFFaUI7QUFFZixxQ0FBcUM7QUFFckM7RUFDQywwQkFBeUI7RUFBRSxnQkFBZ0I7RUFDM0MsK0NBQThDO0VBQzlDLDRRQUdvRTtFQUNuRSxpQkFBZ0I7RUFDaEIsbUJBQWtCLEVBQUE7O0FBRXBCO0VBQ0MsMEJBQXlCO0VBQUUsdUJBQXVCO0VBQ2xELCtDQUE4QztFQUM5Qyw0UUFHb0U7RUFDbkUsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQUFBOztBQUVwQjtFQUNDLDBCQUF5QjtFQUFFLHNCQUFzQjtFQUNqRCwrQ0FBOEM7RUFDOUMsNFFBR29FO0VBQ25FLGlCQUFnQjtFQUNoQixtQkFBa0IsRUFBQTs7QUFFcEI7RUFDQywwQkFBeUI7RUFBRSw2QkFBNkI7RUFDeEQsaURBQWdEO0VBQ2hELG9SQUdzRTtFQUNyRSxpQkFB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eUI7SUFDekIsdUJBQXNCLEVBaUJ2QjtJQWZDO01BckRKOztRQXNETSxtQkFBa0I7UUFDbEIseUJBQXdCLEVBYTNCLEVBQUE7SUFURztNQTNETjs7UUE0RFEsMEJKbGNTLEVJb2NaLEVBQUE7SUE5REw7O01BaUVNLFlBQVc7TUFDWCxvQkFBbUIsRUFDcEI7O0FBSUwsdUJBQXVCO0FBRXZCO0VBV0Usc0dBQXNHLEVBT3ZHO0VBaEJDO0lBRkY7TUFHSSxtQkFBa0I7TUFFbEIsOEZBQThGLEVBYWpHO01BWkc7UUFDRSxlQUFjLEVBQ2YsRUFBQTtFQUlIO0lBQ0U7O01BRUUsZUFBYyxFQUNmLEVBQUE7O0FBSUwsc0JBQXNCO0FBRXRCO0VBbUJFLG9GQUFvRixFQUlyRjtFQXJCQztJQUZGO01BR0ksbUJBQWtCLEVBb0JyQixFQUFBO0VBakJDO0lBTkY7TUFPSSxtQkFBa0I7TUFDbEIsdUJKM2VRO01JNGVSLGNBQWE7TUFDYixrQkFBaUIsRUFhcEIsRUFBQTtFQVRHO0lBZEo7TUFlTSxtQkFBa0IsRUFFckIsRUFBQTtFQUdEO0lBQ0UsZUFBYyxFQUNmIiwiZmlsZSI6Imdsb2JhbF9uYXYuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEFUJlQgQWJvdXQgVXMgR2xvYmFsIE5hdmlnYXRpb24gJiBGb290ZXIgZm9yIEFFTVxyXG4gKiBieSBGbGVpc2htYW5IaWxsYXJkLCBjLiAyMDE4XHJcbiAqXHJcbiAqIE5PVEU6IEFUVE4gREVWUyFcclxuICogUGxlYXNlIHVzZSB0aGlzIHN0eWxlc2hlZXQgZm9yIGltcG9ydGluZyBTQVNTIHBhcnRpYWxzIG9ubHkuIERvIG5vdCBhdXRob3IgYW55IFNBU1Mgb3IgQ1NTIGRpcmVjdGx5IGluIHRoaXMgZmlsZS5cclxuICogQWxzbywgcGxlYXNlIGZpcnN0IHJlZmVyIHRvIHRoZSBfYWJzdHJhY3RzIHBhcnRpYWxzIHRvIHJldmlldyB0aGUgZXhpc3RpbmcgZ2xvYmFsIHN0eWxlIHNldHRpbmdzIGFuZCB1dGlsaXRpZXMgYmVmb3JlIGNyZWF0aW5nIG5ldyBvbmVzLlxyXG4gKlxyXG4gKiBGb3Igc3R5bGUgZ3VpZGVsaW5lcyBhbmQgY29kaW5nIGNvbnZlbnRpb25zIGZvciB0aGlzIHByb2plY3QsXHJcbiAqIHBsZWFzZSBjb25zdWx0IHRoZSBSRUFETUUubWQgaW4gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QuXHJcbiAqL1xyXG5cclxuLyo9PT09PT09PT09XHJcbiAgTkFWSUdBVElPTlxyXG4gID09PT09PT09PT0qL1xyXG5cclxuICBAY2hhcnNldCAndXRmLTgnO1xyXG5cclxuLyo9PT09PT09PT1cclxuICBBYnN0cmFjdHNcclxuICA9PT09PT09PT0qL1xyXG5cclxuICBAaW1wb3J0ICdfYWJzdHJhY3RzL3ZhcmlhYmxlcyc7XHJcbiAgQGltcG9ydCAnX2Fic3RyYWN0cy9taXhpbnMnO1xyXG5cclxuLyo9PT09PT1cclxuICBMYXlvdXRcclxuICA9PT09PT0qL1xyXG5cclxuICBAaW1wb3J0ICdfbGF5b3V0L2hlYWRlcic7XHJcbiAgQGltcG9ydCAnX2xheW91dC9mb290ZXInO1xyXG5cclxuLyo9PT09PT09PT09XHJcbiAgQ29tcG9uZW50c1xyXG4gID09PT09PT09PT0qL1xyXG5cclxuICBAaW1wb3J0ICdfY29tcG9uZW50cy9uYXYnO1xyXG4iLCIvKj09PT09PT09PVxyXG4gIFZBUklBQkxFU1xyXG4gID09PT09PT09PSovXHJcblxyXG4vKj09PT09PT09PT09XHJcbiAgQnJlYWtwb2ludHNcclxuICA9PT09PT09PT09PSovXHJcblxyXG4gICRicmVha3BvaW50LS14eFNtYWxsOiA0ODBweDtcclxuICAkYnJlYWtwb2ludC0teFNtYWxsOiA2NDBweDsgLyogd2Ugc3dpdGNoIGZyb20gbW9iaWxlIHRvIHRhYmxldCBoZXJlICovXHJcbiAgJGJyZWFrcG9pbnQtLXNtYWxsOiA3NjhweDsgLyogd2Ugc3dpdGNoIGZyb20gdGFibGV0IHRvIGRlc2t0b3AgaGVyZSAqL1xyXG4gICRicmVha3BvaW50LS1tZWRpdW06IDEwMjRweDtcclxuICAkYnJlYWtwb2ludC0tbGFyZ2U6IDEyMjBweDtcclxuICAkYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7IC8qIG1heCB3aWR0aCBvZiBzdGFuZGFyZCAxNVwiIGxhcHRvcCB2aWV3cG9ydCAqL1xyXG4gICRicmVha3BvaW50LS14eExhcmdlOiAxNjAwcHg7XHJcblxyXG4vKj09PT09PT09PT09PVxyXG4gIEdsb2JhbCBTaXplc1xyXG4gID09PT09PT09PT09PSovXHJcblxyXG4gICRtYXhQYWdlV2lkdGg6IDE2MDBweDtcclxuICAkbWF4Q29udGVudFdpZHRoOiAxMjIwcHg7XHJcbiAgJG1heFJvd1dpZHRoOiAkbWF4Q29udGVudFdpZHRoO1xyXG5cclxuICAkbW9iaWxlTmF2SGd0OiA3MnB4O1xyXG4gICRkZXNrdG9wTmF2SGd0OiAxMDVweDtcclxuICAkbWljcm9zaXRlRGVza3RvcE5hdkhndDogNzJweDtcclxuICAkbWljcm9zaXRlQ29sbGFwc2VkR2xvYmFsTmF2OiA1MHB4O1xyXG4gICRtaWNyb3NpdGVNb2JpbGVOYXZIZ3Q6IDYwcHg7XHJcblxyXG4gICRuYXZXaWR0aE1vYmlsZTogMzIwcHg7XHJcbiAgJG5hdldpZHRoVGFibGV0OiA0MDBweDtcclxuICAkYnJlYWtwb2ludC0tZGVza3RvcE5hdjogJGJyZWFrcG9pbnQtLXNtYWxsO1xyXG5cclxuICAvKiBDb21wb25lbnQgTWFyZ2luL1BhZGRpbmdzICovXHJcblxyXG4gICRhaXItLXhTbWFsbDogMjBweDtcclxuICAkYWlyLS1zbWFsbDogNDBweDtcclxuICAkYWlyLS1sYXJnZTogNjBweDtcclxuICAkYWlyLS14TGFyZ2U6IDgwcHg7XHJcbiAgJGFpci0teHhMYXJnZTogMTAwcHg7XHJcblxyXG4gIC8qIFNlY3Rpb24gTWFyZ2luL1BhZGRpbmdzICovXHJcbiAgJHNlY3Rpb25TcGFjaW5nOiAoXHJcbiAgICAgIHhsOiAoNDBweCwgMTAwcHgsIDE1MHB4KSxcclxuICAgICAgbGc6ICgzNXB4LCA4MHB4LCAxMjBweCksXHJcbiAgICAgIHNtOiAoMjVweCwgMzBweCwgNTBweClcclxuICApO1xyXG5cclxuICAkZ3V0dGVyLS1zbWFsbDogNTVweDtcclxuICAkZ3V0dGVyLS1sYXJnZTogMTA1cHg7XHJcblxyXG4gIC8qIExpbmUgSGVpZ2h0ICovXHJcblxyXG4gICRsaW5lSGVpZ2h0LS14U21hbGw6IDEuMzU7XHJcbiAgJGxpbmVIZWlnaHQtLXNtYWxsOiAxLjQ1O1xyXG4gICRsaW5lSGVpZ2h0LS1sYXJnZTogMS42O1xyXG5cclxuICAkYmFubmVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE1O1xyXG4gICRiYW5uZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuNTtcclxuXHJcbiAgLyogTWlzYyAqL1xyXG5cclxuICAkbGlnaHRib3hPcGFjaXR5OiAuODU7XHJcbiAgJGhpZ2hsaWdodEJhcjogNXB4O1xyXG5cclxuLyo9PT09PT09PT09PT09PT09PT1cclxuICBSZXNwb25zaXZlIENvbHVtbnNcclxuICA9PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuICAvKlxyXG4gICAqIFRoZSBmb2xsb3dpbmcgY29sdW1uIHNpemluZyBtYXAgaXMgdXNlZCB0byBkZXRlcm1pbmUgaG93IGRpZmZlcmVudCBzaXplZCBjb2x1bW5zIHdpbGwgYWRqdXN0IHRoZWlyIHdpZHRocyBhdCBkaWZmZXJlbnQgYnJlYWtwb2ludHMuXHJcbiAgICogRm9yIGVhY2ggY29sdW1uIHNpemUgKDEyLCA5LCA4LCA2LCA0LCAzLCAyKSwgdGhlIHN1YnNlcXVlbnQgcmVzcG9uc2l2ZSB3aWR0aHMgYXJlIGxpc3RlZCBpbiBwYXJlbnRoZXNlcywgZ29pbmcgaW4gb3JkZXIgZnJvbSBtb2JpbGUsIHRvIHRhYmxldCwgdG8gc21hbGwgZGVza3RvcCwgdG8gZnVsbCBkZXNrdG9wLlxyXG4gICAqIGV4OiBjb2xTaXplOihtb2JpbGVXaWR0aCwgdGFibGV0V2lkdGgsIHNtRGVza3RvcFdpZHRoLCBsZ0Rlc2t0b3BXaWR0aCksIHdoZXJlIHRoZSB3aWR0aCB2YWx1ZXMgcmVmZXIgdG8gdGhlIG51bWJlciBvZiBwYXJ0cy1wZXItMTIgdGhhdCB0aGUgY29sdW1uIHNob3VsZCBvY2N1cHkgYXQgZWFjaCBzY3JlZW4gc2l6ZS5cclxuICAgKiBOb3RlIHRoYXQgYWxsIGNvbHVtbiB3aWR0aHMgYXJlIDEyLWJhc2VkLCBzbyBhIDEyIHJlcHJlc2VudHMgYSBmdWxsLXdpZHRoIGFwcGVhcmFuY2UuXHJcbiAgICogU2luY2UgYWxsIGNvbHVtbiBzaXplcyBzaG91bGQgYXBwZWFyIGZ1bGwtd2lkdGggYXQgbW9iaWxlIHZpZXdwb3J0IHNpemUsIHRoZSBmaXJzdCBudW1iZXIgaW4gZWFjaCBzZXF1ZW5jZSBpcyAxMi5cclxuICAgKiBUaGUgc2V0dGluZ3MgZnJvbSB0aGlzIG1hcCBnZXQgYXBwbGllZCBieSB0aGUgY29sdW1uU2l6ZXIgbG9vcCBzdGF0ZW1lbnQgZm91bmQgaW4gdGhlIFwiQ29sdW1uc1wiIHNlY3Rpb24gb2YgdGhlIF9sYXlvdXQgcGFydGlhbCAoc2VlIHRoZSBzdHlsZXMgdW5kZXIgXCIuY29sXCIpLlxyXG4gICAqL1xyXG5cclxuICAkY29sdW1uU2l6ZXI6IChcclxuICAgIDEyOigxMiwgMTIsIDEyLCAxMiksIC8vIGZ1bGwtd2lkdGggY29sdW1uOyAxMi8xMiA9IDEgKDEwMCUpXHJcbiAgICA5OiAoMTIsIDYsIDksIDkpLCAvLyB0aHJlZS1mb3VydGhzIHdpZHRoIGNvbHVtbjsgOS8xMiA9IDAuNzUgKDc1JSlcclxuICAgIDg6ICgxMiwgOCwgOCwgOCksIC8vIHR3by10aGlyZHMgd2lkdGggY29sdW1uOyA4LzEyID0gMC42NiAoNjYlKVxyXG4gICAgNjogKDEyLCA2LCA2LCA2KSwgLy8gaGFsZi13aWR0aCBjb2x1bW4gKDYvMTIgPSAwLjUgb3IgNTAlKVxyXG4gICAgNDogKDEyLCA0LCA0LCA0KSwgLy8gb25lLXRoaXJkIHdpZHRoIGNvbHVtbiAoNC8xMiA9IDAuMzMgb3IgMzMlKVxyXG4gICAgMzogKDEyLCA2LCAzLCAzKSwgLy8gb25lLWZvdXJ0aCB3aWR0aCBjb2x1bW4gKDMvMTIgPSAwLjI1IG9yIDI1JSlcclxuICAgIDI6ICgxMiwgNCwgMi40LCAyKSAvLyBvbmUtZmlmdGggd2lkdGggY29sdW1uICgyLjQvMTIgPSAwLjIgb3IgMjAlKVxyXG4gICk7XHJcblxyXG4vKj09PT09PT09PT09PT1cclxuICBDb2xvciBQYWxldHRlXHJcbiAgPT09PT09PT09PT09PSovXHJcblxyXG4gIC8qIEdsb2JhbCBDb2xvcnMgKi9cclxuXHJcbiAgJGF0dFllbGxvdzogI0ZGQjgxQztcclxuICAkYXR0T3JhbmdlOiAjRUE3NDAwO1xyXG4gICRhdHRMZ3RCbHVlOiAjNzFDNUU4O1xyXG4gICRhdHRCbHVlOiAjMDA5RkRCO1xyXG4gICRhdHREcmtCbHVlOiAjMDU2OEFFO1xyXG4gICRhdHRDb2JhbHQ6ICMwMDU3Yjg7XHJcbiAgJHdoaXRlOiAjRkZGO1xyXG4gICRsZ3RHcmF5OiAjRjJGMkYyO1xyXG4gICRyZWdHcmF5OiAjQzlDOUM5O1xyXG4gICRtZWRHcmF5OiAjOTU5NTk1O1xyXG4gICRkcmtHcmF5OiAjNUE1QTVBO1xyXG4gICRmdW5jdGlvbmFsQmxhY2s6ICMxOTE5MTk7XHJcbiAgJGJsYWNrOiAjMDAwO1xyXG5cclxuICAvKiAyMDE5IE5ldyBCcmFuZCBTZWNvbmRhcnkgQ29sb3JzICovXHJcbiAgXHJcbiAgJGNvYmFsdDogIzAwNTdCODtcclxuICAkcHVycGxlOiAjQUYyOUJCO1xyXG4gICRiZXJyeTogI0ZGNTg1RDtcclxuICAkdGFuZ2VyaW5lOiAjRkZCMDAwO1xyXG4gICRsaW1lOiAjOTFEQzAwO1xyXG4gICRtaW50OiAjNDlFRURDO1xyXG5cclxuICAvKiBTcGVjaWZpYyBVc2UgQ29sb3JzICovXHJcblxyXG4gICRjb2xvci0tY3RhOiAkYXR0Qmx1ZTsgLyogY2FsbC10by1hY3Rpb24gZWxlbWVudHMgKGxpbmtzLCBidXR0b25zKSAqL1xyXG4gICRjb2xvci0tY3RhLWhvdmVyOiBkYXJrZW4oJGF0dEJsdWUsIDQlKTsgLyogY2FsbC10by1hY3Rpb24gaG92ZXIgc3RhdGUgKi9cclxuICAkY29sb3ItLWN0YS1jb250cmFzdDogbGlnaHRlbigkYXR0Qmx1ZSwgNyUpOyAvKiB0cmFuc3BhcmVudCBoZWFkZXIgbGluayBoaWdobGlnaHQgKi9cclxuICAkY29sb3ItLWxpbms6ICRhdHREcmtCbHVlOyAvKiBzdGFuZGFyZCBsaW5rcyBpbnNpZGUgb2YgdGV4dCBibG9ja3MgKi9cclxuICAkY29sb3ItLWNvcHk6ICRmdW5jdGlvbmFsQmxhY2s7IC8qIGdlbmVyYWwgcGFnZSBib2R5IGNvcHkgKi9cclxuICAkY29sb3ItLXNlYXJjaC1ib3JkZXI6IGRhcmtlbigkbGd0R3JheSwgMyUpO1xyXG4gICRjb2xvci0tbG9nby1kZWZhdWx0OiBcIndoaXRlXCI7XHJcblxyXG4gIC8qIENvbG9yIE1hcHMgKi9cclxuXHJcbiAgJGJhY2tncm91bmRDb2xvcnM6IChcclxuICAgIC8vVmFyaWFibGUgMSBpcyBiYWNrZ3JvdW5kLCBWYXJpYWJsZSAyIGlzIHRleHQgY29sb3JcclxuICAgIC8vTGVnYWN5XHJcbiAgICBibHVlOiAoJGF0dEJsdWUsICRmdW5jdGlvbmFsQmxhY2spLFxyXG4gICAgZGFyay1ibHVlOiAoJGF0dERya0JsdWUsICR3aGl0ZSksXHJcbiAgICBuZWFyLWJsYWNrOiAoJGZ1bmN0aW9uYWxCbGFjaywgJHdoaXRlKSxcclxuICAgIFxyXG4gICAgLy8yMDE5XHJcbiAgICB3aGl0ZTogKCR3aGl0ZSwgJGZ1bmN0aW9uYWxCbGFjayksXHJcbiAgICBibGFjazogKCRibGFjaywgJHdoaXRlKSxcclxuICAgIGdyYXk6ICgkbGd0R3JheSwgJGZ1bmN0aW9uYWxCbGFjayksXHJcbiAgICBibHVlLS13aC10ZXh0OiAoJGF0dEJsdWUsICR3aGl0ZSksXHJcbiAgICBibHVlLS1ibC10ZXh0OiAoJGF0dEJsdWUsICRmdW5jdGlvbmFsQmxhY2spLFxyXG4gICAgLy9Db21tdW5pY2F0aW9ucyBTZWNvbmRhcnkgQ29sb3JzXHJcbiAgICBjb21tcy1jb2JhbHQ6ICgkY29iYWx0LCAkd2hpdGUpLFxyXG4gICAgY29tbXMtcHVycGxlOiAoJHB1cnBsZSwgJHdoaXRlKSxcclxuICAgIGNvbW1zLWJlcnJ5OiAoJGJlcnJ5LCAkZnVuY3Rpb25hbEJsYWNrKSxcclxuICAgIGNvbW1zLXRhbmdlcmluZTogKCR0YW5nZXJpbmUsICRmdW5jdGlvbmFsQmxhY2spLFxyXG4gICAgY29tbXMtbGltZTogKCRsaW1lLCAkZnVuY3Rpb25hbEJsYWNrKSxcclxuICAgIGNvbW1zLW1pbnQ6ICgkbWludCwgJGZ1bmN0aW9uYWxCbGFjayksIFxyXG4gICAgLy9Db21tdW5pY2F0aW9ucyBTZWNvbmRhcnkgQ29sb3JzIC0gR3JhZGllbnRzIFxyXG4gICAgLy9WYXIgMSBpcyBsZWZ0IGJhY2tncm91bmQsIFZhciAyIGlzIHRleHQgY29sb3IgVmFyIDMgaXMgcmlnaHQgYmFja2dyb3VuZFxyXG4gICAgYmx1ZS1ncmFkaWVudC0td2gtdGV4dDogKCRhdHRDb2JhbHQsICR3aGl0ZSwgJGF0dEJsdWUpLFxyXG4gICAgYmx1ZS1ncmFkaWVudC0tYmwtdGV4dDogKCRhdHRDb2JhbHQsICRmdW5jdGlvbmFsQmxhY2ssICRhdHRCbHVlKSxcclxuICAgIGNvbW1zLWNvYmFsdC1wdXJwbGU6KCRjb2JhbHQsICR3aGl0ZSwgJHB1cnBsZSksXHJcbiAgICBjb21tcy1iZXJyeS10YW5nZXJpbmU6KCRiZXJyeSwgJGZ1bmN0aW9uYWxCbGFjaywgJHRhbmdlcmluZSksXHJcbiAgICBjb21tcy1saW1lLW1pbnQ6KCRsaW1lLCAkZnVuY3Rpb25hbEJsYWNrLCAkbWludClcclxuICApO1xyXG5cclxuICAvKiBDYXRlZ29yeSBUaGVtZXMgLSB0aGVtZSBuYW1lcyBiZWxvdyBhcmUgYmFzZWQgb24gdGhlbWUtLSBjYXRlZ29yeSBjbGFzc2VzIHRoYXQgZ2V0IGFwcGxpZWQgdG8gdGhlIGJvZHkgZWxlbWVudCBieSBBRU0gKi9cclxuXHJcbiAgJHRoZW1lQ29sb3JzOiAoXHJcbiAgICAvLyBDb21tdW5pY2F0aW9uczogKFwid2hpdGVcIiwgJHdoaXRlKSxcclxuICAgIC8vIGNvbXBhbnk6IChcIndoaXRlXCIsICR3aGl0ZSlcclxuICApO1xyXG5cclxuICAvKlxyXG5cclxuICBDb21tdW5pY2F0aW9uczogKFwiYmx1ZVwiLCAkYXR0Qmx1ZSksXHJcbiAgY29tcGFueTogKFwic2lsdmVyXCIsIFwic2lsdmVyXCIpXHJcblxyXG4gICovXHJcblxyXG4vKj09PT09PT09PT09PT1cclxuICBGb250IEZhbWlsaWVzXHJcbiAgPT09PT09PT09PT09PSovXHJcblxyXG4gIC8qIEFsZWNrIFNhbnMgLSBCYXNlIEZvbnQgVmFyaWFudHMgKi9cclxuXHJcbiAgQGZvbnQtZmFjZXtcclxuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2Fucyc7IC8qIEFsZWNrIFNhbnMgKi9cclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfUmcuZW90Jyk7XHJcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX1JnLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX1JnLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfUmcudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19SZy5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIH1cclxuICBAZm9udC1mYWNle1xyXG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zJzsgLyogQWxlY2sgU2FucyBJdGFsaWMgKi9cclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfSXQuZW90Jyk7XHJcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0l0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0l0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfSXQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19JdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIH1cclxuICBAZm9udC1mYWNle1xyXG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zJzsgLyogQWxlY2sgU2FucyBMaWdodCAqL1xyXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdC5lb3QnKTtcclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHQud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgfVxyXG4gIEBmb250LWZhY2V7XHJcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMnOyAvKiBBbGVjayBTYW5zIExpZ2h0IEl0YWxpYyAqL1xyXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdEl0LmVvdCcpO1xyXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdEl0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0SXQud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdEl0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHRJdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIH1cclxuICBAZm9udC1mYWNle1xyXG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zJzsgLyogQWxlY2sgU2FucyBCb2xkICovXHJcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkLmVvdCcpO1xyXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICB9XHJcbiAgQGZvbnQtZmFjZXtcclxuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2Fucyc7IC8qIEFsZWNrIFNhbnMgQm9sZCBJdGFsaWMgKi9cclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmRJdC5lb3QnKTtcclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmRJdC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZEl0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmRJdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkSXQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICB9XHJcblxyXG4gIC8qIEFsZWNrIFNhbnMgLSBBZGRpdGlvbmFsIEZvbnQgVmFyaWFudHMgKi9cclxuXHJcbiAgQGZvbnQtZmFjZXtcclxuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2FucyBNZWRpdW0nOyAvKiBBbGVjayBTYW5zIE1lZGl1bSAqL1xyXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZC5lb3QnKTtcclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWQud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kLnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgfVxyXG4gIEBmb250LWZhY2V7XHJcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMgTWVkaXVtJzsgLyogQWxlY2sgU2FucyBNZWRpdW0gSXRhbGljICovXHJcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kSXQuZW90Jyk7XHJcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kSXQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWRJdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kSXQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZEl0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgfVxyXG4gIEBmb250LWZhY2V7XHJcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMgQmxhY2snOyAvKiBBbGVjayBTYW5zIEJsYWNrICovXHJcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsay5lb3QnKTtcclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsay5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIH1cclxuICBAZm9udC1mYWNle1xyXG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zIEJsYWNrJzsgLyogQWxlY2sgU2FucyBCbGFjayBJdGFsaWMgKi9cclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrSXQuZW90Jyk7XHJcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsa0l0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsa0l0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrSXQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGtJdC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIH1cclxuXHJcbiAgLyogQWxlY2sgU2xhYiAqL1xyXG5cclxuICBAZm9udC1mYWNle1xyXG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTbGFiJzsgLyogQWxlY2sgU2xhYiAqL1xyXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19SZy5lb3QnKTtcclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfUmcuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfUmcud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19SZy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX1JnLnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgfVxyXG4gIEBmb250LWZhY2V7XHJcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNsYWInOyAvKiBBbGVjayBTbGFiIEl0YWxpYyAqL1xyXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19JdC5lb3QnKTtcclxuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfSXQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfSXQud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19JdC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX0l0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyogQVQmVCBJY29uIEZvbnQgKi9cclxuXHJcbiAgQGZvbnQtZmFjZXtcclxuICBcdGZvbnQtZmFtaWx5OiAnQVRUX0ljb25zJzsgLyogQVQmVCBJY29uIEZvbnQgKi9cclxuICBcdHNyYzogdXJsKCdfZm9udHMvQVRUX0ljb25zL2F0dC1pY29ucy5lb3QnKTtcclxuICBcdHNyYzogdXJsKCdfZm9udHMvQVRUX0ljb25zL2F0dC1pY29ucy5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxyXG4gIFx0ICAgICB1cmwoJ19mb250cy9BVFRfSWNvbnMvYXR0LWljb25zLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcclxuICBcdCAgICAgdXJsKCdfZm9udHMvQVRUX0ljb25zL2F0dC1pY29ucy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FUVF9JY29ucy9hdHQtaWNvbnMuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICB9XHJcblxyXG4vKj09PT09PT09PT09PT09XHJcbiAgRm9udCBWYXJpYWJsZXNcclxuICA9PT09PT09PT09PT09PSovXHJcblxyXG4gICRhbGVjazogXCJBbGVjayBTYW5zXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcclxuICAkYWxlY2tNZWRpdW06IFwiQWxlY2sgU2FucyBNZWRpdW1cIiwgXCJBbGVjayBTYW5zXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcclxuICAkYWxlY2tCbGFjazogXCJBbGVjayBTYW5zIEJsYWNrXCIsIFwiQWxlY2sgU2FucyBNZWRpdW1cIiwgXCJBbGVjayBTYW5zXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcclxuICAkYWxlY2tTbGFiOiBcIkFsZWNrIFNsYWJcIiwgXCJBbGVjayBTYW5zXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcclxuICAkYXJpYWw6IFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcclxuICAkYXR0LWljb25zOiBcIkFUVF9JY29uc1wiLFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcclxuXHJcbiAgLyogQVQmVCBJY29uIEZvbnQgTWFwcyAqL1xyXG5cclxuICAkYXR0SWNvbnM6IChcclxuICAgIGFsZXJ0OiBcIlxcZTkwMFwiLFxyXG4gICAgYXR0LWxvZ286IFwiXFxlOTAxXCIsXHJcbiAgICBhdHQtbG9nby10ZXh0OiBcIlxcZTkwZVwiLFxyXG4gICAgY29tbWVudDogXCJcXGU5MDJcIixcclxuICAgIGRvd25sb2FkOiBcIlxcZTkwM1wiLFxyXG4gICAgZW1haWw6IFwiXFxlOTA0XCIsXHJcbiAgICBmYWNlYm9vazogXCJcXGU5MDVcIixcclxuICAgIGZhcTogXCJcXGU5MDZcIixcclxuICAgIGZpbGU6IFwiXFxlOTA3XCIsXHJcbiAgICBpbmZvOiBcIlxcZTkwOFwiLFxyXG4gICAgaW5mbzI6IFwiXFxlOTA5XCIsXHJcbiAgICBpbnN0YWdyYW06IFwiXFxlOTBhXCIsXHJcbiAgICBsaW5rOiBcIlxcZTkwYlwiLFxyXG4gICAgbGlua2VkaW46IFwiXFxlOTBjXCIsXHJcbiAgICBub3RpZmljYXRpb246IFwiXFxlOTBmXCIsXHJcbiAgICBtaW51czogXCJcXGU5MGRcIixcclxuICAgIHBsYXk6IFwiXFxlOTEwXCIsXHJcbiAgICBwbHVzOiBcIlxcZTkxMVwiLFxyXG4gICAgcXVvdGU6IFwiXFxlOTEyXCIsXHJcbiAgICBzZWFyY2g6IFwiXFxlOTEzXCIsXHJcbiAgICB0d2l0dGVyOiBcIlxcZTkxNFwiLFxyXG4gICAgeW91dHViZTogXCJcXGU5MTVcIixcclxuICAgIHR3aXR0ZXIteDogXCJcXGU5MTZcIixcclxuICAgIGFycm93LWRvd246IFwiXFxlOTE3XCIsXHJcbiAgICBhcnJvdy1sZWZ0OiBcIlxcZTkxOFwiLFxyXG4gICAgYXJyb3ctcmlnaHQ6IFwiXFxlOTE5XCIsXHJcbiAgICBwYXVzZTogXCJcXGU5MjBcIixcclxuICAgIG5ldy1wbGF5OiBcIlxcZTkyMVwiXHJcbiAgKTtcclxuXHJcbi8qPT09PT09PT09PT09PT09PVxyXG4gIE5hdiBIaWdobGlnaHRpbmdcclxuICA9PT09PT09PT09PT09PT09Ki9cclxuXHJcbiAgLypcclxuICAgKiBUaGUgZm9sbG93aW5nIG1hcCBzZXRzIHRoZSBuYXYgaGlnaGxpZ2h0aW5nIGRlZmF1bHQgZm9yIGRpZmZlcmVudCBib2R5IGNsYXNzZXNcclxuICAgKiBleDogYm9keUNsYXNzTmFtZTogXCJuYXYtaXRlbS1jbGFzcy1uYW1lXCJcclxuICAgKiBOb3RlIHRoYXQgaWYgYSBuYXYgaXRlbSB3aXRoIGNsYXNzIG9mIFwibmF2LWNvbXBhbnlcIiBleGlzdHMgYW5kIHlvdSdyZSBvbiBhIHBhZ2Ugd2l0aCBhIGJvZHkgY2xhc3Mgb2YgXCJuYXYtY29tcGFueVwiLCB0aGF0IHdpbGwgaGlnaGxpZ2h0IGFzIHdlbGxcclxuICAgKi9cclxuXHJcbiAgJG5hdkhpZ2hsaWdodHM6IChcclxuICAgIHN0b3J5OiBcIm5hdi1uZXdzXCIsXHJcbiAgICBibG9nOiBcIm5hdi1uZXdzXCIsXHJcbiAgICBhbGwtcG9zdHM6IFwibmF2LW5ld3NcIixcclxuICAgIG1lZGlhLWdhbGxlcnk6IFwibmF2LW5ld3NcIixcclxuICAgIG1lZGlhLWtpdDogXCJuYXYtbmV3c1wiLFxyXG4gICAgbWVkaWEta2l0LWxhbmRpbmc6IFwibmF2LW5ld3NcIlxyXG4gICk7XHJcbiIsIi8qPT09PT09XHJcbiAgTUlYSU5TXHJcbiAgPT09PT09Ki9cclxuXHJcbi8qPT09PT09PVxyXG4gIEFjY2VudHNcclxuICA9PT09PT09Ki9cclxuXHJcbkBtaXhpbiBhY2NlbnQtYXJyb3coJGRpcmVjdGlvbikge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJjphZnRlciB7XHJcbiAgICBAaWYgJGRpcmVjdGlvbj09XCJ1cFwiIHtcclxuICAgICAgY29udGVudDogXCIgXFwyMTkxXCI7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2UgaWYgJGRpcmVjdGlvbj09XCJkb3duXCIge1xyXG4gICAgICBjb250ZW50OiBcIiBcXDIxOTNcIjtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT1cImxlZnRcIiB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiIFxcMjE5MFwiO1xyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIGlmICRkaXJlY3Rpb249PVwicmlnaHRcIiB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiIFxcMjE5MlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzcGVjaWFsLWJvbGQoJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgZm9udC1zaXplKDI0KTtcclxuICBmb250LWZhbWlseTogJGFsZWNrO1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcblxyXG4gIGIsXHJcbiAgc3Ryb25nIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBjb2xvcjogJGNvbG9yO1xyXG5cclxuICAgIC5yZWdpb24tLWJsdWUgJiB7XHJcbiAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlZ2lvbi0tZGFyay1ibHVlICYsXHJcbiAgICAucmVnaW9uW2NsYXNzKj1cIi1ibGFja1wiXSAmIHtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBncmFkaWVudC1vdmVybGF5KCRzdGFydFBvc2l0aW9uLCAkb3BhY2l0eSkge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMCkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgJHN0YXJ0UG9zaXRpb24sIHJnYmEoMCwgMCwgMCwgJG9wYWNpdHkpIDEwMCUpO1xyXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsIDAsIDAsIDApIDAlLCByZ2JhKDAsIDAsIDAsIDApICRzdGFydFBvc2l0aW9uLCByZ2JhKDAsIDAsIDAsICRvcGFjaXR5KSAxMDAlKTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMCkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgJHN0YXJ0UG9zaXRpb24sIHJnYmEoMCwgMCwgMCwgJG9wYWNpdHkpIDEwMCUpO1xyXG5cclxuICAgIC5uby1jc3NncmFkaWVudHMgJiB7XHJcbiAgICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMzMzAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcclxuICAgICAgLW1zLWZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMzMzAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzb2xpZC1vdmVybGF5KCRvcGFjaXR5KSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgJG9wYWNpdHkpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGhpZ2hsaWdodC1iYXIoJGhlaWdodCkge1xyXG4gICY6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAtMXB4O1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWN0YTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gaWNvbi1vdmVybGF5KCRpY29uKSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IG1hcC1nZXQoJGF0dEljb25zLCAkaWNvbik7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICBmb250LWZhbWlseTogJGF0dC1pY29ucztcclxuICAgIGZvbnQtc2l6ZTogMTByZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgb3BhY2l0eTogMC44NTtcclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLXh4U21hbGwpIHtcclxuICAgICAgZm9udC1zaXplOiA4cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wtMiAmIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogOHJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jb2wtMyAmIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcclxuICAgICAgICBmb250LXNpemU6IDhyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29sLTQgJiB7XHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtIC0gMSkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogOHJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyo9PT09PT09PT09XHJcbiAgQW5pbWF0aW9uc1xyXG4gID09PT09PT09PT0qL1xyXG5cclxuQG1peGluIHRyYW5zaXRpb25BbGwoJHNwZWVkKSB7XHJcbiAgdHJhbnNpdGlvbjogYWxsICRzcGVlZCBlYXNlO1xyXG59XHJcblxyXG4vKj09PT09PT09PT09PT09PT09XHJcbiAgQ29udGFpbmVyIFF1ZXJpZXNcclxuICA9PT09PT09PT09PT09PT09PSovXHJcblxyXG5AbWl4aW4gcmVzcG9uZC10by1jb250ZXh0KCRzaXplcy4uLikge1xyXG4gIC8qXHJcbiAgICAgKiBBdmFpbGFibGUgY29tcG9uZW50IGZvcm1hdHMgYXJlIHhzbWFsbCwgc21hbGwsIG1lZGl1bSBvciBsYXJnZS5cclxuICAgICAqIFRoaXMgbWl4aW4gbG9vcHMgb3ZlciB0aGUgY29udGV4dHMgcHJvdmlkZWQgKGNvbHVtbiBzaXplcykgYW5kIGRldGVybWluZXMgd2hlbiB0byBhcHBseSB0aGUgY29udGFpbmVkIHN0eWxlcyBmb3IgdGhvc2UgY29udGV4dHMsXHJcbiAgICAgKiBhbmQgYXNzaWducyBlYWNoIG9mIHRob3NlIHBvdGVudGlhbCBjb2x1bW4gc2l6ZXMgdG8gYSBjb3JyZXNwb25kaW5nIGNvbXBvbmVudCBmb3JtYXQgKHhzbWFsbCwgc21hbGwsIG1lZGl1bSBvciBsYXJnZSkuXHJcbiAgICAgKiBUaGUgOm5vdCguY29sKSBwYXJlbnQgZmlsdGVyIGlzIGFsd2F5cyBpbmNsdWRlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGVzZSBzdHlsZXMgYWxzbyBnZXQgYXBwbGllZCBmb3IgY29tcG9uZW50cyB0aGF0IGFyZSBiZWluZyB1c2VkIG91dHNpZGUgb2YgY29sdW1ucyBzeXN0ZW1cclxuICAgICAqL1xyXG5cclxuICBAZWFjaCAkc2l6ZSBpbiAkc2l6ZXMge1xyXG4gICAgQGlmICRzaXplPT1cInNtYWxsXCIge1xyXG5cclxuICAgICAgLyogQXQgbW9iaWxlIHZpZXdwb3J0cywgZXZlcnkgY29tcG9uZW50IGluIGV2ZXJ5IGNvbHVtbiBzdGFydHMgb3V0IGFkaGVyaW5nIHRvIGl0cyBzbWFsbCBmb3JtYXQgKi9cclxuICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXHJcbiAgICAgIC5jb2wtMiAmLFxyXG4gICAgICAuY29sLTMgJixcclxuICAgICAgLmNvbC00ICYsXHJcbiAgICAgIC5jb2wtNiAmLFxyXG4gICAgICAuY29sLTggJixcclxuICAgICAgLmNvbC05ICYsXHJcbiAgICAgIC5jb2wtMTIgJiB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2VpZiAkc2l6ZT09XCJtZWRpdW1cIiB7XHJcblxyXG4gICAgICAvKiBUaGVuLCBhdCB0YWJsZXQgdmlld3BvcnRzLi4uICovXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcclxuXHJcbiAgICAgICAgLyogLi4ub25seSBjb21wb25lbnRzIGluc2lkZSBvZiB0aGUgd2lkZXN0IGNvbHVtbnMgc2hvdWxkIGFkaGVyZSB0byB0aGVpciBtZWRpdW0gZm9ybWF0cyAqL1xyXG4gICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxyXG4gICAgICAgIC5jb2wtOCAmLFxyXG4gICAgICAgIC5jb2wtOSAmLFxyXG4gICAgICAgIC5jb2wtMTIgJiB7XHJcbiAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiBUaGVuLCBhdCBzbWFsbGVyIGRlc2t0b3Agdmlld3BvcnRzLi4uICovXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtKSB7XHJcblxyXG4gICAgICAgIC8qIC4uLmNvbXBvbmVudHMgaW5zaWRlIG9mIGxhcmdlciBtaWQtc2l6ZSBjb2x1bW5zIGNhbiBzdGFydCB0byBhZGhlcmUgdG8gdGhlaXIgbWVkaXVtIGZvcm1hdHMgKi9cclxuICAgICAgICAvLyAucmVnaW9uIDpub3QoLmNvbCkgJixcclxuICAgICAgICAuY29sLTYgJiB7XHJcbiAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiBUaGVuLCBhdCBsYXJnZXIgZGVza3RvcCB2aWV3cG9ydHMuLi4gKi9cclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xyXG5cclxuICAgICAgICAvKiAuLi5jb21wb25lbnRzIGluc2lkZSBvZiBzbWFsbGVyIG1pZC1zaXplIGNvbHVtbnMgY2FuIHN0YXJ0IHRvIGFkaGVyZSB0byB0aGVpciBtZWRpdW0gZm9ybWF0cyBpZiB0aGV5IGFyZSBpbiBob3Jpem9udGFsbHkgZmx1c2ggcm93cyAqL1xyXG4gICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxyXG4gICAgICAgIC5yb3ctLWZsdXNoLWhvcml6b250YWwgLmNvbC00ICYge1xyXG4gICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZWlmICRzaXplPT1cImxhcmdlXCIge1xyXG5cclxuICAgICAgLyogVGhlbiwgYXQgdGFibGV0IHZpZXdwb3J0cy4uLiAqL1xyXG4gICAgICAvLyBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XHJcbiAgICAgIC8vXHJcbiAgICAgIC8vICAgLyogLi4ub25seSBjb21wb25lbnRzIGluc2lkZSBvZiB0aGUgd2lkZXN0IGNvbHVtbiBzaG91bGQgYWRoZXJlIHRvIHRoZWlyIGxhcmdlIGZvcm1hdHMgKi9cclxuICAgICAgLy8gICAuY29sLTEyICYge1xyXG4gICAgICAvLyAgICAgQGNvbnRlbnQ7XHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvL1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICAvKiBUaGVuLCBhdCBzbWFsbGVyIGRlc2t0b3Agdmlld3BvcnRzLi4uICovXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtKSB7XHJcblxyXG4gICAgICAgIC8qIC4uLm9ubHkgY29tcG9uZW50cyBpbnNpZGUgb2YgdGhlIHdpZGVzdCBjb2x1bW5zIGNhbiBzdGFydCB0byBhZGhlcmUgdG8gdGhlaXIgbGFyZ2UgZm9ybWF0cyAqL1xyXG4gICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxyXG4gICAgICAgIC5jb2wtOCAmLFxyXG4gICAgICAgIC5jb2wtOSAmLFxyXG4gICAgICAgIC5jb2wtMTIgJiB7XHJcbiAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiBUaGVuLCBhdCBsYXJnZXIgZGVza3RvcCB2aWV3cG9ydHMgLi4uICovXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcclxuXHJcbiAgICAgICAgLyogLi4uY29tcG9uZW50cyBpbnNpZGUgb2YgbGFyZ2VyIG1pZC1zaXplIGNvbHVtbnMgY2FuIHN0YXJ0IHRvIGFkaGVyZSB0byB0aGVpciBsYXJnZSBmb3JtYXRzICovXHJcbiAgICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXHJcbiAgICAgICAgLmNvbC02ICYge1xyXG4gICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZWlmICRzaXplPT1cInhzbWFsbFwiIHtcclxuXHJcbiAgICAgIC8qIFRoZW4sIGF0IGxhcmdlciBkZXNrdG9wIHZpZXdwb3J0cy4uLiAqL1xyXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XHJcblxyXG4gICAgICAgIC8qIC4uLm9ubHkgY29tcG9uZW50cyBpbnNpZGUgb2YgdGhlIHRpbmllc3QgY29sdW1ucyBzaG91bGQgYWRoZXJlIHRvIHRoZWlyIHhzbWFsbCBmb3JtYXRzICovXHJcbiAgICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXHJcbiAgICAgICAgLmNvbC0yICYge1xyXG4gICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qPT09PT09PT09PT1cclxuICBQb3NpdGlvbmluZ1xyXG4gID09PT09PT09PT09Ki9cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBjZW50ZXJIb3Jpem9udGFsbHkge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgbGVmdDogNTAlO1xyXG59XHJcblxyXG5AbWl4aW4gY2VudGVyVmVydGljYWxseSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICB0b3A6IDUwJTtcclxufVxyXG5cclxuQG1peGluIHJvdygkd2lkdGg6ICRjb250YWluZXIpIHtcclxuICAkY29udGFpbmVyOiAkd2lkdGg7XHJcblxyXG4gIG1heC13aWR0aDogJGNvbnRhaW5lcjtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbigkbnVtQ29scykge1xyXG4gICRncmlkQmFzZTogMTI7XHJcblxyXG4gIC8vIC8vIEd1dHRlciBzdHVmZlxyXG4gIC8vICRndXR0ZXJCYXNlOiAyMDtcclxuICAvLyBAaWYgJG51bUNvbHMgPT0gNSB7XHJcbiAgLy8gICAkZ3V0dGVyQmFzZTogNzI7XHJcbiAgLy8gfVxyXG4gIC8vICRudW1HdXR0ZXJzOiAkZ3JpZEJhc2UgLyAoJG51bUNvbHMgLSAxKTtcclxuICAvLyAkZ3V0dGVyV2lkdGg6ICgkZ3V0dGVyQmFzZSAvICRncmlkQmFzZSkgKiAxJTtcclxuXHJcbiAgJGNvbHVtbldpZHRoOiAoJG51bUNvbHMgLyAkZ3JpZEJhc2UpICogMTAwJTtcclxuXHJcbiAgbWF4LXdpZHRoOiAkY29sdW1uV2lkdGg7XHJcbiAgZmxleC1iYXNpczogJGNvbHVtbldpZHRoO1xyXG59XHJcblxyXG5AbWl4aW4gaGlkZGVuLXNwb2tlbiB7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcclxuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgbWFyZ2luOiAtMXB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcGFkZGluZzogMDtcclxuICB3aWR0aDogMXB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gIHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgY2xpcDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgY2xpcC1wYXRoOiBub25lO1xyXG4gICAgei1pbmRleDogMTAwMDAwO1xyXG4gICAgb3V0bGluZTogMDtcclxuICB9XHJcbn1cclxuXHJcbi8qPT09PVxyXG4gIE1pc2NcclxuICA9PT09Ki9cclxuXHJcbi8qIFNpbHZlciBzdHlsZSAqL1xyXG5cclxuQG1peGluIGJrZy1zaWx2ZXIge1xyXG4gIGJhY2tncm91bmQ6ICNFREVDRUM7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyMzcsIDIzNiwgMjM2LCAxKSAwJSwgcmdiYSgyNDksIDI0OSwgMjQ5LCAxKSAxMDAlKTtcclxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDIzNywgMjM2LCAyMzYsIDEpIDAlLCByZ2JhKDI0OSwgMjQ5LCAyNDksIDEpIDEwMCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyMzcsIDIzNiwgMjM2LCAxKSAwJSwgcmdiYSgyNDksIDI0OSwgMjQ5LCAxKSAxMDAlKTtcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjRURFQ0VDJywgZW5kQ29sb3JzdHI9JyNGOUY5RjknLCBHcmFkaWVudFR5cGU9MSk7XHJcblxyXG4gIC5uby1jc3NncmFkaWVudHMgJiB7XHJcbiAgICBmaWx0ZXI6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuY3RhLS1saW5rIHtcclxuICAgIGNvbG9yOiAkYXR0RHJrQmx1ZTtcclxuICB9XHJcbn1cclxuQG1peGluIGdyYWRpZW50QmtnZCgkY29sb3IsICRkaXJlY3Rpb24sICR0ZXh0Q29sb3I6ICRibGFjaykge1xyXG4gIC8vVE9ETyAtIGNvbmZpcm0gdGhhdCB0aGlzIHRoZSBjb3JyZWN0IHVzZSBvZiBmaWx0ZXJzXHJcbiAgLmNzc2dyYWRpZW50cyAmIHtcclxuICAgIGZpbHRlcjogbm9uZTtcclxuICB9XHJcbiAgQGlmICRjb2xvcj09XCJibHVlXCIge1xyXG4gICAgYmFja2dyb3VuZDokYXR0Qmx1ZTtcclxuICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvICRkaXJlY3Rpb24sICMwMDc5YjEgMCUsICMwMEM5RkYgMTAwJSk7XHJcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjMDA3OWIxJywgZW5kQ29sb3JzdHI9JyMwMEM5RkYnLCBHcmFkaWVudFR5cGU9MSk7XHJcbiAgICBAaWYgJHRleHRDb2xvcj09XCJ3aGl0ZVwiIHtcclxuICAgICAgY29sb3I6JHdoaXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVsc2VpZiAkY29sb3I9PVwiY29sYmFsdC1wdXJwbGVcIiB7XHJcbiAgICBiYWNrZ3JvdW5kOiRjb2xiYWx0O1xyXG4gICAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gJGRpcmVjdGlvbiwgJGNvbGJhbHQgMCUsICRwdXJwbGUgMTAwJSk7XHJcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjeyRjb2xiYWx0fScsIGVuZENvbG9yc3RyPScjeyRwdXJwbGV9JywgR3JhZGllbnRUeXBlPTEpO1xyXG4gICAgY29sb3I6JHdoaXRlO1xyXG4gIH1cclxuXHJcbiAgQGVsc2VpZiAkY29sb3I9PVwiYmVycnktdGFuZ2VyaW5lXCIge1xyXG4gICAgYmFja2dyb3VuZDokYmVycnk7XHJcbiAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byAkZGlyZWN0aW9uLCAkYmVycnkgMCUsICR0YW5nZXJpbmUgMTAwJSk7XHJcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjeyRiZXJyeX0nLCBlbmRDb2xvcnN0cj0nI3skdGFuZ2VyaW5lfScsIEdyYWRpZW50VHlwZT0xKTtcclxuICAgIGNvbG9yOiRibGFjaztcclxuICB9XHJcblxyXG4gIEBlbHNlaWYgJGNvbG9yPT1cImxpbWUtbWludFwiIHtcclxuICAgIGJhY2tncm91bmQ6JGxpbWU7XHJcbiAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byAkZGlyZWN0aW9uLCAkbGltZSAwJSwgJG1pbnQgMTAwJSk7XHJcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjeyRsaW1lfScsIGVuZENvbG9yc3RyPScjeyRtaW50fScsIEdyYWRpZW50VHlwZT0xKTtcclxuICAgIGNvbG9yOiRibGFjaztcclxuICB9XHJcbn1cclxuXHJcbi8qIERlZmF1bHQgYnV0dG9uIHN0eWxlIGZvciB3aGl0ZSwgZ3JheSBvciBibGFjayBiYWNrZ3JvdW5kcyAqL1xyXG5cclxuQG1peGluIGN0YSgkYmtnQ29sb3IpIHtcclxuICBAaWYgJGJrZ0NvbG9yPT1cImJsdWVcIiB7XHJcbiAgICBib3JkZXI6MDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tY3RhO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1jdGEtaG92ZXI7XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQGVsc2VpZiAkYmtnQ29sb3I9PVwiYmxhY2tcIiB7XHJcbiAgICBib3JkZXI6MDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgY29sb3I6ICRibGFjaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBlbHNlaWYgJGJrZ0NvbG9yPT1cIndoaXRlXCIge1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgJHdoaXRlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgY29sb3I6ICRibGFjaztcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gY3RhLW5ldygkY29sb3IsICRob3ZlclRleHRDb2xvcikge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogJGNvbG9yO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGNvbG9yOiAkaG92ZXJUZXh0Q29sb3I7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIEhvcml6b250YWwvVmVydGljYWwgUnVsZXMgKi9cclxuXHJcbkBtaXhpbiBydWxlKCRkaXJlY3Rpb24pIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXR0Qmx1ZTtcclxuICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gIHotaW5kZXg6IDI7XHJcblxyXG4gIEBpZiAkZGlyZWN0aW9uPT1cImhvcml6b250YWxcIiB7XHJcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xyXG4gICAgd2lkdGg6IDYwJTtcclxuICAgIGhlaWdodDogNHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBib3R0b206IC0ycHg7XHJcbiAgICByaWdodDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICBtYXgtaGVpZ2h0OiAzMDBweDtcclxuICAgIGhlaWdodDogNjAlO1xyXG4gICAgd2lkdGg6IDRweDtcclxuICAgIG1hcmdpbjogYXV0byAwO1xyXG4gICAgbGVmdDogLTJweDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHRvcDogMDtcclxuICB9XHJcblxyXG4gIC5yZWdpb24tLWJsdWUgJiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XHJcbiAgfVxyXG5cclxuICAucmVnaW9uLS1kYXJrLWJsdWUgJiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgfVxyXG59XHJcblxyXG4vKj09PT09PT09PT1cclxuICBUeXBvZ3JhcGh5XHJcbiAgPT09PT09PT09PSovXHJcblxyXG5AbWl4aW4gZm9udC1zaXplKCRwaXhlbHM6IDEuNCkge1xyXG4gIGZvbnQtc2l6ZTogJHBpeGVscyArIHB4O1xyXG4gIGZvbnQtc2l6ZTogKCRwaXhlbHMgLyAxMCkgKyByZW07XHJcbn1cclxuXHJcbkBtaXhpbiBmb250LXNtb290aGluZyB7XHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxufVxyXG5cclxuQG1peGluIG5vLWZvbnQtc21vb3RoaW5nIHtcclxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xyXG59IiwiLyo9PT09PT1cclxuICBIRUFERVJcclxuICA9PT09PT0qL1xyXG5cclxuICBib2R5ID4gLndyYXBwZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgYm9keSA+IC53cmFwcGVyIC5jYW52YXMge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCgzMDBtcyk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcclxuICAgICAgLy90cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHJcbiAgICAgICYuY2FudmFzLS1vbiB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04MCUpO1xyXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzNjBweCkge1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0jeyRuYXZXaWR0aE1vYmlsZX0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSN7JG5hdldpZHRoVGFibGV0fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogU2tpcCBOYXZpZ2F0aW9uICovXHJcblxyXG4gIC5za2lwLW5hdmlnYXRpb24ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRkcmtHcmF5LCAxMCUpO1xyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xyXG4gICAgfVxyXG4gIH1cclxuICAuc2tpcC1uYXZpZ2F0aW9uIGEge1xyXG4gICAgQGluY2x1ZGUgaGlkZGVuLXNwb2tlbjtcclxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMTBweCk7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICB0b3A6IDVweDtcclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XHJcbiAgICAgIHRvcDogLTMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xyXG4gICAgICBmb250LXNpemU6IDEycHg7IC8vIGRvbid0IHVzZSByZW1zIGhlcmVcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBwYWRkaW5nOiA1cHggNXB4IDEwcHg7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIHRvcDogNXB4O1xyXG4gICAgICBjbGlwLXBhdGg6IG5vbmU7XHJcbiAgICAgIGNsaXA6IGluaXRpYWw7XHJcbiAgICAgIGNvbG9yOiAkcmVnR3JheTtcclxuICAgICAgei1pbmRleDogOTk5OTk5OTk5OTtcclxuXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgbGVmdDogNXB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiBTdGFuZGFyZCBhbmQgTWljcm9zaXRlIEhlYWRlcnMgKi9cclxuXHJcbiAgI2F0dC1taWNyb3NpdGUtaGVhZGVyLnBsdXNHbG9iYWwgLnNpdGVOYXZ7XHJcbiAgICBtYXJnaW4tdG9wOjBweDtcclxuICB9ICBcclxuXHJcbiAgI2F0dC1hYm91dC1oZWFkZXIgPiBkaXYsXHJcbiAgI2F0dC1taWNyb3NpdGUtaGVhZGVyIC5taWNyb3NpdGUtbmF2IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZHJrR3JheTtcclxuICB9XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xyXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlci5wbHVzR2xvYmFsIC5zaXRlTmF2e1xyXG4gICAgbWFyZ2luLXRvcDo1MHB4O1xyXG4gIH0gICBcclxufVxyXG5cclxuICAjYXR0LWFib3V0LWhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ID4gZGl2LFxyXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50IC5taWNyb3NpdGUtbmF2IHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxhY2ssIC42NSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjYXR0LWFib3V0LWhlYWRlci5oZWFkZXItLWZpeGVkID4gZGl2LFxyXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlci5oZWFkZXItLWZpeGVkIC5taWNyb3NpdGUtbmF2IHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGVhZGVyIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG4gICAgKixcclxuICAgICo6YmVmb3JlLFxyXG4gICAgKjphZnRlciB7XHJcbiAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnRvdWNoICYsXHJcbiAgICAudG91Y2hldmVudHMgJiB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFueSBpbW1lZGlhdGUgc2libGluZyBvZiB0aGUgc2Vjb25kYXJ5IGhlYWRlclxyXG5cclxuICAuaGVhZGVyLS1zZWNvbmRhcnkgKyAqIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikgeyBcclxuICAgICAgbWFyZ2luLXRvcDogJGRlc2t0b3BOYXZIZ3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBbnkgaW1tZWRpYXRlIHNpYmxpbmcgb2YgdGhlIHNlY29uZGFyeSBoZWFkZXIsIElGIHRoZSBzZWNvbmRhcnkgaGVhZGVyIGlzIGluIHVzZVxyXG5cclxuICAuaGVhZGVyLS1zZWNvbmRhcnkuYWN0aXZlICsgKiB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcclxuICAgICAgbWFyZ2luLXRvcDogJG1vYmlsZU5hdkhndDtcclxuICAgIH1cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XHJcbiAgICAgIG1hcmdpbi10b3A6ICRkZXNrdG9wTmF2SGd0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQW55IGltbWVkaWF0ZSBzaWJsaW5nIG9mIHRoZSBzZWNvbmRhcnkgaGVhZGVyLCBJRiB0aGUgc2Vjb25kYXJ5IGhlYWRlciBpcyBpbiB1c2UgYW5kIGNvbnRhaW5zIGNvbmRlbnNlZCBnbG9iYWwgbmF2XHJcblxyXG4gIC5oZWFkZXItLXNlY29uZGFyeS5hY3RpdmUtLXdHbG9iYWwgKyAqIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICBtYXJnaW4tdG9wOiAkbW9iaWxlTmF2SGd0ICsgJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcclxuICAgIH1cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XHJcbiAgICAgIG1hcmdpbi10b3A6ICRtaWNyb3NpdGVEZXNrdG9wTmF2SGd0ICsgJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5oZWFkZXIgKyAqLFxyXG4gIC5oZWFkZXIgKyAuaGVhZGVyLS1zZWNvbmRhcnkgKyAqIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICBtYXJnaW4tdG9wOiAkZGVza3RvcE5hdkhndDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ICsgKiB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcclxuICAgICAgbWFyZ2luLXRvcDogJGRlc2t0b3BOYXZIZ3Q7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvL1JlbW92ZWQgei1pbmRleCBiZWNhdXNlIGl0IGFmZmVjdHMgdGhlIFJTUyBGZWVkIG1vZGFsXHJcbiAgLmhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ICsgLmhlYWRlci0tc2Vjb25kYXJ5LmhlYWRlci0tdHJhbnNwYXJlbnQgKyAqIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgLy96LWluZGV4OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhlYWRlci0tc2Vjb25kYXJ5LmhlYWRlci0tdHJhbnNwYXJlbnQge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaGVhZGVyLS1zZWNvbmRhcnkuaGVhZGVyLS10cmFuc3BhcmVudCArICoge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhlYWRlci0tc2Vjb25kYXJ5LmhlYWRlci0tdHJhbnNwYXJlbnQuYWN0aXZlLnBsdXNHbG9iYWwgKyAqLCAuaGVhZGVyLS1zZWNvbmRhcnkuaGVhZGVyLS10cmFuc3BhcmVudC5hY3RpdmUtLXdHbG9iYWwgKyAqIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcclxuICAgICAgbWFyZ2luLXRvcDogJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5hdHQtYWJvdXQtaGVhZGVyX193cmFwIHtcclxuICAgIHotaW5kZXg6IDEwO1xyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uQWxsKDQ1MG1zKTtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICBoZWlnaHQ6ICRkZXNrdG9wTmF2SGd0O1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuXHJcbiAgICAgICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tZml4ZWQgJiB7XHJcbiAgICAgICAgaGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucGx1c01pY3Jvc2l0ZXtcclxuICAgIGhlaWdodDo1MHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgLmhlYWRlci0tc2Vjb25kYXJ5ID4gKiB7XHJcbiAgICB6LWluZGV4OiAxMDtcclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCg0NTBtcyk7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgLy8gaGVpZ2h0OiAkZGVza3RvcE5hdkhndDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgIHRvcDogMDtcclxuXHJcbiAgICAgIC8vICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tZml4ZWQgJiB7XHJcbiAgICAgIC8vICAgaGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjYXR0LWFib3V0LWhlYWRlciB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgei1pbmRleDogOTk5OTk5OTk5O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI2F0dC1taWNyb3NpdGUtaGVhZGVyIHtcclxuICAgIHotaW5kZXg6IDU7XHJcblxyXG4gICAgJiAuY29tcG9uZW50IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAmIC5taWNyb3NpdGUtbmF2IHtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCg0NTBtcyk7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtKSB7XHJcbiAgICAgICAgaGVpZ2h0OiAkZGVza3RvcE5hdkhndDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuaGVhZGVyLS1maXhlZCAubWljcm9zaXRlLW5hdiB7XHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtKSB7XHJcbiAgICAgICAgaGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJiAubWljcm9zaXRlLW5hdi5taWNyb3NpdGUtbmF2LS1wbHVzR2xvYmFsIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcclxuICAgICAgICBoZWlnaHQ6ICRtaWNyb3NpdGVEZXNrdG9wTmF2SGd0O1xyXG4gICAgICB9XHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XHJcbiAgICAgICAgaGVpZ2h0OiAkbWljcm9zaXRlRGVza3RvcE5hdkhndDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuaGVhZGVyLS1maXhlZCAubWljcm9zaXRlLW5hdi5taWNyb3NpdGUtbmF2LS1wbHVzR2xvYmFsIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcclxuICAgICAgICBoZWlnaHQ6ICRtaWNyb3NpdGVNb2JpbGVOYXZIZ3Q7XHJcbiAgICAgIH1cclxuICAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIEF1dGhvciBJbnN0YW5jZSBEaXNwbGF5IEZpeGVzICovXHJcblxyXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LWFib3V0LWhlYWRlciB7XHJcbiAgICBtaW4taGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgIG1pbi1oZWlnaHQ6ICRkZXNrdG9wTmF2SGd0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtYWJvdXQtaGVhZGVyICsgKixcclxuICAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1hYm91dC1oZWFkZXIgKyAuaGVhZGVyLS1zZWNvbmRhcnkgKyAqLFxyXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIgKyAqIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgfVxyXG5cclxuICAvLyAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1hYm91dC1oZWFkZXIuaGVhZGVyLS10cmFuc3BhcmVudCArICosXHJcbiAgLy8gLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tdHJhbnNwYXJlbnQgKyAuaGVhZGVyLS1zZWNvbmRhcnkgKyAqLFxyXG4gIC8vIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIuaGVhZGVyLS10cmFuc3BhcmVudCArICoge1xyXG4gIC8vICAgbWFyZ2luLXRvcDogMTAwcHg7XHJcbiAgLy8gfVxyXG5cclxuICAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1taWNyb3NpdGUtaGVhZGVyLmFjdGl2ZSArICosXHJcbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtbWljcm9zaXRlLWhlYWRlci5hY3RpdmUtLXdHbG9iYWwgKyAqIHtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG4gIH1cclxuXHJcbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtbWljcm9zaXRlLWhlYWRlci5hY3RpdmUgKyAqIHtcclxuICAgIG1hcmdpbi10b3A6IDEzMHB4O1xyXG4gIH1cclxuICAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1taWNyb3NpdGUtaGVhZGVyLmFjdGl2ZS0td0dsb2JhbCArICoge1xyXG4gICAgbWFyZ2luLXRvcDogMTgwcHg7XHJcbiAgfVxyXG4iLCIvKj09PT09PVxyXG4gIEZPT1RFUlxyXG4gID09PT09PSovXHJcblxyXG4gICNhdHQtYWJvdXQtZm9vdGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRmdW5jdGlvbmFsQmxhY2s7XHJcbiAgfVxyXG5cclxuICAjYXR0LWFib3V0LWZvb3RlciAuZm9vdGVyX193cmFwIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIG1heC13aWR0aDogJG1heENvbnRlbnRXaWR0aDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgcGFkZGluZzogJGFpci0teFNtYWxsO1xyXG4gICAgY29sb3I6ICRtZWRHcmF5O1xyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlIC0gMSkge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXItLXNtYWxsO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyLS1zbWFsbDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI2F0dC1hYm91dC1mb290ZXIgLmZvb3Rlcl9fbWVudSB7XHJcbiAgICBtYXJnaW46IDEwcHggMCAyMHB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICNhdHQtYWJvdXQtZm9vdGVyIC5mb290ZXJfX2NvcHlyaWdodCB7XHJcbiAgICBtYXJnaW46IDIwcHggMDtcclxuXHJcbiAgICBwIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxuICB9XHJcbiAgI2F0dC1hYm91dC1mb290ZXIgLmZvb3Rlci1pY29uLWxlZnR7XHJcbiAgICB3aWR0aDozMnB4OyBcclxuICAgIG1hcmdpbi1sZWZ0OjVweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG4gICNhdHQtYWJvdXQtZm9vdGVyIC5mb290ZXItaWNvbi1yaWdodHtcclxuICAgIHdpZHRoOjMycHg7IFxyXG4gICAgbWFyZ2luLXJpZ2h0OjVweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG4iLCIvKj09PVxyXG4gIE5BVlxyXG4gID09PSovXHJcblxyXG4gIC8qIE5hdi1zcGVjaWZpYyBzZXR0aW5ncyAqL1xyXG5cclxuICAkYnVyZ2VyOiAyNHB4O1xyXG4gICRidXJnZXJCYXI6ICRidXJnZXIgLyA4O1xyXG5cclxuICAkbW9iaWxlTG9nbzogMzhweDtcclxuICAkZGVza3RvcExvZ286IDM4cHg7XHJcblxyXG4gIC8qIEhlbHBlciBtaXhpbnMgKi9cclxuXHJcbiAgQG1peGluIG5hdkxvZ28oJHNpemUpe1xyXG4gICAgaGVpZ2h0OiAkc2l6ZTtcclxuICB9XHJcblxyXG4gIEBtaXhpbiBuYXZBbmNob3Ige1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICcrJztcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgICB0b3A6IDEwJTtcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICBwYWRkaW5nOiAzcHg7XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkYWxlY2s7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjVweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1peGluIG5hdkFuY2hvci1leHBhbmRlZCB7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgICB0b3A6IDE5cHg7XHJcbiAgICAgIGxlZnQ6IDE0cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWl4aW4gYWN0aXZlSXRlbSB7XHJcbiAgICAmID4gLm5hdl9fbWVudS1pdGVtIHtcclxuICAgICAgY29sb3I6ICRjb2xvci0tY3RhO1xyXG5cclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBtaXhpbiBhY3RpdmVJdGVtLWRhcmtlbmVkIHtcclxuICAgICYgPiAubmF2X19tZW51LWl0ZW0ge1xyXG4gICAgICB0ZXh0LXNoYWRvdzogMHB4IDBweCAzMHB4IHJnYmEoMCwgMCwgMCwgLjUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbiAgI2F0dC1hYm91dC1oZWFkZXIgLm5hdiB7XHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgIG1heC13aWR0aDogJG1heENvbnRlbnRXaWR0aDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XHJcbiAgfVxyXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5wbHVzTWljcm9zaXRlIC5uYXZfX3V0aWxzIHtcclxuICAgIGhlaWdodDogJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcclxuICB9XHJcblxyXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX3V0aWxzIHtcclxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHBhZGRpbmc6IDAgJGFpci0teFNtYWxsO1xyXG4gICAgaGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICBwYWRkaW5nOiAwICRndXR0ZXItLXNtYWxsO1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgd2lkdGg6IDE1JTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogTmF2IExvZ28gKi9cclxuXHJcbiAgLm5hdl9fbG9nbyB7XHJcbiAgICBAaW5jbHVkZSBjZW50ZXJWZXJ0aWNhbGx5O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuXHJcbiAgICAubG9nb19faWNvbiB7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xyXG4gICAgICBAaW5jbHVkZSBuYXZMb2dvKCRtb2JpbGVMb2dvKTtcclxuICAgICAgbWluLXdpZHRoOiA5NXB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAvKiBOT1RFOiBMb2dvIGNvbG9yIGNhbiB2YXJ5IGJhc2VkIG9uIHRoZSB0aGVtZS4gRGVmYXVsdCB0cmVhdG1lbnQgaXMgc2lsdmVyLiAqL1xyXG5cclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbG9nb19hdHQtd2hpdGUtdGV4dC5wbmcnKTtcclxuXHJcbiAgICAgIC8vIEBlYWNoICR0aGVtZSwgJGNvbG9yIGluICR0aGVtZUNvbG9ycyB7XHJcbiAgICAgIC8vICAgJGNvbG9yTmFtZTogbnRoKCRjb2xvciwgMSk7XHJcbiAgICAgIC8vXHJcbiAgICAgIC8vICAgLnRoZW1lLS0jeyR0aGVtZX0gJiB7XHJcbiAgICAgIC8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9sb2dvX2F0dC0jeyRjb2xvck5hbWV9LnBuZycpO1xyXG4gICAgICAvLyAgIH1cclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xyXG4gICAgICAgIEBpbmNsdWRlIG5hdkxvZ28oJGRlc2t0b3BMb2dvKTtcclxuICAgICAgICBtaW4td2lkdGg6IDk1cHg7XHJcblxyXG4gICAgICAgIC5oZWFkZXItLWZpeGVkICYge1xyXG4gICAgICAgICAgQGluY2x1ZGUgbmF2TG9nbygkbW9iaWxlTG9nbyk7XHJcbiAgICAgICAgICBtaW4td2lkdGg6IDk1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiBIYW1idXJnZXIgVG9nZ2xlICovXHJcblxyXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX3RvZ2dsZSxcclxuICAubWljcm9zaXRlLW5hdi0tcGx1c0dsb2JhbCAubmF2X190b2dnbGUge1xyXG4gICAgaGVpZ2h0OiAkYnVyZ2VyO1xyXG4gICAgd2lkdGg6ICRidXJnZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXI6IDA7XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIG91dGxpbmU6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjYXR0LWFib3V0LWhlYWRlciAubmF2X190b2dnbGUgLmJhcixcclxuICAubWljcm9zaXRlLW5hdi0tcGx1c0dsb2JhbCAubmF2X190b2dnbGUgLmJhciB7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uQWxsKDMwMG1zKTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6ICRidXJnZXJCYXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkYnVyZ2VyQmFyICsgMTtcclxuICB9XHJcblxyXG4gIC5uYXZfX3RvZ2dsZS0tb3BlbiB7XHJcbiAgICBAaW5jbHVkZSBjZW50ZXJWZXJ0aWNhbGx5O1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG5cclxuICAgIC5uYXYtLW9wZW4gJiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubmF2X190b2dnbGUtLWNsb3NlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgLm5hdi0tb3BlbiAmIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAyMnB4O1xyXG4gICAgICAvLyBsZWZ0OiAtNDBweDtcclxuICAgICAgcmlnaHQ6IDIwcHg7XHJcblxyXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAubmF2LS1vcGVuICYgLmJhciB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgICAgdG9wOiA4cHg7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkLFxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX3V0aWxzLFxyXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX21lbnUtLXByaW1hcnkge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIE5hdiBNZW51cyAqL1xyXG5cclxuICAubmF2X19tZW51IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXItLXNtYWxsO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcclxuICAgICAgcGFkZGluZy1yaWdodDogJGd1dHRlci0tc21hbGw7XHJcbiAgICB9XHJcblxyXG4gICAgbGkge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICYuZXhwYW5kZWQgPiAubmF2X19tZW51LXBhcmVudCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbmF2QW5jaG9yLWV4cGFuZGVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdl9fbWVudS1pdGVtIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkYWxlY2s7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDsgLy8gZG9uJ3QgdXNlIHJlbXMgaGVyZVxyXG4gICAgICBsaW5lLWhlaWdodDogMS4yNTtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG5cclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4OyAvLyBkb24ndCB1c2UgcmVtcyBoZXJlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzNjBweCkge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4OyAvLyBkb24ndCB1c2UgcmVtcyBoZXJlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdl9fbWVudS1wYXJlbnQge1xyXG4gICAgICBAaW5jbHVkZSBuYXZBbmNob3I7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgd2lkdGg6IDQwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICAgIGhlaWdodDogMzdweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiBQcmltYXJ5IE1lbnVzICovXHJcblxyXG4gIC5uYXZfX21lbnUtLXByaW1hcnkge1xyXG4gICAgd2lkdGg6ICRuYXZXaWR0aE1vYmlsZTtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XHJcbiAgICAgIHdpZHRoOiAkbmF2V2lkdGhUYWJsZXQ7XHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYgLSAxKSB7XHJcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2U7XHJcbiAgICAgIG1heC13aWR0aDogODAlO1xyXG4gICAgICBsZWZ0OiAxMDAlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgcGFkZGluZy10b3A6ICRtb2JpbGVOYXZIZ3Q7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGRya0dyYXk7XHJcblxyXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzYwcHgpIHtcclxuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIHdpZHRoOiA4NSU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgICYgPiBsaSB7XHJcblxyXG4gICAgICAvKiBOT1RFOiBBcHBseSBoaWdobGlnaHRpbmcgdG8gbmF2IGl0ZW1zIGJhc2VkIG9uIHRoZSBib2R5IGNsYXNzIG5hbWUuICovXHJcblxyXG4gICAgICBAZWFjaCAkYm9keUNsYXNzLCAkbmF2SXRlbUNsYXNzIGluICRuYXZIaWdobGlnaHRzIHtcclxuICAgICAgICAuI3skYm9keUNsYXNzfTpub3QoW2NsYXNzKj1cIm5hdi1cIl0pICYuI3skbmF2SXRlbUNsYXNzfSxcclxuICAgICAgICAuI3skbmF2SXRlbUNsYXNzfSAmLiN7JG5hdkl0ZW1DbGFzc30ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYWN0aXZlSXRlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC4jeyRib2R5Q2xhc3N9Om5vdChbY2xhc3MqPVwibmF2LVwiXSkgLmhlYWRlci0tdHJhbnNwYXJlbnQgJi4jeyRuYXZJdGVtQ2xhc3N9LFxyXG4gICAgICAgIC4jeyRuYXZJdGVtQ2xhc3N9IC5oZWFkZXItLXRyYW5zcGFyZW50ICYuI3skbmF2SXRlbUNsYXNzfSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBhY3RpdmVJdGVtLWRhcmtlbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgIEBpbmNsdWRlIGFjdGl2ZUl0ZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5oZWFkZXItLXRyYW5zcGFyZW50ICYuYWN0aXZlIHtcclxuICAgICAgICBAaW5jbHVkZSBhY3RpdmVJdGVtLWRhcmtlbmVkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYgLSAxKSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkcmtHcmF5O1xyXG5cclxuICAgICAgICAmLmV4cGFuZGVkID4gLm5hdl9fbWVudS1pdGVtIHtcclxuXHJcbiAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB4LCAtMnB4KSByb3RhdGUoNDVkZWcpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvci0tY3RhO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIG1hcmdpbjogMCAwIDAgMjBweDtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4rMikgPiAubmF2X19tZW51LS1uZXN0ZWQge1xyXG4gICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyID4gLm5hdl9fbWVudS1pdGVtLFxyXG4gICAgICAgICYuZXhwYW5kZWQgPiAubmF2X19tZW51LWl0ZW0ge1xyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHgsIC0ycHgpIHJvdGF0ZSg0NWRlZyk7XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDg1MHB4KSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtKSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY1cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogODBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcclxuICAgICAgICAmLmxhc3QtaXRlbSB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14eExhcmdlKSB7XHJcbiAgICAgICAgJjpudGgtbGFzdC1jaGlsZCgtbisyKSA+IC5uYXZfX21lbnUtLW5lc3RlZCB7XHJcbiAgICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCA+IC5uYXZfX21lbnUtLW5lc3RlZCB7XHJcbiAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYgPiAubmF2X19tZW51LWl0ZW0ge1xyXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcclxuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMDBweCk7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDAgMTBweCAyMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBoaWdobGlnaHQtYmFyKCRoaWdobGlnaHRCYXIpO1xyXG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAmOmZvY3VzOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJiA+IC5uYXZfX21lbnUtcGFyZW50IHtcclxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcclxuICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogbm9uZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZXhwYW5kZWQgPiAubmF2X19tZW51LXBhcmVudDphZnRlciB7XHJcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgICAgICBjb250ZW50OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8vRXhwYW5kZWQgZ2xvYmFsIG5hdmlnYXRpb24gd2hlbiBtaWNyb3NpdGUgbmF2aWdhdGlvbiBpcyBwcmVzZW50XHJcbi5taWNyb3NpdGUtbmF2LS1wbHVzR2xvYmFse1xyXG4gIC5uYXZfX21lbnUtLXByaW1hcnl7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIHdpZHRoOiA4NSU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgdG9wOjQ1JTtcclxuICAgIH0gIFxyXG4gIH1cclxuICAubmF2X19sb2dvIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwJSk7XHJcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwJSk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAlKTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmbG9hdDogbGVmdDtcclxufVxyXG59XHJcblxyXG4gIC8qIFN1Ym5hdnMgKi9cclxuXHJcbiAgLm5hdl9fbWVudS0tc2Vjb25kYXJ5LFxyXG4gIC5uYXZfX21lbnUtLXRlcnRpYXJ5IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgd2lkdGg6IDI2MHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAxcHg7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuXHJcbiAgICAgIC5uYXZfX21lbnUtLW5lc3RlZCB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcclxuICAgICAgd2lkdGg6IDM0MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGxpIHtcclxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2IC0gMSkge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZHJrR3JheTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJrR3JheTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIgLm5hdl9fbWVudS1wYXJlbnQge1xyXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZHJrR3JheSwgNSUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdl9fbWVudS1pdGVtIHtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KTtcclxuICAgICAgcGFkZGluZzogMTBweCAwIDEwcHggMDtcclxuXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRya0dyYXk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIFNlY29uZGFyeSBTdWJuYXZzICovXHJcblxyXG4gIC5uYXZfX21lbnUtLXNlY29uZGFyeSB7XHJcblxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2IC0gMSkge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XHJcblxyXG4gICAgICAvKiBXaGVuIGluIG1vYmlsZSwgcmVseSBvbiB0aGUgLmV4cGFuZGVkIGNsYXNzIG9mIHRoZSBwYXJlbnQgZWxlbWVudCB0byBzaG93IHNlY29uZGFyeSBuYXZzICovXHJcbiAgICAgIC5leHBhbmRlZCA+IC5uYXZfX21lbnUtcGFyZW50ICsgJiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiBXaGVuIGluIGRlc2t0b3AsIHJlbHkgb24gdGhlIGhvdmVyIG9yIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHBhcmVudCBlbGVtZW50IHRvIHNob3cgc2Vjb25kYXJ5IG5hdnMgKi9cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICAubmF2X19tZW51LS1wcmltYXJ5ID4gbGk6aG92ZXIgPiAubmF2X19tZW51LXBhcmVudCArICYsXHJcbiAgICAgIC5uYXZfX21lbnUtLXByaW1hcnkgPiBsaS5leHBhbmRlZCA+IC5uYXZfX21lbnUtcGFyZW50ICsgJiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIFRlcnRpYXJ5IFN1Ym5hdnMgKi9cclxuXHJcbiAgLm5hdl9fbWVudS0tdGVydGlhcnkge1xyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgbGkgLm5hdl9fbWVudS1pdGVtIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogQWx3YXlzIHJlbHkgb24gdGhlIC5leHBhbmRlZCBjbGFzcyBvZiB0aGUgcGFyZW50IGVsZW1lbnQgdG8gc2hvdyB0ZXJ0aWFyeSBuYXZzICovXHJcbiAgICAuZXhwYW5kZWQgPiAubmF2X19tZW51LXBhcmVudCArICYge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcbiJdfQ== */
