/*!*******************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/styles/app.css ***!
  \*******************************************************************************************************************************************************************/
*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: Inter, system-ui, sans-serif; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
    html {
        scroll-behavior: smooth;
    }

    /* Transition fade (Vue) */
    .fade-enter-active, .fade-leave-active { transition: opacity 0.25s, transform 0.25s; }
    .fade-enter-from, .fade-leave-to       { opacity: 0; transform: translateY(-4px); }

    /* Scrollbar personnalisée */
    ::-webkit-scrollbar { width: 6px; }
    ::-webkit-scrollbar-track { background: #111827; }
    ::-webkit-scrollbar-thumb { background: #374151; border-radius: 3px; }
    ::-webkit-scrollbar-thumb:hover { background: #4b5563; }
/* Boutons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.btn:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #111827;
}
.btn:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.btn-primary:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #111827;
}
.btn-primary:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.btn-primary {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.btn-primary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}
.btn-primary:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.btn-secondary:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #111827;
}
.btn-secondary:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.btn-secondary {
  --tw-bg-opacity: 1;
  background-color: rgb(30 58 138 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}
.btn-secondary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}
.btn-secondary:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(29 78 216 / var(--tw-ring-opacity, 1));
}
.btn-danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.btn-danger:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #111827;
}
.btn-danger:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.btn-danger {
  --tw-bg-opacity: 1;
  background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.btn-danger:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
.btn-danger:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1));
}
.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.btn-ghost:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #111827;
}
.btn-ghost:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.btn-ghost {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.btn-ghost:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(30 58 138 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}
/* Inputs */
.input {
  width: 100%;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(29 78 216 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(30 45 107 / var(--tw-bg-opacity, 1));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(243 244 246 / var(--tw-text-opacity, 1));
}
.input::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1));
}
.input::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1));
}
.input {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.input:focus {
  border-color: transparent;
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}
.label {
  margin-bottom: 0.25rem;
  display: block;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}
.form-error {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}
/* Cards */
.card {
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(29 78 216 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(30 45 107 / var(--tw-bg-opacity, 1));
  padding: 1rem;
}
.card-header {
  margin-bottom: 0.75rem;
  font-size: 1.125rem;
  line-height: 1.75rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(243 244 246 / var(--tw-text-opacity, 1));
}
/* Badges de type */
.type-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 0.25rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.025em;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none {
  pointer-events: none;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.inset-0 {
  inset: 0px;
}
.-right-2 {
  right: -0.5rem;
}
.-top-1 {
  top: -0.25rem;
}
.bottom-6 {
  bottom: 1.5rem;
}
.left-0 {
  left: 0px;
}
.left-1\/2 {
  left: 50%;
}
.left-3 {
  left: 0.75rem;
}
.right-0 {
  right: 0px;
}
.right-3 {
  right: 0.75rem;
}
.right-6 {
  right: 1.5rem;
}
.top-0 {
  top: 0px;
}
.top-1\/2 {
  top: 50%;
}
.top-full {
  top: 100%;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-30 {
  z-index: 30;
}
.z-50 {
  z-index: 50;
}
.col-span-3 {
  grid-column: span 3 / span 3;
}
.-mx-4 {
  margin-left: -1rem;
  margin-right: -1rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.-mb-4 {
  margin-bottom: -1rem;
}
.mb-0 {
  margin-bottom: 0px;
}
.mb-0\.5 {
  margin-bottom: 0.125rem;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-5 {
  margin-bottom: 1.25rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.ml-0\.5 {
  margin-left: 0.125rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-auto {
  margin-left: auto;
}
.mr-1 {
  margin-right: 0.25rem;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.block {
  display: block;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.h-1 {
  height: 0.25rem;
}
.h-10 {
  height: 2.5rem;
}
.h-12 {
  height: 3rem;
}
.h-16 {
  height: 4rem;
}
.h-2 {
  height: 0.5rem;
}
.h-20 {
  height: 5rem;
}
.h-3\.5 {
  height: 0.875rem;
}
.h-32 {
  height: 8rem;
}
.h-4 {
  height: 1rem;
}
.h-48 {
  height: 12rem;
}
.h-5 {
  height: 1.25rem;
}
.h-6 {
  height: 1.5rem;
}
.h-8 {
  height: 2rem;
}
.h-9 {
  height: 2.25rem;
}
.h-\[1\.1rem\] {
  height: 1.1rem;
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.max-h-48 {
  max-height: 12rem;
}
.max-h-96 {
  max-height: 24rem;
}
.min-h-screen {
  min-height: 100vh;
}
.w-10 {
  width: 2.5rem;
}
.w-12 {
  width: 3rem;
}
.w-14 {
  width: 3.5rem;
}
.w-16 {
  width: 4rem;
}
.w-20 {
  width: 5rem;
}
.w-3\.5 {
  width: 0.875rem;
}
.w-32 {
  width: 8rem;
}
.w-36 {
  width: 9rem;
}
.w-4 {
  width: 1rem;
}
.w-48 {
  width: 12rem;
}
.w-5 {
  width: 1.25rem;
}
.w-56 {
  width: 14rem;
}
.w-6 {
  width: 1.5rem;
}
.w-8 {
  width: 2rem;
}
.w-9 {
  width: 2.25rem;
}
.w-auto {
  width: auto;
}
.w-full {
  width: 100%;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-48 {
  min-width: 12rem;
}
.min-w-\[1\.1rem\] {
  min-width: 1.1rem;
}
.max-w-2xl {
  max-width: 42rem;
}
.max-w-7xl {
  max-width: 80rem;
}
.max-w-lg {
  max-width: 32rem;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-sm {
  max-width: 24rem;
}
.max-w-xs {
  max-width: 20rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.shrink-0 {
  flex-shrink: 0;
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.cursor-not-allowed {
  cursor: not-allowed;
}
.cursor-pointer {
  cursor: pointer;
}
.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.list-inside {
  list-style-position: inside;
}
.list-disc {
  list-style-type: disc;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-\[auto_1fr_1fr_1fr\] {
  grid-template-columns: auto 1fr 1fr 1fr;
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.justify-start {
  justify-content: flex-start;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.gap-0\.5 {
  gap: 0.125rem;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-x-2 {
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.gap-x-3 {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.break-words {
  overflow-wrap: break-word;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-2xl {
  border-radius: 1rem;
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.rounded-xl {
  border-radius: 0.75rem;
}
.rounded-b-xl {
  border-bottom-right-radius: 0.75rem;
  border-bottom-left-radius: 0.75rem;
}
.rounded-t-2xl {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}
.rounded-bl-sm {
  border-bottom-left-radius: 0.125rem;
}
.rounded-br-sm {
  border-bottom-right-radius: 0.125rem;
}
.border {
  border-width: 1px;
}
.border-2 {
  border-width: 2px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-t {
  border-top-width: 1px;
}
.border-dashed {
  border-style: dashed;
}
.border-blue-700\/50 {
  border-color: rgb(29 78 216 / 0.5);
}
.border-blue-700\/60 {
  border-color: rgb(29 78 216 / 0.6);
}
.border-green-600 {
  --tw-border-opacity: 1;
  border-color: rgb(22 163 74 / var(--tw-border-opacity, 1));
}
.border-luma {
  --tw-border-opacity: 1;
  border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
}
.border-luma\/40 {
  border-color: rgb(245 158 11 / 0.4);
}
.border-luma\/60 {
  border-color: rgb(245 158 11 / 0.6);
}
.border-red-700 {
  --tw-border-opacity: 1;
  border-color: rgb(185 28 28 / var(--tw-border-opacity, 1));
}
.border-temtem-400 {
  --tw-border-opacity: 1;
  border-color: rgb(88 166 255 / var(--tw-border-opacity, 1));
}
.border-temtem-500 {
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.border-temtem-600 {
  --tw-border-opacity: 1;
  border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));
}
.border-temtem-700 {
  --tw-border-opacity: 1;
  border-color: rgb(29 78 216 / var(--tw-border-opacity, 1));
}
.border-temtem-800 {
  --tw-border-opacity: 1;
  border-color: rgb(30 58 138 / var(--tw-border-opacity, 1));
}
.border-yellow-700 {
  --tw-border-opacity: 1;
  border-color: rgb(161 98 7 / var(--tw-border-opacity, 1));
}
.border-yellow-700\/50 {
  border-color: rgb(161 98 7 / 0.5);
}
.border-yellow-700\/60 {
  border-color: rgb(161 98 7 / 0.6);
}
.bg-amber-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(180 83 9 / var(--tw-bg-opacity, 1));
}
.bg-black\/60 {
  background-color: rgb(0 0 0 / 0.6);
}
.bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}
.bg-blue-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}
.bg-blue-900\/70 {
  background-color: rgb(30 58 138 / 0.7);
}
.bg-cyan-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(14 116 144 / var(--tw-bg-opacity, 1));
}
.bg-gray-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
}
.bg-green-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}
.bg-green-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
}
.bg-green-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(22 101 52 / var(--tw-bg-opacity, 1));
}
.bg-indigo-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(67 56 202 / var(--tw-bg-opacity, 1));
}
.bg-lime-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(77 124 15 / var(--tw-bg-opacity, 1));
}
.bg-luma {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}
.bg-luma\/20 {
  background-color: rgb(245 158 11 / 0.2);
}
.bg-orange-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(194 65 12 / var(--tw-bg-opacity, 1));
}
.bg-purple-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(126 34 206 / var(--tw-bg-opacity, 1));
}
.bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.bg-red-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
}
.bg-red-900\/40 {
  background-color: rgb(127 29 29 / 0.4);
}
.bg-red-900\/50 {
  background-color: rgb(127 29 29 / 0.5);
}
.bg-sky-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1));
}
.bg-slate-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1));
}
.bg-temtem-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}
.bg-temtem-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.bg-temtem-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}
.bg-temtem-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 58 138 / var(--tw-bg-opacity, 1));
}
.bg-temtem-800\/50 {
  background-color: rgb(30 58 138 / 0.5);
}
.bg-temtem-800\/60 {
  background-color: rgb(30 58 138 / 0.6);
}
.bg-temtem-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 45 107 / var(--tw-bg-opacity, 1));
}
.bg-temtem-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
}
.bg-yellow-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));
}
.bg-yellow-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));
}
.bg-yellow-900\/30 {
  background-color: rgb(113 63 18 / 0.3);
}
.bg-yellow-900\/70 {
  background-color: rgb(113 63 18 / 0.7);
}
.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}
.p-0 {
  padding: 0px;
}
.p-2 {
  padding: 0.5rem;
}
.p-3 {
  padding: 0.75rem;
}
.p-4 {
  padding: 1rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-8 {
  padding: 2rem;
}
.px-0\.5 {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.pb-3 {
  padding-bottom: 0.75rem;
}
.pl-9 {
  padding-left: 2.25rem;
}
.pr-1 {
  padding-right: 0.25rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.font-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.font-sans {
  font-family: Inter, system-ui, sans-serif;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-5xl {
  font-size: 3rem;
  line-height: 1;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[9px\] {
  font-size: 9px;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold {
  font-weight: 700;
}
.font-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.leading-none {
  line-height: 1;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.text-amber-100 {
  --tw-text-opacity: 1;
  color: rgb(254 243 199 / var(--tw-text-opacity, 1));
}
.text-blue-100 {
  --tw-text-opacity: 1;
  color: rgb(219 234 254 / var(--tw-text-opacity, 1));
}
.text-blue-300 {
  --tw-text-opacity: 1;
  color: rgb(147 197 253 / var(--tw-text-opacity, 1));
}
.text-cyan-100 {
  --tw-text-opacity: 1;
  color: rgb(207 250 254 / var(--tw-text-opacity, 1));
}
.text-gray-100 {
  --tw-text-opacity: 1;
  color: rgb(243 244 246 / var(--tw-text-opacity, 1));
}
.text-gray-200 {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}
.text-gray-300 {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}
.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.text-green-100 {
  --tw-text-opacity: 1;
  color: rgb(220 252 231 / var(--tw-text-opacity, 1));
}
.text-green-200 {
  --tw-text-opacity: 1;
  color: rgb(187 247 208 / var(--tw-text-opacity, 1));
}
.text-green-400 {
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}
.text-green-500 {
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}
.text-indigo-100 {
  --tw-text-opacity: 1;
  color: rgb(224 231 255 / var(--tw-text-opacity, 1));
}
.text-indigo-400 {
  --tw-text-opacity: 1;
  color: rgb(129 140 248 / var(--tw-text-opacity, 1));
}
.text-lime-100 {
  --tw-text-opacity: 1;
  color: rgb(236 252 203 / var(--tw-text-opacity, 1));
}
.text-luma {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}
.text-orange-100 {
  --tw-text-opacity: 1;
  color: rgb(255 237 213 / var(--tw-text-opacity, 1));
}
.text-purple-100 {
  --tw-text-opacity: 1;
  color: rgb(243 232 255 / var(--tw-text-opacity, 1));
}
.text-purple-400 {
  --tw-text-opacity: 1;
  color: rgb(192 132 252 / var(--tw-text-opacity, 1));
}
.text-red-100 {
  --tw-text-opacity: 1;
  color: rgb(254 226 226 / var(--tw-text-opacity, 1));
}
.text-red-300 {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}
.text-red-400 {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}
.text-sky-100 {
  --tw-text-opacity: 1;
  color: rgb(224 242 254 / var(--tw-text-opacity, 1));
}
.text-slate-100 {
  --tw-text-opacity: 1;
  color: rgb(241 245 249 / var(--tw-text-opacity, 1));
}
.text-temtem-300 {
  --tw-text-opacity: 1;
  color: rgb(142 198 255 / var(--tw-text-opacity, 1));
}
.text-temtem-400 {
  --tw-text-opacity: 1;
  color: rgb(88 166 255 / var(--tw-text-opacity, 1));
}
.text-temtem-500 {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.text-temtem-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.text-temtem-800 {
  --tw-text-opacity: 1;
  color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}
.text-temtem-950 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-yellow-100 {
  --tw-text-opacity: 1;
  color: rgb(254 249 195 / var(--tw-text-opacity, 1));
}
.text-yellow-300 {
  --tw-text-opacity: 1;
  color: rgb(253 224 71 / var(--tw-text-opacity, 1));
}
.text-yellow-400 {
  --tw-text-opacity: 1;
  color: rgb(250 204 21 / var(--tw-text-opacity, 1));
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.accent-luma {
  accent-color: #f59e0b;
}
.accent-temtem-500 {
  accent-color: #3b82f6;
}
.opacity-0 {
  opacity: 0;
}
.opacity-40 {
  opacity: 0.4;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-60 {
  opacity: 0.6;
}
.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.hover\:border-temtem-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(88 166 255 / var(--tw-border-opacity, 1));
}
.hover\:border-temtem-500:hover {
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.hover\:bg-temtem-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.hover\:bg-temtem-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}
.hover\:bg-temtem-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(30 58 138 / var(--tw-bg-opacity, 1));
}
.hover\:text-gray-100:hover {
  --tw-text-opacity: 1;
  color: rgb(243 244 246 / var(--tw-text-opacity, 1));
}
.hover\:text-gray-200:hover {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}
.hover\:text-red-300:hover {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}
.hover\:text-temtem-300:hover {
  --tw-text-opacity: 1;
  color: rgb(142 198 255 / var(--tw-text-opacity, 1));
}
.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.focus\:border-temtem-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.active\:scale-95:active {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}
.disabled\:opacity-40:disabled {
  opacity: 0.4;
}
.disabled\:opacity-50:disabled {
  opacity: 0.5;
}
.group:hover .group-hover\:text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}
@media (min-width: 640px) {

  .sm\:block {
    display: block;
  }

  .sm\:inline {
    display: inline;
  }

  .sm\:hidden {
    display: none;
  }

  .sm\:max-w-md {
    max-width: 28rem;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:items-center {
    align-items: center;
  }

  .sm\:rounded-2xl {
    border-radius: 1rem;
  }

  .sm\:border {
    border-width: 1px;
  }

  .sm\:p-4 {
    padding: 1rem;
  }

  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}
@media (min-width: 768px) {

  .md\:flex {
    display: flex;
  }

  .md\:hidden {
    display: none;
  }
}
@media (min-width: 1024px) {

  .lg\:max-w-sm {
    max-width: 24rem;
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
@media (min-width: 1280px) {

  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/*!*****************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/tf-icons.css ***!
  \*****************************************************************************************************************************************************************/
@font-face {
  font-family: 'temtemfrance';
  src: url('/fonts/temtemfrance.woff') format('woff'),
       url('/fonts/temtemfrance.ttf')  format('truetype'),
       url('/fonts/temtemfrance.svg#temtemfrance') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="tf-"], [class*=" tf-"] {
  font-family: 'temtemfrance' !important;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: middle;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.tf-my-temcard:before          { content: "\e91d"; }
.tf-classement-temtem:before   { content: "\e91c"; }
.tf-vitesse:before             { content: "\e91b"; }
.tf-antre-pansoleil:before     { content: "\e91a"; }
.tf-umbra:before               { content: "\e919"; }
.tf-antre-lac-sacre:before     { content: "\e918"; }
.tf-antre-anak:before          { content: "\e917"; }
.tf-showdown:before            { content: "\e916"; }
.tf-kudos:before               { content: "\e915"; }
.tf-stickers:before            { content: "\e914"; }
.tf-competitive-dps:before     { content: "\e910"; }
.tf-competitive-flex:before    { content: "\e911"; }
.tf-competitive-support:before { content: "\e912"; }
.tf-competitive-tank:before    { content: "\e913"; }
.tf-libertem:before            { content: "\e900"; }
.tf-tierlist:before            { content: "\e901"; }
.tf-map:before                 { content: "\e902"; }
.tf-competitive:before         { content: "\e903"; }
.tf-eggmove:before             { content: "\e904"; }
.tf-temcard:before             { content: "\e905"; }
.tf-bagitems:before            { content: "\e906"; }
.tf-club:before                { content: "\e907"; }
.tf-pansol:before              { content: "\e908"; }
.tf-houses:before              { content: "\e909"; }
.tf-quest:before               { content: "\e90a"; }
.tf-tempedia:before            { content: "\e90b"; }
.tf-luma:before                { content: "\e90c"; }
.tf-temparchment:before        { content: "\e90d"; }
.tf-actualite:before           { content: "\e90e"; }
.tf-combat:before              { content: "\e90f"; }

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/Pages/Account/Index.vue?vue&type=style&index=0&id=4e3dee07&scoped=true&lang=css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.fade-enter-active[data-v-4e3dee07], .fade-leave-active[data-v-4e3dee07] { transition: opacity .3s;
}
.fade-enter-from[data-v-4e3dee07], .fade-leave-to[data-v-4e3dee07] { opacity: 0;
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/Components/TemtemImage.vue?vue&type=style&index=0&id=2cabe3b0&scoped=true&lang=css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.pixelated[data-v-2cabe3b0] {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/Pages/Breeding/Matchmaking.vue?vue&type=style&index=0&id=011fbb88&scoped=true&lang=css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.sheet-enter-active[data-v-011fbb88],
.sheet-leave-active[data-v-011fbb88] {
  transition: opacity 0.2s ease;
}
.sheet-enter-active .relative[data-v-011fbb88],
.sheet-leave-active .relative[data-v-011fbb88] {
  transition: transform 0.25s cubic-bezier(0.32, 0.72, 0, 1);
}
.sheet-enter-from[data-v-011fbb88],
.sheet-leave-to[data-v-011fbb88] {
  opacity: 0;
}
@media (max-width: 639px) {
.sheet-enter-from .relative[data-v-011fbb88],
  .sheet-leave-to .relative[data-v-011fbb88] {
    transform: translateY(100%);
}
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/Pages/Temtem/Form.vue?vue&type=style&index=0&id=1082c50a&scoped=true&lang=css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.slide-enter-active[data-v-1082c50a], .slide-leave-active[data-v-1082c50a] { transition: all .2s ease;
}
.slide-enter-from[data-v-1082c50a], .slide-leave-to[data-v-1082c50a] { opacity: 0; transform: translateY(-8px);
}
.fade-enter-active[data-v-1082c50a], .fade-leave-active[data-v-1082c50a] { transition: opacity .2s;
}
.fade-enter-from[data-v-1082c50a], .fade-leave-to[data-v-1082c50a] { opacity: 0;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSx5QkFBbUI7S0FBbkIsc0JBQW1CO1VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7T0FBbkI7QUFBbUI7QUFBbkI7RUFBQSx3QkFBbUI7T0FBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQixnRUFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsK0RBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLDhEQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHVCQUFtQjtFQUFuQiwrREFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkIsNERBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CLDhEQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGdCQUFtQjtFQUFuQix1QkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxtQ0FBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSw0QkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0tBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEscUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEscUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEscUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEscUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsaUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsaUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEscUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsaUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsaUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLGVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGVBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLG1DQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGdGQUFtQjtFQUFuQixvR0FBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLDZCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLHdKQUFtQjtFQUFuQix3REFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSx3QkFBbUI7RUFBbkIsd0RBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsK0ZBQW1CO0VBQW5CLHdEQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBLDRCQUFtQjtFQUFuQix3REFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUZuQjtFQUFBLHNCQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLHNCQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLGtCQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLGtCQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLGtCQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLG9CQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLG9CQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLG9CQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLG9CQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLG9CQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLHNCQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLDhCQThEQTtFQTlEQTtBQThEQTtBQTlEQTtFQUFBLGlCQThEQTtFQTlEQSxpQkE4REE7RUE5REE7QUE4REE7QUE5REE7RUFBQTtBQThEQTtBQTlEQTtFQUFBO0FBOERBO0FBOURBO0VBQUE7QUE4REE7QUE5REE7RUFBQSxvQkE4REE7RUE5REE7QUE4REE7QUE5REE7RUFBQTtBQThEQTtBQTlEQTs7RUFBQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBLG9CQThEQTtJQTlEQTtFQThEQTtBQUFBO0FBOURBOztFQUFBO0lBQUE7RUE4REE7O0VBOURBO0lBQUE7RUE4REE7QUFBQTtBQTlEQTs7RUFBQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBO0VBOERBOztFQTlEQTtJQUFBLGtCQThEQTtJQTlEQTtFQThEQTtBQUFBO0FBOURBOztFQUFBO0lBQUE7RUE4REE7QUFBQTs7Ozs7QUM5REE7RUFDRSwyQkFBMkI7RUFDM0I7O2dFQUU4RDtFQUM5RCxtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLHNDQUFzQztFQUN0QyxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixtQ0FBbUM7RUFDbkMsa0NBQWtDO0FBQ3BDOztBQUVBLGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFO0FBQ25ELGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFO0FBQ25ELGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFO0FBQ25ELGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFO0FBQ25ELGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFO0FBQ25ELGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFO0FBQ25ELGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFO0FBQ25ELGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFO0FBQ25ELGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFO0FBQ25ELGlDQUFpQyxnQkFBZ0IsRUFBRTtBQUNuRCxpQ0FBaUMsZ0JBQWdCLEVBQUU7QUFDbkQsaUNBQWlDLGdCQUFnQixFQUFFOzs7Ozs7QUNzTm5ELDJFQUF5Qyx1QkFBdUI7QUFBRTtBQUNsRSxxRUFBbUMsVUFBVTtBQUFFOzs7Ozs7QUNoTS9DO0VBQ0UsMEJBQTBCO0VBQzFCLDRCQUE0QjtBQUM5Qjs7Ozs7O0FDOExBOztFQUVFLDZCQUE2QjtBQUMvQjtBQUNBOztFQUVFLDBEQUEwRDtBQUM1RDtBQUNBOztFQUVFLFVBQVU7QUFDWjtBQUNBO0FBQ0U7O0lBRUUsMkJBQTJCO0FBQzdCO0FBQ0Y7Ozs7OztBQ3JCQSw2RUFBMkMsd0JBQXdCO0FBQUU7QUFDckUsdUVBQXFDLFVBQVUsRUFBRSwyQkFBMkI7QUFBRTtBQUM5RSwyRUFBeUMsdUJBQXVCO0FBQUU7QUFDbEUscUVBQW1DLFVBQVU7QUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYXBwLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdGYtaWNvbnMuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9QYWdlcy9BY2NvdW50L0luZGV4LnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvQ29tcG9uZW50cy9UZW10ZW1JbWFnZS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL1BhZ2VzL0JyZWVkaW5nL01hdGNobWFraW5nLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvUGFnZXMvVGVtdGVtL0Zvcm0udnVlIl0sInNvdXJjZXNDb250ZW50IjpbIkB0YWlsd2luZCBiYXNlO1xuQHRhaWx3aW5kIGNvbXBvbmVudHM7XG5AdGFpbHdpbmQgdXRpbGl0aWVzO1xuXG5AbGF5ZXIgYmFzZSB7XG4gICAgaHRtbCB7XG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgIH1cblxuICAgIC8qIFRyYW5zaXRpb24gZmFkZSAoVnVlKSAqL1xuICAgIC5mYWRlLWVudGVyLWFjdGl2ZSwgLmZhZGUtbGVhdmUtYWN0aXZlIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cywgdHJhbnNmb3JtIDAuMjVzOyB9XG4gICAgLmZhZGUtZW50ZXItZnJvbSwgLmZhZGUtbGVhdmUtdG8gICAgICAgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7IH1cblxuICAgIC8qIFNjcm9sbGJhciBwZXJzb25uYWxpc8OpZSAqL1xuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogNnB4OyB9XG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6ICMxMTE4Mjc7IH1cbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogIzM3NDE1MTsgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7IGJhY2tncm91bmQ6ICM0YjU1NjM7IH1cbn1cblxuQGxheWVyIGNvbXBvbmVudHMge1xuICAgIC8qIEJvdXRvbnMgKi9cbiAgICAuYnRuIHtcbiAgICAgICAgQGFwcGx5IGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiBweC00IHB5LTIgcm91bmRlZC1sZyBmb250LW1lZGl1bSB0ZXh0LXNtIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTE1MCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1vZmZzZXQtdGVtdGVtLTk1MCBkaXNhYmxlZDpvcGFjaXR5LTUwIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZDtcbiAgICB9XG4gICAgLmJ0bi1wcmltYXJ5IHtcbiAgICAgICAgQGFwcGx5IGJ0biBiZy10ZW10ZW0tNjAwIGhvdmVyOmJnLXRlbXRlbS01MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLXRlbXRlbS01MDA7XG4gICAgfVxuICAgIC5idG4tc2Vjb25kYXJ5IHtcbiAgICAgICAgQGFwcGx5IGJ0biBiZy10ZW10ZW0tODAwIGhvdmVyOmJnLXRlbXRlbS03MDAgdGV4dC1ncmF5LTIwMCBmb2N1czpyaW5nLXRlbXRlbS03MDA7XG4gICAgfVxuICAgIC5idG4tZGFuZ2VyIHtcbiAgICAgICAgQGFwcGx5IGJ0biBiZy1yZWQtNzAwIGhvdmVyOmJnLXJlZC02MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLXJlZC01MDA7XG4gICAgfVxuICAgIC5idG4tZ2hvc3Qge1xuICAgICAgICBAYXBwbHkgYnRuIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTIwMCBob3ZlcjpiZy10ZW10ZW0tODAwO1xuICAgIH1cblxuICAgIC8qIElucHV0cyAqL1xuICAgIC5pbnB1dCB7XG4gICAgICAgIEBhcHBseSB3LWZ1bGwgYmctdGVtdGVtLTkwMCBib3JkZXIgYm9yZGVyLXRlbXRlbS03MDAgcm91bmRlZC1sZyBweC0zIHB5LTIgdGV4dC1ncmF5LTEwMCBwbGFjZWhvbGRlci1ncmF5LTUwMCB0ZXh0LXNtIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy10ZW10ZW0tNTAwIGZvY3VzOmJvcmRlci10cmFuc3BhcmVudCB0cmFuc2l0aW9uLWNvbG9ycztcbiAgICB9XG4gICAgLmxhYmVsIHtcbiAgICAgICAgQGFwcGx5IGJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTMwMCBtYi0xO1xuICAgIH1cbiAgICAuZm9ybS1lcnJvciB7XG4gICAgICAgIEBhcHBseSB0ZXh0LXJlZC00MDAgdGV4dC14cyBtdC0xO1xuICAgIH1cblxuICAgIC8qIENhcmRzICovXG4gICAgLmNhcmQge1xuICAgICAgICBAYXBwbHkgYmctdGVtdGVtLTkwMCBib3JkZXIgYm9yZGVyLXRlbXRlbS03MDAgcm91bmRlZC14bCBwLTQ7XG4gICAgfVxuICAgIC5jYXJkLWhlYWRlciB7XG4gICAgICAgIEBhcHBseSB0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTEwMCBtYi0zO1xuICAgIH1cblxuICAgIC8qIEJhZGdlcyBkZSB0eXBlICovXG4gICAgLnR5cGUtYmFkZ2Uge1xuICAgICAgICBAYXBwbHkgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHB4LTIgcHktMC41IHJvdW5kZWQgdGV4dC14cyBmb250LXNlbWlib2xkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlO1xuICAgIH1cbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ3RlbXRlbWZyYW5jZSc7XG4gIHNyYzogdXJsKCcvZm9udHMvdGVtdGVtZnJhbmNlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICB1cmwoJy9mb250cy90ZW10ZW1mcmFuY2UudHRmJykgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICB1cmwoJy9mb250cy90ZW10ZW1mcmFuY2Uuc3ZnI3RlbXRlbWZyYW5jZScpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBibG9jaztcbn1cblxuW2NsYXNzXj1cInRmLVwiXSwgW2NsYXNzKj1cIiB0Zi1cIl0ge1xuICBmb250LWZhbWlseTogJ3RlbXRlbWZyYW5jZScgIWltcG9ydGFudDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLnRmLW15LXRlbWNhcmQ6YmVmb3JlICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MWRcIjsgfVxuLnRmLWNsYXNzZW1lbnQtdGVtdGVtOmJlZm9yZSAgIHsgY29udGVudDogXCJcXGU5MWNcIjsgfVxuLnRmLXZpdGVzc2U6YmVmb3JlICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MWJcIjsgfVxuLnRmLWFudHJlLXBhbnNvbGVpbDpiZWZvcmUgICAgIHsgY29udGVudDogXCJcXGU5MWFcIjsgfVxuLnRmLXVtYnJhOmJlZm9yZSAgICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MTlcIjsgfVxuLnRmLWFudHJlLWxhYy1zYWNyZTpiZWZvcmUgICAgIHsgY29udGVudDogXCJcXGU5MThcIjsgfVxuLnRmLWFudHJlLWFuYWs6YmVmb3JlICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MTdcIjsgfVxuLnRmLXNob3dkb3duOmJlZm9yZSAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MTZcIjsgfVxuLnRmLWt1ZG9zOmJlZm9yZSAgICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MTVcIjsgfVxuLnRmLXN0aWNrZXJzOmJlZm9yZSAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MTRcIjsgfVxuLnRmLWNvbXBldGl0aXZlLWRwczpiZWZvcmUgICAgIHsgY29udGVudDogXCJcXGU5MTBcIjsgfVxuLnRmLWNvbXBldGl0aXZlLWZsZXg6YmVmb3JlICAgIHsgY29udGVudDogXCJcXGU5MTFcIjsgfVxuLnRmLWNvbXBldGl0aXZlLXN1cHBvcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGU5MTJcIjsgfVxuLnRmLWNvbXBldGl0aXZlLXRhbms6YmVmb3JlICAgIHsgY29udGVudDogXCJcXGU5MTNcIjsgfVxuLnRmLWxpYmVydGVtOmJlZm9yZSAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDBcIjsgfVxuLnRmLXRpZXJsaXN0OmJlZm9yZSAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDFcIjsgfVxuLnRmLW1hcDpiZWZvcmUgICAgICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDJcIjsgfVxuLnRmLWNvbXBldGl0aXZlOmJlZm9yZSAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDNcIjsgfVxuLnRmLWVnZ21vdmU6YmVmb3JlICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDRcIjsgfVxuLnRmLXRlbWNhcmQ6YmVmb3JlICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDVcIjsgfVxuLnRmLWJhZ2l0ZW1zOmJlZm9yZSAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDZcIjsgfVxuLnRmLWNsdWI6YmVmb3JlICAgICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDdcIjsgfVxuLnRmLXBhbnNvbDpiZWZvcmUgICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDhcIjsgfVxuLnRmLWhvdXNlczpiZWZvcmUgICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MDlcIjsgfVxuLnRmLXF1ZXN0OmJlZm9yZSAgICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MGFcIjsgfVxuLnRmLXRlbXBlZGlhOmJlZm9yZSAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MGJcIjsgfVxuLnRmLWx1bWE6YmVmb3JlICAgICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MGNcIjsgfVxuLnRmLXRlbXBhcmNobWVudDpiZWZvcmUgICAgICAgIHsgY29udGVudDogXCJcXGU5MGRcIjsgfVxuLnRmLWFjdHVhbGl0ZTpiZWZvcmUgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MGVcIjsgfVxuLnRmLWNvbWJhdDpiZWZvcmUgICAgICAgICAgICAgIHsgY29udGVudDogXCJcXGU5MGZcIjsgfVxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwibWF4LXctMnhsIG14LWF1dG8gc3BhY2UteS02XCI+XG5cbiAgICA8aDEgY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC13aGl0ZVwiPnt7IHQoJ2FjY291bnQudGl0bGUnKSB9fTwvaDE+XG5cbiAgICA8IS0tIOKUgOKUgCBQc2V1ZG8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICA8aDIgY2xhc3M9XCJjYXJkLWhlYWRlclwiPnt7IHQoJ2FjY291bnQuZGlzcGxheV9uYW1lJykgfX08L2gyPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cbiAgICAgICAgPGlucHV0IHYtbW9kZWw9XCJmb3JtLm5hbWVcIiB0eXBlPVwidGV4dFwiIG1heGxlbmd0aD1cIjEwMFwiIGNsYXNzPVwiaW5wdXQgZmxleC0xXCIgOnBsYWNlaG9sZGVyPVwidCgnYWNjb3VudC5kaXNwbGF5X25hbWUnKVwiIC8+XG4gICAgICAgIDxidXR0b24gQGNsaWNrPVwic2F2ZSgnbmFtZScpXCIgY2xhc3M9XCJidG4tcHJpbWFyeSB0ZXh0LXNtXCIgOmRpc2FibGVkPVwic2F2aW5nXCI+XG4gICAgICAgICAge3sgc2F2aW5nID09PSAnbmFtZScgPyAn4oCmJyA6IHQoJ2FjY291bnQuc2F2ZScpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8cCB2LWlmPVwiZXJyb3JzLm5hbWVcIiBjbGFzcz1cInRleHQtcmVkLTQwMCB0ZXh0LXhzIG10LTJcIj57eyBlcnJvcnMubmFtZSB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0g4pSA4pSAIENvbmZpZGVudGlhbGl0w6kg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIHNwYWNlLXktNFwiPlxuICAgICAgPGgyIGNsYXNzPVwiY2FyZC1oZWFkZXJcIj57eyB0KCdhY2NvdW50LnByaXZhY3knKSB9fTwvaDI+XG5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIGN1cnNvci1wb2ludGVyIGdyb3VwXCI+XG4gICAgICAgIDxpbnB1dCB2LW1vZGVsPVwiZm9ybS5pc1B1YmxpY1wiIHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwidy00IGgtNCBhY2NlbnQtdGVtdGVtLTUwMCByb3VuZGVkXCIgQGNoYW5nZT1cInNhdmUoJ2lzUHVibGljJylcIiAvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTMwMCBncm91cC1ob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LXdoaXRlXCI+e3sgdCgnYWNjb3VudC5wdWJsaWNfcHJvZmlsZScpIH19PC9zcGFuPlxuICAgICAgICAgIOKAlCB7eyB0KCdhY2NvdW50LnB1YmxpY19wcm9maWxlX2Rlc2MnKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8bGFiZWwgOmNsYXNzPVwiWydmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBjdXJzb3ItcG9pbnRlciBncm91cCcsICFmb3JtLmlzUHVibGljICYmICdvcGFjaXR5LTQwIHBvaW50ZXItZXZlbnRzLW5vbmUnXVwiPlxuICAgICAgICA8aW5wdXQgdi1tb2RlbD1cImZvcm0uY2hhdEVuYWJsZWRcIiB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cInctNCBoLTQgYWNjZW50LXRlbXRlbS01MDAgcm91bmRlZFwiIDpkaXNhYmxlZD1cIiFmb3JtLmlzUHVibGljXCIgQGNoYW5nZT1cInNhdmUoJ2NoYXRFbmFibGVkJylcIiAvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTMwMCBncm91cC1ob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LXdoaXRlXCI+e3sgdCgnYWNjb3VudC5jaGF0X2VuYWJsZWQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICDigJQge3sgdCgnYWNjb3VudC5jaGF0X2VuYWJsZWRfZGVzYycpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8cCB2LWlmPVwiIWZvcm0uaXNQdWJsaWNcIiBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTUwMFwiPnt7IHQoJ2FjY291bnQucmVxdWlyZXNfcHVibGljJykgfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIOKUgOKUgCBJbmZvcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgIDxoMiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+e3sgdCgnYWNjb3VudC5pbmZvJykgfX08L2gyPlxuICAgICAgPGRsIGNsYXNzPVwic3BhY2UteS0yIHRleHQtc21cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGR0IGNsYXNzPVwidGV4dC1ncmF5LTUwMFwiPnt7IHQoJ2FjY291bnQuZW1haWwnKSB9fTwvZHQ+XG4gICAgICAgICAgPGRkIGNsYXNzPVwidGV4dC13aGl0ZVwiPnt7ICRwYWdlLnByb3BzLmF1dGgudXNlci5lbWFpbCB9fTwvZGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kbD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0g4pSA4pSAIFdpc2hsaXN0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgPGgyIGNsYXNzPVwiY2FyZC1oZWFkZXJcIj57eyB0KCdhY2NvdW50Lndpc2hsaXN0X3RpdGxlJykgfX08L2gyPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIHRleHQteHMgbWItNFwiPnt7IHQoJ2FjY291bnQud2lzaGxpc3RfZGVzYycpIH19PC9wPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYmctdGVtdGVtLTk1MCByb3VuZGVkLWxnIHAtNCBtYi00IHNwYWNlLXktM1wiPlxuICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS0zMDBcIj57eyB0KCdhY2NvdW50Lndpc2hsaXN0X2FkZF90aXRsZScpIH19PC9oMz5cblxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+e3sgdCgndGVtdGVtLnNwZWNpZXMnKSB9fSAqPC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsPVwid2lzaFNlYXJjaFwiIHR5cGU9XCJ0ZXh0XCIgOnBsYWNlaG9sZGVyPVwidCgnYWNjb3VudC5zZWxlY3Rfc3BlY2llcycpXCIgY2xhc3M9XCJpbnB1dCB3LWZ1bGxcIiBAZm9jdXM9XCJzaG93V2lzaFBpY2tlciA9IHRydWVcIiAvPlxuICAgICAgICAgICAgPGRpdiB2LWlmPVwic2hvd1dpc2hQaWNrZXIgJiYgZmlsdGVyZWRXaXNoU3BlY2llcy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSB6LTIwIGxlZnQtMCByaWdodC0wIHRvcC1mdWxsIG10LTEgYmctdGVtdGVtLTkwMCBib3JkZXIgYm9yZGVyLXRlbXRlbS03MDAgcm91bmRlZC1sZyBtYXgtaC00OCBvdmVyZmxvdy15LWF1dG8gc2hhZG93LXhsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB2LWZvcj1cInMgaW4gZmlsdGVyZWRXaXNoU3BlY2llc1wiIDprZXk9XCJzLmlkXCIgdHlwZT1cImJ1dHRvblwiIEBjbGljaz1cInNlbGVjdFdpc2hTcGVjaWVzKHMpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC0zIHB5LTIgaG92ZXI6YmctdGVtdGVtLTcwMCB0ZXh0LWxlZnQgdGV4dC1zbSB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbWcgdi1pZj1cInMuc3ByaXRlVXJsXCIgOnNyYz1cInMuc3ByaXRlVXJsXCIgY2xhc3M9XCJ3LTYgaC02IG9iamVjdC1jb250YWluXCIgOmFsdD1cInMubmFtZVwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgcy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxwIHYtaWY9XCJ3aXNoRm9ybS5zcGVjaWVzSWRcIiBjbGFzcz1cInRleHQtdGVtdGVtLTQwMCB0ZXh0LXhzIG10LTFcIj57eyB0KCdhY2NvdW50LnNlbGVjdGVkJykgfX0gOiA8c3Ryb25nPnt7IHdpc2hTcGVjaWVzTmFtZSB9fTwvc3Ryb25nPjwvcD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTIgc206Z3JpZC1jb2xzLTMgZ2FwLTNcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj57eyB0KCd3aXNobGlzdC5zZXgnKSB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0IHYtbW9kZWw9XCJ3aXNoRm9ybS53YW50c1NleFwiIGNsYXNzPVwiaW5wdXQgdy1mdWxsIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImFueVwiPnt7IHQoJ3dpc2hsaXN0LmFueScpIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtYWxlXCI+e3sgdCgnd2lzaGxpc3Quc2V4X21hbGUnKSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZmVtYWxlXCI+e3sgdCgnd2lzaGxpc3Quc2V4X2ZlbWFsZScpIH19PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj57eyB0KCd3aXNobGlzdC5sdW1hJykgfX08L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdCB2LW1vZGVsPVwid2lzaEZvcm0ud2FudHNMdW1hXCIgY2xhc3M9XCJpbnB1dCB3LWZ1bGwgdGV4dC1zbVwiPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiYW55XCI+e3sgdCgnd2lzaGxpc3QuYW55JykgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInllc1wiPnt7IHQoJ3dpc2hsaXN0LnllcycpIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJub1wiPnt7IHQoJ3dpc2hsaXN0Lm5vJykgfX08L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiPnt7IHQoJ3dpc2hsaXN0LnBlcmZlY3RfY3AnKSB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0IHYtbW9kZWw9XCJ3aXNoRm9ybS53YW50c1BlcmZlY3RDcFwiIGNsYXNzPVwiaW5wdXQgdy1mdWxsIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImFueVwiPnt7IHQoJ3dpc2hsaXN0LmFueScpIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ5ZXNcIj57eyB0KCd3aXNobGlzdC55ZXMnKSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibm9cIj57eyB0KCd3aXNobGlzdC5ubycpIH19PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj57eyB0KCd3aXNobGlzdC5mZXJ0aWxpdHknKSB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0IHYtbW9kZWw9XCJ3aXNoRm9ybS53YW50c0ZlcnRpbGl0eVwiIGNsYXNzPVwiaW5wdXQgdy1mdWxsIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImFueVwiPnt7IHQoJ3dpc2hsaXN0LmFueScpIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ5ZXNcIj57eyB0KCd3aXNobGlzdC55ZXMnKSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibm9cIj57eyB0KCd3aXNobGlzdC5ubycpIH19PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj57eyB0KCd3aXNobGlzdC5pbmhlcml0ZWRfdGVjaCcpIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3Qgdi1tb2RlbD1cIndpc2hGb3JtLndhbnRzSW5oZXJpdGVkVGVjaFwiIGNsYXNzPVwiaW5wdXQgdy1mdWxsIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImFueVwiPnt7IHQoJ3dpc2hsaXN0LmFueScpIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ5ZXNcIj57eyB0KCd3aXNobGlzdC55ZXMnKSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibm9cIj57eyB0KCd3aXNobGlzdC5ubycpIH19PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJhZGRXaXNoXCIgY2xhc3M9XCJidG4tcHJpbWFyeSB0ZXh0LXNtXCIgOmRpc2FibGVkPVwiIXdpc2hGb3JtLnNwZWNpZXNJZCB8fCBzYXZpbmdXaXNoXCI+XG4gICAgICAgICAge3sgc2F2aW5nV2lzaCA/IHQoJ2FjY291bnQud2lzaGxpc3RfYWRkaW5nJykgOiB0KCdhY2NvdW50Lndpc2hsaXN0X2FkZF9idG4nKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IHYtaWY9XCJ3aXNobGlzdC5sZW5ndGggPiAwXCIgY2xhc3M9XCJzcGFjZS15LTJcIj5cbiAgICAgICAgPGRpdiB2LWZvcj1cIml0ZW0gaW4gd2lzaGxpc3RcIiA6a2V5PVwiaXRlbS5pZFwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgYmctdGVtdGVtLTgwMCByb3VuZGVkLWxnIHB4LTMgcHktMlwiPlxuICAgICAgICAgIDxpbWcgdi1pZj1cIml0ZW0uc3BlY2llcz8uc3ByaXRlVXJsXCJcbiAgICAgICAgICAgIDpzcmM9XCJpdGVtLndhbnRzTHVtYSA9PT0gJ3llcycgJiYgaXRlbS5zcGVjaWVzLmx1bWFTcHJpdGVVcmwgPyBpdGVtLnNwZWNpZXMubHVtYVNwcml0ZVVybCA6IGl0ZW0uc3BlY2llcy5zcHJpdGVVcmxcIlxuICAgICAgICAgICAgY2xhc3M9XCJ3LTggaC04IG9iamVjdC1jb250YWluIHNocmluay0wXCIgOmFsdD1cIml0ZW0uc3BlY2llcy5uYW1lXCIgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIG1pbi13LTBcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlXCI+e3sgaXRlbS5zcGVjaWVzPy5uYW1lIH19PC9wPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgZmxleCBmbGV4LXdyYXAgZ2FwLXgtM1wiPlxuICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwiaXRlbS53YW50c1NleCAhPT0gJ2FueSdcIj57eyBpdGVtLndhbnRzU2V4ID09PSAnbWFsZScgPyB0KCd3aXNobGlzdC5zZXhfbWFsZScpIDogdCgnd2lzaGxpc3Quc2V4X2ZlbWFsZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwiaXRlbS53YW50c0x1bWEgIT09ICdhbnknXCI+e3sgaXRlbS53YW50c0x1bWEgPT09ICd5ZXMnID8gdCgnd2lzaGxpc3QubHVtYV95ZXMnKSA6IHQoJ3dpc2hsaXN0Lm5vdF9sdW1hJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLndhbnRzUGVyZmVjdENwICE9PSAnYW55J1wiPnt7IGl0ZW0ud2FudHNQZXJmZWN0Q3AgPT09ICd5ZXMnID8gdCgnd2lzaGxpc3QucGVyZmVjdCcpIDogdCgnd2lzaGxpc3Qubm90X3BlcmZlY3QnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIml0ZW0ud2FudHNGZXJ0aWxpdHkgIT09ICdhbnknXCI+e3sgaXRlbS53YW50c0ZlcnRpbGl0eSA9PT0gJ3llcycgPyB0KCd3aXNobGlzdC5mZXJ0aWxlJykgOiB0KCd3aXNobGlzdC5ub19mZXJ0aWxpdHknKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIml0ZW0ud2FudHNJbmhlcml0ZWRUZWNoICE9PSAnYW55J1wiPnt7IGl0ZW0ud2FudHNJbmhlcml0ZWRUZWNoID09PSAneWVzJyA/IHQoJ3dpc2hsaXN0Lmhhc190ZWNoJykgOiB0KCd3aXNobGlzdC5ub190ZWNoJykgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJyZW1vdmVXaXNoKGl0ZW0uaWQpXCIgY2xhc3M9XCJidG4tZ2hvc3QgdGV4dC14cyB0ZXh0LXJlZC00MDAgaG92ZXI6dGV4dC1yZWQtMzAwIHNocmluay0wXCI+4pyVPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8cCB2LWVsc2UgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwIHRleHQtc20gdGV4dC1jZW50ZXIgcHktNFwiPnt7IHQoJ2FjY291bnQud2lzaGxpc3RfZW1wdHknKSB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRmxhc2ggLS0+XG4gICAgPFRyYW5zaXRpb24gbmFtZT1cImZhZGVcIj5cbiAgICAgIDxkaXYgdi1pZj1cImZsYXNoXCIgY2xhc3M9XCJmaXhlZCBib3R0b20tNiByaWdodC02IGJnLWdyZWVuLTgwMCBib3JkZXIgYm9yZGVyLWdyZWVuLTYwMCB0ZXh0LWdyZWVuLTIwMCB0ZXh0LXNtIHJvdW5kZWQtbGcgcHgtNCBweS0yIHNoYWRvdy14bFwiPlxuICAgICAgICB7eyBmbGFzaCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9UcmFuc2l0aW9uPlxuXG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdCBzZXR1cD5cbmltcG9ydCB7IHJlZiwgY29tcHV0ZWQgfSBmcm9tICd2dWUnXG5pbXBvcnQgeyB1c2VQYWdlLCByb3V0ZXIgfSBmcm9tICdAaW5lcnRpYWpzL3Z1ZTMnXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vY29tcG9zYWJsZXMvdXNlVCdcblxuY29uc3QgeyB0IH0gPSB1c2VUKClcblxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wcyh7XG4gIHdpc2hsaXN0OiB7IHR5cGU6IEFycmF5LCBkZWZhdWx0OiAoKSA9PiBbXSB9LFxuICBzcGVjaWVzOiAgeyB0eXBlOiBBcnJheSwgZGVmYXVsdDogKCkgPT4gW10gfSxcbn0pXG5cbmNvbnN0IHBhZ2UgPSB1c2VQYWdlKClcbmNvbnN0IGF1dGggPSBwYWdlLnByb3BzLmF1dGgudXNlclxuXG5jb25zdCBmb3JtID0gcmVmKHtcbiAgbmFtZTogICAgICAgIGF1dGgubmFtZSAgICAgICAgPz8gJycsXG4gIGlzUHVibGljOiAgICBhdXRoLmlzUHVibGljICAgID8/IGZhbHNlLFxuICBjaGF0RW5hYmxlZDogYXV0aC5jaGF0RW5hYmxlZCA/PyBmYWxzZSxcbn0pXG5cbmNvbnN0IHNhdmluZyA9IHJlZihudWxsKVxuY29uc3QgZXJyb3JzID0gcmVmKHt9KVxuY29uc3QgZmxhc2ggID0gcmVmKCcnKVxubGV0IGZsYXNoVGltZXIgPSBudWxsXG5cbmFzeW5jIGZ1bmN0aW9uIHNhdmUoZmllbGQpIHtcbiAgc2F2aW5nLnZhbHVlID0gZmllbGQ7IGVycm9ycy52YWx1ZSA9IHt9XG4gIHRyeSB7XG4gICAgY29uc3QgcGF5bG9hZCA9XG4gICAgICBmaWVsZCA9PT0gJ25hbWUnICAgICAgICA/IHsgbmFtZTogZm9ybS52YWx1ZS5uYW1lIH0gOlxuICAgICAgZmllbGQgPT09ICdpc1B1YmxpYycgICAgPyB7IGlzUHVibGljOiBmb3JtLnZhbHVlLmlzUHVibGljLCBjaGF0RW5hYmxlZDogZm9ybS52YWx1ZS5jaGF0RW5hYmxlZCB9IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjaGF0RW5hYmxlZDogZm9ybS52YWx1ZS5jaGF0RW5hYmxlZCB9XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBheGlvcy5wYXRjaCgnL21vbi1jb21wdGUvcHJvZmlsJywgcGF5bG9hZClcbiAgICBpZiAoZGF0YS5uYW1lICAgICAgICAhPT0gdW5kZWZpbmVkKSBmb3JtLnZhbHVlLm5hbWUgICAgICAgID0gZGF0YS5uYW1lXG4gICAgaWYgKGRhdGEuaXNQdWJsaWMgICAgIT09IHVuZGVmaW5lZCkgZm9ybS52YWx1ZS5pc1B1YmxpYyAgICA9IGRhdGEuaXNQdWJsaWNcbiAgICBpZiAoZGF0YS5jaGF0RW5hYmxlZCAhPT0gdW5kZWZpbmVkKSBmb3JtLnZhbHVlLmNoYXRFbmFibGVkID0gZGF0YS5jaGF0RW5hYmxlZFxuICAgIHJvdXRlci5yZWxvYWQoeyBvbmx5OiBbJ2F1dGgnXSB9KVxuICAgIHNob3dGbGFzaCh0KCdhY2NvdW50LnNhdmVkJykpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZS5yZXNwb25zZT8uc3RhdHVzID09PSA0MjIpIGVycm9ycy52YWx1ZSA9IGUucmVzcG9uc2UuZGF0YS5lcnJvcnMgPz8ge31cbiAgfSBmaW5hbGx5IHtcbiAgICBzYXZpbmcudmFsdWUgPSBudWxsXG4gIH1cbn1cblxuLy8gV2lzaGxpc3RcbmNvbnN0IHdpc2hsaXN0ID0gcmVmKFsuLi5wcm9wcy53aXNobGlzdF0pXG5cbmNvbnN0IGRlZmF1bHRXaXNoRm9ybSA9ICgpID0+ICh7XG4gIHNwZWNpZXNJZDogbnVsbCwgd2FudHNTZXg6ICdhbnknLCB3YW50c0x1bWE6ICdhbnknLFxuICB3YW50c1BlcmZlY3RDcDogJ2FueScsIHdhbnRzRmVydGlsaXR5OiAnYW55Jywgd2FudHNJbmhlcml0ZWRUZWNoOiAnYW55Jyxcbn0pXG5cbmNvbnN0IHdpc2hGb3JtICAgICAgID0gcmVmKGRlZmF1bHRXaXNoRm9ybSgpKVxuY29uc3Qgd2lzaFNlYXJjaCAgICAgPSByZWYoJycpXG5jb25zdCBzaG93V2lzaFBpY2tlciA9IHJlZihmYWxzZSlcbmNvbnN0IHNhdmluZ1dpc2ggICAgID0gcmVmKGZhbHNlKVxuXG5jb25zdCBmaWx0ZXJlZFdpc2hTcGVjaWVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICBjb25zdCBxID0gd2lzaFNlYXJjaC52YWx1ZS50b0xvd2VyQ2FzZSgpLnRyaW0oKVxuICBpZiAoIXEpIHJldHVybiBbXVxuICByZXR1cm4gcHJvcHMuc3BlY2llcy5maWx0ZXIocyA9PiBzLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSkuc2xpY2UoMCwgMTApXG59KVxuXG5jb25zdCB3aXNoU3BlY2llc05hbWUgPSBjb21wdXRlZCgoKSA9PlxuICBwcm9wcy5zcGVjaWVzLmZpbmQocyA9PiBzLmlkID09PSB3aXNoRm9ybS52YWx1ZS5zcGVjaWVzSWQpPy5uYW1lID8/ICcnXG4pXG5cbmZ1bmN0aW9uIHNlbGVjdFdpc2hTcGVjaWVzKHMpIHtcbiAgd2lzaEZvcm0udmFsdWUuc3BlY2llc0lkID0gcy5pZFxuICB3aXNoU2VhcmNoLnZhbHVlID0gcy5uYW1lXG4gIHNob3dXaXNoUGlja2VyLnZhbHVlID0gZmFsc2Vcbn1cblxuYXN5bmMgZnVuY3Rpb24gYWRkV2lzaCgpIHtcbiAgaWYgKCF3aXNoRm9ybS52YWx1ZS5zcGVjaWVzSWQpIHJldHVyblxuICBzYXZpbmdXaXNoLnZhbHVlID0gdHJ1ZVxuICB0cnkge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgYXhpb3MucG9zdCgnL21vbi1jb21wdGUvd2lzaGxpc3QnLCB7XG4gICAgICBzcGVjaWVzX2lkOiB3aXNoRm9ybS52YWx1ZS5zcGVjaWVzSWQsXG4gICAgICB3YW50c0x1bWE6IHdpc2hGb3JtLnZhbHVlLndhbnRzTHVtYSxcbiAgICAgIHdhbnRzUGVyZmVjdENwOiB3aXNoRm9ybS52YWx1ZS53YW50c1BlcmZlY3RDcCxcbiAgICAgIHdhbnRzRmVydGlsaXR5OiB3aXNoRm9ybS52YWx1ZS53YW50c0ZlcnRpbGl0eSxcbiAgICAgIHdhbnRzSW5oZXJpdGVkVGVjaDogd2lzaEZvcm0udmFsdWUud2FudHNJbmhlcml0ZWRUZWNoLFxuICAgICAgd2FudHNTZXg6IHdpc2hGb3JtLnZhbHVlLndhbnRzU2V4LFxuICAgIH0pXG4gICAgd2lzaGxpc3QudmFsdWUucHVzaChkYXRhKVxuICAgIHdpc2hGb3JtLnZhbHVlID0gZGVmYXVsdFdpc2hGb3JtKClcbiAgICB3aXNoU2VhcmNoLnZhbHVlID0gJydcbiAgICBzaG93Rmxhc2godCgnYWNjb3VudC53aXNoX2FkZGVkJykpXG4gIH0gZmluYWxseSB7XG4gICAgc2F2aW5nV2lzaC52YWx1ZSA9IGZhbHNlXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlV2lzaChpZCkge1xuICBhd2FpdCBheGlvcy5kZWxldGUoYC9tb24tY29tcHRlL3dpc2hsaXN0LyR7aWR9YClcbiAgd2lzaGxpc3QudmFsdWUgPSB3aXNobGlzdC52YWx1ZS5maWx0ZXIodyA9PiB3LmlkICE9PSBpZClcbn1cblxuZnVuY3Rpb24gc2hvd0ZsYXNoKG1zZykge1xuICBmbGFzaC52YWx1ZSA9IG1zZ1xuICBjbGVhclRpbWVvdXQoZmxhc2hUaW1lcilcbiAgZmxhc2hUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4geyBmbGFzaC52YWx1ZSA9ICcnIH0sIDMwMDApXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5mYWRlLWVudGVyLWFjdGl2ZSwgLmZhZGUtbGVhdmUtYWN0aXZlIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7IH1cbi5mYWRlLWVudGVyLWZyb20sIC5mYWRlLWxlYXZlLXRvIHsgb3BhY2l0eTogMDsgfVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiA6Y2xhc3M9XCJbJ3JlbGF0aXZlIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlcicsIHNpemVDbGFzc11cIj5cblxuICAgIDwhLS0gSW1hZ2UgcHJpbmNpcGFsZSAoR0lGIG91IHNwcml0ZSkgLS0+XG4gICAgPGltZ1xuICAgICAgdi1pZj1cInNyY1wiXG4gICAgICA6c3JjPVwic3JjXCJcbiAgICAgIDphbHQ9XCJhbHRcIlxuICAgICAgOmNsYXNzPVwiWydvYmplY3QtY29udGFpbicsIHNpemVDbGFzcywgYW5pbWF0ZWQgPyAnJyA6ICdwaXhlbGF0ZWQnXVwiXG4gICAgICBAZXJyb3I9XCJvbkVycm9yXCJcbiAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAvPlxuXG4gICAgPCEtLSBGYWxsYmFjayBzaSBpbWFnZSBhYnNlbnRlIC0tPlxuICAgIDxkaXZcbiAgICAgIHYtZWxzZVxuICAgICAgOmNsYXNzPVwiWydmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy10ZW10ZW0tODAwIHJvdW5kZWQtbGcgdGV4dC1ncmF5LTYwMCcsIHNpemVDbGFzc11cIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwidGYtdGVtcGVkaWEgdGV4dC0yeGxcIj48L2k+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEJhZGdlIEx1bWEgLS0+XG4gICAgPHNwYW5cbiAgICAgIHYtaWY9XCJsdW1hXCJcbiAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgcmlnaHQtMCB0ZXh0LWx1bWEgdGV4dC1zbSBsZWFkaW5nLW5vbmVcIlxuICAgICAgdGl0bGU9XCJMdW1hXCJcbiAgICA+PGkgY2xhc3M9XCJ0Zi1sdW1hXCI+PC9pPjwvc3Bhbj5cblxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQgc2V0dXA+XG5pbXBvcnQgeyByZWYsIGNvbXB1dGVkIH0gZnJvbSAndnVlJ1xuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgc3BlY2llczogIHsgdHlwZTogT2JqZWN0LCBkZWZhdWx0OiBudWxsIH0sICAgLy8gb2JqZXQgc3BlY2llcyBzw6lyaWFsaXPDqVxuICBsdW1hOiAgICAgeyB0eXBlOiBCb29sZWFuLCBkZWZhdWx0OiBmYWxzZSB9LCAgLy8gYWZmaWNoZXIgbGEgdmVyc2lvbiBsdW1hXG4gIGFuaW1hdGVkOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IGZhbHNlIH0sICAvLyBHSUYgYW5pbcOpICh0cnVlKSBvdSBzcHJpdGUgUE5HXG4gIHNpemU6ICAgICB7IHR5cGU6IFN0cmluZywgIGRlZmF1bHQ6ICdtZCcgfSwgICAvLyB4cyB8IHNtIHwgbWQgfCBsZyB8IHhsXG4gIGFsdDogICAgICB7IHR5cGU6IFN0cmluZywgIGRlZmF1bHQ6ICcnIH0sXG59KVxuXG5jb25zdCBzaXplcyA9IHtcbiAgeHM6ICd3LTggaC04JyxcbiAgc206ICd3LTEyIGgtMTInLFxuICBtZDogJ3ctMjAgaC0yMCcsXG4gIGxnOiAndy0zMiBoLTMyJyxcbiAgeGw6ICd3LTQ4IGgtNDgnLFxufVxuXG5jb25zdCBzaXplQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiBzaXplc1twcm9wcy5zaXplXSA/PyBzaXplcy5tZClcblxuY29uc3Qgc3JjID0gY29tcHV0ZWQoKCkgPT4ge1xuICBpZiAoIXByb3BzLnNwZWNpZXMpIHJldHVybiBudWxsXG4gIGlmIChwcm9wcy5hbmltYXRlZCkge1xuICAgIHJldHVybiBwcm9wcy5sdW1hID8gcHJvcHMuc3BlY2llcy5sdW1hR2lmVXJsIDogcHJvcHMuc3BlY2llcy5naWZVcmxcbiAgfVxuICByZXR1cm4gcHJvcHMubHVtYSA/IHByb3BzLnNwZWNpZXMubHVtYVNwcml0ZVVybCA6IHByb3BzLnNwZWNpZXMuc3ByaXRlVXJsXG59KVxuXG4vLyBTaSBsZSBHSUYgbidleGlzdGUgcGFzIGVuY29yZSwgcmVwbGkgc3VyIGxlIFBOR1xuY29uc3Qgb25FcnJvciA9IChlKSA9PiB7XG4gIGNvbnN0IGltZyA9IGUudGFyZ2V0XG4gIGlmIChwcm9wcy5hbmltYXRlZCAmJiBpbWcuc3JjLmluY2x1ZGVzKCcvZ2lmJykpIHtcbiAgICBpbWcuc3JjID0gcHJvcHMubHVtYVxuICAgICAgPyBwcm9wcy5zcGVjaWVzLmx1bWFTcHJpdGVVcmxcbiAgICAgIDogcHJvcHMuc3BlY2llcy5zcHJpdGVVcmxcbiAgfSBlbHNlIHtcbiAgICBpbWcuc3R5bGUuZGlzcGxheSA9ICdub25lJ1xuICB9XG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5waXhlbGF0ZWQge1xuICBpbWFnZS1yZW5kZXJpbmc6IHBpeGVsYXRlZDtcbiAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gIDxkaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBzbTppdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC00IG1iLTZcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxoMSBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlXCI+e3sgdCgnYnJlZWRpbmcudGl0bGUnKSB9fTwvaDE+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1ncmF5LTQwMCB0ZXh0LXNtXCI+XG4gICAgICAgICAge3sgdG90YWwgfX0ge3sgdCgnYnJlZWRpbmcuZm91bmQnKSB9fVxuICAgICAgICAgIDxzcGFuIHYtaWY9XCJsYXN0UGFnZSA+IDFcIiBjbGFzcz1cInRleHQtZ3JheS02MDBcIj4g4oCUIHt7IHQoJ2JyZWVkaW5nLnBhZ2Vfb2YnKS5yZXBsYWNlKCclY3VyJScsIHBhZ2UpLnJlcGxhY2UoJyVsYXN0JScsIGxhc3RQYWdlKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgIDxidXR0b24gQGNsaWNrPVwic2V0U29ydCgndG90YWxDcCcpXCIgIDpjbGFzcz1cIlsnYnRuIHRleHQtc20nLCBzb3J0QnkgPT09ICd0b3RhbENwJyAgPyAnYnRuLXByaW1hcnknIDogJ2J0bi1zZWNvbmRhcnknXVwiPnt7IHQoJ2JyZWVkaW5nLnNvcnRfY3AnKSB9fTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIEBjbGljaz1cInNldFNvcnQoJ2x1bWFPZGRzJylcIiA6Y2xhc3M9XCJbJ2J0biB0ZXh0LXNtJywgc29ydEJ5ID09PSAnbHVtYU9kZHMnID8gJ2J0bi1wcmltYXJ5JyA6ICdidG4tc2Vjb25kYXJ5J11cIj57eyB0KCdicmVlZGluZy5zb3J0X2x1bWEnKSB9fTwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFJlY2hlcmNoZSBwYXIgcGFyZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdi1tb2RlbD1cInNlYXJjaFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgOnBsYWNlaG9sZGVyPVwidCgnYnJlZWRpbmcuc2VhcmNoX3BoJylcIlxuICAgICAgICBjbGFzcz1cImlucHV0IHctZnVsbFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiB2LWlmPVwibG9jYWxQYWlycy5sZW5ndGggPiAwXCIgY2xhc3M9XCJzcGFjZS15LTRcIj5cbiAgICAgIDxkaXYgdi1mb3I9XCIocGFpciwgaSkgaW4gbG9jYWxQYWlyc1wiIDprZXk9XCJpXCIgY2xhc3M9XCJjYXJkIGhvdmVyOmJvcmRlci10ZW10ZW0tNTAwIHRyYW5zaXRpb24tY29sb3JzXCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAtMiBtYi00IHBiLTMgYm9yZGVyLWIgYm9yZGVyLXRlbXRlbS03MDBcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS01MDAgdGV4dC1zbSBmb250LW1vbm9cIj57eyBTdHJpbmcob2Zmc2V0U3RhcnQgKyBpICsgMSkucGFkU3RhcnQoMiwgJzAnKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS00MDAgdGV4dC1zbVwiPnt7IHQoJ2JyZWVkaW5nLmNoaWxkX3NwZWNpZXMnKSB9fSA6PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LXRlbXRlbS00MDBcIj57eyBwYWlyLmNoaWxkU3BlY2llcyA/PyAnPycgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC1hdXRvIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTUwMFwiPnt7IHQoJ2JyZWVkaW5nLmx1bWFfb2RkcycpIH19IDo8L3NwYW4+XG4gICAgICAgICAgICA8THVtYUJhZGdlIDpvZGRzPVwicGFpci5sdW1hT2Rkc1wiIC8+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMtMiBnYXAtNCBtYi00XCI+XG4gICAgICAgICAgPFBhcmVudFN1bW1hcnkgOnRlbXRlbT1cInBhaXIucGFyZW50MVwiIDpsYWJlbD1cInQoJ2JyZWVkaW5nLnBhcmVudDEnKVwiIC8+XG4gICAgICAgICAgPFBhcmVudFN1bW1hcnkgOnRlbXRlbT1cInBhaXIucGFyZW50MlwiIDpsYWJlbD1cInQoJ2JyZWVkaW5nLnBhcmVudDInKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJiZy10ZW10ZW0tOTUwIHJvdW5kZWQtbGcgcC0zIHNwYWNlLXktMyBtYi00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLVthdXRvXzFmcl8xZnJfMWZyXSBnYXAteC0yIGdhcC15LTEgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTYwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZVwiPnt7IHQoJ2JyZWVkaW5nLnN0YXQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14cyB0ZXh0LWdyZWVuLTUwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bVwiPnt7IHQoJ2JyZWVkaW5nLmJlc3QnKSB9fSA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS02MDAgZm9udC1ub3JtYWxcIj40MCU8L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhzIHRleHQtdGVtdGVtLTQwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bVwiPnt7IHQoJ2JyZWVkaW5nLmF2ZycpIH19IDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTYwMCBmb250LW5vcm1hbFwiPjQwJTwvc3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1yZWQtNDAwIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtXCI+e3sgdCgnYnJlZWRpbmcud29yc3QnKSB9fSA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS02MDAgZm9udC1ub3JtYWxcIj4yMCU8L3NwYW4+PC9zcGFuPlxuXG4gICAgICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCJzdGF0IGluIHN0YXREZWZzXCIgOmtleT1cInN0YXQua2V5XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwIGZvbnQtbW9ubyB0ZXh0LXJpZ2h0IHByLTJcIj57eyB0KGBzdGF0LiR7c3RhdC5rZXl9YCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxTdGF0UGlsbCA6bGFiZWw9XCInJ1wiIDp2YWx1ZT1cInBhaXIuY2hpbGRDcEJlc3Rbc3RhdC5rZXldXCIgIGNvbG9yPVwiZ3JlZW5cIiAvPlxuICAgICAgICAgICAgICA8U3RhdFBpbGwgOmxhYmVsPVwiJydcIiA6dmFsdWU9XCJwYWlyLmNoaWxkQ3BBdmdbc3RhdC5rZXldXCIgICBjb2xvcj1cImJsdWVcIiAvPlxuICAgICAgICAgICAgICA8U3RhdFBpbGwgOmxhYmVsPVwiJydcIiA6dmFsdWU9XCJwYWlyLmNoaWxkQ3BXb3JzdFtzdGF0LmtleV1cIiBjb2xvcj1cInJlZFwiIC8+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTUwMCBmb250LW1vbm8gdGV4dC1yaWdodCBwci0yIHB0LTEgYm9yZGVyLXQgYm9yZGVyLXRlbXRlbS04MDBcIj57eyB0KCdicmVlZGluZy50b3RhbCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWdyZWVuLTQwMCBmb250LXNlbWlib2xkIGZvbnQtbW9ubyB0ZXh0LXNtIHRleHQtY2VudGVyIHB0LTEgYm9yZGVyLXQgYm9yZGVyLXRlbXRlbS04MDBcIj57eyBwYWlyLmNoaWxkQ3BCZXN0LnRvdGFsIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRlbXRlbS00MDAgZm9udC1zZW1pYm9sZCBmb250LW1vbm8gdGV4dC1zbSB0ZXh0LWNlbnRlciBwdC0xIGJvcmRlci10IGJvcmRlci10ZW10ZW0tODAwXCI+e3sgcGFpci5jaGlsZENwQXZnLnRvdGFsIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC00MDAgZm9udC1zZW1pYm9sZCBmb250LW1vbm8gdGV4dC1zbSB0ZXh0LWNlbnRlciBwdC0xIGJvcmRlci10IGJvcmRlci10ZW10ZW0tODAwXCI+e3sgcGFpci5jaGlsZENwV29yc3QudG90YWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQm91dG9uIGFjY291cGxlbWVudCAtLT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHYtaWY9XCJwYWlyLnBhcmVudDEuZmVydGlsaXR5ID4gMCAmJiBwYWlyLnBhcmVudDIuZmVydGlsaXR5ID4gMFwiXG4gICAgICAgICAgQGNsaWNrPVwiYXNrQnJlZWQocGFpciwgaSlcIlxuICAgICAgICAgIDpkaXNhYmxlZD1cImJyZWVkaW5nID09PSBpXCJcbiAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0zIHJvdW5kZWQteGwgZm9udC1zZW1pYm9sZCB0ZXh0LXNtIHRyYW5zaXRpb24tYWxsXG4gICAgICAgICAgICAgICAgIGJnLXRlbXRlbS03MDAgYm9yZGVyIGJvcmRlci10ZW10ZW0tNTAwIHRleHQtdGVtdGVtLTMwMFxuICAgICAgICAgICAgICAgICBob3ZlcjpiZy10ZW10ZW0tNjAwIGhvdmVyOnRleHQtd2hpdGUgYWN0aXZlOnNjYWxlLTk1XG4gICAgICAgICAgICAgICAgIGRpc2FibGVkOm9wYWNpdHktNTAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkXG4gICAgICAgICAgICAgICAgIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwidGYtZWdnbW92ZSB0ZXh0LWJhc2VcIj48L2k+XG4gICAgICAgICAge3sgYnJlZWRpbmcgPT09IGkgPyB0KCdicmVlZGluZy5icmVlZGluZ19wcm9ncmVzcycpIDogdCgnYnJlZWRpbmcuYnJlZWRfYnRuJykgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxwIHYtZWxzZSBjbGFzcz1cInRleHQtY2VudGVyIHRleHQteHMgdGV4dC1ncmF5LTYwMCBweS0yXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ0Zi1lZ2dtb3ZlIG1yLTEgb3BhY2l0eS00MFwiPjwvaT57eyB0KCdicmVlZGluZy5ub19mZXJ0aWxpdHknKSB9fVxuICAgICAgICA8L3A+XG5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQYWdpbmF0aW9uIC0tPlxuICAgIDxkaXYgdi1pZj1cImxhc3RQYWdlID4gMVwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTIgbXQtNlwiPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJnb1RvUGFnZShwYWdlIC0gMSlcIiA6ZGlzYWJsZWQ9XCJwYWdlIDw9IDFcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHRleHQtc20gZGlzYWJsZWQ6b3BhY2l0eS00MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWRcIj57eyB0KCdicmVlZGluZy5wcmV2JykgfX08L2J1dHRvbj5cbiAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cInAgaW4gcGFnZVJhbmdlXCIgOmtleT1cInBcIj5cbiAgICAgICAgPHNwYW4gdi1pZj1cInAgPT09ICcuLi4nXCIgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwIHB4LTFcIj7igKY8L3NwYW4+XG4gICAgICAgIDxidXR0b24gdi1lbHNlIEBjbGljaz1cImdvVG9QYWdlKHApXCIgOmNsYXNzPVwiWydidG4gdGV4dC1zbScsIHAgPT09IHBhZ2UgPyAnYnRuLXByaW1hcnknIDogJ2J0bi1zZWNvbmRhcnknXVwiPnt7IHAgfX08L2J1dHRvbj5cbiAgICAgIDwvdGVtcGxhdGU+XG4gICAgICA8YnV0dG9uIEBjbGljaz1cImdvVG9QYWdlKHBhZ2UgKyAxKVwiIDpkaXNhYmxlZD1cInBhZ2UgPj0gbGFzdFBhZ2VcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHRleHQtc20gZGlzYWJsZWQ6b3BhY2l0eS00MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWRcIj57eyB0KCdicmVlZGluZy5uZXh0JykgfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgdi1lbHNlLWlmPVwibG9jYWxQYWlycy5sZW5ndGggPT09IDAgJiYgc2VhcmNoXCIgY2xhc3M9XCJjYXJkIHRleHQtY2VudGVyIHB5LTggdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCI+e3sgdCgnYnJlZWRpbmcubm9fc2VhcmNoX3Jlc3VsdCcpIH19PC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiB2LWVsc2UtaWY9XCJwYWlycy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImNhcmQgdGV4dC1jZW50ZXIgcHktMTYgdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LTR4bCBtYi0zXCI+PGkgY2xhc3M9XCJ0Zi1lZ2dtb3ZlIHRleHQtNHhsIHRleHQtdGVtdGVtLTUwMFwiPjwvaT48L3A+XG4gICAgICA8cCBjbGFzcz1cImZvbnQtbWVkaXVtIG1iLTJcIj57eyB0KCdicmVlZGluZy5ub19wYWlycycpIH19PC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIG1iLTRcIj57eyB0KCdicmVlZGluZy5ub19wYWlyc19oaW50JykgfX08L3A+XG4gICAgICA8TGluayBocmVmPVwiL21lcy10ZW10ZW1zL2Fqb3V0ZXJcIiBjbGFzcz1cImJ0bi1wcmltYXJ5XCI+e3sgdCgnYnJlZWRpbmcuYWRkX3RlbXRlbXMnKSB9fTwvTGluaz5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ29uZmlybWF0aW9uIHBvcHVwIChib3R0b20gc2hlZXQgbW9iaWxlIC8gbW9kYWwgZGVza3RvcCkgLS0+XG4gICAgPFRlbGVwb3J0IHRvPVwiYm9keVwiPlxuICAgICAgPFRyYW5zaXRpb24gbmFtZT1cInNoZWV0XCI+XG4gICAgICAgIDxkaXYgdi1pZj1cImNvbmZpcm1cIiBjbGFzcz1cImZpeGVkIGluc2V0LTAgei01MCBmbGV4IGl0ZW1zLWVuZCBzbTppdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcC0wIHNtOnAtNFwiIEBjbGljay5zZWxmPVwiY29uZmlybSA9IG51bGxcIj5cbiAgICAgICAgICA8IS0tIEJhY2tkcm9wIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzYwIGJhY2tkcm9wLWJsdXItc21cIiBAY2xpY2s9XCJjb25maXJtID0gbnVsbFwiPjwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBTaGVldCAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsIHNtOm1heC13LW1kIGJnLXRlbXRlbS05MDAgYm9yZGVyLXQgc206Ym9yZGVyIGJvcmRlci10ZW10ZW0tNjAwIHJvdW5kZWQtdC0yeGwgc206cm91bmRlZC0yeGwgcC02IHotMTBcIj5cbiAgICAgICAgICAgIDwhLS0gRHJhZyBoYW5kbGUgKG1vYmlsZSkgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206aGlkZGVuIHctMTAgaC0xIGJnLXRlbXRlbS02MDAgcm91bmRlZC1mdWxsIG14LWF1dG8gbWItNVwiPjwvZGl2PlxuXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTEgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ0Zi1lZ2dtb3ZlIHRleHQtdGVtdGVtLTQwMFwiPjwvaT5cbiAgICAgICAgICAgICAge3sgdCgnYnJlZWRpbmcuY29uZmlybV90aXRsZScpIH19XG4gICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgbWItNVwiPnt7IHQoJ2JyZWVkaW5nLmNvbmZpcm1fZGVzYycpIH19PC9wPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMyBiZy10ZW10ZW0tODAwIHJvdW5kZWQteGwgcC0zIG1iLTZcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMSB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwIG1iLTAuNVwiPnt7IHQoJ2JyZWVkaW5nLnBhcmVudDEnKSB9fTwvcD5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSB0ZXh0LXNtIHRydW5jYXRlXCI+e3sgY29uZmlybS5wYWlyLnBhcmVudDEuZGlzcGxheU5hbWUgfX08L3A+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtdGVtdGVtLTQwMCBtdC0wLjVcIj57eyB0KCd0ZW10ZW0uZmVydGlsaXR5JykgfX0gOiB7eyBjb25maXJtLnBhaXIucGFyZW50MS5mZXJ0aWxpdHkgfX0vODwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LXRlbXRlbS02MDAgdGV4dC14bFwiPsOXPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTUwMCBtYi0wLjVcIj57eyB0KCdicmVlZGluZy5wYXJlbnQyJykgfX08L3A+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgdGV4dC1zbSB0cnVuY2F0ZVwiPnt7IGNvbmZpcm0ucGFpci5wYXJlbnQyLmRpc3BsYXlOYW1lIH19PC9wPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC14cyB0ZXh0LXRlbXRlbS00MDAgbXQtMC41XCI+e3sgdCgndGVtdGVtLmZlcnRpbGl0eScpIH19IDoge3sgY29uZmlybS5wYWlyLnBhcmVudDIuZmVydGlsaXR5IH19Lzg8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0zXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwiY29uZmlybSA9IG51bGxcIiBjbGFzcz1cImJ0bi1zZWNvbmRhcnkgZmxleC0xIHB5LTMgdGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2NvbW1vbi5jYW5jZWwnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJjb25maXJtQnJlZWRcIiA6ZGlzYWJsZWQ9XCJicmVlZGluZyAhPT0gbnVsbFwiIGNsYXNzPVwiYnRuLXByaW1hcnkgZmxleC0xIHB5LTMgdGV4dC1zbSBmb250LXNlbWlib2xkIGRpc2FibGVkOm9wYWNpdHktNTBcIj5cbiAgICAgICAgICAgICAgICB7eyBicmVlZGluZyAhPT0gbnVsbCA/IHQoJ2JyZWVkaW5nLmJyZWVkaW5nX3Byb2dyZXNzJykgOiB0KCdicmVlZGluZy5jb25maXJtX2J0bicpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9UcmFuc2l0aW9uPlxuICAgIDwvVGVsZXBvcnQ+XG5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0IHNldHVwPlxuaW1wb3J0IHsgcmVmLCBjb21wdXRlZCwgd2F0Y2ggfSBmcm9tICd2dWUnXG5pbXBvcnQgeyBMaW5rLCByb3V0ZXIgfSBmcm9tICdAaW5lcnRpYWpzL3Z1ZTMnXG5pbXBvcnQgYXhpb3MgICAgICAgICBmcm9tICdheGlvcydcbmltcG9ydCBMdW1hQmFkZ2UgICAgIGZyb20gJy4uLy4uL0NvbXBvbmVudHMvTHVtYUJhZGdlLnZ1ZSdcbmltcG9ydCBQYXJlbnRTdW1tYXJ5IGZyb20gJy4uLy4uL0NvbXBvbmVudHMvUGFyZW50U3VtbWFyeS52dWUnXG5pbXBvcnQgU3RhdFBpbGwgICAgICBmcm9tICcuLi8uLi9Db21wb25lbnRzL1N0YXRQaWxsLnZ1ZSdcbmltcG9ydCB7IHVzZVQgfSAgICAgIGZyb20gJy4uLy4uL2NvbXBvc2FibGVzL3VzZVQnXG5cbmNvbnN0IHsgdCB9ID0gdXNlVCgpXG5cbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoe1xuICBwYWlyczogICAgeyB0eXBlOiBBcnJheSwgIGRlZmF1bHQ6ICgpID0+IFtdIH0sXG4gIHNvcnRCeTogICB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ3RvdGFsQ3AnIH0sXG4gIHNlYXJjaDogICB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJycgfSxcbiAgdG90YWw6ICAgIHsgdHlwZTogTnVtYmVyLCBkZWZhdWx0OiAwIH0sXG4gIHBhZ2U6ICAgICB7IHR5cGU6IE51bWJlciwgZGVmYXVsdDogMSB9LFxuICBwZXJQYWdlOiAgeyB0eXBlOiBOdW1iZXIsIGRlZmF1bHQ6IDIwIH0sXG4gIGxhc3RQYWdlOiB7IHR5cGU6IE51bWJlciwgZGVmYXVsdDogMSB9LFxufSlcblxuY29uc3Qgc3RhdERlZnMgPSBbXG4gIHsga2V5OiAnaHAnIH0sIHsga2V5OiAnc3RhJyB9LCB7IGtleTogJ3NwZCcgfSxcbiAgeyBrZXk6ICdhdGsnIH0sIHsga2V5OiAnZGVmJyB9LCB7IGtleTogJ3NwYXRrJyB9LCB7IGtleTogJ3NwZGVmJyB9LFxuXVxuXG4vLyBDb3BpZSBsb2NhbGUgcG91ciBtaXNlIMOgIGpvdXIgb3B0aW1pc3RlIGRlcyBmZXJ0aWxpdMOpc1xuY29uc3Qgc2VhcmNoID0gcmVmKHByb3BzLnNlYXJjaClcbmNvbnN0IGxvY2FsUGFpcnMgPSByZWYocHJvcHMucGFpcnMubWFwKHAgPT4gKHtcbiAgLi4ucCxcbiAgcGFyZW50MTogeyAuLi5wLnBhcmVudDEgfSxcbiAgcGFyZW50MjogeyAuLi5wLnBhcmVudDIgfSxcbn0pKSlcblxuLy8gRGVib3VuY2UgOiBkw6ljbGVuY2hlIHVuZSByZXF1w6p0ZSBzZXJ2ZXVyIDM1MG1zIGFwcsOocyBsYSBmcmFwcGVcbmxldCBkZWJvdW5jZVRpbWVyID0gbnVsbFxud2F0Y2goc2VhcmNoLCAodmFsKSA9PiB7XG4gIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyKVxuICBkZWJvdW5jZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgcm91dGVyLmdldCgnL2JyZWVkaW5nJywgeyBzb3J0OiBwcm9wcy5zb3J0QnksIHNlYXJjaDogdmFsLCBwYWdlOiAxIH0sIHsgcHJlc2VydmVTdGF0ZTogZmFsc2UsIHJlcGxhY2U6IHRydWUgfSlcbiAgfSwgMzUwKVxufSlcblxuY29uc3QgY29uZmlybSA9IHJlZihudWxsKSAgIC8vIHsgcGFpciwgcGFpckluZGV4IH1cbmNvbnN0IGJyZWVkaW5nID0gcmVmKG51bGwpICAvLyBpbmRleCBkZSBsYSBwYWlyZSBlbiBjb3Vyc1xuXG5jb25zdCBvZmZzZXRTdGFydCA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5wYWdlIC0gMSkgKiBwcm9wcy5wZXJQYWdlKVxuXG5jb25zdCBwYWdlUmFuZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gIGNvbnN0IHAgPSBwcm9wcy5wYWdlLCBsID0gcHJvcHMubGFzdFBhZ2VcbiAgaWYgKGwgPD0gNykgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGwgfSwgKF8sIGkpID0+IGkgKyAxKVxuICBjb25zdCBwYWdlcyA9IG5ldyBTZXQoWzEsIGwsIHAsIHAgLSAxLCBwICsgMV0uZmlsdGVyKG4gPT4gbiA+PSAxICYmIG4gPD0gbCkpXG4gIGNvbnN0IHNvcnRlZCA9IFsuLi5wYWdlc10uc29ydCgoYSwgYikgPT4gYSAtIGIpXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc29ydGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGkgPiAwICYmIHNvcnRlZFtpXSAtIHNvcnRlZFtpIC0gMV0gPiAxKSByZXN1bHQucHVzaCgnLi4uJylcbiAgICByZXN1bHQucHVzaChzb3J0ZWRbaV0pXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufSlcblxuZnVuY3Rpb24gc2V0U29ydChzb3J0KSB7XG4gIHJvdXRlci5nZXQoJy9icmVlZGluZycsIHsgc29ydCwgc2VhcmNoOiBzZWFyY2gudmFsdWUsIHBhZ2U6IDEgfSwgeyBwcmVzZXJ2ZVN0YXRlOiBmYWxzZSwgcmVwbGFjZTogdHJ1ZSB9KVxufVxuXG5mdW5jdGlvbiBnb1RvUGFnZShwKSB7XG4gIGlmIChwIDwgMSB8fCBwID4gcHJvcHMubGFzdFBhZ2UpIHJldHVyblxuICByb3V0ZXIuZ2V0KCcvYnJlZWRpbmcnLCB7IHNvcnQ6IHByb3BzLnNvcnRCeSwgc2VhcmNoOiBzZWFyY2gudmFsdWUsIHBhZ2U6IHAgfSwgeyBwcmVzZXJ2ZVN0YXRlOiBmYWxzZSwgcmVwbGFjZTogdHJ1ZSB9KVxufVxuXG5mdW5jdGlvbiBhc2tCcmVlZChwYWlyLCBpbmRleCkge1xuICBjb25maXJtLnZhbHVlID0geyBwYWlyLCBwYWlySW5kZXg6IGluZGV4IH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY29uZmlybUJyZWVkKCkge1xuICBpZiAoIWNvbmZpcm0udmFsdWUgfHwgYnJlZWRpbmcudmFsdWUgIT09IG51bGwpIHJldHVyblxuICBjb25zdCB7IHBhaXIsIHBhaXJJbmRleCB9ID0gY29uZmlybS52YWx1ZVxuICBicmVlZGluZy52YWx1ZSA9IHBhaXJJbmRleFxuXG4gIHRyeSB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBheGlvcy5wb3N0KCcvYnJlZWRpbmcvc2ltdWxlcicsIHtcbiAgICAgIHRlbTE6IHBhaXIucGFyZW50MS5pZCxcbiAgICAgIHRlbTI6IHBhaXIucGFyZW50Mi5pZCxcbiAgICB9KVxuXG4gICAgLy8gTWlzZSDDoCBqb3VyIGxvY2FsZSBkZXMgZmVydGlsaXTDqXMgc2FucyByZWNoYXJnZW1lbnQgZGUgcGFnZVxuICAgIGNvbnN0IHAgPSBsb2NhbFBhaXJzLnZhbHVlW3BhaXJJbmRleF1cbiAgICBwLnBhcmVudDEuZmVydGlsaXR5ID0gZGF0YS50ZW0xLmZlcnRpbGl0eVxuICAgIHAucGFyZW50Mi5mZXJ0aWxpdHkgPSBkYXRhLnRlbTIuZmVydGlsaXR5XG5cbiAgICAvLyBNZXR0cmUgw6Agam91ciBhdXNzaSB0b3V0ZXMgbGVzIGF1dHJlcyBwYWlyZXMgcXVpIGltcGxpcXVlbnQgY2VzIHRlbXNcbiAgICBsb2NhbFBhaXJzLnZhbHVlLmZvckVhY2goKGxwLCBpZHgpID0+IHtcbiAgICAgIGlmIChpZHggPT09IHBhaXJJbmRleCkgcmV0dXJuXG4gICAgICBpZiAobHAucGFyZW50MS5pZCA9PT0gZGF0YS50ZW0xLmlkKSBscC5wYXJlbnQxLmZlcnRpbGl0eSA9IGRhdGEudGVtMS5mZXJ0aWxpdHlcbiAgICAgIGlmIChscC5wYXJlbnQyLmlkID09PSBkYXRhLnRlbTEuaWQpIGxwLnBhcmVudDIuZmVydGlsaXR5ID0gZGF0YS50ZW0xLmZlcnRpbGl0eVxuICAgICAgaWYgKGxwLnBhcmVudDEuaWQgPT09IGRhdGEudGVtMi5pZCkgbHAucGFyZW50MS5mZXJ0aWxpdHkgPSBkYXRhLnRlbTIuZmVydGlsaXR5XG4gICAgICBpZiAobHAucGFyZW50Mi5pZCA9PT0gZGF0YS50ZW0yLmlkKSBscC5wYXJlbnQyLmZlcnRpbGl0eSA9IGRhdGEudGVtMi5mZXJ0aWxpdHlcbiAgICB9KVxuXG4gICAgY29uZmlybS52YWx1ZSA9IG51bGxcbiAgfSBjYXRjaCB7XG4gICAgLy8gRW4gY2FzIGQnZXJyZXVyLCByZWNoYXJnZW1lbnQgY29tcGxldFxuICAgIHJvdXRlci5yZWxvYWQoKVxuICB9IGZpbmFsbHkge1xuICAgIGJyZWVkaW5nLnZhbHVlID0gbnVsbFxuICB9XG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5zaGVldC1lbnRlci1hY3RpdmUsXG4uc2hlZXQtbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG59XG4uc2hlZXQtZW50ZXItYWN0aXZlIC5yZWxhdGl2ZSxcbi5zaGVldC1sZWF2ZS1hY3RpdmUgLnJlbGF0aXZlIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLjMyLCAwLjcyLCAwLCAxKTtcbn1cbi5zaGVldC1lbnRlci1mcm9tLFxuLnNoZWV0LWxlYXZlLXRvIHtcbiAgb3BhY2l0eTogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MzlweCkge1xuICAuc2hlZXQtZW50ZXItZnJvbSAucmVsYXRpdmUsXG4gIC5zaGVldC1sZWF2ZS10byAucmVsYXRpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgfVxufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm1heC13LTJ4bCBteC1hdXRvXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgbWItNlwiPlxuICAgICAgPExpbmsgaHJlZj1cIi9tZXMtdGVtdGVtc1wiIGNsYXNzPVwiYnRuLWdob3N0IHRleHQtc21cIj57eyB0KCd0ZW10ZW0uZm9ybV9iYWNrJykgfX08L0xpbms+XG4gICAgICA8aDEgY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC13aGl0ZVwiPlxuICAgICAgICB7eyBpc0VkaXRpbmcgPyBgJHt0KCd0ZW10ZW0uZWRpdCcpfSAke3RlbXRlbT8uZGlzcGxheU5hbWV9YCA6IHQoJ3RlbXRlbS5hZGQnKSB9fVxuICAgICAgPC9oMT5cbiAgICA8L2Rpdj5cblxuICAgIDxmb3JtIEBzdWJtaXQucHJldmVudD1cInN1Ym1pdFwiIGNsYXNzPVwic3BhY2UteS02XCI+XG5cbiAgICAgIDwhLS0g4pSA4pSAIEVzcMOoY2Ug4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiY2FyZC1oZWFkZXJcIj57eyB0KCd0ZW10ZW0uZm9ybV9zcGVjaWVzJykgfX08L2gyPlxuXG4gICAgICAgIDxUcmFuc2l0aW9uIG5hbWU9XCJmYWRlXCI+XG4gICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRTcGVjaWVzICYmICFzaG93UGlja2VyXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCBwLTMgYmctdGVtdGVtLTgwMCByb3VuZGVkLWxnXCI+XG4gICAgICAgICAgICA8VGVtdGVtSW1hZ2UgOnNwZWNpZXM9XCJzZWxlY3RlZFNwZWNpZXNcIiA6bHVtYT1cImZvcm0uaXNfbHVtYVwiIDphbmltYXRlZD1cInRydWVcIiBzaXplPVwibGdcIiA6YWx0PVwic2VsZWN0ZWRTcGVjaWVzLm5hbWVcIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGcgdGV4dC13aGl0ZVwiPnt7IHNlbGVjdGVkU3BlY2llcy5uYW1lIH19PC9wPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTEgbXQtMVwiPlxuICAgICAgICAgICAgICAgIDxUeXBlQmFkZ2Ugdi1mb3I9XCJ0MiBpbiBzZWxlY3RlZFNwZWNpZXMudHlwZXNcIiA6a2V5PVwidDIuc2x1ZyA/PyB0MlwiIDp0eXBlPVwidDJcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHAgdi1pZj1cInNlbGVjdGVkU3BlY2llcy5pc01pbWl0XCIgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtcHVycGxlLTQwMCBtdC0xXCI+e3sgdCgndGVtdGVtLm1pbWl0X3R5cGUnKSB9fTwvcD5cbiAgICAgICAgICAgICAgPHAgdi1pZj1cInNlbGVjdGVkU3BlY2llcy5oYXNWYXJpYWJsZVR5cGVcIiBjbGFzcz1cInRleHQteHMgdGV4dC1pbmRpZ28tNDAwIG10LTFcIj57eyB0KCd0ZW10ZW0udmFyaWFibGVfdHlwZScpIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBAY2xpY2s9XCJzaG93UGlja2VyID0gdHJ1ZVwiIGNsYXNzPVwiYnRuLWdob3N0IHRleHQteHMgc2hyaW5rLTBcIj57eyB0KCd0ZW10ZW0uZWRpdCcpIH19PC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvVHJhbnNpdGlvbj5cblxuICAgICAgICA8VHJhbnNpdGlvbiBuYW1lPVwic2xpZGVcIj5cbiAgICAgICAgICA8ZGl2IHYtaWY9XCJzaG93UGlja2VyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgbWItNFwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdi1tb2RlbD1cInNlYXJjaFwiIHJlZj1cInNlYXJjaElucHV0XCIgdHlwZT1cInRleHRcIiA6cGxhY2Vob2xkZXI9XCJ0KCd0ZW10ZW0uZm9ybV9zZWFyY2hfcGgnKVwiIGNsYXNzPVwiaW5wdXQgdy1mdWxsIHBsLTlcIiBAaW5wdXQ9XCJzY3JvbGxUb1RvcFwiIC8+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwidGYtdGVtcGVkaWEgYWJzb2x1dGUgbGVmdC0zIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiB0ZXh0LWdyYXktNTAwIHRleHQtc21cIj48L2k+XG4gICAgICAgICAgICAgIDxidXR0b24gdi1pZj1cInNlYXJjaFwiIHR5cGU9XCJidXR0b25cIiBAY2xpY2s9XCJzZWFyY2ggPSAnJ1wiIGNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtMyB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgdGV4dC1ncmF5LTUwMCBob3Zlcjp0ZXh0LXdoaXRlXCI+4pyVPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgcmVmPVwiZ3JpZFJlZlwiIGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMiBzbTpncmlkLWNvbHMtMyBnYXAtMiBtYXgtaC05NiBvdmVyZmxvdy15LWF1dG8gcHItMVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdi1mb3I9XCJzIGluIGZpbHRlcmVkU3BlY2llc1wiIDprZXk9XCJzLmlkXCIgdHlwZT1cImJ1dHRvblwiIEBjbGljaz1cInNlbGVjdFNwZWNpZXMocylcIlxuICAgICAgICAgICAgICAgIDpjbGFzcz1cIlsnZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTEgcC0yIHJvdW5kZWQtbGcgYm9yZGVyIHRyYW5zaXRpb24tYWxsIHRleHQtY2VudGVyJywgZm9ybS5zcGVjaWVzX2lkID09PSBzLmlkID8gJ2JvcmRlci10ZW10ZW0tNDAwIGJnLXRlbXRlbS03MDAnIDogJ2JvcmRlci10ZW10ZW0tNzAwIGJnLXRlbXRlbS04MDAgaG92ZXI6Ym9yZGVyLXRlbXRlbS01MDAgaG92ZXI6YmctdGVtdGVtLTcwMCddXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZW10ZW1JbWFnZSA6c3BlY2llcz1cInNcIiA6YW5pbWF0ZWQ9XCJ0cnVlXCIgc2l6ZT1cInNtXCIgOmFsdD1cInMubmFtZVwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgbGVhZGluZy10aWdodFwiPnt7IHMubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1jZW50ZXIgZ2FwLTAuNVwiPlxuICAgICAgICAgICAgICAgICAgPFR5cGVCYWRnZSB2LWZvcj1cInQyIGluIHMudHlwZXNcIiA6a2V5PVwidDIuc2x1ZyA/PyB0MlwiIDp0eXBlPVwidDJcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPHAgdi1pZj1cImZpbHRlcmVkU3BlY2llcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImNvbC1zcGFuLTMgdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCBweS02IHRleHQtc21cIj5cbiAgICAgICAgICAgICAgICBBdWN1biByw6lzdWx0YXQgcG91ciDCqyB7eyBzZWFyY2ggfX0gwrtcbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvVHJhbnNpdGlvbj5cblxuICAgICAgICA8ZGl2IHYtaWY9XCJzZWxlY3RlZFNwZWNpZXM/Lmhhc1ZhcmlhYmxlVHlwZSAmJiAhc2hvd1BpY2tlclwiIGNsYXNzPVwibXQtM1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+e3sgdCgndGVtdGVtLnNlY29uZGFyeV90eXBlJykgfX08L2xhYmVsPlxuICAgICAgICAgIDxzZWxlY3Qgdi1tb2RlbD1cImZvcm0uc2Vjb25kYXJ5X3R5cGVcIiByZXF1aXJlZCBjbGFzcz1cImlucHV0XCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3sgdCgndGVtdGVtLmZvcm1fY2hvb3NlX3R5cGUnKSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2LWZvcj1cInQyIGluIHZhcmlhYmxlVHlwZXNcIiA6a2V5PVwidDIuc2x1Z1wiIDp2YWx1ZT1cInQyLnNsdWdcIj57eyB0Mi5zbHVnIH19PC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0g4pSA4pSAIFN1cm5vbSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJjYXJkLWhlYWRlclwiPnt7IHQoJ3RlbXRlbS5uaWNrbmFtZScpIH19PC9oMj5cbiAgICAgICAgPGlucHV0IHYtbW9kZWw9XCJmb3JtLm5pY2tuYW1lXCIgdHlwZT1cInRleHRcIiBtYXhsZW5ndGg9XCIxMDBcIiBjbGFzcz1cImlucHV0IHctZnVsbFwiIDpwbGFjZWhvbGRlcj1cInQoJ3RlbXRlbS5mb3JtX25pY2tuYW1lX3BoJylcIiAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0g4pSA4pSAIFByb2ZpbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJjYXJkLWhlYWRlclwiPnt7IHQoJ3RlbXRlbS5mb3JtX3Byb2ZpbGUnKSB9fTwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIHNtOmdyaWQtY29scy0yIGdhcC00XCI+XG5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj57eyB0KCd0ZW10ZW0uc2V4JykgfX0gKjwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0IHYtbW9kZWw9XCJmb3JtLnNleFwiIHJlcXVpcmVkIGNsYXNzPVwiaW5wdXRcIiA6ZGlzYWJsZWQ9XCJzZWxlY3RlZFNwZWNpZXM/LmlzTWltaXRcIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1hbGVcIj57eyB0KCdzZXgubWFsZScpIH19IOKZgjwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZmVtYWxlXCI+e3sgdCgnc2V4LmZlbWFsZScpIH19IOKZgDwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uIHYtaWY9XCJzZWxlY3RlZFNwZWNpZXM/LmlzTWltaXRcIiB2YWx1ZT1cIm5vbmJpbmFyeVwiPnt7IHQoJ3NleC5ub25iaW5hcnknKSB9fSDimqU8L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPHAgdi1pZj1cInNlbGVjdGVkU3BlY2llcz8uaXNNaW1pdFwiIGNsYXNzPVwidGV4dC14cyB0ZXh0LXB1cnBsZS00MDAgbXQtMVwiPnt7IHQoJ3RlbXRlbS5taW1pdF9ub3RlJykgfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj57eyB0KCd0ZW10ZW0uZmVydGlsaXR5JykgfX0gKiA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS01MDBcIj4oe3sgZm9ybS5mZXJ0aWxpdHkgfX0vOCk8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsLm51bWJlcj1cImZvcm0uZmVydGlsaXR5XCIgdHlwZT1cInJhbmdlXCIgbWluPVwiMFwiIG1heD1cIjhcIiBjbGFzcz1cInctZnVsbCBhY2NlbnQtdGVtdGVtLTUwMFwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTFcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdCgndGVtdGVtLmZlcnRpbGl0eV9taW4nKSB9fTwvc3Bhbj48c3Bhbj57eyB0KCd0ZW10ZW0uZmVydGlsaXR5X21heCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsPVwiZm9ybS5pc19sdW1hXCIgaWQ9XCJpc19sdW1hXCIgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJ3LTQgaC00IGFjY2VudC1sdW1hIHJvdW5kZWRcIiAvPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlzX2x1bWFcIiBjbGFzcz1cImxhYmVsIG1iLTAgY3Vyc29yLXBvaW50ZXIgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ0Zi1sdW1hIHRleHQtbHVtYVwiPjwvaT4ge3sgdCgndGVtdGVtLmlzX2x1bWEnKSB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIOKUgOKUgCBDUCBTdGF0cyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJjYXJkLWhlYWRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCd0ZW10ZW0uZm9ybV9jcCcpIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10ZW10ZW0tNDAwIGZvbnQtbW9ub1wiPnt7IHRvdGFsQ3AgfX08c3BhbiBjbGFzcz1cInRleHQtZ3JheS02MDAgZm9udC1ub3JtYWwgdGV4dC1zbVwiPi8zNTA8L3NwYW4+PC9zcGFuPlxuICAgICAgICA8L2gyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0zXCI+XG4gICAgICAgICAgPGRpdiB2LWZvcj1cInN0YXQgaW4gc3RhdERlZnNcIiA6a2V5PVwic3RhdC5rZXlcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTQgdGV4dC1yaWdodCB0ZXh0LWdyYXktNDAwIHRleHQteHMgZm9udC1tb25vIHNocmluay0wXCI+e3sgdChgc3RhdC4ke3N0YXQua2V5fWApIH19PC9zcGFuPlxuICAgICAgICAgICAgPGlucHV0IHYtbW9kZWwubnVtYmVyPVwiZm9ybVtgY3BfJHtzdGF0LmtleX1gXVwiIHR5cGU9XCJyYW5nZVwiIG1pbj1cIjBcIiBtYXg9XCI1MFwiIGNsYXNzPVwiZmxleC0xIGFjY2VudC10ZW10ZW0tNTAwXCIgLz5cbiAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsLm51bWJlcj1cImZvcm1bYGNwXyR7c3RhdC5rZXl9YF1cIiB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIG1heD1cIjUwXCIgY2xhc3M9XCJpbnB1dCB3LTE2IHRleHQtY2VudGVyIHB4LTEgdGV4dC1zbVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0zXCI+Q2hhcXVlIHN0YXQgZXN0IGNvbXByaXNlIGVudHJlIDAgZXQgNTAuPC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0g4pSA4pSAIERpc3BvbmliaWxpdMOpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+e3sgdCgndGVtdGVtLmF2YWlsYWJpbGl0eScpIH19PC9oMj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtM1wiPlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgIHYtZm9yPVwib3B0IGluIHRyYWRlT3B0aW9uc1wiIDprZXk9XCJvcHQudmFsdWVcIlxuICAgICAgICAgICAgICA6Y2xhc3M9XCJbJ2ZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTMgcHktMiByb3VuZGVkLWxnIGJvcmRlciBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWFsbCB0ZXh0LXNtJywgZm9ybS50cmFkZV9zdGF0dXMgPT09IG9wdC52YWx1ZSA/ICdib3JkZXItdGVtdGVtLTQwMCBiZy10ZW10ZW0tNzAwIHRleHQtd2hpdGUnIDogJ2JvcmRlci10ZW10ZW0tNzAwIGJnLXRlbXRlbS04MDAgdGV4dC1ncmF5LTQwMCBob3Zlcjpib3JkZXItdGVtdGVtLTUwMCddXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlucHV0IHYtbW9kZWw9XCJmb3JtLnRyYWRlX3N0YXR1c1wiIHR5cGU9XCJyYWRpb1wiIDp2YWx1ZT1cIm9wdC52YWx1ZVwiIGNsYXNzPVwic3Itb25seVwiIC8+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IG9wdC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiB2LWlmPVwiZm9ybS50cmFkZV9zdGF0dXMgPT09ICdzYWxlJ1wiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsIG1iLTAgc2hyaW5rLTBcIj57eyB0KCd0ZW10ZW0udHJhZGVfcHJpY2VfbGFiZWwnKSB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgdi1tb2RlbC5udW1iZXI9XCJmb3JtLnNhbGVfcHJpY2VcIiB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIGNsYXNzPVwiaW5wdXQgdy0zNlwiIHBsYWNlaG9sZGVyPVwiRXggOiA1MDAwXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTUwMCB0ZXh0LXNtXCI+e3sgdCgndHJhZGUuY3VycmVuY3knKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSDilIDilIAgQWN0aW9ucyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtM1wiPlxuICAgICAgICA8TGluayBocmVmPVwiL21lcy10ZW10ZW1zXCIgY2xhc3M9XCJidG4tc2Vjb25kYXJ5IGZsZXgtMSBqdXN0aWZ5LWNlbnRlclwiPnt7IHQoJ2NvbW1vbi5jYW5jZWwnKSB9fTwvTGluaz5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4tcHJpbWFyeSBmbGV4LTFcIiA6ZGlzYWJsZWQ9XCJzYXZpbmcgfHwgIXNlbGVjdGVkU3BlY2llc1wiPlxuICAgICAgICAgIHt7IHNhdmluZyA/IHQoJ3RlbXRlbS5zYXZpbmcnKSA6IChpc0VkaXRpbmcgPyB0KCd0ZW10ZW0uc2F2ZV9idG4nKSA6IHQoJ3RlbXRlbS5hZGRfc3VibWl0JykpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgdi1pZj1cIk9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMFwiIGNsYXNzPVwiYmctcmVkLTkwMC80MCBib3JkZXIgYm9yZGVyLXJlZC03MDAgcm91bmRlZC1sZyBwLTNcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXJlZC0zMDAgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0xXCI+e3sgdCgndGVtdGVtLmVycm9yc190aXRsZScpIH19PC9wPlxuICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LWRpc2MgbGlzdC1pbnNpZGUgdGV4dC1yZWQtNDAwIHRleHQteHMgc3BhY2UteS0xXCI+XG4gICAgICAgICAgPGxpIHYtZm9yPVwiKG1zZywgZmllbGQpIGluIGVycm9yc1wiIDprZXk9XCJmaWVsZFwiPnt7IG1zZyB9fTwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0IHNldHVwPlxuaW1wb3J0IHsgcmVmLCBjb21wdXRlZCwgbmV4dFRpY2ssIHdhdGNoIH0gZnJvbSAndnVlJ1xuaW1wb3J0IHsgTGluaywgcm91dGVyIH0gZnJvbSAnQGluZXJ0aWFqcy92dWUzJ1xuaW1wb3J0IGF4aW9zICAgICAgIGZyb20gJ2F4aW9zJ1xuaW1wb3J0IFRlbXRlbUltYWdlIGZyb20gJy4uLy4uL0NvbXBvbmVudHMvVGVtdGVtSW1hZ2UudnVlJ1xuaW1wb3J0IFR5cGVCYWRnZSAgIGZyb20gJy4uLy4uL0NvbXBvbmVudHMvVHlwZUJhZGdlLnZ1ZSdcbmltcG9ydCB7IHVzZVQgfSAgICBmcm9tICcuLi8uLi9jb21wb3NhYmxlcy91c2VUJ1xuXG5jb25zdCB7IHQgfSA9IHVzZVQoKVxuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgdGVtdGVtOiAgeyB0eXBlOiBPYmplY3QsIGRlZmF1bHQ6IG51bGwgfSxcbiAgc3BlY2llczogeyB0eXBlOiBBcnJheSwgIGRlZmF1bHQ6ICgpID0+IFtdIH0sXG4gIHR5cGVzOiAgIHsgdHlwZTogQXJyYXksICBkZWZhdWx0OiAoKSA9PiBbXSB9LFxufSlcblxuY29uc3QgaXNFZGl0aW5nID0gY29tcHV0ZWQoKCkgPT4gISFwcm9wcy50ZW10ZW0pXG5cbmNvbnN0IHN0YXREZWZzID0gW1xuICB7IGtleTogJ2hwJyB9LCB7IGtleTogJ3N0YScgfSwgeyBrZXk6ICdzcGQnIH0sXG4gIHsga2V5OiAnYXRrJyB9LCB7IGtleTogJ2RlZicgfSwgeyBrZXk6ICdzcGF0aycgfSwgeyBrZXk6ICdzcGRlZicgfSxcbl1cblxuY29uc3QgZm9ybSA9IHJlZih7XG4gIHNwZWNpZXNfaWQ6ICAgICBwcm9wcy50ZW10ZW0/LnNwZWNpZXM/LmlkICAgPz8gJycsXG4gIHNlY29uZGFyeV90eXBlOiBwcm9wcy50ZW10ZW0/LnNlY29uZGFyeVR5cGUgPz8gJycsXG4gIG5pY2tuYW1lOiAgICAgICBwcm9wcy50ZW10ZW0/Lm5pY2tuYW1lICAgICAgID8/ICcnLFxuICBzZXg6ICAgICAgICAgICAgcHJvcHMudGVtdGVtPy5zZXggICAgICAgICAgICA/PyAnbWFsZScsXG4gIGZlcnRpbGl0eTogICAgICBwcm9wcy50ZW10ZW0/LmZlcnRpbGl0eSAgICAgID8/IDYsXG4gIGlzX2x1bWE6ICAgICAgICBwcm9wcy50ZW10ZW0/LmlzTHVtYSAgICAgICAgID8/IGZhbHNlLFxuICBjcF9ocDogICAgICAgICAgcHJvcHMudGVtdGVtPy5jcD8uaHAgICAgICAgICA/PyAwLFxuICBjcF9zdGE6ICAgICAgICAgcHJvcHMudGVtdGVtPy5jcD8uc3RhICAgICAgICA/PyAwLFxuICBjcF9zcGQ6ICAgICAgICAgcHJvcHMudGVtdGVtPy5jcD8uc3BkICAgICAgICA/PyAwLFxuICBjcF9hdGs6ICAgICAgICAgcHJvcHMudGVtdGVtPy5jcD8uYXRrICAgICAgICA/PyAwLFxuICBjcF9kZWY6ICAgICAgICAgcHJvcHMudGVtdGVtPy5jcD8uZGVmICAgICAgICA/PyAwLFxuICBjcF9zcGF0azogICAgICAgcHJvcHMudGVtdGVtPy5jcD8uc3BhdGsgICAgICA/PyAwLFxuICBjcF9zcGRlZjogICAgICAgcHJvcHMudGVtdGVtPy5jcD8uc3BkZWYgICAgICA/PyAwLFxuICB0cmFkZV9zdGF0dXM6ICAgcHJvcHMudGVtdGVtPy50cmFkZVN0YXR1cyAgICA/PyAnbm9uZScsXG4gIHNhbGVfcHJpY2U6ICAgICBwcm9wcy50ZW10ZW0/LnNhbGVQcmljZSAgICAgID8/IG51bGwsXG59KVxuXG5jb25zdCB0cmFkZU9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiBbXG4gIHsgdmFsdWU6ICdub25lJywgICAgIGxhYmVsOiB0KCd0cmFkZS5ub25lJykgfSxcbiAgeyB2YWx1ZTogJ2V4Y2hhbmdlJywgbGFiZWw6IHQoJ3RyYWRlLmV4Y2hhbmdlJykgfSxcbiAgeyB2YWx1ZTogJ3NhbGUnLCAgICAgbGFiZWw6IHQoJ3RyYWRlLnNhbGUnKSB9LFxuXSlcblxuY29uc3Qgc2F2aW5nICAgICA9IHJlZihmYWxzZSlcbmNvbnN0IGVycm9ycyAgICAgPSByZWYoe30pXG5jb25zdCBzZWFyY2ggICAgID0gcmVmKCcnKVxuY29uc3Qgc2hvd1BpY2tlciA9IHJlZighcHJvcHMudGVtdGVtKVxuY29uc3Qgc2VhcmNoSW5wdXQgPSByZWYobnVsbClcbmNvbnN0IGdyaWRSZWYgICAgPSByZWYobnVsbClcblxuY29uc3Qgc2VsZWN0ZWRTcGVjaWVzID0gY29tcHV0ZWQoKCkgPT5cbiAgcHJvcHMuc3BlY2llcy5maW5kKHMgPT4gcy5pZCA9PT0gTnVtYmVyKGZvcm0udmFsdWUuc3BlY2llc19pZCkpID8/IG51bGxcbilcblxuY29uc3QgZmlsdGVyZWRTcGVjaWVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICBjb25zdCBxID0gc2VhcmNoLnZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpXG4gIGlmICghcSkgcmV0dXJuIHByb3BzLnNwZWNpZXNcbiAgcmV0dXJuIHByb3BzLnNwZWNpZXMuZmlsdGVyKHMgPT4gcy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpXG59KVxuXG5jb25zdCB2YXJpYWJsZVR5cGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICBjb25zdCBiYXNlVHlwZVNsdWdzID0gKHNlbGVjdGVkU3BlY2llcy52YWx1ZT8udHlwZXMgPz8gW10pLm1hcCh0MiA9PiB0Mi5zbHVnID8/IHQyKVxuICByZXR1cm4gcHJvcHMudHlwZXMuZmlsdGVyKHQyID0+ICFiYXNlVHlwZVNsdWdzLmluY2x1ZGVzKHQyLnNsdWcgPz8gdDIpKVxufSlcblxuY29uc3QgdG90YWxDcCA9IGNvbXB1dGVkKCgpID0+XG4gIFsnaHAnLCdzdGEnLCdzcGQnLCdhdGsnLCdkZWYnLCdzcGF0aycsJ3NwZGVmJ11cbiAgICAucmVkdWNlKChhY2MsIGspID0+IGFjYyArIChOdW1iZXIoZm9ybS52YWx1ZVtgY3BfJHtrfWBdKSB8fCAwKSwgMClcbilcblxud2F0Y2goc2hvd1BpY2tlciwgYXN5bmMgKHZhbCkgPT4ge1xuICBpZiAodmFsKSB7IHNlYXJjaC52YWx1ZSA9ICcnOyBhd2FpdCBuZXh0VGljaygpOyBzZWFyY2hJbnB1dC52YWx1ZT8uZm9jdXMoKSB9XG59KVxuXG5mdW5jdGlvbiBzZWxlY3RTcGVjaWVzKHMpIHtcbiAgZm9ybS52YWx1ZS5zcGVjaWVzX2lkID0gcy5pZFxuICBmb3JtLnZhbHVlLnNlY29uZGFyeV90eXBlID0gJydcbiAgaWYgKHMuaXNNaW1pdCkgZm9ybS52YWx1ZS5zZXggPSAnbm9uYmluYXJ5J1xuICBzaG93UGlja2VyLnZhbHVlID0gZmFsc2Vcbn1cblxuZnVuY3Rpb24gc2Nyb2xsVG9Ub3AoKSB7IGdyaWRSZWYudmFsdWU/LnNjcm9sbFRvKHsgdG9wOiAwIH0pIH1cblxuYXN5bmMgZnVuY3Rpb24gc3VibWl0KCkge1xuICBzYXZpbmcudmFsdWUgPSB0cnVlOyBlcnJvcnMudmFsdWUgPSB7fVxuICB0cnkge1xuICAgIGNvbnN0IHVybCAgICA9IGlzRWRpdGluZy52YWx1ZSA/IGAvbWVzLXRlbXRlbXMvJHtwcm9wcy50ZW10ZW0uaWR9L21vZGlmaWVyYCA6ICcvbWVzLXRlbXRlbXMvYWpvdXRlcidcbiAgICBjb25zdCBtZXRob2QgPSBpc0VkaXRpbmcudmFsdWUgPyAncHV0JyA6ICdwb3N0J1xuICAgIGF3YWl0IGF4aW9zW21ldGhvZF0odXJsLCBmb3JtLnZhbHVlKVxuICAgIHJvdXRlci52aXNpdCgnL21lcy10ZW10ZW1zJylcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlLnJlc3BvbnNlPy5zdGF0dXMgPT09IDQyMikgZXJyb3JzLnZhbHVlID0gZS5yZXNwb25zZS5kYXRhLmVycm9ycyA/PyB7fVxuICB9IGZpbmFsbHkge1xuICAgIHNhdmluZy52YWx1ZSA9IGZhbHNlXG4gIH1cbn1cbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLnNsaWRlLWVudGVyLWFjdGl2ZSwgLnNsaWRlLWxlYXZlLWFjdGl2ZSB7IHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTsgfVxuLnNsaWRlLWVudGVyLWZyb20sIC5zbGlkZS1sZWF2ZS10byB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTsgfVxuLmZhZGUtZW50ZXItYWN0aXZlLCAuZmFkZS1sZWF2ZS1hY3RpdmUgeyB0cmFuc2l0aW9uOiBvcGFjaXR5IC4yczsgfVxuLmZhZGUtZW50ZXItZnJvbSwgLmZhZGUtbGVhdmUtdG8geyBvcGFjaXR5OiAwOyB9XG48L3N0eWxlPlxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/