@charset "UTF-8";
@font-face {
  font-family: "proxima nova";
  src: url("fonts/proximanova-regular-webfont.eot");
  src: url("fonts/proximanova-regular-webfont.eot?#iefix") format("embedded-opentype"), url("fonts/proximanova-regular-webfont.woff") format("woff"), url("fonts/proximanova-regular-webfont.ttf") format("truetype"), url("fonts/proximanova-regular-webfont.svg#proxima_nova_rgregular") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "proxima nova";
  src: url("fonts/proximanova-bold-webfont.eot");
  src: url("fonts/proximanova-bold-webfont.eot?#iefix") format("embedded-opentype"), url("fonts/proximanova-bold-webfont.woff") format("woff"), url("fonts/proximanova-bold-webfont.ttf") format("truetype"), url("fonts/proximanova-bold-webfont.svg#proxima_nova_rgbold") format("svg");
  font-weight: bold;
  font-style: normal; }

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

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

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

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

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

@-webkit-keyframes flip-down {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); } }

@keyframes flip-down {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); } }

@-webkit-keyframes flip-up {
  0% {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes flip-up {
  0% {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@-webkit-keyframes turn-in {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-180deg);
            transform: rotate(-180deg); } }

@keyframes turn-in {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-180deg);
            transform: rotate(-180deg); } }

@-webkit-keyframes turn-out {
  0% {
    -webkit-transform: rotate(-180deg);
            transform: rotate(-180deg); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes turn-out {
  0% {
    -webkit-transform: rotate(-180deg);
            transform: rotate(-180deg); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@-webkit-keyframes show-down {
  0% {
    max-height: 0; }
  100% {
    max-height: 1000px; } }

@keyframes show-down {
  0% {
    max-height: 0; }
  100% {
    max-height: 1000px; } }

@-webkit-keyframes hide-up {
  0% {
    max-height: 1000px; }
  100% {
    max-height: 0; } }

@keyframes hide-up {
  0% {
    max-height: 1000px; }
  100% {
    max-height: 0; } }

* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

html,
body {
  height: 100%;
  width: 100%; }

body {
  font-family: "proxima nova", "Helvetica", "Sans-Serif";
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  line-height: 1.618;
  overflow-x: hidden; }

h1 {
  font-size: 36px;
  line-height: 1.25; }

h2 {
  font-size: 30px;
  font-weight: normal;
  margin-bottom: 9px; }

h3 {
  font-size: 24px;
  font-weight: normal; }

h4 {
  font-size: 18px;
  font-weight: normal; }

a {
  color: #28ade3;
  text-decoration: none; }
  a:hover {
    color: #136d92; }

strong {
  color: #000;
  font-weight: bold; }

.visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
Layout Rules

Styleguide 2.0
*/
.l-wrappermobile {
  -webkit-overflow-scrolling: touch;
  overflow-x: hidden;
  overflow-y: auto;
  position: absolute;
  width: 100%; }

.l-course {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }
  .l-course .requirements-list {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 260px;
            flex: 0 0 260px; }
  .l-course .content {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }

/*
Chapters

Layout wrapper for chapter tiles

Markup:
<ul class="l-chapters">
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
</ul>

Styleguide 2.5
*/
.l-chapters {
  margin-top: -9px;
  padding: 0 9px; }
  .l-chapters li {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 9px; }
  @media (min-width: 400px) {
    .l-chapters {
      -webkit-box-align: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
      .l-chapters li {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%; } }
  @media (min-width: 960px) {
    .l-chapters li {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33%;
              flex: 0 0 33.33%; } }

/*
Container

Markup:
<div class="l-container">
</div>

Styleguide 2.7
*/
.l-container {
  padding: 18px; }

/*
Container Horizontal

Default - Sets a max width
.l-containerhorizontal-small - Smaller max width
.l-containerhorizontal-mediuam - Mediaum max width

Markup:
<div class="l-containerhorizontal {$modifiers}">Content</div>

Styleguide 2.1
*/
.l-containerhorizontal {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0 auto;
  max-width: 1200px;
  width: 100%; }
  @media (max-width: 959px) {
    .l-containerhorizontal.l-containerhorizontal-is-minpad {
      padding-left: 18px;
      padding-right: 18px; } }

.l-containerhorizontal-small {
  max-width: 100%; }
  @media (min-width: 960px) {
    .l-containerhorizontal-small {
      max-width: 540px; } }

.l-containerhorizontal-medium {
  max-width: 100%; }
  @media (min-width: 960px) {
    .l-containerhorizontal-medium {
      max-width: 700px; } }

/*
Container Vertical

Markup:
<div class="l-containervertical">
Content
</div>

Styleguide 2.6
*/
.l-containervertical {
  padding-bottom: 18px;
  padding-top: 18px; }
  @media (min-width: 960px) {
    .l-containervertical {
      padding-bottom: 36px;
      padding-top: 36px; } }

@media (min-width: 960px) {
  .l-containervertical-small {
    padding-bottom: 18px;
    padding-top: 18px; } }

@media (min-width: 768px) {
  .l-menu {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
    .l-menu > * {
      margin-left: 18px; } }

.l-menu-secondary {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .l-menu-secondary > * {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
  @media (min-width: 768px) {
    .l-menu-secondary > * {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto; } }

/*
Spacing

Sets top and bottom margins

Markup:
<div class="l-spacing">Content</div>

Styleguide 2.3
*/
.l-spacing {
  margin-bottom: 18px;
  margin-top: 18px; }

/*
Children Vertical

Sets bottom margins for each child.

Default - Each child except the last
.l-childrenvertical-all - Every child gets bottom margin

Markup:
<div class="l-childrenvertical">
  <p>Content</p>
  <p>Content</p>
  <p>Content</p>
</div>

Styleguide 2.4
*/
.l-childrenvertical > *:not(:last-child) {
  margin-bottom: 36px; }

.l-childrenvertical .l-childrenvertical-x-exclude {
  margin-bottom: 0; }

.l-verticalchilren-all > * {
  margin-bottom: 36px; }

.l-childrenvertical-small > *:not(:last-child) {
  margin-bottom: 18px; }

/*
Wrap

Auto generates left and right padding based on viewport

Default - The default use case
.l-wrap-spanmobile - No minimum padding for mobile

Markup:
<div class="l-wrap {$modifiers}">Content</div>

Styleguide 2.2
*/
.l-wrap {
  padding-left: 18px;
  padding-right: 18px; }
  @media (min-width: 960px) {
    .l-wrap {
      padding-left: calc(50% - 850px/2);
      padding-right: calc(50% - 850px/2); } }

@media (max-width: 649px) {
  .l-wrap-spanmobile {
    padding: 0; } }

/*
glossary

Layout wrapper glossary

Markup:
<div class="l-glossary">
  <div>glossary terms<div>
  <div>glossary definitions<div>
</div>

Styleguide 2.8
*/
@media (min-width: 650px) {
  .l-glossary {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; } }

.clearfix:after {
  clear: both;
  content: " ";
  display: block;
  font-size: 0;
  height: 0;
  visibility: hidden; }

.clearfix {
  display: inline-block; }

/* start commented backslash hack \*/
* html .clearfix {
  height: 1%; }

.clearfix {
  display: block; }

/* close commented backslash hack */
/*
Module Rules (App)

Styleguide 3.0
*/
/*
Bordered

Markup:
<div class="bordered">
Bordered
</div>

Styleguide 3.34
*/
.bordered {
  border: 1px solid #ccc; }

/*
Button

Default - Standard button styling
.button-footer - Buttons used in the footer element
.button-height-small - shorter button.
.button-marketing - For use on light backgrounds with marketing content
.button-marketing-light - For use on dark backgrounds with marketing content
.button-menu - When a button appears in the navigation
.button-signup - Rounded corners for auth views
.button-white - For use on a dark background.
.button-width-full - stretches the length of the available space.


Markup:
<button class="button {$modifiers}">Button</button>

Styleguide 3.1
*/
.button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: #28ade3;
  border: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "proxima nova", "Helvetica", "Sans-Serif";
  font-size: 14px;
  font-weight: normal;
  padding: 18px 36px;
  text-align: center; }
  .button:hover {
    background: #198fbf;
    color: #fff; }
  .button.disabled {
    background: #696969; }

.button-white {
  background: #fff;
  color: #28ade3; }

.button-footer {
  background: #F2F2F2;
  color: #28ade3;
  text-transform: none; }
  @media (min-width: 950px) {
    .button-footer {
      border-radius: 3px;
      font-weight: bold;
      padding-bottom: 2.7px;
      padding-top: 2.7px; } }
  .button-footer:hover {
    color: #155a76; }

.button-menu {
  background: #fff;
  border-radius: 10px;
  -webkit-box-shadow: #28ade3 0 0 0 1px inset;
          box-shadow: #28ade3 0 0 0 1px inset;
  color: #28ade3;
  text-transform: none; }

.button-marketing {
  border: 1px solid #fff;
  border-radius: 5px;
  color: #fff;
  text-transform: none; }
  .button-marketing:hover {
    background: #fff;
    color: #28ade3; }

.button-marketing-light {
  background: #fff;
  border: 1px solid #28ade3;
  border-radius: 5px;
  color: #28ade3;
  font-size: 18px;
  text-transform: none; }
  .button-marketing-light:hover {
    background: #28ade3;
    border-color: #28ade3;
    color: #fff; }

.button-ppc {
  border-radius: 5px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 18px;
  font-weight: bold;
  padding: 13.5px;
  width: 100%; }
  @media (min-width: 650px) {
    .button-ppc {
      font-size: 24px;
      padding: 18px;
      width: 337px; } }

.button-outline {
  background-color: transparent;
  border: 1px solid #fff;
  font-size: 18px;
  padding: 18px;
  width: auto; }
  .button-outline:hover {
    background-color: transparent; }

.button-signup {
  padding: 18px 54px;
  text-transform: none; }

.button-width-full {
  width: 100%; }

.button-height-small {
  padding: 9px 18px; }

/*
Centered

centers text.

Markup:
<div class="centered">I am centered</div>

Styleguide 3.46
*/
.centered {
  text-align: center; }

/*
Chapter

Default - Standard view
.disabled - No interaction
.locked - Locked out (some requirement not met)
.passed - Passed and complete

Markup:
<article class="chapter {$modifiers}">
    <header class="vid_header">
         <h2><a href="#">Title</a></h2>
    </header>
    <p class="status passed">Status</p>
    <a class="chapter_view chapter-image image" href="#" style="background-image: url('/images/tile-notifications.png');"></a>
</article>

Styleguide 3.24
*/
.chapter {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  background: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  min-height: 286px;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  z-index: 20; }
  .chapter:hover {
    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); }
  .chapter header, .chapter .skills {
    padding: 9px; }
  .chapter h1 {
    font-size: 12px;
    line-height: 1em; }
  .chapter h2 {
    font-size: 14px;
    font-weight: bold;
    line-height: 1.2em;
    margin-bottom: 0; }
  .chapter p {
    font-size: 12px;
    line-height: 1.2em; }
  .chapter header {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .chapter .status {
    background: #9e9e9e;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    padding: 4.5px 9px;
    z-index: 20; }
    .chapter .status span {
      -webkit-box-ordinal-group: 3;
          -ms-flex-order: 2;
              order: 2; }
    .chapter .status.passed {
      background: #9aba38; }
    .chapter .status.inprogress {
      background: #28ade3; }
    .chapter .status.locked {
      background: #000; }
    .chapter .status.retake {
      background: #e75345; }
  .chapter .image {
    background-position: center center;
    background-size: cover;
    display: block;
    -webkit-filter: grayscale(100%);
            filter: grayscale(100%);
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    height: 0;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    height: 70%;
    width: 100%;
    z-index: 10; }
  .chapter .skills {
    background-color: #fff;
    border-top: 1px solid #F2F2F2;
    font-size: 12px;
    line-height: 1.2em;
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
    z-index: 20; }
    .chapter .skills a {
      font-weight: normal; }
  .chapter.disabled {
    opacity: .5;
    pointer-events: none; }
  .chapter.locked {
    pointer-events: none; }
  .chapter.passed .image {
    -webkit-filter: grayscale(0%);
            filter: grayscale(0%); }

/*
Choices

Doherty Videos

Markup:
<section class="choices" id="options">
  <h2>Here are four types of attitudes that we have found in our research. Please read all four and then select which one best fits you at this time.</h2>
  <ul class="choice-list">
    <li class="choice-wrapper">
      <div class="choice">
        <p>I'm done with this relationship; it's too late now even if my partner were to make major changes.</p>
        <a class="button" data-option="done" data-type="option">Watch this Video</a>
      </div>
    </li>
    <li class="choice-wrapper">
      <div class="choice">
        <p>I have mixed feelings about the breakup; sometimes I think it's a good idea and sometimes I'm not sure.</p>
        <a class="button" data-option="mixed" data-type="option">Watch this Video</a>
      </div>
    </li>
    <li class="choice-wrapper">
      <div class="choice">
        <p>I would consider reconciling if my partner got serious about making major changes.</p>
        <a class="button" data-option="majorchanges" data-type="option">Watch this Video</a>
      </div>
    </li>
    <li class="choice-wrapper">
      <div class="choice">
        <p>I don't want this breakup, and I would work hard to get us back together.</p>
        <a class="button" data-option="dontwant" data-type="option">Watch this Video</a>
      </div>
    </li>
  </ul>
</section>

Styleguide 3.5
*/
.choices {
  padding: 0 9px; }
  .choices h2 {
    font-size: 14px;
    line-height: 1.5em;
    margin-bottom: 18px;
    padding: 0 9px; }
    @media (min-width: 960px) {
      .choices h2 {
        color: #28ade3;
        font-size: 30px;
        line-height: 1.2em; } }

.choice-wrapper {
  padding: 0.05px; }

.choice {
  background: #F2F2F2;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 18px;
  width: 100%;
  display: block;
  margin: 18px 0; }
  .choice input {
    vertical-align: middle; }

.choices-advance-button {
  text-align: right;
  margin: 18px 0; }

/*
Credits

Markup:
<section class="credits text-container l-containerhorizontal">
  <article>
    <h1>Center for Divorce Education</h1>
    <address>
      1005 E. State St., Suite G
      <br>Athens, OH 45701
    </address>
    <address>
      <br>Toll Free: 877-874-1365
    </address>
    <address>
      Web:
      <br><a href="http://www.divorce-education.com" target="_blank">http://www.divorce-education.com</a>
    </address>
  </article>
  <article>
    <h1>Credits</h1>
    <p>
      The videos shown are a revision of an earlier version, which won the Positive Parenting Award from the Children's Rights Council, the Telly Award, and the Model Program Award from the Substance Abuse and Mental Health Services Administration.
    </p>
    <h3>Executive Producer:</h3>
    <p>Donald Gordon, Ph.D.</p>
    <h3>Web Design and Development:</h3>
    <p>Concentric Sky, Eugene, Oregon</p>
    <h3>Video and Audio Development:</h3>
    <ul>
      <li>Sullivan Recording, Medford, Oregon</li>
      <li>MediaBrite</li>
    </ul>
    <h3>Author &amp; Exec. Producer:</h3>
    <h4>Donald A. Gordon, Ph.D.</h4>
    <p>Dr. Gordon is a child and family psychologist, a researcher and public speaker, and Emeritus Professor of Psychology from Ohio University</p>
    <p>The Center for Divorce Education would like to thank The Honorable Bruce Peterson (District Court Judge in Minnesota) and Dr. William Doherty (Professor in Dept. of Family Social Sciences, University of Minnesota) for their donation of time and contribution to the Introduction/Orientation section of this class and the section speaking to Alternatives to a Divorce also presented in the CIBO class.</p>
    <p>Copyright © 2007</p>
    <p>All rights reserved. No part of this product may be reproduced in any form, electronic or mechanical, including photography, recording, or any information storage or retrieval system, except as specified by the publisher in legal agreement.</p>
  </article>
</section>

Styleguide 3.6
*/
.credits {
  padding-bottom: 18px;
  padding-top: 18px; }
  @media (min-width: 960px) {
    .credits {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; } }
  @media (min-width: 960px) {
    .credits article {
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1;
      padding: 18px; }
      .credits article:last-of-type {
        border-left: 1px solid #F2F2F2; } }

/*
Data Table

Markup:
<div class="datatable">
  <table>
    <thead>
      <tr>
        <th scope="row">Case Number</th>
        <th scope="row">Cumulative Score</th>
        <th scope="row">Time on Site</th>
        <th scope="row">Skills Practice</th>
        <th scope="row">State/County Requirements</th>
        <th scope="row">Survey</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>None</td>
        <td>5</td>
        <td>12hr 12min</td>
        <td>Complete</td>
        <td>Incomplete</td>
        <td>Incomplete</td>
      </tr>
    </tbody>
  </table>
</div>

Styleguide 3.25
*/
.datatable {
  margin: 0 18px 18px; }
  .datatable td,
  .datatable th {
    line-height: 1;
    padding-right: 36px;
    text-align: left; }
  .datatable td {
    font-size: 30px;
    padding-top: 9px; }

/*
Dialog

No example available, just placeholder for now.

Styleguide 3.26
*/
.ui-widget-overlay {
  background: rgba(0, 0, 0, 0.35);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute; }

.ui-front {
  z-index: 101; }

.ui-dialog,
#modal {
  border: 10px solid rgba(0, 0, 0, 0.2);
  text-align: center;
  overflow: hidden;
  z-index: 101; }
  .ui-dialog.modal-course,
  #modal.modal-course {
    text-align: left; }
  @media (max-width: 950px) {
    .ui-dialog,
    #modal {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      left: 0px !important;
      position: fixed !important;
      top: 0px !important;
      width: 100% !important; } }
  .ui-dialog .ui-dialog-titlebar,
  .ui-dialog #modal_header,
  #modal .ui-dialog-titlebar,
  #modal #modal_header {
    background: #fff;
    padding: 18px 18px 1px; }
    .ui-dialog .ui-dialog-titlebar button.ui-button,
    .ui-dialog #modal_header button.ui-button,
    #modal .ui-dialog-titlebar button.ui-button,
    #modal #modal_header button.ui-button {
      position: absolute;
      background: none;
      border: none;
      color: #28ade3;
      top: 10px;
      right: 10px;
      cursor: pointer; }
  .ui-dialog.modal-course #modal_header,
  #modal.modal-course #modal_header {
    margin-bottom: -1px;
    font-size: 32px; }
  .ui-dialog:not(.modal-course) .ui-dialog-content,
  .ui-dialog:not(.modal-course) #content,
  #modal:not(.modal-course) .ui-dialog-content,
  #modal:not(.modal-course) #content {
    background: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 18px; }
    @media (max-width: 950px) {
      .ui-dialog:not(.modal-course) .ui-dialog-content,
      .ui-dialog:not(.modal-course) #content,
      #modal:not(.modal-course) .ui-dialog-content,
      #modal:not(.modal-course) #content {
        overflow-y: auto !important; } }
  .ui-dialog.modal-course #content,
  #modal.modal-course #content {
    background: #fff;
    max-height: calc(100vh - 111px);
    overflow: auto;
    padding: 18px; }
  .ui-dialog #modal_header.reference-modal,
  #modal #modal_header.reference-modal {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-bottom: 17px;
    padding-right: 80px; }
  .ui-dialog #close,
  #modal #close {
    position: absolute;
    background: none;
    border: none;
    color: #28ade3;
    top: 10px;
    right: 10px;
    cursor: pointer; }
  .ui-dialog h2,
  #modal h2 {
    line-height: 1.2em; }
  .ui-dialog p,
  #modal p {
    margin-bottom: 18px; }
  .ui-dialog.modal-course p,
  #modal.modal-course p {
    margin: 0; }
  .ui-dialog .button,
  #modal .button {
    margin-bottom: 9px; }
  .ui-dialog .county_name,
  #modal .county_name {
    font-weight: bold; }

#overlay {
  background: rgba(0, 0, 0, 0.65);
  display: none;
  height: 100vh;
  left: 0;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 101; }

#modal {
  display: none;
  left: 50%;
  max-height: 100vh;
  overflow-y: auto;
  position: fixed;
  top: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
          transform: translate3d(-50%, -50%, 0);
  width: 40vw;
  z-index: 101; }
  #modal.modal-course {
    overflow-y: inherit; }
  @media (max-width: 950px) {
    #modal {
      -webkit-transform: none;
              transform: none;
      width: 100vw; } }

/*
Errors Global

Markup:
<div class="errors-global">Please correct the errors below.</div>

Styleguide 3.27
*/
.errors-global {
  background: #f26c4f;
  color: #fff;
  font-size: 14px;
  margin: 0 9px 18px;
  padding: 18px; }
  @media (min-width: 950px) {
    .errors-global {
      margin-left: 0;
      margin-right: 0; } }

/*
Error 404

Markup:
<article class="error404">
  <h1>404 Error</h1>
  <h2>It appears there was a breakdown in communication.</h2>
  <p>Either the URL was mistyped, never existed, or once existed but was mysteriously lost.</p>
  <a class="button" href="">Take me home</a>
  <p>Want to communicate better?<br> <a href="">Check out Skills Practice</a></p>
</article>

Styleguide 3.7
*/
.error404 {
  background: #155a76 url("images/error404.png") center center;
  background-size: cover;
  color: #fff;
  padding: 54px 18px;
  text-align: center;
  text-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px; }
  .error404 h1 {
    line-height: 1; }
  .error404 h2 {
    font-size: 24px;
    line-height: 1.16; }
  .error404 p {
    font-size: 18px;
    line-height: 1.3; }
  .error404 > a {
    font-size: 18px;
    width: 100%; }
  .error404 > * {
    margin-bottom: 9px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .error404 {
      background-image: url("images/error404-2x.png"); } }
  @media (min-width: 650px) {
    .error404 {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      background-image: url("images/error404-desktop.png");
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      min-height: calc(100vh - 80px); }
      .error404 h1 {
        font-size: 64px; }
      .error404 h2 {
        font-size: 30px; }
      .error404 > a {
        text-shadow: none;
        width: auto; }
      .error404 > * {
        margin-bottom: 18px;
        max-width: 440px; } }
  @media (min-width: 650px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 650px) and (min-resolution: 2dppx) {
    .error404 {
      background-image: url("images/error404-desktop-2x.png"); } }

/*
FAQ

Markup:
<article class="faqs">
  <header class="page-title page-title-centered">
    <h1>FAQs</h1>
  </header>
  <ol>
    <li><strong>I can’t see any pictures on the screen, just words. What’s wrong?
    </strong>
    <section><p>You are using an incompatible web browser. Install and use <a href="http://www.google.com/chrome/" target="_blank">Google Chrome</a>.</p></section>
    </li>
    <li>
      <strong>When I log into the program, it keeps telling me to update the Adobe Flash
        Player, but I’ve already done this once. What’s wrong?
      </strong>
      <section><p>You are using an incompatible web browser. Install and use <a href="http://www.google.com/chrome/" target="_blank">Google Chrome</a>.</p></section>
    </li>
  </ol>
</article>

Styleguide 3.8
*/
.faqs {
  background: #fff;
  border: 1px solid #ccc;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  font-size: 18px;
  padding: 0 18px; }
  @media (min-width: 960px) {
    .faqs {
      margin-bottom: 36px;
      margin-top: 36px; } }
  .faqs ol {
    padding: 0 18px; }
  .faqs li {
    font-weight: bold;
    list-style: decimal inside;
    margin-bottom: 18px; }
  .faqs section {
    font-size: 14px;
    font-weight: normal; }

/*
Fee Waiver

Place holder

Markup:
  <ol class="feeWaiver">
    <li>
      <h1>Capture document</h1>
      <div class="feeWaiver-x-contentWrapper">
        <div>
          <h2>Take photo</h2>
          Position mobile device over document, take and save photo to device.
        </div>
        <div class="feeWaiver-x-fontsize-large">OR</div>
        <div>
          <h2>Scan document</h2>
          Scan file and save file to device.
        </div>
      </div>
    </li>
    <li>
      <h1>Move document (optional)</h1>
      <div class="feeWaiver-x-contentWrapper">
        <div>
          <h2>Email file</h2>
          Email photo to yourself and download to device.
        </div>
        <div class="feeWaiver-x-fontsize-large">OR</div>
        <div>
          <h2>Transfer file</h2>
            Upload file to device.
        </div>
      </div>
    </li>
    <li>
      <h1>Upload document</h1>
      <div>Select "Choose File" below and find the document file.</div>
    </li>
  </ol>

Styleguide 3.51
*/
#upload-instructions {
  padding-bottom: 9px; }

.feeWaiver {
  border: solid #979797 1px;
  counter-reset: item;
  padding: 18px;
  position: relative; }
  .feeWaiver h1 {
    display: inline-block;
    font-size: 18px;
    line-height: 22px;
    margin-left: 26px;
    margin-bottom: 9px; }
  .feeWaiver li {
    background: url("images/circle_smallGrey.svg");
    background-repeat: no-repeat;
    font-size: 18px;
    line-height: 22px;
    list-style: none !important; }
    .feeWaiver li::before {
      content: counter(item, decimal);
      counter-increment: item;
      position: absolute;
      left: 23px; }
    .feeWaiver li:not(:last-child) {
      margin-bottom: 18px; }
    .feeWaiver li div {
      font-size: 12px;
      line-height: 14px; }
      .feeWaiver li div:not(.feeWaiver-x-contentWrapper) {
        padding-left: 27px; }
      .feeWaiver li div:not(:last-of-type) {
        padding-bottom: 10px; }
      .feeWaiver li div h2 {
        text-transform: uppercase;
        font-size: 12px;
        line-height: 14px;
        padding: 0;
        margin: 0; }
  .feeWaiver .feeWaiver-x-fontsize-large {
    font-size: 18px;
    line-height: 22px; }
  @media (min-width: 768px) {
    .feeWaiver h1 {
      display: block; }
    .feeWaiver li .feeWaiver-x-contentWrapper {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .feeWaiver li .feeWaiver-x-contentWrapper div {
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 18px;
        max-width: 249px; }
        .feeWaiver li .feeWaiver-x-contentWrapper div:first-child {
          padding-left: 27px; } }

/*
Footer

Markup:
<footer class="footer">
  <div class="l-containerhorizontal">
    <a href="http://www.divorce-education.com/" target="_blank" class="logo"><img src="/images/logo-footer.png" alt="alt=" the="" center="" for="" divorce="" education="" logo""=""></a>
    <section>
      <dl>
        <dt>Toll Free</dt>
        <dd>877-874-1365</dd>
        <dt class="visually-hidden">Email</dt>
        <dd><a href="mailto:staff@divorce-education.com">staff@divorce-education.com</a></dd>
      </dl>
      <nav>
        <ul>
          <li><a href="/" class="button button-footer">Home</a></li>
          <li><a href="/course" class="button button-footer">Course</a></li>
          <li><a href="/reference/credits/" class="button button-footer">Credits</a></li>
          <li><a href="/reference/faq/" class="button button-footer">FAQ</a></li>
        </ul>
      </nav>
    </section>
  </div>
</footer>

Styleguide 3.9
*/
.footer {
  -webkit-box-shadow: 0 -1px 0 0 rgba(27, 35, 39, 0.15);
          box-shadow: 0 -1px 0 0 rgba(27, 35, 39, 0.15);
  padding-bottom: 18px; }
  @media (min-width: 950px) {
    .footer {
      padding-bottom: 18px;
      padding-top: 18px; } }
  @media (min-width: 950px) {
    .footer .l-containerhorizontal {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between; } }
  .footer .logo {
    display: block;
    margin: 18px;
    opacity: .8; }
    @media (min-width: 950px) {
      .footer .logo {
        margin-bottom: 0;
        margin-top: 0;
        opacity: .3; } }
    .footer .logo img {
      display: block;
      max-width: 100%; }
    .footer .logo:hover {
      opacity: 1; }
      @media (min-width: 950px) {
        .footer .logo:hover {
          opacity: .5; } }
  @media (min-width: 950px) {
    .footer section {
      -webkit-box-align: end;
          -ms-flex-align: end;
              align-items: flex-end;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }
  .footer dl {
    color: #ccc;
    margin: 0 18px 9px; }
    @media (min-width: 950px) {
      .footer dl {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        line-height: 1em;
        white-space: nowrap; } }
    .footer dl a {
      font-weight: normal; }
      @media (min-width: 950px) {
        .footer dl a {
          font-weight: bold; } }
  .footer dt {
    float: left;
    margin-right: 4px; }
    @media (min-width: 950px) {
      .footer dt {
        float: none; } }
  .footer dt:after {
    content: ': '; }
  @media (min-width: 950px) {
    .footer dd {
      -webkit-box-shadow: #f6f3ee -2px 0 0 0 inset;
              box-shadow: #f6f3ee -2px 0 0 0 inset;
      margin-right: 4px;
      padding-right: 6px; } }
  .footer dd:last-of-type {
    -webkit-box-shadow: none;
            box-shadow: none;
    margin-right: 0;
    padding-right: 0; }
  @media (min-width: 950px) {
    .footer ul {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      margin-right: 18px; }
      .footer ul li {
        margin-left: 9px; } }
  .footer .button {
    margin-bottom: 5px;
    width: 100%; }
    @media (min-width: 950px) {
      .footer .button {
        margin-bottom: 0; } }
  .footer.has-requirements {
    padding-bottom: 72px; }

/*
Fork

Markup:
<ul class="fork">
  <li>
    <h1 class="fork-x-complete">You've Watched This</h1>
    <div>
      <img srcset="http://placehold.it/240x284 http://placehold.it/120x142" src="http://placehold.it/120x142" width="120" height="142" alt="{{description}}">
    </div>
    <p>Mom calls Dad and explains why she denied his request for extra time previously. Dad reacts angrily and refuses her request. Mom tells him she will not grant extra time the next time he asks for it. </p>
    <button class="button" disabled>Watch This Video</button>
  </li>
  <li>
    <div>
      <img srcset="http://placehold.it/240x284 http://placehold.it/120x142" src="http://placehold.it/120x142" width="120" height="142" alt="{{description}}">
    </div>
    <p>Mom calls Dad and presents her reasons for wanting Casey home early, as well as for keeping the skates at her house.</p>
    <button class="button">Watch This Video</button>
  </li>
</ul>

Styleguide 3.10
*/
.fork {
  padding: 0 18px 18px; }
  @media (min-width: 960px) {
    .fork {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; } }
  .fork ::after {
    clear: both;
    content: '';
    display: table; }
  .fork > * {
    background: #fff;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    margin-bottom: 18px;
    min-height: 142px;
    padding: 9px;
    position: relative; }
    @media (max-width: 959px) {
      .fork > * {
        margin: 0 auto 18px; } }
    @media (min-width: 960px) {
      .fork > * {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0; }
        .fork > *:first-child {
          margin-right: 18px; } }
  .fork div {
    float: left;
    margin-right: 9px;
    z-index: 10; }
    .fork div img {
      display: block; }
  .fork p {
    font-size: 12px; }
  .fork button {
    clear: both;
    margin-top: 9px;
    padding-bottom: 13.5px;
    padding-top: 13.5px;
    width: 100%; }
  .fork .fork-choice {
    max-width: 355px; }
    .fork .fork-choice button {
      font-weight: bold;
      font-size: 18px; }
  .fork .fork-image {
    width: 355px;
    height: 176px; }
    .fork .fork-image img {
      height: 100%;
      width: 100%; }
  .fork .fork-text {
    font-size: 14px;
    margin-top: 9px; }
  .fork .fork-x-complete {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: rgba(0, 0, 0, 0.75);
    font-size: 14px;
    line-height: 23px;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    height: 176px;
    width: 355px;
    margin: 0;
    position: absolute;
    left: 9px;
    top: 9px;
    right: 9px;
    z-index: 50; }
    .fork .fork-x-complete::before {
      background: url("images/fork-done.png");
      background-size: contain;
      content: '';
      display: block;
      height: 23px;
      margin-right: 9px;
      width: 23px; }

/*
Form

Forms are monolithic and not well modularized at this point. There's a big todo to change them.

Default - This is the standard form styling
.form-inline - This submodule puts inputs and labels side by side

Markup:
<form action="" method="POST" class="form {$modifiers}">
  <fieldset class="user-information">
    <legend>1. Create your Account</legend>
    <div class="form-row ">
      <label for="id_name">Name</label>
      <div class="value">
        <input type="text" placeholder="John Doe" name="name" id="id_name">
        <p>Please enter your name exactly as you want it to appear on your certificate of completion.</p>
      </div>
    </div>
    <div class="form-row ">
      <label for="id_email">
        Email:
      </label>
      <div class="value">
        <input type="text" name="email" id="id_email">
        <p>This is helper text for this input.</p>
      </div>
    </div>
    <div class="form-row success">
      <label for="id_language">
        Language Version
      </label>
      <div class="value">
        <select name="language" id="id_language">
          <option value="en" selected="selected">English</option>
          <option value="es">Spanish</option>
        </select>
      </div>
      <p class="form-x-warningmessage"><em>Please note: Your County requires prior permission from the Court in order to complete an online class. Contact the Clerk of Courts at 123-123-4567.</em></p>
    </div>
    <div class="form-row checkbox">
      <div class="value">
        <input type="checkbox" name="print_version" id="id_print_version">
      </div>
      <label for="id_print_version">
        <p>Yes, for an additional $11.50, please ship me Print Versions of the two Workbooks. Access to digital version already included in purchase price. <strong>(Total price with print versions: $51.45)</strong></p>
      </label>
    </div>
  </fieldset>
  <fieldset>
    <legend>Have a Coupon?</legend>
    <div class="form-row form-row-is-valid">
      <label for="coupon">Coupon Code</label>
      <div class="value">
        <input type="text" name="name" id="coupon" value="WV2017">
        <p class="form-row-x-success">Discount applied.</p>
        <button class="button button-height-small button-marketing-light" type="button">Apply</button>
      </div>
    </div>
  </fieldset>
  <fieldset>
    <legend>Order Summary</legend>
    <div class="form-x-summary">
        <sg-insert>3.53</sg-insert>
        <p class="form-x-warningmessage"><em>Please note: Your County requires prior permission from the Court in order to complete an online class. Contact the Clerk of Courts at 123-123-4567.</em></p>
    </div>
  </fieldset>
  <fieldset>
    <div class="radio-group-payment">
      <ul>
        <li><label for="id_payment_type_0" class="active"><input type="radio" id="id_payment_type_0" value="authnet" name="payment_type"> <p>Pay with major credit cards:</p><img src="/images/cc-icons.png" alt="Pay with major credit cards: Visa, Mastercard, American Express, or Discover"></label></li>
      </ul>
    </div>
  </fieldset>
  <fieldset class="submit">
    <button type="submit" class="button">Finalize Your Purchase</button>
  </fieldset>
  <sg-insert>5.3</sg-insert>
</form>


Styleguide 3.2
*/
.form {
  margin-bottom: 36px; }
  @media (min-width: 950px) {
    .form {
      padding: 0 18px; } }
  .form div label {
    padding-left: 9px; }
  .form div ul {
    margin-bottom: 18px;
    margin-left: 22.5px; }
  .form div li:not(:last-child) {
    padding-bottom: 9px; }
  .form fieldset:not(:last-child) {
    margin-bottom: 18px; }
  .form fieldset > p {
    margin: 0 18px 18px; }
    @media (min-width: 950px) {
      .form fieldset > p {
        margin-left: 0;
        margin-right: 0; } }
  .form .submit-row {
    margin-bottom: 0;
    margin-left: 0; }
  .form legend,
  .form .legend {
    border-bottom: 1px solid #f6f3ee;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #000;
    display: block;
    font-size: 18px;
    line-height: 1.2;
    margin-bottom: 9px;
    padding: 0 18px 9px;
    width: 100%; }
    @media (min-width: 950px) {
      .form legend,
      .form .legend {
        color: #1b2327;
        padding-left: 0;
        padding-right: 0; } }
    .form legend span,
    .form .legend span {
      color: #696969;
      display: block;
      font-size: 14px;
      margin-top: 9px; }
  .form .submit {
    padding: 0 18px; }
    @media (min-width: 950px) {
      .form .submit {
        padding-left: 0;
        padding-right: 0; } }
    .form .submit p {
      color: #696969;
      margin-bottom: 9px; }
  .form .button {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    font-size: 18px;
    margin-bottom: 18px;
    text-transform: none;
    width: 100%; }
  .form .incomplete-form {
    opacity: .5;
    pointer-events: none; }
  .form .form-x-note {
    font-size: 24px;
    margin-bottom: 18px;
    padding: 0 18px 9px; }
  .form .form-x-note-important {
    font-size: 24px;
    margin: 18px 0;
    padding: 0 18px;
    text-align: center; }
  .form .form-x-links {
    padding: 0 18px;
    text-align: center; }
    .form .form-x-links a {
      font-weight: normal; }
  .form .form-x-summary {
    padding-left: 18px;
    padding-right: 18px; }
  .form .form-x-warningmessage {
    color: #f26c4f;
    font-size: 18px;
    line-height: 1.2;
    padding-top: 18px; }
    .form .form-x-warningmessage em {
      font-style: italic;
      font-weight: bold; }
  @media (min-width: 950px) {
    .form .form-x-summary {
      padding-left: 30%; } }

.form-nomargin {
  margin: 0; }

.form-row {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 18px;
  padding: 0 18px;
  position: relative;
  /* File inputs are styled as default on page load, and custom classes are added via js. */ }
  @media (min-width: 950px) {
    .form-row {
      padding-left: 0;
      padding-right: 0; } }
  .form-row .button {
    margin-bottom: 0;
    margin-top: 18px;
    width: auto; }
  .form-row .value {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .form-row .value p {
      color: #696969;
      line-height: 1.2;
      margin-top: 4.5px;
      width: 100%; }
    .form-row .value .form-row-x-success {
      color: #9aba38; }
    .form-row .value .form-row-x-error {
      color: #e75345; }
  .form-row label,
  .form-row .label {
    color: #696969;
    display: block;
    font-size: 18px;
    line-height: 1.2;
    margin: 0 0 5px;
    position: relative; }
  .form-row input:focus,
  .form-row select:focus {
    -webkit-box-shadow: 0 0 5px 0 #28ade3;
            box-shadow: 0 0 5px 0 #28ade3;
    outline: none; }
  .form-row [type="text"],
  .form-row [type="email"],
  .form-row [type="password"],
  .form-row [type="tel"],
  .form-row select,
  .form-row textarea {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: #F2F2F2;
    border: 1px solid #ccc;
    border-radius: 5px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #1b2327;
    display: block;
    font-family: "proxima nova", "Helvetica", "Sans-Serif";
    font-size: 18px;
    padding: 9px;
    width: 100%; }
  .form-row :disabled {
    opacity: .5; }
  .form-row select {
    background-image: url("images/form-row-select.svg");
    background-position: calc(100% - 9px) center;
    background-repeat: no-repeat;
    margin-top: 9px;
    padding-right: 27px; }
    @media (min-width: 950px) {
      .form-row select {
        margin-top: 0; } }
  .form-row img {
    display: block;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    height: auto;
    margin-top: 5px;
    position: absolute;
    right: 18px;
    top: -5px; }
  .form-row.form-row-is-valid [type="text"],
  .form-row.form-row-is-valid [type="email"],
  .form-row.form-row-is-valid [type="password"],
  .form-row.form-row-is-valid [type="tel"],
  .form-row.form-row-is-valid select,
  .form-row.form-row-is-valid textarea {
    background-image: url("images/formrow-valid.png");
    background-position: calc(100% - 18px) center;
    background-repeat: no-repeat;
    padding-right: 61px; }
  .form-row.checkbox {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    .form-row.checkbox .value {
      width: 25px; }
    .form-row.checkbox label {
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1; }
      .form-row.checkbox label p {
        font-size: 14px;
        line-height: 1.5;
        margin-bottom: 18px; }
        .form-row.checkbox label p:first-child {
          color: #000;
          font-size: 18px;
          line-height: 1.2;
          margin-bottom: 0; }
        .form-row.checkbox label p:last-child {
          margin-bottom: 0; }
  .form-row.radio li {
    margin-bottom: 9px; }
  .form-row.radio label {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    line-height: 1em;
    margin: 0; }
  .form-row.radio input {
    margin: -2px 9px 0 0; }
  .form-row.short {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .form-row.short label {
      width: 100%; }
    .form-row.short [type="text"],
    .form-row.short [type="tel"] {
      margin-right: 9px;
      width: 90px; }
  .form-row.success [type="text"],
  .form-row.success [type="email"],
  .form-row.success [type="tel"] {
    background: white url("images/form-success.png") 95% center no-repeat;
    padding-right: 10%; }
  .form-row.error [type="text"],
  .form-row.error [type="tel"],
  .form-row.error [type="password"] {
    background: rgba(242, 108, 79, 0.1) url("images/form-error.png") 95% center no-repeat;
    border: 1px solid #f26c4f;
    padding-right: 10%; }
    @media (min-width: 950px) {
      .form-row.error [type="text"],
      .form-row.error [type="tel"],
      .form-row.error [type="password"] {
        margin-bottom: 5px; } }
  .form-row.error img {
    display: none; }
  .form-row.form-row-stripe .value {
    background: #F2F2F2;
    border: 1px solid #ccc;
    border-radius: 5px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #1b2327;
    display: block;
    font-family: "proxima nova", "Helvetica", "Sans-Serif";
    font-size: 18px;
    padding: 9px; }
  .form-row.form-row-stripe.success .value {
    background: #f6f3ee url("images/form-success.png") 95% center no-repeat;
    padding-right: 10%; }
  .form-row.form-row-stripe.error .value {
    border: 1px solid #f26c4f; }
  .form-row.form-row-file input {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1; }
  .form-row.form-row-file label {
    /* Label contains filename. Don't want to limit its width. */
    width: inherit; }
    .form-row.form-row-file label * {
      /* Pointer events on descendant elements should bubble up to the label. */
      pointer-events: none; }
  .form-row.form-row-file .button-label {
    /* A label styled like a button. */
    cursor: pointer;
    background-color: #fff;
    color: #28ade3;
    border: 1px solid #28ade3;
    border-radius: 8px;
    padding: 9px 18px;
    text-align: center; }
    .form-row.form-row-file .button-label:focus, .form-row.form-row-file .button-label:hover {
      outline: 1px dotted #28ade3;
      /* Intentionally override for webkit browsers. Non-webkit will use line above. */
      outline: -webkit-focus-ring-color auto 5px; }
    @media (min-width: 950px) {
      .form-row.form-row-file .button-label {
        margin: 0; } }
  .form-row.form-row-file.error .button-label {
    border-color: #f26c4f; }

@media (min-width: 950px) {
  .form-inline .form-row {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .form-inline .form-row img {
      display: none; } }
  @media (min-width: 950px) and (min-width: 950px) {
    .form-inline .form-row.short label {
      width: 28%; } }

@media (min-width: 950px) {
    .form-inline .form-row.form-row-aligncenter {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; }
  .form-inline label {
    margin: 10.8px 2% 0 0;
    text-align: right;
    width: 28%; }
  .form-inline .value {
    width: 70%; }
  .form-inline .errorlist {
    margin-left: 30%;
    width: 70%; }
  .form-inline .button {
    border-radius: 5px; }
  .form-inline .checkbox {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
    .form-inline .checkbox .value {
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1;
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      margin-right: 9px; }
    .form-inline .checkbox input {
      margin-right: 9px; }
    .form-inline .checkbox label {
      -webkit-box-flex: 2;
          -ms-flex: 2;
              flex: 2;
      margin-right: 0;
      margin-top: 0;
      text-align: left; }
  .form-inline div label {
    padding-left: 9px; }
  .form-inline div ul {
    margin-bottom: 18px;
    margin-left: 126px;
    margin-top: 9px; }
  .form-inline div li:not(:last-child) {
    padding-bottom: 0; }
  .form-x-note {
    text-align: right; } }

.form-row-submit {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }
  .form-row-submit .form-row-submit-x-button {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    margin-right: 18px; }
    .form-row-submit .form-row-submit-x-button .button {
      margin: 0 !important; }
  .form-row-submit .form-row-submit-x-message {
    display: none;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
            flex: 1 1 100%;
    font-size: 18px; }
  .form-row-submit.form-row-submit-is-success .form-row-submit-x-message {
    color: #9aba38;
    display: block; }

.radio-group-payment {
  margin-bottom: 18px;
  overflow: hidden; }
  .radio-group-payment ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 100%;
    margin-left: 0 !important; }
    @media (min-width: 950px) {
      .radio-group-payment ul {
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row; } }
  .radio-group-payment li {
    margin-bottom: 9px;
    padding: 0 18px; }
    @media (min-width: 950px) {
      .radio-group-payment li {
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        margin-right: 9px;
        padding-left: 0;
        padding-right: 0; } }
  @media (min-width: 950px) {
    .radio-group-payment li:last-of-type {
      margin-right: 0; } }
  .radio-group-payment label {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: #fff;
    border: 1px solid #28ade3;
    border-radius: 10px;
    cursor: pointer;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    list-style: none;
    margin: 0;
    padding: 18px 0;
    position: relative;
    text-align: center; }
    @media (min-width: 950px) {
      .radio-group-payment label {
        min-height: auto; } }
    .radio-group-payment label:hover, .radio-group-payment label:focus, .radio-group-payment label.active {
      background: #28ade3; }
      .radio-group-payment label:hover h1,
      .radio-group-payment label:hover h3,
      .radio-group-payment label:hover p, .radio-group-payment label:focus h1,
      .radio-group-payment label:focus h3,
      .radio-group-payment label:focus p, .radio-group-payment label.active h1,
      .radio-group-payment label.active h3,
      .radio-group-payment label.active p {
        color: #fff; }
  .radio-group-payment h1 {
    color: #28ade3;
    font-weight: bold;
    font-size: 62.4px;
    line-height: 1em; }
    .radio-group-payment h1 span {
      display: block;
      font-weight: normal;
      font-size: 24px;
      line-height: 1em; }
  .radio-group-payment table {
    margin: 0 auto; }
    .radio-group-payment table input {
      display: block; }
  .radio-group-payment p {
    color: #1b2327;
    font-size: 12.6px;
    line-height: 1.5em;
    margin: 5px 0; }
    .radio-group-payment p:last-child {
      margin-bottom: 0; }
    .radio-group-payment p span {
      display: block;
      font-size: 18px;
      line-height: 1em; }
  .radio-group-payment [type="radio"] {
    left: -9999px;
    position: absolute; }

/*
Form Survey

Overrides for the survey form type (has a border and some different layout options based on screen size)
TODO: This needs to become its own module

Markup:
<ul class="survey-progress progressbar">
  <li id="progress-demographics" class="current progressbar-item">1. Demographics</li>
  <li id="progress-case" class="progressbar-item">2. Case Background</li>
  <li id="progress-family" class="progressbar-item">3. Family Dynamics</li>
  <li id="progress-course" class="progressbar-item">4. Course Feedback</li>
</ul>
<form action="" class="form form-survey">
  <fieldset id="demographics">
    <legend>1. Demographics</legend>
    <div class="field date form-row required">
      <label>What year were you born in?</label>
      <div class="value"><input id="id_date_2-answer" type="text" name="date_2-answer" maxlength="4"></div>
      <ul class="errorlist" style="display: none;">
        <li>This field is required</li>
      </ul>
    </div>
    <div class="field multiple-choice form-row required">
      <label>What gender are you?</label>
      <div class="value"><ul>
        <li><label for="id_mc_15-answer_0"><input type="radio" id="id_mc_15-answer_0" value="67" name="mc_15-answer"> Male</label></li>
        <li><label for="id_mc_15-answer_1"><input type="radio" id="id_mc_15-answer_1" value="68" name="mc_15-answer"> Female</label></li>
        <li><label for="id_mc_15-answer_2"><input type="radio" id="id_mc_15-answer_2" value="69" name="mc_15-answer"> Other</label></li>
        <li><label for="id_mc_15-answer_3"><input type="radio" id="id_mc_15-answer_3" value="70" name="mc_15-answer"> Prefer not to answer</label></li>
      </ul></div>
      <ul class="errorlist" style="display: none;">
        <li>This field is required</li>
      </ul>
    </div>
  </fieldset>
  <section class="submit">
    <button class="button" id="next-section">Next Section</button>
    <input class="button" id="submit" type="submit" value="Continue" style="display: none;">
  </section>
</form>

Styleguide 3.2.1
*/
@media (min-width: 950px) {
  .form-survey {
    border: 1px solid #F2F2F2;
    border-bottom: 0;
    padding: 0; }
    .form-survey legend {
      display: none; }
    .form-survey .form-scale, .form-survey .form-row {
      border-bottom: 1px solid #F2F2F2; }
    .form-survey .form-row {
      padding: 18px; }
    .form-survey .submit {
      border-bottom: 1px solid #F2F2F2;
      padding: 0 18px; } }

/*
Form Scale

This is used for a scaling set of radio options built in a table

Markup:
<form action="" class="form form-scale">
  <fieldset>
    <div class="field scalerequired">
      <h2 class="form-scale-heading">The following questions refer to you, your co-parent involved, and your mutual child(ren). Select the option that best describes your situation.</h2>
      <div class="scale_responses">
        <table>
          <thead>
            <tr>
              <th class="label" scope="row"> &nbsp; </th>
              <th scope="col" class="value">Always</th>
              <th scope="col" class="value">Often</th>
              <th scope="col" class="value">Sometimes</th>
              <th scope="col" class="value">Rarely</th>
              <th scope="col" class="value">Never</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <th class="label" scope="row"><label>Do you feel friendly toward your former partner?</label>
              <ul class="errorlist" style="display: none;"><li>This field is required.</li></ul>                    </th>
              <td class="value">
                <label for="id_statement_21-answer_1">
                  <input type="radio" id="id_statement_21-answer_1" name="statement_21-answer" value="27">
                  <span>Always</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_21-answer_2">
                  <input type="radio" id="id_statement_21-answer_2" name="statement_21-answer" value="28">
                  <span>Often</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_21-answer_3">
                  <input type="radio" id="id_statement_21-answer_3" name="statement_21-answer" value="29">
                  <span>Sometimes</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_21-answer_4">
                  <input type="radio" id="id_statement_21-answer_4" name="statement_21-answer" value="30">
                  <span>Rarely</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_21-answer_5">
                  <input type="radio" id="id_statement_21-answer_5" name="statement_21-answer" value="31">
                  <span>Never</span>
                </label>
              </td>
            </tr>
            <tr>
              <th class="label" scope="row"><label>Do your children feel friendly toward your former partner?</label>
              <ul class="errorlist" style="display: none;"><li>This field is required.</li></ul>                    </th>
              <td class="value">
                <label for="id_statement_22-answer_1">
                  <input type="radio" id="id_statement_22-answer_1" name="statement_22-answer" value="27">
                  <span>Always</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_22-answer_2">
                  <input type="radio" id="id_statement_22-answer_2" name="statement_22-answer" value="28">
                  <span>Often</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_22-answer_3">
                  <input type="radio" id="id_statement_22-answer_3" name="statement_22-answer" value="29">
                  <span>Sometimes</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_22-answer_4">
                  <input type="radio" id="id_statement_22-answer_4" name="statement_22-answer" value="30">
                  <span>Rarely</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_22-answer_5">
                  <input type="radio" id="id_statement_22-answer_5" name="statement_22-answer" value="31">
                  <span>Never</span>
                </label>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  </fieldset>
</form>

Styleguide 3.2.2
*/
.form-scale {
  padding: 0 18px;
  margin-bottom: 18px; }
  @media (min-width: 960px) {
    .form-scale {
      padding-bottom: 18px;
      padding-top: 18px; } }
  .form-scale table {
    width: 100%; }
  .form-scale thead {
    display: none; }
    @media (min-width: 960px) {
      .form-scale thead {
        display: block; }
        .form-scale thead th {
          text-align: center;
          padding: 0; } }
  @media (min-width: 960px) {
    .form-scale tbody .label {
      padding: 18px 0; } }
  .form-scale th {
    text-align: left; }
  .form-scale tr {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding-bottom: 18px; }
    @media (min-width: 960px) {
      .form-scale tr {
        border-bottom: 1px solid #f6f3ee;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        padding-bottom: 0; }
        .form-scale tr:last-child {
          border-bottom: none; }
        .form-scale tr label {
          width: 100%; }
        .form-scale tr .label {
          -webkit-box-flex: 5;
              -ms-flex: 5 0 40%;
                  flex: 5 0 40%; }
        .form-scale tr .value {
          -webkit-box-flex: 1;
              -ms-flex: 1 0 12%;
                  flex: 1 0 12%;
          padding: 18px 0;
          text-align: center; }
        .form-scale tr span {
          display: none; } }
  .form-scale .label, .form-scale .value {
    color: #696969;
    font-size: 18px; }
    @media (min-width: 960px) {
      .form-scale .label, .form-scale .value {
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        color: #1b2327;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        font-size: 14px;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center; } }
  .form-scale .label {
    margin-bottom: 9px; }
  .form-scale .form-scale-heading {
    color: #696969;
    font-size: 24px;
    line-height: 1.2em; }

.errorlist {
  list-style: none;
  z-index: 10; }
  .errorlist li {
    color: #f26c4f;
    font-size: 14px;
    z-index: 100; }

/*
Form item description

This is an additional description within a form. It provides extra information about
a form item.

Markup:
  <div class="form-row form-itemdescription">
    <h2>Recommend to Co-Parent</h2>
    <p>Enter your Co-Parent’s email below and we’ll send them an email inviting them to sign up for Children in Between on your behalf. </p>
  </div>


Styleguide 3.2.3
*/
.form-itemdescription {
  border-bottom: 1px solid #ccc;
  margin-bottom: 15px;
  padding-bottom: 10px; }
  .form-itemdescription h2 {
    font-size: 18px;
    line-height: 22px;
    margin-bottom: 5px; }
  .form-itemdescription p {
    font-size: 12px;
    line-height: 14px; }

.form-x-Recommend-coparent {
  font-size: 18px;
  line-height: 27px;
  margin-left: auto;
  margin-right: auto; }

.form-rollup {
  border: 0;
  max-height: 0px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  width: 1px;
  -webkit-transition: max-height .5s;
  transition: max-height .5s; }

.form-rollup-display-visible {
  border: 0;
  height: auto;
  margin: 0;
  max-height: 300px;
  overflow: hidden;
  padding: 0;
  width: 100%; }

/*
Form as a button

Markup:
<div class="form form-inline">
  <div class="form-row form-row-aligncenter">
    <button id="buyForCoParent" class="button">Buy Children in Between for your Co-Parent</button>
    <p id="showFormButton" class="form-x-Recommend-coparent">or<a>Recommend to Co-Parent</a></p>
  </div>
</div>

Styleguide 3.2.4
*/
/*
Form Row (Stripe)

Default - Standard input type
.success - Shows the field was filled out correctly
.error - Shows a field error

Markup:
<form class="form">
  <fieldset>
    <legend>4. Secure Payment</legend>
    <div class="form-row form-row-stripe {$modifiers}">
      <label for="formrow">Label:</label>
      <div class="value" id="card-element">
        <span>[stripe code]</span>
      </div>
      <p class="form-row-instructions">These are field-level instructions</p>
    </div>
  </fieldset>
</form>

Styleguide 3.2.5
*/
/*
Global Notification

Markup:
<div class="global-notifications">
  <div class="notification l-containerhorizontal" id="notifications">
    <h4>CDE's Children In Between requires Google Chrome browser. <span class="error"><a href="https://www.google.com/intl/en/chrome/browser/" target="_blank">Download Chrome</a></span></h4>
    <h4>Some none error notification <span><a href="https://www.google.com/intl/en/chrome/browser/" target="_blank">Got It</a></span></h4>
  </div>
</div>

Styleguide 3.14
*/
.global-notifications {
  background: #155a76;
  width: 100%;
  position: relative;
  z-index: 10; }
  .global-notifications .notification {
    padding: 0 18px; }
    .global-notifications .notification strong {
      color: #fff; }
    .global-notifications .notification ul li {
      list-style: none;
      color: #fff;
      padding: 10px 0; }
    .global-notifications .notification h4 {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      border-top: 1px solid #0f4053;
      color: #fff;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      min-height: 58px;
      padding: 9px 0; }
      @media (min-width: 960px) {
        .global-notifications .notification h4 {
          -webkit-box-orient: horizontal;
          -webkit-box-direction: normal;
              -ms-flex-direction: row;
                  flex-direction: row;
          -webkit-box-pack: justify;
              -ms-flex-pack: justify;
                  justify-content: space-between; } }
      .global-notifications .notification h4:first-of-type {
        border-top: 0; }
      .global-notifications .notification h4.notification {
        display: block; }
        @media (min-width: 960px) {
          .global-notifications .notification h4.notification {
            line-height: 40px; } }
        .global-notifications .notification h4.notification strong {
          font-weight: bold; }
    .global-notifications .notification span {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      background: #9aba38;
      margin-top: 18px;
      padding: 9px 18px;
      text-align: center;
      width: 100%; }
      @media (min-width: 960px) {
        .global-notifications .notification span {
          margin-top: 0;
          width: auto; } }
      .global-notifications .notification span.error {
        background: #e75345; }
      .global-notifications .notification span a {
        color: #fff; }

/*
Glossary

Please note the required javascript at the begining of the CSS bellow.

Markup:
<section class="glossary">
  <div class="glossary-x-header">
    <h1>Glossary</h1>
    <p class="glossary-x-text-lightGrey">Select a term in the list to view its definition.</p>
    <sg-insert>3.52</sg-insert>
  </div>
  <div class="l-glossary">
    <div class="glossary-x-terms">
      <article>
        <input type="radio" name="accordion" value="accordion1" id="accordion1" checked="checked">
        <label for="accordion1"><h1>Sensitivity</h1></label>
        <div>
            <p class="glossary-x-term">Sensitivity</p>
             This involves empathy, where you can see situations through other people’s eyes and feel what they feel. Sensitivity means considering the feelings and welfare of others before you act. It means that you do not always put your needs of the moment first. Sensitivity increases with maturity, wisdom, compassion, and self-control.
        </div>
      </article>
      <article>
        <input type="radio" name="accordion" value="accordion2" id="accordion2">
        <label for="accordion2"><h1>Empathy</h1></label>
        <div>
            <p class="glossary-x-term">Empathy</p>
             When you can feel what another person feels, this is empathy. It involves putting yourself in someone else’s shoes so as to see the situation from their point of view and experience the feelings they do. Empathy is the basis for intimate relationships and builds respect for the other person. People who are high in emotional intelligence have good empathy skills.
        </div>
      </article>
      <article>
        <input type="radio" name="accordion" value="accordion3" id="accordion3">
        <label for="accordion3"><h1>Polite Request</h1></label>
        <div>
            <p class="glossary-x-term">Polite Request</p>
              This is an extension of an “I” message. After stating how you feel about another person’s behavior, you put your request for a change in behavior in a clearly polite form, then ask for their agreement:
        </div>
      </article>
      <article>
        <input type="radio" name="accordion" value="accordion4" id="accordion4">
        <label for="accordion4"><h1>Polite Request 2</h1></label>
        <div>
            <p class="glossary-x-term">Polite Request</p>
             This is an extension of an “I” message. After stating how you feel about another person’s behavior, you put your request for a change in behavior in a clearly polite form, then ask for their agreement:
        </div>
      </article>
    </div>
    <div id="glossary-x-definition">
      This is an extension of an “I” message. After stating how you feel about another person’s behavior, you put your request for a change in behavior in a clearly polite form, then ask for their agreement:
    </div>
  </div>
</section>


Styleguide 3.49
*/
/*
This pattern assumes and requires the following javascript / Jquery snippet:
window.nextTerm = null;
window.muted = false;

function muteAudio() {
    $('#volume_control').find('#volumeDisplay').addClass('audioGlossary-muted');
    window.muted = true;
    if (window.glossary_term_audio) {
        window.glossary_term_audio.pause();
        window.glossary_term_audio.muted = true;
    }
}

function unmuteAudio() {
    $('#volume_control').find('#volumeDisplay').removeClass('audioGlossary-muted');
    window.muted = false;
    if (window.glossary_term_audio) {
        window.glossary_term_audio.play();
        window.glossary_term_audio.muted = false;
    }
}

function toggleMute() {
    if (window.muted) {
        unmuteAudio();
    } else {
        muteAudio();
    }
}


$('#volume_control').click(function(){
    toggleMute();
});


function playDefinitionAudio(audioUrl) {
    if (!window.muted){
        if (window.glossary_term_audio) {
            window.glossary_term_audio.pause();
            window.glossary_term_audio.src = audioUrl;
        }
        else {
            window.glossary_term_audio = new Audio(audioUrl);
        }
        window.glossary_term_audio.play();
    } else if (window.glossary_term_audio) {
        window.glossary_term_audio.src = audioUrl;
    }
}



$(function() {

    var glossary = $('#glossary');
    showDefinition(glossary.find('article:has(input:checked)'));

    glossary.find('input').click(function(event) {
        var target = $(event.currentTarget),
            termElement = target.closest('article'),
            radio = termElement.find('input:checked'),
            audioUrl = radio.data('audioUrl');

        showDefinition(termElement);
        if (audioUrl) {
            playDefinitionAudio(audioUrl);
        }
    });

    function getDefinitionForSelectedTerm(termElement) {
        return termElement.find('.glossary-x-term').parent();
    }

    function showDefinition(termElement) {
        var definition = getDefinitionForSelectedTerm(termElement).clone(),
            displayElement = $("#glossary-x-definition");
        displayElement.html(definition);
    }

});

*/
.glossary .glossary-x-terms > article {
  padding-left: 16px;
  padding-right: 16px; }
  .glossary .glossary-x-terms > article > input {
    display: none; }
    .glossary .glossary-x-terms > article > input + label {
      color: #28ade3;
      cursor: pointer;
      display: block;
      padding-bottom: 16px;
      padding-left: 16px;
      padding-top: 16px;
      border-right: 1px solid #D0D0D0;
      border-top: 1px solid #D0D0D0; }
      .glossary .glossary-x-terms > article > input + label h1 {
        font-size: 14px; }
    .glossary .glossary-x-terms > article > input + label + * {
      color: #696969;
      height: auto;
      opacity: 1;
      padding-left: 18px;
      -webkit-transition: opacity 0.25s ease-in-out;
      transition: opacity 0.25s ease-in-out; }
  .glossary .glossary-x-terms > article > input:not(:checked) + label span {
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
            transform: rotate3d(0, 0, 1, -90deg);
    -webkit-transition: none;
    transition: none; }
  .glossary .glossary-x-terms > article > input:not(:checked) + label + * {
    height: 0;
    margin-bottom: 0;
    margin-top: 0;
    opacity: 0;
    overflow: hidden; }
  .glossary .glossary-x-terms > article > input:checked + label h1 {
    color: #2A5A73;
    font-weight: bold; }
  .glossary .glossary-x-terms > article > input:checked + label + * {
    padding-bottom: 18px;
    padding-right: 18px;
    border-right: 1px solid #D0D0D0; }

.glossary .glossary-x-terms .glossary-x-term {
  display: none; }

.glossary .glossary-x-terms .glossary-x-term-header {
  display: none; }

.glossary .glossary-x-terms .glossary-x-text-lightGrey {
  color: #7C7C7C; }

.glossary #glossary-x-definition {
  display: none; }

.glossary .glossary-x-header {
  padding: 20px 23px;
  margin-bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }

@media (min-width: 650px) {
  .glossary {
    padding: 31px 70px; }
    .glossary .glossary-x-terms > article {
      padding-left: 0;
      padding-right: 0;
      width: 290px; }
      .glossary .glossary-x-terms > article > input + label + * {
        display: none; }
      .glossary .glossary-x-terms > article > input:checked + label + * {
        border: 0; }
    .glossary #glossary-x-definition {
      color: #696969;
      display: block;
      padding-left: 30px;
      padding-top: 16px;
      border-top: 1px solid #D0D0D0; }
    .glossary .glossary-x-header {
      padding-left: 0;
      margin-bottom: 0; }
    .glossary .glossary-x-term-header {
      color: black;
      display: block;
      font-size: 32px; }
    .glossary .glossary-x-term {
      display: block;
      color: black;
      font-size: 32px;
      line-height: 38px;
      font-weight: normal; } }

/*
audio glossary

Markup:
<p>
  <a id="volume_control" class="audioGlossary">
    <span class="audioGlossary-x-text">Read Aloud</span>
    <span id="volume_control" class="audioGlossary-icon audioGlossary-icon-muted"></span>
  </a>
</p>

Styleguide 3.52
*/
.audioGlossary {
  color: #000;
  text-align: center; }
  .audioGlossary:hover {
    color: #000; }
  .audioGlossary .audioGlossary-icon {
    outline: none;
    display: inline-block; }
    .audioGlossary .audioGlossary-icon, .audioGlossary .audioGlossary-icon svg {
      height: 30px;
      width: 30px; }
    .audioGlossary .audioGlossary-icon .icon-unmute {
      display: none; }
    .audioGlossary .audioGlossary-icon.audioGlossary-muted .icon-unmute {
      display: block; }
    .audioGlossary .audioGlossary-icon.audioGlossary-muted .icon-mute {
      display: none; }
  .audioGlossary span {
    display: block; }

/*
Guided Question

Markup:
<div class="guided-question" id="course_container">
  <p>Let's consider the following:</p>
  <h1 id="question">What do children need when they make a transition from one parent's home to the other's?</h1><p>They need quiet time and gentle support from each parent. They need time to decompress from the strong feelings of divided loyalties. Children may shut out one or both parents during these times as they struggle with feelings of loyalty to the absent parent. If conflict between parents occurs, it can take the children and parents up to 72 hours to get the adrenaline out of their systems. </p>
  <section class="controls">
    <a id="next_button" class="button" href="#">Next Question</a>
    <aside style="">
      <p class="h2">More information:</p>
      <ul id="footnotes"><li><a href="#" class="footnote" id="5">5</a></li></ul>
    </aside>
  </section>
</div>

Styleguide 3.11
*/
.guided-question {
  padding: 0 18px 18px 18px; }
  .guided-question h1 {
    font-size: 24px;
    margin-bottom: 18px; }
    @media (min-width: 960px) {
      .guided-question h1 {
        font-size: 30px; } }
    .guided-question h1 a {
      color: #136d92; }
  .guided-question h2 {
    font-size: 14px;
    margin-bottom: 0; }
    @media (min-width: 960px) {
      .guided-question h2 {
        font-size: 24px;
        margin-bottom: 9px; } }
  .guided-question p {
    font-size: 18px;
    line-height: 1.5;
    margin-bottom: .5em;
    display: inline; }
  .guided-question .controls {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    @media (min-width: 960px) {
      .guided-question .controls {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        padding-top: 18px; } }
  .guided-question .button {
    margin: 18px 0;
    width: 100%; }
    @media (min-width: 960px) {
      .guided-question .button {
        font-size: 24px;
        margin: 0 18px 0 0;
        width: auto; } }
  .guided-question aside p {
    float: left;
    display: inline-block;
    margin: 9px;
    line-height: 1em;
    font-size: 14px; }
    @media (min-width: 960px) {
      .guided-question aside p {
        font-size: 18px; } }
  .guided-question aside ul {
    float: left; }
    .guided-question aside ul li {
      list-style: none;
      float: left;
      margin-right: 9px; }
      .guided-question aside ul li a {
        display: block;
        background: #9aba38;
        border-radius: 5px;
        padding: 9px;
        color: #fff;
        font-weight: normal;
        line-height: 1em; }
        @media (min-width: 960px) {
          .guided-question aside ul li a {
            font-size: 18px; } }
        .guided-question aside ul li a:hover {
          background: #7a932c; }

.question-footnotes {
  display: block;
  background: #ebebeb;
  border-radius: 3px;
  padding: 32px;
  color: #696969;
  margin-top: 17px; }
  .question-footnotes .question-footnotes-title {
    font-weight: bold; }
  .question-footnotes p {
    margin-bottom: 17px;
    display: block; }

/*
High Conflict

Markup:
<div class="highconflict">
  <img src="http://placehold.it/56x56" width="56" height="56">
  <div class="highconflict-x-text">
    <h2 id="heading-highconflict">Looking for a High-Conflict Class?</h2>
    <p><a href="#" aria-labelledby="heading-highconflict">Click for more information</a></p>
  </div>
</div>

Styleguide 3.55
*/
.highconflict {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .highconflict a,
  .highconflict h2,
  .highconflict p {
    color: #781012;
    font-size: 14px;
    font-weight: bold;
    line-height: 14px; }
  .highconflict a {
    text-decoration: underline; }
  .highconflict .highconflict-x-text {
    margin-left: 18px; }

/*
Link List

Markup:
<ul class="linklist">
  <li><a href="#">CDE's Children in Between Online 30-day Account</a></li>
  <li><a href="#">Lorem Ipsum Dolor Sit Amet Consectetur Adipiscing Elit</a></li>
  <li><a href="#">Aliquam diam mauris: facilisis nec sollicitudin vitae porta laoreet arcu</a></li>
</ul>

Styleguide 3.57
*/
.linklist a {
  font-size: 18px;
  font-weight: bold; }

.linklist li:not(:last-child) {
  margin-bottom: 18px; }

/*
Loader

Markup:
<!-- Position relative override just for the pattern library, position fixed by default -->
<div id="item-loading" class="loader" style="position: relative;">
    <p>Loading</p>
</div>

Styleguide 3.12
*/
@-webkit-keyframes loader {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }
@keyframes loader {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

.loader {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: rgba(255, 255, 255, 0.9);
  color: #28ade3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000; }
  .loader i {
    display: block;
    margin-bottom: 18px; }
  .loader p {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font-weight: bold;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    position: relative;
    text-align: center;
    text-transform: uppercase; }
    .loader p::before {
      -webkit-animation: loader .8s infinite ease-in-out;
              animation: loader .8s infinite ease-in-out;
      border: 4.5px solid #28ade3;
      border-radius: 50%;
      border-right-color: transparent;
      content: '';
      display: block;
      height: 28px;
      margin: 0 0 18px 0;
      width: 28px; }

/*
Logo

Markup:
<a href="/" class="logo"><img src="/images/logo-cib.svg" alt="Children In Between Logo" width="256" height="45"></a>

Styleguide 3.29
*/
.logo {
  display: block; }
  .logo img {
    display: block; }

/*
Management Table

Markup:
<section class="management-table">
  <table>
    <thead>
      <tr>
        <th scope="col">Extra Credit Category</th>
        <th scope="col">Value</th>
        <th scope="col"># Complete</th>
        <th scope="col">Total</th>
        <th scope="col">Applied</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th scope="row">Posting in the Forum (Maximum 50%)</th>
        <td>2%</td>
        <td>0 of 25</td>
        <td>0%</td>
        <td>-</td>
      </tr>
      <tr>
        <th scope="row">Skills Practices (Maximum 50%)</th>
        <td>2%</td>
        <td>25 of 25</td>
        <td>50%</td>
        <td>-</td>
      </tr>
      <tr>
        <th scope="row">Skills Practices (Maximum 50%)</th>
        <td>2%</td>
        <td>25 of 25</td>
        <td>50%</td>
        <td>-</td>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <th scope="row">Totals</th>
        <td></td>
        <td>25</td>
        <td>50%</td>
        <td>0%</td>
      </tr>
    </tfoot>
  </table>
</section>

Styleguide 3.13
*/
.management-table {
  overflow-x: auto;
  margin: 0 18px 18px; }
  .management-table table {
    border-collapse: collapse;
    font-size: 18px;
    width: 100%; }
  .management-table td,
  .management-table th {
    padding: 18px;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap; }
    @media (min-width: 960px) {
      .management-table td,
      .management-table th {
        white-space: normal; } }
    .management-table td:last-child,
    .management-table th:last-child {
      text-align: right; }
    .management-table td:first-child,
    .management-table th:first-child {
      text-align: left; }
  .management-table thead th {
    background: #0a3b4e;
    color: #fff;
    font-size: 16px;
    padding-bottom: 9px;
    padding-top: 9px; }
  .management-table thead th:first-child {
    border-top-left-radius: 5px; }
  .management-table thead th:last-child {
    border-top-right-radius: 5px; }
  .management-table tbody td,
  .management-table tbody th {
    -webkit-box-shadow: #ddd 0 -1px 0 0 inset;
            box-shadow: #ddd 0 -1px 0 0 inset; }
    .management-table tbody td:first-child,
    .management-table tbody th:first-child {
      -webkit-box-shadow: #ddd 1px -1px 0 0 inset;
              box-shadow: #ddd 1px -1px 0 0 inset; }
    .management-table tbody td:last-child,
    .management-table tbody th:last-child {
      -webkit-box-shadow: #ddd -1px -1px 0 0 inset;
              box-shadow: #ddd -1px -1px 0 0 inset; }
    .management-table tbody td:only-child,
    .management-table tbody th:only-child {
      -webkit-box-shadow: #ddd 0 0 0 1px inset;
              box-shadow: #ddd 0 0 0 1px inset; }
  .management-table tbody tr:nth-child(even) td,
  .management-table tbody tr:nth-child(even) th {
    background-color: #F2F2F2; }
  .management-table tbody tr:last-of-type td:first-child,
  .management-table tbody tr:last-of-type th:first-child {
    border-bottom-left-radius: 5px; }
  .management-table tbody tr:last-of-type td:last-child,
  .management-table tbody tr:last-of-type th:last-child {
    border-bottom-right-radius: 5px; }
  .management-table tfoot {
    font-weight: bold; }

/*
Menu

This is fragmented, these items should become their own modules.

Default - Used in main navigation
.menu-page - Used inline on pages

Markup:
<ul class="menu {$modifiers}">
  <li class="menu-item"><a class="course" href="/course">Course</a></li>
  <li class="menu-item"><a href="/resources/">Resources</a></li>
  <li class="menu-item menu-dropdown" tabindex="1"><a id="downloads" href="">Downloads</a>
    <ul>
      <li><a href="/lesson/handbooks/what-about-children">What About the Children? 8th Ed</a></li>
      <li><a href="/lesson/handbooks/children-in-between">Children in Between 6th Ed.</a></li>
    </ul>
  </li>
  <li class="menu-item"><a class="glossary" href="/reference/glossary">Glossary</a></li>
</ul>

Styleguide 3.28
*/
.menu {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: all .25s ease-out;
  transition: all .25s ease-out;
  width: 100%; }
  .menu:first-of-type {
    -webkit-box-shadow: #155a76 0 5px 0 0 inset;
            box-shadow: #155a76 0 5px 0 0 inset; }
  @media (min-width: 950px) {
    .menu {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      max-height: inherit;
      overflow: visible;
      width: auto; }
      .menu:first-of-type {
        -webkit-box-shadow: none;
                box-shadow: none;
        padding-top: 0; } }
  @media (max-width: 950px) {
    .menu.is-active {
      max-height: 1000px;
      padding-top: 5px; } }

.menu-page:first-of-type {
  -webkit-box-shadow: #F2F2F2 0 1px 0 0 inset;
          box-shadow: #F2F2F2 0 1px 0 0 inset; }

@media (min-width: 950px) {
  .menu-page {
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    -webkit-box-shadow: none;
            box-shadow: none;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 100%; } }

/*
Menu Item

Default - Used in main navigation
.menu-page-page - Used inline on pages

Markup:
<div class="menu-item {$modifiers}"><a class="course" href="/course">Course</a></div>

Styleguide 3.28.2
*/
.menu-item {
  border-bottom: 1px solid #F2F2F2;
  padding: 0 18px; }
  @media (min-width: 950px) {
    .menu-item {
      border-bottom: 0;
      margin: 0 18px;
      padding: 13.5px 0;
      text-transform: uppercase; }
      .menu-item.has-limit > a {
        max-width: 120px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap; } }
  .menu-item a,
  .menu-item > span {
    display: block;
    color: #28ade3;
    cursor: pointer;
    font-weight: normal;
    line-height: 1;
    padding: 18px 0; }
    @media (min-width: 950px) {
      .menu-item a,
      .menu-item > span {
        color: #000;
        padding: 0; }
        .menu-item a:hover,
        .menu-item > span:hover {
          color: rgba(0, 0, 0, 0.5); } }

@media (min-width: 950px) {
  .menu-item-page {
    margin: 0;
    padding-left: 18px;
    padding-right: 18px;
    text-transform: none;
    width: 100%; }
    .menu-item-page:nth-child(odd) {
      background-color: #F2F2F2; } }

.menu-item-page.active a {
  font-weight: bold; }

/*
Menu Dropdown

Markup:
<div class="menu-item menu-dropdown" tabindex="1"><a id="downloads" href="">Downloads</a>
  <ul>
    <li><a href="/lesson/handbooks/what-about-children">What About the Children? 8th Ed</a></li>
    <li><a href="/lesson/handbooks/children-in-between">Children in Between 6th Ed.</a></li>
  </ul>
</div>

Styleguide 3.28.3
*/
.menu-dropdown {
  outline: none;
  position: relative; }
  .menu-dropdown a {
    padding-left: 1.5em;
    position: relative; }
    @media (min-width: 950px) {
      .menu-dropdown a {
        padding-left: 0; } }
  .menu-dropdown > a {
    pointer-events: none; }
    @media (min-width: 950px) {
      .menu-dropdown > a {
        pointer-events: auto;
        padding-right: 1.5em; } }
    .menu-dropdown > a::before {
      background: url("images/menu-indicator.svg") center center no-repeat;
      background-size: 10px 15px;
      content: '';
      display: block;
      height: 1em;
      left: 0;
      position: absolute;
      top: 18px;
      -webkit-transition: all .1s ease-out;
      transition: all .1s ease-out;
      width: 1em; }
      @media (min-width: 950px) {
        .menu-dropdown > a::before {
          color: #28ade3;
          left: auto;
          right: 0;
          top: -2px;
          -webkit-transform: rotate(90deg);
                  transform: rotate(90deg); } }
  .menu-dropdown ul {
    max-height: 0;
    overflow: hidden;
    -webkit-transition: all .25s ease-out;
    transition: all .25s ease-out; }
    @media (min-width: 950px) {
      .menu-dropdown ul {
        background: rgba(255, 255, 255, 0.95);
        -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
                box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
        min-width: 200px;
        position: absolute;
        right: 0;
        text-align: right;
        top: 100%;
        -webkit-transition: none;
        transition: none;
        white-space: nowrap;
        z-index: 1000; } }
    .menu-dropdown ul a {
      color: #155a76; }
      @media (min-width: 950px) {
        .menu-dropdown ul a {
          padding: 18px; } }
    .menu-dropdown ul a:hover {
      opacity: .5; }
      @media (min-width: 950px) {
        .menu-dropdown ul a:hover {
          background: rgba(0, 0, 0, 0.05);
          opacity: 1; } }
  @media (min-width: 950px) {
    .menu-dropdown li {
      border-bottom: 1px solid #d9d9d9;
      padding: 0;
      text-transform: none; } }
  .menu-dropdown:hover ul, .menu-dropdown:focus ul {
    max-height: 1000px; }
  .menu-dropdown:hover a::before, .menu-dropdown:focus a::before {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); }

/*
Menu Item

Markup:
<li class="menuitem"><a href="">Menu Item</a><li>

Styleguide 3.45
*/
.menuitem {
  border-bottom: 1px solid #f6f3ee;
  line-height: 1;
  outline: none;
  white-space: nowrap; }
  .menuitem > a,
  .menuitem button {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: transparent;
    border: 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #28ade3;
    cursor: pointer;
    display: block;
    font-size: 18px;
    font-weight: normal;
    outline: none;
    padding: 18px;
    text-align: left;
    width: 100%; }
  @media (min-width: 768px) {
    .menuitem {
      border-bottom: 0; }
      .menuitem > a,
      .menuitem button {
        padding: 0; } }

.menuitem-dropdown button {
  padding-left: 35px;
  position: relative; }
  .menuitem-dropdown button::before {
    background: url("images/menuitem-dropdown.svg") center center no-repeat;
    content: '';
    display: block;
    height: 8px;
    left: 18px;
    margin-right: 10px;
    position: absolute;
    top: calc(50% - 4px);
    -webkit-transition: -webkit-transform 0.25s ease-in-out;
    transition: -webkit-transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
    width: 8px;
    will-change: transform; }

.menuitem-dropdown ul {
  padding-bottom: 9px;
  white-space: normal; }

.menuitem-dropdown li a {
  color: #155a76;
  display: block;
  padding: 9px 18px 9px 36px; }

.menuitem-dropdown [aria-hidden="true"] {
  display: none; }

.menuitem-dropdown [aria-hidden="false"] {
  display: block; }

.menuitem-dropdown.menuitem-is-active button::before {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg); }

@media (min-width: 768px) {
  .menuitem-dropdown {
    position: relative; }
    .menuitem-dropdown button {
      padding-left: 0;
      padding-right: 26px; }
      .menuitem-dropdown button::before {
        left: auto;
        right: 0;
        -webkit-transform: rotate(90deg);
                transform: rotate(90deg); }
    .menuitem-dropdown ul {
      background: rgba(255, 255, 255, 0.95);
      -webkit-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
              box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
      padding: 0;
      position: absolute;
      right: 0;
      top: calc(100% + 9px);
      width: 143px; }
    .menuitem-dropdown li a {
      border-bottom: 1px solid rgba(0, 0, 0, 0.15);
      color: #28ade3;
      padding: 9px; } }

.menuitem-secondary {
  border-bottom: 0;
  border-right: 1px solid #f6f3ee; }
  .menuitem-secondary > a {
    font-size: 14px;
    text-align: center; }
  @media (min-width: 768px) {
    .menuitem-secondary > a {
      border-right: 0;
      color: #155a76;
      padding: 0; } }

@media (min-width: 768px) {
  .menuitem-marketing {
    border: 0; }
    .menuitem-marketing > a {
      border: 1px solid #28ade3;
      border-radius: 8px;
      padding: 9px 18px; } }

/*
Navigation

Markup:
<nav class="navigation" id="navigation">
  <div class="navigation-x-container l-containerhorizontal">
    <header>
      <a href="/" class="navigation-x-logo"><img src="/images/logo-cib.svg" alt="Children In Between Logo" width="256" height="45"></a>
      <button class="navigation-x-toggle"><span class="visually-hidden"> Menu</span></button>
    </header>
    <div class="navigation-x-message">
      <sg-insert>3.55</sg-insert>
    </div>
    <div class="navigation-x-menu">
      <ul class="l-menu l-menu-secondary">
        <li class="menuitem menuitem-secondary"><a href="/set-language/es" class="language"><span>En Español?</span></a></li>
        <li class="menuitem menuitem-secondary"><a href="/contact">Contact</a></li>
      </ul>
      <ul class="l-menu">
        <li class="menuitem menuitem-marketing"><a href="/shopping/purchase/">Sign Up</a></li>
        <li class="menuitem menuitem-marketing"><a href="/user/login">Login</a></li>
      </ul>
    </div>
  </div>
</nav>

Styleguide 3.3
*/
.navigation {
  background: #fff;
  border-bottom: 5px solid #28ade3;
  position: relative; }
  .navigation header {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 18px;
    width: 100%; }
  .navigation .navigation-x-logo {
    max-width: 200px; }
    .navigation .navigation-x-logo img {
      display: block;
      height: auto;
      width: 100%; }
  .navigation .navigation-x-container {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .navigation .navigation-x-toggle {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: url("images/navigation-toggle.svg") center center no-repeat;
    border: 0;
    color: transparent;
    cursor: pointer;
    height: 30px;
    outline: none;
    overflow: hidden;
    -webkit-transition: -webkit-transform 0.25s ease-in-out;
    transition: -webkit-transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    width: 30px;
    will-change: transform; }
  .navigation .navigation-x-menu {
    background-color: #fff;
    border-bottom: 5px solid #28ade3;
    border-top: 5px solid #28ade3;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 100%;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
    -webkit-transform-origin: top;
            transform-origin: top;
    -webkit-transition: -webkit-transform 0.25s ease-in-out;
    transition: -webkit-transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
    width: 100%;
    will-change: transform;
    z-index: 100; }
    .navigation .navigation-x-menu > :first-child {
      -webkit-box-ordinal-group: 3;
          -ms-flex-order: 2;
              order: 2; }
    .navigation .navigation-x-menu > :last-child {
      -webkit-box-ordinal-group: 2;
          -ms-flex-order: 1;
              order: 1; }
  .navigation .navigation-x-message {
    display: none; }
  .navigation.navigation-is-active .navigation-x-menu {
    pointer-events: auto;
    -webkit-transform: none;
            transform: none; }
  .navigation.navigation-is-active .navigation-x-toggle {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); }
  @media (min-width: 768px) {
    .navigation {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .navigation header {
        width: auto; }
      .navigation .navigation-x-logo {
        max-width: 305px; }
      .navigation .navigation-x-message {
        display: block; }
      .navigation .navigation-x-toggle {
        display: none; }
      .navigation .navigation-x-menu {
        border-bottom: 0;
        border-top: 0;
        padding: 18px 18px 18px 0;
        pointer-events: auto;
        position: relative;
        -webkit-transform: none;
                transform: none;
        width: auto;
        will-change: none; }
        .navigation .navigation-x-menu > :first-child:not(:only-child) {
          margin-bottom: 18px; }
        .navigation .navigation-x-menu > :first-child {
          -webkit-box-ordinal-group: 2;
              -ms-flex-order: 1;
                  order: 1; }
        .navigation .navigation-x-menu > :last-child {
          -webkit-box-ordinal-group: 3;
              -ms-flex-order: 2;
                  order: 2; } }

/*
Navigation Page

Markup:
<nav class="navigation navigation-page glossary-navigation" id="page-navigation-pattern">
  <header>
    <h2 class="navigation-title">Glossary Menu</h2>
    <button class="menu-toggle is-inactive" id="menu-toggle"><span class="visually-hidden"> Menu</span></button>
  </header>
  <ul class="menu menu-page">
    <li class="menu-item menu-item-page"><a href="">Active Listening</a href=""></li>
    <li class="menu-item menu-item-page active"><a href="">Empathy</a href=""></li>
    <li class="menu-item menu-item-page"><a href="">I Message</a href=""></li>
    <li class="menu-item menu-item-page"><a href="">Impulse Control</a href=""></li>
  </ul>
</nav>

Styleguide 3.3.1
*/
.navigation-page {
  -webkit-box-shadow: none;
          box-shadow: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  z-index: 10; }
  @media (min-width: 950px) {
    .navigation-page {
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
      height: auto;
      left: auto;
      position: relative;
      top: auto; }
      .navigation-page header {
        display: none; } }
  .navigation-page .navigation-title {
    font-size: 18px;
    line-height: 1em;
    margin: 18px;
    text-transform: uppercase; }

/*
Order Summary

Summary to be placed inside of form module

Markup:
<table class="ordersummary">
  <tfoot>
    <tr>
      <th scope="row">Your Total:</th>
      <td>$59.95</td>
    </tr>
  <tfoot>
  <thead class="visuallyhidden">
    <tr>
      <th scope="col">Item</th>
      <th scope="col">Price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">30-Day Access</th>
      <td>$49.95</td>
    </tr>
    <tr>
      <th scope="row">Workbook</th>
      <td>$20.00</td>
    </tr>
    <tr>
      <th scope="row">Discount</th>
      <td>-$4.00</td>
    </tr>
    <tr>
      <th scope="row">Sales Tax</th>
      <td>$2.00</td>
    </tr>
    <tr>
      <th scope="row">Data Management Fee</th>
      <td>$2.00</td>
    </tr>
  </tbody>
</table>

Styleguide 3.53
*/
.ordersummary {
  table-layout: fixed;
  width: 100%; }
  .ordersummary tbody th,
  .ordersummary tbody td {
    color: #696969;
    font-size: 14px;
    line-height: 22px; }
  .ordersummary td {
    text-align: right; }
  .ordersummary tfoot td,
  .ordersummary tfoot th {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    color: #000;
    font-size: 24px;
    padding-top: 18px; }
  .ordersummary tfoot td {
    font-weight: bold; }
  .ordersummary th {
    text-align: left; }

/*
Overlay

Markup:
<div class="overlay">
  <a>close</a>
  <h1>Change Email for Co-Parent</h1>
  <p>Enter a new email address to associate with this gift account. An invitation email will be sent to the user at the new email address.</p>
  <hr>
  <a class="button" href="#">Yes, Cancel Gift Invite</a>
</div>

Styleguide 3.48
*/
.overlay {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .overlay:not(form) {
    margin-left: 18px;
    margin-right: 18px; }
  .overlay a:first-of-type {
    -ms-flex-item-align: end;
        align-self: flex-end;
    color: #28ade3;
    margin-bottom: 23.4px;
    margin-left: 0;
    margin-right: 0;
    text-decoration: none; }
  .overlay h1 {
    font-size: 18px;
    line-height: 22px; }
  .overlay hr {
    border-color: #ccc;
    border-style: solid;
    border-width: 1px;
    margin-bottom: 20px; }
  .overlay p {
    font-size: 12px;
    line-height: 14px; }

/*
Overlay (with a form element).

Markup:
<div class="overlay">
<a>close</a>
  <h1>Change Email for Co-Parent</h1>
  <p>Enter a new email address to associate with this gift account. An invitation email will be sent to the user at the new email address.</p>
  <hr>
  <form class="form form-inline">
    <div class="form-row ">
      <label for="id_name">New Email:</label>
      <div class="value">
        <input type="text" placeholder="eg. john@example.com" name="name" id="id_name">
        <p>This is helper text for this input.</p>
      </div>
    </div>
    <button type="submit" class="button button-width-full" href="#">Change Email and Send Invite Email</a>
  </form>
</div>

Styleguide 3.48.1
*/
/*
Page Title

Default - Standard page titles
.page-title-large - A larger version
.page-title-centered - When you want the text centered

Markup:
<header class="page-title {$modifiers}">
  <h1>Sign-up for CDE's Children in Between</h1>
  <h2><span>$39.95</span> for 30-days access</h2>
  <p>Sign-up is simple and takes just a few minutes.</p>
</header>

Styleguide 3.4
*/
.page-title {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin-bottom: 18px;
  padding: 36px 18px 18px;
  position: relative; }
  .page-title.page-title-flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end; }
  .page-title h1 {
    font-size: 30px;
    line-height: 1em; }
  .page-title h2 {
    color: #ccc;
    font-size: 24px;
    line-height: 1em;
    margin-top: 9px; }
    .page-title h2 span {
      color: #28ade3; }
  .page-title p {
    color: #696969;
    font-size: 18px;
    line-height: 1.2em;
    margin-top: 9px; }

.audio {
  color: #000;
  text-align: center;
  font-size: 14px; }
  .audio:hover {
    color: #000; }
  .audio .audio-x-icon {
    outline: none;
    display: inline-block; }
    .audio .audio-x-icon, .audio .audio-x-icon svg {
      height: 30px;
      width: 30px; }
    .audio .audio-x-icon .icon-unmute {
      display: none; }
  .audio.muted .icon-unmute {
    display: block; }
  .audio.muted .icon-mute {
    display: none; }
  .audio .audio-x-text {
    display: block;
    line-height: 14px; }

.page-title-margin-bottom-none {
  margin-bottom: 0; }

.page-title-margin-bottom {
  margin-bottom: 18px; }

.page-title-margin-top {
  margin-top: 18px; }

.page-title-padding-top-none {
  padding-top: 0; }

.page-title-small {
  border-bottom: 1px solid #ccc;
  padding: 0 0 18px; }
  .page-title-small h1 {
    font-size: 18px; }
  .page-title-small p {
    font-size: 14px; }

.page-title-small-x-left-padding {
  padding-left: 18px; }

@media (min-width: 950px) {
  .page-title-large {
    padding-top: 36px; } }

.page-title-large h1 {
  font-size: 36px; }
  @media (min-width: 950px) {
    .page-title-large h1 {
      font-size: 48px;
      margin-bottom: 18px; } }

.page-title-large h2 {
  font-size: 36px; }
  @media (min-width: 950px) {
    .page-title-large h2 {
      font-size: 30px; }
      .page-title-large h2 span {
        font-size: 48px; } }

.page-title-large p {
  font-size: 18px; }

/*
Page Title Course

For use above videos. TODO: This should be its own module.

Markup:
<header class="page-title page-title-course">
  <h1>Chapter 1: Carrying Messages</h1>
  <p class="audio muted" id="volume_control"><a href="#">Read Aloud</a></p>
</header>

Styleguide 3.4.1
*/
.page-title-course {
  border-bottom: 1px solid #ccc;
  padding-right: 58px;
  padding-top: 18px; }
  @media (min-width: 960px) {
    .page-title-course {
      padding: 36px 0 18px;
      margin-left: 18px;
      margin-right: 18px; } }
  .page-title-course h1 {
    font-size: 24px;
    line-height: 1.2em; }
    @media (min-width: 960px) {
      .page-title-course h1 {
        font-size: 30px;
        line-height: 1em; } }

/*
Page Title Controls

A version that has a button. TODO: This should be its own module.

Markup:
<header class="page-title page-title-controls">
  <section>
    <h1>Tiffany Prado</h1>
    <p>tifa.tifa@gmail.com</p>
  </section>
  <section>
    <a class="button" href="/manage/36/license/36/edit/3324/">Edit User</a>
  </section>
</header>

Styleguide 3.4.2
*/
.page-title-controls {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }
  @media (min-width: 960px) {
    .page-title-controls {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }
  .page-title-controls section {
    margin-bottom: 18px; }
    @media (min-width: 960px) {
      .page-title-controls section {
        margin-bottom: 0; } }

.page-title-centered {
  text-align: center; }

/*
Person

Markup:
<article class="person">
  <section class="image">
    <img src="/images/jamesbillings.jpg" alt="Dr. James Billings, LMFT" width="290">
  </section>
  <section class="text">
    <h2>Dr. James Billings, LMFT</h2>
    <h3>Short Introduction</h3>
    <p>Dr. Billings a licensed Marriage and Family Therapist (LMFT) in the state of California has specialized working with couples and families for the past ten years. He has developed and implemented a county wide divorce parenting programs using both the Children in Between and After the Storm programs, for the family courts in a large Southern California county.</p>
    <h3>Additional Information</h3>
    <p>Dr. Billings has both a Masters Degree and Ph.D. in Marriage and Family Therapy. He is dedicated to helping individual, couples, families create healthier and happier relationships. Dr. Billings is certified in a number of parenting, co-parenting, and marriage enhancement programs (PRICE Parenting, PREP, Couples Communication Inc., Children in Between, and After the Storm). Dr. Billings is also a co-author of the Leaders Guide for the After the Storm program. He developed a divorce parenting program by combining the Children in Between and After the Storm which was presented across a larger county in Southern California. Dr. Billings’s clinical interests are in parenting, divorce parenting, and grief and loss with children. Dr. Billings currently works as a Clinical Director of a non-profit counseling agency that specializes in working with families in distress. He also works part time as an Assistant Professor for a graduate program training Masters and Ph.D. level students for a career in Marriage and Family Therapy.</p>
    <h3>Contact Information:</h3>
    <p>If you are interested in consulting with Dr. Billings please contact him by email at Billingsconsulting@verizon.net with a brief description of your situation and specific questions or concerns that you have. When e-mailing, please include your name, telephone number, and the best time that you may be reached. His consultation fees are $25 for 20 minutes, $35 for 30 minutes and $50 for 45 minutes. Payments from bank accounts, credit or debit cards may be made through the secured site of Paypal (https://www.paypal.com)</p>
  </section>
</article>

Styleguide 3.15
*/
.person {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  @media (min-width: 650px) {
    .person {
      border-bottom: 1px solid #F2F2F2;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      margin-bottom: 18px; }
      .person:last-child {
        border-bottom: 0;
        margin-bottom: 0; } }
  .person img {
    display: block;
    height: auto;
    width: 100%; }
  .person .image {
    margin-bottom: 18px; }
    @media (min-width: 650px) {
      .person .image {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        margin-right: 18px; } }
  @media (min-width: 650px) {
    .person .text {
      -webkit-box-flex: 4;
          -ms-flex: 4;
              flex: 4; } }

/*
Progress Bar

Markup:
<ul class="progressbar">
  <sg-insert>3.31-2</sg-insert>
  <sg-insert>3.31-2</sg-insert>
  <sg-insert>3.31-1</sg-insert>
  <sg-insert>3.31-1</sg-insert>
</ul>

Styleguide 3.30
*/
.progressbar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-top: 22px;
  position: relative; }
  .progressbar::after {
    background-color: #F2F2F2;
    border-radius: 13px;
    content: '';
    display: block;
    height: 13px;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10; }
  .progressbar li {
    list-style: none; }

/*
Progress Bar Item

The SC5 demo doesn't quite work here, as first-child comes into play. See 3.30 instead.

Default - Default state
.progressbaritem-is-active - When it's been active/complete

Markup:
<li class="progressbaritem {$modifiers}" style="width:25%">Step</li>

Styleguide 3.31
*/
.progressbaritem {
  color: #696969;
  position: relative;
  z-index: 50; }
  .progressbaritem::after {
    background-color: #F2F2F2;
    border-radius: 20px;
    content: '';
    display: block;
    height: 20px;
    left: -3px;
    position: absolute;
    top: -25.5px;
    width: 20px; }
  .progressbaritem.progressbaritem-is-active::after {
    background-color: #28ade3; }
  .progressbaritem.progressbaritem-is-active:not(:first-child)::before {
    background-color: #28ade3;
    content: '';
    display: block;
    height: 13px;
    position: absolute;
    right: 100%;
    top: -22px;
    width: 100%; }

/*
Quiz

Markup:
<div class="quiz guided-question">
    <h2>Question 1 of 11</h2>
    <h1>Why does conflict over money easily occur after divorce or separation?</h1>
    <form action="#">
        <ol class="answer-list" id="quiz"><li>
    <label for="0">
        <input id="0" type="radio" name="quiz">
        <p>Money usually becomes tighter for both parents.</p>
        <div class="fake-radio"></div>
    </label>
</li><li>
    <label for="1">
        <input id="1" type="radio" name="quiz">
        <p>Many parents who pay support resent having no say in how the money is spent.</p>
        <div class="fake-radio"></div>
    </label>
</li><li>
    <label for="2">
        <input id="2" type="radio" name="quiz">
        <p>The person receiving support often truly believes it is not enough to cover expenses.</p>
        <div class="fake-radio"></div>
    </label>
</li><li>
    <label for="3">
        <input id="3" type="radio" name="quiz">
        <p>The person paying support truly believes they are paying too much, especially if they have other financial obligations.</p>
        <div class="fake-radio selected"></div>
    </label>
</li><li>
    <label for="4">
        <input id="4" type="radio" name="quiz">
        <p>All of the above.</p>
        <div class="fake-radio"></div>
    </label>
</li></ol>
        <section class="controls">
            <div class="feedback" id="check_answer"><h2 class="incorrect">Incorrect.</h2><p>This is true, but they are just looking at it from their own point of view. Other answers are also correct.</p></div>
            <input type="submit" id="submit" class="button next" value="Next">
        </section>
    </form>
    <div class="score" id="correct_incorrect"><p>Correct: 0 / Incorrect: 1</p></div>
</div>

Styleguide 3.16
*/
.quiz form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.quiz .controls {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  @media (min-width: 960px) {
    .quiz .controls {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between; } }

.quiz .feedback h2 {
  font-weight: bold;
  font-size: 24px;
  line-height: 1em;
  margin-bottom: 0; }
  .quiz .feedback h2.incorrect {
    color: #e75345; }
  .quiz .feedback h2.correct {
    color: #9aba38; }

.quiz .feedback p {
  margin-bottom: 0; }

.quiz .answer-list {
  font-size: 14px;
  margin-left: 45px; }
  @media (min-width: 960px) {
    .quiz .answer-list {
      font-size: 24px; } }
  .quiz .answer-list li {
    list-style: upper-alpha inside;
    margin-bottom: 9px;
    min-height: 32px;
    padding-top: .25em;
    position: relative; }
    @media (min-width: 960px) {
      .quiz .answer-list li {
        padding-top: 0; } }
    .quiz .answer-list li [type="checkbox"], .quiz .answer-list li [type="radio"] {
      left: -9999px;
      position: absolute; }
    .quiz .answer-list li label {
      cursor: pointer; }
    .quiz .answer-list li p {
      font-size: 14px;
      margin-bottom: 0; }
      @media (min-width: 960px) {
        .quiz .answer-list li p {
          font-size: 24px; } }
    .quiz .answer-list li .fake-radio {
      background: url("images/quiz-unselected.png") center center no-repeat;
      background-size: contain;
      width: 30px;
      height: 32px;
      display: block;
      position: absolute;
      top: 0;
      left: -45px; }
      @media (min-width: 960px) {
        .quiz .answer-list li .fake-radio {
          top: 3px; } }
      .quiz .answer-list li .fake-radio.selected {
        background: url("images/quiz-selected.png") center center no-repeat; }

.quiz .button {
  font-size: 18px;
  margin-right: 0;
  margin-bottom: 0; }
  .quiz .button#submit {
    background-color: #28ade3; }
  .quiz .button.next {
    -ms-flex-item-align: end;
        align-self: flex-end; }
  .quiz .button:hover {
    background: #198fbf; }

.quiz .score {
  border-top: 1px solid #cccccc;
  margin-top: 18px;
  padding: 18px 0; }
  .quiz .score p {
    font-size: 14px; }
    @media (min-width: 960px) {
      .quiz .score p {
        font-size: 18px;
        text-align: right; } }

/*
Receipt

Markup:
<section class="receipt">
  <div>
    <h1>Account Information</h1>
    <p><span>Username: jaasum</p>
    <p><span>Expiration Date:</span> 12/12/18.</p>
  </div>
  <a class="receipt-x-print" href="javascript:if(window.print)window.print()">Print this page for your records</a>
  <a class="button" href="#">Go to course</a>
</section>

Styleguide 3.32
*/
.receipt {
  margin-bottom: 18px;
  padding: 0 18px 18px; }
  .receipt div {
    background: #F2F2F2;
    margin-bottom: 18px;
    padding: 18px; }
    .receipt div h1 {
      line-height: 1.2;
      margin-bottom: 4.5px; }
    .receipt div p {
      color: #28ade3;
      font-size: 18px;
      font-weight: normal;
      margin-bottom: 9px; }
    .receipt div a {
      font-weight: normal; }
    .receipt div span {
      color: #696969; }
  .receipt > a {
    display: block;
    font-size: 18px;
    font-weight: normal;
    text-align: center; }
  .receipt .receipt-x-print {
    margin-bottom: 18px; }

/*
Requirements List

Markup:
<section id="requirements_list" class="requirements-list">
  <section class="controls">
    <button id="requirements-toggle" class="toggle">Toggle Requirements</button>
    <div class="timer">
      <div style="" class="timer-content">
        <section>
          <h1 id="timer_title">Timer Requirement</h1>
          <p class="tooltip"><a href="#whats-this-modal">What's this?</a></p>
        </section>
        <p id="requirements-timer" class="timer-value">2:46</p>
      </div>
    </div>
  </section>
  <ul id="requirements-categories" class="categories">
    <li>
      <h3>Introduction</h3>
      <ul id="introduction-requirements">
        <li class="complete"><a class="state-notifications" href="#">State Notifications</a></li>
        <li class="complete"><a class="intro-video" href="/peterson/">Introductory Video</a></li>
        <li class="state-county-reqs in-progress"><a class="state-county-reqs" href="#">State/County Requirements</a></li>
      </ul>
    </li>
    <li>
      <h3>Course Content</h3>
      <ul id="course-content-requirements">
        <li class="in-progress"><a href="#" class="chapter_view" data-chapterid="3">01: Carrying Messages</a></li>
        <li class="in-progress"><a href="#" class="chapter_view" data-chapterid="4">02: Put Downs</a></li>
        <li class=""><a href="#" class="chapter_view" data-chapterid="5">03: Money Problems</a></li>
        <li class=""><a href="#" class="chapter_view" data-chapterid="6">04: Questioning</a></li>
        <li class=""><a href="#" class="chapter_view" data-chapterid="7">05: Long Distance Parenting</a></li>
        <li class="unavailable "><a href="#" class="chapter_view" data-chapterid="9">06: Conclusion</a></li>
      </ul>
    </li>
  </ul>
</section>

Styleguide 3.17
*/
section.requirements-list {
  background: #155a76;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #fff;
  margin-top: -54px;
  position: fixed;
  top: 100%;
  -webkit-transition: top .5s ease-out;
  transition: top .5s ease-out;
  z-index: 101;
  width: 100%; }
  @media (min-width: 950px) {
    section.requirements-list {
      bottom: auto;
      -ms-flex-preferred-size: 340px;
          flex-basis: 340px;
      height: auto;
      left: auto;
      margin-top: 0;
      position: relative;
      width: auto;
      z-index: 0; } }
  section.requirements-list .toggle {
    background: url("images/requirements-list-toggle.svg") no-repeat 27px 13.5px;
    border: 0;
    border-right: 1px solid #fff;
    display: block;
    height: 54px;
    outline: none;
    padding: 0 18px 0 45px;
    position: relative;
    text-indent: -9999px;
    width: 23px; }
    @media (min-width: 950px) {
      section.requirements-list .toggle {
        display: none; } }
    section.requirements-list .toggle:before {
      background: url("images/requirements-list-toggle-arrow.svg") center center no-repeat;
      background-size: contain;
      content: '';
      display: block;
      height: 7px;
      left: 9px;
      margin-top: -3.5px;
      position: absolute;
      top: 50%;
      width: 10px; }
  section.requirements-list .categories {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 100%;
    list-style: none;
    overflow-y: auto;
    padding: 54px 0 18px; }
    @media (min-width: 950px) {
      section.requirements-list .categories {
        height: auto;
        overflow-y: auto; } }
    section.requirements-list .categories h3 {
      font-weight: bold;
      margin-bottom: 9px; }
    section.requirements-list .categories .instructor_section_view.active {
      color: #28ade3; }
    section.requirements-list .categories > li {
      margin: 36px 0 18px 36px; }
      section.requirements-list .categories > li.current h3 a {
        color: #28ade3; }
      section.requirements-list .categories > li.current ul li.current a {
        color: #28ade3;
        font-weight: bold; }
      section.requirements-list .categories > li ul.default-content > li a {
        background: url("images/requirements-list-not-attempted.png") right center no-repeat; }
      section.requirements-list .categories > li ul.default-content > li.failed a {
        background: url("images/requirements-list-not-failed.png") right center no-repeat; }
      section.requirements-list .categories > li ul.default-content > li.in-progress a {
        background: url("images/requirements-list-inprogress.png") right center no-repeat; }
      section.requirements-list .categories > li ul.default-content > li.complete a {
        background: url("images/requirements-list-complete.png") right center no-repeat; }
      section.requirements-list .categories > li ul.default-content > li.unavailable a {
        opacity: .5;
        pointer-events: none;
        cursor: default; }
      section.requirements-list .categories > li ul.instructor-content > li > a {
        background: url("images/instructor-content-expand.png") right center no-repeat; }
      section.requirements-list .categories > li ul.instructor-content > li.expanded > a {
        background: url("images/instructor-content-collapse.png") right center no-repeat; }
      section.requirements-list .categories > li ul.instructor-content ul.instructor-submenu {
        margin: 0; }
        section.requirements-list .categories > li ul.instructor-content ul.instructor-submenu li {
          display: none;
          border-top: 1px solid rgba(255, 255, 255, 0.1);
          border-bottom: none; }
          section.requirements-list .categories > li ul.instructor-content ul.instructor-submenu li a {
            padding: 5px 20px; }
      section.requirements-list .categories > li ul.instructor-content .expanded ul.instructor-submenu li {
        display: block; }
      section.requirements-list .categories > li ul {
        margin-left: 0;
        padding: 0;
        margin: 0 0 18px; }
        section.requirements-list .categories > li ul li {
          border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
          section.requirements-list .categories > li ul li a {
            font-weight: normal;
            padding: .5em 0;
            margin-right: 1em;
            padding-right: 36px;
            display: block;
            text-overflow: ellipsis; }
      section.requirements-list .categories > li a {
        color: #fff; }
  section.requirements-list .controls {
    background: #013850;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 54px;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 50; }
  section.requirements-list .timer {
    width: 100%; }
  section.requirements-list .timer-content {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 54px;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 0 18px; }
    section.requirements-list .timer-content h1 {
      font-size: 14px; }
    section.requirements-list .timer-content .timer-value {
      font-size: 36px;
      font-weight: bold;
      line-height: 1em; }
    section.requirements-list .timer-content p.tooltip {
      color: #28ade3;
      line-height: 1em;
      position: relative; }
      section.requirements-list .timer-content p.tooltip span {
        background: #28ade3;
        bottom: 10px;
        border-radius: 5px;
        color: #fff;
        display: block;
        font-weight: normal;
        font-size: 14px;
        left: -9999px;
        line-height: 1.5em;
        padding: 9px;
        position: absolute;
        white-space: normal;
        width: 1 54px;
        z-index: 1000; }
      section.requirements-list .timer-content p.tooltip:hover span {
        bottom: 105%;
        left: 50%;
        margin-left: -75px; }
    section.requirements-list .timer-content.ticktock h2 {
      background: #28ade3;
      width: 80%;
      color: #fff;
      padding: 3px 1em; }
    section.requirements-list .timer-content.ticktock h1 {
      color: #28ade3; }
  section.requirements-list.done h2 {
    background: #9aba38;
    width: 80%;
    color: #fff;
    padding: 3px 1em; }
  section.requirements-list.done h1 {
    color: #9aba38; }
  section.requirements-list.is-expanded {
    bottom: auto;
    height: 100%;
    margin-top: 0;
    top: 0;
    width: 100%; }
    section.requirements-list.is-expanded .toggle:before {
      -webkit-animation: turn-in .5s ease-out forwards;
              animation: turn-in .5s ease-out forwards; }
  section.requirements-list.is-collapsed .toggle:before {
    -webkit-animation: turn-out .5s ease-out forwards;
            animation: turn-out .5s ease-out forwards; }

/*
Resources

Markup:
<div class="resources-container l-containerhorizontal">
  <header class="page-title page-title-course">
    <h1>Resources</h1>
  </header>
  <div class="resources-l-course">
    <nav class="navigation navigation-page glossary-navigation" id="glossary-navigation">
      <header>
        <h2 class="navigation-title">Glossary Menu</h2>
        <button class="menu-toggle is-inactive" id="menu-toggle"><span class="visually-hidden"> Menu</span></button>
      </header>
      <ul class="menu menu-page is-inactive">
        <li class="menu-item menu-item-page" onclick="show_glossary('Active Listening', '/media/audio/ACTIVE_LISTENING_1.mp3');"><span>Active Listening</span></li>
        <li class="menu-item menu-item-page" onclick="show_glossary('Empathy', '/media/audio/EMPATHY_1.mp3');"><span>Empathy</span></li>
        <li class="menu-item menu-item-page" onclick="show_glossary('I Message', '/media/audio/I_MESSAGES_1.mp3');"><span>I Message</span></li>
        <li class="menu-item menu-item-page" onclick="show_glossary('Impulse Control', '/media/audio/IMPULSE_CONTROL_1_1.mp3');"><span>Impulse Control</span></li>
        <li class="menu-item menu-item-page" onclick="show_glossary('Polite Request', '/media/audio/POLITE_REQUEST_1.mp3');"><span>Polite Request</span></li>
      </ul>
    </nav>
    <section class="resources-content">
      <article class="glossary-definition text-container" style="" term="Active Listening" id="glossary-term-active-listening">
        <h1>Active Listening</h1>
        <p>When we actively listen to someone, we are making a real effort to hear and understand what they are saying.  We are not thinking about our own reaction to what is being said; instead we are listening deeply and with all of our attention. The next step is to let the other person know you have been listening by doing one of three things:<br>
          1) rewording or paraphrasing what they have said and repeating it back to them;<br>
          2) stating the meaning of what they said;<br>
          3) guessing at and stating the underlying feeling of what they said.<br>
          <br>
          Examples of each of these three levels of active listening follow:<br>
          <br>
          1) Rewording  Speaker:  I can’t believe how long it took me to get here. The traffic was pretty bad. Listener:  The traffic was bad and it took you longer than you thought to get here.<br>
          <br>
          2) Meaning  Listener:  You were surprised the trip took so long due to traffic delays.<br>
          <br>
          3) Feeling  Listener:  You sound frustrated that you got here later than you
          expected.<br>
          <br>
          Active listening shows respect for the speaker and encourages more open and pleasant communication. Parents need to use this skill with their children and each other.</p>
      </article>
    </section>
  </div>
</div>

Styleguide 3.18
*/
.resources-container {
  margin-bottom: 18px; }
  .resources-container .page-title {
    margin-bottom: 0; }

@media (min-width: 950px) {
  .resources-l-course {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    padding: 0 18px; }
    .resources-l-course .resources-navigation {
      -ms-flex-preferred-size: 25%;
          flex-basis: 25%; } }

.resources-content {
  padding-top: 18px; }
  @media (min-width: 950px) {
    .resources-content {
      -ms-flex-preferred-size: 75%;
          flex-basis: 75%; } }

/*
Rule

Markup:
<hr class="rule">

Styleguide 3.56
*/
.rule {
  border: 0;
  border-top: 1px solid #F2F2F2;
  margin: 0;
  padding: 0; }

/*
Score

Markup:
<div id="quiz_score">
  <h2>Quiz Results</h2>
  <h3>Your score on the Questioning quiz was:</h3>
  <h1>38%</h1>
  <h3 id="passing_header">Unfortunately, you need at least 70% to pass. Please review the Chapter and attempt the Quiz again.</h3>
  <a class="button" id="repeat_chapter" href="">Try Questioning Again</a>
  <p>or <a id="return_to_dashboard" href="">Return to Gallery</a></p>
</div>

Styleguide 3.20
*/
#quiz_score {
  background: #fff;
  border: 1px solid #cccccc;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 18px;
  overflow: hidden;
  padding: 36px 18px;
  text-align: center;
  width: auto; }
  @media (min-width: 960px) {
    #quiz_score {
      margin: 36px auto;
      padding: 36px 72px; } }
  #quiz_score h1, #quiz_score h3, #quiz_score .button {
    margin-bottom: 9px; }
  #quiz_score h1 {
    font-size: 64px;
    line-height: 1em; }
    @media (min-width: 960px) {
      #quiz_score h1 {
        font-size: 120px; } }
  #quiz_score h2 {
    font-size: 18px;
    margin-bottom: 0; }
    @media (min-width: 960px) {
      #quiz_score h2 {
        font-size: 24px; } }
  #quiz_score h3 {
    font-size: 14px;
    line-height: 1.5em; }
    @media (min-width: 960px) {
      #quiz_score h3 {
        color: #555555;
        font-size: 18px; } }
  #quiz_score .button {
    width: 100%; }
  #quiz_score div.skills-practice {
    width: 100%;
    float: none;
    padding: 18px 0 0 0;
    border-top: 1px solid #F2F2F2; }
    #quiz_score div.skills-practice ul {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; }
      @media (min-width: 960px) {
        #quiz_score div.skills-practice ul {
          -webkit-box-orient: horizontal;
          -webkit-box-direction: normal;
              -ms-flex-direction: row;
                  flex-direction: row; } }
      #quiz_score div.skills-practice ul li {
        float: left;
        text-align: left;
        -webkit-box-flex: 1;
            -ms-flex: 1 0 auto;
                flex: 1 0 auto; }
        @media (min-width: 960px) {
          #quiz_score div.skills-practice ul li {
            -webkit-box-flex: 1;
                -ms-flex: 1 1 50%;
                    flex: 1 1 50%; } }
        @media (min-width: 960px) {
          #quiz_score div.skills-practice ul li:nth-child(odd) {
            margin-right: 18px; } }
        #quiz_score div.skills-practice ul li a {
          padding-bottom: .5em; }

/*
Skills Practice

Markup:
<div class="skills-practice " style="">
  <header class="page-title">
    <h1>Skills Practice</h1>
    <p> </p>
  </header>
  <ul>
    <li class="completed" id="skillpractice-1">
      <a class="skillpractice_view" href="#">Active Listening</a>
      <p><a class="skillpractice" href="#"></a></p>
    </li>
    <li class="completed" id="skillpractice-2">
      <a class="skillpractice_view" href="#">I Messages</a>
      <p><a class="skillpractice" href="#"></a></p>
    </li>
    <li class="completed" id="skillpractice-3">
      <a class="skillpractice_view" href="#">Self-Talk</a>
      <p><a class="skillpractice" href="#"></a></p>
    </li>
    <li class="" id="skillpractice-4">
      <a class="skillpractice_view" href="#">Reframing</a>
      <p><a class="skillpractice" href="#"></a></p>
    </li>
  </ul>
</div>

Styleguide 3.21
*/
/*
Skills Practice Resource

Markup:
<div class="quiz_question quiz_question_resource">
  <div class="text">
    <div class="image">
      <img src="/images/download.svg" width="26" height="49">
    </div>
    <div class="description">
      <p class="file_name">Mindfulness_Meditation.mp3</p>
      <p>Meditation MP3 Download</p>
    </div>
  </div>
  <div class="action">
    <a class="button" href="/media/skillpractice/attachment/Mindfulness_Meditation.mp3">Download</a>
  </div>
</div>

Styleguide 3.21.1
*/
/*
Skills Practice Question

Markup:
<section class="quiz_question" id="question_2">
  <ul class="quiz">
    <li>
      <p class="question">Shandra has been putting off doing her homework until late at night when she is tired. She gets poor grades. When Mom asks her to start her homework earlier, Shandra angrily says to get off her case.  Mom says:  </p>
    </li>
    <li class="clearfix">
      <span id="answer_6" class="correct">Correct</span>
      <label for="answer_6">a) You don’t like it when I am the homework reminder machine.</label>
    </li>
    <li class="clearfix">
      <span id="answer_7" class="incorrect">Incorrect</span>
      <label for="answer_7">b) Homework is not a punishment. No one likes to do it, but we all had to. </label>
    </li>
    <li class="clearfix">
      <span class="incorrect">Incorrect answer</span>
      <label for="answer_8">c)  You would be less frustrated if you started earlier.</label>
    </li>
    <li class="clearfix">
      <input type="radio" name="question_9" id="answer_9" value="9">
      <label for="answer_9">d) I'm sorry, I should not have pressured you.</label>
    </li>
  </ul>
  <div id="check_answer" class="clearfix">
    <button class="button red">Check Answer</button>
  </div>
  <p class="feedback"><span class="incorrect">Incorrect:</span> Mom gives advice instead of reflecting.</p>
</section>

Styleguide 3.21.2
*/
.skills-practice ul {
  margin: 0 18px; }
  .skills-practice ul li {
    margin: 0 0 18px;
    background: whitesmoke url("images/skillspractice-incomplete.png") 7px 7px no-repeat; }
    .skills-practice ul li:hover {
      background-color: #ededed; }
    .skills-practice ul li.completed {
      background: rgba(154, 186, 56, 0.2) url("images/skillspractice-complete.png") 7px 7px no-repeat; }
    .skills-practice ul li p {
      padding: 0 2em .5em 3.5em; }
      .skills-practice ul li p a {
        font-size: 14px;
        color: #000;
        padding: 0; }
    .skills-practice ul li a {
      padding: .5em 1em 0em 2.5em;
      display: block;
      font-size: 18px; }

.quiz_question {
  background: #fff;
  border-radius: 5px;
  border: 1px solid #F2F2F2;
  margin: 18px;
  padding: 18px; }
  .quiz_question .feedback {
    margin-top: 18px; }
  .quiz_question ul.quiz li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 18px;
    margin-bottom: 25px; }
    .quiz_question ul.quiz li:first-child {
      margin-bottom: 0; }
    .quiz_question ul.quiz li h3 {
      margin-bottom: 25px; }
  .quiz_question ul.quiz [type=radio] {
    display: block;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25px;
            flex: 0 0 25px;
    margin: 9px 9px 0 0;
    cursor: pointer; }
  .quiz_question ul.quiz label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    line-height: 1.62em;
    display: block;
    font-size: 18px; }
  .quiz_question ul.quiz span {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25px;
            flex: 0 0 25px;
    margin: 4.5px 9px 0 0; }
    .quiz_question ul.quiz span.correct {
      background: url("images/skillspractice-correct.png") no-repeat;
      width: 25px;
      height: 18px;
      display: inline-block;
      text-indent: -9999px; }
    .quiz_question ul.quiz span.incorrect {
      background: url("images/skillspractice-incorrect.png") no-repeat;
      width: 19px;
      height: 19px;
      text-indent: -9999px; }
  .quiz_question span.incorrect {
    font-weight: bold;
    color: #b20000; }
  .quiz_question span.correct {
    font-weight: bold;
    color: #2d5f00; }
  .quiz_question .question {
    font-size: 18px;
    line-height: 1.2;
    color: #26111a;
    font-weight: bold;
    padding-bottom: 20px; }
  .quiz_question #check_answer {
    padding-top: 18px;
    border-top: 1px solid #F2F2F2; }
    .quiz_question #check_answer .button {
      width: 100%; }
      @media (min-width: 960px) {
        .quiz_question #check_answer .button {
          padding: 9px 18px;
          width: auto; } }

@media (min-width: 400px) {
  .quiz_question_resource {
    display: inline-block; } }

.quiz_question_resource .text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.quiz_question_resource .image {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  margin-right: 18px; }

.quiz_question_resource .description {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto; }

.quiz_question_resource .file_name {
  font-weight: bold; }

.quiz_question_resource .action {
  border-top: 1px solid #F2F2F2;
  margin-top: 9px;
  padding-top: 18px;
  padding-left: 36px;
  padding-right: 36px; }

.quiz_question_resource .button {
  width: 100%;
  padding-bottom: 9px;
  padding-top: 9px; }

.next_skill {
  display: block;
  margin: 0 auto 18px; }

/*
State Requirements

Markup:
<section class="state-requirements-module">
  <ul>
    <li class="complete">
      <h3>MN Child Custody &amp; Parenting Time (Visitation)</h3>
      <p></p>
      <ul>
        <li class="complete">
          <h4>Read:  Basics on Child Custody &amp; Parenting Time (Visitation)</h4>
          <p>Here you will learn more about (1) Types of Custody in Minnesota; (2) What is "parenting time?"; (3) Going to Court without a lawyer; (4) Fees and Costs; and much more!</p>
          <a href="http://www.mncourts.gov/selfhelp/?page=1810" id="17" target="_blank" class="button">View Resource</a>
        </li>
        <li class="complete">
          <h4>Read:  A Parental Guide to Making Child-Focused Parenting Time Decisions</h4>
          <p>Prepared by the MN Supreme Court Task Force -- provides additional information on age appropriate considerations based on the developmental stages of your child.  </p>
          <a href="http://online.divorce-education.com/media/cms/pdf/Parenting%20%20Time%20Pamphlet%20(MN%20AOC)%20English.pdf" id="19" target="_blank" class="button">View Resource</a>
        </li>
      </ul>
    </li>
    <li class="incomplete">
      <h3>Child Support In Minnesota</h3>
      <p></p>
      <ul>
        <li class="incomplete">
          <h4>Read:  Child Support Basics in Minnesota</h4>
          <p>This booklet provides basic information about how child support is set, collected and changed. It has information on Minnesota’s child support guidelines called “Income Shares.” </p>
          <a href="http://online.divorce-education.com/media/cms/pdf/MN%20Legal%20Aid%20Booklet%20-%20Child%20Support%20Basics%20(rivsed%207th%20edition%2C%202012)%20ENGLISH.pdf" id="26" target="_blank" class="button">View Link and Complete Requirement</a>
        </li>
        <li class="incomplete">
          <h4>Read: Understanding Child Support in Minnesota</h4>
          <p>This handbook gives general information about Minnesota’s child support program. Because parentage and child support are important issues, you may wish to contact an attorney. The Minnesota Department of Human Services (DHS) Child Support Enforcement Division and county child support agencies can help you if you apply for or are referred for child support services, but they cannot give you legal advice about your case.</p>
          <a href="http://online.divorce-education.com/media/cms/pdf/MN%20DHS%20-%20Understanding%20Child%20Support%20(ENGLISH)%202011.pdf" id="28" target="_blank" class="button">View Link and Complete Requirement</a>
        </li>
      </ul>
    </li>
  </ul>
</section>

Styleguide 3.22
*/
.state-requirements-module {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }
  .state-requirements-module .button {
    display: inline-block;
    padding: 9px 18px; }
  .state-requirements-module h3,
  .state-requirements-module h4 {
    background-repeat: no-repeat;
    line-height: 1.2em;
    min-height: 25px;
    padding-left: 36px; }
  .state-requirements-module h3 {
    background-position: 18px 0;
    margin-bottom: 9px;
    padding: 0 18px 0 54px; }
  .state-requirements-module h4 {
    font-weight: bold;
    margin-bottom: 9px;
    padding-left: 36px;
    padding-top: 3px; }
  .state-requirements-module p {
    margin-bottom: 9px;
    overflow: hidden; }
  .state-requirements-module ul > li {
    margin-bottom: 18px; }
    @media (min-width: 960px) {
      .state-requirements-module ul > li {
        border-top: 1px solid #ccc;
        padding-top: 18px; }
        .state-requirements-module ul > li:first-of-type {
          border-top: 0;
          padding-top: 0; } }
    .state-requirements-module ul > li p {
      margin-left: 18px; }
  .state-requirements-module ul ul {
    border-top: 1px solid #ccc;
    margin-top: 18px; }
    @media (min-width: 960px) {
      .state-requirements-module ul ul {
        border-top: 0;
        margin-left: 36px; } }
  .state-requirements-module li li {
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-bottom: 36px;
    padding-left: 18px;
    padding-right: 18px; }
    @media (min-width: 960px) {
      .state-requirements-module li li {
        display: block; } }
    .state-requirements-module li li p,
    .state-requirements-module li li .button {
      margin-left: 36px; }
    .state-requirements-module li li:first-child {
      margin-top: 36px; }
  .state-requirements-module .requirements-list {
    padding-left: 18px; }
  .state-requirements-module .incomplete > h3,
  .state-requirements-module .incomplete > h4 {
    background-image: url("images/check-incomplete.png"); }
  .state-requirements-module .complete > h3,
  .state-requirements-module .complete > h4 {
    background-image: url("images/check-complete.png"); }

/*
Text Container

Markup:
<article class="text-container l-containerhorizontal l-containerhorizontal-small">
  <h1>HTML Ipsum Presents</h1>
  <p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
  <h2>Header Level 2</h2>
  <ol>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
    <li>Aliquam tincidunt mauris eu risus.</li>
  </ol>
  <blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
  <h3>Header Level 3</h3>
  <ul>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
    <li>Aliquam tincidunt mauris eu risus.</li>
  </ul>
  <pre><code>
    #header h1 a {
    display: block;
    width: 300px;
    height: 80px;
    }
  </code></pre>
</article>

Styleguide 3.23
*/
.text-container {
  padding-left: 18px;
  padding-right: 18px; }
  .text-container h1,
  .text-container h2,
  .text-container h3,
  .text-container h4,
  .text-container h5,
  .text-container h6 {
    line-height: 1.2; }
  .text-container h1,
  .text-container h2,
  .text-container h3,
  .text-container h4,
  .text-container h5,
  .text-container h6,
  .text-container p,
  .text-container ol,
  .text-container ul,
  .text-container blockquote,
  .text-container figure,
  .text-container address {
    margin-bottom: 18px; }
  .text-container li {
    margin-bottom: 9px; }
  .text-container ul li {
    list-style: disc inside; }
  .text-container ol li {
    list-style: decimal inside; }
  .text-container strong {
    font-weight: bold; }
  .text-container em {
    font-style: italic; }

.text-container-padding-none {
  padding-left: 0;
  padding-right: 0; }

/*
text-body-color

Markup:
<div class="tex-body-color">
Body text.
</div>

Styleguide 3.50
*/
.text-body-color {
  color: #696969; }

.video {
  padding: 0 18px;
  margin: 0 0 18px; }
  @media (min-width: 960px) {
    .video {
      margin-bottom: 36px; } }

/*
visuallyhidden

Visualy hides an object

Markup:
  <div>The div bellow me is invisible</div>
  <div class="visuallyhidden">I'm invisible</div>


Styleguide 3.54
*/
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
Utility: Text

Markup:
<p class="u-text-small">Small</small>

Styleguide 3.58
*/
.u-text-small {
  font-size: 12px; }

/*
Unregistered Gift

Markup:
  <div class="page-title unregisteredGift">
      <div>
          <h1>tifa.tifa@gmail.com</h1>
          <a>Change Email</a>
          <p class="unregisteredGift-x-giftAccount">Gift Account</p>
          <p class="unregisteredGift-x-purchase">Purchased 06/12/2016 by parent@example.com</p>
          <p class="unregisteredGift-x-notActivated">Not Activated</p>
      </div>
      <div class="unregisteredGift-x-stackedButton">
          <a class="button" href="#">Resend Invite</a>
          <a class="button" href="#">Cancel Gift Invite</a>
      </div>
  </div>

Styleguide 3.47
*/
.unregisteredGift {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }
  .unregisteredGift h1 {
    font-size: 36px;
    line-height: 38px; }
  .unregisteredGift a {
    margin-bottom: 18px;
    display: block; }
  @media (min-width: 960px) {
    .unregisteredGift {
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }
  .unregisteredGift section {
    margin-bottom: 18px; }
    @media (min-width: 960px) {
      .unregisteredGift section {
        margin-bottom: 0; } }
  .unregisteredGift p.unregisteredGift-x-purchase,
  .unregisteredGift p.unregisteredGift-x-giftAccount {
    font-size: 18px;
    margin-top: 0;
    margin-bottom: 0; }
  .unregisteredGift p.unregisteredGift-x-notActivated {
    margin-top: 18px; }
  .unregisteredGift .unregisteredGift-x-stackedButton {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .unregisteredGift .unregisteredGift-x-stackedButton a:first-of-type {
      margin-bottom: 18px; }

/*
Upsell

Markup:
<article class="upsell">
  <div class="upsell-x-image">
    <img src="http://placehold.it/128x96">
  </div>
  <div class="upsell-x-text">
    <h3><a href="#">Upsell Title</a></h3>
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.</p>
  </div>
</article>

Styleguide 3.59
*/
.upsell h3 {
  font-size: 18px; }

.upsell p {
  font-size: 12px; }

@media (min-width: 400px) {
  .upsell {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    .upsell .upsell-x-image {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      margin-right: 18px; }
    .upsell .upsell-x-text {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 100%;
              flex: 1 1 100%; } }

/*
Wrap

Wrap is used to set the background / text color of an item.

Default - White background
.wrap-branddark - Dark brand color
.wrap-lightgrey - A light grey background
.wrap-course - Wraps the course content (videos, quizes, etc)

Markup:
<div class="wrap {$modifiers}">I am wrapped</div>

Styleguide 3.33
*/
.wrap {
  background-color: #fff; }

.wrap-branddark {
  background-color: #155a76;
  color: #fff; }

.wrap-lightgrey {
  background-color: #F2F2F2; }

.wrap-course {
  background: #f4f4f4; }
  @media (min-width: 950px) {
    .wrap-course {
      -webkit-box-shadow: inset 0px 0px 1px rgba(0, 0, 0, 0.5);
              box-shadow: inset 0px 0px 1px rgba(0, 0, 0, 0.5); } }

/*
Module Rules (Marketing)

Styleguide 4.0
*/
/*
Button Callout

Markup:
<section class="l-wrap wrap buttoncallout">
  <a href="" class="button button-ppc">Sign Up Now</a>
  <p>Guaranteed acceptance in Maricopa County, Arizona!</p>
</section>

Styleguide 4.2
*/
.buttoncallout {
  text-align: center; }
  .buttoncallout p {
    color: #155a76;
    font-weight: bold;
    line-height: 1.2;
    margin-top: 18px; }
    @media (min-width: 650px) {
      .buttoncallout p {
        font-size: 18px;
        margin-left: auto;
        margin-right: auto;
        width: 337px; } }

/*
Course Overview

Markup:
<div class="l-wrap wrap courseoverview">
  <section class="chapters">
    <h2>Covered in the course</h2>
    <ul>
      <li>Money Problems</li>
      <li>Children Carrying Messages</li>
      <li>Putting Down the Other Parent</li>
      <li>Long Distance Parenting</li>
      <li>Quizzing Children About the Other Parent</li>
    </ul>
  </section>
  <section class="praise" id="praise">
    <h2>Praise for Children In Between</h2>
    <div class="slider">
      <div>
        <blockquote>
          <h4>"Children in Between Online made me think very hard about my actions with my soon to be ex-spouse and what is best for our son."</h4>
          <cite>Molly Dever, Shepherdsville, KY</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"This program was recommended by our co-parenting counselor and I would recommend it to other couples who are thinking about or getting a divorce involving children.  In fact, I have recommended it to one of my co-workers already. What was most useful for me was the different techniques of communication - self talk, "I" statements, etc."</h4>
          <cite>Diane Hodges, Fairbanks, AK</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"After taking CIBO and putting the skills I learned into practice, my kids are much more at ease and know that they can talk to daddy about anything, and it's OK. I recommend this class to everyone!"</h4>
          <cite>Richard Demarco, Grants Pass, Oregon</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"We've been using Children In Between program distributed by the Center for Divorce Education for 10 years. It's been life changing for so many families!"</h4>
          <cite>Doak Givan, Executive Director of Family Services Center, Inc.</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"I highly recommend CIBO to anyone who wants to have a closer, more respectful relationship with the other parent and children."</h4>
          <cite>John Parker, Roseburg, Oregon</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"Excellent...Superb...I was impressed with the quality."</h4>
          <cite>Hon. Cheryl Karner, Domestic Relations Judge</cite>
        </blockquote>
      </div>
    </div>
  </section>
</div>

Styleguide 4.3
*/
.courseoverview {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .courseoverview > * {
    border: 1px solid rgba(40, 173, 227, 0.5);
    padding: 36px 54px; }
    .courseoverview > *:first-child {
      margin-bottom: 18px; }
    .courseoverview > *.chapters ul {
      margin-top: 2em; }
      .courseoverview > *.chapters ul li {
        font-size: 18px;
        padding: .75em 0;
        color: #28ade3; }
    .courseoverview > *.praise h2 {
      font-size: 24px;
      padding: .5em; }
    .courseoverview > *.praise div.slider {
      margin-top: 2em; }
      .courseoverview > *.praise div.slider h4 {
        font-size: 18px; }
    .courseoverview > * h2 {
      font-size: 30px;
      color: #155a76;
      border-bottom: 1px solid rgba(21, 90, 118, 0.25);
      padding: .5em 0; }
  @media (min-width: 650px) {
    .courseoverview {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; }
      .courseoverview > * {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%; }
        .courseoverview > *:first-child {
          margin-bottom: 0;
          margin-right: 18px; }
        .courseoverview > *.praise {
          max-width: 50%; } }

/*
CTA

Markup:
<div class="cta l-wrap">
  <a class="button" href="#">Sign-Up</a>
</div>

Styleguide 4.4
*/
.cta a {
  font-size: 18px;
  width: 100%; }

@media (min-width: 650px) {
  .cta a {
    display: block;
    margin: 0 auto;
    max-width: 290px; } }

/*
CTA Audience

Markup:
<div class="ctaaudience l-wrap l-wrap-spanmobile">
  <a href="#">
    <img src="/images/homepage-audience-attorneys.svg" alt="Scales of justice" width="66" height="52">
    <h1>For Attorneys</h1>
    <p>Children in Between Online offers your clients a fantastic and pro-active way to help their kids throught this tough time. This is a quick win for you.</p>
  </a>
  <a href="#">
    <img src="/images/homepage-audience-courts.svg" alt="Gavel" width="58" height"52">
    <h1>For Courts</h1>
    <p>The best online parenting course makes it easy for residents in your jurisdiction to get quality divorce education even when they can’t make it to an in-person class.</p>
  </a>
</div>

Styleguide 4.5
*/
.ctaaudience {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  background: #28ade3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .ctaaudience a {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #fff;
    display: block;
    font-weight: normal;
    padding: 36px 18px;
    text-align: center; }
    .ctaaudience a:not(:last-child) {
      border-bottom: 9px solid #fff; }
    .ctaaudience a:hover {
      background-color: #198fbf; }
  .ctaaudience img {
    margin-bottom: 9px; }
  .ctaaudience h1 {
    font-size: 24px;
    margin-bottom: 4.5px; }
  @media (min-width: 650px) {
    .ctaaudience {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; }
      .ctaaudience a {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        padding-bottom: 72px;
        padding-top: 54px; }
        .ctaaudience a:not(:first-child) {
          border-left: 2.25px solid #fff; }
        .ctaaudience a:not(:last-child) {
          border-bottom: 0;
          border-right: 2.25px solid #fff; } }

/*
CTA Overview

Markup:
<div class="l-childrenvertical-x-exclude ctaoverview l-wrap l-wrap-spanmobile">
  <section>
    <h1>Children in Between</h1>
    <h2>A Co-Parenting Program for Divorcing and Separating Parents.</h2>
    <ul>
      <li>Instant Printable Certificate upon completion</li>
      <li>No need to take an in-person class</li>
      <li>Complete the course 100% online</li>
      <li>Accessible 24/7</li>
      <li>Only 3-5 hours to complete</li>
      <li>Pay no more than $45.95</li>
    </ul>
    <div>
      <a href="" class="button">Sign-Up Now</a>
      <img srcset="/images/homepage-ctaoverview-courtaccepted-2x.png 2x" src="/images/homepage-ctaoverview-courtaccepted.png" alt="Court Accepted, 100% Guranteed Seal" width="150" height="150">
      <p>Instant Certificate!<br> Guranteed Court Approval</p>
    </div>
  </section>
</div>

Styleguide 4.6
*/
.ctaoverview {
  line-height: 1.16;
  overflow: hidden;
  position: relative; }
  .ctaoverview::before, .ctaoverview::after {
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    top: 0; }
  .ctaoverview::before {
    background-image: url("images/ctaoverview-womanandchild.png");
    display: none;
    left: 0; }
  .ctaoverview::after {
    background-image: url("images/ctaoverview-manandchild.png");
    right: 0;
    width: 100%; }
  .ctaoverview section {
    background-color: rgba(10, 52, 69, 0.85);
    -webkit-box-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px 0;
            box-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #fff;
    padding: 36px 18px;
    position: relative;
    text-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px;
    z-index: 50; }
    .ctaoverview section img {
      display: block;
      float: right;
      height: auto;
      margin-bottom: 9px;
      width: 32%; }
  .ctaoverview h1 {
    line-height: 1;
    margin-bottom: 4.5px; }
  .ctaoverview h2 {
    font-size: 18px;
    margin-bottom: 18px; }
  .ctaoverview ul {
    font-size: 18px;
    margin-bottom: 9px;
    padding-left: 27px; }
    .ctaoverview ul li {
      list-style: disc outside;
      margin-bottom: 4.5px; }
  .ctaoverview a {
    float: left;
    font-size: 18px;
    margin-top: 7%;
    text-shadow: none;
    width: 65%; }
  .ctaoverview div {
    text-align: center; }
    .ctaoverview div p {
      clear: both;
      font-size: 18px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .ctaoverview::before {
      background-image: url("images/ctaoverview-womanandchild-2x.png"); }
    .ctaoverview::after {
      background-image: url("images/ctaoverview-manandchild-2x.png"); } }
  @media (min-width: 650px) {
    .ctaoverview {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .ctaoverview::before, .ctaoverview::after {
        width: 50%; }
      .ctaoverview::before {
        display: block; }
      .ctaoverview section {
        margin: 0 auto;
        max-width: 415px;
        padding-bottom: 18px;
        padding-left: 27px;
        padding-right: 27px;
        z-index: 50; }
        .ctaoverview section::after {
          clear: both;
          content: '';
          display: block;
          font-size: 0;
          height: 0;
          visibility: hidden; }
        .ctaoverview section img {
          width: 38%; }
      .ctaoverview a {
        width: 58%; }
      .ctaoverview div p {
        clear: none;
        float: left;
        margin-top: 9px;
        text-align: left; } }
  @media (min-width: 960px) {
    .ctaoverview {
      padding-bottom: 36px;
      padding-top: 36px; } }

/*
CTA Photo

Markup:
<article class="l-childrenvertical-x-exclude ctaphoto l-wrap">
  <img src="/images/homepage-courtacceptance.svg" alt="Judge icon" width="108" height="93">
  <h1>Guranteed Court Acceptance</h1>
  <p>Children in Between Online is commonly accepted by court systems across the United States to fulfill requirements regarding divorce education for parents, often replacing inconvenient and expensive in-person classes.</p>
  <a class="button" href="#">Sign-Up Now</a>
</article>

Styleguide 4.7
*/
.ctaphoto {
  background: url("images/ctaphoto.png") center center;
  background-size: cover;
  color: #fff;
  padding-bottom: 36px;
  padding-top: 36px;
  text-align: center;
  text-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px; }
  .ctaphoto img {
    display: block;
    margin: 0 auto 18px; }
  .ctaphoto h1 {
    margin-bottom: 18px; }
  .ctaphoto p {
    font-size: 18px;
    margin-bottom: 18px; }
  .ctaphoto a {
    font-size: 18px;
    text-shadow: none;
    width: 100%; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .ctaphoto {
      background-image: url("images/ctaphoto-2x.png"); } }
  @media (min-width: 650px) {
    .ctaphoto {
      background-image: url("images/ctaphoto-desktop.png");
      padding-bottom: 54px;
      padding-top: 54px; } }
  @media (min-width: 650px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 650px) and (min-resolution: 2dppx) {
    .ctaphoto {
      background-image: url("images/ctaphoto-desktop-2x.png"); } }
  @media (min-width: 650px) {
      .ctaphoto p {
        margin-left: auto;
        margin-right: auto;
        max-width: 60%; }
      .ctaphoto a {
        display: block;
        margin: 0 auto;
        max-width: 290px; } }

/*

Markup:
<article class="ctaphoto ctaphoto-completecase l-wrap">
  <img src="http://placehold.it/73x73" alt="Complete Case Logo" width="73" height="73">
  <h1>Save thousands of dollars in legal fees without the cost of an attorney.</h1>
  <p>Visit CompleteCase.com and sign up for their services AND the Children in Between Online Program.</p>
  <a class="button button-outline" href="#">CompleteCase.com</a>
</article>

Styleguide 4.7.1
*/
.ctaphoto-completecase {
  background: #155a76;
  text-shadow: none; }
  .ctaphoto-completecase > *:not(:last-child) {
    margin-bottom: 18px; }
  .ctaphoto-completecase h1,
  .ctaphoto-completecase p {
    margin-left: auto;
    margin-right: auto;
    max-width: 654px; }
  .ctaphoto-completecase a {
    width: auto; }
  .ctaphoto-completecase h1 {
    font-size: 30px;
    font-weight: bold; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .ctaphoto-completecase {
      background: #155a76; } }
  @media (min-width: 650px) {
    .ctaphoto-completecase {
      background: #155a76; } }
  @media (min-width: 650px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 650px) and (min-resolution: 2dppx) {
    .ctaphoto-completecase {
      background: #155a76; } }
  @media (min-width: 650px) {
      .ctaphoto-completecase a {
        display: inline-block;
        max-width: none; } }

/*
CTA Quotes

Markup:
<div class="ctaquotes l-wrap">
  <div class="slider">
    <div>
      <blockquote>
        <p>&ldquo;This program was recommended by our co-parenting counselor and I would recommend it to other couple who are thinking about or getting a divorce involving children. In fact, I have recommended it to one of my co-workers already.&rdquo;</p>
        <cite><strong>Diange Hodges</strong> Fairbanks, AK</cite>
      </blockquote>
    </div>
  </div>
  <div>
    <p>Join more than <strong>50,000 parents</strong> who have completed our award-winning class! <strong>Recommended by 9 out of 10 parents.</strong></p>
    <a class="ctaquotes-x-button button" href="#">Sign-Up Now</a>
  </div>
</div>

Styleguide 4.8
*/
.ctaquotes p,
.ctaquotes cite,
.ctaquotes strong {
  color: #696969;
  font-size: 18px;
  line-height: 1.33; }

.ctaquotes p {
  margin-bottom: 18px; }

.ctaquotes blockquote {
  background: #F2F2F2;
  margin-bottom: 27px;
  padding: 18px;
  position: relative; }
  .ctaquotes blockquote::after {
    border: 36px solid transparent;
    border-left-color: #F2F2F2;
    bottom: -27px;
    content: '';
    display: block;
    height: 0;
    left: 54px;
    position: absolute;
    width: 0;
    z-index: 10; }
  .ctaquotes blockquote p,
  .ctaquotes blockquote cite {
    position: relative;
    z-index: 50; }
  .ctaquotes blockquote cite,
  .ctaquotes blockquote strong {
    display: block; }

.ctaquotes > :first-child {
  margin-bottom: 36px; }

.ctaquotes .ctaquotes-x-button {
  font-size: 18px;
  width: 100%; }

.ctaquotes .slick-next,
.ctaquotes .slick-prev {
  display: none !important; }

.ctaquotes .slick-dots {
  bottom: auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: -9px 0 0;
  padding-left: 18px; }
  .ctaquotes .slick-dots li {
    display: block;
    margin: 0 4.5px 0 0; }
    .ctaquotes .slick-dots li:last-child {
      margin-right: 0; }
  .ctaquotes .slick-dots button {
    border-radius: 100%;
    -webkit-box-shadow: 0 0 0 1px #696969 inset;
            box-shadow: 0 0 0 1px #696969 inset;
    display: block;
    height: 16px;
    margin: 0;
    -webkit-transition: background-color 0.25s ease-in-out;
    transition: background-color 0.25s ease-in-out;
    width: 16px; }
    .ctaquotes .slick-dots button::before {
      display: none; }
  .ctaquotes .slick-dots .slick-active button {
    background-color: #696969; }

@media (min-width: 650px) {
  .ctaquotes {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    .ctaquotes > div {
      width: 50%; }
    .ctaquotes > :first-child {
      margin-bottom: 0;
      padding-right: 18px; }
    .ctaquotes > :last-child {
      padding-left: 18px;
      padding-top: 36px; }
    .ctaquotes .ctaquotes-x-button {
      width: auto; } }

/*
Features

Markup:
<article class="features l-wrap">
  <h1>Course Features</h1>
  <p>Children in Between is a scientifically proven to ensure that you learn the skills necessary to make divorce easier on your children.</p>
  <ul>
      <li>
        <img srcset="/images/feature-videos-2x.png 2x" src="/images/feature-videos.png" alt="TV Screen" width="100" height="100">
        <div>
          <h2>Video Scenarios</h2>
          <p>Watch videos with common co-parenting problems and then see different responses that produce positive and negative results.</p>
        </div>
      </li>
      <li>
        <img srcset="/images/feature-questions-2x.png 2x" src="/images/feature-questions.png" alt="Question mark" width="100" height="100">
        <div>
          <h2>Guided Questions</h2>
          <p>After each video scenario, CIBO presents the user with guided questions to explore how each problem can be addressed, and to increase your understanding of the situation.</p>
        </div>
      </li>
      <li>
        <img srcset="/images/feature-quizes-2x.png 2x" src="/images/feature-quizes.png" alt="Reinforcing Quizzes" width="100" height="100">
        <div>
          <h2>Reinforcing Quizzes</h2>
          <p>At the end of each chapter, you’ll have the opportunity to reinforce what you’ve learned by taking a quiz. Quizzes help ensure that you’ll be ready to handle situations in the future.</p>
        </div>
      </li>
      <li>
        <img srcset="/images/feature-skillspractice-2x.png 2x" src="/images/feature-skillspractice.png" alt="Star" width="100" height="100">
        <div>
          <h2>Skills Practice</h2>
          <p>You can spend time practicing and refining your skills in our Skills Practice section - meant to increase your confidence in the skills taught in CIBO.</p>
        </div>
      </li>
  </ul>
</article>

Styleguide 4.9
*/
.features h1 {
  margin-bottom: 9px;
  text-align: center; }

.features li {
  margin-bottom: 27px; }
  .features li p {
    color: #696969; }

.features h2 {
  font-size: 24px;
  margin-bottom: 0; }

.features img {
  display: block;
  height: auto;
  margin: 0 auto 9px;
  width: 100px; }

.features > p {
  color: #696969;
  margin-bottom: 27px;
  text-align: center; }

@media (min-width: 650px) {
  .features h1 {
    margin-bottom: 18px; }
  .features > p {
    font-size: 18px;
    margin-bottom: 0; }
  .features ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .features li {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 0;
    padding: 54px 36px 0;
    width: 50%; }
  .features img {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100px;
            flex: 0 0 100px; }
  .features div {
    padding-left: 18px; } }

/*
Photo Callout

Markup:
<section class="l-wrap l-wrap-spanmobile wrap wrap-lightgrey photocallout">
    <div class="text-container">
      <h3>Give your children the best chance.</h3>
      <p>The divorce of one’s parents is a major event in the life of a child. Children in Between Online ensures that the accompaning stress is minimized, the long-term psychological burden is eased, and the whole process is made more understandable and manageable for the parents so that children will benefit.</p>
    </div>
    <div>
      <img src="http://placehold.it/320x349" alt="Picture of women and children">
    </div>
  </section>

Styleguide 4.10
*/
.photocallout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-bottom: 18px;
  padding-top: 18px; }
  @media (min-width: 650px) {
    .photocallout {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }
  @media (min-width: 650px) {
    .photocallout p,
    .photocallout li {
      color: #696969;
      font-size: 18px; } }
  .photocallout img {
    display: block;
    height: auto;
    margin-bottom: 18px;
    width: 100%; }
    @media (min-width: 650px) {
      .photocallout img {
        border: 1px solid #000; } }
  .photocallout > :first-child {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
    @media (min-width: 650px) {
      .photocallout > :first-child {
        margin-right: 54px;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        -webkit-box-ordinal-group: 2;
            -ms-flex-order: 1;
                order: 1; } }
  .photocallout > :last-child {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
    @media (min-width: 650px) {
      .photocallout > :last-child {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 268px;
                flex: 0 0 268px;
        -webkit-box-ordinal-group: 3;
            -ms-flex-order: 2;
                order: 2; } }

/*
Proof

Markup:
<article class="proof l-wrap">
  <h1>Proven to Work</h1>
  <p>Children in Between was created by distinguished psychologist Dr. Donald Gordon and proven to work.</p>
  <ul>
    <li><p>22% <span>Less child reported stress</span></p></li>
    <li><p>70% <span>Fewer school absences</span></p></li>
    <li><p>54% <span>Fewer doctor visits</span></p></li>
    <li><p>9/10 <span>Parents recommend</span></p></li>
  </ul>
</article>

Styleguide 4.11
*/
.proof {
  text-align: center; }
  .proof h1 {
    line-height: 1;
    margin-bottom: 9px; }
  .proof > p {
    color: #696969;
    line-height: 1.5;
    margin-bottom: 9px; }
  .proof ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .proof li {
    padding: 0 4.5px 9px; }
    .proof li p {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      background: #155a76;
      border-radius: 100%;
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      color: #fff;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      font-size: 36px;
      height: 138px;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      line-height: 1;
      margin-bottom: 0;
      padding: 9px;
      width: 138px; }
    .proof li span {
      font-size: 14px;
      line-height: 1.618; }
  @media (min-width: 650px) {
    .proof > p {
      font-size: 18px;
      margin-bottom: 18px; }
    .proof li {
      padding: 0 18px; } }

/*
Screens

Markup:
<article class="screens l-wrap">
  <h1>Optimized for all screen sizes:</h1>
  <ul>
    <li>
      <img src="/images/screens-desktop.svg" alt="Desktop screen" width="123" height="100">
      Desktop
    </li>
    <li>
      <img src="/images/screens-laptop.svg" alt="Laptop screen" width="134" height="77">
      Laptop
    </li>
    <li>
      <img src="/images/screens-tablet.svg" alt="Tablet screen" width="50" height="64">
      Tablet
    </li>
    <li>
      <img src="/images/screens-mobile.svg" alt="Mobile screen" width="22" height="43">
      Mobile
    </li>
  </ul>
</article>

Styleguide 4.12
*/
.screens h1 {
  margin-bottom: 9px;
  text-align: center; }

.screens ul {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.screens li {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: 4.5px; }
  .screens li:nth-child(1) img {
    max-width: 83px; }
  .screens li:nth-child(2) img {
    max-width: 84px; }
  .screens li:nth-child(3) img {
    max-width: 35px; }
  .screens li:nth-child(4) img {
    max-width: 17px; }

.screens img {
  display: block;
  height: auto;
  margin-bottom: 4.5px; }

@media (min-width: 650px) {
  .screens li {
    padding: 18px; }
    .screens li:nth-child(1) img, .screens li:nth-child(2) img, .screens li:nth-child(3) img, .screens li:nth-child(4) img {
      max-width: none; } }

/*
Topics

Markup:
<article class="topics l-wrap">
  <h1>What's Covered</h1>
  <ul>
    <li>Money Problems</li>
    <li>Long Distance Parenting</li>
    <li>Children Carrying Messages</li>
    <li>Quizzing Children About the Other Parent</li>
    <li>Putting Down the Other Parent</li>
    <li>Never Married Parents</li>
  </ul>
</article>

Styleguide 4.13
*/
.topics {
  background: url("images/topics.png") center center no-repeat;
  background-size: cover;
  color: #fff;
  padding-bottom: 36px;
  padding-top: 36px; }
  .topics h1 {
    font-size: 24px;
    margin-bottom: 36px; }
  .topics li {
    border: 1px solid #fff;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    font-size: 18px;
    padding: 18px;
    text-align: center; }
    .topics li:not(:last-child) {
      margin-bottom: 18px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .topics {
      background-image: url("images/topics-2x.png"); } }
  @media (min-width: 960px) {
    .topics {
      background-image: url("images/topics-desktop.png");
      padding-bottom: 72px;
      padding-top: 54px; }
      .topics h1 {
        margin-bottom: 18px; }
      .topics ul {
        -webkit-column-count: 2;
           -moz-column-count: 2;
                column-count: 2;
        -webkit-column-gap: 36px;
           -moz-column-gap: 36px;
                column-gap: 36px; } }
  @media (min-width: 960px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 960px) and (min-resolution: 2dppx) {
    .topics {
      background-image: url("images/topics-desktop-2x.png"); } }

/*
Signup

For use on the PPC landing pages. Best viewed on their own page (outside of SC5's interface.)

Markup:
<section class="l-wrap wrap wrap-branddark signup">
  <div>
    <h1>Children in Between</h1>
    <p>A co-parenting program for divorcing and separating parents</p>
    <div class="cta">
      <a href="" class="button button-ppc">Sign-Up Now</a>
      <p>Guranteed Acceptance in Maricopa County, Arizona!</p>
    </div>
  </div>
  <div>
    <p class="seal">Instant Certificate Upon Completion!</p>
  </div>
</section>

Styleguide 4.1
*/
.signup {
  font-size: 18px;
  line-height: 1.2; }
  @media (min-width: 650px) {
    .signup {
      -webkit-box-align: top;
          -ms-flex-align: top;
              align-items: top;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      padding-bottom: 54px;
      padding-top: 54px; } }
  .signup h1 {
    font-size: 30px;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 0; }
    @media (min-width: 650px) {
      .signup h1 {
        font-size: 48px; } }
  .signup p {
    font-size: 18px; }
    @media (min-width: 650px) {
      .signup p {
        font-size: 24px; } }
  .signup dl {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .signup dd,
  .signup dt {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 50%;
            flex: 1 1 50%;
    max-width: 50%; }
  .signup dt {
    padding-right: 4.5px;
    text-align: right; }
  .signup dd {
    font-weight: bold;
    padding-left: 4.5px; }
  @media (min-width: 650px) {
    .signup ul {
      margin-bottom: 36px; } }
  .signup ul li {
    font-size: 14px;
    list-style: disc;
    margin: 0 0 4.5px 1em; }
    @media (min-width: 650px) {
      .signup ul li {
        font-size: 18px; } }
  .signup .cta {
    margin: 18px 0; }
    @media (min-width: 650px) {
      .signup .cta {
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
        .signup .cta > :first-child {
          margin-right: 18px; } }
    .signup .cta p {
      font-size: 12px;
      font-weight: bold;
      padding-top: 4.5px;
      text-align: center; }
      @media (min-width: 650px) {
        .signup .cta p {
          font-size: 18px;
          padding-top: 0;
          text-align: left; } }
  .signup .signup-x-text {
    padding: 0 18px 0 0; }

/*
Signup Secondary

Markup:
<section class="l-wrap wrap signup signup-secondary">
  <div>
    <h1>Why Choose Children in Between Online?</h1>
    <ul>
      <li>It’s not necessary to attend an in-person class</li>
      <li>The lowest cost online class available in Maricopa County</li>
      <li>Takes just 4 hours to complete</li>
      <li>Instant certification upon completion</li>
      <li>Available 24/7 to fit your schedule</li>
    </ul>
    <div class="cta">
      <a href="" class="button button-ppc">Sign-Up Now</a>
      <p><span>$45.95</span> for 30-day access</p>
    </div>
  </div>
  <div>
    <img src="/images/placeholder-landingpage.svg" alt="{county name} image">
    <dl>
      <dt>County: </dt>
      <dd>Maricopa</dd>
      <dt>State: </dt>
      <dd>Arizona</dd>
    </dl>
  </div>
</section>

Styleguide 4.1.1
*/
.signup-secondary {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  @media (min-width: 650px) {
    .signup-secondary {
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }
  .signup-secondary h1 {
    font-size: 24px;
    font-weight: normal;
    margin-bottom: 9px; }
    @media (min-width: 650px) {
      .signup-secondary h1 {
        font-size: 36px;
        margin-bottom: 18px; } }
  .signup-secondary img {
    display: block;
    margin: 0 auto 18px; }
  .signup-secondary > :first-child {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
    @media (min-width: 650px) {
      .signup-secondary > :first-child {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 auto;
                flex: 1 1 auto; } }
  .signup-secondary > :last-child {
    margin-bottom: 18px;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
    @media (min-width: 650px) {
      .signup-secondary > :last-child {
        -webkit-box-flex: 0;
            -ms-flex: 0 1 164px;
                flex: 0 1 164px;
        margin-bottom: 0;
        margin-right: 36px; } }
  .signup-secondary .cta p {
    font-size: 14px;
    margin-top: 9px;
    text-align: center; }
    @media (min-width: 650px) {
      .signup-secondary .cta p {
        margin-top: 0; } }
  .signup-secondary .cta span {
    color: #155a76;
    display: block;
    font-size: 36px; }
  .signup-secondary .signup-x-text {
    padding: 0; }

.survey .progressbar {
  display: none; }
  @media (min-width: 960px) {
    .survey .progressbar {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; } }

.onboarding-notifications {
  padding-left: 18px;
  padding-right: 18px; }
  .onboarding-notifications h2 {
    line-height: 1.2em;
    margin-top: 1em; }
  .onboarding-notifications h3 {
    margin-top: .5em; }
  .onboarding-notifications p {
    margin-bottom: 1em;
    font-size: 16px; }

.horizontal-list li {
  float: left;
  list-style-image: none;
  list-style-type: none;
  margin-left: 0;
  white-space: nowrap; }
  .horizontal-list li:first-child {
    padding-left: 0; }
  .horizontal-list li:last-child {
    padding-right: 0; }

.font-size {
  font-size: 18px; }

/*
Demos

Styleguide 5.0
*/
/*
Homepage

Markup:
<div class="l-wrappermobile">
  <sg-insert>3.3</sg-insert>
  <div class="l-childrenvertical">
    <sg-insert>4.6</sg-insert>
    <sg-insert>4.7</sg-insert>
    <sg-insert>4.7.1</sg-insert>
    <sg-insert>4.12</sg-insert>
    <sg-insert>4.9</sg-insert>
    <sg-insert>4.4</sg-insert>
    <sg-insert>4.13</sg-insert>
    <sg-insert>4.11</sg-insert>
    <sg-insert>4.8</sg-insert>
    <sg-insert>4.5</sg-insert>
  </div>
  <sg-insert>3.9</sg-insert>
</div>

Styleguide 5.1
*/
/*
Receipt

Markup:
<div class="l-receipt">
  <div class="receiptheader">
    <div>
      <p class="receiptheader-x-name">John Doe</p>
      <table class="printtable printtable-small">
        <thead class="visuallyhidden">
          <tr>
            <th scope="row">Direction</th>
            <th scope="row">Value</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th scope="row">Re:</th>
            <td>You’ve completed your purchase!</td>
          </tr>
          <tr>
            <th scope="row">To:</th>
            <td>Namey Namerson</td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="receiptheader-x-meta">
      <p class="receiptheader-x-time">9:34am</p>
      <div class="receiptheader-x-avatar">AB</div>
    </div>
  </div>
  <div class="l-receipt-x-body">
    <h1 class="receiptheading">Purchase Complete!</h1>
    <h2 class="receiptheading receiptheading-small">Account Information</h2>
    <table class="printtable">
      <thead class="visuallyhidden">
        <tr>
          <th scope="row">Information</th>
          <th scope="row">Value</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th scope="row">Customer Name</th>
          <td>Namey Namerson</td>
        </tr>
        <tr>
          <th scope="row">Username</th>
          <td>paypal@test.com</td>
        </tr>
        <tr>
          <th scope="row">Expiration Date</th>
          <td>November 20, 2016</td>
        </tr>
      </tbody>
    </table>
    <h2 class="receiptheading receiptheading-small">Purchased Products</h2>
    <table class="printtable printtable-span">
      <thead>
        <tr>
          <th scope="row">Product</th>
          <th scope="row">Amount</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>CDE's Children in Between Online 30-day Account</td>
          <td>$45.95</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

Styleguide 5.2
*/
/*
Purchased Items

Markup:
<div class="l-childrenvertical l-childrenvertical-small">
  <sg-insert>3.56</sg-insert>
  <div class="pagetitle">
    <h1>Purchased Items</h1>
  </div>
  <sg-insert>3.57</sg-insert>
</div>

Styleguide 5.3
*/
/*
Results

Markup:
<div class="l-containerhorizontal l-containerhorizontal-small l-containerhorizontal-is-minpad l-containervertical l-childrenvertical l-childrenvertical">
  <div class="bordered">
    <header class="page-title page-title-centered">
      <img src="http://placehold.it/112x86" alt="Results certificate icon">
      <h1>Congratulations John Blimb</h1>
      <p>You have passed all six chapters, and the final exam with a cumulative score of <strong>0%</strong>.</p>
    </header>
    <form class="form form-nomargin">
      <div class="form-row">
        <hr class="rule">
      </div>
      <div class="form-row">
        <h4>Add your Case Number</h4>
        <p class="u-text-small">If you have begun the court process, please enter your case number below. It will be printed on your certificate.</p>
      </div>
      <div class="form-row">
  			<p class="label">Filing County:</p>
  			<p class="value"><input type="text" disabled="disabled" placeholder="California, San Bernardino County"></p>
  		</div>
      <div class="form-row">
  			<p class="label">Case Number:</p>
  			<div class="value"><input type="text" name="case_number" value="Q-4M-4C-05" placeholder="Enter your case number" id="id_case_number" maxlength="200"></div>
  		</div>
      <div class="email-results">
        <div class="submit">
          <input class="button" type="submit" name="downoad" value="Download Certificate">
          <button class="button" onclick="document.querySelector('#email-results-form').style.display = 'block'" type="button">Email Certificate</button>
        </div>
        <div id="email-results-form" style="display: none">
          <div class="form-row">
            <h4>Email a PDF certificate to:</h4>
          </div>
          <div class="form-row">
      			<p class="label">Name:</p>
      			<div class="value">
              <input type="text" name="name" placeholder="Enter name" id="name" maxlength="200">
            </div>
      		</div>
          <div class="form-row">
      			<p class="label">Email:</p>
      			<div class="value">
              <input type="email" name="email" placeholder="Enter email" id="email" maxlength="200">
            </div>
      		</div>
          <div class="form-row checkbox">
            <div class="value">
              <input type="checkbox" name="email_copy" id="email_copy">
            </div>
            <label for="email_copy">
              <p>Email me a copy of my certificate</p>
            </label>
          </div>
          <div class="form-row form-row-submit">
            <div class="form-row-submit-x-button">
              <button class="button" onclick="document.querySelector('.form-row-submit').classList.add('form-row-submit-is-success')" type="button">Send Email</button>
            </div>
            <div class="form-row-submit-x-message">Email Sent!</div>
          </div>
        </div>
      </div>
    </form>
  </div>
  <div>
    <h4>Filing your certificate of completion:</h4>
    <p class="u-text-small">The Maricopa County Court no longer accepts paper certificates. <br>The Center for Divorce Education will eFile your Certificate with the Maricopa Court. <br>Enter your case number in the box above, or the court will not accept your Certificate. <br>You should download and/or email yourself a copy of the certificates for your records.</p>
  </div>
  <div class="l-childrenvertical">
    <h1>You may also like&hellip;<h1>
    <sg-insert>3.59</sg-insert>
    <sg-insert>3.59</sg-insert>
    <sg-insert>3.59</sg-insert>
  </div>
</div>

Styleguide 5.4
*/

/*# sourceMappingURL=data:application/json;base64,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QUNFLG1CQUFtQjtFQUNuQixvQkFBb0IsRUFBRTtFQUN0QjtJQUNFLG1CQUFtQjtJQUNuQixnQkFBZ0IsRUFBRTtFQUNwQjtJQUNFLGlCQUFpQixFQUFFO0VBQ3JCO0lBQ0UsbUJBQW1CO0lBQ25CLGdCQUFnQixFQUFFOztBQUV0QjtFQUNFLFlBQVk7RUFDWix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLGVBQWU7RUFDZixvQkFBb0IsRUFBRTtFQUN0QjtJQUNFLGdCQUFnQixFQUFFO0VBQ3BCO0lBQ0UsaUJBQWlCLEVBQUU7O0FBRXZCO0VBQ0UsZ0JBQWdCLEVBQUU7O0FBRXBCOzs7O0VBSUU7QUFDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXNCRTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNEVFO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7RUFhRTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBK0VFIiwiZmlsZSI6InNjcmVlbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwicHJveGltYSBub3ZhXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvcHJveGltYW5vdmEtcmVndWxhci13ZWJmb250LmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9wcm94aW1hbm92YS1yZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiZm9udHMvcHJveGltYW5vdmEtcmVndWxhci13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvcHJveGltYW5vdmEtcmVndWxhci13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvcHJveGltYW5vdmEtcmVndWxhci13ZWJmb250LnN2ZyNwcm94aW1hX25vdmFfcmdyZWd1bGFyXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJwcm94aW1hIG5vdmFcIjtcbiAgc3JjOiB1cmwoXCJmb250cy9wcm94aW1hbm92YS1ib2xkLXdlYmZvbnQuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL3Byb3hpbWFub3ZhLWJvbGQtd2ViZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9wcm94aW1hbm92YS1ib2xkLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9wcm94aW1hbm92YS1ib2xkLXdlYmZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9wcm94aW1hbm92YS1ib2xkLXdlYmZvbnQuc3ZnI3Byb3hpbWFfbm92YV9yZ2JvbGRcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi8qIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvXHJcbiAgIHYyLjAgfCAyMDExMDEyNlxyXG4gICBMaWNlbnNlOiBub25lIChwdWJsaWMgZG9tYWluKVxyXG4qL1xuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzICovXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTsgfVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbnE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG5Aa2V5ZnJhbWVzIGZsaXAtZG93biB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyBmbGlwLXVwIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHR1cm4taW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHR1cm4tb3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuQGtleWZyYW1lcyBzaG93LWRvd24ge1xuICAwJSB7XG4gICAgbWF4LWhlaWdodDogMDsgfVxuICAxMDAlIHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7IH0gfVxuXG5Aa2V5ZnJhbWVzIGhpZGUtdXAge1xuICAwJSB7XG4gICAgbWF4LWhlaWdodDogMTAwMHB4OyB9XG4gIDEwMCUge1xuICAgIG1heC1oZWlnaHQ6IDA7IH0gfVxuXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcInByb3hpbWEgbm92YVwiLCBcIkhlbHZldGljYVwiLCBcIlNhbnMtU2VyaWZcIjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgbGluZS1oZWlnaHQ6IDEuNjE4O1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cblxuaDEge1xuICBmb250LXNpemU6IDM2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1OyB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cblxuaDMge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuaDQge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuYSB7XG4gIGNvbG9yOiAjMjhhZGUzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTpob3ZlciB7XG4gICAgY29sb3I6ICMxMzZkOTI7IH1cblxuc3Ryb25nIHtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi52aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDsgfVxuXG4vKlxuTGF5b3V0IFJ1bGVzXG5cblN0eWxlZ3VpZGUgMi4wXG4qL1xuLmwtd3JhcHBlcm1vYmlsZSB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5sLWNvdXJzZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmwtY291cnNlIC5yZXF1aXJlbWVudHMtbGlzdCB7XG4gICAgZmxleDogMCAwIDI2MHB4OyB9XG4gIC5sLWNvdXJzZSAuY29udGVudCB7XG4gICAgZmxleDogMTsgfVxuXG4vKlxuQ2hhcHRlcnNcblxuTGF5b3V0IHdyYXBwZXIgZm9yIGNoYXB0ZXIgdGlsZXNcblxuTWFya3VwOlxuPHVsIGNsYXNzPVwibC1jaGFwdGVyc1wiPlxuICA8bGk+XG4gICAgPHNnLWluc2VydD4zLjI0PC9zZy1pbnNlcnQ+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8c2ctaW5zZXJ0PjMuMjQ8L3NnLWluc2VydD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxzZy1pbnNlcnQ+My4yNDwvc2ctaW5zZXJ0PlxuICA8L2xpPlxuICA8bGk+XG4gICAgPHNnLWluc2VydD4zLjI0PC9zZy1pbnNlcnQ+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8c2ctaW5zZXJ0PjMuMjQ8L3NnLWluc2VydD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxzZy1pbnNlcnQ+My4yNDwvc2ctaW5zZXJ0PlxuICA8L2xpPlxuICA8bGk+XG4gICAgPHNnLWluc2VydD4zLjI0PC9zZy1pbnNlcnQ+XG4gIDwvbGk+XG48L3VsPlxuXG5TdHlsZWd1aWRlIDIuNVxuKi9cbi5sLWNoYXB0ZXJzIHtcbiAgbWFyZ2luLXRvcDogLTlweDtcbiAgcGFkZGluZzogMCA5cHg7IH1cbiAgLmwtY2hhcHRlcnMgbGkge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiA5cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQwMHB4KSB7XG4gICAgLmwtY2hhcHRlcnMge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAubC1jaGFwdGVycyBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCA1MCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAubC1jaGFwdGVycyBsaSB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMlOyB9IH1cblxuLypcbkNvbnRhaW5lclxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC1jb250YWluZXJcIj5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDIuN1xuKi9cbi5sLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDE4cHg7IH1cblxuLypcbkNvbnRhaW5lciBIb3Jpem9udGFsXG5cbkRlZmF1bHQgLSBTZXRzIGEgbWF4IHdpZHRoXG4ubC1jb250YWluZXJob3Jpem9udGFsLXNtYWxsIC0gU21hbGxlciBtYXggd2lkdGhcbi5sLWNvbnRhaW5lcmhvcml6b250YWwtbWVkaXVhbSAtIE1lZGlhdW0gbWF4IHdpZHRoXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJsLWNvbnRhaW5lcmhvcml6b250YWwgeyRtb2RpZmllcnN9XCI+Q29udGVudDwvZGl2PlxuXG5TdHlsZWd1aWRlIDIuMVxuKi9cbi5sLWNvbnRhaW5lcmhvcml6b250YWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgIC5sLWNvbnRhaW5lcmhvcml6b250YWwubC1jb250YWluZXJob3Jpem9udGFsLWlzLW1pbnBhZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxOHB4OyB9IH1cblxuLmwtY29udGFpbmVyaG9yaXpvbnRhbC1zbWFsbCB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAubC1jb250YWluZXJob3Jpem9udGFsLXNtYWxsIHtcbiAgICAgIG1heC13aWR0aDogNTQwcHg7IH0gfVxuXG4ubC1jb250YWluZXJob3Jpem9udGFsLW1lZGl1bSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAubC1jb250YWluZXJob3Jpem9udGFsLW1lZGl1bSB7XG4gICAgICBtYXgtd2lkdGg6IDcwMHB4OyB9IH1cblxuLypcbkNvbnRhaW5lciBWZXJ0aWNhbFxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC1jb250YWluZXJ2ZXJ0aWNhbFwiPlxuQ29udGVudFxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMi42XG4qL1xuLmwtY29udGFpbmVydmVydGljYWwge1xuICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmwtY29udGFpbmVydmVydGljYWwge1xuICAgICAgcGFkZGluZy1ib3R0b206IDM2cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMzZweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAubC1jb250YWluZXJ2ZXJ0aWNhbC1zbWFsbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDE4cHg7XG4gICAgcGFkZGluZy10b3A6IDE4cHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmwtbWVudSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAubC1tZW51ID4gKiB7XG4gICAgICBtYXJnaW4tbGVmdDogMThweDsgfSB9XG5cbi5sLW1lbnUtc2Vjb25kYXJ5IHtcbiAgZGlzcGxheTogZmxleDsgfVxuICAubC1tZW51LXNlY29uZGFyeSA+ICoge1xuICAgIGZsZXg6IDE7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmwtbWVudS1zZWNvbmRhcnkgPiAqIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvOyB9IH1cblxuLypcblNwYWNpbmdcblxuU2V0cyB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJsLXNwYWNpbmdcIj5Db250ZW50PC9kaXY+XG5cblN0eWxlZ3VpZGUgMi4zXG4qL1xuLmwtc3BhY2luZyB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gIG1hcmdpbi10b3A6IDE4cHg7IH1cblxuLypcbkNoaWxkcmVuIFZlcnRpY2FsXG5cblNldHMgYm90dG9tIG1hcmdpbnMgZm9yIGVhY2ggY2hpbGQuXG5cbkRlZmF1bHQgLSBFYWNoIGNoaWxkIGV4Y2VwdCB0aGUgbGFzdFxuLmwtY2hpbGRyZW52ZXJ0aWNhbC1hbGwgLSBFdmVyeSBjaGlsZCBnZXRzIGJvdHRvbSBtYXJnaW5cblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtY2hpbGRyZW52ZXJ0aWNhbFwiPlxuICA8cD5Db250ZW50PC9wPlxuICA8cD5Db250ZW50PC9wPlxuICA8cD5Db250ZW50PC9wPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMi40XG4qL1xuLmwtY2hpbGRyZW52ZXJ0aWNhbCA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDM2cHg7IH1cblxuLmwtY2hpbGRyZW52ZXJ0aWNhbCAubC1jaGlsZHJlbnZlcnRpY2FsLXgtZXhjbHVkZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmwtdmVydGljYWxjaGlscmVuLWFsbCA+ICoge1xuICBtYXJnaW4tYm90dG9tOiAzNnB4OyB9XG5cbi5sLWNoaWxkcmVudmVydGljYWwtc21hbGwgPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG5cbi8qXG5XcmFwXG5cbkF1dG8gZ2VuZXJhdGVzIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgYmFzZWQgb24gdmlld3BvcnRcblxuRGVmYXVsdCAtIFRoZSBkZWZhdWx0IHVzZSBjYXNlXG4ubC13cmFwLXNwYW5tb2JpbGUgLSBObyBtaW5pbXVtIHBhZGRpbmcgZm9yIG1vYmlsZVxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC13cmFwIHskbW9kaWZpZXJzfVwiPkNvbnRlbnQ8L2Rpdj5cblxuU3R5bGVndWlkZSAyLjJcbiovXG4ubC13cmFwIHtcbiAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxOHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5sLXdyYXAge1xuICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDUwJSAtIDg1MHB4LzIpO1xuICAgICAgcGFkZGluZy1yaWdodDogY2FsYyg1MCUgLSA4NTBweC8yKTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDlweCkge1xuICAubC13cmFwLXNwYW5tb2JpbGUge1xuICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4vKlxuZ2xvc3NhcnlcblxuTGF5b3V0IHdyYXBwZXIgZ2xvc3NhcnlcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtZ2xvc3NhcnlcIj5cbiAgPGRpdj5nbG9zc2FyeSB0ZXJtczxkaXY+XG4gIDxkaXY+Z2xvc3NhcnkgZGVmaW5pdGlvbnM8ZGl2PlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMi44XG4qL1xuQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gIC5sLWdsb3NzYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9IH1cblxuLmNsZWFyZml4OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwO1xuICBoZWlnaHQ6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uY2xlYXJmaXgge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyogc3RhcnQgY29tbWVudGVkIGJhY2tzbGFzaCBoYWNrIFxcKi9cbiogaHRtbCAuY2xlYXJmaXgge1xuICBoZWlnaHQ6IDElOyB9XG5cbi5jbGVhcmZpeCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIGNsb3NlIGNvbW1lbnRlZCBiYWNrc2xhc2ggaGFjayAqL1xuLypcbk1vZHVsZSBSdWxlcyAoQXBwKVxuXG5TdHlsZWd1aWRlIDMuMFxuKi9cbi8qXG5Cb3JkZXJlZFxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiYm9yZGVyZWRcIj5cbkJvcmRlcmVkXG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjM0XG4qL1xuLmJvcmRlcmVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgfVxuXG4vKlxuQnV0dG9uXG5cbkRlZmF1bHQgLSBTdGFuZGFyZCBidXR0b24gc3R5bGluZ1xuLmJ1dHRvbi1mb290ZXIgLSBCdXR0b25zIHVzZWQgaW4gdGhlIGZvb3RlciBlbGVtZW50XG4uYnV0dG9uLWhlaWdodC1zbWFsbCAtIHNob3J0ZXIgYnV0dG9uLlxuLmJ1dHRvbi1tYXJrZXRpbmcgLSBGb3IgdXNlIG9uIGxpZ2h0IGJhY2tncm91bmRzIHdpdGggbWFya2V0aW5nIGNvbnRlbnRcbi5idXR0b24tbWFya2V0aW5nLWxpZ2h0IC0gRm9yIHVzZSBvbiBkYXJrIGJhY2tncm91bmRzIHdpdGggbWFya2V0aW5nIGNvbnRlbnRcbi5idXR0b24tbWVudSAtIFdoZW4gYSBidXR0b24gYXBwZWFycyBpbiB0aGUgbmF2aWdhdGlvblxuLmJ1dHRvbi1zaWdudXAgLSBSb3VuZGVkIGNvcm5lcnMgZm9yIGF1dGggdmlld3Ncbi5idXR0b24td2hpdGUgLSBGb3IgdXNlIG9uIGEgZGFyayBiYWNrZ3JvdW5kLlxuLmJ1dHRvbi13aWR0aC1mdWxsIC0gc3RyZXRjaGVzIHRoZSBsZW5ndGggb2YgdGhlIGF2YWlsYWJsZSBzcGFjZS5cblxuXG5NYXJrdXA6XG48YnV0dG9uIGNsYXNzPVwiYnV0dG9uIHskbW9kaWZpZXJzfVwiPkJ1dHRvbjwvYnV0dG9uPlxuXG5TdHlsZWd1aWRlIDMuMVxuKi9cbi5idXR0b24ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjMjhhZGUzO1xuICBib3JkZXI6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwicHJveGltYSBub3ZhXCIsIFwiSGVsdmV0aWNhXCIsIFwiU2Fucy1TZXJpZlwiO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE4cHggMzZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMxOThmYmY7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi5kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogIzY5Njk2OTsgfVxuXG4uYnV0dG9uLXdoaXRlIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMyOGFkZTM7IH1cblxuLmJ1dHRvbi1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjRjJGMkYyO1xuICBjb2xvcjogIzI4YWRlMztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLmJ1dHRvbi1mb290ZXIge1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMi43cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMi43cHg7IH0gfVxuICAuYnV0dG9uLWZvb3Rlcjpob3ZlciB7XG4gICAgY29sb3I6ICMxNTVhNzY7IH1cblxuLmJ1dHRvbi1tZW51IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogIzI4YWRlMyAwIDAgMCAxcHggaW5zZXQ7XG4gIGNvbG9yOiAjMjhhZGUzO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4uYnV0dG9uLW1hcmtldGluZyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gIC5idXR0b24tbWFya2V0aW5nOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMjhhZGUzOyB9XG5cbi5idXR0b24tbWFya2V0aW5nLWxpZ2h0IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzI4YWRlMztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogIzI4YWRlMztcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAuYnV0dG9uLW1hcmtldGluZy1saWdodDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzI4YWRlMztcbiAgICBib3JkZXItY29sb3I6ICMyOGFkZTM7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLmJ1dHRvbi1wcGMge1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDEzLjVweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLmJ1dHRvbi1wcGMge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgcGFkZGluZzogMThweDtcbiAgICAgIHdpZHRoOiAzMzdweDsgfSB9XG5cbi5idXR0b24tb3V0bGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICBmb250LXNpemU6IDE4cHg7XG4gIHBhZGRpbmc6IDE4cHg7XG4gIHdpZHRoOiBhdXRvOyB9XG4gIC5idXR0b24tb3V0bGluZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLmJ1dHRvbi1zaWdudXAge1xuICBwYWRkaW5nOiAxOHB4IDU0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi5idXR0b24td2lkdGgtZnVsbCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5idXR0b24taGVpZ2h0LXNtYWxsIHtcbiAgcGFkZGluZzogOXB4IDE4cHg7IH1cblxuLypcbkNlbnRlcmVkXG5cbmNlbnRlcnMgdGV4dC5cblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImNlbnRlcmVkXCI+SSBhbSBjZW50ZXJlZDwvZGl2PlxuXG5TdHlsZWd1aWRlIDMuNDZcbiovXG4uY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLypcbkNoYXB0ZXJcblxuRGVmYXVsdCAtIFN0YW5kYXJkIHZpZXdcbi5kaXNhYmxlZCAtIE5vIGludGVyYWN0aW9uXG4ubG9ja2VkIC0gTG9ja2VkIG91dCAoc29tZSByZXF1aXJlbWVudCBub3QgbWV0KVxuLnBhc3NlZCAtIFBhc3NlZCBhbmQgY29tcGxldGVcblxuTWFya3VwOlxuPGFydGljbGUgY2xhc3M9XCJjaGFwdGVyIHskbW9kaWZpZXJzfVwiPlxuICAgIDxoZWFkZXIgY2xhc3M9XCJ2aWRfaGVhZGVyXCI+XG4gICAgICAgICA8aDI+PGEgaHJlZj1cIiNcIj5UaXRsZTwvYT48L2gyPlxuICAgIDwvaGVhZGVyPlxuICAgIDxwIGNsYXNzPVwic3RhdHVzIHBhc3NlZFwiPlN0YXR1czwvcD5cbiAgICA8YSBjbGFzcz1cImNoYXB0ZXJfdmlldyBjaGFwdGVyLWltYWdlIGltYWdlXCIgaHJlZj1cIiNcIiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltYWdlcy90aWxlLW5vdGlmaWNhdGlvbnMucG5nJyk7XCI+PC9hPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDMuMjRcbiovXG4uY2hhcHRlciB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiAyODZweDtcbiAgZmxleDogMTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgei1pbmRleDogMjA7IH1cbiAgLmNoYXB0ZXI6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG4gIC5jaGFwdGVyIGhlYWRlciwgLmNoYXB0ZXIgLnNraWxscyB7XG4gICAgcGFkZGluZzogOXB4OyB9XG4gIC5jaGFwdGVyIGgxIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDFlbTsgfVxuICAuY2hhcHRlciBoMiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jaGFwdGVyIHAge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4yZW07IH1cbiAgLmNoYXB0ZXIgaGVhZGVyIHtcbiAgICBvcmRlcjogMzsgfVxuICAuY2hhcHRlciAuc3RhdHVzIHtcbiAgICBiYWNrZ3JvdW5kOiAjOWU5ZTllO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG9yZGVyOiAxO1xuICAgIHBhZGRpbmc6IDQuNXB4IDlweDtcbiAgICB6LWluZGV4OiAyMDsgfVxuICAgIC5jaGFwdGVyIC5zdGF0dXMgc3BhbiB7XG4gICAgICBvcmRlcjogMjsgfVxuICAgIC5jaGFwdGVyIC5zdGF0dXMucGFzc2VkIHtcbiAgICAgIGJhY2tncm91bmQ6ICM5YWJhMzg7IH1cbiAgICAuY2hhcHRlciAuc3RhdHVzLmlucHJvZ3Jlc3Mge1xuICAgICAgYmFja2dyb3VuZDogIzI4YWRlMzsgfVxuICAgIC5jaGFwdGVyIC5zdGF0dXMubG9ja2VkIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAuY2hhcHRlciAuc3RhdHVzLnJldGFrZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTc1MzQ1OyB9XG4gIC5jaGFwdGVyIC5pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgIGZsZXg6IDE7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG9yZGVyOiAyO1xuICAgIGhlaWdodDogNzAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gIC5jaGFwdGVyIC5za2lsbHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGMkYyRjI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBvcmRlcjogNDtcbiAgICB6LWluZGV4OiAyMDsgfVxuICAgIC5jaGFwdGVyIC5za2lsbHMgYSB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gIC5jaGFwdGVyLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuY2hhcHRlci5sb2NrZWQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5jaGFwdGVyLnBhc3NlZCAuaW1hZ2Uge1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDAlKTsgfVxuXG4vKlxuQ2hvaWNlc1xuXG5Eb2hlcnR5IFZpZGVvc1xuXG5NYXJrdXA6XG48c2VjdGlvbiBjbGFzcz1cImNob2ljZXNcIiBpZD1cIm9wdGlvbnNcIj5cbiAgPGgyPkhlcmUgYXJlIGZvdXIgdHlwZXMgb2YgYXR0aXR1ZGVzIHRoYXQgd2UgaGF2ZSBmb3VuZCBpbiBvdXIgcmVzZWFyY2guIFBsZWFzZSByZWFkIGFsbCBmb3VyIGFuZCB0aGVuIHNlbGVjdCB3aGljaCBvbmUgYmVzdCBmaXRzIHlvdSBhdCB0aGlzIHRpbWUuPC9oMj5cbiAgPHVsIGNsYXNzPVwiY2hvaWNlLWxpc3RcIj5cbiAgICA8bGkgY2xhc3M9XCJjaG9pY2Utd3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNob2ljZVwiPlxuICAgICAgICA8cD5JJ20gZG9uZSB3aXRoIHRoaXMgcmVsYXRpb25zaGlwOyBpdCdzIHRvbyBsYXRlIG5vdyBldmVuIGlmIG15IHBhcnRuZXIgd2VyZSB0byBtYWtlIG1ham9yIGNoYW5nZXMuPC9wPlxuICAgICAgICA8YSBjbGFzcz1cImJ1dHRvblwiIGRhdGEtb3B0aW9uPVwiZG9uZVwiIGRhdGEtdHlwZT1cIm9wdGlvblwiPldhdGNoIHRoaXMgVmlkZW88L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNob2ljZS13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hvaWNlXCI+XG4gICAgICAgIDxwPkkgaGF2ZSBtaXhlZCBmZWVsaW5ncyBhYm91dCB0aGUgYnJlYWt1cDsgc29tZXRpbWVzIEkgdGhpbmsgaXQncyBhIGdvb2QgaWRlYSBhbmQgc29tZXRpbWVzIEknbSBub3Qgc3VyZS48L3A+XG4gICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uXCIgZGF0YS1vcHRpb249XCJtaXhlZFwiIGRhdGEtdHlwZT1cIm9wdGlvblwiPldhdGNoIHRoaXMgVmlkZW88L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNob2ljZS13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hvaWNlXCI+XG4gICAgICAgIDxwPkkgd291bGQgY29uc2lkZXIgcmVjb25jaWxpbmcgaWYgbXkgcGFydG5lciBnb3Qgc2VyaW91cyBhYm91dCBtYWtpbmcgbWFqb3IgY2hhbmdlcy48L3A+XG4gICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uXCIgZGF0YS1vcHRpb249XCJtYWpvcmNoYW5nZXNcIiBkYXRhLXR5cGU9XCJvcHRpb25cIj5XYXRjaCB0aGlzIFZpZGVvPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJjaG9pY2Utd3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNob2ljZVwiPlxuICAgICAgICA8cD5JIGRvbid0IHdhbnQgdGhpcyBicmVha3VwLCBhbmQgSSB3b3VsZCB3b3JrIGhhcmQgdG8gZ2V0IHVzIGJhY2sgdG9nZXRoZXIuPC9wPlxuICAgICAgICA8YSBjbGFzcz1cImJ1dHRvblwiIGRhdGEtb3B0aW9uPVwiZG9udHdhbnRcIiBkYXRhLXR5cGU9XCJvcHRpb25cIj5XYXRjaCB0aGlzIFZpZGVvPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvc2VjdGlvbj5cblxuU3R5bGVndWlkZSAzLjVcbiovXG4uY2hvaWNlcyB7XG4gIHBhZGRpbmc6IDAgOXB4OyB9XG4gIC5jaG9pY2VzIGgyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgcGFkZGluZzogMCA5cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgIC5jaG9pY2VzIGgyIHtcbiAgICAgICAgY29sb3I6ICMyOGFkZTM7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9IH1cblxuLmNob2ljZS13cmFwcGVyIHtcbiAgcGFkZGluZzogMC4wNXB4OyB9XG5cbi5jaG9pY2Uge1xuICBiYWNrZ3JvdW5kOiAjRjJGMkYyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMThweCAwOyB9XG4gIC5jaG9pY2UgaW5wdXQge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmNob2ljZXMtYWR2YW5jZS1idXR0b24ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luOiAxOHB4IDA7IH1cblxuLypcbkNyZWRpdHNcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJjcmVkaXRzIHRleHQtY29udGFpbmVyIGwtY29udGFpbmVyaG9yaXpvbnRhbFwiPlxuICA8YXJ0aWNsZT5cbiAgICA8aDE+Q2VudGVyIGZvciBEaXZvcmNlIEVkdWNhdGlvbjwvaDE+XG4gICAgPGFkZHJlc3M+XG4gICAgICAxMDA1IEUuIFN0YXRlIFN0LiwgU3VpdGUgR1xuICAgICAgPGJyPkF0aGVucywgT0ggNDU3MDFcbiAgICA8L2FkZHJlc3M+XG4gICAgPGFkZHJlc3M+XG4gICAgICA8YnI+VG9sbCBGcmVlOiA4NzctODc0LTEzNjVcbiAgICA8L2FkZHJlc3M+XG4gICAgPGFkZHJlc3M+XG4gICAgICBXZWI6XG4gICAgICA8YnI+PGEgaHJlZj1cImh0dHA6Ly93d3cuZGl2b3JjZS1lZHVjYXRpb24uY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCI+aHR0cDovL3d3dy5kaXZvcmNlLWVkdWNhdGlvbi5jb208L2E+XG4gICAgPC9hZGRyZXNzPlxuICA8L2FydGljbGU+XG4gIDxhcnRpY2xlPlxuICAgIDxoMT5DcmVkaXRzPC9oMT5cbiAgICA8cD5cbiAgICAgIFRoZSB2aWRlb3Mgc2hvd24gYXJlIGEgcmV2aXNpb24gb2YgYW4gZWFybGllciB2ZXJzaW9uLCB3aGljaCB3b24gdGhlIFBvc2l0aXZlIFBhcmVudGluZyBBd2FyZCBmcm9tIHRoZSBDaGlsZHJlbidzIFJpZ2h0cyBDb3VuY2lsLCB0aGUgVGVsbHkgQXdhcmQsIGFuZCB0aGUgTW9kZWwgUHJvZ3JhbSBBd2FyZCBmcm9tIHRoZSBTdWJzdGFuY2UgQWJ1c2UgYW5kIE1lbnRhbCBIZWFsdGggU2VydmljZXMgQWRtaW5pc3RyYXRpb24uXG4gICAgPC9wPlxuICAgIDxoMz5FeGVjdXRpdmUgUHJvZHVjZXI6PC9oMz5cbiAgICA8cD5Eb25hbGQgR29yZG9uLCBQaC5ELjwvcD5cbiAgICA8aDM+V2ViIERlc2lnbiBhbmQgRGV2ZWxvcG1lbnQ6PC9oMz5cbiAgICA8cD5Db25jZW50cmljIFNreSwgRXVnZW5lLCBPcmVnb248L3A+XG4gICAgPGgzPlZpZGVvIGFuZCBBdWRpbyBEZXZlbG9wbWVudDo8L2gzPlxuICAgIDx1bD5cbiAgICAgIDxsaT5TdWxsaXZhbiBSZWNvcmRpbmcsIE1lZGZvcmQsIE9yZWdvbjwvbGk+XG4gICAgICA8bGk+TWVkaWFCcml0ZTwvbGk+XG4gICAgPC91bD5cbiAgICA8aDM+QXV0aG9yICZhbXA7IEV4ZWMuIFByb2R1Y2VyOjwvaDM+XG4gICAgPGg0PkRvbmFsZCBBLiBHb3Jkb24sIFBoLkQuPC9oND5cbiAgICA8cD5Eci4gR29yZG9uIGlzIGEgY2hpbGQgYW5kIGZhbWlseSBwc3ljaG9sb2dpc3QsIGEgcmVzZWFyY2hlciBhbmQgcHVibGljIHNwZWFrZXIsIGFuZCBFbWVyaXR1cyBQcm9mZXNzb3Igb2YgUHN5Y2hvbG9neSBmcm9tIE9oaW8gVW5pdmVyc2l0eTwvcD5cbiAgICA8cD5UaGUgQ2VudGVyIGZvciBEaXZvcmNlIEVkdWNhdGlvbiB3b3VsZCBsaWtlIHRvIHRoYW5rIFRoZSBIb25vcmFibGUgQnJ1Y2UgUGV0ZXJzb24gKERpc3RyaWN0IENvdXJ0IEp1ZGdlIGluIE1pbm5lc290YSkgYW5kIERyLiBXaWxsaWFtIERvaGVydHkgKFByb2Zlc3NvciBpbiBEZXB0LiBvZiBGYW1pbHkgU29jaWFsIFNjaWVuY2VzLCBVbml2ZXJzaXR5IG9mIE1pbm5lc290YSkgZm9yIHRoZWlyIGRvbmF0aW9uIG9mIHRpbWUgYW5kIGNvbnRyaWJ1dGlvbiB0byB0aGUgSW50cm9kdWN0aW9uL09yaWVudGF0aW9uIHNlY3Rpb24gb2YgdGhpcyBjbGFzcyBhbmQgdGhlIHNlY3Rpb24gc3BlYWtpbmcgdG8gQWx0ZXJuYXRpdmVzIHRvIGEgRGl2b3JjZSBhbHNvIHByZXNlbnRlZCBpbiB0aGUgQ0lCTyBjbGFzcy48L3A+XG4gICAgPHA+Q29weXJpZ2h0IMKpIDIwMDc8L3A+XG4gICAgPHA+QWxsIHJpZ2h0cyByZXNlcnZlZC4gTm8gcGFydCBvZiB0aGlzIHByb2R1Y3QgbWF5IGJlIHJlcHJvZHVjZWQgaW4gYW55IGZvcm0sIGVsZWN0cm9uaWMgb3IgbWVjaGFuaWNhbCwgaW5jbHVkaW5nIHBob3RvZ3JhcGh5LCByZWNvcmRpbmcsIG9yIGFueSBpbmZvcm1hdGlvbiBzdG9yYWdlIG9yIHJldHJpZXZhbCBzeXN0ZW0sIGV4Y2VwdCBhcyBzcGVjaWZpZWQgYnkgdGhlIHB1Ymxpc2hlciBpbiBsZWdhbCBhZ3JlZW1lbnQuPC9wPlxuICA8L2FydGljbGU+XG48L3NlY3Rpb24+XG5cblN0eWxlZ3VpZGUgMy42XG4qL1xuLmNyZWRpdHMge1xuICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmNyZWRpdHMge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5jcmVkaXRzIGFydGljbGUge1xuICAgICAgZmxleDogMTtcbiAgICAgIHBhZGRpbmc6IDE4cHg7IH1cbiAgICAgIC5jcmVkaXRzIGFydGljbGU6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRjJGMkYyOyB9IH1cblxuLypcbkRhdGEgVGFibGVcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImRhdGF0YWJsZVwiPlxuICA8dGFibGU+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5DYXNlIE51bWJlcjwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInJvd1wiPkN1bXVsYXRpdmUgU2NvcmU8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5UaW1lIG9uIFNpdGU8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5Ta2lsbHMgUHJhY3RpY2U8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5TdGF0ZS9Db3VudHkgUmVxdWlyZW1lbnRzPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+U3VydmV5PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHk+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD5Ob25lPC90ZD5cbiAgICAgICAgPHRkPjU8L3RkPlxuICAgICAgICA8dGQ+MTJociAxMm1pbjwvdGQ+XG4gICAgICAgIDx0ZD5Db21wbGV0ZTwvdGQ+XG4gICAgICAgIDx0ZD5JbmNvbXBsZXRlPC90ZD5cbiAgICAgICAgPHRkPkluY29tcGxldGU8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuICA8L3RhYmxlPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4yNVxuKi9cbi5kYXRhdGFibGUge1xuICBtYXJnaW46IDAgMThweCAxOHB4OyB9XG4gIC5kYXRhdGFibGUgdGQsXG4gIC5kYXRhdGFibGUgdGgge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmctcmlnaHQ6IDM2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuZGF0YXRhYmxlIHRkIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgcGFkZGluZy10b3A6IDlweDsgfVxuXG4vKlxuRGlhbG9nXG5cbk5vIGV4YW1wbGUgYXZhaWxhYmxlLCBqdXN0IHBsYWNlaG9sZGVyIGZvciBub3cuXG5cblN0eWxlZ3VpZGUgMy4yNlxuKi9cbi51aS13aWRnZXQtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi51aS1mcm9udCB7XG4gIHotaW5kZXg6IDEwMTsgfVxuXG4udWktZGlhbG9nLFxuI21vZGFsIHtcbiAgYm9yZGVyOiAxMHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxMDE7IH1cbiAgLnVpLWRpYWxvZy5tb2RhbC1jb3Vyc2UsXG4gICNtb2RhbC5tb2RhbC1jb3Vyc2Uge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgLnVpLWRpYWxvZyxcbiAgICAjbW9kYWwge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgICB0b3A6IDBweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gIC51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhcixcbiAgLnVpLWRpYWxvZyAjbW9kYWxfaGVhZGVyLFxuICAjbW9kYWwgLnVpLWRpYWxvZy10aXRsZWJhcixcbiAgI21vZGFsICNtb2RhbF9oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMThweCAxOHB4IDFweDsgfVxuICAgIC51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhciBidXR0b24udWktYnV0dG9uLFxuICAgIC51aS1kaWFsb2cgI21vZGFsX2hlYWRlciBidXR0b24udWktYnV0dG9uLFxuICAgICNtb2RhbCAudWktZGlhbG9nLXRpdGxlYmFyIGJ1dHRvbi51aS1idXR0b24sXG4gICAgI21vZGFsICNtb2RhbF9oZWFkZXIgYnV0dG9uLnVpLWJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6ICMyOGFkZTM7XG4gICAgICB0b3A6IDEwcHg7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAudWktZGlhbG9nLm1vZGFsLWNvdXJzZSAjbW9kYWxfaGVhZGVyLFxuICAjbW9kYWwubW9kYWwtY291cnNlICNtb2RhbF9oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gICAgZm9udC1zaXplOiAzMnB4OyB9XG4gIC51aS1kaWFsb2c6bm90KC5tb2RhbC1jb3Vyc2UpIC51aS1kaWFsb2ctY29udGVudCxcbiAgLnVpLWRpYWxvZzpub3QoLm1vZGFsLWNvdXJzZSkgI2NvbnRlbnQsXG4gICNtb2RhbDpub3QoLm1vZGFsLWNvdXJzZSkgLnVpLWRpYWxvZy1jb250ZW50LFxuICAjbW9kYWw6bm90KC5tb2RhbC1jb3Vyc2UpICNjb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgICAudWktZGlhbG9nOm5vdCgubW9kYWwtY291cnNlKSAudWktZGlhbG9nLWNvbnRlbnQsXG4gICAgICAudWktZGlhbG9nOm5vdCgubW9kYWwtY291cnNlKSAjY29udGVudCxcbiAgICAgICNtb2RhbDpub3QoLm1vZGFsLWNvdXJzZSkgLnVpLWRpYWxvZy1jb250ZW50LFxuICAgICAgI21vZGFsOm5vdCgubW9kYWwtY291cnNlKSAjY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDsgfSB9XG4gIC51aS1kaWFsb2cubW9kYWwtY291cnNlICNjb250ZW50LFxuICAjbW9kYWwubW9kYWwtY291cnNlICNjb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMTFweCk7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcGFkZGluZzogMThweDsgfVxuICAudWktZGlhbG9nICNtb2RhbF9oZWFkZXIucmVmZXJlbmNlLW1vZGFsLFxuICAjbW9kYWwgI21vZGFsX2hlYWRlci5yZWZlcmVuY2UtbW9kYWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmctYm90dG9tOiAxN3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7IH1cbiAgLnVpLWRpYWxvZyAjY2xvc2UsXG4gICNtb2RhbCAjY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogIzI4YWRlMztcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC51aS1kaWFsb2cgaDIsXG4gICNtb2RhbCBoMiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG4gIC51aS1kaWFsb2cgcCxcbiAgI21vZGFsIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLnVpLWRpYWxvZy5tb2RhbC1jb3Vyc2UgcCxcbiAgI21vZGFsLm1vZGFsLWNvdXJzZSBwIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnVpLWRpYWxvZyAuYnV0dG9uLFxuICAjbW9kYWwgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4OyB9XG4gIC51aS1kaWFsb2cgLmNvdW50eV9uYW1lLFxuICAjbW9kYWwgLmNvdW50eV9uYW1lIHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4jb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMTAwdmg7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIHotaW5kZXg6IDEwMTsgfVxuXG4jbW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBsZWZ0OiA1MCU7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICB3aWR0aDogNDB2dztcbiAgei1pbmRleDogMTAxOyB9XG4gICNtb2RhbC5tb2RhbC1jb3Vyc2Uge1xuICAgIG92ZXJmbG93LXk6IGluaGVyaXQ7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgI21vZGFsIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDB2dzsgfSB9XG5cbi8qXG5FcnJvcnMgR2xvYmFsXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJlcnJvcnMtZ2xvYmFsXCI+UGxlYXNlIGNvcnJlY3QgdGhlIGVycm9ycyBiZWxvdy48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjI3XG4qL1xuLmVycm9ycy1nbG9iYWwge1xuICBiYWNrZ3JvdW5kOiAjZjI2YzRmO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW46IDAgOXB4IDE4cHg7XG4gIHBhZGRpbmc6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLmVycm9ycy1nbG9iYWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4vKlxuRXJyb3IgNDA0XG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwiZXJyb3I0MDRcIj5cbiAgPGgxPjQwNCBFcnJvcjwvaDE+XG4gIDxoMj5JdCBhcHBlYXJzIHRoZXJlIHdhcyBhIGJyZWFrZG93biBpbiBjb21tdW5pY2F0aW9uLjwvaDI+XG4gIDxwPkVpdGhlciB0aGUgVVJMIHdhcyBtaXN0eXBlZCwgbmV2ZXIgZXhpc3RlZCwgb3Igb25jZSBleGlzdGVkIGJ1dCB3YXMgbXlzdGVyaW91c2x5IGxvc3QuPC9wPlxuICA8YSBjbGFzcz1cImJ1dHRvblwiIGhyZWY9XCJcIj5UYWtlIG1lIGhvbWU8L2E+XG4gIDxwPldhbnQgdG8gY29tbXVuaWNhdGUgYmV0dGVyPzxicj4gPGEgaHJlZj1cIlwiPkNoZWNrIG91dCBTa2lsbHMgUHJhY3RpY2U8L2E+PC9wPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDMuN1xuKi9cbi5lcnJvcjQwNCB7XG4gIGJhY2tncm91bmQ6ICMxNTVhNzYgdXJsKFwiaW1hZ2VzL2Vycm9yNDA0LnBuZ1wiKSBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogNTRweCAxOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuNSkgMCAycHggNHB4OyB9XG4gIC5lcnJvcjQwNCBoMSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmVycm9yNDA0IGgyIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTY7IH1cbiAgLmVycm9yNDA0IHAge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMS4zOyB9XG4gIC5lcnJvcjQwNCA+IGEge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZXJyb3I0MDQgPiAqIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgQG1lZGlhIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICAuZXJyb3I0MDQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL2Vycm9yNDA0LTJ4LnBuZ1wiKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5lcnJvcjQwNCB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL2Vycm9yNDA0LWRlc2t0b3AucG5nXCIpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTsgfVxuICAgICAgLmVycm9yNDA0IGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA2NHB4OyB9XG4gICAgICAuZXJyb3I0MDQgaDIge1xuICAgICAgICBmb250LXNpemU6IDMwcHg7IH1cbiAgICAgIC5lcnJvcjQwNCA+IGEge1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgIC5lcnJvcjQwNCA+ICoge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDQ0MHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIC5lcnJvcjQwNCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvZXJyb3I0MDQtZGVza3RvcC0yeC5wbmdcIik7IH0gfVxuXG4vKlxuRkFRXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwiZmFxc1wiPlxuICA8aGVhZGVyIGNsYXNzPVwicGFnZS10aXRsZSBwYWdlLXRpdGxlLWNlbnRlcmVkXCI+XG4gICAgPGgxPkZBUXM8L2gxPlxuICA8L2hlYWRlcj5cbiAgPG9sPlxuICAgIDxsaT48c3Ryb25nPkkgY2Fu4oCZdCBzZWUgYW55IHBpY3R1cmVzIG9uIHRoZSBzY3JlZW4sIGp1c3Qgd29yZHMuIFdoYXTigJlzIHdyb25nP1xuICAgIDwvc3Ryb25nPlxuICAgIDxzZWN0aW9uPjxwPllvdSBhcmUgdXNpbmcgYW4gaW5jb21wYXRpYmxlIHdlYiBicm93c2VyLiBJbnN0YWxsIGFuZCB1c2UgPGEgaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9jaHJvbWUvXCIgdGFyZ2V0PVwiX2JsYW5rXCI+R29vZ2xlIENocm9tZTwvYT4uPC9wPjwvc2VjdGlvbj5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgIDxzdHJvbmc+V2hlbiBJIGxvZyBpbnRvIHRoZSBwcm9ncmFtLCBpdCBrZWVwcyB0ZWxsaW5nIG1lIHRvIHVwZGF0ZSB0aGUgQWRvYmUgRmxhc2hcbiAgICAgICAgUGxheWVyLCBidXQgSeKAmXZlIGFscmVhZHkgZG9uZSB0aGlzIG9uY2UuIFdoYXTigJlzIHdyb25nP1xuICAgICAgPC9zdHJvbmc+XG4gICAgICA8c2VjdGlvbj48cD5Zb3UgYXJlIHVzaW5nIGFuIGluY29tcGF0aWJsZSB3ZWIgYnJvd3Nlci4gSW5zdGFsbCBhbmQgdXNlIDxhIGhyZWY9XCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vY2hyb21lL1wiIHRhcmdldD1cIl9ibGFua1wiPkdvb2dsZSBDaHJvbWU8L2E+LjwvcD48L3NlY3Rpb24+XG4gICAgPC9saT5cbiAgPC9vbD5cbjwvYXJ0aWNsZT5cblxuU3R5bGVndWlkZSAzLjhcbiovXG4uZmFxcyB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgcGFkZGluZzogMCAxOHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5mYXFzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM2cHg7XG4gICAgICBtYXJnaW4tdG9wOiAzNnB4OyB9IH1cbiAgLmZhcXMgb2wge1xuICAgIHBhZGRpbmc6IDAgMThweDsgfVxuICAuZmFxcyBsaSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbCBpbnNpZGU7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAuZmFxcyBzZWN0aW9uIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKlxuRmVlIFdhaXZlclxuXG5QbGFjZSBob2xkZXJcblxuTWFya3VwOlxuICA8b2wgY2xhc3M9XCJmZWVXYWl2ZXJcIj5cbiAgICA8bGk+XG4gICAgICA8aDE+Q2FwdHVyZSBkb2N1bWVudDwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmVlV2FpdmVyLXgtY29udGVudFdyYXBwZXJcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aDI+VGFrZSBwaG90bzwvaDI+XG4gICAgICAgICAgUG9zaXRpb24gbW9iaWxlIGRldmljZSBvdmVyIGRvY3VtZW50LCB0YWtlIGFuZCBzYXZlIHBob3RvIHRvIGRldmljZS5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZWVXYWl2ZXIteC1mb250c2l6ZS1sYXJnZVwiPk9SPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgyPlNjYW4gZG9jdW1lbnQ8L2gyPlxuICAgICAgICAgIFNjYW4gZmlsZSBhbmQgc2F2ZSBmaWxlIHRvIGRldmljZS5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgIDxoMT5Nb3ZlIGRvY3VtZW50IChvcHRpb25hbCk8L2gxPlxuICAgICAgPGRpdiBjbGFzcz1cImZlZVdhaXZlci14LWNvbnRlbnRXcmFwcGVyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgyPkVtYWlsIGZpbGU8L2gyPlxuICAgICAgICAgIEVtYWlsIHBob3RvIHRvIHlvdXJzZWxmIGFuZCBkb3dubG9hZCB0byBkZXZpY2UuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmVlV2FpdmVyLXgtZm9udHNpemUtbGFyZ2VcIj5PUjwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMj5UcmFuc2ZlciBmaWxlPC9oMj5cbiAgICAgICAgICAgIFVwbG9hZCBmaWxlIHRvIGRldmljZS5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgIDxoMT5VcGxvYWQgZG9jdW1lbnQ8L2gxPlxuICAgICAgPGRpdj5TZWxlY3QgXCJDaG9vc2UgRmlsZVwiIGJlbG93IGFuZCBmaW5kIHRoZSBkb2N1bWVudCBmaWxlLjwvZGl2PlxuICAgIDwvbGk+XG4gIDwvb2w+XG5cblN0eWxlZ3VpZGUgMy41MVxuKi9cbiN1cGxvYWQtaW5zdHJ1Y3Rpb25zIHtcbiAgcGFkZGluZy1ib3R0b206IDlweDsgfVxuXG4uZmVlV2FpdmVyIHtcbiAgYm9yZGVyOiBzb2xpZCAjOTc5Nzk3IDFweDtcbiAgY291bnRlci1yZXNldDogaXRlbTtcbiAgcGFkZGluZzogMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5mZWVXYWl2ZXIgaDEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDI2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4OyB9XG4gIC5mZWVXYWl2ZXIgbGkge1xuICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9jaXJjbGVfc21hbGxHcmV5LnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBsaXN0LXN0eWxlOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAuZmVlV2FpdmVyIGxpOjpiZWZvcmUge1xuICAgICAgY29udGVudDogY291bnRlcihpdGVtLCBkZWNpbWFsKTtcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBpdGVtO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMjNweDsgfVxuICAgIC5mZWVXYWl2ZXIgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgLmZlZVdhaXZlciBsaSBkaXYge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7IH1cbiAgICAgIC5mZWVXYWl2ZXIgbGkgZGl2Om5vdCguZmVlV2FpdmVyLXgtY29udGVudFdyYXBwZXIpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyN3B4OyB9XG4gICAgICAuZmVlV2FpdmVyIGxpIGRpdjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuICAgICAgLmZlZVdhaXZlciBsaSBkaXYgaDIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgLmZlZVdhaXZlciAuZmVlV2FpdmVyLXgtZm9udHNpemUtbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuZmVlV2FpdmVyIGgxIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmZlZVdhaXZlciBsaSAuZmVlV2FpdmVyLXgtY29udGVudFdyYXBwZXIge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgIC5mZWVXYWl2ZXIgbGkgLmZlZVdhaXZlci14LWNvbnRlbnRXcmFwcGVyIGRpdiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7XG4gICAgICAgIG1heC13aWR0aDogMjQ5cHg7IH1cbiAgICAgICAgLmZlZVdhaXZlciBsaSAuZmVlV2FpdmVyLXgtY29udGVudFdyYXBwZXIgZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDI3cHg7IH0gfVxuXG4vKlxuRm9vdGVyXG5cbk1hcmt1cDpcbjxmb290ZXIgY2xhc3M9XCJmb290ZXJcIj5cbiAgPGRpdiBjbGFzcz1cImwtY29udGFpbmVyaG9yaXpvbnRhbFwiPlxuICAgIDxhIGhyZWY9XCJodHRwOi8vd3d3LmRpdm9yY2UtZWR1Y2F0aW9uLmNvbS9cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImxvZ29cIj48aW1nIHNyYz1cIi9pbWFnZXMvbG9nby1mb290ZXIucG5nXCIgYWx0PVwiYWx0PVwiIHRoZT1cIlwiIGNlbnRlcj1cIlwiIGZvcj1cIlwiIGRpdm9yY2U9XCJcIiBlZHVjYXRpb249XCJcIiBsb2dvXCJcIj1cIlwiPjwvYT5cbiAgICA8c2VjdGlvbj5cbiAgICAgIDxkbD5cbiAgICAgICAgPGR0PlRvbGwgRnJlZTwvZHQ+XG4gICAgICAgIDxkZD44NzctODc0LTEzNjU8L2RkPlxuICAgICAgICA8ZHQgY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5FbWFpbDwvZHQ+XG4gICAgICAgIDxkZD48YSBocmVmPVwibWFpbHRvOnN0YWZmQGRpdm9yY2UtZWR1Y2F0aW9uLmNvbVwiPnN0YWZmQGRpdm9yY2UtZWR1Y2F0aW9uLmNvbTwvYT48L2RkPlxuICAgICAgPC9kbD5cbiAgICAgIDxuYXY+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9cIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tZm9vdGVyXCI+SG9tZTwvYT48L2xpPlxuICAgICAgICAgIDxsaT48YSBocmVmPVwiL2NvdXJzZVwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1mb290ZXJcIj5Db3Vyc2U8L2E+PC9saT5cbiAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9yZWZlcmVuY2UvY3JlZGl0cy9cIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tZm9vdGVyXCI+Q3JlZGl0czwvYT48L2xpPlxuICAgICAgICAgIDxsaT48YSBocmVmPVwiL3JlZmVyZW5jZS9mYXEvXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLWZvb3RlclwiPkZBUTwvYT48L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9uYXY+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbjwvZm9vdGVyPlxuXG5TdHlsZWd1aWRlIDMuOVxuKi9cbi5mb290ZXIge1xuICBib3gtc2hhZG93OiAwIC0xcHggMCAwIHJnYmEoMjcsIDM1LCAzOSwgMC4xNSk7XG4gIHBhZGRpbmctYm90dG9tOiAxOHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb290ZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206IDE4cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMThweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb290ZXIgLmwtY29udGFpbmVyaG9yaXpvbnRhbCB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG4gIC5mb290ZXIgLmxvZ28ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMThweDtcbiAgICBvcGFjaXR5OiAuODsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgLmZvb3RlciAubG9nbyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG9wYWNpdHk6IC4zOyB9IH1cbiAgICAuZm9vdGVyIC5sb2dvIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIC5mb290ZXIgLmxvZ286aG92ZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAgIC5mb290ZXIgLmxvZ286aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IC41OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLmZvb3RlciBzZWN0aW9uIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgLmZvb3RlciBkbCB7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgbWFyZ2luOiAwIDE4cHggOXB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9vdGVyIGRsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfSB9XG4gICAgLmZvb3RlciBkbCBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgICAuZm9vdGVyIGRsIGEge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9IH1cbiAgLmZvb3RlciBkdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgIC5mb290ZXIgZHQge1xuICAgICAgICBmbG9hdDogbm9uZTsgfSB9XG4gIC5mb290ZXIgZHQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICc6ICc7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLmZvb3RlciBkZCB7XG4gICAgICBib3gtc2hhZG93OiAjZjZmM2VlIC0ycHggMCAwIDAgaW5zZXQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDsgfSB9XG4gIC5mb290ZXIgZGQ6bGFzdC1vZi10eXBlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb290ZXIgdWwge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbi1yaWdodDogMThweDsgfVxuICAgICAgLmZvb3RlciB1bCBsaSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA5cHg7IH0gfVxuICAuZm9vdGVyIC5idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgLmZvb3RlciAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC5mb290ZXIuaGFzLXJlcXVpcmVtZW50cyB7XG4gICAgcGFkZGluZy1ib3R0b206IDcycHg7IH1cblxuLypcbkZvcmtcblxuTWFya3VwOlxuPHVsIGNsYXNzPVwiZm9ya1wiPlxuICA8bGk+XG4gICAgPGgxIGNsYXNzPVwiZm9yay14LWNvbXBsZXRlXCI+WW91J3ZlIFdhdGNoZWQgVGhpczwvaDE+XG4gICAgPGRpdj5cbiAgICAgIDxpbWcgc3Jjc2V0PVwiaHR0cDovL3BsYWNlaG9sZC5pdC8yNDB4Mjg0IGh0dHA6Ly9wbGFjZWhvbGQuaXQvMTIweDE0MlwiIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTIweDE0MlwiIHdpZHRoPVwiMTIwXCIgaGVpZ2h0PVwiMTQyXCIgYWx0PVwie3tkZXNjcmlwdGlvbn19XCI+XG4gICAgPC9kaXY+XG4gICAgPHA+TW9tIGNhbGxzIERhZCBhbmQgZXhwbGFpbnMgd2h5IHNoZSBkZW5pZWQgaGlzIHJlcXVlc3QgZm9yIGV4dHJhIHRpbWUgcHJldmlvdXNseS4gRGFkIHJlYWN0cyBhbmdyaWx5IGFuZCByZWZ1c2VzIGhlciByZXF1ZXN0LiBNb20gdGVsbHMgaGltIHNoZSB3aWxsIG5vdCBncmFudCBleHRyYSB0aW1lIHRoZSBuZXh0IHRpbWUgaGUgYXNrcyBmb3IgaXQuIDwvcD5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgZGlzYWJsZWQ+V2F0Y2ggVGhpcyBWaWRlbzwvYnV0dG9uPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGRpdj5cbiAgICAgIDxpbWcgc3Jjc2V0PVwiaHR0cDovL3BsYWNlaG9sZC5pdC8yNDB4Mjg0IGh0dHA6Ly9wbGFjZWhvbGQuaXQvMTIweDE0MlwiIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTIweDE0MlwiIHdpZHRoPVwiMTIwXCIgaGVpZ2h0PVwiMTQyXCIgYWx0PVwie3tkZXNjcmlwdGlvbn19XCI+XG4gICAgPC9kaXY+XG4gICAgPHA+TW9tIGNhbGxzIERhZCBhbmQgcHJlc2VudHMgaGVyIHJlYXNvbnMgZm9yIHdhbnRpbmcgQ2FzZXkgaG9tZSBlYXJseSwgYXMgd2VsbCBhcyBmb3Iga2VlcGluZyB0aGUgc2thdGVzIGF0IGhlciBob3VzZS48L3A+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiPldhdGNoIFRoaXMgVmlkZW88L2J1dHRvbj5cbiAgPC9saT5cbjwvdWw+XG5cblN0eWxlZ3VpZGUgMy4xMFxuKi9cbi5mb3JrIHtcbiAgcGFkZGluZzogMCAxOHB4IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmZvcmsge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgLmZvcmsgOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmZvcmsgPiAqIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgbWluLWhlaWdodDogMTQycHg7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgICAgLmZvcmsgPiAqIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMThweDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuZm9yayA+ICoge1xuICAgICAgICBmbGV4OiAxIDEgMDsgfVxuICAgICAgICAuZm9yayA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMThweDsgfSB9XG4gIC5mb3JrIGRpdiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA5cHg7XG4gICAgei1pbmRleDogMTA7IH1cbiAgICAuZm9yayBkaXYgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5mb3JrIHAge1xuICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAuZm9yayBidXR0b24ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTMuNXB4O1xuICAgIHBhZGRpbmctdG9wOiAxMy41cHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZvcmsgLmZvcmstY2hvaWNlIHtcbiAgICBtYXgtd2lkdGg6IDM1NXB4OyB9XG4gICAgLmZvcmsgLmZvcmstY2hvaWNlIGJ1dHRvbiB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICAuZm9yayAuZm9yay1pbWFnZSB7XG4gICAgd2lkdGg6IDM1NXB4O1xuICAgIGhlaWdodDogMTc2cHg7IH1cbiAgICAuZm9yayAuZm9yay1pbWFnZSBpbWcge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZvcmsgLmZvcmstdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IDlweDsgfVxuICAuZm9yayAuZm9yay14LWNvbXBsZXRlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxNzZweDtcbiAgICB3aWR0aDogMzU1cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA5cHg7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbiAgICB6LWluZGV4OiA1MDsgfVxuICAgIC5mb3JrIC5mb3JrLXgtY29tcGxldGU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvZm9yay1kb25lLnBuZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDIzcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgIHdpZHRoOiAyM3B4OyB9XG5cbi8qXG5Gb3JtXG5cbkZvcm1zIGFyZSBtb25vbGl0aGljIGFuZCBub3Qgd2VsbCBtb2R1bGFyaXplZCBhdCB0aGlzIHBvaW50LiBUaGVyZSdzIGEgYmlnIHRvZG8gdG8gY2hhbmdlIHRoZW0uXG5cbkRlZmF1bHQgLSBUaGlzIGlzIHRoZSBzdGFuZGFyZCBmb3JtIHN0eWxpbmdcbi5mb3JtLWlubGluZSAtIFRoaXMgc3VibW9kdWxlIHB1dHMgaW5wdXRzIGFuZCBsYWJlbHMgc2lkZSBieSBzaWRlXG5cbk1hcmt1cDpcbjxmb3JtIGFjdGlvbj1cIlwiIG1ldGhvZD1cIlBPU1RcIiBjbGFzcz1cImZvcm0geyRtb2RpZmllcnN9XCI+XG4gIDxmaWVsZHNldCBjbGFzcz1cInVzZXItaW5mb3JtYXRpb25cIj5cbiAgICA8bGVnZW5kPjEuIENyZWF0ZSB5b3VyIEFjY291bnQ8L2xlZ2VuZD5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgXCI+XG4gICAgICA8bGFiZWwgZm9yPVwiaWRfbmFtZVwiPk5hbWU8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiSm9obiBEb2VcIiBuYW1lPVwibmFtZVwiIGlkPVwiaWRfbmFtZVwiPlxuICAgICAgICA8cD5QbGVhc2UgZW50ZXIgeW91ciBuYW1lIGV4YWN0bHkgYXMgeW91IHdhbnQgaXQgdG8gYXBwZWFyIG9uIHlvdXIgY2VydGlmaWNhdGUgb2YgY29tcGxldGlvbi48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgXCI+XG4gICAgICA8bGFiZWwgZm9yPVwiaWRfZW1haWxcIj5cbiAgICAgICAgRW1haWw6XG4gICAgICA8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJlbWFpbFwiIGlkPVwiaWRfZW1haWxcIj5cbiAgICAgICAgPHA+VGhpcyBpcyBoZWxwZXIgdGV4dCBmb3IgdGhpcyBpbnB1dC48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgc3VjY2Vzc1wiPlxuICAgICAgPGxhYmVsIGZvcj1cImlkX2xhbmd1YWdlXCI+XG4gICAgICAgIExhbmd1YWdlIFZlcnNpb25cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgPHNlbGVjdCBuYW1lPVwibGFuZ3VhZ2VcIiBpZD1cImlkX2xhbmd1YWdlXCI+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImVuXCIgc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPkVuZ2xpc2g8L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZXNcIj5TcGFuaXNoPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8cCBjbGFzcz1cImZvcm0teC13YXJuaW5nbWVzc2FnZVwiPjxlbT5QbGVhc2Ugbm90ZTogWW91ciBDb3VudHkgcmVxdWlyZXMgcHJpb3IgcGVybWlzc2lvbiBmcm9tIHRoZSBDb3VydCBpbiBvcmRlciB0byBjb21wbGV0ZSBhbiBvbmxpbmUgY2xhc3MuIENvbnRhY3QgdGhlIENsZXJrIG9mIENvdXJ0cyBhdCAxMjMtMTIzLTQ1NjcuPC9lbT48L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGNoZWNrYm94XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJwcmludF92ZXJzaW9uXCIgaWQ9XCJpZF9wcmludF92ZXJzaW9uXCI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbCBmb3I9XCJpZF9wcmludF92ZXJzaW9uXCI+XG4gICAgICAgIDxwPlllcywgZm9yIGFuIGFkZGl0aW9uYWwgJDExLjUwLCBwbGVhc2Ugc2hpcCBtZSBQcmludCBWZXJzaW9ucyBvZiB0aGUgdHdvIFdvcmtib29rcy4gQWNjZXNzIHRvIGRpZ2l0YWwgdmVyc2lvbiBhbHJlYWR5IGluY2x1ZGVkIGluIHB1cmNoYXNlIHByaWNlLiA8c3Ryb25nPihUb3RhbCBwcmljZSB3aXRoIHByaW50IHZlcnNpb25zOiAkNTEuNDUpPC9zdHJvbmc+PC9wPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9maWVsZHNldD5cbiAgPGZpZWxkc2V0PlxuICAgIDxsZWdlbmQ+SGF2ZSBhIENvdXBvbj88L2xlZ2VuZD5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgZm9ybS1yb3ctaXMtdmFsaWRcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJjb3Vwb25cIj5Db3Vwb24gQ29kZTwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5hbWVcIiBpZD1cImNvdXBvblwiIHZhbHVlPVwiV1YyMDE3XCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZm9ybS1yb3cteC1zdWNjZXNzXCI+RGlzY291bnQgYXBwbGllZC48L3A+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLWhlaWdodC1zbWFsbCBidXR0b24tbWFya2V0aW5nLWxpZ2h0XCIgdHlwZT1cImJ1dHRvblwiPkFwcGx5PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9maWVsZHNldD5cbiAgPGZpZWxkc2V0PlxuICAgIDxsZWdlbmQ+T3JkZXIgU3VtbWFyeTwvbGVnZW5kPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLXgtc3VtbWFyeVwiPlxuICAgICAgICA8c2ctaW5zZXJ0PjMuNTM8L3NnLWluc2VydD5cbiAgICAgICAgPHAgY2xhc3M9XCJmb3JtLXgtd2FybmluZ21lc3NhZ2VcIj48ZW0+UGxlYXNlIG5vdGU6IFlvdXIgQ291bnR5IHJlcXVpcmVzIHByaW9yIHBlcm1pc3Npb24gZnJvbSB0aGUgQ291cnQgaW4gb3JkZXIgdG8gY29tcGxldGUgYW4gb25saW5lIGNsYXNzLiBDb250YWN0IHRoZSBDbGVyayBvZiBDb3VydHMgYXQgMTIzLTEyMy00NTY3LjwvZW0+PC9wPlxuICAgIDwvZGl2PlxuICA8L2ZpZWxkc2V0PlxuICA8ZmllbGRzZXQ+XG4gICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwLXBheW1lbnRcIj5cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpPjxsYWJlbCBmb3I9XCJpZF9wYXltZW50X3R5cGVfMFwiIGNsYXNzPVwiYWN0aXZlXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfcGF5bWVudF90eXBlXzBcIiB2YWx1ZT1cImF1dGhuZXRcIiBuYW1lPVwicGF5bWVudF90eXBlXCI+IDxwPlBheSB3aXRoIG1ham9yIGNyZWRpdCBjYXJkczo8L3A+PGltZyBzcmM9XCIvaW1hZ2VzL2NjLWljb25zLnBuZ1wiIGFsdD1cIlBheSB3aXRoIG1ham9yIGNyZWRpdCBjYXJkczogVmlzYSwgTWFzdGVyY2FyZCwgQW1lcmljYW4gRXhwcmVzcywgb3IgRGlzY292ZXJcIj48L2xhYmVsPjwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICA8L2ZpZWxkc2V0PlxuICA8ZmllbGRzZXQgY2xhc3M9XCJzdWJtaXRcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ1dHRvblwiPkZpbmFsaXplIFlvdXIgUHVyY2hhc2U8L2J1dHRvbj5cbiAgPC9maWVsZHNldD5cbiAgPHNnLWluc2VydD41LjM8L3NnLWluc2VydD5cbjwvZm9ybT5cblxuXG5TdHlsZWd1aWRlIDMuMlxuKi9cbi5mb3JtIHtcbiAgbWFyZ2luLWJvdHRvbTogMzZweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAuZm9ybSB7XG4gICAgICBwYWRkaW5nOiAwIDE4cHg7IH0gfVxuICAuZm9ybSBkaXYgbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogOXB4OyB9XG4gIC5mb3JtIGRpdiB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBtYXJnaW4tbGVmdDogMjIuNXB4OyB9XG4gIC5mb3JtIGRpdiBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOXB4OyB9XG4gIC5mb3JtIGZpZWxkc2V0Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLmZvcm0gZmllbGRzZXQgPiBwIHtcbiAgICBtYXJnaW46IDAgMThweCAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybSBmaWVsZHNldCA+IHAge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgLmZvcm0gLnN1Ym1pdC1yb3cge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmZvcm0gbGVnZW5kLFxuICAuZm9ybSAubGVnZW5kIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y2ZjNlZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgICBwYWRkaW5nOiAwIDE4cHggOXB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybSBsZWdlbmQsXG4gICAgICAuZm9ybSAubGVnZW5kIHtcbiAgICAgICAgY29sb3I6ICMxYjIzMjc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gICAgLmZvcm0gbGVnZW5kIHNwYW4sXG4gICAgLmZvcm0gLmxlZ2VuZCBzcGFuIHtcbiAgICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBtYXJnaW4tdG9wOiA5cHg7IH1cbiAgLmZvcm0gLnN1Ym1pdCB7XG4gICAgcGFkZGluZzogMCAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybSAuc3VibWl0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgICAuZm9ybSAuc3VibWl0IHAge1xuICAgICAgY29sb3I6ICM2OTY5Njk7XG4gICAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgLmZvcm0gLmJ1dHRvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZm9ybSAuaW5jb21wbGV0ZS1mb3JtIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuZm9ybSAuZm9ybS14LW5vdGUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIHBhZGRpbmc6IDAgMThweCA5cHg7IH1cbiAgLmZvcm0gLmZvcm0teC1ub3RlLWltcG9ydGFudCB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIG1hcmdpbjogMThweCAwO1xuICAgIHBhZGRpbmc6IDAgMThweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmZvcm0gLmZvcm0teC1saW5rcyB7XG4gICAgcGFkZGluZzogMCAxOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5mb3JtIC5mb3JtLXgtbGlua3MgYSB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gIC5mb3JtIC5mb3JtLXgtc3VtbWFyeSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7IH1cbiAgLmZvcm0gLmZvcm0teC13YXJuaW5nbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmMjZjNGY7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgICAuZm9ybSAuZm9ybS14LXdhcm5pbmdtZXNzYWdlIGVtIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb3JtIC5mb3JtLXgtc3VtbWFyeSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMwJTsgfSB9XG5cbi5mb3JtLW5vbWFyZ2luIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5mb3JtLXJvdyB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gIHBhZGRpbmc6IDAgMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiBGaWxlIGlucHV0cyBhcmUgc3R5bGVkIGFzIGRlZmF1bHQgb24gcGFnZSBsb2FkLCBhbmQgY3VzdG9tIGNsYXNzZXMgYXJlIGFkZGVkIHZpYSBqcy4gKi8gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAuZm9ybS1yb3cge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gIC5mb3JtLXJvdyAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmZvcm0tcm93IC52YWx1ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuZm9ybS1yb3cgLnZhbHVlIHAge1xuICAgICAgY29sb3I6ICM2OTY5Njk7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgbWFyZ2luLXRvcDogNC41cHg7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5mb3JtLXJvdyAudmFsdWUgLmZvcm0tcm93LXgtc3VjY2VzcyB7XG4gICAgICBjb2xvcjogIzlhYmEzODsgfVxuICAgIC5mb3JtLXJvdyAudmFsdWUgLmZvcm0tcm93LXgtZXJyb3Ige1xuICAgICAgY29sb3I6ICNlNzUzNDU7IH1cbiAgLmZvcm0tcm93IGxhYmVsLFxuICAuZm9ybS1yb3cgLmxhYmVsIHtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDAgMCA1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5mb3JtLXJvdyBpbnB1dDpmb2N1cyxcbiAgLmZvcm0tcm93IHNlbGVjdDpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAwICMyOGFkZTM7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAuZm9ybS1yb3cgW3R5cGU9XCJ0ZXh0XCJdLFxuICAuZm9ybS1yb3cgW3R5cGU9XCJlbWFpbFwiXSxcbiAgLmZvcm0tcm93IFt0eXBlPVwicGFzc3dvcmRcIl0sXG4gIC5mb3JtLXJvdyBbdHlwZT1cInRlbFwiXSxcbiAgLmZvcm0tcm93IHNlbGVjdCxcbiAgLmZvcm0tcm93IHRleHRhcmVhIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6ICNGMkYyRjI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogIzFiMjMyNztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogXCJwcm94aW1hIG5vdmFcIiwgXCJIZWx2ZXRpY2FcIiwgXCJTYW5zLVNlcmlmXCI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZm9ybS1yb3cgOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAuNTsgfVxuICAuZm9ybS1yb3cgc2VsZWN0IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvZm9ybS1yb3ctc2VsZWN0LnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSA5cHgpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyN3B4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybS1yb3cgc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gIC5mb3JtLXJvdyBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDE7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE4cHg7XG4gICAgdG9wOiAtNXB4OyB9XG4gIC5mb3JtLXJvdy5mb3JtLXJvdy1pcy12YWxpZCBbdHlwZT1cInRleHRcIl0sXG4gIC5mb3JtLXJvdy5mb3JtLXJvdy1pcy12YWxpZCBbdHlwZT1cImVtYWlsXCJdLFxuICAuZm9ybS1yb3cuZm9ybS1yb3ctaXMtdmFsaWQgW3R5cGU9XCJwYXNzd29yZFwiXSxcbiAgLmZvcm0tcm93LmZvcm0tcm93LWlzLXZhbGlkIFt0eXBlPVwidGVsXCJdLFxuICAuZm9ybS1yb3cuZm9ybS1yb3ctaXMtdmFsaWQgc2VsZWN0LFxuICAuZm9ybS1yb3cuZm9ybS1yb3ctaXMtdmFsaWQgdGV4dGFyZWEge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy9mb3Jtcm93LXZhbGlkLnBuZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxOHB4KSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MXB4OyB9XG4gIC5mb3JtLXJvdy5jaGVja2JveCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5mb3JtLXJvdy5jaGVja2JveCAudmFsdWUge1xuICAgICAgd2lkdGg6IDI1cHg7IH1cbiAgICAuZm9ybS1yb3cuY2hlY2tib3ggbGFiZWwge1xuICAgICAgZmxleDogMTsgfVxuICAgICAgLmZvcm0tcm93LmNoZWNrYm94IGxhYmVsIHAge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICAgICAgLmZvcm0tcm93LmNoZWNrYm94IGxhYmVsIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgICAgLmZvcm0tcm93LmNoZWNrYm94IGxhYmVsIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuZm9ybS1yb3cucmFkaW8gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDlweDsgfVxuICAuZm9ybS1yb3cucmFkaW8gbGFiZWwge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIG1hcmdpbjogMDsgfVxuICAuZm9ybS1yb3cucmFkaW8gaW5wdXQge1xuICAgIG1hcmdpbjogLTJweCA5cHggMCAwOyB9XG4gIC5mb3JtLXJvdy5zaG9ydCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuZm9ybS1yb3cuc2hvcnQgbGFiZWwge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuZm9ybS1yb3cuc2hvcnQgW3R5cGU9XCJ0ZXh0XCJdLFxuICAgIC5mb3JtLXJvdy5zaG9ydCBbdHlwZT1cInRlbFwiXSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgIHdpZHRoOiA5MHB4OyB9XG4gIC5mb3JtLXJvdy5zdWNjZXNzIFt0eXBlPVwidGV4dFwiXSxcbiAgLmZvcm0tcm93LnN1Y2Nlc3MgW3R5cGU9XCJlbWFpbFwiXSxcbiAgLmZvcm0tcm93LnN1Y2Nlc3MgW3R5cGU9XCJ0ZWxcIl0ge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlIHVybChcImltYWdlcy9mb3JtLXN1Y2Nlc3MucG5nXCIpIDk1JSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwJTsgfVxuICAuZm9ybS1yb3cuZXJyb3IgW3R5cGU9XCJ0ZXh0XCJdLFxuICAuZm9ybS1yb3cuZXJyb3IgW3R5cGU9XCJ0ZWxcIl0sXG4gIC5mb3JtLXJvdy5lcnJvciBbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0MiwgMTA4LCA3OSwgMC4xKSB1cmwoXCJpbWFnZXMvZm9ybS1lcnJvci5wbmdcIikgOTUlIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YyNmM0ZjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgIC5mb3JtLXJvdy5lcnJvciBbdHlwZT1cInRleHRcIl0sXG4gICAgICAuZm9ybS1yb3cuZXJyb3IgW3R5cGU9XCJ0ZWxcIl0sXG4gICAgICAuZm9ybS1yb3cuZXJyb3IgW3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsgfSB9XG4gIC5mb3JtLXJvdy5lcnJvciBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZvcm0tcm93LmZvcm0tcm93LXN0cmlwZSAudmFsdWUge1xuICAgIGJhY2tncm91bmQ6ICNGMkYyRjI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogIzFiMjMyNztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogXCJwcm94aW1hIG5vdmFcIiwgXCJIZWx2ZXRpY2FcIiwgXCJTYW5zLVNlcmlmXCI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHBhZGRpbmc6IDlweDsgfVxuICAuZm9ybS1yb3cuZm9ybS1yb3ctc3RyaXBlLnN1Y2Nlc3MgLnZhbHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjZmM2VlIHVybChcImltYWdlcy9mb3JtLXN1Y2Nlc3MucG5nXCIpIDk1JSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwJTsgfVxuICAuZm9ybS1yb3cuZm9ybS1yb3ctc3RyaXBlLmVycm9yIC52YWx1ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YyNmM0ZjsgfVxuICAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSBpbnB1dCB7XG4gICAgd2lkdGg6IDAuMXB4O1xuICAgIGhlaWdodDogMC4xcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAtMTsgfVxuICAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSBsYWJlbCB7XG4gICAgLyogTGFiZWwgY29udGFpbnMgZmlsZW5hbWUuIERvbid0IHdhbnQgdG8gbGltaXQgaXRzIHdpZHRoLiAqL1xuICAgIHdpZHRoOiBpbmhlcml0OyB9XG4gICAgLmZvcm0tcm93LmZvcm0tcm93LWZpbGUgbGFiZWwgKiB7XG4gICAgICAvKiBQb2ludGVyIGV2ZW50cyBvbiBkZXNjZW5kYW50IGVsZW1lbnRzIHNob3VsZCBidWJibGUgdXAgdG8gdGhlIGxhYmVsLiAqL1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmZvcm0tcm93LmZvcm0tcm93LWZpbGUgLmJ1dHRvbi1sYWJlbCB7XG4gICAgLyogQSBsYWJlbCBzdHlsZWQgbGlrZSBhIGJ1dHRvbi4gKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBjb2xvcjogIzI4YWRlMztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjhhZGUzO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA5cHggMThweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSAuYnV0dG9uLWxhYmVsOmZvY3VzLCAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSAuYnV0dG9uLWxhYmVsOmhvdmVyIHtcbiAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgIzI4YWRlMztcbiAgICAgIC8qIEludGVudGlvbmFsbHkgb3ZlcnJpZGUgZm9yIHdlYmtpdCBicm93c2Vycy4gTm9uLXdlYmtpdCB3aWxsIHVzZSBsaW5lIGFib3ZlLiAqL1xuICAgICAgb3V0bGluZTogLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIGF1dG8gNXB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSAuYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgLmZvcm0tcm93LmZvcm0tcm93LWZpbGUuZXJyb3IgLmJ1dHRvbi1sYWJlbCB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjI2YzRmOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAuZm9ybS1pbmxpbmUgLmZvcm0tcm93IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5mb3JtLWlubGluZSAuZm9ybS1yb3cgaW1nIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIGFuZCAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb3JtLWlubGluZSAuZm9ybS1yb3cuc2hvcnQgbGFiZWwge1xuICAgICAgd2lkdGg6IDI4JTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb3JtLWlubGluZSAuZm9ybS1yb3cuZm9ybS1yb3ctYWxpZ25jZW50ZXIge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmZvcm0taW5saW5lIGxhYmVsIHtcbiAgICBtYXJnaW46IDEwLjhweCAyJSAwIDA7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgd2lkdGg6IDI4JTsgfVxuICAuZm9ybS1pbmxpbmUgLnZhbHVlIHtcbiAgICB3aWR0aDogNzAlOyB9XG4gIC5mb3JtLWlubGluZSAuZXJyb3JsaXN0IHtcbiAgICBtYXJnaW4tbGVmdDogMzAlO1xuICAgIHdpZHRoOiA3MCU7IH1cbiAgLmZvcm0taW5saW5lIC5idXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgIC5mb3JtLWlubGluZSAuY2hlY2tib3ggLnZhbHVlIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA5cHg7IH1cbiAgICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IGlucHV0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogOXB4OyB9XG4gICAgLmZvcm0taW5saW5lIC5jaGVja2JveCBsYWJlbCB7XG4gICAgICBmbGV4OiAyO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmZvcm0taW5saW5lIGRpdiBsYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA5cHg7IH1cbiAgLmZvcm0taW5saW5lIGRpdiB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBtYXJnaW4tbGVmdDogMTI2cHg7XG4gICAgbWFyZ2luLXRvcDogOXB4OyB9XG4gIC5mb3JtLWlubGluZSBkaXYgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmZvcm0teC1ub3RlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG5cbi5mb3JtLXJvdy1zdWJtaXQge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5mb3JtLXJvdy1zdWJtaXQgLmZvcm0tcm93LXN1Ym1pdC14LWJ1dHRvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyB9XG4gICAgLmZvcm0tcm93LXN1Ym1pdCAuZm9ybS1yb3ctc3VibWl0LXgtYnV0dG9uIC5idXR0b24ge1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmZvcm0tcm93LXN1Ym1pdCAuZm9ybS1yb3ctc3VibWl0LXgtbWVzc2FnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgLmZvcm0tcm93LXN1Ym1pdC5mb3JtLXJvdy1zdWJtaXQtaXMtc3VjY2VzcyAuZm9ybS1yb3ctc3VibWl0LXgtbWVzc2FnZSB7XG4gICAgY29sb3I6ICM5YWJhMzg7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnJhZGlvLWdyb3VwLXBheW1lbnQge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yYWRpby1ncm91cC1wYXltZW50IHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgdWwge1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC5yYWRpby1ncm91cC1wYXltZW50IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgcGFkZGluZzogMCAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBsaSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGk6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzI4YWRlMztcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDE7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxOHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGFiZWwge1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvOyB9IH1cbiAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBsYWJlbDpob3ZlciwgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGFiZWw6Zm9jdXMsIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsLmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMjhhZGUzOyB9XG4gICAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBsYWJlbDpob3ZlciBoMSxcbiAgICAgIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsOmhvdmVyIGgzLFxuICAgICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGFiZWw6aG92ZXIgcCwgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGFiZWw6Zm9jdXMgaDEsXG4gICAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBsYWJlbDpmb2N1cyBoMyxcbiAgICAgIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsOmZvY3VzIHAsIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsLmFjdGl2ZSBoMSxcbiAgICAgIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsLmFjdGl2ZSBoMyxcbiAgICAgIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsLmFjdGl2ZSBwIHtcbiAgICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLnJhZGlvLWdyb3VwLXBheW1lbnQgaDEge1xuICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogNjIuNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBoMSBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgLnJhZGlvLWdyb3VwLXBheW1lbnQgdGFibGUge1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgdGFibGUgaW5wdXQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnJhZGlvLWdyb3VwLXBheW1lbnQgcCB7XG4gICAgY29sb3I6ICMxYjIzMjc7XG4gICAgZm9udC1zaXplOiAxMi42cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1hcmdpbjogNXB4IDA7IH1cbiAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBwOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5yYWRpby1ncm91cC1wYXltZW50IHAgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgLnJhZGlvLWdyb3VwLXBheW1lbnQgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgbGVmdDogLTk5OTlweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLypcbkZvcm0gU3VydmV5XG5cbk92ZXJyaWRlcyBmb3IgdGhlIHN1cnZleSBmb3JtIHR5cGUgKGhhcyBhIGJvcmRlciBhbmQgc29tZSBkaWZmZXJlbnQgbGF5b3V0IG9wdGlvbnMgYmFzZWQgb24gc2NyZWVuIHNpemUpXG5UT0RPOiBUaGlzIG5lZWRzIHRvIGJlY29tZSBpdHMgb3duIG1vZHVsZVxuXG5NYXJrdXA6XG48dWwgY2xhc3M9XCJzdXJ2ZXktcHJvZ3Jlc3MgcHJvZ3Jlc3NiYXJcIj5cbiAgPGxpIGlkPVwicHJvZ3Jlc3MtZGVtb2dyYXBoaWNzXCIgY2xhc3M9XCJjdXJyZW50IHByb2dyZXNzYmFyLWl0ZW1cIj4xLiBEZW1vZ3JhcGhpY3M8L2xpPlxuICA8bGkgaWQ9XCJwcm9ncmVzcy1jYXNlXCIgY2xhc3M9XCJwcm9ncmVzc2Jhci1pdGVtXCI+Mi4gQ2FzZSBCYWNrZ3JvdW5kPC9saT5cbiAgPGxpIGlkPVwicHJvZ3Jlc3MtZmFtaWx5XCIgY2xhc3M9XCJwcm9ncmVzc2Jhci1pdGVtXCI+My4gRmFtaWx5IER5bmFtaWNzPC9saT5cbiAgPGxpIGlkPVwicHJvZ3Jlc3MtY291cnNlXCIgY2xhc3M9XCJwcm9ncmVzc2Jhci1pdGVtXCI+NC4gQ291cnNlIEZlZWRiYWNrPC9saT5cbjwvdWw+XG48Zm9ybSBhY3Rpb249XCJcIiBjbGFzcz1cImZvcm0gZm9ybS1zdXJ2ZXlcIj5cbiAgPGZpZWxkc2V0IGlkPVwiZGVtb2dyYXBoaWNzXCI+XG4gICAgPGxlZ2VuZD4xLiBEZW1vZ3JhcGhpY3M8L2xlZ2VuZD5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZGF0ZSBmb3JtLXJvdyByZXF1aXJlZFwiPlxuICAgICAgPGxhYmVsPldoYXQgeWVhciB3ZXJlIHlvdSBib3JuIGluPzwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj48aW5wdXQgaWQ9XCJpZF9kYXRlXzItYW5zd2VyXCIgdHlwZT1cInRleHRcIiBuYW1lPVwiZGF0ZV8yLWFuc3dlclwiIG1heGxlbmd0aD1cIjRcIj48L2Rpdj5cbiAgICAgIDx1bCBjbGFzcz1cImVycm9ybGlzdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cbiAgICAgICAgPGxpPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQ8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgbXVsdGlwbGUtY2hvaWNlIGZvcm0tcm93IHJlcXVpcmVkXCI+XG4gICAgICA8bGFiZWw+V2hhdCBnZW5kZXIgYXJlIHlvdT88L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+PHVsPlxuICAgICAgICA8bGk+PGxhYmVsIGZvcj1cImlkX21jXzE1LWFuc3dlcl8wXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfbWNfMTUtYW5zd2VyXzBcIiB2YWx1ZT1cIjY3XCIgbmFtZT1cIm1jXzE1LWFuc3dlclwiPiBNYWxlPC9sYWJlbD48L2xpPlxuICAgICAgICA8bGk+PGxhYmVsIGZvcj1cImlkX21jXzE1LWFuc3dlcl8xXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfbWNfMTUtYW5zd2VyXzFcIiB2YWx1ZT1cIjY4XCIgbmFtZT1cIm1jXzE1LWFuc3dlclwiPiBGZW1hbGU8L2xhYmVsPjwvbGk+XG4gICAgICAgIDxsaT48bGFiZWwgZm9yPVwiaWRfbWNfMTUtYW5zd2VyXzJcIj48aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9tY18xNS1hbnN3ZXJfMlwiIHZhbHVlPVwiNjlcIiBuYW1lPVwibWNfMTUtYW5zd2VyXCI+IE90aGVyPC9sYWJlbD48L2xpPlxuICAgICAgICA8bGk+PGxhYmVsIGZvcj1cImlkX21jXzE1LWFuc3dlcl8zXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfbWNfMTUtYW5zd2VyXzNcIiB2YWx1ZT1cIjcwXCIgbmFtZT1cIm1jXzE1LWFuc3dlclwiPiBQcmVmZXIgbm90IHRvIGFuc3dlcjwvbGFiZWw+PC9saT5cbiAgICAgIDwvdWw+PC9kaXY+XG4gICAgICA8dWwgY2xhc3M9XCJlcnJvcmxpc3RcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XG4gICAgICAgIDxsaT5UaGlzIGZpZWxkIGlzIHJlcXVpcmVkPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvZmllbGRzZXQ+XG4gIDxzZWN0aW9uIGNsYXNzPVwic3VibWl0XCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIGlkPVwibmV4dC1zZWN0aW9uXCI+TmV4dCBTZWN0aW9uPC9idXR0b24+XG4gICAgPGlucHV0IGNsYXNzPVwiYnV0dG9uXCIgaWQ9XCJzdWJtaXRcIiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJDb250aW51ZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cbiAgPC9zZWN0aW9uPlxuPC9mb3JtPlxuXG5TdHlsZWd1aWRlIDMuMi4xXG4qL1xuQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gIC5mb3JtLXN1cnZleSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0YyRjJGMjtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuZm9ybS1zdXJ2ZXkgbGVnZW5kIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuZm9ybS1zdXJ2ZXkgLmZvcm0tc2NhbGUsIC5mb3JtLXN1cnZleSAuZm9ybS1yb3cge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMkYyRjI7IH1cbiAgICAuZm9ybS1zdXJ2ZXkgLmZvcm0tcm93IHtcbiAgICAgIHBhZGRpbmc6IDE4cHg7IH1cbiAgICAuZm9ybS1zdXJ2ZXkgLnN1Ym1pdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0YyRjJGMjtcbiAgICAgIHBhZGRpbmc6IDAgMThweDsgfSB9XG5cbi8qXG5Gb3JtIFNjYWxlXG5cblRoaXMgaXMgdXNlZCBmb3IgYSBzY2FsaW5nIHNldCBvZiByYWRpbyBvcHRpb25zIGJ1aWx0IGluIGEgdGFibGVcblxuTWFya3VwOlxuPGZvcm0gYWN0aW9uPVwiXCIgY2xhc3M9XCJmb3JtIGZvcm0tc2NhbGVcIj5cbiAgPGZpZWxkc2V0PlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBzY2FsZXJlcXVpcmVkXCI+XG4gICAgICA8aDIgY2xhc3M9XCJmb3JtLXNjYWxlLWhlYWRpbmdcIj5UaGUgZm9sbG93aW5nIHF1ZXN0aW9ucyByZWZlciB0byB5b3UsIHlvdXIgY28tcGFyZW50IGludm9sdmVkLCBhbmQgeW91ciBtdXR1YWwgY2hpbGQocmVuKS4gU2VsZWN0IHRoZSBvcHRpb24gdGhhdCBiZXN0IGRlc2NyaWJlcyB5b3VyIHNpdHVhdGlvbi48L2gyPlxuICAgICAgPGRpdiBjbGFzcz1cInNjYWxlX3Jlc3BvbnNlc1wiPlxuICAgICAgICA8dGFibGU+XG4gICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJsYWJlbFwiIHNjb3BlPVwicm93XCI+ICZuYnNwOyA8L3RoPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInZhbHVlXCI+QWx3YXlzPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJ2YWx1ZVwiPk9mdGVuPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJ2YWx1ZVwiPlNvbWV0aW1lczwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwidmFsdWVcIj5SYXJlbHk8L3RoPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInZhbHVlXCI+TmV2ZXI8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibGFiZWxcIiBzY29wZT1cInJvd1wiPjxsYWJlbD5EbyB5b3UgZmVlbCBmcmllbmRseSB0b3dhcmQgeW91ciBmb3JtZXIgcGFydG5lcj88L2xhYmVsPlxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJlcnJvcmxpc3RcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+PGxpPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuPC9saT48L3VsPiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaWRfc3RhdGVtZW50XzIxLWFuc3dlcl8xXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9zdGF0ZW1lbnRfMjEtYW5zd2VyXzFcIiBuYW1lPVwic3RhdGVtZW50XzIxLWFuc3dlclwiIHZhbHVlPVwiMjdcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPkFsd2F5czwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpZF9zdGF0ZW1lbnRfMjEtYW5zd2VyXzJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBpZD1cImlkX3N0YXRlbWVudF8yMS1hbnN3ZXJfMlwiIG5hbWU9XCJzdGF0ZW1lbnRfMjEtYW5zd2VyXCIgdmFsdWU9XCIyOFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+T2Z0ZW48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaWRfc3RhdGVtZW50XzIxLWFuc3dlcl8zXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9zdGF0ZW1lbnRfMjEtYW5zd2VyXzNcIiBuYW1lPVwic3RhdGVtZW50XzIxLWFuc3dlclwiIHZhbHVlPVwiMjlcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPlNvbWV0aW1lczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpZF9zdGF0ZW1lbnRfMjEtYW5zd2VyXzRcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBpZD1cImlkX3N0YXRlbWVudF8yMS1hbnN3ZXJfNFwiIG5hbWU9XCJzdGF0ZW1lbnRfMjEtYW5zd2VyXCIgdmFsdWU9XCIzMFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+UmFyZWx5PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlkX3N0YXRlbWVudF8yMS1hbnN3ZXJfNVwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfc3RhdGVtZW50XzIxLWFuc3dlcl81XCIgbmFtZT1cInN0YXRlbWVudF8yMS1hbnN3ZXJcIiB2YWx1ZT1cIjMxXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5OZXZlcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibGFiZWxcIiBzY29wZT1cInJvd1wiPjxsYWJlbD5EbyB5b3VyIGNoaWxkcmVuIGZlZWwgZnJpZW5kbHkgdG93YXJkIHlvdXIgZm9ybWVyIHBhcnRuZXI/PC9sYWJlbD5cbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiZXJyb3JsaXN0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPjxsaT5UaGlzIGZpZWxkIGlzIHJlcXVpcmVkLjwvbGk+PC91bD4gICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlkX3N0YXRlbWVudF8yMi1hbnN3ZXJfMVwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfc3RhdGVtZW50XzIyLWFuc3dlcl8xXCIgbmFtZT1cInN0YXRlbWVudF8yMi1hbnN3ZXJcIiB2YWx1ZT1cIjI3XCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5BbHdheXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaWRfc3RhdGVtZW50XzIyLWFuc3dlcl8yXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9zdGF0ZW1lbnRfMjItYW5zd2VyXzJcIiBuYW1lPVwic3RhdGVtZW50XzIyLWFuc3dlclwiIHZhbHVlPVwiMjhcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPk9mdGVuPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlkX3N0YXRlbWVudF8yMi1hbnN3ZXJfM1wiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfc3RhdGVtZW50XzIyLWFuc3dlcl8zXCIgbmFtZT1cInN0YXRlbWVudF8yMi1hbnN3ZXJcIiB2YWx1ZT1cIjI5XCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5Tb21ldGltZXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaWRfc3RhdGVtZW50XzIyLWFuc3dlcl80XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9zdGF0ZW1lbnRfMjItYW5zd2VyXzRcIiBuYW1lPVwic3RhdGVtZW50XzIyLWFuc3dlclwiIHZhbHVlPVwiMzBcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPlJhcmVseTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpZF9zdGF0ZW1lbnRfMjItYW5zd2VyXzVcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBpZD1cImlkX3N0YXRlbWVudF8yMi1hbnN3ZXJfNVwiIG5hbWU9XCJzdGF0ZW1lbnRfMjItYW5zd2VyXCIgdmFsdWU9XCIzMVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+TmV2ZXI8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2ZpZWxkc2V0PlxuPC9mb3JtPlxuXG5TdHlsZWd1aWRlIDMuMi4yXG4qL1xuLmZvcm0tc2NhbGUge1xuICBwYWRkaW5nOiAwIDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmZvcm0tc2NhbGUge1xuICAgICAgcGFkZGluZy1ib3R0b206IDE4cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMThweDsgfSB9XG4gIC5mb3JtLXNjYWxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZm9ybS1zY2FsZSB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLmZvcm0tc2NhbGUgdGhlYWQge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuZm9ybS1zY2FsZSB0aGVhZCB0aCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuZm9ybS1zY2FsZSB0Ym9keSAubGFiZWwge1xuICAgICAgcGFkZGluZzogMThweCAwOyB9IH1cbiAgLmZvcm0tc2NhbGUgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmZvcm0tc2NhbGUgdHIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nLWJvdHRvbTogMThweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLmZvcm0tc2NhbGUgdHIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y2ZjNlZTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICAgICAgLmZvcm0tc2NhbGUgdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgICAgICAuZm9ybS1zY2FsZSB0ciBsYWJlbCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmZvcm0tc2NhbGUgdHIgLmxhYmVsIHtcbiAgICAgICAgICBmbGV4OiA1IDAgNDAlOyB9XG4gICAgICAgIC5mb3JtLXNjYWxlIHRyIC52YWx1ZSB7XG4gICAgICAgICAgZmxleDogMSAwIDEyJTtcbiAgICAgICAgICBwYWRkaW5nOiAxOHB4IDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgIC5mb3JtLXNjYWxlIHRyIHNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuZm9ybS1zY2FsZSAubGFiZWwsIC5mb3JtLXNjYWxlIC52YWx1ZSB7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC1zaXplOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuZm9ybS1zY2FsZSAubGFiZWwsIC5mb3JtLXNjYWxlIC52YWx1ZSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAjMWIyMzI3O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgLmZvcm0tc2NhbGUgLmxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgLmZvcm0tc2NhbGUgLmZvcm0tc2NhbGUtaGVhZGluZyB7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTsgfVxuXG4uZXJyb3JsaXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgei1pbmRleDogMTA7IH1cbiAgLmVycm9ybGlzdCBsaSB7XG4gICAgY29sb3I6ICNmMjZjNGY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHotaW5kZXg6IDEwMDsgfVxuXG4vKlxuRm9ybSBpdGVtIGRlc2NyaXB0aW9uXG5cblRoaXMgaXMgYW4gYWRkaXRpb25hbCBkZXNjcmlwdGlvbiB3aXRoaW4gYSBmb3JtLiBJdCBwcm92aWRlcyBleHRyYSBpbmZvcm1hdGlvbiBhYm91dFxuYSBmb3JtIGl0ZW0uXG5cbk1hcmt1cDpcbiAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGZvcm0taXRlbWRlc2NyaXB0aW9uXCI+XG4gICAgPGgyPlJlY29tbWVuZCB0byBDby1QYXJlbnQ8L2gyPlxuICAgIDxwPkVudGVyIHlvdXIgQ28tUGFyZW504oCZcyBlbWFpbCBiZWxvdyBhbmQgd2XigJlsbCBzZW5kIHRoZW0gYW4gZW1haWwgaW52aXRpbmcgdGhlbSB0byBzaWduIHVwIGZvciBDaGlsZHJlbiBpbiBCZXR3ZWVuIG9uIHlvdXIgYmVoYWxmLiA8L3A+XG4gIDwvZGl2PlxuXG5cblN0eWxlZ3VpZGUgMy4yLjNcbiovXG4uZm9ybS1pdGVtZGVzY3JpcHRpb24ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbiAgLmZvcm0taXRlbWRlc2NyaXB0aW9uIGgyIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5mb3JtLWl0ZW1kZXNjcmlwdGlvbiBwIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7IH1cblxuLmZvcm0teC1SZWNvbW1lbmQtY29wYXJlbnQge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5mb3JtLXJvbGx1cCB7XG4gIGJvcmRlcjogMDtcbiAgbWF4LWhlaWdodDogMHB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxcHg7XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgLjVzOyB9XG5cbi5mb3JtLXJvbGx1cC1kaXNwbGF5LXZpc2libGUge1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLypcbkZvcm0gYXMgYSBidXR0b25cblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImZvcm0gZm9ybS1pbmxpbmVcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGZvcm0tcm93LWFsaWduY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBpZD1cImJ1eUZvckNvUGFyZW50XCIgY2xhc3M9XCJidXR0b25cIj5CdXkgQ2hpbGRyZW4gaW4gQmV0d2VlbiBmb3IgeW91ciBDby1QYXJlbnQ8L2J1dHRvbj5cbiAgICA8cCBpZD1cInNob3dGb3JtQnV0dG9uXCIgY2xhc3M9XCJmb3JtLXgtUmVjb21tZW5kLWNvcGFyZW50XCI+b3I8YT5SZWNvbW1lbmQgdG8gQ28tUGFyZW50PC9hPjwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjIuNFxuKi9cbi8qXG5Gb3JtIFJvdyAoU3RyaXBlKVxuXG5EZWZhdWx0IC0gU3RhbmRhcmQgaW5wdXQgdHlwZVxuLnN1Y2Nlc3MgLSBTaG93cyB0aGUgZmllbGQgd2FzIGZpbGxlZCBvdXQgY29ycmVjdGx5XG4uZXJyb3IgLSBTaG93cyBhIGZpZWxkIGVycm9yXG5cbk1hcmt1cDpcbjxmb3JtIGNsYXNzPVwiZm9ybVwiPlxuICA8ZmllbGRzZXQ+XG4gICAgPGxlZ2VuZD40LiBTZWN1cmUgUGF5bWVudDwvbGVnZW5kPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvdyBmb3JtLXJvdy1zdHJpcGUgeyRtb2RpZmllcnN9XCI+XG4gICAgICA8bGFiZWwgZm9yPVwiZm9ybXJvd1wiPkxhYmVsOjwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIiBpZD1cImNhcmQtZWxlbWVudFwiPlxuICAgICAgICA8c3Bhbj5bc3RyaXBlIGNvZGVdPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8cCBjbGFzcz1cImZvcm0tcm93LWluc3RydWN0aW9uc1wiPlRoZXNlIGFyZSBmaWVsZC1sZXZlbCBpbnN0cnVjdGlvbnM8L3A+XG4gICAgPC9kaXY+XG4gIDwvZmllbGRzZXQ+XG48L2Zvcm0+XG5cblN0eWxlZ3VpZGUgMy4yLjVcbiovXG4vKlxuR2xvYmFsIE5vdGlmaWNhdGlvblxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiZ2xvYmFsLW5vdGlmaWNhdGlvbnNcIj5cbiAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbiBsLWNvbnRhaW5lcmhvcml6b250YWxcIiBpZD1cIm5vdGlmaWNhdGlvbnNcIj5cbiAgICA8aDQ+Q0RFJ3MgQ2hpbGRyZW4gSW4gQmV0d2VlbiByZXF1aXJlcyBHb29nbGUgQ2hyb21lIGJyb3dzZXIuIDxzcGFuIGNsYXNzPVwiZXJyb3JcIj48YSBocmVmPVwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbnRsL2VuL2Nocm9tZS9icm93c2VyL1wiIHRhcmdldD1cIl9ibGFua1wiPkRvd25sb2FkIENocm9tZTwvYT48L3NwYW4+PC9oND5cbiAgICA8aDQ+U29tZSBub25lIGVycm9yIG5vdGlmaWNhdGlvbiA8c3Bhbj48YSBocmVmPVwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbnRsL2VuL2Nocm9tZS9icm93c2VyL1wiIHRhcmdldD1cIl9ibGFua1wiPkdvdCBJdDwvYT48L3NwYW4+PC9oND5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjE0XG4qL1xuLmdsb2JhbC1ub3RpZmljYXRpb25zIHtcbiAgYmFja2dyb3VuZDogIzE1NWE3NjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7IH1cbiAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24ge1xuICAgIHBhZGRpbmc6IDAgMThweDsgfVxuICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIHN0cm9uZyB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIHVsIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDsgfVxuICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzBmNDA1MztcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtaW4taGVpZ2h0OiA1OHB4O1xuICAgICAgcGFkZGluZzogOXB4IDA7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAuZ2xvYmFsLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNCB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICAgICAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7IH1cbiAgICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0Lm5vdGlmaWNhdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0Lm5vdGlmaWNhdGlvbiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDsgfSB9XG4gICAgICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0Lm5vdGlmaWNhdGlvbiBzdHJvbmcge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gc3BhbiB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYmFja2dyb3VuZDogIzlhYmEzODtcbiAgICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgICBwYWRkaW5nOiA5cHggMThweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gc3BhbiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gICAgICAuZ2xvYmFsLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBzcGFuLmVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2U3NTM0NTsgfVxuICAgICAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gc3BhbiBhIHtcbiAgICAgICAgY29sb3I6ICNmZmY7IH1cblxuLypcbkdsb3NzYXJ5XG5cblBsZWFzZSBub3RlIHRoZSByZXF1aXJlZCBqYXZhc2NyaXB0IGF0IHRoZSBiZWdpbmluZyBvZiB0aGUgQ1NTIGJlbGxvdy5cblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJnbG9zc2FyeVwiPlxuICA8ZGl2IGNsYXNzPVwiZ2xvc3NhcnkteC1oZWFkZXJcIj5cbiAgICA8aDE+R2xvc3Nhcnk8L2gxPlxuICAgIDxwIGNsYXNzPVwiZ2xvc3NhcnkteC10ZXh0LWxpZ2h0R3JleVwiPlNlbGVjdCBhIHRlcm0gaW4gdGhlIGxpc3QgdG8gdmlldyBpdHMgZGVmaW5pdGlvbi48L3A+XG4gICAgPHNnLWluc2VydD4zLjUyPC9zZy1pbnNlcnQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibC1nbG9zc2FyeVwiPlxuICAgIDxkaXYgY2xhc3M9XCJnbG9zc2FyeS14LXRlcm1zXCI+XG4gICAgICA8YXJ0aWNsZT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJhY2NvcmRpb25cIiB2YWx1ZT1cImFjY29yZGlvbjFcIiBpZD1cImFjY29yZGlvbjFcIiBjaGVja2VkPVwiY2hlY2tlZFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiYWNjb3JkaW9uMVwiPjxoMT5TZW5zaXRpdml0eTwvaDE+PC9sYWJlbD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZ2xvc3NhcnkteC10ZXJtXCI+U2Vuc2l0aXZpdHk8L3A+XG4gICAgICAgICAgICAgVGhpcyBpbnZvbHZlcyBlbXBhdGh5LCB3aGVyZSB5b3UgY2FuIHNlZSBzaXR1YXRpb25zIHRocm91Z2ggb3RoZXIgcGVvcGxl4oCZcyBleWVzIGFuZCBmZWVsIHdoYXQgdGhleSBmZWVsLiBTZW5zaXRpdml0eSBtZWFucyBjb25zaWRlcmluZyB0aGUgZmVlbGluZ3MgYW5kIHdlbGZhcmUgb2Ygb3RoZXJzIGJlZm9yZSB5b3UgYWN0LiBJdCBtZWFucyB0aGF0IHlvdSBkbyBub3QgYWx3YXlzIHB1dCB5b3VyIG5lZWRzIG9mIHRoZSBtb21lbnQgZmlyc3QuIFNlbnNpdGl2aXR5IGluY3JlYXNlcyB3aXRoIG1hdHVyaXR5LCB3aXNkb20sIGNvbXBhc3Npb24sIGFuZCBzZWxmLWNvbnRyb2wuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcnRpY2xlPlxuICAgICAgPGFydGljbGU+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiYWNjb3JkaW9uXCIgdmFsdWU9XCJhY2NvcmRpb24yXCIgaWQ9XCJhY2NvcmRpb24yXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJhY2NvcmRpb24yXCI+PGgxPkVtcGF0aHk8L2gxPjwvbGFiZWw+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImdsb3NzYXJ5LXgtdGVybVwiPkVtcGF0aHk8L3A+XG4gICAgICAgICAgICAgV2hlbiB5b3UgY2FuIGZlZWwgd2hhdCBhbm90aGVyIHBlcnNvbiBmZWVscywgdGhpcyBpcyBlbXBhdGh5LiBJdCBpbnZvbHZlcyBwdXR0aW5nIHlvdXJzZWxmIGluIHNvbWVvbmUgZWxzZeKAmXMgc2hvZXMgc28gYXMgdG8gc2VlIHRoZSBzaXR1YXRpb24gZnJvbSB0aGVpciBwb2ludCBvZiB2aWV3IGFuZCBleHBlcmllbmNlIHRoZSBmZWVsaW5ncyB0aGV5IGRvLiBFbXBhdGh5IGlzIHRoZSBiYXNpcyBmb3IgaW50aW1hdGUgcmVsYXRpb25zaGlwcyBhbmQgYnVpbGRzIHJlc3BlY3QgZm9yIHRoZSBvdGhlciBwZXJzb24uIFBlb3BsZSB3aG8gYXJlIGhpZ2ggaW4gZW1vdGlvbmFsIGludGVsbGlnZW5jZSBoYXZlIGdvb2QgZW1wYXRoeSBza2lsbHMuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcnRpY2xlPlxuICAgICAgPGFydGljbGU+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiYWNjb3JkaW9uXCIgdmFsdWU9XCJhY2NvcmRpb24zXCIgaWQ9XCJhY2NvcmRpb24zXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJhY2NvcmRpb24zXCI+PGgxPlBvbGl0ZSBSZXF1ZXN0PC9oMT48L2xhYmVsPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJnbG9zc2FyeS14LXRlcm1cIj5Qb2xpdGUgUmVxdWVzdDwvcD5cbiAgICAgICAgICAgICAgVGhpcyBpcyBhbiBleHRlbnNpb24gb2YgYW4g4oCcSeKAnSBtZXNzYWdlLiBBZnRlciBzdGF0aW5nIGhvdyB5b3UgZmVlbCBhYm91dCBhbm90aGVyIHBlcnNvbuKAmXMgYmVoYXZpb3IsIHlvdSBwdXQgeW91ciByZXF1ZXN0IGZvciBhIGNoYW5nZSBpbiBiZWhhdmlvciBpbiBhIGNsZWFybHkgcG9saXRlIGZvcm0sIHRoZW4gYXNrIGZvciB0aGVpciBhZ3JlZW1lbnQ6XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcnRpY2xlPlxuICAgICAgPGFydGljbGU+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiYWNjb3JkaW9uXCIgdmFsdWU9XCJhY2NvcmRpb240XCIgaWQ9XCJhY2NvcmRpb240XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJhY2NvcmRpb240XCI+PGgxPlBvbGl0ZSBSZXF1ZXN0IDI8L2gxPjwvbGFiZWw+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImdsb3NzYXJ5LXgtdGVybVwiPlBvbGl0ZSBSZXF1ZXN0PC9wPlxuICAgICAgICAgICAgIFRoaXMgaXMgYW4gZXh0ZW5zaW9uIG9mIGFuIOKAnEnigJ0gbWVzc2FnZS4gQWZ0ZXIgc3RhdGluZyBob3cgeW91IGZlZWwgYWJvdXQgYW5vdGhlciBwZXJzb27igJlzIGJlaGF2aW9yLCB5b3UgcHV0IHlvdXIgcmVxdWVzdCBmb3IgYSBjaGFuZ2UgaW4gYmVoYXZpb3IgaW4gYSBjbGVhcmx5IHBvbGl0ZSBmb3JtLCB0aGVuIGFzayBmb3IgdGhlaXIgYWdyZWVtZW50OlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXJ0aWNsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGlkPVwiZ2xvc3NhcnkteC1kZWZpbml0aW9uXCI+XG4gICAgICBUaGlzIGlzIGFuIGV4dGVuc2lvbiBvZiBhbiDigJxJ4oCdIG1lc3NhZ2UuIEFmdGVyIHN0YXRpbmcgaG93IHlvdSBmZWVsIGFib3V0IGFub3RoZXIgcGVyc29u4oCZcyBiZWhhdmlvciwgeW91IHB1dCB5b3VyIHJlcXVlc3QgZm9yIGEgY2hhbmdlIGluIGJlaGF2aW9yIGluIGEgY2xlYXJseSBwb2xpdGUgZm9ybSwgdGhlbiBhc2sgZm9yIHRoZWlyIGFncmVlbWVudDpcbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG5cblxuU3R5bGVndWlkZSAzLjQ5XG4qL1xuLypcblRoaXMgcGF0dGVybiBhc3N1bWVzIGFuZCByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGphdmFzY3JpcHQgLyBKcXVlcnkgc25pcHBldDpcbndpbmRvdy5uZXh0VGVybSA9IG51bGw7XG53aW5kb3cubXV0ZWQgPSBmYWxzZTtcblxuZnVuY3Rpb24gbXV0ZUF1ZGlvKCkge1xuICAgICQoJyN2b2x1bWVfY29udHJvbCcpLmZpbmQoJyN2b2x1bWVEaXNwbGF5JykuYWRkQ2xhc3MoJ2F1ZGlvR2xvc3NhcnktbXV0ZWQnKTtcbiAgICB3aW5kb3cubXV0ZWQgPSB0cnVlO1xuICAgIGlmICh3aW5kb3cuZ2xvc3NhcnlfdGVybV9hdWRpbykge1xuICAgICAgICB3aW5kb3cuZ2xvc3NhcnlfdGVybV9hdWRpby5wYXVzZSgpO1xuICAgICAgICB3aW5kb3cuZ2xvc3NhcnlfdGVybV9hdWRpby5tdXRlZCA9IHRydWU7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB1bm11dGVBdWRpbygpIHtcbiAgICAkKCcjdm9sdW1lX2NvbnRyb2wnKS5maW5kKCcjdm9sdW1lRGlzcGxheScpLnJlbW92ZUNsYXNzKCdhdWRpb0dsb3NzYXJ5LW11dGVkJyk7XG4gICAgd2luZG93Lm11dGVkID0gZmFsc2U7XG4gICAgaWYgKHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvKSB7XG4gICAgICAgIHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvLnBsYXkoKTtcbiAgICAgICAgd2luZG93Lmdsb3NzYXJ5X3Rlcm1fYXVkaW8ubXV0ZWQgPSBmYWxzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRvZ2dsZU11dGUoKSB7XG4gICAgaWYgKHdpbmRvdy5tdXRlZCkge1xuICAgICAgICB1bm11dGVBdWRpbygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG11dGVBdWRpbygpO1xuICAgIH1cbn1cblxuXG4kKCcjdm9sdW1lX2NvbnRyb2wnKS5jbGljayhmdW5jdGlvbigpe1xuICAgIHRvZ2dsZU11dGUoKTtcbn0pO1xuXG5cbmZ1bmN0aW9uIHBsYXlEZWZpbml0aW9uQXVkaW8oYXVkaW9VcmwpIHtcbiAgICBpZiAoIXdpbmRvdy5tdXRlZCl7XG4gICAgICAgIGlmICh3aW5kb3cuZ2xvc3NhcnlfdGVybV9hdWRpbykge1xuICAgICAgICAgICAgd2luZG93Lmdsb3NzYXJ5X3Rlcm1fYXVkaW8ucGF1c2UoKTtcbiAgICAgICAgICAgIHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvLnNyYyA9IGF1ZGlvVXJsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgd2luZG93Lmdsb3NzYXJ5X3Rlcm1fYXVkaW8gPSBuZXcgQXVkaW8oYXVkaW9VcmwpO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvLnBsYXkoKTtcbiAgICB9IGVsc2UgaWYgKHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvKSB7XG4gICAgICAgIHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvLnNyYyA9IGF1ZGlvVXJsO1xuICAgIH1cbn1cblxuXG5cbiQoZnVuY3Rpb24oKSB7XG5cbiAgICB2YXIgZ2xvc3NhcnkgPSAkKCcjZ2xvc3NhcnknKTtcbiAgICBzaG93RGVmaW5pdGlvbihnbG9zc2FyeS5maW5kKCdhcnRpY2xlOmhhcyhpbnB1dDpjaGVja2VkKScpKTtcblxuICAgIGdsb3NzYXJ5LmZpbmQoJ2lucHV0JykuY2xpY2soZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCksXG4gICAgICAgICAgICB0ZXJtRWxlbWVudCA9IHRhcmdldC5jbG9zZXN0KCdhcnRpY2xlJyksXG4gICAgICAgICAgICByYWRpbyA9IHRlcm1FbGVtZW50LmZpbmQoJ2lucHV0OmNoZWNrZWQnKSxcbiAgICAgICAgICAgIGF1ZGlvVXJsID0gcmFkaW8uZGF0YSgnYXVkaW9VcmwnKTtcblxuICAgICAgICBzaG93RGVmaW5pdGlvbih0ZXJtRWxlbWVudCk7XG4gICAgICAgIGlmIChhdWRpb1VybCkge1xuICAgICAgICAgICAgcGxheURlZmluaXRpb25BdWRpbyhhdWRpb1VybCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGdldERlZmluaXRpb25Gb3JTZWxlY3RlZFRlcm0odGVybUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRlcm1FbGVtZW50LmZpbmQoJy5nbG9zc2FyeS14LXRlcm0nKS5wYXJlbnQoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzaG93RGVmaW5pdGlvbih0ZXJtRWxlbWVudCkge1xuICAgICAgICB2YXIgZGVmaW5pdGlvbiA9IGdldERlZmluaXRpb25Gb3JTZWxlY3RlZFRlcm0odGVybUVsZW1lbnQpLmNsb25lKCksXG4gICAgICAgICAgICBkaXNwbGF5RWxlbWVudCA9ICQoXCIjZ2xvc3NhcnkteC1kZWZpbml0aW9uXCIpO1xuICAgICAgICBkaXNwbGF5RWxlbWVudC5odG1sKGRlZmluaXRpb24pO1xuICAgIH1cblxufSk7XG5cbiovXG4uZ2xvc3NhcnkgLmdsb3NzYXJ5LXgtdGVybXMgPiBhcnRpY2xlIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG4gIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dCArIGxhYmVsIHtcbiAgICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0QwRDBEMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDBEMEQwOyB9XG4gICAgICAuZ2xvc3NhcnkgLmdsb3NzYXJ5LXgtdGVybXMgPiBhcnRpY2xlID4gaW5wdXQgKyBsYWJlbCBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dCArIGxhYmVsICsgKiB7XG4gICAgICBjb2xvcjogIzY5Njk2OTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dDpub3QoOmNoZWNrZWQpICsgbGFiZWwgc3BhbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zID4gYXJ0aWNsZSA+IGlucHV0Om5vdCg6Y2hlY2tlZCkgKyBsYWJlbCArICoge1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dDpjaGVja2VkICsgbGFiZWwgaDEge1xuICAgIGNvbG9yOiAjMkE1QTczO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dDpjaGVja2VkICsgbGFiZWwgKyAqIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxOHB4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNEMEQwRDA7IH1cblxuLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zIC5nbG9zc2FyeS14LXRlcm0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyAuZ2xvc3NhcnkteC10ZXJtLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zIC5nbG9zc2FyeS14LXRleHQtbGlnaHRHcmV5IHtcbiAgY29sb3I6ICM3QzdDN0M7IH1cblxuLmdsb3NzYXJ5ICNnbG9zc2FyeS14LWRlZmluaXRpb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5nbG9zc2FyeSAuZ2xvc3NhcnkteC1oZWFkZXIge1xuICBwYWRkaW5nOiAyMHB4IDIzcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAuZ2xvc3Nhcnkge1xuICAgIHBhZGRpbmc6IDMxcHggNzBweDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHdpZHRoOiAyOTBweDsgfVxuICAgICAgLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zID4gYXJ0aWNsZSA+IGlucHV0ICsgbGFiZWwgKyAqIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zID4gYXJ0aWNsZSA+IGlucHV0OmNoZWNrZWQgKyBsYWJlbCArICoge1xuICAgICAgICBib3JkZXI6IDA7IH1cbiAgICAuZ2xvc3NhcnkgI2dsb3NzYXJ5LXgtZGVmaW5pdGlvbiB7XG4gICAgICBjb2xvcjogIzY5Njk2OTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0QwRDBEMDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC1oZWFkZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtLWhlYWRlciB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMzJweDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9IH1cblxuLypcbmF1ZGlvIGdsb3NzYXJ5XG5cbk1hcmt1cDpcbjxwPlxuICA8YSBpZD1cInZvbHVtZV9jb250cm9sXCIgY2xhc3M9XCJhdWRpb0dsb3NzYXJ5XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJhdWRpb0dsb3NzYXJ5LXgtdGV4dFwiPlJlYWQgQWxvdWQ8L3NwYW4+XG4gICAgPHNwYW4gaWQ9XCJ2b2x1bWVfY29udHJvbFwiIGNsYXNzPVwiYXVkaW9HbG9zc2FyeS1pY29uIGF1ZGlvR2xvc3NhcnktaWNvbi1tdXRlZFwiPjwvc3Bhbj5cbiAgPC9hPlxuPC9wPlxuXG5TdHlsZWd1aWRlIDMuNTJcbiovXG4uYXVkaW9HbG9zc2FyeSB7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmF1ZGlvR2xvc3Nhcnk6aG92ZXIge1xuICAgIGNvbG9yOiAjMDAwOyB9XG4gIC5hdWRpb0dsb3NzYXJ5IC5hdWRpb0dsb3NzYXJ5LWljb24ge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmF1ZGlvR2xvc3NhcnkgLmF1ZGlvR2xvc3NhcnktaWNvbiwgLmF1ZGlvR2xvc3NhcnkgLmF1ZGlvR2xvc3NhcnktaWNvbiBzdmcge1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgd2lkdGg6IDMwcHg7IH1cbiAgICAuYXVkaW9HbG9zc2FyeSAuYXVkaW9HbG9zc2FyeS1pY29uIC5pY29uLXVubXV0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmF1ZGlvR2xvc3NhcnkgLmF1ZGlvR2xvc3NhcnktaWNvbi5hdWRpb0dsb3NzYXJ5LW11dGVkIC5pY29uLXVubXV0ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5hdWRpb0dsb3NzYXJ5IC5hdWRpb0dsb3NzYXJ5LWljb24uYXVkaW9HbG9zc2FyeS1tdXRlZCAuaWNvbi1tdXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmF1ZGlvR2xvc3Nhcnkgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbkd1aWRlZCBRdWVzdGlvblxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiZ3VpZGVkLXF1ZXN0aW9uXCIgaWQ9XCJjb3Vyc2VfY29udGFpbmVyXCI+XG4gIDxwPkxldCdzIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmc6PC9wPlxuICA8aDEgaWQ9XCJxdWVzdGlvblwiPldoYXQgZG8gY2hpbGRyZW4gbmVlZCB3aGVuIHRoZXkgbWFrZSBhIHRyYW5zaXRpb24gZnJvbSBvbmUgcGFyZW50J3MgaG9tZSB0byB0aGUgb3RoZXIncz88L2gxPjxwPlRoZXkgbmVlZCBxdWlldCB0aW1lIGFuZCBnZW50bGUgc3VwcG9ydCBmcm9tIGVhY2ggcGFyZW50LiBUaGV5IG5lZWQgdGltZSB0byBkZWNvbXByZXNzIGZyb20gdGhlIHN0cm9uZyBmZWVsaW5ncyBvZiBkaXZpZGVkIGxveWFsdGllcy4gQ2hpbGRyZW4gbWF5IHNodXQgb3V0IG9uZSBvciBib3RoIHBhcmVudHMgZHVyaW5nIHRoZXNlIHRpbWVzIGFzIHRoZXkgc3RydWdnbGUgd2l0aCBmZWVsaW5ncyBvZiBsb3lhbHR5IHRvIHRoZSBhYnNlbnQgcGFyZW50LiBJZiBjb25mbGljdCBiZXR3ZWVuIHBhcmVudHMgb2NjdXJzLCBpdCBjYW4gdGFrZSB0aGUgY2hpbGRyZW4gYW5kIHBhcmVudHMgdXAgdG8gNzIgaG91cnMgdG8gZ2V0IHRoZSBhZHJlbmFsaW5lIG91dCBvZiB0aGVpciBzeXN0ZW1zLiA8L3A+XG4gIDxzZWN0aW9uIGNsYXNzPVwiY29udHJvbHNcIj5cbiAgICA8YSBpZD1cIm5leHRfYnV0dG9uXCIgY2xhc3M9XCJidXR0b25cIiBocmVmPVwiI1wiPk5leHQgUXVlc3Rpb248L2E+XG4gICAgPGFzaWRlIHN0eWxlPVwiXCI+XG4gICAgICA8cCBjbGFzcz1cImgyXCI+TW9yZSBpbmZvcm1hdGlvbjo8L3A+XG4gICAgICA8dWwgaWQ9XCJmb290bm90ZXNcIj48bGk+PGEgaHJlZj1cIiNcIiBjbGFzcz1cImZvb3Rub3RlXCIgaWQ9XCI1XCI+NTwvYT48L2xpPjwvdWw+XG4gICAgPC9hc2lkZT5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4xMVxuKi9cbi5ndWlkZWQtcXVlc3Rpb24ge1xuICBwYWRkaW5nOiAwIDE4cHggMThweCAxOHB4OyB9XG4gIC5ndWlkZWQtcXVlc3Rpb24gaDEge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuZ3VpZGVkLXF1ZXN0aW9uIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAzMHB4OyB9IH1cbiAgICAuZ3VpZGVkLXF1ZXN0aW9uIGgxIGEge1xuICAgICAgY29sb3I6ICMxMzZkOTI7IH1cbiAgLmd1aWRlZC1xdWVzdGlvbiBoMiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgIC5ndWlkZWQtcXVlc3Rpb24gaDIge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDlweDsgfSB9XG4gIC5ndWlkZWQtcXVlc3Rpb24gcCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgLmd1aWRlZC1xdWVzdGlvbiAuY29udHJvbHMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuZ3VpZGVkLXF1ZXN0aW9uIC5jb250cm9scyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxOHB4OyB9IH1cbiAgLmd1aWRlZC1xdWVzdGlvbiAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDE4cHggMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLmd1aWRlZC1xdWVzdGlvbiAuYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBtYXJnaW46IDAgMThweCAwIDA7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgLmd1aWRlZC1xdWVzdGlvbiBhc2lkZSBwIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiA5cHg7XG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgIC5ndWlkZWQtcXVlc3Rpb24gYXNpZGUgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG4gIC5ndWlkZWQtcXVlc3Rpb24gYXNpZGUgdWwge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmd1aWRlZC1xdWVzdGlvbiBhc2lkZSB1bCBsaSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDlweDsgfVxuICAgICAgLmd1aWRlZC1xdWVzdGlvbiBhc2lkZSB1bCBsaSBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6ICM5YWJhMzg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgcGFkZGluZzogOXB4O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICAgICAuZ3VpZGVkLXF1ZXN0aW9uIGFzaWRlIHVsIGxpIGEge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OyB9IH1cbiAgICAgICAgLmd1aWRlZC1xdWVzdGlvbiBhc2lkZSB1bCBsaSBhOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjN2E5MzJjOyB9XG5cbi5xdWVzdGlvbi1mb290bm90ZXMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogI2ViZWJlYjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nOiAzMnB4O1xuICBjb2xvcjogIzY5Njk2OTtcbiAgbWFyZ2luLXRvcDogMTdweDsgfVxuICAucXVlc3Rpb24tZm9vdG5vdGVzIC5xdWVzdGlvbi1mb290bm90ZXMtdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5xdWVzdGlvbi1mb290bm90ZXMgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTdweDtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuSGlnaCBDb25mbGljdFxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiaGlnaGNvbmZsaWN0XCI+XG4gIDxpbWcgc3JjPVwiaHR0cDovL3BsYWNlaG9sZC5pdC81Nng1NlwiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiPlxuICA8ZGl2IGNsYXNzPVwiaGlnaGNvbmZsaWN0LXgtdGV4dFwiPlxuICAgIDxoMiBpZD1cImhlYWRpbmctaGlnaGNvbmZsaWN0XCI+TG9va2luZyBmb3IgYSBIaWdoLUNvbmZsaWN0IENsYXNzPzwvaDI+XG4gICAgPHA+PGEgaHJlZj1cIiNcIiBhcmlhLWxhYmVsbGVkYnk9XCJoZWFkaW5nLWhpZ2hjb25mbGljdFwiPkNsaWNrIGZvciBtb3JlIGluZm9ybWF0aW9uPC9hPjwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjU1XG4qL1xuLmhpZ2hjb25mbGljdCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmhpZ2hjb25mbGljdCBhLFxuICAuaGlnaGNvbmZsaWN0IGgyLFxuICAuaGlnaGNvbmZsaWN0IHAge1xuICAgIGNvbG9yOiAjNzgxMDEyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTRweDsgfVxuICAuaGlnaGNvbmZsaWN0IGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5oaWdoY29uZmxpY3QgLmhpZ2hjb25mbGljdC14LXRleHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxOHB4OyB9XG5cbi8qXG5MaW5rIExpc3RcblxuTWFya3VwOlxuPHVsIGNsYXNzPVwibGlua2xpc3RcIj5cbiAgPGxpPjxhIGhyZWY9XCIjXCI+Q0RFJ3MgQ2hpbGRyZW4gaW4gQmV0d2VlbiBPbmxpbmUgMzAtZGF5IEFjY291bnQ8L2E+PC9saT5cbiAgPGxpPjxhIGhyZWY9XCIjXCI+TG9yZW0gSXBzdW0gRG9sb3IgU2l0IEFtZXQgQ29uc2VjdGV0dXIgQWRpcGlzY2luZyBFbGl0PC9hPjwvbGk+XG4gIDxsaT48YSBocmVmPVwiI1wiPkFsaXF1YW0gZGlhbSBtYXVyaXM6IGZhY2lsaXNpcyBuZWMgc29sbGljaXR1ZGluIHZpdGFlIHBvcnRhIGxhb3JlZXQgYXJjdTwvYT48L2xpPlxuPC91bD5cblxuU3R5bGVndWlkZSAzLjU3XG4qL1xuLmxpbmtsaXN0IGEge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5saW5rbGlzdCBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuXG4vKlxuTG9hZGVyXG5cbk1hcmt1cDpcbjwhLS0gUG9zaXRpb24gcmVsYXRpdmUgb3ZlcnJpZGUganVzdCBmb3IgdGhlIHBhdHRlcm4gbGlicmFyeSwgcG9zaXRpb24gZml4ZWQgYnkgZGVmYXVsdCAtLT5cbjxkaXYgaWQ9XCJpdGVtLWxvYWRpbmdcIiBjbGFzcz1cImxvYWRlclwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxuICAgIDxwPkxvYWRpbmc8L3A+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjEyXG4qL1xuQGtleWZyYW1lcyBsb2FkZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbi5sb2FkZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIGNvbG9yOiAjMjhhZGUzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDA7IH1cbiAgLmxvYWRlciBpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gIC5sb2FkZXIgcCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmxvYWRlciBwOjpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uOiBsb2FkZXIgLjhzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgICAgYm9yZGVyOiA0LjVweCBzb2xpZCAjMjhhZGUzO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICBtYXJnaW46IDAgMCAxOHB4IDA7XG4gICAgICB3aWR0aDogMjhweDsgfVxuXG4vKlxuTG9nb1xuXG5NYXJrdXA6XG48YSBocmVmPVwiL1wiIGNsYXNzPVwibG9nb1wiPjxpbWcgc3JjPVwiL2ltYWdlcy9sb2dvLWNpYi5zdmdcIiBhbHQ9XCJDaGlsZHJlbiBJbiBCZXR3ZWVuIExvZ29cIiB3aWR0aD1cIjI1NlwiIGhlaWdodD1cIjQ1XCI+PC9hPlxuXG5TdHlsZWd1aWRlIDMuMjlcbiovXG4ubG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5sb2dvIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbk1hbmFnZW1lbnQgVGFibGVcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJtYW5hZ2VtZW50LXRhYmxlXCI+XG4gIDx0YWJsZT5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkV4dHJhIENyZWRpdCBDYXRlZ29yeTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlZhbHVlPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+IyBDb21wbGV0ZTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlRvdGFsPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+QXBwbGllZDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5Qb3N0aW5nIGluIHRoZSBGb3J1bSAoTWF4aW11bSA1MCUpPC90aD5cbiAgICAgICAgPHRkPjIlPC90ZD5cbiAgICAgICAgPHRkPjAgb2YgMjU8L3RkPlxuICAgICAgICA8dGQ+MCU8L3RkPlxuICAgICAgICA8dGQ+LTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5Ta2lsbHMgUHJhY3RpY2VzIChNYXhpbXVtIDUwJSk8L3RoPlxuICAgICAgICA8dGQ+MiU8L3RkPlxuICAgICAgICA8dGQ+MjUgb2YgMjU8L3RkPlxuICAgICAgICA8dGQ+NTAlPC90ZD5cbiAgICAgICAgPHRkPi08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+U2tpbGxzIFByYWN0aWNlcyAoTWF4aW11bSA1MCUpPC90aD5cbiAgICAgICAgPHRkPjIlPC90ZD5cbiAgICAgICAgPHRkPjI1IG9mIDI1PC90ZD5cbiAgICAgICAgPHRkPjUwJTwvdGQ+XG4gICAgICAgIDx0ZD4tPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgICA8dGZvb3Q+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCBzY29wZT1cInJvd1wiPlRvdGFsczwvdGg+XG4gICAgICAgIDx0ZD48L3RkPlxuICAgICAgICA8dGQ+MjU8L3RkPlxuICAgICAgICA8dGQ+NTAlPC90ZD5cbiAgICAgICAgPHRkPjAlPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Zm9vdD5cbiAgPC90YWJsZT5cbjwvc2VjdGlvbj5cblxuU3R5bGVndWlkZSAzLjEzXG4qL1xuLm1hbmFnZW1lbnQtdGFibGUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtYXJnaW46IDAgMThweCAxOHB4OyB9XG4gIC5tYW5hZ2VtZW50LXRhYmxlIHRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubWFuYWdlbWVudC10YWJsZSB0ZCxcbiAgLm1hbmFnZW1lbnQtdGFibGUgdGgge1xuICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLm1hbmFnZW1lbnQtdGFibGUgdGQsXG4gICAgICAubWFuYWdlbWVudC10YWJsZSB0aCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH0gfVxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRkOmxhc3QtY2hpbGQsXG4gICAgLm1hbmFnZW1lbnQtdGFibGUgdGg6bGFzdC1jaGlsZCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRkOmZpcnN0LWNoaWxkLFxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGhlYWQgdGgge1xuICAgIGJhY2tncm91bmQ6ICMwYTNiNGU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA5cHg7XG4gICAgcGFkZGluZy10b3A6IDlweDsgfVxuICAubWFuYWdlbWVudC10YWJsZSB0aGVhZCB0aDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4OyB9XG4gIC5tYW5hZ2VtZW50LXRhYmxlIHRoZWFkIHRoOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdGQsXG4gIC5tYW5hZ2VtZW50LXRhYmxlIHRib2R5IHRoIHtcbiAgICBib3gtc2hhZG93OiAjZGRkIDAgLTFweCAwIDAgaW5zZXQ7IH1cbiAgICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCxcbiAgICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3gtc2hhZG93OiAjZGRkIDFweCAtMXB4IDAgMCBpbnNldDsgfVxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRib2R5IHRkOmxhc3QtY2hpbGQsXG4gICAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdGg6bGFzdC1jaGlsZCB7XG4gICAgICBib3gtc2hhZG93OiAjZGRkIC0xcHggLTFweCAwIDAgaW5zZXQ7IH1cbiAgICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0ZDpvbmx5LWNoaWxkLFxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRib2R5IHRoOm9ubHktY2hpbGQge1xuICAgICAgYm94LXNoYWRvdzogI2RkZCAwIDAgMCAxcHggaW5zZXQ7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkLFxuICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdHI6bGFzdC1vZi10eXBlIHRkOmZpcnN0LWNoaWxkLFxuICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0cjpsYXN0LW9mLXR5cGUgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDsgfVxuICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0cjpsYXN0LW9mLXR5cGUgdGQ6bGFzdC1jaGlsZCxcbiAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdHI6bGFzdC1vZi10eXBlIHRoOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGZvb3Qge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qXG5NZW51XG5cblRoaXMgaXMgZnJhZ21lbnRlZCwgdGhlc2UgaXRlbXMgc2hvdWxkIGJlY29tZSB0aGVpciBvd24gbW9kdWxlcy5cblxuRGVmYXVsdCAtIFVzZWQgaW4gbWFpbiBuYXZpZ2F0aW9uXG4ubWVudS1wYWdlIC0gVXNlZCBpbmxpbmUgb24gcGFnZXNcblxuTWFya3VwOlxuPHVsIGNsYXNzPVwibWVudSB7JG1vZGlmaWVyc31cIj5cbiAgPGxpIGNsYXNzPVwibWVudS1pdGVtXCI+PGEgY2xhc3M9XCJjb3Vyc2VcIiBocmVmPVwiL2NvdXJzZVwiPkNvdXJzZTwvYT48L2xpPlxuICA8bGkgY2xhc3M9XCJtZW51LWl0ZW1cIj48YSBocmVmPVwiL3Jlc291cmNlcy9cIj5SZXNvdXJjZXM8L2E+PC9saT5cbiAgPGxpIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtZHJvcGRvd25cIiB0YWJpbmRleD1cIjFcIj48YSBpZD1cImRvd25sb2Fkc1wiIGhyZWY9XCJcIj5Eb3dubG9hZHM8L2E+XG4gICAgPHVsPlxuICAgICAgPGxpPjxhIGhyZWY9XCIvbGVzc29uL2hhbmRib29rcy93aGF0LWFib3V0LWNoaWxkcmVuXCI+V2hhdCBBYm91dCB0aGUgQ2hpbGRyZW4/IDh0aCBFZDwvYT48L2xpPlxuICAgICAgPGxpPjxhIGhyZWY9XCIvbGVzc29uL2hhbmRib29rcy9jaGlsZHJlbi1pbi1iZXR3ZWVuXCI+Q2hpbGRyZW4gaW4gQmV0d2VlbiA2dGggRWQuPC9hPjwvbGk+XG4gICAgPC91bD5cbiAgPC9saT5cbiAgPGxpIGNsYXNzPVwibWVudS1pdGVtXCI+PGEgY2xhc3M9XCJnbG9zc2FyeVwiIGhyZWY9XCIvcmVmZXJlbmNlL2dsb3NzYXJ5XCI+R2xvc3Nhcnk8L2E+PC9saT5cbjwvdWw+XG5cblN0eWxlZ3VpZGUgMy4yOFxuKi9cbi5tZW51IHtcbiAgbWF4LWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1vdXQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5tZW51OmZpcnN0LW9mLXR5cGUge1xuICAgIGJveC1zaGFkb3c6ICMxNTVhNzYgMCA1cHggMCAwIGluc2V0OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgICAgLm1lbnU6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgLm1lbnUuaXMtYWN0aXZlIHtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMDBweDtcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7IH0gfVxuXG4ubWVudS1wYWdlOmZpcnN0LW9mLXR5cGUge1xuICBib3gtc2hhZG93OiAjRjJGMkYyIDAgMXB4IDAgMCBpbnNldDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgLm1lbnUtcGFnZSB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLypcbk1lbnUgSXRlbVxuXG5EZWZhdWx0IC0gVXNlZCBpbiBtYWluIG5hdmlnYXRpb25cbi5tZW51LXBhZ2UtcGFnZSAtIFVzZWQgaW5saW5lIG9uIHBhZ2VzXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJtZW51LWl0ZW0geyRtb2RpZmllcnN9XCI+PGEgY2xhc3M9XCJjb3Vyc2VcIiBocmVmPVwiL2NvdXJzZVwiPkNvdXJzZTwvYT48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjI4LjJcbiovXG4ubWVudS1pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMkYyRjI7XG4gIHBhZGRpbmc6IDAgMThweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAubWVudS1pdGVtIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBtYXJnaW46IDAgMThweDtcbiAgICAgIHBhZGRpbmc6IDEzLjVweCAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgLm1lbnUtaXRlbS5oYXMtbGltaXQgPiBhIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH0gfVxuICAubWVudS1pdGVtIGEsXG4gIC5tZW51LWl0ZW0gPiBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogIzI4YWRlMztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiAxOHB4IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgIC5tZW51LWl0ZW0gYSxcbiAgICAgIC5tZW51LWl0ZW0gPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgLm1lbnUtaXRlbSBhOmhvdmVyLFxuICAgICAgICAubWVudS1pdGVtID4gc3Bhbjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAubWVudS1pdGVtLXBhZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgcGFkZGluZy1yaWdodDogMThweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5tZW51LWl0ZW0tcGFnZTpudGgtY2hpbGQob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOyB9IH1cblxuLm1lbnUtaXRlbS1wYWdlLmFjdGl2ZSBhIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLypcbk1lbnUgRHJvcGRvd25cblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWRyb3Bkb3duXCIgdGFiaW5kZXg9XCIxXCI+PGEgaWQ9XCJkb3dubG9hZHNcIiBocmVmPVwiXCI+RG93bmxvYWRzPC9hPlxuICA8dWw+XG4gICAgPGxpPjxhIGhyZWY9XCIvbGVzc29uL2hhbmRib29rcy93aGF0LWFib3V0LWNoaWxkcmVuXCI+V2hhdCBBYm91dCB0aGUgQ2hpbGRyZW4/IDh0aCBFZDwvYT48L2xpPlxuICAgIDxsaT48YSBocmVmPVwiL2xlc3Nvbi9oYW5kYm9va3MvY2hpbGRyZW4taW4tYmV0d2VlblwiPkNoaWxkcmVuIGluIEJldHdlZW4gNnRoIEVkLjwvYT48L2xpPlxuICA8L3VsPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4yOC4zXG4qL1xuLm1lbnUtZHJvcGRvd24ge1xuICBvdXRsaW5lOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLm1lbnUtZHJvcGRvd24gYSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgIC5tZW51LWRyb3Bkb3duIGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAubWVudS1kcm9wZG93biA+IGEge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAubWVudS1kcm9wZG93biA+IGEge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41ZW07IH0gfVxuICAgIC5tZW51LWRyb3Bkb3duID4gYTo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9tZW51LWluZGljYXRvci5zdmdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTVweDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDE4cHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjFzIGVhc2Utb3V0O1xuICAgICAgd2lkdGg6IDFlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAgIC5tZW51LWRyb3Bkb3duID4gYTo6YmVmb3JlIHtcbiAgICAgICAgICBjb2xvcjogIzI4YWRlMztcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIHRvcDogLTJweDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0gfVxuICAubWVudS1kcm9wZG93biB1bCB7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2Utb3V0OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAubWVudS1kcm9wZG93biB1bCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB6LWluZGV4OiAxMDAwOyB9IH1cbiAgICAubWVudS1kcm9wZG93biB1bCBhIHtcbiAgICAgIGNvbG9yOiAjMTU1YTc2OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgICAgLm1lbnUtZHJvcGRvd24gdWwgYSB7XG4gICAgICAgICAgcGFkZGluZzogMThweDsgfSB9XG4gICAgLm1lbnUtZHJvcGRvd24gdWwgYTpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuNTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAgIC5tZW51LWRyb3Bkb3duIHVsIGE6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICAgICAgb3BhY2l0eTogMTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5tZW51LWRyb3Bkb3duIGxpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9IH1cbiAgLm1lbnUtZHJvcGRvd246aG92ZXIgdWwsIC5tZW51LWRyb3Bkb3duOmZvY3VzIHVsIHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7IH1cbiAgLm1lbnUtZHJvcGRvd246aG92ZXIgYTo6YmVmb3JlLCAubWVudS1kcm9wZG93bjpmb2N1cyBhOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG4vKlxuTWVudSBJdGVtXG5cbk1hcmt1cDpcbjxsaSBjbGFzcz1cIm1lbnVpdGVtXCI+PGEgaHJlZj1cIlwiPk1lbnUgSXRlbTwvYT48bGk+XG5cblN0eWxlZ3VpZGUgMy40NVxuKi9cbi5tZW51aXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjZmM2VlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgb3V0bGluZTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAubWVudWl0ZW0gPiBhLFxuICAubWVudWl0ZW0gYnV0dG9uIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAubWVudWl0ZW0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAgICAgLm1lbnVpdGVtID4gYSxcbiAgICAgIC5tZW51aXRlbSBidXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLm1lbnVpdGVtLWRyb3Bkb3duIGJ1dHRvbiB7XG4gIHBhZGRpbmctbGVmdDogMzVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5tZW51aXRlbS1kcm9wZG93biBidXR0b246OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL21lbnVpdGVtLWRyb3Bkb3duLnN2Z1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBsZWZ0OiAxOHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDRweCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuXG4ubWVudWl0ZW0tZHJvcGRvd24gdWwge1xuICBwYWRkaW5nLWJvdHRvbTogOXB4O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG5cbi5tZW51aXRlbS1kcm9wZG93biBsaSBhIHtcbiAgY29sb3I6ICMxNTVhNzY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA5cHggMThweCA5cHggMzZweDsgfVxuXG4ubWVudWl0ZW0tZHJvcGRvd24gW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1lbnVpdGVtLWRyb3Bkb3duIFthcmlhLWhpZGRlbj1cImZhbHNlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLm1lbnVpdGVtLWRyb3Bkb3duLm1lbnVpdGVtLWlzLWFjdGl2ZSBidXR0b246OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1lbnVpdGVtLWRyb3Bkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAubWVudWl0ZW0tZHJvcGRvd24gYnV0dG9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDI2cHg7IH1cbiAgICAgIC5tZW51aXRlbS1kcm9wZG93biBidXR0b246OmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cbiAgICAubWVudWl0ZW0tZHJvcGRvd24gdWwge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IGNhbGMoMTAwJSArIDlweCk7XG4gICAgICB3aWR0aDogMTQzcHg7IH1cbiAgICAubWVudWl0ZW0tZHJvcGRvd24gbGkgYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgICAgcGFkZGluZzogOXB4OyB9IH1cblxuLm1lbnVpdGVtLXNlY29uZGFyeSB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmNmYzZWU7IH1cbiAgLm1lbnVpdGVtLXNlY29uZGFyeSA+IGEge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm1lbnVpdGVtLXNlY29uZGFyeSA+IGEge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgY29sb3I6ICMxNTVhNzY7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tZW51aXRlbS1tYXJrZXRpbmcge1xuICAgIGJvcmRlcjogMDsgfVxuICAgIC5tZW51aXRlbS1tYXJrZXRpbmcgPiBhIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMyOGFkZTM7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBwYWRkaW5nOiA5cHggMThweDsgfSB9XG5cbi8qXG5OYXZpZ2F0aW9uXG5cbk1hcmt1cDpcbjxuYXYgY2xhc3M9XCJuYXZpZ2F0aW9uXCIgaWQ9XCJuYXZpZ2F0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJuYXZpZ2F0aW9uLXgtY29udGFpbmVyIGwtY29udGFpbmVyaG9yaXpvbnRhbFwiPlxuICAgIDxoZWFkZXI+XG4gICAgICA8YSBocmVmPVwiL1wiIGNsYXNzPVwibmF2aWdhdGlvbi14LWxvZ29cIj48aW1nIHNyYz1cIi9pbWFnZXMvbG9nby1jaWIuc3ZnXCIgYWx0PVwiQ2hpbGRyZW4gSW4gQmV0d2VlbiBMb2dvXCIgd2lkdGg9XCIyNTZcIiBoZWlnaHQ9XCI0NVwiPjwvYT5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJuYXZpZ2F0aW9uLXgtdG9nZ2xlXCI+PHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj4gTWVudTwvc3Bhbj48L2J1dHRvbj5cbiAgICA8L2hlYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwibmF2aWdhdGlvbi14LW1lc3NhZ2VcIj5cbiAgICAgIDxzZy1pbnNlcnQ+My41NTwvc2ctaW5zZXJ0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJuYXZpZ2F0aW9uLXgtbWVudVwiPlxuICAgICAgPHVsIGNsYXNzPVwibC1tZW51IGwtbWVudS1zZWNvbmRhcnlcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwibWVudWl0ZW0gbWVudWl0ZW0tc2Vjb25kYXJ5XCI+PGEgaHJlZj1cIi9zZXQtbGFuZ3VhZ2UvZXNcIiBjbGFzcz1cImxhbmd1YWdlXCI+PHNwYW4+RW4gRXNwYcOxb2w/PC9zcGFuPjwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJtZW51aXRlbSBtZW51aXRlbS1zZWNvbmRhcnlcIj48YSBocmVmPVwiL2NvbnRhY3RcIj5Db250YWN0PC9hPjwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPHVsIGNsYXNzPVwibC1tZW51XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cIm1lbnVpdGVtIG1lbnVpdGVtLW1hcmtldGluZ1wiPjxhIGhyZWY9XCIvc2hvcHBpbmcvcHVyY2hhc2UvXCI+U2lnbiBVcDwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJtZW51aXRlbSBtZW51aXRlbS1tYXJrZXRpbmdcIj48YSBocmVmPVwiL3VzZXIvbG9naW5cIj5Mb2dpbjwvYT48L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25hdj5cblxuU3R5bGVndWlkZSAzLjNcbiovXG4ubmF2aWdhdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAjMjhhZGUzO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLm5hdmlnYXRpb24gaGVhZGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZzogMThweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LWxvZ28ge1xuICAgIG1heC13aWR0aDogMjAwcHg7IH1cbiAgICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LWxvZ28gaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm5hdmlnYXRpb24gLm5hdmlnYXRpb24teC1jb250YWluZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLm5hdmlnYXRpb24gLm5hdmlnYXRpb24teC10b2dnbGUge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL25hdmlnYXRpb24tdG9nZ2xlLnN2Z1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLWluLW91dDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB3aWR0aDogMzBweDtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9XG4gIC5uYXZpZ2F0aW9uIC5uYXZpZ2F0aW9uLXgtbWVudSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzI4YWRlMztcbiAgICBib3JkZXItdG9wOiA1cHggc29saWQgIzI4YWRlMztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbGVmdDogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1pbi1vdXQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICB6LWluZGV4OiAxMDA7IH1cbiAgICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LW1lbnUgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgb3JkZXI6IDI7IH1cbiAgICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LW1lbnUgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBvcmRlcjogMTsgfVxuICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm5hdmlnYXRpb24ubmF2aWdhdGlvbi1pcy1hY3RpdmUgLm5hdmlnYXRpb24teC1tZW51IHtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgLm5hdmlnYXRpb24ubmF2aWdhdGlvbi1pcy1hY3RpdmUgLm5hdmlnYXRpb24teC10b2dnbGUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdmlnYXRpb24ge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgIC5uYXZpZ2F0aW9uIGhlYWRlciB7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LWxvZ28ge1xuICAgICAgICBtYXgtd2lkdGg6IDMwNXB4OyB9XG4gICAgICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LW1lc3NhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLm5hdmlnYXRpb24gLm5hdmlnYXRpb24teC10b2dnbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LW1lbnUge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICBwYWRkaW5nOiAxOHB4IDE4cHggMThweCAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB3aWxsLWNoYW5nZTogbm9uZTsgfVxuICAgICAgICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LW1lbnUgPiA6Zmlyc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAgICAgICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LW1lbnUgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG9yZGVyOiAxOyB9XG4gICAgICAgIC5uYXZpZ2F0aW9uIC5uYXZpZ2F0aW9uLXgtbWVudSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBvcmRlcjogMjsgfSB9XG5cbi8qXG5OYXZpZ2F0aW9uIFBhZ2VcblxuTWFya3VwOlxuPG5hdiBjbGFzcz1cIm5hdmlnYXRpb24gbmF2aWdhdGlvbi1wYWdlIGdsb3NzYXJ5LW5hdmlnYXRpb25cIiBpZD1cInBhZ2UtbmF2aWdhdGlvbi1wYXR0ZXJuXCI+XG4gIDxoZWFkZXI+XG4gICAgPGgyIGNsYXNzPVwibmF2aWdhdGlvbi10aXRsZVwiPkdsb3NzYXJ5IE1lbnU8L2gyPlxuICAgIDxidXR0b24gY2xhc3M9XCJtZW51LXRvZ2dsZSBpcy1pbmFjdGl2ZVwiIGlkPVwibWVudS10b2dnbGVcIj48c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPiBNZW51PC9zcGFuPjwvYnV0dG9uPlxuICA8L2hlYWRlcj5cbiAgPHVsIGNsYXNzPVwibWVudSBtZW51LXBhZ2VcIj5cbiAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1pdGVtLXBhZ2VcIj48YSBocmVmPVwiXCI+QWN0aXZlIExpc3RlbmluZzwvYSBocmVmPVwiXCI+PC9saT5cbiAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1pdGVtLXBhZ2UgYWN0aXZlXCI+PGEgaHJlZj1cIlwiPkVtcGF0aHk8L2EgaHJlZj1cIlwiPjwvbGk+XG4gICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtaXRlbS1wYWdlXCI+PGEgaHJlZj1cIlwiPkkgTWVzc2FnZTwvYSBocmVmPVwiXCI+PC9saT5cbiAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1pdGVtLXBhZ2VcIj48YSBocmVmPVwiXCI+SW1wdWxzZSBDb250cm9sPC9hIGhyZWY9XCJcIj48L2xpPlxuICA8L3VsPlxuPC9uYXY+XG5cblN0eWxlZ3VpZGUgMy4zLjFcbiovXG4ubmF2aWdhdGlvbi1wYWdlIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHotaW5kZXg6IDEwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5uYXZpZ2F0aW9uLXBhZ2Uge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IGF1dG87IH1cbiAgICAgIC5uYXZpZ2F0aW9uLXBhZ2UgaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5uYXZpZ2F0aW9uLXBhZ2UgLm5hdmlnYXRpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIG1hcmdpbjogMThweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi8qXG5PcmRlciBTdW1tYXJ5XG5cblN1bW1hcnkgdG8gYmUgcGxhY2VkIGluc2lkZSBvZiBmb3JtIG1vZHVsZVxuXG5NYXJrdXA6XG48dGFibGUgY2xhc3M9XCJvcmRlcnN1bW1hcnlcIj5cbiAgPHRmb290PlxuICAgIDx0cj5cbiAgICAgIDx0aCBzY29wZT1cInJvd1wiPllvdXIgVG90YWw6PC90aD5cbiAgICAgIDx0ZD4kNTkuOTU8L3RkPlxuICAgIDwvdHI+XG4gIDx0Zm9vdD5cbiAgPHRoZWFkIGNsYXNzPVwidmlzdWFsbHloaWRkZW5cIj5cbiAgICA8dHI+XG4gICAgICA8dGggc2NvcGU9XCJjb2xcIj5JdGVtPC90aD5cbiAgICAgIDx0aCBzY29wZT1cImNvbFwiPlByaWNlPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG4gICAgPHRyPlxuICAgICAgPHRoIHNjb3BlPVwicm93XCI+MzAtRGF5IEFjY2VzczwvdGg+XG4gICAgICA8dGQ+JDQ5Ljk1PC90ZD5cbiAgICA8L3RyPlxuICAgIDx0cj5cbiAgICAgIDx0aCBzY29wZT1cInJvd1wiPldvcmtib29rPC90aD5cbiAgICAgIDx0ZD4kMjAuMDA8L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyPlxuICAgICAgPHRoIHNjb3BlPVwicm93XCI+RGlzY291bnQ8L3RoPlxuICAgICAgPHRkPi0kNC4wMDwvdGQ+XG4gICAgPC90cj5cbiAgICA8dHI+XG4gICAgICA8dGggc2NvcGU9XCJyb3dcIj5TYWxlcyBUYXg8L3RoPlxuICAgICAgPHRkPiQyLjAwPC90ZD5cbiAgICA8L3RyPlxuICAgIDx0cj5cbiAgICAgIDx0aCBzY29wZT1cInJvd1wiPkRhdGEgTWFuYWdlbWVudCBGZWU8L3RoPlxuICAgICAgPHRkPiQyLjAwPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuU3R5bGVndWlkZSAzLjUzXG4qL1xuLm9yZGVyc3VtbWFyeSB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5vcmRlcnN1bW1hcnkgdGJvZHkgdGgsXG4gIC5vcmRlcnN1bW1hcnkgdGJvZHkgdGQge1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDsgfVxuICAub3JkZXJzdW1tYXJ5IHRkIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAub3JkZXJzdW1tYXJ5IHRmb290IHRkLFxuICAub3JkZXJzdW1tYXJ5IHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBwYWRkaW5nLXRvcDogMThweDsgfVxuICAub3JkZXJzdW1tYXJ5IHRmb290IHRkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAub3JkZXJzdW1tYXJ5IHRoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi8qXG5PdmVybGF5XG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJvdmVybGF5XCI+XG4gIDxhPmNsb3NlPC9hPlxuICA8aDE+Q2hhbmdlIEVtYWlsIGZvciBDby1QYXJlbnQ8L2gxPlxuICA8cD5FbnRlciBhIG5ldyBlbWFpbCBhZGRyZXNzIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgZ2lmdCBhY2NvdW50LiBBbiBpbnZpdGF0aW9uIGVtYWlsIHdpbGwgYmUgc2VudCB0byB0aGUgdXNlciBhdCB0aGUgbmV3IGVtYWlsIGFkZHJlc3MuPC9wPlxuICA8aHI+XG4gIDxhIGNsYXNzPVwiYnV0dG9uXCIgaHJlZj1cIiNcIj5ZZXMsIENhbmNlbCBHaWZ0IEludml0ZTwvYT5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDMuNDhcbiovXG4ub3ZlcmxheSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLm92ZXJsYXk6bm90KGZvcm0pIHtcbiAgICBtYXJnaW4tbGVmdDogMThweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE4cHg7IH1cbiAgLm92ZXJsYXkgYTpmaXJzdC1vZi10eXBlIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBjb2xvcjogIzI4YWRlMztcbiAgICBtYXJnaW4tYm90dG9tOiAyMy40cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAub3ZlcmxheSBoMSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4OyB9XG4gIC5vdmVybGF5IGhyIHtcbiAgICBib3JkZXItY29sb3I6ICNjY2M7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC5vdmVybGF5IHAge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTRweDsgfVxuXG4vKlxuT3ZlcmxheSAod2l0aCBhIGZvcm0gZWxlbWVudCkuXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJvdmVybGF5XCI+XG48YT5jbG9zZTwvYT5cbiAgPGgxPkNoYW5nZSBFbWFpbCBmb3IgQ28tUGFyZW50PC9oMT5cbiAgPHA+RW50ZXIgYSBuZXcgZW1haWwgYWRkcmVzcyB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIGdpZnQgYWNjb3VudC4gQW4gaW52aXRhdGlvbiBlbWFpbCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXIgYXQgdGhlIG5ldyBlbWFpbCBhZGRyZXNzLjwvcD5cbiAgPGhyPlxuICA8Zm9ybSBjbGFzcz1cImZvcm0gZm9ybS1pbmxpbmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgXCI+XG4gICAgICA8bGFiZWwgZm9yPVwiaWRfbmFtZVwiPk5ldyBFbWFpbDo8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiZWcuIGpvaG5AZXhhbXBsZS5jb21cIiBuYW1lPVwibmFtZVwiIGlkPVwiaWRfbmFtZVwiPlxuICAgICAgICA8cD5UaGlzIGlzIGhlbHBlciB0ZXh0IGZvciB0aGlzIGlucHV0LjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi13aWR0aC1mdWxsXCIgaHJlZj1cIiNcIj5DaGFuZ2UgRW1haWwgYW5kIFNlbmQgSW52aXRlIEVtYWlsPC9hPlxuICA8L2Zvcm0+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjQ4LjFcbiovXG4vKlxuUGFnZSBUaXRsZVxuXG5EZWZhdWx0IC0gU3RhbmRhcmQgcGFnZSB0aXRsZXNcbi5wYWdlLXRpdGxlLWxhcmdlIC0gQSBsYXJnZXIgdmVyc2lvblxuLnBhZ2UtdGl0bGUtY2VudGVyZWQgLSBXaGVuIHlvdSB3YW50IHRoZSB0ZXh0IGNlbnRlcmVkXG5cbk1hcmt1cDpcbjxoZWFkZXIgY2xhc3M9XCJwYWdlLXRpdGxlIHskbW9kaWZpZXJzfVwiPlxuICA8aDE+U2lnbi11cCBmb3IgQ0RFJ3MgQ2hpbGRyZW4gaW4gQmV0d2VlbjwvaDE+XG4gIDxoMj48c3Bhbj4kMzkuOTU8L3NwYW4+IGZvciAzMC1kYXlzIGFjY2VzczwvaDI+XG4gIDxwPlNpZ24tdXAgaXMgc2ltcGxlIGFuZCB0YWtlcyBqdXN0IGEgZmV3IG1pbnV0ZXMuPC9wPlxuPC9oZWFkZXI+XG5cblN0eWxlZ3VpZGUgMy40XG4qL1xuLnBhZ2UtdGl0bGUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICBwYWRkaW5nOiAzNnB4IDE4cHggMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5wYWdlLXRpdGxlLnBhZ2UtdGl0bGUtZmxleCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gIC5wYWdlLXRpdGxlIGgxIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDFlbTsgfVxuICAucGFnZS10aXRsZSBoMiB7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgbWFyZ2luLXRvcDogOXB4OyB9XG4gICAgLnBhZ2UtdGl0bGUgaDIgc3BhbiB7XG4gICAgICBjb2xvcjogIzI4YWRlMzsgfVxuICAucGFnZS10aXRsZSBwIHtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgIG1hcmdpbi10b3A6IDlweDsgfVxuXG4uYXVkaW8ge1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7IH1cbiAgLmF1ZGlvOmhvdmVyIHtcbiAgICBjb2xvcjogIzAwMDsgfVxuICAuYXVkaW8gLmF1ZGlvLXgtaWNvbiB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuYXVkaW8gLmF1ZGlvLXgtaWNvbiwgLmF1ZGlvIC5hdWRpby14LWljb24gc3ZnIHtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIHdpZHRoOiAzMHB4OyB9XG4gICAgLmF1ZGlvIC5hdWRpby14LWljb24gLmljb24tdW5tdXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmF1ZGlvLm11dGVkIC5pY29uLXVubXV0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmF1ZGlvLm11dGVkIC5pY29uLW11dGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmF1ZGlvIC5hdWRpby14LXRleHQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4OyB9XG5cbi5wYWdlLXRpdGxlLW1hcmdpbi1ib3R0b20tbm9uZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnBhZ2UtdGl0bGUtbWFyZ2luLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cblxuLnBhZ2UtdGl0bGUtbWFyZ2luLXRvcCB7XG4gIG1hcmdpbi10b3A6IDE4cHg7IH1cblxuLnBhZ2UtdGl0bGUtcGFkZGluZy10b3Atbm9uZSB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5wYWdlLXRpdGxlLXNtYWxsIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDAgMCAxOHB4OyB9XG4gIC5wYWdlLXRpdGxlLXNtYWxsIGgxIHtcbiAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgLnBhZ2UtdGl0bGUtc21hbGwgcCB7XG4gICAgZm9udC1zaXplOiAxNHB4OyB9XG5cbi5wYWdlLXRpdGxlLXNtYWxsLXgtbGVmdC1wYWRkaW5nIHtcbiAgcGFkZGluZy1sZWZ0OiAxOHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAucGFnZS10aXRsZS1sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDM2cHg7IH0gfVxuXG4ucGFnZS10aXRsZS1sYXJnZSBoMSB7XG4gIGZvbnQtc2l6ZTogMzZweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAucGFnZS10aXRsZS1sYXJnZSBoMSB7XG4gICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9IH1cblxuLnBhZ2UtdGl0bGUtbGFyZ2UgaDIge1xuICBmb250LXNpemU6IDM2cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLnBhZ2UtdGl0bGUtbGFyZ2UgaDIge1xuICAgICAgZm9udC1zaXplOiAzMHB4OyB9XG4gICAgICAucGFnZS10aXRsZS1sYXJnZSBoMiBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiA0OHB4OyB9IH1cblxuLnBhZ2UtdGl0bGUtbGFyZ2UgcCB7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuXG4vKlxuUGFnZSBUaXRsZSBDb3Vyc2VcblxuRm9yIHVzZSBhYm92ZSB2aWRlb3MuIFRPRE86IFRoaXMgc2hvdWxkIGJlIGl0cyBvd24gbW9kdWxlLlxuXG5NYXJrdXA6XG48aGVhZGVyIGNsYXNzPVwicGFnZS10aXRsZSBwYWdlLXRpdGxlLWNvdXJzZVwiPlxuICA8aDE+Q2hhcHRlciAxOiBDYXJyeWluZyBNZXNzYWdlczwvaDE+XG4gIDxwIGNsYXNzPVwiYXVkaW8gbXV0ZWRcIiBpZD1cInZvbHVtZV9jb250cm9sXCI+PGEgaHJlZj1cIiNcIj5SZWFkIEFsb3VkPC9hPjwvcD5cbjwvaGVhZGVyPlxuXG5TdHlsZWd1aWRlIDMuNC4xXG4qL1xuLnBhZ2UtdGl0bGUtY291cnNlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmctcmlnaHQ6IDU4cHg7XG4gIHBhZGRpbmctdG9wOiAxOHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5wYWdlLXRpdGxlLWNvdXJzZSB7XG4gICAgICBwYWRkaW5nOiAzNnB4IDAgMThweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyB9IH1cbiAgLnBhZ2UtdGl0bGUtY291cnNlIGgxIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAucGFnZS10aXRsZS1jb3Vyc2UgaDEge1xuICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07IH0gfVxuXG4vKlxuUGFnZSBUaXRsZSBDb250cm9sc1xuXG5BIHZlcnNpb24gdGhhdCBoYXMgYSBidXR0b24uIFRPRE86IFRoaXMgc2hvdWxkIGJlIGl0cyBvd24gbW9kdWxlLlxuXG5NYXJrdXA6XG48aGVhZGVyIGNsYXNzPVwicGFnZS10aXRsZSBwYWdlLXRpdGxlLWNvbnRyb2xzXCI+XG4gIDxzZWN0aW9uPlxuICAgIDxoMT5UaWZmYW55IFByYWRvPC9oMT5cbiAgICA8cD50aWZhLnRpZmFAZ21haWwuY29tPC9wPlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uPlxuICAgIDxhIGNsYXNzPVwiYnV0dG9uXCIgaHJlZj1cIi9tYW5hZ2UvMzYvbGljZW5zZS8zNi9lZGl0LzMzMjQvXCI+RWRpdCBVc2VyPC9hPlxuICA8L3NlY3Rpb24+XG48L2hlYWRlcj5cblxuU3R5bGVndWlkZSAzLjQuMlxuKi9cbi5wYWdlLXRpdGxlLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5wYWdlLXRpdGxlLWNvbnRyb2xzIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgLnBhZ2UtdGl0bGUtY29udHJvbHMgc2VjdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLnBhZ2UtdGl0bGUtY29udHJvbHMgc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4ucGFnZS10aXRsZS1jZW50ZXJlZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKlxuUGVyc29uXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwicGVyc29uXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwiaW1hZ2VcIj5cbiAgICA8aW1nIHNyYz1cIi9pbWFnZXMvamFtZXNiaWxsaW5ncy5qcGdcIiBhbHQ9XCJEci4gSmFtZXMgQmlsbGluZ3MsIExNRlRcIiB3aWR0aD1cIjI5MFwiPlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwidGV4dFwiPlxuICAgIDxoMj5Eci4gSmFtZXMgQmlsbGluZ3MsIExNRlQ8L2gyPlxuICAgIDxoMz5TaG9ydCBJbnRyb2R1Y3Rpb248L2gzPlxuICAgIDxwPkRyLiBCaWxsaW5ncyBhIGxpY2Vuc2VkIE1hcnJpYWdlIGFuZCBGYW1pbHkgVGhlcmFwaXN0IChMTUZUKSBpbiB0aGUgc3RhdGUgb2YgQ2FsaWZvcm5pYSBoYXMgc3BlY2lhbGl6ZWQgd29ya2luZyB3aXRoIGNvdXBsZXMgYW5kIGZhbWlsaWVzIGZvciB0aGUgcGFzdCB0ZW4geWVhcnMuIEhlIGhhcyBkZXZlbG9wZWQgYW5kIGltcGxlbWVudGVkIGEgY291bnR5IHdpZGUgZGl2b3JjZSBwYXJlbnRpbmcgcHJvZ3JhbXMgdXNpbmcgYm90aCB0aGUgQ2hpbGRyZW4gaW4gQmV0d2VlbiBhbmQgQWZ0ZXIgdGhlIFN0b3JtIHByb2dyYW1zLCBmb3IgdGhlIGZhbWlseSBjb3VydHMgaW4gYSBsYXJnZSBTb3V0aGVybiBDYWxpZm9ybmlhIGNvdW50eS48L3A+XG4gICAgPGgzPkFkZGl0aW9uYWwgSW5mb3JtYXRpb248L2gzPlxuICAgIDxwPkRyLiBCaWxsaW5ncyBoYXMgYm90aCBhIE1hc3RlcnMgRGVncmVlIGFuZCBQaC5ELiBpbiBNYXJyaWFnZSBhbmQgRmFtaWx5IFRoZXJhcHkuIEhlIGlzIGRlZGljYXRlZCB0byBoZWxwaW5nIGluZGl2aWR1YWwsIGNvdXBsZXMsIGZhbWlsaWVzIGNyZWF0ZSBoZWFsdGhpZXIgYW5kIGhhcHBpZXIgcmVsYXRpb25zaGlwcy4gRHIuIEJpbGxpbmdzIGlzIGNlcnRpZmllZCBpbiBhIG51bWJlciBvZiBwYXJlbnRpbmcsIGNvLXBhcmVudGluZywgYW5kIG1hcnJpYWdlIGVuaGFuY2VtZW50IHByb2dyYW1zIChQUklDRSBQYXJlbnRpbmcsIFBSRVAsIENvdXBsZXMgQ29tbXVuaWNhdGlvbiBJbmMuLCBDaGlsZHJlbiBpbiBCZXR3ZWVuLCBhbmQgQWZ0ZXIgdGhlIFN0b3JtKS4gRHIuIEJpbGxpbmdzIGlzIGFsc28gYSBjby1hdXRob3Igb2YgdGhlIExlYWRlcnMgR3VpZGUgZm9yIHRoZSBBZnRlciB0aGUgU3Rvcm0gcHJvZ3JhbS4gSGUgZGV2ZWxvcGVkIGEgZGl2b3JjZSBwYXJlbnRpbmcgcHJvZ3JhbSBieSBjb21iaW5pbmcgdGhlIENoaWxkcmVuIGluIEJldHdlZW4gYW5kIEFmdGVyIHRoZSBTdG9ybSB3aGljaCB3YXMgcHJlc2VudGVkIGFjcm9zcyBhIGxhcmdlciBjb3VudHkgaW4gU291dGhlcm4gQ2FsaWZvcm5pYS4gRHIuIEJpbGxpbmdz4oCZcyBjbGluaWNhbCBpbnRlcmVzdHMgYXJlIGluIHBhcmVudGluZywgZGl2b3JjZSBwYXJlbnRpbmcsIGFuZCBncmllZiBhbmQgbG9zcyB3aXRoIGNoaWxkcmVuLiBEci4gQmlsbGluZ3MgY3VycmVudGx5IHdvcmtzIGFzIGEgQ2xpbmljYWwgRGlyZWN0b3Igb2YgYSBub24tcHJvZml0IGNvdW5zZWxpbmcgYWdlbmN5IHRoYXQgc3BlY2lhbGl6ZXMgaW4gd29ya2luZyB3aXRoIGZhbWlsaWVzIGluIGRpc3RyZXNzLiBIZSBhbHNvIHdvcmtzIHBhcnQgdGltZSBhcyBhbiBBc3Npc3RhbnQgUHJvZmVzc29yIGZvciBhIGdyYWR1YXRlIHByb2dyYW0gdHJhaW5pbmcgTWFzdGVycyBhbmQgUGguRC4gbGV2ZWwgc3R1ZGVudHMgZm9yIGEgY2FyZWVyIGluIE1hcnJpYWdlIGFuZCBGYW1pbHkgVGhlcmFweS48L3A+XG4gICAgPGgzPkNvbnRhY3QgSW5mb3JtYXRpb246PC9oMz5cbiAgICA8cD5JZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gY29uc3VsdGluZyB3aXRoIERyLiBCaWxsaW5ncyBwbGVhc2UgY29udGFjdCBoaW0gYnkgZW1haWwgYXQgQmlsbGluZ3Njb25zdWx0aW5nQHZlcml6b24ubmV0IHdpdGggYSBicmllZiBkZXNjcmlwdGlvbiBvZiB5b3VyIHNpdHVhdGlvbiBhbmQgc3BlY2lmaWMgcXVlc3Rpb25zIG9yIGNvbmNlcm5zIHRoYXQgeW91IGhhdmUuIFdoZW4gZS1tYWlsaW5nLCBwbGVhc2UgaW5jbHVkZSB5b3VyIG5hbWUsIHRlbGVwaG9uZSBudW1iZXIsIGFuZCB0aGUgYmVzdCB0aW1lIHRoYXQgeW91IG1heSBiZSByZWFjaGVkLiBIaXMgY29uc3VsdGF0aW9uIGZlZXMgYXJlICQyNSBmb3IgMjAgbWludXRlcywgJDM1IGZvciAzMCBtaW51dGVzIGFuZCAkNTAgZm9yIDQ1IG1pbnV0ZXMuIFBheW1lbnRzIGZyb20gYmFuayBhY2NvdW50cywgY3JlZGl0IG9yIGRlYml0IGNhcmRzIG1heSBiZSBtYWRlIHRocm91Z2ggdGhlIHNlY3VyZWQgc2l0ZSBvZiBQYXlwYWwgKGh0dHBzOi8vd3d3LnBheXBhbC5jb20pPC9wPlxuICA8L3NlY3Rpb24+XG48L2FydGljbGU+XG5cblN0eWxlZ3VpZGUgMy4xNVxuKi9cbi5wZXJzb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5wZXJzb24ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMkYyRjI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAgICAgLnBlcnNvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC5wZXJzb24gaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnBlcnNvbiAuaW1hZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5wZXJzb24gLmltYWdlIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLnBlcnNvbiAudGV4dCB7XG4gICAgICBmbGV4OiA0OyB9IH1cblxuLypcblByb2dyZXNzIEJhclxuXG5NYXJrdXA6XG48dWwgY2xhc3M9XCJwcm9ncmVzc2JhclwiPlxuICA8c2ctaW5zZXJ0PjMuMzEtMjwvc2ctaW5zZXJ0PlxuICA8c2ctaW5zZXJ0PjMuMzEtMjwvc2ctaW5zZXJ0PlxuICA8c2ctaW5zZXJ0PjMuMzEtMTwvc2ctaW5zZXJ0PlxuICA8c2ctaW5zZXJ0PjMuMzEtMTwvc2ctaW5zZXJ0PlxuPC91bD5cblxuU3R5bGVndWlkZSAzLjMwXG4qL1xuLnByb2dyZXNzYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy10b3A6IDIycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucHJvZ3Jlc3NiYXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEzcHg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDsgfVxuICAucHJvZ3Jlc3NiYXIgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLypcblByb2dyZXNzIEJhciBJdGVtXG5cblRoZSBTQzUgZGVtbyBkb2Vzbid0IHF1aXRlIHdvcmsgaGVyZSwgYXMgZmlyc3QtY2hpbGQgY29tZXMgaW50byBwbGF5LiBTZWUgMy4zMCBpbnN0ZWFkLlxuXG5EZWZhdWx0IC0gRGVmYXVsdCBzdGF0ZVxuLnByb2dyZXNzYmFyaXRlbS1pcy1hY3RpdmUgLSBXaGVuIGl0J3MgYmVlbiBhY3RpdmUvY29tcGxldGVcblxuTWFya3VwOlxuPGxpIGNsYXNzPVwicHJvZ3Jlc3NiYXJpdGVtIHskbW9kaWZpZXJzfVwiIHN0eWxlPVwid2lkdGg6MjUlXCI+U3RlcDwvbGk+XG5cblN0eWxlZ3VpZGUgMy4zMVxuKi9cbi5wcm9ncmVzc2Jhcml0ZW0ge1xuICBjb2xvcjogIzY5Njk2OTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA1MDsgfVxuICAucHJvZ3Jlc3NiYXJpdGVtOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsZWZ0OiAtM3B4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0yNS41cHg7XG4gICAgd2lkdGg6IDIwcHg7IH1cbiAgLnByb2dyZXNzYmFyaXRlbS5wcm9ncmVzc2Jhcml0ZW0taXMtYWN0aXZlOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI4YWRlMzsgfVxuICAucHJvZ3Jlc3NiYXJpdGVtLnByb2dyZXNzYmFyaXRlbS1pcy1hY3RpdmU6bm90KDpmaXJzdC1jaGlsZCk6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI4YWRlMztcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIHRvcDogLTIycHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLypcblF1aXpcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cInF1aXogZ3VpZGVkLXF1ZXN0aW9uXCI+XG4gICAgPGgyPlF1ZXN0aW9uIDEgb2YgMTE8L2gyPlxuICAgIDxoMT5XaHkgZG9lcyBjb25mbGljdCBvdmVyIG1vbmV5IGVhc2lseSBvY2N1ciBhZnRlciBkaXZvcmNlIG9yIHNlcGFyYXRpb24/PC9oMT5cbiAgICA8Zm9ybSBhY3Rpb249XCIjXCI+XG4gICAgICAgIDxvbCBjbGFzcz1cImFuc3dlci1saXN0XCIgaWQ9XCJxdWl6XCI+PGxpPlxuICAgIDxsYWJlbCBmb3I9XCIwXCI+XG4gICAgICAgIDxpbnB1dCBpZD1cIjBcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwicXVpelwiPlxuICAgICAgICA8cD5Nb25leSB1c3VhbGx5IGJlY29tZXMgdGlnaHRlciBmb3IgYm90aCBwYXJlbnRzLjwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZha2UtcmFkaW9cIj48L2Rpdj5cbiAgICA8L2xhYmVsPlxuPC9saT48bGk+XG4gICAgPGxhYmVsIGZvcj1cIjFcIj5cbiAgICAgICAgPGlucHV0IGlkPVwiMVwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJxdWl6XCI+XG4gICAgICAgIDxwPk1hbnkgcGFyZW50cyB3aG8gcGF5IHN1cHBvcnQgcmVzZW50IGhhdmluZyBubyBzYXkgaW4gaG93IHRoZSBtb25leSBpcyBzcGVudC48L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmYWtlLXJhZGlvXCI+PC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvbGk+PGxpPlxuICAgIDxsYWJlbCBmb3I9XCIyXCI+XG4gICAgICAgIDxpbnB1dCBpZD1cIjJcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwicXVpelwiPlxuICAgICAgICA8cD5UaGUgcGVyc29uIHJlY2VpdmluZyBzdXBwb3J0IG9mdGVuIHRydWx5IGJlbGlldmVzIGl0IGlzIG5vdCBlbm91Z2ggdG8gY292ZXIgZXhwZW5zZXMuPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmFrZS1yYWRpb1wiPjwvZGl2PlxuICAgIDwvbGFiZWw+XG48L2xpPjxsaT5cbiAgICA8bGFiZWwgZm9yPVwiM1wiPlxuICAgICAgICA8aW5wdXQgaWQ9XCIzXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cInF1aXpcIj5cbiAgICAgICAgPHA+VGhlIHBlcnNvbiBwYXlpbmcgc3VwcG9ydCB0cnVseSBiZWxpZXZlcyB0aGV5IGFyZSBwYXlpbmcgdG9vIG11Y2gsIGVzcGVjaWFsbHkgaWYgdGhleSBoYXZlIG90aGVyIGZpbmFuY2lhbCBvYmxpZ2F0aW9ucy48L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmYWtlLXJhZGlvIHNlbGVjdGVkXCI+PC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvbGk+PGxpPlxuICAgIDxsYWJlbCBmb3I9XCI0XCI+XG4gICAgICAgIDxpbnB1dCBpZD1cIjRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwicXVpelwiPlxuICAgICAgICA8cD5BbGwgb2YgdGhlIGFib3ZlLjwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZha2UtcmFkaW9cIj48L2Rpdj5cbiAgICA8L2xhYmVsPlxuPC9saT48L29sPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbnRyb2xzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVlZGJhY2tcIiBpZD1cImNoZWNrX2Fuc3dlclwiPjxoMiBjbGFzcz1cImluY29ycmVjdFwiPkluY29ycmVjdC48L2gyPjxwPlRoaXMgaXMgdHJ1ZSwgYnV0IHRoZXkgYXJlIGp1c3QgbG9va2luZyBhdCBpdCBmcm9tIHRoZWlyIG93biBwb2ludCBvZiB2aWV3LiBPdGhlciBhbnN3ZXJzIGFyZSBhbHNvIGNvcnJlY3QuPC9wPjwvZGl2PlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJzdWJtaXRcIiBpZD1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uIG5leHRcIiB2YWx1ZT1cIk5leHRcIj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgIDwvZm9ybT5cbiAgICA8ZGl2IGNsYXNzPVwic2NvcmVcIiBpZD1cImNvcnJlY3RfaW5jb3JyZWN0XCI+PHA+Q29ycmVjdDogMCAvIEluY29ycmVjdDogMTwvcD48L2Rpdj5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDMuMTZcbiovXG4ucXVpeiBmb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4ucXVpeiAuY29udHJvbHMge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAucXVpeiAuY29udHJvbHMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG5cbi5xdWl6IC5mZWVkYmFjayBoMiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnF1aXogLmZlZWRiYWNrIGgyLmluY29ycmVjdCB7XG4gICAgY29sb3I6ICNlNzUzNDU7IH1cbiAgLnF1aXogLmZlZWRiYWNrIGgyLmNvcnJlY3Qge1xuICAgIGNvbG9yOiAjOWFiYTM4OyB9XG5cbi5xdWl6IC5mZWVkYmFjayBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ucXVpeiAuYW5zd2VyLWxpc3Qge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi1sZWZ0OiA0NXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5xdWl6IC5hbnN3ZXItbGlzdCB7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuICAucXVpeiAuYW5zd2VyLWxpc3QgbGkge1xuICAgIGxpc3Qtc3R5bGU6IHVwcGVyLWFscGhhIGluc2lkZTtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgbWluLWhlaWdodDogMzJweDtcbiAgICBwYWRkaW5nLXRvcDogLjI1ZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAucXVpeiAuYW5zd2VyLWxpc3QgbGkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG4gICAgLnF1aXogLmFuc3dlci1saXN0IGxpIFt0eXBlPVwiY2hlY2tib3hcIl0sIC5xdWl6IC5hbnN3ZXItbGlzdCBsaSBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgICAucXVpeiAuYW5zd2VyLWxpc3QgbGkgbGFiZWwge1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLnF1aXogLmFuc3dlci1saXN0IGxpIHAge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAgIC5xdWl6IC5hbnN3ZXItbGlzdCBsaSBwIHtcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuICAgIC5xdWl6IC5hbnN3ZXItbGlzdCBsaSAuZmFrZS1yYWRpbyB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvcXVpei11bnNlbGVjdGVkLnBuZ1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAtNDVweDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAgIC5xdWl6IC5hbnN3ZXItbGlzdCBsaSAuZmFrZS1yYWRpbyB7XG4gICAgICAgICAgdG9wOiAzcHg7IH0gfVxuICAgICAgLnF1aXogLmFuc3dlci1saXN0IGxpIC5mYWtlLXJhZGlvLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL3F1aXotc2VsZWN0ZWQucG5nXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0OyB9XG5cbi5xdWl6IC5idXR0b24ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAucXVpeiAuYnV0dG9uI3N1Ym1pdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI4YWRlMzsgfVxuICAucXVpeiAuYnV0dG9uLm5leHQge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG4gIC5xdWl6IC5idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMxOThmYmY7IH1cblxuLnF1aXogLnNjb3JlIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NjY2M7XG4gIG1hcmdpbi10b3A6IDE4cHg7XG4gIHBhZGRpbmc6IDE4cHggMDsgfVxuICAucXVpeiAuc2NvcmUgcCB7XG4gICAgZm9udC1zaXplOiAxNHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAucXVpeiAuc2NvcmUgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0gfVxuXG4vKlxuUmVjZWlwdFxuXG5NYXJrdXA6XG48c2VjdGlvbiBjbGFzcz1cInJlY2VpcHRcIj5cbiAgPGRpdj5cbiAgICA8aDE+QWNjb3VudCBJbmZvcm1hdGlvbjwvaDE+XG4gICAgPHA+PHNwYW4+VXNlcm5hbWU6IGphYXN1bTwvcD5cbiAgICA8cD48c3Bhbj5FeHBpcmF0aW9uIERhdGU6PC9zcGFuPiAxMi8xMi8xOC48L3A+XG4gIDwvZGl2PlxuICA8YSBjbGFzcz1cInJlY2VpcHQteC1wcmludFwiIGhyZWY9XCJqYXZhc2NyaXB0OmlmKHdpbmRvdy5wcmludCl3aW5kb3cucHJpbnQoKVwiPlByaW50IHRoaXMgcGFnZSBmb3IgeW91ciByZWNvcmRzPC9hPlxuICA8YSBjbGFzcz1cImJ1dHRvblwiIGhyZWY9XCIjXCI+R28gdG8gY291cnNlPC9hPlxuPC9zZWN0aW9uPlxuXG5TdHlsZWd1aWRlIDMuMzJcbiovXG4ucmVjZWlwdCB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gIHBhZGRpbmc6IDAgMThweCAxOHB4OyB9XG4gIC5yZWNlaXB0IGRpdiB7XG4gICAgYmFja2dyb3VuZDogI0YyRjJGMjtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIHBhZGRpbmc6IDE4cHg7IH1cbiAgICAucmVjZWlwdCBkaXYgaDEge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQuNXB4OyB9XG4gICAgLnJlY2VpcHQgZGl2IHAge1xuICAgICAgY29sb3I6ICMyOGFkZTM7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbWFyZ2luLWJvdHRvbTogOXB4OyB9XG4gICAgLnJlY2VpcHQgZGl2IGEge1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5yZWNlaXB0IGRpdiBzcGFuIHtcbiAgICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gIC5yZWNlaXB0ID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5yZWNlaXB0IC5yZWNlaXB0LXgtcHJpbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cblxuLypcblJlcXVpcmVtZW50cyBMaXN0XG5cbk1hcmt1cDpcbjxzZWN0aW9uIGlkPVwicmVxdWlyZW1lbnRzX2xpc3RcIiBjbGFzcz1cInJlcXVpcmVtZW50cy1saXN0XCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwiY29udHJvbHNcIj5cbiAgICA8YnV0dG9uIGlkPVwicmVxdWlyZW1lbnRzLXRvZ2dsZVwiIGNsYXNzPVwidG9nZ2xlXCI+VG9nZ2xlIFJlcXVpcmVtZW50czwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lclwiPlxuICAgICAgPGRpdiBzdHlsZT1cIlwiIGNsYXNzPVwidGltZXItY29udGVudFwiPlxuICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICA8aDEgaWQ9XCJ0aW1lcl90aXRsZVwiPlRpbWVyIFJlcXVpcmVtZW50PC9oMT5cbiAgICAgICAgICA8cCBjbGFzcz1cInRvb2x0aXBcIj48YSBocmVmPVwiI3doYXRzLXRoaXMtbW9kYWxcIj5XaGF0J3MgdGhpcz88L2E+PC9wPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDxwIGlkPVwicmVxdWlyZW1lbnRzLXRpbWVyXCIgY2xhc3M9XCJ0aW1lci12YWx1ZVwiPjI6NDY8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuICA8dWwgaWQ9XCJyZXF1aXJlbWVudHMtY2F0ZWdvcmllc1wiIGNsYXNzPVwiY2F0ZWdvcmllc1wiPlxuICAgIDxsaT5cbiAgICAgIDxoMz5JbnRyb2R1Y3Rpb248L2gzPlxuICAgICAgPHVsIGlkPVwiaW50cm9kdWN0aW9uLXJlcXVpcmVtZW50c1wiPlxuICAgICAgICA8bGkgY2xhc3M9XCJjb21wbGV0ZVwiPjxhIGNsYXNzPVwic3RhdGUtbm90aWZpY2F0aW9uc1wiIGhyZWY9XCIjXCI+U3RhdGUgTm90aWZpY2F0aW9uczwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJjb21wbGV0ZVwiPjxhIGNsYXNzPVwiaW50cm8tdmlkZW9cIiBocmVmPVwiL3BldGVyc29uL1wiPkludHJvZHVjdG9yeSBWaWRlbzwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJzdGF0ZS1jb3VudHktcmVxcyBpbi1wcm9ncmVzc1wiPjxhIGNsYXNzPVwic3RhdGUtY291bnR5LXJlcXNcIiBocmVmPVwiI1wiPlN0YXRlL0NvdW50eSBSZXF1aXJlbWVudHM8L2E+PC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICA8aDM+Q291cnNlIENvbnRlbnQ8L2gzPlxuICAgICAgPHVsIGlkPVwiY291cnNlLWNvbnRlbnQtcmVxdWlyZW1lbnRzXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cImluLXByb2dyZXNzXCI+PGEgaHJlZj1cIiNcIiBjbGFzcz1cImNoYXB0ZXJfdmlld1wiIGRhdGEtY2hhcHRlcmlkPVwiM1wiPjAxOiBDYXJyeWluZyBNZXNzYWdlczwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJpbi1wcm9ncmVzc1wiPjxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjaGFwdGVyX3ZpZXdcIiBkYXRhLWNoYXB0ZXJpZD1cIjRcIj4wMjogUHV0IERvd25zPC9hPjwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cIlwiPjxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjaGFwdGVyX3ZpZXdcIiBkYXRhLWNoYXB0ZXJpZD1cIjVcIj4wMzogTW9uZXkgUHJvYmxlbXM8L2E+PC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwiXCI+PGEgaHJlZj1cIiNcIiBjbGFzcz1cImNoYXB0ZXJfdmlld1wiIGRhdGEtY2hhcHRlcmlkPVwiNlwiPjA0OiBRdWVzdGlvbmluZzwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJcIj48YSBocmVmPVwiI1wiIGNsYXNzPVwiY2hhcHRlcl92aWV3XCIgZGF0YS1jaGFwdGVyaWQ9XCI3XCI+MDU6IExvbmcgRGlzdGFuY2UgUGFyZW50aW5nPC9hPjwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInVuYXZhaWxhYmxlIFwiPjxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjaGFwdGVyX3ZpZXdcIiBkYXRhLWNoYXB0ZXJpZD1cIjlcIj4wNjogQ29uY2x1c2lvbjwvYT48L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9zZWN0aW9uPlxuXG5TdHlsZWd1aWRlIDMuMTdcbiovXG5zZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IHtcbiAgYmFja2dyb3VuZDogIzE1NWE3NjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICNmZmY7XG4gIG1hcmdpbi10b3A6IC01NHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMTAwJTtcbiAgdHJhbnNpdGlvbjogdG9wIC41cyBlYXNlLW91dDtcbiAgei1pbmRleDogMTAxO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIGZsZXgtYmFzaXM6IDM0MHB4O1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHotaW5kZXg6IDA7IH0gfVxuICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC50b2dnbGUge1xuICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9yZXF1aXJlbWVudHMtbGlzdC10b2dnbGUuc3ZnXCIpIG5vLXJlcGVhdCAyN3B4IDEzLjVweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDE4cHggMCA0NXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICB3aWR0aDogMjNweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAudG9nZ2xlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAudG9nZ2xlOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvcmVxdWlyZW1lbnRzLWxpc3QtdG9nZ2xlLWFycm93LnN2Z1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDdweDtcbiAgICAgIGxlZnQ6IDlweDtcbiAgICAgIG1hcmdpbi10b3A6IC0zLjVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgd2lkdGg6IDEwcHg7IH1cbiAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDU0cHggMCAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvOyB9IH1cbiAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzIGgzIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbWFyZ2luLWJvdHRvbTogOXB4OyB9XG4gICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyAuaW5zdHJ1Y3Rvcl9zZWN0aW9uX3ZpZXcuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMjhhZGUzOyB9XG4gICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHtcbiAgICAgIG1hcmdpbjogMzZweCAwIDE4cHggMzZweDsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpLmN1cnJlbnQgaDMgYSB7XG4gICAgICAgIGNvbG9yOiAjMjhhZGUzOyB9XG4gICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkuY3VycmVudCB1bCBsaS5jdXJyZW50IGEge1xuICAgICAgICBjb2xvcjogIzI4YWRlMztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bC5kZWZhdWx0LWNvbnRlbnQgPiBsaSBhIHtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL3JlcXVpcmVtZW50cy1saXN0LW5vdC1hdHRlbXB0ZWQucG5nXCIpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQ7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bC5kZWZhdWx0LWNvbnRlbnQgPiBsaS5mYWlsZWQgYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9yZXF1aXJlbWVudHMtbGlzdC1ub3QtZmFpbGVkLnBuZ1wiKSByaWdodCBjZW50ZXIgbm8tcmVwZWF0OyB9XG4gICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkgdWwuZGVmYXVsdC1jb250ZW50ID4gbGkuaW4tcHJvZ3Jlc3MgYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9yZXF1aXJlbWVudHMtbGlzdC1pbnByb2dyZXNzLnBuZ1wiKSByaWdodCBjZW50ZXIgbm8tcmVwZWF0OyB9XG4gICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkgdWwuZGVmYXVsdC1jb250ZW50ID4gbGkuY29tcGxldGUgYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9yZXF1aXJlbWVudHMtbGlzdC1jb21wbGV0ZS5wbmdcIikgcmlnaHQgY2VudGVyIG5vLXJlcGVhdDsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHVsLmRlZmF1bHQtY29udGVudCA+IGxpLnVuYXZhaWxhYmxlIGEge1xuICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHVsLmluc3RydWN0b3ItY29udGVudCA+IGxpID4gYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9pbnN0cnVjdG9yLWNvbnRlbnQtZXhwYW5kLnBuZ1wiKSByaWdodCBjZW50ZXIgbm8tcmVwZWF0OyB9XG4gICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkgdWwuaW5zdHJ1Y3Rvci1jb250ZW50ID4gbGkuZXhwYW5kZWQgPiBhIHtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL2luc3RydWN0b3ItY29udGVudC1jb2xsYXBzZS5wbmdcIikgcmlnaHQgY2VudGVyIG5vLXJlcGVhdDsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHVsLmluc3RydWN0b3ItY29udGVudCB1bC5pbnN0cnVjdG9yLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHVsLmluc3RydWN0b3ItY29udGVudCB1bC5pbnN0cnVjdG9yLXN1Ym1lbnUgbGkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gICAgICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHVsLmluc3RydWN0b3ItY29udGVudCB1bC5pbnN0cnVjdG9yLXN1Ym1lbnUgbGkgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMjBweDsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHVsLmluc3RydWN0b3ItY29udGVudCAuZXhwYW5kZWQgdWwuaW5zdHJ1Y3Rvci1zdWJtZW51IGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDAgMCAxOHB4OyB9XG4gICAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bCBsaSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgICAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bCBsaSBhIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBwYWRkaW5nOiAuNWVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDM2cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNvbnRyb2xzIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDEzODUwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiA1NHB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDUwOyB9XG4gIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLnRpbWVyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC50aW1lci1jb250ZW50IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiA1NHB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nOiAwIDE4cHg7IH1cbiAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC50aW1lci1jb250ZW50IGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDsgfVxuICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLnRpbWVyLWNvbnRlbnQgLnRpbWVyLXZhbHVlIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTsgfVxuICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLnRpbWVyLWNvbnRlbnQgcC50b29sdGlwIHtcbiAgICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAudGltZXItY29udGVudCBwLnRvb2x0aXAgc3BhbiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMyOGFkZTM7XG4gICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGVmdDogLTk5OTlweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBwYWRkaW5nOiA5cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgd2lkdGg6IDEgNTRweDtcbiAgICAgICAgei1pbmRleDogMTAwMDsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAudGltZXItY29udGVudCBwLnRvb2x0aXA6aG92ZXIgc3BhbiB7XG4gICAgICAgIGJvdHRvbTogMTA1JTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTc1cHg7IH1cbiAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC50aW1lci1jb250ZW50LnRpY2t0b2NrIGgyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMyOGFkZTM7XG4gICAgICB3aWR0aDogODAlO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwYWRkaW5nOiAzcHggMWVtOyB9XG4gICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAudGltZXItY29udGVudC50aWNrdG9jayBoMSB7XG4gICAgICBjb2xvcjogIzI4YWRlMzsgfVxuICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0LmRvbmUgaDIge1xuICAgIGJhY2tncm91bmQ6ICM5YWJhMzg7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAzcHggMWVtOyB9XG4gIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QuZG9uZSBoMSB7XG4gICAgY29sb3I6ICM5YWJhMzg7IH1cbiAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdC5pcy1leHBhbmRlZCB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QuaXMtZXhwYW5kZWQgLnRvZ2dsZTpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uOiB0dXJuLWluIC41cyBlYXNlLW91dCBmb3J3YXJkczsgfVxuICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0LmlzLWNvbGxhcHNlZCAudG9nZ2xlOmJlZm9yZSB7XG4gICAgYW5pbWF0aW9uOiB0dXJuLW91dCAuNXMgZWFzZS1vdXQgZm9yd2FyZHM7IH1cblxuLypcblJlc291cmNlc1xuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwicmVzb3VyY2VzLWNvbnRhaW5lciBsLWNvbnRhaW5lcmhvcml6b250YWxcIj5cbiAgPGhlYWRlciBjbGFzcz1cInBhZ2UtdGl0bGUgcGFnZS10aXRsZS1jb3Vyc2VcIj5cbiAgICA8aDE+UmVzb3VyY2VzPC9oMT5cbiAgPC9oZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJyZXNvdXJjZXMtbC1jb3Vyc2VcIj5cbiAgICA8bmF2IGNsYXNzPVwibmF2aWdhdGlvbiBuYXZpZ2F0aW9uLXBhZ2UgZ2xvc3NhcnktbmF2aWdhdGlvblwiIGlkPVwiZ2xvc3NhcnktbmF2aWdhdGlvblwiPlxuICAgICAgPGhlYWRlcj5cbiAgICAgICAgPGgyIGNsYXNzPVwibmF2aWdhdGlvbi10aXRsZVwiPkdsb3NzYXJ5IE1lbnU8L2gyPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWVudS10b2dnbGUgaXMtaW5hY3RpdmVcIiBpZD1cIm1lbnUtdG9nZ2xlXCI+PHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj4gTWVudTwvc3Bhbj48L2J1dHRvbj5cbiAgICAgIDwvaGVhZGVyPlxuICAgICAgPHVsIGNsYXNzPVwibWVudSBtZW51LXBhZ2UgaXMtaW5hY3RpdmVcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtaXRlbS1wYWdlXCIgb25jbGljaz1cInNob3dfZ2xvc3NhcnkoJ0FjdGl2ZSBMaXN0ZW5pbmcnLCAnL21lZGlhL2F1ZGlvL0FDVElWRV9MSVNURU5JTkdfMS5tcDMnKTtcIj48c3Bhbj5BY3RpdmUgTGlzdGVuaW5nPC9zcGFuPjwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWl0ZW0tcGFnZVwiIG9uY2xpY2s9XCJzaG93X2dsb3NzYXJ5KCdFbXBhdGh5JywgJy9tZWRpYS9hdWRpby9FTVBBVEhZXzEubXAzJyk7XCI+PHNwYW4+RW1wYXRoeTwvc3Bhbj48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1pdGVtLXBhZ2VcIiBvbmNsaWNrPVwic2hvd19nbG9zc2FyeSgnSSBNZXNzYWdlJywgJy9tZWRpYS9hdWRpby9JX01FU1NBR0VTXzEubXAzJyk7XCI+PHNwYW4+SSBNZXNzYWdlPC9zcGFuPjwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWl0ZW0tcGFnZVwiIG9uY2xpY2s9XCJzaG93X2dsb3NzYXJ5KCdJbXB1bHNlIENvbnRyb2wnLCAnL21lZGlhL2F1ZGlvL0lNUFVMU0VfQ09OVFJPTF8xXzEubXAzJyk7XCI+PHNwYW4+SW1wdWxzZSBDb250cm9sPC9zcGFuPjwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWl0ZW0tcGFnZVwiIG9uY2xpY2s9XCJzaG93X2dsb3NzYXJ5KCdQb2xpdGUgUmVxdWVzdCcsICcvbWVkaWEvYXVkaW8vUE9MSVRFX1JFUVVFU1RfMS5tcDMnKTtcIj48c3Bhbj5Qb2xpdGUgUmVxdWVzdDwvc3Bhbj48L2xpPlxuICAgICAgPC91bD5cbiAgICA8L25hdj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cInJlc291cmNlcy1jb250ZW50XCI+XG4gICAgICA8YXJ0aWNsZSBjbGFzcz1cImdsb3NzYXJ5LWRlZmluaXRpb24gdGV4dC1jb250YWluZXJcIiBzdHlsZT1cIlwiIHRlcm09XCJBY3RpdmUgTGlzdGVuaW5nXCIgaWQ9XCJnbG9zc2FyeS10ZXJtLWFjdGl2ZS1saXN0ZW5pbmdcIj5cbiAgICAgICAgPGgxPkFjdGl2ZSBMaXN0ZW5pbmc8L2gxPlxuICAgICAgICA8cD5XaGVuIHdlIGFjdGl2ZWx5IGxpc3RlbiB0byBzb21lb25lLCB3ZSBhcmUgbWFraW5nIGEgcmVhbCBlZmZvcnQgdG8gaGVhciBhbmQgdW5kZXJzdGFuZCB3aGF0IHRoZXkgYXJlIHNheWluZy4gIFdlIGFyZSBub3QgdGhpbmtpbmcgYWJvdXQgb3VyIG93biByZWFjdGlvbiB0byB3aGF0IGlzIGJlaW5nIHNhaWQ7IGluc3RlYWQgd2UgYXJlIGxpc3RlbmluZyBkZWVwbHkgYW5kIHdpdGggYWxsIG9mIG91ciBhdHRlbnRpb24uIFRoZSBuZXh0IHN0ZXAgaXMgdG8gbGV0IHRoZSBvdGhlciBwZXJzb24ga25vdyB5b3UgaGF2ZSBiZWVuIGxpc3RlbmluZyBieSBkb2luZyBvbmUgb2YgdGhyZWUgdGhpbmdzOjxicj5cbiAgICAgICAgICAxKSByZXdvcmRpbmcgb3IgcGFyYXBocmFzaW5nIHdoYXQgdGhleSBoYXZlIHNhaWQgYW5kIHJlcGVhdGluZyBpdCBiYWNrIHRvIHRoZW07PGJyPlxuICAgICAgICAgIDIpIHN0YXRpbmcgdGhlIG1lYW5pbmcgb2Ygd2hhdCB0aGV5IHNhaWQ7PGJyPlxuICAgICAgICAgIDMpIGd1ZXNzaW5nIGF0IGFuZCBzdGF0aW5nIHRoZSB1bmRlcmx5aW5nIGZlZWxpbmcgb2Ygd2hhdCB0aGV5IHNhaWQuPGJyPlxuICAgICAgICAgIDxicj5cbiAgICAgICAgICBFeGFtcGxlcyBvZiBlYWNoIG9mIHRoZXNlIHRocmVlIGxldmVscyBvZiBhY3RpdmUgbGlzdGVuaW5nIGZvbGxvdzo8YnI+XG4gICAgICAgICAgPGJyPlxuICAgICAgICAgIDEpIFJld29yZGluZyAgU3BlYWtlcjogIEkgY2Fu4oCZdCBiZWxpZXZlIGhvdyBsb25nIGl0IHRvb2sgbWUgdG8gZ2V0IGhlcmUuIFRoZSB0cmFmZmljIHdhcyBwcmV0dHkgYmFkLiBMaXN0ZW5lcjogIFRoZSB0cmFmZmljIHdhcyBiYWQgYW5kIGl0IHRvb2sgeW91IGxvbmdlciB0aGFuIHlvdSB0aG91Z2h0IHRvIGdldCBoZXJlLjxicj5cbiAgICAgICAgICA8YnI+XG4gICAgICAgICAgMikgTWVhbmluZyAgTGlzdGVuZXI6ICBZb3Ugd2VyZSBzdXJwcmlzZWQgdGhlIHRyaXAgdG9vayBzbyBsb25nIGR1ZSB0byB0cmFmZmljIGRlbGF5cy48YnI+XG4gICAgICAgICAgPGJyPlxuICAgICAgICAgIDMpIEZlZWxpbmcgIExpc3RlbmVyOiAgWW91IHNvdW5kIGZydXN0cmF0ZWQgdGhhdCB5b3UgZ290IGhlcmUgbGF0ZXIgdGhhbiB5b3VcbiAgICAgICAgICBleHBlY3RlZC48YnI+XG4gICAgICAgICAgPGJyPlxuICAgICAgICAgIEFjdGl2ZSBsaXN0ZW5pbmcgc2hvd3MgcmVzcGVjdCBmb3IgdGhlIHNwZWFrZXIgYW5kIGVuY291cmFnZXMgbW9yZSBvcGVuIGFuZCBwbGVhc2FudCBjb21tdW5pY2F0aW9uLiBQYXJlbnRzIG5lZWQgdG8gdXNlIHRoaXMgc2tpbGwgd2l0aCB0aGVpciBjaGlsZHJlbiBhbmQgZWFjaCBvdGhlci48L3A+XG4gICAgICA8L2FydGljbGU+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDMuMThcbiovXG4ucmVzb3VyY2VzLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLnJlc291cmNlcy1jb250YWluZXIgLnBhZ2UtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gIC5yZXNvdXJjZXMtbC1jb3Vyc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwYWRkaW5nOiAwIDE4cHg7IH1cbiAgICAucmVzb3VyY2VzLWwtY291cnNlIC5yZXNvdXJjZXMtbmF2aWdhdGlvbiB7XG4gICAgICBmbGV4LWJhc2lzOiAyNSU7IH0gfVxuXG4ucmVzb3VyY2VzLWNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogMThweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAucmVzb3VyY2VzLWNvbnRlbnQge1xuICAgICAgZmxleC1iYXNpczogNzUlOyB9IH1cblxuLypcblJ1bGVcblxuTWFya3VwOlxuPGhyIGNsYXNzPVwicnVsZVwiPlxuXG5TdHlsZWd1aWRlIDMuNTZcbiovXG4ucnVsZSB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGMkYyRjI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKlxuU2NvcmVcblxuTWFya3VwOlxuPGRpdiBpZD1cInF1aXpfc2NvcmVcIj5cbiAgPGgyPlF1aXogUmVzdWx0czwvaDI+XG4gIDxoMz5Zb3VyIHNjb3JlIG9uIHRoZSBRdWVzdGlvbmluZyBxdWl6IHdhczo8L2gzPlxuICA8aDE+MzglPC9oMT5cbiAgPGgzIGlkPVwicGFzc2luZ19oZWFkZXJcIj5VbmZvcnR1bmF0ZWx5LCB5b3UgbmVlZCBhdCBsZWFzdCA3MCUgdG8gcGFzcy4gUGxlYXNlIHJldmlldyB0aGUgQ2hhcHRlciBhbmQgYXR0ZW1wdCB0aGUgUXVpeiBhZ2Fpbi48L2gzPlxuICA8YSBjbGFzcz1cImJ1dHRvblwiIGlkPVwicmVwZWF0X2NoYXB0ZXJcIiBocmVmPVwiXCI+VHJ5IFF1ZXN0aW9uaW5nIEFnYWluPC9hPlxuICA8cD5vciA8YSBpZD1cInJldHVybl90b19kYXNoYm9hcmRcIiBocmVmPVwiXCI+UmV0dXJuIHRvIEdhbGxlcnk8L2E+PC9wPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4yMFxuKi9cbiNxdWl6X3Njb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAxOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAzNnB4IDE4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IGF1dG87IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgI3F1aXpfc2NvcmUge1xuICAgICAgbWFyZ2luOiAzNnB4IGF1dG87XG4gICAgICBwYWRkaW5nOiAzNnB4IDcycHg7IH0gfVxuICAjcXVpel9zY29yZSBoMSwgI3F1aXpfc2NvcmUgaDMsICNxdWl6X3Njb3JlIC5idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDlweDsgfVxuICAjcXVpel9zY29yZSBoMSB7XG4gICAgZm9udC1zaXplOiA2NHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICNxdWl6X3Njb3JlIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAxMjBweDsgfSB9XG4gICNxdWl6X3Njb3JlIGgyIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgI3F1aXpfc2NvcmUgaDIge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuICAjcXVpel9zY29yZSBoMyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgI3F1aXpfc2NvcmUgaDMge1xuICAgICAgICBjb2xvcjogIzU1NTU1NTtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4OyB9IH1cbiAgI3F1aXpfc2NvcmUgLmJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgI3F1aXpfc2NvcmUgZGl2LnNraWxscy1wcmFjdGljZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgcGFkZGluZzogMThweCAwIDAgMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0YyRjJGMjsgfVxuICAgICNxdWl6X3Njb3JlIGRpdi5za2lsbHMtcHJhY3RpY2UgdWwge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAjcXVpel9zY29yZSBkaXYuc2tpbGxzLXByYWN0aWNlIHVsIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgICAgICNxdWl6X3Njb3JlIGRpdi5za2lsbHMtcHJhY3RpY2UgdWwgbGkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZmxleDogMSAwIGF1dG87IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAgICAgI3F1aXpfc2NvcmUgZGl2LnNraWxscy1wcmFjdGljZSB1bCBsaSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgNTAlOyB9IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAgICAgI3F1aXpfc2NvcmUgZGl2LnNraWxscy1wcmFjdGljZSB1bCBsaTpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE4cHg7IH0gfVxuICAgICAgICAjcXVpel9zY29yZSBkaXYuc2tpbGxzLXByYWN0aWNlIHVsIGxpIGEge1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAuNWVtOyB9XG5cbi8qXG5Ta2lsbHMgUHJhY3RpY2VcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cInNraWxscy1wcmFjdGljZSBcIiBzdHlsZT1cIlwiPlxuICA8aGVhZGVyIGNsYXNzPVwicGFnZS10aXRsZVwiPlxuICAgIDxoMT5Ta2lsbHMgUHJhY3RpY2U8L2gxPlxuICAgIDxwPiA8L3A+XG4gIDwvaGVhZGVyPlxuICA8dWw+XG4gICAgPGxpIGNsYXNzPVwiY29tcGxldGVkXCIgaWQ9XCJza2lsbHByYWN0aWNlLTFcIj5cbiAgICAgIDxhIGNsYXNzPVwic2tpbGxwcmFjdGljZV92aWV3XCIgaHJlZj1cIiNcIj5BY3RpdmUgTGlzdGVuaW5nPC9hPlxuICAgICAgPHA+PGEgY2xhc3M9XCJza2lsbHByYWN0aWNlXCIgaHJlZj1cIiNcIj48L2E+PC9wPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwiY29tcGxldGVkXCIgaWQ9XCJza2lsbHByYWN0aWNlLTJcIj5cbiAgICAgIDxhIGNsYXNzPVwic2tpbGxwcmFjdGljZV92aWV3XCIgaHJlZj1cIiNcIj5JIE1lc3NhZ2VzPC9hPlxuICAgICAgPHA+PGEgY2xhc3M9XCJza2lsbHByYWN0aWNlXCIgaHJlZj1cIiNcIj48L2E+PC9wPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwiY29tcGxldGVkXCIgaWQ9XCJza2lsbHByYWN0aWNlLTNcIj5cbiAgICAgIDxhIGNsYXNzPVwic2tpbGxwcmFjdGljZV92aWV3XCIgaHJlZj1cIiNcIj5TZWxmLVRhbGs8L2E+XG4gICAgICA8cD48YSBjbGFzcz1cInNraWxscHJhY3RpY2VcIiBocmVmPVwiI1wiPjwvYT48L3A+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJcIiBpZD1cInNraWxscHJhY3RpY2UtNFwiPlxuICAgICAgPGEgY2xhc3M9XCJza2lsbHByYWN0aWNlX3ZpZXdcIiBocmVmPVwiI1wiPlJlZnJhbWluZzwvYT5cbiAgICAgIDxwPjxhIGNsYXNzPVwic2tpbGxwcmFjdGljZVwiIGhyZWY9XCIjXCI+PC9hPjwvcD5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4yMVxuKi9cbi8qXG5Ta2lsbHMgUHJhY3RpY2UgUmVzb3VyY2VcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cInF1aXpfcXVlc3Rpb24gcXVpel9xdWVzdGlvbl9yZXNvdXJjZVwiPlxuICA8ZGl2IGNsYXNzPVwidGV4dFwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxuICAgICAgPGltZyBzcmM9XCIvaW1hZ2VzL2Rvd25sb2FkLnN2Z1wiIHdpZHRoPVwiMjZcIiBoZWlnaHQ9XCI0OVwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgPHAgY2xhc3M9XCJmaWxlX25hbWVcIj5NaW5kZnVsbmVzc19NZWRpdGF0aW9uLm1wMzwvcD5cbiAgICAgIDxwPk1lZGl0YXRpb24gTVAzIERvd25sb2FkPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImFjdGlvblwiPlxuICAgIDxhIGNsYXNzPVwiYnV0dG9uXCIgaHJlZj1cIi9tZWRpYS9za2lsbHByYWN0aWNlL2F0dGFjaG1lbnQvTWluZGZ1bG5lc3NfTWVkaXRhdGlvbi5tcDNcIj5Eb3dubG9hZDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjIxLjFcbiovXG4vKlxuU2tpbGxzIFByYWN0aWNlIFF1ZXN0aW9uXG5cbk1hcmt1cDpcbjxzZWN0aW9uIGNsYXNzPVwicXVpel9xdWVzdGlvblwiIGlkPVwicXVlc3Rpb25fMlwiPlxuICA8dWwgY2xhc3M9XCJxdWl6XCI+XG4gICAgPGxpPlxuICAgICAgPHAgY2xhc3M9XCJxdWVzdGlvblwiPlNoYW5kcmEgaGFzIGJlZW4gcHV0dGluZyBvZmYgZG9pbmcgaGVyIGhvbWV3b3JrIHVudGlsIGxhdGUgYXQgbmlnaHQgd2hlbiBzaGUgaXMgdGlyZWQuIFNoZSBnZXRzIHBvb3IgZ3JhZGVzLiBXaGVuIE1vbSBhc2tzIGhlciB0byBzdGFydCBoZXIgaG9tZXdvcmsgZWFybGllciwgU2hhbmRyYSBhbmdyaWx5IHNheXMgdG8gZ2V0IG9mZiBoZXIgY2FzZS4gIE1vbSBzYXlzOiAgPC9wPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwiY2xlYXJmaXhcIj5cbiAgICAgIDxzcGFuIGlkPVwiYW5zd2VyXzZcIiBjbGFzcz1cImNvcnJlY3RcIj5Db3JyZWN0PC9zcGFuPlxuICAgICAgPGxhYmVsIGZvcj1cImFuc3dlcl82XCI+YSkgWW91IGRvbuKAmXQgbGlrZSBpdCB3aGVuIEkgYW0gdGhlIGhvbWV3b3JrIHJlbWluZGVyIG1hY2hpbmUuPC9sYWJlbD5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNsZWFyZml4XCI+XG4gICAgICA8c3BhbiBpZD1cImFuc3dlcl83XCIgY2xhc3M9XCJpbmNvcnJlY3RcIj5JbmNvcnJlY3Q8L3NwYW4+XG4gICAgICA8bGFiZWwgZm9yPVwiYW5zd2VyXzdcIj5iKSBIb21ld29yayBpcyBub3QgYSBwdW5pc2htZW50LiBObyBvbmUgbGlrZXMgdG8gZG8gaXQsIGJ1dCB3ZSBhbGwgaGFkIHRvLiA8L2xhYmVsPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwiY2xlYXJmaXhcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaW5jb3JyZWN0XCI+SW5jb3JyZWN0IGFuc3dlcjwvc3Bhbj5cbiAgICAgIDxsYWJlbCBmb3I9XCJhbnN3ZXJfOFwiPmMpICBZb3Ugd291bGQgYmUgbGVzcyBmcnVzdHJhdGVkIGlmIHlvdSBzdGFydGVkIGVhcmxpZXIuPC9sYWJlbD5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNsZWFyZml4XCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInF1ZXN0aW9uXzlcIiBpZD1cImFuc3dlcl85XCIgdmFsdWU9XCI5XCI+XG4gICAgICA8bGFiZWwgZm9yPVwiYW5zd2VyXzlcIj5kKSBJJ20gc29ycnksIEkgc2hvdWxkIG5vdCBoYXZlIHByZXNzdXJlZCB5b3UuPC9sYWJlbD5cbiAgICA8L2xpPlxuICA8L3VsPlxuICA8ZGl2IGlkPVwiY2hlY2tfYW5zd2VyXCIgY2xhc3M9XCJjbGVhcmZpeFwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gcmVkXCI+Q2hlY2sgQW5zd2VyPC9idXR0b24+XG4gIDwvZGl2PlxuICA8cCBjbGFzcz1cImZlZWRiYWNrXCI+PHNwYW4gY2xhc3M9XCJpbmNvcnJlY3RcIj5JbmNvcnJlY3Q6PC9zcGFuPiBNb20gZ2l2ZXMgYWR2aWNlIGluc3RlYWQgb2YgcmVmbGVjdGluZy48L3A+XG48L3NlY3Rpb24+XG5cblN0eWxlZ3VpZGUgMy4yMS4yXG4qL1xuLnNraWxscy1wcmFjdGljZSB1bCB7XG4gIG1hcmdpbjogMCAxOHB4OyB9XG4gIC5za2lsbHMtcHJhY3RpY2UgdWwgbGkge1xuICAgIG1hcmdpbjogMCAwIDE4cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGVzbW9rZSB1cmwoXCJpbWFnZXMvc2tpbGxzcHJhY3RpY2UtaW5jb21wbGV0ZS5wbmdcIikgN3B4IDdweCBuby1yZXBlYXQ7IH1cbiAgICAuc2tpbGxzLXByYWN0aWNlIHVsIGxpOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7IH1cbiAgICAuc2tpbGxzLXByYWN0aWNlIHVsIGxpLmNvbXBsZXRlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1NCwgMTg2LCA1NiwgMC4yKSB1cmwoXCJpbWFnZXMvc2tpbGxzcHJhY3RpY2UtY29tcGxldGUucG5nXCIpIDdweCA3cHggbm8tcmVwZWF0OyB9XG4gICAgLnNraWxscy1wcmFjdGljZSB1bCBsaSBwIHtcbiAgICAgIHBhZGRpbmc6IDAgMmVtIC41ZW0gMy41ZW07IH1cbiAgICAgIC5za2lsbHMtcHJhY3RpY2UgdWwgbGkgcCBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5za2lsbHMtcHJhY3RpY2UgdWwgbGkgYSB7XG4gICAgICBwYWRkaW5nOiAuNWVtIDFlbSAwZW0gMi41ZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgfVxuXG4ucXVpel9xdWVzdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0YyRjJGMjtcbiAgbWFyZ2luOiAxOHB4O1xuICBwYWRkaW5nOiAxOHB4OyB9XG4gIC5xdWl6X3F1ZXN0aW9uIC5mZWVkYmFjayB7XG4gICAgbWFyZ2luLXRvcDogMThweDsgfVxuICAucXVpel9xdWVzdGlvbiB1bC5xdWl6IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICAgIC5xdWl6X3F1ZXN0aW9uIHVsLnF1aXogbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5xdWl6X3F1ZXN0aW9uIHVsLnF1aXogbGkgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICAucXVpel9xdWVzdGlvbiB1bC5xdWl6IFt0eXBlPXJhZGlvXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMCAwIDI1cHg7XG4gICAgbWFyZ2luOiA5cHggOXB4IDAgMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnF1aXpfcXVlc3Rpb24gdWwucXVpeiBsYWJlbCB7XG4gICAgZmxleDogMTtcbiAgICBsaW5lLWhlaWdodDogMS42MmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICAucXVpel9xdWVzdGlvbiB1bC5xdWl6IHNwYW4ge1xuICAgIGZsZXg6IDAgMCAyNXB4O1xuICAgIG1hcmdpbjogNC41cHggOXB4IDAgMDsgfVxuICAgIC5xdWl6X3F1ZXN0aW9uIHVsLnF1aXogc3Bhbi5jb3JyZWN0IHtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9za2lsbHNwcmFjdGljZS1jb3JyZWN0LnBuZ1wiKSBuby1yZXBlYXQ7XG4gICAgICB3aWR0aDogMjVweDtcbiAgICAgIGhlaWdodDogMThweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4OyB9XG4gICAgLnF1aXpfcXVlc3Rpb24gdWwucXVpeiBzcGFuLmluY29ycmVjdCB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvc2tpbGxzcHJhY3RpY2UtaW5jb3JyZWN0LnBuZ1wiKSBuby1yZXBlYXQ7XG4gICAgICB3aWR0aDogMTlweDtcbiAgICAgIGhlaWdodDogMTlweDtcbiAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4OyB9XG4gIC5xdWl6X3F1ZXN0aW9uIHNwYW4uaW5jb3JyZWN0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogI2IyMDAwMDsgfVxuICAucXVpel9xdWVzdGlvbiBzcGFuLmNvcnJlY3Qge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAjMmQ1ZjAwOyB9XG4gIC5xdWl6X3F1ZXN0aW9uIC5xdWVzdGlvbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICMyNjExMWE7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7IH1cbiAgLnF1aXpfcXVlc3Rpb24gI2NoZWNrX2Fuc3dlciB7XG4gICAgcGFkZGluZy10b3A6IDE4cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGMkYyRjI7IH1cbiAgICAucXVpel9xdWVzdGlvbiAjY2hlY2tfYW5zd2VyIC5idXR0b24ge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAucXVpel9xdWVzdGlvbiAjY2hlY2tfYW5zd2VyIC5idXR0b24ge1xuICAgICAgICAgIHBhZGRpbmc6IDlweCAxOHB4O1xuICAgICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQwMHB4KSB7XG4gIC5xdWl6X3F1ZXN0aW9uX3Jlc291cmNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG4ucXVpel9xdWVzdGlvbl9yZXNvdXJjZSAudGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLnF1aXpfcXVlc3Rpb25fcmVzb3VyY2UgLmltYWdlIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1hcmdpbi1yaWdodDogMThweDsgfVxuXG4ucXVpel9xdWVzdGlvbl9yZXNvdXJjZSAuZGVzY3JpcHRpb24ge1xuICBmbGV4OiAxIDEgYXV0bzsgfVxuXG4ucXVpel9xdWVzdGlvbl9yZXNvdXJjZSAuZmlsZV9uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLnF1aXpfcXVlc3Rpb25fcmVzb3VyY2UgLmFjdGlvbiB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRjJGMkYyO1xuICBtYXJnaW4tdG9wOiA5cHg7XG4gIHBhZGRpbmctdG9wOiAxOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDM2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDM2cHg7IH1cblxuLnF1aXpfcXVlc3Rpb25fcmVzb3VyY2UgLmJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogOXB4O1xuICBwYWRkaW5nLXRvcDogOXB4OyB9XG5cbi5uZXh0X3NraWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvIDE4cHg7IH1cblxuLypcblN0YXRlIFJlcXVpcmVtZW50c1xuXG5NYXJrdXA6XG48c2VjdGlvbiBjbGFzcz1cInN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGVcIj5cbiAgPHVsPlxuICAgIDxsaSBjbGFzcz1cImNvbXBsZXRlXCI+XG4gICAgICA8aDM+TU4gQ2hpbGQgQ3VzdG9keSAmYW1wOyBQYXJlbnRpbmcgVGltZSAoVmlzaXRhdGlvbik8L2gzPlxuICAgICAgPHA+PC9wPlxuICAgICAgPHVsPlxuICAgICAgICA8bGkgY2xhc3M9XCJjb21wbGV0ZVwiPlxuICAgICAgICAgIDxoND5SZWFkOiAgQmFzaWNzIG9uIENoaWxkIEN1c3RvZHkgJmFtcDsgUGFyZW50aW5nIFRpbWUgKFZpc2l0YXRpb24pPC9oND5cbiAgICAgICAgICA8cD5IZXJlIHlvdSB3aWxsIGxlYXJuIG1vcmUgYWJvdXQgKDEpIFR5cGVzIG9mIEN1c3RvZHkgaW4gTWlubmVzb3RhOyAoMikgV2hhdCBpcyBcInBhcmVudGluZyB0aW1lP1wiOyAoMykgR29pbmcgdG8gQ291cnQgd2l0aG91dCBhIGxhd3llcjsgKDQpIEZlZXMgYW5kIENvc3RzOyBhbmQgbXVjaCBtb3JlITwvcD5cbiAgICAgICAgICA8YSBocmVmPVwiaHR0cDovL3d3dy5tbmNvdXJ0cy5nb3Yvc2VsZmhlbHAvP3BhZ2U9MTgxMFwiIGlkPVwiMTdcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImJ1dHRvblwiPlZpZXcgUmVzb3VyY2U8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cImNvbXBsZXRlXCI+XG4gICAgICAgICAgPGg0PlJlYWQ6ICBBIFBhcmVudGFsIEd1aWRlIHRvIE1ha2luZyBDaGlsZC1Gb2N1c2VkIFBhcmVudGluZyBUaW1lIERlY2lzaW9uczwvaDQ+XG4gICAgICAgICAgPHA+UHJlcGFyZWQgYnkgdGhlIE1OIFN1cHJlbWUgQ291cnQgVGFzayBGb3JjZSAtLSBwcm92aWRlcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIGFnZSBhcHByb3ByaWF0ZSBjb25zaWRlcmF0aW9ucyBiYXNlZCBvbiB0aGUgZGV2ZWxvcG1lbnRhbCBzdGFnZXMgb2YgeW91ciBjaGlsZC4gIDwvcD5cbiAgICAgICAgICA8YSBocmVmPVwiaHR0cDovL29ubGluZS5kaXZvcmNlLWVkdWNhdGlvbi5jb20vbWVkaWEvY21zL3BkZi9QYXJlbnRpbmclMjAlMjBUaW1lJTIwUGFtcGhsZXQlMjAoTU4lMjBBT0MpJTIwRW5nbGlzaC5wZGZcIiBpZD1cIjE5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJidXR0b25cIj5WaWV3IFJlc291cmNlPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImluY29tcGxldGVcIj5cbiAgICAgIDxoMz5DaGlsZCBTdXBwb3J0IEluIE1pbm5lc290YTwvaDM+XG4gICAgICA8cD48L3A+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaSBjbGFzcz1cImluY29tcGxldGVcIj5cbiAgICAgICAgICA8aDQ+UmVhZDogIENoaWxkIFN1cHBvcnQgQmFzaWNzIGluIE1pbm5lc290YTwvaDQ+XG4gICAgICAgICAgPHA+VGhpcyBib29rbGV0IHByb3ZpZGVzIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IGhvdyBjaGlsZCBzdXBwb3J0IGlzIHNldCwgY29sbGVjdGVkIGFuZCBjaGFuZ2VkLiBJdCBoYXMgaW5mb3JtYXRpb24gb24gTWlubmVzb3Rh4oCZcyBjaGlsZCBzdXBwb3J0IGd1aWRlbGluZXMgY2FsbGVkIOKAnEluY29tZSBTaGFyZXMu4oCdIDwvcD5cbiAgICAgICAgICA8YSBocmVmPVwiaHR0cDovL29ubGluZS5kaXZvcmNlLWVkdWNhdGlvbi5jb20vbWVkaWEvY21zL3BkZi9NTiUyMExlZ2FsJTIwQWlkJTIwQm9va2xldCUyMC0lMjBDaGlsZCUyMFN1cHBvcnQlMjBCYXNpY3MlMjAocml2c2VkJTIwN3RoJTIwZWRpdGlvbiUyQyUyMDIwMTIpJTIwRU5HTElTSC5wZGZcIiBpZD1cIjI2XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJidXR0b25cIj5WaWV3IExpbmsgYW5kIENvbXBsZXRlIFJlcXVpcmVtZW50PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJpbmNvbXBsZXRlXCI+XG4gICAgICAgICAgPGg0PlJlYWQ6IFVuZGVyc3RhbmRpbmcgQ2hpbGQgU3VwcG9ydCBpbiBNaW5uZXNvdGE8L2g0PlxuICAgICAgICAgIDxwPlRoaXMgaGFuZGJvb2sgZ2l2ZXMgZ2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCBNaW5uZXNvdGHigJlzIGNoaWxkIHN1cHBvcnQgcHJvZ3JhbS4gQmVjYXVzZSBwYXJlbnRhZ2UgYW5kIGNoaWxkIHN1cHBvcnQgYXJlIGltcG9ydGFudCBpc3N1ZXMsIHlvdSBtYXkgd2lzaCB0byBjb250YWN0IGFuIGF0dG9ybmV5LiBUaGUgTWlubmVzb3RhIERlcGFydG1lbnQgb2YgSHVtYW4gU2VydmljZXMgKERIUykgQ2hpbGQgU3VwcG9ydCBFbmZvcmNlbWVudCBEaXZpc2lvbiBhbmQgY291bnR5IGNoaWxkIHN1cHBvcnQgYWdlbmNpZXMgY2FuIGhlbHAgeW91IGlmIHlvdSBhcHBseSBmb3Igb3IgYXJlIHJlZmVycmVkIGZvciBjaGlsZCBzdXBwb3J0IHNlcnZpY2VzLCBidXQgdGhleSBjYW5ub3QgZ2l2ZSB5b3UgbGVnYWwgYWR2aWNlIGFib3V0IHlvdXIgY2FzZS48L3A+XG4gICAgICAgICAgPGEgaHJlZj1cImh0dHA6Ly9vbmxpbmUuZGl2b3JjZS1lZHVjYXRpb24uY29tL21lZGlhL2Ntcy9wZGYvTU4lMjBESFMlMjAtJTIwVW5kZXJzdGFuZGluZyUyMENoaWxkJTIwU3VwcG9ydCUyMChFTkdMSVNIKSUyMDIwMTEucGRmXCIgaWQ9XCIyOFwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiYnV0dG9uXCI+VmlldyBMaW5rIGFuZCBDb21wbGV0ZSBSZXF1aXJlbWVudDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvc2VjdGlvbj5cblxuU3R5bGVndWlkZSAzLjIyXG4qL1xuLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIC5idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA5cHggMThweDsgfVxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSBoMyxcbiAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgaDQge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgIG1pbi1oZWlnaHQ6IDI1cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAzNnB4OyB9XG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIGgzIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxOHB4IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4O1xuICAgIHBhZGRpbmc6IDAgMThweCAwIDU0cHg7IH1cbiAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgaDQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7XG4gICAgcGFkZGluZy10b3A6IDNweDsgfVxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSB1bCA+IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSB1bCA+IGxpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxOHB4OyB9XG4gICAgICAgIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIHVsID4gbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG4gICAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgdWwgPiBsaSBwIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxOHB4OyB9XG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIHVsIHVsIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICBtYXJnaW4tdG9wOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSB1bCB1bCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzNnB4OyB9IH1cbiAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgbGkgbGkge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW4tYm90dG9tOiAzNnB4O1xuICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSBsaSBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSBsaSBsaSBwLFxuICAgIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIGxpIGxpIC5idXR0b24ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDM2cHg7IH1cbiAgICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSBsaSBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAzNnB4OyB9XG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIC5yZXF1aXJlbWVudHMtbGlzdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4OyB9XG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIC5pbmNvbXBsZXRlID4gaDMsXG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIC5pbmNvbXBsZXRlID4gaDQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy9jaGVjay1pbmNvbXBsZXRlLnBuZ1wiKTsgfVxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSAuY29tcGxldGUgPiBoMyxcbiAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgLmNvbXBsZXRlID4gaDQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy9jaGVjay1jb21wbGV0ZS5wbmdcIik7IH1cblxuLypcblRleHQgQ29udGFpbmVyXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwidGV4dC1jb250YWluZXIgbC1jb250YWluZXJob3Jpem9udGFsIGwtY29udGFpbmVyaG9yaXpvbnRhbC1zbWFsbFwiPlxuICA8aDE+SFRNTCBJcHN1bSBQcmVzZW50czwvaDE+XG4gIDxwPjxzdHJvbmc+UGVsbGVudGVzcXVlIGhhYml0YW50IG1vcmJpIHRyaXN0aXF1ZTwvc3Ryb25nPiBzZW5lY3R1cyBldCBuZXR1cyBldCBtYWxlc3VhZGEgZmFtZXMgYWMgdHVycGlzIGVnZXN0YXMuIFZlc3RpYnVsdW0gdG9ydG9yIHF1YW0sIGZldWdpYXQgdml0YWUsIHVsdHJpY2llcyBlZ2V0LCB0ZW1wb3Igc2l0IGFtZXQsIGFudGUuIERvbmVjIGV1IGxpYmVybyBzaXQgYW1ldCBxdWFtIGVnZXN0YXMgc2VtcGVyLiA8ZW0+QWVuZWFuIHVsdHJpY2llcyBtaSB2aXRhZSBlc3QuPC9lbT4gTWF1cmlzIHBsYWNlcmF0IGVsZWlmZW5kIGxlby4gUXVpc3F1ZSBzaXQgYW1ldCBlc3QgZXQgc2FwaWVuIHVsbGFtY29ycGVyIHBoYXJldHJhLiBWZXN0aWJ1bHVtIGVyYXQgd2lzaSwgY29uZGltZW50dW0gc2VkLCA8Y29kZT5jb21tb2RvIHZpdGFlPC9jb2RlPiwgb3JuYXJlIHNpdCBhbWV0LCB3aXNpLiBBZW5lYW4gZmVybWVudHVtLCBlbGl0IGVnZXQgdGluY2lkdW50IGNvbmRpbWVudHVtLCBlcm9zIGlwc3VtIHJ1dHJ1bSBvcmNpLCBzYWdpdHRpcyB0ZW1wdXMgbGFjdXMgZW5pbSBhYyBkdWkuIDxhIGhyZWY9XCIjXCI+RG9uZWMgbm9uIGVuaW08L2E+IGluIHR1cnBpcyBwdWx2aW5hciBmYWNpbGlzaXMuIFV0IGZlbGlzLjwvcD5cbiAgPGgyPkhlYWRlciBMZXZlbCAyPC9oMj5cbiAgPG9sPlxuICAgIDxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dWVyIGFkaXBpc2NpbmcgZWxpdC48L2xpPlxuICAgIDxsaT5BbGlxdWFtIHRpbmNpZHVudCBtYXVyaXMgZXUgcmlzdXMuPC9saT5cbiAgPC9vbD5cbiAgPGJsb2NrcXVvdGU+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gVml2YW11cyBtYWduYS4gQ3JhcyBpbiBtaSBhdCBmZWxpcyBhbGlxdWV0IGNvbmd1ZS4gVXQgYSBlc3QgZWdldCBsaWd1bGEgbW9sZXN0aWUgZ3JhdmlkYS4gQ3VyYWJpdHVyIG1hc3NhLiBEb25lYyBlbGVpZmVuZCwgbGliZXJvIGF0IHNhZ2l0dGlzIG1vbGxpcywgdGVsbHVzIGVzdCBtYWxlc3VhZGEgdGVsbHVzLCBhdCBsdWN0dXMgdHVycGlzIGVsaXQgc2l0IGFtZXQgcXVhbS4gVml2YW11cyBwcmV0aXVtIG9ybmFyZSBlc3QuPC9wPjwvYmxvY2txdW90ZT5cbiAgPGgzPkhlYWRlciBMZXZlbCAzPC9oMz5cbiAgPHVsPlxuICAgIDxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dWVyIGFkaXBpc2NpbmcgZWxpdC48L2xpPlxuICAgIDxsaT5BbGlxdWFtIHRpbmNpZHVudCBtYXVyaXMgZXUgcmlzdXMuPC9saT5cbiAgPC91bD5cbiAgPHByZT48Y29kZT5cbiAgICAjaGVhZGVyIGgxIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgfVxuICA8L2NvZGU+PC9wcmU+XG48L2FydGljbGU+XG5cblN0eWxlZ3VpZGUgMy4yM1xuKi9cbi50ZXh0LWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMThweDtcbiAgcGFkZGluZy1yaWdodDogMThweDsgfVxuICAudGV4dC1jb250YWluZXIgaDEsXG4gIC50ZXh0LWNvbnRhaW5lciBoMixcbiAgLnRleHQtY29udGFpbmVyIGgzLFxuICAudGV4dC1jb250YWluZXIgaDQsXG4gIC50ZXh0LWNvbnRhaW5lciBoNSxcbiAgLnRleHQtY29udGFpbmVyIGg2IHtcbiAgICBsaW5lLWhlaWdodDogMS4yOyB9XG4gIC50ZXh0LWNvbnRhaW5lciBoMSxcbiAgLnRleHQtY29udGFpbmVyIGgyLFxuICAudGV4dC1jb250YWluZXIgaDMsXG4gIC50ZXh0LWNvbnRhaW5lciBoNCxcbiAgLnRleHQtY29udGFpbmVyIGg1LFxuICAudGV4dC1jb250YWluZXIgaDYsXG4gIC50ZXh0LWNvbnRhaW5lciBwLFxuICAudGV4dC1jb250YWluZXIgb2wsXG4gIC50ZXh0LWNvbnRhaW5lciB1bCxcbiAgLnRleHQtY29udGFpbmVyIGJsb2NrcXVvdGUsXG4gIC50ZXh0LWNvbnRhaW5lciBmaWd1cmUsXG4gIC50ZXh0LWNvbnRhaW5lciBhZGRyZXNzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gIC50ZXh0LWNvbnRhaW5lciBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4OyB9XG4gIC50ZXh0LWNvbnRhaW5lciB1bCBsaSB7XG4gICAgbGlzdC1zdHlsZTogZGlzYyBpbnNpZGU7IH1cbiAgLnRleHQtY29udGFpbmVyIG9sIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsIGluc2lkZTsgfVxuICAudGV4dC1jb250YWluZXIgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAudGV4dC1jb250YWluZXIgZW0ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4udGV4dC1jb250YWluZXItcGFkZGluZy1ub25lIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi8qXG50ZXh0LWJvZHktY29sb3JcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cInRleC1ib2R5LWNvbG9yXCI+XG5Cb2R5IHRleHQuXG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjUwXG4qL1xuLnRleHQtYm9keS1jb2xvciB7XG4gIGNvbG9yOiAjNjk2OTY5OyB9XG5cbi52aWRlbyB7XG4gIHBhZGRpbmc6IDAgMThweDtcbiAgbWFyZ2luOiAwIDAgMThweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAudmlkZW8ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzZweDsgfSB9XG5cbi8qXG52aXN1YWxseWhpZGRlblxuXG5WaXN1YWx5IGhpZGVzIGFuIG9iamVjdFxuXG5NYXJrdXA6XG4gIDxkaXY+VGhlIGRpdiBiZWxsb3cgbWUgaXMgaW52aXNpYmxlPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ2aXN1YWxseWhpZGRlblwiPkknbSBpbnZpc2libGU8L2Rpdj5cblxuXG5TdHlsZWd1aWRlIDMuNTRcbiovXG4udmlzdWFsbHloaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDsgfVxuXG4vKlxuVXRpbGl0eTogVGV4dFxuXG5NYXJrdXA6XG48cCBjbGFzcz1cInUtdGV4dC1zbWFsbFwiPlNtYWxsPC9zbWFsbD5cblxuU3R5bGVndWlkZSAzLjU4XG4qL1xuLnUtdGV4dC1zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4vKlxuVW5yZWdpc3RlcmVkIEdpZnRcblxuTWFya3VwOlxuICA8ZGl2IGNsYXNzPVwicGFnZS10aXRsZSB1bnJlZ2lzdGVyZWRHaWZ0XCI+XG4gICAgICA8ZGl2PlxuICAgICAgICAgIDxoMT50aWZhLnRpZmFAZ21haWwuY29tPC9oMT5cbiAgICAgICAgICA8YT5DaGFuZ2UgRW1haWw8L2E+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ1bnJlZ2lzdGVyZWRHaWZ0LXgtZ2lmdEFjY291bnRcIj5HaWZ0IEFjY291bnQ8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ1bnJlZ2lzdGVyZWRHaWZ0LXgtcHVyY2hhc2VcIj5QdXJjaGFzZWQgMDYvMTIvMjAxNiBieSBwYXJlbnRAZXhhbXBsZS5jb208L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ1bnJlZ2lzdGVyZWRHaWZ0LXgtbm90QWN0aXZhdGVkXCI+Tm90IEFjdGl2YXRlZDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInVucmVnaXN0ZXJlZEdpZnQteC1zdGFja2VkQnV0dG9uXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJidXR0b25cIiBocmVmPVwiI1wiPlJlc2VuZCBJbnZpdGU8L2E+XG4gICAgICAgICAgPGEgY2xhc3M9XCJidXR0b25cIiBocmVmPVwiI1wiPkNhbmNlbCBHaWZ0IEludml0ZTwvYT5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuU3R5bGVndWlkZSAzLjQ3XG4qL1xuLnVucmVnaXN0ZXJlZEdpZnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLnVucmVnaXN0ZXJlZEdpZnQgaDEge1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICBsaW5lLWhlaWdodDogMzhweDsgfVxuICAudW5yZWdpc3RlcmVkR2lmdCBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC51bnJlZ2lzdGVyZWRHaWZ0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC51bnJlZ2lzdGVyZWRHaWZ0IHNlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgIC51bnJlZ2lzdGVyZWRHaWZ0IHNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgLnVucmVnaXN0ZXJlZEdpZnQgcC51bnJlZ2lzdGVyZWRHaWZ0LXgtcHVyY2hhc2UsXG4gIC51bnJlZ2lzdGVyZWRHaWZ0IHAudW5yZWdpc3RlcmVkR2lmdC14LWdpZnRBY2NvdW50IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC51bnJlZ2lzdGVyZWRHaWZ0IHAudW5yZWdpc3RlcmVkR2lmdC14LW5vdEFjdGl2YXRlZCB7XG4gICAgbWFyZ2luLXRvcDogMThweDsgfVxuICAudW5yZWdpc3RlcmVkR2lmdCAudW5yZWdpc3RlcmVkR2lmdC14LXN0YWNrZWRCdXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC51bnJlZ2lzdGVyZWRHaWZ0IC51bnJlZ2lzdGVyZWRHaWZ0LXgtc3RhY2tlZEJ1dHRvbiBhOmZpcnN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuXG4vKlxuVXBzZWxsXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwidXBzZWxsXCI+XG4gIDxkaXYgY2xhc3M9XCJ1cHNlbGwteC1pbWFnZVwiPlxuICAgIDxpbWcgc3JjPVwiaHR0cDovL3BsYWNlaG9sZC5pdC8xMjh4OTZcIj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ1cHNlbGwteC10ZXh0XCI+XG4gICAgPGgzPjxhIGhyZWY9XCIjXCI+VXBzZWxsIFRpdGxlPC9hPjwvaDM+XG4gICAgPHA+TG9yZW0gSXBzdW0gaXMgc2ltcGx5IGR1bW15IHRleHQgb2YgdGhlIHByaW50aW5nIGFuZCB0eXBlc2V0dGluZyBpbmR1c3RyeS4gTG9yZW0gSXBzdW0gaGFzIGJlZW4gdGhlIGluZHVzdHJ5J3Mgc3RhbmRhcmQgZHVtbXkgdGV4dCBldmVyIHNpbmNlIHRoZSAxNTAwcy48L3A+XG4gIDwvZGl2PlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDMuNTlcbiovXG4udXBzZWxsIGgzIHtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbi51cHNlbGwgcCB7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDAwcHgpIHtcbiAgLnVwc2VsbCB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIC51cHNlbGwgLnVwc2VsbC14LWltYWdlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyB9XG4gICAgLnVwc2VsbCAudXBzZWxsLXgtdGV4dCB7XG4gICAgICBmbGV4OiAxIDEgMTAwJTsgfSB9XG5cbi8qXG5XcmFwXG5cbldyYXAgaXMgdXNlZCB0byBzZXQgdGhlIGJhY2tncm91bmQgLyB0ZXh0IGNvbG9yIG9mIGFuIGl0ZW0uXG5cbkRlZmF1bHQgLSBXaGl0ZSBiYWNrZ3JvdW5kXG4ud3JhcC1icmFuZGRhcmsgLSBEYXJrIGJyYW5kIGNvbG9yXG4ud3JhcC1saWdodGdyZXkgLSBBIGxpZ2h0IGdyZXkgYmFja2dyb3VuZFxuLndyYXAtY291cnNlIC0gV3JhcHMgdGhlIGNvdXJzZSBjb250ZW50ICh2aWRlb3MsIHF1aXplcywgZXRjKVxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwid3JhcCB7JG1vZGlmaWVyc31cIj5JIGFtIHdyYXBwZWQ8L2Rpdj5cblxuU3R5bGVndWlkZSAzLjMzXG4qL1xuLndyYXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi53cmFwLWJyYW5kZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNTVhNzY7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi53cmFwLWxpZ2h0Z3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7IH1cblxuLndyYXAtY291cnNlIHtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAud3JhcC1jb3Vyc2Uge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjUpOyB9IH1cblxuLypcbk1vZHVsZSBSdWxlcyAoTWFya2V0aW5nKVxuXG5TdHlsZWd1aWRlIDQuMFxuKi9cbi8qXG5CdXR0b24gQ2FsbG91dFxuXG5NYXJrdXA6XG48c2VjdGlvbiBjbGFzcz1cImwtd3JhcCB3cmFwIGJ1dHRvbmNhbGxvdXRcIj5cbiAgPGEgaHJlZj1cIlwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcGNcIj5TaWduIFVwIE5vdzwvYT5cbiAgPHA+R3VhcmFudGVlZCBhY2NlcHRhbmNl4oCoaW4gTWFyaWNvcGEgQ291bnR5LCBBcml6b25hITwvcD5cbjwvc2VjdGlvbj5cblxuU3R5bGVndWlkZSA0LjJcbiovXG4uYnV0dG9uY2FsbG91dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuYnV0dG9uY2FsbG91dCBwIHtcbiAgICBjb2xvcjogIzE1NWE3NjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbi10b3A6IDE4cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5idXR0b25jYWxsb3V0IHAge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiAzMzdweDsgfSB9XG5cbi8qXG5Db3Vyc2UgT3ZlcnZpZXdcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtd3JhcCB3cmFwIGNvdXJzZW92ZXJ2aWV3XCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwiY2hhcHRlcnNcIj5cbiAgICA8aDI+Q292ZXJlZCBpbiB0aGUgY291cnNlPC9oMj5cbiAgICA8dWw+XG4gICAgICA8bGk+TW9uZXkgUHJvYmxlbXM8L2xpPlxuICAgICAgPGxpPkNoaWxkcmVuIENhcnJ5aW5nIE1lc3NhZ2VzPC9saT5cbiAgICAgIDxsaT5QdXR0aW5nIERvd24gdGhlIE90aGVyIFBhcmVudDwvbGk+XG4gICAgICA8bGk+TG9uZyBEaXN0YW5jZSBQYXJlbnRpbmc8L2xpPlxuICAgICAgPGxpPlF1aXp6aW5nIENoaWxkcmVuIEFib3V0IHRoZSBPdGhlciBQYXJlbnQ8L2xpPlxuICAgIDwvdWw+XG4gIDwvc2VjdGlvbj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJwcmFpc2VcIiBpZD1cInByYWlzZVwiPlxuICAgIDxoMj5QcmFpc2UgZm9yIENoaWxkcmVuIEluIEJldHdlZW48L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJzbGlkZXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxibG9ja3F1b3RlPlxuICAgICAgICAgIDxoND5cIkNoaWxkcmVuIGluIEJldHdlZW4gT25saW5lIG1hZGUgbWUgdGhpbmsgdmVyeSBoYXJkIGFib3V0IG15IGFjdGlvbnMgd2l0aCBteSBzb29uIHRvIGJlIGV4LXNwb3VzZSBhbmQgd2hhdCBpcyBiZXN0IGZvciBvdXIgc29uLlwiPC9oND5cbiAgICAgICAgICA8Y2l0ZT5Nb2xseSBEZXZlciwgU2hlcGhlcmRzdmlsbGUsIEtZPC9jaXRlPlxuICAgICAgICA8L2Jsb2NrcXVvdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxibG9ja3F1b3RlPlxuICAgICAgICAgIDxoND5cIlRoaXMgcHJvZ3JhbSB3YXMgcmVjb21tZW5kZWQgYnkgb3VyIGNvLXBhcmVudGluZyBjb3Vuc2Vsb3IgYW5kIEkgd291bGQgcmVjb21tZW5kIGl0IHRvIG90aGVyIGNvdXBsZXMgd2hvIGFyZSB0aGlua2luZyBhYm91dCBvciBnZXR0aW5nIGEgZGl2b3JjZSBpbnZvbHZpbmcgY2hpbGRyZW4uICBJbiBmYWN0LCBJIGhhdmUgcmVjb21tZW5kZWQgaXQgdG8gb25lIG9mIG15IGNvLXdvcmtlcnMgYWxyZWFkeS4gV2hhdCB3YXMgbW9zdCB1c2VmdWwgZm9yIG1lIHdhcyB0aGUgZGlmZmVyZW50IHRlY2huaXF1ZXMgb2YgY29tbXVuaWNhdGlvbiAtIHNlbGYgdGFsaywgXCJJXCIgc3RhdGVtZW50cywgZXRjLlwiPC9oND5cbiAgICAgICAgICA8Y2l0ZT5EaWFuZSBIb2RnZXMsIEZhaXJiYW5rcywgQUs8L2NpdGU+XG4gICAgICAgIDwvYmxvY2txdW90ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGJsb2NrcXVvdGU+XG4gICAgICAgICAgPGg0PlwiQWZ0ZXIgdGFraW5nIENJQk8gYW5kIHB1dHRpbmcgdGhlIHNraWxscyBJIGxlYXJuZWQgaW50byBwcmFjdGljZSwgbXkga2lkcyBhcmUgbXVjaCBtb3JlIGF0IGVhc2UgYW5kIGtub3cgdGhhdCB0aGV5IGNhbiB0YWxrIHRvIGRhZGR5IGFib3V0IGFueXRoaW5nLCBhbmQgaXQncyBPSy4gSSByZWNvbW1lbmQgdGhpcyBjbGFzcyB0byBldmVyeW9uZSFcIjwvaDQ+XG4gICAgICAgICAgPGNpdGU+UmljaGFyZCBEZW1hcmNvLCBHcmFudHMgUGFzcywgT3JlZ29uPC9jaXRlPlxuICAgICAgICA8L2Jsb2NrcXVvdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxibG9ja3F1b3RlPlxuICAgICAgICAgIDxoND5cIldlJ3ZlIGJlZW4gdXNpbmcgQ2hpbGRyZW4gSW4gQmV0d2VlbiBwcm9ncmFtIGRpc3RyaWJ1dGVkIGJ5IHRoZSBDZW50ZXIgZm9yIERpdm9yY2UgRWR1Y2F0aW9uIGZvciAxMCB5ZWFycy4gSXQncyBiZWVuIGxpZmUgY2hhbmdpbmcgZm9yIHNvIG1hbnkgZmFtaWxpZXMhXCI8L2g0PlxuICAgICAgICAgIDxjaXRlPkRvYWsgR2l2YW4sIEV4ZWN1dGl2ZSBEaXJlY3RvciBvZiBGYW1pbHkgU2VydmljZXMgQ2VudGVyLCBJbmMuPC9jaXRlPlxuICAgICAgICA8L2Jsb2NrcXVvdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxibG9ja3F1b3RlPlxuICAgICAgICAgIDxoND5cIkkgaGlnaGx5IHJlY29tbWVuZCBDSUJPIHRvIGFueW9uZSB3aG8gd2FudHMgdG8gaGF2ZSBhIGNsb3NlciwgbW9yZSByZXNwZWN0ZnVsIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvdGhlciBwYXJlbnQgYW5kIGNoaWxkcmVuLlwiPC9oND5cbiAgICAgICAgICA8Y2l0ZT5Kb2huIFBhcmtlciwgUm9zZWJ1cmcsIE9yZWdvbjwvY2l0ZT5cbiAgICAgICAgPC9ibG9ja3F1b3RlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YmxvY2txdW90ZT5cbiAgICAgICAgICA8aDQ+XCJFeGNlbGxlbnQuLi5TdXBlcmIuLi5JIHdhcyBpbXByZXNzZWQgd2l0aCB0aGUgcXVhbGl0eS5cIjwvaDQ+XG4gICAgICAgICAgPGNpdGU+SG9uLiBDaGVyeWwgS2FybmVyLCBEb21lc3RpYyBSZWxhdGlvbnMgSnVkZ2U8L2NpdGU+XG4gICAgICAgIDwvYmxvY2txdW90ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuU3R5bGVndWlkZSA0LjNcbiovXG4uY291cnNlb3ZlcnZpZXcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5jb3Vyc2VvdmVydmlldyA+ICoge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDAsIDE3MywgMjI3LCAwLjUpO1xuICAgIHBhZGRpbmc6IDM2cHggNTRweDsgfVxuICAgIC5jb3Vyc2VvdmVydmlldyA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAgIC5jb3Vyc2VvdmVydmlldyA+ICouY2hhcHRlcnMgdWwge1xuICAgICAgbWFyZ2luLXRvcDogMmVtOyB9XG4gICAgICAuY291cnNlb3ZlcnZpZXcgPiAqLmNoYXB0ZXJzIHVsIGxpIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBwYWRkaW5nOiAuNzVlbSAwO1xuICAgICAgICBjb2xvcjogIzI4YWRlMzsgfVxuICAgIC5jb3Vyc2VvdmVydmlldyA+ICoucHJhaXNlIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIHBhZGRpbmc6IC41ZW07IH1cbiAgICAuY291cnNlb3ZlcnZpZXcgPiAqLnByYWlzZSBkaXYuc2xpZGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDJlbTsgfVxuICAgICAgLmNvdXJzZW92ZXJ2aWV3ID4gKi5wcmFpc2UgZGl2LnNsaWRlciBoNCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICAgIC5jb3Vyc2VvdmVydmlldyA+ICogaDIge1xuICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgY29sb3I6ICMxNTVhNzY7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMSwgOTAsIDExOCwgMC4yNSk7XG4gICAgICBwYWRkaW5nOiAuNWVtIDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLmNvdXJzZW92ZXJ2aWV3IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAgIC5jb3Vyc2VvdmVydmlldyA+ICoge1xuICAgICAgICBmbGV4OiAwIDAgNTAlOyB9XG4gICAgICAgIC5jb3Vyc2VvdmVydmlldyA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyB9XG4gICAgICAgIC5jb3Vyc2VvdmVydmlldyA+ICoucHJhaXNlIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDUwJTsgfSB9XG5cbi8qXG5DVEFcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImN0YSBsLXdyYXBcIj5cbiAgPGEgY2xhc3M9XCJidXR0b25cIiBocmVmPVwiI1wiPlNpZ24tVXA8L2E+XG48L2Rpdj5cblxuU3R5bGVndWlkZSA0LjRcbiovXG4uY3RhIGEge1xuICBmb250LXNpemU6IDE4cHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAuY3RhIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogMjkwcHg7IH0gfVxuXG4vKlxuQ1RBIEF1ZGllbmNlXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJjdGFhdWRpZW5jZSBsLXdyYXAgbC13cmFwLXNwYW5tb2JpbGVcIj5cbiAgPGEgaHJlZj1cIiNcIj5cbiAgICA8aW1nIHNyYz1cIi9pbWFnZXMvaG9tZXBhZ2UtYXVkaWVuY2UtYXR0b3JuZXlzLnN2Z1wiIGFsdD1cIlNjYWxlcyBvZiBqdXN0aWNlXCIgd2lkdGg9XCI2NlwiIGhlaWdodD1cIjUyXCI+XG4gICAgPGgxPkZvciBBdHRvcm5leXM8L2gxPlxuICAgIDxwPkNoaWxkcmVuIGluIEJldHdlZW4gT25saW5lIG9mZmVycyB5b3VyIGNsaWVudHMgYSBmYW50YXN0aWMgYW5kIHByby1hY3RpdmUgd2F5IHRvIGhlbHAgdGhlaXIga2lkcyB0aHJvdWdodCB0aGlzIHRvdWdoIHRpbWUuIFRoaXMgaXMgYSBxdWljayB3aW4gZm9yIHlvdS48L3A+XG4gIDwvYT5cbiAgPGEgaHJlZj1cIiNcIj5cbiAgICA8aW1nIHNyYz1cIi9pbWFnZXMvaG9tZXBhZ2UtYXVkaWVuY2UtY291cnRzLnN2Z1wiIGFsdD1cIkdhdmVsXCIgd2lkdGg9XCI1OFwiIGhlaWdodFwiNTJcIj5cbiAgICA8aDE+Rm9yIENvdXJ0czwvaDE+XG4gICAgPHA+VGhlIGJlc3Qgb25saW5lIHBhcmVudGluZyBjb3Vyc2UgbWFrZXMgaXQgZWFzeSBmb3IgcmVzaWRlbnRzIGluIHlvdXIganVyaXNkaWN0aW9uIHRvIGdldCBxdWFsaXR5IGRpdm9yY2UgZWR1Y2F0aW9uIGV2ZW4gd2hlbiB0aGV5IGNhbuKAmXQgbWFrZSBpdCB0byBhbiBpbi1wZXJzb24gY2xhc3MuPC9wPlxuICA8L2E+XG48L2Rpdj5cblxuU3R5bGVndWlkZSA0LjVcbiovXG4uY3RhYXVkaWVuY2Uge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgYmFja2dyb3VuZDogIzI4YWRlMztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuY3RhYXVkaWVuY2UgYSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHBhZGRpbmc6IDM2cHggMThweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY3RhYXVkaWVuY2UgYTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDlweCBzb2xpZCAjZmZmOyB9XG4gICAgLmN0YWF1ZGllbmNlIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE5OGZiZjsgfVxuICAuY3RhYXVkaWVuY2UgaW1nIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgLmN0YWF1ZGllbmNlIGgxIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNC41cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLmN0YWF1ZGllbmNlIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAgIC5jdGFhdWRpZW5jZSBhIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDcycHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1NHB4OyB9XG4gICAgICAgIC5jdGFhdWRpZW5jZSBhOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMi4yNXB4IHNvbGlkICNmZmY7IH1cbiAgICAgICAgLmN0YWF1ZGllbmNlIGE6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDIuMjVweCBzb2xpZCAjZmZmOyB9IH1cblxuLypcbkNUQSBPdmVydmlld1xuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC1jaGlsZHJlbnZlcnRpY2FsLXgtZXhjbHVkZSBjdGFvdmVydmlldyBsLXdyYXAgbC13cmFwLXNwYW5tb2JpbGVcIj5cbiAgPHNlY3Rpb24+XG4gICAgPGgxPkNoaWxkcmVuIGluIEJldHdlZW48L2gxPlxuICAgIDxoMj5BIENvLVBhcmVudGluZyBQcm9ncmFtIGZvciBEaXZvcmNpbmcgYW5kIFNlcGFyYXRpbmcgUGFyZW50cy48L2gyPlxuICAgIDx1bD5cbiAgICAgIDxsaT5JbnN0YW50IFByaW50YWJsZSBDZXJ0aWZpY2F0ZSB1cG9uIGNvbXBsZXRpb248L2xpPlxuICAgICAgPGxpPk5vIG5lZWQgdG8gdGFrZSBhbiBpbi1wZXJzb24gY2xhc3M8L2xpPlxuICAgICAgPGxpPkNvbXBsZXRlIHRoZSBjb3Vyc2UgMTAwJSBvbmxpbmU8L2xpPlxuICAgICAgPGxpPkFjY2Vzc2libGUgMjQvNzwvbGk+XG4gICAgICA8bGk+T25seSAzLTUgaG91cnMgdG8gY29tcGxldGU8L2xpPlxuICAgICAgPGxpPlBheSBubyBtb3JlIHRoYW4gJDQ1Ljk1PC9saT5cbiAgICA8L3VsPlxuICAgIDxkaXY+XG4gICAgICA8YSBocmVmPVwiXCIgY2xhc3M9XCJidXR0b25cIj5TaWduLVVwIE5vdzwvYT5cbiAgICAgIDxpbWcgc3Jjc2V0PVwiL2ltYWdlcy9ob21lcGFnZS1jdGFvdmVydmlldy1jb3VydGFjY2VwdGVkLTJ4LnBuZyAyeFwiIHNyYz1cIi9pbWFnZXMvaG9tZXBhZ2UtY3Rhb3ZlcnZpZXctY291cnRhY2NlcHRlZC5wbmdcIiBhbHQ9XCJDb3VydCBBY2NlcHRlZCwgMTAwJSBHdXJhbnRlZWQgU2VhbFwiIHdpZHRoPVwiMTUwXCIgaGVpZ2h0PVwiMTUwXCI+XG4gICAgICA8cD5JbnN0YW50IENlcnRpZmljYXRlITxicj4gR3VyYW50ZWVkIENvdXJ0IEFwcHJvdmFsPC9wPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuU3R5bGVndWlkZSA0LjZcbiovXG4uY3Rhb3ZlcnZpZXcge1xuICBsaW5lLWhlaWdodDogMS4xNjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jdGFvdmVydmlldzo6YmVmb3JlLCAuY3Rhb3ZlcnZpZXc6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDsgfVxuICAuY3Rhb3ZlcnZpZXc6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL2N0YW92ZXJ2aWV3LXdvbWFuYW5kY2hpbGQucG5nXCIpO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbGVmdDogMDsgfVxuICAuY3Rhb3ZlcnZpZXc6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvY3Rhb3ZlcnZpZXctbWFuYW5kY2hpbGQucG5nXCIpO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jdGFvdmVydmlldyBzZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCA1MiwgNjksIDAuODUpO1xuICAgIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC41KSAwIDJweCA0cHggMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDM2cHggMThweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC41KSAwIDJweCA0cHg7XG4gICAgei1pbmRleDogNTA7IH1cbiAgICAuY3Rhb3ZlcnZpZXcgc2VjdGlvbiBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgICB3aWR0aDogMzIlOyB9XG4gIC5jdGFvdmVydmlldyBoMSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNC41cHg7IH1cbiAgLmN0YW92ZXJ2aWV3IGgyIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAuY3Rhb3ZlcnZpZXcgdWwge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyN3B4OyB9XG4gICAgLmN0YW92ZXJ2aWV3IHVsIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGU6IGRpc2Mgb3V0c2lkZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQuNXB4OyB9XG4gIC5jdGFvdmVydmlldyBhIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLXRvcDogNyU7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDY1JTsgfVxuICAuY3Rhb3ZlcnZpZXcgZGl2IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY3Rhb3ZlcnZpZXcgZGl2IHAge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICAuY3Rhb3ZlcnZpZXc6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvY3Rhb3ZlcnZpZXctd29tYW5hbmRjaGlsZC0yeC5wbmdcIik7IH1cbiAgICAuY3Rhb3ZlcnZpZXc6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy9jdGFvdmVydmlldy1tYW5hbmRjaGlsZC0yeC5wbmdcIik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAuY3Rhb3ZlcnZpZXcge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgICAgLmN0YW92ZXJ2aWV3OjpiZWZvcmUsIC5jdGFvdmVydmlldzo6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogNTAlOyB9XG4gICAgICAuY3Rhb3ZlcnZpZXc6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuY3Rhb3ZlcnZpZXcgc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDQxNXB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyN3B4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyN3B4O1xuICAgICAgICB6LWluZGV4OiA1MDsgfVxuICAgICAgICAuY3Rhb3ZlcnZpZXcgc2VjdGlvbjo6YWZ0ZXIge1xuICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgICAgIC5jdGFvdmVydmlldyBzZWN0aW9uIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDM4JTsgfVxuICAgICAgLmN0YW92ZXJ2aWV3IGEge1xuICAgICAgICB3aWR0aDogNTglOyB9XG4gICAgICAuY3Rhb3ZlcnZpZXcgZGl2IHAge1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5jdGFvdmVydmlldyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzZweDtcbiAgICAgIHBhZGRpbmctdG9wOiAzNnB4OyB9IH1cblxuLypcbkNUQSBQaG90b1xuXG5NYXJrdXA6XG48YXJ0aWNsZSBjbGFzcz1cImwtY2hpbGRyZW52ZXJ0aWNhbC14LWV4Y2x1ZGUgY3RhcGhvdG8gbC13cmFwXCI+XG4gIDxpbWcgc3JjPVwiL2ltYWdlcy9ob21lcGFnZS1jb3VydGFjY2VwdGFuY2Uuc3ZnXCIgYWx0PVwiSnVkZ2UgaWNvblwiIHdpZHRoPVwiMTA4XCIgaGVpZ2h0PVwiOTNcIj5cbiAgPGgxPkd1cmFudGVlZCBDb3VydCBBY2NlcHRhbmNlPC9oMT5cbiAgPHA+Q2hpbGRyZW4gaW4gQmV0d2VlbiBPbmxpbmUgaXMgY29tbW9ubHkgYWNjZXB0ZWQgYnkgY291cnQgc3lzdGVtcyBhY3Jvc3MgdGhlIFVuaXRlZCBTdGF0ZXMgdG8gZnVsZmlsbCByZXF1aXJlbWVudHMgcmVnYXJkaW5nIGRpdm9yY2UgZWR1Y2F0aW9uIGZvciBwYXJlbnRzLCBvZnRlbiByZXBsYWNpbmcgaW5jb252ZW5pZW50IGFuZCBleHBlbnNpdmUgaW4tcGVyc29uIGNsYXNzZXMuPC9wPlxuICA8YSBjbGFzcz1cImJ1dHRvblwiIGhyZWY9XCIjXCI+U2lnbi1VcCBOb3c8L2E+XG48L2FydGljbGU+XG5cblN0eWxlZ3VpZGUgNC43XG4qL1xuLmN0YXBob3RvIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL2N0YXBob3RvLnBuZ1wiKSBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZy1ib3R0b206IDM2cHg7XG4gIHBhZGRpbmctdG9wOiAzNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuNSkgMCAycHggNHB4OyB9XG4gIC5jdGFwaG90byBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvIDE4cHg7IH1cbiAgLmN0YXBob3RvIGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gIC5jdGFwaG90byBwIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAuY3RhcGhvdG8gYSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXJlc29sdXRpb246IDJkcHB4KSB7XG4gICAgLmN0YXBob3RvIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy9jdGFwaG90by0yeC5wbmdcIik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAuY3RhcGhvdG8ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL2N0YXBob3RvLWRlc2t0b3AucG5nXCIpO1xuICAgICAgcGFkZGluZy1ib3R0b206IDU0cHg7XG4gICAgICBwYWRkaW5nLXRvcDogNTRweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkgYW5kIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICAuY3RhcGhvdG8ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL2N0YXBob3RvLWRlc2t0b3AtMngucG5nXCIpOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAuY3RhcGhvdG8gcCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogNjAlOyB9XG4gICAgICAuY3RhcGhvdG8gYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAyOTBweDsgfSB9XG5cbi8qXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwiY3RhcGhvdG8gY3RhcGhvdG8tY29tcGxldGVjYXNlIGwtd3JhcFwiPlxuICA8aW1nIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvNzN4NzNcIiBhbHQ9XCJDb21wbGV0ZSBDYXNlIExvZ29cIiB3aWR0aD1cIjczXCIgaGVpZ2h0PVwiNzNcIj5cbiAgPGgxPlNhdmUgdGhvdXNhbmRzIG9mIGRvbGxhcnMgaW4gbGVnYWwgZmVlcyB3aXRob3V0IHRoZSBjb3N0IG9mIGFuIGF0dG9ybmV5LjwvaDE+XG4gIDxwPlZpc2l0IENvbXBsZXRlQ2FzZS5jb20gYW5kIHNpZ24gdXAgZm9yIHRoZWlyIHNlcnZpY2VzIEFORCB0aGUgQ2hpbGRyZW4gaW4gQmV0d2VlbiBPbmxpbmUgUHJvZ3JhbS48L3A+XG4gIDxhIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1vdXRsaW5lXCIgaHJlZj1cIiNcIj5Db21wbGV0ZUNhc2UuY29tPC9hPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDQuNy4xXG4qL1xuLmN0YXBob3RvLWNvbXBsZXRlY2FzZSB7XG4gIGJhY2tncm91bmQ6ICMxNTVhNzY7XG4gIHRleHQtc2hhZG93OiBub25lOyB9XG4gIC5jdGFwaG90by1jb21wbGV0ZWNhc2UgPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLmN0YXBob3RvLWNvbXBsZXRlY2FzZSBoMSxcbiAgLmN0YXBob3RvLWNvbXBsZXRlY2FzZSBwIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiA2NTRweDsgfVxuICAuY3RhcGhvdG8tY29tcGxldGVjYXNlIGEge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5jdGFwaG90by1jb21wbGV0ZWNhc2UgaDEge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICBAbWVkaWEgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIC5jdGFwaG90by1jb21wbGV0ZWNhc2Uge1xuICAgICAgYmFja2dyb3VuZDogIzE1NWE3NjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5jdGFwaG90by1jb21wbGV0ZWNhc2Uge1xuICAgICAgYmFja2dyb3VuZDogIzE1NWE3NjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkgYW5kIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICAuY3RhcGhvdG8tY29tcGxldGVjYXNlIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxNTVhNzY7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5jdGFwaG90by1jb21wbGV0ZWNhc2UgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiBub25lOyB9IH1cblxuLypcbkNUQSBRdW90ZXNcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImN0YXF1b3RlcyBsLXdyYXBcIj5cbiAgPGRpdiBjbGFzcz1cInNsaWRlclwiPlxuICAgIDxkaXY+XG4gICAgICA8YmxvY2txdW90ZT5cbiAgICAgICAgPHA+JmxkcXVvO1RoaXMgcHJvZ3JhbSB3YXMgcmVjb21tZW5kZWQgYnkgb3VyIGNvLXBhcmVudGluZyBjb3Vuc2Vsb3IgYW5kIEkgd291bGQgcmVjb21tZW5kIGl0IHRvIG90aGVyIGNvdXBsZSB3aG8gYXJlIHRoaW5raW5nIGFib3V0IG9yIGdldHRpbmcgYSBkaXZvcmNlIGludm9sdmluZyBjaGlsZHJlbi4gSW4gZmFjdCwgSSBoYXZlIHJlY29tbWVuZGVkIGl0IHRvIG9uZSBvZiBteSBjby13b3JrZXJzIGFscmVhZHkuJnJkcXVvOzwvcD5cbiAgICAgICAgPGNpdGU+PHN0cm9uZz5EaWFuZ2UgSG9kZ2VzPC9zdHJvbmc+IEZhaXJiYW5rcywgQUs8L2NpdGU+XG4gICAgICA8L2Jsb2NrcXVvdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2PlxuICAgIDxwPkpvaW4gbW9yZSB0aGFuIDxzdHJvbmc+NTAsMDAwIHBhcmVudHM8L3N0cm9uZz4gd2hvIGhhdmUgY29tcGxldGVkIG91ciBhd2FyZC13aW5uaW5nIGNsYXNzISA8c3Ryb25nPlJlY29tbWVuZGVkIGJ5IDkgb3V0IG9mIDEwIHBhcmVudHMuPC9zdHJvbmc+PC9wPlxuICAgIDxhIGNsYXNzPVwiY3RhcXVvdGVzLXgtYnV0dG9uIGJ1dHRvblwiIGhyZWY9XCIjXCI+U2lnbi1VcCBOb3c8L2E+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgNC44XG4qL1xuLmN0YXF1b3RlcyBwLFxuLmN0YXF1b3RlcyBjaXRlLFxuLmN0YXF1b3RlcyBzdHJvbmcge1xuICBjb2xvcjogIzY5Njk2OTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzsgfVxuXG4uY3RhcXVvdGVzIHAge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG5cbi5jdGFxdW90ZXMgYmxvY2txdW90ZSB7XG4gIGJhY2tncm91bmQ6ICNGMkYyRjI7XG4gIG1hcmdpbi1ib3R0b206IDI3cHg7XG4gIHBhZGRpbmc6IDE4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3RhcXVvdGVzIGJsb2NrcXVvdGU6OmFmdGVyIHtcbiAgICBib3JkZXI6IDM2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNGMkYyRjI7XG4gICAgYm90dG9tOiAtMjdweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG4gICAgbGVmdDogNTRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgei1pbmRleDogMTA7IH1cbiAgLmN0YXF1b3RlcyBibG9ja3F1b3RlIHAsXG4gIC5jdGFxdW90ZXMgYmxvY2txdW90ZSBjaXRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogNTA7IH1cbiAgLmN0YXF1b3RlcyBibG9ja3F1b3RlIGNpdGUsXG4gIC5jdGFxdW90ZXMgYmxvY2txdW90ZSBzdHJvbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5jdGFxdW90ZXMgPiA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAzNnB4OyB9XG5cbi5jdGFxdW90ZXMgLmN0YXF1b3Rlcy14LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmN0YXF1b3RlcyAuc2xpY2stbmV4dCxcbi5jdGFxdW90ZXMgLnNsaWNrLXByZXYge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmN0YXF1b3RlcyAuc2xpY2stZG90cyB7XG4gIGJvdHRvbTogYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogLTlweCAwIDA7XG4gIHBhZGRpbmctbGVmdDogMThweDsgfVxuICAuY3RhcXVvdGVzIC5zbGljay1kb3RzIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgNC41cHggMCAwOyB9XG4gICAgLmN0YXF1b3RlcyAuc2xpY2stZG90cyBsaTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuY3RhcXVvdGVzIC5zbGljay1kb3RzIGJ1dHRvbiB7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggIzY5Njk2OSBpbnNldDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gICAgd2lkdGg6IDE2cHg7IH1cbiAgICAuY3RhcXVvdGVzIC5zbGljay1kb3RzIGJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmN0YXF1b3RlcyAuc2xpY2stZG90cyAuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzY5Njk2OTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgLmN0YXF1b3RlcyB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5jdGFxdW90ZXMgPiBkaXYge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAgIC5jdGFxdW90ZXMgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7IH1cbiAgICAuY3RhcXVvdGVzID4gOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgICAgcGFkZGluZy10b3A6IDM2cHg7IH1cbiAgICAuY3RhcXVvdGVzIC5jdGFxdW90ZXMteC1idXR0b24ge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuXG4vKlxuRmVhdHVyZXNcblxuTWFya3VwOlxuPGFydGljbGUgY2xhc3M9XCJmZWF0dXJlcyBsLXdyYXBcIj5cbiAgPGgxPkNvdXJzZSBGZWF0dXJlczwvaDE+XG4gIDxwPkNoaWxkcmVuIGluIEJldHdlZW4gaXMgYSBzY2llbnRpZmljYWxseSBwcm92ZW4gdG8gZW5zdXJlIHRoYXQgeW91IGxlYXJuIHRoZSBza2lsbHMgbmVjZXNzYXJ5IHRvIG1ha2UgZGl2b3JjZSBlYXNpZXIgb24geW91ciBjaGlsZHJlbi48L3A+XG4gIDx1bD5cbiAgICAgIDxsaT5cbiAgICAgICAgPGltZyBzcmNzZXQ9XCIvaW1hZ2VzL2ZlYXR1cmUtdmlkZW9zLTJ4LnBuZyAyeFwiIHNyYz1cIi9pbWFnZXMvZmVhdHVyZS12aWRlb3MucG5nXCIgYWx0PVwiVFYgU2NyZWVuXCIgd2lkdGg9XCIxMDBcIiBoZWlnaHQ9XCIxMDBcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aDI+VmlkZW8gU2NlbmFyaW9zPC9oMj5cbiAgICAgICAgICA8cD5XYXRjaCB2aWRlb3Mgd2l0aCBjb21tb24gY28tcGFyZW50aW5nIHByb2JsZW1zIGFuZCB0aGVuIHNlZSBkaWZmZXJlbnQgcmVzcG9uc2VzIHRoYXQgcHJvZHVjZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgcmVzdWx0cy48L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICAgIDxsaT5cbiAgICAgICAgPGltZyBzcmNzZXQ9XCIvaW1hZ2VzL2ZlYXR1cmUtcXVlc3Rpb25zLTJ4LnBuZyAyeFwiIHNyYz1cIi9pbWFnZXMvZmVhdHVyZS1xdWVzdGlvbnMucG5nXCIgYWx0PVwiUXVlc3Rpb24gbWFya1wiIHdpZHRoPVwiMTAwXCIgaGVpZ2h0PVwiMTAwXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgyPkd1aWRlZCBRdWVzdGlvbnM8L2gyPlxuICAgICAgICAgIDxwPkFmdGVyIGVhY2ggdmlkZW8gc2NlbmFyaW8sIENJQk8gcHJlc2VudHMgdGhlIHVzZXIgd2l0aCBndWlkZWQgcXVlc3Rpb25zIHRvIGV4cGxvcmUgaG93IGVhY2ggcHJvYmxlbSBjYW4gYmUgYWRkcmVzc2VkLCBhbmQgdG8gaW5jcmVhc2UgeW91ciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBzaXR1YXRpb24uPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGk+XG4gICAgICAgIDxpbWcgc3Jjc2V0PVwiL2ltYWdlcy9mZWF0dXJlLXF1aXplcy0yeC5wbmcgMnhcIiBzcmM9XCIvaW1hZ2VzL2ZlYXR1cmUtcXVpemVzLnBuZ1wiIGFsdD1cIlJlaW5mb3JjaW5nIFF1aXp6ZXNcIiB3aWR0aD1cIjEwMFwiIGhlaWdodD1cIjEwMFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMj5SZWluZm9yY2luZyBRdWl6emVzPC9oMj5cbiAgICAgICAgICA8cD5BdCB0aGUgZW5kIG9mIGVhY2ggY2hhcHRlciwgeW914oCZbGwgaGF2ZSB0aGUgb3Bwb3J0dW5pdHkgdG8gcmVpbmZvcmNlIHdoYXQgeW914oCZdmUgbGVhcm5lZCBieSB0YWtpbmcgYSBxdWl6LiBRdWl6emVzIGhlbHAgZW5zdXJlIHRoYXQgeW914oCZbGwgYmUgcmVhZHkgdG8gaGFuZGxlIHNpdHVhdGlvbnMgaW4gdGhlIGZ1dHVyZS48L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICAgIDxsaT5cbiAgICAgICAgPGltZyBzcmNzZXQ9XCIvaW1hZ2VzL2ZlYXR1cmUtc2tpbGxzcHJhY3RpY2UtMngucG5nIDJ4XCIgc3JjPVwiL2ltYWdlcy9mZWF0dXJlLXNraWxsc3ByYWN0aWNlLnBuZ1wiIGFsdD1cIlN0YXJcIiB3aWR0aD1cIjEwMFwiIGhlaWdodD1cIjEwMFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMj5Ta2lsbHMgUHJhY3RpY2U8L2gyPlxuICAgICAgICAgIDxwPllvdSBjYW4gc3BlbmQgdGltZSBwcmFjdGljaW5nIGFuZCByZWZpbmluZyB5b3VyIHNraWxscyBpbiBvdXIgU2tpbGxzIFByYWN0aWNlIHNlY3Rpb24gLSBtZWFudCB0byBpbmNyZWFzZSB5b3VyIGNvbmZpZGVuY2UgaW4gdGhlIHNraWxscyB0YXVnaHQgaW4gQ0lCTy48L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgPC91bD5cbjwvYXJ0aWNsZT5cblxuU3R5bGVndWlkZSA0LjlcbiovXG4uZmVhdHVyZXMgaDEge1xuICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uZmVhdHVyZXMgbGkge1xuICBtYXJnaW4tYm90dG9tOiAyN3B4OyB9XG4gIC5mZWF0dXJlcyBsaSBwIHtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuXG4uZmVhdHVyZXMgaDIge1xuICBmb250LXNpemU6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZlYXR1cmVzIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMCBhdXRvIDlweDtcbiAgd2lkdGg6IDEwMHB4OyB9XG5cbi5mZWF0dXJlcyA+IHAge1xuICBjb2xvcjogIzY5Njk2OTtcbiAgbWFyZ2luLWJvdHRvbTogMjdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAuZmVhdHVyZXMgaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLmZlYXR1cmVzID4gcCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmZlYXR1cmVzIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuZmVhdHVyZXMgbGkge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDU0cHggMzZweCAwO1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmZlYXR1cmVzIGltZyB7XG4gICAgZmxleDogMCAwIDEwMHB4OyB9XG4gIC5mZWF0dXJlcyBkaXYge1xuICAgIHBhZGRpbmctbGVmdDogMThweDsgfSB9XG5cbi8qXG5QaG90byBDYWxsb3V0XG5cbk1hcmt1cDpcbjxzZWN0aW9uIGNsYXNzPVwibC13cmFwIGwtd3JhcC1zcGFubW9iaWxlIHdyYXAgd3JhcC1saWdodGdyZXkgcGhvdG9jYWxsb3V0XCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtY29udGFpbmVyXCI+XG4gICAgICA8aDM+R2l2ZSB5b3VyIGNoaWxkcmVuIHRoZSBiZXN0IGNoYW5jZS48L2gzPlxuICAgICAgPHA+VGhlIGRpdm9yY2Ugb2Ygb25l4oCZcyBwYXJlbnRzIGlzIGEgbWFqb3IgZXZlbnQgaW4gdGhlIGxpZmUgb2YgYSBjaGlsZC4gQ2hpbGRyZW4gaW4gQmV0d2VlbiBPbmxpbmUgZW5zdXJlcyB0aGF0IHRoZSBhY2NvbXBhbmluZyBzdHJlc3MgaXMgbWluaW1pemVkLCB0aGUgbG9uZy10ZXJtIHBzeWNob2xvZ2ljYWwgYnVyZGVuIGlzIGVhc2VkLCBhbmQgdGhlIHdob2xlIHByb2Nlc3MgaXMgbWFkZSBtb3JlIHVuZGVyc3RhbmRhYmxlIGFuZCBtYW5hZ2VhYmxlIGZvciB0aGUgcGFyZW50cyBzbyB0aGF0IGNoaWxkcmVuIHdpbGwgYmVuZWZpdC48L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cDovL3BsYWNlaG9sZC5pdC8zMjB4MzQ5XCIgYWx0PVwiUGljdHVyZSBvZiB3b21lbiBhbmQgY2hpbGRyZW5cIj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuXG5TdHlsZWd1aWRlIDQuMTBcbiovXG4ucGhvdG9jYWxsb3V0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZy1ib3R0b206IDE4cHg7XG4gIHBhZGRpbmctdG9wOiAxOHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5waG90b2NhbGxvdXQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5waG90b2NhbGxvdXQgcCxcbiAgICAucGhvdG9jYWxsb3V0IGxpIHtcbiAgICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgICAgZm9udC1zaXplOiAxOHB4OyB9IH1cbiAgLnBob3RvY2FsbG91dCBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAucGhvdG9jYWxsb3V0IGltZyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7IH0gfVxuICAucGhvdG9jYWxsb3V0ID4gOmZpcnN0LWNoaWxkIHtcbiAgICBvcmRlcjogMjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgICAgLnBob3RvY2FsbG91dCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNTRweDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3JkZXI6IDE7IH0gfVxuICAucGhvdG9jYWxsb3V0ID4gOmxhc3QtY2hpbGQge1xuICAgIG9yZGVyOiAxOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAucGhvdG9jYWxsb3V0ID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBmbGV4OiAwIDAgMjY4cHg7XG4gICAgICAgIG9yZGVyOiAyOyB9IH1cblxuLypcblByb29mXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwicHJvb2YgbC13cmFwXCI+XG4gIDxoMT5Qcm92ZW4gdG8gV29yazwvaDE+XG4gIDxwPkNoaWxkcmVuIGluIEJldHdlZW4gd2FzIGNyZWF0ZWQgYnkgZGlzdGluZ3Vpc2hlZCBwc3ljaG9sb2dpc3QgRHIuIERvbmFsZCBHb3Jkb24gYW5kIHByb3ZlbiB0byB3b3JrLjwvcD5cbiAgPHVsPlxuICAgIDxsaT48cD4yMiUgPHNwYW4+TGVzcyBjaGlsZCByZXBvcnRlZCBzdHJlc3M8L3NwYW4+PC9wPjwvbGk+XG4gICAgPGxpPjxwPjcwJSA8c3Bhbj5GZXdlciBzY2hvb2wgYWJzZW5jZXM8L3NwYW4+PC9wPjwvbGk+XG4gICAgPGxpPjxwPjU0JSA8c3Bhbj5GZXdlciBkb2N0b3IgdmlzaXRzPC9zcGFuPjwvcD48L2xpPlxuICAgIDxsaT48cD45LzEwIDxzcGFuPlBhcmVudHMgcmVjb21tZW5kPC9zcGFuPjwvcD48L2xpPlxuICA8L3VsPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDQuMTFcbiovXG4ucHJvb2Yge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnByb29mIGgxIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgLnByb29mID4gcCB7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgLnByb29mIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAucHJvb2YgbGkge1xuICAgIHBhZGRpbmc6IDAgNC41cHggOXB4OyB9XG4gICAgLnByb29mIGxpIHAge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQ6ICMxNTVhNzY7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBmb250LXNpemU6IDM2cHg7XG4gICAgICBoZWlnaHQ6IDEzOHB4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nOiA5cHg7XG4gICAgICB3aWR0aDogMTM4cHg7IH1cbiAgICAucHJvb2YgbGkgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS42MTg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLnByb29mID4gcCB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgLnByb29mIGxpIHtcbiAgICAgIHBhZGRpbmc6IDAgMThweDsgfSB9XG5cbi8qXG5TY3JlZW5zXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwic2NyZWVucyBsLXdyYXBcIj5cbiAgPGgxPk9wdGltaXplZCBmb3IgYWxsIHNjcmVlbiBzaXplczo8L2gxPlxuICA8dWw+XG4gICAgPGxpPlxuICAgICAgPGltZyBzcmM9XCIvaW1hZ2VzL3NjcmVlbnMtZGVza3RvcC5zdmdcIiBhbHQ9XCJEZXNrdG9wIHNjcmVlblwiIHdpZHRoPVwiMTIzXCIgaGVpZ2h0PVwiMTAwXCI+XG4gICAgICBEZXNrdG9wXG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICA8aW1nIHNyYz1cIi9pbWFnZXMvc2NyZWVucy1sYXB0b3Auc3ZnXCIgYWx0PVwiTGFwdG9wIHNjcmVlblwiIHdpZHRoPVwiMTM0XCIgaGVpZ2h0PVwiNzdcIj5cbiAgICAgIExhcHRvcFxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgPGltZyBzcmM9XCIvaW1hZ2VzL3NjcmVlbnMtdGFibGV0LnN2Z1wiIGFsdD1cIlRhYmxldCBzY3JlZW5cIiB3aWR0aD1cIjUwXCIgaGVpZ2h0PVwiNjRcIj5cbiAgICAgIFRhYmxldFxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgPGltZyBzcmM9XCIvaW1hZ2VzL3NjcmVlbnMtbW9iaWxlLnN2Z1wiIGFsdD1cIk1vYmlsZSBzY3JlZW5cIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiNDNcIj5cbiAgICAgIE1vYmlsZVxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2FydGljbGU+XG5cblN0eWxlZ3VpZGUgNC4xMlxuKi9cbi5zY3JlZW5zIGgxIHtcbiAgbWFyZ2luLWJvdHRvbTogOXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnNjcmVlbnMgdWwge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5zY3JlZW5zIGxpIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogNC41cHg7IH1cbiAgLnNjcmVlbnMgbGk6bnRoLWNoaWxkKDEpIGltZyB7XG4gICAgbWF4LXdpZHRoOiA4M3B4OyB9XG4gIC5zY3JlZW5zIGxpOm50aC1jaGlsZCgyKSBpbWcge1xuICAgIG1heC13aWR0aDogODRweDsgfVxuICAuc2NyZWVucyBsaTpudGgtY2hpbGQoMykgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDM1cHg7IH1cbiAgLnNjcmVlbnMgbGk6bnRoLWNoaWxkKDQpIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxN3B4OyB9XG5cbi5zY3JlZW5zIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDQuNXB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAuc2NyZWVucyBsaSB7XG4gICAgcGFkZGluZzogMThweDsgfVxuICAgIC5zY3JlZW5zIGxpOm50aC1jaGlsZCgxKSBpbWcsIC5zY3JlZW5zIGxpOm50aC1jaGlsZCgyKSBpbWcsIC5zY3JlZW5zIGxpOm50aC1jaGlsZCgzKSBpbWcsIC5zY3JlZW5zIGxpOm50aC1jaGlsZCg0KSBpbWcge1xuICAgICAgbWF4LXdpZHRoOiBub25lOyB9IH1cblxuLypcblRvcGljc1xuXG5NYXJrdXA6XG48YXJ0aWNsZSBjbGFzcz1cInRvcGljcyBsLXdyYXBcIj5cbiAgPGgxPldoYXQncyBDb3ZlcmVkPC9oMT5cbiAgPHVsPlxuICAgIDxsaT5Nb25leSBQcm9ibGVtczwvbGk+XG4gICAgPGxpPkxvbmcgRGlzdGFuY2UgUGFyZW50aW5nPC9saT5cbiAgICA8bGk+Q2hpbGRyZW4gQ2FycnlpbmcgTWVzc2FnZXM8L2xpPlxuICAgIDxsaT5RdWl6emluZyBDaGlsZHJlbiBBYm91dCB0aGUgT3RoZXIgUGFyZW50PC9saT5cbiAgICA8bGk+UHV0dGluZyBEb3duIHRoZSBPdGhlciBQYXJlbnQ8L2xpPlxuICAgIDxsaT5OZXZlciBNYXJyaWVkIFBhcmVudHM8L2xpPlxuICA8L3VsPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDQuMTNcbiovXG4udG9waWNzIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL3RvcGljcy5wbmdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nLWJvdHRvbTogMzZweDtcbiAgcGFkZGluZy10b3A6IDM2cHg7IH1cbiAgLnRvcGljcyBoMSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDM2cHg7IH1cbiAgLnRvcGljcyBsaSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBwYWRkaW5nOiAxOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC50b3BpY3MgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gIEBtZWRpYSAobWluLXJlc29sdXRpb246IDJkcHB4KSB7XG4gICAgLnRvcGljcyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdG9waWNzLTJ4LnBuZ1wiKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC50b3BpY3Mge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL3RvcGljcy1kZXNrdG9wLnBuZ1wiKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA3MnB4O1xuICAgICAgcGFkZGluZy10b3A6IDU0cHg7IH1cbiAgICAgIC50b3BpY3MgaDEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgICAudG9waWNzIHVsIHtcbiAgICAgICAgY29sdW1uLWNvdW50OiAyO1xuICAgICAgICBjb2x1bW4tZ2FwOiAzNnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIC50b3BpY3Mge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL3RvcGljcy1kZXNrdG9wLTJ4LnBuZ1wiKTsgfSB9XG5cbi8qXG5TaWdudXBcblxuRm9yIHVzZSBvbiB0aGUgUFBDIGxhbmRpbmcgcGFnZXMuIEJlc3Qgdmlld2VkIG9uIHRoZWlyIG93biBwYWdlIChvdXRzaWRlIG9mIFNDNSdzIGludGVyZmFjZS4pXG5cbk1hcmt1cDpcbjxzZWN0aW9uIGNsYXNzPVwibC13cmFwIHdyYXAgd3JhcC1icmFuZGRhcmsgc2lnbnVwXCI+XG4gIDxkaXY+XG4gICAgPGgxPkNoaWxkcmVuIGluIEJldHdlZW48L2gxPlxuICAgIDxwPkEgY28tcGFyZW50aW5nIHByb2dyYW0gZm9yIGRpdm9yY2luZyBhbmQgc2VwYXJhdGluZyBwYXJlbnRzPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJjdGFcIj5cbiAgICAgIDxhIGhyZWY9XCJcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHBjXCI+U2lnbi1VcCBOb3c8L2E+XG4gICAgICA8cD5HdXJhbnRlZWQgQWNjZXB0YW5jZSBpbiBNYXJpY29wYSBDb3VudHksIEFyaXpvbmEhPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8cCBjbGFzcz1cInNlYWxcIj5JbnN0YW50IENlcnRpZmljYXRlIFVwb24gQ29tcGxldGlvbiE8L3A+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuXG5TdHlsZWd1aWRlIDQuMVxuKi9cbi5zaWdudXAge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLnNpZ251cCB7XG4gICAgICBhbGlnbi1pdGVtczogdG9wO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1NHB4O1xuICAgICAgcGFkZGluZy10b3A6IDU0cHg7IH0gfVxuICAuc2lnbnVwIGgxIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgICAgLnNpZ251cCBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDsgfSB9XG4gIC5zaWdudXAgcCB7XG4gICAgZm9udC1zaXplOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAuc2lnbnVwIHAge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuICAuc2lnbnVwIGRsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc2lnbnVwIGRkLFxuICAuc2lnbnVwIGR0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXg6IDEgMSA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLnNpZ251cCBkdCB7XG4gICAgcGFkZGluZy1yaWdodDogNC41cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnNpZ251cCBkZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZy1sZWZ0OiA0LjVweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAuc2lnbnVwIHVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM2cHg7IH0gfVxuICAuc2lnbnVwIHVsIGxpIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICBtYXJnaW46IDAgMCA0LjVweCAxZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5zaWdudXAgdWwgbGkge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7IH0gfVxuICAuc2lnbnVwIC5jdGEge1xuICAgIG1hcmdpbjogMThweCAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAuc2lnbnVwIC5jdGEge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAgIC5zaWdudXAgLmN0YSA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyB9IH1cbiAgICAuc2lnbnVwIC5jdGEgcCB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHBhZGRpbmctdG9wOiA0LjVweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAgIC5zaWdudXAgLmN0YSBwIHtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gIC5zaWdudXAgLnNpZ251cC14LXRleHQge1xuICAgIHBhZGRpbmc6IDAgMThweCAwIDA7IH1cblxuLypcblNpZ251cCBTZWNvbmRhcnlcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJsLXdyYXAgd3JhcCBzaWdudXAgc2lnbnVwLXNlY29uZGFyeVwiPlxuICA8ZGl2PlxuICAgIDxoMT5XaHkgQ2hvb3NlIENoaWxkcmVuIGluIEJldHdlZW4gT25saW5lPzwvaDE+XG4gICAgPHVsPlxuICAgICAgPGxpPkl04oCZcyBub3QgbmVjZXNzYXJ5IHRvIGF0dGVuZCBhbiBpbi1wZXJzb24gY2xhc3M8L2xpPlxuICAgICAgPGxpPlRoZSBsb3dlc3QgY29zdCBvbmxpbmUgY2xhc3MgYXZhaWxhYmxlIGluIE1hcmljb3BhIENvdW50eTwvbGk+XG4gICAgICA8bGk+VGFrZXMganVzdCA0IGhvdXJzIHRvIGNvbXBsZXRlPC9saT5cbiAgICAgIDxsaT5JbnN0YW50IGNlcnRpZmljYXRpb24gdXBvbiBjb21wbGV0aW9uPC9saT5cbiAgICAgIDxsaT5BdmFpbGFibGUgMjQvNyB0byBmaXQgeW91ciBzY2hlZHVsZTwvbGk+XG4gICAgPC91bD5cbiAgICA8ZGl2IGNsYXNzPVwiY3RhXCI+XG4gICAgICA8YSBocmVmPVwiXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXBwY1wiPlNpZ24tVXAgTm93PC9hPlxuICAgICAgPHA+PHNwYW4+JDQ1Ljk1PC9zcGFuPiBmb3IgMzAtZGF5IGFjY2VzczwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPGltZyBzcmM9XCIvaW1hZ2VzL3BsYWNlaG9sZGVyLWxhbmRpbmdwYWdlLnN2Z1wiIGFsdD1cIntjb3VudHkgbmFtZX0gaW1hZ2VcIj5cbiAgICA8ZGw+XG4gICAgICA8ZHQ+Q291bnR5OiA8L2R0PlxuICAgICAgPGRkPk1hcmljb3BhPC9kZD5cbiAgICAgIDxkdD5TdGF0ZTogPC9kdD5cbiAgICAgIDxkZD5Bcml6b25hPC9kZD5cbiAgICA8L2RsPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cblxuU3R5bGVndWlkZSA0LjEuMVxuKi9cbi5zaWdudXAtc2Vjb25kYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAuc2lnbnVwLXNlY29uZGFyeSB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH0gfVxuICAuc2lnbnVwLXNlY29uZGFyeSBoMSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAuc2lnbnVwLXNlY29uZGFyeSBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDsgfSB9XG4gIC5zaWdudXAtc2Vjb25kYXJ5IGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG8gMThweDsgfVxuICAuc2lnbnVwLXNlY29uZGFyeSA+IDpmaXJzdC1jaGlsZCB7XG4gICAgb3JkZXI6IDI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5zaWdudXAtc2Vjb25kYXJ5ID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87IH0gfVxuICAuc2lnbnVwLXNlY29uZGFyeSA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIG9yZGVyOiAxOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAuc2lnbnVwLXNlY29uZGFyeSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgZmxleDogMCAxIDE2NHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDM2cHg7IH0gfVxuICAuc2lnbnVwLXNlY29uZGFyeSAuY3RhIHAge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tdG9wOiA5cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAuc2lnbnVwLXNlY29uZGFyeSAuY3RhIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cbiAgLnNpZ251cC1zZWNvbmRhcnkgLmN0YSBzcGFuIHtcbiAgICBjb2xvcjogIzE1NWE3NjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDM2cHg7IH1cbiAgLnNpZ251cC1zZWNvbmRhcnkgLnNpZ251cC14LXRleHQge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLnN1cnZleSAucHJvZ3Jlc3NiYXIge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5zdXJ2ZXkgLnByb2dyZXNzYmFyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuXG4ub25ib2FyZGluZy1ub3RpZmljYXRpb25zIHtcbiAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxOHB4OyB9XG4gIC5vbmJvYXJkaW5nLW5vdGlmaWNhdGlvbnMgaDIge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBtYXJnaW4tdG9wOiAxZW07IH1cbiAgLm9uYm9hcmRpbmctbm90aWZpY2F0aW9ucyBoMyB7XG4gICAgbWFyZ2luLXRvcDogLjVlbTsgfVxuICAub25ib2FyZGluZy1ub3RpZmljYXRpb25zIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBmb250LXNpemU6IDE2cHg7IH1cblxuLmhvcml6b250YWwtbGlzdCBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBsaXN0LXN0eWxlLWltYWdlOiBub25lO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5ob3Jpem9udGFsLWxpc3QgbGk6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuaG9yaXpvbnRhbC1saXN0IGxpOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmZvbnQtc2l6ZSB7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuXG4vKlxuRGVtb3NcblxuU3R5bGVndWlkZSA1LjBcbiovXG4vKlxuSG9tZXBhZ2VcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtd3JhcHBlcm1vYmlsZVwiPlxuICA8c2ctaW5zZXJ0PjMuMzwvc2ctaW5zZXJ0PlxuICA8ZGl2IGNsYXNzPVwibC1jaGlsZHJlbnZlcnRpY2FsXCI+XG4gICAgPHNnLWluc2VydD40LjY8L3NnLWluc2VydD5cbiAgICA8c2ctaW5zZXJ0PjQuNzwvc2ctaW5zZXJ0PlxuICAgIDxzZy1pbnNlcnQ+NC43LjE8L3NnLWluc2VydD5cbiAgICA8c2ctaW5zZXJ0PjQuMTI8L3NnLWluc2VydD5cbiAgICA8c2ctaW5zZXJ0PjQuOTwvc2ctaW5zZXJ0PlxuICAgIDxzZy1pbnNlcnQ+NC40PC9zZy1pbnNlcnQ+XG4gICAgPHNnLWluc2VydD40LjEzPC9zZy1pbnNlcnQ+XG4gICAgPHNnLWluc2VydD40LjExPC9zZy1pbnNlcnQ+XG4gICAgPHNnLWluc2VydD40Ljg8L3NnLWluc2VydD5cbiAgICA8c2ctaW5zZXJ0PjQuNTwvc2ctaW5zZXJ0PlxuICA8L2Rpdj5cbiAgPHNnLWluc2VydD4zLjk8L3NnLWluc2VydD5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDUuMVxuKi9cbi8qXG5SZWNlaXB0XG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJsLXJlY2VpcHRcIj5cbiAgPGRpdiBjbGFzcz1cInJlY2VpcHRoZWFkZXJcIj5cbiAgICA8ZGl2PlxuICAgICAgPHAgY2xhc3M9XCJyZWNlaXB0aGVhZGVyLXgtbmFtZVwiPkpvaG4gRG9lPC9wPlxuICAgICAgPHRhYmxlIGNsYXNzPVwicHJpbnR0YWJsZSBwcmludHRhYmxlLXNtYWxsXCI+XG4gICAgICAgIDx0aGVhZCBjbGFzcz1cInZpc3VhbGx5aGlkZGVuXCI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+RGlyZWN0aW9uPC90aD5cbiAgICAgICAgICAgIDx0aCBzY29wZT1cInJvd1wiPlZhbHVlPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+UmU6PC90aD5cbiAgICAgICAgICAgIDx0ZD5Zb3XigJl2ZSBjb21wbGV0ZWQgeW91ciBwdXJjaGFzZSE8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+VG86PC90aD5cbiAgICAgICAgICAgIDx0ZD5OYW1leSBOYW1lcnNvbjwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJlY2VpcHRoZWFkZXIteC1tZXRhXCI+XG4gICAgICA8cCBjbGFzcz1cInJlY2VpcHRoZWFkZXIteC10aW1lXCI+OTozNGFtPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cInJlY2VpcHRoZWFkZXIteC1hdmF0YXJcIj5BQjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImwtcmVjZWlwdC14LWJvZHlcIj5cbiAgICA8aDEgY2xhc3M9XCJyZWNlaXB0aGVhZGluZ1wiPlB1cmNoYXNlIENvbXBsZXRlITwvaDE+XG4gICAgPGgyIGNsYXNzPVwicmVjZWlwdGhlYWRpbmcgcmVjZWlwdGhlYWRpbmctc21hbGxcIj5BY2NvdW50IEluZm9ybWF0aW9uPC9oMj5cbiAgICA8dGFibGUgY2xhc3M9XCJwcmludHRhYmxlXCI+XG4gICAgICA8dGhlYWQgY2xhc3M9XCJ2aXN1YWxseWhpZGRlblwiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+SW5mb3JtYXRpb248L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cInJvd1wiPlZhbHVlPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5DdXN0b21lciBOYW1lPC90aD5cbiAgICAgICAgICA8dGQ+TmFtZXkgTmFtZXJzb248L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+VXNlcm5hbWU8L3RoPlxuICAgICAgICAgIDx0ZD5wYXlwYWxAdGVzdC5jb208L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+RXhwaXJhdGlvbiBEYXRlPC90aD5cbiAgICAgICAgICA8dGQ+Tm92ZW1iZXIgMjAsIDIwMTY8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICAgIDxoMiBjbGFzcz1cInJlY2VpcHRoZWFkaW5nIHJlY2VpcHRoZWFkaW5nLXNtYWxsXCI+UHVyY2hhc2VkIFByb2R1Y3RzPC9oMj5cbiAgICA8dGFibGUgY2xhc3M9XCJwcmludHRhYmxlIHByaW50dGFibGUtc3BhblwiPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+UHJvZHVjdDwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+QW1vdW50PC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+Q0RFJ3MgQ2hpbGRyZW4gaW4gQmV0d2VlbiBPbmxpbmUgMzAtZGF5IEFjY291bnQ8L3RkPlxuICAgICAgICAgIDx0ZD4kNDUuOTU8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDUuMlxuKi9cbi8qXG5QdXJjaGFzZWQgSXRlbXNcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtY2hpbGRyZW52ZXJ0aWNhbCBsLWNoaWxkcmVudmVydGljYWwtc21hbGxcIj5cbiAgPHNnLWluc2VydD4zLjU2PC9zZy1pbnNlcnQ+XG4gIDxkaXYgY2xhc3M9XCJwYWdldGl0bGVcIj5cbiAgICA8aDE+UHVyY2hhc2VkIEl0ZW1zPC9oMT5cbiAgPC9kaXY+XG4gIDxzZy1pbnNlcnQ+My41Nzwvc2ctaW5zZXJ0PlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgNS4zXG4qL1xuLypcblJlc3VsdHNcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtY29udGFpbmVyaG9yaXpvbnRhbCBsLWNvbnRhaW5lcmhvcml6b250YWwtc21hbGwgbC1jb250YWluZXJob3Jpem9udGFsLWlzLW1pbnBhZCBsLWNvbnRhaW5lcnZlcnRpY2FsIGwtY2hpbGRyZW52ZXJ0aWNhbCBsLWNoaWxkcmVudmVydGljYWxcIj5cbiAgPGRpdiBjbGFzcz1cImJvcmRlcmVkXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cInBhZ2UtdGl0bGUgcGFnZS10aXRsZS1jZW50ZXJlZFwiPlxuICAgICAgPGltZyBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzExMng4NlwiIGFsdD1cIlJlc3VsdHMgY2VydGlmaWNhdGUgaWNvblwiPlxuICAgICAgPGgxPkNvbmdyYXR1bGF0aW9ucyBKb2huIEJsaW1iPC9oMT5cbiAgICAgIDxwPllvdSBoYXZlIHBhc3NlZCBhbGwgc2l4IGNoYXB0ZXJzLCBhbmQgdGhlIGZpbmFsIGV4YW0gd2l0aCBhIGN1bXVsYXRpdmUgc2NvcmUgb2YgPHN0cm9uZz4wJTwvc3Ryb25nPi48L3A+XG4gICAgPC9oZWFkZXI+XG4gICAgPGZvcm0gY2xhc3M9XCJmb3JtIGZvcm0tbm9tYXJnaW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvd1wiPlxuICAgICAgICA8aHIgY2xhc3M9XCJydWxlXCI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvd1wiPlxuICAgICAgICA8aDQ+QWRkIHlvdXIgQ2FzZSBOdW1iZXI8L2g0PlxuICAgICAgICA8cCBjbGFzcz1cInUtdGV4dC1zbWFsbFwiPklmIHlvdSBoYXZlIGJlZ3VuIHRoZSBjb3VydCBwcm9jZXNzLCBwbGVhc2UgZW50ZXIgeW91ciBjYXNlIG51bWJlciBiZWxvdy4gSXQgd2lsbCBiZSBwcmludGVkIG9uIHlvdXIgY2VydGlmaWNhdGUuPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgXHRcdFx0PHAgY2xhc3M9XCJsYWJlbFwiPkZpbGluZyBDb3VudHk6PC9wPlxuICBcdFx0XHQ8cCBjbGFzcz1cInZhbHVlXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiIHBsYWNlaG9sZGVyPVwiQ2FsaWZvcm5pYSwgU2FuIEJlcm5hcmRpbm8gQ291bnR5XCI+PC9wPlxuICBcdFx0PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgXHRcdFx0PHAgY2xhc3M9XCJsYWJlbFwiPkNhc2UgTnVtYmVyOjwvcD5cbiAgXHRcdFx0PGRpdiBjbGFzcz1cInZhbHVlXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImNhc2VfbnVtYmVyXCIgdmFsdWU9XCJRLTRNLTRDLTA1XCIgcGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIGNhc2UgbnVtYmVyXCIgaWQ9XCJpZF9jYXNlX251bWJlclwiIG1heGxlbmd0aD1cIjIwMFwiPjwvZGl2PlxuICBcdFx0PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW1haWwtcmVzdWx0c1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VibWl0XCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiYnV0dG9uXCIgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJkb3dub2FkXCIgdmFsdWU9XCJEb3dubG9hZCBDZXJ0aWZpY2F0ZVwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b25cIiBvbmNsaWNrPVwiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2VtYWlsLXJlc3VsdHMtZm9ybScpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXCIgdHlwZT1cImJ1dHRvblwiPkVtYWlsIENlcnRpZmljYXRlPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwiZW1haWwtcmVzdWx0cy1mb3JtXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgICAgICA8aDQ+RW1haWwgYSBQREYgY2VydGlmaWNhdGUgdG86PC9oND5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgICAgIFx0XHRcdDxwIGNsYXNzPVwibGFiZWxcIj5OYW1lOjwvcD5cbiAgICAgIFx0XHRcdDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbmFtZVwiIGlkPVwibmFtZVwiIG1heGxlbmd0aD1cIjIwMFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICBcdFx0PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICBcdFx0XHQ8cCBjbGFzcz1cImxhYmVsXCI+RW1haWw6PC9wPlxuICAgICAgXHRcdFx0PGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBuYW1lPVwiZW1haWxcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGVtYWlsXCIgaWQ9XCJlbWFpbFwiIG1heGxlbmd0aD1cIjIwMFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICBcdFx0PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGNoZWNrYm94XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJlbWFpbF9jb3B5XCIgaWQ9XCJlbWFpbF9jb3B5XCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbWFpbF9jb3B5XCI+XG4gICAgICAgICAgICAgIDxwPkVtYWlsIG1lIGEgY29weSBvZiBteSBjZXJ0aWZpY2F0ZTwvcD5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGZvcm0tcm93LXN1Ym1pdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93LXN1Ym1pdC14LWJ1dHRvblwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgb25jbGljaz1cImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLXJvdy1zdWJtaXQnKS5jbGFzc0xpc3QuYWRkKCdmb3JtLXJvdy1zdWJtaXQtaXMtc3VjY2VzcycpXCIgdHlwZT1cImJ1dHRvblwiPlNlbmQgRW1haWw8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93LXN1Ym1pdC14LW1lc3NhZ2VcIj5FbWFpbCBTZW50ITwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPGg0PkZpbGluZyB5b3VyIGNlcnRpZmljYXRlIG9mIGNvbXBsZXRpb246PC9oND5cbiAgICA8cCBjbGFzcz1cInUtdGV4dC1zbWFsbFwiPlRoZSBNYXJpY29wYSBDb3VudHkgQ291cnQgbm8gbG9uZ2VyIGFjY2VwdHMgcGFwZXIgY2VydGlmaWNhdGVzLiA8YnI+VGhlIENlbnRlciBmb3IgRGl2b3JjZSBFZHVjYXRpb24gd2lsbCBlRmlsZSB5b3VyIENlcnRpZmljYXRlIHdpdGggdGhlIE1hcmljb3BhIENvdXJ0LiA8YnI+RW50ZXIgeW91ciBjYXNlIG51bWJlciBpbiB0aGUgYm94IGFib3ZlLCBvciB0aGUgY291cnQgd2lsbCBub3QgYWNjZXB0IHlvdXIgQ2VydGlmaWNhdGUuIDxicj5Zb3Ugc2hvdWxkIGRvd25sb2FkIGFuZC9vciBlbWFpbCB5b3Vyc2VsZiBhIGNvcHkgb2YgdGhlIGNlcnRpZmljYXRlcyBmb3IgeW91ciByZWNvcmRzLjwvcD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsLWNoaWxkcmVudmVydGljYWxcIj5cbiAgICA8aDE+WW91IG1heSBhbHNvIGxpa2UmaGVsbGlwOzxoMT5cbiAgICA8c2ctaW5zZXJ0PjMuNTk8L3NnLWluc2VydD5cbiAgICA8c2ctaW5zZXJ0PjMuNTk8L3NnLWluc2VydD5cbiAgICA8c2ctaW5zZXJ0PjMuNTk8L3NnLWluc2VydD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSA1LjRcbiovXG4iXX0= */