
/**
  This file contains only imports of Bootstrap, GitLab UI and GitLab mixins,
  variables and functions, in the correct order.

  It is meant to be used in page_bundles, but SHOULD NOT introduce any
  styles of it's own. We actually check in CI that compiling _this_ file doesn't
  result in any additional styles.

  See: scripts/frontend/check_page_bundle_mixins_css_for_sideeffects.js
 */
/*
* SASS preserves units in arithmetic operations. For example:
* 12em * 0 = 0em. This function return the unit of a numeric value.
*
* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ
*/
/* stylelint-disable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-enable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/*
 * Layout
 */
/**
  🚨 Do not use this spacing scale — it is deprecated and being removed. 🚨
  See https://gitlab.com/gitlab-org/gitlab/issues/36857 for more details.

  Instead, if you need a spacing class, add it to app/assets/stylesheets/framework/common.scss,
  using the following values.

    $gl-spacing-scale-0: 0;
    $gl-spacing-scale-1: 2px;
    $gl-spacing-scale-2: 4px;
    $gl-spacing-scale-3: 8px;
    $gl-spacing-scale-4: 12px;
    $gl-spacing-scale-5: 16px;
    $gl-spacing-scale-6: 24px;
    $gl-spacing-scale-7: 32px;
    $gl-spacing-scale-8: 40px;
    $gl-spacing-scale-9: 48px;
    $gl-spacing-scale-10: 56px;
    $gl-spacing-scale-11: 64px;
    $gl-spacing-scale-12: 80px;
    $gl-spacing-scale-13: 96px;

  E.g., a padding top of 96px can be added using:
  .gl-shim-pt-13 {
    padding-top: 96px;
  }

  Please use -shim- so it can be differentiated from the old scale classes.

  These will be replaced when the Gitlab UI utilities are included.
**/
/* Will be moved to @gitlab/ui by https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/issues/2792 */
/* End gitlab-ui#1709 */
/*
 * Text
 */
/*
 * Lists
 */
/*
 * Code
 */
/*
 * Tooltips
 */
/*
 * Padding
 */
/*
 * Misc
 */
/*
 * Merge requests
 */
/*
 * Calculated heights
 */
/* tanuki logo colors */
/*
 * State colors:
 */
/*
 * Commit Diff Colors
 */
/*
 * The transparent colors are used in Monaco editor. Using full opacity colors
 * would hide other layers (selected text, matching brackets).
 *
 * When the transparent colors get layered on white background, they create their
 * full opacity counterparts:
 *
 *  - white + $line-added-transparent = $line-added
 *  - white + $line-added-transparent + $line-added-dark-transparent = $line-added-dark
 *
 * More details: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41553
 */
/*
 * Fonts
 * The --default-mono-font and --default-regular-font variables give users
 * a way to override our font choices for them.
 */
/*
* Dropdowns
*/
/*
* Sidebar
*/
/*
* Buttons
*/
/*
* Badges
*/
/*
 *  Award emoji
 */
/*
 * Search Box
 */
/*
 *  Notes
 */
/*
* Boards
*/
/*
* Builds
*/
/*
* Commit Page
*/
/*
* Files
*/
/*
* Forms
*/
/*
* Label
*/
/*
* Animation
*/
/*
* Login
*/
/*
* Typography
*/
/*
Pipeline Graph
*/
/*
GitLab Plans
*/
/*
Performance Bar
*/
/*
Image Commenting cursor
*/
/*
Popup
*/
/*
Drawers
*/
/*
Modals
*/
/*
Popovers
*/
/*
Merge requests
*/
/*
Board Swimlanes
*/
/*
Source Editor theme overrides
*/
/**
 Bootstrap 4.2.0 introduced new icons for validating forms.
 Our design system does not use those, so we are disabling them for now:
 - Docs: https://getbootstrap.com/docs/4.3/components/forms/#server-side
 - Issue: https://gitlab.com/gitlab-org/design.gitlab.com/issues/242
 */
/*
 * This file is only for overriding Bootstrap 4 variables.
 * Please add any new variables to variables.scss
 */
/*
* SASS preserves units in arithmetic operations. For example:
* 12em * 0 = 0em. This function return the unit of a numeric value.
*
* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ
*/
/* stylelint-disable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-enable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/**
 * Prefilled mixins
 * Mixins with fixed values
 */
/*
 * Base mixin for lists in GitLab
 */
/*
 * Mixin for status badges, as used for pipelines and commit signatures
 */
/*
 * Mixin that fixes wrapping issues with long strings (e.g. URLs)
 *
 * Note: the width needs to be set for it to work in Firefox
 */
/*
* Mixin that handles the container for the job logs (CI/CD and kubernetes pod logs)
*/
/*
* Mixin that handles the position of the controls placed on the top bar
*/
/*
* Mixin that handles the size and right margin of avatars.
*/
/**
* Style to apply to, for example, search results matches or text wrapped
* around <mark> (allowed in Markdown).
*/
/**
* Line connecting activity entries, used in issuables, work items etc
*/
/**
 * Deprecated mixin for dark mode
 */
/**
* CI/CD Job item failed status background
*
* Sets background color of items to visually
* highlight failed jobs in the UI.
*/
/*
* SASS preserves units in arithmetic operations. For example:
* 12em * 0 = 0em. This function return the unit of a numeric value.
*
* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ
*/
/*
* SASS preserves units in arithmetic operations. For example:
* 12em * 0 = 0em. This function return the unit of a numeric value.
*
* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ
*/
/* stylelint-disable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-enable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/**
* Declares a property with a fluid value that decreases or
* rises depending on the viewport’s size. The property type
* should be numeric.
*
* Values are expected in rem units.
* Fluid range: between 48rem (768px) – 75rem (1200px).
*
* @param $property Property name, i.e. line-height, font-size, width, height, etc.
* @param $min Property value lower bound.
* @param $max Property value upper bound.
*/
/**
* Helper function for :focus
*
* @param $size is deprecated and should not be used anymore
*/
/**
* Helper function for @media of at least the minimum
* breakpoint width.
*
* @param $name Breakpoint name, such as `sm` or `md`.
*/
/**
* Helper function for @media of at most the maximum
* breakpoint width.
*
* Note: Before using, consider using a mobile-first
* approach, and define @media for larger breakpoints
* using `gl-media-breakpoint-up` while using this rule as
* the starting point instead.
*
* @param $name Breakpoint, such as `sm` or `md`. `xs` is not valid
*/
/**
* Helper function to resolve font-size value from $gl-font-sizes and
* $gl-font-sizes-fixed maps.
*
* @param $size Number font-size scale
* @param $fixed Boolean toggle default and fixed font size scales
*/

.description li {
  position: relative;
  margin-inline-start: 2.25rem;
}
.description li .drag-icon {
  position: absolute;
  inset-block-start: 0.3rem;
  inset-inline-start: -2.3rem;
  padding-inline-end: 1rem;
  width: 2rem;
}
.description li {
  /* Flush with the row box: the ul owns any gap between the row and this
     wrapper and wins hit-testing over the row's highlight pseudo-element,
     so a gap drops :hover while crossing to the actions button. */
}
.description li .task-list-item-actions-wrapper {
  position: absolute;
  inset-block-start: 0.0625rem;
  inset-inline-end: -1.625rem;
}
.description li .task-list-item-actions[aria-expanded=true],
.description li .task-list-item-actions:is(:focus-visible, :hover) {
  opacity: 1;
}
.description .has-task-list-item-actions > :is(ul, ol) > li {
  margin-inline-end: 2rem;
}
.description ul.task-list > li.task-list-item {
  margin-inline-start: 0.5rem !important; /* Override typography.scss */
}
.description ul.task-list > li.task-list-item > .drag-icon {
  inset-inline-start: -0.6rem;
}

/* Checklist row highlight, only when the description is editable (the grip and
   actions menu exist, marked by .has-task-list-item-actions). */
.has-task-list-item-actions ul.task-list > li.task-list-item {
  /* Center single-line row content within the min row height. */
  min-block-size: 1.75rem;
  padding-block-start: 0.1875rem;
  /* The grip and actions menu sit outside the li box; paint row highlights
     on a pseudo-element extended to enclose the whole row. */
}
.has-task-list-item-actions ul.task-list > li.task-list-item::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset-block: 0;
  inset-inline-start: -1rem;
  inset-inline-end: -1.625rem;
  border-radius: .25rem;
}
.has-task-list-item-actions ul.task-list > li.task-list-item > .drag-icon {
  inset-block-start: 0.4375rem;
}
.has-task-list-item-actions ul.task-list > li.task-list-item > input.task-list-item-checkbox,
.has-task-list-item-actions ul.task-list > li.task-list-item > p > input.task-list-item-checkbox {
  inset-block-start: 0.375rem;
}
.has-task-list-item-actions ul.task-list > li.task-list-item {
  /* Highlight only the innermost hovered row, and never mid-drag: the clone
     has pointer-events: none, so :hover would land on the rows beneath it. */
  /* stylelint-disable-next-line gitlab/no-has -- Anchored to the hovered checklist li and traversing only its own descendants; the li is markdown-rendered outside any Vue component, so no JS hook can mark the innermost hovered row. */
}
body:not(.is-dragging) .has-task-list-item-actions ul.task-list > li.task-list-item:hover:not(:has(.task-list-item:hover))::before {
  background-color: var(--gl-highlight-target-background-color);
}
.has-task-list-item-actions ul.task-list > li.task-list-item {
  /* Strongest highlight: the row whose menu is open, and the held drag clone
     (wrapListDragClone gives the clone these scoping classes). */
}
.has-task-list-item-actions ul.task-list > li.task-list-item.task-list-item-active::before, .has-task-list-item-actions ul.task-list > li.task-list-item.is-dragging::before {
  background-color: var(--gl-highlight-target-background-color);
  border: 1px solid var(--gl-highlight-target-border-color);
}
.has-task-list-item-actions ul.task-list > li.task-list-item {
  /* The faded drop-position ghost keeps a faint highlight marking the target slot */
}
.has-task-list-item-actions ul.task-list > li.task-list-item.is-ghost::before {
  background-color: var(--gl-highlight-target-background-color);
}

.glql-actions li{
  margin-left: var(--gl-spacing-scale-2);
}

