@charset "UTF-8";
/* ======================================================================
 common style index
・reset
・setting
・base
・utility
・component
・layout
====================================================================== */
/*! destyle.css v1.0.15 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* Reset box-model */
/* ============================================ */
* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

::before,
::after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

/* Document */
/* ============================================ */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Remove gray overlay on links for iOS.
 */
html {
  -webkit-text-size-adjust: 100%; /* 2 */
  line-height: 1.15; /* 1 */
  -webkit-tap-highlight-color: transparent; /* 3*/
}

/* Sections */
/* ============================================ */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/* Vertical rhythm */
/* ============================================ */
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

/* Headings */
/* ============================================ */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-weight: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* Lists (enumeration) */
/* ============================================ */
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Lists (definition) */
/* ============================================ */
dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

/* Grouping content */
/* ============================================ */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  clear: both;
  overflow: visible; /* 2 */
  -webkit-box-sizing: content-box;
  box-sizing: content-box; /* 1 */
  margin: 0;
  height: 0; /* 1 */
  border: 0;
  border-top: 1px solid;
  color: inherit;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-size: inherit; /* 2 */
  font-family: monospace, monospace; /* 1 */
}

address {
  font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
  color: inherit;
  text-decoration: none;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-size: inherit; /* 2 */
  font-family: monospace, monospace; /* 1 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  position: relative;
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content */
/* ============================================ */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
  vertical-align: bottom;
}

embed,
object,
iframe {
  border: 0;
  vertical-align: bottom;
}

/* Forms */
/* ============================================ */
/**
 * Reset form fields to make them styleable
 */
