/*

███████╗███████╗███╗   ███╗ █████╗ ███╗   ██╗████████╗██╗ ██████╗    ██╗   ██╗██╗
██╔════╝██╔════╝████╗ ████║██╔══██╗████╗  ██║╚══██╔══╝██║██╔════╝    ██║   ██║██║
███████╗█████╗  ██╔████╔██║███████║██╔██╗ ██║   ██║   ██║██║         ██║   ██║██║
╚════██║██╔══╝  ██║╚██╔╝██║██╔══██║██║╚██╗██║   ██║   ██║██║         ██║   ██║██║
███████║███████╗██║ ╚═╝ ██║██║  ██║██║ ╚████║   ██║   ██║╚██████╗    ╚██████╔╝██║
╚══════╝╚══════╝╚═╝     ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝   ╚═╝   ╚═╝ ╚═════╝     ╚═════╝ ╚═╝

  Import this file into your LESS project to use Semantic UI without build tools
*/
/* Global */
/*!
 * # Semantic UI - Reset
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Reset
*******************************/
/* Packaged Theme */
/*******************************
             Reset
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Reset
*******************************/
/* Border-Box */
*,
*:before,
*:after {
  box-sizing: inherit;
}
html {
  box-sizing: border-box;
}
/* iPad Input Shadows */
input[type="text"],
input[type="email"],
input[type="search"],
input[type="password"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  /* mobile firefox too! */
}
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}
/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}
/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption,
figure,
main {
  /* 1 */
  display: block;
}
/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}
/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */
}
/**
 * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}
/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}
/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}
/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}
/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio,
video {
  display: inline-block;
}
/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}
/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}
/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
}
/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}
/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}
/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
}
/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}
/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}
/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details,
menu {
  display: block;
}
/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}
/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}
/**
 * Add the correct display in IE.
 */
template {
  display: none;
}
/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}
/*!
 * # Semantic UI - Site
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged Theme */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site Theme */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Page
*******************************/
html,
body {
  height: 100%;
}
html {
  font-size: 14px;
}
body {
  margin: 0px;
  padding: 0px;
  overflow-x: hidden;
  min-width: 320px;
  background: #FFFFFF;
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  line-height: 1.4285em;
  color: rgba(0, 0, 0, 0.87);
  font-smoothing: antialiased;
}
/*******************************
             Headers
*******************************/
h1,
h2,
h3,
h4,
h5 {
  font-family: 'Lato', sans-serif;
  line-height: 1.28571429em;
  margin: calc(2rem -  0.14285714em ) 0em 1rem;
  font-weight: bold;
  padding: 0em;
}
h1 {
  min-height: 1rem;
  font-size: 2rem;
}
h2 {
  font-size: 1.71428571rem;
}
h3 {
  font-size: 1.28571429rem;
}
h4 {
  font-size: 1.07142857rem;
}
h5 {
  font-size: 1rem;
}
h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child,
h5:first-child {
  margin-top: 0em;
}
h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
h5:last-child {
  margin-bottom: 0em;
}
/*******************************
             Text
*******************************/
p {
  margin: 0em 0em 1em;
  line-height: 1.4285em;
}
p:first-child {
  margin-top: 0em;
}
p:last-child {
  margin-bottom: 0em;
}
/*-------------------
        Links
--------------------*/
a {
  color: #4183C4;
  text-decoration: none;
}
a:hover {
  color: #1e70bf;
  text-decoration: none;
}
/*******************************
         Scrollbars
*******************************/
/*******************************
          Highlighting
*******************************/
/* Site */
::-webkit-selection {
  background-color: #CCE2FF;
  color: rgba(0, 0, 0, 0.87);
}
::-moz-selection {
  background-color: #CCE2FF;
  color: rgba(0, 0, 0, 0.87);
}
::selection {
  background-color: #CCE2FF;
  color: rgba(0, 0, 0, 0.87);
}
/* Form */
textarea::-webkit-selection,
input::-webkit-selection {
  background-color: rgba(100, 100, 100, 0.4);
  color: rgba(0, 0, 0, 0.87);
}
textarea::-moz-selection,
input::-moz-selection {
  background-color: rgba(100, 100, 100, 0.4);
  color: rgba(0, 0, 0, 0.87);
}
textarea::selection,
input::selection {
  background-color: rgba(100, 100, 100, 0.4);
  color: rgba(0, 0, 0, 0.87);
}
/* Force Simple Scrollbars */
body ::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 10px;
  height: 10px;
}
body ::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.1);
  border-radius: 0px;
}
body ::-webkit-scrollbar-thumb {
  cursor: pointer;
  border-radius: 5px;
  background: rgba(0, 0, 0, 0.25);
  transition: color 0.2s ease;
}
body ::-webkit-scrollbar-thumb:window-inactive {
  background: rgba(0, 0, 0, 0.15);
}
body ::-webkit-scrollbar-thumb:hover {
  background: rgba(128, 135, 139, 0.8);
}
/* Inverted UI */
body .ui.inverted::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.1);
}
body .ui.inverted::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.25);
}
body .ui.inverted::-webkit-scrollbar-thumb:window-inactive {
  background: rgba(255, 255, 255, 0.15);
}
body .ui.inverted::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.35);
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
nav {
  padding: 0 15px;
}
.navbar-menu {
  list-style-type: none;
  width: 100%;
}
ul.navbar-menu:not(.active) {
  height: 73px;
}
.navbar-item {
  padding: 10px;
}
.navbar-item .right.menu {
  justify-content: center;
}
.navbar-item.navbar-button {
  padding-right: 0;
}
.navbar-item:not(.navbar-button) a:hover,
.navbar-item a:hover::after {
  color: #ccc;
}
.navbar-options :hover {
  color: white;
  background-color: rgba(255, 255, 255, 0.2);
}
.no-dots-list {
  list-style-type: none;
  margin-block-start: unset;
  margin-block-end: unset;
}
.logo-link {
  width: 100%;
  padding: 0px !important;
}
.logo {
  width: 200px;
}
/* Mobile menu */
.navbar-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
.navbar-menu li a {
  display: block;
  padding: 15px 5px;
}
.outer-navbar #frontpage-search-bar {
  background: transparent;
}
.outer-navbar #frontpage-search-bar .search-bar {
  width: 50%;
  padding: 1rem;
}
.outer-navbar a {
  color: #dbeaff;
}
.toggle {
  order: 1;
  list-style-type: none;
  font-size: 20px;
}
.navbar-item.navbar-button {
  order: 2;
}
.navbar-item {
  order: 3;
  width: 100%;
  text-align: center;
  display: none;
}
.active .navbar-item {
  display: block;
}
#header-search-bar {
  width: auto;
  text-align: center;
  justify-content: center;
}
#header-search-bar .ui.action.input {
  margin-right: 40px;
}
/* Tablet menu */
@media all and (min-width: 745px) {
  .navbar-menu {
    justify-content: flex-start;
  }
  .navbar-item.navbar-button {
    width: auto;
    order: 1;
    display: block;
    text-align: right;
    flex: 1;
  }
  .toggle {
    flex: 1;
    text-align: right;
    order: 2;
  }
  /* Button up from tablet screen */
  .navbar-menu li.navbar-button a {
    padding: 10px 15px;
    margin: 2px;
  }
  .navbar-item .right.menu {
    float: right;
  }
}
/* Desktop menu */
@media all and (min-width: 1000px) {
  .navbar-menu {
    flex-wrap: nowrap;
    background: none;
  }
  .logo {
    order: 0;
  }
  .navbar-item {
    order: 1;
    position: relative;
    display: block;
    width: auto;
  }
  .navbar-button {
    order: 2;
  }
  .toggle {
    display: none;
  }
  #header-search-bar {
    width: 250px;
    text-align: left;
  }
}
@media all and (min-width: 1200px) {
  .logo {
    width: 250px;
    margin-right: 20px;
  }
}
/* menu icon (Hamburguer icon) */
.menu-icon {
  cursor: pointer;
  display: inline-block;
  float: right;
  padding: 28px 20px;
  position: relative;
  user-select: none;
}
.menu-icon .navicon {
  background: #333;
  display: block;
  height: 2px;
  position: relative;
  transition: background 0.2s ease-out;
  width: 18px;
}
.menu-icon .navicon:before,
.menu-icon .navicon:after {
  background: #333;
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  transition: all 0.2s ease-out;
  width: 100%;
}
.menu-icon .navicon:before {
  top: 5px;
}
.menu-icon .navicon:after {
  top: -5px;
}
/* menu btn */
.menu-btn {
  display: none;
}
.menu-btn:checked ~ .menu {
  max-height: 240px;
}
.menu-btn:checked ~ .menu-icon .navicon {
  background: transparent;
}
.menu-btn:checked ~ .menu-icon .navicon:before {
  transform: rotate(-45deg);
}
.menu-btn:checked ~ .menu-icon .navicon:after {
  transform: rotate(45deg);
}
.menu-btn:checked ~ .menu-icon:not(.steps) .navicon:before,
.menu-btn:checked ~ .menu-icon:not(.steps) .navicon:after {
  top: 0;
}
footer {
  margin-top: 6em;
}
header {
  margin-bottom: 2em;
}
html.cover-page {
  background-color: #f4f4f4;
}
body.cover-page {
  background-color: transparent;
  width: auto;
}
.ui.padded.segments.big.form {
  margin-left: 0em;
}
.column.centered {
  width: 33% !important;
}
@media only screen and (max-width: 1024px) {
  .column.centered {
    width: 50% !important;
  }
}
@media only screen and (max-width: 540px) {
  .column.centered {
    width: 90% !important;
  }
}
.no-dots-list > .item {
  padding-left: 3em !important;
}
li ~ .item {
  padding-left: 2em !important;
}
.header.item {
  background: #f3f4f5 !important;
}
.item.left-logo {
  padding-left: 0em !important;
}
.right.floated.right.aligned.column {
  padding: 0.8em;
}
.text-muted {
  color: #777;
}
.inline-block {
  display: inline-block;
}
code {
  color: #E03997;
  background-color: #fdf2f8;
  padding: 3px;
}
@font-face {
  font-family: 'robotolight';
  src: url(/static/dist/fonts/roboto-light-webfont.423b6f5.woff2) format('woff2'), url(/static/dist/fonts/roboto-light-webfont.ae06f70.woff) format('woff');
  font-weight: normal;
  font-style: normal;
}
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*
 *   Copyright (C) 2019 CERN.
 *   Copyright (C) 2019 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
.footer-global {
  color: #ffffff;
  font-weight: 300;
  margin-top: auto;
  font-size: 14px;
  padding-top: 1rem;
}
.footer-global > .ui.grid {
  margin: 0rem;
}
.footer-global a {
  text-decoration: none;
  color: rgba(255, 255, 255, 0.86);
}
.footer-global a:hover,
.footer-global a:focus {
  color: #ffffff;
}
.footer-top {
  background-color: #f4f4f4;
}
.margin-small {
  margin: 0em 0em 0.5em;
}
.footer-bottom {
  background-color: #f4f4f4;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2) inset;
}
.invenio-rdm-footer {
  text-align: left;
  align-self: inherit;
  width: 62.5%;
  padding: 1em 0em 1em 0em;
}
.rdm-footer {
  text-align: left;
  align-self: inherit;
  width: 25%;
  padding: 1em 0em 1em 0em;
}
#lang-code {
  min-width: 14em;
}
@media only screen and (max-width: 1024px) {
  .invenio-rdm-footer {
    width: 90%;
  }
}
@media only screen and (max-width: 767px) {
  .invenio-rdm-footer {
    width: 100%;
  }
  .rdm-footer {
    width: 33%;
  }
}
@media only screen and (max-width: 480px) {
  .rdm-footer {
    width: 33%;
  }
  #lang-code {
    min-width: 10em;
  }
}
/*
 *   Copyright (C) 2020 CERN.
 *   Copyright (C) 2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
.numbering {
  font-weight: 200;
  font-size: 4em;
  color: white;
  background-color: #0377cd91;
  box-sizing: border-box;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
}
.flex-center-vertically {
  display: flex;
  justify-content: center;
  text-align: center;
  height: auto;
  margin: 0 0 20px 0;
}
.frontpage-title {
  line-height: normal;
}
@media only screen and (min-device-width: 993px), only screen and (min-width: 993px) {
  .flex-center-vertically {
    flex-direction: column;
  }
}
@media only screen and (max-device-width: 993px), only screen and (max-width: 993px) {
  .flex-center-vertically {
    flex-direction: row;
  }
}
.command-line {
  padding: 10px;
  margin-bottom: 10px;
  background-color: #eeeeee;
  text-align: center;
  word-spacing: normal;
  word-wrap: normal;
  word-break: normal;
  border-radius: 5px;
  color: rgba(16, 16, 16, 0.7);
  line-height: 1.5em;
  max-width: 332px;
  display: inline-block;
}
.inline-row {
  text-align: center;
}
.inline-row-pane {
  display: inline-flex;
  flex-direction: row;
}
.goto-button {
  text-align: center;
  padding: 20px 10px;
  white-space: nowrap;
}
.goto-button a {
  text-decoration: none;
  border-radius: 4px;
  line-height: 25px;
  padding: 15px 30px;
  background-color: #0377cd;
  color: #d4e5ef !important;
  height: 50px;
  font-size: 1em;
  font-weight: 200;
}
.goto-button a:hover,
.goto-button a:active {
  color: white !important;
}
/*
 *   Copyright (C) 2020 CERN.
 *   Copyright (C) 2020 Northwestern University.
 *   Copyright (C) 2021 Graz University of Technology.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/** Deposit page styles */
#deposit-form {
  /*Field Label

    Ideally we eventually converge on a design system to differentiate between
    top-level fields/labels and subfields/labels
  */
  /**/
  /**Protection Widget*/
}
#deposit-form .field label.title {
  background-color: #5aaad9;
  color: white;
  font-size: 1.05em;
}
#deposit-form .field label.title label {
  margin-left: 0.5rem;
}
#deposit-form .ui.form .field .form-group label,
#deposit-form .ui.form .field.additional-descriptions label {
  font-size: 13px;
  font-weight: normal;
}
#deposit-form label.field-level-class {
  font-size: 15px;
}
#deposit-form label.field-level-class.small {
  font-size: 13px;
}
#deposit-form .save-button {
  margin-bottom: 0.5em;
}
#deposit-form .preview-button {
  margin-bottom: 0.5em;
}
#deposit-form i.icon.loading {
  background-color: rgba(0, 0, 0, 0);
}
#deposit-form .access-right .inline.fields {
  margin-bottom: 0.75em;
}
#deposit-form .access-right .inline.fields:first-of-type {
  margin-top: 1em;
}
#deposit-form .ck-editor__editable {
  min-height: 8.5em;
}
#deposit-form .ui.form label.helptext {
  margin-top: -8px;
  margin-bottom: 15px;
  display: block;
  color: #737373;
  font-weight: normal;
  font-size: 0.9em;
}
#deposit-form .ui.form .field .ui.list {
  margin-top: 0;
}
#deposit-form .deposit-sidebar .ui.card {
  width: unset;
}
#deposit-form .ui.card.access-right .field-label-class {
  font-size: 15px;
  margin-bottom: 1px;
}
#deposit-form .ui.card.access-right label {
  margin: 0 !important;
}
#deposit-form .ui.card.access-right label[for="access.embargo.until"] {
  font-size: 13px;
}
#deposit-form .ui.card.access-right .content {
  padding: 0;
}
#deposit-form .ui.card.access-right .content p {
  margin: 0;
  font-size: 14px;
  margin-top: 2px;
}
#deposit-form .ui.card.access-right .content p b {
  margin: 0em 0em 0.5em;
  font-size: 15px;
}
#deposit-form .ui.card.access-right .content p .header {
  font-size: 15px;
}
#deposit-form .ui.card.access-right .content .ui.message {
  padding: 1em 0.7em;
  margin: 0;
}
#deposit-form .ui.card.access-right .disabled.description {
  margin-top: 3px;
}
#deposit-form .ui.card.access-right .ui.divider {
  margin: 0.3rem 0rem;
}
#deposit-form .sidebar-buttons {
  display: flex;
}
/*Description*/
.item div.description:not(.license-item-description) {
  display: initial !important;
}
/*
 *   Copyright (C) 2020 CERN.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
.ui.card > .content {
  padding: 0.5rem 0.5rem !important;
}
.facet-content > .ui.list {
  padding: 0em 0em 0.25em 0.5em !important;
}
.facet-content > .ui.list > .item > .facet-subtitle {
  padding: 0.2em 0em !important;
}
.title > .right.floated {
  margin-top: -0.2rem !important;
}
.padded-small {
  padding: 1rem 0rem !important;
}
.no-padded {
  padding: 0rem !important;
}
.facet-wrapper {
  display: flex;
  align-items: baseline;
  padding: 0.3em 0;
}
.facet-wrapper .facet-count {
  order: 1;
  margin-left: auto;
}
/*
 *   Copyright (C) 2020 CERN.
 *   Copyright (C) 2021 Graz University of Technology.
 *
 * Invenio RDM Records is free software; you can redistribute it and/or modify
 * it under the terms of the MIT License; see LICENSE file for more details.
 */
nav {
  padding: 0 15px;
}
.navbar-menu {
  list-style-type: none;
  width: 100%;
}
.navbar-item {
  padding: 10px;
}
.navbar-item:not(.navbar-button) a:hover,
.navbar-item a:hover::after {
  color: #ccc;
}
.navbar-item:hover:not(.navbar-button):not(.navbar-search-bar) {
  background-color: rgba(255, 255, 255, 0.2);
}
.navbar-item:hover:not(.navbar-button):not(.navbar-search-bar) a:hover {
  background-color: transparent;
  color: white;
}
.logo-link {
  width: 100%;
  padding: 0px !important;
}
.rdm-sign-buttons {
  padding-inline-start: 0px;
}
.rdm-plus-menu {
  padding-right: 10px;
  padding-bottom: 8px;
}
@media only screen and (min-width: 745px) and (max-width: 1200px) {
  .rdm-plus-menu-responsive {
    position: absolute!important;
    margin-top: 0.75rem;
  }
  .user-profile {
    margin-left: 3rem!important;
  }
}
.logo {
  width: 200px;
}
/* Mobile menu */
.navbar-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
.navbar-menu li a {
  display: block;
  padding: 15px 5px;
}
.toggle {
  order: 1;
  font-size: 20px;
}
.navbar-item.navbar-button {
  order: 2;
}
.navbar-item {
  order: 3;
  width: 100%;
  text-align: center;
  display: none;
}
.active .navbar-item {
  display: block;
}
#header-search-bar {
  width: auto;
  text-align: center;
}
#header-search-bar .ui.action.input {
  margin-right: 40px;
}
/* Tablet menu */
@media all and (min-width: 745px) {
  .navbar-menu {
    justify-content: flex-start;
  }
  .navbar-item.navbar-button {
    width: auto;
    order: 1;
    display: block;
    text-align: right;
    flex: 1;
  }
  .toggle {
    flex: 1;
    text-align: right;
    order: 2;
  }
  /* Button up from tablet screen */
  .navbar-menu li.navbar-button a {
    padding: 10px 15px;
    margin: 2px;
  }
}
/* Desktop menu */
@media all and (min-width: 1000px) {
  .navbar-menu {
    flex-wrap: nowrap;
    background: none;
  }
  .logo {
    order: 0;
  }
  .navbar-item {
    order: 1;
    position: relative;
    display: block;
    width: auto;
  }
  .navbar-button {
    order: 2;
  }
  .toggle {
    display: none;
  }
  #header-search-bar {
    width: 250px;
    text-align: left;
  }
}
@media all and (min-width: 1200px) {
  .logo {
    width: 250px;
    margin-right: 20px;
  }
}
/* menu icon (Hamburguer icon) */
.menu-icon {
  cursor: pointer;
  display: inline-block;
  float: right;
  padding: 28px 20px;
  position: relative;
  user-select: none;
}
.menu-icon .navicon {
  background: #333;
  display: block;
  height: 2px;
  position: relative;
  transition: background 0.2s ease-out;
  width: 18px;
}
.menu-icon .navicon:before,
.menu-icon .navicon:after {
  background: #333;
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  transition: all 0.2s ease-out;
  width: 100%;
}
.menu-icon .navicon:before {
  top: 5px;
}
.menu-icon .navicon:after {
  top: -5px;
}
/* menu btn */
.menu-btn {
  display: none;
}
.menu-btn:checked ~ .menu {
  max-height: 240px;
}
.menu-btn:checked ~ .menu-icon .navicon {
  background: transparent;
}
.menu-btn:checked ~ .menu-icon .navicon:before {
  transform: rotate(-45deg);
}
.menu-btn:checked ~ .menu-icon .navicon:after {
  transform: rotate(45deg);
}
.menu-btn:checked ~ .menu-icon:not(.steps) .navicon:before,
.menu-btn:checked ~ .menu-icon:not(.steps) .navicon:after {
  top: 0;
}
/*
 *   Copyright (C) 2020 CERN.
 *   Copyright (C) 2020 Northwestern University.
 *   Copyright (C) 2021 Graz University of Technology.
 *
 * Invenio RDM Records is free software; you can redistribute it and/or modify
 * it under the terms of the MIT License; see LICENSE file for more details.
 */
.font-small {
  font-size: 12px;
}
.font-tiny {
  font-size: 10px;
}
.top-bottom-padded {
  margin: 15px 0px 20px 0px;
}
.iiif-preview-img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.preview-iframe {
  border-style: none;
}
.ui.label > .icon {
  margin: 0rem 0.25rem 0rem 0rem;
}
.stats-box {
  padding: 1rem 0rem 0rem 0rem;
}
.stats-box .stats-data {
  font-size: 36px;
}
dd {
  margin-inline-start: 0px;
}
.version-active {
  background-color: #d9edf7;
}
.ui.rdm-sidebar {
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 4px;
}
.inline-orcid {
  height: 14px;
}
.inline-orcid-icon {
  margin-bottom: 3px;
}
.thin-line {
  border: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.hide-on-collapsed {
  display: block;
}
.show-on-collapsed {
  display: none;
}
.panel-toggle.collapsed .hide-on-collapsed {
  display: none;
}
.panel-toggle.collapsed .show-on-collapsed {
  display: block;
}
.column.versions-preview-info {
  padding: 0em !important;
}
/* use these classes to change accordion title when up/down */
div.accordion div.title.active span.up {
  display: none;
}
div.accordion div.title.active span.down {
  display: inline-grid;
}
div.accordion div.title span.up {
  display: inline-grid;
}
div.accordion div.title span.down {
  display: none;
}
.record-management-row {
  margin-top: 10px;
}
.record-management-row button {
  margin-right: 7px !important;
}
.panel-spacing {
  padding-top: 0px;
  padding-bottom: 20px;
}
.file-box-message {
  box-shadow: none !important;
  border-bottom-right-radius: 10px !important;
  border-bottom-left-radius: 10px !important;
  margin: 0 !important;
}
.panel-heading {
  padding: 10px !important;
  border-bottom: 1px solid transparent;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  background-color: #f5f5f5;
  border-color: #ddd;
  color: #428bca !important;
}
.panel-heading a {
  text-decoration: none;
}
.panel-heading i.angle {
  float: right !important;
}
.panel-heading.restricted {
  background-color: #f502020f;
}
.panel-heading.embargoed {
  background-color: #c7a00014;
}
.panel {
  margin-bottom: 10px;
  border-radius: 10px;
  border-color: #ddd !important;
  border: 1px solid;
}
.panel .content {
  padding-top: 0px !important;
}
.ui.accordion.panel.restricted {
  border-color: #e0b4b4 !important;
}
.ui.accordion.panel.embargoed {
  border-color: #c9ba9b !important;
}
.ui.table.files-table {
  border: 0px;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
  table-layout: fixed;
  width: 100%;
}
.share-modal .share-content {
  display: flex;
}
.share-modal .share-content .input {
  flex-grow: 1;
  padding-right: 0.5em;
}
.share-modal .share-description {
  margin: 1em auto;
}
.share-button {
  display: inline-block;
  float: right;
}
.ui.accordion.creatibutors .title {
  cursor: default;
}
.truncated {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/*
 *   Copyright (C) 2021 TU Wien.
 *
 * Invenio RDM Records is free software; you can redistribute it and/or modify
 * it under the terms of the MIT License; see LICENSE file for more details.
 */
pre.export.result {
  display: block;
  white-space: pre-wrap;
  padding: 9.5px;
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.42857;
  word-break: break-all;
  word-wrap: break-word;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 4px;
}
html,
body {
  color: #000;
  width: 100%;
  height: 100vh;
  display: flex;
  flex-direction: column;
}
.outer-navbar {
  background-image: unset;
  background-color: #f4f4f4;
  border-color: transparent;
}
.outer-navbar #invenio-nav {
  background: transparent;
}
.outer-navbar #frontpage-search-bar {
  background: transparent;
}
.outer-navbar #frontpage-search-bar .search-bar {
  width: 50%;
  padding: 1rem;
}
.outer-navbar a {
  color: #dbeaff;
}
.item.right-menu {
  line-height: 44px !important;
}
.no-dots-list {
  list-style-type: none;
  margin-block-start: unset;
  margin-block-end: unset;
}
.centered {
  text-align: center;
}
.titlecase {
  text-transform: capitalize;
}
.section-content-dark-bg,
.section-content-white-bg,
.section-content-light-bg {
  padding-top: calc(30px);
  padding-bottom: calc(2 * 30px);
}
.section-content-dark-bg:first-of-type,
.section-content-white-bg:first-of-type,
.section-content-light-bg:first-of-type {
  padding-top: 10px;
}
.section-content-dark-bg {
  padding-top: calc(30px) !important;
  padding-bottom: calc(2 * 30px);
}
.section-content-white-bg {
  padding-top: calc(40px) !important;
  padding-bottom: calc(2 * 30px);
}
.section-content-light-bg {
  padding-top: calc(60px) !important;
  padding-bottom: calc(2 * 30px);
}
.section-content-light-bg:last-of-type {
  margin-bottom: -1rem;
}
.section-content-white-bg a,
.section-content-light-bg a,
.hp-blog-section a {
  text-decoration: none;
  color: #0377cdb5;
  font-weight: 600;
}
.section-content-white-bg a:hover,
.section-content-white-bg a:focus,
.section-content-light-bg a:hover,
.section-content-light-bg a:focus,
.hp-blog-section a:hover,
.hp-blog-section a:focus {
  color: #0377cd;
}
.section-content-white-bg,
.section-content-light-bg {
  color: #333;
  width: 100%;
  text-align: justify;
  font-size: 1.2em;
  font-weight: 300;
}
.section-content-light-bg {
  background-color: rgba(173, 206, 224, 0.52);
}
.section-content-white-bg {
  background-color: #fff;
}
.section-content-white-bg h6,
.section-content-light-bg h6 {
  font-weight: 300;
  font-size: 1.4em;
  padding-bottom: 10px;
  color: #0377cd;
}
.section-title {
  -webkit-font-smoothing: antialiased;
  font-size: 2.5em;
  width: 100%;
  text-align: center;
  display: block;
  color: #0377cd;
  margin-bottom: 45px;
  font-weight: 500;
}
.section-subtitle {
  color: #0377cd !important;
  text-align: center;
  margin-bottom: 40px;
}
.invenio-rdm-project-goals {
  display: flex;
  justify-content: center;
  text-align: center;
  height: auto;
}
.invenio-rdm-project-goals .rdm-goal {
  width: 33.33333333%;
  padding: 1em;
}
.invenio-rdm-project-collaborators {
  display: flex;
  justify-content: center;
  text-align: center;
  height: auto;
  width: 100%;
}
.invenio-rdm-project-collaborators .rdm-collaborators {
  width: 25%;
  padding: 1em;
}
.get-started-section > .section-title {
  font-size: 2.65em;
}
.collaborators-logo {
  margin-left: auto !important;
  margin-right: auto !important;
  display: block;
  max-width: 100% !important;
}
@media only screen and (max-width: 767px) {
  .invenio-rdm-project-goals {
    flex-direction: column !important;
    align-items: center !important;
    padding-top: 1em;
  }
  .invenio-rdm-project-goals .rdm-goal {
    width: 100%;
  }
  .outer-navbar #frontpage-search-bar .ui.container.grid {
    width: 100% !important;
  }
  .outer-navbar #frontpage-search-bar .search-bar {
    width: 90%;
  }
  .invenio-rdm-project-collaborators {
    flex-direction: column !important;
    align-items: center !important;
    padding-top: 1em;
  }
  .invenio-rdm-project-collaborators .rdm-collaborators {
    width: 100%;
  }
}
.features-section img {
  max-height: 60px;
  max-width: 100%;
}
.features-section-row {
  padding-bottom: 30px;
}
.brought-to-you-section img,
.trusted-by-section img {
  max-height: 150px;
  max-width: 250px;
  margin: 20px;
  padding: 20px;
}
.record-elem .record-title {
  color: #0377cd;
}
.record-elem .record-description {
  color: #000000;
}
.btn-primary {
  background-color: #0377cd;
  border-color: #0377cd;
}
.panel-free-title {
  color: #0377cd;
}
.cover-page {
  background-image: unset;
  background-color: #f4f4f4;
  border-color: transparent;
}
.theme.header {
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
.item.deposits-list-item .ui.grid .checkbox-column {
  display: flex;
  align-items: center;
}
.item.deposits-list-item .ui.grid .checkbox-column .icon {
  padding-left: 0.5em;
  padding-bottom: 20px;
}
.item.deposits-list-item div.status-icon {
  margin-right: 10px;
}
.item.deposits-list-item .actions > a,
.item.deposits-list-item .stats > span {
  padding-right: 0.5em;
}
.ui.items > .item .extra.labels-actions {
  margin-bottom: 0.75em;
}
.ui.label.access-status {
  color: #ffffff;
}
.ui.label.access-status.open {
  background-color: #21BA45;
}
.ui.label.access-status.restricted {
  background-color: #DB2828;
}
.ui.label.access-status.embargoed {
  background-color: #FBBD08;
}
.ui.label.access-status.metadata-only {
  background-color: #DB2828;
}
.ui.card.borderless-facet {
  box-shadow: none;
}
.ui.card.borderless-facet .content {
  border-top: none;
}
.ui.card.borderless-facet .content .header {
  font-size: 1.1em !important;
}
.content.facet-content.active {
  padding-left: 21px !important;
}
.facet-subtitle {
  padding-left: 20px !important;
}
.result-options {
  height: 66px;
}
.inline-orcid {
  height: 14px;
  vertical-align: middle;
  padding-right: 3px;
}
.ui.grid .row.file-upload-area-row {
  padding-top: 0px;
  padding-bottom: 0px;
}
.ui.grid .row.file-upload-area-row .ui.basic.very.padded.segment.file-upload-area {
  border: 2px dashed #999999;
  border-radius: 5px;
  background: #eeeeee none;
  margin-top: 20px;
}
.ui.grid .row.file-upload-area-row .ui.basic.very.padded.segment.file-upload-area.no-files {
  margin: 0px;
}
.ui.grid .row.file-upload-note-row {
  padding-top: 5px;
}
.ui.grid .row.file-import-note-row {
  padding-top: 5px;
  padding-bottom: 5px;
}
.ui.table .ui.blue.medium.file-upload-progress.progress.active,
.ui.table .ui.blue.medium.file-upload-progress.success.active,
.ui.table .ui.blue.medium.file-upload-progress.progress.disabled,
.ui.table .ui.blue.medium.file-upload-progress.success.disabled {
  margin-bottom: 0px;
}
.ui.table .ui.blue.medium.file-upload-progress.progress.active.error,
.ui.table .ui.blue.medium.file-upload-progress.success.active.error,
.ui.table .ui.blue.medium.file-upload-progress.progress.disabled.error,
.ui.table .ui.blue.medium.file-upload-progress.success.disabled.error {
  margin-bottom: 0px;
}
.ui.table .file-table-row .file-table-header-cell {
  padding-top: 10px;
  padding-bottom: 10px;
}
.ui.table .file-table-row .file-table-cell {
  padding-top: 5px;
  padding-bottom: 5px;
}
.ui.table .file-table-row .file-table-cell.file-upload-pending {
  text-align: center;
}
.ui.modal .header.deposit-modal-header {
  padding-top: 10px;
  padding-bottom: 10px;
}
.ui.menu .active.item.license-menu-item-active {
  border-color: #2185d0;
  background-color: #2185d0;
  color: white;
}
.ui.menu .active.item.license-menu-item-active:hover {
  border-color: #0d71bb;
  background-color: #0d71bb;
  color: white;
}
#record-citation {
  margin: 0px;
}
#record-citation label {
  font-weight: 700;
}
#record-citation .citation-style-selector {
  display: inline-block;
  width: 157px;
}
#record-citation .citation-style-selector .ui.selection.dropdown {
  min-width: 112px;
  max-width: 112px;
  margin-left: 10px;
}
#record-citation .citation-error-message {
  color: #9f3a38;
}
#record-subjects .subject-scheme.column {
  padding-top: 5px;
  padding-bottom: 0px;
}
#record-subjects .subject-scheme.column .subject {
  margin-right: 2em;
}
#record-subjects .subject-label.column {
  padding-top: 10px;
}
#record-subjects .subject-label.column .subject {
  color: #777;
  border: 2px solid rgba(119, 119, 119, 0.56);
  border-radius: 4px;
  padding: 3.5px;
}
.ui.container.cover-page {
  height: 10em !important;
}
a {
  font-weight: 400 !important;
}
.outer-navbar {
  background-image: linear-gradient(12deg, #cecdcd, #f0f0f0 15%, rgba(221, 221, 221, 0.69)) !important;
}
.ui.search.button {
  background-color: #000000 !important;
}
.ui.search.button:focus,
.ui.search.button:hover {
  background-color: #666667 !important;
}
.section-title {
  -webkit-font-smoothing: antialiased;
  font-size: 2.5em;
  width: 100%;
  text-align: center;
  display: block;
  color: #000;
  margin-bottom: 45px;
  font-weight: 500;
}
.frzExtraSpaced {
  margin-right: 10px !important;
}
/* Elements */
/*!
 * # Semantic UI - Button
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Button
*******************************/
/*-------------------
       Element
--------------------*/
/* Button */
/* Button defaults to using same height as input globally */
/* Text */
/* Internal Shadow */
/* Box Shadow */
/* Icon */
/* Loader */
/*
@willChange: box-shadow, transform, opacity, color, background;
*/
/*-------------------
        Group
--------------------*/
/*-------------------
        States
--------------------*/
/* Hovered */
/* Focused */
/* Disabled */
/* Pressed Down */
/* Active */
/* Active + Hovered */
/* Loading */
/*-------------------
        Types
--------------------*/
/* Or */
/* Icon */
/* Labeled */
/* hypotenuse of triangle */
/* Labeled Icon */
/* Inverted */
/* Basic */
/* Basic Hover */
/* Basic Focus */
/* Basic Down */
/* Basic Active */
/* Basic Inverted */
/* Basic Group */
/*-------------------
      Variations
--------------------*/
/* Colors */
/* Colored */
/* Inverted */
/* Ordinality */
/* Compact */
/* Attached */
/* Floated */
/* Animated */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Button
*******************************/
.ui.button {
  cursor: pointer;
  display: inline-block;
  min-height: 1em;
  outline: none;
  border: none;
  vertical-align: baseline;
  background: #E0E1E2 none;
  color: rgba(0, 0, 0, 0.6);
  font-family: 'Lato', sans-serif;
  margin: 0em 0.25em 0em 0em;
  padding: 0.78571429em 1.5em 0.78571429em;
  text-transform: none;
  text-shadow: none;
  font-weight: bold;
  line-height: 1em;
  font-style: normal;
  text-align: center;
  text-decoration: none;
  border-radius: 0.28571429rem;
  box-shadow: 0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
  user-select: none;
  transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, background 0.1s ease;
  will-change: '';
  -webkit-tap-highlight-color: transparent;
}
/*******************************
            States
*******************************/
/*--------------
      Hover
---------------*/
.ui.button:hover {
  background-color: #CACBCD;
  background-image: none;
  box-shadow: 0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
  color: rgba(0, 0, 0, 0.8);
}
.ui.button:hover .icon {
  opacity: 0.85;
}
/*--------------
      Focus
---------------*/
.ui.button:focus {
  background-color: #CACBCD;
  color: rgba(0, 0, 0, 0.8);
  background-image: '' !important;
  box-shadow: '' !important;
}
.ui.button:focus .icon {
  opacity: 0.85;
}
/*--------------
      Down
---------------*/
.ui.button:active,
.ui.active.button:active {
  background-color: #BABBBC;
  background-image: '';
  color: rgba(0, 0, 0, 0.9);
  box-shadow: 0px 0px 0px 1px transparent inset, none;
}
/*--------------
     Active
---------------*/
.ui.active.button {
  background-color: #C0C1C2;
  background-image: none;
  box-shadow: 0px 0px 0px 1px transparent inset;
  color: rgba(0, 0, 0, 0.95);
}
.ui.active.button:hover {
  background-color: #C0C1C2;
  background-image: none;
  color: rgba(0, 0, 0, 0.95);
}
.ui.active.button:active {
  background-color: #C0C1C2;
  background-image: none;
}
/*--------------
    Loading
---------------*/
/* Specificity hack */
.ui.loading.loading.loading.loading.loading.loading.button {
  position: relative;
  cursor: default;
  text-shadow: none !important;
  color: transparent !important;
  opacity: 1;
  pointer-events: auto;
  transition: all 0s linear, opacity 0.1s ease;
}
.ui.loading.button:before {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -0.64285714em 0em 0em -0.64285714em;
  width: 1.28571429em;
  height: 1.28571429em;
  border-radius: 500rem;
  border: 0.2em solid rgba(0, 0, 0, 0.15);
}
.ui.loading.button:after {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -0.64285714em 0em 0em -0.64285714em;
  width: 1.28571429em;
  height: 1.28571429em;
  animation: button-spin 0.6s linear;
  animation-iteration-count: infinite;
  border-radius: 500rem;
  border-color: #FFFFFF transparent transparent;
  border-style: solid;
  border-width: 0.2em;
  box-shadow: 0px 0px 0px 1px transparent;
}
.ui.labeled.icon.loading.button .icon {
  background-color: transparent;
  box-shadow: none;
}
@keyframes button-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.ui.basic.loading.button:not(.inverted):before {
  border-color: rgba(0, 0, 0, 0.1);
}
.ui.basic.loading.button:not(.inverted):after {
  border-top-color: #767676;
}
/*-------------------
      Disabled
--------------------*/
.ui.buttons .disabled.button,
.ui.disabled.button,
.ui.button:disabled,
.ui.disabled.button:hover,
.ui.disabled.active.button {
  cursor: default;
  opacity: 0.45 !important;
  background-image: none !important;
  box-shadow: none !important;
  pointer-events: none !important;
}
/* Basic Group With Disabled */
.ui.basic.buttons .ui.disabled.button {
  border-color: rgba(34, 36, 38, 0.5);
}
/*******************************
             Types
*******************************/
/*-------------------
       Animated
--------------------*/
.ui.animated.button {
  position: relative;
  overflow: hidden;
  padding-right: 0em !important;
  vertical-align: middle;
  z-index: 1;
}
.ui.animated.button .content {
  will-change: transform, opacity;
}
.ui.animated.button .visible.content {
  position: relative;
  margin-right: 1.5em;
}
.ui.animated.button .hidden.content {
  position: absolute;
  width: 100%;
}
/* Horizontal */
.ui.animated.button .visible.content,
.ui.animated.button .hidden.content {
  transition: right 0.3s ease 0s;
}
.ui.animated.button .visible.content {
  left: auto;
  right: 0%;
}
.ui.animated.button .hidden.content {
  top: 50%;
  left: auto;
  right: -100%;
  margin-top: -0.5em;
}
.ui.animated.button:focus .visible.content,
.ui.animated.button:hover .visible.content {
  left: auto;
  right: 200%;
}
.ui.animated.button:focus .hidden.content,
.ui.animated.button:hover .hidden.content {
  left: auto;
  right: 0%;
}
/* Vertical */
.ui.vertical.animated.button .visible.content,
.ui.vertical.animated.button .hidden.content {
  transition: top 0.3s ease, transform 0.3s ease;
}
.ui.vertical.animated.button .visible.content {
  transform: translateY(0%);
  right: auto;
}
.ui.vertical.animated.button .hidden.content {
  top: -50%;
  left: 0%;
  right: auto;
}
.ui.vertical.animated.button:focus .visible.content,
.ui.vertical.animated.button:hover .visible.content {
  transform: translateY(200%);
  right: auto;
}
.ui.vertical.animated.button:focus .hidden.content,
.ui.vertical.animated.button:hover .hidden.content {
  top: 50%;
  right: auto;
}
/* Fade */
.ui.fade.animated.button .visible.content,
.ui.fade.animated.button .hidden.content {
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.ui.fade.animated.button .visible.content {
  left: auto;
  right: auto;
  opacity: 1;
  transform: scale(1);
}
.ui.fade.animated.button .hidden.content {
  opacity: 0;
  left: 0%;
  right: auto;
  transform: scale(1.5);
}
.ui.fade.animated.button:focus .visible.content,
.ui.fade.animated.button:hover .visible.content {
  left: auto;
  right: auto;
  opacity: 0;
  transform: scale(0.75);
}
.ui.fade.animated.button:focus .hidden.content,
.ui.fade.animated.button:hover .hidden.content {
  left: 0%;
  right: auto;
  opacity: 1;
  transform: scale(1);
}
/*-------------------
       Inverted
--------------------*/
.ui.inverted.button {
  box-shadow: 0px 0px 0px 2px #FFFFFF inset !important;
  background: transparent none;
  color: #FFFFFF;
  text-shadow: none !important;
}
/* Group */
.ui.inverted.buttons .button {
  margin: 0px 0px 0px -2px;
}
.ui.inverted.buttons .button:first-child {
  margin-left: 0em;
}
.ui.inverted.vertical.buttons .button {
  margin: 0px 0px -2px 0px;
}
.ui.inverted.vertical.buttons .button:first-child {
  margin-top: 0em;
}
/* States */
/* Hover */
.ui.inverted.button:hover {
  background: #FFFFFF;
  box-shadow: 0px 0px 0px 2px #FFFFFF inset !important;
  color: rgba(0, 0, 0, 0.8);
}
/* Active / Focus */
.ui.inverted.button:focus,
.ui.inverted.button.active {
  background: #FFFFFF;
  box-shadow: 0px 0px 0px 2px #FFFFFF inset !important;
  color: rgba(0, 0, 0, 0.8);
}
/* Active Focus */
.ui.inverted.button.active:focus {
  background: #DCDDDE;
  box-shadow: 0px 0px 0px 2px #DCDDDE inset !important;
  color: rgba(0, 0, 0, 0.8);
}
/*-------------------
    Labeled Button
--------------------*/
.ui.labeled.button:not(.icon) {
  display: inline-flex;
  flex-direction: row;
  background: none !important;
  padding: 0px !important;
  border: none !important;
  box-shadow: none !important;
}
.ui.labeled.button > .button {
  margin: 0px;
}
.ui.labeled.button > .label {
  display: flex;
  align-items: center;
  margin: 0px 0px 0px -1px !important;
  padding: '';
  font-size: 1em;
  border-color: rgba(34, 36, 38, 0.15);
}
/* Tag */
.ui.labeled.button > .tag.label:before {
  width: 1.85em;
  height: 1.85em;
}
/* Right */
.ui.labeled.button:not([class*="left labeled"]) > .button {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}
.ui.labeled.button:not([class*="left labeled"]) > .label {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}
/* Left Side */
.ui[class*="left labeled"].button > .button {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}
.ui[class*="left labeled"].button > .label {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}
/*-------------------
       Social
--------------------*/
/* Facebook */
.ui.facebook.button {
  background-color: #3B5998;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.facebook.button:hover {
  background-color: #304d8a;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.facebook.button:active {
  background-color: #2d4373;
  color: #FFFFFF;
  text-shadow: none;
}
/* Twitter */
.ui.twitter.button {
  background-color: #55ACEE;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.twitter.button:hover {
  background-color: #35a2f4;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.twitter.button:active {
  background-color: #2795e9;
  color: #FFFFFF;
  text-shadow: none;
}
/* Google Plus */
.ui.google.plus.button {
  background-color: #DD4B39;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.google.plus.button:hover {
  background-color: #e0321c;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.google.plus.button:active {
  background-color: #c23321;
  color: #FFFFFF;
  text-shadow: none;
}
/* Linked In */
.ui.linkedin.button {
  background-color: #1F88BE;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.linkedin.button:hover {
  background-color: #147baf;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.linkedin.button:active {
  background-color: #186992;
  color: #FFFFFF;
  text-shadow: none;
}
/* YouTube */
.ui.youtube.button {
  background-color: #FF0000;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.youtube.button:hover {
  background-color: #e60000;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.youtube.button:active {
  background-color: #cc0000;
  color: #FFFFFF;
  text-shadow: none;
}
/* Instagram */
.ui.instagram.button {
  background-color: #49769C;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.instagram.button:hover {
  background-color: #3d698e;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.instagram.button:active {
  background-color: #395c79;
  color: #FFFFFF;
  text-shadow: none;
}
/* Pinterest */
.ui.pinterest.button {
  background-color: #BD081C;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.pinterest.button:hover {
  background-color: #ac0013;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.pinterest.button:active {
  background-color: #8c0615;
  color: #FFFFFF;
  text-shadow: none;
}
/* VK */
.ui.vk.button {
  background-color: #4D7198;
  color: #FFFFFF;
  background-image: none;
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.vk.button:hover {
  background-color: #41648a;
  color: #FFFFFF;
}
.ui.vk.button:active {
  background-color: #3c5876;
  color: #FFFFFF;
}
/*--------------
     Icon
---------------*/
.ui.button > .icon:not(.button) {
  height: 0.85714286em;
  opacity: 0.8;
  margin: 0em 0.42857143em 0em -0.21428571em;
  transition: opacity 0.1s ease;
  vertical-align: '';
  color: '';
}
.ui.button:not(.icon) > .icon:not(.button):not(.dropdown) {
  margin: 0em 0.42857143em 0em -0.21428571em;
}
.ui.button:not(.icon) > .right.icon:not(.button):not(.dropdown) {
  margin: 0em -0.21428571em 0em 0.42857143em;
}
/*******************************
           Variations
*******************************/
/*-------------------
       Floated
--------------------*/
.ui[class*="left floated"].buttons,
.ui[class*="left floated"].button {
  float: left;
  margin-left: 0em;
  margin-right: 0.25em;
}
.ui[class*="right floated"].buttons,
.ui[class*="right floated"].button {
  float: right;
  margin-right: 0em;
  margin-left: 0.25em;
}
/*-------------------
       Compact
--------------------*/
.ui.compact.buttons .button,
.ui.compact.button {
  padding: 0.58928571em 1.125em 0.58928571em;
}
.ui.compact.icon.buttons .button,
.ui.compact.icon.button {
  padding: 0.58928571em 0.58928571em 0.58928571em;
}
.ui.compact.labeled.icon.buttons .button,
.ui.compact.labeled.icon.button {
  padding: 0.58928571em 3.69642857em 0.58928571em;
}
/*-------------------
        Sizes
--------------------*/
.ui.mini.buttons .button,
.ui.mini.buttons .or,
.ui.mini.button {
  font-size: 0.78571429rem;
}
.ui.tiny.buttons .button,
.ui.tiny.buttons .or,
.ui.tiny.button {
  font-size: 0.85714286rem;
}
.ui.small.buttons .button,
.ui.small.buttons .or,
.ui.small.button {
  font-size: 0.92857143rem;
}
.ui.buttons .button,
.ui.buttons .or,
.ui.button {
  font-size: 1rem;
}
.ui.large.buttons .button,
.ui.large.buttons .or,
.ui.large.button {
  font-size: 1.14285714rem;
}
.ui.big.buttons .button,
.ui.big.buttons .or,
.ui.big.button {
  font-size: 1.28571429rem;
}
.ui.huge.buttons .button,
.ui.huge.buttons .or,
.ui.huge.button {
  font-size: 1.42857143rem;
}
.ui.massive.buttons .button,
.ui.massive.buttons .or,
.ui.massive.button {
  font-size: 1.71428571rem;
}
/*--------------
    Icon Only
---------------*/
.ui.icon.buttons .button,
.ui.icon.button {
  padding: 0.78571429em 0.78571429em 0.78571429em;
}
.ui.icon.buttons .button > .icon,
.ui.icon.button > .icon {
  opacity: 0.9;
  margin: 0em !important;
  vertical-align: top;
}
/*-------------------
        Basic
--------------------*/
.ui.basic.buttons .button,
.ui.basic.button {
  background: transparent none !important;
  color: rgba(0, 0, 0, 0.6) !important;
  font-weight: normal;
  border-radius: 0.28571429rem;
  text-transform: none;
  text-shadow: none !important;
  box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
}
.ui.basic.buttons {
  box-shadow: none;
  border: 1px solid rgba(34, 36, 38, 0.15);
  border-radius: 0.28571429rem;
}
.ui.basic.buttons .button {
  border-radius: 0em;
}
.ui.basic.buttons .button:hover,
.ui.basic.button:hover {
  background: #FFFFFF !important;
  color: rgba(0, 0, 0, 0.8) !important;
  box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.basic.buttons .button:focus,
.ui.basic.button:focus {
  background: #FFFFFF !important;
  color: rgba(0, 0, 0, 0.8) !important;
  box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.basic.buttons .button:active,
.ui.basic.button:active {
  background: #F8F8F8 !important;
  color: rgba(0, 0, 0, 0.9) !important;
  box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset, 0px 1px 4px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.basic.buttons .active.button,
.ui.basic.active.button {
  background: rgba(0, 0, 0, 0.05) !important;
  box-shadow: '' !important;
  color: rgba(0, 0, 0, 0.95) !important;
}
.ui.basic.buttons .active.button:hover,
.ui.basic.active.button:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
/* Vertical */
.ui.basic.buttons .button:hover {
  box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset inset;
}
.ui.basic.buttons .button:active {
  box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset, 0px 1px 4px 0px rgba(34, 36, 38, 0.15) inset inset;
}
.ui.basic.buttons .active.button {
  box-shadow: '' !important;
}
/* Standard Basic Inverted */
.ui.basic.inverted.buttons .button,
.ui.basic.inverted.button {
  background-color: transparent !important;
  color: #F9FAFB !important;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
}
.ui.basic.inverted.buttons .button:hover,
.ui.basic.inverted.button:hover {
  color: #FFFFFF !important;
  box-shadow: 0px 0px 0px 2px #ffffff inset !important;
}
.ui.basic.inverted.buttons .button:focus,
.ui.basic.inverted.button:focus {
  color: #FFFFFF !important;
  box-shadow: 0px 0px 0px 2px #ffffff inset !important;
}
.ui.basic.inverted.buttons .button:active,
.ui.basic.inverted.button:active {
  background-color: rgba(255, 255, 255, 0.08) !important;
  color: #FFFFFF !important;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.9) inset !important;
}
.ui.basic.inverted.buttons .active.button,
.ui.basic.inverted.active.button {
  background-color: rgba(255, 255, 255, 0.08);
  color: #FFFFFF;
  text-shadow: none;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.7) inset;
}
.ui.basic.inverted.buttons .active.button:hover,
.ui.basic.inverted.active.button:hover {
  background-color: rgba(255, 255, 255, 0.15);
  box-shadow: 0px 0px 0px 2px #ffffff inset !important;
}
/* Basic Group */
.ui.basic.buttons .button {
  border-left: 1px solid rgba(34, 36, 38, 0.15);
  box-shadow: none;
}
.ui.basic.vertical.buttons .button {
  border-left: none;
}
.ui.basic.vertical.buttons .button {
  border-left-width: 0px;
  border-top: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.basic.vertical.buttons .button:first-child {
  border-top-width: 0px;
}
/*--------------
  Labeled Icon
---------------*/
.ui.labeled.icon.buttons .button,
.ui.labeled.icon.button {
  position: relative;
  padding-left: 4.07142857em !important;
  padding-right: 1.5em !important;
}
/* Left Labeled */
.ui.labeled.icon.buttons > .button > .icon,
.ui.labeled.icon.button > .icon {
  position: absolute;
  height: 100%;
  line-height: 1;
  border-radius: 0px;
  border-top-left-radius: inherit;
  border-bottom-left-radius: inherit;
  text-align: center;
  margin: 0em;
  width: 2.57142857em;
  background-color: rgba(0, 0, 0, 0.05);
  color: '';
  box-shadow: -1px 0px 0px 0px transparent inset;
}
/* Left Labeled */
.ui.labeled.icon.buttons > .button > .icon,
.ui.labeled.icon.button > .icon {
  top: 0em;
  left: 0em;
}
/* Right Labeled */
.ui[class*="right labeled"].icon.button {
  padding-right: 4.07142857em !important;
  padding-left: 1.5em !important;
}
.ui[class*="right labeled"].icon.button > .icon {
  left: auto;
  right: 0em;
  border-radius: 0px;
  border-top-right-radius: inherit;
  border-bottom-right-radius: inherit;
  box-shadow: 1px 0px 0px 0px transparent inset;
}
.ui.labeled.icon.buttons > .button > .icon:before,
.ui.labeled.icon.button > .icon:before,
.ui.labeled.icon.buttons > .button > .icon:after,
.ui.labeled.icon.button > .icon:after {
  display: block;
  position: absolute;
  width: 100%;
  top: 50%;
  text-align: center;
  transform: translateY(-50%);
}
.ui.labeled.icon.buttons .button > .icon {
  border-radius: 0em;
}
.ui.labeled.icon.buttons .button:first-child > .icon {
  border-top-left-radius: 0.28571429rem;
  border-bottom-left-radius: 0.28571429rem;
}
.ui.labeled.icon.buttons .button:last-child > .icon {
  border-top-right-radius: 0.28571429rem;
  border-bottom-right-radius: 0.28571429rem;
}
.ui.vertical.labeled.icon.buttons .button:first-child > .icon {
  border-radius: 0em;
  border-top-left-radius: 0.28571429rem;
}
.ui.vertical.labeled.icon.buttons .button:last-child > .icon {
  border-radius: 0em;
  border-bottom-left-radius: 0.28571429rem;
}
/* Fluid Labeled */
.ui.fluid[class*="left labeled"].icon.button,
.ui.fluid[class*="right labeled"].icon.button {
  padding-left: 1.5em !important;
  padding-right: 1.5em !important;
}
/*--------------
     Toggle
---------------*/
/* Toggle (Modifies active state to give affordances) */
.ui.toggle.buttons .active.button,
.ui.buttons .button.toggle.active,
.ui.button.toggle.active {
  background-color: #21BA45 !important;
  box-shadow: none !important;
  text-shadow: none;
  color: #FFFFFF !important;
}
.ui.button.toggle.active:hover {
  background-color: #16ab39 !important;
  text-shadow: none;
  color: #FFFFFF !important;
}
/*--------------
    Circular
---------------*/
.ui.circular.button {
  border-radius: 10em;
}
.ui.circular.button > .icon {
  width: 1em;
  vertical-align: baseline;
}
/*-------------------
      Or Buttons
--------------------*/
.ui.buttons .or {
  position: relative;
  width: 0.3em;
  height: 2.57142857em;
  z-index: 3;
}
.ui.buttons .or:before {
  position: absolute;
  text-align: center;
  border-radius: 500rem;
  content: 'or';
  top: 50%;
  left: 50%;
  background-color: #FFFFFF;
  text-shadow: none;
  margin-top: -0.89285714em;
  margin-left: -0.89285714em;
  width: 1.78571429em;
  height: 1.78571429em;
  line-height: 1.78571429em;
  color: rgba(0, 0, 0, 0.4);
  font-style: normal;
  font-weight: bold;
  box-shadow: 0px 0px 0px 1px transparent inset;
}
.ui.buttons .or[data-text]:before {
  content: attr(data-text);
}
/* Fluid Or */
.ui.fluid.buttons .or {
  width: 0em !important;
}
.ui.fluid.buttons .or:after {
  display: none;
}
/*-------------------
       Attached
--------------------*/
/* Singular */
.ui.attached.button {
  position: relative;
  display: block;
  margin: 0em;
  border-radius: 0em;
  box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.15) !important;
}
/* Top / Bottom */
.ui.attached.top.button {
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.attached.bottom.button {
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
/* Left / Right */
.ui.left.attached.button {
  display: inline-block;
  border-left: none;
  text-align: right;
  padding-right: 0.75em;
  border-radius: 0.28571429rem 0em 0em 0.28571429rem;
}
.ui.right.attached.button {
  display: inline-block;
  text-align: left;
  padding-left: 0.75em;
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
}
/* Plural */
.ui.attached.buttons {
  position: relative;
  display: flex;
  border-radius: 0em;
  width: auto !important;
  z-index: 2;
  margin-left: -1px;
  margin-right: -1px;
}
.ui.attached.buttons .button {
  margin: 0em;
}
.ui.attached.buttons .button:first-child {
  border-radius: 0em;
}
.ui.attached.buttons .button:last-child {
  border-radius: 0em;
}
/* Top / Bottom */
.ui[class*="top attached"].buttons {
  margin-bottom: -1px;
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui[class*="top attached"].buttons .button:first-child {
  border-radius: 0.28571429rem 0em 0em 0em;
}
.ui[class*="top attached"].buttons .button:last-child {
  border-radius: 0em 0.28571429rem 0em 0em;
}
.ui[class*="bottom attached"].buttons {
  margin-top: -1px;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
.ui[class*="bottom attached"].buttons .button:first-child {
  border-radius: 0em 0em 0em 0.28571429rem;
}
.ui[class*="bottom attached"].buttons .button:last-child {
  border-radius: 0em 0em 0.28571429rem 0em;
}
/* Left / Right */
.ui[class*="left attached"].buttons {
  display: inline-flex;
  margin-right: 0em;
  margin-left: -1px;
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
}
.ui[class*="left attached"].buttons .button:first-child {
  margin-left: -1px;
  border-radius: 0em 0.28571429rem 0em 0em;
}
.ui[class*="left attached"].buttons .button:last-child {
  margin-left: -1px;
  border-radius: 0em 0em 0.28571429rem 0em;
}
.ui[class*="right attached"].buttons {
  display: inline-flex;
  margin-left: 0em;
  margin-right: -1px;
  border-radius: 0.28571429rem 0em 0em 0.28571429rem;
}
.ui[class*="right attached"].buttons .button:first-child {
  margin-left: -1px;
  border-radius: 0.28571429rem 0em 0em 0em;
}
.ui[class*="right attached"].buttons .button:last-child {
  margin-left: -1px;
  border-radius: 0em 0em 0em 0.28571429rem;
}
/*-------------------
        Fluid
--------------------*/
.ui.fluid.buttons,
.ui.fluid.button {
  width: 100%;
}
.ui.fluid.button {
  display: block;
}
.ui.two.buttons {
  width: 100%;
}
.ui.two.buttons > .button {
  width: 50%;
}
.ui.three.buttons {
  width: 100%;
}
.ui.three.buttons > .button {
  width: 33.333%;
}
.ui.four.buttons {
  width: 100%;
}
.ui.four.buttons > .button {
  width: 25%;
}
.ui.five.buttons {
  width: 100%;
}
.ui.five.buttons > .button {
  width: 20%;
}
.ui.six.buttons {
  width: 100%;
}
.ui.six.buttons > .button {
  width: 16.666%;
}
.ui.seven.buttons {
  width: 100%;
}
.ui.seven.buttons > .button {
  width: 14.285%;
}
.ui.eight.buttons {
  width: 100%;
}
.ui.eight.buttons > .button {
  width: 12.5%;
}
.ui.nine.buttons {
  width: 100%;
}
.ui.nine.buttons > .button {
  width: 11.11%;
}
.ui.ten.buttons {
  width: 100%;
}
.ui.ten.buttons > .button {
  width: 10%;
}
.ui.eleven.buttons {
  width: 100%;
}
.ui.eleven.buttons > .button {
  width: 9.09%;
}
.ui.twelve.buttons {
  width: 100%;
}
.ui.twelve.buttons > .button {
  width: 8.3333%;
}
/* Fluid Vertical Buttons */
.ui.fluid.vertical.buttons,
.ui.fluid.vertical.buttons > .button {
  display: flex;
  width: auto;
}
.ui.two.vertical.buttons > .button {
  height: 50%;
}
.ui.three.vertical.buttons > .button {
  height: 33.333%;
}
.ui.four.vertical.buttons > .button {
  height: 25%;
}
.ui.five.vertical.buttons > .button {
  height: 20%;
}
.ui.six.vertical.buttons > .button {
  height: 16.666%;
}
.ui.seven.vertical.buttons > .button {
  height: 14.285%;
}
.ui.eight.vertical.buttons > .button {
  height: 12.5%;
}
.ui.nine.vertical.buttons > .button {
  height: 11.11%;
}
.ui.ten.vertical.buttons > .button {
  height: 10%;
}
.ui.eleven.vertical.buttons > .button {
  height: 9.09%;
}
.ui.twelve.vertical.buttons > .button {
  height: 8.3333%;
}
/*-------------------
       Colors
--------------------*/
/*--- Black ---*/
.ui.black.buttons .button,
.ui.black.button {
  background-color: #1B1C1D;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.black.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.black.buttons .button:hover,
.ui.black.button:hover {
  background-color: #27292a;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.black.buttons .button:focus,
.ui.black.button:focus {
  background-color: #2f3032;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.black.buttons .button:active,
.ui.black.button:active {
  background-color: #343637;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.black.buttons .active.button,
.ui.black.buttons .active.button:active,
.ui.black.active.button,
.ui.black.button .active.button:active {
  background-color: #0f0f10;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.black.buttons .button,
.ui.basic.black.button {
  box-shadow: 0px 0px 0px 1px #1B1C1D inset !important;
  color: #1B1C1D !important;
}
.ui.basic.black.buttons .button:hover,
.ui.basic.black.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #27292a inset !important;
  color: #27292a !important;
}
.ui.basic.black.buttons .button:focus,
.ui.basic.black.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #2f3032 inset !important;
  color: #27292a !important;
}
.ui.basic.black.buttons .active.button,
.ui.basic.black.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #0f0f10 inset !important;
  color: #343637 !important;
}
.ui.basic.black.buttons .button:active,
.ui.basic.black.button:active {
  box-shadow: 0px 0px 0px 1px #343637 inset !important;
  color: #343637 !important;
}
.ui.buttons:not(.vertical) > .basic.black.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.black.buttons .button,
.ui.inverted.black.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #D4D4D5 inset !important;
  color: #FFFFFF;
}
.ui.inverted.black.buttons .button:hover,
.ui.inverted.black.button:hover,
.ui.inverted.black.buttons .button:focus,
.ui.inverted.black.button:focus,
.ui.inverted.black.buttons .button.active,
.ui.inverted.black.button.active,
.ui.inverted.black.buttons .button:active,
.ui.inverted.black.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.black.buttons .button:hover,
.ui.inverted.black.button:hover {
  background-color: #000000;
}
.ui.inverted.black.buttons .button:focus,
.ui.inverted.black.button:focus {
  background-color: #000000;
}
.ui.inverted.black.buttons .active.button,
.ui.inverted.black.active.button {
  background-color: #000000;
}
.ui.inverted.black.buttons .button:active,
.ui.inverted.black.button:active {
  background-color: #000000;
}
/* Inverted Basic */
.ui.inverted.black.basic.buttons .button,
.ui.inverted.black.buttons .basic.button,
.ui.inverted.black.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.black.basic.buttons .button:hover,
.ui.inverted.black.buttons .basic.button:hover,
.ui.inverted.black.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #000000 inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.black.basic.buttons .button:focus,
.ui.inverted.black.basic.buttons .button:focus,
.ui.inverted.black.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #000000 inset !important;
  color: #545454 !important;
}
.ui.inverted.black.basic.buttons .active.button,
.ui.inverted.black.buttons .basic.active.button,
.ui.inverted.black.basic.active.button {
  box-shadow: 0px 0px 0px 2px #000000 inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.black.basic.buttons .button:active,
.ui.inverted.black.buttons .basic.button:active,
.ui.inverted.black.basic.button:active {
  box-shadow: 0px 0px 0px 2px #000000 inset !important;
  color: #FFFFFF !important;
}
/*--- Grey ---*/
.ui.grey.buttons .button,
.ui.grey.button {
  background-color: #767676;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.grey.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.grey.buttons .button:hover,
.ui.grey.button:hover {
  background-color: #838383;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.grey.buttons .button:focus,
.ui.grey.button:focus {
  background-color: #8a8a8a;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.grey.buttons .button:active,
.ui.grey.button:active {
  background-color: #909090;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.grey.buttons .active.button,
.ui.grey.buttons .active.button:active,
.ui.grey.active.button,
.ui.grey.button .active.button:active {
  background-color: #696969;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.grey.buttons .button,
.ui.basic.grey.button {
  box-shadow: 0px 0px 0px 1px #767676 inset !important;
  color: #767676 !important;
}
.ui.basic.grey.buttons .button:hover,
.ui.basic.grey.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #838383 inset !important;
  color: #838383 !important;
}
.ui.basic.grey.buttons .button:focus,
.ui.basic.grey.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #8a8a8a inset !important;
  color: #838383 !important;
}
.ui.basic.grey.buttons .active.button,
.ui.basic.grey.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #696969 inset !important;
  color: #909090 !important;
}
.ui.basic.grey.buttons .button:active,
.ui.basic.grey.button:active {
  box-shadow: 0px 0px 0px 1px #909090 inset !important;
  color: #909090 !important;
}
.ui.buttons:not(.vertical) > .basic.grey.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.grey.buttons .button,
.ui.inverted.grey.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #D4D4D5 inset !important;
  color: #FFFFFF;
}
.ui.inverted.grey.buttons .button:hover,
.ui.inverted.grey.button:hover,
.ui.inverted.grey.buttons .button:focus,
.ui.inverted.grey.button:focus,
.ui.inverted.grey.buttons .button.active,
.ui.inverted.grey.button.active,
.ui.inverted.grey.buttons .button:active,
.ui.inverted.grey.button:active {
  box-shadow: none !important;
  color: rgba(0, 0, 0, 0.6);
}
.ui.inverted.grey.buttons .button:hover,
.ui.inverted.grey.button:hover {
  background-color: #cfd0d2;
}
.ui.inverted.grey.buttons .button:focus,
.ui.inverted.grey.button:focus {
  background-color: #c7c9cb;
}
.ui.inverted.grey.buttons .active.button,
.ui.inverted.grey.active.button {
  background-color: #cfd0d2;
}
.ui.inverted.grey.buttons .button:active,
.ui.inverted.grey.button:active {
  background-color: #c2c4c5;
}
/* Inverted Basic */
.ui.inverted.grey.basic.buttons .button,
.ui.inverted.grey.buttons .basic.button,
.ui.inverted.grey.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.grey.basic.buttons .button:hover,
.ui.inverted.grey.buttons .basic.button:hover,
.ui.inverted.grey.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #cfd0d2 inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.grey.basic.buttons .button:focus,
.ui.inverted.grey.basic.buttons .button:focus,
.ui.inverted.grey.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #c7c9cb inset !important;
  color: #DCDDDE !important;
}
.ui.inverted.grey.basic.buttons .active.button,
.ui.inverted.grey.buttons .basic.active.button,
.ui.inverted.grey.basic.active.button {
  box-shadow: 0px 0px 0px 2px #cfd0d2 inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.grey.basic.buttons .button:active,
.ui.inverted.grey.buttons .basic.button:active,
.ui.inverted.grey.basic.button:active {
  box-shadow: 0px 0px 0px 2px #c2c4c5 inset !important;
  color: #FFFFFF !important;
}
/*--- Brown ---*/
.ui.brown.buttons .button,
.ui.brown.button {
  background-color: #A5673F;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.brown.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.brown.buttons .button:hover,
.ui.brown.button:hover {
  background-color: #975b33;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.brown.buttons .button:focus,
.ui.brown.button:focus {
  background-color: #90532b;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.brown.buttons .button:active,
.ui.brown.button:active {
  background-color: #805031;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.brown.buttons .active.button,
.ui.brown.buttons .active.button:active,
.ui.brown.active.button,
.ui.brown.button .active.button:active {
  background-color: #995a31;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.brown.buttons .button,
.ui.basic.brown.button {
  box-shadow: 0px 0px 0px 1px #A5673F inset !important;
  color: #A5673F !important;
}
.ui.basic.brown.buttons .button:hover,
.ui.basic.brown.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #975b33 inset !important;
  color: #975b33 !important;
}
.ui.basic.brown.buttons .button:focus,
.ui.basic.brown.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #90532b inset !important;
  color: #975b33 !important;
}
.ui.basic.brown.buttons .active.button,
.ui.basic.brown.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #995a31 inset !important;
  color: #805031 !important;
}
.ui.basic.brown.buttons .button:active,
.ui.basic.brown.button:active {
  box-shadow: 0px 0px 0px 1px #805031 inset !important;
  color: #805031 !important;
}
.ui.buttons:not(.vertical) > .basic.brown.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.brown.buttons .button,
.ui.inverted.brown.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #D67C1C inset !important;
  color: #D67C1C;
}
.ui.inverted.brown.buttons .button:hover,
.ui.inverted.brown.button:hover,
.ui.inverted.brown.buttons .button:focus,
.ui.inverted.brown.button:focus,
.ui.inverted.brown.buttons .button.active,
.ui.inverted.brown.button.active,
.ui.inverted.brown.buttons .button:active,
.ui.inverted.brown.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.brown.buttons .button:hover,
.ui.inverted.brown.button:hover {
  background-color: #c86f11;
}
.ui.inverted.brown.buttons .button:focus,
.ui.inverted.brown.button:focus {
  background-color: #c16808;
}
.ui.inverted.brown.buttons .active.button,
.ui.inverted.brown.active.button {
  background-color: #cc6f0d;
}
.ui.inverted.brown.buttons .button:active,
.ui.inverted.brown.button:active {
  background-color: #a96216;
}
/* Inverted Basic */
.ui.inverted.brown.basic.buttons .button,
.ui.inverted.brown.buttons .basic.button,
.ui.inverted.brown.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.brown.basic.buttons .button:hover,
.ui.inverted.brown.buttons .basic.button:hover,
.ui.inverted.brown.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #c86f11 inset !important;
  color: #D67C1C !important;
}
.ui.inverted.brown.basic.buttons .button:focus,
.ui.inverted.brown.basic.buttons .button:focus,
.ui.inverted.brown.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #c16808 inset !important;
  color: #D67C1C !important;
}
.ui.inverted.brown.basic.buttons .active.button,
.ui.inverted.brown.buttons .basic.active.button,
.ui.inverted.brown.basic.active.button {
  box-shadow: 0px 0px 0px 2px #cc6f0d inset !important;
  color: #D67C1C !important;
}
.ui.inverted.brown.basic.buttons .button:active,
.ui.inverted.brown.buttons .basic.button:active,
.ui.inverted.brown.basic.button:active {
  box-shadow: 0px 0px 0px 2px #a96216 inset !important;
  color: #D67C1C !important;
}
/*--- Blue ---*/
.ui.blue.buttons .button,
.ui.blue.button {
  background-color: #2185D0;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.blue.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.blue.buttons .button:hover,
.ui.blue.button:hover {
  background-color: #1678c2;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.blue.buttons .button:focus,
.ui.blue.button:focus {
  background-color: #0d71bb;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.blue.buttons .button:active,
.ui.blue.button:active {
  background-color: #1a69a4;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.blue.buttons .active.button,
.ui.blue.buttons .active.button:active,
.ui.blue.active.button,
.ui.blue.button .active.button:active {
  background-color: #1279c6;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.blue.buttons .button,
.ui.basic.blue.button {
  box-shadow: 0px 0px 0px 1px #2185D0 inset !important;
  color: #2185D0 !important;
}
.ui.basic.blue.buttons .button:hover,
.ui.basic.blue.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #1678c2 inset !important;
  color: #1678c2 !important;
}
.ui.basic.blue.buttons .button:focus,
.ui.basic.blue.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #0d71bb inset !important;
  color: #1678c2 !important;
}
.ui.basic.blue.buttons .active.button,
.ui.basic.blue.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #1279c6 inset !important;
  color: #1a69a4 !important;
}
.ui.basic.blue.buttons .button:active,
.ui.basic.blue.button:active {
  box-shadow: 0px 0px 0px 1px #1a69a4 inset !important;
  color: #1a69a4 !important;
}
.ui.buttons:not(.vertical) > .basic.blue.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.blue.buttons .button,
.ui.inverted.blue.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #54C8FF inset !important;
  color: #54C8FF;
}
.ui.inverted.blue.buttons .button:hover,
.ui.inverted.blue.button:hover,
.ui.inverted.blue.buttons .button:focus,
.ui.inverted.blue.button:focus,
.ui.inverted.blue.buttons .button.active,
.ui.inverted.blue.button.active,
.ui.inverted.blue.buttons .button:active,
.ui.inverted.blue.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.blue.buttons .button:hover,
.ui.inverted.blue.button:hover {
  background-color: #3ac0ff;
}
.ui.inverted.blue.buttons .button:focus,
.ui.inverted.blue.button:focus {
  background-color: #2bbbff;
}
.ui.inverted.blue.buttons .active.button,
.ui.inverted.blue.active.button {
  background-color: #3ac0ff;
}
.ui.inverted.blue.buttons .button:active,
.ui.inverted.blue.button:active {
  background-color: #21b8ff;
}
/* Inverted Basic */
.ui.inverted.blue.basic.buttons .button,
.ui.inverted.blue.buttons .basic.button,
.ui.inverted.blue.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.blue.basic.buttons .button:hover,
.ui.inverted.blue.buttons .basic.button:hover,
.ui.inverted.blue.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #3ac0ff inset !important;
  color: #54C8FF !important;
}
.ui.inverted.blue.basic.buttons .button:focus,
.ui.inverted.blue.basic.buttons .button:focus,
.ui.inverted.blue.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #2bbbff inset !important;
  color: #54C8FF !important;
}
.ui.inverted.blue.basic.buttons .active.button,
.ui.inverted.blue.buttons .basic.active.button,
.ui.inverted.blue.basic.active.button {
  box-shadow: 0px 0px 0px 2px #3ac0ff inset !important;
  color: #54C8FF !important;
}
.ui.inverted.blue.basic.buttons .button:active,
.ui.inverted.blue.buttons .basic.button:active,
.ui.inverted.blue.basic.button:active {
  box-shadow: 0px 0px 0px 2px #21b8ff inset !important;
  color: #54C8FF !important;
}
/*--- Green ---*/
.ui.green.buttons .button,
.ui.green.button {
  background-color: #21BA45;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.green.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.green.buttons .button:hover,
.ui.green.button:hover {
  background-color: #16ab39;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.green.buttons .button:focus,
.ui.green.button:focus {
  background-color: #0ea432;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.green.buttons .button:active,
.ui.green.button:active {
  background-color: #198f35;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.green.buttons .active.button,
.ui.green.buttons .active.button:active,
.ui.green.active.button,
.ui.green.button .active.button:active {
  background-color: #13ae38;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.green.buttons .button,
.ui.basic.green.button {
  box-shadow: 0px 0px 0px 1px #21BA45 inset !important;
  color: #21BA45 !important;
}
.ui.basic.green.buttons .button:hover,
.ui.basic.green.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #16ab39 inset !important;
  color: #16ab39 !important;
}
.ui.basic.green.buttons .button:focus,
.ui.basic.green.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #0ea432 inset !important;
  color: #16ab39 !important;
}
.ui.basic.green.buttons .active.button,
.ui.basic.green.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #13ae38 inset !important;
  color: #198f35 !important;
}
.ui.basic.green.buttons .button:active,
.ui.basic.green.button:active {
  box-shadow: 0px 0px 0px 1px #198f35 inset !important;
  color: #198f35 !important;
}
.ui.buttons:not(.vertical) > .basic.green.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.green.buttons .button,
.ui.inverted.green.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #2ECC40 inset !important;
  color: #2ECC40;
}
.ui.inverted.green.buttons .button:hover,
.ui.inverted.green.button:hover,
.ui.inverted.green.buttons .button:focus,
.ui.inverted.green.button:focus,
.ui.inverted.green.buttons .button.active,
.ui.inverted.green.button.active,
.ui.inverted.green.buttons .button:active,
.ui.inverted.green.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.green.buttons .button:hover,
.ui.inverted.green.button:hover {
  background-color: #22be34;
}
.ui.inverted.green.buttons .button:focus,
.ui.inverted.green.button:focus {
  background-color: #19b82b;
}
.ui.inverted.green.buttons .active.button,
.ui.inverted.green.active.button {
  background-color: #1fc231;
}
.ui.inverted.green.buttons .button:active,
.ui.inverted.green.button:active {
  background-color: #25a233;
}
/* Inverted Basic */
.ui.inverted.green.basic.buttons .button,
.ui.inverted.green.buttons .basic.button,
.ui.inverted.green.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.green.basic.buttons .button:hover,
.ui.inverted.green.buttons .basic.button:hover,
.ui.inverted.green.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #22be34 inset !important;
  color: #2ECC40 !important;
}
.ui.inverted.green.basic.buttons .button:focus,
.ui.inverted.green.basic.buttons .button:focus,
.ui.inverted.green.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #19b82b inset !important;
  color: #2ECC40 !important;
}
.ui.inverted.green.basic.buttons .active.button,
.ui.inverted.green.buttons .basic.active.button,
.ui.inverted.green.basic.active.button {
  box-shadow: 0px 0px 0px 2px #1fc231 inset !important;
  color: #2ECC40 !important;
}
.ui.inverted.green.basic.buttons .button:active,
.ui.inverted.green.buttons .basic.button:active,
.ui.inverted.green.basic.button:active {
  box-shadow: 0px 0px 0px 2px #25a233 inset !important;
  color: #2ECC40 !important;
}
/*--- Orange ---*/
.ui.orange.buttons .button,
.ui.orange.button {
  background-color: #F2711C;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.orange.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.orange.buttons .button:hover,
.ui.orange.button:hover {
  background-color: #f26202;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.orange.buttons .button:focus,
.ui.orange.button:focus {
  background-color: #e55b00;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.orange.buttons .button:active,
.ui.orange.button:active {
  background-color: #cf590c;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.orange.buttons .active.button,
.ui.orange.buttons .active.button:active,
.ui.orange.active.button,
.ui.orange.button .active.button:active {
  background-color: #f56100;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.orange.buttons .button,
.ui.basic.orange.button {
  box-shadow: 0px 0px 0px 1px #F2711C inset !important;
  color: #F2711C !important;
}
.ui.basic.orange.buttons .button:hover,
.ui.basic.orange.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #f26202 inset !important;
  color: #f26202 !important;
}
.ui.basic.orange.buttons .button:focus,
.ui.basic.orange.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #e55b00 inset !important;
  color: #f26202 !important;
}
.ui.basic.orange.buttons .active.button,
.ui.basic.orange.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #f56100 inset !important;
  color: #cf590c !important;
}
.ui.basic.orange.buttons .button:active,
.ui.basic.orange.button:active {
  box-shadow: 0px 0px 0px 1px #cf590c inset !important;
  color: #cf590c !important;
}
.ui.buttons:not(.vertical) > .basic.orange.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.orange.buttons .button,
.ui.inverted.orange.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #FF851B inset !important;
  color: #FF851B;
}
.ui.inverted.orange.buttons .button:hover,
.ui.inverted.orange.button:hover,
.ui.inverted.orange.buttons .button:focus,
.ui.inverted.orange.button:focus,
.ui.inverted.orange.buttons .button.active,
.ui.inverted.orange.button.active,
.ui.inverted.orange.buttons .button:active,
.ui.inverted.orange.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.orange.buttons .button:hover,
.ui.inverted.orange.button:hover {
  background-color: #ff7701;
}
.ui.inverted.orange.buttons .button:focus,
.ui.inverted.orange.button:focus {
  background-color: #f17000;
}
.ui.inverted.orange.buttons .active.button,
.ui.inverted.orange.active.button {
  background-color: #ff7701;
}
.ui.inverted.orange.buttons .button:active,
.ui.inverted.orange.button:active {
  background-color: #e76b00;
}
/* Inverted Basic */
.ui.inverted.orange.basic.buttons .button,
.ui.inverted.orange.buttons .basic.button,
.ui.inverted.orange.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.orange.basic.buttons .button:hover,
.ui.inverted.orange.buttons .basic.button:hover,
.ui.inverted.orange.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #ff7701 inset !important;
  color: #FF851B !important;
}
.ui.inverted.orange.basic.buttons .button:focus,
.ui.inverted.orange.basic.buttons .button:focus,
.ui.inverted.orange.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #f17000 inset !important;
  color: #FF851B !important;
}
.ui.inverted.orange.basic.buttons .active.button,
.ui.inverted.orange.buttons .basic.active.button,
.ui.inverted.orange.basic.active.button {
  box-shadow: 0px 0px 0px 2px #ff7701 inset !important;
  color: #FF851B !important;
}
.ui.inverted.orange.basic.buttons .button:active,
.ui.inverted.orange.buttons .basic.button:active,
.ui.inverted.orange.basic.button:active {
  box-shadow: 0px 0px 0px 2px #e76b00 inset !important;
  color: #FF851B !important;
}
/*--- Pink ---*/
.ui.pink.buttons .button,
.ui.pink.button {
  background-color: #E03997;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.pink.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.pink.buttons .button:hover,
.ui.pink.button:hover {
  background-color: #e61a8d;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.pink.buttons .button:focus,
.ui.pink.button:focus {
  background-color: #e10f85;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.pink.buttons .button:active,
.ui.pink.button:active {
  background-color: #c71f7e;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.pink.buttons .active.button,
.ui.pink.buttons .active.button:active,
.ui.pink.active.button,
.ui.pink.button .active.button:active {
  background-color: #ea158d;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.pink.buttons .button,
.ui.basic.pink.button {
  box-shadow: 0px 0px 0px 1px #E03997 inset !important;
  color: #E03997 !important;
}
.ui.basic.pink.buttons .button:hover,
.ui.basic.pink.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #e61a8d inset !important;
  color: #e61a8d !important;
}
.ui.basic.pink.buttons .button:focus,
.ui.basic.pink.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #e10f85 inset !important;
  color: #e61a8d !important;
}
.ui.basic.pink.buttons .active.button,
.ui.basic.pink.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #ea158d inset !important;
  color: #c71f7e !important;
}
.ui.basic.pink.buttons .button:active,
.ui.basic.pink.button:active {
  box-shadow: 0px 0px 0px 1px #c71f7e inset !important;
  color: #c71f7e !important;
}
.ui.buttons:not(.vertical) > .basic.pink.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.pink.buttons .button,
.ui.inverted.pink.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #FF8EDF inset !important;
  color: #FF8EDF;
}
.ui.inverted.pink.buttons .button:hover,
.ui.inverted.pink.button:hover,
.ui.inverted.pink.buttons .button:focus,
.ui.inverted.pink.button:focus,
.ui.inverted.pink.buttons .button.active,
.ui.inverted.pink.button.active,
.ui.inverted.pink.buttons .button:active,
.ui.inverted.pink.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.pink.buttons .button:hover,
.ui.inverted.pink.button:hover {
  background-color: #ff74d8;
}
.ui.inverted.pink.buttons .button:focus,
.ui.inverted.pink.button:focus {
  background-color: #ff65d3;
}
.ui.inverted.pink.buttons .active.button,
.ui.inverted.pink.active.button {
  background-color: #ff74d8;
}
.ui.inverted.pink.buttons .button:active,
.ui.inverted.pink.button:active {
  background-color: #ff5bd1;
}
/* Inverted Basic */
.ui.inverted.pink.basic.buttons .button,
.ui.inverted.pink.buttons .basic.button,
.ui.inverted.pink.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.pink.basic.buttons .button:hover,
.ui.inverted.pink.buttons .basic.button:hover,
.ui.inverted.pink.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #ff74d8 inset !important;
  color: #FF8EDF !important;
}
.ui.inverted.pink.basic.buttons .button:focus,
.ui.inverted.pink.basic.buttons .button:focus,
.ui.inverted.pink.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #ff65d3 inset !important;
  color: #FF8EDF !important;
}
.ui.inverted.pink.basic.buttons .active.button,
.ui.inverted.pink.buttons .basic.active.button,
.ui.inverted.pink.basic.active.button {
  box-shadow: 0px 0px 0px 2px #ff74d8 inset !important;
  color: #FF8EDF !important;
}
.ui.inverted.pink.basic.buttons .button:active,
.ui.inverted.pink.buttons .basic.button:active,
.ui.inverted.pink.basic.button:active {
  box-shadow: 0px 0px 0px 2px #ff5bd1 inset !important;
  color: #FF8EDF !important;
}
/*--- Violet ---*/
.ui.violet.buttons .button,
.ui.violet.button {
  background-color: #6435C9;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.violet.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.violet.buttons .button:hover,
.ui.violet.button:hover {
  background-color: #5829bb;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.violet.buttons .button:focus,
.ui.violet.button:focus {
  background-color: #4f20b5;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.violet.buttons .button:active,
.ui.violet.button:active {
  background-color: #502aa1;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.violet.buttons .active.button,
.ui.violet.buttons .active.button:active,
.ui.violet.active.button,
.ui.violet.button .active.button:active {
  background-color: #5626bf;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.violet.buttons .button,
.ui.basic.violet.button {
  box-shadow: 0px 0px 0px 1px #6435C9 inset !important;
  color: #6435C9 !important;
}
.ui.basic.violet.buttons .button:hover,
.ui.basic.violet.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #5829bb inset !important;
  color: #5829bb !important;
}
.ui.basic.violet.buttons .button:focus,
.ui.basic.violet.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #4f20b5 inset !important;
  color: #5829bb !important;
}
.ui.basic.violet.buttons .active.button,
.ui.basic.violet.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #5626bf inset !important;
  color: #502aa1 !important;
}
.ui.basic.violet.buttons .button:active,
.ui.basic.violet.button:active {
  box-shadow: 0px 0px 0px 1px #502aa1 inset !important;
  color: #502aa1 !important;
}
.ui.buttons:not(.vertical) > .basic.violet.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.violet.buttons .button,
.ui.inverted.violet.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #A291FB inset !important;
  color: #A291FB;
}
.ui.inverted.violet.buttons .button:hover,
.ui.inverted.violet.button:hover,
.ui.inverted.violet.buttons .button:focus,
.ui.inverted.violet.button:focus,
.ui.inverted.violet.buttons .button.active,
.ui.inverted.violet.button.active,
.ui.inverted.violet.buttons .button:active,
.ui.inverted.violet.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.violet.buttons .button:hover,
.ui.inverted.violet.button:hover {
  background-color: #8a73ff;
}
.ui.inverted.violet.buttons .button:focus,
.ui.inverted.violet.button:focus {
  background-color: #7d64ff;
}
.ui.inverted.violet.buttons .active.button,
.ui.inverted.violet.active.button {
  background-color: #8a73ff;
}
.ui.inverted.violet.buttons .button:active,
.ui.inverted.violet.button:active {
  background-color: #7860f9;
}
/* Inverted Basic */
.ui.inverted.violet.basic.buttons .button,
.ui.inverted.violet.buttons .basic.button,
.ui.inverted.violet.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.violet.basic.buttons .button:hover,
.ui.inverted.violet.buttons .basic.button:hover,
.ui.inverted.violet.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #8a73ff inset !important;
  color: #A291FB !important;
}
.ui.inverted.violet.basic.buttons .button:focus,
.ui.inverted.violet.basic.buttons .button:focus,
.ui.inverted.violet.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #7d64ff inset !important;
  color: #A291FB !important;
}
.ui.inverted.violet.basic.buttons .active.button,
.ui.inverted.violet.buttons .basic.active.button,
.ui.inverted.violet.basic.active.button {
  box-shadow: 0px 0px 0px 2px #8a73ff inset !important;
  color: #A291FB !important;
}
.ui.inverted.violet.basic.buttons .button:active,
.ui.inverted.violet.buttons .basic.button:active,
.ui.inverted.violet.basic.button:active {
  box-shadow: 0px 0px 0px 2px #7860f9 inset !important;
  color: #A291FB !important;
}
/*--- Purple ---*/
.ui.purple.buttons .button,
.ui.purple.button {
  background-color: #A333C8;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.purple.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.purple.buttons .button:hover,
.ui.purple.button:hover {
  background-color: #9627ba;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.purple.buttons .button:focus,
.ui.purple.button:focus {
  background-color: #8f1eb4;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.purple.buttons .button:active,
.ui.purple.button:active {
  background-color: #82299f;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.purple.buttons .active.button,
.ui.purple.buttons .active.button:active,
.ui.purple.active.button,
.ui.purple.button .active.button:active {
  background-color: #9724be;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.purple.buttons .button,
.ui.basic.purple.button {
  box-shadow: 0px 0px 0px 1px #A333C8 inset !important;
  color: #A333C8 !important;
}
.ui.basic.purple.buttons .button:hover,
.ui.basic.purple.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #9627ba inset !important;
  color: #9627ba !important;
}
.ui.basic.purple.buttons .button:focus,
.ui.basic.purple.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #8f1eb4 inset !important;
  color: #9627ba !important;
}
.ui.basic.purple.buttons .active.button,
.ui.basic.purple.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #9724be inset !important;
  color: #82299f !important;
}
.ui.basic.purple.buttons .button:active,
.ui.basic.purple.button:active {
  box-shadow: 0px 0px 0px 1px #82299f inset !important;
  color: #82299f !important;
}
.ui.buttons:not(.vertical) > .basic.purple.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.purple.buttons .button,
.ui.inverted.purple.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #DC73FF inset !important;
  color: #DC73FF;
}
.ui.inverted.purple.buttons .button:hover,
.ui.inverted.purple.button:hover,
.ui.inverted.purple.buttons .button:focus,
.ui.inverted.purple.button:focus,
.ui.inverted.purple.buttons .button.active,
.ui.inverted.purple.button.active,
.ui.inverted.purple.buttons .button:active,
.ui.inverted.purple.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.purple.buttons .button:hover,
.ui.inverted.purple.button:hover {
  background-color: #d65aff;
}
.ui.inverted.purple.buttons .button:focus,
.ui.inverted.purple.button:focus {
  background-color: #d24aff;
}
.ui.inverted.purple.buttons .active.button,
.ui.inverted.purple.active.button {
  background-color: #d65aff;
}
.ui.inverted.purple.buttons .button:active,
.ui.inverted.purple.button:active {
  background-color: #cf40ff;
}
/* Inverted Basic */
.ui.inverted.purple.basic.buttons .button,
.ui.inverted.purple.buttons .basic.button,
.ui.inverted.purple.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.purple.basic.buttons .button:hover,
.ui.inverted.purple.buttons .basic.button:hover,
.ui.inverted.purple.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #d65aff inset !important;
  color: #DC73FF !important;
}
.ui.inverted.purple.basic.buttons .button:focus,
.ui.inverted.purple.basic.buttons .button:focus,
.ui.inverted.purple.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #d24aff inset !important;
  color: #DC73FF !important;
}
.ui.inverted.purple.basic.buttons .active.button,
.ui.inverted.purple.buttons .basic.active.button,
.ui.inverted.purple.basic.active.button {
  box-shadow: 0px 0px 0px 2px #d65aff inset !important;
  color: #DC73FF !important;
}
.ui.inverted.purple.basic.buttons .button:active,
.ui.inverted.purple.buttons .basic.button:active,
.ui.inverted.purple.basic.button:active {
  box-shadow: 0px 0px 0px 2px #cf40ff inset !important;
  color: #DC73FF !important;
}
/*--- Red ---*/
.ui.red.buttons .button,
.ui.red.button {
  background-color: #DB2828;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.red.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.red.buttons .button:hover,
.ui.red.button:hover {
  background-color: #d01919;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.red.buttons .button:focus,
.ui.red.button:focus {
  background-color: #ca1010;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.red.buttons .button:active,
.ui.red.button:active {
  background-color: #b21e1e;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.red.buttons .active.button,
.ui.red.buttons .active.button:active,
.ui.red.active.button,
.ui.red.button .active.button:active {
  background-color: #d41515;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.red.buttons .button,
.ui.basic.red.button {
  box-shadow: 0px 0px 0px 1px #DB2828 inset !important;
  color: #DB2828 !important;
}
.ui.basic.red.buttons .button:hover,
.ui.basic.red.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #d01919 inset !important;
  color: #d01919 !important;
}
.ui.basic.red.buttons .button:focus,
.ui.basic.red.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #ca1010 inset !important;
  color: #d01919 !important;
}
.ui.basic.red.buttons .active.button,
.ui.basic.red.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #d41515 inset !important;
  color: #b21e1e !important;
}
.ui.basic.red.buttons .button:active,
.ui.basic.red.button:active {
  box-shadow: 0px 0px 0px 1px #b21e1e inset !important;
  color: #b21e1e !important;
}
.ui.buttons:not(.vertical) > .basic.red.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.red.buttons .button,
.ui.inverted.red.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #FF695E inset !important;
  color: #FF695E;
}
.ui.inverted.red.buttons .button:hover,
.ui.inverted.red.button:hover,
.ui.inverted.red.buttons .button:focus,
.ui.inverted.red.button:focus,
.ui.inverted.red.buttons .button.active,
.ui.inverted.red.button.active,
.ui.inverted.red.buttons .button:active,
.ui.inverted.red.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.red.buttons .button:hover,
.ui.inverted.red.button:hover {
  background-color: #ff5144;
}
.ui.inverted.red.buttons .button:focus,
.ui.inverted.red.button:focus {
  background-color: #ff4335;
}
.ui.inverted.red.buttons .active.button,
.ui.inverted.red.active.button {
  background-color: #ff5144;
}
.ui.inverted.red.buttons .button:active,
.ui.inverted.red.button:active {
  background-color: #ff392b;
}
/* Inverted Basic */
.ui.inverted.red.basic.buttons .button,
.ui.inverted.red.buttons .basic.button,
.ui.inverted.red.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.red.basic.buttons .button:hover,
.ui.inverted.red.buttons .basic.button:hover,
.ui.inverted.red.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #ff5144 inset !important;
  color: #FF695E !important;
}
.ui.inverted.red.basic.buttons .button:focus,
.ui.inverted.red.basic.buttons .button:focus,
.ui.inverted.red.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #ff4335 inset !important;
  color: #FF695E !important;
}
.ui.inverted.red.basic.buttons .active.button,
.ui.inverted.red.buttons .basic.active.button,
.ui.inverted.red.basic.active.button {
  box-shadow: 0px 0px 0px 2px #ff5144 inset !important;
  color: #FF695E !important;
}
.ui.inverted.red.basic.buttons .button:active,
.ui.inverted.red.buttons .basic.button:active,
.ui.inverted.red.basic.button:active {
  box-shadow: 0px 0px 0px 2px #ff392b inset !important;
  color: #FF695E !important;
}
/*--- Teal ---*/
.ui.teal.buttons .button,
.ui.teal.button {
  background-color: #00B5AD;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.teal.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.teal.buttons .button:hover,
.ui.teal.button:hover {
  background-color: #009c95;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.teal.buttons .button:focus,
.ui.teal.button:focus {
  background-color: #008c86;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.teal.buttons .button:active,
.ui.teal.button:active {
  background-color: #00827c;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.teal.buttons .active.button,
.ui.teal.buttons .active.button:active,
.ui.teal.active.button,
.ui.teal.button .active.button:active {
  background-color: #009c95;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.teal.buttons .button,
.ui.basic.teal.button {
  box-shadow: 0px 0px 0px 1px #00B5AD inset !important;
  color: #00B5AD !important;
}
.ui.basic.teal.buttons .button:hover,
.ui.basic.teal.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #009c95 inset !important;
  color: #009c95 !important;
}
.ui.basic.teal.buttons .button:focus,
.ui.basic.teal.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #008c86 inset !important;
  color: #009c95 !important;
}
.ui.basic.teal.buttons .active.button,
.ui.basic.teal.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #009c95 inset !important;
  color: #00827c !important;
}
.ui.basic.teal.buttons .button:active,
.ui.basic.teal.button:active {
  box-shadow: 0px 0px 0px 1px #00827c inset !important;
  color: #00827c !important;
}
.ui.buttons:not(.vertical) > .basic.teal.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.teal.buttons .button,
.ui.inverted.teal.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #6DFFFF inset !important;
  color: #6DFFFF;
}
.ui.inverted.teal.buttons .button:hover,
.ui.inverted.teal.button:hover,
.ui.inverted.teal.buttons .button:focus,
.ui.inverted.teal.button:focus,
.ui.inverted.teal.buttons .button.active,
.ui.inverted.teal.button.active,
.ui.inverted.teal.buttons .button:active,
.ui.inverted.teal.button:active {
  box-shadow: none !important;
  color: rgba(0, 0, 0, 0.6);
}
.ui.inverted.teal.buttons .button:hover,
.ui.inverted.teal.button:hover {
  background-color: #54ffff;
}
.ui.inverted.teal.buttons .button:focus,
.ui.inverted.teal.button:focus {
  background-color: #44ffff;
}
.ui.inverted.teal.buttons .active.button,
.ui.inverted.teal.active.button {
  background-color: #54ffff;
}
.ui.inverted.teal.buttons .button:active,
.ui.inverted.teal.button:active {
  background-color: #3affff;
}
/* Inverted Basic */
.ui.inverted.teal.basic.buttons .button,
.ui.inverted.teal.buttons .basic.button,
.ui.inverted.teal.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.teal.basic.buttons .button:hover,
.ui.inverted.teal.buttons .basic.button:hover,
.ui.inverted.teal.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #54ffff inset !important;
  color: #6DFFFF !important;
}
.ui.inverted.teal.basic.buttons .button:focus,
.ui.inverted.teal.basic.buttons .button:focus,
.ui.inverted.teal.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #44ffff inset !important;
  color: #6DFFFF !important;
}
.ui.inverted.teal.basic.buttons .active.button,
.ui.inverted.teal.buttons .basic.active.button,
.ui.inverted.teal.basic.active.button {
  box-shadow: 0px 0px 0px 2px #54ffff inset !important;
  color: #6DFFFF !important;
}
.ui.inverted.teal.basic.buttons .button:active,
.ui.inverted.teal.buttons .basic.button:active,
.ui.inverted.teal.basic.button:active {
  box-shadow: 0px 0px 0px 2px #3affff inset !important;
  color: #6DFFFF !important;
}
/*--- Olive ---*/
.ui.olive.buttons .button,
.ui.olive.button {
  background-color: #B5CC18;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.olive.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.olive.buttons .button:hover,
.ui.olive.button:hover {
  background-color: #a7bd0d;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.olive.buttons .button:focus,
.ui.olive.button:focus {
  background-color: #a0b605;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.olive.buttons .button:active,
.ui.olive.button:active {
  background-color: #8d9e13;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.olive.buttons .active.button,
.ui.olive.buttons .active.button:active,
.ui.olive.active.button,
.ui.olive.button .active.button:active {
  background-color: #aac109;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.olive.buttons .button,
.ui.basic.olive.button {
  box-shadow: 0px 0px 0px 1px #B5CC18 inset !important;
  color: #B5CC18 !important;
}
.ui.basic.olive.buttons .button:hover,
.ui.basic.olive.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #a7bd0d inset !important;
  color: #a7bd0d !important;
}
.ui.basic.olive.buttons .button:focus,
.ui.basic.olive.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #a0b605 inset !important;
  color: #a7bd0d !important;
}
.ui.basic.olive.buttons .active.button,
.ui.basic.olive.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #aac109 inset !important;
  color: #8d9e13 !important;
}
.ui.basic.olive.buttons .button:active,
.ui.basic.olive.button:active {
  box-shadow: 0px 0px 0px 1px #8d9e13 inset !important;
  color: #8d9e13 !important;
}
.ui.buttons:not(.vertical) > .basic.olive.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.olive.buttons .button,
.ui.inverted.olive.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #D9E778 inset !important;
  color: #D9E778;
}
.ui.inverted.olive.buttons .button:hover,
.ui.inverted.olive.button:hover,
.ui.inverted.olive.buttons .button:focus,
.ui.inverted.olive.button:focus,
.ui.inverted.olive.buttons .button.active,
.ui.inverted.olive.button.active,
.ui.inverted.olive.buttons .button:active,
.ui.inverted.olive.button:active {
  box-shadow: none !important;
  color: rgba(0, 0, 0, 0.6);
}
.ui.inverted.olive.buttons .button:hover,
.ui.inverted.olive.button:hover {
  background-color: #d8ea5c;
}
.ui.inverted.olive.buttons .button:focus,
.ui.inverted.olive.button:focus {
  background-color: #daef47;
}
.ui.inverted.olive.buttons .active.button,
.ui.inverted.olive.active.button {
  background-color: #daed59;
}
.ui.inverted.olive.buttons .button:active,
.ui.inverted.olive.button:active {
  background-color: #cddf4d;
}
/* Inverted Basic */
.ui.inverted.olive.basic.buttons .button,
.ui.inverted.olive.buttons .basic.button,
.ui.inverted.olive.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.olive.basic.buttons .button:hover,
.ui.inverted.olive.buttons .basic.button:hover,
.ui.inverted.olive.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #d8ea5c inset !important;
  color: #D9E778 !important;
}
.ui.inverted.olive.basic.buttons .button:focus,
.ui.inverted.olive.basic.buttons .button:focus,
.ui.inverted.olive.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #daef47 inset !important;
  color: #D9E778 !important;
}
.ui.inverted.olive.basic.buttons .active.button,
.ui.inverted.olive.buttons .basic.active.button,
.ui.inverted.olive.basic.active.button {
  box-shadow: 0px 0px 0px 2px #daed59 inset !important;
  color: #D9E778 !important;
}
.ui.inverted.olive.basic.buttons .button:active,
.ui.inverted.olive.buttons .basic.button:active,
.ui.inverted.olive.basic.button:active {
  box-shadow: 0px 0px 0px 2px #cddf4d inset !important;
  color: #D9E778 !important;
}
/*--- Yellow ---*/
.ui.yellow.buttons .button,
.ui.yellow.button {
  background-color: #FBBD08;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.yellow.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.yellow.buttons .button:hover,
.ui.yellow.button:hover {
  background-color: #eaae00;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.yellow.buttons .button:focus,
.ui.yellow.button:focus {
  background-color: #daa300;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.yellow.buttons .button:active,
.ui.yellow.button:active {
  background-color: #cd9903;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.yellow.buttons .active.button,
.ui.yellow.buttons .active.button:active,
.ui.yellow.active.button,
.ui.yellow.button .active.button:active {
  background-color: #eaae00;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.yellow.buttons .button,
.ui.basic.yellow.button {
  box-shadow: 0px 0px 0px 1px #FBBD08 inset !important;
  color: #FBBD08 !important;
}
.ui.basic.yellow.buttons .button:hover,
.ui.basic.yellow.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #eaae00 inset !important;
  color: #eaae00 !important;
}
.ui.basic.yellow.buttons .button:focus,
.ui.basic.yellow.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #daa300 inset !important;
  color: #eaae00 !important;
}
.ui.basic.yellow.buttons .active.button,
.ui.basic.yellow.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #eaae00 inset !important;
  color: #cd9903 !important;
}
.ui.basic.yellow.buttons .button:active,
.ui.basic.yellow.button:active {
  box-shadow: 0px 0px 0px 1px #cd9903 inset !important;
  color: #cd9903 !important;
}
.ui.buttons:not(.vertical) > .basic.yellow.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.yellow.buttons .button,
.ui.inverted.yellow.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #FFE21F inset !important;
  color: #FFE21F;
}
.ui.inverted.yellow.buttons .button:hover,
.ui.inverted.yellow.button:hover,
.ui.inverted.yellow.buttons .button:focus,
.ui.inverted.yellow.button:focus,
.ui.inverted.yellow.buttons .button.active,
.ui.inverted.yellow.button.active,
.ui.inverted.yellow.buttons .button:active,
.ui.inverted.yellow.button:active {
  box-shadow: none !important;
  color: rgba(0, 0, 0, 0.6);
}
.ui.inverted.yellow.buttons .button:hover,
.ui.inverted.yellow.button:hover {
  background-color: #ffdf05;
}
.ui.inverted.yellow.buttons .button:focus,
.ui.inverted.yellow.button:focus {
  background-color: #f5d500;
}
.ui.inverted.yellow.buttons .active.button,
.ui.inverted.yellow.active.button {
  background-color: #ffdf05;
}
.ui.inverted.yellow.buttons .button:active,
.ui.inverted.yellow.button:active {
  background-color: #ebcd00;
}
/* Inverted Basic */
.ui.inverted.yellow.basic.buttons .button,
.ui.inverted.yellow.buttons .basic.button,
.ui.inverted.yellow.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.yellow.basic.buttons .button:hover,
.ui.inverted.yellow.buttons .basic.button:hover,
.ui.inverted.yellow.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #ffdf05 inset !important;
  color: #FFE21F !important;
}
.ui.inverted.yellow.basic.buttons .button:focus,
.ui.inverted.yellow.basic.buttons .button:focus,
.ui.inverted.yellow.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #f5d500 inset !important;
  color: #FFE21F !important;
}
.ui.inverted.yellow.basic.buttons .active.button,
.ui.inverted.yellow.buttons .basic.active.button,
.ui.inverted.yellow.basic.active.button {
  box-shadow: 0px 0px 0px 2px #ffdf05 inset !important;
  color: #FFE21F !important;
}
.ui.inverted.yellow.basic.buttons .button:active,
.ui.inverted.yellow.buttons .basic.button:active,
.ui.inverted.yellow.basic.button:active {
  box-shadow: 0px 0px 0px 2px #ebcd00 inset !important;
  color: #FFE21F !important;
}
/*-------------------
       Primary
--------------------*/
/*--- Standard ---*/
.ui.primary.buttons .button,
.ui.primary.button {
  background-color: #2185D0;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.primary.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.primary.buttons .button:hover,
.ui.primary.button:hover {
  background-color: #1678c2;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.primary.buttons .button:focus,
.ui.primary.button:focus {
  background-color: #0d71bb;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.primary.buttons .button:active,
.ui.primary.button:active {
  background-color: #1a69a4;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.primary.buttons .active.button,
.ui.primary.buttons .active.button:active,
.ui.primary.active.button,
.ui.primary.button .active.button:active {
  background-color: #1279c6;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.primary.buttons .button,
.ui.basic.primary.button {
  box-shadow: 0px 0px 0px 1px #2185D0 inset !important;
  color: #2185D0 !important;
}
.ui.basic.primary.buttons .button:hover,
.ui.basic.primary.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #1678c2 inset !important;
  color: #1678c2 !important;
}
.ui.basic.primary.buttons .button:focus,
.ui.basic.primary.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #0d71bb inset !important;
  color: #1678c2 !important;
}
.ui.basic.primary.buttons .active.button,
.ui.basic.primary.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #1279c6 inset !important;
  color: #1a69a4 !important;
}
.ui.basic.primary.buttons .button:active,
.ui.basic.primary.button:active {
  box-shadow: 0px 0px 0px 1px #1a69a4 inset !important;
  color: #1a69a4 !important;
}
.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.primary.buttons .button,
.ui.inverted.primary.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #54C8FF inset !important;
  color: #54C8FF;
}
.ui.inverted.primary.buttons .button:hover,
.ui.inverted.primary.button:hover,
.ui.inverted.primary.buttons .button:focus,
.ui.inverted.primary.button:focus,
.ui.inverted.primary.buttons .button.active,
.ui.inverted.primary.button.active,
.ui.inverted.primary.buttons .button:active,
.ui.inverted.primary.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.primary.buttons .button:hover,
.ui.inverted.primary.button:hover {
  background-color: #3ac0ff;
}
.ui.inverted.primary.buttons .button:focus,
.ui.inverted.primary.button:focus {
  background-color: #2bbbff;
}
.ui.inverted.primary.buttons .active.button,
.ui.inverted.primary.active.button {
  background-color: #3ac0ff;
}
.ui.inverted.primary.buttons .button:active,
.ui.inverted.primary.button:active {
  background-color: #21b8ff;
}
/* Inverted Basic */
.ui.inverted.primary.basic.buttons .button,
.ui.inverted.primary.buttons .basic.button,
.ui.inverted.primary.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.primary.basic.buttons .button:hover,
.ui.inverted.primary.buttons .basic.button:hover,
.ui.inverted.primary.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #3ac0ff inset !important;
  color: #54C8FF !important;
}
.ui.inverted.primary.basic.buttons .button:focus,
.ui.inverted.primary.basic.buttons .button:focus,
.ui.inverted.primary.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #2bbbff inset !important;
  color: #54C8FF !important;
}
.ui.inverted.primary.basic.buttons .active.button,
.ui.inverted.primary.buttons .basic.active.button,
.ui.inverted.primary.basic.active.button {
  box-shadow: 0px 0px 0px 2px #3ac0ff inset !important;
  color: #54C8FF !important;
}
.ui.inverted.primary.basic.buttons .button:active,
.ui.inverted.primary.buttons .basic.button:active,
.ui.inverted.primary.basic.button:active {
  box-shadow: 0px 0px 0px 2px #21b8ff inset !important;
  color: #54C8FF !important;
}
/*-------------------
      Secondary
--------------------*/
/* Standard */
.ui.secondary.buttons .button,
.ui.secondary.button {
  background-color: #1B1C1D;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.secondary.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.secondary.buttons .button:hover,
.ui.secondary.button:hover {
  background-color: #27292a;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.secondary.buttons .button:focus,
.ui.secondary.button:focus {
  background-color: #2e3032;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.secondary.buttons .button:active,
.ui.secondary.button:active {
  background-color: #343637;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.secondary.buttons .active.button,
.ui.secondary.buttons .active.button:active,
.ui.secondary.active.button,
.ui.secondary.button .active.button:active {
  background-color: #27292a;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.secondary.buttons .button,
.ui.basic.secondary.button {
  box-shadow: 0px 0px 0px 1px #1B1C1D inset !important;
  color: #1B1C1D !important;
}
.ui.basic.secondary.buttons .button:hover,
.ui.basic.secondary.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #27292a inset !important;
  color: #27292a !important;
}
.ui.basic.secondary.buttons .button:focus,
.ui.basic.secondary.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #2e3032 inset !important;
  color: #27292a !important;
}
.ui.basic.secondary.buttons .active.button,
.ui.basic.secondary.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #27292a inset !important;
  color: #343637 !important;
}
.ui.basic.secondary.buttons .button:active,
.ui.basic.secondary.button:active {
  box-shadow: 0px 0px 0px 1px #343637 inset !important;
  color: #343637 !important;
}
.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) {
  margin-left: -1px;
}
/* Inverted */
.ui.inverted.secondary.buttons .button,
.ui.inverted.secondary.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px #545454 inset !important;
  color: #545454;
}
.ui.inverted.secondary.buttons .button:hover,
.ui.inverted.secondary.button:hover,
.ui.inverted.secondary.buttons .button:focus,
.ui.inverted.secondary.button:focus,
.ui.inverted.secondary.buttons .button.active,
.ui.inverted.secondary.button.active,
.ui.inverted.secondary.buttons .button:active,
.ui.inverted.secondary.button:active {
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.inverted.secondary.buttons .button:hover,
.ui.inverted.secondary.button:hover {
  background-color: #616161;
}
.ui.inverted.secondary.buttons .button:focus,
.ui.inverted.secondary.button:focus {
  background-color: #686868;
}
.ui.inverted.secondary.buttons .active.button,
.ui.inverted.secondary.active.button {
  background-color: #616161;
}
.ui.inverted.secondary.buttons .button:active,
.ui.inverted.secondary.button:active {
  background-color: #6e6e6e;
}
/* Inverted Basic */
.ui.inverted.secondary.basic.buttons .button,
.ui.inverted.secondary.buttons .basic.button,
.ui.inverted.secondary.basic.button {
  background-color: transparent;
  box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
  color: #FFFFFF !important;
}
.ui.inverted.secondary.basic.buttons .button:hover,
.ui.inverted.secondary.buttons .basic.button:hover,
.ui.inverted.secondary.basic.button:hover {
  box-shadow: 0px 0px 0px 2px #616161 inset !important;
  color: #545454 !important;
}
.ui.inverted.secondary.basic.buttons .button:focus,
.ui.inverted.secondary.basic.buttons .button:focus,
.ui.inverted.secondary.basic.button:focus {
  box-shadow: 0px 0px 0px 2px #686868 inset !important;
  color: #545454 !important;
}
.ui.inverted.secondary.basic.buttons .active.button,
.ui.inverted.secondary.buttons .basic.active.button,
.ui.inverted.secondary.basic.active.button {
  box-shadow: 0px 0px 0px 2px #616161 inset !important;
  color: #545454 !important;
}
.ui.inverted.secondary.basic.buttons .button:active,
.ui.inverted.secondary.buttons .basic.button:active,
.ui.inverted.secondary.basic.button:active {
  box-shadow: 0px 0px 0px 2px #6e6e6e inset !important;
  color: #545454 !important;
}
/*---------------
    Positive
----------------*/
/* Standard */
.ui.positive.buttons .button,
.ui.positive.button {
  background-color: #21BA45;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.positive.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.positive.buttons .button:hover,
.ui.positive.button:hover {
  background-color: #16ab39;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.positive.buttons .button:focus,
.ui.positive.button:focus {
  background-color: #0ea432;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.positive.buttons .button:active,
.ui.positive.button:active {
  background-color: #198f35;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.positive.buttons .active.button,
.ui.positive.buttons .active.button:active,
.ui.positive.active.button,
.ui.positive.button .active.button:active {
  background-color: #13ae38;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.positive.buttons .button,
.ui.basic.positive.button {
  box-shadow: 0px 0px 0px 1px #21BA45 inset !important;
  color: #21BA45 !important;
}
.ui.basic.positive.buttons .button:hover,
.ui.basic.positive.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #16ab39 inset !important;
  color: #16ab39 !important;
}
.ui.basic.positive.buttons .button:focus,
.ui.basic.positive.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #0ea432 inset !important;
  color: #16ab39 !important;
}
.ui.basic.positive.buttons .active.button,
.ui.basic.positive.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #13ae38 inset !important;
  color: #198f35 !important;
}
.ui.basic.positive.buttons .button:active,
.ui.basic.positive.button:active {
  box-shadow: 0px 0px 0px 1px #198f35 inset !important;
  color: #198f35 !important;
}
.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) {
  margin-left: -1px;
}
/*---------------
     Negative
----------------*/
/* Standard */
.ui.negative.buttons .button,
.ui.negative.button {
  background-color: #DB2828;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
}
.ui.negative.button {
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.negative.buttons .button:hover,
.ui.negative.button:hover {
  background-color: #d01919;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.negative.buttons .button:focus,
.ui.negative.button:focus {
  background-color: #ca1010;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.negative.buttons .button:active,
.ui.negative.button:active {
  background-color: #b21e1e;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.negative.buttons .active.button,
.ui.negative.buttons .active.button:active,
.ui.negative.active.button,
.ui.negative.button .active.button:active {
  background-color: #d41515;
  color: #FFFFFF;
  text-shadow: none;
}
/* Basic */
.ui.basic.negative.buttons .button,
.ui.basic.negative.button {
  box-shadow: 0px 0px 0px 1px #DB2828 inset !important;
  color: #DB2828 !important;
}
.ui.basic.negative.buttons .button:hover,
.ui.basic.negative.button:hover {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #d01919 inset !important;
  color: #d01919 !important;
}
.ui.basic.negative.buttons .button:focus,
.ui.basic.negative.button:focus {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #ca1010 inset !important;
  color: #d01919 !important;
}
.ui.basic.negative.buttons .active.button,
.ui.basic.negative.active.button {
  background: transparent !important;
  box-shadow: 0px 0px 0px 1px #d41515 inset !important;
  color: #b21e1e !important;
}
.ui.basic.negative.buttons .button:active,
.ui.basic.negative.button:active {
  box-shadow: 0px 0px 0px 1px #b21e1e inset !important;
  color: #b21e1e !important;
}
.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) {
  margin-left: -1px;
}
/*******************************
            Groups
*******************************/
.ui.buttons {
  display: inline-flex;
  flex-direction: row;
  font-size: 0em;
  vertical-align: baseline;
  margin: 0em 0.25em 0em 0em;
}
.ui.buttons:not(.basic):not(.inverted) {
  box-shadow: none;
}
/* Clearfix */
.ui.buttons:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}
/* Standard Group */
.ui.buttons .button {
  flex: 1 0 auto;
  margin: 0em;
  border-radius: 0em;
  margin: 0px 0px 0px 0px;
}
.ui.buttons > .ui.button:not(.basic):not(.inverted),
.ui.buttons:not(.basic):not(.inverted) > .button {
  box-shadow: 0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.buttons .button:first-child {
  border-left: none;
  margin-left: 0em;
  border-top-left-radius: 0.28571429rem;
  border-bottom-left-radius: 0.28571429rem;
}
.ui.buttons .button:last-child {
  border-top-right-radius: 0.28571429rem;
  border-bottom-right-radius: 0.28571429rem;
}
/* Vertical  Style */
.ui.vertical.buttons {
  display: inline-flex;
  flex-direction: column;
}
.ui.vertical.buttons .button {
  display: block;
  float: none;
  width: 100%;
  margin: 0px 0px 0px 0px;
  box-shadow: none;
  border-radius: 0em;
}
.ui.vertical.buttons .button:first-child {
  border-top-left-radius: 0.28571429rem;
  border-top-right-radius: 0.28571429rem;
}
.ui.vertical.buttons .button:last-child {
  margin-bottom: 0px;
  border-bottom-left-radius: 0.28571429rem;
  border-bottom-right-radius: 0.28571429rem;
}
.ui.vertical.buttons .button:only-child {
  border-radius: 0.28571429rem;
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
/*--- Sign up color ---*/
.ui.signup.button {
  background-color: #21BA45;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.signup.button:hover {
  background-color: #16ab39;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.signup.button:focus {
  background-color: #0ea432;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.signup.button:active {
  background-color: #198f35;
  color: #FFFFFF;
  text-shadow: none;
}
/*--- Search icon button color ---*/
.ui.search.button {
  background-color: #fb8273;
  color: #FFFFFF;
  text-shadow: none;
  background-image: none;
  box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
}
.ui.search.button:hover {
  background-color: #ff6856;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.search.button:focus {
  background-color: #ff5b46;
  color: #FFFFFF;
  text-shadow: none;
}
.ui.search.button:active {
  background-color: #fa5641;
  color: #FFFFFF;
  text-shadow: none;
}
/** Citation landing page */
.copy.button {
  margin-right: 0px;
}
/*!
 * # Semantic UI - Container
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Container
*******************************/
/*-------------------
       Element
--------------------*/
/* Minimum Gutter is used to determine  the maximum container width for a given device */
/* Devices */
/* Coupling (Add Negative Margin to container size) */
/*-------------------
       Types
--------------------*/
/* Text */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Container
*******************************/
/* All Sizes */
.ui.container {
  display: block;
  max-width: 100% !important;
}
/* Mobile */
@media only screen and (max-width: 767px) {
  .ui.container {
    width: auto !important;
    margin-left: 1em !important;
    margin-right: 1em !important;
  }
  .ui.grid.container {
    width: auto !important;
  }
  .ui.relaxed.grid.container {
    width: auto !important;
  }
  .ui.very.relaxed.grid.container {
    width: auto !important;
  }
}
/* Tablet */
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ui.container {
    width: 723px;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .ui.grid.container {
    width: calc( 723px  +  2rem ) !important;
  }
  .ui.relaxed.grid.container {
    width: calc( 723px  +  3rem ) !important;
  }
  .ui.very.relaxed.grid.container {
    width: calc( 723px  +  5rem ) !important;
  }
}
/* Small Monitor */
@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .ui.container {
    width: 933px;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .ui.grid.container {
    width: calc( 933px  +  2rem ) !important;
  }
  .ui.relaxed.grid.container {
    width: calc( 933px  +  3rem ) !important;
  }
  .ui.very.relaxed.grid.container {
    width: calc( 933px  +  5rem ) !important;
  }
}
/* Large Monitor */
@media only screen and (min-width: 1200px) {
  .ui.container {
    width: 1127px;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .ui.grid.container {
    width: calc( 1127px  +  2rem ) !important;
  }
  .ui.relaxed.grid.container {
    width: calc( 1127px  +  3rem ) !important;
  }
  .ui.very.relaxed.grid.container {
    width: calc( 1127px  +  5rem ) !important;
  }
}
/*******************************
             Types
*******************************/
/* Text Container */
.ui.text.container {
  font-family: 'Lato', sans-serif;
  max-width: 700px !important;
  line-height: 1.5;
}
.ui.text.container {
  font-size: 1.14285714rem;
}
/* Fluid */
.ui.fluid.container {
  width: 100%;
}
/*******************************
           Variations
*******************************/
.ui[class*="left aligned"].container {
  text-align: left;
}
.ui[class*="center aligned"].container {
  text-align: center;
}
.ui[class*="right aligned"].container {
  text-align: right;
}
.ui.justified.container {
  text-align: justify;
  hyphens: auto;
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
.ui.container.cover-page {
  background-color: #2185D0;
  height: 20em;
  display: flex;
  align-items: center;
}
.ui.container.cover-page > .ui.container {
  vertical-align: middle;
}
.ui.container.cover-page .ui.header {
  color: rgba(255, 255, 255, 0.9);
}
.ui.breadcrumbs.container {
  padding-top: 14px;
  padding-bottom: 14px;
  margin-top: -15px;
}
/*!
 * # Semantic UI - Divider
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Divider
*******************************/
/*-------------------
       Element
--------------------*/
/* Text */
/*-------------------
       Coupling
--------------------*/
/* Icon */
/*******************************
         Variations
*******************************/
/* Horizontal / Vertical */
/* Inverted */
/* Section */
/* Sizes */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Divider
*******************************/
.ui.divider {
  margin: 1rem 0rem;
  line-height: 1;
  height: 0em;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(0, 0, 0, 0.85);
  user-select: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/*--------------
      Basic
---------------*/
.ui.divider:not(.vertical):not(.horizontal) {
  border-top: 1px solid rgba(34, 36, 38, 0.15);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
/*--------------
    Coupling
---------------*/
/* Allow divider between each column row */
.ui.grid > .column + .divider,
.ui.grid > .row > .column + .divider {
  left: auto;
}
/*--------------
   Horizontal
---------------*/
.ui.horizontal.divider {
  display: table;
  white-space: nowrap;
  height: auto;
  margin: '';
  line-height: 1;
  text-align: center;
}
.ui.horizontal.divider:before,
.ui.horizontal.divider:after {
  content: '';
  display: table-cell;
  position: relative;
  top: 50%;
  width: 50%;
  background-repeat: no-repeat;
}
.ui.horizontal.divider:before {
  background-position: right 1em top 50%;
}
.ui.horizontal.divider:after {
  background-position: left 1em top 50%;
}
/*--------------
    Vertical
---------------*/
.ui.vertical.divider {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  margin: 0rem;
  padding: 0em;
  width: auto;
  height: 50%;
  line-height: 0em;
  text-align: center;
  transform: translateX(-50%);
}
.ui.vertical.divider:before,
.ui.vertical.divider:after {
  position: absolute;
  left: 50%;
  content: '';
  z-index: 3;
  border-left: 1px solid rgba(34, 36, 38, 0.15);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
  width: 0%;
  height: calc(100% -  1rem );
}
.ui.vertical.divider:before {
  top: -100%;
}
.ui.vertical.divider:after {
  top: auto;
  bottom: 0px;
}
/* Inside grid */
@media only screen and (max-width: 767px) {
  .ui.stackable.grid .ui.vertical.divider,
  .ui.grid .stackable.row .ui.vertical.divider {
    display: table;
    white-space: nowrap;
    height: auto;
    margin: '';
    overflow: hidden;
    line-height: 1;
    text-align: center;
    position: static;
    top: 0;
    left: 0;
    transform: none;
  }
  .ui.stackable.grid .ui.vertical.divider:before,
  .ui.grid .stackable.row .ui.vertical.divider:before,
  .ui.stackable.grid .ui.vertical.divider:after,
  .ui.grid .stackable.row .ui.vertical.divider:after {
    position: static;
    left: 0;
    border-left: none;
    border-right: none;
    content: '';
    display: table-cell;
    position: relative;
    top: 50%;
    width: 50%;
    background-repeat: no-repeat;
  }
  .ui.stackable.grid .ui.vertical.divider:before,
  .ui.grid .stackable.row .ui.vertical.divider:before {
    background-position: right 1em top 50%;
  }
  .ui.stackable.grid .ui.vertical.divider:after,
  .ui.grid .stackable.row .ui.vertical.divider:after {
    background-position: left 1em top 50%;
  }
}
/*--------------
      Icon
---------------*/
.ui.divider > .icon {
  margin: 0rem;
  font-size: 1rem;
  height: 1em;
  vertical-align: middle;
}
/*******************************
          Variations
*******************************/
/*--------------
    Hidden
---------------*/
.ui.hidden.divider {
  border-color: transparent !important;
}
.ui.hidden.divider:before,
.ui.hidden.divider:after {
  display: none;
}
/*--------------
    Inverted
---------------*/
.ui.divider.inverted,
.ui.vertical.inverted.divider,
.ui.horizontal.inverted.divider {
  color: #FFFFFF;
}
.ui.divider.inverted,
.ui.divider.inverted:after,
.ui.divider.inverted:before {
  border-top-color: rgba(34, 36, 38, 0.15) !important;
  border-left-color: rgba(34, 36, 38, 0.15) !important;
  border-bottom-color: rgba(255, 255, 255, 0.15) !important;
  border-right-color: rgba(255, 255, 255, 0.15) !important;
}
/*--------------
    Fitted
---------------*/
.ui.fitted.divider {
  margin: 0em;
}
/*--------------
    Clearing
---------------*/
.ui.clearing.divider {
  clear: both;
}
/*--------------
    Section
---------------*/
.ui.section.divider {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
/*--------------
     Sizes
---------------*/
.ui.divider {
  font-size: 1rem;
}
/*!
 * # Semantic UI - Flag
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Flag
*******************************/
/*-------------------
       Element
--------------------*/
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Flag
*******************************/
i.flag:not(.icon) {
  display: inline-block;
  width: 16px;
  height: 11px;
  line-height: 11px;
  vertical-align: baseline;
  margin: 0em 0.5em 0em 0em;
  text-decoration: inherit;
  speak: none;
  font-smoothing: antialiased;
  backface-visibility: hidden;
}
/* Sprite */
i.flag:not(.icon):before {
  display: inline-block;
  content: '';
  background: url(/static/dist/img/flags.99f63ae.png) no-repeat -108px -1976px;
  width: 16px;
  height: 11px;
}
/*!
 * # Semantic UI - Header
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Header
*******************************/
/*-------------------
       Element
--------------------*/
/* Sub Heading */
/* Sub Header */
/* Icon */
/* Image */
/* Label */
/* Content */
/* Paragraph after Header */
/*-------------------
      Variations
--------------------*/
/* Sizing */
/* Sub Header */
/* Icon Header */
/* No Line Height Offset */
/* Divided */
/* Block */
/* Attached */
/* Inverted */
/* Floated */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Header
*******************************/
/* Standard */
.ui.header {
  border: none;
  margin: calc(2rem -  0.14285714em ) 0em 1rem;
  padding: 0em 0em;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  line-height: 1.28571429em;
  text-transform: none;
  color: rgba(0, 0, 0, 0.87);
}
.ui.header:first-child {
  margin-top: -0.14285714em;
}
.ui.header:last-child {
  margin-bottom: 0em;
}
/*--------------
   Sub Header
---------------*/
.ui.header .sub.header {
  display: block;
  font-weight: normal;
  padding: 0em;
  margin: 0em;
  font-size: 1rem;
  line-height: 1.2em;
  color: rgba(0, 0, 0, 0.6);
}
/*--------------
      Icon
---------------*/
.ui.header > .icon {
  display: table-cell;
  opacity: 1;
  font-size: 1.5em;
  padding-top: 0em;
  vertical-align: middle;
}
/* With Text Node */
.ui.header .icon:only-child {
  display: inline-block;
  padding: 0em;
  margin-right: 0.75rem;
}
/*-------------------
        Image
--------------------*/
.ui.header > .image:not(.icon),
.ui.header > img {
  display: inline-block;
  margin-top: 0.14285714em;
  width: 2.5em;
  height: auto;
  vertical-align: middle;
}
.ui.header > .image:not(.icon):only-child,
.ui.header > img:only-child {
  margin-right: 0.75rem;
}
/*--------------
     Content
---------------*/
.ui.header .content {
  display: inline-block;
  vertical-align: top;
}
/* After Image */
.ui.header > img + .content,
.ui.header > .image + .content {
  padding-left: 0.75rem;
  vertical-align: middle;
}
/* After Icon */
.ui.header > .icon + .content {
  padding-left: 0.75rem;
  display: table-cell;
  vertical-align: middle;
}
/*--------------
 Loose Coupling
---------------*/
.ui.header .ui.label {
  font-size: '';
  margin-left: 0.5rem;
  vertical-align: middle;
}
/* Positioning */
.ui.header + p {
  margin-top: 0em;
}
/*******************************
            Types
*******************************/
/*--------------
     Page
---------------*/
h1.ui.header {
  font-size: 2rem;
}
h2.ui.header {
  font-size: 1.71428571rem;
}
h3.ui.header {
  font-size: 1.28571429rem;
}
h4.ui.header {
  font-size: 1.07142857rem;
}
h5.ui.header {
  font-size: 1rem;
}
/* Sub Header */
h1.ui.header .sub.header {
  font-size: 1.14285714rem;
}
h2.ui.header .sub.header {
  font-size: 1.14285714rem;
}
h3.ui.header .sub.header {
  font-size: 1rem;
}
h4.ui.header .sub.header {
  font-size: 1rem;
}
h5.ui.header .sub.header {
  font-size: 0.92857143rem;
}
/*--------------
 Content Heading
---------------*/
.ui.huge.header {
  min-height: 1em;
  font-size: 2em;
}
.ui.large.header {
  font-size: 1.71428571em;
}
.ui.medium.header {
  font-size: 1.28571429em;
}
.ui.small.header {
  font-size: 1.07142857em;
}
.ui.tiny.header {
  font-size: 1em;
}
/* Sub Header */
.ui.huge.header .sub.header {
  font-size: 1.14285714rem;
}
.ui.large.header .sub.header {
  font-size: 1.14285714rem;
}
.ui.header .sub.header {
  font-size: 1rem;
}
.ui.small.header .sub.header {
  font-size: 1rem;
}
.ui.tiny.header .sub.header {
  font-size: 0.92857143rem;
}
/*--------------
   Sub Heading
---------------*/
.ui.sub.header {
  padding: 0em;
  margin-bottom: 0.14285714rem;
  font-weight: bold;
  font-size: 0.85714286em;
  text-transform: uppercase;
  color: '';
}
.ui.small.sub.header {
  font-size: 0.78571429em;
}
.ui.sub.header {
  font-size: 0.85714286em;
}
.ui.large.sub.header {
  font-size: 0.92857143em;
}
.ui.huge.sub.header {
  font-size: 1em;
}
/*-------------------
        Icon
--------------------*/
.ui.icon.header {
  display: inline-block;
  text-align: center;
  margin: 2rem 0em 1rem;
}
.ui.icon.header:after {
  content: '';
  display: block;
  height: 0px;
  clear: both;
  visibility: hidden;
}
.ui.icon.header:first-child {
  margin-top: 0em;
}
.ui.icon.header .icon {
  float: none;
  display: block;
  width: auto;
  height: auto;
  line-height: 1;
  padding: 0em;
  font-size: 3em;
  margin: 0em auto 0.5rem;
  opacity: 1;
}
.ui.icon.header .content {
  display: block;
  padding: 0em;
}
.ui.icon.header .circular.icon {
  font-size: 2em;
}
.ui.icon.header .square.icon {
  font-size: 2em;
}
.ui.block.icon.header .icon {
  margin-bottom: 0em;
}
.ui.icon.header.aligned {
  margin-left: auto;
  margin-right: auto;
  display: block;
}
/*******************************
            States
*******************************/
.ui.disabled.header {
  opacity: 0.45;
}
/*******************************
           Variations
*******************************/
/*-------------------
      Inverted
--------------------*/
.ui.inverted.header {
  color: #FFFFFF;
}
.ui.inverted.header .sub.header {
  color: rgba(255, 255, 255, 0.8);
}
.ui.inverted.attached.header {
  background: #545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  box-shadow: none;
  border-color: transparent;
}
.ui.inverted.block.header {
  background: #545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  box-shadow: none;
}
.ui.inverted.block.header {
  border-bottom: none;
}
/*-------------------
       Colors
--------------------*/
/*--- Red ---*/
.ui.red.header {
  color: #DB2828 !important;
}
a.ui.red.header:hover {
  color: #d01919 !important;
}
.ui.red.dividing.header {
  border-bottom: 2px solid #DB2828;
}
/* Inverted */
.ui.inverted.red.header {
  color: #FF695E !important;
}
a.ui.inverted.red.header:hover {
  color: #ff5144 !important;
}
/*--- Orange ---*/
.ui.orange.header {
  color: #F2711C !important;
}
a.ui.orange.header:hover {
  color: #f26202 !important;
}
.ui.orange.dividing.header {
  border-bottom: 2px solid #F2711C;
}
/* Inverted */
.ui.inverted.orange.header {
  color: #FF851B !important;
}
a.ui.inverted.orange.header:hover {
  color: #ff7701 !important;
}
/*--- Olive ---*/
.ui.olive.header {
  color: #B5CC18 !important;
}
a.ui.olive.header:hover {
  color: #a7bd0d !important;
}
.ui.olive.dividing.header {
  border-bottom: 2px solid #B5CC18;
}
/* Inverted */
.ui.inverted.olive.header {
  color: #D9E778 !important;
}
a.ui.inverted.olive.header:hover {
  color: #d8ea5c !important;
}
/*--- Yellow ---*/
.ui.yellow.header {
  color: #FBBD08 !important;
}
a.ui.yellow.header:hover {
  color: #eaae00 !important;
}
.ui.yellow.dividing.header {
  border-bottom: 2px solid #FBBD08;
}
/* Inverted */
.ui.inverted.yellow.header {
  color: #FFE21F !important;
}
a.ui.inverted.yellow.header:hover {
  color: #ffdf05 !important;
}
/*--- Green ---*/
.ui.green.header {
  color: #21BA45 !important;
}
a.ui.green.header:hover {
  color: #16ab39 !important;
}
.ui.green.dividing.header {
  border-bottom: 2px solid #21BA45;
}
/* Inverted */
.ui.inverted.green.header {
  color: #2ECC40 !important;
}
a.ui.inverted.green.header:hover {
  color: #22be34 !important;
}
/*--- Teal ---*/
.ui.teal.header {
  color: #00B5AD !important;
}
a.ui.teal.header:hover {
  color: #009c95 !important;
}
.ui.teal.dividing.header {
  border-bottom: 2px solid #00B5AD;
}
/* Inverted */
.ui.inverted.teal.header {
  color: #6DFFFF !important;
}
a.ui.inverted.teal.header:hover {
  color: #54ffff !important;
}
/*--- Blue ---*/
.ui.blue.header {
  color: #2185D0 !important;
}
a.ui.blue.header:hover {
  color: #1678c2 !important;
}
.ui.blue.dividing.header {
  border-bottom: 2px solid #2185D0;
}
/* Inverted */
.ui.inverted.blue.header {
  color: #54C8FF !important;
}
a.ui.inverted.blue.header:hover {
  color: #3ac0ff !important;
}
/*--- Violet ---*/
.ui.violet.header {
  color: #6435C9 !important;
}
a.ui.violet.header:hover {
  color: #5829bb !important;
}
.ui.violet.dividing.header {
  border-bottom: 2px solid #6435C9;
}
/* Inverted */
.ui.inverted.violet.header {
  color: #A291FB !important;
}
a.ui.inverted.violet.header:hover {
  color: #8a73ff !important;
}
/*--- Purple ---*/
.ui.purple.header {
  color: #A333C8 !important;
}
a.ui.purple.header:hover {
  color: #9627ba !important;
}
.ui.purple.dividing.header {
  border-bottom: 2px solid #A333C8;
}
/* Inverted */
.ui.inverted.purple.header {
  color: #DC73FF !important;
}
a.ui.inverted.purple.header:hover {
  color: #d65aff !important;
}
/*--- Pink ---*/
.ui.pink.header {
  color: #E03997 !important;
}
a.ui.pink.header:hover {
  color: #e61a8d !important;
}
.ui.pink.dividing.header {
  border-bottom: 2px solid #E03997;
}
/* Inverted */
.ui.inverted.pink.header {
  color: #FF8EDF !important;
}
a.ui.inverted.pink.header:hover {
  color: #ff74d8 !important;
}
/*--- Brown ---*/
.ui.brown.header {
  color: #A5673F !important;
}
a.ui.brown.header:hover {
  color: #975b33 !important;
}
.ui.brown.dividing.header {
  border-bottom: 2px solid #A5673F;
}
/* Inverted */
.ui.inverted.brown.header {
  color: #D67C1C !important;
}
a.ui.inverted.brown.header:hover {
  color: #c86f11 !important;
}
/*--- Grey ---*/
.ui.grey.header {
  color: #767676 !important;
}
a.ui.grey.header:hover {
  color: #838383 !important;
}
.ui.grey.dividing.header {
  border-bottom: 2px solid #767676;
}
/* Inverted */
.ui.inverted.grey.header {
  color: #DCDDDE !important;
}
a.ui.inverted.grey.header:hover {
  color: #cfd0d2 !important;
}
/*-------------------
       Aligned
--------------------*/
.ui.left.aligned.header {
  text-align: left;
}
.ui.right.aligned.header {
  text-align: right;
}
.ui.centered.header,
.ui.center.aligned.header {
  text-align: center;
}
.ui.justified.header {
  text-align: justify;
}
.ui.justified.header:after {
  display: inline-block;
  content: '';
  width: 100%;
}
/*-------------------
       Floated
--------------------*/
.ui.floated.header,
.ui[class*="left floated"].header {
  float: left;
  margin-top: 0em;
  margin-right: 0.5em;
}
.ui[class*="right floated"].header {
  float: right;
  margin-top: 0em;
  margin-left: 0.5em;
}
/*-------------------
       Fitted
--------------------*/
.ui.fitted.header {
  padding: 0em;
}
/*-------------------
      Dividing
--------------------*/
.ui.dividing.header {
  padding-bottom: 0.21428571rem;
  border-bottom: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.dividing.header .sub.header {
  padding-bottom: 0.21428571rem;
}
.ui.dividing.header .icon {
  margin-bottom: 0em;
}
.ui.inverted.dividing.header {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}
/*-------------------
        Block
--------------------*/
.ui.block.header {
  background: #F3F4F5;
  padding: 0.78571429rem 1rem;
  box-shadow: none;
  border: 1px solid #D4D4D5;
  border-radius: 0.28571429rem;
}
.ui.tiny.block.header {
  font-size: 0.85714286rem;
}
.ui.small.block.header {
  font-size: 0.92857143rem;
}
.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
  font-size: 1rem;
}
.ui.large.block.header {
  font-size: 1.14285714rem;
}
.ui.huge.block.header {
  font-size: 1.42857143rem;
}
/*-------------------
       Attached
--------------------*/
.ui.attached.header {
  background: #FFFFFF;
  padding: 0.78571429rem 1rem;
  margin-left: -1px;
  margin-right: -1px;
  box-shadow: none;
  border: 1px solid #D4D4D5;
}
.ui.attached.block.header {
  background: #F3F4F5;
}
.ui.attached:not(.top):not(.bottom).header {
  margin-top: 0em;
  margin-bottom: 0em;
  border-top: none;
  border-radius: 0em;
}
.ui.top.attached.header {
  margin-bottom: 0em;
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.bottom.attached.header {
  margin-top: 0em;
  border-top: none;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
/* Attached Sizes */
.ui.tiny.attached.header {
  font-size: 0.85714286em;
}
.ui.small.attached.header {
  font-size: 0.92857143em;
}
.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
  font-size: 1em;
}
.ui.large.attached.header {
  font-size: 1.14285714em;
}
.ui.huge.attached.header {
  font-size: 1.42857143em;
}
/*-------------------
        Sizing
--------------------*/
.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
  font-size: 1.28571429em;
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
.ui.reset-password.header {
  margin: 40px 0;
}
.ui.login.header {
  margin: 40px 0;
}
.ui.login.segment {
  padding: 15px 40px 40px 40px;
}
.theme.header {
  margin-bottom: 20px;
}
.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
  font-size: 1em;
}
/*!
 * # Semantic UI - Icon
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Icon
*******************************/
/*--------------
   Font Files
---------------*/
/*--------------
 Optional Files
---------------*/
/* Outline Icons */
/* Brand Icons */
/*--------------
   Definition
---------------*/
/* Icon Variables */
/* Variations */
/* Packaged Theme */
/*******************************
             Icon
*******************************/
/*--------------
   Font Files
---------------*/
/*--------------
 Optional Files
---------------*/
/* Outline Icons */
/* Brand Icons */
/*--------------
   Definition
---------------*/
/* Icon Variables */
/* Variations */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Icon
*******************************/
@font-face {
  font-family: 'Icons';
  src: url(/static/dist/fonts/icons.a01e3f2.eot);
  src: url(/static/dist/fonts/icons.a01e3f2.eot?#iefix) format('embedded-opentype'), url(/static/dist/fonts/icons.38c6d8b.woff2) format('woff2'), url(/static/dist/fonts/icons.425399f.woff) format('woff'), url(/static/dist/fonts/icons.c656b8c.ttf) format('truetype'), url(/static/dist/img/icons.62d9dae.svg#icons) format('svg');
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-decoration: inherit;
  text-transform: none;
}
i.icon {
  display: inline-block;
  opacity: 1;
  margin: 0em 0.25rem 0em 0em;
  width: 1.18em;
  height: 1em;
  font-family: 'Icons';
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  text-align: center;
  speak: none;
  font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  backface-visibility: hidden;
}
i.icon:before {
  background: none !important;
}
/*******************************
             Types
*******************************/
/*--------------
    Loading
---------------*/
i.icon.loading {
  height: 1em;
  line-height: 1;
  animation: icon-loading 2s linear infinite;
}
@keyframes icon-loading {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/*******************************
             States
*******************************/
i.icon.hover {
  opacity: 1 !important;
}
i.icon.active {
  opacity: 1 !important;
}
i.emphasized.icon {
  opacity: 1 !important;
}
i.disabled.icon {
  opacity: 0.45 !important;
}
/*******************************
           Variations
*******************************/
/*-------------------
        Fitted
--------------------*/
i.fitted.icon {
  width: auto;
  margin: 0em !important;
}
/*-------------------
         Link
--------------------*/
i.link.icon,
i.link.icons {
  cursor: pointer;
  opacity: 0.8;
  transition: opacity 0.1s ease;
}
i.link.icon:hover,
i.link.icons:hover {
  opacity: 1 !important;
}
/*-------------------
      Circular
--------------------*/
i.circular.icon {
  border-radius: 500em !important;
  line-height: 1 !important;
  padding: 0.5em 0em !important;
  box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
  width: 2em !important;
  height: 2em !important;
}
i.circular.inverted.icon {
  border: none;
  box-shadow: none;
}
/*-------------------
      Flipped
--------------------*/
i.flipped.icon,
i.horizontally.flipped.icon {
  transform: scale(-1, 1);
}
i.vertically.flipped.icon {
  transform: scale(1, -1);
}
/*-------------------
      Rotated
--------------------*/
i.rotated.icon,
i.right.rotated.icon,
i.clockwise.rotated.icon {
  transform: rotate(90deg);
}
i.left.rotated.icon,
i.counterclockwise.rotated.icon {
  transform: rotate(-90deg);
}
/*-------------------
      Bordered
--------------------*/
i.bordered.icon {
  line-height: 1;
  vertical-align: baseline;
  width: 2em;
  height: 2em;
  padding: 0.5em 0em !important;
  box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
}
i.bordered.inverted.icon {
  border: none;
  box-shadow: none;
}
/*-------------------
      Inverted
--------------------*/
/* Inverted Shapes */
i.inverted.bordered.icon,
i.inverted.circular.icon {
  background-color: #1B1C1D !important;
  color: #FFFFFF !important;
}
i.inverted.icon {
  color: #FFFFFF;
}
/*-------------------
       Colors
--------------------*/
/* Red */
i.red.icon {
  color: #DB2828 !important;
}
i.inverted.red.icon {
  color: #FF695E !important;
}
i.inverted.bordered.red.icon,
i.inverted.circular.red.icon {
  background-color: #DB2828 !important;
  color: #FFFFFF !important;
}
/* Orange */
i.orange.icon {
  color: #F2711C !important;
}
i.inverted.orange.icon {
  color: #FF851B !important;
}
i.inverted.bordered.orange.icon,
i.inverted.circular.orange.icon {
  background-color: #F2711C !important;
  color: #FFFFFF !important;
}
/* Yellow */
i.yellow.icon {
  color: #FBBD08 !important;
}
i.inverted.yellow.icon {
  color: #FFE21F !important;
}
i.inverted.bordered.yellow.icon,
i.inverted.circular.yellow.icon {
  background-color: #FBBD08 !important;
  color: #FFFFFF !important;
}
/* Olive */
i.olive.icon {
  color: #B5CC18 !important;
}
i.inverted.olive.icon {
  color: #D9E778 !important;
}
i.inverted.bordered.olive.icon,
i.inverted.circular.olive.icon {
  background-color: #B5CC18 !important;
  color: #FFFFFF !important;
}
/* Green */
i.green.icon {
  color: #21BA45 !important;
}
i.inverted.green.icon {
  color: #2ECC40 !important;
}
i.inverted.bordered.green.icon,
i.inverted.circular.green.icon {
  background-color: #21BA45 !important;
  color: #FFFFFF !important;
}
/* Teal */
i.teal.icon {
  color: #00B5AD !important;
}
i.inverted.teal.icon {
  color: #6DFFFF !important;
}
i.inverted.bordered.teal.icon,
i.inverted.circular.teal.icon {
  background-color: #00B5AD !important;
  color: #FFFFFF !important;
}
/* Blue */
i.blue.icon {
  color: #2185D0 !important;
}
i.inverted.blue.icon {
  color: #54C8FF !important;
}
i.inverted.bordered.blue.icon,
i.inverted.circular.blue.icon {
  background-color: #2185D0 !important;
  color: #FFFFFF !important;
}
/* Violet */
i.violet.icon {
  color: #6435C9 !important;
}
i.inverted.violet.icon {
  color: #A291FB !important;
}
i.inverted.bordered.violet.icon,
i.inverted.circular.violet.icon {
  background-color: #6435C9 !important;
  color: #FFFFFF !important;
}
/* Purple */
i.purple.icon {
  color: #A333C8 !important;
}
i.inverted.purple.icon {
  color: #DC73FF !important;
}
i.inverted.bordered.purple.icon,
i.inverted.circular.purple.icon {
  background-color: #A333C8 !important;
  color: #FFFFFF !important;
}
/* Pink */
i.pink.icon {
  color: #E03997 !important;
}
i.inverted.pink.icon {
  color: #FF8EDF !important;
}
i.inverted.bordered.pink.icon,
i.inverted.circular.pink.icon {
  background-color: #E03997 !important;
  color: #FFFFFF !important;
}
/* Brown */
i.brown.icon {
  color: #A5673F !important;
}
i.inverted.brown.icon {
  color: #D67C1C !important;
}
i.inverted.bordered.brown.icon,
i.inverted.circular.brown.icon {
  background-color: #A5673F !important;
  color: #FFFFFF !important;
}
/* Grey */
i.grey.icon {
  color: #767676 !important;
}
i.inverted.grey.icon {
  color: #DCDDDE !important;
}
i.inverted.bordered.grey.icon,
i.inverted.circular.grey.icon {
  background-color: #767676 !important;
  color: #FFFFFF !important;
}
/* Black */
i.black.icon {
  color: #1B1C1D !important;
}
i.inverted.black.icon {
  color: #545454 !important;
}
i.inverted.bordered.black.icon,
i.inverted.circular.black.icon {
  background-color: #1B1C1D !important;
  color: #FFFFFF !important;
}
/*-------------------
        Sizes
--------------------*/
i.mini.icon,
i.mini.icons {
  line-height: 1;
  font-size: 0.4em;
}
i.tiny.icon,
i.tiny.icons {
  line-height: 1;
  font-size: 0.5em;
}
i.small.icon,
i.small.icons {
  line-height: 1;
  font-size: 0.75em;
}
i.icon,
i.icons {
  font-size: 1em;
}
i.large.icon,
i.large.icons {
  line-height: 1;
  vertical-align: middle;
  font-size: 1.5em;
}
i.big.icon,
i.big.icons {
  line-height: 1;
  vertical-align: middle;
  font-size: 2em;
}
i.huge.icon,
i.huge.icons {
  line-height: 1;
  vertical-align: middle;
  font-size: 4em;
}
i.massive.icon,
i.massive.icons {
  line-height: 1;
  vertical-align: middle;
  font-size: 8em;
}
/*******************************
            Groups
*******************************/
i.icons {
  display: inline-block;
  position: relative;
  line-height: 1;
}
i.icons .icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  margin: 0em;
  margin: 0;
}
i.icons .icon:first-child {
  position: static;
  width: auto;
  height: auto;
  vertical-align: top;
  transform: none;
  margin-right: 0.25rem;
}
/* Corner Icon */
i.icons .corner.icon {
  top: auto;
  left: auto;
  right: 0;
  bottom: 0;
  transform: none;
  font-size: 0.45em;
  text-shadow: -1px -1px 0 #FFFFFF, 1px -1px 0 #FFFFFF, -1px 1px 0 #FFFFFF, 1px 1px 0 #FFFFFF;
}
i.icons .top.right.corner.icon {
  top: 0;
  left: auto;
  right: 0;
  bottom: auto;
}
i.icons .top.left.corner.icon {
  top: 0;
  left: 0;
  right: auto;
  bottom: auto;
}
i.icons .bottom.left.corner.icon {
  top: auto;
  left: 0;
  right: auto;
  bottom: 0;
}
i.icons .bottom.right.corner.icon {
  top: auto;
  left: auto;
  right: 0;
  bottom: 0;
}
i.icons .inverted.corner.icon {
  text-shadow: -1px -1px 0 #1B1C1D, 1px -1px 0 #1B1C1D, -1px 1px 0 #1B1C1D, 1px 1px 0 #1B1C1D;
}
/*
 * Font Awesome 5.0.8 by @fontawesome - http://fontawesome.io - @fontawesome
 * License - https://fontawesome.com/license (Icons: CC BY 4.0 License, Fonts: SIL OFL 1.1 License, CSS: MIT License)
 */
/*******************************

Semantic-UI integration of font-awesome :

///class names are separated
i.icon.circle => i.icon.circle
i.icon.circle-o => i.icon.circle.outline

//abbreviation are replaced by full letters:
i.icon.ellipsis-h => i.icon.ellipsis.horizontal
i.icon.ellipsis-v => i.icon.ellipsis.vertical
.alpha => .i.icon.alphabet
.asc => .i.icon.ascending
.desc => .i.icon.descending
.alt =>.alternate

ASCII order is conserved for easier maintenance.

Icons that only have one style 'outline', 'square' etc do not require this class
for instance `lemon icon` not `lemon outline icon` since there is only one lemon

*******************************/
/*******************************
            Icons
*******************************/
/* Deprecated *In/Out Naming Conflict) */
i.icon.linkedin.in:before {
  content: "\f0e1";
}
i.icon.zoom.in:before {
  content: "\f00e";
}
i.icon.zoom.out:before {
  content: "\f010";
}
i.icon.sign.in:before {
  content: "\f2f6";
}
i.icon.in.cart:before {
  content: "\f218";
}
i.icon.log.out:before {
  content: "\f2f5";
}
i.icon.sign.out:before {
  content: "\f2f5";
}
/* Icons */
i.icon.\35 00px:before {
  content: "\f26e";
}
i.icon.accessible.icon:before {
  content: "\f368";
}
i.icon.accusoft:before {
  content: "\f369";
}
i.icon.address.book:before {
  content: "\f2b9";
}
i.icon.address.card:before {
  content: "\f2bb";
}
i.icon.adjust:before {
  content: "\f042";
}
i.icon.adn:before {
  content: "\f170";
}
i.icon.adversal:before {
  content: "\f36a";
}
i.icon.affiliatetheme:before {
  content: "\f36b";
}
i.icon.algolia:before {
  content: "\f36c";
}
i.icon.align.center:before {
  content: "\f037";
}
i.icon.align.justify:before {
  content: "\f039";
}
i.icon.align.left:before {
  content: "\f036";
}
i.icon.align.right:before {
  content: "\f038";
}
i.icon.amazon:before {
  content: "\f270";
}
i.icon.amazon.pay:before {
  content: "\f42c";
}
i.icon.ambulance:before {
  content: "\f0f9";
}
i.icon.american.sign.language.interpreting:before {
  content: "\f2a3";
}
i.icon.amilia:before {
  content: "\f36d";
}
i.icon.anchor:before {
  content: "\f13d";
}
i.icon.android:before {
  content: "\f17b";
}
i.icon.angellist:before {
  content: "\f209";
}
i.icon.angle.double.down:before {
  content: "\f103";
}
i.icon.angle.double.left:before {
  content: "\f100";
}
i.icon.angle.double.right:before {
  content: "\f101";
}
i.icon.angle.double.up:before {
  content: "\f102";
}
i.icon.angle.down:before {
  content: "\f107";
}
i.icon.angle.left:before {
  content: "\f104";
}
i.icon.angle.right:before {
  content: "\f105";
}
i.icon.angle.up:before {
  content: "\f106";
}
i.icon.angrycreative:before {
  content: "\f36e";
}
i.icon.angular:before {
  content: "\f420";
}
i.icon.app.store:before {
  content: "\f36f";
}
i.icon.app.store.ios:before {
  content: "\f370";
}
i.icon.apper:before {
  content: "\f371";
}
i.icon.apple:before {
  content: "\f179";
}
i.icon.apple.pay:before {
  content: "\f415";
}
i.icon.archive:before {
  content: "\f187";
}
i.icon.arrow.alternate.circle.down:before {
  content: "\f358";
}
i.icon.arrow.alternate.circle.left:before {
  content: "\f359";
}
i.icon.arrow.alternate.circle.right:before {
  content: "\f35a";
}
i.icon.arrow.alternate.circle.up:before {
  content: "\f35b";
}
i.icon.arrow.circle.down:before {
  content: "\f0ab";
}
i.icon.arrow.circle.left:before {
  content: "\f0a8";
}
i.icon.arrow.circle.right:before {
  content: "\f0a9";
}
i.icon.arrow.circle.up:before {
  content: "\f0aa";
}
i.icon.arrow.down:before {
  content: "\f063";
}
i.icon.arrow.left:before {
  content: "\f060";
}
i.icon.arrow.right:before {
  content: "\f061";
}
i.icon.arrow.up:before {
  content: "\f062";
}
i.icon.arrows.alternate:before {
  content: "\f0b2";
}
i.icon.arrows.alternate.horizontal:before {
  content: "\f337";
}
i.icon.arrows.alternate.vertical:before {
  content: "\f338";
}
i.icon.assistive.listening.systems:before {
  content: "\f2a2";
}
i.icon.asterisk:before {
  content: "\f069";
}
i.icon.asymmetrik:before {
  content: "\f372";
}
i.icon.at:before {
  content: "\f1fa";
}
i.icon.audible:before {
  content: "\f373";
}
i.icon.audio.description:before {
  content: "\f29e";
}
i.icon.autoprefixer:before {
  content: "\f41c";
}
i.icon.avianex:before {
  content: "\f374";
}
i.icon.aviato:before {
  content: "\f421";
}
i.icon.aws:before {
  content: "\f375";
}
i.icon.backward:before {
  content: "\f04a";
}
i.icon.balance.scale:before {
  content: "\f24e";
}
i.icon.ban:before {
  content: "\f05e";
}
i.icon.band.aid:before {
  content: "\f462";
}
i.icon.bandcamp:before {
  content: "\f2d5";
}
i.icon.barcode:before {
  content: "\f02a";
}
i.icon.bars:before {
  content: "\f0c9";
}
i.icon.baseball.ball:before {
  content: "\f433";
}
i.icon.basketball.ball:before {
  content: "\f434";
}
i.icon.bath:before {
  content: "\f2cd";
}
i.icon.battery.empty:before {
  content: "\f244";
}
i.icon.battery.full:before {
  content: "\f240";
}
i.icon.battery.half:before {
  content: "\f242";
}
i.icon.battery.quarter:before {
  content: "\f243";
}
i.icon.battery.three.quarters:before {
  content: "\f241";
}
i.icon.bed:before {
  content: "\f236";
}
i.icon.beer:before {
  content: "\f0fc";
}
i.icon.behance:before {
  content: "\f1b4";
}
i.icon.behance.square:before {
  content: "\f1b5";
}
i.icon.bell:before {
  content: "\f0f3";
}
i.icon.bell.slash:before {
  content: "\f1f6";
}
i.icon.bicycle:before {
  content: "\f206";
}
i.icon.bimobject:before {
  content: "\f378";
}
i.icon.binoculars:before {
  content: "\f1e5";
}
i.icon.birthday.cake:before {
  content: "\f1fd";
}
i.icon.bitbucket:before {
  content: "\f171";
}
i.icon.bitcoin:before {
  content: "\f379";
}
i.icon.bity:before {
  content: "\f37a";
}
i.icon.black.tie:before {
  content: "\f27e";
}
i.icon.blackberry:before {
  content: "\f37b";
}
i.icon.blind:before {
  content: "\f29d";
}
i.icon.blogger:before {
  content: "\f37c";
}
i.icon.blogger.b:before {
  content: "\f37d";
}
i.icon.bluetooth:before {
  content: "\f293";
}
i.icon.bluetooth.b:before {
  content: "\f294";
}
i.icon.bold:before {
  content: "\f032";
}
i.icon.bolt:before {
  content: "\f0e7";
}
i.icon.bomb:before {
  content: "\f1e2";
}
i.icon.book:before {
  content: "\f02d";
}
i.icon.bookmark:before {
  content: "\f02e";
}
i.icon.bowling.ball:before {
  content: "\f436";
}
i.icon.box:before {
  content: "\f466";
}
i.icon.boxes:before {
  content: "\f468";
}
i.icon.braille:before {
  content: "\f2a1";
}
i.icon.briefcase:before {
  content: "\f0b1";
}
i.icon.btc:before {
  content: "\f15a";
}
i.icon.bug:before {
  content: "\f188";
}
i.icon.building:before {
  content: "\f1ad";
}
i.icon.bullhorn:before {
  content: "\f0a1";
}
i.icon.bullseye:before {
  content: "\f140";
}
i.icon.buromobelexperte:before {
  content: "\f37f";
}
i.icon.bus:before {
  content: "\f207";
}
i.icon.buysellads:before {
  content: "\f20d";
}
i.icon.calculator:before {
  content: "\f1ec";
}
i.icon.calendar:before {
  content: "\f133";
}
i.icon.calendar.alternate:before {
  content: "\f073";
}
i.icon.calendar.check:before {
  content: "\f274";
}
i.icon.calendar.minus:before {
  content: "\f272";
}
i.icon.calendar.plus:before {
  content: "\f271";
}
i.icon.calendar.times:before {
  content: "\f273";
}
i.icon.camera:before {
  content: "\f030";
}
i.icon.camera.retro:before {
  content: "\f083";
}
i.icon.car:before {
  content: "\f1b9";
}
i.icon.caret.down:before {
  content: "\f0d7";
}
i.icon.caret.left:before {
  content: "\f0d9";
}
i.icon.caret.right:before {
  content: "\f0da";
}
i.icon.caret.square.down:before {
  content: "\f150";
}
i.icon.caret.square.left:before {
  content: "\f191";
}
i.icon.caret.square.right:before {
  content: "\f152";
}
i.icon.caret.square.up:before {
  content: "\f151";
}
i.icon.caret.up:before {
  content: "\f0d8";
}
i.icon.cart.arrow.down:before {
  content: "\f218";
}
i.icon.cart.plus:before {
  content: "\f217";
}
i.icon.cc.amazon.pay:before {
  content: "\f42d";
}
i.icon.cc.amex:before {
  content: "\f1f3";
}
i.icon.cc.apple.pay:before {
  content: "\f416";
}
i.icon.cc.diners.club:before {
  content: "\f24c";
}
i.icon.cc.discover:before {
  content: "\f1f2";
}
i.icon.cc.jcb:before {
  content: "\f24b";
}
i.icon.cc.mastercard:before {
  content: "\f1f1";
}
i.icon.cc.paypal:before {
  content: "\f1f4";
}
i.icon.cc.stripe:before {
  content: "\f1f5";
}
i.icon.cc.visa:before {
  content: "\f1f0";
}
i.icon.centercode:before {
  content: "\f380";
}
i.icon.certificate:before {
  content: "\f0a3";
}
i.icon.chart.area:before {
  content: "\f1fe";
}
i.icon.chart.bar:before {
  content: "\f080";
}
i.icon.chart.line:before {
  content: "\f201";
}
i.icon.chart.pie:before {
  content: "\f200";
}
i.icon.check:before {
  content: "\f00c";
}
i.icon.check.circle:before {
  content: "\f058";
}
i.icon.check.square:before {
  content: "\f14a";
}
i.icon.chess:before {
  content: "\f439";
}
i.icon.chess.bishop:before {
  content: "\f43a";
}
i.icon.chess.board:before {
  content: "\f43c";
}
i.icon.chess.king:before {
  content: "\f43f";
}
i.icon.chess.knight:before {
  content: "\f441";
}
i.icon.chess.pawn:before {
  content: "\f443";
}
i.icon.chess.queen:before {
  content: "\f445";
}
i.icon.chess.rook:before {
  content: "\f447";
}
i.icon.chevron.circle.down:before {
  content: "\f13a";
}
i.icon.chevron.circle.left:before {
  content: "\f137";
}
i.icon.chevron.circle.right:before {
  content: "\f138";
}
i.icon.chevron.circle.up:before {
  content: "\f139";
}
i.icon.chevron.down:before {
  content: "\f078";
}
i.icon.chevron.left:before {
  content: "\f053";
}
i.icon.chevron.right:before {
  content: "\f054";
}
i.icon.chevron.up:before {
  content: "\f077";
}
i.icon.child:before {
  content: "\f1ae";
}
i.icon.chrome:before {
  content: "\f268";
}
i.icon.circle:before {
  content: "\f111";
}
i.icon.circle.notch:before {
  content: "\f1ce";
}
i.icon.clipboard:before {
  content: "\f328";
}
i.icon.clipboard.check:before {
  content: "\f46c";
}
i.icon.clipboard.list:before {
  content: "\f46d";
}
i.icon.clock:before {
  content: "\f017";
}
i.icon.clone:before {
  content: "\f24d";
}
i.icon.closed.captioning:before {
  content: "\f20a";
}
i.icon.cloud:before {
  content: "\f0c2";
}
i.icon.cloudscale:before {
  content: "\f383";
}
i.icon.cloudsmith:before {
  content: "\f384";
}
i.icon.cloudversify:before {
  content: "\f385";
}
i.icon.code:before {
  content: "\f121";
}
i.icon.code.branch:before {
  content: "\f126";
}
i.icon.codepen:before {
  content: "\f1cb";
}
i.icon.codiepie:before {
  content: "\f284";
}
i.icon.coffee:before {
  content: "\f0f4";
}
i.icon.cog:before {
  content: "\f013";
}
i.icon.cogs:before {
  content: "\f085";
}
i.icon.columns:before {
  content: "\f0db";
}
i.icon.comment:before {
  content: "\f075";
}
i.icon.comment.alternate:before {
  content: "\f27a";
}
i.icon.comments:before {
  content: "\f086";
}
i.icon.compass:before {
  content: "\f14e";
}
i.icon.compress:before {
  content: "\f066";
}
i.icon.connectdevelop:before {
  content: "\f20e";
}
i.icon.contao:before {
  content: "\f26d";
}
i.icon.copy:before {
  content: "\f0c5";
}
i.icon.copyright:before {
  content: "\f1f9";
}
i.icon.cpanel:before {
  content: "\f388";
}
i.icon.creative.commons:before {
  content: "\f25e";
}
i.icon.credit.card:before {
  content: "\f09d";
}
i.icon.crop:before {
  content: "\f125";
}
i.icon.crosshairs:before {
  content: "\f05b";
}
i.icon.css3:before {
  content: "\f13c";
}
i.icon.css3.alternate:before {
  content: "\f38b";
}
i.icon.cube:before {
  content: "\f1b2";
}
i.icon.cubes:before {
  content: "\f1b3";
}
i.icon.cut:before {
  content: "\f0c4";
}
i.icon.cuttlefish:before {
  content: "\f38c";
}
i.icon.d.and.d:before {
  content: "\f38d";
}
i.icon.dashcube:before {
  content: "\f210";
}
i.icon.database:before {
  content: "\f1c0";
}
i.icon.deaf:before {
  content: "\f2a4";
}
i.icon.delicious:before {
  content: "\f1a5";
}
i.icon.deploydog:before {
  content: "\f38e";
}
i.icon.deskpro:before {
  content: "\f38f";
}
i.icon.desktop:before {
  content: "\f108";
}
i.icon.deviantart:before {
  content: "\f1bd";
}
i.icon.digg:before {
  content: "\f1a6";
}
i.icon.digital.ocean:before {
  content: "\f391";
}
i.icon.discord:before {
  content: "\f392";
}
i.icon.discourse:before {
  content: "\f393";
}
i.icon.dna:before {
  content: "\f471";
}
i.icon.dochub:before {
  content: "\f394";
}
i.icon.docker:before {
  content: "\f395";
}
i.icon.dollar.sign:before {
  content: "\f155";
}
i.icon.dolly:before {
  content: "\f472";
}
i.icon.dolly.flatbed:before {
  content: "\f474";
}
i.icon.dot.circle:before {
  content: "\f192";
}
i.icon.download:before {
  content: "\f019";
}
i.icon.draft2digital:before {
  content: "\f396";
}
i.icon.dribbble:before {
  content: "\f17d";
}
i.icon.dribbble.square:before {
  content: "\f397";
}
i.icon.dropbox:before {
  content: "\f16b";
}
i.icon.drupal:before {
  content: "\f1a9";
}
i.icon.dyalog:before {
  content: "\f399";
}
i.icon.earlybirds:before {
  content: "\f39a";
}
i.icon.edge:before {
  content: "\f282";
}
i.icon.edit:before {
  content: "\f044";
}
i.icon.eject:before {
  content: "\f052";
}
i.icon.elementor:before {
  content: "\f430";
}
i.icon.ellipsis.horizontal:before {
  content: "\f141";
}
i.icon.ellipsis.vertical:before {
  content: "\f142";
}
i.icon.ember:before {
  content: "\f423";
}
i.icon.empire:before {
  content: "\f1d1";
}
i.icon.envelope:before {
  content: "\f0e0";
}
i.icon.envelope.open:before {
  content: "\f2b6";
}
i.icon.envelope.square:before {
  content: "\f199";
}
i.icon.envira:before {
  content: "\f299";
}
i.icon.eraser:before {
  content: "\f12d";
}
i.icon.erlang:before {
  content: "\f39d";
}
i.icon.ethereum:before {
  content: "\f42e";
}
i.icon.etsy:before {
  content: "\f2d7";
}
i.icon.euro.sign:before {
  content: "\f153";
}
i.icon.exchange.alternate:before {
  content: "\f362";
}
i.icon.exclamation:before {
  content: "\f12a";
}
i.icon.exclamation.circle:before {
  content: "\f06a";
}
i.icon.exclamation.triangle:before {
  content: "\f071";
}
i.icon.expand:before {
  content: "\f065";
}
i.icon.expand.arrows.alternate:before {
  content: "\f31e";
}
i.icon.expeditedssl:before {
  content: "\f23e";
}
i.icon.external.alternate:before {
  content: "\f35d";
}
i.icon.external.square.alternate:before {
  content: "\f360";
}
i.icon.eye:before {
  content: "\f06e";
}
i.icon.eye.dropper:before {
  content: "\f1fb";
}
i.icon.eye.slash:before {
  content: "\f070";
}
i.icon.facebook:before {
  content: "\f09a";
}
i.icon.facebook.f:before {
  content: "\f39e";
}
i.icon.facebook.messenger:before {
  content: "\f39f";
}
i.icon.facebook.square:before {
  content: "\f082";
}
i.icon.fast.backward:before {
  content: "\f049";
}
i.icon.fast.forward:before {
  content: "\f050";
}
i.icon.fax:before {
  content: "\f1ac";
}
i.icon.female:before {
  content: "\f182";
}
i.icon.fighter.jet:before {
  content: "\f0fb";
}
i.icon.file:before {
  content: "\f15b";
}
i.icon.file.alternate:before {
  content: "\f15c";
}
i.icon.file.archive:before {
  content: "\f1c6";
}
i.icon.file.audio:before {
  content: "\f1c7";
}
i.icon.file.code:before {
  content: "\f1c9";
}
i.icon.file.excel:before {
  content: "\f1c3";
}
i.icon.file.image:before {
  content: "\f1c5";
}
i.icon.file.pdf:before {
  content: "\f1c1";
}
i.icon.file.powerpoint:before {
  content: "\f1c4";
}
i.icon.file.video:before {
  content: "\f1c8";
}
i.icon.file.word:before {
  content: "\f1c2";
}
i.icon.film:before {
  content: "\f008";
}
i.icon.filter:before {
  content: "\f0b0";
}
i.icon.fire:before {
  content: "\f06d";
}
i.icon.fire.extinguisher:before {
  content: "\f134";
}
i.icon.firefox:before {
  content: "\f269";
}
i.icon.first.aid:before {
  content: "\f479";
}
i.icon.first.order:before {
  content: "\f2b0";
}
i.icon.firstdraft:before {
  content: "\f3a1";
}
i.icon.flag:before {
  content: "\f024";
}
i.icon.flag.checkered:before {
  content: "\f11e";
}
i.icon.flask:before {
  content: "\f0c3";
}
i.icon.flickr:before {
  content: "\f16e";
}
i.icon.flipboard:before {
  content: "\f44d";
}
i.icon.fly:before {
  content: "\f417";
}
i.icon.folder:before {
  content: "\f07b";
}
i.icon.folder.open:before {
  content: "\f07c";
}
i.icon.font:before {
  content: "\f031";
}
i.icon.font.awesome:before {
  content: "\f2b4";
}
i.icon.font.awesome.alternate:before {
  content: "\f35c";
}
i.icon.font.awesome.flag:before {
  content: "\f425";
}
i.icon.fonticons:before {
  content: "\f280";
}
i.icon.fonticons.fi:before {
  content: "\f3a2";
}
i.icon.football.ball:before {
  content: "\f44e";
}
i.icon.fort.awesome:before {
  content: "\f286";
}
i.icon.fort.awesome.alternate:before {
  content: "\f3a3";
}
i.icon.forumbee:before {
  content: "\f211";
}
i.icon.forward:before {
  content: "\f04e";
}
i.icon.foursquare:before {
  content: "\f180";
}
i.icon.free.code.camp:before {
  content: "\f2c5";
}
i.icon.freebsd:before {
  content: "\f3a4";
}
i.icon.frown:before {
  content: "\f119";
}
i.icon.futbol:before {
  content: "\f1e3";
}
i.icon.gamepad:before {
  content: "\f11b";
}
i.icon.gavel:before {
  content: "\f0e3";
}
i.icon.gem:before {
  content: "\f3a5";
}
i.icon.genderless:before {
  content: "\f22d";
}
i.icon.get.pocket:before {
  content: "\f265";
}
i.icon.gg:before {
  content: "\f260";
}
i.icon.gg.circle:before {
  content: "\f261";
}
i.icon.gift:before {
  content: "\f06b";
}
i.icon.git:before {
  content: "\f1d3";
}
i.icon.git.square:before {
  content: "\f1d2";
}
i.icon.github:before {
  content: "\f09b";
}
i.icon.github.alternate:before {
  content: "\f113";
}
i.icon.github.square:before {
  content: "\f092";
}
i.icon.gitkraken:before {
  content: "\f3a6";
}
i.icon.gitlab:before {
  content: "\f296";
}
i.icon.gitter:before {
  content: "\f426";
}
i.icon.glass.martini:before {
  content: "\f000";
}
i.icon.glide:before {
  content: "\f2a5";
}
i.icon.glide.g:before {
  content: "\f2a6";
}
i.icon.globe:before {
  content: "\f0ac";
}
i.icon.gofore:before {
  content: "\f3a7";
}
i.icon.golf.ball:before {
  content: "\f450";
}
i.icon.goodreads:before {
  content: "\f3a8";
}
i.icon.goodreads.g:before {
  content: "\f3a9";
}
i.icon.google:before {
  content: "\f1a0";
}
i.icon.google.drive:before {
  content: "\f3aa";
}
i.icon.google.play:before {
  content: "\f3ab";
}
i.icon.google.plus:before {
  content: "\f2b3";
}
i.icon.google.plus.g:before {
  content: "\f0d5";
}
i.icon.google.plus.square:before {
  content: "\f0d4";
}
i.icon.google.wallet:before {
  content: "\f1ee";
}
i.icon.graduation.cap:before {
  content: "\f19d";
}
i.icon.gratipay:before {
  content: "\f184";
}
i.icon.grav:before {
  content: "\f2d6";
}
i.icon.gripfire:before {
  content: "\f3ac";
}
i.icon.grunt:before {
  content: "\f3ad";
}
i.icon.gulp:before {
  content: "\f3ae";
}
i.icon.h.square:before {
  content: "\f0fd";
}
i.icon.hacker.news:before {
  content: "\f1d4";
}
i.icon.hacker.news.square:before {
  content: "\f3af";
}
i.icon.hand.lizard:before {
  content: "\f258";
}
i.icon.hand.paper:before {
  content: "\f256";
}
i.icon.hand.peace:before {
  content: "\f25b";
}
i.icon.hand.point.down:before {
  content: "\f0a7";
}
i.icon.hand.point.left:before {
  content: "\f0a5";
}
i.icon.hand.point.right:before {
  content: "\f0a4";
}
i.icon.hand.point.up:before {
  content: "\f0a6";
}
i.icon.hand.pointer:before {
  content: "\f25a";
}
i.icon.hand.rock:before {
  content: "\f255";
}
i.icon.hand.scissors:before {
  content: "\f257";
}
i.icon.hand.spock:before {
  content: "\f259";
}
i.icon.handshake:before {
  content: "\f2b5";
}
i.icon.hashtag:before {
  content: "\f292";
}
i.icon.hdd:before {
  content: "\f0a0";
}
i.icon.heading:before {
  content: "\f1dc";
}
i.icon.headphones:before {
  content: "\f025";
}
i.icon.heart:before {
  content: "\f004";
}
i.icon.heartbeat:before {
  content: "\f21e";
}
i.icon.hips:before {
  content: "\f452";
}
i.icon.hire.a.helper:before {
  content: "\f3b0";
}
i.icon.history:before {
  content: "\f1da";
}
i.icon.hockey.puck:before {
  content: "\f453";
}
i.icon.home:before {
  content: "\f015";
}
i.icon.hooli:before {
  content: "\f427";
}
i.icon.hospital:before {
  content: "\f0f8";
}
i.icon.hospital.symbol:before {
  content: "\f47e";
}
i.icon.hotjar:before {
  content: "\f3b1";
}
i.icon.hourglass:before {
  content: "\f254";
}
i.icon.hourglass.end:before {
  content: "\f253";
}
i.icon.hourglass.half:before {
  content: "\f252";
}
i.icon.hourglass.start:before {
  content: "\f251";
}
i.icon.houzz:before {
  content: "\f27c";
}
i.icon.html5:before {
  content: "\f13b";
}
i.icon.hubspot:before {
  content: "\f3b2";
}
i.icon.i.cursor:before {
  content: "\f246";
}
i.icon.id.badge:before {
  content: "\f2c1";
}
i.icon.id.card:before {
  content: "\f2c2";
}
i.icon.image:before {
  content: "\f03e";
}
i.icon.images:before {
  content: "\f302";
}
i.icon.imdb:before {
  content: "\f2d8";
}
i.icon.inbox:before {
  content: "\f01c";
}
i.icon.indent:before {
  content: "\f03c";
}
i.icon.industry:before {
  content: "\f275";
}
i.icon.info:before {
  content: "\f129";
}
i.icon.info.circle:before {
  content: "\f05a";
}
i.icon.instagram:before {
  content: "\f16d";
}
i.icon.internet.explorer:before {
  content: "\f26b";
}
i.icon.ioxhost:before {
  content: "\f208";
}
i.icon.italic:before {
  content: "\f033";
}
i.icon.itunes:before {
  content: "\f3b4";
}
i.icon.itunes.note:before {
  content: "\f3b5";
}
i.icon.jenkins:before {
  content: "\f3b6";
}
i.icon.joget:before {
  content: "\f3b7";
}
i.icon.joomla:before {
  content: "\f1aa";
}
i.icon.js:before {
  content: "\f3b8";
}
i.icon.js.square:before {
  content: "\f3b9";
}
i.icon.jsfiddle:before {
  content: "\f1cc";
}
i.icon.key:before {
  content: "\f084";
}
i.icon.keyboard:before {
  content: "\f11c";
}
i.icon.keycdn:before {
  content: "\f3ba";
}
i.icon.kickstarter:before {
  content: "\f3bb";
}
i.icon.kickstarter.k:before {
  content: "\f3bc";
}
i.icon.korvue:before {
  content: "\f42f";
}
i.icon.language:before {
  content: "\f1ab";
}
i.icon.laptop:before {
  content: "\f109";
}
i.icon.laravel:before {
  content: "\f3bd";
}
i.icon.lastfm:before {
  content: "\f202";
}
i.icon.lastfm.square:before {
  content: "\f203";
}
i.icon.leaf:before {
  content: "\f06c";
}
i.icon.leanpub:before {
  content: "\f212";
}
i.icon.lemon:before {
  content: "\f094";
}
i.icon.less:before {
  content: "\f41d";
}
i.icon.level.down.alternate:before {
  content: "\f3be";
}
i.icon.level.up.alternate:before {
  content: "\f3bf";
}
i.icon.life.ring:before {
  content: "\f1cd";
}
i.icon.lightbulb:before {
  content: "\f0eb";
}
i.icon.linechat:before {
  content: "\f3c0";
}
i.icon.linkify:before {
  content: "\f0c1";
}
i.icon.linkedin:before {
  content: "\f08c";
}
i.icon.linkedin.alt:before {
  content: "\f0e1";
}
i.icon.linode:before {
  content: "\f2b8";
}
i.icon.linux:before {
  content: "\f17c";
}
i.icon.lira.sign:before {
  content: "\f195";
}
i.icon.list:before {
  content: "\f03a";
}
i.icon.list.alternate:before {
  content: "\f022";
}
i.icon.list.ol:before {
  content: "\f0cb";
}
i.icon.list.ul:before {
  content: "\f0ca";
}
i.icon.location.arrow:before {
  content: "\f124";
}
i.icon.lock:before {
  content: "\f023";
}
i.icon.lock.open:before {
  content: "\f3c1";
}
i.icon.long.arrow.alternate.down:before {
  content: "\f309";
}
i.icon.long.arrow.alternate.left:before {
  content: "\f30a";
}
i.icon.long.arrow.alternate.right:before {
  content: "\f30b";
}
i.icon.long.arrow.alternate.up:before {
  content: "\f30c";
}
i.icon.low.vision:before {
  content: "\f2a8";
}
i.icon.lyft:before {
  content: "\f3c3";
}
i.icon.magento:before {
  content: "\f3c4";
}
i.icon.magic:before {
  content: "\f0d0";
}
i.icon.magnet:before {
  content: "\f076";
}
i.icon.male:before {
  content: "\f183";
}
i.icon.map:before {
  content: "\f279";
}
i.icon.map.marker:before {
  content: "\f041";
}
i.icon.map.marker.alternate:before {
  content: "\f3c5";
}
i.icon.map.pin:before {
  content: "\f276";
}
i.icon.map.signs:before {
  content: "\f277";
}
i.icon.mars:before {
  content: "\f222";
}
i.icon.mars.double:before {
  content: "\f227";
}
i.icon.mars.stroke:before {
  content: "\f229";
}
i.icon.mars.stroke.horizontal:before {
  content: "\f22b";
}
i.icon.mars.stroke.vertical:before {
  content: "\f22a";
}
i.icon.maxcdn:before {
  content: "\f136";
}
i.icon.medapps:before {
  content: "\f3c6";
}
i.icon.medium:before {
  content: "\f23a";
}
i.icon.medium.m:before {
  content: "\f3c7";
}
i.icon.medkit:before {
  content: "\f0fa";
}
i.icon.medrt:before {
  content: "\f3c8";
}
i.icon.meetup:before {
  content: "\f2e0";
}
i.icon.meh:before {
  content: "\f11a";
}
i.icon.mercury:before {
  content: "\f223";
}
i.icon.microchip:before {
  content: "\f2db";
}
i.icon.microphone:before {
  content: "\f130";
}
i.icon.microphone.slash:before {
  content: "\f131";
}
i.icon.microsoft:before {
  content: "\f3ca";
}
i.icon.minus:before {
  content: "\f068";
}
i.icon.minus.circle:before {
  content: "\f056";
}
i.icon.minus.square:before {
  content: "\f146";
}
i.icon.mix:before {
  content: "\f3cb";
}
i.icon.mixcloud:before {
  content: "\f289";
}
i.icon.mizuni:before {
  content: "\f3cc";
}
i.icon.mobile:before {
  content: "\f10b";
}
i.icon.mobile.alternate:before {
  content: "\f3cd";
}
i.icon.modx:before {
  content: "\f285";
}
i.icon.monero:before {
  content: "\f3d0";
}
i.icon.money.bill.alternate:before {
  content: "\f3d1";
}
i.icon.moon:before {
  content: "\f186";
}
i.icon.motorcycle:before {
  content: "\f21c";
}
i.icon.mouse.pointer:before {
  content: "\f245";
}
i.icon.music:before {
  content: "\f001";
}
i.icon.napster:before {
  content: "\f3d2";
}
i.icon.neuter:before {
  content: "\f22c";
}
i.icon.newspaper:before {
  content: "\f1ea";
}
i.icon.nintendo.switch:before {
  content: "\f418";
}
i.icon.node:before {
  content: "\f419";
}
i.icon.node.js:before {
  content: "\f3d3";
}
i.icon.npm:before {
  content: "\f3d4";
}
i.icon.ns8:before {
  content: "\f3d5";
}
i.icon.nutritionix:before {
  content: "\f3d6";
}
i.icon.object.group:before {
  content: "\f247";
}
i.icon.object.ungroup:before {
  content: "\f248";
}
i.icon.odnoklassniki:before {
  content: "\f263";
}
i.icon.odnoklassniki.square:before {
  content: "\f264";
}
i.icon.opencart:before {
  content: "\f23d";
}
i.icon.openid:before {
  content: "\f19b";
}
i.icon.opera:before {
  content: "\f26a";
}
i.icon.optin.monster:before {
  content: "\f23c";
}
i.icon.osi:before {
  content: "\f41a";
}
i.icon.outdent:before {
  content: "\f03b";
}
i.icon.page4:before {
  content: "\f3d7";
}
i.icon.pagelines:before {
  content: "\f18c";
}
i.icon.paint.brush:before {
  content: "\f1fc";
}
i.icon.palfed:before {
  content: "\f3d8";
}
i.icon.pallet:before {
  content: "\f482";
}
i.icon.paper.plane:before {
  content: "\f1d8";
}
i.icon.paperclip:before {
  content: "\f0c6";
}
i.icon.paragraph:before {
  content: "\f1dd";
}
i.icon.paste:before {
  content: "\f0ea";
}
i.icon.patreon:before {
  content: "\f3d9";
}
i.icon.pause:before {
  content: "\f04c";
}
i.icon.pause.circle:before {
  content: "\f28b";
}
i.icon.paw:before {
  content: "\f1b0";
}
i.icon.paypal:before {
  content: "\f1ed";
}
i.icon.pen.square:before {
  content: "\f14b";
}
i.icon.pencil.alternate:before {
  content: "\f303";
}
i.icon.percent:before {
  content: "\f295";
}
i.icon.periscope:before {
  content: "\f3da";
}
i.icon.phabricator:before {
  content: "\f3db";
}
i.icon.phoenix.framework:before {
  content: "\f3dc";
}
i.icon.phone:before {
  content: "\f095";
}
i.icon.phone.square:before {
  content: "\f098";
}
i.icon.phone.volume:before {
  content: "\f2a0";
}
i.icon.php:before {
  content: "\f457";
}
i.icon.pied.piper:before {
  content: "\f2ae";
}
i.icon.pied.piper.alternate:before {
  content: "\f1a8";
}
i.icon.pied.piper.pp:before {
  content: "\f1a7";
}
i.icon.pills:before {
  content: "\f484";
}
i.icon.pinterest:before {
  content: "\f0d2";
}
i.icon.pinterest.p:before {
  content: "\f231";
}
i.icon.pinterest.square:before {
  content: "\f0d3";
}
i.icon.plane:before {
  content: "\f072";
}
i.icon.play:before {
  content: "\f04b";
}
i.icon.play.circle:before {
  content: "\f144";
}
i.icon.playstation:before {
  content: "\f3df";
}
i.icon.plug:before {
  content: "\f1e6";
}
i.icon.plus:before {
  content: "\f067";
}
i.icon.plus.circle:before {
  content: "\f055";
}
i.icon.plus.square:before {
  content: "\f0fe";
}
i.icon.podcast:before {
  content: "\f2ce";
}
i.icon.pound.sign:before {
  content: "\f154";
}
i.icon.power.off:before {
  content: "\f011";
}
i.icon.print:before {
  content: "\f02f";
}
i.icon.product.hunt:before {
  content: "\f288";
}
i.icon.pushed:before {
  content: "\f3e1";
}
i.icon.puzzle.piece:before {
  content: "\f12e";
}
i.icon.python:before {
  content: "\f3e2";
}
i.icon.qq:before {
  content: "\f1d6";
}
i.icon.qrcode:before {
  content: "\f029";
}
i.icon.question:before {
  content: "\f128";
}
i.icon.question.circle:before {
  content: "\f059";
}
i.icon.quidditch:before {
  content: "\f458";
}
i.icon.quinscape:before {
  content: "\f459";
}
i.icon.quora:before {
  content: "\f2c4";
}
i.icon.quote.left:before {
  content: "\f10d";
}
i.icon.quote.right:before {
  content: "\f10e";
}
i.icon.random:before {
  content: "\f074";
}
i.icon.ravelry:before {
  content: "\f2d9";
}
i.icon.react:before {
  content: "\f41b";
}
i.icon.rebel:before {
  content: "\f1d0";
}
i.icon.recycle:before {
  content: "\f1b8";
}
i.icon.redriver:before {
  content: "\f3e3";
}
i.icon.reddit:before {
  content: "\f1a1";
}
i.icon.reddit.alien:before {
  content: "\f281";
}
i.icon.reddit.square:before {
  content: "\f1a2";
}
i.icon.redo:before {
  content: "\f01e";
}
i.icon.redo.alternate:before {
  content: "\f2f9";
}
i.icon.registered:before {
  content: "\f25d";
}
i.icon.rendact:before {
  content: "\f3e4";
}
i.icon.renren:before {
  content: "\f18b";
}
i.icon.reply:before {
  content: "\f3e5";
}
i.icon.reply.all:before {
  content: "\f122";
}
i.icon.replyd:before {
  content: "\f3e6";
}
i.icon.resolving:before {
  content: "\f3e7";
}
i.icon.retweet:before {
  content: "\f079";
}
i.icon.road:before {
  content: "\f018";
}
i.icon.rocket:before {
  content: "\f135";
}
i.icon.rocketchat:before {
  content: "\f3e8";
}
i.icon.rockrms:before {
  content: "\f3e9";
}
i.icon.rss:before {
  content: "\f09e";
}
i.icon.rss.square:before {
  content: "\f143";
}
i.icon.ruble.sign:before {
  content: "\f158";
}
i.icon.rupee.sign:before {
  content: "\f156";
}
i.icon.safari:before {
  content: "\f267";
}
i.icon.sass:before {
  content: "\f41e";
}
i.icon.save:before {
  content: "\f0c7";
}
i.icon.schlix:before {
  content: "\f3ea";
}
i.icon.scribd:before {
  content: "\f28a";
}
i.icon.search:before {
  content: "\f002";
}
i.icon.search.minus:before {
  content: "\f010";
}
i.icon.search.plus:before {
  content: "\f00e";
}
i.icon.searchengin:before {
  content: "\f3eb";
}
i.icon.sellcast:before {
  content: "\f2da";
}
i.icon.sellsy:before {
  content: "\f213";
}
i.icon.server:before {
  content: "\f233";
}
i.icon.servicestack:before {
  content: "\f3ec";
}
i.icon.share:before {
  content: "\f064";
}
i.icon.share.alternate:before {
  content: "\f1e0";
}
i.icon.share.alternate.square:before {
  content: "\f1e1";
}
i.icon.share.square:before {
  content: "\f14d";
}
i.icon.shekel.sign:before {
  content: "\f20b";
}
i.icon.shield.alternate:before {
  content: "\f3ed";
}
i.icon.ship:before {
  content: "\f21a";
}
i.icon.shipping.fast:before {
  content: "\f48b";
}
i.icon.shirtsinbulk:before {
  content: "\f214";
}
i.icon.shopping.bag:before {
  content: "\f290";
}
i.icon.shopping.basket:before {
  content: "\f291";
}
i.icon.shopping.cart:before {
  content: "\f07a";
}
i.icon.shower:before {
  content: "\f2cc";
}
i.icon.sign.language:before {
  content: "\f2a7";
}
i.icon.signal:before {
  content: "\f012";
}
i.icon.simplybuilt:before {
  content: "\f215";
}
i.icon.sistrix:before {
  content: "\f3ee";
}
i.icon.sitemap:before {
  content: "\f0e8";
}
i.icon.skyatlas:before {
  content: "\f216";
}
i.icon.skype:before {
  content: "\f17e";
}
i.icon.slack:before {
  content: "\f198";
}
i.icon.slack.hash:before {
  content: "\f3ef";
}
i.icon.sliders.horizontal:before {
  content: "\f1de";
}
i.icon.slideshare:before {
  content: "\f1e7";
}
i.icon.smile:before {
  content: "\f118";
}
i.icon.snapchat:before {
  content: "\f2ab";
}
i.icon.snapchat.ghost:before {
  content: "\f2ac";
}
i.icon.snapchat.square:before {
  content: "\f2ad";
}
i.icon.snowflake:before {
  content: "\f2dc";
}
i.icon.sort:before {
  content: "\f0dc";
}
i.icon.sort.alphabet.down:before {
  content: "\f15d";
}
i.icon.sort.alphabet.up:before {
  content: "\f15e";
}
i.icon.sort.amount.down:before {
  content: "\f160";
}
i.icon.sort.amount.up:before {
  content: "\f161";
}
i.icon.sort.down:before {
  content: "\f0dd";
}
i.icon.sort.numeric.down:before {
  content: "\f162";
}
i.icon.sort.numeric.up:before {
  content: "\f163";
}
i.icon.sort.up:before {
  content: "\f0de";
}
i.icon.soundcloud:before {
  content: "\f1be";
}
i.icon.space.shuttle:before {
  content: "\f197";
}
i.icon.speakap:before {
  content: "\f3f3";
}
i.icon.spinner:before {
  content: "\f110";
}
i.icon.spotify:before {
  content: "\f1bc";
}
i.icon.square:before {
  content: "\f0c8";
}
i.icon.square.full:before {
  content: "\f45c";
}
i.icon.stack.exchange:before {
  content: "\f18d";
}
i.icon.stack.overflow:before {
  content: "\f16c";
}
i.icon.star:before {
  content: "\f005";
}
i.icon.star.half:before {
  content: "\f089";
}
i.icon.staylinked:before {
  content: "\f3f5";
}
i.icon.steam:before {
  content: "\f1b6";
}
i.icon.steam.square:before {
  content: "\f1b7";
}
i.icon.steam.symbol:before {
  content: "\f3f6";
}
i.icon.step.backward:before {
  content: "\f048";
}
i.icon.step.forward:before {
  content: "\f051";
}
i.icon.stethoscope:before {
  content: "\f0f1";
}
i.icon.sticker.mule:before {
  content: "\f3f7";
}
i.icon.sticky.note:before {
  content: "\f249";
}
i.icon.stop:before {
  content: "\f04d";
}
i.icon.stop.circle:before {
  content: "\f28d";
}
i.icon.stopwatch:before {
  content: "\f2f2";
}
i.icon.strava:before {
  content: "\f428";
}
i.icon.street.view:before {
  content: "\f21d";
}
i.icon.strikethrough:before {
  content: "\f0cc";
}
i.icon.stripe:before {
  content: "\f429";
}
i.icon.stripe.s:before {
  content: "\f42a";
}
i.icon.studiovinari:before {
  content: "\f3f8";
}
i.icon.stumbleupon:before {
  content: "\f1a4";
}
i.icon.stumbleupon.circle:before {
  content: "\f1a3";
}
i.icon.subscript:before {
  content: "\f12c";
}
i.icon.subway:before {
  content: "\f239";
}
i.icon.suitcase:before {
  content: "\f0f2";
}
i.icon.sun:before {
  content: "\f185";
}
i.icon.superpowers:before {
  content: "\f2dd";
}
i.icon.superscript:before {
  content: "\f12b";
}
i.icon.supple:before {
  content: "\f3f9";
}
i.icon.sync:before {
  content: "\f021";
}
i.icon.sync.alternate:before {
  content: "\f2f1";
}
i.icon.syringe:before {
  content: "\f48e";
}
i.icon.table:before {
  content: "\f0ce";
}
i.icon.table.tennis:before {
  content: "\f45d";
}
i.icon.tablet:before {
  content: "\f10a";
}
i.icon.tablet.alternate:before {
  content: "\f3fa";
}
i.icon.tachometer.alternate:before {
  content: "\f3fd";
}
i.icon.tag:before {
  content: "\f02b";
}
i.icon.tags:before {
  content: "\f02c";
}
i.icon.tasks:before {
  content: "\f0ae";
}
i.icon.taxi:before {
  content: "\f1ba";
}
i.icon.telegram:before {
  content: "\f2c6";
}
i.icon.telegram.plane:before {
  content: "\f3fe";
}
i.icon.tencent.weibo:before {
  content: "\f1d5";
}
i.icon.terminal:before {
  content: "\f120";
}
i.icon.text.height:before {
  content: "\f034";
}
i.icon.text.width:before {
  content: "\f035";
}
i.icon.th:before {
  content: "\f00a";
}
i.icon.th.large:before {
  content: "\f009";
}
i.icon.th.list:before {
  content: "\f00b";
}
i.icon.themeisle:before {
  content: "\f2b2";
}
i.icon.thermometer:before {
  content: "\f491";
}
i.icon.thermometer.empty:before {
  content: "\f2cb";
}
i.icon.thermometer.full:before {
  content: "\f2c7";
}
i.icon.thermometer.half:before {
  content: "\f2c9";
}
i.icon.thermometer.quarter:before {
  content: "\f2ca";
}
i.icon.thermometer.three.quarters:before {
  content: "\f2c8";
}
i.icon.thumbs.down:before {
  content: "\f165";
}
i.icon.thumbs.up:before {
  content: "\f164";
}
i.icon.thumbtack:before {
  content: "\f08d";
}
i.icon.ticket.alternate:before {
  content: "\f3ff";
}
i.icon.times:before {
  content: "\f00d";
}
i.icon.times.circle:before {
  content: "\f057";
}
i.icon.tint:before {
  content: "\f043";
}
i.icon.toggle.off:before {
  content: "\f204";
}
i.icon.toggle.on:before {
  content: "\f205";
}
i.icon.trademark:before {
  content: "\f25c";
}
i.icon.train:before {
  content: "\f238";
}
i.icon.transgender:before {
  content: "\f224";
}
i.icon.transgender.alternate:before {
  content: "\f225";
}
i.icon.trash:before {
  content: "\f1f8";
}
i.icon.trash.alternate:before {
  content: "\f2ed";
}
i.icon.tree:before {
  content: "\f1bb";
}
i.icon.trello:before {
  content: "\f181";
}
i.icon.tripadvisor:before {
  content: "\f262";
}
i.icon.trophy:before {
  content: "\f091";
}
i.icon.truck:before {
  content: "\f0d1";
}
i.icon.tty:before {
  content: "\f1e4";
}
i.icon.tumblr:before {
  content: "\f173";
}
i.icon.tumblr.square:before {
  content: "\f174";
}
i.icon.tv:before {
  content: "\f26c";
}
i.icon.twitch:before {
  content: "\f1e8";
}
i.icon.twitter:before {
  content: "\f099";
}
i.icon.twitter.square:before {
  content: "\f081";
}
i.icon.typo3:before {
  content: "\f42b";
}
i.icon.uber:before {
  content: "\f402";
}
i.icon.uikit:before {
  content: "\f403";
}
i.icon.umbrella:before {
  content: "\f0e9";
}
i.icon.underline:before {
  content: "\f0cd";
}
i.icon.undo:before {
  content: "\f0e2";
}
i.icon.undo.alternate:before {
  content: "\f2ea";
}
i.icon.uniregistry:before {
  content: "\f404";
}
i.icon.universal.access:before {
  content: "\f29a";
}
i.icon.university:before {
  content: "\f19c";
}
i.icon.unlink:before {
  content: "\f127";
}
i.icon.unlock:before {
  content: "\f09c";
}
i.icon.unlock.alternate:before {
  content: "\f13e";
}
i.icon.untappd:before {
  content: "\f405";
}
i.icon.upload:before {
  content: "\f093";
}
i.icon.usb:before {
  content: "\f287";
}
i.icon.user:before {
  content: "\f007";
}
i.icon.user.circle:before {
  content: "\f2bd";
}
i.icon.user.md:before {
  content: "\f0f0";
}
i.icon.user.plus:before {
  content: "\f234";
}
i.icon.user.secret:before {
  content: "\f21b";
}
i.icon.user.times:before {
  content: "\f235";
}
i.icon.users:before {
  content: "\f0c0";
}
i.icon.ussunnah:before {
  content: "\f407";
}
i.icon.utensil.spoon:before {
  content: "\f2e5";
}
i.icon.utensils:before {
  content: "\f2e7";
}
i.icon.vaadin:before {
  content: "\f408";
}
i.icon.venus:before {
  content: "\f221";
}
i.icon.venus.double:before {
  content: "\f226";
}
i.icon.venus.mars:before {
  content: "\f228";
}
i.icon.viacoin:before {
  content: "\f237";
}
i.icon.viadeo:before {
  content: "\f2a9";
}
i.icon.viadeo.square:before {
  content: "\f2aa";
}
i.icon.viber:before {
  content: "\f409";
}
i.icon.video:before {
  content: "\f03d";
}
i.icon.vimeo:before {
  content: "\f40a";
}
i.icon.vimeo.square:before {
  content: "\f194";
}
i.icon.vimeo.v:before {
  content: "\f27d";
}
i.icon.vine:before {
  content: "\f1ca";
}
i.icon.vk:before {
  content: "\f189";
}
i.icon.vnv:before {
  content: "\f40b";
}
i.icon.volleyball.ball:before {
  content: "\f45f";
}
i.icon.volume.down:before {
  content: "\f027";
}
i.icon.volume.off:before {
  content: "\f026";
}
i.icon.volume.up:before {
  content: "\f028";
}
i.icon.vuejs:before {
  content: "\f41f";
}
i.icon.warehouse:before {
  content: "\f494";
}
i.icon.weibo:before {
  content: "\f18a";
}
i.icon.weight:before {
  content: "\f496";
}
i.icon.weixin:before {
  content: "\f1d7";
}
i.icon.whatsapp:before {
  content: "\f232";
}
i.icon.whatsapp.square:before {
  content: "\f40c";
}
i.icon.wheelchair:before {
  content: "\f193";
}
i.icon.whmcs:before {
  content: "\f40d";
}
i.icon.wifi:before {
  content: "\f1eb";
}
i.icon.wikipedia.w:before {
  content: "\f266";
}
i.icon.window.close:before {
  content: "\f410";
}
i.icon.window.maximize:before {
  content: "\f2d0";
}
i.icon.window.minimize:before {
  content: "\f2d1";
}
i.icon.window.restore:before {
  content: "\f2d2";
}
i.icon.windows:before {
  content: "\f17a";
}
i.icon.won.sign:before {
  content: "\f159";
}
i.icon.wordpress:before {
  content: "\f19a";
}
i.icon.wordpress.simple:before {
  content: "\f411";
}
i.icon.wpbeginner:before {
  content: "\f297";
}
i.icon.wpexplorer:before {
  content: "\f2de";
}
i.icon.wpforms:before {
  content: "\f298";
}
i.icon.wrench:before {
  content: "\f0ad";
}
i.icon.xbox:before {
  content: "\f412";
}
i.icon.xing:before {
  content: "\f168";
}
i.icon.xing.square:before {
  content: "\f169";
}
i.icon.y.combinator:before {
  content: "\f23b";
}
i.icon.yahoo:before {
  content: "\f19e";
}
i.icon.yandex:before {
  content: "\f413";
}
i.icon.yandex.international:before {
  content: "\f414";
}
i.icon.yelp:before {
  content: "\f1e9";
}
i.icon.yen.sign:before {
  content: "\f157";
}
i.icon.yoast:before {
  content: "\f2b1";
}
i.icon.youtube:before {
  content: "\f167";
}
i.icon.youtube.square:before {
  content: "\f431";
}
/* Aliases */
i.icon.chess.rock:before {
  content: "\f447";
}
i.icon.ordered.list:before {
  content: "\f0cb";
}
i.icon.unordered.list:before {
  content: "\f0ca";
}
i.icon.user.doctor:before {
  content: "\f0f0";
}
i.icon.shield:before {
  content: "\f3ed";
}
i.icon.puzzle:before {
  content: "\f12e";
}
i.icon.credit.card.amazon.pay:before {
  content: "\f42d";
}
i.icon.credit.card.american.express:before {
  content: "\f1f3";
}
i.icon.credit.card.diners.club:before {
  content: "\f24c";
}
i.icon.credit.card.discover:before {
  content: "\f1f2";
}
i.icon.credit.card.jcb:before {
  content: "\f24b";
}
i.icon.credit.card.mastercard:before {
  content: "\f1f1";
}
i.icon.credit.card.paypal:before {
  content: "\f1f4";
}
i.icon.credit.card.stripe:before {
  content: "\f1f5";
}
i.icon.credit.card.visa:before {
  content: "\f1f0";
}
i.icon.add.circle:before {
  content: "\f055";
}
i.icon.add.square:before {
  content: "\f0fe";
}
i.icon.add.to.calendar:before {
  content: "\f271";
}
i.icon.add.to.cart:before {
  content: "\f217";
}
i.icon.add.user:before {
  content: "\f234";
}
i.icon.add:before {
  content: "\f067";
}
i.icon.alarm.mute:before {
  content: "\f1f6";
}
i.icon.alarm:before {
  content: "\f0f3";
}
i.icon.ald:before {
  content: "\f2a2";
}
i.icon.als:before {
  content: "\f2a2";
}
i.icon.american.express.card:before {
  content: "\f1f3";
}
i.icon.american.express:before {
  content: "\f1f3";
}
i.icon.amex:before {
  content: "\f1f3";
}
i.icon.announcement:before {
  content: "\f0a1";
}
i.icon.area.chart:before {
  content: "\f1fe";
}
i.icon.area.graph:before {
  content: "\f1fe";
}
i.icon.arrow.down.cart:before {
  content: "\f218";
}
i.icon.asexual:before {
  content: "\f22d";
}
i.icon.asl.interpreting:before {
  content: "\f2a3";
}
i.icon.asl:before {
  content: "\f2a3";
}
i.icon.assistive.listening.devices:before {
  content: "\f2a2";
}
i.icon.attach:before {
  content: "\f0c6";
}
i.icon.attention:before {
  content: "\f06a";
}
i.icon.balance:before {
  content: "\f24e";
}
i.icon.bar:before {
  content: "\f0fc";
}
i.icon.bathtub:before {
  content: "\f2cd";
}
i.icon.battery.four:before {
  content: "\f240";
}
i.icon.battery.high:before {
  content: "\f241";
}
i.icon.battery.low:before {
  content: "\f243";
}
i.icon.battery.medium:before {
  content: "\f242";
}
i.icon.battery.one:before {
  content: "\f243";
}
i.icon.battery.three:before {
  content: "\f241";
}
i.icon.battery.two:before {
  content: "\f242";
}
i.icon.battery.zero:before {
  content: "\f244";
}
i.icon.birthday:before {
  content: "\f1fd";
}
i.icon.block.layout:before {
  content: "\f009";
}
i.icon.bluetooth.alternative:before {
  content: "\f294";
}
i.icon.broken.chain:before {
  content: "\f127";
}
i.icon.browser:before {
  content: "\f022";
}
i.icon.call.square:before {
  content: "\f098";
}
i.icon.call:before {
  content: "\f095";
}
i.icon.cancel:before {
  content: "\f00d";
}
i.icon.cart:before {
  content: "\f07a";
}
i.icon.cc:before {
  content: "\f20a";
}
i.icon.chain:before {
  content: "\f0c1";
}
i.icon.chat:before {
  content: "\f075";
}
i.icon.checked.calendar:before {
  content: "\f274";
}
i.icon.checkmark:before {
  content: "\f00c";
}
i.icon.circle.notched:before {
  content: "\f1ce";
}
i.icon.close:before {
  content: "\f00d";
}
i.icon.cny:before {
  content: "\f157";
}
i.icon.cocktail:before {
  content: "\f000";
}
i.icon.commenting:before {
  content: "\f27a";
}
i.icon.computer:before {
  content: "\f108";
}
i.icon.configure:before {
  content: "\f0ad";
}
i.icon.content:before {
  content: "\f0c9";
}
i.icon.deafness:before {
  content: "\f2a4";
}
i.icon.delete.calendar:before {
  content: "\f273";
}
i.icon.delete:before {
  content: "\f00d";
}
i.icon.detective:before {
  content: "\f21b";
}
i.icon.diners.club.card:before {
  content: "\f24c";
}
i.icon.diners.club:before {
  content: "\f24c";
}
i.icon.discover.card:before {
  content: "\f1f2";
}
i.icon.discover:before {
  content: "\f1f2";
}
i.icon.discussions:before {
  content: "\f086";
}
i.icon.doctor:before {
  content: "\f0f0";
}
i.icon.dollar:before {
  content: "\f155";
}
i.icon.dont:before {
  content: "\f05e";
}
i.icon.dribble:before {
  content: "\f17d";
}
i.icon.drivers.license:before {
  content: "\f2c2";
}
i.icon.dropdown:before {
  content: "\f0d7";
}
i.icon.eercast:before {
  content: "\f2da";
}
i.icon.emergency:before {
  content: "\f0f9";
}
i.icon.envira.gallery:before {
  content: "\f299";
}
i.icon.erase:before {
  content: "\f12d";
}
i.icon.eur:before {
  content: "\f153";
}
i.icon.euro:before {
  content: "\f153";
}
i.icon.eyedropper:before {
  content: "\f1fb";
}
i.icon.fa:before {
  content: "\f2b4";
}
i.icon.factory:before {
  content: "\f275";
}
i.icon.favorite:before {
  content: "\f005";
}
i.icon.feed:before {
  content: "\f09e";
}
i.icon.female.homosexual:before {
  content: "\f226";
}
i.icon.file.text:before {
  content: "\f15c";
}
i.icon.find:before {
  content: "\f1e5";
}
i.icon.first.aid:before {
  content: "\f0fa";
}
i.icon.five.hundred.pixels:before {
  content: "\f26e";
}
i.icon.fork:before {
  content: "\f126";
}
i.icon.game:before {
  content: "\f11b";
}
i.icon.gay:before {
  content: "\f227";
}
i.icon.gbp:before {
  content: "\f154";
}
i.icon.gittip:before {
  content: "\f184";
}
i.icon.google.plus.circle:before {
  content: "\f2b3";
}
i.icon.google.plus.official:before {
  content: "\f2b3";
}
i.icon.grab:before {
  content: "\f255";
}
i.icon.graduation:before {
  content: "\f19d";
}
i.icon.grid.layout:before {
  content: "\f00a";
}
i.icon.group:before {
  content: "\f0c0";
}
i.icon.h:before {
  content: "\f0fd";
}
i.icon.hand.victory:before {
  content: "\f25b";
}
i.icon.handicap:before {
  content: "\f193";
}
i.icon.hard.of.hearing:before {
  content: "\f2a4";
}
i.icon.header:before {
  content: "\f1dc";
}
i.icon.help.circle:before {
  content: "\f059";
}
i.icon.help:before {
  content: "\f128";
}
i.icon.heterosexual:before {
  content: "\f228";
}
i.icon.hide:before {
  content: "\f070";
}
i.icon.hotel:before {
  content: "\f236";
}
i.icon.hourglass.four:before {
  content: "\f254";
}
i.icon.hourglass.full:before {
  content: "\f254";
}
i.icon.hourglass.one:before {
  content: "\f251";
}
i.icon.hourglass.three:before {
  content: "\f253";
}
i.icon.hourglass.two:before {
  content: "\f252";
}
i.icon.idea:before {
  content: "\f0eb";
}
i.icon.ils:before {
  content: "\f20b";
}
i.icon.in-cart:before {
  content: "\f218";
}
i.icon.inr:before {
  content: "\f156";
}
i.icon.intergender:before {
  content: "\f224";
}
i.icon.intersex:before {
  content: "\f224";
}
i.icon.japan.credit.bureau.card:before {
  content: "\f24b";
}
i.icon.japan.credit.bureau:before {
  content: "\f24b";
}
i.icon.jcb:before {
  content: "\f24b";
}
i.icon.jpy:before {
  content: "\f157";
}
i.icon.krw:before {
  content: "\f159";
}
i.icon.lab:before {
  content: "\f0c3";
}
i.icon.law:before {
  content: "\f24e";
}
i.icon.legal:before {
  content: "\f0e3";
}
i.icon.lesbian:before {
  content: "\f226";
}
i.icon.lightning:before {
  content: "\f0e7";
}
i.icon.like:before {
  content: "\f004";
}
i.icon.line.graph:before {
  content: "\f201";
}
i.icon.linkedin.square:before {
  content: "\f08c";
}
i.icon.linkify:before {
  content: "\f0c1";
}
i.icon.lira:before {
  content: "\f195";
}
i.icon.list.layout:before {
  content: "\f00b";
}
i.icon.magnify:before {
  content: "\f00e";
}
i.icon.mail.forward:before {
  content: "\f064";
}
i.icon.mail.square:before {
  content: "\f199";
}
i.icon.mail:before {
  content: "\f0e0";
}
i.icon.male.homosexual:before {
  content: "\f227";
}
i.icon.man:before {
  content: "\f222";
}
i.icon.marker:before {
  content: "\f041";
}
i.icon.mars.alternate:before {
  content: "\f229";
}
i.icon.mars.horizontal:before {
  content: "\f22b";
}
i.icon.mars.vertical:before {
  content: "\f22a";
}
i.icon.mastercard.card:before {
  content: "\f1f1";
}
i.icon.mastercard:before {
  content: "\f1f1";
}
i.icon.microsoft.edge:before {
  content: "\f282";
}
i.icon.military:before {
  content: "\f0fb";
}
i.icon.ms.edge:before {
  content: "\f282";
}
i.icon.mute:before {
  content: "\f131";
}
i.icon.new.pied.piper:before {
  content: "\f2ae";
}
i.icon.non.binary.transgender:before {
  content: "\f223";
}
i.icon.numbered.list:before {
  content: "\f0cb";
}
i.icon.optinmonster:before {
  content: "\f23c";
}
i.icon.options:before {
  content: "\f1de";
}
i.icon.other.gender.horizontal:before {
  content: "\f22b";
}
i.icon.other.gender.vertical:before {
  content: "\f22a";
}
i.icon.other.gender:before {
  content: "\f229";
}
i.icon.payment:before {
  content: "\f09d";
}
i.icon.paypal.card:before {
  content: "\f1f4";
}
i.icon.pencil.square:before {
  content: "\f14b";
}
i.icon.photo:before {
  content: "\f030";
}
i.icon.picture:before {
  content: "\f03e";
}
i.icon.pie.chart:before {
  content: "\f200";
}
i.icon.pie.graph:before {
  content: "\f200";
}
i.icon.pied.piper.hat:before {
  content: "\f2ae";
}
i.icon.pin:before {
  content: "\f08d";
}
i.icon.plus.cart:before {
  content: "\f217";
}
i.icon.pocket:before {
  content: "\f265";
}
i.icon.point:before {
  content: "\f041";
}
i.icon.pointing.down:before {
  content: "\f0a7";
}
i.icon.pointing.left:before {
  content: "\f0a5";
}
i.icon.pointing.right:before {
  content: "\f0a4";
}
i.icon.pointing.up:before {
  content: "\f0a6";
}
i.icon.pound:before {
  content: "\f154";
}
i.icon.power.cord:before {
  content: "\f1e6";
}
i.icon.power:before {
  content: "\f011";
}
i.icon.privacy:before {
  content: "\f084";
}
i.icon.r.circle:before {
  content: "\f25d";
}
i.icon.rain:before {
  content: "\f0e9";
}
i.icon.record:before {
  content: "\f03d";
}
i.icon.refresh:before {
  content: "\f021";
}
i.icon.remove.circle:before {
  content: "\f057";
}
i.icon.remove.from.calendar:before {
  content: "\f272";
}
i.icon.remove.user:before {
  content: "\f235";
}
i.icon.remove:before {
  content: "\f00d";
}
i.icon.repeat:before {
  content: "\f01e";
}
i.icon.rmb:before {
  content: "\f157";
}
i.icon.rouble:before {
  content: "\f158";
}
i.icon.rub:before {
  content: "\f158";
}
i.icon.ruble:before {
  content: "\f158";
}
i.icon.rupee:before {
  content: "\f156";
}
i.icon.s15:before {
  content: "\f2cd";
}
i.icon.selected.radio:before {
  content: "\f192";
}
i.icon.send:before {
  content: "\f1d8";
}
i.icon.setting:before {
  content: "\f013";
}
i.icon.settings:before {
  content: "\f085";
}
i.icon.shekel:before {
  content: "\f20b";
}
i.icon.sheqel:before {
  content: "\f20b";
}
i.icon.shipping:before {
  content: "\f0d1";
}
i.icon.shop:before {
  content: "\f07a";
}
i.icon.shuffle:before {
  content: "\f074";
}
i.icon.shutdown:before {
  content: "\f011";
}
i.icon.sidebar:before {
  content: "\f0c9";
}
i.icon.signing:before {
  content: "\f2a7";
}
i.icon.signup:before {
  content: "\f044";
}
i.icon.sliders:before {
  content: "\f1de";
}
i.icon.soccer:before {
  content: "\f1e3";
}
i.icon.sort.alphabet.ascending:before {
  content: "\f15d";
}
i.icon.sort.alphabet.descending:before {
  content: "\f15e";
}
i.icon.sort.ascending:before {
  content: "\f0de";
}
i.icon.sort.content.ascending:before {
  content: "\f160";
}
i.icon.sort.content.descending:before {
  content: "\f161";
}
i.icon.sort.descending:before {
  content: "\f0dd";
}
i.icon.sort.numeric.ascending:before {
  content: "\f162";
}
i.icon.sort.numeric.descending:before {
  content: "\f163";
}
i.icon.sound:before {
  content: "\f025";
}
i.icon.spy:before {
  content: "\f21b";
}
i.icon.stripe.card:before {
  content: "\f1f5";
}
i.icon.student:before {
  content: "\f19d";
}
i.icon.talk:before {
  content: "\f27a";
}
i.icon.target:before {
  content: "\f140";
}
i.icon.teletype:before {
  content: "\f1e4";
}
i.icon.television:before {
  content: "\f26c";
}
i.icon.text.cursor:before {
  content: "\f246";
}
i.icon.text.telephone:before {
  content: "\f1e4";
}
i.icon.theme.isle:before {
  content: "\f2b2";
}
i.icon.theme:before {
  content: "\f043";
}
i.icon.thermometer:before {
  content: "\f2c7";
}
i.icon.thumb.tack:before {
  content: "\f08d";
}
i.icon.time:before {
  content: "\f017";
}
i.icon.tm:before {
  content: "\f25c";
}
i.icon.toggle.down:before {
  content: "\f150";
}
i.icon.toggle.left:before {
  content: "\f191";
}
i.icon.toggle.right:before {
  content: "\f152";
}
i.icon.toggle.up:before {
  content: "\f151";
}
i.icon.translate:before {
  content: "\f1ab";
}
i.icon.travel:before {
  content: "\f0b1";
}
i.icon.treatment:before {
  content: "\f0f1";
}
i.icon.triangle.down:before {
  content: "\f0d7";
}
i.icon.triangle.left:before {
  content: "\f0d9";
}
i.icon.triangle.right:before {
  content: "\f0da";
}
i.icon.triangle.up:before {
  content: "\f0d8";
}
i.icon.try:before {
  content: "\f195";
}
i.icon.unhide:before {
  content: "\f06e";
}
i.icon.unlinkify:before {
  content: "\f127";
}
i.icon.unmute:before {
  content: "\f130";
}
i.icon.usd:before {
  content: "\f155";
}
i.icon.user.cancel:before {
  content: "\f235";
}
i.icon.user.close:before {
  content: "\f235";
}
i.icon.user.delete:before {
  content: "\f235";
}
i.icon.user.x:before {
  content: "\f235";
}
i.icon.vcard:before {
  content: "\f2bb";
}
i.icon.video.camera:before {
  content: "\f03d";
}
i.icon.video.play:before {
  content: "\f144";
}
i.icon.visa.card:before {
  content: "\f1f0";
}
i.icon.visa:before {
  content: "\f1f0";
}
i.icon.volume.control.phone:before {
  content: "\f2a0";
}
i.icon.wait:before {
  content: "\f017";
}
i.icon.warning.circle:before {
  content: "\f06a";
}
i.icon.warning.sign:before {
  content: "\f071";
}
i.icon.warning:before {
  content: "\f12a";
}
i.icon.wechat:before {
  content: "\f1d7";
}
i.icon.wi-fi:before {
  content: "\f1eb";
}
i.icon.wikipedia:before {
  content: "\f266";
}
i.icon.winner:before {
  content: "\f091";
}
i.icon.wizard:before {
  content: "\f0d0";
}
i.icon.woman:before {
  content: "\f221";
}
i.icon.won:before {
  content: "\f159";
}
i.icon.wordpress.beginner:before {
  content: "\f297";
}
i.icon.wordpress.forms:before {
  content: "\f298";
}
i.icon.world:before {
  content: "\f0ac";
}
i.icon.write.square:before {
  content: "\f14b";
}
i.icon.x:before {
  content: "\f00d";
}
i.icon.yc:before {
  content: "\f23b";
}
i.icon.ycombinator:before {
  content: "\f23b";
}
i.icon.yen:before {
  content: "\f157";
}
i.icon.zip:before {
  content: "\f187";
}
i.icon.zoom-in:before {
  content: "\f00e";
}
i.icon.zoom-out:before {
  content: "\f010";
}
i.icon.zoom:before {
  content: "\f00e";
}
i.icon.bitbucket.square:before {
  content: "\f171";
}
i.icon.checkmark.box:before {
  content: "\f14a";
}
i.icon.circle.thin:before {
  content: "\f111";
}
i.icon.cloud.download:before {
  content: "\f381";
}
i.icon.cloud.upload:before {
  content: "\f382";
}
i.icon.compose:before {
  content: "\f303";
}
i.icon.conversation:before {
  content: "\f086";
}
i.icon.credit.card.alternative:before {
  content: "\f09d";
}
i.icon.currency:before {
  content: "\f3d1";
}
i.icon.dashboard:before {
  content: "\f3fd";
}
i.icon.diamond:before {
  content: "\f3a5";
}
i.icon.disk:before {
  content: "\f0a0";
}
i.icon.exchange:before {
  content: "\f362";
}
i.icon.external.share:before {
  content: "\f14d";
}
i.icon.external.square:before {
  content: "\f360";
}
i.icon.external:before {
  content: "\f35d";
}
i.icon.facebook.official:before {
  content: "\f082";
}
i.icon.food:before {
  content: "\f2e7";
}
i.icon.hourglass.zero:before {
  content: "\f253";
}
i.icon.level.down:before {
  content: "\f3be";
}
i.icon.level.up:before {
  content: "\f3bf";
}
i.icon.logout:before {
  content: "\f2f5";
}
i.icon.meanpath:before {
  content: "\f0c8";
}
i.icon.money:before {
  content: "\f3d1";
}
i.icon.move:before {
  content: "\f0b2";
}
i.icon.pencil:before {
  content: "\f303";
}
i.icon.protect:before {
  content: "\f023";
}
i.icon.radio:before {
  content: "\f192";
}
i.icon.remove.bookmark:before {
  content: "\f02e";
}
i.icon.resize.horizontal:before {
  content: "\f337";
}
i.icon.resize.vertical:before {
  content: "\f338";
}
i.icon.sign-in:before {
  content: "\f2f6";
}
i.icon.sign-out:before {
  content: "\f2f5";
}
i.icon.spoon:before {
  content: "\f2e5";
}
i.icon.star.half.empty:before {
  content: "\f089";
}
i.icon.star.half.full:before {
  content: "\f089";
}
i.icon.ticket:before {
  content: "\f3ff";
}
i.icon.times.rectangle:before {
  content: "\f410";
}
i.icon.write:before {
  content: "\f303";
}
i.icon.youtube.play:before {
  content: "\f167";
}
/*******************************
        Outline Icons
*******************************/
/* Outline Icon */
/* Load & Define Icon Font */
@font-face {
  font-family: 'outline-icons';
  src: url(/static/dist/fonts/outline-icons.752905f.eot);
  src: url(/static/dist/fonts/outline-icons.752905f.eot?#iefix) format('embedded-opentype'), url(/static/dist/fonts/outline-icons.687a499.woff2) format('woff2'), url(/static/dist/fonts/outline-icons.ddae9b1.woff) format('woff'), url(/static/dist/fonts/outline-icons.5367103.ttf) format('truetype'), url(/static/dist/img/outline-icons.9c4845b.svg#icons) format('svg');
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-decoration: inherit;
  text-transform: none;
}
i.icon.outline {
  font-family: 'outline-icons';
}
/* Icon Definitions */
i.icon.address.book.outline:before {
  content: "\f2b9";
}
i.icon.address.card.outline:before {
  content: "\f2bb";
}
i.icon.arrow.alternate.circle.down.outline:before {
  content: "\f358";
}
i.icon.arrow.alternate.circle.left.outline:before {
  content: "\f359";
}
i.icon.arrow.alternate.circle.right.outline:before {
  content: "\f35a";
}
i.icon.arrow.alternate.circle.up.outline:before {
  content: "\f35b";
}
i.icon.bell.outline:before {
  content: "\f0f3";
}
i.icon.bell.slash.outline:before {
  content: "\f1f6";
}
i.icon.bookmark.outline:before {
  content: "\f02e";
}
i.icon.building.outline:before {
  content: "\f1ad";
}
i.icon.calendar.outline:before {
  content: "\f133";
}
i.icon.calendar.alternate.outline:before {
  content: "\f073";
}
i.icon.calendar.check.outline:before {
  content: "\f274";
}
i.icon.calendar.minus.outline:before {
  content: "\f272";
}
i.icon.calendar.plus.outline:before {
  content: "\f271";
}
i.icon.calendar.times.outline:before {
  content: "\f273";
}
i.icon.caret.square.down.outline:before {
  content: "\f150";
}
i.icon.caret.square.left.outline:before {
  content: "\f191";
}
i.icon.caret.square.right.outline:before {
  content: "\f152";
}
i.icon.caret.square.up.outline:before {
  content: "\f151";
}
i.icon.chart.bar.outline:before {
  content: "\f080";
}
i.icon.check.circle.outline:before {
  content: "\f058";
}
i.icon.check.square.outline:before {
  content: "\f14a";
}
i.icon.circle.outline:before {
  content: "\f111";
}
i.icon.clipboard.outline:before {
  content: "\f328";
}
i.icon.clock.outline:before {
  content: "\f017";
}
i.icon.clone.outline:before {
  content: "\f24d";
}
i.icon.closed.captioning.outline:before {
  content: "\f20a";
}
i.icon.comment.outline:before {
  content: "\f075";
}
i.icon.comment.alternate.outline:before {
  content: "\f27a";
}
i.icon.comments.outline:before {
  content: "\f086";
}
i.icon.compass.outline:before {
  content: "\f14e";
}
i.icon.copy.outline:before {
  content: "\f0c5";
}
i.icon.copyright.outline:before {
  content: "\f1f9";
}
i.icon.credit.card.outline:before {
  content: "\f09d";
}
i.icon.dot.circle.outline:before {
  content: "\f192";
}
i.icon.edit.outline:before {
  content: "\f044";
}
i.icon.envelope.outline:before {
  content: "\f0e0";
}
i.icon.envelope.open.outline:before {
  content: "\f2b6";
}
i.icon.eye.slash.outline:before {
  content: "\f070";
}
i.icon.file.outline:before {
  content: "\f15b";
}
i.icon.file.alternate.outline:before {
  content: "\f15c";
}
i.icon.file.archive.outline:before {
  content: "\f1c6";
}
i.icon.file.audio.outline:before {
  content: "\f1c7";
}
i.icon.file.code.outline:before {
  content: "\f1c9";
}
i.icon.file.excel.outline:before {
  content: "\f1c3";
}
i.icon.file.image.outline:before {
  content: "\f1c5";
}
i.icon.file.pdf.outline:before {
  content: "\f1c1";
}
i.icon.file.powerpoint.outline:before {
  content: "\f1c4";
}
i.icon.file.video.outline:before {
  content: "\f1c8";
}
i.icon.file.word.outline:before {
  content: "\f1c2";
}
i.icon.flag.outline:before {
  content: "\f024";
}
i.icon.folder.outline:before {
  content: "\f07b";
}
i.icon.folder.open.outline:before {
  content: "\f07c";
}
i.icon.frown.outline:before {
  content: "\f119";
}
i.icon.futbol.outline:before {
  content: "\f1e3";
}
i.icon.gem.outline:before {
  content: "\f3a5";
}
i.icon.hand.lizard.outline:before {
  content: "\f258";
}
i.icon.hand.paper.outline:before {
  content: "\f256";
}
i.icon.hand.peace.outline:before {
  content: "\f25b";
}
i.icon.hand.point.down.outline:before {
  content: "\f0a7";
}
i.icon.hand.point.left.outline:before {
  content: "\f0a5";
}
i.icon.hand.point.right.outline:before {
  content: "\f0a4";
}
i.icon.hand.point.up.outline:before {
  content: "\f0a6";
}
i.icon.hand.pointer.outline:before {
  content: "\f25a";
}
i.icon.hand.rock.outline:before {
  content: "\f255";
}
i.icon.hand.scissors.outline:before {
  content: "\f257";
}
i.icon.hand.spock.outline:before {
  content: "\f259";
}
i.icon.handshake.outline:before {
  content: "\f2b5";
}
i.icon.hdd.outline:before {
  content: "\f0a0";
}
i.icon.heart.outline:before {
  content: "\f004";
}
i.icon.hospital.outline:before {
  content: "\f0f8";
}
i.icon.hourglass.outline:before {
  content: "\f254";
}
i.icon.id.badge.outline:before {
  content: "\f2c1";
}
i.icon.id.card.outline:before {
  content: "\f2c2";
}
i.icon.image.outline:before {
  content: "\f03e";
}
i.icon.images.outline:before {
  content: "\f302";
}
i.icon.keyboard.outline:before {
  content: "\f11c";
}
i.icon.lemon.outline:before {
  content: "\f094";
}
i.icon.life.ring.outline:before {
  content: "\f1cd";
}
i.icon.lightbulb.outline:before {
  content: "\f0eb";
}
i.icon.list.alternate.outline:before {
  content: "\f022";
}
i.icon.map.outline:before {
  content: "\f279";
}
i.icon.meh.outline:before {
  content: "\f11a";
}
i.icon.minus.square.outline:before {
  content: "\f146";
}
i.icon.money.bill.alternate.outline:before {
  content: "\f3d1";
}
i.icon.moon.outline:before {
  content: "\f186";
}
i.icon.newspaper.outline:before {
  content: "\f1ea";
}
i.icon.object.group.outline:before {
  content: "\f247";
}
i.icon.object.ungroup.outline:before {
  content: "\f248";
}
i.icon.paper.plane.outline:before {
  content: "\f1d8";
}
i.icon.pause.circle.outline:before {
  content: "\f28b";
}
i.icon.play.circle.outline:before {
  content: "\f144";
}
i.icon.plus.square.outline:before {
  content: "\f0fe";
}
i.icon.question.circle.outline:before {
  content: "\f059";
}
i.icon.registered.outline:before {
  content: "\f25d";
}
i.icon.save.outline:before {
  content: "\f0c7";
}
i.icon.share.square.outline:before {
  content: "\f14d";
}
i.icon.smile.outline:before {
  content: "\f118";
}
i.icon.snowflake.outline:before {
  content: "\f2dc";
}
i.icon.square.outline:before {
  content: "\f0c8";
}
i.icon.star.outline:before {
  content: "\f005";
}
i.icon.star.half.outline:before {
  content: "\f089";
}
i.icon.sticky.note.outline:before {
  content: "\f249";
}
i.icon.stop.circle.outline:before {
  content: "\f28d";
}
i.icon.sun.outline:before {
  content: "\f185";
}
i.icon.thumbs.down.outline:before {
  content: "\f165";
}
i.icon.thumbs.up.outline:before {
  content: "\f164";
}
i.icon.times.circle.outline:before {
  content: "\f057";
}
i.icon.trash.alternate.outline:before {
  content: "\f2ed";
}
i.icon.user.outline:before {
  content: "\f007";
}
i.icon.user.circle.outline:before {
  content: "\f2bd";
}
i.icon.window.close.outline:before {
  content: "\f410";
}
i.icon.window.maximize.outline:before {
  content: "\f2d0";
}
i.icon.window.minimize.outline:before {
  content: "\f2d1";
}
i.icon.window.restore.outline:before {
  content: "\f2d2";
}
/* Outline Aliases */
i.icon.disk.outline:before {
  content: "\f0a0";
}
i.icon.heart.empty,
i.icon.star.empty {
  font-family: 'outline-icons';
}
i.icon.heart.empty:before {
  content: "\f004";
}
i.icon.star.empty:before {
  content: "\f089";
}
/*******************************
           Brand Icons
*******************************/
/* Load & Define Brand Font */
@font-face {
  font-family: 'brand-icons';
  src: url(/static/dist/fonts/brand-icons.d68fa3e.eot);
  src: url(/static/dist/fonts/brand-icons.d68fa3e.eot?#iefix) format('embedded-opentype'), url(/static/dist/fonts/brand-icons.278156e.woff2) format('woff2'), url(/static/dist/fonts/brand-icons.cac87dc.woff) format('woff'), url(/static/dist/fonts/brand-icons.65a2fb6.ttf) format('truetype'), url(/static/dist/img/brand-icons.6729d29.svg#icons) format('svg');
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-decoration: inherit;
  text-transform: none;
}
/* Brand Icon Font Family */
i.icon.\35 00px,
i.icon.accessible.icon,
i.icon.accusoft,
i.icon.adn,
i.icon.adversal,
i.icon.affiliatetheme,
i.icon.algolia,
i.icon.amazon,
i.icon.amazon.pay,
i.icon.amilia,
i.icon.android,
i.icon.angellist,
i.icon.angrycreative,
i.icon.angular,
i.icon.app.store,
i.icon.app.store.ios,
i.icon.apper,
i.icon.apple,
i.icon.apple.pay,
i.icon.asymmetrik,
i.icon.audible,
i.icon.autoprefixer,
i.icon.avianex,
i.icon.aviato,
i.icon.aws,
i.icon.bandcamp,
i.icon.behance,
i.icon.behance.square,
i.icon.bimobject,
i.icon.bitbucket,
i.icon.bitcoin,
i.icon.bity,
i.icon.black.tie,
i.icon.blackberry,
i.icon.blogger,
i.icon.blogger.b,
i.icon.bluetooth,
i.icon.bluetooth.b,
i.icon.btc,
i.icon.buromobelexperte,
i.icon.buysellads,
i.icon.cc.amazon.pay,
i.icon.cc.amex,
i.icon.cc.apple.pay,
i.icon.cc.diners.club,
i.icon.cc.discover,
i.icon.cc.jcb,
i.icon.cc.mastercard,
i.icon.cc.paypal,
i.icon.cc.stripe,
i.icon.cc.visa,
i.icon.centercode,
i.icon.chrome,
i.icon.cloudscale,
i.icon.cloudsmith,
i.icon.cloudversify,
i.icon.codepen,
i.icon.codiepie,
i.icon.connectdevelop,
i.icon.contao,
i.icon.cpanel,
i.icon.creative.commons,
i.icon.css3,
i.icon.css3.alternate,
i.icon.cuttlefish,
i.icon.d.and.d,
i.icon.dashcube,
i.icon.delicious,
i.icon.deploydog,
i.icon.deskpro,
i.icon.deviantart,
i.icon.digg,
i.icon.digital.ocean,
i.icon.discord,
i.icon.discourse,
i.icon.dochub,
i.icon.docker,
i.icon.draft2digital,
i.icon.dribbble,
i.icon.dribbble.square,
i.icon.dropbox,
i.icon.drupal,
i.icon.dyalog,
i.icon.earlybirds,
i.icon.edge,
i.icon.elementor,
i.icon.ember,
i.icon.empire,
i.icon.envira,
i.icon.erlang,
i.icon.ethereum,
i.icon.etsy,
i.icon.expeditedssl,
i.icon.facebook,
i.icon.facebook.f,
i.icon.facebook.messenger,
i.icon.facebook.square,
i.icon.firefox,
i.icon.first.order,
i.icon.firstdraft,
i.icon.flickr,
i.icon.flipboard,
i.icon.fly,
i.icon.font.awesome,
i.icon.font.awesome.alternate,
i.icon.font.awesome.flag,
i.icon.fonticons,
i.icon.fonticons.fi,
i.icon.fort.awesome,
i.icon.fort.awesome.alternate,
i.icon.forumbee,
i.icon.foursquare,
i.icon.free.code.camp,
i.icon.freebsd,
i.icon.get.pocket,
i.icon.gg,
i.icon.gg.circle,
i.icon.git,
i.icon.git.square,
i.icon.github,
i.icon.github.alternate,
i.icon.github.square,
i.icon.gitkraken,
i.icon.gitlab,
i.icon.gitter,
i.icon.glide,
i.icon.glide.g,
i.icon.gofore,
i.icon.goodreads,
i.icon.goodreads.g,
i.icon.google,
i.icon.google.drive,
i.icon.google.play,
i.icon.google.plus,
i.icon.google.plus.g,
i.icon.google.plus.square,
i.icon.google.wallet,
i.icon.gratipay,
i.icon.grav,
i.icon.gripfire,
i.icon.grunt,
i.icon.gulp,
i.icon.hacker.news,
i.icon.hacker.news.square,
i.icon.hips,
i.icon.hire.a.helper,
i.icon.hooli,
i.icon.hotjar,
i.icon.houzz,
i.icon.html5,
i.icon.hubspot,
i.icon.imdb,
i.icon.instagram,
i.icon.internet.explorer,
i.icon.ioxhost,
i.icon.itunes,
i.icon.itunes.note,
i.icon.jenkins,
i.icon.joget,
i.icon.joomla,
i.icon.js,
i.icon.js.square,
i.icon.jsfiddle,
i.icon.keycdn,
i.icon.kickstarter,
i.icon.kickstarter.k,
i.icon.korvue,
i.icon.laravel,
i.icon.lastfm,
i.icon.lastfm.square,
i.icon.leanpub,
i.icon.less,
i.icon.linechat,
i.icon.linkedin,
i.icon.linkedin.alternate,
i.icon.linkedin.in,
i.icon.linode,
i.icon.linux,
i.icon.lyft,
i.icon.magento,
i.icon.maxcdn,
i.icon.medapps,
i.icon.medium,
i.icon.medium.m,
i.icon.medrt,
i.icon.meetup,
i.icon.microsoft,
i.icon.mix,
i.icon.mixcloud,
i.icon.mizuni,
i.icon.modx,
i.icon.monero,
i.icon.napster,
i.icon.nintendo.switch,
i.icon.node,
i.icon.node.js,
i.icon.npm,
i.icon.ns8,
i.icon.nutritionix,
i.icon.odnoklassniki,
i.icon.odnoklassniki.square,
i.icon.opencart,
i.icon.openid,
i.icon.opera,
i.icon.optin.monster,
i.icon.osi,
i.icon.page4,
i.icon.pagelines,
i.icon.palfed,
i.icon.patreon,
i.icon.paypal,
i.icon.periscope,
i.icon.phabricator,
i.icon.phoenix.framework,
i.icon.php,
i.icon.pied.piper,
i.icon.pied.piper.alternate,
i.icon.pied.piper.pp,
i.icon.pinterest,
i.icon.pinterest.p,
i.icon.pinterest.square,
i.icon.playstation,
i.icon.product.hunt,
i.icon.pushed,
i.icon.python,
i.icon.qq,
i.icon.quinscape,
i.icon.quora,
i.icon.ravelry,
i.icon.react,
i.icon.rebel,
i.icon.redriver,
i.icon.reddit,
i.icon.reddit.alien,
i.icon.reddit.square,
i.icon.rendact,
i.icon.renren,
i.icon.replyd,
i.icon.resolving,
i.icon.rocketchat,
i.icon.rockrms,
i.icon.safari,
i.icon.sass,
i.icon.schlix,
i.icon.scribd,
i.icon.searchengin,
i.icon.sellcast,
i.icon.sellsy,
i.icon.servicestack,
i.icon.shirtsinbulk,
i.icon.simplybuilt,
i.icon.sistrix,
i.icon.skyatlas,
i.icon.skype,
i.icon.slack,
i.icon.slack.hash,
i.icon.slideshare,
i.icon.snapchat,
i.icon.snapchat.ghost,
i.icon.snapchat.square,
i.icon.soundcloud,
i.icon.speakap,
i.icon.spotify,
i.icon.stack.exchange,
i.icon.stack.overflow,
i.icon.staylinked,
i.icon.steam,
i.icon.steam.square,
i.icon.steam.symbol,
i.icon.sticker.mule,
i.icon.strava,
i.icon.stripe,
i.icon.stripe.s,
i.icon.studiovinari,
i.icon.stumbleupon,
i.icon.stumbleupon.circle,
i.icon.superpowers,
i.icon.supple,
i.icon.telegram,
i.icon.telegram.plane,
i.icon.tencent.weibo,
i.icon.themeisle,
i.icon.trello,
i.icon.tripadvisor,
i.icon.tumblr,
i.icon.tumblr.square,
i.icon.twitch,
i.icon.twitter,
i.icon.twitter.square,
i.icon.typo3,
i.icon.uber,
i.icon.uikit,
i.icon.uniregistry,
i.icon.untappd,
i.icon.usb,
i.icon.ussunnah,
i.icon.vaadin,
i.icon.viacoin,
i.icon.viadeo,
i.icon.viadeo.square,
i.icon.viber,
i.icon.vimeo,
i.icon.vimeo.square,
i.icon.vimeo.v,
i.icon.vine,
i.icon.vk,
i.icon.vnv,
i.icon.vuejs,
i.icon.wechat,
i.icon.weibo,
i.icon.weixin,
i.icon.whatsapp,
i.icon.whatsapp.square,
i.icon.whmcs,
i.icon.wikipedia.w,
i.icon.windows,
i.icon.wordpress,
i.icon.wordpress.simple,
i.icon.wpbeginner,
i.icon.wpexplorer,
i.icon.wpforms,
i.icon.xbox,
i.icon.xing,
i.icon.xing.square,
i.icon.y.combinator,
i.icon.yahoo,
i.icon.yandex,
i.icon.yandex.international,
i.icon.yelp,
i.icon.yoast,
i.icon.youtube,
i.icon.youtube.square {
  font-family: 'brand-icons';
}
/* Brand Icons Ideally Would Be Defined Here */
/*!
 * # Semantic UI - Image
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Image
*******************************/
/*-------------------
       Element
--------------------*/
/*-------------------
       Types
--------------------*/
/* Avatar */
/*-------------------
       Variations
--------------------*/
/* Spaced */
/* Floated */
/* Size */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Image
*******************************/
.ui.image {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  background-color: transparent;
}
img.ui.image {
  display: block;
}
.ui.image svg,
.ui.image img {
  display: block;
  max-width: 100%;
  height: auto;
}
/*******************************
            States
*******************************/
.ui.hidden.images,
.ui.hidden.image {
  display: none;
}
.ui.hidden.transition.images,
.ui.hidden.transition.image {
  display: block;
  visibility: hidden;
}
.ui.images > .hidden.transition {
  display: inline-block;
  visibility: hidden;
}
.ui.disabled.images,
.ui.disabled.image {
  cursor: default;
  opacity: 0.45;
}
/*******************************
          Variations
*******************************/
/*--------------
     Inline
---------------*/
.ui.inline.image,
.ui.inline.image svg,
.ui.inline.image img {
  display: inline-block;
}
/*------------------
  Vertical Aligned
-------------------*/
.ui.top.aligned.images .image,
.ui.top.aligned.image,
.ui.top.aligned.image svg,
.ui.top.aligned.image img {
  display: inline-block;
  vertical-align: top;
}
.ui.middle.aligned.images .image,
.ui.middle.aligned.image,
.ui.middle.aligned.image svg,
.ui.middle.aligned.image img {
  display: inline-block;
  vertical-align: middle;
}
.ui.bottom.aligned.images .image,
.ui.bottom.aligned.image,
.ui.bottom.aligned.image svg,
.ui.bottom.aligned.image img {
  display: inline-block;
  vertical-align: bottom;
}
/*--------------
     Rounded
---------------*/
.ui.rounded.images .image,
.ui.rounded.image,
.ui.rounded.images .image > *,
.ui.rounded.image > * {
  border-radius: 0.3125em;
}
/*--------------
    Bordered
---------------*/
.ui.bordered.images .image,
.ui.bordered.images img,
.ui.bordered.images svg,
.ui.bordered.image img,
.ui.bordered.image svg,
img.ui.bordered.image {
  border: 1px solid rgba(0, 0, 0, 0.1);
}
/*--------------
    Circular
---------------*/
.ui.circular.images,
.ui.circular.image {
  overflow: hidden;
}
.ui.circular.images .image,
.ui.circular.image,
.ui.circular.images .image > *,
.ui.circular.image > * {
  -webkit-border-radius: 500rem;
  -moz-border-radius: 500rem;
  border-radius: 500rem;
}
/*--------------
     Fluid
---------------*/
.ui.fluid.images,
.ui.fluid.image,
.ui.fluid.images img,
.ui.fluid.images svg,
.ui.fluid.image svg,
.ui.fluid.image img {
  display: block;
  width: 100%;
  height: auto;
}
/*--------------
     Avatar
---------------*/
.ui.avatar.images .image,
.ui.avatar.images img,
.ui.avatar.images svg,
.ui.avatar.image img,
.ui.avatar.image svg,
.ui.avatar.image {
  margin-right: 0.25em;
  display: inline-block;
  width: 2em;
  height: 2em;
  -webkit-border-radius: 500rem;
  -moz-border-radius: 500rem;
  border-radius: 500rem;
}
/*-------------------
       Spaced
--------------------*/
.ui.spaced.image {
  display: inline-block !important;
  margin-left: 0.5em;
  margin-right: 0.5em;
}
.ui[class*="left spaced"].image {
  margin-left: 0.5em;
  margin-right: 0em;
}
.ui[class*="right spaced"].image {
  margin-left: 0em;
  margin-right: 0.5em;
}
/*-------------------
       Floated
--------------------*/
.ui.floated.image,
.ui.floated.images {
  float: left;
  margin-right: 1em;
  margin-bottom: 1em;
}
.ui.right.floated.images,
.ui.right.floated.image {
  float: right;
  margin-right: 0em;
  margin-bottom: 1em;
  margin-left: 1em;
}
.ui.floated.images:last-child,
.ui.floated.image:last-child {
  margin-bottom: 0em;
}
.ui.centered.images,
.ui.centered.image {
  margin-left: auto;
  margin-right: auto;
}
/*--------------
     Sizes
---------------*/
.ui.mini.images .image,
.ui.mini.images img,
.ui.mini.images svg,
.ui.mini.image {
  width: 35px;
  height: auto;
  font-size: 0.78571429rem;
}
.ui.tiny.images .image,
.ui.tiny.images img,
.ui.tiny.images svg,
.ui.tiny.image {
  width: 80px;
  height: auto;
  font-size: 0.85714286rem;
}
.ui.small.images .image,
.ui.small.images img,
.ui.small.images svg,
.ui.small.image {
  width: 150px;
  height: auto;
  font-size: 0.92857143rem;
}
.ui.medium.images .image,
.ui.medium.images img,
.ui.medium.images svg,
.ui.medium.image {
  width: 300px;
  height: auto;
  font-size: 1rem;
}
.ui.large.images .image,
.ui.large.images img,
.ui.large.images svg,
.ui.large.image {
  width: 450px;
  height: auto;
  font-size: 1.14285714rem;
}
.ui.big.images .image,
.ui.big.images img,
.ui.big.images svg,
.ui.big.image {
  width: 600px;
  height: auto;
  font-size: 1.28571429rem;
}
.ui.huge.images .image,
.ui.huge.images img,
.ui.huge.images svg,
.ui.huge.image {
  width: 800px;
  height: auto;
  font-size: 1.42857143rem;
}
.ui.massive.images .image,
.ui.massive.images img,
.ui.massive.images svg,
.ui.massive.image {
  width: 960px;
  height: auto;
  font-size: 1.71428571rem;
}
/*******************************
              Groups
*******************************/
.ui.images {
  font-size: 0em;
  margin: 0em -0.25rem 0rem;
}
.ui.images .image,
.ui.images > img,
.ui.images > svg {
  display: inline-block;
  margin: 0em 0.25rem 0.5rem;
}
/*!
 * # Semantic UI - Input
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Input
*******************************/
/*-------------------
      Element
--------------------*/
/*-------------------
        Types
--------------------*/
/* Icon Input */
/* Circular Icon Input */
/* Labeled Input */
/*-------------------
        States
--------------------*/
/* Placeholder */
/* Down */
/* Focus */
/* Error */
/* Loader */
/*-------------------
      Variations
--------------------*/
/* Inverted */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
           Standard
*******************************/
/*--------------------
        Inputs
---------------------*/
.ui.input {
  position: relative;
  font-weight: normal;
  font-style: normal;
  display: inline-flex;
  color: rgba(0, 0, 0, 0.87);
}
.ui.input > input {
  margin: 0em;
  max-width: 100%;
  flex: 1 0 auto;
  outline: none;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
  text-align: left;
  line-height: 1.21428571em;
  font-family: 'Lato', sans-serif;
  padding: 0.67857143em 1em;
  background: #FFFFFF;
  border: 1px solid rgba(34, 36, 38, 0.15);
  color: rgba(0, 0, 0, 0.87);
  border-radius: 0.28571429rem;
  transition: box-shadow 0.1s ease, border-color 0.1s ease;
  box-shadow: none;
}
/*--------------------
      Placeholder
---------------------*/
/* browsers require these rules separate */
.ui.input > input::-webkit-input-placeholder {
  color: rgba(191, 191, 191, 0.87);
}
.ui.input > input::-moz-placeholder {
  color: rgba(191, 191, 191, 0.87);
}
.ui.input > input:-ms-input-placeholder {
  color: rgba(191, 191, 191, 0.87);
}
/*******************************
            States
*******************************/
/*--------------------
        Disabled
---------------------*/
.ui.disabled.input,
.ui.input:not(.disabled) input[disabled] {
  opacity: 0.45;
}
.ui.disabled.input > input,
.ui.input:not(.disabled) input[disabled] {
  pointer-events: none;
}
/*--------------------
        Active
---------------------*/
.ui.input > input:active,
.ui.input.down input {
  border-color: rgba(0, 0, 0, 0.3);
  background: #FAFAFA;
  color: rgba(0, 0, 0, 0.87);
  box-shadow: none;
}
/*--------------------
       Loading
---------------------*/
.ui.loading.loading.input > i.icon:before {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -0.64285714em 0em 0em -0.64285714em;
  width: 1.28571429em;
  height: 1.28571429em;
  border-radius: 500rem;
  border: 0.2em solid rgba(0, 0, 0, 0.1);
}
.ui.loading.loading.input > i.icon:after {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -0.64285714em 0em 0em -0.64285714em;
  width: 1.28571429em;
  height: 1.28571429em;
  animation: button-spin 0.6s linear;
  animation-iteration-count: infinite;
  border-radius: 500rem;
  border-color: #767676 transparent transparent;
  border-style: solid;
  border-width: 0.2em;
  box-shadow: 0px 0px 0px 1px transparent;
}
/*--------------------
        Focus
---------------------*/
.ui.input.focus > input,
.ui.input > input:focus {
  border-color: #85B7D9;
  background: #FFFFFF;
  color: rgba(0, 0, 0, 0.8);
  box-shadow: none;
}
.ui.input.focus > input::-webkit-input-placeholder,
.ui.input > input:focus::-webkit-input-placeholder {
  color: rgba(115, 115, 115, 0.87);
}
.ui.input.focus > input::-moz-placeholder,
.ui.input > input:focus::-moz-placeholder {
  color: rgba(115, 115, 115, 0.87);
}
.ui.input.focus > input:-ms-input-placeholder,
.ui.input > input:focus:-ms-input-placeholder {
  color: rgba(115, 115, 115, 0.87);
}
/*--------------------
        Error
---------------------*/
.ui.input.error > input {
  background-color: #FFF6F6;
  border-color: #E0B4B4;
  color: #9F3A38;
  box-shadow: none;
}
/* Error Placeholder */
.ui.input.error > input::-webkit-input-placeholder {
  color: #e7bdbc;
}
.ui.input.error > input::-moz-placeholder {
  color: #e7bdbc;
}
.ui.input.error > input:-ms-input-placeholder {
  color: #e7bdbc !important;
}
/* Focused Error Placeholder */
.ui.input.error > input:focus::-webkit-input-placeholder {
  color: #da9796;
}
.ui.input.error > input:focus::-moz-placeholder {
  color: #da9796;
}
.ui.input.error > input:focus:-ms-input-placeholder {
  color: #da9796 !important;
}
/*******************************
           Variations
*******************************/
/*--------------------
      Transparent
---------------------*/
.ui.transparent.input > input {
  border-color: transparent !important;
  background-color: transparent !important;
  padding: 0em !important;
  box-shadow: none !important;
  border-radius: 0px !important;
}
/* Transparent Icon */
.ui.transparent.icon.input > i.icon {
  width: 1.1em;
}
.ui.transparent.icon.input > input {
  padding-left: 0em !important;
  padding-right: 2em !important;
}
.ui.transparent[class*="left icon"].input > input {
  padding-left: 2em !important;
  padding-right: 0em !important;
}
/* Transparent Inverted */
.ui.transparent.inverted.input {
  color: #FFFFFF;
}
.ui.transparent.inverted.input > input {
  color: inherit;
}
.ui.transparent.inverted.input > input::-webkit-input-placeholder {
  color: rgba(255, 255, 255, 0.5);
}
.ui.transparent.inverted.input > input::-moz-placeholder {
  color: rgba(255, 255, 255, 0.5);
}
.ui.transparent.inverted.input > input:-ms-input-placeholder {
  color: rgba(255, 255, 255, 0.5);
}
/*--------------------
         Icon
---------------------*/
.ui.icon.input > i.icon {
  cursor: default;
  position: absolute;
  line-height: 1;
  text-align: center;
  top: 0px;
  right: 0px;
  margin: 0em;
  height: 100%;
  width: 2.67142857em;
  opacity: 0.5;
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
  transition: opacity 0.3s ease;
}
.ui.icon.input > i.icon:not(.link) {
  pointer-events: none;
}
.ui.icon.input > input {
  padding-right: 2.67142857em !important;
}
.ui.icon.input > i.icon:before,
.ui.icon.input > i.icon:after {
  left: 0;
  position: absolute;
  text-align: center;
  top: 50%;
  width: 100%;
  margin-top: -0.5em;
}
.ui.icon.input > i.link.icon {
  cursor: pointer;
}
.ui.icon.input > i.circular.icon {
  top: 0.35em;
  right: 0.5em;
}
/* Left Icon Input */
.ui[class*="left icon"].input > i.icon {
  right: auto;
  left: 1px;
  border-radius: 0.28571429rem 0em 0em 0.28571429rem;
}
.ui[class*="left icon"].input > i.circular.icon {
  right: auto;
  left: 0.5em;
}
.ui[class*="left icon"].input > input {
  padding-left: 2.67142857em !important;
  padding-right: 1em !important;
}
/* Focus */
.ui.icon.input > input:focus ~ i.icon {
  opacity: 1;
}
/*--------------------
        Labeled
---------------------*/
/* Adjacent Label */
.ui.labeled.input > .label {
  flex: 0 0 auto;
  margin: 0;
  font-size: 1em;
}
.ui.labeled.input > .label:not(.corner) {
  padding-top: 0.78571429em;
  padding-bottom: 0.78571429em;
}
/* Regular Label on Left */
.ui.labeled.input:not([class*="corner labeled"]) .label:first-child {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}
.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-left-color: transparent;
}
.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input:focus {
  border-left-color: #85B7D9;
}
/* Regular Label on Right */
.ui[class*="right labeled"].input > input {
  border-top-right-radius: 0px !important;
  border-bottom-right-radius: 0px !important;
  border-right-color: transparent !important;
}
.ui[class*="right labeled"].input > input + .label {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}
.ui[class*="right labeled"].input > input:focus {
  border-right-color: #85B7D9 !important;
}
/* Corner Label */
.ui.labeled.input .corner.label {
  top: 1px;
  right: 1px;
  font-size: 0.64285714em;
  border-radius: 0em 0.28571429rem 0em 0em;
}
/* Spacing with corner label */
.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input > input {
  padding-right: 2.5em !important;
}
.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > input {
  padding-right: 3.25em !important;
}
.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > .icon {
  margin-right: 1.25em;
}
/* Left Labeled */
.ui[class*="left corner labeled"].labeled.input > input {
  padding-left: 2.5em !important;
}
.ui[class*="left corner labeled"].icon.input > input {
  padding-left: 3.25em !important;
}
.ui[class*="left corner labeled"].icon.input > .icon {
  margin-left: 1.25em;
}
/* Corner Label Position  */
.ui.input > .ui.corner.label {
  top: 1px;
  right: 1px;
}
.ui.input > .ui.left.corner.label {
  right: auto;
  left: 1px;
}
/*--------------------
        Action
---------------------*/
.ui.action.input > .button,
.ui.action.input > .buttons {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}
.ui.action.input > .button,
.ui.action.input > .buttons > .button {
  padding-top: 0.78571429em;
  padding-bottom: 0.78571429em;
  margin: 0;
}
/* Button on Right */
.ui.action.input:not([class*="left action"]) > input {
  border-top-right-radius: 0px !important;
  border-bottom-right-radius: 0px !important;
  border-right-color: transparent !important;
}
.ui.action.input:not([class*="left action"]) > .dropdown:not(:first-child),
.ui.action.input:not([class*="left action"]) > .button:not(:first-child),
.ui.action.input:not([class*="left action"]) > .buttons:not(:first-child) > .button {
  border-radius: 0px;
}
.ui.action.input:not([class*="left action"]) > .dropdown:last-child,
.ui.action.input:not([class*="left action"]) > .button:last-child,
.ui.action.input:not([class*="left action"]) > .buttons:last-child > .button {
  border-radius: 0px 0.28571429rem 0.28571429rem 0px;
}
/* Input Focus */
.ui.action.input:not([class*="left action"]) > input:focus {
  border-right-color: #85B7D9 !important;
}
/* Button on Left */
.ui[class*="left action"].input > input {
  border-top-left-radius: 0px !important;
  border-bottom-left-radius: 0px !important;
  border-left-color: transparent !important;
}
.ui[class*="left action"].input > .dropdown,
.ui[class*="left action"].input > .button,
.ui[class*="left action"].input > .buttons > .button {
  border-radius: 0px;
}
.ui[class*="left action"].input > .dropdown:first-child,
.ui[class*="left action"].input > .button:first-child,
.ui[class*="left action"].input > .buttons:first-child > .button {
  border-radius: 0.28571429rem 0px 0px 0.28571429rem;
}
/* Input Focus */
.ui[class*="left action"].input > input:focus {
  border-left-color: #85B7D9 !important;
}
/*--------------------
       Inverted
---------------------*/
/* Standard */
.ui.inverted.input > input {
  border: none;
}
/*--------------------
        Fluid
---------------------*/
.ui.fluid.input {
  display: flex;
}
.ui.fluid.input > input {
  width: 0px !important;
}
/*--------------------
        Size
---------------------*/
.ui.mini.input {
  font-size: 0.78571429em;
}
.ui.small.input {
  font-size: 0.92857143em;
}
.ui.input {
  font-size: 1em;
}
.ui.large.input {
  font-size: 1.14285714em;
}
.ui.big.input {
  font-size: 1.28571429em;
}
.ui.huge.input {
  font-size: 1.42857143em;
}
.ui.massive.input {
  font-size: 1.71428571em;
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
/* it is hardcoded because the searchbar is wrapped in <form>
    and it can't be wrapped in invenio-search-ui
*/
#header-search-bar .ui.input {
  width: 200px !important;
  height: 38px !important;
}
#header-search-bar .ui.input > input {
  width: 200px !important;
  height: 38px !important;
}
/*!
 * # Semantic UI - Label
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Label
*******************************/
/*-------------------
       Element
--------------------*/
/* medium is not @emSize custom value required */
/* Group */
/*-------------------
        Parts
--------------------*/
/* Link */
/* Icon */
/* Image */
/* Detail */
/* Delete */
/*-------------------
        Types
--------------------*/
/* Image Label */
/*-------------------
        States
--------------------*/
/* Hover */
/* Active */
/* Active Hover */
/*-------------------
      Variations
--------------------*/
/* Basic */
/* Tag */
/* Avoids error with background: inherit; on animation */
/* Ribbon */
/* Rounding Offset on Triangle */
/* Rounding Offset on Triangle */
/* Colors */
/* Attached */
/* Corner */
/* Corner Text */
/* Horizontal */
/* Circular Padding */
/* Pointing */
/* Basic Pointing */
/* Floating */
/*-------------------
        Group
--------------------*/
/* Sizing */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Label
*******************************/
.ui.label {
  display: inline-block;
  line-height: 1;
  vertical-align: baseline;
  margin: 0em 0.14285714em;
  background-color: #E8E8E8;
  background-image: none;
  padding: 0.5833em 0.833em;
  color: rgba(0, 0, 0, 0.6);
  text-transform: none;
  font-weight: bold;
  border: 0px solid transparent;
  border-radius: 0.28571429rem;
  transition: background 0.1s ease;
}
.ui.label:first-child {
  margin-left: 0em;
}
.ui.label:last-child {
  margin-right: 0em;
}
/* Link */
a.ui.label {
  cursor: pointer;
}
/* Inside Link */
.ui.label > a {
  cursor: pointer;
  color: inherit;
  opacity: 0.5;
  transition: 0.1s opacity ease;
}
.ui.label > a:hover {
  opacity: 1;
}
/* Image */
.ui.label > img {
  width: auto !important;
  vertical-align: middle;
  height: 2.1666em !important;
}
/* Icon */
.ui.label > .icon {
  width: auto;
  margin: 0em 0.75em 0em 0em;
}
/* Detail */
.ui.label > .detail {
  display: inline-block;
  vertical-align: top;
  font-weight: bold;
  margin-left: 1em;
  opacity: 0.8;
}
.ui.label > .detail .icon {
  margin: 0em 0.25em 0em 0em;
}
/* Removable label */
.ui.label > .close.icon,
.ui.label > .delete.icon {
  cursor: pointer;
  margin-right: 0em;
  margin-left: 0.5em;
  font-size: 0.92857143em;
  opacity: 0.5;
  transition: background 0.1s ease;
}
.ui.label > .delete.icon:hover {
  opacity: 1;
}
/*-------------------
       Group
--------------------*/
.ui.labels > .label {
  margin: 0em 0.5em 0.5em 0em;
}
/*-------------------
       Coupling
--------------------*/
.ui.header > .ui.label {
  margin-top: -0.29165em;
}
/* Remove border radius on attached segment */
.ui.attached.segment > .ui.top.left.attached.label,
.ui.bottom.attached.segment > .ui.top.left.attached.label {
  border-top-left-radius: 0;
}
.ui.attached.segment > .ui.top.right.attached.label,
.ui.bottom.attached.segment > .ui.top.right.attached.label {
  border-top-right-radius: 0;
}
.ui.top.attached.segment > .ui.bottom.left.attached.label {
  border-bottom-left-radius: 0;
}
.ui.top.attached.segment > .ui.bottom.right.attached.label {
  border-bottom-right-radius: 0;
}
/* Padding on next content after a label */
.ui.top.attached.label:first-child + :not(.attached),
.ui.top.attached.label + [class*="right floated"] + * {
  margin-top: 2rem !important;
}
.ui.bottom.attached.label:first-child ~ :last-child:not(.attached) {
  margin-top: 0em;
  margin-bottom: 2rem !important;
}
/*******************************
             Types
*******************************/
.ui.image.label {
  width: auto !important;
  margin-top: 0em;
  margin-bottom: 0em;
  max-width: 9999px;
  vertical-align: baseline;
  text-transform: none;
  background: #E8E8E8;
  padding: 0.5833em 0.833em 0.5833em 0.5em;
  border-radius: 0.28571429rem;
  box-shadow: none;
}
.ui.image.label img {
  display: inline-block;
  vertical-align: top;
  height: 2.1666em;
  margin: -0.5833em 0.5em -0.5833em -0.5em;
  border-radius: 0.28571429rem 0em 0em 0.28571429rem;
}
.ui.image.label .detail {
  background: rgba(0, 0, 0, 0.1);
  margin: -0.5833em -0.833em -0.5833em 0.5em;
  padding: 0.5833em 0.833em;
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
}
/*-------------------
         Tag
--------------------*/
.ui.tag.labels .label,
.ui.tag.label {
  margin-left: 1em;
  position: relative;
  padding-left: 1.5em;
  padding-right: 1.5em;
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
  transition: none;
}
.ui.tag.labels .label:before,
.ui.tag.label:before {
  position: absolute;
  transform: translateY(-50%) translateX(50%) rotate(-45deg);
  top: 50%;
  right: 100%;
  content: '';
  background-color: inherit;
  background-image: none;
  width: 1.56em;
  height: 1.56em;
  transition: none;
}
.ui.tag.labels .label:after,
.ui.tag.label:after {
  position: absolute;
  content: '';
  top: 50%;
  left: -0.25em;
  margin-top: -0.25em;
  background-color: #FFFFFF !important;
  width: 0.5em;
  height: 0.5em;
  box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
  border-radius: 500rem;
}
/*-------------------
    Corner Label
--------------------*/
.ui.corner.label {
  position: absolute;
  top: 0em;
  right: 0em;
  margin: 0em;
  padding: 0em;
  text-align: center;
  border-color: #E8E8E8;
  width: 4em;
  height: 4em;
  z-index: 1;
  transition: border-color 0.1s ease;
}
/* Icon Label */
.ui.corner.label {
  background-color: transparent !important;
}
.ui.corner.label:after {
  position: absolute;
  content: "";
  right: 0em;
  top: 0em;
  z-index: -1;
  width: 0em;
  height: 0em;
  background-color: transparent !important;
  border-top: 0em solid transparent;
  border-right: 4em solid transparent;
  border-bottom: 4em solid transparent;
  border-left: 0em solid transparent;
  border-right-color: inherit;
  transition: border-color 0.1s ease;
}
.ui.corner.label .icon {
  cursor: default;
  position: relative;
  top: 0.64285714em;
  left: 0.78571429em;
  font-size: 1.14285714em;
  margin: 0em;
}
/* Left Corner */
.ui.left.corner.label,
.ui.left.corner.label:after {
  right: auto;
  left: 0em;
}
.ui.left.corner.label:after {
  border-top: 4em solid transparent;
  border-right: 4em solid transparent;
  border-bottom: 0em solid transparent;
  border-left: 0em solid transparent;
  border-top-color: inherit;
}
.ui.left.corner.label .icon {
  left: -0.78571429em;
}
/* Segment */
.ui.segment > .ui.corner.label {
  top: -1px;
  right: -1px;
}
.ui.segment > .ui.left.corner.label {
  right: auto;
  left: -1px;
}
/*-------------------
       Ribbon
--------------------*/
.ui.ribbon.label {
  position: relative;
  margin: 0em;
  min-width: max-content;
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
  border-color: rgba(0, 0, 0, 0.15);
}
.ui.ribbon.label:after {
  position: absolute;
  content: '';
  top: 100%;
  left: 0%;
  background-color: transparent !important;
  border-style: solid;
  border-width: 0em 1.2em 1.2em 0em;
  border-color: transparent;
  border-right-color: inherit;
  width: 0em;
  height: 0em;
}
/* Positioning */
.ui.ribbon.label {
  left: calc(-1rem - 1.2em);
  margin-right: -1.2em;
  padding-left: calc(1rem + 1.2em);
  padding-right: 1.2em;
}
.ui[class*="right ribbon"].label {
  left: calc(100% + 1rem + 1.2em);
  padding-left: 1.2em;
  padding-right: calc(1rem + 1.2em);
}
/* Right Ribbon */
.ui[class*="right ribbon"].label {
  text-align: left;
  transform: translateX(-100%);
  border-radius: 0.28571429rem 0em 0em 0.28571429rem;
}
.ui[class*="right ribbon"].label:after {
  left: auto;
  right: 0%;
  border-style: solid;
  border-width: 1.2em 1.2em 0em 0em;
  border-color: transparent;
  border-top-color: inherit;
}
/* Inside Table */
.ui.image > .ribbon.label,
.ui.card .image > .ribbon.label {
  position: absolute;
  top: 1rem;
}
.ui.card .image > .ui.ribbon.label,
.ui.image > .ui.ribbon.label {
  left: calc(--0.05rem - 1.2em);
}
.ui.card .image > .ui[class*="right ribbon"].label,
.ui.image > .ui[class*="right ribbon"].label {
  left: calc(100% + -0.05rem + 1.2em);
  padding-left: 0.833em;
}
/* Inside Table */
.ui.table td > .ui.ribbon.label {
  left: calc(-0.78571429em - 1.2em);
}
.ui.table td > .ui[class*="right ribbon"].label {
  left: calc(100% + 0.78571429em + 1.2em);
  padding-left: 0.833em;
}
/*-------------------
      Attached
--------------------*/
.ui[class*="top attached"].label,
.ui.attached.label {
  width: 100%;
  position: absolute;
  margin: 0em;
  top: 0em;
  left: 0em;
  padding: 0.75em 1em;
  border-radius: 0.21428571rem 0.21428571rem 0em 0em;
}
.ui[class*="bottom attached"].label {
  top: auto;
  bottom: 0em;
  border-radius: 0em 0em 0.21428571rem 0.21428571rem;
}
.ui[class*="top left attached"].label {
  width: auto;
  margin-top: 0em !important;
  border-radius: 0.21428571rem 0em 0.28571429rem 0em;
}
.ui[class*="top right attached"].label {
  width: auto;
  left: auto;
  right: 0em;
  border-radius: 0em 0.21428571rem 0em 0.28571429rem;
}
.ui[class*="bottom left attached"].label {
  width: auto;
  top: auto;
  bottom: 0em;
  border-radius: 0em 0.28571429rem 0em 0.21428571rem;
}
.ui[class*="bottom right attached"].label {
  top: auto;
  bottom: 0em;
  left: auto;
  right: 0em;
  width: auto;
  border-radius: 0.28571429rem 0em 0.21428571rem 0em;
}
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
.ui.label.disabled {
  opacity: 0.5;
}
/*-------------------
        Hover
--------------------*/
a.ui.labels .label:hover,
a.ui.label:hover {
  background-color: #E0E0E0;
  border-color: #E0E0E0;
  background-image: none;
  color: rgba(0, 0, 0, 0.8);
}
.ui.labels a.label:hover:before,
a.ui.label:hover:before {
  color: rgba(0, 0, 0, 0.8);
}
/*-------------------
        Active
--------------------*/
.ui.active.label {
  background-color: #D0D0D0;
  border-color: #D0D0D0;
  background-image: none;
  color: rgba(0, 0, 0, 0.95);
}
.ui.active.label:before {
  background-color: #D0D0D0;
  background-image: none;
  color: rgba(0, 0, 0, 0.95);
}
/*-------------------
     Active Hover
--------------------*/
a.ui.labels .active.label:hover,
a.ui.active.label:hover {
  background-color: #C8C8C8;
  border-color: #C8C8C8;
  background-image: none;
  color: rgba(0, 0, 0, 0.95);
}
.ui.labels a.active.label:ActiveHover:before,
a.ui.active.label:ActiveHover:before {
  background-color: #C8C8C8;
  background-image: none;
  color: rgba(0, 0, 0, 0.95);
}
/*-------------------
      Visible
--------------------*/
.ui.labels.visible .label,
.ui.label.visible:not(.dropdown) {
  display: inline-block !important;
}
/*-------------------
      Hidden
--------------------*/
.ui.labels.hidden .label,
.ui.label.hidden {
  display: none !important;
}
/*******************************
           Variations
*******************************/
/*-------------------
       Colors
--------------------*/
/*--- Red ---*/
.ui.red.labels .label,
.ui.red.label {
  background-color: #DB2828 !important;
  border-color: #DB2828 !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.red.labels .label:hover,
a.ui.red.label:hover {
  background-color: #d01919 !important;
  border-color: #d01919 !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.red.corner.label,
.ui.red.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.red.ribbon.label {
  border-color: #b21e1e !important;
}
/* Basic */
.ui.basic.red.label {
  background: none #FFFFFF !important;
  color: #DB2828 !important;
  border-color: #DB2828 !important;
}
.ui.basic.red.labels a.label:hover,
a.ui.basic.red.label:hover {
  background-color: #FFFFFF !important;
  color: #d01919 !important;
  border-color: #d01919 !important;
}
/*--- Orange ---*/
.ui.orange.labels .label,
.ui.orange.label {
  background-color: #F2711C !important;
  border-color: #F2711C !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.orange.labels .label:hover,
a.ui.orange.label:hover {
  background-color: #f26202 !important;
  border-color: #f26202 !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.orange.corner.label,
.ui.orange.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.orange.ribbon.label {
  border-color: #cf590c !important;
}
/* Basic */
.ui.basic.orange.label {
  background: none #FFFFFF !important;
  color: #F2711C !important;
  border-color: #F2711C !important;
}
.ui.basic.orange.labels a.label:hover,
a.ui.basic.orange.label:hover {
  background-color: #FFFFFF !important;
  color: #f26202 !important;
  border-color: #f26202 !important;
}
/*--- Yellow ---*/
.ui.yellow.labels .label,
.ui.yellow.label {
  background-color: #FBBD08 !important;
  border-color: #FBBD08 !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.yellow.labels .label:hover,
a.ui.yellow.label:hover {
  background-color: #eaae00 !important;
  border-color: #eaae00 !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.yellow.corner.label,
.ui.yellow.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.yellow.ribbon.label {
  border-color: #cd9903 !important;
}
/* Basic */
.ui.basic.yellow.label {
  background: none #FFFFFF !important;
  color: #FBBD08 !important;
  border-color: #FBBD08 !important;
}
.ui.basic.yellow.labels a.label:hover,
a.ui.basic.yellow.label:hover {
  background-color: #FFFFFF !important;
  color: #eaae00 !important;
  border-color: #eaae00 !important;
}
/*--- Olive ---*/
.ui.olive.labels .label,
.ui.olive.label {
  background-color: #B5CC18 !important;
  border-color: #B5CC18 !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.olive.labels .label:hover,
a.ui.olive.label:hover {
  background-color: #a7bd0d !important;
  border-color: #a7bd0d !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.olive.corner.label,
.ui.olive.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.olive.ribbon.label {
  border-color: #198f35 !important;
}
/* Basic */
.ui.basic.olive.label {
  background: none #FFFFFF !important;
  color: #B5CC18 !important;
  border-color: #B5CC18 !important;
}
.ui.basic.olive.labels a.label:hover,
a.ui.basic.olive.label:hover {
  background-color: #FFFFFF !important;
  color: #a7bd0d !important;
  border-color: #a7bd0d !important;
}
/*--- Green ---*/
.ui.green.labels .label,
.ui.green.label {
  background-color: #21BA45 !important;
  border-color: #21BA45 !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.green.labels .label:hover,
a.ui.green.label:hover {
  background-color: #16ab39 !important;
  border-color: #16ab39 !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.green.corner.label,
.ui.green.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.green.ribbon.label {
  border-color: #198f35 !important;
}
/* Basic */
.ui.basic.green.label {
  background: none #FFFFFF !important;
  color: #21BA45 !important;
  border-color: #21BA45 !important;
}
.ui.basic.green.labels a.label:hover,
a.ui.basic.green.label:hover {
  background-color: #FFFFFF !important;
  color: #16ab39 !important;
  border-color: #16ab39 !important;
}
/*--- Teal ---*/
.ui.teal.labels .label,
.ui.teal.label {
  background-color: #00B5AD !important;
  border-color: #00B5AD !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.teal.labels .label:hover,
a.ui.teal.label:hover {
  background-color: #009c95 !important;
  border-color: #009c95 !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.teal.corner.label,
.ui.teal.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.teal.ribbon.label {
  border-color: #00827c !important;
}
/* Basic */
.ui.basic.teal.label {
  background: none #FFFFFF !important;
  color: #00B5AD !important;
  border-color: #00B5AD !important;
}
.ui.basic.teal.labels a.label:hover,
a.ui.basic.teal.label:hover {
  background-color: #FFFFFF !important;
  color: #009c95 !important;
  border-color: #009c95 !important;
}
/*--- Blue ---*/
.ui.blue.labels .label,
.ui.blue.label {
  background-color: #2185D0 !important;
  border-color: #2185D0 !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.blue.labels .label:hover,
a.ui.blue.label:hover {
  background-color: #1678c2 !important;
  border-color: #1678c2 !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.blue.corner.label,
.ui.blue.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.blue.ribbon.label {
  border-color: #1a69a4 !important;
}
/* Basic */
.ui.basic.blue.label {
  background: none #FFFFFF !important;
  color: #2185D0 !important;
  border-color: #2185D0 !important;
}
.ui.basic.blue.labels a.label:hover,
a.ui.basic.blue.label:hover {
  background-color: #FFFFFF !important;
  color: #1678c2 !important;
  border-color: #1678c2 !important;
}
/*--- Violet ---*/
.ui.violet.labels .label,
.ui.violet.label {
  background-color: #6435C9 !important;
  border-color: #6435C9 !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.violet.labels .label:hover,
a.ui.violet.label:hover {
  background-color: #5829bb !important;
  border-color: #5829bb !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.violet.corner.label,
.ui.violet.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.violet.ribbon.label {
  border-color: #502aa1 !important;
}
/* Basic */
.ui.basic.violet.label {
  background: none #FFFFFF !important;
  color: #6435C9 !important;
  border-color: #6435C9 !important;
}
.ui.basic.violet.labels a.label:hover,
a.ui.basic.violet.label:hover {
  background-color: #FFFFFF !important;
  color: #5829bb !important;
  border-color: #5829bb !important;
}
/*--- Purple ---*/
.ui.purple.labels .label,
.ui.purple.label {
  background-color: #A333C8 !important;
  border-color: #A333C8 !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.purple.labels .label:hover,
a.ui.purple.label:hover {
  background-color: #9627ba !important;
  border-color: #9627ba !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.purple.corner.label,
.ui.purple.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.purple.ribbon.label {
  border-color: #82299f !important;
}
/* Basic */
.ui.basic.purple.label {
  background: none #FFFFFF !important;
  color: #A333C8 !important;
  border-color: #A333C8 !important;
}
.ui.basic.purple.labels a.label:hover,
a.ui.basic.purple.label:hover {
  background-color: #FFFFFF !important;
  color: #9627ba !important;
  border-color: #9627ba !important;
}
/*--- Pink ---*/
.ui.pink.labels .label,
.ui.pink.label {
  background-color: #E03997 !important;
  border-color: #E03997 !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.pink.labels .label:hover,
a.ui.pink.label:hover {
  background-color: #e61a8d !important;
  border-color: #e61a8d !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.pink.corner.label,
.ui.pink.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.pink.ribbon.label {
  border-color: #c71f7e !important;
}
/* Basic */
.ui.basic.pink.label {
  background: none #FFFFFF !important;
  color: #E03997 !important;
  border-color: #E03997 !important;
}
.ui.basic.pink.labels a.label:hover,
a.ui.basic.pink.label:hover {
  background-color: #FFFFFF !important;
  color: #e61a8d !important;
  border-color: #e61a8d !important;
}
/*--- Brown ---*/
.ui.brown.labels .label,
.ui.brown.label {
  background-color: #A5673F !important;
  border-color: #A5673F !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.brown.labels .label:hover,
a.ui.brown.label:hover {
  background-color: #975b33 !important;
  border-color: #975b33 !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.brown.corner.label,
.ui.brown.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.brown.ribbon.label {
  border-color: #805031 !important;
}
/* Basic */
.ui.basic.brown.label {
  background: none #FFFFFF !important;
  color: #A5673F !important;
  border-color: #A5673F !important;
}
.ui.basic.brown.labels a.label:hover,
a.ui.basic.brown.label:hover {
  background-color: #FFFFFF !important;
  color: #975b33 !important;
  border-color: #975b33 !important;
}
/*--- Grey ---*/
.ui.grey.labels .label,
.ui.grey.label {
  background-color: #767676 !important;
  border-color: #767676 !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.grey.labels .label:hover,
a.ui.grey.label:hover {
  background-color: #838383 !important;
  border-color: #838383 !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.grey.corner.label,
.ui.grey.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.grey.ribbon.label {
  border-color: #805031 !important;
}
/* Basic */
.ui.basic.grey.label {
  background: none #FFFFFF !important;
  color: #767676 !important;
  border-color: #767676 !important;
}
.ui.basic.grey.labels a.label:hover,
a.ui.basic.grey.label:hover {
  background-color: #FFFFFF !important;
  color: #838383 !important;
  border-color: #838383 !important;
}
/*--- Black ---*/
.ui.black.labels .label,
.ui.black.label {
  background-color: #1B1C1D !important;
  border-color: #1B1C1D !important;
  color: #FFFFFF !important;
}
/* Link */
.ui.black.labels .label:hover,
a.ui.black.label:hover {
  background-color: #27292a !important;
  border-color: #27292a !important;
  color: #FFFFFF !important;
}
/* Corner */
.ui.black.corner.label,
.ui.black.corner.label:hover {
  background-color: transparent !important;
}
/* Ribbon */
.ui.black.ribbon.label {
  border-color: #805031 !important;
}
/* Basic */
.ui.basic.black.label {
  background: none #FFFFFF !important;
  color: #1B1C1D !important;
  border-color: #1B1C1D !important;
}
.ui.basic.black.labels a.label:hover,
a.ui.basic.black.label:hover {
  background-color: #FFFFFF !important;
  color: #27292a !important;
  border-color: #27292a !important;
}
/*-------------------
        Basic
--------------------*/
.ui.basic.label {
  background: none #FFFFFF;
  border: 1px solid rgba(34, 36, 38, 0.15);
  color: rgba(0, 0, 0, 0.87);
  box-shadow: none;
}
/* Link */
a.ui.basic.label:hover {
  text-decoration: none;
  background: none #FFFFFF;
  color: #1e70bf;
  box-shadow: 1px solid rgba(34, 36, 38, 0.15);
  box-shadow: none;
}
/* Pointing */
.ui.basic.pointing.label:before {
  border-color: inherit;
}
/*-------------------
       Fluid
--------------------*/
.ui.label.fluid,
.ui.fluid.labels > .label {
  width: 100%;
  box-sizing: border-box;
}
/*-------------------
       Inverted
--------------------*/
.ui.inverted.labels .label,
.ui.inverted.label {
  color: rgba(255, 255, 255, 0.9) !important;
}
/*-------------------
     Horizontal
--------------------*/
.ui.horizontal.labels .label,
.ui.horizontal.label {
  margin: 0em 0.5em 0em 0em;
  padding: 0.4em 0.833em;
  min-width: 3em;
  text-align: center;
}
/*-------------------
       Circular
--------------------*/
.ui.circular.labels .label,
.ui.circular.label {
  min-width: 2em;
  min-height: 2em;
  padding: 0.5em !important;
  line-height: 1em;
  text-align: center;
  border-radius: 500rem;
}
.ui.empty.circular.labels .label,
.ui.empty.circular.label {
  min-width: 0em;
  min-height: 0em;
  overflow: hidden;
  width: 0.5em;
  height: 0.5em;
  vertical-align: baseline;
}
/*-------------------
       Pointing
--------------------*/
.ui.pointing.label {
  position: relative;
}
.ui.attached.pointing.label {
  position: absolute;
}
.ui.pointing.label:before {
  background-color: inherit;
  background-image: inherit;
  border-width: none;
  border-style: solid;
  border-color: inherit;
}
/* Arrow */
.ui.pointing.label:before {
  position: absolute;
  content: '';
  transform: rotate(45deg);
  background-image: none;
  z-index: 2;
  width: 0.6666em;
  height: 0.6666em;
  transition: background 0.1s ease;
}
/*--- Above ---*/
.ui.pointing.label,
.ui[class*="pointing above"].label {
  margin-top: 1em;
}
.ui.pointing.label:before,
.ui[class*="pointing above"].label:before {
  border-width: 1px 0px 0px 1px;
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
  top: 0%;
  left: 50%;
}
/*--- Below ---*/
.ui[class*="bottom pointing"].label,
.ui[class*="pointing below"].label {
  margin-top: 0em;
  margin-bottom: 1em;
}
.ui[class*="bottom pointing"].label:before,
.ui[class*="pointing below"].label:before {
  border-width: 0px 1px 1px 0px;
  top: auto;
  right: auto;
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
  top: 100%;
  left: 50%;
}
/*--- Left ---*/
.ui[class*="left pointing"].label {
  margin-top: 0em;
  margin-left: 0.6666em;
}
.ui[class*="left pointing"].label:before {
  border-width: 0px 0px 1px 1px;
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
  bottom: auto;
  right: auto;
  top: 50%;
  left: 0em;
}
/*--- Right ---*/
.ui[class*="right pointing"].label {
  margin-top: 0em;
  margin-right: 0.6666em;
}
.ui[class*="right pointing"].label:before {
  border-width: 1px 1px 0px 0px;
  transform: translateX(50%) translateY(-50%) rotate(45deg);
  top: 50%;
  right: 0%;
  bottom: auto;
  left: auto;
}
/* Basic Pointing */
/*--- Above ---*/
.ui.basic.pointing.label:before,
.ui.basic[class*="pointing above"].label:before {
  margin-top: -1px;
}
/*--- Below ---*/
.ui.basic[class*="bottom pointing"].label:before,
.ui.basic[class*="pointing below"].label:before {
  bottom: auto;
  top: 100%;
  margin-top: 1px;
}
/*--- Left ---*/
.ui.basic[class*="left pointing"].label:before {
  top: 50%;
  left: -1px;
}
/*--- Right ---*/
.ui.basic[class*="right pointing"].label:before {
  top: 50%;
  right: -1px;
}
/*------------------
   Floating Label
-------------------*/
.ui.floating.label {
  position: absolute;
  z-index: 100;
  top: -1em;
  left: 100%;
  margin: 0em 0em 0em -1.5em !important;
}
/*-------------------
        Sizes
--------------------*/
.ui.mini.labels .label,
.ui.mini.label {
  font-size: 0.64285714rem;
}
.ui.tiny.labels .label,
.ui.tiny.label {
  font-size: 0.71428571rem;
}
.ui.small.labels .label,
.ui.small.label {
  font-size: 0.78571429rem;
}
.ui.labels .label,
.ui.label {
  font-size: 0.85714286rem;
}
.ui.large.labels .label,
.ui.large.label {
  font-size: 1rem;
}
.ui.big.labels .label,
.ui.big.label {
  font-size: 1.28571429rem;
}
.ui.huge.labels .label,
.ui.huge.label {
  font-size: 1.42857143rem;
}
.ui.massive.labels .label,
.ui.massive.label {
  font-size: 1.71428571rem;
}
/*!
 * # Semantic UI - List
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             List
*******************************/
/*-------------------
         View
--------------------*/
/* List */
/* List Item */
/* Sub List */
/* Sub List Item */
/*-------------------
      Elements
--------------------*/
/* Icon */
/* Image */
/* Content */
/* Header */
/* Description */
/* Link */
/* Header Link */
/* Linked Icon */
/*-------------------
        States
--------------------*/
/*-------------------
      Variations
--------------------*/
/* Float */
/* Horizontal */
/* Inverted */
/* Link List */
/* Inverted Link List */
/* Selection List */
/* Selection List States */
/* Inverted Selection List */
/* Animated List */
/* Bulleted */
/* Horizontal Bullets */
/* Ordered List */
/* Horizontal Ordered */
/* Divided */
/* Divided Horizontal */
/* Divided */
/* Divided Horizontal */
/* Relaxed */
/* Very Relaxed */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            List
*******************************/
ul.ui.list,
ol.ui.list,
.ui.list {
  list-style-type: none;
  margin: 1em 0em;
  padding: 0em 0em;
}
ul.ui.list:first-child,
ol.ui.list:first-child,
.ui.list:first-child {
  margin-top: 0em;
  padding-top: 0em;
}
ul.ui.list:last-child,
ol.ui.list:last-child,
.ui.list:last-child {
  margin-bottom: 0em;
  padding-bottom: 0em;
}
/*******************************
            Content
*******************************/
/* List Item */
ul.ui.list li,
ol.ui.list li,
.ui.list > .item,
.ui.list .list > .item {
  display: list-item;
  table-layout: fixed;
  list-style-type: none;
  list-style-position: outside;
  padding: 0.21428571em 0em;
  line-height: 1.14285714em;
}
ul.ui.list > li:first-child:after,
ol.ui.list > li:first-child:after,
.ui.list > .list > .item,
.ui.list > .item:after {
  content: '';
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}
ul.ui.list li:first-child,
ol.ui.list li:first-child,
.ui.list .list > .item:first-child,
.ui.list > .item:first-child {
  padding-top: 0em;
}
ul.ui.list li:last-child,
ol.ui.list li:last-child,
.ui.list .list > .item:last-child,
.ui.list > .item:last-child {
  padding-bottom: 0em;
}
/* Child List */
ul.ui.list ul,
ol.ui.list ol,
.ui.list .list {
  clear: both;
  margin: 0em;
  padding: 0.75em 0em 0.25em 0.5em;
}
/* Child Item */
ul.ui.list ul li,
ol.ui.list ol li,
.ui.list .list > .item {
  padding: 0.14285714em 0em;
  line-height: inherit;
}
/* Icon */
.ui.list .list > .item > i.icon,
.ui.list > .item > i.icon {
  display: table-cell;
  margin: 0em;
  padding-top: 0em;
  padding-right: 0.28571429em;
  vertical-align: top;
  transition: color 0.1s ease;
}
.ui.list .list > .item > i.icon:only-child,
.ui.list > .item > i.icon:only-child {
  display: inline-block;
  vertical-align: top;
}
/* Image */
.ui.list .list > .item > .image,
.ui.list > .item > .image {
  display: table-cell;
  background-color: transparent;
  margin: 0em;
  vertical-align: top;
}
.ui.list .list > .item > .image:not(:only-child):not(img),
.ui.list > .item > .image:not(:only-child):not(img) {
  padding-right: 0.5em;
}
.ui.list .list > .item > .image img,
.ui.list > .item > .image img {
  vertical-align: top;
}
.ui.list .list > .item > img.image,
.ui.list .list > .item > .image:only-child,
.ui.list > .item > img.image,
.ui.list > .item > .image:only-child {
  display: inline-block;
}
/* Content */
.ui.list .list > .item > .content,
.ui.list > .item > .content {
  line-height: 1.14285714em;
}
.ui.list .list > .item > .image + .content,
.ui.list .list > .item > .icon + .content,
.ui.list > .item > .image + .content,
.ui.list > .item > .icon + .content {
  display: table-cell;
  width: 100%;
  padding: 0em 0em 0em 0.5em;
  vertical-align: top;
}
.ui.list .list > .item > img.image + .content,
.ui.list > .item > img.image + .content {
  display: inline-block;
  width: auto;
}
.ui.list .list > .item > .content > .list,
.ui.list > .item > .content > .list {
  margin-left: 0em;
  padding-left: 0em;
}
/* Header */
.ui.list .list > .item .header,
.ui.list > .item .header {
  display: block;
  margin: 0em;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.87);
}
/* Description */
.ui.list .list > .item .description,
.ui.list > .item .description {
  display: block;
  color: rgba(0, 0, 0, 0.7);
}
/* Child Link */
.ui.list > .item a,
.ui.list .list > .item a {
  cursor: pointer;
}
/* Linking Item */
.ui.list .list > a.item,
.ui.list > a.item {
  cursor: pointer;
  color: #4183C4;
}
.ui.list .list > a.item:hover,
.ui.list > a.item:hover {
  color: #1e70bf;
}
/* Linked Item Icons */
.ui.list .list > a.item i.icon,
.ui.list > a.item i.icon {
  color: rgba(0, 0, 0, 0.4);
}
/* Header Link */
.ui.list .list > .item a.header,
.ui.list > .item a.header {
  cursor: pointer;
  color: #4183C4 !important;
}
.ui.list .list > .item a.header:hover,
.ui.list > .item a.header:hover {
  color: #1e70bf !important;
}
/* Floated Content */
.ui[class*="left floated"].list {
  float: left;
}
.ui[class*="right floated"].list {
  float: right;
}
.ui.list .list > .item [class*="left floated"],
.ui.list > .item [class*="left floated"] {
  float: left;
  margin: 0em 1em 0em 0em;
}
.ui.list .list > .item [class*="right floated"],
.ui.list > .item [class*="right floated"] {
  float: right;
  margin: 0em 0em 0em 1em;
}
/*******************************
            Coupling
*******************************/
.ui.menu .ui.list > .item,
.ui.menu .ui.list .list > .item {
  display: list-item;
  table-layout: fixed;
  background-color: transparent;
  list-style-type: none;
  list-style-position: outside;
  padding: 0.21428571em 0em;
  line-height: 1.14285714em;
}
.ui.menu .ui.list .list > .item:before,
.ui.menu .ui.list > .item:before {
  border: none;
  background: none;
}
.ui.menu .ui.list .list > .item:first-child,
.ui.menu .ui.list > .item:first-child {
  padding-top: 0em;
}
.ui.menu .ui.list .list > .item:last-child,
.ui.menu .ui.list > .item:last-child {
  padding-bottom: 0em;
}
/*******************************
            Types
*******************************/
/*-------------------
      Horizontal
--------------------*/
.ui.horizontal.list {
  display: inline-block;
  font-size: 0em;
}
.ui.horizontal.list > .item {
  display: inline-block;
  margin-left: 1em;
  font-size: 1rem;
}
.ui.horizontal.list:not(.celled) > .item:first-child {
  margin-left: 0em !important;
  padding-left: 0em !important;
}
.ui.horizontal.list .list {
  padding-left: 0em;
  padding-bottom: 0em;
}
.ui.horizontal.list > .item > .image,
.ui.horizontal.list .list > .item > .image,
.ui.horizontal.list > .item > .icon,
.ui.horizontal.list .list > .item > .icon,
.ui.horizontal.list > .item > .content,
.ui.horizontal.list .list > .item > .content {
  vertical-align: middle;
}
/* Padding on all elements */
.ui.horizontal.list > .item:first-child,
.ui.horizontal.list > .item:last-child {
  padding-top: 0.21428571em;
  padding-bottom: 0.21428571em;
}
/* Horizontal List */
.ui.horizontal.list > .item > i.icon {
  margin: 0em;
  padding: 0em 0.25em 0em 0em;
}
.ui.horizontal.list > .item > .icon,
.ui.horizontal.list > .item > .icon + .content {
  float: none;
  display: inline-block;
}
/*******************************
             States
*******************************/
/*-------------------
       Disabled
--------------------*/
.ui.list .list > .disabled.item,
.ui.list > .disabled.item {
  pointer-events: none;
  color: rgba(40, 40, 40, 0.3) !important;
}
.ui.inverted.list .list > .disabled.item,
.ui.inverted.list > .disabled.item {
  color: rgba(225, 225, 225, 0.3) !important;
}
/*-------------------
        Hover
--------------------*/
.ui.list .list > a.item:hover .icon,
.ui.list > a.item:hover .icon {
  color: rgba(0, 0, 0, 0.87);
}
/*******************************
           Variations
*******************************/
/*-------------------
       Inverted
--------------------*/
.ui.inverted.list .list > a.item > .icon,
.ui.inverted.list > a.item > .icon {
  color: rgba(255, 255, 255, 0.7);
}
.ui.inverted.list .list > .item .header,
.ui.inverted.list > .item .header {
  color: rgba(255, 255, 255, 0.9);
}
.ui.inverted.list .list > .item .description,
.ui.inverted.list > .item .description {
  color: rgba(255, 255, 255, 0.7);
}
/* Item Link */
.ui.inverted.list .list > a.item,
.ui.inverted.list > a.item {
  cursor: pointer;
  color: rgba(255, 255, 255, 0.9);
}
.ui.inverted.list .list > a.item:hover,
.ui.inverted.list > a.item:hover {
  color: #1e70bf;
}
/* Linking Content */
.ui.inverted.list .item a:not(.ui) {
  color: rgba(255, 255, 255, 0.9) !important;
}
.ui.inverted.list .item a:not(.ui):hover {
  color: #1e70bf !important;
}
/*-------------------
       Aligned
--------------------*/
.ui.list[class*="top aligned"] .image,
.ui.list[class*="top aligned"] .content,
.ui.list [class*="top aligned"] {
  vertical-align: top !important;
}
.ui.list[class*="middle aligned"] .image,
.ui.list[class*="middle aligned"] .content,
.ui.list [class*="middle aligned"] {
  vertical-align: middle !important;
}
.ui.list[class*="bottom aligned"] .image,
.ui.list[class*="bottom aligned"] .content,
.ui.list [class*="bottom aligned"] {
  vertical-align: bottom !important;
}
/*-------------------
       Link
--------------------*/
.ui.link.list .item,
.ui.link.list a.item,
.ui.link.list .item a:not(.ui) {
  color: rgba(0, 0, 0, 0.4);
  transition: 0.1s color ease;
}
.ui.link.list.list a.item:hover,
.ui.link.list.list .item a:not(.ui):hover {
  color: rgba(0, 0, 0, 0.8);
}
.ui.link.list.list a.item:active,
.ui.link.list.list .item a:not(.ui):active {
  color: rgba(0, 0, 0, 0.9);
}
.ui.link.list.list .active.item,
.ui.link.list.list .active.item a:not(.ui) {
  color: rgba(0, 0, 0, 0.95);
}
/* Inverted */
.ui.inverted.link.list .item,
.ui.inverted.link.list a.item,
.ui.inverted.link.list .item a:not(.ui) {
  color: rgba(255, 255, 255, 0.5);
}
.ui.inverted.link.list.list a.item:hover,
.ui.inverted.link.list.list .item a:not(.ui):hover {
  color: #ffffff;
}
.ui.inverted.link.list.list a.item:active,
.ui.inverted.link.list.list .item a:not(.ui):active {
  color: #ffffff;
}
.ui.inverted.link.list.list a.active.item,
.ui.inverted.link.list.list .active.item a:not(.ui) {
  color: #ffffff;
}
/*-------------------
      Selection
--------------------*/
.ui.selection.list .list > .item,
.ui.selection.list > .item {
  cursor: pointer;
  background: transparent;
  padding: 0.5em 0.5em;
  margin: 0em;
  color: rgba(0, 0, 0, 0.4);
  border-radius: 0.5em;
  transition: 0.1s color ease, 0.1s padding-left ease, 0.1s background-color ease;
}
.ui.selection.list .list > .item:last-child,
.ui.selection.list > .item:last-child {
  margin-bottom: 0em;
}
.ui.selection.list.list > .item:hover,
.ui.selection.list > .item:hover {
  background: rgba(0, 0, 0, 0.03);
  color: rgba(0, 0, 0, 0.8);
}
.ui.selection.list .list > .item:active,
.ui.selection.list > .item:active {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.9);
}
.ui.selection.list .list > .item.active,
.ui.selection.list > .item.active {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
}
/* Inverted */
.ui.inverted.selection.list > .item,
.ui.inverted.selection.list > .item {
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
}
.ui.inverted.selection.list > .item:hover,
.ui.inverted.selection.list > .item:hover {
  background: rgba(255, 255, 255, 0.02);
  color: #ffffff;
}
.ui.inverted.selection.list > .item:active,
.ui.inverted.selection.list > .item:active {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}
.ui.inverted.selection.list > .item.active,
.ui.inverted.selection.list > .item.active {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}
/* Celled / Divided Selection List */
.ui.celled.selection.list .list > .item,
.ui.divided.selection.list .list > .item,
.ui.celled.selection.list > .item,
.ui.divided.selection.list > .item {
  border-radius: 0em;
}
/*-------------------
       Animated
--------------------*/
.ui.animated.list > .item {
  transition: 0.25s color ease 0.1s, 0.25s padding-left ease 0.1s, 0.25s background-color ease 0.1s;
}
.ui.animated.list:not(.horizontal) > .item:hover {
  padding-left: 1em;
}
/*-------------------
       Fitted
--------------------*/
.ui.fitted.list:not(.selection) .list > .item,
.ui.fitted.list:not(.selection) > .item {
  padding-left: 0em;
  padding-right: 0em;
}
.ui.fitted.selection.list .list > .item,
.ui.fitted.selection.list > .item {
  margin-left: -0.5em;
  margin-right: -0.5em;
}
/*-------------------
      Bulleted
--------------------*/
ul.ui.list,
.ui.bulleted.list {
  margin-left: 1.25rem;
}
ul.ui.list li,
.ui.bulleted.list .list > .item,
.ui.bulleted.list > .item {
  position: relative;
}
ul.ui.list li:before,
.ui.bulleted.list .list > .item:before,
.ui.bulleted.list > .item:before {
  user-select: none;
  pointer-events: none;
  position: absolute;
  top: auto;
  left: auto;
  font-weight: normal;
  margin-left: -1.25rem;
  content: '•';
  opacity: 1;
  color: inherit;
  vertical-align: top;
}
ul.ui.list li:before,
.ui.bulleted.list .list > a.item:before,
.ui.bulleted.list > a.item:before {
  color: rgba(0, 0, 0, 0.87);
}
ul.ui.list ul,
.ui.bulleted.list .list {
  padding-left: 1.25rem;
}
/* Horizontal Bulleted */
ul.ui.horizontal.bulleted.list,
.ui.horizontal.bulleted.list {
  margin-left: 0em;
}
ul.ui.horizontal.bulleted.list li,
.ui.horizontal.bulleted.list > .item {
  margin-left: 1.75rem;
}
ul.ui.horizontal.bulleted.list li:first-child,
.ui.horizontal.bulleted.list > .item:first-child {
  margin-left: 0em;
}
ul.ui.horizontal.bulleted.list li::before,
.ui.horizontal.bulleted.list > .item::before {
  color: rgba(0, 0, 0, 0.87);
}
ul.ui.horizontal.bulleted.list li:first-child::before,
.ui.horizontal.bulleted.list > .item:first-child::before {
  display: none;
}
/*-------------------
       Ordered
--------------------*/
ol.ui.list,
.ui.ordered.list,
.ui.ordered.list .list,
ol.ui.list ol {
  counter-reset: ordered;
  margin-left: 1.25rem;
  list-style-type: none;
}
ol.ui.list li,
.ui.ordered.list .list > .item,
.ui.ordered.list > .item {
  list-style-type: none;
  position: relative;
}
ol.ui.list li:before,
.ui.ordered.list .list > .item:before,
.ui.ordered.list > .item:before {
  position: absolute;
  top: auto;
  left: auto;
  user-select: none;
  pointer-events: none;
  margin-left: -1.25rem;
  counter-increment: ordered;
  content: counters(ordered, ".") " ";
  text-align: right;
  color: rgba(0, 0, 0, 0.87);
  vertical-align: middle;
  opacity: 0.8;
}
ol.ui.inverted.list li:before,
.ui.ordered.inverted.list .list > .item:before,
.ui.ordered.inverted.list > .item:before {
  color: rgba(255, 255, 255, 0.7);
}
/* Value */
.ui.ordered.list > .list > .item[data-value],
.ui.ordered.list > .item[data-value] {
  content: attr(data-value);
}
ol.ui.list li[value]:before {
  content: attr(value);
}
/* Child Lists */
ol.ui.list ol,
.ui.ordered.list .list {
  margin-left: 1em;
}
ol.ui.list ol li:before,
.ui.ordered.list .list > .item:before {
  margin-left: -2em;
}
/* Horizontal Ordered */
ol.ui.horizontal.list,
.ui.ordered.horizontal.list {
  margin-left: 0em;
}
ol.ui.horizontal.list li:before,
.ui.ordered.horizontal.list .list > .item:before,
.ui.ordered.horizontal.list > .item:before {
  position: static;
  margin: 0em 0.5em 0em 0em;
}
/*-------------------
       Divided
--------------------*/
.ui.divided.list > .item {
  border-top: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.divided.list .list > .item {
  border-top: none;
}
.ui.divided.list .item .list > .item {
  border-top: none;
}
.ui.divided.list .list > .item:first-child,
.ui.divided.list > .item:first-child {
  border-top: none;
}
/* Sub Menu */
.ui.divided.list:not(.horizontal) .list > .item:first-child {
  border-top-width: 1px;
}
/* Divided bulleted */
.ui.divided.bulleted.list:not(.horizontal),
.ui.divided.bulleted.list .list {
  margin-left: 0em;
  padding-left: 0em;
}
.ui.divided.bulleted.list > .item:not(.horizontal) {
  padding-left: 1.25rem;
}
/* Divided Ordered */
.ui.divided.ordered.list {
  margin-left: 0em;
}
.ui.divided.ordered.list .list > .item,
.ui.divided.ordered.list > .item {
  padding-left: 1.25rem;
}
.ui.divided.ordered.list .item .list {
  margin-left: 0em;
  margin-right: 0em;
  padding-bottom: 0.21428571em;
}
.ui.divided.ordered.list .item .list > .item {
  padding-left: 1em;
}
/* Divided Selection */
.ui.divided.selection.list .list > .item,
.ui.divided.selection.list > .item {
  margin: 0em;
  border-radius: 0em;
}
/* Divided horizontal */
.ui.divided.horizontal.list {
  margin-left: 0em;
}
.ui.divided.horizontal.list > .item:not(:first-child) {
  padding-left: 0.5em;
}
.ui.divided.horizontal.list > .item:not(:last-child) {
  padding-right: 0.5em;
}
.ui.divided.horizontal.list > .item {
  border-top: none;
  border-left: 1px solid rgba(34, 36, 38, 0.15);
  margin: 0em;
  line-height: 0.6;
}
.ui.horizontal.divided.list > .item:first-child {
  border-left: none;
}
/* Inverted */
.ui.divided.inverted.list > .item,
.ui.divided.inverted.list > .list,
.ui.divided.inverted.horizontal.list > .item {
  border-color: rgba(255, 255, 255, 0.1);
}
/*-------------------
        Celled
--------------------*/
.ui.celled.list > .item,
.ui.celled.list > .list {
  border-top: 1px solid rgba(34, 36, 38, 0.15);
  padding-left: 0.5em;
  padding-right: 0.5em;
}
.ui.celled.list > .item:last-child {
  border-bottom: 1px solid rgba(34, 36, 38, 0.15);
}
/* Padding on all elements */
.ui.celled.list > .item:first-child,
.ui.celled.list > .item:last-child {
  padding-top: 0.21428571em;
  padding-bottom: 0.21428571em;
}
/* Sub Menu */
.ui.celled.list .item .list > .item {
  border-width: 0px;
}
.ui.celled.list .list > .item:first-child {
  border-top-width: 0px;
}
/* Celled Bulleted */
.ui.celled.bulleted.list {
  margin-left: 0em;
}
.ui.celled.bulleted.list .list > .item,
.ui.celled.bulleted.list > .item {
  padding-left: 1.25rem;
}
.ui.celled.bulleted.list .item .list {
  margin-left: -1.25rem;
  margin-right: -1.25rem;
  padding-bottom: 0.21428571em;
}
/* Celled Ordered */
.ui.celled.ordered.list {
  margin-left: 0em;
}
.ui.celled.ordered.list .list > .item,
.ui.celled.ordered.list > .item {
  padding-left: 1.25rem;
}
.ui.celled.ordered.list .item .list {
  margin-left: 0em;
  margin-right: 0em;
  padding-bottom: 0.21428571em;
}
.ui.celled.ordered.list .list > .item {
  padding-left: 1em;
}
/* Celled Horizontal */
.ui.horizontal.celled.list {
  margin-left: 0em;
}
.ui.horizontal.celled.list .list > .item,
.ui.horizontal.celled.list > .item {
  border-top: none;
  border-left: 1px solid rgba(34, 36, 38, 0.15);
  margin: 0em;
  padding-left: 0.5em;
  padding-right: 0.5em;
  line-height: 0.6;
}
.ui.horizontal.celled.list .list > .item:last-child,
.ui.horizontal.celled.list > .item:last-child {
  border-bottom: none;
  border-right: 1px solid rgba(34, 36, 38, 0.15);
}
/* Inverted */
.ui.celled.inverted.list > .item,
.ui.celled.inverted.list > .list {
  border-color: 1px solid rgba(255, 255, 255, 0.1);
}
.ui.celled.inverted.horizontal.list .list > .item,
.ui.celled.inverted.horizontal.list > .item {
  border-color: 1px solid rgba(255, 255, 255, 0.1);
}
/*-------------------
       Relaxed
--------------------*/
.ui.relaxed.list:not(.horizontal) > .item:not(:first-child) {
  padding-top: 0.42857143em;
}
.ui.relaxed.list:not(.horizontal) > .item:not(:last-child) {
  padding-bottom: 0.42857143em;
}
.ui.horizontal.relaxed.list .list > .item:not(:first-child),
.ui.horizontal.relaxed.list > .item:not(:first-child) {
  padding-left: 1rem;
}
.ui.horizontal.relaxed.list .list > .item:not(:last-child),
.ui.horizontal.relaxed.list > .item:not(:last-child) {
  padding-right: 1rem;
}
/* Very Relaxed */
.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:first-child) {
  padding-top: 0.85714286em;
}
.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:last-child) {
  padding-bottom: 0.85714286em;
}
.ui.horizontal[class*="very relaxed"].list .list > .item:not(:first-child),
.ui.horizontal[class*="very relaxed"].list > .item:not(:first-child) {
  padding-left: 1.5rem;
}
.ui.horizontal[class*="very relaxed"].list .list > .item:not(:last-child),
.ui.horizontal[class*="very relaxed"].list > .item:not(:last-child) {
  padding-right: 1.5rem;
}
/*-------------------
      Sizes
--------------------*/
.ui.mini.list {
  font-size: 0.78571429em;
}
.ui.tiny.list {
  font-size: 0.85714286em;
}
.ui.small.list {
  font-size: 0.92857143em;
}
.ui.list {
  font-size: 1em;
}
.ui.large.list {
  font-size: 1.14285714em;
}
.ui.big.list {
  font-size: 1.28571429em;
}
.ui.huge.list {
  font-size: 1.42857143em;
}
.ui.massive.list {
  font-size: 1.71428571em;
}
.ui.mini.horizontal.list .list > .item,
.ui.mini.horizontal.list > .item {
  font-size: 0.78571429rem;
}
.ui.tiny.horizontal.list .list > .item,
.ui.tiny.horizontal.list > .item {
  font-size: 0.85714286rem;
}
.ui.small.horizontal.list .list > .item,
.ui.small.horizontal.list > .item {
  font-size: 0.92857143rem;
}
.ui.horizontal.list .list > .item,
.ui.horizontal.list > .item {
  font-size: 1rem;
}
.ui.large.horizontal.list .list > .item,
.ui.large.horizontal.list > .item {
  font-size: 1.14285714rem;
}
.ui.big.horizontal.list .list > .item,
.ui.big.horizontal.list > .item {
  font-size: 1.28571429rem;
}
.ui.huge.horizontal.list .list > .item,
.ui.huge.horizontal.list > .item {
  font-size: 1.42857143rem;
}
.ui.massive.horizontal.list .list > .item,
.ui.massive.horizontal.list > .item {
  font-size: 1.71428571rem;
}
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Deposit license field */
.item.deposit-drag-listitem {
  margin-bottom: 5px;
}
.item.deposit-drag-listitem.hidden {
  opacity: 0;
}
.item.deposit-drag-listitem .drag-anchor {
  cursor: move;
}
.ui.items > .item.license-item {
  cursor: pointer;
}
.ui.items > .item.license-item .image.license-radiobox {
  padding-left: 5px;
  padding-top: 2em;
  width: 4%;
}
.ui.items > .item.license-item .content.license-item-content {
  padding-left: 10px;
}
.ui.items > .item.license-item .content.license-item-content .description.license-item-description {
  font-size: smaller;
  color: rgba(0, 0, 0, 0.6);
}
.ui.list .disabled {
  opacity: 0.5;
  cursor: default;
}
.ui.celled.list.separated-list > .item:first-child {
  padding-left: 0;
  border-left: none;
}
.ui.celled.list.separated-list > .item:last-child {
  padding-right: 0;
  border-right: none;
}
.ui.celled.list.separated-list .item > a {
  margin: 3px;
}
/*!
 * # Semantic UI - Loader
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Loader
*******************************/
/* Some global loader styles defined in site.variables */
/*-------------------
      Standard
--------------------*/
/*-------------------
        Types
--------------------*/
/* Text */
/*-------------------
        States
--------------------*/
/*-------------------
      Variations
--------------------*/
/* Exact Sizes (Avoids Rounding Errors) */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Loader
*******************************/
/* Standard Size */
.ui.loader {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: 0px;
  text-align: center;
  z-index: 1000;
  transform: translateX(-50%) translateY(-50%);
}
/* Static Shape */
.ui.loader:before {
  position: absolute;
  content: '';
  top: 0%;
  left: 50%;
  width: 100%;
  height: 100%;
  border-radius: 500rem;
  border: 0.2em solid rgba(0, 0, 0, 0.1);
}
/* Active Shape */
.ui.loader:after {
  position: absolute;
  content: '';
  top: 0%;
  left: 50%;
  width: 100%;
  height: 100%;
  animation: loader 0.6s linear;
  animation-iteration-count: infinite;
  border-radius: 500rem;
  border-color: #767676 transparent transparent;
  border-style: solid;
  border-width: 0.2em;
  box-shadow: 0px 0px 0px 1px transparent;
}
/* Active Animation */
@keyframes loader {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* Sizes */
.ui.mini.loader:before,
.ui.mini.loader:after {
  width: 1rem;
  height: 1rem;
  margin: 0em 0em 0em -0.5rem;
}
.ui.tiny.loader:before,
.ui.tiny.loader:after {
  width: 1.14285714rem;
  height: 1.14285714rem;
  margin: 0em 0em 0em -0.57142857rem;
}
.ui.small.loader:before,
.ui.small.loader:after {
  width: 1.71428571rem;
  height: 1.71428571rem;
  margin: 0em 0em 0em -0.85714286rem;
}
.ui.loader:before,
.ui.loader:after {
  width: 2.28571429rem;
  height: 2.28571429rem;
  margin: 0em 0em 0em -1.14285714rem;
}
.ui.large.loader:before,
.ui.large.loader:after {
  width: 3.42857143rem;
  height: 3.42857143rem;
  margin: 0em 0em 0em -1.71428571rem;
}
.ui.big.loader:before,
.ui.big.loader:after {
  width: 3.71428571rem;
  height: 3.71428571rem;
  margin: 0em 0em 0em -1.85714286rem;
}
.ui.huge.loader:before,
.ui.huge.loader:after {
  width: 4.14285714rem;
  height: 4.14285714rem;
  margin: 0em 0em 0em -2.07142857rem;
}
.ui.massive.loader:before,
.ui.massive.loader:after {
  width: 4.57142857rem;
  height: 4.57142857rem;
  margin: 0em 0em 0em -2.28571429rem;
}
/*-------------------
      Coupling
--------------------*/
/* Show inside active dimmer */
.ui.dimmer .loader {
  display: block;
}
/* Black Dimmer */
.ui.dimmer .ui.loader {
  color: rgba(255, 255, 255, 0.9);
}
.ui.dimmer .ui.loader:before {
  border-color: rgba(255, 255, 255, 0.15);
}
.ui.dimmer .ui.loader:after {
  border-color: #FFFFFF transparent transparent;
}
/* White Dimmer (Inverted) */
.ui.inverted.dimmer .ui.loader {
  color: rgba(0, 0, 0, 0.87);
}
.ui.inverted.dimmer .ui.loader:before {
  border-color: rgba(0, 0, 0, 0.1);
}
.ui.inverted.dimmer .ui.loader:after {
  border-color: #767676 transparent transparent;
}
/*******************************
             Types
*******************************/
/*-------------------
        Text
--------------------*/
.ui.text.loader {
  width: auto !important;
  height: auto !important;
  text-align: center;
  font-style: normal;
}
/*******************************
            States
*******************************/
.ui.indeterminate.loader:after {
  animation-direction: reverse;
  animation-duration: 1.2s;
}
.ui.loader.active,
.ui.loader.visible {
  display: block;
}
.ui.loader.disabled,
.ui.loader.hidden {
  display: none;
}
/*******************************
            Variations
*******************************/
/*-------------------
        Sizes
--------------------*/
/* Loader */
.ui.inverted.dimmer .ui.mini.loader,
.ui.mini.loader {
  width: 1rem;
  height: 1rem;
  font-size: 0.78571429em;
}
.ui.inverted.dimmer .ui.tiny.loader,
.ui.tiny.loader {
  width: 1.14285714rem;
  height: 1.14285714rem;
  font-size: 0.85714286em;
}
.ui.inverted.dimmer .ui.small.loader,
.ui.small.loader {
  width: 1.71428571rem;
  height: 1.71428571rem;
  font-size: 0.92857143em;
}
.ui.inverted.dimmer .ui.loader,
.ui.loader {
  width: 2.28571429rem;
  height: 2.28571429rem;
  font-size: 1em;
}
.ui.inverted.dimmer .ui.large.loader,
.ui.large.loader {
  width: 3.42857143rem;
  height: 3.42857143rem;
  font-size: 1.14285714em;
}
.ui.inverted.dimmer .ui.big.loader,
.ui.big.loader {
  width: 3.71428571rem;
  height: 3.71428571rem;
  font-size: 1.28571429em;
}
.ui.inverted.dimmer .ui.huge.loader,
.ui.huge.loader {
  width: 4.14285714rem;
  height: 4.14285714rem;
  font-size: 1.42857143em;
}
.ui.inverted.dimmer .ui.massive.loader,
.ui.massive.loader {
  width: 4.57142857rem;
  height: 4.57142857rem;
  font-size: 1.71428571em;
}
/* Text Loader */
.ui.mini.text.loader {
  min-width: 1rem;
  padding-top: 1.78571429rem;
}
.ui.tiny.text.loader {
  min-width: 1.14285714rem;
  padding-top: 1.92857143rem;
}
.ui.small.text.loader {
  min-width: 1.71428571rem;
  padding-top: 2.5rem;
}
.ui.text.loader {
  min-width: 2.28571429rem;
  padding-top: 3.07142857rem;
}
.ui.large.text.loader {
  min-width: 3.42857143rem;
  padding-top: 4.21428571rem;
}
.ui.big.text.loader {
  min-width: 3.71428571rem;
  padding-top: 4.5rem;
}
.ui.huge.text.loader {
  min-width: 4.14285714rem;
  padding-top: 4.92857143rem;
}
.ui.massive.text.loader {
  min-width: 4.57142857rem;
  padding-top: 5.35714286rem;
}
/*-------------------
       Inverted
--------------------*/
.ui.inverted.loader {
  color: rgba(255, 255, 255, 0.9);
}
.ui.inverted.loader:before {
  border-color: rgba(255, 255, 255, 0.15);
}
.ui.inverted.loader:after {
  border-top-color: #FFFFFF;
}
/*-------------------
       Inline
--------------------*/
.ui.inline.loader {
  position: relative;
  vertical-align: middle;
  margin: 0em;
  left: 0em;
  top: 0em;
  transform: none;
}
.ui.inline.loader.active,
.ui.inline.loader.visible {
  display: inline-block;
}
/* Centered Inline */
.ui.centered.inline.loader.active,
.ui.centered.inline.loader.visible {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
/*!
 * # Semantic UI - Loader
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/* Key Content Sizing */
/* Interval between consecutive placeholders */
/* Repeated Placeholder */
/* Image */
/* Header Image */
/* Paragraph */
/* Glow Gradient */
/* Variations */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*-------------------
      Content
--------------------*/
.ui.placeholder {
  position: static;
  overflow: hidden;
  animation: placeholderShimmer 2s linear;
  animation-iteration-count: infinite;
  background-color: #FFFFFF;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.15) 15%, rgba(0, 0, 0, 0.08) 30%);
  background-size: 1200px 100%;
  max-width: 30rem;
}
@keyframes placeholderShimmer {
  0% {
    background-position: -1200px 0;
  }
  100% {
    background-position: 1200px 0;
  }
}
.ui.placeholder + .ui.placeholder {
  margin-top: 2rem;
}
.ui.placeholder + .ui.placeholder {
  animation-delay: 0.15s;
}
.ui.placeholder + .ui.placeholder + .ui.placeholder {
  animation-delay: 0.3s;
}
.ui.placeholder + .ui.placeholder + .ui.placeholder + .ui.placeholder {
  animation-delay: 0.45s;
}
.ui.placeholder + .ui.placeholder + .ui.placeholder + .ui.placeholder + .ui.placeholder {
  animation-delay: 0.6s;
}
.ui.placeholder,
.ui.placeholder > :before,
.ui.placeholder .image.header:after,
.ui.placeholder .line,
.ui.placeholder .line:after {
  background-color: #FFFFFF;
}
/* Image */
.ui.placeholder .image:not(.header):not(.ui) {
  height: 100px;
}
.ui.placeholder .square.image:not(.header) {
  height: 0px;
  overflow: hidden;
  /* 1/1 aspect ratio */
  padding-top: 100%;
}
.ui.placeholder .rectangular.image:not(.header) {
  height: 0px;
  overflow: hidden;
  /* 4/3 aspect ratio */
  padding-top: 75%;
}
/* Lines */
.ui.placeholder .line {
  position: relative;
  height: 0.85714286em;
}
.ui.placeholder .line:before,
.ui.placeholder .line:after {
  top: 100%;
  position: absolute;
  content: '';
  background-color: inherit;
}
.ui.placeholder .line:before {
  left: 0px;
}
.ui.placeholder .line:after {
  right: 0px;
}
/* Any Lines */
.ui.placeholder .line {
  margin-bottom: 0.5em;
}
.ui.placeholder .line:before,
.ui.placeholder .line:after {
  height: 0.5em;
}
.ui.placeholder .line:not(:first-child) {
  margin-top: 0.5em;
}
/* Header Image + 2 Lines */
.ui.placeholder .header {
  position: relative;
  overflow: hidden;
}
/* Line Outdent */
.ui.placeholder .line:nth-child(1):after {
  width: 0%;
}
.ui.placeholder .line:nth-child(2):after {
  width: 50%;
}
.ui.placeholder .line:nth-child(3):after {
  width: 10%;
}
.ui.placeholder .line:nth-child(4):after {
  width: 35%;
}
.ui.placeholder .line:nth-child(5):after {
  width: 65%;
}
/* Header Line 1 & 2*/
.ui.placeholder .header .line {
  margin-bottom: 0.64285714em;
}
.ui.placeholder .header .line:before,
.ui.placeholder .header .line:after {
  height: 0.64285714em;
}
.ui.placeholder .header .line:not(:first-child) {
  margin-top: 0.64285714em;
}
.ui.placeholder .header .line:after {
  width: 20%;
}
.ui.placeholder .header .line:nth-child(2):after {
  width: 60%;
}
/* Image Header */
.ui.placeholder .image.header .line {
  margin-left: 3em;
}
.ui.placeholder .image.header .line:before {
  width: 0.71428571rem;
}
.ui.placeholder .image.header:after {
  display: block;
  height: 0.85714286em;
  content: '';
  margin-left: 3em;
}
/* Spacing */
.ui.placeholder .image .line:first-child,
.ui.placeholder .paragraph .line:first-child,
.ui.placeholder .header .line:first-child {
  height: 0.01px;
}
.ui.placeholder .image:not(:first-child):before,
.ui.placeholder .paragraph:not(:first-child):before,
.ui.placeholder .header:not(:first-child):before {
  height: 1.42857143em;
  content: '';
  display: block;
}
/* Inverted Content Loader */
.ui.inverted.placeholder {
  background-image: linear-gradient(to right, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.14) 15%, rgba(255, 255, 255, 0.08) 30%);
}
.ui.inverted.placeholder,
.ui.inverted.placeholder > :before,
.ui.inverted.placeholder .image.header:after,
.ui.inverted.placeholder .line,
.ui.inverted.placeholder .line:after {
  background-color: #1B1C1D;
}
/*******************************
            Variations
*******************************/
/*-------------------
        Sizes
--------------------*/
.ui.placeholder .full.line.line.line:after {
  width: 0%;
}
.ui.placeholder .very.long.line.line.line:after {
  width: 10%;
}
.ui.placeholder .long.line.line.line:after {
  width: 35%;
}
.ui.placeholder .medium.line.line.line:after {
  width: 50%;
}
.ui.placeholder .short.line.line.line:after {
  width: 65%;
}
.ui.placeholder .very.short.line.line.line:after {
  width: 80%;
}
/*-------------------
        Fluid
--------------------*/
.ui.fluid.placeholder {
  max-width: none;
}
/*!
 * # Semantic UI - Rail
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Rail
*******************************/
/*-------------------
       Element
--------------------*/
/*-------------------
      Variations
--------------------*/
/* Close */
/* Dividing */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Rails
*******************************/
.ui.rail {
  position: absolute;
  top: 0%;
  width: 300px;
  height: 100%;
}
.ui.left.rail {
  left: auto;
  right: 100%;
  padding: 0em 2rem 0em 0em;
  margin: 0em 2rem 0em 0em;
}
.ui.right.rail {
  left: 100%;
  right: auto;
  padding: 0em 0em 0em 2rem;
  margin: 0em 0em 0em 2rem;
}
/*******************************
           Variations
*******************************/
/*--------------
     Internal
---------------*/
.ui.left.internal.rail {
  left: 0%;
  right: auto;
  padding: 0em 0em 0em 2rem;
  margin: 0em 0em 0em 2rem;
}
.ui.right.internal.rail {
  left: auto;
  right: 0%;
  padding: 0em 2rem 0em 0em;
  margin: 0em 2rem 0em 0em;
}
/*--------------
    Dividing
---------------*/
.ui.dividing.rail {
  width: 302.5px;
}
.ui.left.dividing.rail {
  padding: 0em 2.5rem 0em 0em;
  margin: 0em 2.5rem 0em 0em;
  border-right: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.right.dividing.rail {
  border-left: 1px solid rgba(34, 36, 38, 0.15);
  padding: 0em 0em 0em 2.5rem;
  margin: 0em 0em 0em 2.5rem;
}
/*--------------
    Distance
---------------*/
.ui.close.rail {
  width: calc( 300px  +  1em );
}
.ui.close.left.rail {
  padding: 0em 1em 0em 0em;
  margin: 0em 1em 0em 0em;
}
.ui.close.right.rail {
  padding: 0em 0em 0em 1em;
  margin: 0em 0em 0em 1em;
}
.ui.very.close.rail {
  width: calc( 300px  +  0.5em );
}
.ui.very.close.left.rail {
  padding: 0em 0.5em 0em 0em;
  margin: 0em 0.5em 0em 0em;
}
.ui.very.close.right.rail {
  padding: 0em 0em 0em 0.5em;
  margin: 0em 0em 0em 0.5em;
}
/*--------------
    Attached
---------------*/
.ui.attached.left.rail,
.ui.attached.right.rail {
  padding: 0em;
  margin: 0em;
}
/*--------------
     Sizing
---------------*/
.ui.mini.rail {
  font-size: 0.78571429rem;
}
.ui.tiny.rail {
  font-size: 0.85714286rem;
}
.ui.small.rail {
  font-size: 0.92857143rem;
}
.ui.rail {
  font-size: 1rem;
}
.ui.large.rail {
  font-size: 1.14285714rem;
}
.ui.big.rail {
  font-size: 1.28571429rem;
}
.ui.huge.rail {
  font-size: 1.42857143rem;
}
.ui.massive.rail {
  font-size: 1.71428571rem;
}
/*!
 * # Semantic UI - Reveal
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Reveal
*******************************/
/* Types */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Reveal
*******************************/
.ui.reveal {
  display: inherit;
  position: relative !important;
  font-size: 0em !important;
}
.ui.reveal > .visible.content {
  position: absolute !important;
  top: 0em !important;
  left: 0em !important;
  z-index: 3 !important;
  transition: all 0.5s ease 0.1s;
}
.ui.reveal > .hidden.content {
  position: relative !important;
  z-index: 2 !important;
}
/* Make sure hovered element is on top of other reveal */
.ui.active.reveal .visible.content,
.ui.reveal:hover .visible.content {
  z-index: 4 !important;
}
/*******************************
              Types
*******************************/
/*--------------
      Slide
---------------*/
.ui.slide.reveal {
  position: relative !important;
  overflow: hidden !important;
  white-space: nowrap;
}
.ui.slide.reveal > .content {
  display: block;
  width: 100%;
  white-space: normal;
  float: left;
  margin: 0em;
  transition: transform 0.5s ease 0.1s;
}
.ui.slide.reveal > .visible.content {
  position: relative !important;
}
.ui.slide.reveal > .hidden.content {
  position: absolute !important;
  left: 0% !important;
  width: 100% !important;
  transform: translateX(100%) !important;
}
.ui.slide.active.reveal > .visible.content,
.ui.slide.reveal:hover > .visible.content {
  transform: translateX(-100%) !important;
}
.ui.slide.active.reveal > .hidden.content,
.ui.slide.reveal:hover > .hidden.content {
  transform: translateX(0%) !important;
}
.ui.slide.right.reveal > .visible.content {
  transform: translateX(0%) !important;
}
.ui.slide.right.reveal > .hidden.content {
  transform: translateX(-100%) !important;
}
.ui.slide.right.active.reveal > .visible.content,
.ui.slide.right.reveal:hover > .visible.content {
  transform: translateX(100%) !important;
}
.ui.slide.right.active.reveal > .hidden.content,
.ui.slide.right.reveal:hover > .hidden.content {
  transform: translateX(0%) !important;
}
.ui.slide.up.reveal > .hidden.content {
  transform: translateY(100%) !important;
}
.ui.slide.up.active.reveal > .visible.content,
.ui.slide.up.reveal:hover > .visible.content {
  transform: translateY(-100%) !important;
}
.ui.slide.up.active.reveal > .hidden.content,
.ui.slide.up.reveal:hover > .hidden.content {
  transform: translateY(0%) !important;
}
.ui.slide.down.reveal > .hidden.content {
  transform: translateY(-100%) !important;
}
.ui.slide.down.active.reveal > .visible.content,
.ui.slide.down.reveal:hover > .visible.content {
  transform: translateY(100%) !important;
}
.ui.slide.down.active.reveal > .hidden.content,
.ui.slide.down.reveal:hover > .hidden.content {
  transform: translateY(0%) !important;
}
/*--------------
      Fade
---------------*/
.ui.fade.reveal > .visible.content {
  opacity: 1;
}
.ui.fade.active.reveal > .visible.content,
.ui.fade.reveal:hover > .visible.content {
  opacity: 0;
}
/*--------------
      Move
---------------*/
.ui.move.reveal {
  position: relative !important;
  overflow: hidden !important;
  white-space: nowrap;
}
.ui.move.reveal > .content {
  display: block;
  float: left;
  white-space: normal;
  margin: 0em;
  transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1) 0.1s;
}
.ui.move.reveal > .visible.content {
  position: relative !important;
}
.ui.move.reveal > .hidden.content {
  position: absolute !important;
  left: 0% !important;
  width: 100% !important;
}
.ui.move.active.reveal > .visible.content,
.ui.move.reveal:hover > .visible.content {
  transform: translateX(-100%) !important;
}
.ui.move.right.active.reveal > .visible.content,
.ui.move.right.reveal:hover > .visible.content {
  transform: translateX(100%) !important;
}
.ui.move.up.active.reveal > .visible.content,
.ui.move.up.reveal:hover > .visible.content {
  transform: translateY(-100%) !important;
}
.ui.move.down.active.reveal > .visible.content,
.ui.move.down.reveal:hover > .visible.content {
  transform: translateY(100%) !important;
}
/*--------------
     Rotate
---------------*/
.ui.rotate.reveal > .visible.content {
  transition-duration: 0.5s;
  transform: rotate(0deg);
}
.ui.rotate.reveal > .visible.content,
.ui.rotate.right.reveal > .visible.content {
  transform-origin: bottom right;
}
.ui.rotate.active.reveal > .visible.content,
.ui.rotate.reveal:hover > .visible.content,
.ui.rotate.right.active.reveal > .visible.content,
.ui.rotate.right.reveal:hover > .visible.content {
  transform: rotate(110deg);
}
.ui.rotate.left.reveal > .visible.content {
  transform-origin: bottom left;
}
.ui.rotate.left.active.reveal > .visible.content,
.ui.rotate.left.reveal:hover > .visible.content {
  transform: rotate(-110deg);
}
/*******************************
              States
*******************************/
.ui.disabled.reveal:hover > .visible.visible.content {
  position: static !important;
  display: block !important;
  opacity: 1 !important;
  top: 0 !important;
  left: 0 !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
}
.ui.disabled.reveal:hover > .hidden.hidden.content {
  display: none !important;
}
/*******************************
           Coupling
*******************************/
.ui.reveal > .ui.ribbon.label {
  z-index: 5;
}
/*******************************
           Variations
*******************************/
/*--------------
     Visible
---------------*/
.ui.visible.reveal {
  overflow: visible;
}
/*--------------
     Instant
---------------*/
.ui.instant.reveal > .content {
  transition-delay: 0s !important;
}
/*--------------
     Sizing
---------------*/
.ui.reveal > .content {
  font-size: 1rem !important;
}
/*!
 * # Semantic UI - Segment
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Segment
*******************************/
/*-------------------
       Element
--------------------*/
/*-------------------
       Group
--------------------*/
/*-------------------
       Coupling
--------------------*/
/* Page Grid Segment */
/*******************************
            Types
*******************************/
/* Placeholder */
/* Piled */
/* Circular */
/* Stacked */
/*******************************
            States
*******************************/
/* Loading Dimmer */
/* Loading Spinner */
/*******************************
            Variations
*******************************/
/* Raised */
/* Padded */
/* Attached */
/* Inverted */
/* Floated */
/* Basic */
/* Colors */
/* Ordinality */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Segment
*******************************/
.ui.segment {
  position: relative;
  background: #FFFFFF;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
  margin: 1rem 0em;
  padding: 1em 1em;
  border-radius: 0.28571429rem;
  border: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.segment:first-child {
  margin-top: 0em;
}
.ui.segment:last-child {
  margin-bottom: 0em;
}
/* Vertical */
.ui.vertical.segment {
  margin: 0em;
  padding-left: 0em;
  padding-right: 0em;
  background: none transparent;
  border-radius: 0px;
  box-shadow: none;
  border: none;
  border-bottom: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.vertical.segment:last-child {
  border-bottom: none;
}
/*-------------------
    Loose Coupling
--------------------*/
/* Header */
.ui.inverted.segment > .ui.header {
  color: #FFFFFF;
}
/* Label */
.ui[class*="bottom attached"].segment > [class*="top attached"].label {
  border-top-left-radius: 0em;
  border-top-right-radius: 0em;
}
.ui[class*="top attached"].segment > [class*="bottom attached"].label {
  border-bottom-left-radius: 0em;
  border-bottom-right-radius: 0em;
}
.ui.attached.segment:not(.top):not(.bottom) > [class*="top attached"].label {
  border-top-left-radius: 0em;
  border-top-right-radius: 0em;
}
.ui.attached.segment:not(.top):not(.bottom) > [class*="bottom attached"].label {
  border-bottom-left-radius: 0em;
  border-bottom-right-radius: 0em;
}
/* Grid */
.ui.page.grid.segment,
.ui.grid > .row > .ui.segment.column,
.ui.grid > .ui.segment.column {
  padding-top: 2em;
  padding-bottom: 2em;
}
.ui.grid.segment {
  margin: 1rem 0em;
  border-radius: 0.28571429rem;
}
/* Table */
.ui.basic.table.segment {
  background: #FFFFFF;
  border: 1px solid rgba(34, 36, 38, 0.15);
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
}
.ui[class*="very basic"].table.segment {
  padding: 1em 1em;
}
/*******************************
             Types
*******************************/
/*-------------------
     Placeholder
--------------------*/
.ui.placeholder.segment {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  max-width: initial;
  animation: none;
  overflow: visible;
  padding: 1em 1em;
  min-height: 18rem;
  background: #F9FAFB;
  border-color: rgba(34, 36, 38, 0.15);
  box-shadow: 0px 2px 25px 0 rgba(34, 36, 38, 0.05) inset;
}
.ui.placeholder.segment .button,
.ui.placeholder.segment textarea {
  display: block;
}
.ui.placeholder.segment .field,
.ui.placeholder.segment textarea,
.ui.placeholder.segment > .ui.input,
.ui.placeholder.segment .button {
  max-width: 15rem;
  margin-left: auto;
  margin-right: auto;
}
.ui.placeholder.segment .column .button,
.ui.placeholder.segment .column .field,
.ui.placeholder.segment .column textarea,
.ui.placeholder.segment .column > .ui.input {
  max-width: 15rem;
  margin-left: auto;
  margin-right: auto;
}
.ui.placeholder.segment > .inline {
  align-self: center;
}
.ui.placeholder.segment > .inline > .button {
  display: inline-block;
  width: auto;
  margin: 0px 0.35714286rem 0px 0px;
}
.ui.placeholder.segment > .inline > .button:last-child {
  margin-right: 0px;
}
/*-------------------
        Piled
--------------------*/
.ui.piled.segments,
.ui.piled.segment {
  margin: 3em 0em;
  box-shadow: '';
  z-index: auto;
}
.ui.piled.segment:first-child {
  margin-top: 0em;
}
.ui.piled.segment:last-child {
  margin-bottom: 0em;
}
.ui.piled.segments:after,
.ui.piled.segments:before,
.ui.piled.segment:after,
.ui.piled.segment:before {
  background-color: #FFFFFF;
  visibility: visible;
  content: '';
  display: block;
  height: 100%;
  left: 0px;
  position: absolute;
  width: 100%;
  border: 1px solid rgba(34, 36, 38, 0.15);
  box-shadow: '';
}
.ui.piled.segments:before,
.ui.piled.segment:before {
  transform: rotate(-1.2deg);
  top: 0;
  z-index: -2;
}
.ui.piled.segments:after,
.ui.piled.segment:after {
  transform: rotate(1.2deg);
  top: 0;
  z-index: -1;
}
/* Piled Attached */
.ui[class*="top attached"].piled.segment {
  margin-top: 3em;
  margin-bottom: 0em;
}
.ui.piled.segment[class*="top attached"]:first-child {
  margin-top: 0em;
}
.ui.piled.segment[class*="bottom attached"] {
  margin-top: 0em;
  margin-bottom: 3em;
}
.ui.piled.segment[class*="bottom attached"]:last-child {
  margin-bottom: 0em;
}
/*-------------------
       Stacked
--------------------*/
.ui.stacked.segment {
  padding-bottom: 1.4em;
}
.ui.stacked.segments:before,
.ui.stacked.segments:after,
.ui.stacked.segment:before,
.ui.stacked.segment:after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0%;
  border-top: 1px solid rgba(34, 36, 38, 0.15);
  background: rgba(0, 0, 0, 0.03);
  width: 100%;
  height: 6px;
  visibility: visible;
}
.ui.stacked.segments:before,
.ui.stacked.segment:before {
  display: none;
}
/* Add additional page */
.ui.tall.stacked.segments:before,
.ui.tall.stacked.segment:before {
  display: block;
  bottom: 0px;
}
/* Inverted */
.ui.stacked.inverted.segments:before,
.ui.stacked.inverted.segments:after,
.ui.stacked.inverted.segment:before,
.ui.stacked.inverted.segment:after {
  background-color: rgba(0, 0, 0, 0.03);
  border-top: 1px solid rgba(34, 36, 38, 0.35);
}
/*-------------------
       Padded
--------------------*/
.ui.padded.segment {
  padding: 1.5em;
}
.ui[class*="very padded"].segment {
  padding: 3em;
}
/* Padded vertical */
.ui.padded.segment.vertical.segment,
.ui[class*="very padded"].vertical.segment {
  padding-left: 0px;
  padding-right: 0px;
}
/*-------------------
       Compact
--------------------*/
.ui.compact.segment {
  display: table;
}
/* Compact Group */
.ui.compact.segments {
  display: inline-flex;
}
.ui.compact.segments .segment,
.ui.segments .compact.segment {
  display: block;
  flex: 0 1 auto;
}
/*-------------------
       Circular
--------------------*/
.ui.circular.segment {
  display: table-cell;
  padding: 2em;
  text-align: center;
  vertical-align: middle;
  border-radius: 500em;
}
/*-------------------
       Raised
--------------------*/
.ui.raised.segments,
.ui.raised.segment {
  box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
/*******************************
            Groups
*******************************/
/* Group */
.ui.segments {
  flex-direction: column;
  position: relative;
  margin: 1rem 0em;
  border: 1px solid rgba(34, 36, 38, 0.15);
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
  border-radius: 0.28571429rem;
}
.ui.segments:first-child {
  margin-top: 0em;
}
.ui.segments:last-child {
  margin-bottom: 0em;
}
/* Nested Segment */
.ui.segments > .segment {
  top: 0px;
  bottom: 0px;
  border-radius: 0px;
  margin: 0em;
  width: auto;
  box-shadow: none;
  border: none;
  border-top: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.segments:not(.horizontal) > .segment:first-child {
  border-top: none;
  margin-top: 0em;
  bottom: 0px;
  margin-bottom: 0em;
  top: 0px;
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
/* Bottom */
.ui.segments:not(.horizontal) > .segment:last-child {
  top: 0px;
  bottom: 0px;
  margin-top: 0em;
  margin-bottom: 0em;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
/* Only */
.ui.segments:not(.horizontal) > .segment:only-child {
  border-radius: 0.28571429rem;
}
/* Nested Group */
.ui.segments > .ui.segments {
  border-top: 1px solid rgba(34, 36, 38, 0.15);
  margin: 1rem 1rem;
}
.ui.segments > .segments:first-child {
  border-top: none;
}
.ui.segments > .segment + .segments:not(.horizontal) {
  margin-top: 0em;
}
/* Horizontal Group */
.ui.horizontal.segments {
  display: flex;
  flex-direction: row;
  background-color: transparent;
  border-radius: 0px;
  padding: 0em;
  background-color: #FFFFFF;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
  margin: 1rem 0em;
  border-radius: 0.28571429rem;
  border: 1px solid rgba(34, 36, 38, 0.15);
}
/* Nested Horizontal Group */
.ui.segments > .horizontal.segments {
  margin: 0em;
  background-color: transparent;
  border-radius: 0px;
  border: none;
  box-shadow: none;
  border-top: 1px solid rgba(34, 36, 38, 0.15);
}
/* Horizontal Segment */
.ui.horizontal.segments > .segment {
  flex: 1 1 auto;
  -ms-flex: 1 1 0px;
  /* Solves #2550 MS Flex */
  margin: 0em;
  min-width: 0px;
  background-color: transparent;
  border-radius: 0px;
  border: none;
  box-shadow: none;
  border-left: 1px solid rgba(34, 36, 38, 0.15);
}
/* Border Fixes */
.ui.segments > .horizontal.segments:first-child {
  border-top: none;
}
.ui.horizontal.segments > .segment:first-child {
  border-left: none;
}
/*******************************
            States
*******************************/
/*--------------
    Disabled
---------------*/
.ui.disabled.segment {
  opacity: 0.45;
  color: rgba(40, 40, 40, 0.3);
}
/*--------------
    Loading
---------------*/
.ui.loading.segment {
  position: relative;
  cursor: default;
  pointer-events: none;
  text-shadow: none !important;
  color: transparent !important;
  transition: all 0s linear;
}
.ui.loading.segment:before {
  position: absolute;
  content: '';
  top: 0%;
  left: 0%;
  background: rgba(255, 255, 255, 0.8);
  width: 100%;
  height: 100%;
  border-radius: 0.28571429rem;
  z-index: 100;
}
.ui.loading.segment:after {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -1.5em 0em 0em -1.5em;
  width: 3em;
  height: 3em;
  animation: segment-spin 0.6s linear;
  animation-iteration-count: infinite;
  border-radius: 500rem;
  border-color: #767676 rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1);
  border-style: solid;
  border-width: 0.2em;
  box-shadow: 0px 0px 0px 1px transparent;
  visibility: visible;
  z-index: 101;
}
@keyframes segment-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/*******************************
           Variations
*******************************/
/*-------------------
       Basic
--------------------*/
.ui.basic.segment {
  background: none transparent;
  box-shadow: none;
  border: none;
  border-radius: 0px;
}
/*-------------------
       Clearing
--------------------*/
.ui.clearing.segment:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}
/*-------------------
       Colors
--------------------*/
/* Red */
.ui.red.segment:not(.inverted) {
  border-top: 2px solid #DB2828 !important;
}
.ui.inverted.red.segment {
  background-color: #DB2828 !important;
  color: #FFFFFF !important;
}
/* Orange */
.ui.orange.segment:not(.inverted) {
  border-top: 2px solid #F2711C !important;
}
.ui.inverted.orange.segment {
  background-color: #F2711C !important;
  color: #FFFFFF !important;
}
/* Yellow */
.ui.yellow.segment:not(.inverted) {
  border-top: 2px solid #FBBD08 !important;
}
.ui.inverted.yellow.segment {
  background-color: #FBBD08 !important;
  color: #FFFFFF !important;
}
/* Olive */
.ui.olive.segment:not(.inverted) {
  border-top: 2px solid #B5CC18 !important;
}
.ui.inverted.olive.segment {
  background-color: #B5CC18 !important;
  color: #FFFFFF !important;
}
/* Green */
.ui.green.segment:not(.inverted) {
  border-top: 2px solid #21BA45 !important;
}
.ui.inverted.green.segment {
  background-color: #21BA45 !important;
  color: #FFFFFF !important;
}
/* Teal */
.ui.teal.segment:not(.inverted) {
  border-top: 2px solid #00B5AD !important;
}
.ui.inverted.teal.segment {
  background-color: #00B5AD !important;
  color: #FFFFFF !important;
}
/* Blue */
.ui.blue.segment:not(.inverted) {
  border-top: 2px solid #2185D0 !important;
}
.ui.inverted.blue.segment {
  background-color: #2185D0 !important;
  color: #FFFFFF !important;
}
/* Violet */
.ui.violet.segment:not(.inverted) {
  border-top: 2px solid #6435C9 !important;
}
.ui.inverted.violet.segment {
  background-color: #6435C9 !important;
  color: #FFFFFF !important;
}
/* Purple */
.ui.purple.segment:not(.inverted) {
  border-top: 2px solid #A333C8 !important;
}
.ui.inverted.purple.segment {
  background-color: #A333C8 !important;
  color: #FFFFFF !important;
}
/* Pink */
.ui.pink.segment:not(.inverted) {
  border-top: 2px solid #E03997 !important;
}
.ui.inverted.pink.segment {
  background-color: #E03997 !important;
  color: #FFFFFF !important;
}
/* Brown */
.ui.brown.segment:not(.inverted) {
  border-top: 2px solid #A5673F !important;
}
.ui.inverted.brown.segment {
  background-color: #A5673F !important;
  color: #FFFFFF !important;
}
/* Grey */
.ui.grey.segment:not(.inverted) {
  border-top: 2px solid #767676 !important;
}
.ui.inverted.grey.segment {
  background-color: #767676 !important;
  color: #FFFFFF !important;
}
/* Black */
.ui.black.segment:not(.inverted) {
  border-top: 2px solid #1B1C1D !important;
}
.ui.inverted.black.segment {
  background-color: #1B1C1D !important;
  color: #FFFFFF !important;
}
/*-------------------
       Aligned
--------------------*/
.ui[class*="left aligned"].segment {
  text-align: left;
}
.ui[class*="right aligned"].segment {
  text-align: right;
}
.ui[class*="center aligned"].segment {
  text-align: center;
}
/*-------------------
       Floated
--------------------*/
.ui.floated.segment,
.ui[class*="left floated"].segment {
  float: left;
  margin-right: 1em;
}
.ui[class*="right floated"].segment {
  float: right;
  margin-left: 1em;
}
/*-------------------
      Inverted
--------------------*/
.ui.inverted.segment {
  border: none;
  box-shadow: none;
}
.ui.inverted.segment,
.ui.primary.inverted.segment {
  background: #1B1C1D;
  color: rgba(255, 255, 255, 0.9);
}
/* Nested */
.ui.inverted.segment .segment {
  color: rgba(0, 0, 0, 0.87);
}
.ui.inverted.segment .inverted.segment {
  color: rgba(255, 255, 255, 0.9);
}
/* Attached */
.ui.inverted.attached.segment {
  border-color: #555555;
}
/*-------------------
     Emphasis
--------------------*/
/* Secondary */
.ui.secondary.segment {
  background: #F3F4F5;
  color: rgba(0, 0, 0, 0.6);
}
.ui.secondary.inverted.segment {
  background: #4c4f52 linear-gradient(rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 100%);
  color: rgba(255, 255, 255, 0.8);
}
/* Tertiary */
.ui.tertiary.segment {
  background: #DCDDDE;
  color: rgba(0, 0, 0, 0.6);
}
.ui.tertiary.inverted.segment {
  background: #717579 linear-gradient(rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.35) 100%);
  color: rgba(255, 255, 255, 0.8);
}
/*-------------------
      Attached
--------------------*/
/* Middle */
.ui.attached.segment {
  top: 0px;
  bottom: 0px;
  border-radius: 0px;
  margin: 0em -1px;
  width: calc(100% - (-1px * 2));
  max-width: calc(100% - (-1px * 2));
  box-shadow: none;
  border: 1px solid #D4D4D5;
}
.ui.attached:not(.message) + .ui.attached.segment:not(.top) {
  border-top: none;
}
/* Top */
.ui[class*="top attached"].segment {
  bottom: 0px;
  margin-bottom: 0em;
  top: 0px;
  margin-top: 1rem;
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.segment[class*="top attached"]:first-child {
  margin-top: 0em;
}
/* Bottom */
.ui.segment[class*="bottom attached"] {
  bottom: 0px;
  margin-top: 0em;
  top: 0px;
  margin-bottom: 1rem;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
.ui.segment[class*="bottom attached"]:last-child {
  margin-bottom: 0em;
}
/*-------------------
        Size
--------------------*/
.ui.mini.segments .segment,
.ui.mini.segment {
  font-size: 0.78571429rem;
}
.ui.tiny.segments .segment,
.ui.tiny.segment {
  font-size: 0.85714286rem;
}
.ui.small.segments .segment,
.ui.small.segment {
  font-size: 0.92857143rem;
}
.ui.segments .segment,
.ui.segment {
  font-size: 1rem;
}
.ui.large.segments .segment,
.ui.large.segment {
  font-size: 1.14285714rem;
}
.ui.big.segments .segment,
.ui.big.segment {
  font-size: 1.28571429rem;
}
.ui.huge.segments .segment,
.ui.huge.segment {
  font-size: 1.42857143rem;
}
.ui.massive.segments .segment,
.ui.massive.segment {
  font-size: 1.71428571rem;
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
.ui.secondary.segment {
  color: black;
  padding: 0.7em;
}
/* Brand */
.ui.brand.segment:not(.inverted) {
  border-top: 2px solid #2185D0 !important;
}
.ui.inverted.brand.segment {
  background-color: #2185D0 !important;
  color: #FFFFFF !important;
}
/*!
 * # Semantic UI - Step
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
             Step
*******************************/
/*--------------
   Load Theme
---------------*/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Step
*******************************/
/*-------------------
       Group
--------------------*/
/*-------------------
      Element
--------------------*/
/* Icon */
/* Title */
/* Description */
/* Arrow */
/* Mobile */
/*-------------------
       Types
--------------------*/
/* Vertical */
/*-------------------
      Variations
--------------------*/
/*-------------------
       States
--------------------*/
/* Completed */
/* Hover */
/* Down */
/* Active */
/* Active + Hover */
/* Disabled */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Plural
*******************************/
.ui.steps {
  display: inline-flex;
  flex-direction: row;
  align-items: stretch;
  margin: 1em 0em;
  background: '';
  box-shadow: none;
  line-height: 1.14285714em;
  border-radius: 0.28571429rem;
  border: 1px solid rgba(34, 36, 38, 0.15);
}
/* First Steps */
.ui.steps:first-child {
  margin-top: 0em;
}
/* Last Steps */
.ui.steps:last-child {
  margin-bottom: 0em;
}
/*******************************
           Singular
*******************************/
.ui.steps .step {
  position: relative;
  display: flex;
  flex: 1 0 auto;
  flex-wrap: wrap;
  flex-direction: row;
  vertical-align: middle;
  align-items: center;
  justify-content: center;
  margin: 0em 0em;
  padding: 1.14285714em 2em;
  background: #FFFFFF;
  color: rgba(0, 0, 0, 0.87);
  box-shadow: none;
  border-radius: 0em;
  border: none;
  border-right: 1px solid rgba(34, 36, 38, 0.15);
  transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
}
/* Arrow */
.ui.steps .step:after {
  display: none;
  position: absolute;
  z-index: 2;
  content: '';
  top: 50%;
  right: 0%;
  border: medium none;
  background-color: #FFFFFF;
  width: 1.14285714em;
  height: 1.14285714em;
  border-style: solid;
  border-color: rgba(34, 36, 38, 0.15);
  border-width: 0px 1px 1px 0px;
  transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
  transform: translateY(-50%) translateX(50%) rotate(-45deg);
}
/* First Step */
.ui.steps .step:first-child {
  padding-left: 2em;
  border-radius: 0.28571429rem 0em 0em 0.28571429rem;
}
/* Last Step */
.ui.steps .step:last-child {
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
}
.ui.steps .step:last-child {
  border-right: none;
  margin-right: 0em;
}
/* Only Step */
.ui.steps .step:only-child {
  border-radius: 0.28571429rem;
}
/*******************************
            Content
*******************************/
/* Title */
.ui.steps .step .title {
  font-family: 'Lato', sans-serif;
  font-size: 1.14285714em;
  font-weight: bold;
}
.ui.steps .step > .title {
  width: 100%;
}
/* Description */
.ui.steps .step .description {
  font-weight: normal;
  font-size: 0.92857143em;
  color: rgba(0, 0, 0, 0.87);
}
.ui.steps .step > .description {
  width: 100%;
}
.ui.steps .step .title ~ .description {
  margin-top: 0.25em;
}
/* Icon */
.ui.steps .step > .icon {
  line-height: 1;
  font-size: 2.5em;
  margin: 0em 1rem 0em 0em;
}
.ui.steps .step > .icon,
.ui.steps .step > .icon ~ .content {
  display: block;
  flex: 0 1 auto;
  align-self: middle;
}
.ui.steps .step > .icon ~ .content {
  flex-grow: 1 0 auto;
}
/* Horizontal Icon */
.ui.steps:not(.vertical) .step > .icon {
  width: auto;
}
/* Link */
.ui.steps .link.step,
.ui.steps a.step {
  cursor: pointer;
}
/*******************************
            Types
*******************************/
/*--------------
     Ordered
---------------*/
.ui.ordered.steps {
  counter-reset: ordered;
}
.ui.ordered.steps .step:before {
  display: block;
  position: static;
  text-align: center;
  content: counters(ordered, ".");
  align-self: middle;
  margin-right: 1rem;
  font-size: 2.5em;
  counter-increment: ordered;
  font-family: inherit;
  font-weight: bold;
}
.ui.ordered.steps .step > * {
  display: block;
  align-self: middle;
}
/*--------------
    Vertical
---------------*/
.ui.vertical.steps {
  display: inline-flex;
  flex-direction: column;
  overflow: visible;
}
.ui.vertical.steps .step {
  justify-content: flex-start;
  border-radius: 0em;
  padding: 1.14285714em 2em;
  border-right: none;
  border-bottom: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.vertical.steps .step:first-child {
  padding: 1.14285714em 2em;
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.vertical.steps .step:last-child {
  border-bottom: none;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
.ui.vertical.steps .step:only-child {
  border-radius: 0.28571429rem;
}
/* Arrow */
.ui.vertical.steps .step:after {
  display: none;
}
.ui.vertical.steps .step:after {
  top: 50%;
  right: 0%;
  border-width: 0px 1px 1px 0px;
}
.ui.vertical.steps .step:after {
  display: none;
}
.ui.vertical.steps .active.step:after {
  display: block;
}
.ui.vertical.steps .step:last-child:after {
  display: none;
}
.ui.vertical.steps .active.step:last-child:after {
  display: block;
}
/*---------------
    Responsive
----------------*/
/* Mobile (Default) */
@media only screen and (max-width: 767px) {
  .ui.steps:not(.unstackable) {
    display: inline-flex;
    overflow: visible;
    flex-direction: column;
  }
  .ui.steps:not(.unstackable) .step {
    width: 100% !important;
    flex-direction: column;
    border-radius: 0em;
    padding: 1.14285714em 2em;
  }
  .ui.steps:not(.unstackable) .step:first-child {
    padding: 1.14285714em 2em;
    border-radius: 0.28571429rem 0.28571429rem 0em 0em;
  }
  .ui.steps:not(.unstackable) .step:last-child {
    border-radius: 0em 0em 0.28571429rem 0.28571429rem;
  }
  /* Arrow */
  .ui.steps:not(.unstackable) .step:after {
    display: none !important;
  }
  /* Content */
  .ui.steps:not(.unstackable) .step .content {
    text-align: center;
  }
  /* Icon */
  .ui.steps:not(.unstackable) .step > .icon,
  .ui.ordered.steps:not(.unstackable) .step:before {
    margin: 0em 0em 1rem 0em;
  }
}
/*******************************
             States
*******************************/
/* Link Hover */
.ui.steps .link.step:hover::after,
.ui.steps .link.step:hover,
.ui.steps a.step:hover::after,
.ui.steps a.step:hover {
  background: #F9FAFB;
  color: rgba(0, 0, 0, 0.8);
}
/* Link Down */
.ui.steps .link.step:active::after,
.ui.steps .link.step:active,
.ui.steps a.step:active::after,
.ui.steps a.step:active {
  background: #F3F4F5;
  color: rgba(0, 0, 0, 0.9);
}
/* Active */
.ui.steps .step.active {
  cursor: auto;
  background: #F3F4F5;
}
.ui.steps .step.active:after {
  background: #F3F4F5;
}
.ui.steps .step.active .title {
  color: #4183C4;
}
.ui.ordered.steps .step.active:before,
.ui.steps .active.step .icon {
  color: rgba(0, 0, 0, 0.85);
}
/* Active Arrow */
.ui.steps .step:after {
  display: block;
}
.ui.steps .active.step:after {
  display: block;
}
.ui.steps .step:last-child:after {
  display: none;
}
.ui.steps .active.step:last-child:after {
  display: none;
}
/* Active Hover */
.ui.steps .link.active.step:hover::after,
.ui.steps .link.active.step:hover,
.ui.steps a.active.step:hover::after,
.ui.steps a.active.step:hover {
  cursor: pointer;
  background: #DCDDDE;
  color: rgba(0, 0, 0, 0.87);
}
/* Completed */
.ui.steps .step.completed > .icon:before,
.ui.ordered.steps .step.completed:before {
  color: #21BA45;
}
/* Disabled */
.ui.steps .disabled.step {
  cursor: auto;
  background: #FFFFFF;
  pointer-events: none;
}
.ui.steps .disabled.step,
.ui.steps .disabled.step .title,
.ui.steps .disabled.step .description {
  color: rgba(40, 40, 40, 0.3);
}
.ui.steps .disabled.step:after {
  background: #FFFFFF;
}
/*******************************
           Variations
*******************************/
/*--------------
   Stackable
---------------*/
/* Tablet Or Below */
@media only screen and (max-width: 991px) {
  .ui[class*="tablet stackable"].steps {
    display: inline-flex;
    overflow: visible;
    flex-direction: column;
  }
  /* Steps */
  .ui[class*="tablet stackable"].steps .step {
    flex-direction: column;
    border-radius: 0em;
    padding: 1.14285714em 2em;
  }
  .ui[class*="tablet stackable"].steps .step:first-child {
    padding: 1.14285714em 2em;
    border-radius: 0.28571429rem 0.28571429rem 0em 0em;
  }
  .ui[class*="tablet stackable"].steps .step:last-child {
    border-radius: 0em 0em 0.28571429rem 0.28571429rem;
  }
  /* Arrow */
  .ui[class*="tablet stackable"].steps .step:after {
    display: none !important;
  }
  /* Content */
  .ui[class*="tablet stackable"].steps .step .content {
    text-align: center;
  }
  /* Icon */
  .ui[class*="tablet stackable"].steps .step > .icon,
  .ui[class*="tablet stackable"].ordered.steps .step:before {
    margin: 0em 0em 1rem 0em;
  }
}
/*--------------
      Fluid
---------------*/
/* Fluid */
.ui.fluid.steps {
  display: flex;
  width: 100%;
}
/*--------------
    Attached
---------------*/
/* Top */
.ui.attached.steps {
  width: calc(100% + (--1px * 2)) !important;
  margin: 0em -1px 0;
  max-width: calc(100% + (--1px * 2));
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.attached.steps .step:first-child {
  border-radius: 0.28571429rem 0em 0em 0em;
}
.ui.attached.steps .step:last-child {
  border-radius: 0em 0.28571429rem 0em 0em;
}
/* Bottom */
.ui.bottom.attached.steps {
  margin: 0 -1px 0em;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
.ui.bottom.attached.steps .step:first-child {
  border-radius: 0em 0em 0em 0.28571429rem;
}
.ui.bottom.attached.steps .step:last-child {
  border-radius: 0em 0em 0.28571429rem 0em;
}
/*-------------------
    Evenly Divided
--------------------*/
.ui.one.steps,
.ui.two.steps,
.ui.three.steps,
.ui.four.steps,
.ui.five.steps,
.ui.six.steps,
.ui.seven.steps,
.ui.eight.steps {
  width: 100%;
}
.ui.one.steps > .step,
.ui.two.steps > .step,
.ui.three.steps > .step,
.ui.four.steps > .step,
.ui.five.steps > .step,
.ui.six.steps > .step,
.ui.seven.steps > .step,
.ui.eight.steps > .step {
  flex-wrap: nowrap;
}
.ui.one.steps > .step {
  width: 100%;
}
.ui.two.steps > .step {
  width: 50%;
}
.ui.three.steps > .step {
  width: 33.333%;
}
.ui.four.steps > .step {
  width: 25%;
}
.ui.five.steps > .step {
  width: 20%;
}
.ui.six.steps > .step {
  width: 16.666%;
}
.ui.seven.steps > .step {
  width: 14.285%;
}
.ui.eight.steps > .step {
  width: 12.5%;
}
/*-------------------
       Sizes
--------------------*/
.ui.mini.steps .step,
.ui.mini.step {
  font-size: 0.78571429rem;
}
.ui.tiny.steps .step,
.ui.tiny.step {
  font-size: 0.85714286rem;
}
.ui.small.steps .step,
.ui.small.step {
  font-size: 0.92857143rem;
}
.ui.steps .step,
.ui.step {
  font-size: 1rem;
}
.ui.large.steps .step,
.ui.large.step {
  font-size: 1.14285714rem;
}
.ui.big.steps .step,
.ui.big.step {
  font-size: 1.28571429rem;
}
.ui.huge.steps .step,
.ui.huge.step {
  font-size: 1.42857143rem;
}
.ui.massive.steps .step,
.ui.massive.step {
  font-size: 1.71428571rem;
}
/* Collections */
/*!
 * # Semantic UI - Breadcrumb
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
          Breadcrumb
*******************************/
/*-------------------
     Breadcrumb
--------------------*/
/* Coupling */
/*-------------------
       States
--------------------*/
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
           Breadcrumb
*******************************/
.ui.breadcrumb {
  line-height: 1;
  display: inline-block;
  margin: 0em 0em;
  vertical-align: middle;
}
.ui.breadcrumb:first-child {
  margin-top: 0em;
}
.ui.breadcrumb:last-child {
  margin-bottom: 0em;
}
/*******************************
          Content
*******************************/
/* Divider */
.ui.breadcrumb .divider {
  display: inline-block;
  opacity: 0.7;
  margin: 0em 0.21428571rem 0em;
  font-size: 0.92857143em;
  color: rgba(0, 0, 0, 0.4);
  vertical-align: baseline;
}
/* Link */
.ui.breadcrumb a {
  color: #4183C4;
}
.ui.breadcrumb a:hover {
  color: #1e70bf;
}
/* Icon Divider */
.ui.breadcrumb .icon.divider {
  font-size: 0.85714286em;
  vertical-align: baseline;
}
/* Section */
.ui.breadcrumb a.section {
  cursor: pointer;
}
.ui.breadcrumb .section {
  display: inline-block;
  margin: 0em;
  padding: 0em;
}
/* Loose Coupling */
.ui.breadcrumb.segment {
  display: inline-block;
  padding: 0.78571429em 1em;
}
/*******************************
            States
*******************************/
.ui.breadcrumb .active.section {
  font-weight: bold;
}
/*******************************
           Variations
*******************************/
.ui.mini.breadcrumb {
  font-size: 0.78571429rem;
}
.ui.tiny.breadcrumb {
  font-size: 0.85714286rem;
}
.ui.small.breadcrumb {
  font-size: 0.92857143rem;
}
.ui.breadcrumb {
  font-size: 1rem;
}
.ui.large.breadcrumb {
  font-size: 1.14285714rem;
}
.ui.big.breadcrumb {
  font-size: 1.28571429rem;
}
.ui.huge.breadcrumb {
  font-size: 1.42857143rem;
}
.ui.massive.breadcrumb {
  font-size: 1.71428571rem;
}
/*!
 * # Semantic UI - Form
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Form
*******************************/
/*-------------------
       Elements
--------------------*/
/* Form */
/* Text */
/* Field */
/* Fields */
/* Form Label */
/* Input */
/* Select */
/* Text Area */
/* Checkbox */
/* Inline Validation Prompt */
/*-------------------
        States
--------------------*/
/* Focus */
/* Input Focus */
/* Text Area Focus */
/* Disabled */
/* Errored Input */
/* AutoFill */
/* Input Error */
/* Dropdown Error */
/* Focused Error */
/* Placeholder Error */
/* Loading Dimmer */
/* Loading Spinner */
/*-------------------
        Types
--------------------*/
/* Required */
/* Inverted */
/*-------------------
      Variations
--------------------*/
/* Grouped Fields */
/* Inline */
/*-------------------
       Groups
--------------------*/
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Elements
*******************************/
/*--------------------
        Form
---------------------*/
.ui.form {
  position: relative;
  max-width: 100%;
}
/*--------------------
        Content
---------------------*/
.ui.form > p {
  margin: 1em 0em;
}
/*--------------------
        Field
---------------------*/
.ui.form .field {
  clear: both;
  margin: 0em 0em 1em;
}
.ui.form .field:last-child,
.ui.form .fields:last-child .field {
  margin-bottom: 0em;
}
.ui.form .fields .field {
  clear: both;
  margin: 0em;
}
/*--------------------
        Labels
---------------------*/
.ui.form .field > label {
  display: block;
  margin: 0em 0em 0.28571429rem 0em;
  color: rgba(0, 0, 0, 0.87);
  font-size: 0.92857143em;
  font-weight: bold;
  text-transform: none;
}
/*--------------------
    Standard Inputs
---------------------*/
.ui.form textarea,
.ui.form input:not([type]),
.ui.form input[type="date"],
.ui.form input[type="datetime-local"],
.ui.form input[type="email"],
.ui.form input[type="number"],
.ui.form input[type="password"],
.ui.form input[type="search"],
.ui.form input[type="tel"],
.ui.form input[type="time"],
.ui.form input[type="text"],
.ui.form input[type="file"],
.ui.form input[type="url"] {
  width: 100%;
  vertical-align: top;
}
/* Set max height on unusual input */
.ui.form ::-webkit-datetime-edit,
.ui.form ::-webkit-inner-spin-button {
  height: 1.21428571em;
}
.ui.form input:not([type]),
.ui.form input[type="date"],
.ui.form input[type="datetime-local"],
.ui.form input[type="email"],
.ui.form input[type="number"],
.ui.form input[type="password"],
.ui.form input[type="search"],
.ui.form input[type="tel"],
.ui.form input[type="time"],
.ui.form input[type="text"],
.ui.form input[type="file"],
.ui.form input[type="url"] {
  font-family: 'Lato', sans-serif;
  margin: 0em;
  outline: none;
  -webkit-appearance: none;
  tap-highlight-color: rgba(255, 255, 255, 0);
  line-height: 1.21428571em;
  padding: 0.67857143em 1em;
  font-size: 1em;
  background: #FFFFFF;
  border: 1px solid rgba(34, 36, 38, 0.15);
  color: rgba(0, 0, 0, 0.87);
  border-radius: 0.28571429rem;
  box-shadow: 0em 0em 0em 0em transparent inset;
  transition: color 0.1s ease, border-color 0.1s ease;
}
/* Text Area */
.ui.form textarea {
  margin: 0em;
  -webkit-appearance: none;
  tap-highlight-color: rgba(255, 255, 255, 0);
  padding: 0.78571429em 1em;
  background: #FFFFFF;
  border: 1px solid rgba(34, 36, 38, 0.15);
  outline: none;
  color: rgba(0, 0, 0, 0.87);
  border-radius: 0.28571429rem;
  box-shadow: 0em 0em 0em 0em transparent inset;
  transition: color 0.1s ease, border-color 0.1s ease;
  font-size: 1em;
  line-height: 1.2857;
  resize: vertical;
}
.ui.form textarea:not([rows]) {
  height: 12em;
  min-height: 8em;
  max-height: 24em;
}
.ui.form textarea,
.ui.form input[type="checkbox"] {
  vertical-align: top;
}
/*--------------------------
  Input w/ attached Button
---------------------------*/
.ui.form input.attached {
  width: auto;
}
/*--------------------
     Basic Select
---------------------*/
.ui.form select {
  display: block;
  height: auto;
  width: 100%;
  background: #FFFFFF;
  border: 1px solid rgba(34, 36, 38, 0.15);
  border-radius: 0.28571429rem;
  box-shadow: 0em 0em 0em 0em transparent inset;
  padding: 0.62em 1em;
  color: rgba(0, 0, 0, 0.87);
  transition: color 0.1s ease, border-color 0.1s ease;
}
/*--------------------
       Dropdown
---------------------*/
/* Block */
.ui.form .field > .selection.dropdown {
  width: 100%;
}
.ui.form .field > .selection.dropdown > .dropdown.icon {
  float: right;
}
/* Inline */
.ui.form .inline.fields .field > .selection.dropdown,
.ui.form .inline.field > .selection.dropdown {
  width: auto;
}
.ui.form .inline.fields .field > .selection.dropdown > .dropdown.icon,
.ui.form .inline.field > .selection.dropdown > .dropdown.icon {
  float: none;
}
/*--------------------
       UI Input
---------------------*/
/* Block */
.ui.form .field .ui.input,
.ui.form .fields .field .ui.input,
.ui.form .wide.field .ui.input {
  width: 100%;
}
/* Inline  */
.ui.form .inline.fields .field:not(.wide) .ui.input,
.ui.form .inline.field:not(.wide) .ui.input {
  width: auto;
  vertical-align: middle;
}
/* Auto Input */
.ui.form .fields .field .ui.input input,
.ui.form .field .ui.input input {
  width: auto;
}
/* Full Width Input */
.ui.form .ten.fields .ui.input input,
.ui.form .nine.fields .ui.input input,
.ui.form .eight.fields .ui.input input,
.ui.form .seven.fields .ui.input input,
.ui.form .six.fields .ui.input input,
.ui.form .five.fields .ui.input input,
.ui.form .four.fields .ui.input input,
.ui.form .three.fields .ui.input input,
.ui.form .two.fields .ui.input input,
.ui.form .wide.field .ui.input input {
  flex: 1 0 auto;
  width: 0px;
}
/*--------------------
   Types of Messages
---------------------*/
.ui.form .success.message,
.ui.form .warning.message,
.ui.form .error.message {
  display: none;
}
/* Assumptions */
.ui.form .message:first-child {
  margin-top: 0px;
}
/*--------------------
   Validation Prompt
---------------------*/
.ui.form .field .prompt.label {
  white-space: normal;
  background: #FFFFFF !important;
  border: 1px solid #E0B4B4 !important;
  color: #9F3A38 !important;
}
.ui.form .inline.fields .field .prompt,
.ui.form .inline.field .prompt {
  vertical-align: top;
  margin: -0.25em 0em -0.5em 0.5em;
}
.ui.form .inline.fields .field .prompt:before,
.ui.form .inline.field .prompt:before {
  border-width: 0px 0px 1px 1px;
  bottom: auto;
  right: auto;
  top: 50%;
  left: 0em;
}
/*******************************
            States
*******************************/
/*--------------------
      Autofilled
---------------------*/
.ui.form .field.field input:-webkit-autofill {
  box-shadow: 0px 0px 0px 100px #FFFFF0 inset !important;
  border-color: #E5DFA1 !important;
}
/* Focus */
.ui.form .field.field input:-webkit-autofill:focus {
  box-shadow: 0px 0px 0px 100px #FFFFF0 inset !important;
  border-color: #D5C315 !important;
}
/* Error */
.ui.form .error.error input:-webkit-autofill {
  box-shadow: 0px 0px 0px 100px #FFFAF0 inset !important;
  border-color: #E0B4B4 !important;
}
/*--------------------
      Placeholder
---------------------*/
/* browsers require these rules separate */
.ui.form ::-webkit-input-placeholder {
  color: rgba(191, 191, 191, 0.87);
}
.ui.form :-ms-input-placeholder {
  color: rgba(191, 191, 191, 0.87) !important;
}
.ui.form ::-moz-placeholder {
  color: rgba(191, 191, 191, 0.87);
}
.ui.form :focus::-webkit-input-placeholder {
  color: rgba(115, 115, 115, 0.87);
}
.ui.form :focus:-ms-input-placeholder {
  color: rgba(115, 115, 115, 0.87) !important;
}
.ui.form :focus::-moz-placeholder {
  color: rgba(115, 115, 115, 0.87);
}
/* Error Placeholder */
.ui.form .error ::-webkit-input-placeholder {
  color: #e7bdbc;
}
.ui.form .error :-ms-input-placeholder {
  color: #e7bdbc !important;
}
.ui.form .error ::-moz-placeholder {
  color: #e7bdbc;
}
.ui.form .error :focus::-webkit-input-placeholder {
  color: #da9796;
}
.ui.form .error :focus:-ms-input-placeholder {
  color: #da9796 !important;
}
.ui.form .error :focus::-moz-placeholder {
  color: #da9796;
}
/*--------------------
        Focus
---------------------*/
.ui.form input:not([type]):focus,
.ui.form input[type="date"]:focus,
.ui.form input[type="datetime-local"]:focus,
.ui.form input[type="email"]:focus,
.ui.form input[type="number"]:focus,
.ui.form input[type="password"]:focus,
.ui.form input[type="search"]:focus,
.ui.form input[type="tel"]:focus,
.ui.form input[type="time"]:focus,
.ui.form input[type="text"]:focus,
.ui.form input[type="file"]:focus,
.ui.form input[type="url"]:focus {
  color: rgba(0, 0, 0, 0.95);
  border-color: #85B7D9;
  border-radius: 0.28571429rem;
  background: #FFFFFF;
  box-shadow: 0px 0em 0em 0em rgba(34, 36, 38, 0.35) inset;
}
.ui.form textarea:focus {
  color: rgba(0, 0, 0, 0.95);
  border-color: #85B7D9;
  border-radius: 0.28571429rem;
  background: #FFFFFF;
  box-shadow: 0px 0em 0em 0em rgba(34, 36, 38, 0.35) inset;
  -webkit-appearance: none;
}
/*--------------------
        Success
---------------------*/
/* On Form */
.ui.form.success .success.message:not(:empty) {
  display: block;
}
.ui.form.success .compact.success.message:not(:empty) {
  display: inline-block;
}
.ui.form.success .icon.success.message:not(:empty) {
  display: flex;
}
/*--------------------
        Warning
---------------------*/
/* On Form */
.ui.form.warning .warning.message:not(:empty) {
  display: block;
}
.ui.form.warning .compact.warning.message:not(:empty) {
  display: inline-block;
}
.ui.form.warning .icon.warning.message:not(:empty) {
  display: flex;
}
/*--------------------
        Error
---------------------*/
/* On Form */
.ui.form.error .error.message:not(:empty) {
  display: block;
}
.ui.form.error .compact.error.message:not(:empty) {
  display: inline-block;
}
.ui.form.error .icon.error.message:not(:empty) {
  display: flex;
}
/* On Field(s) */
.ui.form .fields.error .field label,
.ui.form .field.error label,
.ui.form .fields.error .field .input,
.ui.form .field.error .input {
  color: #9F3A38;
}
.ui.form .fields.error .field .corner.label,
.ui.form .field.error .corner.label {
  border-color: #9F3A38;
  color: #FFFFFF;
}
.ui.form .fields.error .field textarea,
.ui.form .fields.error .field select,
.ui.form .fields.error .field input:not([type]),
.ui.form .fields.error .field input[type="date"],
.ui.form .fields.error .field input[type="datetime-local"],
.ui.form .fields.error .field input[type="email"],
.ui.form .fields.error .field input[type="number"],
.ui.form .fields.error .field input[type="password"],
.ui.form .fields.error .field input[type="search"],
.ui.form .fields.error .field input[type="tel"],
.ui.form .fields.error .field input[type="time"],
.ui.form .fields.error .field input[type="text"],
.ui.form .fields.error .field input[type="file"],
.ui.form .fields.error .field input[type="url"],
.ui.form .field.error textarea,
.ui.form .field.error select,
.ui.form .field.error input:not([type]),
.ui.form .field.error input[type="date"],
.ui.form .field.error input[type="datetime-local"],
.ui.form .field.error input[type="email"],
.ui.form .field.error input[type="number"],
.ui.form .field.error input[type="password"],
.ui.form .field.error input[type="search"],
.ui.form .field.error input[type="tel"],
.ui.form .field.error input[type="time"],
.ui.form .field.error input[type="text"],
.ui.form .field.error input[type="file"],
.ui.form .field.error input[type="url"] {
  background: #FFF6F6;
  border-color: #E0B4B4;
  color: #9F3A38;
  border-radius: '';
  box-shadow: none;
}
.ui.form .field.error textarea:focus,
.ui.form .field.error select:focus,
.ui.form .field.error input:not([type]):focus,
.ui.form .field.error input[type="date"]:focus,
.ui.form .field.error input[type="datetime-local"]:focus,
.ui.form .field.error input[type="email"]:focus,
.ui.form .field.error input[type="number"]:focus,
.ui.form .field.error input[type="password"]:focus,
.ui.form .field.error input[type="search"]:focus,
.ui.form .field.error input[type="tel"]:focus,
.ui.form .field.error input[type="time"]:focus,
.ui.form .field.error input[type="text"]:focus,
.ui.form .field.error input[type="file"]:focus,
.ui.form .field.error input[type="url"]:focus {
  background: #FFF6F6;
  border-color: #E0B4B4;
  color: #9F3A38;
  -webkit-appearance: none;
  box-shadow: none;
}
/* Preserve Native Select Stylings */
.ui.form .field.error select {
  -webkit-appearance: menulist-button;
}
/*------------------
    Dropdown Error
--------------------*/
.ui.form .fields.error .field .ui.dropdown,
.ui.form .fields.error .field .ui.dropdown .item,
.ui.form .field.error .ui.dropdown,
.ui.form .field.error .ui.dropdown .text,
.ui.form .field.error .ui.dropdown .item {
  background: #FFF6F6;
  color: #9F3A38;
}
.ui.form .fields.error .field .ui.dropdown,
.ui.form .field.error .ui.dropdown {
  border-color: #E0B4B4 !important;
}
.ui.form .fields.error .field .ui.dropdown:hover,
.ui.form .field.error .ui.dropdown:hover {
  border-color: #E0B4B4 !important;
}
.ui.form .fields.error .field .ui.dropdown:hover .menu,
.ui.form .field.error .ui.dropdown:hover .menu {
  border-color: #E0B4B4;
}
.ui.form .fields.error .field .ui.multiple.selection.dropdown > .label,
.ui.form .field.error .ui.multiple.selection.dropdown > .label {
  background-color: #EACBCB;
  color: #9F3A38;
}
/* Hover */
.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
.ui.form .field.error .ui.dropdown .menu .item:hover {
  background-color: #FBE7E7;
}
/* Selected */
.ui.form .fields.error .field .ui.dropdown .menu .selected.item,
.ui.form .field.error .ui.dropdown .menu .selected.item {
  background-color: #FBE7E7;
}
/* Active */
.ui.form .fields.error .field .ui.dropdown .menu .active.item,
.ui.form .field.error .ui.dropdown .menu .active.item {
  background-color: #FDCFCF !important;
}
/*--------------------
    Checkbox Error
---------------------*/
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) label,
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box {
  color: #9F3A38;
}
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before,
.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before,
.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before {
  background: #FFF6F6;
  border-color: #E0B4B4;
}
.ui.form .fields.error .field .checkbox label:after,
.ui.form .field.error .checkbox label:after,
.ui.form .fields.error .field .checkbox .box:after,
.ui.form .field.error .checkbox .box:after {
  color: #9F3A38;
}
/*--------------------
       Disabled
---------------------*/
.ui.form .disabled.fields .field,
.ui.form .disabled.field,
.ui.form .field :disabled {
  pointer-events: none;
  opacity: 0.45;
}
.ui.form .field.disabled > label,
.ui.form .fields.disabled > label {
  opacity: 0.45;
}
.ui.form .field.disabled :disabled {
  opacity: 1;
}
/*--------------
    Loading
---------------*/
.ui.loading.form {
  position: relative;
  cursor: default;
  pointer-events: none;
}
.ui.loading.form:before {
  position: absolute;
  content: '';
  top: 0%;
  left: 0%;
  background: rgba(255, 255, 255, 0.8);
  width: 100%;
  height: 100%;
  z-index: 100;
}
.ui.loading.form:after {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -1.5em 0em 0em -1.5em;
  width: 3em;
  height: 3em;
  animation: form-spin 0.6s linear;
  animation-iteration-count: infinite;
  border-radius: 500rem;
  border-color: #767676 rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1);
  border-style: solid;
  border-width: 0.2em;
  box-shadow: 0px 0px 0px 1px transparent;
  visibility: visible;
  z-index: 101;
}
@keyframes form-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/*******************************
         Element Types
*******************************/
/*--------------------
     Required Field
---------------------*/
.ui.form .required.fields:not(.grouped) > .field > label:after,
.ui.form .required.fields.grouped > label:after,
.ui.form .required.field > label:after,
.ui.form .required.fields:not(.grouped) > .field > .checkbox:after,
.ui.form .required.field > .checkbox:after {
  margin: -0.2em 0em 0em 0.2em;
  content: '*';
  color: #DB2828;
}
.ui.form .required.fields:not(.grouped) > .field > label:after,
.ui.form .required.fields.grouped > label:after,
.ui.form .required.field > label:after {
  display: inline-block;
  vertical-align: top;
}
.ui.form .required.fields:not(.grouped) > .field > .checkbox:after,
.ui.form .required.field > .checkbox:after {
  position: absolute;
  top: 0%;
  left: 100%;
}
/*******************************
           Variations
*******************************/
/*--------------------
    Inverted Colors
---------------------*/
.ui.inverted.form label,
.ui.form .inverted.segment label,
.ui.form .inverted.segment .ui.checkbox label,
.ui.form .inverted.segment .ui.checkbox .box,
.ui.inverted.form .ui.checkbox label,
.ui.inverted.form .ui.checkbox .box,
.ui.inverted.form .inline.fields > label,
.ui.inverted.form .inline.fields .field > label,
.ui.inverted.form .inline.fields .field > p,
.ui.inverted.form .inline.field > label,
.ui.inverted.form .inline.field > p {
  color: rgba(255, 255, 255, 0.9);
}
/* Inverted Field */
.ui.inverted.form input:not([type]),
.ui.inverted.form input[type="date"],
.ui.inverted.form input[type="datetime-local"],
.ui.inverted.form input[type="email"],
.ui.inverted.form input[type="number"],
.ui.inverted.form input[type="password"],
.ui.inverted.form input[type="search"],
.ui.inverted.form input[type="tel"],
.ui.inverted.form input[type="time"],
.ui.inverted.form input[type="text"],
.ui.inverted.form input[type="file"],
.ui.inverted.form input[type="url"] {
  background: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.1);
  color: rgba(0, 0, 0, 0.87);
  box-shadow: none;
}
/*--------------------
     Field Groups
---------------------*/
/* Grouped Vertically */
.ui.form .grouped.fields {
  display: block;
  margin: 0em 0em 1em;
}
.ui.form .grouped.fields:last-child {
  margin-bottom: 0em;
}
.ui.form .grouped.fields > label {
  margin: 0em 0em 0.28571429rem 0em;
  color: rgba(0, 0, 0, 0.87);
  font-size: 0.92857143em;
  font-weight: bold;
  text-transform: none;
}
.ui.form .grouped.fields .field,
.ui.form .grouped.inline.fields .field {
  display: block;
  margin: 0.5em 0em;
  padding: 0em;
}
/*--------------------
        Fields
---------------------*/
/* Split fields */
.ui.form .fields {
  display: flex;
  flex-direction: row;
  margin: 0em -0.5em 1em;
}
.ui.form .fields > .field {
  flex: 0 1 auto;
  padding-left: 0.5em;
  padding-right: 0.5em;
}
.ui.form .fields > .field:first-child {
  border-left: none;
  box-shadow: none;
}
/* Other Combinations */
.ui.form .two.fields > .fields,
.ui.form .two.fields > .field {
  width: 50%;
}
.ui.form .three.fields > .fields,
.ui.form .three.fields > .field {
  width: 33.33333333%;
}
.ui.form .four.fields > .fields,
.ui.form .four.fields > .field {
  width: 25%;
}
.ui.form .five.fields > .fields,
.ui.form .five.fields > .field {
  width: 20%;
}
.ui.form .six.fields > .fields,
.ui.form .six.fields > .field {
  width: 16.66666667%;
}
.ui.form .seven.fields > .fields,
.ui.form .seven.fields > .field {
  width: 14.28571429%;
}
.ui.form .eight.fields > .fields,
.ui.form .eight.fields > .field {
  width: 12.5%;
}
.ui.form .nine.fields > .fields,
.ui.form .nine.fields > .field {
  width: 11.11111111%;
}
.ui.form .ten.fields > .fields,
.ui.form .ten.fields > .field {
  width: 10%;
}
/* Swap to full width on mobile */
@media only screen and (max-width: 767px) {
  .ui.form .fields {
    flex-wrap: wrap;
  }
  .ui[class*="equal width"].form:not(.unstackable) .fields > .field,
  .ui.form:not(.unstackable) [class*="equal width"].fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .six.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .six.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .seven.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .seven.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .eight.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .eight.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .nine.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .nine.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .ten.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .ten.fields:not(.unstackable) > .field {
    width: 100% !important;
    margin: 0em 0em 1em;
  }
}
/* Sizing Combinations */
.ui.form .fields .wide.field {
  width: 6.25%;
  padding-left: 0.5em;
  padding-right: 0.5em;
}
.ui.form .one.wide.field {
  width: 6.25% !important;
}
.ui.form .two.wide.field {
  width: 12.5% !important;
}
.ui.form .three.wide.field {
  width: 18.75% !important;
}
.ui.form .four.wide.field {
  width: 25% !important;
}
.ui.form .five.wide.field {
  width: 31.25% !important;
}
.ui.form .six.wide.field {
  width: 37.5% !important;
}
.ui.form .seven.wide.field {
  width: 43.75% !important;
}
.ui.form .eight.wide.field {
  width: 50% !important;
}
.ui.form .nine.wide.field {
  width: 56.25% !important;
}
.ui.form .ten.wide.field {
  width: 62.5% !important;
}
.ui.form .eleven.wide.field {
  width: 68.75% !important;
}
.ui.form .twelve.wide.field {
  width: 75% !important;
}
.ui.form .thirteen.wide.field {
  width: 81.25% !important;
}
.ui.form .fourteen.wide.field {
  width: 87.5% !important;
}
.ui.form .fifteen.wide.field {
  width: 93.75% !important;
}
.ui.form .sixteen.wide.field {
  width: 100% !important;
}
/* Swap to full width on mobile */
@media only screen and (max-width: 767px) {
  .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .fields,
  .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .two.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .three.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .four.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .five.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .six.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .seven.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .eight.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .nine.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .ten.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .eleven.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .twelve.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .thirteen.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .fourteen.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .fifteen.wide.field,
  .ui.form:not(.unstackable) .fields:not(.unstackable) > .sixteen.wide.field {
    width: 100% !important;
  }
  .ui.form .fields {
    margin-bottom: 0em;
  }
}
/*--------------------
     Equal Width
---------------------*/
.ui[class*="equal width"].form .fields > .field,
.ui.form [class*="equal width"].fields > .field {
  width: 100%;
  flex: 1 1 auto;
}
/*--------------------
    Inline Fields
---------------------*/
.ui.form .inline.fields {
  margin: 0em 0em 1em;
  align-items: center;
}
.ui.form .inline.fields .field {
  margin: 0em;
  padding: 0em 1em 0em 0em;
}
/* Inline Label */
.ui.form .inline.fields > label,
.ui.form .inline.fields .field > label,
.ui.form .inline.fields .field > p,
.ui.form .inline.field > label,
.ui.form .inline.field > p {
  display: inline-block;
  width: auto;
  margin-top: 0em;
  margin-bottom: 0em;
  vertical-align: baseline;
  font-size: 0.92857143em;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.87);
  text-transform: none;
}
/* Grouped Inline Label */
.ui.form .inline.fields > label {
  margin: 0.035714em 1em 0em 0em;
}
/* Inline Input */
.ui.form .inline.fields .field > input,
.ui.form .inline.fields .field > select,
.ui.form .inline.field > input,
.ui.form .inline.field > select {
  display: inline-block;
  width: auto;
  margin-top: 0em;
  margin-bottom: 0em;
  vertical-align: middle;
  font-size: 1em;
}
/* Label */
.ui.form .inline.fields .field > :first-child,
.ui.form .inline.field > :first-child {
  margin: 0em 0.85714286em 0em 0em;
}
.ui.form .inline.fields .field > :only-child,
.ui.form .inline.field > :only-child {
  margin: 0em;
}
/* Wide */
.ui.form .inline.fields .wide.field {
  display: flex;
  align-items: center;
}
.ui.form .inline.fields .wide.field > input,
.ui.form .inline.fields .wide.field > select {
  width: 100%;
}
/*--------------------
        Sizes
---------------------*/
.ui.mini.form {
  font-size: 0.78571429rem;
}
.ui.tiny.form {
  font-size: 0.85714286rem;
}
.ui.small.form {
  font-size: 0.92857143rem;
}
.ui.form {
  font-size: 1rem;
}
.ui.large.form {
  font-size: 1.14285714rem;
}
.ui.big.form {
  font-size: 1.28571429rem;
}
.ui.huge.form {
  font-size: 1.42857143rem;
}
.ui.massive.form {
  font-size: 1.71428571rem;
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
.ui.form .field small {
  color: #767676;
  margin-top: 0.4em !important;
}
/*!
 * # Semantic UI - Grid
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Grid
*******************************/
/* Inherited From Site */
/*******************************
            Grid
*******************************/
/*******************************
           Variations
*******************************/
/*--------------
     Relaxed
---------------*/
/*--------------
     Divided
---------------*/
/*--------------
    Celled
---------------*/
/*--------------
    Stackable
---------------*/
/*******************************
             Legacy
*******************************/
/*--------------
     Page
---------------*/
/* Legacy (DO NOT USE)
 */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Standard
*******************************/
.ui.grid {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  padding: 0em;
}
/*----------------------
      Remove Gutters
-----------------------*/
.ui.grid {
  margin-top: -1rem;
  margin-bottom: -1rem;
  margin-left: -1rem;
  margin-right: -1rem;
}
.ui.relaxed.grid {
  margin-left: -1.5rem;
  margin-right: -1.5rem;
}
.ui[class*="very relaxed"].grid {
  margin-left: -2.5rem;
  margin-right: -2.5rem;
}
/* Preserve Rows Spacing on Consecutive Grids */
.ui.grid + .grid {
  margin-top: 1rem;
}
/*-------------------
       Columns
--------------------*/
/* Standard 16 column */
.ui.grid > .column:not(.row),
.ui.grid > .row > .column {
  position: relative;
  display: inline-block;
  width: 6.25%;
  padding-left: 1rem;
  padding-right: 1rem;
  vertical-align: top;
}
.ui.grid > * {
  padding-left: 1rem;
  padding-right: 1rem;
}
/*-------------------
        Rows
--------------------*/
.ui.grid > .row {
  position: relative;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: inherit;
  align-items: stretch;
  width: 100% !important;
  padding: 0rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
/*-------------------
       Columns
--------------------*/
/* Vertical padding when no rows */
.ui.grid > .column:not(.row) {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.ui.grid > .row > .column {
  margin-top: 0em;
  margin-bottom: 0em;
}
/*-------------------
      Content
--------------------*/
.ui.grid > .row > img,
.ui.grid > .row > .column > img {
  max-width: 100%;
}
/*-------------------
    Loose Coupling
--------------------*/
/* Collapse Margin on Consecutive Grid */
.ui.grid > .ui.grid:first-child {
  margin-top: 0em;
}
.ui.grid > .ui.grid:last-child {
  margin-bottom: 0em;
}
/* Segment inside Aligned Grid */
.ui.grid .aligned.row > .column > .segment:not(.compact):not(.attached),
.ui.aligned.grid .column > .segment:not(.compact):not(.attached) {
  width: 100%;
}
/* Align Dividers with Gutter */
.ui.grid .row + .ui.divider {
  flex-grow: 1;
  margin: 1rem 1rem;
}
.ui.grid .column + .ui.vertical.divider {
  height: calc(50% - (2rem / 2));
}
/* Remove Border on Last Horizontal Segment */
.ui.grid > .row > .column:last-child > .horizontal.segment,
.ui.grid > .column:last-child > .horizontal.segment {
  box-shadow: none;
}
/*******************************
           Variations
*******************************/
/*-----------------------
       Page Grid
-------------------------*/
@media only screen and (max-width: 767px) {
  .ui.page.grid {
    width: auto;
    padding-left: 0em;
    padding-right: 0em;
    margin-left: 0em;
    margin-right: 0em;
  }
}
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ui.page.grid {
    width: auto;
    margin-left: 0em;
    margin-right: 0em;
    padding-left: 2em;
    padding-right: 2em;
  }
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .ui.page.grid {
    width: auto;
    margin-left: 0em;
    margin-right: 0em;
    padding-left: 3%;
    padding-right: 3%;
  }
}
@media only screen and (min-width: 1200px) and (max-width: 1919px) {
  .ui.page.grid {
    width: auto;
    margin-left: 0em;
    margin-right: 0em;
    padding-left: 15%;
    padding-right: 15%;
  }
}
@media only screen and (min-width: 1920px) {
  .ui.page.grid {
    width: auto;
    margin-left: 0em;
    margin-right: 0em;
    padding-left: 23%;
    padding-right: 23%;
  }
}
/*-------------------
     Column Count
--------------------*/
/* Assume full width with one column */
.ui.grid > .column:only-child,
.ui.grid > .row > .column:only-child {
  width: 100%;
}
/* Grid Based */
.ui[class*="one column"].grid > .row > .column,
.ui[class*="one column"].grid > .column:not(.row) {
  width: 100%;
}
.ui[class*="two column"].grid > .row > .column,
.ui[class*="two column"].grid > .column:not(.row) {
  width: 50%;
}
.ui[class*="three column"].grid > .row > .column,
.ui[class*="three column"].grid > .column:not(.row) {
  width: 33.33333333%;
}
.ui[class*="four column"].grid > .row > .column,
.ui[class*="four column"].grid > .column:not(.row) {
  width: 25%;
}
.ui[class*="five column"].grid > .row > .column,
.ui[class*="five column"].grid > .column:not(.row) {
  width: 20%;
}
.ui[class*="six column"].grid > .row > .column,
.ui[class*="six column"].grid > .column:not(.row) {
  width: 16.66666667%;
}
.ui[class*="seven column"].grid > .row > .column,
.ui[class*="seven column"].grid > .column:not(.row) {
  width: 14.28571429%;
}
.ui[class*="eight column"].grid > .row > .column,
.ui[class*="eight column"].grid > .column:not(.row) {
  width: 12.5%;
}
.ui[class*="nine column"].grid > .row > .column,
.ui[class*="nine column"].grid > .column:not(.row) {
  width: 11.11111111%;
}
.ui[class*="ten column"].grid > .row > .column,
.ui[class*="ten column"].grid > .column:not(.row) {
  width: 10%;
}
.ui[class*="eleven column"].grid > .row > .column,
.ui[class*="eleven column"].grid > .column:not(.row) {
  width: 9.09090909%;
}
.ui[class*="twelve column"].grid > .row > .column,
.ui[class*="twelve column"].grid > .column:not(.row) {
  width: 8.33333333%;
}
.ui[class*="thirteen column"].grid > .row > .column,
.ui[class*="thirteen column"].grid > .column:not(.row) {
  width: 7.69230769%;
}
.ui[class*="fourteen column"].grid > .row > .column,
.ui[class*="fourteen column"].grid > .column:not(.row) {
  width: 7.14285714%;
}
.ui[class*="fifteen column"].grid > .row > .column,
.ui[class*="fifteen column"].grid > .column:not(.row) {
  width: 6.66666667%;
}
.ui[class*="sixteen column"].grid > .row > .column,
.ui[class*="sixteen column"].grid > .column:not(.row) {
  width: 6.25%;
}
/* Row Based Overrides */
.ui.grid > [class*="one column"].row > .column {
  width: 100% !important;
}
.ui.grid > [class*="two column"].row > .column {
  width: 50% !important;
}
.ui.grid > [class*="three column"].row > .column {
  width: 33.33333333% !important;
}
.ui.grid > [class*="four column"].row > .column {
  width: 25% !important;
}
.ui.grid > [class*="five column"].row > .column {
  width: 20% !important;
}
.ui.grid > [class*="six column"].row > .column {
  width: 16.66666667% !important;
}
.ui.grid > [class*="seven column"].row > .column {
  width: 14.28571429% !important;
}
.ui.grid > [class*="eight column"].row > .column {
  width: 12.5% !important;
}
.ui.grid > [class*="nine column"].row > .column {
  width: 11.11111111% !important;
}
.ui.grid > [class*="ten column"].row > .column {
  width: 10% !important;
}
.ui.grid > [class*="eleven column"].row > .column {
  width: 9.09090909% !important;
}
.ui.grid > [class*="twelve column"].row > .column {
  width: 8.33333333% !important;
}
.ui.grid > [class*="thirteen column"].row > .column {
  width: 7.69230769% !important;
}
.ui.grid > [class*="fourteen column"].row > .column {
  width: 7.14285714% !important;
}
.ui.grid > [class*="fifteen column"].row > .column {
  width: 6.66666667% !important;
}
.ui.grid > [class*="sixteen column"].row > .column {
  width: 6.25% !important;
}
/* Celled Page */
.ui.celled.page.grid {
  box-shadow: none;
}
/*-------------------
    Column Width
--------------------*/
/* Sizing Combinations */
.ui.grid > .row > [class*="one wide"].column,
.ui.grid > .column.row > [class*="one wide"].column,
.ui.grid > [class*="one wide"].column,
.ui.column.grid > [class*="one wide"].column {
  width: 6.25% !important;
}
.ui.grid > .row > [class*="two wide"].column,
.ui.grid > .column.row > [class*="two wide"].column,
.ui.grid > [class*="two wide"].column,
.ui.column.grid > [class*="two wide"].column {
  width: 12.5% !important;
}
.ui.grid > .row > [class*="three wide"].column,
.ui.grid > .column.row > [class*="three wide"].column,
.ui.grid > [class*="three wide"].column,
.ui.column.grid > [class*="three wide"].column {
  width: 18.75% !important;
}
.ui.grid > .row > [class*="four wide"].column,
.ui.grid > .column.row > [class*="four wide"].column,
.ui.grid > [class*="four wide"].column,
.ui.column.grid > [class*="four wide"].column {
  width: 25% !important;
}
.ui.grid > .row > [class*="five wide"].column,
.ui.grid > .column.row > [class*="five wide"].column,
.ui.grid > [class*="five wide"].column,
.ui.column.grid > [class*="five wide"].column {
  width: 31.25% !important;
}
.ui.grid > .row > [class*="six wide"].column,
.ui.grid > .column.row > [class*="six wide"].column,
.ui.grid > [class*="six wide"].column,
.ui.column.grid > [class*="six wide"].column {
  width: 37.5% !important;
}
.ui.grid > .row > [class*="seven wide"].column,
.ui.grid > .column.row > [class*="seven wide"].column,
.ui.grid > [class*="seven wide"].column,
.ui.column.grid > [class*="seven wide"].column {
  width: 43.75% !important;
}
.ui.grid > .row > [class*="eight wide"].column,
.ui.grid > .column.row > [class*="eight wide"].column,
.ui.grid > [class*="eight wide"].column,
.ui.column.grid > [class*="eight wide"].column {
  width: 50% !important;
}
.ui.grid > .row > [class*="nine wide"].column,
.ui.grid > .column.row > [class*="nine wide"].column,
.ui.grid > [class*="nine wide"].column,
.ui.column.grid > [class*="nine wide"].column {
  width: 56.25% !important;
}
.ui.grid > .row > [class*="ten wide"].column,
.ui.grid > .column.row > [class*="ten wide"].column,
.ui.grid > [class*="ten wide"].column,
.ui.column.grid > [class*="ten wide"].column {
  width: 62.5% !important;
}
.ui.grid > .row > [class*="eleven wide"].column,
.ui.grid > .column.row > [class*="eleven wide"].column,
.ui.grid > [class*="eleven wide"].column,
.ui.column.grid > [class*="eleven wide"].column {
  width: 68.75% !important;
}
.ui.grid > .row > [class*="twelve wide"].column,
.ui.grid > .column.row > [class*="twelve wide"].column,
.ui.grid > [class*="twelve wide"].column,
.ui.column.grid > [class*="twelve wide"].column {
  width: 75% !important;
}
.ui.grid > .row > [class*="thirteen wide"].column,
.ui.grid > .column.row > [class*="thirteen wide"].column,
.ui.grid > [class*="thirteen wide"].column,
.ui.column.grid > [class*="thirteen wide"].column {
  width: 81.25% !important;
}
.ui.grid > .row > [class*="fourteen wide"].column,
.ui.grid > .column.row > [class*="fourteen wide"].column,
.ui.grid > [class*="fourteen wide"].column,
.ui.column.grid > [class*="fourteen wide"].column {
  width: 87.5% !important;
}
.ui.grid > .row > [class*="fifteen wide"].column,
.ui.grid > .column.row > [class*="fifteen wide"].column,
.ui.grid > [class*="fifteen wide"].column,
.ui.column.grid > [class*="fifteen wide"].column {
  width: 93.75% !important;
}
.ui.grid > .row > [class*="sixteen wide"].column,
.ui.grid > .column.row > [class*="sixteen wide"].column,
.ui.grid > [class*="sixteen wide"].column,
.ui.column.grid > [class*="sixteen wide"].column {
  width: 100% !important;
}
/*----------------------
    Width per Device
-----------------------*/
/* Mobile Sizing Combinations */
@media only screen and (min-width: 320px) and (max-width: 767px) {
  .ui.grid > .row > [class*="one wide mobile"].column,
  .ui.grid > .column.row > [class*="one wide mobile"].column,
  .ui.grid > [class*="one wide mobile"].column,
  .ui.column.grid > [class*="one wide mobile"].column {
    width: 6.25% !important;
  }
  .ui.grid > .row > [class*="two wide mobile"].column,
  .ui.grid > .column.row > [class*="two wide mobile"].column,
  .ui.grid > [class*="two wide mobile"].column,
  .ui.column.grid > [class*="two wide mobile"].column {
    width: 12.5% !important;
  }
  .ui.grid > .row > [class*="three wide mobile"].column,
  .ui.grid > .column.row > [class*="three wide mobile"].column,
  .ui.grid > [class*="three wide mobile"].column,
  .ui.column.grid > [class*="three wide mobile"].column {
    width: 18.75% !important;
  }
  .ui.grid > .row > [class*="four wide mobile"].column,
  .ui.grid > .column.row > [class*="four wide mobile"].column,
  .ui.grid > [class*="four wide mobile"].column,
  .ui.column.grid > [class*="four wide mobile"].column {
    width: 25% !important;
  }
  .ui.grid > .row > [class*="five wide mobile"].column,
  .ui.grid > .column.row > [class*="five wide mobile"].column,
  .ui.grid > [class*="five wide mobile"].column,
  .ui.column.grid > [class*="five wide mobile"].column {
    width: 31.25% !important;
  }
  .ui.grid > .row > [class*="six wide mobile"].column,
  .ui.grid > .column.row > [class*="six wide mobile"].column,
  .ui.grid > [class*="six wide mobile"].column,
  .ui.column.grid > [class*="six wide mobile"].column {
    width: 37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide mobile"].column,
  .ui.grid > .column.row > [class*="seven wide mobile"].column,
  .ui.grid > [class*="seven wide mobile"].column,
  .ui.column.grid > [class*="seven wide mobile"].column {
    width: 43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide mobile"].column,
  .ui.grid > .column.row > [class*="eight wide mobile"].column,
  .ui.grid > [class*="eight wide mobile"].column,
  .ui.column.grid > [class*="eight wide mobile"].column {
    width: 50% !important;
  }
  .ui.grid > .row > [class*="nine wide mobile"].column,
  .ui.grid > .column.row > [class*="nine wide mobile"].column,
  .ui.grid > [class*="nine wide mobile"].column,
  .ui.column.grid > [class*="nine wide mobile"].column {
    width: 56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide mobile"].column,
  .ui.grid > .column.row > [class*="ten wide mobile"].column,
  .ui.grid > [class*="ten wide mobile"].column,
  .ui.column.grid > [class*="ten wide mobile"].column {
    width: 62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide mobile"].column,
  .ui.grid > .column.row > [class*="eleven wide mobile"].column,
  .ui.grid > [class*="eleven wide mobile"].column,
  .ui.column.grid > [class*="eleven wide mobile"].column {
    width: 68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide mobile"].column,
  .ui.grid > .column.row > [class*="twelve wide mobile"].column,
  .ui.grid > [class*="twelve wide mobile"].column,
  .ui.column.grid > [class*="twelve wide mobile"].column {
    width: 75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide mobile"].column,
  .ui.grid > .column.row > [class*="thirteen wide mobile"].column,
  .ui.grid > [class*="thirteen wide mobile"].column,
  .ui.column.grid > [class*="thirteen wide mobile"].column {
    width: 81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide mobile"].column,
  .ui.grid > .column.row > [class*="fourteen wide mobile"].column,
  .ui.grid > [class*="fourteen wide mobile"].column,
  .ui.column.grid > [class*="fourteen wide mobile"].column {
    width: 87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide mobile"].column,
  .ui.grid > .column.row > [class*="fifteen wide mobile"].column,
  .ui.grid > [class*="fifteen wide mobile"].column,
  .ui.column.grid > [class*="fifteen wide mobile"].column {
    width: 93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide mobile"].column,
  .ui.grid > .column.row > [class*="sixteen wide mobile"].column,
  .ui.grid > [class*="sixteen wide mobile"].column,
  .ui.column.grid > [class*="sixteen wide mobile"].column {
    width: 100% !important;
  }
}
/* Tablet Sizing Combinations */
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ui.grid > .row > [class*="one wide tablet"].column,
  .ui.grid > .column.row > [class*="one wide tablet"].column,
  .ui.grid > [class*="one wide tablet"].column,
  .ui.column.grid > [class*="one wide tablet"].column {
    width: 6.25% !important;
  }
  .ui.grid > .row > [class*="two wide tablet"].column,
  .ui.grid > .column.row > [class*="two wide tablet"].column,
  .ui.grid > [class*="two wide tablet"].column,
  .ui.column.grid > [class*="two wide tablet"].column {
    width: 12.5% !important;
  }
  .ui.grid > .row > [class*="three wide tablet"].column,
  .ui.grid > .column.row > [class*="three wide tablet"].column,
  .ui.grid > [class*="three wide tablet"].column,
  .ui.column.grid > [class*="three wide tablet"].column {
    width: 18.75% !important;
  }
  .ui.grid > .row > [class*="four wide tablet"].column,
  .ui.grid > .column.row > [class*="four wide tablet"].column,
  .ui.grid > [class*="four wide tablet"].column,
  .ui.column.grid > [class*="four wide tablet"].column {
    width: 25% !important;
  }
  .ui.grid > .row > [class*="five wide tablet"].column,
  .ui.grid > .column.row > [class*="five wide tablet"].column,
  .ui.grid > [class*="five wide tablet"].column,
  .ui.column.grid > [class*="five wide tablet"].column {
    width: 31.25% !important;
  }
  .ui.grid > .row > [class*="six wide tablet"].column,
  .ui.grid > .column.row > [class*="six wide tablet"].column,
  .ui.grid > [class*="six wide tablet"].column,
  .ui.column.grid > [class*="six wide tablet"].column {
    width: 37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide tablet"].column,
  .ui.grid > .column.row > [class*="seven wide tablet"].column,
  .ui.grid > [class*="seven wide tablet"].column,
  .ui.column.grid > [class*="seven wide tablet"].column {
    width: 43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide tablet"].column,
  .ui.grid > .column.row > [class*="eight wide tablet"].column,
  .ui.grid > [class*="eight wide tablet"].column,
  .ui.column.grid > [class*="eight wide tablet"].column {
    width: 50% !important;
  }
  .ui.grid > .row > [class*="nine wide tablet"].column,
  .ui.grid > .column.row > [class*="nine wide tablet"].column,
  .ui.grid > [class*="nine wide tablet"].column,
  .ui.column.grid > [class*="nine wide tablet"].column {
    width: 56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide tablet"].column,
  .ui.grid > .column.row > [class*="ten wide tablet"].column,
  .ui.grid > [class*="ten wide tablet"].column,
  .ui.column.grid > [class*="ten wide tablet"].column {
    width: 62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide tablet"].column,
  .ui.grid > .column.row > [class*="eleven wide tablet"].column,
  .ui.grid > [class*="eleven wide tablet"].column,
  .ui.column.grid > [class*="eleven wide tablet"].column {
    width: 68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide tablet"].column,
  .ui.grid > .column.row > [class*="twelve wide tablet"].column,
  .ui.grid > [class*="twelve wide tablet"].column,
  .ui.column.grid > [class*="twelve wide tablet"].column {
    width: 75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide tablet"].column,
  .ui.grid > .column.row > [class*="thirteen wide tablet"].column,
  .ui.grid > [class*="thirteen wide tablet"].column,
  .ui.column.grid > [class*="thirteen wide tablet"].column {
    width: 81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide tablet"].column,
  .ui.grid > .column.row > [class*="fourteen wide tablet"].column,
  .ui.grid > [class*="fourteen wide tablet"].column,
  .ui.column.grid > [class*="fourteen wide tablet"].column {
    width: 87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide tablet"].column,
  .ui.grid > .column.row > [class*="fifteen wide tablet"].column,
  .ui.grid > [class*="fifteen wide tablet"].column,
  .ui.column.grid > [class*="fifteen wide tablet"].column {
    width: 93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide tablet"].column,
  .ui.grid > .column.row > [class*="sixteen wide tablet"].column,
  .ui.grid > [class*="sixteen wide tablet"].column,
  .ui.column.grid > [class*="sixteen wide tablet"].column {
    width: 100% !important;
  }
}
/* Computer/Desktop Sizing Combinations */
@media only screen and (min-width: 992px) {
  .ui.grid > .row > [class*="one wide computer"].column,
  .ui.grid > .column.row > [class*="one wide computer"].column,
  .ui.grid > [class*="one wide computer"].column,
  .ui.column.grid > [class*="one wide computer"].column {
    width: 6.25% !important;
  }
  .ui.grid > .row > [class*="two wide computer"].column,
  .ui.grid > .column.row > [class*="two wide computer"].column,
  .ui.grid > [class*="two wide computer"].column,
  .ui.column.grid > [class*="two wide computer"].column {
    width: 12.5% !important;
  }
  .ui.grid > .row > [class*="three wide computer"].column,
  .ui.grid > .column.row > [class*="three wide computer"].column,
  .ui.grid > [class*="three wide computer"].column,
  .ui.column.grid > [class*="three wide computer"].column {
    width: 18.75% !important;
  }
  .ui.grid > .row > [class*="four wide computer"].column,
  .ui.grid > .column.row > [class*="four wide computer"].column,
  .ui.grid > [class*="four wide computer"].column,
  .ui.column.grid > [class*="four wide computer"].column {
    width: 25% !important;
  }
  .ui.grid > .row > [class*="five wide computer"].column,
  .ui.grid > .column.row > [class*="five wide computer"].column,
  .ui.grid > [class*="five wide computer"].column,
  .ui.column.grid > [class*="five wide computer"].column {
    width: 31.25% !important;
  }
  .ui.grid > .row > [class*="six wide computer"].column,
  .ui.grid > .column.row > [class*="six wide computer"].column,
  .ui.grid > [class*="six wide computer"].column,
  .ui.column.grid > [class*="six wide computer"].column {
    width: 37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide computer"].column,
  .ui.grid > .column.row > [class*="seven wide computer"].column,
  .ui.grid > [class*="seven wide computer"].column,
  .ui.column.grid > [class*="seven wide computer"].column {
    width: 43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide computer"].column,
  .ui.grid > .column.row > [class*="eight wide computer"].column,
  .ui.grid > [class*="eight wide computer"].column,
  .ui.column.grid > [class*="eight wide computer"].column {
    width: 50% !important;
  }
  .ui.grid > .row > [class*="nine wide computer"].column,
  .ui.grid > .column.row > [class*="nine wide computer"].column,
  .ui.grid > [class*="nine wide computer"].column,
  .ui.column.grid > [class*="nine wide computer"].column {
    width: 56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide computer"].column,
  .ui.grid > .column.row > [class*="ten wide computer"].column,
  .ui.grid > [class*="ten wide computer"].column,
  .ui.column.grid > [class*="ten wide computer"].column {
    width: 62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide computer"].column,
  .ui.grid > .column.row > [class*="eleven wide computer"].column,
  .ui.grid > [class*="eleven wide computer"].column,
  .ui.column.grid > [class*="eleven wide computer"].column {
    width: 68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide computer"].column,
  .ui.grid > .column.row > [class*="twelve wide computer"].column,
  .ui.grid > [class*="twelve wide computer"].column,
  .ui.column.grid > [class*="twelve wide computer"].column {
    width: 75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide computer"].column,
  .ui.grid > .column.row > [class*="thirteen wide computer"].column,
  .ui.grid > [class*="thirteen wide computer"].column,
  .ui.column.grid > [class*="thirteen wide computer"].column {
    width: 81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide computer"].column,
  .ui.grid > .column.row > [class*="fourteen wide computer"].column,
  .ui.grid > [class*="fourteen wide computer"].column,
  .ui.column.grid > [class*="fourteen wide computer"].column {
    width: 87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide computer"].column,
  .ui.grid > .column.row > [class*="fifteen wide computer"].column,
  .ui.grid > [class*="fifteen wide computer"].column,
  .ui.column.grid > [class*="fifteen wide computer"].column {
    width: 93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide computer"].column,
  .ui.grid > .column.row > [class*="sixteen wide computer"].column,
  .ui.grid > [class*="sixteen wide computer"].column,
  .ui.column.grid > [class*="sixteen wide computer"].column {
    width: 100% !important;
  }
}
/* Large Monitor Sizing Combinations */
@media only screen and (min-width: 1200px) and (max-width: 1919px) {
  .ui.grid > .row > [class*="one wide large screen"].column,
  .ui.grid > .column.row > [class*="one wide large screen"].column,
  .ui.grid > [class*="one wide large screen"].column,
  .ui.column.grid > [class*="one wide large screen"].column {
    width: 6.25% !important;
  }
  .ui.grid > .row > [class*="two wide large screen"].column,
  .ui.grid > .column.row > [class*="two wide large screen"].column,
  .ui.grid > [class*="two wide large screen"].column,
  .ui.column.grid > [class*="two wide large screen"].column {
    width: 12.5% !important;
  }
  .ui.grid > .row > [class*="three wide large screen"].column,
  .ui.grid > .column.row > [class*="three wide large screen"].column,
  .ui.grid > [class*="three wide large screen"].column,
  .ui.column.grid > [class*="three wide large screen"].column {
    width: 18.75% !important;
  }
  .ui.grid > .row > [class*="four wide large screen"].column,
  .ui.grid > .column.row > [class*="four wide large screen"].column,
  .ui.grid > [class*="four wide large screen"].column,
  .ui.column.grid > [class*="four wide large screen"].column {
    width: 25% !important;
  }
  .ui.grid > .row > [class*="five wide large screen"].column,
  .ui.grid > .column.row > [class*="five wide large screen"].column,
  .ui.grid > [class*="five wide large screen"].column,
  .ui.column.grid > [class*="five wide large screen"].column {
    width: 31.25% !important;
  }
  .ui.grid > .row > [class*="six wide large screen"].column,
  .ui.grid > .column.row > [class*="six wide large screen"].column,
  .ui.grid > [class*="six wide large screen"].column,
  .ui.column.grid > [class*="six wide large screen"].column {
    width: 37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide large screen"].column,
  .ui.grid > .column.row > [class*="seven wide large screen"].column,
  .ui.grid > [class*="seven wide large screen"].column,
  .ui.column.grid > [class*="seven wide large screen"].column {
    width: 43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide large screen"].column,
  .ui.grid > .column.row > [class*="eight wide large screen"].column,
  .ui.grid > [class*="eight wide large screen"].column,
  .ui.column.grid > [class*="eight wide large screen"].column {
    width: 50% !important;
  }
  .ui.grid > .row > [class*="nine wide large screen"].column,
  .ui.grid > .column.row > [class*="nine wide large screen"].column,
  .ui.grid > [class*="nine wide large screen"].column,
  .ui.column.grid > [class*="nine wide large screen"].column {
    width: 56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide large screen"].column,
  .ui.grid > .column.row > [class*="ten wide large screen"].column,
  .ui.grid > [class*="ten wide large screen"].column,
  .ui.column.grid > [class*="ten wide large screen"].column {
    width: 62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide large screen"].column,
  .ui.grid > .column.row > [class*="eleven wide large screen"].column,
  .ui.grid > [class*="eleven wide large screen"].column,
  .ui.column.grid > [class*="eleven wide large screen"].column {
    width: 68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide large screen"].column,
  .ui.grid > .column.row > [class*="twelve wide large screen"].column,
  .ui.grid > [class*="twelve wide large screen"].column,
  .ui.column.grid > [class*="twelve wide large screen"].column {
    width: 75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide large screen"].column,
  .ui.grid > .column.row > [class*="thirteen wide large screen"].column,
  .ui.grid > [class*="thirteen wide large screen"].column,
  .ui.column.grid > [class*="thirteen wide large screen"].column {
    width: 81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide large screen"].column,
  .ui.grid > .column.row > [class*="fourteen wide large screen"].column,
  .ui.grid > [class*="fourteen wide large screen"].column,
  .ui.column.grid > [class*="fourteen wide large screen"].column {
    width: 87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide large screen"].column,
  .ui.grid > .column.row > [class*="fifteen wide large screen"].column,
  .ui.grid > [class*="fifteen wide large screen"].column,
  .ui.column.grid > [class*="fifteen wide large screen"].column {
    width: 93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide large screen"].column,
  .ui.grid > .column.row > [class*="sixteen wide large screen"].column,
  .ui.grid > [class*="sixteen wide large screen"].column,
  .ui.column.grid > [class*="sixteen wide large screen"].column {
    width: 100% !important;
  }
}
/* Widescreen Sizing Combinations */
@media only screen and (min-width: 1920px) {
  .ui.grid > .row > [class*="one wide widescreen"].column,
  .ui.grid > .column.row > [class*="one wide widescreen"].column,
  .ui.grid > [class*="one wide widescreen"].column,
  .ui.column.grid > [class*="one wide widescreen"].column {
    width: 6.25% !important;
  }
  .ui.grid > .row > [class*="two wide widescreen"].column,
  .ui.grid > .column.row > [class*="two wide widescreen"].column,
  .ui.grid > [class*="two wide widescreen"].column,
  .ui.column.grid > [class*="two wide widescreen"].column {
    width: 12.5% !important;
  }
  .ui.grid > .row > [class*="three wide widescreen"].column,
  .ui.grid > .column.row > [class*="three wide widescreen"].column,
  .ui.grid > [class*="three wide widescreen"].column,
  .ui.column.grid > [class*="three wide widescreen"].column {
    width: 18.75% !important;
  }
  .ui.grid > .row > [class*="four wide widescreen"].column,
  .ui.grid > .column.row > [class*="four wide widescreen"].column,
  .ui.grid > [class*="four wide widescreen"].column,
  .ui.column.grid > [class*="four wide widescreen"].column {
    width: 25% !important;
  }
  .ui.grid > .row > [class*="five wide widescreen"].column,
  .ui.grid > .column.row > [class*="five wide widescreen"].column,
  .ui.grid > [class*="five wide widescreen"].column,
  .ui.column.grid > [class*="five wide widescreen"].column {
    width: 31.25% !important;
  }
  .ui.grid > .row > [class*="six wide widescreen"].column,
  .ui.grid > .column.row > [class*="six wide widescreen"].column,
  .ui.grid > [class*="six wide widescreen"].column,
  .ui.column.grid > [class*="six wide widescreen"].column {
    width: 37.5% !important;
  }
  .ui.grid > .row > [class*="seven wide widescreen"].column,
  .ui.grid > .column.row > [class*="seven wide widescreen"].column,
  .ui.grid > [class*="seven wide widescreen"].column,
  .ui.column.grid > [class*="seven wide widescreen"].column {
    width: 43.75% !important;
  }
  .ui.grid > .row > [class*="eight wide widescreen"].column,
  .ui.grid > .column.row > [class*="eight wide widescreen"].column,
  .ui.grid > [class*="eight wide widescreen"].column,
  .ui.column.grid > [class*="eight wide widescreen"].column {
    width: 50% !important;
  }
  .ui.grid > .row > [class*="nine wide widescreen"].column,
  .ui.grid > .column.row > [class*="nine wide widescreen"].column,
  .ui.grid > [class*="nine wide widescreen"].column,
  .ui.column.grid > [class*="nine wide widescreen"].column {
    width: 56.25% !important;
  }
  .ui.grid > .row > [class*="ten wide widescreen"].column,
  .ui.grid > .column.row > [class*="ten wide widescreen"].column,
  .ui.grid > [class*="ten wide widescreen"].column,
  .ui.column.grid > [class*="ten wide widescreen"].column {
    width: 62.5% !important;
  }
  .ui.grid > .row > [class*="eleven wide widescreen"].column,
  .ui.grid > .column.row > [class*="eleven wide widescreen"].column,
  .ui.grid > [class*="eleven wide widescreen"].column,
  .ui.column.grid > [class*="eleven wide widescreen"].column {
    width: 68.75% !important;
  }
  .ui.grid > .row > [class*="twelve wide widescreen"].column,
  .ui.grid > .column.row > [class*="twelve wide widescreen"].column,
  .ui.grid > [class*="twelve wide widescreen"].column,
  .ui.column.grid > [class*="twelve wide widescreen"].column {
    width: 75% !important;
  }
  .ui.grid > .row > [class*="thirteen wide widescreen"].column,
  .ui.grid > .column.row > [class*="thirteen wide widescreen"].column,
  .ui.grid > [class*="thirteen wide widescreen"].column,
  .ui.column.grid > [class*="thirteen wide widescreen"].column {
    width: 81.25% !important;
  }
  .ui.grid > .row > [class*="fourteen wide widescreen"].column,
  .ui.grid > .column.row > [class*="fourteen wide widescreen"].column,
  .ui.grid > [class*="fourteen wide widescreen"].column,
  .ui.column.grid > [class*="fourteen wide widescreen"].column {
    width: 87.5% !important;
  }
  .ui.grid > .row > [class*="fifteen wide widescreen"].column,
  .ui.grid > .column.row > [class*="fifteen wide widescreen"].column,
  .ui.grid > [class*="fifteen wide widescreen"].column,
  .ui.column.grid > [class*="fifteen wide widescreen"].column {
    width: 93.75% !important;
  }
  .ui.grid > .row > [class*="sixteen wide widescreen"].column,
  .ui.grid > .column.row > [class*="sixteen wide widescreen"].column,
  .ui.grid > [class*="sixteen wide widescreen"].column,
  .ui.column.grid > [class*="sixteen wide widescreen"].column {
    width: 100% !important;
  }
}
/*----------------------
        Centered
-----------------------*/
.ui.centered.grid,
.ui.centered.grid > .row,
.ui.grid > .centered.row {
  text-align: center;
  justify-content: center;
}
.ui.centered.grid > .column:not(.aligned):not(.justified):not(.row),
.ui.centered.grid > .row > .column:not(.aligned):not(.justified),
.ui.grid .centered.row > .column:not(.aligned):not(.justified) {
  text-align: left;
}
.ui.grid > .centered.column,
.ui.grid > .row > .centered.column {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
/*----------------------
        Relaxed
-----------------------*/
.ui.relaxed.grid > .column:not(.row),
.ui.relaxed.grid > .row > .column,
.ui.grid > .relaxed.row > .column {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.ui[class*="very relaxed"].grid > .column:not(.row),
.ui[class*="very relaxed"].grid > .row > .column,
.ui.grid > [class*="very relaxed"].row > .column {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}
/* Coupling with UI Divider */
.ui.relaxed.grid .row + .ui.divider,
.ui.grid .relaxed.row + .ui.divider {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.ui[class*="very relaxed"].grid .row + .ui.divider,
.ui.grid [class*="very relaxed"].row + .ui.divider {
  margin-left: 2.5rem;
  margin-right: 2.5rem;
}
/*----------------------
        Padded
-----------------------*/
.ui.padded.grid:not(.vertically):not(.horizontally) {
  margin: 0em !important;
}
[class*="horizontally padded"].ui.grid {
  margin-left: 0em !important;
  margin-right: 0em !important;
}
[class*="vertically padded"].ui.grid {
  margin-top: 0em !important;
  margin-bottom: 0em !important;
}
/*----------------------
       "Floated"
-----------------------*/
.ui.grid [class*="left floated"].column {
  margin-right: auto;
}
.ui.grid [class*="right floated"].column {
  margin-left: auto;
}
/*----------------------
        Divided
-----------------------*/
.ui.divided.grid:not([class*="vertically divided"]) > .column:not(.row),
.ui.divided.grid:not([class*="vertically divided"]) > .row > .column {
  box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
}
/* Swap from padding to margin on columns to have dividers align */
.ui[class*="vertically divided"].grid > .column:not(.row),
.ui[class*="vertically divided"].grid > .row > .column {
  margin-top: 1rem;
  margin-bottom: 1rem;
  padding-top: 0rem;
  padding-bottom: 0rem;
}
.ui[class*="vertically divided"].grid > .row {
  margin-top: 0em;
  margin-bottom: 0em;
}
/* No divider on first column on row */
.ui.divided.grid:not([class*="vertically divided"]) > .column:first-child,
.ui.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
  box-shadow: none;
}
/* No space on top of first row */
.ui[class*="vertically divided"].grid > .row:first-child > .column {
  margin-top: 0em;
}
/* Divided Row */
.ui.grid > .divided.row > .column {
  box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
}
.ui.grid > .divided.row > .column:first-child {
  box-shadow: none;
}
/* Vertically Divided */
.ui[class*="vertically divided"].grid > .row {
  position: relative;
}
.ui[class*="vertically divided"].grid > .row:before {
  position: absolute;
  content: "";
  top: 0em;
  left: 0px;
  width: calc(100% - 2rem);
  height: 1px;
  margin: 0% 1rem;
  box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
}
/* Padded Horizontally Divided */
[class*="horizontally padded"].ui.divided.grid,
.ui.padded.divided.grid:not(.vertically):not(.horizontally) {
  width: 100%;
}
/* First Row Vertically Divided */
.ui[class*="vertically divided"].grid > .row:first-child:before {
  box-shadow: none;
}
/* Inverted Divided */
.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row),
.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column {
  box-shadow: -1px 0px 0px 0px rgba(255, 255, 255, 0.1);
}
.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row):first-child,
.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
  box-shadow: none;
}
.ui.inverted[class*="vertically divided"].grid > .row:before {
  box-shadow: 0px -1px 0px 0px rgba(255, 255, 255, 0.1);
}
/* Relaxed */
.ui.relaxed[class*="vertically divided"].grid > .row:before {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
  width: calc(100% - 3rem);
}
.ui[class*="very relaxed"][class*="vertically divided"].grid > .row:before {
  margin-left: 2.5rem;
  margin-right: 2.5rem;
  width: calc(100% - 5rem);
}
/*----------------------
         Celled
-----------------------*/
.ui.celled.grid {
  width: 100%;
  margin: 1em 0em;
  box-shadow: 0px 0px 0px 1px #D4D4D5;
}
.ui.celled.grid > .row {
  width: 100% !important;
  margin: 0em;
  padding: 0em;
  box-shadow: 0px -1px 0px 0px #D4D4D5;
}
.ui.celled.grid > .column:not(.row),
.ui.celled.grid > .row > .column {
  box-shadow: -1px 0px 0px 0px #D4D4D5;
}
.ui.celled.grid > .column:first-child,
.ui.celled.grid > .row > .column:first-child {
  box-shadow: none;
}
.ui.celled.grid > .column:not(.row),
.ui.celled.grid > .row > .column {
  padding: 1em;
}
.ui.relaxed.celled.grid > .column:not(.row),
.ui.relaxed.celled.grid > .row > .column {
  padding: 1.5em;
}
.ui[class*="very relaxed"].celled.grid > .column:not(.row),
.ui[class*="very relaxed"].celled.grid > .row > .column {
  padding: 2em;
}
/* Internally Celled */
.ui[class*="internally celled"].grid {
  box-shadow: none;
  margin: 0em;
}
.ui[class*="internally celled"].grid > .row:first-child {
  box-shadow: none;
}
.ui[class*="internally celled"].grid > .row > .column:first-child {
  box-shadow: none;
}
/*----------------------
   Vertically Aligned
-----------------------*/
/* Top Aligned */
.ui[class*="top aligned"].grid > .column:not(.row),
.ui[class*="top aligned"].grid > .row > .column,
.ui.grid > [class*="top aligned"].row > .column,
.ui.grid > [class*="top aligned"].column:not(.row),
.ui.grid > .row > [class*="top aligned"].column {
  flex-direction: column;
  vertical-align: top;
  align-self: flex-start !important;
}
/* Middle Aligned */
.ui[class*="middle aligned"].grid > .column:not(.row),
.ui[class*="middle aligned"].grid > .row > .column,
.ui.grid > [class*="middle aligned"].row > .column,
.ui.grid > [class*="middle aligned"].column:not(.row),
.ui.grid > .row > [class*="middle aligned"].column {
  flex-direction: column;
  vertical-align: middle;
  align-self: center !important;
}
/* Bottom Aligned */
.ui[class*="bottom aligned"].grid > .column:not(.row),
.ui[class*="bottom aligned"].grid > .row > .column,
.ui.grid > [class*="bottom aligned"].row > .column,
.ui.grid > [class*="bottom aligned"].column:not(.row),
.ui.grid > .row > [class*="bottom aligned"].column {
  flex-direction: column;
  vertical-align: bottom;
  align-self: flex-end !important;
}
/* Stretched */
.ui.stretched.grid > .row > .column,
.ui.stretched.grid > .column,
.ui.grid > .stretched.row > .column,
.ui.grid > .stretched.column:not(.row),
.ui.grid > .row > .stretched.column {
  display: inline-flex !important;
  align-self: stretch;
  flex-direction: column;
}
.ui.stretched.grid > .row > .column > *,
.ui.stretched.grid > .column > *,
.ui.grid > .stretched.row > .column > *,
.ui.grid > .stretched.column:not(.row) > *,
.ui.grid > .row > .stretched.column > * {
  flex-grow: 1;
}
/*----------------------
  Horizontally Centered
-----------------------*/
/* Left Aligned */
.ui[class*="left aligned"].grid > .column,
.ui[class*="left aligned"].grid > .row > .column,
.ui.grid > [class*="left aligned"].row > .column,
.ui.grid > [class*="left aligned"].column.column,
.ui.grid > .row > [class*="left aligned"].column.column {
  text-align: left;
  align-self: inherit;
}
/* Center Aligned */
.ui[class*="center aligned"].grid > .column,
.ui[class*="center aligned"].grid > .row > .column,
.ui.grid > [class*="center aligned"].row > .column,
.ui.grid > [class*="center aligned"].column.column,
.ui.grid > .row > [class*="center aligned"].column.column {
  text-align: center;
  align-self: inherit;
}
.ui[class*="center aligned"].grid {
  justify-content: center;
}
/* Right Aligned */
.ui[class*="right aligned"].grid > .column,
.ui[class*="right aligned"].grid > .row > .column,
.ui.grid > [class*="right aligned"].row > .column,
.ui.grid > [class*="right aligned"].column.column,
.ui.grid > .row > [class*="right aligned"].column.column {
  text-align: right;
  align-self: inherit;
}
/* Justified */
.ui.justified.grid > .column,
.ui.justified.grid > .row > .column,
.ui.grid > .justified.row > .column,
.ui.grid > .justified.column.column,
.ui.grid > .row > .justified.column.column {
  text-align: justify;
  hyphens: auto;
}
/*----------------------
         Colored
-----------------------*/
.ui.grid > .row > .red.column,
.ui.grid > .row > .orange.column,
.ui.grid > .row > .yellow.column,
.ui.grid > .row > .olive.column,
.ui.grid > .row > .green.column,
.ui.grid > .row > .teal.column,
.ui.grid > .row > .blue.column,
.ui.grid > .row > .violet.column,
.ui.grid > .row > .purple.column,
.ui.grid > .row > .pink.column,
.ui.grid > .row > .brown.column,
.ui.grid > .row > .grey.column,
.ui.grid > .row > .black.column {
  margin-top: -1rem;
  margin-bottom: -1rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
/* Red */
.ui.grid > .red.row,
.ui.grid > .red.column,
.ui.grid > .row > .red.column {
  background-color: #DB2828 !important;
  color: #FFFFFF;
}
/* Orange */
.ui.grid > .orange.row,
.ui.grid > .orange.column,
.ui.grid > .row > .orange.column {
  background-color: #F2711C !important;
  color: #FFFFFF;
}
/* Yellow */
.ui.grid > .yellow.row,
.ui.grid > .yellow.column,
.ui.grid > .row > .yellow.column {
  background-color: #FBBD08 !important;
  color: #FFFFFF;
}
/* Olive */
.ui.grid > .olive.row,
.ui.grid > .olive.column,
.ui.grid > .row > .olive.column {
  background-color: #B5CC18 !important;
  color: #FFFFFF;
}
/* Green */
.ui.grid > .green.row,
.ui.grid > .green.column,
.ui.grid > .row > .green.column {
  background-color: #21BA45 !important;
  color: #FFFFFF;
}
/* Teal */
.ui.grid > .teal.row,
.ui.grid > .teal.column,
.ui.grid > .row > .teal.column {
  background-color: #00B5AD !important;
  color: #FFFFFF;
}
/* Blue */
.ui.grid > .blue.row,
.ui.grid > .blue.column,
.ui.grid > .row > .blue.column {
  background-color: #2185D0 !important;
  color: #FFFFFF;
}
/* Violet */
.ui.grid > .violet.row,
.ui.grid > .violet.column,
.ui.grid > .row > .violet.column {
  background-color: #6435C9 !important;
  color: #FFFFFF;
}
/* Purple */
.ui.grid > .purple.row,
.ui.grid > .purple.column,
.ui.grid > .row > .purple.column {
  background-color: #A333C8 !important;
  color: #FFFFFF;
}
/* Pink */
.ui.grid > .pink.row,
.ui.grid > .pink.column,
.ui.grid > .row > .pink.column {
  background-color: #E03997 !important;
  color: #FFFFFF;
}
/* Brown */
.ui.grid > .brown.row,
.ui.grid > .brown.column,
.ui.grid > .row > .brown.column {
  background-color: #A5673F !important;
  color: #FFFFFF;
}
/* Grey */
.ui.grid > .grey.row,
.ui.grid > .grey.column,
.ui.grid > .row > .grey.column {
  background-color: #767676 !important;
  color: #FFFFFF;
}
/* Black */
.ui.grid > .black.row,
.ui.grid > .black.column,
.ui.grid > .row > .black.column {
  background-color: #1B1C1D !important;
  color: #FFFFFF;
}
/*----------------------
      Equal Width
-----------------------*/
.ui[class*="equal width"].grid > .column:not(.row),
.ui[class*="equal width"].grid > .row > .column,
.ui.grid > [class*="equal width"].row > .column {
  display: inline-block;
  flex-grow: 1;
}
.ui[class*="equal width"].grid > .wide.column,
.ui[class*="equal width"].grid > .row > .wide.column,
.ui.grid > [class*="equal width"].row > .wide.column {
  flex-grow: 0;
}
/*----------------------
        Reverse
-----------------------*/
/* Mobile */
@media only screen and (max-width: 767px) {
  .ui[class*="mobile reversed"].grid,
  .ui[class*="mobile reversed"].grid > .row,
  .ui.grid > [class*="mobile reversed"].row {
    flex-direction: row-reverse;
  }
  .ui[class*="mobile vertically reversed"].grid,
  .ui.stackable[class*="mobile reversed"] {
    flex-direction: column-reverse;
  }
  /* Divided Reversed */
  .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child,
  .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
    box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child,
  .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child {
    box-shadow: none;
  }
  /* Vertically Divided Reversed */
  .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:first-child:before {
    box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:last-child:before {
    box-shadow: none;
  }
  /* Celled Reversed */
  .ui[class*="mobile reversed"].celled.grid > .row > .column:first-child {
    box-shadow: -1px 0px 0px 0px #D4D4D5;
  }
  .ui[class*="mobile reversed"].celled.grid > .row > .column:last-child {
    box-shadow: none;
  }
}
/* Tablet */
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ui[class*="tablet reversed"].grid,
  .ui[class*="tablet reversed"].grid > .row,
  .ui.grid > [class*="tablet reversed"].row {
    flex-direction: row-reverse;
  }
  .ui[class*="tablet vertically reversed"].grid {
    flex-direction: column-reverse;
  }
  /* Divided Reversed */
  .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child,
  .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
    box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child,
  .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child {
    box-shadow: none;
  }
  /* Vertically Divided Reversed */
  .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:first-child:before {
    box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:last-child:before {
    box-shadow: none;
  }
  /* Celled Reversed */
  .ui[class*="tablet reversed"].celled.grid > .row > .column:first-child {
    box-shadow: -1px 0px 0px 0px #D4D4D5;
  }
  .ui[class*="tablet reversed"].celled.grid > .row > .column:last-child {
    box-shadow: none;
  }
}
/* Computer */
@media only screen and (min-width: 992px) {
  .ui[class*="computer reversed"].grid,
  .ui[class*="computer reversed"].grid > .row,
  .ui.grid > [class*="computer reversed"].row {
    flex-direction: row-reverse;
  }
  .ui[class*="computer vertically reversed"].grid {
    flex-direction: column-reverse;
  }
  /* Divided Reversed */
  .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child,
  .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
    box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child,
  .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child {
    box-shadow: none;
  }
  /* Vertically Divided Reversed */
  .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:first-child:before {
    box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
  }
  .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:last-child:before {
    box-shadow: none;
  }
  /* Celled Reversed */
  .ui[class*="computer reversed"].celled.grid > .row > .column:first-child {
    box-shadow: -1px 0px 0px 0px #D4D4D5;
  }
  .ui[class*="computer reversed"].celled.grid > .row > .column:last-child {
    box-shadow: none;
  }
}
/*-------------------
      Doubling
--------------------*/
/* Tablet Only */
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ui.doubling.grid {
    width: auto;
  }
  .ui.grid > .doubling.row,
  .ui.doubling.grid > .row {
    margin: 0em !important;
    padding: 0em !important;
  }
  .ui.grid > .doubling.row > .column,
  .ui.doubling.grid > .row > .column {
    display: inline-block !important;
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
    box-shadow: none !important;
    margin: 0em;
  }
  .ui[class*="two column"].doubling.grid > .row > .column,
  .ui[class*="two column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="two column"].doubling.row.row > .column {
    width: 100% !important;
  }
  .ui[class*="three column"].doubling.grid > .row > .column,
  .ui[class*="three column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="three column"].doubling.row.row > .column {
    width: 50% !important;
  }
  .ui[class*="four column"].doubling.grid > .row > .column,
  .ui[class*="four column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="four column"].doubling.row.row > .column {
    width: 50% !important;
  }
  .ui[class*="five column"].doubling.grid > .row > .column,
  .ui[class*="five column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="five column"].doubling.row.row > .column {
    width: 33.33333333% !important;
  }
  .ui[class*="six column"].doubling.grid > .row > .column,
  .ui[class*="six column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="six column"].doubling.row.row > .column {
    width: 33.33333333% !important;
  }
  .ui[class*="seven column"].doubling.grid > .row > .column,
  .ui[class*="seven column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="seven column"].doubling.row.row > .column {
    width: 33.33333333% !important;
  }
  .ui[class*="eight column"].doubling.grid > .row > .column,
  .ui[class*="eight column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="eight column"].doubling.row.row > .column {
    width: 25% !important;
  }
  .ui[class*="nine column"].doubling.grid > .row > .column,
  .ui[class*="nine column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="nine column"].doubling.row.row > .column {
    width: 25% !important;
  }
  .ui[class*="ten column"].doubling.grid > .row > .column,
  .ui[class*="ten column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="ten column"].doubling.row.row > .column {
    width: 20% !important;
  }
  .ui[class*="eleven column"].doubling.grid > .row > .column,
  .ui[class*="eleven column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="eleven column"].doubling.row.row > .column {
    width: 20% !important;
  }
  .ui[class*="twelve column"].doubling.grid > .row > .column,
  .ui[class*="twelve column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="twelve column"].doubling.row.row > .column {
    width: 16.66666667% !important;
  }
  .ui[class*="thirteen column"].doubling.grid > .row > .column,
  .ui[class*="thirteen column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="thirteen column"].doubling.row.row > .column {
    width: 16.66666667% !important;
  }
  .ui[class*="fourteen column"].doubling.grid > .row > .column,
  .ui[class*="fourteen column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="fourteen column"].doubling.row.row > .column {
    width: 14.28571429% !important;
  }
  .ui[class*="fifteen column"].doubling.grid > .row > .column,
  .ui[class*="fifteen column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="fifteen column"].doubling.row.row > .column {
    width: 14.28571429% !important;
  }
  .ui[class*="sixteen column"].doubling.grid > .row > .column,
  .ui[class*="sixteen column"].doubling.grid > .column:not(.row),
  .ui.grid > [class*="sixteen column"].doubling.row.row > .column {
    width: 12.5% !important;
  }
}
/* Mobile Only */
@media only screen and (max-width: 767px) {
  .ui.grid > .doubling.row,
  .ui.doubling.grid > .row {
    margin: 0em !important;
    padding: 0em !important;
  }
  .ui.grid > .doubling.row > .column,
  .ui.doubling.grid > .row > .column {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
    margin: 0em !important;
    box-shadow: none !important;
  }
  .ui[class*="two column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="two column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="two column"].doubling:not(.stackable).row.row > .column {
    width: 100% !important;
  }
  .ui[class*="three column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="three column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="three column"].doubling:not(.stackable).row.row > .column {
    width: 50% !important;
  }
  .ui[class*="four column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="four column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="four column"].doubling:not(.stackable).row.row > .column {
    width: 50% !important;
  }
  .ui[class*="five column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="five column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="five column"].doubling:not(.stackable).row.row > .column {
    width: 50% !important;
  }
  .ui[class*="six column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="six column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="six column"].doubling:not(.stackable).row.row > .column {
    width: 50% !important;
  }
  .ui[class*="seven column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="seven column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="seven column"].doubling:not(.stackable).row.row > .column {
    width: 50% !important;
  }
  .ui[class*="eight column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="eight column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="eight column"].doubling:not(.stackable).row.row > .column {
    width: 50% !important;
  }
  .ui[class*="nine column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="nine column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="nine column"].doubling:not(.stackable).row.row > .column {
    width: 33.33333333% !important;
  }
  .ui[class*="ten column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="ten column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="ten column"].doubling:not(.stackable).row.row > .column {
    width: 33.33333333% !important;
  }
  .ui[class*="eleven column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="eleven column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="eleven column"].doubling:not(.stackable).row.row > .column {
    width: 33.33333333% !important;
  }
  .ui[class*="twelve column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="twelve column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="twelve column"].doubling:not(.stackable).row.row > .column {
    width: 33.33333333% !important;
  }
  .ui[class*="thirteen column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="thirteen column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="thirteen column"].doubling:not(.stackable).row.row > .column {
    width: 33.33333333% !important;
  }
  .ui[class*="fourteen column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="fourteen column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="fourteen column"].doubling:not(.stackable).row.row > .column {
    width: 25% !important;
  }
  .ui[class*="fifteen column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="fifteen column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="fifteen column"].doubling:not(.stackable).row.row > .column {
    width: 25% !important;
  }
  .ui[class*="sixteen column"].doubling:not(.stackable).grid > .row > .column,
  .ui[class*="sixteen column"].doubling:not(.stackable).grid > .column:not(.row),
  .ui.grid > [class*="sixteen column"].doubling:not(.stackable).row.row > .column {
    width: 25% !important;
  }
}
/*-------------------
      Stackable
--------------------*/
@media only screen and (max-width: 767px) {
  .ui.stackable.grid {
    width: auto;
    margin-left: 0em !important;
    margin-right: 0em !important;
  }
  .ui.stackable.grid > .row > .wide.column,
  .ui.stackable.grid > .wide.column,
  .ui.stackable.grid > .column.grid > .column,
  .ui.stackable.grid > .column.row > .column,
  .ui.stackable.grid > .row > .column,
  .ui.stackable.grid > .column:not(.row),
  .ui.grid > .stackable.stackable.row > .column {
    width: 100% !important;
    margin: 0em 0em !important;
    box-shadow: none !important;
    padding: 1rem 1rem !important;
  }
  .ui.stackable.grid:not(.vertically) > .row {
    margin: 0em;
    padding: 0em;
  }
  /* Coupling */
  .ui.container > .ui.stackable.grid > .column,
  .ui.container > .ui.stackable.grid > .row > .column {
    padding-left: 0em !important;
    padding-right: 0em !important;
  }
  /* Don't pad inside segment or nested grid */
  .ui.grid .ui.stackable.grid,
  .ui.segment:not(.vertical) .ui.stackable.page.grid {
    margin-left: -1rem !important;
    margin-right: -1rem !important;
  }
  /* Divided Stackable */
  .ui.stackable.divided.grid > .row:first-child > .column:first-child,
  .ui.stackable.celled.grid > .row:first-child > .column:first-child,
  .ui.stackable.divided.grid > .column:not(.row):first-child,
  .ui.stackable.celled.grid > .column:not(.row):first-child {
    border-top: none !important;
  }
  .ui.inverted.stackable.celled.grid > .column:not(.row),
  .ui.inverted.stackable.divided.grid > .column:not(.row),
  .ui.inverted.stackable.celled.grid > .row > .column,
  .ui.inverted.stackable.divided.grid > .row > .column {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }
  .ui.stackable.celled.grid > .column:not(.row),
  .ui.stackable.divided:not(.vertically).grid > .column:not(.row),
  .ui.stackable.celled.grid > .row > .column,
  .ui.stackable.divided:not(.vertically).grid > .row > .column {
    border-top: 1px solid rgba(34, 36, 38, 0.15);
    box-shadow: none !important;
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .ui.stackable.celled.grid > .row {
    box-shadow: none !important;
  }
  .ui.stackable.divided:not(.vertically).grid > .column:not(.row),
  .ui.stackable.divided:not(.vertically).grid > .row > .column {
    padding-left: 0em !important;
    padding-right: 0em !important;
  }
}
/*----------------------
     Only (Device)
-----------------------*/
/* These include arbitrary class repetitions for forced specificity */
/* Mobile Only Hide */
@media only screen and (max-width: 767px) {
  .ui[class*="tablet only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="tablet only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="tablet only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.mobile) {
    display: none !important;
  }
  .ui[class*="computer only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="computer only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="computer only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.mobile) {
    display: none !important;
  }
  .ui[class*="large screen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) {
    display: none !important;
  }
  .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) {
    display: none !important;
  }
}
/* Tablet Only Hide */
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ui[class*="mobile only"].grid.grid.grid:not(.tablet),
  .ui.grid.grid.grid > [class*="mobile only"].row:not(.tablet),
  .ui.grid.grid.grid > [class*="mobile only"].column:not(.tablet),
  .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.tablet) {
    display: none !important;
  }
  .ui[class*="computer only"].grid.grid.grid:not(.tablet),
  .ui.grid.grid.grid > [class*="computer only"].row:not(.tablet),
  .ui.grid.grid.grid > [class*="computer only"].column:not(.tablet),
  .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.tablet) {
    display: none !important;
  }
  .ui[class*="large screen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) {
    display: none !important;
  }
  .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) {
    display: none !important;
  }
}
/* Computer Only Hide */
@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .ui[class*="mobile only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) {
    display: none !important;
  }
  .ui[class*="tablet only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) {
    display: none !important;
  }
  .ui[class*="large screen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) {
    display: none !important;
  }
  .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) {
    display: none !important;
  }
}
/* Large Screen Only Hide */
@media only screen and (min-width: 1200px) and (max-width: 1919px) {
  .ui[class*="mobile only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) {
    display: none !important;
  }
  .ui[class*="tablet only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) {
    display: none !important;
  }
  .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
  .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
  .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) {
    display: none !important;
  }
}
/* Widescreen Only Hide */
@media only screen and (min-width: 1920px) {
  .ui[class*="mobile only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) {
    display: none !important;
  }
  .ui[class*="tablet only"].grid.grid.grid:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer),
  .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer),
  .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) {
    display: none !important;
  }
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
.row.no-padding,
.row .column.no-padding {
  padding: 0px !important;
}
.row.no-padding-lr,
.row .column.no-padding-lr {
  padding-left: 0px !important;
  padding-right: 0px !important;
}
.row.no-padding-tb,
.row .column.no-padding-tb {
  padding-top: 0px !important;
  padding-bottom: 0px !important;
}
/** General util classes */
.row.no-padding-t {
  padding-top: 0px !important;
}
/** Deposit search page */
.row.deposit-result-header {
  background-color: #d7d7d7;
}
.row.deposit-result-header.padding-tb-5 {
  padding-top: 5px;
  padding-bottom: 5px;
}
.row.deposit-result-header.small {
  font-size: small;
}
.row.deposit-result-header .padding-r-5.column {
  padding-right: 5px;
}
/*
 * # Semantic - Menu
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Copyright 2015 Contributor
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Menu
*******************************/
/*-------------------
      Collection
--------------------*/
/* Menu */
/* Menu Item */
/* Divider */
/* Sub Menu */
/* Text Item */
/*--------------
    Elements
---------------*/
/* Icon */
/* Dropdown Icon */
/* Header */
/* Vertical Icon */
/* Vertical Header */
/* Pointing Arrow */
/*--------------
    Couplings
---------------*/
/* Button */
/* Input */
/* Image */
/* Label */
/* Dropdown in Menu */
/* Dropdown Variations */
/*--------------
     States
---------------*/
/* Hovered Item */
/* Pressed Item */
/* Active Item */
/* Active Hovered Item */
/* Selected Dropdown */
/* Active Dropdown */
/* Active Sub Menu */
/*--------------
     Types
---------------*/
/* Vertical */
/* Secondary */
/* Pointing */
/* Inverted Secondary */
/* Inverted Pointing */
/* Tiered */
/* Icon */
/* Tabular */
/* Pagination */
/* Labeled Icon */
/* Text */
/*--------------
   Variations
---------------*/
/* Inverted */
/* Inverted Sub Menu */
/* Inverted Hover */
/* Pressed */
/* Inverted Active */
/* Inverted Active Hover  */
/* Inverted Menu Divider */
/* Inverted Colored */
/* Fixed */
/* Floated */
/* Attached */
/* Resize large sizes */
/* Sizes */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Standard
*******************************/
/*--------------
      Menu
---------------*/
.ui.menu {
  display: flex;
  margin: 1rem 0em;
  font-family: 'Lato', sans-serif;
  background: #FFFFFF;
  font-weight: normal;
  border: 1px solid rgba(34, 36, 38, 0.15);
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
  border-radius: 0.28571429rem;
  min-height: 2.85714286em;
}
.ui.menu:after {
  content: '';
  display: block;
  height: 0px;
  clear: both;
  visibility: hidden;
}
.ui.menu:first-child {
  margin-top: 0rem;
}
.ui.menu:last-child {
  margin-bottom: 0rem;
}
/*--------------
    Sub-Menu
---------------*/
.ui.menu .menu {
  margin: 0em;
}
.ui.menu:not(.vertical) > .menu {
  display: flex;
}
/*--------------
      Item
---------------*/
.ui.menu:not(.vertical) .item {
  display: flex;
  align-items: center;
}
.ui.menu .item {
  position: relative;
  vertical-align: middle;
  line-height: 1;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  flex: 0 0 auto;
  user-select: none;
  background: none;
  padding: 0.92857143em 1.14285714em;
  text-transform: none;
  color: rgba(0, 0, 0, 0.87);
  font-weight: normal;
  transition: background 0.1s ease, box-shadow 0.1s ease, color 0.1s ease;
}
.ui.menu > .item:first-child {
  border-radius: 0.28571429rem 0px 0px 0.28571429rem;
}
/* Border */
.ui.menu .item:before {
  position: absolute;
  content: '';
  top: 0%;
  right: 0px;
  height: 100%;
  width: 1px;
  background: rgba(34, 36, 38, 0.1);
}
/*--------------
  Text Content
---------------*/
.ui.menu .text.item > *,
.ui.menu .item > a:not(.ui),
.ui.menu .item > p:only-child {
  user-select: text;
  line-height: 1.3;
}
.ui.menu .item > p:first-child {
  margin-top: 0;
}
.ui.menu .item > p:last-child {
  margin-bottom: 0;
}
/*--------------
      Icons
---------------*/
.ui.menu .item > i.icon {
  opacity: 0.9;
  float: none;
  margin: 0em 0.35714286em 0em 0em;
}
/*--------------
     Button
---------------*/
.ui.menu:not(.vertical) .item > .button {
  position: relative;
  top: 0em;
  margin: -0.5em 0em;
  padding-bottom: 0.78571429em;
  padding-top: 0.78571429em;
  font-size: 1em;
}
/*----------------
 Grid / Container
-----------------*/
.ui.menu > .grid,
.ui.menu > .container {
  display: flex;
  align-items: inherit;
  flex-direction: inherit;
}
/*--------------
     Inputs
---------------*/
.ui.menu .item > .input {
  width: 100%;
}
.ui.menu:not(.vertical) .item > .input {
  position: relative;
  top: 0em;
  margin: -0.5em 0em;
}
.ui.menu .item > .input input {
  font-size: 1em;
  padding-top: 0.57142857em;
  padding-bottom: 0.57142857em;
}
/*--------------
     Header
---------------*/
.ui.menu .header.item,
.ui.vertical.menu .header.item {
  margin: 0em;
  background: '';
  text-transform: normal;
  font-weight: bold;
}
.ui.vertical.menu .item > .header:not(.ui) {
  margin: 0em 0em 0.5em;
  font-size: 1em;
  font-weight: bold;
}
/*--------------
    Dropdowns
---------------*/
/* Dropdown Icon */
.ui.menu .item > i.dropdown.icon {
  padding: 0em;
  float: right;
  margin: 0em 0em 0em 1em;
}
/* Menu */
.ui.menu .dropdown.item .menu {
  min-width: calc(100% - 1px);
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
  background: #FFFFFF;
  margin: 0em 0px 0px;
  box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.08);
  flex-direction: column !important;
}
/* Menu Items */
.ui.menu .ui.dropdown .menu > .item {
  margin: 0;
  text-align: left;
  font-size: 1em !important;
  padding: 0.78571429em 1.14285714em !important;
  background: transparent !important;
  color: rgba(0, 0, 0, 0.87) !important;
  text-transform: none !important;
  font-weight: normal !important;
  box-shadow: none !important;
  transition: none !important;
}
.ui.menu .ui.dropdown .menu > .item:hover {
  background: rgba(0, 0, 0, 0.05) !important;
  color: rgba(0, 0, 0, 0.95) !important;
}
.ui.menu .ui.dropdown .menu > .selected.item {
  background: rgba(0, 0, 0, 0.05) !important;
  color: rgba(0, 0, 0, 0.95) !important;
}
.ui.menu .ui.dropdown .menu > .active.item {
  background: rgba(0, 0, 0, 0.03) !important;
  font-weight: bold !important;
  color: rgba(0, 0, 0, 0.95) !important;
}
.ui.menu .ui.dropdown.item .menu .item:not(.filtered) {
  display: block;
}
.ui.menu .ui.dropdown .menu > .item .icon:not(.dropdown) {
  display: inline-block;
  font-size: 1em !important;
  float: none;
  margin: 0em 0.75em 0em 0em !important;
}
/* Secondary */
.ui.secondary.menu .dropdown.item > .menu,
.ui.text.menu .dropdown.item > .menu {
  border-radius: 0.28571429rem;
  margin-top: 0.35714286em;
}
/* Pointing */
.ui.menu .pointing.dropdown.item .menu {
  margin-top: 0.75em;
}
/* Inverted */
.ui.inverted.menu .search.dropdown.item > .search,
.ui.inverted.menu .search.dropdown.item > .text {
  color: rgba(255, 255, 255, 0.9);
}
/* Vertical */
.ui.vertical.menu .dropdown.item > .icon {
  float: right;
  content: "\f0da";
  margin-left: 1em;
}
.ui.vertical.menu .dropdown.item .menu {
  left: 100%;
  min-width: 0;
  margin: 0em 0em 0em 0em;
  box-shadow: 0 1px 3px 0px rgba(0, 0, 0, 0.08);
  border-radius: 0em 0.28571429rem 0.28571429rem 0.28571429rem;
}
.ui.vertical.menu .dropdown.item.upward .menu {
  bottom: 0;
}
.ui.vertical.menu .dropdown.item:not(.upward) .menu {
  top: 0;
}
.ui.vertical.menu .active.dropdown.item {
  border-top-right-radius: 0em;
  border-bottom-right-radius: 0em;
}
.ui.vertical.menu .dropdown.active.item {
  box-shadow: none;
}
/* Evenly Divided */
.ui.item.menu .dropdown .menu .item {
  width: 100%;
}
/*--------------
     Labels
---------------*/
.ui.menu .item > .label {
  background: #999999;
  color: #FFFFFF;
  margin-left: 1em;
  padding: 0.3em 0.78571429em;
}
.ui.vertical.menu .item > .label {
  background: #999999;
  color: #FFFFFF;
  margin-top: -0.15em;
  margin-bottom: -0.15em;
  padding: 0.3em 0.78571429em;
}
.ui.menu .item > .floating.label {
  padding: 0.3em 0.78571429em;
}
/*--------------
     Images
---------------*/
.ui.menu .item > img:not(.ui) {
  display: inline-block;
  vertical-align: middle;
  margin: -0.3em 0em;
  width: 2.5em;
}
.ui.vertical.menu .item > img:not(.ui):only-child {
  display: block;
  max-width: 100%;
  width: auto;
}
/*******************************
          Coupling
*******************************/
/*--------------
     List
---------------*/
/* Menu divider shouldnt apply */
.ui.menu .list .item:before {
  background: none !important;
}
/*--------------
     Sidebar
---------------*/
/* Show vertical dividers below last */
.ui.vertical.sidebar.menu > .item:first-child:before {
  display: block !important;
}
.ui.vertical.sidebar.menu > .item::before {
  top: auto;
  bottom: 0px;
}
/*--------------
    Container
---------------*/
@media only screen and (max-width: 767px) {
  .ui.menu > .ui.container {
    width: 100% !important;
    margin-left: 0em !important;
    margin-right: 0em !important;
  }
}
@media only screen and (min-width: 768px) {
  .ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless) > .container > .item:not(.right):not(.borderless):first-child {
    border-left: 1px solid rgba(34, 36, 38, 0.1);
  }
}
/*******************************
             States
*******************************/
/*--------------
      Hover
---------------*/
.ui.link.menu .item:hover,
.ui.menu .dropdown.item:hover,
.ui.menu .link.item:hover,
.ui.menu a.item:hover {
  cursor: pointer;
  background: rgba(0, 0, 0, 0.03);
  color: rgba(0, 0, 0, 0.95);
}
/*--------------
     Pressed
---------------*/
.ui.link.menu .item:active,
.ui.menu .link.item:active,
.ui.menu a.item:active {
  background: rgba(0, 0, 0, 0.03);
  color: rgba(0, 0, 0, 0.95);
}
/*--------------
     Active
---------------*/
.ui.menu .active.item {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
  font-weight: normal;
  box-shadow: none;
}
.ui.menu .active.item > i.icon {
  opacity: 1;
}
/*--------------
  Active Hover
---------------*/
.ui.menu .active.item:hover,
.ui.vertical.menu .active.item:hover {
  background-color: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
}
/*--------------
     Disabled
---------------*/
.ui.menu .item.disabled,
.ui.menu .item.disabled:hover {
  cursor: default !important;
  background-color: transparent !important;
  color: rgba(40, 40, 40, 0.3) !important;
}
/*******************************
             Types
*******************************/
/*------------------
Floated Menu / Item
-------------------*/
/* Left Floated */
.ui.menu:not(.vertical) .left.item,
.ui.menu:not(.vertical) :not(.dropdown) > .left.menu {
  display: flex;
  margin-right: auto !important;
}
/* Right Floated */
.ui.menu:not(.vertical) .right.item,
.ui.menu:not(.vertical) .right.menu {
  display: flex;
  margin-left: auto !important;
}
/* Swapped Borders */
.ui.menu .right.item::before,
.ui.menu .right.menu > .item::before {
  right: auto;
  left: 0;
}
/*--------------
    Vertical
---------------*/
.ui.vertical.menu {
  display: block;
  flex-direction: column;
  background: #FFFFFF;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
}
/*--- Item ---*/
.ui.vertical.menu .item {
  display: block;
  background: none;
  border-top: none;
  border-right: none;
}
.ui.vertical.menu > .item:first-child {
  border-radius: 0.28571429rem 0.28571429rem 0px 0px;
}
.ui.vertical.menu > .item:last-child {
  border-radius: 0px 0px 0.28571429rem 0.28571429rem;
}
/*--- Label ---*/
.ui.vertical.menu .item > .label {
  float: right;
  text-align: center;
}
/*--- Icon ---*/
.ui.vertical.menu .item > i.icon {
  width: 1.18em;
  float: right;
  margin: 0em 0em 0em 0.5em;
}
.ui.vertical.menu .item > .label + i.icon {
  float: none;
  margin: 0em 0.5em 0em 0em;
}
/*--- Border ---*/
.ui.vertical.menu .item:before {
  position: absolute;
  content: '';
  top: 0%;
  left: 0px;
  width: 100%;
  height: 1px;
  background: rgba(34, 36, 38, 0.1);
}
.ui.vertical.menu .item:first-child:before {
  display: none !important;
}
/*--- Sub Menu ---*/
.ui.vertical.menu .item > .menu {
  margin: 0.5em -1.14285714em 0em;
}
.ui.vertical.menu .menu .item {
  background: none;
  padding: 0.5em 1.33333333em;
  font-size: 0.85714286em;
  color: rgba(0, 0, 0, 0.5);
}
.ui.vertical.menu .item .menu a.item:hover,
.ui.vertical.menu .item .menu .link.item:hover {
  color: rgba(0, 0, 0, 0.85);
}
.ui.vertical.menu .menu .item:before {
  display: none;
}
/* Vertical Active */
.ui.vertical.menu .active.item {
  background: rgba(0, 0, 0, 0.05);
  border-radius: 0em;
  box-shadow: none;
}
.ui.vertical.menu > .active.item:first-child {
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.vertical.menu > .active.item:last-child {
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
.ui.vertical.menu > .active.item:only-child {
  border-radius: 0.28571429rem;
}
.ui.vertical.menu .active.item .menu .active.item {
  border-left: none;
}
.ui.vertical.menu .item .menu .active.item {
  background-color: transparent;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.95);
}
/*--------------
     Tabular
---------------*/
.ui.tabular.menu {
  border-radius: 0em;
  box-shadow: none !important;
  border: none;
  background: none transparent;
  border-bottom: 1px solid #D4D4D5;
}
.ui.tabular.fluid.menu {
  width: calc(100% + (1px * 2)) !important;
}
.ui.tabular.menu .item {
  background: transparent;
  border-bottom: none;
  border-left: 1px solid transparent;
  border-right: 1px solid transparent;
  border-top: 2px solid transparent;
  padding: 0.92857143em 1.42857143em;
  color: rgba(0, 0, 0, 0.87);
}
.ui.tabular.menu .item:before {
  display: none;
}
/* Hover */
.ui.tabular.menu .item:hover {
  background-color: transparent;
  color: rgba(0, 0, 0, 0.8);
}
/* Active */
.ui.tabular.menu .active.item {
  background: none #FFFFFF;
  color: rgba(0, 0, 0, 0.95);
  border-top-width: 1px;
  border-color: #D4D4D5;
  font-weight: bold;
  margin-bottom: -1px;
  box-shadow: none;
  border-radius: 0.28571429rem 0.28571429rem 0px 0px !important;
}
/* Coupling with segment for attachment */
.ui.tabular.menu + .attached:not(.top).segment,
.ui.tabular.menu + .attached:not(.top).segment + .attached:not(.top).segment {
  border-top: none;
  margin-left: 0px;
  margin-top: 0px;
  margin-right: 0px;
  width: 100%;
}
.top.attached.segment + .ui.bottom.tabular.menu {
  position: relative;
  width: calc(100% + (1px * 2));
  left: -1px;
}
/* Bottom Vertical Tabular */
.ui.bottom.tabular.menu {
  background: none transparent;
  border-radius: 0em;
  box-shadow: none !important;
  border-bottom: none;
  border-top: 1px solid #D4D4D5;
}
.ui.bottom.tabular.menu .item {
  background: none;
  border-left: 1px solid transparent;
  border-right: 1px solid transparent;
  border-bottom: 1px solid transparent;
  border-top: none;
}
.ui.bottom.tabular.menu .active.item {
  background: none #FFFFFF;
  color: rgba(0, 0, 0, 0.95);
  border-color: #D4D4D5;
  margin: -1px 0px 0px 0px;
  border-radius: 0px 0px 0.28571429rem 0.28571429rem !important;
}
/* Vertical Tabular (Left) */
.ui.vertical.tabular.menu {
  background: none transparent;
  border-radius: 0em;
  box-shadow: none !important;
  border-bottom: none;
  border-right: 1px solid #D4D4D5;
}
.ui.vertical.tabular.menu .item {
  background: none;
  border-left: 1px solid transparent;
  border-bottom: 1px solid transparent;
  border-top: 1px solid transparent;
  border-right: none;
}
.ui.vertical.tabular.menu .active.item {
  background: none #FFFFFF;
  color: rgba(0, 0, 0, 0.95);
  border-color: #D4D4D5;
  margin: 0px -1px 0px 0px;
  border-radius: 0.28571429rem 0px 0px 0.28571429rem !important;
}
/* Vertical Right Tabular */
.ui.vertical.right.tabular.menu {
  background: none transparent;
  border-radius: 0em;
  box-shadow: none !important;
  border-bottom: none;
  border-right: none;
  border-left: 1px solid #D4D4D5;
}
.ui.vertical.right.tabular.menu .item {
  background: none;
  border-right: 1px solid transparent;
  border-bottom: 1px solid transparent;
  border-top: 1px solid transparent;
  border-left: none;
}
.ui.vertical.right.tabular.menu .active.item {
  background: none #FFFFFF;
  color: rgba(0, 0, 0, 0.95);
  border-color: #D4D4D5;
  margin: 0px 0px 0px -1px;
  border-radius: 0px 0.28571429rem 0.28571429rem 0px !important;
}
/* Dropdown */
.ui.tabular.menu .active.dropdown.item {
  margin-bottom: 0px;
  border-left: 1px solid transparent;
  border-right: 1px solid transparent;
  border-top: 2px solid transparent;
  border-bottom: none;
}
/*--------------
   Pagination
---------------*/
.ui.pagination.menu {
  margin: 0em;
  display: inline-flex;
  vertical-align: middle;
}
.ui.pagination.menu .item:last-child {
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
}
.ui.compact.menu .item:last-child {
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
}
.ui.pagination.menu .item:last-child:before {
  display: none;
}
.ui.pagination.menu .item {
  min-width: 3em;
  text-align: center;
}
.ui.pagination.menu .icon.item i.icon {
  vertical-align: top;
}
/* Active */
.ui.pagination.menu .active.item {
  border-top: none;
  padding-top: 0.92857143em;
  background-color: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
  box-shadow: none;
}
/*--------------
   Secondary
---------------*/
.ui.secondary.menu {
  background: none;
  margin-left: -0.35714286em;
  margin-right: -0.35714286em;
  border-radius: 0em;
  border: none;
  box-shadow: none;
}
/* Item */
.ui.secondary.menu .item {
  align-self: center;
  box-shadow: none;
  border: none;
  padding: 0.78571429em 0.92857143em;
  margin: 0em 0.35714286em;
  background: none;
  transition: color 0.1s ease;
  border-radius: 0.28571429rem;
}
/* No Divider */
.ui.secondary.menu .item:before {
  display: none !important;
}
/* Header */
.ui.secondary.menu .header.item {
  border-radius: 0em;
  border-right: none;
  background: none transparent;
}
/* Image */
.ui.secondary.menu .item > img:not(.ui) {
  margin: 0em;
}
/* Hover */
.ui.secondary.menu .dropdown.item:hover,
.ui.secondary.menu .link.item:hover,
.ui.secondary.menu a.item:hover {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
}
/* Active */
.ui.secondary.menu .active.item {
  box-shadow: none;
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
  border-radius: 0.28571429rem;
}
/* Active Hover */
.ui.secondary.menu .active.item:hover {
  box-shadow: none;
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
}
/* Inverted */
.ui.secondary.inverted.menu .link.item,
.ui.secondary.inverted.menu a.item {
  color: rgba(255, 255, 255, 0.7) !important;
}
.ui.secondary.inverted.menu .dropdown.item:hover,
.ui.secondary.inverted.menu .link.item:hover,
.ui.secondary.inverted.menu a.item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff !important;
}
.ui.secondary.inverted.menu .active.item {
  background: rgba(255, 255, 255, 0.15);
  color: #ffffff !important;
}
/* Fix item margins */
.ui.secondary.item.menu {
  margin-left: 0em;
  margin-right: 0em;
}
.ui.secondary.item.menu .item:last-child {
  margin-right: 0em;
}
.ui.secondary.attached.menu {
  box-shadow: none;
}
/* Sub Menu */
.ui.vertical.secondary.menu .item:not(.dropdown) > .menu {
  margin: 0em -0.92857143em;
}
.ui.vertical.secondary.menu .item:not(.dropdown) > .menu > .item {
  margin: 0em;
  padding: 0.5em 1.33333333em;
}
/*---------------------
   Secondary Vertical
-----------------------*/
.ui.secondary.vertical.menu > .item {
  border: none;
  margin: 0em 0em 0.35714286em;
  border-radius: 0.28571429rem !important;
}
.ui.secondary.vertical.menu > .header.item {
  border-radius: 0em;
}
/* Sub Menu */
.ui.vertical.secondary.menu .item > .menu .item {
  background-color: transparent;
}
/* Inverted */
.ui.secondary.inverted.menu {
  background-color: transparent;
}
/*---------------------
   Secondary Pointing
-----------------------*/
.ui.secondary.pointing.menu {
  margin-left: 0em;
  margin-right: 0em;
  border-bottom: 2px solid rgba(34, 36, 38, 0.15);
}
.ui.secondary.pointing.menu .item {
  border-bottom-color: transparent;
  border-bottom-style: solid;
  border-radius: 0em;
  align-self: flex-end;
  margin: 0em 0em -2px;
  padding: 0.85714286em 1.14285714em;
  border-bottom-width: 2px;
  transition: color 0.1s ease;
}
/* Item Types */
.ui.secondary.pointing.menu .header.item {
  color: rgba(0, 0, 0, 0.85) !important;
}
.ui.secondary.pointing.menu .text.item {
  box-shadow: none !important;
}
.ui.secondary.pointing.menu .item:after {
  display: none;
}
/* Hover */
.ui.secondary.pointing.menu .dropdown.item:hover,
.ui.secondary.pointing.menu .link.item:hover,
.ui.secondary.pointing.menu a.item:hover {
  background-color: transparent;
  color: rgba(0, 0, 0, 0.87);
}
/* Pressed */
.ui.secondary.pointing.menu .dropdown.item:active,
.ui.secondary.pointing.menu .link.item:active,
.ui.secondary.pointing.menu a.item:active {
  background-color: transparent;
  border-color: rgba(34, 36, 38, 0.15);
}
/* Active */
.ui.secondary.pointing.menu .active.item {
  background-color: transparent;
  box-shadow: none;
  border-color: #1B1C1D;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.95);
}
/* Active Hover */
.ui.secondary.pointing.menu .active.item:hover {
  border-color: #1B1C1D;
  color: rgba(0, 0, 0, 0.95);
}
/* Active Dropdown */
.ui.secondary.pointing.menu .active.dropdown.item {
  border-color: transparent;
}
/* Vertical Pointing */
.ui.secondary.vertical.pointing.menu {
  border-bottom-width: 0px;
  border-right-width: 2px;
  border-right-style: solid;
  border-right-color: rgba(34, 36, 38, 0.15);
}
.ui.secondary.vertical.pointing.menu .item {
  border-bottom: none;
  border-right-style: solid;
  border-right-color: transparent;
  border-radius: 0em !important;
  margin: 0em -2px 0em 0em;
  border-right-width: 2px;
}
/* Vertical Active */
.ui.secondary.vertical.pointing.menu .active.item {
  border-color: #1B1C1D;
}
/* Inverted */
.ui.secondary.inverted.pointing.menu {
  border-color: rgba(255, 255, 255, 0.1);
}
.ui.secondary.inverted.pointing.menu {
  border-width: 2px;
  border-color: rgba(34, 36, 38, 0.15);
}
.ui.secondary.inverted.pointing.menu .item {
  color: rgba(255, 255, 255, 0.9);
}
.ui.secondary.inverted.pointing.menu .header.item {
  color: #FFFFFF !important;
}
/* Hover */
.ui.secondary.inverted.pointing.menu .link.item:hover,
.ui.secondary.inverted.pointing.menu a.item:hover {
  color: rgba(0, 0, 0, 0.95);
}
/* Active */
.ui.secondary.inverted.pointing.menu .active.item {
  border-color: #FFFFFF;
  color: #ffffff;
}
/*--------------
    Text Menu
---------------*/
.ui.text.menu {
  background: none transparent;
  border-radius: 0px;
  box-shadow: none;
  border: none;
  margin: 1em -0.5em;
}
.ui.text.menu .item {
  border-radius: 0px;
  box-shadow: none;
  align-self: center;
  margin: 0em 0em;
  padding: 0.35714286em 0.5em;
  font-weight: normal;
  color: rgba(0, 0, 0, 0.6);
  transition: opacity 0.1s ease;
}
/* Border */
.ui.text.menu .item:before,
.ui.text.menu .menu .item:before {
  display: none !important;
}
/* Header */
.ui.text.menu .header.item {
  background-color: transparent;
  opacity: 1;
  color: rgba(0, 0, 0, 0.85);
  font-size: 0.92857143em;
  text-transform: uppercase;
  font-weight: bold;
}
/* Image */
.ui.text.menu .item > img:not(.ui) {
  margin: 0em;
}
/*--- fluid text ---*/
.ui.text.item.menu .item {
  margin: 0em;
}
/*--- vertical text ---*/
.ui.vertical.text.menu {
  margin: 1em 0em;
}
.ui.vertical.text.menu:first-child {
  margin-top: 0rem;
}
.ui.vertical.text.menu:last-child {
  margin-bottom: 0rem;
}
.ui.vertical.text.menu .item {
  margin: 0.57142857em 0em;
  padding-left: 0em;
  padding-right: 0em;
}
.ui.vertical.text.menu .item > i.icon {
  float: none;
  margin: 0em 0.35714286em 0em 0em;
}
.ui.vertical.text.menu .header.item {
  margin: 0.57142857em 0em 0.71428571em;
}
/* Vertical Sub Menu */
.ui.vertical.text.menu .item:not(.dropdown) > .menu {
  margin: 0em;
}
.ui.vertical.text.menu .item:not(.dropdown) > .menu > .item {
  margin: 0em;
  padding: 0.5em 0em;
}
/*--- hover ---*/
.ui.text.menu .item:hover {
  opacity: 1;
  background-color: transparent;
}
/*--- active ---*/
.ui.text.menu .active.item {
  background-color: transparent;
  border: none;
  box-shadow: none;
  font-weight: normal;
  color: rgba(0, 0, 0, 0.95);
}
/*--- active hover ---*/
.ui.text.menu .active.item:hover {
  background-color: transparent;
}
/* Disable Bariations */
.ui.text.pointing.menu .active.item:after {
  box-shadow: none;
}
.ui.text.attached.menu {
  box-shadow: none;
}
/* Inverted */
.ui.inverted.text.menu,
.ui.inverted.text.menu .item,
.ui.inverted.text.menu .item:hover,
.ui.inverted.text.menu .active.item {
  background-color: transparent !important;
}
/* Fluid */
.ui.fluid.text.menu {
  margin-left: 0em;
  margin-right: 0em;
}
/*--------------
    Icon Only
---------------*/
/* Vertical Menu */
.ui.vertical.icon.menu {
  display: inline-block;
  width: auto;
}
/* Item */
.ui.icon.menu .item {
  height: auto;
  text-align: center;
  color: #1B1C1D;
}
/* Icon */
.ui.icon.menu .item > .icon:not(.dropdown) {
  margin: 0;
  opacity: 1;
}
/* Icon Gylph */
.ui.icon.menu .icon:before {
  opacity: 1;
}
/* (x) Item Icon */
.ui.menu .icon.item > .icon {
  width: auto;
  margin: 0em auto;
}
/* Vertical Icon */
.ui.vertical.icon.menu .item > .icon:not(.dropdown) {
  display: block;
  opacity: 1;
  margin: 0em auto;
  float: none;
}
/* Inverted */
.ui.inverted.icon.menu .item {
  color: #FFFFFF;
}
/*--------------
   Labeled Icon
---------------*/
/* Menu */
.ui.labeled.icon.menu {
  text-align: center;
}
/* Item */
.ui.labeled.icon.menu .item {
  min-width: 6em;
  flex-direction: column;
}
/* Icon */
.ui.labeled.icon.menu .item > .icon:not(.dropdown) {
  height: 1em;
  display: block;
  font-size: 1.71428571em !important;
  margin: 0em auto 0.5rem !important;
}
/* Fluid */
.ui.fluid.labeled.icon.menu > .item {
  min-width: 0em;
}
/*******************************
           Variations
*******************************/
/*--------------
    Stackable
---------------*/
@media only screen and (max-width: 767px) {
  .ui.stackable.menu {
    flex-direction: column;
  }
  .ui.stackable.menu .item {
    width: 100% !important;
  }
  .ui.stackable.menu .item:before {
    position: absolute;
    content: '';
    top: auto;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: 1px;
    background: rgba(34, 36, 38, 0.1);
  }
  .ui.stackable.menu .left.menu,
  .ui.stackable.menu .left.item {
    margin-right: 0 !important;
  }
  .ui.stackable.menu .right.menu,
  .ui.stackable.menu .right.item {
    margin-left: 0 !important;
  }
  .ui.stackable.menu .right.menu,
  .ui.stackable.menu .left.menu {
    flex-direction: column;
  }
}
/*--------------
     Colors
---------------*/
/*--- Standard Colors  ---*/
.ui.menu .red.active.item,
.ui.red.menu .active.item {
  border-color: #DB2828 !important;
  color: #DB2828 !important;
}
.ui.menu .orange.active.item,
.ui.orange.menu .active.item {
  border-color: #F2711C !important;
  color: #F2711C !important;
}
.ui.menu .yellow.active.item,
.ui.yellow.menu .active.item {
  border-color: #FBBD08 !important;
  color: #FBBD08 !important;
}
.ui.menu .olive.active.item,
.ui.olive.menu .active.item {
  border-color: #B5CC18 !important;
  color: #B5CC18 !important;
}
.ui.menu .green.active.item,
.ui.green.menu .active.item {
  border-color: #21BA45 !important;
  color: #21BA45 !important;
}
.ui.menu .teal.active.item,
.ui.teal.menu .active.item {
  border-color: #00B5AD !important;
  color: #00B5AD !important;
}
.ui.menu .blue.active.item,
.ui.blue.menu .active.item {
  border-color: #2185D0 !important;
  color: #2185D0 !important;
}
.ui.menu .violet.active.item,
.ui.violet.menu .active.item {
  border-color: #6435C9 !important;
  color: #6435C9 !important;
}
.ui.menu .purple.active.item,
.ui.purple.menu .active.item {
  border-color: #A333C8 !important;
  color: #A333C8 !important;
}
.ui.menu .pink.active.item,
.ui.pink.menu .active.item {
  border-color: #E03997 !important;
  color: #E03997 !important;
}
.ui.menu .brown.active.item,
.ui.brown.menu .active.item {
  border-color: #A5673F !important;
  color: #A5673F !important;
}
.ui.menu .grey.active.item,
.ui.grey.menu .active.item {
  border-color: #767676 !important;
  color: #767676 !important;
}
/*--------------
    Inverted
---------------*/
.ui.inverted.menu {
  border: 0px solid transparent;
  background: #2185D0;
  box-shadow: none;
}
/* Menu Item */
.ui.inverted.menu .item,
.ui.inverted.menu .item > a:not(.ui) {
  background: transparent;
  color: rgba(255, 255, 255, 0.9);
}
.ui.inverted.menu .item.menu {
  background: transparent;
}
/*--- Border ---*/
.ui.inverted.menu .item:before {
  background: rgba(255, 255, 255, 0.08);
}
.ui.vertical.inverted.menu .item:before {
  background: rgba(255, 255, 255, 0.08);
}
/* Sub Menu */
.ui.vertical.inverted.menu .menu .item,
.ui.vertical.inverted.menu .menu .item a:not(.ui) {
  color: rgba(255, 255, 255, 0.5);
}
/* Header */
.ui.inverted.menu .header.item {
  margin: 0em;
  background: transparent;
  box-shadow: none;
}
/* Disabled */
.ui.inverted.menu .item.disabled,
.ui.inverted.menu .item.disabled:hover {
  color: rgba(225, 225, 225, 0.3);
}
/*--- Hover ---*/
.ui.link.inverted.menu .item:hover,
.ui.inverted.menu .dropdown.item:hover,
.ui.inverted.menu .link.item:hover,
.ui.inverted.menu a.item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}
.ui.vertical.inverted.menu .item .menu a.item:hover,
.ui.vertical.inverted.menu .item .menu .link.item:hover {
  background: transparent;
  color: #ffffff;
}
/*--- Pressed ---*/
.ui.inverted.menu a.item:active,
.ui.inverted.menu .link.item:active {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}
/*--- Active ---*/
.ui.inverted.menu .active.item {
  background: rgba(255, 255, 255, 0.15);
  color: #ffffff !important;
}
.ui.inverted.vertical.menu .item .menu .active.item {
  background: transparent;
  color: #FFFFFF;
}
.ui.inverted.pointing.menu .active.item:after {
  background: #3D3E3F !important;
  margin: 0em !important;
  box-shadow: none !important;
  border: none !important;
}
/*--- Active Hover ---*/
.ui.inverted.menu .active.item:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #FFFFFF !important;
}
.ui.inverted.pointing.menu .active.item:hover:after {
  background: #3D3E3F !important;
}
/*--------------
     Floated
---------------*/
.ui.floated.menu {
  float: left;
  margin: 0rem 0.5rem 0rem 0rem;
}
.ui.floated.menu .item:last-child:before {
  display: none;
}
.ui.right.floated.menu {
  float: right;
  margin: 0rem 0rem 0rem 0.5rem;
}
/*--------------
    Inverted
---------------*/
/* Red */
.ui.inverted.menu .red.active.item,
.ui.inverted.red.menu {
  background-color: #DB2828;
}
.ui.inverted.red.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.red.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Orange */
.ui.inverted.menu .orange.active.item,
.ui.inverted.orange.menu {
  background-color: #F2711C;
}
.ui.inverted.orange.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.orange.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Yellow */
.ui.inverted.menu .yellow.active.item,
.ui.inverted.yellow.menu {
  background-color: #FBBD08;
}
.ui.inverted.yellow.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.yellow.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Olive */
.ui.inverted.menu .olive.active.item,
.ui.inverted.olive.menu {
  background-color: #B5CC18;
}
.ui.inverted.olive.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.olive.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Green */
.ui.inverted.menu .green.active.item,
.ui.inverted.green.menu {
  background-color: #21BA45;
}
.ui.inverted.green.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.green.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Teal */
.ui.inverted.menu .teal.active.item,
.ui.inverted.teal.menu {
  background-color: #00B5AD;
}
.ui.inverted.teal.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.teal.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Blue */
.ui.inverted.menu .blue.active.item,
.ui.inverted.blue.menu {
  background-color: #2185D0;
}
.ui.inverted.blue.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.blue.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Violet */
.ui.inverted.menu .violet.active.item,
.ui.inverted.violet.menu {
  background-color: #6435C9;
}
.ui.inverted.violet.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.violet.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Purple */
.ui.inverted.menu .purple.active.item,
.ui.inverted.purple.menu {
  background-color: #A333C8;
}
.ui.inverted.purple.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.purple.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Pink */
.ui.inverted.menu .pink.active.item,
.ui.inverted.pink.menu {
  background-color: #E03997;
}
.ui.inverted.pink.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.pink.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Brown */
.ui.inverted.menu .brown.active.item,
.ui.inverted.brown.menu {
  background-color: #A5673F;
}
.ui.inverted.brown.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.brown.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/* Grey */
.ui.inverted.menu .grey.active.item,
.ui.inverted.grey.menu {
  background-color: #767676;
}
.ui.inverted.grey.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.grey.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
/*--------------
     Fitted
---------------*/
.ui.fitted.menu .item,
.ui.fitted.menu .item .menu .item,
.ui.menu .fitted.item {
  padding: 0em;
}
.ui.horizontally.fitted.menu .item,
.ui.horizontally.fitted.menu .item .menu .item,
.ui.menu .horizontally.fitted.item {
  padding-top: 0.92857143em;
  padding-bottom: 0.92857143em;
}
.ui.vertically.fitted.menu .item,
.ui.vertically.fitted.menu .item .menu .item,
.ui.menu .vertically.fitted.item {
  padding-left: 1.14285714em;
  padding-right: 1.14285714em;
}
/*--------------
   Borderless
---------------*/
.ui.borderless.menu .item:before,
.ui.borderless.menu .item .menu .item:before,
.ui.menu .borderless.item:before {
  background: none !important;
}
/*-------------------
       Compact
--------------------*/
.ui.compact.menu {
  display: inline-flex;
  margin: 0em;
  vertical-align: middle;
}
.ui.compact.vertical.menu {
  display: inline-block;
}
.ui.compact.menu .item:last-child {
  border-radius: 0em 0.28571429rem 0.28571429rem 0em;
}
.ui.compact.menu .item:last-child:before {
  display: none;
}
.ui.compact.vertical.menu {
  width: auto !important;
}
.ui.compact.vertical.menu .item:last-child::before {
  display: block;
}
/*-------------------
        Fluid
--------------------*/
.ui.menu.fluid,
.ui.vertical.menu.fluid {
  width: 100% !important;
}
/*-------------------
      Evenly Sized
--------------------*/
.ui.item.menu,
.ui.item.menu .item {
  width: 100%;
  padding-left: 0em !important;
  padding-right: 0em !important;
  margin-left: 0em !important;
  margin-right: 0em !important;
  text-align: center;
  justify-content: center;
}
.ui.attached.item.menu {
  margin: 0em -1px !important;
}
.ui.item.menu .item:last-child:before {
  display: none;
}
.ui.menu.two.item .item {
  width: 50%;
}
.ui.menu.three.item .item {
  width: 33.333%;
}
.ui.menu.four.item .item {
  width: 25%;
}
.ui.menu.five.item .item {
  width: 20%;
}
.ui.menu.six.item .item {
  width: 16.666%;
}
.ui.menu.seven.item .item {
  width: 14.285%;
}
.ui.menu.eight.item .item {
  width: 12.5%;
}
.ui.menu.nine.item .item {
  width: 11.11%;
}
.ui.menu.ten.item .item {
  width: 10%;
}
.ui.menu.eleven.item .item {
  width: 9.09%;
}
.ui.menu.twelve.item .item {
  width: 8.333%;
}
/*--------------
     Fixed
---------------*/
.ui.menu.fixed {
  position: fixed;
  z-index: 101;
  margin: 0em;
  width: 100%;
}
.ui.menu.fixed,
.ui.menu.fixed .item:first-child,
.ui.menu.fixed .item:last-child {
  border-radius: 0px !important;
}
.ui.fixed.menu,
.ui[class*="top fixed"].menu {
  top: 0px;
  left: 0px;
  right: auto;
  bottom: auto;
}
.ui[class*="top fixed"].menu {
  border-top: none;
  border-left: none;
  border-right: none;
}
.ui[class*="right fixed"].menu {
  border-top: none;
  border-bottom: none;
  border-right: none;
  top: 0px;
  right: 0px;
  left: auto;
  bottom: auto;
  width: auto;
  height: 100%;
}
.ui[class*="bottom fixed"].menu {
  border-bottom: none;
  border-left: none;
  border-right: none;
  bottom: 0px;
  left: 0px;
  top: auto;
  right: auto;
}
.ui[class*="left fixed"].menu {
  border-top: none;
  border-bottom: none;
  border-left: none;
  top: 0px;
  left: 0px;
  right: auto;
  bottom: auto;
  width: auto;
  height: 100%;
}
/* Coupling with Grid */
.ui.fixed.menu + .ui.grid {
  padding-top: 2.75rem;
}
/*-------------------
       Pointing
--------------------*/
.ui.pointing.menu .item:after {
  visibility: hidden;
  position: absolute;
  content: '';
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
  background: none;
  margin: 0.5px 0em 0em;
  width: 0.57142857em;
  height: 0.57142857em;
  border: none;
  border-bottom: 1px solid #D4D4D5;
  border-right: 1px solid #D4D4D5;
  z-index: 2;
  transition: background 0.1s ease;
}
.ui.vertical.pointing.menu .item:after {
  position: absolute;
  top: 50%;
  right: 0%;
  bottom: auto;
  left: auto;
  transform: translateX(50%) translateY(-50%) rotate(45deg);
  margin: 0em -0.5px 0em 0em;
  border: none;
  border-top: 1px solid #D4D4D5;
  border-right: 1px solid #D4D4D5;
}
/* Active */
.ui.pointing.menu .active.item:after {
  visibility: visible;
}
.ui.pointing.menu .active.dropdown.item:after {
  visibility: hidden;
}
/* Don't double up pointers */
.ui.pointing.menu .dropdown.active.item:after,
.ui.pointing.menu .active.item .menu .active.item:after {
  display: none;
}
/* Colors */
.ui.pointing.menu .active.item:hover:after {
  background-color: #F2F2F2;
}
.ui.pointing.menu .active.item:after {
  background-color: #F2F2F2;
}
.ui.pointing.menu .active.item:hover:after {
  background-color: #F2F2F2;
}
.ui.vertical.pointing.menu .active.item:hover:after {
  background-color: #F2F2F2;
}
.ui.vertical.pointing.menu .active.item:after {
  background-color: #F2F2F2;
}
.ui.vertical.pointing.menu .menu .active.item:after {
  background-color: #FFFFFF;
}
/*--------------
    Attached
---------------*/
/* Middle */
.ui.attached.menu {
  top: 0px;
  bottom: 0px;
  border-radius: 0px;
  margin: 0em -1px;
  width: calc(100% - (-1px * 2));
  max-width: calc(100% - (-1px * 2));
  box-shadow: none;
}
.ui.attached + .ui.attached.menu:not(.top) {
  border-top: none;
}
/* Top */
.ui[class*="top attached"].menu {
  bottom: 0px;
  margin-bottom: 0em;
  top: 0px;
  margin-top: 1rem;
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.menu[class*="top attached"]:first-child {
  margin-top: 0em;
}
/* Bottom */
.ui[class*="bottom attached"].menu {
  bottom: 0px;
  margin-top: 0em;
  top: 0px;
  margin-bottom: 1rem;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
.ui[class*="bottom attached"].menu:last-child {
  margin-bottom: 0em;
}
/* Attached Menu Item */
.ui.top.attached.menu > .item:first-child {
  border-radius: 0.28571429rem 0em 0em 0em;
}
.ui.bottom.attached.menu > .item:first-child {
  border-radius: 0em 0em 0em 0.28571429rem;
}
/* Tabular Attached */
.ui.attached.menu:not(.tabular) {
  border: 1px solid #D4D4D5;
}
.ui.attached.inverted.menu {
  border: none;
}
.ui.attached.tabular.menu {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
}
/*--------------
     Sizes
---------------*/
/* Mini */
.ui.mini.menu {
  font-size: 0.78571429rem;
}
.ui.mini.vertical.menu {
  width: 9rem;
}
/* Tiny */
.ui.tiny.menu {
  font-size: 0.85714286rem;
}
.ui.tiny.vertical.menu {
  width: 11rem;
}
/* Small */
.ui.small.menu {
  font-size: 0.92857143rem;
}
.ui.small.vertical.menu {
  width: 13rem;
}
/* Medium */
.ui.menu {
  font-size: 1rem;
}
.ui.vertical.menu {
  width: 15rem;
}
/* Large */
.ui.large.menu {
  font-size: 1.07142857rem;
}
.ui.large.vertical.menu {
  width: 18rem;
}
/* Huge */
.ui.huge.menu {
  font-size: 1.21428571rem;
}
.ui.huge.vertical.menu {
  width: 22rem;
}
/* Big */
.ui.big.menu {
  font-size: 1.14285714rem;
}
.ui.big.vertical.menu {
  width: 20rem;
}
/* Massive */
.ui.massive.menu {
  font-size: 1.28571429rem;
}
.ui.massive.vertical.menu {
  width: 25rem;
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
.ui.inverted.menu {
  border-radius: 0px;
}
.ui.vertical.menu .item i.icon {
  float: left;
  margin-right: 0.5em;
}
/* Brand */
.ui.inverted.menu .brand.active.item,
.ui.inverted.brand.menu {
  background-color: #2185D0;
}
.ui.inverted.brand.menu .item:before {
  background-color: rgba(34, 36, 38, 0.1);
}
.ui.inverted.brand.menu .active.item {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
.ui.menu .brand.active.item,
.ui.brand.menu .active.item {
  border-color: #2185D0 !important;
  background-color: #2185D0;
  color: #FFFFFF !important;
  pointer-events: none;
}
/*!
 * # Semantic UI - Message
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Message
*******************************/
/*-------------------
       Elements
--------------------*/
/* Header */
/* Paragraph */
/* List */
/* Icon */
/* Close Icon */
/*-------------------
        Types
--------------------*/
/* Icon Message */
/* Attached */
/* Floating */
/* Colors */
/* Warning / Positive / Negative / Info */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Message
*******************************/
.ui.message {
  position: relative;
  min-height: 1em;
  margin: 1em 0em;
  background: #F8F8F9;
  padding: 1em 1.5em;
  line-height: 1.4285em;
  color: rgba(0, 0, 0, 0.87);
  transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
  border-radius: 0.28571429rem;
  box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.22) inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.message:first-child {
  margin-top: 0em;
}
.ui.message:last-child {
  margin-bottom: 0em;
}
/*--------------
     Content
---------------*/
/* Header */
.ui.message .header {
  display: block;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  margin: -0.14285714em 0em 0rem 0em;
}
/* Default font size */
.ui.message .header:not(.ui) {
  font-size: 1.14285714em;
}
/* Paragraph */
.ui.message p {
  opacity: 0.85;
  margin: 0.75em 0em;
}
.ui.message p:first-child {
  margin-top: 0em;
}
.ui.message p:last-child {
  margin-bottom: 0em;
}
.ui.message .header + p {
  margin-top: 0.25em;
}
/* List */
.ui.message .list:not(.ui) {
  text-align: left;
  padding: 0em;
  opacity: 0.85;
  list-style-position: inside;
  margin: 0.5em 0em 0em;
}
.ui.message .list:not(.ui):first-child {
  margin-top: 0em;
}
.ui.message .list:not(.ui):last-child {
  margin-bottom: 0em;
}
.ui.message .list:not(.ui) li {
  position: relative;
  list-style-type: none;
  margin: 0em 0em 0.3em 1em;
  padding: 0em;
}
.ui.message .list:not(.ui) li:before {
  position: absolute;
  content: '•';
  left: -1em;
  height: 100%;
  vertical-align: baseline;
}
.ui.message .list:not(.ui) li:last-child {
  margin-bottom: 0em;
}
/* Icon */
.ui.message > .icon {
  margin-right: 0.6em;
}
/* Close Icon */
.ui.message > .close.icon {
  cursor: pointer;
  position: absolute;
  margin: 0em;
  top: 0.78575em;
  right: 0.5em;
  opacity: 0.7;
  transition: opacity 0.1s ease;
}
.ui.message > .close.icon:hover {
  opacity: 1;
}
/* First / Last Element */
.ui.message > :first-child {
  margin-top: 0em;
}
.ui.message > :last-child {
  margin-bottom: 0em;
}
/*******************************
            Coupling
*******************************/
.ui.dropdown .menu > .message {
  margin: 0px -1px;
}
/*******************************
            States
*******************************/
/*--------------
    Visible
---------------*/
.ui.visible.visible.visible.visible.message {
  display: block;
}
.ui.icon.visible.visible.visible.visible.message {
  display: flex;
}
/*--------------
     Hidden
---------------*/
.ui.hidden.hidden.hidden.hidden.message {
  display: none;
}
/*******************************
            Variations
*******************************/
/*--------------
    Compact
---------------*/
.ui.compact.message {
  display: inline-block;
}
.ui.compact.icon.message {
  display: inline-flex;
}
/*--------------
    Attached
---------------*/
.ui.attached.message {
  margin-bottom: -1px;
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
  box-shadow: 0em 0em 0em 1px rgba(34, 36, 38, 0.15) inset;
  margin-left: -1px;
  margin-right: -1px;
}
.ui.attached + .ui.attached.message:not(.top):not(.bottom) {
  margin-top: -1px;
  border-radius: 0em;
}
.ui.bottom.attached.message {
  margin-top: -1px;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
  box-shadow: 0em 0em 0em 1px rgba(34, 36, 38, 0.15) inset, 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
}
.ui.bottom.attached.message:not(:last-child) {
  margin-bottom: 1em;
}
.ui.attached.icon.message {
  width: auto;
}
/*--------------
      Icon
---------------*/
.ui.icon.message {
  display: flex;
  width: 100%;
  align-items: center;
}
.ui.icon.message > .icon:not(.close) {
  display: block;
  flex: 0 0 auto;
  width: auto;
  line-height: 1;
  vertical-align: middle;
  font-size: 3em;
  opacity: 0.8;
}
.ui.icon.message > .content {
  display: block;
  flex: 1 1 auto;
  vertical-align: middle;
}
.ui.icon.message .icon:not(.close) + .content {
  padding-left: 0rem;
}
.ui.icon.message .circular.icon {
  width: 1em;
}
/*--------------
    Floating
---------------*/
.ui.floating.message {
  box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.22) inset, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
/*--------------
     Colors
---------------*/
.ui.black.message {
  background-color: #1B1C1D;
  color: rgba(255, 255, 255, 0.9);
}
/*--------------
     Types
---------------*/
/* Positive */
.ui.positive.message {
  background-color: #FCFFF5;
  color: #2C662D;
}
.ui.positive.message,
.ui.attached.positive.message {
  box-shadow: 0px 0px 0px 1px #A3C293 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.positive.message .header {
  color: #1A531B;
}
/* Negative */
.ui.negative.message {
  background-color: #FFF6F6;
  color: #9F3A38;
}
.ui.negative.message,
.ui.attached.negative.message {
  box-shadow: 0px 0px 0px 1px #E0B4B4 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.negative.message .header {
  color: #912D2B;
}
/* Info */
.ui.info.message {
  background-color: #F8FFFF;
  color: #276F86;
}
.ui.info.message,
.ui.attached.info.message {
  box-shadow: 0px 0px 0px 1px #A9D5DE inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.info.message .header {
  color: #0E566C;
}
/* Warning */
.ui.warning.message {
  background-color: #FFFAF3;
  color: #573A08;
}
.ui.warning.message,
.ui.attached.warning.message {
  box-shadow: 0px 0px 0px 1px #C9BA9B inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.warning.message .header {
  color: #794B02;
}
/* Error */
.ui.error.message {
  background-color: #FFF6F6;
  color: #9F3A38;
}
.ui.error.message,
.ui.attached.error.message {
  box-shadow: 0px 0px 0px 1px #E0B4B4 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.error.message .header {
  color: #912D2B;
}
/* Success */
.ui.success.message {
  background-color: #FCFFF5;
  color: #2C662D;
}
.ui.success.message,
.ui.attached.success.message {
  box-shadow: 0px 0px 0px 1px #A3C293 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.success.message .header {
  color: #1A531B;
}
/* Colors */
.ui.inverted.message,
.ui.black.message {
  background-color: #1B1C1D;
  color: rgba(255, 255, 255, 0.9);
}
.ui.red.message {
  background-color: #FFE8E6;
  color: #DB2828;
  box-shadow: 0px 0px 0px 1px #DB2828 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.red.message .header {
  color: #c82121;
}
.ui.orange.message {
  background-color: #FFEDDE;
  color: #F2711C;
  box-shadow: 0px 0px 0px 1px #F2711C inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.orange.message .header {
  color: #e7640d;
}
.ui.yellow.message {
  background-color: #FFF8DB;
  color: #B58105;
  box-shadow: 0px 0px 0px 1px #B58105 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.yellow.message .header {
  color: #9c6f04;
}
.ui.olive.message {
  background-color: #FBFDEF;
  color: #8ABC1E;
  box-shadow: 0px 0px 0px 1px #8ABC1E inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.olive.message .header {
  color: #7aa61a;
}
.ui.green.message {
  background-color: #E5F9E7;
  color: #1EBC30;
  box-shadow: 0px 0px 0px 1px #1EBC30 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.green.message .header {
  color: #1aa62a;
}
.ui.teal.message {
  background-color: #E1F7F7;
  color: #10A3A3;
  box-shadow: 0px 0px 0px 1px #10A3A3 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.teal.message .header {
  color: #0e8c8c;
}
.ui.blue.message {
  background-color: #DFF0FF;
  color: #2185D0;
  box-shadow: 0px 0px 0px 1px #2185D0 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.blue.message .header {
  color: #1e77ba;
}
.ui.violet.message {
  background-color: #EAE7FF;
  color: #6435C9;
  box-shadow: 0px 0px 0px 1px #6435C9 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.violet.message .header {
  color: #5a30b5;
}
.ui.purple.message {
  background-color: #F6E7FF;
  color: #A333C8;
  box-shadow: 0px 0px 0px 1px #A333C8 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.purple.message .header {
  color: #922eb4;
}
.ui.pink.message {
  background-color: #FFE3FB;
  color: #E03997;
  box-shadow: 0px 0px 0px 1px #E03997 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.pink.message .header {
  color: #dd238b;
}
.ui.brown.message {
  background-color: #F1E2D3;
  color: #A5673F;
  box-shadow: 0px 0px 0px 1px #A5673F inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
}
.ui.brown.message .header {
  color: #935b38;
}
/*--------------
     Sizes
---------------*/
.ui.mini.message {
  font-size: 0.78571429em;
}
.ui.tiny.message {
  font-size: 0.85714286em;
}
.ui.small.message {
  font-size: 0.92857143em;
}
.ui.message {
  font-size: 1em;
}
.ui.large.message {
  font-size: 1.14285714em;
}
.ui.big.message {
  font-size: 1.28571429em;
}
.ui.huge.message {
  font-size: 1.42857143em;
}
.ui.massive.message {
  font-size: 1.71428571em;
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
.ui.flashed.message {
  margin-top: 0;
  border-radius: 0;
  padding: 2px 0;
}
.flashed.close.icon {
  cursor: pointer;
  position: absolute;
  margin: 0;
  top: 1em;
  right: 0.5em;
  opacity: 0.7;
  transition: opacity 0.1s ease;
}
.ui.success.flashed.message > .ui.grid.container {
  padding-right: 0.5em;
}
.ui.message.code {
  overflow: auto !important;
}
.ui.flashed.message.top-attached,
.ui.form .flashed.message.top-attached {
  margin-top: -20px;
}
.ui.flashed.message.manage,
.ui.form .flashed.message.manage {
  padding: 0 0 15px 0;
  margin-bottom: 15px;
}
/*!
 * # Semantic UI - Table
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Table
*******************************/
/*-------------------
       Element
--------------------*/
/*--------------
     Parts
---------------*/
/* Table Row */
/* Table Cell */
/* Table Header */
/* Table Footer */
/* Responsive Size */
/*-------------------
       Types
--------------------*/
/* Definition */
/*--------------
    Couplings
---------------*/
/*--------------
     States
---------------*/
/* Positive */
/* Negative */
/* Error */
/* Warning */
/* Active */
/*--------------
     Types
---------------*/
/* Attached */
/* Striped */
/* Selectable */
/* Sortable */
/* Colors */
/* Inverted */
/* Basic */
/* Padded */
/* Compact */
/* Sizes */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Table
*******************************/
/* Prototype */
.ui.table {
  width: 100%;
  background: #FFFFFF;
  margin: 1em 0em;
  border: 1px solid rgba(34, 36, 38, 0.15);
  box-shadow: none;
  border-radius: 0.28571429rem;
  text-align: left;
  color: rgba(0, 0, 0, 0.87);
  border-collapse: separate;
  border-spacing: 0px;
}
.ui.table:first-child {
  margin-top: 0em;
}
.ui.table:last-child {
  margin-bottom: 0em;
}
/*******************************
             Parts
*******************************/
/* Table Content */
.ui.table th,
.ui.table td {
  transition: background 0.1s ease, color 0.1s ease;
}
/* Headers */
.ui.table thead {
  box-shadow: none;
}
.ui.table thead th {
  cursor: auto;
  background: #F9FAFB;
  text-align: inherit;
  color: rgba(0, 0, 0, 0.87);
  padding: 0.92857143em 0.78571429em;
  vertical-align: inherit;
  font-style: none;
  font-weight: bold;
  text-transform: none;
  border-bottom: 1px solid rgba(34, 36, 38, 0.1);
  border-left: none;
}
.ui.table thead tr > th:first-child {
  border-left: none;
}
.ui.table thead tr:first-child > th:first-child {
  border-radius: 0.28571429rem 0em 0em 0em;
}
.ui.table thead tr:first-child > th:last-child {
  border-radius: 0em 0.28571429rem 0em 0em;
}
.ui.table thead tr:first-child > th:only-child {
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
/* Footer */
.ui.table tfoot {
  box-shadow: none;
}
.ui.table tfoot th {
  cursor: auto;
  border-top: 1px solid rgba(34, 36, 38, 0.15);
  background: #F9FAFB;
  text-align: inherit;
  color: rgba(0, 0, 0, 0.87);
  padding: 0.78571429em 0.78571429em;
  vertical-align: middle;
  font-style: normal;
  font-weight: normal;
  text-transform: none;
}
.ui.table tfoot tr > th:first-child {
  border-left: none;
}
.ui.table tfoot tr:first-child > th:first-child {
  border-radius: 0em 0em 0em 0.28571429rem;
}
.ui.table tfoot tr:first-child > th:last-child {
  border-radius: 0em 0em 0.28571429rem 0em;
}
.ui.table tfoot tr:first-child > th:only-child {
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
/* Table Row */
.ui.table tr td {
  border-top: 1px solid rgba(34, 36, 38, 0.1);
}
.ui.table tr:first-child td {
  border-top: none;
}
/* Repeated tbody */
.ui.table tbody + tbody tr:first-child td {
  border-top: 1px solid rgba(34, 36, 38, 0.1);
}
/* Table Cells */
.ui.table td {
  padding: 0.78571429em 0.78571429em;
  text-align: inherit;
}
/* Icons */
.ui.table > .icon {
  vertical-align: baseline;
}
.ui.table > .icon:only-child {
  margin: 0em;
}
/* Table Segment */
.ui.table.segment {
  padding: 0em;
}
.ui.table.segment:after {
  display: none;
}
.ui.table.segment.stacked:after {
  display: block;
}
/* Responsive */
@media only screen and (max-width: 767px) {
  .ui.table:not(.unstackable) {
    width: 100%;
  }
  .ui.table:not(.unstackable) tbody,
  .ui.table:not(.unstackable) tr,
  .ui.table:not(.unstackable) tr > th,
  .ui.table:not(.unstackable) tr > td {
    width: auto !important;
    display: block !important;
  }
  .ui.table:not(.unstackable) {
    padding: 0em;
  }
  .ui.table:not(.unstackable) thead {
    display: block;
  }
  .ui.table:not(.unstackable) tfoot {
    display: block;
  }
  .ui.table:not(.unstackable) tr {
    padding-top: 1em;
    padding-bottom: 1em;
    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
  }
  .ui.table:not(.unstackable) tr > th,
  .ui.table:not(.unstackable) tr > td {
    background: none;
    border: none !important;
    padding: 0.25em 0.75em !important;
    box-shadow: none !important;
  }
  .ui.table:not(.unstackable) th:first-child,
  .ui.table:not(.unstackable) td:first-child {
    font-weight: bold;
  }
  /* Definition Table */
  .ui.definition.table:not(.unstackable) thead th:first-child {
    box-shadow: none !important;
  }
}
/*******************************
            Coupling
*******************************/
/* UI Image */
.ui.table th .image,
.ui.table th .image img,
.ui.table td .image,
.ui.table td .image img {
  max-width: none;
}
/*******************************
             Types
*******************************/
/*--------------
    Complex
---------------*/
.ui.structured.table {
  border-collapse: collapse;
}
.ui.structured.table thead th {
  border-left: none;
  border-right: none;
}
.ui.structured.sortable.table thead th {
  border-left: 1px solid rgba(34, 36, 38, 0.15);
  border-right: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.structured.basic.table th {
  border-left: none;
  border-right: none;
}
.ui.structured.celled.table tr th,
.ui.structured.celled.table tr td {
  border-left: 1px solid rgba(34, 36, 38, 0.1);
  border-right: 1px solid rgba(34, 36, 38, 0.1);
}
/*--------------
   Definition
---------------*/
.ui.definition.table thead:not(.full-width) th:first-child {
  pointer-events: none;
  background: transparent;
  font-weight: normal;
  color: rgba(0, 0, 0, 0.4);
  box-shadow: -1px -1px 0px 1px #FFFFFF;
}
.ui.definition.table tfoot:not(.full-width) th:first-child {
  pointer-events: none;
  background: transparent;
  font-weight: rgba(0, 0, 0, 0.4);
  color: normal;
  box-shadow: 1px 1px 0px 1px #FFFFFF;
}
/* Remove Border */
.ui.celled.definition.table thead:not(.full-width) th:first-child {
  box-shadow: 0px -1px 0px 1px #FFFFFF;
}
.ui.celled.definition.table tfoot:not(.full-width) th:first-child {
  box-shadow: 0px 1px 0px 1px #FFFFFF;
}
/* Highlight Defining Column */
.ui.definition.table tr td:first-child:not(.ignored),
.ui.definition.table tr td.definition {
  background: rgba(0, 0, 0, 0.03);
  font-weight: bold;
  color: rgba(0, 0, 0, 0.95);
  text-transform: '';
  box-shadow: '';
  text-align: '';
  font-size: 1em;
  padding-left: '';
  padding-right: '';
}
/* Fix 2nd Column */
.ui.definition.table thead:not(.full-width) th:nth-child(2) {
  border-left: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.definition.table tfoot:not(.full-width) th:nth-child(2) {
  border-left: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.definition.table td:nth-child(2) {
  border-left: 1px solid rgba(34, 36, 38, 0.15);
}
/*******************************
             States
*******************************/
/*--------------
    Positive
---------------*/
.ui.table tr.positive,
.ui.table td.positive {
  box-shadow: 0px 0px 0px #A3C293 inset;
}
.ui.table tr.positive,
.ui.table td.positive {
  background: #FCFFF5 !important;
  color: #2C662D !important;
}
/*--------------
     Negative
---------------*/
.ui.table tr.negative,
.ui.table td.negative {
  box-shadow: 0px 0px 0px #E0B4B4 inset;
}
.ui.table tr.negative,
.ui.table td.negative {
  background: #FFF6F6 !important;
  color: #9F3A38 !important;
}
/*--------------
      Error
---------------*/
.ui.table tr.error,
.ui.table td.error {
  box-shadow: 0px 0px 0px #E0B4B4 inset;
}
.ui.table tr.error,
.ui.table td.error {
  background: #FFF6F6 !important;
  color: #9F3A38 !important;
}
/*--------------
     Warning
---------------*/
.ui.table tr.warning,
.ui.table td.warning {
  box-shadow: 0px 0px 0px #C9BA9B inset;
}
.ui.table tr.warning,
.ui.table td.warning {
  background: #FFFAF3 !important;
  color: #573A08 !important;
}
/*--------------
     Active
---------------*/
.ui.table tr.active,
.ui.table td.active {
  box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.87) inset;
}
.ui.table tr.active,
.ui.table td.active {
  background: #E0E0E0 !important;
  color: rgba(0, 0, 0, 0.87) !important;
}
/*--------------
     Disabled
---------------*/
.ui.table tr.disabled td,
.ui.table tr td.disabled,
.ui.table tr.disabled:hover,
.ui.table tr:hover td.disabled {
  pointer-events: none;
  color: rgba(40, 40, 40, 0.3);
}
/*******************************
          Variations
*******************************/
/*--------------
    Stackable
---------------*/
@media only screen and (max-width: 991px) {
  .ui[class*="tablet stackable"].table,
  .ui[class*="tablet stackable"].table tbody,
  .ui[class*="tablet stackable"].table tr,
  .ui[class*="tablet stackable"].table tr > th,
  .ui[class*="tablet stackable"].table tr > td {
    width: 100% !important;
    display: block !important;
  }
  .ui[class*="tablet stackable"].table {
    padding: 0em;
  }
  .ui[class*="tablet stackable"].table thead {
    display: block;
  }
  .ui[class*="tablet stackable"].table tfoot {
    display: block;
  }
  .ui[class*="tablet stackable"].table tr {
    padding-top: 1em;
    padding-bottom: 1em;
    box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
  }
  .ui[class*="tablet stackable"].table tr > th,
  .ui[class*="tablet stackable"].table tr > td {
    background: none;
    border: none !important;
    padding: 0.25em 0.75em;
    box-shadow: none !important;
  }
  /* Definition Table */
  .ui.definition[class*="tablet stackable"].table thead th:first-child {
    box-shadow: none !important;
  }
}
/*--------------
 Text Alignment
---------------*/
.ui.table[class*="left aligned"],
.ui.table [class*="left aligned"] {
  text-align: left;
}
.ui.table[class*="center aligned"],
.ui.table [class*="center aligned"] {
  text-align: center;
}
.ui.table[class*="right aligned"],
.ui.table [class*="right aligned"] {
  text-align: right;
}
/*------------------
 Vertical Alignment
------------------*/
.ui.table[class*="top aligned"],
.ui.table [class*="top aligned"] {
  vertical-align: top;
}
.ui.table[class*="middle aligned"],
.ui.table [class*="middle aligned"] {
  vertical-align: middle;
}
.ui.table[class*="bottom aligned"],
.ui.table [class*="bottom aligned"] {
  vertical-align: bottom;
}
/*--------------
    Collapsing
---------------*/
.ui.table th.collapsing,
.ui.table td.collapsing {
  width: 1px;
  white-space: nowrap;
}
/*--------------
     Fixed
---------------*/
.ui.fixed.table {
  table-layout: fixed;
}
.ui.fixed.table th,
.ui.fixed.table td {
  overflow: hidden;
  text-overflow: ellipsis;
}
/*--------------
   Selectable
---------------*/
.ui.selectable.table tbody tr:hover,
.ui.table tbody tr td.selectable:hover {
  background: rgba(0, 0, 0, 0.05) !important;
  color: rgba(0, 0, 0, 0.95) !important;
}
.ui.selectable.inverted.table tbody tr:hover,
.ui.inverted.table tbody tr td.selectable:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
}
/* Selectable Cell Link */
.ui.table tbody tr td.selectable {
  padding: 0em;
}
.ui.table tbody tr td.selectable > a:not(.ui) {
  display: block;
  color: inherit;
  padding: 0.78571429em 0.78571429em;
}
/* Other States */
.ui.selectable.table tr.error:hover,
.ui.table tr td.selectable.error:hover,
.ui.selectable.table tr:hover td.error {
  background: #ffe7e7 !important;
  color: #943634 !important;
}
.ui.selectable.table tr.warning:hover,
.ui.table tr td.selectable.warning:hover,
.ui.selectable.table tr:hover td.warning {
  background: #fff4e4 !important;
  color: #493107 !important;
}
.ui.selectable.table tr.active:hover,
.ui.table tr td.selectable.active:hover,
.ui.selectable.table tr:hover td.active {
  background: #E0E0E0 !important;
  color: rgba(0, 0, 0, 0.87) !important;
}
.ui.selectable.table tr.positive:hover,
.ui.table tr td.selectable.positive:hover,
.ui.selectable.table tr:hover td.positive {
  background: #f7ffe6 !important;
  color: #275b28 !important;
}
.ui.selectable.table tr.negative:hover,
.ui.table tr td.selectable.negative:hover,
.ui.selectable.table tr:hover td.negative {
  background: #ffe7e7 !important;
  color: #943634 !important;
}
/*-------------------
      Attached
--------------------*/
/* Middle */
.ui.attached.table {
  top: 0px;
  bottom: 0px;
  border-radius: 0px;
  margin: 0em -1px;
  width: calc(100% - (-1px * 2));
  max-width: calc(100% - (-1px * 2));
  box-shadow: none;
  border: 1px solid #D4D4D5;
}
.ui.attached + .ui.attached.table:not(.top) {
  border-top: none;
}
/* Top */
.ui[class*="top attached"].table {
  bottom: 0px;
  margin-bottom: 0em;
  top: 0px;
  margin-top: 1em;
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.table[class*="top attached"]:first-child {
  margin-top: 0em;
}
/* Bottom */
.ui[class*="bottom attached"].table {
  bottom: 0px;
  margin-top: 0em;
  top: 0px;
  margin-bottom: 1em;
  box-shadow: none, none;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
.ui[class*="bottom attached"].table:last-child {
  margin-bottom: 0em;
}
/*--------------
     Striped
---------------*/
/* Table Striping */
.ui.striped.table > tr:nth-child(2n),
.ui.striped.table tbody tr:nth-child(2n) {
  background-color: rgba(0, 0, 50, 0.02);
}
/* Stripes */
.ui.inverted.striped.table > tr:nth-child(2n),
.ui.inverted.striped.table tbody tr:nth-child(2n) {
  background-color: rgba(255, 255, 255, 0.05);
}
/* Allow striped active hover */
.ui.striped.selectable.selectable.selectable.table tbody tr.active:hover {
  background: #EFEFEF !important;
  color: rgba(0, 0, 0, 0.95) !important;
}
/*--------------
   Single Line
---------------*/
.ui.table[class*="single line"],
.ui.table [class*="single line"] {
  white-space: nowrap;
}
.ui.table[class*="single line"],
.ui.table [class*="single line"] {
  white-space: nowrap;
}
/*-------------------
       Colors
--------------------*/
/* Red */
.ui.red.table {
  border-top: 0.2em solid #DB2828;
}
.ui.inverted.red.table {
  background-color: #DB2828 !important;
  color: #FFFFFF !important;
}
/* Orange */
.ui.orange.table {
  border-top: 0.2em solid #F2711C;
}
.ui.inverted.orange.table {
  background-color: #F2711C !important;
  color: #FFFFFF !important;
}
/* Yellow */
.ui.yellow.table {
  border-top: 0.2em solid #FBBD08;
}
.ui.inverted.yellow.table {
  background-color: #FBBD08 !important;
  color: #FFFFFF !important;
}
/* Olive */
.ui.olive.table {
  border-top: 0.2em solid #B5CC18;
}
.ui.inverted.olive.table {
  background-color: #B5CC18 !important;
  color: #FFFFFF !important;
}
/* Green */
.ui.green.table {
  border-top: 0.2em solid #21BA45;
}
.ui.inverted.green.table {
  background-color: #21BA45 !important;
  color: #FFFFFF !important;
}
/* Teal */
.ui.teal.table {
  border-top: 0.2em solid #00B5AD;
}
.ui.inverted.teal.table {
  background-color: #00B5AD !important;
  color: #FFFFFF !important;
}
/* Blue */
.ui.blue.table {
  border-top: 0.2em solid #2185D0;
}
.ui.inverted.blue.table {
  background-color: #2185D0 !important;
  color: #FFFFFF !important;
}
/* Violet */
.ui.violet.table {
  border-top: 0.2em solid #6435C9;
}
.ui.inverted.violet.table {
  background-color: #6435C9 !important;
  color: #FFFFFF !important;
}
/* Purple */
.ui.purple.table {
  border-top: 0.2em solid #A333C8;
}
.ui.inverted.purple.table {
  background-color: #A333C8 !important;
  color: #FFFFFF !important;
}
/* Pink */
.ui.pink.table {
  border-top: 0.2em solid #E03997;
}
.ui.inverted.pink.table {
  background-color: #E03997 !important;
  color: #FFFFFF !important;
}
/* Brown */
.ui.brown.table {
  border-top: 0.2em solid #A5673F;
}
.ui.inverted.brown.table {
  background-color: #A5673F !important;
  color: #FFFFFF !important;
}
/* Grey */
.ui.grey.table {
  border-top: 0.2em solid #767676;
}
.ui.inverted.grey.table {
  background-color: #767676 !important;
  color: #FFFFFF !important;
}
/* Black */
.ui.black.table {
  border-top: 0.2em solid #1B1C1D;
}
.ui.inverted.black.table {
  background-color: #1B1C1D !important;
  color: #FFFFFF !important;
}
/*--------------
  Column Count
---------------*/
/* Grid Based */
.ui.one.column.table td {
  width: 100%;
}
.ui.two.column.table td {
  width: 50%;
}
.ui.three.column.table td {
  width: 33.33333333%;
}
.ui.four.column.table td {
  width: 25%;
}
.ui.five.column.table td {
  width: 20%;
}
.ui.six.column.table td {
  width: 16.66666667%;
}
.ui.seven.column.table td {
  width: 14.28571429%;
}
.ui.eight.column.table td {
  width: 12.5%;
}
.ui.nine.column.table td {
  width: 11.11111111%;
}
.ui.ten.column.table td {
  width: 10%;
}
.ui.eleven.column.table td {
  width: 9.09090909%;
}
.ui.twelve.column.table td {
  width: 8.33333333%;
}
.ui.thirteen.column.table td {
  width: 7.69230769%;
}
.ui.fourteen.column.table td {
  width: 7.14285714%;
}
.ui.fifteen.column.table td {
  width: 6.66666667%;
}
.ui.sixteen.column.table td {
  width: 6.25%;
}
/* Column Width */
.ui.table th.one.wide,
.ui.table td.one.wide {
  width: 6.25%;
}
.ui.table th.two.wide,
.ui.table td.two.wide {
  width: 12.5%;
}
.ui.table th.three.wide,
.ui.table td.three.wide {
  width: 18.75%;
}
.ui.table th.four.wide,
.ui.table td.four.wide {
  width: 25%;
}
.ui.table th.five.wide,
.ui.table td.five.wide {
  width: 31.25%;
}
.ui.table th.six.wide,
.ui.table td.six.wide {
  width: 37.5%;
}
.ui.table th.seven.wide,
.ui.table td.seven.wide {
  width: 43.75%;
}
.ui.table th.eight.wide,
.ui.table td.eight.wide {
  width: 50%;
}
.ui.table th.nine.wide,
.ui.table td.nine.wide {
  width: 56.25%;
}
.ui.table th.ten.wide,
.ui.table td.ten.wide {
  width: 62.5%;
}
.ui.table th.eleven.wide,
.ui.table td.eleven.wide {
  width: 68.75%;
}
.ui.table th.twelve.wide,
.ui.table td.twelve.wide {
  width: 75%;
}
.ui.table th.thirteen.wide,
.ui.table td.thirteen.wide {
  width: 81.25%;
}
.ui.table th.fourteen.wide,
.ui.table td.fourteen.wide {
  width: 87.5%;
}
.ui.table th.fifteen.wide,
.ui.table td.fifteen.wide {
  width: 93.75%;
}
.ui.table th.sixteen.wide,
.ui.table td.sixteen.wide {
  width: 100%;
}
/*--------------
    Sortable
---------------*/
.ui.sortable.table thead th {
  cursor: pointer;
  white-space: nowrap;
  border-left: 1px solid rgba(34, 36, 38, 0.15);
  color: rgba(0, 0, 0, 0.87);
}
.ui.sortable.table thead th:first-child {
  border-left: none;
}
.ui.sortable.table thead th.sorted,
.ui.sortable.table thead th.sorted:hover {
  user-select: none;
}
.ui.sortable.table thead th:after {
  display: none;
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  content: '';
  height: 1em;
  width: auto;
  opacity: 0.8;
  margin: 0em 0em 0em 0.5em;
  font-family: 'Icons';
}
.ui.sortable.table thead th.ascending:after {
  content: '\f0d8';
}
.ui.sortable.table thead th.descending:after {
  content: '\f0d7';
}
/* Hover */
.ui.sortable.table th.disabled:hover {
  cursor: auto;
  color: rgba(40, 40, 40, 0.3);
}
.ui.sortable.table thead th:hover {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.8);
}
/* Sorted */
.ui.sortable.table thead th.sorted {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
}
.ui.sortable.table thead th.sorted:after {
  display: inline-block;
}
/* Sorted Hover */
.ui.sortable.table thead th.sorted:hover {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
}
/* Inverted */
.ui.inverted.sortable.table thead th.sorted {
  background: rgba(255, 255, 255, 0.15) linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  color: #ffffff;
}
.ui.inverted.sortable.table thead th:hover {
  background: rgba(255, 255, 255, 0.08) linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  color: #ffffff;
}
.ui.inverted.sortable.table thead th {
  border-left-color: transparent;
  border-right-color: transparent;
}
/*--------------
    Inverted
---------------*/
/* Text Color */
.ui.inverted.table {
  background: #333333;
  color: rgba(255, 255, 255, 0.9);
  border: none;
}
.ui.inverted.table th {
  background-color: rgba(0, 0, 0, 0.15);
  border-color: rgba(255, 255, 255, 0.1) !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.ui.inverted.table tr td {
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.ui.inverted.table tr.disabled td,
.ui.inverted.table tr td.disabled,
.ui.inverted.table tr.disabled:hover td,
.ui.inverted.table tr:hover td.disabled {
  pointer-events: none;
  color: rgba(225, 225, 225, 0.3);
}
/* Definition */
.ui.inverted.definition.table tfoot:not(.full-width) th:first-child,
.ui.inverted.definition.table thead:not(.full-width) th:first-child {
  background: #FFFFFF;
}
.ui.inverted.definition.table tr td:first-child {
  background: rgba(255, 255, 255, 0.02);
  color: #ffffff;
}
/*--------------
   Collapsing
---------------*/
.ui.collapsing.table {
  width: auto;
}
/*--------------
      Basic
---------------*/
.ui.basic.table {
  background: transparent;
  border: 1px solid rgba(34, 36, 38, 0.15);
  box-shadow: none;
}
.ui.basic.table thead,
.ui.basic.table tfoot {
  box-shadow: none;
}
.ui.basic.table th {
  background: transparent;
  border-left: none;
}
.ui.basic.table tbody tr {
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.ui.basic.table td {
  background: transparent;
}
.ui.basic.striped.table tbody tr:nth-child(2n) {
  background-color: rgba(0, 0, 0, 0.05) !important;
}
/* Very Basic */
.ui[class*="very basic"].table {
  border: none;
}
.ui[class*="very basic"].table:not(.sortable):not(.striped) th,
.ui[class*="very basic"].table:not(.sortable):not(.striped) td {
  padding: '';
}
.ui[class*="very basic"].table:not(.sortable):not(.striped) th:first-child,
.ui[class*="very basic"].table:not(.sortable):not(.striped) td:first-child {
  padding-left: 0em;
}
.ui[class*="very basic"].table:not(.sortable):not(.striped) th:last-child,
.ui[class*="very basic"].table:not(.sortable):not(.striped) td:last-child {
  padding-right: 0em;
}
.ui[class*="very basic"].table:not(.sortable):not(.striped) thead tr:first-child th {
  padding-top: 0em;
}
/*--------------
     Celled
---------------*/
.ui.celled.table tr th,
.ui.celled.table tr td {
  border-left: 1px solid rgba(34, 36, 38, 0.1);
}
.ui.celled.table tr th:first-child,
.ui.celled.table tr td:first-child {
  border-left: none;
}
/*--------------
     Padded
---------------*/
.ui.padded.table th {
  padding-left: 1em;
  padding-right: 1em;
}
.ui.padded.table th,
.ui.padded.table td {
  padding: 1em 1em;
}
/* Very */
.ui[class*="very padded"].table th {
  padding-left: 1.5em;
  padding-right: 1.5em;
}
.ui[class*="very padded"].table td {
  padding: 1.5em 1.5em;
}
/*--------------
     Compact
---------------*/
.ui.compact.table th {
  padding-left: 0.7em;
  padding-right: 0.7em;
}
.ui.compact.table td {
  padding: 0.5em 0.7em;
}
/* Very */
.ui[class*="very compact"].table th {
  padding-left: 0.6em;
  padding-right: 0.6em;
}
.ui[class*="very compact"].table td {
  padding: 0.4em 0.6em;
}
/*--------------
      Sizes
---------------*/
/* Small */
.ui.small.table {
  font-size: 0.9em;
}
/* Standard */
.ui.table {
  font-size: 1em;
}
/* Large */
.ui.large.table {
  font-size: 1.1em;
}
/* Views */
/*!
 * # Semantic UI - Ad
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Copyright 2013 Contributors
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
          Advertisement
*******************************/
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
         Advertisement
*******************************/
.ui.ad {
  display: block;
  overflow: hidden;
  margin: 1em 0em;
}
.ui.ad:first-child {
  margin: 0em;
}
.ui.ad:last-child {
  margin: 0em;
}
.ui.ad iframe {
  margin: 0em;
  padding: 0em;
  border: none;
  overflow: hidden;
}
/*--------------
     Common
---------------*/
/* Leaderboard */
.ui.leaderboard.ad {
  width: 728px;
  height: 90px;
}
/* Medium Rectangle */
.ui[class*="medium rectangle"].ad {
  width: 300px;
  height: 250px;
}
/* Large Rectangle */
.ui[class*="large rectangle"].ad {
  width: 336px;
  height: 280px;
}
/* Half Page */
.ui[class*="half page"].ad {
  width: 300px;
  height: 600px;
}
/*--------------
     Square
---------------*/
/* Square */
.ui.square.ad {
  width: 250px;
  height: 250px;
}
/* Small Square */
.ui[class*="small square"].ad {
  width: 200px;
  height: 200px;
}
/*--------------
    Rectangle
---------------*/
/* Small Rectangle */
.ui[class*="small rectangle"].ad {
  width: 180px;
  height: 150px;
}
/* Vertical Rectangle */
.ui[class*="vertical rectangle"].ad {
  width: 240px;
  height: 400px;
}
/*--------------
     Button
---------------*/
.ui.button.ad {
  width: 120px;
  height: 90px;
}
.ui[class*="square button"].ad {
  width: 125px;
  height: 125px;
}
.ui[class*="small button"].ad {
  width: 120px;
  height: 60px;
}
/*--------------
   Skyscrapers
---------------*/
/* Skyscraper */
.ui.skyscraper.ad {
  width: 120px;
  height: 600px;
}
/* Wide Skyscraper */
.ui[class*="wide skyscraper"].ad {
  width: 160px;
}
/*--------------
     Banners
---------------*/
/* Banner */
.ui.banner.ad {
  width: 468px;
  height: 60px;
}
/* Vertical Banner */
.ui[class*="vertical banner"].ad {
  width: 120px;
  height: 240px;
}
/* Top Banner */
.ui[class*="top banner"].ad {
  width: 930px;
  height: 180px;
}
/* Half Banner */
.ui[class*="half banner"].ad {
  width: 234px;
  height: 60px;
}
/*--------------
    Boards
---------------*/
/* Leaderboard */
.ui[class*="large leaderboard"].ad {
  width: 970px;
  height: 90px;
}
/* Billboard */
.ui.billboard.ad {
  width: 970px;
  height: 250px;
}
/*--------------
    Panorama
---------------*/
/* Panorama */
.ui.panorama.ad {
  width: 980px;
  height: 120px;
}
/*--------------
     Netboard
---------------*/
/* Netboard */
.ui.netboard.ad {
  width: 580px;
  height: 400px;
}
/*--------------
     Mobile
---------------*/
/* Large Mobile Banner */
.ui[class*="large mobile banner"].ad {
  width: 320px;
  height: 100px;
}
/* Mobile Leaderboard */
.ui[class*="mobile leaderboard"].ad {
  width: 320px;
  height: 50px;
}
/*******************************
             Types
*******************************/
/* Mobile Sizes */
.ui.mobile.ad {
  display: none;
}
@media only screen and (max-width: 767px) {
  .ui.mobile.ad {
    display: block;
  }
}
/*******************************
           Variations
*******************************/
.ui.centered.ad {
  margin-left: auto;
  margin-right: auto;
}
.ui.test.ad {
  position: relative;
  background: #545454;
}
.ui.test.ad:after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  text-align: center;
  transform: translateX(-50%) translateY(-50%);
  content: 'Ad';
  color: #FFFFFF;
  font-size: 1em;
  font-weight: bold;
}
.ui.mobile.test.ad:after {
  font-size: 0.85714286em;
}
.ui.test.ad[data-text]:after {
  content: attr(data-text);
}
/*!
 * # Semantic UI - Item
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Card
*******************************/
/*-------------------
         View
--------------------*/
/* Shadow */
/* Card */
/* Card Group */
/* Consecutive Cards */
/*-------------------
       Content
--------------------*/
/* Image */
/* Content */
/* Header */
/* Metadata */
/* Icons */
/* Links */
/* Description */
/* Content Image */
/* Avatar Image */
/* Paragraph */
/* Dimmer */
/* Additional Content */
/* Extra Links */
/* Buttons */
/*-------------------
      Variations
--------------------*/
/* Link */
/* Raised */
/* Card Count */
/* Stackable */
/* Sizes */
/* Colored */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Standard
*******************************/
/*--------------
      Card
---------------*/
.ui.cards > .card,
.ui.card {
  max-width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 290px;
  min-height: 0px;
  background: #FFFFFF;
  padding: 0em;
  border: none;
  border-radius: 0.28571429rem;
  box-shadow: 0px 1px 3px 0px #D4D4D5, 0px 0px 0px 1px #D4D4D5;
  transition: box-shadow 0.1s ease, transform 0.1s ease;
  z-index: '';
}
.ui.card {
  margin: 1em 0em;
}
.ui.cards > .card a,
.ui.card a {
  cursor: pointer;
}
.ui.card:first-child {
  margin-top: 0em;
}
.ui.card:last-child {
  margin-bottom: 0em;
}
/*--------------
      Cards
---------------*/
.ui.cards {
  display: flex;
  margin: -0.875em -0.5em;
  flex-wrap: wrap;
}
.ui.cards > .card {
  display: flex;
  margin: 0.875em 0.5em;
  float: none;
}
/* Clearing */
.ui.cards:after,
.ui.card:after {
  display: block;
  content: ' ';
  height: 0px;
  clear: both;
  overflow: hidden;
  visibility: hidden;
}
/* Consecutive Card Groups Preserve Row Spacing */
.ui.cards ~ .ui.cards {
  margin-top: 0.875em;
}
/*--------------
  Rounded Edges
---------------*/
.ui.cards > .card > :first-child,
.ui.card > :first-child {
  border-radius: 0.28571429rem 0.28571429rem 0em 0em !important;
  border-top: none !important;
}
.ui.cards > .card > :last-child,
.ui.card > :last-child {
  border-radius: 0em 0em 0.28571429rem 0.28571429rem !important;
}
.ui.cards > .card > :only-child,
.ui.card > :only-child {
  border-radius: 0.28571429rem !important;
}
/*--------------
     Images
---------------*/
.ui.cards > .card > .image,
.ui.card > .image {
  position: relative;
  display: block;
  flex: 0 0 auto;
  padding: 0em;
  background: rgba(0, 0, 0, 0.05);
}
.ui.cards > .card > .image > img,
.ui.card > .image > img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: inherit;
}
.ui.cards > .card > .image:not(.ui) > img,
.ui.card > .image:not(.ui) > img {
  border: none;
}
/*--------------
     Content
---------------*/
.ui.cards > .card > .content,
.ui.card > .content {
  flex-grow: 1;
  border: none;
  border-top: 1px solid rgba(34, 36, 38, 0.1);
  background: none;
  margin: 0em;
  padding: 1em 1em;
  box-shadow: none;
  font-size: 1em;
  border-radius: 0em;
}
.ui.cards > .card > .content:after,
.ui.card > .content:after {
  display: block;
  content: ' ';
  height: 0px;
  clear: both;
  overflow: hidden;
  visibility: hidden;
}
.ui.cards > .card > .content > .header,
.ui.card > .content > .header {
  display: block;
  margin: '';
  font-family: 'Lato', sans-serif;
  color: rgba(0, 0, 0, 0.85);
}
/* Default Header Size */
.ui.cards > .card > .content > .header:not(.ui),
.ui.card > .content > .header:not(.ui) {
  font-weight: bold;
  font-size: 1.28571429em;
  margin-top: -0.21425em;
  line-height: 1.28571429em;
}
.ui.cards > .card > .content > .meta + .description,
.ui.cards > .card > .content > .header + .description,
.ui.card > .content > .meta + .description,
.ui.card > .content > .header + .description {
  margin-top: 0.5em;
}
/*----------------
 Floated Content
-----------------*/
.ui.cards > .card [class*="left floated"],
.ui.card [class*="left floated"] {
  float: left;
}
.ui.cards > .card [class*="right floated"],
.ui.card [class*="right floated"] {
  float: right;
}
/*--------------
     Aligned
---------------*/
.ui.cards > .card [class*="left aligned"],
.ui.card [class*="left aligned"] {
  text-align: left;
}
.ui.cards > .card [class*="center aligned"],
.ui.card [class*="center aligned"] {
  text-align: center;
}
.ui.cards > .card [class*="right aligned"],
.ui.card [class*="right aligned"] {
  text-align: right;
}
/*--------------
  Content Image
---------------*/
.ui.cards > .card .content img,
.ui.card .content img {
  display: inline-block;
  vertical-align: middle;
  width: '';
}
.ui.cards > .card img.avatar,
.ui.cards > .card .avatar img,
.ui.card img.avatar,
.ui.card .avatar img {
  width: 2em;
  height: 2em;
  border-radius: 500rem;
}
/*--------------
   Description
---------------*/
.ui.cards > .card > .content > .description,
.ui.card > .content > .description {
  clear: both;
  color: rgba(0, 0, 0, 0.68);
}
/*--------------
    Paragraph
---------------*/
.ui.cards > .card > .content p,
.ui.card > .content p {
  margin: 0em 0em 0.5em;
}
.ui.cards > .card > .content p:last-child,
.ui.card > .content p:last-child {
  margin-bottom: 0em;
}
/*--------------
      Meta
---------------*/
.ui.cards > .card .meta,
.ui.card .meta {
  font-size: 1em;
  color: rgba(0, 0, 0, 0.4);
}
.ui.cards > .card .meta *,
.ui.card .meta * {
  margin-right: 0.3em;
}
.ui.cards > .card .meta :last-child,
.ui.card .meta :last-child {
  margin-right: 0em;
}
.ui.cards > .card .meta [class*="right floated"],
.ui.card .meta [class*="right floated"] {
  margin-right: 0em;
  margin-left: 0.3em;
}
/*--------------
      Links
---------------*/
/* Generic */
.ui.cards > .card > .content a:not(.ui),
.ui.card > .content a:not(.ui) {
  color: '';
  transition: color 0.1s ease;
}
.ui.cards > .card > .content a:not(.ui):hover,
.ui.card > .content a:not(.ui):hover {
  color: '';
}
/* Header */
.ui.cards > .card > .content > a.header,
.ui.card > .content > a.header {
  color: rgba(0, 0, 0, 0.85);
}
.ui.cards > .card > .content > a.header:hover,
.ui.card > .content > a.header:hover {
  color: #1e70bf;
}
/* Meta */
.ui.cards > .card .meta > a:not(.ui),
.ui.card .meta > a:not(.ui) {
  color: rgba(0, 0, 0, 0.4);
}
.ui.cards > .card .meta > a:not(.ui):hover,
.ui.card .meta > a:not(.ui):hover {
  color: rgba(0, 0, 0, 0.87);
}
/*--------------
     Buttons
---------------*/
.ui.cards > .card > .buttons,
.ui.card > .buttons,
.ui.cards > .card > .button,
.ui.card > .button {
  margin: 0px -1px;
  width: calc(100% +  2px );
}
/*--------------
      Dimmer
---------------*/
.ui.cards > .card .dimmer,
.ui.card .dimmer {
  background-color: '';
  z-index: 10;
}
/*--------------
     Labels
---------------*/
/*-----Star----- */
/* Icon */
.ui.cards > .card > .content .star.icon,
.ui.card > .content .star.icon {
  cursor: pointer;
  opacity: 0.75;
  transition: color 0.1s ease;
}
.ui.cards > .card > .content .star.icon:hover,
.ui.card > .content .star.icon:hover {
  opacity: 1;
  color: #FFB70A;
}
.ui.cards > .card > .content .active.star.icon,
.ui.card > .content .active.star.icon {
  color: #FFE623;
}
/*-----Like----- */
/* Icon */
.ui.cards > .card > .content .like.icon,
.ui.card > .content .like.icon {
  cursor: pointer;
  opacity: 0.75;
  transition: color 0.1s ease;
}
.ui.cards > .card > .content .like.icon:hover,
.ui.card > .content .like.icon:hover {
  opacity: 1;
  color: #FF2733;
}
.ui.cards > .card > .content .active.like.icon,
.ui.card > .content .active.like.icon {
  color: #FF2733;
}
/*----------------
  Extra Content
-----------------*/
.ui.cards > .card > .extra,
.ui.card > .extra {
  max-width: 100%;
  min-height: 0em !important;
  flex-grow: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.05) !important;
  position: static;
  background: none;
  width: auto;
  margin: 0em 0em;
  padding: 0.75em 1em;
  top: 0em;
  left: 0em;
  color: rgba(0, 0, 0, 0.4);
  box-shadow: none;
  transition: color 0.1s ease;
}
.ui.cards > .card > .extra a:not(.ui),
.ui.card > .extra a:not(.ui) {
  color: rgba(0, 0, 0, 0.4);
}
.ui.cards > .card > .extra a:not(.ui):hover,
.ui.card > .extra a:not(.ui):hover {
  color: #1e70bf;
}
/*******************************
           Variations
*******************************/
/*-------------------
       Raised
--------------------*/
.ui.raised.cards > .card,
.ui.raised.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
.ui.raised.cards a.card:hover,
.ui.link.cards .raised.card:hover,
a.ui.raised.card:hover,
.ui.link.raised.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.15), 0px 2px 10px 0px rgba(34, 36, 38, 0.25);
}
.ui.raised.cards > .card,
.ui.raised.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
/*-------------------
       Centered
--------------------*/
.ui.centered.cards {
  justify-content: center;
}
.ui.centered.card {
  margin-left: auto;
  margin-right: auto;
}
/*-------------------
        Fluid
--------------------*/
.ui.fluid.card {
  width: 100%;
  max-width: 9999px;
}
/*-------------------
        Link
--------------------*/
.ui.cards a.card,
.ui.link.cards .card,
a.ui.card,
.ui.link.card {
  transform: none;
}
.ui.cards a.card:hover,
.ui.link.cards .card:hover,
a.ui.card:hover,
.ui.link.card:hover {
  cursor: pointer;
  z-index: 5;
  background: #FFFFFF;
  border: none;
  box-shadow: 0px 1px 3px 0px #BCBDBD, 0px 0px 0px 1px #D4D4D5;
  transform: translateY(-3px);
}
/*-------------------
       Colors
--------------------*/
/* Red */
.ui.red.cards > .card,
.ui.cards > .red.card,
.ui.red.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #DB2828, 0px 1px 3px 0px #D4D4D5;
}
.ui.red.cards > .card:hover,
.ui.cards > .red.card:hover,
.ui.red.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #d01919, 0px 1px 3px 0px #BCBDBD;
}
/* Orange */
.ui.orange.cards > .card,
.ui.cards > .orange.card,
.ui.orange.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #F2711C, 0px 1px 3px 0px #D4D4D5;
}
.ui.orange.cards > .card:hover,
.ui.cards > .orange.card:hover,
.ui.orange.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #f26202, 0px 1px 3px 0px #BCBDBD;
}
/* Yellow */
.ui.yellow.cards > .card,
.ui.cards > .yellow.card,
.ui.yellow.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #FBBD08, 0px 1px 3px 0px #D4D4D5;
}
.ui.yellow.cards > .card:hover,
.ui.cards > .yellow.card:hover,
.ui.yellow.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #eaae00, 0px 1px 3px 0px #BCBDBD;
}
/* Olive */
.ui.olive.cards > .card,
.ui.cards > .olive.card,
.ui.olive.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #B5CC18, 0px 1px 3px 0px #D4D4D5;
}
.ui.olive.cards > .card:hover,
.ui.cards > .olive.card:hover,
.ui.olive.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #a7bd0d, 0px 1px 3px 0px #BCBDBD;
}
/* Green */
.ui.green.cards > .card,
.ui.cards > .green.card,
.ui.green.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #21BA45, 0px 1px 3px 0px #D4D4D5;
}
.ui.green.cards > .card:hover,
.ui.cards > .green.card:hover,
.ui.green.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #16ab39, 0px 1px 3px 0px #BCBDBD;
}
/* Teal */
.ui.teal.cards > .card,
.ui.cards > .teal.card,
.ui.teal.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #00B5AD, 0px 1px 3px 0px #D4D4D5;
}
.ui.teal.cards > .card:hover,
.ui.cards > .teal.card:hover,
.ui.teal.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #009c95, 0px 1px 3px 0px #BCBDBD;
}
/* Blue */
.ui.blue.cards > .card,
.ui.cards > .blue.card,
.ui.blue.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #2185D0, 0px 1px 3px 0px #D4D4D5;
}
.ui.blue.cards > .card:hover,
.ui.cards > .blue.card:hover,
.ui.blue.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #1678c2, 0px 1px 3px 0px #BCBDBD;
}
/* Violet */
.ui.violet.cards > .card,
.ui.cards > .violet.card,
.ui.violet.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #6435C9, 0px 1px 3px 0px #D4D4D5;
}
.ui.violet.cards > .card:hover,
.ui.cards > .violet.card:hover,
.ui.violet.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #5829bb, 0px 1px 3px 0px #BCBDBD;
}
/* Purple */
.ui.purple.cards > .card,
.ui.cards > .purple.card,
.ui.purple.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A333C8, 0px 1px 3px 0px #D4D4D5;
}
.ui.purple.cards > .card:hover,
.ui.cards > .purple.card:hover,
.ui.purple.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #9627ba, 0px 1px 3px 0px #BCBDBD;
}
/* Pink */
.ui.pink.cards > .card,
.ui.cards > .pink.card,
.ui.pink.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #E03997, 0px 1px 3px 0px #D4D4D5;
}
.ui.pink.cards > .card:hover,
.ui.cards > .pink.card:hover,
.ui.pink.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #e61a8d, 0px 1px 3px 0px #BCBDBD;
}
/* Brown */
.ui.brown.cards > .card,
.ui.cards > .brown.card,
.ui.brown.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A5673F, 0px 1px 3px 0px #D4D4D5;
}
.ui.brown.cards > .card:hover,
.ui.cards > .brown.card:hover,
.ui.brown.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #975b33, 0px 1px 3px 0px #BCBDBD;
}
/* Grey */
.ui.grey.cards > .card,
.ui.cards > .grey.card,
.ui.grey.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #767676, 0px 1px 3px 0px #D4D4D5;
}
.ui.grey.cards > .card:hover,
.ui.cards > .grey.card:hover,
.ui.grey.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #838383, 0px 1px 3px 0px #BCBDBD;
}
/* Black */
.ui.black.cards > .card,
.ui.cards > .black.card,
.ui.black.card {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #1B1C1D, 0px 1px 3px 0px #D4D4D5;
}
.ui.black.cards > .card:hover,
.ui.cards > .black.card:hover,
.ui.black.card:hover {
  box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #27292a, 0px 1px 3px 0px #BCBDBD;
}
/*--------------
   Card Count
---------------*/
.ui.one.cards {
  margin-left: 0em;
  margin-right: 0em;
}
.ui.one.cards > .card {
  width: 100%;
}
.ui.two.cards {
  margin-left: -1em;
  margin-right: -1em;
}
.ui.two.cards > .card {
  width: calc( 50%  -  2em );
  margin-left: 1em;
  margin-right: 1em;
}
.ui.three.cards {
  margin-left: -1em;
  margin-right: -1em;
}
.ui.three.cards > .card {
  width: calc( 33.33333333%  -  2em );
  margin-left: 1em;
  margin-right: 1em;
}
.ui.four.cards {
  margin-left: -0.75em;
  margin-right: -0.75em;
}
.ui.four.cards > .card {
  width: calc( 25%  -  1.5em );
  margin-left: 0.75em;
  margin-right: 0.75em;
}
.ui.five.cards {
  margin-left: -0.75em;
  margin-right: -0.75em;
}
.ui.five.cards > .card {
  width: calc( 20%  -  1.5em );
  margin-left: 0.75em;
  margin-right: 0.75em;
}
.ui.six.cards {
  margin-left: -0.75em;
  margin-right: -0.75em;
}
.ui.six.cards > .card {
  width: calc( 16.66666667%  -  1.5em );
  margin-left: 0.75em;
  margin-right: 0.75em;
}
.ui.seven.cards {
  margin-left: -0.5em;
  margin-right: -0.5em;
}
.ui.seven.cards > .card {
  width: calc( 14.28571429%  -  1em );
  margin-left: 0.5em;
  margin-right: 0.5em;
}
.ui.eight.cards {
  margin-left: -0.5em;
  margin-right: -0.5em;
}
.ui.eight.cards > .card {
  width: calc( 12.5%  -  1em );
  margin-left: 0.5em;
  margin-right: 0.5em;
  font-size: 11px;
}
.ui.nine.cards {
  margin-left: -0.5em;
  margin-right: -0.5em;
}
.ui.nine.cards > .card {
  width: calc( 11.11111111%  -  1em );
  margin-left: 0.5em;
  margin-right: 0.5em;
  font-size: 10px;
}
.ui.ten.cards {
  margin-left: -0.5em;
  margin-right: -0.5em;
}
.ui.ten.cards > .card {
  width: calc( 10%  -  1em );
  margin-left: 0.5em;
  margin-right: 0.5em;
}
/*-------------------
      Doubling
--------------------*/
/* Mobile Only */
@media only screen and (max-width: 767px) {
  .ui.two.doubling.cards {
    margin-left: 0em;
    margin-right: 0em;
  }
  .ui.two.doubling.cards > .card {
    width: 100%;
    margin-left: 0em;
    margin-right: 0em;
  }
  .ui.three.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.three.doubling.cards > .card {
    width: calc( 50%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.four.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.four.doubling.cards > .card {
    width: calc( 50%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.five.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.five.doubling.cards > .card {
    width: calc( 50%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.six.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.six.doubling.cards > .card {
    width: calc( 50%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.seven.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.seven.doubling.cards > .card {
    width: calc( 33.33333333%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.eight.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.eight.doubling.cards > .card {
    width: calc( 33.33333333%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.nine.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.nine.doubling.cards > .card {
    width: calc( 33.33333333%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.ten.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.ten.doubling.cards > .card {
    width: calc( 33.33333333%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
}
/* Tablet Only */
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ui.two.doubling.cards {
    margin-left: 0em;
    margin-right: 0em;
  }
  .ui.two.doubling.cards > .card {
    width: 100%;
    margin-left: 0em;
    margin-right: 0em;
  }
  .ui.three.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.three.doubling.cards > .card {
    width: calc( 50%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.four.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.four.doubling.cards > .card {
    width: calc( 50%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.five.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.five.doubling.cards > .card {
    width: calc( 33.33333333%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.six.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.six.doubling.cards > .card {
    width: calc( 33.33333333%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.eight.doubling.cards {
    margin-left: -1em;
    margin-right: -1em;
  }
  .ui.eight.doubling.cards > .card {
    width: calc( 33.33333333%  -  2em );
    margin-left: 1em;
    margin-right: 1em;
  }
  .ui.eight.doubling.cards {
    margin-left: -0.75em;
    margin-right: -0.75em;
  }
  .ui.eight.doubling.cards > .card {
    width: calc( 25%  -  1.5em );
    margin-left: 0.75em;
    margin-right: 0.75em;
  }
  .ui.nine.doubling.cards {
    margin-left: -0.75em;
    margin-right: -0.75em;
  }
  .ui.nine.doubling.cards > .card {
    width: calc( 25%  -  1.5em );
    margin-left: 0.75em;
    margin-right: 0.75em;
  }
  .ui.ten.doubling.cards {
    margin-left: -0.75em;
    margin-right: -0.75em;
  }
  .ui.ten.doubling.cards > .card {
    width: calc( 20%  -  1.5em );
    margin-left: 0.75em;
    margin-right: 0.75em;
  }
}
/*-------------------
      Stackable
--------------------*/
@media only screen and (max-width: 767px) {
  .ui.stackable.cards {
    display: block !important;
  }
  .ui.stackable.cards .card:first-child {
    margin-top: 0em !important;
  }
  .ui.stackable.cards > .card {
    display: block !important;
    height: auto !important;
    margin: 1em 1em;
    padding: 0 !important;
    width: calc( 100%  -  2em ) !important;
  }
}
/*--------------
      Size
---------------*/
.ui.cards > .card {
  font-size: 1em;
}
/*!
 * # Semantic UI - Comment
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Comments
*******************************/
/*-------------------
       View
--------------------*/
/*-------------------
      Elements
--------------------*/
/* Comment */
/* Nested Comment */
/* Avatar */
/* Content */
/* Author */
/* Metadata */
/* Text */
/* Actions */
/* Reply */
/*-------------------
      Variations
--------------------*/
/* Threaded */
/* Minimal */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Standard
*******************************/
/*--------------
    Comments
---------------*/
.ui.comments {
  margin: 1.5em 0em;
  max-width: 650px;
}
.ui.comments:first-child {
  margin-top: 0em;
}
.ui.comments:last-child {
  margin-bottom: 0em;
}
/*--------------
     Comment
---------------*/
.ui.comments .comment {
  position: relative;
  background: none;
  margin: 0.5em 0em 0em;
  padding: 0.5em 0em 0em;
  border: none;
  border-top: none;
  line-height: 1.2;
}
.ui.comments .comment:first-child {
  margin-top: 0em;
  padding-top: 0em;
}
/*--------------------
    Nested Comments
---------------------*/
.ui.comments .comment .comments {
  margin: 0em 0em 0.5em 0.5em;
  padding: 1em 0em 1em 1em;
}
.ui.comments .comment .comments:before {
  position: absolute;
  top: 0px;
  left: 0px;
}
.ui.comments .comment .comments .comment {
  border: none;
  border-top: none;
  background: none;
}
/*--------------
     Avatar
---------------*/
.ui.comments .comment .avatar {
  display: block;
  width: 2.5em;
  height: auto;
  float: left;
  margin: 0.2em 0em 0em;
}
.ui.comments .comment img.avatar,
.ui.comments .comment .avatar img {
  display: block;
  margin: 0em auto;
  width: 100%;
  height: 100%;
  border-radius: 0.25rem;
}
/*--------------
     Content
---------------*/
.ui.comments .comment > .content {
  display: block;
}
/* If there is an avatar move content over */
.ui.comments .comment > .avatar ~ .content {
  margin-left: 3.5em;
}
/*--------------
     Author
---------------*/
.ui.comments .comment .author {
  font-size: 1em;
  color: rgba(0, 0, 0, 0.87);
  font-weight: bold;
}
.ui.comments .comment a.author {
  cursor: pointer;
}
.ui.comments .comment a.author:hover {
  color: #1e70bf;
}
/*--------------
     Metadata
---------------*/
.ui.comments .comment .metadata {
  display: inline-block;
  margin-left: 0.5em;
  color: rgba(0, 0, 0, 0.4);
  font-size: 0.875em;
}
.ui.comments .comment .metadata > * {
  display: inline-block;
  margin: 0em 0.5em 0em 0em;
}
.ui.comments .comment .metadata > :last-child {
  margin-right: 0em;
}
/*--------------------
     Comment Text
---------------------*/
.ui.comments .comment .text {
  margin: 0.25em 0em 0.5em;
  font-size: 1em;
  word-wrap: break-word;
  color: rgba(0, 0, 0, 0.87);
  line-height: 1.3;
}
/*--------------------
     User Actions
---------------------*/
.ui.comments .comment .actions {
  font-size: 0.875em;
}
.ui.comments .comment .actions a {
  cursor: pointer;
  display: inline-block;
  margin: 0em 0.75em 0em 0em;
  color: rgba(0, 0, 0, 0.4);
}
.ui.comments .comment .actions a:last-child {
  margin-right: 0em;
}
.ui.comments .comment .actions a.active,
.ui.comments .comment .actions a:hover {
  color: rgba(0, 0, 0, 0.8);
}
/*--------------------
      Reply Form
---------------------*/
.ui.comments > .reply.form {
  margin-top: 1em;
}
.ui.comments .comment .reply.form {
  width: 100%;
  margin-top: 1em;
}
.ui.comments .reply.form textarea {
  font-size: 1em;
  height: 12em;
}
/*******************************
            State
*******************************/
.ui.collapsed.comments,
.ui.comments .collapsed.comments,
.ui.comments .collapsed.comment {
  display: none;
}
/*******************************
           Variations
*******************************/
/*--------------------
        Threaded
---------------------*/
.ui.threaded.comments .comment .comments {
  margin: -1.5em 0 -1em 1.25em;
  padding: 3em 0em 2em 2.25em;
  box-shadow: -1px 0px 0px rgba(34, 36, 38, 0.15);
}
/*--------------------
        Minimal
---------------------*/
.ui.minimal.comments .comment .actions {
  opacity: 0;
  position: absolute;
  top: 0px;
  right: 0px;
  left: auto;
  transition: opacity 0.2s ease;
  transition-delay: 0.1s;
}
.ui.minimal.comments .comment > .content:hover > .actions {
  opacity: 1;
}
/*-------------------
        Sizes
--------------------*/
.ui.mini.comments {
  font-size: 0.78571429rem;
}
.ui.tiny.comments {
  font-size: 0.85714286rem;
}
.ui.small.comments {
  font-size: 0.92857143rem;
}
.ui.comments {
  font-size: 1rem;
}
.ui.large.comments {
  font-size: 1.14285714rem;
}
.ui.big.comments {
  font-size: 1.28571429rem;
}
.ui.huge.comments {
  font-size: 1.42857143rem;
}
.ui.massive.comments {
  font-size: 1.71428571rem;
}
/*!
 * # Semantic UI - Feed
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Feed
*******************************/
/*-------------------
        Feed
--------------------*/
/*-------------------
      Elements
--------------------*/
/* Event */
/* Event Label */
/* Icon Label */
/* Image Label */
/* Content w/ Label */
/* Content */
/* Date */
/* Summary */
/* Summary Image */
/* Summary Date */
/* User */
/* Extra Summary Data */
/* Extra Images */
/* Extra Text */
/* Metadata Group */
/* Like */
/* Metadata Divider */
/*-------------------
      Variations
--------------------*/
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
         Activity Feed
*******************************/
.ui.feed {
  margin: 1em 0em;
}
.ui.feed:first-child {
  margin-top: 0em;
}
.ui.feed:last-child {
  margin-bottom: 0em;
}
/*******************************
            Content
*******************************/
/* Event */
.ui.feed > .event {
  display: flex;
  flex-direction: row;
  width: 100%;
  padding: 0.21428571rem 0em;
  margin: 0em;
  background: none;
  border-top: none;
}
.ui.feed > .event:first-child {
  border-top: 0px;
  padding-top: 0em;
}
.ui.feed > .event:last-child {
  padding-bottom: 0em;
}
/* Event Label */
.ui.feed > .event > .label {
  display: block;
  flex: 0 0 auto;
  width: 2.5em;
  height: auto;
  align-self: stretch;
  text-align: left;
}
.ui.feed > .event > .label .icon {
  opacity: 1;
  font-size: 1.5em;
  width: 100%;
  padding: 0.25em;
  background: none;
  border: none;
  border-radius: none;
  color: rgba(0, 0, 0, 0.6);
}
.ui.feed > .event > .label img {
  width: 100%;
  height: auto;
  border-radius: 500rem;
}
.ui.feed > .event > .label + .content {
  margin: 0.5em 0em 0.35714286em 1.14285714em;
}
/*--------------
     Content
---------------*/
/* Content */
.ui.feed > .event > .content {
  display: block;
  flex: 1 1 auto;
  align-self: stretch;
  text-align: left;
  word-wrap: break-word;
}
.ui.feed > .event:last-child > .content {
  padding-bottom: 0em;
}
/* Link */
.ui.feed > .event > .content a {
  cursor: pointer;
}
/*--------------
      Date
---------------*/
.ui.feed > .event > .content .date {
  margin: -0.5rem 0em 0em;
  padding: 0em;
  font-weight: normal;
  font-size: 1em;
  font-style: normal;
  color: rgba(0, 0, 0, 0.4);
}
/*--------------
     Summary
---------------*/
.ui.feed > .event > .content .summary {
  margin: 0em;
  font-size: 1em;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.87);
}
/* Summary Image */
.ui.feed > .event > .content .summary img {
  display: inline-block;
  width: auto;
  height: 10em;
  margin: -0.25em 0.25em 0em 0em;
  border-radius: 0.25em;
  vertical-align: middle;
}
/*--------------
      User
---------------*/
.ui.feed > .event > .content .user {
  display: inline-block;
  font-weight: bold;
  margin-right: 0em;
  vertical-align: baseline;
}
.ui.feed > .event > .content .user img {
  margin: -0.25em 0.25em 0em 0em;
  width: auto;
  height: 10em;
  vertical-align: middle;
}
/*--------------
   Inline Date
---------------*/
/* Date inside Summary */
.ui.feed > .event > .content .summary > .date {
  display: inline-block;
  float: none;
  font-weight: normal;
  font-size: 0.85714286em;
  font-style: normal;
  margin: 0em 0em 0em 0.5em;
  padding: 0em;
  color: rgba(0, 0, 0, 0.4);
}
/*--------------
  Extra Summary
---------------*/
.ui.feed > .event > .content .extra {
  margin: 0.5em 0em 0em;
  background: none;
  padding: 0em;
  color: rgba(0, 0, 0, 0.87);
}
/* Images */
.ui.feed > .event > .content .extra.images img {
  display: inline-block;
  margin: 0em 0.25em 0em 0em;
  width: 6em;
}
/* Text */
.ui.feed > .event > .content .extra.text {
  padding: 0em;
  border-left: none;
  font-size: 1em;
  max-width: 500px;
  line-height: 1.4285em;
}
/*--------------
      Meta
---------------*/
.ui.feed > .event > .content .meta {
  display: inline-block;
  font-size: 0.85714286em;
  margin: 0.5em 0em 0em;
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0em;
  color: rgba(0, 0, 0, 0.6);
}
.ui.feed > .event > .content .meta > * {
  position: relative;
  margin-left: 0.75em;
}
.ui.feed > .event > .content .meta > *:after {
  content: '';
  color: rgba(0, 0, 0, 0.2);
  top: 0em;
  left: -1em;
  opacity: 1;
  position: absolute;
  vertical-align: top;
}
.ui.feed > .event > .content .meta .like {
  color: '';
  transition: 0.2s color ease;
}
.ui.feed > .event > .content .meta .like:hover .icon {
  color: #FF2733;
}
.ui.feed > .event > .content .meta .active.like .icon {
  color: #EF404A;
}
/* First element */
.ui.feed > .event > .content .meta > :first-child {
  margin-left: 0em;
}
.ui.feed > .event > .content .meta > :first-child::after {
  display: none;
}
/* Action */
.ui.feed > .event > .content .meta a,
.ui.feed > .event > .content .meta > .icon {
  cursor: pointer;
  opacity: 1;
  color: rgba(0, 0, 0, 0.5);
  transition: color 0.1s ease;
}
.ui.feed > .event > .content .meta a:hover,
.ui.feed > .event > .content .meta a:hover .icon,
.ui.feed > .event > .content .meta > .icon:hover {
  color: rgba(0, 0, 0, 0.95);
}
/*******************************
            Variations
*******************************/
.ui.small.feed {
  font-size: 0.92857143rem;
}
.ui.feed {
  font-size: 1rem;
}
.ui.large.feed {
  font-size: 1.14285714rem;
}
/*!
 * # Semantic UI - Item
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Item
*******************************/
/*-------------------
         View
--------------------*/
/* Group */
/* Item */
/* Responsive */
/*-------------------
       Content
--------------------*/
/* Image */
/* Content */
/* Header */
/* Metadata */
/* Icons */
/* Actions */
/* Links */
/* Description */
/* Content Image */
/* Avatar Image */
/* Paragraph */
/* Additional Content */
/*-------------------
      Variations
--------------------*/
/* Relaxed */
/* Divided */
/* Unstackable */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Standard
*******************************/
/*--------------
      Item
---------------*/
.ui.items > .item {
  display: flex;
  margin: 1em 0em;
  width: 100%;
  min-height: 0px;
  background: transparent;
  padding: 0em;
  border: none;
  border-radius: 0rem;
  box-shadow: none;
  transition: box-shadow 0.1s ease;
  z-index: '';
}
.ui.items > .item a {
  cursor: pointer;
}
/*--------------
      Items
---------------*/
.ui.items {
  margin: 1.5em 0em;
}
.ui.items:first-child {
  margin-top: 0em !important;
}
.ui.items:last-child {
  margin-bottom: 0em !important;
}
/*--------------
      Item
---------------*/
.ui.items > .item:after {
  display: block;
  content: ' ';
  height: 0px;
  clear: both;
  overflow: hidden;
  visibility: hidden;
}
.ui.items > .item:first-child {
  margin-top: 0em;
}
.ui.items > .item:last-child {
  margin-bottom: 0em;
}
/*--------------
     Images
---------------*/
.ui.items > .item > .image {
  position: relative;
  flex: 0 0 auto;
  display: block;
  float: none;
  margin: 0em;
  padding: 0em;
  max-height: '';
  align-self: top;
}
.ui.items > .item > .image > img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.125rem;
  border: none;
}
.ui.items > .item > .image:only-child > img {
  border-radius: 0rem;
}
/*--------------
     Content
---------------*/
.ui.items > .item > .content {
  display: block;
  flex: 1 1 auto;
  background: none;
  margin: 0em;
  padding: 0em;
  box-shadow: none;
  font-size: 1em;
  border: none;
  border-radius: 0em;
}
.ui.items > .item > .content:after {
  display: block;
  content: ' ';
  height: 0px;
  clear: both;
  overflow: hidden;
  visibility: hidden;
}
.ui.items > .item > .image + .content {
  min-width: 0;
  width: auto;
  display: block;
  margin-left: 0em;
  align-self: top;
  padding-left: 1.5em;
}
.ui.items > .item > .content > .header {
  display: inline-block;
  margin: -0.21425em 0em 0em;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.85);
}
/* Default Header Size */
.ui.items > .item > .content > .header:not(.ui) {
  font-size: 1.28571429em;
}
/*--------------
     Floated
---------------*/
.ui.items > .item [class*="left floated"] {
  float: left;
}
.ui.items > .item [class*="right floated"] {
  float: right;
}
/*--------------
  Content Image
---------------*/
.ui.items > .item .content img {
  align-self: middle;
  width: '';
}
.ui.items > .item img.avatar,
.ui.items > .item .avatar img {
  width: '';
  height: '';
  border-radius: 500rem;
}
/*--------------
   Description
---------------*/
.ui.items > .item > .content > .description {
  margin-top: 0.6em;
  max-width: auto;
  font-size: 1em;
  line-height: 1.4285em;
  color: rgba(0, 0, 0, 0.87);
}
/*--------------
    Paragraph
---------------*/
.ui.items > .item > .content p {
  margin: 0em 0em 0.5em;
}
.ui.items > .item > .content p:last-child {
  margin-bottom: 0em;
}
/*--------------
      Meta
---------------*/
.ui.items > .item .meta {
  margin: 0.5em 0em 0.5em;
  font-size: 1em;
  line-height: 1em;
  color: rgba(0, 0, 0, 0.6);
}
.ui.items > .item .meta * {
  margin-right: 0.3em;
}
.ui.items > .item .meta :last-child {
  margin-right: 0em;
}
.ui.items > .item .meta [class*="right floated"] {
  margin-right: 0em;
  margin-left: 0.3em;
}
/*--------------
      Links
---------------*/
/* Generic */
.ui.items > .item > .content a:not(.ui) {
  color: '';
  transition: color 0.1s ease;
}
.ui.items > .item > .content a:not(.ui):hover {
  color: '';
}
/* Header */
.ui.items > .item > .content > a.header {
  color: rgba(0, 0, 0, 0.85);
}
.ui.items > .item > .content > a.header:hover {
  color: #1e70bf;
}
/* Meta */
.ui.items > .item .meta > a:not(.ui) {
  color: rgba(0, 0, 0, 0.4);
}
.ui.items > .item .meta > a:not(.ui):hover {
  color: rgba(0, 0, 0, 0.87);
}
/*--------------
     Labels
---------------*/
/*-----Star----- */
/* Icon */
.ui.items > .item > .content .favorite.icon {
  cursor: pointer;
  opacity: 0.75;
  transition: color 0.1s ease;
}
.ui.items > .item > .content .favorite.icon:hover {
  opacity: 1;
  color: #FFB70A;
}
.ui.items > .item > .content .active.favorite.icon {
  color: #FFE623;
}
/*-----Like----- */
/* Icon */
.ui.items > .item > .content .like.icon {
  cursor: pointer;
  opacity: 0.75;
  transition: color 0.1s ease;
}
.ui.items > .item > .content .like.icon:hover {
  opacity: 1;
  color: #FF2733;
}
.ui.items > .item > .content .active.like.icon {
  color: #FF2733;
}
/*----------------
  Extra Content
-----------------*/
.ui.items > .item .extra {
  display: block;
  position: relative;
  background: none;
  margin: 0.5rem 0em 0em;
  width: 100%;
  padding: 0em 0em 0em;
  top: 0em;
  left: 0em;
  color: rgba(0, 0, 0, 0.4);
  box-shadow: none;
  transition: color 0.1s ease;
  border-top: none;
}
.ui.items > .item .extra > * {
  margin: 0.25rem 0.5rem 0.25rem 0em;
}
.ui.items > .item .extra > [class*="right floated"] {
  margin: 0.25rem 0em 0.25rem 0.5rem;
}
.ui.items > .item .extra:after {
  display: block;
  content: ' ';
  height: 0px;
  clear: both;
  overflow: hidden;
  visibility: hidden;
}
/*******************************
          Responsive
*******************************/
/* Default Image Width */
.ui.items > .item > .image:not(.ui) {
  width: 175px;
}
/* Tablet Only */
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .ui.items > .item {
    margin: 1em 0em;
  }
  .ui.items > .item > .image:not(.ui) {
    width: 150px;
  }
  .ui.items > .item > .image + .content {
    display: block;
    padding: 0em 0em 0em 1em;
  }
}
/* Mobile Only */
@media only screen and (max-width: 767px) {
  .ui.items:not(.unstackable) > .item {
    flex-direction: column;
    margin: 2em 0em;
  }
  .ui.items:not(.unstackable) > .item > .image {
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
  .ui.items:not(.unstackable) > .item > .image,
  .ui.items:not(.unstackable) > .item > .image > img {
    max-width: 100% !important;
    width: auto !important;
    max-height: 250px !important;
  }
  .ui.items:not(.unstackable) > .item > .image + .content {
    display: block;
    padding: 1.5em 0em 0em;
  }
}
/*******************************
           Variations
*******************************/
/*-------------------
       Aligned
--------------------*/
.ui.items > .item > .image + [class*="top aligned"].content {
  align-self: flex-start;
}
.ui.items > .item > .image + [class*="middle aligned"].content {
  align-self: center;
}
.ui.items > .item > .image + [class*="bottom aligned"].content {
  align-self: flex-end;
}
/*--------------
     Relaxed
---------------*/
.ui.relaxed.items > .item {
  margin: 1.5em 0em;
}
.ui[class*="very relaxed"].items > .item {
  margin: 2em 0em;
}
/*-------------------
      Divided
--------------------*/
.ui.divided.items > .item {
  border-top: 1px solid rgba(34, 36, 38, 0.15);
  margin: 0em;
  padding: 1em 0em;
}
.ui.divided.items > .item:first-child {
  border-top: none;
  margin-top: 0em !important;
  padding-top: 0em !important;
}
.ui.divided.items > .item:last-child {
  margin-bottom: 0em !important;
  padding-bottom: 0em !important;
}
/* Relaxed Divided */
.ui.relaxed.divided.items > .item {
  margin: 0em;
  padding: 1.5em 0em;
}
.ui[class*="very relaxed"].divided.items > .item {
  margin: 0em;
  padding: 2em 0em;
}
/*-------------------
        Link
--------------------*/
.ui.items a.item:hover,
.ui.link.items > .item:hover {
  cursor: pointer;
}
.ui.items a.item:hover .content .header,
.ui.link.items > .item:hover .content .header {
  color: #1e70bf;
}
/*--------------
      Size
---------------*/
.ui.items > .item {
  font-size: 1em;
}
/*---------------
   Unstackable
----------------*/
@media only screen and (max-width: 767px) {
  .ui.unstackable.items > .item > .image,
  .ui.unstackable.items > .item > .image > img {
    width: 125px !important;
  }
}
/*!
 * # Semantic UI - Statistic
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
           Statistic
*******************************/
/*-------------------
         View
--------------------*/
/* Group */
/* Group Element */
/*-------------------
       Content
--------------------*/
/* Value */
/* Label */
/* Text */
/* Label Image */
/*-------------------
      Types
--------------------*/
/*-------------------
      Variations
--------------------*/
/* Floated */
/* Inverted */
/* Item Width */
/* Size */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
           Statistic
*******************************/
/* Standalone */
.ui.statistic {
  display: inline-flex;
  flex-direction: column;
  margin: 1em 0em;
  max-width: auto;
}
.ui.statistic + .ui.statistic {
  margin: 0em 0em 0em 1.5em;
}
.ui.statistic:first-child {
  margin-top: 0em;
}
.ui.statistic:last-child {
  margin-bottom: 0em;
}
/*******************************
            Group
*******************************/
/* Grouped */
.ui.statistics {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
}
.ui.statistics > .statistic {
  display: inline-flex;
  flex: 0 1 auto;
  flex-direction: column;
  margin: 0em 1.5em 1em;
  max-width: auto;
}
.ui.statistics {
  display: flex;
  margin: 1em -1.5em -1em;
}
/* Clearing */
.ui.statistics:after {
  display: block;
  content: ' ';
  height: 0px;
  clear: both;
  overflow: hidden;
  visibility: hidden;
}
.ui.statistics:first-child {
  margin-top: 0em;
}
/*******************************
            Content
*******************************/
/*--------------
      Value
---------------*/
.ui.statistics .statistic > .value,
.ui.statistic > .value {
  font-family: 'Lato', sans-serif;
  font-size: 4rem;
  font-weight: normal;
  line-height: 1em;
  color: #1B1C1D;
  text-transform: uppercase;
  text-align: center;
}
/*--------------
     Label
---------------*/
.ui.statistics .statistic > .label,
.ui.statistic > .label {
  font-family: 'Lato', sans-serif;
  font-size: 1em;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.87);
  text-transform: uppercase;
  text-align: center;
}
/* Top Label */
.ui.statistics .statistic > .label ~ .value,
.ui.statistic > .label ~ .value {
  margin-top: 0rem;
}
/* Bottom Label */
.ui.statistics .statistic > .value ~ .label,
.ui.statistic > .value ~ .label {
  margin-top: 0rem;
}
/*******************************
             Types
*******************************/
/*--------------
   Icon Value
---------------*/
.ui.statistics .statistic > .value .icon,
.ui.statistic > .value .icon {
  opacity: 1;
  width: auto;
  margin: 0em;
}
/*--------------
   Text Value
---------------*/
.ui.statistics .statistic > .text.value,
.ui.statistic > .text.value {
  line-height: 1em;
  min-height: 2em;
  font-weight: bold;
  text-align: center;
}
.ui.statistics .statistic > .text.value + .label,
.ui.statistic > .text.value + .label {
  text-align: center;
}
/*--------------
   Image Value
---------------*/
.ui.statistics .statistic > .value img,
.ui.statistic > .value img {
  max-height: 3rem;
  vertical-align: baseline;
}
/*******************************
            Variations
*******************************/
/*--------------
      Count
---------------*/
.ui.ten.statistics {
  margin: 0em 0em -1em;
}
.ui.ten.statistics .statistic {
  min-width: 10%;
  margin: 0em 0em 1em;
}
.ui.nine.statistics {
  margin: 0em 0em -1em;
}
.ui.nine.statistics .statistic {
  min-width: 11.11111111%;
  margin: 0em 0em 1em;
}
.ui.eight.statistics {
  margin: 0em 0em -1em;
}
.ui.eight.statistics .statistic {
  min-width: 12.5%;
  margin: 0em 0em 1em;
}
.ui.seven.statistics {
  margin: 0em 0em -1em;
}
.ui.seven.statistics .statistic {
  min-width: 14.28571429%;
  margin: 0em 0em 1em;
}
.ui.six.statistics {
  margin: 0em 0em -1em;
}
.ui.six.statistics .statistic {
  min-width: 16.66666667%;
  margin: 0em 0em 1em;
}
.ui.five.statistics {
  margin: 0em 0em -1em;
}
.ui.five.statistics .statistic {
  min-width: 20%;
  margin: 0em 0em 1em;
}
.ui.four.statistics {
  margin: 0em 0em -1em;
}
.ui.four.statistics .statistic {
  min-width: 25%;
  margin: 0em 0em 1em;
}
.ui.three.statistics {
  margin: 0em 0em -1em;
}
.ui.three.statistics .statistic {
  min-width: 33.33333333%;
  margin: 0em 0em 1em;
}
.ui.two.statistics {
  margin: 0em 0em -1em;
}
.ui.two.statistics .statistic {
  min-width: 50%;
  margin: 0em 0em 1em;
}
.ui.one.statistics {
  margin: 0em 0em -1em;
}
.ui.one.statistics .statistic {
  min-width: 100%;
  margin: 0em 0em 1em;
}
/*--------------
   Horizontal
---------------*/
.ui.horizontal.statistic {
  flex-direction: row;
  align-items: center;
}
.ui.horizontal.statistics {
  flex-direction: column;
  margin: 0em;
  max-width: none;
}
.ui.horizontal.statistics .statistic {
  flex-direction: row;
  align-items: center;
  max-width: none;
  margin: 1em 0em;
}
.ui.horizontal.statistic > .text.value,
.ui.horizontal.statistics > .statistic > .text.value {
  min-height: 0em !important;
}
.ui.horizontal.statistics .statistic > .value .icon,
.ui.horizontal.statistic > .value .icon {
  width: 1.18em;
}
.ui.horizontal.statistics .statistic > .value,
.ui.horizontal.statistic > .value {
  display: inline-block;
  vertical-align: middle;
}
.ui.horizontal.statistics .statistic > .label,
.ui.horizontal.statistic > .label {
  display: inline-block;
  vertical-align: middle;
  margin: 0em 0em 0em 0.75em;
}
/*--------------
     Colors
---------------*/
.ui.red.statistics .statistic > .value,
.ui.statistics .red.statistic > .value,
.ui.red.statistic > .value {
  color: #DB2828;
}
.ui.orange.statistics .statistic > .value,
.ui.statistics .orange.statistic > .value,
.ui.orange.statistic > .value {
  color: #F2711C;
}
.ui.yellow.statistics .statistic > .value,
.ui.statistics .yellow.statistic > .value,
.ui.yellow.statistic > .value {
  color: #FBBD08;
}
.ui.olive.statistics .statistic > .value,
.ui.statistics .olive.statistic > .value,
.ui.olive.statistic > .value {
  color: #B5CC18;
}
.ui.green.statistics .statistic > .value,
.ui.statistics .green.statistic > .value,
.ui.green.statistic > .value {
  color: #21BA45;
}
.ui.teal.statistics .statistic > .value,
.ui.statistics .teal.statistic > .value,
.ui.teal.statistic > .value {
  color: #00B5AD;
}
.ui.blue.statistics .statistic > .value,
.ui.statistics .blue.statistic > .value,
.ui.blue.statistic > .value {
  color: #2185D0;
}
.ui.violet.statistics .statistic > .value,
.ui.statistics .violet.statistic > .value,
.ui.violet.statistic > .value {
  color: #6435C9;
}
.ui.purple.statistics .statistic > .value,
.ui.statistics .purple.statistic > .value,
.ui.purple.statistic > .value {
  color: #A333C8;
}
.ui.pink.statistics .statistic > .value,
.ui.statistics .pink.statistic > .value,
.ui.pink.statistic > .value {
  color: #E03997;
}
.ui.brown.statistics .statistic > .value,
.ui.statistics .brown.statistic > .value,
.ui.brown.statistic > .value {
  color: #A5673F;
}
.ui.grey.statistics .statistic > .value,
.ui.statistics .grey.statistic > .value,
.ui.grey.statistic > .value {
  color: #767676;
}
/*--------------
    Inverted
---------------*/
.ui.inverted.statistics .statistic > .value,
.ui.inverted.statistic .value {
  color: #FFFFFF;
}
.ui.inverted.statistics .statistic > .label,
.ui.inverted.statistic .label {
  color: rgba(255, 255, 255, 0.9);
}
.ui.inverted.red.statistics .statistic > .value,
.ui.statistics .inverted.red.statistic > .value,
.ui.inverted.red.statistic > .value {
  color: #FF695E;
}
.ui.inverted.orange.statistics .statistic > .value,
.ui.statistics .inverted.orange.statistic > .value,
.ui.inverted.orange.statistic > .value {
  color: #FF851B;
}
.ui.inverted.yellow.statistics .statistic > .value,
.ui.statistics .inverted.yellow.statistic > .value,
.ui.inverted.yellow.statistic > .value {
  color: #FFE21F;
}
.ui.inverted.olive.statistics .statistic > .value,
.ui.statistics .inverted.olive.statistic > .value,
.ui.inverted.olive.statistic > .value {
  color: #D9E778;
}
.ui.inverted.green.statistics .statistic > .value,
.ui.statistics .inverted.green.statistic > .value,
.ui.inverted.green.statistic > .value {
  color: #2ECC40;
}
.ui.inverted.teal.statistics .statistic > .value,
.ui.statistics .inverted.teal.statistic > .value,
.ui.inverted.teal.statistic > .value {
  color: #6DFFFF;
}
.ui.inverted.blue.statistics .statistic > .value,
.ui.statistics .inverted.blue.statistic > .value,
.ui.inverted.blue.statistic > .value {
  color: #54C8FF;
}
.ui.inverted.violet.statistics .statistic > .value,
.ui.statistics .inverted.violet.statistic > .value,
.ui.inverted.violet.statistic > .value {
  color: #A291FB;
}
.ui.inverted.purple.statistics .statistic > .value,
.ui.statistics .inverted.purple.statistic > .value,
.ui.inverted.purple.statistic > .value {
  color: #DC73FF;
}
.ui.inverted.pink.statistics .statistic > .value,
.ui.statistics .inverted.pink.statistic > .value,
.ui.inverted.pink.statistic > .value {
  color: #FF8EDF;
}
.ui.inverted.brown.statistics .statistic > .value,
.ui.statistics .inverted.brown.statistic > .value,
.ui.inverted.brown.statistic > .value {
  color: #D67C1C;
}
.ui.inverted.grey.statistics .statistic > .value,
.ui.statistics .inverted.grey.statistic > .value,
.ui.inverted.grey.statistic > .value {
  color: #DCDDDE;
}
/*--------------
    Floated
---------------*/
.ui[class*="left floated"].statistic {
  float: left;
  margin: 0em 2em 1em 0em;
}
.ui[class*="right floated"].statistic {
  float: right;
  margin: 0em 0em 1em 2em;
}
.ui.floated.statistic:last-child {
  margin-bottom: 0em;
}
/*--------------
     Sizes
---------------*/
/* Mini */
.ui.mini.statistics .statistic > .value,
.ui.mini.statistic > .value {
  font-size: 1.5rem !important;
}
.ui.mini.horizontal.statistics .statistic > .value,
.ui.mini.horizontal.statistic > .value {
  font-size: 1.5rem !important;
}
.ui.mini.statistics .statistic > .text.value,
.ui.mini.statistic > .text.value {
  font-size: 1rem !important;
}
/* Tiny */
.ui.tiny.statistics .statistic > .value,
.ui.tiny.statistic > .value {
  font-size: 2rem !important;
}
.ui.tiny.horizontal.statistics .statistic > .value,
.ui.tiny.horizontal.statistic > .value {
  font-size: 2rem !important;
}
.ui.tiny.statistics .statistic > .text.value,
.ui.tiny.statistic > .text.value {
  font-size: 1rem !important;
}
/* Small */
.ui.small.statistics .statistic > .value,
.ui.small.statistic > .value {
  font-size: 3rem !important;
}
.ui.small.horizontal.statistics .statistic > .value,
.ui.small.horizontal.statistic > .value {
  font-size: 2rem !important;
}
.ui.small.statistics .statistic > .text.value,
.ui.small.statistic > .text.value {
  font-size: 1rem !important;
}
/* Medium */
.ui.statistics .statistic > .value,
.ui.statistic > .value {
  font-size: 4rem !important;
}
.ui.horizontal.statistics .statistic > .value,
.ui.horizontal.statistic > .value {
  font-size: 3rem !important;
}
.ui.statistics .statistic > .text.value,
.ui.statistic > .text.value {
  font-size: 2rem !important;
}
/* Large */
.ui.large.statistics .statistic > .value,
.ui.large.statistic > .value {
  font-size: 5rem !important;
}
.ui.large.horizontal.statistics .statistic > .value,
.ui.large.horizontal.statistic > .value {
  font-size: 4rem !important;
}
.ui.large.statistics .statistic > .text.value,
.ui.large.statistic > .text.value {
  font-size: 2.5rem !important;
}
/* Huge */
.ui.huge.statistics .statistic > .value,
.ui.huge.statistic > .value {
  font-size: 6rem !important;
}
.ui.huge.horizontal.statistics .statistic > .value,
.ui.huge.horizontal.statistic > .value {
  font-size: 5rem !important;
}
.ui.huge.statistics .statistic > .text.value,
.ui.huge.statistic > .text.value {
  font-size: 2.5rem !important;
}
/* Modules */
/*!
 * # Semantic UI - Accordion
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
           Accordion
*******************************/
/* Title */
/* Icon */
/* Child Accordion */
/* Content */
/*-------------------
       Coupling
--------------------*/
/*-------------------
       States
--------------------*/
/*-------------------
      Variations
--------------------*/
/* Styled */
/* Content */
/* Child Content */
/* Styled Title */
/* Styled Title States */
/* Styled Child Title States */
/* Inverted */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Accordion
*******************************/
.ui.accordion,
.ui.accordion .accordion {
  max-width: 100%;
}
.ui.accordion .accordion {
  margin: 1em 0em 0em;
  padding: 0em;
}
/* Title */
.ui.accordion .title,
.ui.accordion .accordion .title {
  cursor: pointer;
}
/* Default Styling */
.ui.accordion .title:not(.ui) {
  padding: 0.5em 0em;
  font-family: 'Lato', sans-serif;
  font-size: 1em;
  color: rgba(0, 0, 0, 0.87);
}
/* Content */
.ui.accordion .title ~ .content,
.ui.accordion .accordion .title ~ .content {
  display: none;
}
/* Default Styling */
.ui.accordion:not(.styled) .title ~ .content:not(.ui),
.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) {
  margin: '';
  padding: 0.5em 0em 1em;
}
.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child {
  padding-bottom: 0em;
}
/* Arrow */
.ui.accordion .title .dropdown.icon,
.ui.accordion .accordion .title .dropdown.icon {
  display: inline-block;
  float: none;
  opacity: 1;
  width: 1.25em;
  height: 1em;
  margin: 0em 0.25rem 0em 0rem;
  padding: 0em;
  font-size: 1em;
  transition: transform 0.1s ease, opacity 0.1s ease;
  vertical-align: baseline;
  transform: none;
}
/*--------------
    Coupling
---------------*/
/* Menu */
.ui.accordion.menu .item .title {
  display: block;
  padding: 0em;
}
.ui.accordion.menu .item .title > .dropdown.icon {
  float: right;
  margin: 0.21425em 0em 0em 1em;
  transform: rotate(180deg);
}
/* Header */
.ui.accordion .ui.header .dropdown.icon {
  font-size: 1em;
  margin: 0em 0.25rem 0em 0rem;
}
/*******************************
            States
*******************************/
.ui.accordion .active.title .dropdown.icon,
.ui.accordion .accordion .active.title .dropdown.icon {
  transform: rotate(90deg);
}
.ui.accordion.menu .item .active.title > .dropdown.icon {
  transform: rotate(90deg);
}
/*******************************
            Types
*******************************/
/*--------------
     Styled
---------------*/
.ui.styled.accordion {
  width: 600px;
}
.ui.styled.accordion,
.ui.styled.accordion .accordion {
  border-radius: 0.28571429rem;
  background: #FFFFFF;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15);
}
.ui.styled.accordion .title,
.ui.styled.accordion .accordion .title {
  margin: 0em;
  padding: 0.75em 1em;
  color: rgba(0, 0, 0, 0.4);
  font-weight: bold;
  border-top: 1px solid rgba(34, 36, 38, 0.15);
  transition: background 0.1s ease, color 0.1s ease;
}
.ui.styled.accordion > .title:first-child,
.ui.styled.accordion .accordion .title:first-child {
  border-top: none;
}
/* Content */
.ui.styled.accordion .content,
.ui.styled.accordion .accordion .content {
  margin: 0em;
  padding: 0.5em 1em 1.5em;
}
.ui.styled.accordion .accordion .content {
  padding: 0em;
  padding: 0.5em 1em 1.5em;
}
/* Hover */
.ui.styled.accordion .title:hover,
.ui.styled.accordion .active.title,
.ui.styled.accordion .accordion .title:hover,
.ui.styled.accordion .accordion .active.title {
  background: transparent;
  color: rgba(0, 0, 0, 0.87);
}
.ui.styled.accordion .accordion .title:hover,
.ui.styled.accordion .accordion .active.title {
  background: transparent;
  color: rgba(0, 0, 0, 0.87);
}
/* Active */
.ui.styled.accordion .active.title {
  background: transparent;
  color: rgba(0, 0, 0, 0.95);
}
.ui.styled.accordion .accordion .active.title {
  background: transparent;
  color: rgba(0, 0, 0, 0.95);
}
/*******************************
            States
*******************************/
/*--------------
     Active
---------------*/
.ui.accordion .active.content,
.ui.accordion .accordion .active.content {
  display: block;
}
/*******************************
           Variations
*******************************/
/*--------------
     Fluid
---------------*/
.ui.fluid.accordion,
.ui.fluid.accordion .accordion {
  width: 100%;
}
/*--------------
     Inverted
---------------*/
.ui.inverted.accordion .title:not(.ui) {
  color: rgba(255, 255, 255, 0.9);
}
/*!
 * # Semantic UI - Checkbox
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Checkbox
*******************************/
/* Label */
/* 26px @ 14/em */
/* Checkbox */
/* Checkmark */
/* Label */
/*-------------------
        States
--------------------*/
/* Hover */
/* Pressed */
/* Focus */
/* Active */
/* Active Focus */
/* Indeterminate */
/* Disabled */
/*-------------------
        Types
--------------------*/
/* Radio */
/* Uses px to avoid rounding issues with circles */
/* 7px as unitless value from radio size */
/* Slider & Toggle Handle */
/* Slider */
/* Slider States */
/* Toggle */
/*-------------------
      Variations
--------------------*/
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
           Checkbox
*******************************/
/*--------------
    Content
---------------*/
.ui.checkbox {
  position: relative;
  display: inline-block;
  backface-visibility: hidden;
  outline: none;
  vertical-align: baseline;
  font-style: normal;
  min-height: 17px;
  font-size: 1rem;
  line-height: 17px;
  min-width: 17px;
}
/* HTML Checkbox */
.ui.checkbox input[type="checkbox"],
.ui.checkbox input[type="radio"] {
  cursor: pointer;
  position: absolute;
  top: 0px;
  left: 0px;
  opacity: 0 !important;
  outline: none;
  z-index: 3;
  width: 17px;
  height: 17px;
}
/*--------------
      Box
---------------*/
.ui.checkbox .box,
.ui.checkbox label {
  cursor: auto;
  position: relative;
  display: block;
  padding-left: 1.85714em;
  outline: none;
  font-size: 1em;
}
.ui.checkbox .box:before,
.ui.checkbox label:before {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 17px;
  height: 17px;
  content: '';
  background: #FFFFFF;
  border-radius: 0.21428571rem;
  transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease;
  border: 1px solid #D4D4D5;
}
/*--------------
    Checkmark
---------------*/
.ui.checkbox .box:after,
.ui.checkbox label:after {
  position: absolute;
  font-size: 14px;
  top: 0px;
  left: 0px;
  width: 17px;
  height: 17px;
  text-align: center;
  opacity: 0;
  color: rgba(0, 0, 0, 0.87);
  transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease;
}
/*--------------
      Label
---------------*/
/* Inside */
.ui.checkbox label,
.ui.checkbox + label {
  color: rgba(0, 0, 0, 0.87);
  transition: color 0.1s ease;
}
/* Outside */
.ui.checkbox + label {
  vertical-align: middle;
}
/*******************************
           States
*******************************/
/*--------------
      Hover
---------------*/
.ui.checkbox .box:hover::before,
.ui.checkbox label:hover::before {
  background: #FFFFFF;
  border-color: rgba(34, 36, 38, 0.35);
}
.ui.checkbox label:hover,
.ui.checkbox + label:hover {
  color: rgba(0, 0, 0, 0.8);
}
/*--------------
      Down
---------------*/
.ui.checkbox .box:active::before,
.ui.checkbox label:active::before {
  background: #F9FAFB;
  border-color: rgba(34, 36, 38, 0.35);
}
.ui.checkbox .box:active::after,
.ui.checkbox label:active::after {
  color: rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:active ~ label {
  color: rgba(0, 0, 0, 0.95);
}
/*--------------
     Focus
---------------*/
.ui.checkbox input:focus ~ .box:before,
.ui.checkbox input:focus ~ label:before {
  background: #FFFFFF;
  border-color: #96C8DA;
}
.ui.checkbox input:focus ~ .box:after,
.ui.checkbox input:focus ~ label:after {
  color: rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:focus ~ label {
  color: rgba(0, 0, 0, 0.95);
}
/*--------------
     Active
---------------*/
.ui.checkbox input:checked ~ .box:before,
.ui.checkbox input:checked ~ label:before {
  background: #FFFFFF;
  border-color: rgba(34, 36, 38, 0.35);
}
.ui.checkbox input:checked ~ .box:after,
.ui.checkbox input:checked ~ label:after {
  opacity: 1;
  color: rgba(0, 0, 0, 0.95);
}
/*--------------
  Indeterminate
---------------*/
.ui.checkbox input:not([type=radio]):indeterminate ~ .box:before,
.ui.checkbox input:not([type=radio]):indeterminate ~ label:before {
  background: #FFFFFF;
  border-color: rgba(34, 36, 38, 0.35);
}
.ui.checkbox input:not([type=radio]):indeterminate ~ .box:after,
.ui.checkbox input:not([type=radio]):indeterminate ~ label:after {
  opacity: 1;
  color: rgba(0, 0, 0, 0.95);
}
/*--------------
  Active Focus
---------------*/
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ .box:before,
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:before,
.ui.checkbox input:checked:focus ~ .box:before,
.ui.checkbox input:checked:focus ~ label:before {
  background: #FFFFFF;
  border-color: #96C8DA;
}
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ .box:after,
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:after,
.ui.checkbox input:checked:focus ~ .box:after,
.ui.checkbox input:checked:focus ~ label:after {
  color: rgba(0, 0, 0, 0.95);
}
/*--------------
    Read-Only
---------------*/
.ui.read-only.checkbox,
.ui.read-only.checkbox label {
  cursor: default;
}
/*--------------
     Disabled
---------------*/
.ui.disabled.checkbox .box:after,
.ui.disabled.checkbox label,
.ui.checkbox input[disabled] ~ .box:after,
.ui.checkbox input[disabled] ~ label {
  cursor: default !important;
  opacity: 0.5;
  color: #000000;
}
/*--------------
     Hidden
---------------*/
/* Initialized checkbox moves input below element
 to prevent manually triggering */
.ui.checkbox input.hidden {
  z-index: -1;
}
/* Selectable Label */
.ui.checkbox input.hidden + label {
  cursor: pointer;
  user-select: none;
}
/*******************************
             Types
*******************************/
/*--------------
     Radio
---------------*/
.ui.radio.checkbox {
  min-height: 15px;
}
.ui.radio.checkbox .box,
.ui.radio.checkbox label {
  padding-left: 1.85714em;
}
/* Box */
.ui.radio.checkbox .box:before,
.ui.radio.checkbox label:before {
  content: '';
  transform: none;
  width: 15px;
  height: 15px;
  border-radius: 500rem;
  top: 1px;
  left: 0px;
}
/* Bullet */
.ui.radio.checkbox .box:after,
.ui.radio.checkbox label:after {
  border: none;
  content: '' !important;
  width: 15px;
  height: 15px;
  line-height: 15px;
}
/* Radio Checkbox */
.ui.radio.checkbox .box:after,
.ui.radio.checkbox label:after {
  top: 1px;
  left: 0px;
  width: 15px;
  height: 15px;
  border-radius: 500rem;
  transform: scale(0.46666667);
  background-color: rgba(0, 0, 0, 0.87);
}
/* Focus */
.ui.radio.checkbox input:focus ~ .box:before,
.ui.radio.checkbox input:focus ~ label:before {
  background-color: #FFFFFF;
}
.ui.radio.checkbox input:focus ~ .box:after,
.ui.radio.checkbox input:focus ~ label:after {
  background-color: rgba(0, 0, 0, 0.95);
}
/* Indeterminate */
.ui.radio.checkbox input:indeterminate ~ .box:after,
.ui.radio.checkbox input:indeterminate ~ label:after {
  opacity: 0;
}
/* Active */
.ui.radio.checkbox input:checked ~ .box:before,
.ui.radio.checkbox input:checked ~ label:before {
  background-color: #FFFFFF;
}
.ui.radio.checkbox input:checked ~ .box:after,
.ui.radio.checkbox input:checked ~ label:after {
  background-color: rgba(0, 0, 0, 0.95);
}
/* Active Focus */
.ui.radio.checkbox input:focus:checked ~ .box:before,
.ui.radio.checkbox input:focus:checked ~ label:before {
  background-color: #FFFFFF;
}
.ui.radio.checkbox input:focus:checked ~ .box:after,
.ui.radio.checkbox input:focus:checked ~ label:after {
  background-color: rgba(0, 0, 0, 0.95);
}
/*--------------
     Slider
---------------*/
.ui.slider.checkbox {
  min-height: 1.25rem;
}
/* Input */
.ui.slider.checkbox input {
  width: 3.5rem;
  height: 1.25rem;
}
/* Label */
.ui.slider.checkbox .box,
.ui.slider.checkbox label {
  padding-left: 4.5rem;
  line-height: 1rem;
  color: rgba(0, 0, 0, 0.4);
}
/* Line */
.ui.slider.checkbox .box:before,
.ui.slider.checkbox label:before {
  display: block;
  position: absolute;
  content: '';
  border: none !important;
  left: 0em;
  z-index: 1;
  top: 0.4rem;
  background-color: rgba(0, 0, 0, 0.05);
  width: 3.5rem;
  height: 0.21428571rem;
  transform: none;
  border-radius: 500rem;
  transition: background 0.3s ease;
}
/* Handle */
.ui.slider.checkbox .box:after,
.ui.slider.checkbox label:after {
  background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  position: absolute;
  content: '' !important;
  opacity: 1;
  z-index: 2;
  border: none;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
  width: 1.5rem;
  height: 1.5rem;
  top: -0.25rem;
  left: 0em;
  transform: none;
  border-radius: 500rem;
  transition: left 0.3s ease;
}
/* Focus */
.ui.slider.checkbox input:focus ~ .box:before,
.ui.slider.checkbox input:focus ~ label:before {
  background-color: rgba(0, 0, 0, 0.15);
  border: none;
}
/* Hover */
.ui.slider.checkbox .box:hover,
.ui.slider.checkbox label:hover {
  color: rgba(0, 0, 0, 0.8);
}
.ui.slider.checkbox .box:hover::before,
.ui.slider.checkbox label:hover::before {
  background: rgba(0, 0, 0, 0.15);
}
/* Active */
.ui.slider.checkbox input:checked ~ .box,
.ui.slider.checkbox input:checked ~ label {
  color: rgba(0, 0, 0, 0.95) !important;
}
.ui.slider.checkbox input:checked ~ .box:before,
.ui.slider.checkbox input:checked ~ label:before {
  background-color: #545454 !important;
}
.ui.slider.checkbox input:checked ~ .box:after,
.ui.slider.checkbox input:checked ~ label:after {
  left: 2rem;
}
/* Active Focus */
.ui.slider.checkbox input:focus:checked ~ .box,
.ui.slider.checkbox input:focus:checked ~ label {
  color: rgba(0, 0, 0, 0.95) !important;
}
.ui.slider.checkbox input:focus:checked ~ .box:before,
.ui.slider.checkbox input:focus:checked ~ label:before {
  background-color: #000000 !important;
}
/*--------------
     Toggle
---------------*/
.ui.toggle.checkbox {
  min-height: 1.5rem;
}
/* Input */
.ui.toggle.checkbox input {
  width: 3.5rem;
  height: 1.5rem;
}
/* Label */
.ui.toggle.checkbox .box,
.ui.toggle.checkbox label {
  min-height: 1.5rem;
  padding-left: 4.5rem;
  color: rgba(0, 0, 0, 0.87);
}
.ui.toggle.checkbox label {
  padding-top: 0.15em;
}
/* Switch */
.ui.toggle.checkbox .box:before,
.ui.toggle.checkbox label:before {
  display: block;
  position: absolute;
  content: '';
  z-index: 1;
  transform: none;
  border: none;
  top: 0rem;
  background: rgba(0, 0, 0, 0.05);
  box-shadow: none;
  width: 3.5rem;
  height: 1.5rem;
  border-radius: 500rem;
}
/* Handle */
.ui.toggle.checkbox .box:after,
.ui.toggle.checkbox label:after {
  background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05));
  position: absolute;
  content: '' !important;
  opacity: 1;
  z-index: 2;
  border: none;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
  width: 1.5rem;
  height: 1.5rem;
  top: 0rem;
  left: 0em;
  border-radius: 500rem;
  transition: background 0.3s ease, left 0.3s ease;
}
.ui.toggle.checkbox input ~ .box:after,
.ui.toggle.checkbox input ~ label:after {
  left: -0.05rem;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
}
/* Focus */
.ui.toggle.checkbox input:focus ~ .box:before,
.ui.toggle.checkbox input:focus ~ label:before {
  background-color: rgba(0, 0, 0, 0.15);
  border: none;
}
/* Hover */
.ui.toggle.checkbox .box:hover::before,
.ui.toggle.checkbox label:hover::before {
  background-color: rgba(0, 0, 0, 0.15);
  border: none;
}
/* Active */
.ui.toggle.checkbox input:checked ~ .box,
.ui.toggle.checkbox input:checked ~ label {
  color: rgba(0, 0, 0, 0.95) !important;
}
.ui.toggle.checkbox input:checked ~ .box:before,
.ui.toggle.checkbox input:checked ~ label:before {
  background-color: #2185D0 !important;
}
.ui.toggle.checkbox input:checked ~ .box:after,
.ui.toggle.checkbox input:checked ~ label:after {
  left: 2.15rem;
  box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
}
/* Active Focus */
.ui.toggle.checkbox input:focus:checked ~ .box,
.ui.toggle.checkbox input:focus:checked ~ label {
  color: rgba(0, 0, 0, 0.95) !important;
}
.ui.toggle.checkbox input:focus:checked ~ .box:before,
.ui.toggle.checkbox input:focus:checked ~ label:before {
  background-color: #0d71bb !important;
}
/*******************************
            Variations
*******************************/
/*--------------
     Fitted
---------------*/
.ui.fitted.checkbox .box,
.ui.fitted.checkbox label {
  padding-left: 0em !important;
}
.ui.fitted.toggle.checkbox,
.ui.fitted.toggle.checkbox {
  width: 3.5rem;
}
.ui.fitted.slider.checkbox,
.ui.fitted.slider.checkbox {
  width: 3.5rem;
}
/*******************************
         Site Overrides
*******************************/
/*******************************
         Site Overrides
*******************************/
/* We need to import the `themes/default/modules/checkbox.overrides` in order to make the checkbox working properly.
   This is needed because SUI is relying explicitly to your custom theme's `<component>.overrides`.
   See https://github.com/Semantic-Org/Semantic-UI/blob/master/src/theme.less#L59
*/
@font-face {
  font-family: 'Checkbox';
  src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype');
}
/* Checkmark */
.ui.checkbox label:after,
.ui.checkbox .box:after {
  font-family: 'Checkbox';
}
/* Checked */
.ui.checkbox input:checked ~ .box:after,
.ui.checkbox input:checked ~ label:after {
  content: '\e800';
}
/* Indeterminate */
.ui.checkbox input:indeterminate ~ .box:after,
.ui.checkbox input:indeterminate ~ label:after {
  font-size: 12px;
  content: '\e801';
}
/*  UTF Reference
.check:before { content: '\e800'; }
.dash:before  { content: '\e801'; }
.plus:before { content: '\e802'; }
*/
/*!
 * # Semantic UI - Dimmer
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Dimmer
*******************************/
/* Hidden (Default) */
/* Visible */
/*-------------------
        Types
--------------------*/
/* Page Dimmer*/
/*-------------------
      Variations
--------------------*/
/* Inverted */
/* Simple */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Dimmer
*******************************/
.dimmable:not(body) {
  position: relative;
}
.ui.dimmer {
  display: none;
  position: absolute;
  top: 0em !important;
  left: 0em !important;
  width: 100%;
  height: 100%;
  text-align: center;
  vertical-align: middle;
  padding: 1em;
  background-color: rgba(0, 0, 0, 0.85);
  opacity: 0;
  line-height: 1;
  animation-fill-mode: both;
  animation-duration: 0.5s;
  transition: background-color 0.5s linear;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  user-select: none;
  will-change: opacity;
  z-index: 1000;
}
/* Dimmer Content */
.ui.dimmer > .content {
  user-select: text;
  color: #FFFFFF;
}
/* Loose Coupling */
.ui.segment > .ui.dimmer {
  border-radius: inherit !important;
}
/* Scrollbars */
.ui.dimmer:not(.inverted)::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.1);
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.25);
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive {
  background: rgba(255, 255, 255, 0.15);
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.35);
}
/*******************************
            States
*******************************/
/* Animating */
.animating.dimmable:not(body),
.dimmed.dimmable:not(body) {
  overflow: hidden;
}
/* Animating / Active / Visible */
.dimmed.dimmable > .ui.animating.dimmer,
.dimmed.dimmable > .ui.visible.dimmer,
.ui.active.dimmer {
  display: flex;
  opacity: 1;
}
/* Disabled */
.ui.disabled.dimmer {
  width: 0 !important;
  height: 0 !important;
}
/*******************************
           Variations
*******************************/
/*--------------
    Legacy
---------------*/
/* Animating / Active / Visible */
.dimmed.dimmable > .ui.animating.legacy.dimmer,
.dimmed.dimmable > .ui.visible.legacy.dimmer,
.ui.active.legacy.dimmer {
  display: block;
}
/*--------------
    Alignment
---------------*/
.ui[class*="top aligned"].dimmer {
  justify-content: flex-start;
}
.ui[class*="bottom aligned"].dimmer {
  justify-content: flex-end;
}
/*--------------
      Page
---------------*/
.ui.page.dimmer {
  position: fixed;
  transform-style: '';
  perspective: 2000px;
  transform-origin: center center;
}
body.animating.in.dimmable,
body.dimmed.dimmable {
  overflow: hidden;
}
body.dimmable > .dimmer {
  position: fixed;
}
/*--------------
    Blurring
---------------*/
.blurring.dimmable > :not(.dimmer) {
  filter: blur(0px) grayscale(0);
  transition: 800ms filter ease;
}
.blurring.dimmed.dimmable > :not(.dimmer) {
  filter: blur(5px) grayscale(0.7);
}
/* Dimmer Color */
.blurring.dimmable > .dimmer {
  background-color: rgba(0, 0, 0, 0.6);
}
.blurring.dimmable > .inverted.dimmer {
  background-color: rgba(255, 255, 255, 0.6);
}
/*--------------
    Aligned
---------------*/
.ui.dimmer > .top.aligned.content > * {
  vertical-align: top;
}
.ui.dimmer > .bottom.aligned.content > * {
  vertical-align: bottom;
}
/*--------------
    Inverted
---------------*/
.ui.inverted.dimmer {
  background-color: rgba(255, 255, 255, 0.85);
}
.ui.inverted.dimmer > .content > * {
  color: #FFFFFF;
}
/*--------------
     Simple
---------------*/
/* Displays without javascript */
.ui.simple.dimmer {
  display: block;
  overflow: hidden;
  opacity: 1;
  width: 0%;
  height: 0%;
  z-index: -100;
  background-color: rgba(0, 0, 0, 0);
}
.dimmed.dimmable > .ui.simple.dimmer {
  overflow: visible;
  opacity: 1;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  z-index: 1;
}
.ui.simple.inverted.dimmer {
  background-color: rgba(255, 255, 255, 0);
}
.dimmed.dimmable > .ui.simple.inverted.dimmer {
  background-color: rgba(255, 255, 255, 0.85);
}
/*!
 * # Semantic UI - Dropdown
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Dropdown
*******************************/
/*-------------------
       Element
--------------------*/
/*-------------------
       Content
--------------------*/
/* Icon */
/* Current Text */
/* Menu */
/* Text */
/* Menu Item */
/* Sub Menu */
/* Menu Header */
/* Menu Divider */
/* Menu Input */
/* Menu Image */
/* Item Sub-Element */
/* Sub-Menu Dropdown Icon */
/* Description */
/* Message */
/* Floated Content */
/*-------------------
        Types
--------------------*/
/*------------
   Selection
--------------*/
/* <select> */
/* Responsive */
/* Derived */
/* 1px / em size */
/* Hover */
/* Focus */
/* Visible */
/* Visible Hover */
/*--------------
     Search
--------------*/
/* Search Selection */
/* Inline */
/*--------------
    Multiple
--------------*/
/* Split Actual Padding Between Child and Parent (allows for label spacing) */
/* Child Elements */
/* Dropdown Icon */
/* Selection Label */
/*-------------------
       States
--------------------*/
/* Hovered */
/* Default Text */
/* Loading */
/* Active Menu Item */
/* Selected */
/* Error */
/* Clearable */
/*-------------------
      Variations
--------------------*/
/* Scrolling */
/* 0px / em size */
/* Upward */
/* Flyout Direction */
/* Left */
/* Simple */
/* Floating */
/* Pointing */
/* Pointing Upward */
/* Packaged Theme */
/*******************************
    User Variable Overrides
*******************************/
/*******************************
    User Variable Overrides
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Dropdown
*******************************/
.ui.dropdown {
  cursor: pointer;
  position: relative;
  display: inline-block;
  outline: none;
  text-align: left;
  transition: box-shadow 0.1s ease, width 0.1s ease;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/*******************************
            Content
*******************************/
/*--------------
      Menu
---------------*/
.ui.dropdown .menu {
  cursor: auto;
  position: absolute;
  display: none;
  outline: none;
  top: 100%;
  min-width: max-content;
  margin: 0em;
  padding: 0em 0em;
  background: #FFFFFF;
  font-size: 1em;
  text-shadow: none;
  text-align: left;
  box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
  border: 1px solid rgba(34, 36, 38, 0.15);
  border-radius: 0.28571429rem;
  transition: opacity 0.1s ease;
  z-index: 11;
  will-change: transform, opacity;
}
.ui.dropdown .menu > * {
  white-space: nowrap;
}
/*--------------
  Hidden Input
---------------*/
.ui.dropdown > input:not(.search):first-child,
.ui.dropdown > select {
  display: none !important;
}
/*--------------
 Dropdown Icon
---------------*/
.ui.dropdown > .dropdown.icon {
  position: relative;
  width: auto;
  font-size: 0.85714286em;
  margin: 0em 0em 0em 1em;
}
.ui.dropdown .menu > .item .dropdown.icon {
  width: auto;
  float: right;
  margin: 0em 0em 0em 1em;
}
.ui.dropdown .menu > .item .dropdown.icon + .text {
  margin-right: 1em;
}
/*--------------
      Text
---------------*/
.ui.dropdown > .text {
  display: inline-block;
  transition: none;
}
/*--------------
    Menu Item
---------------*/
.ui.dropdown .menu > .item {
  position: relative;
  cursor: pointer;
  display: block;
  border: none;
  height: auto;
  text-align: left;
  border-top: none;
  line-height: 1em;
  color: rgba(0, 0, 0, 0.87);
  padding: 0.78571429rem 1.14285714rem !important;
  font-size: 1rem;
  text-transform: none;
  font-weight: normal;
  box-shadow: none;
  -webkit-touch-callout: none;
}
.ui.dropdown .menu > .item:first-child {
  border-top-width: 0px;
}
/*--------------
  Floated Content
---------------*/
.ui.dropdown > .text > [class*="right floated"],
.ui.dropdown .menu .item > [class*="right floated"] {
  float: right !important;
  margin-right: 0em !important;
  margin-left: 1em !important;
}
.ui.dropdown > .text > [class*="left floated"],
.ui.dropdown .menu .item > [class*="left floated"] {
  float: left !important;
  margin-left: 0em !important;
  margin-right: 1em !important;
}
.ui.dropdown .menu .item > .icon.floated,
.ui.dropdown .menu .item > .flag.floated,
.ui.dropdown .menu .item > .image.floated,
.ui.dropdown .menu .item > img.floated {
  margin-top: 0em;
}
/*--------------
  Menu Divider
---------------*/
.ui.dropdown .menu > .header {
  margin: 1rem 0rem 0.75rem;
  padding: 0em 1.14285714rem;
  color: rgba(0, 0, 0, 0.85);
  font-size: 0.78571429em;
  font-weight: bold;
  text-transform: uppercase;
}
.ui.dropdown .menu > .divider {
  border-top: 1px solid rgba(34, 36, 38, 0.1);
  height: 0em;
  margin: 0.5em 0em;
}
.ui.dropdown.dropdown .menu > .input {
  width: auto;
  display: flex;
  margin: 1.14285714rem 0.78571429rem;
  min-width: 10rem;
}
.ui.dropdown .menu > .header + .input {
  margin-top: 0em;
}
.ui.dropdown .menu > .input:not(.transparent) input {
  padding: 0.5em 1em;
}
.ui.dropdown .menu > .input:not(.transparent) .button,
.ui.dropdown .menu > .input:not(.transparent) .icon,
.ui.dropdown .menu > .input:not(.transparent) .label {
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}
/*-----------------
  Item Description
-------------------*/
.ui.dropdown > .text > .description,
.ui.dropdown .menu > .item > .description {
  float: right;
  margin: 0em 0em 0em 1em;
  color: rgba(0, 0, 0, 0.4);
}
/*-----------------
       Message
-------------------*/
.ui.dropdown .menu > .message {
  padding: 0.78571429rem 1.14285714rem;
  font-weight: normal;
}
.ui.dropdown .menu > .message:not(.ui) {
  color: rgba(0, 0, 0, 0.4);
}
/*--------------
    Sub Menu
---------------*/
.ui.dropdown .menu .menu {
  top: 0% !important;
  left: 100%;
  right: auto;
  margin: 0em 0em 0em -0.5em !important;
  border-radius: 0.28571429rem !important;
  z-index: 21 !important;
}
/* Hide Arrow */
.ui.dropdown .menu .menu:after {
  display: none;
}
/*--------------
   Sub Elements
---------------*/
/* Icons / Flags / Labels / Image */
.ui.dropdown > .text > .icon,
.ui.dropdown > .text > .label,
.ui.dropdown > .text > .flag,
.ui.dropdown > .text > img,
.ui.dropdown > .text > .image {
  margin-top: 0em;
}
.ui.dropdown .menu > .item > .icon,
.ui.dropdown .menu > .item > .label,
.ui.dropdown .menu > .item > .flag,
.ui.dropdown .menu > .item > .image,
.ui.dropdown .menu > .item > img {
  margin-top: 0em;
}
.ui.dropdown > .text > .icon,
.ui.dropdown > .text > .label,
.ui.dropdown > .text > .flag,
.ui.dropdown > .text > img,
.ui.dropdown > .text > .image,
.ui.dropdown .menu > .item > .icon,
.ui.dropdown .menu > .item > .label,
.ui.dropdown .menu > .item > .flag,
.ui.dropdown .menu > .item > .image,
.ui.dropdown .menu > .item > img {
  margin-left: 0em;
  float: none;
  margin-right: 0.78571429rem;
}
/*--------------
     Image
---------------*/
.ui.dropdown > .text > img,
.ui.dropdown > .text > .image,
.ui.dropdown .menu > .item > .image,
.ui.dropdown .menu > .item > img {
  display: inline-block;
  vertical-align: top;
  width: auto;
  margin-top: -0.5em;
  margin-bottom: -0.5em;
  max-height: 2em;
}
/*******************************
            Coupling
*******************************/
/*--------------
      Menu
---------------*/
/* Remove Menu Item Divider */
.ui.dropdown .ui.menu > .item:before,
.ui.menu .ui.dropdown .menu > .item:before {
  display: none;
}
/* Prevent Menu Item Border */
.ui.menu .ui.dropdown .menu .active.item {
  border-left: none;
}
/* Automatically float dropdown menu right on last menu item */
.ui.menu .right.menu .dropdown:last-child .menu,
.ui.menu .right.dropdown.item .menu,
.ui.buttons > .ui.dropdown:last-child .menu {
  left: auto;
  right: 0em;
}
/*--------------
      Label
---------------*/
/* Dropdown Menu */
.ui.label.dropdown .menu {
  min-width: 100%;
}
/*--------------
     Button
---------------*/
/* No Margin On Icon Button */
.ui.dropdown.icon.button > .dropdown.icon {
  margin: 0em;
}
.ui.button.dropdown .menu {
  min-width: 100%;
}
/*******************************
              Types
*******************************/
/*--------------
    Selection
---------------*/
/* Displays like a select box */
.ui.selection.dropdown {
  cursor: pointer;
  word-wrap: break-word;
  line-height: 1em;
  white-space: normal;
  outline: 0;
  transform: rotateZ(0deg);
  min-width: 14em;
  min-height: 2.71428571em;
  background: #FFFFFF;
  display: inline-block;
  padding: 0.78571429em 2.1em 0.78571429em 1em;
  color: rgba(0, 0, 0, 0.87);
  box-shadow: none;
  border: 1px solid rgba(34, 36, 38, 0.15);
  border-radius: 0.28571429rem;
  transition: box-shadow 0.1s ease, width 0.1s ease;
}
.ui.selection.dropdown.visible,
.ui.selection.dropdown.active {
  z-index: 10;
}
select.ui.dropdown {
  height: 38px;
  padding: 0.5em;
  border: 1px solid rgba(34, 36, 38, 0.15);
  visibility: visible;
}
.ui.selection.dropdown > .search.icon,
.ui.selection.dropdown > .delete.icon,
.ui.selection.dropdown > .dropdown.icon {
  cursor: pointer;
  position: absolute;
  width: auto;
  height: auto;
  line-height: 1.21428571em;
  top: 0.78571429em;
  right: 1em;
  z-index: 3;
  margin: -0.78571429em;
  padding: 0.91666667em;
  opacity: 0.8;
  transition: opacity 0.1s ease;
}
/* Compact */
.ui.compact.selection.dropdown {
  min-width: 0px;
}
/*  Selection Menu */
.ui.selection.dropdown .menu {
  overflow-x: hidden;
  overflow-y: auto;
  backface-visibility: hidden;
  -webkit-overflow-scrolling: touch;
  border-top-width: 0px !important;
  width: auto;
  outline: none;
  margin: 0px -1px;
  min-width: calc(100% +  2px );
  width: calc(100% +  2px );
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
  box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
  transition: opacity 0.1s ease;
}
.ui.selection.dropdown .menu:after,
.ui.selection.dropdown .menu:before {
  display: none;
}
/*--------------
    Message
---------------*/
.ui.selection.dropdown .menu > .message {
  padding: 0.78571429rem 1.14285714rem;
}
@media only screen and (max-width: 767px) {
  .ui.selection.dropdown .menu {
    max-height: 8.01428571rem;
  }
}
@media only screen and (min-width: 768px) {
  .ui.selection.dropdown .menu {
    max-height: 10.68571429rem;
  }
}
@media only screen and (min-width: 992px) {
  .ui.selection.dropdown .menu {
    max-height: 575px;
  }
}
@media only screen and (min-width: 1920px) {
  .ui.selection.dropdown .menu {
    max-height: 575px;
  }
}
/* Menu Item */
.ui.selection.dropdown .menu > .item {
  border-top: 1px solid #FAFAFA;
  padding: 0.78571429rem 1.14285714rem !important;
  white-space: normal;
  word-wrap: normal;
}
/* User Item */
.ui.selection.dropdown .menu > .hidden.addition.item {
  display: none;
}
/* Hover */
.ui.selection.dropdown:hover {
  border-color: rgba(34, 36, 38, 0.35);
  box-shadow: none;
}
/* Active */
.ui.selection.active.dropdown {
  border-color: #96C8DA;
  box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
.ui.selection.active.dropdown .menu {
  border-color: #96C8DA;
  box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
/* Focus */
.ui.selection.dropdown:focus {
  border-color: #96C8DA;
  box-shadow: none;
}
.ui.selection.dropdown:focus .menu {
  border-color: #96C8DA;
  box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
/* Visible */
.ui.selection.visible.dropdown > .text:not(.default) {
  font-weight: normal;
  color: rgba(0, 0, 0, 0.8);
}
/* Visible Hover */
.ui.selection.active.dropdown:hover {
  border-color: #96C8DA;
  box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
.ui.selection.active.dropdown:hover .menu {
  border-color: #96C8DA;
  box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
}
/* Dropdown Icon */
.ui.active.selection.dropdown > .dropdown.icon,
.ui.visible.selection.dropdown > .dropdown.icon {
  opacity: '';
  z-index: 3;
}
/* Connecting Border */
.ui.active.selection.dropdown {
  border-bottom-left-radius: 0em !important;
  border-bottom-right-radius: 0em !important;
}
/* Empty Connecting Border */
.ui.active.empty.selection.dropdown {
  border-radius: 0.28571429rem !important;
  box-shadow: none !important;
}
.ui.active.empty.selection.dropdown .menu {
  border: none !important;
  box-shadow: none !important;
}
/*--------------
   Searchable
---------------*/
/* Search Selection */
.ui.search.dropdown {
  min-width: '';
}
/* Search Dropdown */
.ui.search.dropdown > input.search {
  background: none transparent !important;
  border: none !important;
  box-shadow: none !important;
  cursor: text;
  top: 0em;
  left: 1px;
  width: 100%;
  outline: none;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
  padding: inherit;
}
/* Text Layering */
.ui.search.dropdown > input.search {
  position: absolute;
  z-index: 2;
}
.ui.search.dropdown > .text {
  cursor: text;
  position: relative;
  left: 1px;
  z-index: 3;
}
/* Search Selection */
.ui.search.selection.dropdown > input.search {
  line-height: 1.21428571em;
  padding: 0.67857143em 2.1em 0.67857143em 1em;
}
/* Used to size multi select input to character width */
.ui.search.selection.dropdown > span.sizer {
  line-height: 1.21428571em;
  padding: 0.67857143em 2.1em 0.67857143em 1em;
  display: none;
  white-space: pre;
}
/* Active/Visible Search */
.ui.search.dropdown.active > input.search,
.ui.search.dropdown.visible > input.search {
  cursor: auto;
}
.ui.search.dropdown.active > .text,
.ui.search.dropdown.visible > .text {
  pointer-events: none;
}
/* Filtered Text */
.ui.active.search.dropdown input.search:focus + .text .icon,
.ui.active.search.dropdown input.search:focus + .text .flag {
  opacity: 0.45;
}
.ui.active.search.dropdown input.search:focus + .text {
  color: rgba(115, 115, 115, 0.87) !important;
}
/* Search Menu */
.ui.search.dropdown .menu {
  overflow-x: hidden;
  overflow-y: auto;
  backface-visibility: hidden;
  -webkit-overflow-scrolling: touch;
}
@media only screen and (max-width: 767px) {
  .ui.search.dropdown .menu {
    max-height: 8.01428571rem;
  }
}
@media only screen and (min-width: 768px) {
  .ui.search.dropdown .menu {
    max-height: 10.68571429rem;
  }
}
@media only screen and (min-width: 992px) {
  .ui.search.dropdown .menu {
    max-height: 575px;
  }
}
@media only screen and (min-width: 1920px) {
  .ui.search.dropdown .menu {
    max-height: 575px;
  }
}
/*--------------
    Multiple
---------------*/
/* Multiple Selection */
.ui.multiple.dropdown {
  padding: 0.22619048em 2.1em 0.22619048em 0.35714286em;
}
.ui.multiple.dropdown .menu {
  cursor: auto;
}
/* Multiple Search Selection */
.ui.multiple.search.dropdown,
.ui.multiple.search.dropdown > input.search {
  cursor: text;
}
/* Selection Label */
.ui.multiple.dropdown > .label {
  user-select: none;
  display: inline-block;
  vertical-align: top;
  white-space: normal;
  font-size: 1em;
  padding: 0.35714286em 0.78571429em;
  margin: 0.14285714rem 0.28571429rem 0.14285714rem 0em;
  box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
}
/* Dropdown Icon */
.ui.multiple.dropdown .dropdown.icon {
  margin: '';
  padding: '';
}
/* Text */
.ui.multiple.dropdown > .text {
  position: static;
  padding: 0;
  max-width: 100%;
  margin: 0.45238095em 0em 0.45238095em 0.64285714em;
  line-height: 1.21428571em;
}
.ui.multiple.dropdown > .label ~ input.search {
  margin-left: 0.14285714em !important;
}
.ui.multiple.dropdown > .label ~ .text {
  display: none;
}
/*-----------------
  Multiple Search
-----------------*/
/* Prompt Text */
.ui.multiple.search.dropdown > .text {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  padding: inherit;
  margin: 0.45238095em 0em 0.45238095em 0.64285714em;
  line-height: 1.21428571em;
}
.ui.multiple.search.dropdown > .label ~ .text {
  display: none;
}
/* Search */
.ui.multiple.search.dropdown > input.search {
  position: static;
  padding: 0;
  max-width: 100%;
  margin: 0.45238095em 0em 0.45238095em 0.64285714em;
  width: 2.2em;
  line-height: 1.21428571em;
}
/*--------------
     Inline
---------------*/
.ui.inline.dropdown {
  cursor: pointer;
  display: inline-block;
  color: inherit;
}
.ui.inline.dropdown .dropdown.icon {
  margin: 0em 0.21428571em 0em 0.21428571em;
  vertical-align: baseline;
}
.ui.inline.dropdown > .text {
  font-weight: bold;
}
.ui.inline.dropdown .menu {
  cursor: auto;
  margin-top: 0.21428571em;
  border-radius: 0.28571429rem;
}
/*******************************
            States
*******************************/
/*--------------------
        Active
----------------------*/
/* Menu Item Active */
.ui.dropdown .menu .active.item {
  background: transparent;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.95);
  box-shadow: none;
  z-index: 12;
}
/*--------------------
        Hover
----------------------*/
/* Menu Item Hover */
.ui.dropdown .menu > .item:hover {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
  z-index: 13;
}
/*--------------------
       Loading
---------------------*/
.ui.loading.dropdown > i.icon {
  height: 1em !important;
}
.ui.loading.selection.dropdown > i.icon {
  padding: 1.5em 1.28571429em !important;
}
.ui.loading.dropdown > i.icon:before {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -0.64285714em 0em 0em -0.64285714em;
  width: 1.28571429em;
  height: 1.28571429em;
  border-radius: 500rem;
  border: 0.2em solid rgba(0, 0, 0, 0.1);
}
.ui.loading.dropdown > i.icon:after {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  box-shadow: 0px 0px 0px 1px transparent;
  margin: -0.64285714em 0em 0em -0.64285714em;
  width: 1.28571429em;
  height: 1.28571429em;
  animation: dropdown-spin 0.6s linear;
  animation-iteration-count: infinite;
  border-radius: 500rem;
  border-color: #767676 transparent transparent;
  border-style: solid;
  border-width: 0.2em;
}
/* Coupling */
.ui.loading.dropdown.button > i.icon:before,
.ui.loading.dropdown.button > i.icon:after {
  display: none;
}
@keyframes dropdown-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/*--------------------
     Default Text
----------------------*/
.ui.dropdown:not(.button) > .default.text,
.ui.default.dropdown:not(.button) > .text {
  color: rgba(191, 191, 191, 0.87);
}
.ui.dropdown:not(.button) > input:focus ~ .default.text,
.ui.default.dropdown:not(.button) > input:focus ~ .text {
  color: rgba(115, 115, 115, 0.87);
}
/*--------------------
        Loading
----------------------*/
.ui.loading.dropdown > .text {
  transition: none;
}
/* Used To Check Position */
.ui.dropdown .loading.menu {
  display: block;
  visibility: hidden;
  z-index: -1;
}
.ui.dropdown > .loading.menu {
  left: 0px !important;
  right: auto !important;
}
.ui.dropdown > .menu .loading.menu {
  left: 100% !important;
  right: auto !important;
}
/*--------------------
    Keyboard Select
----------------------*/
/* Selected Item */
.ui.dropdown.selected,
.ui.dropdown .menu .selected.item {
  background: rgba(0, 0, 0, 0.03);
  color: rgba(0, 0, 0, 0.95);
}
/*--------------------
    Search Filtered
----------------------*/
/* Filtered Item */
.ui.dropdown > .filtered.text {
  visibility: hidden;
}
.ui.dropdown .filtered.item {
  display: none !important;
}
/*--------------------
        Error
----------------------*/
.ui.dropdown.error,
.ui.dropdown.error > .text,
.ui.dropdown.error > .default.text {
  color: #9F3A38;
}
.ui.selection.dropdown.error {
  background: #FFF6F6;
  border-color: #E0B4B4;
}
.ui.selection.dropdown.error:hover {
  border-color: #E0B4B4;
}
.ui.dropdown.error > .menu,
.ui.dropdown.error > .menu .menu {
  border-color: #E0B4B4;
}
.ui.dropdown.error > .menu > .item {
  color: #9F3A38;
}
.ui.multiple.selection.error.dropdown > .label {
  border-color: #E0B4B4;
}
/* Item Hover */
.ui.dropdown.error > .menu > .item:hover {
  background-color: #FFF2F2;
}
/* Item Active */
.ui.dropdown.error > .menu .active.item {
  background-color: #FDCFCF;
}
/*--------------------
        Clear
----------------------*/
.ui.dropdown > .clear.dropdown.icon {
  opacity: 0.8;
  transition: opacity 0.1s ease;
}
.ui.dropdown > .clear.dropdown.icon:hover {
  opacity: 1;
}
/*--------------------
        Disabled
----------------------*/
/* Disabled */
.ui.disabled.dropdown,
.ui.dropdown .menu > .disabled.item {
  cursor: default;
  pointer-events: none;
  opacity: 0.45;
}
/*******************************
           Variations
*******************************/
/*--------------
    Direction
---------------*/
/* Flyout Direction */
.ui.dropdown .menu {
  left: 0px;
}
/* Default Side (Right) */
.ui.dropdown .right.menu > .menu,
.ui.dropdown .menu .right.menu {
  left: 100% !important;
  right: auto !important;
  border-radius: 0.28571429rem !important;
}
/* Leftward Opening Menu */
.ui.dropdown > .left.menu {
  left: auto !important;
  right: 0px !important;
}
.ui.dropdown > .left.menu .menu,
.ui.dropdown .menu .left.menu {
  left: auto;
  right: 100%;
  margin: 0em -0.5em 0em 0em !important;
  border-radius: 0.28571429rem !important;
}
.ui.dropdown .item .left.dropdown.icon,
.ui.dropdown .left.menu .item .dropdown.icon {
  width: auto;
  float: left;
  margin: 0em 0em 0em 0em;
}
.ui.dropdown .item .left.dropdown.icon,
.ui.dropdown .left.menu .item .dropdown.icon {
  width: auto;
  float: left;
  margin: 0em 0em 0em 0em;
}
.ui.dropdown .item .left.dropdown.icon + .text,
.ui.dropdown .left.menu .item .dropdown.icon + .text {
  margin-left: 1em;
  margin-right: 0em;
}
/*--------------
     Upward
---------------*/
/* Upward Main Menu */
.ui.upward.dropdown > .menu {
  top: auto;
  bottom: 100%;
  box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.08);
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
/* Upward Sub Menu */
.ui.dropdown .upward.menu {
  top: auto !important;
  bottom: 0 !important;
}
/* Active Upward */
.ui.simple.upward.active.dropdown,
.ui.simple.upward.dropdown:hover {
  border-radius: 0.28571429rem 0.28571429rem 0em 0em !important;
}
.ui.upward.dropdown.button:not(.pointing):not(.floating).active {
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
/* Selection */
.ui.upward.selection.dropdown .menu {
  border-top-width: 1px !important;
  border-bottom-width: 0px !important;
  box-shadow: 0px -2px 3px 0px rgba(0, 0, 0, 0.08);
}
.ui.upward.selection.dropdown:hover {
  box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.05);
}
/* Active Upward */
.ui.active.upward.selection.dropdown {
  border-radius: 0em 0em 0.28571429rem 0.28571429rem !important;
}
/* Visible Upward */
.ui.upward.selection.dropdown.visible {
  box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.08);
  border-radius: 0em 0em 0.28571429rem 0.28571429rem !important;
}
/* Visible Hover Upward */
.ui.upward.active.selection.dropdown:hover {
  box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.05);
}
.ui.upward.active.selection.dropdown:hover .menu {
  box-shadow: 0px -2px 3px 0px rgba(0, 0, 0, 0.08);
}
/*--------------
     Simple
---------------*/
/*  Selection Menu */
.ui.scrolling.dropdown .menu,
.ui.dropdown .scrolling.menu {
  overflow-x: hidden;
  overflow-y: auto;
}
.ui.scrolling.dropdown .menu {
  overflow-x: hidden;
  overflow-y: auto;
  backface-visibility: hidden;
  -webkit-overflow-scrolling: touch;
  min-width: 100% !important;
  width: auto !important;
}
.ui.dropdown .scrolling.menu {
  position: static;
  overflow-y: auto;
  border: none;
  box-shadow: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  min-width: 100% !important;
  width: auto !important;
  border-top: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.scrolling.dropdown .menu .item.item.item,
.ui.dropdown .scrolling.menu > .item.item.item {
  border-top: none;
}
.ui.scrolling.dropdown .menu .item:first-child,
.ui.dropdown .scrolling.menu .item:first-child {
  border-top: none;
}
.ui.dropdown > .animating.menu .scrolling.menu,
.ui.dropdown > .visible.menu .scrolling.menu {
  display: block;
}
/* Scrollbar in IE */
@media all and (-ms-high-contrast: none) {
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu {
    min-width: calc(100% - 17px);
  }
}
@media only screen and (max-width: 767px) {
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu {
    max-height: 10.28571429rem;
  }
}
@media only screen and (min-width: 768px) {
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu {
    max-height: 15.42857143rem;
  }
}
@media only screen and (min-width: 992px) {
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu {
    max-height: 20.57142857rem;
  }
}
@media only screen and (min-width: 1920px) {
  .ui.scrolling.dropdown .menu,
  .ui.dropdown .scrolling.menu {
    max-height: 20.57142857rem;
  }
}
/*--------------
     Simple
---------------*/
/* Displays without javascript */
.ui.simple.dropdown .menu:before,
.ui.simple.dropdown .menu:after {
  display: none;
}
.ui.simple.dropdown .menu {
  position: absolute;
  display: block;
  overflow: hidden;
  top: -9999px !important;
  opacity: 0;
  width: 0;
  height: 0;
  transition: opacity 0.1s ease;
}
.ui.simple.active.dropdown,
.ui.simple.dropdown:hover {
  border-bottom-left-radius: 0em !important;
  border-bottom-right-radius: 0em !important;
}
.ui.simple.active.dropdown > .menu,
.ui.simple.dropdown:hover > .menu {
  overflow: visible;
  width: auto;
  height: auto;
  top: 100% !important;
  opacity: 1;
}
.ui.simple.dropdown > .menu > .item:active > .menu,
.ui.simple.dropdown:hover > .menu > .item:hover > .menu {
  overflow: visible;
  width: auto;
  height: auto;
  top: 0% !important;
  left: 100% !important;
  opacity: 1;
}
.ui.simple.disabled.dropdown:hover .menu {
  display: none;
  height: 0px;
  width: 0px;
  overflow: hidden;
}
/* Visible */
.ui.simple.visible.dropdown > .menu {
  display: block;
}
/*--------------
      Fluid
---------------*/
.ui.fluid.dropdown {
  display: block;
  width: 100%;
  min-width: 0em;
}
.ui.fluid.dropdown > .dropdown.icon {
  float: right;
}
/*--------------
    Floating
---------------*/
.ui.floating.dropdown .menu {
  left: 0;
  right: auto;
  box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15) !important;
  border-radius: 0.28571429rem !important;
}
.ui.floating.dropdown > .menu {
  margin-top: 0.5em !important;
  border-radius: 0.28571429rem !important;
}
/*--------------
     Pointing
---------------*/
.ui.pointing.dropdown > .menu {
  top: 100%;
  margin-top: 0.78571429rem;
  border-radius: 0.28571429rem;
}
.ui.pointing.dropdown > .menu:after {
  display: block;
  position: absolute;
  pointer-events: none;
  content: '';
  visibility: visible;
  transform: rotate(45deg);
  width: 0.5em;
  height: 0.5em;
  box-shadow: -1px -1px 0px 0px rgba(34, 36, 38, 0.15);
  background: #FFFFFF;
  z-index: 2;
}
.ui.pointing.dropdown > .menu:after {
  top: -0.25em;
  left: 50%;
  margin: 0em 0em 0em -0.25em;
}
/* Top Left Pointing */
.ui.top.left.pointing.dropdown > .menu {
  top: 100%;
  bottom: auto;
  left: 0%;
  right: auto;
  margin: 1em 0em 0em;
}
.ui.top.left.pointing.dropdown > .menu {
  top: 100%;
  bottom: auto;
  left: 0%;
  right: auto;
  margin: 1em 0em 0em;
}
.ui.top.left.pointing.dropdown > .menu:after {
  top: -0.25em;
  left: 1em;
  right: auto;
  margin: 0em;
  transform: rotate(45deg);
}
/* Top Right Pointing */
.ui.top.right.pointing.dropdown > .menu {
  top: 100%;
  bottom: auto;
  right: 0%;
  left: auto;
  margin: 1em 0em 0em;
}
.ui.top.pointing.dropdown > .left.menu:after,
.ui.top.right.pointing.dropdown > .menu:after {
  top: -0.25em;
  left: auto !important;
  right: 1em !important;
  margin: 0em;
  transform: rotate(45deg);
}
/* Left Pointing */
.ui.left.pointing.dropdown > .menu {
  top: 0%;
  left: 100%;
  right: auto;
  margin: 0em 0em 0em 1em;
}
.ui.left.pointing.dropdown > .menu:after {
  top: 1em;
  left: -0.25em;
  margin: 0em 0em 0em 0em;
  transform: rotate(-45deg);
}
.ui.left:not(.top):not(.bottom).pointing.dropdown > .left.menu {
  left: auto !important;
  right: 100% !important;
  margin: 0em 1em 0em 0em;
}
.ui.left:not(.top):not(.bottom).pointing.dropdown > .left.menu:after {
  top: 1em;
  left: auto;
  right: -0.25em;
  margin: 0em 0em 0em 0em;
  transform: rotate(135deg);
}
/* Right Pointing */
.ui.right.pointing.dropdown > .menu {
  top: 0%;
  left: auto;
  right: 100%;
  margin: 0em 1em 0em 0em;
}
.ui.right.pointing.dropdown > .menu:after {
  top: 1em;
  left: auto;
  right: -0.25em;
  margin: 0em 0em 0em 0em;
  transform: rotate(135deg);
}
/* Bottom Pointing */
.ui.bottom.pointing.dropdown > .menu {
  top: auto;
  bottom: 100%;
  left: 0%;
  right: auto;
  margin: 0em 0em 1em;
}
.ui.bottom.pointing.dropdown > .menu:after {
  top: auto;
  bottom: -0.25em;
  right: auto;
  margin: 0em;
  transform: rotate(-135deg);
}
/* Reverse Sub-Menu Direction */
.ui.bottom.pointing.dropdown > .menu .menu {
  top: auto !important;
  bottom: 0px !important;
}
/* Bottom Left */
.ui.bottom.left.pointing.dropdown > .menu {
  left: 0%;
  right: auto;
}
.ui.bottom.left.pointing.dropdown > .menu:after {
  left: 1em;
  right: auto;
}
/* Bottom Right */
.ui.bottom.right.pointing.dropdown > .menu {
  right: 0%;
  left: auto;
}
.ui.bottom.right.pointing.dropdown > .menu:after {
  left: auto;
  right: 1em;
}
/* Upward pointing */
.ui.pointing.upward.dropdown .menu,
.ui.top.pointing.upward.dropdown .menu {
  top: auto !important;
  bottom: 100% !important;
  margin: 0em 0em 0.78571429rem;
  border-radius: 0.28571429rem;
}
.ui.pointing.upward.dropdown .menu:after,
.ui.top.pointing.upward.dropdown .menu:after {
  top: 100% !important;
  bottom: auto !important;
  box-shadow: 1px 1px 0px 0px rgba(34, 36, 38, 0.15);
  margin: -0.25em 0em 0em;
}
/* Right Pointing Upward */
.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu {
  top: auto !important;
  bottom: 0 !important;
  margin: 0em 1em 0em 0em;
}
.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after {
  top: auto !important;
  bottom: 0 !important;
  margin: 0em 0em 1em 0em;
  box-shadow: -1px -1px 0px 0px rgba(34, 36, 38, 0.15);
}
/* Left Pointing Upward */
.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu {
  top: auto !important;
  bottom: 0 !important;
  margin: 0em 0em 0em 1em;
}
.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after {
  top: auto !important;
  bottom: 0 !important;
  margin: 0em 0em 1em 0em;
  box-shadow: -1px -1px 0px 0px rgba(34, 36, 38, 0.15);
}
/*******************************
         Site Overrides
*******************************/
/*******************************
        User Overrides
*******************************/
/* Dropdown Carets */
@font-face {
  font-family: 'Dropdown';
  src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAVgAA8AAAAACFAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAchGgaq0dERUYAAAF0AAAAHAAAAB4AJwAPT1MvMgAAAZAAAABDAAAAVnW4TJdjbWFwAAAB1AAAAEsAAAFS8CcaqmN2dCAAAAIgAAAABAAAAAQAEQFEZ2FzcAAAAiQAAAAIAAAACP//AANnbHlmAAACLAAAAQoAAAGkrRHP9WhlYWQAAAM4AAAAMAAAADYPK8YyaGhlYQAAA2gAAAAdAAAAJANCAb1obXR4AAADiAAAACIAAAAiCBkAOGxvY2EAAAOsAAAAFAAAABQBnAIybWF4cAAAA8AAAAAfAAAAIAEVAF5uYW1lAAAD4AAAATAAAAKMFGlj5HBvc3QAAAUQAAAARgAAAHJoedjqd2ViZgAABVgAAAAGAAAABrO7W5UAAAABAAAAANXulPUAAAAA1r4hgAAAAADXu2Q1eNpjYGRgYOABYjEgZmJgBEIOIGYB8xgAA/YAN3jaY2BktGOcwMDKwMI4jTGNgYHBHUp/ZZBkaGFgYGJgZWbACgLSXFMYHFT/fLjFeOD/AQY9xjMMbkBhRpAcAN48DQYAeNpjYGBgZoBgGQZGBhDwAfIYwXwWBgMgzQGETAwMqn8+8H649f8/lHX9//9b7Pzf+fWgusCAkY0BzmUE6gHpQwGMDMMeAACbxg7SAAARAUQAAAAB//8AAnjadZBPSsNAGMXfS+yMqYgOhpSuSlKadmUhiVEhEMQzFF22m17BbbvzCh5BXCUn6EG8gjeQ4DepwYo4i+/ffL95j4EDA+CFC7jQuKyIeVHrI3wkleq9F7XrSInKteOeHdda8bOoaeepSc00NWPz/LRec9G8GabyGtEdF7h19z033GAMTK7zbM42xNEZpzYof0RtQ5CUHAQJ73OtVyutc+3b7Ou//b8XNlsPx3jgjUifABdhEohKJJL5iM5p39uqc7X1+sRQSqmGrUVhlsJ4lpmEUVwyT8SUYtg0P9DyNzPADDs+tjrGV6KRCRfsui3eHcL4/p8ZXvfMlcnEU+CLv7hDykOP+AKTPTxbAAB42mNgZGBgAGKuf5KP4vltvjLIMzGAwLV9ig0g+vruFFMQzdjACOJzMIClARh0CTJ42mNgZGBgPPD/AJD8wgAEjA0MjAyogAMAbOQEAQAAAAC7ABEAAAAAAKoAAAH0AAABgAAAAUAACAFAAAgAwAAXAAAAAAAAACoAKgAqADIAbACGAKAAugDSeNpjYGRgYOBkUGFgYgABEMkFhAwM/xn0QAIADdUBdAB42qWQvUoDQRSFv3GjaISUQaymSmGxJoGAsRC0iPYLsU50Y6IxrvlRtPCJJKUPIBb+PIHv4EN4djKuKAqCDHfmu+feOdwZoMCUAJNbAlYUMzaUlM14jjxbngOq7HnOia89z1Pk1vMCa9x7ztPkzfMyJbPj+ZGi6Xp+omxuPD+zaD7meaFg7mb8GrBqHmhwxoAxlm0uiRkpP9X5m26pKRoMxTGR1D49Dv/Yb/91o6l8qL6eu5n2hZQzn68utR9m3FU2cB4t9cdSLG2utI+44Eh/P9bqKO+oJ/WxmXssj77YkrjasZQD6SFddythk3Wtzrf+UF2p076Udla1VNzsERP3kkjVRKel7mp1udXYcHtZSlV7RfmJe1GiFWveluaeKD5/MuJcSk8Tpm/vvwPIbmJleNpjYGKAAFYG7ICTgYGRiZGZkYWRlZGNkZ2Rg5GTLT2nsiDDEEIZsZfmZRqZujmDaDcDAxcI7WIOpS2gtCWUdgQAZkcSmQAAAAFblbO6AAA=) format('woff');
  font-weight: normal;
  font-style: normal;
}
.ui.dropdown > .dropdown.icon {
  font-family: 'Dropdown';
  line-height: 1;
  height: 1em;
  width: 1.23em;
  backface-visibility: hidden;
  font-weight: normal;
  font-style: normal;
  text-align: center;
}
.ui.dropdown > .dropdown.icon {
  width: auto;
}
.ui.dropdown > .dropdown.icon:before {
  content: '\f0d7';
}
/* Sub Menu */
.ui.dropdown .menu .item .dropdown.icon:before {
  content: '\f0da' /*rtl:'\f0d9'*/;
}
.ui.dropdown .item .left.dropdown.icon:before,
.ui.dropdown .left.menu .item .dropdown.icon:before {
  content: "\f0d9" /*rtl:"\f0da"*/;
}
/* Vertical Menu Dropdown */
.ui.vertical.menu .dropdown.item > .dropdown.icon:before {
  content: "\f0da" /*rtl:"\f0d9"*/;
}
.ui.dropdown > .clear.icon:before {
  content: "\f00d";
}
.ui.dropdown.share-link-dropdown {
  line-height: normal;
}
/* Icons for Reference (Subsetted in 2.4.0)
  .dropdown.down:before { content: "\f0d7"; }
  .dropdown.up:before { content: "\f0d8"; }
  .dropdown.left:before { content: "\f0d9"; }
  .dropdown.right:before { content: "\f0da"; }
  .dropdown.close:before { content: "\f00d"; }
*/
/*!
 * # Semantic UI - Video
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Video
*******************************/
/*-------------------
       Element
--------------------*/
/* Simple */
/* Placeholder */
/* Placeholder Overlayed Background */
/* Icon */
/*-------------------
       States
--------------------*/
/* Hover */
/*-------------------
      Variations
--------------------*/
/* Aspect Ratios */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Types
*******************************/
.ui.embed {
  position: relative;
  max-width: 100%;
  height: 0px;
  overflow: hidden;
  background: #DCDDDE;
  padding-bottom: 56.25%;
}
/*-----------------
  Embedded Content
------------------*/
.ui.embed iframe,
.ui.embed embed,
.ui.embed object {
  position: absolute;
  border: none;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  margin: 0em;
  padding: 0em;
}
/*-----------------
      Embed
------------------*/
.ui.embed > .embed {
  display: none;
}
/*--------------
   Placeholder
---------------*/
.ui.embed > .placeholder {
  position: absolute;
  cursor: pointer;
  top: 0px;
  left: 0px;
  display: block;
  width: 100%;
  height: 100%;
  background-color: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
}
/*--------------
      Icon
---------------*/
.ui.embed > .icon {
  cursor: pointer;
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.ui.embed > .icon:after {
  position: absolute;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  z-index: 3;
  content: '';
  background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
  opacity: 0.5;
  transition: opacity 0.5s ease;
}
.ui.embed > .icon:before {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 4;
  transform: translateX(-50%) translateY(-50%);
  color: #FFFFFF;
  font-size: 6rem;
  text-shadow: 0px 2px 10px rgba(34, 36, 38, 0.2);
  transition: opacity 0.5s ease, color 0.5s ease;
  z-index: 10;
}
/*******************************
            States
*******************************/
/*--------------
     Hover
---------------*/
.ui.embed .icon:hover:after {
  background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
  opacity: 1;
}
.ui.embed .icon:hover:before {
  color: #FFFFFF;
}
/*--------------
     Active
---------------*/
.ui.active.embed > .icon,
.ui.active.embed > .placeholder {
  display: none;
}
.ui.active.embed > .embed {
  display: block;
}
/*******************************
          Variations
*******************************/
.ui.square.embed {
  padding-bottom: 100%;
}
.ui[class*="4:3"].embed {
  padding-bottom: 75%;
}
.ui[class*="16:9"].embed {
  padding-bottom: 56.25%;
}
.ui[class*="21:9"].embed {
  padding-bottom: 42.85714286%;
}
/*!
 * # Semantic UI - Modal
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Modal
*******************************/
/* Close Icon */
/* Header */
/* Content */
/* Image / Description */
/* Modal Actions */
/* Inner Close Position (Tablet/Mobile) */
/* Mobile Positions */
/* Responsive Widths */
/* Coupling */
/*-------------------
       States
--------------------*/
/*-------------------
        Types
--------------------*/
/* Basic */
/* Top Aligned */
/* Scrolling Margin */
/* Scrolling Content */
/*-------------------
      Variations
--------------------*/
/* Size Widths */
/* Derived Responsive Sizes */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Modal
*******************************/
.ui.modal {
  position: absolute;
  display: none;
  z-index: 1001;
  text-align: left;
  background: #FFFFFF;
  border: none;
  box-shadow: 1px 3px 3px 0px rgba(0, 0, 0, 0.2), 1px 3px 15px 2px rgba(0, 0, 0, 0.2);
  transform-origin: 50% 25%;
  flex: 0 0 auto;
  border-radius: 0.28571429rem;
  user-select: text;
  will-change: top, left, margin, transform, opacity;
}
.ui.modal > :first-child:not(.icon),
.ui.modal > .icon:first-child + * {
  border-top-left-radius: 0.28571429rem;
  border-top-right-radius: 0.28571429rem;
}
.ui.modal > :last-child {
  border-bottom-left-radius: 0.28571429rem;
  border-bottom-right-radius: 0.28571429rem;
}
/*******************************
            Content
*******************************/
/*--------------
     Close
---------------*/
.ui.modal > .close {
  cursor: pointer;
  position: absolute;
  top: -2.5rem;
  right: -2.5rem;
  z-index: 1;
  opacity: 0.8;
  font-size: 1.25em;
  color: #FFFFFF;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0.625rem 0rem 0rem 0rem;
}
.ui.modal > .close:hover {
  opacity: 1;
}
/*--------------
     Header
---------------*/
.ui.modal > .header {
  display: block;
  font-family: 'Lato', sans-serif;
  background: #FFFFFF;
  margin: 0em;
  padding: 1.25rem 1.5rem;
  box-shadow: none;
  color: rgba(0, 0, 0, 0.85);
  border-bottom: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.modal > .header:not(.ui) {
  font-size: 1.42857143rem;
  line-height: 1.28571429em;
  font-weight: bold;
}
/*--------------
     Content
---------------*/
.ui.modal > .content {
  display: block;
  width: 100%;
  font-size: 1em;
  line-height: 1.4;
  padding: 1.5rem;
  background: #FFFFFF;
}
.ui.modal > .image.content {
  display: flex;
  flex-direction: row;
}
/* Image */
.ui.modal > .content > .image {
  display: block;
  flex: 0 1 auto;
  width: '';
  align-self: top;
}
.ui.modal > [class*="top aligned"] {
  align-self: top;
}
.ui.modal > [class*="middle aligned"] {
  align-self: middle;
}
.ui.modal > [class*="stretched"] {
  align-self: stretch;
}
/* Description */
.ui.modal > .content > .description {
  display: block;
  flex: 1 0 auto;
  min-width: 0px;
  align-self: top;
}
.ui.modal > .content > .icon + .description,
.ui.modal > .content > .image + .description {
  flex: 0 1 auto;
  min-width: '';
  width: auto;
  padding-left: 2em;
}
/*rtl:ignore*/
.ui.modal > .content > .image > i.icon {
  margin: 0em;
  opacity: 1;
  width: auto;
  line-height: 1;
  font-size: 8rem;
}
/*--------------
     Actions
---------------*/
.ui.modal > .actions {
  background: #F9FAFB;
  padding: 1rem 1rem;
  border-top: 1px solid rgba(34, 36, 38, 0.15);
  text-align: right;
}
.ui.modal .actions > .button {
  margin-left: 0.75em;
}
/*-------------------
       Responsive
--------------------*/
/* Modal Width */
@media only screen and (max-width: 767px) {
  .ui.modal {
    width: 95%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px) {
  .ui.modal {
    width: 88%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px) {
  .ui.modal {
    width: 850px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px) {
  .ui.modal {
    width: 900px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px) {
  .ui.modal {
    width: 950px;
    margin: 0em 0em 0em 0em;
  }
}
/* Tablet and Mobile */
@media only screen and (max-width: 991px) {
  .ui.modal > .header {
    padding-right: 2.25rem;
  }
  .ui.modal > .close {
    top: 1.0535rem;
    right: 1rem;
    color: rgba(0, 0, 0, 0.87);
  }
}
/* Mobile */
@media only screen and (max-width: 767px) {
  .ui.modal > .header {
    padding: 0.75rem 1rem !important;
    padding-right: 2.25rem !important;
  }
  .ui.modal > .content {
    display: block;
    padding: 1rem !important;
  }
  .ui.modal > .close {
    top: 0.5rem !important;
    right: 0.5rem !important;
  }
  /*rtl:ignore*/
  .ui.modal .image.content {
    flex-direction: column;
  }
  .ui.modal .content > .image {
    display: block;
    max-width: 100%;
    margin: 0em auto !important;
    text-align: center;
    padding: 0rem 0rem 1rem !important;
  }
  .ui.modal > .content > .image > i.icon {
    font-size: 5rem;
    text-align: center;
  }
  /*rtl:ignore*/
  .ui.modal .content > .description {
    display: block;
    width: 100% !important;
    margin: 0em !important;
    padding: 1rem 0rem !important;
    box-shadow: none;
  }
  /* Let Buttons Stack */
  .ui.modal > .actions {
    padding: 1rem 1rem 0rem !important;
  }
  .ui.modal .actions > .buttons,
  .ui.modal .actions > .button {
    margin-bottom: 1rem;
  }
}
/*--------------
    Coupling
---------------*/
.ui.inverted.dimmer > .ui.modal {
  box-shadow: 1px 3px 10px 2px rgba(0, 0, 0, 0.2);
}
/*******************************
             Types
*******************************/
.ui.basic.modal {
  background-color: transparent;
  border: none;
  border-radius: 0em;
  box-shadow: none !important;
  color: #FFFFFF;
}
.ui.basic.modal > .header,
.ui.basic.modal > .content,
.ui.basic.modal > .actions {
  background-color: transparent;
}
.ui.basic.modal > .header {
  color: #FFFFFF;
}
.ui.basic.modal > .close {
  top: 1rem;
  right: 1.5rem;
}
.ui.inverted.dimmer > .basic.modal {
  color: rgba(0, 0, 0, 0.87);
}
.ui.inverted.dimmer > .ui.basic.modal > .header {
  color: rgba(0, 0, 0, 0.85);
}
/* Resort to margin positioning if legacy */
.ui.legacy.modal,
.ui.legacy.page.dimmer > .ui.modal {
  top: 50%;
  left: 50%;
}
.ui.legacy.page.dimmer > .ui.scrolling.modal,
.ui.page.dimmer > .ui.scrolling.legacy.modal,
.ui.top.aligned.legacy.page.dimmer > .ui.modal,
.ui.top.aligned.dimmer > .ui.legacy.modal {
  top: auto;
}
/* Tablet and Mobile */
@media only screen and (max-width: 991px) {
  .ui.basic.modal > .close {
    color: #FFFFFF;
  }
}
/*******************************
             States
*******************************/
.ui.loading.modal {
  display: block;
  visibility: hidden;
  z-index: -1;
}
.ui.active.modal {
  display: block;
}
/*******************************
           Variations
*******************************/
/*--------------
   Top Aligned
---------------*/
/* Top Aligned Modal */
.modals.dimmer[class*="top aligned"] .modal {
  margin: 5vh auto;
}
@media only screen and (max-width: 767px) {
  .modals.dimmer[class*="top aligned"] .modal {
    margin: 1rem auto;
  }
}
/* Legacy Top Aligned */
.legacy.modals.dimmer[class*="top aligned"] {
  padding-top: 5vh;
}
@media only screen and (max-width: 767px) {
  .legacy.modals.dimmer[class*="top aligned"] {
    padding-top: 1rem;
  }
}
/*--------------
    Scrolling
---------------*/
/* Scrolling Dimmer */
.scrolling.dimmable.dimmed {
  overflow: hidden;
}
.scrolling.dimmable > .dimmer {
  justify-content: flex-start;
}
.scrolling.dimmable.dimmed > .dimmer {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.scrolling.dimmable > .dimmer {
  position: fixed;
}
.modals.dimmer .ui.scrolling.modal {
  margin: 1rem auto;
}
/* Undetached Scrolling */
.scrolling.undetached.dimmable.dimmed {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.scrolling.undetached.dimmable.dimmed > .dimmer {
  overflow: hidden;
}
.scrolling.undetached.dimmable .ui.scrolling.modal {
  position: absolute;
  left: 50%;
  margin-top: 1rem !important;
}
/* Scrolling Content */
.ui.modal .scrolling.content {
  max-height: calc(80vh - 10em);
  overflow: auto;
}
/*--------------
   Full Screen
---------------*/
.ui.fullscreen.modal {
  width: 95% !important;
  margin: 1em auto;
}
.ui.fullscreen.modal > .header {
  padding-right: 2.25rem;
}
.ui.fullscreen.modal > .close {
  top: 1.0535rem;
  right: 1rem;
  color: rgba(0, 0, 0, 0.87);
}
/*--------------
      Size
---------------*/
.ui.modal {
  font-size: 1rem;
}
/* Mini */
.ui.mini.modal > .header:not(.ui) {
  font-size: 1.3em;
}
/* Mini Modal Width */
@media only screen and (max-width: 767px) {
  .ui.mini.modal {
    width: 95%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px) {
  .ui.mini.modal {
    width: 35.2%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px) {
  .ui.mini.modal {
    width: 340px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px) {
  .ui.mini.modal {
    width: 360px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px) {
  .ui.mini.modal {
    width: 380px;
    margin: 0em 0em 0em 0em;
  }
}
/* mini */
.ui.small.modal > .header:not(.ui) {
  font-size: 1.3em;
}
/* Tiny Modal Width */
@media only screen and (max-width: 767px) {
  .ui.tiny.modal {
    width: 95%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px) {
  .ui.tiny.modal {
    width: 52.8%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px) {
  .ui.tiny.modal {
    width: 510px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px) {
  .ui.tiny.modal {
    width: 540px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px) {
  .ui.tiny.modal {
    width: 570px;
    margin: 0em 0em 0em 0em;
  }
}
/* Small */
.ui.small.modal > .header:not(.ui) {
  font-size: 1.3em;
}
/* Small Modal Width */
@media only screen and (max-width: 767px) {
  .ui.small.modal {
    width: 95%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px) {
  .ui.small.modal {
    width: 70.4%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px) {
  .ui.small.modal {
    width: 680px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px) {
  .ui.small.modal {
    width: 720px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px) {
  .ui.small.modal {
    width: 760px;
    margin: 0em 0em 0em 0em;
  }
}
/* Large Modal Width */
.ui.large.modal > .header {
  font-size: 1.6em;
}
@media only screen and (max-width: 767px) {
  .ui.large.modal {
    width: 95%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 768px) {
  .ui.large.modal {
    width: 88%;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 992px) {
  .ui.large.modal {
    width: 1020px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1200px) {
  .ui.large.modal {
    width: 1080px;
    margin: 0em 0em 0em 0em;
  }
}
@media only screen and (min-width: 1920px) {
  .ui.large.modal {
    width: 1140px;
    margin: 0em 0em 0em 0em;
  }
}
/*!
 * # Semantic UI - Nag
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Nag
*******************************/
/*--------------
   Collection
---------------*/
/*--------------
    Elements
---------------*/
/* Title */
/*--------------
      States
---------------*/
/* Hover */
/*--------------
   Variations
---------------*/
/* Top / Bottom */
/* Inverted */
/*--------------
      Plural
---------------*/
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Nag
*******************************/
.ui.nag {
  display: none;
  opacity: 0.95;
  position: relative;
  top: 0em;
  left: 0px;
  z-index: 999;
  min-height: 0em;
  width: 100%;
  margin: 0em;
  padding: 0.75em 1em;
  background: #555555;
  box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
  font-size: 1rem;
  text-align: center;
  color: rgba(0, 0, 0, 0.87);
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
  transition: 0.2s background ease;
}
a.ui.nag {
  cursor: pointer;
}
.ui.nag > .title {
  display: inline-block;
  margin: 0em 0.5em;
  color: #FFFFFF;
}
.ui.nag > .close.icon {
  cursor: pointer;
  opacity: 0.4;
  position: absolute;
  top: 50%;
  right: 1em;
  font-size: 1em;
  margin: -0.5em 0em 0em;
  color: #FFFFFF;
  transition: opacity 0.2s ease;
}
/*******************************
             States
*******************************/
/* Hover */
.ui.nag:hover {
  background: #555555;
  opacity: 1;
}
.ui.nag .close:hover {
  opacity: 1;
}
/*******************************
           Variations
*******************************/
/*--------------
     Static
---------------*/
.ui.overlay.nag {
  position: absolute;
  display: block;
}
/*--------------
     Fixed
---------------*/
.ui.fixed.nag {
  position: fixed;
}
/*--------------
     Bottom
---------------*/
.ui.bottom.nags,
.ui.bottom.nag {
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
  top: auto;
  bottom: 0em;
}
/*--------------
     White
---------------*/
.ui.inverted.nags .nag,
.ui.inverted.nag {
  background-color: #F3F4F5;
  color: rgba(0, 0, 0, 0.85);
}
.ui.inverted.nags .nag .close,
.ui.inverted.nags .nag .title,
.ui.inverted.nag .close,
.ui.inverted.nag .title {
  color: rgba(0, 0, 0, 0.4);
}
/*******************************
           Groups
*******************************/
.ui.nags .nag {
  border-radius: 0em !important;
}
.ui.nags .nag:last-child {
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
.ui.bottom.nags .nag:last-child {
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
/*!
 * # Semantic UI - Popup
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Popup
*******************************/
/*-------------------
       Element
--------------------*/
/*-------------------
       Parts
--------------------*/
/* Placement */
/* Header */
/* Content Border */
/* Arrow */
/* Arrow color by position */
/*-------------------
       Types
--------------------*/
/* Tooltip */
/* Inverted */
/* Arrow */
/*-------------------
       Coupling
--------------------*/
/* Grid Inside Popup */
/* (padding * @medium) */
/*-------------------
       States
--------------------*/
/*-------------------
       Variations
--------------------*/
/* Wide */
/* Inverted */
/* Arrow color by position */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Popup
*******************************/
.ui.popup {
  display: none;
  position: absolute;
  top: 0px;
  right: 0px;
  /* Fixes content being squished when inline (moz only) */
  min-width: min-content;
  z-index: 1900;
  border: 1px solid #D4D4D5;
  line-height: 1.4285em;
  max-width: 250px;
  background: #FFFFFF;
  padding: 0.833em 1em;
  font-weight: normal;
  font-style: normal;
  color: rgba(0, 0, 0, 0.87);
  border-radius: 0.28571429rem;
  box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
}
.ui.popup > .header {
  padding: 0em;
  font-family: 'Lato', sans-serif;
  font-size: 1.14285714em;
  line-height: 1.2;
  font-weight: bold;
}
.ui.popup > .header + .content {
  padding-top: 0.5em;
}
.ui.popup:before {
  position: absolute;
  content: '';
  width: 0.71428571em;
  height: 0.71428571em;
  background: #FFFFFF;
  transform: rotate(45deg);
  z-index: 2;
  box-shadow: 1px 1px 0px 0px #bababc;
}
/*******************************
            Types
*******************************/
/*--------------
    Tooltip
---------------*/
/* Content */
[data-tooltip] {
  position: relative;
}
/* Arrow */
[data-tooltip]:before {
  pointer-events: none;
  position: absolute;
  content: '';
  font-size: 1rem;
  width: 0.71428571em;
  height: 0.71428571em;
  background: #FFFFFF;
  transform: rotate(45deg);
  z-index: 2;
  box-shadow: 1px 1px 0px 0px #bababc;
}
/* Popup */
[data-tooltip]:after {
  pointer-events: none;
  content: attr(data-tooltip);
  position: absolute;
  text-transform: none;
  text-align: left;
  white-space: nowrap;
  font-size: 1rem;
  border: 1px solid #D4D4D5;
  line-height: 1.4285em;
  max-width: none;
  background: #FFFFFF;
  padding: 0.833em 1em;
  font-weight: normal;
  font-style: normal;
  color: rgba(0, 0, 0, 0.87);
  border-radius: 0.28571429rem;
  box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
  z-index: 1;
}
/* Default Position (Top Center) */
[data-tooltip]:not([data-position]):before {
  top: auto;
  right: auto;
  bottom: 100%;
  left: 50%;
  background: #FFFFFF;
  margin-left: -0.07142857rem;
  margin-bottom: 0.14285714rem;
}
[data-tooltip]:not([data-position]):after {
  left: 50%;
  transform: translateX(-50%);
  bottom: 100%;
  margin-bottom: 0.5em;
}
/* Animation */
[data-tooltip]:before,
[data-tooltip]:after {
  pointer-events: none;
  visibility: hidden;
}
[data-tooltip]:before {
  opacity: 0;
  transform: rotate(45deg) scale(0) !important;
  transform-origin: center top;
  transition: all 0.1s ease;
}
[data-tooltip]:after {
  opacity: 1;
  transform-origin: center bottom;
  transition: all 0.1s ease;
}
[data-tooltip]:hover:before,
[data-tooltip]:hover:after {
  visibility: visible;
  pointer-events: auto;
}
[data-tooltip]:hover:before {
  transform: rotate(45deg) scale(1) !important;
  opacity: 1;
}
/* Animation Position */
[data-tooltip]:after,
[data-tooltip][data-position="top center"]:after,
[data-tooltip][data-position="bottom center"]:after {
  transform: translateX(-50%) scale(0) !important;
}
[data-tooltip]:hover:after,
[data-tooltip][data-position="bottom center"]:hover:after {
  transform: translateX(-50%) scale(1) !important;
}
[data-tooltip][data-position="left center"]:after,
[data-tooltip][data-position="right center"]:after {
  transform: translateY(-50%) scale(0) !important;
}
[data-tooltip][data-position="left center"]:hover:after,
[data-tooltip][data-position="right center"]:hover:after {
  transform: translateY(-50%) scale(1) !important;
}
[data-tooltip][data-position="top left"]:after,
[data-tooltip][data-position="top right"]:after,
[data-tooltip][data-position="bottom left"]:after,
[data-tooltip][data-position="bottom right"]:after {
  transform: scale(0) !important;
}
[data-tooltip][data-position="top left"]:hover:after,
[data-tooltip][data-position="top right"]:hover:after,
[data-tooltip][data-position="bottom left"]:hover:after,
[data-tooltip][data-position="bottom right"]:hover:after {
  transform: scale(1) !important;
}
/*--------------
    Inverted
---------------*/
/* Arrow */
[data-tooltip][data-inverted]:before {
  box-shadow: none !important;
}
/* Arrow Position */
[data-tooltip][data-inverted]:before {
  background: #1B1C1D;
}
/* Popup  */
[data-tooltip][data-inverted]:after {
  background: #1B1C1D;
  color: #FFFFFF;
  border: none;
  box-shadow: none;
}
[data-tooltip][data-inverted]:after .header {
  background-color: none;
  color: #FFFFFF;
}
/*--------------
    Position
---------------*/
/* Top Center */
[data-position="top center"][data-tooltip]:after {
  top: auto;
  right: auto;
  left: 50%;
  bottom: 100%;
  transform: translateX(-50%);
  margin-bottom: 0.5em;
}
[data-position="top center"][data-tooltip]:before {
  top: auto;
  right: auto;
  bottom: 100%;
  left: 50%;
  background: #FFFFFF;
  margin-left: -0.07142857rem;
  margin-bottom: 0.14285714rem;
}
/* Top Left */
[data-position="top left"][data-tooltip]:after {
  top: auto;
  right: auto;
  left: 0;
  bottom: 100%;
  margin-bottom: 0.5em;
}
[data-position="top left"][data-tooltip]:before {
  top: auto;
  right: auto;
  bottom: 100%;
  left: 1em;
  margin-left: -0.07142857rem;
  margin-bottom: 0.14285714rem;
}
/* Top Right */
[data-position="top right"][data-tooltip]:after {
  top: auto;
  left: auto;
  right: 0;
  bottom: 100%;
  margin-bottom: 0.5em;
}
[data-position="top right"][data-tooltip]:before {
  top: auto;
  left: auto;
  bottom: 100%;
  right: 1em;
  margin-left: -0.07142857rem;
  margin-bottom: 0.14285714rem;
}
/* Bottom Center */
[data-position="bottom center"][data-tooltip]:after {
  bottom: auto;
  right: auto;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  margin-top: 0.5em;
}
[data-position="bottom center"][data-tooltip]:before {
  bottom: auto;
  right: auto;
  top: 100%;
  left: 50%;
  margin-left: -0.07142857rem;
  margin-top: 0.14285714rem;
}
/* Bottom Left */
[data-position="bottom left"][data-tooltip]:after {
  left: 0;
  top: 100%;
  margin-top: 0.5em;
}
[data-position="bottom left"][data-tooltip]:before {
  bottom: auto;
  right: auto;
  top: 100%;
  left: 1em;
  margin-left: -0.07142857rem;
  margin-top: 0.14285714rem;
}
/* Bottom Right */
[data-position="bottom right"][data-tooltip]:after {
  right: 0;
  top: 100%;
  margin-top: 0.5em;
}
[data-position="bottom right"][data-tooltip]:before {
  bottom: auto;
  left: auto;
  top: 100%;
  right: 1em;
  margin-left: -0.14285714rem;
  margin-top: 0.07142857rem;
}
/* Left Center */
[data-position="left center"][data-tooltip]:after {
  right: 100%;
  top: 50%;
  margin-right: 0.5em;
  transform: translateY(-50%);
}
[data-position="left center"][data-tooltip]:before {
  right: 100%;
  top: 50%;
  margin-top: -0.14285714rem;
  margin-right: -0.07142857rem;
}
/* Right Center */
[data-position="right center"][data-tooltip]:after {
  left: 100%;
  top: 50%;
  margin-left: 0.5em;
  transform: translateY(-50%);
}
[data-position="right center"][data-tooltip]:before {
  left: 100%;
  top: 50%;
  margin-top: -0.07142857rem;
  margin-left: 0.14285714rem;
}
/* Arrow */
[data-position~="bottom"][data-tooltip]:before {
  background: #FFFFFF;
  box-shadow: -1px -1px 0px 0px #bababc;
}
[data-position="left center"][data-tooltip]:before {
  background: #FFFFFF;
  box-shadow: 1px -1px 0px 0px #bababc;
}
[data-position="right center"][data-tooltip]:before {
  background: #FFFFFF;
  box-shadow: -1px 1px 0px 0px #bababc;
}
[data-position~="top"][data-tooltip]:before {
  background: #FFFFFF;
}
/* Inverted Arrow Color */
[data-inverted][data-position~="bottom"][data-tooltip]:before {
  background: #1B1C1D;
  box-shadow: -1px -1px 0px 0px #bababc;
}
[data-inverted][data-position="left center"][data-tooltip]:before {
  background: #1B1C1D;
  box-shadow: 1px -1px 0px 0px #bababc;
}
[data-inverted][data-position="right center"][data-tooltip]:before {
  background: #1B1C1D;
  box-shadow: -1px 1px 0px 0px #bababc;
}
[data-inverted][data-position~="top"][data-tooltip]:before {
  background: #1B1C1D;
}
[data-position~="bottom"][data-tooltip]:before {
  transform-origin: center bottom;
}
[data-position~="bottom"][data-tooltip]:after {
  transform-origin: center top;
}
[data-position="left center"][data-tooltip]:before {
  transform-origin: top center;
}
[data-position="left center"][data-tooltip]:after {
  transform-origin: right center;
}
[data-position="right center"][data-tooltip]:before {
  transform-origin: right center;
}
[data-position="right center"][data-tooltip]:after {
  transform-origin: left center;
}
/*--------------
     Spacing
---------------*/
.ui.popup {
  margin: 0em;
}
/* Extending from Top */
.ui.top.popup {
  margin: 0em 0em 0.71428571em;
}
.ui.top.left.popup {
  transform-origin: left bottom;
}
.ui.top.center.popup {
  transform-origin: center bottom;
}
.ui.top.right.popup {
  transform-origin: right bottom;
}
/* Extending from Vertical Center */
.ui.left.center.popup {
  margin: 0em 0.71428571em 0em 0em;
  transform-origin: right 50%;
}
.ui.right.center.popup {
  margin: 0em 0em 0em 0.71428571em;
  transform-origin: left 50%;
}
/* Extending from Bottom */
.ui.bottom.popup {
  margin: 0.71428571em 0em 0em;
}
.ui.bottom.left.popup {
  transform-origin: left top;
}
.ui.bottom.center.popup {
  transform-origin: center top;
}
.ui.bottom.right.popup {
  transform-origin: right top;
}
/*--------------
     Pointer
---------------*/
/*--- Below ---*/
.ui.bottom.center.popup:before {
  margin-left: -0.30714286em;
  top: -0.30714286em;
  left: 50%;
  right: auto;
  bottom: auto;
  box-shadow: -1px -1px 0px 0px #bababc;
}
.ui.bottom.left.popup {
  margin-left: 0em;
}
/*rtl:rename*/
.ui.bottom.left.popup:before {
  top: -0.30714286em;
  left: 1em;
  right: auto;
  bottom: auto;
  margin-left: 0em;
  box-shadow: -1px -1px 0px 0px #bababc;
}
.ui.bottom.right.popup {
  margin-right: 0em;
}
/*rtl:rename*/
.ui.bottom.right.popup:before {
  top: -0.30714286em;
  right: 1em;
  bottom: auto;
  left: auto;
  margin-left: 0em;
  box-shadow: -1px -1px 0px 0px #bababc;
}
/*--- Above ---*/
.ui.top.center.popup:before {
  top: auto;
  right: auto;
  bottom: -0.30714286em;
  left: 50%;
  margin-left: -0.30714286em;
}
.ui.top.left.popup {
  margin-left: 0em;
}
/*rtl:rename*/
.ui.top.left.popup:before {
  bottom: -0.30714286em;
  left: 1em;
  top: auto;
  right: auto;
  margin-left: 0em;
}
.ui.top.right.popup {
  margin-right: 0em;
}
/*rtl:rename*/
.ui.top.right.popup:before {
  bottom: -0.30714286em;
  right: 1em;
  top: auto;
  left: auto;
  margin-left: 0em;
}
/*--- Left Center ---*/
/*rtl:rename*/
.ui.left.center.popup:before {
  top: 50%;
  right: -0.30714286em;
  bottom: auto;
  left: auto;
  margin-top: -0.30714286em;
  box-shadow: 1px -1px 0px 0px #bababc;
}
/*--- Right Center  ---*/
/*rtl:rename*/
.ui.right.center.popup:before {
  top: 50%;
  left: -0.30714286em;
  bottom: auto;
  right: auto;
  margin-top: -0.30714286em;
  box-shadow: -1px 1px 0px 0px #bababc;
}
/* Arrow Color By Location */
.ui.bottom.popup:before {
  background: #FFFFFF;
}
.ui.right.center.popup:before,
.ui.left.center.popup:before {
  background: #FFFFFF;
}
.ui.top.popup:before {
  background: #FFFFFF;
}
/* Inverted Arrow Color */
.ui.inverted.bottom.popup:before {
  background: #1B1C1D;
}
.ui.inverted.right.center.popup:before,
.ui.inverted.left.center.popup:before {
  background: #1B1C1D;
}
.ui.inverted.top.popup:before {
  background: #1B1C1D;
}
/*******************************
            Coupling
*******************************/
/* Immediate Nested Grid */
.ui.popup > .ui.grid:not(.padded) {
  width: calc(100% + 1.75rem);
  margin: -0.7rem -0.875rem;
}
/*******************************
            States
*******************************/
.ui.loading.popup {
  display: block;
  visibility: hidden;
  z-index: -1;
}
.ui.animating.popup,
.ui.visible.popup {
  display: block;
}
.ui.visible.popup {
  transform: translateZ(0px);
  backface-visibility: hidden;
}
/*******************************
            Variations
*******************************/
/*--------------
     Basic
---------------*/
.ui.basic.popup:before {
  display: none;
}
/*--------------
     Wide
---------------*/
.ui.wide.popup {
  max-width: 350px;
}
.ui[class*="very wide"].popup {
  max-width: 550px;
}
@media only screen and (max-width: 767px) {
  .ui.wide.popup,
  .ui[class*="very wide"].popup {
    max-width: 250px;
  }
}
/*--------------
     Fluid
---------------*/
.ui.fluid.popup {
  width: 100%;
  max-width: none;
}
/*--------------
     Colors
---------------*/
/* Inverted colors  */
.ui.inverted.popup {
  background: #1B1C1D;
  color: #FFFFFF;
  border: none;
  box-shadow: none;
}
.ui.inverted.popup .header {
  background-color: none;
  color: #FFFFFF;
}
.ui.inverted.popup:before {
  background-color: #1B1C1D;
  box-shadow: none !important;
}
/*--------------
     Flowing
---------------*/
.ui.flowing.popup {
  max-width: none;
}
/*--------------
     Sizes
---------------*/
.ui.mini.popup {
  font-size: 0.78571429rem;
}
.ui.tiny.popup {
  font-size: 0.85714286rem;
}
.ui.small.popup {
  font-size: 0.92857143rem;
}
.ui.popup {
  font-size: 1rem;
}
.ui.large.popup {
  font-size: 1.14285714rem;
}
.ui.huge.popup {
  font-size: 1.42857143rem;
}
/*!
 * # Semantic UI - Progress Bar
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Progress
*******************************/
/*-------------------
       Element
--------------------*/
/* Bar */
/* Progress Bar Label */
/* Label */
/*-------------------
        Types
--------------------*/
/*-------------------
        States
--------------------*/
/* Active */
/*-------------------
      Variations
--------------------*/
/* Attached */
/* Inverted */
/* Sizing */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Progress
*******************************/
.ui.progress {
  position: relative;
  display: block;
  max-width: 100%;
  border: none;
  margin: 1em 0em 2.5em;
  box-shadow: none;
  background: rgba(0, 0, 0, 0.1);
  padding: 0em;
  border-radius: 0.28571429rem;
}
.ui.progress:first-child {
  margin: 0em 0em 2.5em;
}
.ui.progress:last-child {
  margin: 0em 0em 1.5em;
}
/*******************************
            Content
*******************************/
/* Activity Bar */
.ui.progress .bar {
  display: block;
  line-height: 1;
  position: relative;
  width: 0%;
  min-width: 2em;
  background: #888888;
  border-radius: 0.28571429rem;
  transition: width 0.1s ease, background-color 0.1s ease;
}
/* Percent Complete */
.ui.progress .bar > .progress {
  white-space: nowrap;
  position: absolute;
  width: auto;
  font-size: 0.92857143em;
  top: 50%;
  right: 0.5em;
  left: auto;
  bottom: auto;
  color: rgba(255, 255, 255, 0.7);
  text-shadow: none;
  margin-top: -0.5em;
  font-weight: bold;
  text-align: left;
}
/* Label */
.ui.progress > .label {
  position: absolute;
  width: 100%;
  font-size: 1em;
  top: 100%;
  right: auto;
  left: 0%;
  bottom: auto;
  color: rgba(0, 0, 0, 0.87);
  font-weight: bold;
  text-shadow: none;
  margin-top: 0.2em;
  text-align: center;
  transition: color 0.4s ease;
}
/*******************************
            Types
*******************************/
/* Indicating */
.ui.indicating.progress[data-percent^="1"] .bar,
.ui.indicating.progress[data-percent^="2"] .bar {
  background-color: #D95C5C;
}
.ui.indicating.progress[data-percent^="3"] .bar {
  background-color: #EFBC72;
}
.ui.indicating.progress[data-percent^="4"] .bar,
.ui.indicating.progress[data-percent^="5"] .bar {
  background-color: #E6BB48;
}
.ui.indicating.progress[data-percent^="6"] .bar {
  background-color: #DDC928;
}
.ui.indicating.progress[data-percent^="7"] .bar,
.ui.indicating.progress[data-percent^="8"] .bar {
  background-color: #B4D95C;
}
.ui.indicating.progress[data-percent^="9"] .bar,
.ui.indicating.progress[data-percent^="100"] .bar {
  background-color: #66DA81;
}
/* Indicating Label */
.ui.indicating.progress[data-percent^="1"] .label,
.ui.indicating.progress[data-percent^="2"] .label {
  color: rgba(0, 0, 0, 0.87);
}
.ui.indicating.progress[data-percent^="3"] .label {
  color: rgba(0, 0, 0, 0.87);
}
.ui.indicating.progress[data-percent^="4"] .label,
.ui.indicating.progress[data-percent^="5"] .label {
  color: rgba(0, 0, 0, 0.87);
}
.ui.indicating.progress[data-percent^="6"] .label {
  color: rgba(0, 0, 0, 0.87);
}
.ui.indicating.progress[data-percent^="7"] .label,
.ui.indicating.progress[data-percent^="8"] .label {
  color: rgba(0, 0, 0, 0.87);
}
.ui.indicating.progress[data-percent^="9"] .label,
.ui.indicating.progress[data-percent^="100"] .label {
  color: rgba(0, 0, 0, 0.87);
}
/* Single Digits */
.ui.indicating.progress[data-percent="1"] .bar,
.ui.indicating.progress[data-percent="2"] .bar,
.ui.indicating.progress[data-percent="3"] .bar,
.ui.indicating.progress[data-percent="4"] .bar,
.ui.indicating.progress[data-percent="5"] .bar,
.ui.indicating.progress[data-percent="6"] .bar,
.ui.indicating.progress[data-percent="7"] .bar,
.ui.indicating.progress[data-percent="8"] .bar,
.ui.indicating.progress[data-percent="9"] .bar {
  background-color: #D95C5C;
}
.ui.indicating.progress[data-percent="1"] .label,
.ui.indicating.progress[data-percent="2"] .label,
.ui.indicating.progress[data-percent="3"] .label,
.ui.indicating.progress[data-percent="4"] .label,
.ui.indicating.progress[data-percent="5"] .label,
.ui.indicating.progress[data-percent="6"] .label,
.ui.indicating.progress[data-percent="7"] .label,
.ui.indicating.progress[data-percent="8"] .label,
.ui.indicating.progress[data-percent="9"] .label {
  color: rgba(0, 0, 0, 0.87);
}
/* Indicating Success */
.ui.indicating.progress.success .label {
  color: #1A531B;
}
/*******************************
             States
*******************************/
/*--------------
     Success
---------------*/
.ui.progress.success .bar {
  background-color: #21BA45 !important;
}
.ui.progress.success .bar,
.ui.progress.success .bar::after {
  animation: none !important;
}
.ui.progress.success > .label {
  color: #1A531B;
}
/*--------------
     Warning
---------------*/
.ui.progress.warning .bar {
  background-color: #F2C037 !important;
}
.ui.progress.warning .bar,
.ui.progress.warning .bar::after {
  animation: none !important;
}
.ui.progress.warning > .label {
  color: #794B02;
}
/*--------------
     Error
---------------*/
.ui.progress.error .bar {
  background-color: #DB2828 !important;
}
.ui.progress.error .bar,
.ui.progress.error .bar::after {
  animation: none !important;
}
.ui.progress.error > .label {
  color: #912D2B;
}
/*--------------
     Active
---------------*/
.ui.active.progress .bar {
  position: relative;
  min-width: 2em;
}
.ui.active.progress .bar::after {
  content: '';
  opacity: 0;
  position: absolute;
  top: 0px;
  left: 0px;
  right: 0px;
  bottom: 0px;
  background: #FFFFFF;
  border-radius: 0.28571429rem;
  animation: progress-active 2s ease infinite;
}
@keyframes progress-active {
  0% {
    opacity: 0.3;
    width: 0;
  }
  100% {
    opacity: 0;
    width: 100%;
  }
}
/*--------------
    Disabled
---------------*/
.ui.disabled.progress {
  opacity: 0.35;
}
.ui.disabled.progress .bar,
.ui.disabled.progress .bar::after {
  animation: none !important;
}
/*******************************
           Variations
*******************************/
/*--------------
    Inverted
---------------*/
.ui.inverted.progress {
  background: rgba(255, 255, 255, 0.08);
  border: none;
}
.ui.inverted.progress .bar {
  background: #888888;
}
.ui.inverted.progress .bar > .progress {
  color: #F9FAFB;
}
.ui.inverted.progress > .label {
  color: #FFFFFF;
}
.ui.inverted.progress.success > .label {
  color: #21BA45;
}
.ui.inverted.progress.warning > .label {
  color: #F2C037;
}
.ui.inverted.progress.error > .label {
  color: #DB2828;
}
/*--------------
    Attached
---------------*/
/* bottom attached */
.ui.progress.attached {
  background: transparent;
  position: relative;
  border: none;
  margin: 0em;
}
.ui.progress.attached,
.ui.progress.attached .bar {
  display: block;
  height: 0.2rem;
  padding: 0px;
  overflow: hidden;
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
.ui.progress.attached .bar {
  border-radius: 0em;
}
/* top attached */
.ui.progress.top.attached,
.ui.progress.top.attached .bar {
  top: 0px;
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.progress.top.attached .bar {
  border-radius: 0em;
}
/* Coupling */
.ui.segment > .ui.attached.progress,
.ui.card > .ui.attached.progress {
  position: absolute;
  top: auto;
  left: 0;
  bottom: 100%;
  width: 100%;
}
.ui.segment > .ui.bottom.attached.progress,
.ui.card > .ui.bottom.attached.progress {
  top: 100%;
  bottom: auto;
}
/*--------------
     Colors
---------------*/
/* Red */
.ui.red.progress .bar {
  background-color: #DB2828;
}
.ui.red.inverted.progress .bar {
  background-color: #FF695E;
}
/* Orange */
.ui.orange.progress .bar {
  background-color: #F2711C;
}
.ui.orange.inverted.progress .bar {
  background-color: #FF851B;
}
/* Yellow */
.ui.yellow.progress .bar {
  background-color: #FBBD08;
}
.ui.yellow.inverted.progress .bar {
  background-color: #FFE21F;
}
/* Olive */
.ui.olive.progress .bar {
  background-color: #B5CC18;
}
.ui.olive.inverted.progress .bar {
  background-color: #D9E778;
}
/* Green */
.ui.green.progress .bar {
  background-color: #21BA45;
}
.ui.green.inverted.progress .bar {
  background-color: #2ECC40;
}
/* Teal */
.ui.teal.progress .bar {
  background-color: #00B5AD;
}
.ui.teal.inverted.progress .bar {
  background-color: #6DFFFF;
}
/* Blue */
.ui.blue.progress .bar {
  background-color: #2185D0;
}
.ui.blue.inverted.progress .bar {
  background-color: #54C8FF;
}
/* Violet */
.ui.violet.progress .bar {
  background-color: #6435C9;
}
.ui.violet.inverted.progress .bar {
  background-color: #A291FB;
}
/* Purple */
.ui.purple.progress .bar {
  background-color: #A333C8;
}
.ui.purple.inverted.progress .bar {
  background-color: #DC73FF;
}
/* Pink */
.ui.pink.progress .bar {
  background-color: #E03997;
}
.ui.pink.inverted.progress .bar {
  background-color: #FF8EDF;
}
/* Brown */
.ui.brown.progress .bar {
  background-color: #A5673F;
}
.ui.brown.inverted.progress .bar {
  background-color: #D67C1C;
}
/* Grey */
.ui.grey.progress .bar {
  background-color: #767676;
}
.ui.grey.inverted.progress .bar {
  background-color: #DCDDDE;
}
/* Black */
.ui.black.progress .bar {
  background-color: #1B1C1D;
}
.ui.black.inverted.progress .bar {
  background-color: #545454;
}
/*--------------
     Sizes
---------------*/
.ui.tiny.progress {
  font-size: 0.85714286rem;
}
.ui.tiny.progress .bar {
  height: 0.5em;
}
.ui.small.progress {
  font-size: 0.92857143rem;
}
.ui.small.progress .bar {
  height: 1em;
}
.ui.progress {
  font-size: 1rem;
}
.ui.progress .bar {
  height: 1.75em;
}
.ui.large.progress {
  font-size: 1.14285714rem;
}
.ui.large.progress .bar {
  height: 2.5em;
}
.ui.big.progress {
  font-size: 1.28571429rem;
}
.ui.big.progress .bar {
  height: 3.5em;
}
/*!
 * # Semantic UI - Rating
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Rating
*******************************/
/*-------------------
        Types
--------------------*/
/* Standard */
/* Star */
/* Heart */
/*-------------------
        States
--------------------*/
/*-------------------
      Variations
--------------------*/
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
           Rating
*******************************/
.ui.rating {
  display: inline-flex;
  white-space: nowrap;
  vertical-align: baseline;
}
.ui.rating:last-child {
  margin-right: 0em;
}
/* Icon */
.ui.rating .icon {
  padding: 0em;
  margin: 0em;
  text-align: center;
  font-weight: normal;
  font-style: normal;
  flex: 1 0 auto;
  cursor: pointer;
  width: 1.25em;
  height: auto;
  transition: opacity 0.1s ease, background 0.1s ease, text-shadow 0.1s ease, color 0.1s ease;
}
/*******************************
             Types
*******************************/
/*-------------------
      Standard
--------------------*/
/* Inactive Icon */
.ui.rating .icon {
  background: transparent;
  color: rgba(0, 0, 0, 0.15);
}
/* Active Icon */
.ui.rating .active.icon {
  background: transparent;
  color: rgba(0, 0, 0, 0.85);
}
/* Selected Icon */
.ui.rating .icon.selected,
.ui.rating .icon.selected.active {
  background: transparent;
  color: rgba(0, 0, 0, 0.87);
}
/*-------------------
        Star
--------------------*/
/* Inactive */
.ui.star.rating .icon {
  width: 1.25em;
  height: auto;
  background: transparent;
  color: rgba(0, 0, 0, 0.15);
  text-shadow: none;
}
/* Active Star */
.ui.star.rating .active.icon {
  background: transparent !important;
  color: #FFE623 !important;
  text-shadow: 0px -1px 0px #DDC507, -1px 0px 0px #DDC507, 0px 1px 0px #DDC507, 1px 0px 0px #DDC507 !important;
}
/* Selected Star */
.ui.star.rating .icon.selected,
.ui.star.rating .icon.selected.active {
  background: transparent !important;
  color: #FFCC00 !important;
  text-shadow: 0px -1px 0px #E6A200, -1px 0px 0px #E6A200, 0px 1px 0px #E6A200, 1px 0px 0px #E6A200 !important;
}
/*-------------------
        Heart
--------------------*/
.ui.heart.rating .icon {
  width: 1.4em;
  height: auto;
  background: transparent;
  color: rgba(0, 0, 0, 0.15);
  text-shadow: none !important;
}
/* Active Heart */
.ui.heart.rating .active.icon {
  background: transparent !important;
  color: #FF6D75 !important;
  text-shadow: 0px -1px 0px #CD0707, -1px 0px 0px #CD0707, 0px 1px 0px #CD0707, 1px 0px 0px #CD0707 !important;
}
/* Selected Heart */
.ui.heart.rating .icon.selected,
.ui.heart.rating .icon.selected.active {
  background: transparent !important;
  color: #FF3000 !important;
  text-shadow: 0px -1px 0px #AA0101, -1px 0px 0px #AA0101, 0px 1px 0px #AA0101, 1px 0px 0px #AA0101 !important;
}
/*******************************
             States
*******************************/
/*-------------------
       Disabled
--------------------*/
/* disabled rating */
.ui.disabled.rating .icon {
  cursor: default;
}
/*-------------------
   User Interactive
--------------------*/
/* Selected Rating */
.ui.rating.selected .active.icon {
  opacity: 1;
}
.ui.rating.selected .icon.selected,
.ui.rating .icon.selected {
  opacity: 1;
}
/*******************************
          Variations
*******************************/
.ui.mini.rating {
  font-size: 0.78571429rem;
}
.ui.tiny.rating {
  font-size: 0.85714286rem;
}
.ui.small.rating {
  font-size: 0.92857143rem;
}
.ui.rating {
  font-size: 1rem;
}
.ui.large.rating {
  font-size: 1.14285714rem;
}
.ui.huge.rating {
  font-size: 1.42857143rem;
}
.ui.massive.rating {
  font-size: 2rem;
}
/*!
 * # Semantic UI - Search
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Search
*******************************/
/* Search Prompt */
/* Mobile */
/* Result Box */
/* Result */
/* Result Image */
/* Result Content */
/* Description */
/* Price */
/* Special Message */
/* All Results Link */
/*******************************
            States
*******************************/
/* Focus */
/* Hover */
/* Loading */
/* Active Category */
/* Active Result */
/*******************************
            Types
*******************************/
/* Selection */
/* Category */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
             Search
*******************************/
.ui.search {
  position: relative;
}
.ui.search > .prompt {
  margin: 0em;
  outline: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
  text-shadow: none;
  font-style: normal;
  font-weight: normal;
  line-height: 1.21428571em;
  padding: 0.67857143em 1em;
  font-size: 1em;
  background: #FFFFFF;
  border: 1px solid rgba(34, 36, 38, 0.15);
  color: rgba(0, 0, 0, 0.87);
  box-shadow: 0em 0em 0em 0em transparent inset;
  transition: background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, border-color 0.1s ease;
}
.ui.search .prompt {
  border-radius: 500rem;
}
/*--------------
     Icon
---------------*/
.ui.search .prompt ~ .search.icon {
  cursor: pointer;
}
/*--------------
    Results
---------------*/
.ui.search > .results {
  display: none;
  position: absolute;
  top: 100%;
  left: 0%;
  transform-origin: center top;
  white-space: normal;
  text-align: left;
  text-transform: none;
  background: #FFFFFF;
  margin-top: 0.5em;
  width: 18em;
  border-radius: 0.28571429rem;
  box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
  border: 1px solid #D4D4D5;
  z-index: 998;
}
.ui.search > .results > :first-child {
  border-radius: 0.28571429rem 0.28571429rem 0em 0em;
}
.ui.search > .results > :last-child {
  border-radius: 0em 0em 0.28571429rem 0.28571429rem;
}
/*--------------
    Result
---------------*/
.ui.search > .results .result {
  cursor: pointer;
  display: block;
  overflow: hidden;
  font-size: 1em;
  padding: 0.85714286em 1.14285714em;
  color: rgba(0, 0, 0, 0.87);
  line-height: 1.33;
  border-bottom: 1px solid rgba(34, 36, 38, 0.1);
}
.ui.search > .results .result:last-child {
  border-bottom: none !important;
}
/* Image */
.ui.search > .results .result .image {
  float: right;
  overflow: hidden;
  background: none;
  width: 5em;
  height: 3em;
  border-radius: 0.25em;
}
.ui.search > .results .result .image img {
  display: block;
  width: auto;
  height: 100%;
}
/*--------------
      Info
---------------*/
.ui.search > .results .result .image + .content {
  margin: 0em 6em 0em 0em;
}
.ui.search > .results .result .title {
  margin: -0.14285714em 0em 0em;
  font-family: 'Lato', sans-serif;
  font-weight: bold;
  font-size: 1em;
  color: rgba(0, 0, 0, 0.85);
}
.ui.search > .results .result .description {
  margin-top: 0;
  font-size: 0.92857143em;
  color: rgba(0, 0, 0, 0.4);
}
.ui.search > .results .result .price {
  float: right;
  color: #21BA45;
}
/*--------------
    Message
---------------*/
.ui.search > .results > .message {
  padding: 1em 1em;
}
.ui.search > .results > .message .header {
  font-family: 'Lato', sans-serif;
  font-size: 1rem;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.87);
}
.ui.search > .results > .message .description {
  margin-top: 0.25rem;
  font-size: 1em;
  color: rgba(0, 0, 0, 0.87);
}
/* View All Results */
.ui.search > .results > .action {
  display: block;
  border-top: none;
  background: #F3F4F5;
  padding: 0.92857143em 1em;
  color: rgba(0, 0, 0, 0.87);
  font-weight: bold;
  text-align: center;
}
/*******************************
            States
*******************************/
/*--------------------
       Focus
---------------------*/
.ui.search > .prompt:focus {
  border-color: rgba(34, 36, 38, 0.35);
  background: #FFFFFF;
  color: rgba(0, 0, 0, 0.95);
}
/*--------------------
       Loading
---------------------*/
.ui.loading.search .input > i.icon:before {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -0.64285714em 0em 0em -0.64285714em;
  width: 1.28571429em;
  height: 1.28571429em;
  border-radius: 500rem;
  border: 0.2em solid rgba(0, 0, 0, 0.1);
}
.ui.loading.search .input > i.icon:after {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -0.64285714em 0em 0em -0.64285714em;
  width: 1.28571429em;
  height: 1.28571429em;
  animation: button-spin 0.6s linear;
  animation-iteration-count: infinite;
  border-radius: 500rem;
  border-color: #767676 transparent transparent;
  border-style: solid;
  border-width: 0.2em;
  box-shadow: 0px 0px 0px 1px transparent;
}
/*--------------
      Hover
---------------*/
.ui.search > .results .result:hover,
.ui.category.search > .results .category .result:hover {
  background: #F9FAFB;
}
.ui.search .action:hover {
  background: #E0E0E0;
}
/*--------------
      Active
---------------*/
.ui.category.search > .results .category.active {
  background: #F3F4F5;
}
.ui.category.search > .results .category.active > .name {
  color: rgba(0, 0, 0, 0.87);
}
.ui.search > .results .result.active,
.ui.category.search > .results .category .result.active {
  position: relative;
  border-left-color: rgba(34, 36, 38, 0.1);
  background: #F3F4F5;
  box-shadow: none;
}
.ui.search > .results .result.active .title {
  color: rgba(0, 0, 0, 0.85);
}
.ui.search > .results .result.active .description {
  color: rgba(0, 0, 0, 0.85);
}
/*--------------------
        Disabled
----------------------*/
/* Disabled */
.ui.disabled.search {
  cursor: default;
  pointer-events: none;
  opacity: 0.45;
}
/*******************************
           Types
*******************************/
/*--------------
    Selection
---------------*/
.ui.search.selection .prompt {
  border-radius: 0.28571429rem;
}
/* Remove input */
.ui.search.selection > .icon.input > .remove.icon {
  pointer-events: none;
  position: absolute;
  left: auto;
  opacity: 0;
  color: '';
  top: 0em;
  right: 0em;
  transition: color 0.1s ease, opacity 0.1s ease;
}
.ui.search.selection > .icon.input > .active.remove.icon {
  cursor: pointer;
  opacity: 0.8;
  pointer-events: auto;
}
.ui.search.selection > .icon.input:not([class*="left icon"]) > .icon ~ .remove.icon {
  right: 1.85714em;
}
.ui.search.selection > .icon.input > .remove.icon:hover {
  opacity: 1;
  color: #DB2828;
}
/*--------------
    Category
---------------*/
.ui.category.search .results {
  width: 28em;
}
.ui.category.search .results.animating,
.ui.category.search .results.visible {
  display: table;
}
/* Category */
.ui.category.search > .results .category {
  display: table-row;
  background: #F3F4F5;
  box-shadow: none;
  transition: background 0.1s ease, border-color 0.1s ease;
}
/* Last Category */
.ui.category.search > .results .category:last-child {
  border-bottom: none;
}
/* First / Last */
.ui.category.search > .results .category:first-child .name + .result {
  border-radius: 0em 0.28571429rem 0em 0em;
}
.ui.category.search > .results .category:last-child .result:last-child {
  border-radius: 0em 0em 0.28571429rem 0em;
}
/* Category Result Name */
.ui.category.search > .results .category > .name {
  display: table-cell;
  text-overflow: ellipsis;
  width: 100px;
  white-space: nowrap;
  background: transparent;
  font-family: 'Lato', sans-serif;
  font-size: 1em;
  padding: 0.4em 1em;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.4);
  border-bottom: 1px solid rgba(34, 36, 38, 0.1);
}
/* Category Result */
.ui.category.search > .results .category .results {
  display: table-cell;
  background: #FFFFFF;
  border-left: 1px solid rgba(34, 36, 38, 0.15);
  border-bottom: 1px solid rgba(34, 36, 38, 0.1);
}
.ui.category.search > .results .category .result {
  border-bottom: 1px solid rgba(34, 36, 38, 0.1);
  transition: background 0.1s ease, border-color 0.1s ease;
  padding: 0.85714286em 1.14285714em;
}
/*******************************
           Variations
*******************************/
/*-------------------
     Left / Right
--------------------*/
.ui[class*="left aligned"].search > .results {
  right: auto;
  left: 0%;
}
.ui[class*="right aligned"].search > .results {
  right: 0%;
  left: auto;
}
/*--------------
    Fluid
---------------*/
.ui.fluid.search .results {
  width: 100%;
}
/*--------------
      Sizes
---------------*/
.ui.mini.search {
  font-size: 0.78571429em;
}
.ui.small.search {
  font-size: 0.92857143em;
}
.ui.search {
  font-size: 1em;
}
.ui.large.search {
  font-size: 1.14285714em;
}
.ui.big.search {
  font-size: 1.28571429em;
}
.ui.huge.search {
  font-size: 1.42857143em;
}
.ui.massive.search {
  font-size: 1.71428571em;
}
/*--------------
      Mobile
---------------*/
@media only screen and (max-width: 767px) {
  .ui.search .results {
    max-width: calc(100vw - 2rem);
  }
}
/*!
 * # Semantic UI - Shape
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Shape
*******************************/
/* Animating */
/* Side */
/*--------------
      Types
---------------*/
/* Cube */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
              Shape
*******************************/
.ui.shape {
  position: relative;
  vertical-align: top;
  display: inline-block;
  perspective: 2000px;
  transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
}
.ui.shape .sides {
  transform-style: preserve-3d;
}
.ui.shape .side {
  opacity: 1;
  width: 100%;
  margin: 0em !important;
  backface-visibility: hidden;
}
.ui.shape .side {
  display: none;
}
.ui.shape .side * {
  backface-visibility: visible !important;
}
/*******************************
             Types
*******************************/
.ui.cube.shape .side {
  min-width: 15em;
  height: 15em;
  padding: 2em;
  background-color: #E6E6E6;
  color: rgba(0, 0, 0, 0.87);
  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
}
.ui.cube.shape .side > .content {
  width: 100%;
  height: 100%;
  display: table;
  text-align: center;
  user-select: text;
}
.ui.cube.shape .side > .content > div {
  display: table-cell;
  vertical-align: middle;
  font-size: 2em;
}
/*******************************
          Variations
*******************************/
.ui.text.shape.animating .sides {
  position: static;
}
.ui.text.shape .side {
  white-space: nowrap;
}
.ui.text.shape .side > * {
  white-space: normal;
}
/*******************************
             States
*******************************/
/*--------------
    Loading
---------------*/
.ui.loading.shape {
  position: absolute;
  top: -9999px;
  left: -9999px;
}
/*--------------
    Animating
---------------*/
.ui.shape .animating.side {
  position: absolute;
  top: 0px;
  left: 0px;
  display: block;
  z-index: 100;
}
.ui.shape .hidden.side {
  opacity: 0.6;
}
/*--------------
      CSS
---------------*/
.ui.shape.animating .sides {
  position: absolute;
}
.ui.shape.animating .sides {
  transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
}
.ui.shape.animating .side {
  transition: opacity 0.6s ease-in-out;
}
/*--------------
     Active
---------------*/
.ui.shape .active.side {
  display: block;
}
/*!
 * # Semantic UI - Sidebar
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
             Sidebar
*******************************/
/*-------------------
       Content
--------------------*/
/* Animation */
/* Dimmer */
/* Color below page */
/* Shadow */
/* Layering */
/*-------------------
      Variations
--------------------*/
/* Width */
/* Height */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Sidebar
*******************************/
/* Sidebar Menu */
.ui.sidebar {
  position: fixed;
  top: 0;
  left: 0;
  backface-visibility: hidden;
  transition: none;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  visibility: hidden;
  -webkit-overflow-scrolling: touch;
  height: 100% !important;
  max-height: 100%;
  border-radius: 0em !important;
  margin: 0em !important;
  overflow-y: auto !important;
  z-index: 102;
}
/* GPU Layers for Child Elements */
.ui.sidebar > * {
  backface-visibility: hidden;
}
/*--------------
   Direction
---------------*/
.ui.left.sidebar {
  right: auto;
  left: 0px;
  transform: translate3d(-100%, 0, 0);
}
.ui.right.sidebar {
  right: 0px !important;
  left: auto !important;
  transform: translate3d(100%, 0%, 0);
}
.ui.top.sidebar,
.ui.bottom.sidebar {
  width: 100% !important;
  height: auto !important;
}
.ui.top.sidebar {
  top: 0px !important;
  bottom: auto !important;
  transform: translate3d(0, -100%, 0);
}
.ui.bottom.sidebar {
  top: auto !important;
  bottom: 0px !important;
  transform: translate3d(0, 100%, 0);
}
/*--------------
     Pushable
---------------*/
.pushable {
  height: 100%;
  overflow-x: hidden;
  padding: 0em !important;
}
/* Whole Page */
body.pushable {
  background: #545454 !important;
}
/* Page Context */
.pushable:not(body) {
  transform: translate3d(0, 0, 0);
}
.pushable:not(body) > .ui.sidebar,
.pushable:not(body) > .fixed,
.pushable:not(body) > .pusher:after {
  position: absolute;
}
/*--------------
     Fixed
---------------*/
.pushable > .fixed {
  position: fixed;
  backface-visibility: hidden;
  transition: transform 500ms ease;
  will-change: transform;
  z-index: 101;
}
/*--------------
     Page
---------------*/
.pushable > .pusher {
  position: relative;
  backface-visibility: hidden;
  overflow: hidden;
  min-height: 100%;
  transition: transform 500ms ease;
  z-index: 2;
}
body.pushable > .pusher {
  background: #FFFFFF;
}
/* Pusher should inherit background from context */
.pushable > .pusher {
  background: inherit;
}
/*--------------
     Dimmer
---------------*/
.pushable > .pusher:after {
  position: fixed;
  top: 0px;
  right: 0px;
  content: '';
  background-color: rgba(0, 0, 0, 0.4);
  overflow: hidden;
  opacity: 0;
  transition: opacity 500ms;
  will-change: opacity;
  z-index: 1000;
}
/*--------------
    Coupling
---------------*/
.ui.sidebar.menu .item {
  border-radius: 0em !important;
}
/*******************************
            States
*******************************/
/*--------------
     Dimmed
---------------*/
.pushable > .pusher.dimmed:after {
  width: 100% !important;
  height: 100% !important;
  opacity: 1 !important;
}
/*--------------
    Animating
---------------*/
.ui.animating.sidebar {
  visibility: visible;
}
/*--------------
     Visible
---------------*/
.ui.visible.sidebar {
  visibility: visible;
  transform: translate3d(0, 0, 0);
}
/* Shadow Direction */
.ui.left.visible.sidebar,
.ui.right.visible.sidebar {
  box-shadow: 0px 0px 20px rgba(34, 36, 38, 0.15);
}
.ui.top.visible.sidebar,
.ui.bottom.visible.sidebar {
  box-shadow: 0px 0px 20px rgba(34, 36, 38, 0.15);
}
/* Visible On Load */
.ui.visible.left.sidebar ~ .fixed,
.ui.visible.left.sidebar ~ .pusher {
  transform: translate3d(260px, 0, 0);
}
.ui.visible.right.sidebar ~ .fixed,
.ui.visible.right.sidebar ~ .pusher {
  transform: translate3d(-260px, 0, 0);
}
.ui.visible.top.sidebar ~ .fixed,
.ui.visible.top.sidebar ~ .pusher {
  transform: translate3d(0, 36px, 0);
}
.ui.visible.bottom.sidebar ~ .fixed,
.ui.visible.bottom.sidebar ~ .pusher {
  transform: translate3d(0, -36px, 0);
}
/* opposite sides visible forces content overlay */
.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .fixed,
.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher,
.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .fixed,
.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher {
  transform: translate3d(0, 0, 0);
}
/*--------------
       iOS
---------------*/
/*******************************
          Variations
*******************************/
/*--------------
     Width
---------------*/
/* Left / Right */
.ui.thin.left.sidebar,
.ui.thin.right.sidebar {
  width: 150px;
}
.ui[class*="very thin"].left.sidebar,
.ui[class*="very thin"].right.sidebar {
  width: 60px;
}
.ui.left.sidebar,
.ui.right.sidebar {
  width: 260px;
}
.ui.wide.left.sidebar,
.ui.wide.right.sidebar {
  width: 350px;
}
.ui[class*="very wide"].left.sidebar,
.ui[class*="very wide"].right.sidebar {
  width: 475px;
}
/* Left Visible */
.ui.visible.thin.left.sidebar ~ .fixed,
.ui.visible.thin.left.sidebar ~ .pusher {
  transform: translate3d(150px, 0, 0);
}
.ui.visible[class*="very thin"].left.sidebar ~ .fixed,
.ui.visible[class*="very thin"].left.sidebar ~ .pusher {
  transform: translate3d(60px, 0, 0);
}
.ui.visible.wide.left.sidebar ~ .fixed,
.ui.visible.wide.left.sidebar ~ .pusher {
  transform: translate3d(350px, 0, 0);
}
.ui.visible[class*="very wide"].left.sidebar ~ .fixed,
.ui.visible[class*="very wide"].left.sidebar ~ .pusher {
  transform: translate3d(475px, 0, 0);
}
/* Right Visible */
.ui.visible.thin.right.sidebar ~ .fixed,
.ui.visible.thin.right.sidebar ~ .pusher {
  transform: translate3d(-150px, 0, 0);
}
.ui.visible[class*="very thin"].right.sidebar ~ .fixed,
.ui.visible[class*="very thin"].right.sidebar ~ .pusher {
  transform: translate3d(-60px, 0, 0);
}
.ui.visible.wide.right.sidebar ~ .fixed,
.ui.visible.wide.right.sidebar ~ .pusher {
  transform: translate3d(-350px, 0, 0);
}
.ui.visible[class*="very wide"].right.sidebar ~ .fixed,
.ui.visible[class*="very wide"].right.sidebar ~ .pusher {
  transform: translate3d(-475px, 0, 0);
}
/*******************************
          Animations
*******************************/
/*--------------
    Overlay
---------------*/
/* Set-up */
.ui.overlay.sidebar {
  z-index: 102;
}
/* Initial */
.ui.left.overlay.sidebar {
  transform: translate3d(-100%, 0%, 0);
}
.ui.right.overlay.sidebar {
  transform: translate3d(100%, 0%, 0);
}
.ui.top.overlay.sidebar {
  transform: translate3d(0%, -100%, 0);
}
.ui.bottom.overlay.sidebar {
  transform: translate3d(0%, 100%, 0);
}
/* Animation */
.animating.ui.overlay.sidebar,
.ui.visible.overlay.sidebar {
  transition: transform 500ms ease;
}
/* End - Sidebar */
.ui.visible.left.overlay.sidebar {
  transform: translate3d(0%, 0%, 0);
}
.ui.visible.right.overlay.sidebar {
  transform: translate3d(0%, 0%, 0);
}
.ui.visible.top.overlay.sidebar {
  transform: translate3d(0%, 0%, 0);
}
.ui.visible.bottom.overlay.sidebar {
  transform: translate3d(0%, 0%, 0);
}
/* End - Pusher */
.ui.visible.overlay.sidebar ~ .fixed,
.ui.visible.overlay.sidebar ~ .pusher {
  transform: none !important;
}
/*--------------
      Push
---------------*/
/* Initial */
.ui.push.sidebar {
  transition: transform 500ms ease;
  z-index: 102;
}
/* Sidebar - Initial */
.ui.left.push.sidebar {
  transform: translate3d(-100%, 0, 0);
}
.ui.right.push.sidebar {
  transform: translate3d(100%, 0, 0);
}
.ui.top.push.sidebar {
  transform: translate3d(0%, -100%, 0);
}
.ui.bottom.push.sidebar {
  transform: translate3d(0%, 100%, 0);
}
/* End */
.ui.visible.push.sidebar {
  transform: translate3d(0%, 0, 0);
}
/*--------------
    Uncover
---------------*/
/* Initial */
.ui.uncover.sidebar {
  transform: translate3d(0, 0, 0);
  z-index: 1;
}
/* End */
.ui.visible.uncover.sidebar {
  transform: translate3d(0, 0, 0);
  transition: transform 500ms ease;
}
/*--------------
   Slide Along
---------------*/
/* Initial */
.ui.slide.along.sidebar {
  z-index: 1;
}
/* Sidebar - Initial */
.ui.left.slide.along.sidebar {
  transform: translate3d(-50%, 0, 0);
}
.ui.right.slide.along.sidebar {
  transform: translate3d(50%, 0, 0);
}
.ui.top.slide.along.sidebar {
  transform: translate3d(0, -50%, 0);
}
.ui.bottom.slide.along.sidebar {
  transform: translate3d(0%, 50%, 0);
}
/* Animation */
.ui.animating.slide.along.sidebar {
  transition: transform 500ms ease;
}
/* End */
.ui.visible.slide.along.sidebar {
  transform: translate3d(0%, 0, 0);
}
/*--------------
   Slide Out
---------------*/
/* Initial */
.ui.slide.out.sidebar {
  z-index: 1;
}
/* Sidebar - Initial */
.ui.left.slide.out.sidebar {
  transform: translate3d(50%, 0, 0);
}
.ui.right.slide.out.sidebar {
  transform: translate3d(-50%, 0, 0);
}
.ui.top.slide.out.sidebar {
  transform: translate3d(0%, 50%, 0);
}
.ui.bottom.slide.out.sidebar {
  transform: translate3d(0%, -50%, 0);
}
/* Animation */
.ui.animating.slide.out.sidebar {
  transition: transform 500ms ease;
}
/* End */
.ui.visible.slide.out.sidebar {
  transform: translate3d(0%, 0, 0);
}
/*--------------
   Scale Down
---------------*/
/* Initial */
.ui.scale.down.sidebar {
  transition: transform 500ms ease;
  z-index: 102;
}
/* Sidebar - Initial  */
.ui.left.scale.down.sidebar {
  transform: translate3d(-100%, 0, 0);
}
.ui.right.scale.down.sidebar {
  transform: translate3d(100%, 0, 0);
}
.ui.top.scale.down.sidebar {
  transform: translate3d(0%, -100%, 0);
}
.ui.bottom.scale.down.sidebar {
  transform: translate3d(0%, 100%, 0);
}
/* Pusher - Initial */
.ui.scale.down.left.sidebar ~ .pusher {
  transform-origin: 75% 50%;
}
.ui.scale.down.right.sidebar ~ .pusher {
  transform-origin: 25% 50%;
}
.ui.scale.down.top.sidebar ~ .pusher {
  transform-origin: 50% 75%;
}
.ui.scale.down.bottom.sidebar ~ .pusher {
  transform-origin: 50% 25%;
}
/* Animation */
.ui.animating.scale.down > .visible.ui.sidebar {
  transition: transform 500ms ease;
}
.ui.visible.scale.down.sidebar ~ .pusher,
.ui.animating.scale.down.sidebar ~ .pusher {
  display: block !important;
  width: 100%;
  height: 100%;
  overflow: hidden !important;
}
/* End */
.ui.visible.scale.down.sidebar {
  transform: translate3d(0, 0, 0);
}
.ui.visible.scale.down.sidebar ~ .pusher {
  transform: scale(0.75);
}
/*!
 * # Semantic UI - Sticky
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
            Sticky
*******************************/
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
            Sticky
*******************************/
.ui.sticky {
  position: static;
  transition: none;
  z-index: 800;
}
/*******************************
            States
*******************************/
/* Bound */
.ui.sticky.bound {
  position: absolute;
  left: auto;
  right: auto;
}
/* Fixed */
.ui.sticky.fixed {
  position: fixed;
  left: auto;
  right: auto;
}
/* Bound/Fixed Position */
.ui.sticky.bound.top,
.ui.sticky.fixed.top {
  top: 0px;
  bottom: auto;
}
.ui.sticky.bound.bottom,
.ui.sticky.fixed.bottom {
  top: auto;
  bottom: 0px;
}
/*******************************
            Types
*******************************/
.ui.native.sticky {
  position: -webkit-sticky;
  position: -moz-sticky;
  position: -ms-sticky;
  position: -o-sticky;
  position: sticky;
}
/*!
 * # Semantic UI - Tab
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
              Tab
*******************************/
/* Loading */
/* Packaged Theme */
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
           UI Tabs
*******************************/
.ui.tab {
  display: none;
}
/*******************************
             States
*******************************/
/*--------------------
       Active
---------------------*/
.ui.tab.active,
.ui.tab.open {
  display: block;
}
/*--------------------
       Loading
---------------------*/
.ui.tab.loading {
  position: relative;
  overflow: hidden;
  display: block;
  min-height: 250px;
}
.ui.tab.loading * {
  position: relative !important;
  left: -10000px !important;
}
.ui.tab.loading:before,
.ui.tab.loading.segment:before {
  position: absolute;
  content: '';
  top: 100px;
  left: 50%;
  margin: -1.25em 0em 0em -1.25em;
  width: 2.5em;
  height: 2.5em;
  border-radius: 500rem;
  border: 0.2em solid rgba(0, 0, 0, 0.1);
}
.ui.tab.loading:after,
.ui.tab.loading.segment:after {
  position: absolute;
  content: '';
  top: 100px;
  left: 50%;
  margin: -1.25em 0em 0em -1.25em;
  width: 2.5em;
  height: 2.5em;
  animation: button-spin 0.6s linear;
  animation-iteration-count: infinite;
  border-radius: 500rem;
  border-color: #767676 transparent transparent;
  border-style: solid;
  border-width: 0.2em;
  box-shadow: 0px 0px 0px 1px transparent;
}
/*!
 * # Semantic UI - Transition
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */
/*******************************
            Theme
*******************************/
/*

████████╗██╗  ██╗███████╗███╗   ███╗███████╗███████╗
╚══██╔══╝██║  ██║██╔════╝████╗ ████║██╔════╝██╔════╝
   ██║   ███████║█████╗  ██╔████╔██║█████╗  ███████╗
   ██║   ██╔══██║██╔══╝  ██║╚██╔╝██║██╔══╝  ╚════██║
   ██║   ██║  ██║███████╗██║ ╚═╝ ██║███████╗███████║
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝     ╚═╝╚══════╝╚══════╝

*/
/*******************************
        Theme Selection
*******************************/
/* To override a theme for an individual element
   specify theme name below
*/
/* Global */
/* Elements */
/* Collections */
/* Modules */
/* Views */
/*******************************
            Folders
*******************************/
/* Path to theme packages */
/* Path to site override folder */
/*******************************
         Import Theme
*******************************/
/*******************************
        Import Directives
*******************************/
/*------------------
       Theme
-------------------*/
/*--------------------
   Site Variables
---------------------*/
/* Default site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Packaged site.variables */
/*******************************
     User Global Variables
*******************************/
/*******************************
     User Global Variables
*******************************/
/*--- Brand main colors ---*/
/*--- Cover page margin ---*/
/*--- code tag color ---*/
/*--- Sign up color ---*/
/*--- Search button color ---*/
/*--- Fonts ---*/
/* Component's site.variables */
/*******************************
         Site Settings
*******************************/
/*-------------------
       Fonts
--------------------*/
/*-------------------
      Base Sizes
--------------------*/
/* This is the single variable that controls them all */
/* The size of page text  */
/*-------------------
    Border Radius
--------------------*/
/* See Power-user section below
   for explanation of @px variables
*/
/*-------------------
    Brand Colors
--------------------*/
/*--------------
  Page Heading
---------------*/
/*--------------
   Form Input
---------------*/
/* This adjusts the default form input across all elements */
/* Input Text Color */
/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
/*-------------------
    Focused Input
--------------------*/
/* Used on inputs, textarea etc */
/* Used on dropdowns, other larger blocks */
/*-------------------
        Sizes
--------------------*/
/*
  Sizes are all expressed in terms of 14px/em (default em)
  This ensures these "ratios" remain constant despite changes in EM
*/
/*-------------------
        Page
--------------------*/
/*-------------------
      Paragraph
--------------------*/
/*-------------------
       Links
--------------------*/
/*-------------------
    Scroll Bars
--------------------*/
/* Inverted */
/*-------------------
  Highlighted Text
--------------------*/
/*-------------------
       Loader
--------------------*/
/*-------------------
        Grid
--------------------*/
/*-------------------
     Transitions
--------------------*/
/*-------------------
     Breakpoints
--------------------*/
/*-------------------
      Site Colors
--------------------*/
/*---  Colors  ---*/
/*---  Light Colors  ---*/
/*---   Neutrals  ---*/
/*--- Colored Backgrounds ---*/
/*--- Colored Headers ---*/
/*--- Colored Text ---*/
/*--- Colored Border ---*/
/*-------------------
     Alpha Colors
--------------------*/
/*-------------------
       Accents
--------------------*/
/* Differentiating Neutrals */
/* Differentiating Layers */
/*******************************
           Power-User
*******************************/
/*-------------------
    Emotive Colors
--------------------*/
/* Positive */
/* Negative */
/* Info */
/* Warning */
/*-------------------
        Paths
--------------------*/
/* For source only. Modified in gulp for dist */
/*-------------------
       Em Sizes
--------------------*/
/*
  This rounds @size values to the closest pixel then expresses that value in (r)em.
  This ensures all size values round to exact pixels
*/
/* em */
/* rem */
/*-------------------
       Icons
--------------------*/
/* Maximum Glyph Width of Icon */
/*-------------------
     Neutral Text
--------------------*/
/*-------------------
     Brand Colors
--------------------*/
/*-------------------
      Borders
--------------------*/
/*-------------------
    Derived Values
--------------------*/
/* Loaders Position Offset */
/* Rendered Scrollbar Width */
/* Maximum Single Character Glyph Width, aka Capital "W" */
/* Used to match floats with text */
/* Header Spacing */
/* Minimum Mobile Width */
/* Positive / Negative Dupes */
/* Responsive */
/*-------------------
  Exact Pixel Values
--------------------*/
/*
  These are used to specify exact pixel values in em
  for things like borders that remain constantly
  sized as emSize adjusts

  Since there are many more sizes than names for sizes,
  these are named by their original pixel values.

*/
/* Columns */
/*******************************
             States
*******************************/
/*-------------------
      Disabled
--------------------*/
/*-------------------
        Hover
--------------------*/
/*---  Shadows  ---*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Focus
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
    Down (:active)
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/*-------------------
        Active
--------------------*/
/*---  Colors  ---*/
/*---  Emotive  ---*/
/*---  Brand   ---*/
/*---  Dark Tones  ---*/
/*---  Light Tones  ---*/
/* Site theme site.variables */
/*
 *   Copyright (C) 2019-2020 CERN.
 *   Copyright (C) 2019-2020 Northwestern University.
 *
 * Invenio App RDM is free software; you can redistribute it and/or modify it
 * under the terms of the MIT License; see LICENSE file for more details.
 */
/* Main colors */
/*-------------------
 Component Variables
---------------------*/
/* Default */
/*******************************
          Transition
*******************************/
/* Packaged Theme */
/*******************************
          Transition
*******************************/
/* Site Theme */
/*******************************
             Mix-ins
*******************************/
/*------------------
       Fonts
-------------------*/
/*------------------
     Overrides
-------------------*/
/* End Config */
/*******************************
          Transitions
*******************************/
.transition {
  animation-iteration-count: 1;
  animation-duration: 300ms;
  animation-timing-function: ease;
  animation-fill-mode: both;
}
/*******************************
            States
*******************************/
/* Animating */
.animating.transition {
  backface-visibility: hidden;
  visibility: visible !important;
}
/* Loading */
.loading.transition {
  position: absolute;
  top: -99999px;
  left: -99999px;
}
/* Hidden */
.hidden.transition {
  display: none;
  visibility: hidden;
}
/* Visible */
.visible.transition {
  display: block !important;
  visibility: visible !important;
  /*  backface-visibility: @backfaceVisibility;
  transform: @use3DAcceleration;*/
}
/* Disabled */
.disabled.transition {
  animation-play-state: paused;
}
/*******************************
          Variations
*******************************/
.looping.transition {
  animation-iteration-count: infinite;
}
/*******************************
          Transitions
*******************************/
/*
  Some transitions adapted from Animate CSS
  https://github.com/daneden/animate.css

  Additional transitions adapted from Glide
  by Nick Pettit - https://github.com/nickpettit/glide
*/
/*--------------
     Browse
---------------*/
.transition.browse {
  animation-duration: 500ms;
}
.transition.browse.in {
  animation-name: browseIn;
}
.transition.browse.out,
.transition.browse.left.out {
  animation-name: browseOutLeft;
}
.transition.browse.right.out {
  animation-name: browseOutRight;
}
/* In */
@keyframes browseIn {
  0% {
    transform: scale(0.8) translateZ(0px);
    z-index: -1;
  }
  10% {
    transform: scale(0.8) translateZ(0px);
    z-index: -1;
    opacity: 0.7;
  }
  80% {
    transform: scale(1.05) translateZ(0px);
    opacity: 1;
    z-index: 999;
  }
  100% {
    transform: scale(1) translateZ(0px);
    z-index: 999;
  }
}
/* Out */
@keyframes browseOutLeft {
  0% {
    z-index: 999;
    transform: translateX(0%) rotateY(0deg) rotateX(0deg);
  }
  50% {
    z-index: -1;
    transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
  }
  80% {
    opacity: 1;
  }
  100% {
    z-index: -1;
    transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
    opacity: 0;
  }
}
@keyframes browseOutRight {
  0% {
    z-index: 999;
    transform: translateX(0%) rotateY(0deg) rotateX(0deg);
  }
  50% {
    z-index: 1;
    transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
  }
  80% {
    opacity: 1;
  }
  100% {
    z-index: 1;
    transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
    opacity: 0;
  }
}
/*--------------
     Drop
---------------*/
.drop.transition {
  transform-origin: top center;
  animation-duration: 400ms;
  animation-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1);
}
.drop.transition.in {
  animation-name: dropIn;
}
.drop.transition.out {
  animation-name: dropOut;
}
/* Drop */
@keyframes dropIn {
  0% {
    opacity: 0;
    transform: scale(0);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes dropOut {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0);
  }
}
/*--------------
      Fade
---------------*/
.transition.fade.in {
  animation-name: fadeIn;
}
.transition[class*="fade up"].in {
  animation-name: fadeInUp;
}
.transition[class*="fade down"].in {
  animation-name: fadeInDown;
}
.transition[class*="fade left"].in {
  animation-name: fadeInLeft;
}
.transition[class*="fade right"].in {
  animation-name: fadeInRight;
}
.transition.fade.out {
  animation-name: fadeOut;
}
.transition[class*="fade up"].out {
  animation-name: fadeOutUp;
}
.transition[class*="fade down"].out {
  animation-name: fadeOutDown;
}
.transition[class*="fade left"].out {
  animation-name: fadeOutLeft;
}
.transition[class*="fade right"].out {
  animation-name: fadeOutRight;
}
/* In */
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(10%);
  }
  100% {
    opacity: 1;
    transform: translateY(0%);
  }
}
@keyframes fadeInDown {
  0% {
    opacity: 0;
    transform: translateY(-10%);
  }
  100% {
    opacity: 1;
    transform: translateY(0%);
  }
}
@keyframes fadeInLeft {
  0% {
    opacity: 0;
    transform: translateX(10%);
  }
  100% {
    opacity: 1;
    transform: translateX(0%);
  }
}
@keyframes fadeInRight {
  0% {
    opacity: 0;
    transform: translateX(-10%);
  }
  100% {
    opacity: 1;
    transform: translateX(0%);
  }
}
/* Out */
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes fadeOutUp {
  0% {
    opacity: 1;
    transform: translateY(0%);
  }
  100% {
    opacity: 0;
    transform: translateY(5%);
  }
}
@keyframes fadeOutDown {
  0% {
    opacity: 1;
    transform: translateY(0%);
  }
  100% {
    opacity: 0;
    transform: translateY(-5%);
  }
}
@keyframes fadeOutLeft {
  0% {
    opacity: 1;
    transform: translateX(0%);
  }
  100% {
    opacity: 0;
    transform: translateX(5%);
  }
}
@keyframes fadeOutRight {
  0% {
    opacity: 1;
    transform: translateX(0%);
  }
  100% {
    opacity: 0;
    transform: translateX(-5%);
  }
}
/*--------------
     Flips
---------------*/
.flip.transition.in,
.flip.transition.out {
  animation-duration: 600ms;
}
.horizontal.flip.transition.in {
  animation-name: horizontalFlipIn;
}
.horizontal.flip.transition.out {
  animation-name: horizontalFlipOut;
}
.vertical.flip.transition.in {
  animation-name: verticalFlipIn;
}
.vertical.flip.transition.out {
  animation-name: verticalFlipOut;
}
/* In */
@keyframes horizontalFlipIn {
  0% {
    transform: perspective(2000px) rotateY(-90deg);
    opacity: 0;
  }
  100% {
    transform: perspective(2000px) rotateY(0deg);
    opacity: 1;
  }
}
@keyframes verticalFlipIn {
  0% {
    transform: perspective(2000px) rotateX(-90deg);
    opacity: 0;
  }
  100% {
    transform: perspective(2000px) rotateX(0deg);
    opacity: 1;
  }
}
/* Out */
@keyframes horizontalFlipOut {
  0% {
    transform: perspective(2000px) rotateY(0deg);
    opacity: 1;
  }
  100% {
    transform: perspective(2000px) rotateY(90deg);
    opacity: 0;
  }
}
@keyframes verticalFlipOut {
  0% {
    transform: perspective(2000px) rotateX(0deg);
    opacity: 1;
  }
  100% {
    transform: perspective(2000px) rotateX(-90deg);
    opacity: 0;
  }
}
/*--------------
      Scale
---------------*/
.scale.transition.in {
  animation-name: scaleIn;
}
.scale.transition.out {
  animation-name: scaleOut;
}
@keyframes scaleIn {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
/* Out */
@keyframes scaleOut {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0.9);
  }
}
/*--------------
      Fly
---------------*/
/* Inward */
.transition.fly {
  animation-duration: 0.6s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}
.transition.fly.in {
  animation-name: flyIn;
}
.transition[class*="fly up"].in {
  animation-name: flyInUp;
}
.transition[class*="fly down"].in {
  animation-name: flyInDown;
}
.transition[class*="fly left"].in {
  animation-name: flyInLeft;
}
.transition[class*="fly right"].in {
  animation-name: flyInRight;
}
/* Outward */
.transition.fly.out {
  animation-name: flyOut;
}
.transition[class*="fly up"].out {
  animation-name: flyOutUp;
}
.transition[class*="fly down"].out {
  animation-name: flyOutDown;
}
.transition[class*="fly left"].out {
  animation-name: flyOutLeft;
}
.transition[class*="fly right"].out {
  animation-name: flyOutRight;
}
/* In */
@keyframes flyIn {
  0% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  20% {
    transform: scale3d(1.1, 1.1, 1.1);
  }
  40% {
    transform: scale3d(0.9, 0.9, 0.9);
  }
  60% {
    opacity: 1;
    transform: scale3d(1.03, 1.03, 1.03);
  }
  80% {
    transform: scale3d(0.97, 0.97, 0.97);
  }
  100% {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}
@keyframes flyInUp {
  0% {
    opacity: 0;
    transform: translate3d(0, 1500px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }
  75% {
    transform: translate3d(0, 10px, 0);
  }
  90% {
    transform: translate3d(0, -5px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes flyInDown {
  0% {
    opacity: 0;
    transform: translate3d(0, -1500px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, 25px, 0);
  }
  75% {
    transform: translate3d(0, -10px, 0);
  }
  90% {
    transform: translate3d(0, 5px, 0);
  }
  100% {
    transform: none;
  }
}
@keyframes flyInLeft {
  0% {
    opacity: 0;
    transform: translate3d(1500px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }
  75% {
    transform: translate3d(10px, 0, 0);
  }
  90% {
    transform: translate3d(-5px, 0, 0);
  }
  100% {
    transform: none;
  }
}
@keyframes flyInRight {
  0% {
    opacity: 0;
    transform: translate3d(-1500px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }
  75% {
    transform: translate3d(-10px, 0, 0);
  }
  90% {
    transform: translate3d(5px, 0, 0);
  }
  100% {
    transform: none;
  }
}
/* Out */
@keyframes flyOut {
  20% {
    transform: scale3d(0.9, 0.9, 0.9);
  }
  50%,
  55% {
    opacity: 1;
    transform: scale3d(1.1, 1.1, 1.1);
  }
  100% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
}
@keyframes flyOutUp {
  20% {
    transform: translate3d(0, 10px, 0);
  }
  40%,
  45% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }
  100% {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}
@keyframes flyOutDown {
  20% {
    transform: translate3d(0, -10px, 0);
  }
  40%,
  45% {
    opacity: 1;
    transform: translate3d(0, 20px, 0);
  }
  100% {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}
@keyframes flyOutRight {
  20% {
    opacity: 1;
    transform: translate3d(20px, 0, 0);
  }
  100% {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}
@keyframes flyOutLeft {
  20% {
    opacity: 1;
    transform: translate3d(-20px, 0, 0);
  }
  100% {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}
/*--------------
     Slide
---------------*/
.transition.slide.in,
.transition[class*="slide down"].in {
  animation-name: slideInY;
  transform-origin: top center;
}
.transition[class*="slide up"].in {
  animation-name: slideInY;
  transform-origin: bottom center;
}
.transition[class*="slide left"].in {
  animation-name: slideInX;
  transform-origin: center right;
}
.transition[class*="slide right"].in {
  animation-name: slideInX;
  transform-origin: center left;
}
.transition.slide.out,
.transition[class*="slide down"].out {
  animation-name: slideOutY;
  transform-origin: top center;
}
.transition[class*="slide up"].out {
  animation-name: slideOutY;
  transform-origin: bottom center;
}
.transition[class*="slide left"].out {
  animation-name: slideOutX;
  transform-origin: center right;
}
.transition[class*="slide right"].out {
  animation-name: slideOutX;
  transform-origin: center left;
}
/* In */
@keyframes slideInY {
  0% {
    opacity: 0;
    transform: scaleY(0);
  }
  100% {
    opacity: 1;
    transform: scaleY(1);
  }
}
@keyframes slideInX {
  0% {
    opacity: 0;
    transform: scaleX(0);
  }
  100% {
    opacity: 1;
    transform: scaleX(1);
  }
}
/* Out */
@keyframes slideOutY {
  0% {
    opacity: 1;
    transform: scaleY(1);
  }
  100% {
    opacity: 0;
    transform: scaleY(0);
  }
}
@keyframes slideOutX {
  0% {
    opacity: 1;
    transform: scaleX(1);
  }
  100% {
    opacity: 0;
    transform: scaleX(0);
  }
}
/*--------------
     Swing
---------------*/
.transition.swing {
  animation-duration: 800ms;
}
.transition[class*="swing down"].in {
  animation-name: swingInX;
  transform-origin: top center;
}
.transition[class*="swing up"].in {
  animation-name: swingInX;
  transform-origin: bottom center;
}
.transition[class*="swing left"].in {
  animation-name: swingInY;
  transform-origin: center right;
}
.transition[class*="swing right"].in {
  animation-name: swingInY;
  transform-origin: center left;
}
.transition.swing.out,
.transition[class*="swing down"].out {
  animation-name: swingOutX;
  transform-origin: top center;
}
.transition[class*="swing up"].out {
  animation-name: swingOutX;
  transform-origin: bottom center;
}
.transition[class*="swing left"].out {
  animation-name: swingOutY;
  transform-origin: center right;
}
.transition[class*="swing right"].out {
  animation-name: swingOutY;
  transform-origin: center left;
}
/* In */
@keyframes swingInX {
  0% {
    transform: perspective(1000px) rotateX(90deg);
    opacity: 0;
  }
  40% {
    transform: perspective(1000px) rotateX(-30deg);
    opacity: 1;
  }
  60% {
    transform: perspective(1000px) rotateX(15deg);
  }
  80% {
    transform: perspective(1000px) rotateX(-7.5deg);
  }
  100% {
    transform: perspective(1000px) rotateX(0deg);
  }
}
@keyframes swingInY {
  0% {
    transform: perspective(1000px) rotateY(-90deg);
    opacity: 0;
  }
  40% {
    transform: perspective(1000px) rotateY(30deg);
    opacity: 1;
  }
  60% {
    transform: perspective(1000px) rotateY(-17.5deg);
  }
  80% {
    transform: perspective(1000px) rotateY(7.5deg);
  }
  100% {
    transform: perspective(1000px) rotateY(0deg);
  }
}
/* Out */
@keyframes swingOutX {
  0% {
    transform: perspective(1000px) rotateX(0deg);
  }
  40% {
    transform: perspective(1000px) rotateX(-7.5deg);
  }
  60% {
    transform: perspective(1000px) rotateX(17.5deg);
  }
  80% {
    transform: perspective(1000px) rotateX(-30deg);
    opacity: 1;
  }
  100% {
    transform: perspective(1000px) rotateX(90deg);
    opacity: 0;
  }
}
@keyframes swingOutY {
  0% {
    transform: perspective(1000px) rotateY(0deg);
  }
  40% {
    transform: perspective(1000px) rotateY(7.5deg);
  }
  60% {
    transform: perspective(1000px) rotateY(-10deg);
  }
  80% {
    transform: perspective(1000px) rotateY(30deg);
    opacity: 1;
  }
  100% {
    transform: perspective(1000px) rotateY(-90deg);
    opacity: 0;
  }
}
/*--------------
      Zoom
---------------*/
.transition.zoom.in {
  animation-name: zoomIn;
}
.transition.zoom.out {
  animation-name: zoomOut;
}
@keyframes zoomIn {
  0% {
    opacity: 1;
    transform: scale(0);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes zoomOut {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 1;
    transform: scale(0);
  }
}
/*******************************
       Static Animations
*******************************/
/*--------------
    Emphasis
---------------*/
.flash.transition {
  animation-duration: 750ms;
  animation-name: flash;
}
.shake.transition {
  animation-duration: 750ms;
  animation-name: shake;
}
.bounce.transition {
  animation-duration: 750ms;
  animation-name: bounce;
}
.tada.transition {
  animation-duration: 750ms;
  animation-name: tada;
}
.pulse.transition {
  animation-duration: 500ms;
  animation-name: pulse;
}
.jiggle.transition {
  animation-duration: 750ms;
  animation-name: jiggle;
}
.transition.glow {
  animation-duration: 2000ms;
  animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}
.transition.glow {
  animation-name: glow;
}
/* Flash */
@keyframes flash {
  0%,
  50%,
  100% {
    opacity: 1;
  }
  25%,
  75% {
    opacity: 0;
  }
}
/* Shake */
@keyframes shake {
  0%,
  100% {
    transform: translateX(0);
  }
  10%,
  30%,
  50%,
  70%,
  90% {
    transform: translateX(-10px);
  }
  20%,
  40%,
  60%,
  80% {
    transform: translateX(10px);
  }
}
/* Bounce */
@keyframes bounce {
  0%,
  20%,
  50%,
  80%,
  100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-30px);
  }
  60% {
    transform: translateY(-15px);
  }
}
/* Tada */
@keyframes tada {
  0% {
    transform: scale(1);
  }
  10%,
  20% {
    transform: scale(0.9) rotate(-3deg);
  }
  30%,
  50%,
  70%,
  90% {
    transform: scale(1.1) rotate(3deg);
  }
  40%,
  60%,
  80% {
    transform: scale(1.1) rotate(-3deg);
  }
  100% {
    transform: scale(1) rotate(0);
  }
}
/* Pulse */
@keyframes pulse {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(0.9);
    opacity: 0.7;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
/* Jiggle */
@keyframes jiggle {
  0% {
    transform: scale3d(1, 1, 1);
  }
  30% {
    transform: scale3d(1.25, 0.75, 1);
  }
  40% {
    transform: scale3d(0.75, 1.25, 1);
  }
  50% {
    transform: scale3d(1.15, 0.85, 1);
  }
  65% {
    transform: scale3d(0.95, 1.05, 1);
  }
  75% {
    transform: scale3d(1.05, 0.95, 1);
  }
  100% {
    transform: scale3d(1, 1, 1);
  }
}
/* Glow */
@keyframes glow {
  0% {
    background-color: #FCFCFD;
  }
  30% {
    background-color: #FFF6CD;
  }
  100% {
    background-color: #FCFCFD;
  }
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3Mvc2VtYW50aWMubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvZ2xvYmFscy9yZXNldC5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy90aGVtZXMvZGVmYXVsdC9nbG9iYWxzL3Jlc2V0Lm92ZXJyaWRlcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvZ2xvYmFscy9zaXRlLmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb190aGVtZS90aGVtZS9uYXZiYXIvbmF2YmFyLmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb190aGVtZS90aGVtZS9nbG9iYWxzL3NpdGUub3ZlcnJpZGVzIiwid2VicGFjazovLy9sZXNzL2ludmVuaW9fYXBwX3JkbS9mb290ZXIubGVzcyIsIndlYnBhY2s6Ly8vbGVzcy9pbnZlbmlvX2FwcF9yZG0vZnJvbnRwYWdlLmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb19hcHBfcmRtL2RlcG9zaXQubGVzcyIsIndlYnBhY2s6Ly8vbGVzcy9pbnZlbmlvX2FwcF9yZG0vc2VhcmNoLmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb19hcHBfcmRtL25hdmJhci5sZXNzIiwid2VicGFjazovLy9sZXNzL2ludmVuaW9fYXBwX3JkbS9sYW5kaW5nX3BhZ2UubGVzcyIsIndlYnBhY2s6Ly8vbGVzcy9pbnZlbmlvX2FwcF9yZG0vZXhwb3J0X3BhZ2UubGVzcyIsIndlYnBhY2s6Ly8vbGVzcy9pbnZlbmlvX2FwcF9yZG0vdGhlbWUubGVzcyIsIndlYnBhY2s6Ly8vbGVzcy9zaXRlL2dsb2JhbHMvc2l0ZS5vdmVycmlkZXMiLCJ3ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zZW1hbnRpYy11aS1sZXNzL2RlZmluaXRpb25zL2VsZW1lbnRzL2J1dHRvbi5sZXNzIiwid2VicGFjazovLy9sZXNzL2ludmVuaW9fdGhlbWUvdGhlbWUvZWxlbWVudHMvYnV0dG9uLm92ZXJyaWRlcyIsIndlYnBhY2s6Ly8vbGVzcy9pbnZlbmlvX2FwcF9yZG0vdGhlbWUvZWxlbWVudHMvYnV0dG9uLm92ZXJyaWRlcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvZWxlbWVudHMvY29udGFpbmVyLmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb190aGVtZS90aGVtZS9lbGVtZW50cy9jb250YWluZXIub3ZlcnJpZGVzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9lbGVtZW50cy9kaXZpZGVyLmxlc3MiLCJ3ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zZW1hbnRpYy11aS1sZXNzL2RlZmluaXRpb25zL2VsZW1lbnRzL2ZsYWcubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvZWxlbWVudHMvaGVhZGVyLmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb190aGVtZS90aGVtZS9lbGVtZW50cy9oZWFkZXIub3ZlcnJpZGVzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9lbGVtZW50cy9pY29uLmxlc3MiLCJ3ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zZW1hbnRpYy11aS1sZXNzL3RoZW1lcy9kZWZhdWx0L2VsZW1lbnRzL2ljb24ub3ZlcnJpZGVzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9lbGVtZW50cy9pbWFnZS5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9lbGVtZW50cy9pbnB1dC5sZXNzIiwid2VicGFjazovLy9sZXNzL2ludmVuaW9fdGhlbWUvdGhlbWUvZWxlbWVudHMvaW5wdXQub3ZlcnJpZGVzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9lbGVtZW50cy9sYWJlbC5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9lbGVtZW50cy9saXN0Lmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb19hcHBfcmRtL3RoZW1lL2VsZW1lbnRzL2xpc3Qub3ZlcnJpZGVzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9lbGVtZW50cy9sb2FkZXIubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvZWxlbWVudHMvcGxhY2Vob2xkZXIubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvZWxlbWVudHMvcmFpbC5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9lbGVtZW50cy9yZXZlYWwubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvZWxlbWVudHMvc2VnbWVudC5sZXNzIiwid2VicGFjazovLy9sZXNzL2ludmVuaW9fdGhlbWUvdGhlbWUvZWxlbWVudHMvc2VnbWVudC5vdmVycmlkZXMiLCJ3ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zZW1hbnRpYy11aS1sZXNzL2RlZmluaXRpb25zL2VsZW1lbnRzL3N0ZXAubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvY29sbGVjdGlvbnMvYnJlYWRjcnVtYi5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9jb2xsZWN0aW9ucy9mb3JtLmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb190aGVtZS90aGVtZS9jb2xsZWN0aW9ucy9mb3JtLm92ZXJyaWRlcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvY29sbGVjdGlvbnMvZ3JpZC5sZXNzIiwid2VicGFjazovLy9sZXNzL2ludmVuaW9fdGhlbWUvdGhlbWUvY29sbGVjdGlvbnMvZ3JpZC5vdmVycmlkZXMiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb19hcHBfcmRtL3RoZW1lL2NvbGxlY3Rpb25zL2dyaWQub3ZlcnJpZGVzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9jb2xsZWN0aW9ucy9tZW51Lmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb190aGVtZS90aGVtZS9jb2xsZWN0aW9ucy9tZW51Lm92ZXJyaWRlcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvY29sbGVjdGlvbnMvbWVzc2FnZS5sZXNzIiwid2VicGFjazovLy9sZXNzL2ludmVuaW9fdGhlbWUvdGhlbWUvY29sbGVjdGlvbnMvbWVzc2FnZS5vdmVycmlkZXMiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb19hcHBfcmRtL3RoZW1lL2NvbGxlY3Rpb25zL21lc3NhZ2Uub3ZlcnJpZGVzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9jb2xsZWN0aW9ucy90YWJsZS5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy92aWV3cy9hZC5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy92aWV3cy9jYXJkLmxlc3MiLCJ3ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zZW1hbnRpYy11aS1sZXNzL2RlZmluaXRpb25zL3ZpZXdzL2NvbW1lbnQubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvdmlld3MvZmVlZC5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy92aWV3cy9pdGVtLmxlc3MiLCJ3ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zZW1hbnRpYy11aS1sZXNzL2RlZmluaXRpb25zL3ZpZXdzL3N0YXRpc3RpYy5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9tb2R1bGVzL2FjY29yZGlvbi5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9tb2R1bGVzL2NoZWNrYm94Lmxlc3MiLCJ3ZWJwYWNrOi8vL2xlc3MvaW52ZW5pb190aGVtZS90aGVtZS9tb2R1bGVzL2NoZWNrYm94Lm92ZXJyaWRlcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvbW9kdWxlcy9kaW1tZXIubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvbW9kdWxlcy9kcm9wZG93bi5sZXNzIiwid2VicGFjazovLy9sZXNzL2ludmVuaW9fYXBwX3JkbS90aGVtZS9tb2R1bGVzL2Ryb3Bkb3duLm92ZXJyaWRlcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvbW9kdWxlcy9lbWJlZC5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9tb2R1bGVzL21vZGFsLmxlc3MiLCJ3ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zZW1hbnRpYy11aS1sZXNzL2RlZmluaXRpb25zL21vZHVsZXMvbmFnLmxlc3MiLCJ3ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zZW1hbnRpYy11aS1sZXNzL2RlZmluaXRpb25zL21vZHVsZXMvcG9wdXAubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvZGVmaW5pdGlvbnMvbW9kdWxlcy9wcm9ncmVzcy5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9tb2R1bGVzL3JhdGluZy5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9tb2R1bGVzL3NlYXJjaC5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9tb2R1bGVzL3NoYXBlLmxlc3MiLCJ3ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zZW1hbnRpYy11aS1sZXNzL2RlZmluaXRpb25zL21vZHVsZXMvc2lkZWJhci5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9tb2R1bGVzL3N0aWNreS5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9tb2R1bGVzL3RhYi5sZXNzIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvc2VtYW50aWMtdWktbGVzcy9kZWZpbml0aW9ucy9tb2R1bGVzL3RyYW5zaXRpb24ubGVzcyIsIndlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3NlbWFudGljLXVpLWxlc3MvdGhlbWVzL2RlZmF1bHQvbW9kdWxlcy90cmFuc2l0aW9uLm92ZXJyaWRlcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztDQVVDO0FBQ0QsV0FBVztBQUNYOzs7Ozs7OztFQVFF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O0FRdDdEekI7RVJ3N0RFOzs7O0dBSUM7RUFDRCxHQUFHO0VBQ0gscUJBQXFCO0FBQ3ZCO0FRLzdEQTtFQUdJO0VBQ0E7RUFDQTtBUis3REo7QVFwOERBO0VBUU07QVIrN0ROO0FRdjhEQTs7RUFtQkk7RUFDQTtBUnc3REo7QVE1OERBO0VBd0JJO0FSdTdESjtBUXQ3REk7RUFDRTtBUnc3RE47QVFsOURBO0VBZ0NJO0FScTdESjtBUXI5REE7RUFvQ0k7QVJvN0RKO0FReDlEQTtFQXdDSTtBUm03REo7QVEzOURBO0VBNkNNO0FSaTdETjtBUS82RE07RUFDRTtBUmk3RFI7QVFqK0RBO0VBc0RJO0FSODZESjtBUXArREE7RUEwREk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FSNjZESjtBUTUrREE7RUFrRUk7QVI2NkRKO0FRLytEQTtFQXNFSTtBUjQ2REo7QVFsL0RBO0VBMkVNO0VBQ0E7QVIwNkROO0FRdC9EQTtFQStFTTtBUjA2RE47QVF6L0RBO0VBa0ZNO0FSMDZETjtBUTUvREE7RUFxRk07QVIwNkROO0FRLy9EQTtFQXVGUTtFQUNBO0VBQ0E7QVIyNkRSO0FRMTZEUTtFQUNFO0VBQ0E7QVI0NkRWO0FReGdFQTtFQStGVTtBUjQ2RFY7QVEzZ0VBO0VBbUdRO0VBQ0E7QVIyNkRSO0FRL2dFQTtFQXdHTTtBUjA2RE47QVFsaEVBO0VBMkdNO0FSMDZETjtBUXJoRUE7RUFnSEk7QVJ3NkRKO0FBQ0EsY0FBYztBUXA2RGQ7RUFDRTtBUnM2REY7QUFDQTs7Ozs7RUFLRTtBU3RpRUY7RUFDRTtBVHdpRUY7QVNyaUVBO0VBQ0U7QVR1aUVGO0FTcGlFQTtFQUNFO0FUc2lFRjtBU25pRUE7RUFDRTtBVHFpRUY7QVNsaUVBO0VBQ0U7QVRvaUVGO0FTamlFQTtFQUNFO0FUbWlFRjtBU2hpRUE7RUFDRTtFQUNBO0VBQ0E7QVRraUVGO0FTcmlFQTtFQU1JO0VBQ0E7QVRraUVKO0FBQ0E7Ozs7OztFQU1FO0FVdmtFRjtFQUNFO0FWeWtFRjtBVXRrRUE7RUFDRTtFQUNBO0FWd2tFRjtBVXJrRUE7RUFDRTtBVnVrRUY7QVVwa0VBOztFQUVFO0FWc2tFRjtBVW5rRUE7RUFDRTtBVnFrRUY7QVV0a0VBO0VBR0k7RUFDQTtBVnNrRUo7QVVsa0VBO0VBQ0U7RUFDQTtBVm9rRUY7QVVqa0VBO0VBQ0U7QVZta0VGO0FVaGtFQTtFQUNFO0VBQ0E7QVZra0VGO0FVL2pFQTtFQUNFO0lBQ0U7SUFDQTtFVmlrRUY7RVU5akVBO0lBQ0U7RVZna0VGO0FBQ0Y7QVU3akVBO0VBQ0U7QVYrakVGO0FBQ0EsZ0JBQWdCO0FVNWpFaEI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBVjhqRUY7QVUzakVBO0VBQ0U7RUFDQTtBVjZqRUY7QVUxakVBO0VBQ0U7RUFDQTtBVjRqRUY7QVV6akVBO0VBQ0U7QVYyakVGO0FVeGpFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FWMGpFRjtBVXZqRUE7RUFDRTtBVnlqRUY7QVV0akVBO0VBQ0U7RUFDQTtBVndqRUY7QVUxakVBO0VBS0k7QVZ3akVKO0FBQ0EsZ0JBQWdCO0FVcGpFaEI7RUFDRTtJQUNFO0VWc2pFRjtFVXBqRUE7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VWc2pFRjtFVXBqRUE7SUFDRTtJQUNBO0lBQ0E7RVZzakVGO0VBQ0EsaUNBQWlDO0VVcGpFakM7SUFDRTtJQUNBO0VWc2pFRjtBQUNGO0FBQ0EsaUJBQWlCO0FVbmpFakI7RUFDRTtJQUNFO0lBQ0E7RVZxakVGO0VVbmpFQTtJQUNFO0VWcWpFRjtFVW5qRUE7SUFDRTtJQUNBO0lBQ0E7SUFDQTtFVnFqRUY7RVVuakVBO0lBQ0U7RVZxakVGO0VVbmpFQTtJQUNFO0VWcWpFRjtFVW5qRUE7SUFDRTtJQUNBO0VWcWpFRjtBQUNGO0FVbGpFQTtFQUNFO0lBQ0U7SUFDQTtFVm9qRUY7QUFDRjtBQUNBLGdDQUFnQztBVWpqRWhDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FWbWpFRjtBVWhqRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVZrakVGO0FVL2lFQTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBVmlqRUY7QVU5aUVBO0VBQ0U7QVZnakVGO0FVN2lFQTtFQUNFO0FWK2lFRjtBQUNBLGFBQWE7QVUzaUViO0VBQ0U7QVY2aUVGO0FVMWlFQTtFQUNFO0FWNGlFRjtBVXppRUE7RUFDRTtBVjJpRUY7QVV4aUVBO0VBQ0U7QVYwaUVGO0FVdmlFQTtFQUNFO0FWeWlFRjtBVXRpRUE7O0VBRUU7QVZ3aUVGO0FBQ0E7Ozs7Ozs7RUFPRTtBV3h3RUQ7RUFDSTtBWDB3RUw7QVd2d0VDO0VBQ0k7QVh5d0VMO0FXdHdFQztFQUNJO0FYd3dFTDtBV3B3RUM7RUFDSTtFQUNBO0VBQ0E7QVhzd0VMO0FXbndFQztFQUNJO0FYcXdFTDtBV2h3RUM7RUFDSTtBWGt3RUw7QVcvdkVDO0VBQ0k7QVhpd0VMO0FXbHdFQztFQUlRO0FYaXdFVDtBVzd2RUM7RUFDSTtBWCt2RUw7QVc1dkVDO0VBQ0k7QVg4dkVMO0FXM3ZFQztFQUNJO0VBQ0E7RUFDQTtBWDZ2RUw7QVcxdkVDO0VBQ0k7QVg0dkVMO0FXenZFQztFQUNHO0FYMnZFSjtBV3h2RUM7RUFDSTtFQUNBO0FYMHZFTDtBV3J2RUM7RUFDSTtBWHV2RUw7QVdydkVDO0VBQ0k7QVh1dkVMO0FXcnZFQztFQUVJO0FYc3ZFTDtBV3h2RUM7RUFLSTtBWHN2RUw7QVdqdkVDO0VBQ0k7QVhtdkVMO0FBQ0EsNkRBQTZEO0FXL3VFNUQ7RUFDRTtBWGl2RUg7QVc5dUVDO0VBQ0U7QVhndkVIO0FXN3VFQztFQUNFO0FYK3VFSDtBVzV1RUM7RUFDRTtBWDh1RUg7QVczdUVDO0VBQ0k7QVg2dUVMO0FXOXVFQztFQUlRO0FYNnVFVDtBV3p1RUM7RUFDSTtFQUNBO0FYMnVFTDtBV3h1RUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBWDB1RUw7QVd2dUVDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVh5dUVMO0FXaHZFQztFQVNRO0FYMHVFVDtBV3Z1RVM7RUFDSTtBWHl1RWI7QVd0dUVLO0VBQ0s7QVh3dUVWO0FXdHVFSztFQUNLO0FYd3VFVjtBV3B1RUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBWHN1RUw7QVcxdUVDO0VBT1E7QVhzdUVUO0FXanVFSTtFQUNLO0FYbXVFVDtBV2p1RUk7RUFDTTtBWG11RVY7QVcvdEVBO0VBQ0s7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBWGl1RUw7QVc5dEVBO0VBRVE7QVgrdEVSO0FXanVFQTtFQUtZO0VBQ0E7QVgrdEVaO0FXcnVFQTtFQVdRO0FYNnRFUjtBV3p0RUE7RUFDSTtFQUNBO0FYMnRFSjtBV3h0RUE7RUFFSTtBWHl0RUo7QVdydEVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QVh1dEVGO0FBQ0E7Ozs7O0VBS0U7QVk3NkVGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBWis2RUo7QWFoN0VBOztFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWJrN0VGO0FhLzZFQTtFQUNFO0VBQ0E7RUFDQTtBYmk3RUY7QWFwN0VBO0VBTUk7QWJpN0VKO0FhdjdFQTtFQVVJO0FiZzdFSjtBYTE3RUE7RUFZTTtFQUNBO0FiaTdFTjtBYTk3RUE7RUFrQkk7QWIrNkVKO0FhMzZFQTtFQUNFO0FiNjZFRjtBYTE2RUE7RUFDRTtFQUNBO0VBQ0E7QWI0NkVGO0FhejZFQTtFQUNFO0FiMjZFRjtBYXg2RUE7RUFDRTtBYjA2RUY7QWF0NkVBOzs7RUFHRTtFQUNBO0FidzZFRjtBYXQ2RUU7OztFQUNFO0FiMDZFSjtBYXQ2RUE7RUFDRTtFQUNBO0FidzZFRjtBYXI2RUE7RUFDRTtFQUNBO0FidTZFRjtBYXA2RUE7RUFDRTtFQUNBO0FiczZFRjtBYXA2RUU7RUFHRTtBYm82RUo7QWFoNkVBOzs7RUFHRTtFQUNBO0VBQ0E7QWJrNkVGO0FhLzVFQTs7Ozs7O0VBTUU7QWJpNkVGO0FhOTVFQTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FiZzZFRjtBYTc1RUE7RUFDRTtBYis1RUY7QWE1NUVBO0VBQ0U7QWI4NUVGO0FhMzVFQTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtBYjY1RUY7QWExNUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBYjQ1RUY7QWF6NUVBO0VBQ0U7RUFDQTtFQUNBO0FiMjVFRjtBYXg1RUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBYjA1RUY7QWE5NUVBO0VBT0k7RUFDQTtBYjA1RUo7QWF0NUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBYnc1RUY7QWE3NUVBO0VBUUk7RUFDQTtBYnc1RUo7QWFwNUVBO0VBQ0U7QWJzNUVGO0FhbjVFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FicTVFRjtBYWw1RUE7RUFDRTtJQUNFO0lBQ0E7SUFDQTtFYm81RUY7RWF2NUVBO0lBTUk7RWJvNUVKO0VhajVFQTtJQUdNO0ViaTVFTjtFYXA1RUE7SUFNTTtFYmk1RU47RWE3NEVBO0lBQ0U7SUFDQTtJQUNBO0ViKzRFRjtFYWw1RUE7SUFNSTtFYis0RUo7QUFDRjtBYTM0RUE7RUFDRTtFQUNBO0FiNjRFRjtBYTM0RUE7RUFDRTtBYjY0RUY7QWExNEVBOztFQUVFO0VBQ0E7RUFDQTtFQUNBO0FiNDRFRjtBYXg0RUE7RUFDRTtBYjA0RUY7QWF2NEVBO0VBQ0U7QWJ5NEVGO0FhdDRFQTtFQUNFO0VBQ0E7QWJ3NEVGO0FhcjRFQTtFQUNFO0FidTRFRjtBYW40RUE7RUFDRTtFQUNBO0VBQ0E7QWJxNEVGO0FhbDRFQTtFQUNFO0FibzRFRjtBYS8zRUE7RUFFSTtFQUNBO0FiZzRFSjtBYW40RUE7RUFNTTtFQUNBO0FiZzRFTjtBYXY0RUE7RUFZSTtBYjgzRUo7QWExNEVBOztFQWlCSTtBYjYzRUo7QWF6M0VBO0VBQ0U7QWIyM0VGO0FheDNFQTtFQUNFO0FiMDNFRjtBYXgzRUU7RUFDRTtBYjAzRUo7QWF4M0VFO0VBQ0U7QWIwM0VKO0FheDNFRTtFQUNFO0FiMDNFSjtBYXgzRUU7RUFDRTtBYjAzRUo7QWF0M0VBO0VBQ0U7QWJ3M0VGO0FhejNFQTtFQUdJO0FieTNFSjtBYTUzRUE7RUFLTTtBYjAzRU47QWFyM0VBO0VBQ0U7QWJ1M0VGO0FhcDNFQTtFQUNFO0FiczNFRjtBYW4zRUE7RUFDRTtBYnEzRUY7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RUFDQTtBZmdoR0Y7QWU5Z0dBO0VBQ0U7QWZnaEdGO0FlOWdHQTtFQUNFO0FmZ2hHRjtBZTlnR0E7RUFDRTtBZmdoR0Y7QUFDQSxpQkFBaUI7QWU3Z0dqQjtFQUNFO0VBQ0E7QWYrZ0dGO0FlN2dHQTtFQUNFO0FmK2dHRjtBZTdnR0E7RUFDRTtBZitnR0Y7QWU1Z0dBO0VBQ0U7RUFDQTtBZjhnR0Y7QWU1Z0dBO0VBQ0U7QWY4Z0dGO0FlNWdHQTtFQUNFO0FmOGdHRjtBQUNBLGlCQUFpQjtBZTNnR2pCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWY2Z0dGO0FlM2dHQTtFQUNFO0VBQ0E7QWY2Z0dGO0FlM2dHQTtFQUNFO0VBQ0E7QWY2Z0dGO0FlMWdHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FmNGdHRjtBZTFnR0E7RUFDRTtFQUNBO0FmNGdHRjtBZTFnR0E7RUFDRTtFQUNBO0FmNGdHRjtBQUNBOztxQkFFcUI7QWV4Z0dyQjs7RUFFRTtBZjBnR0Y7QWV4Z0dBO0VBQ0U7QWYwZ0dGO0FldmdHQTtFQUNFO0FmeWdHRjtBZXZnR0E7RUFDRTtBZnlnR0Y7QWV0Z0dBO0VBQ0U7QWZ3Z0dGO0FldGdHQTtFQUNFO0Fmd2dHRjtBZXJnR0E7RUFDRTtBZnVnR0Y7QWVyZ0dBO0VBQ0U7QWZ1Z0dGO0FlcGdHQTtFQUNFO0Fmc2dHRjtBZXBnR0E7RUFDRTtBZnNnR0Y7QWVuZ0dBO0VBQ0U7QWZxZ0dGO0FlbmdHQTtFQUNFO0FmcWdHRjtBZWxnR0E7RUFDRTtBZm9nR0Y7QWVsZ0dBO0VBQ0U7QWZvZ0dGO0FlamdHQTtFQUNFO0FmbWdHRjtBZWpnR0E7RUFDRTtBZm1nR0Y7QWVoZ0dBO0VBQ0U7QWZrZ0dGO0FlaGdHQTtFQUNFO0Fma2dHRjtBZS8vRkE7RUFDRTtBZmlnR0Y7QWUvL0ZBO0VBQ0U7QWZpZ0dGO0FlOS9GQTtFQUNFO0FmZ2dHRjtBZTkvRkE7RUFDRTtBZmdnR0Y7QWU3L0ZBO0VBQ0U7QWYrL0ZGO0FlNy9GQTtFQUNFO0FmKy9GRjtBQUNBLDJCQUEyQjtBZTUvRjNCOztFQUVFO0VBQ0E7QWY4L0ZGO0FlMy9GQTtF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QTtFQUNFO0F0QjA2UEY7QUFDQSxpQkFBaUI7QXNCdjZQakI7RUFDRTtBdEJ5NlBGO0FzQnY2UEE7RUFDRTtBdEJ5NlBGO0FzQnY2UEE7RUFDRTtBdEJ5NlBGO0FBQ0EsYUFBYTtBc0J2NlBiO0VBQ0U7QXRCeTZQRjtBc0J2NlBBO0VBQ0U7QXRCeTZQRjtBQUNBLGdCQUFnQjtBc0J0NlBoQjtFQUNFO0F0Qnc2UEY7QXNCdDZQQTtFQUNFO0F0Qnc2UEY7QXNCdDZQQTtFQUNFO0F0Qnc2UEY7QUFDQSxhQUFhO0FzQnQ2UGI7RUFDRTtBdEJ3NlBGO0FzQnQ2UEE7RUFDRTtBdEJ3NlBGO0FBQ0EsaUJBQWlCO0FzQnI2UGpCO0VBQ0U7QXRCdTZQRjtBc0JyNlBBO0VBQ0U7QXRCdTZQRjtBc0JyNlBBO0VBQ0U7QXRCdTZQRjtBQUNBLGFBQWE7QXNCcjZQYjtFQUNFO0F0QnU2UEY7QXNCcjZQQTtFQUNFO0F0QnU2UEY7QUFDQSxnQkFBZ0I7QXNCcDZQaEI7RUFDRTtBdEJzNlBGO0FzQnA2UEE7RUFDRTtBdEJzNlBGO0FzQnA2UEE7RUFDRTtBdEJzNlBGO0FBQ0EsYUFBYTtBc0JwNlBiO0VBQ0U7QXRCczZQRjtBc0JwNlBBO0VBQ0U7QXRCczZQRjtBQUNBLGVBQWU7QXNCbjZQZjtFQUNFO0F0QnE2UEY7QXNCbjZQQTtFQUNFO0F0QnE2UEY7QXNCbjZQQTtFQUNFO0F0QnE2UEY7QUFDQSxhQUFhO0FzQm42UGI7RUFDRTtBdEJxNlBGO0FzQm42UEE7RUFDRTtBdEJxNlBGO0FBQ0EsZUFBZTtBc0JsNlBmO0VBQ0U7QXRCbzZQRjtBc0JsNlBBO0VBQ0U7QXRCbzZQRjtBc0JsNlBBO0VBQ0U7QXRCbzZQRjtBQUNBLGFBQWE7QXNCbDZQYjtFQUNFO0F0Qm82UEY7QXNCbDZQQTtFQUNFO0F0Qm82UEY7QUFDQSxpQkFBaUI7QXNCajZQakI7RUFDRTtBdEJtNlBGO0FzQmo2UEE7RUFDRTtBdEJtNlBGO0FzQmo2UEE7RUFDRTtBdEJtNlBGO0FBQ0EsYUFBYTtBc0JqNlBiO0VBQ0U7QXRCbTZQRjtBc0JqNlBBO0VBQ0U7QXRCbTZQRjtBQUNBLGlCQUFpQjtBc0JoNlBqQjtFQUNFO0F0Qms2UEY7QXNCaDZQQTtFQUNFO0F0Qms2UEY7QXNCaDZQQTtFQUNFO0F0Qms2UEY7QUFDQSxhQUFhO0FzQmg2UGI7RUFDRTtBdEJrNlBGO0FzQmg2UEE7RUFDRTtBdEJrNlBGO0FBQ0EsZUFBZTtBc0IvNVBmO0VBQ0U7QXRCaTZQRjtBc0IvNVBBO0VBQ0U7QXRCaTZQRjtBc0IvNVBBO0VBQ0U7QXRCaTZQRjtBQUNBLGFBQWE7QXNCLzVQYjtFQUNFO0F0Qmk2UEY7QXNCLzVQQTtFQUNFO0F0Qmk2UEY7QUFDQSxnQkFBZ0I7QXNCOTVQaEI7RUFDRTtBdEJnNlBGO0FzQjk1UEE7RUFDRTtBdEJnNlBGO0FzQjk1UEE7RUFDRTtBdEJnNlBGO0FBQ0EsYUFBYTtBc0I5NVBiO0VBQ0U7QXRCZzZQRjtBc0I5NVBBO0VBQ0U7QXRCZzZQRjtBQUNBLGVBQWU7QXNCNzVQZjtFQUNFO0F0Qis1UEY7QXNCNzVQQTtFQUNFO0F0Qis1UEY7QXNCNzVQQTtFQUNFO0F0Qis1UEY7QUFDQSxhQUFhO0FzQjc1UGI7RUFDRTtBdEIrNVBGO0FzQjc1UEE7RUFDRTtBdEIrNVBGO0FBQ0E7O3FCQUVxQjtBc0IxNVByQjtFQUNFO0F0QjQ1UEY7QXNCMTVQQTtFQUNFO0F0QjQ1UEY7QXNCMTVQQTs7RUFFRTtBdEI0NVBGO0FzQjE1UEE7RUFDRTtBdEI0NVBGO0FzQjE1UEE7RUFDRTtFQUNBO0VBQ0E7QXRCNDVQRjtBQUNBOztxQkFFcUI7QXNCeDVQckI7O0VBRUU7RUFDQTtFQUNBO0F0QjA1UEY7QXNCeDVQQTtFQUNFO0VBQ0E7RUFDQTtBdEIwNVBGO0FBQ0E7O3FCQUVxQjtBc0J0NVByQjtFQUNFO0F0Qnc1UEY7QUFDQTs7cUJBRXFCO0FzQm41UHJCO0VBQ0U7RUFDQTtBdEJxNVBGO0FzQm41UEE7RUFDRTtBdEJxNVBGO0FzQm41UEE7RUFDRTtBdEJxNVBGO0FzQmw1UEE7RUFDRTtBdEJvNVBGO0FBQ0E7O3FCQUVxQjtBc0IvNFByQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VB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Q0E7QXhCNGdTRjtBQUNBLFNBQVM7QXdCemdTVDtFQUNFO0F4QjJnU0Y7QXdCemdTQTtFQUNFO0F4QjJnU0Y7QXdCemdTQTs7RUFFRTtFQUNBO0F4QjJnU0Y7QUFDQSxVQUFVO0F3QnhnU1Y7RUFDRTtBeEIwZ1NGO0F3QnhnU0E7RUFDRTtBeEIwZ1NGO0F3QnhnU0E7O0VBRUU7RUFDQTtBeEIwZ1NGO0FBQ0EsU0FBUztBd0J2Z1NUO0VBQ0U7QXhCeWdTRjtBd0J2Z1NBO0VBQ0U7QXhCeWdTRjtBd0J2Z1NBOztFQUVFO0VBQ0E7QXhCeWdTRjtBQUNBLFVBQVU7QXdCdGdTVjtFQUNFO0F4QndnU0Y7QXdCdGdTQTtFQUNFO0F4QndnU0Y7QXdCdGdTQTs7RUFFRTtFQUNBO0F4QndnU0Y7QUFDQTs7cUJBRXFCO0F3QnBnU3JCOztFQUVFO0VBQ0E7QXhCc2dTRjtBd0JwZ1NBOztFQUVFO0VBQ0E7QXhCc2dTRjtBd0JwZ1NBOztFQUVFO0VBQ0E7QXhCc2dTRjtBd0JwZ1NBOztFQUVFO0F4QnNnU0Y7QXdCcGdTQTs7RUFFRTtFQUNBO0VBQ0E7QXhCc2dTRjtBd0JwZ1NBOztFQUVFO0VBQ0E7RUFDQTtBeEJzZ1NGO0F3QnBnU0E7O0VBRUU7RUFDQTtFQUNBO0F4QnNnU0Y7QXdCcGdTQTs7RUFFRTtFQUNBO0VBQ0E7QXhCc2dTRjtBQUNBOzsrQkFFK0I7QXdCbGdTL0I7RUFDRTtFQUNBO0VBQ0E7QXhCb2dTRjtBd0JqZ1NBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F4Qm1nU0Y7QXdCaGdTQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeEJrZ1NGO0FBQ0EsZ0JBQWdCO0F3Qi8vUmhCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXhCaWdTRjtBd0IvL1JBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXhCaWdTRjtBd0IvL1JBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXhCaWdTRjtBd0IvL1JBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXhCaWdTRjtBd0IvL1JBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXhCaWdTRjtBd0I5L1JBO0VBQ0U7QXhCZ2dTRjtBQUNBOzs7RUFHRTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0JBcUIrQjtBQUMvQjs7K0JBRStCO0FBQy9CLHdDQUF3QztBeUI3K1N4QztFQUE0QjtBekJnL1M1QjtBeUIvK1NBO0VBQXdCO0F6QmsvU3hCO0F5QmovU0E7RUFBeUI7QXpCby9TekI7QXlCbi9TQTtFQUF3QjtBekJzL1N4QjtBeUJyL1NBO0VBQXdCO0F6QncvU3hCO0F5QnYvU0E7RUFBd0I7QXpCMC9TeEI7QXlCei9TQTtFQUF5QjtBekI0L1N6QjtBQUNBLFVBQVU7QXlCMS9TVjtFQUF5QjtBekI2L1N6QjtBeUI1L1NBO0VBQWdDO0F6QisvU2hDO0F5QjkvU0E7RUFBeUI7QXpCaWdUekI7QXlCaGdUQTtFQUE2QjtBekJtZ1Q3QjtBeUJsZ1RBO0VBQTZCO0F6QnFnVDdCO0F5QnBnVEE7RUFBdUI7QXpCdWdUdkI7QXlCdGdUQTtFQUFvQjtBekJ5Z1RwQjtBeUJ4Z1RBO0VBQXlCO0F6QjJnVHpCO0F5QjFnVEE7RUFBK0I7QXpCNmdUL0I7QXlCNWdUQTtFQUF3QjtBekIrZ1R4QjtBeUI5Z1RBO0VBQTZCO0F6QmloVDdCO0F5QmhoVEE7RUFBOEI7QXpCbWhUOUI7QXlCbGhUQTtFQUEyQjtBekJxaFQzQjtBeUJwaFRBO0VBQTRCO0F6QnVoVDVCO0F5QnRoVEE7RUFBdUI7QXpCeWhUdkI7QXlCeGhUQTtFQUEyQjtBekIyaFQzQjtBeUIxaFRBO0VBQTBCO0F6QjZoVDFCO0F5QjVoVEE7RUFBb0Q7QXpCK2hUcEQ7QXlCOWhUQTtFQUF1QjtBekJpaVR2QjtBeUJoaVRBO0VBQXVCO0F6Qm1pVHZCO0F5QmxpVEE7RUFBd0I7QXpCcWlUeEI7QXlCcGlUQTtFQUEwQjtBekJ1aVQxQjtBeUJ0aVRBO0VBQWtDO0F6QnlpVGxDO0F5QnhpVEE7RUFBa0M7QXpCMmlUbEM7QXlCMWlUQTtFQUFtQztBekI2aVRuQztBeUI1aVRBO0VBQWdDO0F6QitpVGhDO0F5QjlpVEE7RUFBMkI7QXpCaWpUM0I7QXlCaGpUQTtFQUEyQjtBekJtalQzQjtBeUJsalRBO0VBQTRCO0F6QnFqVDVCO0F5QnBqVEE7RUFBeUI7QXpCdWpUekI7QXlCdGpUQTtFQUE4QjtBekJ5alQ5QjtBeUJ4alRBO0VBQXdCO0F6QjJqVHhCO0F5QjFqVEE7RUFBMEI7QXpCNmpUMUI7QXlCNWpUQTtFQUE4QjtBekIralQ5QjtBeUI5alRBO0VBQXNCO0F6QmlrVHRCO0F5QmhrVEE7RUFBc0I7QXpCbWtUdEI7QXlCbGtUQTtFQUEwQjtBekJxa1QxQjtBeUJwa1RBO0VBQXdCO0F6QnVrVHhCO0F5QnRrVEE7RUFBNEM7QXpCeWtUNUM7QXlCeGtUQTtFQUE0QztBekIya1Q1QztBeUIxa1RBO0VBQTZDO0F6QjZrVDdDO0F5QjVrVEE7RUFBMEM7QXpCK2tUMUM7QXlCOWtUQTtFQUFrQztBekJpbFRsQztBeUJobFRBO0VBQWtDO0F6Qm1sVGxDO0F5QmxsVEE7RUFBbUM7QXpCcWxUbkM7QXlCcGxUQTtFQUFnQztBekJ1bFRoQztBeUJ0bFRBO0VBQTJCO0F6QnlsVDNCO0F5QnhsVEE7RUFBMkI7QXpCMmxUM0I7QXlCMWxUQTtFQUE0QjtBekI2bFQ1QjtBeUI1bFRBO0VBQXlCO0F6QitsVHpCO0F5QjlsVEE7RUFBaUM7QXpCaW1UakM7QXlCaG1UQTtFQUE0QztBekJtbVQ1QztBeUJsbVRBO0VBQTBDO0F6QnFtVDFDO0F5QnBtVEE7RUFBNEM7QXpCdW1UNUM7QXlCdG1UQTtFQUF5QjtBekJ5bVR6QjtBeUJ4bVRBO0VBQTJCO0F6QjJtVDNCO0F5QjFtVEE7RUFBbUI7QXpCNm1UbkI7QXlCNW1UQTtFQUF3QjtBekIrbVR4QjtBeUI5bVRBO0VBQWtDO0F6QmluVGxDO0F5QmhuVEE7RUFBNkI7QXpCbW5UN0I7QXlCbG5UQTtFQUF3QjtBekJxblR4QjtBeUJwblRBO0VBQXVCO0F6QnVuVHZCO0F5QnRuVEE7RUFBb0I7QXpCeW5UcEI7QXlCeG5UQTtFQUF5QjtBekIyblR6QjtBeUIxblRBO0VBQThCO0F6QjZuVDlCO0F5QjVuVEE7RUFBb0I7QXpCK25UcEI7QXlCOW5UQTtFQUF5QjtBekJpb1R6QjtBeUJob1RBO0VBQXlCO0F6Qm1vVHpCO0F5QmxvVEE7RUFBd0I7QXpCcW9UeEI7QXlCcG9UQTtFQUFxQjtBekJ1b1RyQjtBeUJ0b1RBO0VBQThCO0F6QnlvVDlCO0F5QnhvVEE7RUFBZ0M7QXpCMm9UaEM7QXlCMW9UQTtFQUFxQjtBekI2b1RyQjtBeUI1b1RBO0VBQThCO0F6QitvVDlCO0F5QjlvVEE7RUFBNkI7QXpCaXBUN0I7QXlCaHBUQTtFQUE2QjtBekJtcFQ3QjtBeUJscFRBO0VBQWdDO0F6QnFwVGhDO0F5QnBwVEE7RUFBdUM7QXpCdXBUdkM7QXlCdHBUQTtFQUFvQjtBekJ5cFRwQjtBeUJ4cFRBO0VBQXFCO0F6QjJwVHJCO0F5QjFwVEE7RUFBd0I7QXpCNnBUeEI7QXlCNXBUQTtFQUErQjtBekIrcFQvQjtBeUI5cFRBO0VBQXFCO0F6QmlxVHJCO0F5QmhxVEE7RUFBMkI7QXpCbXFUM0I7QXlCbHFUQTtFQUF3QjtBekJxcVR4QjtBeUJwcVRBO0VBQTBCO0F6QnVxVDFCO0F5QnRxVEE7RUFBMkI7QXpCeXFUM0I7QXlCeHFUQTtFQUE4QjtBekIycVQ5QjtBeUIxcVRBO0VBQTBCO0F6QjZxVDFCO0F5QjVxVEE7RUFBd0I7QXpCK3FUeEI7QXlCOXFUQTtFQUFxQjtBekJpclRyQjtBeUJoclRBO0VBQTBCO0F6Qm1yVDFCO0F5QmxyVEE7RUFBMkI7QXpCcXJUM0I7QXlCcHJUQTtFQUFzQjtBekJ1clR0QjtBeUJ0clRBO0VBQXdCO0F6QnlyVHhCO0F5QnhyVEE7RUFBMEI7QXpCMnJUMUI7QXlCMXJUQTtFQUEwQjtBekI2clQxQjtBeUI1clRBO0VBQTRCO0F6QityVDVCO0F5QjlyVEE7RUFBcUI7QXpCaXNUckI7QXlCaHNUQTtFQUFxQjtBekJtc1RyQjtBeUJsc1RBO0VBQXFCO0F6QnFzVHJCO0F5QnBzVEE7RUFBcUI7QXpCdXNUckI7QXlCdHNUQTtFQUF5QjtBekJ5c1R6QjtBeUJ4c1RBO0VBQTZCO0F6QjJzVDdCO0F5QjFzVEE7RUFBb0I7QXpCNnNUcEI7QXlCNXNUQTtFQUFzQjtBekIrc1R0QjtBeUI5c1RBO0VBQXdCO0F6Qml0VHhCO0F5Qmh0VEE7RUFBMEI7QXpCbXRUMUI7QXlCbHRUQTtFQUFvQjtBekJxdFRwQjtBeUJwdFRBO0VBQW9CO0F6QnV0VHBCO0F5QnR0VEE7RUFBeUI7QXpCeXRUekI7QXlCeHRUQTtFQUF5QjtBekIydFR6QjtBeUIxdFRBO0VBQXlCO0F6QjZ0VHpCO0F5QjV0VEE7RUFBaUM7QXpCK3RUakM7QXlCOXRUQTtFQUFvQjtBekJpdVRwQjtBeUJodVRBO0VBQTJCO0F6Qm11VDNCO0F5Qmx1VEE7RUFBMkI7QXpCcXVUM0I7QXlCcHVUQTtFQUF5QjtBekJ1dVR6QjtBeUJ0dVRBO0VBQW1DO0F6Qnl1VG5DO0F5Qnh1VEE7RUFBK0I7QXpCMnVUL0I7QXlCMXVUQTtFQUErQjtBekI2dVQvQjtBeUI1dVRBO0VBQThCO0F6Qit1VDlCO0F5Qjl1VEE7RUFBK0I7QXpCaXZUL0I7QXlCaHZUQTtFQUF1QjtBekJtdlR2QjtBeUJsdlRBO0VBQTZCO0F6QnF2VDdCO0F5QnB2VEE7RUFBb0I7QXpCdXZUcEI7QXlCdHZUQTtFQUEyQjtBekJ5dlQzQjtBeUJ4dlRBO0VBQTJCO0F6QjJ2VDNCO0F5QjF2VEE7RUFBNEI7QXpCNnZUNUI7QXlCNXZUQTtFQUFrQztBekIrdlRsQztBeUI5dlRBO0VBQWtDO0F6Qml3VGxDO0F5Qmh3VEE7RUFBbUM7QXpCbXdUbkM7QXlCbHdUQTtFQUFnQztBekJxd1RoQztBeUJwd1RBO0VBQXlCO0F6QnV3VHpCO0F5QnR3VEE7RUFBZ0M7QXpCeXdUaEM7QXlCeHdUQTtFQUEwQjtBekIyd1QxQjtBeUIxd1RBO0VBQThCO0F6QjZ3VDlCO0F5QjV3VEE7RUFBd0I7QXpCK3dUeEI7QXlCOXdUQTtFQUE2QjtBekJpeFQ3QjtBeUJoeFRBO0VBQStCO0F6Qm14VC9CO0F5Qmx4VEE7RUFBNEI7QXpCcXhUNUI7QXlCcHhUQTtFQUF1QjtBekJ1eFR2QjtBeUJ0eFRBO0VBQThCO0F6Qnl4VDlCO0F5Qnh4VEE7RUFBMEI7QXpCMnhUMUI7QXlCMXhUQTtFQUEwQjtBekI2eFQxQjtBeUI1eFRBO0VBQXdCO0F6Qit4VHhCO0F5Qjl4VEE7RUFBMkI7QXpCaXlUM0I7QXlCaHlUQTtFQUE0QjtBekJteVQ1QjtBeUJseVRBO0VBQTJCO0F6QnF5VDNCO0F5QnB5VEE7RUFBMEI7QXpCdXlUMUI7QXlCdHlUQTtFQUEyQjtBekJ5eVQzQjtBeUJ4eVRBO0VBQTBCO0F6QjJ5VDFCO0F5QjF5VEE7RUFBc0I7QXpCNnlUdEI7QXlCNXlUQTtFQUE2QjtBekIreVQ3QjtBeUI5eVRBO0VBQTZCO0F6Qml6VDdCO0F5Qmh6VEE7RUFBc0I7QXpCbXpUdEI7QXlCbHpUQTtFQUE2QjtBekJxelQ3QjtBeUJwelRBO0VBQTRCO0F6QnV6VDVCO0F5QnR6VEE7RUFBMkI7QXpCeXpUM0I7QXlCeHpUQTtFQUE2QjtBekIyelQ3QjtBeUIxelRBO0VBQTJCO0F6QjZ6VDNCO0F5QjV6VEE7RUFBNEI7QXpCK3pUNUI7QXlCOXpUQTtFQUEyQjtBekJpMFQzQjtBeUJoMFRBO0VBQW9DO0F6Qm0wVHBDO0F5QmwwVEE7RUFBb0M7QXpCcTBUcEM7QXlCcDBUQTtFQUFxQztBekJ1MFRyQztBeUJ0MFRBO0VBQWtDO0F6QnkwVGxDO0F5QngwVEE7RUFBNkI7QXpCMjBUN0I7QXlCMTBUQTtFQUE2QjtBekI2MFQ3QjtBeUI1MFRBO0VBQThCO0F6QiswVDlCO0F5QjkwVEE7RUFBMkI7QXpCaTFUM0I7QXlCaDFUQTtFQUFzQjtBekJtMVR0QjtBeUJsMVRBO0VBQXVCO0F6QnExVHZCO0F5QnAxVEE7RUFBdUI7QXpCdTFUdkI7QXlCdDFUQTtFQUE2QjtBekJ5MVQ3QjtBeUJ4MVRBO0VBQTBCO0F6QjIxVDFCO0F5QjExVEE7RUFBZ0M7QXpCNjFUaEM7QXlCNTFUQTtFQUErQjtBekIrMVQvQjtBeUI5MVRBO0VBQXNCO0F6QmkyVHRCO0F5QmgyVEE7RUFBc0I7QXpCbTJUdEI7QXlCbDJUQTtFQUFrQztBekJxMlRsQztBeUJwMlRBO0VBQXNCO0F6QnUyVHRCO0F5QnQyVEE7RUFBMkI7QXpCeTJUM0I7QXlCeDJUQTtFQUEyQjtBekIyMlQzQjtBeUIxMlRBO0VBQTZCO0F6QjYyVDdCO0F5QjUyVEE7RUFBcUI7QXpCKzJUckI7QXlCOTJUQTtFQUE0QjtBekJpM1Q1QjtBeUJoM1RBO0VBQXdCO0F6Qm0zVHhCO0F5QmwzVEE7RUFBeUI7QXpCcTNUekI7QXlCcDNUQTtFQUF1QjtBekJ1M1R2QjtBeUJ0M1RBO0VBQW9CO0F6QnkzVHBCO0F5QngzVEE7RUFBcUI7QXpCMjNUckI7QXlCMTNUQTtFQUF3QjtBekI2M1R4QjtBeUI1M1RBO0VBQXdCO0F6QiszVHhCO0F5QjkzVEE7RUFBa0M7QXpCaTRUbEM7QXlCaDRUQTtFQUF5QjtBekJtNFR6QjtBeUJsNFRBO0VBQXdCO0F6QnE0VHhCO0F5QnA0VEE7RUFBeUI7QXpCdTRUekI7QXlCdDRUQTtFQUErQjtBekJ5NFQvQjtBeUJ4NFRBO0VBQXVCO0F6QjI0VHZCO0F5QjE0VEE7RUFBcUI7QXpCNjRUckI7QXlCNTRUQTtFQUEwQjtBekIrNFQxQjtBeUI5NFRBO0VBQXVCO0F6Qmk1VHZCO0F5Qmg1VEE7RUFBaUM7QXpCbTVUakM7QXlCbDVUQTtFQUE0QjtBekJxNVQ1QjtBeUJwNVRBO0VBQXFCO0F6QnU1VHJCO0F5QnQ1VEE7RUFBMkI7QXpCeTVUM0I7QXlCeDVUQTtFQUFxQjtBekIyNVRyQjtBeUIxNVRBO0VBQStCO0F6QjY1VC9CO0F5QjU1VEE7RUFBcUI7QXpCKzVUckI7QXlCOTVUQTtFQUFzQjtBekJpNlR0QjtBeUJoNlRBO0VBQW9CO0F6Qm02VHBCO0F5Qmw2VEE7RUFBMkI7QXpCcTZUM0I7QXlCcDZUQTtFQUF3QjtBekJ1NlR4QjtBeUJ0NlRBO0VBQXlCO0F6Qnk2VHpCO0F5Qng2VEE7RUFBeUI7QXpCMjZUekI7QXlCMTZUQTtFQUFxQjtBekI2NlRyQjtBeUI1NlRBO0VBQTBCO0F6Qis2VDFCO0F5Qjk2VEE7RUFBMEI7QXpCaTdUMUI7QXlCaDdUQTtFQUF3QjtBekJtN1R4QjtBeUJsN1RBO0VBQXdCO0F6QnE3VHhCO0F5QnA3VEE7RUFBMkI7QXpCdTdUM0I7QXlCdDdUQTtFQUFxQjtBekJ5N1RyQjtBeUJ4N1RBO0VBQThCO0F6QjI3VDlCO0F5QjE3VEE7RUFBd0I7QXpCNjdUeEI7QXlCNTdUQTtFQUEwQjtBekIrN1QxQjtBeUI5N1RBO0VBQW9CO0F6Qmk4VHBCO0F5Qmg4VEE7RUFBdUI7QXpCbThUdkI7QXlCbDhUQTtFQUF1QjtBekJxOFR2QjtBeUJwOFRBO0VBQTRCO0F6QnU4VDVCO0F5QnQ4VEE7RUFBc0I7QXpCeThUdEI7QXlCeDhUQTtFQUE4QjtBekIyOFQ5QjtBeUIxOFRBO0VBQTJCO0F6QjY4VDNCO0F5QjU4VEE7RUFBeUI7QXpCKzhUekI7QXlCOThUQTtFQUE4QjtBekJpOVQ5QjtBeUJoOVRBO0VBQXlCO0F6Qm05VHpCO0F5Qmw5VEE7RUFBZ0M7QXpCcTlUaEM7QXlCcDlUQTtFQUF3QjtBekJ1OVR4QjtBeUJ0OVRBO0VBQXVCO0F6Qnk5VHZCO0F5Qng5VEE7RUFBdUI7QXpCMjlUdkI7QXlCMTlUQTtFQUEyQjtBekI2OVQzQjtBeUI1OVRBO0VBQXFCO0F6Qis5VHJCO0F5Qjk5VEE7RUFBcUI7QXpCaStUckI7QXlCaCtUQTtFQUFzQjtBekJtK1R0QjtBeUJsK1RBO0VBQTBCO0F6QnErVDFCO0F5QnArVEE7RUFBb0M7QXpCdStUcEM7QXlCdCtUQTtFQUFrQztBekJ5K1RsQztBeUJ4K1RBO0VBQXNCO0F6QjIrVHRCO0F5QjErVEE7RUFBdUI7QXpCNitUdkI7QXlCNStUQTtFQUF5QjtBekIrK1R6QjtBeUI5K1RBO0VBQThCO0F6QmkvVDlCO0F5QmgvVEE7RUFBZ0M7QXpCbS9UaEM7QXlCbC9UQTtFQUF1QjtBekJxL1R2QjtBeUJwL1RBO0VBQXVCO0F6QnUvVHZCO0F5QnQvVEE7RUFBdUI7QXpCeS9UdkI7QXlCeC9UQTtFQUF5QjtBekIyL1R6QjtBeUIxL1RBO0VBQXFCO0F6QjYvVHJCO0F5QjUvVEE7RUFBMEI7QXpCKy9UMUI7QXlCOS9UQTtFQUFtQztBekJpZ1VuQztBeUJoZ1VBO0VBQTRCO0F6Qm1nVTVCO0F5QmxnVUE7RUFBbUM7QXpCcWdVbkM7QXlCcGdVQTtFQUFxQztBekJ1Z1VyQztBeUJ0Z1VBO0VBQXVCO0F6QnlnVXZCO0F5QnhnVUE7RUFBd0M7QXpCMmdVeEM7QXlCMWdVQTtFQUE2QjtBekI2Z1U3QjtBeUI1Z1VBO0VBQW1DO0F6QitnVW5DO0F5QjlnVUE7RUFBMEM7QXpCaWhVMUM7QXlCaGhVQTtFQUFvQjtBekJtaFVwQjtBeUJsaFVBO0VBQTRCO0F6QnFoVTVCO0F5QnBoVUE7RUFBMEI7QXpCdWhVMUI7QXlCdGhVQTtFQUF5QjtBekJ5aFV6QjtBeUJ4aFVBO0VBQTJCO0F6QjJoVTNCO0F5QjFoVUE7RUFBbUM7QXpCNmhVbkM7QXlCNWhVQTtFQUFnQztBekIraFVoQztBeUI5aFVBO0VBQThCO0F6QmlpVTlCO0F5QmhpVUE7RUFBNkI7QXpCbWlVN0I7QXlCbGlVQTtFQUFvQjtBekJxaVVwQjtBeUJwaVVBO0VBQXVCO0F6QnVpVXZCO0F5QnRpVUE7RUFBNEI7QXpCeWlVNUI7QXlCeGlVQTtFQUFxQjtBekIyaVVyQjtBeUIxaVVBO0VBQStCO0F6QjZpVS9CO0F5QjVpVUE7RUFBNkI7QXpCK2lVN0I7QXlCOWlVQTtFQUEyQjtBekJpalUzQjtBeUJoalVBO0VBQTBCO0F6Qm1qVTFCO0F5QmxqVUE7RUFBMkI7QXpCcWpVM0I7QXlCcGpVQTtFQUEyQjtBekJ1alUzQjtBeUJ0alVBO0VBQXlCO0F6QnlqVXpCO0F5QnhqVUE7RUFBZ0M7QXpCMmpVaEM7QXlCMWpVQTtFQUEyQjtBekI2alUzQjtBeUI1alVBO0VBQTBCO0F6QitqVTFCO0F5QjlqVUE7RUFBcUI7QXpCaWtVckI7QXlCaGtVQTtFQUF1QjtBekJta1V2QjtBeUJsa1VBO0VBQXFCO0F6QnFrVXJCO0F5QnBrVUE7RUFBa0M7QXpCdWtVbEM7QXlCdGtVQTtFQUF3QjtBekJ5a1V4QjtBeUJ4a1VBO0VBQTBCO0F6QjJrVTFCO0F5QjFrVUE7RUFBNEI7QXpCNmtVNUI7QXlCNWtVQTtFQUEyQjtBekIra1UzQjtBeUI5a1VBO0VBQXFCO0F6QmlsVXJCO0F5QmhsVUE7RUFBK0I7QXpCbWxVL0I7QXlCbGxVQTtFQUFzQjtBekJxbFV0QjtBeUJwbFVBO0VBQXVCO0F6QnVsVXZCO0F5QnRsVUE7RUFBMEI7QXpCeWxVMUI7QXlCeGxVQTtFQUFvQjtBekIybFVwQjtBeUIxbFVBO0VBQXVCO0F6QjZsVXZCO0F5QjVsVUE7RUFBNEI7QXpCK2xVNUI7QXlCOWxVQTtFQUFxQjtBekJpbVVyQjtBeUJobVVBO0VBQTZCO0F6Qm1tVTdCO0F5QmxtVUE7RUFBdUM7QXpCcW1VdkM7QXlCcG1VQTtFQUFrQztBekJ1bVVsQztBeUJ0bVVBO0VBQTBCO0F6QnltVTFCO0F5QnhtVUE7RUFBNkI7QXpCMm1VN0I7QXlCMW1VQTtFQUE4QjtBekI2bVU5QjtBeUI1bVVBO0VBQTZCO0F6QittVTdCO0F5QjltVUE7RUFBdUM7QXpCaW5VdkM7QXlCaG5VQTtFQUF5QjtBekJtblV6QjtBeUJsblVBO0VBQXdCO0F6QnFuVXhCO0F5QnBuVUE7RUFBMkI7QXpCdW5VM0I7QXlCdG5VQTtFQUErQjtBekJ5blUvQjtBeUJ4blVBO0VBQXdCO0F6QjJuVXhCO0F5QjFuVUE7RUFBc0I7QXpCNm5VdEI7QXlCNW5VQTtFQUF1QjtBekIrblV2QjtBeUI5blVBO0VBQXdCO0F6QmlvVXhCO0F5QmhvVUE7RUFBc0I7QXpCbW9VdEI7QXlCbG9VQTtFQUFvQjtBekJxb1VwQjtBeUJwb1VBO0VBQTJCO0F6QnVvVTNCO0F5QnRvVUE7RUFBMkI7QXpCeW9VM0I7QXlCeG9VQTtFQUFtQjtBekIyb1VuQjtBeUIxb1VBO0VBQTBCO0F6QjZvVTFCO0F5QjVvVUE7RUFBcUI7QXpCK29VckI7QXlCOW9VQTtFQUFvQjtBekJpcFVwQjtBeUJocFVBO0VBQTJCO0F6Qm1wVTNCO0F5QmxwVUE7RUFBdUI7QXpCcXBVdkI7QXlCcHBVQTtFQUFpQztBekJ1cFVqQztBeUJ0cFVBO0VBQThCO0F6QnlwVTlCO0F5QnhwVUE7RUFBMEI7QXpCMnBVMUI7QXlCMXBVQTtFQUF1QjtBekI2cFV2QjtBeUI1cFVBO0VBQXVCO0F6QitwVXZCO0F5QjlwVUE7RUFBOEI7QXpCaXFVOUI7QXlCaHFVQTtFQUFzQjtBekJtcVV0QjtBeUJscVVBO0VBQXdCO0F6QnFxVXhCO0F5QnBxVUE7RUFBc0I7QXpCdXFVdEI7QXlCdHFVQTtFQUF1QjtBekJ5cVV2QjtBeUJ4cVVBO0VBQTBCO0F6QjJxVTFCO0F5QjFxVUE7RUFBMEI7QXpCNnFVMUI7QXlCNXFVQTtFQUE0QjtBekIrcVU1QjtBeUI5cVVBO0VBQXVCO0F6QmlyVXZCO0F5QmhyVUE7RUFBNkI7QXpCbXJVN0I7QXlCbHJVQTtFQUE0QjtBekJxclU1QjtBeUJwclVBO0VBQTRCO0F6QnVyVTVCO0F5QnRyVUE7RUFBOEI7QXpCeXJVOUI7QXlCeHJVQTtFQUFtQztBekIyclVuQztBeUIxclVBO0VBQThCO0F6QjZyVTlCO0F5QjVyVUE7RUFBK0I7QXpCK3JVL0I7QXlCOXJVQTtFQUF5QjtBekJpc1V6QjtBeUJoc1VBO0VBQXFCO0F6Qm1zVXJCO0F5QmxzVUE7RUFBeUI7QXpCcXNVekI7QXlCcHNVQTtFQUFzQjtBekJ1c1V0QjtBeUJ0c1VBO0VBQXFCO0F6QnlzVXJCO0F5QnhzVUE7RUFBeUI7QXpCMnNVekI7QXlCMXNVQTtFQUE0QjtBekI2c1U1QjtBeUI1c1VBO0VBQW1DO0F6QitzVW5DO0F5QjlzVUE7RUFBNEI7QXpCaXRVNUI7QXlCaHRVQTtFQUEyQjtBekJtdFUzQjtBeUJsdFVBO0VBQTJCO0F6QnF0VTNCO0F5QnB0VUE7RUFBZ0M7QXpCdXRVaEM7QXlCdHRVQTtFQUFnQztBekJ5dFVoQztBeUJ4dFVBO0VBQWlDO0F6QjJ0VWpDO0F5QjF0VUE7RUFBOEI7QXpCNnRVOUI7QXlCNXRVQTtFQUE2QjtBekIrdFU3QjtBeUI5dFVBO0VBQTBCO0F6Qml1VTFCO0F5Qmh1VUE7RUFBOEI7QXpCbXVVOUI7QXlCbHVVQTtFQUEyQjtBekJxdVUzQjtBeUJwdVVBO0VBQTBCO0F6QnV1VTFCO0F5QnR1VUE7RUFBd0I7QXpCeXVVeEI7QXlCeHVVQTtFQUFvQjtBekIydVVwQjtBeUIxdVVBO0VBQXdCO0F6QjZ1VXhCO0F5QjV1VUE7RUFBMkI7QXpCK3VVM0I7QXlCOXVVQTtFQUFzQjtBekJpdlV0QjtBeUJodlVBO0VBQTBCO0F6Qm12VTFCO0F5Qmx2VUE7RUFBcUI7QXpCcXZVckI7QXlCcHZVQTtFQUE4QjtBekJ1dlU5QjtBeUJ0dlVBO0VBQXdCO0F6Qnl2VXhCO0F5Qnh2VUE7RUFBNEI7QXpCMnZVNUI7QXlCMXZVQTtFQUFxQjtBekI2dlVyQjtBeUI1dlVBO0VBQXNCO0F6Qit2VXRCO0F5Qjl2VUE7RUFBeUI7QXpCaXdVekI7QXlCaHdVQTtFQUFnQztBekJtd1VoQztBeUJsd1VBO0VBQXVCO0F6QnF3VXZCO0F5QnB3VUE7RUFBMEI7QXpCdXdVMUI7QXlCdHdVQTtFQUE4QjtBekJ5d1U5QjtBeUJ4d1VBO0VBQStCO0F6QjJ3VS9CO0F5QjF3VUE7RUFBZ0M7QXpCNndVaEM7QXlCNXdVQTtFQUFzQjtBekIrd1V0QjtBeUI5d1VBO0VBQXNCO0F6Qml4VXRCO0F5Qmh4VUE7RUFBd0I7QXpCbXhVeEI7QXlCbHhVQTtFQUF5QjtBekJxeFV6QjtBeUJweFVBO0VBQXlCO0F6QnV4VXpCO0F5QnR4VUE7RUFBd0I7QXpCeXhVeEI7QXlCeHhVQTtFQUFzQjtBekIyeFV0QjtBeUIxeFVBO0VBQXVCO0F6QjZ4VXZCO0F5QjV4VUE7RUFBcUI7QXpCK3hVckI7QXlCOXhVQTtFQUFzQjtBekJpeVV0QjtBeUJoeVVBO0VBQXVCO0F6Qm15VXZCO0F5Qmx5VUE7RUFBeUI7QXpCcXlVekI7QXlCcHlVQTtFQUFxQjtBekJ1eVVyQjtBeUJ0eVVBO0VBQTRCO0F6Qnl5VTVCO0F5Qnh5VUE7RUFBMEI7QXpCMnlVMUI7QXlCMXlVQTtFQUFrQztBekI2eVVsQztBeUI1eVVBO0VBQXdCO0F6Qit5VXhCO0F5Qjl5VUE7RUFBdUI7QXpCaXpVdkI7QXlCaHpVQTtFQUF1QjtBekJtelV2QjtBeUJselVBO0VBQTRCO0F6QnF6VTVCO0F5QnB6VUE7RUFBd0I7QXpCdXpVeEI7QXlCdHpVQTtFQUFzQjtBekJ5elV0QjtBeUJ4elVBO0VBQXVCO0F6QjJ6VXZCO0F5QjF6VUE7RUFBbUI7QXpCNnpVbkI7QXlCNXpVQTtFQUEwQjtBekIrelUxQjtBeUI5elVBO0VBQXlCO0F6QmkwVXpCO0F5QmgwVUE7RUFBb0I7QXpCbTBVcEI7QXlCbDBVQTtFQUF5QjtBekJxMFV6QjtBeUJwMFVBO0VBQXVCO0F6QnUwVXZCO0F5QnQwVUE7RUFBNEI7QXpCeTBVNUI7QXlCeDBVQTtFQUE4QjtBekIyMFU5QjtBeUIxMFVBO0VBQXVCO0F6QjYwVXZCO0F5QjUwVUE7RUFBeUI7QXpCKzBVekI7QXlCOTBVQTtFQUF1QjtBekJpMVV2QjtBeUJoMVVBO0VBQXdCO0F6Qm0xVXhCO0F5QmwxVUE7RUFBdUI7QXpCcTFVdkI7QXlCcDFVQTtFQUE4QjtBekJ1MVU5QjtBeUJ0MVVBO0VBQXFCO0F6QnkxVXJCO0F5QngxVUE7RUFBd0I7QXpCMjFVeEI7QXlCMTFVQTtFQUFzQjtBekI2MVV0QjtBeUI1MVVBO0VBQXFCO0F6QisxVXJCO0F5QjkxVUE7RUFBcUM7QXpCaTJVckM7QXlCaDJVQTtFQUFtQztBekJtMlVuQztBeUJsMlVBO0VBQTBCO0F6QnEyVTFCO0F5QnAyVUE7RUFBMEI7QXpCdTJVMUI7QXlCdDJVQTtFQUF5QjtBekJ5MlV6QjtBeUJ4MlVBO0VBQXdCO0F6QjIyVXhCO0F5QjEyVUE7RUFBeUI7QXpCNjJVekI7QXlCNTJVQTtFQUE2QjtBekIrMlU3QjtBeUI5MlVBO0VBQXVCO0F6QmkzVXZCO0F5QmgzVUE7RUFBc0I7QXpCbTNVdEI7QXlCbDNVQTtFQUEwQjtBekJxM1UxQjtBeUJwM1VBO0VBQXFCO0F6QnUzVXJCO0F5QnQzVUE7RUFBK0I7QXpCeTNVL0I7QXlCeDNVQTtFQUF3QjtBekIyM1V4QjtBeUIxM1VBO0VBQXdCO0F6QjYzVXhCO0F5QjUzVUE7RUFBK0I7QXpCKzNVL0I7QXlCOTNVQTtFQUFxQjtBekJpNFVyQjtBeUJoNFVBO0VBQTBCO0F6Qm00VTFCO0F5Qmw0VUE7RUFBMEM7QXpCcTRVMUM7QXlCcDRVQTtFQUEwQztBekJ1NFUxQztBeUJ0NFVBO0VBQTJDO0F6Qnk0VTNDO0F5Qng0VUE7RUFBd0M7QXpCMjRVeEM7QXlCMTRVQTtFQUEyQjtBekI2NFUzQjtBeUI1NFVBO0VBQXFCO0F6Qis0VXJCO0F5Qjk0VUE7RUFBd0I7QXpCaTVVeEI7QXlCaDVVQTtFQUFzQjtBekJtNVV0QjtBeUJsNVVBO0VBQXVCO0F6QnE1VXZCO0F5QnA1VUE7RUFBcUI7QXpCdTVVckI7QXlCdDVVQTtFQUFvQjtBekJ5NVVwQjtBeUJ4NVVBO0VBQTJCO0F6QjI1VTNCO0F5QjE1VUE7RUFBcUM7QXpCNjVVckM7QXlCNTVVQTtFQUF3QjtBekIrNVV4QjtBeUI5NVVBO0VBQTBCO0F6Qmk2VTFCO0F5Qmg2VUE7RUFBcUI7QXpCbTZVckI7QXlCbDZVQTtFQUE0QjtBekJxNlU1QjtBeUJwNlVBO0VBQTRCO0F6QnU2VTVCO0F5QnQ2VUE7RUFBdUM7QXpCeTZVdkM7QXlCeDZVQTtFQUFxQztBekIyNlVyQztBeUIxNlVBO0VBQXVCO0F6QjY2VXZCO0F5QjU2VUE7RUFBd0I7QXpCKzZVeEI7QXlCOTZVQTtFQUF1QjtBekJpN1V2QjtBeUJoN1VBO0VBQXlCO0F6Qm03VXpCO0F5Qmw3VUE7RUFBdUI7QXpCcTdVdkI7QXlCcDdVQTtFQUFzQjtBekJ1N1V0QjtBeUJ0N1VBO0VBQXVCO0F6Qnk3VXZCO0F5Qng3VUE7RUFBb0I7QXpCMjdVcEI7QXlCMTdVQTtFQUF3QjtBekI2N1V4QjtBeUI1N1VBO0VBQTBCO0F6Qis3VTFCO0F5Qjk3VUE7RUFBMkI7QXpCaThVM0I7QXlCaDhVQTtFQUFpQztBekJtOFVqQztBeUJsOFVBO0VBQTBCO0F6QnE4VTFCO0F5QnA4VUE7RUFBc0I7QXpCdThVdEI7QXlCdDhVQTtFQUE2QjtBekJ5OFU3QjtBeUJ4OFVBO0VBQTZCO0F6QjI4VTdCO0F5QjE4VUE7RUFBb0I7QXpCNjhVcEI7QXlCNThVQTtFQUF5QjtBekIrOFV6QjtBeUI5OFVBO0VBQXVCO0F6Qmk5VXZCO0F5Qmg5VUE7RUFBdUI7QXpCbTlVdkI7QXlCbDlVQTtFQUFpQztBekJxOVVqQztBeUJwOVVBO0VBQXFCO0F6QnU5VXJCO0F5QnQ5VUE7RUFBdUI7QXpCeTlVdkI7QXlCeDlVQTtFQUFxQztBekIyOVVyQztBeUIxOVVBO0VBQXFCO0F6QjY5VXJCO0F5QjU5VUE7RUFBMkI7QXpCKzlVM0I7QXlCOTlVQTtFQUE4QjtBekJpK1U5QjtBeUJoK1VBO0VBQXNCO0F6Qm0rVXRCO0F5QmwrVUE7RUFBd0I7QXpCcStVeEI7QXlCcCtVQTtFQUF1QjtBekJ1K1V2QjtBeUJ0K1VBO0VBQTBCO0F6QnkrVTFCO0F5QngrVUE7RUFBZ0M7QXpCMitVaEM7QXlCMStVQTtFQUFxQjtBekI2K1VyQjtBeUI1K1VBO0VBQXdCO0F6QisrVXhCO0F5QjkrVUE7RUFBb0I7QXpCaS9VcEI7QXlCaC9VQTtFQUFvQjtBekJtL1VwQjtBeUJsL1VBO0VBQTRCO0F6QnEvVTVCO0F5QnAvVUE7RUFBNkI7QXpCdS9VN0I7QXlCdC9VQTtFQUErQjtBekJ5L1UvQjtBeUJ4L1VBO0VBQThCO0F6QjIvVTlCO0F5QjEvVUE7RUFBcUM7QXpCNi9VckM7QXlCNS9VQTtFQUF5QjtBekIrL1V6QjtBeUI5L1VBO0VBQXVCO0F6QmlnVnZCO0F5QmhnVkE7RUFBc0I7QXpCbWdWdEI7QXlCbGdWQTtFQUE4QjtBekJxZ1Y5QjtBeUJwZ1ZBO0VBQW9CO0F6QnVnVnBCO0F5QnRnVkE7RUFBd0I7QXpCeWdWeEI7QXlCeGdWQTtFQUFzQjtBekIyZ1Z0QjtBeUIxZ1ZBO0VBQTBCO0F6QjZnVjFCO0F5QjVnVkE7RUFBNEI7QXpCK2dWNUI7QXlCOWdWQTtFQUF1QjtBekJpaFZ2QjtBeUJoaFZBO0VBQXVCO0F6Qm1oVnZCO0F5QmxoVkE7RUFBNEI7QXpCcWhWNUI7QXlCcGhWQTtFQUEwQjtBekJ1aFYxQjtBeUJ0aFZBO0VBQTBCO0F6QnloVjFCO0F5QnhoVkE7RUFBc0I7QXpCMmhWdEI7QXlCMWhWQTtFQUF3QjtBekI2aFZ4QjtBeUI1aFZBO0VBQXNCO0F6QitoVnRCO0F5QjloVkE7RUFBNkI7QXpCaWlWN0I7QXlCaGlWQTtFQUFvQjtBekJtaVZwQjtBeUJsaVZBO0VBQXVCO0F6QnFpVnZCO0F5QnBpVkE7RUFBMkI7QXpCdWlWM0I7QXlCdGlWQTtFQUFpQztBekJ5aVZqQztBeUJ4aVZBO0VBQXdCO0F6QjJpVnhCO0F5QjFpVkE7RUFBMEI7QXpCNmlWMUI7QXlCNWlWQTtFQUE0QjtBekIraVY1QjtBeUI5aVZBO0VBQWtDO0F6QmlqVmxDO0F5QmhqVkE7RUFBc0I7QXpCbWpWdEI7QXlCbGpWQTtFQUE2QjtBekJxalY3QjtBeUJwalZBO0VBQTZCO0F6QnVqVjdCO0F5QnRqVkE7RUFBb0I7QXpCeWpWcEI7QXlCeGpWQTtFQUEyQjtBekIyalYzQjtBeUIxalZBO0VBQXFDO0F6QjZqVnJDO0F5QjVqVkE7RUFBOEI7QXpCK2pWOUI7QXlCOWpWQTtFQUFzQjtBekJpa1Z0QjtBeUJoa1ZBO0VBQTBCO0F6Qm1rVjFCO0F5QmxrVkE7RUFBNEI7QXpCcWtWNUI7QXlCcGtWQTtFQUFpQztBekJ1a1ZqQztBeUJ0a1ZBO0VBQXNCO0F6QnlrVnRCO0F5QnhrVkE7RUFBcUI7QXpCMmtWckI7QXlCMWtWQTtFQUE0QjtBekI2a1Y1QjtBeUI1a1ZBO0VBQTRCO0F6QitrVjVCO0F5QjlrVkE7RUFBcUI7QXpCaWxWckI7QXlCaGxWQTtFQUFxQjtBekJtbFZyQjtBeUJsbFZBO0VBQTRCO0F6QnFsVjVCO0F5QnBsVkE7RUFBNEI7QXpCdWxWNUI7QXlCdGxWQTtFQUF3QjtBekJ5bFZ4QjtBeUJ4bFZBO0VBQTJCO0F6QjJsVjNCO0F5QjFsVkE7RUFBMEI7QXpCNmxWMUI7QXlCNWxWQTtFQUFzQjtBekIrbFZ0QjtBeUI5bFZBO0VBQTZCO0F6QmltVjdCO0F5QmhtVkE7RUFBdUI7QXpCbW1WdkI7QXlCbG1WQTtFQUE2QjtBekJxbVY3QjtBeUJwbVZBO0VBQXVCO0F6QnVtVnZCO0F5QnRtVkE7RUFBbUI7QXpCeW1WbkI7QXlCeG1WQTtFQUF1QjtBekIybVZ2QjtBeUIxbVZBO0VBQXlCO0F6QjZtVnpCO0F5QjVtVkE7RUFBZ0M7QXpCK21WaEM7QXlCOW1WQTtFQUEwQjtBekJpblYxQjtBeUJoblZBO0VBQTBCO0F6Qm1uVjFCO0F5QmxuVkE7RUFBc0I7QXpCcW5WdEI7QXlCcG5WQTtFQUEyQjtBekJ1blYzQjtBeUJ0blZBO0VBQTRCO0F6QnluVjVCO0F5QnhuVkE7RUFBdUI7QXpCMm5WdkI7QXlCMW5WQTtFQUF3QjtBekI2blZ4QjtBeUI1blZBO0VBQXNCO0F6QituVnRCO0F5QjluVkE7RUFBc0I7QXpCaW9WdEI7QXlCaG9WQTtFQUF3QjtBekJtb1Z4QjtBeUJsb1ZBO0VBQXlCO0F6QnFvVnpCO0F5QnBvVkE7RUFBdUI7QXpCdW9WdkI7QXlCdG9WQTtFQUE2QjtBekJ5b1Y3QjtBeUJ4b1ZBO0VBQThCO0F6QjJvVjlCO0F5QjFvVkE7RUFBcUI7QXpCNm9WckI7QXlCNW9WQTtFQUErQjtBekIrb1YvQjtBeUI5b1ZBO0VBQTJCO0F6QmlwVjNCO0F5QmhwVkE7RUFBd0I7QXpCbXBWeEI7QXlCbHBWQTtFQUF1QjtBekJxcFZ2QjtBeUJwcFZBO0VBQXNCO0F6QnVwVnRCO0F5QnRwVkE7RUFBMEI7QXpCeXBWMUI7QXlCeHBWQTtFQUF1QjtBekIycFZ2QjtBeUIxcFZBO0VBQTBCO0F6QjZwVjFCO0F5QjVwVkE7RUFBd0I7QXpCK3BWeEI7QXlCOXBWQTtFQUFxQjtBekJpcVZyQjtBeUJocVZBO0VBQXVCO0F6Qm1xVnZCO0F5QmxxVkE7RUFBMkI7QXpCcXFWM0I7QXlCcHFWQTtFQUF3QjtBekJ1cVZ4QjtBeUJ0cVZBO0VBQW9CO0F6QnlxVnBCO0F5QnhxVkE7RUFBMkI7QXpCMnFWM0I7QXlCMXFWQTtFQUEyQjtBekI2cVYzQjtBeUI1cVZBO0VBQTJCO0F6QitxVjNCO0F5QjlxVkE7RUFBdUI7QXpCaXJWdkI7QXlCaHJWQTtFQUFxQjtBekJtclZyQjtBeUJsclZBO0VBQXFCO0F6QnFyVnJCO0F5QnByVkE7RUFBdUI7QXpCdXJWdkI7QXlCdHJWQTtFQUF1QjtBekJ5clZ2QjtBeUJ4clZBO0VBQXVCO0F6QjJyVnZCO0F5QjFyVkE7RUFBNkI7QXpCNnJWN0I7QXlCNXJWQTtFQUE0QjtBekIrclY1QjtBeUI5clZBO0VBQTRCO0F6QmlzVjVCO0F5QmhzVkE7RUFBeUI7QXpCbXNWekI7QXlCbHNWQTtFQUF1QjtBekJxc1Z2QjtBeUJwc1ZBO0VBQXVCO0F6QnVzVnZCO0F5QnRzVkE7RUFBNkI7QXpCeXNWN0I7QXlCeHNWQTtFQUFzQjtBekIyc1Z0QjtBeUIxc1ZBO0VBQWdDO0F6QjZzVmhDO0F5QjVzVkE7RUFBdUM7QXpCK3NWdkM7QXlCOXNWQTtFQUE2QjtBekJpdFY3QjtBeUJodFZBO0VBQTRCO0F6Qm10VjVCO0F5Qmx0VkE7RUFBaUM7QXpCcXRWakM7QXlCcHRWQTtFQUFxQjtBekJ1dFZyQjtBeUJ0dFZBO0VBQThCO0F6Qnl0VjlCO0F5Qnh0VkE7RUFBNkI7QXpCMnRWN0I7QXlCMXRWQTtFQUE2QjtBekI2dFY3QjtBeUI1dFZBO0VBQWdDO0F6Qit0VmhDO0F5Qjl0VkE7RUFBOEI7QXpCaXVWOUI7QXlCaHVWQTtFQUF1QjtBekJtdVZ2QjtBeUJsdVZBO0VBQThCO0F6QnF1VjlCO0F5QnB1VkE7RUFBdUI7QXpCdXVWdkI7QXlCdHVWQTtFQUE0QjtBekJ5dVY1QjtBeUJ4dVZBO0VBQXdCO0F6QjJ1VnhCO0F5QjF1VkE7RUFBd0I7QXpCNnVWeEI7QXlCNXVWQTtFQUF5QjtBekIrdVZ6QjtBeUI5dVZBO0VBQXNCO0F6Qml2VnRCO0F5Qmh2VkE7RUFBc0I7QXpCbXZWdEI7QXlCbHZWQTtFQUEyQjtBekJxdlYzQjtBeUJwdlZBO0VBQW1DO0F6QnV2Vm5DO0F5QnR2VkE7RUFBMkI7QXpCeXZWM0I7QXlCeHZWQTtFQUFzQjtBekIydlZ0QjtBeUIxdlZBO0VBQXlCO0F6QjZ2VnpCO0F5QjV2VkE7RUFBK0I7QXpCK3ZWL0I7QXlCOXZWQTtFQUFnQztBekJpd1ZoQztBeUJod1ZBO0VBQTBCO0F6Qm13VjFCO0F5Qmx3VkE7RUFBcUI7QXpCcXdWckI7QXlCcHdWQTtFQUFtQztBekJ1d1ZuQztBeUJ0d1ZBO0VBQWlDO0F6Qnl3VmpDO0F5Qnh3VkE7RUFBaUM7QXpCMndWakM7QXlCMXdWQTtFQUErQjtBekI2d1YvQjtBeUI1d1ZBO0VBQTBCO0F6Qit3VjFCO0F5Qjl3VkE7RUFBa0M7QXpCaXhWbEM7QXlCaHhWQTtFQUFnQztBekJteFZoQztBeUJseFZBO0VBQXdCO0F6QnF4VnhCO0F5QnB4VkE7RUFBMkI7QXpCdXhWM0I7QXlCdHhWQTtFQUE4QjtBekJ5eFY5QjtBeUJ4eFZBO0VBQXdCO0F6QjJ4VnhCO0F5QjF4VkE7RUFBd0I7QXpCNnhWeEI7QXlCNXhWQTtFQUF3QjtBekIreFZ4QjtBeUI5eFZBO0VBQXVCO0F6Qml5VnZCO0F5Qmh5VkE7RUFBNEI7QXpCbXlWNUI7QXlCbHlWQTtFQUErQjtBekJxeVYvQjtBeUJweVZBO0VBQStCO0F6QnV5Vi9CO0F5QnR5VkE7RUFBcUI7QXpCeXlWckI7QXlCeHlWQTtFQUEwQjtBekIyeVYxQjtBeUIxeVZBO0VBQTJCO0F6QjZ5VjNCO0F5QjV5VkE7RUFBc0I7QXpCK3lWdEI7QXlCOXlWQTtFQUE2QjtBekJpelY3QjtBeUJoelZBO0VBQTZCO0F6Qm16VjdCO0F5Qmx6VkE7RUFBOEI7QXpCcXpWOUI7QXlCcHpWQTtFQUE2QjtBekJ1elY3QjtBeUJ0elZBO0VBQTRCO0F6Qnl6VjVCO0F5Qnh6VkE7RUFBNkI7QXpCMnpWN0I7QXlCMXpWQTtFQUE0QjtBekI2elY1QjtBeUI1elZBO0VBQXFCO0F6Qit6VnJCO0F5Qjl6VkE7RUFBNEI7QXpCaTBWNUI7QXlCaDBWQTtFQUEwQjtBekJtMFYxQjtBeUJsMFZBO0VBQXVCO0F6QnEwVnZCO0F5QnAwVkE7RUFBNEI7QXpCdTBWNUI7QXlCdDBWQTtFQUE4QjtBekJ5MFY5QjtBeUJ4MFZBO0VBQXVCO0F6QjIwVnZCO0F5QjEwVkE7RUFBeUI7QXpCNjBWekI7QXlCNTBWQTtFQUE2QjtBekIrMFY3QjtBeUI5MFZBO0VBQTRCO0F6QmkxVjVCO0F5QmgxVkE7RUFBbUM7QXpCbTFWbkM7QXlCbDFWQTtFQUEwQjtBekJxMVYxQjtBeUJwMVZBO0VBQXVCO0F6QnUxVnZCO0F5QnQxVkE7RUFBeUI7QXpCeTFWekI7QXlCeDFWQTtFQUFvQjtBekIyMVZwQjtBeUIxMVZBO0VBQTRCO0F6QjYxVjVCO0F5QjUxVkE7RUFBNEI7QXpCKzFWNUI7QXlCOTFWQTtFQUF1QjtBekJpMlZ2QjtBeUJoMlZBO0VBQXFCO0F6Qm0yVnJCO0F5QmwyVkE7RUFBK0I7QXpCcTJWL0I7QXlCcDJWQTtFQUF3QjtBekJ1MlZ4QjtBeUJ0MlZBO0VBQXNCO0F6QnkyVnRCO0F5QngyVkE7RUFBNkI7QXpCMjJWN0I7QXlCMTJWQTtFQUF1QjtBekI2MlZ2QjtBeUI1MlZBO0VBQWlDO0F6QisyVmpDO0F5QjkyVkE7RUFBcUM7QXpCaTNWckM7QXlCaDNWQTtFQUFvQjtBekJtM1ZwQjtBeUJsM1ZBO0VBQXFCO0F6QnEzVnJCO0F5QnAzVkE7RUFBc0I7QXpCdTNWdEI7QXlCdDNWQTtFQUFxQjtBekJ5M1ZyQjtBeUJ4M1ZBO0VBQXlCO0F6QjIzVnpCO0F5QjEzVkE7RUFBK0I7QXpCNjNWL0I7QXlCNTNWQTtFQUE4QjtBekIrM1Y5QjtBeUI5M1ZBO0VBQXlCO0F6Qmk0VnpCO0F5Qmg0VkE7RUFBNEI7QXpCbTRWNUI7QXlCbDRWQTtFQUEyQjtBekJxNFYzQjtBeUJwNFZBO0VBQW1CO0F6QnU0Vm5CO0F5QnQ0VkE7RUFBeUI7QXpCeTRWekI7QXlCeDRWQTtFQUF3QjtBekIyNFZ4QjtBeUIxNFZBO0VBQTBCO0F6QjY0VjFCO0F5QjU0VkE7RUFBNEI7QXpCKzRWNUI7QXlCOTRWQTtFQUFrQztBekJpNVZsQztBeUJoNVZBO0VBQWlDO0F6Qm01VmpDO0F5Qmw1VkE7RUFBaUM7QXpCcTVWakM7QXlCcDVWQTtFQUFvQztBekJ1NVZwQztBeUJ0NVZBO0VBQTJDO0F6Qnk1VjNDO0F5Qng1VkE7RUFBNEI7QXpCMjVWNUI7QXlCMTVWQTtFQUEwQjtBekI2NVYxQjtBeUI1NVZBO0VBQTBCO0F6Qis1VjFCO0F5Qjk1VkE7RUFBaUM7QXpCaTZWakM7QXlCaDZWQTtFQUFzQjtBekJtNlZ0QjtBeUJsNlZBO0VBQTZCO0F6QnE2VjdCO0F5QnA2VkE7RUFBcUI7QXpCdTZWckI7QXlCdDZWQTtFQUEyQjtBekJ5NlYzQjtBeUJ4NlZBO0VBQTBCO0F6QjI2VjFCO0F5QjE2VkE7RUFBMEI7QXpCNjZWMUI7QXlCNTZWQTtFQUFzQjtBekIrNlZ0QjtBeUI5NlZBO0VBQTRCO0F6Qmk3VjVCO0F5Qmg3VkE7RUFBc0M7QXpCbTdWdEM7QXlCbDdWQTtFQUFzQjtBekJxN1Z0QjtBeUJwN1ZBO0VBQWdDO0F6QnU3VmhDO0F5QnQ3VkE7RUFBcUI7QXpCeTdWckI7QXlCeDdWQTtFQUF1QjtBekIyN1Z2QjtBeUIxN1ZBO0VBQTRCO0F6QjY3VjVCO0F5QjU3VkE7RUFBdUI7QXpCKzdWdkI7QXlCOTdWQTtFQUFzQjtBekJpOFZ0QjtBeUJoOFZBO0VBQW9CO0F6Qm04VnBCO0F5Qmw4VkE7RUFBdUI7QXpCcThWdkI7QXlCcDhWQTtFQUE4QjtBekJ1OFY5QjtBeUJ0OFZBO0VBQW1CO0F6Qnk4Vm5CO0F5Qng4VkE7RUFBdUI7QXpCMjhWdkI7QXlCMThWQTtFQUF3QjtBekI2OFZ4QjtBeUI1OFZBO0VBQStCO0F6Qis4Vi9CO0F5Qjk4VkE7RUFBc0I7QXpCaTlWdEI7QXlCaDlWQTtFQUFxQjtBekJtOVZyQjtBeUJsOVZBO0VBQXNCO0F6QnE5VnRCO0F5QnA5VkE7RUFBeUI7QXpCdTlWekI7QXlCdDlWQTtFQUEwQjtBekJ5OVYxQjtBeUJ4OVZBO0VBQXFCO0F6QjI5VnJCO0F5QjE5VkE7RUFBK0I7QXpCNjlWL0I7QXlCNTlWQTtFQUE0QjtBekIrOVY1QjtBeUI5OVZBO0VBQWlDO0F6QmkrVmpDO0F5QmgrVkE7RUFBMkI7QXpCbStWM0I7QXlCbCtWQTtFQUF1QjtBekJxK1Z2QjtBeUJwK1ZBO0VBQXVCO0F6QnUrVnZCO0F5QnQrVkE7RUFBaUM7QXpCeStWakM7QXlCeCtWQTtFQUF3QjtBekIyK1Z4QjtBeUIxK1ZBO0VBQXVCO0F6QjYrVnZCO0F5QjUrVkE7RUFBb0I7QXpCKytWcEI7QXlCOStWQTtFQUFxQjtBekJpL1ZyQjtBeUJoL1ZBO0VBQTRCO0F6Qm0vVjVCO0F5QmwvVkE7RUFBd0I7QXpCcS9WeEI7QXlCcC9WQTtFQUEwQjtBekJ1L1YxQjtBeUJ0L1ZBO0VBQTRCO0F6QnkvVjVCO0F5QngvVkE7RUFBMkI7QXpCMi9WM0I7QXlCMS9WQTtFQUFzQjtBekI2L1Z0QjtBeUI1L1ZBO0VBQXlCO0F6QisvVnpCO0F5QjkvVkE7RUFBOEI7QXpCaWdXOUI7QXlCaGdXQTtFQUF5QjtBekJtZ1d6QjtBeUJsZ1dBO0VBQXVCO0F6QnFnV3ZCO0F5QnBnV0E7RUFBc0I7QXpCdWdXdEI7QXlCdGdXQTtFQUE2QjtBekJ5Z1c3QjtBeUJ4Z1dBO0VBQTJCO0F6QjJnVzNCO0F5QjFnV0E7RUFBd0I7QXpCNmdXeEI7QXlCNWdXQTtFQUF1QjtBekIrZ1d2QjtBeUI5Z1dBO0VBQThCO0F6QmloVzlCO0F5QmhoV0E7RUFBc0I7QXpCbWhXdEI7QXlCbGhXQTtFQUFzQjtBekJxaFd0QjtBeUJwaFdBO0VBQXNCO0F6QnVoV3RCO0F5QnRoV0E7RUFBNkI7QXpCeWhXN0I7QXlCeGhXQTtFQUF3QjtBekIyaFd4QjtBeUIxaFdBO0VBQXFCO0F6QjZoV3JCO0F5QjVoV0E7RUFBbUI7QXpCK2hXbkI7QXlCOWhXQTtFQUFvQjtBekJpaVdwQjtBeUJoaVdBO0VBQWdDO0F6Qm1pV2hDO0F5QmxpV0E7RUFBNEI7QXpCcWlXNUI7QXlCcGlXQTtFQUEyQjtBekJ1aVczQjtBeUJ0aVdBO0VBQTBCO0F6QnlpVzFCO0F5QnhpV0E7RUFBc0I7QXpCMmlXdEI7QXlCMWlXQTtFQUEwQjtBekI2aVcxQjtBeUI1aVdBO0VBQXNCO0F6QitpV3RCO0F5QjlpV0E7RUFBdUI7QXpCaWpXdkI7QXlCaGpXQTtFQUF1QjtBekJtald2QjtBeUJsaldBO0VBQXlCO0F6QnFqV3pCO0F5QnBqV0E7RUFBZ0M7QXpCdWpXaEM7QXlCdGpXQTtFQUEyQjtBekJ5alczQjtBeUJ4aldBO0VBQXNCO0F6QjJqV3RCO0F5QjFqV0E7RUFBcUI7QXpCNmpXckI7QXlCNWpXQTtFQUE0QjtBekIralc1QjtBeUI5aldBO0VBQTZCO0F6QmlrVzdCO0F5QmhrV0E7RUFBZ0M7QXpCbWtXaEM7QXlCbGtXQTtFQUFnQztBekJxa1doQztBeUJwa1dBO0VBQStCO0F6QnVrVy9CO0F5QnRrV0E7RUFBd0I7QXpCeWtXeEI7QXlCeGtXQTtFQUF5QjtBekIya1d6QjtBeUIxa1dBO0VBQTBCO0F6QjZrVzFCO0F5QjVrV0E7RUFBaUM7QXpCK2tXakM7QXlCOWtXQTtFQUEyQjtBekJpbFczQjtBeUJobFdBO0VBQTJCO0F6Qm1sVzNCO0F5QmxsV0E7RUFBd0I7QXpCcWxXeEI7QXlCcGxXQTtFQUF1QjtBekJ1bFd2QjtBeUJ0bFdBO0VBQXFCO0F6QnlsV3JCO0F5QnhsV0E7RUFBcUI7QXpCMmxXckI7QXlCMWxXQTtFQUE0QjtBekI2bFc1QjtBeUI1bFdBO0VBQTZCO0F6QitsVzdCO0F5QjlsV0E7RUFBc0I7QXpCaW1XdEI7QXlCaG1XQTtFQUF1QjtBekJtbVd2QjtBeUJsbVdBO0VBQXFDO0F6QnFtV3JDO0F5QnBtV0E7RUFBcUI7QXpCdW1XckI7QXlCdG1XQTtFQUF5QjtBekJ5bVd6QjtBeUJ4bVdBO0VBQXNCO0F6QjJtV3RCO0F5QjFtV0E7RUFBd0I7QXpCNm1XeEI7QXlCNW1XQTtFQUErQjtBekIrbVcvQjtBQUNBLFlBQVk7QXlCN21XWjtFQUEyQjtBekJnblczQjtBeUIvbVdBO0VBQTZCO0F6QmtuVzdCO0F5QmpuV0E7RUFBK0I7QXpCb25XL0I7QXlCbm5XQTtFQUE0QjtBekJzblc1QjtBeUJybldBO0VBQXVCO0F6QnduV3ZCO0F5QnZuV0E7RUFBdUI7QXpCMG5XdkI7QXlCem5XQTtFQUF1QztBekI0bld2QztBeUIzbldBO0VBQTZDO0F6QjhuVzdDO0F5QjduV0E7RUFBd0M7QXpCZ29XeEM7QXlCL25XQTtFQUFxQztBekJrb1dyQztBeUJqb1dBO0VBQWdDO0F6Qm9vV2hDO0F5Qm5vV0E7RUFBdUM7QXpCc29XdkM7QXlCcm9XQTtFQUFtQztBekJ3b1duQztBeUJ2b1dBO0VBQW1DO0F6QjBvV25DO0F5QnpvV0E7RUFBaUM7QXpCNG9XakM7QXlCM29XQTtFQUEyQjtBekI4b1czQjtBeUI3b1dBO0VBQTJCO0F6QmdwVzNCO0F5Qi9vV0E7RUFBZ0M7QXpCa3BXaEM7QXlCanBXQTtFQUE0QjtBekJvcFc1QjtBeUJucFdBO0VBQXlCO0F6QnNwV3pCO0F5QnJwV0E7RUFBb0I7QXpCd3BXcEI7QXlCdnBXQTtFQUEyQjtBekIwcFczQjtBeUJ6cFdBO0VBQXNCO0F6QjRwV3RCO0F5QjNwV0E7RUFBb0I7QXpCOHBXcEI7QXlCN3BXQTtFQUFvQjtBekJncVdwQjtBeUIvcFdBO0VBQXNDO0F6QmtxV3RDO0F5QmpxV0E7RUFBaUM7QXpCb3FXakM7QXlCbnFXQTtFQUFxQjtBekJzcVdyQjtBeUJycVdBO0VBQTZCO0F6QndxVzdCO0F5QnZxV0E7RUFBMkI7QXpCMHFXM0I7QXlCenFXQTtFQUEyQjtBekI0cVczQjtBeUIzcVdBO0VBQWdDO0F6QjhxV2hDO0F5QjdxV0E7RUFBd0I7QXpCZ3JXeEI7QXlCL3FXQTtFQUFpQztBekJrcldqQztBeUJqcldBO0VBQW9CO0F6Qm9yV3BCO0F5Qm5yV0E7RUFBNEM7QXpCc3JXNUM7QXlCcnJXQTtFQUF1QjtBekJ3cld2QjtBeUJ2cldBO0VBQTBCO0F6QjByVzFCO0F5QnpyV0E7RUFBd0I7QXpCNHJXeEI7QXlCM3JXQTtFQUFvQjtBekI4cldwQjtBeUI3cldBO0VBQXdCO0F6QmdzV3hCO0F5Qi9yV0E7RUFBNkI7QXpCa3NXN0I7QXlCanNXQTtFQUE2QjtBekJvc1c3QjtBeUJuc1dBO0VBQTRCO0F6QnNzVzVCO0F5QnJzV0E7RUFBK0I7QXpCd3NXL0I7QXlCdnNXQTtFQUE0QjtBekIwc1c1QjtBeUJ6c1dBO0VBQThCO0F6QjRzVzlCO0F5QjNzV0E7RUFBNEI7QXpCOHNXNUI7QXlCN3NXQTtFQUE2QjtBekJndFc3QjtBeUIvc1dBO0VBQXlCO0F6Qmt0V3pCO0F5Qmp0V0E7RUFBNkI7QXpCb3RXN0I7QXlCbnRXQTtFQUFzQztBekJzdFd0QztBeUJydFdBO0VBQTZCO0F6Qnd0VzdCO0F5QnZ0V0E7RUFBd0I7QXpCMHRXeEI7QXlCenRXQTtFQUE0QjtBekI0dFc1QjtBeUIzdFdBO0VBQXFCO0F6Qjh0V3JCO0F5Qjd0V0E7RUFBdUI7QXpCZ3VXdkI7QXlCL3RXQTtFQUFxQjtBekJrdVdyQjtBeUJqdVdBO0VBQW1CO0F6Qm91V25CO0F5Qm51V0E7RUFBc0I7QXpCc3VXdEI7QXlCcnVXQTtFQUFxQjtBekJ3dVdyQjtBeUJ2dVdBO0VBQWlDO0F6QjB1V2pDO0F5Qnp1V0E7RUFBMEI7QXpCNHVXMUI7QXlCM3VXQTtFQUErQjtBekI4dVcvQjtBeUI3dVdBO0VBQXNCO0F6Qmd2V3RCO0F5Qi91V0E7RUFBb0I7QXpCa3ZXcEI7QXlCanZXQTtFQUF5QjtBekJvdld6QjtBeUJudldBO0VBQTJCO0F6QnN2VzNCO0F5QnJ2V0E7RUFBeUI7QXpCd3ZXekI7QXlCdnZXQTtFQUEwQjtBekIwdlcxQjtBeUJ6dldBO0VBQXdCO0F6QjR2V3hCO0F5QjN2V0E7RUFBeUI7QXpCOHZXekI7QXlCN3ZXQTtFQUFnQztBekJnd1doQztBeUIvdldBO0VBQXVCO0F6Qmt3V3ZCO0F5Qmp3V0E7RUFBMEI7QXpCb3dXMUI7QXlCbndXQTtFQUFpQztBekJzd1dqQztBeUJyd1dBO0VBQTRCO0F6Qnd3VzVCO0F5QnZ3V0E7RUFBOEI7QXpCMHdXOUI7QXlCendXQTtFQUF5QjtBekI0d1d6QjtBeUIzd1dBO0VBQTRCO0F6Qjh3VzVCO0F5Qjd3V0E7RUFBdUI7QXpCZ3hXdkI7QXlCL3dXQTtFQUF1QjtBekJreFd2QjtBeUJqeFdBO0VBQXFCO0F6Qm94V3JCO0F5Qm54V0E7RUFBd0I7QXpCc3hXeEI7QXlCcnhXQTtFQUFnQztBekJ3eFdoQztBeUJ2eFdBO0VBQXlCO0F6QjB4V3pCO0F5Qnp4V0E7RUFBd0I7QXpCNHhXeEI7QXlCM3hXQTtFQUEwQjtBekI4eFcxQjtBeUI3eFdBO0VBQStCO0F6Qmd5Vy9CO0F5Qi94V0E7RUFBc0I7QXpCa3lXdEI7QXlCanlXQTtFQUFvQjtBekJveVdwQjtBeUJueVdBO0VBQXFCO0F6QnN5V3JCO0F5QnJ5V0E7RUFBMkI7QXpCd3lXM0I7QXlCdnlXQTtFQUFtQjtBekIweVduQjtBeUJ6eVdBO0VBQXdCO0F6QjR5V3hCO0F5QjN5V0E7RUFBeUI7QXpCOHlXekI7QXlCN3lXQTtFQUFxQjtBekJneldyQjtBeUIveVdBO0VBQWtDO0F6Qmt6V2xDO0F5Qmp6V0E7RUFBMEI7QXpCb3pXMUI7QXlCbnpXQTtFQUFxQjtBekJzeldyQjtBeUJyeldBO0VBQTBCO0F6Qnd6VzFCO0F5QnZ6V0E7RUFBb0M7QXpCMHpXcEM7QXlCenpXQTtFQUFxQjtBekI0eldyQjtBeUIzeldBO0VBQXFCO0F6Qjh6V3JCO0F5Qjd6V0E7RUFBb0I7QXpCZzBXcEI7QXlCL3pXQTtFQUFvQjtBekJrMFdwQjtBeUJqMFdBO0VBQXVCO0F6Qm8wV3ZCO0F5Qm4wV0E7RUFBbUM7QXpCczBXbkM7QXlCcjBXQTtFQUFxQztBekJ3MFdyQztBeUJ2MFdBO0VBQXFCO0F6QjAwV3JCO0F5QnowV0E7RUFBMkI7QXpCNDBXM0I7QXlCMzBXQTtFQUE0QjtBekI4MFc1QjtBeUI3MFdBO0VBQXNCO0F6QmcxV3RCO0F5Qi8wV0E7RUFBa0I7QXpCazFXbEI7QXlCajFXQTtFQUE2QjtBekJvMVc3QjtBeUJuMVdBO0VBQXlCO0F6QnMxV3pCO0F5QnIxV0E7RUFBZ0M7QXpCdzFXaEM7QXlCdjFXQTtFQUF1QjtBekIwMVd2QjtBeUJ6MVdBO0VBQTRCO0F6QjQxVzVCO0F5QjMxV0E7RUFBcUI7QXpCODFXckI7QXlCNzFXQTtFQUE2QjtBekJnMlc3QjtBeUIvMVdBO0VBQXFCO0F6QmsyV3JCO0F5QmoyV0E7RUFBc0I7QXpCbzJXdEI7QXlCbjJXQTtFQUErQjtBekJzMlcvQjtBeUJyMldBO0VBQStCO0F6QncyVy9CO0F5QnYyV0E7RUFBOEI7QXpCMDJXOUI7QXlCejJXQTtFQUFnQztBekI0MldoQztBeUIzMldBO0VBQThCO0F6QjgyVzlCO0F5QjcyV0E7RUFBcUI7QXpCZzNXckI7QXlCLzJXQTtFQUFvQjtBekJrM1dwQjtBeUJqM1dBO0VBQXdCO0F6Qm8zV3hCO0F5Qm4zV0E7RUFBb0I7QXpCczNXcEI7QXlCcjNXQTtFQUE0QjtBekJ3M1c1QjtBeUJ2M1dBO0VBQXlCO0F6QjAzV3pCO0F5QnozV0E7RUFBeUM7QXpCNDNXekM7QXlCMzNXQTtFQUFvQztBekI4M1dwQztBeUI3M1dBO0VBQW9CO0F6Qmc0V3BCO0F5Qi8zV0E7RUFBb0I7QXpCazRXcEI7QXlCajRXQTtFQUFvQjtBekJvNFdwQjtBeUJuNFdBO0VBQW9CO0F6QnM0V3BCO0F5QnI0V0E7RUFBb0I7QXpCdzRXcEI7QXlCdjRXQTtFQUFzQjtBekIwNFd0QjtBeUJ6NFdBO0VBQXdCO0F6QjQ0V3hCO0F5QjM0V0E7RUFBMEI7QXpCODRXMUI7QXlCNzRXQTtFQUFxQjtBekJnNVdyQjtBeUIvNFdBO0VBQTJCO0F6Qms1VzNCO0F5Qmo1V0E7RUFBZ0M7QXpCbzVXaEM7QXlCbjVXQTtFQUF3QjtBekJzNVd4QjtBeUJyNVdBO0VBQXFCO0F6Qnc1V3JCO0F5QnY1V0E7RUFBNEI7QXpCMDVXNUI7QXlCejVXQTtFQUF3QjtBekI0NVd4QjtBeUIzNVdBO0VBQTZCO0F6Qjg1VzdCO0F5Qjc1V0E7RUFBNEI7QXpCZzZXNUI7QXlCLzVXQTtFQUFxQjtBekJrNldyQjtBeUJqNldBO0VBQWdDO0F6Qm82V2hDO0F5Qm42V0E7RUFBb0I7QXpCczZXcEI7QXlCcjZXQTtFQUF1QjtBekJ3Nld2QjtBeUJ2NldBO0VBQStCO0F6QjA2Vy9CO0F5Qno2V0E7RUFBZ0M7QXpCNDZXaEM7QXlCMzZXQTtFQUE4QjtBekI4Nlc5QjtBeUI3NldBO0VBQWdDO0F6Qmc3V2hDO0F5Qi82V0E7RUFBMkI7QXpCazdXM0I7QXlCajdXQTtFQUErQjtBekJvN1cvQjtBeUJuN1dBO0VBQXlCO0F6QnM3V3pCO0F5QnI3V0E7RUFBd0I7QXpCdzdXeEI7QXlCdjdXQTtFQUFxQjtBekIwN1dyQjtBeUJ6N1dBO0VBQStCO0F6QjQ3Vy9CO0F5QjM3V0E7RUFBdUM7QXpCODdXdkM7QXlCNzdXQTtFQUE4QjtBekJnOFc5QjtBeUIvN1dBO0VBQTZCO0F6Qms4VzdCO0F5Qmo4V0E7RUFBd0I7QXpCbzhXeEI7QXlCbjhXQTtFQUF3QztBekJzOFd4QztBeUJyOFdBO0VBQXNDO0F6Qnc4V3RDO0F5QnY4V0E7RUFBNkI7QXpCMDhXN0I7QXlCejhXQTtFQUF3QjtBekI0OFd4QjtBeUIzOFdBO0VBQTRCO0F6Qjg4VzVCO0F5Qjc4V0E7RUFBOEI7QXpCZzlXOUI7QXlCLzhXQTtFQUFzQjtBekJrOVd0QjtBeUJqOVdBO0VBQXdCO0F6Qm85V3hCO0F5Qm45V0E7RUFBMEI7QXpCczlXMUI7QXlCcjlXQTtFQUEwQjtBekJ3OVcxQjtBeUJ2OVdBO0VBQStCO0F6QjA5Vy9CO0F5Qno5V0E7RUFBb0I7QXpCNDlXcEI7QXlCMzlXQTtFQUEwQjtBekI4OVcxQjtBeUI3OVdBO0VBQXVCO0F6QmcrV3ZCO0F5Qi85V0E7RUFBc0I7QXpCaytXdEI7QXlCaitXQTtFQUE4QjtBekJvK1c5QjtBeUJuK1dBO0VBQThCO0F6QnMrVzlCO0F5QnIrV0E7RUFBK0I7QXpCdytXL0I7QXlCditXQTtFQUE0QjtBekIwK1c1QjtBeUJ6K1dBO0VBQXNCO0F6QjQrV3RCO0F5QjMrV0E7RUFBMkI7QXpCOCtXM0I7QXlCNytXQTtFQUFzQjtBekJnL1d0QjtBeUIvK1dBO0VBQXdCO0F6QmsvV3hCO0F5QmovV0E7RUFBeUI7QXpCby9XekI7QXlCbi9XQTtFQUFxQjtBekJzL1dyQjtBeUJyL1dBO0VBQXVCO0F6QncvV3ZCO0F5QnYvV0E7RUFBd0I7QXpCMC9XeEI7QXlCei9XQTtFQUE4QjtBekI0L1c5QjtBeUIzL1dBO0VBQXFDO0F6QjgvV3JDO0F5QjcvV0E7RUFBNEI7QXpCZ2dYNUI7QXlCLy9XQTtFQUF1QjtBekJrZ1h2QjtBeUJqZ1hBO0VBQXVCO0F6Qm9nWHZCO0F5Qm5nWEE7RUFBb0I7QXpCc2dYcEI7QXlCcmdYQTtFQUF1QjtBekJ3Z1h2QjtBeUJ2Z1hBO0VBQW9CO0F6QjBnWHBCO0F5QnpnWEE7RUFBc0I7QXpCNGdYdEI7QXlCM2dYQTtFQUFzQjtBekI4Z1h0QjtBeUI3Z1hBO0VBQW9CO0F6QmdoWHBCO0F5Qi9nWEE7RUFBK0I7QXpCa2hYL0I7QXlCamhYQTtFQUFxQjtBekJvaFhyQjtBeUJuaFhBO0VBQXdCO0F6QnNoWHhCO0F5QnJoWEE7RUFBeUI7QXpCd2hYekI7QXlCdmhYQTtFQUF1QjtBekIwaFh2QjtBeUJ6aFhBO0VBQXVCO0F6QjRoWHZCO0F5QjNoWEE7RUFBeUI7QXpCOGhYekI7QXlCN2hYQTtFQUFxQjtBekJnaVhyQjtBeUIvaFhBO0VBQXdCO0F6QmtpWHhCO0F5QmppWEE7RUFBeUI7QXpCb2lYekI7QXlCbmlYQTtFQUF3QjtBekJzaVh4QjtBeUJyaVhBO0VBQXdCO0F6QndpWHhCO0F5QnZpWEE7RUFBdUI7QXpCMGlYdkI7QXlCemlYQTtFQUF3QjtBekI0aVh4QjtBeUIzaVhBO0VBQXVCO0F6QjhpWHZCO0F5QjdpWEE7RUFBd0M7QXpCZ2pYeEM7QXlCL2lYQTtFQUF5QztBekJralh6QztBeUJqalhBO0VBQStCO0F6Qm9qWC9CO0F5Qm5qWEE7RUFBdUM7QXpCc2pYdkM7QXlCcmpYQTtFQUF3QztBekJ3alh4QztBeUJ2alhBO0VBQWdDO0F6QjBqWGhDO0F5QnpqWEE7RUFBdUM7QXpCNGpYdkM7QXlCM2pYQTtFQUF3QztBekI4alh4QztBeUI3alhBO0VBQXNCO0F6QmdrWHRCO0F5Qi9qWEE7RUFBb0I7QXpCa2tYcEI7QXlCamtYQTtFQUE0QjtBekJva1g1QjtBeUJua1hBO0VBQXdCO0F6QnNrWHhCO0F5QnJrWEE7RUFBcUI7QXpCd2tYckI7QXlCdmtYQTtFQUF1QjtBekIwa1h2QjtBeUJ6a1hBO0VBQXlCO0F6QjRrWHpCO0F5QjNrWEE7RUFBMkI7QXpCOGtYM0I7QXlCN2tYQTtFQUE0QjtBekJnbFg1QjtBeUIva1hBO0VBQStCO0F6QmtsWC9CO0F5QmpsWEE7RUFBMkI7QXpCb2xYM0I7QXlCbmxYQTtFQUFzQjtBekJzbFh0QjtBeUJybFhBO0VBQTRCO0F6QndsWDVCO0F5QnZsWEE7RUFBMkI7QXpCMGxYM0I7QXlCemxYQTtFQUFxQjtBekI0bFhyQjtBeUIzbFhBO0VBQW1CO0F6QjhsWG5CO0F5QjdsWEE7RUFBNEI7QXpCZ21YNUI7QXlCL2xYQTtFQUE0QjtBekJrbVg1QjtBeUJqbVhBO0VBQTZCO0F6Qm9tWDdCO0F5Qm5tWEE7RUFBMEI7QXpCc21YMUI7QXlCcm1YQTtFQUEwQjtBekJ3bVgxQjtBeUJ2bVhBO0VBQXVCO0F6QjBtWHZCO0F5QnptWEE7RUFBMEI7QXpCNG1YMUI7QXlCM21YQTtFQUE4QjtBekI4bVg5QjtBeUI3bVhBO0VBQThCO0F6QmduWDlCO0F5Qi9tWEE7RUFBK0I7QXpCa25YL0I7QXlCam5YQTtFQUE0QjtBekJvblg1QjtBeUJublhBO0VBQW9CO0F6QnNuWHBCO0F5QnJuWEE7RUFBdUI7QXpCd25YdkI7QXlCdm5YQTtFQUEwQjtBekIwblgxQjtBeUJ6blhBO0VBQXVCO0F6QjRuWHZCO0F5QjNuWEE7RUFBb0I7QXpCOG5YcEI7QXlCN25YQTtFQUE0QjtBekJnb1g1QjtBeUIvblhBO0VBQTJCO0F6QmtvWDNCO0F5QmpvWEE7RUFBNEI7QXpCb29YNUI7QXlCbm9YQTtFQUF1QjtBekJzb1h2QjtBeUJyb1hBO0VBQXNCO0F6QndvWHRCO0F5QnZvWEE7RUFBNkI7QXpCMG9YN0I7QXlCem9YQTtFQUEyQjtBekI0b1gzQjtBeUIzb1hBO0VBQTBCO0F6QjhvWDFCO0F5QjdvWEE7RUFBcUI7QXpCZ3BYckI7QXlCL29YQTtFQUFxQztBekJrcFhyQztBeUJqcFhBO0VBQXFCO0F6Qm9wWHJCO0F5Qm5wWEE7RUFBK0I7QXpCc3BYL0I7QXlCcnBYQTtFQUE2QjtBekJ3cFg3QjtBeUJ2cFhBO0VBQXdCO0F6QjBwWHhCO0F5QnpwWEE7RUFBdUI7QXpCNHBYdkI7QXlCM3BYQTtFQUFzQjtBekI4cFh0QjtBeUI3cFhBO0VBQTBCO0F6QmdxWDFCO0F5Qi9wWEE7RUFBdUI7QXpCa3FYdkI7QXlCanFYQTtFQUF1QjtBekJvcVh2QjtBeUJucVhBO0VBQXNCO0F6QnNxWHRCO0F5QnJxWEE7RUFBb0I7QXpCd3FYcEI7QXlCdnFYQTtFQUFtQztBekIwcVhuQztBeUJ6cVhBO0VBQWdDO0F6QjRxWGhDO0F5QjNxWEE7RUFBc0I7QXpCOHFYdEI7QXlCN3FYQTtFQUE2QjtBekJnclg3QjtBeUIvcVhBO0VBQWtCO0F6QmtyWGxCO0F5QmpyWEE7RUFBbUI7QXpCb3JYbkI7QXlCbnJYQTtFQUE0QjtBekJzclg1QjtBeUJyclhBO0VBQW9CO0F6QndyWHBCO0F5QnZyWEE7RUFBb0I7QXpCMHJYcEI7QXlCenJYQTtFQUF3QjtBekI0clh4QjtBeUIzclhBO0VBQXlCO0F6QjhyWHpCO0F5QjdyWEE7RUFBcUI7QXpCZ3NYckI7QXlCL3JYQTtFQUFpQztBekJrc1hqQztBeUJqc1hBO0VBQThCO0F6Qm9zWDlCO0F5Qm5zWEE7RUFBNEI7QXpCc3NYNUI7QXlCcnNYQTtFQUErQjtBekJ3c1gvQjtBeUJ2c1hBO0VBQTZCO0F6QjBzWDdCO0F5QnpzWEE7RUFBd0I7QXpCNHNYeEI7QXlCM3NYQTtFQUE2QjtBekI4c1g3QjtBeUI3c1hBO0VBQXdDO0F6Qmd0WHhDO0F5Qi9zWEE7RUFBeUI7QXpCa3RYekI7QXlCanRYQTtFQUEwQjtBekJvdFgxQjtBeUJudFhBO0VBQXdCO0F6QnN0WHhCO0F5QnJ0WEE7RUFBcUI7QXpCd3RYckI7QXlCdnRYQTtFQUF5QjtBekIwdFh6QjtBeUJ6dFhBO0VBQStCO0F6QjR0WC9CO0F5QjN0WEE7RUFBZ0M7QXpCOHRYaEM7QXlCN3RYQTtFQUF5QjtBekJndVh6QjtBeUIvdFhBO0VBQWtDO0F6Qmt1WGxDO0F5Qmp1WEE7RUFBcUI7QXpCb3VYckI7QXlCbnVYQTtFQUErQjtBekJzdVgvQjtBeUJydVhBO0VBQTJCO0F6Qnd1WDNCO0F5QnZ1WEE7RUFBeUI7QXpCMHVYekI7QXlCenVYQTtFQUF1QjtBekI0dVh2QjtBeUIzdVhBO0VBQXlCO0F6Qjh1WHpCO0F5Qjd1WEE7RUFBc0I7QXpCZ3ZYdEI7QXlCL3VYQTtFQUFxQjtBekJrdlhyQjtBeUJqdlhBO0VBQXVCO0F6Qm92WHZCO0F5Qm52WEE7RUFBd0I7QXpCc3ZYeEI7QXlCcnZYQTtFQUFzQjtBekJ3dlh0QjtBeUJ2dlhBO0VBQWdDO0F6QjB2WGhDO0F5Qnp2WEE7RUFBa0M7QXpCNHZYbEM7QXlCM3ZYQTtFQUFnQztBekI4dlhoQztBeUI3dlhBO0VBQXdCO0F6Qmd3WHhCO0F5Qi92WEE7RUFBeUI7QXpCa3dYekI7QXlCandYQTtFQUFzQjtBekJvd1h0QjtBeUJud1hBO0VBQWdDO0F6QnN3WGhDO0F5QnJ3WEE7RUFBK0I7QXpCd3dYL0I7QXlCdndYQTtFQUF1QjtBekIwd1h2QjtBeUJ6d1hBO0VBQWdDO0F6QjR3WGhDO0F5QjN3WEE7RUFBc0I7QXpCOHdYdEI7QXlCN3dYQTtFQUE2QjtBekJneFg3QjtBQUNBOzsrQkFFK0I7QUFDL0IsaUJBQWlCO0FBQ2pCLDRCQUE0QjtBeUIxd1gxQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXpCNHdYSjtBeUIxd1hFO0VBQ0U7QXpCNHdYSjtBQUNBLHFCQUFxQjtBeUIxd1huQjtFQUFxQztBekI2d1h2QztBeUI1d1hFO0VBQXFDO0F6Qit3WHZDO0F5Qjl3WEU7RUFBb0Q7QXpCaXhYdEQ7QXlCaHhYRTtFQUFvRDtBekJteFh0RDtBeUJseFhFO0VBQXFEO0F6QnF4WHZEO0F5QnB4WEU7RUFBa0Q7QXpCdXhYcEQ7QXlCdHhYRTtFQUE2QjtBekJ5eFgvQjtBeUJ4eFhFO0VBQW1DO0F6QjJ4WHJDO0F5QjF4WEU7RUFBaUM7QXpCNnhYbkM7QXlCNXhYRTtFQUFpQztBekIreFhuQztBeUI5eFhFO0VBQWlDO0F6Qml5WG5DO0F5Qmh5WEU7RUFBMkM7QXpCbXlYN0M7QXlCbHlYRTtFQUF1QztBekJxeVh6QztBeUJweVhFO0VBQXVDO0F6QnV5WHpDO0F5QnR5WEU7RUFBc0M7QXpCeXlYeEM7QXlCeHlYRTtFQUF1QztBekIyeVh6QztBeUIxeVhFO0VBQTBDO0F6QjZ5WDVDO0F5QjV5WEU7RUFBMEM7QXpCK3lYNUM7QXlCOXlYRTtFQUEyQztBekJpelg3QztBeUJoelhFO0VBQXdDO0F6Qm16WDFDO0F5Qmx6WEU7RUFBa0M7QXpCcXpYcEM7QXlCcHpYRTtFQUFxQztBekJ1elh2QztBeUJ0elhFO0VBQXFDO0F6Qnl6WHZDO0F5Qnh6WEU7RUFBK0I7QXpCMnpYakM7QXlCMXpYRTtFQUFrQztBekI2elhwQztBeUI1elhFO0VBQThCO0F6Qit6WGhDO0F5Qjl6WEU7RUFBOEI7QXpCaTBYaEM7QXlCaDBYRTtFQUEwQztBekJtMFg1QztBeUJsMFhFO0VBQWdDO0F6QnEwWGxDO0F5QnAwWEU7RUFBMEM7QXpCdTBYNUM7QXlCdDBYRTtFQUFpQztBekJ5MFhuQztBeUJ4MFhFO0VBQWdDO0F6QjIwWGxDO0F5QjEwWEU7RUFBNkI7QXpCNjBYL0I7QXlCNTBYRTtFQUFrQztBekIrMFhwQztBeUI5MFhFO0VBQW9DO0F6QmkxWHRDO0F5QmgxWEU7RUFBbUM7QXpCbTFYckM7QXlCbDFYRTtFQUE2QjtBekJxMVgvQjtBeUJwMVhFO0VBQWlDO0F6QnUxWG5DO0F5QnQxWEU7RUFBc0M7QXpCeTFYeEM7QXlCeDFYRTtFQUFrQztBekIyMVhwQztBeUIxMVhFO0VBQTZCO0F6QjYxWC9CO0F5QjUxWEU7RUFBdUM7QXpCKzFYekM7QXlCOTFYRTtFQUFxQztBekJpMlh2QztBeUJoMlhFO0VBQW1DO0F6Qm0yWHJDO0F5QmwyWEU7RUFBa0M7QXpCcTJYcEM7QXlCcDJYRTtFQUFtQztBekJ1MlhyQztBeUJ0MlhFO0VBQW1DO0F6QnkyWHJDO0F5QngyWEU7RUFBaUM7QXpCMjJYbkM7QXlCMTJYRTtFQUF3QztBekI2MlgxQztBeUI1MlhFO0VBQW1DO0F6QisyWHJDO0F5QjkyWEU7RUFBa0M7QXpCaTNYcEM7QXlCaDNYRTtFQUE2QjtBekJtM1gvQjtBeUJsM1hFO0VBQStCO0F6QnEzWGpDO0F5QnAzWEU7RUFBb0M7QXpCdTNYdEM7QXlCdDNYRTtFQUE4QjtBekJ5M1hoQztBeUJ4M1hFO0VBQStCO0F6QjIzWGpDO0F5QjEzWEU7RUFBNEI7QXpCNjNYOUI7QXlCNTNYRTtFQUFvQztBekIrM1h0QztBeUI5M1hFO0VBQW1DO0F6Qmk0WHJDO0F5Qmg0WEU7RUFBbUM7QXpCbTRYckM7QXlCbDRYRTtFQUF3QztBekJxNFgxQztBeUJwNFhFO0VBQXdDO0F6QnU0WDFDO0F5QnQ0WEU7RUFBeUM7QXpCeTRYM0M7QXlCeDRYRTtFQUFzQztBekIyNFh4QztBeUIxNFhFO0VBQXFDO0F6QjY0WHZDO0F5QjU0WEU7RUFBa0M7QXpCKzRYcEM7QXlCOTRYRTtFQUFzQztBekJpNVh4QztBeUJoNVhFO0VBQW1DO0F6Qm01WHJDO0F5Qmw1WEU7RUFBa0M7QXpCcTVYcEM7QXlCcDVYRTtFQUE0QjtBekJ1NVg5QjtBeUJ0NVhFO0VBQThCO0F6Qnk1WGhDO0F5Qng1WEU7RUFBaUM7QXpCMjVYbkM7QXlCMTVYRTtFQUFrQztBekI2NVhwQztBeUI1NVhFO0VBQWlDO0F6Qis1WG5DO0F5Qjk1WEU7RUFBZ0M7QXpCaTZYbEM7QXlCaDZYRTtFQUE4QjtBekJtNlhoQztBeUJsNlhFO0VBQStCO0F6QnE2WGpDO0F5QnA2WEU7RUFBaUM7QXpCdTZYbkM7QXlCdDZYRTtFQUE4QjtBekJ5NlhoQztBeUJ4NlhFO0VBQWtDO0F6QjI2WHBDO0F5QjE2WEU7RUFBa0M7QXpCNjZYcEM7QXlCNTZYRTtFQUF1QztBekIrNlh6QztBeUI5NlhFO0VBQTRCO0F6Qmk3WDlCO0F5Qmg3WEU7RUFBNEI7QXpCbTdYOUI7QXlCbDdYRTtFQUFxQztBekJxN1h2QztBeUJwN1hFO0VBQTZDO0F6QnU3WC9DO0F5QnQ3WEU7RUFBNkI7QXpCeTdYL0I7QXlCeDdYRTtFQUFrQztBekIyN1hwQztBeUIxN1hFO0VBQXFDO0F6QjY3WHZDO0F5QjU3WEU7RUFBdUM7QXpCKzdYekM7QXlCOTdYRTtFQUFvQztBekJpOFh0QztBeUJoOFhFO0VBQXFDO0F6Qm04WHZDO0F5Qmw4WEU7RUFBb0M7QXpCcThYdEM7QXlCcDhYRTtFQUFvQztBekJ1OFh0QztBeUJ0OFhFO0VBQXdDO0F6Qnk4WDFDO0F5Qng4WEU7RUFBbUM7QXpCMjhYckM7QXlCMThYRTtFQUE2QjtBekI2OFgvQjtBeUI1OFhFO0VBQXFDO0F6Qis4WHZDO0F5Qjk4WEU7RUFBOEI7QXpCaTlYaEM7QXlCaDlYRTtFQUFrQztBekJtOVhwQztBeUJsOVhFO0VBQStCO0F6QnE5WGpDO0F5QnA5WEU7RUFBNkI7QXpCdTlYL0I7QXlCdDlYRTtFQUFrQztBekJ5OVhwQztBeUJ4OVhFO0VBQW9DO0F6QjI5WHRDO0F5QjE5WEU7RUFBb0M7QXpCNjlYdEM7QXlCNTlYRTtFQUE0QjtBekIrOVg5QjtBeUI5OVhFO0VBQW9DO0F6QmkrWHRDO0F5QmgrWEU7RUFBa0M7QXpCbStYcEM7QXlCbCtYRTtFQUFxQztBekJxK1h2QztBeUJwK1hFO0VBQXdDO0F6QnUrWDFD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N0J5cWVGO0FBQ0EsU0FBUztBNkJ2cWVUOztFQUVFO0VBQ0E7RUFDQTtBN0J5cWVGO0FBQ0EsV0FBVztBNkJ2cWVYOztFQUVFO0E3QnlxZUY7QUFDQSxXQUFXO0E2QnZxZVg7RUFDRTtBN0J5cWVGO0FBQ0EsVUFBVTtBNkJ2cWVWO0VBQ0U7RUFDQTtFQUNBO0E3QnlxZUY7QTZCdnFlQTs7RUFFRTtFQUNBO0VBQ0E7QTdCeXFlRjtBQUNBLGlCQUFpQjtBNkJ0cWVqQjs7RUFFRTtFQUNBO0VBQ0E7QTdCd3FlRjtBQUNBLFNBQVM7QTZCdHFlVDs7RUFFRTtFQUNBO0VBQ0E7QTdCd3FlRjtBQUNBLFdBQVc7QTZCdHFlWDs7RUFFRTtBN0J3cWVGO0FBQ0EsV0FBVztBNkJ0cWVYO0VBQ0U7QTdCd3FlRjtBQUNBLFVBQVU7QTZCdHFlVjtFQUNFO0VBQ0E7RUFDQTtBN0J3cWVGO0E2QnRxZUE7O0VBRUU7RUFDQTtFQUNBO0E3QndxZUY7QUFDQSxpQkFBaUI7QTZCcnFlakI7O0VBRUU7RUFDQTtFQUNBO0E3QnVxZUY7QUFDQSxTQUFTO0E2QnJxZVQ7O0VBRUU7RUFDQTtFQUNBO0E3QnVxZUY7QUFDQSxXQUFXO0E2QnJxZVg7O0VBRUU7QTdCdXFlRjtBQUNBLFdBQVc7QTZCcnFlWDtFQUNFO0E3QnVxZUY7QUFDQSxVQUFVO0E2QnJxZVY7RUFDRTtFQUNBO0VBQ0E7QTdCdXFlRjtBNkJycWVBOztFQUVFO0VBQ0E7RUFDQTtBN0J1cWVGO0FBQ0EsZ0JBQWdCO0E2QnBxZWhCOztFQUVFO0VBQ0E7RUFDQTtBN0JzcWVGO0FBQ0EsU0FBUztBNkJwcWVUOztFQUVFO0VBQ0E7RUFDQTtBN0JzcWVGO0FBQ0EsV0FBVztBNkJwcWVYOztFQUVFO0E3QnNxZUY7QUFDQSxXQUFXO0E2QnBxZVg7RUFDRTtBN0JzcWVGO0FBQ0EsVUFBVTtBNkJwcWVWO0VBQ0U7RUFDQTtFQUNBO0E3QnNxZUY7QTZCcHFlQTs7RUFFRTtFQUNBO0VBQ0E7QTdCc3FlRjtBQUNBLGdCQUFnQjtBNkJucWVoQjs7RUFFRTtFQUNBO0VBQ0E7QTdCcXFlRjtBQUNBLFNBQVM7QTZCbnFlVDs7RUFFRTtFQUNBO0VBQ0E7QTdCcXFlRjtBQUNBLFdBQVc7QTZCbnFlWDs7RUFFRTtBN0JxcWVGO0FBQ0EsV0FBVztBNkJucWVYO0VBQ0U7QTdCcXFlRjtBQUNBLFVBQVU7QTZCbnFlVjtFQUNFO0VBQ0E7RUFDQTtBN0JxcWVGO0E2Qm5xZUE7O0VBRUU7RUFDQTtFQUNBO0E3QnFxZUY7QUFDQSxlQUFlO0E2QmxxZWY7O0VBRUU7RUFDQTtFQUNBO0E3Qm9xZUY7QUFDQSxTQUFTO0E2QmxxZVQ7O0VBRUU7RUFDQTtFQUNBO0E3Qm9xZUY7QUFDQSxXQUFXO0E2QmxxZVg7O0VBRUU7QTdCb3FlRjtBQUNBLFdBQVc7QTZCbHFlWDtFQUNFO0E3Qm9xZUY7QUFDQSxVQUFVO0E2QmxxZVY7RUFDRTtFQUNBO0VBQ0E7QTdCb3FlRjtBNkJscWVBOztFQUVFO0VBQ0E7RUFDQTtBN0JvcWVGO0FBQ0EsZUFBZTtBNkJqcWVmOztFQUVFO0VBQ0E7RUFDQTtBN0JtcWVGO0FBQ0EsU0FBUztBNkJqcWVUOztFQUVFO0VBQ0E7RUFDQTtBN0JtcWVGO0FBQ0EsV0FBVztBNkJqcWVYOztFQUVFO0E3Qm1xZUY7QUFDQSxXQUFXO0E2QmpxZVg7RUFDRTtBN0JtcWVGO0FBQ0EsVUFBVTtBNkJqcWVWO0VBQ0U7RUFDQTtFQUNBO0E3Qm1xZUY7QTZCanFlQTs7RUFFRTtFQUNBO0VBQ0E7QTdCbXFlRjtBQUNBLGlCQUFpQjtBNkJocWVqQjs7RUFFRTtFQUNBO0VBQ0E7QTdCa3FlRjtBQUNBLFNBQVM7QTZCaHFlVDs7RUFFRTtFQUNBO0VBQ0E7QTdCa3FlRjtBQUNBLFdBQVc7QTZCaHFlWDs7RUFFRTtBN0JrcWVGO0FBQ0EsV0FBVztBNkJocWVYO0VBQ0U7QTdCa3FlRjtBQUNBLFVBQVU7QTZCaHFlVjtFQUNFO0VBQ0E7RUFDQTtBN0JrcWVGO0E2QmhxZUE7O0VBRUU7RUFDQTtFQUNBO0E3QmtxZUY7QUFDQSxpQkFBaUI7QTZCL3BlakI7O0VBRUU7RUFDQTtFQUNBO0E3QmlxZUY7QUFDQSxTQUFTO0E2Qi9wZVQ7O0VBRUU7RUFDQTtFQUNBO0E3QmlxZUY7QUFDQSxXQUFXO0E2Qi9wZVg7O0VBRUU7QTdCaXFlRjtBQUNBLFdBQVc7QTZCL3BlWDtFQUNFO0E3QmlxZUY7QUFDQSxVQUFVO0E2Qi9wZVY7RUFDRTtFQUNBO0VBQ0E7QTdCaXFlRjtBNkIvcGVBOztFQUVFO0VBQ0E7RUFDQTtBN0JpcWVGO0FBQ0EsZUFBZTtBNkI5cGVmOztFQUVFO0VBQ0E7RUFDQTtBN0JncWVGO0FBQ0EsU0FBUztBNkI5cGVUOztFQUVFO0VBQ0E7RUFDQTtBN0JncWVGO0FBQ0EsV0FBVztBNkI5cGVYOztFQUVFO0E3QmdxZUY7QUFDQSxXQUFXO0E2QjlwZVg7RUFDRTtBN0JncWVGO0FBQ0EsVUFBVTtBNkI5cGVWO0VBQ0U7RUFDQTtFQUNBO0E3QmdxZUY7QTZCOXBlQTs7RUFFRTtFQUNBO0VBQ0E7QTdCZ3FlRjtBQUNBLGdCQUFnQjtBNkI3cGVoQjs7RUFFRTtFQUNBO0VBQ0E7QTdCK3BlRjtBQUNBLFNBQVM7QTZCN3BlVDs7RUFFRTtFQUNBO0VBQ0E7QTdCK3BlRjtBQUNBLFdBQVc7QTZCN3BlWDs7RUFFRTtBN0IrcGVGO0FBQ0EsV0FBVztBNkI3cGVYO0VBQ0U7QTdCK3BlRjtBQUNBLFVBQVU7QTZCN3BlVjtFQUNFO0VBQ0E7RUFDQTtBN0IrcGVGO0E2QjdwZUE7O0VBRUU7RUFDQTtFQUNBO0E3QitwZUY7QUFDQSxlQUFlO0E2QjVwZWY7O0VBRUU7RUFDQTtFQUNBO0E3QjhwZUY7QUFDQSxTQUFTO0E2QjVwZVQ7O0VBRUU7RUFDQTtFQUNBO0E3QjhwZUY7QUFDQSxXQUFXO0E2QjVwZVg7O0VBRUU7QTdCOHBlRjtBQUNBLFdBQVc7QTZCNXBlWDtFQUNFO0E3QjhwZUY7QUFDQSxVQUFVO0E2QjVwZVY7RUFDRTtFQUNBO0VBQ0E7QTdCOHBlRjtBNkI1cGVBOztFQUVFO0VBQ0E7RUFDQTtBN0I4cGVGO0FBQ0EsZ0JBQWdCO0E2QjNwZWhCOztFQUVFO0VBQ0E7RUFDQTtBN0I2cGVGO0FBQ0EsU0FBUztBNkIzcGVUOztFQUVFO0VBQ0E7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RUFDQTtFQUNBO0VBRUE7QTlCZ2xoQkY7QThCOWtoQkE7O0VBRUU7RUFDQTtBOUJnbGhCRjtBQUNBLGFBQWE7QThCN2toQmI7O0VBRUU7QTlCK2toQkY7QThCN2toQkE7O0VBRUU7QTlCK2toQkY7QUFDQTs7cUJBRXFCO0E4QjNraEJyQjtFQUNFO0E5QjZraEJGO0E4QjNraEJBO0VBQ0U7QTlCNmtoQkY7QThCM2toQkE7O0VBRUU7QTlCNmtoQkY7QThCM2toQkE7O0VBRUU7QTlCNmtoQkY7QUFDQSxpQkFBaUI7QThCMWtoQmpCO0VBQ0U7QTlCNGtoQkY7QThCMWtoQkE7RUFDRTtBOUI0a2hCRjtBOEIxa2hCQTs7RUFFRTtBOUI0a2hCRjtBOEIxa2hCQTs7RUFFRTtBOUI0a2hCRjtBQUNBOztxQkFFcUI7QThCeGtoQnJCO0VBQ0U7QTlCMGtoQkY7QThCeGtoQkE7RUFDRTtBOUIwa2hCRjtBOEJ4a2hCQTtFQUNFO0E5QjBraEJGO0E4QnhraEJBO0VBQ0U7QTlCMGtoQkY7QThCeGtoQkE7RUFDRTtBOUIwa2hCRjtBOEJ4a2hCQTtFQUNFO0E5QjBraEJGO0E4QnhraEJBO0VBQ0U7QTlCMGtoQkY7QThCeGtoQkE7RUFDRTtBOUIwa2hCRjtBOEJ2a2hCQTs7RUFFRTtBOUJ5a2hCRjtBOEJ2a2hCQTs7RUFFRTtBOUJ5a2hCRjtBOEJ2a2hCQTs7RUFFRTtBOUJ5a2hCRjtBOEJ2a2hCQTs7RUFFRTtBOUJ5a2hCRjtBOEJ2a2hCQTs7RUFFRTtBOUJ5a2hCRjtBOEJ2a2hCQTs7RUFFRTtBOUJ5a2hCRjtBOEJ2a2hCQTs7RUFFRTtBOUJ5a2hCRjtBOEJ2a2hCQTs7RUFFRTtBOUJ5a2hCRjtBQUNBOzsrQkFFK0I7QUFDL0I7OytCQUUrQjtBQUMvQiwwQkFBMEI7QStCNS9pQjFCO0VBQ0k7QS9COC9pQko7QStCNy9pQkk7RUFDRTtBL0IrL2lCTjtBK0JsZ2pCQTtFQU1RO0EvQisvaUJSO0ErQjMvaUJBO0VBQ0k7QS9CNi9pQko7QStCOS9pQkE7RUFHUTtFQUNBO0VBQ0E7QS9COC9pQlI7QStCbmdqQkE7RUFRUTtBL0I4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QWpDaTRrQkY7QWlDLzNrQkE7RUFDRTtBakNpNGtCRjtBaUMvM2tCQTtFQUNFO0FqQ2k0a0JGO0FBQ0EsY0FBYztBaUM5M2tCZDtFQUNFO0FqQ2c0a0JGO0FpQzkza0JBOztFQUVFO0FqQ2c0a0JGO0FpQzkza0JBO0VBQ0U7QWpDZzRrQkY7QUFDQSwyQkFBMkI7QWlDNzNrQjNCO0VBQ0U7RUFDQTtBakMrM2tCRjtBQUNBLGlCQUFpQjtBaUM1M2tCakI7RUFDRTtBakM4M2tCRjtBaUM1M2tCQTtFQUNFO0FqQzgza0JGO0FpQzUza0JBO0VBQ0U7QWpDODNrQkY7QWlDNTNrQkE7RUFDRTtBakM4M2tCRjtBaUM1M2tCQTtFQUNFO0FqQzgza0JGO0FBQ0EscUJBQXFCO0FpQzMza0JyQjtFQUNFO0FqQzYza0JGO0FpQzMza0JBOztFQUVFO0FqQzYza0JGO0FpQzMza0JBO0VBQ0U7QWpDNjNrQkY7QWlDMzNrQkE7RUFDRTtBakM2M2tCRjtBaUMzM2tCQTtFQUNFO0FqQzYza0JGO0FBQ0EsaUJBQWlCO0FpQzEza0JqQjtFQUNFO0FqQzQza0JGO0FpQzEza0JBO0VBQ0U7QWpDNDNrQkY7QWlDMTNrQkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBakM0M2tCRjtBQUNBLFlBQVk7QWlDejNrQlo7OztFQUdFO0FqQzIza0JGO0FpQ3oza0JBOzs7RUFHRTtFQUNBO0VBQ0E7QWpDMjNrQkY7QUFDQSw0QkFBNEI7QWlDeDNrQjVCO0VBQ0U7QWpDMDNrQkY7QWlDeDNrQkE7Ozs7O0VBS0U7QWpDMDNrQkY7QUFDQTs7K0JBRStCO0FBQy9COztxQkFFcUI7QWlDcDNrQnJCO0VBQ0U7QWpDczNrQkY7QWlDcDNrQkE7RUFDRTtBakNzM2tCRjtBaUNwM2tCQTtFQUNFO0FqQ3Mza0JGO0FpQ3Aza0JBO0VBQ0U7QWpDczNrQkY7QWlDcDNrQkE7RUFDRTtBakNzM2tCRjtBaUNwM2tCQTtFQUNFO0FqQ3Mza0JGO0FBQ0E7O3FCQUVxQjtBaUNqM2tCckI7RUFDRTtBakNtM2tCRjtBQUNBOzs7Ozs7OztFQVFFO0FBQ0Y7OytCQUUrQjtBQUMv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QUNBO0VBQ0E7RUFDQTtFQUNBO0FwQyt0bkJGO0FBQ0E7O3FCQUVxQjtBQUNyQixRQUFRO0FvQzN0bkJSO0VBQ0U7QXBDNnRuQkY7QW9DM3RuQkE7RUFDRTtFQUNBO0FwQzZ0bkJGO0FBQ0EsV0FBVztBb0MxdG5CWDtFQUNFO0FwQzR0bkJGO0FvQzF0bkJBO0VBQ0U7RUFDQTtBcEM0dG5CRjtBQUNBLFdBQVc7QW9DenRuQlg7RUFDRTtBcEMydG5CRjtBb0N6dG5CQTtFQUNFO0VBQ0E7QXBDMnRuQkY7QUFDQSxVQUFVO0FvQ3h0bkJWO0VBQ0U7QXBDMHRuQkY7QW9DeHRuQkE7RUFDRTtFQUNBO0FwQzB0bkJGO0FBQ0EsVUFBVTtBb0N2dG5CVjtFQUNFO0FwQ3l0bkJGO0FvQ3Z0bkJBO0VBQ0U7RUFDQTtBcEN5dG5CRjtBQUNBLFNBQVM7QW9DdHRuQlQ7RUFDRTtBcEN3dG5CRjtBb0N0dG5CQTtFQUNFO0VBQ0E7QXBDd3RuQkY7QUFDQSxTQUFTO0FvQ3J0bkJUO0VBQ0U7QXBDdXRuQkY7QW9DcnRuQkE7RUFDRTtFQUNBO0FwQ3V0bkJGO0FBQ0EsV0FBVztBb0NwdG5CWDtFQUNFO0FwQ3N0bkJGO0FvQ3B0bkJBO0VBQ0U7RUFDQTtBcENzdG5CRjtBQUNBLFdBQVc7QW9DbnRuQlg7RUFDRTtBcENxdG5CRjtBb0NudG5CQTtFQUNFO0VBQ0E7QXBDcXRuQkY7QUFDQSxTQUFTO0FvQ2x0bkJUO0VBQ0U7QXBDb3RuQkY7QW9DbHRuQkE7RUFDRTtFQUNBO0FwQ290bkJGO0FBQ0EsVUFBVTtBb0NqdG5CVjtFQUNFO0FwQ210bkJGO0FvQ2p0bkJBO0VBQ0U7RUFDQTtBcENtdG5CRjtBQUNBLFNBQVM7QW9DaHRuQlQ7RUFDRTtBcENrdG5CRjtBb0NodG5CQTtFQUNFO0VBQ0E7QXBDa3RuQkY7QUFDQSxVQUFVO0FvQy9zbkJWO0VBQ0U7QXBDaXRuQkY7QW9DL3NuQkE7RUFDRTtFQUNBO0FwQ2l0bkJGO0FBQ0E7O3FCQUVxQjtBb0M3c25CckI7RUFDRTtBcEMrc25CRjtBb0M3c25CQTtFQUNFO0FwQytzbkJGO0FvQzdz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RUFDRTtFQUNBO0VBQ0E7QXhDcTNyQkY7QXdDbjNyQkE7RUFDRTtFQUNBO0F4Q3EzckJGO0FBQ0EsdUJBQXVCO0F3Q2wzckJ2Qjs7RUFFRTtBeENvM3JCRjtBd0NsM3JCQTs7RUFFRTtBeENvM3JCRjtBd0NsM3JCQTs7RUFFRTtBeENvM3JCRjtBd0NsM3JCQTs7RUFFRTtBeENvM3JCRjtBd0NsM3JCQTs7RUFFRTtBeENvM3JCRjtBd0NsM3JCQTs7RUFFRTtBeENvM3JCRjtBd0NsM3JCQTs7RUFFRTtBeENvM3JCRjtBd0NsM3JCQTs7RUFFRTtBeENvM3JCRjtBd0NsM3JCQTs7RUFFRTtBeENvM3JCRjtBQUNBLGlDQUFpQztBd0NqM3JCakM7RUFDRTtJQUNFO0V4Q20zckJGO0V3Q2gzckJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQW9CRTtJQUNBO0V4Q2szckJGO0FBQ0Y7QUFDQSx3QkFBd0I7QXdDOTJyQnhCO0VBQ0U7RUFDQTtFQUNBO0F4Q2czckJGO0F3QzcyckJBO0VBQ0U7QXhDKzJyQkY7QXdDNzJyQkE7RUFDRTtBeEMrMnJCRjtBd0M3MnJCQTtFQUNFO0F4QysyckJGO0F3QzcyckJBO0VBQ0U7QXhDKzJyQkY7QXdDNzJyQkE7RUFDRTtBeEMrMnJCRjtBd0M3MnJCQTtFQUNFO0F4QysyckJGO0F3QzcyckJBO0VBQ0U7QXhDKzJyQkY7QXdDNzJyQkE7RUFDRTtBeEMrMnJCRjtBd0M3MnJCQTtFQUNFO0F4QysyckJGO0F3QzcyckJBO0VBQ0U7QXhDKzJyQkY7QXdDNzJyQkE7RUFDRTtBeEMrMnJCRjtBd0M3MnJCQTtFQUNFO0F4QysyckJGO0F3QzcyckJBO0VBQ0U7QXhDKzJyQkY7QXdDNzJyQkE7RUFDRTtBeEMrMnJCRjtBd0M3MnJCQTtFQUNFO0F4QysyckJGO0F3QzcyckJBO0VBQ0U7QXhDKzJyQkY7QUFDQSxpQ0FBaUM7QXdDNTJyQmpDO0VBQ0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBdUJFO0V4QzgyckJGO0V3QzUyckJBO0lBQ0U7RXhDODJyQkY7QUFDRjtBQUNBOztzQkFFc0I7QXdDMTJy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Q0Y7QTBDNXB1QkE7RUFDRTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RTFDOHB1QkY7QUFDRjtBMEM1cHVCQTtFQUNFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFMUM4cHVCRjtBQUNGO0FBQ0E7O3FCQUVxQjtBQUNyQixzQ0FBc0M7QTBDenB1QnRDOztFQUVFO0ExQzJwdUJGO0FBQ0EsZUFBZTtBMEN4cHVCZjs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBMEN4cHVCQTs7RUFFRTtBMUMwcHVCRjtBQUNBLHdCQUF3QjtBMEN2cHVCeEI7RUFDRTtBMUN5cHVCRjtBMEN2cHVCQTtFQUNFO0ExQ3lwdUJGO0EwQ3ZwdUJBO0VBQ0U7QTFDeXB1QkY7QTBDdnB1QkE7RUFDRTtBMUN5cHVCRjtBMEN2cHVCQTtFQUNFO0ExQ3lwdUJGO0EwQ3ZwdUJBO0VBQ0U7QTFDeXB1QkY7QTBDdnB1QkE7RUFDRTtBMUN5cHVCRjtBMEN2cHVCQTtFQUNFO0ExQ3lwdUJGO0EwQ3ZwdUJBO0VBQ0U7QTFDeXB1QkY7QTBDdnB1QkE7RUFDRTtBMUN5cHVCRjtBMEN2cHVCQTtFQUNFO0ExQ3lwdUJGO0EwQ3ZwdUJBO0VBQ0U7QTFDeXB1QkY7QTBDdnB1QkE7RUFDRTtBMUN5cHVCRjtBMEN2cHVCQTtFQUNFO0ExQ3lwdUJGO0EwQ3ZwdUJBO0VBQ0U7QTFDeXB1QkY7QTBDdnB1QkE7RUFDRTtBMUN5cHVCRjtBQUNBLGdCQUFnQjtBMEN0cHVCaEI7RUFDRTtBMUN3cHVCRjtBQUNBOztxQkFFcUI7QUFDckIsd0JBQXdCO0EwQ3BwdUJ4Qjs7OztFQUlFO0ExQ3NwdUJGO0EwQ3BwdUJBOzs7O0VBSUU7QTFDc3B1QkY7QTBDcHB1QkE7Ozs7RUFJRTtBMUNzcHVCRjtBMENwcHVCQTs7OztFQUlFO0ExQ3NwdUJGO0EwQ3BwdUJBOzs7O0VBSUU7QTFDc3B1QkY7QTBDcHB1QkE7Ozs7RUFJRTtBMUNzcHVCRjtBMENwcHVCQTs7OztFQUlFO0ExQ3NwdUJGO0EwQ3BwdUJBOzs7O0VBSUU7QTFDc3B1QkY7QTBDcHB1QkE7Ozs7RUFJRTtBMUNzcHVCRjtBMENwcHVCQTs7OztFQUlFO0ExQ3NwdUJGO0EwQ3BwdUJBOzs7O0VBSUU7QTFDc3B1QkY7QTBDcHB1QkE7Ozs7RUFJRTtBMUNzcHVCRjtBMENwcHVCQTs7OztFQUlFO0ExQ3NwdUJGO0EwQ3BwdUJBOzs7O0VBSUU7QTFDc3B1QkY7QTBDcHB1QkE7Ozs7RUFJRTtBMUNzcHVCRjtBMENwcHVCQTs7OztFQUlFO0ExQ3NwdUJGO0FBQ0E7O3dCQUV3QjtBQUN4QiwrQkFBK0I7QTBDbHB1Qi9CO0VBQ0U7Ozs7SUFJRTtFMUNvcHVCRjtFMENscHVCQTs7OztJQUlFO0UxQ29wdUJGO0UwQ2xwdUJBOzs7O0lBSUU7RTFDb3B1QkY7RTBDbHB1QkE7Ozs7SUFJRTtFMUNvcHVCRjtFMENscHVCQTs7OztJQUlFO0UxQ29wdUJGO0UwQ2xwdUJBOzs7O0lBSUU7RTFDb3B1QkY7RTBDbHB1QkE7Ozs7SUFJRTtFMUNvcHVCRjtFMENscHVCQTs7OztJQUlFO0UxQ29wdUJGO0UwQ2xwdUJBOzs7O0lBSUU7RTFDb3B1QkY7RTBDbHB1QkE7Ozs7SUFJRTtFMUNvcHVCRjtFMENscHVCQTs7OztJQUlFO0UxQ29wdUJGO0UwQ2xwdUJBOzs7O0lBSUU7RTFDb3B1QkY7RTBDbHB1QkE7Ozs7SUFJRTtFMUNvcHVCRjtFMENscHVCQTs7OztJQUlFO0UxQ29wdUJGO0UwQ2xwdUJBOzs7O0lBSUU7RTFDb3B1QkY7RTBDbHB1QkE7Ozs7SUFJRTtFMUNvcHVCRjtBQUNGO0FBQ0EsK0JBQStCO0EwQ2pwdUIvQjtFQUNFOzs7O0lBSUU7RTFDbXB1QkY7RTBDanB1QkE7Ozs7SUFJRTtFMUNtcHVCRjtFMENqcHVCQTs7OztJQUlFO0UxQ21wdUJGO0UwQ2pwdUJBOzs7O0lBSUU7RTFDbXB1QkY7RTBDanB1QkE7Ozs7SUFJRTtFMUNtcHVCRjtFMENqcHVCQTs7OztJQUlFO0UxQ21wdUJGO0UwQ2pwdUJBOzs7O0lBSUU7RTFDbXB1QkY7RTBDanB1QkE7Ozs7SUFJRTtFMUNtcHVCRjtFMENqcHVCQTs7OztJQUlFO0UxQ21wdUJGO0UwQ2pwdUJBOzs7O0lBSUU7RTFDbXB1QkY7RTBDanB1QkE7Ozs7SUFJRTtFMUNtcHVCRjtFMENqcHVCQTs7OztJQUlFO0UxQ21wdUJGO0UwQ2pwdUJBOzs7O0lBSUU7RTFDbXB1QkY7RTBDanB1QkE7Ozs7SUFJRTtFMUNtcHVCRjtFMENqcHVCQTs7OztJQUlFO0UxQ21wdUJGO0UwQ2pwdUJBOzs7O0lBSUU7RTFDbXB1QkY7QUFDRjtBQUNBLHlDQUF5QztBMENocHVCekM7RUFDSTs7OztJQUlBO0UxQ2twdUJGO0UwQ2hwdUJBOzs7O0lBSUU7RTFDa3B1QkY7RTBDaHB1QkE7Ozs7SUFJRTtFMUNrcHVCRjtFMENocHVCQTs7OztJQUlFO0UxQ2twdUJGO0UwQ2hwdUJBOzs7O0lBSUU7RTFDa3B1QkY7RTBDaHB1QkE7Ozs7SUFJRTtFMUNrcHVCRjtFMENocHVCQTs7OztJQUlFO0UxQ2twdUJGO0UwQ2hwdUJBOzs7O0lBSUU7RTFDa3B1QkY7RTBDaHB1QkE7Ozs7SUFJRTtFMUNrcHVCRjtFMENocHVCQTs7OztJQUlFO0UxQ2twdUJGO0UwQ2hwdUJBOzs7O0lBSUU7RTFDa3B1QkY7RTBDaHB1QkE7Ozs7SUFJRTtFMUNrcHVCRjtFMENocHVCQTs7OztJQUlFO0UxQ2twdUJGO0UwQ2hwdUJBOzs7O0lBSUU7RTFDa3B1QkY7RTBDaHB1QkE7Ozs7SUFJRTtFMUNrcHVCRjtFMENocHVCQTs7OztJQUlFO0UxQ2twdUJGO0FBQ0Y7QUFDQSxzQ0FBc0M7QTBDL291QnRDO0VBQ0U7Ozs7SUFJRTtFMUNpcHVCRjtFMEMvb3VCQTs7OztJQUlFO0UxQ2lwdUJGO0UwQy9vdUJBOzs7O0lBSUU7RTFDaXB1QkY7RTBDL291QkE7Ozs7SUFJRTtFMUNpcHVCRjtFMEMvb3VCQTs7OztJQUlFO0UxQ2lwdUJGO0UwQy9vdUJBOzs7O0lBSUU7RTFDaXB1QkY7RTBDL291QkE7Ozs7SUFJRTtFMUNpcHVCRjtFMEMvb3VCQTs7OztJQUlFO0UxQ2lwdUJGO0UwQy9vdUJBOzs7O0lBSUU7RTFDaXB1QkY7RTBDL291QkE7Ozs7SUFJRTtFMUNpcHVCRjtFMEMvb3VCQTs7OztJQUlFO0UxQ2lwdUJGO0UwQy9vdUJBOzs7O0lBSUU7RTFDaXB1QkY7RTBDL291QkE7Ozs7SUFJRTtFMUNpcHVCRjtFMEMvb3VCQTs7OztJQUlFO0UxQ2lwdUJGO0UwQy9vdUJBOzs7O0lBSUU7RTFDaXB1QkY7RTBDL291QkE7Ozs7SUFJRTtFMUNpcHVCRjtBQUNGO0FBQ0EsbUNBQW1DO0EwQzlvdUJuQztFQUNFOzs7O0lBSUU7RTFDZ3B1QkY7RTBDOW91QkE7Ozs7SUFJRTtFMUNncHVCRjtFMEM5b3VCQTs7OztJQUlFO0UxQ2dwdUJGO0UwQzlvdUJBOzs7O0lBSUU7RTFDZ3B1QkY7RTBDOW91QkE7Ozs7SUFJRTtFMUNncHVCRjtFMEM5b3VCQTs7OztJQUlFO0UxQ2dwdUJGO0UwQzlvdUJBOzs7O0lBSUU7RTFDZ3B1QkY7RTBDOW91QkE7Ozs7SUFJRTtFMUNncHVCRjtFMEM5b3VCQTs7OztJQUlFO0UxQ2dwdUJGO0UwQzlvdUJBOzs7O0lBSUU7RTFDZ3B1QkY7RTBDOW91QkE7Ozs7SUFJRTtFMUNncHVCRjtFMEM5b3VCQTs7OztJQUlFO0UxQ2dwdUJGO0UwQzlvdUJBOzs7O0lBSUU7RTFDZ3B1QkY7RTBDOW91QkE7Ozs7SUFJRTtFMUNncHVCRjtFMEM5b3VCQTs7OztJQUlFO0UxQ2dwdUJGO0UwQzlvdUJB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RTBDcGx1QkE7SUFDRTtFMUNzbHVCRjtFQUNBLHFCQUFxQjtFMENubHVCckI7O0lBRUU7RTFDcWx1QkY7RTBDbmx1QkE7O0lBRUU7RTFDcWx1QkY7RUFDQSxnQ0FBZ0M7RTBDbmx1QmhDO0lBQ0U7RTFDcWx1QkY7RTBDbmx1QkE7SUFDRTtFMUNxbHVCRjtFQUNBLG9CQUFvQjtFMENubHVCcEI7SUFDRTtFMUNxbHVCRjtFMENubHVCQTtJQUNFO0UxQ3FsdUJGO0FBQ0Y7QUFDQSxhQUFhO0EwQ2xsdUJiO0VBQ0U7OztJQUdFO0UxQ29sdUJGO0UwQ2xsdUJBO0lBQ0U7RTFDb2x1QkY7RUFDQSxxQkFBcUI7RTBDamx1QnJCOztJQUVFO0UxQ21sdUJGO0UwQ2psdUJBOztJQUVFO0UxQ21sdUJGO0VBQ0EsZ0NBQWdDO0UwQ2psdUJoQztJQUNFO0UxQ21sdUJGO0UwQ2psdUJBO0lBQ0U7RTFDbWx1QkY7RUFDQSxvQkFBb0I7RTBDamx1QnBCO0lBQ0U7RTFDbWx1QkY7RTBDamx1QkE7SUFDRTtFMUNtbHVCRjtBQUNGO0FBQ0E7O3FCQUVxQjtBQUNyQixnQkFBZ0I7QTBDOWt1QmhCO0VBQ0U7SUFDRTtFMUNnbHVCRjtFMEM5a3VCQTs7SUFFRTtJQUNBO0UxQ2dsdUJGO0UwQzlrdUJBOztJQUVFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RTFDZ2x1QkY7RTBDOWt1QkE7OztJQUdFO0UxQ2dsdUJGO0UwQzlrdUJBOzs7SUFHRTtFMUNnbHVCRjtFMEM5a3VCQTs7O0lBR0U7RTFDZ2x1QkY7RTBDOWt1QkE7OztJQUdFO0UxQ2dsdUJGO0UwQzlrdUJBOzs7SUFHRTtFMUNnbHVCRjtFMEM5a3VCQTs7O0lBR0U7RTFDZ2x1QkY7RTBDOWt1QkE7OztJQUdFO0UxQ2dsdUJGO0UwQzlrdUJBOzs7SUFHRTtFMUNnbHVCRjtFMEM5a3VCQTs7O0lBR0U7RTFDZ2x1QkY7RTBDOWt1QkE7OztJQUdFO0UxQ2dsdUJGO0UwQzlrdUJBOzs7SUFHRTtFMUNnbHVCRjtFMEM5a3VCQTs7O0lBR0U7RTFDZ2x1QkY7RTBDOWt1QkE7OztJQUdFO0Ux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QTZDbm55QlY7O0VBRUU7QTdDcW55QkY7QTZDbm55QkE7RUFDRTtBN0NxbnlCRjtBNkNubnlCQTtFQUNFO0E3Q3FueUJGO0FBQ0EsVUFBVTtBNkNsbnlCVjs7RUFFRTtBN0NvbnlCRjtBNkNsbnlCQTtFQUNFO0E3Q29ueUJGO0E2Q2xueUJBO0VBQ0U7QTdDb255QkY7QUFDQSxTQUFTO0E2Q2pueUJUOztFQUVFO0E3Q21ueUJGO0E2Q2pueUJBO0VBQ0U7QTdDbW55QkY7QTZDam55QkE7RUFDRTtBN0NtbnlCRjtBQUNBLFNBQVM7QTZDaG55QlQ7O0VBRUU7QTdDa255QkY7QTZDaG55QkE7RUFDRTtBN0NrbnlCRjtBNkNobnlCQTtFQUNFO0E3Q2tueUJGO0FBQ0EsV0FBVztBNkMvbXlCWDs7RUFFRTtBN0NpbnlCRjtBNkMvbXlCQTtFQUNFO0E3Q2lueUJGO0E2Qy9teUJBO0VBQ0U7QTdDaW55QkY7QUFDQSxXQUFXO0E2QzlteUJYOztFQUVFO0E3Q2dueUJGO0E2QzlteUJBO0VBQ0U7QTdDZ255QkY7QTZDOW15QkE7RUFDRTtBN0NnbnlCRjtBQUNBLFNBQVM7QTZDN215QlQ7O0VBRUU7QTdDK215QkY7QTZDN215QkE7RUFDRTtBN0MrbXlCRjtBNkM3bXlCQTtFQUNFO0E3QytteUJGO0FBQ0EsVUFBVTtBNkM1bXlCVjs7RUFFRTtBN0M4bXlCRjtBNkM1bXlCQTtFQUNFO0E3QzhteUJGO0E2QzVteUJBO0VBQ0U7QTdDOG15QkY7QUFDQSxTQUFTO0E2QzNteUJUOztFQUVFO0E3QzZteUJGO0E2QzNteUJBO0VBQ0U7QTdDNm15QkY7QTZDM215QkE7RUFDRTtBN0M2bXlCRjtBQUNBOztnQkFFZ0I7QTZDeG15QmhCOzs7RUFHRTtBN0MwbXlCRjtBNkN4bXlCQTs7O0VBR0U7RUFDQTtBN0MwbXlCRjtBNkN4bXlCQTs7O0VBR0U7RUFDQTtBN0MwbXlCRjtBQUNBOztnQkFFZ0I7QTZDdG15QmhCOzs7RUFHRTtBN0N3bXlCRjtBQUNBOztxQkFFcUI7QTZDcG15QnJCO0VBQ0U7RUFDQTtFQUNBO0E3Q3NteUJGO0E2Q3BteUJBO0VBQ0U7QTdDc215QkY7QTZDcG15QkE7RUFDRTtBN0NzbXlCRjtBNkNwbXlCQTtFQUNFO0E3Q3NteUJGO0E2Q3BteUJBO0VBQ0U7QTdDc215QkY7QTZDcG15QkE7RUFDRTtBN0NzbXlCRjtBQUNBOztxQkFFcUI7QTZDbG15QnJCOztFQUVFO0E3Q29teUJGO0FBQ0E7O3FCQUVxQjtBNkMvbHlCckI7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdDaW15QkY7QTZDL2x5QkE7RUFDRTtBN0NpbXlCRjtBNkM5bHlCQTtFQUNFO0E3Q2dteUJGO0E2QzdseUJBO0VBQ0U7QTdDK2x5QkY7QTZDN2x5QkE7RUFDRTtBN0MrbHlCRjtBNkM3bHlCQTtFQUNFO0E3QytseUJGO0E2QzdseUJBO0VBQ0U7QTdDK2x5QkY7QTZDN2x5QkE7RUFDRTtBN0MrbHlCRjtBNkM3bHlCQTtFQUNFO0E3QytseUJGO0E2QzdseUJBO0VBQ0U7QTdDK2x5QkY7QTZDN2x5QkE7RUFDRTtBN0MrbHlCRjtBNkM3bHlCQTtFQUNFO0E3QytseUJGO0E2QzdseUJBO0VBQ0U7QTdDK2x5QkY7QTZDN2x5QkE7RUFDRTtBN0MrbHlCRjtBQUNBOztnQkFFZ0I7QTZDM2x5QmhCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QTdDNmx5QkY7QTZDM2x5QkE7OztFQUdFO0E3QzZseUJGO0E2QzFseUJBOztFQUVFO0VBQ0E7RUFDQTtFQUNBO0E3QzRseUJGO0E2QzFseUJBO0VBQ0U7RUFDQTtFQUNBO0E3QzRseUJGO0E2QzFseUJBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3QzRseUJGO0E2QzFseUJBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdDNGx5QkY7QTZDMWx5QkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdDNGx5QkY7QUFDQSx1QkFBdUI7QTZDemx5QnZCO0VBQ0U7QTdDMmx5QkY7QUFDQTs7cUJBRXFCO0E2Q3RseUJy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QVc7QStDOXcyQlg7O0VBRUU7RUFDQTtBL0NneDJCRjtBK0M3dzJCQTtFQUNFO0VBQ0E7RUFDQTtBL0MrdzJCRjtBK0M3dzJCQTtFQUNFO0EvQyt3MkJGO0ErQzV3MkJBO0VBQ0U7RUFDQTtFQUNBO0EvQzh3MkJGO0ErQzV3MkJBO0VBQ0U7QS9DOHcyQkY7QStDM3cyQkE7RUFDRTtFQUNBO0VBQ0E7QS9DNncyQkY7QStDM3cyQkE7RUFDRTtBL0M2dzJCRjtBK0MxdzJCQTtFQUNFO0VBQ0E7RUFDQTtBL0M0dzJCRjtBK0MxdzJCQTtFQUNFO0EvQzR3MkJGO0ErQ3p3MkJBO0VBQ0U7RUFDQTtFQUNBO0EvQzJ3MkJGO0ErQ3p3MkJBO0VBQ0U7QS9DMncyQkY7QStDeHcyQkE7RUFDRTtFQUNBO0VBQ0E7QS9DMHcyQkY7QStDeHcyQkE7RUFDRTtBL0MwdzJCRjtBK0N2dzJCQTtFQUNFO0VBQ0E7RUFDQTtBL0N5dzJCRjtBK0N2dzJCQTtFQUNFO0EvQ3l3MkJGO0ErQ3R3MkJBO0VBQ0U7RUFDQTtFQUNBO0EvQ3d3MkJGO0ErQ3R3MkJBO0VBQ0U7QS9Dd3cyQkY7QStDcncyQkE7RUFDRTtFQUNBO0VBQ0E7QS9DdXcyQkY7QStDcncyQkE7RUFDRTtBL0N1dzJCRjtBK0NwdzJCQTtFQUNFO0VBQ0E7RUFDQTtBL0NzdzJCRjtBK0NwdzJCQTtFQUNFO0EvQ3N3MkJGO0ErQ253MkJBO0VBQ0U7RUFDQTtFQUNBO0EvQ3F3MkJGO0ErQ253MkJBO0VBQ0U7QS9DcXcyQkY7QUFDQTs7Z0JBRWdCO0ErQ2p3MkJoQjtFQUNFO0EvQ213MkJGO0ErQ2p3MkJBO0VBQ0U7QS9DbXcyQkY7QStDancyQkE7RUFDRTtBL0NtdzJCRjtBK0NqdzJCQTtFQUNFO0EvQ213MkJGO0ErQ2p3MkJBO0VBQ0U7QS9DbXcyQkY7QStDancyQkE7RUFDRTtBL0NtdzJCRjtBK0NqdzJCQTtFQUNFO0EvQ213MkJGO0ErQ2p3MkJBO0VBQ0U7QS9DbXcyQkY7QUFDQTs7K0JBRStCO0FBQy9COzsrQkFFK0I7QWdEbHUzQi9CO0VBQ0k7RUFDQTtFQUNBO0Fo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KzkzQkY7QUFDQSxVQUFVO0FrRDU5M0JWO0VBQ0U7QWxEODkzQkY7QWtENTkzQkE7RUFDRTtFQUNBO0FsRDg5M0JGO0FBQ0EsU0FBUztBa0QzOTNCVDtFQUNFO0FsRDY5M0JGO0FrRDM5M0JBO0VBQ0U7RUFDQTtBbEQ2OTNCRjtBQUNBLFVBQVU7QWtEMTkzQlY7RUFDRTtBbEQ0OTNCRjtBa0QxOTNCQTtFQUNFO0VBQ0E7QWxENDkzQkY7QUFDQTs7Z0JBRWdCO0FBQ2hCLGVBQWU7QWtEdjkzQmY7RUFDRTtBbER5OTNCRjtBa0R2OTNCQTtFQUNFO0FsRHk5M0JGO0FrRHY5M0JBO0VBQ0U7QWxEeTkzQkY7QWtEdjkzQkE7RUFDRTtBbER5OTNCRjtBa0R2OTNCQTtFQUNFO0FsRHk5M0JGO0FrRHY5M0JBO0VBQ0U7QWxEeTkzQkY7QWtEdjkzQkE7RUFDRTtBbER5OTNCRjtBa0R2OTNCQTtFQUNFO0FsRHk5M0JGO0FrRHY5M0JBO0VBQ0U7QWxEeTkzQkY7QWtEdjkzQkE7RUFDRTtBbER5OTNCRjtBa0R2OTNCQTtFQUNFO0FsRHk5M0JGO0FrRHY5M0JBO0VBQ0U7QWxEeTkzQkY7QWtEdjkzQkE7RUFDRTtBbER5OTNCRjtBa0R2OTNCQTtFQUNFO0FsRHk5M0JGO0FrRHY5M0JBO0VBQ0U7QWxEeTkzQkY7QWtEdjkzQkE7RUFDRTtBbER5OTNCRjtBQUNBLGlCQUFpQjtBa0R0OTNCakI7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxEdzkzQkY7QWtEdDkzQkE7O0VBRUU7QWxE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SUFDQTtFcERpbjdCRjtFb0QvbTdCQTtJQUNFO0lBQ0E7SUFDQTtFcERpbjdCRjtFb0QvbTdCQTtJQUNFO0lBQ0E7RXBEaW43QkY7RW9EL203QkE7SUFDRTtJQUNBO0lBQ0E7RXBEaW43QkY7RW9EL203QkE7SUFDRTtJQUNBO0VwRGluN0JGO0VvRC9tN0JBO0lBQ0U7SUFDQTtJQUNBO0VwRGluN0JGO0VvRC9tN0JBO0lBQ0U7SUFDQTtFcERpbjdCRjtFb0QvbTdCQTtJQUNFO0lBQ0E7SUFDQTtFcERpbjdCRjtFb0QvbTdCQTtJQUNFO0lBQ0E7RXBEaW43QkY7RW9EL203QkE7SUFDRTtJQUNBO0lBQ0E7RXBEaW43QkY7RW9EL203QkE7SUFDRTtJQUNBO0VwRGluN0JGO0VvRC9tN0JBO0lBQ0U7SUFDQTtJQUNBO0VwRGluN0JGO0VvRC9tN0JBO0lBQ0U7SUFDQTtFcERpbjdCRjtFb0QvbTdCQTtJQUNFO0lBQ0E7SUFDQTtFcERpbjdCRjtFb0QvbTdCQTtJQUNFO0lBQ0E7RXBEaW43QkY7RW9EL203QkE7SUFDRTtJQUNBO0lBQ0E7RXBEaW43QkY7QUFDRjtBQUNBLGdCQUFnQjtBb0Q5bTdCaEI7RUFDRTtJQUNFO0lBQ0E7RXBEZ243QkY7RW9EOW03QkE7SUFDRTtJQUNBO0lBQ0E7RXBEZ243QkY7RW9EOW03QkE7SUFDRTtJQUNBO0VwRGduN0JGO0VvRDltN0JBO0lBQ0U7SUFDQTtJQUNBO0VwRGduN0JGO0VvRDltN0JBO0lBQ0U7SUFDQTtFcERnbjdCRjtFb0Q5bTdCQTtJQUNFO0lBQ0E7SUFDQTtFcERnbjdCRjtFb0Q5bTdCQTtJQUNFO0lBQ0E7RXBEZ243QkY7RW9EOW03QkE7SUFDRTtJQUNBO0lBQ0E7RXBEZ243QkY7RW9EOW03QkE7SUFDRTtJQUNBO0VwRGduN0JGO0VvRDltN0JBO0lBQ0U7SUFDQTtJQUNBO0VwRGduN0JGO0VvRDltN0JBO0lBQ0U7SUFDQTtFcERnbjdCRjtFb0Q5bTdCQTtJQUNFO0lBQ0E7SUFDQTtFcERnbjdCRjtFb0Q5bTdCQTtJQUNFO0lBQ0E7RXBEZ243QkY7RW9EOW03QkE7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cW9oQ0Y7QUFDQSxpQkFBaUI7QXdEbG9oQ2pCOztFQUVFO0F4RG9vaENGO0FBQ0E7OytCQUUrQjtBQUMvQjs7Z0JBRWdCO0F3RDduaENoQjs7RUFFRTtFQUNBO0VBQ0E7QXhEK25oQ0Y7QUFDQTs7Z0JBRWdCO0F3RDNuaENoQjs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtBeEQ2bmhDRjtBd0QzbmhDQTs7RUFFRTtBeEQ2bmhDRjtBQUNBOztnQkFFZ0I7QXdEem5oQ2hCOztFQUVFO0VBQ0E7QXhEMm5oQ0Y7QUFDQTs7K0JBRStCO0FBQy9COztnQkFFZ0I7QXdEbG5oQ2hCO0VBQ0U7QXhEb25oQ0Y7QXdEbG5oQ0E7RUFDRTtFQUNBO0F4RG9uaENGO0F3RGpuaENBO0VBQ0U7QXhEbW5oQ0Y7QXdEam5oQ0E7RUFDRTtFQUNBO0F4RG1uaENGO0F3RGhuaENBO0VBQ0U7QXhEa25oQ0Y7QXdEaG5oQ0E7RUFDRTtFQUNBO0F4RGtuaENGO0F3RC9taENBO0VBQ0U7QXhEaW5oQ0Y7QXdEL21oQ0E7RUFDRTtFQUNBO0F4RGluaENGO0F3RDltaENBO0VBQ0U7QXhEZ25oQ0Y7QXdEOW1oQ0E7RUFDRTtFQUNBO0F4RGduaENGO0F3RDdtaENBO0VBQ0U7QXhEK21oQ0Y7QXdEN21oQ0E7RUFDRTtFQUNBO0F4RCttaENGO0F3RDVtaENBO0VBQ0U7QXhEOG1oQ0Y7QXdENW1oQ0E7RUFDRTtFQUNBO0F4RDhtaENGO0F3RDNtaENBO0VBQ0U7QXhENm1oQ0Y7QXdEM21oQ0E7RUFDRTtFQUNBO0F4RDZtaENGO0F3RDFtaENBO0VBQ0U7QXhENG1oQ0Y7QXdEMW1oQ0E7RUFDRTtFQUNBO0F4RDRtaENGO0F3RHptaENBO0VBQ0U7QXhEMm1oQ0Y7QXdEem1oQ0E7RUFDRTtFQUNBO0F4RDJtaENGO0FBQ0E7O2dCQUVnQjtBd0RwbWhDaEI7RUFDRTtFQUNBO0F4RHNtaENGO0F3RHBtaENBO0VBQ0U7RUFDQTtFQUNBO0F4RHNtaENGO0F3RHBtaENBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXhEc21oQ0Y7QXdEbm1oQ0E7O0VBRUU7QXhEcW1oQ0Y7QXdEbm1oQ0E7O0VBRUU7QXhEcW1oQ0Y7QXdEbG1oQ0E7O0VBRUU7RUFDQTtBeERvbWhDRjtBd0RsbWhDQTs7RUFFRTtFQUNBO0VBQ0E7QXhEb21oQ0Y7QUFDQTs7Z0JBRWdCO0F3RGhtaENoQjs7O0VBR0U7QXhEa21oQ0Y7QXdEaG1oQ0E7OztFQUdFO0F4RGttaENGO0F3RGhtaENBOzs7RUFHRTtBeERrbWhDRjtBd0RobWhDQTs7O0VBR0U7QXhEa21oQ0Y7QXdEaG1oQ0E7OztFQUdFO0F4RGttaENGO0F3RGhtaENBOzs7RUFHRTtBeERrbWhDRjtBd0RobWhDQTs7O0VBR0U7QXhEa21oQ0Y7QXdEaG1oQ0E7OztFQUdFO0F4RGttaENGO0F3RGhtaENBOzs7RUFHRTtBeERrbWhDRjtBd0RobWhDQTs7O0VBR0U7QXhEa21oQ0Y7QXdEaG1oQ0E7OztFQUdFO0F4RGttaENGO0F3RGhtaENBOzs7RUFHRTtBeERrbWhDRjtBQUNBOztnQkFFZ0I7QXdEOWxoQ2hCOztFQUVFO0F4RGdtaENGO0F3RDlsaENBOztFQUVFO0F4RGdtaENGO0F3RDdsaENBOzs7RUFHRTtBeEQrbGhDRjtBd0Q3bGhDQTs7O0VBR0U7QXhEK2xoQ0Y7QXdEN2xoQ0E7OztFQUdFO0F4RCtsaENGO0F3RDdsaENBOzs7RUFHRTtBeEQrbGhDRjtBd0Q3bGhDQTs7O0VBR0U7QXhEK2xoQ0Y7QXdEN2xoQ0E7OztFQUdFO0F4RCtsaENGO0F3RDdsaENBOzs7RUFHRTtBeEQrbGhDRjtBd0Q3bGhDQTs7O0VBR0U7QXhEK2xoQ0Y7QXdEN2xoQ0E7OztFQUdFO0F4RCtsaENGO0F3RDdsaENBOzs7RUFHRTtBeEQrbGhDRjtBd0Q3bGhDQTs7O0VBR0U7QXhEK2xoQ0Y7QXdEN2xoQ0E7OztFQUdFO0F4RCtsaENGO0FBQ0E7O2dCQUVnQjtBd0QzbGhDaEI7RUFDRTtFQUNBO0F4RDZsaENGO0F3RDNsaENBO0VBQ0U7RUFDQTtBeEQ2bGhDRjtBd0QzbGhDQTtFQUNFO0F4RDZsaENGO0FBQ0E7O2dCQUVnQjtBQUNoQixTQUFTO0F3RHZsaENUOztFQUVFO0F4RHls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RXB1dUNYO0VBQ0U7QW5Fc3V1Q0Y7QW1FcHV1Q0E7RUFDRTtBbkVzdXVDRjtBQUNBLFVBQVU7QW1FbnV1Q1Y7RUFDRTtBbkVxdXVDRjtBbUVudXVDQTtFQUNFO0FuRXF1dUNGO0FBQ0EsVUFBVTtBbUVsdXVDVjtFQUNFO0FuRW91dUNGO0FtRWx1dUNBO0VBQ0U7QW5Fb3V1Q0Y7QUFDQSxTQUFTO0FtRWp1dUNUO0VBQ0U7QW5FbXV1Q0Y7QW1FanV1Q0E7RUFDRTtBbkVtdXVDRjtBQUNBLFNBQVM7QW1FaHV1Q1Q7RUFDRTtBbkVrdXVDRjtBbUVodXVDQTtFQUNFO0FuRWt1dUNGO0FBQ0EsV0FBVztBbUUvdHVDWDtFQUNFO0FuRWl1dUNGO0FtRS90dUNBO0VBQ0U7QW5FaXV1Q0Y7QUFDQSxXQUFXO0FtRTl0dUNYO0VBQ0U7QW5FZ3V1Q0Y7QW1FOXR1Q0E7RUFDRTtBbkVndXVDRjtBQUNBLFNBQVM7QW1FN3R1Q1Q7RUFDRTtBbkUrdHVDRjtBbUU3dHVDQTtFQUNFO0FuRSt0dUNGO0FBQ0EsVUFBVTtBbUU1dHVDVjtFQUNFO0FuRTh0dUNGO0FtRTV0dUNBO0VBQ0U7QW5FOHR1Q0Y7QUFDQSxTQUFTO0FtRTN0dUNUO0VBQ0U7QW5FNnR1Q0Y7QW1FM3R1Q0E7RUFDRTtBbkU2dHVDRjtBQUNBLFVBQVU7QW1FMXR1Q1Y7RUFDRTtBbkU0dHVDRjtBbUUxdHVDQTtFQUNFO0FuRTR0dUNGO0FBQ0E7O2dCQUVnQjtBbUV4dHVDaEI7RUFDRTtBbkUwdHVDRjtBbUV4dHVDQTtFQUNFO0FuRTB0dUNGO0FtRXZ0dUNBO0VBQ0U7QW5FeXR1Q0Y7QW1FdnR1Q0E7RUFDRTtBbkV5dHVDRjtBbUV0dHVDQTtFQUNFO0FuRXd0dUNGO0FtRXR0dUNBO0VBQ0U7QW5Fd3R1Q0Y7QW1FcnR1Q0E7RUFDRTtBbkV1dHVDRjtBbUVydHVDQTtFQUNFO0FuRXV0dUNGO0FtRXB0dUNBO0VBQ0U7QW5Fc3R1Q0Y7QW1FcHR1Q0E7RUFDRTtBbkVzdHVDRjtBQUNBOzs7Ozs7OztFQVFFO0FBQ0Y7OytCQUUrQjtBQUMvQjs7Ozs7Ozs7O0NBU0M7QUFD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RUFDRTtBM0V3ajJDRjtBMkV0ajJDQTtFQUNFO0EzRXdqMkNGO0EyRXRqMkNBO0VBQ0U7QTNFd2oyQ0Y7QUFDQSxPQUFPO0EyRXJqMkNQO0VBQ0U7SUFDRTtFM0V1ajJDRjtFMkVyajJDQTtJQUNFO0UzRXVqMkNGO0FBQ0Y7QTJFcmoyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFdWoyQ0Y7RTJFcmoyQ0E7SUFDRTtJQUNBO0UzRXVqMkNGO0FBQ0Y7QTJFcmoyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFdWoyQ0Y7RTJFcmoyQ0E7SUFDRTtJQUNBO0UzRXVqMkNGO0FBQ0Y7QTJFcmoyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFdWoyQ0Y7RTJFcmoyQ0E7SUFDRTtJQUNBO0UzRXVqMkNGO0FBQ0Y7QTJFcmoyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFdWoyQ0Y7RTJFcmoyQ0E7SUFDRTtJQUNBO0UzRXVqMkNGO0FBQ0Y7QUFDQSxRQUFRO0EyRXBqMkNSO0VBQ0U7SUFDRTtFM0VzajJDRjtFMkVwajJDQTtJQUNFO0UzRXNqMkNGO0FBQ0Y7QTJFcGoyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFc2oyQ0Y7RTJFcGoyQ0E7SUFDRTtJQUNBO0UzRXNqMkNGO0FBQ0Y7QTJFcGoyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFc2oyQ0Y7RTJFcGoyQ0E7SUFDRTtJQUNBO0UzRXNqMkNGO0FBQ0Y7QTJFcGoyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFc2oyQ0Y7RTJFcGoyQ0E7SUFDRTtJQUNBO0UzRXNqMkNGO0FBQ0Y7QTJFcGoyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFc2oyQ0Y7RTJFcGoyQ0E7SUFDRTtJQUNBO0UzRXNqMkNGO0FBQ0Y7QUFDQTs7Z0JBRWdCO0EyRWxqMkNoQjs7RUFFRTtBM0VvajJDRjtBMkVsajJDQTtFQUNFO0EzRW9qMkNGO0EyRWxqMkNBO0VBQ0U7QTNFb2oyQ0Y7QTJFbGoyQ0E7RUFDRTtBM0VvajJDRjtBMkVsajJDQTtFQUNFO0EzRW9qMkNGO0FBQ0EsT0FBTztBMkVqajJDUDtFQUNFO0lBQ0U7SUFDQTtFM0VtajJDRjtFMkVqajJDQTtJQUNFO0lBQ0E7RTNFbWoyQ0Y7QUFDRjtBMkVqajJDQTtFQUNFO0lBQ0U7SUFDQTtFM0VtajJDRjtFMkVqajJDQTtJQUNFO0lBQ0E7RTNFbWoyQ0Y7QUFDRjtBQUNBLFFBQVE7QTJFaGoyQ1I7RUFDRTtJQUNFO0lBQ0E7RTNFa2oyQ0Y7RTJFaGoyQ0E7SUFDRTtJQUNBO0UzRWtqMkNGO0FBQ0Y7QTJFaGoyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFa2oyQ0Y7RTJFaGoyQ0E7SUFDRTtJQUNBO0UzRWtqMkNGO0FBQ0Y7QUFDQTs7Z0JBRWdCO0EyRTlpMkNoQjtFQUNFO0EzRWdqMkNGO0EyRTlpMkNBO0VBQ0U7QTNFZ2oyQ0Y7QTJFN2kyQ0E7RUFDRTtJQUNFO0lBQ0E7RTNFK2kyQ0Y7RTJFN2kyQ0E7SUFDRTtJQUNBO0UzRStpMkNGO0FBQ0Y7QUFDQSxRQUFRO0EyRTVpMkNSO0VBQ0U7SUFDRTtJQUNBO0UzRThpMkNGO0UyRTVpMkNBO0lBQ0U7SUFDQTtFM0U4aTJDRjtBQUNGO0FBQ0E7O2dCQUVnQjtBQUNoQixXQUFXO0EyRXppMkNYO0VBQ0U7RUFDQTtBM0UyaTJDRjtBMkV6aTJDQTtFQUNFO0EzRTJpMkNGO0EyRXppMkNBO0VBQ0U7QTNFMmkyQ0Y7QTJFemkyQ0E7RUFDRTtBM0UyaTJDRjtBMkV6aTJDQTtFQUNFO0EzRTJpMkNGO0EyRXppMkNBO0VBQ0U7QTNFMmkyQ0Y7QUFDQSxZQUFZO0EyRXhpMkNaO0VBQ0U7QTNFMGkyQ0Y7QTJFeGkyQ0E7RUFDRTtBM0UwaTJDRjtBMkV4aTJDQTtFQUNFO0EzRTBpMkNGO0EyRXhpMkNBO0VBQ0U7QTNFMGkyQ0Y7QTJFeGkyQ0E7RUFDRTtBM0UwaTJDRjtBQUNBLE9BQU87QTJFdmkyQ1A7RUFDRTtJQUNFO0lBQ0E7RTNFeWkyQ0Y7RTJFdmkyQ0E7SUFDRTtFM0V5aTJDRjtFMkV2aTJDQTtJQUNFO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7SUFDQTtFM0V5aTJDRjtFMkV2aTJDQTtJQUNFO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7SUFDQTtFM0V5aTJDRjtBQUNGO0EyRXZpMkNBO0VBQ0U7SUFDRTtJQUNBO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7SUFDQTtFM0V5aTJDRjtFMkV2aTJDQTtJQUNFO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7RTNFeWkyQ0Y7RTJFdmkyQ0E7SUFDRTtFM0V5aTJDRjtBQUNGO0EyRXZpMkNBO0VBQ0U7SUFDRTtJQUNBO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7SUFDQTtFM0V5aTJDRjtFMkV2aTJDQTtJQUNFO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7RTNFeWkyQ0Y7RTJFdmkyQ0E7SUFDRTtFM0V5aTJDRjtBQUNGO0EyRXZpMkNBO0VBQ0U7SUFDRTtJQUNBO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7SUFDQTtFM0V5aTJDRjtFMkV2aTJDQTtJQUNFO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7RTNFeWkyQ0Y7RTJFdmkyQ0E7SUFDRTtFM0V5aTJDRjtBQUNGO0EyRXZpMkNBO0VBQ0U7SUFDRTtJQUNBO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7SUFDQTtFM0V5aTJDRjtFMkV2aTJDQTtJQUNFO0UzRXlpMkNGO0UyRXZpMkNBO0lBQ0U7RTNFeWkyQ0Y7RTJFdmkyQ0E7SUFDRTtFM0V5aTJDRjtBQUNGO0FBQ0EsUUFBUTtBMkV0aTJDUjtFQUNFO0lBQ0U7RTNFd2kyQ0Y7RTJFdGkyQ0E7O0lBQ0U7SUFDQTtFM0V5aTJDRjtFMkV2aTJDQTtJQUNFO0lBQ0E7RTNFeWkyQ0Y7QUFDRjtBMkV2aTJDQTtFQUNFO0lBQ0U7RTNFeWkyQ0Y7RTJFdmkyQ0E7O0lBQ0U7SUFDQTtFM0UwaTJDRjtFMkV4aTJDQTtJQUNFO0lBQ0E7RTNFMGkyQ0Y7QUFDRjtBMkV4aTJDQTtFQUNFO0lBQ0U7RTNFMGkyQ0Y7RTJFeGkyQ0E7O0lBQ0U7SUFDQTtFM0UyaTJDRjtFMkV6aTJDQTtJQUNFO0lBQ0E7RTNFMmkyQ0Y7QUFDRjtBMkV6aTJDQTtFQUNFO0lBQ0U7SUFDQTtFM0UyaTJDRjtFMkV6aTJDQTtJQUNFO0lBQ0E7RTNFMmkyQ0Y7QUFDRjtBMkV6aTJDQTtFQUNF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O0VBQ0E7QTNFdWgyQ0Y7QTJFcmgyQ0E7RUFDRTtBM0V1aDJDRjtBQUNBLFVBQVU7QTJFbmgyQ1Y7RUFDRTs7O0lBQ0U7RTNFdWgyQ0Y7RTJFcmgyQ0E7O0lBQ0U7RTNFd2gyQ0Y7QUFDRjtBQUNBLFVBQVU7QTJFcmgyQ1Y7RUFDRTs7SUFDRTtFM0V3aDJDRjtFMkV0aDJDQTs7Ozs7SUFDRTtFM0U0aDJDRjtFMkUxaDJDQTs7OztJQUNFO0UzRStoMkNGO0FBQ0Y7QUFDQSxXQUFXO0EyRTVoMkNYO0VBQ0U7Ozs7O0lBQ0U7RTNFa2kyQ0Y7RTJFaGkyQ0E7SUFDRTtFM0VraTJDRjtFMkVoaTJDQTtJQUNFO0UzRWtpMkNGO0FBQ0Y7QUFDQSxTQUFTO0EyRS9oMkNUO0VBQ0U7SUFDRTtFM0VpaTJDRjtFMkUvaDJDQTs7SUFDRTtFM0VraTJDRjtFMkVoaTJDQTs7OztJQUNFO0UzRXFpMkNGO0UyRW5pMkNBOzs7SUFDRTtFM0V1aTJDRjtFMkVyaTJDQTtJQUNFO0UzRXVpMkNGO0FBQ0Y7QUFDQSxVQUFVO0EyRXBpMkNWO0VBQ0U7SUFDRTtJQUNBO0UzRXNpMkNGO0UyRXBpMkNBO0lBQ0U7SUFDQTtFM0VzaTJDRjtFMkVwaTJDQTtJQUNFO0lBQ0E7RTNFc2kyQ0Y7QUFDRjtBQUNBLFdBQVc7QTJFbGkyQ1g7RUFDRTtJQUNFO0UzRW9pMkNGO0UyRWxpMkNBO0lBQ0U7RTNFb2kyQ0Y7RTJFbGkyQ0E7SUFDRTtFM0VvaTJDRjtFMkVsaTJDQTtJQUNFO0UzRW9pMkNGO0UyRWxpMkNBO0lBQ0U7RTNFb2kyQ0Y7RTJFbGkyQ0E7SUFDRTtFM0VvaTJDRjtFMkVsaTJDQTtJQUNFO0UzRW9pMkNGO0FBQ0Y7QUFDQSxTQUFTO0EyRWppMkNUO0VBQ0U7SUFDRTtFM0VtaTJDRjtFMkVqaTJDQTtJQUNFO0UzRW1pMkNGO0UyRWppMkNBO0lBQ0U7RTNFbWkyQ0Y7QUFDRiIsImZpbGUiOiJjc3MvdmVuZG9yc35wcmV2aWV3ZXJfdGhlbWV+dGhlbWUuNDk1NmJmZmQ3YTQxMjA2MWQ2ZDQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcblxu4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKWiOKVlyDilojilojilojilZcgICDilojilojilZfilojilojilojilojilojilojilojilojilZfilojilojilZcg4paI4paI4paI4paI4paI4paI4pWXICAgIOKWiOKWiOKVlyAgIOKWiOKWiOKVl+KWiOKWiOKVl1xu4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWR4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdICAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkVxu4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilojilojilZHilojilojilZTilojilojilZcg4paI4paI4pWRICAg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRICAgICAgICAg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRXG7ilZrilZDilZDilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVkeKVmuKWiOKWiOKVl+KWiOKWiOKVkSAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkSAgICAgICAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVkVxu4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVkSDilZrilojilojilojilojilZEgICDilojilojilZEgICDilojilojilZHilZrilojilojilojilojilojilojilZcgICAg4pWa4paI4paI4paI4paI4paI4paI4pWU4pWd4paI4paI4pWRXG7ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWdICDilZrilZDilZDilZDilZ0gICDilZrilZDilZ0gICDilZrilZDilZ0g4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWdICAgICDilZrilZDilZDilZDilZDilZDilZ0g4pWa4pWQ4pWdXG5cbiAgSW1wb3J0IHRoaXMgZmlsZSBpbnRvIHlvdXIgTEVTUyBwcm9qZWN0IHRvIHVzZSBTZW1hbnRpYyBVSSB3aXRob3V0IGJ1aWxkIHRvb2xzXG4qL1xuLyogR2xvYmFsICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBSZXNldFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSZXNldFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJlc2V0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSZXNldFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEJvcmRlci1Cb3ggKi9cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4vKiBpUGFkIElucHV0IFNoYWRvd3MgKi9cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAvKiBtb2JpbGUgZmlyZWZveCB0b28hICovXG59XG4vKiEgbm9ybWFsaXplLmNzcyB2Ny4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG59XG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovXG59XG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctIGFuZCBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi9cbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG59XG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG59XG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG4vKiBTY3JpcHRpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2l0ZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmh0bWwsXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbmJvZHkge1xuICBtYXJnaW46IDBweDtcbiAgcGFkZGluZzogMHB4O1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1pbi13aWR0aDogMzIwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBIZWFkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIG1hcmdpbjogY2FsYygycmVtIC0gIDAuMTQyODU3MTRlbSApIDBlbSAxcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogMGVtO1xufVxuaDEge1xuICBtaW4taGVpZ2h0OiAxcmVtO1xuICBmb250LXNpemU6IDJyZW07XG59XG5oMiB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbmgzIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuaDQge1xuICBmb250LXNpemU6IDEuMDcxNDI4NTdyZW07XG59XG5oNSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbmgxOmZpcnN0LWNoaWxkLFxuaDI6Zmlyc3QtY2hpbGQsXG5oMzpmaXJzdC1jaGlsZCxcbmg0OmZpcnN0LWNoaWxkLFxuaDU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG5oMTpsYXN0LWNoaWxkLFxuaDI6bGFzdC1jaGlsZCxcbmgzOmxhc3QtY2hpbGQsXG5oNDpsYXN0LWNoaWxkLFxuaDU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVGV4dFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbnAge1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xuICBsaW5lLWhlaWdodDogMS40Mjg1ZW07XG59XG5wOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxucDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5hIHtcbiAgY29sb3I6ICM0MTgzQzQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbmE6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNjcm9sbGJhcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEhpZ2hsaWdodGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpdGUgKi9cbjo6LXdlYmtpdC1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NFMkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NFMkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NDRTJGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBGb3JtICovXG50ZXh0YXJlYTo6LXdlYmtpdC1zZWxlY3Rpb24sXG5pbnB1dDo6LXdlYmtpdC1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNCk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxudGV4dGFyZWE6Oi1tb3otc2VsZWN0aW9uLFxuaW5wdXQ6Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjQpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbnRleHRhcmVhOjpzZWxlY3Rpb24sXG5pbnB1dDo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjQpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIEZvcmNlIFNpbXBsZSBTY3JvbGxiYXJzICovXG5ib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG59XG5ib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbmJvZHkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG59XG5ib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6d2luZG93LWluYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbmJvZHkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI4LCAxMzUsIDEzOSwgMC44KTtcbn1cbi8qIEludmVydGVkIFVJICovXG5ib2R5IC51aS5pbnZlcnRlZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5ib2R5IC51aS5pbnZlcnRlZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xufVxuYm9keSAudWkuaW52ZXJ0ZWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOndpbmRvdy1pbmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG5ib2R5IC51aS5pbnZlcnRlZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xubmF2IHtcbiAgcGFkZGluZzogMCAxNXB4O1xufVxuLm5hdmJhci1tZW51IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbn1cbnVsLm5hdmJhci1tZW51Om5vdCguYWN0aXZlKSB7XG4gIGhlaWdodDogNzNweDtcbn1cbi5uYXZiYXItaXRlbSB7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG4ubmF2YmFyLWl0ZW0gLnJpZ2h0Lm1lbnUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5uYXZiYXItaXRlbS5uYXZiYXItYnV0dG9uIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5uYXZiYXItaXRlbTpub3QoLm5hdmJhci1idXR0b24pIGE6aG92ZXIsXG4ubmF2YmFyLWl0ZW0gYTpob3Zlcjo6YWZ0ZXIge1xuICBjb2xvcjogI2NjYztcbn1cbi5uYXZiYXItb3B0aW9ucyA6aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5uby1kb3RzLWxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdW5zZXQ7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IHVuc2V0O1xufVxuLmxvZ28tbGluayB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cbi5sb2dvIHtcbiAgd2lkdGg6IDIwMHB4O1xufVxuLyogTW9iaWxlIG1lbnUgKi9cbi5uYXZiYXItbWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLm5hdmJhci1tZW51IGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTVweCA1cHg7XG59XG4ub3V0ZXItbmF2YmFyICNmcm9udHBhZ2Utc2VhcmNoLWJhciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLm91dGVyLW5hdmJhciAjZnJvbnRwYWdlLXNlYXJjaC1iYXIgLnNlYXJjaC1iYXIge1xuICB3aWR0aDogNTAlO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLm91dGVyLW5hdmJhciBhIHtcbiAgY29sb3I6ICNkYmVhZmY7XG59XG4udG9nZ2xlIHtcbiAgb3JkZXI6IDE7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLm5hdmJhci1pdGVtLm5hdmJhci1idXR0b24ge1xuICBvcmRlcjogMjtcbn1cbi5uYXZiYXItaXRlbSB7XG4gIG9yZGVyOiAzO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFjdGl2ZSAubmF2YmFyLWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiNoZWFkZXItc2VhcmNoLWJhciB7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuI2hlYWRlci1zZWFyY2gtYmFyIC51aS5hY3Rpb24uaW5wdXQge1xuICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG59XG4vKiBUYWJsZXQgbWVudSAqL1xuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNzQ1cHgpIHtcbiAgLm5hdmJhci1tZW51IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLm5hdmJhci1pdGVtLm5hdmJhci1idXR0b24ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG9yZGVyOiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZsZXg6IDE7XG4gIH1cbiAgLnRvZ2dsZSB7XG4gICAgZmxleDogMTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAvKiBCdXR0b24gdXAgZnJvbSB0YWJsZXQgc2NyZWVuICovXG4gIC5uYXZiYXItbWVudSBsaS5uYXZiYXItYnV0dG9uIGEge1xuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgICBtYXJnaW46IDJweDtcbiAgfVxuICAubmF2YmFyLWl0ZW0gLnJpZ2h0Lm1lbnUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuLyogRGVza3RvcCBtZW51ICovXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLm5hdmJhci1tZW51IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG4gIC5sb2dvIHtcbiAgICBvcmRlcjogMDtcbiAgfVxuICAubmF2YmFyLWl0ZW0ge1xuICAgIG9yZGVyOiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAubmF2YmFyLWJ1dHRvbiB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLnRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjaGVhZGVyLXNlYXJjaC1iYXIge1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmxvZ28ge1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIH1cbn1cbi8qIG1lbnUgaWNvbiAoSGFtYnVyZ3VlciBpY29uKSAqL1xuLm1lbnUtaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmc6IDI4cHggMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5tZW51LWljb24gLm5hdmljb24ge1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2Utb3V0O1xuICB3aWR0aDogMThweDtcbn1cbi5tZW51LWljb24gLm5hdmljb246YmVmb3JlLFxuLm1lbnUtaWNvbiAubmF2aWNvbjphZnRlciB7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1vdXQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLm1lbnUtaWNvbiAubmF2aWNvbjpiZWZvcmUge1xuICB0b3A6IDVweDtcbn1cbi5tZW51LWljb24gLm5hdmljb246YWZ0ZXIge1xuICB0b3A6IC01cHg7XG59XG4vKiBtZW51IGJ0biAqL1xuLm1lbnUtYnRuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5tZW51LWJ0bjpjaGVja2VkIH4gLm1lbnUge1xuICBtYXgtaGVpZ2h0OiAyNDBweDtcbn1cbi5tZW51LWJ0bjpjaGVja2VkIH4gLm1lbnUtaWNvbiAubmF2aWNvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudS1pY29uIC5uYXZpY29uOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG4ubWVudS1idG46Y2hlY2tlZCB+IC5tZW51LWljb24gLm5hdmljb246YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG4ubWVudS1idG46Y2hlY2tlZCB+IC5tZW51LWljb246bm90KC5zdGVwcykgLm5hdmljb246YmVmb3JlLFxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudS1pY29uOm5vdCguc3RlcHMpIC5uYXZpY29uOmFmdGVyIHtcbiAgdG9wOiAwO1xufVxuZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogNmVtO1xufVxuaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuaHRtbC5jb3Zlci1wYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbn1cbmJvZHkuY292ZXItcGFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogYXV0bztcbn1cbi51aS5wYWRkZWQuc2VnbWVudHMuYmlnLmZvcm0ge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLmNvbHVtbi5jZW50ZXJlZCB7XG4gIHdpZHRoOiAzMyUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5jb2x1bW4uY2VudGVyZWQge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NDBweCkge1xuICAuY29sdW1uLmNlbnRlcmVkIHtcbiAgICB3aWR0aDogOTAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5uby1kb3RzLWxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogM2VtICFpbXBvcnRhbnQ7XG59XG5saSB+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAyZW0gIWltcG9ydGFudDtcbn1cbi5oZWFkZXIuaXRlbSB7XG4gIGJhY2tncm91bmQ6ICNmM2Y0ZjUgIWltcG9ydGFudDtcbn1cbi5pdGVtLmxlZnQtbG9nbyB7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG59XG4ucmlnaHQuZmxvYXRlZC5yaWdodC5hbGlnbmVkLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDAuOGVtO1xufVxuLnRleHQtbXV0ZWQge1xuICBjb2xvcjogIzc3Nztcbn1cbi5pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5jb2RlIHtcbiAgY29sb3I6ICNFMDM5OTc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGYyZjg7XG4gIHBhZGRpbmc6IDNweDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ3JvYm90b2xpZ2h0JztcbiAgc3JjOiB1cmwoJy4uLy4uL2xlc3MvaW52ZW5pb190aGVtZS9mb250cy9yb2JvdG8tbGlnaHQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi9sZXNzL2ludmVuaW9fdGhlbWUvZm9udHMvcm9ib3RvLWxpZ2h0LXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5IENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOSBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4uZm9vdGVyLWdsb2JhbCB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuLmZvb3Rlci1nbG9iYWwgPiAudWkuZ3JpZCB7XG4gIG1hcmdpbjogMHJlbTtcbn1cbi5mb290ZXItZ2xvYmFsIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpO1xufVxuLmZvb3Rlci1nbG9iYWwgYTpob3Zlcixcbi5mb290ZXItZ2xvYmFsIGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5mb290ZXItdG9wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbn1cbi5tYXJnaW4tc21hbGwge1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW07XG59XG4uZm9vdGVyLWJvdHRvbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMikgaW5zZXQ7XG59XG4uaW52ZW5pby1yZG0tZm9vdGVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbiAgd2lkdGg6IDYyLjUlO1xuICBwYWRkaW5nOiAxZW0gMGVtIDFlbSAwZW07XG59XG4ucmRtLWZvb3RlciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGFsaWduLXNlbGY6IGluaGVyaXQ7XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmc6IDFlbSAwZW0gMWVtIDBlbTtcbn1cbiNsYW5nLWNvZGUge1xuICBtaW4td2lkdGg6IDE0ZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuaW52ZW5pby1yZG0tZm9vdGVyIHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5pbnZlbmlvLXJkbS1mb290ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5yZG0tZm9vdGVyIHtcbiAgICB3aWR0aDogMzMlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5yZG0tZm9vdGVyIHtcbiAgICB3aWR0aDogMzMlO1xuICB9XG4gICNsYW5nLWNvZGUge1xuICAgIG1pbi13aWR0aDogMTBlbTtcbiAgfVxufVxuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4ubnVtYmVyaW5nIHtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgZm9udC1zaXplOiA0ZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzNzdjZDkxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmZsZXgtY2VudGVyLXZlcnRpY2FsbHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMCAwIDIwcHggMDtcbn1cbi5mcm9udHBhZ2UtdGl0bGUge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS13aWR0aDogOTkzcHgpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkzcHgpIHtcbiAgLmZsZXgtY2VudGVyLXZlcnRpY2FsbHkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDk5M3B4KSwgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5M3B4KSB7XG4gIC5mbGV4LWNlbnRlci12ZXJ0aWNhbGx5IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG59XG4uY29tbWFuZC1saW5lIHtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogcmdiYSgxNiwgMTYsIDE2LCAwLjcpO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIG1heC13aWR0aDogMzMycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5pbmxpbmUtcm93IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmlubGluZS1yb3ctcGFuZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuLmdvdG8tYnV0dG9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZ290by1idXR0b24gYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgcGFkZGluZzogMTVweCAzMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDM3N2NkO1xuICBjb2xvcjogI2Q0ZTVlZiAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogMjAwO1xufVxuLmdvdG8tYnV0dG9uIGE6aG92ZXIsXG4uZ290by1idXR0b24gYTphY3RpdmUge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMSBHcmF6IFVuaXZlcnNpdHkgb2YgVGVjaG5vbG9neS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiogRGVwb3NpdCBwYWdlIHN0eWxlcyAqL1xuI2RlcG9zaXQtZm9ybSB7XG4gIC8qRmllbGQgTGFiZWxcblxuICAgIElkZWFsbHkgd2UgZXZlbnR1YWxseSBjb252ZXJnZSBvbiBhIGRlc2lnbiBzeXN0ZW0gdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuXG4gICAgdG9wLWxldmVsIGZpZWxkcy9sYWJlbHMgYW5kIHN1YmZpZWxkcy9sYWJlbHNcbiAgKi9cbiAgLyoqL1xuICAvKipQcm90ZWN0aW9uIFdpZGdldCovXG59XG4jZGVwb3NpdC1mb3JtIC5maWVsZCBsYWJlbC50aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YWFhZDk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxLjA1ZW07XG59XG4jZGVwb3NpdC1mb3JtIC5maWVsZCBsYWJlbC50aXRsZSBsYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG4jZGVwb3NpdC1mb3JtIC51aS5mb3JtIC5maWVsZCAuZm9ybS1ncm91cCBsYWJlbCxcbiNkZXBvc2l0LWZvcm0gLnVpLmZvcm0gLmZpZWxkLmFkZGl0aW9uYWwtZGVzY3JpcHRpb25zIGxhYmVsIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI2RlcG9zaXQtZm9ybSBsYWJlbC5maWVsZC1sZXZlbC1jbGFzcyB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbiNkZXBvc2l0LWZvcm0gbGFiZWwuZmllbGQtbGV2ZWwtY2xhc3Muc21hbGwge1xuICBmb250LXNpemU6IDEzcHg7XG59XG4jZGVwb3NpdC1mb3JtIC5zYXZlLWJ1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuI2RlcG9zaXQtZm9ybSAucHJldmlldy1idXR0b24ge1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbn1cbiNkZXBvc2l0LWZvcm0gaS5pY29uLmxvYWRpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuI2RlcG9zaXQtZm9ybSAuYWNjZXNzLXJpZ2h0IC5pbmxpbmUuZmllbGRzIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NWVtO1xufVxuI2RlcG9zaXQtZm9ybSAuYWNjZXNzLXJpZ2h0IC5pbmxpbmUuZmllbGRzOmZpcnN0LW9mLXR5cGUge1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4jZGVwb3NpdC1mb3JtIC5jay1lZGl0b3JfX2VkaXRhYmxlIHtcbiAgbWluLWhlaWdodDogOC41ZW07XG59XG4jZGVwb3NpdC1mb3JtIC51aS5mb3JtIGxhYmVsLmhlbHB0ZXh0IHtcbiAgbWFyZ2luLXRvcDogLThweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjNzM3MzczO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuI2RlcG9zaXQtZm9ybSAudWkuZm9ybSAuZmllbGQgLnVpLmxpc3Qge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuI2RlcG9zaXQtZm9ybSAuZGVwb3NpdC1zaWRlYmFyIC51aS5jYXJkIHtcbiAgd2lkdGg6IHVuc2V0O1xufVxuI2RlcG9zaXQtZm9ybSAudWkuY2FyZC5hY2Nlc3MtcmlnaHQgLmZpZWxkLWxhYmVsLWNsYXNzIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG4jZGVwb3NpdC1mb3JtIC51aS5jYXJkLmFjY2Vzcy1yaWdodCBsYWJlbCB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuI2RlcG9zaXQtZm9ybSAudWkuY2FyZC5hY2Nlc3MtcmlnaHQgbGFiZWxbZm9yPVwiYWNjZXNzLmVtYmFyZ28udW50aWxcIl0ge1xuICBmb250LXNpemU6IDEzcHg7XG59XG4jZGVwb3NpdC1mb3JtIC51aS5jYXJkLmFjY2Vzcy1yaWdodCAuY29udGVudCB7XG4gIHBhZGRpbmc6IDA7XG59XG4jZGVwb3NpdC1mb3JtIC51aS5jYXJkLmFjY2Vzcy1yaWdodCAuY29udGVudCBwIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbiNkZXBvc2l0LWZvcm0gLnVpLmNhcmQuYWNjZXNzLXJpZ2h0IC5jb250ZW50IHAgYiB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjVlbTtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuI2RlcG9zaXQtZm9ybSAudWkuY2FyZC5hY2Nlc3MtcmlnaHQgLmNvbnRlbnQgcCAuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuI2RlcG9zaXQtZm9ybSAudWkuY2FyZC5hY2Nlc3MtcmlnaHQgLmNvbnRlbnQgLnVpLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiAxZW0gMC43ZW07XG4gIG1hcmdpbjogMDtcbn1cbiNkZXBvc2l0LWZvcm0gLnVpLmNhcmQuYWNjZXNzLXJpZ2h0IC5kaXNhYmxlZC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDNweDtcbn1cbiNkZXBvc2l0LWZvcm0gLnVpLmNhcmQuYWNjZXNzLXJpZ2h0IC51aS5kaXZpZGVyIHtcbiAgbWFyZ2luOiAwLjNyZW0gMHJlbTtcbn1cbiNkZXBvc2l0LWZvcm0gLnNpZGViYXItYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4vKkRlc2NyaXB0aW9uKi9cbi5pdGVtIGRpdi5kZXNjcmlwdGlvbjpub3QoLmxpY2Vuc2UtaXRlbS1kZXNjcmlwdGlvbikge1xuICBkaXNwbGF5OiBpbml0aWFsICFpbXBvcnRhbnQ7XG59XG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjAgQ0VSTi5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4udWkuY2FyZCA+IC5jb250ZW50IHtcbiAgcGFkZGluZzogMC41cmVtIDAuNXJlbSAhaW1wb3J0YW50O1xufVxuLmZhY2V0LWNvbnRlbnQgPiAudWkubGlzdCB7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMC4yNWVtIDAuNWVtICFpbXBvcnRhbnQ7XG59XG4uZmFjZXQtY29udGVudCA+IC51aS5saXN0ID4gLml0ZW0gPiAuZmFjZXQtc3VidGl0bGUge1xuICBwYWRkaW5nOiAwLjJlbSAwZW0gIWltcG9ydGFudDtcbn1cbi50aXRsZSA+IC5yaWdodC5mbG9hdGVkIHtcbiAgbWFyZ2luLXRvcDogLTAuMnJlbSAhaW1wb3J0YW50O1xufVxuLnBhZGRlZC1zbWFsbCB7XG4gIHBhZGRpbmc6IDFyZW0gMHJlbSAhaW1wb3J0YW50O1xufVxuLm5vLXBhZGRlZCB7XG4gIHBhZGRpbmc6IDByZW0gIWltcG9ydGFudDtcbn1cbi5mYWNldC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xufVxuLmZhY2V0LXdyYXBwZXIgLmZhY2V0LWNvdW50IHtcbiAgb3JkZXI6IDE7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMSBHcmF6IFVuaXZlcnNpdHkgb2YgVGVjaG5vbG9neS5cbiAqXG4gKiBJbnZlbmlvIFJETSBSZWNvcmRzIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xubmF2IHtcbiAgcGFkZGluZzogMCAxNXB4O1xufVxuLm5hdmJhci1tZW51IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbn1cbi5uYXZiYXItaXRlbSB7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG4ubmF2YmFyLWl0ZW06bm90KC5uYXZiYXItYnV0dG9uKSBhOmhvdmVyLFxuLm5hdmJhci1pdGVtIGE6aG92ZXI6OmFmdGVyIHtcbiAgY29sb3I6ICNjY2M7XG59XG4ubmF2YmFyLWl0ZW06aG92ZXI6bm90KC5uYXZiYXItYnV0dG9uKTpub3QoLm5hdmJhci1zZWFyY2gtYmFyKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5uYXZiYXItaXRlbTpob3Zlcjpub3QoLm5hdmJhci1idXR0b24pOm5vdCgubmF2YmFyLXNlYXJjaC1iYXIpIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmxvZ28tbGluayB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cbi5yZG0tc2lnbi1idXR0b25zIHtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDBweDtcbn1cbi5yZG0tcGx1cy1tZW51IHtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzQ1cHgpIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLnJkbS1wbHVzLW1lbnUtcmVzcG9uc2l2ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICB9XG4gIC51c2VyLXByb2ZpbGUge1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtIWltcG9ydGFudDtcbiAgfVxufVxuLmxvZ28ge1xuICB3aWR0aDogMjAwcHg7XG59XG4vKiBNb2JpbGUgbWVudSAqL1xuLm5hdmJhci1tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubmF2YmFyLW1lbnUgbGkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxNXB4IDVweDtcbn1cbi50b2dnbGUge1xuICBvcmRlcjogMTtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLm5hdmJhci1pdGVtLm5hdmJhci1idXR0b24ge1xuICBvcmRlcjogMjtcbn1cbi5uYXZiYXItaXRlbSB7XG4gIG9yZGVyOiAzO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFjdGl2ZSAubmF2YmFyLWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiNoZWFkZXItc2VhcmNoLWJhciB7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jaGVhZGVyLXNlYXJjaC1iYXIgLnVpLmFjdGlvbi5pbnB1dCB7XG4gIG1hcmdpbi1yaWdodDogNDBweDtcbn1cbi8qIFRhYmxldCBtZW51ICovXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA3NDVweCkge1xuICAubmF2YmFyLW1lbnUge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAubmF2YmFyLWl0ZW0ubmF2YmFyLWJ1dHRvbiB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3JkZXI6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZmxleDogMTtcbiAgfVxuICAudG9nZ2xlIHtcbiAgICBmbGV4OiAxO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC8qIEJ1dHRvbiB1cCBmcm9tIHRhYmxldCBzY3JlZW4gKi9cbiAgLm5hdmJhci1tZW51IGxpLm5hdmJhci1idXR0b24gYSB7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIG1hcmdpbjogMnB4O1xuICB9XG59XG4vKiBEZXNrdG9wIG1lbnUgKi9cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAubmF2YmFyLW1lbnUge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbiAgLmxvZ28ge1xuICAgIG9yZGVyOiAwO1xuICB9XG4gIC5uYXZiYXItaXRlbSB7XG4gICAgb3JkZXI6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5uYXZiYXItYnV0dG9uIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAudG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNoZWFkZXItc2VhcmNoLWJhciB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubG9nbyB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgfVxufVxuLyogbWVudSBpY29uIChIYW1idXJndWVyIGljb24pICovXG4ubWVudS1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZzogMjhweCAyMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLm1lbnUtaWNvbiAubmF2aWNvbiB7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1vdXQ7XG4gIHdpZHRoOiAxOHB4O1xufVxuLm1lbnUtaWNvbiAubmF2aWNvbjpiZWZvcmUsXG4ubWVudS1pY29uIC5uYXZpY29uOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLW91dDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubWVudS1pY29uIC5uYXZpY29uOmJlZm9yZSB7XG4gIHRvcDogNXB4O1xufVxuLm1lbnUtaWNvbiAubmF2aWNvbjphZnRlciB7XG4gIHRvcDogLTVweDtcbn1cbi8qIG1lbnUgYnRuICovXG4ubWVudS1idG4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudSB7XG4gIG1heC1oZWlnaHQ6IDI0MHB4O1xufVxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudS1pY29uIC5uYXZpY29uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ubWVudS1idG46Y2hlY2tlZCB+IC5tZW51LWljb24gLm5hdmljb246YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbi5tZW51LWJ0bjpjaGVja2VkIH4gLm1lbnUtaWNvbiAubmF2aWNvbjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cbi5tZW51LWJ0bjpjaGVja2VkIH4gLm1lbnUtaWNvbjpub3QoLnN0ZXBzKSAubmF2aWNvbjpiZWZvcmUsXG4ubWVudS1idG46Y2hlY2tlZCB+IC5tZW51LWljb246bm90KC5zdGVwcykgLm5hdmljb246YWZ0ZXIge1xuICB0b3A6IDA7XG59XG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjEgR3JheiBVbml2ZXJzaXR5IG9mIFRlY2hub2xvZ3kuXG4gKlxuICogSW52ZW5pbyBSRE0gUmVjb3JkcyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi5mb250LXNtYWxsIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmZvbnQtdGlueSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cbi50b3AtYm90dG9tLXBhZGRlZCB7XG4gIG1hcmdpbjogMTVweCAwcHggMjBweCAwcHg7XG59XG4uaWlpZi1wcmV2aWV3LWltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnByZXZpZXctaWZyYW1lIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuLnVpLmxhYmVsID4gLmljb24ge1xuICBtYXJnaW46IDByZW0gMC4yNXJlbSAwcmVtIDByZW07XG59XG4uc3RhdHMtYm94IHtcbiAgcGFkZGluZzogMXJlbSAwcmVtIDByZW0gMHJlbTtcbn1cbi5zdGF0cy1ib3ggLnN0YXRzLWRhdGEge1xuICBmb250LXNpemU6IDM2cHg7XG59XG5kZCB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDBweDtcbn1cbi52ZXJzaW9uLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG59XG4udWkucmRtLXNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTNlM2UzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uaW5saW5lLW9yY2lkIHtcbiAgaGVpZ2h0OiAxNHB4O1xufVxuLmlubGluZS1vcmNpZC1pY29uIHtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xufVxuLnRoaW4tbGluZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5oaWRlLW9uLWNvbGxhcHNlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnNob3ctb24tY29sbGFwc2VkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wYW5lbC10b2dnbGUuY29sbGFwc2VkIC5oaWRlLW9uLWNvbGxhcHNlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucGFuZWwtdG9nZ2xlLmNvbGxhcHNlZCAuc2hvdy1vbi1jb2xsYXBzZWQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jb2x1bW4udmVyc2lvbnMtcHJldmlldy1pbmZvIHtcbiAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG59XG4vKiB1c2UgdGhlc2UgY2xhc3NlcyB0byBjaGFuZ2UgYWNjb3JkaW9uIHRpdGxlIHdoZW4gdXAvZG93biAqL1xuZGl2LmFjY29yZGlvbiBkaXYudGl0bGUuYWN0aXZlIHNwYW4udXAge1xuICBkaXNwbGF5OiBub25lO1xufVxuZGl2LmFjY29yZGlvbiBkaXYudGl0bGUuYWN0aXZlIHNwYW4uZG93biB7XG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xufVxuZGl2LmFjY29yZGlvbiBkaXYudGl0bGUgc3Bhbi51cCB7XG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xufVxuZGl2LmFjY29yZGlvbiBkaXYudGl0bGUgc3Bhbi5kb3duIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5yZWNvcmQtbWFuYWdlbWVudC1yb3cge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLnJlY29yZC1tYW5hZ2VtZW50LXJvdyBidXR0b24ge1xuICBtYXJnaW4tcmlnaHQ6IDdweCAhaW1wb3J0YW50O1xufVxuLnBhbmVsLXNwYWNpbmcge1xuICBwYWRkaW5nLXRvcDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cbi5maWxlLWJveC1tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLnBhbmVsLWhlYWRpbmcge1xuICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgY29sb3I6ICM0MjhiY2EgIWltcG9ydGFudDtcbn1cbi5wYW5lbC1oZWFkaW5nIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ucGFuZWwtaGVhZGluZyBpLmFuZ2xlIHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG4ucGFuZWwtaGVhZGluZy5yZXN0cmljdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1MDIwMjBmO1xufVxuLnBhbmVsLWhlYWRpbmcuZW1iYXJnb2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M3YTAwMDE0O1xufVxuLnBhbmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xufVxuLnBhbmVsIC5jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuLnVpLmFjY29yZGlvbi5wYW5lbC5yZXN0cmljdGVkIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTBiNGI0ICFpbXBvcnRhbnQ7XG59XG4udWkuYWNjb3JkaW9uLnBhbmVsLmVtYmFyZ29lZCB7XG4gIGJvcmRlci1jb2xvcjogI2M5YmE5YiAhaW1wb3J0YW50O1xufVxuLnVpLnRhYmxlLmZpbGVzLXRhYmxlIHtcbiAgYm9yZGVyOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbn1cbi5zaGFyZS1tb2RhbCAuc2hhcmUtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uc2hhcmUtbW9kYWwgLnNoYXJlLWNvbnRlbnQgLmlucHV0IHtcbiAgZmxleC1ncm93OiAxO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi5zaGFyZS1tb2RhbCAuc2hhcmUtZGVzY3JpcHRpb24ge1xuICBtYXJnaW46IDFlbSBhdXRvO1xufVxuLnNoYXJlLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnVpLmFjY29yZGlvbi5jcmVhdGlidXRvcnMgLnRpdGxlIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnRydW5jYXRlZCB7XG4gIGZsZXg6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDIxIFRVIFdpZW4uXG4gKlxuICogSW52ZW5pbyBSRE0gUmVjb3JkcyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbnByZS5leHBvcnQucmVzdWx0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgcGFkZGluZzogOS41cHg7XG4gIG1hcmdpbjogMCAwIDEwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5odG1sLFxuYm9keSB7XG4gIGNvbG9yOiAjMDAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5vdXRlci1uYXZiYXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnNldDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5vdXRlci1uYXZiYXIgI2ludmVuaW8tbmF2IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ub3V0ZXItbmF2YmFyICNmcm9udHBhZ2Utc2VhcmNoLWJhciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLm91dGVyLW5hdmJhciAjZnJvbnRwYWdlLXNlYXJjaC1iYXIgLnNlYXJjaC1iYXIge1xuICB3aWR0aDogNTAlO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLm91dGVyLW5hdmJhciBhIHtcbiAgY29sb3I6ICNkYmVhZmY7XG59XG4uaXRlbS5yaWdodC1tZW51IHtcbiAgbGluZS1oZWlnaHQ6IDQ0cHggIWltcG9ydGFudDtcbn1cbi5uby1kb3RzLWxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdW5zZXQ7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IHVuc2V0O1xufVxuLmNlbnRlcmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnRpdGxlY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuLnNlY3Rpb24tY29udGVudC1kYXJrLWJnLFxuLnNlY3Rpb24tY29udGVudC13aGl0ZS1iZyxcbi5zZWN0aW9uLWNvbnRlbnQtbGlnaHQtYmcge1xuICBwYWRkaW5nLXRvcDogY2FsYygzMHB4KTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMiAqIDMwcHgpO1xufVxuLnNlY3Rpb24tY29udGVudC1kYXJrLWJnOmZpcnN0LW9mLXR5cGUsXG4uc2VjdGlvbi1jb250ZW50LXdoaXRlLWJnOmZpcnN0LW9mLXR5cGUsXG4uc2VjdGlvbi1jb250ZW50LWxpZ2h0LWJnOmZpcnN0LW9mLXR5cGUge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn1cbi5zZWN0aW9uLWNvbnRlbnQtZGFyay1iZyB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDMwcHgpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDIgKiAzMHB4KTtcbn1cbi5zZWN0aW9uLWNvbnRlbnQtd2hpdGUtYmcge1xuICBwYWRkaW5nLXRvcDogY2FsYyg0MHB4KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygyICogMzBweCk7XG59XG4uc2VjdGlvbi1jb250ZW50LWxpZ2h0LWJnIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoNjBweCkgIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMiAqIDMwcHgpO1xufVxuLnNlY3Rpb24tY29udGVudC1saWdodC1iZzpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tYm90dG9tOiAtMXJlbTtcbn1cbi5zZWN0aW9uLWNvbnRlbnQtd2hpdGUtYmcgYSxcbi5zZWN0aW9uLWNvbnRlbnQtbGlnaHQtYmcgYSxcbi5ocC1ibG9nLXNlY3Rpb24gYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMwMzc3Y2RiNTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5zZWN0aW9uLWNvbnRlbnQtd2hpdGUtYmcgYTpob3Zlcixcbi5zZWN0aW9uLWNvbnRlbnQtd2hpdGUtYmcgYTpmb2N1cyxcbi5zZWN0aW9uLWNvbnRlbnQtbGlnaHQtYmcgYTpob3Zlcixcbi5zZWN0aW9uLWNvbnRlbnQtbGlnaHQtYmcgYTpmb2N1cyxcbi5ocC1ibG9nLXNlY3Rpb24gYTpob3Zlcixcbi5ocC1ibG9nLXNlY3Rpb24gYTpmb2N1cyB7XG4gIGNvbG9yOiAjMDM3N2NkO1xufVxuLnNlY3Rpb24tY29udGVudC13aGl0ZS1iZyxcbi5zZWN0aW9uLWNvbnRlbnQtbGlnaHQtYmcge1xuICBjb2xvcjogIzMzMztcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uc2VjdGlvbi1jb250ZW50LWxpZ2h0LWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNzMsIDIwNiwgMjI0LCAwLjUyKTtcbn1cbi5zZWN0aW9uLWNvbnRlbnQtd2hpdGUtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnNlY3Rpb24tY29udGVudC13aGl0ZS1iZyBoNixcbi5zZWN0aW9uLWNvbnRlbnQtbGlnaHQtYmcgaDYge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDEuNGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICMwMzc3Y2Q7XG59XG4uc2VjdGlvbi10aXRsZSB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDIuNWVtO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICMwMzc3Y2Q7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uc2VjdGlvbi1zdWJ0aXRsZSB7XG4gIGNvbG9yOiAjMDM3N2NkICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cbi5pbnZlbmlvLXJkbS1wcm9qZWN0LWdvYWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmludmVuaW8tcmRtLXByb2plY3QtZ29hbHMgLnJkbS1nb2FsIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgcGFkZGluZzogMWVtO1xufVxuLmludmVuaW8tcmRtLXByb2plY3QtY29sbGFib3JhdG9ycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG4uaW52ZW5pby1yZG0tcHJvamVjdC1jb2xsYWJvcmF0b3JzIC5yZG0tY29sbGFib3JhdG9ycyB7XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmc6IDFlbTtcbn1cbi5nZXQtc3RhcnRlZC1zZWN0aW9uID4gLnNlY3Rpb24tdGl0bGUge1xuICBmb250LXNpemU6IDIuNjVlbTtcbn1cbi5jb2xsYWJvcmF0b3JzLWxvZ28ge1xuICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaW52ZW5pby1yZG0tcHJvamVjdC1nb2FscyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuICB9XG4gIC5pbnZlbmlvLXJkbS1wcm9qZWN0LWdvYWxzIC5yZG0tZ29hbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm91dGVyLW5hdmJhciAjZnJvbnRwYWdlLXNlYXJjaC1iYXIgLnVpLmNvbnRhaW5lci5ncmlkIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC5vdXRlci1uYXZiYXIgI2Zyb250cGFnZS1zZWFyY2gtYmFyIC5zZWFyY2gtYmFyIHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG4gIC5pbnZlbmlvLXJkbS1wcm9qZWN0LWNvbGxhYm9yYXRvcnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDFlbTtcbiAgfVxuICAuaW52ZW5pby1yZG0tcHJvamVjdC1jb2xsYWJvcmF0b3JzIC5yZG0tY29sbGFib3JhdG9ycyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5mZWF0dXJlcy1zZWN0aW9uIGltZyB7XG4gIG1heC1oZWlnaHQ6IDYwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5mZWF0dXJlcy1zZWN0aW9uLXJvdyB7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xufVxuLmJyb3VnaHQtdG8teW91LXNlY3Rpb24gaW1nLFxuLnRydXN0ZWQtYnktc2VjdGlvbiBpbWcge1xuICBtYXgtaGVpZ2h0OiAxNTBweDtcbiAgbWF4LXdpZHRoOiAyNTBweDtcbiAgbWFyZ2luOiAyMHB4O1xuICBwYWRkaW5nOiAyMHB4O1xufVxuLnJlY29yZC1lbGVtIC5yZWNvcmQtdGl0bGUge1xuICBjb2xvcjogIzAzNzdjZDtcbn1cbi5yZWNvcmQtZWxlbSAucmVjb3JkLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDM3N2NkO1xuICBib3JkZXItY29sb3I6ICMwMzc3Y2Q7XG59XG4ucGFuZWwtZnJlZS10aXRsZSB7XG4gIGNvbG9yOiAjMDM3N2NkO1xufVxuLmNvdmVyLXBhZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnNldDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi50aGVtZS5oZWFkZXIge1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLml0ZW0uZGVwb3NpdHMtbGlzdC1pdGVtIC51aS5ncmlkIC5jaGVja2JveC1jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLml0ZW0uZGVwb3NpdHMtbGlzdC1pdGVtIC51aS5ncmlkIC5jaGVja2JveC1jb2x1bW4gLmljb24ge1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cbi5pdGVtLmRlcG9zaXRzLWxpc3QtaXRlbSBkaXYuc3RhdHVzLWljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4uaXRlbS5kZXBvc2l0cy1saXN0LWl0ZW0gLmFjdGlvbnMgPiBhLFxuLml0ZW0uZGVwb3NpdHMtbGlzdC1pdGVtIC5zdGF0cyA+IHNwYW4ge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5leHRyYS5sYWJlbHMtYWN0aW9ucyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVlbTtcbn1cbi51aS5sYWJlbC5hY2Nlc3Mtc3RhdHVzIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkubGFiZWwuYWNjZXNzLXN0YXR1cy5vcGVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NTtcbn1cbi51aS5sYWJlbC5hY2Nlc3Mtc3RhdHVzLnJlc3RyaWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4O1xufVxuLnVpLmxhYmVsLmFjY2Vzcy1zdGF0dXMuZW1iYXJnb2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwODtcbn1cbi51aS5sYWJlbC5hY2Nlc3Mtc3RhdHVzLm1ldGFkYXRhLW9ubHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4O1xufVxuLnVpLmNhcmQuYm9yZGVybGVzcy1mYWNldCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuY2FyZC5ib3JkZXJsZXNzLWZhY2V0IC5jb250ZW50IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5jYXJkLmJvcmRlcmxlc3MtZmFjZXQgLmNvbnRlbnQgLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xZW0gIWltcG9ydGFudDtcbn1cbi5jb250ZW50LmZhY2V0LWNvbnRlbnQuYWN0aXZlIHtcbiAgcGFkZGluZy1sZWZ0OiAyMXB4ICFpbXBvcnRhbnQ7XG59XG4uZmFjZXQtc3VidGl0bGUge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcbn1cbi5yZXN1bHQtb3B0aW9ucyB7XG4gIGhlaWdodDogNjZweDtcbn1cbi5pbmxpbmUtb3JjaWQge1xuICBoZWlnaHQ6IDE0cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmctcmlnaHQ6IDNweDtcbn1cbi51aS5ncmlkIC5yb3cuZmlsZS11cGxvYWQtYXJlYS1yb3cge1xuICBwYWRkaW5nLXRvcDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuLnVpLmdyaWQgLnJvdy5maWxlLXVwbG9hZC1hcmVhLXJvdyAudWkuYmFzaWMudmVyeS5wYWRkZWQuc2VnbWVudC5maWxlLXVwbG9hZC1hcmVhIHtcbiAgYm9yZGVyOiAycHggZGFzaGVkICM5OTk5OTk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogI2VlZWVlZSBub25lO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLnVpLmdyaWQgLnJvdy5maWxlLXVwbG9hZC1hcmVhLXJvdyAudWkuYmFzaWMudmVyeS5wYWRkZWQuc2VnbWVudC5maWxlLXVwbG9hZC1hcmVhLm5vLWZpbGVzIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4udWkuZ3JpZCAucm93LmZpbGUtdXBsb2FkLW5vdGUtcm93IHtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi51aS5ncmlkIC5yb3cuZmlsZS1pbXBvcnQtbm90ZS1yb3cge1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuLnVpLnRhYmxlIC51aS5ibHVlLm1lZGl1bS5maWxlLXVwbG9hZC1wcm9ncmVzcy5wcm9ncmVzcy5hY3RpdmUsXG4udWkudGFibGUgLnVpLmJsdWUubWVkaXVtLmZpbGUtdXBsb2FkLXByb2dyZXNzLnN1Y2Nlc3MuYWN0aXZlLFxuLnVpLnRhYmxlIC51aS5ibHVlLm1lZGl1bS5maWxlLXVwbG9hZC1wcm9ncmVzcy5wcm9ncmVzcy5kaXNhYmxlZCxcbi51aS50YWJsZSAudWkuYmx1ZS5tZWRpdW0uZmlsZS11cGxvYWQtcHJvZ3Jlc3Muc3VjY2Vzcy5kaXNhYmxlZCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cbi51aS50YWJsZSAudWkuYmx1ZS5tZWRpdW0uZmlsZS11cGxvYWQtcHJvZ3Jlc3MucHJvZ3Jlc3MuYWN0aXZlLmVycm9yLFxuLnVpLnRhYmxlIC51aS5ibHVlLm1lZGl1bS5maWxlLXVwbG9hZC1wcm9ncmVzcy5zdWNjZXNzLmFjdGl2ZS5lcnJvcixcbi51aS50YWJsZSAudWkuYmx1ZS5tZWRpdW0uZmlsZS11cGxvYWQtcHJvZ3Jlc3MucHJvZ3Jlc3MuZGlzYWJsZWQuZXJyb3IsXG4udWkudGFibGUgLnVpLmJsdWUubWVkaXVtLmZpbGUtdXBsb2FkLXByb2dyZXNzLnN1Y2Nlc3MuZGlzYWJsZWQuZXJyb3Ige1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4udWkudGFibGUgLmZpbGUtdGFibGUtcm93IC5maWxlLXRhYmxlLWhlYWRlci1jZWxsIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuLnVpLnRhYmxlIC5maWxlLXRhYmxlLXJvdyAuZmlsZS10YWJsZS1jZWxsIHtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cbi51aS50YWJsZSAuZmlsZS10YWJsZS1yb3cgLmZpbGUtdGFibGUtY2VsbC5maWxlLXVwbG9hZC1wZW5kaW5nIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLm1vZGFsIC5oZWFkZXIuZGVwb3NpdC1tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG4udWkubWVudSAuYWN0aXZlLml0ZW0ubGljZW5zZS1tZW51LWl0ZW0tYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiAjMjE4NWQwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NWQwO1xuICBjb2xvcjogd2hpdGU7XG59XG4udWkubWVudSAuYWN0aXZlLml0ZW0ubGljZW5zZS1tZW51LWl0ZW0tYWN0aXZlOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMGQ3MWJiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ3MWJiO1xuICBjb2xvcjogd2hpdGU7XG59XG4jcmVjb3JkLWNpdGF0aW9uIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jcmVjb3JkLWNpdGF0aW9uIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbiNyZWNvcmQtY2l0YXRpb24gLmNpdGF0aW9uLXN0eWxlLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTU3cHg7XG59XG4jcmVjb3JkLWNpdGF0aW9uIC5jaXRhdGlvbi1zdHlsZS1zZWxlY3RvciAudWkuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgbWluLXdpZHRoOiAxMTJweDtcbiAgbWF4LXdpZHRoOiAxMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4jcmVjb3JkLWNpdGF0aW9uIC5jaXRhdGlvbi1lcnJvci1tZXNzYWdlIHtcbiAgY29sb3I6ICM5ZjNhMzg7XG59XG4jcmVjb3JkLXN1YmplY3RzIC5zdWJqZWN0LXNjaGVtZS5jb2x1bW4ge1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xufVxuI3JlY29yZC1zdWJqZWN0cyAuc3ViamVjdC1zY2hlbWUuY29sdW1uIC5zdWJqZWN0IHtcbiAgbWFyZ2luLXJpZ2h0OiAyZW07XG59XG4jcmVjb3JkLXN1YmplY3RzIC5zdWJqZWN0LWxhYmVsLmNvbHVtbiB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuI3JlY29yZC1zdWJqZWN0cyAuc3ViamVjdC1sYWJlbC5jb2x1bW4gLnN1YmplY3Qge1xuICBjb2xvcjogIzc3NztcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMTksIDExOSwgMTE5LCAwLjU2KTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiAzLjVweDtcbn1cbi51aS5jb250YWluZXIuY292ZXItcGFnZSB7XG4gIGhlaWdodDogMTBlbSAhaW1wb3J0YW50O1xufVxuYSB7XG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbn1cbi5vdXRlci1uYXZiYXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTJkZWcsICNjZWNkY2QsICNmMGYwZjAgMTUlLCByZ2JhKDIyMSwgMjIxLCAyMjEsIDAuNjkpKSAhaW1wb3J0YW50O1xufVxuLnVpLnNlYXJjaC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG4udWkuc2VhcmNoLmJ1dHRvbjpmb2N1cyxcbi51aS5zZWFyY2guYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2NjY2NyAhaW1wb3J0YW50O1xufVxuLnNlY3Rpb24tdGl0bGUge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAyLjVlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjMDAwO1xuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmZyekV4dHJhU3BhY2VkIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG59XG4vKiBFbGVtZW50cyAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQnV0dG9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQnV0dG9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQnV0dG9uICovXG4vKiBCdXR0b24gZGVmYXVsdHMgdG8gdXNpbmcgc2FtZSBoZWlnaHQgYXMgaW5wdXQgZ2xvYmFsbHkgKi9cbi8qIFRleHQgKi9cbi8qIEludGVybmFsIFNoYWRvdyAqL1xuLyogQm94IFNoYWRvdyAqL1xuLyogSWNvbiAqL1xuLyogTG9hZGVyICovXG4vKlxuQHdpbGxDaGFuZ2U6IGJveC1zaGFkb3csIHRyYW5zZm9ybSwgb3BhY2l0eSwgY29sb3IsIGJhY2tncm91bmQ7XG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlcmVkICovXG4vKiBGb2N1c2VkICovXG4vKiBEaXNhYmxlZCAqL1xuLyogUHJlc3NlZCBEb3duICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSArIEhvdmVyZWQgKi9cbi8qIExvYWRpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT3IgKi9cbi8qIEljb24gKi9cbi8qIExhYmVsZWQgKi9cbi8qIGh5cG90ZW51c2Ugb2YgdHJpYW5nbGUgKi9cbi8qIExhYmVsZWQgSWNvbiAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljICovXG4vKiBCYXNpYyBIb3ZlciAqL1xuLyogQmFzaWMgRm9jdXMgKi9cbi8qIEJhc2ljIERvd24gKi9cbi8qIEJhc2ljIEFjdGl2ZSAqL1xuLyogQmFzaWMgSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljIEdyb3VwICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbG9ycyAqL1xuLyogQ29sb3JlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIE9yZGluYWxpdHkgKi9cbi8qIENvbXBhY3QgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBBbmltYXRlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEJ1dHRvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLWhlaWdodDogMWVtO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYmFja2dyb3VuZDogI0UwRTFFMiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDBlbSAwLjI1ZW0gMGVtIDBlbTtcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDEuNWVtIDAuNzg1NzE0MjllbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0LCAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZSwgYmFja2dyb3VuZCAwLjFzIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiAnJztcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0FDQkNEO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQgaW5zZXQsIDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLnVpLmJ1dHRvbjpob3ZlciAuaWNvbiB7XG4gIG9wYWNpdHk6IDAuODU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0FDQkNEO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAnJyAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAnJyAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbjpmb2N1cyAuaWNvbiB7XG4gIG9wYWNpdHk6IDAuODU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBEb3duXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbjphY3RpdmUsXG4udWkuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQkFCQkJDO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAnJztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0LCBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDMEMxQzI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuYWN0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDMEMxQzI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0MwQzFDMjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BlY2lmaWNpdHkgaGFjayAqL1xuLnVpLmxvYWRpbmcubG9hZGluZy5sb2FkaW5nLmxvYWRpbmcubG9hZGluZy5sb2FkaW5nLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXIsIG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLnVpLmxvYWRpbmcuYnV0dG9uOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjQyODU3MTRlbSAwZW0gMGVtIC0wLjY0Mjg1NzE0ZW07XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIGhlaWdodDogMS4yODU3MTQyOWVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi51aS5sb2FkaW5nLmJ1dHRvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjQyODU3MTRlbSAwZW0gMGVtIC0wLjY0Mjg1NzE0ZW07XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIGhlaWdodDogMS4yODU3MTQyOWVtO1xuICBhbmltYXRpb246IGJ1dHRvbi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICNGRkZGRkYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cbi51aS5sYWJlbGVkLmljb24ubG9hZGluZy5idXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbkBrZXlmcmFtZXMgYnV0dG9uLXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLnVpLmJhc2ljLmxvYWRpbmcuYnV0dG9uOm5vdCguaW52ZXJ0ZWQpOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmJhc2ljLmxvYWRpbmcuYnV0dG9uOm5vdCguaW52ZXJ0ZWQpOmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzc2NzY3Njtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b25zIC5kaXNhYmxlZC5idXR0b24sXG4udWkuZGlzYWJsZWQuYnV0dG9uLFxuLnVpLmJ1dHRvbjpkaXNhYmxlZCxcbi51aS5kaXNhYmxlZC5idXR0b246aG92ZXIsXG4udWkuZGlzYWJsZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgb3BhY2l0eTogMC40NSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljIEdyb3VwIFdpdGggRGlzYWJsZWQgKi9cbi51aS5iYXNpYy5idXR0b25zIC51aS5kaXNhYmxlZC5idXR0b24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC41KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbmltYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFuaW1hdGVkLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDE7XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uIC5jb250ZW50IHtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVlbTtcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEhvcml6b250YWwgKi9cbi51aS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCxcbi51aS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC4zcyBlYXNlIDBzO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xMDAlO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuYW5pbWF0ZWQuYnV0dG9uOmhvdmVyIC52aXNpYmxlLmNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMjAwJTtcbn1cbi51aS5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMCU7XG59XG4vKiBWZXJ0aWNhbCAqL1xuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uOiB0b3AgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgcmlnaHQ6IGF1dG87XG59XG4udWkudmVydGljYWwuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHRvcDogLTUwJTtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpmb2N1cyAudmlzaWJsZS5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMCUpO1xuICByaWdodDogYXV0bztcbn1cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IGF1dG87XG59XG4vKiBGYWRlICovXG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCxcbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgb3BhY2l0eTogMDtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b246Zm9jdXMgLnZpc2libGUuY29udGVudCxcbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uOmhvdmVyIC5oaWRkZW4uY29udGVudCB7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRkZGRkYgaW5zZXQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBHcm91cCAqL1xuLnVpLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggLTJweDtcbn1cbi51aS5pbnZlcnRlZC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmludmVydGVkLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDBweCAtMnB4IDBweDtcbn1cbi51aS5pbnZlcnRlZC52ZXJ0aWNhbC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBTdGF0ZXMgKi9cbi8qIEhvdmVyICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRkZGRkYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qIEFjdGl2ZSAvIEZvY3VzICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0ZGRkZGRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogQWN0aXZlIEZvY3VzICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uLmFjdGl2ZTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNEQ0REREU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRENERERFIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBMYWJlbGVkIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVsZWQuYnV0dG9uOm5vdCguaWNvbikge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC5idXR0b24ge1xuICBtYXJnaW46IDBweDtcbn1cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggLTFweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAnJztcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFRhZyAqL1xuLnVpLmxhYmVsZWQuYnV0dG9uID4gLnRhZy5sYWJlbDpiZWZvcmUge1xuICB3aWR0aDogMS44NWVtO1xuICBoZWlnaHQ6IDEuODVlbTtcbn1cbi8qIFJpZ2h0ICovXG4udWkubGFiZWxlZC5idXR0b246bm90KFtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0pID4gLmJ1dHRvbiB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG59XG4udWkubGFiZWxlZC5idXR0b246bm90KFtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0pID4gLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG59XG4vKiBMZWZ0IFNpZGUgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0uYnV0dG9uID4gLmJ1dHRvbiB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgbGFiZWxlZFwiXS5idXR0b24gPiAubGFiZWwge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU29jaWFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGYWNlYm9vayAqL1xuLnVpLmZhY2Vib29rLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzQjU5OTg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuZmFjZWJvb2suYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwNGQ4YTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmZhY2Vib29rLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0MzczO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBUd2l0dGVyICovXG4udWkudHdpdHRlci5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTVBQ0VFO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnR3aXR0ZXIuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM1YTJmNDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnR3aXR0ZXIuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzk1ZTk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEdvb2dsZSBQbHVzICovXG4udWkuZ29vZ2xlLnBsdXMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RENEIzOTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5nb29nbGUucGx1cy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAzMjFjO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ29vZ2xlLnBsdXMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMjMzMjE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIExpbmtlZCBJbiAqL1xuLnVpLmxpbmtlZGluLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxRjg4QkU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5saW5rZWRpbi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ3YmFmO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubGlua2VkaW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODY5OTI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIFlvdVR1YmUgKi9cbi51aS55b3V0dWJlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjAwMDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkueW91dHViZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTYwMDAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkueW91dHViZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjMDAwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogSW5zdGFncmFtICovXG4udWkuaW5zdGFncmFtLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0OTc2OUM7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuaW5zdGFncmFtLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZDY5OGU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnN0YWdyYW0uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOTVjNzk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIFBpbnRlcmVzdCAqL1xuLnVpLnBpbnRlcmVzdC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQkQwODFDO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnBpbnRlcmVzdC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWMwMDEzO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucGludGVyZXN0LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGMwNjE1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBWSyAqL1xuLnVpLnZrLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0RDcxOTg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS52ay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE2NDhhO1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS52ay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjNTg3NjtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uID4gLmljb246bm90KC5idXR0b24pIHtcbiAgaGVpZ2h0OiAwLjg1NzE0Mjg2ZW07XG4gIG9wYWNpdHk6IDAuODtcbiAgbWFyZ2luOiAwZW0gMC40Mjg1NzE0M2VtIDBlbSAtMC4yMTQyODU3MWVtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbiAgdmVydGljYWwtYWxpZ246ICcnO1xuICBjb2xvcjogJyc7XG59XG4udWkuYnV0dG9uOm5vdCguaWNvbikgPiAuaWNvbjpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bikge1xuICBtYXJnaW46IDBlbSAwLjQyODU3MTQzZW0gMGVtIC0wLjIxNDI4NTcxZW07XG59XG4udWkuYnV0dG9uOm5vdCguaWNvbikgPiAucmlnaHQuaWNvbjpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bikge1xuICBtYXJnaW46IDBlbSAtMC4yMTQyODU3MWVtIDBlbSAwLjQyODU3MTQzZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5idXR0b25zLFxuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5idXR0b24ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5idXR0b25zLFxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uYnV0dG9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21wYWN0LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5jb21wYWN0LmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuNTg5Mjg1NzFlbSAxLjEyNWVtIDAuNTg5Mjg1NzFlbTtcbn1cbi51aS5jb21wYWN0Lmljb24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmNvbXBhY3QuaWNvbi5idXR0b24ge1xuICBwYWRkaW5nOiAwLjU4OTI4NTcxZW0gMC41ODkyODU3MWVtIDAuNTg5Mjg1NzFlbTtcbn1cbi51aS5jb21wYWN0LmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b24sXG4udWkuY29tcGFjdC5sYWJlbGVkLmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogMC41ODkyODU3MWVtIDMuNjk2NDI4NTdlbSAwLjU4OTI4NTcxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5taW5pLmJ1dHRvbnMgLm9yLFxuLnVpLm1pbmkuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnRpbnkuYnV0dG9ucyAub3IsXG4udWkudGlueS5idXR0b24ge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnNtYWxsLmJ1dHRvbnMgLm9yLFxuLnVpLnNtYWxsLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5idXR0b25zIC5idXR0b24sXG4udWkuYnV0dG9ucyAub3IsXG4udWkuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5sYXJnZS5idXR0b25zIC5vcixcbi51aS5sYXJnZS5idXR0b24ge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuYmlnLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iaWcuYnV0dG9ucyAub3IsXG4udWkuYmlnLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5odWdlLmJ1dHRvbnMgLm9yLFxuLnVpLmh1Z2UuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm1hc3NpdmUuYnV0dG9ucyAub3IsXG4udWkubWFzc2l2ZS5idXR0b24ge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSWNvbiBPbmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmljb24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDAuNzg1NzE0MjllbSAwLjc4NTcxNDI5ZW07XG59XG4udWkuaWNvbi5idXR0b25zIC5idXR0b24gPiAuaWNvbixcbi51aS5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgb3BhY2l0eTogMC45O1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSkgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSkgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNGOEY4RjggIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE1KSBpbnNldCwgMHB4IDFweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAnJyAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYWN0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4vKiBWZXJ0aWNhbCAqL1xuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldCBpbnNldDtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNSkgaW5zZXQsIDBweCAxcHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0IGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAnJyAhaW1wb3J0YW50O1xufVxuLyogU3RhbmRhcmQgQmFzaWMgSW52ZXJ0ZWQgKi9cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGOUZBRkIgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b246aG92ZXIge1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b246Zm9jdXMge1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSBpbnNldDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmludmVydGVkLmFjdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgR3JvdXAgKi9cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b24ge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBMYWJlbGVkIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDQuMDcxNDI4NTdlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVlbSAhaW1wb3J0YW50O1xufVxuLyogTGVmdCBMYWJlbGVkICovXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb24sXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwZW07XG4gIHdpZHRoOiAyLjU3MTQyODU3ZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiAnJztcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudCBpbnNldDtcbn1cbi8qIExlZnQgTGFiZWxlZCAqL1xuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zID4gLmJ1dHRvbiA+IC5pY29uLFxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b24gPiAuaWNvbiB7XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwZW07XG59XG4vKiBSaWdodCBMYWJlbGVkICovXG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmctcmlnaHQ6IDQuMDcxNDI4NTdlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJveC1zaGFkb3c6IDFweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudCBpbnNldDtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbjpiZWZvcmUsXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uOmJlZm9yZSxcbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbjphZnRlcixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uID4gLmljb246YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b24gPiAuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkID4gLmljb24ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCA+IC5pY29uIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLnZlcnRpY2FsLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQgPiAuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yODU3MTQyOXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQgPiAuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yODU3MTQyOXJlbTtcbn1cbi8qIEZsdWlkIExhYmVsZWQgKi9cbi51aS5mbHVpZFtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24sXG4udWkuZmx1aWRbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmctbGVmdDogMS41ZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMS41ZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVG9nZ2xlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9nZ2xlIChNb2RpZmllcyBhY3RpdmUgc3RhdGUgdG8gZ2l2ZSBhZmZvcmRhbmNlcykgKi9cbi51aS50b2dnbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5idXR0b25zIC5idXR0b24udG9nZ2xlLmFjdGl2ZSxcbi51aS5idXR0b24udG9nZ2xlLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b24udG9nZ2xlLmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2lyY3VsYXIuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMTBlbTtcbn1cbi51aS5jaXJjdWxhci5idXR0b24gPiAuaWNvbiB7XG4gIHdpZHRoOiAxZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgT3IgQnV0dG9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbnMgLm9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMC4zZW07XG4gIGhlaWdodDogMi41NzE0Mjg1N2VtO1xuICB6LWluZGV4OiAzO1xufVxuLnVpLmJ1dHRvbnMgLm9yOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGNvbnRlbnQ6ICdvcic7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMC44OTI4NTcxNGVtO1xuICBtYXJnaW4tbGVmdDogLTAuODkyODU3MTRlbTtcbiAgd2lkdGg6IDEuNzg1NzE0MjllbTtcbiAgaGVpZ2h0OiAxLjc4NTcxNDI5ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc4NTcxNDI5ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldDtcbn1cbi51aS5idXR0b25zIC5vcltkYXRhLXRleHRdOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbn1cbi8qIEZsdWlkIE9yICovXG4udWkuZmx1aWQuYnV0dG9ucyAub3Ige1xuICB3aWR0aDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZmx1aWQuYnV0dG9ucyAub3I6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpbmd1bGFyICovXG4udWkuYXR0YWNoZWQuYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgIWltcG9ydGFudDtcbn1cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLnVpLmF0dGFjaGVkLnRvcC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbTtcbn1cbi51aS5hdHRhY2hlZC5ib3R0b20uYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW07XG59XG4vKiBMZWZ0IC8gUmlnaHQgKi9cbi51aS5sZWZ0LmF0dGFjaGVkLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjc1ZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMGVtIDBlbSAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLnJpZ2h0LmF0dGFjaGVkLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtO1xufVxuLyogUGx1cmFsICovXG4udWkuYXR0YWNoZWQuYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xufVxuLnVpLmF0dGFjaGVkLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmF0dGFjaGVkLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5hdHRhY2hlZC5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMGVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uYnV0dG9ucyB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjI4NTcxNDI5cmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yODU3MTQyOXJlbSAwZW07XG59XG4vKiBMZWZ0IC8gUmlnaHQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGF0dGFjaGVkXCJdLmJ1dHRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yODU3MTQyOXJlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwZW0gMGVtIDAuMjg1NzE0MjlyZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMGVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwZW0gMC4yODU3MTQyOXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmJ1dHRvbnMsXG4udWkuZmx1aWQuYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZmx1aWQuYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkudHdvLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLnRocmVlLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50aHJlZS5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAzMy4zMzMlO1xufVxuLnVpLmZvdXIuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZvdXIuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLmZpdmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZpdmUuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLnNpeC5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuc2l4LmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDE2LjY2NiU7XG59XG4udWkuc2V2ZW4uYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnNldmVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDE0LjI4NSU7XG59XG4udWkuZWlnaHQuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmVpZ2h0LmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpLm5pbmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLm5pbmUuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMTEuMTElO1xufVxuLnVpLnRlbi5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudGVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5lbGV2ZW4uYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmVsZXZlbi5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiA5LjA5JTtcbn1cbi51aS50d2VsdmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnR3ZWx2ZS5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiA4LjMzMzMlO1xufVxuLyogRmx1aWQgVmVydGljYWwgQnV0dG9ucyAqL1xuLnVpLmZsdWlkLnZlcnRpY2FsLmJ1dHRvbnMsXG4udWkuZmx1aWQudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogYXV0bztcbn1cbi51aS50d28udmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDUwJTtcbn1cbi51aS50aHJlZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMzMuMzMzJTtcbn1cbi51aS5mb3VyLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAyNSU7XG59XG4udWkuZml2ZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMjAlO1xufVxuLnVpLnNpeC52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTYuNjY2JTtcbn1cbi51aS5zZXZlbi52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTQuMjg1JTtcbn1cbi51aS5laWdodC52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTIuNSU7XG59XG4udWkubmluZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTEuMTElO1xufVxuLnVpLnRlbi52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogMTAlO1xufVxuLnVpLmVsZXZlbi52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogOS4wOSU7XG59XG4udWkudHdlbHZlLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiA4LjMzMzMlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBCbGFjayAtLS0qL1xuLnVpLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5ibGFjay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkuYmxhY2suYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJsYWNrLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzI5MmE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibGFjay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmxhY2suYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJmMzAzMjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDM2Mzc7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibGFjay5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJsYWNrLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmJsYWNrLmFjdGl2ZS5idXR0b24sXG4udWkuYmxhY2suYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjBmMTA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMUIxQzFEIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjcyOTJhIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjcyOTJhICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMmYzMDMyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjcyOTJhICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5ibGFjay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwZjBmMTAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzNDM2MzcgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzM0MzYzNyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzM0MzYzNyAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuYmxhY2suYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNENEQ0RDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMDAwMDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzAwMDAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZXkgLS0tKi9cbi51aS5ncmV5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5ncmV5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5ncmV5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmdyZXkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgzODM4MztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmdyZXkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhhOGE4YTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTA5MDkwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JleS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmdyZXkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuZ3JleS5hY3RpdmUuYnV0dG9uLFxuLnVpLmdyZXkuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2OTY5Njk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuZ3JleS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuZ3JleS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzc2NzY3NiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmdyZXkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4MzgzODMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5ncmV5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOGE4YThhIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JleS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmdyZXkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNjk2OTY5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTA5MDkwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JleS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmdyZXkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOTA5MDkwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTA5MDkwICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5ncmV5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0Q0RDRENSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZkMGQyO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzljYjtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmZDBkMjtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNTtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjZmQwZDIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjYzdjOWNiIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRENERERFICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2NmZDBkMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjMmM0YzUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJyb3duIC0tLSovXG4udWkuYnJvd24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJyb3duLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0Y7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5icm93bi5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYnJvd24uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3NWIzMztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5icm93bi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTA1MzJiO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5icm93bi5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgwNTAzMTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJyb3duLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYnJvd24uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuYnJvd24uYWN0aXZlLmJ1dHRvbixcbi51aS5icm93bi5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5NWEzMTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBNTY3M0YgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5NzViMzMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5MDUzMmIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmJyb3duLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzk5NWEzMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjODA1MDMxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODA1MDMxICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5icm93bi5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0Q2N0MxQyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q2N0MxQztcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjODZmMTE7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMTY4MDg7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjNmYwZDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk2MjE2O1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2M4NmYxMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjMTY4MDggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjY2M2ZjBkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2E5NjIxNiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuLyotLS0gQmx1ZSAtLS0qL1xuLnVpLmJsdWUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJsdWUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxODVEMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLmJsdWUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmx1ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmx1ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTY3OGMyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmx1ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmx1ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ3MWJiO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmx1ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJsdWUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTY5YTQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmx1ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5ibHVlLmFjdGl2ZS5idXR0b24sXG4udWkuYmx1ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEyNzljNjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjE4NUQwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE4NUQwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmx1ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYmx1ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzE2NzhjMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE2NzhjMiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmJsdWUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwZDcxYmIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxNjc4YzIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuYmx1ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxMjc5YzYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxYTY5YTQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYmx1ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxYTY5YTQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxYTY5YTQgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmJsdWUuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNTRDOEZGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTRDOEZGO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FjMGZmO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJiYmJmZjtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhYzBmZjtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxYjhmZjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMzYWMwZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NEM4RkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMmJiYmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTRDOEZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzNhYzBmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0QzhGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMyMWI4ZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NEM4RkYgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZWVuIC0tLSovXG4udWkuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmdyZWVuLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5ncmVlbi5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuZ3JlZW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2YWIzOTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5ncmVlbi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGVhNDMyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmVlbi5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5OGYzNTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZWVuLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuZ3JlZW4uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuZ3JlZW4uYWN0aXZlLmJ1dHRvbixcbi51aS5ncmVlbi5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzYWUzODtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyMUJBNDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxNmFiMzkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwZWE0MzIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmdyZWVuLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzEzYWUzOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE5OGYzNSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTk4ZjM1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTk4ZjM1ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5ncmVlbi5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzJFQ0M0MCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJFQ0M0MDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMmJlMzQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOWI4MmI7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmYzIzMTtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjVhMjMzO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzIyYmUzNCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMxOWI4MmIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyRUNDNDAgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMWZjMjMxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzI1YTIzMyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuLyotLS0gT3JhbmdlIC0tLSovXG4udWkub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5vcmFuZ2UuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLm9yYW5nZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLm9yYW5nZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjI2MjAyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5vcmFuZ2UuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1NWIwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9yYW5nZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLm9yYW5nZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmNTkwYztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5vcmFuZ2UuYWN0aXZlLmJ1dHRvbixcbi51aS5vcmFuZ2UuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNTYxMDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNGMjcxMUMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2YyNjIwMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2YyNjIwMiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZTU1YjAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZjI2MjAyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMub3JhbmdlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2Y1NjEwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2NmNTkwYyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNjZjU5MGMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjZjU5MGMgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLm9yYW5nZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRkY4NTFCIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4NTFCO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjc3MDE7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxNzAwMDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjc3MDE7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2YjAwO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNzcwMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmMTcwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY3NzAxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2U3NmIwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuLyotLS0gUGluayAtLS0qL1xuLnVpLnBpbmsuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnBpbmsuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnBpbmsuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkucGluay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkucGluay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTYxYThkO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucGluay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucGluay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTEwZjg1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucGluay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnBpbmsuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNzFmN2U7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkucGluay5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5waW5rLmFjdGl2ZS5idXR0b24sXG4udWkucGluay5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhMTU4ZDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5waW5rLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRTAzOTk3IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucGluay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMucGluay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2U2MWE4ZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnBpbmsuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlMTBmODUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMucGluay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlYTE1OGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjNzFmN2UgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMucGluay5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNjNzFmN2UgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjNzFmN2UgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnBpbmsuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRkY4RURGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4RURGO1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3NGQ4O1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjVkMztcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzRkODtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNWJkMTtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjc0ZDggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjhFREYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY2NWQzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNzRkOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjViZDEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjhFREYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFZpb2xldCAtLS0qL1xuLnVpLnZpb2xldC5idXR0b25zIC5idXR0b24sXG4udWkudmlvbGV0LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1Qzk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS52aW9sZXQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS52aW9sZXQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU4MjliYjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnZpb2xldC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkudmlvbGV0LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZjIwYjU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS52aW9sZXQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MDJhYTE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS52aW9sZXQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS52aW9sZXQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkudmlvbGV0LmFjdGl2ZS5idXR0b24sXG4udWkudmlvbGV0LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTYyNmJmO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNjQzNUM5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy52aW9sZXQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM1ODI5YmIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzRmMjBiNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnZpb2xldC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM1NjI2YmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MDJhYTEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy52aW9sZXQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNTAyYWExIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTAyYWExICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy52aW9sZXQuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0EyOTFGQiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EyOTFGQjtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE3M2ZmO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3ZDY0ZmY7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE3M2ZmO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc4NjBmOTtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM4YTczZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjN2Q2NGZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTI5MUZCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzhhNzNmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM3ODYwZjkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbi8qLS0tIFB1cnBsZSAtLS0qL1xuLnVpLnB1cnBsZS5idXR0b25zIC5idXR0b24sXG4udWkucHVycGxlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5wdXJwbGUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5wdXJwbGUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk2MjdiYTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnB1cnBsZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucHVycGxlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ZjFlYjQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5wdXJwbGUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MjI5OWY7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucHVycGxlLmFjdGl2ZS5idXR0b24sXG4udWkucHVycGxlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTcyNGJlO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTMzM0M4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5NjI3YmEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzhmMWViNCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnB1cnBsZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5NzI0YmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MjI5OWYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjODIyOTlmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODIyOTlmICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wdXJwbGUuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0RDNzNGRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDNzNGRjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDY1YWZmO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMjRhZmY7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDY1YWZmO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmNDBmZjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkNjVhZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZDI0YWZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREM3M0ZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2Q2NWFmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjZjQwZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFJlZCAtLS0qL1xuLnVpLnJlZC5idXR0b25zIC5idXR0b24sXG4udWkucmVkLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4Mjg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5yZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkucmVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5yZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwMTkxOTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnJlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucmVkLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYTEwMTA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMjFlMWU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5yZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5yZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucmVkLmFjdGl2ZS5idXR0b24sXG4udWkucmVkLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDQxNTE1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucmVkLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjREIyODI4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5yZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkMDE5MTkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnJlZC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2NhMTAxMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2QwMTkxOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnJlZC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkNDE1MTUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNiMjFlMWUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYjIxZTFlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYjIxZTFlICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5yZWQuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0ZGNjk1RSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNjk1RTtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MTQ0O1xufVxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjQzMzU7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MTQ0O1xufVxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMzkyYjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjUxNDQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY0MzM1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2OTVFICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNTE0NCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjM5MmIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbi8qLS0tIFRlYWwgLS0tKi9cbi51aS50ZWFsLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS50ZWFsLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS50ZWFsLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnRlYWwuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWM5NTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnRlYWwuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOGM4NjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS50ZWFsLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MjdjO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGVhbC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnRlYWwuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkudGVhbC5hY3RpdmUuYnV0dG9uLFxuLnVpLnRlYWwuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDljOTU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMudGVhbC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzAwQjVBRCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMDljOTUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy50ZWFsLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDA4Yzg2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnRlYWwuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDA5Yzk1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA4MjdjICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDA4MjdjIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA4MjdjICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy50ZWFsLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzZERkZGRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZERkZGRjtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTRmZmZmO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0ZmZmZjtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ZmZmZjtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhZmZmZjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM1NGZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2REZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNDRmZmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzU0ZmZmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMzYWZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2REZGRkYgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9saXZlIC0tLSovXG4udWkub2xpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm9saXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5vbGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5vbGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkub2xpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E3YmQwZDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5vbGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTBiNjA1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhkOWUxMztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9saXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkub2xpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkub2xpdmUuYWN0aXZlLmJ1dHRvbixcbi51aS5vbGl2ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FhYzEwOTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNCNUNDMTggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNhN2JkMGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNhMGI2MDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLm9saXZlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2FhYzEwOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzhkOWUxMyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOGQ5ZTEzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOGQ5ZTEzICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5vbGl2ZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0Q5RTc3OCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q5RTc3ODtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZWE1Yztcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhZWY0Nztcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGFlZDU5O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZGRmNGQ7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZDhlYTVjIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2RhZWY0NyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q5RTc3OCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkYWVkNTkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjY2RkZjRkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBZZWxsb3cgLS0tKi9cbi51aS55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnllbGxvdy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkueWVsbG93LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkueWVsbG93LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYWFlMDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnllbGxvdy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGFhMzAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2Q5OTAzO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkueWVsbG93LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkueWVsbG93LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnllbGxvdy5hY3RpdmUuYnV0dG9uLFxuLnVpLnllbGxvdy5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhYWUwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnllbGxvdy5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0ZCQkQwOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZWFhZTAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkYWEzMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy55ZWxsb3cuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZWFhZTAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjY2Q5OTAzICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2NkOTkwMyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2NkOTkwMyAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMueWVsbG93LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRkUyMUYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkUyMUY7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZjA1O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWQ1MDA7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZjA1O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2QwMDtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmRmMDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZjVkNTAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZFMjFGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZGYwNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNlYmNkMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFByaW1hcnlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIFN0YW5kYXJkIC0tLSovXG4udWkucHJpbWFyeS5idXR0b25zIC5idXR0b24sXG4udWkucHJpbWFyeS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NUQwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkucHJpbWFyeS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5wcmltYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNjc4YzI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5wcmltYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDcxYmI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkucHJpbWFyeS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhNjlhNDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnByaW1hcnkuYWN0aXZlLmJ1dHRvbixcbi51aS5wcmltYXJ5LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI3OWM2O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyMTg1RDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMTg1RDAgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTY3OGMyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTY3OGMyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucHJpbWFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzBkNzFiYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE2NzhjMiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5wcmltYXJ5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzEyNzljNiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFhNjlhNCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzFhNjlhNCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFhNjlhNCAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucHJpbWFyeS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM1NEM4RkYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NEM4RkY7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYWMwZmY7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmJiYmZmO1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FjMGZmO1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFiOGZmO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzNhYzBmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0QzhGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMyYmJiZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NEM4RkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjM2FjMGZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTRDOEZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzIxYjhmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0QzhGRiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTZWNvbmRhcnlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5zZWNvbmRhcnkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnNlY29uZGFyeS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjcyOTJhO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5zZWNvbmRhcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJlMzAzMjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnNlY29uZGFyeS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0MzYzNztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnNlY29uZGFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnNlY29uZGFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkuYWN0aXZlLmJ1dHRvbixcbi51aS5zZWNvbmRhcnkuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzI5MmE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxQjFDMUQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzI3MjkyYSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzI3MjkyYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMmUzMDMyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjcyOTJhICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzI3MjkyYSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzM0MzYzNyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMzNDM2MzcgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzNDM2MzcgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnByaW1hcnkuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzU0NTQ1NCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0NTQ1NDtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ODY4Njg7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZlNmU2ZTtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM2MTYxNjEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNjg2ODY4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzYxNjE2MSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM2ZTZlNmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tXG4gICAgUG9zaXRpdmVcbi0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgKi9cbi51aS5wb3NpdGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkucG9zaXRpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5wb3NpdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTZhYjM5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZWE0MzI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk4ZjM1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5wb3NpdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5wb3NpdGl2ZS5hY3RpdmUuYnV0dG9uLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTNhZTM4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzIxQkE0NSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzE2YWIzOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE2YWIzOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzBlYTQzMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE2YWIzOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMucG9zaXRpdmUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTNhZTM4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTk4ZjM1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxOThmMzUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxOThmMzUgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnByaW1hcnkuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLVxuICAgICBOZWdhdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdGFuZGFyZCAqL1xuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5uZWdhdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkubmVnYXRpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMDE5MTk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkubmVnYXRpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhMTAxMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkubmVnYXRpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMjFlMWU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLm5lZ2F0aXZlLmFjdGl2ZS5idXR0b24sXG4udWkubmVnYXRpdmUuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNDE1MTU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjREIyODI4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZDAxOTE5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjY2ExMDEwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5uZWdhdGl2ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNkNDE1MTUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNiMjFlMWUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2IyMWUxZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2IyMWUxZSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucHJpbWFyeS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmb250LXNpemU6IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW46IDBlbSAwLjI1ZW0gMGVtIDBlbTtcbn1cbi51aS5idXR0b25zOm5vdCguYmFzaWMpOm5vdCguaW52ZXJ0ZWQpIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIENsZWFyZml4ICovXG4udWkuYnV0dG9uczphZnRlciB7XG4gIGNvbnRlbnQ6IFwiLlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogU3RhbmRhcmQgR3JvdXAgKi9cbi51aS5idXR0b25zIC5idXR0b24ge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWFyZ2luOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHg7XG59XG4udWkuYnV0dG9ucyA+IC51aS5idXR0b246bm90KC5iYXNpYyk6bm90KC5pbnZlcnRlZCksXG4udWkuYnV0dG9uczpub3QoLmJhc2ljKTpub3QoLmludmVydGVkKSA+IC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQgaW5zZXQsIDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLyogVmVydGljYWwgIFN0eWxlICovXG4udWkudmVydGljYWwuYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnVpLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG59XG4udWkudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi51aS5zaWdudXAuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5zaWdudXAuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2YWIzOTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnNpZ251cC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGVhNDMyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuc2lnbnVwLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk4ZjM1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLSBTZWFyY2ggaWNvbiBidXR0b24gY29sb3IgLS0tKi9cbi51aS5zZWFyY2guYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiODI3MztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5zZWFyY2guYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjg1NjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnNlYXJjaC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1YjQ2O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuc2VhcmNoLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE1NjQxO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiogQ2l0YXRpb24gbGFuZGluZyBwYWdlICovXG4uY29weS5idXR0b24ge1xuICBtYXJnaW4tcmlnaHQ6IDBweDtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIENvbnRhaW5lclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRhaW5lclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pbmltdW0gR3V0dGVyIGlzIHVzZWQgdG8gZGV0ZXJtaW5lICB0aGUgbWF4aW11bSBjb250YWluZXIgd2lkdGggZm9yIGEgZ2l2ZW4gZGV2aWNlICovXG4vKiBEZXZpY2VzICovXG4vKiBDb3VwbGluZyAoQWRkIE5lZ2F0aXZlIE1hcmdpbiB0byBjb250YWluZXIgc2l6ZSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUZXh0ICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGFpbmVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQWxsIFNpemVzICovXG4udWkuY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS52ZXJ5LnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFRhYmxldCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiA3MjNweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIDcyM3B4ICArICAycmVtICkgIWltcG9ydGFudDtcbiAgfVxuICAudWkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIDcyM3B4ICArICAzcmVtICkgIWltcG9ydGFudDtcbiAgfVxuICAudWkudmVyeS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyggNzIzcHggICsgIDVyZW0gKSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBTbWFsbCBNb25pdG9yICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiA5MzNweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIDkzM3B4ICArICAycmVtICkgIWltcG9ydGFudDtcbiAgfVxuICAudWkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIDkzM3B4ICArICAzcmVtICkgIWltcG9ydGFudDtcbiAgfVxuICAudWkudmVyeS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyggOTMzcHggICsgIDVyZW0gKSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBMYXJnZSBNb25pdG9yICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTEyN3B4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyggMTEyN3B4ICArICAycmVtICkgIWltcG9ydGFudDtcbiAgfVxuICAudWkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIDExMjdweCAgKyAgM3JlbSApICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIDExMjdweCAgKyAgNXJlbSApICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUZXh0IENvbnRhaW5lciAqL1xuLnVpLnRleHQuY29udGFpbmVyIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiAgbWF4LXdpZHRoOiA3MDBweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLnVpLnRleHQuY29udGFpbmVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLyogRmx1aWQgKi9cbi51aS5mbHVpZC5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udWkuanVzdGlmaWVkLmNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIGh5cGhlbnM6IGF1dG87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuY29udGFpbmVyLmNvdmVyLXBhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NUQwO1xuICBoZWlnaHQ6IDIwZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkuY29udGFpbmVyLmNvdmVyLXBhZ2UgPiAudWkuY29udGFpbmVyIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5jb250YWluZXIuY292ZXItcGFnZSAudWkuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5icmVhZGNydW1icy5jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogMTRweDtcbiAgcGFkZGluZy1ib3R0b206IDE0cHg7XG4gIG1hcmdpbi10b3A6IC0xNXB4O1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRGl2aWRlclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERpdmlkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUZXh0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBIb3Jpem9udGFsIC8gVmVydGljYWwgKi9cbi8qIEludmVydGVkICovXG4vKiBTZWN0aW9uICovXG4vKiBTaXplcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaXZpZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmRpdmlkZXIge1xuICBtYXJnaW46IDFyZW0gMHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGhlaWdodDogMGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVyOm5vdCgudmVydGljYWwpOm5vdCguaG9yaXpvbnRhbCkge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFsbG93IGRpdmlkZXIgYmV0d2VlbiBlYWNoIGNvbHVtbiByb3cgKi9cbi51aS5ncmlkID4gLmNvbHVtbiArIC5kaXZpZGVyLFxuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiArIC5kaXZpZGVyIHtcbiAgbGVmdDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEhvcml6b250YWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAnJztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YmVmb3JlLFxuLnVpLmhvcml6b250YWwuZGl2aWRlcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnVpLmhvcml6b250YWwuZGl2aWRlcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxZW0gdG9wIDUwJTtcbn1cbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDFlbSB0b3AgNTAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFZlcnRpY2FsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnZlcnRpY2FsLmRpdmlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogMHJlbTtcbiAgcGFkZGluZzogMGVtO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiA1MCU7XG4gIGxpbmUtaGVpZ2h0OiAwZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgY29udGVudDogJyc7XG4gIHotaW5kZXg6IDM7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gIDFyZW0gKTtcbn1cbi51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSB7XG4gIHRvcDogLTEwMCU7XG59XG4udWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwcHg7XG59XG4vKiBJbnNpZGUgZ3JpZCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXIsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46ICcnO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogNTAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxZW0gdG9wIDUwJTtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDFlbSB0b3AgNTAlO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZXIgPiAuaWNvbiB7XG4gIG1hcmdpbjogMHJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBIaWRkZW5cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGlkZGVuLmRpdmlkZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWkuaGlkZGVuLmRpdmlkZXI6YmVmb3JlLFxuLnVpLmhpZGRlbi5kaXZpZGVyOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVyLmludmVydGVkLFxuLnVpLnZlcnRpY2FsLmludmVydGVkLmRpdmlkZXIsXG4udWkuaG9yaXpvbnRhbC5pbnZlcnRlZC5kaXZpZGVyIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuZGl2aWRlci5pbnZlcnRlZCxcbi51aS5kaXZpZGVyLmludmVydGVkOmFmdGVyLFxuLnVpLmRpdmlkZXIuaW52ZXJ0ZWQ6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSAhaW1wb3J0YW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXR0ZWQuZGl2aWRlciB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENsZWFyaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNsZWFyaW5nLmRpdmlkZXIge1xuICBjbGVhcjogYm90aDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlY3Rpb24uZGl2aWRlciB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZXIge1xuICBmb250LXNpemU6IDFyZW07XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBGbGFnXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRmxhZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZsYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pLmZsYWc6bm90KC5pY29uKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDExcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBTcHJpdGUgKi9cbmkuZmxhZzpub3QoLmljb24pOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ltYWdlcy9mbGFncy5wbmdcIikgbm8tcmVwZWF0IC0xMDhweCAtMTk3NnB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxMXB4O1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gSGVhZGVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSGVhZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3ViIEhlYWRpbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBMYWJlbCAqL1xuLyogQ29udGVudCAqL1xuLyogUGFyYWdyYXBoIGFmdGVyIEhlYWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgKi9cbi8qIFN1YiBIZWFkZXIgKi9cbi8qIEljb24gSGVhZGVyICovXG4vKiBObyBMaW5lIEhlaWdodCBPZmZzZXQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIEJsb2NrICovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTdGFuZGFyZCAqL1xuLnVpLmhlYWRlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiBjYWxjKDJyZW0gLSAgMC4xNDI4NTcxNGVtICkgMGVtIDFyZW07XG4gIHBhZGRpbmc6IDBlbSAwZW07XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yODU3MTQyOWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaGVhZGVyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogLTAuMTQyODU3MTRlbTtcbn1cbi51aS5oZWFkZXI6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN1YiBIZWFkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgPiAuaWNvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIG9wYWNpdHk6IDE7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIHBhZGRpbmctdG9wOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBXaXRoIFRleHQgTm9kZSAqL1xuLnVpLmhlYWRlciAuaWNvbjpvbmx5LWNoaWxkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwZW07XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBJbWFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciA+IC5pbWFnZTpub3QoLmljb24pLFxuLnVpLmhlYWRlciA+IGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogMC4xNDI4NTcxNGVtO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5oZWFkZXIgPiAuaW1hZ2U6bm90KC5pY29uKTpvbmx5LWNoaWxkLFxuLnVpLmhlYWRlciA+IGltZzpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciAuY29udGVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIEFmdGVyIEltYWdlICovXG4udWkuaGVhZGVyID4gaW1nICsgLmNvbnRlbnQsXG4udWkuaGVhZGVyID4gLmltYWdlICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBBZnRlciBJY29uICovXG4udWkuaGVhZGVyID4gLmljb24gKyAuY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiBMb29zZSBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgLnVpLmxhYmVsIHtcbiAgZm9udC1zaXplOiAnJztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIFBvc2l0aW9uaW5nICovXG4udWkuaGVhZGVyICsgcCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbmgxLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cbmgyLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbmgzLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbmg0LnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4wNzE0Mjg1N3JlbTtcbn1cbmg1LnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi8qIFN1YiBIZWFkZXIgKi9cbmgxLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbmgyLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbmgzLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbmg0LnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbmg1LnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiBDb250ZW50IEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaHVnZS5oZWFkZXIge1xuICBtaW4taGVpZ2h0OiAxZW07XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLnVpLmxhcmdlLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MWVtO1xufVxuLnVpLm1lZGl1bS5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi51aS5zbWFsbC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMDcxNDI4NTdlbTtcbn1cbi51aS50aW55LmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyogU3ViIEhlYWRlciAqL1xuLnVpLmh1Z2UuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmxhcmdlLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkuc21hbGwuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLnRpbnkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU3ViIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3ViLmhlYWRlciB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xNDI4NTcxNHJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogJyc7XG59XG4udWkuc21hbGwuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbn1cbi51aS5sYXJnZS5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkuaHVnZS5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmljb24uaGVhZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMnJlbSAwZW0gMXJlbTtcbn1cbi51aS5pY29uLmhlYWRlcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuaWNvbi5oZWFkZXI6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuaWNvbi5oZWFkZXIgLmljb24ge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAwZW07XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBtYXJnaW46IDBlbSBhdXRvIDAuNXJlbTtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5pY29uLmhlYWRlciAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkuaWNvbi5oZWFkZXIgLmNpcmN1bGFyLmljb24ge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi51aS5pY29uLmhlYWRlciAuc3F1YXJlLmljb24ge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi51aS5ibG9jay5pY29uLmhlYWRlciAuaWNvbiB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5pY29uLmhlYWRlci5hbGlnbmVkIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmRpc2FibGVkLmhlYWRlciB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmhlYWRlciB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG59XG4udWkuaW52ZXJ0ZWQuYXR0YWNoZWQuaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogIzU0NTQ1NCBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnVpLmludmVydGVkLmJsb2NrLmhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICM1NDU0NTQgbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuMDUpKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC5ibG9jay5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBSZWQgLS0tKi9cbi51aS5yZWQuaGVhZGVyIHtcbiAgY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbmEudWkucmVkLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG59XG4udWkucmVkLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjREIyODI4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5yZWQuaGVhZGVyIHtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQucmVkLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmY1MTQ0ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPcmFuZ2UgLS0tKi9cbi51aS5vcmFuZ2UuaGVhZGVyIHtcbiAgY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbn1cbmEudWkub3JhbmdlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZjI2MjAyICFpbXBvcnRhbnQ7XG59XG4udWkub3JhbmdlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRjI3MTFDO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5vcmFuZ2UuaGVhZGVyIHtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQub3JhbmdlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmY3NzAxICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPbGl2ZSAtLS0qL1xuLnVpLm9saXZlLmhlYWRlciB7XG4gIGNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG59XG5hLnVpLm9saXZlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG59XG4udWkub2xpdmUuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNCNUNDMTg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLm9saXZlLmhlYWRlciB7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLm9saXZlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZDhlYTVjICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBZZWxsb3cgLS0tKi9cbi51aS55ZWxsb3cuaGVhZGVyIHtcbiAgY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbn1cbmEudWkueWVsbG93LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG59XG4udWkueWVsbG93LmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRkJCRDA4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC55ZWxsb3cuaGVhZGVyIHtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQueWVsbG93LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmZkZjA1ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmVlbiAtLS0qL1xuLnVpLmdyZWVuLmhlYWRlciB7XG4gIGNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmdyZWVuLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JlZW4uZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMyMUJBNDU7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmdyZWVuLmhlYWRlciB7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLmdyZWVuLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMjJiZTM0ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBUZWFsIC0tLSovXG4udWkudGVhbC5oZWFkZXIge1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuYS51aS50ZWFsLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG59XG4udWkudGVhbC5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzAwQjVBRDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudGVhbC5oZWFkZXIge1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC50ZWFsLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjNTRmZmZmICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCbHVlIC0tLSovXG4udWkuYmx1ZS5oZWFkZXIge1xuICBjb2xvcjogIzIxODVEMCAhaW1wb3J0YW50O1xufVxuYS51aS5ibHVlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMTY3OGMyICFpbXBvcnRhbnQ7XG59XG4udWkuYmx1ZS5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzIxODVEMDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYmx1ZS5oZWFkZXIge1xuICBjb2xvcjogIzU0QzhGRiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5ibHVlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjM2FjMGZmICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBWaW9sZXQgLS0tKi9cbi51aS52aW9sZXQuaGVhZGVyIHtcbiAgY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbmEudWkudmlvbGV0LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG59XG4udWkudmlvbGV0LmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNjQzNUM5O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC52aW9sZXQuaGVhZGVyIHtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQudmlvbGV0LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjOGE3M2ZmICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQdXJwbGUgLS0tKi9cbi51aS5wdXJwbGUuaGVhZGVyIHtcbiAgY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbn1cbmEudWkucHVycGxlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG59XG4udWkucHVycGxlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjQTMzM0M4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5wdXJwbGUuaGVhZGVyIHtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQucHVycGxlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZDY1YWZmICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQaW5rIC0tLSovXG4udWkucGluay5oZWFkZXIge1xuICBjb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuYS51aS5waW5rLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG59XG4udWkucGluay5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0UwMzk5Nztcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucGluay5oZWFkZXIge1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5waW5rLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmY3NGQ4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCcm93biAtLS0qL1xuLnVpLmJyb3duLmhlYWRlciB7XG4gIGNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG5hLnVpLmJyb3duLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG59XG4udWkuYnJvd24uZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNBNTY3M0Y7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmJyb3duLmhlYWRlciB7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLmJyb3duLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjYzg2ZjExICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmV5IC0tLSovXG4udWkuZ3JleS5oZWFkZXIge1xuICBjb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xufVxuYS51aS5ncmV5LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JleS5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzc2NzY3Njtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuZ3JleS5oZWFkZXIge1xuICBjb2xvcjogI0RDRERERSAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5ncmV5LmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjY2ZkMGQyICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGVmdC5hbGlnbmVkLmhlYWRlciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkucmlnaHQuYWxpZ25lZC5oZWFkZXIge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi51aS5jZW50ZXJlZC5oZWFkZXIsXG4udWkuY2VudGVyLmFsaWduZWQuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLmp1c3RpZmllZC5oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuLnVpLmp1c3RpZmllZC5oZWFkZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGVkLmhlYWRlcixcbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uaGVhZGVyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLmhlYWRlciB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXR0ZWQuaGVhZGVyIHtcbiAgcGFkZGluZzogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXZpZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkaW5nLmhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5kaXZpZGluZy5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMC4yMTQyODU3MXJlbTtcbn1cbi51aS5kaXZpZGluZy5oZWFkZXIgLmljb24ge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkuaW52ZXJ0ZWQuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEJsb2NrXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmxvY2suaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgcGFkZGluZzogMC43ODU3MTQyOXJlbSAxcmVtO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLmJsb2NrLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5ibG9jay5oZWFkZXI6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpOm5vdChoNikge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmh1Z2UuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hdHRhY2hlZC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5cmVtIDFyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkuYXR0YWNoZWQuYmxvY2suaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbn1cbi51aS5hdHRhY2hlZDpub3QoLnRvcCk6bm90KC5ib3R0b20pLmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkudG9wLmF0dGFjaGVkLmhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLmhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW07XG59XG4vKiBBdHRhY2hlZCBTaXplcyAqL1xuLnVpLnRpbnkuYXR0YWNoZWQuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2ZW07XG59XG4udWkuc21hbGwuYXR0YWNoZWQuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkuYXR0YWNoZWQuaGVhZGVyOm5vdChoMSk6bm90KGgyKTpub3QoaDMpOm5vdChoNCk6bm90KGg1KTpub3QoaDYpIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkubGFyZ2UuYXR0YWNoZWQuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0ZW07XG59XG4udWkuaHVnZS5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXppbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXI6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpOm5vdChoNikge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5yZXNldC1wYXNzd29yZC5oZWFkZXIge1xuICBtYXJnaW46IDQwcHggMDtcbn1cbi51aS5sb2dpbi5oZWFkZXIge1xuICBtYXJnaW46IDQwcHggMDtcbn1cbi51aS5sb2dpbi5zZWdtZW50IHtcbiAgcGFkZGluZzogMTVweCA0MHB4IDQwcHggNDBweDtcbn1cbi50aGVtZS5oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLnVpLmhlYWRlcjpub3QoaDEpOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSk6bm90KGg2KSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gSWNvblxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJY29uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9udCBGaWxlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiBPcHRpb25hbCBGaWxlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE91dGxpbmUgSWNvbnMgKi9cbi8qIEJyYW5kIEljb25zICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEZWZpbml0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBWYXJpYWJsZXMgKi9cbi8qIFZhcmlhdGlvbnMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEljb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb250IEZpbGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuIE9wdGlvbmFsIEZpbGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogT3V0bGluZSBJY29ucyAqL1xuLyogQnJhbmQgSWNvbnMgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlZmluaXRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uIFZhcmlhYmxlcyAqL1xuLyogVmFyaWF0aW9ucyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJY29uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSWNvbnMnO1xuICBzcmM6IHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ZvbnRzL2ljb25zLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9mb250cy9pY29ucy5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKFwiLi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZm9udHMvaWNvbnMud29mZjJcIikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoXCIuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9mb250cy9pY29ucy53b2ZmXCIpIGZvcm1hdCgnd29mZicpLCB1cmwoXCIuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9mb250cy9pY29ucy50dGZcIikgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoXCIuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9mb250cy9pY29ucy5zdmcjaWNvbnNcIikgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbmkuaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luOiAwZW0gMC4yNXJlbSAwZW0gMGVtO1xuICB3aWR0aDogMS4xOGVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZm9udC1mYW1pbHk6ICdJY29ucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5pLmljb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuaS5pY29uLmxvYWRpbmcge1xuICBoZWlnaHQ6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGFuaW1hdGlvbjogaWNvbi1sb2FkaW5nIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgaWNvbi1sb2FkaW5nIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaS5pY29uLmhvdmVyIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuaS5pY29uLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbmkuZW1waGFzaXplZC5pY29uIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuaS5kaXNhYmxlZC5pY29uIHtcbiAgb3BhY2l0eTogMC40NSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkuZml0dGVkLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgTGlua1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5saW5rLmljb24sXG5pLmxpbmsuaWNvbnMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuODtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG5pLmxpbmsuaWNvbjpob3ZlcixcbmkubGluay5pY29uczpob3ZlciB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkuY2lyY3VsYXIuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMGVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNWVtIDBlbSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwLjFlbSByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XG4gIHdpZHRoOiAyZW0gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyZW0gIWltcG9ydGFudDtcbn1cbmkuY2lyY3VsYXIuaW52ZXJ0ZWQuaWNvbiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRmxpcHBlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5mbGlwcGVkLmljb24sXG5pLmhvcml6b250YWxseS5mbGlwcGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbn1cbmkudmVydGljYWxseS5mbGlwcGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUm90YXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5yb3RhdGVkLmljb24sXG5pLnJpZ2h0LnJvdGF0ZWQuaWNvbixcbmkuY2xvY2t3aXNlLnJvdGF0ZWQuaWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbmkubGVmdC5yb3RhdGVkLmljb24sXG5pLmNvdW50ZXJjbG9ja3dpc2Uucm90YXRlZC5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkuYm9yZGVyZWQuaWNvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHdpZHRoOiAyZW07XG4gIGhlaWdodDogMmVtO1xuICBwYWRkaW5nOiAwLjVlbSAwZW0gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMC4xZW0gcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xufVxuaS5ib3JkZXJlZC5pbnZlcnRlZC5pY29uIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgU2hhcGVzICovXG5pLmludmVydGVkLmJvcmRlcmVkLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmljb24ge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG5pLnJlZC5pY29uIHtcbiAgY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQucmVkLmljb24ge1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5yZWQuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIucmVkLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBPcmFuZ2UgKi9cbmkub3JhbmdlLmljb24ge1xuICBjb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5vcmFuZ2UuaWNvbiB7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLm9yYW5nZS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5vcmFuZ2UuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFllbGxvdyAqL1xuaS55ZWxsb3cuaWNvbiB7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnllbGxvdy5pY29uIHtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQueWVsbG93Lmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnllbGxvdy5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogT2xpdmUgKi9cbmkub2xpdmUuaWNvbiB7XG4gIGNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLm9saXZlLmljb24ge1xuICBjb2xvcjogI0Q5RTc3OCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5vbGl2ZS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5vbGl2ZS5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogR3JlZW4gKi9cbmkuZ3JlZW4uaWNvbiB7XG4gIGNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmdyZWVuLmljb24ge1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5ncmVlbi5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5ncmVlbi5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogVGVhbCAqL1xuaS50ZWFsLmljb24ge1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC50ZWFsLmljb24ge1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC50ZWFsLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnRlYWwuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJsdWUgKi9cbmkuYmx1ZS5pY29uIHtcbiAgY29sb3I6ICMyMTg1RDAgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYmx1ZS5pY29uIHtcbiAgY29sb3I6ICM1NEM4RkYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuYmx1ZS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5ibHVlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NUQwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBWaW9sZXQgKi9cbmkudmlvbGV0Lmljb24ge1xuICBjb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC52aW9sZXQuaWNvbiB7XG4gIGNvbG9yOiAjQTI5MUZCICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnZpb2xldC5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci52aW9sZXQuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFB1cnBsZSAqL1xuaS5wdXJwbGUuaWNvbiB7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnB1cnBsZS5pY29uIHtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQucHVycGxlLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnB1cnBsZS5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogUGluayAqL1xuaS5waW5rLmljb24ge1xuICBjb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5waW5rLmljb24ge1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5waW5rLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnBpbmsuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJyb3duICovXG5pLmJyb3duLmljb24ge1xuICBjb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5icm93bi5pY29uIHtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuYnJvd24uaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuYnJvd24uaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEdyZXkgKi9cbmkuZ3JleS5pY29uIHtcbiAgY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuZ3JleS5pY29uIHtcbiAgY29sb3I6ICNEQ0REREUgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuZ3JleS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5ncmV5Lmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBCbGFjayAqL1xuaS5ibGFjay5pY29uIHtcbiAgY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYmxhY2suaWNvbiB7XG4gIGNvbG9yOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLmJsYWNrLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmJsYWNrLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmkubWluaS5pY29uLFxuaS5taW5pLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC40ZW07XG59XG5pLnRpbnkuaWNvbixcbmkudGlueS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDAuNWVtO1xufVxuaS5zbWFsbC5pY29uLFxuaS5zbWFsbC5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDAuNzVlbTtcbn1cbmkuaWNvbixcbmkuaWNvbnMge1xuICBmb250LXNpemU6IDFlbTtcbn1cbmkubGFyZ2UuaWNvbixcbmkubGFyZ2UuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbn1cbmkuYmlnLmljb24sXG5pLmJpZy5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDJlbTtcbn1cbmkuaHVnZS5pY29uLFxuaS5odWdlLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogNGVtO1xufVxuaS5tYXNzaXZlLmljb24sXG5pLm1hc3NpdmUuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiA4ZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgR3JvdXBzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaS5pY29ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbmkuaWNvbnMgLmljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICBtYXJnaW46IDBlbTtcbiAgbWFyZ2luOiAwO1xufVxuaS5pY29ucyAuaWNvbjpmaXJzdC1jaGlsZCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xufVxuLyogQ29ybmVyIEljb24gKi9cbmkuaWNvbnMgLmNvcm5lci5pY29uIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC40NWVtO1xuICB0ZXh0LXNoYWRvdzogLTFweCAtMXB4IDAgI0ZGRkZGRiwgMXB4IC0xcHggMCAjRkZGRkZGLCAtMXB4IDFweCAwICNGRkZGRkYsIDFweCAxcHggMCAjRkZGRkZGO1xufVxuaS5pY29ucyAudG9wLnJpZ2h0LmNvcm5lci5pY29uIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYm90dG9tOiBhdXRvO1xufVxuaS5pY29ucyAudG9wLmxlZnQuY29ybmVyLmljb24ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG59XG5pLmljb25zIC5ib3R0b20ubGVmdC5jb3JuZXIuaWNvbiB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogMDtcbn1cbmkuaWNvbnMgLmJvdHRvbS5yaWdodC5jb3JuZXIuaWNvbiB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cbmkuaWNvbnMgLmludmVydGVkLmNvcm5lci5pY29uIHtcbiAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICMxQjFDMUQsIDFweCAtMXB4IDAgIzFCMUMxRCwgLTFweCAxcHggMCAjMUIxQzFELCAxcHggMXB4IDAgIzFCMUMxRDtcbn1cbi8qXG4gKiBGb250IEF3ZXNvbWUgNS4wLjggYnkgQGZvbnRhd2Vzb21lIC0gaHR0cDovL2ZvbnRhd2Vzb21lLmlvIC0gQGZvbnRhd2Vzb21lXG4gKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZSAoSWNvbnM6IENDIEJZIDQuMCBMaWNlbnNlLCBGb250czogU0lMIE9GTCAxLjEgTGljZW5zZSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuU2VtYW50aWMtVUkgaW50ZWdyYXRpb24gb2YgZm9udC1hd2Vzb21lIDpcblxuLy8vY2xhc3MgbmFtZXMgYXJlIHNlcGFyYXRlZFxuaS5pY29uLmNpcmNsZSA9PiBpLmljb24uY2lyY2xlXG5pLmljb24uY2lyY2xlLW8gPT4gaS5pY29uLmNpcmNsZS5vdXRsaW5lXG5cbi8vYWJicmV2aWF0aW9uIGFyZSByZXBsYWNlZCBieSBmdWxsIGxldHRlcnM6XG5pLmljb24uZWxsaXBzaXMtaCA9PiBpLmljb24uZWxsaXBzaXMuaG9yaXpvbnRhbFxuaS5pY29uLmVsbGlwc2lzLXYgPT4gaS5pY29uLmVsbGlwc2lzLnZlcnRpY2FsXG4uYWxwaGEgPT4gLmkuaWNvbi5hbHBoYWJldFxuLmFzYyA9PiAuaS5pY29uLmFzY2VuZGluZ1xuLmRlc2MgPT4gLmkuaWNvbi5kZXNjZW5kaW5nXG4uYWx0ID0+LmFsdGVybmF0ZVxuXG5BU0NJSSBvcmRlciBpcyBjb25zZXJ2ZWQgZm9yIGVhc2llciBtYWludGVuYW5jZS5cblxuSWNvbnMgdGhhdCBvbmx5IGhhdmUgb25lIHN0eWxlICdvdXRsaW5lJywgJ3NxdWFyZScgZXRjIGRvIG5vdCByZXF1aXJlIHRoaXMgY2xhc3NcbmZvciBpbnN0YW5jZSBgbGVtb24gaWNvbmAgbm90IGBsZW1vbiBvdXRsaW5lIGljb25gIHNpbmNlIHRoZXJlIGlzIG9ubHkgb25lIGxlbW9uXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSWNvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBEZXByZWNhdGVkICpJbi9PdXQgTmFtaW5nIENvbmZsaWN0KSAqL1xuaS5pY29uLmxpbmtlZGluLmluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUxXCI7XG59XG5pLmljb24uem9vbS5pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuaS5pY29uLnpvb20ub3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEwXCI7XG59XG5pLmljb24uc2lnbi5pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNlwiO1xufVxuaS5pY29uLmluLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMThcIjtcbn1cbmkuaWNvbi5sb2cub3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY1XCI7XG59XG5pLmljb24uc2lnbi5vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjVcIjtcbn1cbi8qIEljb25zICovXG5pLmljb24uXFwzNSAwMHB4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZlXCI7XG59XG5pLmljb24uYWNjZXNzaWJsZS5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY4XCI7XG59XG5pLmljb24uYWNjdXNvZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjlcIjtcbn1cbmkuaWNvbi5hZGRyZXNzLmJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjlcIjtcbn1cbmkuaWNvbi5hZGRyZXNzLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmJcIjtcbn1cbmkuaWNvbi5hZGp1c3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDJcIjtcbn1cbmkuaWNvbi5hZG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzBcIjtcbn1cbmkuaWNvbi5hZHZlcnNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2YVwiO1xufVxuaS5pY29uLmFmZmlsaWF0ZXRoZW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZiXCI7XG59XG5pLmljb24uYWxnb2xpYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2Y1wiO1xufVxuaS5pY29uLmFsaWduLmNlbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzN1wiO1xufVxuaS5pY29uLmFsaWduLmp1c3RpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzlcIjtcbn1cbmkuaWNvbi5hbGlnbi5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM2XCI7XG59XG5pLmljb24uYWxpZ24ucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzhcIjtcbn1cbmkuaWNvbi5hbWF6b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzBcIjtcbn1cbmkuaWNvbi5hbWF6b24ucGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJjXCI7XG59XG5pLmljb24uYW1idWxhbmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY5XCI7XG59XG5pLmljb24uYW1lcmljYW4uc2lnbi5sYW5ndWFnZS5pbnRlcnByZXRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTNcIjtcbn1cbmkuaWNvbi5hbWlsaWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmRcIjtcbn1cbmkuaWNvbi5hbmNob3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2RcIjtcbn1cbmkuaWNvbi5hbmRyb2lkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdiXCI7XG59XG5pLmljb24uYW5nZWxsaXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA5XCI7XG59XG5pLmljb24uYW5nbGUuZG91YmxlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDNcIjtcbn1cbmkuaWNvbi5hbmdsZS5kb3VibGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMFwiO1xufVxuaS5pY29uLmFuZ2xlLmRvdWJsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMVwiO1xufVxuaS5pY29uLmFuZ2xlLmRvdWJsZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMlwiO1xufVxuaS5pY29uLmFuZ2xlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDdcIjtcbn1cbmkuaWNvbi5hbmdsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA0XCI7XG59XG5pLmljb24uYW5nbGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDVcIjtcbn1cbmkuaWNvbi5hbmdsZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNlwiO1xufVxuaS5pY29uLmFuZ3J5Y3JlYXRpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmVcIjtcbn1cbmkuaWNvbi5hbmd1bGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDIwXCI7XG59XG5pLmljb24uYXBwLnN0b3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZmXCI7XG59XG5pLmljb24uYXBwLnN0b3JlLmlvczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3MFwiO1xufVxuaS5pY29uLmFwcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzcxXCI7XG59XG5pLmljb24uYXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzlcIjtcbn1cbmkuaWNvbi5hcHBsZS5wYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTVcIjtcbn1cbmkuaWNvbi5hcmNoaXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg3XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU4XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU5XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1YVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWJcIjtcbn1cbmkuaWNvbi5hcnJvdy5jaXJjbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhYlwiO1xufVxuaS5pY29uLmFycm93LmNpcmNsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE4XCI7XG59XG5pLmljb24uYXJyb3cuY2lyY2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE5XCI7XG59XG5pLmljb24uYXJyb3cuY2lyY2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFhXCI7XG59XG5pLmljb24uYXJyb3cuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2M1wiO1xufVxuaS5pY29uLmFycm93LmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjBcIjtcbn1cbmkuaWNvbi5hcnJvdy5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MVwiO1xufVxuaS5pY29uLmFycm93LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYyXCI7XG59XG5pLmljb24uYXJyb3dzLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMlwiO1xufVxuaS5pY29uLmFycm93cy5hbHRlcm5hdGUuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzN1wiO1xufVxuaS5pY29uLmFycm93cy5hbHRlcm5hdGUudmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzhcIjtcbn1cbmkuaWNvbi5hc3Npc3RpdmUubGlzdGVuaW5nLnN5c3RlbXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cbmkuaWNvbi5hc3RlcmlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2OVwiO1xufVxuaS5pY29uLmFzeW1tZXRyaWs6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzJcIjtcbn1cbmkuaWNvbi5hdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmYVwiO1xufVxuaS5pY29uLmF1ZGlibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzNcIjtcbn1cbmkuaWNvbi5hdWRpby5kZXNjcmlwdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5ZVwiO1xufVxuaS5pY29uLmF1dG9wcmVmaXhlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxY1wiO1xufVxuaS5pY29uLmF2aWFuZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzRcIjtcbn1cbmkuaWNvbi5hdmlhdG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjFcIjtcbn1cbmkuaWNvbi5hd3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzVcIjtcbn1cbmkuaWNvbi5iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0YVwiO1xufVxuaS5pY29uLmJhbGFuY2Uuc2NhbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGVcIjtcbn1cbmkuaWNvbi5iYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWVcIjtcbn1cbmkuaWNvbi5iYW5kLmFpZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2MlwiO1xufVxuaS5pY29uLmJhbmRjYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ1XCI7XG59XG5pLmljb24uYmFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyYVwiO1xufVxuaS5pY29uLmJhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzlcIjtcbn1cbmkuaWNvbi5iYXNlYmFsbC5iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDMzXCI7XG59XG5pLmljb24uYmFza2V0YmFsbC5iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDM0XCI7XG59XG5pLmljb24uYmF0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZFwiO1xufVxuaS5pY29uLmJhdHRlcnkuZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDRcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDBcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LmhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDJcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LnF1YXJ0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDNcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LnRocmVlLnF1YXJ0ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQxXCI7XG59XG5pLmljb24uYmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM2XCI7XG59XG5pLmljb24uYmVlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmY1wiO1xufVxuaS5pY29uLmJlaGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjRcIjtcbn1cbmkuaWNvbi5iZWhhbmNlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNVwiO1xufVxuaS5pY29uLmJlbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjNcIjtcbn1cbmkuaWNvbi5iZWxsLnNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY2XCI7XG59XG5pLmljb24uYmljeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNlwiO1xufVxuaS5pY29uLmJpbW9iamVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3OFwiO1xufVxuaS5pY29uLmJpbm9jdWxhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTVcIjtcbn1cbmkuaWNvbi5iaXJ0aGRheS5jYWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZkXCI7XG59XG5pLmljb24uYml0YnVja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcxXCI7XG59XG5pLmljb24uYml0Y29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3OVwiO1xufVxuaS5pY29uLmJpdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2FcIjtcbn1cbmkuaWNvbi5ibGFjay50aWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2VcIjtcbn1cbmkuaWNvbi5ibGFja2JlcnJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdiXCI7XG59XG5pLmljb24uYmxpbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOWRcIjtcbn1cbmkuaWNvbi5ibG9nZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdjXCI7XG59XG5pLmljb24uYmxvZ2dlci5iOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdkXCI7XG59XG5pLmljb24uYmx1ZXRvb3RoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkzXCI7XG59XG5pLmljb24uYmx1ZXRvb3RoLmI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTRcIjtcbn1cbmkuaWNvbi5ib2xkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMyXCI7XG59XG5pLmljb24uYm9sdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlN1wiO1xufVxuaS5pY29uLmJvbWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTJcIjtcbn1cbmkuaWNvbi5ib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJkXCI7XG59XG5pLmljb24uYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmVcIjtcbn1cbmkuaWNvbi5ib3dsaW5nLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzZcIjtcbn1cbmkuaWNvbi5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NjZcIjtcbn1cbmkuaWNvbi5ib3hlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2OFwiO1xufVxuaS5pY29uLmJyYWlsbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTFcIjtcbn1cbmkuaWNvbi5icmllZmNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjFcIjtcbn1cbmkuaWNvbi5idGM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWFcIjtcbn1cbmkuaWNvbi5idWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODhcIjtcbn1cbmkuaWNvbi5idWlsZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhZFwiO1xufVxuaS5pY29uLmJ1bGxob3JuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGExXCI7XG59XG5pLmljb24uYnVsbHNleWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDBcIjtcbn1cbmkuaWNvbi5idXJvbW9iZWxleHBlcnRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdmXCI7XG59XG5pLmljb24uYnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA3XCI7XG59XG5pLmljb24uYnV5c2VsbGFkczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwZFwiO1xufVxuaS5pY29uLmNhbGN1bGF0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWNcIjtcbn1cbmkuaWNvbi5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzM1wiO1xufVxuaS5pY29uLmNhbGVuZGFyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3M1wiO1xufVxuaS5pY29uLmNhbGVuZGFyLmNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc0XCI7XG59XG5pLmljb24uY2FsZW5kYXIubWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzJcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcxXCI7XG59XG5pLmljb24uY2FsZW5kYXIudGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzNcIjtcbn1cbmkuaWNvbi5jYW1lcmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzBcIjtcbn1cbmkuaWNvbi5jYW1lcmEucmV0cm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODNcIjtcbn1cbmkuaWNvbi5jYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjlcIjtcbn1cbmkuaWNvbi5jYXJldC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ3XCI7XG59XG5pLmljb24uY2FyZXQubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOVwiO1xufVxuaS5pY29uLmNhcmV0LnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTBcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MVwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MVwiO1xufVxuaS5pY29uLmNhcmV0LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ4XCI7XG59XG5pLmljb24uY2FydC5hcnJvdy5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE4XCI7XG59XG5pLmljb24uY2FydC5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE3XCI7XG59XG5pLmljb24uY2MuYW1hem9uLnBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZFwiO1xufVxuaS5pY29uLmNjLmFtZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5jYy5hcHBsZS5wYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTZcIjtcbn1cbmkuaWNvbi5jYy5kaW5lcnMuY2x1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0Y1wiO1xufVxuaS5pY29uLmNjLmRpc2NvdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYyXCI7XG59XG5pLmljb24uY2MuamNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uY2MubWFzdGVyY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLmNjLnBheXBhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNFwiO1xufVxuaS5pY29uLmNjLnN0cmlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNVwiO1xufVxuaS5pY29uLmNjLnZpc2E6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbmkuaWNvbi5jZW50ZXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgwXCI7XG59XG5pLmljb24uY2VydGlmaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTNcIjtcbn1cbmkuaWNvbi5jaGFydC5hcmVhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZlXCI7XG59XG5pLmljb24uY2hhcnQuYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgwXCI7XG59XG5pLmljb24uY2hhcnQubGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMVwiO1xufVxuaS5pY29uLmNoYXJ0LnBpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuaS5pY29uLmNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG59XG5pLmljb24uY2hlY2suY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU4XCI7XG59XG5pLmljb24uY2hlY2suc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRhXCI7XG59XG5pLmljb24uY2hlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzlcIjtcbn1cbmkuaWNvbi5jaGVzcy5iaXNob3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2FcIjtcbn1cbmkuaWNvbi5jaGVzcy5ib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzY1wiO1xufVxuaS5pY29uLmNoZXNzLmtpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2ZcIjtcbn1cbmkuaWNvbi5jaGVzcy5rbmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDFcIjtcbn1cbmkuaWNvbi5jaGVzcy5wYXduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQzXCI7XG59XG5pLmljb24uY2hlc3MucXVlZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDVcIjtcbn1cbmkuaWNvbi5jaGVzcy5yb29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQ3XCI7XG59XG5pLmljb24uY2hldnJvbi5jaXJjbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzYVwiO1xufVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzdcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmNpcmNsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOFwiO1xufVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XG59XG5pLmljb24uY2hldnJvbi5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc4XCI7XG59XG5pLmljb24uY2hldnJvbi5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUzXCI7XG59XG5pLmljb24uY2hldnJvbi5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1NFwiO1xufVxuaS5pY29uLmNoZXZyb24udXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzdcIjtcbn1cbmkuaWNvbi5jaGlsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhZVwiO1xufVxuaS5pY29uLmNocm9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2OFwiO1xufVxuaS5pY29uLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuaS5pY29uLmNpcmNsZS5ub3RjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZVwiO1xufVxuaS5pY29uLmNsaXBib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyOFwiO1xufVxuaS5pY29uLmNsaXBib2FyZC5jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2Y1wiO1xufVxuaS5pY29uLmNsaXBib2FyZC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDZkXCI7XG59XG5pLmljb24uY2xvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTdcIjtcbn1cbmkuaWNvbi5jbG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0ZFwiO1xufVxuaS5pY29uLmNsb3NlZC5jYXB0aW9uaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBhXCI7XG59XG5pLmljb24uY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzJcIjtcbn1cbmkuaWNvbi5jbG91ZHNjYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgzXCI7XG59XG5pLmljb24uY2xvdWRzbWl0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4NFwiO1xufVxuaS5pY29uLmNsb3VkdmVyc2lmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4NVwiO1xufVxuaS5pY29uLmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjFcIjtcbn1cbmkuaWNvbi5jb2RlLmJyYW5jaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNlwiO1xufVxuaS5pY29uLmNvZGVwZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2JcIjtcbn1cbmkuaWNvbi5jb2RpZXBpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NFwiO1xufVxuaS5pY29uLmNvZmZlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmNFwiO1xufVxuaS5pY29uLmNvZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxM1wiO1xufVxuaS5pY29uLmNvZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODVcIjtcbn1cbmkuaWNvbi5jb2x1bW5zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRiXCI7XG59XG5pLmljb24uY29tbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NVwiO1xufVxuaS5pY29uLmNvbW1lbnQuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdhXCI7XG59XG5pLmljb24uY29tbWVudHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODZcIjtcbn1cbmkuaWNvbi5jb21wYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRlXCI7XG59XG5pLmljb24uY29tcHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjZcIjtcbn1cbmkuaWNvbi5jb25uZWN0ZGV2ZWxvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwZVwiO1xufVxuaS5pY29uLmNvbnRhbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2ZFwiO1xufVxuaS5pY29uLmNvcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzVcIjtcbn1cbmkuaWNvbi5jb3B5cmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjlcIjtcbn1cbmkuaWNvbi5jcGFuZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODhcIjtcbn1cbmkuaWNvbi5jcmVhdGl2ZS5jb21tb25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVlXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWRcIjtcbn1cbmkuaWNvbi5jcm9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI1XCI7XG59XG5pLmljb24uY3Jvc3NoYWlyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1YlwiO1xufVxuaS5pY29uLmNzczM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2NcIjtcbn1cbmkuaWNvbi5jc3MzLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4YlwiO1xufVxuaS5pY29uLmN1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjJcIjtcbn1cbmkuaWNvbi5jdWJlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiM1wiO1xufVxuaS5pY29uLmN1dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNFwiO1xufVxuaS5pY29uLmN1dHRsZWZpc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGNcIjtcbn1cbmkuaWNvbi5kLmFuZC5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhkXCI7XG59XG5pLmljb24uZGFzaGN1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTBcIjtcbn1cbmkuaWNvbi5kYXRhYmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMFwiO1xufVxuaS5pY29uLmRlYWY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTRcIjtcbn1cbmkuaWNvbi5kZWxpY2lvdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTVcIjtcbn1cbmkuaWNvbi5kZXBsb3lkb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGVcIjtcbn1cbmkuaWNvbi5kZXNrcHJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhmXCI7XG59XG5pLmljb24uZGVza3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuaS5pY29uLmRldmlhbnRhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmRcIjtcbn1cbmkuaWNvbi5kaWdnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE2XCI7XG59XG5pLmljb24uZGlnaXRhbC5vY2VhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5MVwiO1xufVxuaS5pY29uLmRpc2NvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTJcIjtcbn1cbmkuaWNvbi5kaXNjb3Vyc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTNcIjtcbn1cbmkuaWNvbi5kbmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzFcIjtcbn1cbmkuaWNvbi5kb2NodWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTRcIjtcbn1cbmkuaWNvbi5kb2NrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTVcIjtcbn1cbmkuaWNvbi5kb2xsYXIuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NVwiO1xufVxuaS5pY29uLmRvbGx5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDcyXCI7XG59XG5pLmljb24uZG9sbHkuZmxhdGJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3NFwiO1xufVxuaS5pY29uLmRvdC5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbmkuaWNvbi5kb3dubG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxOVwiO1xufVxuaS5pY29uLmRyYWZ0MmRpZ2l0YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTZcIjtcbn1cbmkuaWNvbi5kcmliYmJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3ZFwiO1xufVxuaS5pY29uLmRyaWJiYmxlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5N1wiO1xufVxuaS5pY29uLmRyb3Bib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNmJcIjtcbn1cbmkuaWNvbi5kcnVwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTlcIjtcbn1cbmkuaWNvbi5keWFsb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTlcIjtcbn1cbmkuaWNvbi5lYXJseWJpcmRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlhXCI7XG59XG5pLmljb24uZWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuaS5pY29uLmVkaXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDRcIjtcbn1cbmkuaWNvbi5lamVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1MlwiO1xufVxuaS5pY29uLmVsZW1lbnRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzMFwiO1xufVxuaS5pY29uLmVsbGlwc2lzLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDFcIjtcbn1cbmkuaWNvbi5lbGxpcHNpcy52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MlwiO1xufVxuaS5pY29uLmVtYmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDIzXCI7XG59XG5pLmljb24uZW1waXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQxXCI7XG59XG5pLmljb24uZW52ZWxvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTBcIjtcbn1cbmkuaWNvbi5lbnZlbG9wZS5vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI2XCI7XG59XG5pLmljb24uZW52ZWxvcGUuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk5XCI7XG59XG5pLmljb24uZW52aXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk5XCI7XG59XG5pLmljb24uZXJhc2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJkXCI7XG59XG5pLmljb24uZXJsYW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlkXCI7XG59XG5pLmljb24uZXRoZXJldW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmVcIjtcbn1cbmkuaWNvbi5ldHN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ3XCI7XG59XG5pLmljb24uZXVyby5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUzXCI7XG59XG5pLmljb24uZXhjaGFuZ2UuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYyXCI7XG59XG5pLmljb24uZXhjbGFtYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmFcIjtcbn1cbmkuaWNvbi5leGNsYW1hdGlvbi5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmFcIjtcbn1cbmkuaWNvbi5leGNsYW1hdGlvbi50cmlhbmdsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MVwiO1xufVxuaS5pY29uLmV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NVwiO1xufVxuaS5pY29uLmV4cGFuZC5hcnJvd3MuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzFlXCI7XG59XG5pLmljb24uZXhwZWRpdGVkc3NsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNlXCI7XG59XG5pLmljb24uZXh0ZXJuYWwuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVkXCI7XG59XG5pLmljb24uZXh0ZXJuYWwuc3F1YXJlLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2MFwiO1xufVxuaS5pY29uLmV5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2ZVwiO1xufVxuaS5pY29uLmV5ZS5kcm9wcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZiXCI7XG59XG5pLmljb24uZXllLnNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcwXCI7XG59XG5pLmljb24uZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWFcIjtcbn1cbmkuaWNvbi5mYWNlYm9vay5mOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzllXCI7XG59XG5pLmljb24uZmFjZWJvb2subWVzc2VuZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlmXCI7XG59XG5pLmljb24uZmFjZWJvb2suc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgyXCI7XG59XG5pLmljb24uZmFzdC5iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0OVwiO1xufVxuaS5pY29uLmZhc3QuZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1MFwiO1xufVxuaS5pY29uLmZheDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhY1wiO1xufVxuaS5pY29uLmZlbWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MlwiO1xufVxuaS5pY29uLmZpZ2h0ZXIuamV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZiXCI7XG59XG5pLmljb24uZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1YlwiO1xufVxuaS5pY29uLmZpbGUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVjXCI7XG59XG5pLmljb24uZmlsZS5hcmNoaXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM2XCI7XG59XG5pLmljb24uZmlsZS5hdWRpbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjN1wiO1xufVxuaS5pY29uLmZpbGUuY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjOVwiO1xufVxuaS5pY29uLmZpbGUuZXhjZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzNcIjtcbn1cbmkuaWNvbi5maWxlLmltYWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM1XCI7XG59XG5pLmljb24uZmlsZS5wZGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzFcIjtcbn1cbmkuaWNvbi5maWxlLnBvd2VycG9pbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzRcIjtcbn1cbmkuaWNvbi5maWxlLnZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM4XCI7XG59XG5pLmljb24uZmlsZS53b3JkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMyXCI7XG59XG5pLmljb24uZmlsbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwOFwiO1xufVxuaS5pY29uLmZpbHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMFwiO1xufVxuaS5pY29uLmZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmRcIjtcbn1cbmkuaWNvbi5maXJlLmV4dGluZ3Vpc2hlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNFwiO1xufVxuaS5pY29uLmZpcmVmb3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjlcIjtcbn1cbmkuaWNvbi5maXJzdC5haWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzlcIjtcbn1cbmkuaWNvbi5maXJzdC5vcmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiMFwiO1xufVxuaS5pY29uLmZpcnN0ZHJhZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTFcIjtcbn1cbmkuaWNvbi5mbGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI0XCI7XG59XG5pLmljb24uZmxhZy5jaGVja2VyZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWVcIjtcbn1cbmkuaWNvbi5mbGFzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjM1wiO1xufVxuaS5pY29uLmZsaWNrcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2ZVwiO1xufVxuaS5pY29uLmZsaXBib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0ZFwiO1xufVxuaS5pY29uLmZseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxN1wiO1xufVxuaS5pY29uLmZvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YlwiO1xufVxuaS5pY29uLmZvbGRlci5vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdjXCI7XG59XG5pLmljb24uZm9udDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzMVwiO1xufVxuaS5pY29uLmZvbnQuYXdlc29tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNFwiO1xufVxuaS5pY29uLmZvbnQuYXdlc29tZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWNcIjtcbn1cbmkuaWNvbi5mb250LmF3ZXNvbWUuZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyNVwiO1xufVxuaS5pY29uLmZvbnRpY29uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MFwiO1xufVxuaS5pY29uLmZvbnRpY29ucy5maTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhMlwiO1xufVxuaS5pY29uLmZvb3RiYWxsLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NGVcIjtcbn1cbmkuaWNvbi5mb3J0LmF3ZXNvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODZcIjtcbn1cbmkuaWNvbi5mb3J0LmF3ZXNvbWUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2EzXCI7XG59XG5pLmljb24uZm9ydW1iZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTFcIjtcbn1cbmkuaWNvbi5mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRlXCI7XG59XG5pLmljb24uZm91cnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MFwiO1xufVxuaS5pY29uLmZyZWUuY29kZS5jYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM1XCI7XG59XG5pLmljb24uZnJlZWJzZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhNFwiO1xufVxuaS5pY29uLmZyb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE5XCI7XG59XG5pLmljb24uZnV0Ym9sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUzXCI7XG59XG5pLmljb24uZ2FtZXBhZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYlwiO1xufVxuaS5pY29uLmdhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUzXCI7XG59XG5pLmljb24uZ2VtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E1XCI7XG59XG5pLmljb24uZ2VuZGVybGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyZFwiO1xufVxuaS5pY29uLmdldC5wb2NrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjVcIjtcbn1cbmkuaWNvbi5nZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MFwiO1xufVxuaS5pY29uLmdnLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MVwiO1xufVxuaS5pY29uLmdpZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmJcIjtcbn1cbmkuaWNvbi5naXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDNcIjtcbn1cbmkuaWNvbi5naXQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQyXCI7XG59XG5pLmljb24uZ2l0aHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDliXCI7XG59XG5pLmljb24uZ2l0aHViLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExM1wiO1xufVxuaS5pY29uLmdpdGh1Yi5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTJcIjtcbn1cbmkuaWNvbi5naXRrcmFrZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTZcIjtcbn1cbmkuaWNvbi5naXRsYWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTZcIjtcbn1cbmkuaWNvbi5naXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjZcIjtcbn1cbmkuaWNvbi5nbGFzcy5tYXJ0aW5pOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDAwXCI7XG59XG5pLmljb24uZ2xpZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTVcIjtcbn1cbmkuaWNvbi5nbGlkZS5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE2XCI7XG59XG5pLmljb24uZ2xvYmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWNcIjtcbn1cbmkuaWNvbi5nb2ZvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTdcIjtcbn1cbmkuaWNvbi5nb2xmLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTBcIjtcbn1cbmkuaWNvbi5nb29kcmVhZHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYThcIjtcbn1cbmkuaWNvbi5nb29kcmVhZHMuZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhOVwiO1xufVxuaS5pY29uLmdvb2dsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhMFwiO1xufVxuaS5pY29uLmdvb2dsZS5kcml2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhYVwiO1xufVxuaS5pY29uLmdvb2dsZS5wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FiXCI7XG59XG5pLmljb24uZ29vZ2xlLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjNcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1cy5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ1XCI7XG59XG5pLmljb24uZ29vZ2xlLnBsdXMuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ0XCI7XG59XG5pLmljb24uZ29vZ2xlLndhbGxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlZVwiO1xufVxuaS5pY29uLmdyYWR1YXRpb24uY2FwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTlkXCI7XG59XG5pLmljb24uZ3JhdGlwYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODRcIjtcbn1cbmkuaWNvbi5ncmF2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ2XCI7XG59XG5pLmljb24uZ3JpcGZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWNcIjtcbn1cbmkuaWNvbi5ncnVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhZFwiO1xufVxuaS5pY29uLmd1bHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWVcIjtcbn1cbmkuaWNvbi5oLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmZFwiO1xufVxuaS5pY29uLmhhY2tlci5uZXdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ0XCI7XG59XG5pLmljb24uaGFja2VyLm5ld3Muc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FmXCI7XG59XG5pLmljb24uaGFuZC5saXphcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNThcIjtcbn1cbmkuaWNvbi5oYW5kLnBhcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU2XCI7XG59XG5pLmljb24uaGFuZC5wZWFjZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YlwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhN1wiO1xufVxuaS5pY29uLmhhbmQucG9pbnQubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNVwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTRcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE2XCI7XG59XG5pLmljb24uaGFuZC5wb2ludGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVhXCI7XG59XG5pLmljb24uaGFuZC5yb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU1XCI7XG59XG5pLmljb24uaGFuZC5zY2lzc29yczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1N1wiO1xufVxuaS5pY29uLmhhbmQuc3BvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTlcIjtcbn1cbmkuaWNvbi5oYW5kc2hha2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjVcIjtcbn1cbmkuaWNvbi5oYXNodGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkyXCI7XG59XG5pLmljb24uaGRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGEwXCI7XG59XG5pLmljb24uaGVhZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkY1wiO1xufVxuaS5pY29uLmhlYWRwaG9uZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjVcIjtcbn1cbmkuaWNvbi5oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuaS5pY29uLmhlYXJ0YmVhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxZVwiO1xufVxuaS5pY29uLmhpcHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTJcIjtcbn1cbmkuaWNvbi5oaXJlLmEuaGVscGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IwXCI7XG59XG5pLmljb24uaGlzdG9yeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkYVwiO1xufVxuaS5pY29uLmhvY2tleS5wdWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDUzXCI7XG59XG5pLmljb24uaG9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxNVwiO1xufVxuaS5pY29uLmhvb2xpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI3XCI7XG59XG5pLmljb24uaG9zcGl0YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjhcIjtcbn1cbmkuaWNvbi5ob3NwaXRhbC5zeW1ib2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0N2VcIjtcbn1cbmkuaWNvbi5ob3RqYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjFcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTRcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3MuZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG5pLmljb24uaG91cmdsYXNzLmhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTJcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3Muc3RhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTFcIjtcbn1cbmkuaWNvbi5ob3V6ejpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3Y1wiO1xufVxuaS5pY29uLmh0bWw1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNiXCI7XG59XG5pLmljb24uaHVic3BvdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiMlwiO1xufVxuaS5pY29uLmkuY3Vyc29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ2XCI7XG59XG5pLmljb24uaWQuYmFkZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzFcIjtcbn1cbmkuaWNvbi5pZC5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMyXCI7XG59XG5pLmljb24uaW1hZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2VcIjtcbn1cbmkuaWNvbi5pbWFnZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDJcIjtcbn1cbmkuaWNvbi5pbWRiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ4XCI7XG59XG5pLmljb24uaW5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWNcIjtcbn1cbmkuaWNvbi5pbmRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2NcIjtcbn1cbmkuaWNvbi5pbmR1c3RyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NVwiO1xufVxuaS5pY29uLmluZm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjlcIjtcbn1cbmkuaWNvbi5pbmZvLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1YVwiO1xufVxuaS5pY29uLmluc3RhZ3JhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2ZFwiO1xufVxuaS5pY29uLmludGVybmV0LmV4cGxvcmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZiXCI7XG59XG5pLmljb24uaW94aG9zdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwOFwiO1xufVxuaS5pY29uLml0YWxpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzM1wiO1xufVxuaS5pY29uLml0dW5lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNFwiO1xufVxuaS5pY29uLml0dW5lcy5ub3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I1XCI7XG59XG5pLmljb24uamVua2luczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNlwiO1xufVxuaS5pY29uLmpvZ2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I3XCI7XG59XG5pLmljb24uam9vbWxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFhXCI7XG59XG5pLmljb24uanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjhcIjtcbn1cbmkuaWNvbi5qcy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjlcIjtcbn1cbmkuaWNvbi5qc2ZpZGRsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjY1wiO1xufVxuaS5pY29uLmtleTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NFwiO1xufVxuaS5pY29uLmtleWJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFjXCI7XG59XG5pLmljb24ua2V5Y2RuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JhXCI7XG59XG5pLmljb24ua2lja3N0YXJ0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmJcIjtcbn1cbmkuaWNvbi5raWNrc3RhcnRlci5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JjXCI7XG59XG5pLmljb24ua29ydnVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJmXCI7XG59XG5pLmljb24ubGFuZ3VhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWJcIjtcbn1cbmkuaWNvbi5sYXB0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDlcIjtcbn1cbmkuaWNvbi5sYXJhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JkXCI7XG59XG5pLmljb24ubGFzdGZtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAyXCI7XG59XG5pLmljb24ubGFzdGZtLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwM1wiO1xufVxuaS5pY29uLmxlYWY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmNcIjtcbn1cbmkuaWNvbi5sZWFucHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjEyXCI7XG59XG5pLmljb24ubGVtb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTRcIjtcbn1cbmkuaWNvbi5sZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFkXCI7XG59XG5pLmljb24ubGV2ZWwuZG93bi5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmVcIjtcbn1cbmkuaWNvbi5sZXZlbC51cC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmZcIjtcbn1cbmkuaWNvbi5saWZlLnJpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2RcIjtcbn1cbmkuaWNvbi5saWdodGJ1bGI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZWJcIjtcbn1cbmkuaWNvbi5saW5lY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjMFwiO1xufVxuaS5pY29uLmxpbmtpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzFcIjtcbn1cbmkuaWNvbi5saW5rZWRpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4Y1wiO1xufVxuaS5pY29uLmxpbmtlZGluLmFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMVwiO1xufVxuaS5pY29uLmxpbm9kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiOFwiO1xufVxuaS5pY29uLmxpbnV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdjXCI7XG59XG5pLmljb24ubGlyYS5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk1XCI7XG59XG5pLmljb24ubGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzYVwiO1xufVxuaS5pY29uLmxpc3QuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIyXCI7XG59XG5pLmljb24ubGlzdC5vbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYlwiO1xufVxuaS5pY29uLmxpc3QudWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2FcIjtcbn1cbmkuaWNvbi5sb2NhdGlvbi5hcnJvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNFwiO1xufVxuaS5pY29uLmxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjNcIjtcbn1cbmkuaWNvbi5sb2NrLm9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzFcIjtcbn1cbmkuaWNvbi5sb25nLmFycm93LmFsdGVybmF0ZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA5XCI7XG59XG5pLmljb24ubG9uZy5hcnJvdy5hbHRlcm5hdGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwYVwiO1xufVxuaS5pY29uLmxvbmcuYXJyb3cuYWx0ZXJuYXRlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzBiXCI7XG59XG5pLmljb24ubG9uZy5hcnJvdy5hbHRlcm5hdGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGNcIjtcbn1cbmkuaWNvbi5sb3cudmlzaW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE4XCI7XG59XG5pLmljb24ubHlmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjM1wiO1xufVxuaS5pY29uLm1hZ2VudG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzRcIjtcbn1cbmkuaWNvbi5tYWdpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkMFwiO1xufVxuaS5pY29uLm1hZ25ldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NlwiO1xufVxuaS5pY29uLm1hbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODNcIjtcbn1cbmkuaWNvbi5tYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzlcIjtcbn1cbmkuaWNvbi5tYXAubWFya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQxXCI7XG59XG5pLmljb24ubWFwLm1hcmtlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzVcIjtcbn1cbmkuaWNvbi5tYXAucGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc2XCI7XG59XG5pLmljb24ubWFwLnNpZ25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc3XCI7XG59XG5pLmljb24ubWFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMlwiO1xufVxuaS5pY29uLm1hcnMuZG91YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI3XCI7XG59XG5pLmljb24ubWFycy5zdHJva2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjlcIjtcbn1cbmkuaWNvbi5tYXJzLnN0cm9rZS5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJiXCI7XG59XG5pLmljb24ubWFycy5zdHJva2UudmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmFcIjtcbn1cbmkuaWNvbi5tYXhjZG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzZcIjtcbn1cbmkuaWNvbi5tZWRhcHBzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M2XCI7XG59XG5pLmljb24ubWVkaXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNhXCI7XG59XG5pLmljb24ubWVkaXVtLm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzdcIjtcbn1cbmkuaWNvbi5tZWRraXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmFcIjtcbn1cbmkuaWNvbi5tZWRydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjOFwiO1xufVxuaS5pY29uLm1lZXR1cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlMFwiO1xufVxuaS5pY29uLm1laDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYVwiO1xufVxuaS5pY29uLm1lcmN1cnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjNcIjtcbn1cbmkuaWNvbi5taWNyb2NoaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGJcIjtcbn1cbmkuaWNvbi5taWNyb3Bob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMwXCI7XG59XG5pLmljb24ubWljcm9waG9uZS5zbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMVwiO1xufVxuaS5pY29uLm1pY3Jvc29mdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjYVwiO1xufVxuaS5pY29uLm1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY4XCI7XG59XG5pLmljb24ubWludXMuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU2XCI7XG59XG5pLmljb24ubWludXMuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7XG59XG5pLmljb24ubWl4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NiXCI7XG59XG5pLmljb24ubWl4Y2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODlcIjtcbn1cbmkuaWNvbi5taXp1bmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzY2NcIjtcbn1cbmkuaWNvbi5tb2JpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGJcIjtcbn1cbmkuaWNvbi5tb2JpbGUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NkXCI7XG59XG5pLmljb24ubW9keDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NVwiO1xufVxuaS5pY29uLm1vbmVybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMFwiO1xufVxuaS5pY29uLm1vbmV5LmJpbGwuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QxXCI7XG59XG5pLmljb24ubW9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NlwiO1xufVxuaS5pY29uLm1vdG9yY3ljbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWNcIjtcbn1cbmkuaWNvbi5tb3VzZS5wb2ludGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ1XCI7XG59XG5pLmljb24ubXVzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDFcIjtcbn1cbmkuaWNvbi5uYXBzdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QyXCI7XG59XG5pLmljb24ubmV1dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJjXCI7XG59XG5pLmljb24ubmV3c3BhcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVhXCI7XG59XG5pLmljb24ubmludGVuZG8uc3dpdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE4XCI7XG59XG5pLmljb24ubm9kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxOVwiO1xufVxuaS5pY29uLm5vZGUuanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDNcIjtcbn1cbmkuaWNvbi5ucG06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDRcIjtcbn1cbmkuaWNvbi5uczg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDVcIjtcbn1cbmkuaWNvbi5udXRyaXRpb25peDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkNlwiO1xufVxuaS5pY29uLm9iamVjdC5ncm91cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0N1wiO1xufVxuaS5pY29uLm9iamVjdC51bmdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ4XCI7XG59XG5pLmljb24ub2Rub2tsYXNzbmlraTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2M1wiO1xufVxuaS5pY29uLm9kbm9rbGFzc25pa2kuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY0XCI7XG59XG5pLmljb24ub3BlbmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2RcIjtcbn1cbmkuaWNvbi5vcGVuaWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWJcIjtcbn1cbmkuaWNvbi5vcGVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2YVwiO1xufVxuaS5pY29uLm9wdGluLm1vbnN0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2NcIjtcbn1cbmkuaWNvbi5vc2k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWFcIjtcbn1cbmkuaWNvbi5vdXRkZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNiXCI7XG59XG5pLmljb24ucGFnZTQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDdcIjtcbn1cbmkuaWNvbi5wYWdlbGluZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGNcIjtcbn1cbmkuaWNvbi5wYWludC5icnVzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmY1wiO1xufVxuaS5pY29uLnBhbGZlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkOFwiO1xufVxuaS5pY29uLnBhbGxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ4MlwiO1xufVxuaS5pY29uLnBhcGVyLnBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ4XCI7XG59XG5pLmljb24ucGFwZXJjbGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM2XCI7XG59XG5pLmljb24ucGFyYWdyYXBoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRkXCI7XG59XG5pLmljb24ucGFzdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZWFcIjtcbn1cbmkuaWNvbi5wYXRyZW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q5XCI7XG59XG5pLmljb24ucGF1c2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGNcIjtcbn1cbmkuaWNvbi5wYXVzZS5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOGJcIjtcbn1cbmkuaWNvbi5wYXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjBcIjtcbn1cbmkuaWNvbi5wYXlwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWRcIjtcbn1cbmkuaWNvbi5wZW4uc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRiXCI7XG59XG5pLmljb24ucGVuY2lsLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwM1wiO1xufVxuaS5pY29uLnBlcmNlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTVcIjtcbn1cbmkuaWNvbi5wZXJpc2NvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGFcIjtcbn1cbmkuaWNvbi5waGFicmljYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkYlwiO1xufVxuaS5pY29uLnBob2VuaXguZnJhbWV3b3JrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RjXCI7XG59XG5pLmljb24ucGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTVcIjtcbn1cbmkuaWNvbi5waG9uZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOThcIjtcbn1cbmkuaWNvbi5waG9uZS52b2x1bWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTBcIjtcbn1cbmkuaWNvbi5waHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTdcIjtcbn1cbmkuaWNvbi5waWVkLnBpcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFlXCI7XG59XG5pLmljb24ucGllZC5waXBlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYThcIjtcbn1cbmkuaWNvbi5waWVkLnBpcGVyLnBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE3XCI7XG59XG5pLmljb24ucGlsbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ODRcIjtcbn1cbmkuaWNvbi5waW50ZXJlc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDJcIjtcbn1cbmkuaWNvbi5waW50ZXJlc3QucDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzMVwiO1xufVxuaS5pY29uLnBpbnRlcmVzdC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDNcIjtcbn1cbmkuaWNvbi5wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MlwiO1xufVxuaS5pY29uLnBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGJcIjtcbn1cbmkuaWNvbi5wbGF5LmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NFwiO1xufVxuaS5pY29uLnBsYXlzdGF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RmXCI7XG59XG5pLmljb24ucGx1ZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNlwiO1xufVxuaS5pY29uLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjdcIjtcbn1cbmkuaWNvbi5wbHVzLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1NVwiO1xufVxuaS5pY29uLnBsdXMuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZlXCI7XG59XG5pLmljb24ucG9kY2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZVwiO1xufVxuaS5pY29uLnBvdW5kLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTRcIjtcbn1cbmkuaWNvbi5wb3dlci5vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTFcIjtcbn1cbmkuaWNvbi5wcmludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZlwiO1xufVxuaS5pY29uLnByb2R1Y3QuaHVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4OFwiO1xufVxuaS5pY29uLnB1c2hlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlMVwiO1xufVxuaS5pY29uLnB1enpsZS5waWVjZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyZVwiO1xufVxuaS5pY29uLnB5dGhvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlMlwiO1xufVxuaS5pY29uLnFxOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ2XCI7XG59XG5pLmljb24ucXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI5XCI7XG59XG5pLmljb24ucXVlc3Rpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjhcIjtcbn1cbmkuaWNvbi5xdWVzdGlvbi5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTlcIjtcbn1cbmkuaWNvbi5xdWlkZGl0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NThcIjtcbn1cbmkuaWNvbi5xdWluc2NhcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTlcIjtcbn1cbmkuaWNvbi5xdW9yYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjNFwiO1xufVxuaS5pY29uLnF1b3RlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGRcIjtcbn1cbmkuaWNvbi5xdW90ZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwZVwiO1xufVxuaS5pY29uLnJhbmRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NFwiO1xufVxuaS5pY29uLnJhdmVscnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDlcIjtcbn1cbmkuaWNvbi5yZWFjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxYlwiO1xufVxuaS5pY29uLnJlYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQwXCI7XG59XG5pLmljb24ucmVjeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOFwiO1xufVxuaS5pY29uLnJlZHJpdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2UzXCI7XG59XG5pLmljb24ucmVkZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWExXCI7XG59XG5pLmljb24ucmVkZGl0LmFsaWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjgxXCI7XG59XG5pLmljb24ucmVkZGl0LnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhMlwiO1xufVxuaS5pY29uLnJlZG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWVcIjtcbn1cbmkuaWNvbi5yZWRvLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmOVwiO1xufVxuaS5pY29uLnJlZ2lzdGVyZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWRcIjtcbn1cbmkuaWNvbi5yZW5kYWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U0XCI7XG59XG5pLmljb24ucmVucmVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThiXCI7XG59XG5pLmljb24ucmVwbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTVcIjtcbn1cbmkuaWNvbi5yZXBseS5hbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjJcIjtcbn1cbmkuaWNvbi5yZXBseWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTZcIjtcbn1cbmkuaWNvbi5yZXNvbHZpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTdcIjtcbn1cbmkuaWNvbi5yZXR3ZWV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc5XCI7XG59XG5pLmljb24ucm9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxOFwiO1xufVxuaS5pY29uLnJvY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNVwiO1xufVxuaS5pY29uLnJvY2tldGNoYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZThcIjtcbn1cbmkuaWNvbi5yb2Nrcm1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U5XCI7XG59XG5pLmljb24ucnNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDllXCI7XG59XG5pLmljb24ucnNzLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0M1wiO1xufVxuaS5pY29uLnJ1YmxlLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydXBlZS5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG5pLmljb24uc2FmYXJpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY3XCI7XG59XG5pLmljb24uc2FzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxZVwiO1xufVxuaS5pY29uLnNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzdcIjtcbn1cbmkuaWNvbi5zY2hsaXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWFcIjtcbn1cbmkuaWNvbi5zY3JpYmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOGFcIjtcbn1cbmkuaWNvbi5zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDJcIjtcbn1cbmkuaWNvbi5zZWFyY2gubWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTBcIjtcbn1cbmkuaWNvbi5zZWFyY2gucGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuaS5pY29uLnNlYXJjaGVuZ2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ViXCI7XG59XG5pLmljb24uc2VsbGNhc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGFcIjtcbn1cbmkuaWNvbi5zZWxsc3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTNcIjtcbn1cbmkuaWNvbi5zZXJ2ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzNcIjtcbn1cbmkuaWNvbi5zZXJ2aWNlc3RhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWNcIjtcbn1cbmkuaWNvbi5zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NFwiO1xufVxuaS5pY29uLnNoYXJlLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMFwiO1xufVxuaS5pY29uLnNoYXJlLmFsdGVybmF0ZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTFcIjtcbn1cbmkuaWNvbi5zaGFyZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cbmkuaWNvbi5zaGVrZWwuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYlwiO1xufVxuaS5pY29uLnNoaWVsZC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWRcIjtcbn1cbmkuaWNvbi5zaGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFhXCI7XG59XG5pLmljb24uc2hpcHBpbmcuZmFzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ4YlwiO1xufVxuaS5pY29uLnNoaXJ0c2luYnVsazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxNFwiO1xufVxuaS5pY29uLnNob3BwaW5nLmJhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5MFwiO1xufVxuaS5pY29uLnNob3BwaW5nLmJhc2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5MVwiO1xufVxuaS5pY29uLnNob3BwaW5nLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2FcIjtcbn1cbmkuaWNvbi5zaG93ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2NcIjtcbn1cbmkuaWNvbi5zaWduLmxhbmd1YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE3XCI7XG59XG5pLmljb24uc2lnbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEyXCI7XG59XG5pLmljb24uc2ltcGx5YnVpbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTVcIjtcbn1cbmkuaWNvbi5zaXN0cml4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2VlXCI7XG59XG5pLmljb24uc2l0ZW1hcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlOFwiO1xufVxuaS5pY29uLnNreWF0bGFzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE2XCI7XG59XG5pLmljb24uc2t5cGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2VcIjtcbn1cbmkuaWNvbi5zbGFjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5OFwiO1xufVxuaS5pY29uLnNsYWNrLmhhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWZcIjtcbn1cbmkuaWNvbi5zbGlkZXJzLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGVcIjtcbn1cbmkuaWNvbi5zbGlkZXNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU3XCI7XG59XG5pLmljb24uc21pbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMThcIjtcbn1cbmkuaWNvbi5zbmFwY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhYlwiO1xufVxuaS5pY29uLnNuYXBjaGF0Lmdob3N0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFjXCI7XG59XG5pLmljb24uc25hcGNoYXQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFkXCI7XG59XG5pLmljb24uc25vd2ZsYWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRjXCI7XG59XG5pLmljb24uc29ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkY1wiO1xufVxuaS5pY29uLnNvcnQuYWxwaGFiZXQuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1ZFwiO1xufVxuaS5pY29uLnNvcnQuYWxwaGFiZXQudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWVcIjtcbn1cbmkuaWNvbi5zb3J0LmFtb3VudC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYwXCI7XG59XG5pLmljb24uc29ydC5hbW91bnQudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjFcIjtcbn1cbmkuaWNvbi5zb3J0LmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGRcIjtcbn1cbmkuaWNvbi5zb3J0Lm51bWVyaWMuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MlwiO1xufVxuaS5pY29uLnNvcnQubnVtZXJpYy51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2M1wiO1xufVxuaS5pY29uLnNvcnQudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGVcIjtcbn1cbmkuaWNvbi5zb3VuZGNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJlXCI7XG59XG5pLmljb24uc3BhY2Uuc2h1dHRsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5N1wiO1xufVxuaS5pY29uLnNwZWFrYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjNcIjtcbn1cbmkuaWNvbi5zcGlubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEwXCI7XG59XG5pLmljb24uc3BvdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiY1wiO1xufVxuaS5pY29uLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOFwiO1xufVxuaS5pY29uLnNxdWFyZS5mdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDVjXCI7XG59XG5pLmljb24uc3RhY2suZXhjaGFuZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGRcIjtcbn1cbmkuaWNvbi5zdGFjay5vdmVyZmxvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2Y1wiO1xufVxuaS5pY29uLnN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDVcIjtcbn1cbmkuaWNvbi5zdGFyLmhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbmkuaWNvbi5zdGF5bGlua2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y1XCI7XG59XG5pLmljb24uc3RlYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjZcIjtcbn1cbmkuaWNvbi5zdGVhbS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjdcIjtcbn1cbmkuaWNvbi5zdGVhbS5zeW1ib2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjZcIjtcbn1cbmkuaWNvbi5zdGVwLmJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ4XCI7XG59XG5pLmljb24uc3RlcC5mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUxXCI7XG59XG5pLmljb24uc3RldGhvc2NvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjFcIjtcbn1cbmkuaWNvbi5zdGlja2VyLm11bGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjdcIjtcbn1cbmkuaWNvbi5zdGlja3kubm90ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0OVwiO1xufVxuaS5pY29uLnN0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGRcIjtcbn1cbmkuaWNvbi5zdG9wLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4ZFwiO1xufVxuaS5pY29uLnN0b3B3YXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmMlwiO1xufVxuaS5pY29uLnN0cmF2YTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyOFwiO1xufVxuaS5pY29uLnN0cmVldC52aWV3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFkXCI7XG59XG5pLmljb24uc3RyaWtldGhyb3VnaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjY1wiO1xufVxuaS5pY29uLnN0cmlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyOVwiO1xufVxuaS5pY29uLnN0cmlwZS5zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJhXCI7XG59XG5pLmljb24uc3R1ZGlvdmluYXJpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y4XCI7XG59XG5pLmljb24uc3R1bWJsZXVwb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTRcIjtcbn1cbmkuaWNvbi5zdHVtYmxldXBvbi5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTNcIjtcbn1cbmkuaWNvbi5zdWJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmNcIjtcbn1cbmkuaWNvbi5zdWJ3YXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzlcIjtcbn1cbmkuaWNvbi5zdWl0Y2FzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMlwiO1xufVxuaS5pY29uLnN1bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NVwiO1xufVxuaS5pY29uLnN1cGVycG93ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRkXCI7XG59XG5pLmljb24uc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmJcIjtcbn1cbmkuaWNvbi5zdXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjlcIjtcbn1cbmkuaWNvbi5zeW5jOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIxXCI7XG59XG5pLmljb24uc3luYy5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjFcIjtcbn1cbmkuaWNvbi5zeXJpbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDhlXCI7XG59XG5pLmljb24udGFibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2VcIjtcbn1cbmkuaWNvbi50YWJsZS50ZW5uaXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NWRcIjtcbn1cbmkuaWNvbi50YWJsZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGFcIjtcbn1cbmkuaWNvbi50YWJsZXQuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZhXCI7XG59XG5pLmljb24udGFjaG9tZXRlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmRcIjtcbn1cbmkuaWNvbi50YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmJcIjtcbn1cbmkuaWNvbi50YWdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJjXCI7XG59XG5pLmljb24udGFza3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWVcIjtcbn1cbmkuaWNvbi50YXhpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJhXCI7XG59XG5pLmljb24udGVsZWdyYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzZcIjtcbn1cbmkuaWNvbi50ZWxlZ3JhbS5wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZVwiO1xufVxuaS5pY29uLnRlbmNlbnQud2VpYm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDVcIjtcbn1cbmkuaWNvbi50ZXJtaW5hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMFwiO1xufVxuaS5pY29uLnRleHQuaGVpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM0XCI7XG59XG5pLmljb24udGV4dC53aWR0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzNVwiO1xufVxuaS5pY29uLnRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBhXCI7XG59XG5pLmljb24udGgubGFyZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDlcIjtcbn1cbmkuaWNvbi50aC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBiXCI7XG59XG5pLmljb24udGhlbWVpc2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIyXCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OTFcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlci5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjYlwiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyLmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzdcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlci5oYWxmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM5XCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXIucXVhcnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjYVwiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyLnRocmVlLnF1YXJ0ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM4XCI7XG59XG5pLmljb24udGh1bWJzLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjVcIjtcbn1cbmkuaWNvbi50aHVtYnMudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjRcIjtcbn1cbmkuaWNvbi50aHVtYnRhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGRcIjtcbn1cbmkuaWNvbi50aWNrZXQuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZmXCI7XG59XG5pLmljb24udGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi50aW1lcy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTdcIjtcbn1cbmkuaWNvbi50aW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQzXCI7XG59XG5pLmljb24udG9nZ2xlLm9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNFwiO1xufVxuaS5pY29uLnRvZ2dsZS5vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNVwiO1xufVxuaS5pY29uLnRyYWRlbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1Y1wiO1xufVxuaS5pY29uLnRyYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM4XCI7XG59XG5pLmljb24udHJhbnNnZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjRcIjtcbn1cbmkuaWNvbi50cmFuc2dlbmRlci5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjVcIjtcbn1cbmkuaWNvbi50cmFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmOFwiO1xufVxuaS5pY29uLnRyYXNoLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlZFwiO1xufVxuaS5pY29uLnRyZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmJcIjtcbn1cbmkuaWNvbi50cmVsbG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODFcIjtcbn1cbmkuaWNvbi50cmlwYWR2aXNvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MlwiO1xufVxuaS5pY29uLnRyb3BoeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5MVwiO1xufVxuaS5pY29uLnRydWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQxXCI7XG59XG5pLmljb24udHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU0XCI7XG59XG5pLmljb24udHVtYmxyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTczXCI7XG59XG5pLmljb24udHVtYmxyLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3NFwiO1xufVxuaS5pY29uLnR2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZjXCI7XG59XG5pLmljb24udHdpdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU4XCI7XG59XG5pLmljb24udHdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5OVwiO1xufVxuaS5pY29uLnR3aXR0ZXIuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgxXCI7XG59XG5pLmljb24udHlwbzM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmJcIjtcbn1cbmkuaWNvbi51YmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDAyXCI7XG59XG5pLmljb24udWlraXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDNcIjtcbn1cbmkuaWNvbi51bWJyZWxsYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlOVwiO1xufVxuaS5pY29uLnVuZGVybGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjZFwiO1xufVxuaS5pY29uLnVuZG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTJcIjtcbn1cbmkuaWNvbi51bmRvLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlYVwiO1xufVxuaS5pY29uLnVuaXJlZ2lzdHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA0XCI7XG59XG5pLmljb24udW5pdmVyc2FsLmFjY2VzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5YVwiO1xufVxuaS5pY29uLnVuaXZlcnNpdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWNcIjtcbn1cbmkuaWNvbi51bmxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjdcIjtcbn1cbmkuaWNvbi51bmxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWNcIjtcbn1cbmkuaWNvbi51bmxvY2suYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNlXCI7XG59XG5pLmljb24udW50YXBwZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwNVwiO1xufVxuaS5pY29uLnVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5M1wiO1xufVxuaS5pY29uLnVzYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4N1wiO1xufVxuaS5pY29uLnVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDdcIjtcbn1cbmkuaWNvbi51c2VyLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiZFwiO1xufVxuaS5pY29uLnVzZXIubWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjBcIjtcbn1cbmkuaWNvbi51c2VyLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzRcIjtcbn1cbmkuaWNvbi51c2VyLnNlY3JldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxYlwiO1xufVxuaS5pY29uLnVzZXIudGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMFwiO1xufVxuaS5pY29uLnVzc3VubmFoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA3XCI7XG59XG5pLmljb24udXRlbnNpbC5zcG9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlNVwiO1xufVxuaS5pY29uLnV0ZW5zaWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU3XCI7XG59XG5pLmljb24udmFhZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA4XCI7XG59XG5pLmljb24udmVudXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjFcIjtcbn1cbmkuaWNvbi52ZW51cy5kb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjZcIjtcbn1cbmkuaWNvbi52ZW51cy5tYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI4XCI7XG59XG5pLmljb24udmlhY29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzN1wiO1xufVxuaS5pY29uLnZpYWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhOVwiO1xufVxuaS5pY29uLnZpYWRlby5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWFcIjtcbn1cbmkuaWNvbi52aWJlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwOVwiO1xufVxuaS5pY29uLnZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNkXCI7XG59XG5pLmljb24udmltZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGFcIjtcbn1cbmkuaWNvbi52aW1lby5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTRcIjtcbn1cbmkuaWNvbi52aW1lby52OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdkXCI7XG59XG5pLmljb24udmluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjYVwiO1xufVxuaS5pY29uLnZrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg5XCI7XG59XG5pLmljb24udm52OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBiXCI7XG59XG5pLmljb24udm9sbGV5YmFsbC5iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDVmXCI7XG59XG5pLmljb24udm9sdW1lLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjdcIjtcbn1cbmkuaWNvbi52b2x1bWUub2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI2XCI7XG59XG5pLmljb24udm9sdW1lLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI4XCI7XG59XG5pLmljb24udnVlanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWZcIjtcbn1cbmkuaWNvbi53YXJlaG91c2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OTRcIjtcbn1cbmkuaWNvbi53ZWlibzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4YVwiO1xufVxuaS5pY29uLndlaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5NlwiO1xufVxuaS5pY29uLndlaXhpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkN1wiO1xufVxuaS5pY29uLndoYXRzYXBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMyXCI7XG59XG5pLmljb24ud2hhdHNhcHAuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBjXCI7XG59XG5pLmljb24ud2hlZWxjaGFpcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5M1wiO1xufVxuaS5pY29uLndobWNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBkXCI7XG59XG5pLmljb24ud2lmaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYlwiO1xufVxuaS5pY29uLndpa2lwZWRpYS53OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY2XCI7XG59XG5pLmljb24ud2luZG93LmNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDEwXCI7XG59XG5pLmljb24ud2luZG93Lm1heGltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQwXCI7XG59XG5pLmljb24ud2luZG93Lm1pbmltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQxXCI7XG59XG5pLmljb24ud2luZG93LnJlc3RvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDJcIjtcbn1cbmkuaWNvbi53aW5kb3dzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdhXCI7XG59XG5pLmljb24ud29uLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTlcIjtcbn1cbmkuaWNvbi53b3JkcHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWFcIjtcbn1cbmkuaWNvbi53b3JkcHJlc3Muc2ltcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDExXCI7XG59XG5pLmljb24ud3BiZWdpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5N1wiO1xufVxuaS5pY29uLndwZXhwbG9yZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGVcIjtcbn1cbmkuaWNvbi53cGZvcm1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk4XCI7XG59XG5pLmljb24ud3JlbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFkXCI7XG59XG5pLmljb24ueGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMlwiO1xufVxuaS5pY29uLnhpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjhcIjtcbn1cbmkuaWNvbi54aW5nLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2OVwiO1xufVxuaS5pY29uLnkuY29tYmluYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzYlwiO1xufVxuaS5pY29uLnlhaG9vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTllXCI7XG59XG5pLmljb24ueWFuZGV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDEzXCI7XG59XG5pLmljb24ueWFuZGV4LmludGVybmF0aW9uYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTRcIjtcbn1cbmkuaWNvbi55ZWxwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU5XCI7XG59XG5pLmljb24ueWVuLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi55b2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiMVwiO1xufVxuaS5pY29uLnlvdXR1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjdcIjtcbn1cbmkuaWNvbi55b3V0dWJlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzMVwiO1xufVxuLyogQWxpYXNlcyAqL1xuaS5pY29uLmNoZXNzLnJvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDdcIjtcbn1cbmkuaWNvbi5vcmRlcmVkLmxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2JcIjtcbn1cbmkuaWNvbi51bm9yZGVyZWQubGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYVwiO1xufVxuaS5pY29uLnVzZXIuZG9jdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYwXCI7XG59XG5pLmljb24uc2hpZWxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2VkXCI7XG59XG5pLmljb24ucHV6emxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJlXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuYW1hem9uLnBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZFwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmFtZXJpY2FuLmV4cHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5kaW5lcnMuY2x1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0Y1wiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmRpc2NvdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYyXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuamNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQubWFzdGVyY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLnBheXBhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNFwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLnN0cmlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNVwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLnZpc2E6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbmkuaWNvbi5hZGQuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU1XCI7XG59XG5pLmljb24uYWRkLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmZVwiO1xufVxuaS5pY29uLmFkZC50by5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3MVwiO1xufVxuaS5pY29uLmFkZC50by5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE3XCI7XG59XG5pLmljb24uYWRkLnVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzRcIjtcbn1cbmkuaWNvbi5hZGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjdcIjtcbn1cbmkuaWNvbi5hbGFybS5tdXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY2XCI7XG59XG5pLmljb24uYWxhcm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjNcIjtcbn1cbmkuaWNvbi5hbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cbmkuaWNvbi5hbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cbmkuaWNvbi5hbWVyaWNhbi5leHByZXNzLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5hbWVyaWNhbi5leHByZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYzXCI7XG59XG5pLmljb24uYW1leDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmM1wiO1xufVxuaS5pY29uLmFubm91bmNlbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMVwiO1xufVxuaS5pY29uLmFyZWEuY2hhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmVcIjtcbn1cbmkuaWNvbi5hcmVhLmdyYXBoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZlXCI7XG59XG5pLmljb24uYXJyb3cuZG93bi5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE4XCI7XG59XG5pLmljb24uYXNleHVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyZFwiO1xufVxuaS5pY29uLmFzbC5pbnRlcnByZXRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTNcIjtcbn1cbmkuaWNvbi5hc2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTNcIjtcbn1cbmkuaWNvbi5hc3Npc3RpdmUubGlzdGVuaW5nLmRldmljZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cbmkuaWNvbi5hdHRhY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzZcIjtcbn1cbmkuaWNvbi5hdHRlbnRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmFcIjtcbn1cbmkuaWNvbi5iYWxhbmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRlXCI7XG59XG5pLmljb24uYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZjXCI7XG59XG5pLmljb24uYmF0aHR1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZFwiO1xufVxuaS5pY29uLmJhdHRlcnkuZm91cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MFwiO1xufVxuaS5pY29uLmJhdHRlcnkuaGlnaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MVwiO1xufVxuaS5pY29uLmJhdHRlcnkubG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQzXCI7XG59XG5pLmljb24uYmF0dGVyeS5tZWRpdW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDJcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5Lm9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0M1wiO1xufVxuaS5pY29uLmJhdHRlcnkudGhyZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDFcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5LnR3bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MlwiO1xufVxuaS5pY29uLmJhdHRlcnkuemVybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0NFwiO1xufVxuaS5pY29uLmJpcnRoZGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZkXCI7XG59XG5pLmljb24uYmxvY2subGF5b3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA5XCI7XG59XG5pLmljb24uYmx1ZXRvb3RoLmFsdGVybmF0aXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk0XCI7XG59XG5pLmljb24uYnJva2VuLmNoYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI3XCI7XG59XG5pLmljb24uYnJvd3NlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyMlwiO1xufVxuaS5pY29uLmNhbGwuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk4XCI7XG59XG5pLmljb24uY2FsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5NVwiO1xufVxuaS5pY29uLmNhbmNlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2FcIjtcbn1cbmkuaWNvbi5jYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYVwiO1xufVxuaS5pY29uLmNoYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMxXCI7XG59XG5pLmljb24uY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NVwiO1xufVxuaS5pY29uLmNoZWNrZWQuY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzRcIjtcbn1cbmkuaWNvbi5jaGVja21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGNcIjtcbn1cbmkuaWNvbi5jaXJjbGUubm90Y2hlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZVwiO1xufVxuaS5pY29uLmNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG5pLmljb24uY255OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU3XCI7XG59XG5pLmljb24uY29ja3RhaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDBcIjtcbn1cbmkuaWNvbi5jb21tZW50aW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdhXCI7XG59XG5pLmljb24uY29tcHV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDhcIjtcbn1cbmkuaWNvbi5jb25maWd1cmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWRcIjtcbn1cbmkuaWNvbi5jb250ZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM5XCI7XG59XG5pLmljb24uZGVhZm5lc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTRcIjtcbn1cbmkuaWNvbi5kZWxldGUuY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzNcIjtcbn1cbmkuaWNvbi5kZWxldGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi5kZXRlY3RpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWJcIjtcbn1cbmkuaWNvbi5kaW5lcnMuY2x1Yi5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRjXCI7XG59XG5pLmljb24uZGluZXJzLmNsdWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGNcIjtcbn1cbmkuaWNvbi5kaXNjb3Zlci5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYyXCI7XG59XG5pLmljb24uZGlzY292ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjJcIjtcbn1cbmkuaWNvbi5kaXNjdXNzaW9uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuaS5pY29uLmRvY3RvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMFwiO1xufVxuaS5pY29uLmRvbGxhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NVwiO1xufVxuaS5pY29uLmRvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWVcIjtcbn1cbmkuaWNvbi5kcmliYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdkXCI7XG59XG5pLmljb24uZHJpdmVycy5saWNlbnNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMyXCI7XG59XG5pLmljb24uZHJvcGRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDdcIjtcbn1cbmkuaWNvbi5lZXJjYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRhXCI7XG59XG5pLmljb24uZW1lcmdlbmN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY5XCI7XG59XG5pLmljb24uZW52aXJhLmdhbGxlcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTlcIjtcbn1cbmkuaWNvbi5lcmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyZFwiO1xufVxuaS5pY29uLmV1cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1M1wiO1xufVxuaS5pY29uLmV1cm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTNcIjtcbn1cbmkuaWNvbi5leWVkcm9wcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZiXCI7XG59XG5pLmljb24uZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjRcIjtcbn1cbmkuaWNvbi5mYWN0b3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc1XCI7XG59XG5pLmljb24uZmF2b3JpdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDVcIjtcbn1cbmkuaWNvbi5mZWVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDllXCI7XG59XG5pLmljb24uZmVtYWxlLmhvbW9zZXh1YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjZcIjtcbn1cbmkuaWNvbi5maWxlLnRleHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWNcIjtcbn1cbmkuaWNvbi5maW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU1XCI7XG59XG5pLmljb24uZmlyc3QuYWlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZhXCI7XG59XG5pLmljb24uZml2ZS5odW5kcmVkLnBpeGVsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2ZVwiO1xufVxuaS5pY29uLmZvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjZcIjtcbn1cbmkuaWNvbi5nYW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFiXCI7XG59XG5pLmljb24uZ2F5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI3XCI7XG59XG5pLmljb24uZ2JwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU0XCI7XG59XG5pLmljb24uZ2l0dGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg0XCI7XG59XG5pLmljb24uZ29vZ2xlLnBsdXMuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIzXCI7XG59XG5pLmljb24uZ29vZ2xlLnBsdXMub2ZmaWNpYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjNcIjtcbn1cbmkuaWNvbi5ncmFiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU1XCI7XG59XG5pLmljb24uZ3JhZHVhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZFwiO1xufVxuaS5pY29uLmdyaWQubGF5b3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBhXCI7XG59XG5pLmljb24uZ3JvdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzBcIjtcbn1cbmkuaWNvbi5oOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZkXCI7XG59XG5pLmljb24uaGFuZC52aWN0b3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjViXCI7XG59XG5pLmljb24uaGFuZGljYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTNcIjtcbn1cbmkuaWNvbi5oYXJkLm9mLmhlYXJpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTRcIjtcbn1cbmkuaWNvbi5oZWFkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGNcIjtcbn1cbmkuaWNvbi5oZWxwLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1OVwiO1xufVxuaS5pY29uLmhlbHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjhcIjtcbn1cbmkuaWNvbi5oZXRlcm9zZXh1YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjhcIjtcbn1cbmkuaWNvbi5oaWRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcwXCI7XG59XG5pLmljb24uaG90ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzZcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3MuZm91cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NFwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy5mdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU0XCI7XG59XG5pLmljb24uaG91cmdsYXNzLm9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1MVwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy50aHJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1M1wiO1xufVxuaS5pY29uLmhvdXJnbGFzcy50d286YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTJcIjtcbn1cbmkuaWNvbi5pZGVhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGViXCI7XG59XG5pLmljb24uaWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24uaW4tY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxOFwiO1xufVxuaS5pY29uLmlucjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuaS5pY29uLmludGVyZ2VuZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI0XCI7XG59XG5pLmljb24uaW50ZXJzZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjRcIjtcbn1cbmkuaWNvbi5qYXBhbi5jcmVkaXQuYnVyZWF1LmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cbmkuaWNvbi5qYXBhbi5jcmVkaXQuYnVyZWF1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uamNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRiXCI7XG59XG5pLmljb24uanB5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU3XCI7XG59XG5pLmljb24ua3J3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU5XCI7XG59XG5pLmljb24ubGFiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMzXCI7XG59XG5pLmljb24ubGF3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRlXCI7XG59XG5pLmljb24ubGVnYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTNcIjtcbn1cbmkuaWNvbi5sZXNiaWFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI2XCI7XG59XG5pLmljb24ubGlnaHRuaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU3XCI7XG59XG5pLmljb24ubGlrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuaS5pY29uLmxpbmUuZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDFcIjtcbn1cbmkuaWNvbi5saW5rZWRpbi5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGNcIjtcbn1cbmkuaWNvbi5saW5raWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMxXCI7XG59XG5pLmljb24ubGlyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NVwiO1xufVxuaS5pY29uLmxpc3QubGF5b3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBiXCI7XG59XG5pLmljb24ubWFnbmlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiO1xufVxuaS5pY29uLm1haWwuZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NFwiO1xufVxuaS5pY29uLm1haWwuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk5XCI7XG59XG5pLmljb24ubWFpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMFwiO1xufVxuaS5pY29uLm1hbGUuaG9tb3NleHVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyN1wiO1xufVxuaS5pY29uLm1hbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMlwiO1xufVxuaS5pY29uLm1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MVwiO1xufVxuaS5pY29uLm1hcnMuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI5XCI7XG59XG5pLmljb24ubWFycy5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJiXCI7XG59XG5pLmljb24ubWFycy52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYVwiO1xufVxuaS5pY29uLm1hc3RlcmNhcmQuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLm1hc3RlcmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjFcIjtcbn1cbmkuaWNvbi5taWNyb3NvZnQuZWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuaS5pY29uLm1pbGl0YXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZiXCI7XG59XG5pLmljb24ubXMuZWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuaS5pY29uLm11dGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzFcIjtcbn1cbmkuaWNvbi5uZXcucGllZC5waXBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhZVwiO1xufVxuaS5pY29uLm5vbi5iaW5hcnkudHJhbnNnZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjNcIjtcbn1cbmkuaWNvbi5udW1iZXJlZC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNiXCI7XG59XG5pLmljb24ub3B0aW5tb25zdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNjXCI7XG59XG5pLmljb24ub3B0aW9uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkZVwiO1xufVxuaS5pY29uLm90aGVyLmdlbmRlci5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJiXCI7XG59XG5pLmljb24ub3RoZXIuZ2VuZGVyLnZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJhXCI7XG59XG5pLmljb24ub3RoZXIuZ2VuZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI5XCI7XG59XG5pLmljb24ucGF5bWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZFwiO1xufVxuaS5pY29uLnBheXBhbC5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY0XCI7XG59XG5pLmljb24ucGVuY2lsLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0YlwiO1xufVxuaS5pY29uLnBob3RvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMwXCI7XG59XG5pLmljb24ucGljdHVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZVwiO1xufVxuaS5pY29uLnBpZS5jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuaS5pY29uLnBpZS5ncmFwaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuaS5pY29uLnBpZWQucGlwZXIuaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFlXCI7XG59XG5pLmljb24ucGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDhkXCI7XG59XG5pLmljb24ucGx1cy5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE3XCI7XG59XG5pLmljb24ucG9ja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY1XCI7XG59XG5pLmljb24ucG9pbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDFcIjtcbn1cbmkuaWNvbi5wb2ludGluZy5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7XG59XG5pLmljb24ucG9pbnRpbmcubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNVwiO1xufVxuaS5pY29uLnBvaW50aW5nLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE0XCI7XG59XG5pLmljb24ucG9pbnRpbmcudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTZcIjtcbn1cbmkuaWNvbi5wb3VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NFwiO1xufVxuaS5pY29uLnBvd2VyLmNvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTZcIjtcbn1cbmkuaWNvbi5wb3dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMVwiO1xufVxuaS5pY29uLnByaXZhY3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODRcIjtcbn1cbmkuaWNvbi5yLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZFwiO1xufVxuaS5pY29uLnJhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTlcIjtcbn1cbmkuaWNvbi5yZWNvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2RcIjtcbn1cbmkuaWNvbi5yZWZyZXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIxXCI7XG59XG5pLmljb24ucmVtb3ZlLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1N1wiO1xufVxuaS5pY29uLnJlbW92ZS5mcm9tLmNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcyXCI7XG59XG5pLmljb24ucmVtb3ZlLnVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi5yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi5yZXBlYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWVcIjtcbn1cbmkuaWNvbi5ybWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi5yb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNThcIjtcbn1cbmkuaWNvbi5ydWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OFwiO1xufVxuaS5pY29uLnJ1cGVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG5pLmljb24uczE1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNkXCI7XG59XG5pLmljb24uc2VsZWN0ZWQucmFkaW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbmkuaWNvbi5zZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ4XCI7XG59XG5pLmljb24uc2V0dGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxM1wiO1xufVxuaS5pY29uLnNldHRpbmdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg1XCI7XG59XG5pLmljb24uc2hla2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24uc2hlcWVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24uc2hpcHBpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDFcIjtcbn1cbmkuaWNvbi5zaG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdhXCI7XG59XG5pLmljb24uc2h1ZmZsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NFwiO1xufVxuaS5pY29uLnNodXRkb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDExXCI7XG59XG5pLmljb24uc2lkZWJhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOVwiO1xufVxuaS5pY29uLnNpZ25pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTdcIjtcbn1cbmkuaWNvbi5zaWdudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDRcIjtcbn1cbmkuaWNvbi5zbGlkZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRlXCI7XG59XG5pLmljb24uc29jY2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUzXCI7XG59XG5pLmljb24uc29ydC5hbHBoYWJldC5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWRcIjtcbn1cbmkuaWNvbi5zb3J0LmFscGhhYmV0LmRlc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWVcIjtcbn1cbmkuaWNvbi5zb3J0LmFzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZVwiO1xufVxuaS5pY29uLnNvcnQuY29udGVudC5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjBcIjtcbn1cbmkuaWNvbi5zb3J0LmNvbnRlbnQuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MVwiO1xufVxuaS5pY29uLnNvcnQuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZFwiO1xufVxuaS5pY29uLnNvcnQubnVtZXJpYy5hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjJcIjtcbn1cbmkuaWNvbi5zb3J0Lm51bWVyaWMuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2M1wiO1xufVxuaS5pY29uLnNvdW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI1XCI7XG59XG5pLmljb24uc3B5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7XG59XG5pLmljb24uc3RyaXBlLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjVcIjtcbn1cbmkuaWNvbi5zdHVkZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTlkXCI7XG59XG5pLmljb24udGFsazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3YVwiO1xufVxuaS5pY29uLnRhcmdldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MFwiO1xufVxuaS5pY29uLnRlbGV0eXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU0XCI7XG59XG5pLmljb24udGVsZXZpc2lvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2Y1wiO1xufVxuaS5pY29uLnRleHQuY3Vyc29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ2XCI7XG59XG5pLmljb24udGV4dC50ZWxlcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTRcIjtcbn1cbmkuaWNvbi50aGVtZS5pc2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIyXCI7XG59XG5pLmljb24udGhlbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDNcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjN1wiO1xufVxuaS5pY29uLnRodW1iLnRhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGRcIjtcbn1cbmkuaWNvbi50aW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG59XG5pLmljb24udG06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWNcIjtcbn1cbmkuaWNvbi50b2dnbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MFwiO1xufVxuaS5pY29uLnRvZ2dsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkxXCI7XG59XG5pLmljb24udG9nZ2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUyXCI7XG59XG5pLmljb24udG9nZ2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG5pLmljb24udHJhbnNsYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFiXCI7XG59XG5pLmljb24udHJhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIxXCI7XG59XG5pLmljb24udHJlYXRtZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYxXCI7XG59XG5pLmljb24udHJpYW5nbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkN1wiO1xufVxuaS5pY29uLnRyaWFuZ2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDlcIjtcbn1cbmkuaWNvbi50cmlhbmdsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYVwiO1xufVxuaS5pY29uLnRyaWFuZ2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ4XCI7XG59XG5pLmljb24udHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk1XCI7XG59XG5pLmljb24udW5oaWRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZlXCI7XG59XG5pLmljb24udW5saW5raWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI3XCI7XG59XG5pLmljb24udW5tdXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMwXCI7XG59XG5pLmljb24udXNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU1XCI7XG59XG5pLmljb24udXNlci5jYW5jZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyLmNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG5pLmljb24udXNlci5kZWxldGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyLng6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi52Y2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiYlwiO1xufVxuaS5pY29uLnZpZGVvLmNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZFwiO1xufVxuaS5pY29uLnZpZGVvLnBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDRcIjtcbn1cbmkuaWNvbi52aXNhLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbmkuaWNvbi52aXNhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYwXCI7XG59XG5pLmljb24udm9sdW1lLmNvbnRyb2wucGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTBcIjtcbn1cbmkuaWNvbi53YWl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG59XG5pLmljb24ud2FybmluZy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmFcIjtcbn1cbmkuaWNvbi53YXJuaW5nLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzFcIjtcbn1cbmkuaWNvbi53YXJuaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJhXCI7XG59XG5pLmljb24ud2VjaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ3XCI7XG59XG5pLmljb24ud2ktZmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWJcIjtcbn1cbmkuaWNvbi53aWtpcGVkaWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjZcIjtcbn1cbmkuaWNvbi53aW5uZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTFcIjtcbn1cbmkuaWNvbi53aXphcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDBcIjtcbn1cbmkuaWNvbi53b21hbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMVwiO1xufVxuaS5pY29uLndvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OVwiO1xufVxuaS5pY29uLndvcmRwcmVzcy5iZWdpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5N1wiO1xufVxuaS5pY29uLndvcmRwcmVzcy5mb3JtczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OFwiO1xufVxuaS5pY29uLndvcmxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFjXCI7XG59XG5pLmljb24ud3JpdGUuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRiXCI7XG59XG5pLmljb24ueDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLnljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNiXCI7XG59XG5pLmljb24ueWNvbWJpbmF0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2JcIjtcbn1cbmkuaWNvbi55ZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi56aXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODdcIjtcbn1cbmkuaWNvbi56b29tLWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24uem9vbS1vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTBcIjtcbn1cbmkuaWNvbi56b29tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24uYml0YnVja2V0LnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3MVwiO1xufVxuaS5pY29uLmNoZWNrbWFyay5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cbmkuaWNvbi5jaXJjbGUudGhpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuaS5pY29uLmNsb3VkLmRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgxXCI7XG59XG5pLmljb24uY2xvdWQudXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgyXCI7XG59XG5pLmljb24uY29tcG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwM1wiO1xufVxuaS5pY29uLmNvbnZlcnNhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmFsdGVybmF0aXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDlkXCI7XG59XG5pLmljb24uY3VycmVuY3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDFcIjtcbn1cbmkuaWNvbi5kYXNoYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmRcIjtcbn1cbmkuaWNvbi5kaWFtb25kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E1XCI7XG59XG5pLmljb24uZGlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMFwiO1xufVxuaS5pY29uLmV4Y2hhbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYyXCI7XG59XG5pLmljb24uZXh0ZXJuYWwuc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cbmkuaWNvbi5leHRlcm5hbC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjBcIjtcbn1cbmkuaWNvbi5leHRlcm5hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1ZFwiO1xufVxuaS5pY29uLmZhY2Vib29rLm9mZmljaWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgyXCI7XG59XG5pLmljb24uZm9vZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlN1wiO1xufVxuaS5pY29uLmhvdXJnbGFzcy56ZXJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG5pLmljb24ubGV2ZWwuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiZVwiO1xufVxuaS5pY29uLmxldmVsLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JmXCI7XG59XG5pLmljb24ubG9nb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY1XCI7XG59XG5pLmljb24ubWVhbnBhdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzhcIjtcbn1cbmkuaWNvbi5tb25leTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMVwiO1xufVxuaS5pY29uLm1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjJcIjtcbn1cbmkuaWNvbi5wZW5jaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDNcIjtcbn1cbmkuaWNvbi5wcm90ZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIzXCI7XG59XG5pLmljb24ucmFkaW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbmkuaWNvbi5yZW1vdmUuYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmVcIjtcbn1cbmkuaWNvbi5yZXNpemUuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzN1wiO1xufVxuaS5pY29uLnJlc2l6ZS52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzOFwiO1xufVxuaS5pY29uLnNpZ24taW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjZcIjtcbn1cbmkuaWNvbi5zaWduLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNVwiO1xufVxuaS5pY29uLnNwb29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU1XCI7XG59XG5pLmljb24uc3Rhci5oYWxmLmVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg5XCI7XG59XG5pLmljb24uc3Rhci5oYWxmLmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbmkuaWNvbi50aWNrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmZcIjtcbn1cbmkuaWNvbi50aW1lcy5yZWN0YW5nbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTBcIjtcbn1cbmkuaWNvbi53cml0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwM1wiO1xufVxuaS5pY29uLnlvdXR1YmUucGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2N1wiO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgT3V0bGluZSBJY29uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIE91dGxpbmUgSWNvbiAqL1xuLyogTG9hZCAmIERlZmluZSBJY29uIEZvbnQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ291dGxpbmUtaWNvbnMnO1xuICBzcmM6IHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ZvbnRzL291dGxpbmUtaWNvbnMuZW90XCIpO1xuICBzcmM6IHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ZvbnRzL291dGxpbmUtaWNvbnMuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ZvbnRzL291dGxpbmUtaWNvbnMud29mZjJcIikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoXCIuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9mb250cy9vdXRsaW5lLWljb25zLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksIHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ZvbnRzL291dGxpbmUtaWNvbnMudHRmXCIpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKFwiLi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZm9udHMvb3V0bGluZS1pY29ucy5zdmcjaWNvbnNcIikgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbmkuaWNvbi5vdXRsaW5lIHtcbiAgZm9udC1mYW1pbHk6ICdvdXRsaW5lLWljb25zJztcbn1cbi8qIEljb24gRGVmaW5pdGlvbnMgKi9cbmkuaWNvbi5hZGRyZXNzLmJvb2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiOVwiO1xufVxuaS5pY29uLmFkZHJlc3MuY2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmJiXCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5kb3duLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNThcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmxlZnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1OVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUucmlnaHQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1YVwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUudXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1YlwiO1xufVxuaS5pY29uLmJlbGwub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmM1wiO1xufVxuaS5pY29uLmJlbGwuc2xhc2gub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNlwiO1xufVxuaS5pY29uLmJvb2ttYXJrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmVcIjtcbn1cbmkuaWNvbi5idWlsZGluZy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFkXCI7XG59XG5pLmljb24uY2FsZW5kYXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzM1wiO1xufVxuaS5pY29uLmNhbGVuZGFyLmFsdGVybmF0ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDczXCI7XG59XG5pLmljb24uY2FsZW5kYXIuY2hlY2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NFwiO1xufVxuaS5pY29uLmNhbGVuZGFyLm1pbnVzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzJcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5wbHVzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzFcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci50aW1lcy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjczXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLmRvd24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MFwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5sZWZ0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTFcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUucmlnaHQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS51cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG5pLmljb24uY2hhcnQuYmFyLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODBcIjtcbn1cbmkuaWNvbi5jaGVjay5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1OFwiO1xufVxuaS5pY29uLmNoZWNrLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRhXCI7XG59XG5pLmljb24uY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTFcIjtcbn1cbmkuaWNvbi5jbGlwYm9hcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyOFwiO1xufVxuaS5pY29uLmNsb2NrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTdcIjtcbn1cbmkuaWNvbi5jbG9uZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRkXCI7XG59XG5pLmljb24uY2xvc2VkLmNhcHRpb25pbmcub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYVwiO1xufVxuaS5pY29uLmNvbW1lbnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NVwiO1xufVxuaS5pY29uLmNvbW1lbnQuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2FcIjtcbn1cbmkuaWNvbi5jb21tZW50cy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg2XCI7XG59XG5pLmljb24uY29tcGFzcy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRlXCI7XG59XG5pLmljb24uY29weS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM1XCI7XG59XG5pLmljb24uY29weXJpZ2h0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjlcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDlkXCI7XG59XG5pLmljb24uZG90LmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkyXCI7XG59XG5pLmljb24uZWRpdC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ0XCI7XG59XG5pLmljb24uZW52ZWxvcGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMFwiO1xufVxuaS5pY29uLmVudmVsb3BlLm9wZW4ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNlwiO1xufVxuaS5pY29uLmV5ZS5zbGFzaC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcwXCI7XG59XG5pLmljb24uZmlsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTViXCI7XG59XG5pLmljb24uZmlsZS5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1Y1wiO1xufVxuaS5pY29uLmZpbGUuYXJjaGl2ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM2XCI7XG59XG5pLmljb24uZmlsZS5hdWRpby5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM3XCI7XG59XG5pLmljb24uZmlsZS5jb2RlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzlcIjtcbn1cbmkuaWNvbi5maWxlLmV4Y2VsLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzNcIjtcbn1cbmkuaWNvbi5maWxlLmltYWdlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzVcIjtcbn1cbmkuaWNvbi5maWxlLnBkZi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMxXCI7XG59XG5pLmljb24uZmlsZS5wb3dlcnBvaW50Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzRcIjtcbn1cbmkuaWNvbi5maWxlLnZpZGVvLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzhcIjtcbn1cbmkuaWNvbi5maWxlLndvcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMlwiO1xufVxuaS5pY29uLmZsYWcub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyNFwiO1xufVxuaS5pY29uLmZvbGRlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdiXCI7XG59XG5pLmljb24uZm9sZGVyLm9wZW4ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3Y1wiO1xufVxuaS5pY29uLmZyb3duLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTlcIjtcbn1cbmkuaWNvbi5mdXRib2wub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlM1wiO1xufVxuaS5pY29uLmdlbS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E1XCI7XG59XG5pLmljb24uaGFuZC5saXphcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1OFwiO1xufVxuaS5pY29uLmhhbmQucGFwZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NlwiO1xufVxuaS5pY29uLmhhbmQucGVhY2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YlwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQuZG93bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5sZWZ0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTVcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LnJpZ2h0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTRcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LnVwLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTZcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50ZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YVwiO1xufVxuaS5pY29uLmhhbmQucm9jay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU1XCI7XG59XG5pLmljb24uaGFuZC5zY2lzc29ycy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU3XCI7XG59XG5pLmljb24uaGFuZC5zcG9jay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU5XCI7XG59XG5pLmljb24uaGFuZHNoYWtlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjVcIjtcbn1cbmkuaWNvbi5oZGQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMFwiO1xufVxuaS5pY29uLmhlYXJ0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDRcIjtcbn1cbmkuaWNvbi5ob3NwaXRhbC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY4XCI7XG59XG5pLmljb24uaG91cmdsYXNzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTRcIjtcbn1cbmkuaWNvbi5pZC5iYWRnZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMxXCI7XG59XG5pLmljb24uaWQuY2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMyXCI7XG59XG5pLmljb24uaW1hZ2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZVwiO1xufVxuaS5pY29uLmltYWdlcy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAyXCI7XG59XG5pLmljb24ua2V5Ym9hcmQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExY1wiO1xufVxuaS5pY29uLmxlbW9uLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTRcIjtcbn1cbmkuaWNvbi5saWZlLnJpbmcub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZFwiO1xufVxuaS5pY29uLmxpZ2h0YnVsYi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGViXCI7XG59XG5pLmljb24ubGlzdC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyMlwiO1xufVxuaS5pY29uLm1hcC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc5XCI7XG59XG5pLmljb24ubWVoLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWFcIjtcbn1cbmkuaWNvbi5taW51cy5zcXVhcmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NlwiO1xufVxuaS5pY29uLm1vbmV5LmJpbGwuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDFcIjtcbn1cbmkuaWNvbi5tb29uLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODZcIjtcbn1cbmkuaWNvbi5uZXdzcGFwZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYVwiO1xufVxuaS5pY29uLm9iamVjdC5ncm91cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ3XCI7XG59XG5pLmljb24ub2JqZWN0LnVuZ3JvdXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0OFwiO1xufVxuaS5pY29uLnBhcGVyLnBsYW5lLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDhcIjtcbn1cbmkuaWNvbi5wYXVzZS5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4YlwiO1xufVxuaS5pY29uLnBsYXkuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDRcIjtcbn1cbmkuaWNvbi5wbHVzLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZlXCI7XG59XG5pLmljb24ucXVlc3Rpb24uY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTlcIjtcbn1cbmkuaWNvbi5yZWdpc3RlcmVkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWRcIjtcbn1cbmkuaWNvbi5zYXZlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzdcIjtcbn1cbmkuaWNvbi5zaGFyZS5zcXVhcmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0ZFwiO1xufVxuaS5pY29uLnNtaWxlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMThcIjtcbn1cbmkuaWNvbi5zbm93Zmxha2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkY1wiO1xufVxuaS5pY29uLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM4XCI7XG59XG5pLmljb24uc3Rhci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA1XCI7XG59XG5pLmljb24uc3Rhci5oYWxmLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbmkuaWNvbi5zdGlja3kubm90ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ5XCI7XG59XG5pLmljb24uc3RvcC5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4ZFwiO1xufVxuaS5pY29uLnN1bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg1XCI7XG59XG5pLmljb24udGh1bWJzLmRvd24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NVwiO1xufVxuaS5pY29uLnRodW1icy51cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY0XCI7XG59XG5pLmljb24udGltZXMuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTdcIjtcbn1cbmkuaWNvbi50cmFzaC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlZFwiO1xufVxuaS5pY29uLnVzZXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwN1wiO1xufVxuaS5pY29uLnVzZXIuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmRcIjtcbn1cbmkuaWNvbi53aW5kb3cuY2xvc2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMFwiO1xufVxuaS5pY29uLndpbmRvdy5tYXhpbWl6ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQwXCI7XG59XG5pLmljb24ud2luZG93Lm1pbmltaXplLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDFcIjtcbn1cbmkuaWNvbi53aW5kb3cucmVzdG9yZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQyXCI7XG59XG4vKiBPdXRsaW5lIEFsaWFzZXMgKi9cbmkuaWNvbi5kaXNrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTBcIjtcbn1cbmkuaWNvbi5oZWFydC5lbXB0eSxcbmkuaWNvbi5zdGFyLmVtcHR5IHtcbiAgZm9udC1mYW1pbHk6ICdvdXRsaW5lLWljb25zJztcbn1cbmkuaWNvbi5oZWFydC5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuaS5pY29uLnN0YXIuZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIEJyYW5kIEljb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTG9hZCAmIERlZmluZSBCcmFuZCBGb250ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdicmFuZC1pY29ucyc7XG4gIHNyYzogdXJsKFwiLi90aGVtZXMvZGVmYXVsdC9hc3NldHMvZm9udHMvYnJhbmQtaWNvbnMuZW90XCIpO1xuICBzcmM6IHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ZvbnRzL2JyYW5kLWljb25zLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoXCIuL3RoZW1lcy9kZWZhdWx0L2Fzc2V0cy9mb250cy9icmFuZC1pY29ucy53b2ZmMlwiKSBmb3JtYXQoJ3dvZmYyJyksIHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ZvbnRzL2JyYW5kLWljb25zLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksIHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ZvbnRzL2JyYW5kLWljb25zLnR0ZlwiKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChcIi4vdGhlbWVzL2RlZmF1bHQvYXNzZXRzL2ZvbnRzL2JyYW5kLWljb25zLnN2ZyNpY29uc1wiKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyogQnJhbmQgSWNvbiBGb250IEZhbWlseSAqL1xuaS5pY29uLlxcMzUgMDBweCxcbmkuaWNvbi5hY2Nlc3NpYmxlLmljb24sXG5pLmljb24uYWNjdXNvZnQsXG5pLmljb24uYWRuLFxuaS5pY29uLmFkdmVyc2FsLFxuaS5pY29uLmFmZmlsaWF0ZXRoZW1lLFxuaS5pY29uLmFsZ29saWEsXG5pLmljb24uYW1hem9uLFxuaS5pY29uLmFtYXpvbi5wYXksXG5pLmljb24uYW1pbGlhLFxuaS5pY29uLmFuZHJvaWQsXG5pLmljb24uYW5nZWxsaXN0LFxuaS5pY29uLmFuZ3J5Y3JlYXRpdmUsXG5pLmljb24uYW5ndWxhcixcbmkuaWNvbi5hcHAuc3RvcmUsXG5pLmljb24uYXBwLnN0b3JlLmlvcyxcbmkuaWNvbi5hcHBlcixcbmkuaWNvbi5hcHBsZSxcbmkuaWNvbi5hcHBsZS5wYXksXG5pLmljb24uYXN5bW1ldHJpayxcbmkuaWNvbi5hdWRpYmxlLFxuaS5pY29uLmF1dG9wcmVmaXhlcixcbmkuaWNvbi5hdmlhbmV4LFxuaS5pY29uLmF2aWF0byxcbmkuaWNvbi5hd3MsXG5pLmljb24uYmFuZGNhbXAsXG5pLmljb24uYmVoYW5jZSxcbmkuaWNvbi5iZWhhbmNlLnNxdWFyZSxcbmkuaWNvbi5iaW1vYmplY3QsXG5pLmljb24uYml0YnVja2V0LFxuaS5pY29uLmJpdGNvaW4sXG5pLmljb24uYml0eSxcbmkuaWNvbi5ibGFjay50aWUsXG5pLmljb24uYmxhY2tiZXJyeSxcbmkuaWNvbi5ibG9nZ2VyLFxuaS5pY29uLmJsb2dnZXIuYixcbmkuaWNvbi5ibHVldG9vdGgsXG5pLmljb24uYmx1ZXRvb3RoLmIsXG5pLmljb24uYnRjLFxuaS5pY29uLmJ1cm9tb2JlbGV4cGVydGUsXG5pLmljb24uYnV5c2VsbGFkcyxcbmkuaWNvbi5jYy5hbWF6b24ucGF5LFxuaS5pY29uLmNjLmFtZXgsXG5pLmljb24uY2MuYXBwbGUucGF5LFxuaS5pY29uLmNjLmRpbmVycy5jbHViLFxuaS5pY29uLmNjLmRpc2NvdmVyLFxuaS5pY29uLmNjLmpjYixcbmkuaWNvbi5jYy5tYXN0ZXJjYXJkLFxuaS5pY29uLmNjLnBheXBhbCxcbmkuaWNvbi5jYy5zdHJpcGUsXG5pLmljb24uY2MudmlzYSxcbmkuaWNvbi5jZW50ZXJjb2RlLFxuaS5pY29uLmNocm9tZSxcbmkuaWNvbi5jbG91ZHNjYWxlLFxuaS5pY29uLmNsb3Vkc21pdGgsXG5pLmljb24uY2xvdWR2ZXJzaWZ5LFxuaS5pY29uLmNvZGVwZW4sXG5pLmljb24uY29kaWVwaWUsXG5pLmljb24uY29ubmVjdGRldmVsb3AsXG5pLmljb24uY29udGFvLFxuaS5pY29uLmNwYW5lbCxcbmkuaWNvbi5jcmVhdGl2ZS5jb21tb25zLFxuaS5pY29uLmNzczMsXG5pLmljb24uY3NzMy5hbHRlcm5hdGUsXG5pLmljb24uY3V0dGxlZmlzaCxcbmkuaWNvbi5kLmFuZC5kLFxuaS5pY29uLmRhc2hjdWJlLFxuaS5pY29uLmRlbGljaW91cyxcbmkuaWNvbi5kZXBsb3lkb2csXG5pLmljb24uZGVza3BybyxcbmkuaWNvbi5kZXZpYW50YXJ0LFxuaS5pY29uLmRpZ2csXG5pLmljb24uZGlnaXRhbC5vY2VhbixcbmkuaWNvbi5kaXNjb3JkLFxuaS5pY29uLmRpc2NvdXJzZSxcbmkuaWNvbi5kb2NodWIsXG5pLmljb24uZG9ja2VyLFxuaS5pY29uLmRyYWZ0MmRpZ2l0YWwsXG5pLmljb24uZHJpYmJibGUsXG5pLmljb24uZHJpYmJibGUuc3F1YXJlLFxuaS5pY29uLmRyb3Bib3gsXG5pLmljb24uZHJ1cGFsLFxuaS5pY29uLmR5YWxvZyxcbmkuaWNvbi5lYXJseWJpcmRzLFxuaS5pY29uLmVkZ2UsXG5pLmljb24uZWxlbWVudG9yLFxuaS5pY29uLmVtYmVyLFxuaS5pY29uLmVtcGlyZSxcbmkuaWNvbi5lbnZpcmEsXG5pLmljb24uZXJsYW5nLFxuaS5pY29uLmV0aGVyZXVtLFxuaS5pY29uLmV0c3ksXG5pLmljb24uZXhwZWRpdGVkc3NsLFxuaS5pY29uLmZhY2Vib29rLFxuaS5pY29uLmZhY2Vib29rLmYsXG5pLmljb24uZmFjZWJvb2subWVzc2VuZ2VyLFxuaS5pY29uLmZhY2Vib29rLnNxdWFyZSxcbmkuaWNvbi5maXJlZm94LFxuaS5pY29uLmZpcnN0Lm9yZGVyLFxuaS5pY29uLmZpcnN0ZHJhZnQsXG5pLmljb24uZmxpY2tyLFxuaS5pY29uLmZsaXBib2FyZCxcbmkuaWNvbi5mbHksXG5pLmljb24uZm9udC5hd2Vzb21lLFxuaS5pY29uLmZvbnQuYXdlc29tZS5hbHRlcm5hdGUsXG5pLmljb24uZm9udC5hd2Vzb21lLmZsYWcsXG5pLmljb24uZm9udGljb25zLFxuaS5pY29uLmZvbnRpY29ucy5maSxcbmkuaWNvbi5mb3J0LmF3ZXNvbWUsXG5pLmljb24uZm9ydC5hd2Vzb21lLmFsdGVybmF0ZSxcbmkuaWNvbi5mb3J1bWJlZSxcbmkuaWNvbi5mb3Vyc3F1YXJlLFxuaS5pY29uLmZyZWUuY29kZS5jYW1wLFxuaS5pY29uLmZyZWVic2QsXG5pLmljb24uZ2V0LnBvY2tldCxcbmkuaWNvbi5nZyxcbmkuaWNvbi5nZy5jaXJjbGUsXG5pLmljb24uZ2l0LFxuaS5pY29uLmdpdC5zcXVhcmUsXG5pLmljb24uZ2l0aHViLFxuaS5pY29uLmdpdGh1Yi5hbHRlcm5hdGUsXG5pLmljb24uZ2l0aHViLnNxdWFyZSxcbmkuaWNvbi5naXRrcmFrZW4sXG5pLmljb24uZ2l0bGFiLFxuaS5pY29uLmdpdHRlcixcbmkuaWNvbi5nbGlkZSxcbmkuaWNvbi5nbGlkZS5nLFxuaS5pY29uLmdvZm9yZSxcbmkuaWNvbi5nb29kcmVhZHMsXG5pLmljb24uZ29vZHJlYWRzLmcsXG5pLmljb24uZ29vZ2xlLFxuaS5pY29uLmdvb2dsZS5kcml2ZSxcbmkuaWNvbi5nb29nbGUucGxheSxcbmkuaWNvbi5nb29nbGUucGx1cyxcbmkuaWNvbi5nb29nbGUucGx1cy5nLFxuaS5pY29uLmdvb2dsZS5wbHVzLnNxdWFyZSxcbmkuaWNvbi5nb29nbGUud2FsbGV0LFxuaS5pY29uLmdyYXRpcGF5LFxuaS5pY29uLmdyYXYsXG5pLmljb24uZ3JpcGZpcmUsXG5pLmljb24uZ3J1bnQsXG5pLmljb24uZ3VscCxcbmkuaWNvbi5oYWNrZXIubmV3cyxcbmkuaWNvbi5oYWNrZXIubmV3cy5zcXVhcmUsXG5pLmljb24uaGlwcyxcbmkuaWNvbi5oaXJlLmEuaGVscGVyLFxuaS5pY29uLmhvb2xpLFxuaS5pY29uLmhvdGphcixcbmkuaWNvbi5ob3V6eixcbmkuaWNvbi5odG1sNSxcbmkuaWNvbi5odWJzcG90LFxuaS5pY29uLmltZGIsXG5pLmljb24uaW5zdGFncmFtLFxuaS5pY29uLmludGVybmV0LmV4cGxvcmVyLFxuaS5pY29uLmlveGhvc3QsXG5pLmljb24uaXR1bmVzLFxuaS5pY29uLml0dW5lcy5ub3RlLFxuaS5pY29uLmplbmtpbnMsXG5pLmljb24uam9nZXQsXG5pLmljb24uam9vbWxhLFxuaS5pY29uLmpzLFxuaS5pY29uLmpzLnNxdWFyZSxcbmkuaWNvbi5qc2ZpZGRsZSxcbmkuaWNvbi5rZXljZG4sXG5pLmljb24ua2lja3N0YXJ0ZXIsXG5pLmljb24ua2lja3N0YXJ0ZXIuayxcbmkuaWNvbi5rb3J2dWUsXG5pLmljb24ubGFyYXZlbCxcbmkuaWNvbi5sYXN0Zm0sXG5pLmljb24ubGFzdGZtLnNxdWFyZSxcbmkuaWNvbi5sZWFucHViLFxuaS5pY29uLmxlc3MsXG5pLmljb24ubGluZWNoYXQsXG5pLmljb24ubGlua2VkaW4sXG5pLmljb24ubGlua2VkaW4uYWx0ZXJuYXRlLFxuaS5pY29uLmxpbmtlZGluLmluLFxuaS5pY29uLmxpbm9kZSxcbmkuaWNvbi5saW51eCxcbmkuaWNvbi5seWZ0LFxuaS5pY29uLm1hZ2VudG8sXG5pLmljb24ubWF4Y2RuLFxuaS5pY29uLm1lZGFwcHMsXG5pLmljb24ubWVkaXVtLFxuaS5pY29uLm1lZGl1bS5tLFxuaS5pY29uLm1lZHJ0LFxuaS5pY29uLm1lZXR1cCxcbmkuaWNvbi5taWNyb3NvZnQsXG5pLmljb24ubWl4LFxuaS5pY29uLm1peGNsb3VkLFxuaS5pY29uLm1penVuaSxcbmkuaWNvbi5tb2R4LFxuaS5pY29uLm1vbmVybyxcbmkuaWNvbi5uYXBzdGVyLFxuaS5pY29uLm5pbnRlbmRvLnN3aXRjaCxcbmkuaWNvbi5ub2RlLFxuaS5pY29uLm5vZGUuanMsXG5pLmljb24ubnBtLFxuaS5pY29uLm5zOCxcbmkuaWNvbi5udXRyaXRpb25peCxcbmkuaWNvbi5vZG5va2xhc3NuaWtpLFxuaS5pY29uLm9kbm9rbGFzc25pa2kuc3F1YXJlLFxuaS5pY29uLm9wZW5jYXJ0LFxuaS5pY29uLm9wZW5pZCxcbmkuaWNvbi5vcGVyYSxcbmkuaWNvbi5vcHRpbi5tb25zdGVyLFxuaS5pY29uLm9zaSxcbmkuaWNvbi5wYWdlNCxcbmkuaWNvbi5wYWdlbGluZXMsXG5pLmljb24ucGFsZmVkLFxuaS5pY29uLnBhdHJlb24sXG5pLmljb24ucGF5cGFsLFxuaS5pY29uLnBlcmlzY29wZSxcbmkuaWNvbi5waGFicmljYXRvcixcbmkuaWNvbi5waG9lbml4LmZyYW1ld29yayxcbmkuaWNvbi5waHAsXG5pLmljb24ucGllZC5waXBlcixcbmkuaWNvbi5waWVkLnBpcGVyLmFsdGVybmF0ZSxcbmkuaWNvbi5waWVkLnBpcGVyLnBwLFxuaS5pY29uLnBpbnRlcmVzdCxcbmkuaWNvbi5waW50ZXJlc3QucCxcbmkuaWNvbi5waW50ZXJlc3Quc3F1YXJlLFxuaS5pY29uLnBsYXlzdGF0aW9uLFxuaS5pY29uLnByb2R1Y3QuaHVudCxcbmkuaWNvbi5wdXNoZWQsXG5pLmljb24ucHl0aG9uLFxuaS5pY29uLnFxLFxuaS5pY29uLnF1aW5zY2FwZSxcbmkuaWNvbi5xdW9yYSxcbmkuaWNvbi5yYXZlbHJ5LFxuaS5pY29uLnJlYWN0LFxuaS5pY29uLnJlYmVsLFxuaS5pY29uLnJlZHJpdmVyLFxuaS5pY29uLnJlZGRpdCxcbmkuaWNvbi5yZWRkaXQuYWxpZW4sXG5pLmljb24ucmVkZGl0LnNxdWFyZSxcbmkuaWNvbi5yZW5kYWN0LFxuaS5pY29uLnJlbnJlbixcbmkuaWNvbi5yZXBseWQsXG5pLmljb24ucmVzb2x2aW5nLFxuaS5pY29uLnJvY2tldGNoYXQsXG5pLmljb24ucm9ja3JtcyxcbmkuaWNvbi5zYWZhcmksXG5pLmljb24uc2FzcyxcbmkuaWNvbi5zY2hsaXgsXG5pLmljb24uc2NyaWJkLFxuaS5pY29uLnNlYXJjaGVuZ2luLFxuaS5pY29uLnNlbGxjYXN0LFxuaS5pY29uLnNlbGxzeSxcbmkuaWNvbi5zZXJ2aWNlc3RhY2ssXG5pLmljb24uc2hpcnRzaW5idWxrLFxuaS5pY29uLnNpbXBseWJ1aWx0LFxuaS5pY29uLnNpc3RyaXgsXG5pLmljb24uc2t5YXRsYXMsXG5pLmljb24uc2t5cGUsXG5pLmljb24uc2xhY2ssXG5pLmljb24uc2xhY2suaGFzaCxcbmkuaWNvbi5zbGlkZXNoYXJlLFxuaS5pY29uLnNuYXBjaGF0LFxuaS5pY29uLnNuYXBjaGF0Lmdob3N0LFxuaS5pY29uLnNuYXBjaGF0LnNxdWFyZSxcbmkuaWNvbi5zb3VuZGNsb3VkLFxuaS5pY29uLnNwZWFrYXAsXG5pLmljb24uc3BvdGlmeSxcbmkuaWNvbi5zdGFjay5leGNoYW5nZSxcbmkuaWNvbi5zdGFjay5vdmVyZmxvdyxcbmkuaWNvbi5zdGF5bGlua2VkLFxuaS5pY29uLnN0ZWFtLFxuaS5pY29uLnN0ZWFtLnNxdWFyZSxcbmkuaWNvbi5zdGVhbS5zeW1ib2wsXG5pLmljb24uc3RpY2tlci5tdWxlLFxuaS5pY29uLnN0cmF2YSxcbmkuaWNvbi5zdHJpcGUsXG5pLmljb24uc3RyaXBlLnMsXG5pLmljb24uc3R1ZGlvdmluYXJpLFxuaS5pY29uLnN0dW1ibGV1cG9uLFxuaS5pY29uLnN0dW1ibGV1cG9uLmNpcmNsZSxcbmkuaWNvbi5zdXBlcnBvd2VycyxcbmkuaWNvbi5zdXBwbGUsXG5pLmljb24udGVsZWdyYW0sXG5pLmljb24udGVsZWdyYW0ucGxhbmUsXG5pLmljb24udGVuY2VudC53ZWlibyxcbmkuaWNvbi50aGVtZWlzbGUsXG5pLmljb24udHJlbGxvLFxuaS5pY29uLnRyaXBhZHZpc29yLFxuaS5pY29uLnR1bWJscixcbmkuaWNvbi50dW1ibHIuc3F1YXJlLFxuaS5pY29uLnR3aXRjaCxcbmkuaWNvbi50d2l0dGVyLFxuaS5pY29uLnR3aXR0ZXIuc3F1YXJlLFxuaS5pY29uLnR5cG8zLFxuaS5pY29uLnViZXIsXG5pLmljb24udWlraXQsXG5pLmljb24udW5pcmVnaXN0cnksXG5pLmljb24udW50YXBwZCxcbmkuaWNvbi51c2IsXG5pLmljb24udXNzdW5uYWgsXG5pLmljb24udmFhZGluLFxuaS5pY29uLnZpYWNvaW4sXG5pLmljb24udmlhZGVvLFxuaS5pY29uLnZpYWRlby5zcXVhcmUsXG5pLmljb24udmliZXIsXG5pLmljb24udmltZW8sXG5pLmljb24udmltZW8uc3F1YXJlLFxuaS5pY29uLnZpbWVvLnYsXG5pLmljb24udmluZSxcbmkuaWNvbi52ayxcbmkuaWNvbi52bnYsXG5pLmljb24udnVlanMsXG5pLmljb24ud2VjaGF0LFxuaS5pY29uLndlaWJvLFxuaS5pY29uLndlaXhpbixcbmkuaWNvbi53aGF0c2FwcCxcbmkuaWNvbi53aGF0c2FwcC5zcXVhcmUsXG5pLmljb24ud2htY3MsXG5pLmljb24ud2lraXBlZGlhLncsXG5pLmljb24ud2luZG93cyxcbmkuaWNvbi53b3JkcHJlc3MsXG5pLmljb24ud29yZHByZXNzLnNpbXBsZSxcbmkuaWNvbi53cGJlZ2lubmVyLFxuaS5pY29uLndwZXhwbG9yZXIsXG5pLmljb24ud3Bmb3JtcyxcbmkuaWNvbi54Ym94LFxuaS5pY29uLnhpbmcsXG5pLmljb24ueGluZy5zcXVhcmUsXG5pLmljb24ueS5jb21iaW5hdG9yLFxuaS5pY29uLnlhaG9vLFxuaS5pY29uLnlhbmRleCxcbmkuaWNvbi55YW5kZXguaW50ZXJuYXRpb25hbCxcbmkuaWNvbi55ZWxwLFxuaS5pY29uLnlvYXN0LFxuaS5pY29uLnlvdXR1YmUsXG5pLmljb24ueW91dHViZS5zcXVhcmUge1xuICBmb250LWZhbWlseTogJ2JyYW5kLWljb25zJztcbn1cbi8qIEJyYW5kIEljb25zIElkZWFsbHkgV291bGQgQmUgRGVmaW5lZCBIZXJlICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJbWFnZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEltYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF2YXRhciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BhY2VkICovXG4vKiBGbG9hdGVkICovXG4vKiBTaXplICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJbWFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuaW1nLnVpLmltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuaW1hZ2Ugc3ZnLFxuLnVpLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaGlkZGVuLmltYWdlcyxcbi51aS5oaWRkZW4uaW1hZ2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLmhpZGRlbi50cmFuc2l0aW9uLmltYWdlcyxcbi51aS5oaWRkZW4udHJhbnNpdGlvbi5pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuaW1hZ2VzID4gLmhpZGRlbi50cmFuc2l0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuZGlzYWJsZWQuaW1hZ2VzLFxuLnVpLmRpc2FibGVkLmltYWdlIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbmxpbmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5saW5lLmltYWdlLFxuLnVpLmlubGluZS5pbWFnZSBzdmcsXG4udWkuaW5saW5lLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFZlcnRpY2FsIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRvcC5hbGlnbmVkLmltYWdlcyAuaW1hZ2UsXG4udWkudG9wLmFsaWduZWQuaW1hZ2UsXG4udWkudG9wLmFsaWduZWQuaW1hZ2Ugc3ZnLFxuLnVpLnRvcC5hbGlnbmVkLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5taWRkbGUuYWxpZ25lZC5pbWFnZXMgLmltYWdlLFxuLnVpLm1pZGRsZS5hbGlnbmVkLmltYWdlLFxuLnVpLm1pZGRsZS5hbGlnbmVkLmltYWdlIHN2Zyxcbi51aS5taWRkbGUuYWxpZ25lZC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkuYm90dG9tLmFsaWduZWQuaW1hZ2VzIC5pbWFnZSxcbi51aS5ib3R0b20uYWxpZ25lZC5pbWFnZSxcbi51aS5ib3R0b20uYWxpZ25lZC5pbWFnZSBzdmcsXG4udWkuYm90dG9tLmFsaWduZWQuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSb3VuZGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJvdW5kZWQuaW1hZ2VzIC5pbWFnZSxcbi51aS5yb3VuZGVkLmltYWdlLFxuLnVpLnJvdW5kZWQuaW1hZ2VzIC5pbWFnZSA+ICosXG4udWkucm91bmRlZC5pbWFnZSA+ICoge1xuICBib3JkZXItcmFkaXVzOiAwLjMxMjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXJlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ib3JkZXJlZC5pbWFnZXMgLmltYWdlLFxuLnVpLmJvcmRlcmVkLmltYWdlcyBpbWcsXG4udWkuYm9yZGVyZWQuaW1hZ2VzIHN2Zyxcbi51aS5ib3JkZXJlZC5pbWFnZSBpbWcsXG4udWkuYm9yZGVyZWQuaW1hZ2Ugc3ZnLFxuaW1nLnVpLmJvcmRlcmVkLmltYWdlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENpcmN1bGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNpcmN1bGFyLmltYWdlcyxcbi51aS5jaXJjdWxhci5pbWFnZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4udWkuY2lyY3VsYXIuaW1hZ2VzIC5pbWFnZSxcbi51aS5jaXJjdWxhci5pbWFnZSxcbi51aS5jaXJjdWxhci5pbWFnZXMgLmltYWdlID4gKixcbi51aS5jaXJjdWxhci5pbWFnZSA+ICoge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuaW1hZ2VzLFxuLnVpLmZsdWlkLmltYWdlLFxuLnVpLmZsdWlkLmltYWdlcyBpbWcsXG4udWkuZmx1aWQuaW1hZ2VzIHN2Zyxcbi51aS5mbHVpZC5pbWFnZSBzdmcsXG4udWkuZmx1aWQuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEF2YXRhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hdmF0YXIuaW1hZ2VzIC5pbWFnZSxcbi51aS5hdmF0YXIuaW1hZ2VzIGltZyxcbi51aS5hdmF0YXIuaW1hZ2VzIHN2Zyxcbi51aS5hdmF0YXIuaW1hZ2UgaW1nLFxuLnVpLmF2YXRhci5pbWFnZSBzdmcsXG4udWkuYXZhdGFyLmltYWdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDJlbTtcbiAgaGVpZ2h0OiAyZW07XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3BhY2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3BhY2VkLmltYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IHNwYWNlZFwiXS5pbWFnZSB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgc3BhY2VkXCJdLmltYWdlIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGVkLmltYWdlLFxuLnVpLmZsb2F0ZWQuaW1hZ2VzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4udWkucmlnaHQuZmxvYXRlZC5pbWFnZXMsXG4udWkucmlnaHQuZmxvYXRlZC5pbWFnZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cbi51aS5mbG9hdGVkLmltYWdlczpsYXN0LWNoaWxkLFxuLnVpLmZsb2F0ZWQuaW1hZ2U6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5jZW50ZXJlZC5pbWFnZXMsXG4udWkuY2VudGVyZWQuaW1hZ2Uge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmltYWdlcyAuaW1hZ2UsXG4udWkubWluaS5pbWFnZXMgaW1nLFxuLnVpLm1pbmkuaW1hZ2VzIHN2Zyxcbi51aS5taW5pLmltYWdlIHtcbiAgd2lkdGg6IDM1cHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuaW1hZ2VzIC5pbWFnZSxcbi51aS50aW55LmltYWdlcyBpbWcsXG4udWkudGlueS5pbWFnZXMgc3ZnLFxuLnVpLnRpbnkuaW1hZ2Uge1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwuaW1hZ2VzIC5pbWFnZSxcbi51aS5zbWFsbC5pbWFnZXMgaW1nLFxuLnVpLnNtYWxsLmltYWdlcyBzdmcsXG4udWkuc21hbGwuaW1hZ2Uge1xuICB3aWR0aDogMTUwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLm1lZGl1bS5pbWFnZXMgLmltYWdlLFxuLnVpLm1lZGl1bS5pbWFnZXMgaW1nLFxuLnVpLm1lZGl1bS5pbWFnZXMgc3ZnLFxuLnVpLm1lZGl1bS5pbWFnZSB7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuaW1hZ2VzIC5pbWFnZSxcbi51aS5sYXJnZS5pbWFnZXMgaW1nLFxuLnVpLmxhcmdlLmltYWdlcyBzdmcsXG4udWkubGFyZ2UuaW1hZ2Uge1xuICB3aWR0aDogNDUwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5pbWFnZXMgLmltYWdlLFxuLnVpLmJpZy5pbWFnZXMgaW1nLFxuLnVpLmJpZy5pbWFnZXMgc3ZnLFxuLnVpLmJpZy5pbWFnZSB7XG4gIHdpZHRoOiA2MDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5pbWFnZXMgLmltYWdlLFxuLnVpLmh1Z2UuaW1hZ2VzIGltZyxcbi51aS5odWdlLmltYWdlcyBzdmcsXG4udWkuaHVnZS5pbWFnZSB7XG4gIHdpZHRoOiA4MDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5pbWFnZXMgLmltYWdlLFxuLnVpLm1hc3NpdmUuaW1hZ2VzIGltZyxcbi51aS5tYXNzaXZlLmltYWdlcyBzdmcsXG4udWkubWFzc2l2ZS5pbWFnZSB7XG4gIHdpZHRoOiA5NjBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaW1hZ2VzIHtcbiAgZm9udC1zaXplOiAwZW07XG4gIG1hcmdpbjogMGVtIC0wLjI1cmVtIDByZW07XG59XG4udWkuaW1hZ2VzIC5pbWFnZSxcbi51aS5pbWFnZXMgPiBpbWcsXG4udWkuaW1hZ2VzID4gc3ZnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjI1cmVtIDAuNXJlbTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIElucHV0XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSW5wdXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBJbnB1dCAqL1xuLyogQ2lyY3VsYXIgSWNvbiBJbnB1dCAqL1xuLyogTGFiZWxlZCBJbnB1dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIERvd24gKi9cbi8qIEZvY3VzICovXG4vKiBFcnJvciAqL1xuLyogTG9hZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5pbnB1dCA+IGlucHV0IHtcbiAgbWFyZ2luOiAwZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZmxleDogMSAwIGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiAgcGFkZGluZzogMC42Nzg1NzE0M2VtIDFlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBicm93c2VycyByZXF1aXJlIHRoZXNlIHJ1bGVzIHNlcGFyYXRlICovXG4udWkuaW5wdXQgPiBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuODcpO1xufVxuLnVpLmlucHV0ID4gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxOTEsIDE5MSwgMTkxLCAwLjg3KTtcbn1cbi51aS5pbnB1dCA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuODcpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGlzYWJsZWQuaW5wdXQsXG4udWkuaW5wdXQ6bm90KC5kaXNhYmxlZCkgaW5wdXRbZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi51aS5kaXNhYmxlZC5pbnB1dCA+IGlucHV0LFxuLnVpLmlucHV0Om5vdCguZGlzYWJsZWQpIGlucHV0W2Rpc2FibGVkXSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5wdXQgPiBpbnB1dDphY3RpdmUsXG4udWkuaW5wdXQuZG93biBpbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBiYWNrZ3JvdW5kOiAjRkFGQUZBO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcubG9hZGluZy5pbnB1dCA+IGkuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5sb2FkaW5nLmxvYWRpbmcuaW5wdXQgPiBpLmljb246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYW5pbWF0aW9uOiBidXR0b24tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlucHV0LmZvY3VzID4gaW5wdXQsXG4udWkuaW5wdXQgPiBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzg1QjdEOTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnB1dC5mb2N1cyA+IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuLnVpLmlucHV0ID4gaW5wdXQ6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjg3KTtcbn1cbi51aS5pbnB1dC5mb2N1cyA+IGlucHV0OjotbW96LXBsYWNlaG9sZGVyLFxuLnVpLmlucHV0ID4gaW5wdXQ6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjg3KTtcbn1cbi51aS5pbnB1dC5mb2N1cyA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbi51aS5pbnB1dCA+IGlucHV0OmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuODcpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnB1dC5lcnJvciA+IGlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjZGNjtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xuICBjb2xvcjogIzlGM0EzODtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEVycm9yIFBsYWNlaG9sZGVyICovXG4udWkuaW5wdXQuZXJyb3IgPiBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjO1xufVxuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2U3YmRiYztcbn1cbi51aS5pbnB1dC5lcnJvciA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjICFpbXBvcnRhbnQ7XG59XG4vKiBGb2N1c2VkIEVycm9yIFBsYWNlaG9sZGVyICovXG4udWkuaW5wdXQuZXJyb3IgPiBpbnB1dDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2O1xufVxuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RhOTc5Njtcbn1cbi51aS5pbnB1dC5lcnJvciA+IGlucHV0OmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2ICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVHJhbnNwYXJlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudHJhbnNwYXJlbnQuaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG4vKiBUcmFuc3BhcmVudCBJY29uICovXG4udWkudHJhbnNwYXJlbnQuaWNvbi5pbnB1dCA+IGkuaWNvbiB7XG4gIHdpZHRoOiAxLjFlbTtcbn1cbi51aS50cmFuc3BhcmVudC5pY29uLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAyZW0gIWltcG9ydGFudDtcbn1cbi51aS50cmFuc3BhcmVudFtjbGFzcyo9XCJsZWZ0IGljb25cIl0uaW5wdXQgPiBpbnB1dCB7XG4gIHBhZGRpbmctbGVmdDogMmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLyogVHJhbnNwYXJlbnQgSW52ZXJ0ZWQgKi9cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLnRyYW5zcGFyZW50LmludmVydGVkLmlucHV0ID4gaW5wdXQge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmljb24uaW5wdXQgPiBpLmljb24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbjogMGVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAyLjY3MTQyODU3ZW07XG4gIG9wYWNpdHk6IDAuNTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmljb246bm90KC5saW5rKSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnVpLmljb24uaW5wdXQgPiBpbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuNjcxNDI4NTdlbSAhaW1wb3J0YW50O1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmljb246YmVmb3JlLFxuLnVpLmljb24uaW5wdXQgPiBpLmljb246YWZ0ZXIge1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG59XG4udWkuaWNvbi5pbnB1dCA+IGkubGluay5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmNpcmN1bGFyLmljb24ge1xuICB0b3A6IDAuMzVlbTtcbiAgcmlnaHQ6IDAuNWVtO1xufVxuLyogTGVmdCBJY29uIElucHV0ICovXG4udWlbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaS5pY29uIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDFweDtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwZW0gMGVtIDAuMjg1NzE0MjlyZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaS5jaXJjdWxhci5pY29uIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAuNWVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgaWNvblwiXS5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAyLjY3MTQyODU3ZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMWVtICFpbXBvcnRhbnQ7XG59XG4vKiBGb2N1cyAqL1xuLnVpLmljb24uaW5wdXQgPiBpbnB1dDpmb2N1cyB+IGkuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExhYmVsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBZGphY2VudCBMYWJlbCAqL1xuLnVpLmxhYmVsZWQuaW5wdXQgPiAubGFiZWwge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYWJlbGVkLmlucHV0ID4gLmxhYmVsOm5vdCguY29ybmVyKSB7XG4gIHBhZGRpbmctdG9wOiAwLjc4NTcxNDI5ZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjc4NTcxNDI5ZW07XG59XG4vKiBSZWd1bGFyIExhYmVsIG9uIExlZnQgKi9cbi51aS5sYWJlbGVkLmlucHV0Om5vdChbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0pIC5sYWJlbDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG59XG4udWkubGFiZWxlZC5pbnB1dDpub3QoW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdKSAubGFiZWw6Zmlyc3QtY2hpbGQgKyBpbnB1dCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udWkubGFiZWxlZC5pbnB1dDpub3QoW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdKSAubGFiZWw6Zmlyc3QtY2hpbGQgKyBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjODVCN0Q5O1xufVxuLyogUmVndWxhciBMYWJlbCBvbiBSaWdodCAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pbnB1dCA+IGlucHV0ICsgLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pbnB1dCA+IGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjODVCN0Q5ICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgTGFiZWwgKi9cbi51aS5sYWJlbGVkLmlucHV0IC5jb3JuZXIubGFiZWwge1xuICB0b3A6IDFweDtcbiAgcmlnaHQ6IDFweDtcbiAgZm9udC1zaXplOiAwLjY0Mjg1NzE0ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4vKiBTcGFjaW5nIHdpdGggY29ybmVyIGxhYmVsICovXG4udWlbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl06bm90KFtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdKS5sYWJlbGVkLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLXJpZ2h0OiAyLjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdLmljb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdKSA+IGlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogMy4yNWVtICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0pID4gLmljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDEuMjVlbTtcbn1cbi8qIExlZnQgTGFiZWxlZCAqL1xuLnVpW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0ubGFiZWxlZC5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAyLjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAzLjI1ZW0gIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGNvcm5lciBsYWJlbGVkXCJdLmljb24uaW5wdXQgPiAuaWNvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1ZW07XG59XG4vKiBDb3JuZXIgTGFiZWwgUG9zaXRpb24gICovXG4udWkuaW5wdXQgPiAudWkuY29ybmVyLmxhYmVsIHtcbiAgdG9wOiAxcHg7XG4gIHJpZ2h0OiAxcHg7XG59XG4udWkuaW5wdXQgPiAudWkubGVmdC5jb3JuZXIubGFiZWwge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbixcbi51aS5hY3Rpb24uaW5wdXQgPiAuYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuLnVpLmFjdGlvbi5pbnB1dCA+IC5idXR0b24sXG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDAuNzg1NzE0MjllbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNzg1NzE0MjllbTtcbiAgbWFyZ2luOiAwO1xufVxuLyogQnV0dG9uIG9uIFJpZ2h0ICovXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gaW5wdXQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5kcm9wZG93bjpub3QoOmZpcnN0LWNoaWxkKSxcbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5idXR0b25zOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuZHJvcGRvd246bGFzdC1jaGlsZCxcbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuYnV0dG9uOmxhc3QtY2hpbGQsXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmJ1dHRvbnM6bGFzdC1jaGlsZCA+IC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHggMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBweDtcbn1cbi8qIElucHV0IEZvY3VzICovXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM4NUI3RDkgIWltcG9ydGFudDtcbn1cbi8qIEJ1dHRvbiBvbiBMZWZ0ICovXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuZHJvcGRvd24sXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuYnV0dG9uLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmRyb3Bkb3duOmZpcnN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbjpmaXJzdC1jaGlsZCxcbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IC5idXR0b25zOmZpcnN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMHB4IDBweCAwLjI4NTcxNDI5cmVtO1xufVxuLyogSW5wdXQgRm9jdXMgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM4NUI3RDkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4udWkuaW52ZXJ0ZWQuaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnVpLmZsdWlkLmlucHV0ID4gaW5wdXQge1xuICB3aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLnNtYWxsLmlucHV0IHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkuaW5wdXQge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLnVpLmJpZy5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOWVtO1xufVxuLnVpLmh1Z2UuaW5wdXQge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNlbTtcbn1cbi51aS5tYXNzaXZlLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBpdCBpcyBoYXJkY29kZWQgYmVjYXVzZSB0aGUgc2VhcmNoYmFyIGlzIHdyYXBwZWQgaW4gPGZvcm0+XG4gICAgYW5kIGl0IGNhbid0IGJlIHdyYXBwZWQgaW4gaW52ZW5pby1zZWFyY2gtdWlcbiovXG4jaGVhZGVyLXNlYXJjaC1iYXIgLnVpLmlucHV0IHtcbiAgd2lkdGg6IDIwMHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzhweCAhaW1wb3J0YW50O1xufVxuI2hlYWRlci1zZWFyY2gtYmFyIC51aS5pbnB1dCA+IGlucHV0IHtcbiAgd2lkdGg6IDIwMHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzhweCAhaW1wb3J0YW50O1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTGFiZWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTGFiZWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBtZWRpdW0gaXMgbm90IEBlbVNpemUgY3VzdG9tIHZhbHVlIHJlcXVpcmVkICovXG4vKiBHcm91cCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMaW5rICovXG4vKiBJY29uICovXG4vKiBJbWFnZSAqL1xuLyogRGV0YWlsICovXG4vKiBEZWxldGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXNpYyAqL1xuLyogVGFnICovXG4vKiBBdm9pZHMgZXJyb3Igd2l0aCBiYWNrZ3JvdW5kOiBpbmhlcml0OyBvbiBhbmltYXRpb24gKi9cbi8qIFJpYmJvbiAqL1xuLyogUm91bmRpbmcgT2Zmc2V0IG9uIFRyaWFuZ2xlICovXG4vKiBSb3VuZGluZyBPZmZzZXQgb24gVHJpYW5nbGUgKi9cbi8qIENvbG9ycyAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIENvcm5lciAqL1xuLyogQ29ybmVyIFRleHQgKi9cbi8qIEhvcml6b250YWwgKi9cbi8qIENpcmN1bGFyIFBhZGRpbmcgKi9cbi8qIFBvaW50aW5nICovXG4vKiBCYXNpYyBQb2ludGluZyAqL1xuLyogRmxvYXRpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6aW5nICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIExhYmVsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW46IDBlbSAwLjE0Mjg1NzE0ZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOEU4RTg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNTgzM2VtIDAuODMzZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm9yZGVyOiAwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xufVxuLnVpLmxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5sYWJlbDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKiBMaW5rICovXG5hLnVpLmxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyogSW5zaWRlIExpbmsgKi9cbi51aS5sYWJlbCA+IGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IDAuMXMgb3BhY2l0eSBlYXNlO1xufVxuLnVpLmxhYmVsID4gYTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKiBJbWFnZSAqL1xuLnVpLmxhYmVsID4gaW1nIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgaGVpZ2h0OiAyLjE2NjZlbSAhaW1wb3J0YW50O1xufVxuLyogSWNvbiAqL1xuLnVpLmxhYmVsID4gLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwZW0gMC43NWVtIDBlbSAwZW07XG59XG4vKiBEZXRhaWwgKi9cbi51aS5sYWJlbCA+IC5kZXRhaWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBvcGFjaXR5OiAwLjg7XG59XG4udWkubGFiZWwgPiAuZGV0YWlsIC5pY29uIHtcbiAgbWFyZ2luOiAwZW0gMC4yNWVtIDBlbSAwZW07XG59XG4vKiBSZW1vdmFibGUgbGFiZWwgKi9cbi51aS5sYWJlbCA+IC5jbG9zZS5pY29uLFxuLnVpLmxhYmVsID4gLmRlbGV0ZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTtcbn1cbi51aS5sYWJlbCA+IC5kZWxldGUuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVscyA+IC5sYWJlbCB7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDAuNWVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhZGVyID4gLnVpLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogLTAuMjkxNjVlbTtcbn1cbi8qIFJlbW92ZSBib3JkZXIgcmFkaXVzIG9uIGF0dGFjaGVkIHNlZ21lbnQgKi9cbi51aS5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLnRvcC5sZWZ0LmF0dGFjaGVkLmxhYmVsLFxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLnRvcC5sZWZ0LmF0dGFjaGVkLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi51aS5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLnRvcC5yaWdodC5hdHRhY2hlZC5sYWJlbCxcbi51aS5ib3R0b20uYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AucmlnaHQuYXR0YWNoZWQubGFiZWwge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi51aS50b3AuYXR0YWNoZWQuc2VnbWVudCA+IC51aS5ib3R0b20ubGVmdC5hdHRhY2hlZC5sYWJlbCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4udWkudG9wLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkuYm90dG9tLnJpZ2h0LmF0dGFjaGVkLmxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG4vKiBQYWRkaW5nIG9uIG5leHQgY29udGVudCBhZnRlciBhIGxhYmVsICovXG4udWkudG9wLmF0dGFjaGVkLmxhYmVsOmZpcnN0LWNoaWxkICsgOm5vdCguYXR0YWNoZWQpLFxuLnVpLnRvcC5hdHRhY2hlZC5sYWJlbCArIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdICsgKiB7XG4gIG1hcmdpbi10b3A6IDJyZW0gIWltcG9ydGFudDtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQubGFiZWw6Zmlyc3QtY2hpbGQgfiA6bGFzdC1jaGlsZDpub3QoLmF0dGFjaGVkKSB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5pbWFnZS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBtYXgtd2lkdGg6IDk5OTlweDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgYmFja2dyb3VuZDogI0U4RThFODtcbiAgcGFkZGluZzogMC41ODMzZW0gMC44MzNlbSAwLjU4MzNlbSAwLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbWFnZS5sYWJlbCBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGhlaWdodDogMi4xNjY2ZW07XG4gIG1hcmdpbjogLTAuNTgzM2VtIDAuNWVtIC0wLjU4MzNlbSAtMC41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMGVtIDBlbSAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLmltYWdlLmxhYmVsIC5kZXRhaWwge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIG1hcmdpbjogLTAuNTgzM2VtIC0wLjgzM2VtIC0wLjU4MzNlbSAwLjVlbTtcbiAgcGFkZGluZzogMC41ODMzZW0gMC44MzNlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFRhZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhZy5sYWJlbHMgLmxhYmVsLFxuLnVpLnRhZy5sYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMS41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLnVpLnRhZy5sYWJlbHMgLmxhYmVsOmJlZm9yZSxcbi51aS50YWcubGFiZWw6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCg1MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDEwMCU7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB3aWR0aDogMS41NmVtO1xuICBoZWlnaHQ6IDEuNTZlbTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi51aS50YWcubGFiZWxzIC5sYWJlbDphZnRlcixcbi51aS50YWcubGFiZWw6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogLTAuMjVlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICB3aWR0aDogMC41ZW07XG4gIGhlaWdodDogMC41ZW07XG4gIGJveC1zaGFkb3c6IDAgLTFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENvcm5lciBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvcm5lci5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwZW07XG4gIHJpZ2h0OiAwZW07XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWNvbG9yOiAjRThFOEU4O1xuICB3aWR0aDogNGVtO1xuICBoZWlnaHQ6IDRlbTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIEljb24gTGFiZWwgKi9cbi51aS5jb3JuZXIubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLnVpLmNvcm5lci5sYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbiAgcmlnaHQ6IDBlbTtcbiAgdG9wOiAwZW07XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogMGVtO1xuICBoZWlnaHQ6IDBlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDRlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogMGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4udWkuY29ybmVyLmxhYmVsIC5pY29uIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMC42NDI4NTcxNGVtO1xuICBsZWZ0OiAwLjc4NTcxNDI5ZW07XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xuICBtYXJnaW46IDBlbTtcbn1cbi8qIExlZnQgQ29ybmVyICovXG4udWkubGVmdC5jb3JuZXIubGFiZWwsXG4udWkubGVmdC5jb3JuZXIubGFiZWw6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMGVtO1xufVxuLnVpLmxlZnQuY29ybmVyLmxhYmVsOmFmdGVyIHtcbiAgYm9yZGVyLXRvcDogNGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDRlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogMGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLWNvbG9yOiBpbmhlcml0O1xufVxuLnVpLmxlZnQuY29ybmVyLmxhYmVsIC5pY29uIHtcbiAgbGVmdDogLTAuNzg1NzE0MjllbTtcbn1cbi8qIFNlZ21lbnQgKi9cbi51aS5zZWdtZW50ID4gLnVpLmNvcm5lci5sYWJlbCB7XG4gIHRvcDogLTFweDtcbiAgcmlnaHQ6IC0xcHg7XG59XG4udWkuc2VnbWVudCA+IC51aS5sZWZ0LmNvcm5lci5sYWJlbCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmliYm9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmliYm9uLmxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDBlbTtcbiAgbWluLXdpZHRoOiBtYXgtY29udGVudDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW07XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi51aS5yaWJib24ubGFiZWw6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDBlbSAxLjJlbSAxLjJlbSAwZW07XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogaW5oZXJpdDtcbiAgd2lkdGg6IDBlbTtcbiAgaGVpZ2h0OiAwZW07XG59XG4vKiBQb3NpdGlvbmluZyAqL1xuLnVpLnJpYmJvbi5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoLTFyZW0gLSAxLjJlbSk7XG4gIG1hcmdpbi1yaWdodDogLTEuMmVtO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoMXJlbSArIDEuMmVtKTtcbiAgcGFkZGluZy1yaWdodDogMS4yZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgcmliYm9uXCJdLmxhYmVsIHtcbiAgbGVmdDogY2FsYygxMDAlICsgMXJlbSArIDEuMmVtKTtcbiAgcGFkZGluZy1sZWZ0OiAxLjJlbTtcbiAgcGFkZGluZy1yaWdodDogY2FsYygxcmVtICsgMS4yZW0pO1xufVxuLyogUmlnaHQgUmliYm9uICovXG4udWlbY2xhc3MqPVwicmlnaHQgcmliYm9uXCJdLmxhYmVsIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwZW0gMGVtIDAuMjg1NzE0MjlyZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgcmliYm9uXCJdLmxhYmVsOmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDEuMmVtIDEuMmVtIDBlbSAwZW07XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXQ7XG59XG4vKiBJbnNpZGUgVGFibGUgKi9cbi51aS5pbWFnZSA+IC5yaWJib24ubGFiZWwsXG4udWkuY2FyZCAuaW1hZ2UgPiAucmliYm9uLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFyZW07XG59XG4udWkuY2FyZCAuaW1hZ2UgPiAudWkucmliYm9uLmxhYmVsLFxuLnVpLmltYWdlID4gLnVpLnJpYmJvbi5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoLS0wLjA1cmVtIC0gMS4yZW0pO1xufVxuLnVpLmNhcmQgLmltYWdlID4gLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCxcbi51aS5pbWFnZSA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICBsZWZ0OiBjYWxjKDEwMCUgKyAtMC4wNXJlbSArIDEuMmVtKTtcbiAgcGFkZGluZy1sZWZ0OiAwLjgzM2VtO1xufVxuLyogSW5zaWRlIFRhYmxlICovXG4udWkudGFibGUgdGQgPiAudWkucmliYm9uLmxhYmVsIHtcbiAgbGVmdDogY2FsYygtMC43ODU3MTQyOWVtIC0gMS4yZW0pO1xufVxuLnVpLnRhYmxlIHRkID4gLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoMTAwJSArIDAuNzg1NzE0MjllbSArIDEuMmVtKTtcbiAgcGFkZGluZy1sZWZ0OiAwLjgzM2VtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5sYWJlbCxcbi51aS5hdHRhY2hlZC5sYWJlbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMGVtO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMGVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ubGFiZWwge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aVtjbGFzcyo9XCJ0b3AgbGVmdCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwZW0gMC4yODU3MTQyOXJlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidG9wIHJpZ2h0IGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDBlbSAwLjI4NTcxNDI5cmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBsZWZ0IGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjI4NTcxNDI5cmVtIDBlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSByaWdodCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwZW07XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwZW07XG4gIHdpZHRoOiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDBlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVsLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5hLnVpLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwRTBFMDtcbiAgYm9yZGVyLWNvbG9yOiAjRTBFMEUwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLnVpLmxhYmVscyBhLmxhYmVsOmhvdmVyOmJlZm9yZSxcbmEudWkubGFiZWw6aG92ZXI6YmVmb3JlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hY3RpdmUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDBEMEQwO1xuICBib3JkZXItY29sb3I6ICNEMEQwRDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmFjdGl2ZS5sYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDBEMEQwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmUgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmEudWkubGFiZWxzIC5hY3RpdmUubGFiZWw6aG92ZXIsXG5hLnVpLmFjdGl2ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEM4Qzg7XG4gIGJvcmRlci1jb2xvcjogI0M4QzhDODtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkubGFiZWxzIGEuYWN0aXZlLmxhYmVsOkFjdGl2ZUhvdmVyOmJlZm9yZSxcbmEudWkuYWN0aXZlLmxhYmVsOkFjdGl2ZUhvdmVyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEM4Qzg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWaXNpYmxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWxzLnZpc2libGUgLmxhYmVsLFxuLnVpLmxhYmVsLnZpc2libGU6bm90KC5kcm9wZG93bikge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgSGlkZGVuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWxzLmhpZGRlbiAubGFiZWwsXG4udWkubGFiZWwuaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gUmVkIC0tLSovXG4udWkucmVkLmxhYmVscyAubGFiZWwsXG4udWkucmVkLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5yZWQubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkucmVkLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwMTkxOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnJlZC5jb3JuZXIubGFiZWwsXG4udWkucmVkLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5yZWQucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjIxZTFlICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnJlZC5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnJlZC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPcmFuZ2UgLS0tKi9cbi51aS5vcmFuZ2UubGFiZWxzIC5sYWJlbCxcbi51aS5vcmFuZ2UubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLm9yYW5nZS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5vcmFuZ2UubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjI2MjAyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2YyNjIwMiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkub3JhbmdlLmNvcm5lci5sYWJlbCxcbi51aS5vcmFuZ2UuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLm9yYW5nZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICNjZjU5MGMgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMub3JhbmdlLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMub3JhbmdlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2YyNjIwMiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudDtcbn1cbi8qLS0tIFllbGxvdyAtLS0qL1xuLnVpLnllbGxvdy5sYWJlbHMgLmxhYmVsLFxuLnVpLnllbGxvdy5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkueWVsbG93LmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnllbGxvdy5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS55ZWxsb3cuY29ybmVyLmxhYmVsLFxuLnVpLnllbGxvdy5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkueWVsbG93LnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI2NkOTkwMyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy55ZWxsb3cubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy55ZWxsb3cubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xufVxuLyotLS0gT2xpdmUgLS0tKi9cbi51aS5vbGl2ZS5sYWJlbHMgLmxhYmVsLFxuLnVpLm9saXZlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5vbGl2ZS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5vbGl2ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5vbGl2ZS5jb3JuZXIubGFiZWwsXG4udWkub2xpdmUuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLm9saXZlLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzE5OGYzNSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5vbGl2ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMub2xpdmUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xufVxuLyotLS0gR3JlZW4gLS0tKi9cbi51aS5ncmVlbi5sYWJlbHMgLmxhYmVsLFxuLnVpLmdyZWVuLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5ncmVlbi5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5ncmVlbi5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5ncmVlbi5jb3JuZXIubGFiZWwsXG4udWkuZ3JlZW4uY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmdyZWVuLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzE5OGYzNSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmVlbi5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMuZ3JlZW4ubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzE2YWIzOSAhaW1wb3J0YW50O1xufVxuLyotLS0gVGVhbCAtLS0qL1xuLnVpLnRlYWwubGFiZWxzIC5sYWJlbCxcbi51aS50ZWFsLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS50ZWFsLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnRlYWwubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkudGVhbC5jb3JuZXIubGFiZWwsXG4udWkudGVhbC5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkudGVhbC5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICMwMDgyN2MgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudGVhbC5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy50ZWFsLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy50ZWFsLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJsdWUgLS0tKi9cbi51aS5ibHVlLmxhYmVscyAubGFiZWwsXG4udWkuYmx1ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTg1RDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjE4NUQwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuYmx1ZS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5ibHVlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2NzhjMiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxNjc4YzIgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLmJsdWUuY29ybmVyLmxhYmVsLFxuLnVpLmJsdWUuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmJsdWUucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjMWE2OWE0ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJsdWUubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMTg1RDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjE4NUQwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmx1ZS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMuYmx1ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxNjc4YzIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMTY3OGMyICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBWaW9sZXQgLS0tKi9cbi51aS52aW9sZXQubGFiZWxzIC5sYWJlbCxcbi51aS52aW9sZXQubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnZpb2xldC5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS52aW9sZXQubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkudmlvbGV0LmNvcm5lci5sYWJlbCxcbi51aS52aW9sZXQuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnZpb2xldC5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM1MDJhYTEgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudmlvbGV0LmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMudmlvbGV0LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbn1cbi8qLS0tIFB1cnBsZSAtLS0qL1xuLnVpLnB1cnBsZS5sYWJlbHMgLmxhYmVsLFxuLnVpLnB1cnBsZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkucHVycGxlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnB1cnBsZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5wdXJwbGUuY29ybmVyLmxhYmVsLFxuLnVpLnB1cnBsZS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkucHVycGxlLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzgyMjk5ZiAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5wdXJwbGUubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5wdXJwbGUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xufVxuLyotLS0gUGluayAtLS0qL1xuLnVpLnBpbmsubGFiZWxzIC5sYWJlbCxcbi51aS5waW5rLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5waW5rLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnBpbmsubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkucGluay5jb3JuZXIubGFiZWwsXG4udWkucGluay5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkucGluay5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICNjNzFmN2UgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucGluay5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5waW5rLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJyb3duIC0tLSovXG4udWkuYnJvd24ubGFiZWxzIC5sYWJlbCxcbi51aS5icm93bi5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuYnJvd24ubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuYnJvd24ubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuYnJvd24uY29ybmVyLmxhYmVsLFxuLnVpLmJyb3duLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5icm93bi5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM4MDUwMzEgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYnJvd24ubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYnJvd24ubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmJyb3duLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZXkgLS0tKi9cbi51aS5ncmV5LmxhYmVscyAubGFiZWwsXG4udWkuZ3JleS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuZ3JleS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5ncmV5LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLmdyZXkuY29ybmVyLmxhYmVsLFxuLnVpLmdyZXkuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmdyZXkucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjODA1MDMxICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmdyZXkubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JleS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMuZ3JleS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCbGFjayAtLS0qL1xuLnVpLmJsYWNrLmxhYmVscyAubGFiZWwsXG4udWkuYmxhY2subGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLmJsYWNrLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmJsYWNrLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI3MjkyYSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLmJsYWNrLmNvcm5lci5sYWJlbCxcbi51aS5ibGFjay5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkuYmxhY2sucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjODA1MDMxICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJsYWNrLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsYWNrLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5ibGFjay5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjcyOTJhICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5iYXNpYy5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBMaW5rICovXG5hLnVpLmJhc2ljLmxhYmVsOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkY7XG4gIGNvbG9yOiAjMWU3MGJmO1xuICBib3gtc2hhZG93OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIFBvaW50aW5nICovXG4udWkuYmFzaWMucG9pbnRpbmcubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbC5mbHVpZCxcbi51aS5mbHVpZC5sYWJlbHMgPiAubGFiZWwge1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQubGFiZWxzIC5sYWJlbCxcbi51aS5pbnZlcnRlZC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBIb3Jpem9udGFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaG9yaXpvbnRhbC5sYWJlbHMgLmxhYmVsLFxuLnVpLmhvcml6b250YWwubGFiZWwge1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xuICBwYWRkaW5nOiAwLjRlbSAwLjgzM2VtO1xuICBtaW4td2lkdGg6IDNlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaXJjdWxhci5sYWJlbHMgLmxhYmVsLFxuLnVpLmNpcmN1bGFyLmxhYmVsIHtcbiAgbWluLXdpZHRoOiAyZW07XG4gIG1pbi1oZWlnaHQ6IDJlbTtcbiAgcGFkZGluZzogMC41ZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4udWkuZW1wdHkuY2lyY3VsYXIubGFiZWxzIC5sYWJlbCxcbi51aS5lbXB0eS5jaXJjdWxhci5sYWJlbCB7XG4gIG1pbi13aWR0aDogMGVtO1xuICBtaW4taGVpZ2h0OiAwZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAwLjVlbTtcbiAgaGVpZ2h0OiAwLjVlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUG9pbnRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wb2ludGluZy5sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS5hdHRhY2hlZC5wb2ludGluZy5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi51aS5wb2ludGluZy5sYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBpbmhlcml0O1xuICBib3JkZXItd2lkdGg6IG5vbmU7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbn1cbi8qIEFycm93ICovXG4udWkucG9pbnRpbmcubGFiZWw6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogMC42NjY2ZW07XG4gIGhlaWdodDogMC42NjY2ZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xufVxuLyotLS0gQWJvdmUgLS0tKi9cbi51aS5wb2ludGluZy5sYWJlbCxcbi51aVtjbGFzcyo9XCJwb2ludGluZyBhYm92ZVwiXS5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cbi51aS5wb2ludGluZy5sYWJlbDpiZWZvcmUsXG4udWlbY2xhc3MqPVwicG9pbnRpbmcgYWJvdmVcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMHB4IDBweCAxcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDUwJTtcbn1cbi8qLS0tIEJlbG93IC0tLSovXG4udWlbY2xhc3MqPVwiYm90dG9tIHBvaW50aW5nXCJdLmxhYmVsLFxuLnVpW2NsYXNzKj1cInBvaW50aW5nIGJlbG93XCJdLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSxcbi51aVtjbGFzcyo9XCJwb2ludGluZyBiZWxvd1wiXS5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IDBweCAxcHggMXB4IDBweDtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG59XG4vKi0tLSBMZWZ0IC0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBwb2ludGluZ1wiXS5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNjY2NmVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDFweCAxcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwZW07XG59XG4vKi0tLSBSaWdodCAtLS0qL1xuLnVpW2NsYXNzKj1cInJpZ2h0IHBvaW50aW5nXCJdLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNjY2NmVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMXB4IDFweCAwcHggMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIHRvcDogNTAlO1xuICByaWdodDogMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbn1cbi8qIEJhc2ljIFBvaW50aW5nICovXG4vKi0tLSBBYm92ZSAtLS0qL1xuLnVpLmJhc2ljLnBvaW50aW5nLmxhYmVsOmJlZm9yZSxcbi51aS5iYXNpY1tjbGFzcyo9XCJwb2ludGluZyBhYm92ZVwiXS5sYWJlbDpiZWZvcmUge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuLyotLS0gQmVsb3cgLS0tKi9cbi51aS5iYXNpY1tjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlLFxuLnVpLmJhc2ljW2NsYXNzKj1cInBvaW50aW5nIGJlbG93XCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvdHRvbTogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4vKi0tLSBMZWZ0IC0tLSovXG4udWkuYmFzaWNbY2xhc3MqPVwibGVmdCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogLTFweDtcbn1cbi8qLS0tIFJpZ2h0IC0tLSovXG4udWkuYmFzaWNbY2xhc3MqPVwicmlnaHQgcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlIHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAtMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZsb2F0aW5nIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGluZy5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwO1xuICB0b3A6IC0xZW07XG4gIGxlZnQ6IDEwMCU7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTEuNWVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmxhYmVscyAubGFiZWwsXG4udWkubWluaS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC42NDI4NTcxNHJlbTtcbn1cbi51aS50aW55LmxhYmVscyAubGFiZWwsXG4udWkudGlueS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43MTQyODU3MXJlbTtcbn1cbi51aS5zbWFsbC5sYWJlbHMgLmxhYmVsLFxuLnVpLnNtYWxsLmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLmxhYmVscyAubGFiZWwsXG4udWkubGFiZWwge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkubGFyZ2UubGFiZWxzIC5sYWJlbCxcbi51aS5sYXJnZS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5iaWcubGFiZWxzIC5sYWJlbCxcbi51aS5iaWcubGFiZWwge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5sYWJlbHMgLmxhYmVsLFxuLnVpLmh1Z2UubGFiZWwge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5sYWJlbHMgLmxhYmVsLFxuLnVpLm1hc3NpdmUubGFiZWwge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBMaXN0XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExpc3RcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpc3QgKi9cbi8qIExpc3QgSXRlbSAqL1xuLyogU3ViIExpc3QgKi9cbi8qIFN1YiBMaXN0IEl0ZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBMaW5rICovXG4vKiBIZWFkZXIgTGluayAqL1xuLyogTGlua2VkIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmxvYXQgKi9cbi8qIEhvcml6b250YWwgKi9cbi8qIEludmVydGVkICovXG4vKiBMaW5rIExpc3QgKi9cbi8qIEludmVydGVkIExpbmsgTGlzdCAqL1xuLyogU2VsZWN0aW9uIExpc3QgKi9cbi8qIFNlbGVjdGlvbiBMaXN0IFN0YXRlcyAqL1xuLyogSW52ZXJ0ZWQgU2VsZWN0aW9uIExpc3QgKi9cbi8qIEFuaW1hdGVkIExpc3QgKi9cbi8qIEJ1bGxldGVkICovXG4vKiBIb3Jpem9udGFsIEJ1bGxldHMgKi9cbi8qIE9yZGVyZWQgTGlzdCAqL1xuLyogSG9yaXpvbnRhbCBPcmRlcmVkICovXG4vKiBEaXZpZGVkICovXG4vKiBEaXZpZGVkIEhvcml6b250YWwgKi9cbi8qIERpdmlkZWQgKi9cbi8qIERpdmlkZWQgSG9yaXpvbnRhbCAqL1xuLyogUmVsYXhlZCAqL1xuLyogVmVyeSBSZWxheGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgTGlzdFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbnVsLnVpLmxpc3QsXG5vbC51aS5saXN0LFxuLnVpLmxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgcGFkZGluZzogMGVtIDBlbTtcbn1cbnVsLnVpLmxpc3Q6Zmlyc3QtY2hpbGQsXG5vbC51aS5saXN0OmZpcnN0LWNoaWxkLFxuLnVpLmxpc3Q6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG51bC51aS5saXN0Omxhc3QtY2hpbGQsXG5vbC51aS5saXN0Omxhc3QtY2hpbGQsXG4udWkubGlzdDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMaXN0IEl0ZW0gKi9cbnVsLnVpLmxpc3QgbGksXG5vbC51aS5saXN0IGxpLFxuLnVpLmxpc3QgPiAuaXRlbSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgcGFkZGluZzogMC4yMTQyODU3MWVtIDBlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTQyODU3MTRlbTtcbn1cbnVsLnVpLmxpc3QgPiBsaTpmaXJzdC1jaGlsZDphZnRlcixcbm9sLnVpLmxpc3QgPiBsaTpmaXJzdC1jaGlsZDphZnRlcixcbi51aS5saXN0ID4gLmxpc3QgPiAuaXRlbSxcbi51aS5saXN0ID4gLml0ZW06YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbnVsLnVpLmxpc3QgbGk6Zmlyc3QtY2hpbGQsXG5vbC51aS5saXN0IGxpOmZpcnN0LWNoaWxkLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxudWwudWkubGlzdCBsaTpsYXN0LWNoaWxkLFxub2wudWkubGlzdCBsaTpsYXN0LWNoaWxkLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkLFxuLnVpLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qIENoaWxkIExpc3QgKi9cbnVsLnVpLmxpc3QgdWwsXG5vbC51aS5saXN0IG9sLFxuLnVpLmxpc3QgLmxpc3Qge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAwZW0gMC4yNWVtIDAuNWVtO1xufVxuLyogQ2hpbGQgSXRlbSAqL1xudWwudWkubGlzdCB1bCBsaSxcbm9sLnVpLmxpc3Qgb2wgbGksXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZzogMC4xNDI4NTcxNGVtIDBlbTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG4vKiBJY29uICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gaS5pY29uLFxuLnVpLmxpc3QgPiAuaXRlbSA+IGkuaWNvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nLXRvcDogMGVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjI4NTcxNDI5ZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiBpLmljb246b25seS1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW0gPiBpLmljb246b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIEltYWdlICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6bm90KDpvbmx5LWNoaWxkKTpub3QoaW1nKSxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6bm90KDpvbmx5LWNoaWxkKTpub3QoaW1nKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSBpbWcsXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlIGltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gaW1nLmltYWdlLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZTpvbmx5LWNoaWxkLFxuLnVpLmxpc3QgPiAuaXRlbSA+IGltZy5pbWFnZSxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qIENvbnRlbnQgKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiAuY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE0Mjg1NzE0ZW07XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlICsgLmNvbnRlbnQsXG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmljb24gKyAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiAuaWNvbiArIC5jb250ZW50IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDAuNWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IGltZy5pbWFnZSArIC5jb250ZW50LFxuLnVpLmxpc3QgPiAuaXRlbSA+IGltZy5pbWFnZSArIC5jb250ZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCA+IC5saXN0LFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5jb250ZW50ID4gLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbn1cbi8qIEhlYWRlciAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSAuaGVhZGVyLFxuLnVpLmxpc3QgPiAuaXRlbSAuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBEZXNjcmlwdGlvbiAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSAuZGVzY3JpcHRpb24sXG4udWkubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xufVxuLyogQ2hpbGQgTGluayAqL1xuLnVpLmxpc3QgPiAuaXRlbSBhLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyogTGlua2luZyBJdGVtICovXG4udWkubGlzdCAubGlzdCA+IGEuaXRlbSxcbi51aS5saXN0ID4gYS5pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzQxODNDNDtcbn1cbi51aS5saXN0IC5saXN0ID4gYS5pdGVtOmhvdmVyLFxuLnVpLmxpc3QgPiBhLml0ZW06aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qIExpbmtlZCBJdGVtIEljb25zICovXG4udWkubGlzdCAubGlzdCA+IGEuaXRlbSBpLmljb24sXG4udWkubGlzdCA+IGEuaXRlbSBpLmljb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyogSGVhZGVyIExpbmsgKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gYS5oZWFkZXIsXG4udWkubGlzdCA+IC5pdGVtIGEuaGVhZGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzQxODNDNCAhaW1wb3J0YW50O1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBhLmhlYWRlcjpob3Zlcixcbi51aS5saXN0ID4gLml0ZW0gYS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZiAhaW1wb3J0YW50O1xufVxuLyogRmxvYXRlZCBDb250ZW50ICovXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLmxpc3Qge1xuICBmbG9hdDogbGVmdDtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLmxpc3Qge1xuICBmbG9hdDogcmlnaHQ7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0sXG4udWkubGlzdCA+IC5pdGVtIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubWVudSAudWkubGlzdCA+IC5pdGVtLFxuLnVpLm1lbnUgLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgcGFkZGluZzogMC4yMTQyODU3MWVtIDBlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTQyODU3MTRlbTtcbn1cbi51aS5tZW51IC51aS5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm1lbnUgLnVpLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4udWkubWVudSAudWkubGlzdCAubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLm1lbnUgLnVpLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG4udWkubWVudSAudWkubGlzdCAubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQsXG4udWkubWVudSAudWkubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBIb3Jpem9udGFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaG9yaXpvbnRhbC5saXN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDBlbTtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmhvcml6b250YWwubGlzdDpub3QoLmNlbGxlZCkgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3QgLmxpc3Qge1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtID4gLmljb24sXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuY29udGVudCxcbi51aS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5jb250ZW50IHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIFBhZGRpbmcgb24gYWxsIGVsZW1lbnRzICovXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwLjIxNDI4NTcxZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjIxNDI4NTcxZW07XG59XG4vKiBIb3Jpem9udGFsIExpc3QgKi9cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IGkuaWNvbiB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW0gMC4yNWVtIDBlbSAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuaWNvbixcbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IC5pY29uICsgLmNvbnRlbnQge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpc3QgLmxpc3QgPiAuZGlzYWJsZWQuaXRlbSxcbi51aS5saXN0ID4gLmRpc2FibGVkLml0ZW0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiAuZGlzYWJsZWQuaXRlbSxcbi51aS5pbnZlcnRlZC5saXN0ID4gLmRpc2FibGVkLml0ZW0ge1xuICBjb2xvcjogcmdiYSgyMjUsIDIyNSwgMjI1LCAwLjMpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5saXN0IC5saXN0ID4gYS5pdGVtOmhvdmVyIC5pY29uLFxuLnVpLmxpc3QgPiBhLml0ZW06aG92ZXIgLmljb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiBhLml0ZW0gPiAuaWNvbixcbi51aS5pbnZlcnRlZC5saXN0ID4gYS5pdGVtID4gLmljb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiAuaXRlbSAuaGVhZGVyLFxuLnVpLmludmVydGVkLmxpc3QgPiAuaXRlbSAuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5pbnZlcnRlZC5saXN0IC5saXN0ID4gLml0ZW0gLmRlc2NyaXB0aW9uLFxuLnVpLmludmVydGVkLmxpc3QgPiAuaXRlbSAuZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLyogSXRlbSBMaW5rICovXG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IGEuaXRlbSxcbi51aS5pbnZlcnRlZC5saXN0ID4gYS5pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiBhLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQubGlzdCA+IGEuaXRlbTpob3ZlciB7XG4gIGNvbG9yOiAjMWU3MGJmO1xufVxuLyogTGlua2luZyBDb250ZW50ICovXG4udWkuaW52ZXJ0ZWQubGlzdCAuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmxpc3QgLml0ZW0gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiAjMWU3MGJmICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGlzdFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSAuaW1hZ2UsXG4udWkubGlzdFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSAuY29udGVudCxcbi51aS5saXN0IFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDtcbn1cbi51aS5saXN0W2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdIC5pbWFnZSxcbi51aS5saXN0W2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdIC5jb250ZW50LFxuLnVpLmxpc3QgW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuLnVpLmxpc3RbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0gLmltYWdlLFxuLnVpLmxpc3RbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0gLmNvbnRlbnQsXG4udWkubGlzdCBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGluay5saXN0IC5pdGVtLFxuLnVpLmxpbmsubGlzdCBhLml0ZW0sXG4udWkubGluay5saXN0IC5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICB0cmFuc2l0aW9uOiAwLjFzIGNvbG9yIGVhc2U7XG59XG4udWkubGluay5saXN0Lmxpc3QgYS5pdGVtOmhvdmVyLFxuLnVpLmxpbmsubGlzdC5saXN0IC5pdGVtIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLnVpLmxpbmsubGlzdC5saXN0IGEuaXRlbTphY3RpdmUsXG4udWkubGluay5saXN0Lmxpc3QgLml0ZW0gYTpub3QoLnVpKTphY3RpdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuLnVpLmxpbmsubGlzdC5saXN0IC5hY3RpdmUuaXRlbSxcbi51aS5saW5rLmxpc3QubGlzdCAuYWN0aXZlLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5saW5rLmxpc3QgLml0ZW0sXG4udWkuaW52ZXJ0ZWQubGluay5saXN0IGEuaXRlbSxcbi51aS5pbnZlcnRlZC5saW5rLmxpc3QgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udWkuaW52ZXJ0ZWQubGluay5saXN0Lmxpc3QgYS5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLmxpbmsubGlzdC5saXN0IC5pdGVtIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5saW5rLmxpc3QubGlzdCBhLml0ZW06YWN0aXZlLFxuLnVpLmludmVydGVkLmxpbmsubGlzdC5saXN0IC5pdGVtIGE6bm90KC51aSk6YWN0aXZlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQubGluay5saXN0Lmxpc3QgYS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5saW5rLmxpc3QubGlzdCAuYWN0aXZlLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTZWxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwLjVlbSAwLjVlbTtcbiAgbWFyZ2luOiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJvcmRlci1yYWRpdXM6IDAuNWVtO1xuICB0cmFuc2l0aW9uOiAwLjFzIGNvbG9yIGVhc2UsIDAuMXMgcGFkZGluZy1sZWZ0IGVhc2UsIDAuMXMgYmFja2dyb3VuZC1jb2xvciBlYXNlO1xufVxuLnVpLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCxcbi51aS5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkuc2VsZWN0aW9uLmxpc3QubGlzdCA+IC5pdGVtOmhvdmVyLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLnVpLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW06YWN0aXZlLFxuLnVpLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cbi51aS5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLmFjdGl2ZSxcbi51aS5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtLFxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0uYWN0aXZlLFxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKiBDZWxsZWQgLyBEaXZpZGVkIFNlbGVjdGlvbiBMaXN0ICovXG4udWkuY2VsbGVkLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuZGl2aWRlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFuaW1hdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYW5pbWF0ZWQubGlzdCA+IC5pdGVtIHtcbiAgdHJhbnNpdGlvbjogMC4yNXMgY29sb3IgZWFzZSAwLjFzLCAwLjI1cyBwYWRkaW5nLWxlZnQgZWFzZSAwLjFzLCAwLjI1cyBiYWNrZ3JvdW5kLWNvbG9yIGVhc2UgMC4xcztcbn1cbi51aS5hbmltYXRlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpob3ZlciB7XG4gIHBhZGRpbmctbGVmdDogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml0dGVkLmxpc3Q6bm90KC5zZWxlY3Rpb24pIC5saXN0ID4gLml0ZW0sXG4udWkuZml0dGVkLmxpc3Q6bm90KC5zZWxlY3Rpb24pID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xufVxuLnVpLmZpdHRlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmZpdHRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJ1bGxldGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG51bC51aS5saXN0LFxuLnVpLmJ1bGxldGVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbn1cbnVsLnVpLmxpc3QgbGksXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmJ1bGxldGVkLmxpc3QgPiAuaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnVsLnVpLmxpc3QgbGk6YmVmb3JlLFxuLnVpLmJ1bGxldGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1sZWZ0OiAtMS4yNXJlbTtcbiAgY29udGVudDogJ+KAoic7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxudWwudWkubGlzdCBsaTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCA+IGEuaXRlbTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCA+IGEuaXRlbTpiZWZvcmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbnVsLnVpLmxpc3QgdWwsXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cbi8qIEhvcml6b250YWwgQnVsbGV0ZWQgKi9cbnVsLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCxcbi51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0IGxpLFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCA+IC5pdGVtIHtcbiAgbWFyZ2luLWxlZnQ6IDEuNzVyZW07XG59XG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgbGk6Zmlyc3QtY2hpbGQsXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0IGxpOjpiZWZvcmUsXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0ID4gLml0ZW06OmJlZm9yZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0IGxpOmZpcnN0LWNoaWxkOjpiZWZvcmUsXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBPcmRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5vbC51aS5saXN0LFxuLnVpLm9yZGVyZWQubGlzdCxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3QsXG5vbC51aS5saXN0IG9sIHtcbiAgY291bnRlci1yZXNldDogb3JkZXJlZDtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cbm9sLnVpLmxpc3QgbGksXG4udWkub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkub3JkZXJlZC5saXN0ID4gLml0ZW0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbm9sLnVpLmxpc3QgbGk6YmVmb3JlLFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtOmJlZm9yZSxcbi51aS5vcmRlcmVkLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTEuMjVyZW07XG4gIGNvdW50ZXItaW5jcmVtZW50OiBvcmRlcmVkO1xuICBjb250ZW50OiBjb3VudGVycyhvcmRlcmVkLCBcIi5cIikgXCIgXCI7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgb3BhY2l0eTogMC44O1xufVxub2wudWkuaW52ZXJ0ZWQubGlzdCBsaTpiZWZvcmUsXG4udWkub3JkZXJlZC5pbnZlcnRlZC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm9yZGVyZWQuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4vKiBWYWx1ZSAqL1xuLnVpLm9yZGVyZWQubGlzdCA+IC5saXN0ID4gLml0ZW1bZGF0YS12YWx1ZV0sXG4udWkub3JkZXJlZC5saXN0ID4gLml0ZW1bZGF0YS12YWx1ZV0ge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdmFsdWUpO1xufVxub2wudWkubGlzdCBsaVt2YWx1ZV06YmVmb3JlIHtcbiAgY29udGVudDogYXR0cih2YWx1ZSk7XG59XG4vKiBDaGlsZCBMaXN0cyAqL1xub2wudWkubGlzdCBvbCxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxub2wudWkubGlzdCBvbCBsaTpiZWZvcmUsXG4udWkub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IC0yZW07XG59XG4vKiBIb3Jpem9udGFsIE9yZGVyZWQgKi9cbm9sLnVpLmhvcml6b250YWwubGlzdCxcbi51aS5vcmRlcmVkLmhvcml6b250YWwubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG5vbC51aS5ob3Jpem9udGFsLmxpc3QgbGk6YmVmb3JlLFxuLnVpLm9yZGVyZWQuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm9yZGVyZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVkLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmRpdmlkZWQubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5kaXZpZGVkLmxpc3QgLml0ZW0gLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuZGl2aWRlZC5saXN0IC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkuZGl2aWRlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS5kaXZpZGVkLmxpc3Q6bm90KC5ob3Jpem9udGFsKSAubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xufVxuLyogRGl2aWRlZCBidWxsZXRlZCAqL1xuLnVpLmRpdmlkZWQuYnVsbGV0ZWQubGlzdDpub3QoLmhvcml6b250YWwpLFxuLnVpLmRpdmlkZWQuYnVsbGV0ZWQubGlzdCAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIHBhZGRpbmctbGVmdDogMGVtO1xufVxuLnVpLmRpdmlkZWQuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOm5vdCguaG9yaXpvbnRhbCkge1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG4vKiBEaXZpZGVkIE9yZGVyZWQgKi9cbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuZGl2aWRlZC5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0IC5pdGVtIC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjIxNDI4NTcxZW07XG59XG4udWkuZGl2aWRlZC5vcmRlcmVkLmxpc3QgLml0ZW0gLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMWVtO1xufVxuLyogRGl2aWRlZCBTZWxlY3Rpb24gKi9cbi51aS5kaXZpZGVkLnNlbGVjdGlvbi5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuZGl2aWRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIERpdmlkZWQgaG9yaXpvbnRhbCAqL1xuLnVpLmRpdmlkZWQuaG9yaXpvbnRhbC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5kaXZpZGVkLmhvcml6b250YWwubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbn1cbi51aS5kaXZpZGVkLmhvcml6b250YWwubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5kaXZpZGVkLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBtYXJnaW46IDBlbTtcbiAgbGluZS1oZWlnaHQ6IDAuNjtcbn1cbi51aS5ob3Jpem9udGFsLmRpdmlkZWQubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmRpdmlkZWQuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQuaW52ZXJ0ZWQubGlzdCA+IC5saXN0LFxuLnVpLmRpdmlkZWQuaW52ZXJ0ZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBDZWxsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jZWxsZWQubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5saXN0ID4gLmxpc3Qge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG59XG4udWkuY2VsbGVkLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBQYWRkaW5nIG9uIGFsbCBlbGVtZW50cyAqL1xuLnVpLmNlbGxlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkuY2VsbGVkLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDAuMjE0Mjg1NzFlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMjE0Mjg1NzFlbTtcbn1cbi8qIFN1YiBNZW51ICovXG4udWkuY2VsbGVkLmxpc3QgLml0ZW0gLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci13aWR0aDogMHB4O1xufVxuLnVpLmNlbGxlZC5saXN0IC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXdpZHRoOiAwcHg7XG59XG4vKiBDZWxsZWQgQnVsbGV0ZWQgKi9cbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuY2VsbGVkLmJ1bGxldGVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuLnVpLmNlbGxlZC5idWxsZXRlZC5saXN0IC5pdGVtIC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IC0xLjI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xLjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yMTQyODU3MWVtO1xufVxuLyogQ2VsbGVkIE9yZGVyZWQgKi9cbi51aS5jZWxsZWQub3JkZXJlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5jZWxsZWQub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3QgLml0ZW0gLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMjE0Mjg1NzFlbTtcbn1cbi51aS5jZWxsZWQub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbn1cbi8qIENlbGxlZCBIb3Jpem9udGFsICovXG4udWkuaG9yaXpvbnRhbC5jZWxsZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5jZWxsZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICBsaW5lLWhlaWdodDogMC42O1xufVxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkLFxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEludmVydGVkICovXG4udWkuY2VsbGVkLmludmVydGVkLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuaW52ZXJ0ZWQubGlzdCA+IC5saXN0IHtcbiAgYm9yZGVyLWNvbG9yOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVpLmNlbGxlZC5pbnZlcnRlZC5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuaW52ZXJ0ZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItY29sb3I6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmVsYXhlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctdG9wOiAwLjQyODU3MTQzZW07XG59XG4udWkucmVsYXhlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1ib3R0b206IDAuNDI4NTcxNDNlbTtcbn1cbi51aS5ob3Jpem9udGFsLnJlbGF4ZWQubGlzdCAubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLnVpLmhvcml6b250YWwucmVsYXhlZC5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG59XG4udWkuaG9yaXpvbnRhbC5yZWxheGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpLFxuLnVpLmhvcml6b250YWwucmVsYXhlZC5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG4vKiBWZXJ5IFJlbGF4ZWQgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdDpub3QoLmhvcml6b250YWwpID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLXRvcDogMC44NTcxNDI4NmVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1ib3R0b206IDAuODU3MTQyODZlbTtcbn1cbi51aS5ob3Jpem9udGFsW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0IC5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCksXG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG59XG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCAubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCksXG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5saXN0IHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5ZW07XG59XG4udWkudGlueS5saXN0IHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2ZW07XG59XG4udWkuc21hbGwubGlzdCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xufVxuLnVpLmxpc3Qge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5saXN0IHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0ZW07XG59XG4udWkuYmlnLmxpc3Qge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi51aS5odWdlLmxpc3Qge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNlbTtcbn1cbi51aS5tYXNzaXZlLmxpc3Qge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFlbTtcbn1cbi51aS5taW5pLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLm1pbmkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS50aW55Lmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLnNtYWxsLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmxhcmdlLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5iaWcuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5odWdlLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkubWFzc2l2ZS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogRGVwb3NpdCBsaWNlbnNlIGZpZWxkICovXG4uaXRlbS5kZXBvc2l0LWRyYWctbGlzdGl0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uaXRlbS5kZXBvc2l0LWRyYWctbGlzdGl0ZW0uaGlkZGVuIHtcbiAgb3BhY2l0eTogMDtcbn1cbi5pdGVtLmRlcG9zaXQtZHJhZy1saXN0aXRlbSAuZHJhZy1hbmNob3Ige1xuICBjdXJzb3I6IG1vdmU7XG59XG4udWkuaXRlbXMgPiAuaXRlbS5saWNlbnNlLWl0ZW0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuaXRlbXMgPiAuaXRlbS5saWNlbnNlLWl0ZW0gLmltYWdlLmxpY2Vuc2UtcmFkaW9ib3gge1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy10b3A6IDJlbTtcbiAgd2lkdGg6IDQlO1xufVxuLnVpLml0ZW1zID4gLml0ZW0ubGljZW5zZS1pdGVtIC5jb250ZW50LmxpY2Vuc2UtaXRlbS1jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuLnVpLml0ZW1zID4gLml0ZW0ubGljZW5zZS1pdGVtIC5jb250ZW50LmxpY2Vuc2UtaXRlbS1jb250ZW50IC5kZXNjcmlwdGlvbi5saWNlbnNlLWl0ZW0tZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IHNtYWxsZXI7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkubGlzdCAuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi51aS5jZWxsZWQubGlzdC5zZXBhcmF0ZWQtbGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS5jZWxsZWQubGlzdC5zZXBhcmF0ZWQtbGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWkuY2VsbGVkLmxpc3Quc2VwYXJhdGVkLWxpc3QgLml0ZW0gPiBhIHtcbiAgbWFyZ2luOiAzcHg7XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBMb2FkZXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTG9hZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU29tZSBnbG9iYWwgbG9hZGVyIHN0eWxlcyBkZWZpbmVkIGluIHNpdGUudmFyaWFibGVzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YW5kYXJkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRXhhY3QgU2l6ZXMgKEF2b2lkcyBSb3VuZGluZyBFcnJvcnMpICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIExvYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFN0YW5kYXJkIFNpemUgKi9cbi51aS5sb2FkZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xufVxuLyogU3RhdGljIFNoYXBlICovXG4udWkubG9hZGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi8qIEFjdGl2ZSBTaGFwZSAqL1xuLnVpLmxvYWRlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYW5pbWF0aW9uOiBsb2FkZXIgMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xufVxuLyogQWN0aXZlIEFuaW1hdGlvbiAqL1xuQGtleWZyYW1lcyBsb2FkZXIge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyogU2l6ZXMgKi9cbi51aS5taW5pLmxvYWRlcjpiZWZvcmUsXG4udWkubWluaS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0wLjVyZW07XG59XG4udWkudGlueS5sb2FkZXI6YmVmb3JlLFxuLnVpLnRpbnkubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDEuMTQyODU3MTRyZW07XG4gIGhlaWdodDogMS4xNDI4NTcxNHJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMC41NzE0Mjg1N3JlbTtcbn1cbi51aS5zbWFsbC5sb2FkZXI6YmVmb3JlLFxuLnVpLnNtYWxsLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiAxLjcxNDI4NTcxcmVtO1xuICBoZWlnaHQ6IDEuNzE0Mjg1NzFyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTAuODU3MTQyODZyZW07XG59XG4udWkubG9hZGVyOmJlZm9yZSxcbi51aS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogMi4yODU3MTQyOXJlbTtcbiAgaGVpZ2h0OiAyLjI4NTcxNDI5cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0xLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmxhcmdlLmxvYWRlcjpiZWZvcmUsXG4udWkubGFyZ2UubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDMuNDI4NTcxNDNyZW07XG4gIGhlaWdodDogMy40Mjg1NzE0M3JlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMS43MTQyODU3MXJlbTtcbn1cbi51aS5iaWcubG9hZGVyOmJlZm9yZSxcbi51aS5iaWcubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDMuNzE0Mjg1NzFyZW07XG4gIGhlaWdodDogMy43MTQyODU3MXJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMS44NTcxNDI4NnJlbTtcbn1cbi51aS5odWdlLmxvYWRlcjpiZWZvcmUsXG4udWkuaHVnZS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogNC4xNDI4NTcxNHJlbTtcbiAgaGVpZ2h0OiA0LjE0Mjg1NzE0cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0yLjA3MTQyODU3cmVtO1xufVxuLnVpLm1hc3NpdmUubG9hZGVyOmJlZm9yZSxcbi51aS5tYXNzaXZlLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiA0LjU3MTQyODU3cmVtO1xuICBoZWlnaHQ6IDQuNTcxNDI4NTdyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTIuMjg1NzE0MjlyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaG93IGluc2lkZSBhY3RpdmUgZGltbWVyICovXG4udWkuZGltbWVyIC5sb2FkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIEJsYWNrIERpbW1lciAqL1xuLnVpLmRpbW1lciAudWkubG9hZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5kaW1tZXIgLnVpLmxvYWRlcjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG4udWkuZGltbWVyIC51aS5sb2FkZXI6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6ICNGRkZGRkYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG4vKiBXaGl0ZSBEaW1tZXIgKEludmVydGVkKSAqL1xuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5sb2FkZXI6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5sb2FkZXI6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50ZXh0LmxvYWRlciB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaW5kZXRlcm1pbmF0ZS5sb2FkZXI6YWZ0ZXIge1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDEuMnM7XG59XG4udWkubG9hZGVyLmFjdGl2ZSxcbi51aS5sb2FkZXIudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmxvYWRlci5kaXNhYmxlZCxcbi51aS5sb2FkZXIuaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXIgKi9cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLm1pbmkubG9hZGVyLFxuLnVpLm1pbmkubG9hZGVyIHtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5ZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS50aW55LmxvYWRlcixcbi51aS50aW55LmxvYWRlciB7XG4gIHdpZHRoOiAxLjE0Mjg1NzE0cmVtO1xuICBoZWlnaHQ6IDEuMTQyODU3MTRyZW07XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkuc21hbGwubG9hZGVyLFxuLnVpLnNtYWxsLmxvYWRlciB7XG4gIHdpZHRoOiAxLjcxNDI4NTcxcmVtO1xuICBoZWlnaHQ6IDEuNzE0Mjg1NzFyZW07XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyLFxuLnVpLmxvYWRlciB7XG4gIHdpZHRoOiAyLjI4NTcxNDI5cmVtO1xuICBoZWlnaHQ6IDIuMjg1NzE0MjlyZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubGFyZ2UubG9hZGVyLFxuLnVpLmxhcmdlLmxvYWRlciB7XG4gIHdpZHRoOiAzLjQyODU3MTQzcmVtO1xuICBoZWlnaHQ6IDMuNDI4NTcxNDNyZW07XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkuYmlnLmxvYWRlcixcbi51aS5iaWcubG9hZGVyIHtcbiAgd2lkdGg6IDMuNzE0Mjg1NzFyZW07XG4gIGhlaWdodDogMy43MTQyODU3MXJlbTtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5ZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5odWdlLmxvYWRlcixcbi51aS5odWdlLmxvYWRlciB7XG4gIHdpZHRoOiA0LjE0Mjg1NzE0cmVtO1xuICBoZWlnaHQ6IDQuMTQyODU3MTRyZW07XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M2VtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubWFzc2l2ZS5sb2FkZXIsXG4udWkubWFzc2l2ZS5sb2FkZXIge1xuICB3aWR0aDogNC41NzE0Mjg1N3JlbTtcbiAgaGVpZ2h0OiA0LjU3MTQyODU3cmVtO1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFlbTtcbn1cbi8qIFRleHQgTG9hZGVyICovXG4udWkubWluaS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogMXJlbTtcbiAgcGFkZGluZy10b3A6IDEuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogMS4xNDI4NTcxNHJlbTtcbiAgcGFkZGluZy10b3A6IDEuOTI4NTcxNDNyZW07XG59XG4udWkuc21hbGwudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDEuNzE0Mjg1NzFyZW07XG4gIHBhZGRpbmctdG9wOiAyLjVyZW07XG59XG4udWkudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDIuMjg1NzE0MjlyZW07XG4gIHBhZGRpbmctdG9wOiAzLjA3MTQyODU3cmVtO1xufVxuLnVpLmxhcmdlLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiAzLjQyODU3MTQzcmVtO1xuICBwYWRkaW5nLXRvcDogNC4yMTQyODU3MXJlbTtcbn1cbi51aS5iaWcudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDMuNzE0Mjg1NzFyZW07XG4gIHBhZGRpbmctdG9wOiA0LjVyZW07XG59XG4udWkuaHVnZS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogNC4xNDI4NTcxNHJlbTtcbiAgcGFkZGluZy10b3A6IDQuOTI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogNC41NzE0Mjg1N3JlbTtcbiAgcGFkZGluZy10b3A6IDUuMzU3MTQyODZyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmxvYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuaW52ZXJ0ZWQubG9hZGVyOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cbi51aS5pbnZlcnRlZC5sb2FkZXI6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW5saW5lXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5saW5lLmxvYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwZW07XG4gIGxlZnQ6IDBlbTtcbiAgdG9wOiAwZW07XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi51aS5pbmxpbmUubG9hZGVyLmFjdGl2ZSxcbi51aS5pbmxpbmUubG9hZGVyLnZpc2libGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKiBDZW50ZXJlZCBJbmxpbmUgKi9cbi51aS5jZW50ZXJlZC5pbmxpbmUubG9hZGVyLmFjdGl2ZSxcbi51aS5jZW50ZXJlZC5pbmxpbmUubG9hZGVyLnZpc2libGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIExvYWRlclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyogS2V5IENvbnRlbnQgU2l6aW5nICovXG4vKiBJbnRlcnZhbCBiZXR3ZWVuIGNvbnNlY3V0aXZlIHBsYWNlaG9sZGVycyAqL1xuLyogUmVwZWF0ZWQgUGxhY2Vob2xkZXIgKi9cbi8qIEltYWdlICovXG4vKiBIZWFkZXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogR2xvdyBHcmFkaWVudCAqL1xuLyogVmFyaWF0aW9ucyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBsYWNlaG9sZGVyIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYW5pbWF0aW9uOiBwbGFjZWhvbGRlclNoaW1tZXIgMnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMDgpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMTUpIDE1JSwgcmdiYSgwLCAwLCAwLCAwLjA4KSAzMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEyMDBweCAxMDAlO1xuICBtYXgtd2lkdGg6IDMwcmVtO1xufVxuQGtleWZyYW1lcyBwbGFjZWhvbGRlclNoaW1tZXIge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMDBweCAwO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEyMDBweCAwO1xuICB9XG59XG4udWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIge1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjE1cztcbn1cbi51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4zcztcbn1cbi51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC40NXM7XG59XG4udWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIge1xuICBhbmltYXRpb24tZGVsYXk6IDAuNnM7XG59XG4udWkucGxhY2Vob2xkZXIsXG4udWkucGxhY2Vob2xkZXIgPiA6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXI6YWZ0ZXIsXG4udWkucGxhY2Vob2xkZXIgLmxpbmUsXG4udWkucGxhY2Vob2xkZXIgLmxpbmU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuLyogSW1hZ2UgKi9cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2U6bm90KC5oZWFkZXIpOm5vdCgudWkpIHtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cbi51aS5wbGFjZWhvbGRlciAuc3F1YXJlLmltYWdlOm5vdCguaGVhZGVyKSB7XG4gIGhlaWdodDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiAxLzEgYXNwZWN0IHJhdGlvICovXG4gIHBhZGRpbmctdG9wOiAxMDAlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5yZWN0YW5ndWxhci5pbWFnZTpub3QoLmhlYWRlcikge1xuICBoZWlnaHQ6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogNC8zIGFzcGVjdCByYXRpbyAqL1xuICBwYWRkaW5nLXRvcDogNzUlO1xufVxuLyogTGluZXMgKi9cbi51aS5wbGFjZWhvbGRlciAubGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwLjg1NzE0Mjg2ZW07XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmFmdGVyIHtcbiAgdG9wOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmJlZm9yZSB7XG4gIGxlZnQ6IDBweDtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTphZnRlciB7XG4gIHJpZ2h0OiAwcHg7XG59XG4vKiBBbnkgTGluZXMgKi9cbi51aS5wbGFjZWhvbGRlciAubGluZSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmJlZm9yZSxcbi51aS5wbGFjZWhvbGRlciAubGluZTphZnRlciB7XG4gIGhlaWdodDogMC41ZW07XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbi8qIEhlYWRlciBJbWFnZSArIDIgTGluZXMgKi9cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogTGluZSBPdXRkZW50ICovXG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bnRoLWNoaWxkKDEpOmFmdGVyIHtcbiAgd2lkdGg6IDAlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOm50aC1jaGlsZCgyKTphZnRlciB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bnRoLWNoaWxkKDMpOmFmdGVyIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTpudGgtY2hpbGQoNCk6YWZ0ZXIge1xuICB3aWR0aDogMzUlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOm50aC1jaGlsZCg1KTphZnRlciB7XG4gIHdpZHRoOiA2NSU7XG59XG4vKiBIZWFkZXIgTGluZSAxICYgMiovXG4udWkucGxhY2Vob2xkZXIgLmhlYWRlciAubGluZSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNjQyODU3MTRlbTtcbn1cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOmJlZm9yZSxcbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOmFmdGVyIHtcbiAgaGVpZ2h0OiAwLjY0Mjg1NzE0ZW07XG59XG4udWkucGxhY2Vob2xkZXIgLmhlYWRlciAubGluZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi10b3A6IDAuNjQyODU3MTRlbTtcbn1cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOm50aC1jaGlsZCgyKTphZnRlciB7XG4gIHdpZHRoOiA2MCU7XG59XG4vKiBJbWFnZSBIZWFkZXIgKi9cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2UuaGVhZGVyIC5saW5lIHtcbiAgbWFyZ2luLWxlZnQ6IDNlbTtcbn1cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2UuaGVhZGVyIC5saW5lOmJlZm9yZSB7XG4gIHdpZHRoOiAwLjcxNDI4NTcxcmVtO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwLjg1NzE0Mjg2ZW07XG4gIGNvbnRlbnQ6ICcnO1xuICBtYXJnaW4tbGVmdDogM2VtO1xufVxuLyogU3BhY2luZyAqL1xuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZSAubGluZTpmaXJzdC1jaGlsZCxcbi51aS5wbGFjZWhvbGRlciAucGFyYWdyYXBoIC5saW5lOmZpcnN0LWNoaWxkLFxuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXIgLmxpbmU6Zmlyc3QtY2hpbGQge1xuICBoZWlnaHQ6IDAuMDFweDtcbn1cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2U6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5wYXJhZ3JhcGg6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXI6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3JlIHtcbiAgaGVpZ2h0OiAxLjQyODU3MTQzZW07XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIEludmVydGVkIENvbnRlbnQgTG9hZGVyICovXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkgMTUlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIDMwJSk7XG59XG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgPiA6YmVmb3JlLFxuLnVpLmludmVydGVkLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXI6YWZ0ZXIsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgLmxpbmUsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgLmxpbmU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wbGFjZWhvbGRlciAuZnVsbC5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiAwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAudmVyeS5sb25nLmxpbmUubGluZS5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAubG9uZy5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiAzNSU7XG59XG4udWkucGxhY2Vob2xkZXIgLm1lZGl1bS5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkucGxhY2Vob2xkZXIgLnNob3J0LmxpbmUubGluZS5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDY1JTtcbn1cbi51aS5wbGFjZWhvbGRlciAudmVyeS5zaG9ydC5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiA4MCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5wbGFjZWhvbGRlciB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFJhaWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBSYWlsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDbG9zZSAqL1xuLyogRGl2aWRpbmcgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJhaWxzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnJhaWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnVpLmxlZnQucmFpbCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwZW0gMnJlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAycmVtIDBlbSAwZW07XG59XG4udWkucmlnaHQucmFpbCB7XG4gIGxlZnQ6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAycmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDJyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbnRlcm5hbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sZWZ0LmludGVybmFsLnJhaWwge1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDJyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMnJlbTtcbn1cbi51aS5yaWdodC5pbnRlcm5hbC5yYWlsIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xuICBwYWRkaW5nOiAwZW0gMnJlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAycmVtIDBlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGl2aWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRpbmcucmFpbCB7XG4gIHdpZHRoOiAzMDIuNXB4O1xufVxuLnVpLmxlZnQuZGl2aWRpbmcucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAyLjVyZW0gMGVtIDBlbTtcbiAgbWFyZ2luOiAwZW0gMi41cmVtIDBlbSAwZW07XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkucmlnaHQuZGl2aWRpbmcucmFpbCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gMi41cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDIuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXN0YW5jZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jbG9zZS5yYWlsIHtcbiAgd2lkdGg6IGNhbGMoIDMwMHB4ICArICAxZW0gKTtcbn1cbi51aS5jbG9zZS5sZWZ0LnJhaWwge1xuICBwYWRkaW5nOiAwZW0gMWVtIDBlbSAwZW07XG4gIG1hcmdpbjogMGVtIDFlbSAwZW0gMGVtO1xufVxuLnVpLmNsb3NlLnJpZ2h0LnJhaWwge1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAxZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLnVpLnZlcnkuY2xvc2UucmFpbCB7XG4gIHdpZHRoOiBjYWxjKCAzMDBweCAgKyAgMC41ZW0gKTtcbn1cbi51aS52ZXJ5LmNsb3NlLmxlZnQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAwLjVlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLnVpLnZlcnkuY2xvc2UucmlnaHQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDAuNWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmF0dGFjaGVkLmxlZnQucmFpbCxcbi51aS5hdHRhY2hlZC5yaWdodC5yYWlsIHtcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkucmFpbCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LnJhaWwge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwucmFpbCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5yYWlsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLnJhaWwge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuYmlnLnJhaWwge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5yYWlsIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUucmFpbCB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFJldmVhbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFJldmVhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFR5cGVzICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFJldmVhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5yZXZlYWwge1xuICBkaXNwbGF5OiBpbmhlcml0O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAzICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UgMC4xcztcbn1cbi51aS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgei1pbmRleDogMiAhaW1wb3J0YW50O1xufVxuLyogTWFrZSBzdXJlIGhvdmVyZWQgZWxlbWVudCBpcyBvbiB0b3Agb2Ygb3RoZXIgcmV2ZWFsICovXG4udWkuYWN0aXZlLnJldmVhbCAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJldmVhbDpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgei1pbmRleDogNCAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTbGlkZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zbGlkZS5yZXZlYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnVpLnNsaWRlLnJldmVhbCA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2UgMC4xcztcbn1cbi51aS5zbGlkZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnNsaWRlLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuYWN0aXZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCxcbi51aS5zbGlkZS5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmlnaHQucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yaWdodC5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmlnaHQuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUucmlnaHQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnJpZ2h0LmFjdGl2ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQsXG4udWkuc2xpZGUucmlnaHQucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnVwLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnVwLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnNsaWRlLnVwLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUudXAuYWN0aXZlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCxcbi51aS5zbGlkZS51cC5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuZG93bi5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuZG93bi5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5zbGlkZS5kb3duLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5kb3duLmFjdGl2ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQsXG4udWkuc2xpZGUuZG93bi5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGYWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZhZGUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIG9wYWNpdHk6IDE7XG59XG4udWkuZmFkZS5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5mYWRlLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBvcGFjaXR5OiAwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTW92ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tb3ZlLnJldmVhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWkubW92ZS5yZXZlYWwgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgbWFyZ2luOiAwZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEpIDAuMXM7XG59XG4udWkubW92ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG59XG4udWkubW92ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDogMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLm1vdmUucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLnJpZ2h0LmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLm1vdmUucmlnaHQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUudXAuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkubW92ZS51cC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUuZG93bi5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5tb3ZlLmRvd24ucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSb3RhdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucm90YXRlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbn1cbi51aS5yb3RhdGUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUucmlnaHQucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDtcbn1cbi51aS5yb3RhdGUuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLnJpZ2h0LmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJvdGF0ZS5yaWdodC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTEwZGVnKTtcbn1cbi51aS5yb3RhdGUubGVmdC5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XG59XG4udWkucm90YXRlLmxlZnQuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLmxlZnQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMTBkZWcpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmRpc2FibGVkLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkuZGlzYWJsZWQucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5oaWRkZW4uY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnJldmVhbCA+IC51aS5yaWJib24ubGFiZWwge1xuICB6LWluZGV4OiA1O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52aXNpYmxlLnJldmVhbCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbnN0YW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmluc3RhbnQucmV2ZWFsID4gLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcyAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXppbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucmV2ZWFsID4gLmNvbnRlbnQge1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFNlZ21lbnRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWdtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWdlIEdyaWQgU2VnbWVudCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIFBpbGVkICovXG4vKiBDaXJjdWxhciAqL1xuLyogU3RhY2tlZCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExvYWRpbmcgRGltbWVyICovXG4vKiBMb2FkaW5nIFNwaW5uZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUmFpc2VkICovXG4vKiBQYWRkZWQgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIENvbG9ycyAqL1xuLyogT3JkaW5hbGl0eSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFNlZ21lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc2VnbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBwYWRkaW5nOiAxZW0gMWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNlZ21lbnQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuc2VnbWVudDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogVmVydGljYWwgKi9cbi51aS52ZXJ0aWNhbC5zZWdtZW50IHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmctbGVmdDogMGVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwZW07XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS52ZXJ0aWNhbC5zZWdtZW50Omxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgTG9vc2UgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhlYWRlciAqL1xuLnVpLmludmVydGVkLnNlZ21lbnQgPiAudWkuaGVhZGVyIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBMYWJlbCAqL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5zZWdtZW50ID4gW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0uc2VnbWVudCA+IFtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ubGFiZWwge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwZW07XG59XG4udWkuYXR0YWNoZWQuc2VnbWVudDpub3QoLnRvcCk6bm90KC5ib3R0b20pID4gW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBlbTtcbn1cbi51aS5hdHRhY2hlZC5zZWdtZW50Om5vdCgudG9wKTpub3QoLmJvdHRvbSkgPiBbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMGVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtO1xufVxuLyogR3JpZCAqL1xuLnVpLnBhZ2UuZ3JpZC5zZWdtZW50LFxuLnVpLmdyaWQgPiAucm93ID4gLnVpLnNlZ21lbnQuY29sdW1uLFxuLnVpLmdyaWQgPiAudWkuc2VnbWVudC5jb2x1bW4ge1xuICBwYWRkaW5nLXRvcDogMmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMmVtO1xufVxuLnVpLmdyaWQuc2VnbWVudCB7XG4gIG1hcmdpbjogMXJlbSAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG59XG4vKiBUYWJsZSAqL1xuLnVpLmJhc2ljLnRhYmxlLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZS5zZWdtZW50IHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gIGFuaW1hdGlvbjogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBhZGRpbmc6IDFlbSAxZW07XG4gIG1pbi1oZWlnaHQ6IDE4cmVtO1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMjVweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4wNSkgaW5zZXQ7XG59XG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCAuYnV0dG9uLFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgdGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IC5maWVsZCxcbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IHRleHRhcmVhLFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgPiAudWkuaW5wdXQsXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCAuYnV0dG9uIHtcbiAgbWF4LXdpZHRoOiAxNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IC5jb2x1bW4gLmJ1dHRvbixcbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IC5jb2x1bW4gLmZpZWxkLFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmNvbHVtbiB0ZXh0YXJlYSxcbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IC5jb2x1bW4gPiAudWkuaW5wdXQge1xuICBtYXgtd2lkdGg6IDE1cmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgPiAuaW5saW5lIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgPiAuaW5saW5lID4gLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMHB4IDAuMzU3MTQyODZyZW0gMHB4IDBweDtcbn1cbi51aS5wbGFjZWhvbGRlci5zZWdtZW50ID4gLmlubGluZSA+IC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBpbGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucGlsZWQuc2VnbWVudHMsXG4udWkucGlsZWQuc2VnbWVudCB7XG4gIG1hcmdpbjogM2VtIDBlbTtcbiAgYm94LXNoYWRvdzogJyc7XG4gIHotaW5kZXg6IGF1dG87XG59XG4udWkucGlsZWQuc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkucGlsZWQuc2VnbWVudHM6YWZ0ZXIsXG4udWkucGlsZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnBpbGVkLnNlZ21lbnQ6YWZ0ZXIsXG4udWkucGlsZWQuc2VnbWVudDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiAnJztcbn1cbi51aS5waWxlZC5zZWdtZW50czpiZWZvcmUsXG4udWkucGlsZWQuc2VnbWVudDpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMS4yZGVnKTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMjtcbn1cbi51aS5waWxlZC5zZWdtZW50czphZnRlcixcbi51aS5waWxlZC5zZWdtZW50OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMS4yZGVnKTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMTtcbn1cbi8qIFBpbGVkIEF0dGFjaGVkICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnBpbGVkLnNlZ21lbnQge1xuICBtYXJnaW4tdG9wOiAzZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50W2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50W2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXSB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogM2VtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGFja2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhY2tlZC5zZWdtZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDEuNGVtO1xufVxuLnVpLnN0YWNrZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnN0YWNrZWQuc2VnbWVudHM6YWZ0ZXIsXG4udWkuc3RhY2tlZC5zZWdtZW50OmJlZm9yZSxcbi51aS5zdGFja2VkLnNlZ21lbnQ6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0zcHg7XG4gIGxlZnQ6IDAlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNnB4O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnVpLnN0YWNrZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnN0YWNrZWQuc2VnbWVudDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQWRkIGFkZGl0aW9uYWwgcGFnZSAqL1xuLnVpLnRhbGwuc3RhY2tlZC5zZWdtZW50czpiZWZvcmUsXG4udWkudGFsbC5zdGFja2VkLnNlZ21lbnQ6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvdHRvbTogMHB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnRzOmFmdGVyLFxuLnVpLnN0YWNrZWQuaW52ZXJ0ZWQuc2VnbWVudDpiZWZvcmUsXG4udWkuc3RhY2tlZC5pbnZlcnRlZC5zZWdtZW50OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQYWRkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWRkZWQuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDEuNWVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnNlZ21lbnQge1xuICBwYWRkaW5nOiAzZW07XG59XG4vKiBQYWRkZWQgdmVydGljYWwgKi9cbi51aS5wYWRkZWQuc2VnbWVudC52ZXJ0aWNhbC5zZWdtZW50LFxuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnZlcnRpY2FsLnNlZ21lbnQge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29tcGFjdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbXBhY3Quc2VnbWVudCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLyogQ29tcGFjdCBHcm91cCAqL1xuLnVpLmNvbXBhY3Quc2VnbWVudHMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbi51aS5jb21wYWN0LnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLnNlZ21lbnRzIC5jb21wYWN0LnNlZ21lbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAxIGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNpcmN1bGFyLnNlZ21lbnQge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSYWlzZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yYWlzZWQuc2VnbWVudHMsXG4udWkucmFpc2VkLnNlZ21lbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyb3Vwc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEdyb3VwICovXG4udWkuc2VnbWVudHMge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMXJlbSAwZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbn1cbi51aS5zZWdtZW50czpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5zZWdtZW50czpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogTmVzdGVkIFNlZ21lbnQgKi9cbi51aS5zZWdtZW50cyA+IC5zZWdtZW50IHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtO1xuICB3aWR0aDogYXV0bztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWdtZW50czpub3QoLmhvcml6b250YWwpID4gLnNlZ21lbnQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpLnNlZ21lbnRzOm5vdCguaG9yaXpvbnRhbCkgPiAuc2VnbWVudDpsYXN0LWNoaWxkIHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbTtcbn1cbi8qIE9ubHkgKi9cbi51aS5zZWdtZW50czpub3QoLmhvcml6b250YWwpID4gLnNlZ21lbnQ6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG59XG4vKiBOZXN0ZWQgR3JvdXAgKi9cbi51aS5zZWdtZW50cyA+IC51aS5zZWdtZW50cyB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBtYXJnaW46IDFyZW0gMXJlbTtcbn1cbi51aS5zZWdtZW50cyA+IC5zZWdtZW50czpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuc2VnbWVudHMgPiAuc2VnbWVudCArIC5zZWdtZW50czpub3QoLmhvcml6b250YWwpIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogSG9yaXpvbnRhbCBHcm91cCAqL1xuLnVpLmhvcml6b250YWwuc2VnbWVudHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBwYWRkaW5nOiAwZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAxcmVtIDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIE5lc3RlZCBIb3Jpem9udGFsIEdyb3VwICovXG4udWkuc2VnbWVudHMgPiAuaG9yaXpvbnRhbC5zZWdtZW50cyB7XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogSG9yaXpvbnRhbCBTZWdtZW50ICovXG4udWkuaG9yaXpvbnRhbC5zZWdtZW50cyA+IC5zZWdtZW50IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIC1tcy1mbGV4OiAxIDEgMHB4O1xuICAvKiBTb2x2ZXMgIzI1NTAgTVMgRmxleCAqL1xuICBtYXJnaW46IDBlbTtcbiAgbWluLXdpZHRoOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogQm9yZGVyIEZpeGVzICovXG4udWkuc2VnbWVudHMgPiAuaG9yaXpvbnRhbC5zZWdtZW50czpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuaG9yaXpvbnRhbC5zZWdtZW50cyA+IC5zZWdtZW50OmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpc2FibGVkLnNlZ21lbnQge1xuICBvcGFjaXR5OiAwLjQ1O1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5zZWdtZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbn1cbi51aS5sb2FkaW5nLnNlZ21lbnQ6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgei1pbmRleDogMTAwO1xufVxuLnVpLmxvYWRpbmcuc2VnbWVudDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuNWVtIDBlbSAwZW0gLTEuNWVtO1xuICB3aWR0aDogM2VtO1xuICBoZWlnaHQ6IDNlbTtcbiAgYW5pbWF0aW9uOiBzZWdtZW50LXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB6LWluZGV4OiAxMDE7XG59XG5Aa2V5ZnJhbWVzIHNlZ21lbnQtc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5iYXNpYy5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDbGVhcmluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNsZWFyaW5nLnNlZ21lbnQ6YWZ0ZXIge1xuICBjb250ZW50OiBcIi5cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG4udWkucmVkLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI0RCMjgyOCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnJlZC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogT3JhbmdlICovXG4udWkub3JhbmdlLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI0YyNzExQyAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogWWVsbG93ICovXG4udWkueWVsbG93LnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogT2xpdmUgKi9cbi51aS5vbGl2ZS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNCNUNDMTggIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmVlbi5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMyMUJBNDUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogVGVhbCAqL1xuLnVpLnRlYWwuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMDBCNUFEICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQmx1ZSAqL1xuLnVpLmJsdWUuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMjE4NUQwICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxODVEMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogVmlvbGV0ICovXG4udWkudmlvbGV0LnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzY0MzVDOSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogUHVycGxlICovXG4udWkucHVycGxlLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI0EzMzNDOCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogUGluayAqL1xuLnVpLnBpbmsuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQnJvd24gKi9cbi51aS5icm93bi5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogR3JleSAqL1xuLnVpLmdyZXkuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjNzY3Njc2ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQmxhY2sgKi9cbi51aS5ibGFjay5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMxQjFDMUQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5zZWdtZW50IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLnNlZ21lbnQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5zZWdtZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0ZWQuc2VnbWVudCxcbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uc2VnbWVudCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLnNlZ21lbnQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC5zZWdtZW50LFxuLnVpLnByaW1hcnkuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKiBOZXN0ZWQgKi9cbi51aS5pbnZlcnRlZC5zZWdtZW50IC5zZWdtZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW52ZXJ0ZWQuc2VnbWVudCAuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKiBBdHRhY2hlZCAqL1xuLnVpLmludmVydGVkLmF0dGFjaGVkLnNlZ21lbnQge1xuICBib3JkZXItY29sb3I6ICM1NTU1NTU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgRW1waGFzaXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlY29uZGFyeSAqL1xuLnVpLnNlY29uZGFyeS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICM0YzRmNTIgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIDEwMCUpO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xufVxuLyogVGVydGlhcnkgKi9cbi51aS50ZXJ0aWFyeS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogI0RDRERERTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS50ZXJ0aWFyeS5pbnZlcnRlZC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogIzcxNzU3OSBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAxMDAlKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pZGRsZSAqL1xuLnVpLmF0dGFjaGVkLnNlZ21lbnQge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luOiAwZW0gLTFweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtICgtMXB4ICogMikpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICgtMXB4ICogMikpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLmF0dGFjaGVkOm5vdCgubWVzc2FnZSkgKyAudWkuYXR0YWNoZWQuc2VnbWVudDpub3QoLnRvcCkge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLyogVG9wICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnNlZ21lbnQge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB0b3A6IDBweDtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4udWkuc2VnbWVudFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBCb3R0b20gKi9cbi51aS5zZWdtZW50W2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkubWluaS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkudGlueS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLnNtYWxsLnNlZ21lbnQge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5sYXJnZS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5iaWcuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLmh1Z2Uuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLm1hc3NpdmUuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zZWNvbmRhcnkuc2VnbWVudCB7XG4gIGNvbG9yOiBibGFjaztcbiAgcGFkZGluZzogMC43ZW07XG59XG4vKiBCcmFuZCAqL1xuLnVpLmJyYW5kLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzIxODVEMCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJyYW5kLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NUQwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTdGVwXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgTG9hZCBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogVGl0bGUgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBBcnJvdyAqL1xuLyogTW9iaWxlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb21wbGV0ZWQgKi9cbi8qIEhvdmVyICovXG4vKiBEb3duICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSArIEhvdmVyICovXG4vKiBEaXNhYmxlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQbHVyYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc3RlcHMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgYmFja2dyb3VuZDogJyc7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjE0Mjg1NzE0ZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBGaXJzdCBTdGVwcyAqL1xuLnVpLnN0ZXBzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogTGFzdCBTdGVwcyAqL1xuLnVpLnN0ZXBzOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBTaW5ndWxhclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zdGVwcyAuc3RlcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAwIGF1dG87XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgcGFkZGluZzogMS4xNDI4NTcxNGVtIDJlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2U7XG59XG4vKiBBcnJvdyAqL1xuLnVpLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwJTtcbiAgYm9yZGVyOiBtZWRpdW0gbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgd2lkdGg6IDEuMTQyODU3MTRlbTtcbiAgaGVpZ2h0OiAxLjE0Mjg1NzE0ZW07XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMXB4IDFweCAwcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbn1cbi8qIEZpcnN0IFN0ZXAgKi9cbi51aS5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogMmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDBlbSAwZW0gMC4yODU3MTQyOXJlbTtcbn1cbi8qIExhc3QgU3RlcCAqL1xuLnVpLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbTtcbn1cbi51aS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qIE9ubHkgU3RlcCAqL1xuLnVpLnN0ZXBzIC5zdGVwOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaXRsZSAqL1xuLnVpLnN0ZXBzIC5zdGVwIC50aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC50aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogRGVzY3JpcHRpb24gKi9cbi51aS5zdGVwcyAuc3RlcCAuZGVzY3JpcHRpb24ge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuc3RlcHMgLnN0ZXAgPiAuZGVzY3JpcHRpb24ge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5zdGVwcyAuc3RlcCAudGl0bGUgfiAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjI1ZW07XG59XG4vKiBJY29uICovXG4udWkuc3RlcHMgLnN0ZXAgPiAuaWNvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDIuNWVtO1xuICBtYXJnaW46IDBlbSAxcmVtIDBlbSAwZW07XG59XG4udWkuc3RlcHMgLnN0ZXAgPiAuaWNvbixcbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uIH4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAxIGF1dG87XG4gIGFsaWduLXNlbGY6IG1pZGRsZTtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uIH4gLmNvbnRlbnQge1xuICBmbGV4LWdyb3c6IDEgMCBhdXRvO1xufVxuLyogSG9yaXpvbnRhbCBJY29uICovXG4udWkuc3RlcHM6bm90KC52ZXJ0aWNhbCkgLnN0ZXAgPiAuaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyogTGluayAqL1xuLnVpLnN0ZXBzIC5saW5rLnN0ZXAsXG4udWkuc3RlcHMgYS5zdGVwIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBPcmRlcmVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm9yZGVyZWQuc3RlcHMge1xuICBjb3VudGVyLXJlc2V0OiBvcmRlcmVkO1xufVxuLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXA6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29udGVudDogY291bnRlcnMob3JkZXJlZCwgXCIuXCIpO1xuICBhbGlnbi1zZWxmOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgZm9udC1zaXplOiAyLjVlbTtcbiAgY291bnRlci1pbmNyZW1lbnQ6IG9yZGVyZWQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwID4gKiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBhbGlnbi1zZWxmOiBtaWRkbGU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmVydGljYWwuc3RlcHMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXAge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgcGFkZGluZzogMS4xNDI4NTcxNGVtIDJlbTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IDEuMTQyODU3MTRlbSAyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW0gMGVtO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbn1cbi8qIEFycm93ICovXG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwJTtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMXB4IDFweCAwcHg7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5hY3RpdmUuc3RlcDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5hY3RpdmUuc3RlcDpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tLVxuICAgIFJlc3BvbnNpdmVcbi0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTW9iaWxlIChEZWZhdWx0KSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLnVpLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIC5zdGVwIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyLXJhZGl1czogMGVtO1xuICAgIHBhZGRpbmc6IDEuMTQyODU3MTRlbSAyZW07XG4gIH1cbiAgLnVpLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIC5zdGVwOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nOiAxLjE0Mjg1NzE0ZW0gMmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW0gMGVtO1xuICB9XG4gIC51aS5zdGVwczpub3QoLnVuc3RhY2thYmxlKSAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbTtcbiAgfVxuICAvKiBBcnJvdyAqL1xuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXA6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAvKiBDb250ZW50ICovXG4gIC51aS5zdGVwczpub3QoLnVuc3RhY2thYmxlKSAuc3RlcCAuY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC8qIEljb24gKi9cbiAgLnVpLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIC5zdGVwID4gLmljb24sXG4gIC51aS5vcmRlcmVkLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIC5zdGVwOmJlZm9yZSB7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDFyZW0gMGVtO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExpbmsgSG92ZXIgKi9cbi51aS5zdGVwcyAubGluay5zdGVwOmhvdmVyOjphZnRlcixcbi51aS5zdGVwcyAubGluay5zdGVwOmhvdmVyLFxuLnVpLnN0ZXBzIGEuc3RlcDpob3Zlcjo6YWZ0ZXIsXG4udWkuc3RlcHMgYS5zdGVwOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0Y5RkFGQjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qIExpbmsgRG93biAqL1xuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6YWN0aXZlOjphZnRlcixcbi51aS5zdGVwcyAubGluay5zdGVwOmFjdGl2ZSxcbi51aS5zdGVwcyBhLnN0ZXA6YWN0aXZlOjphZnRlcixcbi51aS5zdGVwcyBhLnN0ZXA6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnN0ZXBzIC5zdGVwLmFjdGl2ZSB7XG4gIGN1cnNvcjogYXV0bztcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbn1cbi51aS5zdGVwcyAuc3RlcC5hY3RpdmU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xufVxuLnVpLnN0ZXBzIC5zdGVwLmFjdGl2ZSAudGl0bGUge1xuICBjb2xvcjogIzQxODNDNDtcbn1cbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwLmFjdGl2ZTpiZWZvcmUsXG4udWkuc3RlcHMgLmFjdGl2ZS5zdGVwIC5pY29uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4vKiBBY3RpdmUgQXJyb3cgKi9cbi51aS5zdGVwcyAuc3RlcDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLnN0ZXBzIC5hY3RpdmUuc3RlcDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnN0ZXBzIC5hY3RpdmUuc3RlcDpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEFjdGl2ZSBIb3ZlciAqL1xuLnVpLnN0ZXBzIC5saW5rLmFjdGl2ZS5zdGVwOmhvdmVyOjphZnRlcixcbi51aS5zdGVwcyAubGluay5hY3RpdmUuc3RlcDpob3Zlcixcbi51aS5zdGVwcyBhLmFjdGl2ZS5zdGVwOmhvdmVyOjphZnRlcixcbi51aS5zdGVwcyBhLmFjdGl2ZS5zdGVwOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAjRENERERFO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIENvbXBsZXRlZCAqL1xuLnVpLnN0ZXBzIC5zdGVwLmNvbXBsZXRlZCA+IC5pY29uOmJlZm9yZSxcbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwLmNvbXBsZXRlZDpiZWZvcmUge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi8qIERpc2FibGVkICovXG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXAge1xuICBjdXJzb3I6IGF1dG87XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnVpLnN0ZXBzIC5kaXNhYmxlZC5zdGVwLFxuLnVpLnN0ZXBzIC5kaXNhYmxlZC5zdGVwIC50aXRsZSxcbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcCAuZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpO1xufVxuLnVpLnN0ZXBzIC5kaXNhYmxlZC5zdGVwOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUYWJsZXQgT3IgQmVsb3cgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLyogU3RlcHMgKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXAge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyLXJhZGl1czogMGVtO1xuICAgIHBhZGRpbmc6IDEuMTQyODU3MTRlbSAyZW07XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmc6IDEuMTQyODU3MTRlbSAyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW07XG4gIH1cbiAgLyogQXJyb3cgKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAvKiBDb250ZW50ICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwIC5jb250ZW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLyogSWNvbiAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcCA+IC5pY29uLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5vcmRlcmVkLnN0ZXBzIC5zdGVwOmJlZm9yZSB7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDFyZW0gMGVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZsdWlkICovXG4udWkuZmx1aWQuc3RlcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCAqL1xuLnVpLmF0dGFjaGVkLnN0ZXBzIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArICgtLTFweCAqIDIpKSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAtMXB4IDA7XG4gIG1heC13aWR0aDogY2FsYygxMDAlICsgKC0tMXB4ICogMikpO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbTtcbn1cbi51aS5hdHRhY2hlZC5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMGVtIDBlbSAwZW07XG59XG4udWkuYXR0YWNoZWQuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4vKiBCb3R0b20gKi9cbi51aS5ib3R0b20uYXR0YWNoZWQuc3RlcHMge1xuICBtYXJnaW46IDAgLTFweCAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuMjg1NzE0MjlyZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRXZlbmx5IERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5vbmUuc3RlcHMsXG4udWkudHdvLnN0ZXBzLFxuLnVpLnRocmVlLnN0ZXBzLFxuLnVpLmZvdXIuc3RlcHMsXG4udWkuZml2ZS5zdGVwcyxcbi51aS5zaXguc3RlcHMsXG4udWkuc2V2ZW4uc3RlcHMsXG4udWkuZWlnaHQuc3RlcHMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5vbmUuc3RlcHMgPiAuc3RlcCxcbi51aS50d28uc3RlcHMgPiAuc3RlcCxcbi51aS50aHJlZS5zdGVwcyA+IC5zdGVwLFxuLnVpLmZvdXIuc3RlcHMgPiAuc3RlcCxcbi51aS5maXZlLnN0ZXBzID4gLnN0ZXAsXG4udWkuc2l4LnN0ZXBzID4gLnN0ZXAsXG4udWkuc2V2ZW4uc3RlcHMgPiAuc3RlcCxcbi51aS5laWdodC5zdGVwcyA+IC5zdGVwIHtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG4udWkub25lLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkudGhyZWUuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAzMy4zMzMlO1xufVxuLnVpLmZvdXIuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAyNSU7XG59XG4udWkuZml2ZS5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5zaXguc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAxNi42NjYlO1xufVxuLnVpLnNldmVuLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMTQuMjg1JTtcbn1cbi51aS5laWdodC5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnN0ZXBzIC5zdGVwLFxuLnVpLm1pbmkuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LnN0ZXBzIC5zdGVwLFxuLnVpLnRpbnkuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5zbWFsbC5zdGVwcyAuc3RlcCxcbi51aS5zbWFsbC5zdGVwIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLnN0ZXBzIC5zdGVwLFxuLnVpLnN0ZXAge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2Uuc3RlcHMgLnN0ZXAsXG4udWkubGFyZ2Uuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5iaWcuc3RlcHMgLnN0ZXAsXG4udWkuYmlnLnN0ZXAge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5zdGVwcyAuc3RlcCxcbi51aS5odWdlLnN0ZXAge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5zdGVwcyAuc3RlcCxcbi51aS5tYXNzaXZlLnN0ZXAge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKiBDb2xsZWN0aW9ucyAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQnJlYWRjcnVtYlxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBCcmVhZGNydW1iXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFkY3J1bWJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvdXBsaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBCcmVhZGNydW1iXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJyZWFkY3J1bWIge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkuYnJlYWRjcnVtYjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5icmVhZGNydW1iOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBEaXZpZGVyICovXG4udWkuYnJlYWRjcnVtYiAuZGl2aWRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMC43O1xuICBtYXJnaW46IDBlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qIExpbmsgKi9cbi51aS5icmVhZGNydW1iIGEge1xuICBjb2xvcjogIzQxODNDNDtcbn1cbi51aS5icmVhZGNydW1iIGE6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qIEljb24gRGl2aWRlciAqL1xuLnVpLmJyZWFkY3J1bWIgLmljb24uZGl2aWRlciB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKiBTZWN0aW9uICovXG4udWkuYnJlYWRjcnVtYiBhLnNlY3Rpb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuYnJlYWRjcnVtYiAuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qIExvb3NlIENvdXBsaW5nICovXG4udWkuYnJlYWRjcnVtYi5zZWdtZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5ZW0gMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5icmVhZGNydW1iIC5hY3RpdmUuc2VjdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5taW5pLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuLnVpLmh1Z2UuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBGb3JtXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZvcm1cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9ybSAqL1xuLyogVGV4dCAqL1xuLyogRmllbGQgKi9cbi8qIEZpZWxkcyAqL1xuLyogRm9ybSBMYWJlbCAqL1xuLyogSW5wdXQgKi9cbi8qIFNlbGVjdCAqL1xuLyogVGV4dCBBcmVhICovXG4vKiBDaGVja2JveCAqL1xuLyogSW5saW5lIFZhbGlkYXRpb24gUHJvbXB0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb2N1cyAqL1xuLyogSW5wdXQgRm9jdXMgKi9cbi8qIFRleHQgQXJlYSBGb2N1cyAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIEVycm9yZWQgSW5wdXQgKi9cbi8qIEF1dG9GaWxsICovXG4vKiBJbnB1dCBFcnJvciAqL1xuLyogRHJvcGRvd24gRXJyb3IgKi9cbi8qIEZvY3VzZWQgRXJyb3IgKi9cbi8qIFBsYWNlaG9sZGVyIEVycm9yICovXG4vKiBMb2FkaW5nIERpbW1lciAqL1xuLyogTG9hZGluZyBTcGlubmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlcXVpcmVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cGVkIEZpZWxkcyAqL1xuLyogSW5saW5lICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBFbGVtZW50c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9ybVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSA+IHAge1xuICBtYXJnaW46IDFlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZpZWxkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmZpZWxkIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkuZm9ybSAuZmllbGQ6bGFzdC1jaGlsZCxcbi51aS5mb3JtIC5maWVsZHM6bGFzdC1jaGlsZCAuZmllbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkuZm9ybSAuZmllbGRzIC5maWVsZCB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTGFiZWxzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmZpZWxkID4gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFuZGFyZCBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSB0ZXh0YXJlYSxcbi51aS5mb3JtIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKiBTZXQgbWF4IGhlaWdodCBvbiB1bnVzdWFsIGlucHV0ICovXG4udWkuZm9ybSA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdCxcbi51aS5mb3JtIDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogMS4yMTQyODU3MWVtO1xufVxuLnVpLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDBlbTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB0YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBwYWRkaW5nOiAwLjY3ODU3MTQzZW0gMWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDBlbSB0cmFuc3BhcmVudCBpbnNldDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLyogVGV4dCBBcmVhICovXG4udWkuZm9ybSB0ZXh0YXJlYSB7XG4gIG1hcmdpbjogMGVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAxZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwZW0gdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTc7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG4udWkuZm9ybSB0ZXh0YXJlYTpub3QoW3Jvd3NdKSB7XG4gIGhlaWdodDogMTJlbTtcbiAgbWluLWhlaWdodDogOGVtO1xuICBtYXgtaGVpZ2h0OiAyNGVtO1xufVxuLnVpLmZvcm0gdGV4dGFyZWEsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBJbnB1dCB3LyBhdHRhY2hlZCBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSBpbnB1dC5hdHRhY2hlZCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCYXNpYyBTZWxlY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSBzZWxlY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMGVtIHRyYW5zcGFyZW50IGluc2V0O1xuICBwYWRkaW5nOiAwLjYyZW0gMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERyb3Bkb3duXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmxvY2sgKi9cbi51aS5mb3JtIC5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5mb3JtIC5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi8qIElubGluZSAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93bixcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgd2lkdGg6IGF1dG87XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24sXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVUkgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCbG9jayAqL1xuLnVpLmZvcm0gLmZpZWxkIC51aS5pbnB1dCxcbi51aS5mb3JtIC5maWVsZHMgLmZpZWxkIC51aS5pbnB1dCxcbi51aS5mb3JtIC53aWRlLmZpZWxkIC51aS5pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogSW5saW5lICAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkOm5vdCgud2lkZSkgLnVpLmlucHV0LFxuLnVpLmZvcm0gLmlubGluZS5maWVsZDpub3QoLndpZGUpIC51aS5pbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyogQXV0byBJbnB1dCAqL1xuLnVpLmZvcm0gLmZpZWxkcyAuZmllbGQgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLmZpZWxkIC51aS5pbnB1dCBpbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyogRnVsbCBXaWR0aCBJbnB1dCAqL1xuLnVpLmZvcm0gLnRlbi5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLm5pbmUuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5laWdodC5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLnNldmVuLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuc2l4LmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuZml2ZS5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLmZvdXIuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC50aHJlZS5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLnR3by5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLndpZGUuZmllbGQgLnVpLmlucHV0IGlucHV0IHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHdpZHRoOiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBUeXBlcyBvZiBNZXNzYWdlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5zdWNjZXNzLm1lc3NhZ2UsXG4udWkuZm9ybSAud2FybmluZy5tZXNzYWdlLFxuLnVpLmZvcm0gLmVycm9yLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQXNzdW1wdGlvbnMgKi9cbi51aS5mb3JtIC5tZXNzYWdlOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVmFsaWRhdGlvbiBQcm9tcHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGQgLnByb21wdC5sYWJlbCB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0UwQjRCNCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzlGM0EzOCAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkIC5wcm9tcHQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkIC5wcm9tcHQge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtYXJnaW46IC0wLjI1ZW0gMGVtIC0wLjVlbSAwLjVlbTtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCAucHJvbXB0OmJlZm9yZSxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgLnByb21wdDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IDBweCAwcHggMXB4IDFweDtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBBdXRvZmlsbGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmZpZWxkLmZpZWxkIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxMDBweCAjRkZGRkYwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0U1REZBMSAhaW1wb3J0YW50O1xufVxuLyogRm9jdXMgKi9cbi51aS5mb3JtIC5maWVsZC5maWVsZCBpbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMTAwcHggI0ZGRkZGMCBpbnNldCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNENUMzMTUgIWltcG9ydGFudDtcbn1cbi8qIEVycm9yICovXG4udWkuZm9ybSAuZXJyb3IuZXJyb3IgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDEwMHB4ICNGRkZBRjAgaW5zZXQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQbGFjZWhvbGRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIGJyb3dzZXJzIHJlcXVpcmUgdGhlc2UgcnVsZXMgc2VwYXJhdGUgKi9cbi51aS5mb3JtIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuODcpO1xufVxuLnVpLmZvcm0gOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuODcpICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxOTEsIDE5MSwgMTkxLCAwLjg3KTtcbn1cbi51aS5mb3JtIDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuODcpO1xufVxuLnVpLmZvcm0gOmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuODcpICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSA6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjg3KTtcbn1cbi8qIEVycm9yIFBsYWNlaG9sZGVyICovXG4udWkuZm9ybSAuZXJyb3IgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmM7XG59XG4udWkuZm9ybSAuZXJyb3IgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZXJyb3IgOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmM7XG59XG4udWkuZm9ybSAuZXJyb3IgOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTY7XG59XG4udWkuZm9ybSAuZXJyb3IgOmZvY3VzOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2ICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZXJyb3IgOmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAjODVCN0Q5O1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBlbSAwZW0gcmdiYSgzNCwgMzYsIDM4LCAwLjM1KSBpbnNldDtcbn1cbi51aS5mb3JtIHRleHRhcmVhOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogIzg1QjdEOTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwZW0gMGVtIHJnYmEoMzQsIDM2LCAzOCwgMC4zNSkgaW5zZXQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3VjY2Vzc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE9uIEZvcm0gKi9cbi51aS5mb3JtLnN1Y2Nlc3MgLnN1Y2Nlc3MubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmZvcm0uc3VjY2VzcyAuY29tcGFjdC5zdWNjZXNzLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWkuZm9ybS5zdWNjZXNzIC5pY29uLnN1Y2Nlc3MubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFdhcm5pbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBPbiBGb3JtICovXG4udWkuZm9ybS53YXJuaW5nIC53YXJuaW5nLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5mb3JtLndhcm5pbmcgLmNvbXBhY3Qud2FybmluZy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLmZvcm0ud2FybmluZyAuaWNvbi53YXJuaW5nLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE9uIEZvcm0gKi9cbi51aS5mb3JtLmVycm9yIC5lcnJvci5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuZm9ybS5lcnJvciAuY29tcGFjdC5lcnJvci5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLmZvcm0uZXJyb3IgLmljb24uZXJyb3IubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4vKiBPbiBGaWVsZChzKSAqL1xuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgbGFiZWwsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgbGFiZWwsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuaW5wdXQsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmlucHV0IHtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY29ybmVyLmxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jb3JuZXIubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM5RjNBMzg7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgdGV4dGFyZWEsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBzZWxlY3QsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dDpub3QoW3R5cGVdKSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInVybFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciB0ZXh0YXJlYSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBzZWxlY3QsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInVybFwiXSB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjY7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbiAgY29sb3I6ICM5RjNBMzg7XG4gIGJvcmRlci1yYWRpdXM6ICcnO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHRleHRhcmVhOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHNlbGVjdDpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dDpub3QoW3R5cGVdKTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNjtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xuICBjb2xvcjogIzlGM0EzODtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogUHJlc2VydmUgTmF0aXZlIFNlbGVjdCBTdHlsaW5ncyAqL1xuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHNlbGVjdCB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbWVudWxpc3QtYnV0dG9uO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEcm9wZG93biBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duIC5pdGVtLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93bixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLnRleHQsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIC5pdGVtIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNjtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIHtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0ICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd246aG92ZXIsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0ICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd246aG92ZXIgLm1lbnUsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duOmhvdmVyIC5tZW51IHtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLm11bHRpcGxlLnNlbGVjdGlvbi5kcm9wZG93biA+IC5sYWJlbCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkubXVsdGlwbGUuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VBQ0JDQjtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4vKiBIb3ZlciAqL1xuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtOmhvdmVyLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biAubWVudSAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkU3RTc7XG59XG4vKiBTZWxlY3RlZCAqL1xuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duIC5tZW51IC5zZWxlY3RlZC5pdGVtLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biAubWVudSAuc2VsZWN0ZWQuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkU3RTc7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAubWVudSAuYWN0aXZlLml0ZW0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRENGQ0YgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDaGVja2JveCBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgLmJveCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94IHtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSBsYWJlbDpiZWZvcmUsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgbGFiZWw6YmVmb3JlLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgLmJveDpiZWZvcmUsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgLmJveDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3ggbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94IC5ib3g6YWZ0ZXIge1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5kaXNhYmxlZC5maWVsZHMgLmZpZWxkLFxuLnVpLmZvcm0gLmRpc2FibGVkLmZpZWxkLFxuLnVpLmZvcm0gLmZpZWxkIDpkaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLnVpLmZvcm0gLmZpZWxkLmRpc2FibGVkID4gbGFiZWwsXG4udWkuZm9ybSAuZmllbGRzLmRpc2FibGVkID4gbGFiZWwge1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLnVpLmZvcm0gLmZpZWxkLmRpc2FibGVkIDpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLmZvcm0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udWkubG9hZGluZy5mb3JtOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDtcbn1cbi51aS5sb2FkaW5nLmZvcm06YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0xLjVlbSAwZW0gMGVtIC0xLjVlbTtcbiAgd2lkdGg6IDNlbTtcbiAgaGVpZ2h0OiAzZW07XG4gIGFuaW1hdGlvbjogZm9ybS1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgei1pbmRleDogMTAxO1xufVxuQGtleWZyYW1lcyBmb3JtLXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEVsZW1lbnQgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFJlcXVpcmVkIEZpZWxkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkczpub3QoLmdyb3VwZWQpID4gLmZpZWxkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzLmdyb3VwZWQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkczpub3QoLmdyb3VwZWQpID4gLmZpZWxkID4gLmNoZWNrYm94OmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkID4gLmNoZWNrYm94OmFmdGVyIHtcbiAgbWFyZ2luOiAtMC4yZW0gMGVtIDBlbSAwLjJlbTtcbiAgY29udGVudDogJyonO1xuICBjb2xvcjogI0RCMjgyODtcbn1cbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHM6bm90KC5ncm91cGVkKSA+IC5maWVsZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkcy5ncm91cGVkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGQgPiBsYWJlbDphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHM6bm90KC5ncm91cGVkKSA+IC5maWVsZCA+IC5jaGVja2JveDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZCA+IC5jaGVja2JveDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwJTtcbiAgbGVmdDogMTAwJTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmZvcm0gbGFiZWwsXG4udWkuZm9ybSAuaW52ZXJ0ZWQuc2VnbWVudCBsYWJlbCxcbi51aS5mb3JtIC5pbnZlcnRlZC5zZWdtZW50IC51aS5jaGVja2JveCBsYWJlbCxcbi51aS5mb3JtIC5pbnZlcnRlZC5zZWdtZW50IC51aS5jaGVja2JveCAuYm94LFxuLnVpLmludmVydGVkLmZvcm0gLnVpLmNoZWNrYm94IGxhYmVsLFxuLnVpLmludmVydGVkLmZvcm0gLnVpLmNoZWNrYm94IC5ib3gsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkcyA+IGxhYmVsLFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gbGFiZWwsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBwLFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZCA+IGxhYmVsLFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZCA+IHAge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLyogSW52ZXJ0ZWQgRmllbGQgKi9cbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBGaWVsZCBHcm91cHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cGVkIFZlcnRpY2FsbHkgKi9cbi51aS5mb3JtIC5ncm91cGVkLmZpZWxkcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLmZvcm0gLmdyb3VwZWQuZmllbGRzOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHMgPiBsYWJlbCB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHMgLmZpZWxkLFxuLnVpLmZvcm0gLmdyb3VwZWQuaW5saW5lLmZpZWxkcyAuZmllbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwLjVlbSAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmllbGRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BsaXQgZmllbGRzICovXG4udWkuZm9ybSAuZmllbGRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgbWFyZ2luOiAwZW0gLTAuNWVtIDFlbTtcbn1cbi51aS5mb3JtIC5maWVsZHMgPiAuZmllbGQge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG59XG4udWkuZm9ybSAuZmllbGRzID4gLmZpZWxkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBPdGhlciBDb21iaW5hdGlvbnMgKi9cbi51aS5mb3JtIC50d28uZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC50d28uZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS5mb3JtIC50aHJlZS5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnRocmVlLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4udWkuZm9ybSAuZm91ci5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLmZvdXIuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS5mb3JtIC5maXZlLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuZml2ZS5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLmZvcm0gLnNpeC5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnNpeC5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTYuNjY2NjY2NjclO1xufVxuLnVpLmZvcm0gLnNldmVuLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuc2V2ZW4uZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI5JTtcbn1cbi51aS5mb3JtIC5laWdodC5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLmVpZ2h0LmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi51aS5mb3JtIC5uaW5lLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAubmluZS5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTEuMTExMTExMTElO1xufVxuLnVpLmZvcm0gLnRlbi5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnRlbi5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTAlO1xufVxuLyogU3dhcCB0byBmdWxsIHdpZHRoIG9uIG1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuZm9ybSAuZmllbGRzIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkcyA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnR3by5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudHdvLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnRocmVlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50aHJlZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5mb3VyLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5mb3VyLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpdmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpdmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuc2l4LmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5zaXguZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuc2V2ZW4uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnNldmVuLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmVpZ2h0LmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5laWdodC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5uaW5lLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5uaW5lLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnRlbi5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudGVuLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMWVtO1xuICB9XG59XG4vKiBTaXppbmcgQ29tYmluYXRpb25zICovXG4udWkuZm9ybSAuZmllbGRzIC53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDYuMjUlO1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5mb3JtIC5vbmUud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnR3by53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudGhyZWUud2lkZS5maWVsZCB7XG4gIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5mb3VyLndpZGUuZmllbGQge1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZml2ZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnNpeC53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuc2V2ZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5laWdodC53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLm5pbmUud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC50ZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmVsZXZlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnR3ZWx2ZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnRoaXJ0ZWVuLndpZGUuZmllbGQge1xuICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZm91cnRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZpZnRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5zaXh0ZWVuLndpZGUuZmllbGQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLyogU3dhcCB0byBmdWxsIHdpZHRoIG9uIG1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudHdvLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50d28uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudGhyZWUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnRocmVlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZvdXIuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZvdXIuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZml2ZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZml2ZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAudHdvLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAudGhyZWUud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5mb3VyLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZml2ZS53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnNpeC53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnNldmVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZWlnaHQud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5uaW5lLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAudGVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZWxldmVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAudHdlbHZlLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAudGhpcnRlZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5mb3VydGVlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZnRlZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5zaXh0ZWVuLndpZGUuZmllbGQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmZvcm0gLmZpZWxkcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEVxdWFsIFdpZHRoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmZvcm0gLmZpZWxkcyA+IC5maWVsZCxcbi51aS5mb3JtIFtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMSAxIGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSW5saW5lIEZpZWxkc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW0gMWVtIDBlbSAwZW07XG59XG4vKiBJbmxpbmUgTGFiZWwgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzID4gbGFiZWwsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBsYWJlbCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IHAsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gbGFiZWwsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gcCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyogR3JvdXBlZCBJbmxpbmUgTGFiZWwgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzID4gbGFiZWwge1xuICBtYXJnaW46IDAuMDM1NzE0ZW0gMWVtIDBlbSAwZW07XG59XG4vKiBJbmxpbmUgSW5wdXQgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IGlucHV0LFxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gc2VsZWN0LFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IGlucHV0LFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IHNlbGVjdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDFlbTtcbn1cbi8qIExhYmVsICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiA6Zmlyc3QtY2hpbGQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW0gMC44NTcxNDI4NmVtIDBlbSAwZW07XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiA6b25seS1jaGlsZCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiA6b25seS1jaGlsZCB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyogV2lkZSAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLndpZGUuZmllbGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLndpZGUuZmllbGQgPiBpbnB1dCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC53aWRlLmZpZWxkID4gc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LmZvcm0ge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5mb3JtIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmZvcm0ge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuYmlnLmZvcm0ge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5mb3JtIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5mb3JtIC5maWVsZCBzbWFsbCB7XG4gIGNvbG9yOiAjNzY3Njc2O1xuICBtYXJnaW4tdG9wOiAwLjRlbSAhaW1wb3J0YW50O1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gR3JpZFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBHcmlkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSW5oZXJpdGVkIEZyb20gU2l0ZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyaWRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExlZ2FjeVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlZ2FjeSAoRE8gTk9UIFVTRSlcbiAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBwYWRkaW5nOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFJlbW92ZSBHdXR0ZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCB7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xufVxuLnVpLnJlbGF4ZWQuZ3JpZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQge1xuICBtYXJnaW4tbGVmdDogLTIuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMi41cmVtO1xufVxuLyogUHJlc2VydmUgUm93cyBTcGFjaW5nIG9uIENvbnNlY3V0aXZlIEdyaWRzICovXG4udWkuZ3JpZCArIC5ncmlkIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbHVtbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkIDE2IGNvbHVtbiAqL1xuLnVpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDYuMjUlO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkuZ3JpZCA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUm93c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmdyaWQgPiAucm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogaW5oZXJpdDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDByZW07XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbHVtbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsIHBhZGRpbmcgd2hlbiBubyByb3dzICovXG4udWkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCA+IC5yb3cgPiBpbWcsXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uID4gaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgTG9vc2UgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbGxhcHNlIE1hcmdpbiBvbiBDb25zZWN1dGl2ZSBHcmlkICovXG4udWkuZ3JpZCA+IC51aS5ncmlkOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmdyaWQgPiAudWkuZ3JpZDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogU2VnbWVudCBpbnNpZGUgQWxpZ25lZCBHcmlkICovXG4udWkuZ3JpZCAuYWxpZ25lZC5yb3cgPiAuY29sdW1uID4gLnNlZ21lbnQ6bm90KC5jb21wYWN0KTpub3QoLmF0dGFjaGVkKSxcbi51aS5hbGlnbmVkLmdyaWQgLmNvbHVtbiA+IC5zZWdtZW50Om5vdCguY29tcGFjdCk6bm90KC5hdHRhY2hlZCkge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEFsaWduIERpdmlkZXJzIHdpdGggR3V0dGVyICovXG4udWkuZ3JpZCAucm93ICsgLnVpLmRpdmlkZXIge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbjogMXJlbSAxcmVtO1xufVxuLnVpLmdyaWQgLmNvbHVtbiArIC51aS52ZXJ0aWNhbC5kaXZpZGVyIHtcbiAgaGVpZ2h0OiBjYWxjKDUwJSAtICgycmVtIC8gMikpO1xufVxuLyogUmVtb3ZlIEJvcmRlciBvbiBMYXN0IEhvcml6b250YWwgU2VnbWVudCAqL1xuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkID4gLmhvcml6b250YWwuc2VnbWVudCxcbi51aS5ncmlkID4gLmNvbHVtbjpsYXN0LWNoaWxkID4gLmhvcml6b250YWwuc2VnbWVudCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBhZ2UgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5wYWdlLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMGVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDBlbTtcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDMlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDMlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTlweCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICAgIHBhZGRpbmctbGVmdDogMTUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1JTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIzJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMyU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBDb2x1bW4gQ291bnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFzc3VtZSBmdWxsIHdpZHRoIHdpdGggb25lIGNvbHVtbiAqL1xuLnVpLmdyaWQgPiAuY29sdW1uOm9ubHktY2hpbGQsXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOm9ubHktY2hpbGQge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEdyaWQgQmFzZWQgKi9cbi51aVtjbGFzcyo9XCJvbmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJvbmUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMjUlO1xufVxuLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMjAlO1xufVxuLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cbi51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMTQuMjg1NzE0MjklO1xufVxuLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDExLjExMTExMTExJTtcbn1cbi51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxMCU7XG59XG4udWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogOS4wOTA5MDkwOSU7XG59XG4udWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogOC4zMzMzMzMzMyU7XG59XG4udWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDcuNjkyMzA3NjklO1xufVxuLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA3LjE0Mjg1NzE0JTtcbn1cbi51aVtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDYuNjY2NjY2NjclO1xufVxuLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogNi4yNSU7XG59XG4vKiBSb3cgQmFzZWQgT3ZlcnJpZGVzICovXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI5JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTEuMTExMTExMTElICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogOS4wOTA5MDkwOSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogNy42OTIzMDc2OSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDcuMTQyODU3MTQlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDYuNjY2NjY2NjclICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG59XG4vKiBDZWxsZWQgUGFnZSAqL1xuLnVpLmNlbGxlZC5wYWdlLmdyaWQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ29sdW1uIFdpZHRoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgQ29tYmluYXRpb25zICovXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBXaWR0aCBwZXIgRGV2aWNlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNb2JpbGUgU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogVGFibGV0IFNpemluZyBDb21iaW5hdGlvbnMgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIENvbXB1dGVyL0Rlc2t0b3AgU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogTGFyZ2UgTW9uaXRvciBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTlweCkge1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFdpZGVzY3JlZW4gU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIENlbnRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2VudGVyZWQuZ3JpZCxcbi51aS5jZW50ZXJlZC5ncmlkID4gLnJvdyxcbi51aS5ncmlkID4gLmNlbnRlcmVkLnJvdyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4udWkuY2VudGVyZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5hbGlnbmVkKTpub3QoLmp1c3RpZmllZCk6bm90KC5yb3cpLFxuLnVpLmNlbnRlcmVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpub3QoLmFsaWduZWQpOm5vdCguanVzdGlmaWVkKSxcbi51aS5ncmlkIC5jZW50ZXJlZC5yb3cgPiAuY29sdW1uOm5vdCguYWxpZ25lZCk6bm90KC5qdXN0aWZpZWQpIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS5ncmlkID4gLmNlbnRlcmVkLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5jZW50ZXJlZC5jb2x1bW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucmVsYXhlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkucmVsYXhlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yZWxheGVkLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbn1cbi8qIENvdXBsaW5nIHdpdGggVUkgRGl2aWRlciAqL1xuLnVpLnJlbGF4ZWQuZ3JpZCAucm93ICsgLnVpLmRpdmlkZXIsXG4udWkuZ3JpZCAucmVsYXhlZC5yb3cgKyAudWkuZGl2aWRlciB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5ncmlkIC5yb3cgKyAudWkuZGl2aWRlcixcbi51aS5ncmlkIFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ucm93ICsgLnVpLmRpdmlkZXIge1xuICBtYXJnaW4tbGVmdDogMi41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDIuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWRkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWRkZWQuZ3JpZDpub3QoLnZlcnRpY2FsbHkpOm5vdCguaG9yaXpvbnRhbGx5KSB7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG59XG5bY2xhc3MqPVwiaG9yaXpvbnRhbGx5IHBhZGRlZFwiXS51aS5ncmlkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xufVxuW2NsYXNzKj1cInZlcnRpY2FsbHkgcGFkZGVkXCJdLnVpLmdyaWQge1xuICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMGVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBcIkZsb2F0ZWRcIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmdyaWQgW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5jb2x1bW4ge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4udWkuZ3JpZCBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5jb2x1bW4ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbiB7XG4gIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFN3YXAgZnJvbSBwYWRkaW5nIHRvIG1hcmdpbiBvbiBjb2x1bW5zIHRvIGhhdmUgZGl2aWRlcnMgYWxpZ24gKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLXRvcDogMHJlbTtcbiAgcGFkZGluZy1ib3R0b206IDByZW07XG59XG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93IHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKiBObyBkaXZpZGVyIG9uIGZpcnN0IGNvbHVtbiBvbiByb3cgKi9cbi51aS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbi51aS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogTm8gc3BhY2Ugb24gdG9wIG9mIGZpcnN0IHJvdyAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpmaXJzdC1jaGlsZCA+IC5jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBEaXZpZGVkIFJvdyAqL1xuLnVpLmdyaWQgPiAuZGl2aWRlZC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmdyaWQgPiAuZGl2aWRlZC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIFZlcnRpY2FsbHkgRGl2aWRlZCAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiBcIlwiO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDAlIDFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFBhZGRlZCBIb3Jpem9udGFsbHkgRGl2aWRlZCAqL1xuW2NsYXNzKj1cImhvcml6b250YWxseSBwYWRkZWRcIl0udWkuZGl2aWRlZC5ncmlkLFxuLnVpLnBhZGRlZC5kaXZpZGVkLmdyaWQ6bm90KC52ZXJ0aWNhbGx5KTpub3QoLmhvcml6b250YWxseSkge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEZpcnN0IFJvdyBWZXJ0aWNhbGx5IERpdmlkZWQgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEludmVydGVkIERpdmlkZWQgKi9cbi51aS5pbnZlcnRlZC5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bm90KC5yb3cpOmZpcnN0LWNoaWxkLFxuLnVpLmludmVydGVkLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyogUmVsYXhlZCAqL1xuLnVpLnJlbGF4ZWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogMi41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDIuNXJlbTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDVyZW0pO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBDZWxsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jZWxsZWQuZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDFlbSAwZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1O1xufVxuLnVpLmNlbGxlZC5ncmlkID4gLnJvdyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggI0Q0RDRENTtcbn1cbi51aS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4ICNENEQ0RDU7XG59XG4udWkuY2VsbGVkLmdyaWQgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuLnVpLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDFlbTtcbn1cbi51aS5yZWxheGVkLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkucmVsYXhlZC5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZzogMS41ZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nOiAyZW07XG59XG4vKiBJbnRlcm5hbGx5IENlbGxlZCAqL1xuLnVpW2NsYXNzKj1cImludGVybmFsbHkgY2VsbGVkXCJdLmdyaWQge1xuICBib3gtc2hhZG93OiBub25lO1xuICBtYXJnaW46IDBlbTtcbn1cbi51aVtjbGFzcyo9XCJpbnRlcm5hbGx5IGNlbGxlZFwiXS5ncmlkID4gLnJvdzpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWlbY2xhc3MqPVwiaW50ZXJuYWxseSBjZWxsZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVmVydGljYWxseSBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG4vKiBNaWRkbGUgQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0uY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cbi8qIEJvdHRvbSBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG59XG4vKiBTdHJldGNoZWQgKi9cbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLnN0cmV0Y2hlZC5ncmlkID4gLmNvbHVtbixcbi51aS5ncmlkID4gLnN0cmV0Y2hlZC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZ3JpZCA+IC5yb3cgPiAuc3RyZXRjaGVkLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4udWkuc3RyZXRjaGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiA+ICosXG4udWkuc3RyZXRjaGVkLmdyaWQgPiAuY29sdW1uID4gKixcbi51aS5ncmlkID4gLnN0cmV0Y2hlZC5yb3cgPiAuY29sdW1uID4gKixcbi51aS5ncmlkID4gLnN0cmV0Y2hlZC5jb2x1bW46bm90KC5yb3cpID4gKixcbi51aS5ncmlkID4gLnJvdyA+IC5zdHJldGNoZWQuY29sdW1uID4gKiB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIb3Jpem9udGFsbHkgQ2VudGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlZnQgQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGFsaWduLXNlbGY6IGluaGVyaXQ7XG59XG4vKiBDZW50ZXIgQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGluaGVyaXQ7XG59XG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uZ3JpZCB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLyogUmlnaHQgQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGFsaWduLXNlbGY6IGluaGVyaXQ7XG59XG4vKiBKdXN0aWZpZWQgKi9cbi51aS5qdXN0aWZpZWQuZ3JpZCA+IC5jb2x1bW4sXG4udWkuanVzdGlmaWVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gLmp1c3RpZmllZC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAuanVzdGlmaWVkLmNvbHVtbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuanVzdGlmaWVkLmNvbHVtbi5jb2x1bW4ge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICBoeXBoZW5zOiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBDb2xvcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCA+IC5yb3cgPiAucmVkLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5vcmFuZ2UuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnllbGxvdy5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAub2xpdmUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmdyZWVuLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC50ZWFsLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ibHVlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC52aW9sZXQuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnB1cnBsZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucGluay5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYnJvd24uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmdyZXkuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJsYWNrLmNvbHVtbiB7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMXJlbTtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLyogUmVkICovXG4udWkuZ3JpZCA+IC5yZWQucm93LFxuLnVpLmdyaWQgPiAucmVkLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5yZWQuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLmdyaWQgPiAub3JhbmdlLnJvdyxcbi51aS5ncmlkID4gLm9yYW5nZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAub3JhbmdlLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBZZWxsb3cgKi9cbi51aS5ncmlkID4gLnllbGxvdy5yb3csXG4udWkuZ3JpZCA+IC55ZWxsb3cuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnllbGxvdy5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogT2xpdmUgKi9cbi51aS5ncmlkID4gLm9saXZlLnJvdyxcbi51aS5ncmlkID4gLm9saXZlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5vbGl2ZS5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmlkID4gLmdyZWVuLnJvdyxcbi51aS5ncmlkID4gLmdyZWVuLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ncmVlbi5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogVGVhbCAqL1xuLnVpLmdyaWQgPiAudGVhbC5yb3csXG4udWkuZ3JpZCA+IC50ZWFsLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC50ZWFsLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBCbHVlICovXG4udWkuZ3JpZCA+IC5ibHVlLnJvdyxcbi51aS5ncmlkID4gLmJsdWUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJsdWUuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxODVEMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLmdyaWQgPiAudmlvbGV0LnJvdyxcbi51aS5ncmlkID4gLnZpb2xldC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudmlvbGV0LmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5ncmlkID4gLnB1cnBsZS5yb3csXG4udWkuZ3JpZCA+IC5wdXJwbGUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnB1cnBsZS5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogUGluayAqL1xuLnVpLmdyaWQgPiAucGluay5yb3csXG4udWkuZ3JpZCA+IC5waW5rLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5waW5rLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBCcm93biAqL1xuLnVpLmdyaWQgPiAuYnJvd24ucm93LFxuLnVpLmdyaWQgPiAuYnJvd24uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJyb3duLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JpZCA+IC5ncmV5LnJvdyxcbi51aS5ncmlkID4gLmdyZXkuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmdyZXkuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIEJsYWNrICovXG4udWkuZ3JpZCA+IC5ibGFjay5yb3csXG4udWkuZ3JpZCA+IC5ibGFjay5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYmxhY2suY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRXF1YWwgV2lkdGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0ucm93ID4gLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxleC1ncm93OiAxO1xufVxuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmdyaWQgPiAud2lkZS5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZ3JpZCA+IC5yb3cgPiAud2lkZS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5yb3cgPiAud2lkZS5jb2x1bW4ge1xuICBmbGV4LWdyb3c6IDA7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUmV2ZXJzZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZ3JpZCxcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5ncmlkID4gLnJvdyxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLnJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgdmVydGljYWxseSByZXZlcnNlZFwiXS5ncmlkLFxuICAudWkuc3RhY2thYmxlW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC8qIERpdmlkZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmxhc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogVmVydGljYWxseSBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJtb2JpbGUgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cIm1vYmlsZSB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBDZWxsZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4ICNENEQ0RDU7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbi8qIFRhYmxldCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZ3JpZCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5ncmlkID4gLnJvdyxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLnJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgdmVydGljYWxseSByZXZlcnNlZFwiXS5ncmlkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbiAgLyogRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bGFzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBWZXJ0aWNhbGx5IERpdmlkZWQgUmV2ZXJzZWQgKi9cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cInRhYmxldCB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwidGFibGV0IHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93Omxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIENlbGxlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggI0Q0RDRENTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuLyogQ29tcHV0ZXIgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmdyaWQsXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5ncmlkID4gLnJvdyxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0ucm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0uZ3JpZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC8qIERpdmlkZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmxhc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBWZXJ0aWNhbGx5IERpdmlkZWQgUmV2ZXJzZWQgKi9cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cImNvbXB1dGVyIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93OmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJjb21wdXRlciB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBDZWxsZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggI0Q0RDRENTtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERvdWJsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUYWJsZXQgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5kb3VibGluZy5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAudWkuZ3JpZCA+IC5kb3VibGluZy5yb3csXG4gIC51aS5kb3VibGluZy5ncmlkID4gLnJvdyB7XG4gICAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5kb3VibGluZy5yb3cgPiAuY29sdW1uLFxuICAudWkuZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE0LjI4NTcxNDI5JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTQuMjg1NzE0MjklICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBNb2JpbGUgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuZ3JpZCA+IC5kb3VibGluZy5yb3csXG4gIC51aS5kb3VibGluZy5ncmlkID4gLnJvdyB7XG4gICAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5kb3VibGluZy5yb3cgPiAuY29sdW1uLFxuICAudWkuZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc3RhY2thYmxlLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5yb3cgPiAud2lkZS5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC53aWRlLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLmNvbHVtbi5ncmlkID4gLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLmNvbHVtbi5yb3cgPiAuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gLnN0YWNrYWJsZS5zdGFja2FibGUucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBlbSAwZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMXJlbSAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkOm5vdCgudmVydGljYWxseSkgPiAucm93IHtcbiAgICBtYXJnaW46IDBlbTtcbiAgICBwYWRkaW5nOiAwZW07XG4gIH1cbiAgLyogQ291cGxpbmcgKi9cbiAgLnVpLmNvbnRhaW5lciA+IC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW4sXG4gIC51aS5jb250YWluZXIgPiAudWkuc3RhY2thYmxlLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAvKiBEb24ndCBwYWQgaW5zaWRlIHNlZ21lbnQgb3IgbmVzdGVkIGdyaWQgKi9cbiAgLnVpLmdyaWQgLnVpLnN0YWNrYWJsZS5ncmlkLFxuICAudWkuc2VnbWVudDpub3QoLnZlcnRpY2FsKSAudWkuc3RhY2thYmxlLnBhZ2UuZ3JpZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC8qIERpdmlkZWQgU3RhY2thYmxlICovXG4gIC51aS5zdGFja2FibGUuZGl2aWRlZC5ncmlkID4gLnJvdzpmaXJzdC1jaGlsZCA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aS5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KTpmaXJzdC1jaGlsZCxcbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmludmVydGVkLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuaW52ZXJ0ZWQuc3RhY2thYmxlLmRpdmlkZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuaW52ZXJ0ZWQuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5pbnZlcnRlZC5zdGFja2FibGUuZGl2aWRlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQ6bm90KC52ZXJ0aWNhbGx5KS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkOm5vdCgudmVydGljYWxseSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDJyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAucm93IHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkOm5vdCgudmVydGljYWxseSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQ6bm90KC52ZXJ0aWNhbGx5KS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPbmx5IChEZXZpY2UpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGVzZSBpbmNsdWRlIGFyYml0cmFyeSBjbGFzcyByZXBldGl0aW9ucyBmb3IgZm9yY2VkIHNwZWNpZmljaXR5ICovXG4vKiBNb2JpbGUgT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFRhYmxldCBPbmx5IEhpZGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWlbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0ucm93Om5vdCgudGFibGV0KSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCgudGFibGV0KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgudGFibGV0KSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0ucm93Om5vdCgudGFibGV0KSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uY29sdW1uOm5vdCgudGFibGV0KSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmNvbHVtbjpub3QoLnRhYmxldCkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBDb21wdXRlciBPbmx5IEhpZGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBMYXJnZSBTY3JlZW4gT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkgYW5kIChtYXgtd2lkdGg6IDE5MTlweCkge1xuICAudWlbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBXaWRlc2NyZWVuIE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnJvdy5uby1wYWRkaW5nLFxuLnJvdyAuY29sdW1uLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cbi5yb3cubm8tcGFkZGluZy1scixcbi5yb3cgLmNvbHVtbi5uby1wYWRkaW5nLWxyIHtcbiAgcGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG59XG4ucm93Lm5vLXBhZGRpbmctdGIsXG4ucm93IC5jb2x1bW4ubm8tcGFkZGluZy10YiB7XG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuLyoqIEdlbmVyYWwgdXRpbCBjbGFzc2VzICovXG4ucm93Lm5vLXBhZGRpbmctdCB7XG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbn1cbi8qKiBEZXBvc2l0IHNlYXJjaCBwYWdlICovXG4ucm93LmRlcG9zaXQtcmVzdWx0LWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkN2Q3ZDc7XG59XG4ucm93LmRlcG9zaXQtcmVzdWx0LWhlYWRlci5wYWRkaW5nLXRiLTUge1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuLnJvdy5kZXBvc2l0LXJlc3VsdC1oZWFkZXIuc21hbGwge1xuICBmb250LXNpemU6IHNtYWxsO1xufVxuLnJvdy5kZXBvc2l0LXJlc3VsdC1oZWFkZXIgLnBhZGRpbmctci01LmNvbHVtbiB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbi8qXG4gKiAjIFNlbWFudGljIC0gTWVudVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBDb3B5cmlnaHQgMjAxNSBDb250cmlidXRvclxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWVudVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ29sbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSAqL1xuLyogTWVudSBJdGVtICovXG4vKiBEaXZpZGVyICovXG4vKiBTdWIgTWVudSAqL1xuLyogVGV4dCBJdGVtICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBEcm9wZG93biBJY29uICovXG4vKiBIZWFkZXIgKi9cbi8qIFZlcnRpY2FsIEljb24gKi9cbi8qIFZlcnRpY2FsIEhlYWRlciAqL1xuLyogUG9pbnRpbmcgQXJyb3cgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBCdXR0b24gKi9cbi8qIElucHV0ICovXG4vKiBJbWFnZSAqL1xuLyogTGFiZWwgKi9cbi8qIERyb3Bkb3duIGluIE1lbnUgKi9cbi8qIERyb3Bkb3duIFZhcmlhdGlvbnMgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCBJdGVtICovXG4vKiBQcmVzc2VkIEl0ZW0gKi9cbi8qIEFjdGl2ZSBJdGVtICovXG4vKiBBY3RpdmUgSG92ZXJlZCBJdGVtICovXG4vKiBTZWxlY3RlZCBEcm9wZG93biAqL1xuLyogQWN0aXZlIERyb3Bkb3duICovXG4vKiBBY3RpdmUgU3ViIE1lbnUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBWZXJ0aWNhbCAqL1xuLyogU2Vjb25kYXJ5ICovXG4vKiBQb2ludGluZyAqL1xuLyogSW52ZXJ0ZWQgU2Vjb25kYXJ5ICovXG4vKiBJbnZlcnRlZCBQb2ludGluZyAqL1xuLyogVGllcmVkICovXG4vKiBJY29uICovXG4vKiBUYWJ1bGFyICovXG4vKiBQYWdpbmF0aW9uICovXG4vKiBMYWJlbGVkIEljb24gKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyogSW52ZXJ0ZWQgU3ViIE1lbnUgKi9cbi8qIEludmVydGVkIEhvdmVyICovXG4vKiBQcmVzc2VkICovXG4vKiBJbnZlcnRlZCBBY3RpdmUgKi9cbi8qIEludmVydGVkIEFjdGl2ZSBIb3ZlciAgKi9cbi8qIEludmVydGVkIE1lbnUgRGl2aWRlciAqL1xuLyogSW52ZXJ0ZWQgQ29sb3JlZCAqL1xuLyogRml4ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBSZXNpemUgbGFyZ2Ugc2l6ZXMgKi9cbi8qIFNpemVzICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIG1pbi1oZWlnaHQ6IDIuODU3MTQyODZlbTtcbn1cbi51aS5tZW51OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5tZW51OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbn1cbi51aS5tZW51Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN1Yi1NZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLm1lbnUge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS5tZW51Om5vdCgudmVydGljYWwpID4gLm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSXRlbVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5tZW51IC5pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmbGV4OiAwIDAgYXV0bztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmc6IDAuOTI4NTcxNDNlbSAxLjE0Mjg1NzE0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwcHggMHB4IDAuMjg1NzE0MjlyZW07XG59XG4vKiBCb3JkZXIgKi9cbi51aS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIHJpZ2h0OiAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDFweDtcbiAgYmFja2dyb3VuZDogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBUZXh0IENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAudGV4dC5pdGVtID4gKixcbi51aS5tZW51IC5pdGVtID4gYTpub3QoLnVpKSxcbi51aS5tZW51IC5pdGVtID4gcDpvbmx5LWNoaWxkIHtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4udWkubWVudSAuaXRlbSA+IHA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLnVpLm1lbnUgLml0ZW0gPiBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuaXRlbSA+IGkuaWNvbiB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMGVtIDAuMzU3MTQyODZlbSAwZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAuaXRlbSA+IC5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMGVtO1xuICBtYXJnaW46IC0wLjVlbSAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjc4NTcxNDI5ZW07XG4gIHBhZGRpbmctdG9wOiAwLjc4NTcxNDI5ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tXG4gR3JpZCAvIENvbnRhaW5lclxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgPiAuZ3JpZCxcbi51aS5tZW51ID4gLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBpbmhlcml0O1xuICBmbGV4LWRpcmVjdGlvbjogaW5oZXJpdDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLml0ZW0gPiAuaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5pdGVtID4gLmlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDBlbTtcbiAgbWFyZ2luOiAtMC41ZW0gMGVtO1xufVxuLnVpLm1lbnUgLml0ZW0gPiAuaW5wdXQgaW5wdXQge1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZy10b3A6IDAuNTcxNDI4NTdlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNTcxNDI4NTdlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLmhlYWRlci5pdGVtLFxuLnVpLnZlcnRpY2FsLm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIGJhY2tncm91bmQ6ICcnO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9ybWFsO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjVlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIERyb3Bkb3duc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERyb3Bkb3duIEljb24gKi9cbi51aS5tZW51IC5pdGVtID4gaS5kcm9wZG93bi5pY29uIHtcbiAgcGFkZGluZzogMGVtO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLyogTWVudSAqL1xuLnVpLm1lbnUgLmRyb3Bkb3duLml0ZW0gLm1lbnUge1xuICBtaW4td2lkdGg6IGNhbGMoMTAwJSAtIDFweCk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBtYXJnaW46IDBlbSAwcHggMHB4O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xufVxuLyogTWVudSBJdGVtcyAqL1xuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0ge1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAxLjE0Mjg1NzE0ZW0gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NykgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLnNlbGVjdGVkLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24uaXRlbSAubWVudSAuaXRlbTpub3QoLmZpbHRlcmVkKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gLmljb246bm90KC5kcm9wZG93bikge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjc1ZW0gMGVtIDBlbSAhaW1wb3J0YW50O1xufVxuLyogU2Vjb25kYXJ5ICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAubWVudSxcbi51aS50ZXh0Lm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAubWVudSB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIG1hcmdpbi10b3A6IDAuMzU3MTQyODZlbTtcbn1cbi8qIFBvaW50aW5nICovXG4udWkubWVudSAucG9pbnRpbmcuZHJvcGRvd24uaXRlbSAubWVudSB7XG4gIG1hcmdpbi10b3A6IDAuNzVlbTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQubWVudSAuc2VhcmNoLmRyb3Bkb3duLml0ZW0gPiAuc2VhcmNoLFxuLnVpLmludmVydGVkLm1lbnUgLnNlYXJjaC5kcm9wZG93bi5pdGVtID4gLnRleHQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLyogVmVydGljYWwgKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtID4gLmljb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCI7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uaXRlbSAubWVudSB7XG4gIGxlZnQ6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW0udXB3YXJkIC5tZW51IHtcbiAgYm90dG9tOiAwO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW06bm90KC51cHdhcmQpIC5tZW51IHtcbiAgdG9wOiAwO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5kcm9wZG93bi5pdGVtIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5hY3RpdmUuaXRlbSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBFdmVubHkgRGl2aWRlZCAqL1xuLnVpLml0ZW0ubWVudSAuZHJvcGRvd24gLm1lbnUgLml0ZW0ge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTGFiZWxzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kOiAjOTk5OTk5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgcGFkZGluZzogMC4zZW0gMC43ODU3MTQyOWVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kOiAjOTk5OTk5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgbWFyZ2luLXRvcDogLTAuMTVlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuMTVlbTtcbiAgcGFkZGluZzogMC4zZW0gMC43ODU3MTQyOWVtO1xufVxuLnVpLm1lbnUgLml0ZW0gPiAuZmxvYXRpbmcubGFiZWwge1xuICBwYWRkaW5nOiAwLjNlbSAwLjc4NTcxNDI5ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEltYWdlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtID4gaW1nOm5vdCgudWkpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IC0wLjNlbSAwZW07XG4gIHdpZHRoOiAyLjVlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gaW1nOm5vdCgudWkpOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogYXV0bztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExpc3Rcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNZW51IGRpdmlkZXIgc2hvdWxkbnQgYXBwbHkgKi9cbi51aS5tZW51IC5saXN0IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2lkZWJhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNob3cgdmVydGljYWwgZGl2aWRlcnMgYmVsb3cgbGFzdCAqL1xuLnVpLnZlcnRpY2FsLnNpZGViYXIubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4udWkudmVydGljYWwuc2lkZWJhci5tZW51ID4gLml0ZW06OmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubWVudSA+IC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLm1lbnU6bm90KC5zZWNvbmRhcnkpOm5vdCgudGV4dCk6bm90KC50YWJ1bGFyKTpub3QoLmJvcmRlcmxlc3MpID4gLmNvbnRhaW5lciA+IC5pdGVtOm5vdCgucmlnaHQpOm5vdCguYm9yZGVybGVzcyk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpbmsubWVudSAuaXRlbTpob3Zlcixcbi51aS5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFByZXNzZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubGluay5tZW51IC5pdGVtOmFjdGl2ZSxcbi51aS5tZW51IC5saW5rLml0ZW06YWN0aXZlLFxuLnVpLm1lbnUgYS5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5tZW51IC5hY3RpdmUuaXRlbSA+IGkuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEFjdGl2ZSBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5hY3RpdmUuaXRlbTpob3Zlcixcbi51aS52ZXJ0aWNhbC5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtLmRpc2FibGVkLFxuLnVpLm1lbnUgLml0ZW0uZGlzYWJsZWQ6aG92ZXIge1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG5GbG9hdGVkIE1lbnUgLyBJdGVtXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlZnQgRmxvYXRlZCAqL1xuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLmxlZnQuaXRlbSxcbi51aS5tZW51Om5vdCgudmVydGljYWwpIDpub3QoLmRyb3Bkb3duKSA+IC5sZWZ0Lm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi8qIFJpZ2h0IEZsb2F0ZWQgKi9cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5yaWdodC5pdGVtLFxuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLnJpZ2h0Lm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xufVxuLyogU3dhcHBlZCBCb3JkZXJzICovXG4udWkubWVudSAucmlnaHQuaXRlbTo6YmVmb3JlLFxuLnVpLm1lbnUgLnJpZ2h0Lm1lbnUgPiAuaXRlbTo6YmVmb3JlIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmVydGljYWwubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKi0tLSBJdGVtIC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWkudmVydGljYWwubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBweCAwcHg7XG59XG4udWkudmVydGljYWwubWVudSA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwcHggMHB4IDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbTtcbn1cbi8qLS0tIExhYmVsIC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5sYWJlbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0gSWNvbiAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiBpLmljb24ge1xuICB3aWR0aDogMS4xOGVtO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMC41ZW07XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5sYWJlbCArIGkuaWNvbiB7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLyotLS0gQm9yZGVyIC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW06Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0gU3ViIE1lbnUgLS0tKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gLm1lbnUge1xuICBtYXJnaW46IDAuNWVtIC0xLjE0Mjg1NzE0ZW0gMGVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjVlbSAxLjMzMzMzMzMzZW07XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgYS5pdGVtOmhvdmVyLFxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgLmxpbmsuaXRlbTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIFZlcnRpY2FsIEFjdGl2ZSAqL1xuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgPiAuYWN0aXZlLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLmFjdGl2ZS5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLmFjdGl2ZS5pdGVtOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5pdGVtIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVGFidWxhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJ1bGFyLm1lbnUge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS50YWJ1bGFyLmZsdWlkLm1lbnUge1xuICB3aWR0aDogY2FsYygxMDAlICsgKDFweCAqIDIpKSAhaW1wb3J0YW50O1xufVxuLnVpLnRhYnVsYXIubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwLjkyODU3MTQzZW0gMS40Mjg1NzE0M2VtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS50YWJ1bGFyLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkudGFidWxhci5tZW51IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNENEQ0RDU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMHB4IDBweCAhaW1wb3J0YW50O1xufVxuLyogQ291cGxpbmcgd2l0aCBzZWdtZW50IGZvciBhdHRhY2htZW50ICovXG4udWkudGFidWxhci5tZW51ICsgLmF0dGFjaGVkOm5vdCgudG9wKS5zZWdtZW50LFxuLnVpLnRhYnVsYXIubWVudSArIC5hdHRhY2hlZDpub3QoLnRvcCkuc2VnbWVudCArIC5hdHRhY2hlZDpub3QoLnRvcCkuc2VnbWVudCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnRvcC5hdHRhY2hlZC5zZWdtZW50ICsgLnVpLmJvdHRvbS50YWJ1bGFyLm1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAoMXB4ICogMikpO1xuICBsZWZ0OiAtMXB4O1xufVxuLyogQm90dG9tIFZlcnRpY2FsIFRhYnVsYXIgKi9cbi51aS5ib3R0b20udGFidWxhci5tZW51IHtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLmJvdHRvbS50YWJ1bGFyLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmJvdHRvbS50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAjRDRENEQ1O1xuICBtYXJnaW46IC0xcHggMHB4IDBweCAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwcHggMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtICFpbXBvcnRhbnQ7XG59XG4vKiBWZXJ0aWNhbCBUYWJ1bGFyIChMZWZ0KSAqL1xuLnVpLnZlcnRpY2FsLnRhYnVsYXIubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLnZlcnRpY2FsLnRhYnVsYXIubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWkudmVydGljYWwudGFidWxhci5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogI0Q0RDRENTtcbiAgbWFyZ2luOiAwcHggLTFweCAwcHggMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDBweCAwcHggMC4yODU3MTQyOXJlbSAhaW1wb3J0YW50O1xufVxuLyogVmVydGljYWwgUmlnaHQgVGFidWxhciAqL1xuLnVpLnZlcnRpY2FsLnJpZ2h0LnRhYnVsYXIubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS52ZXJ0aWNhbC5yaWdodC50YWJ1bGFyLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLnJpZ2h0LnRhYnVsYXIubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3JkZXItY29sb3I6ICNENEQ0RDU7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4IDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwcHggIWltcG9ydGFudDtcbn1cbi8qIERyb3Bkb3duICovXG4udWkudGFidWxhci5tZW51IC5hY3RpdmUuZHJvcGRvd24uaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFBhZ2luYXRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucGFnaW5hdGlvbi5tZW51IHtcbiAgbWFyZ2luOiAwZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLnBhZ2luYXRpb24ubWVudSAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW07XG59XG4udWkuY29tcGFjdC5tZW51IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbTtcbn1cbi51aS5wYWdpbmF0aW9uLm1lbnUgLml0ZW06bGFzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnBhZ2luYXRpb24ubWVudSAuaXRlbSB7XG4gIG1pbi13aWR0aDogM2VtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkucGFnaW5hdGlvbi5tZW51IC5pY29uLml0ZW0gaS5pY29uIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnBhZ2luYXRpb24ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xuICBwYWRkaW5nLXRvcDogMC45Mjg1NzE0M2VtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNlY29uZGFyeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWNvbmRhcnkubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtMC4zNTcxNDI4NmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjM1NzE0Mjg2ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogSXRlbSAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAwLjkyODU3MTQzZW07XG4gIG1hcmdpbjogMGVtIDAuMzU3MTQyODZlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLyogTm8gRGl2aWRlciAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEhlYWRlciAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xufVxuLyogSW1hZ2UgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKSB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyogSG92ZXIgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuZHJvcGRvd24uaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG59XG4vKiBBY3RpdmUgSG92ZXIgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuYWN0aXZlLml0ZW06aG92ZXIge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEludmVydGVkICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgLmxpbmsuaXRlbSxcbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSBhLml0ZW0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSBhLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBGaXggaXRlbSBtYXJnaW5zICovXG4udWkuc2Vjb25kYXJ5Lml0ZW0ubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLnNlY29uZGFyeS5pdGVtLm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLnNlY29uZGFyeS5hdHRhY2hlZC5tZW51IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIFN1YiBNZW51ICovXG4udWkudmVydGljYWwuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSB7XG4gIG1hcmdpbjogMGVtIC0wLjkyODU3MTQzZW07XG59XG4udWkudmVydGljYWwuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuNWVtIDEuMzMzMzMzMzNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTZWNvbmRhcnkgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWNvbmRhcnkudmVydGljYWwubWVudSA+IC5pdGVtIHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDBlbSAwZW0gMC4zNTcxNDI4NmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLm1lbnUgPiAuaGVhZGVyLml0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4vKiBTdWIgTWVudSAqL1xuLnVpLnZlcnRpY2FsLnNlY29uZGFyeS5tZW51IC5pdGVtID4gLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qIEludmVydGVkICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTZWNvbmRhcnkgUG9pbnRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgbWFyZ2luOiAwZW0gMGVtIC0ycHg7XG4gIHBhZGRpbmc6IDAuODU3MTQyODZlbSAxLjE0Mjg1NzE0ZW07XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLyogSXRlbSBUeXBlcyAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLnRleHQuaXRlbSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuaXRlbTphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogUHJlc3NlZCAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5pdGVtOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAubGluay5pdGVtOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSBhLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItY29sb3I6ICMxQjFDMUQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzFCMUMxRDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBBY3RpdmUgRHJvcGRvd24gKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuYWN0aXZlLmRyb3Bkb3duLml0ZW0ge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyogVmVydGljYWwgUG9pbnRpbmcgKi9cbi51aS5zZWNvbmRhcnkudmVydGljYWwucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWNvbmRhcnkudmVydGljYWwucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAtMnB4IDBlbSAwZW07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xufVxuLyogVmVydGljYWwgQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjMUIxQzFEO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IHtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSBhLml0ZW06aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0ZGRkZGRjtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVGV4dCBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRleHQubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDFlbSAtMC41ZW07XG59XG4udWkudGV4dC5tZW51IC5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgcGFkZGluZzogMC4zNTcxNDI4NmVtIDAuNWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi8qIEJvcmRlciAqL1xuLnVpLnRleHQubWVudSAuaXRlbTpiZWZvcmUsXG4udWkudGV4dC5tZW51IC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEhlYWRlciAqL1xuLnVpLnRleHQubWVudSAuaGVhZGVyLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi8qIEltYWdlICovXG4udWkudGV4dC5tZW51IC5pdGVtID4gaW1nOm5vdCgudWkpIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLSBmbHVpZCB0ZXh0IC0tLSovXG4udWkudGV4dC5pdGVtLm1lbnUgLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tIHZlcnRpY2FsIHRleHQgLS0tKi9cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUge1xuICBtYXJnaW46IDFlbSAwZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDByZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51IC5pdGVtIHtcbiAgbWFyZ2luOiAwLjU3MTQyODU3ZW0gMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaXRlbSA+IGkuaWNvbiB7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjM1NzE0Mjg2ZW0gMGVtIDBlbTtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgbWFyZ2luOiAwLjU3MTQyODU3ZW0gMGVtIDAuNzE0Mjg1NzFlbTtcbn1cbi8qIFZlcnRpY2FsIFN1YiBNZW51ICovXG4udWkudmVydGljYWwudGV4dC5tZW51IC5pdGVtOm5vdCguZHJvcGRvd24pID4gLm1lbnUge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuNWVtIDBlbTtcbn1cbi8qLS0tIGhvdmVyIC0tLSovXG4udWkudGV4dC5tZW51IC5pdGVtOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKi0tLSBhY3RpdmUgLS0tKi9cbi51aS50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLSBhY3RpdmUgaG92ZXIgLS0tKi9cbi51aS50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKiBEaXNhYmxlIEJhcmlhdGlvbnMgKi9cbi51aS50ZXh0LnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS50ZXh0LmF0dGFjaGVkLm1lbnUge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC50ZXh0Lm1lbnUsXG4udWkuaW52ZXJ0ZWQudGV4dC5tZW51IC5pdGVtLFxuLnVpLmludmVydGVkLnRleHQubWVudSAuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIEZsdWlkICovXG4udWkuZmx1aWQudGV4dC5tZW51IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSWNvbiBPbmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgTWVudSAqL1xuLnVpLnZlcnRpY2FsLmljb24ubWVudSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG59XG4vKiBJdGVtICovXG4udWkuaWNvbi5tZW51IC5pdGVtIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMUIxQzFEO1xufVxuLyogSWNvbiAqL1xuLnVpLmljb24ubWVudSAuaXRlbSA+IC5pY29uOm5vdCguZHJvcGRvd24pIHtcbiAgbWFyZ2luOiAwO1xuICBvcGFjaXR5OiAxO1xufVxuLyogSWNvbiBHeWxwaCAqL1xuLnVpLmljb24ubWVudSAuaWNvbjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuLyogKHgpIEl0ZW0gSWNvbiAqL1xuLnVpLm1lbnUgLmljb24uaXRlbSA+IC5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtIGF1dG87XG59XG4vKiBWZXJ0aWNhbCBJY29uICovXG4udWkudmVydGljYWwuaWNvbi5tZW51IC5pdGVtID4gLmljb246bm90KC5kcm9wZG93bikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luOiAwZW0gYXV0bztcbiAgZmxvYXQ6IG5vbmU7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmljb24ubWVudSAuaXRlbSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgTGFiZWxlZCBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSAqL1xuLnVpLmxhYmVsZWQuaWNvbi5tZW51IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyogSXRlbSAqL1xuLnVpLmxhYmVsZWQuaWNvbi5tZW51IC5pdGVtIHtcbiAgbWluLXdpZHRoOiA2ZW07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4vKiBJY29uICovXG4udWkubGFiZWxlZC5pY29uLm1lbnUgLml0ZW0gPiAuaWNvbjpub3QoLmRyb3Bkb3duKSB7XG4gIGhlaWdodDogMWVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gYXV0byAwLjVyZW0gIWltcG9ydGFudDtcbn1cbi8qIEZsdWlkICovXG4udWkuZmx1aWQubGFiZWxlZC5pY29uLm1lbnUgPiAuaXRlbSB7XG4gIG1pbi13aWR0aDogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUubWVudSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudWkuc3RhY2thYmxlLm1lbnUgLml0ZW0ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICB9XG4gIC51aS5zdGFja2FibGUubWVudSAubGVmdC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLmxlZnQuaXRlbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5yaWdodC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLnJpZ2h0Lml0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5yaWdodC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLmxlZnQubWVudSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBTdGFuZGFyZCBDb2xvcnMgIC0tLSovXG4udWkubWVudSAucmVkLmFjdGl2ZS5pdGVtLFxuLnVpLnJlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLm9yYW5nZS5hY3RpdmUuaXRlbSxcbi51aS5vcmFuZ2UubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC55ZWxsb3cuYWN0aXZlLml0ZW0sXG4udWkueWVsbG93Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAub2xpdmUuYWN0aXZlLml0ZW0sXG4udWkub2xpdmUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ncmVlbi5hY3RpdmUuaXRlbSxcbi51aS5ncmVlbi5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnRlYWwuYWN0aXZlLml0ZW0sXG4udWkudGVhbC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLmJsdWUuYWN0aXZlLml0ZW0sXG4udWkuYmx1ZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzIxODVEMCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxODVEMCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnZpb2xldC5hY3RpdmUuaXRlbSxcbi51aS52aW9sZXQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5wdXJwbGUuYWN0aXZlLml0ZW0sXG4udWkucHVycGxlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAucGluay5hY3RpdmUuaXRlbSxcbi51aS5waW5rLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAuYnJvd24uYWN0aXZlLml0ZW0sXG4udWkuYnJvd24ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ncmV5LmFjdGl2ZS5pdGVtLFxuLnVpLmdyZXkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IHtcbiAgYm9yZGVyOiAwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQ6ICMyMTg1RDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBNZW51IEl0ZW0gKi9cbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtLFxuLnVpLmludmVydGVkLm1lbnUgLml0ZW0gPiBhOm5vdCgudWkpIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbS5tZW51IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4vKi0tLSBCb3JkZXIgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG59XG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5pbnZlcnRlZC5tZW51IC5tZW51IC5pdGVtLFxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLm1lbnUgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4vKiBIZWFkZXIgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIERpc2FibGVkICovXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbS5kaXNhYmxlZCxcbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMjI1LCAyMjUsIDIyNSwgMC4zKTtcbn1cbi8qLS0tIEhvdmVyIC0tLSovXG4udWkubGluay5pbnZlcnRlZC5tZW51IC5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbSAubWVudSBhLml0ZW06aG92ZXIsXG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbSAubWVudSAubGluay5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0gUHJlc3NlZCAtLS0qL1xuLnVpLmludmVydGVkLm1lbnUgYS5pdGVtOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5tZW51IC5saW5rLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLSBBY3RpdmUgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmVydGljYWwubWVudSAuaXRlbSAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjM0QzRTNGICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBBY3RpdmUgSG92ZXIgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjM0QzRTNGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvYXRlZC5tZW51IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMHJlbSAwLjVyZW0gMHJlbSAwcmVtO1xufVxuLnVpLmZsb2F0ZWQubWVudSAuaXRlbTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkucmlnaHQuZmxvYXRlZC5tZW51IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDByZW0gMHJlbSAwcmVtIDAuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuLnVpLmludmVydGVkLm1lbnUgLnJlZC5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5yZWQubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4Mjg7XG59XG4udWkuaW52ZXJ0ZWQucmVkLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLnJlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogT3JhbmdlICovXG4udWkuaW52ZXJ0ZWQubWVudSAub3JhbmdlLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLm9yYW5nZS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQztcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS5pbnZlcnRlZC5tZW51IC55ZWxsb3cuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQueWVsbG93Lm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIE9saXZlICovXG4udWkuaW52ZXJ0ZWQubWVudSAub2xpdmUuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTg7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIEdyZWVuICovXG4udWkuaW52ZXJ0ZWQubWVudSAuZ3JlZW4uYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDU7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIFRlYWwgKi9cbi51aS5pbnZlcnRlZC5tZW51IC50ZWFsLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnRlYWwubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBCbHVlICovXG4udWkuaW52ZXJ0ZWQubWVudSAuYmx1ZS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5ibHVlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NUQwO1xufVxuLnVpLmludmVydGVkLmJsdWUubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogVmlvbGV0ICovXG4udWkuaW52ZXJ0ZWQubWVudSAudmlvbGV0LmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnZpb2xldC5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOTtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5wdXJwbGUuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQucHVycGxlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIFBpbmsgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5waW5rLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnBpbmsubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTc7XG59XG4udWkuaW52ZXJ0ZWQucGluay5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5waW5rLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBCcm93biAqL1xuLnVpLmludmVydGVkLm1lbnUgLmJyb3duLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmJyb3duLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGO1xufVxuLnVpLmludmVydGVkLmJyb3duLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLmJyb3duLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBHcmV5ICovXG4udWkuaW52ZXJ0ZWQubWVudSAuZ3JleS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5ncmV5Lm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xufVxuLnVpLmludmVydGVkLmdyZXkubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml0dGVkLm1lbnUgLml0ZW0sXG4udWkuZml0dGVkLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW0sXG4udWkubWVudSAuZml0dGVkLml0ZW0ge1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkuaG9yaXpvbnRhbGx5LmZpdHRlZC5tZW51IC5pdGVtLFxuLnVpLmhvcml6b250YWxseS5maXR0ZWQubWVudSAuaXRlbSAubWVudSAuaXRlbSxcbi51aS5tZW51IC5ob3Jpem9udGFsbHkuZml0dGVkLml0ZW0ge1xuICBwYWRkaW5nLXRvcDogMC45Mjg1NzE0M2VtO1xuICBwYWRkaW5nLWJvdHRvbTogMC45Mjg1NzE0M2VtO1xufVxuLnVpLnZlcnRpY2FsbHkuZml0dGVkLm1lbnUgLml0ZW0sXG4udWkudmVydGljYWxseS5maXR0ZWQubWVudSAuaXRlbSAubWVudSAuaXRlbSxcbi51aS5tZW51IC52ZXJ0aWNhbGx5LmZpdHRlZC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjE0Mjg1NzE0ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuMTQyODU3MTRlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEJvcmRlcmxlc3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYm9yZGVybGVzcy5tZW51IC5pdGVtOmJlZm9yZSxcbi51aS5ib3JkZXJsZXNzLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW06YmVmb3JlLFxuLnVpLm1lbnUgLmJvcmRlcmxlc3MuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tcGFjdC5tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbjogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmNvbXBhY3QudmVydGljYWwubWVudSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5jb21wYWN0Lm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtO1xufVxuLnVpLmNvbXBhY3QubWVudSAuaXRlbTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkuY29tcGFjdC52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS5jb21wYWN0LnZlcnRpY2FsLm1lbnUgLml0ZW06bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51LmZsdWlkLFxuLnVpLnZlcnRpY2FsLm1lbnUuZmx1aWQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFdmVubHkgU2l6ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtLm1lbnUsXG4udWkuaXRlbS5tZW51IC5pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4udWkuYXR0YWNoZWQuaXRlbS5tZW51IHtcbiAgbWFyZ2luOiAwZW0gLTFweCAhaW1wb3J0YW50O1xufVxuLnVpLml0ZW0ubWVudSAuaXRlbTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkubWVudS50d28uaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkubWVudS50aHJlZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDMzLjMzMyU7XG59XG4udWkubWVudS5mb3VyLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLm1lbnUuZml2ZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5tZW51LnNpeC5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDE2LjY2NiU7XG59XG4udWkubWVudS5zZXZlbi5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDE0LjI4NSU7XG59XG4udWkubWVudS5laWdodC5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDEyLjUlO1xufVxuLnVpLm1lbnUubmluZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDExLjExJTtcbn1cbi51aS5tZW51LnRlbi5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi51aS5tZW51LmVsZXZlbi5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDkuMDklO1xufVxuLnVpLm1lbnUudHdlbHZlLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogOC4zMzMlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51LmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDE7XG4gIG1hcmdpbjogMGVtO1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5tZW51LmZpeGVkLFxuLnVpLm1lbnUuZml4ZWQgLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkubWVudS5maXhlZCAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG4udWkuZml4ZWQubWVudSxcbi51aVtjbGFzcyo9XCJ0b3AgZml4ZWRcIl0ubWVudSB7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG59XG4udWlbY2xhc3MqPVwidG9wIGZpeGVkXCJdLm1lbnUge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZpeGVkXCJdLm1lbnUge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICBsZWZ0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGZpeGVkXCJdLm1lbnUge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLyogQ291cGxpbmcgd2l0aCBHcmlkICovXG4udWkuZml4ZWQubWVudSArIC51aS5ncmlkIHtcbiAgcGFkZGluZy10b3A6IDIuNzVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQb2ludGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBvaW50aW5nLm1lbnUgLml0ZW06YWZ0ZXIge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDAuNXB4IDBlbSAwZW07XG4gIHdpZHRoOiAwLjU3MTQyODU3ZW07XG4gIGhlaWdodDogMC41NzE0Mjg1N2VtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDRENEQ1O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRDRENEQ1O1xuICB6LWluZGV4OiAyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTtcbn1cbi51aS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5pdGVtOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgbWFyZ2luOiAwZW0gLTAuNXB4IDBlbSAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNENEQ0RDU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLmRyb3Bkb3duLml0ZW06YWZ0ZXIge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBEb24ndCBkb3VibGUgdXAgcG9pbnRlcnMgKi9cbi51aS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5hY3RpdmUuaXRlbTphZnRlcixcbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSAubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQ29sb3JzICovXG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xufVxuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTpob3ZlcjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XG59XG4udWkudmVydGljYWwucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xufVxuLnVpLnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cbi51aS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaWRkbGUgKi9cbi51aS5hdHRhY2hlZC5tZW51IHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtIC0xcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAoLTFweCAqIDIpKTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAoLTFweCAqIDIpKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5hdHRhY2hlZCArIC51aS5hdHRhY2hlZC5tZW51Om5vdCgudG9wKSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBUb3AgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubWVudSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbTtcbn1cbi51aS5tZW51W2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5tZW51IHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLm1lbnU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIEF0dGFjaGVkIE1lbnUgSXRlbSAqL1xuLnVpLnRvcC5hdHRhY2hlZC5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjI4NTcxNDI5cmVtO1xufVxuLyogVGFidWxhciBBdHRhY2hlZCAqL1xuLnVpLmF0dGFjaGVkLm1lbnU6bm90KC50YWJ1bGFyKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkuYXR0YWNoZWQuaW52ZXJ0ZWQubWVudSB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aS5hdHRhY2hlZC50YWJ1bGFyLm1lbnUge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaW5pICovXG4udWkubWluaS5tZW51IHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLm1pbmkudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiA5cmVtO1xufVxuLyogVGlueSAqL1xuLnVpLnRpbnkubWVudSB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS50aW55LnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMTFyZW07XG59XG4vKiBTbWFsbCAqL1xuLnVpLnNtYWxsLm1lbnUge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuc21hbGwudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAxM3JlbTtcbn1cbi8qIE1lZGl1bSAqL1xuLnVpLm1lbnUge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAxNXJlbTtcbn1cbi8qIExhcmdlICovXG4udWkubGFyZ2UubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4wNzE0Mjg1N3JlbTtcbn1cbi51aS5sYXJnZS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDE4cmVtO1xufVxuLyogSHVnZSAqL1xuLnVpLmh1Z2UubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4yMTQyODU3MXJlbTtcbn1cbi51aS5odWdlLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMjJyZW07XG59XG4vKiBCaWcgKi9cbi51aS5iaWcubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5iaWcudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAyMHJlbTtcbn1cbi8qIE1hc3NpdmUgKi9cbi51aS5tYXNzaXZlLm1lbnUge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkubWFzc2l2ZS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDI1cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmludmVydGVkLm1lbnUge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSBpLmljb24ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi8qIEJyYW5kICovXG4udWkuaW52ZXJ0ZWQubWVudSAuYnJhbmQuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQuYnJhbmQubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTg1RDA7XG59XG4udWkuaW52ZXJ0ZWQuYnJhbmQubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuYnJhbmQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5icmFuZC5hY3RpdmUuaXRlbSxcbi51aS5icmFuZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzIxODVEMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NUQwO1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIE1lc3NhZ2VcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBNZXNzYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhlYWRlciAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBMaXN0ICovXG4vKiBJY29uICovXG4vKiBDbG9zZSBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gTWVzc2FnZSAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEZsb2F0aW5nICovXG4vKiBDb2xvcnMgKi9cbi8qIFdhcm5pbmcgLyBQb3NpdGl2ZSAvIE5lZ2F0aXZlIC8gSW5mbyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIE1lc3NhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubWVzc2FnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMWVtO1xuICBtYXJnaW46IDFlbSAwZW07XG4gIGJhY2tncm91bmQ6ICNGOEY4Rjk7XG4gIHBhZGRpbmc6IDFlbSAxLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYmFja2dyb3VuZCAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjIyKSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkubWVzc2FnZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5tZXNzYWdlOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBIZWFkZXIgKi9cbi51aS5tZXNzYWdlIC5oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogLTAuMTQyODU3MTRlbSAwZW0gMHJlbSAwZW07XG59XG4vKiBEZWZhdWx0IGZvbnQgc2l6ZSAqL1xuLnVpLm1lc3NhZ2UgLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLyogUGFyYWdyYXBoICovXG4udWkubWVzc2FnZSBwIHtcbiAgb3BhY2l0eTogMC44NTtcbiAgbWFyZ2luOiAwLjc1ZW0gMGVtO1xufVxuLnVpLm1lc3NhZ2UgcDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5tZXNzYWdlIHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5tZXNzYWdlIC5oZWFkZXIgKyBwIHtcbiAgbWFyZ2luLXRvcDogMC4yNWVtO1xufVxuLyogTGlzdCAqL1xuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwZW07XG4gIG9wYWNpdHk6IDAuODU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSk6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkubWVzc2FnZSAubGlzdDpub3QoLnVpKTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuM2VtIDFlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkgbGk6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAn4oCiJztcbiAgbGVmdDogLTFlbTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkubWVzc2FnZSAubGlzdDpub3QoLnVpKSBsaTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogSWNvbiAqL1xuLnVpLm1lc3NhZ2UgPiAuaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogMC42ZW07XG59XG4vKiBDbG9zZSBJY29uICovXG4udWkubWVzc2FnZSA+IC5jbG9zZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMGVtO1xuICB0b3A6IDAuNzg1NzVlbTtcbiAgcmlnaHQ6IDAuNWVtO1xuICBvcGFjaXR5OiAwLjc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLnVpLm1lc3NhZ2UgPiAuY2xvc2UuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKiBGaXJzdCAvIExhc3QgRWxlbWVudCAqL1xuLnVpLm1lc3NhZ2UgPiA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkubWVzc2FnZSA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLm1lc3NhZ2Uge1xuICBtYXJnaW46IDBweCAtMXB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBWaXNpYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnZpc2libGUudmlzaWJsZS52aXNpYmxlLnZpc2libGUubWVzc2FnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmljb24udmlzaWJsZS52aXNpYmxlLnZpc2libGUudmlzaWJsZS5tZXNzYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSGlkZGVuXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhpZGRlbi5oaWRkZW4uaGlkZGVuLmhpZGRlbi5tZXNzYWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tcGFjdC5tZXNzYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLmNvbXBhY3QuaWNvbi5tZXNzYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYXR0YWNoZWQubWVzc2FnZSB7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW0gMGVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbn1cbi51aS5hdHRhY2hlZCArIC51aS5hdHRhY2hlZC5tZXNzYWdlOm5vdCgudG9wKTpub3QoLmJvdHRvbSkge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLm1lc3NhZ2Uge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbTtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQsIDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQubWVzc2FnZTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuLnVpLmF0dGFjaGVkLmljb24ubWVzc2FnZSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pY29uLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5pY29uLm1lc3NhZ2UgPiAuaWNvbjpub3QoLmNsb3NlKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDNlbTtcbiAgb3BhY2l0eTogMC44O1xufVxuLnVpLmljb24ubWVzc2FnZSA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmljb24ubWVzc2FnZSAuaWNvbjpub3QoLmNsb3NlKSArIC5jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwcmVtO1xufVxuLnVpLmljb24ubWVzc2FnZSAuY2lyY3VsYXIuaWNvbiB7XG4gIHdpZHRoOiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRmxvYXRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvYXRpbmcubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMjIpIGluc2V0LCAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmxhY2subWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi51aS5wb3NpdGl2ZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkZGNTtcbiAgY29sb3I6ICMyQzY2MkQ7XG59XG4udWkucG9zaXRpdmUubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5wb3NpdGl2ZS5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBM0MyOTMgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnBvc2l0aXZlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyogTmVnYXRpdmUgKi9cbi51aS5uZWdhdGl2ZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjZGNjtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkubmVnYXRpdmUubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5uZWdhdGl2ZS5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNFMEI0QjQgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLm5lZ2F0aXZlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjOTEyRDJCO1xufVxuLyogSW5mbyAqL1xuLnVpLmluZm8ubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGOEZGRkY7XG4gIGNvbG9yOiAjMjc2Rjg2O1xufVxuLnVpLmluZm8ubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5pbmZvLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0E5RDVERSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuaW5mby5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzBFNTY2Qztcbn1cbi8qIFdhcm5pbmcgKi9cbi51aS53YXJuaW5nLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGQUYzO1xuICBjb2xvcjogIzU3M0EwODtcbn1cbi51aS53YXJuaW5nLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQud2FybmluZy5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNDOUJBOUIgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLndhcm5pbmcubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM3OTRCMDI7XG59XG4vKiBFcnJvciAqL1xuLnVpLmVycm9yLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGNkY2O1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5lcnJvci5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLmVycm9yLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0UwQjRCNCBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuZXJyb3IubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM5MTJEMkI7XG59XG4vKiBTdWNjZXNzICovXG4udWkuc3VjY2Vzcy5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkZGNTtcbiAgY29sb3I6ICMyQzY2MkQ7XG59XG4udWkuc3VjY2Vzcy5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLnN1Y2Nlc3MubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTNDMjkzIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5zdWNjZXNzLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyogQ29sb3JzICovXG4udWkuaW52ZXJ0ZWQubWVzc2FnZSxcbi51aS5ibGFjay5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5yZWQubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkU4RTY7XG4gIGNvbG9yOiAjREIyODI4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0RCMjgyOCBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkucmVkLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjYzgyMTIxO1xufVxuLnVpLm9yYW5nZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRURERTtcbiAgY29sb3I6ICNGMjcxMUM7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRjI3MTFDIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5vcmFuZ2UubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICNlNzY0MGQ7XG59XG4udWkueWVsbG93Lm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOERCO1xuICBjb2xvcjogI0I1ODEwNTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNCNTgxMDUgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnllbGxvdy5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzljNmYwNDtcbn1cbi51aS5vbGl2ZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRkRFRjtcbiAgY29sb3I6ICM4QUJDMUU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOEFCQzFFIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5vbGl2ZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzdhYTYxYTtcbn1cbi51aS5ncmVlbi5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U1RjlFNztcbiAgY29sb3I6ICMxRUJDMzA7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMUVCQzMwIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5ncmVlbi5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzFhYTYyYTtcbn1cbi51aS50ZWFsLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTFGN0Y3O1xuICBjb2xvcjogIzEwQTNBMztcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxMEEzQTMgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnRlYWwubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICMwZThjOGM7XG59XG4udWkuYmx1ZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RGRjBGRjtcbiAgY29sb3I6ICMyMTg1RDA7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjE4NUQwIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5ibHVlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMWU3N2JhO1xufVxuLnVpLnZpb2xldC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VBRTdGRjtcbiAgY29sb3I6ICM2NDM1Qzk7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNjQzNUM5IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS52aW9sZXQubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM1YTMwYjU7XG59XG4udWkucHVycGxlLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZFN0ZGO1xuICBjb2xvcjogI0EzMzNDODtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBMzMzQzggaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnB1cnBsZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzkyMmViNDtcbn1cbi51aS5waW5rLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFM0ZCO1xuICBjb2xvcjogI0UwMzk5NztcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNFMDM5OTcgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnBpbmsubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICNkZDIzOGI7XG59XG4udWkuYnJvd24ubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMUUyRDM7XG4gIGNvbG9yOiAjQTU2NzNGO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0E1NjczRiBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuYnJvd24ubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM5MzViMzg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLnRpbnkubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xufVxuLnVpLnNtYWxsLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbn1cbi51aS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkubGFyZ2UubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLnVpLmJpZy5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5ZW07XG59XG4udWkuaHVnZS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzZW07XG59XG4udWkubWFzc2l2ZS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZmxhc2hlZC5tZXNzYWdlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcGFkZGluZzogMnB4IDA7XG59XG4uZmxhc2hlZC5jbG9zZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgdG9wOiAxZW07XG4gIHJpZ2h0OiAwLjVlbTtcbiAgb3BhY2l0eTogMC43O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5zdWNjZXNzLmZsYXNoZWQubWVzc2FnZSA+IC51aS5ncmlkLmNvbnRhaW5lciB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLm1lc3NhZ2UuY29kZSB7XG4gIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4udWkuZmxhc2hlZC5tZXNzYWdlLnRvcC1hdHRhY2hlZCxcbi51aS5mb3JtIC5mbGFzaGVkLm1lc3NhZ2UudG9wLWF0dGFjaGVkIHtcbiAgbWFyZ2luLXRvcDogLTIwcHg7XG59XG4udWkuZmxhc2hlZC5tZXNzYWdlLm1hbmFnZSxcbi51aS5mb3JtIC5mbGFzaGVkLm1lc3NhZ2UubWFuYWdlIHtcbiAgcGFkZGluZzogMCAwIDE1cHggMDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFRhYmxlXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxlIFJvdyAqL1xuLyogVGFibGUgQ2VsbCAqL1xuLyogVGFibGUgSGVhZGVyICovXG4vKiBUYWJsZSBGb290ZXIgKi9cbi8qIFJlc3BvbnNpdmUgU2l6ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmluaXRpb24gKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogRXJyb3IgKi9cbi8qIFdhcm5pbmcgKi9cbi8qIEFjdGl2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF0dGFjaGVkICovXG4vKiBTdHJpcGVkICovXG4vKiBTZWxlY3RhYmxlICovXG4vKiBTb3J0YWJsZSAqL1xuLyogQ29sb3JzICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIFBhZGRlZCAqL1xuLyogQ29tcGFjdCAqL1xuLyogU2l6ZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUHJvdG90eXBlICovXG4udWkudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDBweDtcbn1cbi51aS50YWJsZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS50YWJsZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBQYXJ0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRhYmxlIENvbnRlbnQgKi9cbi51aS50YWJsZSB0aCxcbi51aS50YWJsZSB0ZCB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4vKiBIZWFkZXJzICovXG4udWkudGFibGUgdGhlYWQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRoIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgcGFkZGluZzogMC45Mjg1NzE0M2VtIDAuNzg1NzE0MjllbTtcbiAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG4gIGZvbnQtc3R5bGU6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkudGFibGUgdGhlYWQgdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4udWkudGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgPiB0aDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4vKiBGb290ZXIgKi9cbi51aS50YWJsZSB0Zm9vdCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGFibGUgdGZvb3QgdGgge1xuICBjdXJzb3I6IGF1dG87XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDAuNzg1NzE0MjllbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi51aS50YWJsZSB0Zm9vdCB0ciA+IHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuMjg1NzE0MjlyZW07XG59XG4udWkudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgPiB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDBlbTtcbn1cbi51aS50YWJsZSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCA+IHRoOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbTtcbn1cbi8qIFRhYmxlIFJvdyAqL1xuLnVpLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS50YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBSZXBlYXRlZCB0Ym9keSAqL1xuLnVpLnRhYmxlIHRib2R5ICsgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLyogVGFibGUgQ2VsbHMgKi9cbi51aS50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAwLjc4NTcxNDI5ZW07XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG59XG4vKiBJY29ucyAqL1xuLnVpLnRhYmxlID4gLmljb24ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkudGFibGUgPiAuaWNvbjpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKiBUYWJsZSBTZWdtZW50ICovXG4udWkudGFibGUuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS50YWJsZS5zZWdtZW50OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS50YWJsZS5zZWdtZW50LnN0YWNrZWQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGJvZHksXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0cixcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGgsXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciA+IHRkIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHtcbiAgICBwYWRkaW5nOiAwZW07XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGZvb3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciB7XG4gICAgcGFkZGluZy10b3A6IDFlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGgsXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciA+IHRkIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuMjVlbSAwLjc1ZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRoOmZpcnN0LWNoaWxkLFxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGQ6Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC8qIERlZmluaXRpb24gVGFibGUgKi9cbiAgLnVpLmRlZmluaXRpb24udGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVUkgSW1hZ2UgKi9cbi51aS50YWJsZSB0aCAuaW1hZ2UsXG4udWkudGFibGUgdGggLmltYWdlIGltZyxcbi51aS50YWJsZSB0ZCAuaW1hZ2UsXG4udWkudGFibGUgdGQgLmltYWdlIGltZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29tcGxleFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdHJ1Y3R1cmVkLnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbi51aS5zdHJ1Y3R1cmVkLnRhYmxlIHRoZWFkIHRoIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51aS5zdHJ1Y3R1cmVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnN0cnVjdHVyZWQuYmFzaWMudGFibGUgdGgge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpLnN0cnVjdHVyZWQuY2VsbGVkLnRhYmxlIHRyIHRoLFxuLnVpLnN0cnVjdHVyZWQuY2VsbGVkLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlZmluaXRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDFweCAjRkZGRkZGO1xufVxuLnVpLmRlZmluaXRpb24udGFibGUgdGZvb3Q6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgY29sb3I6IG5vcm1hbDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggMXB4ICNGRkZGRkY7XG59XG4vKiBSZW1vdmUgQm9yZGVyICovXG4udWkuY2VsbGVkLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAxcHggI0ZGRkZGRjtcbn1cbi51aS5jZWxsZWQuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAwcHggMXB4ICNGRkZGRkY7XG59XG4vKiBIaWdobGlnaHQgRGVmaW5pbmcgQ29sdW1uICovXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZDpub3QoLmlnbm9yZWQpLFxuLnVpLmRlZmluaXRpb24udGFibGUgdHIgdGQuZGVmaW5pdGlvbiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgdGV4dC10cmFuc2Zvcm06ICcnO1xuICBib3gtc2hhZG93OiAnJztcbiAgdGV4dC1hbGlnbjogJyc7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nLWxlZnQ6ICcnO1xuICBwYWRkaW5nLXJpZ2h0OiAnJztcbn1cbi8qIEZpeCAybmQgQ29sdW1uICovXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOm50aC1jaGlsZCgyKSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRmb290Om5vdCguZnVsbC13aWR0aCkgdGg6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmRlZmluaXRpb24udGFibGUgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUG9zaXRpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIucG9zaXRpdmUsXG4udWkudGFibGUgdGQucG9zaXRpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjQTNDMjkzIGluc2V0O1xufVxuLnVpLnRhYmxlIHRyLnBvc2l0aXZlLFxuLnVpLnRhYmxlIHRkLnBvc2l0aXZlIHtcbiAgYmFja2dyb3VuZDogI0ZDRkZGNSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJDNjYyRCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBOZWdhdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5uZWdhdGl2ZSxcbi51aS50YWJsZSB0ZC5uZWdhdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4ICNFMEI0QjQgaW5zZXQ7XG59XG4udWkudGFibGUgdHIubmVnYXRpdmUsXG4udWkudGFibGUgdGQubmVnYXRpdmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOUYzQTM4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5lcnJvcixcbi51aS50YWJsZSB0ZC5lcnJvciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4ICNFMEI0QjQgaW5zZXQ7XG59XG4udWkudGFibGUgdHIuZXJyb3IsXG4udWkudGFibGUgdGQuZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOUYzQTM4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFdhcm5pbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIud2FybmluZyxcbi51aS50YWJsZSB0ZC53YXJuaW5nIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggI0M5QkE5QiBpbnNldDtcbn1cbi51aS50YWJsZSB0ci53YXJuaW5nLFxuLnVpLnRhYmxlIHRkLndhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiAjRkZGQUYzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTczQTA4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5hY3RpdmUsXG4udWkudGFibGUgdGQuYWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjg3KSBpbnNldDtcbn1cbi51aS50YWJsZSB0ci5hY3RpdmUsXG4udWkudGFibGUgdGQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0UwRTBFMCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5kaXNhYmxlZCB0ZCxcbi51aS50YWJsZSB0ciB0ZC5kaXNhYmxlZCxcbi51aS50YWJsZSB0ci5kaXNhYmxlZDpob3Zlcixcbi51aS50YWJsZSB0cjpob3ZlciB0ZC5kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRib2R5LFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0cixcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0aCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0ZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHtcbiAgICBwYWRkaW5nOiAwZW07XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGhlYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRmb290IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciB7XG4gICAgcGFkZGluZy10b3A6IDFlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0aCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0ZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjI1ZW0gMC43NWVtO1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAvKiBEZWZpbml0aW9uIFRhYmxlICovXG4gIC51aS5kZWZpbml0aW9uW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuIFRleHQgQWxpZ25tZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkudGFibGVbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiBWZXJ0aWNhbCBBbGlnbm1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGVbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29sbGFwc2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0aC5jb2xsYXBzaW5nLFxuLnVpLnRhYmxlIHRkLmNvbGxhcHNpbmcge1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXhlZC50YWJsZSB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4udWkuZml4ZWQudGFibGUgdGgsXG4udWkuZml4ZWQudGFibGUgdGQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNlbGVjdGFibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0Ym9keSB0cjpob3Zlcixcbi51aS50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUuaW52ZXJ0ZWQudGFibGUgdGJvZHkgdHI6aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFNlbGVjdGFibGUgQ2VsbCBMaW5rICovXG4udWkudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZSB7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlID4gYTpub3QoLnVpKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDAuNzg1NzE0MjllbTtcbn1cbi8qIE90aGVyIFN0YXRlcyAqL1xuLnVpLnNlbGVjdGFibGUudGFibGUgdHIuZXJyb3I6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5lcnJvcjpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLmVycm9yIHtcbiAgYmFja2dyb3VuZDogI2ZmZTdlNyAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk0MzYzNCAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIud2FybmluZzpob3Zlcixcbi51aS50YWJsZSB0ciB0ZC5zZWxlY3RhYmxlLndhcm5pbmc6aG92ZXIsXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0cjpob3ZlciB0ZC53YXJuaW5nIHtcbiAgYmFja2dyb3VuZDogI2ZmZjRlNCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzQ5MzEwNyAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIuYWN0aXZlOmhvdmVyLFxuLnVpLnRhYmxlIHRyIHRkLnNlbGVjdGFibGUuYWN0aXZlOmhvdmVyLFxuLnVpLnNlbGVjdGFibGUudGFibGUgdHI6aG92ZXIgdGQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0UwRTBFMCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KSAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIucG9zaXRpdmU6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5wb3NpdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLnBvc2l0aXZlIHtcbiAgYmFja2dyb3VuZDogI2Y3ZmZlNiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzI3NWIyOCAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIubmVnYXRpdmU6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5uZWdhdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLm5lZ2F0aXZlIHtcbiAgYmFja2dyb3VuZDogI2ZmZTdlNyAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk0MzYzNCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWlkZGxlICovXG4udWkuYXR0YWNoZWQudGFibGUge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luOiAwZW0gLTFweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtICgtMXB4ICogMikpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICgtMXB4ICogMikpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLmF0dGFjaGVkICsgLnVpLmF0dGFjaGVkLnRhYmxlOm5vdCgudG9wKSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBUb3AgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0udGFibGUge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB0b3A6IDBweDtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbTtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBCb3R0b20gKi9cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0udGFibGUge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICB0b3A6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBib3gtc2hhZG93OiBub25lLCBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0udGFibGU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3RyaXBlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxlIFN0cmlwaW5nICovXG4udWkuc3RyaXBlZC50YWJsZSA+IHRyOm50aC1jaGlsZCgybiksXG4udWkuc3RyaXBlZC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCA1MCwgMC4wMik7XG59XG4vKiBTdHJpcGVzICovXG4udWkuaW52ZXJ0ZWQuc3RyaXBlZC50YWJsZSA+IHRyOm50aC1jaGlsZCgybiksXG4udWkuaW52ZXJ0ZWQuc3RyaXBlZC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi8qIEFsbG93IHN0cmlwZWQgYWN0aXZlIGhvdmVyICovXG4udWkuc3RyaXBlZC5zZWxlY3RhYmxlLnNlbGVjdGFibGUuc2VsZWN0YWJsZS50YWJsZSB0Ym9keSB0ci5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRUZFRkVGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTaW5nbGUgTGluZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZVtjbGFzcyo9XCJzaW5nbGUgbGluZVwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwic2luZ2xlIGxpbmVcIl0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cInNpbmdsZSBsaW5lXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJzaW5nbGUgbGluZVwiXSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuLnVpLnJlZC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNEQjI4Mjg7XG59XG4udWkuaW52ZXJ0ZWQucmVkLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogT3JhbmdlICovXG4udWkub3JhbmdlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0YyNzExQztcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjRkJCRDA4O1xufVxuLnVpLmludmVydGVkLnllbGxvdy50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIE9saXZlICovXG4udWkub2xpdmUudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjQjVDQzE4O1xufVxuLnVpLmludmVydGVkLm9saXZlLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmVlbi50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICMyMUJBNDU7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4udGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBUZWFsICovXG4udWkudGVhbC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICMwMEI1QUQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJsdWUgKi9cbi51aS5ibHVlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgIzIxODVEMDtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxODVEMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogVmlvbGV0ICovXG4udWkudmlvbGV0LnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgIzY0MzVDOTtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjQTMzM0M4O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFBpbmsgKi9cbi51aS5waW5rLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0UwMzk5Nztcbn1cbi51aS5pbnZlcnRlZC5waW5rLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQnJvd24gKi9cbi51aS5icm93bi50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNBNTY3M0Y7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24udGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JleS50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICM3Njc2NzY7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJsYWNrICovXG4udWkuYmxhY2sudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjMUIxQzFEO1xufVxuLnVpLmludmVydGVkLmJsYWNrLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBDb2x1bW4gQ291bnRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcmlkIEJhc2VkICovXG4udWkub25lLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnR3by5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLnRocmVlLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4udWkuZm91ci5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLmZpdmUuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5zaXguY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cbi51aS5zZXZlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTQuMjg1NzE0MjklO1xufVxuLnVpLmVpZ2h0LmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi51aS5uaW5lLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxMS4xMTExMTExMSU7XG59XG4udWkudGVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxMCU7XG59XG4udWkuZWxldmVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA5LjA5MDkwOTA5JTtcbn1cbi51aS50d2VsdmUuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDguMzMzMzMzMzMlO1xufVxuLnVpLnRoaXJ0ZWVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA3LjY5MjMwNzY5JTtcbn1cbi51aS5mb3VydGVlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNy4xNDI4NTcxNCU7XG59XG4udWkuZmlmdGVlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNi42NjY2NjY2NyU7XG59XG4udWkuc2l4dGVlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNi4yNSU7XG59XG4vKiBDb2x1bW4gV2lkdGggKi9cbi51aS50YWJsZSB0aC5vbmUud2lkZSxcbi51aS50YWJsZSB0ZC5vbmUud2lkZSB7XG4gIHdpZHRoOiA2LjI1JTtcbn1cbi51aS50YWJsZSB0aC50d28ud2lkZSxcbi51aS50YWJsZSB0ZC50d28ud2lkZSB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi51aS50YWJsZSB0aC50aHJlZS53aWRlLFxuLnVpLnRhYmxlIHRkLnRocmVlLndpZGUge1xuICB3aWR0aDogMTguNzUlO1xufVxuLnVpLnRhYmxlIHRoLmZvdXIud2lkZSxcbi51aS50YWJsZSB0ZC5mb3VyLndpZGUge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLnRhYmxlIHRoLmZpdmUud2lkZSxcbi51aS50YWJsZSB0ZC5maXZlLndpZGUge1xuICB3aWR0aDogMzEuMjUlO1xufVxuLnVpLnRhYmxlIHRoLnNpeC53aWRlLFxuLnVpLnRhYmxlIHRkLnNpeC53aWRlIHtcbiAgd2lkdGg6IDM3LjUlO1xufVxuLnVpLnRhYmxlIHRoLnNldmVuLndpZGUsXG4udWkudGFibGUgdGQuc2V2ZW4ud2lkZSB7XG4gIHdpZHRoOiA0My43NSU7XG59XG4udWkudGFibGUgdGguZWlnaHQud2lkZSxcbi51aS50YWJsZSB0ZC5laWdodC53aWRlIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS50YWJsZSB0aC5uaW5lLndpZGUsXG4udWkudGFibGUgdGQubmluZS53aWRlIHtcbiAgd2lkdGg6IDU2LjI1JTtcbn1cbi51aS50YWJsZSB0aC50ZW4ud2lkZSxcbi51aS50YWJsZSB0ZC50ZW4ud2lkZSB7XG4gIHdpZHRoOiA2Mi41JTtcbn1cbi51aS50YWJsZSB0aC5lbGV2ZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5lbGV2ZW4ud2lkZSB7XG4gIHdpZHRoOiA2OC43NSU7XG59XG4udWkudGFibGUgdGgudHdlbHZlLndpZGUsXG4udWkudGFibGUgdGQudHdlbHZlLndpZGUge1xuICB3aWR0aDogNzUlO1xufVxuLnVpLnRhYmxlIHRoLnRoaXJ0ZWVuLndpZGUsXG4udWkudGFibGUgdGQudGhpcnRlZW4ud2lkZSB7XG4gIHdpZHRoOiA4MS4yNSU7XG59XG4udWkudGFibGUgdGguZm91cnRlZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5mb3VydGVlbi53aWRlIHtcbiAgd2lkdGg6IDg3LjUlO1xufVxuLnVpLnRhYmxlIHRoLmZpZnRlZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5maWZ0ZWVuLndpZGUge1xuICB3aWR0aDogOTMuNzUlO1xufVxuLnVpLnRhYmxlIHRoLnNpeHRlZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5zaXh0ZWVuLndpZGUge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTb3J0YWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZCxcbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQ6aG92ZXIge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICBjb250ZW50OiAnJztcbiAgaGVpZ2h0OiAxZW07XG4gIHdpZHRoOiBhdXRvO1xuICBvcGFjaXR5OiAwLjg7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMC41ZW07XG4gIGZvbnQtZmFtaWx5OiAnSWNvbnMnO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLmFzY2VuZGluZzphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXGYwZDgnO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLmRlc2NlbmRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxmMGQ3Jztcbn1cbi8qIEhvdmVyICovXG4udWkuc29ydGFibGUudGFibGUgdGguZGlzYWJsZWQ6aG92ZXIge1xuICBjdXJzb3I6IGF1dG87XG4gIGNvbG9yOiByZ2JhKDQwLCA0MCwgNDAsIDAuMyk7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGg6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogU29ydGVkICovXG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyogU29ydGVkIEhvdmVyICovXG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuMDUpKTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuc29ydGFibGUudGFibGUgdGhlYWQgdGg6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCBDb2xvciAqL1xuLnVpLmludmVydGVkLnRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzMzMzMzMztcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpLmludmVydGVkLnRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50YWJsZSB0ci5kaXNhYmxlZCB0ZCxcbi51aS5pbnZlcnRlZC50YWJsZSB0ciB0ZC5kaXNhYmxlZCxcbi51aS5pbnZlcnRlZC50YWJsZSB0ci5kaXNhYmxlZDpob3ZlciB0ZCxcbi51aS5pbnZlcnRlZC50YWJsZSB0cjpob3ZlciB0ZC5kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogcmdiYSgyMjUsIDIyNSwgMjI1LCAwLjMpO1xufVxuLyogRGVmaW5pdGlvbiAqL1xuLnVpLmludmVydGVkLmRlZmluaXRpb24udGFibGUgdGZvb3Q6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCxcbi51aS5pbnZlcnRlZC5kZWZpbml0aW9uLnRhYmxlIHRoZWFkOm5vdCguZnVsbC13aWR0aCkgdGg6Zmlyc3QtY2hpbGQge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLmRlZmluaXRpb24udGFibGUgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIENvbGxhcHNpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29sbGFwc2luZy50YWJsZSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmFzaWMudGFibGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5iYXNpYy50YWJsZSB0aGVhZCxcbi51aS5iYXNpYy50YWJsZSB0Zm9vdCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmFzaWMudGFibGUgdGgge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkuYmFzaWMudGFibGUgdGJvZHkgdHIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4udWkuYmFzaWMuc3RyaXBlZC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xufVxuLyogVmVyeSBCYXNpYyAqL1xuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGUge1xuICBib3JkZXI6IG5vbmU7XG59XG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRoLFxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0ZCB7XG4gIHBhZGRpbmc6ICcnO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0aDpmaXJzdC1jaGlsZCxcbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGQ6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGg6bGFzdC1jaGlsZCxcbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGQ6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgge1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDZWxsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2VsbGVkLnRhYmxlIHRyIHRoLFxuLnVpLmNlbGxlZC50YWJsZSB0ciB0ZCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmNlbGxlZC50YWJsZSB0ciB0aDpmaXJzdC1jaGlsZCxcbi51aS5jZWxsZWQudGFibGUgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFkZGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBhZGRlZC50YWJsZSB0aCB7XG4gIHBhZGRpbmctbGVmdDogMWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxZW07XG59XG4udWkucGFkZGVkLnRhYmxlIHRoLFxuLnVpLnBhZGRlZC50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDFlbSAxZW07XG59XG4vKiBWZXJ5ICovXG4udWlbY2xhc3MqPVwidmVyeSBwYWRkZWRcIl0udGFibGUgdGgge1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHBhZGRlZFwiXS50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDEuNWVtIDEuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbXBhY3QudGFibGUgdGgge1xuICBwYWRkaW5nLWxlZnQ6IDAuN2VtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjdlbTtcbn1cbi51aS5jb21wYWN0LnRhYmxlIHRkIHtcbiAgcGFkZGluZzogMC41ZW0gMC43ZW07XG59XG4vKiBWZXJ5ICovXG4udWlbY2xhc3MqPVwidmVyeSBjb21wYWN0XCJdLnRhYmxlIHRoIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjZlbTtcbiAgcGFkZGluZy1yaWdodDogMC42ZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSBjb21wYWN0XCJdLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogMC40ZW0gMC42ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNtYWxsICovXG4udWkuc21hbGwudGFibGUge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLyogU3RhbmRhcmQgKi9cbi51aS50YWJsZSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyogTGFyZ2UgKi9cbi51aS5sYXJnZS50YWJsZSB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4vKiBWaWV3cyAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQWRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogQ29weXJpZ2h0IDIwMTMgQ29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBBZHZlcnRpc2VtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBBZHZlcnRpc2VtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmFkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMWVtIDBlbTtcbn1cbi51aS5hZDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmFkOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS5hZCBpZnJhbWUge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbW1vblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlYWRlcmJvYXJkICovXG4udWkubGVhZGVyYm9hcmQuYWQge1xuICB3aWR0aDogNzI4cHg7XG4gIGhlaWdodDogOTBweDtcbn1cbi8qIE1lZGl1bSBSZWN0YW5nbGUgKi9cbi51aVtjbGFzcyo9XCJtZWRpdW0gcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xufVxuLyogTGFyZ2UgUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwibGFyZ2UgcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDMzNnB4O1xuICBoZWlnaHQ6IDI4MHB4O1xufVxuLyogSGFsZiBQYWdlICovXG4udWlbY2xhc3MqPVwiaGFsZiBwYWdlXCJdLmFkIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDYwMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTcXVhcmVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTcXVhcmUgKi9cbi51aS5zcXVhcmUuYWQge1xuICB3aWR0aDogMjUwcHg7XG4gIGhlaWdodDogMjUwcHg7XG59XG4vKiBTbWFsbCBTcXVhcmUgKi9cbi51aVtjbGFzcyo9XCJzbWFsbCBzcXVhcmVcIl0uYWQge1xuICB3aWR0aDogMjAwcHg7XG4gIGhlaWdodDogMjAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUmVjdGFuZ2xlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU21hbGwgUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwic21hbGwgcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDE4MHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xufVxuLyogVmVydGljYWwgUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwidmVydGljYWwgcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDI0MHB4O1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uLmFkIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDkwcHg7XG59XG4udWlbY2xhc3MqPVwic3F1YXJlIGJ1dHRvblwiXS5hZCB7XG4gIHdpZHRoOiAxMjVweDtcbiAgaGVpZ2h0OiAxMjVweDtcbn1cbi51aVtjbGFzcyo9XCJzbWFsbCBidXR0b25cIl0uYWQge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogNjBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNreXNjcmFwZXJzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2t5c2NyYXBlciAqL1xuLnVpLnNreXNjcmFwZXIuYWQge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogNjAwcHg7XG59XG4vKiBXaWRlIFNreXNjcmFwZXIgKi9cbi51aVtjbGFzcyo9XCJ3aWRlIHNreXNjcmFwZXJcIl0uYWQge1xuICB3aWR0aDogMTYwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJhbm5lcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYW5uZXIgKi9cbi51aS5iYW5uZXIuYWQge1xuICB3aWR0aDogNDY4cHg7XG4gIGhlaWdodDogNjBweDtcbn1cbi8qIFZlcnRpY2FsIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsIGJhbm5lclwiXS5hZCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiAyNDBweDtcbn1cbi8qIFRvcCBCYW5uZXIgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYmFubmVyXCJdLmFkIHtcbiAgd2lkdGg6IDkzMHB4O1xuICBoZWlnaHQ6IDE4MHB4O1xufVxuLyogSGFsZiBCYW5uZXIgKi9cbi51aVtjbGFzcyo9XCJoYWxmIGJhbm5lclwiXS5hZCB7XG4gIHdpZHRoOiAyMzRweDtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEJvYXJkc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlYWRlcmJvYXJkICovXG4udWlbY2xhc3MqPVwibGFyZ2UgbGVhZGVyYm9hcmRcIl0uYWQge1xuICB3aWR0aDogOTcwcHg7XG4gIGhlaWdodDogOTBweDtcbn1cbi8qIEJpbGxib2FyZCAqL1xuLnVpLmJpbGxib2FyZC5hZCB7XG4gIHdpZHRoOiA5NzBweDtcbiAgaGVpZ2h0OiAyNTBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQYW5vcmFtYVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhbm9yYW1hICovXG4udWkucGFub3JhbWEuYWQge1xuICB3aWR0aDogOTgwcHg7XG4gIGhlaWdodDogMTIwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldGJvYXJkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTmV0Ym9hcmQgKi9cbi51aS5uZXRib2FyZC5hZCB7XG4gIHdpZHRoOiA1ODBweDtcbiAgaGVpZ2h0OiA0MDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTW9iaWxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGFyZ2UgTW9iaWxlIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cImxhcmdlIG1vYmlsZSBiYW5uZXJcIl0uYWQge1xuICB3aWR0aDogMzIwcHg7XG4gIGhlaWdodDogMTAwcHg7XG59XG4vKiBNb2JpbGUgTGVhZGVyYm9hcmQgKi9cbi51aVtjbGFzcyo9XCJtb2JpbGUgbGVhZGVyYm9hcmRcIl0uYWQge1xuICB3aWR0aDogMzIwcHg7XG4gIGhlaWdodDogNTBweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBNb2JpbGUgU2l6ZXMgKi9cbi51aS5tb2JpbGUuYWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubW9iaWxlLmFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5jZW50ZXJlZC5hZCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4udWkudGVzdC5hZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzU0NTQ1NDtcbn1cbi51aS50ZXN0LmFkOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgY29udGVudDogJ0FkJztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi51aS5tb2JpbGUudGVzdC5hZDphZnRlciB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xufVxuLnVpLnRlc3QuYWRbZGF0YS10ZXh0XTphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEl0ZW1cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgQ2FyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2hhZG93ICovXG4vKiBDYXJkICovXG4vKiBDYXJkIEdyb3VwICovXG4vKiBDb25zZWN1dGl2ZSBDYXJkcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIEljb25zICovXG4vKiBMaW5rcyAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIENvbnRlbnQgSW1hZ2UgKi9cbi8qIEF2YXRhciBJbWFnZSAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBEaW1tZXIgKi9cbi8qIEFkZGl0aW9uYWwgQ29udGVudCAqL1xuLyogRXh0cmEgTGlua3MgKi9cbi8qIEJ1dHRvbnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGluayAqL1xuLyogUmFpc2VkICovXG4vKiBDYXJkIENvdW50ICovXG4vKiBTdGFja2FibGUgKi9cbi8qIFNpemVzICovXG4vKiBDb2xvcmVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQ2FyZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDI5MHB4O1xuICBtaW4taGVpZ2h0OiAwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAwcHggI0Q0RDRENSwgMHB4IDBweCAwcHggMXB4ICNENEQ0RDU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xuICB6LWluZGV4OiAnJztcbn1cbi51aS5jYXJkIHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgYSxcbi51aS5jYXJkIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuY2FyZDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5jYXJkOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBDYXJkc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogLTAuODc1ZW0gLTAuNWVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4udWkuY2FyZHMgPiAuY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMC44NzVlbSAwLjVlbTtcbiAgZmxvYXQ6IG5vbmU7XG59XG4vKiBDbGVhcmluZyAqL1xuLnVpLmNhcmRzOmFmdGVyLFxuLnVpLmNhcmQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIENvbnNlY3V0aXZlIENhcmQgR3JvdXBzIFByZXNlcnZlIFJvdyBTcGFjaW5nICovXG4udWkuY2FyZHMgfiAudWkuY2FyZHMge1xuICBtYXJnaW4tdG9wOiAwLjg3NWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBSb3VuZGVkIEVkZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiA6Zmlyc3QtY2hpbGQsXG4udWkuY2FyZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW0gMGVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gOmxhc3QtY2hpbGQsXG4udWkuY2FyZCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gIWltcG9ydGFudDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gOm9ubHktY2hpbGQsXG4udWkuY2FyZCA+IDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbWFnZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5pbWFnZSxcbi51aS5jYXJkID4gLmltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAwIGF1dG87XG4gIHBhZGRpbmc6IDBlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmltYWdlID4gaW1nLFxuLnVpLmNhcmQgPiAuaW1hZ2UgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmltYWdlOm5vdCgudWkpID4gaW1nLFxuLnVpLmNhcmQgPiAuaW1hZ2U6bm90KC51aSkgPiBpbWcge1xuICBib3JkZXI6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50LFxuLnVpLmNhcmQgPiAuY29udGVudCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMWVtIDFlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQ6YWZ0ZXIsXG4udWkuY2FyZCA+IC5jb250ZW50OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogJyc7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogRGVmYXVsdCBIZWFkZXIgU2l6ZSAqL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSksXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbiAgbWFyZ2luLXRvcDogLTAuMjE0MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NzE0MjllbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAubWV0YSArIC5kZXNjcmlwdGlvbixcbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyICsgLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5tZXRhICsgLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXIgKyAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLVxuIEZsb2F0ZWQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogcmlnaHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0sXG4udWkuY2FyZCBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIENvbnRlbnQgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCAuY29udGVudCBpbWcsXG4udWkuY2FyZCAuY29udGVudCBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAnJztcbn1cbi51aS5jYXJkcyA+IC5jYXJkIGltZy5hdmF0YXIsXG4udWkuY2FyZHMgPiAuY2FyZCAuYXZhdGFyIGltZyxcbi51aS5jYXJkIGltZy5hdmF0YXIsXG4udWkuY2FyZCAuYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAyZW07XG4gIGhlaWdodDogMmVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEZXNjcmlwdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24sXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmRlc2NyaXB0aW9uIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgcCxcbi51aS5jYXJkID4gLmNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjVlbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgcDpsYXN0LWNoaWxkLFxuLnVpLmNhcmQgPiAuY29udGVudCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZXRhXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEsXG4udWkuY2FyZCAubWV0YSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgKixcbi51aS5jYXJkIC5tZXRhICoge1xuICBtYXJnaW4tcmlnaHQ6IDAuM2VtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgOmxhc3QtY2hpbGQsXG4udWkuY2FyZCAubWV0YSA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0sXG4udWkuY2FyZCAubWV0YSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC4zZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdlbmVyaWMgKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKSxcbi51aS5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKSB7XG4gIGNvbG9yOiAnJztcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCBhOm5vdCgudWkpOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICcnO1xufVxuLyogSGVhZGVyICovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gYS5oZWFkZXIsXG4udWkuY2FyZCA+IC5jb250ZW50ID4gYS5oZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlcjpob3Zlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMWU3MGJmO1xufVxuLyogTWV0YSAqL1xuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpLFxuLnVpLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhID4gYTpub3QoLnVpKTpob3Zlcixcbi51aS5jYXJkIC5tZXRhID4gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCdXR0b25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuYnV0dG9ucyxcbi51aS5jYXJkID4gLmJ1dHRvbnMsXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5idXR0b24sXG4udWkuY2FyZCA+IC5idXR0b24ge1xuICBtYXJnaW46IDBweCAtMXB4O1xuICB3aWR0aDogY2FsYygxMDAlICsgIDJweCApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRGltbWVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgLmRpbW1lcixcbi51aS5jYXJkIC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAnJztcbiAgei1pbmRleDogMTA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS1TdGFyLS0tLS0gKi9cbi8qIEljb24gKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAuc3Rhci5pY29uOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCAuc3Rhci5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNGRkI3MEE7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUuc3Rhci5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAuYWN0aXZlLnN0YXIuaWNvbiB7XG4gIGNvbG9yOiAjRkZFNjIzO1xufVxuLyotLS0tLUxpa2UtLS0tLSAqL1xuLyogSWNvbiAqL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjc1O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5saWtlLmljb246aG92ZXIsXG4udWkuY2FyZCA+IC5jb250ZW50IC5saWtlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogI0ZGMjczMztcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLmFjdGl2ZS5saWtlLmljb24sXG4udWkuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUubGlrZS5pY29uIHtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS1cbiAgRXh0cmEgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEsXG4udWkuY2FyZCA+IC5leHRyYSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSkgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEgYTpub3QoLnVpKSxcbi51aS5jYXJkID4gLmV4dHJhIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEgYTpub3QoLnVpKTpob3Zlcixcbi51aS5jYXJkID4gLmV4dHJhIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSYWlzZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yYWlzZWQuY2FyZHMgPiAuY2FyZCxcbi51aS5yYWlzZWQuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnJhaXNlZC5jYXJkcyBhLmNhcmQ6aG92ZXIsXG4udWkubGluay5jYXJkcyAucmFpc2VkLmNhcmQ6aG92ZXIsXG5hLnVpLnJhaXNlZC5jYXJkOmhvdmVyLFxuLnVpLmxpbmsucmFpc2VkLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjI1KTtcbn1cbi51aS5yYWlzZWQuY2FyZHMgPiAuY2FyZCxcbi51aS5yYWlzZWQuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ2VudGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jZW50ZXJlZC5jYXJkcyB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnVpLmNlbnRlcmVkLmNhcmQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDk5OTlweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgYS5jYXJkLFxuLnVpLmxpbmsuY2FyZHMgLmNhcmQsXG5hLnVpLmNhcmQsXG4udWkubGluay5jYXJkIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLnVpLmNhcmRzIGEuY2FyZDpob3Zlcixcbi51aS5saW5rLmNhcmRzIC5jYXJkOmhvdmVyLFxuYS51aS5jYXJkOmhvdmVyLFxuLnVpLmxpbmsuY2FyZDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogNTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAwcHggI0JDQkRCRCwgMHB4IDBweCAwcHggMXB4ICNENEQ0RDU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG4udWkucmVkLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAucmVkLmNhcmQsXG4udWkucmVkLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNEQjI4MjgsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLnJlZC5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnJlZC5jYXJkOmhvdmVyLFxuLnVpLnJlZC5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjZDAxOTE5LCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLm9yYW5nZS5jYXJkLFxuLnVpLm9yYW5nZS5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjRjI3MTFDLCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5vcmFuZ2UuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5vcmFuZ2UuY2FyZDpob3Zlcixcbi51aS5vcmFuZ2UuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI2YyNjIwMiwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC55ZWxsb3cuY2FyZCxcbi51aS55ZWxsb3cuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0ZCQkQwOCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkueWVsbG93LmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAueWVsbG93LmNhcmQ6aG92ZXIsXG4udWkueWVsbG93LmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNlYWFlMDAsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogT2xpdmUgKi9cbi51aS5vbGl2ZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLm9saXZlLmNhcmQsXG4udWkub2xpdmUuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0I1Q0MxOCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkub2xpdmUuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5vbGl2ZS5jYXJkOmhvdmVyLFxuLnVpLm9saXZlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNhN2JkMGQsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmVlbi5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmdyZWVuLmNhcmQsXG4udWkuZ3JlZW4uY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzIxQkE0NSwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkuZ3JlZW4uY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ncmVlbi5jYXJkOmhvdmVyLFxuLnVpLmdyZWVuLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMxNmFiMzksIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogVGVhbCAqL1xuLnVpLnRlYWwuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC50ZWFsLmNhcmQsXG4udWkudGVhbC5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMDBCNUFELCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS50ZWFsLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAudGVhbC5jYXJkOmhvdmVyLFxuLnVpLnRlYWwuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzAwOWM5NSwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBCbHVlICovXG4udWkuYmx1ZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmJsdWUuY2FyZCxcbi51aS5ibHVlLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMyMTg1RDAsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmJsdWUuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ibHVlLmNhcmQ6aG92ZXIsXG4udWkuYmx1ZS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMTY3OGMyLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLnZpb2xldC5jYXJkLFxuLnVpLnZpb2xldC5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjNjQzNUM5LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS52aW9sZXQuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC52aW9sZXQuY2FyZDpob3Zlcixcbi51aS52aW9sZXQuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzU4MjliYiwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5wdXJwbGUuY2FyZCxcbi51aS5wdXJwbGUuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0EzMzNDOCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkucHVycGxlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAucHVycGxlLmNhcmQ6aG92ZXIsXG4udWkucHVycGxlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM5NjI3YmEsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogUGluayAqL1xuLnVpLnBpbmsuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5waW5rLmNhcmQsXG4udWkucGluay5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjRTAzOTk3LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5waW5rLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAucGluay5jYXJkOmhvdmVyLFxuLnVpLnBpbmsuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI2U2MWE4ZCwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBCcm93biAqL1xuLnVpLmJyb3duLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAuYnJvd24uY2FyZCxcbi51aS5icm93bi5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjQTU2NzNGLCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5icm93bi5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLmJyb3duLmNhcmQ6aG92ZXIsXG4udWkuYnJvd24uY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzk3NWIzMywgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JleS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmdyZXkuY2FyZCxcbi51aS5ncmV5LmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM3Njc2NzYsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmdyZXkuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ncmV5LmNhcmQ6aG92ZXIsXG4udWkuZ3JleS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjODM4MzgzLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIEJsYWNrICovXG4udWkuYmxhY2suY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ibGFjay5jYXJkLFxuLnVpLmJsYWNrLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMxQjFDMUQsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmJsYWNrLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuYmxhY2suY2FyZDpob3Zlcixcbi51aS5ibGFjay5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMjcyOTJhLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIENhcmQgQ291bnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkub25lLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWkub25lLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xufVxuLnVpLnR3by5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoIDUwJSAgLSAgMmVtICk7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLnVpLnRocmVlLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gIG1hcmdpbi1yaWdodDogLTFlbTtcbn1cbi51aS50aHJlZS5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLnVpLmZvdXIuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xufVxuLnVpLmZvdXIuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKCAyNSUgIC0gIDEuNWVtICk7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogMC43NWVtO1xufVxuLnVpLmZpdmUuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xufVxuLnVpLmZpdmUuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKCAyMCUgIC0gIDEuNWVtICk7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogMC43NWVtO1xufVxuLnVpLnNpeC5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG59XG4udWkuc2l4LmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMTYuNjY2NjY2NjclICAtICAxLjVlbSApO1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbn1cbi51aS5zZXZlbi5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC41ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNWVtO1xufVxuLnVpLnNldmVuLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMTQuMjg1NzE0MjklICAtICAxZW0gKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmVpZ2h0LmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4udWkuZWlnaHQuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKCAxMi41JSAgLSAgMWVtICk7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLnVpLm5pbmUuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjVlbTtcbn1cbi51aS5uaW5lLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMTEuMTExMTExMTElICAtICAxZW0gKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICBmb250LXNpemU6IDEwcHg7XG59XG4udWkudGVuLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4udWkudGVuLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMTAlICAtICAxZW0gKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEb3VibGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTW9iaWxlIE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnR3by5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgfVxuICAudWkudHdvLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbiAgLnVpLnRocmVlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnRocmVlLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCA1MCUgIC0gIDJlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZm91ci5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggNTAlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5maXZlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmZpdmUuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDUwJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuc2l4LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnNpeC5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggNTAlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5zZXZlbi5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5zZXZlbi5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggMzMuMzMzMzMzMzMlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggMzMuMzMzMzMzMzMlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5uaW5lLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLm5pbmUuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkudGVuLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnRlbi5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggMzMuMzMzMzMzMzMlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG59XG4vKiBUYWJsZXQgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS50d28uZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbiAgLnVpLnR3by5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICB9XG4gIC51aS50aHJlZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS50aHJlZS5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggNTAlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5mb3VyLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDUwJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZml2ZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5maXZlLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCAzMy4zMzMzMzMzMyUgIC0gIDJlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLnNpeC5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5zaXguZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDI1JSAgLSAgMS41ZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC43NWVtO1xuICB9XG4gIC51aS5uaW5lLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG4gIH1cbiAgLnVpLm5pbmUuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDI1JSAgLSAgMS41ZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC43NWVtO1xuICB9XG4gIC51aS50ZW4uZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbiAgfVxuICAudWkudGVuLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCAyMCUgIC0gIDEuNWVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnN0YWNrYWJsZS5jYXJkcyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNhcmRzIC5jYXJkOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNhcmRzID4gLmNhcmQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAxZW0gMWVtO1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogY2FsYyggMTAwJSAgLSAgMmVtICkgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBDb21tZW50XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29tbWVudHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb21tZW50ICovXG4vKiBOZXN0ZWQgQ29tbWVudCAqL1xuLyogQXZhdGFyICovXG4vKiBDb250ZW50ICovXG4vKiBBdXRob3IgKi9cbi8qIE1ldGFkYXRhICovXG4vKiBUZXh0ICovXG4vKiBBY3Rpb25zICovXG4vKiBSZXBseSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaHJlYWRlZCAqL1xuLyogTWluaW1hbCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyB7XG4gIG1hcmdpbjogMS41ZW0gMGVtO1xuICBtYXgtd2lkdGg6IDY1MHB4O1xufVxuLnVpLmNvbW1lbnRzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmNvbW1lbnRzOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbW1lbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDBlbTtcbiAgcGFkZGluZzogMC41ZW0gMGVtIDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIE5lc3RlZCBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAuY29tbWVudHMge1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW0gMC41ZW07XG4gIHBhZGRpbmc6IDFlbSAwZW0gMWVtIDFlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuY29tbWVudHM6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50cyAuY29tbWVudCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQXZhdGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hdmF0YXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIuNWVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDAuMmVtIDBlbSAwZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgaW1nLmF2YXRhcixcbi51aS5jb21tZW50cyAuY29tbWVudCAuYXZhdGFyIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbSBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50ID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIElmIHRoZXJlIGlzIGFuIGF2YXRhciBtb3ZlIGNvbnRlbnQgb3ZlciAqL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50ID4gLmF2YXRhciB+IC5jb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDMuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBdXRob3Jcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmF1dGhvciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgYS5hdXRob3Ige1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgYS5hdXRob3I6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTWV0YWRhdGFcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLm1ldGFkYXRhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAubWV0YWRhdGEgPiAqIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5tZXRhZGF0YSA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIENvbW1lbnQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAudGV4dCB7XG4gIG1hcmdpbjogMC4yNWVtIDBlbSAwLjVlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFVzZXIgQWN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyB7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIDAuNzVlbSAwZW0gMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIGE6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIGEuYWN0aXZlLFxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIGE6aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUmVwbHkgRm9ybVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyA+IC5yZXBseS5mb3JtIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5yZXBseS5mb3JtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cbi51aS5jb21tZW50cyAucmVwbHkuZm9ybSB0ZXh0YXJlYSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBoZWlnaHQ6IDEyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuY29sbGFwc2VkLmNvbW1lbnRzLFxuLnVpLmNvbW1lbnRzIC5jb2xsYXBzZWQuY29tbWVudHMsXG4udWkuY29tbWVudHMgLmNvbGxhcHNlZC5jb21tZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFRocmVhZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRocmVhZGVkLmNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50cyB7XG4gIG1hcmdpbjogLTEuNWVtIDAgLTFlbSAxLjI1ZW07XG4gIHBhZGRpbmc6IDNlbSAwZW0gMmVtIDIuMjVlbTtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIE1pbmltYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaW1hbC5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIGxlZnQ6IGF1dG87XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjFzO1xufVxuLnVpLm1pbmltYWwuY29tbWVudHMgLmNvbW1lbnQgPiAuY29udGVudDpob3ZlciA+IC5hY3Rpb25zIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuY29tbWVudHMge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5zbWFsbC5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5iaWcuY29tbWVudHMge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxcmVtO1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRmVlZFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGZWVkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZlZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEV2ZW50ICovXG4vKiBFdmVudCBMYWJlbCAqL1xuLyogSWNvbiBMYWJlbCAqL1xuLyogSW1hZ2UgTGFiZWwgKi9cbi8qIENvbnRlbnQgdy8gTGFiZWwgKi9cbi8qIENvbnRlbnQgKi9cbi8qIERhdGUgKi9cbi8qIFN1bW1hcnkgKi9cbi8qIFN1bW1hcnkgSW1hZ2UgKi9cbi8qIFN1bW1hcnkgRGF0ZSAqL1xuLyogVXNlciAqL1xuLyogRXh0cmEgU3VtbWFyeSBEYXRhICovXG4vKiBFeHRyYSBJbWFnZXMgKi9cbi8qIEV4dHJhIFRleHQgKi9cbi8qIE1ldGFkYXRhIEdyb3VwICovXG4vKiBMaWtlICovXG4vKiBNZXRhZGF0YSBEaXZpZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgQWN0aXZpdHkgRmVlZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5mZWVkIHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmZlZWQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZmVlZDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBFdmVudCAqL1xuLnVpLmZlZWQgPiAuZXZlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC4yMTQyODU3MXJlbSAwZW07XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAwcHg7XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG4udWkuZmVlZCA+IC5ldmVudDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qIEV2ZW50IExhYmVsICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDIuNWVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5sYWJlbCAuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjI1ZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsICsgLmNvbnRlbnQge1xuICBtYXJnaW46IDAuNWVtIDBlbSAwLjM1NzE0Mjg2ZW0gMS4xNDI4NTcxNGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29udGVudCAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQ6bGFzdC1jaGlsZCA+IC5jb250ZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qIExpbmsgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERhdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5kYXRlIHtcbiAgbWFyZ2luOiAtMC41cmVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3VtbWFyeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnN1bW1hcnkge1xuICBtYXJnaW46IDBlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIFN1bW1hcnkgSW1hZ2UgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnN1bW1hcnkgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMGVtO1xuICBtYXJnaW46IC0wLjI1ZW0gMC4yNWVtIDBlbSAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFVzZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC51c2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnVzZXIgaW1nIHtcbiAgbWFyZ2luOiAtMC4yNWVtIDAuMjVlbSAwZW0gMGVtO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgSW5saW5lIERhdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBEYXRlIGluc2lkZSBTdW1tYXJ5ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5zdW1tYXJ5ID4gLmRhdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEV4dHJhIFN1bW1hcnlcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5leHRyYSB7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDBlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIEltYWdlcyAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuZXh0cmEuaW1hZ2VzIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW0gMC4yNWVtIDBlbSAwZW07XG4gIHdpZHRoOiA2ZW07XG59XG4vKiBUZXh0ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5leHRyYS50ZXh0IHtcbiAgcGFkZGluZzogMGVtO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1ldGFcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMGVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHBhZGRpbmc6IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+ICo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IC0xZW07XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgLmxpa2Uge1xuICBjb2xvcjogJyc7XG4gIHRyYW5zaXRpb246IDAuMnMgY29sb3IgZWFzZTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgLmxpa2U6aG92ZXIgLmljb24ge1xuICBjb2xvcjogI0ZGMjczMztcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgLmFjdGl2ZS5saWtlIC5pY29uIHtcbiAgY29sb3I6ICNFRjQwNEE7XG59XG4vKiBGaXJzdCBlbGVtZW50ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiA6Zmlyc3QtY2hpbGQ6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEFjdGlvbiAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSBhLFxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+IC5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIGE6aG92ZXIsXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIGE6aG92ZXIgLmljb24sXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gLmljb246aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnNtYWxsLmZlZWQge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuZmVlZCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5mZWVkIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gSXRlbVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJdGVtXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cCAqL1xuLyogSXRlbSAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIEljb25zICovXG4vKiBBY3Rpb25zICovXG4vKiBMaW5rcyAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIENvbnRlbnQgSW1hZ2UgKi9cbi8qIEF2YXRhciBJbWFnZSAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBBZGRpdGlvbmFsIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVsYXhlZCAqL1xuLyogRGl2aWRlZCAqL1xuLyogVW5zdGFja2FibGUgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDFlbSAwZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMHJlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2U7XG4gIHotaW5kZXg6ICcnO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEl0ZW1zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zIHtcbiAgbWFyZ2luOiAxLjVlbSAwZW07XG59XG4udWkuaXRlbXM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5pdGVtczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW06YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5pdGVtcyA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIG1heC1oZWlnaHQ6ICcnO1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2U6b25seS1jaGlsZCA+IGltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICBib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDFlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGFsaWduLXNlbGY6IHRvcDtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiAuaGVhZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IC0wLjIxNDI1ZW0gMGVtIDBlbTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogRGVmYXVsdCBIZWFkZXIgU2l6ZSAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdDtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBDb250ZW50IEltYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gLmNvbnRlbnQgaW1nIHtcbiAgYWxpZ24tc2VsZjogbWlkZGxlO1xuICB3aWR0aDogJyc7XG59XG4udWkuaXRlbXMgPiAuaXRlbSBpbWcuYXZhdGFyLFxuLnVpLml0ZW1zID4gLml0ZW0gLmF2YXRhciBpbWcge1xuICB3aWR0aDogJyc7XG4gIGhlaWdodDogJyc7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlc2NyaXB0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDAuNmVtO1xuICBtYXgtd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS40Mjg1ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjVlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWV0YVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhIHtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMC41ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgKiB7XG4gIG1hcmdpbi1yaWdodDogMC4zZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBHZW5lcmljICovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IGE6bm90KC51aSkge1xuICBjb2xvcjogJyc7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiAnJztcbn1cbi8qIEhlYWRlciAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IGEuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50ID4gYS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzFlNzBiZjtcbn1cbi8qIE1ldGEgKi9cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhID4gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSA+IGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTGFiZWxzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLVN0YXItLS0tLSAqL1xuLyogSWNvbiAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAuZmF2b3JpdGUuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAuZmF2b3JpdGUuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjRkZCNzBBO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAuYWN0aXZlLmZhdm9yaXRlLmljb24ge1xuICBjb2xvcjogI0ZGRTYyMztcbn1cbi8qLS0tLS1MaWtlLS0tLS0gKi9cbi8qIEljb24gKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmxpa2UuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAubGlrZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5hY3RpdmUubGlrZS5pY29uIHtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS1cbiAgRXh0cmEgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gLmV4dHJhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luOiAwLjVyZW0gMGVtIDBlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBib3gtc2hhZG93OiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuaXRlbXMgPiAuaXRlbSAuZXh0cmEgPiAqIHtcbiAgbWFyZ2luOiAwLjI1cmVtIDAuNXJlbSAwLjI1cmVtIDBlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5leHRyYSA+IFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgbWFyZ2luOiAwLjI1cmVtIDBlbSAwLjI1cmVtIDAuNXJlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5leHRyYTphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBSZXNwb25zaXZlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogRGVmYXVsdCBJbWFnZSBXaWR0aCAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2U6bm90KC51aSkge1xuICB3aWR0aDogMTc1cHg7XG59XG4vKiBUYWJsZXQgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5pdGVtcyA+IC5pdGVtIHtcbiAgICBtYXJnaW46IDFlbSAwZW07XG4gIH1cbiAgLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2U6bm90KC51aSkge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgfVxuICAudWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAxZW07XG4gIH1cbn1cbi8qIE1vYmlsZSBPbmx5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbjogMmVtIDBlbTtcbiAgfVxuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSA+IC5pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtID4gLmltYWdlLFxuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSA+IC5pbWFnZSA+IGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtID4gLmltYWdlICsgLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEuNWVtIDBlbSAwZW07XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5jb250ZW50IHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlICsgW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmNvbnRlbnQge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5jb250ZW50IHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJlbGF4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucmVsYXhlZC5pdGVtcyA+IC5pdGVtIHtcbiAgbWFyZ2luOiAxLjVlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLml0ZW1zID4gLml0ZW0ge1xuICBtYXJnaW46IDJlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVkLml0ZW1zID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDFlbSAwZW07XG59XG4udWkuZGl2aWRlZC5pdGVtcyA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgbWFyZ2luLXRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5kaXZpZGVkLml0ZW1zID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMGVtICFpbXBvcnRhbnQ7XG59XG4vKiBSZWxheGVkIERpdmlkZWQgKi9cbi51aS5yZWxheGVkLmRpdmlkZWQuaXRlbXMgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAxLjVlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmRpdmlkZWQuaXRlbXMgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAyZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExpbmtcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyBhLml0ZW06aG92ZXIsXG4udWkubGluay5pdGVtcyA+IC5pdGVtOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLml0ZW1zIGEuaXRlbTpob3ZlciAuY29udGVudCAuaGVhZGVyLFxuLnVpLmxpbmsuaXRlbXMgPiAuaXRlbTpob3ZlciAuY29udGVudCAuaGVhZGVyIHtcbiAgY29sb3I6ICMxZTcwYmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0ge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tXG4gICBVbnN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS51bnN0YWNrYWJsZS5pdGVtcyA+IC5pdGVtID4gLmltYWdlLFxuICAudWkudW5zdGFja2FibGUuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSA+IGltZyB7XG4gICAgd2lkdGg6IDEyNXB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFN0YXRpc3RpY1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGlzdGljXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cCAqL1xuLyogR3JvdXAgRWxlbWVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmFsdWUgKi9cbi8qIExhYmVsICovXG4vKiBUZXh0ICovXG4vKiBMYWJlbCBJbWFnZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbG9hdGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogSXRlbSBXaWR0aCAqL1xuLyogU2l6ZSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFN0YXRpc3RpY1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFN0YW5kYWxvbmUgKi9cbi51aS5zdGF0aXN0aWMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBtYXgtd2lkdGg6IGF1dG87XG59XG4udWkuc3RhdGlzdGljICsgLnVpLnN0YXRpc3RpYyB7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMS41ZW07XG59XG4udWkuc3RhdGlzdGljOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnN0YXRpc3RpYzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyb3VwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogR3JvdXBlZCAqL1xuLnVpLnN0YXRpc3RpY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnVpLnN0YXRpc3RpY3MgPiAuc3RhdGlzdGljIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46IDBlbSAxLjVlbSAxZW07XG4gIG1heC13aWR0aDogYXV0bztcbn1cbi51aS5zdGF0aXN0aWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxZW0gLTEuNWVtIC0xZW07XG59XG4vKiBDbGVhcmluZyAqL1xuLnVpLnN0YXRpc3RpY3M6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5zdGF0aXN0aWNzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBWYWx1ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA0cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBjb2xvcjogIzFCMUMxRDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAubGFiZWwsXG4udWkuc3RhdGlzdGljID4gLmxhYmVsIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyogVG9wIExhYmVsICovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsIH4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC5sYWJlbCB+IC52YWx1ZSB7XG4gIG1hcmdpbi10b3A6IDByZW07XG59XG4vKiBCb3R0b20gTGFiZWwgKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgfiAubGFiZWwsXG4udWkuc3RhdGlzdGljID4gLnZhbHVlIH4gLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBJY29uIFZhbHVlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSAuaWNvbixcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUgLmljb24ge1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBUZXh0IFZhbHVlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgbWluLWhlaWdodDogMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlICsgLmxhYmVsLFxuLnVpLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlICsgLmxhYmVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgSW1hZ2UgVmFsdWVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlIGltZyxcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUgaW1nIHtcbiAgbWF4LWhlaWdodDogM3JlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBDb3VudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50ZW4uc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLnRlbi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDEwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5uaW5lLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS5uaW5lLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTEuMTExMTExMTElO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLmVpZ2h0LnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS5laWdodC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDEyLjUlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLnNldmVuLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS5zZXZlbi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDE0LjI4NTcxNDI5JTtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5zaXguc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLnNpeC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5maXZlLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS5maXZlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMjAlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLmZvdXIuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLmZvdXIuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAyNSU7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkudGhyZWUuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLnRocmVlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMzMuMzMzMzMzMzMlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLnR3by5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0xZW07XG59XG4udWkudHdvLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogNTAlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLm9uZS5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0xZW07XG59XG4udWkub25lLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEhvcml6b250YWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMGVtO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1hcmdpbjogMWVtIDBlbTtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyA+IC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIG1pbi1oZWlnaHQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlIC5pY29uLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIC5pY29uIHtcbiAgd2lkdGg6IDEuMThlbTtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC5sYWJlbCxcbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwLjc1ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yZWQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnJlZC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLnVpLm9yYW5nZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAub3JhbmdlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5vcmFuZ2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGMjcxMUM7XG59XG4udWkueWVsbG93LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC55ZWxsb3cuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0ZCQkQwODtcbn1cbi51aS5vbGl2ZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm9saXZlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjQjVDQzE4O1xufVxuLnVpLmdyZWVuLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuZ3JlZW4uc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICMyMUJBNDU7XG59XG4udWkudGVhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAudGVhbC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkudGVhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzAwQjVBRDtcbn1cbi51aS5ibHVlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5ibHVlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ibHVlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjMjE4NUQwO1xufVxuLnVpLnZpb2xldC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAudmlvbGV0LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS52aW9sZXQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICM2NDM1Qzk7XG59XG4udWkucHVycGxlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5wdXJwbGUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0EzMzNDODtcbn1cbi51aS5waW5rLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRTAzOTk3O1xufVxuLnVpLmJyb3duLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5icm93bi5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuYnJvd24uc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNBNTY3M0Y7XG59XG4udWkuZ3JleS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzc2NzY3Njtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuc3RhdGlzdGljIC52YWx1ZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC5sYWJlbCxcbi51aS5pbnZlcnRlZC5zdGF0aXN0aWMgLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5pbnZlcnRlZC5yZWQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnJlZC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRkY2OTVFO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQub3JhbmdlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGRjg1MUI7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC55ZWxsb3cuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0ZGRTIxRjtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLm9saXZlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRDlFNzc4O1xufVxuLnVpLmludmVydGVkLmdyZWVuLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICMyRUNDNDA7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQudGVhbC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQudGVhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzZERkZGRjtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5ibHVlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5ibHVlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjNTRDOEZGO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQudmlvbGV0LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC52aW9sZXQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNBMjkxRkI7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5wdXJwbGUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0RDNzNGRjtcbn1cbi51aS5pbnZlcnRlZC5waW5rLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRkY4RURGO1xufVxuLnVpLmludmVydGVkLmJyb3duLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5icm93bi5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNENjdDMUM7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0RDRERERTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5zdGF0aXN0aWMge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW0gMmVtIDFlbSAwZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5zdGF0aXN0aWMge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW0gMmVtO1xufVxuLnVpLmZsb2F0ZWQuc3RhdGlzdGljOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWluaSAqL1xuLnVpLm1pbmkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm1pbmkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cbi51aS5taW5pLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm1pbmkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLm1pbmkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkubWluaS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xufVxuLyogVGlueSAqL1xuLnVpLnRpbnkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnRpbnkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG59XG4udWkudGlueS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS50aW55Lmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG59XG4udWkudGlueS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS50aW55LnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBTbWFsbCAqL1xuLnVpLnNtYWxsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zbWFsbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDNyZW0gIWltcG9ydGFudDtcbn1cbi51aS5zbWFsbC5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zbWFsbC5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50O1xufVxuLnVpLnNtYWxsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLnNtYWxsLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBNZWRpdW0gKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiA0cmVtICFpbXBvcnRhbnQ7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDNyZW0gIWltcG9ydGFudDtcbn1cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50O1xufVxuLyogTGFyZ2UgKi9cbi51aS5sYXJnZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkubGFyZ2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiA1cmVtICFpbXBvcnRhbnQ7XG59XG4udWkubGFyZ2UuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkubGFyZ2UuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDRyZW0gIWltcG9ydGFudDtcbn1cbi51aS5sYXJnZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5sYXJnZS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtICFpbXBvcnRhbnQ7XG59XG4vKiBIdWdlICovXG4udWkuaHVnZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaHVnZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDZyZW0gIWltcG9ydGFudDtcbn1cbi51aS5odWdlLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmh1Z2UuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDVyZW0gIWltcG9ydGFudDtcbn1cbi51aS5odWdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLmh1Z2Uuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDIuNXJlbSAhaW1wb3J0YW50O1xufVxuLyogTW9kdWxlcyAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQWNjb3JkaW9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBBY2NvcmRpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUaXRsZSAqL1xuLyogSWNvbiAqL1xuLyogQ2hpbGQgQWNjb3JkaW9uICovXG4vKiBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0eWxlZCAqL1xuLyogQ29udGVudCAqL1xuLyogQ2hpbGQgQ29udGVudCAqL1xuLyogU3R5bGVkIFRpdGxlICovXG4vKiBTdHlsZWQgVGl0bGUgU3RhdGVzICovXG4vKiBTdHlsZWQgQ2hpbGQgVGl0bGUgU3RhdGVzICovXG4vKiBJbnZlcnRlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBBY2NvcmRpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYWNjb3JkaW9uLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIHtcbiAgbWFyZ2luOiAxZW0gMGVtIDBlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLyogVGl0bGUgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qIERlZmF1bHQgU3R5bGluZyAqL1xuLnVpLmFjY29yZGlvbiAudGl0bGU6bm90KC51aSkge1xuICBwYWRkaW5nOiAwLjVlbSAwZW07XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIENvbnRlbnQgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlIH4gLmNvbnRlbnQsXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIH4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogRGVmYXVsdCBTdHlsaW5nICovXG4udWkuYWNjb3JkaW9uOm5vdCguc3R5bGVkKSAudGl0bGUgfiAuY29udGVudDpub3QoLnVpKSxcbi51aS5hY2NvcmRpb246bm90KC5zdHlsZWQpIC5hY2NvcmRpb24gLnRpdGxlIH4gLmNvbnRlbnQ6bm90KC51aSkge1xuICBtYXJnaW46ICcnO1xuICBwYWRkaW5nOiAwLjVlbSAwZW0gMWVtO1xufVxuLnVpLmFjY29yZGlvbjpub3QoLnN0eWxlZCkgLnRpdGxlIH4gLmNvbnRlbnQ6bm90KC51aSk6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4vKiBBcnJvdyAqL1xuLnVpLmFjY29yZGlvbiAudGl0bGUgLmRyb3Bkb3duLmljb24sXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDEuMjVlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIG1hcmdpbjogMGVtIDAuMjVyZW0gMGVtIDByZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzIGVhc2UsIG9wYWNpdHkgMC4xcyBlYXNlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgKi9cbi51aS5hY2NvcmRpb24ubWVudSAuaXRlbSAudGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMGVtO1xufVxuLnVpLmFjY29yZGlvbi5tZW51IC5pdGVtIC50aXRsZSA+IC5kcm9wZG93bi5pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDAuMjE0MjVlbSAwZW0gMGVtIDFlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cbi8qIEhlYWRlciAqL1xuLnVpLmFjY29yZGlvbiAudWkuaGVhZGVyIC5kcm9wZG93bi5pY29uIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbjogMGVtIDAuMjVyZW0gMGVtIDByZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIC5kcm9wZG93bi5pY29uLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUgLmRyb3Bkb3duLmljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG4udWkuYWNjb3JkaW9uLm1lbnUgLml0ZW0gLmFjdGl2ZS50aXRsZSA+IC5kcm9wZG93bi5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdHlsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3R5bGVkLmFjY29yZGlvbiB7XG4gIHdpZHRoOiA2MDBweDtcbn1cbi51aS5zdHlsZWQuYWNjb3JkaW9uLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAudGl0bGUsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiA+IC50aXRsZTpmaXJzdC1jaGlsZCxcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIENvbnRlbnQgKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5jb250ZW50LFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuY29udGVudCB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAxZW0gMS41ZW07XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5jb250ZW50IHtcbiAgcGFkZGluZzogMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAxZW0gMS41ZW07XG59XG4vKiBIb3ZlciAqL1xuLnVpLnN0eWxlZC5hY2NvcmRpb24gLnRpdGxlOmhvdmVyLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjdGl2ZS50aXRsZSxcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlOmhvdmVyLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGU6aG92ZXIsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWNjb3JkaW9uIC5hY3RpdmUuY29udGVudCxcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmFjY29yZGlvbixcbi51aS5mbHVpZC5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5hY2NvcmRpb24gLnRpdGxlOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIENoZWNrYm94XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ2hlY2tib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMYWJlbCAqL1xuLyogMjZweCBAIDE0L2VtICovXG4vKiBDaGVja2JveCAqL1xuLyogQ2hlY2ttYXJrICovXG4vKiBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qIFByZXNzZWQgKi9cbi8qIEZvY3VzICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLyogSW5kZXRlcm1pbmF0ZSAqL1xuLyogRGlzYWJsZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmFkaW8gKi9cbi8qIFVzZXMgcHggdG8gYXZvaWQgcm91bmRpbmcgaXNzdWVzIHdpdGggY2lyY2xlcyAqL1xuLyogN3B4IGFzIHVuaXRsZXNzIHZhbHVlIGZyb20gcmFkaW8gc2l6ZSAqL1xuLyogU2xpZGVyICYgVG9nZ2xlIEhhbmRsZSAqL1xuLyogU2xpZGVyICovXG4vKiBTbGlkZXIgU3RhdGVzICovXG4vKiBUb2dnbGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgQ2hlY2tib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBtaW4taGVpZ2h0OiAxN3B4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICBtaW4td2lkdGg6IDE3cHg7XG59XG4vKiBIVE1MIENoZWNrYm94ICovXG4udWkuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLnVpLmNoZWNrYm94IGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHotaW5kZXg6IDM7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3hcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggLmJveCxcbi51aS5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAxLjg1NzE0ZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTdweDtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlciAwLjFzIGVhc2UsIG9wYWNpdHkgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDaGVja21hcmtcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5jaGVja2JveCBsYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxN3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2U7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluc2lkZSAqL1xuLnVpLmNoZWNrYm94IGxhYmVsLFxuLnVpLmNoZWNrYm94ICsgbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLyogT3V0c2lkZSAqL1xuLnVpLmNoZWNrYm94ICsgbGFiZWwge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmhvdmVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4udWkuY2hlY2tib3ggbGFiZWw6aG92ZXIsXG4udWkuY2hlY2tib3ggKyBsYWJlbDpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBEb3duXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IC5ib3g6YWN0aXZlOjpiZWZvcmUsXG4udWkuY2hlY2tib3ggbGFiZWw6YWN0aXZlOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4udWkuY2hlY2tib3ggLmJveDphY3RpdmU6OmFmdGVyLFxuLnVpLmNoZWNrYm94IGxhYmVsOmFjdGl2ZTo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5jaGVja2JveCBpbnB1dDphY3RpdmUgfiBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xufVxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEluZGV0ZXJtaW5hdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGUgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEFjdGl2ZSBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlOmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZTpmb2N1cyB+IGxhYmVsOmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkOmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbn1cbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlOmZvY3VzIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlOmZvY3VzIH4gbGFiZWw6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZDpmb2N1cyB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZDpmb2N1cyB+IGxhYmVsOmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUmVhZC1Pbmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJlYWQtb25seS5jaGVja2JveCxcbi51aS5yZWFkLW9ubHkuY2hlY2tib3ggbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpc2FibGVkLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkuZGlzYWJsZWQuY2hlY2tib3ggbGFiZWwsXG4udWkuY2hlY2tib3ggaW5wdXRbZGlzYWJsZWRdIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dFtkaXNhYmxlZF0gfiBsYWJlbCB7XG4gIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjU7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIaWRkZW5cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsaXplZCBjaGVja2JveCBtb3ZlcyBpbnB1dCBiZWxvdyBlbGVtZW50XG4gdG8gcHJldmVudCBtYW51YWxseSB0cmlnZ2VyaW5nICovXG4udWkuY2hlY2tib3ggaW5wdXQuaGlkZGVuIHtcbiAgei1pbmRleDogLTE7XG59XG4vKiBTZWxlY3RhYmxlIExhYmVsICovXG4udWkuY2hlY2tib3ggaW5wdXQuaGlkZGVuICsgbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUmFkaW9cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucmFkaW8uY2hlY2tib3gge1xuICBtaW4taGVpZ2h0OiAxNXB4O1xufVxuLnVpLnJhZGlvLmNoZWNrYm94IC5ib3gsXG4udWkucmFkaW8uY2hlY2tib3ggbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDEuODU3MTRlbTtcbn1cbi8qIEJveCAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuLnVpLnJhZGlvLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdG9wOiAxcHg7XG4gIGxlZnQ6IDBweDtcbn1cbi8qIEJ1bGxldCAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbnRlbnQ6ICcnICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xufVxuLyogUmFkaW8gQ2hlY2tib3ggKi9cbi51aS5yYWRpby5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgdG9wOiAxcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNDY2NjY2NjcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogRm9jdXMgKi9cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbmRldGVybWluYXRlICovXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogMDtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogQWN0aXZlIEZvY3VzICovXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNsaWRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zbGlkZXIuY2hlY2tib3gge1xuICBtaW4taGVpZ2h0OiAxLjI1cmVtO1xufVxuLyogSW5wdXQgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQge1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG59XG4vKiBMYWJlbCAqL1xuLnVpLnNsaWRlci5jaGVja2JveCAuYm94LFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogNC41cmVtO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qIExpbmUgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDpiZWZvcmUsXG4udWkuc2xpZGVyLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgbGVmdDogMGVtO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDAuNHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgd2lkdGg6IDMuNXJlbTtcbiAgaGVpZ2h0OiAwLjIxNDI4NTcxcmVtO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2U7XG59XG4vKiBIYW5kbGUgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJycgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdG9wOiAtMC4yNXJlbTtcbiAgbGVmdDogMGVtO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjNzIGVhc2U7XG59XG4vKiBGb2N1cyAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3g6aG92ZXIsXG4udWkuc2xpZGVyLmNoZWNrYm94IGxhYmVsOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgbGVmdDogMnJlbTtcbn1cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUb2dnbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudG9nZ2xlLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMS41cmVtO1xufVxuLyogSW5wdXQgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQge1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbn1cbi8qIExhYmVsICovXG4udWkudG9nZ2xlLmNoZWNrYm94IC5ib3gsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsIHtcbiAgbWluLWhlaWdodDogMS41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDQuNXJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDAuMTVlbTtcbn1cbi8qIFN3aXRjaCAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCAuYm94OmJlZm9yZSxcbi51aS50b2dnbGUuY2hlY2tib3ggbGFiZWw6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICB0b3A6IDByZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHdpZHRoOiAzLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKiBIYW5kbGUgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS50b2dnbGUuY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJycgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdG9wOiAwcmVtO1xuICBsZWZ0OiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UsIGxlZnQgMC4zcyBlYXNlO1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dCB+IC5ib3g6YWZ0ZXIsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0IH4gbGFiZWw6YWZ0ZXIge1xuICBsZWZ0OiAtMC4wNXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAycHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi8qIEZvY3VzICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyOiBub25lO1xufVxuLyogSG92ZXIgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBsYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyOiBub25lO1xufVxuLyogQWN0aXZlICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94LFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NUQwICFpbXBvcnRhbnQ7XG59XG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBsZWZ0OiAyLjE1cmVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLyogQWN0aXZlIEZvY3VzICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94LFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ3MWJiICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5jaGVja2JveCAuYm94LFxuLnVpLmZpdHRlZC5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZml0dGVkLnRvZ2dsZS5jaGVja2JveCxcbi51aS5maXR0ZWQudG9nZ2xlLmNoZWNrYm94IHtcbiAgd2lkdGg6IDMuNXJlbTtcbn1cbi51aS5maXR0ZWQuc2xpZGVyLmNoZWNrYm94LFxuLnVpLmZpdHRlZC5zbGlkZXIuY2hlY2tib3gge1xuICB3aWR0aDogMy41cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogV2UgbmVlZCB0byBpbXBvcnQgdGhlIGB0aGVtZXMvZGVmYXVsdC9tb2R1bGVzL2NoZWNrYm94Lm92ZXJyaWRlc2AgaW4gb3JkZXIgdG8gbWFrZSB0aGUgY2hlY2tib3ggd29ya2luZyBwcm9wZXJseS5cbiAgIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgU1VJIGlzIHJlbHlpbmcgZXhwbGljaXRseSB0byB5b3VyIGN1c3RvbSB0aGVtZSdzIGA8Y29tcG9uZW50Pi5vdmVycmlkZXNgLlxuICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9TZW1hbnRpYy1PcmcvU2VtYW50aWMtVUkvYmxvYi9tYXN0ZXIvc3JjL3RoZW1lLmxlc3MjTDU5XG4qL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQ2hlY2tib3gnO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZzhTQkQ4QUFBQzhBQUFBWUdOdFlYQVlWdENKQUFBQkhBQUFBRlJuWVhOd0FBQUFFQUFBQVhBQUFBQUlaMng1Wm40aHV3VUFBQUY0QUFBQllHaGxZV1FHUGUxWkFBQUMyQUFBQURab2FHVmhCMzBEeUFBQUF4QUFBQUFrYUcxMGVCQktBRVVBQUFNMEFBQUFIR3h2WTJFQW1nRVNBQUFEVUFBQUFCQnRZWGh3QUFrQUx3QUFBMkFBQUFBZ2JtRnRaU0M4SXVnQUFBT0FBQUFCa25CdmMzUUFBd0FBQUFBRkZBQUFBQ0FBQXdNVEFaQUFCUUFBQXBrQ3pBQUFBSThDbVFMTUFBQUI2d0F6QVFrQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEb0FnUEEvOEFBUUFQQUFFQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFEQUFBQUF3QUFBQndBQVFBREFBQUFIQUFEQUFFQUFBQWNBQVFBT0FBQUFBb0FDQUFDQUFJQUFRQWc2QUwvL2YvL0FBQUFBQUFnNkFELy9mLy9BQUgvNHhnRUFBTUFBUUFBQUFBQUFBQUFBQUFBQVFBQi8vOEFEd0FCQUFBQUFBQUFBQUFBQWdBQU56a0JBQUFBQUFFQUFBQUFBQUFBQUFBQ0FBQTNPUUVBQUFBQUFRQUFBQUFBQUFBQUFBSUFBRGM1QVFBQUFBQUJBRVVBVVFPN0F2Z0FHZ0FBQVJRSEFRWWpJaWNCSmpVMFB3RTJNeklmQVFFMk16SWZBUllWQTdzUS9oUVFGaGNRL3VNUUVFNFFGeGNRcUFGMkVCY1hFRTRRQW5NV0VQNFVFQkFCSFJBWEZoQk9FQkNvQVhjUUVFNFFGd0FBQUFBQkFBQUJiZ01sQWtrQUZBQUFBUlVVQndZaklTSW5KajBCTkRjMk15RXlGeFlWQXlVUUVCZjlTUmNRRUJBUUZ3SzNGeEFRQWhKdEZ4QVFFQkFYYlJjUUVCQVFGd0FBQUFBQkFBQUFTUU1sQTI0QUxBQUFBUlVVQndZckFSVVVCd1lyQVNJbkpqMEJJeUluSmowQk5EYzJPd0UxTkRjMk93RXlGeFlkQVRNeUZ4WVZBeVVRRUJmdUVCQVhiaFlRRU80WEVCQVFFQmZ1RUJBV2JoY1FFTzRYRUJBQ0VtMFhFQkR1RnhBUUVCQVg3aEFRRjIwWEVCRHVGeEFRRUJBWDdoQVFGd0FBQVFBQUFBSUFBSFJTelQ5ZkR6ejFBQXNFQUFBQUFBRFJzZFIzQUFBQUFOR3gxSGNBQUFBQUE3c0RiZ0FBQUFnQUFnQUFBQUFBQUFBQkFBQUR3UC9BQUFBRUFBQUFBQUFEdXdBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQndRQUFBQUFBQUFBQUFBQUFBSUFBQUFFQUFCRkF5VUFBQU1sQUFBQUFBQUFBQW9BRkFBZUFFNEFjZ0N3QUFFQUFBQUhBQzBBQVFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUs0QUFRQUFBQUFBQVFBSUFBQUFBUUFBQUFBQUFnQUhBR2tBQVFBQUFBQUFBd0FJQURrQUFRQUFBQUFBQkFBSUFINEFBUUFBQUFBQUJRQUxBQmdBQVFBQUFBQUFCZ0FJQUZFQUFRQUFBQUFBQ2dBYUFKWUFBd0FCQkFrQUFRQVFBQWdBQXdBQkJBa0FBZ0FPQUhBQUF3QUJCQWtBQXdBUUFFRUFBd0FCQkFrQUJBQVFBSVlBQXdBQkJBa0FCUUFXQUNNQUF3QUJCQWtBQmdBUUFGa0FBd0FCQkFrQUNnQTBBTEJEYUdWamEySnZlQUJEQUdnQVpRQmpBR3NBWWdCdkFIaFdaWEp6YVc5dUlESXVNQUJXQUdVQWNnQnpBR2tBYndCdUFDQUFNZ0F1QURCRGFHVmphMkp2ZUFCREFHZ0FaUUJqQUdzQVlnQnZBSGhEYUdWamEySnZlQUJEQUdnQVpRQmpBR3NBWWdCdkFIaFNaV2QxYkdGeUFGSUFaUUJuQUhVQWJBQmhBSEpEYUdWamEySnZlQUJEQUdnQVpRQmpBR3NBWWdCdkFIaEdiMjUwSUdkbGJtVnlZWFJsWkNCaWVTQkpZMjlOYjI5dUxnQkdBRzhBYmdCMEFDQUFad0JsQUc0QVpRQnlBR0VBZEFCbEFHUUFJQUJpQUhrQUlBQkpBR01BYndCTkFHOEFid0J1QUM0QUFBQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG59XG4vKiBDaGVja21hcmsgKi9cbi51aS5jaGVja2JveCBsYWJlbDphZnRlcixcbi51aS5jaGVja2JveCAuYm94OmFmdGVyIHtcbiAgZm9udC1mYW1pbHk6ICdDaGVja2JveCc7XG59XG4vKiBDaGVja2VkICovXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgY29udGVudDogJ1xcZTgwMCc7XG59XG4vKiBJbmRldGVybWluYXRlICovXG4udWkuY2hlY2tib3ggaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IGxhYmVsOmFmdGVyIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb250ZW50OiAnXFxlODAxJztcbn1cbi8qICBVVEYgUmVmZXJlbmNlXG4uY2hlY2s6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMCc7IH1cbi5kYXNoOmJlZm9yZSAgeyBjb250ZW50OiAnXFxlODAxJzsgfVxuLnBsdXM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMic7IH1cbiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBEaW1tZXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaW1tZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBIaWRkZW4gKERlZmF1bHQpICovXG4vKiBWaXNpYmxlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhZ2UgRGltbWVyKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpbXBsZSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaW1tZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uZGltbWFibGU6bm90KGJvZHkpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLmRpbW1lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBvcGFjaXR5OiAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMgbGluZWFyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICB6LWluZGV4OiAxMDAwO1xufVxuLyogRGltbWVyIENvbnRlbnQgKi9cbi51aS5kaW1tZXIgPiAuY29udGVudCB7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIExvb3NlIENvdXBsaW5nICovXG4udWkuc2VnbWVudCA+IC51aS5kaW1tZXIge1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG4vKiBTY3JvbGxiYXJzICovXG4udWkuZGltbWVyOm5vdCguaW52ZXJ0ZWQpOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51aS5kaW1tZXI6bm90KC5pbnZlcnRlZCk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cbi51aS5kaW1tZXI6bm90KC5pbnZlcnRlZCk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOndpbmRvdy1pbmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG4udWkuZGltbWVyOm5vdCguaW52ZXJ0ZWQpOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQW5pbWF0aW5nICovXG4uYW5pbWF0aW5nLmRpbW1hYmxlOm5vdChib2R5KSxcbi5kaW1tZWQuZGltbWFibGU6bm90KGJvZHkpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi8qIEFuaW1hdGluZyAvIEFjdGl2ZSAvIFZpc2libGUgKi9cbi5kaW1tZWQuZGltbWFibGUgPiAudWkuYW5pbWF0aW5nLmRpbW1lcixcbi5kaW1tZWQuZGltbWFibGUgPiAudWkudmlzaWJsZS5kaW1tZXIsXG4udWkuYWN0aXZlLmRpbW1lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG9wYWNpdHk6IDE7XG59XG4vKiBEaXNhYmxlZCAqL1xuLnVpLmRpc2FibGVkLmRpbW1lciB7XG4gIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMZWdhY3lcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBBbmltYXRpbmcgLyBBY3RpdmUgLyBWaXNpYmxlICovXG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLmFuaW1hdGluZy5sZWdhY3kuZGltbWVyLFxuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS52aXNpYmxlLmxlZ2FjeS5kaW1tZXIsXG4udWkuYWN0aXZlLmxlZ2FjeS5kaW1tZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBbGlnbm1lbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uZGltbWVyIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmRpbW1lciB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBhZ2UuZGltbWVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0cmFuc2Zvcm0tc3R5bGU6ICcnO1xuICBwZXJzcGVjdGl2ZTogMjAwMHB4O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuYm9keS5hbmltYXRpbmcuaW4uZGltbWFibGUsXG5ib2R5LmRpbW1lZC5kaW1tYWJsZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5ib2R5LmRpbW1hYmxlID4gLmRpbW1lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBCbHVycmluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi5ibHVycmluZy5kaW1tYWJsZSA+IDpub3QoLmRpbW1lcikge1xuICBmaWx0ZXI6IGJsdXIoMHB4KSBncmF5c2NhbGUoMCk7XG4gIHRyYW5zaXRpb246IDgwMG1zIGZpbHRlciBlYXNlO1xufVxuLmJsdXJyaW5nLmRpbW1lZC5kaW1tYWJsZSA+IDpub3QoLmRpbW1lcikge1xuICBmaWx0ZXI6IGJsdXIoNXB4KSBncmF5c2NhbGUoMC43KTtcbn1cbi8qIERpbW1lciBDb2xvciAqL1xuLmJsdXJyaW5nLmRpbW1hYmxlID4gLmRpbW1lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi5ibHVycmluZy5kaW1tYWJsZSA+IC5pbnZlcnRlZC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaW1tZXIgPiAudG9wLmFsaWduZWQuY29udGVudCA+ICoge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmRpbW1lciA+IC5ib3R0b20uYWxpZ25lZC5jb250ZW50ID4gKiB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgPiAuY29udGVudCA+ICoge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2ltcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzcGxheXMgd2l0aG91dCBqYXZhc2NyaXB0ICovXG4udWkuc2ltcGxlLmRpbW1lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMCU7XG4gIHotaW5kZXg6IC0xMDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLnNpbXBsZS5kaW1tZXIge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgei1pbmRleDogMTtcbn1cbi51aS5zaW1wbGUuaW52ZXJ0ZWQuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbn1cbi5kaW1tZWQuZGltbWFibGUgPiAudWkuc2ltcGxlLmludmVydGVkLmRpbW1lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBEcm9wZG93blxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERyb3Bkb3duXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogQ3VycmVudCBUZXh0ICovXG4vKiBNZW51ICovXG4vKiBUZXh0ICovXG4vKiBNZW51IEl0ZW0gKi9cbi8qIFN1YiBNZW51ICovXG4vKiBNZW51IEhlYWRlciAqL1xuLyogTWVudSBEaXZpZGVyICovXG4vKiBNZW51IElucHV0ICovXG4vKiBNZW51IEltYWdlICovXG4vKiBJdGVtIFN1Yi1FbGVtZW50ICovXG4vKiBTdWItTWVudSBEcm9wZG93biBJY29uICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogTWVzc2FnZSAqL1xuLyogRmxvYXRlZCBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tXG4gICBTZWxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tKi9cbi8qIDxzZWxlY3Q+ICovXG4vKiBSZXNwb25zaXZlICovXG4vKiBEZXJpdmVkICovXG4vKiAxcHggLyBlbSBzaXplICovXG4vKiBIb3ZlciAqL1xuLyogRm9jdXMgKi9cbi8qIFZpc2libGUgKi9cbi8qIFZpc2libGUgSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2VhcmNoXG4tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWFyY2ggU2VsZWN0aW9uICovXG4vKiBJbmxpbmUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNdWx0aXBsZVxuLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BsaXQgQWN0dWFsIFBhZGRpbmcgQmV0d2VlbiBDaGlsZCBhbmQgUGFyZW50IChhbGxvd3MgZm9yIGxhYmVsIHNwYWNpbmcpICovXG4vKiBDaGlsZCBFbGVtZW50cyAqL1xuLyogRHJvcGRvd24gSWNvbiAqL1xuLyogU2VsZWN0aW9uIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyZWQgKi9cbi8qIERlZmF1bHQgVGV4dCAqL1xuLyogTG9hZGluZyAqL1xuLyogQWN0aXZlIE1lbnUgSXRlbSAqL1xuLyogU2VsZWN0ZWQgKi9cbi8qIEVycm9yICovXG4vKiBDbGVhcmFibGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2Nyb2xsaW5nICovXG4vKiAwcHggLyBlbSBzaXplICovXG4vKiBVcHdhcmQgKi9cbi8qIEZseW91dCBEaXJlY3Rpb24gKi9cbi8qIExlZnQgKi9cbi8qIFNpbXBsZSAqL1xuLyogRmxvYXRpbmcgKi9cbi8qIFBvaW50aW5nICovXG4vKiBQb2ludGluZyBVcHdhcmQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEcm9wZG93blxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5kcm9wZG93biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLCB3aWR0aCAwLjFzIGVhc2U7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biAubWVudSB7XG4gIGN1cnNvcjogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICB0b3A6IDEwMCU7XG4gIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW0gMGVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBmb250LXNpemU6IDFlbTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbiAgei1pbmRleDogMTE7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAqIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgSGlkZGVuIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gaW5wdXQ6bm90KC5zZWFyY2gpOmZpcnN0LWNoaWxkLFxuLnVpLmRyb3Bkb3duID4gc2VsZWN0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuIERyb3Bkb3duIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIC5kcm9wZG93bi5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSAuZHJvcGRvd24uaWNvbiArIC50ZXh0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBUZXh0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLnRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTWVudSBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXItdG9wOiBub25lO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgcGFkZGluZzogMC43ODU3MTQyOXJlbSAxLjE0Mjg1NzE0cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBGbG9hdGVkIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDFlbSAhaW1wb3J0YW50O1xufVxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW0gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IC5pY29uLmZsb2F0ZWQsXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiAuZmxhZy5mbG9hdGVkLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gLmltYWdlLmZsb2F0ZWQsXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiBpbWcuZmxvYXRlZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgTWVudSBEaXZpZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmhlYWRlciB7XG4gIG1hcmdpbjogMXJlbSAwcmVtIDAuNzVyZW07XG4gIHBhZGRpbmc6IDBlbSAxLjE0Mjg1NzE0cmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmRpdmlkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICBoZWlnaHQ6IDBlbTtcbiAgbWFyZ2luOiAwLjVlbSAwZW07XG59XG4udWkuZHJvcGRvd24uZHJvcGRvd24gLm1lbnUgPiAuaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxLjE0Mjg1NzE0cmVtIDAuNzg1NzE0MjlyZW07XG4gIG1pbi13aWR0aDogMTByZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaGVhZGVyICsgLmlucHV0IHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0Om5vdCgudHJhbnNwYXJlbnQpIGlucHV0IHtcbiAgcGFkZGluZzogMC41ZW0gMWVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0Om5vdCgudHJhbnNwYXJlbnQpIC5idXR0b24sXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaW5wdXQ6bm90KC50cmFuc3BhcmVudCkgLmljb24sXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaW5wdXQ6bm90KC50cmFuc3BhcmVudCkgLmxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDAuNWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tXG4gIEl0ZW0gRGVzY3JpcHRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuZGVzY3JpcHRpb24sXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5kZXNjcmlwdGlvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTWVzc2FnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gLm1lbnUgPiAubWVzc2FnZSB7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjlyZW0gMS4xNDI4NTcxNHJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdWIgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biAubWVudSAubWVudSB7XG4gIHRvcDogMCUgIWltcG9ydGFudDtcbiAgbGVmdDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTAuNWVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gIWltcG9ydGFudDtcbiAgei1pbmRleDogMjEgIWltcG9ydGFudDtcbn1cbi8qIEhpZGUgQXJyb3cgKi9cbi51aS5kcm9wZG93biAubWVudSAubWVudTphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTdWIgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29ucyAvIEZsYWdzIC8gTGFiZWxzIC8gSW1hZ2UgKi9cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmljb24sXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5sYWJlbCxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmZsYWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IGltZyxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmltYWdlIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuaWNvbixcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmxhYmVsLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuZmxhZyxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiBpbWcge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pY29uLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAubGFiZWwsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5mbGFnLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBpbWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmljb24sXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5sYWJlbCxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmZsYWcsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gaW1nIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMC43ODU3MTQyOXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IGltZyxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmltYWdlLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNWVtO1xuICBtYXgtaGVpZ2h0OiAyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVtb3ZlIE1lbnUgSXRlbSBEaXZpZGVyICovXG4udWkuZHJvcGRvd24gLnVpLm1lbnUgPiAuaXRlbTpiZWZvcmUsXG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogUHJldmVudCBNZW51IEl0ZW0gQm9yZGVyICovXG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4vKiBBdXRvbWF0aWNhbGx5IGZsb2F0IGRyb3Bkb3duIG1lbnUgcmlnaHQgb24gbGFzdCBtZW51IGl0ZW0gKi9cbi51aS5tZW51IC5yaWdodC5tZW51IC5kcm9wZG93bjpsYXN0LWNoaWxkIC5tZW51LFxuLnVpLm1lbnUgLnJpZ2h0LmRyb3Bkb3duLml0ZW0gLm1lbnUsXG4udWkuYnV0dG9ucyA+IC51aS5kcm9wZG93bjpsYXN0LWNoaWxkIC5tZW51IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRHJvcGRvd24gTWVudSAqL1xuLnVpLmxhYmVsLmRyb3Bkb3duIC5tZW51IHtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCdXR0b25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBObyBNYXJnaW4gT24gSWNvbiBCdXR0b24gKi9cbi51aS5kcm9wZG93bi5pY29uLmJ1dHRvbiA+IC5kcm9wZG93bi5pY29uIHtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkuYnV0dG9uLmRyb3Bkb3duIC5tZW51IHtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU2VsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzcGxheXMgbGlrZSBhIHNlbGVjdCBib3ggKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3V0bGluZTogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xuICBtaW4td2lkdGg6IDE0ZW07XG4gIG1pbi1oZWlnaHQ6IDIuNzE0Mjg1NzFlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5ZW0gMi4xZW0gMC43ODU3MTQyOWVtIDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLCB3aWR0aCAwLjFzIGVhc2U7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLnZpc2libGUsXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLmFjdGl2ZSB7XG4gIHotaW5kZXg6IDEwO1xufVxuc2VsZWN0LnVpLmRyb3Bkb3duIHtcbiAgaGVpZ2h0OiAzOHB4O1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuc2VhcmNoLmljb24sXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRlbGV0ZS5pY29uLFxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG4gIHRvcDogMC43ODU3MTQyOWVtO1xuICByaWdodDogMWVtO1xuICB6LWluZGV4OiAzO1xuICBtYXJnaW46IC0wLjc4NTcxNDI5ZW07XG4gIHBhZGRpbmc6IDAuOTE2NjY2NjdlbTtcbiAgb3BhY2l0eTogMC44O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi8qIENvbXBhY3QgKi9cbi51aS5jb21wYWN0LnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIG1pbi13aWR0aDogMHB4O1xufVxuLyogIFNlbGVjdGlvbiBNZW51ICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBvdXRsaW5lOiBub25lO1xuICBtYXJnaW46IDBweCAtMXB4O1xuICBtaW4td2lkdGg6IGNhbGMoMTAwJSArICAycHggKTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArICAycHggKTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW07XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnU6YWZ0ZXIsXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTWVzc2FnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUgPiAubWVzc2FnZSB7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjlyZW0gMS4xNDI4NTcxNHJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogOC4wMTQyODU3MXJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAxMC42ODU3MTQyOXJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiA1NzVweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogNTc1cHg7XG4gIH1cbn1cbi8qIE1lbnUgSXRlbSAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGQUZBRkE7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjlyZW0gMS4xNDI4NTcxNHJlbSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbi8qIFVzZXIgSXRlbSAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSA+IC5oaWRkZW4uYWRkaXRpb24uaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlbGVjdGlvbi5hY3RpdmUuZHJvcGRvd24ge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNlbGVjdGlvbi5hY3RpdmUuZHJvcGRvd24gLm1lbnUge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogRm9jdXMgKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd246Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duOmZvY3VzIC5tZW51IHtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFZpc2libGUgKi9cbi51aS5zZWxlY3Rpb24udmlzaWJsZS5kcm9wZG93biA+IC50ZXh0Om5vdCguZGVmYXVsdCkge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogVmlzaWJsZSBIb3ZlciAqL1xuLnVpLnNlbGVjdGlvbi5hY3RpdmUuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnNlbGVjdGlvbi5hY3RpdmUuZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBib3JkZXItY29sb3I6ICM5NkM4REE7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogRHJvcGRvd24gSWNvbiAqL1xuLnVpLmFjdGl2ZS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbixcbi51aS52aXNpYmxlLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgb3BhY2l0eTogJyc7XG4gIHotaW5kZXg6IDM7XG59XG4vKiBDb25uZWN0aW5nIEJvcmRlciAqL1xuLnVpLmFjdGl2ZS5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xufVxuLyogRW1wdHkgQ29ubmVjdGluZyBCb3JkZXIgKi9cbi51aS5hY3RpdmUuZW1wdHkuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkuYWN0aXZlLmVtcHR5LnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTZWFyY2hhYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VhcmNoIFNlbGVjdGlvbiAqL1xuLnVpLnNlYXJjaC5kcm9wZG93biB7XG4gIG1pbi13aWR0aDogJyc7XG59XG4vKiBTZWFyY2ggRHJvcGRvd24gKi9cbi51aS5zZWFyY2guZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogdGV4dDtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDFweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgcGFkZGluZzogaW5oZXJpdDtcbn1cbi8qIFRleHQgTGF5ZXJpbmcgKi9cbi51aS5zZWFyY2guZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG59XG4udWkuc2VhcmNoLmRyb3Bkb3duID4gLnRleHQge1xuICBjdXJzb3I6IHRleHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMXB4O1xuICB6LWluZGV4OiAzO1xufVxuLyogU2VhcmNoIFNlbGVjdGlvbiAqL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24uZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBwYWRkaW5nOiAwLjY3ODU3MTQzZW0gMi4xZW0gMC42Nzg1NzE0M2VtIDFlbTtcbn1cbi8qIFVzZWQgdG8gc2l6ZSBtdWx0aSBzZWxlY3QgaW5wdXQgdG8gY2hhcmFjdGVyIHdpZHRoICovXG4udWkuc2VhcmNoLnNlbGVjdGlvbi5kcm9wZG93biA+IHNwYW4uc2l6ZXIge1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBwYWRkaW5nOiAwLjY3ODU3MTQzZW0gMi4xZW0gMC42Nzg1NzE0M2VtIDFlbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbn1cbi8qIEFjdGl2ZS9WaXNpYmxlIFNlYXJjaCAqL1xuLnVpLnNlYXJjaC5kcm9wZG93bi5hY3RpdmUgPiBpbnB1dC5zZWFyY2gsXG4udWkuc2VhcmNoLmRyb3Bkb3duLnZpc2libGUgPiBpbnB1dC5zZWFyY2gge1xuICBjdXJzb3I6IGF1dG87XG59XG4udWkuc2VhcmNoLmRyb3Bkb3duLmFjdGl2ZSA+IC50ZXh0LFxuLnVpLnNlYXJjaC5kcm9wZG93bi52aXNpYmxlID4gLnRleHQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi8qIEZpbHRlcmVkIFRleHQgKi9cbi51aS5hY3RpdmUuc2VhcmNoLmRyb3Bkb3duIGlucHV0LnNlYXJjaDpmb2N1cyArIC50ZXh0IC5pY29uLFxuLnVpLmFjdGl2ZS5zZWFyY2guZHJvcGRvd24gaW5wdXQuc2VhcmNoOmZvY3VzICsgLnRleHQgLmZsYWcge1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLnVpLmFjdGl2ZS5zZWFyY2guZHJvcGRvd24gaW5wdXQuc2VhcmNoOmZvY3VzICsgLnRleHQge1xuICBjb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjg3KSAhaW1wb3J0YW50O1xufVxuLyogU2VhcmNoIE1lbnUgKi9cbi51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiA4LjAxNDI4NTcxcmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDEwLjY4NTcxNDI5cmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDU3NXB4O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAudWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiA1NzVweDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIE11bHRpcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTXVsdGlwbGUgU2VsZWN0aW9uICovXG4udWkubXVsdGlwbGUuZHJvcGRvd24ge1xuICBwYWRkaW5nOiAwLjIyNjE5MDQ4ZW0gMi4xZW0gMC4yMjYxOTA0OGVtIDAuMzU3MTQyODZlbTtcbn1cbi51aS5tdWx0aXBsZS5kcm9wZG93biAubWVudSB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi8qIE11bHRpcGxlIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24sXG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgY3Vyc29yOiB0ZXh0O1xufVxuLyogU2VsZWN0aW9uIExhYmVsICovXG4udWkubXVsdGlwbGUuZHJvcGRvd24gPiAubGFiZWwge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZzogMC4zNTcxNDI4NmVtIDAuNzg1NzE0MjllbTtcbiAgbWFyZ2luOiAwLjE0Mjg1NzE0cmVtIDAuMjg1NzE0MjlyZW0gMC4xNDI4NTcxNHJlbSAwZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLyogRHJvcGRvd24gSWNvbiAqL1xuLnVpLm11bHRpcGxlLmRyb3Bkb3duIC5kcm9wZG93bi5pY29uIHtcbiAgbWFyZ2luOiAnJztcbiAgcGFkZGluZzogJyc7XG59XG4vKiBUZXh0ICovXG4udWkubXVsdGlwbGUuZHJvcGRvd24gPiAudGV4dCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwLjQ1MjM4MDk1ZW0gMGVtIDAuNDUyMzgwOTVlbSAwLjY0Mjg1NzE0ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG59XG4udWkubXVsdGlwbGUuZHJvcGRvd24gPiAubGFiZWwgfiBpbnB1dC5zZWFyY2gge1xuICBtYXJnaW4tbGVmdDogMC4xNDI4NTcxNGVtICFpbXBvcnRhbnQ7XG59XG4udWkubXVsdGlwbGUuZHJvcGRvd24gPiAubGFiZWwgfiAudGV4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tXG4gIE11bHRpcGxlIFNlYXJjaFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUHJvbXB0IFRleHQgKi9cbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24gPiAudGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHBhZGRpbmc6IGluaGVyaXQ7XG4gIG1hcmdpbjogMC40NTIzODA5NWVtIDBlbSAwLjQ1MjM4MDk1ZW0gMC42NDI4NTcxNGVtO1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xufVxuLnVpLm11bHRpcGxlLnNlYXJjaC5kcm9wZG93biA+IC5sYWJlbCB+IC50ZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIFNlYXJjaCAqL1xuLnVpLm11bHRpcGxlLnNlYXJjaC5kcm9wZG93biA+IGlucHV0LnNlYXJjaCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwLjQ1MjM4MDk1ZW0gMGVtIDAuNDUyMzgwOTVlbSAwLjY0Mjg1NzE0ZW07XG4gIHdpZHRoOiAyLjJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW5saW5lXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlubGluZS5kcm9wZG93biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi51aS5pbmxpbmUuZHJvcGRvd24gLmRyb3Bkb3duLmljb24ge1xuICBtYXJnaW46IDBlbSAwLjIxNDI4NTcxZW0gMGVtIDAuMjE0Mjg1NzFlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLnVpLmlubGluZS5kcm9wZG93biA+IC50ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkuaW5saW5lLmRyb3Bkb3duIC5tZW51IHtcbiAgY3Vyc29yOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwLjIxNDI4NTcxZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSBJdGVtIEFjdGl2ZSAqL1xuLnVpLmRyb3Bkb3duIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHotaW5kZXg6IDEyO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNZW51IEl0ZW0gSG92ZXIgKi9cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIHotaW5kZXg6IDEzO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5kcm9wZG93biA+IGkuaWNvbiB7XG4gIGhlaWdodDogMWVtICFpbXBvcnRhbnQ7XG59XG4udWkubG9hZGluZy5zZWxlY3Rpb24uZHJvcGRvd24gPiBpLmljb24ge1xuICBwYWRkaW5nOiAxLjVlbSAxLjI4NTcxNDI5ZW0gIWltcG9ydGFudDtcbn1cbi51aS5sb2FkaW5nLmRyb3Bkb3duID4gaS5pY29uOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjQyODU3MTRlbSAwZW0gMGVtIC0wLjY0Mjg1NzE0ZW07XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIGhlaWdodDogMS4yODU3MTQyOWVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiBpLmljb246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbjogLTAuNjQyODU3MTRlbSAwZW0gMGVtIC0wLjY0Mjg1NzE0ZW07XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIGhlaWdodDogMS4yODU3MTQyOWVtO1xuICBhbmltYXRpb246IGRyb3Bkb3duLXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbn1cbi8qIENvdXBsaW5nICovXG4udWkubG9hZGluZy5kcm9wZG93bi5idXR0b24gPiBpLmljb246YmVmb3JlLFxuLnVpLmxvYWRpbmcuZHJvcGRvd24uYnV0dG9uID4gaS5pY29uOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBrZXlmcmFtZXMgZHJvcGRvd24tc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIERlZmF1bHQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd246bm90KC5idXR0b24pID4gLmRlZmF1bHQudGV4dCxcbi51aS5kZWZhdWx0LmRyb3Bkb3duOm5vdCguYnV0dG9uKSA+IC50ZXh0IHtcbiAgY29sb3I6IHJnYmEoMTkxLCAxOTEsIDE5MSwgMC44Nyk7XG59XG4udWkuZHJvcGRvd246bm90KC5idXR0b24pID4gaW5wdXQ6Zm9jdXMgfiAuZGVmYXVsdC50ZXh0LFxuLnVpLmRlZmF1bHQuZHJvcGRvd246bm90KC5idXR0b24pID4gaW5wdXQ6Zm9jdXMgfiAudGV4dCB7XG4gIGNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuODcpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLmRyb3Bkb3duID4gLnRleHQge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLyogVXNlZCBUbyBDaGVjayBQb3NpdGlvbiAqL1xuLnVpLmRyb3Bkb3duIC5sb2FkaW5nLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAtMTtcbn1cbi51aS5kcm9wZG93biA+IC5sb2FkaW5nLm1lbnUge1xuICBsZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biA+IC5tZW51IC5sb2FkaW5nLm1lbnUge1xuICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgS2V5Ym9hcmQgU2VsZWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlbGVjdGVkIEl0ZW0gKi9cbi51aS5kcm9wZG93bi5zZWxlY3RlZCxcbi51aS5kcm9wZG93biAubWVudSAuc2VsZWN0ZWQuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNlYXJjaCBGaWx0ZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGaWx0ZXJlZCBJdGVtICovXG4udWkuZHJvcGRvd24gPiAuZmlsdGVyZWQudGV4dCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5kcm9wZG93biAuZmlsdGVyZWQuaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duLmVycm9yLFxuLnVpLmRyb3Bkb3duLmVycm9yID4gLnRleHQsXG4udWkuZHJvcGRvd24uZXJyb3IgPiAuZGVmYXVsdC50ZXh0IHtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLmVycm9yIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNjtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93bi5lcnJvcjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi51aS5kcm9wZG93bi5lcnJvciA+IC5tZW51LFxuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgLm1lbnUge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4udWkuZHJvcGRvd24uZXJyb3IgPiAubWVudSA+IC5pdGVtIHtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkubXVsdGlwbGUuc2VsZWN0aW9uLmVycm9yLmRyb3Bkb3duID4gLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLyogSXRlbSBIb3ZlciAqL1xuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkYyRjI7XG59XG4vKiBJdGVtIEFjdGl2ZSAqL1xuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZEQ0ZDRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQ2xlYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLmNsZWFyLmRyb3Bkb3duLmljb24ge1xuICBvcGFjaXR5OiAwLjg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLnVpLmRyb3Bkb3duID4gLmNsZWFyLmRyb3Bkb3duLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaXNhYmxlZCAqL1xuLnVpLmRpc2FibGVkLmRyb3Bkb3duLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmRpc2FibGVkLml0ZW0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXJlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbHlvdXQgRGlyZWN0aW9uICovXG4udWkuZHJvcGRvd24gLm1lbnUge1xuICBsZWZ0OiAwcHg7XG59XG4vKiBEZWZhdWx0IFNpZGUgKFJpZ2h0KSAqL1xuLnVpLmRyb3Bkb3duIC5yaWdodC5tZW51ID4gLm1lbnUsXG4udWkuZHJvcGRvd24gLm1lbnUgLnJpZ2h0Lm1lbnUge1xuICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gIWltcG9ydGFudDtcbn1cbi8qIExlZnR3YXJkIE9wZW5pbmcgTWVudSAqL1xuLnVpLmRyb3Bkb3duID4gLmxlZnQubWVudSB7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xufVxuLnVpLmRyb3Bkb3duID4gLmxlZnQubWVudSAubWVudSxcbi51aS5kcm9wZG93biAubWVudSAubGVmdC5tZW51IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMGVtIC0wLjVlbSAwZW0gMGVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biAuaXRlbSAubGVmdC5kcm9wZG93bi5pY29uLFxuLnVpLmRyb3Bkb3duIC5sZWZ0Lm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLmRyb3Bkb3duIC5pdGVtIC5sZWZ0LmRyb3Bkb3duLmljb24sXG4udWkuZHJvcGRvd24gLmxlZnQubWVudSAuaXRlbSAuZHJvcGRvd24uaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG59XG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbiArIC50ZXh0LFxuLnVpLmRyb3Bkb3duIC5sZWZ0Lm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb24gKyAudGV4dCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBVcHdhcmRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBVcHdhcmQgTWFpbiBNZW51ICovXG4udWkudXB3YXJkLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW0gMGVtO1xufVxuLyogVXB3YXJkIFN1YiBNZW51ICovXG4udWkuZHJvcGRvd24gLnVwd2FyZC5tZW51IHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuLyogQWN0aXZlIFVwd2FyZCAqL1xuLnVpLnNpbXBsZS51cHdhcmQuYWN0aXZlLmRyb3Bkb3duLFxuLnVpLnNpbXBsZS51cHdhcmQuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLnVwd2FyZC5kcm9wZG93bi5idXR0b246bm90KC5wb2ludGluZyk6bm90KC5mbG9hdGluZykuYWN0aXZlIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4vKiBTZWxlY3Rpb24gKi9cbi51aS51cHdhcmQuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggLTJweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG4udWkudXB3YXJkLnNlbGVjdGlvbi5kcm9wZG93bjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLyogQWN0aXZlIFVwd2FyZCAqL1xuLnVpLmFjdGl2ZS51cHdhcmQuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gIWltcG9ydGFudDtcbn1cbi8qIFZpc2libGUgVXB3YXJkICovXG4udWkudXB3YXJkLnNlbGVjdGlvbi5kcm9wZG93bi52aXNpYmxlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtICFpbXBvcnRhbnQ7XG59XG4vKiBWaXNpYmxlIEhvdmVyIFVwd2FyZCAqL1xuLnVpLnVwd2FyZC5hY3RpdmUuc2VsZWN0aW9uLmRyb3Bkb3duOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4udWkudXB3YXJkLmFjdGl2ZS5zZWxlY3Rpb24uZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBib3gtc2hhZG93OiAwcHggLTJweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpbXBsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qICBTZWxlY3Rpb24gTWVudSAqL1xuLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbi51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4udWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgbWluLXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG59XG4udWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUgLml0ZW0uaXRlbS5pdGVtLFxuLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSA+IC5pdGVtLml0ZW0uaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuZHJvcGRvd24gPiAuYW5pbWF0aW5nLm1lbnUgLnNjcm9sbGluZy5tZW51LFxuLnVpLmRyb3Bkb3duID4gLnZpc2libGUubWVudSAuc2Nyb2xsaW5nLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIFNjcm9sbGJhciBpbiBJRSAqL1xuQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XG4gIC51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4gIC51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICAgIG1pbi13aWR0aDogY2FsYygxMDAlIC0gMTdweCk7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTAuMjg1NzE0MjlyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTUuNDI4NTcxNDNyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogMjAuNTcxNDI4NTdyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4gIC51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDIwLjU3MTQyODU3cmVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpbXBsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpc3BsYXlzIHdpdGhvdXQgamF2YXNjcmlwdCAqL1xuLnVpLnNpbXBsZS5kcm9wZG93biAubWVudTpiZWZvcmUsXG4udWkuc2ltcGxlLmRyb3Bkb3duIC5tZW51OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5zaW1wbGUuZHJvcGRvd24gLm1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0b3A6IC05OTk5cHggIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkuc2ltcGxlLmFjdGl2ZS5kcm9wZG93bixcbi51aS5zaW1wbGUuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLnNpbXBsZS5hY3RpdmUuZHJvcGRvd24gPiAubWVudSxcbi51aS5zaW1wbGUuZHJvcGRvd246aG92ZXIgPiAubWVudSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0b3A6IDEwMCUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5zaW1wbGUuZHJvcGRvd24gPiAubWVudSA+IC5pdGVtOmFjdGl2ZSA+IC5tZW51LFxuLnVpLnNpbXBsZS5kcm9wZG93bjpob3ZlciA+IC5tZW51ID4gLml0ZW06aG92ZXIgPiAubWVudSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0b3A6IDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDEwMCUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cbi51aS5zaW1wbGUuZGlzYWJsZWQuZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDBweDtcbiAgd2lkdGg6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi8qIFZpc2libGUgKi9cbi51aS5zaW1wbGUudmlzaWJsZS5kcm9wZG93biA+IC5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5kcm9wZG93biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwZW07XG59XG4udWkuZmx1aWQuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGbG9hdGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGluZy5kcm9wZG93biAubWVudSB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gIWltcG9ydGFudDtcbn1cbi51aS5mbG9hdGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgbWFyZ2luLXRvcDogMC41ZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQb2ludGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwLjc4NTcxNDI5cmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogJyc7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgd2lkdGg6IDAuNWVtO1xuICBoZWlnaHQ6IDAuNWVtO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICB6LWluZGV4OiAyO1xufVxuLnVpLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IC0wLjI1ZW07XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMC4yNWVtO1xufVxuLyogVG9wIExlZnQgUG9pbnRpbmcgKi9cbi51aS50b3AubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAxZW0gMGVtIDBlbTtcbn1cbi51aS50b3AubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAxZW0gMGVtIDBlbTtcbn1cbi51aS50b3AubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiAtMC4yNWVtO1xuICBsZWZ0OiAxZW07XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuLyogVG9wIFJpZ2h0IFBvaW50aW5nICovXG4udWkudG9wLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IDAlO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuLnVpLnRvcC5wb2ludGluZy5kcm9wZG93biA+IC5sZWZ0Lm1lbnU6YWZ0ZXIsXG4udWkudG9wLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IC0wLjI1ZW07XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgcmlnaHQ6IDFlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuLyogTGVmdCBQb2ludGluZyAqL1xuLnVpLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IDFlbTtcbiAgbGVmdDogLTAuMjVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG4udWkubGVmdDpub3QoLnRvcCk6bm90KC5ib3R0b20pLnBvaW50aW5nLmRyb3Bkb3duID4gLmxlZnQubWVudSB7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG59XG4udWkubGVmdDpub3QoLnRvcCk6bm90KC5ib3R0b20pLnBvaW50aW5nLmRyb3Bkb3duID4gLmxlZnQubWVudTphZnRlciB7XG4gIHRvcDogMWVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTAuMjVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG4vKiBSaWdodCBQb2ludGluZyAqL1xuLnVpLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDAlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG59XG4udWkucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogMWVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTAuMjVlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG4vKiBCb3R0b20gUG9pbnRpbmcgKi9cbi51aS5ib3R0b20ucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkuYm90dG9tLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogLTAuMjVlbTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbi8qIFJldmVyc2UgU3ViLU1lbnUgRGlyZWN0aW9uICovXG4udWkuYm90dG9tLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUgLm1lbnUge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwcHggIWltcG9ydGFudDtcbn1cbi8qIEJvdHRvbSBMZWZ0ICovXG4udWkuYm90dG9tLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbn1cbi51aS5ib3R0b20ubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgbGVmdDogMWVtO1xuICByaWdodDogYXV0bztcbn1cbi8qIEJvdHRvbSBSaWdodCAqL1xuLnVpLmJvdHRvbS5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgcmlnaHQ6IDAlO1xuICBsZWZ0OiBhdXRvO1xufVxuLnVpLmJvdHRvbS5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDFlbTtcbn1cbi8qIFVwd2FyZCBwb2ludGluZyAqL1xuLnVpLnBvaW50aW5nLnVwd2FyZC5kcm9wZG93biAubWVudSxcbi51aS50b3AucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duIC5tZW51IHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAwZW0gMC43ODU3MTQyOXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbn1cbi51aS5wb2ludGluZy51cHdhcmQuZHJvcGRvd24gLm1lbnU6YWZ0ZXIsXG4udWkudG9wLnBvaW50aW5nLnVwd2FyZC5kcm9wZG93biAubWVudTphZnRlciB7XG4gIHRvcDogMTAwJSAhaW1wb3J0YW50O1xuICBib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogLTAuMjVlbSAwZW0gMGVtO1xufVxuLyogUmlnaHQgUG9pbnRpbmcgVXB3YXJkICovXG4udWkucmlnaHQucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duOm5vdCgudG9wKTpub3QoLmJvdHRvbSkgLm1lbnUge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIDFlbSAwZW0gMGVtO1xufVxuLnVpLnJpZ2h0LnBvaW50aW5nLnVwd2FyZC5kcm9wZG93bjpub3QoLnRvcCk6bm90KC5ib3R0b20pIC5tZW51OmFmdGVyIHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAwZW0gMWVtIDBlbTtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIExlZnQgUG9pbnRpbmcgVXB3YXJkICovXG4udWkubGVmdC5wb2ludGluZy51cHdhcmQuZHJvcGRvd246bm90KC50b3ApOm5vdCguYm90dG9tKSAubWVudSB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4udWkubGVmdC5wb2ludGluZy51cHdhcmQuZHJvcGRvd246bm90KC50b3ApOm5vdCguYm90dG9tKSAubWVudTphZnRlciB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbSAwZW07XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIERyb3Bkb3duIENhcmV0cyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRHJvcGRvd24nO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBQVZnQUE4QUFBQUFDRkFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBQldBQUFBQndBQUFBY2hHZ2FxMGRFUlVZQUFBRjBBQUFBSEFBQUFCNEFKd0FQVDFNdk1nQUFBWkFBQUFCREFBQUFWblc0VEpkamJXRndBQUFCMUFBQUFFc0FBQUZTOENjYXFtTjJkQ0FBQUFJZ0FBQUFCQUFBQUFRQUVRRkVaMkZ6Y0FBQUFpUUFBQUFJQUFBQUNQLy9BQU5uYkhsbUFBQUNMQUFBQVFvQUFBR2tyUkhQOVdobFlXUUFBQU00QUFBQU1BQUFBRFlQSzhZeWFHaGxZUUFBQTJnQUFBQWRBQUFBSkFOQ0FiMW9iWFI0QUFBRGlBQUFBQ0lBQUFBaUNCa0FPR3h2WTJFQUFBT3NBQUFBRkFBQUFCUUJuQUl5YldGNGNBQUFBOEFBQUFBZkFBQUFJQUVWQUY1dVlXMWxBQUFENEFBQUFUQUFBQUtNRkdsajVIQnZjM1FBQUFVUUFBQUFSZ0FBQUhKb2VkanFkMlZpWmdBQUJWZ0FBQUFHQUFBQUJyTzdXNVVBQUFBQkFBQUFBTlh1bFBVQUFBQUExcjRoZ0FBQUFBRFh1MlExZU5wallHUmdZT0FCWWpFZ1ptSmdCRUlPSUdZQjh4Z0FBL1lBTjNqYVkyQmt0R09jd01ES3dNSTRqVEdOZ1lIQkhVcC9aWkJrYUdGZ1lHSmdaV2JBQ2dMU1hGTVlIRlQvZkxqRmVPRC9BUVk5eGpNTWJrQmhScEFjQU40OERRWUFlTnBqWUdCZ1pvQmdHUVpHQmhEd0FmSVl3WHdXQmdNZ3pRR0VUQXdNcW44KzhINjQ5ZjgvbEhYOS8vOWI3UHpmK2ZXZ3VzQ0FrWTBCem1VRTZnSHBRd0dNRE1NZUFBQ2J4ZzdTQUFBUkFVUUFBQUFCLy84QUFuamFkWkJQU3NOQUdNWGZTK3lNcVlnT2hwU3VTbEthZG1VaGlWRWhFTVF6RkYyMm0xN0JiYnZ6Q2g1QlhDVW42RUc4Z2plUTREZXB3WW80aSsvZmZMOTVqNEVEQStDRkM3alF1S3lJZVZIckkzd2tsZXE5RjdYclNJbkt0ZU9lSGRkYThiT29hZWVwU2MwME5XUHovTFJlYzlHOEdhYnlHdEVkRjdoMTl6MDMzR0FNVEs3emJNNDJ4TkVacHpZb2YwUnRRNUNVSEFRSjczT3RWeXV0YyszYjdPdS8vYjhYTmxzUHgzamdqVWlmQUJkaEVvaEtKSkw1aU01cDM5dXFjN1gxK3NSUVNxbUdyVVZobHNKNGxwbUVVVnd5VDhTVVl0ZzBQOUR5TnpQQUREcyt0anJHVjZLUkNSZnN1aTNlSGNMNC9wOFpYdmZNbGNuRVUrQ0x2N2hEeWtPUCtBS1RQVHhiQUFCNDJtTmdaR0JnQUdLdWY1S1A0dmx0dmpMSU16R0F3TFY5aWcwZyt2cnVGRk1RemRqQUNPSnpNSUNsQVJoMENUSjQybU5nWkdCZ1BQRC9BSkQ4d2dBRWpBME1qQXlvZ0FNQWJPUUVBUUFBQUFDN0FCRUFBQUFBQUtvQUFBSDBBQUFCZ0FBQUFVQUFDQUZBQUFnQXdBQVhBQUFBQUFBQUFDb0FLZ0FxQURJQWJBQ0dBS0FBdWdEU2VOcGpZR1JnWU9Ca1VHRmdZZ0FCRU1rRmhBd00veG4wUUFJQURkVUJkQUI0MnFXUXZVb0RRUlNGdjNHamFJU1VRYXltU21HeEpvR0FzUkMwaVBZTHNVNTBZNkl4cnZsUnRQQ0pKS1VQSUJiK1BJSHY0RU40ZGpLdUtBcUNESGZtdStmZU9kd1pvTUNVQUpOYkFsWVVNemFVbE0xNGpqeGJuZ09xN0huT2lhODl6MVBrMXZNQ2E5eDd6dFBremZNeUpiUGorWkdpNlhwK29teHVQRCt6YUQ3bWVhRmc3bWI4R3JCcUhtaHd4b0F4bG0wdWlSa3BQOVg1bTI2cEtSb014VEdSMUQ0OUR2L1liLzkxbzZsOHFMNmV1NW4yaFpRem42OHV0UjltM0ZVMmNCNHQ5Y2RTTEcydXRJKzQ0RWgvUDlicUtPK29KL1d4bVhzc2o3N1lrcmphc1pRRDZTRmRkeXRoazNXdHpyZitVRjJwMDc2VWRsYTFWTnpzRVJQM2tralZSS2VsN21wMXVkWFljSHRaU2xWN1JmbUplMUdpRld2ZWx1YWVLRDUvTXVKY1NrOFRwbS92dndQSWJtSmxlTnBqWUdLQUFGWUc3SUNUZ1lHUmlaR1prWVdSbFpHTmtaMlJnNUdUTFQybnNpRERFRUlac1pmbVpScVp1am1EYURjREF4Y0k3V0lPcFMyZ3RDV1VkZ1FBWmtjU21RQUFBQUZibGJPNkFBQT0pIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udWkuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZvbnQtZmFtaWx5OiAnRHJvcGRvd24nO1xuICBsaW5lLWhlaWdodDogMTtcbiAgaGVpZ2h0OiAxZW07XG4gIHdpZHRoOiAxLjIzZW07XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnVpLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjBkNyc7XG59XG4vKiBTdWIgTWVudSAqL1xuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwZGEnIC8qcnRsOidcXGYwZDknKi87XG59XG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbjpiZWZvcmUsXG4udWkuZHJvcGRvd24gLmxlZnQubWVudSAuaXRlbSAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOVwiIC8qcnRsOlwiXFxmMGRhXCIqLztcbn1cbi8qIFZlcnRpY2FsIE1lbnUgRHJvcGRvd24gKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtID4gLmRyb3Bkb3duLmljb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGFcIiAvKnJ0bDpcIlxcZjBkOVwiKi87XG59XG4udWkuZHJvcGRvd24gPiAuY2xlYXIuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuLnVpLmRyb3Bkb3duLnNoYXJlLWxpbmstZHJvcGRvd24ge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuLyogSWNvbnMgZm9yIFJlZmVyZW5jZSAoU3Vic2V0dGVkIGluIDIuNC4wKVxuICAuZHJvcGRvd24uZG93bjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkN1wiOyB9XG4gIC5kcm9wZG93bi51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkOFwiOyB9XG4gIC5kcm9wZG93bi5sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGQ5XCI7IH1cbiAgLmRyb3Bkb3duLnJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGRhXCI7IH1cbiAgLmRyb3Bkb3duLmNsb3NlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDBkXCI7IH1cbiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBWaWRlb1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBWaWRlb1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpbXBsZSAqL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIFBsYWNlaG9sZGVyIE92ZXJsYXllZCBCYWNrZ3JvdW5kICovXG4vKiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFzcGVjdCBSYXRpb3MgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZW1iZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICNEQ0REREU7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tXG4gIEVtYmVkZGVkIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZW1iZWQgaWZyYW1lLFxuLnVpLmVtYmVkIGVtYmVkLFxuLnVpLmVtYmVkIG9iamVjdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRW1iZWRcbi0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZW1iZWQgPiAuZW1iZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZW1iZWQgPiAucGxhY2Vob2xkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCA0NSUsIHJnYmEoMCwgMCwgMCwgMC4zKSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmVtYmVkID4gLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMjtcbn1cbi51aS5lbWJlZCA+IC5pY29uOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMztcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCA0NSUsIHJnYmEoMCwgMCwgMCwgMC4zKSk7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2U7XG59XG4udWkuZW1iZWQgPiAuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiA2cmVtO1xuICB0ZXh0LXNoYWRvdzogMHB4IDJweCAxMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4yKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIGNvbG9yIDAuNXMgZWFzZTtcbiAgei1pbmRleDogMTA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5lbWJlZCAuaWNvbjpob3ZlcjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCh0cmFuc3BhcmVudCA0NSUsIHJnYmEoMCwgMCwgMCwgMC4zKSk7XG4gIG9wYWNpdHk6IDE7XG59XG4udWkuZW1iZWQgLmljb246aG92ZXI6YmVmb3JlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hY3RpdmUuZW1iZWQgPiAuaWNvbixcbi51aS5hY3RpdmUuZW1iZWQgPiAucGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLmFjdGl2ZS5lbWJlZCA+IC5lbWJlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnNxdWFyZS5lbWJlZCB7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xufVxuLnVpW2NsYXNzKj1cIjQ6M1wiXS5lbWJlZCB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG4udWlbY2xhc3MqPVwiMTY6OVwiXS5lbWJlZCB7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG59XG4udWlbY2xhc3MqPVwiMjE6OVwiXS5lbWJlZCB7XG4gIHBhZGRpbmctYm90dG9tOiA0Mi44NTcxNDI4NiU7XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBNb2RhbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNb2RhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIENsb3NlIEljb24gKi9cbi8qIEhlYWRlciAqL1xuLyogQ29udGVudCAqL1xuLyogSW1hZ2UgLyBEZXNjcmlwdGlvbiAqL1xuLyogTW9kYWwgQWN0aW9ucyAqL1xuLyogSW5uZXIgQ2xvc2UgUG9zaXRpb24gKFRhYmxldC9Nb2JpbGUpICovXG4vKiBNb2JpbGUgUG9zaXRpb25zICovXG4vKiBSZXNwb25zaXZlIFdpZHRocyAqL1xuLyogQ291cGxpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXNpYyAqL1xuLyogVG9wIEFsaWduZWQgKi9cbi8qIFNjcm9sbGluZyBNYXJnaW4gKi9cbi8qIFNjcm9sbGluZyBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpemUgV2lkdGhzICovXG4vKiBEZXJpdmVkIFJlc3BvbnNpdmUgU2l6ZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1vZGFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1vZGFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAxMDAxO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDFweCAzcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDFweCAzcHggMTVweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMjUlO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gIHdpbGwtY2hhbmdlOiB0b3AsIGxlZnQsIG1hcmdpbiwgdHJhbnNmb3JtLCBvcGFjaXR5O1xufVxuLnVpLm1vZGFsID4gOmZpcnN0LWNoaWxkOm5vdCguaWNvbiksXG4udWkubW9kYWwgPiAuaWNvbjpmaXJzdC1jaGlsZCArICoge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yODU3MTQyOXJlbTtcbn1cbi51aS5tb2RhbCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ2xvc2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwgPiAuY2xvc2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMi41cmVtO1xuICByaWdodDogLTIuNXJlbTtcbiAgei1pbmRleDogMTtcbiAgb3BhY2l0eTogMC44O1xuICBmb250LXNpemU6IDEuMjVlbTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHdpZHRoOiAyLjI1cmVtO1xuICBoZWlnaHQ6IDIuMjVyZW07XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDByZW0gMHJlbSAwcmVtO1xufVxuLnVpLm1vZGFsID4gLmNsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vZGFsID4gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vZGFsID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4udWkubW9kYWwgPiAuaW1hZ2UuY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG4vKiBJbWFnZSAqL1xuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAxIGF1dG87XG4gIHdpZHRoOiAnJztcbiAgYWxpZ24tc2VsZjogdG9wO1xufVxuLnVpLm1vZGFsID4gW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIHtcbiAgYWxpZ24tc2VsZjogdG9wO1xufVxuLnVpLm1vZGFsID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdIHtcbiAgYWxpZ24tc2VsZjogbWlkZGxlO1xufVxuLnVpLm1vZGFsID4gW2NsYXNzKj1cInN0cmV0Y2hlZFwiXSB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG4vKiBEZXNjcmlwdGlvbiAqL1xuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMSAwIGF1dG87XG4gIG1pbi13aWR0aDogMHB4O1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkubW9kYWwgPiAuY29udGVudCA+IC5pY29uICsgLmRlc2NyaXB0aW9uLFxuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaW1hZ2UgKyAuZGVzY3JpcHRpb24ge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbWluLXdpZHRoOiAnJztcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMmVtO1xufVxuLypydGw6aWdub3JlKi9cbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmltYWdlID4gaS5pY29uIHtcbiAgbWFyZ2luOiAwZW07XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiA4cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3Rpb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1vZGFsID4gLmFjdGlvbnMge1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICBwYWRkaW5nOiAxcmVtIDFyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi51aS5tb2RhbCAuYWN0aW9ucyA+IC5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmVzcG9uc2l2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTW9kYWwgV2lkdGggKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IDg4JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkubW9kYWwge1xuICAgIHdpZHRoOiA4NTBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogOTAwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IDk1MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG4vKiBUYWJsZXQgYW5kIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkubW9kYWwgPiAuaGVhZGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtO1xuICB9XG4gIC51aS5tb2RhbCA+IC5jbG9zZSB7XG4gICAgdG9wOiAxLjA1MzVyZW07XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIH1cbn1cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubW9kYWwgPiAuaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLm1vZGFsID4gLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkubW9kYWwgPiAuY2xvc2Uge1xuICAgIHRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC8qcnRsOmlnbm9yZSovXG4gIC51aS5tb2RhbCAuaW1hZ2UuY29udGVudCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudWkubW9kYWwgLmNvbnRlbnQgPiAuaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDBlbSBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDByZW0gMHJlbSAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaW1hZ2UgPiBpLmljb24ge1xuICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLypydGw6aWdub3JlKi9cbiAgLnVpLm1vZGFsIC5jb250ZW50ID4gLmRlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMXJlbSAwcmVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBMZXQgQnV0dG9ucyBTdGFjayAqL1xuICAudWkubW9kYWwgPiAuYWN0aW9ucyB7XG4gICAgcGFkZGluZzogMXJlbSAxcmVtIDByZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkubW9kYWwgLmFjdGlvbnMgPiAuYnV0dG9ucyxcbiAgLnVpLm1vZGFsIC5hY3Rpb25zID4gLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmRpbW1lciA+IC51aS5tb2RhbCB7XG4gIGJveC1zaGFkb3c6IDFweCAzcHggMTBweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5iYXNpYy5tb2RhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5iYXNpYy5tb2RhbCA+IC5oZWFkZXIsXG4udWkuYmFzaWMubW9kYWwgPiAuY29udGVudCxcbi51aS5iYXNpYy5tb2RhbCA+IC5hY3Rpb25zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udWkuYmFzaWMubW9kYWwgPiAuaGVhZGVyIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuYmFzaWMubW9kYWwgPiAuY2xvc2Uge1xuICB0b3A6IDFyZW07XG4gIHJpZ2h0OiAxLjVyZW07XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLmJhc2ljLm1vZGFsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLnVpLmJhc2ljLm1vZGFsID4gLmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogUmVzb3J0IHRvIG1hcmdpbiBwb3NpdGlvbmluZyBpZiBsZWdhY3kgKi9cbi51aS5sZWdhY3kubW9kYWwsXG4udWkubGVnYWN5LnBhZ2UuZGltbWVyID4gLnVpLm1vZGFsIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbn1cbi51aS5sZWdhY3kucGFnZS5kaW1tZXIgPiAudWkuc2Nyb2xsaW5nLm1vZGFsLFxuLnVpLnBhZ2UuZGltbWVyID4gLnVpLnNjcm9sbGluZy5sZWdhY3kubW9kYWwsXG4udWkudG9wLmFsaWduZWQubGVnYWN5LnBhZ2UuZGltbWVyID4gLnVpLm1vZGFsLFxuLnVpLnRvcC5hbGlnbmVkLmRpbW1lciA+IC51aS5sZWdhY3kubW9kYWwge1xuICB0b3A6IGF1dG87XG59XG4vKiBUYWJsZXQgYW5kIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkuYmFzaWMubW9kYWwgPiAuY2xvc2Uge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5sb2FkaW5nLm1vZGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7XG59XG4udWkuYWN0aXZlLm1vZGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVG9wIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgQWxpZ25lZCBNb2RhbCAqL1xuLm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLm1vZGFsIHtcbiAgbWFyZ2luOiA1dmggYXV0bztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLm1vZGFsIHtcbiAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgfVxufVxuLyogTGVnYWN5IFRvcCBBbGlnbmVkICovXG4ubGVnYWN5Lm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICBwYWRkaW5nLXRvcDogNXZoO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubGVnYWN5Lm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2Nyb2xsaW5nIERpbW1lciAqL1xuLnNjcm9sbGluZy5kaW1tYWJsZS5kaW1tZWQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnNjcm9sbGluZy5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4uc2Nyb2xsaW5nLmRpbW1hYmxlLmRpbW1lZCA+IC5kaW1tZXIge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLnNjcm9sbGluZy5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4ubW9kYWxzLmRpbW1lciAudWkuc2Nyb2xsaW5nLm1vZGFsIHtcbiAgbWFyZ2luOiAxcmVtIGF1dG87XG59XG4vKiBVbmRldGFjaGVkIFNjcm9sbGluZyAqL1xuLnNjcm9sbGluZy51bmRldGFjaGVkLmRpbW1hYmxlLmRpbW1lZCB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4uc2Nyb2xsaW5nLnVuZGV0YWNoZWQuZGltbWFibGUuZGltbWVkID4gLmRpbW1lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2Nyb2xsaW5nLnVuZGV0YWNoZWQuZGltbWFibGUgLnVpLnNjcm9sbGluZy5tb2RhbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBTY3JvbGxpbmcgQ29udGVudCAqL1xuLnVpLm1vZGFsIC5zY3JvbGxpbmcuY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IGNhbGMoODB2aCAtIDEwZW0pO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZ1bGwgU2NyZWVuXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZ1bGxzY3JlZW4ubW9kYWwge1xuICB3aWR0aDogOTUlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMWVtIGF1dG87XG59XG4udWkuZnVsbHNjcmVlbi5tb2RhbCA+IC5oZWFkZXIge1xuICBwYWRkaW5nLXJpZ2h0OiAyLjI1cmVtO1xufVxuLnVpLmZ1bGxzY3JlZW4ubW9kYWwgPiAuY2xvc2Uge1xuICB0b3A6IDEuMDUzNXJlbTtcbiAgcmlnaHQ6IDFyZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tb2RhbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi8qIE1pbmkgKi9cbi51aS5taW5pLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4vKiBNaW5pIE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogMzUuMiU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiAzNDBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiAzNjBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiAzODBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuLyogbWluaSAqL1xuLnVpLnNtYWxsLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4vKiBUaW55IE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogNTIuOCU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiA1MTBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiA1NDBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiA1NzBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuLyogU21hbGwgKi9cbi51aS5zbWFsbC5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLyogU21hbGwgTW9kYWwgV2lkdGggKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5zbWFsbC5tb2RhbCB7XG4gICAgd2lkdGg6IDcwLjQlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5zbWFsbC5tb2RhbCB7XG4gICAgd2lkdGg6IDY4MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiA3MjBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogNzYwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbi8qIExhcmdlIE1vZGFsIFdpZHRoICovXG4udWkubGFyZ2UubW9kYWwgPiAuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjZlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51aS5sYXJnZS5tb2RhbCB7XG4gICAgd2lkdGg6IDg4JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiAxMDIwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS5sYXJnZS5tb2RhbCB7XG4gICAgd2lkdGg6IDEwODBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogMTE0MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBOYWdcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTmFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgQ29sbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRpdGxlICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBsdXJhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE5hZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5uYWcge1xuICBkaXNwbGF5OiBub25lO1xuICBvcGFjaXR5OiAwLjk1O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwcHg7XG4gIHotaW5kZXg6IDk5OTtcbiAgbWluLWhlaWdodDogMGVtO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJhY2tncm91bmQ6ICM1NTU1NTU7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW07XG4gIHRyYW5zaXRpb246IDAuMnMgYmFja2dyb3VuZCBlYXNlO1xufVxuYS51aS5uYWcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkubmFnID4gLnRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjVlbTtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkubmFnID4gLmNsb3NlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDFlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbjogLTAuNWVtIDBlbSAwZW07XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSG92ZXIgKi9cbi51aS5uYWc6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjNTU1NTU1O1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLm5hZyAuY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3RhdGljXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm92ZXJsYXkubmFnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml4ZWQubmFnIHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCb3R0b21cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYm90dG9tLm5hZ3MsXG4udWkuYm90dG9tLm5hZyB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbSAwZW0gMGVtO1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXaGl0ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5uYWdzIC5uYWcsXG4udWkuaW52ZXJ0ZWQubmFnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjRGNTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4udWkuaW52ZXJ0ZWQubmFncyAubmFnIC5jbG9zZSxcbi51aS5pbnZlcnRlZC5uYWdzIC5uYWcgLnRpdGxlLFxuLnVpLmludmVydGVkLm5hZyAuY2xvc2UsXG4udWkuaW52ZXJ0ZWQubmFnIC50aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubmFncyAubmFnIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkubmFncyAubmFnOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjg1NzE0MjlyZW0gMC4yODU3MTQyOXJlbTtcbn1cbi51aS5ib3R0b20ubmFncyAubmFnOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFBvcHVwXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFBvcHVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBsYWNlbWVudCAqL1xuLyogSGVhZGVyICovXG4vKiBDb250ZW50IEJvcmRlciAqL1xuLyogQXJyb3cgKi9cbi8qIEFycm93IGNvbG9yIGJ5IHBvc2l0aW9uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9vbHRpcCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEFycm93ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JpZCBJbnNpZGUgUG9wdXAgKi9cbi8qIChwYWRkaW5nICogQG1lZGl1bSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogV2lkZSAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEFycm93IGNvbG9yIGJ5IHBvc2l0aW9uICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFBvcHVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnBvcHVwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgLyogRml4ZXMgY29udGVudCBiZWluZyBzcXVpc2hlZCB3aGVuIGlubGluZSAobW96IG9ubHkpICovXG4gIG1pbi13aWR0aDogbWluLWNvbnRlbnQ7XG4gIHotaW5kZXg6IDE5MDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODVlbTtcbiAgbWF4LXdpZHRoOiAyNTBweDtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgcGFkZGluZzogMC44MzNlbSAxZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTIpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkucG9wdXAgPiAuaGVhZGVyIHtcbiAgcGFkZGluZzogMGVtO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuMTQyODU3MTRlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkucG9wdXAgPiAuaGVhZGVyICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogMC41ZW07XG59XG4udWkucG9wdXA6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDAuNzE0Mjg1NzFlbTtcbiAgaGVpZ2h0OiAwLjcxNDI4NTcxZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgei1pbmRleDogMjtcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVG9vbHRpcFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbnRlbnQgKi9cbltkYXRhLXRvb2x0aXBdIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLyogQXJyb3cgKi9cbltkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBmb250LXNpemU6IDFyZW07XG4gIHdpZHRoOiAwLjcxNDI4NTcxZW07XG4gIGhlaWdodDogMC43MTQyODU3MWVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHotaW5kZXg6IDI7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyogUG9wdXAgKi9cbltkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10b29sdGlwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xuICBsaW5lLWhlaWdodDogMS40Mjg1ZW07XG4gIG1heC13aWR0aDogbm9uZTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgcGFkZGluZzogMC44MzNlbSAxZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTIpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBEZWZhdWx0IFBvc2l0aW9uIChUb3AgQ2VudGVyKSAqL1xuW2RhdGEtdG9vbHRpcF06bm90KFtkYXRhLXBvc2l0aW9uXSk6YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG1hcmdpbi1sZWZ0OiAtMC4wNzE0Mjg1N3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xNDI4NTcxNHJlbTtcbn1cbltkYXRhLXRvb2x0aXBdOm5vdChbZGF0YS1wb3NpdGlvbl0pOmFmdGVyIHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG4vKiBBbmltYXRpb24gKi9cbltkYXRhLXRvb2x0aXBdOmJlZm9yZSxcbltkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbltkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSBzY2FsZSgwKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlO1xufVxuW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlO1xufVxuW2RhdGEtdG9vbHRpcF06aG92ZXI6YmVmb3JlLFxuW2RhdGEtdG9vbHRpcF06aG92ZXI6YWZ0ZXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbltkYXRhLXRvb2x0aXBdOmhvdmVyOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSBzY2FsZSgxKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xufVxuLyogQW5pbWF0aW9uIFBvc2l0aW9uICovXG5bZGF0YS10b29sdGlwXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgY2VudGVyXCJdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl06YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMCkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdOmhvdmVyOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl06aG92ZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMSkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl06YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMCkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl06aG92ZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMSkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgcmlnaHRcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIHJpZ2h0XCJdOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInRvcCBsZWZ0XCJdOmhvdmVyOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInRvcCByaWdodFwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gbGVmdFwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl06aG92ZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBBcnJvdyAqL1xuW2RhdGEtdG9vbHRpcF1bZGF0YS1pbnZlcnRlZF06YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogQXJyb3cgUG9zaXRpb24gKi9cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG59XG4vKiBQb3B1cCAgKi9cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmFmdGVyIC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lO1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQb3NpdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCBDZW50ZXIgKi9cbltkYXRhLXBvc2l0aW9uPVwidG9wIGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogNTAlO1xuICBib3R0b206IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG5bZGF0YS1wb3NpdGlvbj1cInRvcCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgbWFyZ2luLWxlZnQ6IC0wLjA3MTQyODU3cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjE0Mjg1NzE0cmVtO1xufVxuLyogVG9wIExlZnQgKi9cbltkYXRhLXBvc2l0aW9uPVwidG9wIGxlZnRcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG5bZGF0YS1wb3NpdGlvbj1cInRvcCBsZWZ0XCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiAxZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC4wNzE0Mjg1N3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xNDI4NTcxNHJlbTtcbn1cbi8qIFRvcCBSaWdodCAqL1xuW2RhdGEtcG9zaXRpb249XCJ0b3AgcmlnaHRcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG5bZGF0YS1wb3NpdGlvbj1cInRvcCByaWdodFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICByaWdodDogMWVtO1xuICBtYXJnaW4tbGVmdDogLTAuMDcxNDI4NTdyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMTQyODU3MTRyZW07XG59XG4vKiBCb3R0b20gQ2VudGVyICovXG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuW2RhdGEtcG9zaXRpb249XCJib3R0b20gY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMC4wNzE0Mjg1N3JlbTtcbiAgbWFyZ2luLXRvcDogMC4xNDI4NTcxNHJlbTtcbn1cbi8qIEJvdHRvbSBMZWZ0ICovXG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBsZWZ0XCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBsZWZ0OiAwO1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuW2RhdGEtcG9zaXRpb249XCJib3R0b20gbGVmdFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMWVtO1xuICBtYXJnaW4tbGVmdDogLTAuMDcxNDI4NTdyZW07XG4gIG1hcmdpbi10b3A6IDAuMTQyODU3MTRyZW07XG59XG4vKiBCb3R0b20gUmlnaHQgKi9cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIHJpZ2h0XCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICByaWdodDogMDtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIHJpZ2h0XCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAxZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC4xNDI4NTcxNHJlbTtcbiAgbWFyZ2luLXRvcDogMC4wNzE0Mjg1N3JlbTtcbn1cbi8qIExlZnQgQ2VudGVyICovXG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICByaWdodDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbltkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICByaWdodDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0wLjE0Mjg1NzE0cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjA3MTQyODU3cmVtO1xufVxuLyogUmlnaHQgQ2VudGVyICovXG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgbGVmdDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBsZWZ0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTAuMDcxNDI4NTdyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjE0Mjg1NzE0cmVtO1xufVxuLyogQXJyb3cgKi9cbltkYXRhLXBvc2l0aW9ufj1cImJvdHRvbVwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAtMXB4IDFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1wb3NpdGlvbn49XCJ0b3BcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLyogSW52ZXJ0ZWQgQXJyb3cgQ29sb3IgKi9cbltkYXRhLWludmVydGVkXVtkYXRhLXBvc2l0aW9ufj1cImJvdHRvbVwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1pbnZlcnRlZF1bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbiAgYm94LXNoYWRvdzogMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuW2RhdGEtaW52ZXJ0ZWRdW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xuICBib3gtc2hhZG93OiAtMXB4IDFweCAwcHggMHB4ICNiYWJhYmM7XG59XG5bZGF0YS1pbnZlcnRlZF1bZGF0YS1wb3NpdGlvbn49XCJ0b3BcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xufVxuW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbn1cbltkYXRhLXBvc2l0aW9ufj1cImJvdHRvbVwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbn1cbltkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xufVxuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xufVxuW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNwYWNpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucG9wdXAge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qIEV4dGVuZGluZyBmcm9tIFRvcCAqL1xuLnVpLnRvcC5wb3B1cCB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjcxNDI4NTcxZW07XG59XG4udWkudG9wLmxlZnQucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbn1cbi51aS50b3AuY2VudGVyLnBvcHVwIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbn1cbi51aS50b3AucmlnaHQucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG59XG4vKiBFeHRlbmRpbmcgZnJvbSBWZXJ0aWNhbCBDZW50ZXIgKi9cbi51aS5sZWZ0LmNlbnRlci5wb3B1cCB7XG4gIG1hcmdpbjogMGVtIDAuNzE0Mjg1NzFlbSAwZW0gMGVtO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCA1MCU7XG59XG4udWkucmlnaHQuY2VudGVyLnBvcHVwIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwLjcxNDI4NTcxZW07XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgNTAlO1xufVxuLyogRXh0ZW5kaW5nIGZyb20gQm90dG9tICovXG4udWkuYm90dG9tLnBvcHVwIHtcbiAgbWFyZ2luOiAwLjcxNDI4NTcxZW0gMGVtIDBlbTtcbn1cbi51aS5ib3R0b20ubGVmdC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuLnVpLmJvdHRvbS5jZW50ZXIucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xufVxuLnVpLmJvdHRvbS5yaWdodC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUG9pbnRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIEJlbG93IC0tLSovXG4udWkuYm90dG9tLmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogLTAuMzA3MTQyODZlbTtcbiAgdG9wOiAtMC4zMDcxNDI4NmVtO1xuICBsZWZ0OiA1MCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4udWkuYm90dG9tLmxlZnQucG9wdXAge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLypydGw6cmVuYW1lKi9cbi51aS5ib3R0b20ubGVmdC5wb3B1cDpiZWZvcmUge1xuICB0b3A6IC0wLjMwNzE0Mjg2ZW07XG4gIGxlZnQ6IDFlbTtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi51aS5ib3R0b20ucmlnaHQucG9wdXAge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qcnRsOnJlbmFtZSovXG4udWkuYm90dG9tLnJpZ2h0LnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogLTAuMzA3MTQyODZlbTtcbiAgcmlnaHQ6IDFlbTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyotLS0gQWJvdmUgLS0tKi9cbi51aS50b3AuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogLTAuMzA3MTQyODZlbTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTAuMzA3MTQyODZlbTtcbn1cbi51aS50b3AubGVmdC5wb3B1cCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4vKnJ0bDpyZW5hbWUqL1xuLnVpLnRvcC5sZWZ0LnBvcHVwOmJlZm9yZSB7XG4gIGJvdHRvbTogLTAuMzA3MTQyODZlbTtcbiAgbGVmdDogMWVtO1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLnRvcC5yaWdodC5wb3B1cCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLypydGw6cmVuYW1lKi9cbi51aS50b3AucmlnaHQucG9wdXA6YmVmb3JlIHtcbiAgYm90dG9tOiAtMC4zMDcxNDI4NmVtO1xuICByaWdodDogMWVtO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4vKi0tLSBMZWZ0IENlbnRlciAtLS0qL1xuLypydGw6cmVuYW1lKi9cbi51aS5sZWZ0LmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IC0wLjMwNzE0Mjg2ZW07XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLXRvcDogLTAuMzA3MTQyODZlbTtcbiAgYm94LXNoYWRvdzogMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyotLS0gUmlnaHQgQ2VudGVyICAtLS0qL1xuLypydGw6cmVuYW1lKi9cbi51aS5yaWdodC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IC0wLjMwNzE0Mjg2ZW07XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IC0wLjMwNzE0Mjg2ZW07XG4gIGJveC1zaGFkb3c6IC0xcHggMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi8qIEFycm93IENvbG9yIEJ5IExvY2F0aW9uICovXG4udWkuYm90dG9tLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4udWkucmlnaHQuY2VudGVyLnBvcHVwOmJlZm9yZSxcbi51aS5sZWZ0LmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLnVpLnRvcC5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLyogSW52ZXJ0ZWQgQXJyb3cgQ29sb3IgKi9cbi51aS5pbnZlcnRlZC5ib3R0b20ucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbn1cbi51aS5pbnZlcnRlZC5yaWdodC5jZW50ZXIucG9wdXA6YmVmb3JlLFxuLnVpLmludmVydGVkLmxlZnQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG59XG4udWkuaW52ZXJ0ZWQudG9wLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBJbW1lZGlhdGUgTmVzdGVkIEdyaWQgKi9cbi51aS5wb3B1cCA+IC51aS5ncmlkOm5vdCgucGFkZGVkKSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAxLjc1cmVtKTtcbiAgbWFyZ2luOiAtMC43cmVtIC0wLjg3NXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubG9hZGluZy5wb3B1cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IC0xO1xufVxuLnVpLmFuaW1hdGluZy5wb3B1cCxcbi51aS52aXNpYmxlLnBvcHVwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkudmlzaWJsZS5wb3B1cCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwcHgpO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmFzaWMucG9wdXA6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgV2lkZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS53aWRlLnBvcHVwIHtcbiAgbWF4LXdpZHRoOiAzNTBweDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ucG9wdXAge1xuICBtYXgtd2lkdGg6IDU1MHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkud2lkZS5wb3B1cCxcbiAgLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5wb3B1cCB7XG4gICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5wb3B1cCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkIGNvbG9ycyAgKi9cbi51aS5pbnZlcnRlZC5wb3B1cCB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWQucG9wdXAgLmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IG5vbmU7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmxvd2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG93aW5nLnBvcHVwIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnBvcHVwIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkucG9wdXAge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwucG9wdXAge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkucG9wdXAge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UucG9wdXAge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuaHVnZS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFByb2dyZXNzIEJhclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFByb2dyZXNzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFyICovXG4vKiBQcm9ncmVzcyBCYXIgTGFiZWwgKi9cbi8qIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFjdGl2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBdHRhY2hlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpemluZyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQcm9ncmVzc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5wcm9ncmVzcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDFlbSAwZW0gMi41ZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcGFkZGluZzogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtO1xufVxuLnVpLnByb2dyZXNzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDIuNWVtO1xufVxuLnVpLnByb2dyZXNzOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbSAwZW0gMS41ZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFjdGl2aXR5IEJhciAqL1xuLnVpLnByb2dyZXNzIC5iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDAlO1xuICBtaW4td2lkdGg6IDJlbTtcbiAgYmFja2dyb3VuZDogIzg4ODg4ODtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4xcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIFBlcmNlbnQgQ29tcGxldGUgKi9cbi51aS5wcm9ncmVzcyAuYmFyID4gLnByb2dyZXNzIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogYXV0bztcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG4gIHRvcDogNTAlO1xuICByaWdodDogMC41ZW07XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4vKiBMYWJlbCAqL1xuLnVpLnByb2dyZXNzID4gLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxZW07XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAlO1xuICBib3R0b206IGF1dG87XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuNHMgZWFzZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEluZGljYXRpbmcgKi9cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMlwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q5NUM1Qztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIzXCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUZCQzcyO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjRcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI1XCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTZCQjQ4O1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjZcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEREM5Mjg7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiN1wiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjhcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNEQ5NUM7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiOVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjEwMFwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2REE4MTtcbn1cbi8qIEluZGljYXRpbmcgTGFiZWwgKi9cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxXCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIyXCJdIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjNcIl0gLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNFwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNVwiXSAubGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI2XCJdIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjdcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjhcIl0gLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiOVwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMTAwXCJdIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogU2luZ2xlIERpZ2l0cyAqL1xuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMlwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiM1wiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNFwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNlwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiN1wiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOFwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOVwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q5NUM1Qztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjFcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMlwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIzXCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjRcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNVwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI2XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjdcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOFwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI5XCJdIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogSW5kaWNhdGluZyBTdWNjZXNzICovXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzcy5zdWNjZXNzIC5sYWJlbCB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN1Y2Nlc3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucHJvZ3Jlc3Muc3VjY2VzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLnN1Y2Nlc3MgLmJhcixcbi51aS5wcm9ncmVzcy5zdWNjZXNzIC5iYXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3Muc3VjY2VzcyA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXYXJuaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnByb2dyZXNzLndhcm5pbmcgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkMwMzcgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy53YXJuaW5nIC5iYXIsXG4udWkucHJvZ3Jlc3Mud2FybmluZyAuYmFyOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLndhcm5pbmcgPiAubGFiZWwge1xuICBjb2xvcjogIzc5NEIwMjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucHJvZ3Jlc3MuZXJyb3IgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy5lcnJvciAuYmFyLFxuLnVpLnByb2dyZXNzLmVycm9yIC5iYXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3MuZXJyb3IgPiAubGFiZWwge1xuICBjb2xvcjogIzkxMkQyQjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFjdGl2ZS5wcm9ncmVzcyAuYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IDJlbTtcbn1cbi51aS5hY3RpdmUucHJvZ3Jlc3MgLmJhcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICByaWdodDogMHB4O1xuICBib3R0b206IDBweDtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgYW5pbWF0aW9uOiBwcm9ncmVzcy1hY3RpdmUgMnMgZWFzZSBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYWN0aXZlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICB3aWR0aDogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGlzYWJsZWQucHJvZ3Jlc3Mge1xuICBvcGFjaXR5OiAwLjM1O1xufVxuLnVpLmRpc2FibGVkLnByb2dyZXNzIC5iYXIsXG4udWkuZGlzYWJsZWQucHJvZ3Jlc3MgLmJhcjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBib3JkZXI6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQ6ICM4ODg4ODg7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciA+IC5wcm9ncmVzcyB7XG4gIGNvbG9yOiAjRjlGQUZCO1xufVxuLnVpLmludmVydGVkLnByb2dyZXNzID4gLmxhYmVsIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Muc3VjY2VzcyA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjMjFCQTQ1O1xufVxuLnVpLmludmVydGVkLnByb2dyZXNzLndhcm5pbmcgPiAubGFiZWwge1xuICBjb2xvcjogI0YyQzAzNztcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcy5lcnJvciA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogYm90dG9tIGF0dGFjaGVkICovXG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLnByb2dyZXNzLmF0dGFjaGVkLFxuLnVpLnByb2dyZXNzLmF0dGFjaGVkIC5iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwLjJyZW07XG4gIHBhZGRpbmc6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW07XG59XG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQgLmJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIHRvcCBhdHRhY2hlZCAqL1xuLnVpLnByb2dyZXNzLnRvcC5hdHRhY2hlZCxcbi51aS5wcm9ncmVzcy50b3AuYXR0YWNoZWQgLmJhciB7XG4gIHRvcDogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjI4NTcxNDI5cmVtIDAuMjg1NzE0MjlyZW0gMGVtIDBlbTtcbn1cbi51aS5wcm9ncmVzcy50b3AuYXR0YWNoZWQgLmJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIENvdXBsaW5nICovXG4udWkuc2VnbWVudCA+IC51aS5hdHRhY2hlZC5wcm9ncmVzcyxcbi51aS5jYXJkID4gLnVpLmF0dGFjaGVkLnByb2dyZXNzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuc2VnbWVudCA+IC51aS5ib3R0b20uYXR0YWNoZWQucHJvZ3Jlc3MsXG4udWkuY2FyZCA+IC51aS5ib3R0b20uYXR0YWNoZWQucHJvZ3Jlc3Mge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG4udWkucmVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4O1xufVxuLnVpLnJlZC5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNjk1RTtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQztcbn1cbi51aS5vcmFuZ2UuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjg1MUI7XG59XG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDg7XG59XG4udWkueWVsbG93LmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFMjFGO1xufVxuLyogT2xpdmUgKi9cbi51aS5vbGl2ZS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxODtcbn1cbi51aS5vbGl2ZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q5RTc3ODtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4ucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDU7XG59XG4udWkuZ3JlZW4uaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyRUNDNDA7XG59XG4vKiBUZWFsICovXG4udWkudGVhbC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRDtcbn1cbi51aS50ZWFsLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkRGRkZGO1xufVxuLyogQmx1ZSAqL1xuLnVpLmJsdWUucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTg1RDA7XG59XG4udWkuYmx1ZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0QzhGRjtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOTtcbn1cbi51aS52aW9sZXQuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMjkxRkI7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzg7XG59XG4udWkucHVycGxlLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREM3M0ZGO1xufVxuLyogUGluayAqL1xuLnVpLnBpbmsucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTc7XG59XG4udWkucGluay5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGOEVERjtcbn1cbi8qIEJyb3duICovXG4udWkuYnJvd24ucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0Y7XG59XG4udWkuYnJvd24uaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNENjdDMUM7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JleS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3Njtcbn1cbi51aS5ncmV5LmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRENERERFO1xufVxuLyogQmxhY2sgKi9cbi51aS5ibGFjay5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRDtcbn1cbi51aS5ibGFjay5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0NTQ1NDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGlueS5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS50aW55LnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDAuNWVtO1xufVxuLnVpLnNtYWxsLnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLnNtYWxsLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDFlbTtcbn1cbi51aS5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5wcm9ncmVzcyAuYmFyIHtcbiAgaGVpZ2h0OiAxLjc1ZW07XG59XG4udWkubGFyZ2UucHJvZ3Jlc3Mge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkubGFyZ2UucHJvZ3Jlc3MgLmJhciB7XG4gIGhlaWdodDogMi41ZW07XG59XG4udWkuYmlnLnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuLnVpLmJpZy5wcm9ncmVzcyAuYmFyIHtcbiAgaGVpZ2h0OiAzLjVlbTtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFJhdGluZ1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBSYXRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4vKiBTdGFyICovXG4vKiBIZWFydCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUmF0aW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnJhdGluZyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkucmF0aW5nOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qIEljb24gKi9cbi51aS5yYXRpbmcgLmljb24ge1xuICBwYWRkaW5nOiAwZW07XG4gIG1hcmdpbjogMGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZmxleDogMSAwIGF1dG87XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEuMjVlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZSwgYmFja2dyb3VuZCAwLjFzIGVhc2UsIHRleHQtc2hhZG93IDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhbmRhcmRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluYWN0aXZlIEljb24gKi9cbi51aS5yYXRpbmcgLmljb24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4vKiBBY3RpdmUgSWNvbiAqL1xuLnVpLnJhdGluZyAuYWN0aXZlLmljb24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4vKiBTZWxlY3RlZCBJY29uICovXG4udWkucmF0aW5nIC5pY29uLnNlbGVjdGVkLFxuLnVpLnJhdGluZyAuaWNvbi5zZWxlY3RlZC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5hY3RpdmUgKi9cbi51aS5zdGFyLnJhdGluZyAuaWNvbiB7XG4gIHdpZHRoOiAxLjI1ZW07XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEFjdGl2ZSBTdGFyICovXG4udWkuc3Rhci5yYXRpbmcgLmFjdGl2ZS5pY29uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkU2MjMgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IDBweCAtMXB4IDBweCAjRERDNTA3LCAtMXB4IDBweCAwcHggI0REQzUwNywgMHB4IDFweCAwcHggI0REQzUwNywgMXB4IDBweCAwcHggI0REQzUwNyAhaW1wb3J0YW50O1xufVxuLyogU2VsZWN0ZWQgU3RhciAqL1xuLnVpLnN0YXIucmF0aW5nIC5pY29uLnNlbGVjdGVkLFxuLnVpLnN0YXIucmF0aW5nIC5pY29uLnNlbGVjdGVkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZDQzAwICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwcHggLTFweCAwcHggI0U2QTIwMCwgLTFweCAwcHggMHB4ICNFNkEyMDAsIDBweCAxcHggMHB4ICNFNkEyMDAsIDFweCAwcHggMHB4ICNFNkEyMDAgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIZWFydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYXJ0LnJhdGluZyAuaWNvbiB7XG4gIHdpZHRoOiAxLjRlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBBY3RpdmUgSGVhcnQgKi9cbi51aS5oZWFydC5yYXRpbmcgLmFjdGl2ZS5pY29uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjZENzUgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IDBweCAtMXB4IDBweCAjQ0QwNzA3LCAtMXB4IDBweCAwcHggI0NEMDcwNywgMHB4IDFweCAwcHggI0NEMDcwNywgMXB4IDBweCAwcHggI0NEMDcwNyAhaW1wb3J0YW50O1xufVxuLyogU2VsZWN0ZWQgSGVhcnQgKi9cbi51aS5oZWFydC5yYXRpbmcgLmljb24uc2VsZWN0ZWQsXG4udWkuaGVhcnQucmF0aW5nIC5pY29uLnNlbGVjdGVkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkYzMDAwICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwcHggLTFweCAwcHggI0FBMDEwMSwgLTFweCAwcHggMHB4ICNBQTAxMDEsIDBweCAxcHggMHB4ICNBQTAxMDEsIDFweCAwcHggMHB4ICNBQTAxMDEgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIGRpc2FibGVkIHJhdGluZyAqL1xuLnVpLmRpc2FibGVkLnJhdGluZyAuaWNvbiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVXNlciBJbnRlcmFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VsZWN0ZWQgUmF0aW5nICovXG4udWkucmF0aW5nLnNlbGVjdGVkIC5hY3RpdmUuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG59XG4udWkucmF0aW5nLnNlbGVjdGVkIC5pY29uLnNlbGVjdGVkLFxuLnVpLnJhdGluZyAuaWNvbi5zZWxlY3RlZCB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubWluaS5yYXRpbmcge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS5yYXRpbmcge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwucmF0aW5nIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5yYXRpbmcge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuaHVnZS5yYXRpbmcge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5yYXRpbmcge1xuICBmb250LXNpemU6IDJyZW07XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTZWFyY2hcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWFyY2hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTZWFyY2ggUHJvbXB0ICovXG4vKiBNb2JpbGUgKi9cbi8qIFJlc3VsdCBCb3ggKi9cbi8qIFJlc3VsdCAqL1xuLyogUmVzdWx0IEltYWdlICovXG4vKiBSZXN1bHQgQ29udGVudCAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIFByaWNlICovXG4vKiBTcGVjaWFsIE1lc3NhZ2UgKi9cbi8qIEFsbCBSZXN1bHRzIExpbmsgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBGb2N1cyAqL1xuLyogSG92ZXIgKi9cbi8qIExvYWRpbmcgKi9cbi8qIEFjdGl2ZSBDYXRlZ29yeSAqL1xuLyogQWN0aXZlIFJlc3VsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2VsZWN0aW9uICovXG4vKiBDYXRlZ29yeSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU2VhcmNoXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnNlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS5zZWFyY2ggPiAucHJvbXB0IHtcbiAgbWFyZ2luOiAwZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBwYWRkaW5nOiAwLjY3ODU3MTQzZW0gMWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDBlbSB0cmFuc3BhcmVudCBpbnNldDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4udWkuc2VhcmNoIC5wcm9tcHQge1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoIC5wcm9tcHQgfiAuc2VhcmNoLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUmVzdWx0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwJTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xuICB3aWR0aDogMThlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbiAgei1pbmRleDogOTk4O1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yODU3MTQyOXJlbSAwLjI4NTcxNDI5cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFJlc3VsdFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmc6IDAuODU3MTQyODZlbSAxLjE0Mjg1NzE0ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBsaW5lLWhlaWdodDogMS4zMztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0Omxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBJbWFnZSAqL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmltYWdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogNWVtO1xuICBoZWlnaHQ6IDNlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNWVtO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSW5mb1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC5pbWFnZSArIC5jb250ZW50IHtcbiAgbWFyZ2luOiAwZW0gNmVtIDBlbSAwZW07XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAudGl0bGUge1xuICBtYXJnaW46IC0wLjE0Mjg1NzE0ZW0gMGVtIDBlbTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLnByaWNlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNZXNzYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiAxZW0gMWVtO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2UgLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogVmlldyBBbGwgUmVzdWx0cyAqL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLmFjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItdG9wOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBwYWRkaW5nOiAwLjkyODU3MTQzZW0gMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnByb21wdDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjM1KTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLnNlYXJjaCAuaW5wdXQgPiBpLmljb246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NDI4NTcxNGVtIDBlbSAwZW0gLTAuNjQyODU3MTRlbTtcbiAgd2lkdGg6IDEuMjg1NzE0MjllbTtcbiAgaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkubG9hZGluZy5zZWFyY2ggLmlucHV0ID4gaS5pY29uOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMC42NDI4NTcxNGVtIDBlbSAwZW0gLTAuNjQyODU3MTRlbTtcbiAgd2lkdGg6IDEuMjg1NzE0MjllbTtcbiAgaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIGFuaW1hdGlvbjogYnV0dG9uLXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdDpob3Zlcixcbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkgLnJlc3VsdDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG59XG4udWkuc2VhcmNoIC5hY3Rpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRTBFMEUwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xufVxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeS5hY3RpdmUgPiAubmFtZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQuYWN0aXZlLFxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSAucmVzdWx0LmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0LmFjdGl2ZSAudGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0LmFjdGl2ZSAuZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzYWJsZWQgKi9cbi51aS5kaXNhYmxlZC5zZWFyY2gge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU2VsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24gLnByb21wdCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG59XG4vKiBSZW1vdmUgaW5wdXQgKi9cbi51aS5zZWFyY2guc2VsZWN0aW9uID4gLmljb24uaW5wdXQgPiAucmVtb3ZlLmljb24ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiBhdXRvO1xuICBvcGFjaXR5OiAwO1xuICBjb2xvcjogJyc7XG4gIHRvcDogMGVtO1xuICByaWdodDogMGVtO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UsIG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLnVpLnNlYXJjaC5zZWxlY3Rpb24gPiAuaWNvbi5pbnB1dCA+IC5hY3RpdmUucmVtb3ZlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuODtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4udWkuc2VhcmNoLnNlbGVjdGlvbiA+IC5pY29uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBpY29uXCJdKSA+IC5pY29uIH4gLnJlbW92ZS5pY29uIHtcbiAgcmlnaHQ6IDEuODU3MTRlbTtcbn1cbi51aS5zZWFyY2guc2VsZWN0aW9uID4gLmljb24uaW5wdXQgPiAucmVtb3ZlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogI0RCMjgyODtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDYXRlZ29yeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggLnJlc3VsdHMge1xuICB3aWR0aDogMjhlbTtcbn1cbi51aS5jYXRlZ29yeS5zZWFyY2ggLnJlc3VsdHMuYW5pbWF0aW5nLFxuLnVpLmNhdGVnb3J5LnNlYXJjaCAucmVzdWx0cy52aXNpYmxlIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG4vKiBDYXRlZ29yeSAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4vKiBMYXN0IENhdGVnb3J5ICovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5Omxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLyogRmlyc3QgLyBMYXN0ICovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5OmZpcnN0LWNoaWxkIC5uYW1lICsgLnJlc3VsdCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjI4NTcxNDI5cmVtIDBlbSAwZW07XG59XG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5Omxhc3QtY2hpbGQgLnJlc3VsdDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDBlbTtcbn1cbi8qIENhdGVnb3J5IFJlc3VsdCBOYW1lICovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5ID4gLm5hbWUge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2lkdGg6IDEwMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmc6IDAuNGVtIDFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4vKiBDYXRlZ29yeSBSZXN1bHQgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkgLnJlc3VsdHMge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5IC5yZXN1bHQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbiAgcGFkZGluZzogMC44NTcxNDI4NmVtIDEuMTQyODU3MTRlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTGVmdCAvIFJpZ2h0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLnNlYXJjaCA+IC5yZXN1bHRzIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAlO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uc2VhcmNoID4gLnJlc3VsdHMge1xuICByaWdodDogMCU7XG4gIGxlZnQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuc2VhcmNoIC5yZXN1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLnNtYWxsLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xufVxuLnVpLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLnVpLmJpZy5zZWFyY2gge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi51aS5odWdlLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M2VtO1xufVxuLnVpLm1hc3NpdmUuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNb2JpbGVcbi0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zZWFyY2ggLnJlc3VsdHMge1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDJyZW0pO1xuICB9XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTaGFwZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbi8qIE1haW4gY29sb3JzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTaGFwZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLyogU2lkZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBDdWJlICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgU2hhcGVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc2hhcGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGVyc3BlY3RpdmU6IDIwMDBweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQsIGxlZnQgMC42cyBlYXNlLWluLW91dCwgd2lkdGggMC42cyBlYXNlLWluLW91dCwgaGVpZ2h0IDAuNnMgZWFzZS1pbi1vdXQ7XG59XG4udWkuc2hhcGUgLnNpZGVzIHtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cbi51aS5zaGFwZSAuc2lkZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuc2hhcGUgLnNpZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnNoYXBlIC5zaWRlICoge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmN1YmUuc2hhcGUgLnNpZGUge1xuICBtaW4td2lkdGg6IDE1ZW07XG4gIGhlaWdodDogMTVlbTtcbiAgcGFkZGluZzogMmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTZFNkU2O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuLnVpLmN1YmUuc2hhcGUgLnNpZGUgPiAuY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xufVxuLnVpLmN1YmUuc2hhcGUgLnNpZGUgPiAuY29udGVudCA+IGRpdiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnRleHQuc2hhcGUuYW5pbWF0aW5nIC5zaWRlcyB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4udWkudGV4dC5zaGFwZSAuc2lkZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWkudGV4dC5zaGFwZSAuc2lkZSA+ICoge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLnNoYXBlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIGxlZnQ6IC05OTk5cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQW5pbWF0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNoYXBlIC5hbmltYXRpbmcuc2lkZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHotaW5kZXg6IDEwMDtcbn1cbi51aS5zaGFwZSAuaGlkZGVuLnNpZGUge1xuICBvcGFjaXR5OiAwLjY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBDU1Ncbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2hhcGUuYW5pbWF0aW5nIC5zaWRlcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi51aS5zaGFwZS5hbmltYXRpbmcgLnNpZGVzIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQsIGxlZnQgMC42cyBlYXNlLWluLW91dCwgd2lkdGggMC42cyBlYXNlLWluLW91dCwgaGVpZ2h0IDAuNnMgZWFzZS1pbi1vdXQ7XG59XG4udWkuc2hhcGUuYW5pbWF0aW5nIC5zaWRlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGVhc2UtaW4tb3V0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2hhcGUgLmFjdGl2ZS5zaWRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTaWRlYmFyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFNpZGViYXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBbmltYXRpb24gKi9cbi8qIERpbW1lciAqL1xuLyogQ29sb3IgYmVsb3cgcGFnZSAqL1xuLyogU2hhZG93ICovXG4vKiBMYXllcmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBXaWR0aCAqL1xuLyogSGVpZ2h0ICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFNpZGViYXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaWRlYmFyIE1lbnUgKi9cbi51aS5zaWRlYmFyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDI7XG59XG4vKiBHUFUgTGF5ZXJzIGZvciBDaGlsZCBFbGVtZW50cyAqL1xuLnVpLnNpZGViYXIgPiAqIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgRGlyZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxlZnQuc2lkZWJhciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xufVxuLnVpLnJpZ2h0LnNpZGViYXIge1xuICByaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwJSwgMCk7XG59XG4udWkudG9wLnNpZGViYXIsXG4udWkuYm90dG9tLnNpZGViYXIge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS50b3Auc2lkZWJhciB7XG4gIHRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbn1cbi51aS5ib3R0b20uc2lkZWJhciB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDBweCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQdXNoYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qIFdob2xlIFBhZ2UgKi9cbmJvZHkucHVzaGFibGUge1xuICBiYWNrZ3JvdW5kOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG4vKiBQYWdlIENvbnRleHQgKi9cbi5wdXNoYWJsZTpub3QoYm9keSkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLnB1c2hhYmxlOm5vdChib2R5KSA+IC51aS5zaWRlYmFyLFxuLnB1c2hhYmxlOm5vdChib2R5KSA+IC5maXhlZCxcbi5wdXNoYWJsZTpub3QoYm9keSkgPiAucHVzaGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSA+IC5maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgei1pbmRleDogMTAxO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnB1c2hhYmxlID4gLnB1c2hlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbiAgei1pbmRleDogMjtcbn1cbmJvZHkucHVzaGFibGUgPiAucHVzaGVyIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi8qIFB1c2hlciBzaG91bGQgaW5oZXJpdCBiYWNrZ3JvdW5kIGZyb20gY29udGV4dCAqL1xuLnB1c2hhYmxlID4gLnB1c2hlciB7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpbW1lclxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSA+IC5wdXNoZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMG1zO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgei1pbmRleDogMTAwMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zaWRlYmFyLm1lbnUgLml0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpbW1lZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSA+IC5wdXNoZXIuZGltbWVkOmFmdGVyIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBbmltYXRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYW5pbWF0aW5nLnNpZGViYXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBWaXNpYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnZpc2libGUuc2lkZWJhciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG4vKiBTaGFkb3cgRGlyZWN0aW9uICovXG4udWkubGVmdC52aXNpYmxlLnNpZGViYXIsXG4udWkucmlnaHQudmlzaWJsZS5zaWRlYmFyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkudG9wLnZpc2libGUuc2lkZWJhcixcbi51aS5ib3R0b20udmlzaWJsZS5zaWRlYmFyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBWaXNpYmxlIE9uIExvYWQgKi9cbi51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI2MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI2MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLnRvcC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUudG9wLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzNnB4LCAwKTtcbn1cbi51aS52aXNpYmxlLmJvdHRvbS5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUuYm90dG9tLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzZweCwgMCk7XG59XG4vKiBvcHBvc2l0ZSBzaWRlcyB2aXNpYmxlIGZvcmNlcyBjb250ZW50IG92ZXJsYXkgKi9cbi51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAudWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlcixcbi51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAudWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICAgaU9TXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXaWR0aFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlZnQgLyBSaWdodCAqL1xuLnVpLnRoaW4ubGVmdC5zaWRlYmFyLFxuLnVpLnRoaW4ucmlnaHQuc2lkZWJhciB7XG4gIHdpZHRoOiAxNTBweDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ubGVmdC5zaWRlYmFyLFxuLnVpW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDYwcHg7XG59XG4udWkubGVmdC5zaWRlYmFyLFxuLnVpLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogMjYwcHg7XG59XG4udWkud2lkZS5sZWZ0LnNpZGViYXIsXG4udWkud2lkZS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDM1MHB4O1xufVxuLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5sZWZ0LnNpZGViYXIsXG4udWlbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogNDc1cHg7XG59XG4vKiBMZWZ0IFZpc2libGUgKi9cbi51aS52aXNpYmxlLnRoaW4ubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUudGhpbi5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxNTBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB0aGluXCJdLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGUud2lkZS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS53aWRlLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDM1MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNDc1cHgsIDAsIDApO1xufVxuLyogUmlnaHQgVmlzaWJsZSAqL1xuLnVpLnZpc2libGUudGhpbi5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUudGhpbi5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB0aGluXCJdLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNjBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS53aWRlLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS53aWRlLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMzUwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00NzVweCwgMCwgMCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFuaW1hdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmxheVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNldC11cCAqL1xuLnVpLm92ZXJsYXkuc2lkZWJhciB7XG4gIHotaW5kZXg6IDEwMjtcbn1cbi8qIEluaXRpYWwgKi9cbi51aS5sZWZ0Lm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAlLCAwKTtcbn1cbi51aS5yaWdodC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAlLCAwKTtcbn1cbi51aS50b3Aub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTEwMCUsIDApO1xufVxuLnVpLmJvdHRvbS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAxMDAlLCAwKTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLmFuaW1hdGluZy51aS5vdmVybGF5LnNpZGViYXIsXG4udWkudmlzaWJsZS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qIEVuZCAtIFNpZGViYXIgKi9cbi51aS52aXNpYmxlLmxlZnQub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCUsIDApO1xufVxuLnVpLnZpc2libGUucmlnaHQub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCUsIDApO1xufVxuLnVpLnZpc2libGUudG9wLm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAlLCAwKTtcbn1cbi51aS52aXNpYmxlLmJvdHRvbS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwJSwgMCk7XG59XG4vKiBFbmQgLSBQdXNoZXIgKi9cbi51aS52aXNpYmxlLm92ZXJsYXkuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLm92ZXJsYXkuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFB1c2hcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsICovXG4udWkucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG4gIHotaW5kZXg6IDEwMjtcbn1cbi8qIFNpZGViYXIgLSBJbml0aWFsICovXG4udWkubGVmdC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xufVxuLnVpLnRvcC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtMTAwJSwgMCk7XG59XG4udWkuYm90dG9tLnB1c2guc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDEwMCUsIDApO1xufVxuLyogRW5kICovXG4udWkudmlzaWJsZS5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBVbmNvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnVuY292ZXIuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnVuY292ZXIuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2xpZGUgQWxvbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsICovXG4udWkuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBTaWRlYmFyIC0gSW5pdGlhbCAqL1xuLnVpLmxlZnQuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG59XG4udWkucmlnaHQuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbn1cbi51aS50b3Auc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG59XG4udWkuYm90dG9tLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCA1MCUsIDApO1xufVxuLyogQW5pbWF0aW9uICovXG4udWkuYW5pbWF0aW5nLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2xpZGUgT3V0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgei1pbmRleDogMTtcbn1cbi8qIFNpZGViYXIgLSBJbml0aWFsICovXG4udWkubGVmdC5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG59XG4udWkudG9wLnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgNTAlLCAwKTtcbn1cbi51aS5ib3R0b20uc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtNTAlLCAwKTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuLyogRW5kICovXG4udWkudmlzaWJsZS5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2NhbGUgRG93blxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluaXRpYWwgKi9cbi51aS5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbiAgei1pbmRleDogMTAyO1xufVxuLyogU2lkZWJhciAtIEluaXRpYWwgICovXG4udWkubGVmdC5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xufVxuLnVpLnRvcC5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtMTAwJSwgMCk7XG59XG4udWkuYm90dG9tLnNjYWxlLmRvd24uc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDEwMCUsIDApO1xufVxuLyogUHVzaGVyIC0gSW5pdGlhbCAqL1xuLnVpLnNjYWxlLmRvd24ubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDc1JSA1MCU7XG59XG4udWkuc2NhbGUuZG93bi5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDI1JSA1MCU7XG59XG4udWkuc2NhbGUuZG93bi50b3Auc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNzUlO1xufVxuLnVpLnNjYWxlLmRvd24uYm90dG9tLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDI1JTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zY2FsZS5kb3duID4gLnZpc2libGUudWkuc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuLnVpLnZpc2libGUuc2NhbGUuZG93bi5zaWRlYmFyIH4gLnB1c2hlcixcbi51aS5hbmltYXRpbmcuc2NhbGUuZG93bi5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU3RpY2t5XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0gQnJhbmQgbWFpbiBjb2xvcnMgLS0tKi9cbi8qLS0tIENvdmVyIHBhZ2UgbWFyZ2luIC0tLSovXG4vKi0tLSBjb2RlIHRhZyBjb2xvciAtLS0qL1xuLyotLS0gU2lnbiB1cCBjb2xvciAtLS0qL1xuLyotLS0gU2VhcmNoIGJ1dHRvbiBjb2xvciAtLS0qL1xuLyotLS0gRm9udHMgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLypcbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuLyogTWFpbiBjb2xvcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RpY2t5XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGlja3lcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgei1pbmRleDogODAwO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEJvdW5kICovXG4udWkuc3RpY2t5LmJvdW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi8qIEZpeGVkICovXG4udWkuc3RpY2t5LmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi8qIEJvdW5kL0ZpeGVkIFBvc2l0aW9uICovXG4udWkuc3RpY2t5LmJvdW5kLnRvcCxcbi51aS5zdGlja3kuZml4ZWQudG9wIHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogYXV0bztcbn1cbi51aS5zdGlja3kuYm91bmQuYm90dG9tLFxuLnVpLnN0aWNreS5maXhlZC5ib3R0b20ge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMHB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm5hdGl2ZS5zdGlja3kge1xuICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gIHBvc2l0aW9uOiAtbW96LXN0aWNreTtcbiAgcG9zaXRpb246IC1tcy1zdGlja3k7XG4gIHBvc2l0aW9uOiAtby1zdGlja3k7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG59XG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBUYWJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tIEJyYW5kIG1haW4gY29sb3JzIC0tLSovXG4vKi0tLSBDb3ZlciBwYWdlIG1hcmdpbiAtLS0qL1xuLyotLS0gY29kZSB0YWcgY29sb3IgLS0tKi9cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cbi8qLS0tIFNlYXJjaCBidXR0b24gY29sb3IgLS0tKi9cbi8qLS0tIEZvbnRzIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFRhYlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExvYWRpbmcgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBVSSBUYWJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnRhYiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFiLmFjdGl2ZSxcbi51aS50YWIub3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFiLmxvYWRpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbn1cbi51aS50YWIubG9hZGluZyAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG59XG4udWkudGFiLmxvYWRpbmc6YmVmb3JlLFxuLnVpLnRhYi5sb2FkaW5nLnNlZ21lbnQ6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAxMDBweDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0xLjI1ZW0gMGVtIDBlbSAtMS4yNWVtO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogMi41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udWkudGFiLmxvYWRpbmc6YWZ0ZXIsXG4udWkudGFiLmxvYWRpbmcuc2VnbWVudDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMTAwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMS4yNWVtIDBlbSAwZW0gLTEuMjVlbTtcbiAgd2lkdGg6IDIuNWVtO1xuICBoZWlnaHQ6IDIuNWVtO1xuICBhbmltYXRpb246IGJ1dHRvbi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFRyYW5zaXRpb25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLSBCcmFuZCBtYWluIGNvbG9ycyAtLS0qL1xuLyotLS0gQ292ZXIgcGFnZSBtYXJnaW4gLS0tKi9cbi8qLS0tIGNvZGUgdGFnIGNvbG9yIC0tLSovXG4vKi0tLSBTaWduIHVwIGNvbG9yIC0tLSovXG4vKi0tLSBTZWFyY2ggYnV0dG9uIGNvbG9yIC0tLSovXG4vKi0tLSBGb250cyAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG4vKiBNYWluIGNvbG9ycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVHJhbnNpdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFRyYW5zaXRpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFRyYW5zaXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICBhbmltYXRpb24tZHVyYXRpb246IDMwMG1zO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLmFuaW1hdGluZy50cmFuc2l0aW9uIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4vKiBMb2FkaW5nICovXG4ubG9hZGluZy50cmFuc2l0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5OXB4O1xuICBsZWZ0OiAtOTk5OTlweDtcbn1cbi8qIEhpZGRlbiAqL1xuLmhpZGRlbi50cmFuc2l0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogVmlzaWJsZSAqL1xuLnZpc2libGUudHJhbnNpdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLyogIGJhY2tmYWNlLXZpc2liaWxpdHk6IEBiYWNrZmFjZVZpc2liaWxpdHk7XG4gIHRyYW5zZm9ybTogQHVzZTNEQWNjZWxlcmF0aW9uOyovXG59XG4vKiBEaXNhYmxlZCAqL1xuLmRpc2FibGVkLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmxvb3BpbmcudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBUcmFuc2l0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG4gIFNvbWUgdHJhbnNpdGlvbnMgYWRhcHRlZCBmcm9tIEFuaW1hdGUgQ1NTXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5lZGVuL2FuaW1hdGUuY3NzXG5cbiAgQWRkaXRpb25hbCB0cmFuc2l0aW9ucyBhZGFwdGVkIGZyb20gR2xpZGVcbiAgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZVxuKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJvd3NlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnRyYW5zaXRpb24uYnJvd3NlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBicm93c2VJbjtcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5vdXQsXG4udHJhbnNpdGlvbi5icm93c2UubGVmdC5vdXQge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlT3V0TGVmdDtcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5yaWdodC5vdXQge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlT3V0UmlnaHQ7XG59XG4vKiBJbiAqL1xuQGtleWZyYW1lcyBicm93c2VJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWigwcHgpO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICB6LWluZGV4OiA5OTk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBicm93c2VPdXRMZWZ0IHtcbiAgMCUge1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZVkoMGRlZykgcm90YXRlWCgwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTA1JSkgcm90YXRlWSgzNWRlZykgcm90YXRlWCgxMGRlZykgdHJhbnNsYXRlWigtMTBweCk7XG4gIH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlWSgwZGVnKSByb3RhdGVYKDBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYnJvd3NlT3V0UmlnaHQge1xuICAwJSB7XG4gICAgei1pbmRleDogOTk5O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlWSgwZGVnKSByb3RhdGVYKDBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTA1JSkgcm90YXRlWSgzNWRlZykgcm90YXRlWCgxMGRlZykgdHJhbnNsYXRlWigtMTBweCk7XG4gIH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSByb3RhdGVZKDBkZWcpIHJvdGF0ZVgoMGRlZykgdHJhbnNsYXRlWigtMTBweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEcm9wXG4tLS0tLS0tLS0tLS0tLS0qL1xuLmRyb3AudHJhbnNpdGlvbiB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM0LCAxLjYxLCAwLjcsIDEpO1xufVxuLmRyb3AudHJhbnNpdGlvbi5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBkcm9wSW47XG59XG4uZHJvcC50cmFuc2l0aW9uLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBkcm9wT3V0O1xufVxuLyogRHJvcCAqL1xuQGtleWZyYW1lcyBkcm9wSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBkcm9wT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZhZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udHJhbnNpdGlvbi5mYWRlLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgdXBcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgbGVmdFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSByaWdodFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodDtcbn1cbi50cmFuc2l0aW9uLmZhZGUub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgcmlnaHRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlSW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0VXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNSUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbGlwc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi5mbGlwLnRyYW5zaXRpb24uaW4sXG4uZmxpcC50cmFuc2l0aW9uLm91dCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNjAwbXM7XG59XG4uaG9yaXpvbnRhbC5mbGlwLnRyYW5zaXRpb24uaW4ge1xuICBhbmltYXRpb24tbmFtZTogaG9yaXpvbnRhbEZsaXBJbjtcbn1cbi5ob3Jpem9udGFsLmZsaXAudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogaG9yaXpvbnRhbEZsaXBPdXQ7XG59XG4udmVydGljYWwuZmxpcC50cmFuc2l0aW9uLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHZlcnRpY2FsRmxpcEluO1xufVxuLnZlcnRpY2FsLmZsaXAudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogdmVydGljYWxGbGlwT3V0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgaG9yaXpvbnRhbEZsaXBJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyB2ZXJ0aWNhbEZsaXBJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIGhvcml6b250YWxGbGlwT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdmVydGljYWxGbGlwT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTY2FsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi5zY2FsZS50cmFuc2l0aW9uLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNjYWxlSW47XG59XG4uc2NhbGUudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2NhbGVPdXQ7XG59XG5Aa2V5ZnJhbWVzIHNjYWxlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgc2NhbGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGbHlcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbndhcmQgKi9cbi50cmFuc2l0aW9uLmZseSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC42cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xufVxuLnRyYW5zaXRpb24uZmx5LmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseUluO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHVwXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseUluVXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgZG93blwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJbkRvd247XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgbGVmdFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJbkxlZnQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgcmlnaHRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmx5SW5SaWdodDtcbn1cbi8qIE91dHdhcmQgKi9cbi50cmFuc2l0aW9uLmZseS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmx5T3V0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXRVcDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXREb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGxlZnRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dExlZnQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgcmlnaHRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dFJpZ2h0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgZmx5SW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gIH1cbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjk3LCAwLjk3LCAwLjk3KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxNTAwcHgsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmx5SW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTUwMHB4LCAwKTtcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlJbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDE1MDBweCwgMCwgMCk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNTAwcHgsIDAsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgZmx5T3V0IHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XG4gIH1cbiAgNTAlLFxuICA1NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dFVwIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG4gIDQwJSxcbiAgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dERvd24ge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG4gIDQwJSxcbiAgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dFJpZ2h0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dExlZnQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2xpZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udHJhbnNpdGlvbi5zbGlkZS5pbixcbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSB1cFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluWTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHJpZ2h0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5YO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi50cmFuc2l0aW9uLnNsaWRlLm91dCxcbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0WTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgc2xpZGVJblkge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlSW5YIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0WSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2xpZGVPdXRYIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTd2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi50cmFuc2l0aW9uLnN3aW5nIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA4MDBtcztcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyB1cFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ0luWDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdJblk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHJpZ2h0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nSW5ZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi50cmFuc2l0aW9uLnN3aW5nLm91dCxcbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nT3V0WDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgc3dpbmdJblgge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgxNWRlZyk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtNy41ZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzd2luZ0luWSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgzMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKC0xNy41ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDcuNWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBzd2luZ091dFgge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtNy41ZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDE3LjVkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHN3aW5nT3V0WSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgwZGVnKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDcuNWRlZyk7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgtMTBkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBab29tXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnRyYW5zaXRpb24uem9vbS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG59XG4udHJhbnNpdGlvbi56b29tLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0O1xufVxuQGtleWZyYW1lcyB6b29tSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyB6b29tT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgU3RhdGljIEFuaW1hdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRW1waGFzaXNcbi0tLS0tLS0tLS0tLS0tLSovXG4uZmxhc2gudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGFzaDtcbn1cbi5zaGFrZS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xufVxuLmJvdW5jZS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZTtcbn1cbi50YWRhLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogdGFkYTtcbn1cbi5wdWxzZS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xufVxuLmppZ2dsZS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IGppZ2dsZTtcbn1cbi50cmFuc2l0aW9uLmdsb3cge1xuICBhbmltYXRpb24tZHVyYXRpb246IDIwMDBtcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xufVxuLnRyYW5zaXRpb24uZ2xvdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBnbG93O1xufVxuLyogRmxhc2ggKi9cbkBrZXlmcmFtZXMgZmxhc2gge1xuICAwJSxcbiAgNTAlLFxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDI1JSxcbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKiBTaGFrZSAqL1xuQGtleWZyYW1lcyBzaGFrZSB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbiAgMTAlLFxuICAzMCUsXG4gIDUwJSxcbiAgNzAlLFxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gIH1cbiAgMjAlLFxuICA0MCUsXG4gIDYwJSxcbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cbn1cbi8qIEJvdW5jZSAqL1xuQGtleWZyYW1lcyBib3VuY2Uge1xuICAwJSxcbiAgMjAlLFxuICA1MCUsXG4gIDgwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG4gIH1cbn1cbi8qIFRhZGEgKi9cbkBrZXlmcmFtZXMgdGFkYSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDEwJSxcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSkgcm90YXRlKC0zZGVnKTtcbiAgfVxuICAzMCUsXG4gIDUwJSxcbiAgNzAlLFxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoM2RlZyk7XG4gIH1cbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMCk7XG4gIH1cbn1cbi8qIFB1bHNlICovXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4vKiBKaWdnbGUgKi9cbkBrZXlmcmFtZXMgamlnZ2xlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuICA2NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjk1LCAxLjA1LCAxKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAwLjk1LCAxKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cbi8qIEdsb3cgKi9cbkBrZXlmcmFtZXMgZ2xvdyB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGQ0ZEO1xuICB9XG4gIDMwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjZDRDtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGQ0ZEO1xuICB9XG59XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBSZXNldFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdnbG9iYWwnO1xuQGVsZW1lbnQgOiAncmVzZXQnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUmVzZXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qIEJvcmRlci1Cb3ggKi9cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIGlQYWQgSW5wdXQgU2hhZG93cyAqL1xuaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIG1vYmlsZSBmaXJlZm94IHRvbyEgKi9cbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjcuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7IC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny0gYW5kIEZpcmVmb3ggMzktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMsIC8qIDEgKi9cbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBTY3JpcHRpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogSGlkZGVuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTaXRlXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAnZ2xvYmFsJztcbkBlbGVtZW50IDogJ3NpdGUnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLmxvYWRGb250cygpO1xuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogQGVtU2l6ZTtcbn1cblxuYm9keSB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG4gIG92ZXJmbG93LXg6IEBwYWdlT3ZlcmZsb3dYO1xuICBtaW4td2lkdGg6IEBwYWdlTWluV2lkdGg7XG4gIGJhY2tncm91bmQ6IEBwYWdlQmFja2dyb3VuZDtcbiAgZm9udC1mYW1pbHk6IEBwYWdlRm9udDtcbiAgZm9udC1zaXplOiBAZm9udFNpemU7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZUhlaWdodDtcbiAgY29sb3I6IEB0ZXh0Q29sb3I7XG4gIGZvbnQtc21vb3RoaW5nOiBAZm9udFNtb290aGluZztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBIZWFkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1IHtcbiAgZm9udC1mYW1pbHk6IEBoZWFkZXJGb250O1xuICBsaW5lLWhlaWdodDogQGhlYWRlckxpbmVIZWlnaHQ7XG4gIG1hcmdpbjogQGhlYWRlck1hcmdpbjtcbiAgZm9udC13ZWlnaHQ6IEBoZWFkZXJGb250V2VpZ2h0O1xuICBwYWRkaW5nOiAwZW07XG59XG5cbmgxIHtcbiAgbWluLWhlaWdodDogMXJlbTtcbiAgZm9udC1zaXplOiBAaDE7XG59XG5oMiB7XG4gIGZvbnQtc2l6ZTogQGgyO1xufVxuaDMge1xuICBmb250LXNpemU6IEBoMztcbn1cbmg0IHtcbiAgZm9udC1zaXplOiBAaDQ7XG59XG5oNSB7XG4gIGZvbnQtc2l6ZTogQGg1O1xufVxuXG5oMTpmaXJzdC1jaGlsZCxcbmgyOmZpcnN0LWNoaWxkLFxuaDM6Zmlyc3QtY2hpbGQsXG5oNDpmaXJzdC1jaGlsZCxcbmg1OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuXG5oMTpsYXN0LWNoaWxkLFxuaDI6bGFzdC1jaGlsZCxcbmgzOmxhc3QtY2hpbGQsXG5oNDpsYXN0LWNoaWxkLFxuaDU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRleHRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbnAge1xuICBtYXJnaW46IEBwYXJhZ3JhcGhNYXJnaW47XG4gIGxpbmUtaGVpZ2h0OiBAcGFyYWdyYXBoTGluZUhlaWdodDtcbn1cbnA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG5wOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5hIHtcbiAgY29sb3I6IEBsaW5rQ29sb3I7XG4gIHRleHQtZGVjb3JhdGlvbjogQGxpbmtVbmRlcmxpbmU7XG59XG5hOmhvdmVyIHtcbiAgY29sb3I6IEBsaW5rSG92ZXJDb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBAbGlua0hvdmVyVW5kZXJsaW5lO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTY3JvbGxiYXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4uYWRkU2Nyb2xsYmFycygpIHdoZW4gKEB1c2VDdXN0b21TY3JvbGxiYXJzKSB7XG5cbiAgLyogRm9yY2UgU2ltcGxlIFNjcm9sbGJhcnMgKi9cbiAgYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgd2lkdGg6IEBjdXN0b21TY3JvbGxiYXJXaWR0aDtcbiAgICBoZWlnaHQ6IEBjdXN0b21TY3JvbGxiYXJIZWlnaHQ7XG4gIH1cbiAgYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiBAdHJhY2tCYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6IEB0cmFja0JvcmRlclJhZGl1cztcbiAgfVxuICBib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiBAdGh1bWJCb3JkZXJSYWRpdXM7XG4gICAgYmFja2dyb3VuZDogQHRodW1iQmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiBAdGh1bWJUcmFuc2l0aW9uO1xuICB9XG4gIGJvZHkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp3aW5kb3ctaW5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IEB0aHVtYkluYWN0aXZlQmFja2dyb3VuZDtcbiAgfVxuICBib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IEB0aHVtYkhvdmVyQmFja2dyb3VuZDtcbiAgfVxuXG4gIC8qIEludmVydGVkIFVJICovXG4gIGJvZHkgLnVpLmludmVydGVkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogQHRyYWNrSW52ZXJ0ZWRCYWNrZ3JvdW5kO1xuICB9XG4gIGJvZHkgLnVpLmludmVydGVkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogQHRodW1iSW52ZXJ0ZWRCYWNrZ3JvdW5kO1xuICB9XG4gIGJvZHkgLnVpLmludmVydGVkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp3aW5kb3ctaW5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IEB0aHVtYkludmVydGVkSW5hY3RpdmVCYWNrZ3JvdW5kO1xuICB9XG4gIGJvZHkgLnVpLmludmVydGVkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogQHRodW1iSW52ZXJ0ZWRIb3ZlckJhY2tncm91bmQ7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBIaWdobGlnaHRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qIFNpdGUgKi9cbjo6LXdlYmtpdC1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaGlnaGxpZ2h0QmFja2dyb3VuZDtcbiAgY29sb3I6IEBoaWdobGlnaHRDb2xvcjtcbn1cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaGlnaGxpZ2h0QmFja2dyb3VuZDtcbiAgY29sb3I6IEBoaWdobGlnaHRDb2xvcjtcbn1cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGhpZ2hsaWdodEJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaGlnaGxpZ2h0Q29sb3I7XG59XG5cbi8qIEZvcm0gKi9cbnRleHRhcmVhOjotd2Via2l0LXNlbGVjdGlvbixcbmlucHV0Ojotd2Via2l0LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dEhpZ2hsaWdodEJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaW5wdXRIaWdobGlnaHRDb2xvcjtcbn1cbnRleHRhcmVhOjotbW96LXNlbGVjdGlvbixcbmlucHV0OjotbW96LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dEhpZ2hsaWdodEJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaW5wdXRIaWdobGlnaHRDb2xvcjtcbn1cbnRleHRhcmVhOjpzZWxlY3Rpb24sXG5pbnB1dDo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0SGlnaGxpZ2h0QmFja2dyb3VuZDtcbiAgY29sb3I6IEBpbnB1dEhpZ2hsaWdodENvbG9yO1xufVxuXG4uYWRkU2Nyb2xsYmFycygpO1xuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwibmF2IHtcbiAgcGFkZGluZzogMCAxNXB4O1xufVxuXG4ubmF2YmFyLW1lbnUge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG51bC5uYXZiYXItbWVudTpub3QoLmFjdGl2ZSkge1xuICBoZWlnaHQ6IDczcHg7XG59XG5cbi5uYXZiYXItaXRlbSB7XG4gIHBhZGRpbmc6IDEwcHg7XG5cbiAgLnJpZ2h0Lm1lbnUge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5cbi5uYXZiYXItaXRlbS5uYXZiYXItYnV0dG9uIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLm5hdmJhci1pdGVtOm5vdCgubmF2YmFyLWJ1dHRvbikgYTpob3Zlcixcbi5uYXZiYXItaXRlbSBhOmhvdmVyOjphZnRlciB7XG4gIGNvbG9yOiAjY2NjO1xufVxuXG4ubmF2YmFyLW9wdGlvbnMge1xuICA6aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIH1cbn1cblxuLm5vLWRvdHMtbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTpub25lO1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IHVuc2V0O1xuICBtYXJnaW4tYmxvY2stZW5kOiB1bnNldDtcbn1cblxuLmxvZ28tbGluayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubG9nbyB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICB9XG5cbi8qIE1vYmlsZSBtZW51ICovXG4ubmF2YmFyLW1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm5hdmJhci1tZW51IGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTVweCA1cHg7XG59XG5cbi5vdXRlci1uYXZiYXIge1xuICAjZnJvbnRwYWdlLXNlYXJjaC1iYXJ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgLnNlYXJjaC1iYXIge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgYXtcbiAgICBjb2xvcjogI2RiZWFmZjtcbiAgfVxufVxuXG4udG9nZ2xlIHtcbiAgb3JkZXI6IDE7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ubmF2YmFyLWl0ZW0ubmF2YmFyLWJ1dHRvbiB7XG4gIG9yZGVyOiAyO1xufVxuXG4ubmF2YmFyLWl0ZW0ge1xuICBvcmRlcjogMztcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmFjdGl2ZSAubmF2YmFyLWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2hlYWRlci1zZWFyY2gtYmFyIHtcbiAgd2lkdGg6IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgLnVpLmFjdGlvbi5pbnB1dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuICB9XG59XG5cbi8qIFRhYmxldCBtZW51ICovXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA3NDVweCkge1xuICAubmF2YmFyLW1lbnUge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAubmF2YmFyLWl0ZW0ubmF2YmFyLWJ1dHRvbiB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3JkZXI6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZmxleDogMTtcbiAgfVxuICAudG9nZ2xlIHtcbiAgICBmbGV4OiAxO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC8qIEJ1dHRvbiB1cCBmcm9tIHRhYmxldCBzY3JlZW4gKi9cbiAgLm5hdmJhci1tZW51IGxpLm5hdmJhci1idXR0b24gYSB7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIG1hcmdpbjogMnB4O1xuICB9XG4gIC5uYXZiYXItaXRlbSB7XG4gICAgLnJpZ2h0Lm1lbnUge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vKiBEZXNrdG9wIG1lbnUgKi9cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAubmF2YmFyLW1lbnUge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbiAgLmxvZ28ge1xuICAgIG9yZGVyOiAwO1xuICB9XG4gIC5uYXZiYXItaXRlbSB7XG4gICAgb3JkZXI6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5uYXZiYXItYnV0dG9uIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAudG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNoZWFkZXItc2VhcmNoLWJhciB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5sb2dvIHtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICB9XG59XG5cbi8qIG1lbnUgaWNvbiAoSGFtYnVyZ3VlciBpY29uKSAqL1xuLm1lbnUtaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmc6IDI4cHggMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLm1lbnUtaWNvbiAubmF2aWNvbiB7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1vdXQ7XG4gIHdpZHRoOiAxOHB4O1xufVxuXG4ubWVudS1pY29uIC5uYXZpY29uOmJlZm9yZSxcbi5tZW51LWljb24gLm5hdmljb246YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1lbnUtaWNvbiAubmF2aWNvbjpiZWZvcmUge1xuICB0b3A6IDVweDtcbn1cblxuLm1lbnUtaWNvbiAubmF2aWNvbjphZnRlciB7XG4gIHRvcDogLTVweDtcbn1cblxuLyogbWVudSBidG4gKi9cblxuLm1lbnUtYnRuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudSB7XG4gIG1heC1oZWlnaHQ6IDI0MHB4O1xufVxuXG4ubWVudS1idG46Y2hlY2tlZCB+IC5tZW51LWljb24gLm5hdmljb24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudS1pY29uIC5uYXZpY29uOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5cbi5tZW51LWJ0bjpjaGVja2VkIH4gLm1lbnUtaWNvbiAubmF2aWNvbjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cblxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudS1pY29uOm5vdCguc3RlcHMpIC5uYXZpY29uOmJlZm9yZSxcbi5tZW51LWJ0bjpjaGVja2VkIH4gLm1lbnUtaWNvbjpub3QoLnN0ZXBzKSAubmF2aWNvbjphZnRlciB7XG4gIHRvcDogMDtcbn1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQGltcG9ydCBcIi4uL25hdmJhci9uYXZiYXIubGVzc1wiO1xuXG5mb290ZXJ7XG4gIG1hcmdpbi10b3A6IDMqQGRlZmF1bHRNYXJnaW47XG59XG5cbmhlYWRlcntcbiAgbWFyZ2luLWJvdHRvbTogQGRlZmF1bHRNYXJnaW47XG59XG5cbmh0bWwuY292ZXItcGFnZXtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJyYW5kQ29sb3I7XG59XG5cbmJvZHkuY292ZXItcGFnZXtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4udWkucGFkZGVkLnNlZ21lbnRzLmJpZy5mb3JtIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cblxuLmNvbHVtbi5jZW50ZXJlZCB7XG4gIHdpZHRoOiAzMyUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNvbHVtbi5jZW50ZXJlZCB7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU0MHB4KSB7XG4gIC5jb2x1bW4uY2VudGVyZWQge1xuICB3aWR0aDogOTAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm5vLWRvdHMtbGlzdCA+IC5pdGVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNlbSAhaW1wb3J0YW50O1xufVxuXG5saSB+IC5pdGVte1xuICBwYWRkaW5nLWxlZnQ6IDJlbSAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGVyLml0ZW17XG4gIGJhY2tncm91bmQ6ICNmM2Y0ZjUgIWltcG9ydGFudDtcbn1cblxuLml0ZW0ubGVmdC1sb2dve1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xufVxuXG4ucmlnaHQuZmxvYXRlZC5yaWdodC5hbGlnbmVkLmNvbHVtbiB7XG4gICAgcGFkZGluZzogMC44ZW07XG59XG5cbi50ZXh0LW11dGVke1xuICBjb2xvcjogIzc3Nztcbn1cblxuLmlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuY29kZSB7XG4gIGNvbG9yOiBAY29kZUNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29kZUJhY2tncm91bmRDb2xvcjtcbiAgcGFkZGluZzogM3B4O1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ3JvYm90b2xpZ2h0JztcbiAgICBzcmM6IHVybCgnLi8uLi8uLi9mb250cy9yb2JvdG8tbGlnaHQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybCgnLi8uLi8uLi9mb250cy9yb2JvdG8tbGlnaHQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4iLCIvKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMTkgQ0VSTi5cbiAqICAgQ29weXJpZ2h0IChDKSAyMDE5IE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cblxuLmZvb3Rlci1nbG9iYWwge1xuICBjb2xvcjogQGZvb3RlclRleHREYXJrQ29sb3I7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcblxuICAmID4gLnVpLmdyaWQge1xuICAgIG1hcmdpbjogMHJlbTsgIC8vIERlZmF1bHQgd2FzIGAtMXJlbSAtMXJlbWBcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogQGZvb3RlclRleHRMaWdodENvbG9yO1xuXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQGZvb3RlclRleHREYXJrQ29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5mb290ZXItdG9wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGZvb3RlckxpZ2h0Q29sb3I7XG59XG5cbi5tYXJnaW4tc21hbGwge1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW07XG59XG5cbi5mb290ZXItYm90dG9tIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGZvb3RlckRhcmtDb2xvcjtcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwwLDAsLjIpIGluc2V0O1xufVxuXG4uaW52ZW5pby1yZG0tZm9vdGVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbiAgd2lkdGg6IDYyLjUlO1xuICBwYWRkaW5nOiAxZW0gMGVtIDFlbSAwZW07XG59XG5cbi5yZG0tZm9vdGVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZzogMWVtIDBlbSAxZW0gMGVtO1xufVxuXG4jbGFuZy1jb2RlIHtcbiAgbWluLXdpZHRoOiAxNGVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuaW52ZW5pby1yZG0tZm9vdGVyIHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmludmVuaW8tcmRtLWZvb3RlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnJkbS1mb290ZXIge1xuICAgIHdpZHRoOiAzMyU7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAucmRtLWZvb3RlciB7XG4gICAgd2lkdGg6IDMzJTtcbiAgfVxuICAjbGFuZy1jb2RlIHtcbiAgICBtaW4td2lkdGg6IDEwZW07XG4gIH1cbn1cbiIsIi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKlxuICogSW52ZW5pbyBBcHAgUkRNIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuXG5cbi5udW1iZXJpbmcge1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgZm9udC1zaXplOiA0ZW07XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMzc3Y2Q5MTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZmxleC1jZW50ZXItdmVydGljYWxseSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbn1cblxuLmZyb250cGFnZS10aXRsZSB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS13aWR0aDogOTkzcHgpLFxub25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5M3B4KSB7XG4gICAgLmZsZXgtY2VudGVyLXZlcnRpY2FsbHkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDk5M3B4KSxcbm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTNweCkge1xuICAgIC5mbGV4LWNlbnRlci12ZXJ0aWNhbGx5IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG59XG5cbi5jb21tYW5kLWxpbmUge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGNvbG9yOiByZ2JhKDE2LCAxNiwgMTYsIDAuNyk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1heC13aWR0aDogMzMycHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5cbi5pbmxpbmUtcm93IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5pbmxpbmUtcm93LXBhbmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi5nb3RvLWJ1dHRvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZ290by1idXR0b24gYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICBwYWRkaW5nOiAxNXB4IDMwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAzNzdjZDtcbiAgICBjb2xvcjogcmdiKDIxMiwgMjI5LCAyMzkpICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG5cbi5nb3RvLWJ1dHRvbiBhOmhvdmVyLFxuLmdvdG8tYnV0dG9uIGE6YWN0aXZlIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cbiIsIi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMSBHcmF6IFVuaXZlcnNpdHkgb2YgVGVjaG5vbG9neS5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG5cbi8qKiBEZXBvc2l0IHBhZ2Ugc3R5bGVzICovXG5cbiNkZXBvc2l0LWZvcm0ge1xuXG4gIC5maWVsZCBsYWJlbC50aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVhYWFkOTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAxLjA1ZW07XG5cbiAgICBsYWJlbCB7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gIC8qRmllbGQgTGFiZWxcblxuICAgIElkZWFsbHkgd2UgZXZlbnR1YWxseSBjb252ZXJnZSBvbiBhIGRlc2lnbiBzeXN0ZW0gdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuXG4gICAgdG9wLWxldmVsIGZpZWxkcy9sYWJlbHMgYW5kIHN1YmZpZWxkcy9sYWJlbHNcbiAgKi9cbiAgLnVpLmZvcm0gLmZpZWxkIC5mb3JtLWdyb3VwIGxhYmVsLFxuICAudWkuZm9ybSAuZmllbGQuYWRkaXRpb25hbC1kZXNjcmlwdGlvbnMgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgbGFiZWwuZmllbGQtbGV2ZWwtY2xhc3Mge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAmLnNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweFxuICAgIH1cbiAgfVxuICAvKiovXG5cbiAgLnNhdmUtYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgfVxuXG4gIC5wcmV2aWV3LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIH1cblxuICBpLmljb24ubG9hZGluZ3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICB9XG5cbiAgLmFjY2Vzcy1yaWdodCB7XG4gICAgLmlubGluZS5maWVsZHMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjc1ZW07XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2stZWRpdG9yX19lZGl0YWJsZSB7XG4gICAgbWluLWhlaWdodDogOC41ZW07XG4gIH1cblxuICAudWkuZm9ybSBsYWJlbC5oZWxwdGV4dHtcbiAgICBtYXJnaW4tdG9wOiAtOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICM3MzczNzM7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG4gIC51aS5mb3JtIC5maWVsZCAudWkubGlzdCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIC5kZXBvc2l0LXNpZGViYXIgLnVpLmNhcmQge1xuICAgIHdpZHRoOiB1bnNldDsgIC8vIEFsbG93cyB0aGUgc2lkZWJhciBjYXJkcyB0byB0YWtlIHRoZSBmdWxsIHNwYWNlIG9mIHRoZWlyIGNvbHVtblxuICB9XG4gIC8qKlByb3RlY3Rpb24gV2lkZ2V0Ki9cbiAgLnVpLmNhcmQuYWNjZXNzLXJpZ2h0IHtcbiAgICAuZmllbGQtbGFiZWwtY2xhc3Mge1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgIH1cbiAgICBsYWJlbCB7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgbGFiZWxbZm9yPVwiYWNjZXNzLmVtYmFyZ28udW50aWxcIl0ge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cbiAgICAuY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgICYgYiB7XG4gICAgICAgICAgbWFyZ2luOiAwZW0gMGVtIDAuNWVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgfVxuICAgICAgICAuaGVhZGVyIHtcbiAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC51aS5tZXNzYWdlIHtcbiAgICAgICAgcGFkZGluZzogMWVtIDAuN2VtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5kaXNhYmxlZC5kZXNjcmlwdGlvbiB7XG4gICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgfVxuICAgIC51aS5kaXZpZGVyIHtcbiAgICAgIG1hcmdpbjogMC4zcmVtIDByZW07XG4gICAgfVxuICB9XG5cbiAgLnNpZGViYXItYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG4vKkRlc2NyaXB0aW9uKi9cbi5pdGVtIGRpdi5kZXNjcmlwdGlvbjpub3QoLmxpY2Vuc2UtaXRlbS1kZXNjcmlwdGlvbikge1xuICBkaXNwbGF5OiBpbml0aWFsICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjAgQ0VSTi5cbiAqXG4gKiBJbnZlbmlvIEFwcCBSRE0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdFxuICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZTsgc2VlIExJQ0VOU0UgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG5cbi51aS5jYXJkID4gLmNvbnRlbnQge1xuICBwYWRkaW5nOiAwLjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5mYWNldC1jb250ZW50ID4gLnVpLmxpc3Qge1xuICBwYWRkaW5nOiAwZW0gMGVtIDAuMjVlbSAwLjVlbSAhaW1wb3J0YW50O1xufVxuXG4uZmFjZXQtY29udGVudCA+IC51aS5saXN0ID4gLml0ZW0gPiAuZmFjZXQtc3VidGl0bGUge1xuICBwYWRkaW5nOiAwLjJlbSAwZW0gIWltcG9ydGFudDtcbn1cblxuLnRpdGxlID4gLnJpZ2h0LmZsb2F0ZWQgIHtcbiAgbWFyZ2luLXRvcDogLTAuMnJlbSAhaW1wb3J0YW50O1xufVxuXG4ucGFkZGVkLXNtYWxsIHtcbiAgcGFkZGluZzogMXJlbSAwcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5uby1wYWRkZWQge1xuICBwYWRkaW5nOiAwcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5mYWNldC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuXG4gIC5mYWNldC1jb3VudCB7XG4gICAgb3JkZXI6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cbiIsIi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjEgR3JheiBVbml2ZXJzaXR5IG9mIFRlY2hub2xvZ3kuXG4gKlxuICogSW52ZW5pbyBSRE0gUmVjb3JkcyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cblxubmF2IHtcbiAgcGFkZGluZzogMCAxNXB4O1xufVxuXG4ubmF2YmFyLW1lbnUge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubmF2YmFyLWl0ZW0ge1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ubmF2YmFyLWl0ZW06bm90KC5uYXZiYXItYnV0dG9uKSBhOmhvdmVyLFxuLm5hdmJhci1pdGVtIGE6aG92ZXI6OmFmdGVyIHtcbiAgY29sb3I6ICNjY2M7XG59XG5cbi5uYXZiYXItaXRlbTpob3Zlcjpub3QoLm5hdmJhci1idXR0b24pOm5vdCgubmF2YmFyLXNlYXJjaC1iYXIpe1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGE6aG92ZXJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59XG5cbi5sb2dvLWxpbmsge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5yZG0tc2lnbi1idXR0b25zIHtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDBweDtcbn1cblxuLnJkbS1wbHVzLW1lbnUge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc0NXB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KXtcbiAgLnJkbS1wbHVzLW1lbnUtcmVzcG9uc2l2ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtIDtcbiAgfVxuXG4gIC51c2VyLXByb2ZpbGUge1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubG9nbyB7XG4gIHdpZHRoOiAyMDBweDtcbn1cblxuLyogTW9iaWxlIG1lbnUgKi9cbi5uYXZiYXItbWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubmF2YmFyLW1lbnUgbGkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxNXB4IDVweDtcbn1cblxuLnRvZ2dsZSB7XG4gIG9yZGVyOiAxO1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5uYXZiYXItaXRlbS5uYXZiYXItYnV0dG9uIHtcbiAgb3JkZXI6IDI7XG59XG5cbi5uYXZiYXItaXRlbSB7XG4gIG9yZGVyOiAzO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYWN0aXZlIC5uYXZiYXItaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jaGVhZGVyLXNlYXJjaC1iYXIge1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC51aS5hY3Rpb24uaW5wdXQge1xuICAgIG1hcmdpbi1yaWdodDogNDBweDtcbiAgfVxufVxuXG4vKiBUYWJsZXQgbWVudSAqL1xuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNzQ1cHgpIHtcbiAgLm5hdmJhci1tZW51IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLm5hdmJhci1pdGVtLm5hdmJhci1idXR0b24ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG9yZGVyOiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZsZXg6IDE7XG4gIH1cbiAgLnRvZ2dsZSB7XG4gICAgZmxleDogMTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAvKiBCdXR0b24gdXAgZnJvbSB0YWJsZXQgc2NyZWVuICovXG4gIC5uYXZiYXItbWVudSBsaS5uYXZiYXItYnV0dG9uIGEge1xuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgICBtYXJnaW46IDJweDtcbiAgfVxufVxuXG4vKiBEZXNrdG9wIG1lbnUgKi9cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAubmF2YmFyLW1lbnUge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbiAgLmxvZ28ge1xuICAgIG9yZGVyOiAwO1xuICB9XG4gIC5uYXZiYXItaXRlbSB7XG4gICAgb3JkZXI6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5uYXZiYXItYnV0dG9uIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAudG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNoZWFkZXItc2VhcmNoLWJhciB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5sb2dvIHtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICB9XG59XG5cbi8qIG1lbnUgaWNvbiAoSGFtYnVyZ3VlciBpY29uKSAqL1xuLm1lbnUtaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmc6IDI4cHggMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLm1lbnUtaWNvbiAubmF2aWNvbiB7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1vdXQ7XG4gIHdpZHRoOiAxOHB4O1xufVxuXG4ubWVudS1pY29uIC5uYXZpY29uOmJlZm9yZSxcbi5tZW51LWljb24gLm5hdmljb246YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1lbnUtaWNvbiAubmF2aWNvbjpiZWZvcmUge1xuICB0b3A6IDVweDtcbn1cblxuLm1lbnUtaWNvbiAubmF2aWNvbjphZnRlciB7XG4gIHRvcDogLTVweDtcbn1cblxuLyogbWVudSBidG4gKi9cblxuLm1lbnUtYnRuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudSB7XG4gIG1heC1oZWlnaHQ6IDI0MHB4O1xufVxuXG4ubWVudS1idG46Y2hlY2tlZCB+IC5tZW51LWljb24gLm5hdmljb24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudS1pY29uIC5uYXZpY29uOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5cbi5tZW51LWJ0bjpjaGVja2VkIH4gLm1lbnUtaWNvbiAubmF2aWNvbjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cblxuLm1lbnUtYnRuOmNoZWNrZWQgfiAubWVudS1pY29uOm5vdCguc3RlcHMpIC5uYXZpY29uOmJlZm9yZSxcbi5tZW51LWJ0bjpjaGVja2VkIH4gLm1lbnUtaWNvbjpub3QoLnN0ZXBzKSAubmF2aWNvbjphZnRlciB7XG4gIHRvcDogMDtcbn1cbiIsIi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMCBDRVJOLlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjAgTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkuXG4gKiAgIENvcHlyaWdodCAoQykgMjAyMSBHcmF6IFVuaXZlcnNpdHkgb2YgVGVjaG5vbG9neS5cbiAqXG4gKiBJbnZlbmlvIFJETSBSZWNvcmRzIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuXG4gLmZvbnQtc21hbGwge1xuICAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGxcbiB9XG5cbiAuZm9udC10aW55IHtcbiAgICAgZm9udC1zaXplOiBAZm9udC1zaXplLXRpbnlcbiB9XG5cbiAudG9wLWJvdHRvbS1wYWRkZWQge1xuICAgICBtYXJnaW46IDE1cHggMHB4IDIwcHggMHB4O1xuIH1cblxuIC8vIFByZXZpZXdcbiAuaWlpZi1wcmV2aWV3LWltZyB7XG4gICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuIH1cblxuIC5wcmV2aWV3LWlmcmFtZSB7XG4gICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiB9XG5cbiAvLyBSZWNvcmQgaW5mb1xuXG4gLnVpLmxhYmVsID4gLmljb24geyAvL092ZXJ3cml0ZSBkZWZhdWx0IGljb25cbiAgICAgbWFyZ2luOiAwcmVtIDAuMjVyZW0gMHJlbSAwcmVtO1xuIH1cblxuIC5zdGF0cy1ib3gge1xuICAgICBwYWRkaW5nOiAxcmVtIDByZW0gMHJlbSAwcmVtO1xuXG4gICAgIC5zdGF0cy1kYXRhIHtcbiAgICAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1tYXNzaXZlO1xuICAgICB9XG4gfVxuXG4gZGQgeyAvLyBTdGFydCBsZWZ0IGFsaWduZWRcbiAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMHB4O1xuIH1cblxuIC52ZXJzaW9uLWFjdGl2ZSB7XG4gICAgIGJhY2tncm91bmQtY29sb3I6IEB2ZXJzaW9uQWN0aXZlO1xuIH1cblxuIC51aS5yZG0tc2lkZWJhciB7XG4gICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgIGJvcmRlcjogMXB4IHNvbGlkICNlM2UzZTM7XG4gICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiB9XG5cbiAuaW5saW5lLW9yY2lkIHtcbiAgICAgaGVpZ2h0OiBAZm9udC1zaXplLWJhc2U7XG4gfVxuXG4gLmlubGluZS1vcmNpZC1pY29uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIH1cblxuIC50aGluLWxpbmUge1xuICAgICBib3JkZXI6IG5vbmU7XG4gICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XG4gfVxuXG4gLy8gRmlsZXMgdG9vZ2xlc1xuXG4gLmhpZGUtb24tY29sbGFwc2VkIHtcbiAgICAgZGlzcGxheTogYmxvY2s7XG4gfVxuIC5zaG93LW9uLWNvbGxhcHNlZCB7XG4gICAgIGRpc3BsYXk6IG5vbmU7XG4gfVxuIC5wYW5lbC10b2dnbGUuY29sbGFwc2VkIHtcbiAgIC5oaWRlLW9uLWNvbGxhcHNlZCB7XG4gICAgIGRpc3BsYXk6IG5vbmU7XG4gICB9XG4gICAuc2hvdy1vbi1jb2xsYXBzZWQge1xuICAgICBkaXNwbGF5OiBibG9jaztcbiAgIH1cbiB9XG5cbiAvLyBQcmV2aWV3IHZpZXdcbiAuY29sdW1uLnZlcnNpb25zLXByZXZpZXctaW5mbyB7XG4gICAgIHBhZGRpbmc6IDBlbSAhaW1wb3J0YW50O1xuIH1cblxuXG4gLyogdXNlIHRoZXNlIGNsYXNzZXMgdG8gY2hhbmdlIGFjY29yZGlvbiB0aXRsZSB3aGVuIHVwL2Rvd24gKi9cbiBkaXYuYWNjb3JkaW9uIGRpdi50aXRsZS5hY3RpdmUgc3Bhbi51cCB7XG4gICBkaXNwbGF5OiBub25lO1xuIH1cblxuIGRpdi5hY2NvcmRpb24gZGl2LnRpdGxlLmFjdGl2ZSBzcGFuLmRvd24ge1xuICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gfVxuXG4gZGl2LmFjY29yZGlvbiBkaXYudGl0bGUgc3Bhbi51cCB7XG4gICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiB9XG5cbiBkaXYuYWNjb3JkaW9uIGRpdi50aXRsZSBzcGFuLmRvd24ge1xuICAgZGlzcGxheTogbm9uZTtcbiB9XG5cbiAucmVjb3JkLW1hbmFnZW1lbnQtcm93e1xuICAgICBtYXJnaW4tdG9wOjEwcHg7XG5cbiAgICAgYnV0dG9uIHtcbiAgICAgICAgIG1hcmdpbi1yaWdodDo3cHggIWltcG9ydGFudDtcbiAgICAgfVxuIH1cblxuIC5wYW5lbC1zcGFjaW5nIHtcbiAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gfVxuXG4gLmZpbGUtYm94LW1lc3NhZ2Uge1xuICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gfVxuXG4gLnBhbmVsLWhlYWRpbmcge1xuICAgICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcbiAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHg7XG4gICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgICAgY29sb3I6ICM0MjhiY2EgIWltcG9ydGFudDtcbiAgICAgYSB7XG4gICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgIH1cbiAgICAgaSB7XG4gICAgICAgICAmLmFuZ2xle1xuICAgICAgICAgICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICAgICAgICAgfVxuICAgICB9XG4gICAgICYucmVzdHJpY3RlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHJlc3RyaWN0ZWQtY29tcG9uZW50cy1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICB9XG4gICAgICYuZW1iYXJnb2VkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZW1iYXJnb2VkLWNvbXBvbmVudHMtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgfVxuIH1cblxuIC5wYW5lbCB7XG4gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgIGJvcmRlci1jb2xvcjogI2RkZCAhaW1wb3J0YW50O1xuICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAuY29udGVudHtcbiAgICAgICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgICAgfVxuIH1cblxuLnVpLmFjY29yZGlvbi5wYW5lbCB7XG4gICAgJi5yZXN0cmljdGVke1xuICAgICAgICAgYm9yZGVyLWNvbG9yOiBAcmVzdHJpY3RlZC1jb21wb25lbnRzLWJvcmRlci1jb2xvciAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLmVtYmFyZ29lZCB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBAZW1iYXJnb2VkLWNvbXBvbmVudHMtYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgIH1cbn1cblxuLnVpLnRhYmxlLmZpbGVzLXRhYmxlIHtcbiAgICAgYm9yZGVyOiAwcHg7XG4gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XG4gICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xuICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICB3aWR0aDogMTAwJTtcbn1cblxuLnNoYXJlLW1vZGFsIHtcbiAgICAuc2hhcmUtY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgLmlucHV0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNoYXJlLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gYXV0bztcbiAgICB9XG59XG5cbi5zaGFyZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi51aS5hY2NvcmRpb24uY3JlYXRpYnV0b3JzIHtcbiAgLnRpdGxle1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxufVxuXG4udHJ1bmNhdGVkIHtcbiAgZmxleDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4iLCIvKlxuICogICBDb3B5cmlnaHQgKEMpIDIwMjEgVFUgV2llbi5cbiAqXG4gKiBJbnZlbmlvIFJETSBSZWNvcmRzIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2U7IHNlZSBMSUNFTlNFIGZpbGUgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuXG5wcmUuZXhwb3J0LnJlc3VsdCB7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgcGFkZGluZzo5LjVweDtcbiAgICBtYXJnaW46MCAwIDEwcHg7XG4gICAgZm9udC1zaXplOjEzcHg7XG4gICAgbGluZS1oZWlnaHQ6MS40Mjg1NztcbiAgICB3b3JkLWJyZWFrOmJyZWFrLWFsbDtcbiAgICB3b3JkLXdyYXA6YnJlYWstd29yZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7XG4gICAgYm9yZGVyOjFweCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci1yYWRpdXM6NHB4O1xufSIsIi8qXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIENFUk4uXG4gKiAgIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LlxuICpcbiAqIEludmVuaW8gQXBwIFJETSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlOyBzZWUgTElDRU5TRSBmaWxlIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlcy5sZXNzXCI7XG5AaW1wb3J0IFwiZm9vdGVyLmxlc3NcIjtcbkBpbXBvcnQgXCJmcm9udHBhZ2UubGVzc1wiO1xuQGltcG9ydCBcImRlcG9zaXQubGVzc1wiO1xuQGltcG9ydCBcInNlYXJjaC5sZXNzXCI7XG5AaW1wb3J0IFwibmF2YmFyLmxlc3NcIjtcbkBpbXBvcnQgXCJsYW5kaW5nX3BhZ2UubGVzc1wiO1xuQGltcG9ydCBcImV4cG9ydF9wYWdlLmxlc3NcIjtcblxuaHRtbCxcbmJvZHkge1xuICBjb2xvcjogIzAwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5vdXRlci1uYXZiYXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAbmF2YmFyX2JhY2tncm91bmRfaW1hZ2U7XG4gIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXJfYmFja2dyb3VuZF9jb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAjaW52ZW5pby1uYXYge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgI2Zyb250cGFnZS1zZWFyY2gtYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAuc2VhcmNoLWJhciB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogI2RiZWFmZjtcbiAgfVxufVxuXG4uaXRlbS5yaWdodC1tZW51IHtcbiAgbGluZS1oZWlnaHQ6IDQ0cHggIWltcG9ydGFudDtcbn1cblxuLm5vLWRvdHMtbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB1bnNldDtcbiAgbWFyZ2luLWJsb2NrLWVuZDogdW5zZXQ7XG59XG5cbi5jZW50ZXJlZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRpdGxlY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4vLyBGcm9udHBhZ2Vcbi5zZWN0aW9uLWNvbnRlbnQtZGFyay1iZyxcbi5zZWN0aW9uLWNvbnRlbnQtd2hpdGUtYmcsXG4uc2VjdGlvbi1jb250ZW50LWxpZ2h0LWJnIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoMzBweCk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDIgKiAzMHB4KTtcblxuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICB9XG59XG5cbi5zZWN0aW9uLWNvbnRlbnQtZGFyay1iZyB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDMwcHgpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDIgKiAzMHB4KTtcbn1cblxuLnNlY3Rpb24tY29udGVudC13aGl0ZS1iZyB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDQwcHgpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDIgKiAzMHB4KTtcbn1cblxuLnNlY3Rpb24tY29udGVudC1saWdodC1iZyB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDYwcHgpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDIgKiAzMHB4KTtcblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgLy8gTk9URTogRml4ZXMgc3BhY2luZyBiZXR3ZWVuIGNvbnRlbnQgYW5kIGZvb3RlciBpbiB0aGUgZnJvbnRwYWdlXG4gICAgLy8gVE9ETzogRml4IGJvZHkgY29udGVudCBwYWRkaW5nL21hcmdpbnMgaW4gZ2VuZXJhbFxuICAgIG1hcmdpbi1ib3R0b206IC0xcmVtO1xuICB9XG59XG5cbi5zZWN0aW9uLWNvbnRlbnQtd2hpdGUtYmcgYSxcbi5zZWN0aW9uLWNvbnRlbnQtbGlnaHQtYmcgYSxcbi5ocC1ibG9nLXNlY3Rpb24gYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMwMzc3Y2RiNTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnNlY3Rpb24tY29udGVudC13aGl0ZS1iZyBhOmhvdmVyLFxuLnNlY3Rpb24tY29udGVudC13aGl0ZS1iZyBhOmZvY3VzLFxuLnNlY3Rpb24tY29udGVudC1saWdodC1iZyBhOmhvdmVyLFxuLnNlY3Rpb24tY29udGVudC1saWdodC1iZyBhOmZvY3VzLFxuLmhwLWJsb2ctc2VjdGlvbiBhOmhvdmVyLFxuLmhwLWJsb2ctc2VjdGlvbiBhOmZvY3VzIHtcbiAgY29sb3I6ICMwMzc3Y2Q7XG59XG5cbi5zZWN0aW9uLWNvbnRlbnQtd2hpdGUtYmcsXG4uc2VjdGlvbi1jb250ZW50LWxpZ2h0LWJnIHtcbiAgY29sb3I6ICMzMzM7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICBmb250LXNpemU6IDEuMmVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4uc2VjdGlvbi1jb250ZW50LWxpZ2h0LWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNzMsIDIwNiwgMjI0LCAwLjUyKTtcbn1cblxuLnNlY3Rpb24tY29udGVudC13aGl0ZS1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5zZWN0aW9uLWNvbnRlbnQtd2hpdGUtYmcgaDYsXG4uc2VjdGlvbi1jb250ZW50LWxpZ2h0LWJnIGg2IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMDM3N2NkO1xufVxuXG4uc2VjdGlvbi10aXRsZSB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDIuNWVtO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICMwMzc3Y2Q7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5zZWN0aW9uLXN1YnRpdGxlIHtcbiAgY29sb3I6ICMwMzc3Y2QgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG4uaW52ZW5pby1yZG0tcHJvamVjdC1nb2FscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGhlaWdodDogYXV0bztcblxuICAucmRtLWdvYWwge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gICAgcGFkZGluZzogMWVtO1xuICB9XG59XG5cbi5pbnZlbmlvLXJkbS1wcm9qZWN0LWNvbGxhYm9yYXRvcnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC5yZG0tY29sbGFib3JhdG9ycyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nOiAxZW07XG4gIH1cbn1cblxuLmdldC1zdGFydGVkLXNlY3Rpb24gPiAuc2VjdGlvbi10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMi42NWVtO1xufVxuXG4uY29sbGFib3JhdG9ycy1sb2dvIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaW52ZW5pby1yZG0tcHJvamVjdC1nb2FscyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuXG4gICAgLnJkbS1nb2FsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICAub3V0ZXItbmF2YmFyIHtcbiAgICAjZnJvbnRwYWdlLXNlYXJjaC1iYXIge1xuICAgICAgLnVpLmNvbnRhaW5lci5ncmlkIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5zZWFyY2gtYmFyIHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmludmVuaW8tcmRtLXByb2plY3QtY29sbGFib3JhdG9ycyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuXG4gICAgLnJkbS1jb2xsYWJvcmF0b3JzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4uZmVhdHVyZXMtc2VjdGlvbiBpbWcge1xuICBtYXgtaGVpZ2h0OiA2MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uZmVhdHVyZXMtc2VjdGlvbi1yb3cge1xuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbn1cblxuLmJyb3VnaHQtdG8teW91LXNlY3Rpb24gaW1nLFxuLnRydXN0ZWQtYnktc2VjdGlvbiBpbWcge1xuICBtYXgtaGVpZ2h0OiAxNTBweDtcbiAgbWF4LXdpZHRoOiAyNTBweDtcbiAgbWFyZ2luOiAyMHB4O1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4vLyBTZWFyY2ggcGFnZVxuLnJlY29yZC1lbGVtIC5yZWNvcmQtdGl0bGUge1xuICBjb2xvcjogIzAzNzdjZDtcbn1cblxuLnJlY29yZC1lbGVtIC5yZWNvcmQtZGVzY3JpcHRpb24ge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzNzdjZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDM3N2NkO1xufVxuXG4ucGFuZWwtZnJlZS10aXRsZSB7XG4gIGNvbG9yOiAjMDM3N2NkO1xufVxuXG4vLyBMb2ctaW4gYW5kIHNpZ24tdXBcbi5jb3Zlci1wYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogQG5hdmJhcl9iYWNrZ3JvdW5kX2ltYWdlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyX2JhY2tncm91bmRfY29sb3I7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi50aGVtZS5oZWFkZXIge1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4vLyBEZXBvc2l0cyBwYWdlXG5cbi5pdGVtLmRlcG9zaXRzLWxpc3QtaXRlbSB7XG4gIC51aS5ncmlkIC5jaGVja2JveC1jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5pY29uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICB9XG4gIH1cblxuICBkaXYuc3RhdHVzLWljb24ge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxuXG4gIC5hY3Rpb25zID4gYSxcbiAgLnN0YXRzID4gc3BhbiB7XG4gICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gIH1cbn1cblxuLnVpLml0ZW1zID4gLml0ZW0gLmV4dHJhLmxhYmVscy1hY3Rpb25zIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NWVtO1xufVxuXG4udWkubGFiZWwuYWNjZXNzLXN0YXR1cyB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuXG4gICYub3BlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGFjY2Vzc1JpZ2h0T3BlbjtcbiAgfVxuICAmLnJlc3RyaWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBhY2Nlc3NSaWdodFJlc3RyaWN0ZWQ7XG4gIH1cbiAgJi5lbWJhcmdvZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBhY2Nlc3NSaWdodEVtYmFyZ29lZDtcbiAgfVxuICAmLm1ldGFkYXRhLW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBhY2Nlc3NSaWdodE1ldGFkYXRhT25seTtcbiAgfVxufVxuXG4udWkuY2FyZC5ib3JkZXJsZXNzLWZhY2V0IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgLmNvbnRlbnQge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgLmhlYWRlciB7XG4gICAgICBmb250LXNpemU6IDEuMWVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbi5jb250ZW50LmZhY2V0LWNvbnRlbnQuYWN0aXZlIHtcbiAgcGFkZGluZy1sZWZ0OiAyMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5mYWNldC1zdWJ0aXRsZSB7XG4gIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4ucmVzdWx0LW9wdGlvbnMge1xuICBoZWlnaHQ6IDY2cHg7XG59XG5cbi5pbmxpbmUtb3JjaWQge1xuICBoZWlnaHQ6IEBmb250LXNpemUtYmFzZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZy1yaWdodDogM3B4O1xufVxuXG4udWkuZ3JpZCB7XG4gIC5yb3cuZmlsZS11cGxvYWQtYXJlYS1yb3cge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcblxuICAgIC51aS5iYXNpYy52ZXJ5LnBhZGRlZC5zZWdtZW50LmZpbGUtdXBsb2FkLWFyZWEge1xuICAgICAgYm9yZGVyOiAycHggZGFzaGVkICM5OTk5OTk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZWVlZWVlIG5vbmU7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAmLm5vLWZpbGVzIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnJvdy5maWxlLXVwbG9hZC1ub3RlLXJvdyB7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgfVxuXG4gIC5yb3cuZmlsZS1pbXBvcnQtbm90ZS1yb3cge1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgfVxufVxuXG4udWkudGFibGUge1xuICAudWkuYmx1ZS5tZWRpdW0uZmlsZS11cGxvYWQtcHJvZ3Jlc3Mge1xuICAgICYucHJvZ3Jlc3MsXG4gICAgJi5zdWNjZXNzIHtcbiAgICAgICYuYWN0aXZlLFxuICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgJi5lcnJvciB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZpbGUtdGFibGUtcm93IHtcbiAgICAuZmlsZS10YWJsZS1oZWFkZXItY2VsbCB7XG4gICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIH1cbiAgICAuZmlsZS10YWJsZS1jZWxsIHtcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgJi5maWxlLXVwbG9hZC1wZW5kaW5nIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udWkubW9kYWwge1xuICAuaGVhZGVyLmRlcG9zaXQtbW9kYWwtaGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgfVxufVxuXG4udWkubWVudSB7XG4gIC5hY3RpdmUuaXRlbS5saWNlbnNlLW1lbnUtaXRlbS1hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogIzIxODVkMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NWQwO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMGQ3MWJiO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBkNzFiYjtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuI3JlY29yZC1jaXRhdGlvbiB7XG4gIG1hcmdpbjogMHB4O1xuXG4gIGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG5cbiAgLmNpdGF0aW9uLXN0eWxlLXNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDE1N3B4O1xuXG4gICAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gICAgICBtaW4td2lkdGg6IDExMnB4O1xuICAgICAgbWF4LXdpZHRoOiAxMTJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5jaXRhdGlvbi1lcnJvci1tZXNzYWdlIHtcbiAgICBjb2xvcjogIzlmM2EzODtcbiAgfVxufVxuXG4jcmVjb3JkLXN1YmplY3RzIHtcbiAgLnN1YmplY3Qtc2NoZW1lIHtcbiAgICAmLmNvbHVtbiB7XG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICAgIC5zdWJqZWN0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnN1YmplY3QtbGFiZWwge1xuICAgICYuY29sdW1uIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgLnN1YmplY3Qge1xuICAgICAgICBjb2xvcjojNzc3O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDExOSwgMTE5LCAxMTksIDAuNTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDMuNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuLy9zaG9ydGVyIGZyb250IHBhZ2UgaGVhZGVyXG4udWkuY29udGFpbmVyLmNvdmVyLXBhZ2Uge1xuICBoZWlnaHQ6IDEwZW0gIWltcG9ydGFudDtcbn1cblxuLy8gbGlua3MgdG9vIGJvbGRcbmEge1xuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7IFxufVxuIiwiQGltcG9ydCBcIkBsZXNzL2ludmVuaW9fYXBwX3JkbS90aGVtZVwiO1xuXG5AYnJhbmRDb2xvcjogI2Y0ZjRmNDtcblxuQG5hdmJhcl9iYWNrZ3JvdW5kX2ltYWdlOiB1bnNldDtcbkBuYXZiYXJfYmFja2dyb3VuZF9jb2xvcjogQGJyYW5kQ29sb3I7XG5AZm9vdGVyTGlnaHRDb2xvcjogQGJyYW5kQ29sb3I7XG5AZm9vdGVyRGFya0NvbG9yOiAjZjRmNGY0O1xuXG4ub3V0ZXItbmF2YmFyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTJkZWcsI2NlY2RjZCwjZjBmMGYwIDE1JSxyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuNjkpKSAhaW1wb3J0YW50O1xufVxuXG4udWkuc2VhcmNoLmJ1dHRvbiB7IFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDsgXG59XG5cbi51aS5zZWFyY2guYnV0dG9uOmZvY3VzLFxuLnVpLnNlYXJjaC5idXR0b246aG92ZXIge1xuIGJhY2tncm91bmQtY29sb3I6IzY2NjY2NyFpbXBvcnRhbnRcbn1cblxuXG5cbi5zZWN0aW9uLXRpdGxlIHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXNpemU6IDIuNWVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogIzAwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cblxuLmZyekV4dHJhU3BhY2VkIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7IFxufVxuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQnV0dG9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ2VsZW1lbnQnO1xuQGVsZW1lbnQgOiAnYnV0dG9uJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQnV0dG9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgbWluLWhlaWdodDogMWVtO1xuXG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IEB2ZXJ0aWNhbEFsaWduO1xuICBiYWNrZ3JvdW5kOiBAYmFja2dyb3VuZDtcbiAgY29sb3I6IEB0ZXh0Q29sb3I7XG5cbiAgZm9udC1mYW1pbHk6IEBmb250RmFtaWx5O1xuXG4gIG1hcmdpbjogMGVtIEBob3Jpem9udGFsTWFyZ2luIEB2ZXJ0aWNhbE1hcmdpbiAwZW07XG4gIHBhZGRpbmc6IEB2ZXJ0aWNhbFBhZGRpbmcgQGhvcml6b250YWxQYWRkaW5nIChAdmVydGljYWxQYWRkaW5nICsgQHNoYWRvd09mZnNldCk7XG5cbiAgdGV4dC10cmFuc2Zvcm06IEB0ZXh0VHJhbnNmb3JtO1xuICB0ZXh0LXNoYWRvdzogQHRleHRTaGFkb3c7XG4gIGZvbnQtd2VpZ2h0OiBAZm9udFdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lSGVpZ2h0O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG4gIGJveC1zaGFkb3c6IEBib3hTaGFkb3c7XG5cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICB3aWxsLWNoYW5nZTogQHdpbGxDaGFuZ2U7XG5cbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiBAdGFwQ29sb3I7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaG92ZXJCYWNrZ3JvdW5kQ29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBob3ZlckJhY2tncm91bmRJbWFnZTtcbiAgYm94LXNoYWRvdzogQGhvdmVyQm94U2hhZG93O1xuICBjb2xvcjogQGhvdmVyQ29sb3I7XG59XG5cbi51aS5idXR0b246aG92ZXIgLmljb24ge1xuICBvcGFjaXR5OiBAaWNvbkhvdmVyT3BhY2l0eTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZm9jdXNCYWNrZ3JvdW5kQ29sb3I7XG4gIGNvbG9yOiBAZm9jdXNDb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogQGZvY3VzQmFja2dyb3VuZEltYWdlICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IEBmb2N1c0JveFNoYWRvdyAhaW1wb3J0YW50O1xufVxuXG4udWkuYnV0dG9uOmZvY3VzIC5pY29uIHtcbiAgb3BhY2l0eTogQGljb25Gb2N1c09wYWNpdHk7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERvd25cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5idXR0b246YWN0aXZlLFxuLnVpLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGRvd25CYWNrZ3JvdW5kQ29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBkb3duQmFja2dyb3VuZEltYWdlO1xuICBjb2xvcjogQGRvd25Db2xvcjtcbiAgYm94LXNoYWRvdzogQGRvd25Cb3hTaGFkb3c7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBhY3RpdmVCYWNrZ3JvdW5kQ29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBhY3RpdmVCYWNrZ3JvdW5kSW1hZ2U7XG4gIGJveC1zaGFkb3c6IEBhY3RpdmVCb3hTaGFkb3c7XG4gIGNvbG9yOiBAYWN0aXZlQ29sb3I7XG59XG4udWkuYWN0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBhY3RpdmVIb3ZlckJhY2tncm91bmRDb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogQGFjdGl2ZUhvdmVyQmFja2dyb3VuZEltYWdlO1xuICBjb2xvcjogQGFjdGl2ZUhvdmVyQ29sb3I7XG59XG4udWkuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYWN0aXZlQmFja2dyb3VuZENvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAYWN0aXZlQmFja2dyb3VuZEltYWdlO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTcGVjaWZpY2l0eSBoYWNrICovXG4udWkubG9hZGluZy5sb2FkaW5nLmxvYWRpbmcubG9hZGluZy5sb2FkaW5nLmxvYWRpbmcuYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiBAbG9hZGluZ09wYWNpdHk7XG4gIHBvaW50ZXItZXZlbnRzOiBAbG9hZGluZ1BvaW50ZXJFdmVudHM7XG4gIHRyYW5zaXRpb246IEBsb2FkaW5nVHJhbnNpdGlvbjtcbn1cbi51aS5sb2FkaW5nLmJ1dHRvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuXG4gIG1hcmdpbjogQGxvYWRlck1hcmdpbjtcbiAgd2lkdGg6IEBsb2FkZXJTaXplO1xuICBoZWlnaHQ6IEBsb2FkZXJTaXplO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBjaXJjdWxhclJhZGl1cztcbiAgYm9yZGVyOiBAbG9hZGVyTGluZVdpZHRoIHNvbGlkIEBpbnZlcnRlZExvYWRlckZpbGxDb2xvcjtcbn1cbi51aS5sb2FkaW5nLmJ1dHRvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG5cbiAgbWFyZ2luOiBAbG9hZGVyTWFyZ2luO1xuICB3aWR0aDogQGxvYWRlclNpemU7XG4gIGhlaWdodDogQGxvYWRlclNpemU7XG5cbiAgYW5pbWF0aW9uOiBidXR0b24tc3BpbiBAbG9hZGVyU3BlZWQgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcblxuICBib3JkZXItcmFkaXVzOiBAY2lyY3VsYXJSYWRpdXM7XG5cbiAgYm9yZGVyLWNvbG9yOiBAaW52ZXJ0ZWRMb2FkZXJMaW5lQ29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogQGxvYWRlckxpbmVXaWR0aDtcblxuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4udWkubGFiZWxlZC5pY29uLmxvYWRpbmcuYnV0dG9uIC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgYnV0dG9uLXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG4udWkuYmFzaWMubG9hZGluZy5idXR0b246bm90KC5pbnZlcnRlZCk6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiBAbG9hZGVyRmlsbENvbG9yO1xufVxuLnVpLmJhc2ljLmxvYWRpbmcuYnV0dG9uOm5vdCguaW52ZXJ0ZWQpOmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogQGxvYWRlckxpbmVDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYnV0dG9ucyAuZGlzYWJsZWQuYnV0dG9uLFxuLnVpLmRpc2FibGVkLmJ1dHRvbixcbi51aS5idXR0b246ZGlzYWJsZWQsXG4udWkuZGlzYWJsZWQuYnV0dG9uOmhvdmVyLFxuLnVpLmRpc2FibGVkLmFjdGl2ZS5idXR0b24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IEBkaXNhYmxlZE9wYWNpdHkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIEJhc2ljIEdyb3VwIFdpdGggRGlzYWJsZWQgKi9cbi51aS5iYXNpYy5idXR0b25zIC51aS5kaXNhYmxlZC5idXR0b24ge1xuICBib3JkZXItY29sb3I6IEBkaXNhYmxlZEJvcmRlckNvbG9yO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbmltYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYW5pbWF0ZWQuYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IEBhbmltYXRlZFZlcnRpY2FsQWxpZ247XG4gIHotaW5kZXg6IEBhbmltYXRlZFpJbmRleDtcbn1cblxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAuY29udGVudCB7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uIC52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1yaWdodDogQGhvcml6b250YWxQYWRkaW5nO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBIb3Jpem9udGFsICovXG4udWkuYW5pbWF0ZWQuYnV0dG9uIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zaXRpb246IHJpZ2h0IEBhbmltYXRpb25EdXJhdGlvbiBAYW5pbWF0aW9uRWFzaW5nIDBzO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xMDAlO1xuICBtYXJnaW4tdG9wOiAtKEBsaW5lSGVpZ2h0IC8gMik7XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuYW5pbWF0ZWQuYnV0dG9uOmhvdmVyIC52aXNpYmxlLmNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMjAwJTtcbn1cbi51aS5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMCU7XG59XG5cbi8qIFZlcnRpY2FsICovXG4udWkudmVydGljYWwuYW5pbWF0ZWQuYnV0dG9uIC52aXNpYmxlLmNvbnRlbnQsXG4udWkudmVydGljYWwuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zaXRpb246IHRvcCBAYW5pbWF0aW9uRHVyYXRpb24gQGFuaW1hdGlvbkVhc2luZywgdHJhbnNmb3JtIEBhbmltYXRpb25EdXJhdGlvbiBAYW5pbWF0aW9uRWFzaW5nO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgcmlnaHQ6IGF1dG87XG59XG4udWkudmVydGljYWwuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHRvcDogLTUwJTtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpmb2N1cyAudmlzaWJsZS5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMCUpO1xuICByaWdodDogYXV0bztcbn1cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi8qIEZhZGUgKi9cbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50LFxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgQGFuaW1hdGlvbkR1cmF0aW9uIEBhbmltYXRpb25FYXNpbmcsIHRyYW5zZm9ybSBAYW5pbWF0aW9uRHVyYXRpb24gQGFuaW1hdGlvbkVhc2luZztcbn1cbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgb3BhY2l0eTogMDtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHNjYWxlKEBmYWRlU2NhbGVIaWdoKTtcbn1cbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbjpmb2N1cyAudmlzaWJsZS5jb250ZW50LFxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uOmhvdmVyIC52aXNpYmxlLmNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZShAZmFkZVNjYWxlTG93KTtcbn1cbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbjpmb2N1cyAuaGlkZGVuLmNvbnRlbnQsXG4udWkuZmFkZS5hbmltYXRlZC5idXR0b246aG92ZXIgLmhpZGRlbi5jb250ZW50IHtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW52ZXJ0ZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAd2hpdGUgaW5zZXQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZTtcbiAgY29sb3I6IEB3aGl0ZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogR3JvdXAgKi9cbi51aS5pbnZlcnRlZC5idXR0b25zIC5idXR0b24ge1xuICBtYXJnaW46IEBpbnZlcnRlZEdyb3VwQnV0dG9uT2Zmc2V0O1xufVxuLnVpLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuaW52ZXJ0ZWQudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgbWFyZ2luOiBAaW52ZXJ0ZWRWZXJ0aWNhbEdyb3VwQnV0dG9uT2Zmc2V0O1xufVxuLnVpLmludmVydGVkLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cblxuLyogU3RhdGVzICovXG5cbi8qIEhvdmVyICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogQHdoaXRlO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEB3aGl0ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGhvdmVyQ29sb3I7XG59XG5cbi8qIEFjdGl2ZSAvIEZvY3VzICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBAd2hpdGU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQHdoaXRlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAZm9jdXNDb2xvcjtcbn1cblxuLyogQWN0aXZlIEZvY3VzICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uLmFjdGl2ZTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IEBtaWRXaGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbWlkV2hpdGUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBmb2N1c0NvbG9yO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIExhYmVsZWQgQnV0dG9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5sYWJlbGVkLmJ1dHRvbjpub3QoLmljb24pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC5idXR0b24ge1xuICBtYXJnaW46IDBweDtcbn1cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBAbGFiZWxlZExhYmVsQWxpZ247XG4gIG1hcmdpbjogMHB4IDBweCAwcHggQGxhYmVsZWRMYWJlbEJvcmRlck9mZnNldCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IEBsYWJlbGVkTGFiZWxGb250U2l6ZTtcbiAgcGFkZGluZzogQGxhYmVsZWRMYWJlbFBhZGRpbmc7XG4gIGZvbnQtc2l6ZTogQGxhYmVsZWRMYWJlbEZvbnRTaXplO1xuICBib3JkZXItY29sb3I6IEBsYWJlbGVkTGFiZWxCb3JkZXJDb2xvcjtcbn1cblxuLyogVGFnICovXG4udWkubGFiZWxlZC5idXR0b24gPiAudGFnLmxhYmVsOmJlZm9yZSB7XG4gIHdpZHRoOiBAbGFiZWxlZFRhZ0xhYmVsU2l6ZTtcbiAgaGVpZ2h0OiBAbGFiZWxlZFRhZ0xhYmVsU2l6ZTtcbn1cblxuLyogUmlnaHQgKi9cbi51aS5sYWJlbGVkLmJ1dHRvbjpub3QoW2NsYXNzKj1cImxlZnQgbGFiZWxlZFwiXSkgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcbn1cbi51aS5sYWJlbGVkLmJ1dHRvbjpub3QoW2NsYXNzKj1cImxlZnQgbGFiZWxlZFwiXSkgPiAubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcbn1cblxuLyogTGVmdCBTaWRlICovXG4udWlbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdLmJ1dHRvbiA+IC5idXR0b24ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0uYnV0dG9uID4gLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU29jaWFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEZhY2Vib29rICovXG4udWkuZmFjZWJvb2suYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGZhY2Vib29rQ29sb3I7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAY29sb3JlZEJhY2tncm91bmRJbWFnZTtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkuZmFjZWJvb2suYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGZhY2Vib29rSG92ZXJDb2xvcjtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBpbnZlcnRlZFRleHRTaGFkb3c7XG59XG4udWkuZmFjZWJvb2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBmYWNlYm9va0Rvd25Db2xvcjtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBpbnZlcnRlZFRleHRTaGFkb3c7XG59XG5cbi8qIFR3aXR0ZXIgKi9cbi51aS50d2l0dGVyLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0d2l0dGVyQ29sb3I7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAY29sb3JlZEJhY2tncm91bmRJbWFnZTtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkudHdpdHRlci5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdHdpdHRlckhvdmVyQ29sb3I7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xufVxuLnVpLnR3aXR0ZXIuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0d2l0dGVyRG93bkNvbG9yO1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGludmVydGVkVGV4dFNoYWRvdztcbn1cblxuLyogR29vZ2xlIFBsdXMgKi9cbi51aS5nb29nbGUucGx1cy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ29vZ2xlUGx1c0NvbG9yO1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGludmVydGVkVGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG4gIGJveC1zaGFkb3c6IEBjb2xvcmVkQm94U2hhZG93O1xufVxuLnVpLmdvb2dsZS5wbHVzLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBnb29nbGVQbHVzSG92ZXJDb2xvcjtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBpbnZlcnRlZFRleHRTaGFkb3c7XG59XG4udWkuZ29vZ2xlLnBsdXMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBnb29nbGVQbHVzRG93bkNvbG9yO1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGludmVydGVkVGV4dFNoYWRvdztcbn1cblxuLyogTGlua2VkIEluICovXG4udWkubGlua2VkaW4uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpbmtlZEluQ29sb3I7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xufVxuLnVpLmxpbmtlZGluLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaW5rZWRJbkhvdmVyQ29sb3I7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xufVxuLnVpLmxpbmtlZGluLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlua2VkSW5Eb3duQ29sb3I7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xufVxuXG4vKiBZb3VUdWJlICovXG4udWkueW91dHViZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAeW91dHViZUNvbG9yO1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGludmVydGVkVGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG4gIGJveC1zaGFkb3c6IEBjb2xvcmVkQm94U2hhZG93O1xufVxuLnVpLnlvdXR1YmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHlvdXR1YmVIb3ZlckNvbG9yO1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGludmVydGVkVGV4dFNoYWRvdztcbn1cbi51aS55b3V0dWJlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAeW91dHViZURvd25Db2xvcjtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBpbnZlcnRlZFRleHRTaGFkb3c7XG59XG5cbi8qIEluc3RhZ3JhbSAqL1xuLnVpLmluc3RhZ3JhbS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5zdGFncmFtQ29sb3I7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAY29sb3JlZEJhY2tncm91bmRJbWFnZTtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkuaW5zdGFncmFtLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnN0YWdyYW1Ib3ZlckNvbG9yO1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGludmVydGVkVGV4dFNoYWRvdztcbn1cbi51aS5pbnN0YWdyYW0uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnN0YWdyYW1Eb3duQ29sb3I7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xufVxuXG4vKiBQaW50ZXJlc3QgKi9cbi51aS5waW50ZXJlc3QuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBpbnRlcmVzdENvbG9yO1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGludmVydGVkVGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG4gIGJveC1zaGFkb3c6IEBjb2xvcmVkQm94U2hhZG93O1xufVxuLnVpLnBpbnRlcmVzdC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGludGVyZXN0SG92ZXJDb2xvcjtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBpbnZlcnRlZFRleHRTaGFkb3c7XG59XG4udWkucGludGVyZXN0LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGludGVyZXN0RG93bkNvbG9yO1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGludmVydGVkVGV4dFNoYWRvdztcbn1cblxuLyogVksgKi9cbi51aS52ay5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNEQ3MTk4O1xuICBjb2xvcjogQHdoaXRlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAY29sb3JlZEJhY2tncm91bmRJbWFnZTtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkudmsuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHZrSG92ZXJDb2xvcjtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbi51aS52ay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHZrRG93bkNvbG9yO1xuICBjb2xvcjogQHdoaXRlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5idXR0b24gPiAuaWNvbjpub3QoLmJ1dHRvbikge1xuICBoZWlnaHQ6IEBpY29uSGVpZ2h0O1xuICBvcGFjaXR5OiBAaWNvbk9wYWNpdHk7XG4gIG1hcmdpbjogQGljb25NYXJnaW47XG4gIHRyYW5zaXRpb246IEBpY29uVHJhbnNpdGlvbjtcbiAgdmVydGljYWwtYWxpZ246IEBpY29uVmVydGljYWxBbGlnbjtcbiAgY29sb3I6IEBpY29uQ29sb3I7XG59XG5cbi51aS5idXR0b246bm90KC5pY29uKSA+IC5pY29uOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duKSB7XG4gIG1hcmdpbjogQGljb25NYXJnaW47XG59XG4udWkuYnV0dG9uOm5vdCguaWNvbikgPiAucmlnaHQuaWNvbjpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bikge1xuICBtYXJnaW46IEByaWdodEljb25NYXJnaW47XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLmJ1dHRvbnMsXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLmJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IEBmbG9hdGVkTWFyZ2luO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uYnV0dG9ucyxcbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLmJ1dHRvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1sZWZ0OiBAZmxvYXRlZE1hcmdpbjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29tcGFjdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY29tcGFjdC5idXR0b25zIC5idXR0b24sXG4udWkuY29tcGFjdC5idXR0b24ge1xuICBwYWRkaW5nOiBAY29tcGFjdFZlcnRpY2FsUGFkZGluZyBAY29tcGFjdEhvcml6b250YWxQYWRkaW5nICggQGNvbXBhY3RWZXJ0aWNhbFBhZGRpbmcgKyBAc2hhZG93T2Zmc2V0ICk7XG59XG4udWkuY29tcGFjdC5pY29uLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5jb21wYWN0Lmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogQGNvbXBhY3RWZXJ0aWNhbFBhZGRpbmcgQGNvbXBhY3RWZXJ0aWNhbFBhZGRpbmcgKCBAY29tcGFjdFZlcnRpY2FsUGFkZGluZyArIEBzaGFkb3dPZmZzZXQgKTtcbn1cbi51aS5jb21wYWN0LmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b24sXG4udWkuY29tcGFjdC5sYWJlbGVkLmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogQGNvbXBhY3RWZXJ0aWNhbFBhZGRpbmcgKEBjb21wYWN0SG9yaXpvbnRhbFBhZGRpbmcgKyBAbGFiZWxlZEljb25XaWR0aCkgKCBAY29tcGFjdFZlcnRpY2FsUGFkZGluZyArIEBzaGFkb3dPZmZzZXQgKTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5taW5pLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5taW5pLmJ1dHRvbnMgLm9yLFxuLnVpLm1pbmkuYnV0dG9uIHtcbiAgZm9udC1zaXplOiBAbWluaTtcbn1cbi51aS50aW55LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS50aW55LmJ1dHRvbnMgLm9yLFxuLnVpLnRpbnkuYnV0dG9uIHtcbiAgZm9udC1zaXplOiBAdGlueTtcbn1cbi51aS5zbWFsbC5idXR0b25zIC5idXR0b24sXG4udWkuc21hbGwuYnV0dG9ucyAub3IsXG4udWkuc21hbGwuYnV0dG9uIHtcbiAgZm9udC1zaXplOiBAc21hbGw7XG59XG4udWkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJ1dHRvbnMgLm9yLFxuLnVpLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bTtcbn1cbi51aS5sYXJnZS5idXR0b25zIC5idXR0b24sXG4udWkubGFyZ2UuYnV0dG9ucyAub3IsXG4udWkubGFyZ2UuYnV0dG9uIHtcbiAgZm9udC1zaXplOiBAbGFyZ2U7XG59XG4udWkuYmlnLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iaWcuYnV0dG9ucyAub3IsXG4udWkuYmlnLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogQGJpZztcbn1cbi51aS5odWdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5odWdlLmJ1dHRvbnMgLm9yLFxuLnVpLmh1Z2UuYnV0dG9uIHtcbiAgZm9udC1zaXplOiBAaHVnZTtcbn1cbi51aS5tYXNzaXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5tYXNzaXZlLmJ1dHRvbnMgLm9yLFxuLnVpLm1hc3NpdmUuYnV0dG9uIHtcbiAgZm9udC1zaXplOiBAbWFzc2l2ZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEljb24gT25seVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmljb24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogQHZlcnRpY2FsUGFkZGluZyBAdmVydGljYWxQYWRkaW5nICggQHZlcnRpY2FsUGFkZGluZyArIEBzaGFkb3dPZmZzZXQgKTtcbn1cbi51aS5pY29uLmJ1dHRvbnMgLmJ1dHRvbiA+IC5pY29uLFxuLnVpLmljb24uYnV0dG9uID4gLmljb24ge1xuICBvcGFjaXR5OiBAaWNvbkJ1dHRvbk9wYWNpdHk7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJhc2ljVGV4dENvbG9yICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBAYmFzaWNGb250V2VpZ2h0O1xuICBib3JkZXItcmFkaXVzOiBAYmFzaWNCb3JkZXJSYWRpdXM7XG4gIHRleHQtdHJhbnNmb3JtOiBAYmFzaWNUZXh0VHJhbnNmb3JtO1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNCb3hTaGFkb3c7XG59XG4udWkuYmFzaWMuYnV0dG9ucyB7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0dyb3VwQm94U2hhZG93O1xuICBib3JkZXI6IEBiYXNpY0dyb3VwQm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cblxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBAYmFzaWNIb3ZlckJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBiYXNpY0hvdmVyVGV4dENvbG9yICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0hvdmVyQm94U2hhZG93O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiBAYmFzaWNGb2N1c0JhY2tncm91bmQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBiYXNpY0ZvY3VzVGV4dENvbG9yICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0ZvY3VzQm94U2hhZG93O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IEBiYXNpY0Rvd25CYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAYmFzaWNEb3duVGV4dENvbG9yICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0Rvd25Cb3hTaGFkb3c7XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNBY3RpdmVCb3hTaGFkb3cgIWltcG9ydGFudDtcbiAgY29sb3I6IEBiYXNpY0FjdGl2ZVRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYWN0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0cmFuc3BhcmVudEJsYWNrO1xufVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0hvdmVyQm94U2hhZG93IGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBAYmFzaWNEb3duQm94U2hhZG93IGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiBAYmFzaWNBY3RpdmVCb3hTaGFkb3cgIWltcG9ydGFudDtcbn1cblxuLyogU3RhbmRhcmQgQmFzaWMgSW52ZXJ0ZWQgKi9cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBvZmZXaGl0ZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEJveFNoYWRvdyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b246aG92ZXIge1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0ludmVydGVkSG92ZXJCb3hTaGFkb3cgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uOmZvY3VzIHtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEZvY3VzQm94U2hhZG93ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRyYW5zcGFyZW50V2hpdGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZERvd25Cb3hTaGFkb3cgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmludmVydGVkLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdHJhbnNwYXJlbnRXaGl0ZTtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBpbnZlcnRlZFRleHRTaGFkb3c7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0ludmVydGVkQWN0aXZlQm94U2hhZG93O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYWN0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzdHJvbmdUcmFuc3BhcmVudFdoaXRlO1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEhvdmVyQm94U2hhZG93ICFpbXBvcnRhbnQ7XG59XG5cblxuLyogQmFzaWMgR3JvdXAgKi9cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b24ge1xuICBib3JkZXItbGVmdDogQGJhc2ljR3JvdXBCb3JkZXI7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcbiAgYm9yZGVyLXRvcDogQGJhc2ljR3JvdXBCb3JkZXI7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICBMYWJlbGVkIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogQGxhYmVsZWRJY29uUGFkZGluZyAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiBAaG9yaXpvbnRhbFBhZGRpbmcgIWltcG9ydGFudDtcbn1cblxuLyogTGVmdCBMYWJlbGVkICovXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb24sXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBtYXJnaW46IEBsYWJlbGVkSWNvbk1hcmdpbjtcbiAgd2lkdGg6IEBsYWJlbGVkSWNvbldpZHRoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGFiZWxlZEljb25CYWNrZ3JvdW5kQ29sb3I7XG4gIGNvbG9yOiBAbGFiZWxlZEljb25Db2xvcjtcbiAgYm94LXNoYWRvdzogQGxhYmVsZWRJY29uTGVmdFNoYWRvdztcbn1cblxuLyogTGVmdCBMYWJlbGVkICovXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb24sXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBlbTtcbn1cblxuLyogUmlnaHQgTGFiZWxlZCAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24ge1xuICBwYWRkaW5nLXJpZ2h0OiBAbGFiZWxlZEljb25QYWRkaW5nICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogQGhvcml6b250YWxQYWRkaW5nICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJveC1zaGFkb3c6IEBsYWJlbGVkSWNvblJpZ2h0U2hhZG93O1xufVxuXG5cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbjpiZWZvcmUsXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uOmJlZm9yZSxcbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbjphZnRlcixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uID4gLmljb246YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbiA+IC5pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQgPiAuaWNvbiB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG59XG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkID4gLmljb24ge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQGJvcmRlclJhZGl1cztcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG59XG4udWkudmVydGljYWwubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCA+IC5pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xufVxuLnVpLnZlcnRpY2FsLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCA+IC5pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xufVxuXG4vKiBGbHVpZCBMYWJlbGVkICovXG4udWkuZmx1aWRbY2xhc3MqPVwibGVmdCBsYWJlbGVkXCJdLmljb24uYnV0dG9uLFxuLnVpLmZsdWlkW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24ge1xuICBwYWRkaW5nLWxlZnQ6IEBob3Jpem9udGFsUGFkZGluZyAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiBAaG9yaXpvbnRhbFBhZGRpbmcgIWltcG9ydGFudDtcbn1cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUb2dnbGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFRvZ2dsZSAoTW9kaWZpZXMgYWN0aXZlIHN0YXRlIHRvIGdpdmUgYWZmb3JkYW5jZXMpICovXG4udWkudG9nZ2xlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYnV0dG9ucyAuYnV0dG9uLnRvZ2dsZS5hY3RpdmUsXG4udWkuYnV0dG9uLnRvZ2dsZS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcG9zaXRpdmVDb2xvciAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uLnRvZ2dsZS5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcG9zaXRpdmVDb2xvckhvdmVyICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBAaW52ZXJ0ZWRUZXh0U2hhZG93O1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNpcmN1bGFyLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDEwZW07XG59XG4udWkuY2lyY3VsYXIuYnV0dG9uID4gLmljb24ge1xuICB3aWR0aDogMWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBPciBCdXR0b25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5idXR0b25zIC5vciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IEBvckdhcDtcbiAgaGVpZ2h0OiBAb3JIZWlnaHQ7XG4gIHotaW5kZXg6IEBvclpJbmRleDtcbn1cbi51aS5idXR0b25zIC5vcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xuXG4gIGNvbnRlbnQ6IEBvclRleHQ7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvckJhY2tncm91bmRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBvclRleHRTaGFkb3c7XG5cbiAgbWFyZ2luLXRvcDogQG9yVmVydGljYWxPZmZzZXQ7XG4gIG1hcmdpbi1sZWZ0OiBAb3JIb3Jpem9udGFsT2Zmc2V0O1xuXG4gIHdpZHRoOiBAb3JDaXJjbGVTaXplO1xuICBoZWlnaHQ6IEBvckNpcmNsZVNpemU7XG5cbiAgbGluZS1oZWlnaHQ6IEBvckxpbmVIZWlnaHQ7XG4gIGNvbG9yOiBAb3JUZXh0Q29sb3I7XG5cbiAgZm9udC1zdHlsZTogQG9yVGV4dFN0eWxlO1xuICBmb250LXdlaWdodDogQG9yVGV4dFdlaWdodDtcblxuICBib3gtc2hhZG93OiBAb3JCb3hTaGFkb3c7XG59XG4udWkuYnV0dG9ucyAub3JbZGF0YS10ZXh0XTpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG59XG5cbi8qIEZsdWlkIE9yICovXG4udWkuZmx1aWQuYnV0dG9ucyAub3Ige1xuICB3aWR0aDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZmx1aWQuYnV0dG9ucyAub3I6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuLyogU2luZ3VsYXIgKi9cbi51aS5hdHRhY2hlZC5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBAYXR0YWNoZWRCb3hTaGFkb3cgIWltcG9ydGFudDtcbn1cblxuLyogVG9wIC8gQm90dG9tICovXG4udWkuYXR0YWNoZWQudG9wLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwZW0gMGVtO1xufVxuLnVpLmF0dGFjaGVkLmJvdHRvbS5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cztcbn1cblxuLyogTGVmdCAvIFJpZ2h0ICovXG4udWkubGVmdC5hdHRhY2hlZC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICB0ZXh0LWFsaWduOiByaWdodDtcblxuICBwYWRkaW5nLXJpZ2h0OiBAYXR0YWNoZWRIb3Jpem9udGFsUGFkZGluZztcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cyAwZW0gMGVtIEBib3JkZXJSYWRpdXM7XG59XG4udWkucmlnaHQuYXR0YWNoZWQuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nLWxlZnQ6IEBhdHRhY2hlZEhvcml6b250YWxQYWRkaW5nO1xuICBib3JkZXItcmFkaXVzOiAwZW0gQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzIDBlbTtcbn1cblxuLyogUGx1cmFsICovXG4udWkuYXR0YWNoZWQuYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiBAYXR0YWNoZWRaSW5kZXg7XG4gIG1hcmdpbi1sZWZ0OiBAYXR0YWNoZWRPZmZzZXQ7XG4gIG1hcmdpbi1yaWdodDogQGF0dGFjaGVkT2Zmc2V0O1xufVxuLnVpLmF0dGFjaGVkLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmF0dGFjaGVkLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5hdHRhY2hlZC5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cblxuLyogVG9wIC8gQm90dG9tICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmJ1dHRvbnMge1xuICBtYXJnaW4tYm90dG9tOiBAYXR0YWNoZWRPZmZzZXQ7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzIDBlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSBAYm9yZGVyUmFkaXVzIDBlbSAwZW07XG59XG5cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uYnV0dG9ucyB7XG4gIG1hcmdpbi10b3A6IEBhdHRhY2hlZE9mZnNldDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXM7XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIEBib3JkZXJSYWRpdXM7XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAYm9yZGVyUmFkaXVzIDBlbTtcbn1cblxuLyogTGVmdCAvIFJpZ2h0ICovXG4udWlbY2xhc3MqPVwibGVmdCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogQGF0dGFjaGVkT2Zmc2V0O1xuICBib3JkZXItcmFkaXVzOiAwZW0gQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiBAYXR0YWNoZWRPZmZzZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSBAYm9yZGVyUmFkaXVzIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiBAYXR0YWNoZWRPZmZzZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gQGJvcmRlclJhZGl1cyAwZW07XG59XG5cbi51aVtjbGFzcyo9XCJyaWdodCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogQGF0dGFjaGVkT2Zmc2V0O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzIDBlbSAwZW0gQGJvcmRlclJhZGl1cztcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogQGF0dGFjaGVkT2Zmc2V0O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzIDBlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IEBhdHRhY2hlZE9mZnNldDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwZW0gQGJvcmRlclJhZGl1cztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mbHVpZC5idXR0b25zLFxuLnVpLmZsdWlkLmJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZsdWlkLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udWkudHdvLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogNTAlO1xufVxuXG4udWkudGhyZWUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnRocmVlLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDMzLjMzMyU7XG59XG5cbi51aS5mb3VyLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5mb3VyLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLnVpLmZpdmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZpdmUuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMjAlO1xufVxuXG4udWkuc2l4LmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5zaXguYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMTYuNjY2JTtcbn1cblxuLnVpLnNldmVuLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5zZXZlbi5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAxNC4yODUlO1xufVxuXG4udWkuZWlnaHQuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmVpZ2h0LmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDEyLjUwMCU7XG59XG5cbi51aS5uaW5lLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5uaW5lLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDExLjExJTtcbn1cblxuLnVpLnRlbi5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudGVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDEwJTtcbn1cblxuLnVpLmVsZXZlbi5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZWxldmVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDkuMDklO1xufVxuXG4udWkudHdlbHZlLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d2VsdmUuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogOC4zMzMzJTtcbn1cblxuLyogRmx1aWQgVmVydGljYWwgQnV0dG9ucyAqL1xuLnVpLmZsdWlkLnZlcnRpY2FsLmJ1dHRvbnMsXG4udWkuZmx1aWQudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogYXV0bztcbn1cblxuLnVpLnR3by52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogNTAlO1xufVxuLnVpLnRocmVlLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAzMy4zMzMlO1xufVxuLnVpLmZvdXIudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDI1JTtcbn1cbi51aS5maXZlLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAyMCU7XG59XG4udWkuc2l4LnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxNi42NjYlO1xufVxuLnVpLnNldmVuLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxNC4yODUlO1xufVxuLnVpLmVpZ2h0LnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMi41MDAlO1xufVxuLnVpLm5pbmUudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDExLjExJTtcbn1cbi51aS50ZW4udmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDEwJTtcbn1cbi51aS5lbGV2ZW4udmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDkuMDklO1xufVxuLnVpLnR3ZWx2ZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogOC4zMzMzJTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0gQmxhY2sgLS0tKi9cbi51aS5ibGFjay5idXR0b25zIC5idXR0b24sXG4udWkuYmxhY2suYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsYWNrO1xuICBjb2xvcjogQGJsYWNrVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGJsYWNrVGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG59XG4udWkuYmxhY2suYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJsYWNrLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibGFja0hvdmVyO1xuICBjb2xvcjogQGJsYWNrVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGJsYWNrVGV4dFNoYWRvdztcbn1cbi51aS5ibGFjay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmxhY2suYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsYWNrRm9jdXM7XG4gIGNvbG9yOiBAYmxhY2tUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAYmxhY2tUZXh0U2hhZG93O1xufVxuLnVpLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibGFja0Rvd247XG4gIGNvbG9yOiBAYmxhY2tUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAYmxhY2tUZXh0U2hhZG93O1xufVxuLnVpLmJsYWNrLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmxhY2suYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuYmxhY2suYWN0aXZlLmJ1dHRvbixcbi51aS5ibGFjay5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsYWNrQWN0aXZlO1xuICBjb2xvcjogQGJsYWNrVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGJsYWNrVGV4dFNoYWRvdztcbn1cblxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQm9yZGVyU2l6ZSBAYmxhY2sgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBibGFjayAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5ibGFjay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAYmxhY2tIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJsYWNrSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuYmxhY2suYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQGJsYWNrRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBibGFja0hvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5ibGFjay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQGJsYWNrQWN0aXZlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAYmxhY2tEb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5ibGFjay5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQGJsYWNrRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJsYWNrRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuYmxhY2suYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC1AYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZTtcbn1cblxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQHNvbGlkQm9yZGVyQ29sb3IgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodEJsYWNrVGV4dENvbG9yO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRCbGFja0hvdmVyO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRCbGFja0ZvY3VzO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodEJsYWNrQWN0aXZlO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodEJsYWNrRG93bjtcbn1cblxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEJveFNoYWRvdyAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEJsYWNrSG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRCbGFja0ZvY3VzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRCbGFjayAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRCbGFja0FjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEJsYWNrRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIEdyZXkgLS0tKi9cbi51aS5ncmV5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5ncmV5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBncmV5O1xuICBjb2xvcjogQGdyZXlUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAZ3JleVRleHRTaGFkb3c7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBjb2xvcmVkQmFja2dyb3VuZEltYWdlO1xufVxuLnVpLmdyZXkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkuZ3JleS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuZ3JleS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JleUhvdmVyO1xuICBjb2xvcjogQGdyZXlUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAZ3JleVRleHRTaGFkb3c7XG59XG4udWkuZ3JleS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuZ3JleS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JleUZvY3VzO1xuICBjb2xvcjogQGdyZXlUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAZ3JleVRleHRTaGFkb3c7XG59XG4udWkuZ3JleS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmdyZXkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBncmV5RG93bjtcbiAgY29sb3I6IEBncmV5VGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGdyZXlUZXh0U2hhZG93O1xufVxuLnVpLmdyZXkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5ncmV5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmdyZXkuYWN0aXZlLmJ1dHRvbixcbi51aS5ncmV5LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JleUFjdGl2ZTtcbiAgY29sb3I6IEBncmV5VGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGdyZXlUZXh0U2hhZG93O1xufVxuXG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmdyZXkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmdyZXkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQm9yZGVyU2l6ZSBAZ3JleSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGdyZXkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5ncmV5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBncmV5SG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmV5SG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5ncmV5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBncmV5Rm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmV5SG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuZ3JleS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQGdyZXlBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmV5RG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAZ3JleURvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmV5RG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuZ3JleS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLUBiYXNpY0NvbG9yZWRCb3JkZXJTaXplO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQHNvbGlkQm9yZGVyQ29sb3IgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRHcmV5VGV4dENvbG9yO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0R3JleUhvdmVyO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0R3JleUZvY3VzO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRHcmV5QWN0aXZlO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRHcmV5RG93bjtcbn1cblxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEJveFNoYWRvdyAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEdyZXlIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEdyZXlGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0R3JleSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRHcmV5QWN0aXZlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0R3JleURvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tIEJyb3duIC0tLSovXG4udWkuYnJvd24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJyb3duLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicm93bjtcbiAgY29sb3I6IEBicm93blRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBicm93blRleHRTaGFkb3c7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBjb2xvcmVkQmFja2dyb3VuZEltYWdlO1xufVxuLnVpLmJyb3duLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IEBjb2xvcmVkQm94U2hhZG93O1xufVxuLnVpLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5icm93bi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJvd25Ib3ZlcjtcbiAgY29sb3I6IEBicm93blRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBicm93blRleHRTaGFkb3c7XG59XG4udWkuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJyb3duLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicm93bkZvY3VzO1xuICBjb2xvcjogQGJyb3duVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGJyb3duVGV4dFNoYWRvdztcbn1cbi51aS5icm93bi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJyb3duLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJvd25Eb3duO1xuICBjb2xvcjogQGJyb3duVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGJyb3duVGV4dFNoYWRvdztcbn1cbi51aS5icm93bi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJyb3duLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmJyb3duLmFjdGl2ZS5idXR0b24sXG4udWkuYnJvd24uYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicm93bkFjdGl2ZTtcbiAgY29sb3I6IEBicm93blRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBicm93blRleHRTaGFkb3c7XG59XG5cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYnJvd24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0JvcmRlclNpemUgQGJyb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAYnJvd24gIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQGJyb3duSG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBicm93bkhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBicm93bkZvY3VzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAYnJvd25Ib3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuYnJvd24uYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBicm93bkFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJyb3duRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBicm93bkRvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBicm93bkRvd24gIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmJyb3duLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtQGJhc2ljQ29sb3JlZEJvcmRlclNpemU7XG59XG5cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEJyb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRCcm93bjtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodEJyb3duVGV4dENvbG9yO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRCcm93bkhvdmVyO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRCcm93bkZvY3VzO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodEJyb3duQWN0aXZlO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodEJyb3duRG93bjtcbn1cblxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEJveFNoYWRvdyAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEJyb3duSG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodEJyb3duICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEJyb3duRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodEJyb3duICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEJyb3duQWN0aXZlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRCcm93biAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRCcm93bkRvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodEJyb3duICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIEJsdWUgLS0tKi9cbi51aS5ibHVlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5ibHVlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibHVlO1xuICBjb2xvcjogQGJsdWVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAYmx1ZVRleHRTaGFkb3c7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBjb2xvcmVkQmFja2dyb3VuZEltYWdlO1xufVxuLnVpLmJsdWUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkuYmx1ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmx1ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmx1ZUhvdmVyO1xuICBjb2xvcjogQGJsdWVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAYmx1ZVRleHRTaGFkb3c7XG59XG4udWkuYmx1ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmx1ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmx1ZUZvY3VzO1xuICBjb2xvcjogQGJsdWVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAYmx1ZVRleHRTaGFkb3c7XG59XG4udWkuYmx1ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJsdWUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibHVlRG93bjtcbiAgY29sb3I6IEBibHVlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGJsdWVUZXh0U2hhZG93O1xufVxuLnVpLmJsdWUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmJsdWUuYWN0aXZlLmJ1dHRvbixcbi51aS5ibHVlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmx1ZUFjdGl2ZTtcbiAgY29sb3I6IEBibHVlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGJsdWVUZXh0U2hhZG93O1xufVxuXG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmJsdWUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQm9yZGVyU2l6ZSBAYmx1ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJsdWUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBibHVlSG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBibHVlSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBibHVlRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBibHVlSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuYmx1ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQGJsdWVBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBibHVlRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAYmx1ZURvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBibHVlRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuYmx1ZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLUBiYXNpY0NvbG9yZWRCb3JkZXJTaXplO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0Qmx1ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0Qmx1ZTtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRCbHVlVGV4dENvbG9yO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0Qmx1ZUhvdmVyO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0Qmx1ZUZvY3VzO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRCbHVlQWN0aXZlO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRCbHVlRG93bjtcbn1cblxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEJveFNoYWRvdyAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEJsdWVIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0Qmx1ZSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRCbHVlRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodEJsdWUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0Qmx1ZUFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0Qmx1ZSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRCbHVlRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0Qmx1ZSAhaW1wb3J0YW50O1xufVxuXG4vKi0tLSBHcmVlbiAtLS0qL1xuLnVpLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5ncmVlbi5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JlZW47XG4gIGNvbG9yOiBAZ3JlZW5UZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAZ3JlZW5UZXh0U2hhZG93O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAY29sb3JlZEJhY2tncm91bmRJbWFnZTtcbn1cbi51aS5ncmVlbi5idXR0b24ge1xuICBib3gtc2hhZG93OiBAY29sb3JlZEJveFNoYWRvdztcbn1cbi51aS5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuZ3JlZW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGdyZWVuSG92ZXI7XG4gIGNvbG9yOiBAZ3JlZW5UZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAZ3JlZW5UZXh0U2hhZG93O1xufVxuLnVpLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5ncmVlbi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JlZW5Gb2N1cztcbiAgY29sb3I6IEBncmVlblRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBncmVlblRleHRTaGFkb3c7XG59XG4udWkuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmVlbi5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGdyZWVuRG93bjtcbiAgY29sb3I6IEBncmVlblRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBncmVlblRleHRTaGFkb3c7XG59XG4udWkuZ3JlZW4uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5ncmVlbi5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5ncmVlbi5hY3RpdmUuYnV0dG9uLFxuLnVpLmdyZWVuLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JlZW5BY3RpdmU7XG4gIGNvbG9yOiBAZ3JlZW5UZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAZ3JlZW5UZXh0U2hhZG93O1xufVxuXG5cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0JvcmRlclNpemUgQGdyZWVuIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAZ3JlZW4gIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQGdyZWVuSG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmVlbkhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBncmVlbkZvY3VzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAZ3JlZW5Ib3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuZ3JlZW4uYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBncmVlbkFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGdyZWVuRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBncmVlbkRvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmVlbkRvd24gIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmdyZWVuLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtQGJhc2ljQ29sb3JlZEJvcmRlclNpemU7XG59XG5cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodEdyZWVuIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRHcmVlbjtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmVlblRleHRDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0R3JlZW5Ib3Zlcjtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0R3JlZW5Gb2N1cztcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRHcmVlbkFjdGl2ZTtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRHcmVlbkRvd247XG59XG5cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogQGJhc2ljSW52ZXJ0ZWRCb3hTaGFkb3cgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRHcmVlbkhvdmVyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRHcmVlbiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRHcmVlbkZvY3VzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRHcmVlbiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRHcmVlbkFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0R3JlZW4gIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0R3JlZW5Eb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRHcmVlbiAhaW1wb3J0YW50O1xufVxuXG4vKi0tLSBPcmFuZ2UgLS0tKi9cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm9yYW5nZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAb3JhbmdlO1xuICBjb2xvcjogQG9yYW5nZVRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBvcmFuZ2VUZXh0U2hhZG93O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAY29sb3JlZEJhY2tncm91bmRJbWFnZTtcbn1cbi51aS5vcmFuZ2UuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5vcmFuZ2UuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG9yYW5nZUhvdmVyO1xuICBjb2xvcjogQG9yYW5nZVRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBvcmFuZ2VUZXh0U2hhZG93O1xufVxuLnVpLm9yYW5nZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkub3JhbmdlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvcmFuZ2VGb2N1cztcbiAgY29sb3I6IEBvcmFuZ2VUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAb3JhbmdlVGV4dFNoYWRvdztcbn1cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvcmFuZ2VEb3duO1xuICBjb2xvcjogQG9yYW5nZVRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBvcmFuZ2VUZXh0U2hhZG93O1xufVxuLnVpLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5vcmFuZ2UuYWN0aXZlLmJ1dHRvbixcbi51aS5vcmFuZ2UuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvcmFuZ2VBY3RpdmU7XG4gIGNvbG9yOiBAb3JhbmdlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQG9yYW5nZVRleHRTaGFkb3c7XG59XG5cbi8qIEJhc2ljICovXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQm9yZGVyU2l6ZSBAb3JhbmdlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAb3JhbmdlICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQG9yYW5nZUhvdmVyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAb3JhbmdlSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAb3JhbmdlRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBvcmFuZ2VIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLm9yYW5nZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQG9yYW5nZUFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQG9yYW5nZURvd24gIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBvcmFuZ2VEb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAb3JhbmdlRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMub3JhbmdlLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtQGJhc2ljQ29sb3JlZEJvcmRlclNpemU7XG59XG5cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0T3JhbmdlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRPcmFuZ2U7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodE9yYW5nZVRleHRDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRPcmFuZ2VIb3Zlcjtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRPcmFuZ2VGb2N1cztcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodE9yYW5nZUFjdGl2ZTtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodE9yYW5nZURvd247XG59XG5cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogQGJhc2ljSW52ZXJ0ZWRCb3hTaGFkb3cgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRPcmFuZ2VIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0T3JhbmdlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodE9yYW5nZUZvY3VzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRPcmFuZ2UgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0T3JhbmdlQWN0aXZlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRPcmFuZ2UgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0T3JhbmdlRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0T3JhbmdlICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIFBpbmsgLS0tKi9cbi51aS5waW5rLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5waW5rLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwaW5rO1xuICBjb2xvcjogQHBpbmtUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcGlua1RleHRTaGFkb3c7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBjb2xvcmVkQmFja2dyb3VuZEltYWdlO1xufVxuLnVpLnBpbmsuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkucGluay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkucGluay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGlua0hvdmVyO1xuICBjb2xvcjogQHBpbmtUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcGlua1RleHRTaGFkb3c7XG59XG4udWkucGluay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucGluay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGlua0ZvY3VzO1xuICBjb2xvcjogQHBpbmtUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcGlua1RleHRTaGFkb3c7XG59XG4udWkucGluay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnBpbmsuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwaW5rRG93bjtcbiAgY29sb3I6IEBwaW5rVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHBpbmtUZXh0U2hhZG93O1xufVxuLnVpLnBpbmsuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnBpbmsuYWN0aXZlLmJ1dHRvbixcbi51aS5waW5rLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGlua0FjdGl2ZTtcbiAgY29sb3I6IEBwaW5rVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHBpbmtUZXh0U2hhZG93O1xufVxuXG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnBpbmsuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQm9yZGVyU2l6ZSBAcGluayBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHBpbmsgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5waW5rLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBwaW5rSG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwaW5rSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5waW5rLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBwaW5rRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwaW5rSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMucGluay5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHBpbmtBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwaW5rRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5waW5rLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAcGlua0Rvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwaW5rRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucGluay5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLUBiYXNpY0NvbG9yZWRCb3JkZXJTaXplO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0UGluayBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UGluaztcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRQaW5rVGV4dENvbG9yO1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0UGlua0hvdmVyO1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0UGlua0ZvY3VzO1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRQaW5rQWN0aXZlO1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRQaW5rRG93bjtcbn1cblxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEJveFNoYWRvdyAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFBpbmtIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UGluayAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRQaW5rRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFBpbmsgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0UGlua0FjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UGluayAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRQaW5rRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UGluayAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tIFZpb2xldCAtLS0qL1xuLnVpLnZpb2xldC5idXR0b25zIC5idXR0b24sXG4udWkudmlvbGV0LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB2aW9sZXQ7XG4gIGNvbG9yOiBAdmlvbGV0VGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHZpb2xldFRleHRTaGFkb3c7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBjb2xvcmVkQmFja2dyb3VuZEltYWdlO1xufVxuLnVpLnZpb2xldC5idXR0b24ge1xuICBib3gtc2hhZG93OiBAY29sb3JlZEJveFNoYWRvdztcbn1cbi51aS52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnZpb2xldC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdmlvbGV0SG92ZXI7XG4gIGNvbG9yOiBAdmlvbGV0VGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHZpb2xldFRleHRTaGFkb3c7XG59XG4udWkudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS52aW9sZXQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHZpb2xldEZvY3VzO1xuICBjb2xvcjogQHZpb2xldFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEB2aW9sZXRUZXh0U2hhZG93O1xufVxuLnVpLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHZpb2xldERvd247XG4gIGNvbG9yOiBAdmlvbGV0VGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHZpb2xldFRleHRTaGFkb3c7XG59XG4udWkudmlvbGV0LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkudmlvbGV0LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnZpb2xldC5hY3RpdmUuYnV0dG9uLFxuLnVpLnZpb2xldC5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHZpb2xldEFjdGl2ZTtcbiAgY29sb3I6IEB2aW9sZXRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAdmlvbGV0VGV4dFNoYWRvdztcbn1cblxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNCb3JkZXJTaXplIEB2aW9sZXQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB2aW9sZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAdmlvbGV0SG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB2aW9sZXRIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEB2aW9sZXRGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHZpb2xldEhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMudmlvbGV0LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAdmlvbGV0QWN0aXZlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAdmlvbGV0RG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHZpb2xldERvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB2aW9sZXREb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy52aW9sZXQuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC1AYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZTtcbn1cblxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRWaW9sZXQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFZpb2xldDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0VmlvbGV0VGV4dENvbG9yO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFZpb2xldEhvdmVyO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFZpb2xldEZvY3VzO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0VmlvbGV0QWN0aXZlO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0VmlvbGV0RG93bjtcbn1cblxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEJveFNoYWRvdyAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFZpb2xldEhvdmVyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRWaW9sZXQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0VmlvbGV0Rm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFZpb2xldCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRWaW9sZXRBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFZpb2xldCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRWaW9sZXREb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRWaW9sZXQgIWltcG9ydGFudDtcbn1cblxuLyotLS0gUHVycGxlIC0tLSovXG4udWkucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5wdXJwbGUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHB1cnBsZTtcbiAgY29sb3I6IEBwdXJwbGVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcHVycGxlVGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG59XG4udWkucHVycGxlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IEBjb2xvcmVkQm94U2hhZG93O1xufVxuLnVpLnB1cnBsZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkucHVycGxlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwdXJwbGVIb3ZlcjtcbiAgY29sb3I6IEBwdXJwbGVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcHVycGxlVGV4dFNoYWRvdztcbn1cbi51aS5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnB1cnBsZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHVycGxlRm9jdXM7XG4gIGNvbG9yOiBAcHVycGxlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHB1cnBsZVRleHRTaGFkb3c7XG59XG4udWkucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHVycGxlRG93bjtcbiAgY29sb3I6IEBwdXJwbGVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcHVycGxlVGV4dFNoYWRvdztcbn1cbi51aS5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucHVycGxlLmFjdGl2ZS5idXR0b24sXG4udWkucHVycGxlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHVycGxlQWN0aXZlO1xuICBjb2xvcjogQHB1cnBsZVRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBwdXJwbGVUZXh0U2hhZG93O1xufVxuXG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0JvcmRlclNpemUgQHB1cnBsZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHB1cnBsZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBwdXJwbGVIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHB1cnBsZUhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHB1cnBsZUZvY3VzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcHVycGxlSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5wdXJwbGUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBwdXJwbGVBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwdXJwbGVEb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAcHVycGxlRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHB1cnBsZURvd24gIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnB1cnBsZS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLUBiYXNpY0NvbG9yZWRCb3JkZXJTaXplO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFB1cnBsZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UHVycGxlO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRQdXJwbGVUZXh0Q29sb3I7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0UHVycGxlSG92ZXI7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0UHVycGxlRm9jdXM7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRQdXJwbGVBY3RpdmU7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRQdXJwbGVEb3duO1xufVxuXG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0ludmVydGVkQm94U2hhZG93ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0UHVycGxlSG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFB1cnBsZSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRQdXJwbGVGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UHVycGxlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFB1cnBsZUFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UHVycGxlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFB1cnBsZURvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFB1cnBsZSAhaW1wb3J0YW50O1xufVxuXG4vKi0tLSBSZWQgLS0tKi9cbi51aS5yZWQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnJlZC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmVkO1xuICBjb2xvcjogQHJlZFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEByZWRUZXh0U2hhZG93O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAY29sb3JlZEJhY2tncm91bmRJbWFnZTtcbn1cbi51aS5yZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkucmVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5yZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHJlZEhvdmVyO1xuICBjb2xvcjogQHJlZFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEByZWRUZXh0U2hhZG93O1xufVxuLnVpLnJlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucmVkLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEByZWRGb2N1cztcbiAgY29sb3I6IEByZWRUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcmVkVGV4dFNoYWRvdztcbn1cbi51aS5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEByZWREb3duO1xuICBjb2xvcjogQHJlZFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEByZWRUZXh0U2hhZG93O1xufVxuLnVpLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5yZWQuYWN0aXZlLmJ1dHRvbixcbi51aS5yZWQuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEByZWRBY3RpdmU7XG4gIGNvbG9yOiBAcmVkVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHJlZFRleHRTaGFkb3c7XG59XG5cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5yZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQm9yZGVyU2l6ZSBAcmVkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcmVkICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5yZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHJlZEhvdmVyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcmVkSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnJlZC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAcmVkRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEByZWRIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnJlZC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHJlZEFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHJlZERvd24gIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEByZWREb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcmVkRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucmVkLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtQGJhc2ljQ29sb3JlZEJvcmRlclNpemU7XG59XG5cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0UmVkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRSZWQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFJlZFRleHRDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRSZWRIb3Zlcjtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRSZWRGb2N1cztcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFJlZEFjdGl2ZTtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFJlZERvd247XG59XG5cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogQGJhc2ljSW52ZXJ0ZWRCb3hTaGFkb3cgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRSZWRIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UmVkICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFJlZEZvY3VzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRSZWQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0UmVkQWN0aXZlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRSZWQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0UmVkRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UmVkICFpbXBvcnRhbnQ7XG59XG5cblxuLyotLS0gVGVhbCAtLS0qL1xuLnVpLnRlYWwuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnRlYWwuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRlYWw7XG4gIGNvbG9yOiBAdGVhbFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEB0ZWFsVGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG59XG4udWkudGVhbC5idXR0b24ge1xuICBib3gtc2hhZG93OiBAY29sb3JlZEJveFNoYWRvdztcbn1cbi51aS50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS50ZWFsLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0ZWFsSG92ZXI7XG4gIGNvbG9yOiBAdGVhbFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEB0ZWFsVGV4dFNoYWRvdztcbn1cbi51aS50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS50ZWFsLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0ZWFsRm9jdXM7XG4gIGNvbG9yOiBAdGVhbFRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEB0ZWFsVGV4dFNoYWRvdztcbn1cbi51aS50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkudGVhbC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRlYWxEb3duO1xuICBjb2xvcjogQHRlYWxUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAdGVhbFRleHRTaGFkb3c7XG59XG4udWkudGVhbC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnRlYWwuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkudGVhbC5hY3RpdmUuYnV0dG9uLFxuLnVpLnRlYWwuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0ZWFsQWN0aXZlO1xuICBjb2xvcjogQHRlYWxUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAdGVhbFRleHRTaGFkb3c7XG59XG5cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMudGVhbC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNCb3JkZXJTaXplIEB0ZWFsIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAdGVhbCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHRlYWxIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHRlYWxIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHRlYWxGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHRlYWxIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy50ZWFsLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAdGVhbEFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHRlYWxEb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEB0ZWFsRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHRlYWxEb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy50ZWFsLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtQGJhc2ljQ29sb3JlZEJvcmRlclNpemU7XG59XG5cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRUZWFsIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRUZWFsO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFRlYWxUZXh0Q29sb3I7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRUZWFsSG92ZXI7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRUZWFsRm9jdXM7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFRlYWxBY3RpdmU7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFRlYWxEb3duO1xufVxuXG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0ludmVydGVkQm94U2hhZG93ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0VGVhbEhvdmVyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRUZWFsICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFRlYWxGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0VGVhbCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRUZWFsQWN0aXZlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRUZWFsICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFRlYWxEb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRUZWFsICFpbXBvcnRhbnQ7XG59XG5cblxuLyotLS0gT2xpdmUgLS0tKi9cbi51aS5vbGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkub2xpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG9saXZlO1xuICBjb2xvcjogQG9saXZlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQG9saXZlVGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG59XG4udWkub2xpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLm9saXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvbGl2ZUhvdmVyO1xuICBjb2xvcjogQG9saXZlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQG9saXZlVGV4dFNoYWRvdztcbn1cbi51aS5vbGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkub2xpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG9saXZlRm9jdXM7XG4gIGNvbG9yOiBAb2xpdmVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAb2xpdmVUZXh0U2hhZG93O1xufVxuLnVpLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkub2xpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvbGl2ZURvd247XG4gIGNvbG9yOiBAb2xpdmVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAb2xpdmVUZXh0U2hhZG93O1xufVxuLnVpLm9saXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkub2xpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkub2xpdmUuYWN0aXZlLmJ1dHRvbixcbi51aS5vbGl2ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG9saXZlQWN0aXZlO1xuICBjb2xvcjogQG9saXZlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQG9saXZlVGV4dFNoYWRvdztcbn1cblxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQm9yZGVyU2l6ZSBAb2xpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBvbGl2ZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5vbGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAb2xpdmVIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQG9saXZlSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMub2xpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQG9saXZlRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBvbGl2ZUhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub2xpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5vbGl2ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQG9saXZlQWN0aXZlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAb2xpdmVEb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQG9saXZlRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQG9saXZlRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMub2xpdmUuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC1AYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZTtcbn1cblxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0T2xpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodE9saXZlO1xufVxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0T2xpdmVUZXh0Q29sb3I7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodE9saXZlSG92ZXI7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodE9saXZlRm9jdXM7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0T2xpdmVBY3RpdmU7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0T2xpdmVEb3duO1xufVxuXG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0ludmVydGVkQm94U2hhZG93ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0T2xpdmVIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0T2xpdmUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0T2xpdmVGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0T2xpdmUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0T2xpdmVBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodE9saXZlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodE9saXZlRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0T2xpdmUgIWltcG9ydGFudDtcbn1cblxuLyotLS0gWWVsbG93IC0tLSovXG4udWkueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS55ZWxsb3cuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHllbGxvdztcbiAgY29sb3I6IEB5ZWxsb3dUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAeWVsbG93VGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG59XG4udWkueWVsbG93LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IEBjb2xvcmVkQm94U2hhZG93O1xufVxuLnVpLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkueWVsbG93LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB5ZWxsb3dIb3ZlcjtcbiAgY29sb3I6IEB5ZWxsb3dUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAeWVsbG93VGV4dFNoYWRvdztcbn1cbi51aS55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnllbGxvdy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAeWVsbG93Rm9jdXM7XG4gIGNvbG9yOiBAeWVsbG93VGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHllbGxvd1RleHRTaGFkb3c7XG59XG4udWkueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAeWVsbG93RG93bjtcbiAgY29sb3I6IEB5ZWxsb3dUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAeWVsbG93VGV4dFNoYWRvdztcbn1cbi51aS55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkueWVsbG93LmFjdGl2ZS5idXR0b24sXG4udWkueWVsbG93LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAeWVsbG93QWN0aXZlO1xuICBjb2xvcjogQHllbGxvd1RleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEB5ZWxsb3dUZXh0U2hhZG93O1xufVxuXG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0JvcmRlclNpemUgQHllbGxvdyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHllbGxvdyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEB5ZWxsb3dIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHllbGxvd0hvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHllbGxvd0ZvY3VzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAeWVsbG93SG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy55ZWxsb3cuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEB5ZWxsb3dBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB5ZWxsb3dEb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAeWVsbG93RG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHllbGxvd0Rvd24gIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnllbGxvdy5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLUBiYXNpY0NvbG9yZWRCb3JkZXJTaXplO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFllbGxvdyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0WWVsbG93O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRZZWxsb3dUZXh0Q29sb3I7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0WWVsbG93SG92ZXI7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0WWVsbG93Rm9jdXM7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRZZWxsb3dBY3RpdmU7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRZZWxsb3dEb3duO1xufVxuXG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0ludmVydGVkQm94U2hhZG93ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0WWVsbG93SG92ZXIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFllbGxvdyAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRZZWxsb3dGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0WWVsbG93ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFllbGxvd0FjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0WWVsbG93ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFllbGxvd0Rvd24gaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFllbGxvdyAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFByaW1hcnlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0gU3RhbmRhcmQgLS0tKi9cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5wcmltYXJ5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcmltYXJ5Q29sb3I7XG4gIGNvbG9yOiBAcHJpbWFyeVRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBwcmltYXJ5VGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG59XG4udWkucHJpbWFyeS5idXR0b24ge1xuICBib3gtc2hhZG93OiBAY29sb3JlZEJveFNoYWRvdztcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5wcmltYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcmltYXJ5Q29sb3JIb3ZlcjtcbiAgY29sb3I6IEBwcmltYXJ5VGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHByaW1hcnlUZXh0U2hhZG93O1xufVxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnByaW1hcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHByaW1hcnlDb2xvckZvY3VzO1xuICBjb2xvcjogQHByaW1hcnlUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcHJpbWFyeVRleHRTaGFkb3c7XG59XG4udWkucHJpbWFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnByaW1hcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcmltYXJ5Q29sb3JEb3duO1xuICBjb2xvcjogQHByaW1hcnlUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcHJpbWFyeVRleHRTaGFkb3c7XG59XG4udWkucHJpbWFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnByaW1hcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucHJpbWFyeS5hY3RpdmUuYnV0dG9uLFxuLnVpLnByaW1hcnkuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcmltYXJ5Q29sb3JBY3RpdmU7XG4gIGNvbG9yOiBAcHJpbWFyeVRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBwcmltYXJ5VGV4dFNoYWRvdztcbn1cblxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0JvcmRlclNpemUgQHByaW1hcnlDb2xvciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHByaW1hcnlDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHByaW1hcnlDb2xvckhvdmVyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcHJpbWFyeUNvbG9ySG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBwcmltYXJ5Q29sb3JGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHByaW1hcnlDb2xvckhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnByaW1hcnkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBwcmltYXJ5Q29sb3JBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwcmltYXJ5Q29sb3JEb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBwcmltYXJ5Q29sb3JEb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcHJpbWFyeUNvbG9yRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucHJpbWFyeS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLUBiYXNpY0NvbG9yZWRCb3JkZXJTaXplO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0UHJpbWFyeUNvbG9yIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRQcmltYXJ5Q29sb3I7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0UHJpbWFyeVRleHRDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFByaW1hcnlDb2xvckhvdmVyO1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0UHJpbWFyeUNvbG9yRm9jdXM7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnByaW1hcnkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFByaW1hcnlDb2xvckFjdGl2ZTtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0UHJpbWFyeUNvbG9yRG93bjtcbn1cblxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBAYmFzaWNJbnZlcnRlZEJveFNoYWRvdyAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFByaW1hcnlDb2xvckhvdmVyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRQcmltYXJ5Q29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0UHJpbWFyeUNvbG9yRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFByaW1hcnlDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRQcmltYXJ5Q29sb3JBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFByaW1hcnlDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGludmVydGVkQm9yZGVyU2l6ZSBAbGlnaHRQcmltYXJ5Q29sb3JEb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRQcmltYXJ5Q29sb3IgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTZWNvbmRhcnlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogU3RhbmRhcmQgKi9cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnNlY29uZGFyeS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2Vjb25kYXJ5Q29sb3I7XG4gIGNvbG9yOiBAc2Vjb25kYXJ5VGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHNlY29uZGFyeVRleHRTaGFkb3c7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBjb2xvcmVkQmFja2dyb3VuZEltYWdlO1xufVxuLnVpLnNlY29uZGFyeS5idXR0b24ge1xuICBib3gtc2hhZG93OiBAY29sb3JlZEJveFNoYWRvdztcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2Vjb25kYXJ5Q29sb3JIb3ZlcjtcbiAgY29sb3I6IEBzZWNvbmRhcnlUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAc2Vjb25kYXJ5VGV4dFNoYWRvdztcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnNlY29uZGFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2Vjb25kYXJ5Q29sb3JGb2N1cztcbiAgY29sb3I6IEBzZWNvbmRhcnlUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAc2Vjb25kYXJ5VGV4dFNoYWRvdztcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzZWNvbmRhcnlDb2xvckRvd247XG4gIGNvbG9yOiBAc2Vjb25kYXJ5VGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHNlY29uZGFyeVRleHRTaGFkb3c7XG59XG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnNlY29uZGFyeS5hY3RpdmUuYnV0dG9uLFxuLnVpLnNlY29uZGFyeS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHNlY29uZGFyeUNvbG9yQWN0aXZlO1xuICBjb2xvcjogQHNlY29uZGFyeVRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBzZWNvbmRhcnlUZXh0U2hhZG93O1xufVxuXG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0JvcmRlclNpemUgQHNlY29uZGFyeUNvbG9yIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAc2Vjb25kYXJ5Q29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAc2Vjb25kYXJ5Q29sb3JIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHNlY29uZGFyeUNvbG9ySG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAc2Vjb25kYXJ5Q29sb3JGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHNlY29uZGFyeUNvbG9ySG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5zZWNvbmRhcnkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBzZWNvbmRhcnlDb2xvckFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHNlY29uZGFyeUNvbG9yRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHNlY29uZGFyeUNvbG9yRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHNlY29uZGFyeUNvbG9yRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucHJpbWFyeS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLUBiYXNpY0NvbG9yZWRCb3JkZXJTaXplO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFNlY29uZGFyeUNvbG9yIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbGlnaHRTZWNvbmRhcnlDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0U2Vjb25kYXJ5VGV4dENvbG9yO1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFNlY29uZGFyeUNvbG9ySG92ZXI7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0U2Vjb25kYXJ5Q29sb3JGb2N1cztcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFNlY29uZGFyeUNvbG9yQWN0aXZlO1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0U2Vjb25kYXJ5Q29sb3JEb3duO1xufVxuXG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0ludmVydGVkQm94U2hhZG93ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0U2Vjb25kYXJ5Q29sb3JIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0U2Vjb25kYXJ5Q29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0U2Vjb25kYXJ5Q29sb3JGb2N1cyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0U2Vjb25kYXJ5Q29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBpbnZlcnRlZEJvcmRlclNpemUgQGxpZ2h0U2Vjb25kYXJ5Q29sb3JBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBsaWdodFNlY29uZGFyeUNvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAaW52ZXJ0ZWRCb3JkZXJTaXplIEBsaWdodFNlY29uZGFyeUNvbG9yRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGxpZ2h0U2Vjb25kYXJ5Q29sb3IgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICBQb3NpdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFN0YW5kYXJkICovXG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwb3NpdGl2ZUNvbG9yO1xuICBjb2xvcjogQHBvc2l0aXZlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHBvc2l0aXZlVGV4dFNoYWRvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogQGNvbG9yZWRCYWNrZ3JvdW5kSW1hZ2U7XG59XG4udWkucG9zaXRpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwb3NpdGl2ZUNvbG9ySG92ZXI7XG4gIGNvbG9yOiBAcG9zaXRpdmVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcG9zaXRpdmVUZXh0U2hhZG93O1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5wb3NpdGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcG9zaXRpdmVDb2xvckZvY3VzO1xuICBjb2xvcjogQHBvc2l0aXZlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHBvc2l0aXZlVGV4dFNoYWRvdztcbn1cbi51aS5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcG9zaXRpdmVDb2xvckRvd247XG4gIGNvbG9yOiBAcG9zaXRpdmVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcG9zaXRpdmVUZXh0U2hhZG93O1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucG9zaXRpdmUuYWN0aXZlLmJ1dHRvbixcbi51aS5wb3NpdGl2ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBvc2l0aXZlQ29sb3JBY3RpdmU7XG4gIGNvbG9yOiBAcG9zaXRpdmVUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAcG9zaXRpdmVUZXh0U2hhZG93O1xufVxuXG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNCb3JkZXJTaXplIEBwb3NpdGl2ZUNvbG9yIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcG9zaXRpdmVDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAcG9zaXRpdmVDb2xvckhvdmVyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcG9zaXRpdmVDb2xvckhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBwb3NpdGl2ZUNvbG9yRm9jdXMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwb3NpdGl2ZUNvbG9ySG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAcG9zaXRpdmVDb2xvckFjdGl2ZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHBvc2l0aXZlQ29sb3JEb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQHBvc2l0aXZlQ29sb3JEb3duIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcG9zaXRpdmVDb2xvckRvd24gIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnByaW1hcnkuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC1AYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICAgTmVnYXRpdmVcbi0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTdGFuZGFyZCAqL1xuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5uZWdhdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmVnYXRpdmVDb2xvcjtcbiAgY29sb3I6IEBuZWdhdGl2ZVRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBuZWdhdGl2ZVRleHRTaGFkb3c7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBjb2xvcmVkQmFja2dyb3VuZEltYWdlO1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IEBjb2xvcmVkQm94U2hhZG93O1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5uZWdhdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmVnYXRpdmVDb2xvckhvdmVyO1xuICBjb2xvcjogQG5lZ2F0aXZlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQG5lZ2F0aXZlVGV4dFNoYWRvdztcbn1cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkubmVnYXRpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG5lZ2F0aXZlQ29sb3JGb2N1cztcbiAgY29sb3I6IEBuZWdhdGl2ZVRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBuZWdhdGl2ZVRleHRTaGFkb3c7XG59XG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5uZWdhdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG5lZ2F0aXZlQ29sb3JEb3duO1xuICBjb2xvcjogQG5lZ2F0aXZlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQG5lZ2F0aXZlVGV4dFNoYWRvdztcbn1cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLm5lZ2F0aXZlLmFjdGl2ZS5idXR0b24sXG4udWkubmVnYXRpdmUuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBuZWdhdGl2ZUNvbG9yQWN0aXZlO1xuICBjb2xvcjogQG5lZ2F0aXZlVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQG5lZ2F0aXZlVGV4dFNoYWRvdztcbn1cblxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQm9yZGVyU2l6ZSBAbmVnYXRpdmVDb2xvciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQG5lZ2F0aXZlQ29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQG5lZ2F0aXZlQ29sb3JIb3ZlciBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQG5lZ2F0aXZlQ29sb3JIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCBAYmFzaWNDb2xvcmVkQm9yZGVyU2l6ZSBAbmVnYXRpdmVDb2xvckZvY3VzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAbmVnYXRpdmVDb2xvckhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5uZWdhdGl2ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggQGJhc2ljQ29sb3JlZEJvcmRlclNpemUgQG5lZ2F0aXZlQ29sb3JBY3RpdmUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBuZWdhdGl2ZUNvbG9yRG93biAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IEBiYXNpY0NvbG9yZWRCb3JkZXJTaXplIEBuZWdhdGl2ZUNvbG9yRG93biBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQG5lZ2F0aXZlQ29sb3JEb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtQGJhc2ljQ29sb3JlZEJvcmRlclNpemU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZvbnQtc2l6ZTogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbjogQHZlcnRpY2FsTWFyZ2luIEBob3Jpem9udGFsTWFyZ2luIDBlbSAwZW07XG59XG4udWkuYnV0dG9uczpub3QoLmJhc2ljKTpub3QoLmludmVydGVkKSB7XG4gIGJveC1zaGFkb3c6IEBncm91cEJveFNoYWRvdztcbn1cblxuLyogQ2xlYXJmaXggKi9cbi51aS5idXR0b25zOmFmdGVyIHtcbiAgY29udGVudDogXCIuXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qIFN0YW5kYXJkIEdyb3VwICovXG4udWkuYnV0dG9ucyAuYnV0dG9uIHtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1hcmdpbjogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIG1hcmdpbjogQGdyb3VwQnV0dG9uT2Zmc2V0O1xufVxuLnVpLmJ1dHRvbnMgPiAudWkuYnV0dG9uOm5vdCguYmFzaWMpOm5vdCguaW52ZXJ0ZWQpLFxuLnVpLmJ1dHRvbnM6bm90KC5iYXNpYyk6bm90KC5pbnZlcnRlZCkgPiAuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogQGdyb3VwQnV0dG9uQm94U2hhZG93O1xufVxuXG4udWkuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG59XG4udWkuYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQGJvcmRlclJhZGl1cztcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG59XG5cbi8qIFZlcnRpY2FsICBTdHlsZSAqL1xuLnVpLnZlcnRpY2FsLmJ1dHRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi51aS52ZXJ0aWNhbC5idXR0b25zIC5idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IEB2ZXJ0aWNhbEdyb3VwT2Zmc2V0O1xuICBib3gtc2hhZG93OiBAdmVydGljYWxCb3hTaGFkb3c7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQGJvcmRlclJhZGl1cztcbn1cbi51aS52ZXJ0aWNhbC5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogQGJvcmRlclJhZGl1cztcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG59XG4udWkudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tIFNpZ24gdXAgY29sb3IgLS0tKi9cblxuLnVpLnNpZ251cC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2lnbnVwQ29sb3I7XG4gIGNvbG9yOiBAc2lnbnVwQ29sb3JUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAc2lnbnVwQ29sb3JUZXh0U2hhZG93O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAY29sb3JlZEJhY2tncm91bmRJbWFnZTtcbiAgYm94LXNoYWRvdzogQGNvbG9yZWRCb3hTaGFkb3c7XG59XG5cbi51aS5zaWdudXAuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHNpZ251cENvbG9ySG92ZXI7XG4gIGNvbG9yOiBAc2lnbnVwQ29sb3JUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAc2lnbnVwQ29sb3JUZXh0U2hhZG93O1xufVxuXG4udWkuc2lnbnVwLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzaWdudXBDb2xvckZvY3VzO1xuICBjb2xvcjogQHNpZ251cENvbG9yVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHNpZ251cENvbG9yVGV4dFNoYWRvdztcbn1cblxuLnVpLnNpZ251cC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHNpZ251cENvbG9yRG93bjtcbiAgY29sb3I6IEBzaWdudXBDb2xvclRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBzaWdudXBDb2xvclRleHRTaGFkb3c7XG59XG5cbi8qLS0tIFNlYXJjaCBpY29uIGJ1dHRvbiBjb2xvciAtLS0qL1xuXG4udWkuc2VhcmNoLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzZWFyY2hCdXR0b25Db2xvcjtcbiAgY29sb3I6IEBzZWFyY2hCdXR0b25Db2xvclRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBzZWFyY2hCdXR0b25Db2xvclRleHRTaGFkb3c7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBjb2xvcmVkQmFja2dyb3VuZEltYWdlO1xuICBib3gtc2hhZG93OiBAY29sb3JlZEJveFNoYWRvdztcbn1cblxuLnVpLnNlYXJjaC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2VhcmNoQnV0dG9uQ29sb3JIb3ZlcjtcbiAgY29sb3I6IEBzZWFyY2hCdXR0b25Db2xvclRleHRDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBzZWFyY2hCdXR0b25Db2xvclRleHRTaGFkb3c7XG59XG5cbi51aS5zZWFyY2guYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHNlYXJjaEJ1dHRvbkNvbG9yRm9jdXM7XG4gIGNvbG9yOiBAc2VhcmNoQnV0dG9uQ29sb3JUZXh0Q29sb3I7XG4gIHRleHQtc2hhZG93OiBAc2VhcmNoQnV0dG9uQ29sb3JUZXh0U2hhZG93O1xufVxuXG4udWkuc2VhcmNoLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2VhcmNoQnV0dG9uQ29sb3JEb3duO1xuICBjb2xvcjogQHNlYXJjaEJ1dHRvbkNvbG9yVGV4dENvbG9yO1xuICB0ZXh0LXNoYWRvdzogQHNlYXJjaEJ1dHRvbkNvbG9yVGV4dFNoYWRvdztcbn1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQGltcG9ydCBcIkBsZXNzL2ludmVuaW9fdGhlbWUvdGhlbWUvZWxlbWVudHMvYnV0dG9uLm92ZXJyaWRlc1wiO1xuXG4vKiogQ2l0YXRpb24gbGFuZGluZyBwYWdlICovXG5cbi5jb3B5LmJ1dHRvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59IiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQ29udGFpbmVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ2VsZW1lbnQnO1xuQGVsZW1lbnQgOiAnY29udGFpbmVyJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGFpbmVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBBbGwgU2l6ZXMgKi9cbi51aS5jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiBAbWF4V2lkdGggIWltcG9ydGFudDtcbn1cblxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBsYXJnZXN0TW9iaWxlU2NyZWVuKSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiBAbW9iaWxlV2lkdGggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogQG1vYmlsZUd1dHRlciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogQG1vYmlsZUd1dHRlciAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IEBtb2JpbGVHcmlkV2lkdGggIWltcG9ydGFudDtcbiAgfVxuICAudWkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IEBtb2JpbGVSZWxheGVkR3JpZFdpZHRoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IEBtb2JpbGVWZXJ5UmVsYXhlZEdyaWRXaWR0aCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIFRhYmxldCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAdGFibGV0QnJlYWtwb2ludCkgYW5kIChtYXgtd2lkdGg6IEBsYXJnZXN0VGFibGV0U2NyZWVuKSB7XG4gIC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiBAdGFibGV0V2lkdGg7XG4gICAgbWFyZ2luLWxlZnQ6IEB0YWJsZXRHdXR0ZXIgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IEB0YWJsZXRHdXR0ZXIgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBAdGFibGV0R3JpZFdpZHRoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBAdGFibGV0UmVsYXhlZEdyaWRXaWR0aCAhaW1wb3J0YW50O1xuICB9XG4gIC51aS52ZXJ5LnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBAdGFibGV0VmVyeVJlbGF4ZWRHcmlkV2lkdGggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBTbWFsbCBNb25pdG9yICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBjb21wdXRlckJyZWFrcG9pbnQpIGFuZCAobWF4LXdpZHRoOiBAbGFyZ2VzdFNtYWxsTW9uaXRvcikge1xuICAudWkuY29udGFpbmVyIHtcbiAgICB3aWR0aDogQGNvbXB1dGVyV2lkdGg7XG4gICAgbWFyZ2luLWxlZnQ6IEBjb21wdXRlckd1dHRlciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogQGNvbXB1dGVyR3V0dGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogQGNvbXB1dGVyR3JpZFdpZHRoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBAY29tcHV0ZXJSZWxheGVkR3JpZFdpZHRoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IEBjb21wdXRlclZlcnlSZWxheGVkR3JpZFdpZHRoICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogTGFyZ2UgTW9uaXRvciAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAbGFyZ2VNb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkuY29udGFpbmVyIHtcbiAgICB3aWR0aDogQGxhcmdlTW9uaXRvcldpZHRoO1xuICAgIG1hcmdpbi1sZWZ0OiBAbGFyZ2VNb25pdG9yR3V0dGVyICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBAbGFyZ2VNb25pdG9yR3V0dGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogQGxhcmdlTW9uaXRvckdyaWRXaWR0aCAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogQGxhcmdlTW9uaXRvclJlbGF4ZWRHcmlkV2lkdGggIWltcG9ydGFudDtcbiAgfVxuICAudWkudmVyeS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogQGxhcmdlTW9uaXRvclZlcnlSZWxheGVkR3JpZFdpZHRoICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4vKiBUZXh0IENvbnRhaW5lciAqL1xuLnVpLnRleHQuY29udGFpbmVyIHtcbiAgZm9udC1mYW1pbHk6IEB0ZXh0Rm9udEZhbWlseTtcbiAgbWF4LXdpZHRoOiBAdGV4dFdpZHRoICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiBAdGV4dExpbmVIZWlnaHQ7XG59XG5cbi51aS50ZXh0LmNvbnRhaW5lciB7XG4gIGZvbnQtc2l6ZTogQHRleHRTaXplO1xufVxuXG4vKiBGbHVpZCAqL1xuLnVpLmZsdWlkLmNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi51aS5qdXN0aWZpZWQuY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgaHlwaGVuczogYXV0bztcbn1cblxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5jb250YWluZXIuY292ZXItcGFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicmFuZENvbG9yO1xuICBoZWlnaHQ6IDIwZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJj4udWkuY29udGFpbmVye1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAudWkuaGVhZGVye1xuICAgIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG4gIH1cbn1cblxuLnVpLmJyZWFkY3J1bWJzLmNvbnRhaW5lciB7XG4gICAgcGFkZGluZy10b3A6IDE0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTE1cHg7XG59XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBEaXZpZGVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ2VsZW1lbnQnO1xuQGVsZW1lbnQgOiAnZGl2aWRlcic7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGl2aWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLmRpdmlkZXIge1xuICBtYXJnaW46IEBtYXJnaW47XG5cbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGhlaWdodDogMGVtO1xuXG4gIGZvbnQtd2VpZ2h0OiBAZm9udFdlaWdodDtcbiAgdGV4dC10cmFuc2Zvcm06IEB0ZXh0VHJhbnNmb3JtO1xuICBsZXR0ZXItc3BhY2luZzogQGxldHRlclNwYWNpbmc7XG4gIGNvbG9yOiBAY29sb3I7XG5cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kaXZpZGVyOm5vdCgudmVydGljYWwpOm5vdCguaG9yaXpvbnRhbCkge1xuICBib3JkZXItdG9wOiBAc2hhZG93V2lkdGggc29saWQgQHNoYWRvd0NvbG9yO1xuICBib3JkZXItYm90dG9tOiBAaGlnaGxpZ2h0V2lkdGggc29saWQgQGhpZ2hsaWdodENvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEFsbG93IGRpdmlkZXIgYmV0d2VlbiBlYWNoIGNvbHVtbiByb3cgKi9cbi51aS5ncmlkID4gLmNvbHVtbiArIC5kaXZpZGVyLFxuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiArIC5kaXZpZGVyIHtcbiAgbGVmdDogYXV0bztcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgSG9yaXpvbnRhbFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmhvcml6b250YWwuZGl2aWRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiBAaG9yaXpvbnRhbE1hcmdpbjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnVpLmhvcml6b250YWwuZGl2aWRlcjpiZWZvcmUsXG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgQGhvcml6b250YWxEaXZpZGVyTWFyZ2luIHRvcCA1MCU7XG59XG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBAaG9yaXpvbnRhbERpdmlkZXJNYXJnaW4gdG9wIDUwJTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFZlcnRpY2FsXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkudmVydGljYWwuZGl2aWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcblxuICBtYXJnaW46IDByZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogNTAlO1xuXG4gIGxpbmUtaGVpZ2h0OiAwZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4udWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4udWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBjb250ZW50OiAnJztcbiAgei1pbmRleDogMztcblxuICBib3JkZXItbGVmdDogQHNoYWRvd1dpZHRoIHNvbGlkIEBzaGFkb3dDb2xvcjtcbiAgYm9yZGVyLXJpZ2h0OiBAaGlnaGxpZ2h0V2lkdGggc29saWQgQGhpZ2hsaWdodENvbG9yO1xuXG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiBAdmVydGljYWxEaXZpZGVySGVpZ2h0O1xufVxuXG4udWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUge1xuICB0b3A6IC0xMDAlO1xufVxuLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMHB4O1xufVxuXG4vKiBJbnNpZGUgZ3JpZCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcblxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXIsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IEBob3Jpem9udGFsTWFyZ2luO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfVxuXG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgQGhvcml6b250YWxEaXZpZGVyTWFyZ2luIHRvcCA1MCU7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBAaG9yaXpvbnRhbERpdmlkZXJNYXJnaW4gdG9wIDUwJTtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZGl2aWRlciA+IC5pY29uIHtcbiAgbWFyZ2luOiBAZGl2aWRlckljb25NYXJnaW47XG4gIGZvbnQtc2l6ZTogQGRpdmlkZXJJY29uU2l6ZTtcbiAgaGVpZ2h0OiAxZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEhpZGRlblxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmhpZGRlbi5kaXZpZGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLnVpLmhpZGRlbi5kaXZpZGVyOmJlZm9yZSxcbi51aS5oaWRkZW4uZGl2aWRlcjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRpdmlkZXIuaW52ZXJ0ZWQsXG4udWkudmVydGljYWwuaW52ZXJ0ZWQuZGl2aWRlcixcbi51aS5ob3Jpem9udGFsLmludmVydGVkLmRpdmlkZXIge1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xufVxuLnVpLmRpdmlkZXIuaW52ZXJ0ZWQsXG4udWkuZGl2aWRlci5pbnZlcnRlZDphZnRlcixcbi51aS5kaXZpZGVyLmludmVydGVkOmJlZm9yZSB7XG4gIGJvcmRlci10b3AtY29sb3I6IEBpbnZlcnRlZFNoYWRvd0NvbG9yICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBAaW52ZXJ0ZWRTaGFkb3dDb2xvciAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiBAaW52ZXJ0ZWRIaWdobGlnaHRDb2xvciAhaW1wb3J0YW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IEBpbnZlcnRlZEhpZ2hsaWdodENvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5maXR0ZWQuZGl2aWRlciB7XG4gIG1hcmdpbjogMGVtO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2xlYXJpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jbGVhcmluZy5kaXZpZGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2VjdGlvbi5kaXZpZGVyIHtcbiAgbWFyZ2luLXRvcDogQHNlY3Rpb25NYXJnaW47XG4gIG1hcmdpbi1ib3R0b206IEBzZWN0aW9uTWFyZ2luO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZGl2aWRlciB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bTtcbn1cblxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBGbGFnXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAnZWxlbWVudCc7XG5AZWxlbWVudCA6ICdmbGFnJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgRmxhZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaS5mbGFnOm5vdCguaWNvbikge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgd2lkdGg6IEB3aWR0aDtcbiAgaGVpZ2h0OiBAaGVpZ2h0O1xuXG4gIGxpbmUtaGVpZ2h0OiBAaGVpZ2h0O1xuICB2ZXJ0aWNhbC1hbGlnbjogQHZlcnRpY2FsQWxpZ247XG4gIG1hcmdpbjogMGVtIEBtYXJnaW4gMGVtIDBlbTtcblxuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG5cbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTcHJpdGUgKi9cbmkuZmxhZzpub3QoLmljb24pOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHVybChAc3ByaXRlUGF0aCkgbm8tcmVwZWF0IC0xMDhweCAtMTk3NnB4O1xuICB3aWR0aDogQHdpZHRoO1xuICBoZWlnaHQ6IEBoZWlnaHQ7XG59XG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEhlYWRlclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ2VsZW1lbnQnO1xuQGVsZW1lbnQgOiAnaGVhZGVyJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qIFN0YW5kYXJkICovXG4udWkuaGVhZGVyIHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IEBtYXJnaW47XG4gIHBhZGRpbmc6IEB2ZXJ0aWNhbFBhZGRpbmcgQGhvcml6b250YWxQYWRkaW5nO1xuICBmb250LWZhbWlseTogQGZvbnRGYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiBAZm9udFdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lSGVpZ2h0O1xuICB0ZXh0LXRyYW5zZm9ybTogQHRleHRUcmFuc2Zvcm07XG4gIGNvbG9yOiBAdGV4dENvbG9yO1xufVxuXG4udWkuaGVhZGVyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogQGZpcnN0TWFyZ2luO1xufVxuLnVpLmhlYWRlcjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogQGxhc3RNYXJnaW47XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN1YiBIZWFkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IEBub3JtYWw7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luOiBAc3ViSGVhZGVyTWFyZ2luO1xuICBmb250LXNpemU6IEBzdWJIZWFkZXJGb250U2l6ZTtcbiAgbGluZS1oZWlnaHQ6IEBzdWJIZWFkZXJMaW5lSGVpZ2h0O1xuICBjb2xvcjogQHN1YkhlYWRlckNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaGVhZGVyID4gLmljb24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBvcGFjaXR5OiBAaWNvbk9wYWNpdHk7XG4gIGZvbnQtc2l6ZTogQGljb25TaXplO1xuICBwYWRkaW5nLXRvcDogQGljb25PZmZzZXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBAaWNvbkFsaWdubWVudDtcbn1cblxuLyogV2l0aCBUZXh0IE5vZGUgKi9cbi51aS5oZWFkZXIgLmljb246b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IEBpY29uTWFyZ2luO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmhlYWRlciA+IC5pbWFnZTpub3QoLmljb24pLFxuLnVpLmhlYWRlciA+IGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogQGltYWdlT2Zmc2V0O1xuICB3aWR0aDogQGltYWdlV2lkdGg7XG4gIGhlaWdodDogQGltYWdlSGVpZ2h0O1xuICB2ZXJ0aWNhbC1hbGlnbjogQGltYWdlQWxpZ25tZW50O1xufVxuLnVpLmhlYWRlciA+IC5pbWFnZTpub3QoLmljb24pOm9ubHktY2hpbGQsXG4udWkuaGVhZGVyID4gaW1nOm9ubHktY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IEBpbWFnZU1hcmdpbjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaGVhZGVyIC5jb250ZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogQGNvbnRlbnRBbGlnbm1lbnQ7XG59XG5cbi8qIEFmdGVyIEltYWdlICovXG4udWkuaGVhZGVyID4gaW1nICsgLmNvbnRlbnQsXG4udWkuaGVhZGVyID4gLmltYWdlICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IEBpbWFnZU1hcmdpbjtcbiAgdmVydGljYWwtYWxpZ246IEBjb250ZW50SW1hZ2VBbGlnbm1lbnQ7XG59XG5cbi8qIEFmdGVyIEljb24gKi9cbi51aS5oZWFkZXIgPiAuaWNvbiArIC5jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiBAaWNvbk1hcmdpbjtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IEBjb250ZW50SWNvbkFsaWdubWVudDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gTG9vc2UgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5oZWFkZXIgLnVpLmxhYmVsIHtcbiAgZm9udC1zaXplOiBAbGFiZWxTaXplO1xuICBtYXJnaW4tbGVmdDogQGxhYmVsRGlzdGFuY2U7XG4gIHZlcnRpY2FsLWFsaWduOiBAbGFiZWxWZXJ0aWNhbEFsaWduO1xufVxuXG4vKiBQb3NpdGlvbmluZyAqL1xuLnVpLmhlYWRlciArIHAge1xuICBtYXJnaW4tdG9wOiBAbmV4dFBhcmFncmFwaERpc3RhbmNlO1xufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuaDEudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiBAaDE7XG59XG5oMi51aS5oZWFkZXIge1xuICBmb250LXNpemU6IEBoMjtcbn1cbmgzLnVpLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogQGgzO1xufVxuaDQudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiBAaDQ7XG59XG5oNS51aS5oZWFkZXIge1xuICBmb250LXNpemU6IEBoNTtcbn1cblxuXG4vKiBTdWIgSGVhZGVyICovXG5oMS51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IEBoMVN1YkhlYWRlckZvbnRTaXplO1xufVxuaDIudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiBAaDJTdWJIZWFkZXJGb250U2l6ZTtcbn1cbmgzLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogQGgzU3ViSGVhZGVyRm9udFNpemU7XG59XG5oNC51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IEBoNFN1YkhlYWRlckZvbnRTaXplO1xufVxuaDUudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiBAaDVTdWJIZWFkZXJGb250U2l6ZTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gQ29udGVudCBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaHVnZS5oZWFkZXIge1xuICBtaW4taGVpZ2h0OiAxZW07XG4gIGZvbnQtc2l6ZTogQGh1Z2VGb250U2l6ZTtcbn1cbi51aS5sYXJnZS5oZWFkZXIge1xuICBmb250LXNpemU6IEBsYXJnZUZvbnRTaXplO1xufVxuLnVpLm1lZGl1bS5oZWFkZXIge1xuICBmb250LXNpemU6IEBtZWRpdW1Gb250U2l6ZTtcbn1cbi51aS5zbWFsbC5oZWFkZXIge1xuICBmb250LXNpemU6IEBzbWFsbEZvbnRTaXplO1xufVxuLnVpLnRpbnkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiBAdGlueUZvbnRTaXplO1xufVxuXG4vKiBTdWIgSGVhZGVyICovXG4udWkuaHVnZS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IEBodWdlU3ViSGVhZGVyRm9udFNpemU7XG59XG4udWkubGFyZ2UuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiBAaHVnZVN1YkhlYWRlckZvbnRTaXplO1xufVxuLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogQHN1YkhlYWRlckZvbnRTaXplO1xufVxuLnVpLnNtYWxsLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogQHNtYWxsU3ViSGVhZGVyRm9udFNpemU7XG59XG4udWkudGlueS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IEB0aW55U3ViSGVhZGVyRm9udFNpemU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN1YiBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc3ViLmhlYWRlciB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogQHN1YkhlYWRpbmdEaXN0YW5jZTtcbiAgZm9udC13ZWlnaHQ6IEBzdWJIZWFkaW5nRm9udFdlaWdodDtcbiAgZm9udC1zaXplOiBAc3ViSGVhZGluZ0ZvbnRTaXplO1xuICB0ZXh0LXRyYW5zZm9ybTogQHN1YkhlYWRpbmdUZXh0VHJhbnNmb3JtO1xuICBjb2xvcjogQHN1YkhlYWRpbmdDb2xvcjtcbn1cblxuLnVpLnNtYWxsLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IEBzbWFsbFN1YkhlYWRpbmdTaXplO1xufVxuLnVpLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IEBzdWJIZWFkaW5nRm9udFNpemU7XG59XG4udWkubGFyZ2Uuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogQGxhcmdlU3ViSGVhZGluZ1NpemU7XG59XG4udWkuaHVnZS5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiBAaHVnZVN1YkhlYWRpbmdTaXplO1xufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmljb24uaGVhZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogQGljb25IZWFkZXJUb3BNYXJnaW4gMGVtIEBpY29uSGVhZGVyQm90dG9tTWFyZ2luO1xufVxuLnVpLmljb24uaGVhZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnVpLmljb24uaGVhZGVyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogQGljb25IZWFkZXJGaXJzdE1hcmdpbjtcbn1cbi51aS5pY29uLmhlYWRlciAuaWNvbiB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC1zaXplOiBAaWNvbkhlYWRlclNpemU7XG4gIG1hcmdpbjogMGVtIGF1dG8gQGljb25IZWFkZXJNYXJnaW47XG4gIG9wYWNpdHk6IEBpY29uSGVhZGVyT3BhY2l0eTtcbn1cbi51aS5pY29uLmhlYWRlciAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkuaWNvbi5oZWFkZXIgLmNpcmN1bGFyLmljb24ge1xuICBmb250LXNpemU6IEBjaXJjdWxhckhlYWRlckljb25TaXplO1xufVxuLnVpLmljb24uaGVhZGVyIC5zcXVhcmUuaWNvbiB7XG4gIGZvbnQtc2l6ZTogQHNxdWFyZUhlYWRlckljb25TaXplO1xufVxuLnVpLmJsb2NrLmljb24uaGVhZGVyIC5pY29uIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLmljb24uaGVhZGVyLmFsaWduZWQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLmRpc2FibGVkLmhlYWRlciB7XG4gIG9wYWNpdHk6IEBkaXNhYmxlZE9wYWNpdHk7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW52ZXJ0ZWQuaGVhZGVyIHtcbiAgY29sb3I6IEBpbnZlcnRlZENvbG9yO1xufVxuLnVpLmludmVydGVkLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRTdWJIZWFkZXJDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5hdHRhY2hlZC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiBAaW52ZXJ0ZWRBdHRhY2hlZEJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxvY2suaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQmxvY2tCYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmludmVydGVkLmJsb2NrLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tIFJlZCAtLS0qL1xuLnVpLnJlZC5oZWFkZXIge1xuICBjb2xvcjogQHJlZCAhaW1wb3J0YW50O1xufVxuYS51aS5yZWQuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEByZWRIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLnJlZC5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBAZGl2aWRlZENvbG9yZWRCb3JkZXJXaWR0aCBzb2xpZCBAcmVkO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnJlZC5oZWFkZXIge1xuICBjb2xvcjogQGxpZ2h0UmVkICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnJlZC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQGxpZ2h0UmVkSG92ZXIgIWltcG9ydGFudDtcbn1cblxuLyotLS0gT3JhbmdlIC0tLSovXG4udWkub3JhbmdlLmhlYWRlciB7XG4gIGNvbG9yOiBAb3JhbmdlICFpbXBvcnRhbnQ7XG59XG5hLnVpLm9yYW5nZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQG9yYW5nZUhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkub3JhbmdlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IEBkaXZpZGVkQ29sb3JlZEJvcmRlcldpZHRoIHNvbGlkIEBvcmFuZ2U7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLm9yYW5nZS5oZWFkZXIge1xuICBjb2xvcjogQGxpZ2h0T3JhbmdlICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLm9yYW5nZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQGxpZ2h0T3JhbmdlSG92ZXIgIWltcG9ydGFudDtcbn1cblxuLyotLS0gT2xpdmUgLS0tKi9cbi51aS5vbGl2ZS5oZWFkZXIge1xuICBjb2xvcjogQG9saXZlICFpbXBvcnRhbnQ7XG59XG5hLnVpLm9saXZlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiBAb2xpdmVIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLm9saXZlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IEBkaXZpZGVkQ29sb3JlZEJvcmRlcldpZHRoIHNvbGlkIEBvbGl2ZTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQub2xpdmUuaGVhZGVyIHtcbiAgY29sb3I6IEBsaWdodE9saXZlICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLm9saXZlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiBAbGlnaHRPbGl2ZUhvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIFllbGxvdyAtLS0qL1xuLnVpLnllbGxvdy5oZWFkZXIge1xuICBjb2xvcjogQHllbGxvdyAhaW1wb3J0YW50O1xufVxuYS51aS55ZWxsb3cuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEB5ZWxsb3dIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLnllbGxvdy5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBAZGl2aWRlZENvbG9yZWRCb3JkZXJXaWR0aCBzb2xpZCBAeWVsbG93O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC55ZWxsb3cuaGVhZGVyIHtcbiAgY29sb3I6IEBsaWdodFllbGxvdyAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC55ZWxsb3cuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEBsaWdodFllbGxvd0hvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIEdyZWVuIC0tLSovXG4udWkuZ3JlZW4uaGVhZGVyIHtcbiAgY29sb3I6IEBncmVlbiAhaW1wb3J0YW50O1xufVxuYS51aS5ncmVlbi5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQGdyZWVuSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5ncmVlbi5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBAZGl2aWRlZENvbG9yZWRCb3JkZXJXaWR0aCBzb2xpZCBAZ3JlZW47XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmdyZWVuLmhlYWRlciB7XG4gIGNvbG9yOiBAbGlnaHRHcmVlbiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5ncmVlbi5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQGxpZ2h0R3JlZW5Ib3ZlciAhaW1wb3J0YW50O1xufVxuXG4vKi0tLSBUZWFsIC0tLSovXG4udWkudGVhbC5oZWFkZXIge1xuICBjb2xvcjogQHRlYWwgIWltcG9ydGFudDtcbn1cbmEudWkudGVhbC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQHRlYWxIb3ZlciAhaW1wb3J0YW50O1xufVxuLnVpLnRlYWwuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogQGRpdmlkZWRDb2xvcmVkQm9yZGVyV2lkdGggc29saWQgQHRlYWw7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnRlYWwuaGVhZGVyIHtcbiAgY29sb3I6IEBsaWdodFRlYWwgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQudGVhbC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQGxpZ2h0VGVhbEhvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIEJsdWUgLS0tKi9cbi51aS5ibHVlLmhlYWRlciB7XG4gIGNvbG9yOiBAYmx1ZSAhaW1wb3J0YW50O1xufVxuYS51aS5ibHVlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiBAYmx1ZUhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYmx1ZS5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBAZGl2aWRlZENvbG9yZWRCb3JkZXJXaWR0aCBzb2xpZCBAYmx1ZTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYmx1ZS5oZWFkZXIge1xuICBjb2xvcjogQGxpZ2h0Qmx1ZSAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5ibHVlLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiBAbGlnaHRCbHVlSG92ZXIgIWltcG9ydGFudDtcbn1cblxuLyotLS0gVmlvbGV0IC0tLSovXG4udWkudmlvbGV0LmhlYWRlciB7XG4gIGNvbG9yOiBAdmlvbGV0ICFpbXBvcnRhbnQ7XG59XG5hLnVpLnZpb2xldC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQHZpb2xldEhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkudmlvbGV0LmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IEBkaXZpZGVkQ29sb3JlZEJvcmRlcldpZHRoIHNvbGlkIEB2aW9sZXQ7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnZpb2xldC5oZWFkZXIge1xuICBjb2xvcjogQGxpZ2h0VmlvbGV0ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnZpb2xldC5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQGxpZ2h0VmlvbGV0SG92ZXIgIWltcG9ydGFudDtcbn1cblxuLyotLS0gUHVycGxlIC0tLSovXG4udWkucHVycGxlLmhlYWRlciB7XG4gIGNvbG9yOiBAcHVycGxlICFpbXBvcnRhbnQ7XG59XG5hLnVpLnB1cnBsZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQHB1cnBsZUhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkucHVycGxlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IEBkaXZpZGVkQ29sb3JlZEJvcmRlcldpZHRoIHNvbGlkIEBwdXJwbGU7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnB1cnBsZS5oZWFkZXIge1xuICBjb2xvcjogQGxpZ2h0UHVycGxlICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnB1cnBsZS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQGxpZ2h0UHVycGxlSG92ZXIgIWltcG9ydGFudDtcbn1cblxuLyotLS0gUGluayAtLS0qL1xuLnVpLnBpbmsuaGVhZGVyIHtcbiAgY29sb3I6IEBwaW5rICFpbXBvcnRhbnQ7XG59XG5hLnVpLnBpbmsuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEBwaW5rSG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5waW5rLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IEBkaXZpZGVkQ29sb3JlZEJvcmRlcldpZHRoIHNvbGlkIEBwaW5rO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5waW5rLmhlYWRlciB7XG4gIGNvbG9yOiBAbGlnaHRQaW5rICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnBpbmsuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEBsaWdodFBpbmtIb3ZlciAhaW1wb3J0YW50O1xufVxuXG4vKi0tLSBCcm93biAtLS0qL1xuLnVpLmJyb3duLmhlYWRlciB7XG4gIGNvbG9yOiBAYnJvd24gIWltcG9ydGFudDtcbn1cbmEudWkuYnJvd24uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEBicm93bkhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuYnJvd24uZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogQGRpdmlkZWRDb2xvcmVkQm9yZGVyV2lkdGggc29saWQgQGJyb3duO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5icm93bi5oZWFkZXIge1xuICBjb2xvcjogQGxpZ2h0QnJvd24gIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQuYnJvd24uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEBsaWdodEJyb3duSG92ZXIgIWltcG9ydGFudDtcbn1cblxuLyotLS0gR3JleSAtLS0qL1xuLnVpLmdyZXkuaGVhZGVyIHtcbiAgY29sb3I6IEBncmV5ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmdyZXkuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEBncmV5SG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5ncmV5LmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IEBkaXZpZGVkQ29sb3JlZEJvcmRlcldpZHRoIHNvbGlkIEBncmV5O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ncmV5LmhlYWRlciB7XG4gIGNvbG9yOiBAbGlnaHRHcmV5ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLmdyZXkuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEBsaWdodEdyZXlIb3ZlciAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmxlZnQuYWxpZ25lZC5oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpLnJpZ2h0LmFsaWduZWQuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udWkuY2VudGVyZWQuaGVhZGVyLFxuLnVpLmNlbnRlci5hbGlnbmVkLmhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS5qdXN0aWZpZWQuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi51aS5qdXN0aWZpZWQuaGVhZGVyOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZsb2F0ZWQuaGVhZGVyLFxuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5oZWFkZXIge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IEBmbG9hdGVkTWFyZ2luO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uaGVhZGVyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1sZWZ0OiBAZmxvYXRlZE1hcmdpbjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5maXR0ZWQuaGVhZGVyIHtcbiAgcGFkZGluZzogMGVtO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGl2aWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRpdmlkaW5nLmhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiBAZGl2aWRlZEJvcmRlclBhZGRpbmc7XG4gIGJvcmRlci1ib3R0b206IEBkaXZpZGVkQm9yZGVyO1xufVxuLnVpLmRpdmlkaW5nLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiBAZGl2aWRlZFN1YkhlYWRlclBhZGRpbmc7XG59XG4udWkuZGl2aWRpbmcuaGVhZGVyIC5pY29uIHtcbiAgbWFyZ2luLWJvdHRvbTogQGRpdmlkZWRJY29uUGFkZGluZztcbn1cblxuLnVpLmludmVydGVkLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IEBpbnZlcnRlZERpdmlkZWRCb3JkZXJDb2xvcjtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQmxvY2tcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmJsb2NrLmhlYWRlciB7XG4gIGJhY2tncm91bmQ6IEBibG9ja0JhY2tncm91bmQ7XG4gIHBhZGRpbmc6IEBibG9ja1ZlcnRpY2FsUGFkZGluZyBAYmxvY2tIb3Jpem9udGFsUGFkZGluZztcbiAgYm94LXNoYWRvdzogQGJsb2NrQm94U2hhZG93O1xuICBib3JkZXI6IEBibG9ja0JvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGJsb2NrQm9yZGVyUmFkaXVzO1xufVxuXG4udWkudGlueS5ibG9jay5oZWFkZXIge1xuICBmb250LXNpemU6IEB0aW55QmxvY2s7XG59XG4udWkuc21hbGwuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiBAc21hbGxCbG9jaztcbn1cbi51aS5ibG9jay5oZWFkZXI6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpOm5vdChoNikge1xuICBmb250LXNpemU6IEBtZWRpdW1CbG9jaztcbn1cbi51aS5sYXJnZS5ibG9jay5oZWFkZXIge1xuICBmb250LXNpemU6IEBsYXJnZUJsb2NrO1xufVxuLnVpLmh1Z2UuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiBAaHVnZUJsb2NrO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYXR0YWNoZWQuaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogQGF0dGFjaGVkQmFja2dyb3VuZDtcbiAgcGFkZGluZzogQGF0dGFjaGVkVmVydGljYWxQYWRkaW5nIEBhdHRhY2hlZEhvcml6b250YWxQYWRkaW5nO1xuICBtYXJnaW4tbGVmdDogQGF0dGFjaGVkT2Zmc2V0O1xuICBtYXJnaW4tcmlnaHQ6IEBhdHRhY2hlZE9mZnNldDtcbiAgYm94LXNoYWRvdzogQGF0dGFjaGVkQm94U2hhZG93O1xuICBib3JkZXI6IEBhdHRhY2hlZEJvcmRlcjtcbn1cbi51aS5hdHRhY2hlZC5ibG9jay5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiBAYmxvY2tCYWNrZ3JvdW5kO1xufVxuXG4udWkuYXR0YWNoZWQ6bm90KC50b3ApOm5vdCguYm90dG9tKS5oZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLnRvcC5hdHRhY2hlZC5oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IEBhdHRhY2hlZEJvcmRlclJhZGl1cyBAYXR0YWNoZWRCb3JkZXJSYWRpdXMgMGVtIDBlbTtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIEBhdHRhY2hlZEJvcmRlclJhZGl1cyBAYXR0YWNoZWRCb3JkZXJSYWRpdXM7XG59XG5cbi8qIEF0dGFjaGVkIFNpemVzICovXG4udWkudGlueS5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IEB0aW55QXR0YWNoZWRTaXplO1xufVxuLnVpLnNtYWxsLmF0dGFjaGVkLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogQHNtYWxsQXR0YWNoZWRTaXplO1xufVxuLnVpLmF0dGFjaGVkLmhlYWRlcjpub3QoaDEpOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSk6bm90KGg2KSB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bUF0dGFjaGVkU2l6ZTtcbn1cbi51aS5sYXJnZS5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IEBsYXJnZUF0dGFjaGVkU2l6ZTtcbn1cbi51aS5odWdlLmF0dGFjaGVkLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogQGh1Z2VBdHRhY2hlZFNpemU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXppbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmhlYWRlcjpub3QoaDEpOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSk6bm90KGg2KSB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bUZvbnRTaXplO1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5yZXNldC1wYXNzd29yZC5oZWFkZXIge1xuICAgIG1hcmdpbjogNDBweCAwO1xufVxuXG4udWkubG9naW4uaGVhZGVyIHtcbiAgICBtYXJnaW46IDQwcHggMDtcbn1cblxuLnVpLmxvZ2luLnNlZ21lbnQge1xuICAgIHBhZGRpbmc6IDE1cHggNDBweCA0MHB4IDQwcHg7XG59XG5cbi50aGVtZS5oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi51aS5oZWFkZXI6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpOm5vdChoNikgIHtcbiAgICBmb250LXNpemU6IDFlbTtcbn1cbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEljb25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdlbGVtZW50JztcbkBlbGVtZW50IDogJ2ljb24nO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJY29uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJY29ucyc7XG4gIHNyYzogQGZhbGxiYWNrU1JDO1xuICBzcmM6IEBzcmM7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IEBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5pLmljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG9wYWNpdHk6IEBvcGFjaXR5O1xuXG4gIG1hcmdpbjogMGVtIEBkaXN0YW5jZUZyb21UZXh0IDBlbSAwZW07XG5cbiAgd2lkdGg6IEB3aWR0aDtcbiAgaGVpZ2h0OiBAaGVpZ2h0O1xuXG4gIGZvbnQtZmFtaWx5OiAnSWNvbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBAbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBzcGVhazogbm9uZTtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5pLmljb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuaS5pY29uLmxvYWRpbmcge1xuICBoZWlnaHQ6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGFuaW1hdGlvbjogaWNvbi1sb2FkaW5nIEBsb2FkaW5nRHVyYXRpb24gbGluZWFyIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBpY29uLWxvYWRpbmcge1xuIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuIH1cbiB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pLmljb24uaG92ZXIge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbmkuaWNvbi5hY3RpdmUge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbmkuZW1waGFzaXplZC5pY29uIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG5pLmRpc2FibGVkLmljb24ge1xuICBvcGFjaXR5OiBAZGlzYWJsZWRPcGFjaXR5ICFpbXBvcnRhbnQ7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmkuZml0dGVkLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmkubGluay5pY29uLCBpLmxpbmsuaWNvbnMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IEBsaW5rT3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSBAZGVmYXVsdER1cmF0aW9uIEBkZWZhdWx0RWFzaW5nO1xufVxuaS5saW5rLmljb246aG92ZXIsIGkubGluay5pY29uczpob3ZlciB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5pLmNpcmN1bGFyLmljb24ge1xuICBib3JkZXItcmFkaXVzOiA1MDBlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuXG4gIHBhZGRpbmc6IEBjaXJjdWxhclBhZGRpbmcgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogQGNpcmN1bGFyU2hhZG93O1xuXG4gIHdpZHRoOiBAY2lyY3VsYXJTaXplICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogQGNpcmN1bGFyU2l6ZSAhaW1wb3J0YW50O1xufVxuaS5jaXJjdWxhci5pbnZlcnRlZC5pY29uIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZsaXBwZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuaS5mbGlwcGVkLmljb24sXG5pLmhvcml6b250YWxseS5mbGlwcGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbn1cbmkudmVydGljYWxseS5mbGlwcGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBSb3RhdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmkucm90YXRlZC5pY29uLFxuaS5yaWdodC5yb3RhdGVkLmljb24sXG5pLmNsb2Nrd2lzZS5yb3RhdGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbmkubGVmdC5yb3RhdGVkLmljb24sXG5pLmNvdW50ZXJjbG9ja3dpc2Uucm90YXRlZC5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5pLmJvcmRlcmVkLmljb24ge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gIHdpZHRoOiBAYm9yZGVyZWRTaXplO1xuICBoZWlnaHQ6IEBib3JkZXJlZFNpemU7XG4gIHBhZGRpbmc6IEBib3JkZXJlZFZlcnRpY2FsUGFkZGluZyBAYm9yZGVyZWRIb3Jpem9udGFsUGFkZGluZyAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBAYm9yZGVyZWRTaGFkb3c7XG59XG5pLmJvcmRlcmVkLmludmVydGVkLmljb24ge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogSW52ZXJ0ZWQgU2hhcGVzICovXG5pLmludmVydGVkLmJvcmRlcmVkLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmxhY2sgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG5pLmludmVydGVkLmljb24ge1xuICBjb2xvcjogQHdoaXRlO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBSZWQgKi9cbmkucmVkLmljb24ge1xuICBjb2xvcjogQHJlZCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5yZWQuaWNvbiB7XG4gIGNvbG9yOiBAbGlnaHRSZWQgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQucmVkLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnJlZC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHJlZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIE9yYW5nZSAqL1xuaS5vcmFuZ2UuaWNvbiB7XG4gIGNvbG9yOiBAb3JhbmdlICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLm9yYW5nZS5pY29uIHtcbiAgY29sb3I6IEBsaWdodE9yYW5nZSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5vcmFuZ2UuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIub3JhbmdlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAb3JhbmdlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogWWVsbG93ICovXG5pLnllbGxvdy5pY29uIHtcbiAgY29sb3I6IEB5ZWxsb3cgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQueWVsbG93Lmljb24ge1xuICBjb2xvcjogQGxpZ2h0WWVsbG93ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnllbGxvdy5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci55ZWxsb3cuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB5ZWxsb3cgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBPbGl2ZSAqL1xuaS5vbGl2ZS5pY29uIHtcbiAgY29sb3I6IEBvbGl2ZSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5vbGl2ZS5pY29uIHtcbiAgY29sb3I6IEBsaWdodE9saXZlICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLm9saXZlLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLm9saXZlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAb2xpdmUgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBHcmVlbiAqL1xuaS5ncmVlbi5pY29uIHtcbiAgY29sb3I6IEBncmVlbiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ncmVlbi5pY29uIHtcbiAgY29sb3I6IEBsaWdodEdyZWVuICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLmdyZWVuLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmdyZWVuLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JlZW4gIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBUZWFsICovXG5pLnRlYWwuaWNvbiB7XG4gIGNvbG9yOiBAdGVhbCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC50ZWFsLmljb24ge1xuICBjb2xvcjogQGxpZ2h0VGVhbCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC50ZWFsLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnRlYWwuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0ZWFsICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogQmx1ZSAqL1xuaS5ibHVlLmljb24ge1xuICBjb2xvcjogQGJsdWUgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYmx1ZS5pY29uIHtcbiAgY29sb3I6IEBsaWdodEJsdWUgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuYmx1ZS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5ibHVlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmx1ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIFZpb2xldCAqL1xuaS52aW9sZXQuaWNvbiB7XG4gIGNvbG9yOiBAdmlvbGV0ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnZpb2xldC5pY29uIHtcbiAgY29sb3I6IEBsaWdodFZpb2xldCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC52aW9sZXQuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIudmlvbGV0Lmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdmlvbGV0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogUHVycGxlICovXG5pLnB1cnBsZS5pY29uIHtcbiAgY29sb3I6IEBwdXJwbGUgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQucHVycGxlLmljb24ge1xuICBjb2xvcjogQGxpZ2h0UHVycGxlICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnB1cnBsZS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5wdXJwbGUuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwdXJwbGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBQaW5rICovXG5pLnBpbmsuaWNvbiB7XG4gIGNvbG9yOiBAcGluayAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5waW5rLmljb24ge1xuICBjb2xvcjogQGxpZ2h0UGluayAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5waW5rLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnBpbmsuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwaW5rICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogQnJvd24gKi9cbmkuYnJvd24uaWNvbiB7XG4gIGNvbG9yOiBAYnJvd24gIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYnJvd24uaWNvbiB7XG4gIGNvbG9yOiBAbGlnaHRCcm93biAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5icm93bi5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5icm93bi5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJyb3duICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogR3JleSAqL1xuaS5ncmV5Lmljb24ge1xuICBjb2xvcjogQGdyZXkgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuZ3JleS5pY29uIHtcbiAgY29sb3I6IEBsaWdodEdyZXkgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuZ3JleS5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5ncmV5Lmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JleSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIEJsYWNrICovXG5pLmJsYWNrLmljb24ge1xuICBjb2xvcjogQGJsYWNrICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJsYWNrLmljb24ge1xuICBjb2xvcjogQGxpZ2h0QmxhY2sgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuYmxhY2suaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuYmxhY2suaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibGFjayAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5pLm1pbmkuaWNvbixcbmkubWluaS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IEBtaW5pO1xufVxuaS50aW55Lmljb24sXG5pLnRpbnkuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiBAdGlueTtcbn1cbmkuc21hbGwuaWNvbixcbmkuc21hbGwuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiBAc21hbGw7XG59XG5pLmljb24sXG5pLmljb25zIHtcbiAgZm9udC1zaXplOiBAbWVkaXVtO1xufVxuaS5sYXJnZS5pY29uLFxuaS5sYXJnZS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IEBsYXJnZTtcbn1cbmkuYmlnLmljb24sXG5pLmJpZy5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IEBiaWc7XG59XG5pLmh1Z2UuaWNvbixcbmkuaHVnZS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IEBodWdlO1xufVxuaS5tYXNzaXZlLmljb24sXG5pLm1hc3NpdmUuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiBAbWFzc2l2ZTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyb3Vwc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaS5pY29ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuaS5pY29ucyAuaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIG1hcmdpbjogMGVtO1xuICBtYXJnaW46IDA7XG59XG5cbmkuaWNvbnMgLmljb246Zmlyc3QtY2hpbGQge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogQGRpc3RhbmNlRnJvbVRleHQ7XG59XG5cbi8qIENvcm5lciBJY29uICovXG5pLmljb25zIC5jb3JuZXIuaWNvbiB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBmb250LXNpemU6IEBjb3JuZXJJY29uU2l6ZTtcbiAgdGV4dC1zaGFkb3c6IEBjb3JuZXJJY29uU2hhZG93O1xufVxuaS5pY29ucyAudG9wLnJpZ2h0LmNvcm5lci5pY29uIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYm90dG9tOiBhdXRvO1xufVxuaS5pY29ucyAudG9wLmxlZnQuY29ybmVyLmljb24ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG59XG5pLmljb25zIC5ib3R0b20ubGVmdC5jb3JuZXIuaWNvbiB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogMDtcbn1cbmkuaWNvbnMgLmJvdHRvbS5yaWdodC5jb3JuZXIuaWNvbiB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cblxuaS5pY29ucyAuaW52ZXJ0ZWQuY29ybmVyLmljb24ge1xuICB0ZXh0LXNoYWRvdzogQGNvcm5lckljb25JbnZlcnRlZFNoYWRvdztcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLypcbiAqIEZvbnQgQXdlc29tZSA1LjAuOCBieSBAZm9udGF3ZXNvbWUgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWVcbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChJY29uczogQ0MgQlkgNC4wIExpY2Vuc2UsIEZvbnRzOiBTSUwgT0ZMIDEuMSBMaWNlbnNlLCBDU1M6IE1JVCBMaWNlbnNlKVxuICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblNlbWFudGljLVVJIGludGVncmF0aW9uIG9mIGZvbnQtYXdlc29tZSA6XG5cbi8vL2NsYXNzIG5hbWVzIGFyZSBzZXBhcmF0ZWRcbmkuaWNvbi5jaXJjbGUgPT4gaS5pY29uLmNpcmNsZVxuaS5pY29uLmNpcmNsZS1vID0+IGkuaWNvbi5jaXJjbGUub3V0bGluZVxuXG4vL2FiYnJldmlhdGlvbiBhcmUgcmVwbGFjZWQgYnkgZnVsbCBsZXR0ZXJzOlxuaS5pY29uLmVsbGlwc2lzLWggPT4gaS5pY29uLmVsbGlwc2lzLmhvcml6b250YWxcbmkuaWNvbi5lbGxpcHNpcy12ID0+IGkuaWNvbi5lbGxpcHNpcy52ZXJ0aWNhbFxuLmFscGhhID0+IC5pLmljb24uYWxwaGFiZXRcbi5hc2MgPT4gLmkuaWNvbi5hc2NlbmRpbmdcbi5kZXNjID0+IC5pLmljb24uZGVzY2VuZGluZ1xuLmFsdCA9Pi5hbHRlcm5hdGVcblxuQVNDSUkgb3JkZXIgaXMgY29uc2VydmVkIGZvciBlYXNpZXIgbWFpbnRlbmFuY2UuXG5cbkljb25zIHRoYXQgb25seSBoYXZlIG9uZSBzdHlsZSAnb3V0bGluZScsICdzcXVhcmUnIGV0YyBkbyBub3QgcmVxdWlyZSB0aGlzIGNsYXNzXG5mb3IgaW5zdGFuY2UgYGxlbW9uIGljb25gIG5vdCBgbGVtb24gb3V0bGluZSBpY29uYCBzaW5jZSB0aGVyZSBpcyBvbmx5IG9uZSBsZW1vblxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBJY29uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogRGVwcmVjYXRlZCAqSW4vT3V0IE5hbWluZyBDb25mbGljdCkgKi9cbmkuaWNvbi5saW5rZWRpbi5pbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBlMVwiOyB9XG5pLmljb24uem9vbS5pbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwZVwiOyB9XG5pLmljb24uem9vbS5vdXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMTBcIjsgfVxuaS5pY29uLnNpZ24uaW46YmVmb3JlIHsgY29udGVudDogXCJcXGYyZjZcIjsgfVxuaS5pY29uLmluLmNhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMThcIjsgfVxuaS5pY29uLmxvZy5vdXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZjVcIjsgfVxuaS5pY29uLnNpZ24ub3V0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmY1XCI7IH1cblxuLyogSWNvbnMgKi9cbmkuaWNvbi5cXDM1IDAwcHg6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNmVcIjsgfVxuaS5pY29uLmFjY2Vzc2libGUuaWNvbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM2OFwiOyB9XG5pLmljb24uYWNjdXNvZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNjlcIjsgfVxuaS5pY29uLmFkZHJlc3MuYm9vazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJiOVwiOyB9XG5pLmljb24uYWRkcmVzcy5jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmJiXCI7IH1cbmkuaWNvbi5hZGp1c3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNDJcIjsgfVxuaS5pY29uLmFkbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3MFwiOyB9XG5pLmljb24uYWR2ZXJzYWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNmFcIjsgfVxuaS5pY29uLmFmZmlsaWF0ZXRoZW1lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzZiXCI7IH1cbmkuaWNvbi5hbGdvbGlhOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzZjXCI7IH1cbmkuaWNvbi5hbGlnbi5jZW50ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMzdcIjsgfVxuaS5pY29uLmFsaWduLmp1c3RpZnk6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMzlcIjsgfVxuaS5pY29uLmFsaWduLmxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMzZcIjsgfVxuaS5pY29uLmFsaWduLnJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDM4XCI7IH1cbmkuaWNvbi5hbWF6b246YmVmb3JlIHsgY29udGVudDogXCJcXGYyNzBcIjsgfVxuaS5pY29uLmFtYXpvbi5wYXk6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MmNcIjsgfVxuaS5pY29uLmFtYnVsYW5jZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBmOVwiOyB9XG5pLmljb24uYW1lcmljYW4uc2lnbi5sYW5ndWFnZS5pbnRlcnByZXRpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYTNcIjsgfVxuaS5pY29uLmFtaWxpYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM2ZFwiOyB9XG5pLmljb24uYW5jaG9yOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTNkXCI7IH1cbmkuaWNvbi5hbmRyb2lkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTdiXCI7IH1cbmkuaWNvbi5hbmdlbGxpc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDlcIjsgfVxuaS5pY29uLmFuZ2xlLmRvdWJsZS5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTAzXCI7IH1cbmkuaWNvbi5hbmdsZS5kb3VibGUubGVmdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwMFwiOyB9XG5pLmljb24uYW5nbGUuZG91YmxlLnJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTAxXCI7IH1cbmkuaWNvbi5hbmdsZS5kb3VibGUudXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDJcIjsgfVxuaS5pY29uLmFuZ2xlLmRvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDdcIjsgfVxuaS5pY29uLmFuZ2xlLmxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDRcIjsgfVxuaS5pY29uLmFuZ2xlLnJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA1XCI7IH1cbmkuaWNvbi5hbmdsZS51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwNlwiOyB9XG5pLmljb24uYW5ncnljcmVhdGl2ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM2ZVwiOyB9XG5pLmljb24uYW5ndWxhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQyMFwiOyB9XG5pLmljb24uYXBwLnN0b3JlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzZmXCI7IH1cbmkuaWNvbi5hcHAuc3RvcmUuaW9zOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzcwXCI7IH1cbmkuaWNvbi5hcHBlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM3MVwiOyB9XG5pLmljb24uYXBwbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzlcIjsgfVxuaS5pY29uLmFwcGxlLnBheTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQxNVwiOyB9XG5pLmljb24uYXJjaGl2ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4N1wiOyB9XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzU4XCI7IH1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNTlcIjsgfVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUucmlnaHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNWFcIjsgfVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUudXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNWJcIjsgfVxuaS5pY29uLmFycm93LmNpcmNsZS5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGFiXCI7IH1cbmkuaWNvbi5hcnJvdy5jaXJjbGUubGVmdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBhOFwiOyB9XG5pLmljb24uYXJyb3cuY2lyY2xlLnJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGE5XCI7IH1cbmkuaWNvbi5hcnJvdy5jaXJjbGUudXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYWFcIjsgfVxuaS5pY29uLmFycm93LmRvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYwNjNcIjsgfVxuaS5pY29uLmFycm93LmxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNjBcIjsgfVxuaS5pY29uLmFycm93LnJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDYxXCI7IH1cbmkuaWNvbi5hcnJvdy51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA2MlwiOyB9XG5pLmljb24uYXJyb3dzLmFsdGVybmF0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBiMlwiOyB9XG5pLmljb24uYXJyb3dzLmFsdGVybmF0ZS5ob3Jpem9udGFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzM3XCI7IH1cbmkuaWNvbi5hcnJvd3MuYWx0ZXJuYXRlLnZlcnRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzM4XCI7IH1cbmkuaWNvbi5hc3Npc3RpdmUubGlzdGVuaW5nLnN5c3RlbXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYTJcIjsgfVxuaS5pY29uLmFzdGVyaXNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDY5XCI7IH1cbmkuaWNvbi5hc3ltbWV0cmlrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzcyXCI7IH1cbmkuaWNvbi5hdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmYVwiOyB9XG5pLmljb24uYXVkaWJsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM3M1wiOyB9XG5pLmljb24uYXVkaW8uZGVzY3JpcHRpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYyOWVcIjsgfVxuaS5pY29uLmF1dG9wcmVmaXhlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQxY1wiOyB9XG5pLmljb24uYXZpYW5leDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM3NFwiOyB9XG5pLmljb24uYXZpYXRvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDIxXCI7IH1cbmkuaWNvbi5hd3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNzVcIjsgfVxuaS5pY29uLmJhY2t3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDRhXCI7IH1cbmkuaWNvbi5iYWxhbmNlLnNjYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjRlXCI7IH1cbmkuaWNvbi5iYW46YmVmb3JlIHsgY29udGVudDogXCJcXGYwNWVcIjsgfVxuaS5pY29uLmJhbmQuYWlkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDYyXCI7IH1cbmkuaWNvbi5iYW5kY2FtcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJkNVwiOyB9XG5pLmljb24uYmFyY29kZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyYVwiOyB9XG5pLmljb24uYmFyczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBjOVwiOyB9XG5pLmljb24uYmFzZWJhbGwuYmFsbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQzM1wiOyB9XG5pLmljb24uYmFza2V0YmFsbC5iYWxsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDM0XCI7IH1cbmkuaWNvbi5iYXRoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmNkXCI7IH1cbmkuaWNvbi5iYXR0ZXJ5LmVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjQ0XCI7IH1cbmkuaWNvbi5iYXR0ZXJ5LmZ1bGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNDBcIjsgfVxuaS5pY29uLmJhdHRlcnkuaGFsZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0MlwiOyB9XG5pLmljb24uYmF0dGVyeS5xdWFydGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjQzXCI7IH1cbmkuaWNvbi5iYXR0ZXJ5LnRocmVlLnF1YXJ0ZXJzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjQxXCI7IH1cbmkuaWNvbi5iZWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMzZcIjsgfVxuaS5pY29uLmJlZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZmNcIjsgfVxuaS5pY29uLmJlaGFuY2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYjRcIjsgfVxuaS5pY29uLmJlaGFuY2Uuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI1XCI7IH1cbmkuaWNvbi5iZWxsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGYzXCI7IH1cbmkuaWNvbi5iZWxsLnNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWY2XCI7IH1cbmkuaWNvbi5iaWN5Y2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjA2XCI7IH1cbmkuaWNvbi5iaW1vYmplY3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNzhcIjsgfVxuaS5pY29uLmJpbm9jdWxhcnM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTVcIjsgfVxuaS5pY29uLmJpcnRoZGF5LmNha2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZmRcIjsgfVxuaS5pY29uLmJpdGJ1Y2tldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3MVwiOyB9XG5pLmljb24uYml0Y29pbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM3OVwiOyB9XG5pLmljb24uYml0eTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM3YVwiOyB9XG5pLmljb24uYmxhY2sudGllOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjdlXCI7IH1cbmkuaWNvbi5ibGFja2JlcnJ5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzdiXCI7IH1cbmkuaWNvbi5ibGluZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI5ZFwiOyB9XG5pLmljb24uYmxvZ2dlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM3Y1wiOyB9XG5pLmljb24uYmxvZ2dlci5iOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzdkXCI7IH1cbmkuaWNvbi5ibHVldG9vdGg6YmVmb3JlIHsgY29udGVudDogXCJcXGYyOTNcIjsgfVxuaS5pY29uLmJsdWV0b290aC5iOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjk0XCI7IH1cbmkuaWNvbi5ib2xkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDMyXCI7IH1cbmkuaWNvbi5ib2x0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGU3XCI7IH1cbmkuaWNvbi5ib21iOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWUyXCI7IH1cbmkuaWNvbi5ib29rOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDJkXCI7IH1cbmkuaWNvbi5ib29rbWFyazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyZVwiOyB9XG5pLmljb24uYm93bGluZy5iYWxsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDM2XCI7IH1cbmkuaWNvbi5ib3g6YmVmb3JlIHsgY29udGVudDogXCJcXGY0NjZcIjsgfVxuaS5pY29uLmJveGVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDY4XCI7IH1cbmkuaWNvbi5icmFpbGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmExXCI7IH1cbmkuaWNvbi5icmllZmNhc2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYjFcIjsgfVxuaS5pY29uLmJ0YzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1YVwiOyB9XG5pLmljb24uYnVnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg4XCI7IH1cbmkuaWNvbi5idWlsZGluZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFhZFwiOyB9XG5pLmljb24uYnVsbGhvcm46YmVmb3JlIHsgY29udGVudDogXCJcXGYwYTFcIjsgfVxuaS5pY29uLmJ1bGxzZXllOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTQwXCI7IH1cbmkuaWNvbi5idXJvbW9iZWxleHBlcnRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzdmXCI7IH1cbmkuaWNvbi5idXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDdcIjsgfVxuaS5pY29uLmJ1eXNlbGxhZHM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGRcIjsgfVxuaS5pY29uLmNhbGN1bGF0b3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZWNcIjsgfVxuaS5pY29uLmNhbGVuZGFyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTMzXCI7IH1cbmkuaWNvbi5jYWxlbmRhci5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNzNcIjsgfVxuaS5pY29uLmNhbGVuZGFyLmNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjc0XCI7IH1cbmkuaWNvbi5jYWxlbmRhci5taW51czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3MlwiOyB9XG5pLmljb24uY2FsZW5kYXIucGx1czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3MVwiOyB9XG5pLmljb24uY2FsZW5kYXIudGltZXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNzNcIjsgfVxuaS5pY29uLmNhbWVyYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAzMFwiOyB9XG5pLmljb24uY2FtZXJhLnJldHJvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDgzXCI7IH1cbmkuaWNvbi5jYXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYjlcIjsgfVxuaS5pY29uLmNhcmV0LmRvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDdcIjsgfVxuaS5pY29uLmNhcmV0LmxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDlcIjsgfVxuaS5pY29uLmNhcmV0LnJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGRhXCI7IH1cbmkuaWNvbi5jYXJldC5zcXVhcmUuZG93bjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1MFwiOyB9XG5pLmljb24uY2FyZXQuc3F1YXJlLmxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTFcIjsgfVxuaS5pY29uLmNhcmV0LnNxdWFyZS5yaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1MlwiOyB9XG5pLmljb24uY2FyZXQuc3F1YXJlLnVwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTUxXCI7IH1cbmkuaWNvbi5jYXJldC51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkOFwiOyB9XG5pLmljb24uY2FydC5hcnJvdy5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjE4XCI7IH1cbmkuaWNvbi5jYXJ0LnBsdXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTdcIjsgfVxuaS5pY29uLmNjLmFtYXpvbi5wYXk6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MmRcIjsgfVxuaS5pY29uLmNjLmFtZXg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjNcIjsgfVxuaS5pY29uLmNjLmFwcGxlLnBheTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQxNlwiOyB9XG5pLmljb24uY2MuZGluZXJzLmNsdWI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNGNcIjsgfVxuaS5pY29uLmNjLmRpc2NvdmVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYyXCI7IH1cbmkuaWNvbi5jYy5qY2I6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNGJcIjsgfVxuaS5pY29uLmNjLm1hc3RlcmNhcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjFcIjsgfVxuaS5pY29uLmNjLnBheXBhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmNFwiOyB9XG5pLmljb24uY2Muc3RyaXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWY1XCI7IH1cbmkuaWNvbi5jYy52aXNhOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYwXCI7IH1cbmkuaWNvbi5jZW50ZXJjb2RlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzgwXCI7IH1cbmkuaWNvbi5jZXJ0aWZpY2F0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBhM1wiOyB9XG5pLmljb24uY2hhcnQuYXJlYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmZVwiOyB9XG5pLmljb24uY2hhcnQuYmFyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDgwXCI7IH1cbmkuaWNvbi5jaGFydC5saW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjAxXCI7IH1cbmkuaWNvbi5jaGFydC5waWU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDBcIjsgfVxuaS5pY29uLmNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDBjXCI7IH1cbmkuaWNvbi5jaGVjay5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNThcIjsgfVxuaS5pY29uLmNoZWNrLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0YVwiOyB9XG5pLmljb24uY2hlc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MzlcIjsgfVxuaS5pY29uLmNoZXNzLmJpc2hvcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQzYVwiOyB9XG5pLmljb24uY2hlc3MuYm9hcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGY0M2NcIjsgfVxuaS5pY29uLmNoZXNzLmtpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGY0M2ZcIjsgfVxuaS5pY29uLmNoZXNzLmtuaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ0MVwiOyB9XG5pLmljb24uY2hlc3MucGF3bjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ0M1wiOyB9XG5pLmljb24uY2hlc3MucXVlZW46YmVmb3JlIHsgY29udGVudDogXCJcXGY0NDVcIjsgfVxuaS5pY29uLmNoZXNzLnJvb2s6YmVmb3JlIHsgY29udGVudDogXCJcXGY0NDdcIjsgfVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLmRvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2FcIjsgfVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLmxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzdcIjsgfVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLnJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTM4XCI7IH1cbmkuaWNvbi5jaGV2cm9uLmNpcmNsZS51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzOVwiOyB9XG5pLmljb24uY2hldnJvbi5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDc4XCI7IH1cbmkuaWNvbi5jaGV2cm9uLmxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNTNcIjsgfVxuaS5pY29uLmNoZXZyb24ucmlnaHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNTRcIjsgfVxuaS5pY29uLmNoZXZyb24udXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNzdcIjsgfVxuaS5pY29uLmNoaWxkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFlXCI7IH1cbmkuaWNvbi5jaHJvbWU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNjhcIjsgfVxuaS5pY29uLmNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjExMVwiOyB9XG5pLmljb24uY2lyY2xlLm5vdGNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWNlXCI7IH1cbmkuaWNvbi5jbGlwYm9hcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzMjhcIjsgfVxuaS5pY29uLmNsaXBib2FyZC5jaGVjazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ2Y1wiOyB9XG5pLmljb24uY2xpcGJvYXJkLmxpc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGY0NmRcIjsgfVxuaS5pY29uLmNsb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDE3XCI7IH1cbmkuaWNvbi5jbG9uZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0ZFwiOyB9XG5pLmljb24uY2xvc2VkLmNhcHRpb25pbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGFcIjsgfVxuaS5pY29uLmNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGMyXCI7IH1cbmkuaWNvbi5jbG91ZHNjYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzgzXCI7IH1cbmkuaWNvbi5jbG91ZHNtaXRoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzg0XCI7IH1cbmkuaWNvbi5jbG91ZHZlcnNpZnk6YmVmb3JlIHsgY29udGVudDogXCJcXGYzODVcIjsgfVxuaS5pY29uLmNvZGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjFcIjsgfVxuaS5pY29uLmNvZGUuYnJhbmNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTI2XCI7IH1cbmkuaWNvbi5jb2RlcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWNiXCI7IH1cbmkuaWNvbi5jb2RpZXBpZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI4NFwiOyB9XG5pLmljb24uY29mZmVlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGY0XCI7IH1cbmkuaWNvbi5jb2c6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMTNcIjsgfVxuaS5pY29uLmNvZ3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYwODVcIjsgfVxuaS5pY29uLmNvbHVtbnM6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZGJcIjsgfVxuaS5pY29uLmNvbW1lbnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNzVcIjsgfVxuaS5pY29uLmNvbW1lbnQuYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjdhXCI7IH1cbmkuaWNvbi5jb21tZW50czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4NlwiOyB9XG5pLmljb24uY29tcGFzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0ZVwiOyB9XG5pLmljb24uY29tcHJlc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNjZcIjsgfVxuaS5pY29uLmNvbm5lY3RkZXZlbG9wOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBlXCI7IH1cbmkuaWNvbi5jb250YW86YmVmb3JlIHsgY29udGVudDogXCJcXGYyNmRcIjsgfVxuaS5pY29uLmNvcHk6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYzVcIjsgfVxuaS5pY29uLmNvcHlyaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmOVwiOyB9XG5pLmljb24uY3BhbmVsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzg4XCI7IH1cbmkuaWNvbi5jcmVhdGl2ZS5jb21tb25zOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjVlXCI7IH1cbmkuaWNvbi5jcmVkaXQuY2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA5ZFwiOyB9XG5pLmljb24uY3JvcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyNVwiOyB9XG5pLmljb24uY3Jvc3NoYWlyczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA1YlwiOyB9XG5pLmljb24uY3NzMzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzY1wiOyB9XG5pLmljb24uY3NzMy5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzOGJcIjsgfVxuaS5pY29uLmN1YmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYjJcIjsgfVxuaS5pY29uLmN1YmVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWIzXCI7IH1cbmkuaWNvbi5jdXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYzRcIjsgfVxuaS5pY29uLmN1dHRsZWZpc2g6YmVmb3JlIHsgY29udGVudDogXCJcXGYzOGNcIjsgfVxuaS5pY29uLmQuYW5kLmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzOGRcIjsgfVxuaS5pY29uLmRhc2hjdWJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjEwXCI7IH1cbmkuaWNvbi5kYXRhYmFzZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjMFwiOyB9XG5pLmljb24uZGVhZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJhNFwiOyB9XG5pLmljb24uZGVsaWNpb3VzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE1XCI7IH1cbmkuaWNvbi5kZXBsb3lkb2c6YmVmb3JlIHsgY29udGVudDogXCJcXGYzOGVcIjsgfVxuaS5pY29uLmRlc2twcm86YmVmb3JlIHsgY29udGVudDogXCJcXGYzOGZcIjsgfVxuaS5pY29uLmRlc2t0b3A6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDhcIjsgfVxuaS5pY29uLmRldmlhbnRhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYmRcIjsgfVxuaS5pY29uLmRpZ2c6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTZcIjsgfVxuaS5pY29uLmRpZ2l0YWwub2NlYW46YmVmb3JlIHsgY29udGVudDogXCJcXGYzOTFcIjsgfVxuaS5pY29uLmRpc2NvcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzOTJcIjsgfVxuaS5pY29uLmRpc2NvdXJzZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM5M1wiOyB9XG5pLmljb24uZG5hOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDcxXCI7IH1cbmkuaWNvbi5kb2NodWI6YmVmb3JlIHsgY29udGVudDogXCJcXGYzOTRcIjsgfVxuaS5pY29uLmRvY2tlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM5NVwiOyB9XG5pLmljb24uZG9sbGFyLnNpZ246YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTVcIjsgfVxuaS5pY29uLmRvbGx5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDcyXCI7IH1cbmkuaWNvbi5kb2xseS5mbGF0YmVkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDc0XCI7IH1cbmkuaWNvbi5kb3QuY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTkyXCI7IH1cbmkuaWNvbi5kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAxOVwiOyB9XG5pLmljb24uZHJhZnQyZGlnaXRhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM5NlwiOyB9XG5pLmljb24uZHJpYmJibGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2RcIjsgfVxuaS5pY29uLmRyaWJiYmxlLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM5N1wiOyB9XG5pLmljb24uZHJvcGJveDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2YlwiOyB9XG5pLmljb24uZHJ1cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE5XCI7IH1cbmkuaWNvbi5keWFsb2c6YmVmb3JlIHsgY29udGVudDogXCJcXGYzOTlcIjsgfVxuaS5pY29uLmVhcmx5YmlyZHM6YmVmb3JlIHsgY29udGVudDogXCJcXGYzOWFcIjsgfVxuaS5pY29uLmVkZ2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYyODJcIjsgfVxuaS5pY29uLmVkaXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNDRcIjsgfVxuaS5pY29uLmVqZWN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDUyXCI7IH1cbmkuaWNvbi5lbGVtZW50b3I6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MzBcIjsgfVxuaS5pY29uLmVsbGlwc2lzLmhvcml6b250YWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDFcIjsgfVxuaS5pY29uLmVsbGlwc2lzLnZlcnRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTQyXCI7IH1cbmkuaWNvbi5lbWJlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQyM1wiOyB9XG5pLmljb24uZW1waXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQxXCI7IH1cbmkuaWNvbi5lbnZlbG9wZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBlMFwiOyB9XG5pLmljb24uZW52ZWxvcGUub3BlbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJiNlwiOyB9XG5pLmljb24uZW52ZWxvcGUuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTk5XCI7IH1cbmkuaWNvbi5lbnZpcmE6YmVmb3JlIHsgY29udGVudDogXCJcXGYyOTlcIjsgfVxuaS5pY29uLmVyYXNlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyZFwiOyB9XG5pLmljb24uZXJsYW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzlkXCI7IH1cbmkuaWNvbi5ldGhlcmV1bTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQyZVwiOyB9XG5pLmljb24uZXRzeTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJkN1wiOyB9XG5pLmljb24uZXVyby5zaWduOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTUzXCI7IH1cbmkuaWNvbi5leGNoYW5nZS5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNjJcIjsgfVxuaS5pY29uLmV4Y2xhbWF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJhXCI7IH1cbmkuaWNvbi5leGNsYW1hdGlvbi5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNmFcIjsgfVxuaS5pY29uLmV4Y2xhbWF0aW9uLnRyaWFuZ2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDcxXCI7IH1cbmkuaWNvbi5leHBhbmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNjVcIjsgfVxuaS5pY29uLmV4cGFuZC5hcnJvd3MuYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzFlXCI7IH1cbmkuaWNvbi5leHBlZGl0ZWRzc2w6YmVmb3JlIHsgY29udGVudDogXCJcXGYyM2VcIjsgfVxuaS5pY29uLmV4dGVybmFsLmFsdGVybmF0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM1ZFwiOyB9XG5pLmljb24uZXh0ZXJuYWwuc3F1YXJlLmFsdGVybmF0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM2MFwiOyB9XG5pLmljb24uZXllOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDZlXCI7IH1cbmkuaWNvbi5leWUuZHJvcHBlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmYlwiOyB9XG5pLmljb24uZXllLnNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDcwXCI7IH1cbmkuaWNvbi5mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA5YVwiOyB9XG5pLmljb24uZmFjZWJvb2suZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM5ZVwiOyB9XG5pLmljb24uZmFjZWJvb2subWVzc2VuZ2VyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzlmXCI7IH1cbmkuaWNvbi5mYWNlYm9vay5zcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwODJcIjsgfVxuaS5pY29uLmZhc3QuYmFja3dhcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNDlcIjsgfVxuaS5pY29uLmZhc3QuZm9yd2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA1MFwiOyB9XG5pLmljb24uZmF4OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFjXCI7IH1cbmkuaWNvbi5mZW1hbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODJcIjsgfVxuaS5pY29uLmZpZ2h0ZXIuamV0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGZiXCI7IH1cbmkuaWNvbi5maWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTViXCI7IH1cbmkuaWNvbi5maWxlLmFsdGVybmF0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1Y1wiOyB9XG5pLmljb24uZmlsZS5hcmNoaXZlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWM2XCI7IH1cbmkuaWNvbi5maWxlLmF1ZGlvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWM3XCI7IH1cbmkuaWNvbi5maWxlLmNvZGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzlcIjsgfVxuaS5pY29uLmZpbGUuZXhjZWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzNcIjsgfVxuaS5pY29uLmZpbGUuaW1hZ2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzVcIjsgfVxuaS5pY29uLmZpbGUucGRmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWMxXCI7IH1cbmkuaWNvbi5maWxlLnBvd2VycG9pbnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzRcIjsgfVxuaS5pY29uLmZpbGUudmlkZW86YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzhcIjsgfVxuaS5pY29uLmZpbGUud29yZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjMlwiOyB9XG5pLmljb24uZmlsbTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwOFwiOyB9XG5pLmljb24uZmlsdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGIwXCI7IH1cbmkuaWNvbi5maXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDZkXCI7IH1cbmkuaWNvbi5maXJlLmV4dGluZ3Vpc2hlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzNFwiOyB9XG5pLmljb24uZmlyZWZveDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI2OVwiOyB9XG5pLmljb24uZmlyc3QuYWlkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDc5XCI7IH1cbmkuaWNvbi5maXJzdC5vcmRlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJiMFwiOyB9XG5pLmljb24uZmlyc3RkcmFmdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNhMVwiOyB9XG5pLmljb24uZmxhZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyNFwiOyB9XG5pLmljb24uZmxhZy5jaGVja2VyZWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWVcIjsgfVxuaS5pY29uLmZsYXNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGMzXCI7IH1cbmkuaWNvbi5mbGlja3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNmVcIjsgfVxuaS5pY29uLmZsaXBib2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ0ZFwiOyB9XG5pLmljb24uZmx5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDE3XCI7IH1cbmkuaWNvbi5mb2xkZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYwN2JcIjsgfVxuaS5pY29uLmZvbGRlci5vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDdjXCI7IH1cbmkuaWNvbi5mb250OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDMxXCI7IH1cbmkuaWNvbi5mb250LmF3ZXNvbWU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYjRcIjsgfVxuaS5pY29uLmZvbnQuYXdlc29tZS5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNWNcIjsgfVxuaS5pY29uLmZvbnQuYXdlc29tZS5mbGFnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDI1XCI7IH1cbmkuaWNvbi5mb250aWNvbnM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyODBcIjsgfVxuaS5pY29uLmZvbnRpY29ucy5maTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNhMlwiOyB9XG5pLmljb24uZm9vdGJhbGwuYmFsbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ0ZVwiOyB9XG5pLmljb24uZm9ydC5hd2Vzb21lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjg2XCI7IH1cbmkuaWNvbi5mb3J0LmF3ZXNvbWUuYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2EzXCI7IH1cbmkuaWNvbi5mb3J1bWJlZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxMVwiOyB9XG5pLmljb24uZm9yd2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA0ZVwiOyB9XG5pLmljb24uZm91cnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4MFwiOyB9XG5pLmljb24uZnJlZS5jb2RlLmNhbXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYzVcIjsgfVxuaS5pY29uLmZyZWVic2Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYTRcIjsgfVxuaS5pY29uLmZyb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTE5XCI7IH1cbmkuaWNvbi5mdXRib2w6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTNcIjsgfVxuaS5pY29uLmdhbWVwYWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWJcIjsgfVxuaS5pY29uLmdhdmVsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGUzXCI7IH1cbmkuaWNvbi5nZW06YmVmb3JlIHsgY29udGVudDogXCJcXGYzYTVcIjsgfVxuaS5pY29uLmdlbmRlcmxlc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMmRcIjsgfVxuaS5pY29uLmdldC5wb2NrZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNjVcIjsgfVxuaS5pY29uLmdnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjYwXCI7IH1cbmkuaWNvbi5nZy5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNjFcIjsgfVxuaS5pY29uLmdpZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNmJcIjsgfVxuaS5pY29uLmdpdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkM1wiOyB9XG5pLmljb24uZ2l0LnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkMlwiOyB9XG5pLmljb24uZ2l0aHViOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDliXCI7IH1cbmkuaWNvbi5naXRodWIuYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEzXCI7IH1cbmkuaWNvbi5naXRodWIuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDkyXCI7IH1cbmkuaWNvbi5naXRrcmFrZW46YmVmb3JlIHsgY29udGVudDogXCJcXGYzYTZcIjsgfVxuaS5pY29uLmdpdGxhYjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI5NlwiOyB9XG5pLmljb24uZ2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDI2XCI7IH1cbmkuaWNvbi5nbGFzcy5tYXJ0aW5pOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDAwXCI7IH1cbmkuaWNvbi5nbGlkZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJhNVwiOyB9XG5pLmljb24uZ2xpZGUuZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJhNlwiOyB9XG5pLmljb24uZ2xvYmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYWNcIjsgfVxuaS5pY29uLmdvZm9yZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNhN1wiOyB9XG5pLmljb24uZ29sZi5iYWxsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDUwXCI7IH1cbmkuaWNvbi5nb29kcmVhZHM6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYThcIjsgfVxuaS5pY29uLmdvb2RyZWFkcy5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2E5XCI7IH1cbmkuaWNvbi5nb29nbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTBcIjsgfVxuaS5pY29uLmdvb2dsZS5kcml2ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNhYVwiOyB9XG5pLmljb24uZ29vZ2xlLnBsYXk6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYWJcIjsgfVxuaS5pY29uLmdvb2dsZS5wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmIzXCI7IH1cbmkuaWNvbi5nb29nbGUucGx1cy5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGQ1XCI7IH1cbmkuaWNvbi5nb29nbGUucGx1cy5zcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDRcIjsgfVxuaS5pY29uLmdvb2dsZS53YWxsZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZWVcIjsgfVxuaS5pY29uLmdyYWR1YXRpb24uY2FwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTlkXCI7IH1cbmkuaWNvbi5ncmF0aXBheTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4NFwiOyB9XG5pLmljb24uZ3JhdjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJkNlwiOyB9XG5pLmljb24uZ3JpcGZpcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYWNcIjsgfVxuaS5pY29uLmdydW50OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2FkXCI7IH1cbmkuaWNvbi5ndWxwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2FlXCI7IH1cbmkuaWNvbi5oLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBmZFwiOyB9XG5pLmljb24uaGFja2VyLm5ld3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDRcIjsgfVxuaS5pY29uLmhhY2tlci5uZXdzLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNhZlwiOyB9XG5pLmljb24uaGFuZC5saXphcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNThcIjsgfVxuaS5pY29uLmhhbmQucGFwZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTZcIjsgfVxuaS5pY29uLmhhbmQucGVhY2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNWJcIjsgfVxuaS5pY29uLmhhbmQucG9pbnQuZG93bjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBhN1wiOyB9XG5pLmljb24uaGFuZC5wb2ludC5sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGE1XCI7IH1cbmkuaWNvbi5oYW5kLnBvaW50LnJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGE0XCI7IH1cbmkuaWNvbi5oYW5kLnBvaW50LnVwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGE2XCI7IH1cbmkuaWNvbi5oYW5kLnBvaW50ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNWFcIjsgfVxuaS5pY29uLmhhbmQucm9jazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1NVwiOyB9XG5pLmljb24uaGFuZC5zY2lzc29yczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1N1wiOyB9XG5pLmljb24uaGFuZC5zcG9jazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1OVwiOyB9XG5pLmljb24uaGFuZHNoYWtlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmI1XCI7IH1cbmkuaWNvbi5oYXNodGFnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjkyXCI7IH1cbmkuaWNvbi5oZGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYTBcIjsgfVxuaS5pY29uLmhlYWRpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZGNcIjsgfVxuaS5pY29uLmhlYWRwaG9uZXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMjVcIjsgfVxuaS5pY29uLmhlYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDA0XCI7IH1cbmkuaWNvbi5oZWFydGJlYXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMWVcIjsgfVxuaS5pY29uLmhpcHM6YmVmb3JlIHsgY29udGVudDogXCJcXGY0NTJcIjsgfVxuaS5pY29uLmhpcmUuYS5oZWxwZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYjBcIjsgfVxuaS5pY29uLmhpc3Rvcnk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZGFcIjsgfVxuaS5pY29uLmhvY2tleS5wdWNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDUzXCI7IH1cbmkuaWNvbi5ob21lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDE1XCI7IH1cbmkuaWNvbi5ob29saTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQyN1wiOyB9XG5pLmljb24uaG9zcGl0YWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZjhcIjsgfVxuaS5pY29uLmhvc3BpdGFsLnN5bWJvbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ3ZVwiOyB9XG5pLmljb24uaG90amFyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2IxXCI7IH1cbmkuaWNvbi5ob3VyZ2xhc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTRcIjsgfVxuaS5pY29uLmhvdXJnbGFzcy5lbmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTNcIjsgfVxuaS5pY29uLmhvdXJnbGFzcy5oYWxmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjUyXCI7IH1cbmkuaWNvbi5ob3VyZ2xhc3Muc3RhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTFcIjsgfVxuaS5pY29uLmhvdXp6OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjdjXCI7IH1cbmkuaWNvbi5odG1sNTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzYlwiOyB9XG5pLmljb24uaHVic3BvdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNiMlwiOyB9XG5pLmljb24uaS5jdXJzb3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNDZcIjsgfVxuaS5pY29uLmlkLmJhZGdlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmMxXCI7IH1cbmkuaWNvbi5pZC5jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmMyXCI7IH1cbmkuaWNvbi5pbWFnZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAzZVwiOyB9XG5pLmljb24uaW1hZ2VzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzAyXCI7IH1cbmkuaWNvbi5pbWRiOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmQ4XCI7IH1cbmkuaWNvbi5pbmJveDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAxY1wiOyB9XG5pLmljb24uaW5kZW50OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDNjXCI7IH1cbmkuaWNvbi5pbmR1c3RyeTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3NVwiOyB9XG5pLmljb24uaW5mbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyOVwiOyB9XG5pLmljb24uaW5mby5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNWFcIjsgfVxuaS5pY29uLmluc3RhZ3JhbTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2ZFwiOyB9XG5pLmljb24uaW50ZXJuZXQuZXhwbG9yZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNmJcIjsgfVxuaS5pY29uLmlveGhvc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDhcIjsgfVxuaS5pY29uLml0YWxpYzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAzM1wiOyB9XG5pLmljb24uaXR1bmVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2I0XCI7IH1cbmkuaWNvbi5pdHVuZXMubm90ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNiNVwiOyB9XG5pLmljb24uamVua2luczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNiNlwiOyB9XG5pLmljb24uam9nZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYjdcIjsgfVxuaS5pY29uLmpvb21sYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFhYVwiOyB9XG5pLmljb24uanM6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYjhcIjsgfVxuaS5pY29uLmpzLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNiOVwiOyB9XG5pLmljb24uanNmaWRkbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2NcIjsgfVxuaS5pY29uLmtleTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4NFwiOyB9XG5pLmljb24ua2V5Ym9hcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWNcIjsgfVxuaS5pY29uLmtleWNkbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNiYVwiOyB9XG5pLmljb24ua2lja3N0YXJ0ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYmJcIjsgfVxuaS5pY29uLmtpY2tzdGFydGVyLms6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYmNcIjsgfVxuaS5pY29uLmtvcnZ1ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQyZlwiOyB9XG5pLmljb24ubGFuZ3VhZ2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWJcIjsgfVxuaS5pY29uLmxhcHRvcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwOVwiOyB9XG5pLmljb24ubGFyYXZlbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNiZFwiOyB9XG5pLmljb24ubGFzdGZtOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjAyXCI7IH1cbmkuaWNvbi5sYXN0Zm0uc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjAzXCI7IH1cbmkuaWNvbi5sZWFmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDZjXCI7IH1cbmkuaWNvbi5sZWFucHViOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjEyXCI7IH1cbmkuaWNvbi5sZW1vbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA5NFwiOyB9XG5pLmljb24ubGVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQxZFwiOyB9XG5pLmljb24ubGV2ZWwuZG93bi5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYmVcIjsgfVxuaS5pY29uLmxldmVsLnVwLmFsdGVybmF0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNiZlwiOyB9XG5pLmljb24ubGlmZS5yaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWNkXCI7IH1cbmkuaWNvbi5saWdodGJ1bGI6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZWJcIjsgfVxuaS5pY29uLmxpbmVjaGF0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2MwXCI7IH1cbmkuaWNvbi5saW5raWZ5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGMxXCI7IH1cbmkuaWNvbi5saW5rZWRpbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4Y1wiOyB9XG5pLmljb24ubGlua2VkaW4uYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGUxXCI7IH1cbmkuaWNvbi5saW5vZGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYjhcIjsgfVxuaS5pY29uLmxpbnV4OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTdjXCI7IH1cbmkuaWNvbi5saXJhLnNpZ246YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTVcIjsgfVxuaS5pY29uLmxpc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYwM2FcIjsgfVxuaS5pY29uLmxpc3QuYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDIyXCI7IH1cbmkuaWNvbi5saXN0Lm9sOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGNiXCI7IH1cbmkuaWNvbi5saXN0LnVsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGNhXCI7IH1cbmkuaWNvbi5sb2NhdGlvbi5hcnJvdzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyNFwiOyB9XG5pLmljb24ubG9jazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyM1wiOyB9XG5pLmljb24ubG9jay5vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2MxXCI7IH1cbmkuaWNvbi5sb25nLmFycm93LmFsdGVybmF0ZS5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzA5XCI7IH1cbmkuaWNvbi5sb25nLmFycm93LmFsdGVybmF0ZS5sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzBhXCI7IH1cbmkuaWNvbi5sb25nLmFycm93LmFsdGVybmF0ZS5yaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjMwYlwiOyB9XG5pLmljb24ubG9uZy5hcnJvdy5hbHRlcm5hdGUudXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYzMGNcIjsgfVxuaS5pY29uLmxvdy52aXNpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYyYThcIjsgfVxuaS5pY29uLmx5ZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYzNcIjsgfVxuaS5pY29uLm1hZ2VudG86YmVmb3JlIHsgY29udGVudDogXCJcXGYzYzRcIjsgfVxuaS5pY29uLm1hZ2ljOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGQwXCI7IH1cbmkuaWNvbi5tYWduZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNzZcIjsgfVxuaS5pY29uLm1hbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODNcIjsgfVxuaS5pY29uLm1hcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3OVwiOyB9XG5pLmljb24ubWFwLm1hcmtlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA0MVwiOyB9XG5pLmljb24ubWFwLm1hcmtlci5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYzVcIjsgfVxuaS5pY29uLm1hcC5waW46YmVmb3JlIHsgY29udGVudDogXCJcXGYyNzZcIjsgfVxuaS5pY29uLm1hcC5zaWduczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3N1wiOyB9XG5pLmljb24ubWFyczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyMlwiOyB9XG5pLmljb24ubWFycy5kb3VibGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMjdcIjsgfVxuaS5pY29uLm1hcnMuc3Ryb2tlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjI5XCI7IH1cbmkuaWNvbi5tYXJzLnN0cm9rZS5ob3Jpem9udGFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjJiXCI7IH1cbmkuaWNvbi5tYXJzLnN0cm9rZS52ZXJ0aWNhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyYVwiOyB9XG5pLmljb24ubWF4Y2RuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTM2XCI7IH1cbmkuaWNvbi5tZWRhcHBzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2M2XCI7IH1cbmkuaWNvbi5tZWRpdW06YmVmb3JlIHsgY29udGVudDogXCJcXGYyM2FcIjsgfVxuaS5pY29uLm1lZGl1bS5tOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2M3XCI7IH1cbmkuaWNvbi5tZWRraXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZmFcIjsgfVxuaS5pY29uLm1lZHJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2M4XCI7IH1cbmkuaWNvbi5tZWV0dXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZTBcIjsgfVxuaS5pY29uLm1laDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjExYVwiOyB9XG5pLmljb24ubWVyY3VyeTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyM1wiOyB9XG5pLmljb24ubWljcm9jaGlwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmRiXCI7IH1cbmkuaWNvbi5taWNyb3Bob25lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTMwXCI7IH1cbmkuaWNvbi5taWNyb3Bob25lLnNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTMxXCI7IH1cbmkuaWNvbi5taWNyb3NvZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzY2FcIjsgfVxuaS5pY29uLm1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDY4XCI7IH1cbmkuaWNvbi5taW51cy5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNTZcIjsgfVxuaS5pY29uLm1pbnVzLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0NlwiOyB9XG5pLmljb24ubWl4OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2NiXCI7IH1cbmkuaWNvbi5taXhjbG91ZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI4OVwiOyB9XG5pLmljb24ubWl6dW5pOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2NjXCI7IH1cbmkuaWNvbi5tb2JpbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMGJcIjsgfVxuaS5pY29uLm1vYmlsZS5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzY2RcIjsgfVxuaS5pY29uLm1vZHg6YmVmb3JlIHsgY29udGVudDogXCJcXGYyODVcIjsgfVxuaS5pY29uLm1vbmVybzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNkMFwiOyB9XG5pLmljb24ubW9uZXkuYmlsbC5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZDFcIjsgfVxuaS5pY29uLm1vb246YmVmb3JlIHsgY29udGVudDogXCJcXGYxODZcIjsgfVxuaS5pY29uLm1vdG9yY3ljbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMWNcIjsgfVxuaS5pY29uLm1vdXNlLnBvaW50ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNDVcIjsgfVxuaS5pY29uLm11c2ljOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDAxXCI7IH1cbmkuaWNvbi5uYXBzdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2QyXCI7IH1cbmkuaWNvbi5uZXV0ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMmNcIjsgfVxuaS5pY29uLm5ld3NwYXBlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlYVwiOyB9XG5pLmljb24ubmludGVuZG8uc3dpdGNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDE4XCI7IH1cbmkuaWNvbi5ub2RlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDE5XCI7IH1cbmkuaWNvbi5ub2RlLmpzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2QzXCI7IH1cbmkuaWNvbi5ucG06YmVmb3JlIHsgY29udGVudDogXCJcXGYzZDRcIjsgfVxuaS5pY29uLm5zODpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNkNVwiOyB9XG5pLmljb24ubnV0cml0aW9uaXg6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZDZcIjsgfVxuaS5pY29uLm9iamVjdC5ncm91cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0N1wiOyB9XG5pLmljb24ub2JqZWN0LnVuZ3JvdXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNDhcIjsgfVxuaS5pY29uLm9kbm9rbGFzc25pa2k6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNjNcIjsgfVxuaS5pY29uLm9kbm9rbGFzc25pa2kuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjY0XCI7IH1cbmkuaWNvbi5vcGVuY2FydDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIzZFwiOyB9XG5pLmljb24ub3BlbmlkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTliXCI7IH1cbmkuaWNvbi5vcGVyYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI2YVwiOyB9XG5pLmljb24ub3B0aW4ubW9uc3RlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIzY1wiOyB9XG5pLmljb24ub3NpOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDFhXCI7IH1cbmkuaWNvbi5vdXRkZW50OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDNiXCI7IH1cbmkuaWNvbi5wYWdlNDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNkN1wiOyB9XG5pLmljb24ucGFnZWxpbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThjXCI7IH1cbmkuaWNvbi5wYWludC5icnVzaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmY1wiOyB9XG5pLmljb24ucGFsZmVkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2Q4XCI7IH1cbmkuaWNvbi5wYWxsZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGY0ODJcIjsgfVxuaS5pY29uLnBhcGVyLnBsYW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ4XCI7IH1cbmkuaWNvbi5wYXBlcmNsaXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYzZcIjsgfVxuaS5pY29uLnBhcmFncmFwaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkZFwiOyB9XG5pLmljb24ucGFzdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZWFcIjsgfVxuaS5pY29uLnBhdHJlb246YmVmb3JlIHsgY29udGVudDogXCJcXGYzZDlcIjsgfVxuaS5pY29uLnBhdXNlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDRjXCI7IH1cbmkuaWNvbi5wYXVzZS5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyOGJcIjsgfVxuaS5pY29uLnBhdzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMFwiOyB9XG5pLmljb24ucGF5cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVkXCI7IH1cbmkuaWNvbi5wZW4uc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTRiXCI7IH1cbmkuaWNvbi5wZW5jaWwuYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzAzXCI7IH1cbmkuaWNvbi5wZXJjZW50OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjk1XCI7IH1cbmkuaWNvbi5wZXJpc2NvcGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZGFcIjsgfVxuaS5pY29uLnBoYWJyaWNhdG9yOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2RiXCI7IH1cbmkuaWNvbi5waG9lbml4LmZyYW1ld29yazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNkY1wiOyB9XG5pLmljb24ucGhvbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwOTVcIjsgfVxuaS5pY29uLnBob25lLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA5OFwiOyB9XG5pLmljb24ucGhvbmUudm9sdW1lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmEwXCI7IH1cbmkuaWNvbi5waHA6YmVmb3JlIHsgY29udGVudDogXCJcXGY0NTdcIjsgfVxuaS5pY29uLnBpZWQucGlwZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYWVcIjsgfVxuaS5pY29uLnBpZWQucGlwZXIuYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE4XCI7IH1cbmkuaWNvbi5waWVkLnBpcGVyLnBwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE3XCI7IH1cbmkuaWNvbi5waWxsczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ4NFwiOyB9XG5pLmljb24ucGludGVyZXN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGQyXCI7IH1cbmkuaWNvbi5waW50ZXJlc3QucDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIzMVwiOyB9XG5pLmljb24ucGludGVyZXN0LnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkM1wiOyB9XG5pLmljb24ucGxhbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNzJcIjsgfVxuaS5pY29uLnBsYXk6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNGJcIjsgfVxuaS5pY29uLnBsYXkuY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTQ0XCI7IH1cbmkuaWNvbi5wbGF5c3RhdGlvbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNkZlwiOyB9XG5pLmljb24ucGx1ZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlNlwiOyB9XG5pLmljb24ucGx1czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA2N1wiOyB9XG5pLmljb24ucGx1cy5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNTVcIjsgfVxuaS5pY29uLnBsdXMuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGZlXCI7IH1cbmkuaWNvbi5wb2RjYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmNlXCI7IH1cbmkuaWNvbi5wb3VuZC5zaWduOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU0XCI7IH1cbmkuaWNvbi5wb3dlci5vZmY6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMTFcIjsgfVxuaS5pY29uLnByaW50OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDJmXCI7IH1cbmkuaWNvbi5wcm9kdWN0Lmh1bnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyODhcIjsgfVxuaS5pY29uLnB1c2hlZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNlMVwiOyB9XG5pLmljb24ucHV6emxlLnBpZWNlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJlXCI7IH1cbmkuaWNvbi5weXRob246YmVmb3JlIHsgY29udGVudDogXCJcXGYzZTJcIjsgfVxuaS5pY29uLnFxOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ2XCI7IH1cbmkuaWNvbi5xcmNvZGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMjlcIjsgfVxuaS5pY29uLnF1ZXN0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTI4XCI7IH1cbmkuaWNvbi5xdWVzdGlvbi5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNTlcIjsgfVxuaS5pY29uLnF1aWRkaXRjaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ1OFwiOyB9XG5pLmljb24ucXVpbnNjYXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDU5XCI7IH1cbmkuaWNvbi5xdW9yYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJjNFwiOyB9XG5pLmljb24ucXVvdGUubGVmdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwZFwiOyB9XG5pLmljb24ucXVvdGUucmlnaHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMGVcIjsgfVxuaS5pY29uLnJhbmRvbTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA3NFwiOyB9XG5pLmljb24ucmF2ZWxyeTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJkOVwiOyB9XG5pLmljb24ucmVhY3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MWJcIjsgfVxuaS5pY29uLnJlYmVsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQwXCI7IH1cbmkuaWNvbi5yZWN5Y2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI4XCI7IH1cbmkuaWNvbi5yZWRyaXZlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNlM1wiOyB9XG5pLmljb24ucmVkZGl0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWExXCI7IH1cbmkuaWNvbi5yZWRkaXQuYWxpZW46YmVmb3JlIHsgY29udGVudDogXCJcXGYyODFcIjsgfVxuaS5pY29uLnJlZGRpdC5zcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTJcIjsgfVxuaS5pY29uLnJlZG86YmVmb3JlIHsgY29udGVudDogXCJcXGYwMWVcIjsgfVxuaS5pY29uLnJlZG8uYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmY5XCI7IH1cbmkuaWNvbi5yZWdpc3RlcmVkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjVkXCI7IH1cbmkuaWNvbi5yZW5kYWN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2U0XCI7IH1cbmkuaWNvbi5yZW5yZW46YmVmb3JlIHsgY29udGVudDogXCJcXGYxOGJcIjsgfVxuaS5pY29uLnJlcGx5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2U1XCI7IH1cbmkuaWNvbi5yZXBseS5hbGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjJcIjsgfVxuaS5pY29uLnJlcGx5ZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNlNlwiOyB9XG5pLmljb24ucmVzb2x2aW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2U3XCI7IH1cbmkuaWNvbi5yZXR3ZWV0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDc5XCI7IH1cbmkuaWNvbi5yb2FkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDE4XCI7IH1cbmkuaWNvbi5yb2NrZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzVcIjsgfVxuaS5pY29uLnJvY2tldGNoYXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZThcIjsgfVxuaS5pY29uLnJvY2tybXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZTlcIjsgfVxuaS5pY29uLnJzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA5ZVwiOyB9XG5pLmljb24ucnNzLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0M1wiOyB9XG5pLmljb24ucnVibGUuc2lnbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1OFwiOyB9XG5pLmljb24ucnVwZWUuc2lnbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1NlwiOyB9XG5pLmljb24uc2FmYXJpOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjY3XCI7IH1cbmkuaWNvbi5zYXNzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDFlXCI7IH1cbmkuaWNvbi5zYXZlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGM3XCI7IH1cbmkuaWNvbi5zY2hsaXg6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZWFcIjsgfVxuaS5pY29uLnNjcmliZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI4YVwiOyB9XG5pLmljb24uc2VhcmNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDAyXCI7IH1cbmkuaWNvbi5zZWFyY2gubWludXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMTBcIjsgfVxuaS5pY29uLnNlYXJjaC5wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDBlXCI7IH1cbmkuaWNvbi5zZWFyY2hlbmdpbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNlYlwiOyB9XG5pLmljb24uc2VsbGNhc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZGFcIjsgfVxuaS5pY29uLnNlbGxzeTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxM1wiOyB9XG5pLmljb24uc2VydmVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjMzXCI7IH1cbmkuaWNvbi5zZXJ2aWNlc3RhY2s6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZWNcIjsgfVxuaS5pY29uLnNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDY0XCI7IH1cbmkuaWNvbi5zaGFyZS5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTBcIjsgfVxuaS5pY29uLnNoYXJlLmFsdGVybmF0ZS5zcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTFcIjsgfVxuaS5pY29uLnNoYXJlLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0ZFwiOyB9XG5pLmljb24uc2hla2VsLnNpZ246YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGJcIjsgfVxuaS5pY29uLnNoaWVsZC5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZWRcIjsgfVxuaS5pY29uLnNoaXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMWFcIjsgfVxuaS5pY29uLnNoaXBwaW5nLmZhc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGY0OGJcIjsgfVxuaS5pY29uLnNoaXJ0c2luYnVsazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxNFwiOyB9XG5pLmljb24uc2hvcHBpbmcuYmFnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjkwXCI7IH1cbmkuaWNvbi5zaG9wcGluZy5iYXNrZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyOTFcIjsgfVxuaS5pY29uLnNob3BwaW5nLmNhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwN2FcIjsgfVxuaS5pY29uLnNob3dlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJjY1wiOyB9XG5pLmljb24uc2lnbi5sYW5ndWFnZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJhN1wiOyB9XG5pLmljb24uc2lnbmFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDEyXCI7IH1cbmkuaWNvbi5zaW1wbHlidWlsdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxNVwiOyB9XG5pLmljb24uc2lzdHJpeDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNlZVwiOyB9XG5pLmljb24uc2l0ZW1hcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBlOFwiOyB9XG5pLmljb24uc2t5YXRsYXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTZcIjsgfVxuaS5pY29uLnNreXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTdlXCI7IH1cbmkuaWNvbi5zbGFjazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5OFwiOyB9XG5pLmljb24uc2xhY2suaGFzaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNlZlwiOyB9XG5pLmljb24uc2xpZGVycy5ob3Jpem9udGFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRlXCI7IH1cbmkuaWNvbi5zbGlkZXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU3XCI7IH1cbmkuaWNvbi5zbWlsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjExOFwiOyB9XG5pLmljb24uc25hcGNoYXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYWJcIjsgfVxuaS5pY29uLnNuYXBjaGF0Lmdob3N0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmFjXCI7IH1cbmkuaWNvbi5zbmFwY2hhdC5zcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYWRcIjsgfVxuaS5pY29uLnNub3dmbGFrZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJkY1wiOyB9XG5pLmljb24uc29ydDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkY1wiOyB9XG5pLmljb24uc29ydC5hbHBoYWJldC5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTVkXCI7IH1cbmkuaWNvbi5zb3J0LmFscGhhYmV0LnVwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTVlXCI7IH1cbmkuaWNvbi5zb3J0LmFtb3VudC5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYwXCI7IH1cbmkuaWNvbi5zb3J0LmFtb3VudC51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2MVwiOyB9XG5pLmljb24uc29ydC5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGRkXCI7IH1cbmkuaWNvbi5zb3J0Lm51bWVyaWMuZG93bjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2MlwiOyB9XG5pLmljb24uc29ydC5udW1lcmljLnVwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYzXCI7IH1cbmkuaWNvbi5zb3J0LnVwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGRlXCI7IH1cbmkuaWNvbi5zb3VuZGNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJlXCI7IH1cbmkuaWNvbi5zcGFjZS5zaHV0dGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTk3XCI7IH1cbmkuaWNvbi5zcGVha2FwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2YzXCI7IH1cbmkuaWNvbi5zcGlubmVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEwXCI7IH1cbmkuaWNvbi5zcG90aWZ5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJjXCI7IH1cbmkuaWNvbi5zcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYzhcIjsgfVxuaS5pY29uLnNxdWFyZS5mdWxsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDVjXCI7IH1cbmkuaWNvbi5zdGFjay5leGNoYW5nZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4ZFwiOyB9XG5pLmljb24uc3RhY2sub3ZlcmZsb3c6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNmNcIjsgfVxuaS5pY29uLnN0YXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMDVcIjsgfVxuaS5pY29uLnN0YXIuaGFsZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4OVwiOyB9XG5pLmljb24uc3RheWxpbmtlZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNmNVwiOyB9XG5pLmljb24uc3RlYW06YmVmb3JlIHsgY29udGVudDogXCJcXGYxYjZcIjsgfVxuaS5pY29uLnN0ZWFtLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiN1wiOyB9XG5pLmljb24uc3RlYW0uc3ltYm9sOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2Y2XCI7IH1cbmkuaWNvbi5zdGVwLmJhY2t3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDQ4XCI7IH1cbmkuaWNvbi5zdGVwLmZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNTFcIjsgfVxuaS5pY29uLnN0ZXRob3Njb3BlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGYxXCI7IH1cbmkuaWNvbi5zdGlja2VyLm11bGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZjdcIjsgfVxuaS5pY29uLnN0aWNreS5ub3RlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjQ5XCI7IH1cbmkuaWNvbi5zdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDRkXCI7IH1cbmkuaWNvbi5zdG9wLmNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI4ZFwiOyB9XG5pLmljb24uc3RvcHdhdGNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmYyXCI7IH1cbmkuaWNvbi5zdHJhdmE6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MjhcIjsgfVxuaS5pY29uLnN0cmVldC52aWV3OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjFkXCI7IH1cbmkuaWNvbi5zdHJpa2V0aHJvdWdoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGNjXCI7IH1cbmkuaWNvbi5zdHJpcGU6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MjlcIjsgfVxuaS5pY29uLnN0cmlwZS5zOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDJhXCI7IH1cbmkuaWNvbi5zdHVkaW92aW5hcmk6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZjhcIjsgfVxuaS5pY29uLnN0dW1ibGV1cG9uOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE0XCI7IH1cbmkuaWNvbi5zdHVtYmxldXBvbi5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTNcIjsgfVxuaS5pY29uLnN1YnNjcmlwdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyY1wiOyB9XG5pLmljb24uc3Vid2F5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjM5XCI7IH1cbmkuaWNvbi5zdWl0Y2FzZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBmMlwiOyB9XG5pLmljb24uc3VuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg1XCI7IH1cbmkuaWNvbi5zdXBlcnBvd2VyczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJkZFwiOyB9XG5pLmljb24uc3VwZXJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMmJcIjsgfVxuaS5pY29uLnN1cHBsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNmOVwiOyB9XG5pLmljb24uc3luYzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyMVwiOyB9XG5pLmljb24uc3luYy5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZjFcIjsgfVxuaS5pY29uLnN5cmluZ2U6YmVmb3JlIHsgY29udGVudDogXCJcXGY0OGVcIjsgfVxuaS5pY29uLnRhYmxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGNlXCI7IH1cbmkuaWNvbi50YWJsZS50ZW5uaXM6YmVmb3JlIHsgY29udGVudDogXCJcXGY0NWRcIjsgfVxuaS5pY29uLnRhYmxldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwYVwiOyB9XG5pLmljb24udGFibGV0LmFsdGVybmF0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNmYVwiOyB9XG5pLmljb24udGFjaG9tZXRlci5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZmRcIjsgfVxuaS5pY29uLnRhZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyYlwiOyB9XG5pLmljb24udGFnczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyY1wiOyB9XG5pLmljb24udGFza3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYWVcIjsgfVxuaS5pY29uLnRheGk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYmFcIjsgfVxuaS5pY29uLnRlbGVncmFtOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmM2XCI7IH1cbmkuaWNvbi50ZWxlZ3JhbS5wbGFuZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNmZVwiOyB9XG5pLmljb24udGVuY2VudC53ZWlibzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkNVwiOyB9XG5pLmljb24udGVybWluYWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjBcIjsgfVxuaS5pY29uLnRleHQuaGVpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDM0XCI7IH1cbmkuaWNvbi50ZXh0LndpZHRoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDM1XCI7IH1cbmkuaWNvbi50aDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwYVwiOyB9XG5pLmljb24udGgubGFyZ2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMDlcIjsgfVxuaS5pY29uLnRoLmxpc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMGJcIjsgfVxuaS5pY29uLnRoZW1laXNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJiMlwiOyB9XG5pLmljb24udGhlcm1vbWV0ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGY0OTFcIjsgfVxuaS5pY29uLnRoZXJtb21ldGVyLmVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmNiXCI7IH1cbmkuaWNvbi50aGVybW9tZXRlci5mdWxsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmM3XCI7IH1cbmkuaWNvbi50aGVybW9tZXRlci5oYWxmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmM5XCI7IH1cbmkuaWNvbi50aGVybW9tZXRlci5xdWFydGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmNhXCI7IH1cbmkuaWNvbi50aGVybW9tZXRlci50aHJlZS5xdWFydGVyczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJjOFwiOyB9XG5pLmljb24udGh1bWJzLmRvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjVcIjsgfVxuaS5pY29uLnRodW1icy51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2NFwiOyB9XG5pLmljb24udGh1bWJ0YWNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDhkXCI7IH1cbmkuaWNvbi50aWNrZXQuYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2ZmXCI7IH1cbmkuaWNvbi50aW1lczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwZFwiOyB9XG5pLmljb24udGltZXMuY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDU3XCI7IH1cbmkuaWNvbi50aW50OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDQzXCI7IH1cbmkuaWNvbi50b2dnbGUub2ZmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjA0XCI7IH1cbmkuaWNvbi50b2dnbGUub246YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDVcIjsgfVxuaS5pY29uLnRyYWRlbWFyazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1Y1wiOyB9XG5pLmljb24udHJhaW46YmVmb3JlIHsgY29udGVudDogXCJcXGYyMzhcIjsgfVxuaS5pY29uLnRyYW5zZ2VuZGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjI0XCI7IH1cbmkuaWNvbi50cmFuc2dlbmRlci5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMjVcIjsgfVxuaS5pY29uLnRyYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWY4XCI7IH1cbmkuaWNvbi50cmFzaC5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZWRcIjsgfVxuaS5pY29uLnRyZWU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYmJcIjsgfVxuaS5pY29uLnRyZWxsbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4MVwiOyB9XG5pLmljb24udHJpcGFkdmlzb3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNjJcIjsgfVxuaS5pY29uLnRyb3BoeTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA5MVwiOyB9XG5pLmljb24udHJ1Y2s6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDFcIjsgfVxuaS5pY29uLnR0eTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlNFwiOyB9XG5pLmljb24udHVtYmxyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTczXCI7IH1cbmkuaWNvbi50dW1ibHIuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc0XCI7IH1cbmkuaWNvbi50djpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI2Y1wiOyB9XG5pLmljb24udHdpdGNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU4XCI7IH1cbmkuaWNvbi50d2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDk5XCI7IH1cbmkuaWNvbi50d2l0dGVyLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4MVwiOyB9XG5pLmljb24udHlwbzM6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MmJcIjsgfVxuaS5pY29uLnViZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MDJcIjsgfVxuaS5pY29uLnVpa2l0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDAzXCI7IH1cbmkuaWNvbi51bWJyZWxsYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBlOVwiOyB9XG5pLmljb24udW5kZXJsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGNkXCI7IH1cbmkuaWNvbi51bmRvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGUyXCI7IH1cbmkuaWNvbi51bmRvLmFsdGVybmF0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJlYVwiOyB9XG5pLmljb24udW5pcmVnaXN0cnk6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MDRcIjsgfVxuaS5pY29uLnVuaXZlcnNhbC5hY2Nlc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYyOWFcIjsgfVxuaS5pY29uLnVuaXZlcnNpdHk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOWNcIjsgfVxuaS5pY29uLnVubGluazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyN1wiOyB9XG5pLmljb24udW5sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDljXCI7IH1cbmkuaWNvbi51bmxvY2suYWx0ZXJuYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTNlXCI7IH1cbmkuaWNvbi51bnRhcHBkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDA1XCI7IH1cbmkuaWNvbi51cGxvYWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwOTNcIjsgfVxuaS5pY29uLnVzYjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI4N1wiOyB9XG5pLmljb24udXNlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwN1wiOyB9XG5pLmljb24udXNlci5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYmRcIjsgfVxuaS5pY29uLnVzZXIubWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZjBcIjsgfVxuaS5pY29uLnVzZXIucGx1czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIzNFwiOyB9XG5pLmljb24udXNlci5zZWNyZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMWJcIjsgfVxuaS5pY29uLnVzZXIudGltZXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMzVcIjsgfVxuaS5pY29uLnVzZXJzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGMwXCI7IH1cbmkuaWNvbi51c3N1bm5haDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQwN1wiOyB9XG5pLmljb24udXRlbnNpbC5zcG9vbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJlNVwiOyB9XG5pLmljb24udXRlbnNpbHM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZTdcIjsgfVxuaS5pY29uLnZhYWRpbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQwOFwiOyB9XG5pLmljb24udmVudXM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMjFcIjsgfVxuaS5pY29uLnZlbnVzLmRvdWJsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyNlwiOyB9XG5pLmljb24udmVudXMubWFyczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyOFwiOyB9XG5pLmljb24udmlhY29pbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIzN1wiOyB9XG5pLmljb24udmlhZGVvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmE5XCI7IH1cbmkuaWNvbi52aWFkZW8uc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmFhXCI7IH1cbmkuaWNvbi52aWJlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQwOVwiOyB9XG5pLmljb24udmlkZW86YmVmb3JlIHsgY29udGVudDogXCJcXGYwM2RcIjsgfVxuaS5pY29uLnZpbWVvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDBhXCI7IH1cbmkuaWNvbi52aW1lby5zcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTRcIjsgfVxuaS5pY29uLnZpbWVvLnY6YmVmb3JlIHsgY29udGVudDogXCJcXGYyN2RcIjsgfVxuaS5pY29uLnZpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2FcIjsgfVxuaS5pY29uLnZrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg5XCI7IH1cbmkuaWNvbi52bnY6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MGJcIjsgfVxuaS5pY29uLnZvbGxleWJhbGwuYmFsbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ1ZlwiOyB9XG5pLmljb24udm9sdW1lLmRvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYwMjdcIjsgfVxuaS5pY29uLnZvbHVtZS5vZmY6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMjZcIjsgfVxuaS5pY29uLnZvbHVtZS51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyOFwiOyB9XG5pLmljb24udnVlanM6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MWZcIjsgfVxuaS5pY29uLndhcmVob3VzZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ5NFwiOyB9XG5pLmljb24ud2VpYm86YmVmb3JlIHsgY29udGVudDogXCJcXGYxOGFcIjsgfVxuaS5pY29uLndlaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQ5NlwiOyB9XG5pLmljb24ud2VpeGluOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ3XCI7IH1cbmkuaWNvbi53aGF0c2FwcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIzMlwiOyB9XG5pLmljb24ud2hhdHNhcHAuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDBjXCI7IH1cbmkuaWNvbi53aGVlbGNoYWlyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTkzXCI7IH1cbmkuaWNvbi53aG1jczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQwZFwiOyB9XG5pLmljb24ud2lmaTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlYlwiOyB9XG5pLmljb24ud2lraXBlZGlhLnc6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNjZcIjsgfVxuaS5pY29uLndpbmRvdy5jbG9zZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQxMFwiOyB9XG5pLmljb24ud2luZG93Lm1heGltaXplOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmQwXCI7IH1cbmkuaWNvbi53aW5kb3cubWluaW1pemU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZDFcIjsgfVxuaS5pY29uLndpbmRvdy5yZXN0b3JlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmQyXCI7IH1cbmkuaWNvbi53aW5kb3dzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTdhXCI7IH1cbmkuaWNvbi53b24uc2lnbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1OVwiOyB9XG5pLmljb24ud29yZHByZXNzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTlhXCI7IH1cbmkuaWNvbi53b3JkcHJlc3Muc2ltcGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDExXCI7IH1cbmkuaWNvbi53cGJlZ2lubmVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjk3XCI7IH1cbmkuaWNvbi53cGV4cGxvcmVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmRlXCI7IH1cbmkuaWNvbi53cGZvcm1zOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjk4XCI7IH1cbmkuaWNvbi53cmVuY2g6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYWRcIjsgfVxuaS5pY29uLnhib3g6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MTJcIjsgfVxuaS5pY29uLnhpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjhcIjsgfVxuaS5pY29uLnhpbmcuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTY5XCI7IH1cbmkuaWNvbi55LmNvbWJpbmF0b3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYyM2JcIjsgfVxuaS5pY29uLnlhaG9vOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTllXCI7IH1cbmkuaWNvbi55YW5kZXg6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MTNcIjsgfVxuaS5pY29uLnlhbmRleC5pbnRlcm5hdGlvbmFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDE0XCI7IH1cbmkuaWNvbi55ZWxwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU5XCI7IH1cbmkuaWNvbi55ZW4uc2lnbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1N1wiOyB9XG5pLmljb24ueW9hc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYjFcIjsgfVxuaS5pY29uLnlvdXR1YmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjdcIjsgfVxuaS5pY29uLnlvdXR1YmUuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmNDMxXCI7IH1cblxuLyogQWxpYXNlcyAqL1xuaS5pY29uLmNoZXNzLnJvY2s6YmVmb3JlIHsgY29udGVudDogXCJcXGY0NDdcIjsgfVxuaS5pY29uLm9yZGVyZWQubGlzdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBjYlwiOyB9XG5pLmljb24udW5vcmRlcmVkLmxpc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYwY2FcIjsgfVxuaS5pY29uLnVzZXIuZG9jdG9yOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGYwXCI7IH1cbmkuaWNvbi5zaGllbGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZWRcIjsgfVxuaS5pY29uLnB1enpsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyZVwiOyB9XG5pLmljb24uY3JlZGl0LmNhcmQuYW1hem9uLnBheTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQyZFwiOyB9XG5pLmljb24uY3JlZGl0LmNhcmQuYW1lcmljYW4uZXhwcmVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmM1wiOyB9XG5pLmljb24uY3JlZGl0LmNhcmQuZGluZXJzLmNsdWI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNGNcIjsgfVxuaS5pY29uLmNyZWRpdC5jYXJkLmRpc2NvdmVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYyXCI7IH1cbmkuaWNvbi5jcmVkaXQuY2FyZC5qY2I6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNGJcIjsgfVxuaS5pY29uLmNyZWRpdC5jYXJkLm1hc3RlcmNhcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjFcIjsgfVxuaS5pY29uLmNyZWRpdC5jYXJkLnBheXBhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmNFwiOyB9XG5pLmljb24uY3JlZGl0LmNhcmQuc3RyaXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWY1XCI7IH1cbmkuaWNvbi5jcmVkaXQuY2FyZC52aXNhOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYwXCI7IH1cbmkuaWNvbi5hZGQuY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDU1XCI7IH1cbmkuaWNvbi5hZGQuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGZlXCI7IH1cbmkuaWNvbi5hZGQudG8uY2FsZW5kYXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNzFcIjsgfVxuaS5pY29uLmFkZC50by5jYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjE3XCI7IH1cbmkuaWNvbi5hZGQudXNlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIzNFwiOyB9XG5pLmljb24uYWRkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDY3XCI7IH1cbmkuaWNvbi5hbGFybS5tdXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWY2XCI7IH1cbmkuaWNvbi5hbGFybTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBmM1wiOyB9XG5pLmljb24uYWxkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmEyXCI7IH1cbmkuaWNvbi5hbHM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYTJcIjsgfVxuaS5pY29uLmFtZXJpY2FuLmV4cHJlc3MuY2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmM1wiOyB9XG5pLmljb24uYW1lcmljYW4uZXhwcmVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmM1wiOyB9XG5pLmljb24uYW1leDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmM1wiOyB9XG5pLmljb24uYW5ub3VuY2VtZW50OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGExXCI7IH1cbmkuaWNvbi5hcmVhLmNoYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWZlXCI7IH1cbmkuaWNvbi5hcmVhLmdyYXBoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWZlXCI7IH1cbmkuaWNvbi5hcnJvdy5kb3duLmNhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMThcIjsgfVxuaS5pY29uLmFzZXh1YWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMmRcIjsgfVxuaS5pY29uLmFzbC5pbnRlcnByZXRpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYTNcIjsgfVxuaS5pY29uLmFzbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJhM1wiOyB9XG5pLmljb24uYXNzaXN0aXZlLmxpc3RlbmluZy5kZXZpY2VzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmEyXCI7IH1cbmkuaWNvbi5hdHRhY2g6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYzZcIjsgfVxuaS5pY29uLmF0dGVudGlvbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA2YVwiOyB9XG5pLmljb24uYmFsYW5jZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0ZVwiOyB9XG5pLmljb24uYmFyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGZjXCI7IH1cbmkuaWNvbi5iYXRodHViOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmNkXCI7IH1cbmkuaWNvbi5iYXR0ZXJ5LmZvdXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNDBcIjsgfVxuaS5pY29uLmJhdHRlcnkuaGlnaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0MVwiOyB9XG5pLmljb24uYmF0dGVyeS5sb3c6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNDNcIjsgfVxuaS5pY29uLmJhdHRlcnkubWVkaXVtOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjQyXCI7IH1cbmkuaWNvbi5iYXR0ZXJ5Lm9uZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0M1wiOyB9XG5pLmljb24uYmF0dGVyeS50aHJlZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0MVwiOyB9XG5pLmljb24uYmF0dGVyeS50d286YmVmb3JlIHsgY29udGVudDogXCJcXGYyNDJcIjsgfVxuaS5pY29uLmJhdHRlcnkuemVybzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0NFwiOyB9XG5pLmljb24uYmlydGhkYXk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZmRcIjsgfVxuaS5pY29uLmJsb2NrLmxheW91dDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwOVwiOyB9XG5pLmljb24uYmx1ZXRvb3RoLmFsdGVybmF0aXZlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjk0XCI7IH1cbmkuaWNvbi5icm9rZW4uY2hhaW46YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjdcIjsgfVxuaS5pY29uLmJyb3dzZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMjJcIjsgfVxuaS5pY29uLmNhbGwuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDk4XCI7IH1cbmkuaWNvbi5jYWxsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDk1XCI7IH1cbmkuaWNvbi5jYW5jZWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMGRcIjsgfVxuaS5pY29uLmNhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwN2FcIjsgfVxuaS5pY29uLmNjOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBhXCI7IH1cbmkuaWNvbi5jaGFpbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBjMVwiOyB9XG5pLmljb24uY2hhdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA3NVwiOyB9XG5pLmljb24uY2hlY2tlZC5jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3NFwiOyB9XG5pLmljb24uY2hlY2ttYXJrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDBjXCI7IH1cbmkuaWNvbi5jaXJjbGUubm90Y2hlZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjZVwiOyB9XG5pLmljb24uY2xvc2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMGRcIjsgfVxuaS5pY29uLmNueTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1N1wiOyB9XG5pLmljb24uY29ja3RhaWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMDBcIjsgfVxuaS5pY29uLmNvbW1lbnRpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYyN2FcIjsgfVxuaS5pY29uLmNvbXB1dGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA4XCI7IH1cbmkuaWNvbi5jb25maWd1cmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYWRcIjsgfVxuaS5pY29uLmNvbnRlbnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYzlcIjsgfVxuaS5pY29uLmRlYWZuZXNzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmE0XCI7IH1cbmkuaWNvbi5kZWxldGUuY2FsZW5kYXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNzNcIjsgfVxuaS5pY29uLmRlbGV0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwZFwiOyB9XG5pLmljb24uZGV0ZWN0aXZlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjFiXCI7IH1cbmkuaWNvbi5kaW5lcnMuY2x1Yi5jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjRjXCI7IH1cbmkuaWNvbi5kaW5lcnMuY2x1YjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0Y1wiOyB9XG5pLmljb24uZGlzY292ZXIuY2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmMlwiOyB9XG5pLmljb24uZGlzY292ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjJcIjsgfVxuaS5pY29uLmRpc2N1c3Npb25zOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDg2XCI7IH1cbmkuaWNvbi5kb2N0b3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZjBcIjsgfVxuaS5pY29uLmRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1NVwiOyB9XG5pLmljb24uZG9udDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA1ZVwiOyB9XG5pLmljb24uZHJpYmJsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3ZFwiOyB9XG5pLmljb24uZHJpdmVycy5saWNlbnNlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmMyXCI7IH1cbmkuaWNvbi5kcm9wZG93bjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkN1wiOyB9XG5pLmljb24uZWVyY2FzdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJkYVwiOyB9XG5pLmljb24uZW1lcmdlbmN5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGY5XCI7IH1cbmkuaWNvbi5lbnZpcmEuZ2FsbGVyeTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI5OVwiOyB9XG5pLmljb24uZXJhc2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMmRcIjsgfVxuaS5pY29uLmV1cjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1M1wiOyB9XG5pLmljb24uZXVybzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1M1wiOyB9XG5pLmljb24uZXllZHJvcHBlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmYlwiOyB9XG5pLmljb24uZmE6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYjRcIjsgfVxuaS5pY29uLmZhY3Rvcnk6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNzVcIjsgfVxuaS5pY29uLmZhdm9yaXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDA1XCI7IH1cbmkuaWNvbi5mZWVkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDllXCI7IH1cbmkuaWNvbi5mZW1hbGUuaG9tb3NleHVhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyNlwiOyB9XG5pLmljb24uZmlsZS50ZXh0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTVjXCI7IH1cbmkuaWNvbi5maW5kOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU1XCI7IH1cbmkuaWNvbi5maXJzdC5haWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZmFcIjsgfVxuaS5pY29uLmZpdmUuaHVuZHJlZC5waXhlbHM6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNmVcIjsgfVxuaS5pY29uLmZvcms6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjZcIjsgfVxuaS5pY29uLmdhbWU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWJcIjsgfVxuaS5pY29uLmdheTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyN1wiOyB9XG5pLmljb24uZ2JwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU0XCI7IH1cbmkuaWNvbi5naXR0aXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODRcIjsgfVxuaS5pY29uLmdvb2dsZS5wbHVzLmNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJiM1wiOyB9XG5pLmljb24uZ29vZ2xlLnBsdXMub2ZmaWNpYWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYjNcIjsgfVxuaS5pY29uLmdyYWI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTVcIjsgfVxuaS5pY29uLmdyYWR1YXRpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYxOWRcIjsgfVxuaS5pY29uLmdyaWQubGF5b3V0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDBhXCI7IH1cbmkuaWNvbi5ncm91cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBjMFwiOyB9XG5pLmljb24uaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBmZFwiOyB9XG5pLmljb24uaGFuZC52aWN0b3J5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjViXCI7IH1cbmkuaWNvbi5oYW5kaWNhcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5M1wiOyB9XG5pLmljb24uaGFyZC5vZi5oZWFyaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmE0XCI7IH1cbmkuaWNvbi5oZWFkZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZGNcIjsgfVxuaS5pY29uLmhlbHAuY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDU5XCI7IH1cbmkuaWNvbi5oZWxwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTI4XCI7IH1cbmkuaWNvbi5oZXRlcm9zZXh1YWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMjhcIjsgfVxuaS5pY29uLmhpZGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNzBcIjsgfVxuaS5pY29uLmhvdGVsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjM2XCI7IH1cbmkuaWNvbi5ob3VyZ2xhc3MuZm91cjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1NFwiOyB9XG5pLmljb24uaG91cmdsYXNzLmZ1bGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTRcIjsgfVxuaS5pY29uLmhvdXJnbGFzcy5vbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTFcIjsgfVxuaS5pY29uLmhvdXJnbGFzcy50aHJlZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1M1wiOyB9XG5pLmljb24uaG91cmdsYXNzLnR3bzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1MlwiOyB9XG5pLmljb24uaWRlYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBlYlwiOyB9XG5pLmljb24uaWxzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBiXCI7IH1cbmkuaWNvbi5pbi1jYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjE4XCI7IH1cbmkuaWNvbi5pbnI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTZcIjsgfVxuaS5pY29uLmludGVyZ2VuZGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjI0XCI7IH1cbmkuaWNvbi5pbnRlcnNleDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyNFwiOyB9XG5pLmljb24uamFwYW4uY3JlZGl0LmJ1cmVhdS5jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjRiXCI7IH1cbmkuaWNvbi5qYXBhbi5jcmVkaXQuYnVyZWF1OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjRiXCI7IH1cbmkuaWNvbi5qY2I6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNGJcIjsgfVxuaS5pY29uLmpweTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1N1wiOyB9XG5pLmljb24ua3J3OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU5XCI7IH1cbmkuaWNvbi5sYWI6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYzNcIjsgfVxuaS5pY29uLmxhdzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0ZVwiOyB9XG5pLmljb24ubGVnYWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZTNcIjsgfVxuaS5pY29uLmxlc2JpYW46YmVmb3JlIHsgY29udGVudDogXCJcXGYyMjZcIjsgfVxuaS5pY29uLmxpZ2h0bmluZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBlN1wiOyB9XG5pLmljb24ubGlrZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwNFwiOyB9XG5pLmljb24ubGluZS5ncmFwaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwMVwiOyB9XG5pLmljb24ubGlua2VkaW4uc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDhjXCI7IH1cbmkuaWNvbi5saW5raWZ5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGMxXCI7IH1cbmkuaWNvbi5saXJhOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTk1XCI7IH1cbmkuaWNvbi5saXN0LmxheW91dDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwYlwiOyB9XG5pLmljb24ubWFnbmlmeTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwZVwiOyB9XG5pLmljb24ubWFpbC5mb3J3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDY0XCI7IH1cbmkuaWNvbi5tYWlsLnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5OVwiOyB9XG5pLmljb24ubWFpbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBlMFwiOyB9XG5pLmljb24ubWFsZS5ob21vc2V4dWFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjI3XCI7IH1cbmkuaWNvbi5tYW46YmVmb3JlIHsgY29udGVudDogXCJcXGYyMjJcIjsgfVxuaS5pY29uLm1hcmtlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA0MVwiOyB9XG5pLmljb24ubWFycy5hbHRlcm5hdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMjlcIjsgfVxuaS5pY29uLm1hcnMuaG9yaXpvbnRhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyYlwiOyB9XG5pLmljb24ubWFycy52ZXJ0aWNhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyYVwiOyB9XG5pLmljb24ubWFzdGVyY2FyZC5jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYxXCI7IH1cbmkuaWNvbi5tYXN0ZXJjYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYxXCI7IH1cbmkuaWNvbi5taWNyb3NvZnQuZWRnZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI4MlwiOyB9XG5pLmljb24ubWlsaXRhcnk6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZmJcIjsgfVxuaS5pY29uLm1zLmVkZ2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYyODJcIjsgfVxuaS5pY29uLm11dGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzFcIjsgfVxuaS5pY29uLm5ldy5waWVkLnBpcGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmFlXCI7IH1cbmkuaWNvbi5ub24uYmluYXJ5LnRyYW5zZ2VuZGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjIzXCI7IH1cbmkuaWNvbi5udW1iZXJlZC5saXN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGNiXCI7IH1cbmkuaWNvbi5vcHRpbm1vbnN0ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyM2NcIjsgfVxuaS5pY29uLm9wdGlvbnM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZGVcIjsgfVxuaS5pY29uLm90aGVyLmdlbmRlci5ob3Jpem9udGFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjJiXCI7IH1cbmkuaWNvbi5vdGhlci5nZW5kZXIudmVydGljYWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMmFcIjsgfVxuaS5pY29uLm90aGVyLmdlbmRlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIyOVwiOyB9XG5pLmljb24ucGF5bWVudDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA5ZFwiOyB9XG5pLmljb24ucGF5cGFsLmNhcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjRcIjsgfVxuaS5pY29uLnBlbmNpbC5zcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGJcIjsgfVxuaS5pY29uLnBob3RvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDMwXCI7IH1cbmkuaWNvbi5waWN0dXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDNlXCI7IH1cbmkuaWNvbi5waWUuY2hhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDBcIjsgfVxuaS5pY29uLnBpZS5ncmFwaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwMFwiOyB9XG5pLmljb24ucGllZC5waXBlci5oYXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYWVcIjsgfVxuaS5pY29uLnBpbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4ZFwiOyB9XG5pLmljb24ucGx1cy5jYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjE3XCI7IH1cbmkuaWNvbi5wb2NrZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNjVcIjsgfVxuaS5pY29uLnBvaW50OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDQxXCI7IH1cbmkuaWNvbi5wb2ludGluZy5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGE3XCI7IH1cbmkuaWNvbi5wb2ludGluZy5sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGE1XCI7IH1cbmkuaWNvbi5wb2ludGluZy5yaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBhNFwiOyB9XG5pLmljb24ucG9pbnRpbmcudXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYTZcIjsgfVxuaS5pY29uLnBvdW5kOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU0XCI7IH1cbmkuaWNvbi5wb3dlci5jb3JkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU2XCI7IH1cbmkuaWNvbi5wb3dlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAxMVwiOyB9XG5pLmljb24ucHJpdmFjeTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4NFwiOyB9XG5pLmljb24uci5jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNWRcIjsgfVxuaS5pY29uLnJhaW46YmVmb3JlIHsgY29udGVudDogXCJcXGYwZTlcIjsgfVxuaS5pY29uLnJlY29yZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAzZFwiOyB9XG5pLmljb24ucmVmcmVzaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyMVwiOyB9XG5pLmljb24ucmVtb3ZlLmNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA1N1wiOyB9XG5pLmljb24ucmVtb3ZlLmZyb20uY2FsZW5kYXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNzJcIjsgfVxuaS5pY29uLnJlbW92ZS51c2VyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjM1XCI7IH1cbmkuaWNvbi5yZW1vdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMGRcIjsgfVxuaS5pY29uLnJlcGVhdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAxZVwiOyB9XG5pLmljb24ucm1iOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU3XCI7IH1cbmkuaWNvbi5yb3VibGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNThcIjsgfVxuaS5pY29uLnJ1YjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1OFwiOyB9XG5pLmljb24ucnVibGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNThcIjsgfVxuaS5pY29uLnJ1cGVlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU2XCI7IH1cbmkuaWNvbi5zMTU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyY2RcIjsgfVxuaS5pY29uLnNlbGVjdGVkLnJhZGlvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTkyXCI7IH1cbmkuaWNvbi5zZW5kOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ4XCI7IH1cbmkuaWNvbi5zZXR0aW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDEzXCI7IH1cbmkuaWNvbi5zZXR0aW5nczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4NVwiOyB9XG5pLmljb24uc2hla2VsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBiXCI7IH1cbmkuaWNvbi5zaGVxZWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGJcIjsgfVxuaS5pY29uLnNoaXBwaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGQxXCI7IH1cbmkuaWNvbi5zaG9wOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDdhXCI7IH1cbmkuaWNvbi5zaHVmZmxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDc0XCI7IH1cbmkuaWNvbi5zaHV0ZG93bjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAxMVwiOyB9XG5pLmljb24uc2lkZWJhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBjOVwiOyB9XG5pLmljb24uc2lnbmluZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJhN1wiOyB9XG5pLmljb24uc2lnbnVwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDQ0XCI7IH1cbmkuaWNvbi5zbGlkZXJzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRlXCI7IH1cbmkuaWNvbi5zb2NjZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTNcIjsgfVxuaS5pY29uLnNvcnQuYWxwaGFiZXQuYXNjZW5kaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTVkXCI7IH1cbmkuaWNvbi5zb3J0LmFscGhhYmV0LmRlc2NlbmRpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWVcIjsgfVxuaS5pY29uLnNvcnQuYXNjZW5kaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGRlXCI7IH1cbmkuaWNvbi5zb3J0LmNvbnRlbnQuYXNjZW5kaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYwXCI7IH1cbmkuaWNvbi5zb3J0LmNvbnRlbnQuZGVzY2VuZGluZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2MVwiOyB9XG5pLmljb24uc29ydC5kZXNjZW5kaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGRkXCI7IH1cbmkuaWNvbi5zb3J0Lm51bWVyaWMuYXNjZW5kaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYyXCI7IH1cbmkuaWNvbi5zb3J0Lm51bWVyaWMuZGVzY2VuZGluZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2M1wiOyB9XG5pLmljb24uc291bmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMjVcIjsgfVxuaS5pY29uLnNweTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxYlwiOyB9XG5pLmljb24uc3RyaXBlLmNhcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjVcIjsgfVxuaS5pY29uLnN0dWRlbnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOWRcIjsgfVxuaS5pY29uLnRhbGs6YmVmb3JlIHsgY29udGVudDogXCJcXGYyN2FcIjsgfVxuaS5pY29uLnRhcmdldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0MFwiOyB9XG5pLmljb24udGVsZXR5cGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTRcIjsgfVxuaS5pY29uLnRlbGV2aXNpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYyNmNcIjsgfVxuaS5pY29uLnRleHQuY3Vyc29yOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjQ2XCI7IH1cbmkuaWNvbi50ZXh0LnRlbGVwaG9uZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlNFwiOyB9XG5pLmljb24udGhlbWUuaXNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJiMlwiOyB9XG5pLmljb24udGhlbWU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNDNcIjsgfVxuaS5pY29uLnRoZXJtb21ldGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmM3XCI7IH1cbmkuaWNvbi50aHVtYi50YWNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDhkXCI7IH1cbmkuaWNvbi50aW1lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDE3XCI7IH1cbmkuaWNvbi50bTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1Y1wiOyB9XG5pLmljb24udG9nZ2xlLmRvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTBcIjsgfVxuaS5pY29uLnRvZ2dsZS5sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTkxXCI7IH1cbmkuaWNvbi50b2dnbGUucmlnaHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTJcIjsgfVxuaS5pY29uLnRvZ2dsZS51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1MVwiOyB9XG5pLmljb24udHJhbnNsYXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFiXCI7IH1cbmkuaWNvbi50cmF2ZWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYjFcIjsgfVxuaS5pY29uLnRyZWF0bWVudDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBmMVwiOyB9XG5pLmljb24udHJpYW5nbGUuZG93bjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkN1wiOyB9XG5pLmljb24udHJpYW5nbGUubGVmdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkOVwiOyB9XG5pLmljb24udHJpYW5nbGUucmlnaHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZGFcIjsgfVxuaS5pY29uLnRyaWFuZ2xlLnVwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGQ4XCI7IH1cbmkuaWNvbi50cnk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTVcIjsgfVxuaS5pY29uLnVuaGlkZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA2ZVwiOyB9XG5pLmljb24udW5saW5raWZ5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTI3XCI7IH1cbmkuaWNvbi51bm11dGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzBcIjsgfVxuaS5pY29uLnVzZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1NVwiOyB9XG5pLmljb24udXNlci5jYW5jZWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMzVcIjsgfVxuaS5pY29uLnVzZXIuY2xvc2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMzVcIjsgfVxuaS5pY29uLnVzZXIuZGVsZXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjM1XCI7IH1cbmkuaWNvbi51c2VyLng6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMzVcIjsgfVxuaS5pY29uLnZjYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmJiXCI7IH1cbmkuaWNvbi52aWRlby5jYW1lcmE6YmVmb3JlIHsgY29udGVudDogXCJcXGYwM2RcIjsgfVxuaS5pY29uLnZpZGVvLnBsYXk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDRcIjsgfVxuaS5pY29uLnZpc2EuY2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmMFwiOyB9XG5pLmljb24udmlzYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmMFwiOyB9XG5pLmljb24udm9sdW1lLmNvbnRyb2wucGhvbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYTBcIjsgfVxuaS5pY29uLndhaXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMTdcIjsgfVxuaS5pY29uLndhcm5pbmcuY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDZhXCI7IH1cbmkuaWNvbi53YXJuaW5nLnNpZ246YmVmb3JlIHsgY29udGVudDogXCJcXGYwNzFcIjsgfVxuaS5pY29uLndhcm5pbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMmFcIjsgfVxuaS5pY29uLndlY2hhdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkN1wiOyB9XG5pLmljb24ud2ktZmk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZWJcIjsgfVxuaS5pY29uLndpa2lwZWRpYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI2NlwiOyB9XG5pLmljb24ud2lubmVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDkxXCI7IH1cbmkuaWNvbi53aXphcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDBcIjsgfVxuaS5pY29uLndvbWFuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjIxXCI7IH1cbmkuaWNvbi53b246YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTlcIjsgfVxuaS5pY29uLndvcmRwcmVzcy5iZWdpbm5lcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI5N1wiOyB9XG5pLmljb24ud29yZHByZXNzLmZvcm1zOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjk4XCI7IH1cbmkuaWNvbi53b3JsZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBhY1wiOyB9XG5pLmljb24ud3JpdGUuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTRiXCI7IH1cbmkuaWNvbi54OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDBkXCI7IH1cbmkuaWNvbi55YzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIzYlwiOyB9XG5pLmljb24ueWNvbWJpbmF0b3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYyM2JcIjsgfVxuaS5pY29uLnllbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1N1wiOyB9XG5pLmljb24uemlwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg3XCI7IH1cbmkuaWNvbi56b29tLWluOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDBlXCI7IH1cbmkuaWNvbi56b29tLW91dDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAxMFwiOyB9XG5pLmljb24uem9vbTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwZVwiOyB9XG5pLmljb24uYml0YnVja2V0LnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3MVwiOyB9XG5pLmljb24uY2hlY2ttYXJrLmJveDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0YVwiOyB9XG5pLmljb24uY2lyY2xlLnRoaW46YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTFcIjsgfVxuaS5pY29uLmNsb3VkLmRvd25sb2FkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzgxXCI7IH1cbmkuaWNvbi5jbG91ZC51cGxvYWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzODJcIjsgfVxuaS5pY29uLmNvbXBvc2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYzMDNcIjsgfVxuaS5pY29uLmNvbnZlcnNhdGlvbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4NlwiOyB9XG5pLmljb24uY3JlZGl0LmNhcmQuYWx0ZXJuYXRpdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwOWRcIjsgfVxuaS5pY29uLmN1cnJlbmN5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2QxXCI7IH1cbmkuaWNvbi5kYXNoYm9hcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZmRcIjsgfVxuaS5pY29uLmRpYW1vbmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYTVcIjsgfVxuaS5pY29uLmRpc2s6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYTBcIjsgfVxuaS5pY29uLmV4Y2hhbmdlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzYyXCI7IH1cbmkuaWNvbi5leHRlcm5hbC5zaGFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0ZFwiOyB9XG5pLmljb24uZXh0ZXJuYWwuc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzYwXCI7IH1cbmkuaWNvbi5leHRlcm5hbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM1ZFwiOyB9XG5pLmljb24uZmFjZWJvb2sub2ZmaWNpYWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYwODJcIjsgfVxuaS5pY29uLmZvb2Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZTdcIjsgfVxuaS5pY29uLmhvdXJnbGFzcy56ZXJvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjUzXCI7IH1cbmkuaWNvbi5sZXZlbC5kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2JlXCI7IH1cbmkuaWNvbi5sZXZlbC51cDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjNiZlwiOyB9XG5pLmljb24ubG9nb3V0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmY1XCI7IH1cbmkuaWNvbi5tZWFucGF0aDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBjOFwiOyB9XG5pLmljb24ubW9uZXk6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZDFcIjsgfVxuaS5pY29uLm1vdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYjJcIjsgfVxuaS5pY29uLnBlbmNpbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjMwM1wiOyB9XG5pLmljb24ucHJvdGVjdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyM1wiOyB9XG5pLmljb24ucmFkaW86YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTJcIjsgfVxuaS5pY29uLnJlbW92ZS5ib29rbWFyazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyZVwiOyB9XG5pLmljb24ucmVzaXplLmhvcml6b250YWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYzMzdcIjsgfVxuaS5pY29uLnJlc2l6ZS52ZXJ0aWNhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjMzOFwiOyB9XG5pLmljb24uc2lnbi1pbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJmNlwiOyB9XG5pLmljb24uc2lnbi1vdXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZjVcIjsgfVxuaS5pY29uLnNwb29uOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmU1XCI7IH1cbmkuaWNvbi5zdGFyLmhhbGYuZW1wdHk6YmVmb3JlIHsgY29udGVudDogXCJcXGYwODlcIjsgfVxuaS5pY29uLnN0YXIuaGFsZi5mdWxsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDg5XCI7IH1cbmkuaWNvbi50aWNrZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYzZmZcIjsgfVxuaS5pY29uLnRpbWVzLnJlY3RhbmdsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjQxMFwiOyB9XG5pLmljb24ud3JpdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzMDNcIjsgfVxuaS5pY29uLnlvdXR1YmUucGxheTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2N1wiOyB9XG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBPdXRsaW5lIEljb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBPdXRsaW5lIEljb24gKi9cbi5sb2FkT3V0bGluZUljb25zKCkgd2hlbiAoQGltcG9ydE91dGxpbmVJY29ucykge1xuICAvKiBMb2FkICYgRGVmaW5lIEljb24gRm9udCAqL1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogQG91dGxpbmVGb250TmFtZTtcbiAgICBzcmM6IEBvdXRsaW5lRmFsbGJhY2tTUkM7XG4gICAgc3JjOiBAb3V0bGluZVNyYztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IEBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIGkuaWNvbi5vdXRsaW5lIHtcbiAgICBmb250LWZhbWlseTogQG91dGxpbmVGb250TmFtZTtcbiAgfVxuICAvKiBJY29uIERlZmluaXRpb25zICovXG4gIGkuaWNvbi5hZGRyZXNzLmJvb2sub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJiOVwiOyB9XG4gIGkuaWNvbi5hZGRyZXNzLmNhcmQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJiYlwiOyB9XG4gIGkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmRvd24ub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM1OFwiOyB9XG4gIGkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmxlZnQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjM1OVwiOyB9XG4gIGkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLnJpZ2h0Lm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzNWFcIjsgfVxuICBpLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS51cC5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMzViXCI7IH1cbiAgaS5pY29uLmJlbGwub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBmM1wiOyB9XG4gIGkuaWNvbi5iZWxsLnNsYXNoLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjZcIjsgfVxuICBpLmljb24uYm9va21hcmsub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyZVwiOyB9XG4gIGkuaWNvbi5idWlsZGluZy5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFkXCI7IH1cbiAgaS5pY29uLmNhbGVuZGFyLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzNcIjsgfVxuICBpLmljb24uY2FsZW5kYXIuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNzNcIjsgfVxuICBpLmljb24uY2FsZW5kYXIuY2hlY2sub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3NFwiOyB9XG4gIGkuaWNvbi5jYWxlbmRhci5taW51cy5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjcyXCI7IH1cbiAgaS5pY29uLmNhbGVuZGFyLnBsdXMub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3MVwiOyB9XG4gIGkuaWNvbi5jYWxlbmRhci50aW1lcy5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjczXCI7IH1cbiAgaS5pY29uLmNhcmV0LnNxdWFyZS5kb3duLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTBcIjsgfVxuICBpLmljb24uY2FyZXQuc3F1YXJlLmxlZnQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5MVwiOyB9XG4gIGkuaWNvbi5jYXJldC5zcXVhcmUucmlnaHQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1MlwiOyB9XG4gIGkuaWNvbi5jYXJldC5zcXVhcmUudXAub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1MVwiOyB9XG4gIGkuaWNvbi5jaGFydC5iYXIub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4MFwiOyB9XG4gIGkuaWNvbi5jaGVjay5jaXJjbGUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA1OFwiOyB9XG4gIGkuaWNvbi5jaGVjay5zcXVhcmUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0YVwiOyB9XG4gIGkuaWNvbi5jaXJjbGUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjExMVwiOyB9XG4gIGkuaWNvbi5jbGlwYm9hcmQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjMyOFwiOyB9XG4gIGkuaWNvbi5jbG9jay5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDE3XCI7IH1cbiAgaS5pY29uLmNsb25lLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNGRcIjsgfVxuICBpLmljb24uY2xvc2VkLmNhcHRpb25pbmcub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwYVwiOyB9XG4gIGkuaWNvbi5jb21tZW50Lm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNzVcIjsgfVxuICBpLmljb24uY29tbWVudC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3YVwiOyB9XG4gIGkuaWNvbi5jb21tZW50cy5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDg2XCI7IH1cbiAgaS5pY29uLmNvbXBhc3Mub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0ZVwiOyB9XG4gIGkuaWNvbi5jb3B5Lm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYzVcIjsgfVxuICBpLmljb24uY29weXJpZ2h0Lm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjlcIjsgfVxuICBpLmljb24uY3JlZGl0LmNhcmQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA5ZFwiOyB9XG4gIGkuaWNvbi5kb3QuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTJcIjsgfVxuICBpLmljb24uZWRpdC5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDQ0XCI7IH1cbiAgaS5pY29uLmVudmVsb3BlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZTBcIjsgfVxuICBpLmljb24uZW52ZWxvcGUub3Blbi5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMmI2XCI7IH1cbiAgaS5pY29uLmV5ZS5zbGFzaC5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDcwXCI7IH1cbiAgaS5pY29uLmZpbGUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1YlwiOyB9XG4gIGkuaWNvbi5maWxlLmFsdGVybmF0ZS5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTVjXCI7IH1cbiAgaS5pY29uLmZpbGUuYXJjaGl2ZS5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWM2XCI7IH1cbiAgaS5pY29uLmZpbGUuYXVkaW8ub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjN1wiOyB9XG4gIGkuaWNvbi5maWxlLmNvZGUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjOVwiOyB9XG4gIGkuaWNvbi5maWxlLmV4Y2VsLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzNcIjsgfVxuICBpLmljb24uZmlsZS5pbWFnZS5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWM1XCI7IH1cbiAgaS5pY29uLmZpbGUucGRmLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzFcIjsgfVxuICBpLmljb24uZmlsZS5wb3dlcnBvaW50Lm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzRcIjsgfVxuICBpLmljb24uZmlsZS52aWRlby5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWM4XCI7IH1cbiAgaS5pY29uLmZpbGUud29yZC5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWMyXCI7IH1cbiAgaS5pY29uLmZsYWcub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyNFwiOyB9XG4gIGkuaWNvbi5mb2xkZXIub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA3YlwiOyB9XG4gIGkuaWNvbi5mb2xkZXIub3Blbi5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDdjXCI7IH1cbiAgaS5pY29uLmZyb3duLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTlcIjsgfVxuICBpLmljb24uZnV0Ym9sLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTNcIjsgfVxuICBpLmljb24uZ2VtLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYzYTVcIjsgfVxuICBpLmljb24uaGFuZC5saXphcmQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1OFwiOyB9XG4gIGkuaWNvbi5oYW5kLnBhcGVyLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTZcIjsgfVxuICBpLmljb24uaGFuZC5wZWFjZS5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjViXCI7IH1cbiAgaS5pY29uLmhhbmQucG9pbnQuZG93bi5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGE3XCI7IH1cbiAgaS5pY29uLmhhbmQucG9pbnQubGVmdC5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGE1XCI7IH1cbiAgaS5pY29uLmhhbmQucG9pbnQucmlnaHQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBhNFwiOyB9XG4gIGkuaWNvbi5oYW5kLnBvaW50LnVwLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYTZcIjsgfVxuICBpLmljb24uaGFuZC5wb2ludGVyLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNWFcIjsgfVxuICBpLmljb24uaGFuZC5yb2NrLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTVcIjsgfVxuICBpLmljb24uaGFuZC5zY2lzc29ycy5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjU3XCI7IH1cbiAgaS5pY29uLmhhbmQuc3BvY2sub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1OVwiOyB9XG4gIGkuaWNvbi5oYW5kc2hha2Uub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJiNVwiOyB9XG4gIGkuaWNvbi5oZGQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBhMFwiOyB9XG4gIGkuaWNvbi5oZWFydC5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDA0XCI7IH1cbiAgaS5pY29uLmhvc3BpdGFsLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZjhcIjsgfVxuICBpLmljb24uaG91cmdsYXNzLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyNTRcIjsgfVxuICBpLmljb24uaWQuYmFkZ2Uub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJjMVwiOyB9XG4gIGkuaWNvbi5pZC5jYXJkLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYzJcIjsgfVxuICBpLmljb24uaW1hZ2Uub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAzZVwiOyB9XG4gIGkuaWNvbi5pbWFnZXMub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjMwMlwiOyB9XG4gIGkuaWNvbi5rZXlib2FyZC5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTFjXCI7IH1cbiAgaS5pY29uLmxlbW9uLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwOTRcIjsgfVxuICBpLmljb24ubGlmZS5yaW5nLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2RcIjsgfVxuICBpLmljb24ubGlnaHRidWxiLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZWJcIjsgfVxuICBpLmljb24ubGlzdC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAyMlwiOyB9XG4gIGkuaWNvbi5tYXAub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI3OVwiOyB9XG4gIGkuaWNvbi5tZWgub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjExYVwiOyB9XG4gIGkuaWNvbi5taW51cy5zcXVhcmUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0NlwiOyB9XG4gIGkuaWNvbi5tb25leS5iaWxsLmFsdGVybmF0ZS5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmM2QxXCI7IH1cbiAgaS5pY29uLm1vb24ub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4NlwiOyB9XG4gIGkuaWNvbi5uZXdzcGFwZXIub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlYVwiOyB9XG4gIGkuaWNvbi5vYmplY3QuZ3JvdXAub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0N1wiOyB9XG4gIGkuaWNvbi5vYmplY3QudW5ncm91cC5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjQ4XCI7IH1cbiAgaS5pY29uLnBhcGVyLnBsYW5lLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDhcIjsgfVxuICBpLmljb24ucGF1c2UuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyOGJcIjsgfVxuICBpLmljb24ucGxheS5jaXJjbGUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0NFwiOyB9XG4gIGkuaWNvbi5wbHVzLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMGZlXCI7IH1cbiAgaS5pY29uLnF1ZXN0aW9uLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDU5XCI7IH1cbiAgaS5pY29uLnJlZ2lzdGVyZWQub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI1ZFwiOyB9XG4gIGkuaWNvbi5zYXZlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYzdcIjsgfVxuICBpLmljb24uc2hhcmUuc3F1YXJlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGRcIjsgfVxuICBpLmljb24uc21pbGUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjExOFwiOyB9XG4gIGkuaWNvbi5zbm93Zmxha2Uub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJkY1wiOyB9XG4gIGkuaWNvbi5zcXVhcmUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBjOFwiOyB9XG4gIGkuaWNvbi5zdGFyLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMDVcIjsgfVxuICBpLmljb24uc3Rhci5oYWxmLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwODlcIjsgfVxuICBpLmljb24uc3RpY2t5Lm5vdGUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjI0OVwiOyB9XG4gIGkuaWNvbi5zdG9wLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjhkXCI7IH1cbiAgaS5pY29uLnN1bi5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg1XCI7IH1cbiAgaS5pY29uLnRodW1icy5kb3duLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjVcIjsgfVxuICBpLmljb24udGh1bWJzLnVwLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjRcIjsgfVxuICBpLmljb24udGltZXMuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwNTdcIjsgfVxuICBpLmljb24udHJhc2guYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZWRcIjsgfVxuICBpLmljb24udXNlci5vdXRsaW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMDA3XCI7IH1cbiAgaS5pY29uLnVzZXIuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyYmRcIjsgfVxuICBpLmljb24ud2luZG93LmNsb3NlLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGY0MTBcIjsgfVxuICBpLmljb24ud2luZG93Lm1heGltaXplLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZDBcIjsgfVxuICBpLmljb24ud2luZG93Lm1pbmltaXplLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyZDFcIjsgfVxuICBpLmljb24ud2luZG93LnJlc3RvcmUub3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjJkMlwiOyB9XG5cbiAgLyogT3V0bGluZSBBbGlhc2VzICovXG4gIGkuaWNvbi5kaXNrLm91dGxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYwYTBcIjsgfVxuICBpLmljb24uaGVhcnQuZW1wdHksXG4gIGkuaWNvbi5zdGFyLmVtcHR5IHtcbiAgICBmb250LWZhbWlseTogQG91dGxpbmVGb250TmFtZTtcbiAgfVxuICBpLmljb24uaGVhcnQuZW1wdHk6YmVmb3JlIHsgY29udGVudDogXCJcXGYwMDRcIjsgfVxuICBpLmljb24uc3Rhci5lbXB0eTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjA4OVwiOyB9XG5cbn1cbi5sb2FkT3V0bGluZUljb25zKCk7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIEJyYW5kIEljb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4ubG9hZEJyYW5kSWNvbnMoKSB3aGVuIChAaW1wb3J0QnJhbmRJY29ucykge1xuICAvKiBMb2FkICYgRGVmaW5lIEJyYW5kIEZvbnQgKi9cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IEBicmFuZEZvbnROYW1lO1xuICAgIHNyYzogQGJyYW5kRmFsbGJhY2tTUkM7XG4gICAgc3JjOiBAYnJhbmRTcmM7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBAbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAvKiBCcmFuZCBJY29uIEZvbnQgRmFtaWx5ICovXG4gIGkuaWNvbi5cXDM1IDAwcHgsXG4gIGkuaWNvbi5hY2Nlc3NpYmxlLmljb24sXG4gIGkuaWNvbi5hY2N1c29mdCxcbiAgaS5pY29uLmFkbixcbiAgaS5pY29uLmFkdmVyc2FsLFxuICBpLmljb24uYWZmaWxpYXRldGhlbWUsXG4gIGkuaWNvbi5hbGdvbGlhLFxuICBpLmljb24uYW1hem9uLFxuICBpLmljb24uYW1hem9uLnBheSxcbiAgaS5pY29uLmFtaWxpYSxcbiAgaS5pY29uLmFuZHJvaWQsXG4gIGkuaWNvbi5hbmdlbGxpc3QsXG4gIGkuaWNvbi5hbmdyeWNyZWF0aXZlLFxuICBpLmljb24uYW5ndWxhcixcbiAgaS5pY29uLmFwcC5zdG9yZSxcbiAgaS5pY29uLmFwcC5zdG9yZS5pb3MsXG4gIGkuaWNvbi5hcHBlcixcbiAgaS5pY29uLmFwcGxlLFxuICBpLmljb24uYXBwbGUucGF5LFxuICBpLmljb24uYXN5bW1ldHJpayxcbiAgaS5pY29uLmF1ZGlibGUsXG4gIGkuaWNvbi5hdXRvcHJlZml4ZXIsXG4gIGkuaWNvbi5hdmlhbmV4LFxuICBpLmljb24uYXZpYXRvLFxuICBpLmljb24uYXdzLFxuICBpLmljb24uYmFuZGNhbXAsXG4gIGkuaWNvbi5iZWhhbmNlLFxuICBpLmljb24uYmVoYW5jZS5zcXVhcmUsXG4gIGkuaWNvbi5iaW1vYmplY3QsXG4gIGkuaWNvbi5iaXRidWNrZXQsXG4gIGkuaWNvbi5iaXRjb2luLFxuICBpLmljb24uYml0eSxcbiAgaS5pY29uLmJsYWNrLnRpZSxcbiAgaS5pY29uLmJsYWNrYmVycnksXG4gIGkuaWNvbi5ibG9nZ2VyLFxuICBpLmljb24uYmxvZ2dlci5iLFxuICBpLmljb24uYmx1ZXRvb3RoLFxuICBpLmljb24uYmx1ZXRvb3RoLmIsXG4gIGkuaWNvbi5idGMsXG4gIGkuaWNvbi5idXJvbW9iZWxleHBlcnRlLFxuICBpLmljb24uYnV5c2VsbGFkcyxcbiAgaS5pY29uLmNjLmFtYXpvbi5wYXksXG4gIGkuaWNvbi5jYy5hbWV4LFxuICBpLmljb24uY2MuYXBwbGUucGF5LFxuICBpLmljb24uY2MuZGluZXJzLmNsdWIsXG4gIGkuaWNvbi5jYy5kaXNjb3ZlcixcbiAgaS5pY29uLmNjLmpjYixcbiAgaS5pY29uLmNjLm1hc3RlcmNhcmQsXG4gIGkuaWNvbi5jYy5wYXlwYWwsXG4gIGkuaWNvbi5jYy5zdHJpcGUsXG4gIGkuaWNvbi5jYy52aXNhLFxuICBpLmljb24uY2VudGVyY29kZSxcbiAgaS5pY29uLmNocm9tZSxcbiAgaS5pY29uLmNsb3Vkc2NhbGUsXG4gIGkuaWNvbi5jbG91ZHNtaXRoLFxuICBpLmljb24uY2xvdWR2ZXJzaWZ5LFxuICBpLmljb24uY29kZXBlbixcbiAgaS5pY29uLmNvZGllcGllLFxuICBpLmljb24uY29ubmVjdGRldmVsb3AsXG4gIGkuaWNvbi5jb250YW8sXG4gIGkuaWNvbi5jcGFuZWwsXG4gIGkuaWNvbi5jcmVhdGl2ZS5jb21tb25zLFxuICBpLmljb24uY3NzMyxcbiAgaS5pY29uLmNzczMuYWx0ZXJuYXRlLFxuICBpLmljb24uY3V0dGxlZmlzaCxcbiAgaS5pY29uLmQuYW5kLmQsXG4gIGkuaWNvbi5kYXNoY3ViZSxcbiAgaS5pY29uLmRlbGljaW91cyxcbiAgaS5pY29uLmRlcGxveWRvZyxcbiAgaS5pY29uLmRlc2twcm8sXG4gIGkuaWNvbi5kZXZpYW50YXJ0LFxuICBpLmljb24uZGlnZyxcbiAgaS5pY29uLmRpZ2l0YWwub2NlYW4sXG4gIGkuaWNvbi5kaXNjb3JkLFxuICBpLmljb24uZGlzY291cnNlLFxuICBpLmljb24uZG9jaHViLFxuICBpLmljb24uZG9ja2VyLFxuICBpLmljb24uZHJhZnQyZGlnaXRhbCxcbiAgaS5pY29uLmRyaWJiYmxlLFxuICBpLmljb24uZHJpYmJibGUuc3F1YXJlLFxuICBpLmljb24uZHJvcGJveCxcbiAgaS5pY29uLmRydXBhbCxcbiAgaS5pY29uLmR5YWxvZyxcbiAgaS5pY29uLmVhcmx5YmlyZHMsXG4gIGkuaWNvbi5lZGdlLFxuICBpLmljb24uZWxlbWVudG9yLFxuICBpLmljb24uZW1iZXIsXG4gIGkuaWNvbi5lbXBpcmUsXG4gIGkuaWNvbi5lbnZpcmEsXG4gIGkuaWNvbi5lcmxhbmcsXG4gIGkuaWNvbi5ldGhlcmV1bSxcbiAgaS5pY29uLmV0c3ksXG4gIGkuaWNvbi5leHBlZGl0ZWRzc2wsXG4gIGkuaWNvbi5mYWNlYm9vayxcbiAgaS5pY29uLmZhY2Vib29rLmYsXG4gIGkuaWNvbi5mYWNlYm9vay5tZXNzZW5nZXIsXG4gIGkuaWNvbi5mYWNlYm9vay5zcXVhcmUsXG4gIGkuaWNvbi5maXJlZm94LFxuICBpLmljb24uZmlyc3Qub3JkZXIsXG4gIGkuaWNvbi5maXJzdGRyYWZ0LFxuICBpLmljb24uZmxpY2tyLFxuICBpLmljb24uZmxpcGJvYXJkLFxuICBpLmljb24uZmx5LFxuICBpLmljb24uZm9udC5hd2Vzb21lLFxuICBpLmljb24uZm9udC5hd2Vzb21lLmFsdGVybmF0ZSxcbiAgaS5pY29uLmZvbnQuYXdlc29tZS5mbGFnLFxuICBpLmljb24uZm9udGljb25zLFxuICBpLmljb24uZm9udGljb25zLmZpLFxuICBpLmljb24uZm9ydC5hd2Vzb21lLFxuICBpLmljb24uZm9ydC5hd2Vzb21lLmFsdGVybmF0ZSxcbiAgaS5pY29uLmZvcnVtYmVlLFxuICBpLmljb24uZm91cnNxdWFyZSxcbiAgaS5pY29uLmZyZWUuY29kZS5jYW1wLFxuICBpLmljb24uZnJlZWJzZCxcbiAgaS5pY29uLmdldC5wb2NrZXQsXG4gIGkuaWNvbi5nZyxcbiAgaS5pY29uLmdnLmNpcmNsZSxcbiAgaS5pY29uLmdpdCxcbiAgaS5pY29uLmdpdC5zcXVhcmUsXG4gIGkuaWNvbi5naXRodWIsXG4gIGkuaWNvbi5naXRodWIuYWx0ZXJuYXRlLFxuICBpLmljb24uZ2l0aHViLnNxdWFyZSxcbiAgaS5pY29uLmdpdGtyYWtlbixcbiAgaS5pY29uLmdpdGxhYixcbiAgaS5pY29uLmdpdHRlcixcbiAgaS5pY29uLmdsaWRlLFxuICBpLmljb24uZ2xpZGUuZyxcbiAgaS5pY29uLmdvZm9yZSxcbiAgaS5pY29uLmdvb2RyZWFkcyxcbiAgaS5pY29uLmdvb2RyZWFkcy5nLFxuICBpLmljb24uZ29vZ2xlLFxuICBpLmljb24uZ29vZ2xlLmRyaXZlLFxuICBpLmljb24uZ29vZ2xlLnBsYXksXG4gIGkuaWNvbi5nb29nbGUucGx1cyxcbiAgaS5pY29uLmdvb2dsZS5wbHVzLmcsXG4gIGkuaWNvbi5nb29nbGUucGx1cy5zcXVhcmUsXG4gIGkuaWNvbi5nb29nbGUud2FsbGV0LFxuICBpLmljb24uZ3JhdGlwYXksXG4gIGkuaWNvbi5ncmF2LFxuICBpLmljb24uZ3JpcGZpcmUsXG4gIGkuaWNvbi5ncnVudCxcbiAgaS5pY29uLmd1bHAsXG4gIGkuaWNvbi5oYWNrZXIubmV3cyxcbiAgaS5pY29uLmhhY2tlci5uZXdzLnNxdWFyZSxcbiAgaS5pY29uLmhpcHMsXG4gIGkuaWNvbi5oaXJlLmEuaGVscGVyLFxuICBpLmljb24uaG9vbGksXG4gIGkuaWNvbi5ob3RqYXIsXG4gIGkuaWNvbi5ob3V6eixcbiAgaS5pY29uLmh0bWw1LFxuICBpLmljb24uaHVic3BvdCxcbiAgaS5pY29uLmltZGIsXG4gIGkuaWNvbi5pbnN0YWdyYW0sXG4gIGkuaWNvbi5pbnRlcm5ldC5leHBsb3JlcixcbiAgaS5pY29uLmlveGhvc3QsXG4gIGkuaWNvbi5pdHVuZXMsXG4gIGkuaWNvbi5pdHVuZXMubm90ZSxcbiAgaS5pY29uLmplbmtpbnMsXG4gIGkuaWNvbi5qb2dldCxcbiAgaS5pY29uLmpvb21sYSxcbiAgaS5pY29uLmpzLFxuICBpLmljb24uanMuc3F1YXJlLFxuICBpLmljb24uanNmaWRkbGUsXG4gIGkuaWNvbi5rZXljZG4sXG4gIGkuaWNvbi5raWNrc3RhcnRlcixcbiAgaS5pY29uLmtpY2tzdGFydGVyLmssXG4gIGkuaWNvbi5rb3J2dWUsXG4gIGkuaWNvbi5sYXJhdmVsLFxuICBpLmljb24ubGFzdGZtLFxuICBpLmljb24ubGFzdGZtLnNxdWFyZSxcbiAgaS5pY29uLmxlYW5wdWIsXG4gIGkuaWNvbi5sZXNzLFxuICBpLmljb24ubGluZWNoYXQsXG4gIGkuaWNvbi5saW5rZWRpbixcbiAgaS5pY29uLmxpbmtlZGluLmFsdGVybmF0ZSxcbiAgaS5pY29uLmxpbmtlZGluLmluLFxuICBpLmljb24ubGlub2RlLFxuICBpLmljb24ubGludXgsXG4gIGkuaWNvbi5seWZ0LFxuICBpLmljb24ubWFnZW50byxcbiAgaS5pY29uLm1heGNkbixcbiAgaS5pY29uLm1lZGFwcHMsXG4gIGkuaWNvbi5tZWRpdW0sXG4gIGkuaWNvbi5tZWRpdW0ubSxcbiAgaS5pY29uLm1lZHJ0LFxuICBpLmljb24ubWVldHVwLFxuICBpLmljb24ubWljcm9zb2Z0LFxuICBpLmljb24ubWl4LFxuICBpLmljb24ubWl4Y2xvdWQsXG4gIGkuaWNvbi5taXp1bmksXG4gIGkuaWNvbi5tb2R4LFxuICBpLmljb24ubW9uZXJvLFxuICBpLmljb24ubmFwc3RlcixcbiAgaS5pY29uLm5pbnRlbmRvLnN3aXRjaCxcbiAgaS5pY29uLm5vZGUsXG4gIGkuaWNvbi5ub2RlLmpzLFxuICBpLmljb24ubnBtLFxuICBpLmljb24ubnM4LFxuICBpLmljb24ubnV0cml0aW9uaXgsXG4gIGkuaWNvbi5vZG5va2xhc3NuaWtpLFxuICBpLmljb24ub2Rub2tsYXNzbmlraS5zcXVhcmUsXG4gIGkuaWNvbi5vcGVuY2FydCxcbiAgaS5pY29uLm9wZW5pZCxcbiAgaS5pY29uLm9wZXJhLFxuICBpLmljb24ub3B0aW4ubW9uc3RlcixcbiAgaS5pY29uLm9zaSxcbiAgaS5pY29uLnBhZ2U0LFxuICBpLmljb24ucGFnZWxpbmVzLFxuICBpLmljb24ucGFsZmVkLFxuICBpLmljb24ucGF0cmVvbixcbiAgaS5pY29uLnBheXBhbCxcbiAgaS5pY29uLnBlcmlzY29wZSxcbiAgaS5pY29uLnBoYWJyaWNhdG9yLFxuICBpLmljb24ucGhvZW5peC5mcmFtZXdvcmssXG4gIGkuaWNvbi5waHAsXG4gIGkuaWNvbi5waWVkLnBpcGVyLFxuICBpLmljb24ucGllZC5waXBlci5hbHRlcm5hdGUsXG4gIGkuaWNvbi5waWVkLnBpcGVyLnBwLFxuICBpLmljb24ucGludGVyZXN0LFxuICBpLmljb24ucGludGVyZXN0LnAsXG4gIGkuaWNvbi5waW50ZXJlc3Quc3F1YXJlLFxuICBpLmljb24ucGxheXN0YXRpb24sXG4gIGkuaWNvbi5wcm9kdWN0Lmh1bnQsXG4gIGkuaWNvbi5wdXNoZWQsXG4gIGkuaWNvbi5weXRob24sXG4gIGkuaWNvbi5xcSxcbiAgaS5pY29uLnF1aW5zY2FwZSxcbiAgaS5pY29uLnF1b3JhLFxuICBpLmljb24ucmF2ZWxyeSxcbiAgaS5pY29uLnJlYWN0LFxuICBpLmljb24ucmViZWwsXG4gIGkuaWNvbi5yZWRyaXZlcixcbiAgaS5pY29uLnJlZGRpdCxcbiAgaS5pY29uLnJlZGRpdC5hbGllbixcbiAgaS5pY29uLnJlZGRpdC5zcXVhcmUsXG4gIGkuaWNvbi5yZW5kYWN0LFxuICBpLmljb24ucmVucmVuLFxuICBpLmljb24ucmVwbHlkLFxuICBpLmljb24ucmVzb2x2aW5nLFxuICBpLmljb24ucm9ja2V0Y2hhdCxcbiAgaS5pY29uLnJvY2tybXMsXG4gIGkuaWNvbi5zYWZhcmksXG4gIGkuaWNvbi5zYXNzLFxuICBpLmljb24uc2NobGl4LFxuICBpLmljb24uc2NyaWJkLFxuICBpLmljb24uc2VhcmNoZW5naW4sXG4gIGkuaWNvbi5zZWxsY2FzdCxcbiAgaS5pY29uLnNlbGxzeSxcbiAgaS5pY29uLnNlcnZpY2VzdGFjayxcbiAgaS5pY29uLnNoaXJ0c2luYnVsayxcbiAgaS5pY29uLnNpbXBseWJ1aWx0LFxuICBpLmljb24uc2lzdHJpeCxcbiAgaS5pY29uLnNreWF0bGFzLFxuICBpLmljb24uc2t5cGUsXG4gIGkuaWNvbi5zbGFjayxcbiAgaS5pY29uLnNsYWNrLmhhc2gsXG4gIGkuaWNvbi5zbGlkZXNoYXJlLFxuICBpLmljb24uc25hcGNoYXQsXG4gIGkuaWNvbi5zbmFwY2hhdC5naG9zdCxcbiAgaS5pY29uLnNuYXBjaGF0LnNxdWFyZSxcbiAgaS5pY29uLnNvdW5kY2xvdWQsXG4gIGkuaWNvbi5zcGVha2FwLFxuICBpLmljb24uc3BvdGlmeSxcbiAgaS5pY29uLnN0YWNrLmV4Y2hhbmdlLFxuICBpLmljb24uc3RhY2sub3ZlcmZsb3csXG4gIGkuaWNvbi5zdGF5bGlua2VkLFxuICBpLmljb24uc3RlYW0sXG4gIGkuaWNvbi5zdGVhbS5zcXVhcmUsXG4gIGkuaWNvbi5zdGVhbS5zeW1ib2wsXG4gIGkuaWNvbi5zdGlja2VyLm11bGUsXG4gIGkuaWNvbi5zdHJhdmEsXG4gIGkuaWNvbi5zdHJpcGUsXG4gIGkuaWNvbi5zdHJpcGUucyxcbiAgaS5pY29uLnN0dWRpb3ZpbmFyaSxcbiAgaS5pY29uLnN0dW1ibGV1cG9uLFxuICBpLmljb24uc3R1bWJsZXVwb24uY2lyY2xlLFxuICBpLmljb24uc3VwZXJwb3dlcnMsXG4gIGkuaWNvbi5zdXBwbGUsXG4gIGkuaWNvbi50ZWxlZ3JhbSxcbiAgaS5pY29uLnRlbGVncmFtLnBsYW5lLFxuICBpLmljb24udGVuY2VudC53ZWlibyxcbiAgaS5pY29uLnRoZW1laXNsZSxcbiAgaS5pY29uLnRyZWxsbyxcbiAgaS5pY29uLnRyaXBhZHZpc29yLFxuICBpLmljb24udHVtYmxyLFxuICBpLmljb24udHVtYmxyLnNxdWFyZSxcbiAgaS5pY29uLnR3aXRjaCxcbiAgaS5pY29uLnR3aXR0ZXIsXG4gIGkuaWNvbi50d2l0dGVyLnNxdWFyZSxcbiAgaS5pY29uLnR5cG8zLFxuICBpLmljb24udWJlcixcbiAgaS5pY29uLnVpa2l0LFxuICBpLmljb24udW5pcmVnaXN0cnksXG4gIGkuaWNvbi51bnRhcHBkLFxuICBpLmljb24udXNiLFxuICBpLmljb24udXNzdW5uYWgsXG4gIGkuaWNvbi52YWFkaW4sXG4gIGkuaWNvbi52aWFjb2luLFxuICBpLmljb24udmlhZGVvLFxuICBpLmljb24udmlhZGVvLnNxdWFyZSxcbiAgaS5pY29uLnZpYmVyLFxuICBpLmljb24udmltZW8sXG4gIGkuaWNvbi52aW1lby5zcXVhcmUsXG4gIGkuaWNvbi52aW1lby52LFxuICBpLmljb24udmluZSxcbiAgaS5pY29uLnZrLFxuICBpLmljb24udm52LFxuICBpLmljb24udnVlanMsXG4gIGkuaWNvbi53ZWNoYXQsXG4gIGkuaWNvbi53ZWlibyxcbiAgaS5pY29uLndlaXhpbixcbiAgaS5pY29uLndoYXRzYXBwLFxuICBpLmljb24ud2hhdHNhcHAuc3F1YXJlLFxuICBpLmljb24ud2htY3MsXG4gIGkuaWNvbi53aWtpcGVkaWEudyxcbiAgaS5pY29uLndpbmRvd3MsXG4gIGkuaWNvbi53b3JkcHJlc3MsXG4gIGkuaWNvbi53b3JkcHJlc3Muc2ltcGxlLFxuICBpLmljb24ud3BiZWdpbm5lcixcbiAgaS5pY29uLndwZXhwbG9yZXIsXG4gIGkuaWNvbi53cGZvcm1zLFxuICBpLmljb24ueGJveCxcbiAgaS5pY29uLnhpbmcsXG4gIGkuaWNvbi54aW5nLnNxdWFyZSxcbiAgaS5pY29uLnkuY29tYmluYXRvcixcbiAgaS5pY29uLnlhaG9vLFxuICBpLmljb24ueWFuZGV4LFxuICBpLmljb24ueWFuZGV4LmludGVybmF0aW9uYWwsXG4gIGkuaWNvbi55ZWxwLFxuICBpLmljb24ueW9hc3QsXG4gIGkuaWNvbi55b3V0dWJlLFxuICBpLmljb24ueW91dHViZS5zcXVhcmUge1xuICAgIGZvbnQtZmFtaWx5OiAnYnJhbmQtaWNvbnMnO1xuICB9XG4gIC8qIEJyYW5kIEljb25zIElkZWFsbHkgV291bGQgQmUgRGVmaW5lZCBIZXJlICovXG5cbn1cbi5sb2FkQnJhbmRJY29ucygpO1xuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gSW1hZ2VcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdlbGVtZW50JztcbkBlbGVtZW50IDogJ2ltYWdlJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSW1hZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwbGFjZWhvbGRlckNvbG9yO1xufVxuXG5pbWcudWkuaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnVpLmltYWdlIHN2Zyxcbi51aS5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLmhpZGRlbi5pbWFnZXMsXG4udWkuaGlkZGVuLmltYWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5oaWRkZW4udHJhbnNpdGlvbi5pbWFnZXMsXG4udWkuaGlkZGVuLnRyYW5zaXRpb24uaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLmltYWdlcyA+IC5oaWRkZW4udHJhbnNpdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5cbi51aS5kaXNhYmxlZC5pbWFnZXMsXG4udWkuZGlzYWJsZWQuaW1hZ2Uge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IEBkaXNhYmxlZE9wYWNpdHk7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW5saW5lXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW5saW5lLmltYWdlLFxuLnVpLmlubGluZS5pbWFnZSBzdmcsXG4udWkuaW5saW5lLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmVydGljYWwgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS50b3AuYWxpZ25lZC5pbWFnZXMgLmltYWdlLFxuLnVpLnRvcC5hbGlnbmVkLmltYWdlLFxuLnVpLnRvcC5hbGlnbmVkLmltYWdlIHN2Zyxcbi51aS50b3AuYWxpZ25lZC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkubWlkZGxlLmFsaWduZWQuaW1hZ2VzIC5pbWFnZSxcbi51aS5taWRkbGUuYWxpZ25lZC5pbWFnZSxcbi51aS5taWRkbGUuYWxpZ25lZC5pbWFnZSBzdmcsXG4udWkubWlkZGxlLmFsaWduZWQuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmJvdHRvbS5hbGlnbmVkLmltYWdlcyAuaW1hZ2UsXG4udWkuYm90dG9tLmFsaWduZWQuaW1hZ2UsXG4udWkuYm90dG9tLmFsaWduZWQuaW1hZ2Ugc3ZnLFxuLnVpLmJvdHRvbS5hbGlnbmVkLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSb3VuZGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkucm91bmRlZC5pbWFnZXMgLmltYWdlLFxuLnVpLnJvdW5kZWQuaW1hZ2UsXG4udWkucm91bmRlZC5pbWFnZXMgLmltYWdlID4gKixcbi51aS5yb3VuZGVkLmltYWdlID4gKiB7XG4gIGJvcmRlci1yYWRpdXM6IEByb3VuZGVkQm9yZGVyUmFkaXVzO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5ib3JkZXJlZC5pbWFnZXMgLmltYWdlLFxuLnVpLmJvcmRlcmVkLmltYWdlcyBpbWcsXG4udWkuYm9yZGVyZWQuaW1hZ2VzIHN2Zyxcbi51aS5ib3JkZXJlZC5pbWFnZSBpbWcsXG4udWkuYm9yZGVyZWQuaW1hZ2Ugc3ZnLFxuaW1nLnVpLmJvcmRlcmVkLmltYWdlIHtcbiAgYm9yZGVyOiBAaW1hZ2VCb3JkZXI7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNpcmN1bGFyLmltYWdlcyxcbi51aS5jaXJjdWxhci5pbWFnZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi51aS5jaXJjdWxhci5pbWFnZXMgLmltYWdlLFxuLnVpLmNpcmN1bGFyLmltYWdlLFxuLnVpLmNpcmN1bGFyLmltYWdlcyAuaW1hZ2UgPiAqLFxuLnVpLmNpcmN1bGFyLmltYWdlID4gKiB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xuICAtbW96LWJvcmRlci1yYWRpdXM6IEBjaXJjdWxhclJhZGl1cztcbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmx1aWQuaW1hZ2VzLFxuLnVpLmZsdWlkLmltYWdlLFxuLnVpLmZsdWlkLmltYWdlcyBpbWcsXG4udWkuZmx1aWQuaW1hZ2VzIHN2Zyxcbi51aS5mbHVpZC5pbWFnZSBzdmcsXG4udWkuZmx1aWQuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBdmF0YXJcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5hdmF0YXIuaW1hZ2VzIC5pbWFnZSxcbi51aS5hdmF0YXIuaW1hZ2VzIGltZyxcbi51aS5hdmF0YXIuaW1hZ2VzIHN2Zyxcbi51aS5hdmF0YXIuaW1hZ2UgaW1nLFxuLnVpLmF2YXRhci5pbWFnZSBzdmcsXG4udWkuYXZhdGFyLmltYWdlIHtcbiAgbWFyZ2luLXJpZ2h0OiBAYXZhdGFyTWFyZ2luO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IEBhdmF0YXJTaXplO1xuICBoZWlnaHQ6IEBhdmF0YXJTaXplO1xuXG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xuICAtbW96LWJvcmRlci1yYWRpdXM6IEBjaXJjdWxhclJhZGl1cztcbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTcGFjZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnNwYWNlZC5pbWFnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogQHNwYWNlZERpc3RhbmNlO1xuICBtYXJnaW4tcmlnaHQ6IEBzcGFjZWREaXN0YW5jZTtcbn1cblxuLnVpW2NsYXNzKj1cImxlZnQgc3BhY2VkXCJdLmltYWdlIHtcbiAgbWFyZ2luLWxlZnQ6IEBzcGFjZWREaXN0YW5jZTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG5cbi51aVtjbGFzcyo9XCJyaWdodCBzcGFjZWRcIl0uaW1hZ2Uge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IEBzcGFjZWREaXN0YW5jZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmxvYXRlZC5pbWFnZSxcbi51aS5mbG9hdGVkLmltYWdlcyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IEBmbG9hdGVkSG9yaXpvbnRhbE1hcmdpbjtcbiAgbWFyZ2luLWJvdHRvbTogQGZsb2F0ZWRWZXJ0aWNhbE1hcmdpbjtcbn1cbi51aS5yaWdodC5mbG9hdGVkLmltYWdlcyxcbi51aS5yaWdodC5mbG9hdGVkLmltYWdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogQGZsb2F0ZWRWZXJ0aWNhbE1hcmdpbjtcbiAgbWFyZ2luLWxlZnQ6IEBmbG9hdGVkSG9yaXpvbnRhbE1hcmdpbjtcbn1cblxuLnVpLmZsb2F0ZWQuaW1hZ2VzOmxhc3QtY2hpbGQsXG4udWkuZmxvYXRlZC5pbWFnZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuXG5cbi51aS5jZW50ZXJlZC5pbWFnZXMsXG4udWkuY2VudGVyZWQuaW1hZ2Uge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWluaS5pbWFnZXMgLmltYWdlLFxuLnVpLm1pbmkuaW1hZ2VzIGltZyxcbi51aS5taW5pLmltYWdlcyBzdmcsXG4udWkubWluaS5pbWFnZSB7XG4gIHdpZHRoOiBAbWluaVdpZHRoO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogQG1pbmk7XG59XG4udWkudGlueS5pbWFnZXMgLmltYWdlLFxuLnVpLnRpbnkuaW1hZ2VzIGltZyxcbi51aS50aW55LmltYWdlcyBzdmcsXG4udWkudGlueS5pbWFnZSB7XG4gIHdpZHRoOiBAdGlueVdpZHRoO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogQHRpbnk7XG59XG4udWkuc21hbGwuaW1hZ2VzIC5pbWFnZSxcbi51aS5zbWFsbC5pbWFnZXMgaW1nLFxuLnVpLnNtYWxsLmltYWdlcyBzdmcsXG4udWkuc21hbGwuaW1hZ2Uge1xuICB3aWR0aDogQHNtYWxsV2lkdGg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiBAc21hbGw7XG59XG4udWkubWVkaXVtLmltYWdlcyAuaW1hZ2UsXG4udWkubWVkaXVtLmltYWdlcyBpbWcsXG4udWkubWVkaXVtLmltYWdlcyBzdmcsXG4udWkubWVkaXVtLmltYWdlIHtcbiAgd2lkdGg6IEBtZWRpdW1XaWR0aDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IEBtZWRpdW07XG59XG4udWkubGFyZ2UuaW1hZ2VzIC5pbWFnZSxcbi51aS5sYXJnZS5pbWFnZXMgaW1nLFxuLnVpLmxhcmdlLmltYWdlcyBzdmcsXG4udWkubGFyZ2UuaW1hZ2Uge1xuICB3aWR0aDogQGxhcmdlV2lkdGg7XG4gIGhlaWdodDogYXV0bztcbiAgZm9udC1zaXplOiBAbGFyZ2U7XG59XG4udWkuYmlnLmltYWdlcyAuaW1hZ2UsXG4udWkuYmlnLmltYWdlcyBpbWcsXG4udWkuYmlnLmltYWdlcyBzdmcsXG4udWkuYmlnLmltYWdlIHtcbiAgd2lkdGg6IEBiaWdXaWR0aDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IEBiaWc7XG59XG4udWkuaHVnZS5pbWFnZXMgLmltYWdlLFxuLnVpLmh1Z2UuaW1hZ2VzIGltZyxcbi51aS5odWdlLmltYWdlcyBzdmcsXG4udWkuaHVnZS5pbWFnZSB7XG4gIHdpZHRoOiBAaHVnZVdpZHRoO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogQGh1Z2U7XG59XG4udWkubWFzc2l2ZS5pbWFnZXMgLmltYWdlLFxuLnVpLm1hc3NpdmUuaW1hZ2VzIGltZyxcbi51aS5tYXNzaXZlLmltYWdlcyBzdmcsXG4udWkubWFzc2l2ZS5pbWFnZSB7XG4gIHdpZHRoOiBAbWFzc2l2ZVdpZHRoO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogQG1hc3NpdmU7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgR3JvdXBzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuaW1hZ2VzIHtcbiAgZm9udC1zaXplOiAwZW07XG4gIG1hcmdpbjogMGVtIC1AaW1hZ2VIb3Jpem9udGFsTWFyZ2luIDByZW07XG59XG5cbi51aS5pbWFnZXMgLmltYWdlLFxuLnVpLmltYWdlcyA+IGltZyxcbi51aS5pbWFnZXMgPiBzdmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIEBpbWFnZUhvcml6b250YWxNYXJnaW4gQGltYWdlVmVydGljYWxNYXJnaW47XG59XG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIElucHV0XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ2VsZW1lbnQnO1xuQGVsZW1lbnQgOiAnaW5wdXQnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC13ZWlnaHQ6IEBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGNvbG9yOiBAaW5wdXRDb2xvcjtcbn1cbi51aS5pbnB1dCA+IGlucHV0IHtcbiAgbWFyZ2luOiAwZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZmxleDogMSAwIGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgdGV4dC1hbGlnbjogQHRleHRBbGlnbjtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lSGVpZ2h0O1xuXG4gIGZvbnQtZmFtaWx5OiBAaW5wdXRGb250O1xuICBwYWRkaW5nOiBAcGFkZGluZztcblxuICBiYWNrZ3JvdW5kOiBAYmFja2dyb3VuZDtcbiAgYm9yZGVyOiBAYm9yZGVyO1xuICBjb2xvcjogQGlucHV0Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG4gIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuXG4gIGJveC1zaGFkb3c6IEBib3hTaGFkb3c7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIGJyb3dzZXJzIHJlcXVpcmUgdGhlc2UgcnVsZXMgc2VwYXJhdGUgKi9cblxuLnVpLmlucHV0ID4gaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogQHBsYWNlaG9sZGVyQ29sb3I7XG59XG4udWkuaW5wdXQgPiBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAcGxhY2Vob2xkZXJDb2xvcjtcbn1cbi51aS5pbnB1dCA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAcGxhY2Vob2xkZXJDb2xvcjtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZGlzYWJsZWQuaW5wdXQsXG4udWkuaW5wdXQ6bm90KC5kaXNhYmxlZCkgaW5wdXRbZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogQGRpc2FibGVkT3BhY2l0eTtcbn1cblxuLnVpLmRpc2FibGVkLmlucHV0ID4gaW5wdXQsXG4udWkuaW5wdXQ6bm90KC5kaXNhYmxlZCkgaW5wdXRbZGlzYWJsZWRdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW5wdXQgPiBpbnB1dDphY3RpdmUsXG4udWkuaW5wdXQuZG93biBpbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogQGRvd25Cb3JkZXJDb2xvcjtcbiAgYmFja2dyb3VuZDogQGRvd25CYWNrZ3JvdW5kO1xuICBjb2xvcjogQGRvd25Db2xvcjtcbiAgYm94LXNoYWRvdzogQGRvd25Cb3hTaGFkb3c7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubG9hZGluZy5sb2FkaW5nLmlucHV0ID4gaS5pY29uOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG5cbiAgbWFyZ2luOiBAbG9hZGVyTWFyZ2luO1xuICB3aWR0aDogQGxvYWRlclNpemU7XG4gIGhlaWdodDogQGxvYWRlclNpemU7XG5cbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xuICBib3JkZXI6IEBsb2FkZXJMaW5lV2lkdGggc29saWQgQGxvYWRlckZpbGxDb2xvcjtcbn1cbi51aS5sb2FkaW5nLmxvYWRpbmcuaW5wdXQgPiBpLmljb246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuXG4gIG1hcmdpbjogQGxvYWRlck1hcmdpbjtcbiAgd2lkdGg6IEBsb2FkZXJTaXplO1xuICBoZWlnaHQ6IEBsb2FkZXJTaXplO1xuXG4gIGFuaW1hdGlvbjogYnV0dG9uLXNwaW4gQGxvYWRlclNwZWVkIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG5cbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xuXG4gIGJvcmRlci1jb2xvcjogQGxvYWRlckxpbmVDb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiBAbG9hZGVyTGluZVdpZHRoO1xuXG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW5wdXQuZm9jdXMgPiBpbnB1dCxcbi51aS5pbnB1dCA+IGlucHV0OmZvY3VzICB7XG4gIGJvcmRlci1jb2xvcjogQGZvY3VzQm9yZGVyQ29sb3I7XG4gIGJhY2tncm91bmQ6IEBmb2N1c0JhY2tncm91bmQ7XG4gIGNvbG9yOiBAZm9jdXNDb2xvcjtcbiAgYm94LXNoYWRvdzogQGZvY3VzQm94U2hhZG93O1xufVxuLnVpLmlucHV0LmZvY3VzID4gaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4udWkuaW5wdXQgPiBpbnB1dDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAcGxhY2Vob2xkZXJGb2N1c0NvbG9yO1xufVxuLnVpLmlucHV0LmZvY3VzID4gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsXG4udWkuaW5wdXQgPiBpbnB1dDpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAcGxhY2Vob2xkZXJGb2N1c0NvbG9yO1xufVxuLnVpLmlucHV0LmZvY3VzID4gaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxuLnVpLmlucHV0ID4gaW5wdXQ6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IEBwbGFjZWhvbGRlckZvY3VzQ29sb3I7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEVycm9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW5wdXQuZXJyb3IgPiBpbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBlcnJvckJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGVycm9yQm9yZGVyO1xuICBjb2xvcjogQGVycm9yQ29sb3I7XG4gIGJveC1zaGFkb3c6IEBlcnJvckJveFNoYWRvdztcbn1cblxuLyogRXJyb3IgUGxhY2Vob2xkZXIgKi9cbi51aS5pbnB1dC5lcnJvciA+IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IEBwbGFjZWhvbGRlckVycm9yQ29sb3I7XG59XG4udWkuaW5wdXQuZXJyb3IgPiBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAcGxhY2Vob2xkZXJFcnJvckNvbG9yO1xufVxuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IEBwbGFjZWhvbGRlckVycm9yQ29sb3IgIWltcG9ydGFudDtcbn1cblxuLyogRm9jdXNlZCBFcnJvciBQbGFjZWhvbGRlciAqL1xuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogQHBsYWNlaG9sZGVyRXJyb3JGb2N1c0NvbG9yO1xufVxuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogQHBsYWNlaG9sZGVyRXJyb3JGb2N1c0NvbG9yO1xufVxuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IEBwbGFjZWhvbGRlckVycm9yRm9jdXNDb2xvciAhaW1wb3J0YW50O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBUcmFuc3BhcmVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4udWkudHJhbnNwYXJlbnQuaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRyYW5zcGFyZW50IEljb24gKi9cbi51aS50cmFuc3BhcmVudC5pY29uLmlucHV0ID4gaS5pY29uIHtcbiAgd2lkdGg6IEB0cmFuc3BhcmVudEljb25XaWR0aDtcbn1cbi51aS50cmFuc3BhcmVudC5pY29uLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiBAdHJhbnNwYXJlbnRJY29uTWFyZ2luICFpbXBvcnRhbnQ7XG59XG4udWkudHJhbnNwYXJlbnRbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IEB0cmFuc3BhcmVudEljb25NYXJnaW4gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRyYW5zcGFyZW50IEludmVydGVkICovXG4udWkudHJhbnNwYXJlbnQuaW52ZXJ0ZWQuaW5wdXQge1xuICBjb2xvcjogQHRyYW5zcGFyZW50SW52ZXJ0ZWRDb2xvcjtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0IHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IEB0cmFuc3BhcmVudEludmVydGVkUGxhY2Vob2xkZXJDb2xvcjtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IEB0cmFuc3BhcmVudEludmVydGVkUGxhY2Vob2xkZXJDb2xvcjtcbn1cbi51aS50cmFuc3BhcmVudC5pbnZlcnRlZC5pbnB1dCA+IGlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAdHJhbnNwYXJlbnRJbnZlcnRlZFBsYWNlaG9sZGVyQ29sb3I7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmljb24uaW5wdXQgPiBpLmljb24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbjogMGVtO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgd2lkdGg6IEBpY29uV2lkdGg7XG4gIG9wYWNpdHk6IEBpY29uT3BhY2l0eTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwZW07XG4gIHRyYW5zaXRpb246IEBpY29uVHJhbnNpdGlvbjtcbn1cbi51aS5pY29uLmlucHV0ID4gaS5pY29uOm5vdCgubGluaykge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi51aS5pY29uLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLXJpZ2h0OiBAaWNvbk1hcmdpbiAhaW1wb3J0YW50O1xufVxuXG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbjpiZWZvcmUsXG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbjphZnRlciB7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IEBpY29uT2Zmc2V0O1xufVxuLnVpLmljb24uaW5wdXQgPiBpLmxpbmsuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS5pY29uLmlucHV0ID4gaS5jaXJjdWxhci5pY29uIHtcbiAgdG9wOiBAY2lyY3VsYXJJY29uVmVydGljYWxPZmZzZXQ7XG4gIHJpZ2h0OiBAY2lyY3VsYXJJY29uSG9yaXpvbnRhbE9mZnNldDtcbn1cblxuLyogTGVmdCBJY29uIElucHV0ICovXG4udWlbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaS5pY29uIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IEBib3JkZXJXaWR0aDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cyAwZW0gMGVtIEBib3JkZXJSYWRpdXM7XG59XG4udWlbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaS5jaXJjdWxhci5pY29uIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IEBjaXJjdWxhckljb25Ib3Jpem9udGFsT2Zmc2V0O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgaWNvblwiXS5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiBAaWNvbk1hcmdpbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiBAaG9yaXpvbnRhbFBhZGRpbmcgIWltcG9ydGFudDtcbn1cblxuLyogRm9jdXMgKi9cbi51aS5pY29uLmlucHV0ID4gaW5wdXQ6Zm9jdXMgfiBpLmljb24ge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExhYmVsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEFkamFjZW50IExhYmVsICovXG4udWkubGFiZWxlZC5pbnB1dCA+IC5sYWJlbCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlTWVkaXVtO1xufVxuLnVpLmxhYmVsZWQuaW5wdXQgPiAubGFiZWw6bm90KC5jb3JuZXIpIHtcbiAgcGFkZGluZy10b3A6IEB2ZXJ0aWNhbFBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiBAdmVydGljYWxQYWRkaW5nO1xufVxuXG4vKiBSZWd1bGFyIExhYmVsIG9uIExlZnQgKi9cbi51aS5sYWJlbGVkLmlucHV0Om5vdChbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0pIC5sYWJlbDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG59XG4udWkubGFiZWxlZC5pbnB1dDpub3QoW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdKSAubGFiZWw6Zmlyc3QtY2hpbGQgKyBpbnB1dCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udWkubGFiZWxlZC5pbnB1dDpub3QoW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdKSAubGFiZWw6Zmlyc3QtY2hpbGQgKyBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBAZm9jdXNCb3JkZXJDb2xvcjtcbn1cblxuLyogUmVndWxhciBMYWJlbCBvbiBSaWdodCAqL1xuLnVpW2NsYXNzKj1cInJpZ2h0IGxhYmVsZWRcIl0uaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pbnB1dCA+IGlucHV0ICsgLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG59XG5cbi51aVtjbGFzcyo9XCJyaWdodCBsYWJlbGVkXCJdLmlucHV0ID4gaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItcmlnaHQtY29sb3I6IEBmb2N1c0JvcmRlckNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvcm5lciBMYWJlbCAqL1xuLnVpLmxhYmVsZWQuaW5wdXQgLmNvcm5lci5sYWJlbCB7XG4gIHRvcDogQGxhYmVsQ29ybmVyVG9wO1xuICByaWdodDogQGxhYmVsQ29ybmVyUmlnaHQ7XG4gIGZvbnQtc2l6ZTogQGxhYmVsQ29ybmVyU2l6ZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIEBib3JkZXJSYWRpdXMgMGVtIDBlbTtcbn1cblxuLyogU3BhY2luZyB3aXRoIGNvcm5lciBsYWJlbCAqL1xuLnVpW2NsYXNzKj1cImNvcm5lciBsYWJlbGVkXCJdOm5vdChbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXSkubGFiZWxlZC5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogQGxhYmVsZWRNYXJnaW4gIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJjb3JuZXIgbGFiZWxlZFwiXS5pY29uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXSkgPiBpbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IEBsYWJlbGVkSWNvbklucHV0TWFyZ2luICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0pID4gLmljb24ge1xuICBtYXJnaW4tcmlnaHQ6IEBsYWJlbGVkSWNvbk1hcmdpbjtcbn1cblxuLyogTGVmdCBMYWJlbGVkICovXG4udWlbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXS5sYWJlbGVkLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IEBsYWJlbGVkTWFyZ2luICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXS5pY29uLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IEBsYWJlbGVkSWNvbklucHV0TWFyZ2luICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXS5pY29uLmlucHV0ID4gLmljb24ge1xuICBtYXJnaW4tbGVmdDogQGxhYmVsZWRJY29uTWFyZ2luO1xufVxuXG4vKiBDb3JuZXIgTGFiZWwgUG9zaXRpb24gICovXG4udWkuaW5wdXQgPiAudWkuY29ybmVyLmxhYmVsIHtcbiAgdG9wOiBAYm9yZGVyV2lkdGg7XG4gIHJpZ2h0OiBAYm9yZGVyV2lkdGg7XG59XG4udWkuaW5wdXQgPiAudWkubGVmdC5jb3JuZXIubGFiZWwge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogQGJvcmRlcldpZHRoO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbixcbi51aS5hY3Rpb24uaW5wdXQgPiAuYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuLnVpLmFjdGlvbi5pbnB1dCA+IC5idXR0b24sXG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IEB2ZXJ0aWNhbFBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiBAdmVydGljYWxQYWRkaW5nO1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEJ1dHRvbiBvbiBSaWdodCAqL1xuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IGlucHV0IHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuZHJvcGRvd246bm90KDpmaXJzdC1jaGlsZCksXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSxcbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuYnV0dG9uczpub3QoOmZpcnN0LWNoaWxkKSA+IC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmRyb3Bkb3duOmxhc3QtY2hpbGQsXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmJ1dHRvbjpsYXN0LWNoaWxkLFxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5idXR0b25zOmxhc3QtY2hpbGQgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4IEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwcHg7XG59XG5cbi8qIElucHV0IEZvY3VzICovXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItcmlnaHQtY29sb3I6IEBmb2N1c0JvcmRlckNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qIEJ1dHRvbiBvbiBMZWZ0ICovXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiBpbnB1dCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuZHJvcGRvd24sXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuYnV0dG9uLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmRyb3Bkb3duOmZpcnN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbjpmaXJzdC1jaGlsZCxcbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IC5idXR0b25zOmZpcnN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXMgMHB4IDBweCBAYm9yZGVyUmFkaXVzO1xufVxuLyogSW5wdXQgRm9jdXMgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IEBmb2N1c0JvcmRlckNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogU3RhbmRhcmQgKi9cbi51aS5pbnZlcnRlZC5pbnB1dCA+IGlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmx1aWQuaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnVpLmZsdWlkLmlucHV0ID4gaW5wdXQge1xuICB3aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLm1pbmkuaW5wdXQge1xuICBmb250LXNpemU6IEByZWxhdGl2ZU1pbmk7XG59XG4udWkuc21hbGwuaW5wdXQge1xuICBmb250LXNpemU6IEByZWxhdGl2ZVNtYWxsO1xufVxuLnVpLmlucHV0IHtcbiAgZm9udC1zaXplOiBAcmVsYXRpdmVNZWRpdW07XG59XG4udWkubGFyZ2UuaW5wdXQge1xuICBmb250LXNpemU6IEByZWxhdGl2ZUxhcmdlO1xufVxuLnVpLmJpZy5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlQmlnO1xufVxuLnVpLmh1Z2UuaW5wdXQge1xuICBmb250LXNpemU6IEByZWxhdGl2ZUh1Z2U7XG59XG4udWkubWFzc2l2ZS5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlTWFzc2l2ZTtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBpdCBpcyBoYXJkY29kZWQgYmVjYXVzZSB0aGUgc2VhcmNoYmFyIGlzIHdyYXBwZWQgaW4gPGZvcm0+XG4gICAgYW5kIGl0IGNhbid0IGJlIHdyYXBwZWQgaW4gaW52ZW5pby1zZWFyY2gtdWlcbiovXG4jaGVhZGVyLXNlYXJjaC1iYXIge1xuICAudWkuaW5wdXQge1xuICAgIHdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMzhweCAhaW1wb3J0YW50O1xuXG4gICAgJj5pbnB1dCB7XG4gICAgICB3aWR0aDogMjAwcHggIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogMzhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICB9XG59XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBMYWJlbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ2VsZW1lbnQnO1xuQGVsZW1lbnQgOiAnbGFiZWwnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBMYWJlbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IEB2ZXJ0aWNhbEFsaWduO1xuXG4gIG1hcmdpbjogQHZlcnRpY2FsTWFyZ2luIEBob3Jpem9udGFsTWFyZ2luO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kQ29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IEBiYWNrZ3JvdW5kSW1hZ2U7XG4gIHBhZGRpbmc6IEB2ZXJ0aWNhbFBhZGRpbmcgQGhvcml6b250YWxQYWRkaW5nO1xuICBjb2xvcjogQGNvbG9yO1xuXG4gIHRleHQtdHJhbnNmb3JtOiBAdGV4dFRyYW5zZm9ybTtcbiAgZm9udC13ZWlnaHQ6IEBmb250V2VpZ2h0O1xuXG4gIGJvcmRlcjogQGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cztcbiAgdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG59XG5cbi51aS5sYWJlbDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkubGFiZWw6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuXG4vKiBMaW5rICovXG5hLnVpLmxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKiBJbnNpZGUgTGluayAqL1xuLnVpLmxhYmVsID4gYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IEBsaW5rT3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogQGxpbmtUcmFuc2l0aW9uO1xufVxuLnVpLmxhYmVsID4gYTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIEltYWdlICovXG4udWkubGFiZWwgPiBpbWcge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBoZWlnaHQ6IEBpbWFnZUhlaWdodCAhaW1wb3J0YW50O1xufVxuXG4vKiBJY29uICovXG4udWkubGFiZWwgPiAuaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbSBAaWNvbkRpc3RhbmNlIDBlbSAwZW07XG59XG5cbi8qIERldGFpbCAqL1xuLnVpLmxhYmVsID4gLmRldGFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZm9udC13ZWlnaHQ6IEBkZXRhaWxGb250V2VpZ2h0O1xuICBtYXJnaW4tbGVmdDogQGRldGFpbE1hcmdpbjtcbiAgb3BhY2l0eTogQGRldGFpbE9wYWNpdHk7XG59XG4udWkubGFiZWwgPiAuZGV0YWlsIC5pY29uIHtcbiAgbWFyZ2luOiAwZW0gQGRldGFpbEljb25EaXN0YW5jZSAwZW0gMGVtO1xufVxuXG5cbi8qIFJlbW92YWJsZSBsYWJlbCAqL1xuLnVpLmxhYmVsID4gLmNsb3NlLmljb24sXG4udWkubGFiZWwgPiAuZGVsZXRlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogQGRlbGV0ZU1hcmdpbjtcbiAgZm9udC1zaXplOiBAZGVsZXRlU2l6ZTtcbiAgb3BhY2l0eTogQGRlbGV0ZU9wYWNpdHk7XG4gIHRyYW5zaXRpb246IEBkZWxldGVUcmFuc2l0aW9uO1xufVxuLnVpLmxhYmVsID4gLmRlbGV0ZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmxhYmVscyA+IC5sYWJlbCB7XG4gIG1hcmdpbjogMGVtIEBncm91cEhvcml6b250YWxNYXJnaW4gQGdyb3VwVmVydGljYWxNYXJnaW4gMGVtO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5oZWFkZXIgPiAudWkubGFiZWwge1xuICBtYXJnaW4tdG9wOiBAbGluZUhlaWdodE9mZnNldDtcbn1cblxuXG4vKiBSZW1vdmUgYm9yZGVyIHJhZGl1cyBvbiBhdHRhY2hlZCBzZWdtZW50ICovXG4udWkuYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AubGVmdC5hdHRhY2hlZC5sYWJlbCxcbi51aS5ib3R0b20uYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AubGVmdC5hdHRhY2hlZC5sYWJlbCAge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLnVpLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkudG9wLnJpZ2h0LmF0dGFjaGVkLmxhYmVsLFxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLnRvcC5yaWdodC5hdHRhY2hlZC5sYWJlbCAge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi51aS50b3AuYXR0YWNoZWQuc2VnbWVudCA+IC51aS5ib3R0b20ubGVmdC5hdHRhY2hlZC5sYWJlbCAge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLnVpLnRvcC5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLmJvdHRvbS5yaWdodC5hdHRhY2hlZC5sYWJlbCAge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLyogUGFkZGluZyBvbiBuZXh0IGNvbnRlbnQgYWZ0ZXIgYSBsYWJlbCAqL1xuLnVpLnRvcC5hdHRhY2hlZC5sYWJlbDpmaXJzdC1jaGlsZCArIDpub3QoLmF0dGFjaGVkKSxcbi51aS50b3AuYXR0YWNoZWQubGFiZWwgKyBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSArICoge1xuICBtYXJnaW4tdG9wOiBAYXR0YWNoZWRTZWdtZW50UGFkZGluZyAhaW1wb3J0YW50O1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5sYWJlbDpmaXJzdC1jaGlsZCB+IDpsYXN0LWNoaWxkOm5vdCguYXR0YWNoZWQpIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiBAYXR0YWNoZWRTZWdtZW50UGFkZGluZyAhaW1wb3J0YW50O1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5pbWFnZS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBtYXgtd2lkdGg6IDk5OTlweDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICBiYWNrZ3JvdW5kOiBAaW1hZ2VMYWJlbEJhY2tncm91bmQ7XG4gIHBhZGRpbmc6IEBpbWFnZUxhYmVsUGFkZGluZztcbiAgYm9yZGVyLXJhZGl1czogQGltYWdlTGFiZWxCb3JkZXJSYWRpdXM7XG4gIGJveC1zaGFkb3c6IEBpbWFnZUxhYmVsQm94U2hhZG93O1xufVxuXG4udWkuaW1hZ2UubGFiZWwgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gIGhlaWdodDogQGltYWdlTGFiZWxJbWFnZUhlaWdodDtcbiAgbWFyZ2luOiBAaW1hZ2VMYWJlbEltYWdlTWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiBAaW1hZ2VMYWJlbEltYWdlQm9yZGVyUmFkaXVzO1xufVxuXG4udWkuaW1hZ2UubGFiZWwgLmRldGFpbCB7XG4gIGJhY2tncm91bmQ6IEBpbWFnZUxhYmVsRGV0YWlsQmFja2dyb3VuZDtcbiAgbWFyZ2luOiBAaW1hZ2VMYWJlbERldGFpbE1hcmdpbjtcbiAgcGFkZGluZzogQGltYWdlTGFiZWxEZXRhaWxQYWRkaW5nO1xuICBib3JkZXItcmFkaXVzOiAwZW0gQGltYWdlTGFiZWxCb3JkZXJSYWRpdXMgQGltYWdlTGFiZWxCb3JkZXJSYWRpdXMgMGVtO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFRhZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkudGFnLmxhYmVscyAubGFiZWwsXG4udWkudGFnLmxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IEB0YWdIb3Jpem9udGFsUGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogQHRhZ0hvcml6b250YWxQYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IDBlbSBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXMgMGVtO1xuICB0cmFuc2l0aW9uOiBAdGFnVHJhbnNpdGlvbjtcbn1cbi51aS50YWcubGFiZWxzIC5sYWJlbDpiZWZvcmUsXG4udWkudGFnLmxhYmVsOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSkgcm90YXRlKC00NWRlZyk7XG5cbiAgICB0b3A6IEB0YWdUcmlhbmdsZVRvcE9mZnNldDtcbiAgICByaWdodDogQHRhZ1RyaWFuZ2xlUmlnaHRPZmZzZXQ7XG4gICAgY29udGVudDogJyc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IEB0YWdUcmlhbmdsZUJhY2tncm91bmRJbWFnZTtcblxuICAgIHdpZHRoOiBAdGFnVHJpYW5nbGVTaXplO1xuICAgIGhlaWdodDogQHRhZ1RyaWFuZ2xlU2l6ZTtcbiAgICB0cmFuc2l0aW9uOiBAdGFnVHJhbnNpdGlvbjtcbn1cblxuXG4udWkudGFnLmxhYmVscyAubGFiZWw6YWZ0ZXIsXG4udWkudGFnLmxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IC0oQHRhZ0NpcmNsZVNpemUgLyAyKTtcblxuICBtYXJnaW4tdG9wOiAtKEB0YWdDaXJjbGVTaXplIC8gMik7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0YWdDaXJjbGVDb2xvciAhaW1wb3J0YW50O1xuICB3aWR0aDogQHRhZ0NpcmNsZVNpemU7XG4gIGhlaWdodDogQHRhZ0NpcmNsZVNpemU7XG5cbiAgYm94LXNoYWRvdzogQHRhZ0NpcmNsZUJveFNoYWRvdztcbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENvcm5lciBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY29ybmVyLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBlbTtcbiAgcmlnaHQ6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGJvcmRlci1jb2xvcjogQGJhY2tncm91bmRDb2xvcjtcblxuICB3aWR0aDogQGNvcm5lclRyaWFuZ2xlU2l6ZTtcbiAgaGVpZ2h0OiBAY29ybmVyVHJpYW5nbGVTaXplO1xuICB6LWluZGV4OiBAY29ybmVyVHJpYW5nbGVaSW5kZXg7XG4gIHRyYW5zaXRpb246IEBjb3JuZXJUcmlhbmdsZVRyYW5zaXRpb247XG59XG5cbi8qIEljb24gTGFiZWwgKi9cbi51aS5jb3JuZXIubGFiZWx7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWkuY29ybmVyLmxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiBcIlwiO1xuICByaWdodDogMGVtO1xuICB0b3A6IDBlbTtcbiAgei1pbmRleDogLTE7XG5cbiAgd2lkdGg6IDBlbTtcbiAgaGVpZ2h0OiAwZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbiAgYm9yZGVyLXRvcDogMGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IEBjb3JuZXJUcmlhbmdsZVNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IEBjb3JuZXJUcmlhbmdsZVNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAwZW0gc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiBAY29ybmVyVHJpYW5nbGVUcmFuc2l0aW9uO1xufVxuXG4udWkuY29ybmVyLmxhYmVsIC5pY29uIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogQGNvcm5lckljb25Ub3BPZmZzZXQ7XG4gIGxlZnQ6IEBjb3JuZXJJY29uTGVmdE9mZnNldDtcbiAgZm9udC1zaXplOiBAY29ybmVySWNvblNpemU7XG4gIG1hcmdpbjogMGVtO1xufVxuXG4vKiBMZWZ0IENvcm5lciAqL1xuLnVpLmxlZnQuY29ybmVyLmxhYmVsLFxuLnVpLmxlZnQuY29ybmVyLmxhYmVsOmFmdGVyIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDBlbTtcbn1cbi51aS5sZWZ0LmNvcm5lci5sYWJlbDphZnRlciB7XG4gIGJvcmRlci10b3A6IEBjb3JuZXJUcmlhbmdsZVNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogQGNvcm5lclRyaWFuZ2xlU2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogMGVtIHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXQ7XG59XG4udWkubGVmdC5jb3JuZXIubGFiZWwgLmljb24ge1xuICBsZWZ0OiAtQGNvcm5lckljb25MZWZ0T2Zmc2V0O1xufVxuXG4vKiBTZWdtZW50ICovXG4udWkuc2VnbWVudCA+IC51aS5jb3JuZXIubGFiZWwge1xuICB0b3A6IC0xcHg7XG4gIHJpZ2h0OiAtMXB4O1xufVxuLnVpLnNlZ21lbnQgPiAudWkubGVmdC5jb3JuZXIubGFiZWwge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTFweDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmliYm9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5yaWJib24ubGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMGVtO1xuICBtaW4td2lkdGg6IG1heC1jb250ZW50O1xuICBib3JkZXItcmFkaXVzOiAwZW0gQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzIDBlbTtcbiAgYm9yZGVyLWNvbG9yOiBAcmliYm9uU2hhZG93Q29sb3I7XG59XG5cbi51aS5yaWJib24ubGFiZWw6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuXG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwZW0gQHJpYmJvblRyaWFuZ2xlU2l6ZSBAcmliYm9uVHJpYW5nbGVTaXplIDBlbTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0O1xuXG4gIHdpZHRoOiAwZW07XG4gIGhlaWdodDogMGVtO1xufVxuLyogUG9zaXRpb25pbmcgKi9cbi51aS5yaWJib24ubGFiZWwge1xuICBsZWZ0OiBAcmliYm9uT2Zmc2V0O1xuICBtYXJnaW4tcmlnaHQ6IC1AcmliYm9uVHJpYW5nbGVTaXplO1xuICBwYWRkaW5nLWxlZnQ6IEByaWJib25EaXN0YW5jZTtcbiAgcGFkZGluZy1yaWdodDogQHJpYmJvblRyaWFuZ2xlU2l6ZTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICBsZWZ0OiBAcmlnaHRSaWJib25PZmZzZXQ7XG4gIHBhZGRpbmctbGVmdDogQHJpYmJvblRyaWFuZ2xlU2l6ZTtcbiAgcGFkZGluZy1yaWdodDogQHJpYmJvbkRpc3RhbmNlO1xufVxuXG4vKiBSaWdodCBSaWJib24gKi9cbi51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzIDBlbSAwZW0gQGJvcmRlclJhZGl1cztcbn1cbi51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWw6YWZ0ZXIge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMCU7XG5cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiBAcmliYm9uVHJpYW5nbGVTaXplIEByaWJib25UcmlhbmdsZVNpemUgMGVtIDBlbTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcbn1cblxuLyogSW5zaWRlIFRhYmxlICovXG4udWkuaW1hZ2UgPiAucmliYm9uLmxhYmVsLFxuLnVpLmNhcmQgLmltYWdlID4gLnJpYmJvbi5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBAcmliYm9uSW1hZ2VUb3BEaXN0YW5jZTtcbn1cbi51aS5jYXJkIC5pbWFnZSA+IC51aS5yaWJib24ubGFiZWwsXG4udWkuaW1hZ2UgPiAudWkucmliYm9uLmxhYmVsIHtcbiAgbGVmdDogQHJpYmJvbkltYWdlT2Zmc2V0O1xufVxuLnVpLmNhcmQgLmltYWdlID4gLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCxcbi51aS5pbWFnZSA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICBsZWZ0OiBAcmlnaHRSaWJib25JbWFnZU9mZnNldDtcbiAgcGFkZGluZy1sZWZ0OiBAaG9yaXpvbnRhbFBhZGRpbmc7XG59XG5cbi8qIEluc2lkZSBUYWJsZSAqL1xuLnVpLnRhYmxlIHRkID4gLnVpLnJpYmJvbi5sYWJlbCB7XG4gIGxlZnQ6IEByaWJib25UYWJsZU9mZnNldDtcbn1cbi51aS50YWJsZSB0ZCA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICBsZWZ0OiBAcmlnaHRSaWJib25UYWJsZU9mZnNldDtcbiAgcGFkZGluZy1sZWZ0OiBAaG9yaXpvbnRhbFBhZGRpbmc7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmxhYmVsLFxuLnVpLmF0dGFjaGVkLmxhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwZW07XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwZW07XG5cbiAgcGFkZGluZzogQGF0dGFjaGVkVmVydGljYWxQYWRkaW5nIEBhdHRhY2hlZEhvcml6b250YWxQYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBhdHRhY2hlZENvcm5lckJvcmRlclJhZGl1cyBAYXR0YWNoZWRDb3JuZXJCb3JkZXJSYWRpdXMgMGVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ubGFiZWwge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIEBhdHRhY2hlZENvcm5lckJvcmRlclJhZGl1cyBAYXR0YWNoZWRDb3JuZXJCb3JkZXJSYWRpdXM7XG59XG5cbi51aVtjbGFzcyo9XCJ0b3AgbGVmdCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogQGF0dGFjaGVkQ29ybmVyQm9yZGVyUmFkaXVzIDBlbSBAYXR0YWNoZWRCb3JkZXJSYWRpdXMgMGVtO1xufVxuXG4udWlbY2xhc3MqPVwidG9wIHJpZ2h0IGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSBAYXR0YWNoZWRDb3JuZXJCb3JkZXJSYWRpdXMgMGVtIEBhdHRhY2hlZEJvcmRlclJhZGl1cztcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gbGVmdCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvO1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gQGF0dGFjaGVkQm9yZGVyUmFkaXVzIDBlbSBAYXR0YWNoZWRDb3JuZXJCb3JkZXJSYWRpdXM7XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIHJpZ2h0IGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBlbTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IEBhdHRhY2hlZEJvcmRlclJhZGl1cyAwZW0gQGF0dGFjaGVkQ29ybmVyQm9yZGVyUmFkaXVzIDBlbTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubGFiZWwuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5hLnVpLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxhYmVsSG92ZXJCYWNrZ3JvdW5kQ29sb3I7XG4gIGJvcmRlci1jb2xvcjogQGxhYmVsSG92ZXJCYWNrZ3JvdW5kQ29sb3I7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogQGxhYmVsSG92ZXJCYWNrZ3JvdW5kSW1hZ2U7XG4gIGNvbG9yOiBAbGFiZWxIb3ZlclRleHRDb2xvcjtcbn1cbi51aS5sYWJlbHMgYS5sYWJlbDpob3ZlcjpiZWZvcmUsXG5hLnVpLmxhYmVsOmhvdmVyOmJlZm9yZSB7XG4gIGNvbG9yOiBAbGFiZWxIb3ZlclRleHRDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYWN0aXZlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxhYmVsQWN0aXZlQmFja2dyb3VuZENvbG9yO1xuICBib3JkZXItY29sb3I6IEBsYWJlbEFjdGl2ZUJhY2tncm91bmRDb2xvcjtcblxuICBiYWNrZ3JvdW5kLWltYWdlOiBAbGFiZWxBY3RpdmVCYWNrZ3JvdW5kSW1hZ2U7XG4gIGNvbG9yOiBAbGFiZWxBY3RpdmVUZXh0Q29sb3I7XG59XG4udWkuYWN0aXZlLmxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsYWJlbEFjdGl2ZUJhY2tncm91bmRDb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogQGxhYmVsQWN0aXZlQmFja2dyb3VuZEltYWdlO1xuICBjb2xvcjogQGxhYmVsQWN0aXZlVGV4dENvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmEudWkubGFiZWxzIC5hY3RpdmUubGFiZWw6aG92ZXIsXG5hLnVpLmFjdGl2ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsYWJlbEFjdGl2ZUhvdmVyQmFja2dyb3VuZENvbG9yO1xuICBib3JkZXItY29sb3I6IEBsYWJlbEFjdGl2ZUhvdmVyQmFja2dyb3VuZENvbG9yO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IEBsYWJlbEFjdGl2ZUhvdmVyQmFja2dyb3VuZEltYWdlO1xuICBjb2xvcjogQGxhYmVsQWN0aXZlSG92ZXJUZXh0Q29sb3I7XG59XG4udWkubGFiZWxzIGEuYWN0aXZlLmxhYmVsOkFjdGl2ZUhvdmVyOmJlZm9yZSxcbmEudWkuYWN0aXZlLmxhYmVsOkFjdGl2ZUhvdmVyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsYWJlbEFjdGl2ZUhvdmVyQmFja2dyb3VuZENvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBAbGFiZWxBY3RpdmVIb3ZlckJhY2tncm91bmRJbWFnZTtcbiAgY29sb3I6IEBsYWJlbEFjdGl2ZUhvdmVyVGV4dENvbG9yO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubGFiZWxzLnZpc2libGUgLmxhYmVsLFxuLnVpLmxhYmVsLnZpc2libGU6bm90KC5kcm9wZG93bikge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBIaWRkZW5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmxhYmVscy5oaWRkZW4gLmxhYmVsLFxuLnVpLmxhYmVsLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLSBSZWQgLS0tKi9cbi51aS5yZWQubGFiZWxzIC5sYWJlbCxcbi51aS5yZWQubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmVkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQHJlZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHJlZFRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnJlZC5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5yZWQubGFiZWw6aG92ZXJ7XG4gIGJhY2tncm91bmQtY29sb3I6IEByZWRIb3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEByZWRIb3ZlciAhaW1wb3J0YW50O1xuICBjb2xvcjogQHJlZEhvdmVyVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5yZWQuY29ybmVyLmxhYmVsLFxuLnVpLnJlZC5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkucmVkLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogQHJlZFJpYmJvblNoYWRvdyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5yZWQubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBAYmFzaWNCYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcmVkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQHJlZCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMucmVkLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcmVkSG92ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAcmVkSG92ZXIgIWltcG9ydGFudDtcbn1cblxuLyotLS0gT3JhbmdlIC0tLSovXG4udWkub3JhbmdlLmxhYmVscyAubGFiZWwsXG4udWkub3JhbmdlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG9yYW5nZSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBvcmFuZ2UgIWltcG9ydGFudDtcbiAgY29sb3I6IEBvcmFuZ2VUZXh0Q29sb3IgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5vcmFuZ2UubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkub3JhbmdlLmxhYmVsOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAb3JhbmdlSG92ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAb3JhbmdlSG92ZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IEBvcmFuZ2VIb3ZlclRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkub3JhbmdlLmNvcm5lci5sYWJlbCxcbi51aS5vcmFuZ2UuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLm9yYW5nZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6IEBvcmFuZ2VSaWJib25TaGFkb3cgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMub3JhbmdlLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQG9yYW5nZSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBvcmFuZ2UgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLm9yYW5nZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQG9yYW5nZUhvdmVyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQG9yYW5nZUhvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIFllbGxvdyAtLS0qL1xuLnVpLnllbGxvdy5sYWJlbHMgLmxhYmVsLFxuLnVpLnllbGxvdy5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB5ZWxsb3cgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAeWVsbG93ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAeWVsbG93VGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkueWVsbG93LmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnllbGxvdy5sYWJlbDpob3ZlcntcbiAgYmFja2dyb3VuZC1jb2xvcjogQHllbGxvd0hvdmVyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQHllbGxvd0hvdmVyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAeWVsbG93SG92ZXJUZXh0Q29sb3IgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnllbGxvdy5jb3JuZXIubGFiZWwsXG4udWkueWVsbG93LmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS55ZWxsb3cucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiBAeWVsbG93UmliYm9uU2hhZG93ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnllbGxvdy5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IEBiYXNpY0JhY2tncm91bmQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB5ZWxsb3cgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAeWVsbG93ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy55ZWxsb3cubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEB5ZWxsb3dIb3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEB5ZWxsb3dIb3ZlciAhaW1wb3J0YW50O1xufVxuXG4vKi0tLSBPbGl2ZSAtLS0qL1xuLnVpLm9saXZlLmxhYmVscyAubGFiZWwsXG4udWkub2xpdmUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAb2xpdmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAb2xpdmUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBvbGl2ZVRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLm9saXZlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLm9saXZlLmxhYmVsOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAb2xpdmVIb3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBvbGl2ZUhvdmVyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAb2xpdmVIb3ZlclRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkub2xpdmUuY29ybmVyLmxhYmVsLFxuLnVpLm9saXZlLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5vbGl2ZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6IEBncmVlblJpYmJvblNoYWRvdyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5vbGl2ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IEBiYXNpY0JhY2tncm91bmQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBvbGl2ZSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBvbGl2ZSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9saXZlLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5vbGl2ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQG9saXZlSG92ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAb2xpdmVIb3ZlciAhaW1wb3J0YW50O1xufVxuXG4vKi0tLSBHcmVlbiAtLS0qL1xuLnVpLmdyZWVuLmxhYmVscyAubGFiZWwsXG4udWkuZ3JlZW4ubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JlZW4gIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAZ3JlZW4gIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmVlblRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLmdyZWVuLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmdyZWVuLmxhYmVsOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JlZW5Ib3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBncmVlbkhvdmVyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAZ3JlZW5Ib3ZlclRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuZ3JlZW4uY29ybmVyLmxhYmVsLFxuLnVpLmdyZWVuLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5ncmVlbi5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6IEBncmVlblJpYmJvblNoYWRvdyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmVlbi5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IEBiYXNpY0JhY2tncm91bmQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmVlbiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBncmVlbiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZWVuLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5ncmVlbi5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQGdyZWVuSG92ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAZ3JlZW5Ib3ZlciAhaW1wb3J0YW50O1xufVxuXG4vKi0tLSBUZWFsIC0tLSovXG4udWkudGVhbC5sYWJlbHMgLmxhYmVsLFxuLnVpLnRlYWwubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGVhbCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEB0ZWFsICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAdGVhbFRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnRlYWwubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkudGVhbC5sYWJlbDpob3ZlcntcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRlYWxIb3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEB0ZWFsSG92ZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IEB0ZWFsSG92ZXJUZXh0Q29sb3IgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnRlYWwuY29ybmVyLmxhYmVsLFxuLnVpLnRlYWwuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnRlYWwucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiBAdGVhbFJpYmJvblNoYWRvdyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy50ZWFsLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHRlYWwgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAdGVhbCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnRlYWwubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEB0ZWFsSG92ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAdGVhbEhvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIEJsdWUgLS0tKi9cbi51aS5ibHVlLmxhYmVscyAubGFiZWwsXG4udWkuYmx1ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibHVlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGJsdWUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBibHVlVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuYmx1ZS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5ibHVlLmxhYmVsOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmx1ZUhvdmVyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGJsdWVIb3ZlciAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJsdWVIb3ZlclRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuYmx1ZS5jb3JuZXIubGFiZWwsXG4udWkuYmx1ZS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkuYmx1ZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6IEBibHVlUmliYm9uU2hhZG93ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJsdWUubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBAYmFzaWNCYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAYmx1ZSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBibHVlICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmx1ZS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMuYmx1ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJsdWVIb3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBibHVlSG92ZXIgIWltcG9ydGFudDtcbn1cblxuLyotLS0gVmlvbGV0IC0tLSovXG4udWkudmlvbGV0LmxhYmVscyAubGFiZWwsXG4udWkudmlvbGV0LmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHZpb2xldCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEB2aW9sZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB2aW9sZXRUZXh0Q29sb3IgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS52aW9sZXQubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkudmlvbGV0LmxhYmVsOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdmlvbGV0SG92ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAdmlvbGV0SG92ZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IEB2aW9sZXRIb3ZlclRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkudmlvbGV0LmNvcm5lci5sYWJlbCxcbi51aS52aW9sZXQuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnZpb2xldC5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6IEB2aW9sZXRSaWJib25TaGFkb3cgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMudmlvbGV0LmxhYmVsIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHZpb2xldCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEB2aW9sZXQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnZpb2xldC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHZpb2xldEhvdmVyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQHZpb2xldEhvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIFB1cnBsZSAtLS0qL1xuLnVpLnB1cnBsZS5sYWJlbHMgLmxhYmVsLFxuLnVpLnB1cnBsZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwdXJwbGUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAcHVycGxlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcHVycGxlVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkucHVycGxlLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnB1cnBsZS5sYWJlbDpob3ZlcntcbiAgYmFja2dyb3VuZC1jb2xvcjogQHB1cnBsZUhvdmVyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQHB1cnBsZUhvdmVyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcHVycGxlSG92ZXJUZXh0Q29sb3IgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnB1cnBsZS5jb3JuZXIubGFiZWwsXG4udWkucHVycGxlLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5wdXJwbGUucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiBAcHVycGxlUmliYm9uU2hhZG93ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnB1cnBsZS5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IEBiYXNpY0JhY2tncm91bmQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwdXJwbGUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAcHVycGxlICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5wdXJwbGUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwdXJwbGVIb3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBwdXJwbGVIb3ZlciAhaW1wb3J0YW50O1xufVxuXG4vKi0tLSBQaW5rIC0tLSovXG4udWkucGluay5sYWJlbHMgLmxhYmVsLFxuLnVpLnBpbmsubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluayAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBwaW5rICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcGlua1RleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnBpbmsubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkucGluay5sYWJlbDpob3ZlcntcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBpbmtIb3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBwaW5rSG92ZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwaW5rSG92ZXJUZXh0Q29sb3IgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnBpbmsuY29ybmVyLmxhYmVsLFxuLnVpLnBpbmsuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnBpbmsucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiBAcGlua1JpYmJvblNoYWRvdyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5waW5rLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHBpbmsgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAcGluayAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnBpbmsubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwaW5rSG92ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAcGlua0hvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIEJyb3duIC0tLSovXG4udWkuYnJvd24ubGFiZWxzIC5sYWJlbCxcbi51aS5icm93bi5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicm93biAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBicm93biAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJyb3duVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuYnJvd24ubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuYnJvd24ubGFiZWw6aG92ZXJ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicm93bkhvdmVyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGJyb3duSG92ZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IEBicm93bkhvdmVyVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5icm93bi5jb3JuZXIubGFiZWwsXG4udWkuYnJvd24uY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmJyb3duLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogQGJyb3duUmliYm9uU2hhZG93ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJyb3duLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJyb3duICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGJyb3duICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYnJvd24ubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmJyb3duLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAYnJvd25Ib3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBicm93bkhvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIEdyZXkgLS0tKi9cbi51aS5ncmV5LmxhYmVscyAubGFiZWwsXG4udWkuZ3JleS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBncmV5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGdyZXkgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmV5VGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuZ3JleS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5ncmV5LmxhYmVsOmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JleUhvdmVyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGdyZXlIb3ZlciAhaW1wb3J0YW50O1xuICBjb2xvcjogQGdyZXlIb3ZlclRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuZ3JleS5jb3JuZXIubGFiZWwsXG4udWkuZ3JleS5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkuZ3JleS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6IEBicm93blJpYmJvblNoYWRvdyAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmV5LmxhYmVsIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGdyZXkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAZ3JleSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmdyZXkubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBncmV5SG92ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAZ3JleUhvdmVyICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIEJsYWNrIC0tLSovXG4udWkuYmxhY2subGFiZWxzIC5sYWJlbCxcbi51aS5ibGFjay5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibGFjayAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBibGFjayAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJsYWNrVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuYmxhY2subGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuYmxhY2subGFiZWw6aG92ZXJ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibGFja0hvdmVyICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGJsYWNrSG92ZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IEBibGFja0hvdmVyVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5ibGFjay5jb3JuZXIubGFiZWwsXG4udWkuYmxhY2suY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmJsYWNrLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogQGJyb3duUmliYm9uU2hhZG93ICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJsYWNrLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGJsYWNrICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGJsYWNrICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2subGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmJsYWNrLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAYmxhY2tIb3ZlciAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IEBibGFja0hvdmVyICFpbXBvcnRhbnQ7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5iYXNpYy5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IEBiYXNpY0JhY2tncm91bmQ7XG4gIGJvcmRlcjogQGJhc2ljQm9yZGVyO1xuICBjb2xvcjogQGJhc2ljQ29sb3I7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0JveFNoYWRvdztcbn1cblxuLyogTGluayAqL1xuYS51aS5iYXNpYy5sYWJlbDpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDogQGJhc2ljSG92ZXJCYWNrZ3JvdW5kO1xuICBjb2xvcjogQGJhc2ljSG92ZXJDb2xvcjtcbiAgYm94LXNoYWRvdzogQGJhc2ljSG92ZXJCb3JkZXI7XG4gIGJveC1zaGFkb3c6IEBiYXNpY0hvdmVyQm94U2hhZG93O1xufVxuXG4vKiBQb2ludGluZyAqL1xuLnVpLmJhc2ljLnBvaW50aW5nLmxhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubGFiZWwuZmx1aWQsXG4udWkuZmx1aWQubGFiZWxzID4gLmxhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pbnZlcnRlZC5sYWJlbHMgLmxhYmVsLFxuLnVpLmludmVydGVkLmxhYmVsIHtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgSG9yaXpvbnRhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaG9yaXpvbnRhbC5sYWJlbHMgLmxhYmVsLFxuLnVpLmhvcml6b250YWwubGFiZWwge1xuICBtYXJnaW46IDBlbSBAaG9yaXpvbnRhbExhYmVsTWFyZ2luIDBlbSAwZW07XG5cbiAgcGFkZGluZzogQGhvcml6b250YWxMYWJlbFZlcnRpY2FsUGFkZGluZyBAaG9yaXpvbnRhbFBhZGRpbmc7XG4gIG1pbi13aWR0aDogQGhvcml6b250YWxMYWJlbE1pbldpZHRoO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNpcmN1bGFyLmxhYmVscyAubGFiZWwsXG4udWkuY2lyY3VsYXIubGFiZWwge1xuICBtaW4td2lkdGg6IEBjaXJjdWxhck1pblNpemU7XG4gIG1pbi1oZWlnaHQ6IEBjaXJjdWxhck1pblNpemU7XG5cbiAgcGFkZGluZzogQGNpcmN1bGFyUGFkZGluZyAhaW1wb3J0YW50O1xuXG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xufVxuLnVpLmVtcHR5LmNpcmN1bGFyLmxhYmVscyAubGFiZWwsXG4udWkuZW1wdHkuY2lyY3VsYXIubGFiZWwge1xuICBtaW4td2lkdGg6IDBlbTtcbiAgbWluLWhlaWdodDogMGVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogQGVtcHR5Q2lyY2xlU2l6ZTtcbiAgaGVpZ2h0OiBAZW1wdHlDaXJjbGVTaXplO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBvaW50aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5wb2ludGluZy5sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnVpLmF0dGFjaGVkLnBvaW50aW5nLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4udWkucG9pbnRpbmcubGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1pbWFnZTogaW5oZXJpdDtcbiAgYm9yZGVyLXdpZHRoOiBub25lO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IEBwb2ludGluZ0JvcmRlckNvbG9yO1xufVxuLyogQXJyb3cgKi9cbi51aS5wb2ludGluZy5sYWJlbDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cbiAgei1pbmRleDogQHBvaW50aW5nVHJpYW5nbGVaSW5kZXg7XG4gIHdpZHRoOiBAcG9pbnRpbmdUcmlhbmdsZVNpemU7XG4gIGhlaWdodDogQHBvaW50aW5nVHJpYW5nbGVTaXplO1xuICB0cmFuc2l0aW9uOiBAcG9pbnRpbmdUcmlhbmdsZVRyYW5zaXRpb247XG59XG5cbi8qLS0tIEFib3ZlIC0tLSovXG4udWkucG9pbnRpbmcubGFiZWwsXG4udWlbY2xhc3MqPVwicG9pbnRpbmcgYWJvdmVcIl0ubGFiZWwge1xuICBtYXJnaW4tdG9wOiBAcG9pbnRpbmdWZXJ0aWNhbERpc3RhbmNlO1xufVxuLnVpLnBvaW50aW5nLmxhYmVsOmJlZm9yZSxcbi51aVtjbGFzcyo9XCJwb2ludGluZyBhYm92ZVwiXS5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IEBib3JkZXJXaWR0aCAwcHggMHB4IEBib3JkZXJXaWR0aDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiAwJTtcbiAgbGVmdDogNTAlO1xufVxuLyotLS0gQmVsb3cgLS0tKi9cbi51aVtjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWwsXG4udWlbY2xhc3MqPVwicG9pbnRpbmcgYmVsb3dcIl0ubGFiZWwge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IEBwb2ludGluZ1ZlcnRpY2FsRGlzdGFuY2U7XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSxcbi51aVtjbGFzcyo9XCJwb2ludGluZyBiZWxvd1wiXS5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IDBweCBAYm9yZGVyV2lkdGggQGJvcmRlcldpZHRoIDBweDtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG59XG4vKi0tLSBMZWZ0IC0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBwb2ludGluZ1wiXS5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IEBwb2ludGluZ0hvcml6b250YWxEaXN0YW5jZTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMHB4IDBweCBAYm9yZGVyV2lkdGggQGJvcmRlcldpZHRoO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMGVtO1xufVxuLyotLS0gUmlnaHQgLS0tKi9cbi51aVtjbGFzcyo9XCJyaWdodCBwb2ludGluZ1wiXS5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiBAcG9pbnRpbmdIb3Jpem9udGFsRGlzdGFuY2U7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiBAYm9yZGVyV2lkdGggQGJvcmRlcldpZHRoIDBweCAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4vKiBCYXNpYyBQb2ludGluZyAqL1xuXG4vKi0tLSBBYm92ZSAtLS0qL1xuLnVpLmJhc2ljLnBvaW50aW5nLmxhYmVsOmJlZm9yZSxcbi51aS5iYXNpY1tjbGFzcyo9XCJwb2ludGluZyBhYm92ZVwiXS5sYWJlbDpiZWZvcmUge1xuICBtYXJnaW4tdG9wOiBAYmFzaWNQb2ludGluZ1RyaWFuZ2xlT2Zmc2V0O1xufVxuLyotLS0gQmVsb3cgLS0tKi9cbi51aS5iYXNpY1tjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlLFxuLnVpLmJhc2ljW2NsYXNzKj1cInBvaW50aW5nIGJlbG93XCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvdHRvbTogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAtQGJhc2ljUG9pbnRpbmdUcmlhbmdsZU9mZnNldDtcbn1cbi8qLS0tIExlZnQgLS0tKi9cbi51aS5iYXNpY1tjbGFzcyo9XCJsZWZ0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiBAYmFzaWNQb2ludGluZ1RyaWFuZ2xlT2Zmc2V0O1xufVxuLyotLS0gUmlnaHQgLS0tKi9cbi51aS5iYXNpY1tjbGFzcyo9XCJyaWdodCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IEBiYXNpY1BvaW50aW5nVHJpYW5nbGVPZmZzZXQ7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZsb2F0aW5nIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZsb2F0aW5nLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiBAZmxvYXRpbmdaSW5kZXg7XG4gIHRvcDogQGZsb2F0aW5nVG9wT2Zmc2V0O1xuICBsZWZ0OiAxMDAlO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIEBmbG9hdGluZ0xlZnRPZmZzZXQgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5taW5pLmxhYmVscyAubGFiZWwsXG4udWkubWluaS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogQG1pbmk7XG59XG4udWkudGlueS5sYWJlbHMgLmxhYmVsLFxuLnVpLnRpbnkubGFiZWwge1xuICBmb250LXNpemU6IEB0aW55O1xufVxuLnVpLnNtYWxsLmxhYmVscyAubGFiZWwsXG4udWkuc21hbGwubGFiZWwge1xuICBmb250LXNpemU6IEBzbWFsbDtcbn1cbi51aS5sYWJlbHMgLmxhYmVsLFxuLnVpLmxhYmVsIHtcbiAgZm9udC1zaXplOiBAbWVkaXVtO1xufVxuLnVpLmxhcmdlLmxhYmVscyAubGFiZWwsXG4udWkubGFyZ2UubGFiZWwge1xuICBmb250LXNpemU6IEBsYXJnZTtcbn1cbi51aS5iaWcubGFiZWxzIC5sYWJlbCxcbi51aS5iaWcubGFiZWwge1xuICBmb250LXNpemU6IEBiaWc7XG59XG4udWkuaHVnZS5sYWJlbHMgLmxhYmVsLFxuLnVpLmh1Z2UubGFiZWwge1xuICBmb250LXNpemU6IEBodWdlO1xufVxuLnVpLm1hc3NpdmUubGFiZWxzIC5sYWJlbCxcbi51aS5tYXNzaXZlLmxhYmVsIHtcbiAgZm9udC1zaXplOiBAbWFzc2l2ZTtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTGlzdFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdlbGVtZW50JztcbkBlbGVtZW50IDogJ2xpc3QnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBMaXN0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG51bC51aS5saXN0LFxub2wudWkubGlzdCxcbi51aS5saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBAbGlzdFN0eWxlVHlwZTtcbiAgbWFyZ2luOiBAbWFyZ2luO1xuICBwYWRkaW5nOiBAdmVydGljYWxQYWRkaW5nIEBob3Jpem9udGFsUGFkZGluZztcbn1cblxudWwudWkubGlzdDpmaXJzdC1jaGlsZCxcbm9sLnVpLmxpc3Q6Zmlyc3QtY2hpbGQsXG4udWkubGlzdDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cblxudWwudWkubGlzdDpsYXN0LWNoaWxkLFxub2wudWkubGlzdDpsYXN0LWNoaWxkLFxuLnVpLmxpc3Q6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qIExpc3QgSXRlbSAqL1xudWwudWkubGlzdCBsaSxcbm9sLnVpLmxpc3QgbGksXG4udWkubGlzdCA+IC5pdGVtLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBAbGlzdFN0eWxlVHlwZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogQGxpc3RTdHlsZVBvc2l0aW9uO1xuXG4gIHBhZGRpbmc6IEBpdGVtUGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IEBpdGVtTGluZUhlaWdodDtcbn1cblxudWwudWkubGlzdCA+IGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxub2wudWkubGlzdCA+IGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxuLnVpLmxpc3QgPiAubGlzdCA+IC5pdGVtLFxuLnVpLmxpc3QgPiAuaXRlbTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG51bC51aS5saXN0IGxpOmZpcnN0LWNoaWxkLFxub2wudWkubGlzdCBsaTpmaXJzdC1jaGlsZCxcbi51aS5saXN0IC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbnVsLnVpLmxpc3QgbGk6bGFzdC1jaGlsZCxcbm9sLnVpLmxpc3QgbGk6bGFzdC1jaGlsZCxcbi51aS5saXN0IC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG5cbi8qIENoaWxkIExpc3QgKi9cbnVsLnVpLmxpc3QgdWwsXG5vbC51aS5saXN0IG9sLFxuLnVpLmxpc3QgLmxpc3Qge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IEBjaGlsZExpc3RQYWRkaW5nO1xufVxuXG4vKiBDaGlsZCBJdGVtICovXG51bC51aS5saXN0IHVsIGxpLFxub2wudWkubGlzdCBvbCBsaSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nOiBAY2hpbGRJdGVtUGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IEBjaGlsZEl0ZW1MaW5lSGVpZ2h0O1xufVxuXG5cbi8qIEljb24gKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiBpLmljb24sXG4udWkubGlzdCA+IC5pdGVtID4gaS5pY29uIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmctdG9wOiBAaWNvbk9mZnNldDtcbiAgcGFkZGluZy1yaWdodDogQGljb25EaXN0YW5jZTtcbiAgdmVydGljYWwtYWxpZ246IEBpY29uQ29udGVudFZlcnRpY2FsQWxpZ247XG4gIHRyYW5zaXRpb246IEBpY29uVHJhbnNpdGlvbjtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiBpLmljb246b25seS1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW0gPiBpLmljb246b25seS1jaGlsZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IEBpY29uVmVydGljYWxBbGlnbjtcbn1cblxuXG4vKiBJbWFnZSAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2Uge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBAaW1hZ2VBbGlnbjtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6bm90KDpvbmx5LWNoaWxkKTpub3QoaW1nKSxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6bm90KDpvbmx5LWNoaWxkKTpub3QoaW1nKSB7XG4gIHBhZGRpbmctcmlnaHQ6IEBpbWFnZURpc3RhbmNlO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSBpbWcsXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlIGltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBAaW1hZ2VBbGlnbjtcbn1cblxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IGltZy5pbWFnZSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6b25seS1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW0gPiBpbWcuaW1hZ2UsXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qIENvbnRlbnQgKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiAuY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiBAY29udGVudExpbmVIZWlnaHQ7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlICsgLmNvbnRlbnQsXG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmljb24gKyAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiAuaWNvbiArIC5jb250ZW50IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIEBjb250ZW50RGlzdGFuY2U7XG4gIHZlcnRpY2FsLWFsaWduOiBAY29udGVudFZlcnRpY2FsQWxpZ247XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gaW1nLmltYWdlICsgLmNvbnRlbnQsXG4udWkubGlzdCA+IC5pdGVtID4gaW1nLmltYWdlICsgLmNvbnRlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5jb250ZW50ID4gLmxpc3QsXG4udWkubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQgPiAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIHBhZGRpbmctbGVmdDogMGVtO1xufVxuXG4vKiBIZWFkZXIgKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gLmhlYWRlcixcbi51aS5saXN0ID4gLml0ZW0gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbTtcbiAgZm9udC1mYW1pbHk6IEBpdGVtSGVhZGVyRm9udEZhbWlseTtcbiAgZm9udC13ZWlnaHQ6IEBpdGVtSGVhZGVyRm9udFdlaWdodDtcbiAgY29sb3I6IEBpdGVtSGVhZGVyQ29sb3I7XG59XG5cbi8qIERlc2NyaXB0aW9uICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbixcbi51aS5saXN0ID4gLml0ZW0gLmRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiBAaXRlbURlc2NyaXB0aW9uQ29sb3I7XG59XG5cbi8qIENoaWxkIExpbmsgKi9cbi51aS5saXN0ID4gLml0ZW0gYSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0gYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogTGlua2luZyBJdGVtICovXG4udWkubGlzdCAubGlzdCA+IGEuaXRlbSxcbi51aS5saXN0ID4gYS5pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogQGl0ZW1MaW5rQ29sb3I7XG59XG4udWkubGlzdCAubGlzdCA+IGEuaXRlbTpob3Zlcixcbi51aS5saXN0ID4gYS5pdGVtOmhvdmVyIHtcbiAgY29sb3I6IEBpdGVtTGlua0hvdmVyQ29sb3I7XG59XG5cbi8qIExpbmtlZCBJdGVtIEljb25zICovXG4udWkubGlzdCAubGlzdCA+IGEuaXRlbSBpLmljb24sXG4udWkubGlzdCA+IGEuaXRlbSBpLmljb24ge1xuICBjb2xvcjogQGl0ZW1MaW5rSWNvbkNvbG9yO1xufVxuXG4vKiBIZWFkZXIgTGluayAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBhLmhlYWRlcixcbi51aS5saXN0ID4gLml0ZW0gYS5oZWFkZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiBAaXRlbUhlYWRlckxpbmtDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBhLmhlYWRlcjpob3Zlcixcbi51aS5saXN0ID4gLml0ZW0gYS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogQGl0ZW1IZWFkZXJMaW5rSG92ZXJDb2xvciAhaW1wb3J0YW50O1xufVxuXG4vKiBGbG9hdGVkIENvbnRlbnQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ubGlzdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ubGlzdCB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLFxuLnVpLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogQGxlZnRGbG9hdE1hcmdpbjtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0sXG4udWkubGlzdCA+IC5pdGVtIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IEByaWdodEZsb2F0TWFyZ2luO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5tZW51IC51aS5saXN0ID4gLml0ZW0sXG4udWkubWVudSAudWkubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICBsaXN0LXN0eWxlLXR5cGU6IEBsaXN0U3R5bGVUeXBlO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBAbGlzdFN0eWxlUG9zaXRpb247XG5cbiAgcGFkZGluZzogQGl0ZW1WZXJ0aWNhbFBhZGRpbmcgQGl0ZW1Ib3Jpem9udGFsUGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IEBpdGVtTGluZUhlaWdodDtcbn1cbi51aS5tZW51IC51aS5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm1lbnUgLnVpLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4udWkubWVudSAudWkubGlzdCAubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLm1lbnUgLnVpLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwZW07XG59XG4udWkubWVudSAudWkubGlzdCAubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQsXG4udWkubWVudSAudWkubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBIb3Jpem9udGFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5ob3Jpem9udGFsLmxpc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMGVtO1xufVxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogQGhvcml6b250YWxTcGFjaW5nO1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0Om5vdCguY2VsbGVkKSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLmhvcml6b250YWwubGlzdCAubGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuaWNvbixcbi51aS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQsXG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCB7XG4gIHZlcnRpY2FsLWFsaWduOiBAaG9yaXpvbnRhbFZlcnRpY2FsQWxpZ247XG59XG5cbi8qIFBhZGRpbmcgb24gYWxsIGVsZW1lbnRzICovXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiBAaXRlbVZlcnRpY2FsUGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206IEBpdGVtVmVydGljYWxQYWRkaW5nO1xufVxuXG4vKiBIb3Jpem9udGFsIExpc3QgKi9cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IGkuaWNvbiB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW0gQGhvcml6b250YWxJY29uRGlzdGFuY2UgMGVtIDBlbTtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmljb24gKyAuY29udGVudCB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5saXN0IC5saXN0ID4gLmRpc2FibGVkLml0ZW0sXG4udWkubGlzdCA+IC5kaXNhYmxlZC5pdGVtIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiBAZGlzYWJsZWRDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiAuZGlzYWJsZWQuaXRlbSxcbi51aS5pbnZlcnRlZC5saXN0ID4gLmRpc2FibGVkLml0ZW0ge1xuICBjb2xvcjogQGludmVydGVkRGlzYWJsZWRDb2xvciAhaW1wb3J0YW50O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmxpc3QgLmxpc3QgPiBhLml0ZW06aG92ZXIgLmljb24sXG4udWkubGlzdCA+IGEuaXRlbTpob3ZlciAuaWNvbiB7XG4gIGNvbG9yOiBAaXRlbUxpbmtJY29uSG92ZXJDb2xvcjtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IGEuaXRlbSA+IC5pY29uLFxuLnVpLmludmVydGVkLmxpc3QgPiBhLml0ZW0gPiAuaWNvbiB7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRJY29uTGlua0NvbG9yO1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiAuaXRlbSAuaGVhZGVyLFxuLnVpLmludmVydGVkLmxpc3QgPiAuaXRlbSAuaGVhZGVyIHtcbiAgY29sb3I6IEBpbnZlcnRlZEhlYWRlckNvbG9yO1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiAuaXRlbSAuZGVzY3JpcHRpb24sXG4udWkuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiBAaW52ZXJ0ZWREZXNjcmlwdGlvbkNvbG9yO1xufVxuXG4vKiBJdGVtIExpbmsgKi9cbi51aS5pbnZlcnRlZC5saXN0IC5saXN0ID4gYS5pdGVtLFxuLnVpLmludmVydGVkLmxpc3QgPiBhLml0ZW0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRJdGVtTGlua0NvbG9yO1xufVxuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiBhLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQubGlzdCA+IGEuaXRlbTpob3ZlciB7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRJdGVtTGlua0hvdmVyQ29sb3I7XG59XG5cblxuLyogTGlua2luZyBDb250ZW50ICovXG4udWkuaW52ZXJ0ZWQubGlzdCAuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IEBpbnZlcnRlZEl0ZW1MaW5rQ29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5saXN0IC5pdGVtIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogQGludmVydGVkSXRlbUxpbmtIb3ZlckNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmxpc3RbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLmltYWdlLFxuLnVpLmxpc3RbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLmNvbnRlbnQsXG4udWkubGlzdCBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG59XG4udWkubGlzdFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSAuaW1hZ2UsXG4udWkubGlzdFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSAuY29udGVudCxcbi51aS5saXN0IFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbn1cbi51aS5saXN0W2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdIC5pbWFnZSxcbi51aS5saXN0W2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdIC5jb250ZW50LFxuLnVpLmxpc3QgW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbSAhaW1wb3J0YW50O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5saW5rLmxpc3QgLml0ZW0sXG4udWkubGluay5saXN0IGEuaXRlbSxcbi51aS5saW5rLmxpc3QgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiBAbGlua0xpc3RJdGVtQ29sb3I7XG4gIHRyYW5zaXRpb246IEBsaW5rTGlzdFRyYW5zaXRpb247XG59XG4udWkubGluay5saXN0Lmxpc3QgYS5pdGVtOmhvdmVyLFxuLnVpLmxpbmsubGlzdC5saXN0IC5pdGVtIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogQGxpbmtMaXN0SXRlbUhvdmVyQ29sb3I7XG59XG4udWkubGluay5saXN0Lmxpc3QgYS5pdGVtOmFjdGl2ZSxcbi51aS5saW5rLmxpc3QubGlzdCAuaXRlbSBhOm5vdCgudWkpOmFjdGl2ZSB7XG4gIGNvbG9yOiBAbGlua0xpc3RJdGVtRG93bkNvbG9yO1xufVxuLnVpLmxpbmsubGlzdC5saXN0IC5hY3RpdmUuaXRlbSxcbi51aS5saW5rLmxpc3QubGlzdCAuYWN0aXZlLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiBAbGlua0xpc3RJdGVtQWN0aXZlQ29sb3I7XG59XG5cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQubGluay5saXN0IC5pdGVtLFxuLnVpLmludmVydGVkLmxpbmsubGlzdCBhLml0ZW0sXG4udWkuaW52ZXJ0ZWQubGluay5saXN0IC5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogQGludmVydGVkTGlua0xpc3RJdGVtQ29sb3I7XG59XG4udWkuaW52ZXJ0ZWQubGluay5saXN0Lmxpc3QgYS5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLmxpbmsubGlzdC5saXN0IC5pdGVtIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogQGludmVydGVkTGlua0xpc3RJdGVtSG92ZXJDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5saW5rLmxpc3QubGlzdCBhLml0ZW06YWN0aXZlLFxuLnVpLmludmVydGVkLmxpbmsubGlzdC5saXN0IC5pdGVtIGE6bm90KC51aSk6YWN0aXZlIHtcbiAgY29sb3I6IEBpbnZlcnRlZExpbmtMaXN0SXRlbURvd25Db2xvcjtcbn1cbi51aS5pbnZlcnRlZC5saW5rLmxpc3QubGlzdCBhLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmxpbmsubGlzdC5saXN0IC5hY3RpdmUuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IEBpbnZlcnRlZExpbmtMaXN0SXRlbUFjdGl2ZUNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNlbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiBAc2VsZWN0aW9uTGlzdEJhY2tncm91bmQ7XG4gIHBhZGRpbmc6IEBzZWxlY3Rpb25MaXN0SXRlbVZlcnRpY2FsUGFkZGluZyBAc2VsZWN0aW9uTGlzdEl0ZW1Ib3Jpem9udGFsUGFkZGluZztcbiAgbWFyZ2luOiBAc2VsZWN0aW9uTGlzdEl0ZW1NYXJnaW47XG4gIGNvbG9yOiBAc2VsZWN0aW9uTGlzdENvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAc2VsZWN0aW9uTGlzdEl0ZW1Cb3JkZXJSYWRpdXM7XG4gIHRyYW5zaXRpb246IEBzZWxlY3Rpb25MaXN0VHJhbnNpdGlvbjtcbn1cbi51aS5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQsXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLnNlbGVjdGlvbi5saXN0Lmxpc3QgPiAuaXRlbTpob3Zlcixcbi51aS5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogQHNlbGVjdGlvbkxpc3RIb3ZlckJhY2tncm91bmQ7XG4gIGNvbG9yOiBAc2VsZWN0aW9uTGlzdEhvdmVyQ29sb3I7XG59XG4udWkuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbTphY3RpdmUsXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBAc2VsZWN0aW9uTGlzdERvd25CYWNrZ3JvdW5kO1xuICBjb2xvcjogQHNlbGVjdGlvbkxpc3REb3duQ29sb3I7XG59XG4udWkuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbS5hY3RpdmUsXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBAc2VsZWN0aW9uTGlzdEFjdGl2ZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAc2VsZWN0aW9uTGlzdEFjdGl2ZUNvbG9yO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0sXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZFNlbGVjdGlvbkxpc3RCYWNrZ3JvdW5kO1xuICBjb2xvcjogQGludmVydGVkU2VsZWN0aW9uTGlzdENvbG9yO1xufVxuLnVpLmludmVydGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZFNlbGVjdGlvbkxpc3RIb3ZlckJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRTZWxlY3Rpb25MaXN0SG92ZXJDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZFNlbGVjdGlvbkxpc3REb3duQmFja2dyb3VuZDtcbiAgY29sb3I6IEBpbnZlcnRlZFNlbGVjdGlvbkxpc3REb3duQ29sb3I7XG59XG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbS5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBAaW52ZXJ0ZWRTZWxlY3Rpb25MaXN0QWN0aXZlQmFja2dyb3VuZDtcbiAgY29sb3I6IEBpbnZlcnRlZFNlbGVjdGlvbkxpc3RBY3RpdmVDb2xvcjtcbn1cblxuLyogQ2VsbGVkIC8gRGl2aWRlZCBTZWxlY3Rpb24gTGlzdCAqL1xuLnVpLmNlbGxlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFuaW1hdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5hbmltYXRlZC5saXN0ID4gLml0ZW0ge1xuICB0cmFuc2l0aW9uOiBAYW5pbWF0ZWRMaXN0VHJhbnNpdGlvbjtcbn1cbi51aS5hbmltYXRlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpob3ZlciB7XG4gIHBhZGRpbmctbGVmdDogQGFuaW1hdGVkTGlzdEluZGVudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml0dGVkLmxpc3Q6bm90KC5zZWxlY3Rpb24pIC5saXN0ID4gLml0ZW0sXG4udWkuZml0dGVkLmxpc3Q6bm90KC5zZWxlY3Rpb24pID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xufVxuLnVpLmZpdHRlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmZpdHRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtIHtcbiAgbWFyZ2luLWxlZnQ6IC1Ac2VsZWN0aW9uTGlzdEl0ZW1Ib3Jpem9udGFsUGFkZGluZztcbiAgbWFyZ2luLXJpZ2h0OiAtQHNlbGVjdGlvbkxpc3RJdGVtSG9yaXpvbnRhbFBhZGRpbmc7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQnVsbGV0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudWwudWkubGlzdCxcbi51aS5idWxsZXRlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IEBidWxsZXREaXN0YW5jZTtcbn1cbnVsLnVpLmxpc3QgbGksXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmJ1bGxldGVkLmxpc3QgPiAuaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnVsLnVpLmxpc3QgbGk6YmVmb3JlLFxuLnVpLmJ1bGxldGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIGZvbnQtd2VpZ2h0OiBAbm9ybWFsO1xuICBtYXJnaW4tbGVmdDogQGJ1bGxldE9mZnNldDtcbiAgY29udGVudDogQGJ1bGxldENoYXJhY3RlcjtcbiAgb3BhY2l0eTogQGJ1bGxldE9wYWNpdHk7XG4gIGNvbG9yOiBAYnVsbGV0Q29sb3I7XG4gIHZlcnRpY2FsLWFsaWduOiBAYnVsbGV0VmVydGljYWxBbGlnbjtcbn1cblxudWwudWkubGlzdCBsaTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCAubGlzdCA+IGEuaXRlbTpiZWZvcmUsXG4udWkuYnVsbGV0ZWQubGlzdCA+IGEuaXRlbTpiZWZvcmUge1xuICBjb2xvcjogQGJ1bGxldExpbmtDb2xvcjtcbn1cblxudWwudWkubGlzdCB1bCxcbi51aS5idWxsZXRlZC5saXN0IC5saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiBAYnVsbGV0Q2hpbGREaXN0YW5jZTtcbn1cblxuLyogSG9yaXpvbnRhbCBCdWxsZXRlZCAqL1xudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0LFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgbGksXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0ID4gLml0ZW0ge1xuICBtYXJnaW4tbGVmdDogQGhvcml6b250YWxCdWxsZXRTcGFjaW5nO1xufVxudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0IGxpOmZpcnN0LWNoaWxkLFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbnVsLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCBsaTo6YmVmb3JlLFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOjpiZWZvcmUge1xuICBjb2xvcjogQGhvcml6b250YWxCdWxsZXRDb2xvcjtcbn1cbnVsLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCBsaTpmaXJzdC1jaGlsZDo6YmVmb3JlLFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBPcmRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbm9sLnVpLmxpc3QsXG4udWkub3JkZXJlZC5saXN0LFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCxcbm9sLnVpLmxpc3Qgb2wge1xuICBjb3VudGVyLXJlc2V0OiBvcmRlcmVkO1xuICBtYXJnaW4tbGVmdDogQG9yZGVyZWRDb3VudERpc3RhbmNlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5vbC51aS5saXN0IGxpLFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLm9yZGVyZWQubGlzdCA+IC5pdGVtIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5vbC51aS5saXN0IGxpOmJlZm9yZSxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkub3JkZXJlZC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IC0oQG9yZGVyZWRDb3VudERpc3RhbmNlKTtcbiAgY291bnRlci1pbmNyZW1lbnQ6IEBvcmRlcmVkQ291bnROYW1lO1xuICBjb250ZW50OiBAb3JkZXJlZENvdW50Q29udGVudDtcbiAgdGV4dC1hbGlnbjogQG9yZGVyZWRDb3VudFRleHRBbGlnbjtcbiAgY29sb3I6IEBvcmRlcmVkQ291bnRDb2xvcjtcbiAgdmVydGljYWwtYWxpZ246IEBvcmRlcmVkQ291bnRWZXJ0aWNhbEFsaWduO1xuICBvcGFjaXR5OiBAb3JkZXJlZENvdW50T3BhY2l0eTtcbn1cblxub2wudWkuaW52ZXJ0ZWQubGlzdCBsaTpiZWZvcmUsXG4udWkub3JkZXJlZC5pbnZlcnRlZC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm9yZGVyZWQuaW52ZXJ0ZWQubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIGNvbG9yOiBAb3JkZXJlZEludmVydGVkQ291bnRDb2xvcjtcbn1cblxuLyogVmFsdWUgKi9cbi51aS5vcmRlcmVkLmxpc3QgPiAubGlzdCA+IC5pdGVtW2RhdGEtdmFsdWVdLFxuLnVpLm9yZGVyZWQubGlzdCA+IC5pdGVtW2RhdGEtdmFsdWVdIHtcbiAgY29udGVudDogYXR0cihkYXRhLXZhbHVlKTtcbn1cbm9sLnVpLmxpc3QgbGlbdmFsdWVdOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGF0dHIodmFsdWUpO1xufVxuXG4vKiBDaGlsZCBMaXN0cyAqL1xub2wudWkubGlzdCBvbCxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogQG9yZGVyZWRDaGlsZENvdW50RGlzdGFuY2U7XG59XG5vbC51aS5saXN0IG9sIGxpOmJlZm9yZSxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogQG9yZGVyZWRDaGlsZENvdW50T2Zmc2V0O1xufVxuXG4vKiBIb3Jpem9udGFsIE9yZGVyZWQgKi9cbm9sLnVpLmhvcml6b250YWwubGlzdCxcbi51aS5vcmRlcmVkLmhvcml6b250YWwubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG5vbC51aS5ob3Jpem9udGFsLmxpc3QgbGk6YmVmb3JlLFxuLnVpLm9yZGVyZWQuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLm9yZGVyZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luOiAwZW0gQGhvcml6b250YWxPcmRlcmVkQ291bnREaXN0YW5jZSAwZW0gMGVtO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kaXZpZGVkLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IEBkaXZpZGVkQm9yZGVyO1xufVxuLnVpLmRpdmlkZWQubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogQGRpdmlkZWRDaGlsZExpc3RCb3JkZXI7XG59XG4udWkuZGl2aWRlZC5saXN0IC5pdGVtIC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiBAZGl2aWRlZENoaWxkSXRlbUJvcmRlcjtcbn1cbi51aS5kaXZpZGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5kaXZpZGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi8qIFN1YiBNZW51ICovXG4udWkuZGl2aWRlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IEBkaXZpZGVkQm9yZGVyV2lkdGg7XG59XG5cbi8qIERpdmlkZWQgYnVsbGV0ZWQgKi9cbi51aS5kaXZpZGVkLmJ1bGxldGVkLmxpc3Q6bm90KC5ob3Jpem9udGFsKSxcbi51aS5kaXZpZGVkLmJ1bGxldGVkLmxpc3QgLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbn1cbi51aS5kaXZpZGVkLmJ1bGxldGVkLmxpc3QgPiAuaXRlbTpub3QoLmhvcml6b250YWwpIHtcbiAgcGFkZGluZy1sZWZ0OiBAYnVsbGV0RGlzdGFuY2U7XG59XG5cbi8qIERpdmlkZWQgT3JkZXJlZCAqL1xuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IEBvcmRlcmVkQ291bnREaXN0YW5jZTtcbn1cbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCAuaXRlbSAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBwYWRkaW5nLWJvdHRvbTogQGl0ZW1WZXJ0aWNhbFBhZGRpbmc7XG59XG4udWkuZGl2aWRlZC5vcmRlcmVkLmxpc3QgLml0ZW0gLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogQG9yZGVyZWRDaGlsZENvdW50RGlzdGFuY2U7XG59XG5cbi8qIERpdmlkZWQgU2VsZWN0aW9uICovXG4udWkuZGl2aWRlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG5cbi8qIERpdmlkZWQgaG9yaXpvbnRhbCAqL1xuLnVpLmRpdmlkZWQuaG9yaXpvbnRhbC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS5kaXZpZGVkLmhvcml6b250YWwubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1sZWZ0OiBAaG9yaXpvbnRhbERpdmlkZWRTcGFjaW5nO1xufVxuLnVpLmRpdmlkZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctcmlnaHQ6IEBob3Jpem9udGFsRGl2aWRlZFNwYWNpbmc7XG59XG4udWkuZGl2aWRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBAZGl2aWRlZEJvcmRlcjtcbiAgbWFyZ2luOiAwZW07XG4gIGxpbmUtaGVpZ2h0OiBAaG9yaXpvbnRhbERpdmlkZWRMaW5lSGVpZ2h0O1xufVxuLnVpLmhvcml6b250YWwuZGl2aWRlZC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi8qIEludmVydGVkICovXG4udWkuZGl2aWRlZC5pbnZlcnRlZC5saXN0ID4gLml0ZW0sXG4udWkuZGl2aWRlZC5pbnZlcnRlZC5saXN0ID4gLmxpc3QsXG4udWkuZGl2aWRlZC5pbnZlcnRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogQGRpdmlkZWRJbnZlcnRlZEJvcmRlckNvbG9yO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBDZWxsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNlbGxlZC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLmxpc3QgPiAubGlzdCB7XG4gIGJvcmRlci10b3A6IEBjZWxsZWRCb3JkZXI7XG4gIHBhZGRpbmctbGVmdDogQGNlbGxlZEhvcml6b250YWxQYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiBAY2VsbGVkSG9yaXpvbnRhbFBhZGRpbmc7XG59XG4udWkuY2VsbGVkLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogQGNlbGxlZEJvcmRlcjtcbn1cblxuLyogUGFkZGluZyBvbiBhbGwgZWxlbWVudHMgKi9cbi51aS5jZWxsZWQubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmNlbGxlZC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiBAaXRlbVZlcnRpY2FsUGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206IEBpdGVtVmVydGljYWxQYWRkaW5nO1xufVxuXG4vKiBTdWIgTWVudSAqL1xuLnVpLmNlbGxlZC5saXN0IC5pdGVtIC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItd2lkdGg6IDBweDtcbn1cbi51aS5jZWxsZWQubGlzdCAubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuXG4vKiBDZWxsZWQgQnVsbGV0ZWQgKi9cbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuY2VsbGVkLmJ1bGxldGVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAoQGJ1bGxldERpc3RhbmNlKTtcbn1cbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCAuaXRlbSAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAtKEBidWxsZXREaXN0YW5jZSk7XG4gIG1hcmdpbi1yaWdodDogLShAYnVsbGV0RGlzdGFuY2UpO1xuICBwYWRkaW5nLWJvdHRvbTogQGl0ZW1WZXJ0aWNhbFBhZGRpbmc7XG59XG5cbi8qIENlbGxlZCBPcmRlcmVkICovXG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogQG9yZGVyZWRDb3VudERpc3RhbmNlO1xufVxuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3QgLml0ZW0gLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgcGFkZGluZy1ib3R0b206IEBpdGVtVmVydGljYWxQYWRkaW5nO1xufVxuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogQG9yZGVyZWRDaGlsZENvdW50RGlzdGFuY2U7XG59XG5cbi8qIENlbGxlZCBIb3Jpem9udGFsICovXG4udWkuaG9yaXpvbnRhbC5jZWxsZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5jZWxsZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBAY2VsbGVkQm9yZGVyO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZy1sZWZ0OiBAaG9yaXpvbnRhbENlbGxlZFNwYWNpbmc7XG4gIHBhZGRpbmctcmlnaHQ6IEBob3Jpem9udGFsQ2VsbGVkU3BhY2luZztcblxuICBsaW5lLWhlaWdodDogQGhvcml6b250YWxDZWxsZWRMaW5lSGVpZ2h0O1xufVxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkLFxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBAY2VsbGVkQm9yZGVyO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmNlbGxlZC5pbnZlcnRlZC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLmludmVydGVkLmxpc3QgPiAubGlzdCB7XG4gIGJvcmRlci1jb2xvcjogQGNlbGxlZEludmVydGVkQm9yZGVyO1xufVxuLnVpLmNlbGxlZC5pbnZlcnRlZC5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuaW52ZXJ0ZWQuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItY29sb3I6IEBjZWxsZWRJbnZlcnRlZEJvcmRlcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmVsYXhlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkucmVsYXhlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctdG9wOiBAcmVsYXhlZEl0ZW1WZXJ0aWNhbFBhZGRpbmc7XG59XG4udWkucmVsYXhlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1ib3R0b206IEByZWxheGVkSXRlbVZlcnRpY2FsUGFkZGluZztcbn1cbi51aS5ob3Jpem9udGFsLnJlbGF4ZWQubGlzdCAubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLnVpLmhvcml6b250YWwucmVsYXhlZC5saXN0ID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLWxlZnQ6IEByZWxheGVkSG9yaXpvbnRhbFBhZGRpbmc7XG59XG4udWkuaG9yaXpvbnRhbC5yZWxheGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpLFxuLnVpLmhvcml6b250YWwucmVsYXhlZC5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctcmlnaHQ6IEByZWxheGVkSG9yaXpvbnRhbFBhZGRpbmc7XG59XG5cbi8qIFZlcnkgUmVsYXhlZCAqL1xuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctdG9wOiBAdmVyeVJlbGF4ZWRJdGVtVmVydGljYWxQYWRkaW5nO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5saXN0Om5vdCguaG9yaXpvbnRhbCkgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1ib3R0b206IEB2ZXJ5UmVsYXhlZEl0ZW1WZXJ0aWNhbFBhZGRpbmc7XG59XG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCAubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLnVpLmhvcml6b250YWxbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctbGVmdDogQHZlcnlSZWxheGVkSG9yaXpvbnRhbFBhZGRpbmc7XG59XG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCAubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCksXG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBwYWRkaW5nLXJpZ2h0OiBAdmVyeVJlbGF4ZWRIb3Jpem9udGFsUGFkZGluZztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWluaS5saXN0IHtcbiAgZm9udC1zaXplOiBAcmVsYXRpdmVNaW5pO1xufVxuLnVpLnRpbnkubGlzdCB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlVGlueTtcbn1cbi51aS5zbWFsbC5saXN0IHtcbiAgZm9udC1zaXplOiBAcmVsYXRpdmVTbWFsbDtcbn1cbi51aS5saXN0IHtcbiAgZm9udC1zaXplOiBAcmVsYXRpdmVNZWRpdW07XG59XG4udWkubGFyZ2UubGlzdCB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlTGFyZ2U7XG59XG4udWkuYmlnLmxpc3Qge1xuICBmb250LXNpemU6IEByZWxhdGl2ZUJpZztcbn1cbi51aS5odWdlLmxpc3Qge1xuICBmb250LXNpemU6IEByZWxhdGl2ZUh1Z2U7XG59XG4udWkubWFzc2l2ZS5saXN0IHtcbiAgZm9udC1zaXplOiBAcmVsYXRpdmVNYXNzaXZlO1xufVxuXG4udWkubWluaS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5taW5pLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiBAbWluaTtcbn1cbi51aS50aW55Lmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLnRpbnkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IEB0aW55O1xufVxuLnVpLnNtYWxsLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLnNtYWxsLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiBAc21hbGw7XG59XG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IEBtZWRpdW07XG59XG4udWkubGFyZ2UuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkubGFyZ2UuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IEBsYXJnZTtcbn1cbi51aS5iaWcuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuYmlnLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiBAYmlnO1xufVxuLnVpLmh1Z2UuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuaHVnZS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogQGh1Z2U7XG59XG4udWkubWFzc2l2ZS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5tYXNzaXZlLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiBAbWFzc2l2ZTtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuXG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AaW1wb3J0IFwiQGxlc3MvaW52ZW5pb190aGVtZS90aGVtZS9lbGVtZW50cy9saXN0Lm92ZXJyaWRlc1wiO1xuXG4vKiBEZXBvc2l0IGxpY2Vuc2UgZmllbGQgKi9cblxuLml0ZW0uZGVwb3NpdC1kcmFnLWxpc3RpdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgJi5oaWRkZW4ge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgLmRyYWctYW5jaG9yIHtcbiAgICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgIH1cbn1cblxuLnVpLml0ZW1zID4gLml0ZW0ubGljZW5zZS1pdGVtIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLmltYWdlLmxpY2Vuc2UtcmFkaW9ib3gge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDJlbTtcbiAgICAgICAgd2lkdGg6IDQlO1xuICAgIH1cbiAgICAuY29udGVudC5saWNlbnNlLWl0ZW0tY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgLmRlc2NyaXB0aW9uLmxpY2Vuc2UtaXRlbS1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHNtYWxsZXI7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udWkubGlzdCAuZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi51aS5jZWxsZWQubGlzdC5zZXBhcmF0ZWQtbGlzdCB7XG4gICAgPi5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICB9XG4gICAgPi5pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLml0ZW0gPiBhIHtcbiAgICAgICAgbWFyZ2luOiAzcHg7XG4gICAgfVxufVxuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTG9hZGVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdlbGVtZW50JztcbkBlbGVtZW50IDogJ2xvYWRlcic7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIExvYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4vKiBTdGFuZGFyZCBTaXplICovXG4udWkubG9hZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IEBsb2FkZXJUb3BPZmZzZXQ7XG4gIGxlZnQ6IEBsb2FkZXJMZWZ0T2Zmc2V0O1xuICBtYXJnaW46IDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiAxMDAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLyogU3RhdGljIFNoYXBlICovXG4udWkubG9hZGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcblxuICBib3JkZXItcmFkaXVzOiBAY2lyY3VsYXJSYWRpdXM7XG4gIGJvcmRlcjogQGxvYWRlckxpbmVXaWR0aCBzb2xpZCBAbG9hZGVyRmlsbENvbG9yO1xufVxuXG4vKiBBY3RpdmUgU2hhcGUgKi9cbi51aS5sb2FkZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgYW5pbWF0aW9uOiBsb2FkZXIgQGxvYWRlclNwZWVkIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG5cbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xuXG4gIGJvcmRlci1jb2xvcjogQHNoYXBlQm9yZGVyQ29sb3I7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogQGxvYWRlckxpbmVXaWR0aDtcblxuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG5cbi8qIEFjdGl2ZSBBbmltYXRpb24gKi9cbkBrZXlmcmFtZXMgbG9hZGVyIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuLyogU2l6ZXMgKi9cbi51aS5taW5pLmxvYWRlcjpiZWZvcmUsXG4udWkubWluaS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogQG1pbmk7XG4gIGhlaWdodDogQG1pbmk7XG4gIG1hcmdpbjogQG1pbmlPZmZzZXQ7XG59XG4udWkudGlueS5sb2FkZXI6YmVmb3JlLFxuLnVpLnRpbnkubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IEB0aW55O1xuICBoZWlnaHQ6IEB0aW55O1xuICBtYXJnaW46IEB0aW55T2Zmc2V0O1xufVxuLnVpLnNtYWxsLmxvYWRlcjpiZWZvcmUsXG4udWkuc21hbGwubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IEBzbWFsbDtcbiAgaGVpZ2h0OiBAc21hbGw7XG4gIG1hcmdpbjogQHNtYWxsT2Zmc2V0O1xufVxuLnVpLmxvYWRlcjpiZWZvcmUsXG4udWkubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IEBtZWRpdW07XG4gIGhlaWdodDogQG1lZGl1bTtcbiAgbWFyZ2luOiBAbWVkaXVtT2Zmc2V0O1xufVxuLnVpLmxhcmdlLmxvYWRlcjpiZWZvcmUsXG4udWkubGFyZ2UubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IEBsYXJnZTtcbiAgaGVpZ2h0OiBAbGFyZ2U7XG4gIG1hcmdpbjogQGxhcmdlT2Zmc2V0O1xufVxuLnVpLmJpZy5sb2FkZXI6YmVmb3JlLFxuLnVpLmJpZy5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogQGJpZztcbiAgaGVpZ2h0OiBAYmlnO1xuICBtYXJnaW46IEBiaWdPZmZzZXQ7XG59XG4udWkuaHVnZS5sb2FkZXI6YmVmb3JlLFxuLnVpLmh1Z2UubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IEBodWdlO1xuICBoZWlnaHQ6IEBodWdlO1xuICBtYXJnaW46IEBodWdlT2Zmc2V0O1xufVxuLnVpLm1hc3NpdmUubG9hZGVyOmJlZm9yZSxcbi51aS5tYXNzaXZlLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiBAbWFzc2l2ZTtcbiAgaGVpZ2h0OiBAbWFzc2l2ZTtcbiAgbWFyZ2luOiBAbWFzc2l2ZU9mZnNldDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTaG93IGluc2lkZSBhY3RpdmUgZGltbWVyICovXG4udWkuZGltbWVyIC5sb2FkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogQmxhY2sgRGltbWVyICovXG4udWkuZGltbWVyIC51aS5sb2FkZXIge1xuICBjb2xvcjogQGludmVydGVkTG9hZGVyVGV4dENvbG9yO1xufVxuLnVpLmRpbW1lciAudWkubG9hZGVyOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogQGludmVydGVkTG9hZGVyRmlsbENvbG9yO1xufVxuLnVpLmRpbW1lciAudWkubG9hZGVyOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiBAaW52ZXJ0ZWRTaGFwZUJvcmRlckNvbG9yO1xufVxuXG4vKiBXaGl0ZSBEaW1tZXIgKEludmVydGVkKSAqL1xuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyIHtcbiAgY29sb3I6IEBsb2FkZXJUZXh0Q29sb3I7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5sb2FkZXI6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiBAbG9hZGVyRmlsbENvbG9yO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiBAc2hhcGVCb3JkZXJDb2xvcjtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnRleHQubG9hZGVyIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5pbmRldGVybWluYXRlLmxvYWRlcjphZnRlciB7XG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IEBpbmRldGVybWluYXRlRGlyZWN0aW9uO1xuICBhbmltYXRpb24tZHVyYXRpb246IEBpbmRldGVybWluYXRlU3BlZWQ7XG59XG5cbi51aS5sb2FkZXIuYWN0aXZlLFxuLnVpLmxvYWRlci52aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkubG9hZGVyLmRpc2FibGVkLFxuLnVpLmxvYWRlci5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4vKiBMb2FkZXIgKi9cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLm1pbmkubG9hZGVyLFxuLnVpLm1pbmkubG9hZGVyIHtcbiAgd2lkdGg6IEBtaW5pO1xuICBoZWlnaHQ6IEBtaW5pO1xuICBmb250LXNpemU6IEBtaW5pRm9udFNpemU7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS50aW55LmxvYWRlcixcbi51aS50aW55LmxvYWRlciB7XG4gIHdpZHRoOiBAdGlueTtcbiAgaGVpZ2h0OiBAdGlueTtcbiAgZm9udC1zaXplOiBAdGlueUZvbnRTaXplO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkuc21hbGwubG9hZGVyLFxuLnVpLnNtYWxsLmxvYWRlciB7XG4gIHdpZHRoOiBAc21hbGw7XG4gIGhlaWdodDogQHNtYWxsO1xuICBmb250LXNpemU6IEBzbWFsbEZvbnRTaXplO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyLFxuLnVpLmxvYWRlciB7XG4gIHdpZHRoOiBAbWVkaXVtO1xuICBoZWlnaHQ6IEBtZWRpdW07XG4gIGZvbnQtc2l6ZTogQG1lZGl1bUZvbnRTaXplO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubGFyZ2UubG9hZGVyLFxuLnVpLmxhcmdlLmxvYWRlciB7XG4gIHdpZHRoOiBAbGFyZ2U7XG4gIGhlaWdodDogQGxhcmdlO1xuICBmb250LXNpemU6IEBsYXJnZUZvbnRTaXplO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkuYmlnLmxvYWRlcixcbi51aS5iaWcubG9hZGVyIHtcbiAgd2lkdGg6IEBiaWc7XG4gIGhlaWdodDogQGJpZztcbiAgZm9udC1zaXplOiBAYmlnRm9udFNpemU7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5odWdlLmxvYWRlcixcbi51aS5odWdlLmxvYWRlciB7XG4gIHdpZHRoOiBAaHVnZTtcbiAgaGVpZ2h0OiBAaHVnZTtcbiAgZm9udC1zaXplOiBAaHVnZUZvbnRTaXplO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubWFzc2l2ZS5sb2FkZXIsXG4udWkubWFzc2l2ZS5sb2FkZXIge1xuICB3aWR0aDogQG1hc3NpdmU7XG4gIGhlaWdodDogQG1hc3NpdmU7XG4gIGZvbnQtc2l6ZTogQG1hc3NpdmVGb250U2l6ZTtcbn1cblxuLyogVGV4dCBMb2FkZXIgKi9cbi51aS5taW5pLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiBAbWluaTtcbiAgcGFkZGluZy10b3A6IChAbWluaSArIEB0ZXh0RGlzdGFuY2UpO1xufVxuLnVpLnRpbnkudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IEB0aW55O1xuICBwYWRkaW5nLXRvcDogKEB0aW55ICsgQHRleHREaXN0YW5jZSk7XG59XG4udWkuc21hbGwudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IEBzbWFsbDtcbiAgcGFkZGluZy10b3A6IChAc21hbGwgKyBAdGV4dERpc3RhbmNlKTtcbn1cbi51aS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogQG1lZGl1bTtcbiAgcGFkZGluZy10b3A6IChAbWVkaXVtICsgQHRleHREaXN0YW5jZSk7XG59XG4udWkubGFyZ2UudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IEBsYXJnZTtcbiAgcGFkZGluZy10b3A6IChAbGFyZ2UgKyBAdGV4dERpc3RhbmNlKTtcbn1cbi51aS5iaWcudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IEBiaWc7XG4gIHBhZGRpbmctdG9wOiAoQGJpZyArIEB0ZXh0RGlzdGFuY2UpO1xufVxuLnVpLmh1Z2UudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IEBodWdlO1xuICBwYWRkaW5nLXRvcDogKEBodWdlICsgQHRleHREaXN0YW5jZSk7XG59XG4udWkubWFzc2l2ZS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogQG1hc3NpdmU7XG4gIHBhZGRpbmctdG9wOiAoQG1hc3NpdmUgKyBAdGV4dERpc3RhbmNlKTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW52ZXJ0ZWQubG9hZGVyIHtcbiAgY29sb3I6IEBpbnZlcnRlZExvYWRlclRleHRDb2xvclxufVxuLnVpLmludmVydGVkLmxvYWRlcjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IEBpbnZlcnRlZExvYWRlckZpbGxDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5sb2FkZXI6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJ0ZWRMb2FkZXJMaW5lQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIElubGluZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW5saW5lLmxvYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IEBpbmxpbmVWZXJ0aWNhbEFsaWduO1xuICBtYXJnaW46IEBpbmxpbmVNYXJnaW47XG4gIGxlZnQ6IDBlbTtcbiAgdG9wOiAwZW07XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLnVpLmlubGluZS5sb2FkZXIuYWN0aXZlLFxuLnVpLmlubGluZS5sb2FkZXIudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyogQ2VudGVyZWQgSW5saW5lICovXG4udWkuY2VudGVyZWQuaW5saW5lLmxvYWRlci5hY3RpdmUsXG4udWkuY2VudGVyZWQuaW5saW5lLmxvYWRlci52aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTG9hZGVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdlbGVtZW50JztcbkBlbGVtZW50IDogJ3BsYWNlaG9sZGVyJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnBsYWNlaG9sZGVyIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYW5pbWF0aW9uOiBwbGFjZWhvbGRlclNoaW1tZXIgQHBsYWNlaG9sZGVyTG9hZGluZ0FuaW1hdGlvbkR1cmF0aW9uIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogQHBsYWNlaG9sZGVyTG9hZGluZ0dyYWRpZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IEBwbGFjZWhvbGRlckxvYWRpbmdHcmFkaWVudFdpZHRoIDEwMCU7XG4gIG1heC13aWR0aDogQHBsYWNlaG9sZGVyTWF4V2lkdGg7XG59XG5cbkBrZXlmcmFtZXMgcGxhY2Vob2xkZXJTaGltbWVye1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLUBwbGFjZWhvbGRlckxvYWRpbmdHcmFkaWVudFdpZHRoIDBcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBAcGxhY2Vob2xkZXJMb2FkaW5nR3JhZGllbnRXaWR0aCAwXG4gIH1cbn1cblxuLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyIHtcbiAgbWFyZ2luLXRvcDogQGNvbnNlY3V0aXZlUGxhY2Vob2xkZXJTcGFjaW5nO1xufVxuLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiBAcGxhY2Vob2xkZXJBbmltYXRpb25JbnRlcnZhbDtcbn1cbi51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciB7XG4gIGFuaW1hdGlvbi1kZWxheTogKEBwbGFjZWhvbGRlckFuaW1hdGlvbkludGVydmFsICogMik7XG59XG4udWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIge1xuICBhbmltYXRpb24tZGVsYXk6IChAcGxhY2Vob2xkZXJBbmltYXRpb25JbnRlcnZhbCAqIDMpO1xufVxuLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAoQHBsYWNlaG9sZGVyQW5pbWF0aW9uSW50ZXJ2YWwgKiA0KTtcbn1cblxuLnVpLnBsYWNlaG9sZGVyLFxuLnVpLnBsYWNlaG9sZGVyID4gOmJlZm9yZSxcbi51aS5wbGFjZWhvbGRlciAuaW1hZ2UuaGVhZGVyOmFmdGVyLFxuLnVpLnBsYWNlaG9sZGVyIC5saW5lLFxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHdoaXRlO1xufVxuXG4vKiBJbWFnZSAqL1xuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZTpub3QoLmhlYWRlcik6bm90KC51aSkge1xuICBoZWlnaHQ6IEBwbGFjZWhvbGRlckltYWdlSGVpZ2h0O1xufVxuLnVpLnBsYWNlaG9sZGVyIC5zcXVhcmUuaW1hZ2U6bm90KC5oZWFkZXIpIHtcbiAgaGVpZ2h0OiAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIDEvMSBhc3BlY3QgcmF0aW8gKi9cbiAgcGFkZGluZy10b3A6IDEwMCU7XG59XG4udWkucGxhY2Vob2xkZXIgLnJlY3Rhbmd1bGFyLmltYWdlOm5vdCguaGVhZGVyKSB7XG4gIGhlaWdodDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiA0LzMgYXNwZWN0IHJhdGlvICovXG4gIHBhZGRpbmctdG9wOiA3NSU7XG59XG5cblxuLyogTGluZXMgKi9cbi51aS5wbGFjZWhvbGRlciAubGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBAcGxhY2Vob2xkZXJMaW5lTWFyZ2luO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmJlZm9yZSxcbi51aS5wbGFjZWhvbGRlciAubGluZTphZnRlciB7XG4gIHRvcDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTpiZWZvcmUge1xuICBsZWZ0OiAwcHg7XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6YWZ0ZXIge1xuICByaWdodDogMHB4O1xufVxuXG4vKiBBbnkgTGluZXMgKi9cbi51aS5wbGFjZWhvbGRlciAubGluZSB7XG4gIG1hcmdpbi1ib3R0b206IEBwbGFjZWhvbGRlckxpbmVIZWlnaHQ7XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmFmdGVyIHtcbiAgaGVpZ2h0OiBAcGxhY2Vob2xkZXJMaW5lSGVpZ2h0O1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXRvcDogQHBsYWNlaG9sZGVyTGluZUhlaWdodDtcbn1cblxuLyogSGVhZGVyIEltYWdlICsgMiBMaW5lcyAqL1xuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIExpbmUgT3V0ZGVudCAqL1xuLnVpLnBsYWNlaG9sZGVyIC5saW5lOm50aC1jaGlsZCgxKTphZnRlciB7XG4gIHdpZHRoOiBAcGxhY2Vob2xkZXJMaW5lT25lT3V0ZGVudDtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTpudGgtY2hpbGQoMik6YWZ0ZXIge1xuICB3aWR0aDogQHBsYWNlaG9sZGVyTGluZVR3b091dGRlbnQ7XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bnRoLWNoaWxkKDMpOmFmdGVyIHtcbiAgd2lkdGg6IEBwbGFjZWhvbGRlckxpbmVUaHJlZU91dGRlbnQ7XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bnRoLWNoaWxkKDQpOmFmdGVyIHtcbiAgd2lkdGg6IEBwbGFjZWhvbGRlckxpbmVGb3VyT3V0ZGVudDtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTpudGgtY2hpbGQoNSk6YWZ0ZXIge1xuICB3aWR0aDogQHBsYWNlaG9sZGVyTGluZUZpdmVPdXRkZW50O1xufVxuXG4vKiBIZWFkZXIgTGluZSAxICYgMiovXG4udWkucGxhY2Vob2xkZXIgLmhlYWRlciAubGluZSB7XG4gIG1hcmdpbi1ib3R0b206IEBwbGFjZWhvbGRlckhlYWRlckxpbmVIZWlnaHQ7XG59XG4udWkucGxhY2Vob2xkZXIgLmhlYWRlciAubGluZTpiZWZvcmUsXG4udWkucGxhY2Vob2xkZXIgLmhlYWRlciAubGluZTphZnRlciB7XG4gIGhlaWdodDogQHBsYWNlaG9sZGVySGVhZGVyTGluZUhlaWdodDtcbn1cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXRvcDogQHBsYWNlaG9sZGVySGVhZGVyTGluZUhlaWdodDtcbn1cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IEBwbGFjZWhvbGRlckhlYWRlckxpbmVPbmVPdXRkZW50O1xufVxuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXIgLmxpbmU6bnRoLWNoaWxkKDIpOmFmdGVyIHtcbiAgd2lkdGg6IEBwbGFjZWhvbGRlckhlYWRlckxpbmVUd29PdXRkZW50O1xufVxuXG4vKiBJbWFnZSBIZWFkZXIgKi9cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2UuaGVhZGVyIC5saW5lIHtcbiAgbWFyZ2luLWxlZnQ6IEBwbGFjZWhvbGRlckltYWdlV2lkdGg7XG59XG4udWkucGxhY2Vob2xkZXIgLmltYWdlLmhlYWRlciAubGluZTpiZWZvcmUge1xuICB3aWR0aDogQHBsYWNlaG9sZGVySW1hZ2VUZXh0SW5kZW50O1xufVxuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXI6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBAcGxhY2Vob2xkZXJMaW5lTWFyZ2luO1xuICBjb250ZW50OiAnJztcbiAgbWFyZ2luLWxlZnQ6IEBwbGFjZWhvbGRlckltYWdlV2lkdGg7XG59XG5cbi8qIFNwYWNpbmcgKi9cbi51aS5wbGFjZWhvbGRlciAuaW1hZ2UgLmxpbmU6Zmlyc3QtY2hpbGQsXG4udWkucGxhY2Vob2xkZXIgLnBhcmFncmFwaCAubGluZTpmaXJzdC1jaGlsZCxcbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOmZpcnN0LWNoaWxkIHtcbiAgaGVpZ2h0OiAwLjAxcHg7XG59XG4udWkucGxhY2Vob2xkZXIgLmltYWdlOm5vdCg6Zmlyc3QtY2hpbGQpOmJlZm9yZSxcbi51aS5wbGFjZWhvbGRlciAucGFyYWdyYXBoOm5vdCg6Zmlyc3QtY2hpbGQpOmJlZm9yZSxcbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyOm5vdCg6Zmlyc3QtY2hpbGQpOmJlZm9yZSB7XG4gIGhlaWdodDogQHBsYWNlaG9sZGVyU3BhY2luZztcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBJbnZlcnRlZCBDb250ZW50IExvYWRlciAqL1xuLnVpLmludmVydGVkLnBsYWNlaG9sZGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogQHBsYWNlaG9sZGVySW52ZXJ0ZWRMb2FkaW5nR3JhZGllbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgPiA6YmVmb3JlLFxuLnVpLmludmVydGVkLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXI6YWZ0ZXIsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgLmxpbmUsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgLmxpbmU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmxhY2s7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkucGxhY2Vob2xkZXIgLmZ1bGwubGluZS5saW5lLmxpbmU6YWZ0ZXIge1xuICB3aWR0aDogQHBsYWNlaG9sZGVyRnVsbExpbmVPdXRkZW50O1xufVxuLnVpLnBsYWNlaG9sZGVyIC52ZXJ5LmxvbmcubGluZS5saW5lLmxpbmU6YWZ0ZXIge1xuICB3aWR0aDogQHBsYWNlaG9sZGVyVmVyeUxvbmdMaW5lT3V0ZGVudDtcbn1cbi51aS5wbGFjZWhvbGRlciAubG9uZy5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiBAcGxhY2Vob2xkZXJMb25nTGluZU91dGRlbnQ7XG59XG4udWkucGxhY2Vob2xkZXIgLm1lZGl1bS5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiBAcGxhY2Vob2xkZXJNZWRpdW1MaW5lT3V0ZGVudDtcbn1cbi51aS5wbGFjZWhvbGRlciAuc2hvcnQubGluZS5saW5lLmxpbmU6YWZ0ZXIge1xuICB3aWR0aDogQHBsYWNlaG9sZGVyU2hvcnRMaW5lT3V0ZGVudDtcbn1cbi51aS5wbGFjZWhvbGRlciAudmVyeS5zaG9ydC5saW5lLmxpbmUubGluZTphZnRlciB7XG4gIHdpZHRoOiBAcGxhY2Vob2xkZXJWZXJ5U2hvcnRMaW5lT3V0ZGVudDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZsdWlkLnBsYWNlaG9sZGVyIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUmFpbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdlbGVtZW50JztcbkBlbGVtZW50IDogJ3JhaWwnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUmFpbHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5yYWlsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAlO1xuICB3aWR0aDogQHdpZHRoO1xuICBoZWlnaHQ6IEBoZWlnaHQ7XG59XG5cbi51aS5sZWZ0LnJhaWwge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTtcbiAgcGFkZGluZzogMGVtIEBzcGxpdERpc3RhbmNlIDBlbSAwZW07XG4gIG1hcmdpbjogMGVtIEBzcGxpdERpc3RhbmNlIDBlbSAwZW07XG59XG5cbi51aS5yaWdodC5yYWlsIHtcbiAgbGVmdDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIEBzcGxpdERpc3RhbmNlO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIEBzcGxpdERpc3RhbmNlO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEludGVybmFsXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubGVmdC5pbnRlcm5hbC5yYWlsIHtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSBAc3BsaXREaXN0YW5jZTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSBAc3BsaXREaXN0YW5jZTtcbn1cblxuLnVpLnJpZ2h0LmludGVybmFsLnJhaWwge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMCU7XG4gIHBhZGRpbmc6IDBlbSBAc3BsaXREaXN0YW5jZSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSBAc3BsaXREaXN0YW5jZSAwZW0gMGVtO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXZpZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRpdmlkaW5nLnJhaWwge1xuICB3aWR0aDogQGRpdmlkaW5nV2lkdGg7XG59XG4udWkubGVmdC5kaXZpZGluZy5yYWlsIHtcbiAgcGFkZGluZzogMGVtIEBzcGxpdERpdmlkaW5nRGlzdGFuY2UgMGVtIDBlbTtcbiAgbWFyZ2luOiAwZW0gQHNwbGl0RGl2aWRpbmdEaXN0YW5jZSAwZW0gMGVtO1xuICBib3JkZXItcmlnaHQ6IEBkaXZpZGluZ0JvcmRlcjtcbn1cbi51aS5yaWdodC5kaXZpZGluZy5yYWlsIHtcbiAgYm9yZGVyLWxlZnQ6IEBkaXZpZGluZ0JvcmRlcjtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gQHNwbGl0RGl2aWRpbmdEaXN0YW5jZTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSBAc3BsaXREaXZpZGluZ0Rpc3RhbmNlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlzdGFuY2Vcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jbG9zZS5yYWlsIHtcbiAgd2lkdGg6IEBjbG9zZVdpZHRoO1xufVxuLnVpLmNsb3NlLmxlZnQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSBAc3BsaXRDbG9zZURpc3RhbmNlIDBlbSAwZW07XG4gIG1hcmdpbjogMGVtIEBzcGxpdENsb3NlRGlzdGFuY2UgMGVtIDBlbTtcbn1cbi51aS5jbG9zZS5yaWdodC5yYWlsIHtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gQHNwbGl0Q2xvc2VEaXN0YW5jZTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSBAc3BsaXRDbG9zZURpc3RhbmNlO1xufVxuXG4udWkudmVyeS5jbG9zZS5yYWlsIHtcbiAgd2lkdGg6IEB2ZXJ5Q2xvc2VXaWR0aDtcbn1cbi51aS52ZXJ5LmNsb3NlLmxlZnQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSBAc3BsaXRWZXJ5Q2xvc2VEaXN0YW5jZSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSBAc3BsaXRWZXJ5Q2xvc2VEaXN0YW5jZSAwZW0gMGVtO1xufVxuLnVpLnZlcnkuY2xvc2UucmlnaHQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIEBzcGxpdFZlcnlDbG9zZURpc3RhbmNlO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIEBzcGxpdFZlcnlDbG9zZURpc3RhbmNlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5hdHRhY2hlZC5sZWZ0LnJhaWwsXG4udWkuYXR0YWNoZWQucmlnaHQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luOiAwZW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWluaS5yYWlsIHtcbiAgZm9udC1zaXplOiBAbWluaTtcbn1cbi51aS50aW55LnJhaWwge1xuICBmb250LXNpemU6IEB0aW55O1xufVxuLnVpLnNtYWxsLnJhaWwge1xuICBmb250LXNpemU6IEBzbWFsbDtcbn1cbi51aS5yYWlsIHtcbiAgZm9udC1zaXplOiBAbWVkaXVtO1xufVxuLnVpLmxhcmdlLnJhaWwge1xuICBmb250LXNpemU6IEBsYXJnZTtcbn1cbi51aS5iaWcucmFpbCB7XG4gIGZvbnQtc2l6ZTogQGJpZztcbn1cbi51aS5odWdlLnJhaWwge1xuICBmb250LXNpemU6IEBodWdlO1xufVxuLnVpLm1hc3NpdmUucmFpbCB7XG4gIGZvbnQtc2l6ZTogQG1hc3NpdmU7XG59XG5cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUmV2ZWFsXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ2VsZW1lbnQnO1xuQGVsZW1lbnQgOiAncmV2ZWFsJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUmV2ZWFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkucmV2ZWFsICB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDBlbSAhaW1wb3J0YW50O1xufVxuXG4udWkucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB0b3A6IDBlbSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgei1pbmRleDogQHRvcFpJbmRleCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbn1cbi51aS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgei1pbmRleDogQGJvdHRvbVpJbmRleCAhaW1wb3J0YW50O1xufVxuXG4vKiBNYWtlIHN1cmUgaG92ZXJlZCBlbGVtZW50IGlzIG9uIHRvcCBvZiBvdGhlciByZXZlYWwgKi9cbi51aS5hY3RpdmUucmV2ZWFsIC52aXNpYmxlLmNvbnRlbnQsXG4udWkucmV2ZWFsOmhvdmVyIC52aXNpYmxlLmNvbnRlbnQge1xuICB6LWluZGV4OiBAYWN0aXZlWkluZGV4ICFpbXBvcnRhbnQ7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2xpZGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5zbGlkZS5yZXZlYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udWkuc2xpZGUucmV2ZWFsID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGZsb2F0OiBsZWZ0O1xuXG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2l0aW9uOiBAc2xpZGVUcmFuc2l0aW9uO1xufVxuXG4udWkuc2xpZGUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5zbGlkZS5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLmFjdGl2ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQsXG4udWkuc2xpZGUucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSAhaW1wb3J0YW50O1xufVxuXG4udWkuc2xpZGUucmlnaHQucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yaWdodC5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmlnaHQuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUucmlnaHQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnJpZ2h0LmFjdGl2ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQsXG4udWkuc2xpZGUucmlnaHQucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSAhaW1wb3J0YW50O1xufVxuXG4udWkuc2xpZGUudXAucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUudXAuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUudXAucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS51cC5hY3RpdmUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50LFxuLnVpLnNsaWRlLnVwLnJldmVhbDpob3ZlciA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSkgIWltcG9ydGFudDtcbn1cblxuLnVpLnNsaWRlLmRvd24ucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLmRvd24uYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUuZG93bi5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuZG93bi5hY3RpdmUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50LFxuLnVpLnNsaWRlLmRvd24ucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKSAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZhZGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mYWRlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLmZhZGUuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuZmFkZS5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgb3BhY2l0eTogMDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNb3ZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubW92ZS5yZXZlYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udWkubW92ZS5yZXZlYWwgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcblxuICBtYXJnaW46IDBlbTtcbiAgdHJhbnNpdGlvbjogQG1vdmVUcmFuc2l0aW9uO1xufVxuXG4udWkubW92ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG59XG4udWkubW92ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDogMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLm1vdmUucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLnJpZ2h0LmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLm1vdmUucmlnaHQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUudXAuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkubW92ZS51cC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUuZG93bi5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5tb3ZlLmRvd24ucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKSAhaW1wb3J0YW50O1xufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSb3RhdGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5yb3RhdGUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uRHVyYXRpb247XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xufVxuXG4udWkucm90YXRlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLnJpZ2h0LnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gcmlnaHQ7XG59XG4udWkucm90YXRlLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJvdGF0ZS5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJvdGF0ZS5yaWdodC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUucmlnaHQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKEByb3RhdGVEZWdyZWVzKTtcbn1cblxuLnVpLnJvdGF0ZS5sZWZ0LnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcbn1cbi51aS5yb3RhdGUubGVmdC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUubGVmdC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLUByb3RhdGVEZWdyZWVzKTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuZGlzYWJsZWQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUudmlzaWJsZS5jb250ZW50IHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIHRvcDogMCAhaW1wb3J0YW50O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5kaXNhYmxlZC5yZXZlYWw6aG92ZXIgPiAuaGlkZGVuLmhpZGRlbi5jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkucmV2ZWFsID4gLnVpLnJpYmJvbi5sYWJlbCB7XG4gIHotaW5kZXg6IEBvdmVybGF5WkluZGV4O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFZpc2libGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS52aXNpYmxlLnJldmVhbCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEluc3RhbnRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pbnN0YW50LnJldmVhbCA+IC5jb250ZW50IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHMgIWltcG9ydGFudDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnJldmVhbCA+IC5jb250ZW50IHtcbiAgZm9udC1zaXplOiBAbWVkaXVtICFpbXBvcnRhbnQ7XG59XG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFNlZ21lbnRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAnZWxlbWVudCc7XG5AZWxlbWVudCA6ICdzZWdtZW50JztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2VnbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLnNlZ21lbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IEBiYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBAYm94U2hhZG93O1xuICBtYXJnaW46IEBtYXJnaW47XG4gIHBhZGRpbmc6IEBwYWRkaW5nO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xuICBib3JkZXI6IEBib3JkZXI7XG59XG5cbi51aS5zZWdtZW50OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVpLnZlcnRpY2FsLnNlZ21lbnQge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG4gIHBhZGRpbmctcmlnaHQ6IDBlbTtcblxuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogQGJvcmRlcldpZHRoIHNvbGlkIEBib3JkZXJDb2xvcjtcbn1cbi51aS52ZXJ0aWNhbC5zZWdtZW50Omxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIExvb3NlIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEhlYWRlciAqL1xuLnVpLmludmVydGVkLnNlZ21lbnQgPiAudWkuaGVhZGVyIHtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cblxuLyogTGFiZWwgKi9cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uc2VnbWVudCA+IFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnNlZ21lbnQgPiBbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMGVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtO1xufVxuLnVpLmF0dGFjaGVkLnNlZ21lbnQ6bm90KC50b3ApOm5vdCguYm90dG9tKSA+IFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwZW07XG59XG4udWkuYXR0YWNoZWQuc2VnbWVudDpub3QoLnRvcCk6bm90KC5ib3R0b20pID4gW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbTtcbn1cblxuLyogR3JpZCAqL1xuLnVpLnBhZ2UuZ3JpZC5zZWdtZW50LFxuLnVpLmdyaWQgPiAucm93ID4gLnVpLnNlZ21lbnQuY29sdW1uLFxuLnVpLmdyaWQgPiAudWkuc2VnbWVudC5jb2x1bW4ge1xuICBwYWRkaW5nLXRvcDogQHBhZ2VHcmlkTWFyZ2luO1xuICBwYWRkaW5nLWJvdHRvbTogQHBhZ2VHcmlkTWFyZ2luO1xufVxuLnVpLmdyaWQuc2VnbWVudCB7XG4gIG1hcmdpbjogQG1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cztcbn1cblxuLyogVGFibGUgKi9cbi51aS5iYXNpYy50YWJsZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogQGJhY2tncm91bmQ7XG4gIGJvcmRlcjogQGJvcmRlcjtcbiAgYm94LXNoYWRvdzogQGJveFNoYWRvdztcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlLnNlZ21lbnQge1xuICBwYWRkaW5nOiBAcGFkZGluZztcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBQbGFjZWhvbGRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICBhbmltYXRpb246IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwYWRkaW5nOiBAcGxhY2Vob2xkZXJQYWRkaW5nO1xuICBtaW4taGVpZ2h0OiBAcGxhY2Vob2xkZXJNaW5IZWlnaHQ7XG4gIGJhY2tncm91bmQ6IEBwbGFjZWhvbGRlckJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQHBsYWNlaG9sZGVyQm9yZGVyQ29sb3I7XG4gIGJveC1zaGFkb3c6IEBwbGFjZWhvbGRlckJveFNoYWRvdztcbn1cblxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmJ1dHRvbixcbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IHRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCAuZmllbGQsXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCB0ZXh0YXJlYSxcbi51aS5wbGFjZWhvbGRlci5zZWdtZW50ID4gLnVpLmlucHV0LFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmJ1dHRvbiB7XG4gIG1heC13aWR0aDogQHBsYWNlaG9sZGVyQ29udGVudE1heFdpZHRoO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmNvbHVtbiAuYnV0dG9uLFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmNvbHVtbiAuZmllbGQsXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCAuY29sdW1uIHRleHRhcmVhLFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmNvbHVtbiA+IC51aS5pbnB1dCB7XG4gIG1heC13aWR0aDogQHBsYWNlaG9sZGVyQ29udGVudE1heFdpZHRoO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCA+IC5pbmxpbmUgIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgPiAuaW5saW5lID4gLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogQHBsYWNlaG9sZGVyQ29udGVudElubGluZUJ1dHRvbk1hcmdpbjtcbn1cbi51aS5wbGFjZWhvbGRlci5zZWdtZW50ID4gLmlubGluZSA+IC5idXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMHB4O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQaWxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkucGlsZWQuc2VnbWVudHMsXG4udWkucGlsZWQuc2VnbWVudCB7XG4gIG1hcmdpbjogQHBpbGVkTWFyZ2luIDBlbTtcbiAgYm94LXNoYWRvdzogQHBpbGVkQm94U2hhZG93O1xuICB6LWluZGV4OiBAcGlsZWRaSW5kZXg7XG59XG4udWkucGlsZWQuc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4udWkucGlsZWQuc2VnbWVudHM6YWZ0ZXIsXG4udWkucGlsZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnBpbGVkLnNlZ21lbnQ6YWZ0ZXIsXG4udWkucGlsZWQuc2VnbWVudDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogQHBpbGVkQm9yZGVyO1xuICBib3gtc2hhZG93OiBAcGlsZWRCb3hTaGFkb3c7XG59XG4udWkucGlsZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnBpbGVkLnNlZ21lbnQ6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLUBwaWxlZERlZ3JlZXMpO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IC0yO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRzOmFmdGVyLFxuLnVpLnBpbGVkLnNlZ21lbnQ6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZShAcGlsZWREZWdyZWVzKTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMTtcbn1cblxuLyogUGlsZWQgQXR0YWNoZWQgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ucGlsZWQuc2VnbWVudCB7XG4gIG1hcmdpbi10b3A6IEBwaWxlZE1hcmdpbjtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiBAcGlsZWRNYXJnaW47XG59XG4udWkucGlsZWQuc2VnbWVudFtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhY2tlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc3RhY2tlZC5zZWdtZW50IHtcbiAgcGFkZGluZy1ib3R0b206IEBzdGFja2VkUGFkZGluZztcbn1cbi51aS5zdGFja2VkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS5zdGFja2VkLnNlZ21lbnRzOmFmdGVyLFxuLnVpLnN0YWNrZWQuc2VnbWVudDpiZWZvcmUsXG4udWkuc3RhY2tlZC5zZWdtZW50OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtKEBzdGFja2VkSGVpZ2h0IC8gMik7XG4gIGxlZnQ6IDAlO1xuXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAYm9yZGVyQ29sb3I7XG4gIGJhY2tncm91bmQ6IEBzdGFja2VkUGFnZUJhY2tncm91bmQ7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogQHN0YWNrZWRIZWlnaHQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4udWkuc3RhY2tlZC5zZWdtZW50czpiZWZvcmUsXG4udWkuc3RhY2tlZC5zZWdtZW50OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEFkZCBhZGRpdGlvbmFsIHBhZ2UgKi9cbi51aS50YWxsLnN0YWNrZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnRhbGwuc3RhY2tlZC5zZWdtZW50OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3R0b206IDBweDtcbn1cblxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnRzOmFmdGVyLFxuLnVpLnN0YWNrZWQuaW52ZXJ0ZWQuc2VnbWVudDpiZWZvcmUsXG4udWkuc3RhY2tlZC5pbnZlcnRlZC5zZWdtZW50OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHN1YnRsZVRyYW5zcGFyZW50QmxhY2s7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAc2VsZWN0ZWRCb3JkZXJDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUGFkZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5wYWRkZWQuc2VnbWVudCB7XG4gIHBhZGRpbmc6IEBwYWRkZWRTZWdtZW50UGFkZGluZztcbn1cblxuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnNlZ21lbnQge1xuICBwYWRkaW5nOiBAdmVyeVBhZGRlZFNlZ21lbnRQYWRkaW5nO1xufVxuXG4vKiBQYWRkZWQgdmVydGljYWwgKi9cbi51aS5wYWRkZWQuc2VnbWVudC52ZXJ0aWNhbC5zZWdtZW50LFxuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnZlcnRpY2FsLnNlZ21lbnQge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jb21wYWN0LnNlZ21lbnQge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLyogQ29tcGFjdCBHcm91cCAqL1xuLnVpLmNvbXBhY3Quc2VnbWVudHMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbi51aS5jb21wYWN0LnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLnNlZ21lbnRzIC5jb21wYWN0LnNlZ21lbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAxIGF1dG87XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENpcmN1bGFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jaXJjdWxhci5zZWdtZW50IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcGFkZGluZzogQGNpcmN1bGFyUGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItcmFkaXVzOiA1MDBlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmFpc2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5yYWlzZWQuc2VnbWVudHMsXG4udWkucmFpc2VkLnNlZ21lbnQge1xuICBib3gtc2hhZG93OiBAcmFpc2VkQm94U2hhZG93O1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qIEdyb3VwICovXG4udWkuc2VnbWVudHMge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogQGdyb3VwZWRNYXJnaW47XG4gIGJvcmRlcjogQGdyb3VwZWRCb3JkZXI7XG4gIGJveC1zaGFkb3c6IEBncm91cGVkQm94U2hhZG93O1xuICBib3JkZXItcmFkaXVzOiBAZ3JvdXBlZEJvcmRlclJhZGl1cztcbn1cbi51aS5zZWdtZW50czpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5zZWdtZW50czpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuXG5cbi8qIE5lc3RlZCBTZWdtZW50ICovXG4udWkuc2VnbWVudHMgPiAuc2VnbWVudCB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW46IEBncm91cGVkU2VnbWVudE1hcmdpbjtcbiAgd2lkdGg6IEBncm91cGVkU2VnbWVudFdpZHRoO1xuICBib3gtc2hhZG93OiBAZ3JvdXBlZFNlZ21lbnRCb3hTaGFkb3c7XG4gIGJvcmRlcjogQGdyb3VwZWRTZWdtZW50Qm9yZGVyO1xuICBib3JkZXItdG9wOiBAZ3JvdXBlZFNlZ21lbnREaXZpZGVyO1xufVxuXG4udWkuc2VnbWVudHM6bm90KC5ob3Jpem9udGFsKSA+IC5zZWdtZW50OmZpcnN0LWNoaWxkIHtcbiAgdG9wOiBAYXR0YWNoZWRUb3BPZmZzZXQ7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogQGF0dGFjaGVkVG9wT2Zmc2V0O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXMgMGVtIDBlbTtcbn1cblxuLyogQm90dG9tICovXG4udWkuc2VnbWVudHM6bm90KC5ob3Jpem9udGFsKSA+IC5zZWdtZW50Omxhc3QtY2hpbGQge1xuICB0b3A6IEBhdHRhY2hlZEJvdHRvbU9mZnNldDtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBib3gtc2hhZG93OiBAYXR0YWNoZWRCb3R0b21Cb3hTaGFkb3c7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzO1xufVxuXG4vKiBPbmx5ICovXG4udWkuc2VnbWVudHM6bm90KC5ob3Jpem9udGFsKSA+IC5zZWdtZW50Om9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xufVxuXG5cbi8qIE5lc3RlZCBHcm91cCAqL1xuLnVpLnNlZ21lbnRzID4gLnVpLnNlZ21lbnRzIHtcbiAgYm9yZGVyLXRvcDogQGdyb3VwZWRTZWdtZW50RGl2aWRlcjtcbiAgbWFyZ2luOiBAbmVzdGVkR3JvdXBNYXJnaW47XG59XG4udWkuc2VnbWVudHMgPiAuc2VnbWVudHM6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLnNlZ21lbnRzID4gLnNlZ21lbnQgKyAuc2VnbWVudHM6bm90KC5ob3Jpem9udGFsKSB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cblxuLyogSG9yaXpvbnRhbCBHcm91cCAqL1xuLnVpLmhvcml6b250YWwuc2VnbWVudHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBwYWRkaW5nOiAwZW07XG4gIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBAYm94U2hhZG93O1xuICBtYXJnaW46IEBtYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG4gIGJvcmRlcjogQGJvcmRlcjtcbn1cblxuLyogTmVzdGVkIEhvcml6b250YWwgR3JvdXAgKi9cbi51aS5zZWdtZW50cyA+IC5ob3Jpem9udGFsLnNlZ21lbnRzIHtcbiAgbWFyZ2luOiAwZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXRvcDogQGdyb3VwZWRTZWdtZW50RGl2aWRlcjtcbn1cblxuLyogSG9yaXpvbnRhbCBTZWdtZW50ICovXG4udWkuaG9yaXpvbnRhbC5zZWdtZW50cyA+IC5zZWdtZW50IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIC1tcy1mbGV4OiAxIDEgMHB4OyAvKiBTb2x2ZXMgIzI1NTAgTVMgRmxleCAqL1xuICBtYXJnaW46IDBlbTtcbiAgbWluLXdpZHRoOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IEBib3JkZXJXaWR0aCBzb2xpZCBAYm9yZGVyQ29sb3I7XG59XG5cbi8qIEJvcmRlciBGaXhlcyAqL1xuLnVpLnNlZ21lbnRzID4gLmhvcml6b250YWwuc2VnbWVudHM6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmhvcml6b250YWwuc2VnbWVudHMgPiAuc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRpc2FibGVkLnNlZ21lbnQge1xuICBvcGFjaXR5OiBAZGlzYWJsZWRPcGFjaXR5O1xuICBjb2xvcjogQGRpc2FibGVkVGV4dENvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmxvYWRpbmcuc2VnbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG59XG4udWkubG9hZGluZy5zZWdtZW50OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDAlO1xuICBiYWNrZ3JvdW5kOiBAbG9hZGVyRGltbWVyQ29sb3I7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG4gIHotaW5kZXg6IEBsb2FkZXJEaW1tZXJaSW5kZXg7XG59XG4udWkubG9hZGluZy5zZWdtZW50OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcblxuICBtYXJnaW46IEBsb2FkZXJNYXJnaW47XG4gIHdpZHRoOiBAbG9hZGVyU2l6ZTtcbiAgaGVpZ2h0OiBAbG9hZGVyU2l6ZTtcblxuICBhbmltYXRpb246IHNlZ21lbnQtc3BpbiBAbG9hZGVyU3BlZWQgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcblxuICBib3JkZXItcmFkaXVzOiBAY2lyY3VsYXJSYWRpdXM7XG5cbiAgYm9yZGVyLWNvbG9yOiBAbG9hZGVyTGluZUNvbG9yIEBsb2FkZXJGaWxsQ29sb3IgQGxvYWRlckZpbGxDb2xvciBAbG9hZGVyRmlsbENvbG9yO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IEBsb2FkZXJMaW5lV2lkdGg7XG5cbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB6LWluZGV4OiBAbG9hZGVyTGluZVpJbmRleDtcbn1cblxuQGtleWZyYW1lcyBzZWdtZW50LXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmJhc2ljLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiBAYmFzaWNCYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBAYmFzaWNCb3hTaGFkb3c7XG4gIGJvcmRlcjogQGJhc2ljQm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAYmFzaWNCb3JkZXJSYWRpdXM7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENsZWFyaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jbGVhcmluZy5zZWdtZW50OmFmdGVyIHtcbiAgY29udGVudDogXCIuXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBSZWQgKi9cbi51aS5yZWQuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IEBjb2xvcmVkQm9yZGVyU2l6ZSBzb2xpZCBAcmVkICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmVkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogT3JhbmdlICovXG4udWkub3JhbmdlLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQG9yYW5nZSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG9yYW5nZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIFllbGxvdyAqL1xuLnVpLnllbGxvdy5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogQGNvbG9yZWRCb3JkZXJTaXplIHNvbGlkIEB5ZWxsb3cgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB5ZWxsb3cgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBPbGl2ZSAqL1xuLnVpLm9saXZlLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQG9saXZlICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvbGl2ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4uc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IEBjb2xvcmVkQm9yZGVyU2l6ZSBzb2xpZCBAZ3JlZW4gIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGdyZWVuICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogVGVhbCAqL1xuLnVpLnRlYWwuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IEBjb2xvcmVkQm9yZGVyU2l6ZSBzb2xpZCBAdGVhbCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0ZWFsICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogQmx1ZSAqL1xuLnVpLmJsdWUuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IEBjb2xvcmVkQm9yZGVyU2l6ZSBzb2xpZCBAYmx1ZSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibHVlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogVmlvbGV0ICovXG4udWkudmlvbGV0LnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQHZpb2xldCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHZpb2xldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIFB1cnBsZSAqL1xuLnVpLnB1cnBsZS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogQGNvbG9yZWRCb3JkZXJTaXplIHNvbGlkIEBwdXJwbGUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwdXJwbGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBQaW5rICovXG4udWkucGluay5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogQGNvbG9yZWRCb3JkZXJTaXplIHNvbGlkIEBwaW5rICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBpbmsgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBCcm93biAqL1xuLnVpLmJyb3duLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQGJyb3duICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicm93biAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIEdyZXkgKi9cbi51aS5ncmV5LnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQGdyZXkgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JleSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIEJsYWNrICovXG4udWkuYmxhY2suc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IEBjb2xvcmVkQm9yZGVyU2l6ZSBzb2xpZCBAYmxhY2sgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5zZWdtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsYWNrICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLnNlZ21lbnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uc2VnbWVudCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnVpW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLnNlZ21lbnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZsb2F0ZWQuc2VnbWVudCxcbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uc2VnbWVudCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IEBmbG9hdGVkRGlzdGFuY2U7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5zZWdtZW50IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogQGZsb2F0ZWREaXN0YW5jZTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pbnZlcnRlZC5zZWdtZW50IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmludmVydGVkLnNlZ21lbnQsXG4udWkucHJpbWFyeS5pbnZlcnRlZC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQmFja2dyb3VuZDtcbiAgY29sb3I6IEBpbnZlcnRlZFRleHRDb2xvcjtcbn1cblxuLyogTmVzdGVkICovXG4udWkuaW52ZXJ0ZWQuc2VnbWVudCAuc2VnbWVudCB7XG4gIGNvbG9yOiBAdGV4dENvbG9yO1xufVxuLnVpLmludmVydGVkLnNlZ21lbnQgLmludmVydGVkLnNlZ21lbnQge1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xufVxuXG4vKiBBdHRhY2hlZCAqL1xuLnVpLmludmVydGVkLmF0dGFjaGVkLnNlZ21lbnQge1xuICBib3JkZXItY29sb3I6IEBzb2xpZFdoaXRlQm9yZGVyQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBFbXBoYXNpc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTZWNvbmRhcnkgKi9cbi51aS5zZWNvbmRhcnkuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6IEBzZWNvbmRhcnlCYWNrZ3JvdW5kO1xuICBjb2xvcjogQHNlY29uZGFyeUNvbG9yO1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogQHNlY29uZGFyeUludmVydGVkQmFja2dyb3VuZDtcbiAgY29sb3I6IEBzZWNvbmRhcnlJbnZlcnRlZENvbG9yO1xufVxuXG4vKiBUZXJ0aWFyeSAqL1xuLnVpLnRlcnRpYXJ5LnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiBAdGVydGlhcnlCYWNrZ3JvdW5kO1xuICBjb2xvcjogQHRlcnRpYXJ5Q29sb3I7XG59XG4udWkudGVydGlhcnkuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6IEB0ZXJ0aWFyeUludmVydGVkQmFja2dyb3VuZDtcbiAgY29sb3I6IEB0ZXJ0aWFyeUludmVydGVkQ29sb3I7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBNaWRkbGUgKi9cbi51aS5hdHRhY2hlZC5zZWdtZW50IHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtIEBhdHRhY2hlZEhvcml6b250YWxPZmZzZXQ7XG4gIHdpZHRoOiBAYXR0YWNoZWRXaWR0aDtcbiAgbWF4LXdpZHRoOiBAYXR0YWNoZWRXaWR0aDtcbiAgYm94LXNoYWRvdzogQGF0dGFjaGVkQm94U2hhZG93O1xuICBib3JkZXI6IEBhdHRhY2hlZEJvcmRlcjtcbn1cbi51aS5hdHRhY2hlZDpub3QoLm1lc3NhZ2UpICsgLnVpLmF0dGFjaGVkLnNlZ21lbnQ6bm90KC50b3ApIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLyogVG9wICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnNlZ21lbnQge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICB0b3A6IEBhdHRhY2hlZFRvcE9mZnNldDtcbiAgbWFyZ2luLXRvcDogQHZlcnRpY2FsTWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXMgMGVtIDBlbTtcbn1cbi51aS5zZWdtZW50W2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cblxuLyogQm90dG9tICovXG4udWkuc2VnbWVudFtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICB0b3A6IEBhdHRhY2hlZEJvdHRvbU9mZnNldDtcbiAgbWFyZ2luLWJvdHRvbTogQHZlcnRpY2FsTWFyZ2luO1xuICBib3gtc2hhZG93OiBAYXR0YWNoZWRCb3R0b21Cb3hTaGFkb3c7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzO1xufVxuLnVpLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5taW5pLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLm1pbmkuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogQG1pbmk7XG59XG4udWkudGlueS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS50aW55LnNlZ21lbnQge1xuICBmb250LXNpemU6IEB0aW55O1xufVxuLnVpLnNtYWxsLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLnNtYWxsLnNlZ21lbnQge1xuICBmb250LXNpemU6IEBzbWFsbDtcbn1cbi51aS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiBAbWVkaXVtO1xufVxuLnVpLmxhcmdlLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLmxhcmdlLnNlZ21lbnQge1xuICBmb250LXNpemU6IEBsYXJnZTtcbn1cbi51aS5iaWcuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkuYmlnLnNlZ21lbnQge1xuICBmb250LXNpemU6IEBiaWc7XG59XG4udWkuaHVnZS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5odWdlLnNlZ21lbnQge1xuICBmb250LXNpemU6IEBodWdlO1xufVxuLnVpLm1hc3NpdmUuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkubWFzc2l2ZS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiBAbWFzc2l2ZTtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuc2Vjb25kYXJ5LnNlZ21lbnQge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBwYWRkaW5nOiAwLjdlbTtcbn1cblxuLyogQnJhbmQgKi9cbi51aS5icmFuZC5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogQGNvbG9yZWRCb3JkZXJTaXplIHNvbGlkIEBicmFuZENvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJhbmQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicmFuZENvbG9yICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFN0ZXBcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBMb2FkIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG5AdHlwZSAgICA6ICdlbGVtZW50JztcbkBlbGVtZW50IDogJ3N0ZXAnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQbHVyYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5zdGVwcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWFyZ2luOiBAc3RlcE1hcmdpbjtcbiAgYmFja2dyb3VuZDogQHN0ZXBzQmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogQHN0ZXBzQm94U2hhZG93O1xuICBsaW5lLWhlaWdodDogQGxpbmVIZWlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IEBzdGVwc0JvcmRlclJhZGl1cztcbiAgYm9yZGVyOiBAc3RlcHNCb3JkZXI7XG59XG5cbi8qIEZpcnN0IFN0ZXBzICovXG4udWkuc3RlcHM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG5cbi8qIExhc3QgU3RlcHMgKi9cbi51aS5zdGVwczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFNpbmd1bGFyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuc3RlcHMgLnN0ZXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogQGp1c3RpZnlDb250ZW50O1xuXG4gIG1hcmdpbjogQHZlcnRpY2FsTWFyZ2luIEBob3Jpem9udGFsTWFyZ2luO1xuICBwYWRkaW5nOiBAdmVydGljYWxQYWRkaW5nIEBob3Jpem9udGFsUGFkZGluZztcbiAgYmFja2dyb3VuZDogQGJhY2tncm91bmQ7XG4gIGNvbG9yOiBAdGV4dENvbG9yO1xuICBib3gtc2hhZG93OiBAYm94U2hhZG93O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xuICBib3JkZXI6IEBib3JkZXI7XG4gIGJvcmRlci1yaWdodDogQGRpdmlkZXI7XG4gIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xufVxuXG4vKiBBcnJvdyAqL1xuLnVpLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiBAYXJyb3dUb3BPZmZzZXQ7XG4gIHJpZ2h0OiBAYXJyb3dSaWdodE9mZnNldDtcbiAgYm9yZGVyOiBtZWRpdW0gbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGFycm93QmFja2dyb3VuZENvbG9yO1xuICB3aWR0aDogQGFycm93U2l6ZTtcbiAgaGVpZ2h0OiBAYXJyb3dTaXplO1xuXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogQGJvcmRlckNvbG9yO1xuICBib3JkZXItd2lkdGg6IEBhcnJvd0JvcmRlcldpZHRoO1xuXG4gIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCg1MCUpIHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4vKiBGaXJzdCBTdGVwICovXG4udWkuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLWxlZnQ6IEBob3Jpem9udGFsUGFkZGluZztcbiAgYm9yZGVyLXJhZGl1czogQHN0ZXBzQm9yZGVyUmFkaXVzIDBlbSAwZW0gQHN0ZXBzQm9yZGVyUmFkaXVzO1xufVxuXG4vKiBMYXN0IFN0ZXAgKi9cbi51aS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIEBzdGVwc0JvcmRlclJhZGl1cyBAc3RlcHNCb3JkZXJSYWRpdXMgMGVtO1xufVxuLnVpLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuXG4vKiBPbmx5IFN0ZXAgKi9cbi51aS5zdGVwcyAuc3RlcDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogQHN0ZXBzQm9yZGVyUmFkaXVzO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBUaXRsZSAqL1xuLnVpLnN0ZXBzIC5zdGVwIC50aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBAdGl0bGVGb250RmFtaWx5O1xuICBmb250LXNpemU6IEB0aXRsZUZvbnRTaXplO1xuICBmb250LXdlaWdodDogQHRpdGxlRm9udFdlaWdodDtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC50aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBEZXNjcmlwdGlvbiAqL1xuLnVpLnN0ZXBzIC5zdGVwIC5kZXNjcmlwdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBAZGVzY3JpcHRpb25Gb250V2VpZ2h0O1xuICBmb250LXNpemU6IEBkZXNjcmlwdGlvbkZvbnRTaXplO1xuICBjb2xvcjogQGRlc2NyaXB0aW9uQ29sb3I7XG59XG4udWkuc3RlcHMgLnN0ZXAgPiAuZGVzY3JpcHRpb24ge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5zdGVwcyAuc3RlcCAudGl0bGUgfiAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiBAZGVzY3JpcHRpb25EaXN0YW5jZTtcbn1cblxuLyogSWNvbiAqL1xuLnVpLnN0ZXBzIC5zdGVwID4gLmljb24ge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiBAaWNvblNpemU7XG4gIG1hcmdpbjogMGVtIEBpY29uRGlzdGFuY2UgMGVtIDBlbTtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uLFxuLnVpLnN0ZXBzIC5zdGVwID4gLmljb24gfiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDEgYXV0bztcbiAgYWxpZ24tc2VsZjogQGljb25BbGlnbjtcbn1cbi51aS5zdGVwcyAuc3RlcCA+IC5pY29uIH4gLmNvbnRlbnQge1xuICBmbGV4LWdyb3c6IDEgMCBhdXRvO1xufVxuXG4vKiBIb3Jpem9udGFsIEljb24gKi9cbi51aS5zdGVwczpub3QoLnZlcnRpY2FsKSAuc3RlcCA+IC5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi8qIExpbmsgKi9cbi51aS5zdGVwcyAubGluay5zdGVwLFxuLnVpLnN0ZXBzIGEuc3RlcCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE9yZGVyZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5vcmRlcmVkLnN0ZXBzIHtcbiAgY291bnRlci1yZXNldDogb3JkZXJlZDtcbn1cbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbnRlbnQ6IGNvdW50ZXJzKG9yZGVyZWQsIFwiLlwiKTtcbiAgYWxpZ24tc2VsZjogQGljb25BbGlnbjtcbiAgbWFyZ2luLXJpZ2h0OiBAaWNvbkRpc3RhbmNlO1xuICBmb250LXNpemU6IEBpY29uU2l6ZTtcbiAgY291bnRlci1pbmNyZW1lbnQ6IG9yZGVyZWQ7XG4gIGZvbnQtZmFtaWx5OiBAb3JkZXJlZEZvbnRGYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiBAb3JkZXJlZEZvbnRXZWlnaHQ7XG59XG5cbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwID4gKiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBhbGlnbi1zZWxmOiBAaWNvbkFsaWduO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBWZXJ0aWNhbFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnZlcnRpY2FsLnN0ZXBzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xuICBwYWRkaW5nOiBAdmVydGljYWxQYWRkaW5nIEBob3Jpem9udGFsUGFkZGluZztcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItYm90dG9tOiBAdmVydGljYWxEaXZpZGVyO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogQHZlcnRpY2FsUGFkZGluZyBAaG9yaXpvbnRhbFBhZGRpbmc7XG4gIGJvcmRlci1yYWRpdXM6IEBzdGVwc0JvcmRlclJhZGl1cyBAc3RlcHNCb3JkZXJSYWRpdXMgMGVtIDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAc3RlcHNCb3JkZXJSYWRpdXMgQHN0ZXBzQm9yZGVyUmFkaXVzO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBAc3RlcHNCb3JkZXJSYWRpdXM7XG59XG5cblxuLyogQXJyb3cgKi9cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICB0b3A6IEB2ZXJ0aWNhbEFycm93VG9wT2Zmc2V0O1xuICByaWdodDogQHZlcnRpY2FsQXJyb3dSaWdodE9mZnNldDtcbiAgYm9yZGVyLXdpZHRoOiBAdmVydGljYWxBcnJvd0JvcmRlcldpZHRoO1xufVxuXG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBAdmVydGljYWxBcnJvd0Rpc3BsYXk7XG59XG4udWkudmVydGljYWwuc3RlcHMgLmFjdGl2ZS5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogQHZlcnRpY2FsQWN0aXZlQXJyb3dEaXNwbGF5O1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBAdmVydGljYWxMYXN0QXJyb3dEaXNwbGF5O1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5hY3RpdmUuc3RlcDpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgZGlzcGxheTogQHZlcnRpY2FsQWN0aXZlTGFzdEFycm93RGlzcGxheTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLVxuICAgIFJlc3BvbnNpdmVcbi0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBNb2JpbGUgKERlZmF1bHQpICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IChAbGFyZ2VzdE1vYmlsZVNjcmVlbikpIHtcblxuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLnVpLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIC5zdGVwIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cztcbiAgICBwYWRkaW5nOiBAdmVydGljYWxQYWRkaW5nIEBob3Jpem9udGFsUGFkZGluZztcbiAgfVxuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmc6IEB2ZXJ0aWNhbFBhZGRpbmcgQGhvcml6b250YWxQYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6IEBzdGVwc0JvcmRlclJhZGl1cyBAc3RlcHNCb3JkZXJSYWRpdXMgMGVtIDBlbTtcbiAgfVxuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAc3RlcHNCb3JkZXJSYWRpdXMgQHN0ZXBzQm9yZGVyUmFkaXVzO1xuICB9XG5cbiAgLyogQXJyb3cgKi9cbiAgLnVpLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIC5zdGVwOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBDb250ZW50ICovXG4gIC51aS5zdGVwczpub3QoLnVuc3RhY2thYmxlKSAuc3RlcCAuY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLyogSWNvbiAqL1xuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXAgPiAuaWNvbixcbiAgLnVpLm9yZGVyZWQuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXA6YmVmb3JlIHtcbiAgICBtYXJnaW46IDBlbSAwZW0gQG1vYmlsZUljb25EaXN0YW5jZSAwZW07XG4gIH1cblxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogTGluayBIb3ZlciAqL1xuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6aG92ZXI6OmFmdGVyLFxuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6aG92ZXIsXG4udWkuc3RlcHMgYS5zdGVwOmhvdmVyOjphZnRlcixcbi51aS5zdGVwcyBhLnN0ZXA6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBAaG92ZXJCYWNrZ3JvdW5kO1xuICBjb2xvcjogQGhvdmVyQ29sb3I7XG59XG5cbi8qIExpbmsgRG93biAqL1xuLnVpLnN0ZXBzIC5saW5rLnN0ZXA6YWN0aXZlOjphZnRlcixcbi51aS5zdGVwcyAubGluay5zdGVwOmFjdGl2ZSxcbi51aS5zdGVwcyBhLnN0ZXA6YWN0aXZlOjphZnRlcixcbi51aS5zdGVwcyBhLnN0ZXA6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogQGRvd25CYWNrZ3JvdW5kO1xuICBjb2xvcjogQGRvd25Db2xvcjtcbn1cblxuLyogQWN0aXZlICovXG4udWkuc3RlcHMgLnN0ZXAuYWN0aXZlIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBiYWNrZ3JvdW5kOiBAYWN0aXZlQmFja2dyb3VuZDtcbn1cbi51aS5zdGVwcyAuc3RlcC5hY3RpdmU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBAYWN0aXZlQmFja2dyb3VuZDtcbn1cbi51aS5zdGVwcyAuc3RlcC5hY3RpdmUgLnRpdGxlIHtcbiAgY29sb3I6IEBhY3RpdmVDb2xvcjtcbn1cbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwLmFjdGl2ZTpiZWZvcmUsXG4udWkuc3RlcHMgLmFjdGl2ZS5zdGVwIC5pY29uIHtcbiAgY29sb3I6IEBhY3RpdmVJY29uQ29sb3I7XG59XG5cbi8qIEFjdGl2ZSBBcnJvdyAqL1xuLnVpLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogQGFycm93RGlzcGxheTtcbn1cbi51aS5zdGVwcyAuYWN0aXZlLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBAYWN0aXZlQXJyb3dEaXNwbGF5O1xufVxuLnVpLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBAbGFzdEFycm93RGlzcGxheTtcbn1cbi51aS5zdGVwcyAuYWN0aXZlLnN0ZXA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IEBhY3RpdmVMYXN0QXJyb3dEaXNwbGF5O1xufVxuXG4vKiBBY3RpdmUgSG92ZXIgKi9cbi51aS5zdGVwcyAubGluay5hY3RpdmUuc3RlcDpob3Zlcjo6YWZ0ZXIsXG4udWkuc3RlcHMgLmxpbmsuYWN0aXZlLnN0ZXA6aG92ZXIsXG4udWkuc3RlcHMgYS5hY3RpdmUuc3RlcDpob3Zlcjo6YWZ0ZXIsXG4udWkuc3RlcHMgYS5hY3RpdmUuc3RlcDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogQGFjdGl2ZUhvdmVyQmFja2dyb3VuZDtcbiAgY29sb3I6IEBhY3RpdmVIb3ZlckNvbG9yO1xufVxuXG4vKiBDb21wbGV0ZWQgKi9cbi51aS5zdGVwcyAuc3RlcC5jb21wbGV0ZWQgPiAuaWNvbjpiZWZvcmUsXG4udWkub3JkZXJlZC5zdGVwcyAuc3RlcC5jb21wbGV0ZWQ6YmVmb3JlIHtcbiAgY29sb3I6IEBjb21wbGV0ZWRDb2xvcjtcbn1cblxuLyogRGlzYWJsZWQgKi9cbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcCB7XG4gIGN1cnNvcjogYXV0bztcbiAgYmFja2dyb3VuZDogQGRpc2FibGVkQmFja2dyb3VuZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXAsXG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXAgLnRpdGxlLFxuLnVpLnN0ZXBzIC5kaXNhYmxlZC5zdGVwIC5kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiBAZGlzYWJsZWRDb2xvcjtcbn1cbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcDphZnRlciB7XG4gIGJhY2tncm91bmQ6IEBkaXNhYmxlZEJhY2tncm91bmQ7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFRhYmxldCBPciBCZWxvdyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAbGFyZ2VzdFRhYmxldFNjcmVlbikge1xuXG4udWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLyogU3RlcHMgKi9cbi51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cztcbiAgcGFkZGluZzogQHZlcnRpY2FsUGFkZGluZyBAaG9yaXpvbnRhbFBhZGRpbmc7XG59XG4udWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IEB2ZXJ0aWNhbFBhZGRpbmcgQGhvcml6b250YWxQYWRkaW5nO1xuICBib3JkZXItcmFkaXVzOiBAc3RlcHNCb3JkZXJSYWRpdXMgQHN0ZXBzQm9yZGVyUmFkaXVzIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAc3RlcHNCb3JkZXJSYWRpdXMgQHN0ZXBzQm9yZGVyUmFkaXVzO1xufVxuXG4vKiBBcnJvdyAqL1xuLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnQgKi9cbi51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwIC5jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBJY29uICovXG4udWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcCA+IC5pY29uLFxuLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0ub3JkZXJlZC5zdGVwcyAuc3RlcDpiZWZvcmUge1xuICBtYXJnaW46IDBlbSAwZW0gQG1vYmlsZUljb25EaXN0YW5jZSAwZW07XG59XG5cbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEZsdWlkICovXG4udWkuZmx1aWQuc3RlcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBUb3AgKi9cbi51aS5hdHRhY2hlZC5zdGVwcyB7XG4gIHdpZHRoOiBAYXR0YWNoZWRXaWR0aCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSBAYXR0YWNoZWRIb3Jpem9udGFsT2Zmc2V0IEBhdHRhY2hlZFZlcnRpY2FsT2Zmc2V0O1xuICBtYXgtd2lkdGg6IEBhdHRhY2hlZFdpZHRoO1xuICBib3JkZXItcmFkaXVzOiBAc3RlcHNCb3JkZXJSYWRpdXMgQHN0ZXBzQm9yZGVyUmFkaXVzIDBlbSAwZW07XG59XG4udWkuYXR0YWNoZWQuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBAc3RlcHNCb3JkZXJSYWRpdXMgMGVtIDBlbSAwZW07XG59XG4udWkuYXR0YWNoZWQuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSBAc3RlcHNCb3JkZXJSYWRpdXMgMGVtIDBlbTtcbn1cblxuLyogQm90dG9tICovXG4udWkuYm90dG9tLmF0dGFjaGVkLnN0ZXBzIHtcbiAgbWFyZ2luOiBAYXR0YWNoZWRWZXJ0aWNhbE9mZnNldCBAYXR0YWNoZWRIb3Jpem9udGFsT2Zmc2V0IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAc3RlcHNCb3JkZXJSYWRpdXMgQHN0ZXBzQm9yZGVyUmFkaXVzO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIEBzdGVwc0JvcmRlclJhZGl1cztcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gQHN0ZXBzQm9yZGVyUmFkaXVzIDBlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRXZlbmx5IERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLm9uZS5zdGVwcyxcbi51aS50d28uc3RlcHMsXG4udWkudGhyZWUuc3RlcHMsXG4udWkuZm91ci5zdGVwcyxcbi51aS5maXZlLnN0ZXBzLFxuLnVpLnNpeC5zdGVwcyxcbi51aS5zZXZlbi5zdGVwcyxcbi51aS5laWdodC5zdGVwcyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLm9uZS5zdGVwcyA+IC5zdGVwLFxuLnVpLnR3by5zdGVwcyA+IC5zdGVwLFxuLnVpLnRocmVlLnN0ZXBzID4gLnN0ZXAsXG4udWkuZm91ci5zdGVwcyA+IC5zdGVwLFxuLnVpLmZpdmUuc3RlcHMgPiAuc3RlcCxcbi51aS5zaXguc3RlcHMgPiAuc3RlcCxcbi51aS5zZXZlbi5zdGVwcyA+IC5zdGVwLFxuLnVpLmVpZ2h0LnN0ZXBzID4gLnN0ZXAge1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbn1cbi51aS5vbmUuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnR3by5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS50aHJlZS5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDMzLjMzMyU7XG59XG4udWkuZm91ci5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS5maXZlLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLnNpeC5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDE2LjY2NiU7XG59XG4udWkuc2V2ZW4uc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAxNC4yODUlO1xufVxuLnVpLmVpZ2h0LnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMTIuNTAwJTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4udWkubWluaS5zdGVwcyAuc3RlcCxcbi51aS5taW5pLnN0ZXAge1xuICBmb250LXNpemU6IEBtaW5pO1xufVxuLnVpLnRpbnkuc3RlcHMgLnN0ZXAsXG4udWkudGlueS5zdGVwIHtcbiAgZm9udC1zaXplOiBAdGlueTtcbn1cbi51aS5zbWFsbC5zdGVwcyAuc3RlcCxcbi51aS5zbWFsbC5zdGVwIHtcbiAgZm9udC1zaXplOiBAc21hbGw7XG59XG4udWkuc3RlcHMgLnN0ZXAsXG4udWkuc3RlcCB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bTtcbn1cbi51aS5sYXJnZS5zdGVwcyAuc3RlcCxcbi51aS5sYXJnZS5zdGVwIHtcbiAgZm9udC1zaXplOiBAbGFyZ2U7XG59XG4udWkuYmlnLnN0ZXBzIC5zdGVwLFxuLnVpLmJpZy5zdGVwIHtcbiAgZm9udC1zaXplOiBAYmlnO1xufVxuLnVpLmh1Z2Uuc3RlcHMgLnN0ZXAsXG4udWkuaHVnZS5zdGVwIHtcbiAgZm9udC1zaXplOiBAaHVnZTtcbn1cbi51aS5tYXNzaXZlLnN0ZXBzIC5zdGVwLFxuLnVpLm1hc3NpdmUuc3RlcCB7XG4gIGZvbnQtc2l6ZTogQG1hc3NpdmU7XG59XG5cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQnJlYWRjcnVtYlxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdjb2xsZWN0aW9uJztcbkBlbGVtZW50IDogJ2JyZWFkY3J1bWInO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgQnJlYWRjcnVtYlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLmJyZWFkY3J1bWIge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogQGRpc3BsYXk7XG4gIG1hcmdpbjogQHZlcnRpY2FsTWFyZ2luIDBlbTtcbiAgdmVydGljYWwtYWxpZ246IEB2ZXJ0aWNhbEFsaWduO1xufVxuLnVpLmJyZWFkY3J1bWI6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuYnJlYWRjcnVtYjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qIERpdmlkZXIgKi9cbi51aS5icmVhZGNydW1iIC5kaXZpZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcGFjaXR5OiBAZGl2aWRlck9wYWNpdHk7XG4gIG1hcmdpbjogMGVtIEBkaXZpZGVyU3BhY2luZyAwZW07XG5cbiAgZm9udC1zaXplOiBAZGl2aWRlclNpemU7XG4gIGNvbG9yOiBAZGl2aWRlckNvbG9yO1xuICB2ZXJ0aWNhbC1hbGlnbjogQGRpdmlkZXJWZXJ0aWNhbEFsaWduO1xufVxuXG4vKiBMaW5rICovXG4udWkuYnJlYWRjcnVtYiBhIHtcbiAgY29sb3I6IEBsaW5rQ29sb3I7XG59XG4udWkuYnJlYWRjcnVtYiBhOmhvdmVyIHtcbiAgY29sb3I6IEBsaW5rSG92ZXJDb2xvcjtcbn1cblxuXG4vKiBJY29uIERpdmlkZXIgKi9cbi51aS5icmVhZGNydW1iIC5pY29uLmRpdmlkZXIge1xuICBmb250LXNpemU6IEBpY29uRGl2aWRlclNpemU7XG4gIHZlcnRpY2FsLWFsaWduOiBAaWNvbkRpdmlkZXJWZXJ0aWNhbEFsaWduO1xufVxuXG4vKiBTZWN0aW9uICovXG4udWkuYnJlYWRjcnVtYiBhLnNlY3Rpb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuYnJlYWRjcnVtYiAuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiBAc2VjdGlvbk1hcmdpbjtcbiAgcGFkZGluZzogQHNlY3Rpb25QYWRkaW5nO1xufVxuXG4vKiBMb29zZSBDb3VwbGluZyAqL1xuLnVpLmJyZWFkY3J1bWIuc2VnbWVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogQHNlZ21lbnRQYWRkaW5nO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuYnJlYWRjcnVtYiAuYWN0aXZlLnNlY3Rpb24ge1xuICBmb250LXdlaWdodDogQGFjdGl2ZUZvbnRXZWlnaHQ7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLm1pbmkuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogQG1pbmk7XG59XG4udWkudGlueS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiBAdGlueTtcbn1cbi51aS5zbWFsbC5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiBAc21hbGw7XG59XG4udWkuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bTtcbn1cbi51aS5sYXJnZS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiBAbGFyZ2U7XG59XG4udWkuYmlnLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IEBiaWc7XG59XG4udWkuaHVnZS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiBAaHVnZTtcbn1cbi51aS5tYXNzaXZlLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IEBtYXNzaXZlO1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBGb3JtXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ2NvbGxlY3Rpb24nO1xuQGVsZW1lbnQgOiAnZm9ybSc7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEVsZW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvcm1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mb3JtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZvcm0gPiBwIHtcbiAgbWFyZ2luOiBAcGFyYWdyYXBoTWFyZ2luO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZpZWxkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZm9ybSAuZmllbGQge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiBAZmllbGRNYXJnaW47XG59XG5cbi51aS5mb3JtIC5maWVsZDpsYXN0LWNoaWxkLFxuLnVpLmZvcm0gLmZpZWxkczpsYXN0LWNoaWxkIC5maWVsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLnVpLmZvcm0gLmZpZWxkcyAuZmllbGQge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAwZW07XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMYWJlbHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mb3JtIC5maWVsZCA+IGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogQGxhYmVsTWFyZ2luO1xuICBjb2xvcjogQGxhYmVsQ29sb3I7XG4gIGZvbnQtc2l6ZTogQGxhYmVsRm9udFNpemU7XG4gIGZvbnQtd2VpZ2h0OiBAbGFiZWxGb250V2VpZ2h0O1xuICB0ZXh0LXRyYW5zZm9ybTogQGxhYmVsVGV4dFRyYW5zZm9ybTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFN0YW5kYXJkIElucHV0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4udWkuZm9ybSB0ZXh0YXJlYSxcbi51aS5mb3JtIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgd2lkdGg6IEBpbnB1dFdpZHRoO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4vKiBTZXQgbWF4IGhlaWdodCBvbiB1bnVzdWFsIGlucHV0ICovXG4udWkuZm9ybSA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdCxcbi51aS5mb3JtIDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogQGlucHV0TGluZUhlaWdodDtcbn1cblxuLnVpLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICBmb250LWZhbWlseTogQGlucHV0Rm9udDtcbiAgbWFyZ2luOiAwZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdGFwLWhpZ2hsaWdodC1jb2xvcjogIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG5cbiAgbGluZS1oZWlnaHQ6IEBpbnB1dExpbmVIZWlnaHQ7XG4gIHBhZGRpbmc6IEBpbnB1dFBhZGRpbmc7XG4gIGZvbnQtc2l6ZTogQGlucHV0Rm9udFNpemU7XG5cbiAgYmFja2dyb3VuZDogQGlucHV0QmFja2dyb3VuZDtcbiAgYm9yZGVyOiBAaW5wdXRCb3JkZXI7XG4gIGNvbG9yOiBAaW5wdXRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGlucHV0Qm9yZGVyUmFkaXVzO1xuICBib3gtc2hhZG93OiBAaW5wdXRCb3hTaGFkb3c7XG4gIHRyYW5zaXRpb246IEBpbnB1dFRyYW5zaXRpb247XG59XG5cbi8qIFRleHQgQXJlYSAqL1xuLnVpLmZvcm0gdGV4dGFyZWEge1xuICBtYXJnaW46IDBlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB0YXAtaGlnaGxpZ2h0LWNvbG9yOiAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcblxuICBwYWRkaW5nOiBAdGV4dEFyZWFQYWRkaW5nO1xuICBmb250LXNpemU6IEB0ZXh0QXJlYUZvbnRTaXplO1xuICBiYWNrZ3JvdW5kOiBAdGV4dEFyZWFCYWNrZ3JvdW5kO1xuICBib3JkZXI6IEB0ZXh0QXJlYUJvcmRlcjtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6IEBpbnB1dENvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAaW5wdXRCb3JkZXJSYWRpdXM7XG4gIGJveC1zaGFkb3c6IEBpbnB1dEJveFNoYWRvdztcbiAgdHJhbnNpdGlvbjogQHRleHRBcmVhVHJhbnNpdGlvbjtcbiAgZm9udC1zaXplOiBAdGV4dEFyZWFGb250U2l6ZTtcbiAgbGluZS1oZWlnaHQ6IEB0ZXh0QXJlYUxpbmVIZWlnaHQ7XG4gIHJlc2l6ZTogQHRleHRBcmVhUmVzaXplO1xufVxuLnVpLmZvcm0gdGV4dGFyZWE6bm90KFtyb3dzXSkge1xuICBoZWlnaHQ6IEB0ZXh0QXJlYUhlaWdodDtcbiAgbWluLWhlaWdodDogQHRleHRBcmVhTWluSGVpZ2h0O1xuICBtYXgtaGVpZ2h0OiBAdGV4dEFyZWFNYXhIZWlnaHQ7XG59XG5cbi51aS5mb3JtIHRleHRhcmVhLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgdmVydGljYWwtYWxpZ246IEBjaGVja2JveFZlcnRpY2FsQWxpZ247XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSW5wdXQgdy8gYXR0YWNoZWQgQnV0dG9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZm9ybSBpbnB1dC5hdHRhY2hlZCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQmFzaWMgU2VsZWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZm9ybSBzZWxlY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogQHNlbGVjdEJhY2tncm91bmQ7XG4gIGJvcmRlcjogQHNlbGVjdEJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQHNlbGVjdEJvcmRlclJhZGl1cztcbiAgYm94LXNoYWRvdzogQHNlbGVjdEJveFNoYWRvdztcbiAgcGFkZGluZzogQHNlbGVjdFBhZGRpbmc7XG4gIGNvbG9yOiBAc2VsZWN0Q29sb3I7XG4gIHRyYW5zaXRpb246IEBzZWxlY3RUcmFuc2l0aW9uO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRHJvcGRvd25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEJsb2NrICovXG4udWkuZm9ybSAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZm9ybSAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi8qIElubGluZSAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93bixcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgd2lkdGg6IGF1dG87XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24sXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBVSSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogQmxvY2sgKi9cbi51aS5mb3JtIC5maWVsZCAudWkuaW5wdXQsXG4udWkuZm9ybSAuZmllbGRzIC5maWVsZCAudWkuaW5wdXQsXG4udWkuZm9ybSAud2lkZS5maWVsZCAudWkuaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyogSW5saW5lICAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkOm5vdCgud2lkZSkgLnVpLmlucHV0LFxuLnVpLmZvcm0gLmlubGluZS5maWVsZDpub3QoLndpZGUpIC51aS5pbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBBdXRvIElucHV0ICovXG4udWkuZm9ybSAuZmllbGRzIC5maWVsZCAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuZmllbGQgLnVpLmlucHV0IGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi8qIEZ1bGwgV2lkdGggSW5wdXQgKi9cbi51aS5mb3JtIC50ZW4uZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5uaW5lLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuZWlnaHQuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5zZXZlbi5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLnNpeC5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLmZpdmUuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5mb3VyLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAudGhyZWUuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC50d28uZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC53aWRlLmZpZWxkIC51aS5pbnB1dCBpbnB1dCB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICB3aWR0aDogMHB4O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFR5cGVzIG9mIE1lc3NhZ2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZm9ybSAuc3VjY2Vzcy5tZXNzYWdlLFxuLnVpLmZvcm0gLndhcm5pbmcubWVzc2FnZSxcbi51aS5mb3JtIC5lcnJvci5tZXNzYWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogQXNzdW1wdGlvbnMgKi9cbi51aS5mb3JtIC5tZXNzYWdlOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBWYWxpZGF0aW9uIFByb21wdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZvcm0gLmZpZWxkIC5wcm9tcHQubGFiZWwge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBiYWNrZ3JvdW5kOiBAcHJvbXB0QmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBib3JkZXI6IEBwcm9tcHRCb3JkZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwcm9tcHRUZXh0Q29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCAucHJvbXB0LFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCAucHJvbXB0IHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgbWFyZ2luOiBAaW5saW5lUHJvbXB0TWFyZ2luO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkIC5wcm9tcHQ6YmVmb3JlLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCAucHJvbXB0OmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMHB4IDBweCBAaW5saW5lUHJvbXB0Qm9yZGVyV2lkdGggQGlubGluZVByb21wdEJvcmRlcldpZHRoO1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMGVtO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEF1dG9maWxsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mb3JtIC5maWVsZC5maWVsZCBpbnB1dDotd2Via2l0LWF1dG9maWxsIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMTAwcHggQGlucHV0QXV0b0ZpbGxCYWNrZ3JvdW5kIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGlucHV0QXV0b0ZpbGxCb3JkZXIgIWltcG9ydGFudDtcbn1cblxuLyogRm9jdXMgKi9cbi51aS5mb3JtIC5maWVsZC5maWVsZCBpbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMTAwcHggQGlucHV0QXV0b0ZpbGxGb2N1c0JhY2tncm91bmQgaW5zZXQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBAaW5wdXRBdXRvRmlsbEZvY3VzQm9yZGVyICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVycm9yICovXG4udWkuZm9ybSAuZXJyb3IuZXJyb3IgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDEwMHB4IEBpbnB1dEF1dG9GaWxsRXJyb3JCYWNrZ3JvdW5kIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogQGlucHV0QXV0b0ZpbGxFcnJvckJvcmRlciAhaW1wb3J0YW50O1xufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIGJyb3dzZXJzIHJlcXVpcmUgdGhlc2UgcnVsZXMgc2VwYXJhdGUgKi9cbi51aS5mb3JtIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAaW5wdXRQbGFjZWhvbGRlckNvbG9yO1xufVxuLnVpLmZvcm0gOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAaW5wdXRQbGFjZWhvbGRlckNvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogQGlucHV0UGxhY2Vob2xkZXJDb2xvcjtcbn1cblxuLnVpLmZvcm0gOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IEBpbnB1dFBsYWNlaG9sZGVyRm9jdXNDb2xvcjtcbn1cbi51aS5mb3JtIDpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogQGlucHV0UGxhY2Vob2xkZXJGb2N1c0NvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSA6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogQGlucHV0UGxhY2Vob2xkZXJGb2N1c0NvbG9yO1xufVxuXG4vKiBFcnJvciBQbGFjZWhvbGRlciAqL1xuLnVpLmZvcm0gLmVycm9yIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAaW5wdXRFcnJvclBsYWNlaG9sZGVyQ29sb3I7XG59XG4udWkuZm9ybSAuZXJyb3IgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBAaW5wdXRFcnJvclBsYWNlaG9sZGVyQ29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5lcnJvciA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogQGlucHV0RXJyb3JQbGFjZWhvbGRlckNvbG9yO1xufVxuXG4udWkuZm9ybSAuZXJyb3IgOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IEBpbnB1dEVycm9yUGxhY2Vob2xkZXJGb2N1c0NvbG9yO1xufVxuLnVpLmZvcm0gLmVycm9yIDpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogQGlucHV0RXJyb3JQbGFjZWhvbGRlckZvY3VzQ29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5lcnJvciA6Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogQGlucHV0RXJyb3JQbGFjZWhvbGRlckZvY3VzQ29sb3I7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZvcm0gaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMge1xuICBjb2xvcjogQGlucHV0Rm9jdXNDb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiBAaW5wdXRGb2N1c0JvcmRlckNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAaW5wdXRGb2N1c0JvcmRlclJhZGl1cztcbiAgYmFja2dyb3VuZDogQGlucHV0Rm9jdXNCYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBAaW5wdXRGb2N1c0JveFNoYWRvdztcbn1cbi51aS5mb3JtIHRleHRhcmVhOmZvY3VzIHtcbiAgY29sb3I6IEB0ZXh0QXJlYUZvY3VzQ29sb3I7XG4gIGJvcmRlci1jb2xvcjogQHRleHRBcmVhRm9jdXNCb3JkZXJDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQHRleHRBcmVhRm9jdXNCb3JkZXJSYWRpdXM7XG4gIGJhY2tncm91bmQ6IEB0ZXh0QXJlYUZvY3VzQmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogQHRleHRBcmVhRm9jdXNCb3hTaGFkb3c7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN1Y2Nlc3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIE9uIEZvcm0gKi9cbi51aS5mb3JtLnN1Y2Nlc3MgLnN1Y2Nlc3MubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmZvcm0uc3VjY2VzcyAuY29tcGFjdC5zdWNjZXNzLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWkuZm9ybS5zdWNjZXNzIC5pY29uLnN1Y2Nlc3MubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgV2FybmluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogT24gRm9ybSAqL1xuLnVpLmZvcm0ud2FybmluZyAud2FybmluZy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuZm9ybS53YXJuaW5nIC5jb21wYWN0Lndhcm5pbmcubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5mb3JtLndhcm5pbmcgLmljb24ud2FybmluZy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogT24gRm9ybSAqL1xuLnVpLmZvcm0uZXJyb3IgLmVycm9yLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5mb3JtLmVycm9yIC5jb21wYWN0LmVycm9yLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWkuZm9ybS5lcnJvciAuaWNvbi5lcnJvci5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLyogT24gRmllbGQocykgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmlucHV0LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5pbnB1dCB7XG4gIGNvbG9yOiBAZm9ybUVycm9yQ29sb3I7XG59XG5cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jb3JuZXIubGFiZWwsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNvcm5lci5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogQGZvcm1FcnJvckNvbG9yO1xuICBjb2xvcjogQHdoaXRlO1xufVxuXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCB0ZXh0YXJlYSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIHNlbGVjdCxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHRleHRhcmVhLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHNlbGVjdCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dDpub3QoW3R5cGVdKSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgYmFja2dyb3VuZDogQGZvcm1FcnJvckJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGZvcm1FcnJvckJvcmRlcjtcbiAgY29sb3I6IEBmb3JtRXJyb3JDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGlucHV0RXJyb3JCb3JkZXJSYWRpdXM7XG4gIGJveC1zaGFkb3c6IEBpbnB1dEVycm9yQm94U2hhZG93O1xufVxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHRleHRhcmVhOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIHNlbGVjdDpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dDpub3QoW3R5cGVdKTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogQGlucHV0RXJyb3JGb2N1c0JhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGlucHV0RXJyb3JGb2N1c0JvcmRlcjtcbiAgY29sb3I6IEBpbnB1dEVycm9yRm9jdXNDb2xvcjtcblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IEBpbnB1dEVycm9yRm9jdXNCb3hTaGFkb3c7XG59XG5cbi8qIFByZXNlcnZlIE5hdGl2ZSBTZWxlY3QgU3R5bGluZ3MgKi9cbi51aS5mb3JtIC5maWVsZC5lcnJvciBzZWxlY3Qge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lbnVsaXN0LWJ1dHRvbjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEcm9wZG93biBFcnJvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24gLml0ZW0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biAudGV4dCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBAZm9ybUVycm9yQmFja2dyb3VuZDtcbiAgY29sb3I6IEBmb3JtRXJyb3JDb2xvcjtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24ge1xuICBib3JkZXItY29sb3I6IEBmb3JtRXJyb3JCb3JkZXIgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bjpob3Zlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItY29sb3I6IEBmb3JtRXJyb3JCb3JkZXIgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bjpob3ZlciAubWVudSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBib3JkZXItY29sb3I6IEBmb3JtRXJyb3JCb3JkZXI7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkubXVsdGlwbGUuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5tdWx0aXBsZS5zZWxlY3Rpb24uZHJvcGRvd24gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd25FcnJvckxhYmVsQmFja2dyb3VuZDtcbiAgY29sb3I6IEBkcm9wZG93bkVycm9yTGFiZWxDb2xvcjtcbn1cblxuLyogSG92ZXIgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAubWVudSAuaXRlbTpob3Zlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLm1lbnUgLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd25FcnJvckhvdmVyQmFja2dyb3VuZDtcbn1cblxuLyogU2VsZWN0ZWQgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAubWVudSAuc2VsZWN0ZWQuaXRlbSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLm1lbnUgLnNlbGVjdGVkLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd25FcnJvclNlbGVjdGVkQmFja2dyb3VuZDtcbn1cblxuXG4vKiBBY3RpdmUgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAubWVudSAuYWN0aXZlLml0ZW0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBkcm9wZG93bkVycm9yQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ2hlY2tib3ggRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgLmJveCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94IHtcbiAgY29sb3I6IEBmb3JtRXJyb3JDb2xvcjtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIGxhYmVsOmJlZm9yZSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSBsYWJlbDpiZWZvcmUsXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94OmJlZm9yZSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSAuYm94OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IEBmb3JtRXJyb3JCYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6IEBmb3JtRXJyb3JCb3JkZXI7XG59XG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3ggbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94IC5ib3g6YWZ0ZXIge1xuICBjb2xvcjogQGZvcm1FcnJvckNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mb3JtIC5kaXNhYmxlZC5maWVsZHMgLmZpZWxkLFxuLnVpLmZvcm0gLmRpc2FibGVkLmZpZWxkLFxuLnVpLmZvcm0gLmZpZWxkIDpkaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiBAZGlzYWJsZWRPcGFjaXR5O1xufVxuLnVpLmZvcm0gLmZpZWxkLmRpc2FibGVkID4gbGFiZWwsXG4udWkuZm9ybSAuZmllbGRzLmRpc2FibGVkID4gbGFiZWwge1xuICBvcGFjaXR5OiBAZGlzYWJsZWRMYWJlbE9wYWNpdHk7XG59XG4udWkuZm9ybSAuZmllbGQuZGlzYWJsZWQgOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmxvYWRpbmcuZm9ybSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi51aS5sb2FkaW5nLmZvcm06YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQ6IEBsb2FkZXJEaW1tZXJDb2xvcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogQGxvYWRlckRpbW1lclpJbmRleDtcbn1cbi51aS5sb2FkaW5nLmZvcm06YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuXG4gIG1hcmdpbjogQGxvYWRlck1hcmdpbjtcbiAgd2lkdGg6IEBsb2FkZXJTaXplO1xuICBoZWlnaHQ6IEBsb2FkZXJTaXplO1xuXG4gIGFuaW1hdGlvbjogZm9ybS1zcGluIEBsb2FkZXJTcGVlZCBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBjaXJjdWxhclJhZGl1cztcblxuICBib3JkZXItY29sb3I6IEBsb2FkZXJMaW5lQ29sb3IgQGxvYWRlckZpbGxDb2xvciBAbG9hZGVyRmlsbENvbG9yIEBsb2FkZXJGaWxsQ29sb3I7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogQGxvYWRlckxpbmVXaWR0aDtcblxuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHotaW5kZXg6IEBsb2FkZXJMaW5lWkluZGV4O1xufVxuXG5Aa2V5ZnJhbWVzIGZvcm0tc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEVsZW1lbnQgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgUmVxdWlyZWQgRmllbGRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHM6bm90KC5ncm91cGVkKSA+IC5maWVsZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkcy5ncm91cGVkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHM6bm90KC5ncm91cGVkKSA+IC5maWVsZCA+IC5jaGVja2JveDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZCA+IC5jaGVja2JveDphZnRlciB7XG4gIG1hcmdpbjogQHJlcXVpcmVkTWFyZ2luO1xuICBjb250ZW50OiBAcmVxdWlyZWRDb250ZW50O1xuICBjb2xvcjogQHJlcXVpcmVkQ29sb3I7XG59XG5cbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHM6bm90KC5ncm91cGVkKSA+IC5maWVsZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkcy5ncm91cGVkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGQgPiBsYWJlbDphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkczpub3QoLmdyb3VwZWQpID4gLmZpZWxkID4gLmNoZWNrYm94OmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkID4gLmNoZWNrYm94OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAxMDAlO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmludmVydGVkLmZvcm0gbGFiZWwsXG4udWkuZm9ybSAuaW52ZXJ0ZWQuc2VnbWVudCBsYWJlbCxcbi51aS5mb3JtIC5pbnZlcnRlZC5zZWdtZW50IC51aS5jaGVja2JveCBsYWJlbCxcbi51aS5mb3JtIC5pbnZlcnRlZC5zZWdtZW50IC51aS5jaGVja2JveCAuYm94LFxuLnVpLmludmVydGVkLmZvcm0gLnVpLmNoZWNrYm94IGxhYmVsLFxuLnVpLmludmVydGVkLmZvcm0gLnVpLmNoZWNrYm94IC5ib3gsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkcyA+IGxhYmVsLFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gbGFiZWwsXG4udWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBwLFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZCA+IGxhYmVsLFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZCA+IHAge1xuICBjb2xvcjogQGludmVydGVkTGFiZWxDb2xvcjtcbn1cblxuLyogSW52ZXJ0ZWQgRmllbGQgKi9cbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkSW5wdXRCYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6IEBpbnZlcnRlZElucHV0Qm9yZGVyQ29sb3I7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRJbnB1dENvbG9yO1xuICBib3gtc2hhZG93OiBAaW52ZXJ0ZWRJbnB1dEJveFNoYWRvdztcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEZpZWxkIEdyb3Vwc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogR3JvdXBlZCBWZXJ0aWNhbGx5ICovXG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiBAZ3JvdXBlZE1hcmdpbjtcbn1cbi51aS5mb3JtIC5ncm91cGVkLmZpZWxkczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuXG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHMgPiBsYWJlbCB7XG4gIG1hcmdpbjogQGdyb3VwZWRMYWJlbE1hcmdpbjtcbiAgY29sb3I6IEBncm91cGVkTGFiZWxDb2xvcjtcbiAgZm9udC1zaXplOiBAZ3JvdXBlZExhYmVsRm9udFNpemU7XG4gIGZvbnQtd2VpZ2h0OiBAZ3JvdXBlZExhYmVsRm9udFdlaWdodDtcbiAgdGV4dC10cmFuc2Zvcm06IEBncm91cGVkTGFiZWxUZXh0VHJhbnNmb3JtO1xufVxuXG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHMgLmZpZWxkLFxuLnVpLmZvcm0gLmdyb3VwZWQuaW5saW5lLmZpZWxkcyAuZmllbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiBAZ3JvdXBlZEZpZWxkTWFyZ2luO1xuICBwYWRkaW5nOiAwZW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmllbGRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTcGxpdCBmaWVsZHMgKi9cbi51aS5mb3JtIC5maWVsZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBtYXJnaW46IEBmaWVsZHNNYXJnaW47XG59XG4udWkuZm9ybSAuZmllbGRzID4gLmZpZWxkIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHBhZGRpbmctbGVmdDogKEBndXR0ZXJXaWR0aCAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlcldpZHRoIC8gMik7XG59XG4udWkuZm9ybSAuZmllbGRzID4gLmZpZWxkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIE90aGVyIENvbWJpbmF0aW9ucyAqL1xuLnVpLmZvcm0gLnR3by5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnR3by5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogQHR3b0NvbHVtbjtcbn1cbi51aS5mb3JtIC50aHJlZS5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnRocmVlLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiBAdGhyZWVDb2x1bW47XG59XG4udWkuZm9ybSAuZm91ci5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLmZvdXIuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IEBmb3VyQ29sdW1uO1xufVxuLnVpLmZvcm0gLmZpdmUuZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5maXZlLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiBAZml2ZUNvbHVtbjtcbn1cbi51aS5mb3JtIC5zaXguZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5zaXguZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IEBzaXhDb2x1bW47XG59XG4udWkuZm9ybSAuc2V2ZW4uZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5zZXZlbi5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogQHNldmVuQ29sdW1uO1xufVxuLnVpLmZvcm0gLmVpZ2h0LmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAuZWlnaHQuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IEBlaWdodENvbHVtbjtcbn1cbi51aS5mb3JtIC5uaW5lLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAubmluZS5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogQG5pbmVDb2x1bW47XG59XG4udWkuZm9ybSAudGVuLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAudGVuLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiBAdGVuQ29sdW1uO1xufVxuXG4vKiBTd2FwIHRvIGZ1bGwgd2lkdGggb24gbW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuICAudWkuZm9ybSAuZmllbGRzIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAudWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSBbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudHdvLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50d28uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudGhyZWUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnRocmVlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZvdXIuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZvdXIuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZml2ZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZml2ZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5zaXguZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnNpeC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5zZXZlbi5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuc2V2ZW4uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZWlnaHQuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmVpZ2h0LmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLm5pbmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLm5pbmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudGVuLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50ZW4uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkIHtcbiAgICB3aWR0aDogQG9uZUNvbHVtbiAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtIDBlbSBAcm93RGlzdGFuY2U7XG4gIH1cbn1cblxuXG4vKiBTaXppbmcgQ29tYmluYXRpb25zICovXG4udWkuZm9ybSAuZmllbGRzIC53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IEBvbmVXaWRlO1xuICBwYWRkaW5nLWxlZnQ6IChAZ3V0dGVyV2lkdGggLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXJXaWR0aCAvIDIpO1xufVxuXG4udWkuZm9ybSAub25lLndpZGUuZmllbGQge1xuICB3aWR0aDogQG9uZVdpZGUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC50d28ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiBAdHdvV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnRocmVlLndpZGUuZmllbGQge1xuICB3aWR0aDogQHRocmVlV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZvdXIud2lkZS5maWVsZCB7XG4gIHdpZHRoOiBAZm91cldpZGUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maXZlLndpZGUuZmllbGQge1xuICB3aWR0aDogQGZpdmVXaWRlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuc2l4LndpZGUuZmllbGQge1xuICB3aWR0aDogQHNpeFdpZGUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5zZXZlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IEBzZXZlbldpZGUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5laWdodC53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IEBlaWdodFdpZGUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5uaW5lLndpZGUuZmllbGQge1xuICB3aWR0aDogQG5pbmVXaWRlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudGVuLndpZGUuZmllbGQge1xuICB3aWR0aDogQHRlbldpZGUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5lbGV2ZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiBAZWxldmVuV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnR3ZWx2ZS53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IEB0d2VsdmVXaWRlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudGhpcnRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiBAdGhpcnRlZW5XaWRlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZm91cnRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiBAZm91cnRlZW5XaWRlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZmlmdGVlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IEBmaWZ0ZWVuV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnNpeHRlZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiBAc2l4dGVlbldpZGUgIWltcG9ydGFudDtcbn1cblxuLyogU3dhcCB0byBmdWxsIHdpZHRoIG9uIG1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnR3by5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudHdvLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnRocmVlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50aHJlZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5mb3VyLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5mb3VyLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpdmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpdmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnR3by53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnRocmVlLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZm91ci53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpdmUud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5zaXgud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5zZXZlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmVpZ2h0LndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAubmluZS53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnRlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmVsZXZlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnR3ZWx2ZS53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnRoaXJ0ZWVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZm91cnRlZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWZ0ZWVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuc2l4dGVlbi53aWRlLmZpZWxkIHtcbiAgICB3aWR0aDogQG9uZUNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5mb3JtIC5maWVsZHMge1xuICAgIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEVxdWFsIFdpZHRoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZm9ybSAuZmllbGRzID4gLmZpZWxkLFxuLnVpLmZvcm0gW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIElubGluZSBGaWVsZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIHtcbiAgbWFyZ2luOiBAZmllbGRNYXJnaW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogQGlubGluZUZpZWxkc01hcmdpbjtcbn1cblxuLyogSW5saW5lIExhYmVsICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyA+IGxhYmVsLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gbGFiZWwsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBwLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IGxhYmVsLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IHAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBmb250LXNpemU6IEBpbmxpbmVMYWJlbEZvbnRTaXplO1xuICBmb250LXdlaWdodDogQGlubGluZUxhYmVsRm9udFdlaWdodDtcbiAgY29sb3I6IEBpbmxpbmVMYWJlbENvbG9yO1xuICB0ZXh0LXRyYW5zZm9ybTogQGlubGluZUxhYmVsVGV4dFRyYW5zZm9ybTtcbn1cblxuLyogR3JvdXBlZCBJbmxpbmUgTGFiZWwgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzID4gbGFiZWwge1xuICBtYXJnaW46IEBncm91cGVkSW5saW5lTGFiZWxNYXJnaW47XG59XG5cbi8qIElubGluZSBJbnB1dCAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBzZWxlY3QsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gc2VsZWN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcblxuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcblxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IEBpbmxpbmVJbnB1dFNpemU7XG59XG5cbi8qIExhYmVsICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiA6Zmlyc3QtY2hpbGQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW0gQGlubGluZUxhYmVsRGlzdGFuY2UgMGVtIDBlbTtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IDpvbmx5LWNoaWxkLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IDpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW07XG59XG5cbi8qIFdpZGUgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC53aWRlLmZpZWxkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC53aWRlLmZpZWxkID4gaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAud2lkZS5maWVsZCA+IHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5taW5pLmZvcm0ge1xuICBmb250LXNpemU6IEBtaW5pO1xufVxuLnVpLnRpbnkuZm9ybSB7XG4gIGZvbnQtc2l6ZTogQHRpbnk7XG59XG4udWkuc21hbGwuZm9ybSB7XG4gIGZvbnQtc2l6ZTogQHNtYWxsO1xufVxuLnVpLmZvcm0ge1xuICBmb250LXNpemU6IEBtZWRpdW07XG59XG4udWkubGFyZ2UuZm9ybSB7XG4gIGZvbnQtc2l6ZTogQGxhcmdlO1xufVxuLnVpLmJpZy5mb3JtIHtcbiAgZm9udC1zaXplOiBAYmlnO1xufVxuLnVpLmh1Z2UuZm9ybSB7XG4gIGZvbnQtc2l6ZTogQGh1Z2U7XG59XG4udWkubWFzc2l2ZS5mb3JtIHtcbiAgZm9udC1zaXplOiBAbWFzc2l2ZTtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuZm9ybSAuZmllbGQgc21hbGwge1xuICAgIGNvbG9yOiBAZ3JleTtcbiAgICBtYXJnaW4tdG9wOiAwLjRlbSAhaW1wb3J0YW50O1xufVxuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gR3JpZFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdjb2xsZWN0aW9uJztcbkBlbGVtZW50IDogJ2dyaWQnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLmdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBwYWRkaW5nOiAwZW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUmVtb3ZlIEd1dHRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmdyaWQge1xuICBtYXJnaW4tdG9wOiAtKEByb3dTcGFjaW5nIC8gMik7XG4gIG1hcmdpbi1ib3R0b206IC0oQHJvd1NwYWNpbmcgLyAyKTtcbiAgbWFyZ2luLWxlZnQ6IC0oQGd1dHRlcldpZHRoIC8gMik7XG4gIG1hcmdpbi1yaWdodDogLShAZ3V0dGVyV2lkdGggLyAyKTtcbn1cbi51aS5yZWxheGVkLmdyaWQgIHtcbiAgbWFyZ2luLWxlZnQ6IC0oQHJlbGF4ZWRHdXR0ZXJXaWR0aCAvIDIpO1xuICBtYXJnaW4tcmlnaHQ6IC0oQHJlbGF4ZWRHdXR0ZXJXaWR0aCAvIDIpO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5ncmlkICB7XG4gIG1hcmdpbi1sZWZ0OiAtKEB2ZXJ5UmVsYXhlZEd1dHRlcldpZHRoIC8gMik7XG4gIG1hcmdpbi1yaWdodDogLShAdmVyeVJlbGF4ZWRHdXR0ZXJXaWR0aCAvIDIpO1xufVxuXG5cbi8qIFByZXNlcnZlIFJvd3MgU3BhY2luZyBvbiBDb25zZWN1dGl2ZSBHcmlkcyAqL1xuLnVpLmdyaWQgKyAuZ3JpZCB7XG4gIG1hcmdpbi10b3A6IEBjb25zZWN1dGl2ZUdyaWREaXN0YW5jZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sdW1uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTdGFuZGFyZCAxNiBjb2x1bW4gKi9cbi51aS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgd2lkdGg6IEBvbmVXaWRlO1xuICBwYWRkaW5nLWxlZnQ6IChAZ3V0dGVyV2lkdGggLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXJXaWR0aCAvIDIpO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4udWkuZ3JpZCA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IChAZ3V0dGVyV2lkdGggLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXJXaWR0aCAvIDIpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUm93c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZ3JpZCA+IC5yb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBpbmhlcml0O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHJlbTtcbiAgcGFkZGluZy10b3A6IChAcm93U3BhY2luZyAvIDIpO1xuICBwYWRkaW5nLWJvdHRvbTogKEByb3dTcGFjaW5nIC8gMik7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbHVtbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogVmVydGljYWwgcGFkZGluZyB3aGVuIG5vIHJvd3MgKi9cbi51aS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICBwYWRkaW5nLXRvcDogKEByb3dTcGFjaW5nIC8gMik7XG4gIHBhZGRpbmctYm90dG9tOiAoQHJvd1NwYWNpbmcgLyAyKTtcbn1cbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5ncmlkID4gLnJvdyA+IGltZyxcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW4gPiBpbWcge1xuICBtYXgtd2lkdGg6IEBjb2x1bW5NYXhJbWFnZVdpZHRoO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBMb29zZSBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBDb2xsYXBzZSBNYXJnaW4gb24gQ29uc2VjdXRpdmUgR3JpZCAqL1xuLnVpLmdyaWQgPiAudWkuZ3JpZDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5ncmlkID4gLnVpLmdyaWQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLyogU2VnbWVudCBpbnNpZGUgQWxpZ25lZCBHcmlkICovXG4udWkuZ3JpZCAuYWxpZ25lZC5yb3cgPiAuY29sdW1uID4gLnNlZ21lbnQ6bm90KC5jb21wYWN0KTpub3QoLmF0dGFjaGVkKSxcbi51aS5hbGlnbmVkLmdyaWQgLmNvbHVtbiA+IC5zZWdtZW50Om5vdCguY29tcGFjdCk6bm90KC5hdHRhY2hlZCkge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyogQWxpZ24gRGl2aWRlcnMgd2l0aCBHdXR0ZXIgKi9cbi51aS5ncmlkIC5yb3cgKyAudWkuZGl2aWRlciB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luOiAoQHJvd1NwYWNpbmcgLyAyKSAoQGd1dHRlcldpZHRoIC8gMik7XG59XG4udWkuZ3JpZCAuY29sdW1uICsgLnVpLnZlcnRpY2FsLmRpdmlkZXIge1xuICBoZWlnaHQ6IGNhbGMoNTAlIC0gKEByb3dTcGFjaW5nIC8gMikpO1xufVxuXG4vKiBSZW1vdmUgQm9yZGVyIG9uIExhc3QgSG9yaXpvbnRhbCBTZWdtZW50ICovXG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQgPiAuaG9yaXpvbnRhbC5zZWdtZW50LFxuLnVpLmdyaWQgPiAuY29sdW1uOmxhc3QtY2hpbGQgPiAuaG9yaXpvbnRhbC5zZWdtZW50IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUGFnZSBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogQG1vYmlsZVdpZHRoO1xuICAgIHBhZGRpbmctbGVmdDogQG1vYmlsZUd1dHRlcjtcbiAgICBwYWRkaW5nLXJpZ2h0OiBAbW9iaWxlR3V0dGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHRhYmxldEJyZWFrcG9pbnQpIGFuZCAobWF4LXdpZHRoOiBAbGFyZ2VzdFRhYmxldFNjcmVlbikge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogQHRhYmxldFdpZHRoO1xuICAgIG1hcmdpbi1sZWZ0OiBAdGFibGV0TWFyZ2luO1xuICAgIG1hcmdpbi1yaWdodDogQHRhYmxldE1hcmdpbjtcbiAgICBwYWRkaW5nLWxlZnQ6IEB0YWJsZXRHdXR0ZXI7XG4gICAgcGFkZGluZy1yaWdodDogQHRhYmxldEd1dHRlcjtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAY29tcHV0ZXJCcmVha3BvaW50KSBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RTbWFsbE1vbml0b3IpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IEBjb21wdXRlcldpZHRoO1xuICAgIG1hcmdpbi1sZWZ0OiBAY29tcHV0ZXJNYXJnaW47XG4gICAgbWFyZ2luLXJpZ2h0OiBAY29tcHV0ZXJNYXJnaW47XG4gICAgcGFkZGluZy1sZWZ0OiBAY29tcHV0ZXJHdXR0ZXI7XG4gICAgcGFkZGluZy1yaWdodDogQGNvbXB1dGVyR3V0dGVyO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBsYXJnZU1vbml0b3JCcmVha3BvaW50KSBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RMYXJnZU1vbml0b3IpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IEBsYXJnZU1vbml0b3JXaWR0aDtcbiAgICBtYXJnaW4tbGVmdDogQGxhcmdlTW9uaXRvck1hcmdpbjtcbiAgICBtYXJnaW4tcmlnaHQ6IEBsYXJnZU1vbml0b3JNYXJnaW47XG4gICAgcGFkZGluZy1sZWZ0OiBAbGFyZ2VNb25pdG9yR3V0dGVyO1xuICAgIHBhZGRpbmctcmlnaHQ6IEBsYXJnZU1vbml0b3JHdXR0ZXI7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHdpZGVzY3JlZW5Nb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogQHdpZGVzY3JlZW5Nb25pdG9yV2lkdGg7XG4gICAgbWFyZ2luLWxlZnQ6IEB3aWRlc2NyZWVuTWFyZ2luO1xuICAgIG1hcmdpbi1yaWdodDogQHdpZGVzY3JlZW5NYXJnaW47XG4gICAgcGFkZGluZy1sZWZ0OiBAd2lkZXNjcmVlbk1vbml0b3JHdXR0ZXI7XG4gICAgcGFkZGluZy1yaWdodDogQHdpZGVzY3JlZW5Nb25pdG9yR3V0dGVyO1xuICB9XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIENvbHVtbiBDb3VudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBBc3N1bWUgZnVsbCB3aWR0aCB3aXRoIG9uZSBjb2x1bW4gKi9cbi51aS5ncmlkID4gLmNvbHVtbjpvbmx5LWNoaWxkLFxuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbjpvbmx5LWNoaWxkIHtcbiAgd2lkdGg6IEBvbmVDb2x1bW47XG59XG5cbi8qIEdyaWQgQmFzZWQgKi9cbi51aVtjbGFzcyo9XCJvbmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJvbmUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiBAb25lQ29sdW1uO1xufVxuLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IEB0d29Db2x1bW47XG59XG4udWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IEB0aHJlZUNvbHVtbjtcbn1cbi51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IEBmb3VyQ29sdW1uO1xufVxuLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogQGZpdmVDb2x1bW47XG59XG4udWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogQHNpeENvbHVtbjtcbn1cbi51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogQHNldmVuQ29sdW1uO1xufVxuLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiBAZWlnaHRDb2x1bW47XG59XG4udWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiBAbmluZUNvbHVtbjtcbn1cbi51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiBAdGVuQ29sdW1uO1xufVxuLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IEBlbGV2ZW5Db2x1bW47XG59XG4udWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogQHR3ZWx2ZUNvbHVtbjtcbn1cbi51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogQHRoaXJ0ZWVuQ29sdW1uO1xufVxuLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiBAZm91cnRlZW5Db2x1bW47XG59XG4udWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiBAZmlmdGVlbkNvbHVtbjtcbn1cbi51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IEBzaXh0ZWVuQ29sdW1uO1xufVxuXG4vKiBSb3cgQmFzZWQgT3ZlcnJpZGVzICovXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogQG9uZUNvbHVtbiAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IEB0d29Db2x1bW4gIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IEB0aHJlZUNvbHVtbiAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiBAZm91ckNvbHVtbiAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiBAZml2ZUNvbHVtbiAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IEBzaXhDb2x1bW4gIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IEBzZXZlbkNvbHVtbiAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogQGVpZ2h0Q29sdW1uICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IEBuaW5lQ29sdW1uICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogQHRlbkNvbHVtbiAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IEBlbGV2ZW5Db2x1bW4gIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiBAdHdlbHZlQ29sdW1uICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiBAdGhpcnRlZW5Db2x1bW4gIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IEBmb3VydGVlbkNvbHVtbiAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiBAZmlmdGVlbkNvbHVtbiAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiBAc2l4dGVlbkNvbHVtbiAhaW1wb3J0YW50O1xufVxuXG4vKiBDZWxsZWQgUGFnZSAqL1xuLnVpLmNlbGxlZC5wYWdlLmdyaWQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDb2x1bW4gV2lkdGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiBAb25lV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiBAdHdvV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IEB0aHJlZVdpZGUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IEBmb3VyV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogQGZpdmVXaWRlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IEBzaXhXaWRlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogQHNldmVuV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IEBlaWdodFdpZGUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IEBuaW5lV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiBAdGVuV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiBAZWxldmVuV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiBAdHdlbHZlV2lkZSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IEB0aGlydGVlbldpZGUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiBAZm91cnRlZW5XaWRlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiBAZmlmdGVlbldpZGUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IEBzaXh0ZWVuV2lkZSAhaW1wb3J0YW50O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBXaWR0aCBwZXIgRGV2aWNlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIE1vYmlsZSBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBtb2JpbGVCcmVha3BvaW50KSBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAb25lV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHR3b1dpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHRocmVlV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmb3VyV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmaXZlV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHNpeFdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHNldmVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZWlnaHRXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQG5pbmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdGVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGVsZXZlbldpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0d2VsdmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0aGlydGVlbldpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGZvdXJ0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmaWZ0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBzaXh0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIFRhYmxldCBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEB0YWJsZXRCcmVha3BvaW50KSBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RUYWJsZXRTY3JlZW4pIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAb25lV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHR3b1dpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHRocmVlV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmb3VyV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmaXZlV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHNpeFdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHNldmVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZWlnaHRXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQG5pbmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdGVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGVsZXZlbldpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0d2VsdmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0aGlydGVlbldpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGZvdXJ0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmaWZ0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBzaXh0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIENvbXB1dGVyL0Rlc2t0b3AgU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAY29tcHV0ZXJCcmVha3BvaW50KSB7XG4gICAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBvbmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0d29XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHRocmVlV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGZvdXJXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZml2ZVdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHNpeFdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAc2V2ZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGVpZ2h0V2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQG5pbmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0ZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBlbGV2ZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0d2VsdmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHRoaXJ0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmb3VydGVlbldpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmaWZ0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHNpeHRlZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogTGFyZ2UgTW9uaXRvciBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBsYXJnZU1vbml0b3JCcmVha3BvaW50KSBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RMYXJnZU1vbml0b3Ipe1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBvbmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdHdvV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdGhyZWVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGZvdXJXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGZpdmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAc2l4V2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAc2V2ZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBlaWdodFdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAbmluZVdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0ZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZWxldmVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHR3ZWx2ZVdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHRoaXJ0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZm91cnRlZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGZpZnRlZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHNpeHRlZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogV2lkZXNjcmVlbiBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEB3aWRlc2NyZWVuTW9uaXRvckJyZWFrcG9pbnQpIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQG9uZVdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdHdvV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHRocmVlV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZm91cldpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQGZpdmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHNpeFdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBzZXZlbldpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBlaWdodFdpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQG5pbmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogQHRlbldpZGUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZWxldmVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0d2VsdmVXaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdGhpcnRlZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZm91cnRlZW5XaWRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmaWZ0ZWVuV2lkZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiBAc2l4dGVlbldpZGUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQ2VudGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNlbnRlcmVkLmdyaWQsXG4udWkuY2VudGVyZWQuZ3JpZCA+IC5yb3csXG4udWkuZ3JpZCA+IC5jZW50ZXJlZC5yb3cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnVpLmNlbnRlcmVkLmdyaWQgPiAuY29sdW1uOm5vdCguYWxpZ25lZCk6bm90KC5qdXN0aWZpZWQpOm5vdCgucm93KSxcbi51aS5jZW50ZXJlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46bm90KC5hbGlnbmVkKTpub3QoLmp1c3RpZmllZCksXG4udWkuZ3JpZCAuY2VudGVyZWQucm93ID4gLmNvbHVtbjpub3QoLmFsaWduZWQpOm5vdCguanVzdGlmaWVkKSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi51aS5ncmlkID4gLmNlbnRlcmVkLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5jZW50ZXJlZC5jb2x1bW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFJlbGF4ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnJlbGF4ZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLnJlbGF4ZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAucmVsYXhlZC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZy1sZWZ0OiAoQHJlbGF4ZWRHdXR0ZXJXaWR0aCAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQHJlbGF4ZWRHdXR0ZXJXaWR0aCAvIDIpO1xufVxuXG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nLWxlZnQ6IChAdmVyeVJlbGF4ZWRHdXR0ZXJXaWR0aCAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQHZlcnlSZWxheGVkR3V0dGVyV2lkdGggLyAyKTtcbn1cblxuLyogQ291cGxpbmcgd2l0aCBVSSBEaXZpZGVyICovXG4udWkucmVsYXhlZC5ncmlkIC5yb3cgKyAudWkuZGl2aWRlcixcbi51aS5ncmlkIC5yZWxheGVkLnJvdyArIC51aS5kaXZpZGVyIHtcbiAgbWFyZ2luLWxlZnQ6IChAcmVsYXhlZEd1dHRlcldpZHRoIC8gMik7XG4gIG1hcmdpbi1yaWdodDogKEByZWxheGVkR3V0dGVyV2lkdGggLyAyKTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uZ3JpZCAucm93ICsgLnVpLmRpdmlkZXIsXG4udWkuZ3JpZCBbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLnJvdyArIC51aS5kaXZpZGVyIHtcbiAgbWFyZ2luLWxlZnQ6IChAdmVyeVJlbGF4ZWRHdXR0ZXJXaWR0aCAvIDIpO1xuICBtYXJnaW4tcmlnaHQ6IChAdmVyeVJlbGF4ZWRHdXR0ZXJXaWR0aCAvIDIpO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWRkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnBhZGRlZC5ncmlkOm5vdCgudmVydGljYWxseSk6bm90KC5ob3Jpem9udGFsbHkpIHtcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbn1cbltjbGFzcyo9XCJob3Jpem9udGFsbHkgcGFkZGVkXCJdLnVpLmdyaWQge1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG59XG5bY2xhc3MqPVwidmVydGljYWxseSBwYWRkZWRcIl0udWkuZ3JpZCB7XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwZW0gIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgXCJGbG9hdGVkXCJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmdyaWQgW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5jb2x1bW4ge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4udWkuZ3JpZCBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5jb2x1bW4ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbiB7XG4gIGJveC1zaGFkb3c6IEBkaXZpZGVkQm9yZGVyO1xufVxuXG4vKiBTd2FwIGZyb20gcGFkZGluZyB0byBtYXJnaW4gb24gY29sdW1ucyB0byBoYXZlIGRpdmlkZXJzIGFsaWduICovXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgbWFyZ2luLXRvcDogKEByb3dTcGFjaW5nIC8gMik7XG4gIG1hcmdpbi1ib3R0b206IChAcm93U3BhY2luZyAvIDIpO1xuICBwYWRkaW5nLXRvcDogMHJlbTtcbiAgcGFkZGluZy1ib3R0b206IDByZW07XG59XG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93IHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG5cblxuXG4vKiBObyBkaXZpZGVyIG9uIGZpcnN0IGNvbHVtbiBvbiByb3cgKi9cbi51aS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbi51aS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiBObyBzcGFjZSBvbiB0b3Agb2YgZmlyc3Qgcm93ICovXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkID4gLmNvbHVtbiB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cblxuXG4vKiBEaXZpZGVkIFJvdyAqL1xuLnVpLmdyaWQgPiAuZGl2aWRlZC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogQGRpdmlkZWRCb3JkZXI7XG59XG4udWkuZ3JpZCA+IC5kaXZpZGVkLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiBWZXJ0aWNhbGx5IERpdmlkZWQgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBweDtcblxuICB3aWR0aDogY2FsYygxMDAlIC0gQGd1dHRlcldpZHRoKTtcbiAgaGVpZ2h0OiAxcHg7XG5cbiAgbWFyZ2luOiAwJSAoQGd1dHRlcldpZHRoIC8gMik7XG4gIGJveC1zaGFkb3c6IEB2ZXJ0aWNhbGx5RGl2aWRlZEJvcmRlcjtcbn1cblxuLyogUGFkZGVkIEhvcml6b250YWxseSBEaXZpZGVkICovXG5bY2xhc3MqPVwiaG9yaXpvbnRhbGx5IHBhZGRlZFwiXS51aS5kaXZpZGVkLmdyaWQsXG4udWkucGFkZGVkLmRpdmlkZWQuZ3JpZDpub3QoLnZlcnRpY2FsbHkpOm5vdCguaG9yaXpvbnRhbGx5KSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBGaXJzdCBSb3cgVmVydGljYWxseSBEaXZpZGVkICovXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIEludmVydGVkIERpdmlkZWQgKi9cbi51aS5pbnZlcnRlZC5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogQGRpdmlkZWRJbnZlcnRlZEJvcmRlcjtcbn1cbi51aS5pbnZlcnRlZC5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpub3QoLnJvdyk6Zmlyc3QtY2hpbGQsXG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnZlcnRlZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogQHZlcnRpY2FsbHlEaXZpZGVkSW52ZXJ0ZWRCb3JkZXI7XG59XG5cbi8qIFJlbGF4ZWQgKi9cbi51aS5yZWxheGVkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogKEByZWxheGVkR3V0dGVyV2lkdGggLyAyKTtcbiAgbWFyZ2luLXJpZ2h0OiAoQHJlbGF4ZWRHdXR0ZXJXaWR0aCAvIDIpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gQHJlbGF4ZWRHdXR0ZXJXaWR0aCk7XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogKEB2ZXJ5UmVsYXhlZEd1dHRlcldpZHRoIC8gMik7XG4gIG1hcmdpbi1yaWdodDogKEB2ZXJ5UmVsYXhlZEd1dHRlcldpZHRoIC8gMik7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSBAdmVyeVJlbGF4ZWRHdXR0ZXJXaWR0aCk7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgQ2VsbGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jZWxsZWQuZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IEBjZWxsZWRNYXJnaW47XG4gIGJveC1zaGFkb3c6IEBjZWxsZWRHcmlkRGl2aWRlcjtcbn1cblxuLnVpLmNlbGxlZC5ncmlkID4gLnJvdyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGJveC1zaGFkb3c6IEBjZWxsZWRSb3dEaXZpZGVyO1xufVxuLnVpLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWkuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIGJveC1zaGFkb3c6IEBjZWxsZWRDb2x1bW5EaXZpZGVyO1xufVxuXG4udWkuY2VsbGVkLmdyaWQgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuLnVpLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4udWkuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZzogQGNlbGxlZFBhZGRpbmc7XG59XG4udWkucmVsYXhlZC5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLnJlbGF4ZWQuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmc6IEBjZWxsZWRSZWxheGVkUGFkZGluZztcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmc6IEBjZWxsZWRWZXJ5UmVsYXhlZFBhZGRpbmc7XG59XG5cbi8qIEludGVybmFsbHkgQ2VsbGVkICovXG4udWlbY2xhc3MqPVwiaW50ZXJuYWxseSBjZWxsZWRcIl0uZ3JpZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpW2NsYXNzKj1cImludGVybmFsbHkgY2VsbGVkXCJdLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aVtjbGFzcyo9XCJpbnRlcm5hbGx5IGNlbGxlZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFZlcnRpY2FsbHkgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBUb3AgQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi8qIE1pZGRsZSBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4vKiBCb3R0b20gQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBTdHJldGNoZWQgKi9cbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLnN0cmV0Y2hlZC5ncmlkID4gLmNvbHVtbixcbi51aS5ncmlkID4gLnN0cmV0Y2hlZC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZ3JpZCA+IC5yb3cgPiAuc3RyZXRjaGVkLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uID4gKixcbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5jb2x1bW4gPiAqLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLnJvdyA+IC5jb2x1bW4gPiAqLFxuLnVpLmdyaWQgPiAuc3RyZXRjaGVkLmNvbHVtbjpub3QoLnJvdykgPiAqLFxuLnVpLmdyaWQgPiAucm93ID4gLnN0cmV0Y2hlZC5jb2x1bW4gPiAqIHtcbiAgZmxleC1ncm93OiAxO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSG9yaXpvbnRhbGx5IENlbnRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIExlZnQgQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGFsaWduLXNlbGY6IGluaGVyaXQ7XG59XG5cbi8qIENlbnRlciBBbGlnbmVkICovXG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogaW5oZXJpdDtcbn1cbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5ncmlkIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIFJpZ2h0IEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBhbGlnbi1zZWxmOiBpbmhlcml0O1xufVxuXG4vKiBKdXN0aWZpZWQgKi9cbi51aS5qdXN0aWZpZWQuZ3JpZCA+IC5jb2x1bW4sXG4udWkuanVzdGlmaWVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gLmp1c3RpZmllZC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAuanVzdGlmaWVkLmNvbHVtbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuanVzdGlmaWVkLmNvbHVtbi5jb2x1bW4ge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICBoeXBoZW5zOiBhdXRvO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIENvbG9yZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmdyaWQgPiAucm93ID4gLnJlZC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAub3JhbmdlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC55ZWxsb3cuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLm9saXZlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ncmVlbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudGVhbC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYmx1ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudmlvbGV0LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5wdXJwbGUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnBpbmsuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJyb3duLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ncmV5LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ibGFjay5jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAtKEByb3dTcGFjaW5nIC8gMik7XG4gIG1hcmdpbi1ib3R0b206IC0oQHJvd1NwYWNpbmcgLyAyKTtcbiAgcGFkZGluZy10b3A6IChAcm93U3BhY2luZyAvIDIpO1xuICBwYWRkaW5nLWJvdHRvbTogKEByb3dTcGFjaW5nIC8gMik7XG59XG5cbi8qIFJlZCAqL1xuLnVpLmdyaWQgPiAucmVkLnJvdyxcbi51aS5ncmlkID4gLnJlZC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucmVkLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEByZWQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLmdyaWQgPiAub3JhbmdlLnJvdyxcbi51aS5ncmlkID4gLm9yYW5nZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAub3JhbmdlLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvcmFuZ2UgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbi8qIFllbGxvdyAqL1xuLnVpLmdyaWQgPiAueWVsbG93LnJvdyxcbi51aS5ncmlkID4gLnllbGxvdy5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAueWVsbG93LmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB5ZWxsb3cgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbi8qIE9saXZlICovXG4udWkuZ3JpZCA+IC5vbGl2ZS5yb3csXG4udWkuZ3JpZCA+IC5vbGl2ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAub2xpdmUuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG9saXZlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGU7XG59XG4vKiBHcmVlbiAqL1xuLnVpLmdyaWQgPiAuZ3JlZW4ucm93LFxuLnVpLmdyaWQgPiAuZ3JlZW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmdyZWVuLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBncmVlbiAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlO1xufVxuLyogVGVhbCAqL1xuLnVpLmdyaWQgPiAudGVhbC5yb3csXG4udWkuZ3JpZCA+IC50ZWFsLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC50ZWFsLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0ZWFsICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGU7XG59XG4vKiBCbHVlICovXG4udWkuZ3JpZCA+IC5ibHVlLnJvdyxcbi51aS5ncmlkID4gLmJsdWUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJsdWUuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsdWUgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLmdyaWQgPiAudmlvbGV0LnJvdyxcbi51aS5ncmlkID4gLnZpb2xldC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudmlvbGV0LmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB2aW9sZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbi8qIFB1cnBsZSAqL1xuLnVpLmdyaWQgPiAucHVycGxlLnJvdyxcbi51aS5ncmlkID4gLnB1cnBsZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucHVycGxlLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwdXJwbGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbi8qIFBpbmsgKi9cbi51aS5ncmlkID4gLnBpbmsucm93LFxuLnVpLmdyaWQgPiAucGluay5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucGluay5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluayAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlO1xufVxuLyogQnJvd24gKi9cbi51aS5ncmlkID4gLmJyb3duLnJvdyxcbi51aS5ncmlkID4gLmJyb3duLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5icm93bi5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJvd24gIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbi8qIEdyZXkgKi9cbi51aS5ncmlkID4gLmdyZXkucm93LFxuLnVpLmdyaWQgPiAuZ3JleS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuZ3JleS5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JleSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlO1xufVxuLyogQmxhY2sgKi9cbi51aS5ncmlkID4gLmJsYWNrLnJvdyxcbi51aS5ncmlkID4gLmJsYWNrLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ibGFjay5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmxhY2sgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVxdWFsIFdpZHRoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0ucm93ID4gLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxleC1ncm93OiAxO1xufVxuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmdyaWQgPiAud2lkZS5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZ3JpZCA+IC5yb3cgPiAud2lkZS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5yb3cgPiAud2lkZS5jb2x1bW4ge1xuICBmbGV4LWdyb3c6IDA7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFJldmVyc2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4vKiBNb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5ncmlkLFxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmdyaWQgPiAucm93LFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0ucm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdLmdyaWQsXG4gIC51aS5zdGFja2FibGVbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cblxuICAvKiBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBAZGl2aWRlZEJvcmRlcjtcbiAgfVxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmxhc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogVmVydGljYWxseSBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJtb2JpbGUgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiBAdmVydGljYWxseURpdmlkZWRCb3JkZXI7XG4gIH1cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cIm1vYmlsZSB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBDZWxsZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBAY2VsbGVkQ29sdW1uRGl2aWRlcjtcbiAgfVxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4vKiBUYWJsZXQgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHRhYmxldEJyZWFrcG9pbnQpIGFuZCAobWF4LXdpZHRoOiBAbGFyZ2VzdFRhYmxldFNjcmVlbikge1xuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmdyaWQsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZ3JpZCA+IC5yb3csXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0uZ3JpZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG5cbiAgLyogRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogQGRpdmlkZWRCb3JkZXI7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpsYXN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIFZlcnRpY2FsbHkgRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwidGFibGV0IHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93OmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogQHZlcnRpY2FsbHlEaXZpZGVkQm9yZGVyO1xuICB9XG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJ0YWJsZXQgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6bGFzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogQ2VsbGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogQGNlbGxlZENvbHVtbkRpdmlkZXI7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuLyogQ29tcHV0ZXIgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQGNvbXB1dGVyQnJlYWtwb2ludCkge1xuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZ3JpZCxcbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmdyaWQgPiAucm93LFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgdmVydGljYWxseSByZXZlcnNlZFwiXS5ncmlkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cblxuICAvKiBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogQGRpdmlkZWRCb3JkZXI7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmxhc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBWZXJ0aWNhbGx5IERpdmlkZWQgUmV2ZXJzZWQgKi9cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cImNvbXB1dGVyIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93OmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogQHZlcnRpY2FsbHlEaXZpZGVkQm9yZGVyO1xuICB9XG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJjb21wdXRlciB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBDZWxsZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IEBjZWxsZWRDb2x1bW5EaXZpZGVyO1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERvdWJsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFRhYmxldCBPbmx5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEB0YWJsZXRCcmVha3BvaW50KSBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RUYWJsZXRTY3JlZW4pIHtcbiAgLnVpLmRvdWJsaW5nLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyxcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93IHtcbiAgICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDBlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLmRvdWJsaW5nLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAoQHJvd1NwYWNpbmcgLyAyKSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAoQHJvd1NwYWNpbmcgLyAyKSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBlbTtcbiAgfVxuICAudWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBvbmVDb2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0d29Db2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0d29Db2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0aHJlZUNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogQHRocmVlQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdGhyZWVDb2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmb3VyQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZm91ckNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogQGZpdmVDb2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmaXZlQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAc2l4Q29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAc2l4Q29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAc2V2ZW5Db2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBzZXZlbkNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogQGVpZ2h0Q29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogTW9iaWxlIE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93LFxuICAudWkuZG91YmxpbmcuZ3JpZCA+IC5yb3cge1xuICAgIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93ID4gLmNvbHVtbixcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZy10b3A6IChAcm93U3BhY2luZyAvIDIpICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IChAcm93U3BhY2luZyAvIDIpICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAb25lQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdHdvQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdHdvQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdHdvQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdHdvQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdHdvQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdHdvQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdGhyZWVDb2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0aHJlZUNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogQHRocmVlQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAdGhyZWVDb2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEB0aHJlZUNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogQGZvdXJDb2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IEBmb3VyQ29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiBAZm91ckNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLnN0YWNrYWJsZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAucm93ID4gLndpZGUuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAud2lkZS5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW4uZ3JpZCA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW4ucm93ID4gLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IC5zdGFja2FibGUuc3RhY2thYmxlLnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW0gMGVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IChAc3RhY2thYmxlUm93U3BhY2luZyAvIDIpIChAc3RhY2thYmxlR3V0dGVyIC8gMikgIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQ6bm90KC52ZXJ0aWNhbGx5KSA+IC5yb3cge1xuICAgIG1hcmdpbjogMGVtO1xuICAgIHBhZGRpbmc6IDBlbTtcbiAgfVxuXG4gIC8qIENvdXBsaW5nICovXG4gIC51aS5jb250YWluZXIgPiAudWkuc3RhY2thYmxlLmdyaWQgPiAuY29sdW1uLFxuICAudWkuY29udGFpbmVyID4gLnVpLnN0YWNrYWJsZS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBEb24ndCBwYWQgaW5zaWRlIHNlZ21lbnQgb3IgbmVzdGVkIGdyaWQgKi9cbiAgLnVpLmdyaWQgLnVpLnN0YWNrYWJsZS5ncmlkLFxuICAudWkuc2VnbWVudDpub3QoLnZlcnRpY2FsKSAudWkuc3RhY2thYmxlLnBhZ2UuZ3JpZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0oQHN0YWNrYWJsZUd1dHRlciAvIDIpICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAtKEBzdGFja2FibGVHdXR0ZXIgLyAyKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogRGl2aWRlZCBTdGFja2FibGUgKi9cbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkLmdyaWQgPiAucm93OmZpcnN0LWNoaWxkID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpOmZpcnN0LWNoaWxkLFxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuaW52ZXJ0ZWQuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5pbnZlcnRlZC5zdGFja2FibGUuZGl2aWRlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5pbnZlcnRlZC5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpLmludmVydGVkLnN0YWNrYWJsZS5kaXZpZGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgYm9yZGVyLXRvcDogQHN0YWNrYWJsZUludmVydGVkTW9iaWxlQm9yZGVyO1xuICB9XG5cbiAgLnVpLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQ6bm90KC52ZXJ0aWNhbGx5KS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkOm5vdCgudmVydGljYWxseSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgICBib3JkZXItdG9wOiBAc3RhY2thYmxlTW9iaWxlQm9yZGVyO1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogQHN0YWNrYWJsZVJvd1NwYWNpbmcgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogQHN0YWNrYWJsZVJvd1NwYWNpbmcgIWltcG9ydGFudDtcbiAgfVxuXG4gIC51aS5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAucm93IHtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkOm5vdCgudmVydGljYWxseSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuc3RhY2thYmxlLmRpdmlkZWQ6bm90KC52ZXJ0aWNhbGx5KS5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cblxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT25seSAoRGV2aWNlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8qIFRoZXNlIGluY2x1ZGUgYXJiaXRyYXJ5IGNsYXNzIHJlcGV0aXRpb25zIGZvciBmb3JjZWQgc3BlY2lmaWNpdHkgKi9cblxuLyogTW9iaWxlIE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBUYWJsZXQgT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEB0YWJsZXRCcmVha3BvaW50KSBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RUYWJsZXRTY3JlZW4pIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgudGFibGV0KSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLnRhYmxldCkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLnJvdzpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmNvbHVtbjpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBDb21wdXRlciBPbmx5IEhpZGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQGNvbXB1dGVyQnJlYWtwb2ludCkgYW5kIChtYXgtd2lkdGg6IEBsYXJnZXN0U21hbGxNb25pdG9yKSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBMYXJnZSBTY3JlZW4gT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBsYXJnZU1vbml0b3JCcmVha3BvaW50KSBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RMYXJnZU1vbml0b3IpIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBXaWRlc2NyZWVuIE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAd2lkZXNjcmVlbk1vbml0b3JCcmVha3BvaW50KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi5yb3cubm8tcGFkZGluZyxcbi5yb3cgLmNvbHVtbi5uby1wYWRkaW5nIHtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbn1cblxuLnJvdy5uby1wYWRkaW5nLWxyLFxuLnJvdyAuY29sdW1uLm5vLXBhZGRpbmctbHIge1xuICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5yb3cubm8tcGFkZGluZy10Yixcbi5yb3cgLmNvbHVtbi5uby1wYWRkaW5nLXRiIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AaW1wb3J0IFwiQGxlc3MvaW52ZW5pb190aGVtZS90aGVtZS9jb2xsZWN0aW9ucy9ncmlkLm92ZXJyaWRlc1wiO1xuXG4vKiogR2VuZXJhbCB1dGlsIGNsYXNzZXMgKi9cblxuLnJvdy5uby1wYWRkaW5nLXQge1xuICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbn1cblxuLyoqIERlcG9zaXQgc2VhcmNoIHBhZ2UgKi9cblxuLnJvdy5kZXBvc2l0LXJlc3VsdC1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkN2Q3ZDc7XG5cbiAgICAmLnBhZGRpbmctdGItNSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgfVxuICAgICYuc21hbGwge1xuICAgICAgICBmb250LXNpemU6IHNtYWxsO1xuICAgIH1cbiAgICAucGFkZGluZy1yLTUuY29sdW1uIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgIH1cbn1cbiIsIi8qXG4gKiAjIFNlbWFudGljIC0gTWVudVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBDb3B5cmlnaHQgMjAxNSBDb250cmlidXRvclxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdjb2xsZWN0aW9uJztcbkBlbGVtZW50IDogJ21lbnUnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGFuZGFyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IEBtYXJnaW47XG4gIGZvbnQtZmFtaWx5OiBAZm9udEZhbWlseTtcbiAgYmFja2dyb3VuZDogQGJhY2tncm91bmQ7XG4gIGZvbnQtd2VpZ2h0OiBAZm9udFdlaWdodDtcbiAgYm9yZGVyOiBAYm9yZGVyO1xuICBib3gtc2hhZG93OiBAYm94U2hhZG93O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xuICBtaW4taGVpZ2h0OiBAbWluSGVpZ2h0O1xufVxuXG4udWkubWVudTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi51aS5tZW51OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbn1cbi51aS5tZW51Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcmVtO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdWItTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLm1lbnUgLm1lbnUge1xuICBtYXJnaW46IDBlbTtcbn1cblxuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgPiAubWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEl0ZW1cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnVpLm1lbnUgLml0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICBiYWNrZ3JvdW5kOiBAaXRlbUJhY2tncm91bmQ7XG4gIHBhZGRpbmc6IEBpdGVtVmVydGljYWxQYWRkaW5nIEBpdGVtSG9yaXpvbnRhbFBhZGRpbmc7XG4gIHRleHQtdHJhbnNmb3JtOiBAaXRlbVRleHRUcmFuc2Zvcm07XG4gIGNvbG9yOiBAaXRlbVRleHRDb2xvcjtcbiAgZm9udC13ZWlnaHQ6IEBpdGVtRm9udFdlaWdodDtcbiAgdHJhbnNpdGlvbjogQGl0ZW1UcmFuc2l0aW9uO1xufVxuXG4udWkubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cyAwcHggMHB4IEBib3JkZXJSYWRpdXM7XG59XG5cbi8qIEJvcmRlciAqL1xuLnVpLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgcmlnaHQ6IDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIHdpZHRoOiBAZGl2aWRlclNpemU7XG4gIGJhY2tncm91bmQ6IEBkaXZpZGVyQmFja2dyb3VuZDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICBUZXh0IENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5tZW51IC50ZXh0Lml0ZW0gPiAqLFxuLnVpLm1lbnUgLml0ZW0gPiBhOm5vdCgudWkpLFxuLnVpLm1lbnUgLml0ZW0gPiBwOm9ubHktY2hpbGQge1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbiAgbGluZS1oZWlnaHQ6IEB0ZXh0TGluZUhlaWdodDtcbn1cbi51aS5tZW51IC5pdGVtID4gcDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4udWkubWVudSAuaXRlbSA+IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWVudSAuaXRlbSA+IGkuaWNvbiB7XG4gIG9wYWNpdHk6IEBpY29uT3BhY2l0eTtcbiAgZmxvYXQ6IEBpY29uRmxvYXQ7XG4gIG1hcmdpbjogQGljb25NYXJnaW47XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnV0dG9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAuaXRlbSA+IC5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogQGJ1dHRvbk9mZnNldDtcbiAgbWFyZ2luOiBAYnV0dG9uTWFyZ2luO1xuICBwYWRkaW5nLWJvdHRvbTogQGJ1dHRvblZlcnRpY2FsUGFkZGluZztcbiAgcGFkZGluZy10b3A6IEBidXR0b25WZXJ0aWNhbFBhZGRpbmc7XG4gIGZvbnQtc2l6ZTogQGJ1dHRvblNpemU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLVxuIEdyaWQgLyBDb250YWluZXJcbi0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLm1lbnUgPiAgLmdyaWQsXG4udWkubWVudSA+IC5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogaW5oZXJpdDtcbiAgZmxleC1kaXJlY3Rpb246IGluaGVyaXQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWVudSAuaXRlbSA+IC5pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLml0ZW0gPiAuaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogQGlucHV0T2Zmc2V0O1xuICBtYXJnaW46IEBpbnB1dFZlcnRpY2FsTWFyZ2luIDBlbTtcbn1cbi51aS5tZW51IC5pdGVtID4gLmlucHV0IGlucHV0IHtcbiAgZm9udC1zaXplOiBAaW5wdXRTaXplO1xuICBwYWRkaW5nLXRvcDogQGlucHV0VmVydGljYWxQYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogQGlucHV0VmVydGljYWxQYWRkaW5nO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWVudSAuaGVhZGVyLml0ZW0sXG4udWkudmVydGljYWwubWVudSAuaGVhZGVyLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgYmFja2dyb3VuZDogQGhlYWRlckJhY2tncm91bmQ7XG4gIHRleHQtdHJhbnNmb3JtOiBAaGVhZGVyVGV4dFRyYW5zZm9ybTtcbiAgZm9udC13ZWlnaHQ6IEBoZWFkZXJXZWlnaHQ7XG59XG5cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIG1hcmdpbjogQHZlcnRpY2FsSGVhZGVyTWFyZ2luO1xuICBmb250LXNpemU6IEB2ZXJ0aWNhbEhlYWRlckZvbnRTaXplO1xuICBmb250LXdlaWdodDogQHZlcnRpY2FsSGVhZGVyRm9udFdlaWdodDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIERyb3Bkb3duc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4vKiBEcm9wZG93biBJY29uICovXG4udWkubWVudSAuaXRlbSA+IGkuZHJvcGRvd24uaWNvbiB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgZmxvYXQ6IEBkcm9wZG93bkljb25GbG9hdDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSBAZHJvcGRvd25JY29uRGlzdGFuY2U7XG59XG5cbi8qIE1lbnUgKi9cbi51aS5tZW51IC5kcm9wZG93bi5pdGVtIC5tZW51IHtcbiAgbWluLXdpZHRoOiBjYWxjKDEwMCUgLSAxcHgpO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIEBkcm9wZG93bk1lbnVCb3JkZXJSYWRpdXMgQGRyb3Bkb3duTWVudUJvcmRlclJhZGl1cztcbiAgYmFja2dyb3VuZDogQGRyb3Bkb3duQmFja2dyb3VuZDtcbiAgbWFyZ2luOiBAZHJvcGRvd25NZW51RGlzdGFuY2UgMHB4IDBweDtcbiAgYm94LXNoYWRvdzogQGRyb3Bkb3duTWVudUJveFNoYWRvdztcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xufVxuXG5cbi8qIE1lbnUgSXRlbXMgKi9cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IEBkcm9wZG93bkl0ZW1Gb250U2l6ZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiBAZHJvcGRvd25JdGVtUGFkZGluZyAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBAZHJvcGRvd25JdGVtQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGRyb3Bkb3duSXRlbUNvbG9yICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBAZHJvcGRvd25JdGVtVGV4dFRyYW5zZm9ybSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogQGRyb3Bkb3duSXRlbUZvbnRXZWlnaHQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogQGRyb3Bkb3duSXRlbUJveFNoYWRvdyAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBAZHJvcGRvd25JdGVtVHJhbnNpdGlvbiAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBAZHJvcGRvd25Ib3ZlcmVkSXRlbUJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgY29sb3I6IEBkcm9wZG93bkhvdmVyZWRJdGVtQ29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5zZWxlY3RlZC5pdGVtIHtcbiAgYmFja2dyb3VuZDogQGRyb3Bkb3duU2VsZWN0ZWRJdGVtQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGRyb3Bkb3duU2VsZWN0ZWRJdGVtQ29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IEBkcm9wZG93bkFjdGl2ZUl0ZW1CYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBAZHJvcGRvd25BY3RpdmVJdGVtRm9udFdlaWdodCAhaW1wb3J0YW50O1xuICBjb2xvcjogQGRyb3Bkb3duQWN0aXZlSXRlbUNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi51aS5tZW51IC51aS5kcm9wZG93bi5pdGVtIC5tZW51IC5pdGVtOm5vdCguZmlsdGVyZWQpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSAuaWNvbjpub3QoLmRyb3Bkb3duKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiBAZHJvcGRvd25JdGVtSWNvbkZvbnRTaXplICFpbXBvcnRhbnQ7XG4gIGZsb2F0OiBAZHJvcGRvd25JdGVtSWNvbkZsb2F0O1xuICBtYXJnaW46IEBkcm9wZG93bkl0ZW1JY29uTWFyZ2luICFpbXBvcnRhbnQ7XG59XG5cblxuLyogU2Vjb25kYXJ5ICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAubWVudSxcbi51aS50ZXh0Lm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAubWVudSB7XG4gIGJvcmRlci1yYWRpdXM6IEBkcm9wZG93bk1lbnVCb3JkZXJSYWRpdXM7XG4gIG1hcmdpbi10b3A6IEBzZWNvbmRhcnlEcm9wZG93bk1lbnVEaXN0YW5jZTtcbn1cblxuLyogUG9pbnRpbmcgKi9cbi51aS5tZW51IC5wb2ludGluZy5kcm9wZG93bi5pdGVtIC5tZW51IHtcbiAgbWFyZ2luLXRvcDogQHBvaW50aW5nRHJvcGRvd25NZW51RGlzdGFuY2U7XG59XG5cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQubWVudSAuc2VhcmNoLmRyb3Bkb3duLml0ZW0gPiAuc2VhcmNoLFxuLnVpLmludmVydGVkLm1lbnUgLnNlYXJjaC5kcm9wZG93bi5pdGVtID4gLnRleHQge1xuICBjb2xvcjogQGludmVydGVkU2VsZWN0aW9uRHJvcGRvd25Db2xvcjtcbn1cblxuLyogVmVydGljYWwgKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtID4gLmljb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCI7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uaXRlbSAubWVudSB7XG4gIGxlZnQ6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSBAZHJvcGRvd25NZW51RGlzdGFuY2U7XG4gIGJveC1zaGFkb3c6IEBkcm9wZG93blZlcnRpY2FsTWVudUJveFNoYWRvdztcbiAgYm9yZGVyLXJhZGl1czogMGVtIEBkcm9wZG93bk1lbnVCb3JkZXJSYWRpdXMgQGRyb3Bkb3duTWVudUJvcmRlclJhZGl1cyBAZHJvcGRvd25NZW51Qm9yZGVyUmFkaXVzO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW0udXB3YXJkIC5tZW51IHtcbiAgYm90dG9tOiAwO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW06bm90KC51cHdhcmQpIC5tZW51IHtcbiAgdG9wOiAwO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5kcm9wZG93bi5pdGVtIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5hY3RpdmUuaXRlbSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIEV2ZW5seSBEaXZpZGVkICovXG4udWkuaXRlbS5tZW51IC5kcm9wZG93biAubWVudSAuaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBAbGFiZWxCYWNrZ3JvdW5kO1xuICBjb2xvcjogQGxhYmVsVGV4dENvbG9yO1xuICBtYXJnaW4tbGVmdDogQGxhYmVsVGV4dE1hcmdpbjtcbiAgcGFkZGluZzogQGxhYmVsVmVydGljYWxQYWRkaW5nIEBsYWJlbEhvcml6b250YWxQYWRkaW5nO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBAbGFiZWxCYWNrZ3JvdW5kO1xuICBjb2xvcjogQGxhYmVsVGV4dENvbG9yO1xuICBtYXJnaW4tdG9wOiBAbGFiZWxPZmZzZXQ7XG4gIG1hcmdpbi1ib3R0b206IEBsYWJlbE9mZnNldDtcbiAgcGFkZGluZzogQGxhYmVsVmVydGljYWxQYWRkaW5nIEBsYWJlbEhvcml6b250YWxQYWRkaW5nO1xufVxuLnVpLm1lbnUgLml0ZW0gPiAuZmxvYXRpbmcubGFiZWwge1xuICBwYWRkaW5nOiBAbGFiZWxWZXJ0aWNhbFBhZGRpbmcgQGxhYmVsSG9yaXpvbnRhbFBhZGRpbmc7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiBAaW1hZ2VNYXJnaW47XG4gIHdpZHRoOiBAaW1hZ2VXaWR0aDtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gaW1nOm5vdCgudWkpOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogQHZlcnRpY2FsSW1hZ2VXaWR0aDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBMaXN0XG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBNZW51IGRpdmlkZXIgc2hvdWxkbnQgYXBwbHkgKi9cbi51aS5tZW51IC5saXN0IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaWRlYmFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTaG93IHZlcnRpY2FsIGRpdmlkZXJzIGJlbG93IGxhc3QgKi9cblxuLnVpLnZlcnRpY2FsLnNpZGViYXIubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4udWkudmVydGljYWwuc2lkZWJhci5tZW51ID4gLml0ZW06OmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwcHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb250YWluZXJcbi0tLS0tLS0tLS0tLS0tLSovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLm1lbnUgPiAudWkuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEB0YWJsZXRCcmVha3BvaW50KSB7XG4gIC51aS5tZW51Om5vdCguc2Vjb25kYXJ5KTpub3QoLnRleHQpOm5vdCgudGFidWxhcik6bm90KC5ib3JkZXJsZXNzKSA+IC5jb250YWluZXIgPiAuaXRlbTpub3QoLnJpZ2h0KTpub3QoLmJvcmRlcmxlc3MpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogQGRpdmlkZXJTaXplIHNvbGlkIEBkaXZpZGVyQmFja2dyb3VuZDtcbiAgfVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4udWkubGluay5tZW51IC5pdGVtOmhvdmVyLFxuLnVpLm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIsXG4udWkubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiBAaG92ZXJJdGVtQmFja2dyb3VuZDtcbiAgY29sb3I6IEBob3Zlckl0ZW1UZXh0Q29sb3I7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQcmVzc2VkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubGluay5tZW51IC5pdGVtOmFjdGl2ZSxcbi51aS5tZW51IC5saW5rLml0ZW06YWN0aXZlLFxuLnVpLm1lbnUgYS5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IEBwcmVzc2VkSXRlbUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAcHJlc3NlZEl0ZW1UZXh0Q29sb3I7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5tZW51IC5hY3RpdmUuaXRlbSAge1xuICBiYWNrZ3JvdW5kOiBAYWN0aXZlSXRlbUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAYWN0aXZlSXRlbVRleHRDb2xvcjtcbiAgZm9udC13ZWlnaHQ6IEBhY3RpdmVJdGVtRm9udFdlaWdodDtcbiAgYm94LXNoYWRvdzogQGFjdGl2ZUl0ZW1Cb3hTaGFkb3c7XG59XG4udWkubWVudSAuYWN0aXZlLml0ZW0gPiBpLmljb24ge1xuICBvcGFjaXR5OiBAYWN0aXZlSWNvbk9wYWNpdHk7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgQWN0aXZlIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWVudSAuYWN0aXZlLml0ZW06aG92ZXIsXG4udWkudmVydGljYWwubWVudSAuYWN0aXZlLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYWN0aXZlSG92ZXJJdGVtQmFja2dyb3VuZDtcbiAgY29sb3I6IEBhY3RpdmVIb3Zlckl0ZW1Db2xvcjtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWVudSAuaXRlbS5kaXNhYmxlZCxcbi51aS5tZW51IC5pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAZGlzYWJsZWRUZXh0Q29sb3IgIWltcG9ydGFudDtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuRmxvYXRlZCBNZW51IC8gSXRlbVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIExlZnQgRmxvYXRlZCAqL1xuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLmxlZnQuaXRlbSxcbi51aS5tZW51Om5vdCgudmVydGljYWwpIDpub3QoLmRyb3Bkb3duKSA+IC5sZWZ0Lm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi8qIFJpZ2h0IEZsb2F0ZWQgKi9cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5yaWdodC5pdGVtLFxuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLnJpZ2h0Lm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4vKiBTd2FwcGVkIEJvcmRlcnMgKi9cbi51aS5tZW51IC5yaWdodC5pdGVtOjpiZWZvcmUsXG4udWkubWVudSAucmlnaHQubWVudSA+IC5pdGVtOjpiZWZvcmUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS52ZXJ0aWNhbC5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IEB2ZXJ0aWNhbEJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6IEB2ZXJ0aWNhbEJveFNoYWRvdztcbn1cblxuLyotLS0gSXRlbSAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogQHZlcnRpY2FsSXRlbUJhY2tncm91bmQ7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXMgMHB4IDBweDtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwcHggQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzO1xufVxuXG4vKi0tLSBMYWJlbCAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyotLS0gSWNvbiAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiBpLmljb24ge1xuICB3aWR0aDogQGljb25XaWR0aDtcbiAgZmxvYXQ6IEB2ZXJ0aWNhbEljb25GbG9hdDtcbiAgbWFyZ2luOiBAdmVydGljYWxJY29uTWFyZ2luO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwgKyBpLmljb24ge1xuICBmbG9hdDogQGxhYmVsQW5kSWNvbkZsb2F0O1xuICBtYXJnaW46IEBsYWJlbEFuZEljb25NYXJnaW47XG59XG5cblxuLyotLS0gQm9yZGVyIC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IEBkaXZpZGVyU2l6ZTtcbiAgYmFja2dyb3VuZDogQHZlcnRpY2FsRGl2aWRlckJhY2tncm91bmQ7XG59XG5cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuXG4vKi0tLSBTdWIgTWVudSAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubWVudSB7XG4gIG1hcmdpbjogQHN1Yk1lbnVNYXJnaW47XG59XG4udWkudmVydGljYWwubWVudSAubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmc6IEBzdWJNZW51VmVydGljYWxQYWRkaW5nIEBzdWJNZW51SG9yaXpvbnRhbFBhZGRpbmc7XG4gIGZvbnQtc2l6ZTogQHN1Yk1lbnVGb250U2l6ZTtcbiAgY29sb3I6IEBzdWJNZW51VGV4dENvbG9yO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgYS5pdGVtOmhvdmVyLFxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgLmxpbmsuaXRlbTpob3ZlciB7XG4gIGNvbG9yOiBAZGFya1RleHRDb2xvcjtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFZlcnRpY2FsIEFjdGl2ZSAqL1xuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogQGFjdGl2ZUl0ZW1CYWNrZ3JvdW5kO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IEB2ZXJ0aWNhbEFjdGl2ZUJveFNoYWRvdztcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLmFjdGl2ZS5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzIDBlbSAwZW07XG59XG4udWkudmVydGljYWwubWVudSA+IC5hY3RpdmUuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXM7XG59XG4udWkudmVydGljYWwubWVudSA+IC5hY3RpdmUuaXRlbTpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cztcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5hY3RpdmUuaXRlbSAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzdWJNZW51QWN0aXZlQmFja2dyb3VuZDtcbiAgZm9udC13ZWlnaHQ6IEBzdWJNZW51QWN0aXZlRm9udFdlaWdodDtcbiAgY29sb3I6IEBzdWJNZW51QWN0aXZlVGV4dENvbG9yO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVGFidWxhclxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnRhYnVsYXIubWVudSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IEB0YWJ1bGFyQmFja2dyb3VuZDtcbiAgYm9yZGVyLWJvdHRvbTogQHRhYnVsYXJCb3JkZXJXaWR0aCBzb2xpZCBAdGFidWxhckJvcmRlckNvbG9yO1xufVxuLnVpLnRhYnVsYXIuZmx1aWQubWVudSB7XG4gIHdpZHRoOiBAdGFidWxhckZsdWlkV2lkdGggIWltcG9ydGFudDtcbn1cbi51aS50YWJ1bGFyLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICBib3JkZXItbGVmdDogQHRhYnVsYXJCb3JkZXJXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiBAdGFidWxhck9wcG9zaXRlQm9yZGVyV2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IEB0YWJ1bGFyVmVydGljYWxQYWRkaW5nIEB0YWJ1bGFySG9yaXpvbnRhbFBhZGRpbmc7XG4gIGNvbG9yOiBAdGFidWxhclRleHRDb2xvcjtcbn1cbi51aS50YWJ1bGFyLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogSG92ZXIgKi9cbi51aS50YWJ1bGFyLm1lbnUgLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IEB0YWJ1bGFySG92ZXJlZFRleHRDb2xvcjtcbn1cblxuLyogQWN0aXZlICovXG4udWkudGFidWxhci5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IEB0YWJ1bGFyQWN0aXZlQmFja2dyb3VuZDtcbiAgY29sb3I6IEB0YWJ1bGFyQWN0aXZlQ29sb3I7XG4gIGJvcmRlci10b3Atd2lkdGg6IEB0YWJ1bGFyQm9yZGVyV2lkdGg7XG4gIGJvcmRlci1jb2xvcjogQHRhYnVsYXJCb3JkZXJDb2xvcjtcbiAgZm9udC13ZWlnaHQ6IEB0YWJ1bGFyQWN0aXZlV2VpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAtQHRhYnVsYXJCb3JkZXJXaWR0aDtcbiAgYm94LXNoYWRvdzogQHRhYnVsYXJBY3RpdmVCb3hTaGFkb3c7XG4gIGJvcmRlci1yYWRpdXM6IEB0YWJ1bGFyQm9yZGVyUmFkaXVzIEB0YWJ1bGFyQm9yZGVyUmFkaXVzIDBweCAwcHggIWltcG9ydGFudDtcbn1cblxuLyogQ291cGxpbmcgd2l0aCBzZWdtZW50IGZvciBhdHRhY2htZW50ICovXG4udWkudGFidWxhci5tZW51ICsgLmF0dGFjaGVkOm5vdCgudG9wKS5zZWdtZW50LFxuLnVpLnRhYnVsYXIubWVudSArIC5hdHRhY2hlZDpub3QoLnRvcCkuc2VnbWVudCArIC5hdHRhY2hlZDpub3QoLnRvcCkuc2VnbWVudCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnRvcC5hdHRhY2hlZC5zZWdtZW50ICsgLnVpLmJvdHRvbS50YWJ1bGFyLm1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBAdGFidWxhckZsdWlkV2lkdGg7XG4gIGxlZnQ6IC1AdGFidWxhckZsdWlkT2Zmc2V0O1xufVxuXG4vKiBCb3R0b20gVmVydGljYWwgVGFidWxhciAqL1xuLnVpLmJvdHRvbS50YWJ1bGFyLm1lbnUge1xuICBiYWNrZ3JvdW5kOiBAdGFidWxhckJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wOiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIEB0YWJ1bGFyQm9yZGVyQ29sb3I7XG59XG4udWkuYm90dG9tLnRhYnVsYXIubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IEB0YWJ1bGFyQm9yZGVyV2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IEB0YWJ1bGFyQm9yZGVyV2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuYm90dG9tLnRhYnVsYXIubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBAdGFidWxhckFjdGl2ZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAdGFidWxhckFjdGl2ZUNvbG9yO1xuICBib3JkZXItY29sb3I6IEB0YWJ1bGFyQm9yZGVyQ29sb3I7XG4gIG1hcmdpbjogLUB0YWJ1bGFyQm9yZGVyV2lkdGggMHB4IDBweCAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwcHggQHRhYnVsYXJCb3JkZXJSYWRpdXMgQHRhYnVsYXJCb3JkZXJSYWRpdXMgIWltcG9ydGFudDtcbn1cblxuLyogVmVydGljYWwgVGFidWxhciAoTGVmdCkgKi9cbi51aS52ZXJ0aWNhbC50YWJ1bGFyLm1lbnUge1xuICBiYWNrZ3JvdW5kOiBAdGFidWxhclZlcnRpY2FsQmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodDogQHRhYnVsYXJCb3JkZXJXaWR0aCBzb2xpZCBAdGFidWxhckJvcmRlckNvbG9yO1xufVxuLnVpLnZlcnRpY2FsLnRhYnVsYXIubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWkudmVydGljYWwudGFidWxhci5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IEB0YWJ1bGFyQWN0aXZlQmFja2dyb3VuZDtcbiAgY29sb3I6IEB0YWJ1bGFyQWN0aXZlQ29sb3I7XG4gIGJvcmRlci1jb2xvcjogQHRhYnVsYXJCb3JkZXJDb2xvcjtcbiAgbWFyZ2luOiAwcHggLUB0YWJ1bGFyQm9yZGVyV2lkdGggMHB4IDBweDtcbiAgYm9yZGVyLXJhZGl1czogQHRhYnVsYXJCb3JkZXJSYWRpdXMgMHB4IDBweCBAdGFidWxhckJvcmRlclJhZGl1cyAhaW1wb3J0YW50O1xufVxuXG4vKiBWZXJ0aWNhbCBSaWdodCBUYWJ1bGFyICovXG4udWkudmVydGljYWwucmlnaHQudGFidWxhci5tZW51IHtcbiAgYmFja2dyb3VuZDogQHRhYnVsYXJWZXJ0aWNhbEJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIEB0YWJ1bGFyQm9yZGVyQ29sb3I7XG59XG4udWkudmVydGljYWwucmlnaHQudGFidWxhci5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiBAdGFidWxhckJvcmRlcldpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5yaWdodC50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogQHRhYnVsYXJBY3RpdmVCYWNrZ3JvdW5kO1xuICBjb2xvcjogQHRhYnVsYXJBY3RpdmVDb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiBAdGFidWxhckJvcmRlckNvbG9yO1xuICBtYXJnaW46IDBweCAwcHggMHB4IC1AdGFidWxhckJvcmRlcldpZHRoO1xuICBib3JkZXItcmFkaXVzOiAwcHggQHRhYnVsYXJCb3JkZXJSYWRpdXMgQHRhYnVsYXJCb3JkZXJSYWRpdXMgMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIERyb3Bkb3duICovXG4udWkudGFidWxhci5tZW51IC5hY3RpdmUuZHJvcGRvd24uaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgYm9yZGVyLWxlZnQ6IEB0YWJ1bGFyQm9yZGVyV2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogQHRhYnVsYXJCb3JkZXJXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogQHRhYnVsYXJPcHBvc2l0ZUJvcmRlcldpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgUGFnaW5hdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnBhZ2luYXRpb24ubWVudSB7XG4gIG1hcmdpbjogMGVtO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5wYWdpbmF0aW9uLm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXMgMGVtO1xufVxuLnVpLmNvbXBhY3QubWVudSAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwZW07XG59XG4udWkucGFnaW5hdGlvbi5tZW51IC5pdGVtOmxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnVpLnBhZ2luYXRpb24ubWVudSAuaXRlbSB7XG4gIG1pbi13aWR0aDogQHBhZ2luYXRpb25NaW5XaWR0aDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLnBhZ2luYXRpb24ubWVudSAuaWNvbi5pdGVtIGkuaWNvbiB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVpLnBhZ2luYXRpb24ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xuICBwYWRkaW5nLXRvcDogQGl0ZW1WZXJ0aWNhbFBhZGRpbmc7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uQWN0aXZlQmFja2dyb3VuZDtcbiAgY29sb3I6IEBwYWdpbmF0aW9uQWN0aXZlVGV4dENvbG9yO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTZWNvbmRhcnlcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5zZWNvbmRhcnkubWVudSB7XG4gIGJhY2tncm91bmQ6IEBzZWNvbmRhcnlCYWNrZ3JvdW5kO1xuICBtYXJnaW4tbGVmdDogLUBzZWNvbmRhcnlJdGVtU3BhY2luZztcbiAgbWFyZ2luLXJpZ2h0OiAtQHNlY29uZGFyeUl0ZW1TcGFjaW5nO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyogSXRlbSAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IEBzZWNvbmRhcnlJdGVtUGFkZGluZztcbiAgbWFyZ2luOiBAc2Vjb25kYXJ5SXRlbU1hcmdpbjtcbiAgYmFja2dyb3VuZDogQHNlY29uZGFyeUl0ZW1CYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiBAc2Vjb25kYXJ5SXRlbVRyYW5zaXRpb247XG4gIGJvcmRlci1yYWRpdXM6IEBzZWNvbmRhcnlJdGVtQm9yZGVyUmFkaXVzO1xufVxuXG4vKiBObyBEaXZpZGVyICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBIZWFkZXIgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuaGVhZGVyLml0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJvcmRlci1yaWdodDogQHNlY29uZGFyeUhlYWRlckJvcmRlcjtcbiAgYmFja2dyb3VuZDogQHNlY29uZGFyeUhlYWRlckJhY2tncm91bmQ7XG59XG5cbi8qIEltYWdlICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLml0ZW0gPiBpbWc6bm90KC51aSkge1xuICBtYXJnaW46IDBlbTtcbn1cblxuLyogSG92ZXIgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuZHJvcGRvd24uaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IEBzZWNvbmRhcnlIb3Zlckl0ZW1CYWNrZ3JvdW5kO1xuICBjb2xvcjogQHNlY29uZGFyeUhvdmVySXRlbUNvbG9yO1xufVxuXG4vKiBBY3RpdmUgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiBAc2Vjb25kYXJ5QWN0aXZlSXRlbUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAc2Vjb25kYXJ5QWN0aXZlSXRlbUNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAc2Vjb25kYXJ5SXRlbUJvcmRlclJhZGl1cztcbn1cblxuLyogQWN0aXZlIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogQHNlY29uZGFyeUFjdGl2ZUhvdmVySXRlbUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAc2Vjb25kYXJ5QWN0aXZlSG92ZXJJdGVtQ29sb3I7XG59XG5cblxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSAubGluay5pdGVtLFxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IGEuaXRlbSB7XG4gIGNvbG9yOiBAc2Vjb25kYXJ5SW52ZXJ0ZWRDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogQHNlY29uZGFyeUludmVydGVkSG92ZXJCYWNrZ3JvdW5kO1xuICBjb2xvcjogQHNlY29uZGFyeUludmVydGVkSG92ZXJDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IEBzZWNvbmRhcnlJbnZlcnRlZEFjdGl2ZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAc2Vjb25kYXJ5SW52ZXJ0ZWRBY3RpdmVDb2xvciAhaW1wb3J0YW50O1xufVxuXG4vKiBGaXggaXRlbSBtYXJnaW5zICovXG4udWkuc2Vjb25kYXJ5Lml0ZW0ubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLnNlY29uZGFyeS5pdGVtLm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLnNlY29uZGFyeS5hdHRhY2hlZC5tZW51IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyogU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5zZWNvbmRhcnkubWVudSAuaXRlbTpub3QoLmRyb3Bkb3duKSA+IC5tZW51IHtcbiAgbWFyZ2luOiBAc2Vjb25kYXJ5TWVudVN1Yk1lbnVNYXJnaW47XG59XG4udWkudmVydGljYWwuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiBAc2Vjb25kYXJ5TWVudVN1Yk1lbnVJdGVtTWFyZ2luO1xuICBwYWRkaW5nOiBAc2Vjb25kYXJ5TWVudVN1Yk1lbnVJdGVtUGFkZGluZztcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2Vjb25kYXJ5IFZlcnRpY2FsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5zZWNvbmRhcnkudmVydGljYWwubWVudSA+IC5pdGVtIHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IEBzZWNvbmRhcnlWZXJ0aWNhbEl0ZW1NYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6IEBzZWNvbmRhcnlWZXJ0aWNhbEl0ZW1Cb3JkZXJSYWRpdXMgIWltcG9ydGFudDtcbn1cbi51aS5zZWNvbmRhcnkudmVydGljYWwubWVudSA+IC5oZWFkZXIuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cblxuLyogU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5zZWNvbmRhcnkubWVudSAuaXRlbSA+IC5tZW51IC5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIEludmVydGVkICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNlY29uZGFyeSBQb2ludGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbTogQHNlY29uZGFyeVBvaW50aW5nQm9yZGVyV2lkdGggc29saWQgQHNlY29uZGFyeVBvaW50aW5nQm9yZGVyQ29sb3I7XG59XG5cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblxuICBtYXJnaW46IDBlbSAwZW0gLUBzZWNvbmRhcnlQb2ludGluZ0JvcmRlcldpZHRoO1xuICBwYWRkaW5nOiBAc2Vjb25kYXJ5UG9pbnRpbmdJdGVtVmVydGljYWxQYWRkaW5nIEBzZWNvbmRhcnlQb2ludGluZ0l0ZW1Ib3Jpem9udGFsUGFkZGluZztcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogQHNlY29uZGFyeVBvaW50aW5nQm9yZGVyV2lkdGg7XG4gIHRyYW5zaXRpb246IEBzZWNvbmRhcnlJdGVtVHJhbnNpdGlvbjtcbn1cblxuLyogSXRlbSBUeXBlcyAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIGNvbG9yOiBAc2Vjb25kYXJ5UG9pbnRpbmdIZWFkZXJDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC50ZXh0Lml0ZW0ge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLml0ZW06YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBAc2Vjb25kYXJ5UG9pbnRpbmdIb3ZlclRleHRDb2xvcjtcbn1cblxuLyogUHJlc3NlZCAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5pdGVtOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAubGluay5pdGVtOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSBhLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogQHNlY29uZGFyeVBvaW50aW5nQm9yZGVyQ29sb3I7XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItY29sb3I6IEBzZWNvbmRhcnlQb2ludGluZ0FjdGl2ZUJvcmRlckNvbG9yO1xuICBmb250LXdlaWdodDogQHNlY29uZGFyeVBvaW50aW5nQWN0aXZlRm9udFdlaWdodDtcbiAgY29sb3I6IEBzZWNvbmRhcnlQb2ludGluZ0FjdGl2ZVRleHRDb2xvcjtcbn1cblxuLyogQWN0aXZlIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiBAc2Vjb25kYXJ5UG9pbnRpbmdBY3RpdmVIb3ZlckJvcmRlckNvbG9yO1xuICBjb2xvcjogQHNlY29uZGFyeVBvaW50aW5nQWN0aXZlSG92ZXJUZXh0Q29sb3I7XG59XG5cbi8qIEFjdGl2ZSBEcm9wZG93biAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5hY3RpdmUuZHJvcGRvd24uaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogQHNlY29uZGFyeVBvaW50aW5nQWN0aXZlRHJvcGRvd25Cb3JkZXJDb2xvcjtcbn1cblxuLyogVmVydGljYWwgUG9pbnRpbmcgKi9cbi51aS5zZWNvbmRhcnkudmVydGljYWwucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiBAc2Vjb25kYXJ5UG9pbnRpbmdCb3JkZXJXaWR0aDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAc2Vjb25kYXJ5UG9pbnRpbmdCb3JkZXJDb2xvcjtcbn1cbi51aS5zZWNvbmRhcnkudmVydGljYWwucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IEBzZWNvbmRhcnlWZXJ0aWNhbFBvaW50aW5nSXRlbU1hcmdpbjtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiBAc2Vjb25kYXJ5UG9pbnRpbmdCb3JkZXJXaWR0aDtcbn1cblxuLyogVmVydGljYWwgQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiBAc2Vjb25kYXJ5UG9pbnRpbmdBY3RpdmVCb3JkZXJDb2xvcjtcbn1cblxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci1jb2xvcjogQHNlY29uZGFyeVBvaW50aW5nSW52ZXJ0ZWRCb3JkZXJDb2xvcjtcbn1cblxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IHtcbiAgYm9yZGVyLXdpZHRoOiBAc2Vjb25kYXJ5UG9pbnRpbmdCb3JkZXJXaWR0aDtcbiAgYm9yZGVyLWNvbG9yOiBAc2Vjb25kYXJ5UG9pbnRpbmdCb3JkZXJDb2xvcjtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGNvbG9yOiBAc2Vjb25kYXJ5UG9pbnRpbmdJbnZlcnRlZEl0ZW1UZXh0Q29sb3I7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgY29sb3I6IEBzZWNvbmRhcnlQb2ludGluZ0ludmVydGVkSXRlbUhlYWRlckNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSBhLml0ZW06aG92ZXIge1xuICBjb2xvcjogQHNlY29uZGFyeVBvaW50aW5nSW52ZXJ0ZWRJdGVtSG92ZXJUZXh0Q29sb3I7XG59XG5cblxuLyogQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiBAc2Vjb25kYXJ5UG9pbnRpbmdJbnZlcnRlZEFjdGl2ZUJvcmRlckNvbG9yO1xuICBjb2xvcjogQHNlY29uZGFyeVBvaW50aW5nSW52ZXJ0ZWRBY3RpdmVDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFRleHQgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnRleHQubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuXG4gIG1hcmdpbjogQHRleHRNZW51TWFyZ2luO1xufVxuLnVpLnRleHQubWVudSAuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBtYXJnaW46IEB0ZXh0TWVudUl0ZW1NYXJnaW47XG4gIHBhZGRpbmc6IEB0ZXh0TWVudUl0ZW1QYWRkaW5nO1xuICBmb250LXdlaWdodDogQHRleHRNZW51SXRlbUZvbnRXZWlnaHQ7XG4gIGNvbG9yOiBAdGV4dE1lbnVJdGVtQ29sb3I7XG4gIHRyYW5zaXRpb246IEB0ZXh0TWVudUl0ZW1UcmFuc2l0aW9uO1xufVxuXG4vKiBCb3JkZXIgKi9cbi51aS50ZXh0Lm1lbnUgLml0ZW06YmVmb3JlLFxuLnVpLnRleHQubWVudSAubWVudSAuaXRlbTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhlYWRlciAqL1xuLnVpLnRleHQubWVudSAuaGVhZGVyLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IEB0ZXh0TWVudUhlYWRlckNvbG9yO1xuICBmb250LXNpemU6IEB0ZXh0TWVudUhlYWRlclNpemU7XG4gIHRleHQtdHJhbnNmb3JtOiBAdGV4dE1lbnVIZWFkZXJUZXh0VHJhbnNmb3JtO1xuICBmb250LXdlaWdodDogQHRleHRNZW51SGVhZGVyRm9udFdlaWdodDtcbn1cblxuLyogSW1hZ2UgKi9cbi51aS50ZXh0Lm1lbnUgLml0ZW0gPiBpbWc6bm90KC51aSkge1xuICBtYXJnaW46IDBlbTtcbn1cblxuLyotLS0gZmx1aWQgdGV4dCAtLS0qL1xuLnVpLnRleHQuaXRlbS5tZW51IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG59XG5cbi8qLS0tIHZlcnRpY2FsIHRleHQgLS0tKi9cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUge1xuICBtYXJnaW46IEB0ZXh0VmVydGljYWxNZW51TWFyZ2luO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDByZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcmVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaXRlbSB7XG4gIG1hcmdpbjogQHRleHRWZXJ0aWNhbE1lbnVJdGVtTWFyZ2luO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaXRlbSA+IGkuaWNvbiB7XG4gIGZsb2F0OiBAdGV4dFZlcnRpY2FsTWVudUljb25GbG9hdDtcbiAgbWFyZ2luOiBAaWNvbk1hcmdpbjtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgbWFyZ2luOiBAdGV4dFZlcnRpY2FsTWVudUhlYWRlck1hcmdpbjtcbn1cblxuLyogVmVydGljYWwgU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSB7XG4gIG1hcmdpbjogQHRleHRNZW51U3ViTWVudU1hcmdpbjtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiBAdGV4dE1lbnVTdWJNZW51SXRlbU1hcmdpbjtcbiAgcGFkZGluZzogQHRleHRNZW51U3ViTWVudUl0ZW1QYWRkaW5nO1xufVxuXG4vKi0tLSBob3ZlciAtLS0qL1xuLnVpLnRleHQubWVudSAuaXRlbTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKi0tLSBhY3RpdmUgLS0tKi9cbi51aS50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IEB0ZXh0TWVudUFjdGl2ZUl0ZW1Gb250V2VpZ2h0O1xuICBjb2xvcjogQHRleHRNZW51QWN0aXZlSXRlbUNvbG9yO1xufVxuXG4vKi0tLSBhY3RpdmUgaG92ZXIgLS0tKi9cbi51aS50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIERpc2FibGUgQmFyaWF0aW9ucyAqL1xuLnVpLnRleHQucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnRleHQuYXR0YWNoZWQubWVudSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudGV4dC5tZW51LFxuLnVpLmludmVydGVkLnRleHQubWVudSAuaXRlbSxcbi51aS5pbnZlcnRlZC50ZXh0Lm1lbnUgLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGV4dC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi8qIEZsdWlkICovXG4udWkuZmx1aWQudGV4dC5tZW51IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJY29uIE9ubHlcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFZlcnRpY2FsIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5pY29uLm1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4vKiBJdGVtICovXG4udWkuaWNvbi5tZW51IC5pdGVtIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0ZXh0LWFsaWduOiBAaWNvbk1lbnVUZXh0QWxpZ247XG4gIGNvbG9yOiBAaWNvbk1lbnVJdGVtQ29sb3I7XG59XG5cbi8qIEljb24gKi9cbi51aS5pY29uLm1lbnUgLml0ZW0gPiAuaWNvbjpub3QoLmRyb3Bkb3duKSB7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogSWNvbiBHeWxwaCAqL1xuLnVpLmljb24ubWVudSAuaWNvbjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiAoeCkgSXRlbSBJY29uICovXG4udWkubWVudSAuaWNvbi5pdGVtID4gLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwZW0gYXV0bztcbn1cblxuLyogVmVydGljYWwgSWNvbiAqL1xuLnVpLnZlcnRpY2FsLmljb24ubWVudSAuaXRlbSA+IC5pY29uOm5vdCguZHJvcGRvd24pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbjogMGVtIGF1dG87XG4gIGZsb2F0OiBub25lO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmljb24ubWVudSAuaXRlbSB7XG4gIGNvbG9yOiBAaWNvbk1lbnVJbnZlcnRlZEl0ZW1Db2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgTGFiZWxlZCBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBNZW51ICovXG4udWkubGFiZWxlZC5pY29uLm1lbnUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIEl0ZW0gKi9cbi51aS5sYWJlbGVkLmljb24ubWVudSAuaXRlbSB7XG4gIG1pbi13aWR0aDogQGxhYmVsZWRJY29uTWluV2lkdGg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi8qIEljb24gKi9cbi51aS5sYWJlbGVkLmljb24ubWVudSAuaXRlbSA+IC5pY29uOm5vdCguZHJvcGRvd24pIHtcbiAgaGVpZ2h0OiAxZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IEBsYWJlbGVkSWNvblNpemUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gYXV0byBAbGFiZWxlZEljb25UZXh0TWFyZ2luICFpbXBvcnRhbnQ7XG59XG5cbi8qIEZsdWlkICovXG4udWkuZmx1aWQubGFiZWxlZC5pY29uLm1lbnUgPiAuaXRlbSB7XG4gIG1pbi13aWR0aDogMGVtO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLnN0YWNrYWJsZS5tZW51IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC51aS5zdGFja2FibGUubWVudSAuaXRlbSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29udGVudDogJyc7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IEBkaXZpZGVyU2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiBAdmVydGljYWxEaXZpZGVyQmFja2dyb3VuZDtcbiAgfVxuXG4gIC51aS5zdGFja2FibGUubWVudSAubGVmdC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLmxlZnQuaXRlbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5yaWdodC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLnJpZ2h0Lml0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAudWkuc3RhY2thYmxlLm1lbnUgLnJpZ2h0Lm1lbnUsXG4gIC51aS5zdGFja2FibGUubWVudSAubGVmdC5tZW51IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLSBTdGFuZGFyZCBDb2xvcnMgIC0tLSovXG4udWkubWVudSAucmVkLmFjdGl2ZS5pdGVtLFxuLnVpLnJlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogQHJlZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHJlZCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLm9yYW5nZS5hY3RpdmUuaXRlbSxcbi51aS5vcmFuZ2UubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6IEBvcmFuZ2UgIWltcG9ydGFudDtcbiAgY29sb3I6IEBvcmFuZ2UgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC55ZWxsb3cuYWN0aXZlLml0ZW0sXG4udWkueWVsbG93Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiBAeWVsbG93ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAeWVsbG93ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAub2xpdmUuYWN0aXZlLml0ZW0sXG4udWkub2xpdmUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6IEBvbGl2ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQG9saXZlICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAuZ3JlZW4uYWN0aXZlLml0ZW0sXG4udWkuZ3JlZW4ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6IEBncmVlbiAhaW1wb3J0YW50O1xuICBjb2xvcjogQGdyZWVuICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAudGVhbC5hY3RpdmUuaXRlbSxcbi51aS50ZWFsLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiBAdGVhbCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHRlYWwgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ibHVlLmFjdGl2ZS5pdGVtLFxuLnVpLmJsdWUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6IEBibHVlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAYmx1ZSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnZpb2xldC5hY3RpdmUuaXRlbSxcbi51aS52aW9sZXQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6IEB2aW9sZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IEB2aW9sZXQgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5wdXJwbGUuYWN0aXZlLml0ZW0sXG4udWkucHVycGxlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiBAcHVycGxlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcHVycGxlICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAucGluay5hY3RpdmUuaXRlbSxcbi51aS5waW5rLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiBAcGluayAhaW1wb3J0YW50O1xuICBjb2xvcjogQHBpbmsgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5icm93bi5hY3RpdmUuaXRlbSxcbi51aS5icm93bi5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogQGJyb3duICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAYnJvd24gIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ncmV5LmFjdGl2ZS5pdGVtLFxuLnVpLmdyZXkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6IEBncmV5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAZ3JleSAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmludmVydGVkLm1lbnUge1xuICBib3JkZXI6IEBpbnZlcnRlZEJvcmRlcjtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogQGludmVydGVkQm94U2hhZG93O1xufVxuXG4vKiBNZW51IEl0ZW0gKi9cbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtLFxuLnVpLmludmVydGVkLm1lbnUgLml0ZW0gPiBhOm5vdCgudWkpIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkSXRlbUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRJdGVtVGV4dENvbG9yO1xufVxuLnVpLmludmVydGVkLm1lbnUgLml0ZW0ubWVudSB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZFN1Yk1lbnVCYWNrZ3JvdW5kO1xufVxuXG4vKi0tLSBCb3JkZXIgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZERpdmlkZXJCYWNrZ3JvdW5kO1xufVxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkVmVydGljYWxEaXZpZGVyQmFja2dyb3VuZDtcbn1cblxuLyogU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5pbnZlcnRlZC5tZW51IC5tZW51IC5pdGVtLFxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLm1lbnUgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRTdWJNZW51Q29sb3I7XG59XG5cbi8qIEhlYWRlciAqL1xuLnVpLmludmVydGVkLm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZEhlYWRlckJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIERpc2FibGVkICovXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbS5kaXNhYmxlZCxcbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgY29sb3I6IEBpbnZlcnRlZERpc2FibGVkVGV4dENvbG9yO1xufVxuXG4vKi0tLSBIb3ZlciAtLS0qL1xuLnVpLmxpbmsuaW52ZXJ0ZWQubWVudSAuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZEhvdmVyQmFja2dyb3VuZDtcbiAgY29sb3I6IEBpbnZlcnRlZEhvdmVyQ29sb3I7XG59XG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbSAubWVudSBhLml0ZW06aG92ZXIsXG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbSAubWVudSAubGluay5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkU3ViTWVudUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRTdWJNZW51SG92ZXJDb2xvcjtcbn1cblxuLyotLS0gUHJlc3NlZCAtLS0qL1xuLnVpLmludmVydGVkLm1lbnUgYS5pdGVtOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5tZW51IC5saW5rLml0ZW06YWN0aXZle1xuICBiYWNrZ3JvdW5kOiBAaW52ZXJ0ZWRNZW51UHJlc3NlZEJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRNZW51UHJlc3NlZENvbG9yO1xufVxuXG4vKi0tLSBBY3RpdmUgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZEFjdGl2ZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRBY3RpdmVDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkU3ViTWVudUFjdGl2ZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRTdWJNZW51QWN0aXZlQ29sb3I7XG59XG4udWkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBAaW52ZXJ0ZWRBcnJvd0FjdGl2ZUNvbG9yICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tIEFjdGl2ZSBIb3ZlciAtLS0qL1xuLnVpLmludmVydGVkLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQWN0aXZlSG92ZXJCYWNrZ3JvdW5kO1xuICBjb2xvcjogQGludmVydGVkQWN0aXZlSG92ZXJDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQXJyb3dBY3RpdmVIb3ZlckNvbG9yICFpbXBvcnRhbnQ7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmxvYXRlZC5tZW51IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMHJlbSBAZmxvYXRlZERpc3RhbmNlIDByZW0gMHJlbTtcbn1cbi51aS5mbG9hdGVkLm1lbnUgLml0ZW06bGFzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udWkucmlnaHQuZmxvYXRlZC5tZW51IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDByZW0gMHJlbSAwcmVtIEBmbG9hdGVkRGlzdGFuY2U7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBSZWQgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5yZWQuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQucmVkLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmVkO1xufVxuLnVpLmludmVydGVkLnJlZC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnRlZENvbG9yZWREaXZpZGVyQmFja2dyb3VuZDtcbn1cbi51aS5pbnZlcnRlZC5yZWQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBPcmFuZ2UgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5vcmFuZ2UuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQub3JhbmdlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAb3JhbmdlO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnRlZENvbG9yZWREaXZpZGVyQmFja2dyb3VuZDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBZZWxsb3cgKi9cbi51aS5pbnZlcnRlZC5tZW51IC55ZWxsb3cuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQueWVsbG93Lm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAeWVsbG93O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnRlZENvbG9yZWREaXZpZGVyQmFja2dyb3VuZDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBPbGl2ZSAqL1xuLnVpLmludmVydGVkLm1lbnUgLm9saXZlLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLm9saXZlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAb2xpdmU7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkRGl2aWRlckJhY2tncm91bmQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBHcmVlbiAqL1xuLnVpLmludmVydGVkLm1lbnUgLmdyZWVuLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmdyZWVuLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JlZW47XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkRGl2aWRlckJhY2tncm91bmQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBUZWFsICovXG4udWkuaW52ZXJ0ZWQubWVudSAudGVhbC5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC50ZWFsLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGVhbDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGludmVydGVkQ29sb3JlZERpdmlkZXJCYWNrZ3JvdW5kO1xufVxuLnVpLmludmVydGVkLnRlYWwubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBCbHVlICovXG4udWkuaW52ZXJ0ZWQubWVudSAuYmx1ZS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5ibHVlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmx1ZTtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGludmVydGVkQ29sb3JlZERpdmlkZXJCYWNrZ3JvdW5kO1xufVxuLnVpLmludmVydGVkLmJsdWUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBWaW9sZXQgKi9cbi51aS5pbnZlcnRlZC5tZW51IC52aW9sZXQuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQudmlvbGV0Lm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdmlvbGV0O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnRlZENvbG9yZWREaXZpZGVyQmFja2dyb3VuZDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBQdXJwbGUgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5wdXJwbGUuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQucHVycGxlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHVycGxlO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnRlZENvbG9yZWREaXZpZGVyQmFja2dyb3VuZDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBQaW5rICovXG4udWkuaW52ZXJ0ZWQubWVudSAucGluay5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5waW5rLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluaztcbn1cbi51aS5pbnZlcnRlZC5waW5rLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGludmVydGVkQ29sb3JlZERpdmlkZXJCYWNrZ3JvdW5kO1xufVxuLnVpLmludmVydGVkLnBpbmsubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBCcm93biAqL1xuLnVpLmludmVydGVkLm1lbnUgLmJyb3duLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmJyb3duLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJvd247XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24ubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkRGl2aWRlckJhY2tncm91bmQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4vKiBHcmV5ICovXG4udWkuaW52ZXJ0ZWQubWVudSAuZ3JleS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5ncmV5Lm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JleTtcbn1cbi51aS5pbnZlcnRlZC5ncmV5Lm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGludmVydGVkQ29sb3JlZERpdmlkZXJCYWNrZ3JvdW5kO1xufVxuLnVpLmludmVydGVkLmdyZXkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJ0ZWRDb2xvcmVkQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZml0dGVkLm1lbnUgLml0ZW0sXG4udWkuZml0dGVkLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW0sXG4udWkubWVudSAuZml0dGVkLml0ZW0ge1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkuaG9yaXpvbnRhbGx5LmZpdHRlZC5tZW51IC5pdGVtLFxuLnVpLmhvcml6b250YWxseS5maXR0ZWQubWVudSAuaXRlbSAubWVudSAuaXRlbSxcbi51aS5tZW51IC5ob3Jpem9udGFsbHkuZml0dGVkLml0ZW0ge1xuICBwYWRkaW5nLXRvcDogQGl0ZW1WZXJ0aWNhbFBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiBAaXRlbVZlcnRpY2FsUGFkZGluZztcbn1cbi51aS52ZXJ0aWNhbGx5LmZpdHRlZC5tZW51IC5pdGVtLFxuLnVpLnZlcnRpY2FsbHkuZml0dGVkLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW0sXG4udWkubWVudSAudmVydGljYWxseS5maXR0ZWQuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogQGl0ZW1Ib3Jpem9udGFsUGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogQGl0ZW1Ib3Jpem9udGFsUGFkZGluZztcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgQm9yZGVybGVzc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmJvcmRlcmxlc3MubWVudSAuaXRlbTpiZWZvcmUsXG4udWkuYm9yZGVybGVzcy5tZW51IC5pdGVtIC5tZW51IC5pdGVtOmJlZm9yZSxcbi51aS5tZW51IC5ib3JkZXJsZXNzLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jb21wYWN0Lm1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWFyZ2luOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkuY29tcGFjdC52ZXJ0aWNhbC5tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLmNvbXBhY3QubWVudSAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwZW07XG59XG4udWkuY29tcGFjdC5tZW51IC5pdGVtOmxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5jb21wYWN0LnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xufVxuLnVpLmNvbXBhY3QudmVydGljYWwubWVudSAuaXRlbTpsYXN0LWNoaWxkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5tZW51LmZsdWlkLFxuLnVpLnZlcnRpY2FsLm1lbnUuZmx1aWQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRXZlbmx5IFNpemVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pdGVtLm1lbnUsXG4udWkuaXRlbS5tZW51IC5pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4udWkuYXR0YWNoZWQuaXRlbS5tZW51IHtcbiAgbWFyZ2luOiAwZW0gQGF0dGFjaGVkSG9yaXpvbnRhbE9mZnNldCAhaW1wb3J0YW50O1xufVxuXG4udWkuaXRlbS5tZW51IC5pdGVtOmxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnVpLm1lbnUudHdvLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLm1lbnUudGhyZWUuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAzMy4zMzMlO1xufVxuLnVpLm1lbnUuZm91ci5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS5tZW51LmZpdmUuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWkubWVudS5zaXguaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAxNi42NjYlO1xufVxuLnVpLm1lbnUuc2V2ZW4uaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAxNC4yODUlO1xufVxuLnVpLm1lbnUuZWlnaHQuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiAxMi41MDAlO1xufVxuLnVpLm1lbnUubmluZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDExLjExJTtcbn1cbi51aS5tZW51LnRlbi5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDEwLjAlO1xufVxuLnVpLm1lbnUuZWxldmVuLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogOS4wOSU7XG59XG4udWkubWVudS50d2VsdmUuaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiA4LjMzMyU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5tZW51LmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDE7XG4gIG1hcmdpbjogMGVtO1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5tZW51LmZpeGVkLFxuLnVpLm1lbnUuZml4ZWQgLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkubWVudS5maXhlZCAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51aS5maXhlZC5tZW51LFxuLnVpW2NsYXNzKj1cInRvcCBmaXhlZFwiXS5tZW51IHtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbn1cbi51aVtjbGFzcyo9XCJ0b3AgZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gZml4ZWRcIl0ubWVudSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG59XG4udWlbY2xhc3MqPVwibGVmdCBmaXhlZFwiXS5tZW51IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qIENvdXBsaW5nIHdpdGggR3JpZCAqL1xuLnVpLmZpeGVkLm1lbnUgKyAudWkuZ3JpZCB7XG4gIHBhZGRpbmctdG9wOiBAZml4ZWRQcmVjZWRpbmdHcmlkTWFyZ2luO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBvaW50aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5wb2ludGluZy5tZW51IC5pdGVtOmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZDogbm9uZTtcblxuICBtYXJnaW46IChAYXJyb3dCb3JkZXJXaWR0aCAvIDIpIDBlbSAwZW07XG4gIHdpZHRoOiBAYXJyb3dTaXplO1xuICBoZWlnaHQ6IEBhcnJvd1NpemU7XG5cbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiBAYXJyb3dCb3JkZXI7XG4gIGJvcmRlci1yaWdodDogQGFycm93Qm9yZGVyO1xuXG4gIHotaW5kZXg6IEBhcnJvd1pJbmRleDtcbiAgdHJhbnNpdGlvbjogQGFycm93VHJhbnNpdGlvbjtcbn1cbi51aS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5pdGVtOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBtYXJnaW46IDBlbSAtKEBhcnJvd0JvcmRlcldpZHRoIC8gMikgMGVtIDBlbTtcblxuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IEBhcnJvd0JvcmRlcjtcbiAgYm9yZGVyLXJpZ2h0OiBAYXJyb3dCb3JkZXI7XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuZHJvcGRvd24uaXRlbTphZnRlciB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLyogRG9uJ3QgZG91YmxlIHVwIHBvaW50ZXJzICovXG4udWkucG9pbnRpbmcubWVudSAuZHJvcGRvd24uYWN0aXZlLml0ZW06YWZ0ZXIsXG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogQ29sb3JzICovXG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYXJyb3dIb3ZlckNvbG9yO1xufVxuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGFycm93QWN0aXZlQ29sb3I7XG59XG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYXJyb3dBY3RpdmVIb3ZlckNvbG9yO1xufVxuXG4udWkudmVydGljYWwucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYXJyb3dWZXJ0aWNhbEhvdmVyQ29sb3I7XG59XG4udWkudmVydGljYWwucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYXJyb3dWZXJ0aWNhbEFjdGl2ZUNvbG9yO1xufVxuLnVpLnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGFycm93VmVydGljYWxTdWJNZW51Q29sb3I7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIE1pZGRsZSAqL1xuLnVpLmF0dGFjaGVkLm1lbnUge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luOiAwZW0gQGF0dGFjaGVkSG9yaXpvbnRhbE9mZnNldDtcbiAgd2lkdGg6IEBhdHRhY2hlZFdpZHRoO1xuICBtYXgtd2lkdGg6IEBhdHRhY2hlZFdpZHRoO1xuICBib3gtc2hhZG93OiBAYXR0YWNoZWRCb3hTaGFkb3c7XG59XG4udWkuYXR0YWNoZWQgKyAudWkuYXR0YWNoZWQubWVudTpub3QoLnRvcCkge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4vKiBUb3AgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubWVudSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogQGF0dGFjaGVkVG9wT2Zmc2V0O1xuICBtYXJnaW4tdG9wOiBAdmVydGljYWxNYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwZW0gMGVtO1xufVxuLnVpLm1lbnVbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuXG4vKiBCb3R0b20gKi9cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ubWVudSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIHRvcDogQGF0dGFjaGVkQm90dG9tT2Zmc2V0O1xuICBtYXJnaW4tYm90dG9tOiBAdmVydGljYWxNYXJnaW47XG4gIGJveC1zaGFkb3c6IEBhdHRhY2hlZEJvdHRvbUJveFNoYWRvdztcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXM7XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLm1lbnU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLyogQXR0YWNoZWQgTWVudSBJdGVtICovXG4udWkudG9wLmF0dGFjaGVkLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXMgMGVtIDBlbSAwZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIEBib3JkZXJSYWRpdXM7XG59XG5cbi8qIFRhYnVsYXIgQXR0YWNoZWQgKi9cbi51aS5hdHRhY2hlZC5tZW51Om5vdCgudGFidWxhcikge1xuICBib3JkZXI6IEBhdHRhY2hlZEJvcmRlcjtcbn1cbi51aS5hdHRhY2hlZC5pbnZlcnRlZC5tZW51IHtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpLmF0dGFjaGVkLnRhYnVsYXIubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBNaW5pICovXG4udWkubWluaS5tZW51IHtcbiAgZm9udC1zaXplOiBAbWluaTtcbn1cbi51aS5taW5pLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogQG1pbmlXaWR0aDtcbn1cblxuLyogVGlueSAqL1xuLnVpLnRpbnkubWVudSB7XG4gIGZvbnQtc2l6ZTogQHRpbnk7XG59XG4udWkudGlueS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IEB0aW55V2lkdGg7XG59XG5cbi8qIFNtYWxsICovXG4udWkuc21hbGwubWVudSB7XG4gIGZvbnQtc2l6ZTogQHNtYWxsO1xufVxuLnVpLnNtYWxsLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogQHNtYWxsV2lkdGg7XG59XG5cbi8qIE1lZGl1bSAqL1xuLnVpLm1lbnUge1xuICBmb250LXNpemU6IEBtZWRpdW07XG59XG4udWkudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiBAbWVkaXVtV2lkdGg7XG59XG5cbi8qIExhcmdlICovXG4udWkubGFyZ2UubWVudSB7XG4gIGZvbnQtc2l6ZTogQGxhcmdlO1xufVxuLnVpLmxhcmdlLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogQGxhcmdlV2lkdGg7XG59XG5cbi8qIEh1Z2UgKi9cbi51aS5odWdlLm1lbnUge1xuICBmb250LXNpemU6IEBodWdlO1xufVxuLnVpLmh1Z2UudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiBAaHVnZVdpZHRoO1xufVxuXG4vKiBCaWcgKi9cbi51aS5iaWcubWVudSB7XG4gIGZvbnQtc2l6ZTogQGJpZztcbn1cbi51aS5iaWcudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiBAYmlnV2lkdGg7XG59XG5cbi8qIE1hc3NpdmUgKi9cbi51aS5tYXNzaXZlLm1lbnUge1xuICBmb250LXNpemU6IEBtYXNzaXZlO1xufVxuLnVpLm1hc3NpdmUudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiBAbWFzc2l2ZVdpZHRoO1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5pbnZlcnRlZC5tZW51IHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4udWkudmVydGljYWwubWVudSAuaXRlbSBpLmljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG59XG5cbi8qIEJyYW5kICovXG4udWkuaW52ZXJ0ZWQubWVudSAuYnJhbmQuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQuYnJhbmQubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicmFuZENvbG9yO1xufVxuLnVpLmludmVydGVkLmJyYW5kLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGludmVydGVkQ29sb3JlZERpdmlkZXJCYWNrZ3JvdW5kO1xufVxuLnVpLmludmVydGVkLmJyYW5kLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGludmVydGVkQ29sb3JlZEFjdGl2ZUJhY2tncm91bmQgIWltcG9ydGFudDtcbn1cblxuLnVpLm1lbnUgLmJyYW5kLmFjdGl2ZS5pdGVtLFxuLnVpLmJyYW5kLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiBAYnJhbmRDb2xvciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJhbmRDb2xvcjtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIE1lc3NhZ2VcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAnY29sbGVjdGlvbic7XG5AZWxlbWVudCA6ICdtZXNzYWdlJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgTWVzc2FnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLm1lc3NhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFlbTtcbiAgbWFyZ2luOiBAdmVydGljYWxNYXJnaW4gMGVtO1xuICBiYWNrZ3JvdW5kOiBAYmFja2dyb3VuZDtcbiAgcGFkZGluZzogQHBhZGRpbmc7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZUhlaWdodDtcbiAgY29sb3I6IEB0ZXh0Q29sb3I7XG4gIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xuICBib3gtc2hhZG93OiBAYm94U2hhZG93O1xufVxuXG4udWkubWVzc2FnZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5tZXNzYWdlOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBIZWFkZXIgKi9cbi51aS5tZXNzYWdlIC5oZWFkZXIge1xuICBkaXNwbGF5OiBAaGVhZGVyRGlzcGxheTtcbiAgZm9udC1mYW1pbHk6IEBoZWFkZXJGb250O1xuICBmb250LXdlaWdodDogQGhlYWRlckZvbnRXZWlnaHQ7XG4gIG1hcmdpbjogQGhlYWRlck1hcmdpbjtcbn1cblxuLyogRGVmYXVsdCBmb250IHNpemUgKi9cbi51aS5tZXNzYWdlIC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IEBoZWFkZXJGb250U2l6ZTtcbn1cblxuLyogUGFyYWdyYXBoICovXG4udWkubWVzc2FnZSBwIHtcbiAgb3BhY2l0eTogQG1lc3NhZ2VUZXh0T3BhY2l0eTtcbiAgbWFyZ2luOiBAbWVzc2FnZVBhcmFncmFwaE1hcmdpbiAwZW07XG59XG4udWkubWVzc2FnZSBwOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLm1lc3NhZ2UgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmhlYWRlciArIHAge1xuICBtYXJnaW4tdG9wOiBAaGVhZGVyUGFyYWdyYXBoRGlzdGFuY2U7XG59XG5cbi8qIExpc3QgKi9cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMGVtO1xuICBvcGFjaXR5OiBAbGlzdE9wYWNpdHk7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IEBsaXN0U3R5bGVQb3NpdGlvbjtcbiAgbWFyZ2luOiBAbGlzdE1hcmdpbiAwZW0gMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSk6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkubWVzc2FnZSAubGlzdDpub3QoLnVpKTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMGVtIEBsaXN0SXRlbU1hcmdpbiBAbGlzdEl0ZW1JbmRlbnQ7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS5tZXNzYWdlIC5saXN0Om5vdCgudWkpIGxpOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJ+KAoic7XG4gIGxlZnQ6IC0xZW07XG4gIGhlaWdodDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkgbGk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuXG4vKiBJY29uICovXG4udWkubWVzc2FnZSA+IC5pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiBAaWNvbkRpc3RhbmNlO1xufVxuXG4vKiBDbG9zZSBJY29uICovXG4udWkubWVzc2FnZSA+IC5jbG9zZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMGVtO1xuICB0b3A6IEBjbG9zZVRvcERpc3RhbmNlO1xuICByaWdodDogQGNsb3NlUmlnaHREaXN0YW5jZTtcbiAgb3BhY2l0eTogQGNsb3NlT3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogQGNsb3NlVHJhbnNpdGlvbjtcbn1cbi51aS5tZXNzYWdlID4gLmNsb3NlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBGaXJzdCAvIExhc3QgRWxlbWVudCAqL1xuLnVpLm1lc3NhZ2UgPiA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkubWVzc2FnZSA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlIHtcbiAgbWFyZ2luOiAwcHggLUBib3JkZXJXaWR0aDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFZpc2libGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS52aXNpYmxlLnZpc2libGUudmlzaWJsZS52aXNpYmxlLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnVpLmljb24udmlzaWJsZS52aXNpYmxlLnZpc2libGUudmlzaWJsZS5tZXNzYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIaWRkZW5cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5oaWRkZW4uaGlkZGVuLmhpZGRlbi5oaWRkZW4ubWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY29tcGFjdC5tZXNzYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLmNvbXBhY3QuaWNvbi5tZXNzYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYXR0YWNoZWQubWVzc2FnZSB7XG4gIG1hcmdpbi1ib3R0b206IEBhdHRhY2hlZFlPZmZzZXQ7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwZW0gMGVtO1xuICBib3gtc2hhZG93OiBAYXR0YWNoZWRCb3hTaGFkb3c7XG4gIG1hcmdpbi1sZWZ0OiBAYXR0YWNoZWRYT2Zmc2V0O1xuICBtYXJnaW4tcmlnaHQ6IEBhdHRhY2hlZFhPZmZzZXQ7XG59XG4udWkuYXR0YWNoZWQgKyAudWkuYXR0YWNoZWQubWVzc2FnZTpub3QoLnRvcCk6bm90KC5ib3R0b20pIHtcbiAgbWFyZ2luLXRvcDogQGF0dGFjaGVkWU9mZnNldDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5tZXNzYWdlIHtcbiAgbWFyZ2luLXRvcDogQGF0dGFjaGVkWU9mZnNldDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXM7XG4gIGJveC1zaGFkb3c6IEBhdHRhY2hlZEJvdHRvbUJveFNoYWRvdztcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQubWVzc2FnZTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogQHZlcnRpY2FsTWFyZ2luO1xufVxuLnVpLmF0dGFjaGVkLmljb24ubWVzc2FnZSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pY29uLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5pY29uLm1lc3NhZ2UgPiAuaWNvbjpub3QoLmNsb3NlKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogQGljb25WZXJ0aWNhbEFsaWduO1xuICBmb250LXNpemU6IEBpY29uU2l6ZTtcbiAgb3BhY2l0eTogQGljb25PcGFjaXR5O1xufVxuLnVpLmljb24ubWVzc2FnZSA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogQGljb25WZXJ0aWNhbEFsaWduO1xufVxuXG5cbi51aS5pY29uLm1lc3NhZ2UgLmljb246bm90KC5jbG9zZSkgKyAuY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogQGljb25Db250ZW50RGlzdGFuY2U7XG59XG4udWkuaWNvbi5tZXNzYWdlIC5jaXJjdWxhci5pY29uIHtcbiAgd2lkdGg6IDFlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZsb2F0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmxvYXRpbmcubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IEBmbG9hdGluZ0JveFNoYWRvdztcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmJsYWNrLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmxhY2s7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFBvc2l0aXZlICovXG4udWkucG9zaXRpdmUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwb3NpdGl2ZUJhY2tncm91bmRDb2xvcjtcbiAgY29sb3I6IEBwb3NpdGl2ZVRleHRDb2xvcjtcbn1cbi51aS5wb3NpdGl2ZS5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLnBvc2l0aXZlLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiBAcG9zaXRpdmVCb3hTaGFkb3c7XG59XG4udWkucG9zaXRpdmUubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6IEBwb3NpdGl2ZUhlYWRlckNvbG9yO1xufVxuXG4vKiBOZWdhdGl2ZSAqL1xuLnVpLm5lZ2F0aXZlLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmVnYXRpdmVCYWNrZ3JvdW5kQ29sb3I7XG4gIGNvbG9yOiBAbmVnYXRpdmVUZXh0Q29sb3I7XG59XG4udWkubmVnYXRpdmUubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5uZWdhdGl2ZS5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogQG5lZ2F0aXZlQm94U2hhZG93O1xufVxuLnVpLm5lZ2F0aXZlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiBAbmVnYXRpdmVIZWFkZXJDb2xvcjtcbn1cblxuLyogSW5mbyAqL1xuLnVpLmluZm8ubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbmZvQmFja2dyb3VuZENvbG9yO1xuICBjb2xvcjogQGluZm9UZXh0Q29sb3I7XG59XG4udWkuaW5mby5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLmluZm8ubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IEBpbmZvQm94U2hhZG93O1xufVxuLnVpLmluZm8ubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6IEBpbmZvSGVhZGVyQ29sb3I7XG59XG5cbi8qIFdhcm5pbmcgKi9cbi51aS53YXJuaW5nLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2FybmluZ0JhY2tncm91bmRDb2xvcjtcbiAgY29sb3I6IEB3YXJuaW5nVGV4dENvbG9yO1xufVxuLnVpLndhcm5pbmcubWVzc2FnZSxcbi51aS5hdHRhY2hlZC53YXJuaW5nLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiBAd2FybmluZ0JveFNoYWRvdztcbn1cbi51aS53YXJuaW5nLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiBAd2FybmluZ0hlYWRlckNvbG9yO1xufVxuXG4vKiBFcnJvciAqL1xuLnVpLmVycm9yLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZXJyb3JCYWNrZ3JvdW5kQ29sb3I7XG4gIGNvbG9yOiBAZXJyb3JUZXh0Q29sb3I7XG59XG4udWkuZXJyb3IubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5lcnJvci5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogQGVycm9yQm94U2hhZG93O1xufVxuLnVpLmVycm9yLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiBAZXJyb3JIZWFkZXJDb2xvcjtcbn1cblxuLyogU3VjY2VzcyAqL1xuLnVpLnN1Y2Nlc3MubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzdWNjZXNzQmFja2dyb3VuZENvbG9yO1xuICBjb2xvcjogQHN1Y2Nlc3NUZXh0Q29sb3I7XG59XG4udWkuc3VjY2Vzcy5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLnN1Y2Nlc3MubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IEBzdWNjZXNzQm94U2hhZG93O1xufVxuLnVpLnN1Y2Nlc3MubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6IEBzdWNjZXNzSGVhZGVyQ29sb3I7XG59XG5cblxuLyogQ29sb3JzICovXG4udWkuaW52ZXJ0ZWQubWVzc2FnZSxcbi51aS5ibGFjay5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsYWNrO1xuICBjb2xvcjogQGludmVydGVkVGV4dENvbG9yO1xufVxuXG4udWkucmVkLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmVkQmFja2dyb3VuZDtcbiAgY29sb3I6IEByZWRUZXh0Q29sb3I7XG4gIGJveC1zaGFkb3c6IEByZWRCb3hTaGFkb3c7XG59XG4udWkucmVkLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiBAcmVkSGVhZGVyQ29sb3I7XG59XG5cbi51aS5vcmFuZ2UubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvcmFuZ2VCYWNrZ3JvdW5kO1xuICBjb2xvcjogQG9yYW5nZVRleHRDb2xvcjtcbiAgYm94LXNoYWRvdzogQG9yYW5nZUJveFNoYWRvdztcbn1cbi51aS5vcmFuZ2UubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6IEBvcmFuZ2VIZWFkZXJDb2xvcjtcbn1cblxuLnVpLnllbGxvdy5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHllbGxvd0JhY2tncm91bmQ7XG4gIGNvbG9yOiBAeWVsbG93VGV4dENvbG9yO1xuICBib3gtc2hhZG93OiBAeWVsbG93Qm94U2hhZG93O1xufVxuLnVpLnllbGxvdy5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogQHllbGxvd0hlYWRlckNvbG9yO1xufVxuXG4udWkub2xpdmUubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvbGl2ZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAb2xpdmVUZXh0Q29sb3I7XG4gIGJveC1zaGFkb3c6IEBvbGl2ZUJveFNoYWRvdztcbn1cbi51aS5vbGl2ZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogQG9saXZlSGVhZGVyQ29sb3I7XG59XG5cbi51aS5ncmVlbi5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGdyZWVuQmFja2dyb3VuZDtcbiAgY29sb3I6IEBncmVlblRleHRDb2xvcjtcbiAgYm94LXNoYWRvdzogQGdyZWVuQm94U2hhZG93O1xufVxuLnVpLmdyZWVuLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiBAZ3JlZW5IZWFkZXJDb2xvcjtcbn1cblxuLnVpLnRlYWwubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0ZWFsQmFja2dyb3VuZDtcbiAgY29sb3I6IEB0ZWFsVGV4dENvbG9yO1xuICBib3gtc2hhZG93OiBAdGVhbEJveFNoYWRvdztcbn1cbi51aS50ZWFsLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiBAdGVhbEhlYWRlckNvbG9yO1xufVxuXG4udWkuYmx1ZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsdWVCYWNrZ3JvdW5kO1xuICBjb2xvcjogQGJsdWVUZXh0Q29sb3I7XG4gIGJveC1zaGFkb3c6IEBibHVlQm94U2hhZG93O1xufVxuLnVpLmJsdWUubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6IEBibHVlSGVhZGVyQ29sb3I7XG59XG5cbi51aS52aW9sZXQubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB2aW9sZXRCYWNrZ3JvdW5kO1xuICBjb2xvcjogQHZpb2xldFRleHRDb2xvcjtcbiAgYm94LXNoYWRvdzogQHZpb2xldEJveFNoYWRvdztcbn1cbi51aS52aW9sZXQubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6IEB2aW9sZXRIZWFkZXJDb2xvcjtcbn1cblxuLnVpLnB1cnBsZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHB1cnBsZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAcHVycGxlVGV4dENvbG9yO1xuICBib3gtc2hhZG93OiBAcHVycGxlQm94U2hhZG93O1xufVxuLnVpLnB1cnBsZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogQHB1cnBsZUhlYWRlckNvbG9yO1xufVxuXG4udWkucGluay5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBpbmtCYWNrZ3JvdW5kO1xuICBjb2xvcjogQHBpbmtUZXh0Q29sb3I7XG4gIGJveC1zaGFkb3c6IEBwaW5rQm94U2hhZG93O1xufVxuLnVpLnBpbmsubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6IEBwaW5rSGVhZGVyQ29sb3I7XG59XG5cbi51aS5icm93bi5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJyb3duQmFja2dyb3VuZDtcbiAgY29sb3I6IEBicm93blRleHRDb2xvcjtcbiAgYm94LXNoYWRvdzogQGJyb3duQm94U2hhZG93O1xufVxuLnVpLmJyb3duLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiBAYnJvd25IZWFkZXJDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLm1pbmkubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlTWluaTtcbn1cbi51aS50aW55Lm1lc3NhZ2Uge1xuICBmb250LXNpemU6IEByZWxhdGl2ZVRpbnk7XG59XG4udWkuc21hbGwubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlU21hbGw7XG59XG4udWkubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlTWVkaXVtO1xufVxuLnVpLmxhcmdlLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IEByZWxhdGl2ZUxhcmdlO1xufVxuLnVpLmJpZy5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiBAcmVsYXRpdmVCaWc7XG59XG4udWkuaHVnZS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiBAcmVsYXRpdmVIdWdlO1xufVxuLnVpLm1hc3NpdmUubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlTWFzc2l2ZTtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuZmxhc2hlZC5tZXNzYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcGFkZGluZzogMnB4IDA7XG59XG5cbi5mbGFzaGVkLmNsb3NlLmljb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRvcDogMWVtO1xuICAgIHJpZ2h0OiAuNWVtO1xuICAgIG9wYWNpdHk6IC43O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjFzIGVhc2U7XG59XG5cbi51aS5zdWNjZXNzLmZsYXNoZWQubWVzc2FnZSA+IC51aS5ncmlkLmNvbnRhaW5lciB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuXG4udWkubWVzc2FnZS5jb2RlIHtcbiAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcbn1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQGltcG9ydCBcIkBsZXNzL2ludmVuaW9fdGhlbWUvdGhlbWUvY29sbGVjdGlvbnMvbWVzc2FnZS5vdmVycmlkZXNcIjtcblxuLnVpLmZsYXNoZWQubWVzc2FnZSxcbi51aS5mb3JtIC5mbGFzaGVkLm1lc3NhZ2Uge1xuICAgJi50b3AtYXR0YWNoZWQge1xuICAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgfVxuICAgJi5tYW5hZ2Uge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMTVweCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgfVxufVxuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gVGFibGVcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdjb2xsZWN0aW9uJztcbkBlbGVtZW50IDogJ3RhYmxlJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBQcm90b3R5cGUgKi9cbi51aS50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBAYmFja2dyb3VuZDtcbiAgbWFyZ2luOiBAbWFyZ2luO1xuICBib3JkZXI6IEBib3JkZXI7XG4gIGJveC1zaGFkb3c6IEBib3hTaGFkb3c7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG4gIHRleHQtYWxpZ246IEB0ZXh0QWxpZ247XG4gIGNvbG9yOiBAY29sb3I7XG4gIGJvcmRlci1jb2xsYXBzZTogQGJvcmRlckNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogQGJvcmRlclNwYWNpbmc7XG59XG5cbi51aS50YWJsZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS50YWJsZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFBhcnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBUYWJsZSBDb250ZW50ICovXG4udWkudGFibGUgdGgsXG4udWkudGFibGUgdGQge1xuICB0cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbn1cblxuLyogSGVhZGVycyAqL1xuLnVpLnRhYmxlIHRoZWFkIHtcbiAgYm94LXNoYWRvdzogQGhlYWRlckJveFNoYWRvdztcbn1cbi51aS50YWJsZSB0aGVhZCB0aCB7XG4gIGN1cnNvcjogYXV0bztcbiAgYmFja2dyb3VuZDogQGhlYWRlckJhY2tncm91bmQ7XG4gIHRleHQtYWxpZ246IEBoZWFkZXJBbGlnbjtcbiAgY29sb3I6IEBoZWFkZXJDb2xvcjtcbiAgcGFkZGluZzogQGhlYWRlclZlcnRpY2FsUGFkZGluZyBAaGVhZGVySG9yaXpvbnRhbFBhZGRpbmc7XG4gIHZlcnRpY2FsLWFsaWduOiBAaGVhZGVyVmVydGljYWxBbGlnbjtcbiAgZm9udC1zdHlsZTogQGhlYWRlckZvbnRTdHlsZTtcbiAgZm9udC13ZWlnaHQ6IEBoZWFkZXJGb250V2VpZ2h0O1xuICB0ZXh0LXRyYW5zZm9ybTogQGhlYWRlclRleHRUcmFuc2Zvcm07XG4gIGJvcmRlci1ib3R0b206IEBoZWFkZXJCb3JkZXI7XG4gIGJvcmRlci1sZWZ0OiBAaGVhZGVyRGl2aWRlcjtcbn1cblxuLnVpLnRhYmxlIHRoZWFkIHRyID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cblxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzIDBlbSAwZW0gMGVtO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSBAYm9yZGVyUmFkaXVzIDBlbSAwZW07XG59XG4udWkudGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgPiB0aDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzIDBlbSAwZW07XG59XG5cbi8qIEZvb3RlciAqL1xuLnVpLnRhYmxlIHRmb290IHtcbiAgYm94LXNoYWRvdzogQGZvb3RlckJveFNoYWRvdztcbn1cbi51aS50YWJsZSB0Zm9vdCB0aCB7XG4gIGN1cnNvcjogYXV0bztcbiAgYm9yZGVyLXRvcDogQGZvb3RlckJvcmRlcjtcbiAgYmFja2dyb3VuZDogQGZvb3RlckJhY2tncm91bmQ7XG4gIHRleHQtYWxpZ246IEBmb290ZXJBbGlnbjtcbiAgY29sb3I6IEBmb290ZXJDb2xvcjtcbiAgcGFkZGluZzogQGZvb3RlclZlcnRpY2FsUGFkZGluZyBAZm9vdGVySG9yaXpvbnRhbFBhZGRpbmc7XG4gIHZlcnRpY2FsLWFsaWduOiBAZm9vdGVyVmVydGljYWxBbGlnbjtcbiAgZm9udC1zdHlsZTogQGZvb3RlckZvbnRTdHlsZTtcbiAgZm9udC13ZWlnaHQ6IEBmb290ZXJGb250V2VpZ2h0O1xuICB0ZXh0LXRyYW5zZm9ybTogQGZvb3RlclRleHRUcmFuc2Zvcm07XG59XG4udWkudGFibGUgdGZvb3QgdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSBAYm9yZGVyUmFkaXVzO1xufVxuLnVpLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkID4gdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gQGJvcmRlclJhZGl1cyAwZW07XG59XG4udWkudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgPiB0aDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXM7XG59XG5cbi8qIFRhYmxlIFJvdyAqL1xuLnVpLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLXRvcDogQHJvd0JvcmRlcjtcbn1cbi51aS50YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi8qIFJlcGVhdGVkIHRib2R5ICovXG4udWkudGFibGUgdGJvZHkgKyB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci10b3A6IEByb3dCb3JkZXI7XG59XG5cbi8qIFRhYmxlIENlbGxzICovXG4udWkudGFibGUgdGQge1xuICBwYWRkaW5nOiBAY2VsbFZlcnRpY2FsUGFkZGluZyBAY2VsbEhvcml6b250YWxQYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBAY2VsbFRleHRBbGlnbjtcbn1cblxuLyogSWNvbnMgKi9cbi51aS50YWJsZSA+IC5pY29uIHtcbiAgdmVydGljYWwtYWxpZ246IEBpY29uVmVydGljYWxBbGlnbjtcbn1cbi51aS50YWJsZSA+IC5pY29uOm9ubHktY2hpbGQge1xuICBtYXJnaW46IDBlbTtcbn1cblxuLyogVGFibGUgU2VnbWVudCAqL1xuLnVpLnRhYmxlLnNlZ21lbnQge1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkudGFibGUuc2VnbWVudDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkudGFibGUuc2VnbWVudC5zdGFja2VkOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cblxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGJvZHksXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0cixcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGgsXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciA+IHRkICB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkge1xuICAgIHBhZGRpbmc6IDBlbTtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGhlYWQge1xuICAgIGRpc3BsYXk6IEByZXNwb25zaXZlSGVhZGVyRGlzcGxheTtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGZvb3Qge1xuICAgIGRpc3BsYXk6IEByZXNwb25zaXZlRm9vdGVyRGlzcGxheTtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdHIge1xuICAgIHBhZGRpbmctdG9wOiBAcmVzcG9uc2l2ZVJvd1ZlcnRpY2FsUGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogQHJlc3BvbnNpdmVSb3dWZXJ0aWNhbFBhZGRpbmc7XG4gICAgYm94LXNoYWRvdzogQHJlc3BvbnNpdmVSb3dCb3hTaGFkb3c7XG4gIH1cblxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdHIgPiB0aCxcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogQHJlc3BvbnNpdmVDZWxsVmVydGljYWxQYWRkaW5nIEByZXNwb25zaXZlQ2VsbEhvcml6b250YWxQYWRkaW5nICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogQHJlc3BvbnNpdmVDZWxsQm94U2hhZG93O1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0aDpmaXJzdC1jaGlsZCxcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRkOmZpcnN0LWNoaWxkIHtcbiAgICBmb250LXdlaWdodDogQHJlc3BvbnNpdmVDZWxsSGVhZGVyRm9udFdlaWdodDtcbiAgfVxuXG4gIC8qIERlZmluaXRpb24gVGFibGUgKi9cbiAgLnVpLmRlZmluaXRpb24udGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogVUkgSW1hZ2UgKi9cbi51aS50YWJsZSB0aCAuaW1hZ2UsXG4udWkudGFibGUgdGggLmltYWdlIGltZyxcbi51aS50YWJsZSB0ZCAuaW1hZ2UsXG4udWkudGFibGUgdGQgLmltYWdlIGltZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29tcGxleFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnN0cnVjdHVyZWQudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuLnVpLnN0cnVjdHVyZWQudGFibGUgdGhlYWQgdGgge1xuICBib3JkZXItbGVmdDogQGhlYWRlckRpdmlkZXI7XG4gIGJvcmRlci1yaWdodDogQGhlYWRlckRpdmlkZXI7XG59XG4udWkuc3RydWN0dXJlZC5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aCB7XG4gIGJvcmRlci1sZWZ0OiBAc29ydGFibGVCb3JkZXI7XG4gIGJvcmRlci1yaWdodDogQHNvcnRhYmxlQm9yZGVyO1xufVxuLnVpLnN0cnVjdHVyZWQuYmFzaWMudGFibGUgdGgge1xuICBib3JkZXItbGVmdDogQGJhc2ljVGFibGVIZWFkZXJEaXZpZGVyO1xuICBib3JkZXItcmlnaHQ6IEBiYXNpY1RhYmxlSGVhZGVyRGl2aWRlcjtcbn1cbi51aS5zdHJ1Y3R1cmVkLmNlbGxlZC50YWJsZSB0ciB0aCxcbi51aS5zdHJ1Y3R1cmVkLmNlbGxlZC50YWJsZSB0ciB0ZCB7XG4gIGJvcmRlci1sZWZ0OiBAY2VsbEJvcmRlcjtcbiAgYm9yZGVyLXJpZ2h0OiBAY2VsbEJvcmRlcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgRGVmaW5pdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiBAZGVmaW5pdGlvbkhlYWRlckJhY2tncm91bmQ7XG4gIGZvbnQtd2VpZ2h0OiBAZGVmaW5pdGlvbkhlYWRlckZvbnRXZWlnaHQ7XG4gIGNvbG9yOiBAZGVmaW5pdGlvbkhlYWRlckNvbG9yO1xuICBib3gtc2hhZG93OiAtQGJvcmRlcldpZHRoIC1AYm9yZGVyV2lkdGggMHB4IEBib3JkZXJXaWR0aCBAZGVmaW5pdGlvblBhZ2VCYWNrZ3JvdW5kO1xufVxuXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IEBkZWZpbml0aW9uRm9vdGVyQmFja2dyb3VuZDtcbiAgZm9udC13ZWlnaHQ6IEBkZWZpbml0aW9uRm9vdGVyQ29sb3I7XG4gIGNvbG9yOiBAZGVmaW5pdGlvbkZvb3RlckZvbnRXZWlnaHQ7XG4gIGJveC1zaGFkb3c6IEBib3JkZXJXaWR0aCBAYm9yZGVyV2lkdGggMHB4IEBib3JkZXJXaWR0aCBAZGVmaW5pdGlvblBhZ2VCYWNrZ3JvdW5kO1xufVxuXG4vKiBSZW1vdmUgQm9yZGVyICovXG4udWkuY2VsbGVkLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IDBweCAtQGJvcmRlcldpZHRoIDBweCBAYm9yZGVyV2lkdGggQGRlZmluaXRpb25QYWdlQmFja2dyb3VuZDtcbn1cbi51aS5jZWxsZWQuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogMHB4IEBib3JkZXJXaWR0aCAwcHggQGJvcmRlcldpZHRoIEBkZWZpbml0aW9uUGFnZUJhY2tncm91bmQ7XG59XG5cbi8qIEhpZ2hsaWdodCBEZWZpbmluZyBDb2x1bW4gKi9cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkOm5vdCguaWdub3JlZCksXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0ciB0ZC5kZWZpbml0aW9uIHtcbiAgYmFja2dyb3VuZDogQGRlZmluaXRpb25Db2x1bW5CYWNrZ3JvdW5kO1xuICBmb250LXdlaWdodDogQGRlZmluaXRpb25Db2x1bW5Gb250V2VpZ2h0O1xuICBjb2xvcjogQGRlZmluaXRpb25Db2x1bW5Db2xvcjtcbiAgdGV4dC10cmFuc2Zvcm06IEBkZWZpbml0aW9uQ29sdW1uVGV4dFRyYW5zZm9ybTtcbiAgYm94LXNoYWRvdzogQGRlZmluaXRpb25Db2x1bW5Cb3hTaGFkb3c7XG4gIHRleHQtYWxpZ246IEBkZWZpbml0aW9uQ29sdW1uVGV4dEFsaWduO1xuICBmb250LXNpemU6IEBkZWZpbml0aW9uQ29sdW1uRm9udFNpemU7XG4gIHBhZGRpbmctbGVmdDogQGRlZmluaXRpb25Db2x1bW5Ib3Jpem9udGFsUGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogQGRlZmluaXRpb25Db2x1bW5Ib3Jpem9udGFsUGFkZGluZztcbn1cblxuXG4vKiBGaXggMm5kIENvbHVtbiAqL1xuLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpudGgtY2hpbGQoMikge1xuICBib3JkZXItbGVmdDogQGJvcmRlcldpZHRoIHNvbGlkIEBib3JkZXJDb2xvcjtcbn1cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRmb290Om5vdCguZnVsbC13aWR0aCkgdGg6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IEBib3JkZXJXaWR0aCBzb2xpZCBAYm9yZGVyQ29sb3I7XG59XG4udWkuZGVmaW5pdGlvbi50YWJsZSB0ZDpudGgtY2hpbGQoMikge1xuICBib3JkZXItbGVmdDogQGJvcmRlcldpZHRoIHNvbGlkIEBib3JkZXJDb2xvcjtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBvc2l0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkudGFibGUgdHIucG9zaXRpdmUsXG4udWkudGFibGUgdGQucG9zaXRpdmUge1xuICBib3gtc2hhZG93OiBAcG9zaXRpdmVCb3hTaGFkb3c7XG59XG4udWkudGFibGUgdHIucG9zaXRpdmUsXG4udWkudGFibGUgdGQucG9zaXRpdmUge1xuICBiYWNrZ3JvdW5kOiBAcG9zaXRpdmVCYWNrZ3JvdW5kQ29sb3IgIWltcG9ydGFudDtcbiAgY29sb3I6IEBwb3NpdGl2ZUNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTmVnYXRpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS50YWJsZSB0ci5uZWdhdGl2ZSxcbi51aS50YWJsZSB0ZC5uZWdhdGl2ZSB7XG4gIGJveC1zaGFkb3c6IEBuZWdhdGl2ZUJveFNoYWRvdztcbn1cbi51aS50YWJsZSB0ci5uZWdhdGl2ZSxcbi51aS50YWJsZSB0ZC5uZWdhdGl2ZSB7XG4gIGJhY2tncm91bmQ6IEBuZWdhdGl2ZUJhY2tncm91bmRDb2xvciAhaW1wb3J0YW50O1xuICBjb2xvcjogQG5lZ2F0aXZlQ29sb3IgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS50YWJsZSB0ci5lcnJvcixcbi51aS50YWJsZSB0ZC5lcnJvciB7XG4gIGJveC1zaGFkb3c6IEBlcnJvckJveFNoYWRvdztcbn1cbi51aS50YWJsZSB0ci5lcnJvcixcbi51aS50YWJsZSB0ZC5lcnJvciB7XG4gIGJhY2tncm91bmQ6IEBlcnJvckJhY2tncm91bmRDb2xvciAhaW1wb3J0YW50O1xuICBjb2xvcjogQGVycm9yQ29sb3IgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgV2FybmluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnRhYmxlIHRyLndhcm5pbmcsXG4udWkudGFibGUgdGQud2FybmluZyB7XG4gIGJveC1zaGFkb3c6IEB3YXJuaW5nQm94U2hhZG93O1xufVxuLnVpLnRhYmxlIHRyLndhcm5pbmcsXG4udWkudGFibGUgdGQud2FybmluZyB7XG4gIGJhY2tncm91bmQ6IEB3YXJuaW5nQmFja2dyb3VuZENvbG9yICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2FybmluZ0NvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkudGFibGUgdHIuYWN0aXZlLFxuLnVpLnRhYmxlIHRkLmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IEBhY3RpdmVCb3hTaGFkb3c7XG59XG4udWkudGFibGUgdHIuYWN0aXZlLFxuLnVpLnRhYmxlIHRkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IEBhY3RpdmVCYWNrZ3JvdW5kQ29sb3IgIWltcG9ydGFudDtcbiAgY29sb3I6IEBhY3RpdmVDb2xvciAhaW1wb3J0YW50O1xufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnRhYmxlIHRyLmRpc2FibGVkIHRkLFxuLnVpLnRhYmxlIHRyIHRkLmRpc2FibGVkLFxuLnVpLnRhYmxlIHRyLmRpc2FibGVkOmhvdmVyLFxuLnVpLnRhYmxlIHRyOmhvdmVyIHRkLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiBAZGlzYWJsZWRUZXh0Q29sb3I7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogQGxhcmdlc3RUYWJsZXRTY3JlZW4pIHtcblxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGJvZHksXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRyLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciA+IHRoLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciA+IHRkICB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB7XG4gICAgcGFkZGluZzogMGVtO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBAcmVzcG9uc2l2ZUhlYWRlckRpc3BsYXk7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGZvb3Qge1xuICAgIGRpc3BsYXk6IEByZXNwb25zaXZlRm9vdGVyRGlzcGxheTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciB7XG4gICAgcGFkZGluZy10b3A6IEByZXNwb25zaXZlUm93VmVydGljYWxQYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiBAcmVzcG9uc2l2ZVJvd1ZlcnRpY2FsUGFkZGluZztcbiAgICBib3gtc2hhZG93OiBAcmVzcG9uc2l2ZVJvd0JveFNoYWRvdztcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciA+IHRoLFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciA+IHRkIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IEByZXNwb25zaXZlQ2VsbFZlcnRpY2FsUGFkZGluZyBAcmVzcG9uc2l2ZUNlbGxIb3Jpem9udGFsUGFkZGluZztcbiAgICBib3gtc2hhZG93OiBAcmVzcG9uc2l2ZUNlbGxCb3hTaGFkb3c7XG4gIH1cblxuICAvKiBEZWZpbml0aW9uIFRhYmxlICovXG4gIC51aS5kZWZpbml0aW9uW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gVGV4dCBBbGlnbm1lbnRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS50YWJsZVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkudGFibGVbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiBWZXJ0aWNhbCBBbGlnbm1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS50YWJsZVtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWkudGFibGVbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbGxhcHNpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS50YWJsZSB0aC5jb2xsYXBzaW5nLFxuLnVpLnRhYmxlIHRkLmNvbGxhcHNpbmcge1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZpeGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZml4ZWQudGFibGUge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG4udWkuZml4ZWQudGFibGUgdGgsXG4udWkuZml4ZWQudGFibGUgdGQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTZWxlY3RhYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0Ym9keSB0cjpob3Zlcixcbi51aS50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogQHNlbGVjdGFibGVCYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAc2VsZWN0YWJsZVRleHRDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUuaW52ZXJ0ZWQudGFibGUgdGJvZHkgdHI6aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IEBzZWxlY3RhYmxlSW52ZXJ0ZWRCYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAc2VsZWN0YWJsZUludmVydGVkVGV4dENvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNlbGVjdGFibGUgQ2VsbCBMaW5rICovXG4udWkudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZSB7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlID4gYTpub3QoLnVpKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogQGNlbGxWZXJ0aWNhbFBhZGRpbmcgQGNlbGxIb3Jpem9udGFsUGFkZGluZztcbn1cblxuLyogT3RoZXIgU3RhdGVzICovXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0ci5lcnJvcjpob3Zlcixcbi51aS50YWJsZSB0ciB0ZC5zZWxlY3RhYmxlLmVycm9yOmhvdmVyLFxuLnVpLnNlbGVjdGFibGUudGFibGUgdHI6aG92ZXIgdGQuZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiBAZXJyb3JCYWNrZ3JvdW5kSG92ZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IEBlcnJvckNvbG9ySG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLndhcm5pbmc6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS53YXJuaW5nOmhvdmVyLFxuLnVpLnNlbGVjdGFibGUudGFibGUgdHI6aG92ZXIgdGQud2FybmluZyB7XG4gIGJhY2tncm91bmQ6IEB3YXJuaW5nQmFja2dyb3VuZEhvdmVyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2FybmluZ0NvbG9ySG92ZXIgIWltcG9ydGFudDtcbn1cbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyLmFjdGl2ZTpob3Zlcixcbi51aS50YWJsZSB0ciB0ZC5zZWxlY3RhYmxlLmFjdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IEBhY3RpdmVCYWNrZ3JvdW5kQ29sb3IgIWltcG9ydGFudDtcbiAgY29sb3I6IEBhY3RpdmVDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIucG9zaXRpdmU6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5wb3NpdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLnBvc2l0aXZlIHtcbiAgYmFja2dyb3VuZDogQHBvc2l0aXZlQmFja2dyb3VuZEhvdmVyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAcG9zaXRpdmVDb2xvckhvdmVyICFpbXBvcnRhbnQ7XG59XG4udWkuc2VsZWN0YWJsZS50YWJsZSB0ci5uZWdhdGl2ZTpob3Zlcixcbi51aS50YWJsZSB0ciB0ZC5zZWxlY3RhYmxlLm5lZ2F0aXZlOmhvdmVyLFxuLnVpLnNlbGVjdGFibGUudGFibGUgdHI6aG92ZXIgdGQubmVnYXRpdmUge1xuICBiYWNrZ3JvdW5kOiBAbmVnYXRpdmVCYWNrZ3JvdW5kSG92ZXIgIWltcG9ydGFudDtcbiAgY29sb3I6IEBuZWdhdGl2ZUNvbG9ySG92ZXIgIWltcG9ydGFudDtcbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogTWlkZGxlICovXG4udWkuYXR0YWNoZWQudGFibGUge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luOiAwZW0gQGF0dGFjaGVkSG9yaXpvbnRhbE9mZnNldDtcbiAgd2lkdGg6IEBhdHRhY2hlZFdpZHRoO1xuICBtYXgtd2lkdGg6IEBhdHRhY2hlZFdpZHRoO1xuICBib3gtc2hhZG93OiBAYXR0YWNoZWRCb3hTaGFkb3c7XG4gIGJvcmRlcjogQGF0dGFjaGVkQm9yZGVyO1xufVxuLnVpLmF0dGFjaGVkICsgLnVpLmF0dGFjaGVkLnRhYmxlOm5vdCgudG9wKSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi8qIFRvcCAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS50YWJsZSB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogQGF0dGFjaGVkVG9wT2Zmc2V0O1xuICBtYXJnaW4tdG9wOiBAdmVydGljYWxNYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwZW0gMGVtO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cblxuLyogQm90dG9tICovXG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLnRhYmxlIHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgdG9wOiBAYXR0YWNoZWRCb3R0b21PZmZzZXQ7XG4gIG1hcmdpbi1ib3R0b206IEB2ZXJ0aWNhbE1hcmdpbjtcbiAgYm94LXNoYWRvdzogQGF0dGFjaGVkQm90dG9tQm94U2hhZG93O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cztcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0udGFibGU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdHJpcGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBUYWJsZSBTdHJpcGluZyAqL1xuLnVpLnN0cmlwZWQudGFibGUgPiB0cjpudGgtY2hpbGQoMm4pLFxuLnVpLnN0cmlwZWQudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzdHJpcGVkQmFja2dyb3VuZDtcbn1cblxuLyogU3RyaXBlcyAqL1xuLnVpLmludmVydGVkLnN0cmlwZWQudGFibGUgPiB0cjpudGgtY2hpbGQoMm4pLFxuLnVpLmludmVydGVkLnN0cmlwZWQudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnRlZFN0cmlwZWRCYWNrZ3JvdW5kO1xufVxuXG4vKiBBbGxvdyBzdHJpcGVkIGFjdGl2ZSBob3ZlciAqL1xuLnVpLnN0cmlwZWQuc2VsZWN0YWJsZS5zZWxlY3RhYmxlLnNlbGVjdGFibGUudGFibGUgdGJvZHkgdHIuYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogQGFjdGl2ZUJhY2tncm91bmRIb3ZlciAhaW1wb3J0YW50O1xuICBjb2xvcjogQGFjdGl2ZUNvbG9ySG92ZXIgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2luZ2xlIExpbmVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS50YWJsZVtjbGFzcyo9XCJzaW5nbGUgbGluZVwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwic2luZ2xlIGxpbmVcIl0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cInNpbmdsZSBsaW5lXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJzaW5nbGUgbGluZVwiXSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBSZWQgKi9cbi51aS5yZWQudGFibGUge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQHJlZDtcbn1cbi51aS5pbnZlcnRlZC5yZWQudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmVkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogT3JhbmdlICovXG4udWkub3JhbmdlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogQGNvbG9yZWRCb3JkZXJTaXplIHNvbGlkIEBvcmFuZ2U7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG9yYW5nZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIFllbGxvdyAqL1xuLnVpLnllbGxvdy50YWJsZSB7XG4gIGJvcmRlci10b3A6IEBjb2xvcmVkQm9yZGVyU2l6ZSBzb2xpZCBAeWVsbG93O1xufVxuLnVpLmludmVydGVkLnllbGxvdy50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB5ZWxsb3cgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBPbGl2ZSAqL1xuLnVpLm9saXZlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogQGNvbG9yZWRCb3JkZXJTaXplIHNvbGlkIEBvbGl2ZTtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvbGl2ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4udGFibGUge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQGdyZWVuO1xufVxuLnVpLmludmVydGVkLmdyZWVuLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGdyZWVuICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogVGVhbCAqL1xuLnVpLnRlYWwudGFibGUge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQHRlYWw7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0ZWFsICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogQmx1ZSAqL1xuLnVpLmJsdWUudGFibGUge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQGJsdWU7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBibHVlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLyogVmlvbGV0ICovXG4udWkudmlvbGV0LnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogQGNvbG9yZWRCb3JkZXJTaXplIHNvbGlkIEB2aW9sZXQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHZpb2xldCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIFB1cnBsZSAqL1xuLnVpLnB1cnBsZS50YWJsZSB7XG4gIGJvcmRlci10b3A6IEBjb2xvcmVkQm9yZGVyU2l6ZSBzb2xpZCBAcHVycGxlO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwdXJwbGUgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBQaW5rICovXG4udWkucGluay50YWJsZSB7XG4gIGJvcmRlci10b3A6IEBjb2xvcmVkQm9yZGVyU2l6ZSBzb2xpZCBAcGluaztcbn1cbi51aS5pbnZlcnRlZC5waW5rLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBpbmsgIWltcG9ydGFudDtcbiAgY29sb3I6IEB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vKiBCcm93biAqL1xuLnVpLmJyb3duLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogQGNvbG9yZWRCb3JkZXJTaXplIHNvbGlkIEBicm93bjtcbn1cbi51aS5pbnZlcnRlZC5icm93bi50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBicm93biAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIEdyZXkgKi9cbi51aS5ncmV5LnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogQGNvbG9yZWRCb3JkZXJTaXplIHNvbGlkIEBncmV5O1xufVxuLnVpLmludmVydGVkLmdyZXkudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JleSAhaW1wb3J0YW50O1xuICBjb2xvcjogQHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qIEJsYWNrICovXG4udWkuYmxhY2sudGFibGUge1xuICBib3JkZXItdG9wOiBAY29sb3JlZEJvcmRlclNpemUgc29saWQgQGJsYWNrO1xufVxuLnVpLmludmVydGVkLmJsYWNrLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsYWNrICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAd2hpdGUgIWltcG9ydGFudDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gIENvbHVtbiBDb3VudFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogR3JpZCBCYXNlZCAqL1xuLnVpLm9uZS5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogQG9uZUNvbHVtbjtcbn1cbi51aS50d28uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IEB0d29Db2x1bW47XG59XG4udWkudGhyZWUuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IEB0aHJlZUNvbHVtbjtcbn1cbi51aS5mb3VyLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiBAZm91ckNvbHVtbjtcbn1cbi51aS5maXZlLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiBAZml2ZUNvbHVtbjtcbn1cbi51aS5zaXguY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IEBzaXhDb2x1bW47XG59XG4udWkuc2V2ZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IEBzZXZlbkNvbHVtbjtcbn1cbi51aS5laWdodC5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogQGVpZ2h0Q29sdW1uO1xufVxuLnVpLm5pbmUuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IEBuaW5lQ29sdW1uO1xufVxuLnVpLnRlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogQHRlbkNvbHVtbjtcbn1cbi51aS5lbGV2ZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IEBlbGV2ZW5Db2x1bW47XG59XG4udWkudHdlbHZlLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiBAdHdlbHZlQ29sdW1uO1xufVxuLnVpLnRoaXJ0ZWVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiBAdGhpcnRlZW5Db2x1bW47XG59XG4udWkuZm91cnRlZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IEBmb3VydGVlbkNvbHVtbjtcbn1cbi51aS5maWZ0ZWVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiBAZmlmdGVlbkNvbHVtbjtcbn1cbi51aS5zaXh0ZWVuLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiBAc2l4dGVlbkNvbHVtbjtcbn1cblxuLyogQ29sdW1uIFdpZHRoICovXG4udWkudGFibGUgdGgub25lLndpZGUsXG4udWkudGFibGUgdGQub25lLndpZGUge1xuICB3aWR0aDogQG9uZVdpZGU7XG59XG4udWkudGFibGUgdGgudHdvLndpZGUsXG4udWkudGFibGUgdGQudHdvLndpZGUge1xuICB3aWR0aDogQHR3b1dpZGU7XG59XG4udWkudGFibGUgdGgudGhyZWUud2lkZSxcbi51aS50YWJsZSB0ZC50aHJlZS53aWRlIHtcbiAgd2lkdGg6IEB0aHJlZVdpZGU7XG59XG4udWkudGFibGUgdGguZm91ci53aWRlLFxuLnVpLnRhYmxlIHRkLmZvdXIud2lkZSB7XG4gIHdpZHRoOiBAZm91cldpZGU7XG59XG4udWkudGFibGUgdGguZml2ZS53aWRlLFxuLnVpLnRhYmxlIHRkLmZpdmUud2lkZSB7XG4gIHdpZHRoOiBAZml2ZVdpZGU7XG59XG4udWkudGFibGUgdGguc2l4LndpZGUsXG4udWkudGFibGUgdGQuc2l4LndpZGUge1xuICB3aWR0aDogQHNpeFdpZGU7XG59XG4udWkudGFibGUgdGguc2V2ZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5zZXZlbi53aWRlIHtcbiAgd2lkdGg6IEBzZXZlbldpZGU7XG59XG4udWkudGFibGUgdGguZWlnaHQud2lkZSxcbi51aS50YWJsZSB0ZC5laWdodC53aWRlIHtcbiAgd2lkdGg6IEBlaWdodFdpZGU7XG59XG4udWkudGFibGUgdGgubmluZS53aWRlLFxuLnVpLnRhYmxlIHRkLm5pbmUud2lkZSB7XG4gIHdpZHRoOiBAbmluZVdpZGU7XG59XG4udWkudGFibGUgdGgudGVuLndpZGUsXG4udWkudGFibGUgdGQudGVuLndpZGUge1xuICB3aWR0aDogQHRlbldpZGU7XG59XG4udWkudGFibGUgdGguZWxldmVuLndpZGUsXG4udWkudGFibGUgdGQuZWxldmVuLndpZGUge1xuICB3aWR0aDogQGVsZXZlbldpZGU7XG59XG4udWkudGFibGUgdGgudHdlbHZlLndpZGUsXG4udWkudGFibGUgdGQudHdlbHZlLndpZGUge1xuICB3aWR0aDogQHR3ZWx2ZVdpZGU7XG59XG4udWkudGFibGUgdGgudGhpcnRlZW4ud2lkZSxcbi51aS50YWJsZSB0ZC50aGlydGVlbi53aWRlIHtcbiAgd2lkdGg6IEB0aGlydGVlbldpZGU7XG59XG4udWkudGFibGUgdGguZm91cnRlZW4ud2lkZSxcbi51aS50YWJsZSB0ZC5mb3VydGVlbi53aWRlIHtcbiAgd2lkdGg6IEBmb3VydGVlbldpZGU7XG59XG4udWkudGFibGUgdGguZmlmdGVlbi53aWRlLFxuLnVpLnRhYmxlIHRkLmZpZnRlZW4ud2lkZSB7XG4gIHdpZHRoOiBAZmlmdGVlbldpZGU7XG59XG4udWkudGFibGUgdGguc2l4dGVlbi53aWRlLFxuLnVpLnRhYmxlIHRkLnNpeHRlZW4ud2lkZSB7XG4gIHdpZHRoOiBAc2l4dGVlbldpZGU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTb3J0YWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItbGVmdDogQHNvcnRhYmxlQm9yZGVyO1xuICBjb2xvcjogQHNvcnRhYmxlQ29sb3I7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQsXG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkOmhvdmVyIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IEBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogQHNvcnRhYmxlSWNvbldpZHRoO1xuICBvcGFjaXR5OiBAc29ydGFibGVJY29uT3BhY2l0eTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSBAc29ydGFibGVJY29uRGlzdGFuY2U7XG4gIGZvbnQtZmFtaWx5OiBAc29ydGFibGVJY29uRm9udDtcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5hc2NlbmRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiBAc29ydGFibGVJY29uQXNjZW5kaW5nO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLmRlc2NlbmRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiBAc29ydGFibGVJY29uRGVzY2VuZGluZztcbn1cblxuLyogSG92ZXIgKi9cbi51aS5zb3J0YWJsZS50YWJsZSB0aC5kaXNhYmxlZDpob3ZlciB7XG4gIGN1cnNvcjogYXV0bztcbiAgY29sb3I6IEBzb3J0YWJsZURpc2FibGVkQ29sb3I7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGg6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBAc29ydGFibGVIb3ZlckJhY2tncm91bmQ7XG4gIGNvbG9yOiBAc29ydGFibGVIb3ZlckNvbG9yO1xufVxuXG4vKiBTb3J0ZWQgKi9cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQge1xuICBiYWNrZ3JvdW5kOiBAc29ydGFibGVBY3RpdmVCYWNrZ3JvdW5kO1xuICBjb2xvcjogQHNvcnRhYmxlQWN0aXZlQ29sb3I7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKiBTb3J0ZWQgSG92ZXIgKi9cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBAc29ydGFibGVBY3RpdmVIb3ZlckJhY2tncm91bmQ7XG4gIGNvbG9yOiBAc29ydGFibGVBY3RpdmVIb3ZlckNvbG9yO1xufVxuXG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZCB7XG4gIGJhY2tncm91bmQ6IEBzb3J0YWJsZUludmVydGVkQWN0aXZlQmFja2dyb3VuZDtcbiAgY29sb3I6IEBzb3J0YWJsZUludmVydGVkQWN0aXZlQ29sb3I7XG59XG4udWkuaW52ZXJ0ZWQuc29ydGFibGUudGFibGUgdGhlYWQgdGg6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBAc29ydGFibGVJbnZlcnRlZEhvdmVyQmFja2dyb3VuZDtcbiAgY29sb3I6IEBzb3J0YWJsZUludmVydGVkSG92ZXJDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBAc29ydGFibGVJbnZlcnRlZEJvcmRlckNvbG9yO1xuICBib3JkZXItcmlnaHQtY29sb3I6IEBzb3J0YWJsZUludmVydGVkQm9yZGVyQ29sb3I7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBUZXh0IENvbG9yICovXG4udWkuaW52ZXJ0ZWQudGFibGUge1xuICBiYWNrZ3JvdW5kOiBAaW52ZXJ0ZWRCYWNrZ3JvdW5kO1xuICBjb2xvcjogQGludmVydGVkQ2VsbENvbG9yO1xuICBib3JkZXI6IEBpbnZlcnRlZEJvcmRlcjtcbn1cbi51aS5pbnZlcnRlZC50YWJsZSB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnRlZEhlYWRlckJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGludmVydGVkSGVhZGVyQm9yZGVyQ29sb3IgIWltcG9ydGFudDtcbiAgY29sb3I6IEBpbnZlcnRlZEhlYWRlckNvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGFibGUgdHIgdGQge1xuICBib3JkZXItY29sb3I6IEBpbnZlcnRlZENlbGxCb3JkZXJDb2xvciAhaW1wb3J0YW50O1xufVxuXG4udWkuaW52ZXJ0ZWQudGFibGUgdHIuZGlzYWJsZWQgdGQsXG4udWkuaW52ZXJ0ZWQudGFibGUgdHIgdGQuZGlzYWJsZWQsXG4udWkuaW52ZXJ0ZWQudGFibGUgdHIuZGlzYWJsZWQ6aG92ZXIgdGQsXG4udWkuaW52ZXJ0ZWQudGFibGUgdHI6aG92ZXIgdGQuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IEBpbnZlcnRlZERpc2FibGVkVGV4dENvbG9yO1xufVxuXG4vKiBEZWZpbml0aW9uICovXG4udWkuaW52ZXJ0ZWQuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkLFxuLnVpLmludmVydGVkLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQ6IEBkZWZpbml0aW9uUGFnZUJhY2tncm91bmQ7XG59XG4udWkuaW52ZXJ0ZWQuZGVmaW5pdGlvbi50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZERlZmluaXRpb25Db2x1bW5CYWNrZ3JvdW5kO1xuICBjb2xvcjogQGludmVydGVkRGVmaW5pdGlvbkNvbHVtbkNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBDb2xsYXBzaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY29sbGFwc2luZy50YWJsZSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmJhc2ljLnRhYmxlIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljVGFibGVCYWNrZ3JvdW5kO1xuICBib3JkZXI6IEBiYXNpY1RhYmxlQm9yZGVyO1xuICBib3gtc2hhZG93OiBAYmFzaWNCb3hTaGFkb3c7XG59XG4udWkuYmFzaWMudGFibGUgdGhlYWQsXG4udWkuYmFzaWMudGFibGUgdGZvb3Qge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljVGFibGVIZWFkZXJCYWNrZ3JvdW5kO1xuICBib3JkZXItbGVmdDogQGJhc2ljVGFibGVIZWFkZXJEaXZpZGVyO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRib2R5IHRyIHtcbiAgYm9yZGVyLWJvdHRvbTogQGJhc2ljVGFibGVDZWxsQm9yZGVyO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRkIHtcbiAgYmFja2dyb3VuZDogQGJhc2ljVGFibGVDZWxsQmFja2dyb3VuZDtcbn1cbi51aS5iYXNpYy5zdHJpcGVkLnRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCgybikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFzaWNUYWJsZVN0cmlwZWRCYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG59XG5cbi8qIFZlcnkgQmFzaWMgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0aCxcbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGQge1xuICBwYWRkaW5nOiBAYmFzaWNUYWJsZUNlbGxQYWRkaW5nO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0aDpmaXJzdC1jaGlsZCxcbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGQ6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGg6bGFzdC1jaGlsZCxcbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGQ6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgge1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNlbGxlZC50YWJsZSB0ciB0aCxcbi51aS5jZWxsZWQudGFibGUgdHIgdGQge1xuICBib3JkZXItbGVmdDogQGNlbGxCb3JkZXI7XG59XG4udWkuY2VsbGVkLnRhYmxlIHRyIHRoOmZpcnN0LWNoaWxkLFxuLnVpLmNlbGxlZC50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBhZGRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnBhZGRlZC50YWJsZSB0aCB7XG4gIHBhZGRpbmctbGVmdDogQHBhZGRlZEhvcml6b250YWxQYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiBAcGFkZGVkSG9yaXpvbnRhbFBhZGRpbmc7XG59XG4udWkucGFkZGVkLnRhYmxlIHRoLFxuLnVpLnBhZGRlZC50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IEBwYWRkZWRWZXJ0aWNhbFBhZGRpbmcgQHBhZGRlZEhvcml6b250YWxQYWRkaW5nO1xufVxuXG4vKiBWZXJ5ICovXG4udWlbY2xhc3MqPVwidmVyeSBwYWRkZWRcIl0udGFibGUgdGgge1xuICBwYWRkaW5nLWxlZnQ6IEB2ZXJ5UGFkZGVkSG9yaXpvbnRhbFBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6IEB2ZXJ5UGFkZGVkSG9yaXpvbnRhbFBhZGRpbmc7XG59XG4udWlbY2xhc3MqPVwidmVyeSBwYWRkZWRcIl0udGFibGUgdGQge1xuICBwYWRkaW5nOiBAdmVyeVBhZGRlZFZlcnRpY2FsUGFkZGluZyBAdmVyeVBhZGRlZEhvcml6b250YWxQYWRkaW5nO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jb21wYWN0LnRhYmxlIHRoIHtcbiAgcGFkZGluZy1sZWZ0OiBAY29tcGFjdEhvcml6b250YWxQYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiBAY29tcGFjdEhvcml6b250YWxQYWRkaW5nO1xufVxuLnVpLmNvbXBhY3QudGFibGUgdGQge1xuICBwYWRkaW5nOiBAY29tcGFjdFZlcnRpY2FsUGFkZGluZyBAY29tcGFjdEhvcml6b250YWxQYWRkaW5nO1xufVxuXG4vKiBWZXJ5ICovXG4udWlbY2xhc3MqPVwidmVyeSBjb21wYWN0XCJdLnRhYmxlIHRoIHtcbiAgcGFkZGluZy1sZWZ0OiBAdmVyeUNvbXBhY3RIb3Jpem9udGFsUGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogQHZlcnlDb21wYWN0SG9yaXpvbnRhbFBhZGRpbmc7XG59XG4udWlbY2xhc3MqPVwidmVyeSBjb21wYWN0XCJdLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogQHZlcnlDb21wYWN0VmVydGljYWxQYWRkaW5nIEB2ZXJ5Q29tcGFjdEhvcml6b250YWxQYWRkaW5nO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogU21hbGwgKi9cbi51aS5zbWFsbC50YWJsZSB7XG4gIGZvbnQtc2l6ZTogQHNtYWxsO1xufVxuXG4vKiBTdGFuZGFyZCAqL1xuLnVpLnRhYmxlIHtcbiAgZm9udC1zaXplOiBAbWVkaXVtO1xufVxuXG4vKiBMYXJnZSAqL1xuLnVpLmxhcmdlLnRhYmxlIHtcbiAgZm9udC1zaXplOiBAbGFyZ2U7XG59XG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEFkXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIENvcHlyaWdodCAyMDEzIENvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAndmlldyc7XG5AZWxlbWVudCA6ICdhZCc7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEFkdmVydGlzZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5hZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogQG92ZXJmbG93O1xuICBtYXJnaW46IEBtYXJnaW47XG59XG5cbi51aS5hZDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtO1xufVxuXG4udWkuYWQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtO1xufVxuXG4udWkuYWQgaWZyYW1lIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbW1vblxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogTGVhZGVyYm9hcmQgKi9cbi51aS5sZWFkZXJib2FyZC5hZCB7XG4gIHdpZHRoOiA3MjhweDtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuXG4vKiBNZWRpdW0gUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwibWVkaXVtIHJlY3RhbmdsZVwiXS5hZCB7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAyNTBweDtcbn1cblxuLyogTGFyZ2UgUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwibGFyZ2UgcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDMzNnB4O1xuICBoZWlnaHQ6IDI4MHB4O1xufVxuLyogSGFsZiBQYWdlICovXG4udWlbY2xhc3MqPVwiaGFsZiBwYWdlXCJdLmFkIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDYwMHB4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNxdWFyZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogU3F1YXJlICovXG4udWkuc3F1YXJlLmFkIHtcbiAgd2lkdGg6IDI1MHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xufVxuXG4vKiBTbWFsbCBTcXVhcmUgKi9cbi51aVtjbGFzcyo9XCJzbWFsbCBzcXVhcmVcIl0uYWQge1xuICB3aWR0aDogMjAwcHg7XG4gIGhlaWdodDogMjAwcHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBSZWN0YW5nbGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFNtYWxsIFJlY3RhbmdsZSAqL1xuLnVpW2NsYXNzKj1cInNtYWxsIHJlY3RhbmdsZVwiXS5hZCB7XG4gIHdpZHRoOiAxODBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbn1cblxuLyogVmVydGljYWwgUmVjdGFuZ2xlICovXG4udWlbY2xhc3MqPVwidmVydGljYWwgcmVjdGFuZ2xlXCJdLmFkIHtcbiAgd2lkdGg6IDI0MHB4O1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmJ1dHRvbi5hZCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuLnVpW2NsYXNzKj1cInNxdWFyZSBidXR0b25cIl0uYWQge1xuICB3aWR0aDogMTI1cHg7XG4gIGhlaWdodDogMTI1cHg7XG59XG4udWlbY2xhc3MqPVwic21hbGwgYnV0dG9uXCJdLmFkIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNreXNjcmFwZXJzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTa3lzY3JhcGVyICovXG4udWkuc2t5c2NyYXBlci5hZCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiA2MDBweDtcbn1cblxuLyogV2lkZSBTa3lzY3JhcGVyICovXG4udWlbY2xhc3MqPVwid2lkZSBza3lzY3JhcGVyXCJdLmFkIHtcbiAgd2lkdGg6IDE2MHB4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJhbm5lcnNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEJhbm5lciAqL1xuLnVpLmJhbm5lci5hZCB7XG4gIHdpZHRoOiA0NjhweDtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuXG4vKiBWZXJ0aWNhbCBCYW5uZXIgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbCBiYW5uZXJcIl0uYWQge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMjQwcHg7XG59XG5cbi8qIFRvcCBCYW5uZXIgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYmFubmVyXCJdLmFkIHtcbiAgd2lkdGg6IDkzMHB4O1xuICBoZWlnaHQ6IDE4MHB4O1xufVxuXG4vKiBIYWxmIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cImhhbGYgYmFubmVyXCJdLmFkIHtcbiAgd2lkdGg6IDIzNHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBCb2FyZHNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIExlYWRlcmJvYXJkICovXG4udWlbY2xhc3MqPVwibGFyZ2UgbGVhZGVyYm9hcmRcIl0uYWQge1xuICB3aWR0aDogOTcwcHg7XG4gIGhlaWdodDogOTBweDtcbn1cblxuLyogQmlsbGJvYXJkICovXG4udWkuYmlsbGJvYXJkLmFkIHtcbiAgd2lkdGg6IDk3MHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUGFub3JhbWFcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFBhbm9yYW1hICovXG4udWkucGFub3JhbWEuYWQge1xuICB3aWR0aDogOTgwcHg7XG4gIGhlaWdodDogMTIwcHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV0Ym9hcmRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIE5ldGJvYXJkICovXG4udWkubmV0Ym9hcmQuYWQge1xuICB3aWR0aDogNTgwcHg7XG4gIGhlaWdodDogNDAwcHg7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE1vYmlsZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogTGFyZ2UgTW9iaWxlIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cImxhcmdlIG1vYmlsZSBiYW5uZXJcIl0uYWQge1xuICB3aWR0aDogMzIwcHg7XG4gIGhlaWdodDogMTAwcHg7XG59XG5cbi8qIE1vYmlsZSBMZWFkZXJib2FyZCAqL1xuLnVpW2NsYXNzKj1cIm1vYmlsZSBsZWFkZXJib2FyZFwiXS5hZCB7XG4gIHdpZHRoOiAzMjBweDtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBNb2JpbGUgU2l6ZXMgKi9cbi51aS5tb2JpbGUuYWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuICAudWkubW9iaWxlLmFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5jZW50ZXJlZC5hZCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi51aS50ZXN0LmFkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBAdGVzdEJhY2tncm91bmQ7XG59XG4udWkudGVzdC5hZDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgY29udGVudDogQHRlc3RUZXh0O1xuICBjb2xvcjogQHRlc3RDb2xvcjtcbiAgZm9udC1zaXplOiBAdGVzdEZvbnRTaXplO1xuICBmb250LXdlaWdodDogQHRlc3RGb250V2VpZ2h0O1xufVxuLnVpLm1vYmlsZS50ZXN0LmFkOmFmdGVyIHtcbiAgZm9udC1zaXplOiBAdGVzdE1vYmlsZUZvbnRTaXplO1xufVxuLnVpLnRlc3QuYWRbZGF0YS10ZXh0XTphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpOyIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEl0ZW1cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAndmlldyc7XG5AZWxlbWVudCA6ICdjYXJkJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIENhcmRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogQGRpc3BsYXk7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgd2lkdGg6IEB3aWR0aDtcbiAgbWluLWhlaWdodDogQG1pbkhlaWdodDtcbiAgYmFja2dyb3VuZDogQGJhY2tncm91bmQ7XG4gIHBhZGRpbmc6IEBwYWRkaW5nO1xuXG4gIGJvcmRlcjogQGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cztcbiAgYm94LXNoYWRvdzogQGJveFNoYWRvdztcbiAgdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gIHotaW5kZXg6IEB6SW5kZXg7XG59XG4udWkuY2FyZCB7XG4gIG1hcmdpbjogQG1hcmdpbjtcbn1cblxuLnVpLmNhcmRzID4gLmNhcmQgYSxcbi51aS5jYXJkIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi51aS5jYXJkOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmNhcmQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQ2FyZHNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jYXJkcyB7XG4gIGRpc3BsYXk6IEBncm91cERpc3BsYXk7XG4gIG1hcmdpbjogQGdyb3VwTWFyZ2luO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi51aS5jYXJkcyA+IC5jYXJkIHtcbiAgZGlzcGxheTogQGdyb3VwQ2FyZERpc3BsYXk7XG4gIG1hcmdpbjogQGdyb3VwQ2FyZE1hcmdpbjtcbiAgZmxvYXQ6IEBncm91cENhcmRGbG9hdDtcbn1cblxuLyogQ2xlYXJpbmcgKi9cbi51aS5jYXJkczphZnRlcixcbi51aS5jYXJkOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cblxuLyogQ29uc2VjdXRpdmUgQ2FyZCBHcm91cHMgUHJlc2VydmUgUm93IFNwYWNpbmcgKi9cbi51aS5jYXJkcyB+IC51aS5jYXJkcyB7XG4gIG1hcmdpbi10b3A6IEBjb25zZWN1dGl2ZUdyb3VwRGlzdGFuY2U7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICBSb3VuZGVkIEVkZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY2FyZHMgPiAuY2FyZCA+IDpmaXJzdC1jaGlsZCxcbi51aS5jYXJkID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzIDBlbSAwZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udWkuY2FyZHMgPiAuY2FyZCA+IDpsYXN0LWNoaWxkLFxuLnVpLmNhcmQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gQGJvcmRlclJhZGl1cyBAYm9yZGVyUmFkaXVzICFpbXBvcnRhbnQ7XG59XG5cbi51aS5jYXJkcyA+IC5jYXJkID4gOm9ubHktY2hpbGQsXG4udWkuY2FyZCA+IDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cyAhaW1wb3J0YW50O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEltYWdlc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNhcmRzID4gLmNhcmQgPiAuaW1hZ2UsXG4udWkuY2FyZCA+IC5pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nOiBAaW1hZ2VQYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiBAaW1hZ2VCYWNrZ3JvdW5kO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuaW1hZ2UgPiBpbWcsXG4udWkuY2FyZCA+IC5pbWFnZSA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuaW1hZ2U6bm90KC51aSkgPiBpbWcsXG4udWkuY2FyZCA+IC5pbWFnZTpub3QoLnVpKSA+IGltZyB7XG4gIGJvcmRlcjogQGltYWdlQm9yZGVyO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQsXG4udWkuY2FyZCA+IC5jb250ZW50IHtcbiAgZmxleC1ncm93OiAxO1xuICBib3JkZXI6IEBjb250ZW50Qm9yZGVyO1xuICBib3JkZXItdG9wOiBAY29udGVudERpdmlkZXI7XG4gIGJhY2tncm91bmQ6IEBjb250ZW50QmFja2dyb3VuZDtcbiAgbWFyZ2luOiBAY29udGVudE1hcmdpbjtcbiAgcGFkZGluZzogQGNvbnRlbnRQYWRkaW5nO1xuICBib3gtc2hhZG93OiBAY29udGVudEJveFNoYWRvdztcbiAgZm9udC1zaXplOiBAY29udGVudEZvbnRTaXplO1xuICBib3JkZXItcmFkaXVzOiBAY29udGVudEJvcmRlclJhZGl1cztcbn1cblxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudDphZnRlcixcbi51aS5jYXJkID4gLmNvbnRlbnQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXIsXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IEBoZWFkZXJNYXJnaW47XG4gIGZvbnQtZmFtaWx5OiBAaGVhZGVyRm9udDtcbiAgY29sb3I6IEBoZWFkZXJDb2xvcjtcbn1cblxuLyogRGVmYXVsdCBIZWFkZXIgU2l6ZSAqL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSksXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtd2VpZ2h0OiBAaGVhZGVyRm9udFdlaWdodDtcbiAgZm9udC1zaXplOiBAaGVhZGVyRm9udFNpemU7XG4gIG1hcmdpbi10b3A6IEBoZWFkZXJMaW5lSGVpZ2h0T2Zmc2V0O1xuICBsaW5lLWhlaWdodDogQGhlYWRlckxpbmVIZWlnaHQ7XG59XG5cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAubWV0YSArIC5kZXNjcmlwdGlvbixcbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyICsgLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5tZXRhICsgLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXIgKyAuZGVzY3JpcHRpb24gIHtcbiAgbWFyZ2luLXRvcDogQGRlc2NyaXB0aW9uRGlzdGFuY2U7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLVxuIEZsb2F0ZWQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY2FyZHMgPiAuY2FyZCAgW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNhcmRzID4gLmNhcmQgIFtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0sXG4udWkuY2FyZCBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gIENvbnRlbnQgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jYXJkcyA+IC5jYXJkIC5jb250ZW50IGltZyxcbi51aS5jYXJkIC5jb250ZW50IGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IEBjb250ZW50SW1hZ2VWZXJ0aWNhbEFsaWduO1xuICB3aWR0aDogQGNvbnRlbnRJbWFnZVdpZHRoO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgaW1nLmF2YXRhcixcbi51aS5jYXJkcyA+IC5jYXJkIC5hdmF0YXIgaW1nLFxuLnVpLmNhcmQgaW1nLmF2YXRhcixcbi51aS5jYXJkIC5hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IEBhdmF0YXJTaXplO1xuICBoZWlnaHQ6IEBhdmF0YXJTaXplO1xuICBib3JkZXItcmFkaXVzOiBAYXZhdGFyQm9yZGVyUmFkaXVzO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlc2NyaXB0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5kZXNjcmlwdGlvbiB7XG4gIGNsZWFyOiBib3RoO1xuICBjb2xvcjogQGRlc2NyaXB0aW9uQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgcCxcbi51aS5jYXJkID4gLmNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMGVtIDBlbSBAcGFyYWdyYXBoRGlzdGFuY2U7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IHA6bGFzdC1jaGlsZCxcbi51aS5jYXJkID4gLmNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZXRhXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY2FyZHMgPiAuY2FyZCAubWV0YSxcbi51aS5jYXJkIC5tZXRhIHtcbiAgZm9udC1zaXplOiBAbWV0YUZvbnRTaXplO1xuICBjb2xvcjogQG1ldGFDb2xvcjtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhICosXG4udWkuY2FyZCAubWV0YSAqIHtcbiAgbWFyZ2luLXJpZ2h0OiBAbWV0YVNwYWNpbmc7XG59XG4udWkuY2FyZHMgPiAuY2FyZCAubWV0YSA6bGFzdC1jaGlsZCxcbi51aS5jYXJkIC5tZXRhIDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG5cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmNhcmQgLm1ldGEgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IEBtZXRhU3BhY2luZztcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEdlbmVyaWMgKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKSxcbi51aS5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKSB7XG4gIGNvbG9yOiBAY29udGVudExpbmtDb2xvcjtcbiAgdHJhbnNpdGlvbjogQGNvbnRlbnRMaW5rVHJhbnNpdGlvbjtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKTpob3Zlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiBAY29udGVudExpbmtIb3ZlckNvbG9yO1xufVxuXG4vKiBIZWFkZXIgKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlciB7XG4gIGNvbG9yOiBAaGVhZGVyTGlua0NvbG9yO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IGEuaGVhZGVyOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IGEuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEBoZWFkZXJMaW5rSG92ZXJDb2xvcjtcbn1cblxuLyogTWV0YSAqL1xuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpLFxuLnVpLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpIHtcbiAgY29sb3I6IEBtZXRhTGlua0NvbG9yO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpOmhvdmVyLFxuLnVpLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6IEBtZXRhTGlua0hvdmVyQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnV0dG9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNhcmRzID4gLmNhcmQgPiAuYnV0dG9ucyxcbi51aS5jYXJkID4gLmJ1dHRvbnMsXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5idXR0b24sXG4udWkuY2FyZCA+IC5idXR0b24ge1xuICBtYXJnaW46IEBidXR0b25NYXJnaW47XG4gIHdpZHRoOiBAYnV0dG9uV2lkdGg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpbW1lclxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNhcmRzID4gLmNhcmQgLmRpbW1lcixcbi51aS5jYXJkIC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZGltbWVyQ29sb3I7XG4gIHotaW5kZXg6IEBkaW1tZXJaSW5kZXg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTGFiZWxzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tU3Rhci0tLS0tICovXG5cbi8qIEljb24gKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogQGFjdGlvbk9wYWNpdHk7XG4gIHRyYW5zaXRpb246IEBhY3Rpb25UcmFuc2l0aW9uO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAuc3Rhci5pY29uOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCAuc3Rhci5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogQGFjdGlvbkhvdmVyT3BhY2l0eTtcbiAgY29sb3I6IEBzdGFyQ29sb3I7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUuc3Rhci5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAuYWN0aXZlLnN0YXIuaWNvbiB7XG4gIGNvbG9yOiBAc3RhckFjdGl2ZUNvbG9yO1xufVxuXG4vKi0tLS0tTGlrZS0tLS0tICovXG5cbi8qIEljb24gKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLmxpa2UuaWNvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgLmxpa2UuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogQGFjdGlvbk9wYWNpdHk7XG4gIHRyYW5zaXRpb246IEBhY3Rpb25UcmFuc2l0aW9uO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogQGFjdGlvbkhvdmVyT3BhY2l0eTtcbiAgY29sb3I6IEBsaWtlQ29sb3I7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUubGlrZS5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAuYWN0aXZlLmxpa2UuaWNvbiB7XG4gIGNvbG9yOiBAbGlrZUFjdGl2ZUNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS1cbiAgRXh0cmEgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5leHRyYSxcbi51aS5jYXJkID4gLmV4dHJhIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBib3JkZXItdG9wOiBAZXh0cmFEaXZpZGVyICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBAZXh0cmFQb3NpdGlvbjtcbiAgYmFja2dyb3VuZDogQGV4dHJhQmFja2dyb3VuZDtcbiAgd2lkdGg6IEBleHRyYVdpZHRoO1xuICBtYXJnaW46IEBleHRyYU1hcmdpbjtcbiAgcGFkZGluZzogQGV4dHJhUGFkZGluZztcbiAgdG9wOiBAZXh0cmFUb3A7XG4gIGxlZnQ6IEBleHRyYUxlZnQ7XG4gIGNvbG9yOiBAZXh0cmFDb2xvcjtcbiAgYm94LXNoYWRvdzogQGV4dHJhQm94U2hhZG93O1xuICB0cmFuc2l0aW9uOiBAZXh0cmFUcmFuc2l0aW9uO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEgYTpub3QoLnVpKSxcbi51aS5jYXJkID4gLmV4dHJhIGE6bm90KC51aSkge1xuICBjb2xvcjogQGV4dHJhTGlua0NvbG9yO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEgYTpub3QoLnVpKTpob3Zlcixcbi51aS5jYXJkID4gLmV4dHJhIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogQGV4dHJhTGlua0hvdmVyQ29sb3I7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmFpc2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5yYWlzZWQuY2FyZHMgPiAuY2FyZCxcbi51aS5yYWlzZWQuY2FyZCB7XG4gIGJveC1zaGFkb3c6IEByYWlzZWRTaGFkb3c7XG59XG4udWkucmFpc2VkLmNhcmRzIGEuY2FyZDpob3Zlcixcbi51aS5saW5rLmNhcmRzIC5yYWlzZWQuY2FyZDpob3ZlcixcbmEudWkucmFpc2VkLmNhcmQ6aG92ZXIsXG4udWkubGluay5yYWlzZWQuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IEByYWlzZWRTaGFkb3dIb3Zlcjtcbn1cblxuLnVpLnJhaXNlZC5jYXJkcyA+IC5jYXJkLFxuLnVpLnJhaXNlZC5jYXJkIHtcbiAgYm94LXNoYWRvdzogQHJhaXNlZFNoYWRvdztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENlbnRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jZW50ZXJlZC5jYXJkcyB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnVpLmNlbnRlcmVkLmNhcmQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZsdWlkLmNhcmQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5OTk5cHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jYXJkcyBhLmNhcmQsXG4udWkubGluay5jYXJkcyAuY2FyZCxcbmEudWkuY2FyZCxcbi51aS5saW5rLmNhcmQge1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cblxuLnVpLmNhcmRzIGEuY2FyZDpob3Zlcixcbi51aS5saW5rLmNhcmRzIC5jYXJkOmhvdmVyLFxuYS51aS5jYXJkOmhvdmVyLFxuLnVpLmxpbmsuY2FyZDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogQGxpbmtIb3ZlclpJbmRleDtcbiAgYmFja2dyb3VuZDogQGxpbmtIb3ZlckJhY2tncm91bmQ7XG4gIGJvcmRlcjogQGxpbmtIb3ZlckJvcmRlcjtcbiAgYm94LXNoYWRvdzogQGxpbmtIb3ZlckJveFNoYWRvdztcbiAgdHJhbnNmb3JtOiBAbGlua0hvdmVyVHJhbnNmb3JtO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogUmVkICovXG4udWkucmVkLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAucmVkLmNhcmQsXG4udWkucmVkLmNhcmQge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAcmVkLFxuICAgIEBzaGFkb3dCb3hTaGFkb3dcbiAgO1xufVxuLnVpLnJlZC5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnJlZC5jYXJkOmhvdmVyLFxuLnVpLnJlZC5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzpcbiAgICBAYm9yZGVyU2hhZG93LFxuICAgIDBweCBAY29sb3JlZFNoYWRvd0Rpc3RhbmNlIDBweCAwcHggQHJlZEhvdmVyLFxuICAgIEBzaGFkb3dIb3ZlckJveFNoYWRvd1xuICA7XG59XG5cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLm9yYW5nZS5jYXJkLFxuLnVpLm9yYW5nZS5jYXJkIHtcbiAgYm94LXNoYWRvdzpcbiAgICBAYm9yZGVyU2hhZG93LFxuICAgIDBweCBAY29sb3JlZFNoYWRvd0Rpc3RhbmNlIDBweCAwcHggQG9yYW5nZSxcbiAgICBAc2hhZG93Qm94U2hhZG93XG4gIDtcbn1cbi51aS5vcmFuZ2UuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5vcmFuZ2UuY2FyZDpob3Zlcixcbi51aS5vcmFuZ2UuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEBvcmFuZ2VIb3ZlcixcbiAgICBAc2hhZG93SG92ZXJCb3hTaGFkb3dcbiAgO1xufVxuXG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC55ZWxsb3cuY2FyZCxcbi51aS55ZWxsb3cuY2FyZCB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEB5ZWxsb3csXG4gICAgQHNoYWRvd0JveFNoYWRvd1xuICA7XG59XG4udWkueWVsbG93LmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAueWVsbG93LmNhcmQ6aG92ZXIsXG4udWkueWVsbG93LmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAeWVsbG93SG92ZXIsXG4gICAgQHNoYWRvd0hvdmVyQm94U2hhZG93XG4gIDtcbn1cblxuLyogT2xpdmUgKi9cbi51aS5vbGl2ZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLm9saXZlLmNhcmQsXG4udWkub2xpdmUuY2FyZCB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEBvbGl2ZSxcbiAgICBAc2hhZG93Qm94U2hhZG93XG4gIDtcbn1cbi51aS5vbGl2ZS5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLm9saXZlLmNhcmQ6aG92ZXIsXG4udWkub2xpdmUuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEBvbGl2ZUhvdmVyLFxuICAgIEBzaGFkb3dIb3ZlckJveFNoYWRvd1xuICA7XG59XG5cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4uY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ncmVlbi5jYXJkLFxuLnVpLmdyZWVuLmNhcmQge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAZ3JlZW4sXG4gICAgQHNoYWRvd0JveFNoYWRvd1xuICA7XG59XG4udWkuZ3JlZW4uY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ncmVlbi5jYXJkOmhvdmVyLFxuLnVpLmdyZWVuLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAZ3JlZW5Ib3ZlcixcbiAgICBAc2hhZG93SG92ZXJCb3hTaGFkb3dcbiAgO1xufVxuXG4vKiBUZWFsICovXG4udWkudGVhbC5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLnRlYWwuY2FyZCxcbi51aS50ZWFsLmNhcmQge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAdGVhbCxcbiAgICBAc2hhZG93Qm94U2hhZG93XG4gIDtcbn1cbi51aS50ZWFsLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAudGVhbC5jYXJkOmhvdmVyLFxuLnVpLnRlYWwuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEB0ZWFsSG92ZXIsXG4gICAgQHNoYWRvd0hvdmVyQm94U2hhZG93XG4gIDtcbn1cblxuLyogQmx1ZSAqL1xuLnVpLmJsdWUuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ibHVlLmNhcmQsXG4udWkuYmx1ZS5jYXJkIHtcbiAgYm94LXNoYWRvdzpcbiAgICBAYm9yZGVyU2hhZG93LFxuICAgIDBweCBAY29sb3JlZFNoYWRvd0Rpc3RhbmNlIDBweCAwcHggQGJsdWUsXG4gICAgQHNoYWRvd0JveFNoYWRvd1xuICA7XG59XG4udWkuYmx1ZS5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLmJsdWUuY2FyZDpob3Zlcixcbi51aS5ibHVlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAYmx1ZUhvdmVyLFxuICAgIEBzaGFkb3dIb3ZlckJveFNoYWRvd1xuICA7XG59XG5cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLnZpb2xldC5jYXJkLFxuLnVpLnZpb2xldC5jYXJkIHtcbiAgYm94LXNoYWRvdzpcbiAgICBAYm9yZGVyU2hhZG93LFxuICAgIDBweCBAY29sb3JlZFNoYWRvd0Rpc3RhbmNlIDBweCAwcHggQHZpb2xldCxcbiAgICBAc2hhZG93Qm94U2hhZG93XG4gIDtcbn1cbi51aS52aW9sZXQuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC52aW9sZXQuY2FyZDpob3Zlcixcbi51aS52aW9sZXQuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEB2aW9sZXRIb3ZlcixcbiAgICBAc2hhZG93SG92ZXJCb3hTaGFkb3dcbiAgO1xufVxuXG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5wdXJwbGUuY2FyZCxcbi51aS5wdXJwbGUuY2FyZCB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEBwdXJwbGUsXG4gICAgQHNoYWRvd0JveFNoYWRvd1xuICA7XG59XG4udWkucHVycGxlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAucHVycGxlLmNhcmQ6aG92ZXIsXG4udWkucHVycGxlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAcHVycGxlSG92ZXIsXG4gICAgQHNoYWRvd0hvdmVyQm94U2hhZG93XG4gIDtcbn1cblxuLyogUGluayAqL1xuLnVpLnBpbmsuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5waW5rLmNhcmQsXG4udWkucGluay5jYXJkIHtcbiAgYm94LXNoYWRvdzpcbiAgICBAYm9yZGVyU2hhZG93LFxuICAgIDBweCBAY29sb3JlZFNoYWRvd0Rpc3RhbmNlIDBweCAwcHggQHBpbmssXG4gICAgQHNoYWRvd0JveFNoYWRvd1xuICA7XG59XG4udWkucGluay5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnBpbmsuY2FyZDpob3Zlcixcbi51aS5waW5rLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAcGlua0hvdmVyLFxuICAgIEBzaGFkb3dIb3ZlckJveFNoYWRvd1xuICA7XG59XG5cbi8qIEJyb3duICovXG4udWkuYnJvd24uY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5icm93bi5jYXJkLFxuLnVpLmJyb3duLmNhcmQge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAYnJvd24sXG4gICAgQHNoYWRvd0JveFNoYWRvd1xuICA7XG59XG4udWkuYnJvd24uY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5icm93bi5jYXJkOmhvdmVyLFxuLnVpLmJyb3duLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAYnJvd25Ib3ZlcixcbiAgICBAc2hhZG93SG92ZXJCb3hTaGFkb3dcbiAgO1xufVxuXG4vKiBHcmV5ICovXG4udWkuZ3JleS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmdyZXkuY2FyZCxcbi51aS5ncmV5LmNhcmQge1xuICBib3gtc2hhZG93OlxuICAgIEBib3JkZXJTaGFkb3csXG4gICAgMHB4IEBjb2xvcmVkU2hhZG93RGlzdGFuY2UgMHB4IDBweCBAZ3JleSxcbiAgICBAc2hhZG93Qm94U2hhZG93XG4gIDtcbn1cbi51aS5ncmV5LmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuZ3JleS5jYXJkOmhvdmVyLFxuLnVpLmdyZXkuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEBncmV5SG92ZXIsXG4gICAgQHNoYWRvd0hvdmVyQm94U2hhZG93XG4gIDtcbn1cblxuLyogQmxhY2sgKi9cbi51aS5ibGFjay5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmJsYWNrLmNhcmQsXG4udWkuYmxhY2suY2FyZCB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEBibGFjayxcbiAgICBAc2hhZG93Qm94U2hhZG93XG4gIDtcbn1cbi51aS5ibGFjay5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLmJsYWNrLmNhcmQ6aG92ZXIsXG4udWkuYmxhY2suY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6XG4gICAgQGJvcmRlclNoYWRvdyxcbiAgICAwcHggQGNvbG9yZWRTaGFkb3dEaXN0YW5jZSAwcHggMHB4IEBibGFja0hvdmVyLFxuICAgIEBzaGFkb3dIb3ZlckJveFNoYWRvd1xuICA7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIENhcmQgQ291bnRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5vbmUuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogQG9uZUNhcmRPZmZzZXQ7XG4gIG1hcmdpbi1yaWdodDogQG9uZUNhcmRPZmZzZXQ7XG59XG4udWkub25lLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogQG9uZUNhcmQ7XG59XG5cbi51aS50d28uY2FyZHMge1xuICBtYXJnaW4tbGVmdDogQHR3b0NhcmRPZmZzZXQ7XG4gIG1hcmdpbi1yaWdodDogQHR3b0NhcmRPZmZzZXQ7XG59XG4udWkudHdvLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogQHR3b0NhcmQ7XG4gIG1hcmdpbi1sZWZ0OiBAdHdvQ2FyZFNwYWNpbmc7XG4gIG1hcmdpbi1yaWdodDogQHR3b0NhcmRTcGFjaW5nO1xufVxuXG4udWkudGhyZWUuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogQHRocmVlQ2FyZE9mZnNldDtcbiAgbWFyZ2luLXJpZ2h0OiBAdGhyZWVDYXJkT2Zmc2V0O1xufVxuLnVpLnRocmVlLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogQHRocmVlQ2FyZDtcbiAgbWFyZ2luLWxlZnQ6IEB0aHJlZUNhcmRTcGFjaW5nO1xuICBtYXJnaW4tcmlnaHQ6IEB0aHJlZUNhcmRTcGFjaW5nO1xufVxuXG4udWkuZm91ci5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiBAZm91ckNhcmRPZmZzZXQ7XG4gIG1hcmdpbi1yaWdodDogQGZvdXJDYXJkT2Zmc2V0O1xufVxuLnVpLmZvdXIuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBAZm91ckNhcmQ7XG4gIG1hcmdpbi1sZWZ0OiBAZm91ckNhcmRTcGFjaW5nO1xuICBtYXJnaW4tcmlnaHQ6IEBmb3VyQ2FyZFNwYWNpbmc7XG59XG5cbi51aS5maXZlLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IEBmaXZlQ2FyZE9mZnNldDtcbiAgbWFyZ2luLXJpZ2h0OiBAZml2ZUNhcmRPZmZzZXQ7XG59XG4udWkuZml2ZS5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IEBmaXZlQ2FyZDtcbiAgbWFyZ2luLWxlZnQ6IEBmaXZlQ2FyZFNwYWNpbmc7XG4gIG1hcmdpbi1yaWdodDogQGZpdmVDYXJkU3BhY2luZztcbn1cblxuLnVpLnNpeC5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiBAc2l4Q2FyZE9mZnNldDtcbiAgbWFyZ2luLXJpZ2h0OiBAc2l4Q2FyZE9mZnNldDtcbn1cbi51aS5zaXguY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBAc2l4Q2FyZDtcbiAgbWFyZ2luLWxlZnQ6IEBzaXhDYXJkU3BhY2luZztcbiAgbWFyZ2luLXJpZ2h0OiBAc2l4Q2FyZFNwYWNpbmc7XG59XG5cbi51aS5zZXZlbi5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiBAc2V2ZW5DYXJkT2Zmc2V0O1xuICBtYXJnaW4tcmlnaHQ6IEBzZXZlbkNhcmRPZmZzZXQ7XG59XG4udWkuc2V2ZW4uY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBAc2V2ZW5DYXJkO1xuICBtYXJnaW4tbGVmdDogQHNldmVuQ2FyZFNwYWNpbmc7XG4gIG1hcmdpbi1yaWdodDogQHNldmVuQ2FyZFNwYWNpbmc7XG59XG5cbi51aS5laWdodC5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiBAZWlnaHRDYXJkT2Zmc2V0O1xuICBtYXJnaW4tcmlnaHQ6IEBlaWdodENhcmRPZmZzZXQ7XG59XG4udWkuZWlnaHQuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBAZWlnaHRDYXJkO1xuICBtYXJnaW4tbGVmdDogQGVpZ2h0Q2FyZFNwYWNpbmc7XG4gIG1hcmdpbi1yaWdodDogQGVpZ2h0Q2FyZFNwYWNpbmc7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLnVpLm5pbmUuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogQG5pbmVDYXJkT2Zmc2V0O1xuICBtYXJnaW4tcmlnaHQ6IEBuaW5lQ2FyZE9mZnNldDtcbn1cbi51aS5uaW5lLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogQG5pbmVDYXJkO1xuICBtYXJnaW4tbGVmdDogQG5pbmVDYXJkU3BhY2luZztcbiAgbWFyZ2luLXJpZ2h0OiBAbmluZUNhcmRTcGFjaW5nO1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi51aS50ZW4uY2FyZHMge1xuICBtYXJnaW4tbGVmdDogQHRlbkNhcmRPZmZzZXQ7XG4gIG1hcmdpbi1yaWdodDogQHRlbkNhcmRPZmZzZXQ7XG59XG4udWkudGVuLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogQHRlbkNhcmQ7XG4gIG1hcmdpbi1sZWZ0OiBAdGVuQ2FyZFNwYWNpbmc7XG4gIG1hcmdpbi1yaWdodDogQHRlbkNhcmRTcGFjaW5nO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRG91Ymxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogTW9iaWxlIE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IEBsYXJnZXN0TW9iaWxlU2NyZWVuKSB7XG4gIC51aS50d28uZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiBAb25lQ2FyZE9mZnNldDtcbiAgICBtYXJnaW4tcmlnaHQ6IEBvbmVDYXJkT2Zmc2V0O1xuICB9XG4gIC51aS50d28uZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IEBvbmVDYXJkO1xuICAgIG1hcmdpbi1sZWZ0OiBAb25lQ2FyZFNwYWNpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiBAb25lQ2FyZFNwYWNpbmc7XG4gIH1cbiAgLnVpLnRocmVlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogQHR3b0NhcmRPZmZzZXQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdHdvQ2FyZE9mZnNldDtcbiAgfVxuICAudWkudGhyZWUuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IEB0d29DYXJkO1xuICAgIG1hcmdpbi1sZWZ0OiBAdHdvQ2FyZFNwYWNpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdHdvQ2FyZFNwYWNpbmc7XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiBAdHdvQ2FyZE9mZnNldDtcbiAgICBtYXJnaW4tcmlnaHQ6IEB0d29DYXJkT2Zmc2V0O1xuICB9XG4gIC51aS5mb3VyLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBAdHdvQ2FyZDtcbiAgICBtYXJnaW4tbGVmdDogQHR3b0NhcmRTcGFjaW5nO1xuICAgIG1hcmdpbi1yaWdodDogQHR3b0NhcmRTcGFjaW5nO1xuICB9XG4gIC51aS5maXZlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogQHR3b0NhcmRPZmZzZXQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdHdvQ2FyZE9mZnNldDtcbiAgfVxuICAudWkuZml2ZS5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQHR3b0NhcmQ7XG4gICAgbWFyZ2luLWxlZnQ6IEB0d29DYXJkU3BhY2luZztcbiAgICBtYXJnaW4tcmlnaHQ6IEB0d29DYXJkU3BhY2luZztcbiAgfVxuICAudWkuc2l4LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogQHR3b0NhcmRPZmZzZXQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdHdvQ2FyZE9mZnNldDtcbiAgfVxuICAudWkuc2l4LmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBAdHdvQ2FyZDtcbiAgICBtYXJnaW4tbGVmdDogQHR3b0NhcmRTcGFjaW5nO1xuICAgIG1hcmdpbi1yaWdodDogQHR3b0NhcmRTcGFjaW5nO1xuICB9XG4gIC51aS5zZXZlbi5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IEB0aHJlZUNhcmRPZmZzZXQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdGhyZWVDYXJkT2Zmc2V0O1xuICB9XG4gIC51aS5zZXZlbi5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQHRocmVlQ2FyZDtcbiAgICBtYXJnaW4tbGVmdDogQHRocmVlQ2FyZFNwYWNpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdGhyZWVDYXJkU3BhY2luZztcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiBAdGhyZWVDYXJkT2Zmc2V0O1xuICAgIG1hcmdpbi1yaWdodDogQHRocmVlQ2FyZE9mZnNldDtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IEB0aHJlZUNhcmQ7XG4gICAgbWFyZ2luLWxlZnQ6IEB0aHJlZUNhcmRTcGFjaW5nO1xuICAgIG1hcmdpbi1yaWdodDogQHRocmVlQ2FyZFNwYWNpbmc7XG4gIH1cbiAgLnVpLm5pbmUuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiBAdGhyZWVDYXJkT2Zmc2V0O1xuICAgIG1hcmdpbi1yaWdodDogQHRocmVlQ2FyZE9mZnNldDtcbiAgfVxuICAudWkubmluZS5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQHRocmVlQ2FyZDtcbiAgICBtYXJnaW4tbGVmdDogQHRocmVlQ2FyZFNwYWNpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdGhyZWVDYXJkU3BhY2luZztcbiAgfVxuICAudWkudGVuLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogQHRocmVlQ2FyZE9mZnNldDtcbiAgICBtYXJnaW4tcmlnaHQ6IEB0aHJlZUNhcmRPZmZzZXQ7XG4gIH1cbiAgLnVpLnRlbi5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQHRocmVlQ2FyZDtcbiAgICBtYXJnaW4tbGVmdDogQHRocmVlQ2FyZFNwYWNpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdGhyZWVDYXJkU3BhY2luZztcbiAgfVxufVxuXG4vKiBUYWJsZXQgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogQHRhYmxldEJyZWFrcG9pbnQpIGFuZCAobWF4LXdpZHRoIDogQGxhcmdlc3RUYWJsZXRTY3JlZW4pIHtcbiAgLnVpLnR3by5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IEBvbmVDYXJkT2Zmc2V0O1xuICAgIG1hcmdpbi1yaWdodDogQG9uZUNhcmRPZmZzZXQ7XG4gIH1cbiAgLnVpLnR3by5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQG9uZUNhcmQ7XG4gICAgbWFyZ2luLWxlZnQ6IEBvbmVDYXJkU3BhY2luZztcbiAgICBtYXJnaW4tcmlnaHQ6IEBvbmVDYXJkU3BhY2luZztcbiAgfVxuICAudWkudGhyZWUuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiBAdHdvQ2FyZE9mZnNldDtcbiAgICBtYXJnaW4tcmlnaHQ6IEB0d29DYXJkT2Zmc2V0O1xuICB9XG4gIC51aS50aHJlZS5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQHR3b0NhcmQ7XG4gICAgbWFyZ2luLWxlZnQ6IEB0d29DYXJkU3BhY2luZztcbiAgICBtYXJnaW4tcmlnaHQ6IEB0d29DYXJkU3BhY2luZztcbiAgfVxuICAudWkuZm91ci5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IEB0d29DYXJkT2Zmc2V0O1xuICAgIG1hcmdpbi1yaWdodDogQHR3b0NhcmRPZmZzZXQ7XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IEB0d29DYXJkO1xuICAgIG1hcmdpbi1sZWZ0OiBAdHdvQ2FyZFNwYWNpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdHdvQ2FyZFNwYWNpbmc7XG4gIH1cbiAgLnVpLmZpdmUuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiBAdGhyZWVDYXJkT2Zmc2V0O1xuICAgIG1hcmdpbi1yaWdodDogQHRocmVlQ2FyZE9mZnNldDtcbiAgfVxuICAudWkuZml2ZS5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQHRocmVlQ2FyZDtcbiAgICBtYXJnaW4tbGVmdDogQHRocmVlQ2FyZFNwYWNpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdGhyZWVDYXJkU3BhY2luZztcbiAgfVxuICAudWkuc2l4LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogQHRocmVlQ2FyZE9mZnNldDtcbiAgICBtYXJnaW4tcmlnaHQ6IEB0aHJlZUNhcmRPZmZzZXQ7XG4gIH1cbiAgLnVpLnNpeC5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQHRocmVlQ2FyZDtcbiAgICBtYXJnaW4tbGVmdDogQHRocmVlQ2FyZFNwYWNpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiBAdGhyZWVDYXJkU3BhY2luZztcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiBAdGhyZWVDYXJkT2Zmc2V0O1xuICAgIG1hcmdpbi1yaWdodDogQHRocmVlQ2FyZE9mZnNldDtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IEB0aHJlZUNhcmQ7XG4gICAgbWFyZ2luLWxlZnQ6IEB0aHJlZUNhcmRTcGFjaW5nO1xuICAgIG1hcmdpbi1yaWdodDogQHRocmVlQ2FyZFNwYWNpbmc7XG4gIH1cbiAgLnVpLmVpZ2h0LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogQGZvdXJDYXJkT2Zmc2V0O1xuICAgIG1hcmdpbi1yaWdodDogQGZvdXJDYXJkT2Zmc2V0O1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQGZvdXJDYXJkO1xuICAgIG1hcmdpbi1sZWZ0OiBAZm91ckNhcmRTcGFjaW5nO1xuICAgIG1hcmdpbi1yaWdodDogQGZvdXJDYXJkU3BhY2luZztcbiAgfVxuICAudWkubmluZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IEBmb3VyQ2FyZE9mZnNldDtcbiAgICBtYXJnaW4tcmlnaHQ6IEBmb3VyQ2FyZE9mZnNldDtcbiAgfVxuICAudWkubmluZS5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogQGZvdXJDYXJkO1xuICAgIG1hcmdpbi1sZWZ0OiBAZm91ckNhcmRTcGFjaW5nO1xuICAgIG1hcmdpbi1yaWdodDogQGZvdXJDYXJkU3BhY2luZztcbiAgfVxuICAudWkudGVuLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogQGZpdmVDYXJkT2Zmc2V0O1xuICAgIG1hcmdpbi1yaWdodDogQGZpdmVDYXJkT2Zmc2V0O1xuICB9XG4gIC51aS50ZW4uZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IEBmaXZlQ2FyZDtcbiAgICBtYXJnaW4tbGVmdDogQGZpdmVDYXJkU3BhY2luZztcbiAgICBtYXJnaW4tcmlnaHQ6IEBmaXZlQ2FyZFNwYWNpbmc7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLnN0YWNrYWJsZS5jYXJkcyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNhcmRzIC5jYXJkOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNhcmRzID4gLmNhcmQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiBAc3RhY2thYmxlUm93U3BhY2luZyBAc3RhY2thYmxlQ2FyZFNwYWNpbmc7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBAc3RhY2thYmxlTWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY2FyZHMgPiAuY2FyZCB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bTtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQ29tbWVudFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ3ZpZXcnO1xuQGVsZW1lbnQgOiAnY29tbWVudCc7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNvbW1lbnRzIHtcbiAgbWFyZ2luOiBAbWFyZ2luO1xuICBtYXgtd2lkdGg6IEBtYXhXaWR0aDtcbn1cblxuLnVpLmNvbW1lbnRzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmNvbW1lbnRzOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tbWVudFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNvbW1lbnRzIC5jb21tZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBAY29tbWVudEJhY2tncm91bmQ7XG4gIG1hcmdpbjogQGNvbW1lbnRNYXJnaW47XG4gIHBhZGRpbmc6IEBjb21tZW50UGFkZGluZztcbiAgYm9yZGVyOiBAY29tbWVudEJvcmRlcjtcbiAgYm9yZGVyLXRvcDogQGNvbW1lbnREaXZpZGVyO1xuICBsaW5lLWhlaWdodDogQGNvbW1lbnRMaW5lSGVpZ2h0O1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogQGZpcnN0Q29tbWVudE1hcmdpbjtcbiAgcGFkZGluZy10b3A6IEBmaXJzdENvbW1lbnRQYWRkaW5nO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBOZXN0ZWQgQ29tbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jb21tZW50cyAuY29tbWVudCAuY29tbWVudHMge1xuICBtYXJnaW46IEBuZXN0ZWRDb21tZW50c01hcmdpbjtcbiAgcGFkZGluZzogQG5lc3RlZENvbW1lbnRzUGFkZGluZztcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuY29tbWVudHM6YmVmb3Jle1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRzIC5jb21tZW50IHtcbiAgYm9yZGVyOiBAbmVzdGVkQ29tbWVudEJvcmRlcjtcbiAgYm9yZGVyLXRvcDogQG5lc3RlZENvbW1lbnREaXZpZGVyO1xuICBiYWNrZ3JvdW5kOiBAbmVzdGVkQ29tbWVudEJhY2tncm91bmQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQXZhdGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmF2YXRhciB7XG4gIGRpc3BsYXk6IEBhdmF0YXJEaXNwbGF5O1xuICB3aWR0aDogQGF2YXRhcldpZHRoO1xuICBoZWlnaHQ6IEBhdmF0YXJIZWlnaHQ7XG4gIGZsb2F0OiBAYXZhdGFyRmxvYXQ7XG4gIG1hcmdpbjogQGF2YXRhck1hcmdpbjtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCBpbWcuYXZhdGFyLFxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hdmF0YXIgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IEBhdmF0YXJCb3JkZXJSYWRpdXM7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNvbW1lbnRzIC5jb21tZW50ID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIElmIHRoZXJlIGlzIGFuIGF2YXRhciBtb3ZlIGNvbnRlbnQgb3ZlciAqL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50ID4gLmF2YXRhciB+IC5jb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IEBjb250ZW50TWFyZ2luO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEF1dGhvclxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hdXRob3Ige1xuICBmb250LXNpemU6IEBhdXRob3JGb250U2l6ZTtcbiAgY29sb3I6IEBhdXRob3JDb2xvcjtcbiAgZm9udC13ZWlnaHQ6IEBhdXRob3JGb250V2VpZ2h0O1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IGEuYXV0aG9yIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IGEuYXV0aG9yOmhvdmVyIHtcbiAgY29sb3I6IEBhdXRob3JIb3ZlckNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE1ldGFkYXRhXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLm1ldGFkYXRhIHtcbiAgZGlzcGxheTogQG1ldGFkYXRhRGlzcGxheTtcbiAgbWFyZ2luLWxlZnQ6IEBtZXRhZGF0YVNwYWNpbmc7XG4gIGNvbG9yOiBAbWV0YWRhdGFDb2xvcjtcbiAgZm9udC1zaXplOiBAbWV0YWRhdGFGb250U2l6ZTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAubWV0YWRhdGEgPiAqIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSBAbWV0YWRhdGFDb250ZW50U3BhY2luZyAwZW0gMGVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5tZXRhZGF0YSA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tbWVudCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLnRleHQge1xuICBtYXJnaW46IEB0ZXh0TWFyZ2luO1xuICBmb250LXNpemU6IEB0ZXh0Rm9udFNpemU7XG4gIHdvcmQtd3JhcDogQHRleHRXb3JkV3JhcDtcbiAgY29sb3I6IEB0ZXh0Q29sb3I7XG4gIGxpbmUtaGVpZ2h0OiBAdGV4dExpbmVIZWlnaHQ7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBVc2VyIEFjdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyB7XG4gIGZvbnQtc2l6ZTogQGFjdGlvbkZvbnRTaXplO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hY3Rpb25zIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW0gQGFjdGlvbkNvbnRlbnREaXN0YW5jZSAwZW0gMGVtO1xuICBjb2xvcjogQGFjdGlvbkxpbmtDb2xvcjtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyBhOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyBhLmFjdGl2ZSxcbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyBhOmhvdmVyIHtcbiAgY29sb3I6IEBhY3Rpb25MaW5rSG92ZXJDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUmVwbHkgRm9ybVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNvbW1lbnRzID4gLnJlcGx5LmZvcm0ge1xuICBtYXJnaW4tdG9wOiBAcmVwbHlEaXN0YW5jZTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAucmVwbHkuZm9ybSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiBAY29tbWVudFJlcGx5RGlzdGFuY2U7XG59XG4udWkuY29tbWVudHMgLnJlcGx5LmZvcm0gdGV4dGFyZWEge1xuICBmb250LXNpemU6IEByZXBseUZvbnRTaXplO1xuICBoZWlnaHQ6IEByZXBseUhlaWdodDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuY29sbGFwc2VkLmNvbW1lbnRzLFxuLnVpLmNvbW1lbnRzIC5jb2xsYXBzZWQuY29tbWVudHMsXG4udWkuY29tbWVudHMgLmNvbGxhcHNlZC5jb21tZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFRocmVhZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkudGhyZWFkZWQuY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRzIHtcbiAgbWFyZ2luOiBAdGhyZWFkZWRDb21tZW50TWFyZ2luO1xuICBwYWRkaW5nOiBAdGhyZWFkZWRDb21tZW50UGFkZGluZztcbiAgYm94LXNoYWRvdzogQHRocmVhZGVkQ29tbWVudEJveFNoYWRvdztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBNaW5pbWFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWluaW1hbC5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBAbWluaW1hbEFjdGlvblBvc2l0aW9uO1xuICB0b3A6IEBtaW5pbWFsQWN0aW9uVG9wO1xuICByaWdodDogQG1pbmltYWxBY3Rpb25SaWdodDtcbiAgbGVmdDogQG1pbmltYWxBY3Rpb25MZWZ0O1xuICB0cmFuc2l0aW9uOiBAbWluaW1hbFRyYW5zaXRpb247XG4gIHRyYW5zaXRpb24tZGVsYXk6IEBtaW5pbWFsVHJhbnNpdGlvbkRlbGF5O1xufVxuLnVpLm1pbmltYWwuY29tbWVudHMgLmNvbW1lbnQgPiAuY29udGVudDpob3ZlciA+IC5hY3Rpb25zIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLm1pbmkuY29tbWVudHMge1xuICBmb250LXNpemU6IEBtaW5pO1xufVxuLnVpLnRpbnkuY29tbWVudHMge1xuICBmb250LXNpemU6IEB0aW55O1xufVxuLnVpLnNtYWxsLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiBAc21hbGw7XG59XG4udWkuY29tbWVudHMge1xuICBmb250LXNpemU6IEBtZWRpdW07XG59XG4udWkubGFyZ2UuY29tbWVudHMge1xuICBmb250LXNpemU6IEBsYXJnZTtcbn1cbi51aS5iaWcuY29tbWVudHMge1xuICBmb250LXNpemU6IEBiaWc7XG59XG4udWkuaHVnZS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogQGh1Z2U7XG59XG4udWkubWFzc2l2ZS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogQG1hc3NpdmU7XG59XG5cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRmVlZFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICd2aWV3JztcbkBlbGVtZW50IDogJ2ZlZWQnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBBY3Rpdml0eSBGZWVkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuZmVlZCB7XG4gIG1hcmdpbjogQG1hcmdpbjtcbn1cbi51aS5mZWVkOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmZlZWQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogRXZlbnQgKi9cbi51aS5mZWVkID4gLmV2ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgd2lkdGg6IEBldmVudFdpZHRoO1xuICBwYWRkaW5nOiBAZXZlbnRQYWRkaW5nO1xuICBtYXJnaW46IEBldmVudE1hcmdpbjtcbiAgYmFja2dyb3VuZDogQGV2ZW50QmFja2dyb3VuZDtcbiAgYm9yZGVyLXRvcDogQGV2ZW50RGl2aWRlcjtcbn1cbi51aS5mZWVkID4gLmV2ZW50OmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMHB4O1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQ6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG5cbi8qIEV2ZW50IExhYmVsICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IEBsYWJlbFdpZHRoO1xuICBoZWlnaHQ6IEBsYWJlbEhlaWdodDtcbiAgYWxpZ24tc2VsZjogQGxhYmVsQWxpZ25TZWxmO1xuICB0ZXh0LWFsaWduOiBAbGFiZWxUZXh0QWxpZ247XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5sYWJlbCAuaWNvbiB7XG4gIG9wYWNpdHk6IEBpY29uTGFiZWxPcGFjaXR5O1xuICBmb250LXNpemU6IEBpY29uTGFiZWxTaXplO1xuICB3aWR0aDogQGljb25MYWJlbFdpZHRoO1xuICBwYWRkaW5nOiBAaWNvbkxhYmVsUGFkZGluZztcbiAgYmFja2dyb3VuZDogQGljb25MYWJlbEJhY2tncm91bmQ7XG4gIGJvcmRlcjogQGljb25MYWJlbEJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGljb25MYWJlbEJvcmRlclJhZGl1cztcbiAgY29sb3I6IEBpY29uTGFiZWxDb2xvcjtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsIGltZyB7XG4gIHdpZHRoOiBAaW1hZ2VMYWJlbFdpZHRoO1xuICBoZWlnaHQ6IEBpbWFnZUxhYmVsSGVpZ2h0O1xuICBib3JkZXItcmFkaXVzOiBAaW1hZ2VMYWJlbEJvcmRlclJhZGl1cztcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsICsgLmNvbnRlbnQge1xuICBtYXJnaW46IEBsYWJlbGVkQ29udGVudE1hcmdpbjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBDb250ZW50ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBhbGlnbi1zZWxmOiBAY29udGVudEFsaWduU2VsZjtcbiAgdGV4dC1hbGlnbjogQGNvbnRlbnRUZXh0QWxpZ247XG4gIHdvcmQtd3JhcDogQGNvbnRlbnRXb3JkV3JhcDtcbn1cbi51aS5mZWVkID4gLmV2ZW50Omxhc3QtY2hpbGQgPiAuY29udGVudCB7XG4gIHBhZGRpbmctYm90dG9tOiBAbGFzdExhYmVsZWRDb250ZW50UGFkZGluZztcbn1cblxuLyogTGluayAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBEYXRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5kYXRlIHtcbiAgbWFyZ2luOiBAZGF0ZU1hcmdpbjtcbiAgcGFkZGluZzogQGRhdGVQYWRkaW5nO1xuICBjb2xvcjogQGRhdGVDb2xvcjtcbiAgZm9udC13ZWlnaHQ6IEBkYXRlRm9udFdlaWdodDtcbiAgZm9udC1zaXplOiBAZGF0ZUZvbnRTaXplO1xuICBmb250LXN0eWxlOiBAZGF0ZUZvbnRTdHlsZTtcbiAgY29sb3I6IEBkYXRlQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3VtbWFyeVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuc3VtbWFyeSB7XG4gIG1hcmdpbjogQHN1bW1hcnlNYXJnaW47XG4gIGZvbnQtc2l6ZTogQHN1bW1hcnlGb250U2l6ZTtcbiAgZm9udC13ZWlnaHQ6IEBzdW1tYXJ5Rm9udFdlaWdodDtcbiAgY29sb3I6IEBzdW1tYXJ5Q29sb3I7XG59XG5cbi8qIFN1bW1hcnkgSW1hZ2UgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnN1bW1hcnkgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogQHN1bW1hcnlJbWFnZVdpZHRoO1xuICBoZWlnaHQ6IEBzdW1tYXJ5SW1hZ2VIZWlnaHQ7XG4gIG1hcmdpbjogQHN1bW1hcnlJbWFnZU1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogQHN1bW1hcnlJbWFnZUJvcmRlclJhZGl1cztcbiAgdmVydGljYWwtYWxpZ246IEBzdW1tYXJ5SW1hZ2VWZXJ0aWNhbEFsaWduO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVXNlclxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAudXNlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IEB1c2VyRm9udFdlaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiBAdXNlckRpc3RhbmNlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC51c2VyIGltZyB7XG4gIG1hcmdpbjogQHVzZXJJbWFnZU1hcmdpbjtcbiAgd2lkdGg6IEB1c2VySW1hZ2VXaWR0aDtcbiAgaGVpZ2h0OiBAdXNlckltYWdlSGVpZ2h0O1xuICB2ZXJ0aWNhbC1hbGlnbjogQHVzZXJJbWFnZVZlcnRpY2FsQWxpZ247XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBJbmxpbmUgRGF0ZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogRGF0ZSBpbnNpZGUgU3VtbWFyeSAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuc3VtbWFyeSA+IC5kYXRlIHtcbiAgZGlzcGxheTogQHN1bW1hcnlEYXRlRGlzcGxheTtcbiAgZmxvYXQ6IEBzdW1tYXJ5RGF0ZUZsb2F0O1xuICBmb250LXdlaWdodDogQHN1bW1hcnlEYXRlRm9udFdlaWdodDtcbiAgZm9udC1zaXplOiBAc3VtbWFyeURhdGVGb250U2l6ZTtcbiAgZm9udC1zdHlsZTogQHN1bW1hcnlEYXRlRm9udFN0eWxlO1xuICBtYXJnaW46IEBzdW1tYXJ5RGF0ZU1hcmdpbjtcbiAgcGFkZGluZzogQHN1bW1hcnlEYXRlUGFkZGluZztcbiAgY29sb3I6IEBzdW1tYXJ5RGF0ZUNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gIEV4dHJhIFN1bW1hcnlcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLmV4dHJhIHtcbiAgbWFyZ2luOiBAZXh0cmFNYXJnaW47XG4gIGJhY2tncm91bmQ6IEBleHRyYUJhY2tncm91bmQ7XG4gIHBhZGRpbmc6IEBleHRyYVBhZGRpbmc7XG4gIGNvbG9yOiBAZXh0cmFDb2xvcjtcbn1cblxuLyogSW1hZ2VzICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5leHRyYS5pbWFnZXMgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IEBleHRyYUltYWdlTWFyZ2luO1xuICB3aWR0aDogQGV4dHJhSW1hZ2VXaWR0aDtcbn1cblxuLyogVGV4dCAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuZXh0cmEudGV4dCB7XG4gIHBhZGRpbmc6IEBleHRyYVRleHRQYWRkaW5nO1xuICBib3JkZXItbGVmdDogQGV4dHJhVGV4dFBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogQGV4dHJhVGV4dEZvbnRTaXplO1xuICBtYXgtd2lkdGg6IEBleHRyYVRleHRNYXhXaWR0aDtcbiAgbGluZS1oZWlnaHQ6IEBleHRyYVRleHRMaW5lSGVpZ2h0O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZXRhXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIHtcbiAgZGlzcGxheTogQG1ldGFkYXRhRGlzcGxheTtcbiAgZm9udC1zaXplOiBAbWV0YWRhdGFGb250U2l6ZTtcbiAgbWFyZ2luOiBAbWV0YWRhdGFNYXJnaW47XG4gIGJhY2tncm91bmQ6IEBtZXRhZGF0YUJhY2tncm91bmQ7XG4gIGJvcmRlcjogQG1ldGFkYXRhQm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAbWV0YWRhdGFCb3JkZXJSYWRpdXM7XG4gIGJveC1zaGFkb3c6IEBtZXRhZGF0YUJveFNoYWRvdztcbiAgcGFkZGluZzogQG1ldGFkYXRhUGFkZGluZztcbiAgY29sb3I6IEBtZXRhZGF0YUNvbG9yO1xufVxuXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gKiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWxlZnQ6IEBtZXRhZGF0YUVsZW1lbnRTcGFjaW5nO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+ICo6YWZ0ZXIge1xuICBjb250ZW50OiBAbWV0YWRhdGFEaXZpZGVyO1xuICBjb2xvcjogQG1ldGFkYXRhRGl2aWRlckNvbG9yO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogQG1ldGFkYXRhRGl2aWRlck9mZnNldDtcbiAgb3BhY2l0eTogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIC5saWtlIHtcbiAgY29sb3I6IEBsaWtlQ29sb3I7XG4gIHRyYW5zaXRpb246IEBsaWtlVHJhbnNpdGlvbjtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgLmxpa2U6aG92ZXIgLmljb24ge1xuICBjb2xvcjogQGxpa2VIb3ZlckNvbG9yO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSAuYWN0aXZlLmxpa2UgLmljb24ge1xuICBjb2xvcjogQGxpa2VBY3RpdmVDb2xvcjtcbn1cblxuLyogRmlyc3QgZWxlbWVudCAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+IDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEFjdGlvbiAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSBhLFxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+IC5pY29uIHtcbiAgY3Vyc29yOiBAbWV0YWRhdGFBY3Rpb25DdXJzb3I7XG4gIG9wYWNpdHk6IEBtZXRhZGF0YUFjdGlvbk9wYWNpdHk7XG4gIGNvbG9yOiBAbWV0YWRhdGFBY3Rpb25Db2xvcjtcbiAgdHJhbnNpdGlvbjogQG1ldGFkYXRhQWN0aW9uVHJhbnNpdGlvbjtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgYTpob3Zlcixcbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgYTpob3ZlciAuaWNvbixcbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiAuaWNvbjpob3ZlciB7XG4gIGNvbG9yOiBAbWV0YWRhdGFBY3Rpb25Ib3ZlckNvbG9yO1xufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5zbWFsbC5mZWVkIHtcbiAgZm9udC1zaXplOiBAc21hbGw7XG59XG4udWkuZmVlZCB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bTtcbn1cbi51aS5sYXJnZS5mZWVkIHtcbiAgZm9udC1zaXplOiBAbGFyZ2U7XG59XG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEl0ZW1cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAndmlldyc7XG5AZWxlbWVudCA6ICdpdGVtJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEl0ZW1cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pdGVtcyA+IC5pdGVtIHtcbiAgZGlzcGxheTogQGRpc3BsYXk7XG4gIG1hcmdpbjogQGl0ZW1TcGFjaW5nIDBlbTtcbiAgd2lkdGg6IEB3aWR0aDtcbiAgbWluLWhlaWdodDogQG1pbkhlaWdodDtcbiAgYmFja2dyb3VuZDogQGJhY2tncm91bmQ7XG4gIHBhZGRpbmc6IEBwYWRkaW5nO1xuXG4gIGJvcmRlcjogQGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlclJhZGl1cztcbiAgYm94LXNoYWRvdzogQGJveFNoYWRvdztcbiAgdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gIHotaW5kZXg6IEB6SW5kZXg7XG59XG4udWkuaXRlbXMgPiAuaXRlbSBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLml0ZW1zIHtcbiAgbWFyZ2luOiBAZ3JvdXBNYXJnaW47XG59XG5cbi51aS5pdGVtczpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xufVxuLnVpLml0ZW1zOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW0gIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSXRlbVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLml0ZW1zID4gLml0ZW06YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5pdGVtcyA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMCAwIGF1dG87XG4gIGRpc3BsYXk6IEBpbWFnZURpc3BsYXk7XG4gIGZsb2F0OiBAaW1hZ2VGbG9hdDtcbiAgbWFyZ2luOiBAaW1hZ2VNYXJnaW47XG4gIHBhZGRpbmc6IEBpbWFnZVBhZGRpbmc7XG4gIG1heC1oZWlnaHQ6IEBpbWFnZU1heEhlaWdodDtcbiAgYWxpZ24tc2VsZjogQGltYWdlVmVydGljYWxBbGlnbjtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlID4gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IEBpbWFnZUJvcmRlclJhZGl1cztcbiAgYm9yZGVyOiBAaW1hZ2VCb3JkZXI7XG59XG5cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlOm9ubHktY2hpbGQgPiBpbWcge1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgYmFja2dyb3VuZDogQGNvbnRlbnRCYWNrZ3JvdW5kO1xuICBtYXJnaW46IEBjb250ZW50TWFyZ2luO1xuICBwYWRkaW5nOiBAY29udGVudFBhZGRpbmc7XG4gIGJveC1zaGFkb3c6IEBjb250ZW50Qm94U2hhZG93O1xuICBmb250LXNpemU6IEBjb250ZW50Rm9udFNpemU7XG4gIGJvcmRlcjogQGNvbnRlbnRCb3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEBjb250ZW50Qm9yZGVyUmFkaXVzO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogQGNvbnRlbnRXaWR0aDtcbiAgZGlzcGxheTogQGNvbnRlbnREaXNwbGF5O1xuICBtYXJnaW4tbGVmdDogQGNvbnRlbnRPZmZzZXQ7XG4gIGFsaWduLXNlbGY6IEBjb250ZW50VmVydGljYWxBbGlnbjtcbiAgcGFkZGluZy1sZWZ0OiBAY29udGVudEltYWdlRGlzdGFuY2U7XG59XG5cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiAuaGVhZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IEBoZWFkZXJNYXJnaW47XG4gIGZvbnQtZmFtaWx5OiBAaGVhZGVyRm9udDtcbiAgZm9udC13ZWlnaHQ6IEBoZWFkZXJGb250V2VpZ2h0O1xuICBjb2xvcjogQGhlYWRlckNvbG9yO1xufVxuLyogRGVmYXVsdCBIZWFkZXIgU2l6ZSAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IEBoZWFkZXJGb250U2l6ZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbG9hdGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaXRlbXMgPiAuaXRlbSBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udWkuaXRlbXMgPiAuaXRlbSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gIENvbnRlbnQgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pdGVtcyA+IC5pdGVtIC5jb250ZW50IGltZyB7XG4gIGFsaWduLXNlbGY6IEBjb250ZW50SW1hZ2VWZXJ0aWNhbEFsaWduO1xuICB3aWR0aDogQGNvbnRlbnRJbWFnZVdpZHRoO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gaW1nLmF2YXRhcixcbi51aS5pdGVtcyA+IC5pdGVtIC5hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IEBhdmF0YXJTaXplO1xuICBoZWlnaHQ6IEBhdmF0YXJTaXplO1xuICBib3JkZXItcmFkaXVzOiBAYXZhdGFyQm9yZGVyUmFkaXVzO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlc2NyaXB0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50ID4gLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogQGRlc2NyaXB0aW9uRGlzdGFuY2U7XG4gIG1heC13aWR0aDogQGRlc2NyaXB0aW9uTWF4V2lkdGg7XG4gIGZvbnQtc2l6ZTogQGRlc2NyaXB0aW9uRm9udFNpemU7XG4gIGxpbmUtaGVpZ2h0OiBAZGVzY3JpcHRpb25MaW5lSGVpZ2h0O1xuICBjb2xvcjogQGRlc2NyaXB0aW9uQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMGVtIDBlbSBAcGFyYWdyYXBoRGlzdGFuY2U7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWV0YVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEge1xuICBtYXJnaW46IEBtZXRhTWFyZ2luO1xuICBmb250LXNpemU6IEBtZXRhRm9udFNpemU7XG4gIGxpbmUtaGVpZ2h0OiBAbWV0YUxpbmVIZWlnaHQ7XG4gIGNvbG9yOiBAbWV0YUNvbG9yO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgKiB7XG4gIG1hcmdpbi1yaWdodDogQG1ldGFTcGFjaW5nO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cblxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IEBtZXRhU3BhY2luZztcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEdlbmVyaWMgKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgYTpub3QoLnVpKSB7XG4gIGNvbG9yOiBAY29udGVudExpbmtDb2xvcjtcbiAgdHJhbnNpdGlvbjogQGNvbnRlbnRMaW5rVHJhbnNpdGlvbjtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiBAY29udGVudExpbmtIb3ZlckNvbG9yO1xufVxuXG4vKiBIZWFkZXIgKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiBhLmhlYWRlciB7XG4gIGNvbG9yOiBAaGVhZGVyTGlua0NvbG9yO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IGEuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6IEBoZWFkZXJMaW5rSG92ZXJDb2xvcjtcbn1cblxuLyogTWV0YSAqL1xuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgPiBhOm5vdCgudWkpIHtcbiAgY29sb3I6IEBtZXRhTGlua0NvbG9yO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgPiBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6IEBtZXRhTGlua0hvdmVyQ29sb3I7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLVN0YXItLS0tLSAqL1xuXG4vKiBJY29uICovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5mYXZvcml0ZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiBAYWN0aW9uT3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogQGFjdGlvblRyYW5zaXRpb247XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5mYXZvcml0ZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogQGFjdGlvbkhvdmVyT3BhY2l0eTtcbiAgY29sb3I6IEBmYXZvcml0ZUNvbG9yO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAuYWN0aXZlLmZhdm9yaXRlLmljb24ge1xuICBjb2xvcjogQGZhdm9yaXRlQWN0aXZlQ29sb3I7XG59XG5cbi8qLS0tLS1MaWtlLS0tLS0gKi9cblxuLyogSWNvbiAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAubGlrZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiBAYWN0aW9uT3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogQGFjdGlvblRyYW5zaXRpb247XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5saWtlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiBAYWN0aW9uSG92ZXJPcGFjaXR5O1xuICBjb2xvcjogQGxpa2VDb2xvcjtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmFjdGl2ZS5saWtlLmljb24ge1xuICBjb2xvcjogQGxpa2VBY3RpdmVDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tXG4gIEV4dHJhIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLml0ZW1zID4gLml0ZW0gLmV4dHJhIHtcbiAgZGlzcGxheTogQGV4dHJhRGlzcGxheTtcbiAgcG9zaXRpb246IEBleHRyYVBvc2l0aW9uO1xuICBiYWNrZ3JvdW5kOiBAZXh0cmFCYWNrZ3JvdW5kO1xuICBtYXJnaW46IEBleHRyYU1hcmdpbjtcbiAgd2lkdGg6IEBleHRyYVdpZHRoO1xuICBwYWRkaW5nOiBAZXh0cmFQYWRkaW5nO1xuICB0b3A6IEBleHRyYVRvcDtcbiAgbGVmdDogQGV4dHJhTGVmdDtcbiAgY29sb3I6IEBleHRyYUNvbG9yO1xuICBib3gtc2hhZG93OiBAZXh0cmFCb3hTaGFkb3c7XG4gIHRyYW5zaXRpb246IEBleHRyYVRyYW5zaXRpb247XG4gIGJvcmRlci10b3A6IEBleHRyYURpdmlkZXI7XG59XG4udWkuaXRlbXMgPiAuaXRlbSAuZXh0cmEgPiAqIHtcbiAgbWFyZ2luOiAoQGV4dHJhUm93U3BhY2luZyAvIDIpIEBleHRyYUhvcml6b250YWxTcGFjaW5nIChAZXh0cmFSb3dTcGFjaW5nIC8gMikgMGVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLmV4dHJhID4gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBtYXJnaW46IChAZXh0cmFSb3dTcGFjaW5nIC8gMikgMGVtIChAZXh0cmFSb3dTcGFjaW5nIC8gMikgQGV4dHJhSG9yaXpvbnRhbFNwYWNpbmc7XG59XG5cbi51aS5pdGVtcyA+IC5pdGVtIC5leHRyYTphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgUmVzcG9uc2l2ZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogRGVmYXVsdCBJbWFnZSBXaWR0aCAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2U6bm90KC51aSkge1xuICB3aWR0aDogQGltYWdlV2lkdGg7XG59XG5cblxuLyogVGFibGV0IE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHRhYmxldEJyZWFrcG9pbnQpIGFuZCAobWF4LXdpZHRoOiBAbGFyZ2VzdFRhYmxldFNjcmVlbikge1xuICAudWkuaXRlbXMgPiAuaXRlbSB7XG4gICAgbWFyZ2luOiBAdGFibGV0SXRlbVNwYWNpbmcgMGVtO1xuICB9XG4gIC51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlOm5vdCgudWkpIHtcbiAgICB3aWR0aDogQHRhYmxldEltYWdlV2lkdGg7XG4gIH1cbiAgLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UgKyAuY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMGVtIDBlbSAwZW0gQHRhYmxldENvbnRlbnRJbWFnZURpc3RhbmNlO1xuICB9XG5cbn1cblxuLyogTW9iaWxlIE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLml0ZW1zOm5vdCgudW5zdGFja2FibGUpID4gLml0ZW0ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luOiBAbW9iaWxlSXRlbVNwYWNpbmcgMGVtO1xuICB9XG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtID4gLmltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbiAgLnVpLml0ZW1zOm5vdCgudW5zdGFja2FibGUpID4gLml0ZW0gPiAuaW1hZ2UsXG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtID4gLmltYWdlID4gaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogQG1vYmlsZUltYWdlV2lkdGggIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiBAbW9iaWxlSW1hZ2VNYXhIZWlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiBAbW9iaWxlQ29udGVudEltYWdlRGlzdGFuY2UgMGVtIDBlbTtcbiAgfVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5jb250ZW50IHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlICsgW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmNvbnRlbnQge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5jb250ZW50IHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkucmVsYXhlZC5pdGVtcyA+IC5pdGVtIHtcbiAgbWFyZ2luOiBAcmVsYXhlZEl0ZW1TcGFjaW5nIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uaXRlbXMgPiAuaXRlbSB7XG4gIG1hcmdpbjogQHZlcnlSZWxheGVkSXRlbVNwYWNpbmcgMGVtO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZGl2aWRlZC5pdGVtcyA+IC5pdGVtIHtcbiAgYm9yZGVyLXRvcDogQGRpdmlkZWRCb3JkZXI7XG4gIG1hcmdpbjogQGRpdmlkZWRNYXJnaW47XG4gIHBhZGRpbmc6IEBkaXZpZGVkUGFkZGluZztcbn1cbi51aS5kaXZpZGVkLml0ZW1zID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW4tdG9wOiBAZGl2aWRlZEZpcnN0TGFzdE1hcmdpbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogQGRpdmlkZWRGaXJzdExhc3RQYWRkaW5nICFpbXBvcnRhbnQ7XG59XG4udWkuZGl2aWRlZC5pdGVtcyA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiBAZGl2aWRlZEZpcnN0TGFzdE1hcmdpbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogQGRpdmlkZWRGaXJzdExhc3RQYWRkaW5nICFpbXBvcnRhbnQ7XG59XG5cbi8qIFJlbGF4ZWQgRGl2aWRlZCAqL1xuLnVpLnJlbGF4ZWQuZGl2aWRlZC5pdGVtcyA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IEByZWxheGVkSXRlbVNwYWNpbmcgMGVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5kaXZpZGVkLml0ZW1zID4gLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogQHZlcnlSZWxheGVkSXRlbVNwYWNpbmcgMGVtO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pdGVtcyBhLml0ZW06aG92ZXIsXG4udWkubGluay5pdGVtcyA+IC5pdGVtOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udWkuaXRlbXMgYS5pdGVtOmhvdmVyIC5jb250ZW50IC5oZWFkZXIsXG4udWkubGluay5pdGVtcyA+IC5pdGVtOmhvdmVyIC5jb250ZW50IC5oZWFkZXIge1xuICBjb2xvcjogQGhlYWRlckxpbmtIb3ZlckNvbG9yO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5pdGVtcyA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiBAcmVsYXRpdmVNZWRpdW07XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tXG4gICBVbnN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLnVuc3RhY2thYmxlLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2UsXG4gIC51aS51bnN0YWNrYWJsZS5pdGVtcyA+IC5pdGVtID4gLmltYWdlID4gaW1nIHtcbiAgICB3aWR0aDogQHVuc3RhY2thYmxlTW9iaWxlSW1hZ2VXaWR0aCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFN0YXRpc3RpY1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICd2aWV3JztcbkBlbGVtZW50IDogJ3N0YXRpc3RpYyc7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGlzdGljXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBTdGFuZGFsb25lICovXG4udWkuc3RhdGlzdGljIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogQG1hcmdpbjtcbiAgbWF4LXdpZHRoOiBAbWF4V2lkdGg7XG59XG5cbi51aS5zdGF0aXN0aWMgKyAudWkuc3RhdGlzdGljIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSBAaG9yaXpvbnRhbFNwYWNpbmc7XG59XG5cbi51aS5zdGF0aXN0aWM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuc3RhdGlzdGljOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgR3JvdXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qIEdyb3VwZWQgKi9cbi51aS5zdGF0aXN0aWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi51aS5zdGF0aXN0aWNzID4gLnN0YXRpc3RpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4OiAwIDEgYXV0bztcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiBAZWxlbWVudE1hcmdpbjtcbiAgbWF4LXdpZHRoOiBAZWxlbWVudE1heFdpZHRoO1xufVxuLnVpLnN0YXRpc3RpY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IEBncm91cE1hcmdpbjtcbn1cblxuLyogQ2xlYXJpbmcgKi9cbi51aS5zdGF0aXN0aWNzOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi51aS5zdGF0aXN0aWNzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhbHVlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtZmFtaWx5OiBAdmFsdWVGb250O1xuICBmb250LXNpemU6IEB2YWx1ZVNpemU7XG4gIGZvbnQtd2VpZ2h0OiBAdmFsdWVGb250V2VpZ2h0O1xuICBsaW5lLWhlaWdodDogQHZhbHVlTGluZUhlaWdodDtcbiAgY29sb3I6IEB2YWx1ZUNvbG9yO1xuICB0ZXh0LXRyYW5zZm9ybTogQHZhbHVlVGV4dFRyYW5zZm9ybTtcbiAgdGV4dC1hbGlnbjogQHRleHRBbGlnbjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC5sYWJlbCxcbi51aS5zdGF0aXN0aWMgPiAubGFiZWwge1xuICBmb250LWZhbWlseTogQGxhYmVsRm9udDtcbiAgZm9udC1zaXplOiBAbGFiZWxTaXplO1xuICBmb250LXdlaWdodDogQGxhYmVsRm9udFdlaWdodDtcbiAgY29sb3I6IEBsYWJlbENvbG9yO1xuICB0ZXh0LXRyYW5zZm9ybTogQGxhYmVsVGV4dFRyYW5zZm9ybTtcbiAgdGV4dC1hbGlnbjogQHRleHRBbGlnbjtcbn1cblxuLyogVG9wIExhYmVsICovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsIH4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC5sYWJlbCB+IC52YWx1ZSB7XG4gIG1hcmdpbi10b3A6IEB0b3BMYWJlbERpc3RhbmNlO1xufVxuXG4vKiBCb3R0b20gTGFiZWwgKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgfiAubGFiZWwsXG4udWkuc3RhdGlzdGljID4gLnZhbHVlIH4gLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogQGJvdHRvbUxhYmVsRGlzdGFuY2U7XG59XG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBJY29uIFZhbHVlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlIC5pY29uLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSAuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgVGV4dCBWYWx1ZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgbGluZS1oZWlnaHQ6IEB0ZXh0VmFsdWVMaW5lSGVpZ2h0O1xuICBtaW4taGVpZ2h0OiBAdGV4dFZhbHVlTWluSGVpZ2h0O1xuICBmb250LXdlaWdodDogQHRleHRWYWx1ZUZvbnRXZWlnaHQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSArIC5sYWJlbCxcbi51aS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSArIC5sYWJlbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgSW1hZ2UgVmFsdWVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgaW1nLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSBpbWcge1xuICBtYXgtaGVpZ2h0OiBAaW1hZ2VIZWlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiBAaW1hZ2VWZXJ0aWNhbEFsaWduO1xufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQ291bnRcbi0tLS0tLS0tLS0tLS0tLSovXG5cblxuLnVpLnRlbi5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiBAaXRlbUdyb3VwTWFyZ2luO1xufVxuLnVpLnRlbi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IEB0ZW5Db2x1bW47XG4gIG1hcmdpbjogQGl0ZW1NYXJnaW47XG59XG5cbi51aS5uaW5lLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IEBpdGVtR3JvdXBNYXJnaW47XG59XG4udWkubmluZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IEBuaW5lQ29sdW1uO1xuICBtYXJnaW46IEBpdGVtTWFyZ2luO1xufVxuXG4udWkuZWlnaHQuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogQGl0ZW1Hcm91cE1hcmdpbjtcbn1cbi51aS5laWdodC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IEBlaWdodENvbHVtbjtcbiAgbWFyZ2luOiBAaXRlbU1hcmdpbjtcbn1cblxuLnVpLnNldmVuLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IEBpdGVtR3JvdXBNYXJnaW47XG59XG4udWkuc2V2ZW4uc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiBAc2V2ZW5Db2x1bW47XG4gIG1hcmdpbjogQGl0ZW1NYXJnaW47XG59XG5cbi51aS5zaXguc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogQGl0ZW1Hcm91cE1hcmdpbjtcbn1cbi51aS5zaXguc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiBAc2l4Q29sdW1uO1xuICBtYXJnaW46IEBpdGVtTWFyZ2luO1xufVxuXG4udWkuZml2ZS5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiBAaXRlbUdyb3VwTWFyZ2luO1xufVxuLnVpLmZpdmUuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiBAZml2ZUNvbHVtbjtcbiAgbWFyZ2luOiBAaXRlbU1hcmdpbjtcbn1cblxuLnVpLmZvdXIuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogQGl0ZW1Hcm91cE1hcmdpbjtcbn1cbi51aS5mb3VyLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogQGZvdXJDb2x1bW47XG4gIG1hcmdpbjogQGl0ZW1NYXJnaW47XG59XG5cbi51aS50aHJlZS5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiBAaXRlbUdyb3VwTWFyZ2luO1xufVxuLnVpLnRocmVlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogQHRocmVlQ29sdW1uO1xuICBtYXJnaW46IEBpdGVtTWFyZ2luO1xufVxuXG4udWkudHdvLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IEBpdGVtR3JvdXBNYXJnaW47XG59XG4udWkudHdvLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogQHR3b0NvbHVtbjtcbiAgbWFyZ2luOiBAaXRlbU1hcmdpbjtcbn1cblxuLnVpLm9uZS5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiBAaXRlbUdyb3VwTWFyZ2luO1xufVxuLnVpLm9uZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IEBvbmVDb2x1bW47XG4gIG1hcmdpbjogQGl0ZW1NYXJnaW47XG59XG5cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEhvcml6b250YWxcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAwZW07XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luOiBAaG9yaXpvbnRhbEdyb3VwRWxlbWVudE1hcmdpbjtcbn1cblxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzID4gLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgbWluLWhlaWdodDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgLmljb24sXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUgLmljb24ge1xuICB3aWR0aDogQGljb25XaWR0aDtcbn1cblxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIEBob3Jpem9udGFsTGFiZWxEaXN0YW5jZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5yZWQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnJlZC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiBAcmVkO1xufVxuLnVpLm9yYW5nZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAub3JhbmdlLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5vcmFuZ2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6IEBvcmFuZ2U7XG59XG4udWkueWVsbG93LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC55ZWxsb3cuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogQHllbGxvdztcbn1cbi51aS5vbGl2ZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm9saXZlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiBAb2xpdmU7XG59XG4udWkuZ3JlZW4uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmdyZWVuLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogQGdyZWVuO1xufVxuLnVpLnRlYWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnRlYWwuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnRlYWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6IEB0ZWFsO1xufVxuLnVpLmJsdWUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6IEBibHVlO1xufVxuLnVpLnZpb2xldC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAudmlvbGV0LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS52aW9sZXQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6IEB2aW9sZXQ7XG59XG4udWkucHVycGxlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5wdXJwbGUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogQHB1cnBsZTtcbn1cbi51aS5waW5rLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5waW5rLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiBAcGluaztcbn1cbi51aS5icm93bi5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuYnJvd24uc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmJyb3duLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiBAYnJvd247XG59XG4udWkuZ3JleS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogQGdyZXk7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmludmVydGVkLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5zdGF0aXN0aWMgLnZhbHVlIHtcbiAgY29sb3I6IEBpbnZlcnRlZFZhbHVlQ29sb3I7XG59XG4udWkuaW52ZXJ0ZWQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsLFxuLnVpLmludmVydGVkLnN0YXRpc3RpYyAubGFiZWwge1xuICBjb2xvcjogQGludmVydGVkTGFiZWxDb2xvcjtcbn1cblxuLnVpLmludmVydGVkLnJlZC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5yZWQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6IEBsaWdodFJlZDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLm9yYW5nZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiBAbGlnaHRPcmFuZ2U7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC55ZWxsb3cuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogQGxpZ2h0WWVsbG93O1xufVxuLnVpLmludmVydGVkLm9saXZlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5vbGl2ZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6IEBsaWdodE9saXZlO1xufVxuLnVpLmludmVydGVkLmdyZWVuLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6IEBsaWdodEdyZWVuO1xufVxuLnVpLmludmVydGVkLnRlYWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnRlYWwuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnRlYWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6IEBsaWdodFRlYWw7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQuYmx1ZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogQGxpZ2h0Qmx1ZTtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnZpb2xldC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiBAbGlnaHRWaW9sZXQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5wdXJwbGUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogQGxpZ2h0UHVycGxlO1xufVxuLnVpLmludmVydGVkLnBpbmsuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6IEBsaWdodFBpbms7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLmJyb3duLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5icm93bi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogQGxpZ2h0QnJvd247XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogQGxpZ2h0R3JleTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aVtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uc3RhdGlzdGljIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogQGxlZnRGbG9hdGVkTWFyZ2luO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uc3RhdGlzdGljIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IEByaWdodEZsb2F0ZWRNYXJnaW47XG59XG4udWkuZmxvYXRlZC5zdGF0aXN0aWM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8qIE1pbmkgKi9cbi51aS5taW5pLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5taW5pLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogQG1pbmlWYWx1ZVNpemUgIWltcG9ydGFudDtcbn1cbi51aS5taW5pLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm1pbmkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IEBtaW5pSG9yaXpvbnRhbFZhbHVlU2l6ZSAhaW1wb3J0YW50O1xufVxuLnVpLm1pbmkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkubWluaS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogQG1pbmlUZXh0VmFsdWVTaXplICFpbXBvcnRhbnQ7XG59XG5cblxuLyogVGlueSAqL1xuLnVpLnRpbnkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnRpbnkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiBAdGlueVZhbHVlU2l6ZSAhaW1wb3J0YW50O1xufVxuLnVpLnRpbnkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkudGlueS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogQHRpbnlIb3Jpem9udGFsVmFsdWVTaXplICFpbXBvcnRhbnQ7XG59XG4udWkudGlueS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS50aW55LnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiBAdGlueVRleHRWYWx1ZVNpemUgIWltcG9ydGFudDtcbn1cblxuLyogU21hbGwgKi9cbi51aS5zbWFsbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc21hbGwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiBAc21hbGxWYWx1ZVNpemUgIWltcG9ydGFudDtcbn1cbi51aS5zbWFsbC5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zbWFsbC5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogQHNtYWxsSG9yaXpvbnRhbFZhbHVlU2l6ZSAhaW1wb3J0YW50O1xufVxuLnVpLnNtYWxsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLnNtYWxsLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiBAc21hbGxUZXh0VmFsdWVTaXplICFpbXBvcnRhbnQ7XG59XG5cbi8qIE1lZGl1bSAqL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IEB2YWx1ZVNpemUgIWltcG9ydGFudDtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogQGhvcml6b250YWxWYWx1ZVNpemUgIWltcG9ydGFudDtcbn1cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogQHRleHRWYWx1ZVNpemUgIWltcG9ydGFudDtcbn1cblxuLyogTGFyZ2UgKi9cbi51aS5sYXJnZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkubGFyZ2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiBAbGFyZ2VWYWx1ZVNpemUgIWltcG9ydGFudDtcbn1cbi51aS5sYXJnZS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5sYXJnZS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogQGxhcmdlSG9yaXpvbnRhbFZhbHVlU2l6ZSAhaW1wb3J0YW50O1xufVxuLnVpLmxhcmdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLmxhcmdlLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiBAbGFyZ2VUZXh0VmFsdWVTaXplICFpbXBvcnRhbnQ7XG59XG5cbi8qIEh1Z2UgKi9cbi51aS5odWdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5odWdlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogQGh1Z2VWYWx1ZVNpemUgIWltcG9ydGFudDtcbn1cbi51aS5odWdlLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmh1Z2UuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IEBodWdlSG9yaXpvbnRhbFZhbHVlU2l6ZSAhaW1wb3J0YW50O1xufVxuLnVpLmh1Z2Uuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuaHVnZS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogQGh1Z2VUZXh0VmFsdWVTaXplICFpbXBvcnRhbnQ7XG59XG5cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQWNjb3JkaW9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ21vZHVsZSc7XG5AZWxlbWVudCA6ICdhY2NvcmRpb24nO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBBY2NvcmRpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5hY2NvcmRpb24sXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24ge1xuICBtYXJnaW46IEBjaGlsZEFjY29yZGlvbk1hcmdpbjtcbiAgcGFkZGluZzogQGNoaWxkQWNjb3JkaW9uUGFkZGluZztcbn1cblxuLyogVGl0bGUgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogRGVmYXVsdCBTdHlsaW5nICovXG4udWkuYWNjb3JkaW9uIC50aXRsZTpub3QoLnVpKSB7XG4gIHBhZGRpbmc6IEB0aXRsZVBhZGRpbmc7XG4gIGZvbnQtZmFtaWx5OiBAdGl0bGVGb250O1xuICBmb250LXNpemU6IEB0aXRsZUZvbnRTaXplO1xuICBjb2xvcjogQHRpdGxlQ29sb3I7XG59XG5cbi8qIENvbnRlbnQgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlIH4gLmNvbnRlbnQsXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIH4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBEZWZhdWx0IFN0eWxpbmcgKi9cbi51aS5hY2NvcmRpb246bm90KC5zdHlsZWQpIC50aXRsZSB+IC5jb250ZW50Om5vdCgudWkpLFxuLnVpLmFjY29yZGlvbjpub3QoLnN0eWxlZCkgLmFjY29yZGlvbiAudGl0bGUgfiAuY29udGVudDpub3QoLnVpKSB7XG4gIG1hcmdpbjogQGNvbnRlbnRNYXJnaW47XG4gIHBhZGRpbmc6IEBjb250ZW50UGFkZGluZztcbn1cbi51aS5hY2NvcmRpb246bm90KC5zdHlsZWQpIC50aXRsZSB+IC5jb250ZW50Om5vdCgudWkpOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuXG4vKiBBcnJvdyAqL1xuLnVpLmFjY29yZGlvbiAudGl0bGUgLmRyb3Bkb3duLmljb24sXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uIHtcbiAgZGlzcGxheTogQGljb25EaXNwbGF5O1xuICBmbG9hdDogQGljb25GbG9hdDtcbiAgb3BhY2l0eTogQGljb25PcGFjaXR5O1xuICB3aWR0aDogQGljb25XaWR0aDtcbiAgaGVpZ2h0OiBAaWNvbkhlaWdodDtcbiAgbWFyZ2luOiBAaWNvbk1hcmdpbjtcbiAgcGFkZGluZzogQGljb25QYWRkaW5nO1xuICBmb250LXNpemU6IEBpY29uRm9udFNpemU7XG4gIHRyYW5zaXRpb246IEBpY29uVHJhbnNpdGlvbjtcbiAgdmVydGljYWwtYWxpZ246IEBpY29uVmVydGljYWxBbGlnbjtcbiAgdHJhbnNmb3JtOiBAaWNvblRyYW5zZm9ybTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBNZW51ICovXG4udWkuYWNjb3JkaW9uLm1lbnUgLml0ZW0gLnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IEBtZW51VGl0bGVQYWRkaW5nO1xufVxuLnVpLmFjY29yZGlvbi5tZW51IC5pdGVtIC50aXRsZSA+IC5kcm9wZG93bi5pY29uIHtcbiAgZmxvYXQ6IEBtZW51SWNvbkZsb2F0O1xuICBtYXJnaW46IEBtZW51SWNvbk1hcmdpbjtcbiAgdHJhbnNmb3JtOiBAbWVudUljb25UcmFuc2Zvcm07XG59XG5cbi8qIEhlYWRlciAqL1xuLnVpLmFjY29yZGlvbiAudWkuaGVhZGVyIC5kcm9wZG93bi5pY29uIHtcbiAgZm9udC1zaXplOiBAaWNvbkZvbnRTaXplO1xuICBtYXJnaW46IEBpY29uTWFyZ2luO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUgLmRyb3Bkb3duLmljb24sXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLmFjdGl2ZS50aXRsZSAuZHJvcGRvd24uaWNvbiB7XG4gIHRyYW5zZm9ybTogQGFjdGl2ZUljb25UcmFuc2Zvcm07XG59XG5cbi51aS5hY2NvcmRpb24ubWVudSAuaXRlbSAuYWN0aXZlLnRpdGxlID4gLmRyb3Bkb3duLmljb24ge1xuICB0cmFuc2Zvcm06IEBhY3RpdmVJY29uVHJhbnNmb3JtO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3R5bGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc3R5bGVkLmFjY29yZGlvbiB7XG4gIHdpZHRoOiBAc3R5bGVkV2lkdGg7XG59XG5cbi51aS5zdHlsZWQuYWNjb3JkaW9uLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIGJvcmRlci1yYWRpdXM6IEBzdHlsZWRCb3JkZXJSYWRpdXM7XG4gIGJhY2tncm91bmQ6IEBzdHlsZWRCYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBAc3R5bGVkQm94U2hhZG93O1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLnRpdGxlLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGUge1xuICBtYXJnaW46IEBzdHlsZWRUaXRsZU1hcmdpbjtcbiAgcGFkZGluZzogQHN0eWxlZFRpdGxlUGFkZGluZztcbiAgY29sb3I6IEBzdHlsZWRUaXRsZUNvbG9yO1xuICBmb250LXdlaWdodDogQHN0eWxlZFRpdGxlRm9udFdlaWdodDtcbiAgYm9yZGVyLXRvcDogQHN0eWxlZFRpdGxlQm9yZGVyO1xuICB0cmFuc2l0aW9uOiBAc3R5bGVkVGl0bGVUcmFuc2l0aW9uO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gPiAudGl0bGU6Zmlyc3QtY2hpbGQsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cblxuLyogQ29udGVudCAqL1xuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmNvbnRlbnQsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5jb250ZW50IHtcbiAgbWFyZ2luOiBAc3R5bGVkQ29udGVudE1hcmdpbjtcbiAgcGFkZGluZzogQHN0eWxlZENvbnRlbnRQYWRkaW5nO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuY29udGVudCB7XG4gIHBhZGRpbmc6IEBzdHlsZWRDaGlsZENvbnRlbnRNYXJnaW47XG4gIHBhZGRpbmc6IEBzdHlsZWRDaGlsZENvbnRlbnRQYWRkaW5nO1xufVxuXG5cbi8qIEhvdmVyICovXG4udWkuc3R5bGVkLmFjY29yZGlvbiAudGl0bGU6aG92ZXIsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGU6aG92ZXIsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiBAc3R5bGVkVGl0bGVIb3ZlckJhY2tncm91bmQ7XG4gIGNvbG9yOiBAc3R5bGVkVGl0bGVIb3ZlckNvbG9yO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGU6aG92ZXIsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiBAc3R5bGVkSG92ZXJDaGlsZFRpdGxlQmFja2dyb3VuZDtcbiAgY29sb3I6IEBzdHlsZWRIb3ZlckNoaWxkVGl0bGVDb2xvcjtcbn1cblxuXG4vKiBBY3RpdmUgKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiBAc3R5bGVkQWN0aXZlVGl0bGVCYWNrZ3JvdW5kO1xuICBjb2xvcjogQHN0eWxlZEFjdGl2ZVRpdGxlQ29sb3I7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiBAc3R5bGVkQWN0aXZlQ2hpbGRUaXRsZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAc3R5bGVkQWN0aXZlQ2hpbGRUaXRsZUNvbG9yO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYWNjb3JkaW9uIC5hY3RpdmUuY29udGVudCxcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZsdWlkLmFjY29yZGlvbixcbi51aS5mbHVpZC5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW52ZXJ0ZWQuYWNjb3JkaW9uIC50aXRsZTpub3QoLnVpKSB7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUaXRsZUNvbG9yO1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG5cbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIENoZWNrYm94XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ21vZHVsZSc7XG5AZWxlbWVudCA6ICdjaGVja2JveCc7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgQ2hlY2tib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG4gIG1pbi1oZWlnaHQ6IEBjaGVja2JveFNpemU7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6IEBjaGVja2JveExpbmVIZWlnaHQ7XG4gIG1pbi13aWR0aDogQGNoZWNrYm94U2l6ZTtcbn1cblxuLyogSFRNTCBDaGVja2JveCAqL1xuLnVpLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi51aS5jaGVja2JveCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiBub25lO1xuICB6LWluZGV4OiAzO1xuICB3aWR0aDogQGNoZWNrYm94U2l6ZTtcbiAgaGVpZ2h0OiBAY2hlY2tib3hTaXplO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJveFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuXG4udWkuY2hlY2tib3ggLmJveCxcbi51aS5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1sZWZ0OiBAbGFiZWxEaXN0YW5jZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgZm9udC1zaXplOiBAbGFiZWxGb250U2l6ZTtcbn1cblxuLnVpLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcblxuICB3aWR0aDogQGNoZWNrYm94U2l6ZTtcbiAgaGVpZ2h0OiBAY2hlY2tib3hTaXplO1xuICBjb250ZW50OiAnJztcblxuICBiYWNrZ3JvdW5kOiBAY2hlY2tib3hCYWNrZ3JvdW5kO1xuICBib3JkZXItcmFkaXVzOiBAY2hlY2tib3hCb3JkZXJSYWRpdXM7XG5cbiAgdHJhbnNpdGlvbjogQGNoZWNrYm94VHJhbnNpdGlvbjtcbiAgYm9yZGVyOiBAY2hlY2tib3hCb3JkZXI7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDaGVja21hcmtcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXNpemU6IEBjaGVja2JveENoZWNrRm9udFNpemU7XG4gIHRvcDogQGNoZWNrYm94Q2hlY2tUb3A7XG4gIGxlZnQ6IEBjaGVja2JveENoZWNrTGVmdDtcbiAgd2lkdGg6IEBjaGVja2JveENoZWNrU2l6ZTtcbiAgaGVpZ2h0OiBAY2hlY2tib3hDaGVja1NpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBvcGFjaXR5OiAwO1xuICBjb2xvcjogQGNoZWNrYm94Q29sb3I7XG4gIHRyYW5zaXRpb246IEBjaGVja2JveFRyYW5zaXRpb247XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBJbnNpZGUgKi9cbi51aS5jaGVja2JveCBsYWJlbCxcbi51aS5jaGVja2JveCArIGxhYmVsIHtcbiAgY29sb3I6IEBsYWJlbENvbG9yO1xuICB0cmFuc2l0aW9uOiBAbGFiZWxUcmFuc2l0aW9uO1xufVxuXG4vKiBPdXRzaWRlICovXG4udWkuY2hlY2tib3ggKyBsYWJlbCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmhvdmVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBAY2hlY2tib3hIb3ZlckJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGNoZWNrYm94SG92ZXJCb3JkZXJDb2xvcjtcbn1cbi51aS5jaGVja2JveCBsYWJlbDpob3Zlcixcbi51aS5jaGVja2JveCArIGxhYmVsOmhvdmVyIHtcbiAgY29sb3I6IEBsYWJlbEhvdmVyQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIERvd25cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jaGVja2JveCAuYm94OmFjdGl2ZTo6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmFjdGl2ZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGNoZWNrYm94UHJlc3NlZEJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGNoZWNrYm94UHJlc3NlZEJvcmRlckNvbG9yO1xufVxuLnVpLmNoZWNrYm94IC5ib3g6YWN0aXZlOjphZnRlcixcbi51aS5jaGVja2JveCBsYWJlbDphY3RpdmU6OmFmdGVyIHtcbiAgY29sb3I6IEBjaGVja2JveFByZXNzZWRDb2xvcjtcbn1cbi51aS5jaGVja2JveCBpbnB1dDphY3RpdmUgfiBsYWJlbCB7XG4gIGNvbG9yOiBAbGFiZWxQcmVzc2VkQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGNoZWNrYm94Rm9jdXNCYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6IEBjaGVja2JveEZvY3VzQm9yZGVyQ29sb3I7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YWZ0ZXIge1xuICBjb2xvcjogQGNoZWNrYm94Rm9jdXNDaGVja0NvbG9yO1xufVxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWwge1xuICBjb2xvcjogQGxhYmVsRm9jdXNDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IEBjaGVja2JveEFjdGl2ZUJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGNoZWNrYm94QWN0aXZlQm9yZGVyQ29sb3I7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogQGNoZWNrYm94QWN0aXZlQ2hlY2tPcGFjaXR5O1xuICBjb2xvcjogQGNoZWNrYm94QWN0aXZlQ2hlY2tDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICBJbmRldGVybWluYXRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGUgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBAY2hlY2tib3hJbmRldGVybWluYXRlQmFja2dyb3VuZDtcbiAgYm9yZGVyLWNvbG9yOiBAY2hlY2tib3hJbmRldGVybWluYXRlQm9yZGVyQ29sb3I7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogQGNoZWNrYm94SW5kZXRlcm1pbmF0ZUNoZWNrT3BhY2l0eTtcbiAgY29sb3I6IEBjaGVja2JveEluZGV0ZXJtaW5hdGVDaGVja0NvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gIEFjdGl2ZSBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGU6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlOmZvY3VzIH4gbGFiZWw6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQ6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkOmZvY3VzIH4gbGFiZWw6YmVmb3JlICB7XG4gIGJhY2tncm91bmQ6IEBjaGVja2JveEFjdGl2ZUZvY3VzQmFja2dyb3VuZDtcbiAgYm9yZGVyLWNvbG9yOiBAY2hlY2tib3hBY3RpdmVGb2N1c0JvcmRlckNvbG9yO1xufVxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGU6Zm9jdXMgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGU6Zm9jdXMgfiBsYWJlbDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkOmZvY3VzIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkOmZvY3VzIH4gbGFiZWw6YWZ0ZXIge1xuICBjb2xvcjogQGNoZWNrYm94QWN0aXZlRm9jdXNDaGVja0NvbG9yO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBSZWFkLU9ubHlcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5yZWFkLW9ubHkuY2hlY2tib3gsXG4udWkucmVhZC1vbmx5LmNoZWNrYm94IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kaXNhYmxlZC5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLmRpc2FibGVkLmNoZWNrYm94IGxhYmVsLFxuLnVpLmNoZWNrYm94IGlucHV0W2Rpc2FibGVkXSB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXRbZGlzYWJsZWRdIH4gbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogQGRpc2FibGVkQ2hlY2tib3hPcGFjaXR5O1xuICBjb2xvcjogQGRpc2FibGVkQ2hlY2tib3hMYWJlbENvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEhpZGRlblxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogSW5pdGlhbGl6ZWQgY2hlY2tib3ggbW92ZXMgaW5wdXQgYmVsb3cgZWxlbWVudFxuIHRvIHByZXZlbnQgbWFudWFsbHkgdHJpZ2dlcmluZyAqL1xuLnVpLmNoZWNrYm94IGlucHV0LmhpZGRlbiB7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4vKiBTZWxlY3RhYmxlIExhYmVsICovXG4udWkuY2hlY2tib3ggaW5wdXQuaGlkZGVuICsgbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSYWRpb1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnJhZGlvLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogQHJhZGlvU2l6ZTtcbn1cblxuLnVpLnJhZGlvLmNoZWNrYm94IC5ib3gsXG4udWkucmFkaW8uY2hlY2tib3ggbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IEByYWRpb0xhYmVsRGlzdGFuY2U7XG59XG5cbi8qIEJveCAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuLnVpLnJhZGlvLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2Zvcm06IG5vbmU7XG5cbiAgd2lkdGg6IEByYWRpb1NpemU7XG4gIGhlaWdodDogQHJhZGlvU2l6ZTtcbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xuICB0b3A6IEByYWRpb1RvcDtcbiAgbGVmdDogQHJhZGlvTGVmdDtcbn1cblxuLyogQnVsbGV0ICovXG4udWkucmFkaW8uY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBsYWJlbDphZnRlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29udGVudDogJycgIWltcG9ydGFudDtcbiAgd2lkdGg6IEByYWRpb1NpemU7XG4gIGhlaWdodDogQHJhZGlvU2l6ZTtcbiAgbGluZS1oZWlnaHQ6IEByYWRpb1NpemU7XG59XG5cbi8qIFJhZGlvIENoZWNrYm94ICovXG4udWkucmFkaW8uY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBsYWJlbDphZnRlciB7XG4gIHRvcDogQGJ1bGxldFRvcDtcbiAgbGVmdDogQGJ1bGxldExlZnQ7XG4gIHdpZHRoOiBAcmFkaW9TaXplO1xuICBoZWlnaHQ6IEByYWRpb1NpemU7XG4gIGJvcmRlci1yYWRpdXM6IEBidWxsZXRSYWRpdXM7XG4gIHRyYW5zZm9ybTogc2NhbGUoQGJ1bGxldFNjYWxlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJ1bGxldENvbG9yO1xufVxuXG4vKiBGb2N1cyAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmFkaW9Gb2N1c0JhY2tncm91bmQ7XG59XG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmFkaW9Gb2N1c0J1bGxldENvbG9yO1xufVxuXG4vKiBJbmRldGVybWluYXRlICovXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLyogQWN0aXZlICovXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmFkaW9BY3RpdmVCYWNrZ3JvdW5kO1xufVxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEByYWRpb0FjdGl2ZUJ1bGxldENvbG9yO1xufVxuXG4vKiBBY3RpdmUgRm9jdXMgKi9cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEByYWRpb0FjdGl2ZUZvY3VzQmFja2dyb3VuZDtcbn1cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmFkaW9BY3RpdmVGb2N1c0J1bGxldENvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNsaWRlclxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnNsaWRlci5jaGVja2JveCB7XG4gIG1pbi1oZWlnaHQ6IEBzbGlkZXJIZWlnaHQ7XG59XG5cbi8qIElucHV0ICovXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0IHtcbiAgd2lkdGg6IEBzbGlkZXJXaWR0aDtcbiAgaGVpZ2h0OiBAc2xpZGVySGVpZ2h0O1xufVxuXG4vKiBMYWJlbCAqL1xuLnVpLnNsaWRlci5jaGVja2JveCAuYm94LFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogQHNsaWRlckxhYmVsRGlzdGFuY2U7XG4gIGxpbmUtaGVpZ2h0OiBAc2xpZGVyTGFiZWxMaW5lSGVpZ2h0O1xuICBjb2xvcjogQHNsaWRlck9mZkxhYmVsQ29sb3I7XG59XG5cbi8qIExpbmUgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDpiZWZvcmUsXG4udWkuc2xpZGVyLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwZW07XG4gIHotaW5kZXg6IDE7XG5cbiAgdG9wOiBAc2xpZGVyTGluZVZlcnRpY2FsT2Zmc2V0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6IEBzbGlkZXJMaW5lQ29sb3I7XG4gIHdpZHRoOiBAc2xpZGVyTGluZVdpZHRoO1xuICBoZWlnaHQ6IEBzbGlkZXJMaW5lSGVpZ2h0O1xuXG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogQHNsaWRlckxpbmVSYWRpdXM7XG4gIHRyYW5zaXRpb246IEBzbGlkZXJMaW5lVHJhbnNpdGlvbjtcblxufVxuXG4vKiBIYW5kbGUgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBAaGFuZGxlQmFja2dyb3VuZDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJyAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xuICB6LWluZGV4OiAyO1xuXG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogQGhhbmRsZUJveFNoYWRvdztcbiAgd2lkdGg6IEBzbGlkZXJIYW5kbGVTaXplO1xuICBoZWlnaHQ6IEBzbGlkZXJIYW5kbGVTaXplO1xuICB0b3A6IEBzbGlkZXJIYW5kbGVPZmZzZXQ7XG4gIGxlZnQ6IDBlbTtcbiAgdHJhbnNmb3JtOiBub25lO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBjaXJjdWxhclJhZGl1cztcbiAgdHJhbnNpdGlvbjogQHNsaWRlckhhbmRsZVRyYW5zaXRpb247XG59XG5cbi8qIEZvY3VzICovXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRvZ2dsZUZvY3VzQ29sb3I7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLyogSG92ZXIgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDpob3Zlcixcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWw6aG92ZXIge1xuICBjb2xvcjogQHNsaWRlckhvdmVyTGFiZWxDb2xvcjtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQHNsaWRlckhvdmVyTGFuZUJhY2tncm91bmQ7XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IEBzbGlkZXJPbkxhYmVsQ29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHNsaWRlck9uTGluZUNvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBsZWZ0OiBAc2xpZGVyVHJhdmVsRGlzdGFuY2U7XG59XG5cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IEBzbGlkZXJPbkZvY3VzTGFiZWxDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkuc2xpZGVyLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2xpZGVyT25Gb2N1c0xpbmVDb2xvciAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVG9nZ2xlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkudG9nZ2xlLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogQHRvZ2dsZUhlaWdodDtcbn1cblxuLyogSW5wdXQgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQge1xuICB3aWR0aDogQHRvZ2dsZVdpZHRoO1xuICBoZWlnaHQ6IEB0b2dnbGVIZWlnaHQ7XG59XG5cbi8qIExhYmVsICovXG4udWkudG9nZ2xlLmNoZWNrYm94IC5ib3gsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsIHtcbiAgbWluLWhlaWdodDogQHRvZ2dsZUhhbmRsZVNpemU7XG4gIHBhZGRpbmctbGVmdDogQHRvZ2dsZUxhYmVsRGlzdGFuY2U7XG4gIGNvbG9yOiBAdG9nZ2xlT2ZmTGFiZWxDb2xvcjtcbn1cbi51aS50b2dnbGUuY2hlY2tib3ggbGFiZWwge1xuICBwYWRkaW5nLXRvcDogQHRvZ2dsZUxhYmVsT2Zmc2V0O1xufVxuXG4vKiBTd2l0Y2ggKi9cbi51aS50b2dnbGUuY2hlY2tib3ggLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcblxuICB0b3A6IEB0b2dnbGVMYW5lVmVydGljYWxPZmZzZXQ7XG5cbiAgYmFja2dyb3VuZDogQHRvZ2dsZUxhbmVCYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBAdG9nZ2xlTGFuZUJveFNoYWRvdztcbiAgd2lkdGg6IEB0b2dnbGVMYW5lV2lkdGg7XG4gIGhlaWdodDogQHRvZ2dsZUxhbmVIZWlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IEB0b2dnbGVIYW5kbGVSYWRpdXM7XG59XG5cbi8qIEhhbmRsZSAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBsYWJlbDphZnRlciB7XG4gIGJhY2tncm91bmQ6IEBoYW5kbGVCYWNrZ3JvdW5kO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDI7XG5cbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBAaGFuZGxlQm94U2hhZG93O1xuICB3aWR0aDogQHRvZ2dsZUhhbmRsZVNpemU7XG4gIGhlaWdodDogQHRvZ2dsZUhhbmRsZVNpemU7XG4gIHRvcDogQHRvZ2dsZUhhbmRsZU9mZnNldDtcbiAgbGVmdDogMGVtO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBjaXJjdWxhclJhZGl1cztcbiAgdHJhbnNpdGlvbjogQHRvZ2dsZUhhbmRsZVRyYW5zaXRpb247XG59XG5cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQgfiAuYm94OmFmdGVyLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dCB+IGxhYmVsOmFmdGVyIHtcbiAgbGVmdDogQHRvZ2dsZU9mZk9mZnNldDtcbiAgYm94LXNoYWRvdzogQHRvZ2dsZU9mZkhhbmRsZUJveFNoYWRvdztcbn1cblxuLyogRm9jdXMgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiAuYm94OmJlZm9yZSxcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdG9nZ2xlRm9jdXNDb2xvcjtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCAuYm94OmhvdmVyOjpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsOmhvdmVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdG9nZ2xlSG92ZXJDb2xvcjtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4vKiBBY3RpdmUgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3gsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbCB7XG4gIGNvbG9yOiBAdG9nZ2xlT25MYWJlbENvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0b2dnbGVPbkxhbmVDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgbGVmdDogQHRvZ2dsZU9uT2Zmc2V0O1xuICBib3gtc2hhZG93OiBAdG9nZ2xlT25IYW5kbGVCb3hTaGFkb3c7XG59XG5cblxuLyogQWN0aXZlIEZvY3VzICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94LFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWwge1xuICBjb2xvcjogQHRvZ2dsZU9uRm9jdXNMYWJlbENvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0b2dnbGVPbkZvY3VzTGFuZUNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZpdHRlZC5jaGVja2JveCAuYm94LFxuLnVpLmZpdHRlZC5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG59XG5cbi51aS5maXR0ZWQudG9nZ2xlLmNoZWNrYm94LFxuLnVpLmZpdHRlZC50b2dnbGUuY2hlY2tib3gge1xuICB3aWR0aDogQHRvZ2dsZVdpZHRoO1xufVxuXG4udWkuZml0dGVkLnNsaWRlci5jaGVja2JveCxcbi51aS5maXR0ZWQuc2xpZGVyLmNoZWNrYm94IHtcbiAgd2lkdGg6IEBzbGlkZXJXaWR0aDtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBXZSBuZWVkIHRvIGltcG9ydCB0aGUgYHRoZW1lcy9kZWZhdWx0L21vZHVsZXMvY2hlY2tib3gub3ZlcnJpZGVzYCBpbiBvcmRlciB0byBtYWtlIHRoZSBjaGVja2JveCB3b3JraW5nIHByb3Blcmx5LlxuICAgVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBTVUkgaXMgcmVseWluZyBleHBsaWNpdGx5IHRvIHlvdXIgY3VzdG9tIHRoZW1lJ3MgYDxjb21wb25lbnQ+Lm92ZXJyaWRlc2AuXG4gICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1NlbWFudGljLU9yZy9TZW1hbnRpYy1VSS9ibG9iL21hc3Rlci9zcmMvdGhlbWUubGVzcyNMNTlcbiovXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NoZWNrYm94JztcbiAgc3JjOlxuICAgIHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZzhTQkQ4QUFBQzhBQUFBWUdOdFlYQVlWdENKQUFBQkhBQUFBRlJuWVhOd0FBQUFFQUFBQVhBQUFBQUlaMng1Wm40aHV3VUFBQUY0QUFBQllHaGxZV1FHUGUxWkFBQUMyQUFBQURab2FHVmhCMzBEeUFBQUF4QUFBQUFrYUcxMGVCQktBRVVBQUFNMEFBQUFIR3h2WTJFQW1nRVNBQUFEVUFBQUFCQnRZWGh3QUFrQUx3QUFBMkFBQUFBZ2JtRnRaU0M4SXVnQUFBT0FBQUFCa25CdmMzUUFBd0FBQUFBRkZBQUFBQ0FBQXdNVEFaQUFCUUFBQXBrQ3pBQUFBSThDbVFMTUFBQUI2d0F6QVFrQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEb0FnUEEvOEFBUUFQQUFFQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFEQUFBQUF3QUFBQndBQVFBREFBQUFIQUFEQUFFQUFBQWNBQVFBT0FBQUFBb0FDQUFDQUFJQUFRQWc2QUwvL2YvL0FBQUFBQUFnNkFELy9mLy9BQUgvNHhnRUFBTUFBUUFBQUFBQUFBQUFBQUFBQVFBQi8vOEFEd0FCQUFBQUFBQUFBQUFBQWdBQU56a0JBQUFBQUFFQUFBQUFBQUFBQUFBQ0FBQTNPUUVBQUFBQUFRQUFBQUFBQUFBQUFBSUFBRGM1QVFBQUFBQUJBRVVBVVFPN0F2Z0FHZ0FBQVJRSEFRWWpJaWNCSmpVMFB3RTJNeklmQVFFMk16SWZBUllWQTdzUS9oUVFGaGNRL3VNUUVFNFFGeGNRcUFGMkVCY1hFRTRRQW5NV0VQNFVFQkFCSFJBWEZoQk9FQkNvQVhjUUVFNFFGd0FBQUFBQkFBQUJiZ01sQWtrQUZBQUFBUlVVQndZaklTSW5KajBCTkRjMk15RXlGeFlWQXlVUUVCZjlTUmNRRUJBUUZ3SzNGeEFRQWhKdEZ4QVFFQkFYYlJjUUVCQVFGd0FBQUFBQkFBQUFTUU1sQTI0QUxBQUFBUlVVQndZckFSVVVCd1lyQVNJbkpqMEJJeUluSmowQk5EYzJPd0UxTkRjMk93RXlGeFlkQVRNeUZ4WVZBeVVRRUJmdUVCQVhiaFlRRU80WEVCQVFFQmZ1RUJBV2JoY1FFTzRYRUJBQ0VtMFhFQkR1RnhBUUVCQVg3aEFRRjIwWEVCRHVGeEFRRUJBWDdoQVFGd0FBQVFBQUFBSUFBSFJTelQ5ZkR6ejFBQXNFQUFBQUFBRFJzZFIzQUFBQUFOR3gxSGNBQUFBQUE3c0RiZ0FBQUFnQUFnQUFBQUFBQUFBQkFBQUR3UC9BQUFBRUFBQUFBQUFEdXdBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQndRQUFBQUFBQUFBQUFBQUFBSUFBQUFFQUFCRkF5VUFBQU1sQUFBQUFBQUFBQW9BRkFBZUFFNEFjZ0N3QUFFQUFBQUhBQzBBQVFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUs0QUFRQUFBQUFBQVFBSUFBQUFBUUFBQUFBQUFnQUhBR2tBQVFBQUFBQUFBd0FJQURrQUFRQUFBQUFBQkFBSUFINEFBUUFBQUFBQUJRQUxBQmdBQVFBQUFBQUFCZ0FJQUZFQUFRQUFBQUFBQ2dBYUFKWUFBd0FCQkFrQUFRQVFBQWdBQXdBQkJBa0FBZ0FPQUhBQUF3QUJCQWtBQXdBUUFFRUFBd0FCQkFrQUJBQVFBSVlBQXdBQkJBa0FCUUFXQUNNQUF3QUJCQWtBQmdBUUFGa0FBd0FCQkFrQUNnQTBBTEJEYUdWamEySnZlQUJEQUdnQVpRQmpBR3NBWWdCdkFIaFdaWEp6YVc5dUlESXVNQUJXQUdVQWNnQnpBR2tBYndCdUFDQUFNZ0F1QURCRGFHVmphMkp2ZUFCREFHZ0FaUUJqQUdzQVlnQnZBSGhEYUdWamEySnZlQUJEQUdnQVpRQmpBR3NBWWdCdkFIaFNaV2QxYkdGeUFGSUFaUUJuQUhVQWJBQmhBSEpEYUdWamEySnZlQUJEQUdnQVpRQmpBR3NBWWdCdkFIaEdiMjUwSUdkbGJtVnlZWFJsWkNCaWVTQkpZMjlOYjI5dUxnQkdBRzhBYmdCMEFDQUFad0JsQUc0QVpRQnlBR0VBZEFCbEFHUUFJQUJpQUhrQUlBQkpBR01BYndCTkFHOEFid0J1QUM0QUFBQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBKSBmb3JtYXQoJ3RydWV0eXBlJylcbiAgO1xufVxuXG4vKiBDaGVja21hcmsgKi9cbi51aS5jaGVja2JveCBsYWJlbDphZnRlcixcbi51aS5jaGVja2JveCAuYm94OmFmdGVyIHtcbiAgZm9udC1mYW1pbHk6ICdDaGVja2JveCc7XG59XG5cbi8qIENoZWNrZWQgKi9cbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxlODAwJztcbn1cblxuLyogSW5kZXRlcm1pbmF0ZSAqL1xuLnVpLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiBsYWJlbDphZnRlciB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29udGVudDogJ1xcZTgwMSc7XG59XG5cblxuLyogIFVURiBSZWZlcmVuY2Vcbi5jaGVjazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAwJzsgfVxuLmRhc2g6YmVmb3JlICB7IGNvbnRlbnQ6ICdcXGU4MDEnOyB9XG4ucGx1czpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAyJzsgfVxuKi9cbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIERpbW1lclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdtb2R1bGUnO1xuQGVsZW1lbnQgOiAnZGltbWVyJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGltbWVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4uZGltbWFibGU6bm90KGJvZHkpIHtcbiAgcG9zaXRpb246IEBkaW1tYWJsZVBvc2l0aW9uO1xufVxuXG4udWkuZGltbWVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IEBkaW1tZXJQb3NpdGlvbjtcbiAgdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgbGVmdDogMGVtICFpbXBvcnRhbnQ7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcblxuICB0ZXh0LWFsaWduOiBAdGV4dEFsaWduO1xuICB2ZXJ0aWNhbC1hbGlnbjogQHZlcnRpY2FsQWxpZ247XG4gIHBhZGRpbmc6IEBwYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kQ29sb3I7XG4gIG9wYWNpdHk6IEBoaWRkZW5PcGFjaXR5O1xuICBsaW5lLWhlaWdodDogQGxpbmVIZWlnaHQ7XG5cbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiBAZHVyYXRpb247XG4gIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgei1pbmRleDogQHpJbmRleDtcbn1cblxuLyogRGltbWVyIENvbnRlbnQgKi9cbi51aS5kaW1tZXIgPiAuY29udGVudCB7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xuICBjb2xvcjogQHRleHRDb2xvcjtcbn1cblxuXG4vKiBMb29zZSBDb3VwbGluZyAqL1xuLnVpLnNlZ21lbnQgPiAudWkuZGltbWVyIHtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4vKiBTY3JvbGxiYXJzICovXG4uYWRkU2Nyb2xsYmFycygpIHdoZW4gKEB1c2VDdXN0b21TY3JvbGxiYXJzKSB7XG4gIC51aS5kaW1tZXI6bm90KC5pbnZlcnRlZCk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiBAdHJhY2tJbnZlcnRlZEJhY2tncm91bmQ7XG4gIH1cbiAgLnVpLmRpbW1lcjpub3QoLmludmVydGVkKTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IEB0aHVtYkludmVydGVkQmFja2dyb3VuZDtcbiAgfVxuICAudWkuZGltbWVyOm5vdCguaW52ZXJ0ZWQpOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp3aW5kb3ctaW5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IEB0aHVtYkludmVydGVkSW5hY3RpdmVCYWNrZ3JvdW5kO1xuICB9XG4gIC51aS5kaW1tZXI6bm90KC5pbnZlcnRlZCk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBAdGh1bWJJbnZlcnRlZEhvdmVyQmFja2dyb3VuZDtcbiAgfVxufVxuLmFkZFNjcm9sbGJhcnMoKTtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogQW5pbWF0aW5nICovXG4uYW5pbWF0aW5nLmRpbW1hYmxlOm5vdChib2R5KSxcbi5kaW1tZWQuZGltbWFibGU6bm90KGJvZHkpIHtcbiAgb3ZlcmZsb3c6IEBvdmVyZmxvdztcbn1cblxuLyogQW5pbWF0aW5nIC8gQWN0aXZlIC8gVmlzaWJsZSAqL1xuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS5hbmltYXRpbmcuZGltbWVyLFxuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS52aXNpYmxlLmRpbW1lcixcbi51aS5hY3RpdmUuZGltbWVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3BhY2l0eTogQHZpc2libGVPcGFjaXR5O1xufVxuXG4vKiBEaXNhYmxlZCAqL1xuLnVpLmRpc2FibGVkLmRpbW1lciB7XG4gIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIExlZ2FjeVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogQW5pbWF0aW5nIC8gQWN0aXZlIC8gVmlzaWJsZSAqL1xuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS5hbmltYXRpbmcubGVnYWN5LmRpbW1lcixcbi5kaW1tZWQuZGltbWFibGUgPiAudWkudmlzaWJsZS5sZWdhY3kuZGltbWVyLFxuLnVpLmFjdGl2ZS5sZWdhY3kuZGltbWVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBbGlnbm1lbnRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aVtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5kaW1tZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uZGltbWVyIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnBhZ2UuZGltbWVyIHtcbiAgcG9zaXRpb246IEBwYWdlRGltbWVyUG9zaXRpb247XG4gIHRyYW5zZm9ybS1zdHlsZTogQHRyYW5zZm9ybVN0eWxlO1xuICBwZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuXG5ib2R5LmFuaW1hdGluZy5pbi5kaW1tYWJsZSxcbmJvZHkuZGltbWVkLmRpbW1hYmxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuYm9keS5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBCbHVycmluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLmJsdXJyaW5nLmRpbW1hYmxlID4gOm5vdCguZGltbWVyKSB7XG4gIGZpbHRlcjogQGJsdXJyZWRTdGFydEZpbHRlcjtcbiAgdHJhbnNpdGlvbjogQGJsdXJyZWRUcmFuc2l0aW9uO1xufVxuLmJsdXJyaW5nLmRpbW1lZC5kaW1tYWJsZSA+IDpub3QoLmRpbW1lcikge1xuICBmaWx0ZXI6IEBibHVycmVkRW5kRmlsdGVyO1xufVxuXG4vKiBEaW1tZXIgQ29sb3IgKi9cbi5ibHVycmluZy5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmx1cnJlZEJhY2tncm91bmRDb2xvcjtcbn1cbi5ibHVycmluZy5kaW1tYWJsZSA+IC5pbnZlcnRlZC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmx1cnJlZEludmVydGVkQmFja2dyb3VuZENvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRpbW1lciA+IC50b3AuYWxpZ25lZC5jb250ZW50ID4gKiB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkuZGltbWVyID4gLmJvdHRvbS5hbGlnbmVkLmNvbnRlbnQgPiAqIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW52ZXJ0ZWQuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGludmVydGVkQmFja2dyb3VuZENvbG9yO1xufVxuLnVpLmludmVydGVkLmRpbW1lciA+IC5jb250ZW50ID4gKiB7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRUZXh0Q29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2ltcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBEaXNwbGF5cyB3aXRob3V0IGphdmFzY3JpcHQgKi9cbi51aS5zaW1wbGUuZGltbWVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAwJTtcbiAgei1pbmRleDogLTEwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHNpbXBsZVN0YXJ0QmFja2dyb3VuZENvbG9yO1xufVxuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS5zaW1wbGUuZGltbWVyIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBzaW1wbGVFbmRCYWNrZ3JvdW5kQ29sb3I7XG4gIHotaW5kZXg6IEBzaW1wbGVaSW5kZXg7XG59XG5cbi51aS5zaW1wbGUuaW52ZXJ0ZWQuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHNpbXBsZUludmVydGVkU3RhcnRCYWNrZ3JvdW5kQ29sb3I7XG59XG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLnNpbXBsZS5pbnZlcnRlZC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2ltcGxlSW52ZXJ0ZWRFbmRCYWNrZ3JvdW5kQ29sb3I7XG59XG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIERyb3Bkb3duXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAnbW9kdWxlJztcbkBlbGVtZW50IDogJ2Ryb3Bkb3duJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRHJvcGRvd25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5kcm9wZG93biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xuXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kcm9wZG93biAubWVudSB7XG4gIGN1cnNvcjogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICB0b3A6IDEwMCU7XG4gIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XG4gIHRyYW5zaXRpb246IEBtZW51VHJhbnNpdGlvbjtcblxuICBtYXJnaW46IEBtZW51TWFyZ2luO1xuICBwYWRkaW5nOiBAbWVudVBhZGRpbmc7XG4gIGJhY2tncm91bmQ6IEBtZW51QmFja2dyb3VuZDtcblxuICBmb250LXNpemU6IEByZWxhdGl2ZU1lZGl1bTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtYWxpZ246IEBtZW51VGV4dEFsaWduO1xuXG4gIGJveC1zaGFkb3c6IEBtZW51Qm94U2hhZG93O1xuICBib3JkZXI6IEBtZW51Qm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAbWVudUJvcmRlclJhZGl1cztcbiAgdHJhbnNpdGlvbjogQG1lbnVUcmFuc2l0aW9uO1xuICB6LWluZGV4OiBAbWVudVpJbmRleDtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cblxuLnVpLmRyb3Bkb3duIC5tZW51ID4gKiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICBIaWRkZW4gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kcm9wZG93biA+IGlucHV0Om5vdCguc2VhcmNoKTpmaXJzdC1jaGlsZCxcbi51aS5kcm9wZG93biA+IHNlbGVjdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuIERyb3Bkb3duIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgZm9udC1zaXplOiBAZHJvcGRvd25JY29uU2l6ZTtcbiAgbWFyZ2luOiBAZHJvcGRvd25JY29uTWFyZ2luO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gLmRyb3Bkb3duLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IEBpdGVtRHJvcGRvd25JY29uRmxvYXQ7XG4gIG1hcmdpbjogQGl0ZW1Ecm9wZG93bkljb25NYXJnaW47XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSAuZHJvcGRvd24uaWNvbiArIC50ZXh0IHtcbiAgbWFyZ2luLXJpZ2h0OiBAaXRlbURyb3Bkb3duSWNvbkRpc3RhbmNlO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFRleHRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kcm9wZG93biA+IC50ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2l0aW9uOiBAdGV4dFRyYW5zaXRpb247XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNZW51IEl0ZW1cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IEBpdGVtQm9yZGVyO1xuICBoZWlnaHQ6IEBpdGVtSGVpZ2h0O1xuICB0ZXh0LWFsaWduOiBAaXRlbVRleHRBbGlnbjtcblxuICBib3JkZXItdG9wOiBAaXRlbURpdmlkZXI7XG4gIGxpbmUtaGVpZ2h0OiBAaXRlbUxpbmVIZWlnaHQ7XG4gIGZvbnQtc2l6ZTogQGl0ZW1Gb250U2l6ZTtcbiAgY29sb3I6IEBpdGVtQ29sb3I7XG5cbiAgcGFkZGluZzogQGl0ZW1QYWRkaW5nICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogQGl0ZW1Gb250U2l6ZTtcbiAgdGV4dC10cmFuc2Zvcm06IEBpdGVtVGV4dFRyYW5zZm9ybTtcbiAgZm9udC13ZWlnaHQ6IEBpdGVtRm9udFdlaWdodDtcbiAgYm94LXNoYWRvdzogQGl0ZW1Cb3hTaGFkb3c7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gIEZsb2F0ZWQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiBAZmxvYXRlZERpc3RhbmNlICFpbXBvcnRhbnQ7XG59XG4udWkuZHJvcGRvd24gPiAudGV4dCA+IFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0sXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IEBmbG9hdGVkRGlzdGFuY2UgIWltcG9ydGFudDtcbn1cblxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gLmljb24uZmxvYXRlZCxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IC5mbGFnLmZsb2F0ZWQsXG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiAuaW1hZ2UuZmxvYXRlZCxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IGltZy5mbG9hdGVkIHtcbiAgbWFyZ2luLXRvcDogQGl0ZW1MaW5lSGVpZ2h0T2Zmc2V0O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgTWVudSBEaXZpZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaGVhZGVyIHtcbiAgbWFyZ2luOiBAbWVudUhlYWRlck1hcmdpbjtcbiAgcGFkZGluZzogQG1lbnVIZWFkZXJQYWRkaW5nO1xuICBjb2xvcjogQG1lbnVIZWFkZXJDb2xvcjtcbiAgZm9udC1zaXplOiBAbWVudUhlYWRlckZvbnRTaXplO1xuICBmb250LXdlaWdodDogQG1lbnVIZWFkZXJGb250V2VpZ2h0O1xuICB0ZXh0LXRyYW5zZm9ybTogQG1lbnVIZWFkZXJUZXh0VHJhbnNmb3JtO1xufVxuXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuZGl2aWRlciB7XG4gIGJvcmRlci10b3A6IEBtZW51RGl2aWRlckJvcmRlcjtcbiAgaGVpZ2h0OiAwZW07XG4gIG1hcmdpbjogQG1lbnVEaXZpZGVyTWFyZ2luO1xufVxuXG4udWkuZHJvcGRvd24uZHJvcGRvd24gLm1lbnUgPiAuaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiBAbWVudUlucHV0TWFyZ2luO1xuICBtaW4td2lkdGg6IEBtZW51SW5wdXRNaW5XaWR0aDtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5oZWFkZXIgKyAuaW5wdXQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaW5wdXQ6bm90KC50cmFuc3BhcmVudCkgaW5wdXQge1xuICBwYWRkaW5nOiBAbWVudUlucHV0UGFkZGluZztcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pbnB1dDpub3QoLnRyYW5zcGFyZW50KSAuYnV0dG9uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0Om5vdCgudHJhbnNwYXJlbnQpIC5pY29uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0Om5vdCgudHJhbnNwYXJlbnQpIC5sYWJlbCB7XG4gIHBhZGRpbmctdG9wOiBAbWVudUlucHV0VmVydGljYWxQYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogQG1lbnVJbnB1dFZlcnRpY2FsUGFkZGluZztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICBJdGVtIERlc2NyaXB0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuZGVzY3JpcHRpb24sXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5kZXNjcmlwdGlvbiB7XG4gIGZsb2F0OiBAaXRlbURlc2NyaXB0aW9uRmxvYXQ7XG4gIG1hcmdpbjogQGl0ZW1EZXNjcmlwdGlvbk1hcmdpbjtcbiAgY29sb3I6IEBpdGVtRGVzY3JpcHRpb25Db2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIE1lc3NhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZHJvcGRvd24gLm1lbnUgPiAubWVzc2FnZSB7XG4gIHBhZGRpbmc6IEBtZXNzYWdlUGFkZGluZztcbiAgZm9udC13ZWlnaHQ6IEBtZXNzYWdlRm9udFdlaWdodDtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5tZXNzYWdlOm5vdCgudWkpIHtcbiAgY29sb3I6IEBtZXNzYWdlQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdWIgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRyb3Bkb3duIC5tZW51IC5tZW51IHtcbiAgdG9wOiBAc3ViTWVudVRvcCAhaW1wb3J0YW50O1xuICBsZWZ0OiBAc3ViTWVudUxlZnQ7XG4gIHJpZ2h0OiBAc3ViTWVudVJpZ2h0O1xuICBtYXJnaW46IEBzdWJNZW51TWFyZ2luICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IEBzdWJNZW51Qm9yZGVyUmFkaXVzICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IEBzdWJNZW51WkluZGV4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhpZGUgQXJyb3cgKi9cbi51aS5kcm9wZG93biAubWVudSAubWVudTphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFN1YiBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogSWNvbnMgLyBGbGFncyAvIExhYmVscyAvIEltYWdlICovXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pY29uLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAubGFiZWwsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5mbGFnLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBpbWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pbWFnZSB7XG4gIG1hcmdpbi10b3A6IEB0ZXh0TGluZUhlaWdodE9mZnNldDtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmljb24sXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5sYWJlbCxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmZsYWcsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gaW1nICB7XG4gIG1hcmdpbi10b3A6IEBpdGVtTGluZUhlaWdodE9mZnNldDtcbn1cblxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaWNvbixcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmxhYmVsLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuZmxhZyxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gaW1nLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAubGFiZWwsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5mbGFnLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IGltZyAge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBmbG9hdDogQGl0ZW1FbGVtZW50RmxvYXQ7XG4gIG1hcmdpbi1yaWdodDogQGl0ZW1FbGVtZW50RGlzdGFuY2U7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gaW1nLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogQG1lbnVJbWFnZVZlcnRpY2FsTWFyZ2luO1xuICBtYXJnaW4tYm90dG9tOiBAbWVudUltYWdlVmVydGljYWxNYXJnaW47XG4gIG1heC1oZWlnaHQ6IEBtZW51SW1hZ2VNYXhIZWlnaHQ7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFJlbW92ZSBNZW51IEl0ZW0gRGl2aWRlciAqL1xuLnVpLmRyb3Bkb3duIC51aS5tZW51ID4gLml0ZW06YmVmb3JlLFxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogUHJldmVudCBNZW51IEl0ZW0gQm9yZGVyICovXG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG5cbi8qIEF1dG9tYXRpY2FsbHkgZmxvYXQgZHJvcGRvd24gbWVudSByaWdodCBvbiBsYXN0IG1lbnUgaXRlbSAqL1xuLnVpLm1lbnUgLnJpZ2h0Lm1lbnUgLmRyb3Bkb3duOmxhc3QtY2hpbGQgLm1lbnUsXG4udWkubWVudSAucmlnaHQuZHJvcGRvd24uaXRlbSAubWVudSxcbi51aS5idXR0b25zID4gLnVpLmRyb3Bkb3duOmxhc3QtY2hpbGQgLm1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMGVtO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogRHJvcGRvd24gTWVudSAqL1xuLnVpLmxhYmVsLmRyb3Bkb3duIC5tZW51IHtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogTm8gTWFyZ2luIE9uIEljb24gQnV0dG9uICovXG4udWkuZHJvcGRvd24uaWNvbi5idXR0b24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmJ1dHRvbi5kcm9wZG93biAubWVudSB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cblxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU2VsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBEaXNwbGF5cyBsaWtlIGEgc2VsZWN0IGJveCAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBvdXRsaW5lOiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XG5cbiAgbWluLXdpZHRoOiBAc2VsZWN0aW9uTWluV2lkdGg7XG4gIG1pbi1oZWlnaHQ6IEBzZWxlY3Rpb25NaW5IZWlnaHQ7XG5cbiAgYmFja2dyb3VuZDogQHNlbGVjdGlvbkJhY2tncm91bmQ7XG4gIGRpc3BsYXk6IEBzZWxlY3Rpb25EaXNwbGF5O1xuICBwYWRkaW5nOiBAc2VsZWN0aW9uUGFkZGluZztcbiAgY29sb3I6IEBzZWxlY3Rpb25UZXh0Q29sb3I7XG4gIGJveC1zaGFkb3c6IEBzZWxlY3Rpb25Cb3hTaGFkb3c7XG4gIGJvcmRlcjogQHNlbGVjdGlvbkJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQHNlbGVjdGlvbkJvcmRlclJhZGl1cztcbiAgdHJhbnNpdGlvbjogQHNlbGVjdGlvblRyYW5zaXRpb247XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLnZpc2libGUsXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLmFjdGl2ZSB7XG4gIHotaW5kZXg6IEBzZWxlY3Rpb25aSW5kZXg7XG59XG5cbnNlbGVjdC51aS5kcm9wZG93biB7XG4gIGhlaWdodDogQHNlbGVjdEhlaWdodDtcbiAgcGFkZGluZzogQHNlbGVjdFBhZGRpbmc7XG4gIGJvcmRlcjogQHNlbGVjdEJvcmRlcjtcbiAgdmlzaWJpbGl0eTogQHNlbGVjdFZpc2liaWxpdHk7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duID4gLnNlYXJjaC5pY29uLFxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kZWxldGUuaWNvbixcbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBsaW5lLWhlaWdodDogQHNlYXJjaFNlbGVjdGlvbkxpbmVIZWlnaHQ7XG4gIHRvcDogQHNlbGVjdGlvblZlcnRpY2FsUGFkZGluZztcbiAgcmlnaHQ6IEBzZWxlY3Rpb25Ib3Jpem9udGFsUGFkZGluZztcbiAgei1pbmRleDogQHNlbGVjdGlvbkljb25aSW5kZXg7XG4gIG1hcmdpbjogQHNlbGVjdGlvbkljb25NYXJnaW47XG4gIHBhZGRpbmc6IEBzZWxlY3Rpb25JY29uUGFkZGluZztcbiAgb3BhY2l0eTogQHNlbGVjdGlvbkljb25PcGFjaXR5O1xuICB0cmFuc2l0aW9uOiBAc2VsZWN0aW9uSWNvblRyYW5zaXRpb247XG59XG5cbi8qIENvbXBhY3QgKi9cbi51aS5jb21wYWN0LnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIG1pbi13aWR0aDogIDBweDtcbn1cblxuLyogIFNlbGVjdGlvbiBNZW51ICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBvdXRsaW5lOiBub25lO1xuICBtYXJnaW46IDBweCAtQG1lbnVCb3JkZXJXaWR0aDtcbiAgbWluLXdpZHRoOiBAbWVudU1pbldpZHRoO1xuICB3aWR0aDogQG1lbnVNaW5XaWR0aDtcblxuICBib3JkZXItcmFkaXVzOiBAc2VsZWN0aW9uTWVudUJvcmRlclJhZGl1cztcbiAgYm94LXNoYWRvdzogQHNlbGVjdGlvbk1lbnVCb3hTaGFkb3c7XG4gIHRyYW5zaXRpb246IEBzZWxlY3Rpb25NZW51VHJhbnNpdGlvbjtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnU6YWZ0ZXIsXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNZXNzYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51ID4gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiBAc2VsZWN0aW9uTWVzc2FnZVBhZGRpbmc7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IEBsYXJnZXN0TW9iaWxlU2NyZWVuKSB7XG4gIC51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IEBzZWxlY3Rpb25Nb2JpbGVNYXhNZW51SGVpZ2h0O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEB0YWJsZXRCcmVha3BvaW50KSB7XG4gIC51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IEBzZWxlY3Rpb25UYWJsZXRNYXhNZW51SGVpZ2h0O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBjb21wdXRlckJyZWFrcG9pbnQpIHtcbiAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogQHNlbGVjdGlvbkNvbXB1dGVyTWF4TWVudUhlaWdodDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAd2lkZXNjcmVlbk1vbml0b3JCcmVha3BvaW50KSB7XG4gIC51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IEBzZWxlY3Rpb25XaWRlc2NyZWVuTWF4TWVudUhlaWdodDtcbiAgfVxufVxuXG4vKiBNZW51IEl0ZW0gKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IEBzZWxlY3Rpb25JdGVtRGl2aWRlcjtcbiAgcGFkZGluZzogQHNlbGVjdGlvbkl0ZW1QYWRkaW5nICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuXG4vKiBVc2VyIEl0ZW0gKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUgPiAuaGlkZGVuLmFkZGl0aW9uLml0ZW0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogQHNlbGVjdGlvbkhvdmVyQm9yZGVyQ29sb3I7XG4gIGJveC1zaGFkb3c6IEBzZWxlY3Rpb25Ib3ZlckJveFNoYWRvdztcbn1cblxuLyogQWN0aXZlICovXG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93biB7XG4gIGJvcmRlci1jb2xvcjogQHNlbGVjdGlvblZpc2libGVCb3JkZXJDb2xvcjtcbiAgYm94LXNoYWRvdzogQHNlbGVjdGlvblZpc2libGVCb3hTaGFkb3c7XG59XG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93biAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogQHNlbGVjdGlvblZpc2libGVCb3JkZXJDb2xvcjtcbiAgYm94LXNoYWRvdzogQHNlbGVjdGlvblZpc2libGVNZW51Qm94U2hhZG93O1xufVxuXG4vKiBGb2N1cyAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93bjpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogQHNlbGVjdGlvbkZvY3VzQm9yZGVyQ29sb3I7XG4gIGJveC1zaGFkb3c6IEBzZWxlY3Rpb25Gb2N1c0JveFNoYWRvdztcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd246Zm9jdXMgLm1lbnUge1xuICBib3JkZXItY29sb3I6IEBzZWxlY3Rpb25Gb2N1c0JvcmRlckNvbG9yO1xuICBib3gtc2hhZG93OiBAc2VsZWN0aW9uRm9jdXNNZW51Qm94U2hhZG93O1xufVxuXG4vKiBWaXNpYmxlICovXG4udWkuc2VsZWN0aW9uLnZpc2libGUuZHJvcGRvd24gPiAudGV4dDpub3QoLmRlZmF1bHQpIHtcbiAgZm9udC13ZWlnaHQ6IEBzZWxlY3Rpb25WaXNpYmxlVGV4dEZvbnRXZWlnaHQ7XG4gIGNvbG9yOiBAc2VsZWN0aW9uVmlzaWJsZVRleHRDb2xvcjtcbn1cblxuLyogVmlzaWJsZSBIb3ZlciAqL1xuLnVpLnNlbGVjdGlvbi5hY3RpdmUuZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItY29sb3I6IEBzZWxlY3Rpb25BY3RpdmVIb3ZlckJvcmRlckNvbG9yO1xuICBib3gtc2hhZG93OiBAc2VsZWN0aW9uQWN0aXZlSG92ZXJCb3hTaGFkb3c7XG59XG4udWkuc2VsZWN0aW9uLmFjdGl2ZS5kcm9wZG93bjpob3ZlciAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogQHNlbGVjdGlvbkFjdGl2ZUhvdmVyQm9yZGVyQ29sb3I7XG4gIGJveC1zaGFkb3c6IEBzZWxlY3Rpb25BY3RpdmVIb3Zlck1lbnVCb3hTaGFkb3c7XG59XG5cbi8qIERyb3Bkb3duIEljb24gKi9cbi51aS5hY3RpdmUuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24sXG4udWkudmlzaWJsZS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIG9wYWNpdHk6IEBzZWxlY3Rpb25WaXNpYmxlSWNvbk9wYWNpdHk7XG4gIHotaW5kZXg6IDM7XG59XG5cbi8qIENvbm5lY3RpbmcgQm9yZGVyICovXG4udWkuYWN0aXZlLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEBzZWxlY3Rpb25WaXNpYmxlQ29ubmVjdGluZ0JvcmRlciAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQHNlbGVjdGlvblZpc2libGVDb25uZWN0aW5nQm9yZGVyICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVtcHR5IENvbm5lY3RpbmcgQm9yZGVyICovXG4udWkuYWN0aXZlLmVtcHR5LnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGJvcmRlci1yYWRpdXM6IEBzZWxlY3Rpb25Cb3JkZXJSYWRpdXMgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogQHNlbGVjdGlvbkJveFNoYWRvdyAhaW1wb3J0YW50O1xufVxuLnVpLmFjdGl2ZS5lbXB0eS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTZWFyY2hhYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTZWFyY2ggU2VsZWN0aW9uICovXG4udWkuc2VhcmNoLmRyb3Bkb3duIHtcbiAgbWluLXdpZHRoOiBAc2VhcmNoTWluV2lkdGg7XG59XG5cbi8qIFNlYXJjaCBEcm9wZG93biAqL1xuLnVpLnNlYXJjaC5kcm9wZG93biA+IGlucHV0LnNlYXJjaCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY3Vyc29yOiB0ZXh0O1xuICB0b3A6IDBlbTtcbiAgbGVmdDogQHRleHRDdXJzb3JTcGFjaW5nO1xuICB3aWR0aDogMTAwJTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICBwYWRkaW5nOiBpbmhlcml0O1xufVxuXG4vKiBUZXh0IExheWVyaW5nICovXG4udWkuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xufVxuLnVpLnNlYXJjaC5kcm9wZG93biA+IC50ZXh0IHtcbiAgY3Vyc29yOiB0ZXh0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IEB0ZXh0Q3Vyc29yU3BhY2luZztcbiAgei1pbmRleDogMztcbn1cblxuLyogU2VhcmNoIFNlbGVjdGlvbiAqL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24uZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBsaW5lLWhlaWdodDogQHNlYXJjaFNlbGVjdGlvbkxpbmVIZWlnaHQ7XG4gIHBhZGRpbmc6IEBzZWFyY2hTZWxlY3Rpb25JbnB1dFBhZGRpbmc7XG59XG5cbi8qIFVzZWQgdG8gc2l6ZSBtdWx0aSBzZWxlY3QgaW5wdXQgdG8gY2hhcmFjdGVyIHdpZHRoICovXG4udWkuc2VhcmNoLnNlbGVjdGlvbi5kcm9wZG93biA+IHNwYW4uc2l6ZXIge1xuICBsaW5lLWhlaWdodDogQHNlYXJjaFNlbGVjdGlvbkxpbmVIZWlnaHQ7XG4gIHBhZGRpbmc6IEBzZWFyY2hTZWxlY3Rpb25JbnB1dFBhZGRpbmc7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG59XG5cbi8qIEFjdGl2ZS9WaXNpYmxlIFNlYXJjaCAqL1xuLnVpLnNlYXJjaC5kcm9wZG93bi5hY3RpdmUgPiBpbnB1dC5zZWFyY2gsXG4udWkuc2VhcmNoLmRyb3Bkb3duLnZpc2libGUgPiBpbnB1dC5zZWFyY2gge1xuICBjdXJzb3I6IGF1dG87XG59XG4udWkuc2VhcmNoLmRyb3Bkb3duLmFjdGl2ZSA+IC50ZXh0LFxuLnVpLnNlYXJjaC5kcm9wZG93bi52aXNpYmxlID4gLnRleHQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogRmlsdGVyZWQgVGV4dCAqL1xuLnVpLmFjdGl2ZS5zZWFyY2guZHJvcGRvd24gaW5wdXQuc2VhcmNoOmZvY3VzICsgLnRleHQgLmljb24sXG4udWkuYWN0aXZlLnNlYXJjaC5kcm9wZG93biBpbnB1dC5zZWFyY2g6Zm9jdXMgKyAudGV4dCAuZmxhZyB7XG4gIG9wYWNpdHk6IEBzZWxlY3Rpb25UZXh0VW5kZXJsYXlJY29uT3BhY2l0eTtcbn1cbi51aS5hY3RpdmUuc2VhcmNoLmRyb3Bkb3duIGlucHV0LnNlYXJjaDpmb2N1cyArIC50ZXh0IHtcbiAgY29sb3I6IEBzZWxlY3Rpb25UZXh0VW5kZXJsYXlDb2xvciAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWFyY2ggTWVudSAqL1xuLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuICAudWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiBAc2VhcmNoTW9iaWxlTWF4TWVudUhlaWdodDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAdGFibGV0QnJlYWtwb2ludCkge1xuICAudWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiBAc2VhcmNoVGFibGV0TWF4TWVudUhlaWdodDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAY29tcHV0ZXJCcmVha3BvaW50KSB7XG4gIC51aS5zZWFyY2guZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IEBzZWFyY2hDb21wdXRlck1heE1lbnVIZWlnaHQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHdpZGVzY3JlZW5Nb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiBAc2VhcmNoV2lkZXNjcmVlbk1heE1lbnVIZWlnaHQ7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIE11bHRpcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBNdWx0aXBsZSBTZWxlY3Rpb24gKi9cbi51aS5tdWx0aXBsZS5kcm9wZG93biB7XG4gIHBhZGRpbmc6IEBtdWx0aXBsZVNlbGVjdGlvblBhZGRpbmc7XG59XG4udWkubXVsdGlwbGUuZHJvcGRvd24gLm1lbnUge1xuICBjdXJzb3I6IGF1dG87XG59XG5cbi8qIE11bHRpcGxlIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24sXG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgY3Vyc29yOiB0ZXh0O1xufVxuXG4vKiBTZWxlY3Rpb24gTGFiZWwgKi9cbi51aS5tdWx0aXBsZS5kcm9wZG93biA+IC5sYWJlbCB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogQGxhYmVsU2l6ZTtcbiAgcGFkZGluZzogQGxhYmVsUGFkZGluZztcbiAgbWFyZ2luOiBAbGFiZWxNYXJnaW47XG4gIGJveC1zaGFkb3c6IEBsYWJlbEJveFNoYWRvdztcbn1cblxuLyogRHJvcGRvd24gSWNvbiAqL1xuLnVpLm11bHRpcGxlLmRyb3Bkb3duIC5kcm9wZG93bi5pY29uIHtcbiAgbWFyZ2luOiBAbXVsdGlwbGVTZWxlY3Rpb25Ecm9wZG93bkljb25NYXJnaW47XG4gIHBhZGRpbmc6IEBtdWx0aXBsZVNlbGVjdGlvbkRyb3Bkb3duSWNvblBhZGRpbmc7XG59XG5cbi8qIFRleHQgKi9cbi51aS5tdWx0aXBsZS5kcm9wZG93biA+IC50ZXh0IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgcGFkZGluZzogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IEBtdWx0aXBsZVNlbGVjdGlvbkNoaWxkTWFyZ2luO1xuICBsaW5lLWhlaWdodDogQG11bHRpcGxlU2VsZWN0aW9uQ2hpbGRMaW5lSGVpZ2h0O1xufVxuLnVpLm11bHRpcGxlLmRyb3Bkb3duID4gLmxhYmVsIH4gaW5wdXQuc2VhcmNoIHtcbiAgbWFyZ2luLWxlZnQ6IEBtdWx0aXBsZVNlbGVjdGlvblNlYXJjaEFmdGVyTGFiZWxEaXN0YW5jZSAhaW1wb3J0YW50O1xufVxuLnVpLm11bHRpcGxlLmRyb3Bkb3duID4gLmxhYmVsIH4gLnRleHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tXG4gIE11bHRpcGxlIFNlYXJjaFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBQcm9tcHQgVGV4dCAqL1xuLnVpLm11bHRpcGxlLnNlYXJjaC5kcm9wZG93biA+IC50ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogaW5oZXJpdDtcbiAgbWFyZ2luOiBAbXVsdGlwbGVTZWxlY3Rpb25DaGlsZE1hcmdpbjtcbiAgbGluZS1oZWlnaHQ6IEBtdWx0aXBsZVNlbGVjdGlvbkNoaWxkTGluZUhlaWdodDtcbn1cblxuLnVpLm11bHRpcGxlLnNlYXJjaC5kcm9wZG93biA+IC5sYWJlbCB+IC50ZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogU2VhcmNoICovXG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgcGFkZGluZzogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IEBtdWx0aXBsZVNlbGVjdGlvbkNoaWxkTWFyZ2luO1xuICB3aWR0aDogQG11bHRpcGxlU2VsZWN0aW9uU2VhcmNoU3RhcnRXaWR0aDtcbiAgbGluZS1oZWlnaHQ6IEBtdWx0aXBsZVNlbGVjdGlvbkNoaWxkTGluZUhlaWdodDtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIElubGluZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmlubGluZS5kcm9wZG93biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogQGlubGluZVRleHRDb2xvcjtcbn1cbi51aS5pbmxpbmUuZHJvcGRvd24gLmRyb3Bkb3duLmljb24ge1xuICBtYXJnaW46IEBpbmxpbmVJY29uTWFyZ2luO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkuaW5saW5lLmRyb3Bkb3duID4gLnRleHQge1xuICBmb250LXdlaWdodDogQGlubGluZVRleHRGb250V2VpZ2h0O1xufVxuLnVpLmlubGluZS5kcm9wZG93biAubWVudSB7XG4gIGN1cnNvcjogYXV0bztcbiAgbWFyZ2luLXRvcDogQGlubGluZU1lbnVEaXN0YW5jZTtcbiAgYm9yZGVyLXJhZGl1czogQGlubGluZU1lbnVCb3JkZXJSYWRpdXM7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIE1lbnUgSXRlbSBBY3RpdmUgKi9cbi51aS5kcm9wZG93biAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBAYWN0aXZlSXRlbUJhY2tncm91bmQ7XG4gIGZvbnQtd2VpZ2h0OiBAYWN0aXZlSXRlbUZvbnRXZWlnaHQ7XG4gIGNvbG9yOiBAYWN0aXZlSXRlbUNvbG9yO1xuICBib3gtc2hhZG93OiBAYWN0aXZlSXRlbUJveFNoYWRvdztcbiAgei1pbmRleDogQGFjdGl2ZUl0ZW1aSW5kZXg7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIE1lbnUgSXRlbSBIb3ZlciAqL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBAaG92ZXJlZEl0ZW1CYWNrZ3JvdW5kO1xuICBjb2xvcjogQGhvdmVyZWRJdGVtQ29sb3I7XG4gIHotaW5kZXg6IEBob3ZlcmVkWkluZGV4O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiBpLmljb24ge1xuICBoZWlnaHQ6IEByZWxhdGl2ZTE0cHggIWltcG9ydGFudDtcbn1cbi51aS5sb2FkaW5nLnNlbGVjdGlvbi5kcm9wZG93biA+IGkuaWNvbiB7XG4gIHBhZGRpbmc6IEByZWxhdGl2ZTIxcHggQHJlbGF0aXZlMThweCAhaW1wb3J0YW50O1xufVxuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiBpLmljb246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcblxuICBtYXJnaW46IEBsb2FkZXJNYXJnaW47XG4gIHdpZHRoOiBAbG9hZGVyU2l6ZTtcbiAgaGVpZ2h0OiBAbG9hZGVyU2l6ZTtcblxuICBib3JkZXItcmFkaXVzOiBAY2lyY3VsYXJSYWRpdXM7XG4gIGJvcmRlcjogQGxvYWRlckxpbmVXaWR0aCBzb2xpZCBAbG9hZGVyRmlsbENvbG9yO1xufVxuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiBpLmljb246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG5cbiAgbWFyZ2luOiBAbG9hZGVyTWFyZ2luO1xuICB3aWR0aDogQGxvYWRlclNpemU7XG4gIGhlaWdodDogQGxvYWRlclNpemU7XG5cbiAgYW5pbWF0aW9uOiBkcm9wZG93bi1zcGluIEBsb2FkZXJTcGVlZCBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBjaXJjdWxhclJhZGl1cztcblxuICBib3JkZXItY29sb3I6IEBsb2FkZXJMaW5lQ29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogQGxvYWRlckxpbmVXaWR0aDtcbn1cblxuLyogQ291cGxpbmcgKi9cbi51aS5sb2FkaW5nLmRyb3Bkb3duLmJ1dHRvbiA+IGkuaWNvbjpiZWZvcmUsXG4udWkubG9hZGluZy5kcm9wZG93bi5idXR0b24gPiBpLmljb246YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5Aa2V5ZnJhbWVzIGRyb3Bkb3duLXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgRGVmYXVsdCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmRyb3Bkb3duOm5vdCguYnV0dG9uKSA+IC5kZWZhdWx0LnRleHQsXG4udWkuZGVmYXVsdC5kcm9wZG93bjpub3QoLmJ1dHRvbikgPiAudGV4dCB7XG4gIGNvbG9yOiBAZGVmYXVsdFRleHRDb2xvcjtcbn1cbi51aS5kcm9wZG93bjpub3QoLmJ1dHRvbikgPiBpbnB1dDpmb2N1cyB+IC5kZWZhdWx0LnRleHQsXG4udWkuZGVmYXVsdC5kcm9wZG93bjpub3QoLmJ1dHRvbikgPiBpbnB1dDpmb2N1cyB+IC50ZXh0IHtcbiAgY29sb3I6IEBkZWZhdWx0VGV4dEZvY3VzQ29sb3I7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubG9hZGluZy5kcm9wZG93biA+IC50ZXh0IHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLyogVXNlZCBUbyBDaGVjayBQb3NpdGlvbiAqL1xuLnVpLmRyb3Bkb3duIC5sb2FkaW5nLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiBAbG9hZGluZ1pJbmRleDtcbn1cbi51aS5kcm9wZG93biA+IC5sb2FkaW5nLm1lbnUge1xuICBsZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biA+IC5tZW51IC5sb2FkaW5nLm1lbnUge1xuICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBLZXlib2FyZCBTZWxlY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTZWxlY3RlZCBJdGVtICovXG4udWkuZHJvcGRvd24uc2VsZWN0ZWQsXG4udWkuZHJvcGRvd24gLm1lbnUgLnNlbGVjdGVkLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBAc2VsZWN0ZWRCYWNrZ3JvdW5kO1xuICBjb2xvcjogQHNlbGVjdGVkQ29sb3I7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNlYXJjaCBGaWx0ZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEZpbHRlcmVkIEl0ZW0gKi9cbi51aS5kcm9wZG93biA+IC5maWx0ZXJlZC50ZXh0IHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnVpLmRyb3Bkb3duIC5maWx0ZXJlZC5pdGVtIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZHJvcGRvd24uZXJyb3IsXG4udWkuZHJvcGRvd24uZXJyb3IgPiAudGV4dCxcbi51aS5kcm9wZG93bi5lcnJvciA+IC5kZWZhdWx0LnRleHQge1xuICBjb2xvcjogQGVycm9yVGV4dENvbG9yO1xufVxuXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duLmVycm9yIHtcbiAgYmFja2dyb3VuZDogQGVycm9yQmFja2dyb3VuZENvbG9yO1xuICBib3JkZXItY29sb3I6IEBlcnJvckJvcmRlckNvbG9yO1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93bi5lcnJvcjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogQGVycm9yQm9yZGVyQ29sb3I7XG59XG5cbi51aS5kcm9wZG93bi5lcnJvciA+IC5tZW51LFxuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgLm1lbnUge1xuICBib3JkZXItY29sb3I6IEBlcnJvckJvcmRlckNvbG9yO1xufVxuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgPiAuaXRlbSB7XG4gIGNvbG9yOiBAZXJyb3JJdGVtVGV4dENvbG9yO1xufVxuLnVpLm11bHRpcGxlLnNlbGVjdGlvbi5lcnJvci5kcm9wZG93biA+IC5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogQGVycm9yQm9yZGVyQ29sb3I7XG59XG5cbi8qIEl0ZW0gSG92ZXIgKi9cbi51aS5kcm9wZG93bi5lcnJvciA+IC5tZW51ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZXJyb3JJdGVtSG92ZXJCYWNrZ3JvdW5kO1xufVxuXG4vKiBJdGVtIEFjdGl2ZSAqL1xuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGVycm9ySXRlbUFjdGl2ZUJhY2tncm91bmQ7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBDbGVhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kcm9wZG93biA+IC5jbGVhci5kcm9wZG93bi5pY29uIHtcbiAgb3BhY2l0eTogQGNsZWFyYWJsZUljb25PcGFjaXR5O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IEBkZWZhdWx0RHVyYXRpb24gQGRlZmF1bHRFYXNpbmc7XG59XG4udWkuZHJvcGRvd24gPiAuY2xlYXIuZHJvcGRvd24uaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IEBjbGVhcmFibGVJY29uQWN0aXZlT3BhY2l0eTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogRGlzYWJsZWQgKi9cbi51aS5kaXNhYmxlZC5kcm9wZG93bixcbi51aS5kcm9wZG93biAubWVudSA+IC5kaXNhYmxlZC5pdGVtIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogQGRpc2FibGVkT3BhY2l0eTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlyZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBGbHlvdXQgRGlyZWN0aW9uICovXG4udWkuZHJvcGRvd24gLm1lbnUge1xuICBsZWZ0OiAwcHg7XG59XG5cblxuLyogRGVmYXVsdCBTaWRlIChSaWdodCkgKi9cbi51aS5kcm9wZG93biAucmlnaHQubWVudSA+IC5tZW51LFxuLnVpLmRyb3Bkb3duIC5tZW51IC5yaWdodC5tZW51IHtcbiAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiBAc3ViTWVudUJvcmRlclJhZGl1cyAhaW1wb3J0YW50O1xufVxuXG4vKiBMZWZ0d2FyZCBPcGVuaW5nIE1lbnUgKi9cbi51aS5kcm9wZG93biA+IC5sZWZ0Lm1lbnUge1xuICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwcHggIWltcG9ydGFudDtcbn1cblxuLnVpLmRyb3Bkb3duID4gLmxlZnQubWVudSAubWVudSxcbi51aS5kcm9wZG93biAubWVudSAubGVmdC5tZW51IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogQGxlZnRTdWJNZW51TWFyZ2luICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IEBsZWZ0U3ViTWVudUJvcmRlclJhZGl1cyAhaW1wb3J0YW50O1xufVxuXG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbixcbi51aS5kcm9wZG93biAubGVmdC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGZsb2F0OiBAbGVmdE1lbnVEcm9wZG93bkljb25GbG9hdDtcbiAgbWFyZ2luOiBAbGVmdE1lbnVEcm9wZG93bkljb25NYXJnaW47XG59XG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbixcbi51aS5kcm9wZG93biAubGVmdC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGZsb2F0OiBAbGVmdE1lbnVEcm9wZG93bkljb25GbG9hdDtcbiAgbWFyZ2luOiBAbGVmdE1lbnVEcm9wZG93bkljb25NYXJnaW47XG59XG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbiArIC50ZXh0LFxuLnVpLmRyb3Bkb3duIC5sZWZ0Lm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb24gKyAudGV4dCB7XG4gIG1hcmdpbi1sZWZ0OiBAaXRlbURyb3Bkb3duSWNvbkRpc3RhbmNlO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFVwd2FyZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogVXB3YXJkIE1haW4gTWVudSAqL1xuLnVpLnVwd2FyZC5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGJveC1zaGFkb3c6IEB1cHdhcmRNZW51Qm94U2hhZG93O1xuICBib3JkZXItcmFkaXVzOiBAdXB3YXJkTWVudUJvcmRlclJhZGl1cztcbn1cblxuLyogVXB3YXJkIFN1YiBNZW51ICovXG4udWkuZHJvcGRvd24gLnVwd2FyZC5tZW51IHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY3RpdmUgVXB3YXJkICovXG4udWkuc2ltcGxlLnVwd2FyZC5hY3RpdmUuZHJvcGRvd24sXG4udWkuc2ltcGxlLnVwd2FyZC5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXMgQGJvcmRlclJhZGl1cyAwZW0gMGVtICFpbXBvcnRhbnQ7XG59XG4udWkudXB3YXJkLmRyb3Bkb3duLmJ1dHRvbjpub3QoLnBvaW50aW5nKTpub3QoLmZsb2F0aW5nKS5hY3RpdmUge1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyUmFkaXVzIEBib3JkZXJSYWRpdXMgMGVtIDBlbTtcbn1cblxuLyogU2VsZWN0aW9uICovXG4udWkudXB3YXJkLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gIGJvcmRlci10b3Atd2lkdGg6IEBtZW51Qm9yZGVyV2lkdGggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IEB1cHdhcmRTZWxlY3Rpb25NZW51Qm94U2hhZG93O1xufVxuLnVpLnVwd2FyZC5zZWxlY3Rpb24uZHJvcGRvd246aG92ZXIge1xuICBib3gtc2hhZG93OiBAdXB3YXJkU2VsZWN0aW9uSG92ZXJCb3hTaGFkb3c7XG59XG5cbi8qIEFjdGl2ZSBVcHdhcmQgKi9cbi51aS5hY3RpdmUudXB3YXJkLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGJvcmRlci1yYWRpdXM6IEB1cHdhcmRTZWxlY3Rpb25WaXNpYmxlQm9yZGVyUmFkaXVzICFpbXBvcnRhbnQ7XG59XG5cbi8qIFZpc2libGUgVXB3YXJkICovXG4udWkudXB3YXJkLnNlbGVjdGlvbi5kcm9wZG93bi52aXNpYmxlIHtcbiAgYm94LXNoYWRvdzogQHVwd2FyZFNlbGVjdGlvblZpc2libGVCb3hTaGFkb3c7XG4gIGJvcmRlci1yYWRpdXM6IEB1cHdhcmRTZWxlY3Rpb25WaXNpYmxlQm9yZGVyUmFkaXVzICFpbXBvcnRhbnQ7XG59XG5cbi8qIFZpc2libGUgSG92ZXIgVXB3YXJkICovXG4udWkudXB3YXJkLmFjdGl2ZS5zZWxlY3Rpb24uZHJvcGRvd246aG92ZXIge1xuICBib3gtc2hhZG93OiBAdXB3YXJkU2VsZWN0aW9uQWN0aXZlSG92ZXJCb3hTaGFkb3c7XG59XG4udWkudXB3YXJkLmFjdGl2ZS5zZWxlY3Rpb24uZHJvcGRvd246aG92ZXIgLm1lbnUge1xuICBib3gtc2hhZG93OiBAdXB3YXJkU2VsZWN0aW9uQWN0aXZlSG92ZXJNZW51Qm94U2hhZG93O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpbXBsZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogIFNlbGVjdGlvbiBNZW51ICovXG4udWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIG1pbi13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4udWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiBAbWVudUJvcmRlcjtcbn1cbi51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUgLml0ZW0uaXRlbS5pdGVtLFxuLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSA+IC5pdGVtLml0ZW0uaXRlbSB7XG4gIGJvcmRlci10b3A6IEBzY3JvbGxpbmdNZW51SXRlbUJvcmRlcjtcbn1cbi51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUgLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5kcm9wZG93biA+IC5hbmltYXRpbmcubWVudSAuc2Nyb2xsaW5nLm1lbnUsXG4udWkuZHJvcGRvd24gPiAudmlzaWJsZS5tZW51IC5zY3JvbGxpbmcubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBTY3JvbGxiYXIgaW4gSUUgKi9cbkBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDpub25lKSB7XG4gIC51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4gIC51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUge1xuICAgIG1pbi13aWR0aDogY2FsYygxMDAlIC0gQHNjcm9sbGJhcldpZHRoKTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogQHNjcm9sbGluZ01vYmlsZU1heE1lbnVIZWlnaHQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHRhYmxldEJyZWFrcG9pbnQpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogQHNjcm9sbGluZ1RhYmxldE1heE1lbnVIZWlnaHQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQGNvbXB1dGVyQnJlYWtwb2ludCkge1xuICAudWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuICAudWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiBAc2Nyb2xsaW5nQ29tcHV0ZXJNYXhNZW51SGVpZ2h0O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEB3aWRlc2NyZWVuTW9uaXRvckJyZWFrcG9pbnQpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogQHNjcm9sbGluZ1dpZGVzY3JlZW5NYXhNZW51SGVpZ2h0O1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2ltcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBEaXNwbGF5cyB3aXRob3V0IGphdmFzY3JpcHQgKi9cblxuLnVpLnNpbXBsZS5kcm9wZG93biAubWVudTpiZWZvcmUsXG4udWkuc2ltcGxlLmRyb3Bkb3duIC5tZW51OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5zaW1wbGUuZHJvcGRvd24gLm1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0b3A6IC05OTk5cHggIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgdHJhbnNpdGlvbjogQHNpbXBsZVRyYW5zaXRpb247XG59XG5cbi51aS5zaW1wbGUuYWN0aXZlLmRyb3Bkb3duLFxuLnVpLnNpbXBsZS5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG5cbi51aS5zaW1wbGUuYWN0aXZlLmRyb3Bkb3duID4gLm1lbnUsXG4udWkuc2ltcGxlLmRyb3Bkb3duOmhvdmVyID4gLm1lbnUge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdG9wOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG59XG4udWkuc2ltcGxlLmRyb3Bkb3duID4gLm1lbnUgPiAuaXRlbTphY3RpdmUgPiAubWVudSxcbi51aS5zaW1wbGUuZHJvcGRvd246aG92ZXIgPiAubWVudSA+IC5pdGVtOmhvdmVyID4gLm1lbnUge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdG9wOiAwJSAhaW1wb3J0YW50O1xuICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG59XG4udWkuc2ltcGxlLmRpc2FibGVkLmRyb3Bkb3duOmhvdmVyIC5tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwcHg7XG4gIHdpZHRoOiAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIFZpc2libGUgKi9cbi51aS5zaW1wbGUudmlzaWJsZS5kcm9wZG93biA+IC5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmx1aWQuZHJvcGRvd24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMGVtO1xufVxuLnVpLmZsdWlkLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZsb2F0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmxvYXRpbmcuZHJvcGRvd24gLm1lbnUge1xuICBsZWZ0OiAwO1xuICByaWdodDogYXV0bztcbiAgYm94LXNoYWRvdzogQGZsb2F0aW5nTWVudUJveFNoYWRvdyAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiBAZmxvYXRpbmdNZW51Qm9yZGVyUmFkaXVzICFpbXBvcnRhbnQ7XG59XG4udWkuZmxvYXRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIG1hcmdpbi10b3A6IEBmbG9hdGluZ01lbnVEaXN0YW5jZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiBAZmxvYXRpbmdNZW51Qm9yZGVyUmFkaXVzICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUG9pbnRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiBAcG9pbnRpbmdNZW51RGlzdGFuY2U7XG4gIGJvcmRlci1yYWRpdXM6IEBwb2ludGluZ01lbnVCb3JkZXJSYWRpdXM7XG59XG5cbi51aS5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbnRlbnQ6ICcnO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cbiAgd2lkdGg6IEBwb2ludGluZ0Fycm93U2l6ZTtcbiAgaGVpZ2h0OiBAcG9pbnRpbmdBcnJvd1NpemU7XG4gIGJveC1zaGFkb3c6IEBwb2ludGluZ0Fycm93Qm94U2hhZG93O1xuICBiYWNrZ3JvdW5kOiBAcG9pbnRpbmdBcnJvd0JhY2tncm91bmQ7XG4gIHotaW5kZXg6IEBwb2ludGluZ0Fycm93WkluZGV4O1xufVxuXG4udWkucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogQHBvaW50aW5nQXJyb3dPZmZzZXQ7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSBAcG9pbnRpbmdBcnJvd09mZnNldDtcbn1cblxuLyogVG9wIExlZnQgUG9pbnRpbmcgKi9cbi51aS50b3AubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiBAcG9pbnRpbmdBcnJvd0Rpc3RhbmNlRnJvbUVkZ2UgMGVtIDBlbTtcbn1cbi51aS50b3AubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiBAcG9pbnRpbmdBcnJvd0Rpc3RhbmNlRnJvbUVkZ2UgMGVtIDBlbTtcbn1cbi51aS50b3AubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiBAcG9pbnRpbmdBcnJvd09mZnNldDtcbiAgbGVmdDogQHBvaW50aW5nQXJyb3dEaXN0YW5jZUZyb21FZGdlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cbi8qIFRvcCBSaWdodCBQb2ludGluZyAqL1xuLnVpLnRvcC5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAxMDAlO1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiAwJTtcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luOiBAcG9pbnRpbmdBcnJvd0Rpc3RhbmNlRnJvbUVkZ2UgMGVtIDBlbTtcbn1cbi51aS50b3AucG9pbnRpbmcuZHJvcGRvd24gPiAubGVmdC5tZW51OmFmdGVyLFxuLnVpLnRvcC5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiBAcG9pbnRpbmdBcnJvd09mZnNldDtcbiAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICByaWdodDogQHBvaW50aW5nQXJyb3dEaXN0YW5jZUZyb21FZGdlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi8qIExlZnQgUG9pbnRpbmcgKi9cbi51aS5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDAlO1xuICBsZWZ0OiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSBAcG9pbnRpbmdBcnJvd0Rpc3RhbmNlRnJvbUVkZ2U7XG59XG4udWkubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiAxZW07XG4gIGxlZnQ6IEBwb2ludGluZ0Fycm93T2Zmc2V0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbi51aS5sZWZ0Om5vdCgudG9wKTpub3QoLmJvdHRvbSkucG9pbnRpbmcuZHJvcGRvd24gPiAubGVmdC5tZW51IHtcbiAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSBAcG9pbnRpbmdBcnJvd0Rpc3RhbmNlRnJvbUVkZ2UgMGVtIDBlbTtcbn1cbi51aS5sZWZ0Om5vdCgudG9wKTpub3QoLmJvdHRvbSkucG9pbnRpbmcuZHJvcGRvd24gPiAubGVmdC5tZW51OmFmdGVyIHtcbiAgdG9wOiAxZW07XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBAcG9pbnRpbmdBcnJvd09mZnNldDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG59XG5cblxuLyogUmlnaHQgUG9pbnRpbmcgKi9cbi51aS5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAwJTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMGVtIEBwb2ludGluZ0Fycm93RGlzdGFuY2VGcm9tRWRnZSAwZW0gMGVtO1xufVxuLnVpLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IDFlbTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IEBwb2ludGluZ0Fycm93T2Zmc2V0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cblxuLyogQm90dG9tIFBvaW50aW5nICovXG4udWkuYm90dG9tLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDBlbSAwZW0gQHBvaW50aW5nQXJyb3dEaXN0YW5jZUZyb21FZGdlIDtcbn1cbi51aS5ib3R0b20ucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiBAcG9pbnRpbmdBcnJvd09mZnNldDtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbi8qIFJldmVyc2UgU3ViLU1lbnUgRGlyZWN0aW9uICovXG4udWkuYm90dG9tLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUgLm1lbnUge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwcHggIWltcG9ydGFudDtcbn1cblxuLyogQm90dG9tIExlZnQgKi9cbi51aS5ib3R0b20ubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpLmJvdHRvbS5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICBsZWZ0OiBAcG9pbnRpbmdBcnJvd0Rpc3RhbmNlRnJvbUVkZ2U7XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4vKiBCb3R0b20gUmlnaHQgKi9cbi51aS5ib3R0b20ucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHJpZ2h0OiAwJTtcbiAgbGVmdDogYXV0bztcbn1cbi51aS5ib3R0b20ucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBAcG9pbnRpbmdBcnJvd0Rpc3RhbmNlRnJvbUVkZ2U7XG59XG5cbi8qIFVwd2FyZCBwb2ludGluZyAqL1xuLnVpLnBvaW50aW5nLnVwd2FyZC5kcm9wZG93biAubWVudSxcbi51aS50b3AucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duIC5tZW51IHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAwZW0gQHBvaW50aW5nTWVudURpc3RhbmNlO1xuICBib3JkZXItcmFkaXVzOiBAcG9pbnRpbmdVcHdhcmRNZW51Qm9yZGVyUmFkaXVzO1xufVxuLnVpLnBvaW50aW5nLnVwd2FyZC5kcm9wZG93biAubWVudTphZnRlcixcbi51aS50b3AucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duIC5tZW51OmFmdGVyIHtcbiAgdG9wOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBAcG9pbnRpbmdVcHdhcmRBcnJvd0JveFNoYWRvdztcbiAgbWFyZ2luOiBAcG9pbnRpbmdBcnJvd09mZnNldCAwZW0gMGVtO1xufVxuXG4vKiBSaWdodCBQb2ludGluZyBVcHdhcmQgKi9cbi51aS5yaWdodC5wb2ludGluZy51cHdhcmQuZHJvcGRvd246bm90KC50b3ApOm5vdCguYm90dG9tKSAubWVudSB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gQHBvaW50aW5nQXJyb3dEaXN0YW5jZUZyb21FZGdlIDBlbSAwZW07XG59XG4udWkucmlnaHQucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duOm5vdCgudG9wKTpub3QoLmJvdHRvbSkgLm1lbnU6YWZ0ZXIge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIDBlbSBAcG9pbnRpbmdBcnJvd0Rpc3RhbmNlRnJvbUVkZ2UgMGVtO1xuICBib3gtc2hhZG93OiBAcG9pbnRpbmdBcnJvd0JveFNoYWRvdztcbn1cblxuXG4vKiBMZWZ0IFBvaW50aW5nIFVwd2FyZCAqL1xuLnVpLmxlZnQucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duOm5vdCgudG9wKTpub3QoLmJvdHRvbSkgLm1lbnUge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gQHBvaW50aW5nQXJyb3dEaXN0YW5jZUZyb21FZGdlO1xufVxuLnVpLmxlZnQucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duOm5vdCgudG9wKTpub3QoLmJvdHRvbSkgLm1lbnU6YWZ0ZXIge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIDBlbSBAcG9pbnRpbmdBcnJvd0Rpc3RhbmNlRnJvbUVkZ2UgMGVtO1xuICBib3gtc2hhZG93OiBAcG9pbnRpbmdBcnJvd0JveFNoYWRvdztcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AaW1wb3J0IFwiQGxlc3MvaW52ZW5pb190aGVtZS90aGVtZS9tb2R1bGVzL2Ryb3Bkb3duLm92ZXJyaWRlc1wiO1xuXG4vKiBEcm9wZG93biBDYXJldHMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0Ryb3Bkb3duJztcbiAgc3JjOlxuICAgIHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBQVZnQUE4QUFBQUFDRkFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBQldBQUFBQndBQUFBY2hHZ2FxMGRFUlVZQUFBRjBBQUFBSEFBQUFCNEFKd0FQVDFNdk1nQUFBWkFBQUFCREFBQUFWblc0VEpkamJXRndBQUFCMUFBQUFFc0FBQUZTOENjYXFtTjJkQ0FBQUFJZ0FBQUFCQUFBQUFRQUVRRkVaMkZ6Y0FBQUFpUUFBQUFJQUFBQUNQLy9BQU5uYkhsbUFBQUNMQUFBQVFvQUFBR2tyUkhQOVdobFlXUUFBQU00QUFBQU1BQUFBRFlQSzhZeWFHaGxZUUFBQTJnQUFBQWRBQUFBSkFOQ0FiMW9iWFI0QUFBRGlBQUFBQ0lBQUFBaUNCa0FPR3h2WTJFQUFBT3NBQUFBRkFBQUFCUUJuQUl5YldGNGNBQUFBOEFBQUFBZkFBQUFJQUVWQUY1dVlXMWxBQUFENEFBQUFUQUFBQUtNRkdsajVIQnZjM1FBQUFVUUFBQUFSZ0FBQUhKb2VkanFkMlZpWmdBQUJWZ0FBQUFHQUFBQUJyTzdXNVVBQUFBQkFBQUFBTlh1bFBVQUFBQUExcjRoZ0FBQUFBRFh1MlExZU5wallHUmdZT0FCWWpFZ1ptSmdCRUlPSUdZQjh4Z0FBL1lBTjNqYVkyQmt0R09jd01ES3dNSTRqVEdOZ1lIQkhVcC9aWkJrYUdGZ1lHSmdaV2JBQ2dMU1hGTVlIRlQvZkxqRmVPRC9BUVk5eGpNTWJrQmhScEFjQU40OERRWUFlTnBqWUdCZ1pvQmdHUVpHQmhEd0FmSVl3WHdXQmdNZ3pRR0VUQXdNcW44KzhINjQ5ZjgvbEhYOS8vOWI3UHpmK2ZXZ3VzQ0FrWTBCem1VRTZnSHBRd0dNRE1NZUFBQ2J4ZzdTQUFBUkFVUUFBQUFCLy84QUFuamFkWkJQU3NOQUdNWGZTK3lNcVlnT2hwU3VTbEthZG1VaGlWRWhFTVF6RkYyMm0xN0JiYnZ6Q2g1QlhDVW42RUc4Z2plUTREZXB3WW80aSsvZmZMOTVqNEVEQStDRkM3alF1S3lJZVZIckkzd2tsZXE5RjdYclNJbkt0ZU9lSGRkYThiT29hZWVwU2MwME5XUHovTFJlYzlHOEdhYnlHdEVkRjdoMTl6MDMzR0FNVEs3emJNNDJ4TkVacHpZb2YwUnRRNUNVSEFRSjczT3RWeXV0YyszYjdPdS8vYjhYTmxzUHgzamdqVWlmQUJkaEVvaEtKSkw1aU01cDM5dXFjN1gxK3NSUVNxbUdyVVZobHNKNGxwbUVVVnd5VDhTVVl0ZzBQOUR5TnpQQUREcyt0anJHVjZLUkNSZnN1aTNlSGNMNC9wOFpYdmZNbGNuRVUrQ0x2N2hEeWtPUCtBS1RQVHhiQUFCNDJtTmdaR0JnQUdLdWY1S1A0dmx0dmpMSU16R0F3TFY5aWcwZyt2cnVGRk1RemRqQUNPSnpNSUNsQVJoMENUSjQybU5nWkdCZ1BQRC9BSkQ4d2dBRWpBME1qQXlvZ0FNQWJPUUVBUUFBQUFDN0FCRUFBQUFBQUtvQUFBSDBBQUFCZ0FBQUFVQUFDQUZBQUFnQXdBQVhBQUFBQUFBQUFDb0FLZ0FxQURJQWJBQ0dBS0FBdWdEU2VOcGpZR1JnWU9Ca1VHRmdZZ0FCRU1rRmhBd00veG4wUUFJQURkVUJkQUI0MnFXUXZVb0RRUlNGdjNHamFJU1VRYXltU21HeEpvR0FzUkMwaVBZTHNVNTBZNkl4cnZsUnRQQ0pKS1VQSUJiK1BJSHY0RU40ZGpLdUtBcUNESGZtdStmZU9kd1pvTUNVQUpOYkFsWVVNemFVbE0xNGpqeGJuZ09xN0huT2lhODl6MVBrMXZNQ2E5eDd6dFBremZNeUpiUGorWkdpNlhwK29teHVQRCt6YUQ3bWVhRmc3bWI4R3JCcUhtaHd4b0F4bG0wdWlSa3BQOVg1bTI2cEtSb014VEdSMUQ0OUR2L1liLzkxbzZsOHFMNmV1NW4yaFpRem42OHV0UjltM0ZVMmNCNHQ5Y2RTTEcydXRJKzQ0RWgvUDlicUtPK29KL1d4bVhzc2o3N1lrcmphc1pRRDZTRmRkeXRoazNXdHpyZitVRjJwMDc2VWRsYTFWTnpzRVJQM2tralZSS2VsN21wMXVkWFljSHRaU2xWN1JmbUplMUdpRld2ZWx1YWVLRDUvTXVKY1NrOFRwbS92dndQSWJtSmxlTnBqWUdLQUFGWUc3SUNUZ1lHUmlaR1prWVdSbFpHTmtaMlJnNUdUTFQybnNpRERFRUlac1pmbVpScVp1am1EYURjREF4Y0k3V0lPcFMyZ3RDV1VkZ1FBWmtjU21RQUFBQUZibGJPNkFBQT0pIGZvcm1hdCgnd29mZicpXG4gIDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4udWkuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZvbnQtZmFtaWx5OiAnRHJvcGRvd24nO1xuICBsaW5lLWhlaWdodDogMTtcbiAgaGVpZ2h0OiAxZW07XG4gIHdpZHRoOiAxLjIzZW07XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi51aS5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG59XG4udWkuZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMGQ3Jztcbn1cblxuLyogU3ViIE1lbnUgKi9cbi51aS5kcm9wZG93biAubWVudSAuaXRlbSAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMGRhJy8qcnRsOidcXGYwZDknKi87XG59XG5cbi51aS5kcm9wZG93biAuaXRlbSAubGVmdC5kcm9wZG93bi5pY29uOmJlZm9yZSxcbi51aS5kcm9wZG93biAubGVmdC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ5XCIvKnJ0bDpcIlxcZjBkYVwiKi87XG59XG5cbi8qIFZlcnRpY2FsIE1lbnUgRHJvcGRvd24gKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtID4gLmRyb3Bkb3duLmljb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGFcIi8qcnRsOlwiXFxmMGQ5XCIqLztcbn1cblxuLnVpLmRyb3Bkb3duID4gLmNsZWFyLmljb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cblxuLnVpLmRyb3Bkb3duLnNoYXJlLWxpbmstZHJvcGRvd24ge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG5cbi8qIEljb25zIGZvciBSZWZlcmVuY2UgKFN1YnNldHRlZCBpbiAyLjQuMClcbiAgLmRyb3Bkb3duLmRvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDdcIjsgfVxuICAuZHJvcGRvd24udXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDhcIjsgfVxuICAuZHJvcGRvd24ubGVmdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkOVwiOyB9XG4gIC5kcm9wZG93bi5yaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkYVwiOyB9XG4gIC5kcm9wZG93bi5jbG9zZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwZFwiOyB9XG4qLyIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFZpZGVvXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAnbW9kdWxlJztcbkBlbGVtZW50IDogJ2VtYmVkJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5lbWJlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiBAYmFja2dyb3VuZDtcbiAgcGFkZGluZy1ib3R0b206IEB3aWRlc2NyZWVuUmF0aW87XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS1cbiAgRW1iZWRkZWQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmVtYmVkIGlmcmFtZSxcbi51aS5lbWJlZCBlbWJlZCxcbi51aS5lbWJlZCBvYmplY3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRW1iZWRcbi0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5lbWJlZCA+IC5lbWJlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFBsYWNlaG9sZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZW1iZWQgPiAucGxhY2Vob2xkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwbGFjZWhvbGRlckJhY2tncm91bmQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5lbWJlZCA+IC5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDI7XG59XG4udWkuZW1iZWQgPiAuaWNvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDM7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiBAcGxhY2Vob2xkZXJCYWNrZ3JvdW5kO1xuICBvcGFjaXR5OiBAcGxhY2Vob2xkZXJCYWNrZ3JvdW5kT3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogQHBsYWNlaG9sZGVyQmFja2dyb3VuZFRyYW5zaXRpb247XG59XG4udWkuZW1iZWQgPiAuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuXG4gIGNvbG9yOiBAaWNvbkNvbG9yO1xuICBmb250LXNpemU6IEBpY29uU2l6ZTtcbiAgdGV4dC1zaGFkb3c6IEBpY29uU2hhZG93O1xuICB0cmFuc2l0aW9uOiBAaWNvblRyYW5zaXRpb247XG4gIHotaW5kZXg6IEBpY29uWkluZGV4O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZW1iZWQgLmljb246aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBAaG92ZXJQbGFjZWhvbGRlckJhY2tncm91bmQ7XG4gIG9wYWNpdHk6IEBob3ZlclBsYWNlaG9sZGVyQmFja2dyb3VuZE9wYWNpdHk7XG59XG4udWkuZW1iZWQgLmljb246aG92ZXI6YmVmb3JlIHtcbiAgY29sb3I6IEBob3Zlckljb25Db2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5hY3RpdmUuZW1iZWQgPiAuaWNvbixcbi51aS5hY3RpdmUuZW1iZWQgPiAucGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLmFjdGl2ZS5lbWJlZCA+IC5lbWJlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuc3F1YXJlLmVtYmVkIHtcbiAgcGFkZGluZy1ib3R0b206IEBzcXVhcmVSYXRpbztcbn1cbi51aVtjbGFzcyo9XCI0OjNcIl0uZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogQHN0YW5kYXJkUmF0aW87XG59XG4udWlbY2xhc3MqPVwiMTY6OVwiXS5lbWJlZCB7XG4gIHBhZGRpbmctYm90dG9tOiBAd2lkZXNjcmVlblJhdGlvO1xufVxuLnVpW2NsYXNzKj1cIjIxOjlcIl0uZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogQHVsdHJhV2lkZXNjcmVlblJhdGlvO1xufVxuXG5cblxuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTW9kYWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdtb2R1bGUnO1xuQGVsZW1lbnQgOiAnbW9kYWwnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTW9kYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5tb2RhbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogQHpJbmRleDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICBiYWNrZ3JvdW5kOiBAYmFja2dyb3VuZDtcbiAgYm9yZGVyOiBAYm9yZGVyO1xuICBib3gtc2hhZG93OiBAYm94U2hhZG93O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBAdHJhbnNmb3JtT3JpZ2luO1xuXG4gIGZsZXg6IDAgMCBhdXRvO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xuICB3aWxsLWNoYW5nZTogdG9wLCBsZWZ0LCBtYXJnaW4sIHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cblxuLnVpLm1vZGFsID4gOmZpcnN0LWNoaWxkOm5vdCguaWNvbiksXG4udWkubW9kYWwgPiAuaWNvbjpmaXJzdC1jaGlsZCArICoge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQGJvcmRlclJhZGl1cztcbn1cblxuLnVpLm1vZGFsID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAYm9yZGVyUmFkaXVzO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQGJvcmRlclJhZGl1cztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ2xvc2Vcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5tb2RhbCA+IC5jbG9zZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IEBjbG9zZVRvcDtcbiAgcmlnaHQ6IEBjbG9zZVJpZ2h0O1xuICB6LWluZGV4OiAxO1xuXG4gIG9wYWNpdHk6IEBjbG9zZU9wYWNpdHk7XG4gIGZvbnQtc2l6ZTogQGNsb3NlU2l6ZTtcbiAgY29sb3I6IEBjbG9zZUNvbG9yO1xuXG4gIHdpZHRoOiBAY2xvc2VIaXRib3g7XG4gIGhlaWdodDogQGNsb3NlSGl0Ym94O1xuICBwYWRkaW5nOiBAY2xvc2VQYWRkaW5nO1xufVxuLnVpLm1vZGFsID4gLmNsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIZWFkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5tb2RhbCA+IC5oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IEBoZWFkZXJGb250RmFtaWx5O1xuICBiYWNrZ3JvdW5kOiBAaGVhZGVyQmFja2dyb3VuZDtcbiAgbWFyZ2luOiBAaGVhZGVyTWFyZ2luO1xuICBwYWRkaW5nOiBAaGVhZGVyUGFkZGluZztcbiAgYm94LXNoYWRvdzogQGhlYWRlckJveFNoYWRvdztcblxuICBjb2xvcjogQGhlYWRlckNvbG9yO1xuICBib3JkZXItYm90dG9tOiBAaGVhZGVyQm9yZGVyO1xufVxuLnVpLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogQGhlYWRlckZvbnRTaXplO1xuICBsaW5lLWhlaWdodDogQGhlYWRlckxpbmVIZWlnaHQ7XG4gIGZvbnQtd2VpZ2h0OiBAaGVhZGVyRm9udFdlaWdodDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubW9kYWwgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiBAY29udGVudEZvbnRTaXplO1xuICBsaW5lLWhlaWdodDogQGNvbnRlbnRMaW5lSGVpZ2h0O1xuICBwYWRkaW5nOiBAY29udGVudFBhZGRpbmc7XG4gIGJhY2tncm91bmQ6IEBjb250ZW50QmFja2dyb3VuZDtcbn1cbi51aS5tb2RhbCA+IC5pbWFnZS5jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLyogSW1hZ2UgKi9cbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogQGltYWdlV2lkdGg7XG4gIGFsaWduLXNlbGY6IEBpbWFnZVZlcnRpY2FsQWxpZ247XG59XG4udWkubW9kYWwgPiBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkubW9kYWwgPiBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ge1xuICBhbGlnbi1zZWxmOiBtaWRkbGU7XG59XG4udWkubW9kYWwgPiBbY2xhc3MqPVwic3RyZXRjaGVkXCJdIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLyogRGVzY3JpcHRpb24gKi9cbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtaW4td2lkdGg6IDBweDtcbiAgYWxpZ24tc2VsZjogQGRlc2NyaXB0aW9uVmVydGljYWxBbGlnbjtcbn1cblxuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaWNvbiArIC5kZXNjcmlwdGlvbixcbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmltYWdlICsgLmRlc2NyaXB0aW9uIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIG1pbi13aWR0aDogQGRlc2NyaXB0aW9uTWluV2lkdGg7XG4gIHdpZHRoOiBAZGVzY3JpcHRpb25XaWR0aDtcbiAgcGFkZGluZy1sZWZ0OiBAZGVzY3JpcHRpb25EaXN0YW5jZTtcbn1cblxuLypydGw6aWdub3JlKi9cbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmltYWdlID4gaS5pY29uIHtcbiAgbWFyZ2luOiAwZW07XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiBAaW1hZ2VJY29uU2l6ZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3Rpb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubW9kYWwgPiAuYWN0aW9ucyB7XG4gIGJhY2tncm91bmQ6IEBhY3Rpb25CYWNrZ3JvdW5kO1xuICBwYWRkaW5nOiBAYWN0aW9uUGFkZGluZztcbiAgYm9yZGVyLXRvcDogQGFjdGlvbkJvcmRlcjtcbiAgdGV4dC1hbGlnbjogQGFjdGlvbkFsaWduO1xufVxuLnVpLm1vZGFsIC5hY3Rpb25zID4gLmJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiBAYnV0dG9uRGlzdGFuY2U7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFJlc3BvbnNpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogTW9kYWwgV2lkdGggKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IEBsYXJnZXN0TW9iaWxlU2NyZWVuKSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IEBtb2JpbGVXaWR0aDtcbiAgICBtYXJnaW46IEBtb2JpbGVNYXJnaW47XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IEB0YWJsZXRCcmVha3BvaW50KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IEB0YWJsZXRXaWR0aDtcbiAgICBtYXJnaW46IEB0YWJsZXRNYXJnaW47XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IEBjb21wdXRlckJyZWFrcG9pbnQpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogQGNvbXB1dGVyV2lkdGg7XG4gICAgbWFyZ2luOiBAY29tcHV0ZXJNYXJnaW47XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IEBsYXJnZU1vbml0b3JCcmVha3BvaW50KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IEBsYXJnZU1vbml0b3JXaWR0aDtcbiAgICBtYXJnaW46IEBsYXJnZU1vbml0b3JNYXJnaW47XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IEB3aWRlc2NyZWVuTW9uaXRvckJyZWFrcG9pbnQpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogQHdpZGVzY3JlZW5Nb25pdG9yV2lkdGg7XG4gICAgbWFyZ2luOiBAd2lkZXNjcmVlbk1vbml0b3JNYXJnaW47XG4gIH1cbn1cblxuLyogVGFibGV0IGFuZCBNb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IEBsYXJnZXN0VGFibGV0U2NyZWVuKSB7XG4gIC51aS5tb2RhbCA+IC5oZWFkZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IEBjbG9zZUhpdGJveDtcbiAgfVxuICAudWkubW9kYWwgPiAuY2xvc2Uge1xuICAgIHRvcDogQGlubmVyQ2xvc2VUb3A7XG4gICAgcmlnaHQ6IEBpbm5lckNsb3NlUmlnaHQ7XG4gICAgY29sb3I6IEBpbm5lckNsb3NlQ29sb3I7XG4gIH1cbn1cblxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuXG4gIC51aS5tb2RhbCA+IC5oZWFkZXIge1xuICAgIHBhZGRpbmc6IEBtb2JpbGVIZWFkZXJQYWRkaW5nICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogQGNsb3NlSGl0Ym94ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLm1vZGFsID4gLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IEBtb2JpbGVDb250ZW50UGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5tb2RhbCA+IC5jbG9zZSB7XG4gICAgdG9wOiBAbW9iaWxlQ2xvc2VUb3AgIWltcG9ydGFudDtcbiAgICByaWdodDogQG1vYmlsZUNsb3NlUmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qcnRsOmlnbm9yZSovXG4gIC51aS5tb2RhbCAuaW1hZ2UuY29udGVudCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudWkubW9kYWwgLmNvbnRlbnQgPiAuaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDBlbSBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IEBtb2JpbGVJbWFnZVBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICAudWkubW9kYWwgPiAuY29udGVudCA+IC5pbWFnZSA+IGkuaWNvbiB7XG4gICAgZm9udC1zaXplOiBAbW9iaWxlSW1hZ2VJY29uU2l6ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvKnJ0bDppZ25vcmUqL1xuICAudWkubW9kYWwgLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiBAbW9iaWxlRGVzY3JpcHRpb25QYWRkaW5nICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC8qIExldCBCdXR0b25zIFN0YWNrICovXG4gIC51aS5tb2RhbCA+IC5hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiBAbW9iaWxlQWN0aW9uUGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5tb2RhbCAuYWN0aW9ucyA+IC5idXR0b25zLFxuICAudWkubW9kYWwgLmFjdGlvbnMgPiAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiBAbW9iaWxlQnV0dG9uRGlzdGFuY2U7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLnVpLm1vZGFsIHtcbiAgYm94LXNoYWRvdzogQGludmVydGVkQm94U2hhZG93O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuYmFzaWMubW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IEBiYXNpY01vZGFsQ29sb3I7XG59XG4udWkuYmFzaWMubW9kYWwgPiAuaGVhZGVyLFxuLnVpLmJhc2ljLm1vZGFsID4gLmNvbnRlbnQsXG4udWkuYmFzaWMubW9kYWwgPiAuYWN0aW9ucyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnVpLmJhc2ljLm1vZGFsID4gLmhlYWRlciB7XG4gIGNvbG9yOiBAYmFzaWNNb2RhbEhlYWRlckNvbG9yO1xufVxuLnVpLmJhc2ljLm1vZGFsID4gLmNsb3NlIHtcbiAgdG9wOiBAYmFzaWNNb2RhbENsb3NlVG9wO1xuICByaWdodDogQGJhc2ljTW9kYWxDbG9zZVJpZ2h0O1xufVxuXG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLmJhc2ljLm1vZGFsIHtcbiAgY29sb3I6IEBiYXNpY0ludmVydGVkTW9kYWxDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgPiAudWkuYmFzaWMubW9kYWwgPiAuaGVhZGVyIHtcbiAgY29sb3I6IEBiYXNpY0ludmVydGVkTW9kYWxIZWFkZXJDb2xvcjtcbn1cblxuLyogUmVzb3J0IHRvIG1hcmdpbiBwb3NpdGlvbmluZyBpZiBsZWdhY3kgKi9cbi51aS5sZWdhY3kubW9kYWwsXG4udWkubGVnYWN5LnBhZ2UuZGltbWVyID4gLnVpLm1vZGFsIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbn1cblxuLnVpLmxlZ2FjeS5wYWdlLmRpbW1lciA+IC51aS5zY3JvbGxpbmcubW9kYWwsXG4udWkucGFnZS5kaW1tZXIgPiAudWkuc2Nyb2xsaW5nLmxlZ2FjeS5tb2RhbCxcbi51aS50b3AuYWxpZ25lZC5sZWdhY3kucGFnZS5kaW1tZXIgPiAudWkubW9kYWwsXG4udWkudG9wLmFsaWduZWQuZGltbWVyID4gLnVpLmxlZ2FjeS5tb2RhbCB7XG4gIHRvcDogYXV0bztcbn1cblxuLyogVGFibGV0IGFuZCBNb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IEBsYXJnZXN0VGFibGV0U2NyZWVuKSB7XG4gIC51aS5iYXNpYy5tb2RhbCA+IC5jbG9zZSB7XG4gICAgY29sb3I6IEBiYXNpY0lubmVyQ2xvc2VDb2xvcjtcbiAgfVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkubG9hZGluZy5tb2RhbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IEBsb2FkaW5nWkluZGV4O1xufVxuXG4udWkuYWN0aXZlLm1vZGFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFRvcCBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBUb3AgQWxpZ25lZCBNb2RhbCAqL1xuLm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLm1vZGFsIHtcbiAgbWFyZ2luOiBAdG9wQWxpZ25lZE1hcmdpbiBhdXRvO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLm1vZGFscy5kaW1tZXJbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLm1vZGFsIHtcbiAgICBtYXJnaW46IEBtb2JpbGVUb3BBbGlnbmVkTWFyZ2luIGF1dG87XG4gIH1cbn1cbi8qIExlZ2FjeSBUb3AgQWxpZ25lZCAqL1xuLmxlZ2FjeS5tb2RhbHMuZGltbWVyW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIHtcbiAgcGFkZGluZy10b3A6IEB0b3BBbGlnbmVkTWFyZ2luO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogQGxhcmdlc3RNb2JpbGVTY3JlZW4pIHtcbiAgLmxlZ2FjeS5tb2RhbHMuZGltbWVyW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIHtcbiAgICBwYWRkaW5nLXRvcDogQG1vYmlsZVRvcEFsaWduZWRNYXJnaW47XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogU2Nyb2xsaW5nIERpbW1lciAqL1xuLnNjcm9sbGluZy5kaW1tYWJsZS5kaW1tZWQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnNjcm9sbGluZy5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4uc2Nyb2xsaW5nLmRpbW1hYmxlLmRpbW1lZCA+IC5kaW1tZXIge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLnNjcm9sbGluZy5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4ubW9kYWxzLmRpbW1lciAudWkuc2Nyb2xsaW5nLm1vZGFsIHtcbiAgbWFyZ2luOiBAc2Nyb2xsaW5nTWFyZ2luIGF1dG87XG59XG5cbi8qIFVuZGV0YWNoZWQgU2Nyb2xsaW5nICovXG4uc2Nyb2xsaW5nLnVuZGV0YWNoZWQuZGltbWFibGUuZGltbWVkIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbi5zY3JvbGxpbmcudW5kZXRhY2hlZC5kaW1tYWJsZS5kaW1tZWQgPiAuZGltbWVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5zY3JvbGxpbmcudW5kZXRhY2hlZC5kaW1tYWJsZSAudWkuc2Nyb2xsaW5nLm1vZGFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6IEBzY3JvbGxpbmdNYXJnaW4gIWltcG9ydGFudDtcbn1cblxuLyogU2Nyb2xsaW5nIENvbnRlbnQgKi9cbi51aS5tb2RhbCAuc2Nyb2xsaW5nLmNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiBAc2Nyb2xsaW5nQ29udGVudE1heEhlaWdodDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZ1bGwgU2NyZWVuXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZnVsbHNjcmVlbi5tb2RhbCB7XG4gIHdpZHRoOiBAZnVsbFNjcmVlbldpZHRoICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogQGZ1bGxTY3JlZW5NYXJnaW47XG59XG4udWkuZnVsbHNjcmVlbi5tb2RhbCA+IC5oZWFkZXIge1xuICBwYWRkaW5nLXJpZ2h0OiBAY2xvc2VIaXRib3g7XG59XG4udWkuZnVsbHNjcmVlbi5tb2RhbCA+IC5jbG9zZSB7XG4gIHRvcDogQGlubmVyQ2xvc2VUb3A7XG4gIHJpZ2h0OiBAaW5uZXJDbG9zZVJpZ2h0O1xuICBjb2xvcjogQGlubmVyQ2xvc2VDb2xvcjtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubW9kYWwge1xuICBmb250LXNpemU6IEBtZWRpdW07XG59XG5cbi8qIE1pbmkgKi9cbi51aS5taW5pLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogQG1pbmlIZWFkZXJTaXplO1xufVxuXG4vKiBNaW5pIE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IEBtaW5pTW9iaWxlV2lkdGg7XG4gICAgbWFyZ2luOiBAbWluaU1vYmlsZU1hcmdpbjtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogQHRhYmxldEJyZWFrcG9pbnQpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiBAbWluaVRhYmxldFdpZHRoO1xuICAgIG1hcmdpbjogQG1pbmlUYWJsZXRNYXJnaW47XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IEBjb21wdXRlckJyZWFrcG9pbnQpIHtcbiAgLnVpLm1pbmkubW9kYWwge1xuICAgIHdpZHRoOiBAbWluaUNvbXB1dGVyV2lkdGg7XG4gICAgbWFyZ2luOiBAbWluaUNvbXB1dGVyTWFyZ2luO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiBAbGFyZ2VNb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IEBtaW5pTGFyZ2VNb25pdG9yV2lkdGg7XG4gICAgbWFyZ2luOiBAbWluaUxhcmdlTW9uaXRvck1hcmdpbjtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogQHdpZGVzY3JlZW5Nb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IEBtaW5pV2lkZXNjcmVlbk1vbml0b3JXaWR0aDtcbiAgICBtYXJnaW46IEBtaW5pV2lkZXNjcmVlbk1vbml0b3JNYXJnaW47XG4gIH1cbn1cblxuLyogbWluaSAqL1xuLnVpLnNtYWxsLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogQG1pbmlIZWFkZXJTaXplO1xufVxuXG4vKiBUaW55IE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IEB0aW55TW9iaWxlV2lkdGg7XG4gICAgbWFyZ2luOiBAdGlueU1vYmlsZU1hcmdpbjtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogQHRhYmxldEJyZWFrcG9pbnQpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiBAdGlueVRhYmxldFdpZHRoO1xuICAgIG1hcmdpbjogQHRpbnlUYWJsZXRNYXJnaW47XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IEBjb21wdXRlckJyZWFrcG9pbnQpIHtcbiAgLnVpLnRpbnkubW9kYWwge1xuICAgIHdpZHRoOiBAdGlueUNvbXB1dGVyV2lkdGg7XG4gICAgbWFyZ2luOiBAdGlueUNvbXB1dGVyTWFyZ2luO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiBAbGFyZ2VNb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IEB0aW55TGFyZ2VNb25pdG9yV2lkdGg7XG4gICAgbWFyZ2luOiBAdGlueUxhcmdlTW9uaXRvck1hcmdpbjtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogQHdpZGVzY3JlZW5Nb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IEB0aW55V2lkZXNjcmVlbk1vbml0b3JXaWR0aDtcbiAgICBtYXJnaW46IEB0aW55V2lkZXNjcmVlbk1vbml0b3JNYXJnaW47XG4gIH1cbn1cblxuLyogU21hbGwgKi9cbi51aS5zbWFsbC5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IEBzbWFsbEhlYWRlclNpemU7XG59XG5cbi8qIFNtYWxsIE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiBAc21hbGxNb2JpbGVXaWR0aDtcbiAgICBtYXJnaW46IEBzbWFsbE1vYmlsZU1hcmdpbjtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogQHRhYmxldEJyZWFrcG9pbnQpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogQHNtYWxsVGFibGV0V2lkdGg7XG4gICAgbWFyZ2luOiBAc21hbGxUYWJsZXRNYXJnaW47XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IEBjb21wdXRlckJyZWFrcG9pbnQpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogQHNtYWxsQ29tcHV0ZXJXaWR0aDtcbiAgICBtYXJnaW46IEBzbWFsbENvbXB1dGVyTWFyZ2luO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiBAbGFyZ2VNb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiBAc21hbGxMYXJnZU1vbml0b3JXaWR0aDtcbiAgICBtYXJnaW46IEBzbWFsbExhcmdlTW9uaXRvck1hcmdpbjtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogQHdpZGVzY3JlZW5Nb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiBAc21hbGxXaWRlc2NyZWVuTW9uaXRvcldpZHRoO1xuICAgIG1hcmdpbjogQHNtYWxsV2lkZXNjcmVlbk1vbml0b3JNYXJnaW47XG4gIH1cbn1cblxuLyogTGFyZ2UgTW9kYWwgV2lkdGggKi9cbi51aS5sYXJnZS5tb2RhbCA+IC5oZWFkZXIge1xuICBmb250LXNpemU6IEBsYXJnZUhlYWRlclNpemU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiBAbGFyZ2VzdE1vYmlsZVNjcmVlbikge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiBAbGFyZ2VNb2JpbGVXaWR0aDtcbiAgICBtYXJnaW46IEBsYXJnZU1vYmlsZU1hcmdpbjtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogQHRhYmxldEJyZWFrcG9pbnQpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogQGxhcmdlVGFibGV0V2lkdGg7XG4gICAgbWFyZ2luOiBAbGFyZ2VUYWJsZXRNYXJnaW47XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IEBjb21wdXRlckJyZWFrcG9pbnQpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogQGxhcmdlQ29tcHV0ZXJXaWR0aDtcbiAgICBtYXJnaW46IEBsYXJnZUNvbXB1dGVyTWFyZ2luO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiBAbGFyZ2VNb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiBAbGFyZ2VMYXJnZU1vbml0b3JXaWR0aDtcbiAgICBtYXJnaW46IEBsYXJnZUxhcmdlTW9uaXRvck1hcmdpbjtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogQHdpZGVzY3JlZW5Nb25pdG9yQnJlYWtwb2ludCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiBAbGFyZ2VXaWRlc2NyZWVuTW9uaXRvcldpZHRoO1xuICAgIG1hcmdpbjogQGxhcmdlV2lkZXNjcmVlbk1vbml0b3JNYXJnaW47XG4gIH1cbn1cblxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBOYWdcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdtb2R1bGUnO1xuQGVsZW1lbnQgOiAnbmFnJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE5hZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLm5hZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG9wYWNpdHk6IEBvcGFjaXR5O1xuICBwb3NpdGlvbjogQHBvc2l0aW9uO1xuXG4gIHRvcDogQHRvcDtcbiAgbGVmdDogMHB4O1xuICB6LWluZGV4OiBAekluZGV4O1xuXG4gIG1pbi1oZWlnaHQ6IEBtaW5IZWlnaHQ7XG4gIHdpZHRoOiBAd2lkdGg7XG5cbiAgbWFyZ2luOiBAbWFyZ2luO1xuICBwYWRkaW5nOiBAcGFkZGluZztcblxuICBiYWNrZ3JvdW5kOiBAYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogQGJveFNoYWRvdztcblxuICBmb250LXNpemU6IEBmb250U2l6ZTtcbiAgdGV4dC1hbGlnbjogQHRleHRBbGlnbjtcbiAgY29sb3I6IEBjb2xvcjtcblxuICBib3JkZXItcmFkaXVzOiBAdG9wQm9yZGVyUmFkaXVzO1xuICB0cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbn1cblxuYS51aS5uYWcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi51aS5uYWcgPiAudGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogQHRpdGxlTWFyZ2luO1xuICBjb2xvcjogQHRpdGxlQ29sb3I7XG59XG5cblxuLnVpLm5hZyA+IC5jbG9zZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiBAY2xvc2VPcGFjaXR5O1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBAY2xvc2VUb3A7XG4gIHJpZ2h0OiBAY2xvc2VSaWdodDtcblxuICBmb250LXNpemU6IEBjbG9zZVNpemU7XG5cbiAgbWFyZ2luOiBAY2xvc2VNYXJnaW47XG4gIGNvbG9yOiBAY2xvc2VDb2xvcjtcbiAgdHJhbnNpdGlvbjogQGNsb3NlVHJhbnNpdGlvbjtcbn1cblxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiBIb3ZlciAqL1xuLnVpLm5hZzpob3ZlciB7XG4gIGJhY2tncm91bmQ6IEBuYWdIb3ZlckJhY2tncm91bmQ7XG4gIG9wYWNpdHk6IEBuYWdIb3Zlck9wYWNpdHk7XG59XG5cbi51aS5uYWcgLmNsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogQGNsb3NlSG92ZXJPcGFjaXR5O1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdGF0aWNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5vdmVybGF5Lm5hZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5maXhlZC5uYWcge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQm90dG9tXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYm90dG9tLm5hZ3MsXG4udWkuYm90dG9tLm5hZyB7XG4gIGJvcmRlci1yYWRpdXM6IEBib3R0b21Cb3JkZXJSYWRpdXM7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiBAYm90dG9tO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFdoaXRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW52ZXJ0ZWQubmFncyAubmFnLFxuLnVpLmludmVydGVkLm5hZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnRlZEJhY2tncm91bmQ7XG4gIGNvbG9yOiBAZGFya1RleHRDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5uYWdzIC5uYWcgLmNsb3NlLFxuLnVpLmludmVydGVkLm5hZ3MgLm5hZyAudGl0bGUsXG4udWkuaW52ZXJ0ZWQubmFnIC5jbG9zZSxcbi51aS5pbnZlcnRlZC5uYWcgLnRpdGxlIHtcbiAgY29sb3I6IEBsaWdodFRleHRDb2xvcjtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5uYWdzIC5uYWcge1xuICBib3JkZXItcmFkaXVzOiBAZ3JvdXBlZEJvcmRlclJhZGl1cyAhaW1wb3J0YW50O1xufVxuLnVpLm5hZ3MgLm5hZzpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogQHRvcEJvcmRlclJhZGl1cztcbn1cbi51aS5ib3R0b20ubmFncyAubmFnOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBAYm90dG9tQm9yZGVyUmFkaXVzO1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBQb3B1cFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ21vZHVsZSc7XG5AZWxlbWVudCA6ICdwb3B1cCc7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUG9wdXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5wb3B1cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG5cbiAgLyogRml4ZXMgY29udGVudCBiZWluZyBzcXVpc2hlZCB3aGVuIGlubGluZSAobW96IG9ubHkpICovXG4gIG1pbi13aWR0aDogbWluLWNvbnRlbnQ7XG4gIHotaW5kZXg6IEB6SW5kZXg7XG5cbiAgYm9yZGVyOiBAYm9yZGVyO1xuICBsaW5lLWhlaWdodDogQGxpbmVIZWlnaHQ7XG4gIG1heC13aWR0aDogQG1heFdpZHRoO1xuICBiYWNrZ3JvdW5kOiBAYmFja2dyb3VuZDtcblxuICBwYWRkaW5nOiBAdmVydGljYWxQYWRkaW5nIEBob3Jpem9udGFsUGFkZGluZztcbiAgZm9udC13ZWlnaHQ6IEBmb250V2VpZ2h0O1xuICBmb250LXN0eWxlOiBAZm9udFN0eWxlO1xuICBjb2xvcjogQGNvbG9yO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG4gIGJveC1zaGFkb3c6IEBib3hTaGFkb3c7XG59XG4udWkucG9wdXAgPiAuaGVhZGVyIHtcbiAgcGFkZGluZzogMGVtO1xuXG4gIGZvbnQtZmFtaWx5OiBAaGVhZGVyRm9udDtcbiAgZm9udC1zaXplOiBAaGVhZGVyRm9udFNpemU7XG4gIGxpbmUtaGVpZ2h0OiBAaGVhZGVyTGluZUhlaWdodDtcbiAgZm9udC13ZWlnaHQ6IEBoZWFkZXJGb250V2VpZ2h0O1xufVxuLnVpLnBvcHVwID4gLmhlYWRlciArIC5jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IEBoZWFkZXJEaXN0YW5jZTtcbn1cblxuLnVpLnBvcHVwOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiBAYXJyb3dTaXplO1xuICBoZWlnaHQ6IEBhcnJvd1NpemU7XG5cbiAgYmFja2dyb3VuZDogQGFycm93QmFja2dyb3VuZDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXG4gIHotaW5kZXg6IEBhcnJvd1pJbmRleDtcbiAgYm94LXNoYWRvdzogQGFycm93Qm94U2hhZG93O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBUb29sdGlwXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBDb250ZW50ICovXG5bZGF0YS10b29sdGlwXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogQXJyb3cgKi9cbltkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBmb250LXNpemU6IEBtZWRpdW07XG4gIHdpZHRoOiBAYXJyb3dTaXplO1xuICBoZWlnaHQ6IEBhcnJvd1NpemU7XG5cbiAgYmFja2dyb3VuZDogQHRvb2x0aXBBcnJvd0JhY2tncm91bmQ7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICB6LWluZGV4OiBAYXJyb3daSW5kZXg7XG4gIGJveC1zaGFkb3c6IEB0b29sdGlwQXJyb3dCb3hTaGFkb3c7XG59XG5cbi8qIFBvcHVwICovXG5bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgZm9udC1zaXplOiBAdG9vbHRpcEZvbnRTaXplO1xuXG4gIGJvcmRlcjogQHRvb2x0aXBCb3JkZXI7XG4gIGxpbmUtaGVpZ2h0OiBAdG9vbHRpcExpbmVIZWlnaHQ7XG4gIG1heC13aWR0aDogQHRvb2x0aXBNYXhXaWR0aDtcbiAgYmFja2dyb3VuZDogQHRvb2x0aXBCYWNrZ3JvdW5kO1xuXG4gIHBhZGRpbmc6IEB0b29sdGlwUGFkZGluZztcbiAgZm9udC13ZWlnaHQ6IEB0b29sdGlwRm9udFdlaWdodDtcbiAgZm9udC1zdHlsZTogQHRvb2x0aXBGb250U3R5bGU7XG4gIGNvbG9yOiBAdG9vbHRpcENvbG9yO1xuXG4gIGJvcmRlci1yYWRpdXM6IEB0b29sdGlwQm9yZGVyUmFkaXVzO1xuICBib3gtc2hhZG93OiBAdG9vbHRpcEJveFNoYWRvdztcbiAgei1pbmRleDogQHRvb2x0aXBaSW5kZXg7XG59XG5cbi8qIERlZmF1bHQgUG9zaXRpb24gKFRvcCBDZW50ZXIpICovXG5bZGF0YS10b29sdGlwXTpub3QoW2RhdGEtcG9zaXRpb25dKTpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgYmFja2dyb3VuZDogQHRvb2x0aXBBcnJvd0JvdHRvbUJhY2tncm91bmQ7XG4gIG1hcmdpbi1sZWZ0OiBAdG9vbHRpcEFycm93SG9yaXpvbnRhbE9mZnNldDtcbiAgbWFyZ2luLWJvdHRvbTogLUB0b29sdGlwQXJyb3dWZXJ0aWNhbE9mZnNldDtcbn1cbltkYXRhLXRvb2x0aXBdOm5vdChbZGF0YS1wb3NpdGlvbl0pOmFmdGVyIHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogQHRvb2x0aXBEaXN0YW5jZUF3YXk7XG59XG5cbi8qIEFuaW1hdGlvbiAqL1xuW2RhdGEtdG9vbHRpcF06YmVmb3JlLFxuW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHNjYWxlKDApICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG4gIHRyYW5zaXRpb246XG4gICAgYWxsIEB0b29sdGlwRHVyYXRpb24gQHRvb2x0aXBFYXNpbmdcbiAgO1xufVxuW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICB0cmFuc2l0aW9uOlxuICAgIGFsbCBAdG9vbHRpcER1cmF0aW9uIEB0b29sdGlwRWFzaW5nXG4gIDtcbn1cbltkYXRhLXRvb2x0aXBdOmhvdmVyOmJlZm9yZSxcbltkYXRhLXRvb2x0aXBdOmhvdmVyOmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5bZGF0YS10b29sdGlwXTpob3ZlcjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMSkgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogQW5pbWF0aW9uIFBvc2l0aW9uICovXG5bZGF0YS10b29sdGlwXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgY2VudGVyXCJdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl06YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMCkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdOmhvdmVyOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl06aG92ZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMSkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl06YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMCkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl06aG92ZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMSkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgcmlnaHRcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIHJpZ2h0XCJdOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKSAhaW1wb3J0YW50O1xufVxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInRvcCBsZWZ0XCJdOmhvdmVyOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cInRvcCByaWdodFwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gbGVmdFwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl06aG92ZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpICFpbXBvcnRhbnQ7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBBcnJvdyAqL1xuW2RhdGEtdG9vbHRpcF1bZGF0YS1pbnZlcnRlZF06YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBBcnJvdyBQb3NpdGlvbiAqL1xuW2RhdGEtdG9vbHRpcF1bZGF0YS1pbnZlcnRlZF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQXJyb3dCb3R0b21CYWNrZ3JvdW5kO1xufVxuXG4vKiBQb3B1cCAgKi9cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogQHRvb2x0aXBJbnZlcnRlZEJhY2tncm91bmQ7XG4gIGNvbG9yOiBAdG9vbHRpcEludmVydGVkQ29sb3I7XG4gIGJvcmRlcjogQHRvb2x0aXBJbnZlcnRlZEJvcmRlcjtcbiAgYm94LXNoYWRvdzogQHRvb2x0aXBJbnZlcnRlZEJveFNoYWRvdztcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmFmdGVyIC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdG9vbHRpcEludmVydGVkSGVhZGVyQmFja2dyb3VuZDtcbiAgY29sb3I6IEB0b29sdGlwSW52ZXJ0ZWRIZWFkZXJDb2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBvc2l0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBUb3AgQ2VudGVyICovXG5bZGF0YS1wb3NpdGlvbj1cInRvcCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIG1hcmdpbi1ib3R0b206IEB0b29sdGlwRGlzdGFuY2VBd2F5O1xufVxuW2RhdGEtcG9zaXRpb249XCJ0b3AgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIGJhY2tncm91bmQ6IEB0b29sdGlwQXJyb3dUb3BCYWNrZ3JvdW5kO1xuICBtYXJnaW4tbGVmdDogQHRvb2x0aXBBcnJvd0hvcml6b250YWxPZmZzZXQ7XG4gIG1hcmdpbi1ib3R0b206IC1AdG9vbHRpcEFycm93VmVydGljYWxPZmZzZXQ7XG59XG5cbi8qIFRvcCBMZWZ0ICovXG5bZGF0YS1wb3NpdGlvbj1cInRvcCBsZWZ0XCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IEB0b29sdGlwRGlzdGFuY2VBd2F5O1xufVxuW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogQGFycm93RGlzdGFuY2VGcm9tRWRnZTtcbiAgbWFyZ2luLWxlZnQ6IEB0b29sdGlwQXJyb3dIb3Jpem9udGFsT2Zmc2V0O1xuICBtYXJnaW4tYm90dG9tOiAtQHRvb2x0aXBBcnJvd1ZlcnRpY2FsT2Zmc2V0O1xufVxuXG4vKiBUb3AgUmlnaHQgKi9cbltkYXRhLXBvc2l0aW9uPVwidG9wIHJpZ2h0XCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IEB0b29sdGlwRGlzdGFuY2VBd2F5O1xufVxuW2RhdGEtcG9zaXRpb249XCJ0b3AgcmlnaHRcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgcmlnaHQ6IEBhcnJvd0Rpc3RhbmNlRnJvbUVkZ2U7XG4gIG1hcmdpbi1sZWZ0OiBAdG9vbHRpcEFycm93SG9yaXpvbnRhbE9mZnNldDtcbiAgbWFyZ2luLWJvdHRvbTogLUB0b29sdGlwQXJyb3dWZXJ0aWNhbE9mZnNldDtcbn1cblxuXG4vKiBCb3R0b20gQ2VudGVyICovXG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIG1hcmdpbi10b3A6IEB0b29sdGlwRGlzdGFuY2VBd2F5O1xufVxuW2RhdGEtcG9zaXRpb249XCJib3R0b20gY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiBAdG9vbHRpcEFycm93SG9yaXpvbnRhbE9mZnNldDtcbiAgbWFyZ2luLXRvcDogLUB0b29sdGlwQXJyb3dWZXJ0aWNhbE9mZnNldDtcbn1cblxuLyogQm90dG9tIExlZnQgKi9cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMTAwJTtcbiAgbWFyZ2luLXRvcDogQHRvb2x0aXBEaXN0YW5jZUF3YXk7XG59XG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBsZWZ0XCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiBAYXJyb3dEaXN0YW5jZUZyb21FZGdlO1xuICBtYXJnaW4tbGVmdDogQHRvb2x0aXBBcnJvd0hvcml6b250YWxPZmZzZXQ7XG4gIG1hcmdpbi10b3A6IC1AdG9vbHRpcEFycm93VmVydGljYWxPZmZzZXQ7XG59XG5cbi8qIEJvdHRvbSBSaWdodCAqL1xuW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IEB0b29sdGlwRGlzdGFuY2VBd2F5O1xufVxuW2RhdGEtcG9zaXRpb249XCJib3R0b20gcmlnaHRcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IEBhcnJvd0Rpc3RhbmNlRnJvbUVkZ2U7XG4gIG1hcmdpbi1sZWZ0OiBAdG9vbHRpcEFycm93VmVydGljYWxPZmZzZXQ7XG4gIG1hcmdpbi10b3A6IC1AdG9vbHRpcEFycm93SG9yaXpvbnRhbE9mZnNldDtcbn1cblxuLyogTGVmdCBDZW50ZXIgKi9cbltkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHJpZ2h0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXJpZ2h0OiBAdG9vbHRpcERpc3RhbmNlQXdheTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHJpZ2h0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogQHRvb2x0aXBBcnJvd1ZlcnRpY2FsT2Zmc2V0O1xuICBtYXJnaW4tcmlnaHQ6IEB0b29sdGlwQXJyb3dIb3Jpem9udGFsT2Zmc2V0O1xufVxuXG4vKiBSaWdodCBDZW50ZXIgKi9cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBsZWZ0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IEB0b29sdGlwRGlzdGFuY2VBd2F5O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGxlZnQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiBAdG9vbHRpcEFycm93SG9yaXpvbnRhbE9mZnNldDtcbiAgbWFyZ2luLWxlZnQ6IC1AdG9vbHRpcEFycm93VmVydGljYWxPZmZzZXQ7XG59XG5cbi8qIEFycm93ICovXG5bZGF0YS1wb3NpdGlvbn49XCJib3R0b21cIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBAYXJyb3dUb3BCYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBAYm90dG9tQXJyb3dCb3hTaGFkb3c7XG59XG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGFycm93Q2VudGVyQmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogQGxlZnRBcnJvd0JveFNoYWRvdztcbn1cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGFycm93Q2VudGVyQmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogQHJpZ2h0QXJyb3dCb3hTaGFkb3c7XG59XG5bZGF0YS1wb3NpdGlvbn49XCJ0b3BcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBAYXJyb3dCb3R0b21CYWNrZ3JvdW5kO1xufVxuXG4vKiBJbnZlcnRlZCBBcnJvdyBDb2xvciAqL1xuW2RhdGEtaW52ZXJ0ZWRdW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQXJyb3dUb3BCYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBAYm90dG9tQXJyb3dCb3hTaGFkb3c7XG59XG5bZGF0YS1pbnZlcnRlZF1bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQXJyb3dDZW50ZXJCYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiBAbGVmdEFycm93Qm94U2hhZG93O1xufVxuW2RhdGEtaW52ZXJ0ZWRdW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBAaW52ZXJ0ZWRBcnJvd0NlbnRlckJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6IEByaWdodEFycm93Qm94U2hhZG93O1xufVxuW2RhdGEtaW52ZXJ0ZWRdW2RhdGEtcG9zaXRpb25+PVwidG9wXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQXJyb3dCb3R0b21CYWNrZ3JvdW5kO1xufVxuXG5bZGF0YS1wb3NpdGlvbn49XCJib3R0b21cIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuW2RhdGEtcG9zaXRpb25+PVwiYm90dG9tXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xufVxuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG59XG5bZGF0YS1wb3NpdGlvbj1cInJpZ2h0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbn1cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTcGFjaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkucG9wdXAge1xuICBtYXJnaW46IDBlbTtcbn1cblxuLyogRXh0ZW5kaW5nIGZyb20gVG9wICovXG4udWkudG9wLnBvcHVwIHtcbiAgbWFyZ2luOiAwZW0gMGVtIEBwb3B1cERpc3RhbmNlQXdheTtcbn1cbi51aS50b3AubGVmdC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xufVxuLnVpLnRvcC5jZW50ZXIucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuLnVpLnRvcC5yaWdodC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbn1cblxuLyogRXh0ZW5kaW5nIGZyb20gVmVydGljYWwgQ2VudGVyICovXG4udWkubGVmdC5jZW50ZXIucG9wdXAge1xuICBtYXJnaW46IDBlbSBAcG9wdXBEaXN0YW5jZUF3YXkgMGVtIDBlbTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgNTAlO1xufVxuLnVpLnJpZ2h0LmNlbnRlci5wb3B1cCB7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gQHBvcHVwRGlzdGFuY2VBd2F5O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IDUwJTtcbn1cblxuLyogRXh0ZW5kaW5nIGZyb20gQm90dG9tICovXG4udWkuYm90dG9tLnBvcHVwIHtcbiAgbWFyZ2luOiBAcG9wdXBEaXN0YW5jZUF3YXkgMGVtIDBlbTtcbn1cbi51aS5ib3R0b20ubGVmdC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuLnVpLmJvdHRvbS5jZW50ZXIucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xufVxuLnVpLmJvdHRvbS5yaWdodC5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQb2ludGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLSBCZWxvdyAtLS0qL1xuLnVpLmJvdHRvbS5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IEBhcnJvd09mZnNldDtcbiAgdG9wOiBAYXJyb3dPZmZzZXQ7XG4gIGxlZnQ6IDUwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgYm94LXNoYWRvdzogQGJvdHRvbUFycm93Qm94U2hhZG93O1xufVxuXG4udWkuYm90dG9tLmxlZnQucG9wdXAge1xuICBtYXJnaW4tbGVmdDogQGJveEFycm93T2Zmc2V0O1xufVxuLypydGw6cmVuYW1lKi9cbi51aS5ib3R0b20ubGVmdC5wb3B1cDpiZWZvcmUge1xuICB0b3A6IEBhcnJvd09mZnNldDtcbiAgbGVmdDogQGFycm93RGlzdGFuY2VGcm9tRWRnZTtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgYm94LXNoYWRvdzogQGJvdHRvbUFycm93Qm94U2hhZG93O1xufVxuXG4udWkuYm90dG9tLnJpZ2h0LnBvcHVwIHtcbiAgbWFyZ2luLXJpZ2h0OiBAYm94QXJyb3dPZmZzZXQ7XG59XG4vKnJ0bDpyZW5hbWUqL1xuLnVpLmJvdHRvbS5yaWdodC5wb3B1cDpiZWZvcmUge1xuICB0b3A6IEBhcnJvd09mZnNldDtcbiAgcmlnaHQ6IEBhcnJvd0Rpc3RhbmNlRnJvbUVkZ2U7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgYm94LXNoYWRvdzogQGJvdHRvbUFycm93Qm94U2hhZG93O1xufVxuXG4vKi0tLSBBYm92ZSAtLS0qL1xuLnVpLnRvcC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBAYXJyb3dPZmZzZXQ7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IEBhcnJvd09mZnNldDtcbn1cbi51aS50b3AubGVmdC5wb3B1cCB7XG4gIG1hcmdpbi1sZWZ0OiBAYm94QXJyb3dPZmZzZXQ7XG59XG4vKnJ0bDpyZW5hbWUqL1xuLnVpLnRvcC5sZWZ0LnBvcHVwOmJlZm9yZSB7XG4gIGJvdHRvbTogQGFycm93T2Zmc2V0O1xuICBsZWZ0OiBAYXJyb3dEaXN0YW5jZUZyb21FZGdlO1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLnRvcC5yaWdodC5wb3B1cCB7XG4gIG1hcmdpbi1yaWdodDogQGJveEFycm93T2Zmc2V0O1xufVxuLypydGw6cmVuYW1lKi9cbi51aS50b3AucmlnaHQucG9wdXA6YmVmb3JlIHtcbiAgYm90dG9tOiBAYXJyb3dPZmZzZXQ7XG4gIHJpZ2h0OiBAYXJyb3dEaXN0YW5jZUZyb21FZGdlO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG5cbi8qLS0tIExlZnQgQ2VudGVyIC0tLSovXG4vKnJ0bDpyZW5hbWUqL1xuLnVpLmxlZnQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogNTAlO1xuICByaWdodDogQGFycm93T2Zmc2V0O1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IEBhcnJvd09mZnNldDtcbiAgYm94LXNoYWRvdzogQGxlZnRBcnJvd0JveFNoYWRvdztcbn1cblxuLyotLS0gUmlnaHQgQ2VudGVyICAtLS0qL1xuLypydGw6cmVuYW1lKi9cbi51aS5yaWdodC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IEBhcnJvd09mZnNldDtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luLXRvcDogQGFycm93T2Zmc2V0O1xuICBib3gtc2hhZG93OiBAcmlnaHRBcnJvd0JveFNoYWRvdztcbn1cblxuLyogQXJyb3cgQ29sb3IgQnkgTG9jYXRpb24gKi9cbi51aS5ib3R0b20ucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGFycm93VG9wQmFja2dyb3VuZDtcbn1cbi51aS5yaWdodC5jZW50ZXIucG9wdXA6YmVmb3JlLFxuLnVpLmxlZnQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IEBhcnJvd0NlbnRlckJhY2tncm91bmQ7XG59XG4udWkudG9wLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IEBhcnJvd0JvdHRvbUJhY2tncm91bmQ7XG59XG5cbi8qIEludmVydGVkIEFycm93IENvbG9yICovXG4udWkuaW52ZXJ0ZWQuYm90dG9tLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZEFycm93VG9wQmFja2dyb3VuZDtcbn1cbi51aS5pbnZlcnRlZC5yaWdodC5jZW50ZXIucG9wdXA6YmVmb3JlLFxuLnVpLmludmVydGVkLmxlZnQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZEFycm93Q2VudGVyQmFja2dyb3VuZDtcbn1cbi51aS5pbnZlcnRlZC50b3AucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQXJyb3dCb3R0b21CYWNrZ3JvdW5kO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogSW1tZWRpYXRlIE5lc3RlZCBHcmlkICovXG4udWkucG9wdXAgPiAudWkuZ3JpZDpub3QoLnBhZGRlZCkge1xuICB3aWR0aDogQG5lc3RlZEdyaWRXaWR0aDtcbiAgbWFyZ2luOiBAbmVzdGVkR3JpZE1hcmdpbjtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnVpLmxvYWRpbmcucG9wdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiBAbG9hZGluZ1pJbmRleDtcbn1cblxuLnVpLmFuaW1hdGluZy5wb3B1cCxcbi51aS52aXNpYmxlLnBvcHVwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi51aS52aXNpYmxlLnBvcHVwIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCYXNpY1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmJhc2ljLnBvcHVwOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXaWRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkud2lkZS5wb3B1cCB7XG4gIG1heC13aWR0aDogQHdpZGVXaWR0aDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ucG9wdXAge1xuICBtYXgtd2lkdGg6IEB2ZXJ5V2lkZVdpZHRoO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBsYXJnZXN0TW9iaWxlU2NyZWVuKSB7XG4gIC51aS53aWRlLnBvcHVwLFxuICAudWlbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnBvcHVwIHtcbiAgICBtYXgtd2lkdGg6IEBtYXhXaWR0aDtcbiAgfVxufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5mbHVpZC5wb3B1cCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEludmVydGVkIGNvbG9ycyAgKi9cbi51aS5pbnZlcnRlZC5wb3B1cCB7XG4gIGJhY2tncm91bmQ6IEBpbnZlcnRlZEJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaW52ZXJ0ZWRDb2xvcjtcbiAgYm9yZGVyOiBAaW52ZXJ0ZWRCb3JkZXI7XG4gIGJveC1zaGFkb3c6IEBpbnZlcnRlZEJveFNoYWRvdztcbn1cbi51aS5pbnZlcnRlZC5wb3B1cCAuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGludmVydGVkSGVhZGVyQmFja2dyb3VuZDtcbiAgY29sb3I6IEBpbnZlcnRlZEhlYWRlckNvbG9yO1xufVxuLnVpLmludmVydGVkLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnRlZEFycm93Q29sb3I7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbG93aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuZmxvd2luZy5wb3B1cCB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWluaS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogQG1pbmk7XG59XG4udWkudGlueS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogQHRpbnk7XG59XG4udWkuc21hbGwucG9wdXAge1xuICBmb250LXNpemU6IEBzbWFsbDtcbn1cbi51aS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bTtcbn1cbi51aS5sYXJnZS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogQGxhcmdlO1xufVxuLnVpLmh1Z2UucG9wdXAge1xuICBmb250LXNpemU6IEBodWdlO1xufVxuXG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFByb2dyZXNzIEJhclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ21vZHVsZSc7XG5AZWxlbWVudCA6ICdwcm9ncmVzcyc7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFByb2dyZXNzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkucHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogQGJvcmRlcjtcbiAgbWFyZ2luOiBAbWFyZ2luO1xuICBib3gtc2hhZG93OiBAYm94U2hhZG93O1xuICBiYWNrZ3JvdW5kOiBAYmFja2dyb3VuZDtcbiAgcGFkZGluZzogQHBhZGRpbmc7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXJSYWRpdXM7XG59XG5cbi51aS5wcm9ncmVzczpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbjogQGZpcnN0TWFyZ2luO1xufVxuLnVpLnByb2dyZXNzOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IEBsYXN0TWFyZ2luO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogQWN0aXZpdHkgQmFyICovXG4udWkucHJvZ3Jlc3MgLmJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IEBiYXJQb3NpdGlvbjtcbiAgd2lkdGg6IEBiYXJJbml0aWFsV2lkdGg7XG4gIG1pbi13aWR0aDogQGJhck1pbldpZHRoO1xuICBiYWNrZ3JvdW5kOiBAYmFyQmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogQGJhckJvcmRlclJhZGl1cztcbiAgdHJhbnNpdGlvbjogQGJhclRyYW5zaXRpb247XG59XG5cbi8qIFBlcmNlbnQgQ29tcGxldGUgKi9cbi51aS5wcm9ncmVzcyAuYmFyID4gLnByb2dyZXNzIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcG9zaXRpb246IEBwcm9ncmVzc1Bvc2l0aW9uO1xuICB3aWR0aDogQHByb2dyZXNzV2lkdGg7XG4gIGZvbnQtc2l6ZTogQHByb2dyZXNzU2l6ZTtcbiAgdG9wOiBAcHJvZ3Jlc3NUb3A7XG4gIHJpZ2h0OiBAcHJvZ3Jlc3NSaWdodDtcbiAgbGVmdDogQHByb2dyZXNzTGVmdDtcbiAgYm90dG9tOiBAcHJvZ3Jlc3NCb3R0b207XG4gIGNvbG9yOiBAcHJvZ3Jlc3NDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBwcm9ncmVzc1RleHRTaGFkb3c7XG4gIG1hcmdpbi10b3A6IEBwcm9ncmVzc09mZnNldDtcbiAgZm9udC13ZWlnaHQ6IEBwcm9ncmVzc0ZvbnRXZWlnaHQ7XG4gIHRleHQtYWxpZ246IEBwcm9ncmVzc1RleHRBbGlnbjtcbn1cblxuLyogTGFiZWwgKi9cbi51aS5wcm9ncmVzcyA+IC5sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IEBsYWJlbFdpZHRoO1xuICBmb250LXNpemU6IEBsYWJlbFNpemU7XG4gIHRvcDogQGxhYmVsVG9wO1xuICByaWdodDogQGxhYmVsUmlnaHQ7XG4gIGxlZnQ6IEBsYWJlbExlZnQ7XG4gIGJvdHRvbTogQGxhYmVsQm90dG9tO1xuICBjb2xvcjogQGxhYmVsQ29sb3I7XG4gIGZvbnQtd2VpZ2h0OiBAbGFiZWxGb250V2VpZ2h0O1xuICB0ZXh0LXNoYWRvdzogQGxhYmVsVGV4dFNoYWRvdztcbiAgbWFyZ2luLXRvcDogQGxhYmVsT2Zmc2V0O1xuICB0ZXh0LWFsaWduOiBAbGFiZWxUZXh0QWxpZ247XG4gIHRyYW5zaXRpb246IEBsYWJlbFRyYW5zaXRpb247XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qIEluZGljYXRpbmcgKi9cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMlwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGluZGljYXRpbmdGaXJzdENvbG9yO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjNcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbmRpY2F0aW5nU2Vjb25kQ29sb3I7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNFwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjVcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbmRpY2F0aW5nVGhpcmRDb2xvcjtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI2XCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5kaWNhdGluZ0ZvdXJ0aENvbG9yO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjdcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI4XCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5kaWNhdGluZ0ZpZnRoQ29sb3I7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiOVwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjEwMFwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGluZGljYXRpbmdTaXh0aENvbG9yO1xufVxuXG4vKiBJbmRpY2F0aW5nIExhYmVsICovXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMVwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMlwiXSAubGFiZWwge1xuICBjb2xvcjogQGluZGljYXRpbmdGaXJzdExhYmVsQ29sb3I7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiM1wiXSAubGFiZWwge1xuICBjb2xvcjogQGluZGljYXRpbmdTZWNvbmRMYWJlbENvbG9yO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjRcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjVcIl0gLmxhYmVsIHtcbiAgY29sb3I6IEBpbmRpY2F0aW5nVGhpcmRMYWJlbENvbG9yO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjZcIl0gLmxhYmVsIHtcbiAgY29sb3I6IEBpbmRpY2F0aW5nRm91cnRoTGFiZWxDb2xvcjtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI3XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI4XCJdIC5sYWJlbCB7XG4gIGNvbG9yOiBAaW5kaWNhdGluZ0ZpZnRoTGFiZWxDb2xvcjtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI5XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxMDBcIl0gLmxhYmVsIHtcbiAgY29sb3I6IEBpbmRpY2F0aW5nU2l4dGhMYWJlbENvbG9yO1xufVxuXG4vKiBTaW5nbGUgRGlnaXRzICovXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIxXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIyXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIzXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI0XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI1XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI2XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI3XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI4XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI5XCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5kaWNhdGluZ0ZpcnN0Q29sb3I7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIxXCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjJcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiM1wiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI0XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjVcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNlwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI3XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjhcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiOVwiXSAubGFiZWwge1xuICBjb2xvcjogQGluZGljYXRpbmdGaXJzdExhYmVsQ29sb3I7XG59XG5cbi8qIEluZGljYXRpbmcgU3VjY2VzcyAqL1xuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3Muc3VjY2VzcyAubGFiZWwge1xuICBjb2xvcjogQHN1Y2Nlc3NIZWFkZXJDb2xvcjtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdWNjZXNzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkucHJvZ3Jlc3Muc3VjY2VzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHN1Y2Nlc3NDb2xvciAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLnN1Y2Nlc3MgLmJhcixcbi51aS5wcm9ncmVzcy5zdWNjZXNzIC5iYXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3Muc3VjY2VzcyA+IC5sYWJlbCB7XG4gIGNvbG9yOiBAc3VjY2Vzc0hlYWRlckNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFdhcm5pbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5wcm9ncmVzcy53YXJuaW5nIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2FybmluZ0NvbG9yICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3Mud2FybmluZyAuYmFyLFxuLnVpLnByb2dyZXNzLndhcm5pbmcgLmJhcjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy53YXJuaW5nID4gLmxhYmVsIHtcbiAgY29sb3I6IEB3YXJuaW5nSGVhZGVyQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5wcm9ncmVzcy5lcnJvciAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGVycm9yQ29sb3IgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy5lcnJvciAuYmFyLFxuLnVpLnByb2dyZXNzLmVycm9yIC5iYXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3MuZXJyb3IgPiAubGFiZWwge1xuICBjb2xvcjogQGVycm9ySGVhZGVyQ29sb3I7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuYWN0aXZlLnByb2dyZXNzIC5iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogQGFjdGl2ZU1pbldpZHRoO1xufVxuLnVpLmFjdGl2ZS5wcm9ncmVzcyAuYmFyOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBvcGFjaXR5OiAwO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJhY2tncm91bmQ6IEBhY3RpdmVQdWxzZUNvbG9yO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBiYXJCb3JkZXJSYWRpdXM7XG5cbiAgYW5pbWF0aW9uOiBwcm9ncmVzcy1hY3RpdmUgQGFjdGl2ZVB1bHNlRHVyYXRpb24gQGRlZmF1bHRFYXNpbmcgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWFjdGl2ZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiBAYWN0aXZlUHVsc2VNYXhPcGFjaXR5O1xuICAgIHdpZHRoOiAwO1xuICB9XG4gIDkwJSB7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5kaXNhYmxlZC5wcm9ncmVzcyB7XG4gIG9wYWNpdHk6IDAuMzU7XG59XG4udWkuZGlzYWJsZWQucHJvZ3Jlc3MgLmJhcixcbi51aS5kaXNhYmxlZC5wcm9ncmVzcyAuYmFyOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiBAaW52ZXJ0ZWRCYWNrZ3JvdW5kO1xuICBib3JkZXI6IEBpbnZlcnRlZEJvcmRlcjtcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZDogQGludmVydGVkQmFyQmFja2dyb3VuZDtcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyID4gLnByb2dyZXNzIHtcbiAgY29sb3I6IEBpbnZlcnRlZFByb2dyZXNzQ29sb3I7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3MgPiAubGFiZWwge1xuICBjb2xvcjogQGludmVydGVkTGFiZWxDb2xvcjtcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcy5zdWNjZXNzID4gLmxhYmVsIHtcbiAgY29sb3I6IEBzdWNjZXNzQ29sb3I7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Mud2FybmluZyA+IC5sYWJlbCB7XG4gIGNvbG9yOiBAd2FybmluZ0NvbG9yO1xufVxuLnVpLmludmVydGVkLnByb2dyZXNzLmVycm9yID4gLmxhYmVsIHtcbiAgY29sb3I6IEBlcnJvckNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIGJvdHRvbSBhdHRhY2hlZCAqL1xuLnVpLnByb2dyZXNzLmF0dGFjaGVkIHtcbiAgYmFja2dyb3VuZDogQGF0dGFjaGVkQmFja2dyb3VuZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLnByb2dyZXNzLmF0dGFjaGVkLFxuLnVpLnByb2dyZXNzLmF0dGFjaGVkIC5iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBAYXR0YWNoZWRIZWlnaHQ7XG4gIHBhZGRpbmc6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSBAYXR0YWNoZWRCb3JkZXJSYWRpdXMgQGF0dGFjaGVkQm9yZGVyUmFkaXVzO1xufVxuLnVpLnByb2dyZXNzLmF0dGFjaGVkIC5iYXIge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG5cbi8qIHRvcCBhdHRhY2hlZCAqL1xuLnVpLnByb2dyZXNzLnRvcC5hdHRhY2hlZCxcbi51aS5wcm9ncmVzcy50b3AuYXR0YWNoZWQgLmJhciB7XG4gIHRvcDogMHB4O1xuICBib3JkZXItcmFkaXVzOiBAYXR0YWNoZWRCb3JkZXJSYWRpdXMgQGF0dGFjaGVkQm9yZGVyUmFkaXVzIDBlbSAwZW07XG59XG4udWkucHJvZ3Jlc3MudG9wLmF0dGFjaGVkIC5iYXIge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG5cbi8qIENvdXBsaW5nICovXG4udWkuc2VnbWVudCA+IC51aS5hdHRhY2hlZC5wcm9ncmVzcyxcbi51aS5jYXJkID4gLnVpLmF0dGFjaGVkLnByb2dyZXNzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuc2VnbWVudCA+IC51aS5ib3R0b20uYXR0YWNoZWQucHJvZ3Jlc3MsXG4udWkuY2FyZCA+IC51aS5ib3R0b20uYXR0YWNoZWQucHJvZ3Jlc3Mge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFJlZCAqL1xuLnVpLnJlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHJlZDtcbn1cbi51aS5yZWQuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodFJlZDtcbn1cblxuLyogT3JhbmdlICovXG4udWkub3JhbmdlLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAb3JhbmdlO1xufVxuLnVpLm9yYW5nZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0T3JhbmdlO1xufVxuXG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB5ZWxsb3c7XG59XG4udWkueWVsbG93LmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRZZWxsb3c7XG59XG5cbi8qIE9saXZlICovXG4udWkub2xpdmUucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBvbGl2ZTtcbn1cbi51aS5vbGl2ZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0T2xpdmU7XG59XG5cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4ucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBncmVlbjtcbn1cbi51aS5ncmVlbi5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0R3JlZW47XG59XG5cbi8qIFRlYWwgKi9cbi51aS50ZWFsLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGVhbDtcbn1cbi51aS50ZWFsLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRUZWFsO1xufVxuXG4vKiBCbHVlICovXG4udWkuYmx1ZS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsdWU7XG59XG4udWkuYmx1ZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0Qmx1ZTtcbn1cblxuLyogVmlvbGV0ICovXG4udWkudmlvbGV0LnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdmlvbGV0O1xufVxuLnVpLnZpb2xldC5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0VmlvbGV0O1xufVxuXG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwdXJwbGU7XG59XG4udWkucHVycGxlLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRQdXJwbGU7XG59XG5cbi8qIFBpbmsgKi9cbi51aS5waW5rLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluaztcbn1cbi51aS5waW5rLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRQaW5rO1xufVxuXG4vKiBCcm93biAqL1xuLnVpLmJyb3duLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJvd247XG59XG4udWkuYnJvd24uaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodEJyb3duO1xufVxuXG4vKiBHcmV5ICovXG4udWkuZ3JleS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGdyZXk7XG59XG4udWkuZ3JleS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0R3JleTtcbn1cblxuLyogQmxhY2sgKi9cbi51aS5ibGFjay5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJsYWNrO1xufVxuLnVpLmJsYWNrLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRCbGFjaztcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnRpbnkucHJvZ3Jlc3Mge1xuICBmb250LXNpemU6IEB0aW55O1xufVxuLnVpLnRpbnkucHJvZ3Jlc3MgLmJhciB7XG4gIGhlaWdodDogQHRpbnlCYXJIZWlnaHQ7XG59XG5cbi51aS5zbWFsbC5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogQHNtYWxsO1xufVxuLnVpLnNtYWxsLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IEBzbWFsbEJhckhlaWdodDtcbn1cblxuLnVpLnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiBAbWVkaXVtO1xufVxuLnVpLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IEBiYXJIZWlnaHQ7XG59XG5cbi51aS5sYXJnZS5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogQGxhcmdlO1xufVxuLnVpLmxhcmdlLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IEBsYXJnZUJhckhlaWdodDtcbn1cblxuLnVpLmJpZy5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogQGJpZztcbn1cbi51aS5iaWcucHJvZ3Jlc3MgLmJhciB7XG4gIGhlaWdodDogQGJpZ0JhckhlaWdodDtcbn1cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUmF0aW5nXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAnbW9kdWxlJztcbkBlbGVtZW50IDogJ3JhdGluZyc7XG5cbkBpbXBvcnQgKG11bHRpcGxlKSAnLi4vLi4vdGhlbWUuY29uZmlnJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUmF0aW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkucmF0aW5nIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdoaXRlLXNwYWNlOiBAd2hpdGVTcGFjZTtcbiAgdmVydGljYWwtYWxpZ246IEB2ZXJ0aWNhbEFsaWduO1xufVxuLnVpLnJhdGluZzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG5cbi8qIEljb24gKi9cbi51aS5yYXRpbmcgLmljb24ge1xuICBwYWRkaW5nOiAwZW07XG4gIG1hcmdpbjogMGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBAbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBjdXJzb3I6IEBpY29uQ3Vyc29yO1xuICB3aWR0aDogQGljb25XaWR0aDtcbiAgaGVpZ2h0OiBAaWNvbkhlaWdodDtcbiAgdHJhbnNpdGlvbjogQGljb25UcmFuc2l0aW9uO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFuZGFyZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBJbmFjdGl2ZSBJY29uICovXG4udWkucmF0aW5nIC5pY29uIHtcbiAgYmFja2dyb3VuZDogQGluYWN0aXZlQmFja2dyb3VuZDtcbiAgY29sb3I6IEBpbmFjdGl2ZUNvbG9yO1xufVxuXG4vKiBBY3RpdmUgSWNvbiAqL1xuLnVpLnJhdGluZyAuYWN0aXZlLmljb24ge1xuICBiYWNrZ3JvdW5kOiBAYWN0aXZlQmFja2dyb3VuZDtcbiAgY29sb3I6IEBhY3RpdmVDb2xvcjtcbn1cblxuLyogU2VsZWN0ZWQgSWNvbiAqL1xuLnVpLnJhdGluZyAuaWNvbi5zZWxlY3RlZCxcbi51aS5yYXRpbmcgLmljb24uc2VsZWN0ZWQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogQHNlbGVjdGVkQmFja2dyb3VuZDtcbiAgY29sb3I6IEBzZWxlY3RlZENvbG9yO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEluYWN0aXZlICovXG4udWkuc3Rhci5yYXRpbmcgLmljb24ge1xuICB3aWR0aDogQHN0YXJJY29uV2lkdGg7XG4gIGhlaWdodDogQHN0YXJJY29uSGVpZ2h0O1xuICBiYWNrZ3JvdW5kOiBAc3RhckluYWN0aXZlQmFja2dyb3VuZDtcbiAgY29sb3I6IEBzdGFySW5hY3RpdmVDb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBzdGFySW5hY3RpdmVUZXh0U2hhZG93O1xufVxuXG4vKiBBY3RpdmUgU3RhciAqL1xuLnVpLnN0YXIucmF0aW5nIC5hY3RpdmUuaWNvbiB7XG4gIGJhY2tncm91bmQ6IEBzdGFyQWN0aXZlQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHN0YXJBY3RpdmVDb2xvciAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogQHN0YXJBY3RpdmVUZXh0U2hhZG93ICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNlbGVjdGVkIFN0YXIgKi9cbi51aS5zdGFyLnJhdGluZyAuaWNvbi5zZWxlY3RlZCxcbi51aS5zdGFyLnJhdGluZyAuaWNvbi5zZWxlY3RlZC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBAc3RhclNlbGVjdGVkQmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICBjb2xvcjogQHN0YXJTZWxlY3RlZENvbG9yICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBAc3RhclNlbGVjdGVkVGV4dFNoYWRvdyAhaW1wb3J0YW50O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIZWFydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuaGVhcnQucmF0aW5nIC5pY29uIHtcbiAgd2lkdGg6IEBoZWFydEljb25XaWR0aDtcbiAgaGVpZ2h0OiBAaGVhcnRJY29uSGVpZ2h0O1xuICBiYWNrZ3JvdW5kOiBAaGVhcnRJbmFjdGl2ZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAaGVhcnRJbmFjdGl2ZUNvbG9yO1xuICB0ZXh0LXNoYWRvdzogQGhlYXJ0SW5hY3RpdmVUZXh0U2hhZG93ICFpbXBvcnRhbnQ7XG59XG5cbi8qIEFjdGl2ZSBIZWFydCAqL1xuLnVpLmhlYXJ0LnJhdGluZyAuYWN0aXZlLmljb24ge1xuICBiYWNrZ3JvdW5kOiBAaGVhcnRBY3RpdmVCYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAaGVhcnRBY3RpdmVDb2xvciAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogQGhlYXJ0QWN0aXZlVGV4dFNoYWRvdyAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3RlZCBIZWFydCAqL1xuLnVpLmhlYXJ0LnJhdGluZyAuaWNvbi5zZWxlY3RlZCxcbi51aS5oZWFydC5yYXRpbmcgLmljb24uc2VsZWN0ZWQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogQGhlYXJ0U2VsZWN0ZWRCYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBAaGVhcnRTZWxlY3RlZENvbG9yICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBAaGVhcnRTZWxlY3RlZFRleHRTaGFkb3cgIWltcG9ydGFudDtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogZGlzYWJsZWQgcmF0aW5nICovXG4udWkuZGlzYWJsZWQucmF0aW5nIC5pY29uIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVXNlciBJbnRlcmFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTZWxlY3RlZCBSYXRpbmcgKi9cbi51aS5yYXRpbmcuc2VsZWN0ZWQgLmFjdGl2ZS5pY29uIHtcbiAgb3BhY2l0eTogQGludGVyYWN0aXZlQWN0aXZlSWNvbk9wYWNpdHk7XG59XG4udWkucmF0aW5nLnNlbGVjdGVkIC5pY29uLnNlbGVjdGVkLFxuLnVpLnJhdGluZyAuaWNvbi5zZWxlY3RlZCB7XG4gIG9wYWNpdHk6IEBpbnRlcmFjdGl2ZVNlbGVjdGVkSWNvbk9wYWNpdHk7XG59XG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5taW5pLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogQG1pbmk7XG59XG4udWkudGlueS5yYXRpbmcge1xuICBmb250LXNpemU6IEB0aW55O1xufVxuLnVpLnNtYWxsLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogQHNtYWxsO1xufVxuLnVpLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogQG1lZGl1bTtcbn1cbi51aS5sYXJnZS5yYXRpbmcge1xuICBmb250LXNpemU6IEBsYXJnZTtcbn1cbi51aS5odWdlLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogQGh1Z2U7XG59XG4udWkubWFzc2l2ZS5yYXRpbmcge1xuICBmb250LXNpemU6IEBtYXNzaXZlO1xufVxuXG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFNlYXJjaFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ21vZHVsZSc7XG5AZWxlbWVudCA6ICdzZWFyY2gnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU2VhcmNoXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuc2VhcmNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udWkuc2VhcmNoID4gLnByb21wdCB7XG4gIG1hcmdpbjogMGVtO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG5cbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IEBub3JtYWw7XG5cbiAgbGluZS1oZWlnaHQ6IEBwcm9tcHRMaW5lSGVpZ2h0O1xuICBwYWRkaW5nOiBAcHJvbXB0UGFkZGluZztcbiAgZm9udC1zaXplOiBAcHJvbXB0Rm9udFNpemU7XG5cbiAgYmFja2dyb3VuZDogQHByb21wdEJhY2tncm91bmQ7XG4gIGJvcmRlcjogQHByb21wdEJvcmRlcjtcbiAgY29sb3I6IEBwcm9tcHRDb2xvcjtcbiAgYm94LXNoYWRvdzogQHByb21wdEJveFNoYWRvdztcbiAgdHJhbnNpdGlvbjogQHByb21wdFRyYW5zaXRpb247XG59XG5cbi51aS5zZWFyY2ggLnByb21wdCB7XG4gIGJvcmRlci1yYWRpdXM6IEBwcm9tcHRCb3JkZXJSYWRpdXM7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2VhcmNoIC5wcm9tcHQgfiAuc2VhcmNoLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBSZXN1bHRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2VhcmNoID4gLnJlc3VsdHMge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwJTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgYmFja2dyb3VuZDogQHJlc3VsdHNCYWNrZ3JvdW5kO1xuXG4gIG1hcmdpbi10b3A6IEByZXN1bHRzRGlzdGFuY2U7XG4gIHdpZHRoOiBAcmVzdWx0c1dpZHRoO1xuXG4gIGJvcmRlci1yYWRpdXM6IEByZXN1bHRzQm9yZGVyUmFkaXVzO1xuICBib3gtc2hhZG93OiBAcmVzdWx0c0JveFNoYWRvdztcbiAgYm9yZGVyOiBAcmVzdWx0c0JvcmRlcjtcbiAgei1pbmRleDogQHJlc3VsdHNaSW5kZXg7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiBAcmVzdWx0c0JvcmRlclJhZGl1cyBAcmVzdWx0c0JvcmRlclJhZGl1cyAwZW0gMGVtO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIEByZXN1bHRzQm9yZGVyUmFkaXVzIEByZXN1bHRzQm9yZGVyUmFkaXVzO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUmVzdWx0XG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogQHJlc3VsdEZvbnRTaXplO1xuICBwYWRkaW5nOiBAcmVzdWx0UGFkZGluZztcbiAgY29sb3I6IEByZXN1bHRUZXh0Q29sb3I7XG4gIGxpbmUtaGVpZ2h0OiBAcmVzdWx0TGluZUhlaWdodDtcbiAgYm9yZGVyLWJvdHRvbTogQHJlc3VsdERpdmlkZXI7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogQHJlc3VsdExhc3REaXZpZGVyICFpbXBvcnRhbnQ7XG59XG5cbi8qIEltYWdlICovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAuaW1hZ2Uge1xuICBmbG9hdDogQHJlc3VsdEltYWdlRmxvYXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IEByZXN1bHRJbWFnZUJhY2tncm91bmQ7XG4gIHdpZHRoOiBAcmVzdWx0SW1hZ2VXaWR0aDtcbiAgaGVpZ2h0OiBAcmVzdWx0SW1hZ2VIZWlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IEByZXN1bHRJbWFnZUJvcmRlclJhZGl1cztcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSW5mb1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmltYWdlICsgLmNvbnRlbnQge1xuICBtYXJnaW46IEByZXN1bHRJbWFnZU1hcmdpbjtcbn1cblxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLnRpdGxlIHtcbiAgbWFyZ2luOiBAcmVzdWx0VGl0bGVNYXJnaW47XG4gIGZvbnQtZmFtaWx5OiBAcmVzdWx0VGl0bGVGb250O1xuICBmb250LXdlaWdodDogQHJlc3VsdFRpdGxlRm9udFdlaWdodDtcbiAgZm9udC1zaXplOiBAcmVzdWx0VGl0bGVGb250U2l6ZTtcbiAgY29sb3I6IEByZXN1bHRUaXRsZUNvbG9yO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogQHJlc3VsdERlc2NyaXB0aW9uRGlzdGFuY2U7XG4gIGZvbnQtc2l6ZTogQHJlc3VsdERlc2NyaXB0aW9uRm9udFNpemU7XG4gIGNvbG9yOiBAcmVzdWx0RGVzY3JpcHRpb25Db2xvcjtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC5wcmljZSB7XG4gIGZsb2F0OiBAcmVzdWx0UHJpY2VGbG9hdDtcbiAgY29sb3I6IEByZXN1bHRQcmljZUNvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTWVzc2FnZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiBAbWVzc2FnZVZlcnRpY2FsUGFkZGluZyBAbWVzc2FnZUhvcml6b250YWxQYWRkaW5nO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBAaGVhZGVyRm9udDtcbiAgZm9udC1zaXplOiBAbWVzc2FnZUhlYWRlckZvbnRTaXplO1xuICBmb250LXdlaWdodDogQG1lc3NhZ2VIZWFkZXJGb250V2VpZ2h0O1xuICBjb2xvcjogQG1lc3NhZ2VIZWFkZXJDb2xvcjtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyA+IC5tZXNzYWdlIC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IEBtZXNzYWdlRGVzY3JpcHRpb25EaXN0YW5jZTtcbiAgZm9udC1zaXplOiBAbWVzc2FnZURlc2NyaXB0aW9uRm9udFNpemU7XG4gIGNvbG9yOiBAbWVzc2FnZURlc2NyaXB0aW9uQ29sb3I7XG59XG5cbi8qIFZpZXcgQWxsIFJlc3VsdHMgKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyA+IC5hY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXRvcDogQGFjdGlvbkJvcmRlcjtcbiAgYmFja2dyb3VuZDogQGFjdGlvbkJhY2tncm91bmQ7XG4gIHBhZGRpbmc6IEBhY3Rpb25QYWRkaW5nO1xuICBjb2xvcjogQGFjdGlvbkNvbG9yO1xuICBmb250LXdlaWdodDogQGFjdGlvbkZvbnRXZWlnaHQ7XG4gIHRleHQtYWxpZ246IEBhY3Rpb25BbGlnbjtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5zZWFyY2ggPiAucHJvbXB0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiBAcHJvbXB0Rm9jdXNCb3JkZXJDb2xvcjtcbiAgYmFja2dyb3VuZDogQHByb21wdEZvY3VzQmFja2dyb3VuZDtcbiAgY29sb3I6IEBwcm9tcHRGb2N1c0NvbG9yO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmxvYWRpbmcuc2VhcmNoIC5pbnB1dCA+IGkuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuXG4gIG1hcmdpbjogQGxvYWRlck1hcmdpbjtcbiAgd2lkdGg6IEBsb2FkZXJTaXplO1xuICBoZWlnaHQ6IEBsb2FkZXJTaXplO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBjaXJjdWxhclJhZGl1cztcbiAgYm9yZGVyOiBAbG9hZGVyTGluZVdpZHRoIHNvbGlkIEBsb2FkZXJGaWxsQ29sb3I7XG59XG4udWkubG9hZGluZy5zZWFyY2ggLmlucHV0ID4gaS5pY29uOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcblxuICBtYXJnaW46IEBsb2FkZXJNYXJnaW47XG4gIHdpZHRoOiBAbG9hZGVyU2l6ZTtcbiAgaGVpZ2h0OiBAbG9hZGVyU2l6ZTtcblxuICBhbmltYXRpb246IGJ1dHRvbi1zcGluIEBsb2FkZXJTcGVlZCBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuXG4gIGJvcmRlci1yYWRpdXM6IEBjaXJjdWxhclJhZGl1cztcblxuICBib3JkZXItY29sb3I6IEBsb2FkZXJMaW5lQ29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogQGxvYWRlckxpbmVXaWR0aDtcblxuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0OmhvdmVyLFxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSAucmVzdWx0OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogQHJlc3VsdEhvdmVyQmFja2dyb3VuZDtcbn1cbi51aS5zZWFyY2ggLmFjdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IEBhY3Rpb25Ib3ZlckJhY2tncm91bmQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBAY2F0ZWdvcnlBY3RpdmVCYWNrZ3JvdW5kO1xufVxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeS5hY3RpdmUgPiAubmFtZSB7XG4gIGNvbG9yOiBAY2F0ZWdvcnlOYW1lQWN0aXZlQ29sb3I7XG59XG5cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0LmFjdGl2ZSxcbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkgLnJlc3VsdC5hY3RpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBAcmVzdWx0QWN0aXZlQm9yZGVyTGVmdDtcbiAgYmFja2dyb3VuZDogQHJlc3VsdEFjdGl2ZUJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6IEByZXN1bHRBY3RpdmVCb3hTaGFkb3c7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdC5hY3RpdmUgLnRpdGxlIHtcbiAgY29sb3I6IEByZXN1bHRBY3RpdmVUaXRsZUNvbG9yO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQuYWN0aXZlIC5kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiBAcmVzdWx0QWN0aXZlRGVzY3JpcHRpb25Db2xvcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIERpc2FibGVkICovXG4udWkuZGlzYWJsZWQuc2VhcmNoIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogQGRpc2FibGVkT3BhY2l0eTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFNlbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnNlYXJjaC5zZWxlY3Rpb24gLnByb21wdCB7XG4gIGJvcmRlci1yYWRpdXM6IEBzZWxlY3Rpb25Qcm9tcHRCb3JkZXJSYWRpdXM7XG59XG5cbi8qIFJlbW92ZSBpbnB1dCAqL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24gPiAuaWNvbi5pbnB1dCA+IC5yZW1vdmUuaWNvbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IGF1dG87XG4gIG9wYWNpdHk6IDA7XG4gIGNvbG9yOiBAc2VsZWN0aW9uQ2xvc2VJY29uQ29sb3I7XG4gIHRvcDogQHNlbGVjdGlvbkNsb3NlVG9wO1xuICByaWdodDogQHNlbGVjdGlvbkNsb3NlUmlnaHQ7XG4gIHRyYW5zaXRpb246IEBzZWxlY3Rpb25DbG9zZVRyYW5zaXRpb247XG59XG4udWkuc2VhcmNoLnNlbGVjdGlvbiA+IC5pY29uLmlucHV0ID4gLmFjdGl2ZS5yZW1vdmUuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogQHNlbGVjdGlvbkNsb3NlSWNvbk9wYWNpdHk7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnVpLnNlYXJjaC5zZWxlY3Rpb24gPiAuaWNvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgaWNvblwiXSkgPiAuaWNvbiB+IC5yZW1vdmUuaWNvbiB7XG4gIHJpZ2h0OiBAc2VsZWN0aW9uQ2xvc2VJY29uSW5wdXRSaWdodDtcbn1cbi51aS5zZWFyY2guc2VsZWN0aW9uID4gLmljb24uaW5wdXQgPiAucmVtb3ZlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiBAc2VsZWN0aW9uQ2xvc2VJY29uSG92ZXJPcGFjaXR5O1xuICBjb2xvcjogQHNlbGVjdGlvbkNsb3NlSWNvbkhvdmVyQ29sb3I7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENhdGVnb3J5XG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuY2F0ZWdvcnkuc2VhcmNoIC5yZXN1bHRzIHtcbiAgd2lkdGg6IEBjYXRlZ29yeVJlc3VsdHNXaWR0aDtcbn1cblxuLnVpLmNhdGVnb3J5LnNlYXJjaCAucmVzdWx0cy5hbmltYXRpbmcsXG4udWkuY2F0ZWdvcnkuc2VhcmNoIC5yZXN1bHRzLnZpc2libGUge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLyogQ2F0ZWdvcnkgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkge1xuICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gIGJhY2tncm91bmQ6IEBjYXRlZ29yeUJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6IEBjYXRlZ29yeUJveFNoYWRvdztcbiAgdHJhbnNpdGlvbjogQGNhdGVnb3J5VHJhbnNpdGlvbjtcbn1cblxuLyogTGFzdCBDYXRlZ29yeSAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLyogRmlyc3QgLyBMYXN0ICovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5OmZpcnN0LWNoaWxkIC5uYW1lICsgLnJlc3VsdCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSBAcmVzdWx0c0JvcmRlclJhZGl1cyAwZW0gMGVtO1xufVxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeTpsYXN0LWNoaWxkIC5yZXN1bHQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gQHJlc3VsdHNCb3JkZXJSYWRpdXMgMGVtO1xufVxuXG4vKiBDYXRlZ29yeSBSZXN1bHQgTmFtZSAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSA+IC5uYW1lIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdpZHRoOiBAY2F0ZWdvcnlOYW1lV2lkdGg7XG4gIHdoaXRlLXNwYWNlOiBAY2F0ZWdvcnlOYW1lV2hpdGVzcGFjZTtcbiAgYmFja2dyb3VuZDogQGNhdGVnb3J5TmFtZUJhY2tncm91bmQ7XG4gIGZvbnQtZmFtaWx5OiBAY2F0ZWdvcnlOYW1lRm9udDtcbiAgZm9udC1zaXplOiBAY2F0ZWdvcnlOYW1lRm9udFNpemU7XG4gIHBhZGRpbmc6IEBjYXRlZ29yeU5hbWVQYWRkaW5nO1xuICBmb250LXdlaWdodDogQGNhdGVnb3J5TmFtZUZvbnRXZWlnaHQ7XG4gIGNvbG9yOiBAY2F0ZWdvcnlOYW1lQ29sb3I7XG4gIGJvcmRlci1ib3R0b206IEBjYXRlZ29yeURpdmlkZXI7XG59XG5cbi8qIENhdGVnb3J5IFJlc3VsdCAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSAucmVzdWx0cyB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIGJhY2tncm91bmQ6IEBjYXRlZ29yeVJlc3VsdEJhY2tncm91bmQ7XG4gIGJvcmRlci1sZWZ0OiBAY2F0ZWdvcnlSZXN1bHRMZWZ0Qm9yZGVyO1xuICBib3JkZXItYm90dG9tOiBAY2F0ZWdvcnlEaXZpZGVyO1xufVxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSAucmVzdWx0IHtcbiAgYm9yZGVyLWJvdHRvbTogQGNhdGVnb3J5UmVzdWx0RGl2aWRlcjtcbiAgdHJhbnNpdGlvbjogQGNhdGVnb3J5UmVzdWx0VHJhbnNpdGlvbjtcbiAgcGFkZGluZzogQGNhdGVnb3J5UmVzdWx0UGFkZGluZztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIExlZnQgLyBSaWdodFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLnNlYXJjaCA+IC5yZXN1bHRzIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDAlO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uc2VhcmNoID4gLnJlc3VsdHMge1xuICByaWdodDogMCU7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLmZsdWlkLnNlYXJjaCAucmVzdWx0cyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubWluaS5zZWFyY2gge1xuICBmb250LXNpemU6IEByZWxhdGl2ZU1pbmk7XG59XG4udWkuc21hbGwuc2VhcmNoIHtcbiAgZm9udC1zaXplOiBAcmVsYXRpdmVTbWFsbDtcbn1cbi51aS5zZWFyY2gge1xuICBmb250LXNpemU6IEByZWxhdGl2ZU1lZGl1bTtcbn1cbi51aS5sYXJnZS5zZWFyY2gge1xuICBmb250LXNpemU6IEByZWxhdGl2ZUxhcmdlO1xufVxuLnVpLmJpZy5zZWFyY2gge1xuICBmb250LXNpemU6IEByZWxhdGl2ZUJpZztcbn1cbi51aS5odWdlLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlSHVnZTtcbn1cbi51aS5tYXNzaXZlLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogQHJlbGF0aXZlTWFzc2l2ZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTW9iaWxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBsYXJnZXN0TW9iaWxlU2NyZWVuKSB7XG4gIC51aS5zZWFyY2ggLnJlc3VsdHMge1xuICAgIG1heC13aWR0aDogQG1vYmlsZU1heFdpZHRoO1xuICB9XG59XG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFNoYXBlXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdtb2R1bGUnO1xuQGVsZW1lbnQgOiAnc2hhcGUnO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFNoYXBlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuc2hhcGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGRpc3BsYXk6IEBkaXNwbGF5O1xuICBwZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xuICB0cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbn1cblxuLnVpLnNoYXBlIC5zaWRlcyB7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG59XG5cbi51aS5zaGFwZSAuc2lkZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIG1hcmdpbjogQHNpZGVNYXJnaW4gIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQGJhY2tmYWNlVmlzaWJpbGl0eTtcbn1cblxuLnVpLnNoYXBlIC5zaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnVpLnNoYXBlIC5zaWRlICoge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5jdWJlLnNoYXBlIC5zaWRlIHtcbiAgbWluLXdpZHRoOiBAY3ViZVNpemU7XG4gIGhlaWdodDogQGN1YmVTaXplO1xuXG4gIHBhZGRpbmc6IEBjdWJlUGFkZGluZztcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY3ViZUJhY2tncm91bmQ7XG4gIGNvbG9yOiBAY3ViZVRleHRDb2xvcjtcbiAgYm94LXNoYWRvdzogQGN1YmVCb3hTaGFkb3c7XG59XG4udWkuY3ViZS5zaGFwZSAuc2lkZSA+IC5jb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7XG5cbiAgdGV4dC1hbGlnbjogQGN1YmVUZXh0QWxpZ247XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xufVxuLnVpLmN1YmUuc2hhcGUgLnNpZGUgPiAuY29udGVudCA+IGRpdiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogQGN1YmVGb250U2l6ZTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkudGV4dC5zaGFwZS5hbmltYXRpbmcgLnNpZGVzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi51aS50ZXh0LnNoYXBlIC5zaWRlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi51aS50ZXh0LnNoYXBlIC5zaWRlID4gKiB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkubG9hZGluZy5zaGFwZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICBsZWZ0OiAtOTk5OXB4O1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBbmltYXRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5zaGFwZSAuYW5pbWF0aW5nLnNpZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiBAYW5pbWF0aW5nWkluZGV4O1xufVxuLnVpLnNoYXBlIC5oaWRkZW4uc2lkZSB7XG4gIG9wYWNpdHk6IEBoaWRkZW5TaWRlT3BhY2l0eTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBDU1Ncbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5zaGFwZS5hbmltYXRpbmcgLnNpZGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLnVpLnNoYXBlLmFuaW1hdGluZyAuc2lkZXMge1xuICB0cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbn1cbi51aS5zaGFwZS5hbmltYXRpbmcgLnNpZGUge1xuICB0cmFuc2l0aW9uOiBAc2lkZVRyYW5zaXRpb247XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2hhcGUgLmFjdGl2ZS5zaWRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5sb2FkVUlPdmVycmlkZXMoKTtcbiIsIi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFNpZGViYXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkB0eXBlICAgIDogJ21vZHVsZSc7XG5AZWxlbWVudCA6ICdzaWRlYmFyJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU2lkZWJhclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogU2lkZWJhciBNZW51ICovXG4udWkuc2lkZWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy15OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IEB0b3BMYXllcjtcbn1cblxuLyogR1BVIExheWVycyBmb3IgQ2hpbGQgRWxlbWVudHMgKi9cbi51aS5zaWRlYmFyID4gKiB7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEaXJlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5sZWZ0LnNpZGViYXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zaWRlYmFyIHtcbiAgcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCUsIDApO1xufVxuXG4udWkudG9wLnNpZGViYXIsXG4udWkuYm90dG9tLnNpZGViYXIge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS50b3Auc2lkZWJhciB7XG4gIHRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbn1cbi51aS5ib3R0b20uc2lkZWJhciB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDBweCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUHVzaGFibGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi5wdXNoYWJsZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiAwZW0gIWltcG9ydGFudDtcbn1cblxuLyogV2hvbGUgUGFnZSAqL1xuYm9keS5wdXNoYWJsZSB7XG4gIGJhY2tncm91bmQ6IEBjYW52YXNCYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG59XG5cbi8qIFBhZ2UgQ29udGV4dCAqL1xuLnB1c2hhYmxlOm5vdChib2R5KSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG4ucHVzaGFibGU6bm90KGJvZHkpID4gLnVpLnNpZGViYXIsXG4ucHVzaGFibGU6bm90KGJvZHkpID4gLmZpeGVkLFxuLnB1c2hhYmxlOm5vdChib2R5KSA+IC5wdXNoZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnB1c2hhYmxlID4gLmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIEBkdXJhdGlvbiBAZWFzaW5nO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB6LWluZGV4OiBAZml4ZWRMYXllcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4ucHVzaGFibGUgPiAucHVzaGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAZHVyYXRpb24gQGVhc2luZztcbiAgei1pbmRleDogQG1pZGRsZUxheWVyO1xufVxuXG5ib2R5LnB1c2hhYmxlID4gLnB1c2hlciB7XG4gIGJhY2tncm91bmQ6IEBwYWdlQmFja2dyb3VuZDtcbn1cblxuLyogUHVzaGVyIHNob3VsZCBpbmhlcml0IGJhY2tncm91bmQgZnJvbSBjb250ZXh0ICovXG4ucHVzaGFibGUgPiAucHVzaGVyIHtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaW1tZXJcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi5wdXNoYWJsZSA+IC5wdXNoZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZC1jb2xvcjogQGRpbW1lckNvbG9yO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBAZGltbWVyVHJhbnNpdGlvbjtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIHotaW5kZXg6IEBkaW1tZXJMYXllcjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkuc2lkZWJhci5tZW51IC5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGltbWVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4ucHVzaGFibGUgPiAucHVzaGVyLmRpbW1lZDphZnRlciB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBbmltYXRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS5hbmltYXRpbmcuc2lkZWJhciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnVpLnZpc2libGUuc2lkZWJhciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi8qIFNoYWRvdyBEaXJlY3Rpb24gKi9cbi51aS5sZWZ0LnZpc2libGUuc2lkZWJhcixcbi51aS5yaWdodC52aXNpYmxlLnNpZGViYXIge1xuICBib3gtc2hhZG93OiBAaG9yaXpvbnRhbEJveFNoYWRvdztcbn1cbi51aS50b3AudmlzaWJsZS5zaWRlYmFyLFxuLnVpLmJvdHRvbS52aXNpYmxlLnNpZGViYXIge1xuICBib3gtc2hhZG93OiBAdmVydGljYWxCb3hTaGFkb3c7XG59XG5cbi8qIFZpc2libGUgT24gTG9hZCAqL1xuLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHdpZHRoLCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLUB3aWR0aCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS50b3Auc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnRvcC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgQGhlaWdodCwgMCk7XG59XG4udWkudmlzaWJsZS5ib3R0b20uc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLmJvdHRvbS5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLUBoZWlnaHQsIDApO1xufVxuXG4vKiBvcHBvc2l0ZSBzaWRlcyB2aXNpYmxlIGZvcmNlcyBjb250ZW50IG92ZXJsYXkgKi9cbi51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAudWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlcixcbi51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAudWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgICBpT1Ncbi0tLS0tLS0tLS0tLS0tLSovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFdpZHRoXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBMZWZ0IC8gUmlnaHQgKi9cbi51aS50aGluLmxlZnQuc2lkZWJhcixcbi51aS50aGluLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogQHRoaW5XaWR0aDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ubGVmdC5zaWRlYmFyLFxuLnVpW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IEB2ZXJ5VGhpbldpZHRoO1xufVxuLnVpLmxlZnQuc2lkZWJhcixcbi51aS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IEB3aWR0aDtcbn1cbi51aS53aWRlLmxlZnQuc2lkZWJhcixcbi51aS53aWRlLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogQHdpZGVXaWR0aDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ubGVmdC5zaWRlYmFyLFxuLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IEB2ZXJ5V2lkZVdpZHRoO1xufVxuXG4vKiBMZWZ0IFZpc2libGUgKi9cbi51aS52aXNpYmxlLnRoaW4ubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUudGhpbi5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAdGhpbldpZHRoLCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgdGhpblwiXS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHZlcnlUaGluV2lkdGgsIDAsIDApO1xufVxuLnVpLnZpc2libGUud2lkZS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS53aWRlLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB3aWRlV2lkdGgsIDAsIDApO1xufVxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB3aWRlXCJdLmxlZnQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAdmVyeVdpZGVXaWR0aCwgMCwgMCk7XG59XG5cbi8qIFJpZ2h0IFZpc2libGUgKi9cbi51aS52aXNpYmxlLnRoaW4ucmlnaHQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLnRoaW4ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC1AdGhpbldpZHRoLCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB0aGluXCJdLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtQHZlcnlUaGluV2lkdGgsIDAsIDApO1xufVxuLnVpLnZpc2libGUud2lkZS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUud2lkZS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLUB3aWRlV2lkdGgsIDAsIDApO1xufVxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC1AdmVyeVdpZGVXaWR0aCwgMCwgMCk7XG59XG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFuaW1hdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBPdmVybGF5XG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBTZXQtdXAgKi9cbi51aS5vdmVybGF5LnNpZGViYXIge1xuICB6LWluZGV4OiBAdG9wTGF5ZXI7XG59XG5cbi8qIEluaXRpYWwgKi9cbi51aS5sZWZ0Lm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAlLCAwKTtcbn1cbi51aS5yaWdodC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAlLCAwKTtcbn1cbi51aS50b3Aub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTEwMCUsIDApO1xufVxuLnVpLmJvdHRvbS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAxMDAlLCAwKTtcbn1cblxuLyogQW5pbWF0aW9uICovXG4uYW5pbWF0aW5nLnVpLm92ZXJsYXkuc2lkZWJhcixcbi51aS52aXNpYmxlLm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAZHVyYXRpb24gQGVhc2luZztcbn1cblxuLyogRW5kIC0gU2lkZWJhciAqL1xuLnVpLnZpc2libGUubGVmdC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwJSwgMCk7XG59XG4udWkudmlzaWJsZS5yaWdodC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwJSwgMCk7XG59XG4udWkudmlzaWJsZS50b3Aub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCUsIDApO1xufVxuLnVpLnZpc2libGUuYm90dG9tLm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAlLCAwKTtcbn1cblxuLyogRW5kIC0gUHVzaGVyICovXG4udWkudmlzaWJsZS5vdmVybGF5LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5vdmVybGF5LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBQdXNoXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBJbml0aWFsICovXG4udWkucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIEBkdXJhdGlvbiBAZWFzaW5nO1xuICB6LWluZGV4OiBAdG9wTGF5ZXI7XG59XG5cbi8qIFNpZGViYXIgLSBJbml0aWFsICovXG4udWkubGVmdC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xufVxuLnVpLnRvcC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtMTAwJSwgMCk7XG59XG4udWkuYm90dG9tLnB1c2guc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDEwMCUsIDApO1xufVxuXG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnB1c2guc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBVbmNvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBJbml0aWFsICovXG4udWkudW5jb3Zlci5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgei1pbmRleDogQGJvdHRvbUxheWVyO1xufVxuXG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnVuY292ZXIuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAZHVyYXRpb24gQGVhc2luZztcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTbGlkZSBBbG9uZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogSW5pdGlhbCAqL1xuLnVpLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB6LWluZGV4OiBAYm90dG9tTGF5ZXI7XG59XG5cbi8qIFNpZGViYXIgLSBJbml0aWFsICovXG4udWkubGVmdC5zbGlkZS5hbG9uZy5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zbGlkZS5hbG9uZy5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xufVxuLnVpLnRvcC5zbGlkZS5hbG9uZy5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbn1cbi51aS5ib3R0b20uc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDUwJSwgMCk7XG59XG5cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zbGlkZS5hbG9uZy5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIEBkdXJhdGlvbiBAZWFzaW5nO1xufVxuXG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTbGlkZSBPdXRcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEluaXRpYWwgKi9cbi51aS5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHotaW5kZXg6IEBib3R0b21MYXllcjtcbn1cblxuLyogU2lkZWJhciAtIEluaXRpYWwgKi9cbi51aS5sZWZ0LnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xufVxuLnVpLnJpZ2h0LnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbn1cbi51aS50b3Auc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCA1MCUsIDApO1xufVxuLnVpLmJvdHRvbS5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIC01MCUsIDApO1xufVxuXG4vKiBBbmltYXRpb24gKi9cbi51aS5hbmltYXRpbmcuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gQGR1cmF0aW9uIEBlYXNpbmc7XG59XG5cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2NhbGUgRG93blxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogSW5pdGlhbCAqL1xuLnVpLnNjYWxlLmRvd24uc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAZHVyYXRpb24gQGVhc2luZztcbiAgei1pbmRleDogQHRvcExheWVyO1xufVxuXG4vKiBTaWRlYmFyIC0gSW5pdGlhbCAgKi9cbi51aS5sZWZ0LnNjYWxlLmRvd24uc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xufVxuLnVpLnJpZ2h0LnNjYWxlLmRvd24uc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG59XG4udWkudG9wLnNjYWxlLmRvd24uc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIC0xMDAlLCAwKTtcbn1cbi51aS5ib3R0b20uc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMTAwJSwgMCk7XG59XG5cbi8qIFB1c2hlciAtIEluaXRpYWwgKi9cbi51aS5zY2FsZS5kb3duLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA3NSUgNTAlO1xufVxuLnVpLnNjYWxlLmRvd24ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAyNSUgNTAlO1xufVxuLnVpLnNjYWxlLmRvd24udG9wLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDc1JTtcbn1cbi51aS5zY2FsZS5kb3duLmJvdHRvbS5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAyNSU7XG59XG5cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zY2FsZS5kb3duID4gLnZpc2libGUudWkuc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAZHVyYXRpb24gQGVhc2luZztcbn1cbi51aS52aXNpYmxlLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIsXG4udWkuYW5pbWF0aW5nLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTdGlja3lcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdtb2R1bGUnO1xuQGVsZW1lbnQgOiAnc3RpY2t5JztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RpY2t5XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkuc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gIHotaW5kZXg6IEB6SW5kZXg7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qIEJvdW5kICovXG4udWkuc3RpY2t5LmJvdW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cblxuLyogRml4ZWQgKi9cbi51aS5zdGlja3kuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4vKiBCb3VuZC9GaXhlZCBQb3NpdGlvbiAqL1xuLnVpLnN0aWNreS5ib3VuZC50b3AsXG4udWkuc3RpY2t5LmZpeGVkLnRvcCB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IGF1dG87XG59XG4udWkuc3RpY2t5LmJvdW5kLmJvdHRvbSxcbi51aS5zdGlja3kuZml4ZWQuYm90dG9tIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBweDtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi51aS5uYXRpdmUuc3RpY2t5IHtcbiAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xuICBwb3NpdGlvbjogLW1vei1zdGlja3k7XG4gIHBvc2l0aW9uOiAtbXMtc3RpY2t5O1xuICBwb3NpdGlvbjogLW8tc3RpY2t5O1xuICBwb3NpdGlvbjogc3RpY2t5O1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBUYWJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AdHlwZSAgICA6ICdtb2R1bGUnO1xuQGVsZW1lbnQgOiAndGFiJztcblxuQGltcG9ydCAobXVsdGlwbGUpICcuLi8uLi90aGVtZS5jb25maWcnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBVSSBUYWJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udWkudGFiIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51aS50YWIuYWN0aXZlLFxuLnVpLnRhYi5vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4udWkudGFiLmxvYWRpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiBAbG9hZGluZ01pbkhlaWdodDtcbn1cbi51aS50YWIubG9hZGluZyAqIHtcbiAgcG9zaXRpb246IEBsb2FkaW5nQ29udGVudFBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IEBsb2FkaW5nQ29udGVudE9mZnNldCAhaW1wb3J0YW50O1xufVxuXG4udWkudGFiLmxvYWRpbmc6YmVmb3JlLFxuLnVpLnRhYi5sb2FkaW5nLnNlZ21lbnQ6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiBAbG9hZGVyRGlzdGFuY2VGcm9tVG9wO1xuICBsZWZ0OiA1MCU7XG5cbiAgbWFyZ2luOiBAbG9hZGVyTWFyZ2luO1xuICB3aWR0aDogQGxvYWRlclNpemU7XG4gIGhlaWdodDogQGxvYWRlclNpemU7XG5cbiAgYm9yZGVyLXJhZGl1czogQGNpcmN1bGFyUmFkaXVzO1xuICBib3JkZXI6IEBsb2FkZXJMaW5lV2lkdGggc29saWQgQGxvYWRlckZpbGxDb2xvcjtcbn1cbi51aS50YWIubG9hZGluZzphZnRlcixcbi51aS50YWIubG9hZGluZy5zZWdtZW50OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiBAbG9hZGVyRGlzdGFuY2VGcm9tVG9wO1xuICBsZWZ0OiA1MCU7XG5cbiAgbWFyZ2luOiBAbG9hZGVyTWFyZ2luO1xuICB3aWR0aDogQGxvYWRlclNpemU7XG4gIGhlaWdodDogQGxvYWRlclNpemU7XG5cbiAgYW5pbWF0aW9uOiBidXR0b24tc3BpbiBAbG9hZGVyU3BlZWQgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcblxuICBib3JkZXItcmFkaXVzOiBAY2lyY3VsYXJSYWRpdXM7XG5cbiAgYm9yZGVyLWNvbG9yOiBAbG9hZGVyTGluZUNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IEBsb2FkZXJMaW5lV2lkdGg7XG5cbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xufVxuXG4ubG9hZFVJT3ZlcnJpZGVzKCk7XG4iLCIvKiFcbiAqICMgU2VtYW50aWMgVUkgLSBUcmFuc2l0aW9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuQHR5cGUgICAgOiAnbW9kdWxlJztcbkBlbGVtZW50IDogJ3RyYW5zaXRpb24nO1xuXG5AaW1wb3J0IChtdWx0aXBsZSkgJy4uLy4uL3RoZW1lLmNvbmZpZyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVHJhbnNpdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiBAdHJhbnNpdGlvbkRlZmF1bHREdXJhdGlvbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRyYW5zaXRpb25EZWZhdWx0RWFzaW5nO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBAdHJhbnNpdGlvbkRlZmF1bHRGaWxsO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbi8qIEFuaW1hdGluZyAqL1xuLmFuaW1hdGluZy50cmFuc2l0aW9uIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQGJhY2tmYWNlVmlzaWJpbGl0eTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG4vKiBMb2FkaW5nICovXG4ubG9hZGluZy50cmFuc2l0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5OXB4O1xuICBsZWZ0OiAtOTk5OTlweDtcbn1cblxuLyogSGlkZGVuICovXG4uaGlkZGVuLnRyYW5zaXRpb24ge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qIFZpc2libGUgKi9cbi52aXNpYmxlLnRyYW5zaXRpb24ge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4vKiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQGJhY2tmYWNlVmlzaWJpbGl0eTtcbiAgdHJhbnNmb3JtOiBAdXNlM0RBY2NlbGVyYXRpb247Ki9cbn1cblxuLyogRGlzYWJsZWQgKi9cbi5kaXNhYmxlZC50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4ubG9vcGluZy50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG59XG5cblxuLmxvYWRVSU92ZXJyaWRlcygpO1xuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBUcmFuc2l0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLypcbiAgU29tZSB0cmFuc2l0aW9ucyBhZGFwdGVkIGZyb20gQW5pbWF0ZSBDU1NcbiAgaHR0cHM6Ly9naXRodWIuY29tL2RhbmVkZW4vYW5pbWF0ZS5jc3NcblxuICBBZGRpdGlvbmFsIHRyYW5zaXRpb25zIGFkYXB0ZWQgZnJvbSBHbGlkZVxuICBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlXG4qL1xuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJyb3dzZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnRyYW5zaXRpb24uYnJvd3NlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBicm93c2VJbjtcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5vdXQsXG4udHJhbnNpdGlvbi5icm93c2UubGVmdC5vdXQge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlT3V0TGVmdDtcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5yaWdodC5vdXQge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlT3V0UmlnaHQ7XG59XG5cbi8qIEluICovXG5Aa2V5ZnJhbWVzIGJyb3dzZUluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVaKDBweCk7XG4gICAgei1pbmRleDogLTE7XG4gIH1cbiAgMTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWigwcHgpO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSkgdHJhbnNsYXRlWigwcHgpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogOTk5O1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWigwcHgpO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgfVxufVxuXG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgYnJvd3NlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSByb3RhdGVZKDBkZWcpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpIHJvdGF0ZVkoMzVkZWcpIHJvdGF0ZVgoMTBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICB9XG4gIDgwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZVkoMGRlZykgcm90YXRlWCgwZGVnKSB0cmFuc2xhdGVaKC0xMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJyb3dzZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZVkoMGRlZykgcm90YXRlWCgwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwNSUpIHJvdGF0ZVkoMzVkZWcpIHJvdGF0ZVgoMTBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICB9XG4gIDgwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlWSgwZGVnKSByb3RhdGVYKDBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERyb3Bcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi5kcm9wLnRyYW5zaXRpb24ge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICBhbmltYXRpb24tZHVyYXRpb246IDQwMG1zO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zNCwgMS42MSwgMC43LCAxKTtcbn1cbi5kcm9wLnRyYW5zaXRpb24uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZHJvcEluO1xufVxuLmRyb3AudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZHJvcE91dDtcbn1cblxuLyogRHJvcCAqL1xuQGtleWZyYW1lcyBkcm9wSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBkcm9wT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRmFkZVxuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnRyYW5zaXRpb24uZmFkZS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIHVwXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSBkb3duXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgcmlnaHRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG59XG5cbi50cmFuc2l0aW9uLmZhZGUub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgcmlnaHRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbn1cblxuLyogSW4gKi9cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgfVxufVxuXG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZU91dFVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1JSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01JSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSk7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbGlwc1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLmZsaXAudHJhbnNpdGlvbi5pbixcbi5mbGlwLnRyYW5zaXRpb24ub3V0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA2MDBtcztcbn1cbi5ob3Jpem9udGFsLmZsaXAudHJhbnNpdGlvbi5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBob3Jpem9udGFsRmxpcEluO1xufVxuLmhvcml6b250YWwuZmxpcC50cmFuc2l0aW9uLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBob3Jpem9udGFsRmxpcE91dDtcbn1cbi52ZXJ0aWNhbC5mbGlwLnRyYW5zaXRpb24uaW4ge1xuICBhbmltYXRpb24tbmFtZTogdmVydGljYWxGbGlwSW47XG59XG4udmVydGljYWwuZmxpcC50cmFuc2l0aW9uLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB2ZXJ0aWNhbEZsaXBPdXQ7XG59XG5cbi8qIEluICovXG5Aa2V5ZnJhbWVzIGhvcml6b250YWxGbGlwSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdmVydGljYWxGbGlwSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIGhvcml6b250YWxGbGlwT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdmVydGljYWxGbGlwT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNjYWxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG4uc2NhbGUudHJhbnNpdGlvbi5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzY2FsZUluO1xufVxuLnNjYWxlLnRyYW5zaXRpb24ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNjYWxlT3V0O1xufVxuXG5Aa2V5ZnJhbWVzIHNjYWxlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBzY2FsZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gIH1cbn1cblxuXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGbHlcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIElud2FyZCAqL1xuLnRyYW5zaXRpb24uZmx5IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjZzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbn1cbi50cmFuc2l0aW9uLmZseS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJbjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSB1cFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJblVwO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmx5SW5Eb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmx5SW5MZWZ0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHJpZ2h0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseUluUmlnaHQ7XG59XG5cbi8qIE91dHdhcmQgKi9cbi50cmFuc2l0aW9uLmZseS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmx5T3V0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXRVcDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXREb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGxlZnRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dExlZnQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgcmlnaHRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dFJpZ2h0O1xufVxuXG4vKiBJbiAqL1xuQGtleWZyYW1lcyBmbHlJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseUluVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDE1MDBweCwgMCk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNTAwcHgsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTUwMHB4LCAwLCAwKTtcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmx5SW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1MDBweCwgMCwgMCk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIGZseU91dCB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICB9XG4gIDUwJSwgNTUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXRVcCB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuICA0MCUsIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXREb3duIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuICA0MCUsIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXRSaWdodCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2xpZGVcbi0tLS0tLS0tLS0tLS0tLSovXG5cbi50cmFuc2l0aW9uLnNsaWRlLmluLFxuLnRyYW5zaXRpb25bY2xhc3MqPVwic2xpZGUgZG93blwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluWTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHVwXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5ZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic2xpZGUgbGVmdFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluWDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHJpZ2h0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic2xpZGUgcmlnaHRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xufVxuXG4udHJhbnNpdGlvbi5zbGlkZS5vdXQsXG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSB1cFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic2xpZGUgbGVmdFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRYO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSByaWdodFwiXS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRYO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cblxuLyogSW4gKi9cbkBrZXlmcmFtZXMgc2xpZGVJblkge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlSW5YIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxufVxuXG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgc2xpZGVPdXRZIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzbGlkZU91dFgge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB9XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTd2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cblxuLnRyYW5zaXRpb24uc3dpbmcge1xuICBhbmltYXRpb24tZHVyYXRpb246IDgwMG1zO1xufVxuXG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBkb3duXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nSW5YO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwic3dpbmcgdXBcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBsZWZ0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nSW5ZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgcmlnaHQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyByaWdodFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ0luWTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGxlZnQ7XG59XG5cbi50cmFuc2l0aW9uLnN3aW5nLm91dCxcbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nT3V0WDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xufVxuXG4vKiBJbiAqL1xuQGtleWZyYW1lcyBzd2luZ0luWCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDE1ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKC03LjVkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHN3aW5nSW5ZIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoLTE3LjVkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoNy41ZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgwZGVnKTtcbiAgfVxufVxuXG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgc3dpbmdPdXRYIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTcuNWRlZyk7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgxNy41ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyBzd2luZ091dFkge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSg3LjVkZWcpO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoLTEwZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFpvb21cbi0tLS0tLS0tLS0tLS0tLSovXG5cbi50cmFuc2l0aW9uLnpvb20uaW4ge1xuICBhbmltYXRpb24tbmFtZTogem9vbUluO1xufVxuLnRyYW5zaXRpb24uem9vbS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dDtcbn1cbkBrZXlmcmFtZXMgem9vbUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgem9vbU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICBTdGF0aWMgQW5pbWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEVtcGhhc2lzXG4tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi5mbGFzaC50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xufVxuLnNoYWtlLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogc2hha2U7XG59XG4uYm91bmNlLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlO1xufVxuLnRhZGEudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiB0YWRhO1xufVxuLnB1bHNlLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDUwMG1zO1xuICBhbmltYXRpb24tbmFtZTogcHVsc2U7XG59XG4uamlnZ2xlLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogamlnZ2xlO1xufVxuLnRyYW5zaXRpb24uZ2xvdyB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMjAwMG1zO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOTAsIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xufVxuLnRyYW5zaXRpb24uZ2xvdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBnbG93O1xufVxuXG5cbi8qIEZsYXNoICovXG5Aa2V5ZnJhbWVzIGZsYXNoIHtcbiAgMCUsIDUwJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAyNSUsIDc1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4vKiBTaGFrZSAqL1xuQGtleWZyYW1lcyBzaGFrZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbiAgMTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gIH1cbiAgMjAlLCA0MCUsIDYwJSwgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cbn1cblxuLyogQm91bmNlICovXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcbiAgfVxufVxuXG4vKiBUYWRhICovXG5Aa2V5ZnJhbWVzIHRhZGEge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMCUsIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cbiAgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlKDNkZWcpO1xuICB9XG4gIDQwJSwgNjAlLCA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoLTNkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDApO1xuICB9XG59XG5cbi8qIFB1bHNlICovXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbn1cblxuLyogSmlnZ2xlICovXG5Aa2V5ZnJhbWVzIGppZ2dsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gIH1cbiAgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAuOTUsIDEpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4vKiBHbG93ICovXG5Aa2V5ZnJhbWVzIGdsb3cge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkNGRDtcbiAgfVxuICAzMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY2Q0Q7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkNGRDtcbiAgfVxufVxuXG4iXSwic291cmNlUm9vdCI6IiJ9*/