@charset "UTF-8";
/*------------------------------------*    $DEFAULTS
\*------------------------------------*/
/**
 * inuit.css’ default variables. Redefine these in your `_vars.scss` file (found
 * in the inuit.css-web-template) to override them.
 */
/*------------------------------------*    $DEBUG
\*------------------------------------*/
/**
 * Debug mode will visually highlight any potential markup/accessibility quirks
 * in the browser. Set to `true` or `false`.
 */
/*------------------------------------*    $BORDER-BOX
\*------------------------------------*/
/**
 * Do you want all elements to adopt `box-sizing:border-box;` as per
 * paulirish.com/2012/box-sizing-border-box-ftw ?
 */
/*------------------------------------*    $BASE
\*------------------------------------*/
/**
 * Base stuff
 */
/**
 * Base font-family.
 */
/**
 * Default colour for objects’ borders etc.
 */
/*------------------------------------*    $RESPONSIVE
\*------------------------------------*/
/**
 * Responsiveness?
 */
/**
 * Responsiveness for widescreen/high resolution desktop monitors and beyond?
 * Note: `$responsive` variable above must be set to true before enabling this.
 */
/**
 * Responsive push and pull produce a LOT of code, only turn them on if you
 * definitely need them.
 */
/**
 * Note: `$push` variable above must be set to true before enabling these.
 */
/**
 * Note: `$pull` variable above must be set to true before enabling these.
 */
/**
 * Tell inuit.css when breakpoints start.
 */
/*------------------------------------*    $FONT-SIZES
\*------------------------------------*/
/**
 * Font-sizes (in pixels). Refer to relevant sections for their implementations.
 */
/*------------------------------------*    $QUOTES
\*------------------------------------*/
/**
 * English quote marks?
 */
/**
 * If you want English quotes then please do not edit these; they’re only here
 * because Sass needs them.
 */
/**
 * If you need non-English quotes, please alter the following values accordingly:
 */
/*------------------------------------*    $BRAND
\*------------------------------------*/
/**
 * Brand stuff
 */
/**
 * How big would you like round corners to be by default?
 */
/*------------------------------------*    $OBJECTS AND ABSTRACTIONS
\*------------------------------------*/
/**
 * Which objects and abstractions would you like to use?
 */
/*------------------------------------*    $FRAMEWORK
\*------------------------------------*/
/**
 * inuit.css will work these next ones out for use within the framework.
 *
 * Assign our `$base-line-height` to a new spacing var for more transparency.
 */
/******

 Environment-Type:
	 Set to "live" before 'gulp deploy' for compiling for
	 productive Goethe-Server

	 Set to "dev" when running 'gulp' for development and loading
	 the assets from Dropbox

*******/
/*------------------------------------*    $RESPONSIVE
\*------------------------------------*/
/**
 * Tell inuit.css when breakpoints start.
 */
/*------------------------------------*    $FONT-SIZES
\*------------------------------------*/
/**
 * Font-sizes (in pixels). Refer to relevant sections for their implementations.
 */
/*------------------------------------*    $BRAND
\*------------------------------------*/
/**
 * Brand stuff
 */
/**
 * How big would you like round corners to be by default?
 */
/*------------------------------------*    $OBJECTS AND ABSTRACTIONS
\*------------------------------------*/
/**
 * Which objects and abstractions would you like to use?
 */
/*------------------------------------*    $FRAMEWORK
\*------------------------------------*/
/**
 * inuit.css will work these next ones out for use within the framework.
 *
 * Assign our `$base-line-height` to a new spacing var for more transparency.
 */
/*------------------------------------*    LOCAL VARS
\*------------------------------------*/
/*************************
* COLORS
**************************/
.c--ci {
  color: #5ac8f5; }

.bg-c--ci {
  background-color: #5ac8f5; }

.c--ci-2nd {
  color: #1a3b49; }

.bg-c--ci-2nd {
  background-color: #1a3b49; }

.c--black {
  color: #000; }

.bg-c--black {
  background-color: #000; }

.c--white {
  color: #fff; }

.bg-c--white {
  background-color: #fff; }

.c--txt {
  color: #000; }

.bg-c--txt {
  background-color: #000; }

.c--highlight {
  color: #791667; }

.bg-c--highlight {
  background-color: #791667; }

.c--grey-light {
  color: #f5f6f5; }

.bg-c--grey-light {
  background-color: #f5f6f5; }

/*------------------------------------*    INUIT.CSS
\*------------------------------------*/
/*!*
 *
 * inuitcss.com -- @inuitcss -- @csswizardry
 *
 */
/**
 * inuit.css acts as a base stylesheet which you should extend with your own
 * theme stylesheet.
 *
 * inuit.css aims to do the heavy lifting; sorting objects and abstractions,
 * design patterns and fiddly bits of CSS, whilst leaving as much design as
 * possible to you. inuit.css is the scaffolding to your decorator.
 *
 * This stylesheet is heavily documented and contains lots of comments, please
 * take care to read and refer to them as you build. For further support please
 * tweet at @inuitcss.
 *
 * Owing to the amount of comments please only ever use minified CSS in
 * production. This file is purely a dev document.
 *
 * The table of contents below maps to section titles of the same name, to jump
 * to any section simply run a find for $[SECTION-TITLE].
 *
 * Most objects and abstractions come with a chunk of markup that you should be
 * able to paste into any view to quickly see how the CSS works in conjunction
 * with the correct HTML.
 *
 * inuit.css is written to this standard: github.com/csswizardry/CSS-Guidelines
 *
 * LICENSE
 *
 * Copyright 2013 Harry Roberts
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Thank you for choosing inuit.css. May your web fonts render perfectly.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * CONTENTS............You’re reading it!
 * WARNING.............Here be dragons!
 * IMPORTS.............Begin importing the sections below
 *
 * MIXINS..............Super-simple Sass stuff
 * NORMALIZE...........normalize.css
 * RESET...............Set some defaults
 * CLEARFIX............
 * SHARED..............Shared declarations
 *
 * MAIN................High-level elements like `html`, `body`, etc.
 * HEADINGS............Double-stranded heading hierarchy
 * PARAGRAPHS..........
 * SMALLPRINT..........Smaller text elements like `small`
 * QUOTES..............
 * CODE................
 * LISTS...............
 * IMAGES..............
 * TABLES..............
 * FORMS...............
 *
 * GRIDS...............Fluid, proportional and nestable grids
 * FLEXBOX.............Crudely emulate flexbox
 * COLUMNS.............CSS3 columns
 * NAV.................A simple abstraction to put a list in horizontal nav mode
 * OPTIONS.............Grouped nav items
 * PAGINATION..........Very stripped back, basic paginator
 * BREADCRUMB..........Simple breadcrumb trail object
 * MEDIA...............Media object
 * MARGINALIA..........Simple marginalia content
 * ISLAND..............Boxed off content
 * BLOCK-LIST..........Blocky lists of content
 * MATRIX..............Gridded lists
 * SPLIT...............A simple split-in-two object
 * THIS-OR-THIS........Options object
 * LINK-COMPLEX........
 * FLYOUT..............Flyout-on-hover object
 * ARROWS..............CSS arrows
 * SPRITE..............Generic spriting element
 * ICON-TEXT...........Icon and text couplings
 * BEAUTONS............Use the beautons micro library
 * LOZENGES............Basic lozenge styles
 * RULES...............Horizontal rules
 * STATS...............Simple stats object
 * GREYBOX.............Wireframing styles
 *
 * WIDTHS..............Width classes for use alongside the grid system etc.
 * PUSH................Push classes for manipulating grids
 * PULL................Pull classes for manipulating grids
 * BRAND...............Helper class to apply brand treatment to elements
 * HELPER..............A series of helper classes to use arbitrarily
 * DEBUG...............Enable to add visual flags for debugging purposes
 */
/*------------------------------------*    $WARNING
\*------------------------------------*/
/*
 * inuit.css, being an OO framework, works in keeping with the open/closed
 * principle. The variables you set previously are now being used throughout
 * inuit.css to style everything we need for a base. Any custom styles SHOULD
 * NOT be added or modified in inuit.css directly, but added via your theme
 * stylesheet as per the open/closed principle:
 *
 * csswizardry.com/2012/06/the-open-closed-principle-applied-to-css
 *
 * Try not to edit any CSS beyond this point; if you find you need to do so
 * it is a failing of the framework so please tweet at @inuitcss.
 */
/*------------------------------------*    $IMPORTS
\*------------------------------------*/
/**
 * Generic utility styles etc.
 */
/*------------------------------------*    $DEFAULTS
\*------------------------------------*/
/**
 * inuit.css’ default variables. Redefine these in your `_vars.scss` file (found
 * in the inuit.css-web-template) to override them.
 */
/*------------------------------------*    $DEBUG
\*------------------------------------*/
/**
 * Debug mode will visually highlight any potential markup/accessibility quirks
 * in the browser. Set to `true` or `false`.
 */
/*------------------------------------*    $BORDER-BOX
\*------------------------------------*/
/**
 * Do you want all elements to adopt `box-sizing:border-box;` as per
 * paulirish.com/2012/box-sizing-border-box-ftw ?
 */
/*------------------------------------*    $BASE
\*------------------------------------*/
/**
 * Base stuff
 */
/**
 * Base font-family.
 */
/**
 * Default colour for objects’ borders etc.
 */
/*------------------------------------*    $RESPONSIVE
\*------------------------------------*/
/**
 * Responsiveness?
 */
/**
 * Responsiveness for widescreen/high resolution desktop monitors and beyond?
 * Note: `$responsive` variable above must be set to true before enabling this.
 */
/**
 * Responsive push and pull produce a LOT of code, only turn them on if you
 * definitely need them.
 */
/**
 * Note: `$push` variable above must be set to true before enabling these.
 */
/**
 * Note: `$pull` variable above must be set to true before enabling these.
 */
/**
 * Tell inuit.css when breakpoints start.
 */
/*------------------------------------*    $FONT-SIZES
\*------------------------------------*/
/**
 * Font-sizes (in pixels). Refer to relevant sections for their implementations.
 */
/*------------------------------------*    $QUOTES
\*------------------------------------*/
/**
 * English quote marks?
 */
/**
 * If you want English quotes then please do not edit these; they’re only here
 * because Sass needs them.
 */
/**
 * If you need non-English quotes, please alter the following values accordingly:
 */
/*------------------------------------*    $BRAND
\*------------------------------------*/
/**
 * Brand stuff
 */
/**
 * How big would you like round corners to be by default?
 */
/*------------------------------------*    $OBJECTS AND ABSTRACTIONS
\*------------------------------------*/
/**
 * Which objects and abstractions would you like to use?
 */
/*------------------------------------*    $FRAMEWORK
\*------------------------------------*/
/**
 * inuit.css will work these next ones out for use within the framework.
 *
 * Assign our `$base-line-height` to a new spacing var for more transparency.
 */
/*------------------------------------*    $MIXINS
\*------------------------------------*/
/**
 * Create a fully formed type style (sizing and vertical rhythm) by passing in a
 * single value, e.g.:
 *
   `@include font-size(10px);`
 *
 * Thanks to @redclov3r for the `line-height` Sass:
 * twitter.com/redclov3r/status/250301539321798657
 */
/**
 * Style any number of headings in one fell swoop, e.g.:
 *
   .foo{
       @include headings(1, 3){
           color:#BADA55;
       }
    }
 *
 * With thanks to @lar_zzz, @paranoida, @rowanmanning and ultimately
 * @thierrylemoulec for refining and improving my initial mixin.
 */
/**
 * Create vendor-prefixed CSS in one go, e.g.
 *
   `@include vendor(border-radius, 4px);`
 *
 */
/**
 * Create CSS keyframe animations for all vendors in one go, e.g.:
 *
   .foo{
       @include vendor(animation, shrink 3s);
   }

   @include keyframe(shrink){
       from{
           font-size:5em;
       }
   }
 *
 * Courtesy of @integralist: twitter.com/integralist/status/260484115315437569
 */
/**
 * Force overly long spans of text to truncate, e.g.:
 *
   `@include truncate(100%);`
 *
 * Where `$truncation-boundary` is a united measurement.
 */
/**
 * CSS arrows!!! But... before you read on, you might want to grab a coffee...
 *
 * This mixin creates a CSS arrow on a given element. We can have the arrow
 * appear in one of 12 locations, thus:
 *
 *       01    02    03
 *    +------------------+
 * 12 |                  | 04
 *    |                  |
 * 11 |                  | 05
 *    |                  |
 * 10 |                  | 06
 *    +------------------+
 *       09    08    07
 *
 * You pass this position in along with a desired arrow color and optional
 * border color, for example:
 *
 * `@include arrow(top, left, red)`
 *
 * for just a single, red arrow, or:
 *
 * `@include arrow(bottom, center, red, black)`
 *
 * which will create a red triangle with a black border which sits at the bottom
 * center of the element. Call the mixin thus:
 *
   .foo{
       background-color:#BADA55;
       border:1px solid #ACE;
       @include arrow(top, left, #BADA55, #ACE);
   }
 *
 */
/**
 * Media query mixin.
 *
 * It’s not great practice to define solid breakpoints up-front, preferring to
 * modify your design when it needs it, rather than assuming you’ll want a
 * change at ‘mobile’. However, as inuit.css is required to take a hands off
 * approach to design decisions, this is the closest we can get to baked-in
 * responsiveness. It’s flexible enough to allow you to set your own breakpoints
 * but solid enough to be frameworkified.
 *
 * We define some broad breakpoints in our vars file that are picked up here
 * for use in a simple media query mixin. Our options are:
 *
 * palm
 * lap
 * lap-and-up
 * portable
 * desk
 * desk-wide
 *
 * Not using a media query will, naturally, serve styles to all devices.
 *
 * `@include media-query(palm){ [styles here] }`
 *
 * We work out your end points for you:
 */
/*! normalize.css v2.1.0 | MIT License | git.io/normalize */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/*
 * Correct `block` display not defined in IE 8/9.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block; }

/*
 * Correct `inline-block` display not defined in IE 8/9.
 */
audio,
canvas,
video {
  display: inline-block; }

/*
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/*
 * Address styling not present in IE 8/9.
 */
[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/*
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 2 */ }

/*
 * Remove default margin.
 */
body {
  margin: 0; }

/* ==========================================================================
   Links
   ========================================================================== */
/*
 * Address `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

/*
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* ==========================================================================
   Typography
   ========================================================================== */
/*
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari 5, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/*
 * Address styling not present in IE 8/9, Safari 5, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/*
 * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/*
 * Address styling not present in Safari 5 and Chrome.
 */
dfn {
  font-style: italic; }

/*
 * Address differences between Firefox and other browsers.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0; }

/*
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/*
 * Correct font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

/*
 * Improve readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre-wrap; }

/*
 * Set consistent quote types.
 */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

/*
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

/*
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* ==========================================================================
   Embedded content
   ========================================================================== */
/*
 * Remove border when inside `a` element in IE 8/9.
 */
img {
  border: 0; }

/*
 * Correct overflow displayed oddly in IE 9.
 */
svg:not(:root) {
  overflow: hidden; }

/* ==========================================================================
   Figures
   ========================================================================== */
/*
 * Address margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */
/*
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/*
 * 1. Correct `color` not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/*
 * 1. Correct font family not being inherited in all browsers.
 * 2. Correct font size not being inherited in all browsers.
 * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
 */
button,
input,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 2 */
  margin: 0;
  /* 3 */ }

/*
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
button,
input {
  line-height: normal; }

/*
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
 * Correct `select` style inheritance in Firefox 4+ and Opera.
 */
button,
select {
  text-transform: none; }

/*
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/*
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/*
 * 1. Address box sizing set to `content-box` in IE 8/9.
 * 2. Remove excess padding in IE 8/9.
 */
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/*
 * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

/*
 * Remove inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/*
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/*
 * 1. Remove default vertical scrollbar in IE 8/9.
 * 2. Improve readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

/* ==========================================================================
   Tables
   ========================================================================== */
/*
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/*------------------------------------*    $RESET
\*------------------------------------*/
/**
 * A more considered reset; more of a restart...
 * As per: csswizardry.com/2011/10/reset-restarted
 */
/**
    * Let’s make the box model all nice, shall we...?
    */
*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box; }

/**
 * The usual...
 */
h1, h2, h3, h4, h5, h6,
p, blockquote, pre,
dl, dd, ol, ul,
form, fieldset, legend,
table, th, td, caption,
hr {
  margin: 0;
  padding: 0; }

/**
 * Give a help cursor to elements that give extra info on `:hover`.
 */
abbr[title], dfn[title] {
  cursor: help; }

/**
 * Remove underlines from potentially troublesome elements.
 */
u, ins {
  text-decoration: none; }

/**
 * Apply faux underline via `border-bottom`.
 */
ins {
  border-bottom: 1px solid; }

/**
 * So that `alt` text is visually offset if images don’t load.
 */
img {
  font-style: italic; }

/**
 * Give form elements some cursor interactions...
 */
label,
input,
textarea,
button,
select,
option {
  cursor: pointer; }

.text-input:active,
.text-input:focus,
textarea:active,
textarea:focus {
  cursor: text;
  outline: none; }

/*------------------------------------*    $CLEARFIX
\*------------------------------------*/
/**
 * Micro clearfix, as per: css-101.org/articles/clearfix/latest-new-clearfix-so-far.php
 * Extend the clearfix class with Sass to avoid the `.cf` class appearing over
 * and over in your markup.
 */
.cf:after, .nav:after {
  content: "";
  display: table;
  clear: both; }

/*------------------------------------*    $SHARED
\*------------------------------------*/
/**
 * Where `margin-bottom` is concerned, this value will be the same as the
 * base line-height. This allows us to keep a consistent vertical rhythm.
 * As per: csswizardry.com/2012/06/single-direction-margin-declarations
 */
/**
 * Base elements
 */
h1, h2, h3, h4, h5, h6, hgroup,
ul, ol, dl,
blockquote, p, address,
table,
fieldset, figure,
pre,
.form-fields > li,
.media,
.island,
.islet {
  margin-bottom: 20px;
  margin-bottom: 1.33333rem; }
  .islet h1, .islet h2, .islet h3, .islet h4, .islet h5, .islet h6, .islet hgroup, .islet
  ul, .islet ol, .islet dl, .islet
  blockquote, .islet p, .islet address, .islet
  table, .islet
  fieldset, .islet figure, .islet
  pre,
  .islet .form-fields > li, .islet
  .media, .islet
  .island, .islet
  .islet {
    margin-bottom: 10px;
    margin-bottom: 0.66667rem; }

/**
 * Doubled up `margin-bottom` helper class.
 */
.landmark {
  margin-bottom: 40px;
  margin-bottom: 2.66667rem; }

/**
 * `hr` elements only take up a few pixels, so we need to give them special
 * treatment regarding vertical rhythm.
 */
hr {
  margin-bottom: 18px;
  margin-bottom: 1.2rem; }

/**
 * Where `margin-left` is concerned we want to try and indent certain elements
 * by a consistent amount. Define that amount once, here.
 */
ul, ol, dd {
  margin-left: 40px;
  margin-left: 2.66667rem; }

/**
 * Base styles; unclassed HTML elements etc.
 */
/*------------------------------------*    $MAIN
\*------------------------------------*/
html {
  font: 0.9375em/1.33333 Arial, Helvetica, sans-serif;
  overflow-y: scroll;
  min-height: 100%; }

/*------------------------------------*    $HEADINGS
\*------------------------------------*/
/**
 * As per: csswizardry.com/2012/02/pragmatic-practical-font-sizing-in-css
 *
 * When we define a heading we also define a corresponding class to go with it.
 * This allows us to apply, say, `class=alpha` to a `h3`; a double-stranded
 * heading hierarchy.
 */
h1, .alpha {
  font-size: 36px;
  font-size: 2.4rem;
  line-height: 1.11111; }

h2, .beta {
  font-size: 30px;
  font-size: 2rem;
  line-height: 1.33333; }

h3, .gamma {
  font-size: 24px;
  font-size: 1.6rem;
  line-height: 1.66667; }

h4, .delta {
  font-size: 20px;
  font-size: 1.33333rem;
  line-height: 1; }

h5, .epsilon {
  font-size: 16px;
  font-size: 1.06667rem;
  line-height: 1.25; }

h6, .zeta {
  font-size: 14px;
  font-size: 0.93333rem;
  line-height: 1.42857; }

/**
 * Heading groups and generic any-heading class.
 * To target any heading of any level simply apply a class of `.hN`, e.g.:
 *
   <hgroup>
       <h1 class=hN>inuit.css</h1>
       <h2 class=hN>Best. Framework. Ever!</h2>
   </hgroup>
 *
 */
hgroup .hN {
  margin-bottom: 0; }

/**
 * A series of classes for setting massive type; for use in heroes, mastheads,
 * promos, etc.
 */
.giga {
  font-size: 96px;
  font-size: 6.4rem;
  line-height: 1.04167; }

.mega {
  font-size: 72px;
  font-size: 4.8rem;
  line-height: 1.11111; }

.kilo {
  font-size: 48px;
  font-size: 3.2rem;
  line-height: 1.25; }

/*------------------------------------*    $PARAGRAPHS
\*------------------------------------*/
/**
 * The `.lede` class is used to make the introductory text (usually a paragraph)
 * of a document slightly larger.
 */
.lede,
.lead {
  font-size: 16.875px;
  font-size: 1.125rem;
  line-height: 1.18519; }

/*------------------------------------*    $SMALLPRINT
\*------------------------------------*/
/**
 * A series of classes for setting tiny type; for use in smallprint etc.
 */
.smallprint,
.milli {
  font-size: 12px;
  font-size: 0.8rem;
  line-height: 1.66667; }

.micro {
  font-size: 10px;
  font-size: 0.66667rem;
  line-height: 2; }

/*------------------------------------*    $QUOTES
\*------------------------------------*/
/**
 * If English quotes are set in `_vars.scss`, define them here.
 */
/**
 * Big up @boblet: html5doctor.com/blockquote-q-cite
 */
/**
 * Inline quotes.
 */
q {
  quotes: "‘" "’" "\\201C " "\\201D "; }
  q:before {
    content: "\2018";
    content: open-quote; }
  q:after {
    content: "\2019";
    content: close-quote; }
  q q:before {
    content: "\201C";
    content: open-quote; }
  q q:after {
    content: "\201D";
    content: close-quote; }

blockquote {
  quotes: "\\201C " "\\201D "; }
  blockquote p:before {
    content: "\\201C ";
    content: open-quote; }
  blockquote p:after {
    content: "";
    content: no-close-quote; }
  blockquote p:last-of-type:after {
    content: "\\201D ";
    content: close-quote; }
  blockquote q:before {
    content: "\2018";
    content: open-quote; }
  blockquote q:after {
    content: "\2019";
    content: close-quote; }

/**
 *
   <blockquote>
       <p>Insanity: doing the same thing over and over again and expecting
       different results.</p>
       <b class=source>Albert Einstein</b>
   </blockquote>
 *
 */
blockquote {
  /**
     * .4em is roughly equal to the width of the opening “ that we wish to hang.
     */
  text-indent: -0.41em; }
  blockquote p:last-of-type {
    margin-bottom: 0; }

.source {
  display: block;
  text-indent: 0; }
  .source:before {
    content: "\2014"; }

/*------------------------------------*    $CODE
\*------------------------------------*/
/**
 * Use an explicit font stack to ensure browsers render correct `line-height`.
 */
pre {
  overflow: auto; }

pre mark {
  background: none;
  border-bottom: 1px solid;
  color: inherit; }

/**
 * Add comments to your code examples, e.g.:
 *
   <code>&lt;/div&gt;<span class=code-comment>&lt;!-- /wrapper --&gt;</span></code>
 *
 */
.code-comment {
  /**
     * Override this setting in your theme stylesheet
     */
  opacity: 0.75;
  filter: alpha(opacity=75); }

/**
 * You can add line numbers to your code examples but be warned, it requires
 * some pretty funky looking markup, e.g.:
 *
   <ol class=line-numbers>
       <li><code>.nav{</code></li>
       <li><code>    list-style:none;</code></li>
       <li><code>    margin-left:0;</code></li>
       <li><code>}</code></li>
       <li><code>    .nav > li,</code></li>
       <li><code>        .nav > li > a{</code></li>
       <li><code>            display:inline-block;</code></li>
       <li><code>           *display:inline-block;</code></li>
       <li><code>            zoom:1;</code></li>
       <li><code>        }</code></li>
   </ol>
 *
 * 1. Make the list look like code.
 * 2. Give the list flush numbers with a leading zero.
 * 3. Make sure lines of code don’t wrap.
 * 4. Give the code form by forcing the `code` to honour white-space.
 */
.line-numbers {
  font-family: monospace, serif;
  /* [1] */
  list-style: decimal-leading-zero inside;
  /* [2] */
  white-space: nowrap;
  /* [3] */
  overflow: auto;
  /* [3] */
  margin-left: 0; }

.line-numbers code {
  white-space: pre;
  /* [4] */ }

/*------------------------------------*    $IMAGES
\*------------------------------------*/
/**
 * Demo: jsfiddle.net/inuitcss/yMtur
 */
/**
 * Fluid images.
 */
img {
  max-width: 100%; }

/**
 * Non-fluid images if you specify `width` and/or `height` attributes.
 */
img[width],
img[height] {
  max-width: none; }

/**
 * Rounded images.
 */
.img--round {
  border-radius: 4px; }

/**
 * Image placement variations.
 */
.img--right {
  display: block;
  margin-bottom: 20px;
  margin-left: 20px; }
/*test LM original float: right; statt display: block; */
.img--left {
  display: block;
  margin-right: 20px;
  margin-bottom: 20px; }
/*test LM original float: left; statt display: block; */

.img--center {
  display: block;
  margin-right: auto;
  margin-bottom: 20px;
  margin-left: auto; }

/**
 * Keep your images on your baseline.
 *
 * Please note, these will not work too nicely with fluid images and will
 * distort when resized below a certain width. Use with caution.
 */
.img--short {
  height: 100px; }

.img--medium {
  height: 200px; }

.img--tall {
  height: 300px; }

/**
 * Images in `figure` elements.
 */
figure > img {
  display: block; }

/*------------------------------------*    $LISTS
\*------------------------------------*/
/**
 * Remove vertical spacing from nested lists.
 */
li > ul,
li > ol {
  margin-bottom: 0; }

/**
 * Have a numbered `ul` without the semantics implied by using an `ol`.
 */
/*ul*/
.numbered-list {
  list-style-type: decimal; }

/*------------------------------------*    $TABLES
\*------------------------------------*/
/**
 * We have a lot at our disposal for making very complex table constructs, e.g.:
 *
   <table class="table--bordered  table--striped  table--data">
       <colgroup>
           <col class=t10>
           <col class=t10>
           <col class=t10>
           <col>
       </colgroup>
       <thead>
           <tr>
               <th colspan=3>Foo</th>
               <th>Bar</th>
           </tr>
           <tr>
               <th>Lorem</th>
               <th>Ipsum</th>
               <th class=numerical>Dolor</th>
               <th>Sit</th>
           </tr>
       </thead>
       <tbody>
           <tr>
               <th rowspan=3>Sit</th>
               <td>Dolor</td>
               <td class=numerical>03.788</td>
               <td>Lorem</td>
           </tr>
           <tr>
               <td>Dolor</td>
               <td class=numerical>32.210</td>
               <td>Lorem</td>
           </tr>
           <tr>
               <td>Dolor</td>
               <td class=numerical>47.797</td>
               <td>Lorem</td>
           </tr>
           <tr>
               <th rowspan=2>Sit</th>
               <td>Dolor</td>
               <td class=numerical>09.640</td>
               <td>Lorem</td>
           </tr>
           <tr>
               <td>Dolor</td>
               <td class=numerical>12.117</td>
               <td>Lorem</td>
           </tr>
       </tbody>
   </table>
 *
 */
table {
  width: 100%; }

th,
td {
  padding: 5px;
  text-align: left; }
  @media screen and (min-width: 480px) {
    th,
    td {
      padding: 10px; } }

/**
 * Cell alignments
 */
[colspan] {
  text-align: center; }

[colspan="1"] {
  text-align: left; }

[rowspan] {
  vertical-align: middle; }

[rowspan="1"] {
  vertical-align: top; }

.numerical {
  text-align: right; }

/**
 * In the HTML above we see several `col` elements with classes whose numbers
 * represent a percentage width for that column. We leave one column free of a
 * class so that column can soak up the effects of any accidental breakage in
 * the table.
 */
.t5 {
  width: 5%; }

.t10 {
  width: 10%; }

.t12 {
  width: 12.5%; }

/* 1/8 */
.t15 {
  width: 15%; }

.t20 {
  width: 20%; }

.t25 {
  width: 25%; }

/* 1/4 */
.t30 {
  width: 30%; }

.t33 {
  width: 33.333%; }

/* 1/3 */
.t35 {
  width: 35%; }

.t37 {
  width: 37.5%; }

/* 3/8 */
.t40 {
  width: 40%; }

.t45 {
  width: 45%; }

.t50 {
  width: 50%; }

/* 1/2 */
.t55 {
  width: 55%; }

.t60 {
  width: 60%; }

.t62 {
  width: 62.5%; }

/* 5/8 */
.t65 {
  width: 65%; }

.t66 {
  width: 66.666%; }

/* 2/3 */
.t70 {
  width: 70%; }

.t75 {
  width: 75%; }

/* 3/4*/
.t80 {
  width: 80%; }

.t85 {
  width: 85%; }

.t87 {
  width: 87.5%; }

/* 7/8 */
.t90 {
  width: 90%; }

.t95 {
  width: 95%; }

/**
 * Bordered tables
 */
.table--bordered th,
.table--bordered td {
  border: 1px solid #ccc; }
  .table--bordered th:empty,
  .table--bordered td:empty {
    border: none; }

.table--bordered thead tr:last-child th {
  border-bottom-width: 2px; }

.table--bordered tbody tr th:last-of-type {
  border-right-width: 2px; }

/**
 * Striped tables
 */
.table--striped tbody tr:nth-of-type(odd) {
  background-color: #ffc;
  /* Override this color in your theme stylesheet */ }

/**
 * Data table
 */
.table--data {
  font: 12px/1.5 sans-serif; }

/*------------------------------------*    $FORMS
\*------------------------------------*/
/**
 *
 * Demo: jsfiddle.net/inuitcss/MhHHU
 *
 */
fieldset {
  padding: 20px; }

/**
 * Text inputs
 *
 * Instead of a `[type]` selector for each kind of form input, we just use a
 * class to target any/every one, e.g.:
   <input type=text class=text-input>
   <input type=email class=text-input>
   <input type=password class=text-input>
 *
 */
.text-input,
textarea {
  /**
     * Style these via your theme stylesheet.
     */ }

/**
 * Group sets of form fields in a list, e.g.:
 *
   <ul class=form-fields>
       <li>
           <label />
           <input />
       </li>
       <li>
           <label />
           <select />
       </li>
       <li>
           <label />
           <input />
       </li>
   </ul>
 *
 */
.form-fields {
  list-style: none;
  margin: 0; }

.form-fields > li:last-child {
  margin-bottom: 0; }

/**
 * Labels
 *
 * Define a `.label` class as well as a `label` element. This means we can apply
 * label-like styling to meta-labels for groups of options where a `label`
 * element is not suitable, e.g.:
 *
   <li>
       <span class=label>Select an option below:</span>
       <ul class="multi-list  four-cols">
           <li>
               <input /> <label />
           </li>
           <li>
               <input /> <label />
           </li>
           <li>
               <input /> <label />
           </li>
           <li>
               <input /> <label />
           </li>
       </ul>
   </li>
 *
 */
label,
.label {
  display: block; }

/**
     * Extra help text in `label`s, e.g.:
     *
       <label>Card number <small class=additional>No spaces</small></label>
     *
     */
.additional {
  display: block;
  font-weight: normal; }

/*
 * Groups of checkboxes and radios, e.g.:
 *
   <li>
       <ul class=check-list>
           <li>
               <input /> <label />
           </li>
           <li>
               <input /> <label />
           </li>
       </ul>
   </li>
 *
 */
.check-list {
  list-style: none;
  margin: 0; }

/*
     * Labels in check-lists
     */
.check-label,
.check-list label,
.check-list .label {
  display: inline-block; }

/**
 * Spoken forms are for forms that read like spoken word, e.g.:
 *
   <li class=spoken-form>
       Hello, my <label for=spoken-name>name</label> is
       <input type=text class=text-input id=spoken-name>. My home
       <label for=country>country</label> is
       <select id=country>
           <option>UK</option>
           <option>US</option>
           <option>Other</option>
       </select>
   </li>
 *
 */
.spoken-form label {
  display: inline-block;
  font: inherit; }

/**
 * Extra help text displayed after a field when that field is in focus, e.g.:
 *
   <label for=email>Email:</label>
   <input type=email class=text-input id=email>
   <small class=extra-help>.edu emails only</small>
 *
 * We leave the help text in the document flow and merely set it to
 * `visibility:hidden;`. This means that it won’t interfere with anything once
 * it reappears.
 *
 */
/*small*/
.extra-help {
  display: inline-block;
  visibility: hidden; }

.text-input:active + .extra-help,
.text-input:focus + .extra-help {
  visibility: visible; }

/**
 * Objects and abstractions
 */
/*------------------------------------*    $GRIDS
\*------------------------------------*/
/**
 * Fluid and nestable grid system, e.g.:
 *
   <div class="grid">

       <div class="grid__item  one-third">
           <p>One third grid</p>
       </div><!--

    --><div class="grid__item  two-thirds">
           <p>Two thirds grid</p>
       </div><!--

    --><div class="grid__item  one-half">
           <p>One half grid</p>
       </div><!--

    --><div class="grid__item  one-quarter">
           <p>One quarter grid</p>
       </div><!--

    --><div class="grid__item  one-quarter">
           <p>One quarter grid</p>
       </div>

   </div>
 *
 * Demo: jsfiddle.net/inuitcss/CLYUC
 *
 */
/**
 * Grid wrapper
 */
.grid {
  margin-left: -20px;
  list-style: none;
  margin-bottom: 0; }

/**
     * Very infrequently occuring grid wrappers as children of grid wrappers.
     */
.grid > .grid {
  margin-left: 0; }

/**
     * Grid
     */
.grid__item {
  display: inline-block;
  width: 100%;
  padding-left: 20px;
  vertical-align: top; }

/*------------------------------------*    $NAV
\*------------------------------------*/
/**
 * Nav abstraction as per: csswizardry.com/2011/09/the-nav-abstraction
 * When used on an `ol` or `ul`, this class throws the list into horizontal mode
 * e.g.:
 *
   <ul class=nav>
       <li><a href=#>Home</a></li>
       <li><a href=#>About</a></li>
       <li><a href=#>Portfolio</a></li>
       <li><a href=#>Contact</a></li>
   </ul>
 *
 * Demo: jsfiddle.net/inuitcss/Vnph4
 *
 */
.nav {
  list-style: none;
  margin-left: 0; }
  .nav > li,
  .nav > li > a {
    display: inline-block;
    *display: inline;
    zoom: 1; }

/**
 * `.nav--stacked` extends `.nav` and throws the list into vertical mode, e.g.:
 *
   <ul class="nav  nav--stacked">
       <li><a href=#>Home</a></li>
       <li><a href=#>About</a></li>
       <li><a href=#>Portfolio</a></li>
       <li><a href=#>Contact</a></li>
   </ul>
 *
 */
.nav--stacked > li {
  display: list-item; }
  .nav--stacked > li > a {
    display: block; }

/**
 * `.nav--banner` extends `.nav` and centres the list, e.g.:
 *
   <ul class="nav  nav--banner">
       <li><a href=#>Home</a></li>
       <li><a href=#>About</a></li>
       <li><a href=#>Portfolio</a></li>
       <li><a href=#>Contact</a></li>
   </ul>
 *
 */
.nav--banner {
  text-align: center; }

/**
 * Give nav links a big, blocky hit area. Extends `.nav`, e.g.:
 *
   <ul class="nav  nav--block">
       <li><a href=#>Home</a></li>
       <li><a href=#>About</a></li>
       <li><a href=#>Portfolio</a></li>
       <li><a href=#>Contact</a></li>
   </ul>
 *
 */
.nav--block {
  line-height: 1;
  /**
     * Remove whitespace caused by `inline-block`.
     */
  letter-spacing: -0.31em;
  word-spacing: -0.43em;
  white-space: nowrap; }
  .nav--block > li {
    letter-spacing: normal;
    word-spacing: normal; }
    .nav--block > li > a {
      padding: 10px; }

/**
 * Force a nav to occupy 100% of the available width of its parent. Extends
 * `.nav`, e.g.:
 *
   <ul class="nav  nav--fit">
       <li><a href=#>Home</a></li>
       <li><a href=#>About</a></li>
       <li><a href=#>Portfolio</a></li>
       <li><a href=#>Contact</a></li>
   </ul>
 *
 * Thanks to @pimpl for this idea!
 */
.nav--fit {
  display: table;
  width: 100%; }
  .nav--fit > li {
    display: table-cell; }
    .nav--fit > li > a {
      display: block; }

/**
 * Make a list of keywords. Extends `.nav`, e.g.:
 *
   `<ul class="nav  nav--keywords>`
 *
 */
.nav--keywords > li:after {
  content: "\002C" "\00A0"; }

.nav--keywords > li:last-child:after {
  display: none; }

/**
 * Style trumps; helper and brand classes
 */
/*------------------------------------*    $WIDTHS
\*------------------------------------*/
/**
 * Sizes in human readable format. These are used in conjunction with other
 * objects and abstractions found in inuit.css, most commonly the grid system
 * and faux flexbox.
 *
 * We have a mixin to generate our widths and their breakpoint-specific
 * variations.
 */
/**
    * Whole
    */
.one-whole {
  width: 100%; }

/**
    * Halves
    */
.one-half, .two-quarters, .three-sixths, .four-eighths, .five-tenths, .six-twelfths {
  width: 50%; }

/**
    * Thirds
    */
.one-third, .two-sixths, .four-twelfths, .masonry .serendipity_Entry_Date {
  width: 33.333%; }

.two-thirds, .four-sixths, .eight-twelfths {
  width: 66.666%; }

/**
    * Quarters
    */
.one-quarter, .two-eighths, .three-twelfths, #serendipityRightSideBar,
#serendipityLeftSideBar, .slider__caption__right {
  width: 25%; }

.three-quarters, .six-eighths, .nine-twelfths, #content {
  width: 75%; }

/**
    * Fifths
    */
.one-fifth, .two-tenths {
  width: 20%; }

.two-fifths, .four-tenths {
  width: 40%; }

.three-fifths, .six-tenths {
  width: 60%; }

.four-fifths, .eight-tenths {
  width: 80%; }

/**
    * Sixths
    */
.one-sixth, .two-twelfths {
  width: 16.666%; }

.five-sixths, .ten-twelfths {
  width: 83.333%; }

/**
    * Eighths
    */
.one-eighth {
  width: 12.5%; }

.three-eighths {
  width: 37.5%; }

.five-eighths {
  width: 62.5%; }

.seven-eighths {
  width: 87.5%; }

/**
    * Tenths
    */
.one-tenth {
  width: 10%; }

.three-tenths {
  width: 30%; }

.seven-tenths {
  width: 70%; }

.nine-tenths {
  width: 90%; }

/**
    * Twelfths
    */
.one-twelfth {
  width: 8.333%; }

.five-twelfths {
  width: 41.666%; }

.seven-twelfths {
  width: 58.333%; }

.eleven-twelfths {
  width: 91.666%; }

/**
 * If you have set `$responsive` to ‘true’ in `_vars.scss` then you now have
 * access to these classes. You can define at which breakpoint you’d like an
 * element to be a certain size, e.g.:
 *
 * `<div class="g  one-quarter  lap-one-half  palm-one-whole"> ... </div>`
 *
 * This would create a `div` that, at ‘desktop’ sizes, takes up a quarter of the
 * horizontal space, a half of that space at ‘tablet’ sizes, and goes full width
 * at ‘mobile’ sizes.
 *
 * Demo: jsfiddle.net/inuitcss/WS4Ge
 *
 */
@media only screen and (max-width: 480px) {
  /**
    * Whole
    */
  .palm-one-whole, .slider__caption__right {
    width: 100%; }
  /**
    * Halves
    */
  .palm-one-half, .palm-two-quarters, .palm-three-sixths, .palm-four-eighths, .palm-five-tenths, .palm-six-twelfths {
    width: 50%; }
  /**
    * Thirds
    */
  .palm-one-third, .palm-two-sixths, .palm-four-twelfths {
    width: 33.333%; }
  .palm-two-thirds, .palm-four-sixths, .palm-eight-twelfths {
    width: 66.666%; }
  /**
    * Quarters
    */
  .palm-one-quarter, .palm-two-eighths, .palm-three-twelfths {
    width: 25%; }
  .palm-three-quarters, .palm-six-eighths, .palm-nine-twelfths {
    width: 75%; }
  /**
    * Fifths
    */
  .palm-one-fifth, .palm-two-tenths {
    width: 20%; }
  .palm-two-fifths, .palm-four-tenths {
    width: 40%; }
  .palm-three-fifths, .palm-six-tenths {
    width: 60%; }
  .palm-four-fifths, .palm-eight-tenths {
    width: 80%; }
  /**
    * Sixths
    */
  .palm-one-sixth, .palm-two-twelfths {
    width: 16.666%; }
  .palm-five-sixths, .palm-ten-twelfths {
    width: 83.333%; }
  /**
    * Eighths
    */
  .palm-one-eighth {
    width: 12.5%; }
  .palm-three-eighths {
    width: 37.5%; }
  .palm-five-eighths {
    width: 62.5%; }
  .palm-seven-eighths {
    width: 87.5%; }
  /**
    * Tenths
    */
  .palm-one-tenth {
    width: 10%; }
  .palm-three-tenths {
    width: 30%; }
  .palm-seven-tenths {
    width: 70%; }
  .palm-nine-tenths {
    width: 90%; }
  /**
    * Twelfths
    */
  .palm-one-twelfth {
    width: 8.333%; }
  .palm-five-twelfths {
    width: 41.666%; }
  .palm-seven-twelfths {
    width: 58.333%; }
  .palm-eleven-twelfths {
    width: 91.666%; } }

@media only screen and (min-width: 481px) and (max-width: 767px) {
  /**
    * Whole
    */
  .lap-one-whole, .slider__caption__right {
    width: 100%; }
  /**
    * Halves
    */
  .lap-one-half, .lap-two-quarters, .lap-three-sixths, .lap-four-eighths, .lap-five-tenths, .lap-six-twelfths {
    width: 50%; }
  /**
    * Thirds
    */
  .lap-one-third, .lap-two-sixths, .lap-four-twelfths {
    width: 33.333%; }
  .lap-two-thirds, .lap-four-sixths, .lap-eight-twelfths {
    width: 66.666%; }
  /**
    * Quarters
    */
  .lap-one-quarter, .lap-two-eighths, .lap-three-twelfths {
    width: 25%; }
  .lap-three-quarters, .lap-six-eighths, .lap-nine-twelfths {
    width: 75%; }
  /**
    * Fifths
    */
  .lap-one-fifth, .lap-two-tenths {
    width: 20%; }
  .lap-two-fifths, .lap-four-tenths {
    width: 40%; }
  .lap-three-fifths, .lap-six-tenths {
    width: 60%; }
  .lap-four-fifths, .lap-eight-tenths {
    width: 80%; }
  /**
    * Sixths
    */
  .lap-one-sixth, .lap-two-twelfths {
    width: 16.666%; }
  .lap-five-sixths, .lap-ten-twelfths {
    width: 83.333%; }
  /**
    * Eighths
    */
  .lap-one-eighth {
    width: 12.5%; }
  .lap-three-eighths {
    width: 37.5%; }
  .lap-five-eighths {
    width: 62.5%; }
  .lap-seven-eighths {
    width: 87.5%; }
  /**
    * Tenths
    */
  .lap-one-tenth {
    width: 10%; }
  .lap-three-tenths {
    width: 30%; }
  .lap-seven-tenths {
    width: 70%; }
  .lap-nine-tenths {
    width: 90%; }
  /**
    * Twelfths
    */
  .lap-one-twelfth {
    width: 8.333%; }
  .lap-five-twelfths {
    width: 41.666%; }
  .lap-seven-twelfths {
    width: 58.333%; }
  .lap-eleven-twelfths {
    width: 91.666%; } }

@media only screen and (min-width: 481px) {
  /**
    * Whole
    */
  .lap-and-up-one-whole {
    width: 100%; }
  /**
    * Halves
    */
  .lap-and-up-one-half, .lap-and-up-two-quarters, .lap-and-up-three-sixths, .lap-and-up-four-eighths, .lap-and-up-five-tenths, .lap-and-up-six-twelfths {
    width: 50%; }
  /**
    * Thirds
    */
  .lap-and-up-one-third, .lap-and-up-two-sixths, .lap-and-up-four-twelfths {
    width: 33.333%; }
  .lap-and-up-two-thirds, .lap-and-up-four-sixths, .lap-and-up-eight-twelfths {
    width: 66.666%; }
  /**
    * Quarters
    */
  .lap-and-up-one-quarter, .lap-and-up-two-eighths, .lap-and-up-three-twelfths {
    width: 25%; }
  .lap-and-up-three-quarters, .lap-and-up-six-eighths, .lap-and-up-nine-twelfths {
    width: 75%; }
  /**
    * Fifths
    */
  .lap-and-up-one-fifth, .lap-and-up-two-tenths {
    width: 20%; }
  .lap-and-up-two-fifths, .lap-and-up-four-tenths {
    width: 40%; }
  .lap-and-up-three-fifths, .lap-and-up-six-tenths {
    width: 60%; }
  .lap-and-up-four-fifths, .lap-and-up-eight-tenths {
    width: 80%; }
  /**
    * Sixths
    */
  .lap-and-up-one-sixth, .lap-and-up-two-twelfths {
    width: 16.666%; }
  .lap-and-up-five-sixths, .lap-and-up-ten-twelfths {
    width: 83.333%; }
  /**
    * Eighths
    */
  .lap-and-up-one-eighth {
    width: 12.5%; }
  .lap-and-up-three-eighths {
    width: 37.5%; }
  .lap-and-up-five-eighths {
    width: 62.5%; }
  .lap-and-up-seven-eighths {
    width: 87.5%; }
  /**
    * Tenths
    */
  .lap-and-up-one-tenth {
    width: 10%; }
  .lap-and-up-three-tenths {
    width: 30%; }
  .lap-and-up-seven-tenths {
    width: 70%; }
  .lap-and-up-nine-tenths {
    width: 90%; }
  /**
    * Twelfths
    */
  .lap-and-up-one-twelfth {
    width: 8.333%; }
  .lap-and-up-five-twelfths {
    width: 41.666%; }
  .lap-and-up-seven-twelfths {
    width: 58.333%; }
  .lap-and-up-eleven-twelfths {
    width: 91.666%; } }

@media only screen and (max-width: 767px) {
  /**
    * Whole
    */
  .portable-one-whole {
    width: 100%; }
  /**
    * Halves
    */
  .portable-one-half, .portable-two-quarters, .portable-three-sixths, .portable-four-eighths, .portable-five-tenths, .portable-six-twelfths {
    width: 50%; }
  /**
    * Thirds
    */
  .portable-one-third, .portable-two-sixths, .portable-four-twelfths {
    width: 33.333%; }
  .portable-two-thirds, .portable-four-sixths, .portable-eight-twelfths {
    width: 66.666%; }
  /**
    * Quarters
    */
  .portable-one-quarter, .portable-two-eighths, .portable-three-twelfths {
    width: 25%; }
  .portable-three-quarters, .portable-six-eighths, .portable-nine-twelfths {
    width: 75%; }
  /**
    * Fifths
    */
  .portable-one-fifth, .portable-two-tenths {
    width: 20%; }
  .portable-two-fifths, .portable-four-tenths {
    width: 40%; }
  .portable-three-fifths, .portable-six-tenths {
    width: 60%; }
  .portable-four-fifths, .portable-eight-tenths {
    width: 80%; }
  /**
    * Sixths
    */
  .portable-one-sixth, .portable-two-twelfths {
    width: 16.666%; }
  .portable-five-sixths, .portable-ten-twelfths {
    width: 83.333%; }
  /**
    * Eighths
    */
  .portable-one-eighth {
    width: 12.5%; }
  .portable-three-eighths {
    width: 37.5%; }
  .portable-five-eighths {
    width: 62.5%; }
  .portable-seven-eighths {
    width: 87.5%; }
  /**
    * Tenths
    */
  .portable-one-tenth {
    width: 10%; }
  .portable-three-tenths {
    width: 30%; }
  .portable-seven-tenths {
    width: 70%; }
  .portable-nine-tenths {
    width: 90%; }
  /**
    * Twelfths
    */
  .portable-one-twelfth {
    width: 8.333%; }
  .portable-five-twelfths {
    width: 41.666%; }
  .portable-seven-twelfths {
    width: 58.333%; }
  .portable-eleven-twelfths {
    width: 91.666%; } }

@media only screen and (min-width: 768px) {
  /**
    * Whole
    */
  .desk-one-whole {
    width: 100%; }
  /**
    * Halves
    */
  .desk-one-half, .desk-two-quarters, .desk-three-sixths, .desk-four-eighths, .desk-five-tenths, .desk-six-twelfths {
    width: 50%; }
  /**
    * Thirds
    */
  .desk-one-third, .desk-two-sixths, .desk-four-twelfths {
    width: 33.333%; }
  .desk-two-thirds, .desk-four-sixths, .desk-eight-twelfths {
    width: 66.666%; }
  /**
    * Quarters
    */
  .desk-one-quarter, .desk-two-eighths, .desk-three-twelfths {
    width: 25%; }
  .desk-three-quarters, .desk-six-eighths, .desk-nine-twelfths {
    width: 75%; }
  /**
    * Fifths
    */
  .desk-one-fifth, .desk-two-tenths {
    width: 20%; }
  .desk-two-fifths, .desk-four-tenths {
    width: 40%; }
  .desk-three-fifths, .desk-six-tenths {
    width: 60%; }
  .desk-four-fifths, .desk-eight-tenths {
    width: 80%; }
  /**
    * Sixths
    */
  .desk-one-sixth, .desk-two-twelfths {
    width: 16.666%; }
  .desk-five-sixths, .desk-ten-twelfths {
    width: 83.333%; }
  /**
    * Eighths
    */
  .desk-one-eighth {
    width: 12.5%; }
  .desk-three-eighths {
    width: 37.5%; }
  .desk-five-eighths {
    width: 62.5%; }
  .desk-seven-eighths {
    width: 87.5%; }
  /**
    * Tenths
    */
  .desk-one-tenth {
    width: 10%; }
  .desk-three-tenths {
    width: 30%; }
  .desk-seven-tenths {
    width: 70%; }
  .desk-nine-tenths {
    width: 90%; }
  /**
    * Twelfths
    */
  .desk-one-twelfth {
    width: 8.333%; }
  .desk-five-twelfths {
    width: 41.666%; }
  .desk-seven-twelfths {
    width: 58.333%; }
  .desk-eleven-twelfths {
    width: 91.666%; } }

/**
 * If you have set the additional `$responsive-extra` variable to ‘true’ in
 * `_vars.scss` then you now have access to the following class available to
 * accomodate much larger screen resolutions.
 */
/* endif */
/*------------------------------------*    $PUSH
\*------------------------------------*/
/**
 * Push classes, to move grid items over to the right by certain amounts.
 */
/*------------------------------------*    $PULL
\*------------------------------------*/
/**
 * Pull classes, to move grid items over to the right by certain amounts.
 */
/*------------------------------------*    $BRAND
\*------------------------------------*/
/**
 * `.brand` is a quick and simple way to apply your brand face and/or color to
 * any element using a handy helper class.
 */
.brand {
  font-family: "Helvetica Neue", sans-serif!important;
  color: #4a8ec2!important; }

.brand-face {
  font-family: "Helvetica Neue", sans-serif!important; }

.brand-color,
.brand-colour {
  color: #4a8ec2!important; }

/*------------------------------------*    $HELPER
\*------------------------------------*/
/**
 * A series of helper classes to use arbitrarily. Only use a helper class if an
 * element/component doesn’t already have a class to which you could apply this
 * styling, e.g. if you need to float `.main-nav` left then add `float:left;` to
 * that ruleset as opposed to adding the `.float--left` class to the markup.
 *
 * A lot of these classes carry `!important` as you will always want them to win
 * out over other selectors.
 */
/**
 * Add/remove floats
 */
.float--right {
  float: right !important; }

.float--left {
  float: left !important; }

.float--none {
  float: none !important; }

/**
 * Text alignment
 */
.text--left {
  text-align: left  !important; }

.text--center {
  text-align: center !important; }

.text--right {
  text-align: right !important; }

/**
 * Font weights
 */
.weight--light {
  font-weight: 300 !important; }

.weight--normal {
  font-weight: 400 !important; }

.weight--semibold {
  font-weight: 600 !important; }

/**
 * Add/remove margins
 */
.push {
  margin: 20px !important; }

.push--top {
  margin-top: 20px !important; }

.push--right {
  margin-right: 20px !important; }

.push--bottom {
  margin-bottom: 20px !important; }

.push--left {
  margin-left: 20px !important; }

.push--ends {
  margin-top: 20px !important;
  margin-bottom: 20px !important; }

.push--sides {
  margin-right: 20px !important;
  margin-left: 20px !important; }

.push-half {
  margin: 10px !important; }

.push-half--top {
  margin-top: 10px !important; }

.push-half--right {
  margin-right: 10px !important; }

.push-half--bottom {
  margin-bottom: 10px !important; }

.push-half--left {
  margin-left: 10px !important; }

.push-half--ends {
  margin-top: 10px !important;
  margin-bottom: 10px !important; }

.push-half--sides {
  margin-right: 10px !important;
  margin-left: 10px !important; }

.flush {
  margin: 0 !important; }

.flush--top {
  margin-top: 0 !important; }

.flush--right {
  margin-right: 0 !important; }

.flush--bottom {
  margin-bottom: 0 !important; }

.flush--left {
  margin-left: 0 !important; }

.flush--ends {
  margin-top: 0 !important;
  margin-bottom: 0 !important; }

.flush--sides {
  margin-right: 0 !important;
  margin-left: 0 !important; }

/**
 * Add/remove paddings
 */
.soft {
  padding: 20px !important; }

.soft--top {
  padding-top: 20px !important; }

.soft--right {
  padding-right: 20px !important; }

.soft--bottom {
  padding-bottom: 20px !important; }

.soft--left {
  padding-left: 20px !important; }

.soft--ends {
  padding-top: 20px !important;
  padding-bottom: 20px !important; }

.soft--sides {
  padding-right: 20px !important;
  padding-left: 20px !important; }

.soft-half {
  padding: 10px !important; }

.soft-half--top {
  padding-top: 10px !important; }

.soft-half--right {
  padding-right: 10px !important; }

.soft-half--bottom {
  padding-bottom: 10px !important; }

.soft-half--left {
  padding-left: 10px !important; }

.soft-half--ends {
  padding-top: 10px !important;
  padding-bottom: 10px !important; }

.soft-half--sides {
  padding-right: 10px !important;
  padding-left: 10px !important; }

.hard {
  padding: 0 !important; }

.hard--top {
  padding-top: 0 !important; }

.hard--right {
  padding-right: 0 !important; }

.hard--bottom {
  padding-bottom: 0 !important; }

.hard--left {
  padding-left: 0 !important; }

.hard--ends {
  padding-top: 0 !important;
  padding-bottom: 0 !important; }

.hard--sides {
  padding-right: 0 !important;
  padding-left: 0 !important; }

/**
 * Pull items full width of `.island` parents.
 */
.full-bleed {
  margin-right: -20px !important;
  margin-left: -20px !important; }
  .islet .full-bleed {
    margin-right: -10px !important;
    margin-left: -10px !important; }

/**
 * Add a help cursor to any element that gives the user extra information on
 * `:hover`.
 */
.informative {
  cursor: help !important; }

/**
 * Mute an object by reducing its opacity.
 */
.muted {
  opacity: 0.5 !important;
  filter: alpha(opacity=50) !important; }

/**
 * Align items to the right where they imply progression/movement forward, e.g.:
 *
   <p class=proceed><a href=#>Read more...</a></p>
 *
 */
.proceed {
  text-align: right !important; }

/**
 * Add a right-angled quote to links that imply movement, e.g.:
 *
   <a href=# class=go>Read more</a>
 *
 */
.go:after {
  content: " " "»" !important; }

/**
 * Apply capital case to an element (usually a `strong`).
 */
.caps {
  text-transform: uppercase !important; }

/**
 * Hide content off-screen without resorting to `display:none;`, also provide
 * breakpoint specific hidden elements.
 */
.accessibility,
.visuallyhidden {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important; }

@media only screen and (max-width: 480px) {
  .accessibility--palm,
  .visuallyhidden--palm {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important; } }

@media only screen and (min-width: 481px) and (max-width: 767px) {
  .accessibility--lap,
  .visuallyhidden--lap {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important; } }

@media only screen and (min-width: 481px) {
  .accessibility--lap-and-up,
  .visuallyhidden--lap-and-up {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important; } }

@media only screen and (max-width: 767px) {
  .accessibility--portable,
  .visuallyhidden--portable {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important; } }

@media only screen and (min-width: 768px) {
  .accessibility--desk,
  .visuallyhidden--desk {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important; } }

@media only screen and (min-width: 1024px) {
  .accessibility--desk-wide,
  .visuallyhidden--desk-wide {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important; } }

/* endif */
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

/* Slider */
.slick-loading .slick-list {
  background: #fff url("./ajax-loader.gif") center center no-repeat; }

/* Icons */
@font-face {
  font-family: "slick";
  src: url("./fonts/slick.eot");
  src: url("./fonts/slick.eot?#iefix") format("embedded-opentype"), url("./fonts/slick.woff") format("woff"), url("./fonts/slick.ttf") format("truetype"), url("./fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal; }

/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  margin-top: -10px\9;
  /*lte IE 8*/
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none; }
  .slick-prev:hover, .slick-prev:focus,
  .slick-next:hover,
  .slick-next:focus {
    outline: none;
    background: transparent;
    color: transparent; }
    .slick-prev:hover:before, .slick-prev:focus:before,
    .slick-next:hover:before,
    .slick-next:focus:before {
      opacity: 1; }
  .slick-prev.slick-disabled:before,
  .slick-next.slick-disabled:before {
    opacity: 0.25; }

.slick-prev:before, .slick-next:before {
  font-family: "slick";
  font-size: 20px;
  line-height: 1;
  color: white;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.slick-prev {
  left: -25px; }
  [dir="rtl"] .slick-prev {
    left: auto;
    right: -25px; }
  .slick-prev:before {
    content: "←"; }
    [dir="rtl"] .slick-prev:before {
      content: "→"; }

.slick-next {
  right: -25px; }
  [dir="rtl"] .slick-next {
    left: -25px;
    right: auto; }
  .slick-next:before {
    content: "→"; }
    [dir="rtl"] .slick-next:before {
      content: "←"; }

/* Dots */
.slick-slider {
  margin-bottom: 30px; }

.slick-dots {
  position: absolute;
  bottom: -45px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  width: 100%; }
  .slick-dots li {
    position: relative;
    display: inline-block;
    height: 20px;
    width: 20px;
    margin: 0 5px;
    padding: 0;
    cursor: pointer; }
    .slick-dots li button {
      border: 0;
      background: transparent;
      display: block;
      height: 20px;
      width: 20px;
      outline: none;
      line-height: 0px;
      font-size: 0px;
      color: transparent;
      padding: 5px;
      cursor: pointer; }
      .slick-dots li button:hover, .slick-dots li button:focus {
        outline: none; }
        .slick-dots li button:hover:before, .slick-dots li button:focus:before {
          opacity: 1; }
      .slick-dots li button:before {
        position: absolute;
        top: 0;
        left: 0;
        content: "•";
        width: 20px;
        height: 20px;
        font-family: "slick";
        font-size: 6px;
        line-height: 20px;
        text-align: center;
        color: black;
        opacity: 0.25;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
    .slick-dots li.slick-active button:before {
      color: black;
      opacity: 0.75; }

/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
.fancybox-wrap,
.fancybox-skin,
.fancybox-outer,
.fancybox-inner,
.fancybox-image,
.fancybox-wrap iframe,
.fancybox-wrap object,
.fancybox-nav,
.fancybox-nav span,
.fancybox-tmp {
  padding: 0;
  margin: 0;
  border: 0;
  outline: none;
  vertical-align: top; }

.fancybox-wrap {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 8020; }

.fancybox-skin {
  position: relative;
  background: #fff;
  color: #444;
  text-shadow: none; }

.fancybox-opened {
  z-index: 8030; }

.fancybox-opened .fancybox-skin {
  -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); }

.fancybox-outer, .fancybox-inner {
  position: relative; }

.fancybox-inner {
  overflow-x: hidden !important;
  overflow-y: auto !important; }

.fancybox-type-iframe .fancybox-inner {
  -webkit-overflow-scrolling: touch; }

.fancybox-error {
  color: #444;
  font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
  margin: 0;
  padding: 15px;
  white-space: nowrap; }

.fancybox-image, .fancybox-iframe {
  display: block;
  width: 100%;
  height: 100%; }

.fancybox-image {
  max-width: 100%;
  max-height: 100%; }

#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
  background-image: url("http://blog.goethe.de/responsive/uploads/icons/fancybox_sprite.png"); }

#fancybox-loading {
  position: fixed;
  top: 50%;
  left: 50%;
  margin-top: -22px;
  margin-left: -22px;
  background-position: 0 -108px;
  opacity: 0.8;
  cursor: pointer;
  z-index: 8060; }

#fancybox-loading div {
  width: 44px;
  height: 44px;
  background: url("http://blog.goethe.de/responsive/uploads/icons/fancybox_loading.gif") center center no-repeat; }

.fancybox-close {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 36px;
  height: 36px;
  cursor: pointer;
  z-index: 8040; }

.fancybox-nav {
  position: absolute;
  top: 0;
  width: 40%;
  height: 100%;
  cursor: pointer;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  z-index: 8040; }

.fancybox-prev {
  left: -45px; }

.fancybox-next {
  right: -45px; }

.fancybox-nav span {
  position: absolute;
  top: 50%;
  width: 36px;
  height: 34px;
  margin-top: -18px;
  cursor: pointer;
  z-index: 8040;
  visibility: hidden; }

.fancybox-prev span {
  left: 10px;
  background-position: 0 -36px; }

.fancybox-next span {
  right: 10px;
  background-position: 0 -72px; }

.fancybox-nav:hover span {
  visibility: visible; }

.fancybox-tmp {
  position: absolute;
  top: -99999px;
  left: -99999px;
  visibility: hidden;
  max-width: 99999px;
  max-height: 99999px;
  overflow: visible !important; }

/* Overlay helper */
.fancybox-lock {
  overflow: hidden !important;
  width: auto; }

.fancybox-lock body {
  overflow: hidden !important; }

.fancybox-lock-test {
  overflow-y: hidden !important; }

.fancybox-overlay {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  display: none;
  z-index: 8010;
  background: url("http://blog.goethe.de/responsive/uploads/icons/fancybox_overlay.png"); }

.fancybox-overlay-fixed {
  position: fixed;
  bottom: 0;
  right: 0; }

.fancybox-lock .fancybox-overlay {
  overflow: auto;
  overflow-y: scroll; }

/* Title helper */
.fancybox-title {
  visibility: hidden;
  font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
  position: relative;
  text-shadow: none;
  z-index: 8050; }

.fancybox-opened .fancybox-title {
  visibility: visible; }

.fancybox-title-float-wrap {
  position: absolute;
  bottom: 0;
  right: 50%;
  margin-bottom: -35px;
  z-index: 8050;
  text-align: center; }

.fancybox-title-float-wrap .child {
  display: inline-block;
  margin-right: -100%;
  padding: 2px 20px;
  background: transparent;
  /* Fallback for web browsers that doesn't support RGBa */
  background: rgba(0, 0, 0, 0.8);
  text-shadow: 0 1px 2px #222;
  color: #FFF;
  line-height: 24px;
  white-space: nowrap; }

.fancybox-title-outside-wrap {
  position: relative;
  margin-top: 10px;
  color: #fff; }

.fancybox-title-inside-wrap {
  padding-top: 10px; }

.fancybox-title-over-wrap {
  position: absolute;
  bottom: 0;
  left: 0;
  color: #fff;
  padding: 10px;
  background: #000;
  background: rgba(0, 0, 0, 0.8); }

/*Retina graphics!*/
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
  #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
    background-image: url("http://blog.goethe.de/responsive/uploads/icons/fancybox_sprite2x2.png");
    background-size: 44px 152px;
    /*The size of the normal image, half the size of the hi-res image*/ } }

.font--base {
  font-family: Arial, Helvetica, sans-serif;
  font-style: normal;
  font-size: 15px;
  line-height: 20px; }

.font--base--important {
  font-family: Arial, Helvetica, sans-serif !important; }

.font--bold {
  font-weight: bold; }

.font--normal {
  font-weight: normal !important; }

.font--italic {
  font-style: italic; }

/* H's */
h1, h2, h3, h4, h5, h6 {
  margin-bottom: 0; }

h2, .beta {
  line-height: 1; }

abbr[title] {
  border-bottom: none; }

.font--positive {
  color: #000; }

.font--negative {
  color: #fff; }

.uppercase {
  text-transform: uppercase; }

.text-align--center {
  text-align: center; }

.text-align--right {
  text-align: right; }

.display--inline-block {
  display: inline-block; }

/*

.hide--palm {
	@include media-query(palm) {
		display: none;
	}
}

.hide--desk {
	@include media-query(desk) {
		display: none;
	}
}

.hide--lap {
	@include media-query(lap) {
		display: none;
	}
}
*/
.sprite--inline-block, .svg-icon {
  vertical-align: middle;
  display: inline-block; }

.icon--rounded {
  border-radius: 50%;
  border: 2px solid #5ac8f5;
  background-color: #fff !important; }

.rotated--90 {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg); }

.rotated--180 {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg); }

.rotated--270 {
  -webkit-transform: rotate(270deg);
      -ms-transform: rotate(270deg);
          transform: rotate(270deg); }

.svg-icon-burger {
  -webkit-transform: scale(0.7);
      -ms-transform: scale(0.7);
          transform: scale(0.7);
  display: inline-block;
  vertical-align: middle;
  margin-top: -4px; }

.gi-mark {
  display: inline-block;
  padding-left: 5%;
  line-height: 1.8;
  font-size: 18px; }

body {
  padding-left: 10px;
  padding-right: 10px; }

.blog-logo {
  padding-top: 30px;
  padding-bottom: 20px;
  text-align: left;
  margin: 0 auto;
  max-width: 1280px;
  width: 100%; }

#wrapper {
  background: none !important;
  border: none;
  margin: 0px auto;
  font-size: inherit;
  max-width: 1280px;
  width: 100%;
  padding: 0px !important; }


#serendipity_banner {
	display: none;
}

	/** test LM
#serendipity_banner {
    font-size: 1px;
    font-family: Verdana, Arial, sans-serif;
    color: #FFFFFF;
    background-image:url(/arthousefilm/uploads/arthousefilm-banner.jpg);
width: 100%;
	display: block;
text-align: center;
	margin: 0px;
	padding: 0px;

  
*/
#banner, .blog-title {
  margin: 0 auto;
  max-width: 1280px;
  width: 100%; }
  #banner img, .blog-title img {
    padding: 0 !important; }

.blog-title {
  position: relative;
  visibility: visible !important; }
  .blog-title > div {
    position: absolute;
    left: 4%;
    margin-top: 4%;
    z-index: 9000;
    line-height: 1; }

.entry-title, .serendipity_date {
  background: #fff;
  padding: 20px 20px 1em 20px; }

.serendipity_date {
  padding-bottom: 0; }
  .serendipity_date abbr {
    text-decoration: -moz-none;
    cursor: initial; }

.serendipitySideBarItem {
  margin: 0 0 1px 20px; }

#searchform br {
  display: none; }

.staticpage_metainfo, .staticpage_author {
  display: none; }

.video-wrap {
  position: relative;
  display: block;
  height: 0;
  width: 100%;
  padding: 0;
  overflow: hidden; }
  .video-wrap > br {
    display: none; }
  .video-wrap > iframe, .video-wrap > div {
    position: absolute;
    width: 100% !important;
    height: 100% !important; }
  .video-wrap._16by9 {
    padding-bottom: 56.25%; }
  .video-wrap._4by3 {
    padding-bottom: 75%; }

.nav-category {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  max-width: 1024px;
  width: 100%; }
  @media screen and (max-width: 768px) {
    .nav-category {
      width: 100%;
      padding: 0;
      overflow: hidden; } }

.nav-category__head {
  display: inline-block; }
  @media screen and (max-width: 768px) {
    .nav-category__head {
      display: block;
      padding: 10px; }
      .nav-category__head > b > span {
        display: none; }
      .nav-category__head:after {
        content: "";
        display: inline-block;
        margin-left: 5px; } }

.nav-category__inner {
  display: inline-block;
  -webkit-transition: height 0.3s;
          transition: height 0.3s; }
  @media screen and (max-width: 768px) {
    .nav-category__inner {
      display: block; } }
  @media screen and (max-width: 481px) {
    .nav-category__inner {
      height: 0; }
      .nav-category__inner > a {
        display: block; }
      .nav-category__inner > span {
        display: none; } }

@media screen and (max-width: 768px) {
  .nav-category__inner__aligner {
    padding: 10px; } }

@media screen and (max-width: 481px) {
  .nav-category__inner__aligner > a {
    display: block; }
  .nav-category__inner__aligner > span {
    display: none; } }

.mobile-nav {
  display: none;
  position: fixed;
  background: #1a3b49;
  top: 0;
  left: 20px;
  right: 20px;
  z-index: 9000;
  -webkit-transition: height 0.3s;
          transition: height 0.3s;
  overflow: hidden; }
  @media screen and (max-width: 768px) {
    .mobile-nav {
      display: block !important; } }

.mobile-nav__lang {
  display: inline-block;
  width: 80%; }
  .mobile-nav__lang form {
    text-align: right; }
    .mobile-nav__lang form > div {
      display: inline-block;
      margin-right: 10px; }
      .mobile-nav__lang form > div:after {
        content: "";
        display: inline-block;
        margin-left: 3px; }
  .mobile-nav__lang select {
    direction: rtl;
    -webkit-appearance: none;
    border: none !important;
    color: #fff;
    text-transform: uppercase;
    font-weight: bold;
    background-color: transparent !important; }

.mobile-nav__inner {
  height: 0;
  -webkit-transition: height 0.3s;
          transition: height 0.3s; }

.mobile-nav__head {
  display: none; }

.mobile-nav__inner__aligner {
  padding: 10px; }
  .mobile-nav__inner__aligner > a {
    text-transform: uppercase;
    display: block;
    color: #fff;
    line-height: 1.8em; }

@media screen and (max-width: 768px) {
  #banner_language > a > img:first-child {
    display: none !important; } }

#banner_language > a > img:first-child + img {
  display: none; }
  @media screen and (max-width: 768px) {
    #banner_language > a > img:first-child + img {
      display: block !important;
      margin: 0 auto; } }

#content {
  margin-left: 0;
  margin-right: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }
  #content > br {
    display: none; }

.serendipity_comment {
  padding: 0;
  font-weight: bold;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #000; }

.serendipity_commentBody {
  padding-top: 0; }

#serendipityRightSideBar,
#serendipityLeftSideBar {
  margin-left: inherit;
  margin-right: inherit;
  margin-top: 20px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }
  #serendipityRightSideBar > *,
  #serendipityLeftSideBar > * {
    padding: 10px; }

.entry-content {
  margin-bottom: 40px;
  margin-right: 80px; }

.masonry .entry-content {
  margin-right: 0; }

.masonry .full-width .entry-content {
  margin-right: 80px; }

.sidenav-html-nugget-inner {
  margin: -10px;
  padding: 10px; }

.serendipitySideBarContent input[type="text"],
.serendipitySideBarContent input[type="submit"],
.serendipitySideBarContent select {
  width: 100%;
  padding: 8px 5px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  border-radius: 0; }

.serendipitySideBarContent select {
  font-size: inherit !important; }

.serendipitySideBarContent .category_submit {
  float: left;
  margin-top: 10px; }
  .serendipitySideBarContent .category_submit br {
    display: none; }
  .serendipitySideBarContent .category_submit input {
    width: 50px; }

.serendipitySideBarContent .category_link_all {
  clear: left; }

.serendipitySideBarContent #serendipity_categories_list li > * {
  display: inline-block;
  vertical-align: middle; }

#sitenav, #sitenav-manuell {
  margin: 0 -500px 20px 0;
  padding: 10px;
  text-align: left;
  border: none;
  overflow: hidden; }
  #sitenav ul, #sitenav-manuell ul {
    float: left;
    margin-top: 10px;
    margin-bottom: 0; }
  #sitenav #searchform, #sitenav-manuell #searchform {
    display: none !important;
    width: 33.3333%;
    display: block;
    margin-bottom: 10px;
    margin-top: 10px;
    padding-left: 29px; }
    #sitenav #searchform input, #sitenav-manuell #searchform input {
      padding: 6px;
      width: 100%;
      border-radius: 0; }

#sitenav-manuell > ul {
  width: 100%;
  margin: 0; }
  #sitenav-manuell > ul > li {
    margin: 0;
    padding: 0;
    display: inline-block;
    font-weight: normal; }
    #sitenav-manuell > ul > li > a {
      border: none;
      margin: 0;
      padding: 9px 20px 5px 10px;
      overflow: hidden;
      display: block; }

.serendipity_comments {
  padding-left: 20px; }

.serendipity_entry {
  background: #fff;
  padding-left: 20px;
  padding-bottom: 20px;
  padding-right: 20px; }
  .serendipity_entry img {
    width: 100%;
    padding: 0;
    margin-bottom: 10px;
    height: auto; }

.masronry .serendipity_entry {
  padding: 0 10%; }

.serendipity_entry .serendipity_image_left {
  width: 50%;
  height: auto;
  margin-right: 1.55em !important;
  margin-bottom: 1em !important;
  padding: 0 !important; 
	text-align: center;
	}
	/*test LM */

iframe {
  width: 100%; }

.serendipity_Entry_Date {
  margin: 0 0 20px 0; }
  .serendipity_Entry_Date.full-width {
    background: #ffffff; }

.serendipity_title {
  padding-left: 20px;
  padding-top: 1em;
  padding-bottom: 1em; }

.masonry .serendipity_Entry_Date {
  display: none;
  padding-left: 20px;
  padding-bottom: 0;
  float: left;
  -webkit-transition: all 200ms ease;
          transition: all 200ms ease;
  -webkit-transition-property: margin, opacity;
          transition-property: margin, opacity; }
  .masonry .serendipity_Entry_Date.hentry {
    display: block;
float: left;}
/* test LM: zusätzliche Zeile float: left; */
  .masonry .serendipity_Entry_Date.greyed {
    opacity: 0.5; }
  .masonry .serendipity_Entry_Date.full-width {
    display: block !important;
    width: 100% !important;
    padding-left: 0; }
    .masonry .serendipity_Entry_Date.full-width img {
      margin: 0;
      width: 100%;
      margin: 0 10px 0 0; }
      .masonry .serendipity_Entry_Date.full-width img.serendipity_image_left {
        float: center; }
/*test LM: original float: left; */
.serendipity_pageFooter {
  padding-top: 40px;
  padding-bottom: 40px; }

.container_serendipity_quicksearch_plugin .quicksearch_submit {
  right: 0;
  top: 0;
  position: absolute;
  z-index: 9000;
  background: transparent; }

table.serendipity_calendar {
  width: 100%; }
  table.serendipity_calendar th, table.serendipity_calendar td {
    padding: 3px;
    text-align: center; }
  table.serendipity_calendar th#forward {
    text-align: right !important; }

.slider--banner {
  -webkit-transition: opacity 0.3s;
          transition: opacity 0.3s;
  opacity: 0; }
  .slider--banner.show {
    opacity: 1 !important; }
  .slider--banner .image_copyright {
    right: 5px; }

.slick-slide {
  position: relative; }

.slick-next {
  right: 0;
  z-index: 9000; }

.slick-prev {
  left: 0;
  z-index: 9000; }

.slider__caption {
  padding: 10px 20px;
  text-align: left;
  background: #fff; }

.slider__caption__right {
  text-align: left;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0; }

.slider__caption__right__inner {
  background: #fff;
  margin-left: 20px;
  padding: 20px;
  height: 100%;
  position: relative; }

.slider__caption__right__main {
  position: absolute;
  bottom: 20px;
  right: 20px;
  left: 20px; }

#serendipity_bulletproof_button,
#serendipity_credit_line {
  display: none; }

.blog-footer {
  padding: 10px;
  margin: 0 auto;
  max-width: 1280px;
  width: 100%;
  text-align: left; }

.footer-legals {
  list-style: none;
  margin: 0 0 10px 0;
  padding-bottom: 10px;
  border-bottom: 1px solid #fff; }
  .footer-legals li {
    display: inline; }
    .footer-legals li a {
      margin-right: 5px;
      padding-right: 7px; }

.serendipity_entry_extended {
  margin-bottom: 40px; }

.gallery {
  overflow: auto;
  margin-bottom: 20px;
  clear: left; }
  .gallery > br {
    display: none; }
  .masonry-container .gallery {
    display: none; }

.page-lightbox {
  display: block;
  width: 48%;
  float: left;
  margin-right: 2%;
  cursor: pointer; }
  .page-lightbox > img {
    width: 100%; }

.fancybox-wrap {
  z-index: 9999; }

.fancybox-overlay {
  z-index: 9500; }

.page-lightbox-content {
  display: none; }
  .page-lightbox-content > img {
    margin-bottom: 20px; }

@media screen and (min-width: 1024px) {
  #sitenav, #sitenav-manuell {
    height: auto !important; }
    #sitenav .container_serendipity_plugin_multilingual, #sitenav-manuell .container_serendipity_plugin_multilingual {
      display: none; } }

@media screen and (max-width: 1024px) {
  #banner_language > a > img:first-child {
    width: 100%;
    height: auto; }
  #content {
    margin-left: 0 !important; }
  #sitenav > ul, #sitenav-manuell > ul {
    margin: 0 !important; }
  #sitenav > .container_serendipity_plugin_multilingual, #sitenav-manuell > .container_serendipity_plugin_multilingual {
    display: none; } }

.masonry-container {
  overflow: auto;
  margin-left: -20px;
  margin-top: 20px; }
  .masonry-container img {
    cursor: pointer; }
  .masonry-container .serendipity_image_left {
    width: 100%;
    margin-right: 0 !important; }
    .masonry-container .serendipity_image_left img {
      margin-bottom: 0; }

@media screen and (max-width: 768px) {
  .blog-logo {
    display: none; }
  .entry-content {
    margin-right: 0; }
  #desk {
    margin-top: 30px; }
  #banner {
    margin-bottom: 20px; }
  .mobile-nav__head {
    padding: 10px;
    display: inline-block;
    vertical-align: middle;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 50px;
    display: block; }
  #sitenav, #sitenav-manuell {
    padding: 0;
    width: auto;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9000;
    -webkit-transition: height 0.3s;
            transition: height 0.3s;
    overflow: hidden;
    height: 50px;
    margin-top: 0;
    margin-right: 0; }
    #sitenav > .container_serendipity_plugin_multilingual, #sitenav-manuell > .container_serendipity_plugin_multilingual {
      display: block;
      position: absolute;
      top: 0;
      bottom: 0;
      right: 0;
      background: transparent; }
      #sitenav > .container_serendipity_plugin_multilingual > .serendipitySideBarTitle, #sitenav-manuell > .container_serendipity_plugin_multilingual > .serendipitySideBarTitle {
        display: none; }
      #sitenav > .container_serendipity_plugin_multilingual > .serendipitySideBarContent, #sitenav-manuell > .container_serendipity_plugin_multilingual > .serendipitySideBarContent {
        background: none;
        border: none;
        float: left; }
      #sitenav > .container_serendipity_plugin_multilingual select, #sitenav-manuell > .container_serendipity_plugin_multilingual select {
        direction: rtl;
        -webkit-appearance: none;
        border: none !important;
        color: #fff;
        text-transform: uppercase;
        font-weight: normal;
        padding-top: 9px;
        border-radius: 0;
        height: 50px;
        font-size: 13px !important;
        padding-right: 28px; }
    #sitenav > ul, #sitenav-manuell > ul {
      display: block;
      padding: 0 0 15px 0;
      margin-bottom: 0 !important;
      float: none; }
      #sitenav > ul > li, #sitenav-manuell > ul > li {
        text-transform: uppercase;
        display: block;
        padding-left: 20px;
        padding-right: 10px; }
        #sitenav > ul > li:last-child, #sitenav-manuell > ul > li:last-child {
          -webkit-box-shadow: -1px 3px 5px 0px rgba(0, 0, 0, 0.43);
                  box-shadow: -1px 3px 5px 0px rgba(0, 0, 0, 0.43); }
        #sitenav > ul > li > a, #sitenav-manuell > ul > li > a {
          float: none !important;
          color: #fff;
          background: none;
          padding-left: 0;
          padding-top: 9px;
          font-size: 16px;
          line-height: 1.8em; }
          #sitenav > ul > li > a:hover, #sitenav-manuell > ul > li > a:hover {
            padding-left: 0;
            background: none; }
    #sitenav #searchform, #sitenav-manuell #searchform {
      float: none;
      width: 100%;
      margin-left: 0;
      overflow: auto;
      padding-left: 10px;
      padding-right: 10px; }
  .masonry .serendipity_Entry_Date {
    width: 33%;
	  /* test LM: Original: width: 100%; */
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
    padding-right: 0; }
  #content,
  #serendipityRightSideBar,
  #serendipityLeftSideBar {
    max-width: none;
    width: 100%; }
  .serendipity_entry img, .serendipity_image_left {
    width: 100% !important;
    padding: 0 !important;
    height: auto; }
  #serendipityRightSideBar > .container_serendipity_plugin_multilingual {
    display: none; }
  .entry-content > img, .serendipity_entry_extended > img {
    width: 100%;
    height: auto; }
  .serendipity_pageFooter {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
    padding: 0 !important; }
  .staticpage_content img {
    width: 100%;
    height: auto; }
  .serendipity_imageComment_left {
    width: 100% !important; }
  .serendipitySideBarItem {
    margin-left: 0; }
  .slider--banner {
    margin-top: 50px !important; }
  .slider__caption__right {
    position: inherit; }
  .slider__caption__right__inner {
    margin: 0; }
  .slider__caption__right__main {
    position: inherit;
    bottom: inherit;
    right: inherit;
    left: inherit; }
  .page-lightbox {
    width: 100%;
    float: left;
    margin-right: 2%;
    margin-bottom: 2%; }
  .fancybox-wrap,
  .fancybox-overlay {
    display: none !important; } }

ul.staticpage_navigation, .staticpage_navigation_center {
  display: none; }

.image {
  position: relative;
  overflow: visible;
  margin-bottom: 10px; }
  .image > img {
    margin-bottom: 0 !important; }
  .image > .serendipity_imageComment_txt {
    margin-top: 10px; }

.serendipity_imageComment_txt {
  text-align: left;
  padding: 0 0 0 4px;
  margin-bottom: 20px;
  border: none; }
  .serendipity_imageComment_txt.left {
    max-width: 320px !important;
    float: left; }

.image_capture, .image_copyright {
  position: absolute;
  right: 5px;
  bottom: 2px;
  font-size: 9px;
  line-height: 1.3;
  text-align: right; }

.full-width .image_copyright {
  display: none; }

.serendipity_commentsLabel input {
  display: inline-block; }

.serendipity_commentsLabel label {
  display: inline-block; }

.serendipity_comment_captcha img {
  width: auto !important; }

#footer {
  border: none; }

.svg-icon-arrow, .mobile-nav__lang form > div:after, .svg-icon-burger {
  background: url("svg/sprite.css-db060010.svg") no-repeat; }

.svg-icon-arrow, .mobile-nav__lang form > div:after {
  background-position: 98.15950920245399% 0;
  width: 6.25px;
  height: 13px; }

.svg-icon-burger {
  background-position: 0 0;
  width: 40px;
  height: 30px; }

.svg-icon-arrow, .mobile-nav__lang form > div:after, .nav-category__head:after, .mobile-nav__lang form > div:after, .svg-icon-burger {
  background: url("http://dev.allesweisz.de/responsive-blog/svg/sprite.css-db060010.svg") no-repeat !important; }

/**********

Media-Breakpoints (inherited from layout.css)
Better do not change this...

***********/
/**********

Farbdefinitionen

***********/
.gruen {
  color: #9aca3c !important; }

.violet {
  color: #7b0165 !important; }

.orange {
  color: #f37021 !important; }

.dunkelblau {
  color: #003b6b !important; }

.beige {
  color: #c8bd89 !important; }

.braun {
  color: #4b1e00 !important; }

.hellblau {
  color: #44c8f5 !important; }

.dunkelgruen {
  color: #303e03 !important; }

.grau {
  color: #6b7b84 !important; }

.weiss {
  color: #fff !important; }

.schwarz {
  color: #000 !important; }

.bg-gruen {
  background: #9aca3c !important; }

.bg-violet {
  background: #7b0165 !important; }

.bg-orange {
  background: #f37021 !important; }

.bg-dunkelblau {
  background: #003b6b !important; }

.bg-beige {
  background: #c8bd89 !important; }

.bg-braun {
  background: #4b1e00 !important; }

.bg-hellblau {
  background: #44c8f5 !important; }

.bg-dunkelgruen {
  background: #303e03 !important; }

.bg-grau {
  background: #6b7b84 !important; }

/**********

Schriftdefinitionen

***********/
@font-face {
  font-family: ClanWebPro-NarrMedium;
  src: url("https://dl.dropboxusercontent.com/s/ci8z737lyich8au/ClanWebPro-NarrMedium.eot"); }

@font-face {
  font-family: ClanWebPro-NarrMedium;
  src: url("https://dl.dropboxusercontent.com/s/z04bpwd8h4o9rpl/ClanWebPro-NarrMedium.woff") format("woff"); }

@font-face {
  font-family: 'GI-Iconset';
  src: url("https://dl.dropboxusercontent.com/s/58tah8tzxy9qrb5/icomoon.eot?-reqmit");
  src: url("https://dl.dropboxusercontent.com/s/58tah8tzxy9qrb5/icomoon.eot#iefix-reqmit") format("embedded-opentype"), url("https://dl.dropboxusercontent.com/s/944u6sypflqhcax/icomoon.woff?-reqmit") format("woff"), url("https://dl.dropboxusercontent.com/s/i5qgip5mku61d0t/icomoon.ttf?-reqmit") format("truetype"), url("https://dl.dropboxusercontent.com/s/fpsxh0zljwoupci/icomoon.svg?-reqmit#icomoon") format("svg");
  font-weight: normal;
  font-style: normal; }

body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  line-height: 16px;
  color: #5f676b;
  text-rendering: optimizelegibility;
  -webkit-font-smoothing: antialiased;
  background-color: #f8f8f6; }

a {
  color: #5f676b;
  text-decoration: none; }
  a:hover {
    text-decoration: none;
    color: #303436; }

h1, h2, h3, h4, h5, h6 {
  font-family: "ClanWebPro-NarrMedium", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal; }

.blog-title > div {
  font-family: "ClanWebPro-NarrMedium", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 6vw; }

.gi-mark {
  color: #fff; }

.emoticon {
  width: 16px;
  height: auto; }

#sitenav, #sitenav-manuell {
  color: #fff;
  background: #788287; }
  #sitenav > ul > li a, #sitenav-manuell > ul > li a {
    color: inherit; }

#sitenav-manuell,
.entry-title,
.serendipity_title,
.serendipity_date,
.serendipitySideBarTitle {
  font-family: "ClanWebPro-NarrMedium", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: normal; }

#sitenav-manuell,
.entry-title,
.serendipity_title,
.serendipitySideBarTitle {
  text-transform: uppercase; }

.serendipitySideBarItem {
  background-color: #fff;
  overflow: auto; }

.serendipitySideBarTitle {
  color: #9aca3c; }

#language_chooser > div, #language_chooser_mobile > div {
  position: relative; }
  #language_chooser > div:after, #language_chooser_mobile > div:after {
    position: absolute;
    top: 50%;
    right: 0;
    margin-top: -8px;
    display: block;
    height: 20px;
    width: 20px;
    font-family: "GI-Iconset";
    content: "\E812";
    color: #5f676b; }
    @media only screen and (max-width: 480px) {
      #language_chooser > div:after, #language_chooser_mobile > div:after {
        color: #fff;
        font-size: 12px; } }
  #language_chooser > div input, #language_chooser_mobile > div input {
    display: none; }
  #language_chooser > div select, #language_chooser_mobile > div select {
    color: #5f676b;
    border: 1px solid #788287 !important; }

#searchform {
  position: relative;
  background: #fff; }
  #searchform:after {
    position: absolute;
    top: 50%;
    right: 0;
    margin-top: -7px;
    display: block;
    height: 20px;
    width: 20px;
    font-family: "GI-Iconset";
    font-size: 90%;
    content: "\E700";
    color: #5f676b; }
  #searchform input#serendipityQuickSearchTermField {
    color: #5f676b;
    border: 1px solid #788287 !important;
    background: none;
    padding: 8px 20px 8px 5px; }

.category_submit {
  background: #fff; }
  .category_submit input {
    color: #5f676b;
    background: none;
    border: 1px solid #788287 !important; }

.container_serendipity_calendar_plugin a[title="Forward"] img, .container_serendipity_calendar_plugin a[title="Back"] img, .container_serendipity_calendar_plugin a[title="Vorwärts"] img, .container_serendipity_calendar_plugin a[title="Zurück"] img {
  display: none; }

.container_serendipity_calendar_plugin th#month a {
  font-weight: normal; }

.container_serendipity_calendar_plugin a[title="Forward"]:after, .container_serendipity_calendar_plugin a[title="Vorwärts"]:after {
  content: "\E811";
  display: block;
  height: 20px;
  width: 20px;
  font-family: "GI-Iconset";
  margin-top: 3px;
  padding-left: 13px;
  text-align: right; }

.container_serendipity_calendar_plugin a[title="Back"]:after, .container_serendipity_calendar_plugin a[title="Zurück"]:after {
  content: "\E813";
  display: block;
  height: 20px;
  width: 20px;
  font-family: "GI-Iconset";
  margin-top: 3px; }

.container_serendipity_calendar_plugin table.serendipity_calendar .serendipity_calendarDay.Active a {
  font-weight: bold;
  color: #9aca3c; }

.quicksearch_submit {
  display: none; }

.container_serendipity_quicksearch_plugin .quicksearch_submit {
  display: none;
  font-size: 0;
  width: 2em !important;
  height: 30px; }

.serendipity_date {
  font-size: 9px; }
  .serendipity_date:empty {
    display: none; }

.serendipity_commentsTitle {
  font-size: 16px; }

.entry-title, .serendipity_title {
  font-size: 22px; }
  .entry-title > *, .serendipity_title > * {
    font-size: 22px; }

.entry-meta-manuell {
  background: #788287;
  padding: 10px;
  color: #fff; }

.sidenav-html-nugget-inner > h3 {
  font-family: "ClanWebPro-NarrMedium", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: normal;
  margin: 0; }

.entry-content, .staticpage_content, .serendipity_entry_extended {
  font-size: 14px;
  line-height: 19px; }
  .entry-content a, .staticpage_content a, .serendipity_entry_extended a {
    color: #47abd8; }
    .entry-content a:hover, .staticpage_content a:hover, .serendipity_entry_extended a:hover {
      color: #47abd8;
      text-decoration: underline; }

.slick-prev:before, .slick-next:before {
  font-family: "GI-Iconset";
  font-size: 16px;
  width: 20px;
  height: 20px;
  display: block;
  color: #9aca3c; }

.slick-prev:before {
  content: "\E813"; }

.slick-next:before {
  content: "\E811"; }

.slider__caption {
  background: #303436;
  color: #fff; }

.slider__caption__right__inner {
  background: #788287; }
  .slider__caption__right__inner > h5 {
    font-family: "ClanWebPro-NarrMedium", "Helvetica Neue", Helvetica, Arial, sans-serif;
    color: #fff;
    text-transform: uppercase; }

.slider__caption__right__roof {
  font-family: "ClanWebPro-NarrMedium", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #fff; }

.slider__caption__right__main {
  color: #fff; }

.blog-footer {
  background: #5f676b;
  color: #fff !important; }
  .blog-footer a {
    color: #fff; }
    .blog-footer a:hover {
      text-decoration: underline; }

.footer-legals {
  border-color: #788287; }
  .footer-legals li:last-child a {
    border-right: 0; }
  .footer-legals a {
    border-right: 1px solid #788287; }

@media screen and (max-width: 768px) {
  .mobile-nav__head {
    background: #9aca3c; }
  #sitenav, #sitenav-manuell {
    background: none; }
    #sitenav > ul > li, #sitenav-manuell > ul > li {
      border-top: 1px solid #5f676b;
      background: #788287; }
      #sitenav > ul > li:first-child, #sitenav-manuell > ul > li:first-child {
        border: none; }
    #sitenav select, #sitenav-manuell select {
      background-color: inherit; } }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluaXQuY3NzIiwiaW51aXQvX2RlZmF1bHRzLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsImludWl0L19pbnVpdC5zY3NzIiwiaW51aXQvZ2VuZXJpYy9fbWl4aW5zLnNjc3MiLCJpbnVpdC9nZW5lcmljL19ub3JtYWxpemUuc2NzcyIsImludWl0L2dlbmVyaWMvX3Jlc2V0LnNjc3MiLCJpbnVpdC9nZW5lcmljL19jbGVhcmZpeC5zY3NzIiwiaW51aXQvZ2VuZXJpYy9fc2hhcmVkLnNjc3MiLCJpbnVpdC9iYXNlL19tYWluLnNjc3MiLCJpbnVpdC9iYXNlL19oZWFkaW5ncy5zY3NzIiwiaW51aXQvYmFzZS9fcGFyYWdyYXBocy5zY3NzIiwiaW51aXQvYmFzZS9fc21hbGxwcmludC5zY3NzIiwiaW51aXQvYmFzZS9fcXVvdGVzLnNjc3MiLCJpbnVpdC9iYXNlL19jb2RlLnNjc3MiLCJpbnVpdC9iYXNlL19pbWFnZXMuc2NzcyIsImludWl0L2Jhc2UvX2xpc3RzLnNjc3MiLCJpbnVpdC9iYXNlL190YWJsZXMuc2NzcyIsImludWl0L2Jhc2UvX2Zvcm1zLnNjc3MiLCJpbnVpdC9vYmplY3RzL19ncmlkcy5zY3NzIiwiaW51aXQvb2JqZWN0cy9fbmF2LnNjc3MiLCJpbnVpdC9nZW5lcmljL193aWR0aHMuc2NzcyIsImludWl0L2dlbmVyaWMvX3B1c2guc2NzcyIsImludWl0L2dlbmVyaWMvX3B1bGwuc2NzcyIsImludWl0L2dlbmVyaWMvX2JyYW5kLnNjc3MiLCJpbnVpdC9nZW5lcmljL19oZWxwZXIuc2NzcyIsImludWl0L2dlbmVyaWMvX2RlYnVnLnNjc3MiLCJwbHVnaW5zL3NsaWNrLnNjc3MiLCJwbHVnaW5zL3NsaWNrLXRoZW1lLnNjc3MiLCJwbHVnaW5zL2ZhbmN5Ym94LnNjc3MiLCJsYXlvdXQvX21haW4uc2NzcyIsInNwcml0ZXMvX3Nwcml0ZS5zY3NzIiwiaW5pdC5zY3NzIiwidXNlcnN0eWxlcy9yZXNwb25zaXZlLXRoZW1lLnNjc3MiXSwibmFtZXMi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O0VBQ0Usc0JBbmRZLEVBNGRiO0VBVkQ7SUFJSSxnQkFBZ0IsRUFDakI7RUFFRDtJQUNFLGdDQTFkVSxFQTJkWDs7QUFJSDtFQUVFO0lBQ0Usb0JBNWVXLEVBNmVaO0VBRUM7SUFDRSxpQkFBaUIsRUFpQnBCO0lBYk87TUFDQSw4QkExZU07TUEyZU4sb0JBNWVJLEVBaWZMO01BUEM7UUFLRSxhQUFhLEVBQ2Q7SUFJTDtNQUNFLDBCQUEwQixFQUMzQixFQUFBIiwiZmlsZSI6InJlc3BvbnNpdmUtbGF5b3V0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkREVGQVVMVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIGludWl0LmNzc+KAmSBkZWZhdWx0IHZhcmlhYmxlcy4gUmVkZWZpbmUgdGhlc2UgaW4geW91ciBgX3ZhcnMuc2Nzc2AgZmlsZSAoZm91bmRcbiAqIGluIHRoZSBpbnVpdC5jc3Mtd2ViLXRlbXBsYXRlKSB0byBvdmVycmlkZSB0aGVtLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJERFQlVHXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBEZWJ1ZyBtb2RlIHdpbGwgdmlzdWFsbHkgaGlnaGxpZ2h0IGFueSBwb3RlbnRpYWwgbWFya3VwL2FjY2Vzc2liaWxpdHkgcXVpcmtzXG4gKiBpbiB0aGUgYnJvd3Nlci4gU2V0IHRvIGB0cnVlYCBvciBgZmFsc2VgLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJEJPUkRFUi1CT1hcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIERvIHlvdSB3YW50IGFsbCBlbGVtZW50cyB0byBhZG9wdCBgYm94LXNpemluZzpib3JkZXItYm94O2AgYXMgcGVyXG4gKiBwYXVsaXJpc2guY29tLzIwMTIvYm94LXNpemluZy1ib3JkZXItYm94LWZ0dyA/XG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQkFTRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogQmFzZSBzdHVmZlxuICovXG4vKipcbiAqIEJhc2UgZm9udC1mYW1pbHkuXG4gKi9cbi8qKlxuICogRGVmYXVsdCBjb2xvdXIgZm9yIG9iamVjdHPigJkgYm9yZGVycyBldGMuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkUkVTUE9OU0lWRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogUmVzcG9uc2l2ZW5lc3M/XG4gKi9cbi8qKlxuICogUmVzcG9uc2l2ZW5lc3MgZm9yIHdpZGVzY3JlZW4vaGlnaCByZXNvbHV0aW9uIGRlc2t0b3AgbW9uaXRvcnMgYW5kIGJleW9uZD9cbiAqIE5vdGU6IGAkcmVzcG9uc2l2ZWAgdmFyaWFibGUgYWJvdmUgbXVzdCBiZSBzZXQgdG8gdHJ1ZSBiZWZvcmUgZW5hYmxpbmcgdGhpcy5cbiAqL1xuLyoqXG4gKiBSZXNwb25zaXZlIHB1c2ggYW5kIHB1bGwgcHJvZHVjZSBhIExPVCBvZiBjb2RlLCBvbmx5IHR1cm4gdGhlbSBvbiBpZiB5b3VcbiAqIGRlZmluaXRlbHkgbmVlZCB0aGVtLlxuICovXG4vKipcbiAqIE5vdGU6IGAkcHVzaGAgdmFyaWFibGUgYWJvdmUgbXVzdCBiZSBzZXQgdG8gdHJ1ZSBiZWZvcmUgZW5hYmxpbmcgdGhlc2UuXG4gKi9cbi8qKlxuICogTm90ZTogYCRwdWxsYCB2YXJpYWJsZSBhYm92ZSBtdXN0IGJlIHNldCB0byB0cnVlIGJlZm9yZSBlbmFibGluZyB0aGVzZS5cbiAqL1xuLyoqXG4gKiBUZWxsIGludWl0LmNzcyB3aGVuIGJyZWFrcG9pbnRzIHN0YXJ0LlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJEZPTlQtU0laRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIEZvbnQtc2l6ZXMgKGluIHBpeGVscykuIFJlZmVyIHRvIHJlbGV2YW50IHNlY3Rpb25zIGZvciB0aGVpciBpbXBsZW1lbnRhdGlvbnMuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkUVVPVEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBFbmdsaXNoIHF1b3RlIG1hcmtzP1xuICovXG4vKipcbiAqIElmIHlvdSB3YW50IEVuZ2xpc2ggcXVvdGVzIHRoZW4gcGxlYXNlIGRvIG5vdCBlZGl0IHRoZXNlOyB0aGV54oCZcmUgb25seSBoZXJlXG4gKiBiZWNhdXNlIFNhc3MgbmVlZHMgdGhlbS5cbiAqL1xuLyoqXG4gKiBJZiB5b3UgbmVlZCBub24tRW5nbGlzaCBxdW90ZXMsIHBsZWFzZSBhbHRlciB0aGUgZm9sbG93aW5nIHZhbHVlcyBhY2NvcmRpbmdseTpcbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRCUkFORFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogQnJhbmQgc3R1ZmZcbiAqL1xuLyoqXG4gKiBIb3cgYmlnIHdvdWxkIHlvdSBsaWtlIHJvdW5kIGNvcm5lcnMgdG8gYmUgYnkgZGVmYXVsdD9cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRPQkpFQ1RTIEFORCBBQlNUUkFDVElPTlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFdoaWNoIG9iamVjdHMgYW5kIGFic3RyYWN0aW9ucyB3b3VsZCB5b3UgbGlrZSB0byB1c2U/XG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkRlJBTUVXT1JLXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBpbnVpdC5jc3Mgd2lsbCB3b3JrIHRoZXNlIG5leHQgb25lcyBvdXQgZm9yIHVzZSB3aXRoaW4gdGhlIGZyYW1ld29yay5cbiAqXG4gKiBBc3NpZ24gb3VyIGAkYmFzZS1saW5lLWhlaWdodGAgdG8gYSBuZXcgc3BhY2luZyB2YXIgZm9yIG1vcmUgdHJhbnNwYXJlbmN5LlxuICovXG4vKioqKioqXG5cbiBFbnZpcm9ubWVudC1UeXBlOlxuXHQgU2V0IHRvIFwibGl2ZVwiIGJlZm9yZSAnZ3VscCBkZXBsb3knIGZvciBjb21waWxpbmcgZm9yXG5cdCBwcm9kdWN0aXZlIEdvZXRoZS1TZXJ2ZXJcblxuXHQgU2V0IHRvIFwiZGV2XCIgd2hlbiBydW5uaW5nICdndWxwJyBmb3IgZGV2ZWxvcG1lbnQgYW5kIGxvYWRpbmdcblx0IHRoZSBhc3NldHMgZnJvbSBEcm9wYm94XG5cbioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJFJFU1BPTlNJVkVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFRlbGwgaW51aXQuY3NzIHdoZW4gYnJlYWtwb2ludHMgc3RhcnQuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkRk9OVC1TSVpFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogRm9udC1zaXplcyAoaW4gcGl4ZWxzKS4gUmVmZXIgdG8gcmVsZXZhbnQgc2VjdGlvbnMgZm9yIHRoZWlyIGltcGxlbWVudGF0aW9ucy5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRCUkFORFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogQnJhbmQgc3R1ZmZcbiAqL1xuLyoqXG4gKiBIb3cgYmlnIHdvdWxkIHlvdSBsaWtlIHJvdW5kIGNvcm5lcnMgdG8gYmUgYnkgZGVmYXVsdD9cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRPQkpFQ1RTIEFORCBBQlNUUkFDVElPTlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFdoaWNoIG9iamVjdHMgYW5kIGFic3RyYWN0aW9ucyB3b3VsZCB5b3UgbGlrZSB0byB1c2U/XG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkRlJBTUVXT1JLXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBpbnVpdC5jc3Mgd2lsbCB3b3JrIHRoZXNlIG5leHQgb25lcyBvdXQgZm9yIHVzZSB3aXRoaW4gdGhlIGZyYW1ld29yay5cbiAqXG4gKiBBc3NpZ24gb3VyIGAkYmFzZS1saW5lLWhlaWdodGAgdG8gYSBuZXcgc3BhY2luZyB2YXIgZm9yIG1vcmUgdHJhbnNwYXJlbmN5LlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgTE9DQUwgVkFSU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqXG4qIENPTE9SU1xuKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uYy0tY2kge1xuICBjb2xvcjogIzVhYzhmNTsgfVxuXG4uYmctYy0tY2kge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWFjOGY1OyB9XG5cbi5jLS1jaS0ybmQge1xuICBjb2xvcjogIzFhM2I0OTsgfVxuXG4uYmctYy0tY2ktMm5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhM2I0OTsgfVxuXG4uYy0tYmxhY2sge1xuICBjb2xvcjogIzAwMDsgfVxuXG4uYmctYy0tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9XG5cbi5jLS13aGl0ZSB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5iZy1jLS13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLmMtLXR4dCB7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi5iZy1jLS10eHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9XG5cbi5jLS1oaWdobGlnaHQge1xuICBjb2xvcjogIzc5MTY2NzsgfVxuXG4uYmctYy0taGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5MTY2NzsgfVxuXG4uYy0tZ3JleS1saWdodCB7XG4gIGNvbG9yOiAjZjVmNmY1OyB9XG5cbi5iZy1jLS1ncmV5LWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjZmNTsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgSU5VSVQuQ1NTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyohKlxuICpcbiAqIGludWl0Y3NzLmNvbSAtLSBAaW51aXRjc3MgLS0gQGNzc3dpemFyZHJ5XG4gKlxuICovXG4vKipcbiAqIGludWl0LmNzcyBhY3RzIGFzIGEgYmFzZSBzdHlsZXNoZWV0IHdoaWNoIHlvdSBzaG91bGQgZXh0ZW5kIHdpdGggeW91ciBvd25cbiAqIHRoZW1lIHN0eWxlc2hlZXQuXG4gKlxuICogaW51aXQuY3NzIGFpbXMgdG8gZG8gdGhlIGhlYXZ5IGxpZnRpbmc7IHNvcnRpbmcgb2JqZWN0cyBhbmQgYWJzdHJhY3Rpb25zLFxuICogZGVzaWduIHBhdHRlcm5zIGFuZCBmaWRkbHkgYml0cyBvZiBDU1MsIHdoaWxzdCBsZWF2aW5nIGFzIG11Y2ggZGVzaWduIGFzXG4gKiBwb3NzaWJsZSB0byB5b3UuIGludWl0LmNzcyBpcyB0aGUgc2NhZmZvbGRpbmcgdG8geW91ciBkZWNvcmF0b3IuXG4gKlxuICogVGhpcyBzdHlsZXNoZWV0IGlzIGhlYXZpbHkgZG9jdW1lbnRlZCBhbmQgY29udGFpbnMgbG90cyBvZiBjb21tZW50cywgcGxlYXNlXG4gKiB0YWtlIGNhcmUgdG8gcmVhZCBhbmQgcmVmZXIgdG8gdGhlbSBhcyB5b3UgYnVpbGQuIEZvciBmdXJ0aGVyIHN1cHBvcnQgcGxlYXNlXG4gKiB0d2VldCBhdCBAaW51aXRjc3MuXG4gKlxuICogT3dpbmcgdG8gdGhlIGFtb3VudCBvZiBjb21tZW50cyBwbGVhc2Ugb25seSBldmVyIHVzZSBtaW5pZmllZCBDU1MgaW5cbiAqIHByb2R1Y3Rpb24uIFRoaXMgZmlsZSBpcyBwdXJlbHkgYSBkZXYgZG9jdW1lbnQuXG4gKlxuICogVGhlIHRhYmxlIG9mIGNvbnRlbnRzIGJlbG93IG1hcHMgdG8gc2VjdGlvbiB0aXRsZXMgb2YgdGhlIHNhbWUgbmFtZSwgdG8ganVtcFxuICogdG8gYW55IHNlY3Rpb24gc2ltcGx5IHJ1biBhIGZpbmQgZm9yICRbU0VDVElPTi1USVRMRV0uXG4gKlxuICogTW9zdCBvYmplY3RzIGFuZCBhYnN0cmFjdGlvbnMgY29tZSB3aXRoIGEgY2h1bmsgb2YgbWFya3VwIHRoYXQgeW91IHNob3VsZCBiZVxuICogYWJsZSB0byBwYXN0ZSBpbnRvIGFueSB2aWV3IHRvIHF1aWNrbHkgc2VlIGhvdyB0aGUgQ1NTIHdvcmtzIGluIGNvbmp1bmN0aW9uXG4gKiB3aXRoIHRoZSBjb3JyZWN0IEhUTUwuXG4gKlxuICogaW51aXQuY3NzIGlzIHdyaXR0ZW4gdG8gdGhpcyBzdGFuZGFyZDogZ2l0aHViLmNvbS9jc3N3aXphcmRyeS9DU1MtR3VpZGVsaW5lc1xuICpcbiAqIExJQ0VOU0VcbiAqXG4gKiBDb3B5cmlnaHQgMjAxMyBIYXJyeSBSb2JlcnRzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHA6Ly9hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKiBUaGFuayB5b3UgZm9yIGNob29zaW5nIGludWl0LmNzcy4gTWF5IHlvdXIgd2ViIGZvbnRzIHJlbmRlciBwZXJmZWN0bHkuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIENPTlRFTlRTLi4uLi4uLi4uLi4uWW914oCZcmUgcmVhZGluZyBpdCFcbiAqIFdBUk5JTkcuLi4uLi4uLi4uLi4uSGVyZSBiZSBkcmFnb25zIVxuICogSU1QT1JUUy4uLi4uLi4uLi4uLi5CZWdpbiBpbXBvcnRpbmcgdGhlIHNlY3Rpb25zIGJlbG93XG4gKlxuICogTUlYSU5TLi4uLi4uLi4uLi4uLi5TdXBlci1zaW1wbGUgU2FzcyBzdHVmZlxuICogTk9STUFMSVpFLi4uLi4uLi4uLi5ub3JtYWxpemUuY3NzXG4gKiBSRVNFVC4uLi4uLi4uLi4uLi4uLlNldCBzb21lIGRlZmF1bHRzXG4gKiBDTEVBUkZJWC4uLi4uLi4uLi4uLlxuICogU0hBUkVELi4uLi4uLi4uLi4uLi5TaGFyZWQgZGVjbGFyYXRpb25zXG4gKlxuICogTUFJTi4uLi4uLi4uLi4uLi4uLi5IaWdoLWxldmVsIGVsZW1lbnRzIGxpa2UgYGh0bWxgLCBgYm9keWAsIGV0Yy5cbiAqIEhFQURJTkdTLi4uLi4uLi4uLi4uRG91YmxlLXN0cmFuZGVkIGhlYWRpbmcgaGllcmFyY2h5XG4gKiBQQVJBR1JBUEhTLi4uLi4uLi4uLlxuICogU01BTExQUklOVC4uLi4uLi4uLi5TbWFsbGVyIHRleHQgZWxlbWVudHMgbGlrZSBgc21hbGxgXG4gKiBRVU9URVMuLi4uLi4uLi4uLi4uLlxuICogQ09ERS4uLi4uLi4uLi4uLi4uLi5cbiAqIExJU1RTLi4uLi4uLi4uLi4uLi4uXG4gKiBJTUFHRVMuLi4uLi4uLi4uLi4uLlxuICogVEFCTEVTLi4uLi4uLi4uLi4uLi5cbiAqIEZPUk1TLi4uLi4uLi4uLi4uLi4uXG4gKlxuICogR1JJRFMuLi4uLi4uLi4uLi4uLi5GbHVpZCwgcHJvcG9ydGlvbmFsIGFuZCBuZXN0YWJsZSBncmlkc1xuICogRkxFWEJPWC4uLi4uLi4uLi4uLi5DcnVkZWx5IGVtdWxhdGUgZmxleGJveFxuICogQ09MVU1OUy4uLi4uLi4uLi4uLi5DU1MzIGNvbHVtbnNcbiAqIE5BVi4uLi4uLi4uLi4uLi4uLi4uQSBzaW1wbGUgYWJzdHJhY3Rpb24gdG8gcHV0IGEgbGlzdCBpbiBob3Jpem9udGFsIG5hdiBtb2RlXG4gKiBPUFRJT05TLi4uLi4uLi4uLi4uLkdyb3VwZWQgbmF2IGl0ZW1zXG4gKiBQQUdJTkFUSU9OLi4uLi4uLi4uLlZlcnkgc3RyaXBwZWQgYmFjaywgYmFzaWMgcGFnaW5hdG9yXG4gKiBCUkVBRENSVU1CLi4uLi4uLi4uLlNpbXBsZSBicmVhZGNydW1iIHRyYWlsIG9iamVjdFxuICogTUVESUEuLi4uLi4uLi4uLi4uLi5NZWRpYSBvYmplY3RcbiAqIE1BUkdJTkFMSUEuLi4uLi4uLi4uU2ltcGxlIG1hcmdpbmFsaWEgY29udGVudFxuICogSVNMQU5ELi4uLi4uLi4uLi4uLi5Cb3hlZCBvZmYgY29udGVudFxuICogQkxPQ0stTElTVC4uLi4uLi4uLi5CbG9ja3kgbGlzdHMgb2YgY29udGVudFxuICogTUFUUklYLi4uLi4uLi4uLi4uLi5HcmlkZGVkIGxpc3RzXG4gKiBTUExJVC4uLi4uLi4uLi4uLi4uLkEgc2ltcGxlIHNwbGl0LWluLXR3byBvYmplY3RcbiAqIFRISVMtT1ItVEhJUy4uLi4uLi4uT3B0aW9ucyBvYmplY3RcbiAqIExJTkstQ09NUExFWC4uLi4uLi4uXG4gKiBGTFlPVVQuLi4uLi4uLi4uLi4uLkZseW91dC1vbi1ob3ZlciBvYmplY3RcbiAqIEFSUk9XUy4uLi4uLi4uLi4uLi4uQ1NTIGFycm93c1xuICogU1BSSVRFLi4uLi4uLi4uLi4uLi5HZW5lcmljIHNwcml0aW5nIGVsZW1lbnRcbiAqIElDT04tVEVYVC4uLi4uLi4uLi4uSWNvbiBhbmQgdGV4dCBjb3VwbGluZ3NcbiAqIEJFQVVUT05TLi4uLi4uLi4uLi4uVXNlIHRoZSBiZWF1dG9ucyBtaWNybyBsaWJyYXJ5XG4gKiBMT1pFTkdFUy4uLi4uLi4uLi4uLkJhc2ljIGxvemVuZ2Ugc3R5bGVzXG4gKiBSVUxFUy4uLi4uLi4uLi4uLi4uLkhvcml6b250YWwgcnVsZXNcbiAqIFNUQVRTLi4uLi4uLi4uLi4uLi4uU2ltcGxlIHN0YXRzIG9iamVjdFxuICogR1JFWUJPWC4uLi4uLi4uLi4uLi5XaXJlZnJhbWluZyBzdHlsZXNcbiAqXG4gKiBXSURUSFMuLi4uLi4uLi4uLi4uLldpZHRoIGNsYXNzZXMgZm9yIHVzZSBhbG9uZ3NpZGUgdGhlIGdyaWQgc3lzdGVtIGV0Yy5cbiAqIFBVU0guLi4uLi4uLi4uLi4uLi4uUHVzaCBjbGFzc2VzIGZvciBtYW5pcHVsYXRpbmcgZ3JpZHNcbiAqIFBVTEwuLi4uLi4uLi4uLi4uLi4uUHVsbCBjbGFzc2VzIGZvciBtYW5pcHVsYXRpbmcgZ3JpZHNcbiAqIEJSQU5ELi4uLi4uLi4uLi4uLi4uSGVscGVyIGNsYXNzIHRvIGFwcGx5IGJyYW5kIHRyZWF0bWVudCB0byBlbGVtZW50c1xuICogSEVMUEVSLi4uLi4uLi4uLi4uLi5BIHNlcmllcyBvZiBoZWxwZXIgY2xhc3NlcyB0byB1c2UgYXJiaXRyYXJpbHlcbiAqIERFQlVHLi4uLi4uLi4uLi4uLi4uRW5hYmxlIHRvIGFkZCB2aXN1YWwgZmxhZ3MgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlc1xuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJFdBUk5JTkdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICogaW51aXQuY3NzLCBiZWluZyBhbiBPTyBmcmFtZXdvcmssIHdvcmtzIGluIGtlZXBpbmcgd2l0aCB0aGUgb3Blbi9jbG9zZWRcbiAqIHByaW5jaXBsZS4gVGhlIHZhcmlhYmxlcyB5b3Ugc2V0IHByZXZpb3VzbHkgYXJlIG5vdyBiZWluZyB1c2VkIHRocm91Z2hvdXRcbiAqIGludWl0LmNzcyB0byBzdHlsZSBldmVyeXRoaW5nIHdlIG5lZWQgZm9yIGEgYmFzZS4gQW55IGN1c3RvbSBzdHlsZXMgU0hPVUxEXG4gKiBOT1QgYmUgYWRkZWQgb3IgbW9kaWZpZWQgaW4gaW51aXQuY3NzIGRpcmVjdGx5LCBidXQgYWRkZWQgdmlhIHlvdXIgdGhlbWVcbiAqIHN0eWxlc2hlZXQgYXMgcGVyIHRoZSBvcGVuL2Nsb3NlZCBwcmluY2lwbGU6XG4gKlxuICogY3Nzd2l6YXJkcnkuY29tLzIwMTIvMDYvdGhlLW9wZW4tY2xvc2VkLXByaW5jaXBsZS1hcHBsaWVkLXRvLWNzc1xuICpcbiAqIFRyeSBub3QgdG8gZWRpdCBhbnkgQ1NTIGJleW9uZCB0aGlzIHBvaW50OyBpZiB5b3UgZmluZCB5b3UgbmVlZCB0byBkbyBzb1xuICogaXQgaXMgYSBmYWlsaW5nIG9mIHRoZSBmcmFtZXdvcmsgc28gcGxlYXNlIHR3ZWV0IGF0IEBpbnVpdGNzcy5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRJTVBPUlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBHZW5lcmljIHV0aWxpdHkgc3R5bGVzIGV0Yy5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRERUZBVUxUU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogaW51aXQuY3Nz4oCZIGRlZmF1bHQgdmFyaWFibGVzLiBSZWRlZmluZSB0aGVzZSBpbiB5b3VyIGBfdmFycy5zY3NzYCBmaWxlIChmb3VuZFxuICogaW4gdGhlIGludWl0LmNzcy13ZWItdGVtcGxhdGUpIHRvIG92ZXJyaWRlIHRoZW0uXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkREVCVUdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIERlYnVnIG1vZGUgd2lsbCB2aXN1YWxseSBoaWdobGlnaHQgYW55IHBvdGVudGlhbCBtYXJrdXAvYWNjZXNzaWJpbGl0eSBxdWlya3NcbiAqIGluIHRoZSBicm93c2VyLiBTZXQgdG8gYHRydWVgIG9yIGBmYWxzZWAuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQk9SREVSLUJPWFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogRG8geW91IHdhbnQgYWxsIGVsZW1lbnRzIHRvIGFkb3B0IGBib3gtc2l6aW5nOmJvcmRlci1ib3g7YCBhcyBwZXJcbiAqIHBhdWxpcmlzaC5jb20vMjAxMi9ib3gtc2l6aW5nLWJvcmRlci1ib3gtZnR3ID9cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRCQVNFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBCYXNlIHN0dWZmXG4gKi9cbi8qKlxuICogQmFzZSBmb250LWZhbWlseS5cbiAqL1xuLyoqXG4gKiBEZWZhdWx0IGNvbG91ciBmb3Igb2JqZWN0c+KAmSBib3JkZXJzIGV0Yy5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRSRVNQT05TSVZFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBSZXNwb25zaXZlbmVzcz9cbiAqL1xuLyoqXG4gKiBSZXNwb25zaXZlbmVzcyBmb3Igd2lkZXNjcmVlbi9oaWdoIHJlc29sdXRpb24gZGVza3RvcCBtb25pdG9ycyBhbmQgYmV5b25kP1xuICogTm90ZTogYCRyZXNwb25zaXZlYCB2YXJpYWJsZSBhYm92ZSBtdXN0IGJlIHNldCB0byB0cnVlIGJlZm9yZSBlbmFibGluZyB0aGlzLlxuICovXG4vKipcbiAqIFJlc3BvbnNpdmUgcHVzaCBhbmQgcHVsbCBwcm9kdWNlIGEgTE9UIG9mIGNvZGUsIG9ubHkgdHVybiB0aGVtIG9uIGlmIHlvdVxuICogZGVmaW5pdGVseSBuZWVkIHRoZW0uXG4gKi9cbi8qKlxuICogTm90ZTogYCRwdXNoYCB2YXJpYWJsZSBhYm92ZSBtdXN0IGJlIHNldCB0byB0cnVlIGJlZm9yZSBlbmFibGluZyB0aGVzZS5cbiAqL1xuLyoqXG4gKiBOb3RlOiBgJHB1bGxgIHZhcmlhYmxlIGFib3ZlIG11c3QgYmUgc2V0IHRvIHRydWUgYmVmb3JlIGVuYWJsaW5nIHRoZXNlLlxuICovXG4vKipcbiAqIFRlbGwgaW51aXQuY3NzIHdoZW4gYnJlYWtwb2ludHMgc3RhcnQuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkRk9OVC1TSVpFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogRm9udC1zaXplcyAoaW4gcGl4ZWxzKS4gUmVmZXIgdG8gcmVsZXZhbnQgc2VjdGlvbnMgZm9yIHRoZWlyIGltcGxlbWVudGF0aW9ucy5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRRVU9URVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIEVuZ2xpc2ggcXVvdGUgbWFya3M/XG4gKi9cbi8qKlxuICogSWYgeW91IHdhbnQgRW5nbGlzaCBxdW90ZXMgdGhlbiBwbGVhc2UgZG8gbm90IGVkaXQgdGhlc2U7IHRoZXnigJlyZSBvbmx5IGhlcmVcbiAqIGJlY2F1c2UgU2FzcyBuZWVkcyB0aGVtLlxuICovXG4vKipcbiAqIElmIHlvdSBuZWVkIG5vbi1FbmdsaXNoIHF1b3RlcywgcGxlYXNlIGFsdGVyIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFjY29yZGluZ2x5OlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJEJSQU5EXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBCcmFuZCBzdHVmZlxuICovXG4vKipcbiAqIEhvdyBiaWcgd291bGQgeW91IGxpa2Ugcm91bmQgY29ybmVycyB0byBiZSBieSBkZWZhdWx0P1xuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJE9CSkVDVFMgQU5EIEFCU1RSQUNUSU9OU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogV2hpY2ggb2JqZWN0cyBhbmQgYWJzdHJhY3Rpb25zIHdvdWxkIHlvdSBsaWtlIHRvIHVzZT9cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRGUkFNRVdPUktcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIGludWl0LmNzcyB3aWxsIHdvcmsgdGhlc2UgbmV4dCBvbmVzIG91dCBmb3IgdXNlIHdpdGhpbiB0aGUgZnJhbWV3b3JrLlxuICpcbiAqIEFzc2lnbiBvdXIgYCRiYXNlLWxpbmUtaGVpZ2h0YCB0byBhIG5ldyBzcGFjaW5nIHZhciBmb3IgbW9yZSB0cmFuc3BhcmVuY3kuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkTUlYSU5TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBDcmVhdGUgYSBmdWxseSBmb3JtZWQgdHlwZSBzdHlsZSAoc2l6aW5nIGFuZCB2ZXJ0aWNhbCByaHl0aG0pIGJ5IHBhc3NpbmcgaW4gYVxuICogc2luZ2xlIHZhbHVlLCBlLmcuOlxuICpcbiAgIGBAaW5jbHVkZSBmb250LXNpemUoMTBweCk7YFxuICpcbiAqIFRoYW5rcyB0byBAcmVkY2xvdjNyIGZvciB0aGUgYGxpbmUtaGVpZ2h0YCBTYXNzOlxuICogdHdpdHRlci5jb20vcmVkY2xvdjNyL3N0YXR1cy8yNTAzMDE1MzkzMjE3OTg2NTdcbiAqL1xuLyoqXG4gKiBTdHlsZSBhbnkgbnVtYmVyIG9mIGhlYWRpbmdzIGluIG9uZSBmZWxsIHN3b29wLCBlLmcuOlxuICpcbiAgIC5mb297XG4gICAgICAgQGluY2x1ZGUgaGVhZGluZ3MoMSwgMyl7XG4gICAgICAgICAgIGNvbG9yOiNCQURBNTU7XG4gICAgICAgfVxuICAgIH1cbiAqXG4gKiBXaXRoIHRoYW5rcyB0byBAbGFyX3p6eiwgQHBhcmFub2lkYSwgQHJvd2FubWFubmluZyBhbmQgdWx0aW1hdGVseVxuICogQHRoaWVycnlsZW1vdWxlYyBmb3IgcmVmaW5pbmcgYW5kIGltcHJvdmluZyBteSBpbml0aWFsIG1peGluLlxuICovXG4vKipcbiAqIENyZWF0ZSB2ZW5kb3ItcHJlZml4ZWQgQ1NTIGluIG9uZSBnbywgZS5nLlxuICpcbiAgIGBAaW5jbHVkZSB2ZW5kb3IoYm9yZGVyLXJhZGl1cywgNHB4KTtgXG4gKlxuICovXG4vKipcbiAqIENyZWF0ZSBDU1Mga2V5ZnJhbWUgYW5pbWF0aW9ucyBmb3IgYWxsIHZlbmRvcnMgaW4gb25lIGdvLCBlLmcuOlxuICpcbiAgIC5mb297XG4gICAgICAgQGluY2x1ZGUgdmVuZG9yKGFuaW1hdGlvbiwgc2hyaW5rIDNzKTtcbiAgIH1cblxuICAgQGluY2x1ZGUga2V5ZnJhbWUoc2hyaW5rKXtcbiAgICAgICBmcm9te1xuICAgICAgICAgICBmb250LXNpemU6NWVtO1xuICAgICAgIH1cbiAgIH1cbiAqXG4gKiBDb3VydGVzeSBvZiBAaW50ZWdyYWxpc3Q6IHR3aXR0ZXIuY29tL2ludGVncmFsaXN0L3N0YXR1cy8yNjA0ODQxMTUzMTU0Mzc1NjlcbiAqL1xuLyoqXG4gKiBGb3JjZSBvdmVybHkgbG9uZyBzcGFucyBvZiB0ZXh0IHRvIHRydW5jYXRlLCBlLmcuOlxuICpcbiAgIGBAaW5jbHVkZSB0cnVuY2F0ZSgxMDAlKTtgXG4gKlxuICogV2hlcmUgYCR0cnVuY2F0aW9uLWJvdW5kYXJ5YCBpcyBhIHVuaXRlZCBtZWFzdXJlbWVudC5cbiAqL1xuLyoqXG4gKiBDU1MgYXJyb3dzISEhIEJ1dC4uLiBiZWZvcmUgeW91IHJlYWQgb24sIHlvdSBtaWdodCB3YW50IHRvIGdyYWIgYSBjb2ZmZWUuLi5cbiAqXG4gKiBUaGlzIG1peGluIGNyZWF0ZXMgYSBDU1MgYXJyb3cgb24gYSBnaXZlbiBlbGVtZW50LiBXZSBjYW4gaGF2ZSB0aGUgYXJyb3dcbiAqIGFwcGVhciBpbiBvbmUgb2YgMTIgbG9jYXRpb25zLCB0aHVzOlxuICpcbiAqICAgICAgIDAxICAgIDAyICAgIDAzXG4gKiAgICArLS0tLS0tLS0tLS0tLS0tLS0tK1xuICogMTIgfCAgICAgICAgICAgICAgICAgIHwgMDRcbiAqICAgIHwgICAgICAgICAgICAgICAgICB8XG4gKiAxMSB8ICAgICAgICAgICAgICAgICAgfCAwNVxuICogICAgfCAgICAgICAgICAgICAgICAgIHxcbiAqIDEwIHwgICAgICAgICAgICAgICAgICB8IDA2XG4gKiAgICArLS0tLS0tLS0tLS0tLS0tLS0tK1xuICogICAgICAgMDkgICAgMDggICAgMDdcbiAqXG4gKiBZb3UgcGFzcyB0aGlzIHBvc2l0aW9uIGluIGFsb25nIHdpdGggYSBkZXNpcmVkIGFycm93IGNvbG9yIGFuZCBvcHRpb25hbFxuICogYm9yZGVyIGNvbG9yLCBmb3IgZXhhbXBsZTpcbiAqXG4gKiBgQGluY2x1ZGUgYXJyb3codG9wLCBsZWZ0LCByZWQpYFxuICpcbiAqIGZvciBqdXN0IGEgc2luZ2xlLCByZWQgYXJyb3csIG9yOlxuICpcbiAqIGBAaW5jbHVkZSBhcnJvdyhib3R0b20sIGNlbnRlciwgcmVkLCBibGFjaylgXG4gKlxuICogd2hpY2ggd2lsbCBjcmVhdGUgYSByZWQgdHJpYW5nbGUgd2l0aCBhIGJsYWNrIGJvcmRlciB3aGljaCBzaXRzIGF0IHRoZSBib3R0b21cbiAqIGNlbnRlciBvZiB0aGUgZWxlbWVudC4gQ2FsbCB0aGUgbWl4aW4gdGh1czpcbiAqXG4gICAuZm9ve1xuICAgICAgIGJhY2tncm91bmQtY29sb3I6I0JBREE1NTtcbiAgICAgICBib3JkZXI6MXB4IHNvbGlkICNBQ0U7XG4gICAgICAgQGluY2x1ZGUgYXJyb3codG9wLCBsZWZ0LCAjQkFEQTU1LCAjQUNFKTtcbiAgIH1cbiAqXG4gKi9cbi8qKlxuICogTWVkaWEgcXVlcnkgbWl4aW4uXG4gKlxuICogSXTigJlzIG5vdCBncmVhdCBwcmFjdGljZSB0byBkZWZpbmUgc29saWQgYnJlYWtwb2ludHMgdXAtZnJvbnQsIHByZWZlcnJpbmcgdG9cbiAqIG1vZGlmeSB5b3VyIGRlc2lnbiB3aGVuIGl0IG5lZWRzIGl0LCByYXRoZXIgdGhhbiBhc3N1bWluZyB5b3XigJlsbCB3YW50IGFcbiAqIGNoYW5nZSBhdCDigJhtb2JpbGXigJkuIEhvd2V2ZXIsIGFzIGludWl0LmNzcyBpcyByZXF1aXJlZCB0byB0YWtlIGEgaGFuZHMgb2ZmXG4gKiBhcHByb2FjaCB0byBkZXNpZ24gZGVjaXNpb25zLCB0aGlzIGlzIHRoZSBjbG9zZXN0IHdlIGNhbiBnZXQgdG8gYmFrZWQtaW5cbiAqIHJlc3BvbnNpdmVuZXNzLiBJdOKAmXMgZmxleGlibGUgZW5vdWdoIHRvIGFsbG93IHlvdSB0byBzZXQgeW91ciBvd24gYnJlYWtwb2ludHNcbiAqIGJ1dCBzb2xpZCBlbm91Z2ggdG8gYmUgZnJhbWV3b3JraWZpZWQuXG4gKlxuICogV2UgZGVmaW5lIHNvbWUgYnJvYWQgYnJlYWtwb2ludHMgaW4gb3VyIHZhcnMgZmlsZSB0aGF0IGFyZSBwaWNrZWQgdXAgaGVyZVxuICogZm9yIHVzZSBpbiBhIHNpbXBsZSBtZWRpYSBxdWVyeSBtaXhpbi4gT3VyIG9wdGlvbnMgYXJlOlxuICpcbiAqIHBhbG1cbiAqIGxhcFxuICogbGFwLWFuZC11cFxuICogcG9ydGFibGVcbiAqIGRlc2tcbiAqIGRlc2std2lkZVxuICpcbiAqIE5vdCB1c2luZyBhIG1lZGlhIHF1ZXJ5IHdpbGwsIG5hdHVyYWxseSwgc2VydmUgc3R5bGVzIHRvIGFsbCBkZXZpY2VzLlxuICpcbiAqIGBAaW5jbHVkZSBtZWRpYS1xdWVyeShwYWxtKXsgW3N0eWxlcyBoZXJlXSB9YFxuICpcbiAqIFdlIHdvcmsgb3V0IHlvdXIgZW5kIHBvaW50cyBmb3IgeW91OlxuICovXG4vKiEgbm9ybWFsaXplLmNzcyB2Mi4xLjAgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZHJlc3MgYG91dGxpbmVgIGluY29uc2lzdGVuY3kgYmV0d2VlbiBDaHJvbWUgYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5hOmZvY3VzIHtcbiAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7IH1cblxuLypcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUeXBvZ3JhcGh5XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi8qXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qXG4gKiBDb3JyZWN0IGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIHNlcmlmO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBwcmUtZm9ybWF0dGVkIHRleHQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cblxuLypcbiAqIFNldCBjb25zaXN0ZW50IHF1b3RlIHR5cGVzLlxuICovXG5xIHtcbiAgcXVvdGVzOiBcIlxcMjAxQ1wiIFwiXFwyMDFEXCIgXCJcXDIwMThcIiBcIlxcMjAxOVwiOyB9XG5cbi8qXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwOyB9XG5cbi8qXG4gKiBDb3JyZWN0IG92ZXJmbG93IGRpc3BsYXllZCBvZGRseSBpbiBJRSA5LlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZpZ3VyZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkgNS5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLypcbiAqIDEuIENvcnJlY3QgZm9udCBmYW1pbHkgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgc2l6ZSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovIH1cblxuLypcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLypcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIENocm9tZSwgU2FmYXJpIDUrLCBhbmQgSUUgOCsuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3ggNCsgYW5kIE9wZXJhLlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogMyAqLyB9XG5cbi8qXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLypcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LlxuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbi8qXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIDUgYW5kIENocm9tZVxuICogb24gT1MgWC5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLypcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLypcbiAqIDEuIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkuXG4gKiAyLiBJbXByb3ZlIHJlYWRhYmlsaXR5IGFuZCBhbGlnbm1lbnQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIC8qIDIgKi8gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJFJFU0VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBBIG1vcmUgY29uc2lkZXJlZCByZXNldDsgbW9yZSBvZiBhIHJlc3RhcnQuLi5cbiAqIEFzIHBlcjogY3Nzd2l6YXJkcnkuY29tLzIwMTEvMTAvcmVzZXQtcmVzdGFydGVkXG4gKi9cbi8qKlxuICAgICogTGV04oCZcyBtYWtlIHRoZSBib3ggbW9kZWwgYWxsIG5pY2UsIHNoYWxsIHdlLi4uP1xuICAgICovXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbXMtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW8tYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKipcbiAqIFRoZSB1c3VhbC4uLlxuICovXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxucCwgYmxvY2txdW90ZSwgcHJlLFxuZGwsIGRkLCBvbCwgdWwsXG5mb3JtLCBmaWVsZHNldCwgbGVnZW5kLFxudGFibGUsIHRoLCB0ZCwgY2FwdGlvbixcbmhyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogR2l2ZSBhIGhlbHAgY3Vyc29yIHRvIGVsZW1lbnRzIHRoYXQgZ2l2ZSBleHRyYSBpbmZvIG9uIGA6aG92ZXJgLlxuICovXG5hYmJyW3RpdGxlXSwgZGZuW3RpdGxlXSB7XG4gIGN1cnNvcjogaGVscDsgfVxuXG4vKipcbiAqIFJlbW92ZSB1bmRlcmxpbmVzIGZyb20gcG90ZW50aWFsbHkgdHJvdWJsZXNvbWUgZWxlbWVudHMuXG4gKi9cbnUsIGlucyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKipcbiAqIEFwcGx5IGZhdXggdW5kZXJsaW5lIHZpYSBgYm9yZGVyLWJvdHRvbWAuXG4gKi9cbmlucyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDsgfVxuXG4vKipcbiAqIFNvIHRoYXQgYGFsdGAgdGV4dCBpcyB2aXN1YWxseSBvZmZzZXQgaWYgaW1hZ2VzIGRvbuKAmXQgbG9hZC5cbiAqL1xuaW1nIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogR2l2ZSBmb3JtIGVsZW1lbnRzIHNvbWUgY3Vyc29yIGludGVyYWN0aW9ucy4uLlxuICovXG5sYWJlbCxcbmlucHV0LFxudGV4dGFyZWEsXG5idXR0b24sXG5zZWxlY3QsXG5vcHRpb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnRleHQtaW5wdXQ6YWN0aXZlLFxuLnRleHQtaW5wdXQ6Zm9jdXMsXG50ZXh0YXJlYTphY3RpdmUsXG50ZXh0YXJlYTpmb2N1cyB7XG4gIGN1cnNvcjogdGV4dDtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENMRUFSRklYXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBNaWNybyBjbGVhcmZpeCwgYXMgcGVyOiBjc3MtMTAxLm9yZy9hcnRpY2xlcy9jbGVhcmZpeC9sYXRlc3QtbmV3LWNsZWFyZml4LXNvLWZhci5waHBcbiAqIEV4dGVuZCB0aGUgY2xlYXJmaXggY2xhc3Mgd2l0aCBTYXNzIHRvIGF2b2lkIHRoZSBgLmNmYCBjbGFzcyBhcHBlYXJpbmcgb3ZlclxuICogYW5kIG92ZXIgaW4geW91ciBtYXJrdXAuXG4gKi9cbi5jZjphZnRlciwgLm5hdjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJFNIQVJFRFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogV2hlcmUgYG1hcmdpbi1ib3R0b21gIGlzIGNvbmNlcm5lZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZVxuICogYmFzZSBsaW5lLWhlaWdodC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCBhIGNvbnNpc3RlbnQgdmVydGljYWwgcmh5dGhtLlxuICogQXMgcGVyOiBjc3N3aXphcmRyeS5jb20vMjAxMi8wNi9zaW5nbGUtZGlyZWN0aW9uLW1hcmdpbi1kZWNsYXJhdGlvbnNcbiAqL1xuLyoqXG4gKiBCYXNlIGVsZW1lbnRzXG4gKi9cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGhncm91cCxcbnVsLCBvbCwgZGwsXG5ibG9ja3F1b3RlLCBwLCBhZGRyZXNzLFxudGFibGUsXG5maWVsZHNldCwgZmlndXJlLFxucHJlLFxuLmZvcm0tZmllbGRzID4gbGksXG4ubWVkaWEsXG4uaXNsYW5kLFxuLmlzbGV0IHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMS4zMzMzM3JlbTsgfVxuICAuaXNsZXQgaDEsIC5pc2xldCBoMiwgLmlzbGV0IGgzLCAuaXNsZXQgaDQsIC5pc2xldCBoNSwgLmlzbGV0IGg2LCAuaXNsZXQgaGdyb3VwLCAuaXNsZXRcbiAgdWwsIC5pc2xldCBvbCwgLmlzbGV0IGRsLCAuaXNsZXRcbiAgYmxvY2txdW90ZSwgLmlzbGV0IHAsIC5pc2xldCBhZGRyZXNzLCAuaXNsZXRcbiAgdGFibGUsIC5pc2xldFxuICBmaWVsZHNldCwgLmlzbGV0IGZpZ3VyZSwgLmlzbGV0XG4gIHByZSxcbiAgLmlzbGV0IC5mb3JtLWZpZWxkcyA+IGxpLCAuaXNsZXRcbiAgLm1lZGlhLCAuaXNsZXRcbiAgLmlzbGFuZCwgLmlzbGV0XG4gIC5pc2xldCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjY2NjY3cmVtOyB9XG5cbi8qKlxuICogRG91YmxlZCB1cCBgbWFyZ2luLWJvdHRvbWAgaGVscGVyIGNsYXNzLlxuICovXG4ubGFuZG1hcmsge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICBtYXJnaW4tYm90dG9tOiAyLjY2NjY3cmVtOyB9XG5cbi8qKlxuICogYGhyYCBlbGVtZW50cyBvbmx5IHRha2UgdXAgYSBmZXcgcGl4ZWxzLCBzbyB3ZSBuZWVkIHRvIGdpdmUgdGhlbSBzcGVjaWFsXG4gKiB0cmVhdG1lbnQgcmVnYXJkaW5nIHZlcnRpY2FsIHJoeXRobS5cbiAqL1xuaHIge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICBtYXJnaW4tYm90dG9tOiAxLjJyZW07IH1cblxuLyoqXG4gKiBXaGVyZSBgbWFyZ2luLWxlZnRgIGlzIGNvbmNlcm5lZCB3ZSB3YW50IHRvIHRyeSBhbmQgaW5kZW50IGNlcnRhaW4gZWxlbWVudHNcbiAqIGJ5IGEgY29uc2lzdGVudCBhbW91bnQuIERlZmluZSB0aGF0IGFtb3VudCBvbmNlLCBoZXJlLlxuICovXG51bCwgb2wsIGRkIHtcbiAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gIG1hcmdpbi1sZWZ0OiAyLjY2NjY3cmVtOyB9XG5cbi8qKlxuICogQmFzZSBzdHlsZXM7IHVuY2xhc3NlZCBIVE1MIGVsZW1lbnRzIGV0Yy5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRNQUlOXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaHRtbCB7XG4gIGZvbnQ6IDAuOTM3NWVtLzEuMzMzMzMgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkSEVBRElOR1NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIEFzIHBlcjogY3Nzd2l6YXJkcnkuY29tLzIwMTIvMDIvcHJhZ21hdGljLXByYWN0aWNhbC1mb250LXNpemluZy1pbi1jc3NcbiAqXG4gKiBXaGVuIHdlIGRlZmluZSBhIGhlYWRpbmcgd2UgYWxzbyBkZWZpbmUgYSBjb3JyZXNwb25kaW5nIGNsYXNzIHRvIGdvIHdpdGggaXQuXG4gKiBUaGlzIGFsbG93cyB1cyB0byBhcHBseSwgc2F5LCBgY2xhc3M9YWxwaGFgIHRvIGEgYGgzYDsgYSBkb3VibGUtc3RyYW5kZWRcbiAqIGhlYWRpbmcgaGllcmFyY2h5LlxuICovXG5oMSwgLmFscGhhIHtcbiAgZm9udC1zaXplOiAzNnB4O1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTExMTE7IH1cblxuaDIsIC5iZXRhIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzOyB9XG5cbmgzLCAuZ2FtbWEge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMS42NjY2NzsgfVxuXG5oNCwgLmRlbHRhIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXNpemU6IDEuMzMzMzNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbmg1LCAuZXBzaWxvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjA2NjY3cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTsgfVxuXG5oNiwgLnpldGEge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMC45MzMzM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7IH1cblxuLyoqXG4gKiBIZWFkaW5nIGdyb3VwcyBhbmQgZ2VuZXJpYyBhbnktaGVhZGluZyBjbGFzcy5cbiAqIFRvIHRhcmdldCBhbnkgaGVhZGluZyBvZiBhbnkgbGV2ZWwgc2ltcGx5IGFwcGx5IGEgY2xhc3Mgb2YgYC5oTmAsIGUuZy46XG4gKlxuICAgPGhncm91cD5cbiAgICAgICA8aDEgY2xhc3M9aE4+aW51aXQuY3NzPC9oMT5cbiAgICAgICA8aDIgY2xhc3M9aE4+QmVzdC4gRnJhbWV3b3JrLiBFdmVyITwvaDI+XG4gICA8L2hncm91cD5cbiAqXG4gKi9cbmhncm91cCAuaE4ge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qKlxuICogQSBzZXJpZXMgb2YgY2xhc3NlcyBmb3Igc2V0dGluZyBtYXNzaXZlIHR5cGU7IGZvciB1c2UgaW4gaGVyb2VzLCBtYXN0aGVhZHMsXG4gKiBwcm9tb3MsIGV0Yy5cbiAqL1xuLmdpZ2Ege1xuICBmb250LXNpemU6IDk2cHg7XG4gIGZvbnQtc2l6ZTogNi40cmVtO1xuICBsaW5lLWhlaWdodDogMS4wNDE2NzsgfVxuXG4ubWVnYSB7XG4gIGZvbnQtc2l6ZTogNzJweDtcbiAgZm9udC1zaXplOiA0LjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjExMTExOyB9XG5cbi5raWxvIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXNpemU6IDMuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRQQVJBR1JBUEhTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBUaGUgYC5sZWRlYCBjbGFzcyBpcyB1c2VkIHRvIG1ha2UgdGhlIGludHJvZHVjdG9yeSB0ZXh0ICh1c3VhbGx5IGEgcGFyYWdyYXBoKVxuICogb2YgYSBkb2N1bWVudCBzbGlnaHRseSBsYXJnZXIuXG4gKi9cbi5sZWRlLFxuLmxlYWQge1xuICBmb250LXNpemU6IDE2Ljg3NXB4O1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xODUxOTsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJFNNQUxMUFJJTlRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIEEgc2VyaWVzIG9mIGNsYXNzZXMgZm9yIHNldHRpbmcgdGlueSB0eXBlOyBmb3IgdXNlIGluIHNtYWxscHJpbnQgZXRjLlxuICovXG4uc21hbGxwcmludCxcbi5taWxsaSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY2NjY3OyB9XG5cbi5taWNybyB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1zaXplOiAwLjY2NjY3cmVtO1xuICBsaW5lLWhlaWdodDogMjsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJFFVT1RFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogSWYgRW5nbGlzaCBxdW90ZXMgYXJlIHNldCBpbiBgX3ZhcnMuc2Nzc2AsIGRlZmluZSB0aGVtIGhlcmUuXG4gKi9cbi8qKlxuICogQmlnIHVwIEBib2JsZXQ6IGh0bWw1ZG9jdG9yLmNvbS9ibG9ja3F1b3RlLXEtY2l0ZVxuICovXG4vKipcbiAqIElubGluZSBxdW90ZXMuXG4gKi9cbnEge1xuICBxdW90ZXM6IFwi4oCYXCIgXCLigJlcIiBcIlxcXFwyMDFDIFwiIFwiXFxcXDIwMUQgXCI7IH1cbiAgcTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDE4XCI7XG4gICAgY29udGVudDogb3Blbi1xdW90ZTsgfVxuICBxOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcMjAxOVwiO1xuICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlOyB9XG4gIHEgcTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDFDXCI7XG4gICAgY29udGVudDogb3Blbi1xdW90ZTsgfVxuICBxIHE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDFEXCI7XG4gICAgY29udGVudDogY2xvc2UtcXVvdGU7IH1cblxuYmxvY2txdW90ZSB7XG4gIHF1b3RlczogXCJcXFxcMjAxQyBcIiBcIlxcXFwyMDFEIFwiOyB9XG4gIGJsb2NrcXVvdGUgcDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxcXDIwMUMgXCI7XG4gICAgY29udGVudDogb3Blbi1xdW90ZTsgfVxuICBibG9ja3F1b3RlIHA6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgY29udGVudDogbm8tY2xvc2UtcXVvdGU7IH1cbiAgYmxvY2txdW90ZSBwOmxhc3Qtb2YtdHlwZTphZnRlciB7XG4gICAgY29udGVudDogXCJcXFxcMjAxRCBcIjtcbiAgICBjb250ZW50OiBjbG9zZS1xdW90ZTsgfVxuICBibG9ja3F1b3RlIHE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAxOFwiO1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7IH1cbiAgYmxvY2txdW90ZSBxOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcMjAxOVwiO1xuICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlOyB9XG5cbi8qKlxuICpcbiAgIDxibG9ja3F1b3RlPlxuICAgICAgIDxwPkluc2FuaXR5OiBkb2luZyB0aGUgc2FtZSB0aGluZyBvdmVyIGFuZCBvdmVyIGFnYWluIGFuZCBleHBlY3RpbmdcbiAgICAgICBkaWZmZXJlbnQgcmVzdWx0cy48L3A+XG4gICAgICAgPGIgY2xhc3M9c291cmNlPkFsYmVydCBFaW5zdGVpbjwvYj5cbiAgIDwvYmxvY2txdW90ZT5cbiAqXG4gKi9cbmJsb2NrcXVvdGUge1xuICAvKipcbiAgICAgKiAuNGVtIGlzIHJvdWdobHkgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBvcGVuaW5nIOKAnCB0aGF0IHdlIHdpc2ggdG8gaGFuZy5cbiAgICAgKi9cbiAgdGV4dC1pbmRlbnQ6IC0wLjQxZW07IH1cbiAgYmxvY2txdW90ZSBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uc291cmNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtaW5kZW50OiAwOyB9XG4gIC5zb3VyY2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAxNFwiOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09ERVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogVXNlIGFuIGV4cGxpY2l0IGZvbnQgc3RhY2sgdG8gZW5zdXJlIGJyb3dzZXJzIHJlbmRlciBjb3JyZWN0IGBsaW5lLWhlaWdodGAuXG4gKi9cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbnByZSBtYXJrIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG4vKipcbiAqIEFkZCBjb21tZW50cyB0byB5b3VyIGNvZGUgZXhhbXBsZXMsIGUuZy46XG4gKlxuICAgPGNvZGU+Jmx0Oy9kaXYmZ3Q7PHNwYW4gY2xhc3M9Y29kZS1jb21tZW50PiZsdDshLS0gL3dyYXBwZXIgLS0mZ3Q7PC9zcGFuPjwvY29kZT5cbiAqXG4gKi9cbi5jb2RlLWNvbW1lbnQge1xuICAvKipcbiAgICAgKiBPdmVycmlkZSB0aGlzIHNldHRpbmcgaW4geW91ciB0aGVtZSBzdHlsZXNoZWV0XG4gICAgICovXG4gIG9wYWNpdHk6IDAuNzU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT03NSk7IH1cblxuLyoqXG4gKiBZb3UgY2FuIGFkZCBsaW5lIG51bWJlcnMgdG8geW91ciBjb2RlIGV4YW1wbGVzIGJ1dCBiZSB3YXJuZWQsIGl0IHJlcXVpcmVzXG4gKiBzb21lIHByZXR0eSBmdW5reSBsb29raW5nIG1hcmt1cCwgZS5nLjpcbiAqXG4gICA8b2wgY2xhc3M9bGluZS1udW1iZXJzPlxuICAgICAgIDxsaT48Y29kZT4ubmF2ezwvY29kZT48L2xpPlxuICAgICAgIDxsaT48Y29kZT4gICAgbGlzdC1zdHlsZTpub25lOzwvY29kZT48L2xpPlxuICAgICAgIDxsaT48Y29kZT4gICAgbWFyZ2luLWxlZnQ6MDs8L2NvZGU+PC9saT5cbiAgICAgICA8bGk+PGNvZGU+fTwvY29kZT48L2xpPlxuICAgICAgIDxsaT48Y29kZT4gICAgLm5hdiA+IGxpLDwvY29kZT48L2xpPlxuICAgICAgIDxsaT48Y29kZT4gICAgICAgIC5uYXYgPiBsaSA+IGF7PC9jb2RlPjwvbGk+XG4gICAgICAgPGxpPjxjb2RlPiAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOzwvY29kZT48L2xpPlxuICAgICAgIDxsaT48Y29kZT4gICAgICAgICAgICpkaXNwbGF5OmlubGluZS1ibG9jazs8L2NvZGU+PC9saT5cbiAgICAgICA8bGk+PGNvZGU+ICAgICAgICAgICAgem9vbToxOzwvY29kZT48L2xpPlxuICAgICAgIDxsaT48Y29kZT4gICAgICAgIH08L2NvZGU+PC9saT5cbiAgIDwvb2w+XG4gKlxuICogMS4gTWFrZSB0aGUgbGlzdCBsb29rIGxpa2UgY29kZS5cbiAqIDIuIEdpdmUgdGhlIGxpc3QgZmx1c2ggbnVtYmVycyB3aXRoIGEgbGVhZGluZyB6ZXJvLlxuICogMy4gTWFrZSBzdXJlIGxpbmVzIG9mIGNvZGUgZG9u4oCZdCB3cmFwLlxuICogNC4gR2l2ZSB0aGUgY29kZSBmb3JtIGJ5IGZvcmNpbmcgdGhlIGBjb2RlYCB0byBob25vdXIgd2hpdGUtc3BhY2UuXG4gKi9cbi5saW5lLW51bWJlcnMge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcbiAgLyogWzFdICovXG4gIGxpc3Qtc3R5bGU6IGRlY2ltYWwtbGVhZGluZy16ZXJvIGluc2lkZTtcbiAgLyogWzJdICovXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIFszXSAqL1xuICBvdmVyZmxvdzogYXV0bztcbiAgLyogWzNdICovXG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5saW5lLW51bWJlcnMgY29kZSB7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIC8qIFs0XSAqLyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkSU1BR0VTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBEZW1vOiBqc2ZpZGRsZS5uZXQvaW51aXRjc3MveU10dXJcbiAqL1xuLyoqXG4gKiBGbHVpZCBpbWFnZXMuXG4gKi9cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKipcbiAqIE5vbi1mbHVpZCBpbWFnZXMgaWYgeW91IHNwZWNpZnkgYHdpZHRoYCBhbmQvb3IgYGhlaWdodGAgYXR0cmlidXRlcy5cbiAqL1xuaW1nW3dpZHRoXSxcbmltZ1toZWlnaHRdIHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qKlxuICogUm91bmRlZCBpbWFnZXMuXG4gKi9cbi5pbWctLXJvdW5kIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG5cbi8qKlxuICogSW1hZ2UgcGxhY2VtZW50IHZhcmlhdGlvbnMuXG4gKi9cbi5pbWctLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXJnaW4tbGVmdDogMjBweDsgfVxuXG4uaW1nLS1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uaW1nLS1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4vKipcbiAqIEtlZXAgeW91ciBpbWFnZXMgb24geW91ciBiYXNlbGluZS5cbiAqXG4gKiBQbGVhc2Ugbm90ZSwgdGhlc2Ugd2lsbCBub3Qgd29yayB0b28gbmljZWx5IHdpdGggZmx1aWQgaW1hZ2VzIGFuZCB3aWxsXG4gKiBkaXN0b3J0IHdoZW4gcmVzaXplZCBiZWxvdyBhIGNlcnRhaW4gd2lkdGguIFVzZSB3aXRoIGNhdXRpb24uXG4gKi9cbi5pbWctLXNob3J0IHtcbiAgaGVpZ2h0OiAxMDBweDsgfVxuXG4uaW1nLS1tZWRpdW0ge1xuICBoZWlnaHQ6IDIwMHB4OyB9XG5cbi5pbWctLXRhbGwge1xuICBoZWlnaHQ6IDMwMHB4OyB9XG5cbi8qKlxuICogSW1hZ2VzIGluIGBmaWd1cmVgIGVsZW1lbnRzLlxuICovXG5maWd1cmUgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJExJU1RTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBSZW1vdmUgdmVydGljYWwgc3BhY2luZyBmcm9tIG5lc3RlZCBsaXN0cy5cbiAqL1xubGkgPiB1bCxcbmxpID4gb2wge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qKlxuICogSGF2ZSBhIG51bWJlcmVkIGB1bGAgd2l0aG91dCB0aGUgc2VtYW50aWNzIGltcGxpZWQgYnkgdXNpbmcgYW4gYG9sYC5cbiAqL1xuLyp1bCovXG4ubnVtYmVyZWQtbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJFRBQkxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogV2UgaGF2ZSBhIGxvdCBhdCBvdXIgZGlzcG9zYWwgZm9yIG1ha2luZyB2ZXJ5IGNvbXBsZXggdGFibGUgY29uc3RydWN0cywgZS5nLjpcbiAqXG4gICA8dGFibGUgY2xhc3M9XCJ0YWJsZS0tYm9yZGVyZWQgIHRhYmxlLS1zdHJpcGVkICB0YWJsZS0tZGF0YVwiPlxuICAgICAgIDxjb2xncm91cD5cbiAgICAgICAgICAgPGNvbCBjbGFzcz10MTA+XG4gICAgICAgICAgIDxjb2wgY2xhc3M9dDEwPlxuICAgICAgICAgICA8Y29sIGNsYXNzPXQxMD5cbiAgICAgICAgICAgPGNvbD5cbiAgICAgICA8L2NvbGdyb3VwPlxuICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgPHRoIGNvbHNwYW49Mz5Gb288L3RoPlxuICAgICAgICAgICAgICAgPHRoPkJhcjwvdGg+XG4gICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgIDx0aD5Mb3JlbTwvdGg+XG4gICAgICAgICAgICAgICA8dGg+SXBzdW08L3RoPlxuICAgICAgICAgICAgICAgPHRoIGNsYXNzPW51bWVyaWNhbD5Eb2xvcjwvdGg+XG4gICAgICAgICAgICAgICA8dGg+U2l0PC90aD5cbiAgICAgICAgICAgPC90cj5cbiAgICAgICA8L3RoZWFkPlxuICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgPHRoIHJvd3NwYW49Mz5TaXQ8L3RoPlxuICAgICAgICAgICAgICAgPHRkPkRvbG9yPC90ZD5cbiAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1udW1lcmljYWw+MDMuNzg4PC90ZD5cbiAgICAgICAgICAgICAgIDx0ZD5Mb3JlbTwvdGQ+XG4gICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgIDx0ZD5Eb2xvcjwvdGQ+XG4gICAgICAgICAgICAgICA8dGQgY2xhc3M9bnVtZXJpY2FsPjMyLjIxMDwvdGQ+XG4gICAgICAgICAgICAgICA8dGQ+TG9yZW08L3RkPlxuICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICA8dGQ+RG9sb3I8L3RkPlxuICAgICAgICAgICAgICAgPHRkIGNsYXNzPW51bWVyaWNhbD40Ny43OTc8L3RkPlxuICAgICAgICAgICAgICAgPHRkPkxvcmVtPC90ZD5cbiAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgPHRoIHJvd3NwYW49Mj5TaXQ8L3RoPlxuICAgICAgICAgICAgICAgPHRkPkRvbG9yPC90ZD5cbiAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1udW1lcmljYWw+MDkuNjQwPC90ZD5cbiAgICAgICAgICAgICAgIDx0ZD5Mb3JlbTwvdGQ+XG4gICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgIDx0ZD5Eb2xvcjwvdGQ+XG4gICAgICAgICAgICAgICA8dGQgY2xhc3M9bnVtZXJpY2FsPjEyLjExNzwvdGQ+XG4gICAgICAgICAgICAgICA8dGQ+TG9yZW08L3RkPlxuICAgICAgICAgICA8L3RyPlxuICAgICAgIDwvdGJvZHk+XG4gICA8L3RhYmxlPlxuICpcbiAqL1xudGFibGUge1xuICB3aWR0aDogMTAwJTsgfVxuXG50aCxcbnRkIHtcbiAgcGFkZGluZzogNXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogMTBweDsgfSB9XG5cbi8qKlxuICogQ2VsbCBhbGlnbm1lbnRzXG4gKi9cbltjb2xzcGFuXSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5bY29sc3Bhbj1cIjFcIl0ge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbltyb3dzcGFuXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuW3Jvd3NwYW49XCIxXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4ubnVtZXJpY2FsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLyoqXG4gKiBJbiB0aGUgSFRNTCBhYm92ZSB3ZSBzZWUgc2V2ZXJhbCBgY29sYCBlbGVtZW50cyB3aXRoIGNsYXNzZXMgd2hvc2UgbnVtYmVyc1xuICogcmVwcmVzZW50IGEgcGVyY2VudGFnZSB3aWR0aCBmb3IgdGhhdCBjb2x1bW4uIFdlIGxlYXZlIG9uZSBjb2x1bW4gZnJlZSBvZiBhXG4gKiBjbGFzcyBzbyB0aGF0IGNvbHVtbiBjYW4gc29hayB1cCB0aGUgZWZmZWN0cyBvZiBhbnkgYWNjaWRlbnRhbCBicmVha2FnZSBpblxuICogdGhlIHRhYmxlLlxuICovXG4udDUge1xuICB3aWR0aDogNSU7IH1cblxuLnQxMCB7XG4gIHdpZHRoOiAxMCU7IH1cblxuLnQxMiB7XG4gIHdpZHRoOiAxMi41JTsgfVxuXG4vKiAxLzggKi9cbi50MTUge1xuICB3aWR0aDogMTUlOyB9XG5cbi50MjAge1xuICB3aWR0aDogMjAlOyB9XG5cbi50MjUge1xuICB3aWR0aDogMjUlOyB9XG5cbi8qIDEvNCAqL1xuLnQzMCB7XG4gIHdpZHRoOiAzMCU7IH1cblxuLnQzMyB7XG4gIHdpZHRoOiAzMy4zMzMlOyB9XG5cbi8qIDEvMyAqL1xuLnQzNSB7XG4gIHdpZHRoOiAzNSU7IH1cblxuLnQzNyB7XG4gIHdpZHRoOiAzNy41JTsgfVxuXG4vKiAzLzggKi9cbi50NDAge1xuICB3aWR0aDogNDAlOyB9XG5cbi50NDUge1xuICB3aWR0aDogNDUlOyB9XG5cbi50NTAge1xuICB3aWR0aDogNTAlOyB9XG5cbi8qIDEvMiAqL1xuLnQ1NSB7XG4gIHdpZHRoOiA1NSU7IH1cblxuLnQ2MCB7XG4gIHdpZHRoOiA2MCU7IH1cblxuLnQ2MiB7XG4gIHdpZHRoOiA2Mi41JTsgfVxuXG4vKiA1LzggKi9cbi50NjUge1xuICB3aWR0aDogNjUlOyB9XG5cbi50NjYge1xuICB3aWR0aDogNjYuNjY2JTsgfVxuXG4vKiAyLzMgKi9cbi50NzAge1xuICB3aWR0aDogNzAlOyB9XG5cbi50NzUge1xuICB3aWR0aDogNzUlOyB9XG5cbi8qIDMvNCovXG4udDgwIHtcbiAgd2lkdGg6IDgwJTsgfVxuXG4udDg1IHtcbiAgd2lkdGg6IDg1JTsgfVxuXG4udDg3IHtcbiAgd2lkdGg6IDg3LjUlOyB9XG5cbi8qIDcvOCAqL1xuLnQ5MCB7XG4gIHdpZHRoOiA5MCU7IH1cblxuLnQ5NSB7XG4gIHdpZHRoOiA5NSU7IH1cblxuLyoqXG4gKiBCb3JkZXJlZCB0YWJsZXNcbiAqL1xuLnRhYmxlLS1ib3JkZXJlZCB0aCxcbi50YWJsZS0tYm9yZGVyZWQgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyB9XG4gIC50YWJsZS0tYm9yZGVyZWQgdGg6ZW1wdHksXG4gIC50YWJsZS0tYm9yZGVyZWQgdGQ6ZW1wdHkge1xuICAgIGJvcmRlcjogbm9uZTsgfVxuXG4udGFibGUtLWJvcmRlcmVkIHRoZWFkIHRyOmxhc3QtY2hpbGQgdGgge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7IH1cblxuLnRhYmxlLS1ib3JkZXJlZCB0Ym9keSB0ciB0aDpsYXN0LW9mLXR5cGUge1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDJweDsgfVxuXG4vKipcbiAqIFN0cmlwZWQgdGFibGVzXG4gKi9cbi50YWJsZS0tc3RyaXBlZCB0Ym9keSB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYztcbiAgLyogT3ZlcnJpZGUgdGhpcyBjb2xvciBpbiB5b3VyIHRoZW1lIHN0eWxlc2hlZXQgKi8gfVxuXG4vKipcbiAqIERhdGEgdGFibGVcbiAqL1xuLnRhYmxlLS1kYXRhIHtcbiAgZm9udDogMTJweC8xLjUgc2Fucy1zZXJpZjsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJEZPUk1TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKlxuICogRGVtbzoganNmaWRkbGUubmV0L2ludWl0Y3NzL01oSEhVXG4gKlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDIwcHg7IH1cblxuLyoqXG4gKiBUZXh0IGlucHV0c1xuICpcbiAqIEluc3RlYWQgb2YgYSBgW3R5cGVdYCBzZWxlY3RvciBmb3IgZWFjaCBraW5kIG9mIGZvcm0gaW5wdXQsIHdlIGp1c3QgdXNlIGFcbiAqIGNsYXNzIHRvIHRhcmdldCBhbnkvZXZlcnkgb25lLCBlLmcuOlxuICAgPGlucHV0IHR5cGU9dGV4dCBjbGFzcz10ZXh0LWlucHV0PlxuICAgPGlucHV0IHR5cGU9ZW1haWwgY2xhc3M9dGV4dC1pbnB1dD5cbiAgIDxpbnB1dCB0eXBlPXBhc3N3b3JkIGNsYXNzPXRleHQtaW5wdXQ+XG4gKlxuICovXG4udGV4dC1pbnB1dCxcbnRleHRhcmVhIHtcbiAgLyoqXG4gICAgICogU3R5bGUgdGhlc2UgdmlhIHlvdXIgdGhlbWUgc3R5bGVzaGVldC5cbiAgICAgKi8gfVxuXG4vKipcbiAqIEdyb3VwIHNldHMgb2YgZm9ybSBmaWVsZHMgaW4gYSBsaXN0LCBlLmcuOlxuICpcbiAgIDx1bCBjbGFzcz1mb3JtLWZpZWxkcz5cbiAgICAgICA8bGk+XG4gICAgICAgICAgIDxsYWJlbCAvPlxuICAgICAgICAgICA8aW5wdXQgLz5cbiAgICAgICA8L2xpPlxuICAgICAgIDxsaT5cbiAgICAgICAgICAgPGxhYmVsIC8+XG4gICAgICAgICAgIDxzZWxlY3QgLz5cbiAgICAgICA8L2xpPlxuICAgICAgIDxsaT5cbiAgICAgICAgICAgPGxhYmVsIC8+XG4gICAgICAgICAgIDxpbnB1dCAvPlxuICAgICAgIDwvbGk+XG4gICA8L3VsPlxuICpcbiAqL1xuLmZvcm0tZmllbGRzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwOyB9XG5cbi5mb3JtLWZpZWxkcyA+IGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qKlxuICogTGFiZWxzXG4gKlxuICogRGVmaW5lIGEgYC5sYWJlbGAgY2xhc3MgYXMgd2VsbCBhcyBhIGBsYWJlbGAgZWxlbWVudC4gVGhpcyBtZWFucyB3ZSBjYW4gYXBwbHlcbiAqIGxhYmVsLWxpa2Ugc3R5bGluZyB0byBtZXRhLWxhYmVscyBmb3IgZ3JvdXBzIG9mIG9wdGlvbnMgd2hlcmUgYSBgbGFiZWxgXG4gKiBlbGVtZW50IGlzIG5vdCBzdWl0YWJsZSwgZS5nLjpcbiAqXG4gICA8bGk+XG4gICAgICAgPHNwYW4gY2xhc3M9bGFiZWw+U2VsZWN0IGFuIG9wdGlvbiBiZWxvdzo8L3NwYW4+XG4gICAgICAgPHVsIGNsYXNzPVwibXVsdGktbGlzdCAgZm91ci1jb2xzXCI+XG4gICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgIDxpbnB1dCAvPiA8bGFiZWwgLz5cbiAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgPGlucHV0IC8+IDxsYWJlbCAvPlxuICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICA8aW5wdXQgLz4gPGxhYmVsIC8+XG4gICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgIDxpbnB1dCAvPiA8bGFiZWwgLz5cbiAgICAgICAgICAgPC9saT5cbiAgICAgICA8L3VsPlxuICAgPC9saT5cbiAqXG4gKi9cbmxhYmVsLFxuLmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogRXh0cmEgaGVscCB0ZXh0IGluIGBsYWJlbGBzLCBlLmcuOlxuICAgICAqXG4gICAgICAgPGxhYmVsPkNhcmQgbnVtYmVyIDxzbWFsbCBjbGFzcz1hZGRpdGlvbmFsPk5vIHNwYWNlczwvc21hbGw+PC9sYWJlbD5cbiAgICAgKlxuICAgICAqL1xuLmFkZGl0aW9uYWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKlxuICogR3JvdXBzIG9mIGNoZWNrYm94ZXMgYW5kIHJhZGlvcywgZS5nLjpcbiAqXG4gICA8bGk+XG4gICAgICAgPHVsIGNsYXNzPWNoZWNrLWxpc3Q+XG4gICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgIDxpbnB1dCAvPiA8bGFiZWwgLz5cbiAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgPGlucHV0IC8+IDxsYWJlbCAvPlxuICAgICAgICAgICA8L2xpPlxuICAgICAgIDwvdWw+XG4gICA8L2xpPlxuICpcbiAqL1xuLmNoZWNrLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7IH1cblxuLypcbiAgICAgKiBMYWJlbHMgaW4gY2hlY2stbGlzdHNcbiAgICAgKi9cbi5jaGVjay1sYWJlbCxcbi5jaGVjay1saXN0IGxhYmVsLFxuLmNoZWNrLWxpc3QgLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICogU3Bva2VuIGZvcm1zIGFyZSBmb3IgZm9ybXMgdGhhdCByZWFkIGxpa2Ugc3Bva2VuIHdvcmQsIGUuZy46XG4gKlxuICAgPGxpIGNsYXNzPXNwb2tlbi1mb3JtPlxuICAgICAgIEhlbGxvLCBteSA8bGFiZWwgZm9yPXNwb2tlbi1uYW1lPm5hbWU8L2xhYmVsPiBpc1xuICAgICAgIDxpbnB1dCB0eXBlPXRleHQgY2xhc3M9dGV4dC1pbnB1dCBpZD1zcG9rZW4tbmFtZT4uIE15IGhvbWVcbiAgICAgICA8bGFiZWwgZm9yPWNvdW50cnk+Y291bnRyeTwvbGFiZWw+IGlzXG4gICAgICAgPHNlbGVjdCBpZD1jb3VudHJ5PlxuICAgICAgICAgICA8b3B0aW9uPlVLPC9vcHRpb24+XG4gICAgICAgICAgIDxvcHRpb24+VVM8L29wdGlvbj5cbiAgICAgICAgICAgPG9wdGlvbj5PdGhlcjwvb3B0aW9uPlxuICAgICAgIDwvc2VsZWN0PlxuICAgPC9saT5cbiAqXG4gKi9cbi5zcG9rZW4tZm9ybSBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udDogaW5oZXJpdDsgfVxuXG4vKipcbiAqIEV4dHJhIGhlbHAgdGV4dCBkaXNwbGF5ZWQgYWZ0ZXIgYSBmaWVsZCB3aGVuIHRoYXQgZmllbGQgaXMgaW4gZm9jdXMsIGUuZy46XG4gKlxuICAgPGxhYmVsIGZvcj1lbWFpbD5FbWFpbDo8L2xhYmVsPlxuICAgPGlucHV0IHR5cGU9ZW1haWwgY2xhc3M9dGV4dC1pbnB1dCBpZD1lbWFpbD5cbiAgIDxzbWFsbCBjbGFzcz1leHRyYS1oZWxwPi5lZHUgZW1haWxzIG9ubHk8L3NtYWxsPlxuICpcbiAqIFdlIGxlYXZlIHRoZSBoZWxwIHRleHQgaW4gdGhlIGRvY3VtZW50IGZsb3cgYW5kIG1lcmVseSBzZXQgaXQgdG9cbiAqIGB2aXNpYmlsaXR5OmhpZGRlbjtgLiBUaGlzIG1lYW5zIHRoYXQgaXQgd29u4oCZdCBpbnRlcmZlcmUgd2l0aCBhbnl0aGluZyBvbmNlXG4gKiBpdCByZWFwcGVhcnMuXG4gKlxuICovXG4vKnNtYWxsKi9cbi5leHRyYS1oZWxwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnRleHQtaW5wdXQ6YWN0aXZlICsgLmV4dHJhLWhlbHAsXG4udGV4dC1pbnB1dDpmb2N1cyArIC5leHRyYS1oZWxwIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4vKipcbiAqIE9iamVjdHMgYW5kIGFic3RyYWN0aW9uc1xuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJEdSSURTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBGbHVpZCBhbmQgbmVzdGFibGUgZ3JpZCBzeXN0ZW0sIGUuZy46XG4gKlxuICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cblxuICAgICAgIDxkaXYgY2xhc3M9XCJncmlkX19pdGVtICBvbmUtdGhpcmRcIj5cbiAgICAgICAgICAgPHA+T25lIHRoaXJkIGdyaWQ8L3A+XG4gICAgICAgPC9kaXY+PCEtLVxuXG4gICAgLS0+PGRpdiBjbGFzcz1cImdyaWRfX2l0ZW0gIHR3by10aGlyZHNcIj5cbiAgICAgICAgICAgPHA+VHdvIHRoaXJkcyBncmlkPC9wPlxuICAgICAgIDwvZGl2PjwhLS1cblxuICAgIC0tPjxkaXYgY2xhc3M9XCJncmlkX19pdGVtICBvbmUtaGFsZlwiPlxuICAgICAgICAgICA8cD5PbmUgaGFsZiBncmlkPC9wPlxuICAgICAgIDwvZGl2PjwhLS1cblxuICAgIC0tPjxkaXYgY2xhc3M9XCJncmlkX19pdGVtICBvbmUtcXVhcnRlclwiPlxuICAgICAgICAgICA8cD5PbmUgcXVhcnRlciBncmlkPC9wPlxuICAgICAgIDwvZGl2PjwhLS1cblxuICAgIC0tPjxkaXYgY2xhc3M9XCJncmlkX19pdGVtICBvbmUtcXVhcnRlclwiPlxuICAgICAgICAgICA8cD5PbmUgcXVhcnRlciBncmlkPC9wPlxuICAgICAgIDwvZGl2PlxuXG4gICA8L2Rpdj5cbiAqXG4gKiBEZW1vOiBqc2ZpZGRsZS5uZXQvaW51aXRjc3MvQ0xZVUNcbiAqXG4gKi9cbi8qKlxuICogR3JpZCB3cmFwcGVyXG4gKi9cbi5ncmlkIHtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qKlxuICAgICAqIFZlcnkgaW5mcmVxdWVudGx5IG9jY3VyaW5nIGdyaWQgd3JhcHBlcnMgYXMgY2hpbGRyZW4gb2YgZ3JpZCB3cmFwcGVycy5cbiAgICAgKi9cbi5ncmlkID4gLmdyaWQge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4vKipcbiAgICAgKiBHcmlkXG4gICAgICovXG4uZ3JpZF9faXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJE5BVlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogTmF2IGFic3RyYWN0aW9uIGFzIHBlcjogY3Nzd2l6YXJkcnkuY29tLzIwMTEvMDkvdGhlLW5hdi1hYnN0cmFjdGlvblxuICogV2hlbiB1c2VkIG9uIGFuIGBvbGAgb3IgYHVsYCwgdGhpcyBjbGFzcyB0aHJvd3MgdGhlIGxpc3QgaW50byBob3Jpem9udGFsIG1vZGVcbiAqIGUuZy46XG4gKlxuICAgPHVsIGNsYXNzPW5hdj5cbiAgICAgICA8bGk+PGEgaHJlZj0jPkhvbWU8L2E+PC9saT5cbiAgICAgICA8bGk+PGEgaHJlZj0jPkFib3V0PC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Qb3J0Zm9saW88L2E+PC9saT5cbiAgICAgICA8bGk+PGEgaHJlZj0jPkNvbnRhY3Q8L2E+PC9saT5cbiAgIDwvdWw+XG4gKlxuICogRGVtbzoganNmaWRkbGUubmV0L2ludWl0Y3NzL1ZucGg0XG4gKlxuICovXG4ubmF2IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLm5hdiA+IGxpLFxuICAubmF2ID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgKmRpc3BsYXk6IGlubGluZTtcbiAgICB6b29tOiAxOyB9XG5cbi8qKlxuICogYC5uYXYtLXN0YWNrZWRgIGV4dGVuZHMgYC5uYXZgIGFuZCB0aHJvd3MgdGhlIGxpc3QgaW50byB2ZXJ0aWNhbCBtb2RlLCBlLmcuOlxuICpcbiAgIDx1bCBjbGFzcz1cIm5hdiAgbmF2LS1zdGFja2VkXCI+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Ib21lPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5BYm91dDwvYT48L2xpPlxuICAgICAgIDxsaT48YSBocmVmPSM+UG9ydGZvbGlvPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Db250YWN0PC9hPjwvbGk+XG4gICA8L3VsPlxuICpcbiAqL1xuLm5hdi0tc3RhY2tlZCA+IGxpIHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG4gIC5uYXYtLXN0YWNrZWQgPiBsaSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogYC5uYXYtLWJhbm5lcmAgZXh0ZW5kcyBgLm5hdmAgYW5kIGNlbnRyZXMgdGhlIGxpc3QsIGUuZy46XG4gKlxuICAgPHVsIGNsYXNzPVwibmF2ICBuYXYtLWJhbm5lclwiPlxuICAgICAgIDxsaT48YSBocmVmPSM+SG9tZTwvYT48L2xpPlxuICAgICAgIDxsaT48YSBocmVmPSM+QWJvdXQ8L2E+PC9saT5cbiAgICAgICA8bGk+PGEgaHJlZj0jPlBvcnRmb2xpbzwvYT48L2xpPlxuICAgICAgIDxsaT48YSBocmVmPSM+Q29udGFjdDwvYT48L2xpPlxuICAgPC91bD5cbiAqXG4gKi9cbi5uYXYtLWJhbm5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKipcbiAqIEdpdmUgbmF2IGxpbmtzIGEgYmlnLCBibG9ja3kgaGl0IGFyZWEuIEV4dGVuZHMgYC5uYXZgLCBlLmcuOlxuICpcbiAgIDx1bCBjbGFzcz1cIm5hdiAgbmF2LS1ibG9ja1wiPlxuICAgICAgIDxsaT48YSBocmVmPSM+SG9tZTwvYT48L2xpPlxuICAgICAgIDxsaT48YSBocmVmPSM+QWJvdXQ8L2E+PC9saT5cbiAgICAgICA8bGk+PGEgaHJlZj0jPlBvcnRmb2xpbzwvYT48L2xpPlxuICAgICAgIDxsaT48YSBocmVmPSM+Q29udGFjdDwvYT48L2xpPlxuICAgPC91bD5cbiAqXG4gKi9cbi5uYXYtLWJsb2NrIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC8qKlxuICAgICAqIFJlbW92ZSB3aGl0ZXNwYWNlIGNhdXNlZCBieSBgaW5saW5lLWJsb2NrYC5cbiAgICAgKi9cbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjMxZW07XG4gIHdvcmQtc3BhY2luZzogLTAuNDNlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAubmF2LS1ibG9jayA+IGxpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHdvcmQtc3BhY2luZzogbm9ybWFsOyB9XG4gICAgLm5hdi0tYmxvY2sgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMTBweDsgfVxuXG4vKipcbiAqIEZvcmNlIGEgbmF2IHRvIG9jY3VweSAxMDAlIG9mIHRoZSBhdmFpbGFibGUgd2lkdGggb2YgaXRzIHBhcmVudC4gRXh0ZW5kc1xuICogYC5uYXZgLCBlLmcuOlxuICpcbiAgIDx1bCBjbGFzcz1cIm5hdiAgbmF2LS1maXRcIj5cbiAgICAgICA8bGk+PGEgaHJlZj0jPkhvbWU8L2E+PC9saT5cbiAgICAgICA8bGk+PGEgaHJlZj0jPkFib3V0PC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Qb3J0Zm9saW88L2E+PC9saT5cbiAgICAgICA8bGk+PGEgaHJlZj0jPkNvbnRhY3Q8L2E+PC9saT5cbiAgIDwvdWw+XG4gKlxuICogVGhhbmtzIHRvIEBwaW1wbCBmb3IgdGhpcyBpZGVhIVxuICovXG4ubmF2LS1maXQge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm5hdi0tZml0ID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cbiAgICAubmF2LS1maXQgPiBsaSA+IGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBNYWtlIGEgbGlzdCBvZiBrZXl3b3Jkcy4gRXh0ZW5kcyBgLm5hdmAsIGUuZy46XG4gKlxuICAgYDx1bCBjbGFzcz1cIm5hdiAgbmF2LS1rZXl3b3Jkcz5gXG4gKlxuICovXG4ubmF2LS1rZXl3b3JkcyA+IGxpOmFmdGVyIHtcbiAgY29udGVudDogXCJcXDAwMkNcIiBcIlxcMDBBMFwiOyB9XG5cbi5uYXYtLWtleXdvcmRzID4gbGk6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXG4gKiBTdHlsZSB0cnVtcHM7IGhlbHBlciBhbmQgYnJhbmQgY2xhc3Nlc1xuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJFdJRFRIU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU2l6ZXMgaW4gaHVtYW4gcmVhZGFibGUgZm9ybWF0LiBUaGVzZSBhcmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIG90aGVyXG4gKiBvYmplY3RzIGFuZCBhYnN0cmFjdGlvbnMgZm91bmQgaW4gaW51aXQuY3NzLCBtb3N0IGNvbW1vbmx5IHRoZSBncmlkIHN5c3RlbVxuICogYW5kIGZhdXggZmxleGJveC5cbiAqXG4gKiBXZSBoYXZlIGEgbWl4aW4gdG8gZ2VuZXJhdGUgb3VyIHdpZHRocyBhbmQgdGhlaXIgYnJlYWtwb2ludC1zcGVjaWZpY1xuICogdmFyaWF0aW9ucy5cbiAqL1xuLyoqXG4gICAgKiBXaG9sZVxuICAgICovXG4ub25lLXdob2xlIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLyoqXG4gICAgKiBIYWx2ZXNcbiAgICAqL1xuLm9uZS1oYWxmLCAudHdvLXF1YXJ0ZXJzLCAudGhyZWUtc2l4dGhzLCAuZm91ci1laWdodGhzLCAuZml2ZS10ZW50aHMsIC5zaXgtdHdlbGZ0aHMge1xuICB3aWR0aDogNTAlOyB9XG5cbi8qKlxuICAgICogVGhpcmRzXG4gICAgKi9cbi5vbmUtdGhpcmQsIC50d28tc2l4dGhzLCAuZm91ci10d2VsZnRocywgLm1hc29ucnkgLnNlcmVuZGlwaXR5X0VudHJ5X0RhdGUge1xuICB3aWR0aDogMzMuMzMzJTsgfVxuXG4udHdvLXRoaXJkcywgLmZvdXItc2l4dGhzLCAuZWlnaHQtdHdlbGZ0aHMge1xuICB3aWR0aDogNjYuNjY2JTsgfVxuXG4vKipcbiAgICAqIFF1YXJ0ZXJzXG4gICAgKi9cbi5vbmUtcXVhcnRlciwgLnR3by1laWdodGhzLCAudGhyZWUtdHdlbGZ0aHMsICNzZXJlbmRpcGl0eVJpZ2h0U2lkZUJhcixcbiNzZXJlbmRpcGl0eUxlZnRTaWRlQmFyLCAuc2xpZGVyX19jYXB0aW9uX19yaWdodCB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnRocmVlLXF1YXJ0ZXJzLCAuc2l4LWVpZ2h0aHMsIC5uaW5lLXR3ZWxmdGhzLCAjY29udGVudCB7XG4gIHdpZHRoOiA3NSU7IH1cblxuLyoqXG4gICAgKiBGaWZ0aHNcbiAgICAqL1xuLm9uZS1maWZ0aCwgLnR3by10ZW50aHMge1xuICB3aWR0aDogMjAlOyB9XG5cbi50d28tZmlmdGhzLCAuZm91ci10ZW50aHMge1xuICB3aWR0aDogNDAlOyB9XG5cbi50aHJlZS1maWZ0aHMsIC5zaXgtdGVudGhzIHtcbiAgd2lkdGg6IDYwJTsgfVxuXG4uZm91ci1maWZ0aHMsIC5laWdodC10ZW50aHMge1xuICB3aWR0aDogODAlOyB9XG5cbi8qKlxuICAgICogU2l4dGhzXG4gICAgKi9cbi5vbmUtc2l4dGgsIC50d28tdHdlbGZ0aHMge1xuICB3aWR0aDogMTYuNjY2JTsgfVxuXG4uZml2ZS1zaXh0aHMsIC50ZW4tdHdlbGZ0aHMge1xuICB3aWR0aDogODMuMzMzJTsgfVxuXG4vKipcbiAgICAqIEVpZ2h0aHNcbiAgICAqL1xuLm9uZS1laWdodGgge1xuICB3aWR0aDogMTIuNSU7IH1cblxuLnRocmVlLWVpZ2h0aHMge1xuICB3aWR0aDogMzcuNSU7IH1cblxuLmZpdmUtZWlnaHRocyB7XG4gIHdpZHRoOiA2Mi41JTsgfVxuXG4uc2V2ZW4tZWlnaHRocyB7XG4gIHdpZHRoOiA4Ny41JTsgfVxuXG4vKipcbiAgICAqIFRlbnRoc1xuICAgICovXG4ub25lLXRlbnRoIHtcbiAgd2lkdGg6IDEwJTsgfVxuXG4udGhyZWUtdGVudGhzIHtcbiAgd2lkdGg6IDMwJTsgfVxuXG4uc2V2ZW4tdGVudGhzIHtcbiAgd2lkdGg6IDcwJTsgfVxuXG4ubmluZS10ZW50aHMge1xuICB3aWR0aDogOTAlOyB9XG5cbi8qKlxuICAgICogVHdlbGZ0aHNcbiAgICAqL1xuLm9uZS10d2VsZnRoIHtcbiAgd2lkdGg6IDguMzMzJTsgfVxuXG4uZml2ZS10d2VsZnRocyB7XG4gIHdpZHRoOiA0MS42NjYlOyB9XG5cbi5zZXZlbi10d2VsZnRocyB7XG4gIHdpZHRoOiA1OC4zMzMlOyB9XG5cbi5lbGV2ZW4tdHdlbGZ0aHMge1xuICB3aWR0aDogOTEuNjY2JTsgfVxuXG4vKipcbiAqIElmIHlvdSBoYXZlIHNldCBgJHJlc3BvbnNpdmVgIHRvIOKAmHRydWXigJkgaW4gYF92YXJzLnNjc3NgIHRoZW4geW91IG5vdyBoYXZlXG4gKiBhY2Nlc3MgdG8gdGhlc2UgY2xhc3Nlcy4gWW91IGNhbiBkZWZpbmUgYXQgd2hpY2ggYnJlYWtwb2ludCB5b3XigJlkIGxpa2UgYW5cbiAqIGVsZW1lbnQgdG8gYmUgYSBjZXJ0YWluIHNpemUsIGUuZy46XG4gKlxuICogYDxkaXYgY2xhc3M9XCJnICBvbmUtcXVhcnRlciAgbGFwLW9uZS1oYWxmICBwYWxtLW9uZS13aG9sZVwiPiAuLi4gPC9kaXY+YFxuICpcbiAqIFRoaXMgd291bGQgY3JlYXRlIGEgYGRpdmAgdGhhdCwgYXQg4oCYZGVza3RvcOKAmSBzaXplcywgdGFrZXMgdXAgYSBxdWFydGVyIG9mIHRoZVxuICogaG9yaXpvbnRhbCBzcGFjZSwgYSBoYWxmIG9mIHRoYXQgc3BhY2UgYXQg4oCYdGFibGV04oCZIHNpemVzLCBhbmQgZ29lcyBmdWxsIHdpZHRoXG4gKiBhdCDigJhtb2JpbGXigJkgc2l6ZXMuXG4gKlxuICogRGVtbzoganNmaWRkbGUubmV0L2ludWl0Y3NzL1dTNEdlXG4gKlxuICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC8qKlxuICAgICogV2hvbGVcbiAgICAqL1xuICAucGFsbS1vbmUtd2hvbGUsIC5zbGlkZXJfX2NhcHRpb25fX3JpZ2h0IHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAvKipcbiAgICAqIEhhbHZlc1xuICAgICovXG4gIC5wYWxtLW9uZS1oYWxmLCAucGFsbS10d28tcXVhcnRlcnMsIC5wYWxtLXRocmVlLXNpeHRocywgLnBhbG0tZm91ci1laWdodGhzLCAucGFsbS1maXZlLXRlbnRocywgLnBhbG0tc2l4LXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC8qKlxuICAgICogVGhpcmRzXG4gICAgKi9cbiAgLnBhbG0tb25lLXRoaXJkLCAucGFsbS10d28tc2l4dGhzLCAucGFsbS1mb3VyLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogMzMuMzMzJTsgfVxuICAucGFsbS10d28tdGhpcmRzLCAucGFsbS1mb3VyLXNpeHRocywgLnBhbG0tZWlnaHQtdHdlbGZ0aHMge1xuICAgIHdpZHRoOiA2Ni42NjYlOyB9XG4gIC8qKlxuICAgICogUXVhcnRlcnNcbiAgICAqL1xuICAucGFsbS1vbmUtcXVhcnRlciwgLnBhbG0tdHdvLWVpZ2h0aHMsIC5wYWxtLXRocmVlLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5wYWxtLXRocmVlLXF1YXJ0ZXJzLCAucGFsbS1zaXgtZWlnaHRocywgLnBhbG0tbmluZS10d2VsZnRocyB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAvKipcbiAgICAqIEZpZnRoc1xuICAgICovXG4gIC5wYWxtLW9uZS1maWZ0aCwgLnBhbG0tdHdvLXRlbnRocyB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAucGFsbS10d28tZmlmdGhzLCAucGFsbS1mb3VyLXRlbnRocyB7XG4gICAgd2lkdGg6IDQwJTsgfVxuICAucGFsbS10aHJlZS1maWZ0aHMsIC5wYWxtLXNpeC10ZW50aHMge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLnBhbG0tZm91ci1maWZ0aHMsIC5wYWxtLWVpZ2h0LXRlbnRocyB7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAvKipcbiAgICAqIFNpeHRoc1xuICAgICovXG4gIC5wYWxtLW9uZS1zaXh0aCwgLnBhbG0tdHdvLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogMTYuNjY2JTsgfVxuICAucGFsbS1maXZlLXNpeHRocywgLnBhbG0tdGVuLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogODMuMzMzJTsgfVxuICAvKipcbiAgICAqIEVpZ2h0aHNcbiAgICAqL1xuICAucGFsbS1vbmUtZWlnaHRoIHtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgLnBhbG0tdGhyZWUtZWlnaHRocyB7XG4gICAgd2lkdGg6IDM3LjUlOyB9XG4gIC5wYWxtLWZpdmUtZWlnaHRocyB7XG4gICAgd2lkdGg6IDYyLjUlOyB9XG4gIC5wYWxtLXNldmVuLWVpZ2h0aHMge1xuICAgIHdpZHRoOiA4Ny41JTsgfVxuICAvKipcbiAgICAqIFRlbnRoc1xuICAgICovXG4gIC5wYWxtLW9uZS10ZW50aCB7XG4gICAgd2lkdGg6IDEwJTsgfVxuICAucGFsbS10aHJlZS10ZW50aHMge1xuICAgIHdpZHRoOiAzMCU7IH1cbiAgLnBhbG0tc2V2ZW4tdGVudGhzIHtcbiAgICB3aWR0aDogNzAlOyB9XG4gIC5wYWxtLW5pbmUtdGVudGhzIHtcbiAgICB3aWR0aDogOTAlOyB9XG4gIC8qKlxuICAgICogVHdlbGZ0aHNcbiAgICAqL1xuICAucGFsbS1vbmUtdHdlbGZ0aCB7XG4gICAgd2lkdGg6IDguMzMzJTsgfVxuICAucGFsbS1maXZlLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogNDEuNjY2JTsgfVxuICAucGFsbS1zZXZlbi10d2VsZnRocyB7XG4gICAgd2lkdGg6IDU4LjMzMyU7IH1cbiAgLnBhbG0tZWxldmVuLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogOTEuNjY2JTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAvKipcbiAgICAqIFdob2xlXG4gICAgKi9cbiAgLmxhcC1vbmUtd2hvbGUsIC5zbGlkZXJfX2NhcHRpb25fX3JpZ2h0IHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAvKipcbiAgICAqIEhhbHZlc1xuICAgICovXG4gIC5sYXAtb25lLWhhbGYsIC5sYXAtdHdvLXF1YXJ0ZXJzLCAubGFwLXRocmVlLXNpeHRocywgLmxhcC1mb3VyLWVpZ2h0aHMsIC5sYXAtZml2ZS10ZW50aHMsIC5sYXAtc2l4LXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC8qKlxuICAgICogVGhpcmRzXG4gICAgKi9cbiAgLmxhcC1vbmUtdGhpcmQsIC5sYXAtdHdvLXNpeHRocywgLmxhcC1mb3VyLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogMzMuMzMzJTsgfVxuICAubGFwLXR3by10aGlyZHMsIC5sYXAtZm91ci1zaXh0aHMsIC5sYXAtZWlnaHQtdHdlbGZ0aHMge1xuICAgIHdpZHRoOiA2Ni42NjYlOyB9XG4gIC8qKlxuICAgICogUXVhcnRlcnNcbiAgICAqL1xuICAubGFwLW9uZS1xdWFydGVyLCAubGFwLXR3by1laWdodGhzLCAubGFwLXRocmVlLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5sYXAtdGhyZWUtcXVhcnRlcnMsIC5sYXAtc2l4LWVpZ2h0aHMsIC5sYXAtbmluZS10d2VsZnRocyB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAvKipcbiAgICAqIEZpZnRoc1xuICAgICovXG4gIC5sYXAtb25lLWZpZnRoLCAubGFwLXR3by10ZW50aHMge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLmxhcC10d28tZmlmdGhzLCAubGFwLWZvdXItdGVudGhzIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC5sYXAtdGhyZWUtZmlmdGhzLCAubGFwLXNpeC10ZW50aHMge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLmxhcC1mb3VyLWZpZnRocywgLmxhcC1laWdodC10ZW50aHMge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLyoqXG4gICAgKiBTaXh0aHNcbiAgICAqL1xuICAubGFwLW9uZS1zaXh0aCwgLmxhcC10d28tdHdlbGZ0aHMge1xuICAgIHdpZHRoOiAxNi42NjYlOyB9XG4gIC5sYXAtZml2ZS1zaXh0aHMsIC5sYXAtdGVuLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogODMuMzMzJTsgfVxuICAvKipcbiAgICAqIEVpZ2h0aHNcbiAgICAqL1xuICAubGFwLW9uZS1laWdodGgge1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAubGFwLXRocmVlLWVpZ2h0aHMge1xuICAgIHdpZHRoOiAzNy41JTsgfVxuICAubGFwLWZpdmUtZWlnaHRocyB7XG4gICAgd2lkdGg6IDYyLjUlOyB9XG4gIC5sYXAtc2V2ZW4tZWlnaHRocyB7XG4gICAgd2lkdGg6IDg3LjUlOyB9XG4gIC8qKlxuICAgICogVGVudGhzXG4gICAgKi9cbiAgLmxhcC1vbmUtdGVudGgge1xuICAgIHdpZHRoOiAxMCU7IH1cbiAgLmxhcC10aHJlZS10ZW50aHMge1xuICAgIHdpZHRoOiAzMCU7IH1cbiAgLmxhcC1zZXZlbi10ZW50aHMge1xuICAgIHdpZHRoOiA3MCU7IH1cbiAgLmxhcC1uaW5lLXRlbnRocyB7XG4gICAgd2lkdGg6IDkwJTsgfVxuICAvKipcbiAgICAqIFR3ZWxmdGhzXG4gICAgKi9cbiAgLmxhcC1vbmUtdHdlbGZ0aCB7XG4gICAgd2lkdGg6IDguMzMzJTsgfVxuICAubGFwLWZpdmUtdHdlbGZ0aHMge1xuICAgIHdpZHRoOiA0MS42NjYlOyB9XG4gIC5sYXAtc2V2ZW4tdHdlbGZ0aHMge1xuICAgIHdpZHRoOiA1OC4zMzMlOyB9XG4gIC5sYXAtZWxldmVuLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogOTEuNjY2JTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgLyoqXG4gICAgKiBXaG9sZVxuICAgICovXG4gIC5sYXAtYW5kLXVwLW9uZS13aG9sZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLyoqXG4gICAgKiBIYWx2ZXNcbiAgICAqL1xuICAubGFwLWFuZC11cC1vbmUtaGFsZiwgLmxhcC1hbmQtdXAtdHdvLXF1YXJ0ZXJzLCAubGFwLWFuZC11cC10aHJlZS1zaXh0aHMsIC5sYXAtYW5kLXVwLWZvdXItZWlnaHRocywgLmxhcC1hbmQtdXAtZml2ZS10ZW50aHMsIC5sYXAtYW5kLXVwLXNpeC10d2VsZnRocyB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAvKipcbiAgICAqIFRoaXJkc1xuICAgICovXG4gIC5sYXAtYW5kLXVwLW9uZS10aGlyZCwgLmxhcC1hbmQtdXAtdHdvLXNpeHRocywgLmxhcC1hbmQtdXAtZm91ci10d2VsZnRocyB7XG4gICAgd2lkdGg6IDMzLjMzMyU7IH1cbiAgLmxhcC1hbmQtdXAtdHdvLXRoaXJkcywgLmxhcC1hbmQtdXAtZm91ci1zaXh0aHMsIC5sYXAtYW5kLXVwLWVpZ2h0LXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogNjYuNjY2JTsgfVxuICAvKipcbiAgICAqIFF1YXJ0ZXJzXG4gICAgKi9cbiAgLmxhcC1hbmQtdXAtb25lLXF1YXJ0ZXIsIC5sYXAtYW5kLXVwLXR3by1laWdodGhzLCAubGFwLWFuZC11cC10aHJlZS10d2VsZnRocyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFwLWFuZC11cC10aHJlZS1xdWFydGVycywgLmxhcC1hbmQtdXAtc2l4LWVpZ2h0aHMsIC5sYXAtYW5kLXVwLW5pbmUtdHdlbGZ0aHMge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLyoqXG4gICAgKiBGaWZ0aHNcbiAgICAqL1xuICAubGFwLWFuZC11cC1vbmUtZmlmdGgsIC5sYXAtYW5kLXVwLXR3by10ZW50aHMge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLmxhcC1hbmQtdXAtdHdvLWZpZnRocywgLmxhcC1hbmQtdXAtZm91ci10ZW50aHMge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLmxhcC1hbmQtdXAtdGhyZWUtZmlmdGhzLCAubGFwLWFuZC11cC1zaXgtdGVudGhzIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC5sYXAtYW5kLXVwLWZvdXItZmlmdGhzLCAubGFwLWFuZC11cC1laWdodC10ZW50aHMge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLyoqXG4gICAgKiBTaXh0aHNcbiAgICAqL1xuICAubGFwLWFuZC11cC1vbmUtc2l4dGgsIC5sYXAtYW5kLXVwLXR3by10d2VsZnRocyB7XG4gICAgd2lkdGg6IDE2LjY2NiU7IH1cbiAgLmxhcC1hbmQtdXAtZml2ZS1zaXh0aHMsIC5sYXAtYW5kLXVwLXRlbi10d2VsZnRocyB7XG4gICAgd2lkdGg6IDgzLjMzMyU7IH1cbiAgLyoqXG4gICAgKiBFaWdodGhzXG4gICAgKi9cbiAgLmxhcC1hbmQtdXAtb25lLWVpZ2h0aCB7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gIC5sYXAtYW5kLXVwLXRocmVlLWVpZ2h0aHMge1xuICAgIHdpZHRoOiAzNy41JTsgfVxuICAubGFwLWFuZC11cC1maXZlLWVpZ2h0aHMge1xuICAgIHdpZHRoOiA2Mi41JTsgfVxuICAubGFwLWFuZC11cC1zZXZlbi1laWdodGhzIHtcbiAgICB3aWR0aDogODcuNSU7IH1cbiAgLyoqXG4gICAgKiBUZW50aHNcbiAgICAqL1xuICAubGFwLWFuZC11cC1vbmUtdGVudGgge1xuICAgIHdpZHRoOiAxMCU7IH1cbiAgLmxhcC1hbmQtdXAtdGhyZWUtdGVudGhzIHtcbiAgICB3aWR0aDogMzAlOyB9XG4gIC5sYXAtYW5kLXVwLXNldmVuLXRlbnRocyB7XG4gICAgd2lkdGg6IDcwJTsgfVxuICAubGFwLWFuZC11cC1uaW5lLXRlbnRocyB7XG4gICAgd2lkdGg6IDkwJTsgfVxuICAvKipcbiAgICAqIFR3ZWxmdGhzXG4gICAgKi9cbiAgLmxhcC1hbmQtdXAtb25lLXR3ZWxmdGgge1xuICAgIHdpZHRoOiA4LjMzMyU7IH1cbiAgLmxhcC1hbmQtdXAtZml2ZS10d2VsZnRocyB7XG4gICAgd2lkdGg6IDQxLjY2NiU7IH1cbiAgLmxhcC1hbmQtdXAtc2V2ZW4tdHdlbGZ0aHMge1xuICAgIHdpZHRoOiA1OC4zMzMlOyB9XG4gIC5sYXAtYW5kLXVwLWVsZXZlbi10d2VsZnRocyB7XG4gICAgd2lkdGg6IDkxLjY2NiU7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC8qKlxuICAgICogV2hvbGVcbiAgICAqL1xuICAucG9ydGFibGUtb25lLXdob2xlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAvKipcbiAgICAqIEhhbHZlc1xuICAgICovXG4gIC5wb3J0YWJsZS1vbmUtaGFsZiwgLnBvcnRhYmxlLXR3by1xdWFydGVycywgLnBvcnRhYmxlLXRocmVlLXNpeHRocywgLnBvcnRhYmxlLWZvdXItZWlnaHRocywgLnBvcnRhYmxlLWZpdmUtdGVudGhzLCAucG9ydGFibGUtc2l4LXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC8qKlxuICAgICogVGhpcmRzXG4gICAgKi9cbiAgLnBvcnRhYmxlLW9uZS10aGlyZCwgLnBvcnRhYmxlLXR3by1zaXh0aHMsIC5wb3J0YWJsZS1mb3VyLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogMzMuMzMzJTsgfVxuICAucG9ydGFibGUtdHdvLXRoaXJkcywgLnBvcnRhYmxlLWZvdXItc2l4dGhzLCAucG9ydGFibGUtZWlnaHQtdHdlbGZ0aHMge1xuICAgIHdpZHRoOiA2Ni42NjYlOyB9XG4gIC8qKlxuICAgICogUXVhcnRlcnNcbiAgICAqL1xuICAucG9ydGFibGUtb25lLXF1YXJ0ZXIsIC5wb3J0YWJsZS10d28tZWlnaHRocywgLnBvcnRhYmxlLXRocmVlLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5wb3J0YWJsZS10aHJlZS1xdWFydGVycywgLnBvcnRhYmxlLXNpeC1laWdodGhzLCAucG9ydGFibGUtbmluZS10d2VsZnRocyB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAvKipcbiAgICAqIEZpZnRoc1xuICAgICovXG4gIC5wb3J0YWJsZS1vbmUtZmlmdGgsIC5wb3J0YWJsZS10d28tdGVudGhzIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5wb3J0YWJsZS10d28tZmlmdGhzLCAucG9ydGFibGUtZm91ci10ZW50aHMge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLnBvcnRhYmxlLXRocmVlLWZpZnRocywgLnBvcnRhYmxlLXNpeC10ZW50aHMge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLnBvcnRhYmxlLWZvdXItZmlmdGhzLCAucG9ydGFibGUtZWlnaHQtdGVudGhzIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC8qKlxuICAgICogU2l4dGhzXG4gICAgKi9cbiAgLnBvcnRhYmxlLW9uZS1zaXh0aCwgLnBvcnRhYmxlLXR3by10d2VsZnRocyB7XG4gICAgd2lkdGg6IDE2LjY2NiU7IH1cbiAgLnBvcnRhYmxlLWZpdmUtc2l4dGhzLCAucG9ydGFibGUtdGVuLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogODMuMzMzJTsgfVxuICAvKipcbiAgICAqIEVpZ2h0aHNcbiAgICAqL1xuICAucG9ydGFibGUtb25lLWVpZ2h0aCB7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gIC5wb3J0YWJsZS10aHJlZS1laWdodGhzIHtcbiAgICB3aWR0aDogMzcuNSU7IH1cbiAgLnBvcnRhYmxlLWZpdmUtZWlnaHRocyB7XG4gICAgd2lkdGg6IDYyLjUlOyB9XG4gIC5wb3J0YWJsZS1zZXZlbi1laWdodGhzIHtcbiAgICB3aWR0aDogODcuNSU7IH1cbiAgLyoqXG4gICAgKiBUZW50aHNcbiAgICAqL1xuICAucG9ydGFibGUtb25lLXRlbnRoIHtcbiAgICB3aWR0aDogMTAlOyB9XG4gIC5wb3J0YWJsZS10aHJlZS10ZW50aHMge1xuICAgIHdpZHRoOiAzMCU7IH1cbiAgLnBvcnRhYmxlLXNldmVuLXRlbnRocyB7XG4gICAgd2lkdGg6IDcwJTsgfVxuICAucG9ydGFibGUtbmluZS10ZW50aHMge1xuICAgIHdpZHRoOiA5MCU7IH1cbiAgLyoqXG4gICAgKiBUd2VsZnRoc1xuICAgICovXG4gIC5wb3J0YWJsZS1vbmUtdHdlbGZ0aCB7XG4gICAgd2lkdGg6IDguMzMzJTsgfVxuICAucG9ydGFibGUtZml2ZS10d2VsZnRocyB7XG4gICAgd2lkdGg6IDQxLjY2NiU7IH1cbiAgLnBvcnRhYmxlLXNldmVuLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogNTguMzMzJTsgfVxuICAucG9ydGFibGUtZWxldmVuLXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogOTEuNjY2JTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLyoqXG4gICAgKiBXaG9sZVxuICAgICovXG4gIC5kZXNrLW9uZS13aG9sZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLyoqXG4gICAgKiBIYWx2ZXNcbiAgICAqL1xuICAuZGVzay1vbmUtaGFsZiwgLmRlc2stdHdvLXF1YXJ0ZXJzLCAuZGVzay10aHJlZS1zaXh0aHMsIC5kZXNrLWZvdXItZWlnaHRocywgLmRlc2stZml2ZS10ZW50aHMsIC5kZXNrLXNpeC10d2VsZnRocyB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAvKipcbiAgICAqIFRoaXJkc1xuICAgICovXG4gIC5kZXNrLW9uZS10aGlyZCwgLmRlc2stdHdvLXNpeHRocywgLmRlc2stZm91ci10d2VsZnRocyB7XG4gICAgd2lkdGg6IDMzLjMzMyU7IH1cbiAgLmRlc2stdHdvLXRoaXJkcywgLmRlc2stZm91ci1zaXh0aHMsIC5kZXNrLWVpZ2h0LXR3ZWxmdGhzIHtcbiAgICB3aWR0aDogNjYuNjY2JTsgfVxuICAvKipcbiAgICAqIFF1YXJ0ZXJzXG4gICAgKi9cbiAgLmRlc2stb25lLXF1YXJ0ZXIsIC5kZXNrLXR3by1laWdodGhzLCAuZGVzay10aHJlZS10d2VsZnRocyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuZGVzay10aHJlZS1xdWFydGVycywgLmRlc2stc2l4LWVpZ2h0aHMsIC5kZXNrLW5pbmUtdHdlbGZ0aHMge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLyoqXG4gICAgKiBGaWZ0aHNcbiAgICAqL1xuICAuZGVzay1vbmUtZmlmdGgsIC5kZXNrLXR3by10ZW50aHMge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLmRlc2stdHdvLWZpZnRocywgLmRlc2stZm91ci10ZW50aHMge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLmRlc2stdGhyZWUtZmlmdGhzLCAuZGVzay1zaXgtdGVudGhzIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC5kZXNrLWZvdXItZmlmdGhzLCAuZGVzay1laWdodC10ZW50aHMge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLyoqXG4gICAgKiBTaXh0aHNcbiAgICAqL1xuICAuZGVzay1vbmUtc2l4dGgsIC5kZXNrLXR3by10d2VsZnRocyB7XG4gICAgd2lkdGg6IDE2LjY2NiU7IH1cbiAgLmRlc2stZml2ZS1zaXh0aHMsIC5kZXNrLXRlbi10d2VsZnRocyB7XG4gICAgd2lkdGg6IDgzLjMzMyU7IH1cbiAgLyoqXG4gICAgKiBFaWdodGhzXG4gICAgKi9cbiAgLmRlc2stb25lLWVpZ2h0aCB7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gIC5kZXNrLXRocmVlLWVpZ2h0aHMge1xuICAgIHdpZHRoOiAzNy41JTsgfVxuICAuZGVzay1maXZlLWVpZ2h0aHMge1xuICAgIHdpZHRoOiA2Mi41JTsgfVxuICAuZGVzay1zZXZlbi1laWdodGhzIHtcbiAgICB3aWR0aDogODcuNSU7IH1cbiAgLyoqXG4gICAgKiBUZW50aHNcbiAgICAqL1xuICAuZGVzay1vbmUtdGVudGgge1xuICAgIHdpZHRoOiAxMCU7IH1cbiAgLmRlc2stdGhyZWUtdGVudGhzIHtcbiAgICB3aWR0aDogMzAlOyB9XG4gIC5kZXNrLXNldmVuLXRlbnRocyB7XG4gICAgd2lkdGg6IDcwJTsgfVxuICAuZGVzay1uaW5lLXRlbnRocyB7XG4gICAgd2lkdGg6IDkwJTsgfVxuICAvKipcbiAgICAqIFR3ZWxmdGhzXG4gICAgKi9cbiAgLmRlc2stb25lLXR3ZWxmdGgge1xuICAgIHdpZHRoOiA4LjMzMyU7IH1cbiAgLmRlc2stZml2ZS10d2VsZnRocyB7XG4gICAgd2lkdGg6IDQxLjY2NiU7IH1cbiAgLmRlc2stc2V2ZW4tdHdlbGZ0aHMge1xuICAgIHdpZHRoOiA1OC4zMzMlOyB9XG4gIC5kZXNrLWVsZXZlbi10d2VsZnRocyB7XG4gICAgd2lkdGg6IDkxLjY2NiU7IH0gfVxuXG4vKipcbiAqIElmIHlvdSBoYXZlIHNldCB0aGUgYWRkaXRpb25hbCBgJHJlc3BvbnNpdmUtZXh0cmFgIHZhcmlhYmxlIHRvIOKAmHRydWXigJkgaW5cbiAqIGBfdmFycy5zY3NzYCB0aGVuIHlvdSBub3cgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyBjbGFzcyBhdmFpbGFibGUgdG9cbiAqIGFjY29tb2RhdGUgbXVjaCBsYXJnZXIgc2NyZWVuIHJlc29sdXRpb25zLlxuICovXG4vKiBlbmRpZiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRQVVNIXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBQdXNoIGNsYXNzZXMsIHRvIG1vdmUgZ3JpZCBpdGVtcyBvdmVyIHRvIHRoZSByaWdodCBieSBjZXJ0YWluIGFtb3VudHMuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkUFVMTFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogUHVsbCBjbGFzc2VzLCB0byBtb3ZlIGdyaWQgaXRlbXMgb3ZlciB0byB0aGUgcmlnaHQgYnkgY2VydGFpbiBhbW91bnRzLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJEJSQU5EXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBgLmJyYW5kYCBpcyBhIHF1aWNrIGFuZCBzaW1wbGUgd2F5IHRvIGFwcGx5IHlvdXIgYnJhbmQgZmFjZSBhbmQvb3IgY29sb3IgdG9cbiAqIGFueSBlbGVtZW50IHVzaW5nIGEgaGFuZHkgaGVscGVyIGNsYXNzLlxuICovXG4uYnJhbmQge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmIWltcG9ydGFudDtcbiAgY29sb3I6ICM0YThlYzIhaW1wb3J0YW50OyB9XG5cbi5icmFuZC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZiFpbXBvcnRhbnQ7IH1cblxuLmJyYW5kLWNvbG9yLFxuLmJyYW5kLWNvbG91ciB7XG4gIGNvbG9yOiAjNGE4ZWMyIWltcG9ydGFudDsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJEhFTFBFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogQSBzZXJpZXMgb2YgaGVscGVyIGNsYXNzZXMgdG8gdXNlIGFyYml0cmFyaWx5LiBPbmx5IHVzZSBhIGhlbHBlciBjbGFzcyBpZiBhblxuICogZWxlbWVudC9jb21wb25lbnQgZG9lc27igJl0IGFscmVhZHkgaGF2ZSBhIGNsYXNzIHRvIHdoaWNoIHlvdSBjb3VsZCBhcHBseSB0aGlzXG4gKiBzdHlsaW5nLCBlLmcuIGlmIHlvdSBuZWVkIHRvIGZsb2F0IGAubWFpbi1uYXZgIGxlZnQgdGhlbiBhZGQgYGZsb2F0OmxlZnQ7YCB0b1xuICogdGhhdCBydWxlc2V0IGFzIG9wcG9zZWQgdG8gYWRkaW5nIHRoZSBgLmZsb2F0LS1sZWZ0YCBjbGFzcyB0byB0aGUgbWFya3VwLlxuICpcbiAqIEEgbG90IG9mIHRoZXNlIGNsYXNzZXMgY2FycnkgYCFpbXBvcnRhbnRgIGFzIHlvdSB3aWxsIGFsd2F5cyB3YW50IHRoZW0gdG8gd2luXG4gKiBvdXQgb3ZlciBvdGhlciBzZWxlY3RvcnMuXG4gKi9cbi8qKlxuICogQWRkL3JlbW92ZSBmbG9hdHNcbiAqL1xuLmZsb2F0LS1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC0tbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LS1ub25lIHtcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIFRleHQgYWxpZ25tZW50XG4gKi9cbi50ZXh0LS1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAgIWltcG9ydGFudDsgfVxuXG4udGV4dC0tY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cblxuLnRleHQtLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIEZvbnQgd2VpZ2h0c1xuICovXG4ud2VpZ2h0LS1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDsgfVxuXG4ud2VpZ2h0LS1ub3JtYWwge1xuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7IH1cblxuLndlaWdodC0tc2VtaWJvbGQge1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gKiBBZGQvcmVtb3ZlIG1hcmdpbnNcbiAqL1xuLnB1c2gge1xuICBtYXJnaW46IDIwcHggIWltcG9ydGFudDsgfVxuXG4ucHVzaC0tdG9wIHtcbiAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5wdXNoLS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5wdXNoLS1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnB1c2gtLWxlZnQge1xuICBtYXJnaW4tbGVmdDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5wdXNoLS1lbmRzIHtcbiAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnB1c2gtLXNpZGVzIHtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnB1c2gtaGFsZiB7XG4gIG1hcmdpbjogMTBweCAhaW1wb3J0YW50OyB9XG5cbi5wdXNoLWhhbGYtLXRvcCB7XG4gIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDsgfVxuXG4ucHVzaC1oYWxmLS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMTBweCAhaW1wb3J0YW50OyB9XG5cbi5wdXNoLWhhbGYtLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDsgfVxuXG4ucHVzaC1oYWxmLS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHggIWltcG9ydGFudDsgfVxuXG4ucHVzaC1oYWxmLS1lbmRzIHtcbiAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnB1c2gtaGFsZi0tc2lkZXMge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHggIWltcG9ydGFudDsgfVxuXG4uZmx1c2gge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuXG4uZmx1c2gtLXRvcCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuXG4uZmx1c2gtLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLmZsdXNoLS1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLmZsdXNoLS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuXG4uZmx1c2gtLWVuZHMge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4uZmx1c2gtLXNpZGVzIHtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gKiBBZGQvcmVtb3ZlIHBhZGRpbmdzXG4gKi9cbi5zb2Z0IHtcbiAgcGFkZGluZzogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5zb2Z0LS10b3Age1xuICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5zb2Z0LS1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDsgfVxuXG4uc29mdC0tYm90dG9tIHtcbiAgcGFkZGluZy1ib3R0b206IDIwcHggIWltcG9ydGFudDsgfVxuXG4uc29mdC0tbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5zb2Z0LS1lbmRzIHtcbiAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHggIWltcG9ydGFudDsgfVxuXG4uc29mdC0tc2lkZXMge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5zb2Z0LWhhbGYge1xuICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnNvZnQtaGFsZi0tdG9wIHtcbiAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDsgfVxuXG4uc29mdC1oYWxmLS1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHggIWltcG9ydGFudDsgfVxuXG4uc29mdC1oYWxmLS1ib3R0b20ge1xuICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50OyB9XG5cbi5zb2Z0LWhhbGYtLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHggIWltcG9ydGFudDsgfVxuXG4uc29mdC1oYWxmLS1lbmRzIHtcbiAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDsgfVxuXG4uc29mdC1oYWxmLS1zaWRlcyB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmhhcmQge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cblxuLmhhcmQtLXRvcCB7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IH1cblxuLmhhcmQtLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbi5oYXJkLS1ib3R0b20ge1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi5oYXJkLS1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblxuLmhhcmQtLWVuZHMge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi5oYXJkLS1zaWRlcyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gKiBQdWxsIGl0ZW1zIGZ1bGwgd2lkdGggb2YgYC5pc2xhbmRgIHBhcmVudHMuXG4gKi9cbi5mdWxsLWJsZWVkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMjBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogLTIwcHggIWltcG9ydGFudDsgfVxuICAuaXNsZXQgLmZ1bGwtYmxlZWQge1xuICAgIG1hcmdpbi1yaWdodDogLTEwcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHggIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIEFkZCBhIGhlbHAgY3Vyc29yIHRvIGFueSBlbGVtZW50IHRoYXQgZ2l2ZXMgdGhlIHVzZXIgZXh0cmEgaW5mb3JtYXRpb24gb25cbiAqIGA6aG92ZXJgLlxuICovXG4uaW5mb3JtYXRpdmUge1xuICBjdXJzb3I6IGhlbHAgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIE11dGUgYW4gb2JqZWN0IGJ5IHJlZHVjaW5nIGl0cyBvcGFjaXR5LlxuICovXG4ubXV0ZWQge1xuICBvcGFjaXR5OiAwLjUgIWltcG9ydGFudDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICogQWxpZ24gaXRlbXMgdG8gdGhlIHJpZ2h0IHdoZXJlIHRoZXkgaW1wbHkgcHJvZ3Jlc3Npb24vbW92ZW1lbnQgZm9yd2FyZCwgZS5nLjpcbiAqXG4gICA8cCBjbGFzcz1wcm9jZWVkPjxhIGhyZWY9Iz5SZWFkIG1vcmUuLi48L2E+PC9wPlxuICpcbiAqL1xuLnByb2NlZWQge1xuICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICogQWRkIGEgcmlnaHQtYW5nbGVkIHF1b3RlIHRvIGxpbmtzIHRoYXQgaW1wbHkgbW92ZW1lbnQsIGUuZy46XG4gKlxuICAgPGEgaHJlZj0jIGNsYXNzPWdvPlJlYWQgbW9yZTwvYT5cbiAqXG4gKi9cbi5nbzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiwqBcIiBcIsK7XCIgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIEFwcGx5IGNhcGl0YWwgY2FzZSB0byBhbiBlbGVtZW50ICh1c3VhbGx5IGEgYHN0cm9uZ2ApLlxuICovXG4uY2FwcyB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIEhpZGUgY29udGVudCBvZmYtc2NyZWVuIHdpdGhvdXQgcmVzb3J0aW5nIHRvIGBkaXNwbGF5Om5vbmU7YCwgYWxzbyBwcm92aWRlXG4gKiBicmVha3BvaW50IHNwZWNpZmljIGhpZGRlbiBlbGVtZW50cy5cbiAqL1xuLmFjY2Vzc2liaWxpdHksXG4udmlzdWFsbHloaWRkZW4ge1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuYWNjZXNzaWJpbGl0eS0tcGFsbSxcbiAgLnZpc3VhbGx5aGlkZGVuLS1wYWxtIHtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYWNjZXNzaWJpbGl0eS0tbGFwLFxuICAudmlzdWFsbHloaWRkZW4tLWxhcCB7XG4gICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIC5hY2Nlc3NpYmlsaXR5LS1sYXAtYW5kLXVwLFxuICAudmlzdWFsbHloaWRkZW4tLWxhcC1hbmQtdXAge1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDFweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYWNjZXNzaWJpbGl0eS0tcG9ydGFibGUsXG4gIC52aXN1YWxseWhpZGRlbi0tcG9ydGFibGUge1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDFweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYWNjZXNzaWJpbGl0eS0tZGVzayxcbiAgLnZpc3VhbGx5aGlkZGVuLS1kZXNrIHtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5hY2Nlc3NpYmlsaXR5LS1kZXNrLXdpZGUsXG4gIC52aXN1YWxseWhpZGRlbi0tZGVzay13aWRlIHtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDsgfSB9XG5cbi8qIGVuZGlmICovXG4vKiBTbGlkZXIgKi9cbi5zbGljay1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICAuc2xpY2stbGlzdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAuc2xpY2stbGlzdC5kcmFnZ2luZyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGN1cnNvcjogaGFuZDsgfVxuXG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuLnNsaWNrLXRyYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay10cmFjazpiZWZvcmUsIC5zbGljay10cmFjazphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuc2xpY2stdHJhY2s6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay10cmFjayB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGljay1zbGlkZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBbZGlyPVwicnRsXCJdIC5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5zbGljay1zbGlkZSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay1zbGlkZS5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAuc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cblxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogU2xpZGVyICovXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdCB7XG4gIGJhY2tncm91bmQ6ICNmZmYgdXJsKFwiLi9hamF4LWxvYWRlci5naWZcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7IH1cblxuLyogSWNvbnMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuICBzcmM6IHVybChcIi4vZm9udHMvc2xpY2suZW90XCIpO1xuICBzcmM6IHVybChcIi4vZm9udHMvc2xpY2suZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi9mb250cy9zbGljay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4vZm9udHMvc2xpY2sudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuL2ZvbnRzL3NsaWNrLnN2ZyNzbGlja1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4vKiBBcnJvd3MgKi9cbi5zbGljay1wcmV2LFxuLnNsaWNrLW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMHB4O1xuICBmb250LXNpemU6IDBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTEwcHhcXDk7XG4gIC8qbHRlIElFIDgqL1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNsaWNrLXByZXY6aG92ZXIsIC5zbGljay1wcmV2OmZvY3VzLFxuICAuc2xpY2stbmV4dDpob3ZlcixcbiAgLnNsaWNrLW5leHQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLCAuc2xpY2stcHJldjpmb2N1czpiZWZvcmUsXG4gICAgLnNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlLFxuICAgIC5zbGljay1uZXh0OmZvY3VzOmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSxcbiAgLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjI1OyB9XG5cbi5zbGljay1wcmV2OmJlZm9yZSwgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjc1O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4uc2xpY2stcHJldiB7XG4gIGxlZnQ6IC0yNXB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IC0yNXB4OyB9XG4gIC5zbGljay1wcmV2OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLihpBcIjsgfVxuICAgIFtkaXI9XCJydGxcIl0gLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwi4oaSXCI7IH1cblxuLnNsaWNrLW5leHQge1xuICByaWdodDogLTI1cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stbmV4dCB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgcmlnaHQ6IGF1dG87IH1cbiAgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKGklwiOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stbmV4dDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLihpBcIjsgfVxuXG4vKiBEb3RzICovXG4uc2xpY2stc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4uc2xpY2stZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtNDVweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNsaWNrLWRvdHMgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuc2xpY2stZG90cyBsaSBidXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgICBmb250LXNpemU6IDBweDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLCAuc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlcjpiZWZvcmUsIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogXCLigKJcIjtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICAgICAgZm9udC1zaXplOiA2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cbiAgICAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBvcGFjaXR5OiAwLjc1OyB9XG5cbi8qISBmYW5jeUJveCB2Mi4xLjUgZmFuY3lhcHBzLmNvbSB8IGZhbmN5YXBwcy5jb20vZmFuY3lib3gvI2xpY2Vuc2UgKi9cbi5mYW5jeWJveC13cmFwLFxuLmZhbmN5Ym94LXNraW4sXG4uZmFuY3lib3gtb3V0ZXIsXG4uZmFuY3lib3gtaW5uZXIsXG4uZmFuY3lib3gtaW1hZ2UsXG4uZmFuY3lib3gtd3JhcCBpZnJhbWUsXG4uZmFuY3lib3gtd3JhcCBvYmplY3QsXG4uZmFuY3lib3gtbmF2LFxuLmZhbmN5Ym94LW5hdiBzcGFuLFxuLmZhbmN5Ym94LXRtcCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5mYW5jeWJveC13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDgwMjA7IH1cblxuLmZhbmN5Ym94LXNraW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjNDQ0O1xuICB0ZXh0LXNoYWRvdzogbm9uZTsgfVxuXG4uZmFuY3lib3gtb3BlbmVkIHtcbiAgei1pbmRleDogODAzMDsgfVxuXG4uZmFuY3lib3gtb3BlbmVkIC5mYW5jeWJveC1za2luIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIC1tb3otYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cblxuLmZhbmN5Ym94LW91dGVyLCAuZmFuY3lib3gtaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmZhbmN5Ym94LWlubmVyIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4uZmFuY3lib3gtdHlwZS1pZnJhbWUgLmZhbmN5Ym94LWlubmVyIHtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5mYW5jeWJveC1lcnJvciB7XG4gIGNvbG9yOiAjNDQ0O1xuICBmb250OiAxNHB4LzIwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLmZhbmN5Ym94LWltYWdlLCAuZmFuY3lib3gtaWZyYW1lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLmZhbmN5Ym94LWltYWdlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG5cbiNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJodHRwOi8vYmxvZy5nb2V0aGUuZGUvcmVzcG9uc2l2ZS91cGxvYWRzL2ljb25zL2ZhbmN5Ym94X3Nwcml0ZS5wbmdcIik7IH1cblxuI2ZhbmN5Ym94LWxvYWRpbmcge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6IC0yMnB4O1xuICBtYXJnaW4tbGVmdDogLTIycHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEwOHB4O1xuICBvcGFjaXR5OiAwLjg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogODA2MDsgfVxuXG4jZmFuY3lib3gtbG9hZGluZyBkaXYge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJodHRwOi8vYmxvZy5nb2V0aGUuZGUvcmVzcG9uc2l2ZS91cGxvYWRzL2ljb25zL2ZhbmN5Ym94X2xvYWRpbmcuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0OyB9XG5cbi5mYW5jeWJveC1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzcHg7XG4gIHJpZ2h0OiAzcHg7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogODA0MDsgfVxuXG4uZmFuY3lib3gtbmF2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiA0MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHotaW5kZXg6IDgwNDA7IH1cblxuLmZhbmN5Ym94LXByZXYge1xuICBsZWZ0OiAtNDVweDsgfVxuXG4uZmFuY3lib3gtbmV4dCB7XG4gIHJpZ2h0OiAtNDVweDsgfVxuXG4uZmFuY3lib3gtbmF2IHNwYW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBtYXJnaW4tdG9wOiAtMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiA4MDQwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLmZhbmN5Ym94LXByZXYgc3BhbiB7XG4gIGxlZnQ6IDEwcHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTM2cHg7IH1cblxuLmZhbmN5Ym94LW5leHQgc3BhbiB7XG4gIHJpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC03MnB4OyB9XG5cbi5mYW5jeWJveC1uYXY6aG92ZXIgc3BhbiB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLmZhbmN5Ym94LXRtcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OTlweDtcbiAgbGVmdDogLTk5OTk5cHg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgbWF4LXdpZHRoOiA5OTk5OXB4O1xuICBtYXgtaGVpZ2h0OiA5OTk5OXB4O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyB9XG5cbi8qIE92ZXJsYXkgaGVscGVyICovXG4uZmFuY3lib3gtbG9jayB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87IH1cblxuLmZhbmN5Ym94LWxvY2sgYm9keSB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG4uZmFuY3lib3gtbG9jay10ZXN0IHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cblxuLmZhbmN5Ym94LW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogODAxMDtcbiAgYmFja2dyb3VuZDogdXJsKFwiaHR0cDovL2Jsb2cuZ29ldGhlLmRlL3Jlc3BvbnNpdmUvdXBsb2Fkcy9pY29ucy9mYW5jeWJveF9vdmVybGF5LnBuZ1wiKTsgfVxuXG4uZmFuY3lib3gtb3ZlcmxheS1maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDsgfVxuXG4uZmFuY3lib3gtbG9jayAuZmFuY3lib3gtb3ZlcmxheSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cblxuLyogVGl0bGUgaGVscGVyICovXG4uZmFuY3lib3gtdGl0bGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGZvbnQ6IG5vcm1hbCAxM3B4LzIwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB6LWluZGV4OiA4MDUwOyB9XG5cbi5mYW5jeWJveC1vcGVuZWQgLmZhbmN5Ym94LXRpdGxlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4uZmFuY3lib3gtdGl0bGUtZmxvYXQtd3JhcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICByaWdodDogNTAlO1xuICBtYXJnaW4tYm90dG9tOiAtMzVweDtcbiAgei1pbmRleDogODA1MDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mYW5jeWJveC10aXRsZS1mbG9hdC13cmFwIC5jaGlsZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgcGFkZGluZzogMnB4IDIwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAvKiBGYWxsYmFjayBmb3Igd2ViIGJyb3dzZXJzIHRoYXQgZG9lc24ndCBzdXBwb3J0IFJHQmEgKi9cbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4ICMyMjI7XG4gIGNvbG9yOiAjRkZGO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uZmFuY3lib3gtdGl0bGUtb3V0c2lkZS13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uZmFuY3lib3gtdGl0bGUtaW5zaWRlLXdyYXAge1xuICBwYWRkaW5nLXRvcDogMTBweDsgfVxuXG4uZmFuY3lib3gtdGl0bGUtb3Zlci13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7IH1cblxuLypSZXRpbmEgZ3JhcGhpY3MhKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSB7XG4gICNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImh0dHA6Ly9ibG9nLmdvZXRoZS5kZS9yZXNwb25zaXZlL3VwbG9hZHMvaWNvbnMvZmFuY3lib3hfc3ByaXRlMngyLnBuZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQ0cHggMTUycHg7XG4gICAgLypUaGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGltYWdlLCBoYWxmIHRoZSBzaXplIG9mIHRoZSBoaS1yZXMgaW1hZ2UqLyB9IH1cblxuLmZvbnQtLWJhc2Uge1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4OyB9XG5cbi5mb250LS1iYXNlLS1pbXBvcnRhbnQge1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiAhaW1wb3J0YW50OyB9XG5cbi5mb250LS1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmZvbnQtLW5vcm1hbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDsgfVxuXG4uZm9udC0taXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qIEgncyAqL1xuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuaDIsIC5iZXRhIHtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5mb250LS1wb3NpdGl2ZSB7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi5mb250LS1uZWdhdGl2ZSB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi51cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi50ZXh0LWFsaWduLS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtYWxpZ24tLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLmRpc3BsYXktLWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKlxuXG4uaGlkZS0tcGFsbSB7XG5cdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KHBhbG0pIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5oaWRlLS1kZXNrIHtcblx0QGluY2x1ZGUgbWVkaWEtcXVlcnkoZGVzaykge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmhpZGUtLWxhcCB7XG5cdEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KGxhcCkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiovXG4uc3ByaXRlLS1pbmxpbmUtYmxvY2ssIC5zdmctaWNvbiB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4uaWNvbi0tcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgIzVhYzhmNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50OyB9XG5cbi5yb3RhdGVkLS05MCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG4ucm90YXRlZC0tMTgwIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuXG4ucm90YXRlZC0tMjcwIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfVxuXG4uc3ZnLWljb24tYnVyZ2VyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi10b3A6IC00cHg7IH1cblxuLmdpLW1hcmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuXG5ib2R5IHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG5cbi5ibG9nLWxvZ28ge1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEyODBweDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuI3dyYXBwZXIge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwcHggYXV0bztcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IDEyODBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50OyB9XG5cbiNzZXJlbmRpcGl0eV9iYW5uZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbiNiYW5uZXIsIC5ibG9nLXRpdGxlIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogMTI4MHB4O1xuICB3aWR0aDogMTAwJTsgfVxuICAjYmFubmVyIGltZywgLmJsb2ctdGl0bGUgaW1nIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cblxuLmJsb2ctdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsgfVxuICAuYmxvZy10aXRsZSA+IGRpdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDQlO1xuICAgIG1hcmdpbi10b3A6IDQlO1xuICAgIHotaW5kZXg6IDkwMDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLmVudHJ5LXRpdGxlLCAuc2VyZW5kaXBpdHlfZGF0ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDIwcHggMjBweCAxZW0gMjBweDsgfVxuXG4uc2VyZW5kaXBpdHlfZGF0ZSB7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5zZXJlbmRpcGl0eV9kYXRlIGFiYnIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogLW1vei1ub25lO1xuICAgIGN1cnNvcjogaW5pdGlhbDsgfVxuXG4uc2VyZW5kaXBpdHlTaWRlQmFySXRlbSB7XG4gIG1hcmdpbjogMCAwIDFweCAyMHB4OyB9XG5cbiNzZWFyY2hmb3JtIGJyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3RhdGljcGFnZV9tZXRhaW5mbywgLnN0YXRpY3BhZ2VfYXV0aG9yIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4udmlkZW8td3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnZpZGVvLXdyYXAgPiBiciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAudmlkZW8td3JhcCA+IGlmcmFtZSwgLnZpZGVvLXdyYXAgPiBkaXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC52aWRlby13cmFwLl8xNmJ5OSB7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuICAudmlkZW8td3JhcC5fNGJ5MyB7XG4gICAgcGFkZGluZy1ib3R0b206IDc1JTsgfVxuXG4ubmF2LWNhdGVnb3J5IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWF4LXdpZHRoOiAxMDI0cHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdi1jYXRlZ29yeSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9IH1cblxuLm5hdi1jYXRlZ29yeV9faGVhZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5uYXYtY2F0ZWdvcnlfX2hlYWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAxMHB4OyB9XG4gICAgICAubmF2LWNhdGVnb3J5X19oZWFkID4gYiA+IHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAubmF2LWNhdGVnb3J5X19oZWFkOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4OyB9IH1cblxuLm5hdi1jYXRlZ29yeV9faW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjNzOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdi1jYXRlZ29yeV9faW5uZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODFweCkge1xuICAgIC5uYXYtY2F0ZWdvcnlfX2lubmVyIHtcbiAgICAgIGhlaWdodDogMDsgfVxuICAgICAgLm5hdi1jYXRlZ29yeV9faW5uZXIgPiBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5uYXYtY2F0ZWdvcnlfX2lubmVyID4gc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubmF2LWNhdGVnb3J5X19pbm5lcl9fYWxpZ25lciB7XG4gICAgcGFkZGluZzogMTBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MXB4KSB7XG4gIC5uYXYtY2F0ZWdvcnlfX2lubmVyX19hbGlnbmVyID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm5hdi1jYXRlZ29yeV9faW5uZXJfX2FsaWduZXIgPiBzcGFuIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLm1vYmlsZS1uYXYge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQ6ICMxYTNiNDk7XG4gIHRvcDogMDtcbiAgbGVmdDogMjBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDkwMDA7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjNzO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLm1vYmlsZS1uYXYge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi5tb2JpbGUtbmF2X19sYW5nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogODAlOyB9XG4gIC5tb2JpbGUtbmF2X19sYW5nIGZvcm0ge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1vYmlsZS1uYXZfX2xhbmcgZm9ybSA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgICAgIC5tb2JpbGUtbmF2X19sYW5nIGZvcm0gPiBkaXY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7IH1cbiAgLm1vYmlsZS1uYXZfX2xhbmcgc2VsZWN0IHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG5cbi5tb2JpbGUtbmF2X19pbm5lciB7XG4gIGhlaWdodDogMDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3M7IH1cblxuLm1vYmlsZS1uYXZfX2hlYWQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tb2JpbGUtbmF2X19pbm5lcl9fYWxpZ25lciB7XG4gIHBhZGRpbmc6IDEwcHg7IH1cbiAgLm1vYmlsZS1uYXZfX2lubmVyX19hbGlnbmVyID4gYSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBsaW5lLWhlaWdodDogMS44ZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI2Jhbm5lcl9sYW5ndWFnZSA+IGEgPiBpbWc6Zmlyc3QtY2hpbGQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbiNiYW5uZXJfbGFuZ3VhZ2UgPiBhID4gaW1nOmZpcnN0LWNoaWxkICsgaW1nIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICNiYW5uZXJfbGFuZ3VhZ2UgPiBhID4gaW1nOmZpcnN0LWNoaWxkICsgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG5cbiNjb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAjY29udGVudCA+IGJyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5zZXJlbmRpcGl0eV9jb21tZW50IHtcbiAgcGFkZGluZzogMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDsgfVxuXG4uc2VyZW5kaXBpdHlfY29tbWVudEJvZHkge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4jc2VyZW5kaXBpdHlSaWdodFNpZGVCYXIsXG4jc2VyZW5kaXBpdHlMZWZ0U2lkZUJhciB7XG4gIG1hcmdpbi1sZWZ0OiBpbmhlcml0O1xuICBtYXJnaW4tcmlnaHQ6IGluaGVyaXQ7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgI3NlcmVuZGlwaXR5UmlnaHRTaWRlQmFyID4gKixcbiAgI3NlcmVuZGlwaXR5TGVmdFNpZGVCYXIgPiAqIHtcbiAgICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5lbnRyeS1jb250ZW50IHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgbWFyZ2luLXJpZ2h0OiA4MHB4OyB9XG5cbi5tYXNvbnJ5IC5lbnRyeS1jb250ZW50IHtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5tYXNvbnJ5IC5mdWxsLXdpZHRoIC5lbnRyeS1jb250ZW50IHtcbiAgbWFyZ2luLXJpZ2h0OiA4MHB4OyB9XG5cbi5zaWRlbmF2LWh0bWwtbnVnZ2V0LWlubmVyIHtcbiAgbWFyZ2luOiAtMTBweDtcbiAgcGFkZGluZzogMTBweDsgfVxuXG4uc2VyZW5kaXBpdHlTaWRlQmFyQ29udGVudCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5zZXJlbmRpcGl0eVNpZGVCYXJDb250ZW50IGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4uc2VyZW5kaXBpdHlTaWRlQmFyQ29udGVudCBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4IDVweDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5zZXJlbmRpcGl0eVNpZGVCYXJDb250ZW50IHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG5cbi5zZXJlbmRpcGl0eVNpZGVCYXJDb250ZW50IC5jYXRlZ29yeV9zdWJtaXQge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAuc2VyZW5kaXBpdHlTaWRlQmFyQ29udGVudCAuY2F0ZWdvcnlfc3VibWl0IGJyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zZXJlbmRpcGl0eVNpZGVCYXJDb250ZW50IC5jYXRlZ29yeV9zdWJtaXQgaW5wdXQge1xuICAgIHdpZHRoOiA1MHB4OyB9XG5cbi5zZXJlbmRpcGl0eVNpZGVCYXJDb250ZW50IC5jYXRlZ29yeV9saW5rX2FsbCB7XG4gIGNsZWFyOiBsZWZ0OyB9XG5cbi5zZXJlbmRpcGl0eVNpZGVCYXJDb250ZW50ICNzZXJlbmRpcGl0eV9jYXRlZ29yaWVzX2xpc3QgbGkgPiAqIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbiNzaXRlbmF2LCAjc2l0ZW5hdi1tYW51ZWxsIHtcbiAgbWFyZ2luOiAwIC01MDBweCAyMHB4IDA7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAjc2l0ZW5hdiB1bCwgI3NpdGVuYXYtbWFudWVsbCB1bCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICNzaXRlbmF2ICNzZWFyY2hmb3JtLCAjc2l0ZW5hdi1tYW51ZWxsICNzZWFyY2hmb3JtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI5cHg7IH1cbiAgICAjc2l0ZW5hdiAjc2VhcmNoZm9ybSBpbnB1dCwgI3NpdGVuYXYtbWFudWVsbCAjc2VhcmNoZm9ybSBpbnB1dCB7XG4gICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuI3NpdGVuYXYtbWFudWVsbCA+IHVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDsgfVxuICAjc2l0ZW5hdi1tYW51ZWxsID4gdWwgPiBsaSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAjc2l0ZW5hdi1tYW51ZWxsID4gdWwgPiBsaSA+IGEge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogOXB4IDIwcHggNXB4IDEwcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNlcmVuZGlwaXR5X2NvbW1lbnRzIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG5cbi5zZXJlbmRpcGl0eV9lbnRyeSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgLnNlcmVuZGlwaXR5X2VudHJ5IGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG4ubWFzcm9ucnkgLnNlcmVuZGlwaXR5X2VudHJ5IHtcbiAgcGFkZGluZzogMCAxMCU7IH1cblxuLnNlcmVuZGlwaXR5X2VudHJ5IC5zZXJlbmRpcGl0eV9pbWFnZV9sZWZ0IHtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IDEuNTVlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAxZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG5cbmlmcmFtZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zZXJlbmRpcGl0eV9FbnRyeV9EYXRlIHtcbiAgbWFyZ2luOiAwIDAgMjBweCAwOyB9XG4gIC5zZXJlbmRpcGl0eV9FbnRyeV9EYXRlLmZ1bGwtd2lkdGgge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLnNlcmVuZGlwaXR5X3RpdGxlIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLXRvcDogMWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMWVtOyB9XG5cbi5tYXNvbnJ5IC5zZXJlbmRpcGl0eV9FbnRyeV9EYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXJnaW4sIG9wYWNpdHk7IH1cbiAgLm1hc29ucnkgLnNlcmVuZGlwaXR5X0VudHJ5X0RhdGUuaGVudHJ5IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubWFzb25yeSAuc2VyZW5kaXBpdHlfRW50cnlfRGF0ZS5ncmV5ZWQge1xuICAgIG9wYWNpdHk6IDAuNTsgfVxuICAubWFzb25yeSAuc2VyZW5kaXBpdHlfRW50cnlfRGF0ZS5mdWxsLXdpZHRoIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgLm1hc29ucnkgLnNlcmVuZGlwaXR5X0VudHJ5X0RhdGUuZnVsbC13aWR0aCBpbWcge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgMTBweCAwIDA7IH1cbiAgICAgIC5tYXNvbnJ5IC5zZXJlbmRpcGl0eV9FbnRyeV9EYXRlLmZ1bGwtd2lkdGggaW1nLnNlcmVuZGlwaXR5X2ltYWdlX2xlZnQge1xuICAgICAgICBmbG9hdDogbGVmdDsgfVxuXG4uc2VyZW5kaXBpdHlfcGFnZUZvb3RlciB7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxuXG4uY29udGFpbmVyX3NlcmVuZGlwaXR5X3F1aWNrc2VhcmNoX3BsdWdpbiAucXVpY2tzZWFyY2hfc3VibWl0IHtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5MDAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG50YWJsZS5zZXJlbmRpcGl0eV9jYWxlbmRhciB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIHRhYmxlLnNlcmVuZGlwaXR5X2NhbGVuZGFyIHRoLCB0YWJsZS5zZXJlbmRpcGl0eV9jYWxlbmRhciB0ZCB7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICB0YWJsZS5zZXJlbmRpcGl0eV9jYWxlbmRhciB0aCNmb3J3YXJkIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5zbGlkZXItLWJhbm5lciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgb3BhY2l0eTogMDsgfVxuICAuc2xpZGVyLS1iYW5uZXIuc2hvdyB7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OyB9XG4gIC5zbGlkZXItLWJhbm5lciAuaW1hZ2VfY29weXJpZ2h0IHtcbiAgICByaWdodDogNXB4OyB9XG5cbi5zbGljay1zbGlkZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiA5MDAwOyB9XG5cbi5zbGljay1wcmV2IHtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogOTAwMDsgfVxuXG4uc2xpZGVyX19jYXB0aW9uIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG5cbi5zbGlkZXJfX2NhcHRpb25fX3JpZ2h0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7IH1cblxuLnNsaWRlcl9fY2FwdGlvbl9fcmlnaHRfX2lubmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5zbGlkZXJfX2NhcHRpb25fX3JpZ2h0X19tYWluIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDIwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICBsZWZ0OiAyMHB4OyB9XG5cbiNzZXJlbmRpcGl0eV9idWxsZXRwcm9vZl9idXR0b24sXG4jc2VyZW5kaXBpdHlfY3JlZGl0X2xpbmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5ibG9nLWZvb3RlciB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEyODBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLmZvb3Rlci1sZWdhbHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjsgfVxuICAuZm9vdGVyLWxlZ2FscyBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLmZvb3Rlci1sZWdhbHMgbGkgYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDdweDsgfVxuXG4uc2VyZW5kaXBpdHlfZW50cnlfZXh0ZW5kZWQge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbi5nYWxsZXJ5IHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGNsZWFyOiBsZWZ0OyB9XG4gIC5nYWxsZXJ5ID4gYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1hc29ucnktY29udGFpbmVyIC5nYWxsZXJ5IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5wYWdlLWxpZ2h0Ym94IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0OCU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDIlO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnBhZ2UtbGlnaHRib3ggPiBpbWcge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5mYW5jeWJveC13cmFwIHtcbiAgei1pbmRleDogOTk5OTsgfVxuXG4uZmFuY3lib3gtb3ZlcmxheSB7XG4gIHotaW5kZXg6IDk1MDA7IH1cblxuLnBhZ2UtbGlnaHRib3gtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnBhZ2UtbGlnaHRib3gtY29udGVudCA+IGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgI3NpdGVuYXYsICNzaXRlbmF2LW1hbnVlbGwge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4gICAgI3NpdGVuYXYgLmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9wbHVnaW5fbXVsdGlsaW5ndWFsLCAjc2l0ZW5hdi1tYW51ZWxsIC5jb250YWluZXJfc2VyZW5kaXBpdHlfcGx1Z2luX211bHRpbGluZ3VhbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICNiYW5uZXJfbGFuZ3VhZ2UgPiBhID4gaW1nOmZpcnN0LWNoaWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgI2NvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgI3NpdGVuYXYgPiB1bCwgI3NpdGVuYXYtbWFudWVsbCA+IHVsIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAjc2l0ZW5hdiA+IC5jb250YWluZXJfc2VyZW5kaXBpdHlfcGx1Z2luX211bHRpbGluZ3VhbCwgI3NpdGVuYXYtbWFudWVsbCA+IC5jb250YWluZXJfc2VyZW5kaXBpdHlfcGx1Z2luX211bHRpbGluZ3VhbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5tYXNvbnJ5LWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgLm1hc29ucnktY29udGFpbmVyIGltZyB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tYXNvbnJ5LWNvbnRhaW5lciAuc2VyZW5kaXBpdHlfaW1hZ2VfbGVmdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cbiAgICAubWFzb25yeS1jb250YWluZXIgLnNlcmVuZGlwaXR5X2ltYWdlX2xlZnQgaW1nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJsb2ctbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZW50cnktY29udGVudCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICNkZXNrIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4OyB9XG4gICNiYW5uZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLm1vYmlsZS1uYXZfX2hlYWQge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgI3NpdGVuYXYsICNzaXRlbmF2LW1hbnVlbGwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDkwMDA7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3M7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAjc2l0ZW5hdiA+IC5jb250YWluZXJfc2VyZW5kaXBpdHlfcGx1Z2luX211bHRpbGluZ3VhbCwgI3NpdGVuYXYtbWFudWVsbCA+IC5jb250YWluZXJfc2VyZW5kaXBpdHlfcGx1Z2luX211bHRpbGluZ3VhbCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAgICNzaXRlbmF2ID4gLmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9wbHVnaW5fbXVsdGlsaW5ndWFsID4gLnNlcmVuZGlwaXR5U2lkZUJhclRpdGxlLCAjc2l0ZW5hdi1tYW51ZWxsID4gLmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9wbHVnaW5fbXVsdGlsaW5ndWFsID4gLnNlcmVuZGlwaXR5U2lkZUJhclRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgI3NpdGVuYXYgPiAuY29udGFpbmVyX3NlcmVuZGlwaXR5X3BsdWdpbl9tdWx0aWxpbmd1YWwgPiAuc2VyZW5kaXBpdHlTaWRlQmFyQ29udGVudCwgI3NpdGVuYXYtbWFudWVsbCA+IC5jb250YWluZXJfc2VyZW5kaXBpdHlfcGx1Z2luX211bHRpbGluZ3VhbCA+IC5zZXJlbmRpcGl0eVNpZGVCYXJDb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgI3NpdGVuYXYgPiAuY29udGFpbmVyX3NlcmVuZGlwaXR5X3BsdWdpbl9tdWx0aWxpbmd1YWwgc2VsZWN0LCAjc2l0ZW5hdi1tYW51ZWxsID4gLmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9wbHVnaW5fbXVsdGlsaW5ndWFsIHNlbGVjdCB7XG4gICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgcGFkZGluZy10b3A6IDlweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjhweDsgfVxuICAgICNzaXRlbmF2ID4gdWwsICNzaXRlbmF2LW1hbnVlbGwgPiB1bCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgMCAxNXB4IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICBmbG9hdDogbm9uZTsgfVxuICAgICAgI3NpdGVuYXYgPiB1bCA+IGxpLCAjc2l0ZW5hdi1tYW51ZWxsID4gdWwgPiBsaSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgICAgICAgI3NpdGVuYXYgPiB1bCA+IGxpOmxhc3QtY2hpbGQsICNzaXRlbmF2LW1hbnVlbGwgPiB1bCA+IGxpOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJveC1zaGFkb3c6IC0xcHggM3B4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjQzKTsgfVxuICAgICAgICAjc2l0ZW5hdiA+IHVsID4gbGkgPiBhLCAjc2l0ZW5hdi1tYW51ZWxsID4gdWwgPiBsaSA+IGEge1xuICAgICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDlweDtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuOGVtOyB9XG4gICAgICAgICAgI3NpdGVuYXYgPiB1bCA+IGxpID4gYTpob3ZlciwgI3NpdGVuYXYtbWFudWVsbCA+IHVsID4gbGkgPiBhOmhvdmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgICAjc2l0ZW5hdiAjc2VhcmNoZm9ybSwgI3NpdGVuYXYtbWFudWVsbCAjc2VhcmNoZm9ybSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgLm1hc29ucnkgLnNlcmVuZGlwaXR5X0VudHJ5X0RhdGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAjY29udGVudCxcbiAgI3NlcmVuZGlwaXR5UmlnaHRTaWRlQmFyLFxuICAjc2VyZW5kaXBpdHlMZWZ0U2lkZUJhciB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5zZXJlbmRpcGl0eV9lbnRyeSBpbWcsIC5zZXJlbmRpcGl0eV9pbWFnZV9sZWZ0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgI3NlcmVuZGlwaXR5UmlnaHRTaWRlQmFyID4gLmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9wbHVnaW5fbXVsdGlsaW5ndWFsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5lbnRyeS1jb250ZW50ID4gaW1nLCAuc2VyZW5kaXBpdHlfZW50cnlfZXh0ZW5kZWQgPiBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuc2VyZW5kaXBpdHlfcGFnZUZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cbiAgLnN0YXRpY3BhZ2VfY29udGVudCBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuc2VyZW5kaXBpdHlfaW1hZ2VDb21tZW50X2xlZnQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLnNlcmVuZGlwaXR5U2lkZUJhckl0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5zbGlkZXItLWJhbm5lciB7XG4gICAgbWFyZ2luLXRvcDogNTBweCAhaW1wb3J0YW50OyB9XG4gIC5zbGlkZXJfX2NhcHRpb25fX3JpZ2h0IHtcbiAgICBwb3NpdGlvbjogaW5oZXJpdDsgfVxuICAuc2xpZGVyX19jYXB0aW9uX19yaWdodF9faW5uZXIge1xuICAgIG1hcmdpbjogMDsgfVxuICAuc2xpZGVyX19jYXB0aW9uX19yaWdodF9fbWFpbiB7XG4gICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgYm90dG9tOiBpbmhlcml0O1xuICAgIHJpZ2h0OiBpbmhlcml0O1xuICAgIGxlZnQ6IGluaGVyaXQ7IH1cbiAgLnBhZ2UtbGlnaHRib3gge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMiU7XG4gICAgbWFyZ2luLWJvdHRvbTogMiU7IH1cbiAgLmZhbmN5Ym94LXdyYXAsXG4gIC5mYW5jeWJveC1vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG51bC5zdGF0aWNwYWdlX25hdmlnYXRpb24sIC5zdGF0aWNwYWdlX25hdmlnYXRpb25fY2VudGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5pbWFnZSA+IGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4gIC5pbWFnZSA+IC5zZXJlbmRpcGl0eV9pbWFnZUNvbW1lbnRfdHh0IHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi5zZXJlbmRpcGl0eV9pbWFnZUNvbW1lbnRfdHh0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMCAwIDAgNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6IG5vbmU7IH1cbiAgLnNlcmVuZGlwaXR5X2ltYWdlQ29tbWVudF90eHQubGVmdCB7XG4gICAgbWF4LXdpZHRoOiAzMjBweCAhaW1wb3J0YW50O1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5pbWFnZV9jYXB0dXJlLCAuaW1hZ2VfY29weXJpZ2h0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBib3R0b206IDJweDtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi5mdWxsLXdpZHRoIC5pbWFnZV9jb3B5cmlnaHQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zZXJlbmRpcGl0eV9jb21tZW50c0xhYmVsIGlucHV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5zZXJlbmRpcGl0eV9jb21tZW50c0xhYmVsIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5zZXJlbmRpcGl0eV9jb21tZW50X2NhcHRjaGEgaW1nIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4jZm9vdGVyIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5zdmctaWNvbi1hcnJvdywgLm1vYmlsZS1uYXZfX2xhbmcgZm9ybSA+IGRpdjphZnRlciwgLnN2Zy1pY29uLWJ1cmdlciB7XG4gIGJhY2tncm91bmQ6IHVybChcInN2Zy9zcHJpdGUuY3NzLWRiMDYwMDEwLnN2Z1wiKSBuby1yZXBlYXQ7IH1cblxuLnN2Zy1pY29uLWFycm93LCAubW9iaWxlLW5hdl9fbGFuZyBmb3JtID4gZGl2OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTguMTU5NTA5MjAyNDUzOTklIDA7XG4gIHdpZHRoOiA2LjI1cHg7XG4gIGhlaWdodDogMTNweDsgfVxuXG4uc3ZnLWljb24tYnVyZ2VyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiAzMHB4OyB9XG5cbi5zdmctaWNvbi1hcnJvdywgLm1vYmlsZS1uYXZfX2xhbmcgZm9ybSA+IGRpdjphZnRlciwgLm5hdi1jYXRlZ29yeV9faGVhZDphZnRlciwgLm1vYmlsZS1uYXZfX2xhbmcgZm9ybSA+IGRpdjphZnRlciwgLnN2Zy1pY29uLWJ1cmdlciB7XG4gIGJhY2tncm91bmQ6IHVybChcImh0dHA6Ly9kZXYuYWxsZXN3ZWlzei5kZS9yZXNwb25zaXZlLWJsb2cvc3ZnL3Nwcml0ZS5jc3MtZGIwNjAwMTAuc3ZnXCIpIG5vLXJlcGVhdCAhaW1wb3J0YW50OyB9XG5cbi8qKioqKioqKioqXG5cbk1lZGlhLUJyZWFrcG9pbnRzIChpbmhlcml0ZWQgZnJvbSBsYXlvdXQuY3NzKVxuQmV0dGVyIGRvIG5vdCBjaGFuZ2UgdGhpcy4uLlxuXG4qKioqKioqKioqKi9cbi8qKioqKioqKioqXG5cbkZhcmJkZWZpbml0aW9uZW5cblxuKioqKioqKioqKiovXG4uZ3J1ZW4ge1xuICBjb2xvcjogIzlhY2EzYyAhaW1wb3J0YW50OyB9XG5cbi52aW9sZXQge1xuICBjb2xvcjogIzdiMDE2NSAhaW1wb3J0YW50OyB9XG5cbi5vcmFuZ2Uge1xuICBjb2xvcjogI2YzNzAyMSAhaW1wb3J0YW50OyB9XG5cbi5kdW5rZWxibGF1IHtcbiAgY29sb3I6ICMwMDNiNmIgIWltcG9ydGFudDsgfVxuXG4uYmVpZ2Uge1xuICBjb2xvcjogI2M4YmQ4OSAhaW1wb3J0YW50OyB9XG5cbi5icmF1biB7XG4gIGNvbG9yOiAjNGIxZTAwICFpbXBvcnRhbnQ7IH1cblxuLmhlbGxibGF1IHtcbiAgY29sb3I6ICM0NGM4ZjUgIWltcG9ydGFudDsgfVxuXG4uZHVua2VsZ3J1ZW4ge1xuICBjb2xvcjogIzMwM2UwMyAhaW1wb3J0YW50OyB9XG5cbi5ncmF1IHtcbiAgY29sb3I6ICM2YjdiODQgIWltcG9ydGFudDsgfVxuXG4ud2Vpc3Mge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OyB9XG5cbi5zY2h3YXJ6IHtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsgfVxuXG4uYmctZ3J1ZW4ge1xuICBiYWNrZ3JvdW5kOiAjOWFjYTNjICFpbXBvcnRhbnQ7IH1cblxuLmJnLXZpb2xldCB7XG4gIGJhY2tncm91bmQ6ICM3YjAxNjUgIWltcG9ydGFudDsgfVxuXG4uYmctb3JhbmdlIHtcbiAgYmFja2dyb3VuZDogI2YzNzAyMSAhaW1wb3J0YW50OyB9XG5cbi5iZy1kdW5rZWxibGF1IHtcbiAgYmFja2dyb3VuZDogIzAwM2I2YiAhaW1wb3J0YW50OyB9XG5cbi5iZy1iZWlnZSB7XG4gIGJhY2tncm91bmQ6ICNjOGJkODkgIWltcG9ydGFudDsgfVxuXG4uYmctYnJhdW4ge1xuICBiYWNrZ3JvdW5kOiAjNGIxZTAwICFpbXBvcnRhbnQ7IH1cblxuLmJnLWhlbGxibGF1IHtcbiAgYmFja2dyb3VuZDogIzQ0YzhmNSAhaW1wb3J0YW50OyB9XG5cbi5iZy1kdW5rZWxncnVlbiB7XG4gIGJhY2tncm91bmQ6ICMzMDNlMDMgIWltcG9ydGFudDsgfVxuXG4uYmctZ3JhdSB7XG4gIGJhY2tncm91bmQ6ICM2YjdiODQgIWltcG9ydGFudDsgfVxuXG4vKioqKioqKioqKlxuXG5TY2hyaWZ0ZGVmaW5pdGlvbmVuXG5cbioqKioqKioqKioqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBDbGFuV2ViUHJvLU5hcnJNZWRpdW07XG4gIHNyYzogdXJsKFwiaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tL3MvY2k4ejczN2x5aWNoOGF1L0NsYW5XZWJQcm8tTmFyck1lZGl1bS5lb3RcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBDbGFuV2ViUHJvLU5hcnJNZWRpdW07XG4gIHNyYzogdXJsKFwiaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tL3MvejA0YnB3ZDhoNG85cnBsL0NsYW5XZWJQcm8tTmFyck1lZGl1bS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR0ktSWNvbnNldCc7XG4gIHNyYzogdXJsKFwiaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tL3MvNTh0YWg4dHp4eTlxcmI1L2ljb21vb24uZW90Py1yZXFtaXRcIik7XG4gIHNyYzogdXJsKFwiaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tL3MvNTh0YWg4dHp4eTlxcmI1L2ljb21vb24uZW90I2llZml4LXJlcW1pdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tL3MvOTQ0dTZzeXBmbHFoY2F4L2ljb21vb24ud29mZj8tcmVxbWl0XCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImh0dHBzOi8vZGwuZHJvcGJveHVzZXJjb250ZW50LmNvbS9zL2k1cWdpcDVta3U2MWQwdC9pY29tb29uLnR0Zj8tcmVxbWl0XCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJodHRwczovL2RsLmRyb3Bib3h1c2VyY29udGVudC5jb20vcy9mcHN4aDB6bGp3b3VwY2kvaWNvbW9vbi5zdmc/LXJlcW1pdCNpY29tb29uXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogIzVmNjc2YjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4ZjY7IH1cblxuYSB7XG4gIGNvbG9yOiAjNWY2NzZiO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjMzAzNDM2OyB9XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LWZhbWlseTogXCJDbGFuV2ViUHJvLU5hcnJNZWRpdW1cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbi5ibG9nLXRpdGxlID4gZGl2IHtcbiAgZm9udC1mYW1pbHk6IFwiQ2xhbldlYlByby1OYXJyTWVkaXVtXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA2dnc7IH1cblxuLmdpLW1hcmsge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uZW1vdGljb24ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbiNzaXRlbmF2LCAjc2l0ZW5hdi1tYW51ZWxsIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICM3ODgyODc7IH1cbiAgI3NpdGVuYXYgPiB1bCA+IGxpIGEsICNzaXRlbmF2LW1hbnVlbGwgPiB1bCA+IGxpIGEge1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbiNzaXRlbmF2LW1hbnVlbGwsXG4uZW50cnktdGl0bGUsXG4uc2VyZW5kaXBpdHlfdGl0bGUsXG4uc2VyZW5kaXBpdHlfZGF0ZSxcbi5zZXJlbmRpcGl0eVNpZGVCYXJUaXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWJQcm8tTmFyck1lZGl1bVwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4jc2l0ZW5hdi1tYW51ZWxsLFxuLmVudHJ5LXRpdGxlLFxuLnNlcmVuZGlwaXR5X3RpdGxlLFxuLnNlcmVuZGlwaXR5U2lkZUJhclRpdGxlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uc2VyZW5kaXBpdHlTaWRlQmFySXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi5zZXJlbmRpcGl0eVNpZGVCYXJUaXRsZSB7XG4gIGNvbG9yOiAjOWFjYTNjOyB9XG5cbiNsYW5ndWFnZV9jaG9vc2VyID4gZGl2LCAjbGFuZ3VhZ2VfY2hvb3Nlcl9tb2JpbGUgPiBkaXYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgI2xhbmd1YWdlX2Nob29zZXIgPiBkaXY6YWZ0ZXIsICNsYW5ndWFnZV9jaG9vc2VyX21vYmlsZSA+IGRpdjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbi10b3A6IC04cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkdJLUljb25zZXRcIjtcbiAgICBjb250ZW50OiBcIlxcRTgxMlwiO1xuICAgIGNvbG9yOiAjNWY2NzZiOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgICAgI2xhbmd1YWdlX2Nob29zZXIgPiBkaXY6YWZ0ZXIsICNsYW5ndWFnZV9jaG9vc2VyX21vYmlsZSA+IGRpdjphZnRlciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDEycHg7IH0gfVxuICAjbGFuZ3VhZ2VfY2hvb3NlciA+IGRpdiBpbnB1dCwgI2xhbmd1YWdlX2Nob29zZXJfbW9iaWxlID4gZGl2IGlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICNsYW5ndWFnZV9jaG9vc2VyID4gZGl2IHNlbGVjdCwgI2xhbmd1YWdlX2Nob29zZXJfbW9iaWxlID4gZGl2IHNlbGVjdCB7XG4gICAgY29sb3I6ICM1ZjY3NmI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzc4ODI4NyAhaW1wb3J0YW50OyB9XG5cbiNzZWFyY2hmb3JtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICNzZWFyY2hmb3JtOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLTdweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgZm9udC1mYW1pbHk6IFwiR0ktSWNvbnNldFwiO1xuICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgIGNvbnRlbnQ6IFwiXFxFNzAwXCI7XG4gICAgY29sb3I6ICM1ZjY3NmI7IH1cbiAgI3NlYXJjaGZvcm0gaW5wdXQjc2VyZW5kaXBpdHlRdWlja1NlYXJjaFRlcm1GaWVsZCB7XG4gICAgY29sb3I6ICM1ZjY3NmI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzc4ODI4NyAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZzogOHB4IDIwcHggOHB4IDVweDsgfVxuXG4uY2F0ZWdvcnlfc3VibWl0IHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAuY2F0ZWdvcnlfc3VibWl0IGlucHV0IHtcbiAgICBjb2xvcjogIzVmNjc2YjtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ODgyODcgIWltcG9ydGFudDsgfVxuXG4uY29udGFpbmVyX3NlcmVuZGlwaXR5X2NhbGVuZGFyX3BsdWdpbiBhW3RpdGxlPVwiRm9yd2FyZFwiXSBpbWcsIC5jb250YWluZXJfc2VyZW5kaXBpdHlfY2FsZW5kYXJfcGx1Z2luIGFbdGl0bGU9XCJCYWNrXCJdIGltZywgLmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9jYWxlbmRhcl9wbHVnaW4gYVt0aXRsZT1cIlZvcnfDpHJ0c1wiXSBpbWcsIC5jb250YWluZXJfc2VyZW5kaXBpdHlfY2FsZW5kYXJfcGx1Z2luIGFbdGl0bGU9XCJadXLDvGNrXCJdIGltZyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9jYWxlbmRhcl9wbHVnaW4gdGgjbW9udGggYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9jYWxlbmRhcl9wbHVnaW4gYVt0aXRsZT1cIkZvcndhcmRcIl06YWZ0ZXIsIC5jb250YWluZXJfc2VyZW5kaXBpdHlfY2FsZW5kYXJfcGx1Z2luIGFbdGl0bGU9XCJWb3J3w6RydHNcIl06YWZ0ZXIge1xuICBjb250ZW50OiBcIlxcRTgxMVwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgZm9udC1mYW1pbHk6IFwiR0ktSWNvbnNldFwiO1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHBhZGRpbmctbGVmdDogMTNweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9jYWxlbmRhcl9wbHVnaW4gYVt0aXRsZT1cIkJhY2tcIl06YWZ0ZXIsIC5jb250YWluZXJfc2VyZW5kaXBpdHlfY2FsZW5kYXJfcGx1Z2luIGFbdGl0bGU9XCJadXLDvGNrXCJdOmFmdGVyIHtcbiAgY29udGVudDogXCJcXEU4MTNcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIkdJLUljb25zZXRcIjtcbiAgbWFyZ2luLXRvcDogM3B4OyB9XG5cbi5jb250YWluZXJfc2VyZW5kaXBpdHlfY2FsZW5kYXJfcGx1Z2luIHRhYmxlLnNlcmVuZGlwaXR5X2NhbGVuZGFyIC5zZXJlbmRpcGl0eV9jYWxlbmRhckRheS5BY3RpdmUgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzlhY2EzYzsgfVxuXG4ucXVpY2tzZWFyY2hfc3VibWl0IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY29udGFpbmVyX3NlcmVuZGlwaXR5X3F1aWNrc2VhcmNoX3BsdWdpbiAucXVpY2tzZWFyY2hfc3VibWl0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAwO1xuICB3aWR0aDogMmVtICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzBweDsgfVxuXG4uc2VyZW5kaXBpdHlfZGF0ZSB7XG4gIGZvbnQtc2l6ZTogOXB4OyB9XG4gIC5zZXJlbmRpcGl0eV9kYXRlOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5zZXJlbmRpcGl0eV9jb21tZW50c1RpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG5cbi5lbnRyeS10aXRsZSwgLnNlcmVuZGlwaXR5X3RpdGxlIHtcbiAgZm9udC1zaXplOiAyMnB4OyB9XG4gIC5lbnRyeS10aXRsZSA+ICosIC5zZXJlbmRpcGl0eV90aXRsZSA+ICoge1xuICAgIGZvbnQtc2l6ZTogMjJweDsgfVxuXG4uZW50cnktbWV0YS1tYW51ZWxsIHtcbiAgYmFja2dyb3VuZDogIzc4ODI4NztcbiAgcGFkZGluZzogMTBweDtcbiAgY29sb3I6ICNmZmY7IH1cblxuLnNpZGVuYXYtaHRtbC1udWdnZXQtaW5uZXIgPiBoMyB7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWJQcm8tTmFyck1lZGl1bVwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5lbnRyeS1jb250ZW50LCAuc3RhdGljcGFnZV9jb250ZW50LCAuc2VyZW5kaXBpdHlfZW50cnlfZXh0ZW5kZWQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxOXB4OyB9XG4gIC5lbnRyeS1jb250ZW50IGEsIC5zdGF0aWNwYWdlX2NvbnRlbnQgYSwgLnNlcmVuZGlwaXR5X2VudHJ5X2V4dGVuZGVkIGEge1xuICAgIGNvbG9yOiAjNDdhYmQ4OyB9XG4gICAgLmVudHJ5LWNvbnRlbnQgYTpob3ZlciwgLnN0YXRpY3BhZ2VfY29udGVudCBhOmhvdmVyLCAuc2VyZW5kaXBpdHlfZW50cnlfZXh0ZW5kZWQgYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzQ3YWJkODtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5zbGljay1wcmV2OmJlZm9yZSwgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwiR0ktSWNvbnNldFwiO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzlhY2EzYzsgfVxuXG4uc2xpY2stcHJldjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRTgxM1wiOyB9XG5cbi5zbGljay1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFODExXCI7IH1cblxuLnNsaWRlcl9fY2FwdGlvbiB7XG4gIGJhY2tncm91bmQ6ICMzMDM0MzY7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5zbGlkZXJfX2NhcHRpb25fX3JpZ2h0X19pbm5lciB7XG4gIGJhY2tncm91bmQ6ICM3ODgyODc7IH1cbiAgLnNsaWRlcl9fY2FwdGlvbl9fcmlnaHRfX2lubmVyID4gaDUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWJQcm8tTmFyck1lZGl1bVwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uc2xpZGVyX19jYXB0aW9uX19yaWdodF9fcm9vZiB7XG4gIGZvbnQtZmFtaWx5OiBcIkNsYW5XZWJQcm8tTmFyck1lZGl1bVwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5zbGlkZXJfX2NhcHRpb25fX3JpZ2h0X19tYWluIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLmJsb2ctZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogIzVmNjc2YjtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsgfVxuICAuYmxvZy1mb290ZXIgYSB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYmxvZy1mb290ZXIgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uZm9vdGVyLWxlZ2FscyB7XG4gIGJvcmRlci1jb2xvcjogIzc4ODI4NzsgfVxuICAuZm9vdGVyLWxlZ2FscyBsaTpsYXN0LWNoaWxkIGEge1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuZm9vdGVyLWxlZ2FscyBhIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNzg4Mjg3OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5tb2JpbGUtbmF2X19oZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAjOWFjYTNjOyB9XG4gICNzaXRlbmF2LCAjc2l0ZW5hdi1tYW51ZWxsIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgI3NpdGVuYXYgPiB1bCA+IGxpLCAjc2l0ZW5hdi1tYW51ZWxsID4gdWwgPiBsaSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzVmNjc2YjtcbiAgICAgIGJhY2tncm91bmQ6ICM3ODgyODc7IH1cbiAgICAgICNzaXRlbmF2ID4gdWwgPiBsaTpmaXJzdC1jaGlsZCwgI3NpdGVuYXYtbWFudWVsbCA+IHVsID4gbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAjc2l0ZW5hdiBzZWxlY3QsICNzaXRlbmF2LW1hbnVlbGwgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH0gfVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRERUZBVUxUU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogaW51aXQuY3Nz4oCZIGRlZmF1bHQgdmFyaWFibGVzLiBSZWRlZmluZSB0aGVzZSBpbiB5b3VyIGBfdmFycy5zY3NzYCBmaWxlIChmb3VuZFxuICogaW4gdGhlIGludWl0LmNzcy13ZWItdGVtcGxhdGUpIHRvIG92ZXJyaWRlIHRoZW0uXG4gKi9cblxuXG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRERUJVR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogRGVidWcgbW9kZSB3aWxsIHZpc3VhbGx5IGhpZ2hsaWdodCBhbnkgcG90ZW50aWFsIG1hcmt1cC9hY2Nlc3NpYmlsaXR5IHF1aXJrc1xuICogaW4gdGhlIGJyb3dzZXIuIFNldCB0byBgdHJ1ZWAgb3IgYGZhbHNlYC5cbiAqL1xuJGRlYnVnLW1vZGU6ICAgICAgICBmYWxzZSFkZWZhdWx0O1xuXG5cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJEJPUkRFUi1CT1hcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIERvIHlvdSB3YW50IGFsbCBlbGVtZW50cyB0byBhZG9wdCBgYm94LXNpemluZzpib3JkZXItYm94O2AgYXMgcGVyXG4gKiBwYXVsaXJpc2guY29tLzIwMTIvYm94LXNpemluZy1ib3JkZXItYm94LWZ0dyA/XG4gKi9cbiRnbG9iYWwtYm9yZGVyLWJveDogdHJ1ZSFkZWZhdWx0O1xuXG5cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJEJBU0VcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIEJhc2Ugc3R1ZmZcbiAqL1xuJGJhc2UtZm9udC1zaXplOiAgICAxNnB4IWRlZmF1bHQ7XG4kYmFzZS1saW5lLWhlaWdodDogIDI0cHghZGVmYXVsdDtcblxuLyoqXG4gKiBCYXNlIGZvbnQtZmFtaWx5LlxuICovXG4kYmFzZS1mb250LWZhbWlseTogIHNhbnMtc2VyaWYhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZhdWx0IGNvbG91ciBmb3Igb2JqZWN0c+KAmSBib3JkZXJzIGV0Yy5cbiAqL1xuJGJhc2UtdWktY29sb3I6ICAgICAjY2NjIWRlZmF1bHQ7XG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkUkVTUE9OU0lWRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogUmVzcG9uc2l2ZW5lc3M/XG4gKi9cbiRyZXNwb25zaXZlOiAgICAgICAgdHJ1ZSFkZWZhdWx0O1xuXG4vKipcbiAqIFJlc3BvbnNpdmVuZXNzIGZvciB3aWRlc2NyZWVuL2hpZ2ggcmVzb2x1dGlvbiBkZXNrdG9wIG1vbml0b3JzIGFuZCBiZXlvbmQ/XG4gKiBOb3RlOiBgJHJlc3BvbnNpdmVgIHZhcmlhYmxlIGFib3ZlIG11c3QgYmUgc2V0IHRvIHRydWUgYmVmb3JlIGVuYWJsaW5nIHRoaXMuXG4gKi9cbiRyZXNwb25zaXZlLWV4dHJhOiAgZmFsc2UhZGVmYXVsdDtcblxuLyoqXG4gKiBSZXNwb25zaXZlIHB1c2ggYW5kIHB1bGwgcHJvZHVjZSBhIExPVCBvZiBjb2RlLCBvbmx5IHR1cm4gdGhlbSBvbiBpZiB5b3VcbiAqIGRlZmluaXRlbHkgbmVlZCB0aGVtLlxuICovXG4kcHVzaDogICAgICAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4vKipcbiAqIE5vdGU6IGAkcHVzaGAgdmFyaWFibGUgYWJvdmUgbXVzdCBiZSBzZXQgdG8gdHJ1ZSBiZWZvcmUgZW5hYmxpbmcgdGhlc2UuXG4gKi9cbiRwYWxtLXB1c2g6ICAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiRsYXAtcHVzaDogICAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiRsYXAtYW5kLXVwLXB1c2g6ICAgZmFsc2UhZGVmYXVsdDtcbiRwb3J0YWJsZS1wdXNoOiAgICAgZmFsc2UhZGVmYXVsdDtcbiRkZXNrLXB1c2g6ICAgICAgICAgZmFsc2UhZGVmYXVsdDtcblxuJHB1bGw6ICAgICAgICAgICAgICBmYWxzZSFkZWZhdWx0O1xuLyoqXG4gKiBOb3RlOiBgJHB1bGxgIHZhcmlhYmxlIGFib3ZlIG11c3QgYmUgc2V0IHRvIHRydWUgYmVmb3JlIGVuYWJsaW5nIHRoZXNlLlxuICovXG4kcGFsbS1wdWxsOiAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kbGFwLXB1bGw6ICAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kbGFwLWFuZC11cC1wdWxsOiAgIGZhbHNlIWRlZmF1bHQ7XG4kcG9ydGFibGUtcHVsbDogICAgIGZhbHNlIWRlZmF1bHQ7XG4kZGVzay1wdWxsOiAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG5cbi8qKlxuICogVGVsbCBpbnVpdC5jc3Mgd2hlbiBicmVha3BvaW50cyBzdGFydC5cbiAqL1xuJGxhcC1zdGFydDogICAgICAgICA0ODFweCFkZWZhdWx0O1xuJGRlc2stc3RhcnQ6ICAgICAgICAxMDI0cHghZGVmYXVsdDtcbiRkZXNrLXdpZGUtc3RhcnQ6ICAgMTIwMHB4IWRlZmF1bHQ7XG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkRk9OVC1TSVpFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogRm9udC1zaXplcyAoaW4gcGl4ZWxzKS4gUmVmZXIgdG8gcmVsZXZhbnQgc2VjdGlvbnMgZm9yIHRoZWlyIGltcGxlbWVudGF0aW9ucy5cbiAqL1xuJGdpZ2Etc2l6ZTogICAgICAgICA5NnB4IWRlZmF1bHQ7XG4kbWVnYS1zaXplOiAgICAgICAgIDcycHghZGVmYXVsdDtcbiRraWxvLXNpemU6ICAgICAgICAgNDhweCFkZWZhdWx0O1xuXG4kaDEtc2l6ZTogICAgICAgICAgIDM2cHghZGVmYXVsdDsgLy8gLmFscGhhXG4kaDItc2l6ZTogICAgICAgICAgIDMwcHghZGVmYXVsdDsgLy8gLmJldGFcbiRoMy1zaXplOiAgICAgICAgICAgMjRweCFkZWZhdWx0OyAvLyAuZ2FtbWFcbiRoNC1zaXplOiAgICAgICAgICAgMjBweCFkZWZhdWx0OyAvLyAuZGVsdGFcbiRoNS1zaXplOiAgICAgICAgICAgMTZweCFkZWZhdWx0OyAvLyAuZXBzaWxvblxuJGg2LXNpemU6ICAgICAgICAgICAxNHB4IWRlZmF1bHQ7IC8vIC56ZXRhXG5cbiRtaWxsaS1zaXplOiAgICAgICAgMTJweCFkZWZhdWx0O1xuJG1pY3JvLXNpemU6ICAgICAgICAxMHB4IWRlZmF1bHQ7XG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkUVVPVEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBFbmdsaXNoIHF1b3RlIG1hcmtzP1xuICovXG4kZW5nbGlzaC1xdW90ZXM6ICAgIHRydWUhZGVmYXVsdDtcblxuLyoqXG4gKiBJZiB5b3Ugd2FudCBFbmdsaXNoIHF1b3RlcyB0aGVuIHBsZWFzZSBkbyBub3QgZWRpdCB0aGVzZTsgdGhleeKAmXJlIG9ubHkgaGVyZVxuICogYmVjYXVzZSBTYXNzIG5lZWRzIHRoZW0uXG4gKi9cbiRvcGVuLXF1b3RlOiAgICBudWxsO1xuJGNsb3NlLXF1b3RlOiAgIG51bGw7XG5cbi8qKlxuICogSWYgeW91IG5lZWQgbm9uLUVuZ2xpc2ggcXVvdGVzLCBwbGVhc2UgYWx0ZXIgdGhlIGZvbGxvd2luZyB2YWx1ZXMgYWNjb3JkaW5nbHk6XG4gKi9cbkBpZiAkZW5nbGlzaC1xdW90ZXMgIT0gdHJ1ZXtcbiAgICAkb3Blbi1xdW90ZTogICAgXFwwMEFCO1xuICAgICRjbG9zZS1xdW90ZTogICBcXDAwQkI7XG59XG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQlJBTkRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIEJyYW5kIHN0dWZmXG4gKi9cbiRicmFuZC1jb2xvcjogICAgICAgIzRhOGVjMiFkZWZhdWx0O1xuJGJyYW5kLWZhY2U6ICAgICAgICBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYhZGVmYXVsdDtcblxuLyoqXG4gKiBIb3cgYmlnIHdvdWxkIHlvdSBsaWtlIHJvdW5kIGNvcm5lcnMgdG8gYmUgYnkgZGVmYXVsdD9cbiAqL1xuJGJyYW5kLXJvdW5kOiAgICAgICAgNHB4IWRlZmF1bHQ7XG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkT0JKRUNUUyBBTkQgQUJTVFJBQ1RJT05TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBXaGljaCBvYmplY3RzIGFuZCBhYnN0cmFjdGlvbnMgd291bGQgeW91IGxpa2UgdG8gdXNlP1xuICovXG4kdXNlLWdyaWRzOiAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWZsZXhib3g6ICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWNvbHVtbnM6ICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLW5hdjogICAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLW9wdGlvbnM6ICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLXBhZ2luYXRpb246ICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWJyZWFkY3J1bWI6ICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLW1lZGlhOiAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLW1hcmdpbmFsaWE6ICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWlzbGFuZDogICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWJsb2NrLWxpc3Q6ICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLW1hdHJpeDogICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLXNwbGl0OiAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLXRoaXMtb3ItdGhpczogIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWxpbmstY29tcGxleDogIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWZseW91dDogICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWFycm93czogICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLXNwcml0ZTogICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWljb24tdGV4dDogICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWJlYXV0b25zOiAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWxvemVuZ2VzOiAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLXJ1bGVzOiAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLXN0YXRzOiAgICAgICAgIGZhbHNlIWRlZmF1bHQ7XG4kdXNlLWdyZXlib3g6ICAgICAgIGZhbHNlIWRlZmF1bHQ7XG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkRlJBTUVXT1JLXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBpbnVpdC5jc3Mgd2lsbCB3b3JrIHRoZXNlIG5leHQgb25lcyBvdXQgZm9yIHVzZSB3aXRoaW4gdGhlIGZyYW1ld29yay5cbiAqXG4gKiBBc3NpZ24gb3VyIGAkYmFzZS1saW5lLWhlaWdodGAgdG8gYSBuZXcgc3BhY2luZyB2YXIgZm9yIG1vcmUgdHJhbnNwYXJlbmN5LlxuICovXG4kYmFzZS1zcGFjaW5nLXVuaXQ6ICRiYXNlLWxpbmUtaGVpZ2h0IWRlZmF1bHQ7XG4kaGFsZi1zcGFjaW5nLXVuaXQ6ICRiYXNlLXNwYWNpbmctdW5pdCAvIDIhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC1yYXRpbzogJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemU7XG4iLCIvLyBBZGQgeW91ciBzZXR0aW5ncyBoZXJlXG5cbi8qKioqKipcblxuIEVudmlyb25tZW50LVR5cGU6XG5cdCBTZXQgdG8gXCJsaXZlXCIgYmVmb3JlICdndWxwIGRlcGxveScgZm9yIGNvbXBpbGluZyBmb3Jcblx0IHByb2R1Y3RpdmUgR29ldGhlLVNlcnZlclxuXG5cdCBTZXQgdG8gXCJkZXZcIiB3aGVuIHJ1bm5pbmcgJ2d1bHAnIGZvciBkZXZlbG9wbWVudCBhbmQgbG9hZGluZ1xuXHQgdGhlIGFzc2V0cyBmcm9tIERyb3Bib3hcblxuKioqKioqKi9cblxuJGVudjogXCJkZXZcIjtcblxuJGJhc2UtZm9udC1zaXplOiAgICAxNXB4O1xuJGJhc2UtbGluZS1oZWlnaHQ6ICAyMHB4O1xuXG4kYmFzZS1mb250LWZhbWlseTogIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4kYmFzZS11aS1jb2xvcjogICAgICNjY2MhZGVmYXVsdDtcblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJFJFU1BPTlNJVkVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKlxuICogVGVsbCBpbnVpdC5jc3Mgd2hlbiBicmVha3BvaW50cyBzdGFydC5cbiAqL1xuJGxhcC1zdGFydDogICAgICAgICA0ODFweDtcbiRkZXNrLXN0YXJ0OiAgICAgICAgNzY4cHg7XG4kZGVzay13aWRlLXN0YXJ0OiAgIDEwMjRweDtcblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJEZPTlQtU0laRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIEZvbnQtc2l6ZXMgKGluIHBpeGVscykuIFJlZmVyIHRvIHJlbGV2YW50IHNlY3Rpb25zIGZvciB0aGVpciBpbXBsZW1lbnRhdGlvbnMuXG4gKi9cbiRnaWdhLXNpemU6ICAgICAgICAgOTZweCFkZWZhdWx0O1xuJG1lZ2Etc2l6ZTogICAgICAgICA3MnB4IWRlZmF1bHQ7XG4ka2lsby1zaXplOiAgICAgICAgIDQ4cHghZGVmYXVsdDtcblxuJGgxLXNpemU6ICAgICAgICAgICAzM3B4IWRlZmF1bHQ7IC8vIC5hbHBoYVxuJGgyLXNpemU6ICAgICAgICAgICAyNXB4IWRlZmF1bHQ7IC8vIC5iZXRhXG4kaDMtc2l6ZTogICAgICAgICAgIDIzcHghZGVmYXVsdDsgLy8gLmdhbW1hXG4kaDQtc2l6ZTogICAgICAgICAgIDIycHghZGVmYXVsdDsgLy8gLmRlbHRhXG4kaDUtc2l6ZTogICAgICAgICAgIDE2cHghZGVmYXVsdDsgLy8gLmVwc2lsb25cbiRoNi1zaXplOiAgICAgICAgICAgMTVweCFkZWZhdWx0OyAvLyAuemV0YVxuXG4kbWlsbGktc2l6ZTogICAgICAgIDEycHghZGVmYXVsdDtcbiRtaWNyby1zaXplOiAgICAgICAgOHB4IWRlZmF1bHQ7XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRCUkFORFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogQnJhbmQgc3R1ZmZcbiAqL1xuJGJyYW5kLWNvbG9yOiAgICAgICAjMDBjZTVlIWRlZmF1bHQ7XG4kYnJhbmQtZmFjZTogICAgICAgIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZiFkZWZhdWx0O1xuXG4vKipcbiAqIEhvdyBiaWcgd291bGQgeW91IGxpa2Ugcm91bmQgY29ybmVycyB0byBiZSBieSBkZWZhdWx0P1xuICovXG4kYnJhbmQtcm91bmQ6ICAgICAgICA0cHghZGVmYXVsdDtcblxuXG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRPQkpFQ1RTIEFORCBBQlNUUkFDVElPTlNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFdoaWNoIG9iamVjdHMgYW5kIGFic3RyYWN0aW9ucyB3b3VsZCB5b3UgbGlrZSB0byB1c2U/XG4gKi9cbiR1c2UtZ3JpZHM6ICAgICAgICAgdHJ1ZTtcbiR1c2UtZmxleGJveDogICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtY29sdW1uczogICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtbmF2OiAgICAgICAgICAgdHJ1ZTtcbiR1c2Utb3B0aW9uczogICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtcGFnaW5hdGlvbjogICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtYnJlYWRjcnVtYjogICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtbWVkaWE6ICAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtbWFyZ2luYWxpYTogICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtaXNsYW5kOiAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtYmxvY2stbGlzdDogICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtbWF0cml4OiAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2Utc3BsaXQ6ICAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtdGhpcy1vci10aGlzOiAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtbGluay1jb21wbGV4OiAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtZmx5b3V0OiAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtYXJyb3dzOiAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2Utc3ByaXRlOiAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtaWNvbi10ZXh0OiAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtYmVhdXRvbnM6ICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtbG96ZW5nZXM6ICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtcnVsZXM6ICAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2Utc3RhdHM6ICAgICAgICAgZmFsc2UhZGVmYXVsdDtcbiR1c2UtZ3JleWJveDogICAgICAgZmFsc2UhZGVmYXVsdDtcblxuXG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRGUkFNRVdPUktcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIGludWl0LmNzcyB3aWxsIHdvcmsgdGhlc2UgbmV4dCBvbmVzIG91dCBmb3IgdXNlIHdpdGhpbiB0aGUgZnJhbWV3b3JrLlxuICpcbiAqIEFzc2lnbiBvdXIgYCRiYXNlLWxpbmUtaGVpZ2h0YCB0byBhIG5ldyBzcGFjaW5nIHZhciBmb3IgbW9yZSB0cmFuc3BhcmVuY3kuXG4gKi9cbiRiYXNlLXNwYWNpbmctdW5pdDogMjBweDtcbiRoYWxmLXNwYWNpbmctdW5pdDogJGJhc2Utc3BhY2luZy11bml0IC8gMjtcbiRsaW5lLWhlaWdodC1yYXRpbzogJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemU7XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICBMT0NBTCBWQVJTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqXG4qIENPTE9SU1xuKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiRjb2xvci1jaTogIzVhYzhmNSFkZWZhdWx0O1xuJGNvbG9yLWNpLTJuZDogIzFhM2I0OSFkZWZhdWx0O1xuJGNvbG9yLWJsYWNrOiAjMDAwIWRlZmF1bHQ7XG4kY29sb3Itd2hpdGU6ICNmZmYhZGVmYXVsdDtcbiRjb2xvci10eHQ6ICRjb2xvci1ibGFjaztcbiRjb2xvci1oaWdobGlnaHQ6ICM3OTE2NjchZGVmYXVsdDtcbiRjb2xvci1ncmV5LWxpZ2h0OiAjZjVmNmY1IWRlZmF1bHQ7XG5cbiRjb2xvcnM6IChcblx0Yy0tY2kgJGNvbG9yLWNpLFxuXHRjLS1jaS0ybmQgJGNvbG9yLWNpLTJuZCxcblx0Yy0tYmxhY2sgJGNvbG9yLWJsYWNrLFxuXHRjLS13aGl0ZSAkY29sb3Itd2hpdGUsXG5cdGMtLXR4dCAkY29sb3ItdHh0LFxuXHRjLS1oaWdobGlnaHQgJGNvbG9yLWhpZ2hsaWdodCxcblx0Yy0tZ3JleS1saWdodCAkY29sb3ItZ3JleS1saWdodFxuKTtcblxuXG5AZWFjaCAkY29sb3IgaW4gJGNvbG9ycyB7XG4gICAgLiN7bnRoKCRjb2xvciwgMSl9IHtcbiAgICAgIGNvbG9yOiBudGgoJGNvbG9yLCAyKTtcbiAgICB9XG5cdC5iZy0je250aCgkY29sb3IsIDEpfSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAyKTtcbiAgICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgIElOVUlULkNTU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qISpcbiAqXG4gKiBpbnVpdGNzcy5jb20gLS0gQGludWl0Y3NzIC0tIEBjc3N3aXphcmRyeVxuICpcbiAqL1xuLyoqXG4gKiBpbnVpdC5jc3MgYWN0cyBhcyBhIGJhc2Ugc3R5bGVzaGVldCB3aGljaCB5b3Ugc2hvdWxkIGV4dGVuZCB3aXRoIHlvdXIgb3duXG4gKiB0aGVtZSBzdHlsZXNoZWV0LlxuICpcbiAqIGludWl0LmNzcyBhaW1zIHRvIGRvIHRoZSBoZWF2eSBsaWZ0aW5nOyBzb3J0aW5nIG9iamVjdHMgYW5kIGFic3RyYWN0aW9ucyxcbiAqIGRlc2lnbiBwYXR0ZXJucyBhbmQgZmlkZGx5IGJpdHMgb2YgQ1NTLCB3aGlsc3QgbGVhdmluZyBhcyBtdWNoIGRlc2lnbiBhc1xuICogcG9zc2libGUgdG8geW91LiBpbnVpdC5jc3MgaXMgdGhlIHNjYWZmb2xkaW5nIHRvIHlvdXIgZGVjb3JhdG9yLlxuICpcbiAqIFRoaXMgc3R5bGVzaGVldCBpcyBoZWF2aWx5IGRvY3VtZW50ZWQgYW5kIGNvbnRhaW5zIGxvdHMgb2YgY29tbWVudHMsIHBsZWFzZVxuICogdGFrZSBjYXJlIHRvIHJlYWQgYW5kIHJlZmVyIHRvIHRoZW0gYXMgeW91IGJ1aWxkLiBGb3IgZnVydGhlciBzdXBwb3J0IHBsZWFzZVxuICogdHdlZXQgYXQgQGludWl0Y3NzLlxuICpcbiAqIE93aW5nIHRvIHRoZSBhbW91bnQgb2YgY29tbWVudHMgcGxlYXNlIG9ubHkgZXZlciB1c2UgbWluaWZpZWQgQ1NTIGluXG4gKiBwcm9kdWN0aW9uLiBUaGlzIGZpbGUgaXMgcHVyZWx5IGEgZGV2IGRvY3VtZW50LlxuICpcbiAqIFRoZSB0YWJsZSBvZiBjb250ZW50cyBiZWxvdyBtYXBzIHRvIHNlY3Rpb24gdGl0bGVzIG9mIHRoZSBzYW1lIG5hbWUsIHRvIGp1bXBcbiAqIHRvIGFueSBzZWN0aW9uIHNpbXBseSBydW4gYSBmaW5kIGZvciAkW1NFQ1RJT04tVElUTEVdLlxuICpcbiAqIE1vc3Qgb2JqZWN0cyBhbmQgYWJzdHJhY3Rpb25zIGNvbWUgd2l0aCBhIGNodW5rIG9mIG1hcmt1cCB0aGF0IHlvdSBzaG91bGQgYmVcbiAqIGFibGUgdG8gcGFzdGUgaW50byBhbnkgdmlldyB0byBxdWlja2x5IHNlZSBob3cgdGhlIENTUyB3b3JrcyBpbiBjb25qdW5jdGlvblxuICogd2l0aCB0aGUgY29ycmVjdCBIVE1MLlxuICpcbiAqIGludWl0LmNzcyBpcyB3cml0dGVuIHRvIHRoaXMgc3RhbmRhcmQ6IGdpdGh1Yi5jb20vY3Nzd2l6YXJkcnkvQ1NTLUd1aWRlbGluZXNcbiAqXG4gKiBMSUNFTlNFXG4gKlxuICogQ29weXJpZ2h0IDIwMTMgSGFycnkgUm9iZXJ0c1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICogVGhhbmsgeW91IGZvciBjaG9vc2luZyBpbnVpdC5jc3MuIE1heSB5b3VyIHdlYiBmb250cyByZW5kZXIgcGVyZmVjdGx5LlxuICovXG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIENPTlRFTlRTLi4uLi4uLi4uLi4uWW914oCZcmUgcmVhZGluZyBpdCFcbiAqIFdBUk5JTkcuLi4uLi4uLi4uLi4uSGVyZSBiZSBkcmFnb25zIVxuICogSU1QT1JUUy4uLi4uLi4uLi4uLi5CZWdpbiBpbXBvcnRpbmcgdGhlIHNlY3Rpb25zIGJlbG93XG4gKlxuICogTUlYSU5TLi4uLi4uLi4uLi4uLi5TdXBlci1zaW1wbGUgU2FzcyBzdHVmZlxuICogTk9STUFMSVpFLi4uLi4uLi4uLi5ub3JtYWxpemUuY3NzXG4gKiBSRVNFVC4uLi4uLi4uLi4uLi4uLlNldCBzb21lIGRlZmF1bHRzXG4gKiBDTEVBUkZJWC4uLi4uLi4uLi4uLlxuICogU0hBUkVELi4uLi4uLi4uLi4uLi5TaGFyZWQgZGVjbGFyYXRpb25zXG4gKlxuICogTUFJTi4uLi4uLi4uLi4uLi4uLi5IaWdoLWxldmVsIGVsZW1lbnRzIGxpa2UgYGh0bWxgLCBgYm9keWAsIGV0Yy5cbiAqIEhFQURJTkdTLi4uLi4uLi4uLi4uRG91YmxlLXN0cmFuZGVkIGhlYWRpbmcgaGllcmFyY2h5XG4gKiBQQVJBR1JBUEhTLi4uLi4uLi4uLlxuICogU01BTExQUklOVC4uLi4uLi4uLi5TbWFsbGVyIHRleHQgZWxlbWVudHMgbGlrZSBgc21hbGxgXG4gKiBRVU9URVMuLi4uLi4uLi4uLi4uLlxuICogQ09ERS4uLi4uLi4uLi4uLi4uLi5cbiAqIExJU1RTLi4uLi4uLi4uLi4uLi4uXG4gKiBJTUFHRVMuLi4uLi4uLi4uLi4uLlxuICogVEFCTEVTLi4uLi4uLi4uLi4uLi5cbiAqIEZPUk1TLi4uLi4uLi4uLi4uLi4uXG4gKlxuICogR1JJRFMuLi4uLi4uLi4uLi4uLi5GbHVpZCwgcHJvcG9ydGlvbmFsIGFuZCBuZXN0YWJsZSBncmlkc1xuICogRkxFWEJPWC4uLi4uLi4uLi4uLi5DcnVkZWx5IGVtdWxhdGUgZmxleGJveFxuICogQ09MVU1OUy4uLi4uLi4uLi4uLi5DU1MzIGNvbHVtbnNcbiAqIE5BVi4uLi4uLi4uLi4uLi4uLi4uQSBzaW1wbGUgYWJzdHJhY3Rpb24gdG8gcHV0IGEgbGlzdCBpbiBob3Jpem9udGFsIG5hdiBtb2RlXG4gKiBPUFRJT05TLi4uLi4uLi4uLi4uLkdyb3VwZWQgbmF2IGl0ZW1zXG4gKiBQQUdJTkFUSU9OLi4uLi4uLi4uLlZlcnkgc3RyaXBwZWQgYmFjaywgYmFzaWMgcGFnaW5hdG9yXG4gKiBCUkVBRENSVU1CLi4uLi4uLi4uLlNpbXBsZSBicmVhZGNydW1iIHRyYWlsIG9iamVjdFxuICogTUVESUEuLi4uLi4uLi4uLi4uLi5NZWRpYSBvYmplY3RcbiAqIE1BUkdJTkFMSUEuLi4uLi4uLi4uU2ltcGxlIG1hcmdpbmFsaWEgY29udGVudFxuICogSVNMQU5ELi4uLi4uLi4uLi4uLi5Cb3hlZCBvZmYgY29udGVudFxuICogQkxPQ0stTElTVC4uLi4uLi4uLi5CbG9ja3kgbGlzdHMgb2YgY29udGVudFxuICogTUFUUklYLi4uLi4uLi4uLi4uLi5HcmlkZGVkIGxpc3RzXG4gKiBTUExJVC4uLi4uLi4uLi4uLi4uLkEgc2ltcGxlIHNwbGl0LWluLXR3byBvYmplY3RcbiAqIFRISVMtT1ItVEhJUy4uLi4uLi4uT3B0aW9ucyBvYmplY3RcbiAqIExJTkstQ09NUExFWC4uLi4uLi4uXG4gKiBGTFlPVVQuLi4uLi4uLi4uLi4uLkZseW91dC1vbi1ob3ZlciBvYmplY3RcbiAqIEFSUk9XUy4uLi4uLi4uLi4uLi4uQ1NTIGFycm93c1xuICogU1BSSVRFLi4uLi4uLi4uLi4uLi5HZW5lcmljIHNwcml0aW5nIGVsZW1lbnRcbiAqIElDT04tVEVYVC4uLi4uLi4uLi4uSWNvbiBhbmQgdGV4dCBjb3VwbGluZ3NcbiAqIEJFQVVUT05TLi4uLi4uLi4uLi4uVXNlIHRoZSBiZWF1dG9ucyBtaWNybyBsaWJyYXJ5XG4gKiBMT1pFTkdFUy4uLi4uLi4uLi4uLkJhc2ljIGxvemVuZ2Ugc3R5bGVzXG4gKiBSVUxFUy4uLi4uLi4uLi4uLi4uLkhvcml6b250YWwgcnVsZXNcbiAqIFNUQVRTLi4uLi4uLi4uLi4uLi4uU2ltcGxlIHN0YXRzIG9iamVjdFxuICogR1JFWUJPWC4uLi4uLi4uLi4uLi5XaXJlZnJhbWluZyBzdHlsZXNcbiAqXG4gKiBXSURUSFMuLi4uLi4uLi4uLi4uLldpZHRoIGNsYXNzZXMgZm9yIHVzZSBhbG9uZ3NpZGUgdGhlIGdyaWQgc3lzdGVtIGV0Yy5cbiAqIFBVU0guLi4uLi4uLi4uLi4uLi4uUHVzaCBjbGFzc2VzIGZvciBtYW5pcHVsYXRpbmcgZ3JpZHNcbiAqIFBVTEwuLi4uLi4uLi4uLi4uLi4uUHVsbCBjbGFzc2VzIGZvciBtYW5pcHVsYXRpbmcgZ3JpZHNcbiAqIEJSQU5ELi4uLi4uLi4uLi4uLi4uSGVscGVyIGNsYXNzIHRvIGFwcGx5IGJyYW5kIHRyZWF0bWVudCB0byBlbGVtZW50c1xuICogSEVMUEVSLi4uLi4uLi4uLi4uLi5BIHNlcmllcyBvZiBoZWxwZXIgY2xhc3NlcyB0byB1c2UgYXJiaXRyYXJpbHlcbiAqIERFQlVHLi4uLi4uLi4uLi4uLi4uRW5hYmxlIHRvIGFkZCB2aXN1YWwgZmxhZ3MgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlc1xuICovXG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkV0FSTklOR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gKiBpbnVpdC5jc3MsIGJlaW5nIGFuIE9PIGZyYW1ld29yaywgd29ya3MgaW4ga2VlcGluZyB3aXRoIHRoZSBvcGVuL2Nsb3NlZFxuICogcHJpbmNpcGxlLiBUaGUgdmFyaWFibGVzIHlvdSBzZXQgcHJldmlvdXNseSBhcmUgbm93IGJlaW5nIHVzZWQgdGhyb3VnaG91dFxuICogaW51aXQuY3NzIHRvIHN0eWxlIGV2ZXJ5dGhpbmcgd2UgbmVlZCBmb3IgYSBiYXNlLiBBbnkgY3VzdG9tIHN0eWxlcyBTSE9VTERcbiAqIE5PVCBiZSBhZGRlZCBvciBtb2RpZmllZCBpbiBpbnVpdC5jc3MgZGlyZWN0bHksIGJ1dCBhZGRlZCB2aWEgeW91ciB0aGVtZVxuICogc3R5bGVzaGVldCBhcyBwZXIgdGhlIG9wZW4vY2xvc2VkIHByaW5jaXBsZTpcbiAqXG4gKiBjc3N3aXphcmRyeS5jb20vMjAxMi8wNi90aGUtb3Blbi1jbG9zZWQtcHJpbmNpcGxlLWFwcGxpZWQtdG8tY3NzXG4gKlxuICogVHJ5IG5vdCB0byBlZGl0IGFueSBDU1MgYmV5b25kIHRoaXMgcG9pbnQ7IGlmIHlvdSBmaW5kIHlvdSBuZWVkIHRvIGRvIHNvXG4gKiBpdCBpcyBhIGZhaWxpbmcgb2YgdGhlIGZyYW1ld29yayBzbyBwbGVhc2UgdHdlZXQgYXQgQGludWl0Y3NzLlxuICovXG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkSU1QT1JUU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogR2VuZXJpYyB1dGlsaXR5IHN0eWxlcyBldGMuXG4gKi9cbkBpbXBvcnQgXCJkZWZhdWx0c1wiO1xuQGltcG9ydCBcImdlbmVyaWMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiZ2VuZXJpYy9ub3JtYWxpemVcIjtcbkBpbXBvcnQgXCJnZW5lcmljL3Jlc2V0XCI7XG5AaW1wb3J0IFwiZ2VuZXJpYy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImdlbmVyaWMvc2hhcmVkXCI7XG5cblxuXG5cblxuLyoqXG4gKiBCYXNlIHN0eWxlczsgdW5jbGFzc2VkIEhUTUwgZWxlbWVudHMgZXRjLlxuICovXG5AaW1wb3J0IFwiYmFzZS9tYWluXCI7XG5AaW1wb3J0IFwiYmFzZS9oZWFkaW5nc1wiO1xuQGltcG9ydCBcImJhc2UvcGFyYWdyYXBoc1wiO1xuQGltcG9ydCBcImJhc2Uvc21hbGxwcmludFwiO1xuQGltcG9ydCBcImJhc2UvcXVvdGVzXCI7XG5AaW1wb3J0IFwiYmFzZS9jb2RlXCI7XG5AaW1wb3J0IFwiYmFzZS9pbWFnZXNcIjtcbkBpbXBvcnQgXCJiYXNlL2xpc3RzXCI7XG5AaW1wb3J0IFwiYmFzZS90YWJsZXNcIjtcbkBpbXBvcnQgXCJiYXNlL2Zvcm1zXCI7XG5cblxuXG5cblxuLyoqXG4gKiBPYmplY3RzIGFuZCBhYnN0cmFjdGlvbnNcbiAqL1xuQGltcG9ydCBcIm9iamVjdHMvZ3JpZHNcIjtcbkBpbXBvcnQgXCJvYmplY3RzL2ZsZXhib3hcIjtcbkBpbXBvcnQgXCJvYmplY3RzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJvYmplY3RzL25hdlwiO1xuQGltcG9ydCBcIm9iamVjdHMvb3B0aW9uc1wiO1xuQGltcG9ydCBcIm9iamVjdHMvcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcIm9iamVjdHMvYnJlYWRjcnVtYlwiO1xuQGltcG9ydCBcIm9iamVjdHMvbWVkaWFcIjtcbkBpbXBvcnQgXCJvYmplY3RzL21hcmdpbmFsaWFcIjtcbkBpbXBvcnQgXCJvYmplY3RzL2lzbGFuZFwiO1xuQGltcG9ydCBcIm9iamVjdHMvYmxvY2stbGlzdFwiO1xuQGltcG9ydCBcIm9iamVjdHMvbWF0cml4XCI7XG5AaW1wb3J0IFwib2JqZWN0cy9zcGxpdFwiO1xuQGltcG9ydCBcIm9iamVjdHMvdGhpcy1vci10aGlzXCI7XG5AaW1wb3J0IFwib2JqZWN0cy9saW5rLWNvbXBsZXhcIjtcbkBpbXBvcnQgXCJvYmplY3RzL2ZseW91dFwiO1xuQGltcG9ydCBcIm9iamVjdHMvYXJyb3dzXCI7XG5AaW1wb3J0IFwib2JqZWN0cy9zcHJpdGVcIjtcbkBpbXBvcnQgXCJvYmplY3RzL2ljb24tdGV4dFwiO1xuQGltcG9ydCBcIm9iamVjdHMvYmVhdXRvbnNcIjtcbkBpbXBvcnQgXCJvYmplY3RzL2xvemVuZ2VzXCI7XG5AaW1wb3J0IFwib2JqZWN0cy9ydWxlc1wiO1xuQGltcG9ydCBcIm9iamVjdHMvc3RhdHNcIjtcbkBpbXBvcnQgXCJvYmplY3RzL2dyZXlib3hcIjtcblxuXG5cblxuXG4vKipcbiAqIFN0eWxlIHRydW1wczsgaGVscGVyIGFuZCBicmFuZCBjbGFzc2VzXG4gKi9cbkBpbXBvcnQgXCJnZW5lcmljL3dpZHRoc1wiO1xuQGltcG9ydCBcImdlbmVyaWMvcHVzaFwiO1xuQGltcG9ydCBcImdlbmVyaWMvcHVsbFwiO1xuQGltcG9ydCBcImdlbmVyaWMvYnJhbmRcIjtcbkBpbXBvcnQgXCJnZW5lcmljL2hlbHBlclwiO1xuQGltcG9ydCBcImdlbmVyaWMvZGVidWdcIjtcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJE1JWElOU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogQ3JlYXRlIGEgZnVsbHkgZm9ybWVkIHR5cGUgc3R5bGUgKHNpemluZyBhbmQgdmVydGljYWwgcmh5dGhtKSBieSBwYXNzaW5nIGluIGFcbiAqIHNpbmdsZSB2YWx1ZSwgZS5nLjpcbiAqXG4gICBgQGluY2x1ZGUgZm9udC1zaXplKDEwcHgpO2BcbiAqXG4gKiBUaGFua3MgdG8gQHJlZGNsb3YzciBmb3IgdGhlIGBsaW5lLWhlaWdodGAgU2FzczpcbiAqIHR3aXR0ZXIuY29tL3JlZGNsb3Yzci9zdGF0dXMvMjUwMzAxNTM5MzIxNzk4NjU3XG4gKi9cbkBtaXhpbiBmb250LXNpemUoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0OnRydWUpe1xuICAgIGZvbnQtc2l6ZTokZm9udC1zaXplO1xuICAgIGZvbnQtc2l6ZTooJGZvbnQtc2l6ZSAvICRiYXNlLWZvbnQtc2l6ZSkqMXJlbTtcbiAgICBAaWYgJGxpbmUtaGVpZ2h0ID09IHRydWV7XG4gICAgICAgIGxpbmUtaGVpZ2h0OmNlaWwoJGZvbnQtc2l6ZSAvICRiYXNlLWxpbmUtaGVpZ2h0KSAqICgkYmFzZS1saW5lLWhlaWdodCAvICRmb250LXNpemUpO1xuICAgIH1cbn1cblxuXG4vKipcbiAqIFN0eWxlIGFueSBudW1iZXIgb2YgaGVhZGluZ3MgaW4gb25lIGZlbGwgc3dvb3AsIGUuZy46XG4gKlxuICAgLmZvb3tcbiAgICAgICBAaW5jbHVkZSBoZWFkaW5ncygxLCAzKXtcbiAgICAgICAgICAgY29sb3I6I0JBREE1NTtcbiAgICAgICB9XG4gICAgfVxuICpcbiAqIFdpdGggdGhhbmtzIHRvIEBsYXJfenp6LCBAcGFyYW5vaWRhLCBAcm93YW5tYW5uaW5nIGFuZCB1bHRpbWF0ZWx5XG4gKiBAdGhpZXJyeWxlbW91bGVjIGZvciByZWZpbmluZyBhbmQgaW1wcm92aW5nIG15IGluaXRpYWwgbWl4aW4uXG4gKi9cbkBtaXhpbiBoZWFkaW5ncygkZnJvbTogMSwgJHRvOiA2KXtcbiAgICAlYmFzZS1oZWFkaW5nIHtcbiAgICAgICAgQGNvbnRlbnRcbiAgICB9XG5cbiAgICBAaWYgJGZyb20gPj0gMSBhbmQgJHRvIDw9IDZ7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAkZnJvbSB0aHJvdWdoICR0b3tcbiAgICAgICAgICAgIGgjeyRpfXtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICViYXNlLWhlYWRpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyoqXG4gKiBDcmVhdGUgdmVuZG9yLXByZWZpeGVkIENTUyBpbiBvbmUgZ28sIGUuZy5cbiAqXG4gICBgQGluY2x1ZGUgdmVuZG9yKGJvcmRlci1yYWRpdXMsIDRweCk7YFxuICpcbiAqL1xuQG1peGluIHZlbmRvcigkcHJvcGVydHksICR2YWx1ZS4uLil7XG4gICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06JHZhbHVlO1xuICAgICAgIC1tb3otI3skcHJvcGVydHl9OiR2YWx1ZTtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTokdmFsdWU7XG4gICAgICAgICAtby0jeyRwcm9wZXJ0eX06JHZhbHVlO1xuICAgICAgICAgICAgI3skcHJvcGVydHl9OiR2YWx1ZTtcbn1cblxuXG4vKipcbiAqIENyZWF0ZSBDU1Mga2V5ZnJhbWUgYW5pbWF0aW9ucyBmb3IgYWxsIHZlbmRvcnMgaW4gb25lIGdvLCBlLmcuOlxuICpcbiAgIC5mb297XG4gICAgICAgQGluY2x1ZGUgdmVuZG9yKGFuaW1hdGlvbiwgc2hyaW5rIDNzKTtcbiAgIH1cblxuICAgQGluY2x1ZGUga2V5ZnJhbWUoc2hyaW5rKXtcbiAgICAgICBmcm9te1xuICAgICAgICAgICBmb250LXNpemU6NWVtO1xuICAgICAgIH1cbiAgIH1cbiAqXG4gKiBDb3VydGVzeSBvZiBAaW50ZWdyYWxpc3Q6IHR3aXR0ZXIuY29tL2ludGVncmFsaXN0L3N0YXR1cy8yNjA0ODQxMTUzMTU0Mzc1NjlcbiAqL1xuQG1peGluIGtleWZyYW1lICgkYW5pbWF0aW9uLW5hbWUpe1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAkYW5pbWF0aW9uLW5hbWV7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEAtbW96LWtleWZyYW1lcyAkYW5pbWF0aW9uLW5hbWV7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEAtbXMta2V5ZnJhbWVzICRhbmltYXRpb24tbmFtZXtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQC1vLWtleWZyYW1lcyAkYW5pbWF0aW9uLW5hbWV7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgJGFuaW1hdGlvbi1uYW1le1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cblxuLyoqXG4gKiBGb3JjZSBvdmVybHkgbG9uZyBzcGFucyBvZiB0ZXh0IHRvIHRydW5jYXRlLCBlLmcuOlxuICpcbiAgIGBAaW5jbHVkZSB0cnVuY2F0ZSgxMDAlKTtgXG4gKlxuICogV2hlcmUgYCR0cnVuY2F0aW9uLWJvdW5kYXJ5YCBpcyBhIHVuaXRlZCBtZWFzdXJlbWVudC5cbiAqL1xuQG1peGluIHRydW5jYXRlKCR0cnVuY2F0aW9uLWJvdW5kYXJ5KXtcbiAgICBtYXgtd2lkdGg6JHRydW5jYXRpb24tYm91bmRhcnk7XG4gICAgd2hpdGUtc3BhY2U6bm93cmFwO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO1xufVxuXG5cbi8qKlxuICogQ1NTIGFycm93cyEhISBCdXQuLi4gYmVmb3JlIHlvdSByZWFkIG9uLCB5b3UgbWlnaHQgd2FudCB0byBncmFiIGEgY29mZmVlLi4uXG4gKlxuICogVGhpcyBtaXhpbiBjcmVhdGVzIGEgQ1NTIGFycm93IG9uIGEgZ2l2ZW4gZWxlbWVudC4gV2UgY2FuIGhhdmUgdGhlIGFycm93XG4gKiBhcHBlYXIgaW4gb25lIG9mIDEyIGxvY2F0aW9ucywgdGh1czpcbiAqXG4gKiAgICAgICAwMSAgICAwMiAgICAwM1xuICogICAgKy0tLS0tLS0tLS0tLS0tLS0tLStcbiAqIDEyIHwgICAgICAgICAgICAgICAgICB8IDA0XG4gKiAgICB8ICAgICAgICAgICAgICAgICAgfFxuICogMTEgfCAgICAgICAgICAgICAgICAgIHwgMDVcbiAqICAgIHwgICAgICAgICAgICAgICAgICB8XG4gKiAxMCB8ICAgICAgICAgICAgICAgICAgfCAwNlxuICogICAgKy0tLS0tLS0tLS0tLS0tLS0tLStcbiAqICAgICAgIDA5ICAgIDA4ICAgIDA3XG4gKlxuICogWW91IHBhc3MgdGhpcyBwb3NpdGlvbiBpbiBhbG9uZyB3aXRoIGEgZGVzaXJlZCBhcnJvdyBjb2xvciBhbmQgb3B0aW9uYWxcbiAqIGJvcmRlciBjb2xvciwgZm9yIGV4YW1wbGU6XG4gKlxuICogYEBpbmNsdWRlIGFycm93KHRvcCwgbGVmdCwgcmVkKWBcbiAqXG4gKiBmb3IganVzdCBhIHNpbmdsZSwgcmVkIGFycm93LCBvcjpcbiAqXG4gKiBgQGluY2x1ZGUgYXJyb3coYm90dG9tLCBjZW50ZXIsIHJlZCwgYmxhY2spYFxuICpcbiAqIHdoaWNoIHdpbGwgY3JlYXRlIGEgcmVkIHRyaWFuZ2xlIHdpdGggYSBibGFjayBib3JkZXIgd2hpY2ggc2l0cyBhdCB0aGUgYm90dG9tXG4gKiBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuIENhbGwgdGhlIG1peGluIHRodXM6XG4gKlxuICAgLmZvb3tcbiAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNCQURBNTU7XG4gICAgICAgYm9yZGVyOjFweCBzb2xpZCAjQUNFO1xuICAgICAgIEBpbmNsdWRlIGFycm93KHRvcCwgbGVmdCwgI0JBREE1NSwgI0FDRSk7XG4gICB9XG4gKlxuICovXG5AbWl4aW4gYXJyb3coJGFycm93LWVkZ2UsICRhcnJvdy1sb2NhdGlvbiwgJGFycm93LWNvbG9yLCAkYm9yZGVyLWNvbG9yOiAkYXJyb3ctY29sb3Ipe1xuXG4gICAgQGlmICRhcnJvdy1lZGdlID09IHRvcHtcblxuICAgICAgICBAZXh0ZW5kICVhcnJvdy0tdG9wO1xuXG4gICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjokYm9yZGVyLWNvbG9yIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiRhcnJvdy1jb2xvciFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJGFycm93LWxvY2F0aW9uID09IGxlZnR7XG4gICAgICAgICAgICBAZXh0ZW5kICVhcnJvdy0tbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkYXJyb3ctbG9jYXRpb24gPT0gY2VudGVye1xuICAgICAgICAgICAgQGV4dGVuZCAlYXJyb3ctLWNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkYXJyb3ctbG9jYXRpb24gPT0gcmlnaHR7XG4gICAgICAgICAgICBAZXh0ZW5kICVhcnJvdy0tcmlnaHQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpZiAkYXJyb3ctZWRnZSA9PSByaWdodHtcblxuICAgICAgICBAZXh0ZW5kICVhcnJvdy0tZmFyO1xuXG4gICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6JGJvcmRlci1jb2xvciFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6JGFycm93LWNvbG9yIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkYXJyb3ctbG9jYXRpb24gPT0gdG9we1xuICAgICAgICAgICAgQGV4dGVuZCAlYXJyb3ctLXVwcGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRhcnJvdy1sb2NhdGlvbiA9PSBjZW50ZXJ7XG4gICAgICAgICAgICBAZXh0ZW5kICVhcnJvdy0tbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRhcnJvdy1sb2NhdGlvbiA9PSBib3R0b217XG4gICAgICAgICAgICBAZXh0ZW5kICVhcnJvdy0tbG93ZXI7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIEBpZiAkYXJyb3ctZWRnZSA9PSBib3R0b217XG5cbiAgICAgICAgQGV4dGVuZCAlYXJyb3ctLWJvdHRvbTtcblxuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6JGJvcmRlci1jb2xvciFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjokYXJyb3ctY29sb3IhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRhcnJvdy1sb2NhdGlvbiA9PSBsZWZ0e1xuICAgICAgICAgICAgQGV4dGVuZCAlYXJyb3ctLWxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJGFycm93LWxvY2F0aW9uID09IGNlbnRlcntcbiAgICAgICAgICAgIEBleHRlbmQgJWFycm93LS1jZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJGFycm93LWxvY2F0aW9uID09IHJpZ2h0e1xuICAgICAgICAgICAgQGV4dGVuZCAlYXJyb3ctLXJpZ2h0O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAaWYgJGFycm93LWVkZ2UgPT0gbGVmdHtcblxuICAgICAgICBAZXh0ZW5kICVhcnJvdy0tbmVhcjtcblxuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjokYm9yZGVyLWNvbG9yIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6JGFycm93LWNvbG9yIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkYXJyb3ctbG9jYXRpb24gPT0gdG9we1xuICAgICAgICAgICAgQGV4dGVuZCAlYXJyb3ctLXVwcGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRhcnJvdy1sb2NhdGlvbiA9PSBjZW50ZXJ7XG4gICAgICAgICAgICBAZXh0ZW5kICVhcnJvdy0tbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRhcnJvdy1sb2NhdGlvbiA9PSBib3R0b217XG4gICAgICAgICAgICBAZXh0ZW5kICVhcnJvdy0tbG93ZXI7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG5cbi8qKlxuICogTWVkaWEgcXVlcnkgbWl4aW4uXG4gKlxuICogSXTigJlzIG5vdCBncmVhdCBwcmFjdGljZSB0byBkZWZpbmUgc29saWQgYnJlYWtwb2ludHMgdXAtZnJvbnQsIHByZWZlcnJpbmcgdG9cbiAqIG1vZGlmeSB5b3VyIGRlc2lnbiB3aGVuIGl0IG5lZWRzIGl0LCByYXRoZXIgdGhhbiBhc3N1bWluZyB5b3XigJlsbCB3YW50IGFcbiAqIGNoYW5nZSBhdCDigJhtb2JpbGXigJkuIEhvd2V2ZXIsIGFzIGludWl0LmNzcyBpcyByZXF1aXJlZCB0byB0YWtlIGEgaGFuZHMgb2ZmXG4gKiBhcHByb2FjaCB0byBkZXNpZ24gZGVjaXNpb25zLCB0aGlzIGlzIHRoZSBjbG9zZXN0IHdlIGNhbiBnZXQgdG8gYmFrZWQtaW5cbiAqIHJlc3BvbnNpdmVuZXNzLiBJdOKAmXMgZmxleGlibGUgZW5vdWdoIHRvIGFsbG93IHlvdSB0byBzZXQgeW91ciBvd24gYnJlYWtwb2ludHNcbiAqIGJ1dCBzb2xpZCBlbm91Z2ggdG8gYmUgZnJhbWV3b3JraWZpZWQuXG4gKlxuICogV2UgZGVmaW5lIHNvbWUgYnJvYWQgYnJlYWtwb2ludHMgaW4gb3VyIHZhcnMgZmlsZSB0aGF0IGFyZSBwaWNrZWQgdXAgaGVyZVxuICogZm9yIHVzZSBpbiBhIHNpbXBsZSBtZWRpYSBxdWVyeSBtaXhpbi4gT3VyIG9wdGlvbnMgYXJlOlxuICpcbiAqIHBhbG1cbiAqIGxhcFxuICogbGFwLWFuZC11cFxuICogcG9ydGFibGVcbiAqIGRlc2tcbiAqIGRlc2std2lkZVxuICpcbiAqIE5vdCB1c2luZyBhIG1lZGlhIHF1ZXJ5IHdpbGwsIG5hdHVyYWxseSwgc2VydmUgc3R5bGVzIHRvIGFsbCBkZXZpY2VzLlxuICpcbiAqIGBAaW5jbHVkZSBtZWRpYS1xdWVyeShwYWxtKXsgW3N0eWxlcyBoZXJlXSB9YFxuICpcbiAqIFdlIHdvcmsgb3V0IHlvdXIgZW5kIHBvaW50cyBmb3IgeW91OlxuICovXG4kcGFsbS1lbmQ6ICAgICAgICAgICAgICAkbGFwLXN0YXJ0IC0gMXB4O1xuJGxhcC1lbmQ6ICAgICAgICAgICAgICAgJGRlc2stc3RhcnQgLSAxcHg7XG5cbkBtaXhpbiBtZWRpYS1xdWVyeSgkbWVkaWEtcXVlcnkpe1xuXG4gICAgQGlmICRtZWRpYS1xdWVyeSA9PSBwYWxte1xuXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDokcGFsbS1lbmQpIHsgQGNvbnRlbnQ7IH1cblxuICAgIH1cblxuICAgIEBpZiAkbWVkaWEtcXVlcnkgPT0gbGFwe1xuXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDokbGFwLXN0YXJ0KSBhbmQgKG1heC13aWR0aDokbGFwLWVuZCkgeyBAY29udGVudDsgfVxuXG4gICAgfVxuXG4gICAgQGlmICRtZWRpYS1xdWVyeSA9PSBsYXAtYW5kLXVwe1xuXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDokbGFwLXN0YXJ0KSB7IEBjb250ZW50OyB9XG5cbiAgICB9XG5cbiAgICBAaWYgJG1lZGlhLXF1ZXJ5ID09IHBvcnRhYmxle1xuXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDokbGFwLWVuZCkgeyBAY29udGVudDsgfVxuXG4gICAgfVxuXG4gICAgQGlmICRtZWRpYS1xdWVyeSA9PSBkZXNre1xuXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDokZGVzay1zdGFydCkgeyBAY29udGVudDsgfVxuXG4gICAgfVxuXG4gICAgQGlmICRtZWRpYS1xdWVyeSA9PSBkZXNrLXdpZGV7XG5cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGVzay13aWRlLXN0YXJ0KSB7IEBjb250ZW50OyB9XG5cbiAgICB9XG5cbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHYyLjEuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxudmlkZW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLypcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRyZXNzIGBvdXRsaW5lYCBpbmNvbnNpc3RlbmN5IGJldHdlZW4gQ2hyb21lIGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5hOmZvY3VzIHtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbn1cblxuLypcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFR5cG9ncmFwaHlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLypcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzksIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLypcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgY29sb3I6ICMwMDA7XG59XG5cbi8qXG4gKiBDb3JyZWN0IGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcbiAgICBmb250LXNpemU6IDFlbTtcbn1cblxuLypcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgcHJlLWZvcm1hdHRlZCB0ZXh0IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLypcbiAqIFNldCBjb25zaXN0ZW50IHF1b3RlIHR5cGVzLlxuICovXG5cbnEge1xuICAgIHF1b3RlczogXCJcXDIwMUNcIiBcIlxcMjAxRFwiIFwiXFwyMDE4XCIgXCJcXDIwMTlcIjtcbn1cblxuLypcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbn1cblxuLypcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LlxuICovXG5cbmltZyB7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4vKlxuICogQ29ycmVjdCBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgOS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZpZ3VyZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaSA1LlxuICovXG5cbmZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qXG4gKiAxLiBDb3JyZWN0IGZvbnQgZmFtaWx5IG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCBmb250IHNpemUgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gICAgZm9udC1zaXplOiAxMDAlOyAvKiAyICovXG4gICAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLypcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIENocm9tZSwgU2FmYXJpIDUrLCBhbmQgSUUgOCsuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3ggNCsgYW5kIE9wZXJhLlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLypcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcbiAqIG9uIE9TIFguXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLypcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LlxuICogMi4gSW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvKiAyICovXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRSRVNFVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogQSBtb3JlIGNvbnNpZGVyZWQgcmVzZXQ7IG1vcmUgb2YgYSByZXN0YXJ0Li4uXG4gKiBBcyBwZXI6IGNzc3dpemFyZHJ5LmNvbS8yMDExLzEwL3Jlc2V0LXJlc3RhcnRlZFxuICovXG5cbkBpZiAkZ2xvYmFsLWJvcmRlci1ib3ggPT0gdHJ1ZXtcbiAgICAvKipcbiAgICAqIExldOKAmXMgbWFrZSB0aGUgYm94IG1vZGVsIGFsbCBuaWNlLCBzaGFsbCB3ZS4uLj9cbiAgICAqL1xuICAgICp7XG4gICAgICAgICYsXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgICAgQGluY2x1ZGUgdmVuZG9yKGJveC1zaXppbmcsIGJvcmRlci1ib3gpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSB1c3VhbC4uLlxuICovXG5oMSxoMixoMyxoNCxoNSxoNixcbnAsYmxvY2txdW90ZSxwcmUsXG5kbCxkZCxvbCx1bCxcbmZvcm0sZmllbGRzZXQsbGVnZW5kLFxudGFibGUsdGgsdGQsY2FwdGlvbixcbmhye1xuICAgIG1hcmdpbjowO1xuICAgIHBhZGRpbmc6MDtcbn1cblxuLyoqXG4gKiBHaXZlIGEgaGVscCBjdXJzb3IgdG8gZWxlbWVudHMgdGhhdCBnaXZlIGV4dHJhIGluZm8gb24gYDpob3ZlcmAuXG4gKi9cbmFiYnJbdGl0bGVdLGRmblt0aXRsZV17XG4gICAgY3Vyc29yOmhlbHA7XG59XG5cbi8qKlxuICogUmVtb3ZlIHVuZGVybGluZXMgZnJvbSBwb3RlbnRpYWxseSB0cm91Ymxlc29tZSBlbGVtZW50cy5cbiAqL1xudSxpbnN7XG4gICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG59XG5cbi8qKlxuICogQXBwbHkgZmF1eCB1bmRlcmxpbmUgdmlhIGBib3JkZXItYm90dG9tYC5cbiAqL1xuaW5ze1xuICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkO1xufVxuXG4vKipcbiAqIFNvIHRoYXQgYGFsdGAgdGV4dCBpcyB2aXN1YWxseSBvZmZzZXQgaWYgaW1hZ2VzIGRvbuKAmXQgbG9hZC5cbiAqL1xuaW1ne1xuICAgIGZvbnQtc3R5bGU6aXRhbGljO1xufVxuXG4vKipcbiAqIEdpdmUgZm9ybSBlbGVtZW50cyBzb21lIGN1cnNvciBpbnRlcmFjdGlvbnMuLi5cbiAqL1xubGFiZWwsXG5pbnB1dCxcbnRleHRhcmVhLFxuYnV0dG9uLFxuc2VsZWN0LFxub3B0aW9ue1xuICAgIGN1cnNvcjpwb2ludGVyO1xufVxuICAgIC50ZXh0LWlucHV0OmFjdGl2ZSxcbiAgICAudGV4dC1pbnB1dDpmb2N1cyxcbiAgICB0ZXh0YXJlYTphY3RpdmUsXG4gICAgdGV4dGFyZWE6Zm9jdXN7XG4gICAgICAgIGN1cnNvcjp0ZXh0O1xuICAgICAgICBvdXRsaW5lOm5vbmU7XG4gICAgfVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ0xFQVJGSVhcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIE1pY3JvIGNsZWFyZml4LCBhcyBwZXI6IGNzcy0xMDEub3JnL2FydGljbGVzL2NsZWFyZml4L2xhdGVzdC1uZXctY2xlYXJmaXgtc28tZmFyLnBocFxuICogRXh0ZW5kIHRoZSBjbGVhcmZpeCBjbGFzcyB3aXRoIFNhc3MgdG8gYXZvaWQgdGhlIGAuY2ZgIGNsYXNzIGFwcGVhcmluZyBvdmVyXG4gKiBhbmQgb3ZlciBpbiB5b3VyIG1hcmt1cC5cbiAqL1xuLmNme1xuICAgICY6YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgICAgZGlzcGxheTp0YWJsZTtcbiAgICAgICAgY2xlYXI6Ym90aDtcbiAgICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRTSEFSRURcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFdoZXJlIGBtYXJnaW4tYm90dG9tYCBpcyBjb25jZXJuZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGVcbiAqIGJhc2UgbGluZS1oZWlnaHQuIFRoaXMgYWxsb3dzIHVzIHRvIGtlZXAgYSBjb25zaXN0ZW50IHZlcnRpY2FsIHJoeXRobS5cbiAqIEFzIHBlcjogY3Nzd2l6YXJkcnkuY29tLzIwMTIvMDYvc2luZ2xlLWRpcmVjdGlvbi1tYXJnaW4tZGVjbGFyYXRpb25zXG4gKi9cbi8qKlxuICogQmFzZSBlbGVtZW50c1xuICovXG5oMSxoMixoMyxoNCxoNSxoNixoZ3JvdXAsXG51bCxvbCxkbCxcbmJsb2NrcXVvdGUscCxhZGRyZXNzLFxudGFibGUsXG5maWVsZHNldCxmaWd1cmUsXG5wcmUsXG4vKipcbiAqIE9iamVjdHMgYW5kIGFic3RyYWN0aW9uc1xuICovXG4lc2Fzcy1tYXJnaW4tYm90dG9tLFxuLm1lZGlhLFxuLmlzbGFuZCxcbi5pc2xldHtcbiAgICBtYXJnaW4tYm90dG9tOiRiYXNlLXNwYWNpbmctdW5pdDtcbiAgICBtYXJnaW4tYm90dG9tOigkYmFzZS1zcGFjaW5nLXVuaXQgLyAkYmFzZS1mb250LXNpemUpKjFyZW07XG5cbiAgICAuaXNsZXQgJntcbiAgICAgICAgbWFyZ2luLWJvdHRvbTokYmFzZS1zcGFjaW5nLXVuaXQgLyAyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOigoJGJhc2Utc3BhY2luZy11bml0IC8gJGJhc2UtZm9udC1zaXplKSAvIDIpKjFyZW07XG4gICAgfVxufVxuXG5cbi8qKlxuICogRG91YmxlZCB1cCBgbWFyZ2luLWJvdHRvbWAgaGVscGVyIGNsYXNzLlxuICovXG4ubGFuZG1hcmt7XG4gICAgbWFyZ2luLWJvdHRvbToyICogJGJhc2Utc3BhY2luZy11bml0O1xuICAgIG1hcmdpbi1ib3R0b206KDIgKiAkYmFzZS1zcGFjaW5nLXVuaXQgLyAkYmFzZS1mb250LXNpemUpKjFyZW07XG59XG5cblxuLyoqXG4gKiBgaHJgIGVsZW1lbnRzIG9ubHkgdGFrZSB1cCBhIGZldyBwaXhlbHMsIHNvIHdlIG5lZWQgdG8gZ2l2ZSB0aGVtIHNwZWNpYWxcbiAqIHRyZWF0bWVudCByZWdhcmRpbmcgdmVydGljYWwgcmh5dGhtLlxuICovXG5ocntcbiAgICBtYXJnaW4tYm90dG9tOiRiYXNlLXNwYWNpbmctdW5pdCAtIDJweDtcbiAgICBtYXJnaW4tYm90dG9tOigoJGJhc2Utc3BhY2luZy11bml0IC0gMnB4KSAvICRiYXNlLWZvbnQtc2l6ZSkqMXJlbTtcbn1cblxuXG4vKipcbiAqIFdoZXJlIGBtYXJnaW4tbGVmdGAgaXMgY29uY2VybmVkIHdlIHdhbnQgdG8gdHJ5IGFuZCBpbmRlbnQgY2VydGFpbiBlbGVtZW50c1xuICogYnkgYSBjb25zaXN0ZW50IGFtb3VudC4gRGVmaW5lIHRoYXQgYW1vdW50IG9uY2UsIGhlcmUuXG4gKi9cbnVsLG9sLGRke1xuICAgIG1hcmdpbi1sZWZ0OjIgKiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG4gICAgbWFyZ2luLWxlZnQ6KDIgKiAkYmFzZS1zcGFjaW5nLXVuaXQgLyAkYmFzZS1mb250LXNpemUpKjFyZW07XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRNQUlOXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaHRtbHtcbiAgICBmb250OiN7KCRiYXNlLWZvbnQtc2l6ZS8xNnB4KSoxZW19LyN7JGxpbmUtaGVpZ2h0LXJhdGlvfSAkYmFzZS1mb250LWZhbWlseTtcbiAgICBvdmVyZmxvdy15OnNjcm9sbDtcbiAgICBtaW4taGVpZ2h0OjEwMCU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRIRUFESU5HU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogQXMgcGVyOiBjc3N3aXphcmRyeS5jb20vMjAxMi8wMi9wcmFnbWF0aWMtcHJhY3RpY2FsLWZvbnQtc2l6aW5nLWluLWNzc1xuICpcbiAqIFdoZW4gd2UgZGVmaW5lIGEgaGVhZGluZyB3ZSBhbHNvIGRlZmluZSBhIGNvcnJlc3BvbmRpbmcgY2xhc3MgdG8gZ28gd2l0aCBpdC5cbiAqIFRoaXMgYWxsb3dzIHVzIHRvIGFwcGx5LCBzYXksIGBjbGFzcz1hbHBoYWAgdG8gYSBgaDNgOyBhIGRvdWJsZS1zdHJhbmRlZFxuICogaGVhZGluZyBoaWVyYXJjaHkuXG4gKi9cbmgxLC5hbHBoYXtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGgxLXNpemUpO1xufVxuaDIsLmJldGF7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRoMi1zaXplKTtcbn1cbmgzLC5nYW1tYXtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGgzLXNpemUpO1xufVxuaDQsLmRlbHRhe1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDQtc2l6ZSk7XG59XG5oNSwuZXBzaWxvbntcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGg1LXNpemUpO1xufVxuaDYsLnpldGF7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRoNi1zaXplKTtcbn1cblxuXG4vKipcbiAqIEhlYWRpbmcgZ3JvdXBzIGFuZCBnZW5lcmljIGFueS1oZWFkaW5nIGNsYXNzLlxuICogVG8gdGFyZ2V0IGFueSBoZWFkaW5nIG9mIGFueSBsZXZlbCBzaW1wbHkgYXBwbHkgYSBjbGFzcyBvZiBgLmhOYCwgZS5nLjpcbiAqXG4gICA8aGdyb3VwPlxuICAgICAgIDxoMSBjbGFzcz1oTj5pbnVpdC5jc3M8L2gxPlxuICAgICAgIDxoMiBjbGFzcz1oTj5CZXN0LiBGcmFtZXdvcmsuIEV2ZXIhPC9oMj5cbiAgIDwvaGdyb3VwPlxuICpcbiAqL1xuLmhOe1xufVxuaGdyb3VwIC5oTntcbiAgICBtYXJnaW4tYm90dG9tOjA7XG59XG5cblxuLyoqXG4gKiBBIHNlcmllcyBvZiBjbGFzc2VzIGZvciBzZXR0aW5nIG1hc3NpdmUgdHlwZTsgZm9yIHVzZSBpbiBoZXJvZXMsIG1hc3RoZWFkcyxcbiAqIHByb21vcywgZXRjLlxuICovXG4uZ2lnYXtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGdpZ2Etc2l6ZSk7XG59XG4ubWVnYXtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJG1lZ2Etc2l6ZSk7XG59XG4ua2lsb3tcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGtpbG8tc2l6ZSk7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRQQVJBR1JBUEhTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBUaGUgYC5sZWRlYCBjbGFzcyBpcyB1c2VkIHRvIG1ha2UgdGhlIGludHJvZHVjdG9yeSB0ZXh0ICh1c3VhbGx5IGEgcGFyYWdyYXBoKVxuICogb2YgYSBkb2N1bWVudCBzbGlnaHRseSBsYXJnZXIuXG4gKi9cbi5sZWRlLFxuLmxlYWR7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRiYXNlLWZvbnQtc2l6ZSAqIDEuMTI1KTtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJFNNQUxMUFJJTlRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIEEgc2VyaWVzIG9mIGNsYXNzZXMgZm9yIHNldHRpbmcgdGlueSB0eXBlOyBmb3IgdXNlIGluIHNtYWxscHJpbnQgZXRjLlxuICovXG4uc21hbGxwcmludCxcbi5taWxsaXtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJG1pbGxpLXNpemUpO1xufVxuLm1pY3Jve1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkbWljcm8tc2l6ZSk7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRRVU9URVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIElmIEVuZ2xpc2ggcXVvdGVzIGFyZSBzZXQgaW4gYF92YXJzLnNjc3NgLCBkZWZpbmUgdGhlbSBoZXJlLlxuICovXG5AaWYgJGVuZ2xpc2gtcXVvdGVzID09IHRydWV7XG4gICAgJG9wZW4tcXVvdGU6ICAgIFxcMjAxQyAhZ2xvYmFsO1xuICAgICRjbG9zZS1xdW90ZTogICBcXDIwMUQgIWdsb2JhbDtcbn1cblxuXG4vKipcbiAqIEJpZyB1cCBAYm9ibGV0OiBodG1sNWRvY3Rvci5jb20vYmxvY2txdW90ZS1xLWNpdGVcbiAqL1xuXG4vKipcbiAqIElubGluZSBxdW90ZXMuXG4gKi9cbnF7XG4gICAgcXVvdGVzOlwiXFwyMDE4XCIgXCJcXDIwMTlcIiBcIiN7JG9wZW4tcXVvdGV9XCIgXCIjeyRjbG9zZS1xdW90ZX1cIjtcblxuICAgICY6YmVmb3Jle1xuICAgICAgICBjb250ZW50OlwiXFwyMDE4XCI7XG4gICAgICAgIGNvbnRlbnQ6b3Blbi1xdW90ZTtcbiAgICB9XG4gICAgJjphZnRlcntcbiAgICAgICAgY29udGVudDpcIlxcMjAxOVwiO1xuICAgICAgICBjb250ZW50OmNsb3NlLXF1b3RlO1xuICAgIH1cblxuICAgIHE6YmVmb3Jle1xuICAgICAgICBjb250ZW50OlwiXFwyMDFDXCI7XG4gICAgICAgIGNvbnRlbnQ6b3Blbi1xdW90ZTtcbiAgICB9XG4gICAgcTphZnRlcntcbiAgICAgICAgY29udGVudDpcIlxcMjAxRFwiO1xuICAgICAgICBjb250ZW50OmNsb3NlLXF1b3RlO1xuICAgIH1cbn1cblxuYmxvY2txdW90ZXtcbiAgICBxdW90ZXM6XCIjeyRvcGVuLXF1b3RlfVwiIFwiI3skY2xvc2UtcXVvdGV9XCI7XG5cbiAgICBwOmJlZm9yZXtcbiAgICAgICAgY29udGVudDpcIiN7JG9wZW4tcXVvdGV9XCI7XG4gICAgICAgIGNvbnRlbnQ6b3Blbi1xdW90ZTtcbiAgICB9XG4gICAgcDphZnRlcntcbiAgICAgICAgY29udGVudDpcIlwiO1xuICAgICAgICBjb250ZW50Om5vLWNsb3NlLXF1b3RlO1xuICAgIH1cbiAgICBwOmxhc3Qtb2YtdHlwZTphZnRlcntcbiAgICAgICAgY29udGVudDpcIiN7JGNsb3NlLXF1b3RlfVwiO1xuICAgICAgICBjb250ZW50OmNsb3NlLXF1b3RlO1xuICAgIH1cblxuICAgIHE6YmVmb3Jle1xuICAgICAgICBjb250ZW50OlwiXFwyMDE4XCI7XG4gICAgICAgIGNvbnRlbnQ6b3Blbi1xdW90ZTtcbiAgICB9XG4gICAgcTphZnRlcntcbiAgICAgICAgY29udGVudDpcIlxcMjAxOVwiO1xuICAgICAgICBjb250ZW50OmNsb3NlLXF1b3RlO1xuICAgIH1cbn1cblxuXG4vKipcbiAqXG4gICA8YmxvY2txdW90ZT5cbiAgICAgICA8cD5JbnNhbml0eTogZG9pbmcgdGhlIHNhbWUgdGhpbmcgb3ZlciBhbmQgb3ZlciBhZ2FpbiBhbmQgZXhwZWN0aW5nXG4gICAgICAgZGlmZmVyZW50IHJlc3VsdHMuPC9wPlxuICAgICAgIDxiIGNsYXNzPXNvdXJjZT5BbGJlcnQgRWluc3RlaW48L2I+XG4gICA8L2Jsb2NrcXVvdGU+XG4gKlxuICovXG5ibG9ja3F1b3Rle1xuICAgIC8qKlxuICAgICAqIC40ZW0gaXMgcm91Z2hseSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIG9wZW5pbmcg4oCcIHRoYXQgd2Ugd2lzaCB0byBoYW5nLlxuICAgICAqL1xuICAgIHRleHQtaW5kZW50Oi0wLjQxZW07XG5cbiAgICBwOmxhc3Qtb2YtdHlwZXtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTowO1xuICAgIH1cbn1cblxuLnNvdXJjZXtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIHRleHQtaW5kZW50OjA7XG5cbiAgICAmOmJlZm9yZXtcbiAgICAgICAgY29udGVudDpcIlxcMjAxNFwiO1xuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPREVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFVzZSBhbiBleHBsaWNpdCBmb250IHN0YWNrIHRvIGVuc3VyZSBicm93c2VycyByZW5kZXIgY29ycmVjdCBgbGluZS1oZWlnaHRgLlxuICovXG5wcmV7XG4gICAgb3ZlcmZsb3c6YXV0bztcbn1cbiAgICBwcmUgbWFya3tcbiAgICAgICAgYmFja2dyb3VuZDpub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZDtcbiAgICAgICAgY29sb3I6aW5oZXJpdDtcbiAgICB9XG5cblxuLyoqXG4gKiBBZGQgY29tbWVudHMgdG8geW91ciBjb2RlIGV4YW1wbGVzLCBlLmcuOlxuICpcbiAgIDxjb2RlPiZsdDsvZGl2Jmd0OzxzcGFuIGNsYXNzPWNvZGUtY29tbWVudD4mbHQ7IS0tIC93cmFwcGVyIC0tJmd0Ozwvc3Bhbj48L2NvZGU+XG4gKlxuICovXG4uY29kZS1jb21tZW50e1xuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIHRoaXMgc2V0dGluZyBpbiB5b3VyIHRoZW1lIHN0eWxlc2hlZXRcbiAgICAgKi9cbiAgICBvcGFjaXR5OjAuNzU7XG4gICAgZmlsdGVyOmFscGhhKG9wYWNpdHk9NzUpO1xufVxuXG5cbi8qKlxuICogWW91IGNhbiBhZGQgbGluZSBudW1iZXJzIHRvIHlvdXIgY29kZSBleGFtcGxlcyBidXQgYmUgd2FybmVkLCBpdCByZXF1aXJlc1xuICogc29tZSBwcmV0dHkgZnVua3kgbG9va2luZyBtYXJrdXAsIGUuZy46XG4gKlxuICAgPG9sIGNsYXNzPWxpbmUtbnVtYmVycz5cbiAgICAgICA8bGk+PGNvZGU+Lm5hdns8L2NvZGU+PC9saT5cbiAgICAgICA8bGk+PGNvZGU+ICAgIGxpc3Qtc3R5bGU6bm9uZTs8L2NvZGU+PC9saT5cbiAgICAgICA8bGk+PGNvZGU+ICAgIG1hcmdpbi1sZWZ0OjA7PC9jb2RlPjwvbGk+XG4gICAgICAgPGxpPjxjb2RlPn08L2NvZGU+PC9saT5cbiAgICAgICA8bGk+PGNvZGU+ICAgIC5uYXYgPiBsaSw8L2NvZGU+PC9saT5cbiAgICAgICA8bGk+PGNvZGU+ICAgICAgICAubmF2ID4gbGkgPiBhezwvY29kZT48L2xpPlxuICAgICAgIDxsaT48Y29kZT4gICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jazs8L2NvZGU+PC9saT5cbiAgICAgICA8bGk+PGNvZGU+ICAgICAgICAgICAqZGlzcGxheTppbmxpbmUtYmxvY2s7PC9jb2RlPjwvbGk+XG4gICAgICAgPGxpPjxjb2RlPiAgICAgICAgICAgIHpvb206MTs8L2NvZGU+PC9saT5cbiAgICAgICA8bGk+PGNvZGU+ICAgICAgICB9PC9jb2RlPjwvbGk+XG4gICA8L29sPlxuICpcbiAqIDEuIE1ha2UgdGhlIGxpc3QgbG9vayBsaWtlIGNvZGUuXG4gKiAyLiBHaXZlIHRoZSBsaXN0IGZsdXNoIG51bWJlcnMgd2l0aCBhIGxlYWRpbmcgemVyby5cbiAqIDMuIE1ha2Ugc3VyZSBsaW5lcyBvZiBjb2RlIGRvbuKAmXQgd3JhcC5cbiAqIDQuIEdpdmUgdGhlIGNvZGUgZm9ybSBieSBmb3JjaW5nIHRoZSBgY29kZWAgdG8gaG9ub3VyIHdoaXRlLXNwYWNlLlxuICovXG4ubGluZS1udW1iZXJze1xuICAgIGZvbnQtZmFtaWx5Om1vbm9zcGFjZSwgc2VyaWY7ICAgICAgICAgICAvKiBbMV0gKi9cbiAgICBsaXN0LXN0eWxlOmRlY2ltYWwtbGVhZGluZy16ZXJvIGluc2lkZTsgLyogWzJdICovXG4gICAgd2hpdGUtc3BhY2U6bm93cmFwOyAgICAgICAgICAgICAgICAgICAgIC8qIFszXSAqL1xuICAgIG92ZXJmbG93OmF1dG87ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbM10gKi9cbiAgICBtYXJnaW4tbGVmdDowO1xufVxuICAgIC5saW5lLW51bWJlcnMgY29kZXtcbiAgICAgICAgd2hpdGUtc3BhY2U6cHJlOyAgICAgICAgICAgICAgICAgICAgLyogWzRdICovXG4gICAgfVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkSU1BR0VTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBEZW1vOiBqc2ZpZGRsZS5uZXQvaW51aXRjc3MveU10dXJcbiAqL1xuLyoqXG4gKiBGbHVpZCBpbWFnZXMuXG4gKi9cbmltZ3tcbiAgICBtYXgtd2lkdGg6MTAwJTtcbn1cblxuXG4vKipcbiAqIE5vbi1mbHVpZCBpbWFnZXMgaWYgeW91IHNwZWNpZnkgYHdpZHRoYCBhbmQvb3IgYGhlaWdodGAgYXR0cmlidXRlcy5cbiAqL1xuaW1nW3dpZHRoXSxcbmltZ1toZWlnaHRde1xuICAgIG1heC13aWR0aDpub25lO1xufVxuXG5cbi8qKlxuICogUm91bmRlZCBpbWFnZXMuXG4gKi9cbi5pbWctLXJvdW5kIHsgYm9yZGVyLXJhZGl1czokYnJhbmQtcm91bmQ7IH1cblxuXG4vKipcbiAqIEltYWdlIHBsYWNlbWVudCB2YXJpYXRpb25zLlxuICovXG4uaW1nLS1yaWdodHtcbiAgICBmbG9hdDpyaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiRiYXNlLXNwYWNpbmctdW5pdDtcbiAgICBtYXJnaW4tbGVmdDokYmFzZS1zcGFjaW5nLXVuaXQ7XG59XG4uaW1nLS1sZWZ0e1xuICAgIGZsb2F0OmxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiRiYXNlLXNwYWNpbmctdW5pdDtcbiAgICBtYXJnaW4tYm90dG9tOiRiYXNlLXNwYWNpbmctdW5pdDtcbn1cbi5pbWctLWNlbnRlcntcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDphdXRvO1xuICAgIG1hcmdpbi1ib3R0b206JGJhc2Utc3BhY2luZy11bml0O1xuICAgIG1hcmdpbi1sZWZ0OmF1dG87XG59XG5cblxuLyoqXG4gKiBLZWVwIHlvdXIgaW1hZ2VzIG9uIHlvdXIgYmFzZWxpbmUuXG4gKlxuICogUGxlYXNlIG5vdGUsIHRoZXNlIHdpbGwgbm90IHdvcmsgdG9vIG5pY2VseSB3aXRoIGZsdWlkIGltYWdlcyBhbmQgd2lsbFxuICogZGlzdG9ydCB3aGVuIHJlc2l6ZWQgYmVsb3cgYSBjZXJ0YWluIHdpZHRoLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICovXG4uaW1nLS1zaG9ydHtcbiAgICBoZWlnaHQ6NSAqICRiYXNlLXNwYWNpbmctdW5pdDtcbn1cbi5pbWctLW1lZGl1bXtcbiAgICBoZWlnaHQ6MTAgKiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG59XG4uaW1nLS10YWxse1xuICAgIGhlaWdodDoxNSAqICRiYXNlLXNwYWNpbmctdW5pdDtcbn1cblxuXG4vKipcbiAqIEltYWdlcyBpbiBgZmlndXJlYCBlbGVtZW50cy5cbiAqL1xuZmlndXJlID4gaW1ne1xuICAgIGRpc3BsYXk6YmxvY2s7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRMSVNUU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogUmVtb3ZlIHZlcnRpY2FsIHNwYWNpbmcgZnJvbSBuZXN0ZWQgbGlzdHMuXG4gKi9cbmxpe1xuICAgID4gdWwsXG4gICAgPiBvbHtcbiAgICAgICAgIG1hcmdpbi1ib3R0b206MDtcbiAgICAgfVxufVxuXG4vKipcbiAqIEhhdmUgYSBudW1iZXJlZCBgdWxgIHdpdGhvdXQgdGhlIHNlbWFudGljcyBpbXBsaWVkIGJ5IHVzaW5nIGFuIGBvbGAuXG4gKi9cbi8qdWwqLy5udW1iZXJlZC1saXN0e1xuICAgIGxpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkVEFCTEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBXZSBoYXZlIGEgbG90IGF0IG91ciBkaXNwb3NhbCBmb3IgbWFraW5nIHZlcnkgY29tcGxleCB0YWJsZSBjb25zdHJ1Y3RzLCBlLmcuOlxuICpcbiAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLS1ib3JkZXJlZCAgdGFibGUtLXN0cmlwZWQgIHRhYmxlLS1kYXRhXCI+XG4gICAgICAgPGNvbGdyb3VwPlxuICAgICAgICAgICA8Y29sIGNsYXNzPXQxMD5cbiAgICAgICAgICAgPGNvbCBjbGFzcz10MTA+XG4gICAgICAgICAgIDxjb2wgY2xhc3M9dDEwPlxuICAgICAgICAgICA8Y29sPlxuICAgICAgIDwvY29sZ3JvdXA+XG4gICAgICAgPHRoZWFkPlxuICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICA8dGggY29sc3Bhbj0zPkZvbzwvdGg+XG4gICAgICAgICAgICAgICA8dGg+QmFyPC90aD5cbiAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgPHRoPkxvcmVtPC90aD5cbiAgICAgICAgICAgICAgIDx0aD5JcHN1bTwvdGg+XG4gICAgICAgICAgICAgICA8dGggY2xhc3M9bnVtZXJpY2FsPkRvbG9yPC90aD5cbiAgICAgICAgICAgICAgIDx0aD5TaXQ8L3RoPlxuICAgICAgICAgICA8L3RyPlxuICAgICAgIDwvdGhlYWQ+XG4gICAgICAgPHRib2R5PlxuICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICA8dGggcm93c3Bhbj0zPlNpdDwvdGg+XG4gICAgICAgICAgICAgICA8dGQ+RG9sb3I8L3RkPlxuICAgICAgICAgICAgICAgPHRkIGNsYXNzPW51bWVyaWNhbD4wMy43ODg8L3RkPlxuICAgICAgICAgICAgICAgPHRkPkxvcmVtPC90ZD5cbiAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgPHRkPkRvbG9yPC90ZD5cbiAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1udW1lcmljYWw+MzIuMjEwPC90ZD5cbiAgICAgICAgICAgICAgIDx0ZD5Mb3JlbTwvdGQ+XG4gICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgIDx0ZD5Eb2xvcjwvdGQ+XG4gICAgICAgICAgICAgICA8dGQgY2xhc3M9bnVtZXJpY2FsPjQ3Ljc5NzwvdGQ+XG4gICAgICAgICAgICAgICA8dGQ+TG9yZW08L3RkPlxuICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICA8dGggcm93c3Bhbj0yPlNpdDwvdGg+XG4gICAgICAgICAgICAgICA8dGQ+RG9sb3I8L3RkPlxuICAgICAgICAgICAgICAgPHRkIGNsYXNzPW51bWVyaWNhbD4wOS42NDA8L3RkPlxuICAgICAgICAgICAgICAgPHRkPkxvcmVtPC90ZD5cbiAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgPHRkPkRvbG9yPC90ZD5cbiAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1udW1lcmljYWw+MTIuMTE3PC90ZD5cbiAgICAgICAgICAgICAgIDx0ZD5Mb3JlbTwvdGQ+XG4gICAgICAgICAgIDwvdHI+XG4gICAgICAgPC90Ym9keT5cbiAgIDwvdGFibGU+XG4gKlxuICovXG50YWJsZXtcbiAgICB3aWR0aDoxMDAlO1xufVxudGgsXG50ZHtcbiAgICBwYWRkaW5nOiRiYXNlLXNwYWNpbmctdW5pdCAvIDQ7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo0ODBweCl7XG4gICAgICAgIHBhZGRpbmc6JGhhbGYtc3BhY2luZy11bml0O1xuICAgIH1cbiAgICB0ZXh0LWFsaWduOmxlZnQ7XG59XG5cblxuLyoqXG4gKiBDZWxsIGFsaWdubWVudHNcbiAqL1xuW2NvbHNwYW5de1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xufVxuW2NvbHNwYW49XCIxXCJde1xuICAgIHRleHQtYWxpZ246bGVmdDtcbn1cbltyb3dzcGFuXXtcbiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5bcm93c3Bhbj1cIjFcIl17XG4gICAgdmVydGljYWwtYWxpZ246dG9wO1xufVxuLm51bWVyaWNhbHtcbiAgICB0ZXh0LWFsaWduOnJpZ2h0O1xufVxuXG4vKipcbiAqIEluIHRoZSBIVE1MIGFib3ZlIHdlIHNlZSBzZXZlcmFsIGBjb2xgIGVsZW1lbnRzIHdpdGggY2xhc3NlcyB3aG9zZSBudW1iZXJzXG4gKiByZXByZXNlbnQgYSBwZXJjZW50YWdlIHdpZHRoIGZvciB0aGF0IGNvbHVtbi4gV2UgbGVhdmUgb25lIGNvbHVtbiBmcmVlIG9mIGFcbiAqIGNsYXNzIHNvIHRoYXQgY29sdW1uIGNhbiBzb2FrIHVwIHRoZSBlZmZlY3RzIG9mIGFueSBhY2NpZGVudGFsIGJyZWFrYWdlIGluXG4gKiB0aGUgdGFibGUuXG4gKi9cbi50NSAgICAgeyB3aWR0aDogNSUgfVxuLnQxMCAgICB7IHdpZHRoOjEwJSB9XG4udDEyICAgIHsgd2lkdGg6MTIuNSUgfSAgICAgLyogMS84ICovXG4udDE1ICAgIHsgd2lkdGg6MTUlIH1cbi50MjAgICAgeyB3aWR0aDoyMCUgfVxuLnQyNSAgICB7IHdpZHRoOjI1JSB9ICAgICAgIC8qIDEvNCAqL1xuLnQzMCAgICB7IHdpZHRoOjMwJSB9XG4udDMzICAgIHsgd2lkdGg6MzMuMzMzJSB9ICAgLyogMS8zICovXG4udDM1ICAgIHsgd2lkdGg6MzUlIH1cbi50MzcgICAgeyB3aWR0aDozNy41JSB9ICAgICAvKiAzLzggKi9cbi50NDAgICAgeyB3aWR0aDo0MCUgfVxuLnQ0NSAgICB7IHdpZHRoOjQ1JSB9XG4udDUwICAgIHsgd2lkdGg6NTAlIH0gICAgICAgLyogMS8yICovXG4udDU1ICAgIHsgd2lkdGg6NTUlIH1cbi50NjAgICAgeyB3aWR0aDo2MCUgfVxuLnQ2MiAgICB7IHdpZHRoOjYyLjUlIH0gICAgIC8qIDUvOCAqL1xuLnQ2NSAgICB7IHdpZHRoOjY1JSB9XG4udDY2ICAgIHsgd2lkdGg6NjYuNjY2JSB9ICAgLyogMi8zICovXG4udDcwICAgIHsgd2lkdGg6NzAlIH1cbi50NzUgICAgeyB3aWR0aDo3NSUgfSAgICAgICAvKiAzLzQqL1xuLnQ4MCAgICB7IHdpZHRoOjgwJSB9XG4udDg1ICAgIHsgd2lkdGg6ODUlIH1cbi50ODcgICAgeyB3aWR0aDo4Ny41JSB9ICAgICAvKiA3LzggKi9cbi50OTAgICAgeyB3aWR0aDo5MCUgfVxuLnQ5NSAgICB7IHdpZHRoOjk1JSB9XG5cblxuLyoqXG4gKiBCb3JkZXJlZCB0YWJsZXNcbiAqL1xuLnRhYmxlLS1ib3JkZXJlZHtcblxuICAgIHRoLFxuICAgIHRke1xuICAgICAgICBib3JkZXI6MXB4IHNvbGlkICRiYXNlLXVpLWNvbG9yO1xuXG4gICAgICAgICY6ZW1wdHl7XG4gICAgICAgICAgICBib3JkZXI6bm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoZWFkIHRyOmxhc3QtY2hpbGQgdGh7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6MnB4O1xuICAgIH1cblxuICAgIHRib2R5IHRyIHRoOmxhc3Qtb2YtdHlwZXtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOjJweDtcbiAgICB9XG59XG5cblxuLyoqXG4gKiBTdHJpcGVkIHRhYmxlc1xuICovXG4udGFibGUtLXN0cmlwZWR7XG5cbiAgICB0Ym9keSB0cjpudGgtb2YtdHlwZShvZGQpe1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmM7IC8qIE92ZXJyaWRlIHRoaXMgY29sb3IgaW4geW91ciB0aGVtZSBzdHlsZXNoZWV0ICovXG4gICAgfVxufVxuXG5cbi8qKlxuICogRGF0YSB0YWJsZVxuICovXG4udGFibGUtLWRhdGF7XG4gICAgZm9udDoxMnB4LzEuNSBzYW5zLXNlcmlmO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkRk9STVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqXG4gKiBEZW1vOiBqc2ZpZGRsZS5uZXQvaW51aXRjc3MvTWhISFVcbiAqXG4gKi9cbmZpZWxkc2V0e1xuICAgIHBhZGRpbmc6JGJhc2Utc3BhY2luZy11bml0O1xufVxuXG5cbi8qKlxuICogVGV4dCBpbnB1dHNcbiAqXG4gKiBJbnN0ZWFkIG9mIGEgYFt0eXBlXWAgc2VsZWN0b3IgZm9yIGVhY2gga2luZCBvZiBmb3JtIGlucHV0LCB3ZSBqdXN0IHVzZSBhXG4gKiBjbGFzcyB0byB0YXJnZXQgYW55L2V2ZXJ5IG9uZSwgZS5nLjpcbiAgIDxpbnB1dCB0eXBlPXRleHQgY2xhc3M9dGV4dC1pbnB1dD5cbiAgIDxpbnB1dCB0eXBlPWVtYWlsIGNsYXNzPXRleHQtaW5wdXQ+XG4gICA8aW5wdXQgdHlwZT1wYXNzd29yZCBjbGFzcz10ZXh0LWlucHV0PlxuICpcbiAqL1xuLnRleHQtaW5wdXQsXG50ZXh0YXJlYXtcbiAgICAvKipcbiAgICAgKiBTdHlsZSB0aGVzZSB2aWEgeW91ciB0aGVtZSBzdHlsZXNoZWV0LlxuICAgICAqL1xufVxuXG5cbi8qKlxuICogR3JvdXAgc2V0cyBvZiBmb3JtIGZpZWxkcyBpbiBhIGxpc3QsIGUuZy46XG4gKlxuICAgPHVsIGNsYXNzPWZvcm0tZmllbGRzPlxuICAgICAgIDxsaT5cbiAgICAgICAgICAgPGxhYmVsIC8+XG4gICAgICAgICAgIDxpbnB1dCAvPlxuICAgICAgIDwvbGk+XG4gICAgICAgPGxpPlxuICAgICAgICAgICA8bGFiZWwgLz5cbiAgICAgICAgICAgPHNlbGVjdCAvPlxuICAgICAgIDwvbGk+XG4gICAgICAgPGxpPlxuICAgICAgICAgICA8bGFiZWwgLz5cbiAgICAgICAgICAgPGlucHV0IC8+XG4gICAgICAgPC9saT5cbiAgIDwvdWw+XG4gKlxuICovXG4uZm9ybS1maWVsZHN7XG4gICAgbGlzdC1zdHlsZTpub25lO1xuICAgIG1hcmdpbjowO1xufVxuICAgIC5mb3JtLWZpZWxkcyA+IGxpe1xuICAgICAgICBAZXh0ZW5kICVzYXNzLW1hcmdpbi1ib3R0b207XG4gICAgfVxuICAgIC5mb3JtLWZpZWxkcyA+IGxpOmxhc3QtY2hpbGR7XG4gICAgICAgIG1hcmdpbi1ib3R0b206MDtcbiAgICB9XG5cblxuLyoqXG4gKiBMYWJlbHNcbiAqXG4gKiBEZWZpbmUgYSBgLmxhYmVsYCBjbGFzcyBhcyB3ZWxsIGFzIGEgYGxhYmVsYCBlbGVtZW50LiBUaGlzIG1lYW5zIHdlIGNhbiBhcHBseVxuICogbGFiZWwtbGlrZSBzdHlsaW5nIHRvIG1ldGEtbGFiZWxzIGZvciBncm91cHMgb2Ygb3B0aW9ucyB3aGVyZSBhIGBsYWJlbGBcbiAqIGVsZW1lbnQgaXMgbm90IHN1aXRhYmxlLCBlLmcuOlxuICpcbiAgIDxsaT5cbiAgICAgICA8c3BhbiBjbGFzcz1sYWJlbD5TZWxlY3QgYW4gb3B0aW9uIGJlbG93Ojwvc3Bhbj5cbiAgICAgICA8dWwgY2xhc3M9XCJtdWx0aS1saXN0ICBmb3VyLWNvbHNcIj5cbiAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgPGlucHV0IC8+IDxsYWJlbCAvPlxuICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICA8aW5wdXQgLz4gPGxhYmVsIC8+XG4gICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgIDxpbnB1dCAvPiA8bGFiZWwgLz5cbiAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgPGlucHV0IC8+IDxsYWJlbCAvPlxuICAgICAgICAgICA8L2xpPlxuICAgICAgIDwvdWw+XG4gICA8L2xpPlxuICpcbiAqL1xubGFiZWwsXG4ubGFiZWx7XG4gICAgZGlzcGxheTpibG9jaztcbn1cbiAgICAvKipcbiAgICAgKiBFeHRyYSBoZWxwIHRleHQgaW4gYGxhYmVsYHMsIGUuZy46XG4gICAgICpcbiAgICAgICA8bGFiZWw+Q2FyZCBudW1iZXIgPHNtYWxsIGNsYXNzPWFkZGl0aW9uYWw+Tm8gc3BhY2VzPC9zbWFsbD48L2xhYmVsPlxuICAgICAqXG4gICAgICovXG4gICAgLmFkZGl0aW9uYWx7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0Om5vcm1hbDtcbiAgICB9XG5cblxuLypcbiAqIEdyb3VwcyBvZiBjaGVja2JveGVzIGFuZCByYWRpb3MsIGUuZy46XG4gKlxuICAgPGxpPlxuICAgICAgIDx1bCBjbGFzcz1jaGVjay1saXN0PlxuICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICA8aW5wdXQgLz4gPGxhYmVsIC8+XG4gICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgIDxpbnB1dCAvPiA8bGFiZWwgLz5cbiAgICAgICAgICAgPC9saT5cbiAgICAgICA8L3VsPlxuICAgPC9saT5cbiAqXG4gKi9cbi5jaGVjay1saXN0e1xuICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICBtYXJnaW46MDtcbn1cbiAgICAvKlxuICAgICAqIExhYmVscyBpbiBjaGVjay1saXN0c1xuICAgICAqL1xuICAgIC5jaGVjay1sYWJlbCxcbiAgICAuY2hlY2stbGlzdCBsYWJlbCxcbiAgICAuY2hlY2stbGlzdCAubGFiZWx7XG4gICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgIH1cblxuXG4vKipcbiAqIFNwb2tlbiBmb3JtcyBhcmUgZm9yIGZvcm1zIHRoYXQgcmVhZCBsaWtlIHNwb2tlbiB3b3JkLCBlLmcuOlxuICpcbiAgIDxsaSBjbGFzcz1zcG9rZW4tZm9ybT5cbiAgICAgICBIZWxsbywgbXkgPGxhYmVsIGZvcj1zcG9rZW4tbmFtZT5uYW1lPC9sYWJlbD4gaXNcbiAgICAgICA8aW5wdXQgdHlwZT10ZXh0IGNsYXNzPXRleHQtaW5wdXQgaWQ9c3Bva2VuLW5hbWU+LiBNeSBob21lXG4gICAgICAgPGxhYmVsIGZvcj1jb3VudHJ5PmNvdW50cnk8L2xhYmVsPiBpc1xuICAgICAgIDxzZWxlY3QgaWQ9Y291bnRyeT5cbiAgICAgICAgICAgPG9wdGlvbj5VSzwvb3B0aW9uPlxuICAgICAgICAgICA8b3B0aW9uPlVTPC9vcHRpb24+XG4gICAgICAgICAgIDxvcHRpb24+T3RoZXI8L29wdGlvbj5cbiAgICAgICA8L3NlbGVjdD5cbiAgIDwvbGk+XG4gKlxuICovXG4uc3Bva2VuLWZvcm0gbGFiZWx7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgZm9udDppbmhlcml0O1xufVxuXG5cbi8qKlxuICogRXh0cmEgaGVscCB0ZXh0IGRpc3BsYXllZCBhZnRlciBhIGZpZWxkIHdoZW4gdGhhdCBmaWVsZCBpcyBpbiBmb2N1cywgZS5nLjpcbiAqXG4gICA8bGFiZWwgZm9yPWVtYWlsPkVtYWlsOjwvbGFiZWw+XG4gICA8aW5wdXQgdHlwZT1lbWFpbCBjbGFzcz10ZXh0LWlucHV0IGlkPWVtYWlsPlxuICAgPHNtYWxsIGNsYXNzPWV4dHJhLWhlbHA+LmVkdSBlbWFpbHMgb25seTwvc21hbGw+XG4gKlxuICogV2UgbGVhdmUgdGhlIGhlbHAgdGV4dCBpbiB0aGUgZG9jdW1lbnQgZmxvdyBhbmQgbWVyZWx5IHNldCBpdCB0b1xuICogYHZpc2liaWxpdHk6aGlkZGVuO2AuIFRoaXMgbWVhbnMgdGhhdCBpdCB3b27igJl0IGludGVyZmVyZSB3aXRoIGFueXRoaW5nIG9uY2VcbiAqIGl0IHJlYXBwZWFycy5cbiAqXG4gKi9cbi8qc21hbGwqLy5leHRyYS1oZWxwe1xuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgIHZpc2liaWxpdHk6aGlkZGVuO1xufVxuLnRleHQtaW5wdXQ6YWN0aXZlICsgLmV4dHJhLWhlbHAsXG4udGV4dC1pbnB1dDpmb2N1cyArIC5leHRyYS1oZWxwe1xuICAgIHZpc2liaWxpdHk6dmlzaWJsZTtcbn1cbiIsIkBpZiAkdXNlLWdyaWRzID09IHRydWV7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJEdSSURTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBGbHVpZCBhbmQgbmVzdGFibGUgZ3JpZCBzeXN0ZW0sIGUuZy46XG4gKlxuICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cblxuICAgICAgIDxkaXYgY2xhc3M9XCJncmlkX19pdGVtICBvbmUtdGhpcmRcIj5cbiAgICAgICAgICAgPHA+T25lIHRoaXJkIGdyaWQ8L3A+XG4gICAgICAgPC9kaXY+PCEtLVxuXG4gICAgLS0+PGRpdiBjbGFzcz1cImdyaWRfX2l0ZW0gIHR3by10aGlyZHNcIj5cbiAgICAgICAgICAgPHA+VHdvIHRoaXJkcyBncmlkPC9wPlxuICAgICAgIDwvZGl2PjwhLS1cblxuICAgIC0tPjxkaXYgY2xhc3M9XCJncmlkX19pdGVtICBvbmUtaGFsZlwiPlxuICAgICAgICAgICA8cD5PbmUgaGFsZiBncmlkPC9wPlxuICAgICAgIDwvZGl2PjwhLS1cblxuICAgIC0tPjxkaXYgY2xhc3M9XCJncmlkX19pdGVtICBvbmUtcXVhcnRlclwiPlxuICAgICAgICAgICA8cD5PbmUgcXVhcnRlciBncmlkPC9wPlxuICAgICAgIDwvZGl2PjwhLS1cblxuICAgIC0tPjxkaXYgY2xhc3M9XCJncmlkX19pdGVtICBvbmUtcXVhcnRlclwiPlxuICAgICAgICAgICA8cD5PbmUgcXVhcnRlciBncmlkPC9wPlxuICAgICAgIDwvZGl2PlxuXG4gICA8L2Rpdj5cbiAqXG4gKiBEZW1vOiBqc2ZpZGRsZS5uZXQvaW51aXRjc3MvQ0xZVUNcbiAqXG4gKi9cblxuXG4vKipcbiAqIEdyaWQgd3JhcHBlclxuICovXG4uZ3JpZHtcbiAgICBtYXJnaW4tbGVmdDotJGJhc2Utc3BhY2luZy11bml0O1xuICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOjA7XG59XG5cblxuICAgIC8qKlxuICAgICAqIFZlcnkgaW5mcmVxdWVudGx5IG9jY3VyaW5nIGdyaWQgd3JhcHBlcnMgYXMgY2hpbGRyZW4gb2YgZ3JpZCB3cmFwcGVycy5cbiAgICAgKi9cbiAgICAuZ3JpZCA+IC5ncmlke1xuICAgICAgICBtYXJnaW4tbGVmdDowO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogR3JpZFxuICAgICAqL1xuICAgIC5ncmlkX19pdGVte1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiRiYXNlLXNwYWNpbmctdW5pdDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246dG9wO1xuICAgICAgICBAaWYgJGdsb2JhbC1ib3JkZXItYm94ID09IGZhbHNle1xuICAgICAgICAgICAgQGluY2x1ZGUgdmVuZG9yKGJveC1zaXppbmcsIGJvcmRlci1ib3gpO1xuICAgICAgICB9XG4gICAgfVxuXG59Ly9lbmRpZlxuIiwiQGlmICR1c2UtbmF2ID09IHRydWUgb3IgJHVzZS1vcHRpb25zID09IHRydWUgb3IgJHVzZS1wYWdpbmF0aW9uID09IHRydWUgb3IgJHVzZS1icmVhZGNydW1iID09IHRydWV7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJE5BVlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogTmF2IGFic3RyYWN0aW9uIGFzIHBlcjogY3Nzd2l6YXJkcnkuY29tLzIwMTEvMDkvdGhlLW5hdi1hYnN0cmFjdGlvblxuICogV2hlbiB1c2VkIG9uIGFuIGBvbGAgb3IgYHVsYCwgdGhpcyBjbGFzcyB0aHJvd3MgdGhlIGxpc3QgaW50byBob3Jpem9udGFsIG1vZGVcbiAqIGUuZy46XG4gKlxuICAgPHVsIGNsYXNzPW5hdj5cbiAgICAgICA8bGk+PGEgaHJlZj0jPkhvbWU8L2E+PC9saT5cbiAgICAgICA8bGk+PGEgaHJlZj0jPkFib3V0PC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Qb3J0Zm9saW88L2E+PC9saT5cbiAgICAgICA8bGk+PGEgaHJlZj0jPkNvbnRhY3Q8L2E+PC9saT5cbiAgIDwvdWw+XG4gKlxuICogRGVtbzoganNmaWRkbGUubmV0L2ludWl0Y3NzL1ZucGg0XG4gKlxuICovXG4ubmF2e1xuICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICBtYXJnaW4tbGVmdDowO1xuICAgIEBleHRlbmQgLmNmO1xuXG4gICAgPiBsaXtcblxuICAgICAgICAmLFxuICAgICAgICA+IGF7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICAgKmRpc3BsYXk6aW5saW5lO1xuICAgICAgICAgICAgem9vbToxO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qKlxuICogYC5uYXYtLXN0YWNrZWRgIGV4dGVuZHMgYC5uYXZgIGFuZCB0aHJvd3MgdGhlIGxpc3QgaW50byB2ZXJ0aWNhbCBtb2RlLCBlLmcuOlxuICpcbiAgIDx1bCBjbGFzcz1cIm5hdiAgbmF2LS1zdGFja2VkXCI+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Ib21lPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5BYm91dDwvYT48L2xpPlxuICAgICAgIDxsaT48YSBocmVmPSM+UG9ydGZvbGlvPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Db250YWN0PC9hPjwvbGk+XG4gICA8L3VsPlxuICpcbiAqL1xuLm5hdi0tc3RhY2tlZHtcblxuICAgID4gbGl7XG4gICAgICAgIGRpc3BsYXk6bGlzdC1pdGVtO1xuXG4gICAgICAgID4gYXtcbiAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyoqXG4gKiBgLm5hdi0tYmFubmVyYCBleHRlbmRzIGAubmF2YCBhbmQgY2VudHJlcyB0aGUgbGlzdCwgZS5nLjpcbiAqXG4gICA8dWwgY2xhc3M9XCJuYXYgIG5hdi0tYmFubmVyXCI+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Ib21lPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5BYm91dDwvYT48L2xpPlxuICAgICAgIDxsaT48YSBocmVmPSM+UG9ydGZvbGlvPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Db250YWN0PC9hPjwvbGk+XG4gICA8L3VsPlxuICpcbiAqL1xuLm5hdi0tYmFubmVye1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xufVxuXG5cbi8qKlxuICogR2l2ZSBuYXYgbGlua3MgYSBiaWcsIGJsb2NreSBoaXQgYXJlYS4gRXh0ZW5kcyBgLm5hdmAsIGUuZy46XG4gKlxuICAgPHVsIGNsYXNzPVwibmF2ICBuYXYtLWJsb2NrXCI+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Ib21lPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5BYm91dDwvYT48L2xpPlxuICAgICAgIDxsaT48YSBocmVmPSM+UG9ydGZvbGlvPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Db250YWN0PC9hPjwvbGk+XG4gICA8L3VsPlxuICpcbiAqL1xuLm5hdi0tYmxvY2t7XG4gICAgbGluZS1oZWlnaHQ6MTtcbiAgICAvKipcbiAgICAgKiBSZW1vdmUgd2hpdGVzcGFjZSBjYXVzZWQgYnkgYGlubGluZS1ibG9ja2AuXG4gICAgICovXG4gICAgbGV0dGVyLXNwYWNpbmc6LTAuMzFlbTtcbiAgICB3b3JkLXNwYWNpbmc6LTAuNDNlbTtcbiAgICB3aGl0ZS1zcGFjZTpub3dyYXA7XG5cbiAgICA+IGxpe1xuICAgICAgICBsZXR0ZXItc3BhY2luZzpub3JtYWw7XG4gICAgICAgIHdvcmQtc3BhY2luZzpub3JtYWw7XG5cbiAgICAgICAgPiBhe1xuICAgICAgICAgICAgcGFkZGluZzokaGFsZi1zcGFjaW5nLXVuaXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyoqXG4gKiBGb3JjZSBhIG5hdiB0byBvY2N1cHkgMTAwJSBvZiB0aGUgYXZhaWxhYmxlIHdpZHRoIG9mIGl0cyBwYXJlbnQuIEV4dGVuZHNcbiAqIGAubmF2YCwgZS5nLjpcbiAqXG4gICA8dWwgY2xhc3M9XCJuYXYgIG5hdi0tZml0XCI+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Ib21lPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5BYm91dDwvYT48L2xpPlxuICAgICAgIDxsaT48YSBocmVmPSM+UG9ydGZvbGlvPC9hPjwvbGk+XG4gICAgICAgPGxpPjxhIGhyZWY9Iz5Db250YWN0PC9hPjwvbGk+XG4gICA8L3VsPlxuICpcbiAqIFRoYW5rcyB0byBAcGltcGwgZm9yIHRoaXMgaWRlYSFcbiAqL1xuLm5hdi0tZml0e1xuICAgIGRpc3BsYXk6dGFibGU7XG4gICAgd2lkdGg6MTAwJTtcblxuICAgID4gbGl7XG4gICAgICAgIGRpc3BsYXk6dGFibGUtY2VsbDtcblxuICAgICAgICA+IGF7XG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qKlxuICogTWFrZSBhIGxpc3Qgb2Yga2V5d29yZHMuIEV4dGVuZHMgYC5uYXZgLCBlLmcuOlxuICpcbiAgIGA8dWwgY2xhc3M9XCJuYXYgIG5hdi0ta2V5d29yZHM+YFxuICpcbiAqL1xuLm5hdi0ta2V5d29yZHN7XG5cbiAgICA+IGxpe1xuXG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgICBjb250ZW50OlwiXFwwMDJDXCIgXCJcXDAwQTBcIjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZDphZnRlcntcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxufS8vZW5kaWZcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJFdJRFRIU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU2l6ZXMgaW4gaHVtYW4gcmVhZGFibGUgZm9ybWF0LiBUaGVzZSBhcmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIG90aGVyXG4gKiBvYmplY3RzIGFuZCBhYnN0cmFjdGlvbnMgZm91bmQgaW4gaW51aXQuY3NzLCBtb3N0IGNvbW1vbmx5IHRoZSBncmlkIHN5c3RlbVxuICogYW5kIGZhdXggZmxleGJveC5cbiAqXG4gKiBXZSBoYXZlIGEgbWl4aW4gdG8gZ2VuZXJhdGUgb3VyIHdpZHRocyBhbmQgdGhlaXIgYnJlYWtwb2ludC1zcGVjaWZpY1xuICogdmFyaWF0aW9ucy5cbiAqL1xuXG5AbWl4aW4gZ3JpZC1zZXR1cCgkbmFtZXNwYWNlOiBcIlwiKSB7XG4gICAgLyoqXG4gICAgKiBXaG9sZVxuICAgICovXG4gICAgLiN7JG5hbWVzcGFjZX1vbmUtd2hvbGUgICAgICAgICB7IHdpZHRoOjEwMCU7IH1cblxuXG4gICAgLyoqXG4gICAgKiBIYWx2ZXNcbiAgICAqL1xuICAgIC4jeyRuYW1lc3BhY2V9b25lLWhhbGYgICAgICAgICAgeyB3aWR0aDo1MCU7IH1cblxuXG4gICAgLyoqXG4gICAgKiBUaGlyZHNcbiAgICAqL1xuICAgIC4jeyRuYW1lc3BhY2V9b25lLXRoaXJkICAgICAgICAgeyB3aWR0aDozMy4zMzMlOyB9XG4gICAgLiN7JG5hbWVzcGFjZX10d28tdGhpcmRzICAgICAgICB7IHdpZHRoOjY2LjY2NiU7IH1cblxuXG4gICAgLyoqXG4gICAgKiBRdWFydGVyc1xuICAgICovXG4gICAgLiN7JG5hbWVzcGFjZX1vbmUtcXVhcnRlciAgICAgICB7IHdpZHRoOjI1JTsgfVxuICAgIC4jeyRuYW1lc3BhY2V9dHdvLXF1YXJ0ZXJzICAgICAgeyBAZXh0ZW5kIC4jeyRuYW1lc3BhY2V9b25lLWhhbGY7IH1cbiAgICAuI3skbmFtZXNwYWNlfXRocmVlLXF1YXJ0ZXJzICAgIHsgd2lkdGg6NzUlOyB9XG5cblxuICAgIC8qKlxuICAgICogRmlmdGhzXG4gICAgKi9cbiAgICAuI3skbmFtZXNwYWNlfW9uZS1maWZ0aCAgICAgICAgIHsgd2lkdGg6MjAlOyB9XG4gICAgLiN7JG5hbWVzcGFjZX10d28tZmlmdGhzICAgICAgICB7IHdpZHRoOjQwJTsgfVxuICAgIC4jeyRuYW1lc3BhY2V9dGhyZWUtZmlmdGhzICAgICAgeyB3aWR0aDo2MCU7IH1cbiAgICAuI3skbmFtZXNwYWNlfWZvdXItZmlmdGhzICAgICAgIHsgd2lkdGg6ODAlOyB9XG5cblxuICAgIC8qKlxuICAgICogU2l4dGhzXG4gICAgKi9cbiAgICAuI3skbmFtZXNwYWNlfW9uZS1zaXh0aCAgICAgICAgIHsgd2lkdGg6MTYuNjY2JTsgfVxuICAgIC4jeyRuYW1lc3BhY2V9dHdvLXNpeHRocyAgICAgICAgeyBAZXh0ZW5kIC4jeyRuYW1lc3BhY2V9b25lLXRoaXJkOyB9XG4gICAgLiN7JG5hbWVzcGFjZX10aHJlZS1zaXh0aHMgICAgICB7IEBleHRlbmQgLiN7JG5hbWVzcGFjZX1vbmUtaGFsZjsgfVxuICAgIC4jeyRuYW1lc3BhY2V9Zm91ci1zaXh0aHMgICAgICAgeyBAZXh0ZW5kIC4jeyRuYW1lc3BhY2V9dHdvLXRoaXJkczsgfVxuICAgIC4jeyRuYW1lc3BhY2V9Zml2ZS1zaXh0aHMgICAgICAgeyB3aWR0aDo4My4zMzMlOyB9XG5cblxuICAgIC8qKlxuICAgICogRWlnaHRoc1xuICAgICovXG4gICAgLiN7JG5hbWVzcGFjZX1vbmUtZWlnaHRoICAgICAgICB7IHdpZHRoOjEyLjUlOyB9XG4gICAgLiN7JG5hbWVzcGFjZX10d28tZWlnaHRocyAgICAgICB7IEBleHRlbmQgLiN7JG5hbWVzcGFjZX1vbmUtcXVhcnRlcjsgfVxuICAgIC4jeyRuYW1lc3BhY2V9dGhyZWUtZWlnaHRocyAgICAgeyB3aWR0aDozNy41JTsgfVxuICAgIC4jeyRuYW1lc3BhY2V9Zm91ci1laWdodGhzICAgICAgeyBAZXh0ZW5kIC4jeyRuYW1lc3BhY2V9b25lLWhhbGY7IH1cbiAgICAuI3skbmFtZXNwYWNlfWZpdmUtZWlnaHRocyAgICAgIHsgd2lkdGg6NjIuNSU7IH1cbiAgICAuI3skbmFtZXNwYWNlfXNpeC1laWdodGhzICAgICAgIHsgQGV4dGVuZCAuI3skbmFtZXNwYWNlfXRocmVlLXF1YXJ0ZXJzOyB9XG4gICAgLiN7JG5hbWVzcGFjZX1zZXZlbi1laWdodGhzICAgICB7IHdpZHRoOjg3LjUlOyB9XG5cblxuICAgIC8qKlxuICAgICogVGVudGhzXG4gICAgKi9cbiAgICAuI3skbmFtZXNwYWNlfW9uZS10ZW50aCAgICAgICAgIHsgd2lkdGg6MTAlOyB9XG4gICAgLiN7JG5hbWVzcGFjZX10d28tdGVudGhzICAgICAgICB7IEBleHRlbmQgLiN7JG5hbWVzcGFjZX1vbmUtZmlmdGg7IH1cbiAgICAuI3skbmFtZXNwYWNlfXRocmVlLXRlbnRocyAgICAgIHsgd2lkdGg6MzAlOyB9XG4gICAgLiN7JG5hbWVzcGFjZX1mb3VyLXRlbnRocyAgICAgICB7IEBleHRlbmQgLiN7JG5hbWVzcGFjZX10d28tZmlmdGhzOyB9XG4gICAgLiN7JG5hbWVzcGFjZX1maXZlLXRlbnRocyAgICAgICB7IEBleHRlbmQgLiN7JG5hbWVzcGFjZX1vbmUtaGFsZjsgfVxuICAgIC4jeyRuYW1lc3BhY2V9c2l4LXRlbnRocyAgICAgICAgeyBAZXh0ZW5kIC4jeyRuYW1lc3BhY2V9dGhyZWUtZmlmdGhzOyB9XG4gICAgLiN7JG5hbWVzcGFjZX1zZXZlbi10ZW50aHMgICAgICB7IHdpZHRoOjcwJTsgfVxuICAgIC4jeyRuYW1lc3BhY2V9ZWlnaHQtdGVudGhzICAgICAgeyBAZXh0ZW5kIC4jeyRuYW1lc3BhY2V9Zm91ci1maWZ0aHM7IH1cbiAgICAuI3skbmFtZXNwYWNlfW5pbmUtdGVudGhzICAgICAgIHsgd2lkdGg6OTAlOyB9XG5cblxuICAgIC8qKlxuICAgICogVHdlbGZ0aHNcbiAgICAqL1xuICAgIC4jeyRuYW1lc3BhY2V9b25lLXR3ZWxmdGggICAgICAgeyB3aWR0aDo4LjMzMyU7IH1cbiAgICAuI3skbmFtZXNwYWNlfXR3by10d2VsZnRocyAgICAgIHsgQGV4dGVuZCAuI3skbmFtZXNwYWNlfW9uZS1zaXh0aDsgfVxuICAgIC4jeyRuYW1lc3BhY2V9dGhyZWUtdHdlbGZ0aHMgICAgeyBAZXh0ZW5kIC4jeyRuYW1lc3BhY2V9b25lLXF1YXJ0ZXI7IH1cbiAgICAuI3skbmFtZXNwYWNlfWZvdXItdHdlbGZ0aHMgICAgIHsgQGV4dGVuZCAuI3skbmFtZXNwYWNlfW9uZS10aGlyZDsgfVxuICAgIC4jeyRuYW1lc3BhY2V9Zml2ZS10d2VsZnRocyAgICAgeyB3aWR0aDo0MS42NjYlIH1cbiAgICAuI3skbmFtZXNwYWNlfXNpeC10d2VsZnRocyAgICAgIHsgQGV4dGVuZCAuI3skbmFtZXNwYWNlfW9uZS1oYWxmOyB9XG4gICAgLiN7JG5hbWVzcGFjZX1zZXZlbi10d2VsZnRocyAgICB7IHdpZHRoOjU4LjMzMyU7IH1cbiAgICAuI3skbmFtZXNwYWNlfWVpZ2h0LXR3ZWxmdGhzICAgIHsgQGV4dGVuZCAuI3skbmFtZXNwYWNlfXR3by10aGlyZHM7IH1cbiAgICAuI3skbmFtZXNwYWNlfW5pbmUtdHdlbGZ0aHMgICAgIHsgQGV4dGVuZCAuI3skbmFtZXNwYWNlfXRocmVlLXF1YXJ0ZXJzOyB9XG4gICAgLiN7JG5hbWVzcGFjZX10ZW4tdHdlbGZ0aHMgICAgICB7IEBleHRlbmQgLiN7JG5hbWVzcGFjZX1maXZlLXNpeHRoczsgfVxuICAgIC4jeyRuYW1lc3BhY2V9ZWxldmVuLXR3ZWxmdGhzICAgeyB3aWR0aDo5MS42NjYlOyB9XG59XG5cbkBpbmNsdWRlIGdyaWQtc2V0dXAoKTtcblxuXG5cbi8qKlxuICogSWYgeW91IGhhdmUgc2V0IGAkcmVzcG9uc2l2ZWAgdG8g4oCYdHJ1ZeKAmSBpbiBgX3ZhcnMuc2Nzc2AgdGhlbiB5b3Ugbm93IGhhdmVcbiAqIGFjY2VzcyB0byB0aGVzZSBjbGFzc2VzLiBZb3UgY2FuIGRlZmluZSBhdCB3aGljaCBicmVha3BvaW50IHlvdeKAmWQgbGlrZSBhblxuICogZWxlbWVudCB0byBiZSBhIGNlcnRhaW4gc2l6ZSwgZS5nLjpcbiAqXG4gKiBgPGRpdiBjbGFzcz1cImcgIG9uZS1xdWFydGVyICBsYXAtb25lLWhhbGYgIHBhbG0tb25lLXdob2xlXCI+IC4uLiA8L2Rpdj5gXG4gKlxuICogVGhpcyB3b3VsZCBjcmVhdGUgYSBgZGl2YCB0aGF0LCBhdCDigJhkZXNrdG9w4oCZIHNpemVzLCB0YWtlcyB1cCBhIHF1YXJ0ZXIgb2YgdGhlXG4gKiBob3Jpem9udGFsIHNwYWNlLCBhIGhhbGYgb2YgdGhhdCBzcGFjZSBhdCDigJh0YWJsZXTigJkgc2l6ZXMsIGFuZCBnb2VzIGZ1bGwgd2lkdGhcbiAqIGF0IOKAmG1vYmlsZeKAmSBzaXplcy5cbiAqXG4gKiBEZW1vOiBqc2ZpZGRsZS5uZXQvaW51aXRjc3MvV1M0R2VcbiAqXG4gKi9cblxuQGlmICRyZXNwb25zaXZlID09IHRydWV7XG5cbkBpbmNsdWRlIG1lZGlhLXF1ZXJ5KHBhbG0pe1xuICAgIEBpbmNsdWRlIGdyaWQtc2V0dXAoXCJwYWxtLVwiKTtcbn1cblxuQGluY2x1ZGUgbWVkaWEtcXVlcnkobGFwKXtcbiAgICBAaW5jbHVkZSBncmlkLXNldHVwKFwibGFwLVwiKTtcbn1cblxuQGluY2x1ZGUgbWVkaWEtcXVlcnkobGFwLWFuZC11cCl7XG4gICAgQGluY2x1ZGUgZ3JpZC1zZXR1cChcImxhcC1hbmQtdXAtXCIpO1xufVxuXG5AaW5jbHVkZSBtZWRpYS1xdWVyeShwb3J0YWJsZSl7XG4gICAgQGluY2x1ZGUgZ3JpZC1zZXR1cChcInBvcnRhYmxlLVwiKTtcbn1cblxuQGluY2x1ZGUgbWVkaWEtcXVlcnkoZGVzayl7XG4gICAgQGluY2x1ZGUgZ3JpZC1zZXR1cChcImRlc2stXCIpO1xufVxuXG5cbi8qKlxuICogSWYgeW91IGhhdmUgc2V0IHRoZSBhZGRpdGlvbmFsIGAkcmVzcG9uc2l2ZS1leHRyYWAgdmFyaWFibGUgdG8g4oCYdHJ1ZeKAmSBpblxuICogYF92YXJzLnNjc3NgIHRoZW4geW91IG5vdyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGNsYXNzIGF2YWlsYWJsZSB0b1xuICogYWNjb21vZGF0ZSBtdWNoIGxhcmdlciBzY3JlZW4gcmVzb2x1dGlvbnMuXG4gKi9cblxuQGlmICRyZXNwb25zaXZlLWV4dHJhID09IHRydWV7XG5cbkBpbmNsdWRlIG1lZGlhLXF1ZXJ5KGRlc2std2lkZSl7XG4gICAgQGluY2x1ZGUgZ3JpZC1zZXR1cChcImRlc2std2lkZS1cIik7XG59XG5cbn1cblxufSAvKiBlbmRpZiAqL1xuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkUFVTSFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogUHVzaCBjbGFzc2VzLCB0byBtb3ZlIGdyaWQgaXRlbXMgb3ZlciB0byB0aGUgcmlnaHQgYnkgY2VydGFpbiBhbW91bnRzLlxuICovXG5cbkBtaXhpbiBwdXNoLXNldHVwKCRuYW1lc3BhY2U6IFwiXCIpIHtcblxuICAgIC8qKlxuICAgICAqIFdob2xlXG4gICAgICovXG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX1vbmUtd2hvbGUgICAgICAgICAgIHsgbGVmdDoxMDAlOyB9XG5cblxuICAgIC8qKlxuICAgICAqIEhhbHZlc1xuICAgICAqL1xuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9b25lLWhhbGYgICAgICAgICAgICB7IGxlZnQ6NTAlOyB9XG5cblxuICAgIC8qKlxuICAgICAqIFRoaXJkc1xuICAgICAqL1xuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9b25lLXRoaXJkICAgICAgICAgICB7IGxlZnQ6MzMuMzMzJTsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9dHdvLXRoaXJkcyAgICAgICAgICB7IGxlZnQ6NjYuNjY2JTsgfVxuXG5cbiAgICAvKipcbiAgICAgKiBRdWFydGVyc1xuICAgICAqL1xuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9b25lLXF1YXJ0ZXIgICAgICAgICB7IGxlZnQ6MjUlOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX10d28tcXVhcnRlcnMgICAgICAgIHsgQGV4dGVuZCAucHVzaC0tI3skbmFtZXNwYWNlfW9uZS1oYWxmOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX10aHJlZS1xdWFydGVycyAgICAgIHsgbGVmdDo3NSU7IH1cblxuXG4gICAgLyoqXG4gICAgICogRmlmdGhzXG4gICAgICovXG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX1vbmUtZmlmdGggICAgICAgICAgIHsgbGVmdDoyMCU7IH1cbiAgICAucHVzaC0tI3skbmFtZXNwYWNlfXR3by1maWZ0aHMgICAgICAgICAgeyBsZWZ0OjQwJTsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9dGhyZWUtZmlmdGhzICAgICAgICB7IGxlZnQ6NjAlOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX1mb3VyLWZpZnRocyAgICAgICAgIHsgbGVmdDo4MCU7IH1cblxuXG4gICAgLyoqXG4gICAgICogU2l4dGhzXG4gICAgICovXG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX1vbmUtc2l4dGggICAgICAgICAgIHsgbGVmdDoxNi42NjYlOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX10d28tc2l4dGhzICAgICAgICAgIHsgQGV4dGVuZCAucHVzaC0tI3skbmFtZXNwYWNlfW9uZS10aGlyZDsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9dGhyZWUtc2l4dGhzICAgICAgICB7IEBleHRlbmQgLnB1c2gtLSN7JG5hbWVzcGFjZX1vbmUtaGFsZjsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9Zm91ci1zaXh0aHMgICAgICAgICB7IEBleHRlbmQgLnB1c2gtLSN7JG5hbWVzcGFjZX10d28tdGhpcmRzOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX1maXZlLXNpeHRocyAgICAgICAgIHsgbGVmdDo4My4zMzMlOyB9XG5cblxuICAgIC8qKlxuICAgICAqIEVpZ2h0aHNcbiAgICAgKi9cbiAgICAucHVzaC0tI3skbmFtZXNwYWNlfW9uZS1laWdodGggICAgICAgICAgeyBsZWZ0OjEyLjUlOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX10d28tZWlnaHRocyAgICAgICAgIHsgQGV4dGVuZCAucHVzaC0tI3skbmFtZXNwYWNlfW9uZS1xdWFydGVyOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX10aHJlZS1laWdodGhzICAgICAgIHsgbGVmdDozNy41JTsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9Zm91ci1laWdodGhzICAgICAgICB7IEBleHRlbmQgLnB1c2gtLSN7JG5hbWVzcGFjZX1vbmUtaGFsZjsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9Zml2ZS1laWdodGhzICAgICAgICB7IGxlZnQ6NjIuNSU7IH1cbiAgICAucHVzaC0tI3skbmFtZXNwYWNlfXNpeC1laWdodGhzICAgICAgICAgeyBAZXh0ZW5kIC5wdXNoLS0jeyRuYW1lc3BhY2V9dGhyZWUtcXVhcnRlcnM7IH1cbiAgICAucHVzaC0tI3skbmFtZXNwYWNlfXNldmVuLWVpZ2h0aHMgICAgICAgeyBsZWZ0Ojg3LjUlOyB9XG5cblxuICAgIC8qKlxuICAgICAqIFRlbnRoc1xuICAgICAqL1xuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9b25lLXRlbnRoICAgICAgICAgICB7IGxlZnQ6MTAlOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX10d28tdGVudGhzICAgICAgICAgIHsgQGV4dGVuZCAucHVzaC0tI3skbmFtZXNwYWNlfW9uZS1maWZ0aDsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9dGhyZWUtdGVudGhzICAgICAgICB7IGxlZnQ6MzAlOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX1mb3VyLXRlbnRocyAgICAgICAgIHsgQGV4dGVuZCAucHVzaC0tI3skbmFtZXNwYWNlfXR3by1maWZ0aHM7IH1cbiAgICAucHVzaC0tI3skbmFtZXNwYWNlfWZpdmUtdGVudGhzICAgICAgICAgeyBAZXh0ZW5kIC5wdXNoLS0jeyRuYW1lc3BhY2V9b25lLWhhbGY7IH1cbiAgICAucHVzaC0tI3skbmFtZXNwYWNlfXNpeC10ZW50aHMgICAgICAgICAgeyBAZXh0ZW5kIC5wdXNoLS0jeyRuYW1lc3BhY2V9dGhyZWUtZmlmdGhzOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX1zZXZlbi10ZW50aHMgICAgICAgIHsgbGVmdDo3MCU7IH1cbiAgICAucHVzaC0tI3skbmFtZXNwYWNlfWVpZ2h0LXRlbnRocyAgICAgICAgeyBAZXh0ZW5kIC5wdXNoLS0jeyRuYW1lc3BhY2V9Zm91ci1maWZ0aHM7IH1cbiAgICAucHVzaC0tI3skbmFtZXNwYWNlfW5pbmUtdGVudGhzICAgICAgICAgeyBsZWZ0OjkwJTsgfVxuXG5cbiAgICAvKipcbiAgICAgKiBUd2VsZnRoc1xuICAgICAqL1xuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9b25lLXR3ZWxmdGggICAgICAgICB7IGxlZnQ6OC4zMzMlOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX10d28tdHdlbGZ0aHMgICAgICAgIHsgQGV4dGVuZCAucHVzaC0tI3skbmFtZXNwYWNlfW9uZS1zaXh0aDsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9dGhyZWUtdHdlbGZ0aHMgICAgICB7IEBleHRlbmQgLnB1c2gtLSN7JG5hbWVzcGFjZX1vbmUtcXVhcnRlcjsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9Zm91ci10d2VsZnRocyAgICAgICB7IEBleHRlbmQgLnB1c2gtLSN7JG5hbWVzcGFjZX1vbmUtdGhpcmQ7IH1cbiAgICAucHVzaC0tI3skbmFtZXNwYWNlfWZpdmUtdHdlbGZ0aHMgICAgICAgeyBsZWZ0OjQxLjY2NiUgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9c2l4LXR3ZWxmdGhzICAgICAgICB7IEBleHRlbmQgLnB1c2gtLSN7JG5hbWVzcGFjZX1vbmUtaGFsZjsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9c2V2ZW4tdHdlbGZ0aHMgICAgICB7IGxlZnQ6NTguMzMzJTsgfVxuICAgIC5wdXNoLS0jeyRuYW1lc3BhY2V9ZWlnaHQtdHdlbGZ0aHMgICAgICB7IEBleHRlbmQgLnB1c2gtLSN7JG5hbWVzcGFjZX10d28tdGhpcmRzOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX1uaW5lLXR3ZWxmdGhzICAgICAgIHsgQGV4dGVuZCAucHVzaC0tI3skbmFtZXNwYWNlfXRocmVlLXF1YXJ0ZXJzOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX10ZW4tdHdlbGZ0aHMgICAgICAgIHsgQGV4dGVuZCAucHVzaC0tI3skbmFtZXNwYWNlfWZpdmUtc2l4dGhzOyB9XG4gICAgLnB1c2gtLSN7JG5hbWVzcGFjZX1lbGV2ZW4tdHdlbGZ0aHMgICAgIHsgbGVmdDo5MS42NjYlOyB9XG59XG5cbkBpZiAkcHVzaCA9PSB0cnVle1xuXG5AaW5jbHVkZSBwdXNoLXNldHVwKCk7XG5cbi8qKlxuICogTm90IGEgcGFydGljdWxhcmx5IGdyZWF0IHNlbGVjdG9yLCBidXQgdGhlIERSWWVzdCB3YXkgdG8gZG8gdGhpbmdzLlxuICovXG5bY2xhc3MqPVwicHVzaC0tXCJdeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfVxuXG5AaWYgJHBhbG0tcHVzaCA9PSB0cnVle1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkocGFsbSl7XG4gICAgICAgIEBpbmNsdWRlIHB1c2gtc2V0dXAoXCJwYWxtLVwiKTtcbiAgICB9XG5cbn1cblxuQGlmICRsYXAtcHVzaCA9PSB0cnVle1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkobGFwKXtcbiAgICAgICAgQGluY2x1ZGUgcHVzaC1zZXR1cChcImxhcC1cIik7XG4gICAgfVxuXG59XG5cbkBpZiAkbGFwLWFuZC11cC1wdXNoID09IHRydWV7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShsYXAtYW5kLXVwKXtcbiAgICAgICAgQGluY2x1ZGUgcHVzaC1zZXR1cChcImxhcC1hbmQtdXAtXCIpO1xuICAgIH1cblxufVxuXG5AaWYgJHBvcnRhYmxlLXB1c2ggPT0gdHJ1ZXtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KHBvcnRhYmxlKXtcbiAgICAgICAgQGluY2x1ZGUgcHVzaC1zZXR1cChcInBvcnRhYmxlLVwiKTtcbiAgICB9XG5cbn1cblxuQGlmICRkZXNrLXB1c2ggPT0gdHJ1ZXtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KGRlc2spe1xuICAgICAgICBAaW5jbHVkZSBwdXNoLXNldHVwKFwiZGVzay1cIik7XG4gICAgfVxuXG59XG5cbn0vL2VuZGlmXG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRQVUxMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBQdWxsIGNsYXNzZXMsIHRvIG1vdmUgZ3JpZCBpdGVtcyBvdmVyIHRvIHRoZSByaWdodCBieSBjZXJ0YWluIGFtb3VudHMuXG4gKi9cblxuQG1peGluIHB1bGwtc2V0dXAoJG5hbWVzcGFjZTogXCJcIikge1xuXG4gICAgLyoqXG4gICAgICogV2hvbGVcbiAgICAgKi9cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfW9uZS13aG9sZSAgICAgICAgICAgeyByaWdodDoxMDAlOyB9XG5cblxuICAgIC8qKlxuICAgICAqIEhhbHZlc1xuICAgICAqL1xuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9b25lLWhhbGYgICAgICAgICAgICB7IHJpZ2h0OjUwJTsgfVxuXG5cbiAgICAvKipcbiAgICAgKiBUaGlyZHNcbiAgICAgKi9cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfW9uZS10aGlyZCAgICAgICAgICAgeyByaWdodDozMy4zMzMlOyB9XG4gICAgLnB1bGwtLSN7JG5hbWVzcGFjZX10d28tdGhpcmRzICAgICAgICAgIHsgcmlnaHQ6NjYuNjY2JTsgfVxuXG5cbiAgICAvKipcbiAgICAgKiBRdWFydGVyc1xuICAgICAqL1xuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9b25lLXF1YXJ0ZXIgICAgICAgICB7IHJpZ2h0OjI1JTsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9dHdvLXF1YXJ0ZXJzICAgICAgICB7IEBleHRlbmQgLnB1bGwtLSN7JG5hbWVzcGFjZX1vbmUtaGFsZjsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9dGhyZWUtcXVhcnRlcnMgICAgICB7IHJpZ2h0Ojc1JTsgfVxuXG5cbiAgICAvKipcbiAgICAgKiBGaWZ0aHNcbiAgICAgKi9cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfW9uZS1maWZ0aCAgICAgICAgICAgeyByaWdodDoyMCU7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfXR3by1maWZ0aHMgICAgICAgICAgeyByaWdodDo0MCU7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfXRocmVlLWZpZnRocyAgICAgICAgeyByaWdodDo2MCU7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfWZvdXItZmlmdGhzICAgICAgICAgeyByaWdodDo4MCU7IH1cblxuXG4gICAgLyoqXG4gICAgICogU2l4dGhzXG4gICAgICovXG4gICAgLnB1bGwtLSN7JG5hbWVzcGFjZX1vbmUtc2l4dGggICAgICAgICAgIHsgcmlnaHQ6MTYuNjY2JTsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9dHdvLXNpeHRocyAgICAgICAgICB7IEBleHRlbmQgLnB1bGwtLSN7JG5hbWVzcGFjZX1vbmUtdGhpcmQ7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfXRocmVlLXNpeHRocyAgICAgICAgeyBAZXh0ZW5kIC5wdWxsLS0jeyRuYW1lc3BhY2V9b25lLWhhbGY7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfWZvdXItc2l4dGhzICAgICAgICAgeyBAZXh0ZW5kIC5wdWxsLS0jeyRuYW1lc3BhY2V9dHdvLXRoaXJkczsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9Zml2ZS1zaXh0aHMgICAgICAgICB7IHJpZ2h0OjgzLjMzMyU7IH1cblxuXG4gICAgLyoqXG4gICAgICogRWlnaHRoc1xuICAgICAqL1xuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9b25lLWVpZ2h0aCAgICAgICAgICB7IHJpZ2h0OjEyLjUlOyB9XG4gICAgLnB1bGwtLSN7JG5hbWVzcGFjZX10d28tZWlnaHRocyAgICAgICAgIHsgQGV4dGVuZCAucHVsbC0tI3skbmFtZXNwYWNlfW9uZS1xdWFydGVyOyB9XG4gICAgLnB1bGwtLSN7JG5hbWVzcGFjZX10aHJlZS1laWdodGhzICAgICAgIHsgcmlnaHQ6MzcuNSU7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfWZvdXItZWlnaHRocyAgICAgICAgeyBAZXh0ZW5kIC5wdWxsLS0jeyRuYW1lc3BhY2V9b25lLWhhbGY7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfWZpdmUtZWlnaHRocyAgICAgICAgeyByaWdodDo2Mi41JTsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9c2l4LWVpZ2h0aHMgICAgICAgICB7IEBleHRlbmQgLnB1bGwtLSN7JG5hbWVzcGFjZX10aHJlZS1xdWFydGVyczsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9c2V2ZW4tZWlnaHRocyAgICAgICB7IHJpZ2h0Ojg3LjUlOyB9XG5cblxuICAgIC8qKlxuICAgICAqIFRlbnRoc1xuICAgICAqL1xuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9b25lLXRlbnRoICAgICAgICAgICB7IHJpZ2h0OjEwJTsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9dHdvLXRlbnRocyAgICAgICAgICB7IEBleHRlbmQgLnB1bGwtLSN7JG5hbWVzcGFjZX1vbmUtZmlmdGg7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfXRocmVlLXRlbnRocyAgICAgICAgeyByaWdodDozMCU7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfWZvdXItdGVudGhzICAgICAgICAgeyBAZXh0ZW5kIC5wdWxsLS0jeyRuYW1lc3BhY2V9dHdvLWZpZnRoczsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9Zml2ZS10ZW50aHMgICAgICAgICB7IEBleHRlbmQgLnB1bGwtLSN7JG5hbWVzcGFjZX1vbmUtaGFsZjsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9c2l4LXRlbnRocyAgICAgICAgICB7IEBleHRlbmQgLnB1bGwtLSN7JG5hbWVzcGFjZX10aHJlZS1maWZ0aHM7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfXNldmVuLXRlbnRocyAgICAgICAgeyByaWdodDo3MCU7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfWVpZ2h0LXRlbnRocyAgICAgICAgeyBAZXh0ZW5kIC5wdWxsLS0jeyRuYW1lc3BhY2V9Zm91ci1maWZ0aHM7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfW5pbmUtdGVudGhzICAgICAgICAgeyByaWdodDo5MCU7IH1cblxuXG4gICAgLyoqXG4gICAgICogVHdlbGZ0aHNcbiAgICAgKi9cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfW9uZS10d2VsZnRoICAgICAgICAgeyByaWdodDo4LjMzMyU7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfXR3by10d2VsZnRocyAgICAgICAgeyBAZXh0ZW5kIC5wdWxsLS0jeyRuYW1lc3BhY2V9b25lLXNpeHRoOyB9XG4gICAgLnB1bGwtLSN7JG5hbWVzcGFjZX10aHJlZS10d2VsZnRocyAgICAgIHsgQGV4dGVuZCAucHVsbC0tI3skbmFtZXNwYWNlfW9uZS1xdWFydGVyOyB9XG4gICAgLnB1bGwtLSN7JG5hbWVzcGFjZX1mb3VyLXR3ZWxmdGhzICAgICAgIHsgQGV4dGVuZCAucHVsbC0tI3skbmFtZXNwYWNlfW9uZS10aGlyZDsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9Zml2ZS10d2VsZnRocyAgICAgICB7IHJpZ2h0OjQxLjY2NiUgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9c2l4LXR3ZWxmdGhzICAgICAgICB7IEBleHRlbmQgLnB1bGwtLSN7JG5hbWVzcGFjZX1vbmUtaGFsZjsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9c2V2ZW4tdHdlbGZ0aHMgICAgICB7IHJpZ2h0OjU4LjMzMyU7IH1cbiAgICAucHVsbC0tI3skbmFtZXNwYWNlfWVpZ2h0LXR3ZWxmdGhzICAgICAgeyBAZXh0ZW5kIC5wdWxsLS0jeyRuYW1lc3BhY2V9dHdvLXRoaXJkczsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9bmluZS10d2VsZnRocyAgICAgICB7IEBleHRlbmQgLnB1bGwtLSN7JG5hbWVzcGFjZX10aHJlZS1xdWFydGVyczsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9dGVuLXR3ZWxmdGhzICAgICAgICB7IEBleHRlbmQgLnB1bGwtLSN7JG5hbWVzcGFjZX1maXZlLXNpeHRoczsgfVxuICAgIC5wdWxsLS0jeyRuYW1lc3BhY2V9ZWxldmVuLXR3ZWxmdGhzICAgICB7IHJpZ2h0OjkxLjY2NiU7IH1cbn1cblxuQGlmICRwdWxsID09IHRydWV7XG5cbi8qKlxuICogTm90IGEgcGFydGljdWxhcmx5IGdyZWF0IHNlbGVjdG9yLCBidXQgdGhlIERSWWVzdCB3YXkgdG8gZG8gdGhpbmdzLlxuICovXG5bY2xhc3MqPVwicHVsbC0tXCJdeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfVxuXG5AaW5jbHVkZSBwdWxsLXNldHVwKCk7XG5cbkBpZiAkcGFsbS1wdWxsID09IHRydWV7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShwYWxtKXtcbiAgICAgICAgQGluY2x1ZGUgcHVsbC1zZXR1cChcInBhbG0tXCIpO1xuICAgIH1cblxufVxuXG5AaWYgJGxhcC1wdWxsID09IHRydWV7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShsYXApe1xuICAgICAgICBAaW5jbHVkZSBwdWxsLXNldHVwKFwibGFwLVwiKTtcbiAgICB9XG5cbn1cblxuQGlmICRsYXAtYW5kLXVwLXB1bGwgPT0gdHJ1ZXtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KGxhcC1hbmQtdXApe1xuICAgICAgICBAaW5jbHVkZSBwdWxsLXNldHVwKFwibGFwLWFuZC11cC1cIik7XG4gICAgfVxuXG59XG5cbkBpZiAkcG9ydGFibGUtcHVsbCA9PSB0cnVle1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkocG9ydGFibGUpe1xuICAgICAgICBAaW5jbHVkZSBwdWxsLXNldHVwKFwicG9ydGFibGUtXCIpO1xuICAgIH1cblxufVxuXG5AaWYgJGRlc2stcHVsbCA9PSB0cnVle1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoZGVzayl7XG4gICAgICAgIEBpbmNsdWRlIHB1bGwtc2V0dXAoXCJkZXNrLVwiKTtcbiAgICB9XG5cbn1cblxufS8vZW5kaWZcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJEJSQU5EXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBgLmJyYW5kYCBpcyBhIHF1aWNrIGFuZCBzaW1wbGUgd2F5IHRvIGFwcGx5IHlvdXIgYnJhbmQgZmFjZSBhbmQvb3IgY29sb3IgdG9cbiAqIGFueSBlbGVtZW50IHVzaW5nIGEgaGFuZHkgaGVscGVyIGNsYXNzLlxuICovXG4uYnJhbmR7XG4gICAgZm9udC1mYW1pbHk6JGJyYW5kLWZhY2UgKyFpbXBvcnRhbnQ7XG4gICAgY29sb3I6JGJyYW5kLWNvbG9yICshaW1wb3J0YW50O1xufVxuLmJyYW5kLWZhY2V7XG4gICAgZm9udC1mYW1pbHk6JGJyYW5kLWZhY2UgKyFpbXBvcnRhbnQ7XG59XG4uYnJhbmQtY29sb3IsXG4uYnJhbmQtY29sb3Vye1xuICAgIGNvbG9yOiRicmFuZC1jb2xvciArIWltcG9ydGFudDtcbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRIRUxQRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIEEgc2VyaWVzIG9mIGhlbHBlciBjbGFzc2VzIHRvIHVzZSBhcmJpdHJhcmlseS4gT25seSB1c2UgYSBoZWxwZXIgY2xhc3MgaWYgYW5cbiAqIGVsZW1lbnQvY29tcG9uZW50IGRvZXNu4oCZdCBhbHJlYWR5IGhhdmUgYSBjbGFzcyB0byB3aGljaCB5b3UgY291bGQgYXBwbHkgdGhpc1xuICogc3R5bGluZywgZS5nLiBpZiB5b3UgbmVlZCB0byBmbG9hdCBgLm1haW4tbmF2YCBsZWZ0IHRoZW4gYWRkIGBmbG9hdDpsZWZ0O2AgdG9cbiAqIHRoYXQgcnVsZXNldCBhcyBvcHBvc2VkIHRvIGFkZGluZyB0aGUgYC5mbG9hdC0tbGVmdGAgY2xhc3MgdG8gdGhlIG1hcmt1cC5cbiAqXG4gKiBBIGxvdCBvZiB0aGVzZSBjbGFzc2VzIGNhcnJ5IGAhaW1wb3J0YW50YCBhcyB5b3Ugd2lsbCBhbHdheXMgd2FudCB0aGVtIHRvIHdpblxuICogb3V0IG92ZXIgb3RoZXIgc2VsZWN0b3JzLlxuICovXG5cblxuLyoqXG4gKiBBZGQvcmVtb3ZlIGZsb2F0c1xuICovXG4uZmxvYXQtLXJpZ2h0ICAgeyBmbG9hdDpyaWdodCFpbXBvcnRhbnQ7IH1cbi5mbG9hdC0tbGVmdCAgICB7IGZsb2F0OmxlZnQgIWltcG9ydGFudDsgfVxuLmZsb2F0LS1ub25lICAgIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyB9XG5cblxuLyoqXG4gKiBUZXh0IGFsaWdubWVudFxuICovXG4udGV4dC0tbGVmdCAgICAgeyB0ZXh0LWFsaWduOmxlZnQgICFpbXBvcnRhbnQ7IH1cbi50ZXh0LS1jZW50ZXIgICB7IHRleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDsgfVxuLnRleHQtLXJpZ2h0ICAgIHsgdGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50OyB9XG5cblxuLyoqXG4gKiBGb250IHdlaWdodHNcbiAqL1xuLndlaWdodC0tbGlnaHQgICAgICB7IGZvbnQtd2VpZ2h0OjMwMCFpbXBvcnRhbnQ7IH1cbi53ZWlnaHQtLW5vcm1hbCAgICAgeyBmb250LXdlaWdodDo0MDAhaW1wb3J0YW50OyB9XG4ud2VpZ2h0LS1zZW1pYm9sZCAgIHsgZm9udC13ZWlnaHQ6NjAwIWltcG9ydGFudDsgfVxuXG5cbi8qKlxuICogQWRkL3JlbW92ZSBtYXJnaW5zXG4gKi9cbi5wdXNoICAgICAgICAgICB7IG1hcmdpbjogICAgICAgJGJhc2Utc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnB1c2gtLXRvcCAgICAgIHsgbWFyZ2luLXRvcDogICAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4ucHVzaC0tcmlnaHQgICAgeyBtYXJnaW4tcmlnaHQ6ICRiYXNlLXNwYWNpbmctdW5pdCFpbXBvcnRhbnQ7IH1cbi5wdXNoLS1ib3R0b20gICB7IG1hcmdpbi1ib3R0b206JGJhc2Utc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnB1c2gtLWxlZnQgICAgIHsgbWFyZ2luLWxlZnQ6ICAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4ucHVzaC0tZW5kcyAgICAgeyBtYXJnaW4tdG9wOiAgICRiYXNlLXNwYWNpbmctdW5pdCFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206JGJhc2Utc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnB1c2gtLXNpZGVzICAgIHsgbWFyZ2luLXJpZ2h0OiAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDogICRiYXNlLXNwYWNpbmctdW5pdCFpbXBvcnRhbnQ7IH1cblxuLnB1c2gtaGFsZiAgICAgICAgICB7IG1hcmdpbjogICAgICAgJGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnB1c2gtaGFsZi0tdG9wICAgICB7IG1hcmdpbi10b3A6ICAgJGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnB1c2gtaGFsZi0tcmlnaHQgICB7IG1hcmdpbi1yaWdodDogJGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnB1c2gtaGFsZi0tYm90dG9tICB7IG1hcmdpbi1ib3R0b206JGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnB1c2gtaGFsZi0tbGVmdCAgICB7IG1hcmdpbi1sZWZ0OiAgJGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnB1c2gtaGFsZi0tZW5kcyAgICB7IG1hcmdpbi10b3A6ICAgJGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTokaGFsZi1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4ucHVzaC1oYWxmLS1zaWRlcyAgIHsgbWFyZ2luLXJpZ2h0OiAkaGFsZi1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDogICRoYWxmLXNwYWNpbmctdW5pdCFpbXBvcnRhbnQ7IH1cblxuLmZsdXNoICAgICAgICAgIHsgbWFyZ2luOiAgICAgICAwIWltcG9ydGFudDsgfVxuLmZsdXNoLS10b3AgICAgIHsgbWFyZ2luLXRvcDogICAwIWltcG9ydGFudDsgfVxuLmZsdXNoLS1yaWdodCAgIHsgbWFyZ2luLXJpZ2h0OiAwIWltcG9ydGFudDsgfVxuLmZsdXNoLS1ib3R0b20gIHsgbWFyZ2luLWJvdHRvbTowIWltcG9ydGFudDsgfVxuLmZsdXNoLS1sZWZ0ICAgIHsgbWFyZ2luLWxlZnQ6ICAwIWltcG9ydGFudDsgfVxuLmZsdXNoLS1lbmRzICAgIHsgbWFyZ2luLXRvcDogICAwIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTowIWltcG9ydGFudDsgfVxuLmZsdXNoLS1zaWRlcyAgIHsgbWFyZ2luLXJpZ2h0OiAwIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6ICAwIWltcG9ydGFudDsgfVxuXG5cbi8qKlxuICogQWRkL3JlbW92ZSBwYWRkaW5nc1xuICovXG4uc29mdCAgICAgICAgICAgeyBwYWRkaW5nOiAgICAgICAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4uc29mdC0tdG9wICAgICAgeyBwYWRkaW5nLXRvcDogICAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4uc29mdC0tcmlnaHQgICAgeyBwYWRkaW5nLXJpZ2h0OiAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4uc29mdC0tYm90dG9tICAgeyBwYWRkaW5nLWJvdHRvbTokYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4uc29mdC0tbGVmdCAgICAgeyBwYWRkaW5nLWxlZnQ6ICAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4uc29mdC0tZW5kcyAgICAgeyBwYWRkaW5nLXRvcDogICAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyBwYWRkaW5nLWJvdHRvbTokYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4uc29mdC0tc2lkZXMgICAgeyBwYWRkaW5nLXJpZ2h0OiAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6ICAkYmFzZS1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG5cbi5zb2Z0LWhhbGYgICAgICAgICAgIHsgcGFkZGluZzogICAgICAgJGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnNvZnQtaGFsZi0tdG9wICAgICAgeyBwYWRkaW5nLXRvcDogICAkaGFsZi1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4uc29mdC1oYWxmLS1yaWdodCAgICB7IHBhZGRpbmctcmlnaHQ6ICRoYWxmLXNwYWNpbmctdW5pdCFpbXBvcnRhbnQ7IH1cbi5zb2Z0LWhhbGYtLWJvdHRvbSAgIHsgcGFkZGluZy1ib3R0b206JGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuLnNvZnQtaGFsZi0tbGVmdCAgICAgeyBwYWRkaW5nLWxlZnQ6ICAkaGFsZi1zcGFjaW5nLXVuaXQhaW1wb3J0YW50OyB9XG4uc29mdC1oYWxmLS1lbmRzICAgICB7IHBhZGRpbmctdG9wOiAgICRoYWxmLXNwYWNpbmctdW5pdCFpbXBvcnRhbnQ7IHBhZGRpbmctYm90dG9tOiRoYWxmLXNwYWNpbmctdW5pdCFpbXBvcnRhbnQ7IH1cbi5zb2Z0LWhhbGYtLXNpZGVzICAgIHsgcGFkZGluZy1yaWdodDogJGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OiAgJGhhbGYtc3BhY2luZy11bml0IWltcG9ydGFudDsgfVxuXG4uaGFyZCAgICAgICAgICAgeyBwYWRkaW5nOiAgICAgICAwIWltcG9ydGFudDsgfVxuLmhhcmQtLXRvcCAgICAgIHsgcGFkZGluZy10b3A6ICAgMCFpbXBvcnRhbnQ7IH1cbi5oYXJkLS1yaWdodCAgICB7IHBhZGRpbmctcmlnaHQ6IDAhaW1wb3J0YW50OyB9XG4uaGFyZC0tYm90dG9tICAgeyBwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudDsgfVxuLmhhcmQtLWxlZnQgICAgIHsgcGFkZGluZy1sZWZ0OiAgMCFpbXBvcnRhbnQ7IH1cbi5oYXJkLS1lbmRzICAgICB7IHBhZGRpbmctdG9wOiAgIDAhaW1wb3J0YW50OyBwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudDsgfVxuLmhhcmQtLXNpZGVzICAgIHsgcGFkZGluZy1yaWdodDogMCFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDogIDAhaW1wb3J0YW50OyB9XG5cblxuLyoqXG4gKiBQdWxsIGl0ZW1zIGZ1bGwgd2lkdGggb2YgYC5pc2xhbmRgIHBhcmVudHMuXG4gKi9cbi5mdWxsLWJsZWVke1xuICAgIG1hcmdpbi1yaWdodDotJGJhc2Utc3BhY2luZy11bml0IWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogLSRiYXNlLXNwYWNpbmctdW5pdCFpbXBvcnRhbnQ7XG5cbiAgICAuaXNsZXQgJntcbiAgICAgICAgbWFyZ2luLXJpZ2h0Oi0oJGhhbGYtc3BhY2luZy11bml0KSFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtKCRoYWxmLXNwYWNpbmctdW5pdCkhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuXG4vKipcbiAqIEFkZCBhIGhlbHAgY3Vyc29yIHRvIGFueSBlbGVtZW50IHRoYXQgZ2l2ZXMgdGhlIHVzZXIgZXh0cmEgaW5mb3JtYXRpb24gb25cbiAqIGA6aG92ZXJgLlxuICovXG4uaW5mb3JtYXRpdmV7XG4gICAgY3Vyc29yOmhlbHAhaW1wb3J0YW50O1xufVxuXG5cbi8qKlxuICogTXV0ZSBhbiBvYmplY3QgYnkgcmVkdWNpbmcgaXRzIG9wYWNpdHkuXG4gKi9cbi5tdXRlZHtcbiAgICBvcGFjaXR5OjAuNSFpbXBvcnRhbnQ7XG4gICAgZmlsdGVyOmFscGhhKG9wYWNpdHkgPSA1MCkhaW1wb3J0YW50O1xufVxuXG5cbi8qKlxuICogQWxpZ24gaXRlbXMgdG8gdGhlIHJpZ2h0IHdoZXJlIHRoZXkgaW1wbHkgcHJvZ3Jlc3Npb24vbW92ZW1lbnQgZm9yd2FyZCwgZS5nLjpcbiAqXG4gICA8cCBjbGFzcz1wcm9jZWVkPjxhIGhyZWY9Iz5SZWFkIG1vcmUuLi48L2E+PC9wPlxuICpcbiAqL1xuLnByb2NlZWR7XG4gICAgdGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnQ7XG59XG5cblxuLyoqXG4gKiBBZGQgYSByaWdodC1hbmdsZWQgcXVvdGUgdG8gbGlua3MgdGhhdCBpbXBseSBtb3ZlbWVudCwgZS5nLjpcbiAqXG4gICA8YSBocmVmPSMgY2xhc3M9Z28+UmVhZCBtb3JlPC9hPlxuICpcbiAqL1xuLmdvOmFmdGVye1xuICAgIGNvbnRlbnQ6XCJcXDAwQTBcIiBcIlxcMDBCQlwiIWltcG9ydGFudDtcbn1cblxuXG4vKipcbiAqIEFwcGx5IGNhcGl0YWwgY2FzZSB0byBhbiBlbGVtZW50ICh1c3VhbGx5IGEgYHN0cm9uZ2ApLlxuICovXG4uY2Fwc3tcbiAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2UhaW1wb3J0YW50O1xufVxuXG5cbi8qKlxuICogSGlkZSBjb250ZW50IG9mZi1zY3JlZW4gd2l0aG91dCByZXNvcnRpbmcgdG8gYGRpc3BsYXk6bm9uZTtgLCBhbHNvIHByb3ZpZGVcbiAqIGJyZWFrcG9pbnQgc3BlY2lmaWMgaGlkZGVuIGVsZW1lbnRzLlxuICovXG5AbWl4aW4gYWNjZXNzaWJpbGl0eXtcbiAgICBib3JkZXI6MCFpbXBvcnRhbnQ7XG4gICAgY2xpcDpyZWN0KDAgMCAwIDApIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6MXB4IWltcG9ydGFudDtcbiAgICBtYXJnaW46LTFweCFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOjAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6MXB4IWltcG9ydGFudDtcbn1cbi5hY2Nlc3NpYmlsaXR5LFxuLnZpc3VhbGx5aGlkZGVue1xuICAgIEBpbmNsdWRlIGFjY2Vzc2liaWxpdHk7XG59XG5AaWYgJHJlc3BvbnNpdmV7XG4gICAgQGVhY2ggJHN0YXRlIGluIHBhbG0sIGxhcCwgbGFwLWFuZC11cCwgcG9ydGFibGUsIGRlc2ssIGRlc2std2lkZXtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoI3skc3RhdGV9KXtcbiAgICAgICAgICAgIC5hY2Nlc3NpYmlsaXR5LS0jeyRzdGF0ZX0sXG4gICAgICAgICAgICAudmlzdWFsbHloaWRkZW4tLSN7JHN0YXRlfXtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmlsaXR5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmICRkZWJ1Zy1tb2RlID09IHRydWV7XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRERUJVR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogRW5hYmxlIHRoaXMgc3R5bGVzaGVldCB0byB2aXN1YWxseSBkZXRlY3QgYW55IGltcHJvcGVybHkgbmVzdGVkIG9yXG4gKiBwb3RlbnRpYWxseSBpbnZhbGlkIG1hcmt1cCwgb3IgYW55IHBvdGVudGlhbGx5IGluYWNjZXNzaWJsZSBjb2RlLlxuICpcbiAqIFJlZCAgICAgICAgICA9PSAgICAgIGRlZmluaXRlIGVycm9yXG4gKiBZZWxsb3cgICAgICAgPT0gICAgICBkb3VibGUtY2hlY2tcbiAqIE5vbmUgICAgICAgICA9PSAgICAgIHNob3VsZCBiZSBmaW5lXG4gKlxuICogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIG1ldGhvZCBvZiBjaGVja2luZyBtYXJrdXAgcXVhbGl0eSBzaG91bGQgbm90IGJlIHJlbGllZFxuICogdXBvbiBlbnRpcmVseS4gVmFsaWRhdGUgeW91ciBtYXJrdXAhXG4gKi9cblxuXG4vKipcbiAqIEFyZSB0aGVyZSBhbnkgZW1wdHkgZWxlbWVudHMgaW4geW91ciBwYWdlP1xuICovXG46ZW1wdHl7XG4gICAgb3V0bGluZTo1cHggc29saWQgeWVsbG93O1xufVxuXG5cbi8qKlxuICogSW1hZ2VzIHJlcXVpcmUgYGFsdGAgYXR0cmlidXRlcywgZW1wdHkgYGFsdGBzIGFyZSBmaW5lIGJ1dCBzaG91bGQgYmVcbiAqIGRvdWJsZS1jaGVja2VkLCBubyBgYWx0YCBpcyBiYWQgYW5kIGlzIGZsYWdnZWQgcmVkLlxuICovXG5pbWd7XG4gICAgb3V0bGluZTo1cHggc29saWQgcmVkO1xufVxuaW1nW2FsdF17XG4gICAgb3V0bGluZTpub25lO1xufVxuaW1nW2FsdD1cIlwiXXtcbiAgICBvdXRsaW5lOjVweCBzb2xpZCB5ZWxsb3c7XG59XG5cblxuLyoqXG4gKiBMaW5rcyBzb21ldGltZXMsIHRob3VnaCBub3QgYWx3YXlzLCBiZW5lZml0IGZyb20gYHRpdGxlYCBhdHRyaWJ1dGVzLiBMaW5rc1xuICogd2l0aG91dCBhcmUgbmV2ZXIgaW52YWxpZCBidXQgaXTigJlzIGEgZ29vZCBpZGVhIHRvIGNoZWNrLlxuICovXG5he1xuICAgIG91dGxpbmU6NXB4IHNvbGlkIHllbGxvdztcbn1cbmFbdGl0bGVde1xuICAgIG91dGxpbmU6bm9uZTtcbn1cblxuXG4vKipcbiAqIERvdWJsZS1jaGVjayBhbnkgbGlua3Mgd2hvc2UgYGhyZWZgIGlzIHNvbWV0aGluZyBxdWVzdGlvbmFibGUuXG4gKi9cbmFbaHJlZj1cIiNcIl0sXG5hW2hyZWYqPVwiamF2YXNjcmlwdFwiXXtcbiAgICBvdXRsaW5lOjVweCBzb2xpZCB5ZWxsb3c7XG59XG5cblxuLyoqXG4gKiBUaGUgYHRhcmdldGAgYXR0cmlidXRlIGFpbuKAmXQgdG9vIG5pY2UuLi5cbiAqL1xuYVt0YXJnZXRde1xuICAgIG91dGxpbmU6NXB4IHNvbGlkIHllbGxvdztcbn1cblxuXG4vKipcbiAqIEVuc3VyZSBhbnkgbGlzdHMgb25seSBjb250YWluIGBsaWBzIGFzIGNoaWxkcmVuLlxuICovXG51bCxcbm9se1xuICAgID4gKjpub3QobGkpe1xuICAgICAgICBvdXRsaW5lOjVweCBzb2xpZCByZWQ7XG4gICAgfVxufVxuXG5cbi8qKlxuICogSXTigJlzIGFsd2F5cyBuaWNlIHRvIGdpdmUgYHRoYHMgYHNjb3BlYCBhdHRyaWJ1dGVzLlxuICovXG50aHtcbiAgICBvdXRsaW5lOjVweCBzb2xpZCB5ZWxsb3c7XG59XG50aFtzY29wZV17XG4gICAgb3V0bGluZTpub25lO1xufVxuXG5cbi8qKlxuICogYHRyYHMgYXMgY2hpbGRyZW4gb2YgYHRhYmxlYHMgYWlu4oCZdCBncmVhdCwgZGlkIHlvdSBuZWVkIGEgYHRoZWFkYC9gdGJvZHlgP1xuICovXG50YWJsZSA+IHRye1xuICAgIG91dGxpbmU6NXB4IHNvbGlkIHllbGxvdztcbn1cblxuXG4vKipcbiAqIGB0Zm9vdGAgbmVlZHMgdG8gY29tZSAqYmVmb3JlKiBgdGJvZHlgLlxuICovXG50Ym9keSArIHRmb290e1xuICAgIG91dGxpbmU6NXB4IHNvbGlkIHllbGxvdztcbn1cblxuXG4vKipcbiAqIEZvcm1zIHJlcXVpcmUgYGFjdGlvbmAgYXR0cmlidXRlc1xuICovXG5mb3Jte1xuICAgIG91dGxpbmU6NXB4IHNvbGlkIHJlZDtcbn1cbmZvcm1bYWN0aW9uXXtcbiAgICBvdXRsaW5lOm5vbmU7XG59XG5cblxuLyoqXG4gKiBWYXJpb3VzIGZvcm0tZmllbGQgdHlwZXMgaGF2ZSByZXF1aXJlZCBhdHRyaWJ1dGVzLiBgaW5wdXRgcyBuZWVkIGB0eXBlYFxuICogYXR0cmlidXRlcywgYHRleHRhcmVhYHMgbmVlZCBgcm93c2AgYW5kIGBjb2xzYCBhdHRyaWJ1dGVzIGFuZCBzdWJtaXQgYnV0dG9uc1xuICogbmVlZCBhIGB2YWx1ZWAgYXR0cmlidXRlLlxuICovXG50ZXh0YXJlYSxcbmlucHV0e1xuICAgIG91dGxpbmU6NXB4IHNvbGlkIHJlZDtcbn1cbmlucHV0W3R5cGVde1xuICAgIG91dGxpbmU6bm9uZTtcbn1cbnRleHRhcmVhW3Jvd3NdW2NvbHNde1xuICAgIG91dGxpbmU6bm9uZTtcbn1cbmlucHV0W3R5cGU9c3VibWl0XXtcbiAgICBvdXRsaW5lOjVweCBzb2xpZCByZWQ7XG59XG5pbnB1dFt0eXBlPXN1Ym1pdF1bdmFsdWVde1xuICAgIG91dGxpbmU6bm9uZTtcbn1cblxuXG4vKipcbiAqIEF2b2lkIGlubGluZSBzdHlsZXMgd2hlcmUgcG9zc2libGUuXG4gKi9cbltzdHlsZV17XG5cdG91dGxpbmU6NXB4IHNvbGlkIHllbGxvdztcbn1cblxuXG4vKipcbiAqIFlvdSBzaG91bGQgYXZvaWQgdXNpbmcgSURzIGZvciBDU1MsIGlzIHRoaXMgZG9pbmcgYW55IHN0eWxpbmc/XG4gKi9cbltpZF17XG5cdG91dGxpbmU6NXB4IHNvbGlkIHllbGxvdztcbn1cblxuXG4vKipcbiAqIEFyZSB5b3UgdXNpbmcgdGhlIGdyaWQgc3lzdGVtIGNvcnJlY3RseT9cbiAqL1xuLmd3ID4gOm5vdCguZyksXG4uZ3JpZC13cmFwcGVyID4gOm5vdCguZ3JpZCksXG4uZ3ctLXJldiA+IDpub3QoLmcpLFxuLmdyaWQtd3JhcHBlci0tcmV2ID4gOm5vdCguZ3JpZCl7XG5cdG91dGxpbmU6NXB4IHNvbGlkIHJlZDtcbn1cblxufS8qIGVuZGlmICovXG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vIERlZmF1bHQgVmFyaWFibGVzXG5cbiRzbGljay1mb250LXBhdGg6IFwiLi9mb250cy9cIiAhZGVmYXVsdDtcbiRzbGljay1mb250LWZhbWlseTogXCJzbGlja1wiICFkZWZhdWx0O1xuJHNsaWNrLWxvYWRlci1wYXRoOiBcIi4vXCIgIWRlZmF1bHQ7XG4kc2xpY2stYXJyb3ctY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNvbG9yLWFjdGl2ZTogJHNsaWNrLWRvdC1jb2xvciAhZGVmYXVsdDtcbiRzbGljay1wcmV2LWNoYXJhY3RlcjogXCLihpBcIiAhZGVmYXVsdDtcbiRzbGljay1uZXh0LWNoYXJhY3RlcjogXCLihpJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3QtY2hhcmFjdGVyOiBcIuKAolwiICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1zaXplOiA2cHggIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1kZWZhdWx0OiAwLjc1ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktb24taG92ZXI6IDEgIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlOiAwLjI1ICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gc2xpY2staW1hZ2UtdXJsKCR1cmwpIHtcbiAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKGltYWdlLXVybCkge1xuICAgICAgICBAcmV0dXJuIGltYWdlLXVybCgkdXJsKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIHVybCgkc2xpY2stbG9hZGVyLXBhdGggKyAkdXJsKTtcbiAgICB9XG59XG5cbkBmdW5jdGlvbiBzbGljay1mb250LXVybCgkdXJsKSB7XG4gICAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhmb250LXVybCkge1xuICAgICAgICBAcmV0dXJuIGZvbnQtdXJsKCR1cmwpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gdXJsKCRzbGljay1mb250LXBhdGggKyAkdXJsKTtcbiAgICB9XG59XG5cbi8qIFNsaWRlciAqL1xuXG4uc2xpY2stbGlzdCB7XG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmYgc2xpY2staW1hZ2UtdXJsKFwiYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIH1cbn1cblxuLyogSWNvbnMgKi9cbkBpZiAkc2xpY2stZm9udC1mYW1pbHkgPT0gXCJzbGlja1wiIHtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdFwiKTtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgfVxufVxuXG4vKiBBcnJvd3MgKi9cblxuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMHB4O1xuICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEwcHhcXDk7IC8qbHRlIElFIDgqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgICB9XG59XG5cbi5zbGljay1wcmV2OmJlZm9yZSwgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogJHNsaWNrLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHNsaWNrLWFycm93LWNvbG9yO1xuICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IC0yNXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtMjVweDtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG4gICAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICAgICBjb250ZW50OiAkc2xpY2stbmV4dC1jaGFyYWN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zbGljay1uZXh0IHtcbiAgICByaWdodDogLTI1cHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgbGVmdDogLTI1cHg7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogRG90cyAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4uc2xpY2stZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTQ1cHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHNsaWNrLWRvdC1jaGFyYWN0ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkc2xpY2stZG90LXNpemU7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgICAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJcblxuLyohIGZhbmN5Qm94IHYyLjEuNSBmYW5jeWFwcHMuY29tIHwgZmFuY3lhcHBzLmNvbS9mYW5jeWJveC8jbGljZW5zZSAqL1xuLmZhbmN5Ym94LXdyYXAsXG4uZmFuY3lib3gtc2tpbixcbi5mYW5jeWJveC1vdXRlcixcbi5mYW5jeWJveC1pbm5lcixcbi5mYW5jeWJveC1pbWFnZSxcbi5mYW5jeWJveC13cmFwIGlmcmFtZSxcbi5mYW5jeWJveC13cmFwIG9iamVjdCxcbi5mYW5jeWJveC1uYXYsXG4uZmFuY3lib3gtbmF2IHNwYW4sXG4uZmFuY3lib3gtdG1wXG57XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRvdXRsaW5lOiBub25lO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4uZmFuY3lib3gtd3JhcCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR6LWluZGV4OiA4MDIwO1xufVxuXG4uZmFuY3lib3gtc2tpbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0Y29sb3I6ICM0NDQ7XG5cdHRleHQtc2hhZG93OiBub25lO1xuXG59XG5cbi5mYW5jeWJveC1vcGVuZWQge1xuXHR6LWluZGV4OiA4MDMwO1xufVxuXG4uZmFuY3lib3gtb3BlbmVkIC5mYW5jeWJveC1za2luIHtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cdCAgIC1tb3otYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuXHQgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuLmZhbmN5Ym94LW91dGVyLCAuZmFuY3lib3gtaW5uZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mYW5jeWJveC1pbm5lciB7XG5cdG92ZXJmbG93LXg6IGhpZGRlbiFpbXBvcnRhbnQ7XG5cdG92ZXJmbG93LXk6IGF1dG8haW1wb3J0YW50O1xuXG59XG5cbi5mYW5jeWJveC10eXBlLWlmcmFtZSAuZmFuY3lib3gtaW5uZXIge1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5mYW5jeWJveC1lcnJvciB7XG5cdGNvbG9yOiAjNDQ0O1xuXHRmb250OiAxNHB4LzIwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDE1cHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mYW5jeWJveC1pbWFnZSwgLmZhbmN5Ym94LWlmcmFtZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4uZmFuY3lib3gtaW1hZ2Uge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbiNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHA6Ly9ibG9nLmdvZXRoZS5kZS9yZXNwb25zaXZlL3VwbG9hZHMvaWNvbnMvZmFuY3lib3hfc3ByaXRlLnBuZycpO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiA1MCU7XG5cdGxlZnQ6IDUwJTtcblx0bWFyZ2luLXRvcDogLTIycHg7XG5cdG1hcmdpbi1sZWZ0OiAtMjJweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTA4cHg7XG5cdG9wYWNpdHk6IDAuODtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR6LWluZGV4OiA4MDYwO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyBkaXYge1xuXHR3aWR0aDogNDRweDtcblx0aGVpZ2h0OiA0NHB4O1xuXHRiYWNrZ3JvdW5kOiB1cmwoJ2h0dHA6Ly9ibG9nLmdvZXRoZS5kZS9yZXNwb25zaXZlL3VwbG9hZHMvaWNvbnMvZmFuY3lib3hfbG9hZGluZy5naWYnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbn1cblxuLmZhbmN5Ym94LWNsb3NlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDNweDtcblx0cmlnaHQ6IDNweDtcblx0d2lkdGg6IDM2cHg7XG5cdGhlaWdodDogMzZweDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR6LWluZGV4OiA4MDQwO1xufVxuXG4uZmFuY3lib3gtbmF2IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiA0MCU7XG5cdGhlaWdodDogMTAwJTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcblx0ei1pbmRleDogODA0MDtcbn1cblxuLmZhbmN5Ym94LXByZXYge1xuXHRsZWZ0OiAtNDVweDtcbn1cblxuLmZhbmN5Ym94LW5leHQge1xuXHRyaWdodDogLTQ1cHg7XG59XG5cbi5mYW5jeWJveC1uYXYgc3BhbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdHdpZHRoOiAzNnB4O1xuXHRoZWlnaHQ6IDM0cHg7XG5cdG1hcmdpbi10b3A6IC0xOHB4O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHotaW5kZXg6IDgwNDA7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmZhbmN5Ym94LXByZXYgc3BhbiB7XG5cdGxlZnQ6IDEwcHg7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDAgLTM2cHg7XG59XG5cbi5mYW5jeWJveC1uZXh0IHNwYW4ge1xuXHRyaWdodDogMTBweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNzJweDtcbn1cblxuLmZhbmN5Ym94LW5hdjpob3ZlciBzcGFuIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRtcCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAtOTk5OTlweDtcblx0bGVmdDogLTk5OTk5cHg7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0bWF4LXdpZHRoOiA5OTk5OXB4O1xuXHRtYXgtaGVpZ2h0OiA5OTk5OXB4O1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG4vKiBPdmVybGF5IGhlbHBlciAqL1xuXG4uZmFuY3lib3gtbG9jayB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uZmFuY3lib3gtbG9jayBib2R5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5mYW5jeWJveC1sb2NrLXRlc3Qge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uZmFuY3lib3gtb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRkaXNwbGF5OiBub25lO1xuXHR6LWluZGV4OiA4MDEwO1xuXHRiYWNrZ3JvdW5kOiB1cmwoJ2h0dHA6Ly9ibG9nLmdvZXRoZS5kZS9yZXNwb25zaXZlL3VwbG9hZHMvaWNvbnMvZmFuY3lib3hfb3ZlcmxheS5wbmcnKTtcbn1cblxuLmZhbmN5Ym94LW92ZXJsYXktZml4ZWQge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGJvdHRvbTogMDtcblx0cmlnaHQ6IDA7XG59XG5cbi5mYW5jeWJveC1sb2NrIC5mYW5jeWJveC1vdmVybGF5IHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLyogVGl0bGUgaGVscGVyICovXG5cbi5mYW5jeWJveC10aXRsZSB7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0Zm9udDogbm9ybWFsIDEzcHgvMjBweCBcIkhlbHZldGljYSBOZXVlXCIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdHotaW5kZXg6IDgwNTA7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQgLmZhbmN5Ym94LXRpdGxlIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJvdHRvbTogMDtcblx0cmlnaHQ6IDUwJTtcblx0bWFyZ2luLWJvdHRvbTogLTM1cHg7XG5cdHotaW5kZXg6IDgwNTA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAgLmNoaWxkIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW4tcmlnaHQ6IC0xMDAlO1xuXHRwYWRkaW5nOiAycHggMjBweDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IC8qIEZhbGxiYWNrIGZvciB3ZWIgYnJvd3NlcnMgdGhhdCBkb2Vzbid0IHN1cHBvcnQgUkdCYSAqL1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG5cblx0dGV4dC1zaGFkb3c6IDAgMXB4IDJweCAjMjIyO1xuXHRjb2xvcjogI0ZGRjtcblx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mYW5jeWJveC10aXRsZS1vdXRzaWRlLXdyYXAge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdGNvbG9yOiAjZmZmO1xufVxuXG4uZmFuY3lib3gtdGl0bGUtaW5zaWRlLXdyYXAge1xuXHRwYWRkaW5nLXRvcDogMTBweDtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLW92ZXItd3JhcCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHRjb2xvcjogI2ZmZjtcblx0cGFkZGluZzogMTBweDtcblx0YmFja2dyb3VuZDogIzAwMDtcblx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuOCk7XG59XG5cbi8qUmV0aW5hIGdyYXBoaWNzISovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksXG5cdCAgIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxuXHQgICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSl7XG5cblx0I2ZhbmN5Ym94LWxvYWRpbmcsIC5mYW5jeWJveC1jbG9zZSwgLmZhbmN5Ym94LXByZXYgc3BhbiwgLmZhbmN5Ym94LW5leHQgc3BhbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwOi8vYmxvZy5nb2V0aGUuZGUvcmVzcG9uc2l2ZS91cGxvYWRzL2ljb25zL2ZhbmN5Ym94X3Nwcml0ZTJ4Mi5wbmcnKTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDQ0cHggMTUycHg7IC8qVGhlIHNpemUgb2YgdGhlIG5vcm1hbCBpbWFnZSwgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgaGktcmVzIGltYWdlKi9cblx0fVxuXG59XG4iLCIuZm9udC0tYmFzZSB7XG5cdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcblx0bGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xufVxuXG4uZm9udC0tYmFzZS0taW1wb3J0YW50IHtcblx0Zm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5IWltcG9ydGFudDtcbn1cblxuXG4uZm9udC0tYm9sZCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZm9udC0tbm9ybWFsIHtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCFpbXBvcnRhbnQ7XG59XG5cbi5mb250LS1pdGFsaWMge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qIEgncyAqL1xuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiBcdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmgyLCAuYmV0YSB7XG5cdGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5mb250LS1wb3NpdGl2ZSB7XG5cdGNvbG9yOiAkY29sb3ItYmxhY2s7XG59XG5cbi5mb250LS1uZWdhdGl2ZSB7XG5cdGNvbG9yOiAkY29sb3Itd2hpdGU7XG59XG5cbi51cHBlcmNhc2Uge1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udGV4dC1hbGlnbi0tY2VudGVyIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udGV4dC1hbGlnbi0tcmlnaHQge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRpc3BsYXktLWlubGluZS1ibG9jayB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qXG5cbi5oaWRlLS1wYWxtIHtcblx0QGluY2x1ZGUgbWVkaWEtcXVlcnkocGFsbSkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmhpZGUtLWRlc2sge1xuXHRAaW5jbHVkZSBtZWRpYS1xdWVyeShkZXNrKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uaGlkZS0tbGFwIHtcblx0QGluY2x1ZGUgbWVkaWEtcXVlcnkobGFwKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuKi9cblxuLnNwcml0ZS0taW5saW5lLWJsb2NrLCAuc3ZnLWljb24ge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5pY29uLS1yb3VuZGVkIHtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItY2k7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZSFpbXBvcnRhbnQ7XG59XG5cbi5yb3RhdGVkLS05MCB7XG5cdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cblxuLnJvdGF0ZWQtLTE4MCB7XG5cdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbi5yb3RhdGVkLS0yNzAge1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xufVxuXG4uc3ZnLWljb24tYnVyZ2VyIHtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdG1hcmdpbi10b3A6IC00cHg7XG59XG5cbi5naS1tYXJrIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nLWxlZnQ6IDUlO1xuXHRsaW5lLWhlaWdodDogMS44O1xuXHRmb250LXNpemU6IDE4cHg7XG59XG5cbmJvZHkge1xuXHQgcGFkZGluZy1sZWZ0OiAkaGFsZi1zcGFjaW5nLXVuaXQ7XG5cdCBwYWRkaW5nLXJpZ2h0OiAkaGFsZi1zcGFjaW5nLXVuaXQ7XG59XG5cbi5ibG9nLWxvZ28ge1xuXHRwYWRkaW5nLXRvcDogMzBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRtYXgtd2lkdGg6IDEyODBweDtcblx0d2lkdGg6IDEwMCU7XG5cbn1cblxuI3dyYXBwZXIge1xuXHQvLyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblx0YmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6IG5vbmU7XG5cdG1hcmdpbjogMHB4IGF1dG87XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0Ly8gbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuXHRtYXgtd2lkdGg6IDEyODBweDtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xufVxuXG4jc2VyZW5kaXBpdHlfYmFubmVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuI2Jhbm5lciwgLmJsb2ctdGl0bGUge1xuXHRtYXJnaW46IDAgYXV0bztcblx0bWF4LXdpZHRoOiAxMjgwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXG5cdGltZyB7XG5cdFx0cGFkZGluZzogMCFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmJsb2ctdGl0bGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHZpc2liaWxpdHk6IHZpc2libGUhaW1wb3J0YW50O1xuXG5cdD4gZGl2IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogNCU7XG5cdFx0bWFyZ2luLXRvcDogNCU7XG5cdFx0ei1pbmRleDogOTAwMDtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0fVxufVxuXG4uZW50cnktdGl0bGUsIC5zZXJlbmRpcGl0eV9kYXRlIHtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0cGFkZGluZzogJGJhc2Utc3BhY2luZy11bml0ICRiYXNlLXNwYWNpbmctdW5pdCAxZW0gJGJhc2Utc3BhY2luZy11bml0O1xufVxuXG4uc2VyZW5kaXBpdHlfZGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXG5cdGFiYnIge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogLW1vei1ub25lO1xuXHRcdGN1cnNvcjogaW5pdGlhbDtcblx0fVxufVxuXG4uc2VyZW5kaXBpdHlTaWRlQmFySXRlbSB7XG5cdG1hcmdpbjogMCAwIDFweCAkYmFzZS1zcGFjaW5nLXVuaXQ7XG59XG5cbiNzZWFyY2hmb3JtIHtcblx0YnIge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLnN0YXRpY3BhZ2VfbWV0YWluZm8sIC5zdGF0aWNwYWdlX2F1dGhvciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby13cmFwIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHQ+IGJyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0PiBpZnJhbWUsID4gZGl2IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuXHRcdGhlaWdodDogMTAwJSFpbXBvcnRhbnQ7XG5cdH1cblxuXHQmLl8xNmJ5OSB7XG5cdFx0cGFkZGluZy1ib3R0b206IDU2LjI1JTtcblx0fVxuXHQmLl80YnkzIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogNzUlO1xuXHR9XG59XG5cbi5uYXYtY2F0ZWdvcnkge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRtYXgtd2lkdGg6IDEwMjRweDtcblx0d2lkdGg6IDEwMCU7XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRlc2stc3RhcnQpIHtcblx0IHdpZHRoOiAxMDAlO1xuXHQgcGFkZGluZzogMDtcblx0IG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbn1cblxuLm5hdi1jYXRlZ29yeV9faGVhZCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkZGVzay1zdGFydCkge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cblx0XHQ+IGIgPiBzcGFuIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDVweDtcblx0XHR9XG5cblx0fVxufVxuXG4ubmF2LWNhdGVnb3J5X19pbm5lciB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dHJhbnNpdGlvbjogaGVpZ2h0IDAuM3M7XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRlc2stc3RhcnQpIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXAtc3RhcnQpIHtcblx0XHRoZWlnaHQ6IDA7XG5cblx0XHQ+IGEge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG5cdFx0PiBzcGFuIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuIFx0fVxuXG59XG5cbi5uYXYtY2F0ZWdvcnlfX2lubmVyX19hbGlnbmVyIHtcblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkZGVzay1zdGFydCkge1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cdH1cblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbGFwLXN0YXJ0KSB7XG5cdFx0PiBhIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdD4gc3BhbiB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cbiBcdH1cbn1cblxuLm1vYmlsZS1uYXYge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGJhY2tncm91bmQ6ICRjb2xvci1jaS0ybmQ7XG5cdHRvcDowO1xuXHRsZWZ0OiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG5cdHJpZ2h0OiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG5cdHotaW5kZXg6IDkwMDA7XG5cdHRyYW5zaXRpb246IGhlaWdodCAwLjNzO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkZXNrLXN0YXJ0KSB7XG5cdFx0ZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuXHR9XG59XG5cbi5tb2JpbGUtbmF2X19sYW5nIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogODAlO1xuXG5cdGZvcm0ge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXG5cdFx0PiBkaXYge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdEBleHRlbmQgLnN2Zy1pY29uLWFycm93O1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAzcHg7XG5cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRzZWxlY3Qge1xuXHRcdGRpcmVjdGlvbjogcnRsO1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRib3JkZXI6IG5vbmUhaW1wb3J0YW50O1xuXHRcdGNvbG9yOiNmZmY7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLm1vYmlsZS1uYXZfX2lubmVyIHtcblx0aGVpZ2h0OiAwO1xuXHR0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcztcbn1cblxuLm1vYmlsZS1uYXZfX2hlYWQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4ubW9iaWxlLW5hdl9faW5uZXJfX2FsaWduZXIge1xuXHRwYWRkaW5nOiAxMHB4O1xuXG5cdD4gYSB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRjb2xvcjogJGNvbG9yLXdoaXRlO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjhlbTtcblx0fVxuXG59XG5cbiNiYW5uZXJfbGFuZ3VhZ2Uge1xuXG5cdD4gYSB7XG5cblx0XHQ+IGltZzpmaXJzdC1jaGlsZCB7XG5cblx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkZXNrLXN0YXJ0KSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuXHRcdFx0fVxuXG5cdFx0XHQrIGltZyB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRlc2stc3RhcnQpIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0fVxufVxuXG4jY29udGVudCB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG5cdEBleHRlbmQgLnRocmVlLXF1YXJ0ZXJzO1xuXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cblx0PiBiciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uc2VyZW5kaXBpdHlfY29tbWVudCB7XG5cdHBhZGRpbmc6IDA7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG5cdHBhZGRpbmctYm90dG9tOiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uc2VyZW5kaXBpdHlfY29tbWVudEJvZHkge1xuXHRwYWRkaW5nLXRvcDogMDtcbn1cblxuI3NlcmVuZGlwaXR5UmlnaHRTaWRlQmFyLFxuI3NlcmVuZGlwaXR5TGVmdFNpZGVCYXIge1xuIFx0XHRAZXh0ZW5kIC5vbmUtcXVhcnRlcjtcblx0XHRtYXJnaW4tbGVmdDogaW5oZXJpdDtcblx0XHRtYXJnaW4tcmlnaHQ6IGluaGVyaXQ7XG5cdFx0bWFyZ2luLXRvcDogJGJhc2Utc3BhY2luZy11bml0O1xuXHRcdD4gKiB7XG5cdFx0XHRwYWRkaW5nOiAkaGFsZi1zcGFjaW5nLXVuaXQ7XG5cdFx0fVxuXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmVudHJ5LWNvbnRlbnQge1xuXHRtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nLXVuaXQqMjtcblx0bWFyZ2luLXJpZ2h0OiAkYmFzZS1zcGFjaW5nLXVuaXQqNDtcbn1cblxuLm1hc29ucnkgLmVudHJ5LWNvbnRlbnQge1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5tYXNvbnJ5IC5mdWxsLXdpZHRoIC5lbnRyeS1jb250ZW50IHtcblx0bWFyZ2luLXJpZ2h0OiAkYmFzZS1zcGFjaW5nLXVuaXQqNDtcbn1cblxuLnNpZGVuYXYtaHRtbC1udWdnZXQtaW5uZXIge1xuXHRtYXJnaW46IC0kaGFsZi1zcGFjaW5nLXVuaXQ7XG5cdHBhZGRpbmc6ICRoYWxmLXNwYWNpbmctdW5pdDtcbn1cblxuLnNlcmVuZGlwaXR5U2lkZUJhckNvbnRlbnQge1xuXHRpbnB1dFt0eXBlPVwidGV4dFwiXSxcblx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcblx0c2VsZWN0IHtcblx0ICB3aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nOiA4cHggNXB4O1xuXHRcdGFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdH1cblxuXHRzZWxlY3Qge1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdCFpbXBvcnRhbnQ7XG5cdH1cblxuXHQuY2F0ZWdvcnlfc3VibWl0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXG5cdFx0YnIge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdFx0aW5wdXQge1xuXHRcdFx0XHR3aWR0aDogNTBweDtcblx0XHR9XG5cdH1cblxuXHQuY2F0ZWdvcnlfbGlua19hbGwge1xuXHRcdGNsZWFyOiBsZWZ0O1xuXHR9XG5cblx0I3NlcmVuZGlwaXR5X2NhdGVnb3JpZXNfbGlzdCB7XG5cdFx0bGkgPiAqIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXHR9XG5cbn1cblxuI3NpdGVuYXYsICNzaXRlbmF2LW1hbnVlbGwge1xuXHRtYXJnaW46IDAgLTUwMHB4ICRiYXNlLXNwYWNpbmctdW5pdCAwO1xuICBwYWRkaW5nOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXI6IG5vbmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0dWwge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG5cdCNzZWFyY2hmb3JtIHtcblx0XHQvLyBEZWFjdGl2YXRlZCB3ZWlsIGRpZSBqZXR6dCBkb2NoIG5pY2h0IGdld8O8bnNjaHQgaXN0LlxuXHRcdGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuXHRcdHdpZHRoOiAzMy4zMzMzJTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0cGFkZGluZy1sZWZ0OiAyOXB4O1xuXG5cdFx0aW5wdXQge1xuXHRcdFx0XHRwYWRkaW5nOiA2cHg7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdH1cblx0fVxufVxuXG5cbiNzaXRlbmF2LW1hbnVlbGwge1xuXG5cdD4gdWwge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdD4gbGkge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblx0XHRcdD4gYSB7XG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdCAgbWFyZ2luOiAwO1xuXHRcdFx0ICBwYWRkaW5nOiA5cHggMjBweCA1cHggJGhhbGYtc3BhY2luZy11bml0O1xuXHRcdFx0ICBvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblx0XHR9XG5cblx0fVxufVxuXG4uc2VyZW5kaXBpdHlfY29tbWVudHMge1xuXHRwYWRkaW5nLWxlZnQ6ICRiYXNlLXNwYWNpbmctdW5pdDtcbn1cblxuLnNlcmVuZGlwaXR5X2VudHJ5IHtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdHBhZGRpbmctbGVmdDogJGJhc2Utc3BhY2luZy11bml0O1xuXHRcdHBhZGRpbmctYm90dG9tOiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG5cdFx0cGFkZGluZy1yaWdodDogJGJhc2Utc3BhY2luZy11bml0O1xuXG5cdCBpbWcge1xuXHQgXHR3aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206ICRoYWxmLXNwYWNpbmctdW5pdDtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxufVxuXG4ubWFzcm9ucnkgLnNlcmVuZGlwaXR5X2VudHJ5IHtcblx0cGFkZGluZzogMCAxMCU7XG5cbn1cblxuLnNlcmVuZGlwaXR5X2VudHJ5IC5zZXJlbmRpcGl0eV9pbWFnZV9sZWZ0IHtcblx0d2lkdGg6IDUwJTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IDEuNTVlbSFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1ib3R0b206IDFlbSFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDAhaW1wb3J0YW50O1xufVxuXG5pZnJhbWUge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLnNlcmVuZGlwaXR5X0VudHJ5X0RhdGUge1xuXG5cblx0bWFyZ2luOiAwIDAgJGJhc2Utc3BhY2luZy11bml0IDA7XG5cblx0Ji5mdWxsLXdpZHRoIHtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHR9XG5cbn1cblxuLnNlcmVuZGlwaXR5X3RpdGxlIHtcblx0cGFkZGluZy1sZWZ0OiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG5cdHBhZGRpbmctdG9wOiAxZW07XG5cdHBhZGRpbmctYm90dG9tOiAxZW07XG59XG5cbi5tYXNvbnJ5IC5zZXJlbmRpcGl0eV9FbnRyeV9EYXRlIHtcblx0ZGlzcGxheTogbm9uZTtcblxuXHQmLmhlbnRyeSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHRwYWRkaW5nLWxlZnQ6ICRiYXNlLXNwYWNpbmctdW5pdDtcblx0cGFkZGluZy1ib3R0b206IDA7XG5cdGZsb2F0OiBsZWZ0O1xuXHRAZXh0ZW5kIC5vbmUtdGhpcmQ7XG5cdHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXJnaW4sIG9wYWNpdHk7XG5cblx0Ji5ncmV5ZWQge1xuXHRcdG9wYWNpdHk6IDAuNTtcblx0fVxuXHQvLyA/PyBLYW5uIG5pY2h0IGdyZWlmZW5cblx0Ly8gLm1hc29ucnktY29udGFpbmVyICYge1xuXHQvL1xuXHQvLyBcdG1hcmdpbi10b3A6ICRiYXNlLXNwYWNpbmctdW5pdDtcblx0Ly9cblx0Ly8gXHQuc2VyZW5kaXBpdHlfaW1hZ2VDb21tZW50X3R4dCB7XG5cdC8vIFx0XHRkaXNwbGF5OiBub25lO1xuXHQvLyBcdH1cblx0Ly9cblx0Ly8gXHQmOmhvdmVyIHtcblx0Ly8gXHRcdG1hcmdpbi10b3A6IDE3cHg7XG5cdC8vIFx0fVxuXHQvL1xuXHQvLyBcdGltZyB7XG5cdC8vIFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdC8vIFx0fVxuXHQvLyB9XG5cblx0Ji5mdWxsLXdpZHRoIHtcblx0XHRkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XG5cdFx0d2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblxuXHRcdGltZyB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1hcmdpbjogMCAkaGFsZi1zcGFjaW5nLXVuaXQgMCAwO1xuXG5cdFx0XHQmLnNlcmVuZGlwaXR5X2ltYWdlX2xlZnQge1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxufVxuXG5cbi5zZXJlbmRpcGl0eV9wYWdlRm9vdGVyIHtcbiAgcGFkZGluZy10b3A6ICRiYXNlLXNwYWNpbmctdW5pdCoyO1xuICBwYWRkaW5nLWJvdHRvbTogJGJhc2Utc3BhY2luZy11bml0KjI7XG59XG5cbi5jb250YWluZXJfc2VyZW5kaXBpdHlfcXVpY2tzZWFyY2hfcGx1Z2luIHtcblxuXHQucXVpY2tzZWFyY2hfc3VibWl0IHtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IDkwMDA7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cbn1cblxudGFibGUuc2VyZW5kaXBpdHlfY2FsZW5kYXIge1xuXHR3aWR0aDogMTAwJTtcblxuXHR0aCwgdGQge1xuXHRcdHBhZGRpbmc6IDNweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHR0aCNmb3J3YXJkIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodCFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLnNsaWRlci0tYmFubmVyIHtcblx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuXHRvcGFjaXR5OiAwO1xuXG5cdCYuc2hvdyB7XG5cdFx0b3BhY2l0eTogMSFpbXBvcnRhbnRcblx0fVxuXG5cdC5pbWFnZV9jb3B5cmlnaHQge1xuXHRcdHJpZ2h0OiA1cHg7XG5cdH1cbn1cblxuLnNsaWNrLXNsaWRlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2xpY2stbmV4dCB7XG5cdHJpZ2h0OiAwO1xuXHR6LWluZGV4OiA5MDAwO1xufVxuXG4uc2xpY2stcHJldiB7XG5cdGxlZnQ6IDA7XG5cdHotaW5kZXg6IDkwMDA7XG59XG5cbi5zbGlkZXJfX2NhcHRpb24ge1xuXHRwYWRkaW5nOiAkaGFsZi1zcGFjaW5nLXVuaXQgJGJhc2Utc3BhY2luZy11bml0O1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4uc2xpZGVyX19jYXB0aW9uX19yaWdodCB7XG5cdEBleHRlbmQgLm9uZS1xdWFydGVyO1xuXHRAZXh0ZW5kIC5wYWxtLW9uZS13aG9sZTtcblx0QGV4dGVuZCAubGFwLW9uZS13aG9sZTtcblxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG5cdGJvdHRvbTogMDtcbn1cblxuLnNsaWRlcl9fY2FwdGlvbl9fcmlnaHRfX2lubmVyIHtcblx0YmFja2dyb3VuZDogI2ZmZjtcbiAgbWFyZ2luLWxlZnQ6ICRiYXNlLXNwYWNpbmctdW5pdDtcblx0cGFkZGluZzogJGJhc2Utc3BhY2luZy11bml0O1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNsaWRlcl9fY2FwdGlvbl9fcmlnaHRfX21haW4ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogJGJhc2Utc3BhY2luZy11bml0O1xuXHRyaWdodDogJGJhc2Utc3BhY2luZy11bml0O1xuXHRsZWZ0OiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG59XG5cbiNzZXJlbmRpcGl0eV9idWxsZXRwcm9vZl9idXR0b24sXG4jc2VyZW5kaXBpdHlfY3JlZGl0X2xpbmUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uYmxvZy1mb290ZXIge1xuXHRwYWRkaW5nOiAkaGFsZi1zcGFjaW5nLXVuaXQ7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRtYXgtd2lkdGg6IDEyODBweDtcblx0d2lkdGg6IDEwMCU7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5mb290ZXItbGVnYWxzIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwIDAgJGhhbGYtc3BhY2luZy11bml0IDA7XG5cdHBhZGRpbmctYm90dG9tOiAkaGFsZi1zcGFjaW5nLXVuaXQ7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xuXG5cdGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cblx0XHRhIHtcblx0XHRcdG1hcmdpbi1yaWdodDogNXB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogN3B4O1xuXHRcdH1cblx0fVxufVxuXG4uc2VyZW5kaXBpdHlfZW50cnlfZXh0ZW5kZWQge1xuXHRtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nLXVuaXQqMjtcbn1cblxuLmdhbGxlcnkge1xuXHRvdmVyZmxvdzogYXV0bztcblx0bWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZy11bml0O1xuICBjbGVhcjogbGVmdDtcblxuXHQ+IGJyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm1hc29ucnktY29udGFpbmVyICYge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLnBhZ2UtbGlnaHRib3gge1xuIFx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiA0OCU7XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW4tcmlnaHQ6IDIlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0PiBpbWcge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5mYW5jeWJveC13cmFwIHtcblx0ei1pbmRleDogOTk5OTtcbn1cblxuLmZhbmN5Ym94LW92ZXJsYXkge1xuXHR6LWluZGV4OiA5NTAwO1xufVxuXG4ucGFnZS1saWdodGJveC1jb250ZW50IHtcblx0ZGlzcGxheTogbm9uZTtcblxuXHQ+IGltZyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZy11bml0O1xuXHR9XG59XG5cbi8vIERlc2sgT3B0aW1pemF0aW9uc1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGRlc2std2lkZS1zdGFydCkge1xuXG5cdCNzaXRlbmF2LCAjc2l0ZW5hdi1tYW51ZWxsIHtcblx0XHRoZWlnaHQ6IGF1dG8haW1wb3J0YW50O1xuXG5cdFx0LmNvbnRhaW5lcl9zZXJlbmRpcGl0eV9wbHVnaW5fbXVsdGlsaW5ndWFsIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdH1cblxufVxuXG4vLyAxMDI0IE9wdGltaXphdGlvbnNcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkZXNrLXdpZGUtc3RhcnQpIHtcblxuXHQjYmFubmVyX2xhbmd1YWdlIHtcblx0XHQ+IGEgPiBpbWcge1xuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0I2NvbnRlbnQge1xuXHRcdG1hcmdpbi1sZWZ0OiAwIWltcG9ydGFudDtcblx0fVxuXG5cdCNzaXRlbmF2LCAjc2l0ZW5hdi1tYW51ZWxsIHtcblx0XHQ+IHVsIHtcblx0XHRcdG1hcmdpbjogMCFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0PiAuY29udGFpbmVyX3NlcmVuZGlwaXR5X3BsdWdpbl9tdWx0aWxpbmd1YWwge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLm1hc29ucnktY29udGFpbmVyIHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdG1hcmdpbi1sZWZ0OiAtJGJhc2Utc3BhY2luZy11bml0O1xuXHRtYXJnaW4tdG9wOiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG5cblx0aW1nIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cblxuXHQuc2VyZW5kaXBpdHlfaW1hZ2VfbGVmdCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwIWltcG9ydGFudDtcblxuXHRcdGltZyB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxufVxuXG4vLyBNb2JpbGUgT3B0bWl6YXRpb25zXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkZGVzay1zdGFydCkge1xuXG5cdC5ibG9nLWxvZ28ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQuZW50cnktY29udGVudCB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG5cblx0I2Rlc2sge1xuXHRcdG1hcmdpbi10b3A6IDMwcHg7XG5cdH1cblxuXHQjYmFubmVyIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nLXVuaXQ7XG5cdH1cblxuXHQubW9iaWxlLW5hdl9faGVhZCB7XG5cdFx0cGFkZGluZzogMTBweDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGhlaWdodDogNTBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cblx0I3NpdGVuYXYsICNzaXRlbmF2LW1hbnVlbGwge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHotaW5kZXg6IDkwMDA7XG5cdFx0dHJhbnNpdGlvbjogaGVpZ2h0IDAuM3M7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cblx0XHQ+IC5jb250YWluZXJfc2VyZW5kaXBpdHlfcGx1Z2luX211bHRpbGluZ3VhbCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cblx0XHRcdD4gLnNlcmVuZGlwaXR5U2lkZUJhclRpdGxlIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0PiAuc2VyZW5kaXBpdHlTaWRlQmFyQ29udGVudCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR9XG5cblx0XHRcdHNlbGVjdCB7XG5cdFx0XHRcdGRpcmVjdGlvbjogcnRsO1xuXHRcdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0XHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdFx0cGFkZGluZy10b3A6IDlweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdFx0aGVpZ2h0OiA1MHB4O1xuXHRcdFx0XHRmb250LXNpemU6IDEzcHghaW1wb3J0YW50O1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAyOHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdD4gdWwge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0cGFkZGluZzogMCAwIDE1cHggMDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMCFpbXBvcnRhbnQ7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXG5cdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cblx0XHRcdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogLTFweCAzcHggNXB4IDBweCByZ2JhKDAsMCwwLDAuNDMpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdD4gYSB7XG5cdFx0XHRcdFx0XHRmbG9hdDogbm9uZSFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGNvbG9yLXdoaXRlO1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOiA5cHg7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6ICRoNS1zaXplO1xuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuOGVtO1xuXG5cdFx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdH1cblxuXHRcdCNzZWFyY2hmb3JtIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcblxuXHRcdH1cblx0fVxuXG5cdC5tYXNvbnJ5IC5zZXJlbmRpcGl0eV9FbnRyeV9EYXRlIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdH1cblxuXHQjY29udGVudCxcblx0I3NlcmVuZGlwaXR5UmlnaHRTaWRlQmFyLFxuXHQjc2VyZW5kaXBpdHlMZWZ0U2lkZUJhciB7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LnNlcmVuZGlwaXR5X2VudHJ5IGltZywgLnNlcmVuZGlwaXR5X2ltYWdlX2xlZnQge1xuXHRcdHdpZHRoOiAxMDAlIWltcG9ydGFudDtcblx0XHRwYWRkaW5nOiAwIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXG5cdCNzZXJlbmRpcGl0eVJpZ2h0U2lkZUJhciB7XG5cdFx0PiAuY29udGFpbmVyX3NlcmVuZGlwaXR5X3BsdWdpbl9tdWx0aWxpbmd1YWwge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQuZW50cnktY29udGVudCA+IGltZywgLnNlcmVuZGlwaXR5X2VudHJ5X2V4dGVuZGVkID4gaW1nIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHQuc2VyZW5kaXBpdHlfcGFnZUZvb3RlciB7XG5cdFx0bWFyZ2luLXRvcDogMjBweCFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweCFpbXBvcnRhbnQ7XG5cdFx0cGFkZGluZzogMCFpbXBvcnRhbnQ7XG5cdH1cblxuXHQuc3RhdGljcGFnZV9jb250ZW50IGltZyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG5cblx0LnNlcmVuZGlwaXR5X2ltYWdlQ29tbWVudF9sZWZ0IHtcblx0XHR3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG5cdH1cblxuXHQuc2VyZW5kaXBpdHlTaWRlQmFySXRlbSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHQuc2xpZGVyLS1iYW5uZXIge1xuXHRcdG1hcmdpbi10b3A6IDUwcHghaW1wb3J0YW50O1xuXHR9XG5cblx0LnNsaWRlcl9fY2FwdGlvbl9fcmlnaHQge1xuXHRcdHBvc2l0aW9uOiBpbmhlcml0O1xuXHR9XG5cblx0LnNsaWRlcl9fY2FwdGlvbl9fcmlnaHRfX2lubmVyIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQuc2xpZGVyX19jYXB0aW9uX19yaWdodF9fbWFpbiB7XG5cdFx0cG9zaXRpb246IGluaGVyaXQ7XG5cdFx0Ym90dG9tOiBpbmhlcml0O1xuICBcdHJpZ2h0OiBpbmhlcml0O1xuICBcdGxlZnQ6IGluaGVyaXQ7XG5cdH1cblxuXHQucGFnZS1saWdodGJveCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAyJTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIlO1xuXHR9XG5cblx0LmZhbmN5Ym94LXdyYXAsXG5cdC5mYW5jeWJveC1vdmVybGF5IHtcblx0XHRkaXNwbGF5OiBub25lIWltcG9ydGFudDtcblx0fVxuXG59XG5cbnVsLnN0YXRpY3BhZ2VfbmF2aWdhdGlvbiwgLnN0YXRpY3BhZ2VfbmF2aWdhdGlvbl9jZW50ZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uaW1hZ2Uge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRtYXJnaW4tYm90dG9tOiAkaGFsZi1zcGFjaW5nLXVuaXQ7XG5cblx0PiBpbWcge1xuXHRcdG1hcmdpbi1ib3R0b206IDAhaW1wb3J0YW50O1xuXHR9XG5cblx0PiAuc2VyZW5kaXBpdHlfaW1hZ2VDb21tZW50X3R4dCB7XG5cdFx0bWFyZ2luLXRvcDogJGhhbGYtc3BhY2luZy11bml0O1xuXHR9XG59XG5cbi5zZXJlbmRpcGl0eV9pbWFnZUNvbW1lbnRfdHh0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMCAwIDAgNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6IG5vbmU7XG5cbiAgJi5sZWZ0IHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4ICFpbXBvcnRhbnQ7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cblxuLmltYWdlX2NhcHR1cmUsIC5pbWFnZV9jb3B5cmlnaHQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiA1cHg7XG5cdGJvdHRvbTogMnB4O1xuXHRmb250LXNpemU6IDlweDtcblx0bGluZS1oZWlnaHQ6IDEuMztcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5pbWFnZV9jb3B5cmlnaHQge1xuXHQuZnVsbC13aWR0aCAmIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5zZXJlbmRpcGl0eV9jb21tZW50c0xhYmVsIHtcblxuXHRpbnB1dCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cblx0bGFiZWwge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxufVxuXG4uc2VyZW5kaXBpdHlfY29tbWVudF9jYXB0Y2hhIHtcblx0aW1nIHtcblx0XHR3aWR0aDogYXV0byFpbXBvcnRhbnQ7XG5cblx0fVxufVxuXG4jZm9vdGVyIHtcblx0Ym9yZGVyOiBub25lO1xufVxuIiwiJXN2Zy1jb21tb24ge1xuXHRiYWNrZ3JvdW5kOiB1cmwoXCJzdmcvc3ByaXRlLmNzcy1kYjA2MDAxMC5zdmdcIikgbm8tcmVwZWF0O1xufVxuXG4uc3ZnLWljb24tYXJyb3cge1xuXHRAZXh0ZW5kICVzdmctY29tbW9uO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5OC4xNTk1MDkyMDI0NTM5OSUgMDtcblx0d2lkdGg6IDYuMjVweDtcblx0aGVpZ2h0OiAxM3B4O1xufVxuXG4uc3ZnLWljb24tYnVyZ2VyIHtcblx0QGV4dGVuZCAlc3ZnLWNvbW1vbjtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuXHR3aWR0aDogNDBweDtcblx0aGVpZ2h0OiAzMHB4O1xufVxuXG4iLCIvLyBmcmFtZXdvcmtcblxuXG4vL21pc2Mgc2V0dGluZ3NcbkBpbXBvcnQgXCJpbnVpdC9fZGVmYXVsdHNcIjtcbkBpbXBvcnQgXCJzZXR0aW5nc1wiO1xuXG4vL2ZyYW1ld29ya3NcbkBpbXBvcnQgXCJpbnVpdC9pbnVpdFwiO1xuXG4vL3BsdWdpbnNcbkBpbXBvcnQgJ3BsdWdpbnMvc2xpY2snO1xuQGltcG9ydCAncGx1Z2lucy9zbGljay10aGVtZSc7XG5AaW1wb3J0ICdwbHVnaW5zL2ZhbmN5Ym94JztcblxuXG4vL2dsb2JhbCB0aGluZ3NcbkBpbXBvcnQgJ2xheW91dC9fbWFpbic7XG5cbkBpbXBvcnQgJ3Nwcml0ZXMvc3ByaXRlJztcblxuLy8gRml4IFNwcml0ZSBsaW5rIHRoYXQgaXMgbm9jdCB3b3JraW5nIGluIERyb3Bib3hcbi5zdmctaWNvbi1hcnJvdywgLm5hdi1jYXRlZ29yeV9faGVhZDphZnRlciwgLm1vYmlsZS1uYXZfX2xhbmcgZm9ybSA+IGRpdjphZnRlciwgLnN2Zy1pY29uLWJ1cmdlciB7XG4gIEBpZiAkZW52ID09IFwiZGV2XCIge1xuICAgIGJhY2tncm91bmQ6IHVybChcImh0dHA6Ly9kZXYuYWxsZXN3ZWlzei5kZS9yZXNwb25zaXZlLWJsb2cvc3ZnL3Nwcml0ZS5jc3MtZGIwNjAwMTAuc3ZnXCIpIG5vLXJlcGVhdCFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVGhlbWVcbkBpbXBvcnQgJ3VzZXJzdHlsZXMvcmVzcG9uc2l2ZS10aGVtZSc7XG4iLCJcbi8qKioqKioqKioqXG5cbk1lZGlhLUJyZWFrcG9pbnRzIChpbmhlcml0ZWQgZnJvbSBsYXlvdXQuY3NzKVxuQmV0dGVyIGRvIG5vdCBjaGFuZ2UgdGhpcy4uLlxuXG4qKioqKioqKioqKi9cblxuJGxhcC1zdGFydDogICAgICAgICA0ODFweDtcbiRkZXNrLXN0YXJ0OiAgICAgICAgNzY4cHg7XG4kZGVzay13aWRlLXN0YXJ0OiAgIDEwMjRweDtcblxuXG5cblxuXG4vKioqKioqKioqKlxuXG5GYXJiZGVmaW5pdGlvbmVuXG5cbioqKioqKioqKioqL1xuXG4kZ3J1ZW46ICM5YWNhM2M7XG4kdmlvbGV0OiAjN2IwMTY1O1xuJG9yYW5nZTogI2YzNzAyMTtcbiRkdW5rZWxibGF1OiAjMDAzYjZiO1xuJGJlaWdlOiAjYzhiZDg5O1xuJGJyYXVuOiAjNGIxZTAwO1xuJGhlbGxibGF1OiAjNDRjOGY1O1xuJGR1bmtlbGdydWVuOiAjMzAzZTAzO1xuJGdyYXU6ICM2YjdiODQ7XG4kZHVua2VsZ3JhdTogIzMwMzQzNjtcbiRoZWxsZ3JhdTogcmdiKDEyMCwgMTMwLCAxMzUpO1xuJGZvbnQtY29sb3I6IHJnYig5NSwgMTAzLCAxMDcpO1xuJGxpbmstY29sb3I6ICM0N2FiZDg7XG4kYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmNjtcbiRmb290ZXItYmFja2dyb3VuZDogIzVmNjc2YjtcblxuLmdydWVuIHtcbiAgY29sb3I6ICRncnVlbiFpbXBvcnRhbnQ7XG59XG4udmlvbGV0IHtcbiAgY29sb3I6ICR2aW9sZXQhaW1wb3J0YW50O1xufVxuLm9yYW5nZSB7XG4gIGNvbG9yOiAkb3JhbmdlIWltcG9ydGFudDtcbn1cbi5kdW5rZWxibGF1IHtcbiAgY29sb3I6ICRkdW5rZWxibGF1IWltcG9ydGFudDtcbn1cbi5iZWlnZSB7XG4gIGNvbG9yOiAkYmVpZ2UhaW1wb3J0YW50O1xufVxuLmJyYXVuIHtcbiAgY29sb3I6ICRicmF1biFpbXBvcnRhbnQ7XG59XG4uaGVsbGJsYXUge1xuICBjb2xvcjogJGhlbGxibGF1IWltcG9ydGFudDtcbn1cbi5kdW5rZWxncnVlbiB7XG4gIGNvbG9yOiAkZHVua2VsZ3J1ZW4haW1wb3J0YW50O1xufVxuLmdyYXUge1xuICBjb2xvcjogJGdyYXUhaW1wb3J0YW50O1xufVxuLndlaXNzIHtcbiAgY29sb3I6ICNmZmYhaW1wb3J0YW50O1xufVxuLnNjaHdhcnoge1xuICBjb2xvcjogIzAwMCFpbXBvcnRhbnQ7XG59XG5cbi5iZy1ncnVlbiB7XG4gIGJhY2tncm91bmQ6ICRncnVlbiFpbXBvcnRhbnQ7XG59XG4uYmctdmlvbGV0IHtcbiAgYmFja2dyb3VuZDogJHZpb2xldCFpbXBvcnRhbnQ7XG59XG4uYmctb3JhbmdlIHtcbiAgYmFja2dyb3VuZDogJG9yYW5nZSFpbXBvcnRhbnQ7XG59XG4uYmctZHVua2VsYmxhdSB7XG4gIGJhY2tncm91bmQ6ICRkdW5rZWxibGF1IWltcG9ydGFudDtcbn1cbi5iZy1iZWlnZSB7XG4gIGJhY2tncm91bmQ6ICRiZWlnZSFpbXBvcnRhbnQ7XG59XG4uYmctYnJhdW4ge1xuICBiYWNrZ3JvdW5kOiAkYnJhdW4haW1wb3J0YW50O1xufVxuLmJnLWhlbGxibGF1IHtcbiAgYmFja2dyb3VuZDogJGhlbGxibGF1IWltcG9ydGFudDtcbn1cbi5iZy1kdW5rZWxncnVlbiB7XG4gIGJhY2tncm91bmQ6ICRkdW5rZWxncnVlbiFpbXBvcnRhbnQ7XG59XG4uYmctZ3JhdSB7XG4gIGJhY2tncm91bmQ6ICRncmF1IWltcG9ydGFudDtcbn1cblxuXG4vKioqKioqKioqKlxuXG5TY2hyaWZ0ZGVmaW5pdGlvbmVuXG5cbioqKioqKioqKioqL1xuXG4vLyBAZm9udC1mYWNlIHtcbi8vICAgZm9udC1mYW1pbHk6Q2xhbldlYlByby1OYXJyTWVkaXVtO1xuLy8gICBzcmM6IHVybChcImZvbnRzL0NsYW5XZWJQcm8tTmFyck1lZGl1bS5lb3RcIik7XG4vLyB9XG4vL1xuLy8gQGZvbnQtZmFjZSB7XG4vLyAgIGZvbnQtZmFtaWx5OkNsYW5XZWJQcm8tTmFyck1lZGl1bTtcbi8vICAgc3JjOiB1cmwoXCJmb250cy9DbGFuV2ViUHJvLU5hcnJNZWRpdW0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuLy8gfVxuLy9cbi8vIEBmb250LWZhY2Uge1xuLy8gICBmb250LWZhbWlseTogJ0dJLUljb25zZXQnO1xuLy8gXHRzcmM6dXJsKCdmb250cy9pY29tb29uLmVvdD8tcmVxbWl0Jyk7XG4vLyBcdHNyYzp1cmwoJ2ZvbnRzL2ljb21vb24uZW90I2llZml4LXJlcW1pdCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbi8vIFx0XHR1cmwoJ2ZvbnRzL2ljb21vb24ud29mZj8tcmVxbWl0JykgZm9ybWF0KCd3b2ZmJyksXG4vLyBcdFx0dXJsKCdmb250cy9pY29tb29uLnR0Zj8tcmVxbWl0JykgZm9ybWF0KCd0cnVldHlwZScpLFxuLy8gXHRcdHVybCgnZm9udHMvaWNvbW9vbi5zdmc/LXJlcW1pdCNpY29tb29uJykgZm9ybWF0KCdzdmcnKTtcbi8vIFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcbi8vIFx0Zm9udC1zdHlsZTogbm9ybWFsO1xuLy8gfVxuXG5cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OkNsYW5XZWJQcm8tTmFyck1lZGl1bTtcbiAgQGlmICRlbnYgPT0gXCJkZXZcIiB7XG4gICAgc3JjOiB1cmwoXCJodHRwczovL2RsLmRyb3Bib3h1c2VyY29udGVudC5jb20vcy9jaTh6NzM3bHlpY2g4YXUvQ2xhbldlYlByby1OYXJyTWVkaXVtLmVvdFwiKTtcbiAgfVxuICBAaWYgJGVudiA9PSBcImxpdmVcIiB7XG4gICAgc3JjOiB1cmwoXCJmb250cy9DbGFuV2ViUHJvLU5hcnJNZWRpdW0uZW90XCIpO1xuICB9XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTpDbGFuV2ViUHJvLU5hcnJNZWRpdW07XG4gIEBpZiAkZW52ID09IFwiZGV2XCIge1xuICAgIHNyYzogdXJsKFwiaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tL3MvejA0YnB3ZDhoNG85cnBsL0NsYW5XZWJQcm8tTmFyck1lZGl1bS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIH1cbiAgQGlmICRlbnYgPT0gXCJsaXZlXCIge1xuICAgIHNyYzogdXJsKFwiZm9udHMvQ2xhbldlYlByby1OYXJyTWVkaXVtLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgfVxufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHSS1JY29uc2V0JztcbiAgQGlmICRlbnYgPT0gXCJkZXZcIiB7XG5cdHNyYzp1cmwoJ2h0dHBzOi8vZGwuZHJvcGJveHVzZXJjb250ZW50LmNvbS9zLzU4dGFoOHR6eHk5cXJiNS9pY29tb29uLmVvdD8tcmVxbWl0Jyk7XG5cdHNyYzp1cmwoJ2h0dHBzOi8vZGwuZHJvcGJveHVzZXJjb250ZW50LmNvbS9zLzU4dGFoOHR6eHk5cXJiNS9pY29tb29uLmVvdCNpZWZpeC1yZXFtaXQnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdFx0dXJsKCdodHRwczovL2RsLmRyb3Bib3h1c2VyY29udGVudC5jb20vcy85NDR1NnN5cGZscWhjYXgvaWNvbW9vbi53b2ZmPy1yZXFtaXQnKSBmb3JtYXQoJ3dvZmYnKSxcblx0XHR1cmwoJ2h0dHBzOi8vZGwuZHJvcGJveHVzZXJjb250ZW50LmNvbS9zL2k1cWdpcDVta3U2MWQwdC9pY29tb29uLnR0Zj8tcmVxbWl0JykgZm9ybWF0KCd0cnVldHlwZScpLFxuXHRcdHVybCgnaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tL3MvZnBzeGgwemxqd291cGNpL2ljb21vb24uc3ZnPy1yZXFtaXQjaWNvbW9vbicpIGZvcm1hdCgnc3ZnJyk7XG4gIH1cbiAgQGlmICRlbnYgPT0gXCJsaXZlXCIge1xuICAgIHNyYzp1cmwoJ2ZvbnRzL2ljb21vb24uZW90Py1yZXFtaXQnKTtcbiAgICBzcmM6dXJsKCdmb250cy9pY29tb29uLmVvdCNpZWZpeC1yZXFtaXQnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICB1cmwoJ2ZvbnRzL2ljb21vb24ud29mZj8tcmVxbWl0JykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICB1cmwoJ2ZvbnRzL2ljb21vb24udHRmPy1yZXFtaXQnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICB1cmwoJ2ZvbnRzL2ljb21vb24uc3ZnPy1yZXFtaXQjaWNvbW9vbicpIGZvcm1hdCgnc3ZnJyk7XG4gIH1cblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5cbiRmb250LWdvZXRoZTogXCJDbGFuV2ViUHJvLU5hcnJNZWRpdW1cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnQtYmFzZTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnQtc2l6ZTogMTJweDtcbiRsaW5lLWhlaWdodDogMTZweDtcblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlO1xuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9udC1jb2xvcjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xufVxuXG5hIHtcbiAgY29sb3I6ICRmb250LWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAkZHVua2VsZ3JhdTtcbiAgfVxuXG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LWZhbWlseTogJGZvbnQtZ29ldGhlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuXG59XG5cbi5ibG9nLXRpdGxlIHtcblx0PiBkaXYge1xuXHRcdGZvbnQtZmFtaWx5OiAkZm9udC1nb2V0aGU7XG4gICAgZm9udC1zaXplOiA2dnc7XG5cblx0fVxufVxuXG4uZ2ktbWFyayB7XG5cdGNvbG9yOiAjZmZmO1xufVxuXG4uZW1vdGljb24ge1xuICB3aWR0aDoxNnB4O1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbiNzaXRlbmF2LCAjc2l0ZW5hdi1tYW51ZWxsIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICRoZWxsZ3JhdTtcblxuICA+IHVsIHtcbiAgICA+IGxpIHtcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI3NpdGVuYXYtbWFudWVsbCxcbi5lbnRyeS10aXRsZSxcbi5zZXJlbmRpcGl0eV90aXRsZSxcbi5zZXJlbmRpcGl0eV9kYXRlLFxuLnNlcmVuZGlwaXR5U2lkZUJhclRpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWdvZXRoZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5cbiNzaXRlbmF2LW1hbnVlbGwsXG4uZW50cnktdGl0bGUsXG4uc2VyZW5kaXBpdHlfdGl0bGUsXG4uc2VyZW5kaXBpdHlTaWRlQmFyVGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uc2VyZW5kaXBpdHlTaWRlQmFySXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uc2VyZW5kaXBpdHlTaWRlQmFyVGl0bGUge1xuICBjb2xvcjogJGdydWVuO1xufVxuXG4jbGFuZ3VhZ2VfY2hvb3NlciwgI2xhbmd1YWdlX2Nob29zZXJfbW9iaWxlIHtcblxuICA+IGRpdiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLXRvcDogLThweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBmb250LWZhbWlseTogXCJHSS1JY29uc2V0XCI7XG4gICAgICBjb250ZW50OiBcIlxcRTgxMlwiO1xuICAgICAgY29sb3I6ICRmb250LWNvbG9yO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShwYWxtKSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBzZWxlY3Qge1xuICAgICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGhlbGxncmF1IWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxufVxuXG4jc2VhcmNoZm9ybSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAmOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLTdweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgZm9udC1mYW1pbHk6IFwiR0ktSWNvbnNldFwiO1xuICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgIGNvbnRlbnQ6IFwiXFxFNzAwXCI7XG4gICAgY29sb3I6ICRmb250LWNvbG9yO1xuICB9XG5cbiAgaW5wdXQjc2VyZW5kaXBpdHlRdWlja1NlYXJjaFRlcm1GaWVsZCB7XG4gICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRoZWxsZ3JhdSFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiA4cHggMjBweCA4cHggNXB4O1xuICB9XG59XG5cbi5jYXRlZ29yeV9zdWJtaXQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gIGlucHV0IHtcbiAgICBjb2xvcjogJGZvbnQtY29sb3I7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaGVsbGdyYXUhaW1wb3J0YW50O1xuICB9XG59XG5cbi5jb250YWluZXJfc2VyZW5kaXBpdHlfY2FsZW5kYXJfcGx1Z2luIHtcblxuICBhW3RpdGxlPVwiRm9yd2FyZFwiXSwgYVt0aXRsZT1cIkJhY2tcIl0sIGFbdGl0bGU9XCJWb3J3w6RydHNcIl0sIGFbdGl0bGU9XCJadXLDvGNrXCJdIHtcbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0aCNtb250aCB7XG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cbiAgfVxuXG4gIGFbdGl0bGU9XCJGb3J3YXJkXCJdLCBhW3RpdGxlPVwiVm9yd8OkcnRzXCJdIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxFODExXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiR0ktSWNvbnNldFwiO1xuICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxM3B4O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgYVt0aXRsZT1cIkJhY2tcIl0sIGFbdGl0bGU9XCJadXLDvGNrXCJdIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxFODEzXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiR0ktSWNvbnNldFwiO1xuICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlLnNlcmVuZGlwaXR5X2NhbGVuZGFyIHtcbiAgICAuc2VyZW5kaXBpdHlfY2FsZW5kYXJEYXkuQWN0aXZlIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogJGdydWVuO1xuICAgIH1cbiAgfVxuXG59XG5cblx0LnF1aWNrc2VhcmNoX3N1Ym1pdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4uY29udGFpbmVyX3NlcmVuZGlwaXR5X3F1aWNrc2VhcmNoX3BsdWdpbiB7XG5cdC5xdWlja3NlYXJjaF9zdWJtaXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIHdpZHRoOiAyZW0haW1wb3J0YW50O1xuICAgIGhlaWdodDogMzBweDtcblx0fVxufVxuXG4uc2VyZW5kaXBpdHlfZGF0ZSB7XG4gIGZvbnQtc2l6ZTogOXB4O1xuXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNlcmVuZGlwaXR5X2NvbW1lbnRzVGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5lbnRyeS10aXRsZSwgLnNlcmVuZGlwaXR5X3RpdGxlIHtcbiAgZm9udC1zaXplOiAyMnB4O1xuXG4gID4gKiB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICB9XG59XG5cbi5lbnRyeS1tZXRhLW1hbnVlbGwge1xuXHRiYWNrZ3JvdW5kOiAkaGVsbGdyYXU7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdGNvbG9yOiAjZmZmO1xufVxuXG4uc2lkZW5hdi1odG1sLW51Z2dldC1pbm5lciB7XG5cbiAgPiBoMyB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWdvZXRoZTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLmVudHJ5LWNvbnRlbnQsIC5zdGF0aWNwYWdlX2NvbnRlbnQsIC5zZXJlbmRpcGl0eV9lbnRyeV9leHRlbmRlZCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE5cHg7XG5cbiAgYSB7XG4gICAgY29sb3I6ICRsaW5rLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGxpbmstY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuLnNsaWNrLXByZXY6YmVmb3JlLCAuc2xpY2stbmV4dDpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJHSS1JY29uc2V0XCI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAkZ3J1ZW47XG59XG5cbi5zbGljay1wcmV2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFODEzXCI7XG59XG5cbi5zbGljay1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFODExXCI7XG59XG5cbi5zbGlkZXJfX2NhcHRpb24ge1xuXHRiYWNrZ3JvdW5kOiAkZHVua2VsZ3JhdTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5zbGlkZXJfX2NhcHRpb25fX3JpZ2h0IHtcbn1cblxuLnNsaWRlcl9fY2FwdGlvbl9fcmlnaHRfX2lubmVyIHtcbiAgYmFja2dyb3VuZDogJGhlbGxncmF1O1xuXG4gID4gaDUge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1nb2V0aGU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxufVxuXG4uc2xpZGVyX19jYXB0aW9uX19yaWdodF9fcm9vZiB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1nb2V0aGU7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uc2xpZGVyX19jYXB0aW9uX19yaWdodF9fbWFpbiB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uYmxvZy1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiAkZm9vdGVyLWJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICNmZmYhaW1wb3J0YW50O1xuXG4gIGEge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbi5mb290ZXItbGVnYWxzIHtcbiAgYm9yZGVyLWNvbG9yOiAkaGVsbGdyYXU7XG5cbiAgbGk6bGFzdC1jaGlsZCBhIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gIH1cblxuICBhIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkaGVsbGdyYXU7XG4gIH1cbn1cblxuLy8gTW9iaWxlIE9wdG1pemF0aW9uc1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRlc2stc3RhcnQpIHtcblxuICAubW9iaWxlLW5hdl9faGVhZCB7XG4gICAgYmFja2dyb3VuZDogJGdydWVuO1xuICB9XG5cbiAgICAjc2l0ZW5hdiwgI3NpdGVuYXYtbWFudWVsbCB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICA+IHVsIHtcblxuICAgICAgICA+IGxpIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGZvbnQtY29sb3I7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGhlbGxncmF1O1xuXG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG4gIH1cblxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