button,
input,
optgroup,
select,
textarea {
  margin: 0;
  padding: 0;
  outline: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  vertical-align: middle;
  text-align: inherit;
  font: inherit;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

/**
 * Reset radio and checkbox appearance to preserve their look in iOS.
 */
[type=checkbox] {
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
  appearance: checkbox;
}

[type=radio] {
  -webkit-appearance: radio;
  -moz-appearance: radio;
  appearance: radio;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

button[disabled],
[type=button][disabled],
[type=reset][disabled],
[type=submit][disabled] {
  cursor: default;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Remove arrow in IE10 & IE11
 */
select::-ms-expand {
  display: none;
}

/**
 * Remove padding
 */
option {
  padding: 0;
}

/**
 * Reset to invisible
 */
fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
  border: 0;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  display: table; /* 1 */
  padding: 0; /* 3 */
  max-width: 100%; /* 1 */
  color: inherit; /* 2 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the outline style in Safari.
 */
[type=search] {
  outline-offset: -2px; /* 1 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  font: inherit; /* 2 */
  -webkit-appearance: button; /* 1 */
}

/**
 * Clickable labels
 */
label[for] {
  cursor: pointer;
}

/* Interactive */
/* ============================================ */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/*
 * Remove outline for editable content.
 */
[contenteditable] {
  outline: none;
}

/* Table */
/* ============================================ */
table {
  border-spacing: 0;
  border-collapse: collapse;
}

caption {
  text-align: left;
}

td,
th {
  padding: 0;
  vertical-align: top;
}

th {
  text-align: left;
  font-weight: bold;
}

/* Misc */
/* ============================================ */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* ======================================================================
 base
====================================================================== */
html {
  font-size: 62.5%;
}

body {
  max-width: 100vw;
  color: #2e2e38;
  overflow-wrap: break-word;
  text-shadow: rgba(0, 0, 0, 0.01) 0 0 1px;
  text-rendering: optimizeLegibility;
  word-wrap: break-word;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

html,
body {
  width: 100%;
}

* {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* h1 - h6 */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 1em;
}

/* a */
a {
  text-decoration: none;
  cursor: pointer;
}
a:link {
  color: #2e2e38;
}
a:visited {
  color: #2e2e38;
}
a:hover {
  color: #2e2e38;
}
a:active {
  color: #2e2e38;
}

a[href^=tel] {
  color: #2e2e38;
}

/* Text Highlight */
/* button */
button {
  display: block;
}

textarea {
  resize: vertical;
}

select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #2e2e38;
}

/* placeholder */
input:-moz-placeholder-shown, textarea:-moz-placeholder-shown {
  color: #2e2e38;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
  color: #2e2e38;
}
input:placeholder-shown,
textarea:placeholder-shown {
  color: #2e2e38;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #2e2e38;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
  color: #2e2e38;
  opacity: 1;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
  color: #2e2e38;
  opacity: 1;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #2e2e38;
}
input:focus:-moz-placeholder-shown, textarea:focus:-moz-placeholder-shown {
  color: #2e2e38;
}
input:focus:-ms-input-placeholder, textarea:focus:-ms-input-placeholder {
  color: #2e2e38;
}
input:focus:placeholder-shown,
textarea:focus:placeholder-shown {
  color: #2e2e38;
}
input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
  color: #2e2e38;
}
input:focus:-moz-placeholder,
textarea:focus:-moz-placeholder {
  color: #2e2e38;
  opacity: 1;
}
input:focus::-moz-placeholder,
textarea:focus::-moz-placeholder {
  color: #2e2e38;
  opacity: 1;
}
input:focus:-ms-input-placeholder,
textarea:focus:-ms-input-placeholder {
  color: #2e2e38;
}

img {
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* ======================================================================
 utility
====================================================================== */
.u-cf:after {
  display: block;
  clear: both;
  content: "";
}

@media screen and (min-width: 768px) {
  .u-pc {
    display: block;
  }
  .u-pc-i {
    display: inline;
  }
  .u-pc-ib {
    display: inline-block;
  }
  .u-pc-f {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .u-pc-if {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
  }
  .u-sp {
    display: none;
  }
  .u-sp-i, .u-sp-ib, .u-sp-f, .u-sp-if {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .u-pc {
    display: none;
  }
  .u-pc-i, .u-pc-ib, .u-pc-f, .u-pc-if {
    display: none;
  }
  .u-sp {
    display: block;
  }
  .u-sp-i {
    display: inline;
  }
  .u-sp-ib {
    display: inline-block;
  }
  .u-sp-f {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .u-sp-if {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
  }
}
.u-ib {
  display: inline-block;
}

/* =================================
 content-size
================================= */
.u-content-size {
  padding: 0 20px;
}
@media screen and (min-width: 768px) {
  .u-content-size {
    margin: 0 auto;
    padding: 0;
    width: 1200px;
  }
}

/* =================================
 text
================================= */
.u-text-12 {
  font-size: 12px;
  line-height: 19.2px;
}

.u-text-12-10 {
  font-size: 12px;
  line-height: 19.2px;
}
@media screen and (max-width: 767px) {
  .u-text-12-10 {
    font-size: 10px;
    line-height: 16px;
  }
}

.u-text-14 {
  font-size: 14px;
  line-height: 28.8px;
}

.u-text-14-12 {
  font-size: 14px;
  line-height: 28.8px;
}
@media screen and (max-width: 767px) {
  .u-text-14-12 {
    font-size: 12px;
    line-height: 19.2px;
  }
}

.u-text-16 {
  font-size: 16px;
  line-height: 28.8px;
}

.u-text-16-14 {
  font-size: 16px;
  line-height: 28.8px;
}
@media screen and (max-width: 767px) {
  .u-text-16-14 {
    font-size: 14px;
    line-height: 22.4px;
  }
}

.u-text-18 {
  font-size: 18px;
  line-height: 20px;
}

/* =================================
 text weight
================================= */
.u-lighter {
  font-weight: lighter;
}

.u-bold {
  font-weight: bold;
}

/* =================================
 text align
================================= */
.u-ta-c {
  text-align: center;
}

.u-ta-r {
  text-align: right;
}

@media screen and (max-width: 767px) {
  .u-ta-cl {
    text-align: center;
  }
}

@media screen and (min-width: 768px) {
  .u-ta-lc {
    text-align: center;
  }
}

@media screen and (max-width: 767px) {
  .u-ta-cr {
    text-align: center;
  }
}
@media screen and (min-width: 768px) {
  .u-ta-cr {
    text-align: right;
  }
}

@media screen and (max-width: 767px) {
  .u-ta-rc {
    text-align: right;
  }
}
@media screen and (min-width: 768px) {
  .u-ta-rc {
    text-align: center;
  }
}

/* =================================
 paragraph margin
================================= */
.u-paragraph + .u-paragraph {
  margin: 15px 0 0;
}

/* =================================
 hover animation
================================= */
.u-hover-1 {
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (min-width: 1025px) {
  .u-hover-1:hover {
    opacity: 0.7;
  }
}

/* =================================
 font family
================================= */
.u-ff-1 {
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.u-ff-2 {
  font-family: fot-tsukuardgothic-std, sans-serif;
}

/* =================================
 flex
================================= */
.u-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.u-align-c {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.u-justify-c {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.u-shrink-0 {
  -ms-flex-negative: 0;
  flex-shrink: 0;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJfcmVzZXQuc2NzcyIsIl9iYXNlLnNjc3MiLCJfc2V0dGluZy5zY3NzIiwiX3V0aWxpdHkuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFFQTtBQUNBO0FBRUE7RUFDRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUVBOzs7QUFHRjtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVNFOzs7QUFHRjtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7QUFFQTtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0FBRUE7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0VBR0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtFQUdFO0VBQ0E7OztBQUdGO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBRUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBRUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUVBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUVBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFDQTtBQUVBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQ25mRjtBQUFBO0FBQUE7QUFHQTtFQUNFOzs7QUFHRjtFQUNFO0VBQ0EsT0NzQk07RURyQk47RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGFDT087OztBREpUO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FOzs7QUFHRjtBQUVBO0VBQ0U7RUFDQTs7QUFFQTtFQUNFLE9DakJJOztBRG1CTjtFQUNFLE9DcEJJOztBRHNCTjtFQUNFLE9DdkJJOztBRHlCTjtFQUNFLE9DMUJJOzs7QUQrQlI7RUFDRSxPQ2hDTTs7O0FEbUNSO0FBS0E7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFJQTtFQUNFO0VBQ0E7OztBQUlKO0FDb0NFO0FBQUE7RUFDRSxPQTdGSTs7QUErRk47QUFBQTtFQUNFLE9BaEdJOztBQWtHTjtBQUFBO0VBQ0UsT0FuR0k7RUFvR0o7O0FBRUY7QUFBQTtFQUNFLE9BdkdJO0VBd0dKOztBQUVGO0FBQUE7RUFDRSxPQTNHSTs7QUE0Rk47QUFBQTtFQUNFLE9BN0ZJOztBQStGTjtBQUFBO0VBQ0UsT0FoR0k7O0FBa0dOO0FBQUE7RUFDRSxPQW5HSTtFQW9HSjs7QUFFRjtBQUFBO0VBQ0UsT0F2R0k7RUF3R0o7O0FBRUY7QUFBQTtFQUNFLE9BM0dJOzs7QURtRVI7RUFDRTtFQUVBOzs7QUVyR0Y7QUFBQTtBQUFBO0FEbUZFO0VBQ0U7RUFDQTtFQUNBOzs7QUE0RkY7RUN2S0E7SUFDRTs7RUFDQTtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUdKO0lBQ0U7O0VBQ0E7SUFJRTs7O0FEd0lKO0VDbElBO0lBQ0U7O0VBQ0E7SUFJRTs7RUFHSjtJQUNFOztFQUNBO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7OztBQUtOO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7O0FEMEdBO0VDM0dGO0lBSUk7SUFDQTtJQUNBLE9EeEVZOzs7O0FDNEVoQjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7QUQ2RUE7RUMvRUY7SUFLSTtJQUNBOzs7O0FBSUo7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7O0FEOERBO0VDaEVGO0lBS0k7SUFDQTs7OztBQUlKO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOztBRCtDQTtFQ2pERjtJQUtJO0lBQ0E7Ozs7QUFJSjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUdGO0VBQ0U7OztBRGVBO0VDWkY7SUFFSTs7OztBRG9CRjtFQ2hCRjtJQUVJOzs7O0FESUY7RUNBRjtJQUVJOzs7QURRRjtFQ1ZGO0lBS0k7Ozs7QURMRjtFQ1NGO0lBRUk7OztBRERGO0VDREY7SUFLSTs7OztBQUlKO0FBQUE7QUFBQTtBQUlFO0VBQ0U7OztBQUlKO0FBQUE7QUFBQTtBQUdBO0VBQ0U7O0FEcENBO0VDdUNFO0lBQ0U7Ozs7QUFLTjtBQUFBO0FBQUE7QUFHQTtFQUNFLGFEM0xPOzs7QUM4TFQ7RUFDRSxhRDlMTzs7O0FDaU1UO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0UiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGNvbW1vbiBzdHlsZSBpbmRleFxu44O7cmVzZXRcbuODu3NldHRpbmdcbuODu2Jhc2VcbuODu3V0aWxpdHlcbuODu2NvbXBvbmVudFxu44O7bGF5b3V0XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIOODquOCu+ODg+ODiFxuQHVzZSBcInJlc2V0XCI7XG5cbi8vIOWkieaVsOWumue+qeODu+ODn+ODg+OCr+OCueOCpOODs1xuQHVzZSBcInNldHRpbmdcIjtcblxuLy8g44OZ44O844K5XG5AdXNlIFwiYmFzZVwiO1xuXG4vLyDmsY7nlKjjgq/jg6njgrlcbkB1c2UgXCJ1dGlsaXR5XCI7XG4iLCIvKiEgZGVzdHlsZS5jc3MgdjEuMC4xNSB8IE1JVCBMaWNlbnNlIHwgaHR0cHM6Ly9naXRodWIuY29tL25pY29sYXMtY3VzYW4vZGVzdHlsZS5jc3MgKi9cblxuLyogUmVzZXQgYm94LW1vZGVsICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuOjpiZWZvcmUsXG46OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuLyogRG9jdW1lbnQgKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKiAzLiBSZW1vdmUgZ3JheSBvdmVybGF5IG9uIGxpbmtzIGZvciBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDMqL1xufVxuXG4vKiBTZWN0aW9ucyAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIFZlcnRpY2FsIHJoeXRobSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxucCxcbnRhYmxlLFxuYmxvY2txdW90ZSxcbmFkZHJlc3MsXG5wcmUsXG5pZnJhbWUsXG5mb3JtLFxuZmlndXJlLFxuZGwge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhlYWRpbmdzICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4vKiBMaXN0cyAoZW51bWVyYXRpb24pICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG51bCxcbm9sIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKiBMaXN0cyAoZGVmaW5pdGlvbikgKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmRkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnQgKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgLyogMiAqL1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbn1cblxuYWRkcmVzcyB7XG4gIGZvbnQtc3R5bGU6IGluaGVyaXQ7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgLyogMiAqL1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLS4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0uNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG5lbWJlZCxcbm9iamVjdCxcbmlmcmFtZSB7XG4gIGJvcmRlcjogMDtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyogRm9ybXMgKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVzZXQgZm9ybSBmaWVsZHMgdG8gbWFrZSB0aGVtIHN0eWxlYWJsZVxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIFJlc2V0IHJhZGlvIGFuZCBjaGVja2JveCBhcHBlYXJhbmNlIHRvIHByZXNlcnZlIHRoZWlyIGxvb2sgaW4gaU9TLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94O1xuICBhcHBlYXJhbmNlOiBjaGVja2JveDtcbn1cblxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogcmFkaW87XG4gIGFwcGVhcmFuY2U6IHJhZGlvO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuYnV0dG9uW2Rpc2FibGVkXSxcblt0eXBlPVwiYnV0dG9uXCJdW2Rpc2FibGVkXSxcblt0eXBlPVwicmVzZXRcIl1bZGlzYWJsZWRdLFxuW3R5cGU9XCJzdWJtaXRcIl1bZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBhcnJvdyBpbiBJRTEwICYgSUUxMVxuICovXG5cbnNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHBhZGRpbmdcbiAqL1xuXG5vcHRpb24ge1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc2V0IHRvIGludmlzaWJsZVxuICovXG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtaW4td2lkdGg6IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAxICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xufVxuXG4vKipcbiAqIENsaWNrYWJsZSBsYWJlbHNcbiAqL1xuXG5sYWJlbFtmb3JdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKiBJbnRlcmFjdGl2ZSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qXG4gKiBSZW1vdmUgb3V0bGluZSBmb3IgZWRpdGFibGUgY29udGVudC5cbiAqL1xuXG5bY29udGVudGVkaXRhYmxlXSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi8qIFRhYmxlICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuXG5jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIE1pc2MgKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAdXNlIFwic2V0dGluZ1wiIGFzICo7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiBiYXNlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5odG1sIHtcbiAgZm9udC1zaXplOiA2Mi41JTsgLy8gMWVtID0gMTBweFxufVxuXG5ib2R5IHtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbiAgY29sb3I6ICRibGFjaztcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgdGV4dC1zaGFkb3c6IHJnYmEoMCwwLDAsLjAxKSAwIDAgMXB4O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC0xO1xufVxuXG5odG1sLFxuYm9keSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4qIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG5cbi8qIGgxIC0gaDYgKi9cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBhICovXG4vLyDlkITjg5rjg7zjgrjjgafoibLjgpLlpInmm7TjgZnjgovjgajjgY3jga9AaW5jbHVkZSBhLXRhZ+OCkuS9v+eUqOOBl+OBpuS4iuabuOOBjeOBl+OBpuOBj+OBoOOBleOBhOOAglxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6bGluayB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgfVxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgfVxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgfVxufVxuXG4vLyDjg6Ljg5DjgqTjg6vmmYIg6Zu76Kmx55Wq5Y+344Kr44Op44O8XG5hW2hyZWZePVwidGVsXCJdIHtcbiAgY29sb3I6ICRibGFjaztcbn1cblxuLyogVGV4dCBIaWdobGlnaHQgKi9cbi8vIDo6c2VsZWN0aW9uIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuLy8gfVxuXG4vKiBidXR0b24gKi9cbmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbnNlbGVjdCB7XG4gICY6LW1vei1mb2N1c3Jpbmcge1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDAgJGJsYWNrO1xuICB9XG59XG5cbi8qIHBsYWNlaG9sZGVyICovXG4vLyDlkITjg5rjg7zjgrjjgafoibLjgpLlpInmm7TjgZnjgovjgajjgY3jga9AaW5jbHVkZSBwbGFjZWhvbGRlcuOCkuS9v+eUqOOBl+OBpuS4iuabuOOBjeOBl+OBpuOBj+OBoOOBleOBhOOAglxuaW5wdXQsXG50ZXh0YXJlYSB7XG4gIEBpbmNsdWRlIHBsYWNlaG9sZGVyKCRibGFjayk7XG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyKCRibGFjayk7XG4gIH1cbn1cblxuLy8g44OJ44Op44OD44Kw56aB5q2iXG5pbWcge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbiIsIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gdmFyaWFibGVcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gaW1n44OH44Kj44Os44Kv44OI44Oq44G+44Gn44Gu44OR44K5XG4kaW1nLWRpcjogXCIuLi9pbWdcIjtcblxuLy8g44Kz44Oz44OG44Oz44OE5bmFXG4kY29udGVudC13aWR0aDogMTIwMHB4O1xuXG4vLyBTUOaZguOBruW3puWPs+OBruS9meeZve+8iOeJh+aWue+8iVxuJHNwLXNpZGUtcGFkZGluZzogMjBweDtcblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGJyZWFrcG9pbnRcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyDkuIvoqJgy44Gk44Gu5aSJ5pWw44Gu6ZaT44GM44K/44OW44Os44OD44OI6KGo56S6XG4vLyDjgr/jg5bjg6zjg4Pjg4jooajnpLrjgarjgZfjga7loLTlkIjjga8y44Gk44Gu5aSJ5pWw44Gu5YCk44KS44CMMXB45beu44CN44Gn6Kit5a6a44GZ44KL44GT44GoXG5cbi8vICRwYy1icOS7peS4iuOBjFBD6KGo56S6XG4kcGMtYnA6IDEwMjVweDtcblxuLy8gJHNwLWJw5Lul5LiL44GMU1DooajnpLpcbiRzcC1icDogNzY3cHg7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBmb250XG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuJGZvbnQtMTogXCJaZW4gS2FrdSBHb3RoaWMgTmV3XCIsIHNhbnMtc2VyaWY7O1xuJGZvbnQtMjogZm90LXRzdWt1YXJkZ290aGljLXN0ZCwgc2Fucy1zZXJpZjtcblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGNvbG9yXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuJGJsYWNrOiAjMmUyZTM4O1xuXG4kd2hpdGU6ICNmZmY7XG5cbiRjb2xvci0xOiByZWQ7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDU1MgVHJhbnNpdGlvbiBFYXNpbmdcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEZWZhdWx0XG4kbGluZWFyOiBjdWJpYy1iZXppZXIoLjI1MCwgLjI1MCwgLjc1MCwgLjc1MCk7XG4kZWFzZTogY3ViaWMtYmV6aWVyKC4yNTAsIC4xMDAsIC4yNTAsIDEuMDAwKTtcbiRlYXNlLWluOiBjdWJpYy1iZXppZXIoLjQyMCwgLjAwMCwgMS4wMDAsIDEuMDAwKTtcbiRlYXNlLW91dDogY3ViaWMtYmV6aWVyKC4wMDAsIC4wMDAsIC41ODAsIDEuMDAwKTtcbiRlYXNlLWluLW91dDogY3ViaWMtYmV6aWVyKC40MjAsIC4wMDAsIC41ODAsIDEuMDAwKTtcbi8vIEluXG4kZWFzZUluUXVhZDogY3ViaWMtYmV6aWVyKC41NTAsIC4wODUsIC42ODAsIC41MzApO1xuJGVhc2VJbkN1YmljOiBjdWJpYy1iZXppZXIoLjU1MCwgLjA1NSwgLjY3NSwgLjE5MCk7XG4kZWFzZUluUXVhcnQ6IGN1YmljLWJlemllciguODk1LCAuMDMwLCAuNjg1LCAuMjIwKTtcbiRlYXNlSW5RdWludDogY3ViaWMtYmV6aWVyKC43NTUsIC4wNTAsIC44NTUsIC4wNjApO1xuJGVhc2VJblNpbmU6IGN1YmljLWJlemllciguNDcwLCAuMDAwLCAuNzQ1LCAuNzE1KTtcbiRlYXNlSW5FeHBvOiBjdWJpYy1iZXppZXIoLjk1MCwgLjA1MCwgLjc5NSwgLjAzNSk7XG4kZWFzZUluQ2lyYzogY3ViaWMtYmV6aWVyKC42MDAsIC4wNDAsIC45ODAsIC4zMzUpO1xuJGVhc2VJbkJhY2s6IGN1YmljLWJlemllciguNjAwLCAtLjI4MCwgLjczNSwgLjA0NSk7XG4vLyBPdXRcbiRlYXNlT3V0UXVhZDogY3ViaWMtYmV6aWVyKC4yNTAsIC40NjAsIC40NTAsIC45NDApO1xuJGVhc2VPdXRDdWJpYzogY3ViaWMtYmV6aWVyKC4yMTUsIC42MTAsIC4zNTUsIDEuMDAwKTtcbiRlYXNlT3V0UXVhcnQ6IGN1YmljLWJlemllciguMTY1LCAuODQwLCAuNDQwLCAxLjAwMCk7XG4kZWFzZU91dFF1aW50OiBjdWJpYy1iZXppZXIoLjIzMCwgMS4wMDAsIC4zMjAsIDEuMDAwKTtcbiRlYXNlT3V0U2luZTogY3ViaWMtYmV6aWVyKC4zOTAsIC41NzUsIC41NjUsIDEuMDAwKTtcbiRlYXNlT3V0RXhwbzogY3ViaWMtYmV6aWVyKC4xOTAsIDEuMDAwLCAuMjIwLCAxLjAwMCk7XG4kZWFzZU91dENpcmM6IGN1YmljLWJlemllciguMDc1LCAuODIwLCAuMTY1LCAxLjAwMCk7XG4kZWFzZU91dEJhY2s6IGN1YmljLWJlemllciguMTc1LCAuODg1LCAuMzIwLCAxLjI3NSk7XG4vLyBJbiBPdXRcbiRlYXNlSW5PdXRRdWFkOiBjdWJpYy1iZXppZXIoLjQ1NSwgLjAzMCwgLjUxNSwgLjk1NSk7XG4kZWFzZUluT3V0Q3ViaWM6IGN1YmljLWJlemllciguNjQ1LCAuMDQ1LCAuMzU1LCAxLjAwMCk7XG4kZWFzZUluT3V0UXVhcnQ6IGN1YmljLWJlemllciguNzcwLCAuMDAwLCAuMTc1LCAxLjAwMCk7XG4kZWFzZUluT3V0UXVpbnQ6IGN1YmljLWJlemllciguODYwLCAuMDAwLCAuMDcwLCAxLjAwMCk7XG4kZWFzZUluT3V0U2luZTogY3ViaWMtYmV6aWVyKC40NDUsIC4wNTAsIC41NTAsIC45NTApO1xuJGVhc2VJbk91dEV4cG86IGN1YmljLWJlemllcigxLjAwMCwgLjAwMCwgLjAwMCwgMS4wMDApO1xuJGVhc2VJbk91dENpcmM6IGN1YmljLWJlemllciguNzg1LCAuMTM1LCAuMTUwLCAuODYwKTtcbiRlYXNlSW5PdXRCYWNrOiBjdWJpYy1iZXppZXIoLjY4MCwgLS41NTAsIC4yNjUsIDEuNTUwKTtcblxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIG1peGluXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGNsZWFyZml4XG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQG1peGluIGNmIHtcbiAgJjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gc2FmZS1hcmVhXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQG1peGluIHNhZmUtYXJlYSB7XG4gIHBhZGRpbmctdG9wOiBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtdG9wKTtcbiAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcbiAgcGFkZGluZy1yaWdodDogY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KTtcbiAgcGFkZGluZy1yaWdodDogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XG4gIHBhZGRpbmctYm90dG9tOiBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcbiAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcbiAgcGFkZGluZy1sZWZ0OiBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtbGVmdCk7XG4gIHBhZGRpbmctbGVmdDogZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KTtcbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGHjgr/jgrDjga7jgqvjg6njg7zlpInmm7Rcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gYS10YWcoJGNvbG9yMSwgJGNvbG9yMikge1xuICAmOmxpbmssXG4gICY6YWN0aXZlLFxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkY29sb3IxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNvbG9yMjtcbiAgfVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8g44OX44Os44O844K544Ob44Or44OA44O844Gu44Kr44Op44O85aSJ5pu0XG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQG1peGluIHBsYWNlaG9sZGVyKCRjb2xvcikge1xuICAmOnBsYWNlaG9sZGVyLXNob3duIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbiAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBtZWRpYSBxdWVyeVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBtaXhpbiBtcSgkbWluLXdpZHRoLCAkbWF4LXdpZHRoKSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtaW4td2lkdGggKyBweCkgYW5kIChtYXgtd2lkdGg6ICRtYXgtd2lkdGggKyBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5AbWl4aW4gbXEtbWluKCR3aWR0aCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkd2lkdGggKyBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5AbWl4aW4gbXEtbWF4KCR3aWR0aCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkd2lkdGggKyBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGRldmljZVxuQG1peGluIHBjIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHBjLWJwKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbkBtaXhpbiBzcCB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRzcC1icCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5AbWl4aW4gdGFiIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHNwLWJwICsgMXB4KSBhbmQgKG1heC13aWR0aDogJHBjLWJwIC0gMXB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbkBtaXhpbiBwYy10YWIge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkc3AtYnAgKyAxcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuQG1peGluIHNwLXRhYiB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRwYy1icCAtIDFweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5AbWl4aW4gcGMtY29udGVudCB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRwYy1icCkgYW5kIChtYXgtd2lkdGg6ICRjb250ZW50LXdpZHRoKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGNzcyBoYWNrXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ2hyb21lKGFuZCBTYWZhcmksIE9wZXJhKVxuQG1peGluIGNocm9tZSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4vLyBGaXJlRm94XG5AbWl4aW4gZmlyZWZveCB7XG4gIC06bGFuZyh4KTo6LW1vei1wbGFjZWhvbGRlcixcbiAgJiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbi8vIEVkZ2VcbkBtaXhpbiBlZGdlIHtcbiAgLTpsYW5nKHgpOjotbXMtLFxuICAmIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuLy8gSUUoMTEpXG5AbWl4aW4gaWUge1xuICAtOi1tcy1sYW5nKHgpOjotbXMtYmFja2Ryb3AsXG4gICYge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4vLyBTYWZhcmlcbkBtaXhpbiBzYWZhcmkge1xuICAtOmxhbmcoeCkgKyAtOi13ZWJraXQtZnVsbC1zY3JlZW4tZG9jdW1lbnQsXG4gICYge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBvYmplY3QgZml0IGltYWdlc1xuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBtaXhpbiBvZmkoJHNpemUpIHtcbiAgb2JqZWN0LWZpdDogJHNpemU7XG5cbiAgQGluY2x1ZGUgaWUge1xuICAgIGZvbnQtZmFtaWx5OiBcIm9iamVjdC1maXQ6ICN7JHNpemV9O1wiO1xuICB9XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBoaWRlIHNjcm9sbGJhclxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBtaXhpbiBoaWRlLXNjcm9sbGJhciB7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQHVzZSBcInNldHRpbmdcIiBhcyAqO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gdXRpbGl0eVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBjbGVhcmZpeFxuLnUtY2Yge1xuICBAaW5jbHVkZSBjZjtcbn1cblxuLy8gcGPjg7tzcCDlh7rjgZfliIbjgZHvvIhtZWRpYS1xdWVyeeOBr+OCteOCpOODiOOBruS7leanmOOBq+WQiOOCj+OBm+OBpuWkieabtOOBmeOCi+OBk+OBqO+8iVxuQGluY2x1ZGUgcGMtdGFiIHtcbiAgLnUtcGMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICYtaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuICAgICYtaWIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAmLWYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gICAgJi1pZiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG4gIH1cbiAgLnUtc3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgJi1pLFxuICAgICYtaWIsXG4gICAgJi1mLFxuICAgICYtaWYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgc3Age1xuICAudS1wYyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAmLWksXG4gICAgJi1pYixcbiAgICAmLWYsXG4gICAgJi1pZiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAudS1zcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgJi1pIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gICAgJi1pYiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgICYtZiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgICAmLWlmIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cbiAgfVxufVxuXG4udS1pYiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gY29udGVudC1zaXplXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51LWNvbnRlbnQtc2l6ZSB7XG4gIHBhZGRpbmc6IDAgJHNwLXNpZGUtcGFkZGluZztcblxuICBAaW5jbHVkZSBwYy10YWIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6ICRjb250ZW50LXdpZHRoO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIHRleHRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnUtdGV4dC0xMiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE5LjJweDtcbn1cblxuLnUtdGV4dC0xMi0xMCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE5LjJweDtcblxuICBAaW5jbHVkZSBzcCB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICB9XG59XG5cbi51LXRleHQtMTQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOC44cHg7XG59XG5cbi51LXRleHQtMTQtMTIge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOC44cHg7XG5cbiAgQGluY2x1ZGUgc3Age1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTkuMnB4O1xuICB9XG59XG5cbi51LXRleHQtMTYge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOC44cHg7XG59XG5cbi51LXRleHQtMTYtMTQge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOC44cHg7XG5cbiAgQGluY2x1ZGUgc3Age1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjIuNHB4O1xuICB9XG59XG5cbi51LXRleHQtMTgge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiB0ZXh0IHdlaWdodFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udS1saWdodGVyIHtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG59XG5cbi51LWJvbGQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gdGV4dCBhbGlnblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udS10YS1jIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udS10YS1yIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi51LXRhLWNsIHtcbiAgQGluY2x1ZGUgc3Age1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4udS10YS1sYyB7XG4gIEBpbmNsdWRlIHBjLXRhYiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi51LXRhLWNyIHtcbiAgQGluY2x1ZGUgc3Age1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBAaW5jbHVkZSBwYy10YWIge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi51LXRhLXJjIHtcbiAgQGluY2x1ZGUgc3Age1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIEBpbmNsdWRlIHBjLXRhYiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIHBhcmFncmFwaCBtYXJnaW5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnUtcGFyYWdyYXBoIHtcbiAgJiArICYge1xuICAgIG1hcmdpbjogMTVweCAwIDA7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gaG92ZXIgYW5pbWF0aW9uXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51LWhvdmVyLTEge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcztcblxuICBAaW5jbHVkZSBwYyB7XG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuNztcbiAgICB9XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gZm9udCBmYW1pbHlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnUtZmYtMSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC0xO1xufVxuXG4udS1mZi0yIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LTI7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIGZsZXhcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnUtZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4udS1hbGlnbi1jIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51LWp1c3RpZnktYyB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnUtc2hyaW5rLTAge1xuICBmbGV4LXNocmluazogMDtcbn1cbiJdfQ== */
