/**
 * 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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Rg.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_It.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Lt.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_LtIt.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Bd.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BdIt.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Md.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_MdIt.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_Blk.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSans_W_BlkIt.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_Rg.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/Aleck/ATTAleckSlab_W_It.ttf") format("truetype"), url("/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("/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.eot");
  src: url("/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.eot?#iefix") format("embedded-opentype"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.woff") format("woff"), url("/ui/corpcomm_internet_attus/1.0.0/fonts/ATT_Icons/att-icons.ttf") format("truetype"), url("/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; }

/*==========
  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("/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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SmxjUyxFSW9jWixFQUFBO0lBOURMOztNQWlFTSxZQUFXO01BQ1gsb0JBQW1CLEVBQ3BCOztBQUlMLHVCQUF1QjtBQUV2QjtFQVdFLHNHQUFzRyxFQU92RztFQWhCQztJQUZGO01BR0ksbUJBQWtCO01BRWxCLDhGQUE4RixFQWFqRztNQVpHO1FBQ0UsZUFBYyxFQUNmLEVBQUE7RUFJSDtJQUNFOztNQUVFLGVBQWMsRUFDZixFQUFBOztBQUlMLHNCQUFzQjtBQUV0QjtFQW1CRSxvRkFBb0YsRUFJckY7RUFyQkM7SUFGRjtNQUdJLG1CQUFrQixFQW9CckIsRUFBQTtFQWpCQztJQU5GO01BT0ksbUJBQWtCO01BQ2xCLHVCSjNlUTtNSTRlUixjQUFhO01BQ2Isa0JBQWlCLEVBYXBCLEVBQUE7RUFURztJQWRKO01BZU0sbUJBQWtCLEVBRXJCLEVBQUE7RUFHRDtJQUNFLGVBQWMsRUFDZiIsImZpbGUiOiJnbG9iYWxfbmF2LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQVQmVCBBYm91dCBVcyBHbG9iYWwgTmF2aWdhdGlvbiAmIEZvb3RlciBmb3IgQUVNXG4gKiBieSBGbGVpc2htYW5IaWxsYXJkLCBjLiAyMDE4XG4gKlxuICogTk9URTogQVRUTiBERVZTIVxuICogUGxlYXNlIHVzZSB0aGlzIHN0eWxlc2hlZXQgZm9yIGltcG9ydGluZyBTQVNTIHBhcnRpYWxzIG9ubHkuIERvIG5vdCBhdXRob3IgYW55IFNBU1Mgb3IgQ1NTIGRpcmVjdGx5IGluIHRoaXMgZmlsZS5cbiAqIEFsc28sIHBsZWFzZSBmaXJzdCByZWZlciB0byB0aGUgX2Fic3RyYWN0cyBwYXJ0aWFscyB0byByZXZpZXcgdGhlIGV4aXN0aW5nIGdsb2JhbCBzdHlsZSBzZXR0aW5ncyBhbmQgdXRpbGl0aWVzIGJlZm9yZSBjcmVhdGluZyBuZXcgb25lcy5cbiAqXG4gKiBGb3Igc3R5bGUgZ3VpZGVsaW5lcyBhbmQgY29kaW5nIGNvbnZlbnRpb25zIGZvciB0aGlzIHByb2plY3QsXG4gKiBwbGVhc2UgY29uc3VsdCB0aGUgUkVBRE1FLm1kIGluIHRoZSByb290IG9mIHRoZSBwcm9qZWN0LlxuICovXG5cbi8qPT09PT09PT09PVxuICBOQVZJR0FUSU9OXG4gID09PT09PT09PT0qL1xuXG4gIEBjaGFyc2V0ICd1dGYtOCc7XG5cbi8qPT09PT09PT09XG4gIEFic3RyYWN0c1xuICA9PT09PT09PT0qL1xuXG4gIEBpbXBvcnQgJ19hYnN0cmFjdHMvdmFyaWFibGVzJztcbiAgQGltcG9ydCAnX2Fic3RyYWN0cy9taXhpbnMnO1xuXG4vKj09PT09PVxuICBMYXlvdXRcbiAgPT09PT09Ki9cblxuICBAaW1wb3J0ICdfbGF5b3V0L2hlYWRlcic7XG4gIEBpbXBvcnQgJ19sYXlvdXQvZm9vdGVyJztcblxuLyo9PT09PT09PT09XG4gIENvbXBvbmVudHNcbiAgPT09PT09PT09PSovXG5cbiAgQGltcG9ydCAnX2NvbXBvbmVudHMvbmF2JztcbiIsIi8qPT09PT09PT09XG4gIFZBUklBQkxFU1xuICA9PT09PT09PT0qL1xuXG4vKj09PT09PT09PT09XG4gIEJyZWFrcG9pbnRzXG4gID09PT09PT09PT09Ki9cblxuICAkYnJlYWtwb2ludC0teHhTbWFsbDogNDgwcHg7XG4gICRicmVha3BvaW50LS14U21hbGw6IDY0MHB4OyAvKiB3ZSBzd2l0Y2ggZnJvbSBtb2JpbGUgdG8gdGFibGV0IGhlcmUgKi9cbiAgJGJyZWFrcG9pbnQtLXNtYWxsOiA3NjhweDsgLyogd2Ugc3dpdGNoIGZyb20gdGFibGV0IHRvIGRlc2t0b3AgaGVyZSAqL1xuICAkYnJlYWtwb2ludC0tbWVkaXVtOiAxMDI0cHg7XG4gICRicmVha3BvaW50LS1sYXJnZTogMTIyMHB4O1xuICAkYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7IC8qIG1heCB3aWR0aCBvZiBzdGFuZGFyZCAxNVwiIGxhcHRvcCB2aWV3cG9ydCAqL1xuICAkYnJlYWtwb2ludC0teHhMYXJnZTogMTYwMHB4O1xuXG4vKj09PT09PT09PT09PVxuICBHbG9iYWwgU2l6ZXNcbiAgPT09PT09PT09PT09Ki9cblxuICAkbWF4UGFnZVdpZHRoOiAxNjAwcHg7XG4gICRtYXhDb250ZW50V2lkdGg6IDEyMjBweDtcbiAgJG1heFJvd1dpZHRoOiAkbWF4Q29udGVudFdpZHRoO1xuXG4gICRtb2JpbGVOYXZIZ3Q6IDcycHg7XG4gICRkZXNrdG9wTmF2SGd0OiAxMDVweDtcbiAgJG1pY3Jvc2l0ZURlc2t0b3BOYXZIZ3Q6IDcycHg7XG4gICRtaWNyb3NpdGVDb2xsYXBzZWRHbG9iYWxOYXY6IDUwcHg7XG4gICRtaWNyb3NpdGVNb2JpbGVOYXZIZ3Q6IDYwcHg7XG5cbiAgJG5hdldpZHRoTW9iaWxlOiAzMjBweDtcbiAgJG5hdldpZHRoVGFibGV0OiA0MDBweDtcbiAgJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXY6ICRicmVha3BvaW50LS1zbWFsbDtcblxuICAvKiBDb21wb25lbnQgTWFyZ2luL1BhZGRpbmdzICovXG5cbiAgJGFpci0teFNtYWxsOiAyMHB4O1xuICAkYWlyLS1zbWFsbDogNDBweDtcbiAgJGFpci0tbGFyZ2U6IDYwcHg7XG4gICRhaXItLXhMYXJnZTogODBweDtcbiAgJGFpci0teHhMYXJnZTogMTAwcHg7XG5cbiAgLyogU2VjdGlvbiBNYXJnaW4vUGFkZGluZ3MgKi9cbiAgJHNlY3Rpb25TcGFjaW5nOiAoXG4gICAgICB4bDogKDQwcHgsIDEwMHB4LCAxNTBweCksXG4gICAgICBsZzogKDM1cHgsIDgwcHgsIDEyMHB4KSxcbiAgICAgIHNtOiAoMjVweCwgMzBweCwgNTBweClcbiAgKTtcblxuICAkZ3V0dGVyLS1zbWFsbDogNTVweDtcbiAgJGd1dHRlci0tbGFyZ2U6IDEwNXB4O1xuXG4gIC8qIExpbmUgSGVpZ2h0ICovXG5cbiAgJGxpbmVIZWlnaHQtLXhTbWFsbDogMS4zNTtcbiAgJGxpbmVIZWlnaHQtLXNtYWxsOiAxLjQ1O1xuICAkbGluZUhlaWdodC0tbGFyZ2U6IDEuNjtcblxuICAkYmFubmVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE1O1xuICAkYmFubmVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjU7XG5cbiAgLyogTWlzYyAqL1xuXG4gICRsaWdodGJveE9wYWNpdHk6IC44NTtcbiAgJGhpZ2hsaWdodEJhcjogNXB4O1xuXG4vKj09PT09PT09PT09PT09PT09PVxuICBSZXNwb25zaXZlIENvbHVtbnNcbiAgPT09PT09PT09PT09PT09PT09Ki9cblxuICAvKlxuICAgKiBUaGUgZm9sbG93aW5nIGNvbHVtbiBzaXppbmcgbWFwIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGhvdyBkaWZmZXJlbnQgc2l6ZWQgY29sdW1ucyB3aWxsIGFkanVzdCB0aGVpciB3aWR0aHMgYXQgZGlmZmVyZW50IGJyZWFrcG9pbnRzLlxuICAgKiBGb3IgZWFjaCBjb2x1bW4gc2l6ZSAoMTIsIDksIDgsIDYsIDQsIDMsIDIpLCB0aGUgc3Vic2VxdWVudCByZXNwb25zaXZlIHdpZHRocyBhcmUgbGlzdGVkIGluIHBhcmVudGhlc2VzLCBnb2luZyBpbiBvcmRlciBmcm9tIG1vYmlsZSwgdG8gdGFibGV0LCB0byBzbWFsbCBkZXNrdG9wLCB0byBmdWxsIGRlc2t0b3AuXG4gICAqIGV4OiBjb2xTaXplOihtb2JpbGVXaWR0aCwgdGFibGV0V2lkdGgsIHNtRGVza3RvcFdpZHRoLCBsZ0Rlc2t0b3BXaWR0aCksIHdoZXJlIHRoZSB3aWR0aCB2YWx1ZXMgcmVmZXIgdG8gdGhlIG51bWJlciBvZiBwYXJ0cy1wZXItMTIgdGhhdCB0aGUgY29sdW1uIHNob3VsZCBvY2N1cHkgYXQgZWFjaCBzY3JlZW4gc2l6ZS5cbiAgICogTm90ZSB0aGF0IGFsbCBjb2x1bW4gd2lkdGhzIGFyZSAxMi1iYXNlZCwgc28gYSAxMiByZXByZXNlbnRzIGEgZnVsbC13aWR0aCBhcHBlYXJhbmNlLlxuICAgKiBTaW5jZSBhbGwgY29sdW1uIHNpemVzIHNob3VsZCBhcHBlYXIgZnVsbC13aWR0aCBhdCBtb2JpbGUgdmlld3BvcnQgc2l6ZSwgdGhlIGZpcnN0IG51bWJlciBpbiBlYWNoIHNlcXVlbmNlIGlzIDEyLlxuICAgKiBUaGUgc2V0dGluZ3MgZnJvbSB0aGlzIG1hcCBnZXQgYXBwbGllZCBieSB0aGUgY29sdW1uU2l6ZXIgbG9vcCBzdGF0ZW1lbnQgZm91bmQgaW4gdGhlIFwiQ29sdW1uc1wiIHNlY3Rpb24gb2YgdGhlIF9sYXlvdXQgcGFydGlhbCAoc2VlIHRoZSBzdHlsZXMgdW5kZXIgXCIuY29sXCIpLlxuICAgKi9cblxuICAkY29sdW1uU2l6ZXI6IChcbiAgICAxMjooMTIsIDEyLCAxMiwgMTIpLCAvLyBmdWxsLXdpZHRoIGNvbHVtbjsgMTIvMTIgPSAxICgxMDAlKVxuICAgIDk6ICgxMiwgNiwgOSwgOSksIC8vIHRocmVlLWZvdXJ0aHMgd2lkdGggY29sdW1uOyA5LzEyID0gMC43NSAoNzUlKVxuICAgIDg6ICgxMiwgOCwgOCwgOCksIC8vIHR3by10aGlyZHMgd2lkdGggY29sdW1uOyA4LzEyID0gMC42NiAoNjYlKVxuICAgIDY6ICgxMiwgNiwgNiwgNiksIC8vIGhhbGYtd2lkdGggY29sdW1uICg2LzEyID0gMC41IG9yIDUwJSlcbiAgICA0OiAoMTIsIDQsIDQsIDQpLCAvLyBvbmUtdGhpcmQgd2lkdGggY29sdW1uICg0LzEyID0gMC4zMyBvciAzMyUpXG4gICAgMzogKDEyLCA2LCAzLCAzKSwgLy8gb25lLWZvdXJ0aCB3aWR0aCBjb2x1bW4gKDMvMTIgPSAwLjI1IG9yIDI1JSlcbiAgICAyOiAoMTIsIDQsIDIuNCwgMikgLy8gb25lLWZpZnRoIHdpZHRoIGNvbHVtbiAoMi40LzEyID0gMC4yIG9yIDIwJSlcbiAgKTtcblxuLyo9PT09PT09PT09PT09XG4gIENvbG9yIFBhbGV0dGVcbiAgPT09PT09PT09PT09PSovXG5cbiAgLyogR2xvYmFsIENvbG9ycyAqL1xuXG4gICRhdHRZZWxsb3c6ICNGRkI4MUM7XG4gICRhdHRPcmFuZ2U6ICNFQTc0MDA7XG4gICRhdHRMZ3RCbHVlOiAjNzFDNUU4O1xuICAkYXR0Qmx1ZTogIzAwOUZEQjtcbiAgJGF0dERya0JsdWU6ICMwNTY4QUU7XG4gICRhdHRDb2JhbHQ6ICMwMDU3Yjg7XG4gICR3aGl0ZTogI0ZGRjtcbiAgJGxndEdyYXk6ICNGMkYyRjI7XG4gICRyZWdHcmF5OiAjQzlDOUM5O1xuICAkbWVkR3JheTogIzk1OTU5NTtcbiAgJGRya0dyYXk6ICM1QTVBNUE7XG4gICRmdW5jdGlvbmFsQmxhY2s6ICMxOTE5MTk7XG4gICRibGFjazogIzAwMDtcblxuICAvKiAyMDE5IE5ldyBCcmFuZCBTZWNvbmRhcnkgQ29sb3JzICovXG4gIFxuICAkY29iYWx0OiAjMDA1N0I4O1xuICAkcHVycGxlOiAjQUYyOUJCO1xuICAkYmVycnk6ICNGRjU4NUQ7XG4gICR0YW5nZXJpbmU6ICNGRkIwMDA7XG4gICRsaW1lOiAjOTFEQzAwO1xuICAkbWludDogIzQ5RUVEQztcblxuICAvKiBTcGVjaWZpYyBVc2UgQ29sb3JzICovXG5cbiAgJGNvbG9yLS1jdGE6ICRhdHRCbHVlOyAvKiBjYWxsLXRvLWFjdGlvbiBlbGVtZW50cyAobGlua3MsIGJ1dHRvbnMpICovXG4gICRjb2xvci0tY3RhLWhvdmVyOiBkYXJrZW4oJGF0dEJsdWUsIDQlKTsgLyogY2FsbC10by1hY3Rpb24gaG92ZXIgc3RhdGUgKi9cbiAgJGNvbG9yLS1jdGEtY29udHJhc3Q6IGxpZ2h0ZW4oJGF0dEJsdWUsIDclKTsgLyogdHJhbnNwYXJlbnQgaGVhZGVyIGxpbmsgaGlnaGxpZ2h0ICovXG4gICRjb2xvci0tbGluazogJGF0dERya0JsdWU7IC8qIHN0YW5kYXJkIGxpbmtzIGluc2lkZSBvZiB0ZXh0IGJsb2NrcyAqL1xuICAkY29sb3ItLWNvcHk6ICRmdW5jdGlvbmFsQmxhY2s7IC8qIGdlbmVyYWwgcGFnZSBib2R5IGNvcHkgKi9cbiAgJGNvbG9yLS1zZWFyY2gtYm9yZGVyOiBkYXJrZW4oJGxndEdyYXksIDMlKTtcbiAgJGNvbG9yLS1sb2dvLWRlZmF1bHQ6IFwid2hpdGVcIjtcblxuICAvKiBDb2xvciBNYXBzICovXG5cbiAgJGJhY2tncm91bmRDb2xvcnM6IChcbiAgICAvL1ZhcmlhYmxlIDEgaXMgYmFja2dyb3VuZCwgVmFyaWFibGUgMiBpcyB0ZXh0IGNvbG9yXG4gICAgLy9MZWdhY3lcbiAgICBibHVlOiAoJGF0dEJsdWUsICRmdW5jdGlvbmFsQmxhY2spLFxuICAgIGRhcmstYmx1ZTogKCRhdHREcmtCbHVlLCAkd2hpdGUpLFxuICAgIG5lYXItYmxhY2s6ICgkZnVuY3Rpb25hbEJsYWNrLCAkd2hpdGUpLFxuICAgIFxuICAgIC8vMjAxOVxuICAgIHdoaXRlOiAoJHdoaXRlLCAkZnVuY3Rpb25hbEJsYWNrKSxcbiAgICBibGFjazogKCRibGFjaywgJHdoaXRlKSxcbiAgICBncmF5OiAoJGxndEdyYXksICRmdW5jdGlvbmFsQmxhY2spLFxuICAgIGJsdWUtLXdoLXRleHQ6ICgkYXR0Qmx1ZSwgJHdoaXRlKSxcbiAgICBibHVlLS1ibC10ZXh0OiAoJGF0dEJsdWUsICRmdW5jdGlvbmFsQmxhY2spLFxuICAgIC8vQ29tbXVuaWNhdGlvbnMgU2Vjb25kYXJ5IENvbG9yc1xuICAgIGNvbW1zLWNvYmFsdDogKCRjb2JhbHQsICR3aGl0ZSksXG4gICAgY29tbXMtcHVycGxlOiAoJHB1cnBsZSwgJHdoaXRlKSxcbiAgICBjb21tcy1iZXJyeTogKCRiZXJyeSwgJGZ1bmN0aW9uYWxCbGFjayksXG4gICAgY29tbXMtdGFuZ2VyaW5lOiAoJHRhbmdlcmluZSwgJGZ1bmN0aW9uYWxCbGFjayksXG4gICAgY29tbXMtbGltZTogKCRsaW1lLCAkZnVuY3Rpb25hbEJsYWNrKSxcbiAgICBjb21tcy1taW50OiAoJG1pbnQsICRmdW5jdGlvbmFsQmxhY2spLCBcbiAgICAvL0NvbW11bmljYXRpb25zIFNlY29uZGFyeSBDb2xvcnMgLSBHcmFkaWVudHMgXG4gICAgLy9WYXIgMSBpcyBsZWZ0IGJhY2tncm91bmQsIFZhciAyIGlzIHRleHQgY29sb3IgVmFyIDMgaXMgcmlnaHQgYmFja2dyb3VuZFxuICAgIGJsdWUtZ3JhZGllbnQtLXdoLXRleHQ6ICgkYXR0Q29iYWx0LCAkd2hpdGUsICRhdHRCbHVlKSxcbiAgICBibHVlLWdyYWRpZW50LS1ibC10ZXh0OiAoJGF0dENvYmFsdCwgJGZ1bmN0aW9uYWxCbGFjaywgJGF0dEJsdWUpLFxuICAgIGNvbW1zLWNvYmFsdC1wdXJwbGU6KCRjb2JhbHQsICR3aGl0ZSwgJHB1cnBsZSksXG4gICAgY29tbXMtYmVycnktdGFuZ2VyaW5lOigkYmVycnksICRmdW5jdGlvbmFsQmxhY2ssICR0YW5nZXJpbmUpLFxuICAgIGNvbW1zLWxpbWUtbWludDooJGxpbWUsICRmdW5jdGlvbmFsQmxhY2ssICRtaW50KVxuICApO1xuXG4gIC8qIENhdGVnb3J5IFRoZW1lcyAtIHRoZW1lIG5hbWVzIGJlbG93IGFyZSBiYXNlZCBvbiB0aGVtZS0tIGNhdGVnb3J5IGNsYXNzZXMgdGhhdCBnZXQgYXBwbGllZCB0byB0aGUgYm9keSBlbGVtZW50IGJ5IEFFTSAqL1xuXG4gICR0aGVtZUNvbG9yczogKFxuICAgIC8vIENvbW11bmljYXRpb25zOiAoXCJ3aGl0ZVwiLCAkd2hpdGUpLFxuICAgIC8vIGNvbXBhbnk6IChcIndoaXRlXCIsICR3aGl0ZSlcbiAgKTtcblxuICAvKlxuXG4gIENvbW11bmljYXRpb25zOiAoXCJibHVlXCIsICRhdHRCbHVlKSxcbiAgY29tcGFueTogKFwic2lsdmVyXCIsIFwic2lsdmVyXCIpXG5cbiAgKi9cblxuLyo9PT09PT09PT09PT09XG4gIEZvbnQgRmFtaWxpZXNcbiAgPT09PT09PT09PT09PSovXG5cbiAgLyogQWxlY2sgU2FucyAtIEJhc2UgRm9udCBWYXJpYW50cyAqL1xuXG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zJzsgLyogQWxlY2sgU2FucyAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfUmcuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19SZy5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfUmcud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfUmcudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfUmcuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zJzsgLyogQWxlY2sgU2FucyBJdGFsaWMgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0l0LmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfSXQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0l0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0l0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0l0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2Fucyc7IC8qIEFsZWNrIFNhbnMgTGlnaHQgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0LmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQWxlY2sgU2Fucyc7IC8qIEFsZWNrIFNhbnMgTGlnaHQgSXRhbGljICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdEl0LmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHRJdC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTHRJdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19MdEl0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0x0SXQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zJzsgLyogQWxlY2sgU2FucyBCb2xkICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZC5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMnOyAvKiBBbGVjayBTYW5zIEJvbGQgSXRhbGljICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZEl0LmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmRJdC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmRJdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CZEl0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0JkSXQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgLyogQWxlY2sgU2FucyAtIEFkZGl0aW9uYWwgRm9udCBWYXJpYW50cyAqL1xuXG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zIE1lZGl1bSc7IC8qIEFsZWNrIFNhbnMgTWVkaXVtICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZC5lb3QnKTtcbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZC5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMgTWVkaXVtJzsgLyogQWxlY2sgU2FucyBNZWRpdW0gSXRhbGljICovXG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZEl0LmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWRJdC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfTWRJdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19NZEl0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX01kSXQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTYW5zIEJsYWNrJzsgLyogQWxlY2sgU2FucyBCbGFjayAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrLmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGsud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2Fuc19XX0Jsay5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbiAgQGZvbnQtZmFjZXtcbiAgXHRmb250LWZhbWlseTogJ0FsZWNrIFNhbnMgQmxhY2snOyAvKiBBbGVjayBTYW5zIEJsYWNrIEl0YWxpYyAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrSXQuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NhbnNfV19CbGtJdC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrSXQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrSXQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTYW5zX1dfQmxrSXQuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgLyogQWxlY2sgU2xhYiAqL1xuXG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTbGFiJzsgLyogQWxlY2sgU2xhYiAqL1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfUmcuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BbGVjay9BVFRBbGVja1NsYWJfV19SZy5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfUmcud29mZicpIGZvcm1hdCgnd29mZicpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfUmcudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfUmcuc3ZnI3dlYmZvbnQnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gIEBmb250LWZhY2V7XG4gIFx0Zm9udC1mYW1pbHk6ICdBbGVjayBTbGFiJzsgLyogQWxlY2sgU2xhYiBJdGFsaWMgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX0l0LmVvdCcpO1xuICBcdHNyYzogdXJsKCdfZm9udHMvQWxlY2svQVRUQWxlY2tTbGFiX1dfSXQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX0l0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX0l0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FsZWNrL0FUVEFsZWNrU2xhYl9XX0l0LnN2ZyN3ZWJmb250JykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG5cbiAgLyogQVQmVCBJY29uIEZvbnQgKi9cblxuICBAZm9udC1mYWNle1xuICBcdGZvbnQtZmFtaWx5OiAnQVRUX0ljb25zJzsgLyogQVQmVCBJY29uIEZvbnQgKi9cbiAgXHRzcmM6IHVybCgnX2ZvbnRzL0FUVF9JY29ucy9hdHQtaWNvbnMuZW90Jyk7XG4gIFx0c3JjOiB1cmwoJ19mb250cy9BVFRfSWNvbnMvYXR0LWljb25zLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIFx0ICAgICB1cmwoJ19mb250cy9BVFRfSWNvbnMvYXR0LWljb25zLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgXHQgICAgIHVybCgnX2ZvbnRzL0FUVF9JY29ucy9hdHQtaWNvbnMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICBcdCAgICAgdXJsKCdfZm9udHMvQVRUX0ljb25zL2F0dC1pY29ucy5zdmcjd2ViZm9udCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuLyo9PT09PT09PT09PT09PVxuICBGb250IFZhcmlhYmxlc1xuICA9PT09PT09PT09PT09PSovXG5cbiAgJGFsZWNrOiBcIkFsZWNrIFNhbnNcIiwgXCJBcmlhbFwiLCBcIkhlbHZldGljYVwiLCBzYW5zLXNlcmlmO1xuICAkYWxlY2tNZWRpdW06IFwiQWxlY2sgU2FucyBNZWRpdW1cIiwgXCJBbGVjayBTYW5zXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcbiAgJGFsZWNrQmxhY2s6IFwiQWxlY2sgU2FucyBCbGFja1wiLCBcIkFsZWNrIFNhbnMgTWVkaXVtXCIsIFwiQWxlY2sgU2Fuc1wiLCBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XG4gICRhbGVja1NsYWI6IFwiQWxlY2sgU2xhYlwiLCBcIkFsZWNrIFNhbnNcIiwgXCJBcmlhbFwiLCBcIkhlbHZldGljYVwiLCBzYW5zLXNlcmlmO1xuICAkYXJpYWw6IFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcbiAgJGF0dC1pY29uczogXCJBVFRfSWNvbnNcIixcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XG5cbiAgLyogQVQmVCBJY29uIEZvbnQgTWFwcyAqL1xuXG4gICRhdHRJY29uczogKFxuICAgIGFsZXJ0OiBcIlxcZTkwMFwiLFxuICAgIGF0dC1sb2dvOiBcIlxcZTkwMVwiLFxuICAgIGF0dC1sb2dvLXRleHQ6IFwiXFxlOTBlXCIsXG4gICAgY29tbWVudDogXCJcXGU5MDJcIixcbiAgICBkb3dubG9hZDogXCJcXGU5MDNcIixcbiAgICBlbWFpbDogXCJcXGU5MDRcIixcbiAgICBmYWNlYm9vazogXCJcXGU5MDVcIixcbiAgICBmYXE6IFwiXFxlOTA2XCIsXG4gICAgZmlsZTogXCJcXGU5MDdcIixcbiAgICBpbmZvOiBcIlxcZTkwOFwiLFxuICAgIGluZm8yOiBcIlxcZTkwOVwiLFxuICAgIGluc3RhZ3JhbTogXCJcXGU5MGFcIixcbiAgICBsaW5rOiBcIlxcZTkwYlwiLFxuICAgIGxpbmtlZGluOiBcIlxcZTkwY1wiLFxuICAgIG5vdGlmaWNhdGlvbjogXCJcXGU5MGZcIixcbiAgICBtaW51czogXCJcXGU5MGRcIixcbiAgICBwbGF5OiBcIlxcZTkxMFwiLFxuICAgIHBsdXM6IFwiXFxlOTExXCIsXG4gICAgcXVvdGU6IFwiXFxlOTEyXCIsXG4gICAgc2VhcmNoOiBcIlxcZTkxM1wiLFxuICAgIHR3aXR0ZXI6IFwiXFxlOTE0XCIsXG4gICAgeW91dHViZTogXCJcXGU5MTVcIlxuICApO1xuXG4vKj09PT09PT09PT09PT09PT1cbiAgTmF2IEhpZ2hsaWdodGluZ1xuICA9PT09PT09PT09PT09PT09Ki9cblxuICAvKlxuICAgKiBUaGUgZm9sbG93aW5nIG1hcCBzZXRzIHRoZSBuYXYgaGlnaGxpZ2h0aW5nIGRlZmF1bHQgZm9yIGRpZmZlcmVudCBib2R5IGNsYXNzZXNcbiAgICogZXg6IGJvZHlDbGFzc05hbWU6IFwibmF2LWl0ZW0tY2xhc3MtbmFtZVwiXG4gICAqIE5vdGUgdGhhdCBpZiBhIG5hdiBpdGVtIHdpdGggY2xhc3Mgb2YgXCJuYXYtY29tcGFueVwiIGV4aXN0cyBhbmQgeW91J3JlIG9uIGEgcGFnZSB3aXRoIGEgYm9keSBjbGFzcyBvZiBcIm5hdi1jb21wYW55XCIsIHRoYXQgd2lsbCBoaWdobGlnaHQgYXMgd2VsbFxuICAgKi9cblxuICAkbmF2SGlnaGxpZ2h0czogKFxuICAgIHN0b3J5OiBcIm5hdi1uZXdzXCIsXG4gICAgYmxvZzogXCJuYXYtbmV3c1wiLFxuICAgIGFsbC1wb3N0czogXCJuYXYtbmV3c1wiLFxuICAgIG1lZGlhLWdhbGxlcnk6IFwibmF2LW5ld3NcIixcbiAgICBtZWRpYS1raXQ6IFwibmF2LW5ld3NcIixcbiAgICBtZWRpYS1raXQtbGFuZGluZzogXCJuYXYtbmV3c1wiXG4gICk7XG4iLCIvKj09PT09PVxuICBNSVhJTlNcbiAgPT09PT09Ki9cblxuLyo9PT09PT09XG4gIEFjY2VudHNcbiAgPT09PT09PSovXG5cbkBtaXhpbiBhY2NlbnQtYXJyb3coJGRpcmVjdGlvbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjphZnRlciB7XG4gICAgQGlmICRkaXJlY3Rpb249PVwidXBcIiB7XG4gICAgICBjb250ZW50OiBcIiBcXDIxOTFcIjtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT1cImRvd25cIiB7XG4gICAgICBjb250ZW50OiBcIiBcXDIxOTNcIjtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT1cImxlZnRcIiB7XG4gICAgICBjb250ZW50OiBcIiBcXDIxOTBcIjtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT1cInJpZ2h0XCIge1xuICAgICAgY29udGVudDogXCIgXFwyMTkyXCI7XG4gICAgfVxuXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxufVxuXG5AbWl4aW4gc3BlY2lhbC1ib2xkKCRjb2xvcikge1xuICBAaW5jbHVkZSBmb250LXNpemUoMjQpO1xuICBmb250LWZhbWlseTogJGFsZWNrO1xuICBmb250LXdlaWdodDogMzAwO1xuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgLnJlZ2lvbi0tYmx1ZSAmIHtcbiAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgfVxuXG4gICAgLnJlZ2lvbi0tZGFyay1ibHVlICYsXG4gICAgLnJlZ2lvbltjbGFzcyo9XCItYmxhY2tcIl0gJiB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZ3JhZGllbnQtb3ZlcmxheSgkc3RhcnRQb3NpdGlvbiwgJG9wYWNpdHkpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMCkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgJHN0YXJ0UG9zaXRpb24sIHJnYmEoMCwgMCwgMCwgJG9wYWNpdHkpIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLCAwLCAwLCAwKSAwJSwgcmdiYSgwLCAwLCAwLCAwKSAkc3RhcnRQb3NpdGlvbiwgcmdiYSgwLCAwLCAwLCAkb3BhY2l0eSkgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwKSAwJSwgcmdiYSgwLCAwLCAwLCAwKSAkc3RhcnRQb3NpdGlvbiwgcmdiYSgwLCAwLCAwLCAkb3BhY2l0eSkgMTAwJSk7XG5cbiAgICAubm8tY3NzZ3JhZGllbnRzICYge1xuICAgICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzMzMDAwMCcsIGVuZENvbG9yc3RyPScjMDAwMDAwJywgR3JhZGllbnRUeXBlPTEpO1xuICAgICAgLW1zLWZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMzMzAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHNvbGlkLW92ZXJsYXkoJG9wYWNpdHkpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gaGlnaGxpZ2h0LWJhcigkaGVpZ2h0KSB7XG4gICY6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uQWxsKDMwMG1zKTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0xcHg7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tY3RhO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQG1peGluIGljb24tb3ZlcmxheSgkaWNvbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogbWFwLWdldCgkYXR0SWNvbnMsICRpY29uKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIGZvbnQtZmFtaWx5OiAkYXR0LWljb25zO1xuICAgIGZvbnQtc2l6ZTogMTByZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgb3BhY2l0eTogMC44NTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0teHhTbWFsbCkge1xuICAgICAgZm9udC1zaXplOiA4cmVtO1xuICAgIH1cblxuICAgIC5jb2wtMiAmIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcbiAgICAgICAgZm9udC1zaXplOiA4cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jb2wtMyAmIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogOHJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sLTQgJiB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSAtIDEpIHtcbiAgICAgICAgZm9udC1zaXplOiA4cmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKj09PT09PT09PT1cbiAgQW5pbWF0aW9uc1xuICA9PT09PT09PT09Ki9cblxuQG1peGluIHRyYW5zaXRpb25BbGwoJHNwZWVkKSB7XG4gIHRyYW5zaXRpb246IGFsbCAkc3BlZWQgZWFzZTtcbn1cblxuLyo9PT09PT09PT09PT09PT09PVxuICBDb250YWluZXIgUXVlcmllc1xuICA9PT09PT09PT09PT09PT09PSovXG5cbkBtaXhpbiByZXNwb25kLXRvLWNvbnRleHQoJHNpemVzLi4uKSB7XG4gIC8qXG4gICAgICogQXZhaWxhYmxlIGNvbXBvbmVudCBmb3JtYXRzIGFyZSB4c21hbGwsIHNtYWxsLCBtZWRpdW0gb3IgbGFyZ2UuXG4gICAgICogVGhpcyBtaXhpbiBsb29wcyBvdmVyIHRoZSBjb250ZXh0cyBwcm92aWRlZCAoY29sdW1uIHNpemVzKSBhbmQgZGV0ZXJtaW5lcyB3aGVuIHRvIGFwcGx5IHRoZSBjb250YWluZWQgc3R5bGVzIGZvciB0aG9zZSBjb250ZXh0cyxcbiAgICAgKiBhbmQgYXNzaWducyBlYWNoIG9mIHRob3NlIHBvdGVudGlhbCBjb2x1bW4gc2l6ZXMgdG8gYSBjb3JyZXNwb25kaW5nIGNvbXBvbmVudCBmb3JtYXQgKHhzbWFsbCwgc21hbGwsIG1lZGl1bSBvciBsYXJnZSkuXG4gICAgICogVGhlIDpub3QoLmNvbCkgcGFyZW50IGZpbHRlciBpcyBhbHdheXMgaW5jbHVkZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlc2Ugc3R5bGVzIGFsc28gZ2V0IGFwcGxpZWQgZm9yIGNvbXBvbmVudHMgdGhhdCBhcmUgYmVpbmcgdXNlZCBvdXRzaWRlIG9mIGNvbHVtbnMgc3lzdGVtXG4gICAgICovXG5cbiAgQGVhY2ggJHNpemUgaW4gJHNpemVzIHtcbiAgICBAaWYgJHNpemU9PVwic21hbGxcIiB7XG5cbiAgICAgIC8qIEF0IG1vYmlsZSB2aWV3cG9ydHMsIGV2ZXJ5IGNvbXBvbmVudCBpbiBldmVyeSBjb2x1bW4gc3RhcnRzIG91dCBhZGhlcmluZyB0byBpdHMgc21hbGwgZm9ybWF0ICovXG4gICAgICAvLyAucmVnaW9uIDpub3QoLmNvbCkgJixcbiAgICAgIC5jb2wtMiAmLFxuICAgICAgLmNvbC0zICYsXG4gICAgICAuY29sLTQgJixcbiAgICAgIC5jb2wtNiAmLFxuICAgICAgLmNvbC04ICYsXG4gICAgICAuY29sLTkgJixcbiAgICAgIC5jb2wtMTIgJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGVsc2VpZiAkc2l6ZT09XCJtZWRpdW1cIiB7XG5cbiAgICAgIC8qIFRoZW4sIGF0IHRhYmxldCB2aWV3cG9ydHMuLi4gKi9cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tc21hbGwpIHtcblxuICAgICAgICAvKiAuLi5vbmx5IGNvbXBvbmVudHMgaW5zaWRlIG9mIHRoZSB3aWRlc3QgY29sdW1ucyBzaG91bGQgYWRoZXJlIHRvIHRoZWlyIG1lZGl1bSBmb3JtYXRzICovXG4gICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxuICAgICAgICAuY29sLTggJixcbiAgICAgICAgLmNvbC05ICYsXG4gICAgICAgIC5jb2wtMTIgJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICAvKiBUaGVuLCBhdCBzbWFsbGVyIGRlc2t0b3Agdmlld3BvcnRzLi4uICovXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuXG4gICAgICAgIC8qIC4uLmNvbXBvbmVudHMgaW5zaWRlIG9mIGxhcmdlciBtaWQtc2l6ZSBjb2x1bW5zIGNhbiBzdGFydCB0byBhZGhlcmUgdG8gdGhlaXIgbWVkaXVtIGZvcm1hdHMgKi9cbiAgICAgICAgLy8gLnJlZ2lvbiA6bm90KC5jb2wpICYsXG4gICAgICAgIC5jb2wtNiAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIC8qIFRoZW4sIGF0IGxhcmdlciBkZXNrdG9wIHZpZXdwb3J0cy4uLiAqL1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuXG4gICAgICAgIC8qIC4uLmNvbXBvbmVudHMgaW5zaWRlIG9mIHNtYWxsZXIgbWlkLXNpemUgY29sdW1ucyBjYW4gc3RhcnQgdG8gYWRoZXJlIHRvIHRoZWlyIG1lZGl1bSBmb3JtYXRzIGlmIHRoZXkgYXJlIGluIGhvcml6b250YWxseSBmbHVzaCByb3dzICovXG4gICAgICAgIC8vIC5yZWdpb24gOm5vdCguY29sKSAmLFxuICAgICAgICAucm93LS1mbHVzaC1ob3Jpem9udGFsIC5jb2wtNCAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBAZWxzZWlmICRzaXplPT1cImxhcmdlXCIge1xuXG4gICAgICAvKiBUaGVuLCBhdCB0YWJsZXQgdmlld3BvcnRzLi4uICovXG4gICAgICAvLyBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XG4gICAgICAvL1xuICAgICAgLy8gICAvKiAuLi5vbmx5IGNvbXBvbmVudHMgaW5zaWRlIG9mIHRoZSB3aWRlc3QgY29sdW1uIHNob3VsZCBhZGhlcmUgdG8gdGhlaXIgbGFyZ2UgZm9ybWF0cyAqL1xuICAgICAgLy8gICAuY29sLTEyICYge1xuICAgICAgLy8gICAgIEBjb250ZW50O1xuICAgICAgLy8gICB9XG4gICAgICAvL1xuICAgICAgLy8gfVxuXG4gICAgICAvKiBUaGVuLCBhdCBzbWFsbGVyIGRlc2t0b3Agdmlld3BvcnRzLi4uICovXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLW1lZGl1bSkge1xuXG4gICAgICAgIC8qIC4uLm9ubHkgY29tcG9uZW50cyBpbnNpZGUgb2YgdGhlIHdpZGVzdCBjb2x1bW5zIGNhbiBzdGFydCB0byBhZGhlcmUgdG8gdGhlaXIgbGFyZ2UgZm9ybWF0cyAqL1xuICAgICAgICAvLyAucmVnaW9uIDpub3QoLmNvbCkgJixcbiAgICAgICAgLmNvbC04ICYsXG4gICAgICAgIC5jb2wtOSAmLFxuICAgICAgICAuY29sLTEyICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgLyogVGhlbiwgYXQgbGFyZ2VyIGRlc2t0b3Agdmlld3BvcnRzIC4uLiAqL1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuXG4gICAgICAgIC8qIC4uLmNvbXBvbmVudHMgaW5zaWRlIG9mIGxhcmdlciBtaWQtc2l6ZSBjb2x1bW5zIGNhbiBzdGFydCB0byBhZGhlcmUgdG8gdGhlaXIgbGFyZ2UgZm9ybWF0cyAqL1xuICAgICAgICAvLyAucmVnaW9uIDpub3QoLmNvbCkgJixcbiAgICAgICAgLmNvbC02ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICAgIEBlbHNlaWYgJHNpemU9PVwieHNtYWxsXCIge1xuXG4gICAgICAvKiBUaGVuLCBhdCBsYXJnZXIgZGVza3RvcCB2aWV3cG9ydHMuLi4gKi9cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcblxuICAgICAgICAvKiAuLi5vbmx5IGNvbXBvbmVudHMgaW5zaWRlIG9mIHRoZSB0aW5pZXN0IGNvbHVtbnMgc2hvdWxkIGFkaGVyZSB0byB0aGVpciB4c21hbGwgZm9ybWF0cyAqL1xuICAgICAgICAvLyAucmVnaW9uIDpub3QoLmNvbCkgJixcbiAgICAgICAgLmNvbC0yICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuXG4vKj09PT09PT09PT09XG4gIFBvc2l0aW9uaW5nXG4gID09PT09PT09PT09Ki9cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5AbWl4aW4gY2VudGVySG9yaXpvbnRhbGx5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGxlZnQ6IDUwJTtcbn1cblxuQG1peGluIGNlbnRlclZlcnRpY2FsbHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdG9wOiA1MCU7XG59XG5cbkBtaXhpbiByb3coJHdpZHRoOiAkY29udGFpbmVyKSB7XG4gICRjb250YWluZXI6ICR3aWR0aDtcblxuICBtYXgtd2lkdGg6ICRjb250YWluZXI7XG59XG5cbkBtaXhpbiBjb2x1bW4oJG51bUNvbHMpIHtcbiAgJGdyaWRCYXNlOiAxMjtcblxuICAvLyAvLyBHdXR0ZXIgc3R1ZmZcbiAgLy8gJGd1dHRlckJhc2U6IDIwO1xuICAvLyBAaWYgJG51bUNvbHMgPT0gNSB7XG4gIC8vICAgJGd1dHRlckJhc2U6IDcyO1xuICAvLyB9XG4gIC8vICRudW1HdXR0ZXJzOiAkZ3JpZEJhc2UgLyAoJG51bUNvbHMgLSAxKTtcbiAgLy8gJGd1dHRlcldpZHRoOiAoJGd1dHRlckJhc2UgLyAkZ3JpZEJhc2UpICogMSU7XG5cbiAgJGNvbHVtbldpZHRoOiAoJG51bUNvbHMgLyAkZ3JpZEJhc2UpICogMTAwJTtcblxuICBtYXgtd2lkdGg6ICRjb2x1bW5XaWR0aDtcbiAgZmxleC1iYXNpczogJGNvbHVtbldpZHRoO1xufVxuXG5AbWl4aW4gaGlkZGVuLXNwb2tlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50O1xuXG4gICY6Zm9jdXMge1xuICAgIGNsaXA6IGF1dG8gIWltcG9ydGFudDtcbiAgICBjbGlwLXBhdGg6IG5vbmU7XG4gICAgei1pbmRleDogMTAwMDAwO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLyo9PT09XG4gIE1pc2NcbiAgPT09PSovXG5cbi8qIFNpbHZlciBzdHlsZSAqL1xuXG5AbWl4aW4gYmtnLXNpbHZlciB7XG4gIGJhY2tncm91bmQ6ICNFREVDRUM7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjM3LCAyMzYsIDIzNiwgMSkgMCUsIHJnYmEoMjQ5LCAyNDksIDI0OSwgMSkgMTAwJSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjM3LCAyMzYsIDIzNiwgMSkgMCUsIHJnYmEoMjQ5LCAyNDksIDI0OSwgMSkgMTAwJSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyMzcsIDIzNiwgMjM2LCAxKSAwJSwgcmdiYSgyNDksIDI0OSwgMjQ5LCAxKSAxMDAlKTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI0VERUNFQycsIGVuZENvbG9yc3RyPScjRjlGOUY5JywgR3JhZGllbnRUeXBlPTEpO1xuXG4gIC5uby1jc3NncmFkaWVudHMgJiB7XG4gICAgZmlsdGVyOiBub25lO1xuICB9XG5cbiAgLmN0YS0tbGluayB7XG4gICAgY29sb3I6ICRhdHREcmtCbHVlO1xuICB9XG59XG5AbWl4aW4gZ3JhZGllbnRCa2dkKCRjb2xvciwgJGRpcmVjdGlvbiwgJHRleHRDb2xvcjogJGJsYWNrKSB7XG4gIC8vVE9ETyAtIGNvbmZpcm0gdGhhdCB0aGlzIHRoZSBjb3JyZWN0IHVzZSBvZiBmaWx0ZXJzXG4gIC5jc3NncmFkaWVudHMgJiB7XG4gICAgZmlsdGVyOiBub25lO1xuICB9XG4gIEBpZiAkY29sb3I9PVwiYmx1ZVwiIHtcbiAgICBiYWNrZ3JvdW5kOiRhdHRCbHVlO1xuICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvICRkaXJlY3Rpb24sICMwMDc5YjEgMCUsICMwMEM5RkYgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwNzliMScsIGVuZENvbG9yc3RyPScjMDBDOUZGJywgR3JhZGllbnRUeXBlPTEpO1xuICAgIEBpZiAkdGV4dENvbG9yPT1cIndoaXRlXCIge1xuICAgICAgY29sb3I6JHdoaXRlO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlaWYgJGNvbG9yPT1cImNvbGJhbHQtcHVycGxlXCIge1xuICAgIGJhY2tncm91bmQ6JGNvbGJhbHQ7XG4gICAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gJGRpcmVjdGlvbiwgJGNvbGJhbHQgMCUsICRwdXJwbGUgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI3skY29sYmFsdH0nLCBlbmRDb2xvcnN0cj0nI3skcHVycGxlfScsIEdyYWRpZW50VHlwZT0xKTtcbiAgICBjb2xvcjokd2hpdGU7XG4gIH1cblxuICBAZWxzZWlmICRjb2xvcj09XCJiZXJyeS10YW5nZXJpbmVcIiB7XG4gICAgYmFja2dyb3VuZDokYmVycnk7XG4gICAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gJGRpcmVjdGlvbiwgJGJlcnJ5IDAlLCAkdGFuZ2VyaW5lIDEwMCUpO1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7JGJlcnJ5fScsIGVuZENvbG9yc3RyPScjeyR0YW5nZXJpbmV9JywgR3JhZGllbnRUeXBlPTEpO1xuICAgIGNvbG9yOiRibGFjaztcbiAgfVxuXG4gIEBlbHNlaWYgJGNvbG9yPT1cImxpbWUtbWludFwiIHtcbiAgICBiYWNrZ3JvdW5kOiRsaW1lO1xuICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvICRkaXJlY3Rpb24sICRsaW1lIDAlLCAkbWludCAxMDAlKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjeyRsaW1lfScsIGVuZENvbG9yc3RyPScjeyRtaW50fScsIEdyYWRpZW50VHlwZT0xKTtcbiAgICBjb2xvcjokYmxhY2s7XG4gIH1cbn1cblxuLyogRGVmYXVsdCBidXR0b24gc3R5bGUgZm9yIHdoaXRlLCBncmF5IG9yIGJsYWNrIGJhY2tncm91bmRzICovXG5cbkBtaXhpbiBjdGEoJGJrZ0NvbG9yKSB7XG4gIEBpZiAkYmtnQ29sb3I9PVwiYmx1ZVwiIHtcbiAgICBib3JkZXI6MDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWN0YTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1jdGEtaG92ZXI7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICB9XG5cbiAgQGVsc2VpZiAkYmtnQ29sb3I9PVwiYmxhY2tcIiB7XG4gICAgYm9yZGVyOjA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlaWYgJGJrZ0NvbG9yPT1cIndoaXRlXCIge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGN0YS1uZXcoJGNvbG9yLCAkaG92ZXJUZXh0Q29sb3IpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgIGNvbG9yOiAkaG92ZXJUZXh0Q29sb3I7XG4gICAgfVxufVxuXG4vKiBIb3Jpem9udGFsL1ZlcnRpY2FsIFJ1bGVzICovXG5cbkBtaXhpbiBydWxlKCRkaXJlY3Rpb24pIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGF0dEJsdWU7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIHotaW5kZXg6IDI7XG5cbiAgQGlmICRkaXJlY3Rpb249PVwiaG9yaXpvbnRhbFwiIHtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIHdpZHRoOiA2MCU7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYm90dG9tOiAtMnB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgaGVpZ2h0OiA2MCU7XG4gICAgd2lkdGg6IDRweDtcbiAgICBtYXJnaW46IGF1dG8gMDtcbiAgICBsZWZ0OiAtMnB4O1xuICAgIGJvdHRvbTogMDtcbiAgICB0b3A6IDA7XG4gIH1cblxuICAucmVnaW9uLS1ibHVlICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgfVxuXG4gIC5yZWdpb24tLWRhcmstYmx1ZSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIH1cbn1cblxuLyo9PT09PT09PT09XG4gIFR5cG9ncmFwaHlcbiAgPT09PT09PT09PSovXG5cbkBtaXhpbiBmb250LXNpemUoJHBpeGVsczogMS40KSB7XG4gIGZvbnQtc2l6ZTogJHBpeGVscyArIHB4O1xuICBmb250LXNpemU6ICgkcGl4ZWxzIC8gMTApICsgcmVtO1xufVxuXG5AbWl4aW4gZm9udC1zbW9vdGhpbmcge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuQG1peGluIG5vLWZvbnQtc21vb3RoaW5nIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bztcbn0iLCIvKj09PT09PVxuICBIRUFERVJcbiAgPT09PT09Ki9cblxuICBib2R5ID4gLndyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgYm9keSA+IC53cmFwcGVyIC5jYW52YXMge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoMzAwbXMpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcbiAgICAgIC8vdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAmLmNhbnZhcy0tb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTgwJSk7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzNjBweCkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtI3skbmF2V2lkdGhNb2JpbGV9KTtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0jeyRuYXZXaWR0aFRhYmxldH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICAvKiBTa2lwIE5hdmlnYXRpb24gKi9cblxuICAuc2tpcC1uYXZpZ2F0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGRya0dyYXksIDEwJSk7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgfVxuICB9XG4gIC5za2lwLW5hdmlnYXRpb24gYSB7XG4gICAgQGluY2x1ZGUgaGlkZGVuLXNwb2tlbjtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAxMHB4KTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgdG9wOiA1cHg7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XG4gICAgICB0b3A6IC0zMHB4O1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCgzMDBtcyk7XG4gICAgICBmb250LXNpemU6IDEycHg7IC8vIGRvbid0IHVzZSByZW1zIGhlcmVcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDVweCA1cHggMTBweDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgdG9wOiA1cHg7XG4gICAgICBjbGlwLXBhdGg6IG5vbmU7XG4gICAgICBjbGlwOiBpbml0aWFsO1xuICAgICAgY29sb3I6ICRyZWdHcmF5O1xuICAgICAgei1pbmRleDogOTk5OTk5OTk5OTtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGxlZnQ6IDVweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBTdGFuZGFyZCBhbmQgTWljcm9zaXRlIEhlYWRlcnMgKi9cblxuICAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIucGx1c0dsb2JhbCAuc2l0ZU5hdntcbiAgICBtYXJnaW4tdG9wOjBweDtcbiAgfSAgXG5cbiAgI2F0dC1hYm91dC1oZWFkZXIgPiBkaXYsXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlciAubWljcm9zaXRlLW5hdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZHJrR3JheTtcbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXNtYWxsKSB7XG4gICNhdHQtbWljcm9zaXRlLWhlYWRlci5wbHVzR2xvYmFsIC5zaXRlTmF2e1xuICAgIG1hcmdpbi10b3A6NTBweDtcbiAgfSAgIFxufVxuXG4gICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tdHJhbnNwYXJlbnQgPiBkaXYsXG4gICNhdHQtbWljcm9zaXRlLWhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50IC5taWNyb3NpdGUtbmF2IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgLjY1KTtcbiAgICB9XG4gIH1cblxuICAjYXR0LWFib3V0LWhlYWRlci5oZWFkZXItLWZpeGVkID4gZGl2LFxuICAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIuaGVhZGVyLS1maXhlZCAubWljcm9zaXRlLW5hdiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1sYXJnZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgfVxuXG4gIGhlYWRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cblxuICAgIC50b3VjaCAmLFxuICAgIC50b3VjaGV2ZW50cyAmIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBBbnkgaW1tZWRpYXRlIHNpYmxpbmcgb2YgdGhlIHNlY29uZGFyeSBoZWFkZXJcblxuICAuaGVhZGVyLS1zZWNvbmRhcnkgKyAqIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHsgXG4gICAgICBtYXJnaW4tdG9wOiAkZGVza3RvcE5hdkhndDtcbiAgICB9XG4gIH1cblxuICAvLyBBbnkgaW1tZWRpYXRlIHNpYmxpbmcgb2YgdGhlIHNlY29uZGFyeSBoZWFkZXIsIElGIHRoZSBzZWNvbmRhcnkgaGVhZGVyIGlzIGluIHVzZVxuXG4gIC5oZWFkZXItLXNlY29uZGFyeS5hY3RpdmUgKyAqIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRtb2JpbGVOYXZIZ3Q7XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAkZGVza3RvcE5hdkhndDtcbiAgICB9XG4gIH1cblxuICAvLyBBbnkgaW1tZWRpYXRlIHNpYmxpbmcgb2YgdGhlIHNlY29uZGFyeSBoZWFkZXIsIElGIHRoZSBzZWNvbmRhcnkgaGVhZGVyIGlzIGluIHVzZSBhbmQgY29udGFpbnMgY29uZGVuc2VkIGdsb2JhbCBuYXZcblxuICAuaGVhZGVyLS1zZWNvbmRhcnkuYWN0aXZlLS13R2xvYmFsICsgKiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBtYXJnaW4tdG9wOiAkbW9iaWxlTmF2SGd0ICsgJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRtaWNyb3NpdGVEZXNrdG9wTmF2SGd0ICsgJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyICsgKixcbiAgLmhlYWRlciArIC5oZWFkZXItLXNlY29uZGFyeSArICoge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgbWFyZ2luLXRvcDogJGRlc2t0b3BOYXZIZ3Q7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ICsgKiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBtYXJnaW4tdG9wOiAkZGVza3RvcE5hdkhndDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cbiAgXG4gIC8vUmVtb3ZlZCB6LWluZGV4IGJlY2F1c2UgaXQgYWZmZWN0cyB0aGUgUlNTIEZlZWQgbW9kYWxcbiAgLmhlYWRlci5oZWFkZXItLXRyYW5zcGFyZW50ICsgLmhlYWRlci0tc2Vjb25kYXJ5LmhlYWRlci0tdHJhbnNwYXJlbnQgKyAqIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgLy96LWluZGV4OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItLXNlY29uZGFyeS5oZWFkZXItLXRyYW5zcGFyZW50IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLS1zZWNvbmRhcnkuaGVhZGVyLS10cmFuc3BhcmVudCArICoge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci0tc2Vjb25kYXJ5LmhlYWRlci0tdHJhbnNwYXJlbnQuYWN0aXZlLnBsdXNHbG9iYWwgKyAqLCAuaGVhZGVyLS1zZWNvbmRhcnkuaGVhZGVyLS10cmFuc3BhcmVudC5hY3RpdmUtLXdHbG9iYWwgKyAqIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAkbWljcm9zaXRlQ29sbGFwc2VkR2xvYmFsTmF2O1xuICAgIH1cbiAgfVxuXG4gIC5hdHQtYWJvdXQtaGVhZGVyX193cmFwIHtcbiAgICB6LWluZGV4OiAxMDtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCg0NTBtcyk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBoZWlnaHQ6ICRkZXNrdG9wTmF2SGd0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgICAjYXR0LWFib3V0LWhlYWRlci5oZWFkZXItLWZpeGVkICYge1xuICAgICAgICBoZWlnaHQ6ICRtb2JpbGVOYXZIZ3Q7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnBsdXNNaWNyb3NpdGV7XG4gICAgaGVpZ2h0OjUwcHggIWltcG9ydGFudDtcbiAgfVxuXG5cbiAgLmhlYWRlci0tc2Vjb25kYXJ5ID4gKiB7XG4gICAgei1pbmRleDogMTA7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb25BbGwoNDUwbXMpO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgLy8gaGVpZ2h0OiAkZGVza3RvcE5hdkhndDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHRvcDogMDtcblxuICAgICAgLy8gI2F0dC1hYm91dC1oZWFkZXIuaGVhZGVyLS1maXhlZCAmIHtcbiAgICAgIC8vICAgaGVpZ2h0OiAkbW9iaWxlTmF2SGd0O1xuICAgICAgLy8gfVxuICAgIH1cbiAgfVxuXG4gICNhdHQtYWJvdXQtaGVhZGVyIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiA5OTk5OTk5OTk7XG4gICAgfVxuICB9XG5cbiAgI2F0dC1taWNyb3NpdGUtaGVhZGVyIHtcbiAgICB6LWluZGV4OiA1O1xuXG4gICAgJiAuY29tcG9uZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJiAubWljcm9zaXRlLW5hdiB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uQWxsKDQ1MG1zKTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtKSB7XG4gICAgICAgIGhlaWdodDogJGRlc2t0b3BOYXZIZ3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5oZWFkZXItLWZpeGVkIC5taWNyb3NpdGUtbmF2IHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbWVkaXVtKSB7XG4gICAgICAgIGhlaWdodDogJG1vYmlsZU5hdkhndDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5taWNyb3NpdGUtbmF2Lm1pY3Jvc2l0ZS1uYXYtLXBsdXNHbG9iYWwge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcbiAgICAgICAgaGVpZ2h0OiAkbWljcm9zaXRlRGVza3RvcE5hdkhndDtcbiAgICAgIH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICAgIGhlaWdodDogJG1pY3Jvc2l0ZURlc2t0b3BOYXZIZ3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5oZWFkZXItLWZpeGVkIC5taWNyb3NpdGUtbmF2Lm1pY3Jvc2l0ZS1uYXYtLXBsdXNHbG9iYWwge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcbiAgICAgICAgaGVpZ2h0OiAkbWljcm9zaXRlTW9iaWxlTmF2SGd0O1xuICAgICAgfVxuICAgICBcbiAgICB9XG4gIH1cblxuICAvKiBBdXRob3IgSW5zdGFuY2UgRGlzcGxheSBGaXhlcyAqL1xuXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LWFib3V0LWhlYWRlciB7XG4gICAgbWluLWhlaWdodDogJG1vYmlsZU5hdkhndDtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIG1pbi1oZWlnaHQ6ICRkZXNrdG9wTmF2SGd0O1xuICAgIH1cbiAgfVxuXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LWFib3V0LWhlYWRlciArICosXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LWFib3V0LWhlYWRlciArIC5oZWFkZXItLXNlY29uZGFyeSArICosXG4gIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLy8gLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtYWJvdXQtaGVhZGVyLmhlYWRlci0tdHJhbnNwYXJlbnQgKyAqLFxuICAvLyAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1hYm91dC1oZWFkZXIuaGVhZGVyLS10cmFuc3BhcmVudCArIC5oZWFkZXItLXNlY29uZGFyeSArICosXG4gIC8vIC5hZW0tQXV0aG9yTGF5ZXItRWRpdCAjYXR0LW1pY3Jvc2l0ZS1oZWFkZXIuaGVhZGVyLS10cmFuc3BhcmVudCArICoge1xuICAvLyAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAvLyB9XG5cbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtbWljcm9zaXRlLWhlYWRlci5hY3RpdmUgKyAqLFxuICAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1taWNyb3NpdGUtaGVhZGVyLmFjdGl2ZS0td0dsb2JhbCArICoge1xuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICB9XG5cbiAgLmFlbS1BdXRob3JMYXllci1FZGl0ICNhdHQtbWljcm9zaXRlLWhlYWRlci5hY3RpdmUgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAxMzBweDtcbiAgfVxuICAuYWVtLUF1dGhvckxheWVyLUVkaXQgI2F0dC1taWNyb3NpdGUtaGVhZGVyLmFjdGl2ZS0td0dsb2JhbCArICoge1xuICAgIG1hcmdpbi10b3A6IDE4MHB4O1xuICB9XG4iLCIvKj09PT09PVxuICBGT09URVJcbiAgPT09PT09Ki9cblxuICAjYXR0LWFib3V0LWZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZ1bmN0aW9uYWxCbGFjaztcbiAgfVxuXG4gICNhdHQtYWJvdXQtZm9vdGVyIC5mb290ZXJfX3dyYXAge1xuICAgIGZvbnQtZmFtaWx5OiBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1heC13aWR0aDogJG1heENvbnRlbnRXaWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAkYWlyLS14U21hbGw7XG4gICAgY29sb3I6ICRtZWRHcmF5O1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkgYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UgLSAxKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXItLXNtYWxsO1xuICAgICAgcGFkZGluZy1yaWdodDogJGd1dHRlci0tc21hbGw7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgI2F0dC1hYm91dC1mb290ZXIgLmZvb3Rlcl9fbWVudSB7XG4gICAgbWFyZ2luOiAxMHB4IDAgMjBweDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2F0dC1hYm91dC1mb290ZXIgLmZvb3Rlcl9fY29weXJpZ2h0IHtcbiAgICBtYXJnaW46IDIwcHggMDtcblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG4iLCIvKj09PVxuICBOQVZcbiAgPT09Ki9cblxuICAvKiBOYXYtc3BlY2lmaWMgc2V0dGluZ3MgKi9cblxuICAkYnVyZ2VyOiAyNHB4O1xuICAkYnVyZ2VyQmFyOiAkYnVyZ2VyIC8gODtcblxuICAkbW9iaWxlTG9nbzogMzhweDtcbiAgJGRlc2t0b3BMb2dvOiAzOHB4O1xuXG4gIC8qIEhlbHBlciBtaXhpbnMgKi9cblxuICBAbWl4aW4gbmF2TG9nbygkc2l6ZSl7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gIEBtaXhpbiBuYXZBbmNob3Ige1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJysnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICB0b3A6IDEwJTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBmb250LWZhbWlseTogJGFsZWNrO1xuICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICBAbWl4aW4gbmF2QW5jaG9yLWV4cGFuZGVkIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICB0b3A6IDE5cHg7XG4gICAgICBsZWZ0OiAxNHB4O1xuICAgIH1cbiAgfVxuXG4gIEBtaXhpbiBhY3RpdmVJdGVtIHtcbiAgICAmID4gLm5hdl9fbWVudS1pdGVtIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItLWN0YTtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQG1peGluIGFjdGl2ZUl0ZW0tZGFya2VuZWQge1xuICAgICYgPiAubmF2X19tZW51LWl0ZW0ge1xuICAgICAgdGV4dC1zaGFkb3c6IDBweCAwcHggMzBweCByZ2JhKDAsIDAsIDAsIC41KTtcbiAgICB9XG4gIH1cblxuLyo9PT09PT09PT09PT09PT09PT09PT0qL1xuXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXYge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIG1heC13aWR0aDogJG1heENvbnRlbnRXaWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG4gIH1cbiAgI2F0dC1hYm91dC1oZWFkZXIgLnBsdXNNaWNyb3NpdGUgLm5hdl9fdXRpbHMge1xuICAgIGhlaWdodDogJG1pY3Jvc2l0ZUNvbGxhcHNlZEdsb2JhbE5hdjtcbiAgfVxuXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX3V0aWxzIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwICRhaXItLXhTbWFsbDtcbiAgICBoZWlnaHQ6ICRtb2JpbGVOYXZIZ3Q7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIHBhZGRpbmc6IDAgJGd1dHRlci0tc21hbGw7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAxNSU7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS14TGFyZ2UpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLyogTmF2IExvZ28gKi9cblxuICAubmF2X19sb2dvIHtcbiAgICBAaW5jbHVkZSBjZW50ZXJWZXJ0aWNhbGx5O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLmxvZ29fX2ljb24ge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCgzMDBtcyk7XG4gICAgICBAaW5jbHVkZSBuYXZMb2dvKCRtb2JpbGVMb2dvKTtcbiAgICAgIG1pbi13aWR0aDogOTVweDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgLyogTk9URTogTG9nbyBjb2xvciBjYW4gdmFyeSBiYXNlZCBvbiB0aGUgdGhlbWUuIERlZmF1bHQgdHJlYXRtZW50IGlzIHNpbHZlci4gKi9cblxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbG9nb19hdHQtd2hpdGUtdGV4dC5wbmcnKTtcblxuICAgICAgLy8gQGVhY2ggJHRoZW1lLCAkY29sb3IgaW4gJHRoZW1lQ29sb3JzIHtcbiAgICAgIC8vICAgJGNvbG9yTmFtZTogbnRoKCRjb2xvciwgMSk7XG4gICAgICAvL1xuICAgICAgLy8gICAudGhlbWUtLSN7JHRoZW1lfSAmIHtcbiAgICAgIC8vICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9sb2dvX2F0dC0jeyRjb2xvck5hbWV9LnBuZycpO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgbmF2TG9nbygkZGVza3RvcExvZ28pO1xuICAgICAgICBtaW4td2lkdGg6IDk1cHg7XG5cbiAgICAgICAgLmhlYWRlci0tZml4ZWQgJiB7XG4gICAgICAgICAgQGluY2x1ZGUgbmF2TG9nbygkbW9iaWxlTG9nbyk7XG4gICAgICAgICAgbWluLXdpZHRoOiA5NXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogSGFtYnVyZ2VyIFRvZ2dsZSAqL1xuXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX3RvZ2dsZSxcbiAgLm1pY3Jvc2l0ZS1uYXYtLXBsdXNHbG9iYWwgLm5hdl9fdG9nZ2xlIHtcbiAgICBoZWlnaHQ6ICRidXJnZXI7XG4gICAgd2lkdGg6ICRidXJnZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICNhdHQtYWJvdXQtaGVhZGVyIC5uYXZfX3RvZ2dsZSAuYmFyLFxuICAubWljcm9zaXRlLW5hdi0tcGx1c0dsb2JhbCAubmF2X190b2dnbGUgLmJhciB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbkFsbCgzMDBtcyk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJGJ1cmdlckJhcjtcbiAgICBtYXJnaW4tYm90dG9tOiAkYnVyZ2VyQmFyICsgMTtcbiAgfVxuXG4gIC5uYXZfX3RvZ2dsZS0tb3BlbiB7XG4gICAgQGluY2x1ZGUgY2VudGVyVmVydGljYWxseTtcbiAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAubmF2LS1vcGVuICYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubmF2X190b2dnbGUtLWNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLm5hdi0tb3BlbiAmIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAyMnB4O1xuICAgICAgLy8gbGVmdDogLTQwcHg7XG4gICAgICByaWdodDogMjBweDtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIC5uYXYtLW9wZW4gJiAuYmFyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICB0b3A6IDhweDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgIH1cblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjYXR0LWFib3V0LWhlYWRlciAubmF2X191dGlscyxcbiAgI2F0dC1hYm91dC1oZWFkZXIgLm5hdl9fbWVudS0tcHJpbWFyeSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLyogTmF2IE1lbnVzICovXG5cbiAgLm5hdl9fbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyLS1zbWFsbDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWxhcmdlKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyLS1zbWFsbDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICYuZXhwYW5kZWQgPiAubmF2X19tZW51LXBhcmVudCB7XG4gICAgICAgIEBpbmNsdWRlIG5hdkFuY2hvci1leHBhbmRlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2X19tZW51LWl0ZW0ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC1mYW1pbHk6ICRhbGVjaztcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBmb250LXNpemU6IDE2cHg7IC8vIGRvbid0IHVzZSByZW1zIGhlcmVcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDsgLy8gZG9uJ3QgdXNlIHJlbXMgaGVyZVxuICAgICAgfVxuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDM2MHB4KSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4OyAvLyBkb24ndCB1c2UgcmVtcyBoZXJlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2X19tZW51LXBhcmVudCB7XG4gICAgICBAaW5jbHVkZSBuYXZBbmNob3I7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgIGhlaWdodDogMzdweDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBQcmltYXJ5IE1lbnVzICovXG5cbiAgLm5hdl9fbWVudS0tcHJpbWFyeSB7XG4gICAgd2lkdGg6ICRuYXZXaWR0aE1vYmlsZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1zbWFsbCkge1xuICAgICAgd2lkdGg6ICRuYXZXaWR0aFRhYmxldDtcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2U7XG4gICAgICBtYXgtd2lkdGg6IDgwJTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwYWRkaW5nLXRvcDogJG1vYmlsZU5hdkhndDtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGRya0dyYXk7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzNjBweCkge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB3aWR0aDogODUlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICAmID4gbGkge1xuXG4gICAgICAvKiBOT1RFOiBBcHBseSBoaWdobGlnaHRpbmcgdG8gbmF2IGl0ZW1zIGJhc2VkIG9uIHRoZSBib2R5IGNsYXNzIG5hbWUuICovXG5cbiAgICAgIEBlYWNoICRib2R5Q2xhc3MsICRuYXZJdGVtQ2xhc3MgaW4gJG5hdkhpZ2hsaWdodHMge1xuICAgICAgICAuI3skYm9keUNsYXNzfTpub3QoW2NsYXNzKj1cIm5hdi1cIl0pICYuI3skbmF2SXRlbUNsYXNzfSxcbiAgICAgICAgLiN7JG5hdkl0ZW1DbGFzc30gJi4jeyRuYXZJdGVtQ2xhc3N9IHtcbiAgICAgICAgICBAaW5jbHVkZSBhY3RpdmVJdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLiN7JGJvZHlDbGFzc306bm90KFtjbGFzcyo9XCJuYXYtXCJdKSAuaGVhZGVyLS10cmFuc3BhcmVudCAmLiN7JG5hdkl0ZW1DbGFzc30sXG4gICAgICAgIC4jeyRuYXZJdGVtQ2xhc3N9IC5oZWFkZXItLXRyYW5zcGFyZW50ICYuI3skbmF2SXRlbUNsYXNzfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYWN0aXZlSXRlbS1kYXJrZW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIGFjdGl2ZUl0ZW07XG4gICAgICB9XG5cbiAgICAgIC5oZWFkZXItLXRyYW5zcGFyZW50ICYuYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgYWN0aXZlSXRlbS1kYXJrZW5lZDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2IC0gMSkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGRya0dyYXk7XG5cbiAgICAgICAgJi5leHBhbmRlZCA+IC5uYXZfX21lbnUtaXRlbSB7XG5cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFweCwgLTJweCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yLS1jdGE7XG4gICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAyMHB4O1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtbGFzdC1jaGlsZCgtbisyKSA+IC5uYXZfX21lbnUtLW5lc3RlZCB7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyID4gLm5hdl9fbWVudS1pdGVtLFxuICAgICAgICAmLmV4cGFuZGVkID4gLm5hdl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB4LCAtMnB4KSByb3RhdGUoNDVkZWcpO1xuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA4NTBweCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzVweDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1tZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY1cHg7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDgwcHg7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0teExhcmdlKSB7XG4gICAgICAgICYubGFzdC1pdGVtIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXh4TGFyZ2UpIHtcbiAgICAgICAgJjpudGgtbGFzdC1jaGlsZCgtbisyKSA+IC5uYXZfX21lbnUtLW5lc3RlZCB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQgPiAubmF2X19tZW51LS1uZXN0ZWQge1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYgPiAubmF2X19tZW51LWl0ZW0ge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYgLSAxKSB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KTtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDAgMTBweCAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICAgQGluY2x1ZGUgaGlnaGxpZ2h0LWJhcigkaGlnaGxpZ2h0QmFyKTtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgJjpmb2N1czpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJiA+IC5uYXZfX21lbnUtcGFyZW50IHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZXhwYW5kZWQgPiAubmF2X19tZW51LXBhcmVudDphZnRlciB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuLy9FeHBhbmRlZCBnbG9iYWwgbmF2aWdhdGlvbiB3aGVuIG1pY3Jvc2l0ZSBuYXZpZ2F0aW9uIGlzIHByZXNlbnRcbi5taWNyb3NpdGUtbmF2LS1wbHVzR2xvYmFse1xuICAubmF2X19tZW51LS1wcmltYXJ5e1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgd2lkdGg6IDg1JTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB0b3A6NDUlO1xuICAgIH0gIFxuICB9XG4gIC5uYXZfX2xvZ28ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMCUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAlKTtcbiAgICB0b3A6IDUwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbn1cbn1cblxuICAvKiBTdWJuYXZzICovXG5cbiAgLm5hdl9fbWVudS0tc2Vjb25kYXJ5LFxuICAubmF2X19tZW51LS10ZXJ0aWFyeSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAyNjBweDtcbiAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcblxuICAgICAgLm5hdl9fbWVudS0tbmVzdGVkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tbGFyZ2UpIHtcbiAgICAgIHdpZHRoOiAzMDBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLXhMYXJnZSkge1xuICAgICAgd2lkdGg6IDM0MHB4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdiAtIDEpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkcmtHcmF5O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRya0dyYXk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpob3ZlciAubmF2X19tZW51LXBhcmVudCB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGRya0dyYXksIDUlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXZfX21lbnUtaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xuICAgICAgcGFkZGluZzogMTBweCAwIDEwcHggMDtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRya0dyYXk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogU2Vjb25kYXJ5IFN1Ym5hdnMgKi9cblxuICAubmF2X19tZW51LS1zZWNvbmRhcnkge1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2IC0gMSkge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuXG4gICAgICAvKiBXaGVuIGluIG1vYmlsZSwgcmVseSBvbiB0aGUgLmV4cGFuZGVkIGNsYXNzIG9mIHRoZSBwYXJlbnQgZWxlbWVudCB0byBzaG93IHNlY29uZGFyeSBuYXZzICovXG4gICAgICAuZXhwYW5kZWQgPiAubmF2X19tZW51LXBhcmVudCArICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBXaGVuIGluIGRlc2t0b3AsIHJlbHkgb24gdGhlIGhvdmVyIG9yIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHBhcmVudCBlbGVtZW50IHRvIHNob3cgc2Vjb25kYXJ5IG5hdnMgKi9cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYpIHtcbiAgICAgIC5uYXZfX21lbnUtLXByaW1hcnkgPiBsaTpob3ZlciA+IC5uYXZfX21lbnUtcGFyZW50ICsgJixcbiAgICAgIC5uYXZfX21lbnUtLXByaW1hcnkgPiBsaS5leHBhbmRlZCA+IC5uYXZfX21lbnUtcGFyZW50ICsgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFRlcnRpYXJ5IFN1Ym5hdnMgKi9cblxuICAubmF2X19tZW51LS10ZXJ0aWFyeSB7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtLWRlc2t0b3BOYXYgLSAxKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LS1kZXNrdG9wTmF2KSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgfVxuXG4gICAgbGkgLm5hdl9fbWVudS1pdGVtIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC0tZGVza3RvcE5hdikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQWx3YXlzIHJlbHkgb24gdGhlIC5leHBhbmRlZCBjbGFzcyBvZiB0aGUgcGFyZW50IGVsZW1lbnQgdG8gc2hvdyB0ZXJ0aWFyeSBuYXZzICovXG4gICAgLmV4cGFuZGVkID4gLm5hdl9fbWVudS1wYXJlbnQgKyAmIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuIl19 */