.is-ghost {
  opacity: 0.3;
  pointer-events: none;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9hc3NldHMvc3R5bGVzaGVldHMvcGFnZV9idW5kbGVzL2lzc3Vlc19zaG93LnNjc3MiLCJmaWxlOi8vL2dpdGxhYi1nZGsvZ2l0bGFiLWRldmVsb3BtZW50LWtpdC9naXRsYWIvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9wYWdlX2J1bmRsZXMvX21peGluc19hbmRfdmFyaWFibGVzX2FuZF9mdW5jdGlvbnMuc2NzcyIsImZpbGU6Ly8vZ2l0bGFiLWdkay9naXRsYWItZGV2ZWxvcG1lbnQta2l0L2dpdGxhYi9ub2RlX21vZHVsZXMvQGdpdGxhYi91aS9zcmMvc2Nzcy9mdW5jdGlvbnMuc2NzcyIsImZpbGU6Ly8vZ2l0bGFiLWdkay9naXRsYWItZGV2ZWxvcG1lbnQta2l0L2dpdGxhYi9ub2RlX21vZHVsZXMvQGdpdGxhYi91aS9zcmMvc2Nzcy92YXJpYWJsZXMuc2NzcyIsImZpbGU6Ly8vZ2l0bGFiLWdkay9naXRsYWItZGV2ZWxvcG1lbnQta2l0L2dpdGxhYi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2ZyYW1ld29yay92YXJpYWJsZXMuc2NzcyIsImZpbGU6Ly8vZ2l0bGFiLWdkay9naXRsYWItZGV2ZWxvcG1lbnQta2l0L2dpdGxhYi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2ZyYW1ld29yay92YXJpYWJsZXNfb3ZlcnJpZGVzLnNjc3MiLCJmaWxlOi8vL2dpdGxhYi1nZGsvZ2l0bGFiLWRldmVsb3BtZW50LWtpdC9naXRsYWIvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mcmFtZXdvcmsvbWl4aW5zLnNjc3MiLCJmaWxlOi8vL2dpdGxhYi1nZGsvZ2l0bGFiLWRldmVsb3BtZW50LWtpdC9naXRsYWIvbm9kZV9tb2R1bGVzL0BnaXRsYWIvdWkvc3JjL3Njc3MvbWl4aW5zLnNjc3MiLCJmaWxlOi8vL2dpdGxhYi1nZGsvZ2l0bGFiLWRldmVsb3BtZW50LWtpdC9naXRsYWIvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9wYWdlX2J1bmRsZXMvaXNzdWVzX3Nob3cuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7Ozs7Ozs7OztFQUFBO0FDR0E7Ozs7O0NBQUE7QUN3QkEsNkRBQUE7QUFRQSw0REFBQTtBQXlPQSx1RUFBQTtBQUdBLHVFQUFBO0FDNVFBOztFQUFBO0FBcUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTtBQXdDQSxpSEFBQTtBQUdBLHVCQUFBO0FBTUE7O0VBQUE7QUFlQTs7RUFBQTtBQUtBOztFQUFBO0FBT0E7O0VBQUE7QUFLQTs7RUFBQTtBQWlCQTs7RUFBQTtBQXVDQTs7RUFBQTtBQVVBOztFQUFBO0FBU0EsdUJBQUE7QUFLQTs7RUFBQTtBQU1BOztFQUFBO0FBUUE7Ozs7Ozs7Ozs7O0VBQUE7QUF1QkE7Ozs7RUFBQTtBQWFBOztDQUFBO0FBYUE7O0NBQUE7QUFPQTs7Q0FBQTtBQVlBOztDQUFBO0FBS0E7O0VBQUE7QUFRQTs7RUFBQTtBQU1BOztFQUFBO0FBTUE7O0NBQUE7QUFLQTs7Q0FBQTtBQU1BOztDQUFBO0FBTUE7O0NBQUE7QUFNQTs7Q0FBQTtBQVlBOztDQUFBO0FBT0E7O0NBQUE7QUFPQTs7Q0FBQTtBQUtBOztDQUFBO0FBS0E7O0NBQUE7QUFNQTs7Q0FBQTtBQU9BOztDQUFBO0FBUUE7O0NBQUE7QUFNQTs7Q0FBQTtBQU9BOztDQUFBO0FBS0E7O0NBQUE7QUFPQTs7Q0FBQTtBQU1BOztDQUFBO0FBS0E7O0NBQUE7QUFLQTs7Q0FBQTtBQU1BOzs7OztFQUFBO0FDbmJBOzs7RUFBQTtBSEdBOzs7OztDQUFBO0FDd0JBLDZEQUFBO0FBUUEsNERBQUE7QUF5T0EsdUVBQUE7QUFHQSx1RUFBQTtBRzNRQTs7O0VBQUE7QUFjQTs7RUFBQTtBQTJEQTs7RUFBQTtBQXVGQTs7OztFQUFBO0FBWUE7O0NBQUE7QUFxQ0E7O0NBQUE7QUFpR0E7O0NBQUE7QUErRUE7OztDQUFBO0FBYUE7O0NBQUE7QUFZQTs7RUFBQTtBQVNBOzs7OztDQUFBO0FKcGFBOzs7OztDQUFBO0FBQUE7Ozs7O0NBQUE7QUN3QkEsNkRBQUE7QUFRQSw0REFBQTtBQXlPQSx1RUFBQTtBQUdBLHVFQUFBO0FJblBBOzs7Ozs7Ozs7OztDQUFBO0FBZ0JBOzs7O0NBQUE7QUE2REE7Ozs7O0NBQUE7QUFvQkE7Ozs7Ozs7Ozs7Q0FBQTtBQStGQTs7Ozs7O0NBQUE7QUN6TkU7RUFDRSxrQkFBQTtFQUNBLDRCQUFBO0FSNlNKO0FRM1NJO0VBQ0Usa0JBQUE7RUFDQSx5QkFBQTtFQUNBLDJCQUFBO0VBQ0Esd0JBQUE7RUFDQSxXQUFBO0FSNlNOO0FRdFRFO0VBWUU7O2tFQUFBO0FSK1NKO0FRNVNJO0VBQ0Usa0JBQUE7RUFDQSw0QkFBQTtFQUNBLDJCQUFBO0FSOFNOO0FRM1NJOztFQUVFLFVBQUE7QVI2U047QVF6U0U7RUFDRSx1QkFBQTtBUjJTSjtBUXhTRTtFQUNFLHNDQUFBLEVBQUEsNkJBQUE7QVIwU0o7QVF4U0k7RUFDRSwyQkFBQTtBUjBTTjs7QVFyU0E7Z0VBQUE7QUFHQTtFQUNFLDhEQUFBO0VBQ0EsdUJBQUE7RUFDQSw4QkFBQTtFQUVBOzZEQUFBO0FSdVNGO0FRclNFO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSx5QkFBQTtFQUNBLDJCQUFBO0VBQ0EscUJBQUE7QVJ1U0o7QVFwU0U7RUFDRSw0QkFBQTtBUnNTSjtBUW5TRTs7RUFFRSwyQkFBQTtBUnFTSjtBUTVUQTtFQTBCRTs2RUFBQTtFQUVBLHdPQUFBO0FScVNGO0FRcFNFO0VBQ0UsNkRBQUE7QVJzU0o7QVFwVUE7RUFpQ0U7aUVBQUE7QVJ1U0Y7QVFyU0U7RUFFRSw2REFBQTtFQUNBLHlEQUFBO0FSc1NKO0FRNVVBO0VBeUNFLGtGQUFBO0FSc1NGO0FRclNFO0VBQ0UsNkRBQUE7QVJ1U0o7O0FRbFNFO0VBQUE7QUFBQTs7QUFHRjtFQUNFLFlBQUE7RUFDQSxvQkFBQTtBUnNTRiIsImZpbGUiOiJhcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3BhZ2VfYnVuZGxlcy9pc3N1ZXNfc2hvdy5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IGltcG9ydHMgb2YgQm9vdHN0cmFwLCBHaXRMYWIgVUkgYW5kIEdpdExhYiBtaXhpbnMsXG4gIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zLCBpbiB0aGUgY29ycmVjdCBvcmRlci5cblxuICBJdCBpcyBtZWFudCB0byBiZSB1c2VkIGluIHBhZ2VfYnVuZGxlcywgYnV0IFNIT1VMRCBOT1QgaW50cm9kdWNlIGFueVxuICBzdHlsZXMgb2YgaXQncyBvd24uIFdlIGFjdHVhbGx5IGNoZWNrIGluIENJIHRoYXQgY29tcGlsaW5nIF90aGlzXyBmaWxlIGRvZXNuJ3RcbiAgcmVzdWx0IGluIGFueSBhZGRpdGlvbmFsIHN0eWxlcy5cblxuICBTZWU6IHNjcmlwdHMvZnJvbnRlbmQvY2hlY2tfcGFnZV9idW5kbGVfbWl4aW5zX2Nzc19mb3Jfc2lkZWVmZmVjdHMuanNcbiAqL1xuLypcbiogU0FTUyBwcmVzZXJ2ZXMgdW5pdHMgaW4gYXJpdGhtZXRpYyBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZTpcbiogMTJlbSAqIDAgPSAwZW0uIFRoaXMgZnVuY3Rpb24gcmV0dXJuIHRoZSB1bml0IG9mIGEgbnVtZXJpYyB2YWx1ZS5cbipcbiogRm9yIG1vcmUgZXhhbXBsZXMsIHNlZTogaHR0cHM6Ly9jb2RlcGVuLmlvL3BhdWxndi9wZW4vWFdycU1nUVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBAZ2l0bGFiL25vLWdsLWRlcHJlY2F0ZWQtZGVzaWduLXRva2VucyAqL1xuLypcbiAqIExheW91dFxuICovXG4vKipcbiAg8J+aqCBEbyBub3QgdXNlIHRoaXMgc3BhY2luZyBzY2FsZSDigJQgaXQgaXMgZGVwcmVjYXRlZCBhbmQgYmVpbmcgcmVtb3ZlZC4g8J+aqFxuICBTZWUgaHR0cHM6Ly9naXRsYWIuY29tL2dpdGxhYi1vcmcvZ2l0bGFiL2lzc3Vlcy8zNjg1NyBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gIEluc3RlYWQsIGlmIHlvdSBuZWVkIGEgc3BhY2luZyBjbGFzcywgYWRkIGl0IHRvIGFwcC9hc3NldHMvc3R5bGVzaGVldHMvZnJhbWV3b3JrL2NvbW1vbi5zY3NzLFxuICB1c2luZyB0aGUgZm9sbG93aW5nIHZhbHVlcy5cblxuICAgICRnbC1zcGFjaW5nLXNjYWxlLTA6IDA7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTogMnB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTI6IDRweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS0zOiA4cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtNDogMTJweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS01OiAxNnB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTY6IDI0cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtNzogMzJweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS04OiA0MHB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTk6IDQ4cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTA6IDU2cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTE6IDY0cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTI6IDgwcHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTM6IDk2cHg7XG5cbiAgRS5nLiwgYSBwYWRkaW5nIHRvcCBvZiA5NnB4IGNhbiBiZSBhZGRlZCB1c2luZzpcbiAgLmdsLXNoaW0tcHQtMTMge1xuICAgIHBhZGRpbmctdG9wOiA5NnB4O1xuICB9XG5cbiAgUGxlYXNlIHVzZSAtc2hpbS0gc28gaXQgY2FuIGJlIGRpZmZlcmVudGlhdGVkIGZyb20gdGhlIG9sZCBzY2FsZSBjbGFzc2VzLlxuXG4gIFRoZXNlIHdpbGwgYmUgcmVwbGFjZWQgd2hlbiB0aGUgR2l0bGFiIFVJIHV0aWxpdGllcyBhcmUgaW5jbHVkZWQuXG4qKi9cbi8qIFdpbGwgYmUgbW92ZWQgdG8gQGdpdGxhYi91aSBieSBodHRwczovL2dpdGxhYi5jb20vZ2l0bGFiLW9yZy9naXRsYWItc2VydmljZXMvZGVzaWduLmdpdGxhYi5jb20vLS9pc3N1ZXMvMjc5MiAqL1xuLyogRW5kIGdpdGxhYi11aSMxNzA5ICovXG4vKlxuICogVGV4dFxuICovXG4vKlxuICogTGlzdHNcbiAqL1xuLypcbiAqIENvZGVcbiAqL1xuLypcbiAqIFRvb2x0aXBzXG4gKi9cbi8qXG4gKiBQYWRkaW5nXG4gKi9cbi8qXG4gKiBNaXNjXG4gKi9cbi8qXG4gKiBNZXJnZSByZXF1ZXN0c1xuICovXG4vKlxuICogQ2FsY3VsYXRlZCBoZWlnaHRzXG4gKi9cbi8qIHRhbnVraSBsb2dvIGNvbG9ycyAqL1xuLypcbiAqIFN0YXRlIGNvbG9yczpcbiAqL1xuLypcbiAqIENvbW1pdCBEaWZmIENvbG9yc1xuICovXG4vKlxuICogVGhlIHRyYW5zcGFyZW50IGNvbG9ycyBhcmUgdXNlZCBpbiBNb25hY28gZWRpdG9yLiBVc2luZyBmdWxsIG9wYWNpdHkgY29sb3JzXG4gKiB3b3VsZCBoaWRlIG90aGVyIGxheWVycyAoc2VsZWN0ZWQgdGV4dCwgbWF0Y2hpbmcgYnJhY2tldHMpLlxuICpcbiAqIFdoZW4gdGhlIHRyYW5zcGFyZW50IGNvbG9ycyBnZXQgbGF5ZXJlZCBvbiB3aGl0ZSBiYWNrZ3JvdW5kLCB0aGV5IGNyZWF0ZSB0aGVpclxuICogZnVsbCBvcGFjaXR5IGNvdW50ZXJwYXJ0czpcbiAqXG4gKiAgLSB3aGl0ZSArICRsaW5lLWFkZGVkLXRyYW5zcGFyZW50ID0gJGxpbmUtYWRkZWRcbiAqICAtIHdoaXRlICsgJGxpbmUtYWRkZWQtdHJhbnNwYXJlbnQgKyAkbGluZS1hZGRlZC1kYXJrLXRyYW5zcGFyZW50ID0gJGxpbmUtYWRkZWQtZGFya1xuICpcbiAqIE1vcmUgZGV0YWlsczogaHR0cHM6Ly9naXRsYWIuY29tL2dpdGxhYi1vcmcvZ2l0bGFiLy0vbWVyZ2VfcmVxdWVzdHMvNDE1NTNcbiAqL1xuLypcbiAqIEZvbnRzXG4gKiBUaGUgLS1kZWZhdWx0LW1vbm8tZm9udCBhbmQgLS1kZWZhdWx0LXJlZ3VsYXItZm9udCB2YXJpYWJsZXMgZ2l2ZSB1c2Vyc1xuICogYSB3YXkgdG8gb3ZlcnJpZGUgb3VyIGZvbnQgY2hvaWNlcyBmb3IgdGhlbS5cbiAqL1xuLypcbiogRHJvcGRvd25zXG4qL1xuLypcbiogU2lkZWJhclxuKi9cbi8qXG4qIEJ1dHRvbnNcbiovXG4vKlxuKiBCYWRnZXNcbiovXG4vKlxuICogIEF3YXJkIGVtb2ppXG4gKi9cbi8qXG4gKiBTZWFyY2ggQm94XG4gKi9cbi8qXG4gKiAgTm90ZXNcbiAqL1xuLypcbiogQm9hcmRzXG4qL1xuLypcbiogQnVpbGRzXG4qL1xuLypcbiogQ29tbWl0IFBhZ2VcbiovXG4vKlxuKiBGaWxlc1xuKi9cbi8qXG4qIEZvcm1zXG4qL1xuLypcbiogTGFiZWxcbiovXG4vKlxuKiBBbmltYXRpb25cbiovXG4vKlxuKiBMb2dpblxuKi9cbi8qXG4qIFR5cG9ncmFwaHlcbiovXG4vKlxuUGlwZWxpbmUgR3JhcGhcbiovXG4vKlxuR2l0TGFiIFBsYW5zXG4qL1xuLypcblBlcmZvcm1hbmNlIEJhclxuKi9cbi8qXG5JbWFnZSBDb21tZW50aW5nIGN1cnNvclxuKi9cbi8qXG5Qb3B1cFxuKi9cbi8qXG5EcmF3ZXJzXG4qL1xuLypcbk1vZGFsc1xuKi9cbi8qXG5Qb3BvdmVyc1xuKi9cbi8qXG5NZXJnZSByZXF1ZXN0c1xuKi9cbi8qXG5Cb2FyZCBTd2ltbGFuZXNcbiovXG4vKlxuU291cmNlIEVkaXRvciB0aGVtZSBvdmVycmlkZXNcbiovXG4vKipcbiBCb290c3RyYXAgNC4yLjAgaW50cm9kdWNlZCBuZXcgaWNvbnMgZm9yIHZhbGlkYXRpbmcgZm9ybXMuXG4gT3VyIGRlc2lnbiBzeXN0ZW0gZG9lcyBub3QgdXNlIHRob3NlLCBzbyB3ZSBhcmUgZGlzYWJsaW5nIHRoZW0gZm9yIG5vdzpcbiAtIERvY3M6IGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS9kb2NzLzQuMy9jb21wb25lbnRzL2Zvcm1zLyNzZXJ2ZXItc2lkZVxuIC0gSXNzdWU6IGh0dHBzOi8vZ2l0bGFiLmNvbS9naXRsYWItb3JnL2Rlc2lnbi5naXRsYWIuY29tL2lzc3Vlcy8yNDJcbiAqL1xuLypcbiAqIFRoaXMgZmlsZSBpcyBvbmx5IGZvciBvdmVycmlkaW5nIEJvb3RzdHJhcCA0IHZhcmlhYmxlcy5cbiAqIFBsZWFzZSBhZGQgYW55IG5ldyB2YXJpYWJsZXMgdG8gdmFyaWFibGVzLnNjc3NcbiAqL1xuLypcbiogU0FTUyBwcmVzZXJ2ZXMgdW5pdHMgaW4gYXJpdGhtZXRpYyBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZTpcbiogMTJlbSAqIDAgPSAwZW0uIFRoaXMgZnVuY3Rpb24gcmV0dXJuIHRoZSB1bml0IG9mIGEgbnVtZXJpYyB2YWx1ZS5cbipcbiogRm9yIG1vcmUgZXhhbXBsZXMsIHNlZTogaHR0cHM6Ly9jb2RlcGVuLmlvL3BhdWxndi9wZW4vWFdycU1nUVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBAZ2l0bGFiL25vLWdsLWRlcHJlY2F0ZWQtZGVzaWduLXRva2VucyAqL1xuLyoqXG4gKiBQcmVmaWxsZWQgbWl4aW5zXG4gKiBNaXhpbnMgd2l0aCBmaXhlZCB2YWx1ZXNcbiAqL1xuLypcbiAqIEJhc2UgbWl4aW4gZm9yIGxpc3RzIGluIEdpdExhYlxuICovXG4vKlxuICogTWl4aW4gZm9yIHN0YXR1cyBiYWRnZXMsIGFzIHVzZWQgZm9yIHBpcGVsaW5lcyBhbmQgY29tbWl0IHNpZ25hdHVyZXNcbiAqL1xuLypcbiAqIE1peGluIHRoYXQgZml4ZXMgd3JhcHBpbmcgaXNzdWVzIHdpdGggbG9uZyBzdHJpbmdzIChlLmcuIFVSTHMpXG4gKlxuICogTm90ZTogdGhlIHdpZHRoIG5lZWRzIHRvIGJlIHNldCBmb3IgaXQgdG8gd29yayBpbiBGaXJlZm94XG4gKi9cbi8qXG4qIE1peGluIHRoYXQgaGFuZGxlcyB0aGUgY29udGFpbmVyIGZvciB0aGUgam9iIGxvZ3MgKENJL0NEIGFuZCBrdWJlcm5ldGVzIHBvZCBsb2dzKVxuKi9cbi8qXG4qIE1peGluIHRoYXQgaGFuZGxlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRyb2xzIHBsYWNlZCBvbiB0aGUgdG9wIGJhclxuKi9cbi8qXG4qIE1peGluIHRoYXQgaGFuZGxlcyB0aGUgc2l6ZSBhbmQgcmlnaHQgbWFyZ2luIG9mIGF2YXRhcnMuXG4qL1xuLyoqXG4qIFN0eWxlIHRvIGFwcGx5IHRvLCBmb3IgZXhhbXBsZSwgc2VhcmNoIHJlc3VsdHMgbWF0Y2hlcyBvciB0ZXh0IHdyYXBwZWRcbiogYXJvdW5kIDxtYXJrPiAoYWxsb3dlZCBpbiBNYXJrZG93bikuXG4qL1xuLyoqXG4qIExpbmUgY29ubmVjdGluZyBhY3Rpdml0eSBlbnRyaWVzLCB1c2VkIGluIGlzc3VhYmxlcywgd29yayBpdGVtcyBldGNcbiovXG4vKipcbiAqIERlcHJlY2F0ZWQgbWl4aW4gZm9yIGRhcmsgbW9kZVxuICovXG4vKipcbiogQ0kvQ0QgSm9iIGl0ZW0gZmFpbGVkIHN0YXR1cyBiYWNrZ3JvdW5kXG4qXG4qIFNldHMgYmFja2dyb3VuZCBjb2xvciBvZiBpdGVtcyB0byB2aXN1YWxseVxuKiBoaWdobGlnaHQgZmFpbGVkIGpvYnMgaW4gdGhlIFVJLlxuKi9cbi8qXG4qIFNBU1MgcHJlc2VydmVzIHVuaXRzIGluIGFyaXRobWV0aWMgb3BlcmF0aW9ucy4gRm9yIGV4YW1wbGU6XG4qIDEyZW0gKiAwID0gMGVtLiBUaGlzIGZ1bmN0aW9uIHJldHVybiB0aGUgdW5pdCBvZiBhIG51bWVyaWMgdmFsdWUuXG4qXG4qIEZvciBtb3JlIGV4YW1wbGVzLCBzZWU6IGh0dHBzOi8vY29kZXBlbi5pby9wYXVsZ3YvcGVuL1hXcnFNZ1FcbiovXG4vKlxuKiBTQVNTIHByZXNlcnZlcyB1bml0cyBpbiBhcml0aG1ldGljIG9wZXJhdGlvbnMuIEZvciBleGFtcGxlOlxuKiAxMmVtICogMCA9IDBlbS4gVGhpcyBmdW5jdGlvbiByZXR1cm4gdGhlIHVuaXQgb2YgYSBudW1lcmljIHZhbHVlLlxuKlxuKiBGb3IgbW9yZSBleGFtcGxlcywgc2VlOiBodHRwczovL2NvZGVwZW4uaW8vcGF1bGd2L3Blbi9YV3JxTWdRXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBAZ2l0bGFiL25vLWdsLWRlcHJlY2F0ZWQtZGVzaWduLXRva2VucyAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKipcbiogRGVjbGFyZXMgYSBwcm9wZXJ0eSB3aXRoIGEgZmx1aWQgdmFsdWUgdGhhdCBkZWNyZWFzZXMgb3JcbiogcmlzZXMgZGVwZW5kaW5nIG9uIHRoZSB2aWV3cG9ydOKAmXMgc2l6ZS4gVGhlIHByb3BlcnR5IHR5cGVcbiogc2hvdWxkIGJlIG51bWVyaWMuXG4qXG4qIFZhbHVlcyBhcmUgZXhwZWN0ZWQgaW4gcmVtIHVuaXRzLlxuKiBGbHVpZCByYW5nZTogYmV0d2VlbiA0OHJlbSAoNzY4cHgpIOKAkyA3NXJlbSAoMTIwMHB4KS5cbipcbiogQHBhcmFtICRwcm9wZXJ0eSBQcm9wZXJ0eSBuYW1lLCBpLmUuIGxpbmUtaGVpZ2h0LCBmb250LXNpemUsIHdpZHRoLCBoZWlnaHQsIGV0Yy5cbiogQHBhcmFtICRtaW4gUHJvcGVydHkgdmFsdWUgbG93ZXIgYm91bmQuXG4qIEBwYXJhbSAkbWF4IFByb3BlcnR5IHZhbHVlIHVwcGVyIGJvdW5kLlxuKi9cbi8qKlxuKiBIZWxwZXIgZnVuY3Rpb24gZm9yIDpmb2N1c1xuKlxuKiBAcGFyYW0gJHNpemUgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFueW1vcmVcbiovXG4vKipcbiogSGVscGVyIGZ1bmN0aW9uIGZvciBAbWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW1cbiogYnJlYWtwb2ludCB3aWR0aC5cbipcbiogQHBhcmFtICRuYW1lIEJyZWFrcG9pbnQgbmFtZSwgc3VjaCBhcyBgc21gIG9yIGBtZGAuXG4qL1xuLyoqXG4qIEhlbHBlciBmdW5jdGlvbiBmb3IgQG1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW1cbiogYnJlYWtwb2ludCB3aWR0aC5cbipcbiogTm90ZTogQmVmb3JlIHVzaW5nLCBjb25zaWRlciB1c2luZyBhIG1vYmlsZS1maXJzdFxuKiBhcHByb2FjaCwgYW5kIGRlZmluZSBAbWVkaWEgZm9yIGxhcmdlciBicmVha3BvaW50c1xuKiB1c2luZyBgZ2wtbWVkaWEtYnJlYWtwb2ludC11cGAgd2hpbGUgdXNpbmcgdGhpcyBydWxlIGFzXG4qIHRoZSBzdGFydGluZyBwb2ludCBpbnN0ZWFkLlxuKlxuKiBAcGFyYW0gJG5hbWUgQnJlYWtwb2ludCwgc3VjaCBhcyBgc21gIG9yIGBtZGAuIGB4c2AgaXMgbm90IHZhbGlkXG4qL1xuLyoqXG4qIEhlbHBlciBmdW5jdGlvbiB0byByZXNvbHZlIGZvbnQtc2l6ZSB2YWx1ZSBmcm9tICRnbC1mb250LXNpemVzIGFuZFxuKiAkZ2wtZm9udC1zaXplcy1maXhlZCBtYXBzLlxuKlxuKiBAcGFyYW0gJHNpemUgTnVtYmVyIGZvbnQtc2l6ZSBzY2FsZVxuKiBAcGFyYW0gJGZpeGVkIEJvb2xlYW4gdG9nZ2xlIGRlZmF1bHQgYW5kIGZpeGVkIGZvbnQgc2l6ZSBzY2FsZXNcbiovXG4uZGVzY3JpcHRpb24gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDIuMjVyZW07XG59XG4uZGVzY3JpcHRpb24gbGkgLmRyYWctaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IDAuM3JlbTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAtMi4zcmVtO1xuICBwYWRkaW5nLWlubGluZS1lbmQ6IDFyZW07XG4gIHdpZHRoOiAycmVtO1xufVxuLmRlc2NyaXB0aW9uIGxpIHtcbiAgLyogRmx1c2ggd2l0aCB0aGUgcm93IGJveDogdGhlIHVsIG93bnMgYW55IGdhcCBiZXR3ZWVuIHRoZSByb3cgYW5kIHRoaXNcbiAgICAgd3JhcHBlciBhbmQgd2lucyBoaXQtdGVzdGluZyBvdmVyIHRoZSByb3cncyBoaWdobGlnaHQgcHNldWRvLWVsZW1lbnQsXG4gICAgIHNvIGEgZ2FwIGRyb3BzIDpob3ZlciB3aGlsZSBjcm9zc2luZyB0byB0aGUgYWN0aW9ucyBidXR0b24uICovXG59XG4uZGVzY3JpcHRpb24gbGkgLnRhc2stbGlzdC1pdGVtLWFjdGlvbnMtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IDAuMDYyNXJlbTtcbiAgaW5zZXQtaW5saW5lLWVuZDogLTEuNjI1cmVtO1xufVxuLmRlc2NyaXB0aW9uIGxpIC50YXNrLWxpc3QtaXRlbS1hY3Rpb25zW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0sXG4uZGVzY3JpcHRpb24gbGkgLnRhc2stbGlzdC1pdGVtLWFjdGlvbnM6aXMoOmZvY3VzLXZpc2libGUsIDpob3Zlcikge1xuICBvcGFjaXR5OiAxO1xufVxuLmRlc2NyaXB0aW9uIC5oYXMtdGFzay1saXN0LWl0ZW0tYWN0aW9ucyA+IDppcyh1bCwgb2wpID4gbGkge1xuICBtYXJnaW4taW5saW5lLWVuZDogMnJlbTtcbn1cbi5kZXNjcmlwdGlvbiB1bC50YXNrLWxpc3QgPiBsaS50YXNrLWxpc3QtaXRlbSB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDAuNXJlbSAhaW1wb3J0YW50OyAvKiBPdmVycmlkZSB0eXBvZ3JhcGh5LnNjc3MgKi9cbn1cbi5kZXNjcmlwdGlvbiB1bC50YXNrLWxpc3QgPiBsaS50YXNrLWxpc3QtaXRlbSA+IC5kcmFnLWljb24ge1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IC0wLjZyZW07XG59XG5cbi8qIENoZWNrbGlzdCByb3cgaGlnaGxpZ2h0LCBvbmx5IHdoZW4gdGhlIGRlc2NyaXB0aW9uIGlzIGVkaXRhYmxlICh0aGUgZ3JpcCBhbmRcbiAgIGFjdGlvbnMgbWVudSBleGlzdCwgbWFya2VkIGJ5IC5oYXMtdGFzay1saXN0LWl0ZW0tYWN0aW9ucykuICovXG4uaGFzLXRhc2stbGlzdC1pdGVtLWFjdGlvbnMgdWwudGFzay1saXN0ID4gbGkudGFzay1saXN0LWl0ZW0ge1xuICAvKiBDZW50ZXIgc2luZ2xlLWxpbmUgcm93IGNvbnRlbnQgd2l0aGluIHRoZSBtaW4gcm93IGhlaWdodC4gKi9cbiAgbWluLWJsb2NrLXNpemU6IDEuNzVyZW07XG4gIHBhZGRpbmctYmxvY2stc3RhcnQ6IDAuMTg3NXJlbTtcbiAgLyogVGhlIGdyaXAgYW5kIGFjdGlvbnMgbWVudSBzaXQgb3V0c2lkZSB0aGUgbGkgYm94OyBwYWludCByb3cgaGlnaGxpZ2h0c1xuICAgICBvbiBhIHBzZXVkby1lbGVtZW50IGV4dGVuZGVkIHRvIGVuY2xvc2UgdGhlIHdob2xlIHJvdy4gKi9cbn1cbi5oYXMtdGFzay1saXN0LWl0ZW0tYWN0aW9ucyB1bC50YXNrLWxpc3QgPiBsaS50YXNrLWxpc3QtaXRlbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgaW5zZXQtYmxvY2s6IDA7XG4gIGluc2V0LWlubGluZS1zdGFydDogLTFyZW07XG4gIGluc2V0LWlubGluZS1lbmQ6IC0xLjYyNXJlbTtcbiAgQGFwcGx5IGdsLXJvdW5kZWQtYmFzZTtcbn1cbi5oYXMtdGFzay1saXN0LWl0ZW0tYWN0aW9ucyB1bC50YXNrLWxpc3QgPiBsaS50YXNrLWxpc3QtaXRlbSA+IC5kcmFnLWljb24ge1xuICBpbnNldC1ibG9jay1zdGFydDogMC40Mzc1cmVtO1xufVxuLmhhcy10YXNrLWxpc3QtaXRlbS1hY3Rpb25zIHVsLnRhc2stbGlzdCA+IGxpLnRhc2stbGlzdC1pdGVtID4gaW5wdXQudGFzay1saXN0LWl0ZW0tY2hlY2tib3gsXG4uaGFzLXRhc2stbGlzdC1pdGVtLWFjdGlvbnMgdWwudGFzay1saXN0ID4gbGkudGFzay1saXN0LWl0ZW0gPiBwID4gaW5wdXQudGFzay1saXN0LWl0ZW0tY2hlY2tib3gge1xuICBpbnNldC1ibG9jay1zdGFydDogMC4zNzVyZW07XG59XG4uaGFzLXRhc2stbGlzdC1pdGVtLWFjdGlvbnMgdWwudGFzay1saXN0ID4gbGkudGFzay1saXN0LWl0ZW0ge1xuICAvKiBIaWdobGlnaHQgb25seSB0aGUgaW5uZXJtb3N0IGhvdmVyZWQgcm93LCBhbmQgbmV2ZXIgbWlkLWRyYWc6IHRoZSBjbG9uZVxuICAgICBoYXMgcG9pbnRlci1ldmVudHM6IG5vbmUsIHNvIDpob3ZlciB3b3VsZCBsYW5kIG9uIHRoZSByb3dzIGJlbmVhdGggaXQuICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBnaXRsYWIvbm8taGFzIC0tIEFuY2hvcmVkIHRvIHRoZSBob3ZlcmVkIGNoZWNrbGlzdCBsaSBhbmQgdHJhdmVyc2luZyBvbmx5IGl0cyBvd24gZGVzY2VuZGFudHM7IHRoZSBsaSBpcyBtYXJrZG93bi1yZW5kZXJlZCBvdXRzaWRlIGFueSBWdWUgY29tcG9uZW50LCBzbyBubyBKUyBob29rIGNhbiBtYXJrIHRoZSBpbm5lcm1vc3QgaG92ZXJlZCByb3cuICovXG59XG5ib2R5Om5vdCguaXMtZHJhZ2dpbmcpIC5oYXMtdGFzay1saXN0LWl0ZW0tYWN0aW9ucyB1bC50YXNrLWxpc3QgPiBsaS50YXNrLWxpc3QtaXRlbTpob3Zlcjpub3QoOmhhcygudGFzay1saXN0LWl0ZW06aG92ZXIpKTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2wtaGlnaGxpZ2h0LXRhcmdldC1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cbi5oYXMtdGFzay1saXN0LWl0ZW0tYWN0aW9ucyB1bC50YXNrLWxpc3QgPiBsaS50YXNrLWxpc3QtaXRlbSB7XG4gIC8qIFN0cm9uZ2VzdCBoaWdobGlnaHQ6IHRoZSByb3cgd2hvc2UgbWVudSBpcyBvcGVuLCBhbmQgdGhlIGhlbGQgZHJhZyBjbG9uZVxuICAgICAod3JhcExpc3REcmFnQ2xvbmUgZ2l2ZXMgdGhlIGNsb25lIHRoZXNlIHNjb3BpbmcgY2xhc3NlcykuICovXG59XG4uaGFzLXRhc2stbGlzdC1pdGVtLWFjdGlvbnMgdWwudGFzay1saXN0ID4gbGkudGFzay1saXN0LWl0ZW0udGFzay1saXN0LWl0ZW0tYWN0aXZlOjpiZWZvcmUsIC5oYXMtdGFzay1saXN0LWl0ZW0tYWN0aW9ucyB1bC50YXNrLWxpc3QgPiBsaS50YXNrLWxpc3QtaXRlbS5pcy1kcmFnZ2luZzo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2wtaGlnaGxpZ2h0LXRhcmdldC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ2wtaGlnaGxpZ2h0LXRhcmdldC1ib3JkZXItY29sb3IpO1xufVxuLmhhcy10YXNrLWxpc3QtaXRlbS1hY3Rpb25zIHVsLnRhc2stbGlzdCA+IGxpLnRhc2stbGlzdC1pdGVtIHtcbiAgLyogVGhlIGZhZGVkIGRyb3AtcG9zaXRpb24gZ2hvc3Qga2VlcHMgYSBmYWludCBoaWdobGlnaHQgbWFya2luZyB0aGUgdGFyZ2V0IHNsb3QgKi9cbn1cbi5oYXMtdGFzay1saXN0LWl0ZW0tYWN0aW9ucyB1bC50YXNrLWxpc3QgPiBsaS50YXNrLWxpc3QtaXRlbS5pcy1naG9zdDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2wtaGlnaGxpZ2h0LXRhcmdldC1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cblxuLmdscWwtYWN0aW9ucyBsaSB7XG4gIEBhcHBseSBnbC1tbC0yO1xufVxuXG4uaXMtZ2hvc3Qge1xuICBvcGFjaXR5OiAwLjM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufSIsIi8qKlxuICBUaGlzIGZpbGUgY29udGFpbnMgb25seSBpbXBvcnRzIG9mIEJvb3RzdHJhcCwgR2l0TGFiIFVJIGFuZCBHaXRMYWIgbWl4aW5zLFxuICB2YXJpYWJsZXMgYW5kIGZ1bmN0aW9ucywgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuXG5cbiAgSXQgaXMgbWVhbnQgdG8gYmUgdXNlZCBpbiBwYWdlX2J1bmRsZXMsIGJ1dCBTSE9VTEQgTk9UIGludHJvZHVjZSBhbnlcbiAgc3R5bGVzIG9mIGl0J3Mgb3duLiBXZSBhY3R1YWxseSBjaGVjayBpbiBDSSB0aGF0IGNvbXBpbGluZyBfdGhpc18gZmlsZSBkb2Vzbid0XG4gIHJlc3VsdCBpbiBhbnkgYWRkaXRpb25hbCBzdHlsZXMuXG5cbiAgU2VlOiBzY3JpcHRzL2Zyb250ZW5kL2NoZWNrX3BhZ2VfYnVuZGxlX21peGluc19jc3NfZm9yX3NpZGVlZmZlY3RzLmpzXG4gKi9cbkBpbXBvcnQgJ2ZyYW1ld29yay9mdW5jdGlvbnMnO1xuQGltcG9ydCAnZnJhbWV3b3JrL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdmcmFtZXdvcmsvdmFyaWFibGVzX292ZXJyaWRlcyc7XG5AaW1wb3J0ICdmcmFtZXdvcmsvbWl4aW5zJztcblxuQGltcG9ydCAnYm9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zJztcbkBpbXBvcnQgJ2Jvb3RzdHJhcC9zY3NzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdib290c3RyYXAvc2Nzcy9taXhpbnMnO1xuXG5AaW1wb3J0ICdAZ2l0bGFiL3VpL3NyYy9zY3NzL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICdAZ2l0bGFiL3VpL3NyYy9zY3NzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdAZ2l0bGFiL3VpL3NyYy9zY3NzL21peGlucyc7XG4iLCJAdXNlIFwic2FzczptYXRoXCI7XG5AdXNlIFwic2FzczptZXRhXCI7XG5cbi8qXG4qIFNBU1MgcHJlc2VydmVzIHVuaXRzIGluIGFyaXRobWV0aWMgb3BlcmF0aW9ucy4gRm9yIGV4YW1wbGU6XG4qIDEyZW0gKiAwID0gMGVtLiBUaGlzIGZ1bmN0aW9uIHJldHVybiB0aGUgdW5pdCBvZiBhIG51bWVyaWMgdmFsdWUuXG4qXG4qIEZvciBtb3JlIGV4YW1wbGVzLCBzZWU6IGh0dHBzOi8vY29kZXBlbi5pby9wYXVsZ3YvcGVuL1hXcnFNZ1FcbiovXG5AZnVuY3Rpb24gZXh0cmFjdC11bml0KCRudW1iZXIpIHtcbiAgQHJldHVybiAkbnVtYmVyICogMCArIDE7XG59XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkbnVtYmVyKSA9PSBcIm51bWJlclwiIGFuZCBub3QgbWF0aC5pcy11bml0bGVzcygkbnVtYmVyKSB7XG4gICAgQHJldHVybiBtYXRoLmRpdigkbnVtYmVyLCBleHRyYWN0LXVuaXQoJG51bWJlcikpO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyO1xufVxuXG5AZnVuY3Rpb24gc2luZ2xlLXVuaXQtcmVtKCR2YWx1ZSwgJGZvbnQtc2l6ZS1iYXNlKSB7XG4gIEBpZiAoZXh0cmFjdC11bml0KCR2YWx1ZSkgIT0gMXB4KSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAkY29udmVydGVkOiBtYXRoLmRpdigkdmFsdWUsICRmb250LXNpemUtYmFzZSk7XG5cbiAgQHJldHVybiBzdHJpcC11bml0KCRjb252ZXJ0ZWQpICogMXJlbTtcbn1cblxuQGZ1bmN0aW9uIG11bHRpcGxlLXVuaXRzLXJlbSgkdmFsdWVzLCAkZm9udC1zaXplLWJhc2UpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCBzaW5nbGUtdW5pdC1yZW0oJHZhbHVlLCAkZm9udC1zaXplLWJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbkBmdW5jdGlvbiBweC10by1yZW0oJHB4LCAkZm9udC1zaXplLWJhc2U6IDE2cHgpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkcHgpID09IFwibnVtYmVyXCIge1xuICAgIEByZXR1cm4gc2luZ2xlLXVuaXQtcmVtKCRweCwgJGZvbnQtc2l6ZS1iYXNlKTtcbiAgfSBAZWxzZSBpZiBtZXRhLnR5cGUtb2YoJHB4KSA9PSBcImxpc3RcIiB7XG4gICAgQHJldHVybiBtdWx0aXBsZS11bml0cy1yZW0oJHB4LCAkZm9udC1zaXplLWJhc2UpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRweDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpIHtcbiAgQHJldHVybiAje2lmKCRpbXBvcnRhbnQsIFwiIWltcG9ydGFudFwiLCBcIlwiKX07XG59XG5cbkBmdW5jdGlvbiBjbGFtcC1iZXR3ZWVuKCRtaW4sICRtYXgsICRtaW4td2lkdGg6ICRicmVha3BvaW50LW1kLCAkbWF4LXdpZHRoOiAkYnJlYWtwb2ludC14bCkge1xuICAkbWluLXdpZHRoOiBweC10by1yZW0oJG1pbi13aWR0aCk7XG4gICRtYXgtd2lkdGg6IHB4LXRvLXJlbSgkbWF4LXdpZHRoKTtcblxuICAkc2xvcGU6IG1hdGguZGl2KCRtYXggLSAkbWluLCAkbWF4LXdpZHRoIC0gJG1pbi13aWR0aCk7XG4gICRpbnRlcnNlY3Rpb246ICgtJG1pbi13aWR0aCAqICRzbG9wZSkgKyAkbWluO1xuXG4gIEByZXR1cm4gY2xhbXAoI3skbWlufSwgI3skaW50ZXJzZWN0aW9ufSArICN7JHNsb3BlICogMTAwdnd9LCAjeyRtYXh9KTtcbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuQGltcG9ydCBcImZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL3Rva2Vucy9idWlsZC9zY3NzL3Rva2Vuc1wiO1xuXG4vLyBMYXlvdXRcbiRncmlkLXNpemU6IHB4LXRvLXJlbSg4cHgpO1xuXG4vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzXG5cbiRicmVha3BvaW50LXNtOiA1NzZweDtcbiRicmVha3BvaW50LW1kOiA3NjhweDtcbiRicmVha3BvaW50LWxnOiA5OTJweDtcbiRicmVha3BvaW50LXhsOiAxMjAwcHg7XG5cbiRicmVha3BvaW50czogKFxuICB4czogMCxcbiAgc206ICRicmVha3BvaW50LXNtLFxuICBtZDogJGJyZWFrcG9pbnQtbWQsXG4gIGxnOiAkYnJlYWtwb2ludC1sZyxcbiAgeGw6ICRicmVha3BvaW50LXhsLFxuKTtcblxuLy8gTWF4IHdpZHRoc1xuJGxpbWl0ZWQtbGF5b3V0LXdpZHRoOiA5OTBweCAhZGVmYXVsdDtcbiRjb250YWluZXIteGw6IDEyODBweCAhZGVmYXVsdDtcblxuLy8gQ29sb3Igc2NoZW1hXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBAZ2l0bGFiL25vLWdsLWRlcHJlY2F0ZWQtZGVzaWduLXRva2VucyAqL1xuJGJsYWNrLW5vcm1hbDogIzMzMyAhZGVmYXVsdDtcblxuJHdoaXRlLWNvbnRyYXN0OiAjZmZmICFkZWZhdWx0O1xuJHdoaXRlLW5vcm1hbDogI2YwZjBmMCAhZGVmYXVsdDtcbiR3aGl0ZS1kYXJrOiAjZWFlYWVhICFkZWZhdWx0O1xuJHdoaXRlLXRyYW5zcGFyZW50OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtcmdiYTogcmdiYSgkd2hpdGUsIDApO1xuLyogc3R5bGVsaW50LWVuYWJsZSBAZ2l0bGFiL25vLWdsLWRlcHJlY2F0ZWQtZGVzaWduLXRva2VucyAqL1xuXG4vLyBUZXh0XG4kZ2wtdGV4dC1jb2xvcjogJGdsLXRleHQtY29sb3ItZGVmYXVsdCAhZGVmYXVsdDtcbiRnbC10ZXh0LWNvbG9yLXNlY29uZGFyeTogJGdsLXRleHQtY29sb3Itc3VidGxlICFkZWZhdWx0O1xuXG4kZ2wtZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDtcbiRnbC1mb250LXdlaWdodC1ub3JtYWw6IDQwMDtcbiRnbC1mb250LXdlaWdodC1zZW1pYm9sZDogNTAwO1xuJGdsLWZvbnQtd2VpZ2h0LWJvbGQ6IDYwMDtcblxuJGdsLWZvbnQtd2VpZ2h0czogKFxuICBcIm5vcm1hbFwiOiAkZ2wtZm9udC13ZWlnaHQtbm9ybWFsLFxuICBcImJvbGRcIjogJGdsLWZvbnQtd2VpZ2h0LWJvbGQsXG4pO1xuXG4vLyBGb250c1xuJGdsLW1vbm9zcGFjZS1mb250OlxuICBcIkdpdExhYiBNb25vXCIsIFwiSmV0QnJhaW5zIE1vbm9cIiwgXCJNZW5sb1wiLCBcIkRlamFWdSBTYW5zIE1vbm9cIiwgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJDb25zb2xhc1wiLFxuICBcIlVidW50dSBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgXCJhbmRhbGUgbW9ub1wiLCBcImx1Y2lkYSBjb25zb2xlXCIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcbiRnbC1yZWd1bGFyLWZvbnQ6XG4gIFwiR2l0TGFiIFNhbnNcIixcbiAgLWFwcGxlLXN5c3RlbSxcbiAgQmxpbmtNYWNTeXN0ZW1Gb250LFxuICBcIlNlZ29lIFVJXCIsXG4gIFJvYm90byxcbiAgXCJOb3RvIFNhbnNcIixcbiAgVWJ1bnR1LFxuICBDYW50YXJlbGwsXG4gIFwiSGVsdmV0aWNhIE5ldWVcIixcbiAgc2Fucy1zZXJpZixcbiAgXCJBcHBsZSBDb2xvciBFbW9qaVwiLFxuICBcIlNlZ29lIFVJIEVtb2ppXCIsXG4gIFwiU2Vnb2UgVUkgU3ltYm9sXCIsXG4gIFwiTm90byBDb2xvciBFbW9qaVwiICFkZWZhdWx0O1xuXG4kZ2wtZm9udHM6IChcbiAgXCJtb25vc3BhY2VcIjogJGdsLW1vbm9zcGFjZS1mb250LFxuICBcInJlZ3VsYXJcIjogJGdsLXJlZ3VsYXItZm9udCxcbik7XG5cbi8vIE5ldyBVSSB0eXBlIHNjYWxlXG4vLyBJbXBsZW1lbnRzIHRoZSB0eXBlIHNjYWxlIGZyb20gaHR0cHM6Ly9naXRsYWIuY29tL2dyb3Vwcy9naXRsYWItb3JnL2dpdGxhYi1zZXJ2aWNlcy8tL2VwaWNzLzE1XG4vLyBPbGQgdmFyaWFibGVzIGFuZCBzdHlsZXMgbmVlZCB0byBiZSByZW1vdmVkIGFmdGVyIGludGVyZ3JhdGlvblxuXG4vLyBGb250IHNpemUgc2NhbGVcblxuLy8gZml4ZWQgc2NhbGUgKGNvbXBhY3QgbWFya2Rvd24pXG4kZ2wtZm9udC1zaXplcy1maXhlZDogKFxuICAxMDA6IHB4LXRvLXJlbSgxMnB4KSxcbiAgMjAwOiBweC10by1yZW0oMTNweCksXG4gIDMwMDogcHgtdG8tcmVtKDE0cHgpLFxuICA0MDA6IHB4LXRvLXJlbSgxNnB4KSxcbiAgNTAwOiBweC10by1yZW0oMThweCksXG4gIDYwMDogcHgtdG8tcmVtKDIxcHgpLFxuICA3MDA6IHB4LXRvLXJlbSgyNHB4KSxcbiAgODAwOiBweC10by1yZW0oMjhweCksXG4pO1xuXG4vLyBkeW5hbWljIHNjYWxlIChkZWZhdWx0KSByZXNpemVzIGJhc2VkIG9uIHZpZXdwb3J0IHdpZHRoXG4kZ2wtZm9udC1zaXplczogKFxuICAxMDA6IG1hcC5nZXQoJGdsLWZvbnQtc2l6ZXMtZml4ZWQsIDEwMCksXG4gIDIwMDogbWFwLmdldCgkZ2wtZm9udC1zaXplcy1maXhlZCwgMjAwKSxcbiAgMzAwOiBtYXAuZ2V0KCRnbC1mb250LXNpemVzLWZpeGVkLCAzMDApLFxuICA0MDA6IG1hcC5nZXQoJGdsLWZvbnQtc2l6ZXMtZml4ZWQsIDQwMCksXG4gIDUwMDogY2xhbXAtYmV0d2VlbihtYXAuZ2V0KCRnbC1mb250LXNpemVzLWZpeGVkLCA1MDApLCBweC10by1yZW0oMjBweCkpLFxuICA2MDA6IGNsYW1wLWJldHdlZW4obWFwLmdldCgkZ2wtZm9udC1zaXplcy1maXhlZCwgNjAwKSwgcHgtdG8tcmVtKDI1cHgpKSxcbiAgNzAwOiBjbGFtcC1iZXR3ZWVuKG1hcC5nZXQoJGdsLWZvbnQtc2l6ZXMtZml4ZWQsIDcwMCksIHB4LXRvLXJlbSgzMHB4KSksXG4gIDgwMDogY2xhbXAtYmV0d2VlbihtYXAuZ2V0KCRnbC1mb250LXNpemVzLWZpeGVkLCA4MDApLCBweC10by1yZW0oMzZweCkpLFxuKTtcblxuLy8gSGVhZGluZyB2YXJpYWJsZXNcbi8vIE5vdCBhbGwgYXJlIGN1cnJlbnRseSB1c2VkLCBidXQgZG9jdW1lbnRlZCBoZXJlIHRvIGNhcHR1cmUgaW50ZW50XG4kZ2wtZm9udC1oZWFkaW5nOiAkZ2wtcmVndWxhci1mb250O1xuJGdsLWZvbnQtd2VpZ2h0LWhlYWRpbmc6IDYwMDtcbiRnbC1sZXR0ZXItc3BhY2luZy1oZWFkaW5nOiBpbmhlcml0O1xuJGdsLWxldHRlci1zcGFjaW5nLWhlYWRpbmctcmVkdWNlZDogLTAuMDFlbTtcbiRnbC1saW5lLWhlaWdodC1oZWFkaW5nOiAxLjI1O1xuJGdsLWxpbmUtaGVpZ2h0LWhlYWRpbmctZGlzcGxheTogMS4xMjU7XG4kZ2wtbWItaGVhZGluZzogJGdsLXNwYWNpbmctc2NhbGUtNTtcbiRnbC1tYi1oZWFkaW5nLWRpc3BsYXk6ICRnbC1zcGFjaW5nLXNjYWxlLTY7XG4kZ2wtdGV4dC1jb2xvci1oZWFkaW5nOiAkZ2wtdGV4dC1jb2xvcjtcbi8vIE5vdCB5ZXQgc3VwcG9ydGVkLCBidXQgd2UnbGwgYmUgcmVhZHlcbiRnbC10ZXh0LXdyYXAtaGVhZGluZzogcHJldHR5O1xuXG4vLyBFTkQgTmV3IFVJIHR5cGUgc2NhbGVcblxuLy8gVUkgdHlwZXNjYWxlXG5cbi8vIGRlZmF1bHQgKG1pbi13aWR0aDogMClcbiRnbC1mb250LXNpemU6IHB4LXRvLXJlbSgxNHB4KTtcblxuJGdsLWZvbnQtc2l6ZS1oLWRpc3BsYXk6IHB4LXRvLXJlbSgyOHB4KTtcbiRnbC1mb250LXNpemUtaDE6IHB4LXRvLXJlbSgyM3B4KTtcbiRnbC1mb250LXNpemUtaDI6IHB4LXRvLXJlbSgxOXB4KTtcblxuLy8gYnJlYWtwb2ludCAobWluLXdpZHRoOiA3NjhweClcbiRnbC1mb250LXNpemUtaC1kaXNwbGF5LW1kOiBweC10by1yZW0oMzFweCk7XG4kZ2wtZm9udC1zaXplLWgxLW1kOiBweC10by1yZW0oMjVweCk7XG4kZ2wtZm9udC1zaXplLWgyLW1kOiBweC10by1yZW0oMjBweCk7XG5cbi8vIGJyZWFrcG9pbnQgKG1pbi13aWR0aDogMTIwMHB4KVxuJGdsLWZvbnQtc2l6ZS1oLWRpc3BsYXkteGw6IHB4LXRvLXJlbSg0NXB4KTtcbiRnbC1mb250LXNpemUtaDEteGw6IHB4LXRvLXJlbSgzMnB4KTtcbiRnbC1mb250LXNpemUtaDIteGw6IHB4LXRvLXJlbSgyM3B4KTtcblxuLy8gTWFya2Rvd24gdHlwZXNjYWxlXG5cbi8vIGRlZmF1bHQgKG1pbi13aWR0aDogMClcbiRnbC1mb250LXNpemUtbWFya2Rvd246IHB4LXRvLXJlbSgxNnB4KTtcbiRnbC1mb250LXNpemUtbWFya2Rvd24tc206IHB4LXRvLXJlbSgxNHB4KTtcblxuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1oMTogcHgtdG8tcmVtKDI4cHgpO1xuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1oMjogcHgtdG8tcmVtKDIzcHgpO1xuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1oMzogcHgtdG8tcmVtKDE5cHgpO1xuXG4vLyBicmVha3BvaW50IChtaW4td2lkdGg6IDc2OHB4KVxuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1oMS1tZDogcHgtdG8tcmVtKDMxcHgpO1xuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1oMi1tZDogcHgtdG8tcmVtKDI1cHgpO1xuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1oMy1tZDogcHgtdG8tcmVtKDIwcHgpO1xuXG4vLyBicmVha3BvaW50IChtaW4td2lkdGg6IDEyMDBweClcbiRnbC1mb250LXNpemUtbWFya2Rvd24taDEteGw6IHB4LXRvLXJlbSg0NXB4KTtcbiRnbC1mb250LXNpemUtbWFya2Rvd24taDIteGw6IHB4LXRvLXJlbSgzMnB4KTtcbiRnbC1mb250LXNpemUtbWFya2Rvd24taDMteGw6IHB4LXRvLXJlbSgyM3B4KTtcblxuLy8gQ29tcGFjdCBtYXJrZG93biB0eXBlc2NhbGVcblxuLy8gZGVmYXVsdCAobWluLXdpZHRoOiAwKVxuJGdsLWZvbnQtc2l6ZS1jb21wYWN0LW1hcmtkb3duLWgxOiBweC10by1yZW0oMTlweCk7XG5cbi8vIG1lZGlhLW1kOiBtaW4td2lkdGg6IDc2OHB4XG4kZ2wtZm9udC1zaXplLWNvbXBhY3QtbWFya2Rvd24taDEtbWQ6IHB4LXRvLXJlbSgyMHB4KTtcblxuLy8gbWVkaWEgeGwgKG1pbi13aWR0aDogMTIwMHB4KVxuJGdsLWZvbnQtc2l6ZS1jb21wYWN0LW1hcmtkb3duLWgxLXhsOiBweC10by1yZW0oMjNweCk7XG5cbiRib3JkZXItY29sb3I6ICRnbC1ib3JkZXItY29sb3ItZGVmYXVsdCAhZGVmYXVsdDtcblxuLy8gdXNlIHB4IGZvciBib3JkZXJzIHJhdGhlciB0aGFuIHJlbVxuLy8gd2UgZG9uJ3Qgd2FudCBib3JkZXJzIHRvIHNjYWxlIHdpdGggZm9udCBzaXplXG4vLyAxcHggY2FuIGVuZCB1cCBiZWluZyByb3VuZGVkIHRvIDAgYWZ0ZXJcbi8vIGNvbnZlcnNpb24gdG8vZnJvbSByZW1cbiRnbC1ib3JkZXItc2l6ZS0xOiAxcHg7XG4kZ2wtYm9yZGVyLXNpemUtMjogMnB4O1xuJGdsLWJvcmRlci1zaXplLTM6IDNweDtcbiRnbC1ib3JkZXItc2l6ZS00OiA0cHg7XG4kZ2wtYm9yZGVyLXNpemUtNTogNXB4O1xuJGdsLWJvcmRlci1zaXplLTg6IDhweDtcblxuLy8gYm9yZGVyIHJvdW5kbmVzc1xuJGdsLWJvcmRlci1yYWRpdXMtc21hbGw6ICRnbC1zcGFjaW5nLXNjYWxlLTE7XG4kZ2wtYm9yZGVyLXJhZGl1cy1iYXNlOiAkZ2wtc3BhY2luZy1zY2FsZS0yO1xuJGdsLWJvcmRlci1yYWRpdXMtbGFyZ2U6ICRnbC1zcGFjaW5nLXNjYWxlLTM7XG4kZ2wtYm9yZGVyLXJhZGl1cy02OiAkZ2wtc3BhY2luZy1zY2FsZS02O1xuJGdsLWJvcmRlci1yYWRpdXMtNzogJGdsLXNwYWNpbmctc2NhbGUtNztcblxuLy8gY29tcG9uZW50IGhlaWdodFxuJGdsLWJ1dHRvbi1zbWFsbC1zaXplOiBweC10by1yZW0oMjRweCk7XG4kZ2wtYnV0dG9uLW1lZGl1bS1zaXplOiBweC10by1yZW0oMzJweCk7XG5cbi8vIHRyYW5zaXRpb24gcGFyYW1ldGVyc1xuJGdsLXRyYW5zaXRpb24tZHVyYXRpb24tc2xvdzogMC40cztcbiRnbC10cmFuc2l0aW9uLWR1cmF0aW9uLW1lZGl1bTogMC4ycztcbiRnbC10cmFuc2l0aW9uLWR1cmF0aW9uLWZhc3Q6IDAuMXM7XG5cbi8vIEFuaW1hdGlvbiBlYXNpbmdzXG4kZ2wtZWFzaW5nLWxpbmVhcjogbGluZWFyO1xuJGdsLWVhc2luZy1kZWZhdWx0OiBlYXNlO1xuJGdsLWVhc2luZy1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTtcblxuLy8gRm9jdXMgcmluZ1xuJG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4kb3V0bGluZS13aWR0aDogMnB4O1xuJG91dGxpbmU6ICN7JG91dGxpbmUtb2Zmc2V0ICsgJG91dGxpbmUtd2lkdGh9O1xuJGZvY3VzLXJpbmc6XG4gIDAgMCAwICRvdXRsaW5lLW9mZnNldCB2YXIoLS1nbC1mb2N1cy1yaW5nLWlubmVyLWNvbG9yKSxcbiAgMCAwIDAgI3skb3V0bGluZS1vZmZzZXQgKyAkb3V0bGluZS13aWR0aH0gdmFyKC0tZ2wtZm9jdXMtcmluZy1vdXRlci1jb2xvcik7XG4kZm9jdXMtcmluZy1pbnNldDpcbiAgaW5zZXQgMCAwIDAgI3skb3V0bGluZS13aWR0aCArICRvdXRsaW5lLW9mZnNldH0gdmFyKC0tZ2wtZm9jdXMtcmluZy1pbm5lci1jb2xvciksXG4gIGluc2V0IDAgMCAwICRvdXRsaW5lLW9mZnNldCB2YXIoLS1nbC1mb2N1cy1yaW5nLWlubmVyLWNvbG9yKTtcbiRmb2N1cy1yaW5nLW91dGxpbmU6ICRvdXRsaW5lLXdpZHRoIHNvbGlkIHZhcigtLWdsLWZvY3VzLXJpbmctb3V0ZXItY29sb3IpO1xuXG4vLyBUb2FzdHNcbiR0b2FzdC1tYXgtd2lkdGg6IHB4LXRvLXJlbSg1ODZweCk7XG4kdG9hc3QtcGFkZGluZy1yaWdodDogcHgtdG8tcmVtKDQycHgpO1xuXG4vLyBDaGFydCB0b29sdGlwXG4kY2hhcnQtdG9vbHRpcC1tYXgtd2lkdGg6IHB4LXRvLXJlbSg1MTJweCk7XG5cbiRnbC1pY29uLWNoZXZyb24tbGVmdDogJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgdmlld0JveD1cIjAgMCAxNiAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01LjI5MyA3LjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwzIDNhMSAxIDAgMCAwIDEuNDE0LTEuNDE0TDcuNDE0IDhsMi4yOTMtMi4yOTNhMSAxIDAgMCAwLTEuNDE0LTEuNDE0bC0zIDN6XCIvPjwvc3ZnPic7XG4kZ2wtaWNvbi1jaGV2cm9uLXJpZ2h0OiAnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEwLjcwNyA3LjI5M2ExIDEgMCAwIDEgMCAxLjQxNGwtMyAzYTEgMSAwIDAgMS0xLjQxNC0xLjQxNEw4LjU4NiA4IDYuMjkzIDUuNzA3YTEgMSAwIDAgMSAxLjQxNC0xLjQxNGwzIDN6XCIvPjwvc3ZnPic7XG4kZ2wtaWNvbi1jaGV2cm9uLWRvd246ICdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4yOTMgMTAuNzA3YTEgMSAwIDAgMCAxLjQxNCAwbDMtM2ExIDEgMCAwIDAtMS40MTQtMS40MTRMOCA4LjU4NiA1LjcwNyA2LjI5M2ExIDEgMCAwIDAtMS40MTQgMS40MTRsMyAzelwiLz48L3N2Zz4nO1xuJGdsLWljb24tc2VsZWN0LWNoZXZyb24tZG93bjogJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9XCI4XCIgaGVpZ2h0PVwiNVwiIHZpZXdCb3g9XCIwIDAgOCA1XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIlM0UlM0NwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0wLjIxOTY3IDAuMjE5NjdDMC41MTI1NjMgLTAuMDczMjIzMiAwLjk4NzQzNyAtMC4wNzMyMjMyIDEuMjgwMzMgMC4yMTk2N0w0IDIuOTM5MzRMNi43MTk2NyAwLjIxOTY3QzcuMDEyNTYgLTAuMDczMjIzIDcuNDg3NDQgLTAuMDczMjIyOSA3Ljc4MDMzIDAuMjE5NjdDOC4wNzMyMiAwLjUxMjU2MyA4LjA3MzIyIDAuOTg3NDM3IDcuNzgwMzMgMS4yODAzM0w0LjUzMDMzIDQuNTMwMzNDNC4yMzc0NCA0LjgyMzIyIDMuNzYyNTYgNC44MjMyMiAzLjQ2OTY3IDQuNTMwMzNMMC4yMTk2NyAxLjI4MDMzQy0wLjA3MzIyMzMgMC45ODc0MzcgLTAuMDczMjIzMyAwLjUxMjU2MyAwLjIxOTY3IDAuMjE5NjdaXCIgZmlsbD1cIiUyMzY2NjY2NlwiLyUzRSUzQy9zdmclM0UlMEEnO1xuJGdsLWljb24tY2hlY2s6ICdkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPVwiMTBcIiBoZWlnaHQ9XCI4XCIgdmlld0JveD1cIjAgMCAxMCA4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIlM0UlM0NwYXRoIGQ9XCJNMC43NSA0Ljc2Mjg5TDMuMTUzMTIgNy4yNDY3OEw5LjI1IDEuMTQ5OVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvJTNFJTNDL3N2ZyUzRSUwQSc7XG4kZ2wtaWNvbi1pbmRldGVybWluYXRlOiAnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMlwiIHZpZXdCb3g9XCIwIDAgMTAgMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiJTNFJTNDcGF0aCBkPVwiTTEuNzUgMUg4LjI1XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8lM0UlM0Mvc3ZnJTNFJTBBJztcbiRnbC1pY29uLXJhZGlvOiAnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD1cIjZcIiBoZWlnaHQ9XCI2XCIgdmlld0JveD1cIjAgMCA2IDZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiUzRSUzQ2NpcmNsZSBjeD1cIjNcIiBjeT1cIjNcIiByPVwiM1wiIGZpbGw9XCJ3aGl0ZVwiLyUzRSUzQy9zdmclM0UlMEEnO1xuXG4vLyBJY29uc1xuJGRlZmF1bHQtaWNvbi1zaXplOiBweC10by1yZW0oMTZweCk7XG4kZ2wtaWNvbi1zaXplczogOCAxMiAxNCAxNiAyNCAzMiA0OCA3MjtcblxuLy8gRHJvcGRvd25zXG4kZ2wtZHJvcGRvd24td2lkdGg6IHB4LXRvLXJlbSgyNDBweCk7XG4kZ2wtbmV3LWRyb3Bkb3duLW1pbi13aWR0aDogcHgtdG8tcmVtKDI0OHB4KTtcbiRnbC1uZXctZHJvcGRvd24tbWF4LXdpZHRoOiBweC10by1yZW0oNDU2cHgpO1xuJGdsLWRyb3Bkb3duLXdpZHRoLW5hcnJvdzogcHgtdG8tcmVtKDE2MHB4KTtcbiRnbC1kcm9wZG93bi13aWR0aC13aWRlOiBweC10by1yZW0oNDAwcHgpO1xuJGdsLW1heC1kcm9wZG93bi1tYXgtaGVpZ2h0OiBweC10by1yZW0oMzEycHgpO1xuXG4vLyBCcm9hZGNhc3QgbWVzc2FnZXNcbiRnbC1icm9hZGNhc3QtbWVzc2FnZS1ub3RpZmljYXRpb24tbWF4LXdpZHRoOiBweC10by1yZW0oMzAwcHgpO1xuXG4vLyBNb2RhbCBXaWR0aHNcbiRnbC1tb2RhbC1zbWFsbC13aWR0aDogcHgtdG8tcmVtKDUxMnB4KTtcbiRnbC1tb2RhbC1tZWRpdW0td2lkdGg6IHB4LXRvLXJlbSg3NjhweCk7XG4kZ2wtbW9kYWwtbGFyZ2Utd2lkdGg6IHB4LXRvLXJlbSg5OTBweCk7XG5cbi8vIE1vZGFsIGJvb3RzdHJhcCB2YXJpYWJsZXNcbiRtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yOiAkZ2wtYm9yZGVyLWNvbG9yLXN0cm9uZztcbiRtb2RhbC1mb290ZXItYm9yZGVyLWNvbG9yOiAkZ2wtYm9yZGVyLWNvbG9yLXN0cm9uZztcbiRtb2RhbC10aXRsZS1saW5lLWhlaWdodDogJGdsLWxpbmUtaGVpZ2h0LTIwO1xuJG1vZGFsLWJhY2tkcm9wLWJnOiAjMDAwO1xuJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHk6IDAuNjQ7XG5cbi8vIEJvb3RzdHJhcCBvdmVycmlkZXNcbi8vIHRoZXNlIHNob3VsZCBpZGVhbGx5IGJlIG1vdmVkIGZ1cnRoZXIgdXAgaW4gdGhlIGZpbGUgdG8gdGhlIGNvbXBvZW50LXJlbGV2YW50IHNlY3Rpb25zXG4vLyBidXQgdGhleSBjYW4gd2FpdCBoZXJlIGZvciBub3dcbiRib2R5LWNvbG9yOiAkZ2wtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRlbmFibGUtdmFsaWRhdGlvbi1pY29uczogZmFsc2U7XG5cbi8vIE5vdCBtb3ZlZCB0byBhIGRlc2lnbiB0b2tlbiBhcyBpdCdzIGEgdmFndWUgQm9vdHN0cmFwIHZhcmlhYmxlIHRoYXQgbWlnaHQgaGF2ZSBmYXItcmVhY2hpbmcsIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzLlxuLy8gSWRlYWxseSwgdGhpcyB2YXJpYWJsZSB3b3VsZCBqdXN0IGJlIHJlbW92ZWQgb25jZSB3ZSBrbm93IGl0IGlzIG5vdCB1c2VkIGFueXdoZXJlLlxuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4kc2Vjb25kYXJ5OiAkZ3JheS01MDtcbiRzdWNjZXNzOiAkZ2wtdGV4dC1jb2xvci1zdWNjZXNzO1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4kaW5mbzogJGJsdWUtNTAwO1xuJHdhcm5pbmc6ICRnbC10ZXh0LWNvbG9yLXdhcm5pbmc7XG4kZGFuZ2VyOiAkZ2wtdGV4dC1jb2xvci1kYW5nZXI7XG5cbiRmb250LXdlaWdodC1ib2xkOiAkZ2wtZm9udC13ZWlnaHQtYm9sZDtcblxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICRnbC1yZWd1bGFyLWZvbnQgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiAkZ2wtbW9ub3NwYWNlLWZvbnQgIWRlZmF1bHQ7XG5cbiRoMS1mb250LXNpemU6ICRnbC1mb250LXNpemUgKiAyLjU7XG4kaDItZm9udC1zaXplOiAkZ2wtZm9udC1zaXplICogMjtcbiRoMy1mb250LXNpemU6ICRnbC1mb250LXNpemUgKiAxLjc1O1xuJGg0LWZvbnQtc2l6ZTogJGdsLWZvbnQtc2l6ZSAqIDEuNTtcbiRoNS1mb250LXNpemU6ICRnbC1mb250LXNpemUgKiAxLjI1O1xuJGg2LWZvbnQtc2l6ZTogJGdsLWZvbnQtc2l6ZTtcblxuJHNwYWNlcjogJGdyaWQtc2l6ZTtcbiRzcGFjZXJzOiAoXG4gIDE6ICRnbC1zcGFjaW5nLXNjYWxlLTIsXG4gIDI6ICRnbC1zcGFjaW5nLXNjYWxlLTMsXG4gIDM6ICRnbC1zcGFjaW5nLXNjYWxlLTUsXG4gIDQ6ICRnbC1zcGFjaW5nLXNjYWxlLTYsXG4gIDU6ICRnbC1zcGFjaW5nLXNjYWxlLTcsXG4gIDY6ICRnbC1zcGFjaW5nLXNjYWxlLTgsXG4gIDc6ICRnbC1zcGFjaW5nLXNjYWxlLTksXG4gIDg6ICRnbC1zcGFjaW5nLXNjYWxlLTEwLFxuICA5OiAkZ2wtc3BhY2luZy1zY2FsZS0xMSxcbik7XG5cbiR0YWJsZS1hY2NlbnQtYmc6IHZhcigtLWdsLWJhY2tncm91bmQtY29sb3Itc3VidGxlKTtcbiRjYXJkLWJvcmRlci1jb2xvcjogJGdsLWJvcmRlci1jb2xvci1kZWZhdWx0O1xuJGNhcmQtY2FwLWJnOiAkZ2wtYmFja2dyb3VuZC1jb2xvci1zdWJ0bGUgIWRlZmF1bHQ7XG5cbi8vIEZvcm0gaW5wdXQgc2l6ZXNcbiRnbC1mb3JtLWlucHV0LXNpemVzOiAoXG4gIHhzOiAkZ3JpZC1zaXplICogMTAsXG4gIHNtOiAkZ3JpZC1zaXplICogMjAsXG4gIG1kOiAkZ3JpZC1zaXplICogMzAsXG4gIGxnOiAkZ3JpZC1zaXplICogNDAsXG4gIHhsOiAkZ3JpZC1zaXplICogNzAsXG4pO1xuXG4kcG9wb3Zlci1hcnJvdy13aWR0aDogMC41cmVtO1xuJHBvcG92ZXItYXJyb3ctaGVpZ2h0OiAwLjI1cmVtO1xuJHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I6ICRnbC1ib3JkZXItY29sb3ItZGVmYXVsdDtcblxuJHRvb2x0aXAtb3BhY2l0eTogMTtcbiIsIkBpbXBvcnQgJ0BnaXRsYWIvdWkvc3JjL3Rva2Vucy9idWlsZC9zY3NzL3Rva2Vucyc7XG5AaW1wb3J0ICdAZ2l0bGFiL3VpL3NyYy9zY3NzL3ZhcmlhYmxlcyc7XG5cbi8qXG4gKiBMYXlvdXRcbiAqL1xuJGdyaWQtc2l6ZTogOHB4O1xuJHJpZ2h0LXNpZGViYXItY29sbGFwc2VkLXdpZHRoOiA2MnB4O1xuJHJpZ2h0LXNpZGViYXItd2lkdGg6IDI5MHB4O1xuJHJpZ2h0LXNpZGViYXItaW5uZXItd2lkdGg6IDI1MHB4O1xuJHdpa2ktc2lkZWJhci1pbm5lci13aWR0aDogMjIwcHg7XG4kc2lkZWJhci1icmVha3BvaW50OiAxMDI0cHg7XG4kZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiR0b2dnbGUtc2lkZWJhci1oZWlnaHQ6IDQ4cHg7XG4kc3VwZXItc2lkZWJhci13aWR0aDogMTVyZW07XG4kc3VwZXItc2lkZWJhci16LWluZGV4OiA2MDA7XG4kc3VwZXItc2lkZWJhci1za2lwLXRvLXotaW5kZXg6IDYwMTtcbiRzdXBlci1zaWRlYmFyLW92ZXJsYXktei1pbmRleDogNTk5O1xuJHN1cGVyLXNpZGViYXItbmF2LWZsYXlvdXQtbWVudS16LWluZGV4OiA4MDA7XG4kc3VwZXItc2lkZWJhci1uYXYtaXRlbS1tZW51LXotaW5kZXg6ICRzdXBlci1zaWRlYmFyLW5hdi1mbGF5b3V0LW1lbnUtei1pbmRleCArIDE7XG4kc3VwZXItc2lkZWJhci1uYXYtaXRlbS16LWluZGV4OiAkc3VwZXItc2lkZWJhci1uYXYtaXRlbS1tZW51LXotaW5kZXggKyAxO1xuJGZsYXNoLXotaW5kZXg6IDI1MTtcbiRzaWRlYmFyLXotaW5kZXg6ICRmbGFzaC16LWluZGV4O1xuLy8gV2hlbiByZW5kZXJlZCBhYm92ZSB0aGUgc3RhdGljIHBhbmVsXG4vLyBzZXQgdGhlIHotaW5kZXggdG8gKzEgb2YgJGZsYXNoLXotaW5kZXggdG8gY2xlYXIgZmxhc2ggbWVzc2FnZXNcbi8vIHRoYXQgbWlnaHQgYmUgZGlzcGxheWVkIGluIHRoZSBwYWdlIGFuZCB0aGF0IGhhdmUgYSB6LWluZGV4IG9mIDI1MVxuJGR5bmFtaWMtcGFuZWwtei1pbmRleDogJGZsYXNoLXotaW5kZXggKyAxO1xuJHBhbmVsLWhlYWRlci1pbm5lci16LWluZGV4OiA5OTtcbi8vIFRoZSBEdW8gY2hhdCBzdXJmYWNlIHNpdHMgYXQgOTk5LCBzbyB0aGUgQUkgcGFuZWwgaGVhZGVyIGhhcyB0byBjbGVhciBpdFxuLy8gb3IgY2hhdCBjb250ZW50IHN3YWxsb3dzIGNsaWNrcyBvbiB0aGUgaGVhZGVyJ3MgbWVudXMuXG4kYWktcGFuZWwtaGVhZGVyLWlubmVyLXotaW5kZXg6IDEwMDA7XG4kYmFzZS1sYXlvdXQtc3RpY2t5LWhlYWRlci16LWluZGV4OiAkcGFuZWwtaGVhZGVyLWlubmVyLXotaW5kZXggLSAxO1xuJHBhbmVsLWhlYWRlci1pbm5lci1oZWlnaHQ6IDIuMjVyZW07IC8vPSAzNnB4XG4kdG9wLWJhci16LWluZGV4OiAyMTA7XG4kc2V0dGluZ3Mtc3RpY2t5LWhlYWRlci1oZWlnaHQ6IDNyZW07XG4kc2V0dGluZ3Mtc3RpY2t5LWhlYWRlci16LWluZGV4OiA5ODtcbiRzZXR0aW5ncy1zdGlja3ktZm9vdGVyLWhlaWdodDogMi41cmVtO1xuJHNldHRpbmdzLXN0aWNreS1mb290ZXItei1pbmRleDogI3skc2V0dGluZ3Mtc3RpY2t5LWhlYWRlci16LWluZGV4ICsgMX07XG4kcGFuZWxlZC1sYXlvdXQtdWx0cmEtd2lkZS1icmVha3BvaW50OiAyNTYwcHg7XG5cbi8qKlxuICDwn5qoIERvIG5vdCB1c2UgdGhpcyBzcGFjaW5nIHNjYWxlIOKAlCBpdCBpcyBkZXByZWNhdGVkIGFuZCBiZWluZyByZW1vdmVkLiDwn5qoXG4gIFNlZSBodHRwczovL2dpdGxhYi5jb20vZ2l0bGFiLW9yZy9naXRsYWIvaXNzdWVzLzM2ODU3IGZvciBtb3JlIGRldGFpbHMuXG5cbiAgSW5zdGVhZCwgaWYgeW91IG5lZWQgYSBzcGFjaW5nIGNsYXNzLCBhZGQgaXQgdG8gYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mcmFtZXdvcmsvY29tbW9uLnNjc3MsXG4gIHVzaW5nIHRoZSBmb2xsb3dpbmcgdmFsdWVzLlxuXG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMDogMDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS0xOiAycHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMjogNHB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTM6IDhweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS00OiAxMnB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTU6IDE2cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtNjogMjRweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS03OiAzMnB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTg6IDQwcHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtOTogNDhweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS0xMDogNTZweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS0xMTogNjRweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS0xMjogODBweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS0xMzogOTZweDtcblxuICBFLmcuLCBhIHBhZGRpbmcgdG9wIG9mIDk2cHggY2FuIGJlIGFkZGVkIHVzaW5nOlxuICAuZ2wtc2hpbS1wdC0xMyB7XG4gICAgcGFkZGluZy10b3A6IDk2cHg7XG4gIH1cblxuICBQbGVhc2UgdXNlIC1zaGltLSBzbyBpdCBjYW4gYmUgZGlmZmVyZW50aWF0ZWQgZnJvbSB0aGUgb2xkIHNjYWxlIGNsYXNzZXMuXG5cbiAgVGhlc2Ugd2lsbCBiZSByZXBsYWNlZCB3aGVuIHRoZSBHaXRsYWIgVUkgdXRpbGl0aWVzIGFyZSBpbmNsdWRlZC5cbioqL1xuJHNwYWNpbmctc2NhbGU6IChcbiAgMDogMCxcbiAgMTogI3swLjUgKiAkZ3JpZC1zaXplfSxcbiAgMjogJGdyaWQtc2l6ZSxcbiAgMzogI3syICogJGdyaWQtc2l6ZX0sXG4gIDQ6ICN7MyAqICRncmlkLXNpemV9LFxuICA1OiAjezQgKiAkZ3JpZC1zaXplfVxuKTtcblxuLyogV2lsbCBiZSBtb3ZlZCB0byBAZ2l0bGFiL3VpIGJ5IGh0dHBzOi8vZ2l0bGFiLmNvbS9naXRsYWItb3JnL2dpdGxhYi1zZXJ2aWNlcy9kZXNpZ24uZ2l0bGFiLmNvbS8tL2lzc3Vlcy8yNzkyICovXG4kZ2wtc3BhY2luZy1zY2FsZS00ODogNDggKiAkZ3JpZC1zaXplO1xuJGdsLXNwYWNpbmctc2NhbGUtNzU6IDc1ICogJGdyaWQtc2l6ZTtcbi8qIEVuZCBnaXRsYWItdWkjMTcwOSAqL1xuXG4vLyBDb2xvciBzY2hlbWFcbiRwdXJwbGU6ICM2ZDQ5Y2IgIWRlZmF1bHQ7XG4kcHVycGxlLWxpZ2h0OiAjZWRlOGZiICFkZWZhdWx0O1xuXG4vKlxuICogVGV4dFxuICovXG4kZ2wtZm9udC1zaXplOiAxNHB4O1xuJGdsLWZvbnQtc2l6ZS1zbWFsbDogMTJweDtcbiRnbC1mb250LXNpemUtbGFyZ2U6IDE2cHg7XG4kZ2wtZm9udC13ZWlnaHQtbm9ybWFsOiA0MDA7XG4kZ2wtZm9udC13ZWlnaHQtYm9sZDogNjAwO1xuJGdsLXRleHQtY29sb3ItdGVydGlhcnk6ICRncmF5LTQwMDtcbiRsaW5rLWNvbG9yOiB2YXIoLS1nbC10ZXh0LWNvbG9yLWxpbmspICFkZWZhdWx0O1xuJGxpbmstaG92ZXItY29sb3I6IHZhcigtLWdsLXRleHQtY29sb3ItbGluaykgIWRlZmF1bHQ7XG4kZ2wtZm9udC1zaXplLTEyOiAxMnB4O1xuJGdsLWZvbnQtc2l6ZS0xNDogMTRweDtcbiRnbC1mb250LXNpemUtMTY6IDE2cHg7XG5cbi8qXG4gKiBMaXN0c1xuICovXG4kbGlzdC10ZXh0LWhlaWdodDogNDJweDtcblxuLypcbiAqIENvZGVcbiAqL1xuJGNvZGUtZm9udC1zaXplOiA5MCU7XG4kY29kZS1saW5lLWhlaWdodDogMS42O1xuJGNvZGUtZm9udC1zaXplLWZpeGVkOiAxM3B4O1xuXG4vKlxuICogVG9vbHRpcHNcbiAqL1xuJHRvb2x0aXAtZm9udC1zaXplOiAxMnB4O1xuXG4vKlxuICogUGFkZGluZ1xuICovXG4kZ2wtcGFkZGluZy00OiA0cHg7XG4kZ2wtcGFkZGluZy02OiA2cHg7XG4kZ2wtcGFkZGluZy04OiA4cHg7XG4kZ2wtcGFkZGluZy0xMjogMTJweDtcbiRnbC1wYWRkaW5nOiAxNnB4O1xuJGdsLXBhZGRpbmctMjQ6IDI0cHg7XG4kZ2wtcGFkZGluZy0zMjogMzJweDtcbiRnbC1pbnB1dC1wYWRkaW5nOiAxMHB4O1xuJGdsLXZlcnQtcGFkZGluZzogNnB4O1xuJGdsLXBhZGRpbmctdG9wOiAxMHB4O1xuJGdsLXNpZGViYXItcGFkZGluZzogMjJweDtcbiRpbnB1dC1ob3Jpem9udGFsLXBhZGRpbmc6IDEycHg7XG4kYnJvd3Nlci1zY3JvbGxiYXItc2l6ZTogMTBweDtcblxuLypcbiAqIE1pc2NcbiAqL1xuJGhlYWRlci1oZWlnaHQ6IGNhbGMoM3JlbSArIDFweCk7IC8vPSA0OHB4ICsgMXB4IGJvcmRlclxuJGNvbnRlbnQtd3JhcHBlci1wYWRkaW5nOiA1NnB4O1xuJGhlYWRlci16aW5kZXg6IDEwMDA7XG4kemluZGV4LWRyb3Bkb3duLW1lbnU6IDMwMDtcbiRpZGUtc3RhdHVzYmFyLWhlaWdodDogMjVweDtcbiRsaW1pdGVkLWxheW91dC13aWR0aDogMTAwNnB4O1xuJGZpeGVkLWxheW91dC13aWR0aDogMTI5NnB4O1xuJHdpa2ktY29udGVudC1kZWZhdWx0LXdpZHRoOiA5NDBweDtcbiR3aWtpLWNvbnRlbnQtbWF4LXdpZHRoOiAxNjAwcHg7XG4kaW1tZXJzaXZlLWVkaXRvci10ZXh0LXdpZHRoOiA3NjhweDtcbiRjb250YWluZXItbWFyZ2luOiAkZ2wtcGFkZGluZztcbiRjb250YWluZXItbWFyZ2luLXhsOiAkZ2wtcGFkZGluZy0yNDtcbiRnbC1ib3JkZXItcmFkaXVzLWJhc2U6IDAuMjVyZW07XG4kZ2wtYm9yZGVyLXJhZGl1cy1iYXNlLWlubmVyOiBjYWxjKCN7JGdsLWJvcmRlci1yYWRpdXMtYmFzZX0gLSAxcHgpO1xuJGdsLWJvcmRlci1yYWRpdXMtbGc6IDAuNXJlbTtcbiRnbC1ib3JkZXItcmFkaXVzLWxnLWlubmVyOiBjYWxjKCN7JGdsLWJvcmRlci1yYWRpdXMtbGd9IC0gMXB4KTtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAycHg7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogOHB4O1xuJGRlZmF1bHQtaWNvbi1zaXplOiAxNnB4O1xuJGJ0bi1zaWRlLW1hcmdpbjogJGdyaWQtc2l6ZTtcbiRnZW5lcmFsLWhvdmVyLXRyYW5zaXRpb24tZHVyYXRpb246IDEwMG1zO1xuJGdlbmVyYWwtaG92ZXItdHJhbnNpdGlvbi1jdXJ2ZTogbGluZWFyO1xuJHBlcmZvcm1hbmNlLWJhci1oZWlnaHQ6IDIuNXJlbTtcbiRzeXN0ZW0taGVhZGVyLWhlaWdodDogMTZweDtcbiRzeXN0ZW0tZm9vdGVyLWhlaWdodDogJHN5c3RlbS1oZWFkZXItaGVpZ2h0O1xuJHRvcC1iYXItaGVpZ2h0OiAzcmVtOyAvLz0gNDhweFxuJGhvbWUtcGFuZWwtdGl0bGUtcm93LWhlaWdodDogNDhweDtcbiRob21lLXBhbmVsLWF2YXRhci1tb2JpbGUtc2l6ZTogMjRweDtcbiRpc3N1YWJsZS10aXRsZS1tYXgtd2lkdGg6IDM1MHB4O1xuJG1pbGVzdG9uZS10aXRsZS1tYXgtd2lkdGg6IDc1cHg7XG4kZ2wtbGluZS1oZWlnaHQ6IDE2cHg7XG4kZ2wtbGluZS1oZWlnaHQtMTg6IDE4cHg7XG4kZ2wtbGluZS1oZWlnaHQtMjA6IDIwcHg7XG4kZ2wtbGluZS1oZWlnaHQtMjQ6IDI0cHg7XG4kZmlsZS1oZWFkZXItaGVpZ2h0OiA0MnB4O1xuXG4vKlxuICogTWVyZ2UgcmVxdWVzdHNcbiAqL1xuJG1yLXN0aWNreS1oZWFkZXItdGl0bGUtaGVpZ2h0OiBtYXgoJGdsLWJ1dHRvbi1zbWFsbC1zaXplLCAkZ2wtZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuJG1yLXN0YXRpYy10YWJzLWhlaWdodDogJGdsLXNwYWNpbmctc2NhbGUtOTtcbiRtci1zdGlja3ktdGFicy1oZWlnaHQ6ICRnbC1zcGFjaW5nLXNjYWxlLTg7XG4kbXItc3RpY2t5LWRlc2NyaXB0aW9uLXBhZGRpbmc6ICRnbC1zcGFjaW5nLXNjYWxlLTI7XG4kbXItc3RpY2t5LWhlYWRlci1oZWlnaHQ6IGNhbGMoI3skbXItc3RpY2t5LXRhYnMtaGVpZ2h0fSArICN7JG1yLXN0aWNreS1oZWFkZXItdGl0bGUtaGVpZ2h0fSArICN7JG1yLXN0aWNreS1kZXNjcmlwdGlvbi1wYWRkaW5nfSArICN7JGdsLWJvcmRlci1zaXplLTF9KTtcbiRtci1yZXZpZXctYmFyLWhlaWdodDogY2FsYygycmVtICsgMTZweCk7XG5cbi8qXG4gKiBDYWxjdWxhdGVkIGhlaWdodHNcbiAqL1xuJGNhbGMtc3lzdGVtLWhlYWRlcnMtaGVpZ2h0OiBjYWxjKHZhcigtLXN5c3RlbS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLXBlcmZvcm1hbmNlLWJhci1oZWlnaHQpKTtcbiRjYWxjLWFwcGxpY2F0aW9uLWJhcnMtaGVpZ2h0OiBjYWxjKHZhcigtLWhlYWRlci1oZWlnaHQpICsgI3skY2FsYy1zeXN0ZW0taGVhZGVycy1oZWlnaHR9KTtcbiRjYWxjLWFwcGxpY2F0aW9uLWhlYWRlci1oZWlnaHQ6IGNhbGMoI3skY2FsYy1hcHBsaWNhdGlvbi1iYXJzLWhlaWdodH0gKyB2YXIoLS10b3AtYmFyLWhlaWdodCkpO1xuJGNhbGMtYXBwbGljYXRpb24tZm9vdGVyLWhlaWdodDogdmFyKC0tc3lzdGVtLWZvb3Rlci1oZWlnaHQpO1xuJGNhbGMtYXBwbGljYXRpb24tdmlld3BvcnQtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skY2FsYy1hcHBsaWNhdGlvbi1oZWFkZXItaGVpZ2h0fSAtICN7JGNhbGMtYXBwbGljYXRpb24tZm9vdGVyLWhlaWdodH0pO1xuXG4vKiB0YW51a2kgbG9nbyBjb2xvcnMgKi9cbiR0YW51a2ktcmVkOiAjZTI0MzI5O1xuJHRhbnVraS1vcmFuZ2U6ICNmYzZkMjY7XG4kdGFudWtpLXllbGxvdzogI2ZjYTMyNjtcblxuLypcbiAqIFN0YXRlIGNvbG9yczpcbiAqL1xuJGdyZWVuLTUwMC1mb2N1czogcmdiYSgkZ3JlZW4tNTAwLCAwLjQpO1xuJGdsLWJ0bi1hY3RpdmUtYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE2KTtcblxuLypcbiAqIENvbW1pdCBEaWZmIENvbG9yc1xuICovXG4kbGluZS1hZGRlZDogI2VjZmRmMDtcbiRsaW5lLWFkZGVkLWRhcms6ICNjN2YwZDIgIWRlZmF1bHQ7XG4kbGluZS1yZW1vdmVkOiAjZmJlOWViO1xuJGxpbmUtcmVtb3ZlZC1kYXJrOiAjZmFjNWNkICFkZWZhdWx0O1xuXG4vKlxuICogVGhlIHRyYW5zcGFyZW50IGNvbG9ycyBhcmUgdXNlZCBpbiBNb25hY28gZWRpdG9yLiBVc2luZyBmdWxsIG9wYWNpdHkgY29sb3JzXG4gKiB3b3VsZCBoaWRlIG90aGVyIGxheWVycyAoc2VsZWN0ZWQgdGV4dCwgbWF0Y2hpbmcgYnJhY2tldHMpLlxuICpcbiAqIFdoZW4gdGhlIHRyYW5zcGFyZW50IGNvbG9ycyBnZXQgbGF5ZXJlZCBvbiB3aGl0ZSBiYWNrZ3JvdW5kLCB0aGV5IGNyZWF0ZSB0aGVpclxuICogZnVsbCBvcGFjaXR5IGNvdW50ZXJwYXJ0czpcbiAqXG4gKiAgLSB3aGl0ZSArICRsaW5lLWFkZGVkLXRyYW5zcGFyZW50ID0gJGxpbmUtYWRkZWRcbiAqICAtIHdoaXRlICsgJGxpbmUtYWRkZWQtdHJhbnNwYXJlbnQgKyAkbGluZS1hZGRlZC1kYXJrLXRyYW5zcGFyZW50ID0gJGxpbmUtYWRkZWQtZGFya1xuICpcbiAqIE1vcmUgZGV0YWlsczogaHR0cHM6Ly9naXRsYWIuY29tL2dpdGxhYi1vcmcvZ2l0bGFiLy0vbWVyZ2VfcmVxdWVzdHMvNDE1NTNcbiAqL1xuJGxpbmUtYWRkZWQtdHJhbnNwYXJlbnQ6IHJnYmEoMTYwLCAyNDUsIDE4MCwgMC4yKTtcbiRsaW5lLWFkZGVkLWRhcmstdHJhbnNwYXJlbnQ6IHJnYmEoNTEsIDE4OCwgOTAsIDAuMik7XG4kbGluZS1yZW1vdmVkLXRyYW5zcGFyZW50OiByZ2JhKDIzNSwgMTQ1LCAxNTUsIDAuMik7XG4kbGluZS1yZW1vdmVkLWRhcmstdHJhbnNwYXJlbnQ6IHJnYmEoMjQ2LCA1MywgODUsIDAuMik7XG4kbGluZS1udW1iZXItb2xkOiAjZjlkN2RjO1xuJGxpbmUtbnVtYmVyLW5ldzogI2RkZmJlNjtcbiRkYXJrLWRpZmYtbWF0Y2gtYmc6IHJnYmEoJHdoaXRlLCAwLjMpO1xuJGRhcmstZGlmZi1tYXRjaC1jb2xvcjogcmdiYSgkd2hpdGUsIDAuMSk7XG4kZGlmZi1qYWdnZWQtYm9yZGVyLWdyYWRpZW50LWNvbG9yOiAkZ3JheS0yMDA7XG4kZGlmZi1qYWdnZWQtYmctY29sb3I6IHZhcigtLWdsLWJhY2tncm91bmQtY29sb3Itc3VidGxlKTtcblxuLypcbiAqIEZvbnRzXG4gKiBUaGUgLS1kZWZhdWx0LW1vbm8tZm9udCBhbmQgLS1kZWZhdWx0LXJlZ3VsYXItZm9udCB2YXJpYWJsZXMgZ2l2ZSB1c2Vyc1xuICogYSB3YXkgdG8gb3ZlcnJpZGUgb3VyIGZvbnQgY2hvaWNlcyBmb3IgdGhlbS5cbiAqL1xuJG1vbm9zcGFjZS1mb250OiB2YXIoLS1kZWZhdWx0LW1vbm8tZm9udCwgJ0dpdExhYiBNb25vJyksICdKZXRCcmFpbnMgTW9ubycsICdNZW5sbycsICdEZWphVnUgU2FucyBNb25vJywgJ0xpYmVyYXRpb24gTW9ubycsICdDb25zb2xhcycsXG4gICdVYnVudHUgTW9ubycsICdDb3VyaWVyIE5ldycsICdhbmRhbGUgbW9ubycsICdsdWNpZGEgY29uc29sZScsIG1vbm9zcGFjZTtcbiRyZWd1bGFyLWZvbnQ6IHZhcigtLWRlZmF1bHQtcmVndWxhci1mb250LCAnR2l0TGFiIFNhbnMnKSwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sICdOb3RvIFNhbnMnLFxuICBVYnVudHUsIENhbnRhcmVsbCwgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZiwgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1NlZ29lIFVJIEVtb2ppJyxcbiAgJ1NlZ29lIFVJIFN5bWJvbCcsICdOb3RvIENvbG9yIEVtb2ppJztcbiRnbC1tb25vc3BhY2UtZm9udDogJG1vbm9zcGFjZS1mb250O1xuJGdsLXJlZ3VsYXItZm9udDogJHJlZ3VsYXItZm9udDtcblxuLypcbiogRHJvcGRvd25zXG4qL1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1taW4taGVpZ2h0OiA0MHB4O1xuJGRyb3Bkb3duLW1heC1oZWlnaHQ6IDMxMnB4O1xuJGRyb3Bkb3duLW1heC1oZWlnaHQtbGc6IDQ0NXB4O1xuJGRyb3Bkb3duLXZlcnRpY2FsLW9mZnNldDogNHB4O1xuJGRyb3Bkb3duLXRpdGxlLWJ0bi1jb2xvcjogI2JmYmZiZjtcbiRkcm9wZG93bi1sb2FkaW5nLWJnOiByZ2JhKCR3aGl0ZSwgMC42KTtcbiRkcm9wZG93bi1mYWRlLW1hc2staGVpZ2h0OiAzMnB4O1xuJGRyb3Bkb3duLW1lbWJlci1mb3JtLWNvbnRyb2wtd2lkdGg6IDE2M3B4O1xuXG4vKlxuKiBTaWRlYmFyXG4qL1xuJHNpZGViYXItdG9nZ2xlLWhlaWdodDogNjBweDtcbiRzaWRlYmFyLXRvZ2dsZS13aWR0aDogNDBweDtcbiRzaWRlYmFyLW1pbGVzdG9uZS10b2dnbGUtYm90dG9tLW1hcmdpbjogMTBweDtcblxuLypcbiogQnV0dG9uc1xuKi9cbiRidG4tYWN0aXZlLWdyYXk6ICRncmF5LTUwO1xuJGJ0bi1hY3RpdmUtZ3JheS1saWdodDogJGdyYXktNTA7XG4kZ2wtYnRuLXBhZGRpbmc6IDEwcHg7XG4kZ2wtYnRuLWxpbmUtaGVpZ2h0OiAxNnB4O1xuJGdsLWJ0bi12ZXJ0LXBhZGRpbmc6IDhweDtcbiRnbC1idG4taG9yei1wYWRkaW5nOiAxMnB4O1xuJGdsLWJ0bi1zbWFsbC1mb250LXNpemU6IDEzcHg7XG4kZ2wtYnRuLXNtYWxsLWxpbmUtaGVpZ2h0OiAxOHB4O1xuXG4vKlxuKiBCYWRnZXNcbiovXG4kYmFkZ2UtYmc6IHJnYmEoJGJsYWNrLCAwLjA3KTtcblxuLypcbiAqICBBd2FyZCBlbW9qaVxuICovXG4kYXdhcmQtZW1vamktbWVudS1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuJGF3YXJkLWVtb2ppLXBvc2l0aXZlLWFkZC1saW5lczogI2JiOWMxMztcbiRhd2FyZC1lbW9qaS13aWR0aDogMzc2cHg7XG4kYXdhcmQtZW1vamktd2lkdGgteHM6IDkwJTtcblxuLypcbiAqIFNlYXJjaCBCb3hcbiAqL1xuJHNlYXJjaC1pbnB1dC13aWR0aDogMjAwcHg7XG4kc2VhcmNoLWlucHV0LXhsLXdpZHRoOiAzMjBweDtcblxuLypcbiAqICBOb3Rlc1xuICovXG4kbm90ZS1zcGFjaW5nLWxlZnQ6IDIuNXJlbTtcbiRub3RlLXNwYWNpbmctcmVwbHktbGVmdDogMnJlbTtcblxuLypcbiogQm9hcmRzXG4qL1xuJGlzc3VlLWJvYXJkcy1jYXJkLXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjEpO1xuXG4vKlxuKiBCdWlsZHNcbiovXG4kYnVpbGRzLWxvZy1iZzogIzExMTtcbiRqb2ItbGluZS1udW1iZXItd2lkdGg6IDUwcHg7XG5cbi8qXG4qIENvbW1pdCBQYWdlXG4qL1xuJGNvbW1pdC1tYXgtd2lkdGgtbWFya2VyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuJGNvbW1pdC1tZXNzYWdlLXRleHQtYXJlYS1iZzogcmdiYSgwLCAwLCAwLCAwKTtcblxuLypcbiogRmlsZXNcbiovXG4kbG9ncy1saS1jb2xvcjogIzg4ODtcbiRsb2dzLXAtY29sb3I6ICMzMzM7XG5cbi8qXG4qIEZvcm1zXG4qL1xuJGlucHV0LWhlaWdodDogMzJweDtcbiRpbnB1dC1kYW5nZXItYmc6ICNmMmRlZGU7XG4kZ2wtZmllbGQtZm9jdXMtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiRnbC1maWVsZC1mb2N1cy1zaGFkb3ctZXJyb3I6IHJnYmEoJHJlZC01MDAsIDAuNik7XG4kaW5wdXQtc2hvcnQtd2lkdGg6IDIwMHB4O1xuJGlucHV0LXNob3J0LW1kLXdpZHRoOiAyODBweDtcbiRpbnB1dC1tZC13aWR0aDogMjQwcHg7XG4kaW5wdXQtbGctd2lkdGg6IDMyMHB4O1xuXG4vKlxuKiBMYWJlbFxuKi9cbiRsYWJlbC1mb250LXNpemU6IDEycHg7XG4kbGFiZWwtcGFkZGluZzogN3B4O1xuJGxhYmVsLWJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXG4vKlxuKiBBbmltYXRpb25cbiovXG4kZmFkZS1pbi1kdXJhdGlvbjogMjAwbXM7XG4kZmFkZS1tYXNrLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMXM7XG4kZmFkZS1tYXNrLXRyYW5zaXRpb24tY3VydmU6IGVhc2UtaW4tb3V0O1xuXG4vKlxuKiBMb2dpblxuKi9cbiRsb2dpbi1icmFuZC1ob2xkZXItY29sb3I6ICM4ODg7XG5cbi8qXG4qIFR5cG9ncmFwaHlcbiovXG4kYm9keS10ZXh0LXNoYWRvdzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAxKTtcblxuLypcblBpcGVsaW5lIEdyYXBoXG4qL1xuJGNpLWFjdGlvbi1kcm9wZG93bi1idXR0b24tc2l6ZTogMjRweDtcbiRjaS1hY3Rpb24tZHJvcGRvd24tc3ZnLXNpemU6IDE2cHg7XG5cbi8qXG5HaXRMYWIgUGxhbnNcbiovXG4kZ2wtdWx0aW1hdGUtcGxhbjogI2Q0YWYzNztcbiRnbC1wcmVtaXVtLXBsYW46ICM5MWExYWI7XG4kZ2wtYnJvbnplLXBsYW46ICNjZDdmMzI7XG5cbi8qXG5QZXJmb3JtYW5jZSBCYXJcbiovXG4kcGVyZi1iYXItYnVja2V0LWJnOiAkYmxhY2s7XG4kcGVyZi1iYXItYnVja2V0LWJveC1zaGFkb3ctZnJvbTogcmdiYSgkd2hpdGUsIDAuMik7XG4kcGVyZi1iYXItYnVja2V0LWJveC1zaGFkb3ctdG86IHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRwZXJmLWJhci1jYW5hcnktdGV4dDogJG9yYW5nZS00MDA7XG5cbi8qXG5JbWFnZSBDb21tZW50aW5nIGN1cnNvclxuKi9cbiRpbWFnZS1jb21tZW50LWN1cnNvci1sZWZ0LW9mZnNldDogMTI7XG4kaW1hZ2UtY29tbWVudC1jdXJzb3ItdG9wLW9mZnNldDogMTI7XG5cbi8qXG5Qb3B1cFxuKi9cbiRwb3B1cC10cmlhbmdsZS1zaXplOiAxNXB4O1xuJHBvcHVwLXRyaWFuZ2xlLWJvcmRlci1zaXplOiAxcHg7XG4kcG9wdXAtYm94LXNoYWRvdy1jb2xvcjogcmdiYSg5MCwgOTAsIDkwLCAwLjA1KTtcblxuLypcbkRyYXdlcnNcbiovXG4kd2lkZS1kcmF3ZXI6IDUwMHB4O1xuXG4vKlxuTW9kYWxzXG4qL1xuJG1vZGFsLWJvZHktaGVpZ2h0OiA4MHB4O1xuXG4kcHJpb3JpdHktbGFiZWwtZW1wdHktc3RhdGUtd2lkdGg6IDExNHB4O1xuXG4vKlxuUG9wb3ZlcnNcbiovXG4kcG9wb3Zlci1tYXgtd2lkdGg6IDM4NHB4O1xuJHBvcG92ZXItYm94LXNoYWRvdzogMCAycHggM3B4IDFweCAkZ3JheS0xMDA7XG5cbi8qXG5NZXJnZSByZXF1ZXN0c1xuKi9cbiRtci10YWJzLWhlaWdodDogNDhweDtcblxuLypcbkJvYXJkIFN3aW1sYW5lc1xuKi9cbiRib2FyZC1zd2ltbGFuZXMtaGVhZGVycy1oZWlnaHQ6IDQ4cHg7XG5cbi8qXG5Tb3VyY2UgRWRpdG9yIHRoZW1lIG92ZXJyaWRlc1xuKi9cbiRzb3VyY2UtZWRpdG9yLWhvdmVyLWxpZ2h0LXRleHQtY29sb3I6ICRnbC1jb2xvci1uZXV0cmFsLTUwO1xuJHNvdXJjZS1lZGl0b3ItaG92ZXItZGFyay10ZXh0LWNvbG9yOiAkZ2wtY29sb3ItbmV1dHJhbC05MDA7XG5cbi8qKlxuIEJvb3RzdHJhcCA0LjIuMCBpbnRyb2R1Y2VkIG5ldyBpY29ucyBmb3IgdmFsaWRhdGluZyBmb3Jtcy5cbiBPdXIgZGVzaWduIHN5c3RlbSBkb2VzIG5vdCB1c2UgdGhvc2UsIHNvIHdlIGFyZSBkaXNhYmxpbmcgdGhlbSBmb3Igbm93OlxuIC0gRG9jczogaHR0cHM6Ly9nZXRib290c3RyYXAuY29tL2RvY3MvNC4zL2NvbXBvbmVudHMvZm9ybXMvI3NlcnZlci1zaWRlXG4gLSBJc3N1ZTogaHR0cHM6Ly9naXRsYWIuY29tL2dpdGxhYi1vcmcvZGVzaWduLmdpdGxhYi5jb20vaXNzdWVzLzI0MlxuICovXG4kZW5hYmxlLXZhbGlkYXRpb24taWNvbnM6IGZhbHNlO1xuIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBvbmx5IGZvciBvdmVycmlkaW5nIEJvb3RzdHJhcCA0IHZhcmlhYmxlcy5cbiAqIFBsZWFzZSBhZGQgYW55IG5ldyB2YXJpYWJsZXMgdG8gdmFyaWFibGVzLnNjc3NcbiAqL1xuXG4kc2Vjb25kYXJ5OiAkZ3JheS0xMDtcbiRpbnB1dC1kaXNhYmxlZC1iZzogJGdyYXktMTA7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAkZ3JheS00MDA7XG4kaW5wdXQtY29sb3I6ICRnbC10ZXh0LWNvbG9yLWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1zaXplOiAkZ2wtZm9udC1zaXplO1xuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICRyZWd1bGFyLWZvbnQ7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiAkbW9ub3NwYWNlLWZvbnQ7XG4kYnRuLWxpbmUtaGVpZ2h0OiAyMHB4O1xuJHRhYmxlLWFjY2VudC1iZzogJGdyYXktMTA7XG4kdGFibGUtYm9yZGVyLWNvbG9yOiAkZ2wtYm9yZGVyLWNvbG9yLWRlZmF1bHQ7XG4kY2FyZC1ib3JkZXItY29sb3I6ICRnbC1ib3JkZXItY29sb3ItZGVmYXVsdDtcbiRjYXJkLWNhcC1iZzogJGdyYXktMTAgIWRlZmF1bHQ7XG4kc3VjY2VzczogJGdyZWVuLTUwMDtcbiRpbmZvOiAkYmx1ZS01MDA7XG4kd2FybmluZzogJG9yYW5nZS01MDA7XG4kZGFuZ2VyOiAkcmVkLTUwMDtcbiR6aW5kZXgtbW9kYWwtYmFja2Ryb3A6IDEwNDA7XG4kemluZGV4LWR1by1jaGF0OiAxMDQwO1xuJHppbmRleC1kdW8tY2FsbG91dDogNjAwO1xuJG5hdi1kaXZpZGVyLW1hcmdpbi15OiAoJGdyaWQtc2l6ZSAqIDAuNSk7XG4kZHJvcGRvd24taXRlbS1wYWRkaW5nLXk6IDhweDtcbiRkcm9wZG93bi1pdGVtLXBhZGRpbmcteDogMTJweDtcbiRwb3BvdmVyLW1heC13aWR0aDogMzAwcHg7XG4kcG9wb3Zlci1ib3JkZXItd2lkdGg6IDFweDtcbiRwb3BvdmVyLWJvcmRlci1jb2xvcjogJGdsLWJvcmRlci1jb2xvci1kZWZhdWx0O1xuJHBvcG92ZXItYm94LXNoYWRvdzogMCAkYm9yZGVyLXJhZGl1cy1zbWFsbCAkZ2wtYm9yZGVyLXJhZGl1cy1iYXNlIDAgJGdsLWNvbG9yLWFscGhhLWRhcmstODtcbiRwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yOiAkZ2wtY29sb3ItYWxwaGEtZGFyay04O1xuJGgxLWZvbnQtc2l6ZTogMTRweCAqIDIuNTtcbiRoMi1mb250LXNpemU6IDE0cHggKiAyO1xuJGgzLWZvbnQtc2l6ZTogMTRweCAqIDEuNzU7XG4kaDQtZm9udC1zaXplOiAxNHB4ICogMS41O1xuJGg1LWZvbnQtc2l6ZTogMTRweCAqIDEuMjU7XG4kaDYtZm9udC1zaXplOiAxNHB4O1xuJGhlYWRpbmdzLWNvbG9yOiAkZ2wtdGV4dC1jb2xvci1oZWFkaW5nO1xuJGhlYWRpbmdzLWZvbnQtd2VpZ2h0OiAkZ2wtZm9udC13ZWlnaHQtYm9sZDtcbiRzcGFjZXI6ICRncmlkLXNpemU7XG4kc3BhY2VyczogKFxuICAwOiAwLFxuICAxOiAoJHNwYWNlciAqIDAuNSksXG4gIDI6ICgkc3BhY2VyKSxcbiAgMzogKCRzcGFjZXIgKiAyKSxcbiAgNDogKCRzcGFjZXIgKiAzKSxcbiAgNTogKCRzcGFjZXIgKiA0KSxcbiAgNjogKCRzcGFjZXIgKiA1KSxcbiAgNzogKCRzcGFjZXIgKiA2KSxcbiAgODogKCRzcGFjZXIgKiA3KSxcbiAgOTogKCRzcGFjZXIgKiA4KVxuKTtcbiR0b29sdGlwLXBhZGRpbmcteTogMC41cmVtO1xuJHRvb2x0aXAtcGFkZGluZy14OiAwLjc1cmVtO1xuJHRvb2x0aXAtYXJyb3ctaGVpZ2h0OiAwLjVyZW07XG4kdG9vbHRpcC1hcnJvdy13aWR0aDogMXJlbTtcbiIsIkB1c2UgJ3Nhc3M6bGlzdCc7XG5AdXNlICdzYXNzOm1hcCc7XG5AaW1wb3J0ICdAZ2l0bGFiL3VpL3NyYy9zY3NzL3ZhcmlhYmxlcyc7XG5cbi8qKlxuICogUHJlZmlsbGVkIG1peGluc1xuICogTWl4aW5zIHdpdGggZml4ZWQgdmFsdWVzXG4gKi9cblxuQG1peGluIHN0ci10cnVuY2F0ZWQoJG1heC13aWR0aDogODIlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1heC13aWR0aDogJG1heC13aWR0aDtcbn1cblxuLypcbiAqIEJhc2UgbWl4aW4gZm9yIGxpc3RzIGluIEdpdExhYlxuICovXG5AbWl4aW4gYmFzaWMtbGlzdCB7XG4gIG1hcmdpbjogNXB4IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgPiBsaSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgQGFwcGx5IGdsLWJvcmRlci1iO1xuICAgIEBhcHBseSBnbC1ib3JkZXItYi1zdWJ0bGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgQGFwcGx5IGdsLWJnLXN1YnRsZTtcblxuICAgICAgYSB7XG4gICAgICAgIEBhcHBseSBnbC1mb250LWJvbGQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5saWdodCB7XG4gICAgICBhIHtcbiAgICAgICAgQGFwcGx5IGdsLXRleHQtZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHdlYmtpdC1wcmVmaXgoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3snLXdlYmtpdC0nICsgJHByb3BlcnR5fTogJHZhbHVlO1xuICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbn1cblxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcbiAgQGtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbmNsdWRlLWtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcbiAgQGluY2x1ZGUgd2Via2l0LXByZWZpeChhbmltYXRpb24tbmFtZSwgJGFuaW1hdGlvbi1uYW1lKTtcbiAgQGluY2x1ZGUga2V5ZnJhbWVzKCRhbmltYXRpb24tbmFtZSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qXG4gKiBNaXhpbiBmb3Igc3RhdHVzIGJhZGdlcywgYXMgdXNlZCBmb3IgcGlwZWxpbmVzIGFuZCBjb21taXQgc2lnbmF0dXJlc1xuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRjb2xvci1saWdodCwgJGNvbG9yLW1haW4sICRjb2xvci1kYXJrKSB7XG4gIGNvbG9yOiAkY29sb3ItbWFpbjtcbiAgYm9yZGVyLWNvbG9yOiAkY29sb3ItbWFpbjtcblxuICAmOm5vdChzcGFuKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWxpZ2h0O1xuICAgIGNvbG9yOiAkY29sb3ItZGFyaztcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1kYXJrO1xuICB9XG59XG5cbkBtaXhpbiBmYWRlKCRncmFkaWVudC1kaXJlY3Rpb24sICRncmFkaWVudC1jb2xvcikge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMnB4O1xuICB3aWR0aDogNDNweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byAkZ3JhZGllbnQtZGlyZWN0aW9uLFxuICAkZ3JhZGllbnQtY29sb3IgNDUlLFxuICByZ2JhKCRncmFkaWVudC1jb2xvciwgMC40KSk7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcblxuICAmOmhvdmVyIHtcbiAgICBAYXBwbHkgZ2wtZm9jdXM7XG4gIH1cblxuICAmLnNjcm9sbGluZyB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gIH1cblxuICBzdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEycHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG59XG5cbkBtaXhpbiBzY3JvbGxpbmctbGlua3MoKSB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gdHJpYW5nbGUoJGNvbG9yLCAkYm9yZGVyLWNvbG9yLCAkc2l6ZSwgJGJvcmRlci1zaXplKSB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXdpZHRoOiAoJHNpemUgKyAkYm9yZGVyLXNpemUpO1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRzaXplICsgJGJvcmRlci1zaXplKTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItd2lkdGg6ICRzaXplO1xuICAgIG1hcmdpbi1sZWZ0OiAtJHNpemU7XG4gIH1cbn1cblxuLypcbiAqIE1peGluIHRoYXQgZml4ZXMgd3JhcHBpbmcgaXNzdWVzIHdpdGggbG9uZyBzdHJpbmdzIChlLmcuIFVSTHMpXG4gKlxuICogTm90ZTogdGhlIHdpZHRoIG5lZWRzIHRvIGJlIHNldCBmb3IgaXQgdG8gd29yayBpbiBGaXJlZm94XG4gKi9cbkBtaXhpbiBvdmVyZmxvdy1icmVhay13b3JkIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qXG4qIE1peGluIHRoYXQgaGFuZGxlcyB0aGUgY29udGFpbmVyIGZvciB0aGUgam9iIGxvZ3MgKENJL0NEIGFuZCBrdWJlcm5ldGVzIHBvZCBsb2dzKVxuKi9cbkBtaXhpbiBidWlsZC1sb2coJGJhY2tncm91bmQ6ICRibGFjaykge1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgQGFwcGx5IGdsLXRleHQtZGlzYWJsZWQ7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAkZ3JpZC1zaXplO1xuXG4gIC5iYXNoIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gam9iLWxvZy10b3AtYmFyIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBwYWRkaW5nOiAkZ3JpZC1zaXplO1xuICBAYXBwbHkgZ2wtYmctc2VjdGlvbjtcbiAgQGFwcGx5IGdsLWJvcmRlcjtcbiAgQGFwcGx5IGdsLWJvcmRlci1zZWN0aW9uO1xuICBAYXBwbHkgZ2wtdGV4dC1kZWZhdWx0O1xuICB6LWluZGV4OiAyO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDMycHg7XG4gIEBhcHBseSBnbC1yb3VuZGVkLXQtbGc7XG5cbiAgJi5pcy1zdHVjayB7XG4gICAgQGFwcGx5IGdsLWJvcmRlci10LWRlZmF1bHQ7XG4gICAgQGFwcGx5IGdsLXJvdW5kZWQtdC1ub25lO1xuICB9XG59XG5cbi8qXG4qIE1peGluIHRoYXQgaGFuZGxlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRyb2xzIHBsYWNlZCBvbiB0aGUgdG9wIGJhclxuKi9cbkBtaXhpbiBidWlsZC1jb250cm9sbGVycygkY29udHJvbC1mb250LXNpemUsICRmbGV4LWRpcmVjdGlvbiwgJHdpdGgtZ3JvdywgJGZsZXgtZ3Jvdy1zaXplLCAkc3ZnLWRpc3BsYXk6IGJsb2NrLCAkc3ZnLXRvcDogMnB4KSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtc2l6ZTogJGNvbnRyb2wtZm9udC1zaXplO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ICRmbGV4LWRpcmVjdGlvbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XG4gIEBpZiAkd2l0aC1ncm93IHtcbiAgICBmbGV4LWdyb3c6ICRmbGV4LWdyb3ctc2l6ZTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICAgIGRpc3BsYXk6ICRzdmctZGlzcGxheTtcbiAgICB0b3A6ICRzdmctdG9wO1xuICB9XG59XG5cbkBtaXhpbiBidWlsZC1sb2FkZXItYW5pbWF0aW9uIHtcbiAgQGtleWZyYW1lcyBibGlua2luZy1kb3Qge1xuICAgIDAlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMjUlIHtcbiAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICB9XG5cbiAgICA3NSUge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdoaXRlLXNwYWNlOiBpbml0aWFsO1xuXG4gIC5kb3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIG1hcmdpbjogYXV0byBhdXRvIDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGFuaW1hdGlvbjogYmxpbmtpbmctZG90IDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDAuMzNzO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC42NnM7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBlbW9qaS1tZW51LXRvZ2dsZS1idXR0b24ge1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogMDtcbiAgbWluLXdpZHRoOiAxNnB4O1xuXG4gIC5hd2FyZC1jb250cm9sLWljb24tcG9zaXRpdmUsXG4gIC5hd2FyZC1jb250cm9sLWljb24tc3VwZXItcG9zaXRpdmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJi5pcy1hY3RpdmUge1xuICAgIC5hd2FyZC1jb250cm9sLWljb24tbmV1dHJhbCB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIC5hd2FyZC1jb250cm9sLWljb24tcG9zaXRpdmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgLmF3YXJkLWNvbnRyb2wtaWNvbi1wb3NpdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIC5hd2FyZC1jb250cm9sLWljb24tc3VwZXItcG9zaXRpdmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuLypcbiogTWl4aW4gdGhhdCBoYW5kbGVzIHRoZSBzaXplIGFuZCByaWdodCBtYXJnaW4gb2YgYXZhdGFycy5cbiovXG5AbWl4aW4gYXZhdGFyLXNpemUoJHNpemUsICRtYXJnaW4tcmlnaHQpIHtcbiAgd2lkdGg6ICRzaXplO1xuICBoZWlnaHQ6ICRzaXplO1xuICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4tcmlnaHQ7XG59XG5cbkBtaXhpbiBjb2RlLWljb24tc2l6ZSgpIHtcbiAgd2lkdGg6ICRnbC1mb250LXNpemUgKiAkY29kZS1saW5lLWhlaWdodCAqIDAuOTtcbiAgaGVpZ2h0OiAkZ2wtZm9udC1zaXplICogJGNvZGUtbGluZS1oZWlnaHQgKiAwLjk7XG59XG5cbkBtaXhpbiBlbWFpbC1jb2RlLWJsb2NrIHtcbiAgLmNvZGUubGFuZ3VhZ2UtZW1haWwge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuICAgIGNvZGUge1xuICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICAgIC8vIFJvdWdlIGBOYW1lLlRhZ2AgYW5kIGBPcGVyYXRvcmAgdG9rZW4gKGVtYWlsIGhlYWRlciBrZXkgKyAnOicpXG4gICAgICAubnQsXG4gICAgICAubyB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cblxuICAgICAgLy8gUm91Z2UgYE5hbWUuQXR0cmlidXRlYCB0b2tlbiAoZW1haWwgaGVhZGVyIHZhbHVlKVxuICAgICAgLm5hIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC8vIFJvdWdlIGBDb21tZW50YCB0b2tlbiAocXVvdGVkIHRleHQgaW4gZW1haWwgYm9keSlcbiAgICAgIC5jIHtcbiAgICAgICAgY29sb3I6ICRnbC10ZXh0LWNvbG9yLXN1YnRsZTtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYXZhdGFyLWNvdW50ZXIoJGJvcmRlci1yYWRpdXM6IDFlbSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS00MDA7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRncmF5LTUwO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgZm9udC1mYW1pbHk6ICRyZWd1bGFyLWZvbnQ7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWl4aW4gZGV2aXNlLWVycm9ycyB7XG4gIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZvbnQtc2l6ZTogJGdsLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogdmFyKC0tcmVkLTcwMCwgJHJlZC03MDApO1xuICB9XG59XG5cbkBtaXhpbiBub3Rlcy1tZWRpYSgkYnJlYWtwb2ludC1uYW1lKSB7XG4gIEBpbmNsdWRlIGdsLWNvbnRhaW5lci13aWR0aC1kb3duKCRicmVha3BvaW50LW5hbWUpIHsgQGNvbnRlbnQ7IH1cblxuICAvLyBEaWZmIGlzIHNpZGUgYnkgc2lkZVxuICAubm90ZXMtY29udGVudC5wYXJhbGxlbCAmIHtcbiAgICAkYnJlYWtwb2ludC1rZXlzOiBtYXAua2V5cygkZ3JpZC1icmVha3BvaW50cyk7XG4gICAgJGN1cnJlbnQtaW5kZXg6IGxpc3QuaW5kZXgoJGJyZWFrcG9pbnQta2V5cywgJGJyZWFrcG9pbnQtbmFtZSk7XG5cbiAgICBAaWYgJGN1cnJlbnQtaW5kZXggPCBsaXN0Lmxlbmd0aCgkYnJlYWtwb2ludC1rZXlzKSB7XG4gICAgICAkcGFyYWxsZWwtYnJlYWtwb2ludDogbGlzdC5udGgoJGJyZWFrcG9pbnQta2V5cywgJGN1cnJlbnQtaW5kZXggKyAxKTtcblxuICAgICAgQGluY2x1ZGUgZ2wtY29udGFpbmVyLXdpZHRoLWRvd24oJHBhcmFsbGVsLWJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4qIFN0eWxlIHRvIGFwcGx5IHRvLCBmb3IgZXhhbXBsZSwgc2VhcmNoIHJlc3VsdHMgbWF0Y2hlcyBvciB0ZXh0IHdyYXBwZWRcbiogYXJvdW5kIDxtYXJrPiAoYWxsb3dlZCBpbiBNYXJrZG93bikuXG4qL1xuQG1peGluIHN0ci1oaWdobGlnaHRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW9yYW5nZS0xMDApO1xuICBib3gtc2hhZG93OiAwIDAgMCAkZ2wtc3BhY2luZy1zY2FsZS0xIHZhcigtLW9yYW5nZS0xMDApO1xuICBjb2xvcjogdmFyKC0tZ2wtdGV4dC1jb2xvci1kZWZhdWx0KTtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAtMTtcbn1cblxuLyoqXG4qIExpbmUgY29ubmVjdGluZyBhY3Rpdml0eSBlbnRyaWVzLCB1c2VkIGluIGlzc3VhYmxlcywgd29yayBpdGVtcyBldGNcbiovXG5AbWl4aW4gdmVydGljYWwtbGluZSgkdG9wLCAkbGVmdCwgJG9mZnNldDogJHRvcCkge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMnB4O1xuICBsZWZ0OiAkbGVmdDtcbiAgdG9wOiAkdG9wO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtICN7JG9mZnNldH0pO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWQgbWl4aW4gZm9yIGRhcmsgbW9kZVxuICovXG5AbWl4aW4gZ2wtZGFyay1pbnZlcnQta2VlcC1odWUge1xuICAuZ2wtZGFyayAmIHtcbiAgICBmaWx0ZXI6IGludmVydCgwLjgpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcbiAgfVxufVxuXG4vKipcbiogQ0kvQ0QgSm9iIGl0ZW0gZmFpbGVkIHN0YXR1cyBiYWNrZ3JvdW5kXG4qXG4qIFNldHMgYmFja2dyb3VuZCBjb2xvciBvZiBpdGVtcyB0byB2aXN1YWxseVxuKiBoaWdobGlnaHQgZmFpbGVkIGpvYnMgaW4gdGhlIFVJLlxuKi9cbkBtaXhpbiBjaS1qb2ItaXRlbS1mYWlsZWQtc3RhdHVzLWJnIHtcbiAgLS1jaS1qb2ItaXRlbS1mYWlsZWQ6IHZhcigtLWdsLWNvbG9yLXJlZC01MCk7XG5cbiAgLmdsLWRhcmsgJiB7XG4gICAgLS1jaS1qb2ItaXRlbS1mYWlsZWQ6IHZhcigtLWdsLWFjdGlvbi1kYW5nZXItYmFja2dyb3VuZC1jb2xvci1hY3RpdmUpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogdmFyKC0tY2ktam9iLWl0ZW0tZmFpbGVkKTtcbn1cblxuQG1peGluIG1ha2UtY29udGFpbmVyLWdyaWQtY29sdW1ucygkY29sdW1uczogJGdyaWQtY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIC8vIENvbW1vbiBwcm9wZXJ0aWVzIGZvciBhbGwgYnJlYWtwb2ludHNcbiAgJWdyaWQtY29sdW1uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1yaWdodDogJGd1dHRlciAqIC41O1xuICAgIHBhZGRpbmctbGVmdDogJGd1dHRlciAqIC41O1xuICB9XG5cbiAgLmdsLXJvdyB7XG4gICAgQGluY2x1ZGUgbWFrZS1yb3coKTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgbmVnYXRpdmUgbWFyZ2luIGZyb20gZGVmYXVsdCAucm93LCB0aGVuIHRoZSBob3Jpem9udGFsIHBhZGRpbmdcbiAgLy8gZnJvbSBhbGwgaW1tZWRpYXRlIGNoaWxkcmVuIGNvbHVtbnMgKHRvIHByZXZlbnQgcnVuYXdheSBzdHlsZSBpbmhlcml0YW5jZSkuXG4gIC5nbC1uby1ndXR0ZXJzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICA+IC5nbC1jb2wsXG4gICAgPiBbY2xhc3MqPVwiZ2wtY29sLVwiXSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC5rZXlzKCRicmVha3BvaW50cykge1xuICAgICRicmVha3BvaW50LXZhbHVlOiBicmVha3BvaW50LW1pbigkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG5cbiAgICBAaWYgJGNvbHVtbnMgPiAwIHtcbiAgICAgIC8vIEFsbG93IGNvbHVtbnMgdG8gc3RyZXRjaCBmdWxsIHdpZHRoIGJlbG93IHRoZWlyIGJyZWFrcG9pbnRzXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgLmdsLWNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgYXQtcnVsZS1kaXNhbGxvd2VkLWxpc3RcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5nbC1jb2wjeyRpbmZpeH0sXG4gICAgLmdsLWNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgIEBleHRlbmQgJWdyaWQtY29sdW1uOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGF0LXJ1bGUtZGlzYWxsb3dlZC1saXN0XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ2wtY29udGFpbmVyLXdpZHRoLXVwKCRicmVha3BvaW50KSB7XG4gICAgICAvLyBQcm92aWRlIGJhc2ljIGAuZ2wtY29sLXticH1gIGNsYXNzZXMgZm9yIGVxdWFsLXdpZHRoIGZsZXhib3ggY29sdW1uc1xuICAgICAgLmdsLWNvbCN7JGluZml4fSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGdyaWQtcm93LWNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1yb3ctY29sdW1ucyB7XG4gICAgICAgICAgLmdsLXJvdy1jb2xzI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJvdy1jb2xzKCRpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmdsLWNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtYXV0bygpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgICAgLmdsLWNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgIC5nbC1vcmRlciN7JGluZml4fS1maXJzdCB7IG9yZGVyOiAtMTsgfVxuXG4gICAgIC5nbC1vcmRlciN7JGluZml4fS1sYXN0IHsgb3JkZXI6ICRjb2x1bW5zICsgMTsgfVxuXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAuZ2wtb3JkZXIjeyRpbmZpeH0tI3skaX0geyBvcmRlcjogJGk7IH1cbiAgICAgIH1cblxuICAgICAgQGlmICRjb2x1bW5zID4gMCB7XG4gICAgICAgIC8vIGAkY29sdW1ucyAtIDFgIGJlY2F1c2Ugb2Zmc2V0dGluZyBieSB0aGUgd2lkdGggb2YgYW4gZW50aXJlIHJvdyBpc24ndCBwb3NzaWJsZVxuICAgICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICgkY29sdW1ucyAtIDEpIHtcbiAgICAgICAgICBAaWYgbm90ICgkaW5maXggPT0gXCJcIiBhbmQgJGkgPT0gMCkgeyAvLyBBdm9pZCBlbWl0dGluZyB1c2VsZXNzLmdsLW9mZnNldC0wXG4gICAgICAgICAgIC5nbC1vZmZzZXQjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1vZmZzZXQoJGksICRjb2x1bW5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNoZWNrZXJib2FyZC1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdsLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICAgIDQ1ZGVnLFxuICAgICAgdmFyKC0tZ2wtYmFja2dyb3VuZC1jb2xvci1zdHJvbmcpIDI1JSxcbiAgICAgIHRyYW5zcGFyZW50IDI1JSxcbiAgICAgIHRyYW5zcGFyZW50IDc1JSxcbiAgICAgIHZhcigtLWdsLWJhY2tncm91bmQtY29sb3Itc3Ryb25nKSA3NSUsXG4gICAgICB2YXIoLS1nbC1iYWNrZ3JvdW5kLWNvbG9yLXN0cm9uZykgMTAwJVxuICAgICksXG4gICAgbGluZWFyLWdyYWRpZW50KFxuICAgICAgNDVkZWcsXG4gICAgICB2YXIoLS1nbC1iYWNrZ3JvdW5kLWNvbG9yLXN0cm9uZykgMjUlLFxuICAgICAgdHJhbnNwYXJlbnQgMjUlLFxuICAgICAgdHJhbnNwYXJlbnQgNzUlLFxuICAgICAgdmFyKC0tZ2wtYmFja2dyb3VuZC1jb2xvci1zdHJvbmcpIDc1JSxcbiAgICAgIHZhcigtLWdsLWJhY2tncm91bmQtY29sb3Itc3Ryb25nKSAxMDAlXG4gICAgKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMHB4IDEwcHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgNXB4IDVweDtcbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuXG5AbWl4aW4gc3RyLXRydW5jYXRlZCgkbWF4LXdpZHRoOiA4MiUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGNsaXA7XG4gIG92ZXJmbG93LXk6IHZpc2libGU7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG59XG5cbkBtaXhpbiBtYXNrLWNoZXZyb24tZG93biB7XG4gIG1hc2staW1hZ2U6IHVybChcIiN7JGdsLWljb24tY2hldnJvbi1kb3dufVwiKTtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1wb3NpdGlvbjogY2VudGVyO1xuICBtYXNrLXNpemU6IGNvdmVyO1xufVxuXG5AbWl4aW4gZ2wtZmx1aWQtZm9udC1zaXplKCRtaW4sICRtYXgpIHtcbiAgQGluY2x1ZGUgZ2wtcmVzcG9uc2l2ZS1wcm9wZXJ0eShcImZvbnQtc2l6ZVwiLCAkbWluLCAkbWF4KTtcbn1cblxuQG1peGluIGdsLWZsdWlkLWxpbmUtaGVpZ2h0KCRtaW4sICRtYXgpIHtcbiAgQGluY2x1ZGUgZ2wtcmVzcG9uc2l2ZS1wcm9wZXJ0eShcImxpbmUtaGVpZ2h0XCIsICRtaW4sICRtYXgpO1xufVxuXG4vKipcbiogRGVjbGFyZXMgYSBwcm9wZXJ0eSB3aXRoIGEgZmx1aWQgdmFsdWUgdGhhdCBkZWNyZWFzZXMgb3JcbiogcmlzZXMgZGVwZW5kaW5nIG9uIHRoZSB2aWV3cG9ydOKAmXMgc2l6ZS4gVGhlIHByb3BlcnR5IHR5cGVcbiogc2hvdWxkIGJlIG51bWVyaWMuXG4qXG4qIFZhbHVlcyBhcmUgZXhwZWN0ZWQgaW4gcmVtIHVuaXRzLlxuKiBGbHVpZCByYW5nZTogYmV0d2VlbiA0OHJlbSAoNzY4cHgpIOKAkyA3NXJlbSAoMTIwMHB4KS5cbipcbiogQHBhcmFtICRwcm9wZXJ0eSBQcm9wZXJ0eSBuYW1lLCBpLmUuIGxpbmUtaGVpZ2h0LCBmb250LXNpemUsIHdpZHRoLCBoZWlnaHQsIGV0Yy5cbiogQHBhcmFtICRtaW4gUHJvcGVydHkgdmFsdWUgbG93ZXIgYm91bmQuXG4qIEBwYXJhbSAkbWF4IFByb3BlcnR5IHZhbHVlIHVwcGVyIGJvdW5kLlxuKi9cbkBtaXhpbiBnbC1yZXNwb25zaXZlLXByb3BlcnR5KCRwcm9wZXJ0eSwgJG1pbiwgJG1heCkge1xuICAjeyRwcm9wZXJ0eX06IGNsYW1wLWJldHdlZW4oJG1pbiwgJG1heCk7XG59XG5cbi8qKlxuKiBIZWxwZXIgZnVuY3Rpb24gZm9yIDpmb2N1c1xuKlxuKiBAcGFyYW0gJHNpemUgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFueW1vcmVcbiovXG5AbWl4aW4gZ2wtZm9jdXMoXG4gICRzaXplOiBudWxsLFxuICAkY29sb3I6IGZhbHNlLFxuICAkaW1wb3J0YW50OiBmYWxzZSxcbiAgJGluc2V0OiBmYWxzZSxcbiAgJGZvY3VzLXJpbmc6ICRmb2N1cy1yaW5nLFxuICAkb3V0bGluZTogZmFsc2UsXG4gICRvdXRsaW5lLW9mZnNldDogJG91dGxpbmUtb2Zmc2V0XG4pIHtcbiAgQGlmICRpbnNldCA9PSB0cnVlIHtcbiAgICBAaWYgJGNvbG9yIHtcbiAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgIGluc2V0IDAgMCAwICRvdXRsaW5lLXdpZHRoIHZhcigtLWdsLWZvY3VzLXJpbmctb3V0ZXItY29sb3IpLFxuICAgICAgICBpbnNldCAwIDAgMCAjeyRvdXRsaW5lLXdpZHRoICsgJG91dGxpbmUtb2Zmc2V0fSB2YXIoLS1nbC1mb2N1cy1yaW5nLWlubmVyLWNvbG9yKSxcbiAgICAgICAgaW5zZXQgMCAwIDAgI3skb3V0bGluZS13aWR0aCArICRvdXRsaW5lLW9mZnNldCArIDFweH0gJGNvbG9yLFxuICAgICAgICAkZm9jdXMtcmluZy1pbnNldCBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCk7XG4gICAgICBvdXRsaW5lOiBub25lIGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCBMaW5rVGV4dCBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCk7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkb3V0bGluZSA9PSB0cnVlIHtcbiAgICAgIG91dGxpbmU6ICRmb2N1cy1yaW5nLW91dGxpbmUgaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvdXRsaW5lLW9mZnNldDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgIGluc2V0IDAgMCAwICRvdXRsaW5lLXdpZHRoIHZhcigtLWdsLWZvY3VzLXJpbmctb3V0ZXItY29sb3IpLFxuICAgICAgICAkZm9jdXMtcmluZy1pbnNldCBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCk7XG4gICAgICBvdXRsaW5lOiBub25lIGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCBMaW5rVGV4dCBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCk7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIGlmICRjb2xvciB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIGluc2V0IDAgMCAwICRnbC1ib3JkZXItc2l6ZS0xICRjb2xvcixcbiAgICAgICRmb2N1cy1yaW5nIGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICBvdXRsaW5lOiBub25lIGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkIExpbmtUZXh0IGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG91dGxpbmUgPT0gdHJ1ZSB7XG4gICAgb3V0bGluZTogJGZvY3VzLXJpbmctb3V0bGluZSBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCk7XG4gICAgb3V0bGluZS1vZmZzZXQ6ICRvdXRsaW5lLW9mZnNldDtcbiAgfSBAZWxzZSB7XG4gICAgYm94LXNoYWRvdzogJGZvY3VzLXJpbmcgaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpO1xuICAgIG91dGxpbmU6IG5vbmUgaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpO1xuICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICBvdXRsaW5lOiAycHggc29saWQgTGlua1RleHQgaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZ2wtYmctZ3JhZGllbnQtYmx1cigkZGlyZWN0aW9uLCAkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvICRkaXJlY3Rpb24sICR0cmFuc3BhcmVudC1yZ2JhLCAkY29sb3IgMzMlKTtcbn1cblxuLyoqXG4qIEhlbHBlciBmdW5jdGlvbiBmb3IgQG1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtXG4qIGJyZWFrcG9pbnQgd2lkdGguXG4qXG4qIEBwYXJhbSAkbmFtZSBCcmVha3BvaW50IG5hbWUsIHN1Y2ggYXMgYHNtYCBvciBgbWRgLlxuKi9cbkBtaXhpbiBnbC1tZWRpYS1icmVha3BvaW50LXVwKCRuYW1lKSB7XG4gICRtaW46IG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEBpZiAkbWluID09IG51bGwge1xuICAgIEBlcnJvciBcIiN7JG5hbWV9IGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQgZm9yIHRoaXMgQG1lZGlhIHF1ZXJ5LlwiO1xuICB9XG4gIEBpZiAkbWluICE9IDAge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qKlxuKiBIZWxwZXIgZnVuY3Rpb24gZm9yIEBtZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtXG4qIGJyZWFrcG9pbnQgd2lkdGguXG4qXG4qIE5vdGU6IEJlZm9yZSB1c2luZywgY29uc2lkZXIgdXNpbmcgYSBtb2JpbGUtZmlyc3RcbiogYXBwcm9hY2gsIGFuZCBkZWZpbmUgQG1lZGlhIGZvciBsYXJnZXIgYnJlYWtwb2ludHNcbiogdXNpbmcgYGdsLW1lZGlhLWJyZWFrcG9pbnQtdXBgIHdoaWxlIHVzaW5nIHRoaXMgcnVsZSBhc1xuKiB0aGUgc3RhcnRpbmcgcG9pbnQgaW5zdGVhZC5cbipcbiogQHBhcmFtICRuYW1lIEJyZWFrcG9pbnQsIHN1Y2ggYXMgYHNtYCBvciBgbWRgLiBgeHNgIGlzIG5vdCB2YWxpZFxuKi9cbkBtaXhpbiBnbC1tZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUpIHtcbiAgJG1heDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQGlmICgkbWF4ID09IG51bGwgb3IgJG1heCA9PSAwKSB7XG4gICAgQGVycm9yIFwiI3skbmFtZX0gaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludCBmb3IgdGhpcyBAbWVkaWEgcXVlcnkuXCI7XG4gIH1cbiAgLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4gIC8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB3aXRoIGZyYWN0aW9uYWwgdmlld3BvcnQgc2l6ZXMuXG4gIC8vIFNlZTogaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4gIC8vIFVzZSAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuICAkYnJlYWtwb2ludC1tYXgtcmFuZ2UtcHJlY2lzaW9uOiAwLjAycHg7XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXggLSAkYnJlYWtwb2ludC1tYXgtcmFuZ2UtcHJlY2lzaW9uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGdsLWNvbnRhaW5lci13aWR0aC11cCgkbmFtZSwgJGNvbnRhaW5lck5hbWU6IFwiXCIsICRpbmNsdWRlTVFGYWxsYmFjazogdHJ1ZSkge1xuICAkbWluOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAZXJyb3IgXCIjeyRuYW1lfSBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50IGZvciB0aGlzIEBjb250YWluZXIgcXVlcnkuXCI7XG4gIH1cbiAgQGlmICRtaW4gIT0gMCB7XG4gICAgQGNvbnRhaW5lciAjeyRjb250YWluZXJOYW1lfSAod2lkdGggPj0gI3skbWlufSkge1xuICAgICAgQGlmICYge1xuICAgICAgICA6d2hlcmUoaHRtbC53aXRoLWdsLWNvbnRhaW5lci1xdWVyaWVzKSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDp3aGVyZShodG1sLndpdGgtZ2wtY29udGFpbmVyLXF1ZXJpZXMpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAaWYgJGluY2x1ZGVNUUZhbGxiYWNrIHtcbiAgICAgIEBtZWRpYSAod2lkdGggPj0gJG1pbikge1xuICAgICAgICBAaWYgJiB7XG4gICAgICAgICAgOndoZXJlKGh0bWw6bm90KC53aXRoLWdsLWNvbnRhaW5lci1xdWVyaWVzKSkgJiB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDp3aGVyZShodG1sOm5vdCgud2l0aC1nbC1jb250YWluZXItcXVlcmllcykpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGdsLWNvbnRhaW5lci13aWR0aC1kb3duKCRuYW1lLCAkY29udGFpbmVyTmFtZTogXCJcIiwgJGluY2x1ZGVNUUZhbGxiYWNrOiB0cnVlKSB7XG4gICRtYXg6IG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEBpZiAoJG1heCA9PSBudWxsIG9yICRtYXggPT0gMCkge1xuICAgIEBlcnJvciBcIiN7JG5hbWV9IGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQgZm9yIHRoaXMgQGNvbnRhaW5lciBxdWVyeS5cIjtcbiAgfVxuXG4gIEBjb250YWluZXIgI3skY29udGFpbmVyTmFtZX0gKHdpZHRoIDwgI3skbWF4fSkge1xuICAgIEBpZiAmIHtcbiAgICAgIDp3aGVyZShodG1sLndpdGgtZ2wtY29udGFpbmVyLXF1ZXJpZXMpICYge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDp3aGVyZShodG1sLndpdGgtZ2wtY29udGFpbmVyLXF1ZXJpZXMpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkaW5jbHVkZU1RRmFsbGJhY2sge1xuICAgIEBtZWRpYSAod2lkdGggPCAkbWF4KSB7XG4gICAgICBAaWYgJiB7XG4gICAgICAgIDp3aGVyZShodG1sOm5vdCgud2l0aC1nbC1jb250YWluZXItcXVlcmllcykpICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgOndoZXJlKGh0bWw6bm90KC53aXRoLWdsLWNvbnRhaW5lci1xdWVyaWVzKSkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuKiBIZWxwZXIgZnVuY3Rpb24gdG8gcmVzb2x2ZSBmb250LXNpemUgdmFsdWUgZnJvbSAkZ2wtZm9udC1zaXplcyBhbmRcbiogJGdsLWZvbnQtc2l6ZXMtZml4ZWQgbWFwcy5cbipcbiogQHBhcmFtICRzaXplIE51bWJlciBmb250LXNpemUgc2NhbGVcbiogQHBhcmFtICRmaXhlZCBCb29sZWFuIHRvZ2dsZSBkZWZhdWx0IGFuZCBmaXhlZCBmb250IHNpemUgc2NhbGVzXG4qL1xuQGZ1bmN0aW9uIGdldC1mb250LXNpemUtdmFyaWFibGUoJHNpemUsICRmaXhlZCkge1xuICBAaWYgJGZpeGVkID09IHRydWUge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkZ2wtZm9udC1zaXplcy1maXhlZCwgJHNpemUpIHtcbiAgICAgIEByZXR1cm4gbWFwLmdldCgkZ2wtZm9udC1zaXplcy1maXhlZCwgJHNpemUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGVycm9yIFwiI3skc2l6ZX0gaXMgbm90IGEgdmFsaWQgZml4ZWQgZm9udCBzaXplIHByb3BlcnR5XCI7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGdsLWZvbnQtc2l6ZXMsICRzaXplKSB7XG4gICAgICBAcmV0dXJuIG1hcC5nZXQoJGdsLWZvbnQtc2l6ZXMsICRzaXplKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBlcnJvciBcIiN7JHNpemV9IGlzIG5vdCBhIHZhbGlkIGZvbnQgc2l6ZSBwcm9wZXJ0eVwiO1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZ2wtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi10cmFuc2l0aW9uIHtcbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMG1zICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGdsLXByZWZlcnMtcmVkdWNlZC1tb3Rpb24tYW5pbWF0aW9uIHtcbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAwbXMgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZ2wtYWN0aW9uLXNlbGVjdGVkLWNvbG9ycyB7XG4gIGNvbG9yOiB2YXIoLS1nbC1hY3Rpb24tc2VsZWN0ZWQtZm9yZWdyb3VuZC1jb2xvci1kZWZhdWx0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2wtYWN0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3ItZGVmYXVsdCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ2wtYWN0aW9uLXNlbGVjdGVkLWJvcmRlci1jb2xvci1kZWZhdWx0KTtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tZ2wtYWN0aW9uLXNlbGVjdGVkLWZvcmVncm91bmQtY29sb3ItaG92ZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdsLWFjdGlvbi1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWdsLWFjdGlvbi1zZWxlY3RlZC1ib3JkZXItY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBjb2xvcjogdmFyKC0tZ2wtYWN0aW9uLXNlbGVjdGVkLWZvcmVncm91bmQtY29sb3ItZm9jdXMpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdsLWFjdGlvbi1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yLWZvY3VzKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWdsLWFjdGlvbi1zZWxlY3RlZC1ib3JkZXItY29sb3ItZm9jdXMpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1nbC1hY3Rpb24tc2VsZWN0ZWQtZm9yZWdyb3VuZC1jb2xvci1hY3RpdmUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdsLWFjdGlvbi1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nbC1hY3Rpb24tc2VsZWN0ZWQtYm9yZGVyLWNvbG9yLWFjdGl2ZSk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJ21peGluc19hbmRfdmFyaWFibGVzX2FuZF9mdW5jdGlvbnMnO1xuXG4uZGVzY3JpcHRpb24ge1xuICBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDIuMjVyZW07XG5cbiAgICAuZHJhZy1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAwLjNyZW07XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IC0yLjNyZW07XG4gICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDFyZW07XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICB9XG5cbiAgICAvKiBGbHVzaCB3aXRoIHRoZSByb3cgYm94OiB0aGUgdWwgb3ducyBhbnkgZ2FwIGJldHdlZW4gdGhlIHJvdyBhbmQgdGhpc1xuICAgICAgIHdyYXBwZXIgYW5kIHdpbnMgaGl0LXRlc3Rpbmcgb3ZlciB0aGUgcm93J3MgaGlnaGxpZ2h0IHBzZXVkby1lbGVtZW50LFxuICAgICAgIHNvIGEgZ2FwIGRyb3BzIDpob3ZlciB3aGlsZSBjcm9zc2luZyB0byB0aGUgYWN0aW9ucyBidXR0b24uICovXG4gICAgLnRhc2stbGlzdC1pdGVtLWFjdGlvbnMtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogMC4wNjI1cmVtO1xuICAgICAgaW5zZXQtaW5saW5lLWVuZDogLTEuNjI1cmVtO1xuICAgIH1cblxuICAgIC50YXNrLWxpc3QtaXRlbS1hY3Rpb25zW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdLFxuICAgIC50YXNrLWxpc3QtaXRlbS1hY3Rpb25zOmlzKDpmb2N1cy12aXNpYmxlLCA6aG92ZXIpIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLmhhcy10YXNrLWxpc3QtaXRlbS1hY3Rpb25zID4gOmlzKHVsLCBvbCkgPiBsaSB7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IDJyZW07XG4gIH1cblxuICB1bC50YXNrLWxpc3QgPiBsaS50YXNrLWxpc3QtaXRlbSB7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogMC41cmVtICFpbXBvcnRhbnQ7IC8qIE92ZXJyaWRlIHR5cG9ncmFwaHkuc2NzcyAqL1xuXG4gICAgPiAuZHJhZy1pY29uIHtcbiAgICAgIGluc2V0LWlubGluZS1zdGFydDogLTAuNnJlbTtcbiAgICB9XG4gIH1cbn1cblxuLyogQ2hlY2tsaXN0IHJvdyBoaWdobGlnaHQsIG9ubHkgd2hlbiB0aGUgZGVzY3JpcHRpb24gaXMgZWRpdGFibGUgKHRoZSBncmlwIGFuZFxuICAgYWN0aW9ucyBtZW51IGV4aXN0LCBtYXJrZWQgYnkgLmhhcy10YXNrLWxpc3QtaXRlbS1hY3Rpb25zKS4gKi9cblxuLmhhcy10YXNrLWxpc3QtaXRlbS1hY3Rpb25zIHVsLnRhc2stbGlzdCA+IGxpLnRhc2stbGlzdC1pdGVtIHtcbiAgLyogQ2VudGVyIHNpbmdsZS1saW5lIHJvdyBjb250ZW50IHdpdGhpbiB0aGUgbWluIHJvdyBoZWlnaHQuICovXG4gIG1pbi1ibG9jay1zaXplOiAxLjc1cmVtO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwLjE4NzVyZW07XG5cbiAgLyogVGhlIGdyaXAgYW5kIGFjdGlvbnMgbWVudSBzaXQgb3V0c2lkZSB0aGUgbGkgYm94OyBwYWludCByb3cgaGlnaGxpZ2h0c1xuICAgICBvbiBhIHBzZXVkby1lbGVtZW50IGV4dGVuZGVkIHRvIGVuY2xvc2UgdGhlIHdob2xlIHJvdy4gKi9cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogLTE7XG4gICAgaW5zZXQtYmxvY2s6IDA7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAtMXJlbTtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiAtMS42MjVyZW07XG4gICAgQGFwcGx5IGdsLXJvdW5kZWQtYmFzZTtcbiAgfVxuXG4gID4gLmRyYWctaWNvbiB7XG4gICAgaW5zZXQtYmxvY2stc3RhcnQ6IDAuNDM3NXJlbTtcbiAgfVxuXG4gID4gaW5wdXQudGFzay1saXN0LWl0ZW0tY2hlY2tib3gsXG4gID4gcCA+IGlucHV0LnRhc2stbGlzdC1pdGVtLWNoZWNrYm94IHtcbiAgICBpbnNldC1ibG9jay1zdGFydDogMC4zNzVyZW07XG4gIH1cblxuICAvKiBIaWdobGlnaHQgb25seSB0aGUgaW5uZXJtb3N0IGhvdmVyZWQgcm93LCBhbmQgbmV2ZXIgbWlkLWRyYWc6IHRoZSBjbG9uZVxuICAgICBoYXMgcG9pbnRlci1ldmVudHM6IG5vbmUsIHNvIDpob3ZlciB3b3VsZCBsYW5kIG9uIHRoZSByb3dzIGJlbmVhdGggaXQuICovXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBnaXRsYWIvbm8taGFzIC0tIEFuY2hvcmVkIHRvIHRoZSBob3ZlcmVkIGNoZWNrbGlzdCBsaSBhbmQgdHJhdmVyc2luZyBvbmx5IGl0cyBvd24gZGVzY2VuZGFudHM7IHRoZSBsaSBpcyBtYXJrZG93bi1yZW5kZXJlZCBvdXRzaWRlIGFueSBWdWUgY29tcG9uZW50LCBzbyBubyBKUyBob29rIGNhbiBtYXJrIHRoZSBpbm5lcm1vc3QgaG92ZXJlZCByb3cuICovXG4gIGJvZHk6bm90KC5pcy1kcmFnZ2luZykgJjpob3Zlcjpub3QoOmhhcygudGFzay1saXN0LWl0ZW06aG92ZXIpKTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nbC1oaWdobGlnaHQtdGFyZ2V0LWJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgLyogU3Ryb25nZXN0IGhpZ2hsaWdodDogdGhlIHJvdyB3aG9zZSBtZW51IGlzIG9wZW4sIGFuZCB0aGUgaGVsZCBkcmFnIGNsb25lXG4gICAgICh3cmFwTGlzdERyYWdDbG9uZSBnaXZlcyB0aGUgY2xvbmUgdGhlc2Ugc2NvcGluZyBjbGFzc2VzKS4gKi9cbiAgJi50YXNrLWxpc3QtaXRlbS1hY3RpdmU6OmJlZm9yZSxcbiAgJi5pcy1kcmFnZ2luZzo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nbC1oaWdobGlnaHQtdGFyZ2V0LWJhY2tncm91bmQtY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdsLWhpZ2hsaWdodC10YXJnZXQtYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gIC8qIFRoZSBmYWRlZCBkcm9wLXBvc2l0aW9uIGdob3N0IGtlZXBzIGEgZmFpbnQgaGlnaGxpZ2h0IG1hcmtpbmcgdGhlIHRhcmdldCBzbG90ICovXG4gICYuaXMtZ2hvc3Q6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2wtaGlnaGxpZ2h0LXRhcmdldC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxufVxuXG4uZ2xxbC1hY3Rpb25zIGxpIHtcbiAgQGFwcGx5IGdsLW1sLTI7XG59XG5cbi5pcy1naG9zdCB7XG4gIG9wYWNpdHk6IDAuMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iXX0= */
