*, ::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.16 | 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: currentColor; /* 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: 'Work Sans', 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;
}

/* Custom media breakpoints */

/* Base elements, resets, global variables */

* {
  box-sizing: border-box;
  font-variant-numeric: lining-nums;
}

html,
body {
  font-size: 16px;
  overflow-x: clip;
}

body {
  --tw-bg-opacity: 1;
  background-color: rgb(249 244 240 / var(--tw-bg-opacity, 1));
}

body *::-moz-selection {
  --tw-bg-opacity: 1;
  background-color: rgb(44 39 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(249 244 240 / var(--tw-text-opacity, 1));
}

body *::selection {
  --tw-bg-opacity: 1;
  background-color: rgb(44 39 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(249 244 240 / var(--tw-text-opacity, 1));
}

body::-moz-selection {
  --tw-bg-opacity: 1;
  background-color: rgb(44 39 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(249 244 240 / var(--tw-text-opacity, 1));
}

body::selection {
  --tw-bg-opacity: 1;
  background-color: rgb(44 39 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(249 244 240 / var(--tw-text-opacity, 1));
}

body {

  margin: 0;
}

[type="button"],
[type="submit"],
button {
  border-radius: 0;
}

address {
  font-style: normal;
}

ul {
  padding-left: 40px;
  list-style: disc;
}

a:hover,
a:active {
  color: inherit;
}

.dng-theme-neutral {
  --dng-theme-color: var(--wp--preset--color--forest-green);
  --dng-theme-color-btn: var(--wp--preset--color--white);
  --dng-theme-color-btn-bg: var(--wp--preset--color--forest-green);
  --dng-theme-footer-bg: var(--wp--preset--color--forest-green);
  --dng-theme-footer-color: var(--wp--preset--color--white);
}

.dng-theme-design {
  --dng-theme-color: var(--wp--preset--color--forest-green);
  --dng-theme-color-btn: var(--wp--preset--color--white);
  --dng-theme-color-btn-bg: var(--wp--preset--color--forest-green);
  --dng-theme-footer-bg: #cedcca;
  --dng-theme-footer-color: var(--wp--preset--color--black);
}

.dng-theme-shape {
  --dng-theme-color: var(--wp--preset--color--terracotta);
  --dng-theme-color-btn: var(--wp--preset--color--black);
  --dng-theme-color-btn-bg: var(--wp--preset--color--terracotta);
  --dng-theme-footer-bg: rgba(253, 220, 203, 1);
  --dng-theme-footer-color: var(--wp--preset--color--black);
}

.dng-theme-craft {
  --dng-theme-color: var(--wp--preset--color--violet);
  --dng-theme-color-btn: var(--wp--preset--color--black);
  --dng-theme-color-btn-bg: var(--wp--preset--color--violet);
  --dng-theme-footer-bg: #e1e5fc;
  --dng-theme-footer-color: var(--wp--preset--color--black);
}

.dng-theme-training {
  --dng-theme-color: var(--wp--preset--color--lime-green);
  --dng-theme-color-btn: var(--wp--preset--color--black);
  --dng-theme-color-btn-bg: var(--wp--preset--color--lime-green);
  --dng-theme-footer-bg: #cedcca;
  --dng-theme-footer-color: var(--wp--preset--color--black);
}

.grecaptcha-badge {
  display: none !important;
}

.dng-c-tito-block {
  --square-width: 8px;
}

.dng-c-tito-block .tito-widget-form > div {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, 1fr);
  }

@media (max-width: 1146.98px) {

.dng-c-tito-block .tito-widget-form > div {
      display: flex;
      flex-direction: column
  }
    }

.dng-c-tito-block .tito-release {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    background-color: #f9f4f0;
  }

.dng-c-tito-block .tito-release:before,
    .dng-c-tito-block .tito-release:after {
      position: absolute;
      z-index: 10;
      display: block;
      width: var(--square-width);
      border: 1px solid black;
      aspect-ratio: 1;
      background-color: #f9f4f0;
      content: "";
      pointer-events: none;
    }

/* square (top-left) */

.dng-c-tito-block .tito-release:before {
      top: -4px;
      left: -4px;
    }

/* square (top-right) */

.dng-c-tito-block .tito-release:after {
      top: -4px;
      right: -4px;
    }

.dng-c-tito-block .tito-release--title {
  position: relative;
}

.dng-c-tito-block .tito-release--title {
  width: 100%;
}

.dng-c-tito-block .tito-release--title {
  border-width: 1px;
}

.dng-c-tito-block .tito-release--title {
  border-bottom-width: 0;
}

.dng-c-tito-block .tito-release--title {
  --tw-border-opacity: 1;
  border-color: rgb(44 39 33 / var(--tw-border-opacity, 1));
}

.dng-c-tito-block .tito-release--title {
  padding-left: 20px;
  padding-right: 20px;
}

.dng-c-tito-block .tito-release--title {
  padding-top: 40px;
  padding-bottom: 40px;
}

.dng-c-tito-block .tito-release--title {
  font-family: 'Agrandir Grotesk Variable', sans-serif;
}

.dng-c-tito-block .tito-release--title {
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: normal;
  font-weight: 400;
}

.dng-c-tito-block .tito-release--title {
  font-family: 'Agrandir Grotesk Variable', sans-serif !important;
}

.dng-c-tito-block .tito-release--title:before,
    .dng-c-tito-block .tito-release--title:after {
      position: absolute;
      z-index: 10;
      display: block;
      width: var(--square-width);
      border: 1px solid black;
      aspect-ratio: 1;
      background-color: #f9f4f0;
      content: "";
      pointer-events: none;
    }

/* square (post-title left) */

.dng-c-tito-block .tito-release--title:before {
      bottom: -4px;
      left: -4px;
    }

/* square (post-title right) */

.dng-c-tito-block .tito-release--title:after {
      right: -4px;
      bottom: -4px;
    }

.dng-c-tito-block .tito-release-description {
    display: flex;
    flex-direction: column;
  }

.dng-c-tito-block .tito-release-description--description {
  border-width: 1px;
}

.dng-c-tito-block .tito-release-description--description {
  --tw-border-opacity: 1;
  border-color: rgb(44 39 33 / var(--tw-border-opacity, 1));
}

.dng-c-tito-block .tito-release-description--description {
  padding-left: 20px;
  padding-right: 20px;
}

.dng-c-tito-block .tito-release-description--description {
  padding-top: 30px;
  padding-bottom: 30px;
}

.dng-c-tito-block .tito-release-description--description {
  font-size: 1.125rem;
  line-height: 1.4;
  letter-spacing: normal;
  font-weight: 400;
}

.dng-c-tito-block .tito-release-description--description .text-tag {
  font-family: 'Work Sans', sans-serif !important;
}

.dng-c-tito-block .tito-release-description--description > *,.dng-c-tito-block .tito-release-description--description a,.dng-c-tito-block .tito-release-description--description a:hover {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.dng-c-tito-block .tito-release-description--description > *,.dng-c-tito-block .tito-release-description--description a,.dng-c-tito-block .tito-release-description--description a:hover {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.dng-c-tito-block .tito-release-description--description > *,.dng-c-tito-block .tito-release-description--description a,.dng-c-tito-block .tito-release-description--description a:hover {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.dng-c-tito-block .tito-release-description--description > *:last-child {
  margin-bottom: 0;
}

.dng-c-tito-block .tito-release-description--description {

    width: 100%;
    flex: 1;
  }

.dng-c-tito-block .tito-times {
    display: none;
  }

.dng-c-tito-block .tito-price-details-regular,
  .dng-c-tito-block .tito-quantity {
  border-bottom-width: 1px;
}

.dng-c-tito-block .tito-price-details-regular,
  .dng-c-tito-block .tito-quantity {
  --tw-border-opacity: 1;
  border-color: rgb(44 39 33 / var(--tw-border-opacity, 1));
}

.dng-c-tito-block .tito-price-details-regular,
  .dng-c-tito-block .tito-quantity {
  padding-left: 20px;
  padding-right: 20px;
}

.dng-c-tito-block .tito-price-details-regular,
  .dng-c-tito-block .tito-quantity {
  padding-top: 30px;
  padding-bottom: 30px;
}

.dng-c-tito-block .tito-price-details-regular,
  .dng-c-tito-block .tito-quantity {
  font-size: 1.25rem;
  line-height: 1.3;
  letter-spacing: normal;
  font-weight: 400;
}

.dng-c-tito-block .tito-price-details-regular,
  .dng-c-tito-block .tito-quantity {
  font-family: 'Work Sans', sans-serif !important;
}

.dng-c-tito-block .tito-price-details-regular {
  border-left-width: 1px;
}

.dng-c-tito-block .tito-price-details-regular {
  --tw-border-opacity: 1;
  border-color: rgb(44 39 33 / var(--tw-border-opacity, 1));
}

.dng-c-tito-block .tito-price-details-regular {

    display: flex;
    width: 75%;
    flex-direction: column;
  }

/* square (bottom-left) */

.dng-c-tito-block .tito-price-details-regular:after {
      position: absolute;
      z-index: 10;
      bottom: -4px;
      left: -4px;
      display: block;
      width: var(--square-width);
      border: 1px solid black;
      aspect-ratio: 1;
      background-color: #f9f4f0;
      content: "";
      pointer-events: none;
    }

.dng-c-tito-block .tito-price {
  font-size: 30px;
}

.dng-c-tito-block .tito-price:after {
      content: " per ticket";
      font-size: 1.25rem;
    }

.dng-c-tito-block .tito-release--tax {
    font-size: 1rem;
  }

.dng-c-tito-block .tito-release--tax:before {
      content: "(";
    }

.dng-c-tito-block .tito-release--tax:after {
      content: ")";
    }

.dng-c-tito-block .tito-quantity {
  border-right-width: 1px;
}

.dng-c-tito-block .tito-quantity {
  --tw-border-opacity: 1;
  border-color: rgb(44 39 33 / var(--tw-border-opacity, 1));
}

.dng-c-tito-block .tito-quantity {

    display: flex;
    width: 25%;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
  }

/* square (bottom-right) */

.dng-c-tito-block .tito-quantity:after {
      position: absolute;
      z-index: 10;
      right: -4px;
      bottom: -4px;
      display: block;
      width: var(--square-width);
      border: 1px solid black;
      aspect-ratio: 1;
      background-color: #f9f4f0;
      content: "";
      pointer-events: none;
    }

.dng-c-tito-block .tito-quantity-input {
    width: 50px;
    border-radius: 0;
    -webkit-appearance: textfield;
       -moz-appearance: textfield;
            appearance: textfield;
    background: transparent;
  }

.dng-c-tito-block .tito-quantity-input::-webkit-inner-spin-button,
    .dng-c-tito-block .tito-quantity-input::-webkit-outer-spin-button {
      margin: 0;
      -webkit-appearance: none;
              appearance: none;
    }

.dng-c-tito-block .tito-form-actions {
    position: relative;
    display: flex;
    justify-content: flex-end;
    margin-top: 42px;
    grid-column: 1 / span 3;
  }

.dng-c-tito-block .tito-submit {
  display: inline-flex !important;
}

.dng-c-tito-block .tito-submit {
  align-items: center !important;
}

.dng-c-tito-block .tito-submit {
  justify-content: center !important;
}

.dng-c-tito-block .tito-submit {
  gap: 10px !important;
}

.dng-c-tito-block .tito-submit {
  border-color: transparent !important;
}

.dng-c-tito-block .tito-submit {
  background-color: var(--dng-theme-color-btn-bg) !important;
}

.dng-c-tito-block .tito-submit {
  padding-left: 50px !important;
  padding-right: 50px !important;
}

.dng-c-tito-block .tito-submit {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.dng-c-tito-block .tito-submit {
  font-family: 'Work Sans', sans-serif !important;
}

.dng-c-tito-block .tito-submit {
  font-size: 1.125rem !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.dng-c-tito-block .tito-submit {
  color: var(--dng-theme-color-btn) !important;
}

.dng-c-tito-block .tito-submit:hover {
  opacity: 0.85;
}

.dng-c-tito-block .tito-submit:focus {
  opacity: 0.85;
}

.dng-c-tito-block .tito-submit:active {
  opacity: 0.6;
}

.dng-c-tito-block .tito-submit:disabled {
  opacity: 0.1;
}

.dng-c-tito-block .tito-submit {

    background-image: none !important;
  }

.tito-registration-section-header--heading {
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: normal;
  font-weight: 400;
  font-family: 'Agrandir Grotesk Variable', sans-serif !important;
}

.container {
  max-width: clamp(360px, 100%, 1358px) !important;
}

@media not all and (min-width: 768px) {

  .text-h1,
.text-h2,
.text-h3 {
    font-size: 2rem !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    font-weight: 400 !important;
  }
}

.text-h1,
.text-h2,
.text-h3,
.text-h4,
.\!text-h1,
.\!text-h2,
.\!text-h3,
.\!text-h4 {
  font-family: 'Agrandir Grotesk Variable', sans-serif !important;
}

.text-body-1,
.text-body-2,
.text-body-xxl,
.text-body-l .text-tag,
.text-overline {
  font-family: 'Work Sans', sans-serif !important;
}

.container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 20px;
  padding-left: 20px;
}

@media (min-width: 576px) {

  .container {
    max-width: 576px;
    padding-right: 20px;
    padding-left: 20px;
  }
}

@media (min-width: 768px) {

  .container {
    max-width: 768px;
    padding-right: 20px;
    padding-left: 20px;
  }
}

@media (min-width: 992px) {

  .container {
    max-width: 992px;
    padding-right: 20px;
    padding-left: 20px;
  }
}

@media (min-width: 1082px) {

  .container {
    max-width: 1082px;
    padding-right: 20px;
    padding-left: 20px;
  }
}

@media (min-width: 1340px) {

  .container {
    max-width: 1340px;
    padding-right: 35px;
    padding-left: 35px;
  }
}

/* PLOP_INJECT_CSS */

/*
 * The Services Index groups its cards under a unit name and tagline.
 *
 * Lives beside the card rather than inside it: the card knows nothing about
 * units, and the grouping is a property of the index that shows them.
 */

.dng-c-service-card-groups {
  gap: 80px;
}

.dng-c-service-card-group .dng-c-service-card-group__tagline {
    margin-top: 4px;
  }

.dng-c-service-card-group .dng-c-service-card-list {
    margin-top: 30px;
  }

/*
 * Filter tabs.
 *
 * Measured from the tab row the News and Insights pages already use — an
 * Elementor nested-tabs widget — rather than styled to look roughly like it:
 * 24px apart, 18px brand type, and the active tab marked by a 1px rule under
 * it. The rule is on every tab and transparent when inactive, so nothing moves
 * by a pixel when the selection changes.
 *
 * The count sits with `All` because that is the number it counts, and it stays
 * put when another tab is selected — a total that changed with the filter
 * would be a second, quieter answer to "how many services are there".
 */

.dng-c-service-card-filters {
  margin-bottom: 60px;
  gap: 24px;
}

/*
   * The kit dresses every <button>, and these are buttons — the same green
   * hover and focus fill the FAQ questions inherited, which here sat over the
   * active tab's rule and hid it. Both pseudo-classes, because the kit sets
   * both, and the tab keeps the focus ring the UA gives it.
   */

.dng-c-service-card-filters .dng-c-service-card-filters__tab,
  .dng-c-service-card-filters .dng-c-service-card-filters__tab:hover,
  .dng-c-service-card-filters .dng-c-service-card-filters__tab:focus {
    padding: 0;
    border: 0;
    border-bottom: 1px solid transparent;
    background: none;
    background-color: transparent;
    cursor: pointer;
    transition: none;
  }

.dng-c-service-card-filters .dng-c-service-card-filters__tab.is-active {
    border-bottom-color: var(--wp--preset--color--black, #2c2721);
  }

/* `All` and its count are one item, so the 24px row gap falls outside them. */

.dng-c-service-card-filters .dng-c-service-card-filters__all {
    gap: 10px;
  }

/*
   * Bordered, not just corner-ticked. The ticks are drawn to sit on an edge —
   * on a card that edge is the card's own border, and without one they read as
   * four loose squares rather than as a frame around the number.
   */

.dng-c-service-card-filters .dng-c-service-card-filters__count {
    padding: 2px 7px;
    border: 1px solid var(--wp--preset--color--black, #2c2721);
    line-height: 1.2;
  }

/* Hidden by the filter, not by the markup — see the widget. */

.dng-c-service-card-group[hidden] {
  display: none;
}

@media (max-width: 767px) {
  .dng-c-service-card-groups {
    gap: 50px;
  }
}

/*
 * "How it works" — numbered steps on the service page.
 *
 * The numerals are the section's whole visual weight: very large, very light,
 * and set in the brand face. They read as outlines at that weight, which is
 * why they carry no colour of their own beyond ink.
 */

.dng-c-how-it-works .dng-c-how-it-works__grid {
    margin-top: 60px;
    gap: 60px 40px;
  }

.dng-c-how-it-works .dng-c-how-it-works__grid:first-child {
    margin-top: 0;
  }

.dng-c-how-it-works .dng-c-how-it-works__number {
    font-size: 72px;
    font-weight: 300;
  }

.dng-c-how-it-works .dng-c-how-it-works__label {
    margin-top: 16px;
  }

.dng-c-how-it-works .dng-c-how-it-works__description {
    margin-top: 8px;
  }

@media (max-width: 767px) {
    .dng-c-how-it-works .dng-c-how-it-works__grid {
      margin-top: 40px;
      gap: 40px 20px;
    }

    .dng-c-how-it-works .dng-c-how-it-works__number {
      font-size: 56px;
    }
}

/*
 * Breadcrumbs and the back link beneath them.
 *
 * The design mutes the path and leaves the current page in full ink and
 * medium weight — the opposite of the usual "current crumb is quiet" habit,
 * so it is worth stating rather than inheriting.
 *
 * The separator is a real character rather than a pseudo-element so it is
 * selectable with the trail when someone copies the path.
 */

.dng-c-breadcrumbs .dng-c-breadcrumbs__link,
  .dng-c-breadcrumbs .dng-c-breadcrumbs__label,
  .dng-c-breadcrumbs .dng-c-breadcrumbs__separator {
    color: var(--wp--preset--color--gray, #685e52);
  }

.dng-c-breadcrumbs .dng-c-breadcrumbs__current {
    color: var(--wp--preset--color--black, #2c2721);
    font-weight: 500;
  }

/*
 * Services Index card.
 *
 * The title band and the body are padded separately because the rule between
 * them runs edge to edge — padding on the card would have inset it.
 */

.dng-c-service-card {
  min-height: 317px;
  transition: background-color 200ms ease;
}

/*
   * A card with no excerpt behind it is a title and a link, and 317px of
   * nothing between them reads as a card that failed to load rather than one
   * with less to say.
   */

.dng-c-service-card.dng-c-service-card--no-description {
    min-height: 0;
  }

.dng-c-service-card .dng-c-service-card__title {
    padding: 20px;
  }

.dng-c-service-card .dng-c-service-card__body {
    padding: 20px;
    gap: 20px;
  }

.dng-c-service-card .dng-c-service-card__more {
    margin-top: auto;
  }

.dng-c-service-card:hover,
  .dng-c-service-card:focus-within {
    background-color: var(--wp--preset--color--sand, #f0e6db);
  }

@media (prefers-reduced-motion: reduce) {
  .dng-c-service-card {
    transition: none;
  }
}

/*
 * The `unit-grid` variant of the statistics row — the "Four Units, One Systemic
 * Practice" numbers. The band variant carries no CSS of its own; everything it
 * needs is in utilities.
 *
 * The row sits on the same four-column grid as the unit cards below it, so the
 * numbers line up with the cards rather than spreading evenly.
 */

.dng-c-statistics-table--unit-grid .dng-c-statistics-table__label {
    margin-top: 20px;
  }

/*
 * The sand contact band.
 *
 * `--bleed` pulls the band out to the viewport edges from inside whatever
 * container holds it, so the colour runs full width while the copy stays on
 * the content grid. It leans on vw units, so a page that can scroll
 * horizontally will show the band 15px wider than the viewport on platforms
 * with classic scrollbars — turn the bleed off if a page ever needs that.
 */

.dng-c-contact-band {
  --dng-c-contact-band-content: 1288px;
}

.dng-c-contact-band.dng-c-contact-band--bleed {
    margin-inline: calc(50% - 50vw);
  }

.dng-c-contact-band .dng-c-contact-band__inner {
    max-width: var(--dng-c-contact-band-content);
    margin-inline: auto;
    padding-block: 100px;
    padding-inline: 20px;
  }

.dng-c-contact-band .dng-c-contact-band__title + .dng-c-contact-band__description {
    margin-top: 40px;
  }

/*
   * The form is a shortcode slot, so these style whatever engine renders it —
   * Elementor Pro, Contact Form 7 or Brevo all produce plain inputs.
   */

/* Field groups differ per engine; this spaces whatever the form emits. */

.dng-c-contact-band .dng-c-contact-band__form form > * + *,
    .dng-c-contact-band .dng-c-contact-band__form .elementor-field-group {
      margin-top: 30px;
    }

.dng-c-contact-band .dng-c-contact-band__form label,
    .dng-c-contact-band .dng-c-contact-band__form .elementor-field-label {
  font-family: 'Work Sans', sans-serif !important;
}

.dng-c-contact-band .dng-c-contact-band__form label,
    .dng-c-contact-band .dng-c-contact-band__form .elementor-field-label {
  font-size: 1rem !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.dng-c-contact-band .dng-c-contact-band__form label,
    .dng-c-contact-band .dng-c-contact-band__form .elementor-field-label {
  --tw-text-opacity: 1 !important;
  color: rgb(44 39 33 / var(--tw-text-opacity, 1)) !important;
}

.dng-c-contact-band .dng-c-contact-band__form label,
    .dng-c-contact-band .dng-c-contact-band__form .elementor-field-label {

      display: block;
      margin-bottom: 8px;
    }

/*
     * `.elementor-field` is in the list because Elementor styles its own form
     * fields by class, which outranks a bare element selector — without it the
     * inputs keep Elementor's white box and the design's underline never shows.
     *
     * The background is `!important` for the same fight one level up. The form
     * is a saved template pasted in as a shortcode, and a colour set on that
     * widget compiles to
     * `.elementor-4984 .elementor-element.elementor-element-… .elementor-field-group …`,
     * which no sane selector here can outrank. The band is a coloured panel and
     * the design draws the fields as lines on it, so this is not a preference
     * to be overridden per form — hence forcing it rather than chasing
     * specificity. Anyone wanting a filled field wants a different component.
     */

.dng-c-contact-band .dng-c-contact-band__form input[type="text"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="email"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="tel"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="url"],
    .dng-c-contact-band .dng-c-contact-band__form select,
    .dng-c-contact-band .dng-c-contact-band__form .elementor-field-textual,
    .dng-c-contact-band .dng-c-contact-band__form input.elementor-field {
  font-family: 'Work Sans', sans-serif !important;
}

.dng-c-contact-band .dng-c-contact-band__form input[type="text"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="email"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="tel"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="url"],
    .dng-c-contact-band .dng-c-contact-band__form select,
    .dng-c-contact-band .dng-c-contact-band__form .elementor-field-textual,
    .dng-c-contact-band .dng-c-contact-band__form input.elementor-field {
  font-size: 1rem !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.dng-c-contact-band .dng-c-contact-band__form input[type="text"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="email"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="tel"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="url"],
    .dng-c-contact-band .dng-c-contact-band__form select,
    .dng-c-contact-band .dng-c-contact-band__form .elementor-field-textual,
    .dng-c-contact-band .dng-c-contact-band__form input.elementor-field {
  --tw-text-opacity: 1 !important;
  color: rgb(44 39 33 / var(--tw-text-opacity, 1)) !important;
}

.dng-c-contact-band .dng-c-contact-band__form input[type="text"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="email"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="tel"],
    .dng-c-contact-band .dng-c-contact-band__form input[type="url"],
    .dng-c-contact-band .dng-c-contact-band__form select,
    .dng-c-contact-band .dng-c-contact-band__form .elementor-field-textual,
    .dng-c-contact-band .dng-c-contact-band__form input.elementor-field {

      width: 100%;
      padding: 4px 0;
      border: 0;
      border-radius: 0;
      border-bottom: 1px solid #2c2721;
      background: none !important;
    }

.dng-c-contact-band .dng-c-contact-band__form textarea,
    .dng-c-contact-band .dng-c-contact-band__form textarea.elementor-field {
  font-family: 'Work Sans', sans-serif !important;
}

.dng-c-contact-band .dng-c-contact-band__form textarea,
    .dng-c-contact-band .dng-c-contact-band__form textarea.elementor-field {
  font-size: 1rem !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.dng-c-contact-band .dng-c-contact-band__form textarea,
    .dng-c-contact-band .dng-c-contact-band__form textarea.elementor-field {
  --tw-text-opacity: 1 !important;
  color: rgb(44 39 33 / var(--tw-text-opacity, 1)) !important;
}

.dng-c-contact-band .dng-c-contact-band__form textarea,
    .dng-c-contact-band .dng-c-contact-band__form textarea.elementor-field {

      width: 100%;
      min-height: 120px;
      padding: 10px;
      border: 1px solid #2c2721;
      border-radius: 0;
      background: none !important;
    }

/*
     * Sized to its label, not to the column: a "Reach us" button was rendering
     * 535px wide, the full width of the field column.
     *
     * The width below is not what sizes it — see the flex-basis rule under
     * this block, which is the one that actually does.
     */

.dng-c-contact-band .dng-c-contact-band__form input[type="submit"],
    .dng-c-contact-band .dng-c-contact-band__form button[type="submit"] {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(44 39 33 / var(--tw-bg-opacity, 1)) !important;
}

.dng-c-contact-band .dng-c-contact-band__form input[type="submit"],
    .dng-c-contact-band .dng-c-contact-band__form button[type="submit"] {
  font-family: 'Work Sans', sans-serif !important;
}

.dng-c-contact-band .dng-c-contact-band__form input[type="submit"],
    .dng-c-contact-band .dng-c-contact-band__form button[type="submit"] {
  font-size: 1.125rem !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.dng-c-contact-band .dng-c-contact-band__form input[type="submit"],
    .dng-c-contact-band .dng-c-contact-band__form button[type="submit"] {
  --tw-text-opacity: 1 !important;
  color: rgb(249 244 240 / var(--tw-text-opacity, 1)) !important;
}

.dng-c-contact-band .dng-c-contact-band__form input[type="submit"],
    .dng-c-contact-band .dng-c-contact-band__form button[type="submit"] {

      display: inline-block;
      width: -moz-fit-content;
      width: fit-content;
      padding: 10px 50px;
      border: 0;
      border-radius: 0;
      cursor: pointer;
    }

.dng-c-contact-band .dng-c-contact-band__form input[type="submit"]:hover,
      .dng-c-contact-band .dng-c-contact-band__form input[type="submit"]:focus-visible,
      .dng-c-contact-band .dng-c-contact-band__form button[type="submit"]:hover,
      .dng-c-contact-band .dng-c-contact-band__form button[type="submit"]:focus-visible {
        opacity: 0.85;
      }

/*
     * What actually stops the button spanning the column.
     *
     * The form widget's alignment setting puts `elementor-button-align-stretch`
     * on the widget, and that ships
     * `.elementor-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button { flex-basis: 100% }`
     * — four classes, which outranks the submit rule above and decides the
     * flex item's main size before any width is consulted.
     *
     * Matched here with one more step of specificity rather than `!important`,
     * so a form that genuinely wants a full-width button can still say so. The
     * alternative was flipping the widget's alignment away from `stretch`, but
     * that setting lives in the saved form template in the database and would
     * be lost the next time someone re-saves it.
     */

.dng-c-contact-band .dng-c-contact-band__form .e-form__buttons .elementor-button[type="submit"] {
      flex: 0 0 auto;
    }

@media (max-width: 767px) {
  .dng-c-contact-band .dng-c-contact-band__inner {
    padding-block: 60px;
  }
}

/*
 * Sectors Index card mosaic.
 *
 * The block height is per-card and arrives as a custom property from PHP, so
 * the stagger between the two columns is content, not styling.
 */

.dng-c-sector-mosaic .dng-c-sector-mosaic__card {
    margin-bottom: 40px;
  }

.dng-c-sector-mosaic .dng-c-sector-mosaic__column > .dng-c-sector-mosaic__card:last-child {
    margin-bottom: 0;
  }

.dng-c-sector-mosaic .dng-c-sector-mosaic__block {
    height: var(--dng-c-sector-mosaic-block-height, 300px);
    transition: opacity 200ms ease;
  }

.dng-c-sector-mosaic .dng-c-sector-mosaic__arrow {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 22px;
    height: 22px;
  }

/*
   * The card is a colour block and then three things read in order, so the
   * spacing has to say which belongs to which — and the step off the block is
   * the largest of the three, because that is the one real break in the card.
   *
   * These are full `margin` shorthands, not `margin-top`, and that matters.
   * The title, the description and the tag list each carried a `!m-0` utility
   * to flatten the browser's default heading and paragraph margins — and being
   * `!important`, it also flattened the margins set here, so the card had been
   * rendering with no gaps at all whatever these values said. The utilities are
   * gone from the markup, which means the defaults are this rule's problem now:
   * hence a shorthand that sets the bottom to zero rather than leaving it to
   * whatever the element brings.
   */

.dng-c-sector-mosaic .dng-c-sector-mosaic__title {
    margin: 24px 0 0;
  }

.dng-c-sector-mosaic .dng-c-sector-mosaic__description {
    margin: 14px 0 0;
  }

.dng-c-sector-mosaic .dng-c-sector-mosaic__tags {
    margin: 18px 0 0;
  }

.dng-c-sector-mosaic .dng-c-sector-mosaic__tag {
    padding: 2px 10px;
  }

.dng-c-sector-mosaic a.dng-c-sector-mosaic__card:hover .dng-c-sector-mosaic__block, .dng-c-sector-mosaic a.dng-c-sector-mosaic__card:focus-visible .dng-c-sector-mosaic__block {
        opacity: 0.85;
      }

.dng-c-sector-mosaic a.dng-c-sector-mosaic__card:hover .dng-c-sector-mosaic__title, .dng-c-sector-mosaic a.dng-c-sector-mosaic__card:focus-visible .dng-c-sector-mosaic__title {
        text-decoration: underline;
      }

@media (max-width: 767px) {
  .dng-c-sector-mosaic .dng-c-sector-mosaic__block {
    /* The design's tall blocks are a two-column device; capped on one column. */
    height: min(var(--dng-c-sector-mosaic-block-height, 300px), 260px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dng-c-sector-mosaic .dng-c-sector-mosaic__block {
    transition: none;
  }
}

/*
 * "Sectors we know deeply" — the homepage sector row.
 *
 * The boxes carry the corner-tick motif, so they need the tick squares to sit
 * clear of the border: the 20px gutter is a minimum, not a preference.
 */

.dng-c-sector-highlights .dng-c-sector-highlights__grid {
    margin-top: 60px;
  }

.dng-c-sector-highlights .dng-c-sector-highlights__grid:first-child {
    margin-top: 0;
  }

.dng-c-sector-highlights .dng-c-sector-highlights__item {
    min-height: 120px;
    transition: background-color 200ms ease;
  }

.dng-c-sector-highlights a.dng-c-sector-highlights__item:hover,
    .dng-c-sector-highlights a.dng-c-sector-highlights__item:focus-visible {
      background-color: var(--wp--preset--color--sand, #f0e6db);
    }

.dng-c-sector-highlights a.dng-c-sector-highlights__item:hover .dng-c-sector-highlights__label, .dng-c-sector-highlights a.dng-c-sector-highlights__item:focus-visible .dng-c-sector-highlights__label {
        text-decoration: none;
      }

.dng-c-sector-highlights .dng-c-sector-highlights__cta {
    margin-top: 30px;
  }

@media (max-width: 575px) {
    .dng-c-sector-highlights .dng-c-sector-highlights__grid {
      margin-top: 40px;
    }

    .dng-c-sector-highlights .dng-c-sector-highlights__cta {
      justify-content: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
  .dng-c-sector-highlights .dng-c-sector-highlights__item {
    transition: none;
  }
}

/*
 * "Design Consultancy Services" — services as bordered tags, grouped by unit.
 *
 * The spacing between the intro and the first group is larger than the gap
 * between groups — the design opens the section wider than it separates its
 * parts — which is why it is set here rather than left to the groups' own gap.
 *
 * Both came down one step of the spacing scale (80 → 60, and the groups' gap
 * 60 → 50) after the section read too airy in place. The step, rather than a
 * hand-picked number, is what keeps it on the scale everything else uses; the
 * proportion between the two is unchanged.
 */

.dng-c-service-tags .dng-c-service-tags__groups {
    margin-top: 60px;
  }

/* No heading above the groups (the Related Services wrap) needs no offset. */

.dng-c-service-tags .dng-c-service-tags__groups:first-child {
    margin-top: 0;
  }

.dng-c-service-tags .dng-c-service-tags__tag {
    padding: 4px 12px;
    transition: background-color 200ms ease;
  }

.dng-c-service-tags a.dng-c-service-tags__tag:hover,
    .dng-c-service-tags a.dng-c-service-tags__tag:focus-visible {
      background-color: var(--wp--preset--color--sand, #f0e6db);
    }

.dng-c-service-tags .dng-c-service-tags__cta {
    margin-top: 30px;
  }

@media (max-width: 575px) {
    .dng-c-service-tags .dng-c-service-tags__groups {
      margin-top: 30px;
    }

    .dng-c-service-tags .dng-c-service-tags__cta {
      justify-content: flex-start;
      margin-top: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
  .dng-c-service-tags .dng-c-service-tags__tag {
    transition: none;
  }
}

.dng-c-faq-accordion {
  --dng-c-faq-accordion-duration: 300ms;

  /*
   * A question and its answer are one line of text each at reading size, and a
   * row that runs the full width of a 1512px design puts the chevron a screen
   * away from the question it belongs to. Capped here rather than on the
   * container holding it, so the limit holds wherever the block is dropped —
   * the page template, a case study, or a section an editor builds by hand.
   */
  max-width: 980px;
}

/*
   * The question is a real <button> so the disclosure is operable and
   * announced — and that alone was enough for the Elementor kit to dress it as
   * one of its buttons: `.elementor-kit-8 button:hover, …:focus` fills the row
   * with the Training green at 68% over a 0.3s transition. Nothing in this
   * component asked for it, and a question that turns green on the way past
   * reads as a state the accordion does not have.
   *
   * Both pseudo-classes are named because the kit sets both, and the
   * transition goes with them: with no colour left to change it would only
   * animate whatever the kit reaches for next. The focus ring is untouched —
   * it is the UA's, and it is what actually has to stay visible here.
   */

.dng-c-faq-accordion .dng-c-faq-accordion__trigger,
  .dng-c-faq-accordion .dng-c-faq-accordion__trigger:hover,
  .dng-c-faq-accordion .dng-c-faq-accordion__trigger:focus {
    border: 0;
    background: none;
    background-color: transparent;
    cursor: pointer;
    transition: none;
  }

.dng-c-faq-accordion .dng-c-faq-accordion__icon {
    transform: rotate(180deg);
    transition: transform var(--dng-c-faq-accordion-duration) ease;
  }

.dng-c-faq-accordion .dng-c-faq-accordion__trigger[aria-expanded="false"] .dng-c-faq-accordion__icon {
    transform: rotate(0deg);
  }

/*
   * grid-template-rows 1fr -> 0fr animates to the panel's natural height with
   * no JS measuring. visibility:hidden is what actually takes the collapsed
   * answer out of the accessibility tree and the tab order.
   */

.dng-c-faq-accordion .dng-c-faq-accordion__panel {
    display: grid;
    grid-template-rows: 1fr;
    transition:
      grid-template-rows var(--dng-c-faq-accordion-duration) ease,
      visibility var(--dng-c-faq-accordion-duration);
    visibility: visible;
  }

.dng-c-faq-accordion .dng-c-faq-accordion__panel-inner {
    overflow: hidden;
  }

.dng-c-faq-accordion .dng-c-faq-accordion__item.is-closed .dng-c-faq-accordion__panel {
    grid-template-rows: 0fr;
    visibility: hidden;
  }

/* The first collapse happens on init and should not be animated. */

.dng-c-faq-accordion.is-initialising .dng-c-faq-accordion__panel {
    transition: none;
  }

/* Closes the stack off; the other rules live on each item's top border. */

.dng-c-faq-accordion .dng-c-faq-accordion__item:last-child {
  border-bottom-width: 1px;
}

.dng-c-faq-accordion .dng-c-faq-accordion__item:last-child {
  border-style: solid;
}

.dng-c-faq-accordion .dng-c-faq-accordion__item:last-child {
  --tw-border-opacity: 1;
  border-color: rgb(44 39 33 / var(--tw-border-opacity, 1));
}

@media (prefers-reduced-motion: reduce) {
    .dng-c-faq-accordion .dng-c-faq-accordion__panel,
    .dng-c-faq-accordion .dng-c-faq-accordion__icon {
      transition: none;
    }
}

.dng-c-unit-card {
  /* 322x400 in the Figma; the width itself comes from whatever grid holds the card. */
  max-width: 100%;
}

.dng-c-corner-ticks {
  --dng-c-corner-ticks-size: 8px;
  --dng-c-corner-ticks-bg: #f9f4f0;
  --dng-c-corner-ticks-color: #2c2721;

  position: relative;
}

.dng-c-corner-ticks .dng-c-corner-ticks__square {
    position: absolute;
    z-index: 10;
    display: block;
    width: var(--dng-c-corner-ticks-size);
    border: 1px solid var(--dng-c-corner-ticks-color);
    aspect-ratio: 1;
    background-color: var(--dng-c-corner-ticks-bg);
    content: "";
    pointer-events: none;
  }

.dng-c-corner-ticks .dng-c-corner-ticks__square--top-left {
      top: 0;
      left: 0;
      transform: translate(-50%, -50%);
    }

.dng-c-corner-ticks .dng-c-corner-ticks__square--bottom-left {
      bottom: 0;
      left: 0;
      transform: translate(-50%, 50%);
    }

.dng-c-corner-ticks .dng-c-corner-ticks__square--top-right {
      top: 0;
      right: 0;
      transform: translate(50%, -50%);
    }

.dng-c-corner-ticks .dng-c-corner-ticks__square--bottom-right {
      right: 0;
      bottom: 0;
      transform: translate(50%, 50%);
    }

.dng-c-corner-ticks .dng-c-corner-ticks__square--center-left {
      top: 50%;
      left: 0;
      transform: translate(-50%, -50%);
    }

.dng-c-corner-ticks .dng-c-corner-ticks__square--center-right {
      top: 50%;
      right: 0;
      transform: translate(50%, -50%);
    }

.dng-c-button-themed-wrapper .elementor-button {
  background: var(--dng-theme-color-btn-bg) !important;
  color: var(--dng-theme-color-btn) !important;

  transition: opacity 250ms ease-in-out;
}

.dng-c-button-themed-wrapper .elementor-button:hover,
  .dng-c-button-themed-wrapper .elementor-button:focus {
    background: var(--dng-theme-color-btn-bg) !important;
    color: var(--dng-theme-color-btn) !important;
    opacity: 0.85;
  }

.dng-c-button-themed-wrapper .elementor-button:active {
    background: var(--dng-theme-color-btn-bg) !important;
    color: var(--dng-theme-color-btn) !important;
    opacity: 0.6;
  }

.dng-c-button-themed-wrapper .elementor-button:disabled {
    background: var(--dng-theme-color-btn-bg) !important;
    color: var(--dng-theme-color-btn) !important;
    opacity: 0.1;
  }

/* The corner squares themselves live in _corner-ticks.css. */

.dng-c-card-tags .dng-c-card-tags__tag {
    padding: 1px 9px;
    border: 1px solid black;
    font-size: 16px;
    white-space: nowrap;
  }

.dng-c-design-approach-duality g[data-section-items] {
  --color: var(--wp--preset--color--forest-green);
}

.dng-c-design-approach-duality g[data-section-items] path:not(.dng-c-design-approach-duality__line) {
    fill: var(--color);
    transition: fill 250ms ease-in-out;
  }

.dng-c-design-approach-duality g[data-section-items] .dng-c-design-approach-duality__line {
    stroke: var(--color);
    transition: stroke 250ms ease-in-out;
  }

.dng-c-design-approach-duality g[data-section-items] .dng-c-design-approach-duality__indicator {
    stroke: var(--color);
    stroke-dasharray: 400;
    stroke-dashoffset: 400;
    transition: stroke-dashoffset 1s ease-in-out 600ms;
  }

.dng-c-design-approach-duality g[data-section-items].is-active {
  --color: #f9f4f0;
}

.dng-c-design-approach-duality g[data-section-items].is-active .dng-c-design-approach-duality__indicator {
    stroke-dashoffset: 0;
  }

@property --gradient-percentage {
  inherits: false;
  initial-value: 0%;
  syntax: "<percentage>";
}

.dng-c-fading-block {
  --gradient-percentage: 95%;

  -webkit-mask-image: linear-gradient(
    to top,
    transparent var(--gradient-percentage),
    red
  );

          mask-image: linear-gradient(
    to top,
    transparent var(--gradient-percentage),
    red
  );
  transition: --gradient-percentage 3s cubic-bezier(0.16, 1, 0.3, 1);
}

.is-visible.dng-c-fading-block {
  --gradient-percentage: -200%;
}

.dng-c-frame {
  --square-width: 8px;
  --square-color: #f9f4f0;
  --color: #2c2721;

  position: relative;
  display: inline-block;
  padding: calc(var(--square-width) / 2);
}

/** The Squares */

.dng-c-frame__square {
    position: absolute;
    z-index: 10;
    display: block;
    width: var(--square-width);
    border: 1px solid var(--color);
    aspect-ratio: 1;
    background-color: var(--square-color);
    content: "";
    pointer-events: none;
  }

.dng-c-frame__square--top-left {
      top: 0;
      left: 0;
    }

.dng-c-frame__square--center-left {
      top: 50%;
      left: 0;
      transform: translateY(-50%);
    }

@media (max-width: 767.98px) {

.dng-c-frame__square--center-left {
        display: none
    }
      }

.dng-c-frame__square--bottom-left {
      bottom: 0;
      left: 0;
    }

.dng-c-frame__square--top-right {
      top: 0;
      right: 0;
    }

.dng-c-frame__square--center-right {
      top: 50%;
      right: 0;
      transform: translateY(-50%);
    }

@media (max-width: 767.98px) {

.dng-c-frame__square--center-right {
        display: none
    }
      }

.dng-c-frame__square--bottom-right {
      right: 0;
      bottom: 0;
    }

.dng-c-frame__border {
    position: absolute;
    background-color: var(--color);
  }

.dng-c-frame__border--top {
      top: calc(var(--square-width) / 2);
      left: calc(var(--square-width) / 2);
      width: calc(100% - (var(--square-width) / 2));
      height: 1px;
    }

.dng-c-frame__border--right {
      top: calc(var(--square-width) / 2);
      right: calc(var(--square-width) / 2);
      width: 1px;
      height: calc(100% - (var(--square-width) / 2));
    }

.dng-c-frame__border--left {
      bottom: calc(var(--square-width) / 2);
      left: calc(var(--square-width) / 2);
      width: 1px;
      height: calc(100% - (var(--square-width) / 2));
    }

.dng-c-frame__border--bottom {
      right: calc(var(--square-width) / 2);
      bottom: calc(var(--square-width) / 2);
      width: calc(100% - (var(--square-width) / 2));
      height: 1px;
    }

@media (max-width: 767.98px) {

.dng-c-frame {
    --square-width: 4px
}
  }

.dng-c-frame--white {
  --color: #f9f4f0;
  --square-color: var(--wp--preset--color--forest-green);
}

.dng-c-green-framed-card {
  --square-width: 8px;

  position: relative;
  width: 100%;
  max-width: 500px;
  border: 1px solid #f9f4f0;
  background-color: var(--wp--preset--color--green);
  color: #f9f4f0;
}

.dng-c-green-framed-card:before {
    position: absolute;
    display: block;
    width: var(--square-width);
    border: 1px solid #2c2721;
    aspect-ratio: 1;
    background-color: var(--wp--preset--color--white);
    content: "";
    pointer-events: none;

    top: -4px;
    left: -4px;
  }

.dng-c-green-framed-card:after {
    position: absolute;
    display: block;
    width: var(--square-width);
    border: 1px solid #2c2721;
    aspect-ratio: 1;
    background-color: var(--wp--preset--color--white);
    content: "";
    pointer-events: none;

    top: -4px;
    right: -4px;
  }

.dng-c-green-framed-card__header {
  font-family: 'Agrandir Grotesk Variable', sans-serif;
}

.dng-c-green-framed-card__header {

    position: relative;
    padding: 20px 18px 12px;
    border-bottom: 1px solid #f9f4f0;
  }

.dng-c-green-framed-card__header:before {
      position: absolute;
      display: block;
      width: var(--square-width);
      border: 1px solid #2c2721;
      aspect-ratio: 1;
      background-color: var(--wp--preset--color--white);
      content: "";
      pointer-events: none;

      bottom: -4px;
      left: -4px;
    }

.dng-c-green-framed-card__header:after {
      position: absolute;
      display: block;
      width: var(--square-width);
      border: 1px solid #2c2721;
      aspect-ratio: 1;
      background-color: var(--wp--preset--color--white);
      content: "";
      pointer-events: none;

      right: -4px;
      bottom: -4px;
    }

.dng-c-green-framed-card__content-wrapper {
    overflow: hidden;
  }

.dng-c-green-framed-card__content {
  font-family: 'Work Sans', sans-serif;
}

.dng-c-green-framed-card__content {
  font-size: 0.875rem;
  line-height: 1.4;
  letter-spacing: normal;
  font-weight: 400;
}

.dng-c-green-framed-card__content {

    padding: 20px;
  }

.dng-c-green-framed-card__content:before {
      position: absolute;
      display: block;
      width: var(--square-width);
      border: 1px solid #2c2721;
      aspect-ratio: 1;
      background-color: var(--wp--preset--color--white);
      content: "";
      pointer-events: none;

      bottom: -4px;
      left: -4px;
    }

.dng-c-green-framed-card__content:after {
      position: absolute;
      display: block;
      width: var(--square-width);
      border: 1px solid #2c2721;
      aspect-ratio: 1;
      background-color: var(--wp--preset--color--white);
      content: "";
      pointer-events: none;

      right: -4px;
      bottom: -4px;
    }

.dng-c-green-framed-card__content > *:last-child {
      margin-bottom: 0;
    }

.dng-c-green-framed-card {
  --max-width: 500px;
}

@media (min-width: 1082px) {

  .dng-c-main-header {
    min-height: 250px;
  }
}

.dng-c-main-header {

  color: var(--content-color);
}

.dng-c-main-header a {
    color: var(--content-color);
  }

.dng-c-main-header__logo path {
    fill: var(--content-color);
  }

.dng-c-main-header__rock path {
    stroke: var(--content-color);
  }

.dng-c-main-header,
.dng-c-main-header--light {
  --content-color: #2c2721;
}

.dng-c-main-header--dark {
  --content-color: #f9f4f0;
}

@media (max-width: 767.98px) {
    .dng-c-horizontal-tabs .e-n-tabs-heading {
      --n-tabs-title-height: 28px;
    }

    .dng-c-horizontal-tabs .e-n-tabs-heading::after {
      position: absolute;
      z-index: 10;
      top: 0;
      right: 0;
      display: block;
      width: 40px;
      height: 40px;
      background-image: linear-gradient(
        90deg,
        hsla(27, 43%, 96%, 0) 23%,
        #f9f4f0ee 48%,
        #f9f4f0 90%
      );
      content: "";
      pointer-events: none;
    }
  }

.dng-c-partner-list {
  --n-cols: 3;

  display: grid;
  gap: 16px;
  grid-template-columns: repeat(var(--n-cols), 1fr);
}

.dng-c-partner-list__item {
    display: flex;
    width: 100%;
    padding: 12px;
    border: 1px solid #2c2721;
    aspect-ratio: 1.56;
  }

.dng-c-partner-list__item:before {
      position: absolute;
      display: block;
      width: var(--square-width);
      border: 1px solid #2c2721;
      aspect-ratio: 1;
      background-color: var(--wp--preset--color--white);
      content: "";
      pointer-events: none;

      bottom: -4px;
      left: -4px;
    }

.dng-c-partner-list__item:after {
      position: absolute;
      display: block;
      width: var(--square-width);
      border: 1px solid #2c2721;
      aspect-ratio: 1;
      background-color: var(--wp--preset--color--white);
      content: "";
      pointer-events: none;

      right: -4px;
      bottom: -4px;
    }

.dng-c-partner-list__image {
    width: min(100%, 300px);
    height: min(100%, 150px);
    -o-object-fit: contain;
       object-fit: contain;
  }

.dng-c-partner-list__image:before {
      position: absolute;
      display: block;
      width: var(--square-width);
      border: 1px solid #2c2721;
      aspect-ratio: 1;
      background-color: var(--wp--preset--color--white);
      content: "";
      pointer-events: none;

      top: -4px;
      left: -4px;
    }

.dng-c-partner-list__image:after {
      position: absolute;
      display: block;
      width: var(--square-width);
      border: 1px solid #2c2721;
      aspect-ratio: 1;
      background-color: var(--wp--preset--color--white);
      content: "";
      pointer-events: none;

      top: -4px;
      right: -4px;
    }

@media (max-width: 767.98px) {

.dng-c-partner-list {
    --n-cols: 2
}
  }

.dng-c-rex-graph {
  --active-color: #c7cef466;
}

@media (max-width: 768px) {

.dng-c-rex-graph {
    width: 100%;
    height: auto;

    transform: scale(1.2)
}
  }

@media (max-width: 768px) {

.dng-c-rex-graph .dng-c-rex-graph__slice {
      fill: var(--active-color);
  }
    }

.dng-c-rex-graph .dng-c-rex-graph__slice {

    fill: transparent;
}

@media (max-width: 768px) {

.dng-c-rex-graph .dng-c-rex-graph__feature {
      display: none;
  }
    }

.dng-c-rex-graph .dng-c-rex-graph__feature {

    opacity: 0;
}

@media (max-width: 768px) {

.dng-c-rex-graph .dng-c-rex-graph__dashline {
      display: none
  }
    }

@media (max-width: 768px) {

.dng-c-rex-graph .dng-c-rex-graph__graph-cover {
      fill: var(--active-color);
  }
    }

.dng-c-rex-graph .dng-c-rex-graph__graph-cover {

    fill: transparent;
}

.dng-c-rex-graph:has([data-section-toggle="1"]:hover) .dng-c-rex-graph__slice[data-section="1"] {
      fill: var(--active-color);
    }

.dng-c-rex-graph:has([data-section-toggle="1"]:hover) .dng-c-rex-graph__feature[data-section="1"] {
      opacity: 1;
    }

.dng-c-rex-graph:has([data-section-toggle="1"]:hover) .dng-c-rex-graph__graph-cover[data-section="1"] {
      fill: var(--active-color);
    }

.dng-c-rex-graph:has([data-section-toggle="2"]:hover) .dng-c-rex-graph__slice[data-section="2"] {
      fill: var(--active-color);
    }

.dng-c-rex-graph:has([data-section-toggle="2"]:hover) .dng-c-rex-graph__feature[data-section="2"] {
      opacity: 1;
    }

.dng-c-rex-graph:has([data-section-toggle="2"]:hover) .dng-c-rex-graph__graph-cover[data-section="2"] {
      fill: var(--active-color);
    }

.dng-c-rex-graph:has([data-section-toggle="3"]:hover) .dng-c-rex-graph__slice[data-section="3"] {
      fill: var(--active-color);
    }

.dng-c-rex-graph:has([data-section-toggle="3"]:hover) .dng-c-rex-graph__feature[data-section="3"] {
      opacity: 1;
    }

.dng-c-rex-graph:has([data-section-toggle="3"]:hover) .dng-c-rex-graph__graph-cover[data-section="3"] {
      fill: var(--active-color);
    }

.dng-c-rex-graph:has([data-section-toggle="4"]:hover) .dng-c-rex-graph__slice[data-section="4"] {
      fill: var(--active-color);
    }

.dng-c-rex-graph:has([data-section-toggle="4"]:hover) .dng-c-rex-graph__feature[data-section="4"] {
      opacity: 1;
    }

.dng-c-rex-graph:has([data-section-toggle="4"]:hover) .dng-c-rex-graph__graph-cover[data-section="4"] {
      fill: var(--active-color);
    }

.dng-c-rex-graph:has([data-section-toggle="5"]:hover) .dng-c-rex-graph__slice[data-section="5"] {
      fill: var(--active-color);
    }

.dng-c-rex-graph:has([data-section-toggle="5"]:hover) .dng-c-rex-graph__feature[data-section="5"] {
      opacity: 1;
    }

.dng-c-rex-graph:has([data-section-toggle="5"]:hover) .dng-c-rex-graph__graph-cover[data-section="5"] {
      fill: var(--active-color);
    }

.dng-c-rex-map {
  --bg-color: var(--wp--preset--color--green);
}

@media (max-width: 768px) {

.dng-c-rex-map {
    display: none
}
  }

.dng-c-rex-map__just-a-rock {
  fill: var(--bg-color);
}

.dng-c-rex-map__map {
  width: 100%;
  max-width: 530px;
}

.dng-c-rex-map__toggle,
.dng-c-rex-map__toggle:hover {
  cursor: pointer;
}

.dng-c-rex-map__shape {
  fill: var(--bg-color);
  transition: fill 250ms ease-in-out;
}

.dng-c-rex-map__shape:hover,
.dng-c-rex-map__toggle.is-hovered .dng-c-rex-map__shape {
  fill: var(--dng-theme-color);
}

.dng-c-rex-map__letter {
  fill: var(--wp--preset--color--white);
}

.dng-c-rex-map path:not(.dng-c-rex-map__letter) {
  stroke: var(--wp--preset--color--white);
}

.dng-c-rex-map__toggle:hover .dng-c-rex-map__letter,
.dng-c-rex-map__toggle.is-hovered .dng-c-rex-map__letter {
  fill: var(--wp--preset--color--black);
}

.dng-c-rex-map__indicators {
  z-index: 1;
}

.dng-c-rich-text-content-unstyled > *,
.dng-c-rich-text-content-unstyled a,
.dng-c-rich-text-content-unstyled a:hover {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.dng-c-rich-text-content-unstyled > *:last-child {
  margin-bottom: 0;
}

.elementor-widget-dng_section_change {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
}

.elementor-editor-active .dng-c-team-member-popup {
  display: none !important;
}

.elementor-editor-active .dng-c-the-rock__messages {
  /* Fixed elements aren't appropriate for the editor */
  position: absolute !important;
}

.dng-c-the-rock__featured-card {
  visibility: hidden;
}

@media (max-width: 767.98px) {

.dng-c-the-rock__featured-card .dng-c-the-rock-card {
    top: 450px !important;
    right: auto !important;
    left: 20px !important;
    transform-origin: top left !important
}
  }

@media (max-width: 767.98px) {

.dng-c-the-rock__featured-card--first .dng-c-the-rock-card {
    right: 20px !important;
    left: auto !important;
    transform-origin: top right !important
}
  }

@media (max-width: 767.98px) {

.dng-c-the-rock__featured-card--top .dng-c-the-rock-card {
    top: 350px !important
}
  }

@media (max-width: 767.98px) {

.dng-c-the-rock .dng-c-framed-word {
    font-size: 1.5rem !important
}
  }

.elementor-editor-active .dng-c-the-rock-card {
  /* Fixed elements aren't appropriate for the editor */
  position: absolute !important;
}

.dng-c-the-rock-card {
  --limit-top: 100%;
  --limit-left: 100%;
  --left: var(--left-coordinate, auto);
  --top: var(--top-coordinate, auto);

  top: min(var(--top), var(--limit-left));

  left: min(var(--left), var(--limit-left));
  cursor: pointer;
}

.dng-c-the-rock-card .dng-c-frame__border {
    z-index: 1;
  }

@media (max-width: 1146.98px) {

.dng-c-the-rock-card {
    --limit-top: 75%;
    --limit-left: 65%;
    --left: var(--left-coordinate-mobile, auto);
    --top: var(--top-coordinate-mobile, auto)
}
  }

.dng-c-the-rock-card__close,
  .dng-c-the-rock-card__close:hover,
  .dng-c-the-rock-card__close:focus,
  .dng-c-the-rock-card__close:active {
    background-color: transparent !important;
  }

.dng-c-the-rock-card__close-icon {
  display: none;
}

.dng-c-the-rock-card__expand-icon {
  display: block;
}

.dng-c-the-rock-card__content.is-active .dng-c-the-rock-card__close-icon {
  display: block;
}

.dng-c-the-rock-card__content.is-active .dng-c-the-rock-card__expand-icon {
  display: none;
}

@media (max-width: 1146.98px) {

.dng-c-the-rock__featured-card--first {
    left: 5% !important
}
  }

.dng-c-site-footer {
  /* The footer is a full-bleed band whose content still has to line up with
     the page grid above it. Its Elementor container is full-width so the green
     reaches the edges, which means the constraining happens here instead —
     against `--dng-content-width`, which the component sets from the Elementor
     kit at render time so there is no second copy of the number to drift. */
  padding-right: var(--wp--preset--spacing--sm);
  padding-left: var(--wp--preset--spacing--sm);
}

.dng-c-site-footer__grid {
  width: 100%;
  max-width: var(--dng-content-width, 1288px);
  margin-inline: auto;
}

/* The four columns are not equal. Measured off the frame, they run
   274 / 190 / 165 / 248 with gaps of 247 / 69 / 96 — a wide breathing space
   after the identity column, then tighter ones between the link columns.
   Each track below carries its own trailing gap, which is why the gap is
   zeroed: expressing it as one uniform `gap` cannot produce three different
   gutters. The extra specificity is to beat Tailwind's `lg:grid-cols-4`,
   which sets the same property at the same breakpoint. */

@media (width >= 992px) {
  .dng-c-site-footer .dng-c-site-footer__grid {
    -moz-column-gap: 0;
         column-gap: 0;
    grid-template-columns: 521fr 259fr 261fr 248fr;
  }
}

/* Link lists wrap to two lines often ("Designing Systemic Innovation &
   Strategy"), and at the inherited 1.4 the two lines read as two separate
   links. Tighter leading keeps a wrapped label reading as one item.

   The leading itself is set with `!leading-[1.25]` on the element: Tailwind's
   `text-body-m` carries a line-height of its own at the same specificity, so
   a plain rule here would win or lose depending on source order. */

.dng-c-site-footer__link {
  display: inline-block;
}

/* The co-financing logos are a single row in the design; at 28px they wrapped
   onto two. */

.dng-c-site-footer__cofinancing img {
  width: auto;
  height: 22px;
}

/* The newsletter form is rendered by Brevo, so it is styled from the outside.
   Everything inside it inherits the 24px body size, which made the field
   labels bigger than the column heading above them. */

.dng-c-site-footer__newsletter,
.dng-c-site-footer__newsletter :is(p, label, span, div, input) {
  font-size: var(--wp--preset--font-size--body-m);
  line-height: 1.4;
}

.dng-c-site-footer__newsletter :is(p, label) {
  margin: 0 0 var(--wp--preset--spacing--xxs);
  color: var(--wp--preset--color--white);
}

.dng-c-site-footer__newsletter :is(input[type="text"], input[type="email"]) {
  width: 100%;
  padding: 0 0 var(--wp--preset--spacing--xxs);
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid var(--wp--preset--color--white);
  background: transparent;
  color: var(--wp--preset--color--white);
}

.dng-c-site-footer__newsletter input[type="submit"] {
  padding: var(--wp--preset--spacing--xxs) var(--wp--preset--spacing--md);
  border: 0;
  border-radius: 0;
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--forest-green);
  cursor: pointer;
}

.dng-c-site-footer__newsletter input[type="submit"]:hover {
  opacity: 0.85;
}

/* The colour field is a flat block in the tool's unit colour, sized by the
   design's 634x295 ratio. The arrow is ink on colour in every unit, including
   the two dark ones — that is what the frame draws, so it is not themed. */

.dng-c-tool-card__block {
  /*
   * The card is a flex column with `items-start`, so its children shrink to fit
   * instead of stretching. With nothing else to go on, the block sized itself
   * from `min-height` and the aspect ratio — 200px x 634/295 = 430px — and sat
   * ~194px short of the card on a 624px column, which is the gap. Width first,
   * so the ratio derives the height from the card rather than the other way
   * round; min-height then only matters when the card is very narrow.
   */
  width: 100%;
  min-height: 200px;
}

/* The description runs long (SHAPER's is four lines in the design) and sits
   directly under a bold one-word name, so it needs a little air above it that
   the flex gap alone does not give at this type size. */

.dng-c-tool-card__description {
  max-width: 60ch;
}

/* Cards in a pair rarely have equal copy. Pushing the CTA down keeps the two
   buttons on different baselines — which is what the design shows — while
   still leaving the blocks and blobs aligned at the top. */

.dng-c-tool-card {
  height: 100%;
}

/*
Custom styles for single pages (e.g.: Work detail pages, Learning detail pages)
*/

.single-work.dng-theme-shape .elementor-location-single h1,
    .single-work.dng-theme-shape .elementor-location-single h2,
    .single-work.dng-theme-shape .elementor-location-single h3,
    .single-work.dng-theme-shape .elementor-location-single h4,
    .single-learn.dng-theme-shape .elementor-location-single h1,
    .single-learn.dng-theme-shape .elementor-location-single h2,
    .single-learn.dng-theme-shape .elementor-location-single h3,
    .single-learn.dng-theme-shape .elementor-location-single h4 {
  font-family: 'Agrandir Grotesk Variable', sans-serif !important;
}

.single-work.dng-theme-shape .elementor-location-single h1,
    .single-work.dng-theme-shape .elementor-location-single h2,
    .single-work.dng-theme-shape .elementor-location-single h3,
    .single-work.dng-theme-shape .elementor-location-single h4,
    .single-learn.dng-theme-shape .elementor-location-single h1,
    .single-learn.dng-theme-shape .elementor-location-single h2,
    .single-learn.dng-theme-shape .elementor-location-single h3,
    .single-learn.dng-theme-shape .elementor-location-single h4 {

  font-stretch: 150%;
  font-variation-settings:
    "wght" 400,
    "wdth" 150;
}

.single-work.dng-theme-craft .elementor-location-single h1,
    .single-work.dng-theme-craft .elementor-location-single h2,
    .single-work.dng-theme-craft .elementor-location-single h3,
    .single-work.dng-theme-craft .elementor-location-single h4,
    .single-learn.dng-theme-craft .elementor-location-single h1,
    .single-learn.dng-theme-craft .elementor-location-single h2,
    .single-learn.dng-theme-craft .elementor-location-single h3,
    .single-learn.dng-theme-craft .elementor-location-single h4 {
  font-family: 'Agrandir Variable', sans-serif !important;
}

.single-work.dng-theme-craft .elementor-location-single h1,
    .single-work.dng-theme-craft .elementor-location-single h2,
    .single-work.dng-theme-craft .elementor-location-single h3,
    .single-work.dng-theme-craft .elementor-location-single h4,
    .single-learn.dng-theme-craft .elementor-location-single h1,
    .single-learn.dng-theme-craft .elementor-location-single h2,
    .single-learn.dng-theme-craft .elementor-location-single h3,
    .single-learn.dng-theme-craft .elementor-location-single h4 {

  font-variation-settings:
    "wght" 336,
    "wdth" 75;
}

.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;
}

.pointer-events-auto {
  pointer-events: auto;
}

.visible {
  visibility: visible;
}

.invisible {
  visibility: hidden;
}

.static {
  position: static;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.sticky {
  position: sticky;
}

.inset-0 {
  inset: 0;
}

.inset-x-0 {
  left: 0;
  right: 0;
}

.-left-\[25px\] {
  left: -25px;
}

.-top-\[50px\] {
  top: -50px;
}

.bottom-0 {
  bottom: 0;
}

.bottom-\[34\%\] {
  bottom: 34%;
}

.bottom-\[4\.5\%\] {
  bottom: 4.5%;
}

.bottom-\[85px\] {
  bottom: 85px;
}

.bottom-xl {
  bottom: 50px;
}

.bottom-xxl {
  bottom: 60px;
}

.left-0 {
  left: 0;
}

.left-1\/2 {
  left: 50%;
}

.left-\[130px\] {
  left: 130px;
}

.left-\[200px\] {
  left: 200px;
}

.left-\[3\%\] {
  left: 3%;
}

.left-\[35\%\] {
  left: 35%;
}

.left-\[55\%\] {
  left: 55%;
}

.left-\[calc\(100\%-8px\)\] {
  left: calc(100% - 8px);
}

.left-full {
  left: 100%;
}

.left-md {
  left: 30px;
}

.left-xxl {
  left: 60px;
}

.right-0 {
  right: 0;
}

.right-\[1\%\] {
  right: 1%;
}

.right-\[200px\] {
  right: 200px;
}

.right-\[29px\] {
  right: 29px;
}

.right-\[calc\(100\%-8px\)\] {
  right: calc(100% - 8px);
}

.right-full {
  right: 100%;
}

.right-lg {
  right: 40px;
}

.right-md {
  right: 30px;
}

.right-sm {
  right: 20px;
}

.right-xl {
  right: 50px;
}

.right-xxl {
  right: 60px;
}

.right-xxs {
  right: 10px;
}

.top-0 {
  top: 0;
}

.top-1\/2 {
  top: 50%;
}

.top-\[120px\] {
  top: 120px;
}

.top-\[15\%\] {
  top: 15%;
}

.top-\[27px\] {
  top: 27px;
}

.top-\[2px\] {
  top: 2px;
}

.top-\[2vw\] {
  top: 2vw;
}

.top-\[30\%\] {
  top: 30%;
}

.top-\[46px\] {
  top: 46px;
}

.top-\[53\%\] {
  top: 53%;
}

.top-\[55\%\] {
  top: 55%;
}

.top-\[85px\] {
  top: 85px;
}

.top-lg {
  top: 40px;
}

.top-sm {
  top: 20px;
}

.top-xxl {
  top: 60px;
}

.top-xxs {
  top: 10px;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.z-30 {
  z-index: 30;
}

.z-40 {
  z-index: 40;
}

.z-50 {
  z-index: 50;
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.col-span-1 {
  grid-column: span 1 / span 1;
}

.col-span-2 {
  grid-column: span 2 / span 2;
}

.\!m-0 {
  margin: 0 !important;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.\!mb-0 {
  margin-bottom: 0 !important;
}

.\!mb-\[16px\] {
  margin-bottom: 16px !important;
}

.\!mb-\[8px\] {
  margin-bottom: 8px !important;
}

.\!mb-sm {
  margin-bottom: 20px !important;
}

.\!mb-xl {
  margin-bottom: 50px !important;
}

.\!mb-xs {
  margin-bottom: 16px !important;
}

.\!mt-xxs {
  margin-top: 10px !important;
}

.-mt-\[14px\] {
  margin-top: -14px;
}

.mb-4xl {
  margin-bottom: 96px;
}

.mb-\[40px\] {
  margin-bottom: 40px;
}

.mb-\[4px\] {
  margin-bottom: 4px;
}

.mb-lg {
  margin-bottom: 40px;
}

.mb-md {
  margin-bottom: 30px;
}

.mb-sm {
  margin-bottom: 20px;
}

.mb-xs {
  margin-bottom: 16px;
}

.mb-xxl {
  margin-bottom: 60px;
}

.mb-xxs {
  margin-bottom: 10px;
}

.ml-md {
  margin-left: 30px;
}

.mr-xxs {
  margin-right: 10px;
}

.mt-\[0\.15rem\] {
  margin-top: 0.15rem;
}

.mt-\[100px\] {
  margin-top: 100px;
}

.mt-auto {
  margin-top: auto;
}

.mt-sm {
  margin-top: 20px;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

.\!inline-flex {
  display: inline-flex !important;
}

.table {
  display: table;
}

.grid {
  display: grid;
}

.hidden {
  display: none;
}

.aspect-\[1\.6\/1\] {
  aspect-ratio: 1.6/1;
}

.aspect-\[1288\/845\] {
  aspect-ratio: 1288/845;
}

.aspect-\[390\/200\] {
  aspect-ratio: 390/200;
}

.aspect-\[390\/300\] {
  aspect-ratio: 390/300;
}

.aspect-\[390\/504\] {
  aspect-ratio: 390/504;
}

.aspect-\[415\/280\] {
  aspect-ratio: 415/280;
}

.aspect-\[415\/380\] {
  aspect-ratio: 415/380;
}

.aspect-\[415\/580\] {
  aspect-ratio: 415/580;
}

.aspect-\[578\/607\] {
  aspect-ratio: 578/607;
}

.aspect-\[634\/295\] {
  aspect-ratio: 634/295;
}

.aspect-\[634\/800\] {
  aspect-ratio: 634/800;
}

.aspect-portrait-work-card {
  aspect-ratio: 0.78/1;
}

.aspect-square-work {
  aspect-ratio: 1.05/1;
}

.aspect-square-work-mobile {
  aspect-ratio: 39/35;
}

.aspect-wide-small {
  aspect-ratio: 743/350;
}

.\!h-\[200px\] {
  height: 200px !important;
}

.\!h-auto {
  height: auto !important;
}

.\!h-full {
  height: 100% !important;
}

.h-\[100vh\] {
  height: 100vh;
}

.h-\[110px\] {
  height: 110px;
}

.h-\[1px\] {
  height: 1px;
}

.h-\[200px\] {
  height: 200px;
}

.h-\[20px\] {
  height: 20px;
}

.h-\[28px\] {
  height: 28px;
}

.h-\[30vh\] {
  height: 30vh;
}

.h-\[32px\] {
  height: 32px;
}

.h-\[350px\] {
  height: 350px;
}

.h-\[400vh\] {
  height: 400vh;
}

.h-\[40vh\] {
  height: 40vh;
}

.h-\[50vh\] {
  height: 50vh;
}

.h-\[60vh\] {
  height: 60vh;
}

.h-\[75vh\] {
  height: 75vh;
}

.h-\[90svh\] {
  height: 90svh;
}

.h-full {
  height: 100%;
}

.h-screen {
  height: 100vh;
}

.h-sm {
  height: 20px;
}

.h-xxl {
  height: 60px;
}

.max-h-\[650px\] {
  max-height: 650px;
}

.max-h-\[90vh\] {
  max-height: 90vh;
}

.min-h-\[400px\] {
  min-height: 400px;
}

.min-h-\[450px\] {
  min-height: 450px;
}

.\!w-\[clamp\(360px\2c 50vw\2c 640px\)\] {
  width: clamp(360px,50vw,640px) !important;
}

.\!w-\[clamp\(360px\2c 90vw\2c 416px\)\] {
  width: clamp(360px,90vw,416px) !important;
}

.\!w-\[clamp\(360px\2c 90vw\2c 600px\)\] {
  width: clamp(360px,90vw,600px) !important;
}

.\!w-\[clamp\(360px\2c 90vw\2c 800px\)\] {
  width: clamp(360px,90vw,800px) !important;
}

.\!w-full {
  width: 100% !important;
}

.w-1\/2 {
  width: 50%;
}

.w-\[160px\] {
  width: 160px;
}

.w-\[180px\] {
  width: 180px;
}

.w-\[18px\] {
  width: 18px;
}

.w-\[1px\] {
  width: 1px;
}

.w-\[200px\] {
  width: 200px;
}

.w-\[230px\] {
  width: 230px;
}

.w-\[240px\] {
  width: 240px;
}

.w-\[24px\] {
  width: 24px;
}

.w-\[32px\] {
  width: 32px;
}

.w-\[340px\] {
  width: 340px;
}

.w-\[40px\] {
  width: 40px;
}

.w-\[clamp\(360px\2c 100\%\2c 1060px\)\] {
  width: clamp(360px,100%,1060px);
}

.w-\[clamp\(360px\2c 100\%\2c 900px\)\] {
  width: clamp(360px,100%,900px);
}

.w-\[min\(100\%\2c 415px\)\] {
  width: min(100%,415px);
}

.w-auto {
  width: auto;
}

.w-full {
  width: 100%;
}

.min-w-\[47px\] {
  min-width: 47px;
}

.max-w-\[1269px\] {
  max-width: 1269px;
}

.max-w-\[130px\] {
  max-width: 130px;
}

.max-w-\[16ch\] {
  max-width: 16ch;
}

.max-w-\[340px\] {
  max-width: 340px;
}

.max-w-\[350px\] {
  max-width: 350px;
}

.max-w-\[352px\] {
  max-width: 352px;
}

.max-w-\[500px\] {
  max-width: 500px;
}

.max-w-\[630px\] {
  max-width: 630px;
}

.max-w-\[640px\] {
  max-width: 640px;
}

.max-w-\[760px\] {
  max-width: 760px;
}

.max-w-content {
  max-width: 640px;
}

.max-w-fit {
  max-width: -moz-fit-content;
  max-width: fit-content;
}

.max-w-full {
  max-width: 100%;
}

.flex-1 {
  flex: 1 1 0%;
}

.shrink-0 {
  flex-shrink: 0;
}

.grow {
  flex-grow: 1;
}

.basis-\[content\] {
  flex-basis: content;
}

.origin-bottom-left {
  transform-origin: bottom left;
}

.origin-top-left {
  transform-origin: top left;
}

.origin-top-right {
  transform-origin: top right;
}

.-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-x-\[200px\] {
  --tw-translate-x: -200px;
  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));
}

.-translate-y-\[120\%\] {
  --tw-translate-y: -120%;
  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-\[150\%\] {
  --tw-translate-y: -150%;
  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-x-0 {
  --tw-translate-x: 0;
  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));
}

.-rotate-90 {
  --tw-rotate: -90deg;
  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));
}

.rotate-90 {
  --tw-rotate: 90deg;
  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));
}

.scale-\[90\%\] {
  --tw-scale-x: 90%;
  --tw-scale-y: 90%;
  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));
}

.transform-none {
  transform: none;
}

.\!list-none {
  list-style-type: none !important;
}

.list-none {
  list-style-type: none;
}

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

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

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-start {
  align-items: flex-start;
}

.items-end {
  align-items: flex-end;
}

.\!items-center {
  align-items: center !important;
}

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

.items-stretch {
  align-items: stretch;
}

.justify-start {
  justify-content: flex-start;
}

.justify-end {
  justify-content: flex-end;
}

.\!justify-center {
  justify-content: center !important;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.\!gap-xxs {
  gap: 10px !important;
}

.gap-\[14px\] {
  gap: 14px;
}

.gap-\[16px\] {
  gap: 16px;
}

.gap-\[27px\] {
  gap: 27px;
}

.gap-\[2px\] {
  gap: 2px;
}

.gap-lg {
  gap: 40px;
}

.gap-md {
  gap: 30px;
}

.gap-sm {
  gap: 20px;
}

.gap-xl {
  gap: 50px;
}

.gap-xs {
  gap: 16px;
}

.gap-xxs {
  gap: 10px;
}

.gap-xxxl {
  gap: 80px;
}

.gap-xxxs {
  gap: 4px;
}

.gap-x-sm {
  -moz-column-gap: 20px;
       column-gap: 20px;
}

.gap-y-lg {
  row-gap: 40px;
}

.gap-y-xl {
  row-gap: 50px;
}

.overflow-hidden {
  overflow: hidden;
}

.\!overflow-visible {
  overflow: visible !important;
}

.overflow-x-hidden {
  overflow-x: hidden;
}

.overflow-y-scroll {
  overflow-y: scroll;
}

.whitespace-nowrap {
  white-space: nowrap;
}

.text-nowrap {
  text-wrap: nowrap;
}

.\!rounded {
  border-radius: 20px !important;
}

.rounded {
  border-radius: 20px;
}

.\!border-\[2px\] {
  border-width: 2px !important;
}

.border-none {
  border-width: 0;
}

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

.\!border-x-none {
  border-left-width: 0 !important;
  border-right-width: 0 !important;
}

.border-y-sm {
  border-top-width: 1px;
  border-bottom-width: 1px;
}

.\!border-b-sm {
  border-bottom-width: 1px !important;
}

.\!border-t-none {
  border-top-width: 0 !important;
}

.border-b-sm {
  border-bottom-width: 1px;
}

.\!border-solid {
  border-style: solid !important;
}

.border-solid {
  border-style: solid;
}

.border-none {
  border-style: none;
}

.\!border-black {
  --tw-border-opacity: 1 !important;
  border-color: rgb(44 39 33 / var(--tw-border-opacity, 1)) !important;
}

.\!border-transparent {
  border-color: transparent !important;
}

.border-black {
  --tw-border-opacity: 1;
  border-color: rgb(44 39 33 / var(--tw-border-opacity, 1));
}

.border-forest-green {
  --tw-border-opacity: 1;
  border-color: rgb(23 102 89 / var(--tw-border-opacity, 1));
}

.border-lime-green {
  --tw-border-opacity: 1;
  border-color: rgb(156 191 148 / var(--tw-border-opacity, 1));
}

.border-terracotta {
  --tw-border-opacity: 1;
  border-color: rgb(217 136 100 / var(--tw-border-opacity, 1));
}

.border-violet {
  --tw-border-opacity: 1;
  border-color: rgb(199 206 244 / var(--tw-border-opacity, 1));
}

.\!bg-black {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(44 39 33 / var(--tw-bg-opacity, 1)) !important;
}

.\!bg-forest-green {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(23 102 89 / var(--tw-bg-opacity, 1)) !important;
}

.\!bg-green {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(16 63 55 / var(--tw-bg-opacity, 1)) !important;
}

.\!bg-lime-green {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(156 191 148 / var(--tw-bg-opacity, 1)) !important;
}

.\!bg-red {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(233 135 86 / var(--tw-bg-opacity, 1)) !important;
}

.\!bg-terracotta {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(217 136 100 / var(--tw-bg-opacity, 1)) !important;
}

.\!bg-theme-btn-bg {
  background-color: var(--dng-theme-color-btn-bg) !important;
}

.\!bg-transparent {
  background-color: transparent !important;
}

.\!bg-violet {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(199 206 244 / var(--tw-bg-opacity, 1)) !important;
}

.\!bg-white {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(249 244 240 / var(--tw-bg-opacity, 1)) !important;
}

.\!bg-yellow {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(210 157 133 / var(--tw-bg-opacity, 1)) !important;
}

.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(44 39 33 / var(--tw-bg-opacity, 1));
}

.bg-forest-green {
  --tw-bg-opacity: 1;
  background-color: rgb(23 102 89 / var(--tw-bg-opacity, 1));
}

.bg-green {
  --tw-bg-opacity: 1;
  background-color: rgb(16 63 55 / var(--tw-bg-opacity, 1));
}

.bg-lime-green {
  --tw-bg-opacity: 1;
  background-color: rgb(156 191 148 / var(--tw-bg-opacity, 1));
}

.bg-sand {
  --tw-bg-opacity: 1;
  background-color: rgb(240 230 219 / var(--tw-bg-opacity, 1));
}

.bg-terracotta {
  --tw-bg-opacity: 1;
  background-color: rgb(217 136 100 / var(--tw-bg-opacity, 1));
}

.bg-theme {
  background-color: var(--dng-theme-color);
}

.bg-violet {
  --tw-bg-opacity: 1;
  background-color: rgb(199 206 244 / var(--tw-bg-opacity, 1));
}

.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(249 244 240 / var(--tw-bg-opacity, 1));
}

.\!bg-none {
  background-image: none !important;
}

.bg-\[linear-gradient\(0deg\2c \#F9F4F000_0\%\2c \#F9F4F0aa_60\%\2c 0deg\2c \#F9F4F000_90\%\)\] {
  background-image: linear-gradient(0deg,#F9F4F000 0%,#F9F4F0aa 60%,0deg,#F9F4F000 90%);
}

.bg-\[linear-gradient\(270deg\2c rgba\(249\2c 244\2c 240\2c 0\)_23\%\2c \#F9F4F0_92\%\)\] {
  background-image: linear-gradient(270deg,rgba(249,244,240,0) 23%,#F9F4F0 92%);
}

.bg-\[linear-gradient\(90deg\2c rgba\(249\2c 244\2c 240\2c 0\)_23\%\2c \#F9F4F0_92\%\)\] {
  background-image: linear-gradient(90deg,rgba(249,244,240,0) 23%,#F9F4F0 92%);
}

.fill-forest-green {
  fill: #176659;
}

.fill-green {
  fill: #103f37;
}

.fill-lime-green {
  fill: #9cbf94;
}

.fill-terracotta {
  fill: #D98864;
}

.fill-theme-btn {
  fill: var(--dng-theme-color-btn);
}

.fill-transparent {
  fill: transparent;
}

.fill-violet {
  fill: #C7CEF4;
}

.fill-white {
  fill: #f9f4f0;
}

.fill-yellow {
  fill: #D29D85;
}

.stroke-theme-btn {
  stroke: var(--dng-theme-color-btn);
}

.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}

.object-top {
  -o-object-position: top;
     object-position: top;
}

.\!p-0 {
  padding: 0 !important;
}

.p-md {
  padding: 30px;
}

.p-sm {
  padding: 20px;
}

.p-xs {
  padding: 16px;
}

.p-xxs {
  padding: 10px;
}

.p-xxxs {
  padding: 4px;
}

.\!px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.\!px-\[9px\] {
  padding-left: 9px !important;
  padding-right: 9px !important;
}

.\!px-xl {
  padding-left: 50px !important;
  padding-right: 50px !important;
}

.\!py-\[1px\] {
  padding-top: 1px !important;
  padding-bottom: 1px !important;
}

.\!py-sm {
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}

.\!py-xxs {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.px-\[6px\] {
  padding-left: 6px;
  padding-right: 6px;
}

.px-sm {
  padding-left: 20px;
  padding-right: 20px;
}

.px-xxs {
  padding-left: 10px;
  padding-right: 10px;
}

.px-xxxs {
  padding-left: 4px;
  padding-right: 4px;
}

.py-4xl {
  padding-top: 96px;
  padding-bottom: 96px;
}

.py-\[3px\] {
  padding-top: 3px;
  padding-bottom: 3px;
}

.py-sm {
  padding-top: 20px;
  padding-bottom: 20px;
}

.py-xs {
  padding-top: 16px;
  padding-bottom: 16px;
}

.py-xxs {
  padding-top: 10px;
  padding-bottom: 10px;
}

.py-xxxs {
  padding-top: 4px;
  padding-bottom: 4px;
}

.pb-\[8px\] {
  padding-bottom: 8px;
}

.pb-lg {
  padding-bottom: 40px;
}

.pb-md {
  padding-bottom: 30px;
}

.pb-sm {
  padding-bottom: 20px;
}

.pb-xl {
  padding-bottom: 50px;
}

.pt-\[20svh\] {
  padding-top: 20svh;
}

.pt-\[2px\] {
  padding-top: 2px;
}

.pt-lg {
  padding-top: 40px;
}

.pt-xxl {
  padding-top: 60px;
}

.pt-xxs {
  padding-top: 10px;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.align-middle {
  vertical-align: middle;
}

.\!font-brand {
  font-family: 'Agrandir Grotesk Variable', sans-serif !important;
}

.\!font-sans {
  font-family: 'Work Sans', sans-serif !important;
}

.font-brand {
  font-family: 'Agrandir Grotesk Variable', sans-serif;
}

.font-sans {
  font-family: 'Work Sans', sans-serif;
}

.\!text-\[1\.125rem\] {
  font-size: 1.125rem !important;
}

.\!text-\[1\.25rem\] {
  font-size: 1.25rem !important;
}

.\!text-\[12px\] {
  font-size: 12px !important;
}

.\!text-\[14px\] {
  font-size: 14px !important;
}

.\!text-\[18px\] {
  font-size: 18px !important;
}

.\!text-\[1rem\] {
  font-size: 1rem !important;
}

.\!text-\[2\.75rem\] {
  font-size: 2.75rem !important;
}

.\!text-\[20px\] {
  font-size: 20px !important;
}

.\!text-\[22px\] {
  font-size: 22px !important;
}

.\!text-\[24px\] {
  font-size: 24px !important;
}

.\!text-\[25px\] {
  font-size: 25px !important;
}

.\!text-\[36px\] {
  font-size: 36px !important;
}

.\!text-body-l {
  font-size: 1.125rem !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.\!text-body-m {
  font-size: 1rem !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.\!text-body-xs {
  font-size: 0.75rem !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.\!text-body-xxl {
  font-size: 1.25rem !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.\!text-h2 {
  font-size: 3rem !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  font-weight: 336 !important;
}

.\!text-h3 {
  font-size: 2.5rem !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  font-weight: 336 !important;
}

.\!text-h4 {
  font-size: 2rem !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}

.text-\[1\.2rem\] {
  font-size: 1.2rem;
}

.text-\[1\.8rem\] {
  font-size: 1.8rem;
}

.text-\[10px\] {
  font-size: 10px;
}

.text-\[14px\] {
  font-size: 14px;
}

.text-\[20px\] {
  font-size: 20px;
}

.text-\[24px\] {
  font-size: 24px;
}

.text-\[3rem\] {
  font-size: 3rem;
}

.text-\[8px\] {
  font-size: 8px;
}

.text-body-l {
  font-size: 1.125rem;
  line-height: 1.4;
  letter-spacing: normal;
  font-weight: 400;
}

.text-body-m {
  font-size: 1rem;
  line-height: 1.4;
  letter-spacing: normal;
  font-weight: 400;
}

.text-body-s {
  font-size: 0.875rem;
  line-height: 1.4;
  letter-spacing: normal;
  font-weight: 400;
}

.text-body-xs {
  font-size: 0.75rem;
  line-height: 1.4;
  letter-spacing: normal;
  font-weight: 400;
}

.text-body-xxl {
  font-size: 1.25rem;
  line-height: 1.3;
  letter-spacing: normal;
  font-weight: 400;
}

.text-h3 {
  font-size: 2.5rem;
  line-height: 1.2;
  letter-spacing: normal;
  font-weight: 336;
}

.text-h4 {
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: normal;
  font-weight: 400;
}

.\!font-bold {
  font-weight: 700 !important;
}

.\!font-medium {
  font-weight: 500 !important;
}

.\!font-normal {
  font-weight: 400 !important;
}

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

.font-medium {
  font-weight: 500;
}

.font-normal {
  font-weight: 400;
}

.uppercase {
  text-transform: uppercase;
}

.italic {
  font-style: italic;
}

.not-italic {
  font-style: normal;
}

.\!leading-\[1\.15\] {
  line-height: 1.15 !important;
}

.\!leading-\[1\.1\] {
  line-height: 1.1 !important;
}

.\!leading-\[1\.25\] {
  line-height: 1.25 !important;
}

.\!leading-\[1\.2\] {
  line-height: 1.2 !important;
}

.\!leading-\[1\.3\] {
  line-height: 1.3 !important;
}

.\!leading-\[1\.4\] {
  line-height: 1.4 !important;
}

.\!leading-\[1\.5\] {
  line-height: 1.5 !important;
}

.\!leading-\[1\] {
  line-height: 1 !important;
}

.\!leading-tight {
  line-height: 1 !important;
}

.leading-\[0\.8\] {
  line-height: 0.8;
}

.leading-\[1\.15\] {
  line-height: 1.15;
}

.leading-\[1\.2\] {
  line-height: 1.2;
}

.leading-\[1\.3\] {
  line-height: 1.3;
}

.leading-\[12px\] {
  line-height: 12px;
}

.leading-\[2\] {
  line-height: 2;
}

.leading-\[32\.5px\] {
  line-height: 32.5px;
}

.leading-\[9\.6px\] {
  line-height: 9.6px;
}

.leading-tight {
  line-height: 1;
}

.\!text-\[unset\] {
  color: unset !important;
}

.\!text-black {
  --tw-text-opacity: 1 !important;
  color: rgb(44 39 33 / var(--tw-text-opacity, 1)) !important;
}

.\!text-theme-btn {
  color: var(--dng-theme-color-btn) !important;
}

.\!text-white {
  --tw-text-opacity: 1 !important;
  color: rgb(249 244 240 / var(--tw-text-opacity, 1)) !important;
}

.text-black {
  --tw-text-opacity: 1;
  color: rgb(44 39 33 / var(--tw-text-opacity, 1));
}

.text-forest-green {
  --tw-text-opacity: 1;
  color: rgb(23 102 89 / var(--tw-text-opacity, 1));
}

.text-lime-green {
  --tw-text-opacity: 1;
  color: rgb(156 191 148 / var(--tw-text-opacity, 1));
}

.text-terracotta {
  --tw-text-opacity: 1;
  color: rgb(217 136 100 / var(--tw-text-opacity, 1));
}

.text-theme-btn {
  color: var(--dng-theme-color-btn);
}

.text-transparent {
  color: transparent;
}

.text-violet {
  --tw-text-opacity: 1;
  color: rgb(199 206 244 / var(--tw-text-opacity, 1));
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(249 244 240 / var(--tw-text-opacity, 1));
}

.\!underline {
  text-decoration-line: underline !important;
}

.underline {
  text-decoration-line: underline;
}

.\!no-underline {
  text-decoration-line: none !important;
}

.\!opacity-100 {
  opacity: 1 !important;
}

.opacity-0 {
  opacity: 0;
}

.opacity-100 {
  opacity: 1;
}

.outline {
  outline-style: solid;
}

.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);
}

.transition-all {
  transition-property: all;
  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;
}

.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.duration-0 {
  transition-duration: 0s;
}

.dng-u-text-stretched {
  font-family: 'Agrandir Grotesk Variable', sans-serif !important;

  font-stretch: 150%;
  font-variation-settings:
    "wght" 400,
    "wdth" 150;
}

.dng-u-text-title-craft {
  font-family: 'Agrandir Variable', sans-serif !important;

  font-variation-settings:
    "wght" 336,
    "wdth" 75;
}

.dng-u-text-title-train {
  font-family: 'Agrandir Variable', sans-serif !important;

  font-stretch: 150%;
  font-variation-settings:
    "wght" 336,
    "wdth" 200;
}

.hover\:\!fill-theme:hover {
  fill: var(--dng-theme-color) !important;
}

.hover\:\!text-theme-btn:hover {
  color: var(--dng-theme-color-btn) !important;
}

.hover\:\!underline:hover {
  text-decoration-line: underline !important;
}

.hover\:underline:hover {
  text-decoration-line: underline;
}

.hover\:\!no-underline:hover {
  text-decoration-line: none !important;
}

.hover\:no-underline:hover {
  text-decoration-line: none;
}

.hover\:opacity-70:hover {
  opacity: 0.7;
}

.hover\:opacity-85:hover {
  opacity: 0.85;
}

.focus\:\!no-underline:focus {
  text-decoration-line: none !important;
}

.focus\:opacity-85:focus {
  opacity: 0.85;
}

.active\:opacity-60:active {
  opacity: 0.6;
}

.disabled\:opacity-10:disabled {
  opacity: 0.1;
}

.group:hover .group-hover\:top-0 {
  top: 0;
}

.group:hover .group-hover\:translate-x-xxs {
  --tw-translate-x: 10px;
  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));
}

.group:hover .group-hover\:\!fill-theme {
  fill: var(--dng-theme-color) !important;
}

.group:hover .group-hover\:underline {
  text-decoration-line: underline;
}

.group:hover .group-hover\:opacity-0 {
  opacity: 0;
}

.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}

.group:has(.is-active) .group-has-\[\.is-active\]\:text-gray {
  --tw-text-opacity: 1;
  color: rgb(104 94 82 / var(--tw-text-opacity, 1));
}

.group:has(.is-active) .group-has-\[\.is-active\]\:opacity-20 {
  opacity: 0.2;
}

.is-active\:\!fill-theme.is-active {
  fill: var(--dng-theme-color) !important;
}

.is-active\:stroke-transparent.is-active {
  stroke: transparent;
}

.is-active\:\!text-black.is-active {
  --tw-text-opacity: 1 !important;
  color: rgb(44 39 33 / var(--tw-text-opacity, 1)) !important;
}

.is-active\:\!opacity-100.is-active {
  opacity: 1 !important;
}

.is-active\:opacity-0.is-active {
  opacity: 0;
}

.is-active .is-active\:\!fill-theme {
  fill: var(--dng-theme-color) !important;
}

.is-active .is-active\:stroke-transparent {
  stroke: transparent;
}

.is-active .is-active\:\!text-black {
  --tw-text-opacity: 1 !important;
  color: rgb(44 39 33 / var(--tw-text-opacity, 1)) !important;
}

.is-active .is-active\:\!opacity-100 {
  opacity: 1 !important;
}

.is-active .is-active\:opacity-0 {
  opacity: 0;
}

@media not all and (min-width: 992px) {

  .max-lg\: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;
  }

  .max-lg\:hidden {
    display: none;
  }

  .max-lg\:max-w-\[460px\] {
    max-width: 460px;
  }

  .max-lg\:px-sm {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media not all and (min-width: 768px) {

  .max-md\:relative {
    position: relative;
  }

  .max-md\:right-sm {
    right: 20px;
  }

  .max-md\:top-\[70px\] {
    top: 70px;
  }

  .max-md\:top-xxs {
    top: 10px;
  }

  .max-md\:-mt-xl {
    margin-top: -50px;
  }

  .max-md\:mb-xxs {
    margin-bottom: 10px;
  }

  .max-md\:mt-lg {
    margin-top: 40px;
  }

  .max-md\:mt-xl {
    margin-top: 50px;
  }

  .max-md\:mt-xs {
    margin-top: 16px;
  }

  .max-md\:grid {
    display: grid;
  }

  .max-md\:hidden {
    display: none;
  }

  .max-md\:flex-1 {
    flex: 1 1 0%;
  }

  .max-md\:scale-\[60\%\] {
    --tw-scale-x: 60%;
    --tw-scale-y: 60%;
    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));
  }

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

  .max-md\:flex-col {
    flex-direction: column;
  }

  .max-md\:items-start {
    align-items: flex-start;
  }

  .max-md\:justify-start {
    justify-content: flex-start;
  }

  .max-md\:gap-xxl {
    gap: 60px;
  }

  .max-md\:gap-xxs {
    gap: 10px;
  }

  .max-md\:self-start {
    align-self: flex-start;
  }

  .max-md\:overflow-y-auto {
    overflow-y: auto;
  }

  .max-md\:overflow-x-hidden {
    overflow-x: hidden;
  }

  .max-md\:rounded-\[20px\] {
    border-radius: 20px;
  }

  .max-md\:bg-\[linear-gradient\(0deg\2c \#F9F4F000_0\%\2c \#F9F4F0ff_100\%\)\] {
    background-image: linear-gradient(0deg,#F9F4F000 0%,#F9F4F0ff 100%);
  }

  .max-md\:pb-md {
    padding-bottom: 30px;
  }

  .max-md\:pt-0 {
    padding-top: 0;
  }

  .max-md\:text-center {
    text-align: center;
  }

  .max-md\:\!text-body-xxl {
    font-size: 1.25rem !important;
    line-height: 1.3 !important;
    letter-spacing: normal !important;
    font-weight: 400 !important;
  }
}

@media (min-width: 576px) {

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

@media (min-width: 768px) {

  .md\:absolute {
    position: absolute;
  }

  .md\:-left-lg {
    left: -40px;
  }

  .md\:top-\[40px\] {
    top: 40px;
  }

  .md\:top-xxs {
    top: 10px;
  }

  .md\:order-1 {
    order: 1;
  }

  .md\:order-2 {
    order: 2;
  }

  .md\:col-span-1 {
    grid-column: span 1 / span 1;
  }

  .md\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .md\:col-span-3 {
    grid-column: span 3 / span 3;
  }

  .md\:col-span-4 {
    grid-column: span 4 / span 4;
  }

  .md\:mb-\[20px\] {
    margin-bottom: 20px;
  }

  .md\:mb-lg {
    margin-bottom: 40px;
  }

  .md\:mt-\[54px\] {
    margin-top: 54px;
  }

  .md\:block {
    display: block;
  }

  .md\:hidden {
    display: none;
  }

  .md\:aspect-\[634\/300\] {
    aspect-ratio: 634/300;
  }

  .md\:aspect-\[634\/504\] {
    aspect-ratio: 634/504;
  }

  .md\:aspect-square-work {
    aspect-ratio: 1.05/1;
  }

  .md\:aspect-wide-large {
    aspect-ratio: 2.547/1;
  }

  .md\:aspect-wide-small {
    aspect-ratio: 743/350;
  }

  .md\:w-1\/2 {
    width: 50%;
  }

  .md\:w-2\/3 {
    width: 66.666667%;
  }

  .md\:w-\[200px\] {
    width: 200px;
  }

  .md\:w-\[250px\] {
    width: 250px;
  }

  .md\:w-\[350px\] {
    width: 350px;
  }

  .md\:w-\[48px\] {
    width: 48px;
  }

  .md\:w-\[500px\] {
    width: 500px;
  }

  .md\:max-w-\[960px\] {
    max-width: 960px;
  }

  .md\:shrink-0 {
    flex-shrink: 0;
  }

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

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

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

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

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

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

  .md\:grid-cols-\[1\.1fr_1fr\] {
    grid-template-columns: 1.1fr 1fr;
  }

  .md\:grid-cols-\[512fr_743fr\] {
    grid-template-columns: 512fr 743fr;
  }

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

  .md\:flex-col {
    flex-direction: column;
  }

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

  .md\:justify-center {
    justify-content: center;
  }

  .md\:gap-4xl {
    gap: 96px;
  }

  .md\:gap-lg {
    gap: 40px;
  }

  .md\:gap-sm {
    gap: 20px;
  }

  .md\:gap-xl {
    gap: 50px;
  }

  .md\:overflow-y-auto {
    overflow-y: auto;
  }

  .md\:p-lg {
    padding: 40px;
  }

  .md\:p-sm {
    padding: 20px;
  }

  .md\:px-\[8px\] {
    padding-left: 8px;
    padding-right: 8px;
  }

  .md\:px-sm {
    padding-left: 20px;
    padding-right: 20px;
  }

  .md\:pb-lg {
    padding-bottom: 40px;
  }

  .md\:pl-4xl {
    padding-left: 96px;
  }

  .md\:pt-\[100px\] {
    padding-top: 100px;
  }

  .md\:pt-\[150px\] {
    padding-top: 150px;
  }

  .md\:pt-lg {
    padding-top: 40px;
  }

  .md\:\!text-\[1\.5rem\] {
    font-size: 1.5rem !important;
  }

  .md\:\!text-\[30px\] {
    font-size: 30px !important;
  }

  .md\:\!text-\[5rem\] {
    font-size: 5rem !important;
  }

  .md\:\!text-\[60px\] {
    font-size: 60px !important;
  }

  .md\:\!text-h2 {
    font-size: 3rem !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    font-weight: 336 !important;
  }

  .md\:text-\[25px\] {
    font-size: 25px;
  }

  .md\:text-\[6\.25rem\] {
    font-size: 6.25rem;
  }

  .md\:text-h3 {
    font-size: 2.5rem;
    line-height: 1.2;
    letter-spacing: normal;
    font-weight: 336;
  }

  .md\:text-h4 {
    font-size: 2rem;
    line-height: 1.2;
    letter-spacing: normal;
    font-weight: 400;
  }

  .md\:\!text-h1 {
    font-size: min(3.75rem,10vw) !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    font-weight: 336 !important;
  }

  .md\:underline {
    text-decoration-line: underline;
  }
}

@media (min-width: 992px) {

  .lg\:absolute {
    position: absolute;
  }

  .lg\:left-\[75\%\] {
    left: 75%;
  }

  .lg\:top-xxxl {
    top: 80px;
  }

  .lg\:-ml-xxxs {
    margin-left: -4px;
  }

  .lg\:-mt-md {
    margin-top: -30px;
  }

  .lg\:mb-xxl {
    margin-bottom: 60px;
  }

  .lg\:w-1\/2 {
    width: 50%;
  }

  .lg\:w-\[300px\] {
    width: 300px;
  }

  .lg\:w-\[49px\] {
    width: 49px;
  }

  .lg\:w-sm {
    width: 20px;
  }

  .lg\:origin-top-left {
    transform-origin: top left;
  }

  .lg\:rotate-90 {
    --tw-rotate: 90deg;
    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));
  }

  .lg\: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));
  }

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

  .lg\:justify-end {
    justify-content: flex-end;
  }

  .lg\:pt-\[200px\] {
    padding-top: 200px;
  }

  .lg\:text-h3 {
    font-size: 2.5rem;
    line-height: 1.2;
    letter-spacing: normal;
    font-weight: 336;
  }

  .group:hover .lg\:group-hover\:translate-x-full {
    --tw-translate-x: 100%;
    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));
  }
}

@media (min-width: 1082px) {

  .xl\:w-full {
    width: 100%;
  }

  .xl\:max-w-\[1200px\] {
    max-width: 1200px;
  }

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

  .xl\:text-h1 {
    font-size: min(3.75rem,10vw);
    line-height: 1.2;
    letter-spacing: normal;
    font-weight: 336;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90YWlsd2luZGNzcy9iYXNlLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvX2Jhc2UuY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9fdGhlbWVzLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvb3ZlcnJpZGVzL19ncmVjYXB0Y2hhLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvb3ZlcnJpZGVzL190aXRvLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvb3ZlcnJpZGVzL190YWlsd2luZC5jc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGFpbHdpbmRjc3MvY29tcG9uZW50cy5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL19jb21wb25lbnRzLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fc2VydmljZS1jYXJkLWdyb3VwLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9faG93LWl0LXdvcmtzLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9jb21wb25lbnRzL19zZXJ2aWNlLWNhcmQuY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9jb21wb25lbnRzL19zdGF0aXN0aWNzLXRhYmxlLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fY29udGFjdC1iYW5kLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fc2VjdG9yLW1vc2FpYy5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL2NvbXBvbmVudHMvX3NlY3Rvci1oaWdobGlnaHRzLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fc2VydmljZS10YWdzLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fZmFxLWFjY29yZGlvbi5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL2NvbXBvbmVudHMvX3VuaXQtY2FyZC5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL2NvbXBvbmVudHMvX2Nvcm5lci10aWNrcy5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL2NvbXBvbmVudHMvX2J1dHRvbi10aGVtZWQtd3JhcHBlci5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL2NvbXBvbmVudHMvX2NhcmQtdGFncy5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL2NvbXBvbmVudHMvX2Rlc2lnbi1hcHByb2FjaC1kdWFsaXR5LmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fZmFkaW5nLWJsb2NrLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fZnJhbWUuY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9jb21wb25lbnRzL19ncmVlbi1mcmFtZWQtY2FyZC5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL2NvbXBvbmVudHMvX3BhcnRuZXItbGlzdC5jc3MiLCI8bm8gc291cmNlPiIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fbWFpbi1oZWFkZXIuY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9jb21wb25lbnRzL19ob3Jpem9udGFsLXRhYnMuY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9jb21wb25lbnRzL19yZXgtZ3JhcGguY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9jb21wb25lbnRzL19yZXgtbWFwLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fcmljaC10ZXh0LWNvbnRlbnQtdW5zdHlsZWQuY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9jb21wb25lbnRzL19zZWN0aW9uLWNoYW5nZS5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL2NvbXBvbmVudHMvX3RlYW0tbWVtYmVyLXBvcHVwLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fdGhlLXJvY2suY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9jb21wb25lbnRzL190aGUtcm9jay1jYXJkLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9fc2l0ZS1mb290ZXIuY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9jb21wb25lbnRzL190b29sLWNhcmQuY3NzIiwiLi4vLi4vLi4vLi4vc3JjL3N0eWxlcy9sYXlvdXQvX3NpbmdsZS5jc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGFpbHdpbmRjc3MvdXRpbGl0aWVzLmNzcyIsIi4uLy4uLy4uLy4uL3NyYy9zdHlsZXMvX3V0aWxpdGllcy5jc3MiLCIuLi8uLi8uLi8uLi9zcmMvc3R5bGVzL2N1c3RvbS1zdHlsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFBQSx3QkFBYztFQUFkLHdCQUFjO0VBQWQsbUJBQWM7RUFBZCxtQkFBYztFQUFkLGNBQWM7RUFBZCxjQUFjO0VBQWQsY0FBYztFQUFkLGVBQWM7RUFBZCxlQUFjO0VBQWQsYUFBYztFQUFkLGFBQWM7RUFBZCxrQkFBYztFQUFkLHNDQUFjO0VBQWQsOEJBQWM7RUFBZCw2QkFBYztFQUFkLDRCQUFjO0VBQWQsZUFBYztFQUFkLG9CQUFjO0VBQWQsc0JBQWM7RUFBZCx1QkFBYztFQUFkLHdCQUFjO0VBQWQsa0JBQWM7RUFBZCwyQkFBYztFQUFkLDRCQUFjO0VBQWQsc0NBQWM7RUFBZCxrQ0FBYztFQUFkLDJCQUFjO0VBQWQsc0JBQWM7RUFBZCw4QkFBYztFQUFkLFlBQWM7RUFBZCxrQkFBYztFQUFkLGdCQUFjO0VBQWQsaUJBQWM7RUFBZCxrQkFBYztFQUFkLGNBQWM7RUFBZCxnQkFBYztFQUFkLGFBQWM7RUFBZCxtQkFBYztFQUFkLHFCQUFjO0VBQWQsMkJBQWM7RUFBZCx5QkFB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QWQsTUFBYztFQUFkLG9CQUFjLEVBQWQsTUFBYztFQUFkLHVCQUFjLEVBQWQsTUFBYztFQUFkLGNBQWMsRUFBZCxNQUFjO0VBQWQsU0FBYyxFQUFkLE1BQWM7RUFBZCxVQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkOztFQUFBLG9CQUFjO0FBQUE7O0FBQWQ7OztDQUFjOztBQUFkOzs7O0VBQUEsMEJBQWMsRUFBZCxNQUFjO0VBQWQsNkJBQWMsRUFBZCxNQUFjO0VBQWQsc0JBQWMsRUFBZCxNQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7RUFBQSxhQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7RUFBQSxnQkFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsd0JBQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDs7RUFBQSxZQUFjO0FBQUE7O0FBQWQ7OztDQUFjOztBQUFkO0VBQUEsNkJBQWMsRUFBZCxNQUFjO0VBQWQsb0JBQWMsRUFBZCxNQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7RUFBQSx3QkFBYztBQUFBOztBQUFkOzs7Q0FBYzs7QUFBZDtFQUFBLDBCQUFjLEVBQWQsTUFBYztFQUFkLGFBQWMsRUFBZCxNQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7RUFBQSxrQkFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkOzs7Ozs7Ozs7Ozs7O0VBQUEsU0FBYztBQUFBOztBQUFkO0VBQUEsU0FBYztFQUFkLFVBQWM7QUFBQTs7QUFBZDtFQUFBLFVBQWM7QUFBQTs7QUFBZDs7O0VBQUEsZ0JBQWM7RUFBZCxTQUFjO0VBQWQsVUFBYztBQUFBOztBQUFkOztDQUFjO0FBQWQ7RUFBQSxVQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7RUFBQSxnQkFBYztBQUFBOztBQUFkOzs7Q0FBYzs7QUFBZDtFQUFBLFVBQWMsRUFBZCxNQUFjO0VBQWQsY0FBYyxFQUFkLE1BQWM7QUFBQTs7QUFBZDs7RUFBQSxVQUFjLEVBQWQsTUFBYztFQUFkLGNBQWMsRUFBZCxNQUFjO0FBQUE7O0FB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QW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsaUJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBLDJCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsd0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLHNCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsdUJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxtQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQixpQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEscUJBQW1CO09BQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBLCtCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxxQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsaUNBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBLHNCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLHNCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsNkJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLDZCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSw2QkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsNkJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLDZCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSw2QkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsNkJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLDZCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSw2QkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQSxvQkFBbUI7S0FBbkI7QUFBbUI7O0FBQW5CO0VBQUEsdUJBQW1CO0tBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBLDBCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSw0QkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsNkJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLDJCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSw0QkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsNEJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxpQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsZ0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxpQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsaUJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGdCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQSw4QkFBbUI7RUFBbkIsMkJBQW1CO0VBQW5CLGlDQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSwwQkFBbUI7RUFBbkIsMkJBQW1CO0VBQW5CLGlDQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSw2QkFBbUI7RUFBbkIsMkJBQW1CO0VBQW5CLGlDQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSw2QkFBbUI7RUFBbkIsMkJBQW1CO0VBQW5CLGlDQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSwwQkFBbUI7RUFBbkIsMkJBQW1CO0VBQW5CLGlDQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSw0QkFBbUI7RUFBbkIsMkJBQW1CO0VBQW5CLGlDQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSwwQkFBbUI7RUFBbkIsMkJBQW1CO0VBQW5CLGlDQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQSxtQkFBbUI7RUFBbkIsZ0JBQW1CO0VBQW5CLHNCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxlQUFtQjtFQUFuQixnQkFBbUI7RUFBbkIsc0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQixnQkFBbUI7RUFBbkIsc0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQixnQkFBbUI7RUFBbkIsc0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQixnQkFBbUI7RUFBbkIsc0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQixnQkFBbUI7RUFBbkIsc0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGVBQW1CO0VBQW5CLGdCQUFtQjtFQUFuQixzQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsK0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBLCtCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQSx3QkFBbUI7RUFBbkIsd0RBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLDRCQUFtQjtFQUFuQix3REFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsZ0tBQW1CO0VBQW5CLHdKQUFtQjtFQUFuQixpTEFBbUI7RUFBbkIsd0RBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQ0dqQjtFQUFBLCtEQUFrQjs7RUFFbEIsa0JBQWtCO0VBQ2xCOzs7QUFIa0I7O0FBU2xCO0VBQUEsdURBQXdCOztFQUV4Qjs7O0FBRndCOztBQVF4QjtFQUFBLHVEQUF3Qjs7RUFFeEIsa0JBQWtCO0VBQ2xCOzs7QUFId0I7O0FDcEIxQjtFQUFBO0FBTUE7O0FBTkE7RUFBQTtBQU1BOztBQU5BO0VBQUE7QUFNQTs7QUFOQTtFQUFBO0FBTUE7O0FBTkE7RUFBQTtBQU1BOztBQU5BO0VBQUE7QUFNQTs7QUFOQTtFQUFBO0FBTUE7O0FBTkE7RUFBQTtBQU1BOztBQU5BO0VBQUE7QUFNQTs7QUFOQTtFQUFBO0FBTUE7O0FBTkE7RUFBQTtBQU1BOztBQU5BO0VBQUE7QUFNQTs7QUFOQTtFQUFBO0FBTUE7O0FBTkE7RUFBQSxzQkFNQTtFQU5BO0FBTUE7O0FBTkE7RUFBQTtBQU1BOztBQU5BO0VBQUE7QUFNQTs7QUFOQTtFQUFBO0FBTUE7O0FBTkE7RUFBQTtBQU1BOztBQU5BO0VBQUEsb0JBTUE7RUFOQTtBQU1BOztBQU5BO0VBQUE7QUFNQTs7QUFOQTtFQUFBO0FBTUE7O0FBTkE7RUFBQTtBQU1BOztBQU5BO0VBQUEsK0JBTUE7RUFOQTtBQU1BOztBQU5BO0VBQUE7QUFNQTs7QUFOQTtFQUFBO0FBTUE7O0FBTkE7RUFBQTtBQU1BOztBQU5BO0VBQUE7QUFNQTs7QUFOQTtFQUFBLCtCQU1BO0VBTkE7QUFNQTs7QUFOQTtFQUFBO0FBTUE7O0FBTkE7RUFBQTtBQU1BOztBQU5BOztFQUFBO0lBQUEsa0JBTUE7SUFOQSxVQU1BO0lBTkEsV0FNQTtJQU5BLFVBTUE7SUFOQSxZQU1BO0lBTkEsZ0JBTUE7SUFOQSxzQkFNQTtJQU5BLG1CQU1BO0lBTkE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUEsa0JBTUE7SUFOQTtFQU1BO0FBQUE7O0FBTkE7O0VBQUE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQSxpQkFNQTtJQU5BLGlCQU1BO0lBTkE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUEsNkJBTUE7SUFOQSwyQkFNQTtJQU5BLGlDQU1BO0lBTkE7RUFNQTtBQUFBOztBQU5BOztFQUFBO0lBQUE7RUFNQTtBQUFBOztBQU5BOztFQUFBO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUEsaUJBTUE7SUFOQTtFQU1BOztFQU5BO0lBQUEsa0JBTUE7SUFOQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUEsMEJBTUE7SUFOQSwyQkFNQTtJQU5BLGlDQU1BO0lBTkE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUEsaUJBTUE7SUFOQSxnQkFNQTtJQU5BLHNCQU1BO0lBTkE7RUFNQTs7RUFOQTtJQUFBLGVBTUE7SUFOQSxnQkFNQTtJQU5BLHNCQU1BO0lBTkE7RUFNQTs7RUFOQTtJQUFBLHVDQU1BO0lBTkEsMkJBTUE7SUFOQSxpQ0FNQTtJQU5BO0VBTUE7O0VBTkE7SUFBQTtFQU1BO0FBQUE7O0FBTkE7O0VBQUE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBLGtCQU1BO0lBTkE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQSxpQkFNQTtJQU5BLGdCQU1BO0lBTkEsc0JBTUE7SUFOQTtFQU1BOztFQU5BO0lBQUEsc0JBTUE7SUFOQTtFQU1BO0FBQUE7O0FBTkE7O0VBQUE7SUFBQTtFQU1BOztFQU5BO0lBQUE7RUFNQTs7RUFOQTtJQUFBO0VBTUE7O0VBTkE7SUFBQSw0QkFNQTtJQU5BLGdCQU1BO0lBTkEsc0JBTUE7SUFOQTtFQU1BO0FBQUEiLCJmaWxlIjoiY3VzdG9tLXN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkB0YWlsd2luZCBiYXNlO1xuIiwiQGltcG9ydCBcInRhaWx3aW5kY3NzL2Jhc2VcIjtcblxuLyogQ3VzdG9tIG1lZGlhIGJyZWFrcG9pbnRzICovXG5AY3VzdG9tLW1lZGlhIC0tc20tbWF4IChtYXgtd2lkdGg6IDc2Ny45OHB4KTtcbkBjdXN0b20tbWVkaWEgLS1tZC1taW4gKG1pbi13aWR0aDogNzY4cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW1kLW1heCAobWF4LXdpZHRoOiAxMTQ2Ljk4cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW1kLW1pbiAobWluLXdpZHRoOiAxMTQ3cHgpO1xuXG4vKiBCYXNlIGVsZW1lbnRzLCByZXNldHMsIGdsb2JhbCB2YXJpYWJsZXMgKi9cblxuKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiBsaW5pbmctbnVtcztcbn1cblxuaHRtbCxcbmJvZHkge1xuICBmb250LXNpemU6IDE2cHg7XG4gIG92ZXJmbG93LXg6IGNsaXA7XG59XG5cbmJvZHkge1xuICBAYXBwbHkgYmctd2hpdGUgc2VsZWN0aW9uOmJnLWJsYWNrIHNlbGVjdGlvbjp0ZXh0LXdoaXRlO1xuXG4gIG1hcmdpbjogMDtcbn1cblxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSxcbmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbnVsIHtcbiAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICBsaXN0LXN0eWxlOiBkaXNjO1xufVxuXG5hOmhvdmVyLFxuYTphY3RpdmUge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbiIsIi5kbmctdGhlbWUtbmV1dHJhbCB7XG4gIC0tZG5nLXRoZW1lLWNvbG9yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZm9yZXN0LWdyZWVuKTtcbiAgLS1kbmctdGhlbWUtY29sb3ItYnRuOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0td2hpdGUpO1xuICAtLWRuZy10aGVtZS1jb2xvci1idG4tYmc6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1mb3Jlc3QtZ3JlZW4pO1xuICAtLWRuZy10aGVtZS1mb290ZXItYmc6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1mb3Jlc3QtZ3JlZW4pO1xuICAtLWRuZy10aGVtZS1mb290ZXItY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS13aGl0ZSk7XG59XG5cbi5kbmctdGhlbWUtZGVzaWduIHtcbiAgLS1kbmctdGhlbWUtY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1mb3Jlc3QtZ3JlZW4pO1xuICAtLWRuZy10aGVtZS1jb2xvci1idG46IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS13aGl0ZSk7XG4gIC0tZG5nLXRoZW1lLWNvbG9yLWJ0bi1iZzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWZvcmVzdC1ncmVlbik7XG4gIC0tZG5nLXRoZW1lLWZvb3Rlci1iZzogI2NlZGNjYTtcbiAgLS1kbmctdGhlbWUtZm9vdGVyLWNvbG9yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYmxhY2spO1xufVxuXG4uZG5nLXRoZW1lLXNoYXBlIHtcbiAgLS1kbmctdGhlbWUtY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS10ZXJyYWNvdHRhKTtcbiAgLS1kbmctdGhlbWUtY29sb3ItYnRuOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYmxhY2spO1xuICAtLWRuZy10aGVtZS1jb2xvci1idG4tYmc6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS10ZXJyYWNvdHRhKTtcbiAgLS1kbmctdGhlbWUtZm9vdGVyLWJnOiByZ2JhKDI1MywgMjIwLCAyMDMsIDEpO1xuICAtLWRuZy10aGVtZS1mb290ZXItY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ibGFjayk7XG59XG5cbi5kbmctdGhlbWUtY3JhZnQge1xuICAtLWRuZy10aGVtZS1jb2xvcjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXZpb2xldCk7XG4gIC0tZG5nLXRoZW1lLWNvbG9yLWJ0bjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWJsYWNrKTtcbiAgLS1kbmctdGhlbWUtY29sb3ItYnRuLWJnOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tdmlvbGV0KTtcbiAgLS1kbmctdGhlbWUtZm9vdGVyLWJnOiAjZTFlNWZjO1xuICAtLWRuZy10aGVtZS1mb290ZXItY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ibGFjayk7XG59XG5cbi5kbmctdGhlbWUtdHJhaW5pbmcge1xuICAtLWRuZy10aGVtZS1jb2xvcjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWxpbWUtZ3JlZW4pO1xuICAtLWRuZy10aGVtZS1jb2xvci1idG46IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ibGFjayk7XG4gIC0tZG5nLXRoZW1lLWNvbG9yLWJ0bi1iZzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWxpbWUtZ3JlZW4pO1xuICAtLWRuZy10aGVtZS1mb290ZXItYmc6ICNjZWRjY2E7XG4gIC0tZG5nLXRoZW1lLWZvb3Rlci1jb2xvcjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWJsYWNrKTtcbn1cbiIsIi5ncmVjYXB0Y2hhLWJhZGdlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLmRuZy1jLXRpdG8tYmxvY2sge1xuICAtLXNxdWFyZS13aWR0aDogOHB4O1xuXG4gIC50aXRvLXdpZGdldC1mb3JtID4gZGl2IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMXJlbTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuXG4gICAgQG1lZGlhICgtLW1kLW1heCkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICB9XG5cbiAgLnRpdG8tcmVsZWFzZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY0ZjA7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogdmFyKC0tc3F1YXJlLXdpZHRoKTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjRmMDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvKiBzcXVhcmUgKHRvcC1sZWZ0KSAqL1xuICAgICY6YmVmb3JlIHtcbiAgICAgIHRvcDogLTRweDtcbiAgICAgIGxlZnQ6IC00cHg7XG4gICAgfVxuXG4gICAgLyogc3F1YXJlICh0b3AtcmlnaHQpICovXG4gICAgJjphZnRlciB7XG4gICAgICB0b3A6IC00cHg7XG4gICAgICByaWdodDogLTRweDtcbiAgICB9XG4gIH1cblxuICAudGl0by1yZWxlYXNlLS10aXRsZSB7XG4gICAgQGFwcGx5IHJlbGF0aXZlIHctZnVsbCBib3JkZXItc20gYm9yZGVyLWItbm9uZSBib3JkZXItYmxhY2sgcHgtc20gcHktbGcgZm9udC1icmFuZCB0ZXh0LWg0O1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IHZhcigtLXNxdWFyZS13aWR0aCk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY0ZjA7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogc3F1YXJlIChwb3N0LXRpdGxlIGxlZnQpICovXG4gICAgJjpiZWZvcmUge1xuICAgICAgYm90dG9tOiAtNHB4O1xuICAgICAgbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICAvKiBzcXVhcmUgKHBvc3QtdGl0bGUgcmlnaHQpICovXG4gICAgJjphZnRlciB7XG4gICAgICByaWdodDogLTRweDtcbiAgICAgIGJvdHRvbTogLTRweDtcbiAgICB9XG4gIH1cblxuICAudGl0by1yZWxlYXNlLWRlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAudGl0by1yZWxlYXNlLWRlc2NyaXB0aW9uLS1kZXNjcmlwdGlvbiB7XG4gICAgQGFwcGx5IGRuZy1jLXJpY2gtdGV4dC1jb250ZW50LXVuc3R5bGVkIGJvcmRlci1zbSBib3JkZXItYmxhY2sgcHgtc20gcHktbWQgdGV4dC1ib2R5LWw7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4OiAxO1xuICB9XG5cbiAgLnRpdG8tdGltZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAudGl0by1wcmljZS1kZXRhaWxzLXJlZ3VsYXIsXG4gIC50aXRvLXF1YW50aXR5IHtcbiAgICBAYXBwbHkgYm9yZGVyLWItc20gYm9yZGVyLWJsYWNrIHB4LXNtIHB5LW1kIHRleHQtYm9keS14eGw7XG4gIH1cblxuICAudGl0by1wcmljZS1kZXRhaWxzLXJlZ3VsYXIge1xuICAgIEBhcHBseSBib3JkZXItbC1zbSBib3JkZXItYmxhY2s7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiA3NSU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8qIHNxdWFyZSAoYm90dG9tLWxlZnQpICovXG4gICAgJjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIGJvdHRvbTogLTRweDtcbiAgICAgIGxlZnQ6IC00cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiB2YXIoLS1zcXVhcmUtd2lkdGgpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmNGYwO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC50aXRvLXByaWNlIHtcbiAgICBAYXBwbHkgdGV4dC1bMzBweF07XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIHBlciB0aWNrZXRcIjtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICB9XG4gIH1cblxuICAudGl0by1yZWxlYXNlLS10YXgge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiKFwiO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIpXCI7XG4gICAgfVxuICB9XG5cbiAgLnRpdG8tcXVhbnRpdHkge1xuICAgIEBhcHBseSBib3JkZXItci1zbSBib3JkZXItYmxhY2s7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAyNSU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdhcDogNHB4O1xuXG4gICAgLyogc3F1YXJlIChib3R0b20tcmlnaHQpICovXG4gICAgJjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIHJpZ2h0OiAtNHB4O1xuICAgICAgYm90dG9tOiAtNHB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogdmFyKC0tc3F1YXJlLXdpZHRoKTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjRmMDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudGl0by1xdWFudGl0eS1pbnB1dCB7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudGl0by1mb3JtLWFjdGlvbnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgbWFyZ2luLXRvcDogNDJweDtcbiAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgfVxuXG4gIC50aXRvLXN1Ym1pdCB7XG4gICAgQGFwcGx5ICFpbmxpbmUtZmxleCAhaXRlbXMtY2VudGVyICFqdXN0aWZ5LWNlbnRlciAhZ2FwLXh4cyAhYm9yZGVyLXRyYW5zcGFyZW50ICFiZy10aGVtZS1idG4tYmcgIXB4LXhsICFweS14eHMgIWZvbnQtc2FucyAhdGV4dC1ib2R5LWwgIXRleHQtdGhlbWUtYnRuIGhvdmVyOm9wYWNpdHktODUgZm9jdXM6b3BhY2l0eS04NSBhY3RpdmU6b3BhY2l0eS02MCBkaXNhYmxlZDpvcGFjaXR5LTEwO1xuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi50aXRvLXJlZ2lzdHJhdGlvbi1zZWN0aW9uLWhlYWRlci0taGVhZGluZyB7XG4gIEBhcHBseSBmb250LWJyYW5kIHRleHQtaDQ7XG59XG4iLCIuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiBjbGFtcCgzNjBweCwgMTAwJSwgMTM1OHB4KSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1oMSxcbi50ZXh0LWgyLFxuLnRleHQtaDMge1xuICBAYXBwbHkgbWF4LW1kOiF0ZXh0LWg0O1xufVxuXG4udGV4dC1oMSxcbi50ZXh0LWgyLFxuLnRleHQtaDMsXG4udGV4dC1oNCxcbi5cXCF0ZXh0LWgxLFxuLlxcIXRleHQtaDIsXG4uXFwhdGV4dC1oMyxcbi5cXCF0ZXh0LWg0IHtcbiAgQGFwcGx5ICFmb250LWJyYW5kO1xufVxuXG4udGV4dC1ib2R5LTEsXG4udGV4dC1ib2R5LTIsXG4udGV4dC1ib2R5LXh4bCxcbi50ZXh0LWJvZHktbCAudGV4dC10YWcsXG4udGV4dC1vdmVybGluZSB7XG4gIEBhcHBseSAhZm9udC1zYW5zO1xufVxuIiwiQHRhaWx3aW5kIGNvbXBvbmVudHM7XG4iLCJAaW1wb3J0IFwidGFpbHdpbmRjc3MvY29tcG9uZW50c1wiO1xuLyogUExPUF9JTkpFQ1RfQ1NTICovXG5AaW1wb3J0IFwiY29tcG9uZW50cy9fc2VydmljZS1jYXJkLWdyb3VwLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2hvdy1pdC13b3Jrcy5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19icmVhZGNydW1icy5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19zZXJ2aWNlLWNhcmQuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fc3RhdGlzdGljcy10YWJsZS5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19jb250YWN0LWJhbmQuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fc2VjdG9yLW1vc2FpYy5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19zZWN0b3ItaGlnaGxpZ2h0cy5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19zZXJ2aWNlLXRhZ3MuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fZmFxLWFjY29yZGlvbi5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL191bml0LWNhcmQuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fY29ybmVyLXRpY2tzLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2J1dHRvbi10aGVtZWQtd3JhcHBlci5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19jYXJkLXRhZ3MuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fZGVzaWduLWFwcHJvYWNoLWR1YWxpdHkuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fZmFkaW5nLWJsb2NrLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2ZyYW1lLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2dyZWVuLWZyYW1lZC1jYXJkLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX21haW4taGVhZGVyLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2hvcml6b250YWwtdGFicy5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19wYXJ0bmVyLWxpc3QuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fcmV4LWdyYXBoLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX3JleC1tYXAuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fcmljaC10ZXh0LWNvbnRlbnQtdW5zdHlsZWQuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fc2VjdGlvbi1jaGFuZ2UuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fdGVhbS1tZW1iZXItcG9wdXAuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fdGhlLXJvY2suY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fdGhlLXJvY2stY2FyZC5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19zaXRlLWZvb3Rlci5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL190b29sLWNhcmQuY3NzXCI7XG4iLCIvKlxuICogVGhlIFNlcnZpY2VzIEluZGV4IGdyb3VwcyBpdHMgY2FyZHMgdW5kZXIgYSB1bml0IG5hbWUgYW5kIHRhZ2xpbmUuXG4gKlxuICogTGl2ZXMgYmVzaWRlIHRoZSBjYXJkIHJhdGhlciB0aGFuIGluc2lkZSBpdDogdGhlIGNhcmQga25vd3Mgbm90aGluZyBhYm91dFxuICogdW5pdHMsIGFuZCB0aGUgZ3JvdXBpbmcgaXMgYSBwcm9wZXJ0eSBvZiB0aGUgaW5kZXggdGhhdCBzaG93cyB0aGVtLlxuICovXG4uZG5nLWMtc2VydmljZS1jYXJkLWdyb3VwcyB7XG4gIGdhcDogODBweDtcbn1cblxuLmRuZy1jLXNlcnZpY2UtY2FyZC1ncm91cCB7XG4gICYgLmRuZy1jLXNlcnZpY2UtY2FyZC1ncm91cF9fdGFnbGluZSB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG5cbiAgJiAuZG5nLWMtc2VydmljZS1jYXJkLWxpc3Qge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gIH1cbn1cblxuLypcbiAqIEZpbHRlciB0YWJzLlxuICpcbiAqIE1lYXN1cmVkIGZyb20gdGhlIHRhYiByb3cgdGhlIE5ld3MgYW5kIEluc2lnaHRzIHBhZ2VzIGFscmVhZHkgdXNlIOKAlCBhblxuICogRWxlbWVudG9yIG5lc3RlZC10YWJzIHdpZGdldCDigJQgcmF0aGVyIHRoYW4gc3R5bGVkIHRvIGxvb2sgcm91Z2hseSBsaWtlIGl0OlxuICogMjRweCBhcGFydCwgMThweCBicmFuZCB0eXBlLCBhbmQgdGhlIGFjdGl2ZSB0YWIgbWFya2VkIGJ5IGEgMXB4IHJ1bGUgdW5kZXJcbiAqIGl0LiBUaGUgcnVsZSBpcyBvbiBldmVyeSB0YWIgYW5kIHRyYW5zcGFyZW50IHdoZW4gaW5hY3RpdmUsIHNvIG5vdGhpbmcgbW92ZXNcbiAqIGJ5IGEgcGl4ZWwgd2hlbiB0aGUgc2VsZWN0aW9uIGNoYW5nZXMuXG4gKlxuICogVGhlIGNvdW50IHNpdHMgd2l0aCBgQWxsYCBiZWNhdXNlIHRoYXQgaXMgdGhlIG51bWJlciBpdCBjb3VudHMsIGFuZCBpdCBzdGF5c1xuICogcHV0IHdoZW4gYW5vdGhlciB0YWIgaXMgc2VsZWN0ZWQg4oCUIGEgdG90YWwgdGhhdCBjaGFuZ2VkIHdpdGggdGhlIGZpbHRlclxuICogd291bGQgYmUgYSBzZWNvbmQsIHF1aWV0ZXIgYW5zd2VyIHRvIFwiaG93IG1hbnkgc2VydmljZXMgYXJlIHRoZXJlXCIuXG4gKi9cbi5kbmctYy1zZXJ2aWNlLWNhcmQtZmlsdGVycyB7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIGdhcDogMjRweDtcblxuICAvKlxuICAgKiBUaGUga2l0IGRyZXNzZXMgZXZlcnkgPGJ1dHRvbj4sIGFuZCB0aGVzZSBhcmUgYnV0dG9ucyDigJQgdGhlIHNhbWUgZ3JlZW5cbiAgICogaG92ZXIgYW5kIGZvY3VzIGZpbGwgdGhlIEZBUSBxdWVzdGlvbnMgaW5oZXJpdGVkLCB3aGljaCBoZXJlIHNhdCBvdmVyIHRoZVxuICAgKiBhY3RpdmUgdGFiJ3MgcnVsZSBhbmQgaGlkIGl0LiBCb3RoIHBzZXVkby1jbGFzc2VzLCBiZWNhdXNlIHRoZSBraXQgc2V0c1xuICAgKiBib3RoLCBhbmQgdGhlIHRhYiBrZWVwcyB0aGUgZm9jdXMgcmluZyB0aGUgVUEgZ2l2ZXMgaXQuXG4gICAqL1xuICAmIC5kbmctYy1zZXJ2aWNlLWNhcmQtZmlsdGVyc19fdGFiLFxuICAmIC5kbmctYy1zZXJ2aWNlLWNhcmQtZmlsdGVyc19fdGFiOmhvdmVyLFxuICAmIC5kbmctYy1zZXJ2aWNlLWNhcmQtZmlsdGVyc19fdGFiOmZvY3VzIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gICYgLmRuZy1jLXNlcnZpY2UtY2FyZC1maWx0ZXJzX190YWIuaXMtYWN0aXZlIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYmxhY2ssICMyYzI3MjEpO1xuICB9XG5cbiAgLyogYEFsbGAgYW5kIGl0cyBjb3VudCBhcmUgb25lIGl0ZW0sIHNvIHRoZSAyNHB4IHJvdyBnYXAgZmFsbHMgb3V0c2lkZSB0aGVtLiAqL1xuICAmIC5kbmctYy1zZXJ2aWNlLWNhcmQtZmlsdGVyc19fYWxsIHtcbiAgICBnYXA6IDEwcHg7XG4gIH1cblxuICAvKlxuICAgKiBCb3JkZXJlZCwgbm90IGp1c3QgY29ybmVyLXRpY2tlZC4gVGhlIHRpY2tzIGFyZSBkcmF3biB0byBzaXQgb24gYW4gZWRnZSDigJRcbiAgICogb24gYSBjYXJkIHRoYXQgZWRnZSBpcyB0aGUgY2FyZCdzIG93biBib3JkZXIsIGFuZCB3aXRob3V0IG9uZSB0aGV5IHJlYWQgYXNcbiAgICogZm91ciBsb29zZSBzcXVhcmVzIHJhdGhlciB0aGFuIGFzIGEgZnJhbWUgYXJvdW5kIHRoZSBudW1iZXIuXG4gICAqL1xuICAmIC5kbmctYy1zZXJ2aWNlLWNhcmQtZmlsdGVyc19fY291bnQge1xuICAgIHBhZGRpbmc6IDJweCA3cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWJsYWNrLCAjMmMyNzIxKTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbi8qIEhpZGRlbiBieSB0aGUgZmlsdGVyLCBub3QgYnkgdGhlIG1hcmt1cCDigJQgc2VlIHRoZSB3aWRnZXQuICovXG4uZG5nLWMtc2VydmljZS1jYXJkLWdyb3VwW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmRuZy1jLXNlcnZpY2UtY2FyZC1ncm91cHMge1xuICAgIGdhcDogNTBweDtcbiAgfVxufVxuIiwiLypcbiAqIFwiSG93IGl0IHdvcmtzXCIg4oCUIG51bWJlcmVkIHN0ZXBzIG9uIHRoZSBzZXJ2aWNlIHBhZ2UuXG4gKlxuICogVGhlIG51bWVyYWxzIGFyZSB0aGUgc2VjdGlvbidzIHdob2xlIHZpc3VhbCB3ZWlnaHQ6IHZlcnkgbGFyZ2UsIHZlcnkgbGlnaHQsXG4gKiBhbmQgc2V0IGluIHRoZSBicmFuZCBmYWNlLiBUaGV5IHJlYWQgYXMgb3V0bGluZXMgYXQgdGhhdCB3ZWlnaHQsIHdoaWNoIGlzXG4gKiB3aHkgdGhleSBjYXJyeSBubyBjb2xvdXIgb2YgdGhlaXIgb3duIGJleW9uZCBpbmsuXG4gKi9cbi5kbmctYy1ob3ctaXQtd29ya3Mge1xuICAmIC5kbmctYy1ob3ctaXQtd29ya3NfX2dyaWQge1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgZ2FwOiA2MHB4IDQwcHg7XG4gIH1cblxuICAmIC5kbmctYy1ob3ctaXQtd29ya3NfX2dyaWQ6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmIC5kbmctYy1ob3ctaXQtd29ya3NfX251bWJlciB7XG4gICAgZm9udC1zaXplOiA3MnB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIH1cblxuICAmIC5kbmctYy1ob3ctaXQtd29ya3NfX2xhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICB9XG5cbiAgJiAuZG5nLWMtaG93LWl0LXdvcmtzX19kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZG5nLWMtaG93LWl0LXdvcmtzIHtcbiAgICAmIC5kbmctYy1ob3ctaXQtd29ya3NfX2dyaWQge1xuICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgIGdhcDogNDBweCAyMHB4O1xuICAgIH1cblxuICAgICYgLmRuZy1jLWhvdy1pdC13b3Jrc19fbnVtYmVyIHtcbiAgICAgIGZvbnQtc2l6ZTogNTZweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qXG4gKiBCcmVhZGNydW1icyBhbmQgdGhlIGJhY2sgbGluayBiZW5lYXRoIHRoZW0uXG4gKlxuICogVGhlIGRlc2lnbiBtdXRlcyB0aGUgcGF0aCBhbmQgbGVhdmVzIHRoZSBjdXJyZW50IHBhZ2UgaW4gZnVsbCBpbmsgYW5kXG4gKiBtZWRpdW0gd2VpZ2h0IOKAlCB0aGUgb3Bwb3NpdGUgb2YgdGhlIHVzdWFsIFwiY3VycmVudCBjcnVtYiBpcyBxdWlldFwiIGhhYml0LFxuICogc28gaXQgaXMgd29ydGggc3RhdGluZyByYXRoZXIgdGhhbiBpbmhlcml0aW5nLlxuICpcbiAqIFRoZSBzZXBhcmF0b3IgaXMgYSByZWFsIGNoYXJhY3RlciByYXRoZXIgdGhhbiBhIHBzZXVkby1lbGVtZW50IHNvIGl0IGlzXG4gKiBzZWxlY3RhYmxlIHdpdGggdGhlIHRyYWlsIHdoZW4gc29tZW9uZSBjb3BpZXMgdGhlIHBhdGguXG4gKi9cbi5kbmctYy1icmVhZGNydW1icyB7XG4gICYgLmRuZy1jLWJyZWFkY3J1bWJzX19saW5rLFxuICAmIC5kbmctYy1icmVhZGNydW1ic19fbGFiZWwsXG4gICYgLmRuZy1jLWJyZWFkY3J1bWJzX19zZXBhcmF0b3Ige1xuICAgIGNvbG9yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZ3JheSwgIzY4NWU1Mik7XG4gIH1cblxuICAmIC5kbmctYy1icmVhZGNydW1ic19fY3VycmVudCB7XG4gICAgY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ibGFjaywgIzJjMjcyMSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG59XG4iLCIvKlxuICogU2VydmljZXMgSW5kZXggY2FyZC5cbiAqXG4gKiBUaGUgdGl0bGUgYmFuZCBhbmQgdGhlIGJvZHkgYXJlIHBhZGRlZCBzZXBhcmF0ZWx5IGJlY2F1c2UgdGhlIHJ1bGUgYmV0d2VlblxuICogdGhlbSBydW5zIGVkZ2UgdG8gZWRnZSDigJQgcGFkZGluZyBvbiB0aGUgY2FyZCB3b3VsZCBoYXZlIGluc2V0IGl0LlxuICovXG4uZG5nLWMtc2VydmljZS1jYXJkIHtcbiAgbWluLWhlaWdodDogMzE3cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjAwbXMgZWFzZTtcblxuICAvKlxuICAgKiBBIGNhcmQgd2l0aCBubyBleGNlcnB0IGJlaGluZCBpdCBpcyBhIHRpdGxlIGFuZCBhIGxpbmssIGFuZCAzMTdweCBvZlxuICAgKiBub3RoaW5nIGJldHdlZW4gdGhlbSByZWFkcyBhcyBhIGNhcmQgdGhhdCBmYWlsZWQgdG8gbG9hZCByYXRoZXIgdGhhbiBvbmVcbiAgICogd2l0aCBsZXNzIHRvIHNheS5cbiAgICovXG4gICYuZG5nLWMtc2VydmljZS1jYXJkLS1uby1kZXNjcmlwdGlvbiB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gICYgLmRuZy1jLXNlcnZpY2UtY2FyZF9fdGl0bGUge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gIH1cblxuICAmIC5kbmctYy1zZXJ2aWNlLWNhcmRfX2JvZHkge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZ2FwOiAyMHB4O1xuICB9XG5cbiAgJiAuZG5nLWMtc2VydmljZS1jYXJkX19tb3JlIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1zYW5kLCAjZjBlNmRiKTtcbiAgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuZG5nLWMtc2VydmljZS1jYXJkIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4iLCIvKlxuICogVGhlIGB1bml0LWdyaWRgIHZhcmlhbnQgb2YgdGhlIHN0YXRpc3RpY3Mgcm93IOKAlCB0aGUgXCJGb3VyIFVuaXRzLCBPbmUgU3lzdGVtaWNcbiAqIFByYWN0aWNlXCIgbnVtYmVycy4gVGhlIGJhbmQgdmFyaWFudCBjYXJyaWVzIG5vIENTUyBvZiBpdHMgb3duOyBldmVyeXRoaW5nIGl0XG4gKiBuZWVkcyBpcyBpbiB1dGlsaXRpZXMuXG4gKlxuICogVGhlIHJvdyBzaXRzIG9uIHRoZSBzYW1lIGZvdXItY29sdW1uIGdyaWQgYXMgdGhlIHVuaXQgY2FyZHMgYmVsb3cgaXQsIHNvIHRoZVxuICogbnVtYmVycyBsaW5lIHVwIHdpdGggdGhlIGNhcmRzIHJhdGhlciB0aGFuIHNwcmVhZGluZyBldmVubHkuXG4gKi9cbi5kbmctYy1zdGF0aXN0aWNzLXRhYmxlLS11bml0LWdyaWQge1xuICAmIC5kbmctYy1zdGF0aXN0aWNzLXRhYmxlX19sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxufVxuIiwiLypcbiAqIFRoZSBzYW5kIGNvbnRhY3QgYmFuZC5cbiAqXG4gKiBgLS1ibGVlZGAgcHVsbHMgdGhlIGJhbmQgb3V0IHRvIHRoZSB2aWV3cG9ydCBlZGdlcyBmcm9tIGluc2lkZSB3aGF0ZXZlclxuICogY29udGFpbmVyIGhvbGRzIGl0LCBzbyB0aGUgY29sb3VyIHJ1bnMgZnVsbCB3aWR0aCB3aGlsZSB0aGUgY29weSBzdGF5cyBvblxuICogdGhlIGNvbnRlbnQgZ3JpZC4gSXQgbGVhbnMgb24gdncgdW5pdHMsIHNvIGEgcGFnZSB0aGF0IGNhbiBzY3JvbGxcbiAqIGhvcml6b250YWxseSB3aWxsIHNob3cgdGhlIGJhbmQgMTVweCB3aWRlciB0aGFuIHRoZSB2aWV3cG9ydCBvbiBwbGF0Zm9ybXNcbiAqIHdpdGggY2xhc3NpYyBzY3JvbGxiYXJzIOKAlCB0dXJuIHRoZSBibGVlZCBvZmYgaWYgYSBwYWdlIGV2ZXIgbmVlZHMgdGhhdC5cbiAqL1xuLmRuZy1jLWNvbnRhY3QtYmFuZCB7XG4gIC0tZG5nLWMtY29udGFjdC1iYW5kLWNvbnRlbnQ6IDEyODhweDtcblxuICAmLmRuZy1jLWNvbnRhY3QtYmFuZC0tYmxlZWQge1xuICAgIG1hcmdpbi1pbmxpbmU6IGNhbGMoNTAlIC0gNTB2dyk7XG4gIH1cblxuICAmIC5kbmctYy1jb250YWN0LWJhbmRfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWRuZy1jLWNvbnRhY3QtYmFuZC1jb250ZW50KTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIHBhZGRpbmctYmxvY2s6IDEwMHB4O1xuICAgIHBhZGRpbmctaW5saW5lOiAyMHB4O1xuICB9XG5cbiAgJiAuZG5nLWMtY29udGFjdC1iYW5kX190aXRsZSArIC5kbmctYy1jb250YWN0LWJhbmRfX2Rlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICB9XG5cbiAgLypcbiAgICogVGhlIGZvcm0gaXMgYSBzaG9ydGNvZGUgc2xvdCwgc28gdGhlc2Ugc3R5bGUgd2hhdGV2ZXIgZW5naW5lIHJlbmRlcnMgaXQg4oCUXG4gICAqIEVsZW1lbnRvciBQcm8sIENvbnRhY3QgRm9ybSA3IG9yIEJyZXZvIGFsbCBwcm9kdWNlIHBsYWluIGlucHV0cy5cbiAgICovXG4gICYgLmRuZy1jLWNvbnRhY3QtYmFuZF9fZm9ybSB7XG4gICAgLyogRmllbGQgZ3JvdXBzIGRpZmZlciBwZXIgZW5naW5lOyB0aGlzIHNwYWNlcyB3aGF0ZXZlciB0aGUgZm9ybSBlbWl0cy4gKi9cbiAgICAmIGZvcm0gPiAqICsgKixcbiAgICAmIC5lbGVtZW50b3ItZmllbGQtZ3JvdXAge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG5cbiAgICAmIGxhYmVsLFxuICAgICYgLmVsZW1lbnRvci1maWVsZC1sYWJlbCB7XG4gICAgICBAYXBwbHkgIWZvbnQtc2FucyAhdGV4dC1ib2R5LW0gIXRleHQtYmxhY2s7XG5cbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cblxuICAgIC8qXG4gICAgICogYC5lbGVtZW50b3ItZmllbGRgIGlzIGluIHRoZSBsaXN0IGJlY2F1c2UgRWxlbWVudG9yIHN0eWxlcyBpdHMgb3duIGZvcm1cbiAgICAgKiBmaWVsZHMgYnkgY2xhc3MsIHdoaWNoIG91dHJhbmtzIGEgYmFyZSBlbGVtZW50IHNlbGVjdG9yIOKAlCB3aXRob3V0IGl0IHRoZVxuICAgICAqIGlucHV0cyBrZWVwIEVsZW1lbnRvcidzIHdoaXRlIGJveCBhbmQgdGhlIGRlc2lnbidzIHVuZGVybGluZSBuZXZlciBzaG93cy5cbiAgICAgKlxuICAgICAqIFRoZSBiYWNrZ3JvdW5kIGlzIGAhaW1wb3J0YW50YCBmb3IgdGhlIHNhbWUgZmlnaHQgb25lIGxldmVsIHVwLiBUaGUgZm9ybVxuICAgICAqIGlzIGEgc2F2ZWQgdGVtcGxhdGUgcGFzdGVkIGluIGFzIGEgc2hvcnRjb2RlLCBhbmQgYSBjb2xvdXIgc2V0IG9uIHRoYXRcbiAgICAgKiB3aWRnZXQgY29tcGlsZXMgdG9cbiAgICAgKiBgLmVsZW1lbnRvci00OTg0IC5lbGVtZW50b3ItZWxlbWVudC5lbGVtZW50b3ItZWxlbWVudC3igKYgLmVsZW1lbnRvci1maWVsZC1ncm91cCDigKZgLFxuICAgICAqIHdoaWNoIG5vIHNhbmUgc2VsZWN0b3IgaGVyZSBjYW4gb3V0cmFuay4gVGhlIGJhbmQgaXMgYSBjb2xvdXJlZCBwYW5lbCBhbmRcbiAgICAgKiB0aGUgZGVzaWduIGRyYXdzIHRoZSBmaWVsZHMgYXMgbGluZXMgb24gaXQsIHNvIHRoaXMgaXMgbm90IGEgcHJlZmVyZW5jZVxuICAgICAqIHRvIGJlIG92ZXJyaWRkZW4gcGVyIGZvcm0g4oCUIGhlbmNlIGZvcmNpbmcgaXQgcmF0aGVyIHRoYW4gY2hhc2luZ1xuICAgICAqIHNwZWNpZmljaXR5LiBBbnlvbmUgd2FudGluZyBhIGZpbGxlZCBmaWVsZCB3YW50cyBhIGRpZmZlcmVudCBjb21wb25lbnQuXG4gICAgICovXG4gICAgJiBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICAmIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgICAmIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4gICAgJiBpbnB1dFt0eXBlPVwidXJsXCJdLFxuICAgICYgc2VsZWN0LFxuICAgICYgLmVsZW1lbnRvci1maWVsZC10ZXh0dWFsLFxuICAgICYgaW5wdXQuZWxlbWVudG9yLWZpZWxkIHtcbiAgICAgIEBhcHBseSAhZm9udC1zYW5zICF0ZXh0LWJvZHktbSAhdGV4dC1ibGFjaztcblxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzJjMjcyMTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmIHRleHRhcmVhLFxuICAgICYgdGV4dGFyZWEuZWxlbWVudG9yLWZpZWxkIHtcbiAgICAgIEBhcHBseSAhZm9udC1zYW5zICF0ZXh0LWJvZHktbSAhdGV4dC1ibGFjaztcblxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMmMyNzIxO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFNpemVkIHRvIGl0cyBsYWJlbCwgbm90IHRvIHRoZSBjb2x1bW46IGEgXCJSZWFjaCB1c1wiIGJ1dHRvbiB3YXMgcmVuZGVyaW5nXG4gICAgICogNTM1cHggd2lkZSwgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIGZpZWxkIGNvbHVtbi5cbiAgICAgKlxuICAgICAqIFRoZSB3aWR0aCBiZWxvdyBpcyBub3Qgd2hhdCBzaXplcyBpdCDigJQgc2VlIHRoZSBmbGV4LWJhc2lzIHJ1bGUgdW5kZXJcbiAgICAgKiB0aGlzIGJsb2NrLCB3aGljaCBpcyB0aGUgb25lIHRoYXQgYWN0dWFsbHkgZG9lcy5cbiAgICAgKi9cbiAgICAmIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4gICAgJiBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICBAYXBwbHkgIWZvbnQtc2FucyAhdGV4dC1ib2R5LWwgIWJnLWJsYWNrICF0ZXh0LXdoaXRlO1xuXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICBwYWRkaW5nOiAxMHB4IDUwcHg7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3BhY2l0eTogMC44NTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFdoYXQgYWN0dWFsbHkgc3RvcHMgdGhlIGJ1dHRvbiBzcGFubmluZyB0aGUgY29sdW1uLlxuICAgICAqXG4gICAgICogVGhlIGZvcm0gd2lkZ2V0J3MgYWxpZ25tZW50IHNldHRpbmcgcHV0cyBgZWxlbWVudG9yLWJ1dHRvbi1hbGlnbi1zdHJldGNoYFxuICAgICAqIG9uIHRoZSB3aWRnZXQsIGFuZCB0aGF0IHNoaXBzXG4gICAgICogYC5lbGVtZW50b3ItYnV0dG9uLWFsaWduLXN0cmV0Y2ggLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdDpub3QoLmUtZm9ybV9fYnV0dG9uc19fd3JhcHBlcikgLmVsZW1lbnRvci1idXR0b24geyBmbGV4LWJhc2lzOiAxMDAlIH1gXG4gICAgICog4oCUIGZvdXIgY2xhc3Nlcywgd2hpY2ggb3V0cmFua3MgdGhlIHN1Ym1pdCBydWxlIGFib3ZlIGFuZCBkZWNpZGVzIHRoZVxuICAgICAqIGZsZXggaXRlbSdzIG1haW4gc2l6ZSBiZWZvcmUgYW55IHdpZHRoIGlzIGNvbnN1bHRlZC5cbiAgICAgKlxuICAgICAqIE1hdGNoZWQgaGVyZSB3aXRoIG9uZSBtb3JlIHN0ZXAgb2Ygc3BlY2lmaWNpdHkgcmF0aGVyIHRoYW4gYCFpbXBvcnRhbnRgLFxuICAgICAqIHNvIGEgZm9ybSB0aGF0IGdlbnVpbmVseSB3YW50cyBhIGZ1bGwtd2lkdGggYnV0dG9uIGNhbiBzdGlsbCBzYXkgc28uIFRoZVxuICAgICAqIGFsdGVybmF0aXZlIHdhcyBmbGlwcGluZyB0aGUgd2lkZ2V0J3MgYWxpZ25tZW50IGF3YXkgZnJvbSBgc3RyZXRjaGAsIGJ1dFxuICAgICAqIHRoYXQgc2V0dGluZyBsaXZlcyBpbiB0aGUgc2F2ZWQgZm9ybSB0ZW1wbGF0ZSBpbiB0aGUgZGF0YWJhc2UgYW5kIHdvdWxkXG4gICAgICogYmUgbG9zdCB0aGUgbmV4dCB0aW1lIHNvbWVvbmUgcmUtc2F2ZXMgaXQuXG4gICAgICovXG4gICAgJiAuZS1mb3JtX19idXR0b25zIC5lbGVtZW50b3ItYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZG5nLWMtY29udGFjdC1iYW5kIC5kbmctYy1jb250YWN0LWJhbmRfX2lubmVyIHtcbiAgICBwYWRkaW5nLWJsb2NrOiA2MHB4O1xuICB9XG59XG4iLCIvKlxuICogU2VjdG9ycyBJbmRleCBjYXJkIG1vc2FpYy5cbiAqXG4gKiBUaGUgYmxvY2sgaGVpZ2h0IGlzIHBlci1jYXJkIGFuZCBhcnJpdmVzIGFzIGEgY3VzdG9tIHByb3BlcnR5IGZyb20gUEhQLCBzb1xuICogdGhlIHN0YWdnZXIgYmV0d2VlbiB0aGUgdHdvIGNvbHVtbnMgaXMgY29udGVudCwgbm90IHN0eWxpbmcuXG4gKi9cbi5kbmctYy1zZWN0b3ItbW9zYWljIHtcbiAgJiAuZG5nLWMtc2VjdG9yLW1vc2FpY19fY2FyZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgfVxuXG4gICYgLmRuZy1jLXNlY3Rvci1tb3NhaWNfX2NvbHVtbiA+IC5kbmctYy1zZWN0b3ItbW9zYWljX19jYXJkOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmIC5kbmctYy1zZWN0b3ItbW9zYWljX19ibG9jayB7XG4gICAgaGVpZ2h0OiB2YXIoLS1kbmctYy1zZWN0b3ItbW9zYWljLWJsb2NrLWhlaWdodCwgMzAwcHgpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZTtcbiAgfVxuXG4gICYgLmRuZy1jLXNlY3Rvci1tb3NhaWNfX2Fycm93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgfVxuXG4gIC8qXG4gICAqIFRoZSBjYXJkIGlzIGEgY29sb3VyIGJsb2NrIGFuZCB0aGVuIHRocmVlIHRoaW5ncyByZWFkIGluIG9yZGVyLCBzbyB0aGVcbiAgICogc3BhY2luZyBoYXMgdG8gc2F5IHdoaWNoIGJlbG9uZ3MgdG8gd2hpY2gg4oCUIGFuZCB0aGUgc3RlcCBvZmYgdGhlIGJsb2NrIGlzXG4gICAqIHRoZSBsYXJnZXN0IG9mIHRoZSB0aHJlZSwgYmVjYXVzZSB0aGF0IGlzIHRoZSBvbmUgcmVhbCBicmVhayBpbiB0aGUgY2FyZC5cbiAgICpcbiAgICogVGhlc2UgYXJlIGZ1bGwgYG1hcmdpbmAgc2hvcnRoYW5kcywgbm90IGBtYXJnaW4tdG9wYCwgYW5kIHRoYXQgbWF0dGVycy5cbiAgICogVGhlIHRpdGxlLCB0aGUgZGVzY3JpcHRpb24gYW5kIHRoZSB0YWcgbGlzdCBlYWNoIGNhcnJpZWQgYSBgIW0tMGAgdXRpbGl0eVxuICAgKiB0byBmbGF0dGVuIHRoZSBicm93c2VyJ3MgZGVmYXVsdCBoZWFkaW5nIGFuZCBwYXJhZ3JhcGggbWFyZ2lucyDigJQgYW5kIGJlaW5nXG4gICAqIGAhaW1wb3J0YW50YCwgaXQgYWxzbyBmbGF0dGVuZWQgdGhlIG1hcmdpbnMgc2V0IGhlcmUsIHNvIHRoZSBjYXJkIGhhZCBiZWVuXG4gICAqIHJlbmRlcmluZyB3aXRoIG5vIGdhcHMgYXQgYWxsIHdoYXRldmVyIHRoZXNlIHZhbHVlcyBzYWlkLiBUaGUgdXRpbGl0aWVzIGFyZVxuICAgKiBnb25lIGZyb20gdGhlIG1hcmt1cCwgd2hpY2ggbWVhbnMgdGhlIGRlZmF1bHRzIGFyZSB0aGlzIHJ1bGUncyBwcm9ibGVtIG5vdzpcbiAgICogaGVuY2UgYSBzaG9ydGhhbmQgdGhhdCBzZXRzIHRoZSBib3R0b20gdG8gemVybyByYXRoZXIgdGhhbiBsZWF2aW5nIGl0IHRvXG4gICAqIHdoYXRldmVyIHRoZSBlbGVtZW50IGJyaW5ncy5cbiAgICovXG4gICYgLmRuZy1jLXNlY3Rvci1tb3NhaWNfX3RpdGxlIHtcbiAgICBtYXJnaW46IDI0cHggMCAwO1xuICB9XG5cbiAgJiAuZG5nLWMtc2VjdG9yLW1vc2FpY19fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbjogMTRweCAwIDA7XG4gIH1cblxuICAmIC5kbmctYy1zZWN0b3ItbW9zYWljX190YWdzIHtcbiAgICBtYXJnaW46IDE4cHggMCAwO1xuICB9XG5cbiAgJiAuZG5nLWMtc2VjdG9yLW1vc2FpY19fdGFnIHtcbiAgICBwYWRkaW5nOiAycHggMTBweDtcbiAgfVxuXG4gICYgYS5kbmctYy1zZWN0b3ItbW9zYWljX19jYXJkIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAmIC5kbmctYy1zZWN0b3ItbW9zYWljX19ibG9jayB7XG4gICAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgICB9XG5cbiAgICAgICYgLmRuZy1jLXNlY3Rvci1tb3NhaWNfX3RpdGxlIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZG5nLWMtc2VjdG9yLW1vc2FpYyAuZG5nLWMtc2VjdG9yLW1vc2FpY19fYmxvY2sge1xuICAgIC8qIFRoZSBkZXNpZ24ncyB0YWxsIGJsb2NrcyBhcmUgYSB0d28tY29sdW1uIGRldmljZTsgY2FwcGVkIG9uIG9uZSBjb2x1bW4uICovXG4gICAgaGVpZ2h0OiBtaW4odmFyKC0tZG5nLWMtc2VjdG9yLW1vc2FpYy1ibG9jay1oZWlnaHQsIDMwMHB4KSwgMjYwcHgpO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5kbmctYy1zZWN0b3ItbW9zYWljIC5kbmctYy1zZWN0b3ItbW9zYWljX19ibG9jayB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuIiwiLypcbiAqIFwiU2VjdG9ycyB3ZSBrbm93IGRlZXBseVwiIOKAlCB0aGUgaG9tZXBhZ2Ugc2VjdG9yIHJvdy5cbiAqXG4gKiBUaGUgYm94ZXMgY2FycnkgdGhlIGNvcm5lci10aWNrIG1vdGlmLCBzbyB0aGV5IG5lZWQgdGhlIHRpY2sgc3F1YXJlcyB0byBzaXRcbiAqIGNsZWFyIG9mIHRoZSBib3JkZXI6IHRoZSAyMHB4IGd1dHRlciBpcyBhIG1pbmltdW0sIG5vdCBhIHByZWZlcmVuY2UuXG4gKi9cbi5kbmctYy1zZWN0b3ItaGlnaGxpZ2h0cyB7XG4gICYgLmRuZy1jLXNlY3Rvci1oaWdobGlnaHRzX19ncmlkIHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICB9XG5cbiAgJiAuZG5nLWMtc2VjdG9yLWhpZ2hsaWdodHNfX2dyaWQ6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmIC5kbmctYy1zZWN0b3ItaGlnaGxpZ2h0c19faXRlbSB7XG4gICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcyBlYXNlO1xuICB9XG5cbiAgJiBhLmRuZy1jLXNlY3Rvci1oaWdobGlnaHRzX19pdGVtIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tc2FuZCwgI2YwZTZkYik7XG5cbiAgICAgICYgLmRuZy1jLXNlY3Rvci1oaWdobGlnaHRzX19sYWJlbCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmIC5kbmctYy1zZWN0b3ItaGlnaGxpZ2h0c19fY3RhIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAuZG5nLWMtc2VjdG9yLWhpZ2hsaWdodHMge1xuICAgICYgLmRuZy1jLXNlY3Rvci1oaWdobGlnaHRzX19ncmlkIHtcbiAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgfVxuXG4gICAgJiAuZG5nLWMtc2VjdG9yLWhpZ2hsaWdodHNfX2N0YSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5kbmctYy1zZWN0b3ItaGlnaGxpZ2h0cyAuZG5nLWMtc2VjdG9yLWhpZ2hsaWdodHNfX2l0ZW0ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbiIsIi8qXG4gKiBcIkRlc2lnbiBDb25zdWx0YW5jeSBTZXJ2aWNlc1wiIOKAlCBzZXJ2aWNlcyBhcyBib3JkZXJlZCB0YWdzLCBncm91cGVkIGJ5IHVuaXQuXG4gKlxuICogVGhlIHNwYWNpbmcgYmV0d2VlbiB0aGUgaW50cm8gYW5kIHRoZSBmaXJzdCBncm91cCBpcyBsYXJnZXIgdGhhbiB0aGUgZ2FwXG4gKiBiZXR3ZWVuIGdyb3VwcyDigJQgdGhlIGRlc2lnbiBvcGVucyB0aGUgc2VjdGlvbiB3aWRlciB0aGFuIGl0IHNlcGFyYXRlcyBpdHNcbiAqIHBhcnRzIOKAlCB3aGljaCBpcyB3aHkgaXQgaXMgc2V0IGhlcmUgcmF0aGVyIHRoYW4gbGVmdCB0byB0aGUgZ3JvdXBzJyBvd24gZ2FwLlxuICpcbiAqIEJvdGggY2FtZSBkb3duIG9uZSBzdGVwIG9mIHRoZSBzcGFjaW5nIHNjYWxlICg4MCDihpIgNjAsIGFuZCB0aGUgZ3JvdXBzJyBnYXBcbiAqIDYwIOKGkiA1MCkgYWZ0ZXIgdGhlIHNlY3Rpb24gcmVhZCB0b28gYWlyeSBpbiBwbGFjZS4gVGhlIHN0ZXAsIHJhdGhlciB0aGFuIGFcbiAqIGhhbmQtcGlja2VkIG51bWJlciwgaXMgd2hhdCBrZWVwcyBpdCBvbiB0aGUgc2NhbGUgZXZlcnl0aGluZyBlbHNlIHVzZXM7IHRoZVxuICogcHJvcG9ydGlvbiBiZXR3ZWVuIHRoZSB0d28gaXMgdW5jaGFuZ2VkLlxuICovXG4uZG5nLWMtc2VydmljZS10YWdzIHtcbiAgJiAuZG5nLWMtc2VydmljZS10YWdzX19ncm91cHMge1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gIH1cblxuICAvKiBObyBoZWFkaW5nIGFib3ZlIHRoZSBncm91cHMgKHRoZSBSZWxhdGVkIFNlcnZpY2VzIHdyYXApIG5lZWRzIG5vIG9mZnNldC4gKi9cbiAgJiAuZG5nLWMtc2VydmljZS10YWdzX19ncm91cHM6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmIC5kbmctYy1zZXJ2aWNlLXRhZ3NfX3RhZyB7XG4gICAgcGFkZGluZzogNHB4IDEycHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcyBlYXNlO1xuICB9XG5cbiAgJiBhLmRuZy1jLXNlcnZpY2UtdGFnc19fdGFnIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tc2FuZCwgI2YwZTZkYik7XG4gICAgfVxuICB9XG5cbiAgJiAuZG5nLWMtc2VydmljZS10YWdzX19jdGEge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5kbmctYy1zZXJ2aWNlLXRhZ3Mge1xuICAgICYgLmRuZy1jLXNlcnZpY2UtdGFnc19fZ3JvdXBzIHtcbiAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgfVxuXG4gICAgJiAuZG5nLWMtc2VydmljZS10YWdzX19jdGEge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmRuZy1jLXNlcnZpY2UtdGFncyAuZG5nLWMtc2VydmljZS10YWdzX190YWcge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbiIsIi5kbmctYy1mYXEtYWNjb3JkaW9uIHtcbiAgLS1kbmctYy1mYXEtYWNjb3JkaW9uLWR1cmF0aW9uOiAzMDBtcztcblxuICAvKlxuICAgKiBBIHF1ZXN0aW9uIGFuZCBpdHMgYW5zd2VyIGFyZSBvbmUgbGluZSBvZiB0ZXh0IGVhY2ggYXQgcmVhZGluZyBzaXplLCBhbmQgYVxuICAgKiByb3cgdGhhdCBydW5zIHRoZSBmdWxsIHdpZHRoIG9mIGEgMTUxMnB4IGRlc2lnbiBwdXRzIHRoZSBjaGV2cm9uIGEgc2NyZWVuXG4gICAqIGF3YXkgZnJvbSB0aGUgcXVlc3Rpb24gaXQgYmVsb25ncyB0by4gQ2FwcGVkIGhlcmUgcmF0aGVyIHRoYW4gb24gdGhlXG4gICAqIGNvbnRhaW5lciBob2xkaW5nIGl0LCBzbyB0aGUgbGltaXQgaG9sZHMgd2hlcmV2ZXIgdGhlIGJsb2NrIGlzIGRyb3BwZWQg4oCUXG4gICAqIHRoZSBwYWdlIHRlbXBsYXRlLCBhIGNhc2Ugc3R1ZHksIG9yIGEgc2VjdGlvbiBhbiBlZGl0b3IgYnVpbGRzIGJ5IGhhbmQuXG4gICAqL1xuICBtYXgtd2lkdGg6IDk4MHB4O1xuXG4gIC8qXG4gICAqIFRoZSBxdWVzdGlvbiBpcyBhIHJlYWwgPGJ1dHRvbj4gc28gdGhlIGRpc2Nsb3N1cmUgaXMgb3BlcmFibGUgYW5kXG4gICAqIGFubm91bmNlZCDigJQgYW5kIHRoYXQgYWxvbmUgd2FzIGVub3VnaCBmb3IgdGhlIEVsZW1lbnRvciBraXQgdG8gZHJlc3MgaXQgYXNcbiAgICogb25lIG9mIGl0cyBidXR0b25zOiBgLmVsZW1lbnRvci1raXQtOCBidXR0b246aG92ZXIsIOKApjpmb2N1c2AgZmlsbHMgdGhlIHJvd1xuICAgKiB3aXRoIHRoZSBUcmFpbmluZyBncmVlbiBhdCA2OCUgb3ZlciBhIDAuM3MgdHJhbnNpdGlvbi4gTm90aGluZyBpbiB0aGlzXG4gICAqIGNvbXBvbmVudCBhc2tlZCBmb3IgaXQsIGFuZCBhIHF1ZXN0aW9uIHRoYXQgdHVybnMgZ3JlZW4gb24gdGhlIHdheSBwYXN0XG4gICAqIHJlYWRzIGFzIGEgc3RhdGUgdGhlIGFjY29yZGlvbiBkb2VzIG5vdCBoYXZlLlxuICAgKlxuICAgKiBCb3RoIHBzZXVkby1jbGFzc2VzIGFyZSBuYW1lZCBiZWNhdXNlIHRoZSBraXQgc2V0cyBib3RoLCBhbmQgdGhlXG4gICAqIHRyYW5zaXRpb24gZ29lcyB3aXRoIHRoZW06IHdpdGggbm8gY29sb3VyIGxlZnQgdG8gY2hhbmdlIGl0IHdvdWxkIG9ubHlcbiAgICogYW5pbWF0ZSB3aGF0ZXZlciB0aGUga2l0IHJlYWNoZXMgZm9yIG5leHQuIFRoZSBmb2N1cyByaW5nIGlzIHVudG91Y2hlZCDigJRcbiAgICogaXQgaXMgdGhlIFVBJ3MsIGFuZCBpdCBpcyB3aGF0IGFjdHVhbGx5IGhhcyB0byBzdGF5IHZpc2libGUgaGVyZS5cbiAgICovXG4gICYgLmRuZy1jLWZhcS1hY2NvcmRpb25fX3RyaWdnZXIsXG4gICYgLmRuZy1jLWZhcS1hY2NvcmRpb25fX3RyaWdnZXI6aG92ZXIsXG4gICYgLmRuZy1jLWZhcS1hY2NvcmRpb25fX3RyaWdnZXI6Zm9jdXMge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgJiAuZG5nLWMtZmFxLWFjY29yZGlvbl9faWNvbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tZG5nLWMtZmFxLWFjY29yZGlvbi1kdXJhdGlvbikgZWFzZTtcbiAgfVxuXG4gICYgLmRuZy1jLWZhcS1hY2NvcmRpb25fX3RyaWdnZXJbYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdIC5kbmctYy1mYXEtYWNjb3JkaW9uX19pY29uIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIC8qXG4gICAqIGdyaWQtdGVtcGxhdGUtcm93cyAxZnIgLT4gMGZyIGFuaW1hdGVzIHRvIHRoZSBwYW5lbCdzIG5hdHVyYWwgaGVpZ2h0IHdpdGhcbiAgICogbm8gSlMgbWVhc3VyaW5nLiB2aXNpYmlsaXR5OmhpZGRlbiBpcyB3aGF0IGFjdHVhbGx5IHRha2VzIHRoZSBjb2xsYXBzZWRcbiAgICogYW5zd2VyIG91dCBvZiB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIGFuZCB0aGUgdGFiIG9yZGVyLlxuICAgKi9cbiAgJiAuZG5nLWMtZmFxLWFjY29yZGlvbl9fcGFuZWwge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93cyB2YXIoLS1kbmctYy1mYXEtYWNjb3JkaW9uLWR1cmF0aW9uKSBlYXNlLFxuICAgICAgdmlzaWJpbGl0eSB2YXIoLS1kbmctYy1mYXEtYWNjb3JkaW9uLWR1cmF0aW9uKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgJiAuZG5nLWMtZmFxLWFjY29yZGlvbl9fcGFuZWwtaW5uZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmIC5kbmctYy1mYXEtYWNjb3JkaW9uX19pdGVtLmlzLWNsb3NlZCAuZG5nLWMtZmFxLWFjY29yZGlvbl9fcGFuZWwge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8qIFRoZSBmaXJzdCBjb2xsYXBzZSBoYXBwZW5zIG9uIGluaXQgYW5kIHNob3VsZCBub3QgYmUgYW5pbWF0ZWQuICovXG4gICYuaXMtaW5pdGlhbGlzaW5nIC5kbmctYy1mYXEtYWNjb3JkaW9uX19wYW5lbCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8qIENsb3NlcyB0aGUgc3RhY2sgb2ZmOyB0aGUgb3RoZXIgcnVsZXMgbGl2ZSBvbiBlYWNoIGl0ZW0ncyB0b3AgYm9yZGVyLiAqL1xuICAmIC5kbmctYy1mYXEtYWNjb3JkaW9uX19pdGVtOmxhc3QtY2hpbGQge1xuICAgIEBhcHBseSBib3JkZXItYi1zbSBib3JkZXItc29saWQgYm9yZGVyLWJsYWNrO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5kbmctYy1mYXEtYWNjb3JkaW9uIHtcbiAgICAmIC5kbmctYy1mYXEtYWNjb3JkaW9uX19wYW5lbCxcbiAgICAmIC5kbmctYy1mYXEtYWNjb3JkaW9uX19pY29uIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIuZG5nLWMtdW5pdC1jYXJkIHtcbiAgLyogMzIyeDQwMCBpbiB0aGUgRmlnbWE7IHRoZSB3aWR0aCBpdHNlbGYgY29tZXMgZnJvbSB3aGF0ZXZlciBncmlkIGhvbGRzIHRoZSBjYXJkLiAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4iLCIuZG5nLWMtY29ybmVyLXRpY2tzIHtcbiAgLS1kbmctYy1jb3JuZXItdGlja3Mtc2l6ZTogOHB4O1xuICAtLWRuZy1jLWNvcm5lci10aWNrcy1iZzogI2Y5ZjRmMDtcbiAgLS1kbmctYy1jb3JuZXItdGlja3MtY29sb3I6ICMyYzI3MjE7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICYgLmRuZy1jLWNvcm5lci10aWNrc19fc3F1YXJlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IHZhcigtLWRuZy1jLWNvcm5lci10aWNrcy1zaXplKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kbmctYy1jb3JuZXItdGlja3MtY29sb3IpO1xuICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kbmctYy1jb3JuZXItdGlja3MtYmcpO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAmLS10b3AtbGVmdCB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgfVxuXG4gICAgJi0tYm90dG9tLWxlZnQge1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDUwJSk7XG4gICAgfVxuXG4gICAgJi0tdG9wLXJpZ2h0IHtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTtcbiAgICB9XG5cbiAgICAmLS1ib3R0b20tcmlnaHQge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDUwJSk7XG4gICAgfVxuXG4gICAgJi0tY2VudGVyLWxlZnQge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgfVxuXG4gICAgJi0tY2VudGVyLXJpZ2h0IHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpO1xuICAgIH1cbiAgfVxufVxuIiwiLmRuZy1jLWJ1dHRvbi10aGVtZWQtd3JhcHBlciAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWRuZy10aGVtZS1jb2xvci1idG4tYmcpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1kbmctdGhlbWUtY29sb3ItYnRuKSAhaW1wb3J0YW50O1xuXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMgZWFzZS1pbi1vdXQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZG5nLXRoZW1lLWNvbG9yLWJ0bi1iZykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tZG5nLXRoZW1lLWNvbG9yLWJ0bikgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWRuZy10aGVtZS1jb2xvci1idG4tYmcpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLWRuZy10aGVtZS1jb2xvci1idG4pICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZG5nLXRoZW1lLWNvbG9yLWJ0bi1iZykgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tZG5nLXRoZW1lLWNvbG9yLWJ0bikgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwLjE7XG4gIH1cbn1cbiIsIi8qIFRoZSBjb3JuZXIgc3F1YXJlcyB0aGVtc2VsdmVzIGxpdmUgaW4gX2Nvcm5lci10aWNrcy5jc3MuICovXG4uZG5nLWMtY2FyZC10YWdzIHtcbiAgJiAuZG5nLWMtY2FyZC10YWdzX190YWcge1xuICAgIHBhZGRpbmc6IDFweCA5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cbiIsIi5kbmctYy1kZXNpZ24tYXBwcm9hY2gtZHVhbGl0eSBnW2RhdGEtc2VjdGlvbi1pdGVtc10ge1xuICAtLWNvbG9yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZm9yZXN0LWdyZWVuKTtcblxuICBwYXRoOm5vdCguZG5nLWMtZGVzaWduLWFwcHJvYWNoLWR1YWxpdHlfX2xpbmUpIHtcbiAgICBmaWxsOiB2YXIoLS1jb2xvcik7XG4gICAgdHJhbnNpdGlvbjogZmlsbCAyNTBtcyBlYXNlLWluLW91dDtcbiAgfVxuXG4gIC5kbmctYy1kZXNpZ24tYXBwcm9hY2gtZHVhbGl0eV9fbGluZSB7XG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvcik7XG4gICAgdHJhbnNpdGlvbjogc3Ryb2tlIDI1MG1zIGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgLmRuZy1jLWRlc2lnbi1hcHByb2FjaC1kdWFsaXR5X19pbmRpY2F0b3Ige1xuICAgIHN0cm9rZTogdmFyKC0tY29sb3IpO1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDQwMDtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogNDAwO1xuICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDFzIGVhc2UtaW4tb3V0IDYwMG1zO1xuICB9XG59XG5cbi5kbmctYy1kZXNpZ24tYXBwcm9hY2gtZHVhbGl0eSBnW2RhdGEtc2VjdGlvbi1pdGVtc10uaXMtYWN0aXZlIHtcbiAgLS1jb2xvcjogI2Y5ZjRmMDtcblxuICAuZG5nLWMtZGVzaWduLWFwcHJvYWNoLWR1YWxpdHlfX2luZGljYXRvciB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gIH1cbn1cbiIsIkBwcm9wZXJ0eSAtLWdyYWRpZW50LXBlcmNlbnRhZ2Uge1xuICBpbmhlcml0czogZmFsc2U7XG4gIGluaXRpYWwtdmFsdWU6IDAlO1xuICBzeW50YXg6IFwiPHBlcmNlbnRhZ2U+XCI7XG59XG5cbi5kbmctYy1mYWRpbmctYmxvY2sge1xuICAtLWdyYWRpZW50LXBlcmNlbnRhZ2U6IDk1JTtcblxuICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgdG8gdG9wLFxuICAgIHRyYW5zcGFyZW50IHZhcigtLWdyYWRpZW50LXBlcmNlbnRhZ2UpLFxuICAgIHJlZFxuICApO1xuICB0cmFuc2l0aW9uOiAtLWdyYWRpZW50LXBlcmNlbnRhZ2UgM3MgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG59XG5cbi5pcy12aXNpYmxlLmRuZy1jLWZhZGluZy1ibG9jayB7XG4gIC0tZ3JhZGllbnQtcGVyY2VudGFnZTogLTIwMCU7XG59XG4iLCIuZG5nLWMtZnJhbWUge1xuICAtLXNxdWFyZS13aWR0aDogOHB4O1xuICAtLXNxdWFyZS1jb2xvcjogI2Y5ZjRmMDtcbiAgLS1jb2xvcjogIzJjMjcyMTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1zcXVhcmUtd2lkdGgpIC8gMik7XG5cbiAgLyoqIFRoZSBTcXVhcmVzICovXG4gICZfX3NxdWFyZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1zcXVhcmUtd2lkdGgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yKTtcbiAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3F1YXJlLWNvbG9yKTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgJi0tdG9wLWxlZnQge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAmLS1jZW50ZXItbGVmdCB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICBAbWVkaWEgKC0tc20tbWF4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tYm90dG9tLWxlZnQge1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAmLS10b3AtcmlnaHQge1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgJi0tY2VudGVyLXJpZ2h0IHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICBAbWVkaWEgKC0tc20tbWF4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tYm90dG9tLXJpZ2h0IHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2JvcmRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yKTtcblxuICAgICYtLXRvcCB7XG4gICAgICB0b3A6IGNhbGModmFyKC0tc3F1YXJlLXdpZHRoKSAvIDIpO1xuICAgICAgbGVmdDogY2FsYyh2YXIoLS1zcXVhcmUtd2lkdGgpIC8gMik7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gKHZhcigtLXNxdWFyZS13aWR0aCkgLyAyKSk7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICB9XG5cbiAgICAmLS1yaWdodCB7XG4gICAgICB0b3A6IGNhbGModmFyKC0tc3F1YXJlLXdpZHRoKSAvIDIpO1xuICAgICAgcmlnaHQ6IGNhbGModmFyKC0tc3F1YXJlLXdpZHRoKSAvIDIpO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gKHZhcigtLXNxdWFyZS13aWR0aCkgLyAyKSk7XG4gICAgfVxuXG4gICAgJi0tbGVmdCB7XG4gICAgICBib3R0b206IGNhbGModmFyKC0tc3F1YXJlLXdpZHRoKSAvIDIpO1xuICAgICAgbGVmdDogY2FsYyh2YXIoLS1zcXVhcmUtd2lkdGgpIC8gMik7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAodmFyKC0tc3F1YXJlLXdpZHRoKSAvIDIpKTtcbiAgICB9XG5cbiAgICAmLS1ib3R0b20ge1xuICAgICAgcmlnaHQ6IGNhbGModmFyKC0tc3F1YXJlLXdpZHRoKSAvIDIpO1xuICAgICAgYm90dG9tOiBjYWxjKHZhcigtLXNxdWFyZS13aWR0aCkgLyAyKTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAodmFyKC0tc3F1YXJlLXdpZHRoKSAvIDIpKTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoLS1zbS1tYXgpIHtcbiAgICAtLXNxdWFyZS13aWR0aDogNHB4O1xuICB9XG59XG5cbi5kbmctYy1mcmFtZS0td2hpdGUge1xuICAtLWNvbG9yOiAjZjlmNGYwO1xuICAtLXNxdWFyZS1jb2xvcjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWZvcmVzdC1ncmVlbik7XG59XG4iLCIuZG5nLWMtZ3JlZW4tZnJhbWVkLWNhcmQge1xuICAtLXNxdWFyZS13aWR0aDogOHB4O1xuXG4gIEBkZWZpbmUtbWl4aW4gc3F1YXJlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IHZhcigtLXNxdWFyZS13aWR0aCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ncmVlbik7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmOWY0ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ncmVlbik7XG4gIGNvbG9yOiAjZjlmNGYwO1xuXG4gICY6YmVmb3JlIHtcbiAgICBAbWl4aW4gc3F1YXJlO1xuXG4gICAgdG9wOiAtNHB4O1xuICAgIGxlZnQ6IC00cHg7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBAbWl4aW4gc3F1YXJlO1xuXG4gICAgdG9wOiAtNHB4O1xuICAgIHJpZ2h0OiAtNHB4O1xuICB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBAYXBwbHkgZm9udC1icmFuZDtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAyMHB4IDE4cHggMTJweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y5ZjRmMDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBtaXhpbiBzcXVhcmU7XG5cbiAgICAgIGJvdHRvbTogLTRweDtcbiAgICAgIGxlZnQ6IC00cHg7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBAbWl4aW4gc3F1YXJlO1xuXG4gICAgICByaWdodDogLTRweDtcbiAgICAgIGJvdHRvbTogLTRweDtcbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50LXdyYXBwZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBAYXBwbHkgZm9udC1zYW5zIHRleHQtYm9keS1zO1xuXG4gICAgcGFkZGluZzogMjBweDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBtaXhpbiBzcXVhcmU7XG5cbiAgICAgIGJvdHRvbTogLTRweDtcbiAgICAgIGxlZnQ6IC00cHg7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBAbWl4aW4gc3F1YXJlO1xuXG4gICAgICByaWdodDogLTRweDtcbiAgICAgIGJvdHRvbTogLTRweDtcbiAgICB9XG5cbiAgICAmID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG4gIC0tbWF4LXdpZHRoOiA1MDBweDtcbn1cbiIsIi5kbmctYy1wYXJ0bmVyLWxpc3Qge1xuICAtLW4tY29sczogMztcblxuICBAZGVmaW5lLW1peGluIHNxdWFyZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1zcXVhcmUtd2lkdGgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyYzI3MjE7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS13aGl0ZSk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTZweDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tbi1jb2xzKSwgMWZyKTtcblxuICAmX19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJjMjcyMTtcbiAgICBhc3BlY3QtcmF0aW86IDEuNTY7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBAbWl4aW4gc3F1YXJlO1xuXG4gICAgICBib3R0b206IC00cHg7XG4gICAgICBsZWZ0OiAtNHB4O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgQG1peGluIHNxdWFyZTtcblxuICAgICAgcmlnaHQ6IC00cHg7XG4gICAgICBib3R0b206IC00cHg7XG4gICAgfVxuICB9XG5cbiAgJl9faW1hZ2Uge1xuICAgIHdpZHRoOiBtaW4oMTAwJSwgMzAwcHgpO1xuICAgIGhlaWdodDogbWluKDEwMCUsIDE1MHB4KTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgQG1peGluIHNxdWFyZTtcblxuICAgICAgdG9wOiAtNHB4O1xuICAgICAgbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIEBtaXhpbiBzcXVhcmU7XG5cbiAgICAgIHRvcDogLTRweDtcbiAgICAgIHJpZ2h0OiAtNHB4O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoLS1zbS1tYXgpIHtcbiAgICAtLW4tY29sczogMjtcbiAgfVxufVxuIixudWxsLCIuZG5nLWMtbWFpbi1oZWFkZXIge1xuICBAYXBwbHkgeGw6bWluLWgtWzI1MHB4XTtcblxuICBjb2xvcjogdmFyKC0tY29udGVudC1jb2xvcik7XG5cbiAgJiBhIHtcbiAgICBjb2xvcjogdmFyKC0tY29udGVudC1jb2xvcik7XG4gIH1cblxuICAmX19sb2dvIHBhdGgge1xuICAgIGZpbGw6IHZhcigtLWNvbnRlbnQtY29sb3IpO1xuICB9XG5cbiAgJl9fcm9jayBwYXRoIHtcbiAgICBzdHJva2U6IHZhcigtLWNvbnRlbnQtY29sb3IpO1xuICB9XG59XG5cbi5kbmctYy1tYWluLWhlYWRlcixcbi5kbmctYy1tYWluLWhlYWRlci0tbGlnaHQge1xuICAtLWNvbnRlbnQtY29sb3I6ICMyYzI3MjE7XG59XG5cbi5kbmctYy1tYWluLWhlYWRlci0tZGFyayB7XG4gIC0tY29udGVudC1jb2xvcjogI2Y5ZjRmMDtcbn1cbiIsIi5kbmctYy1ob3Jpem9udGFsLXRhYnMge1xuICBAbWVkaWEgKC0tc20tbWF4KSB7XG4gICAgLmUtbi10YWJzLWhlYWRpbmcge1xuICAgICAgLS1uLXRhYnMtdGl0bGUtaGVpZ2h0OiAyOHB4O1xuICAgIH1cblxuICAgIC5lLW4tdGFicy1oZWFkaW5nOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIGhzbGEoMjcsIDQzJSwgOTYlLCAwKSAyMyUsXG4gICAgICAgICNmOWY0ZjBlZSA0OCUsXG4gICAgICAgICNmOWY0ZjAgOTAlXG4gICAgICApO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLmRuZy1jLXJleC1ncmFwaCB7XG4gIC0tYWN0aXZlLWNvbG9yOiAjYzdjZWY0NjY7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgfVxuXG4gIC5kbmctYy1yZXgtZ3JhcGhfX3NsaWNlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGZpbGw6IHZhcigtLWFjdGl2ZS1jb2xvcik7XG4gICAgfVxuXG4gICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAuZG5nLWMtcmV4LWdyYXBoX19mZWF0dXJlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC5kbmctYy1yZXgtZ3JhcGhfX2Rhc2hsaW5lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmRuZy1jLXJleC1ncmFwaF9fZ3JhcGgtY292ZXIge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZmlsbDogdmFyKC0tYWN0aXZlLWNvbG9yKTtcbiAgICB9XG5cbiAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5AZm9yICRpIGZyb20gMSB0byA1IHtcbiAgLmRuZy1jLXJleC1ncmFwaDpoYXMoW2RhdGEtc2VjdGlvbi10b2dnbGU9XCIkKGkpXCJdOmhvdmVyKSB7XG4gICAgLmRuZy1jLXJleC1ncmFwaF9fc2xpY2VbZGF0YS1zZWN0aW9uPVwiJChpKVwiXSB7XG4gICAgICBmaWxsOiB2YXIoLS1hY3RpdmUtY29sb3IpO1xuICAgIH1cblxuICAgIC5kbmctYy1yZXgtZ3JhcGhfX2ZlYXR1cmVbZGF0YS1zZWN0aW9uPVwiJChpKVwiXSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIC5kbmctYy1yZXgtZ3JhcGhfX2dyYXBoLWNvdmVyW2RhdGEtc2VjdGlvbj1cIiQoaSlcIl0ge1xuICAgICAgZmlsbDogdmFyKC0tYWN0aXZlLWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5kbmctYy1yZXgtbWFwIHtcbiAgLS1iZy1jb2xvcjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWdyZWVuKTtcblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5kbmctYy1yZXgtbWFwX19qdXN0LWEtcm9jayB7XG4gIGZpbGw6IHZhcigtLWJnLWNvbG9yKTtcbn1cblxuLmRuZy1jLXJleC1tYXBfX21hcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDUzMHB4O1xufVxuXG4uZG5nLWMtcmV4LW1hcF9fdG9nZ2xlLFxuLmRuZy1jLXJleC1tYXBfX3RvZ2dsZTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRuZy1jLXJleC1tYXBfX3NoYXBlIHtcbiAgZmlsbDogdmFyKC0tYmctY29sb3IpO1xuICB0cmFuc2l0aW9uOiBmaWxsIDI1MG1zIGVhc2UtaW4tb3V0O1xufVxuXG4uZG5nLWMtcmV4LW1hcF9fc2hhcGU6aG92ZXIsXG4uZG5nLWMtcmV4LW1hcF9fdG9nZ2xlLmlzLWhvdmVyZWQgLmRuZy1jLXJleC1tYXBfX3NoYXBlIHtcbiAgZmlsbDogdmFyKC0tZG5nLXRoZW1lLWNvbG9yKTtcbn1cblxuLmRuZy1jLXJleC1tYXBfX2xldHRlciB7XG4gIGZpbGw6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS13aGl0ZSk7XG59XG5cbi5kbmctYy1yZXgtbWFwIHBhdGg6bm90KC5kbmctYy1yZXgtbWFwX19sZXR0ZXIpIHtcbiAgc3Ryb2tlOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0td2hpdGUpO1xufVxuXG4uZG5nLWMtcmV4LW1hcF9fdG9nZ2xlOmhvdmVyIC5kbmctYy1yZXgtbWFwX19sZXR0ZXIsXG4uZG5nLWMtcmV4LW1hcF9fdG9nZ2xlLmlzLWhvdmVyZWQgLmRuZy1jLXJleC1tYXBfX2xldHRlciB7XG4gIGZpbGw6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ibGFjayk7XG59XG5cbi5kbmctYy1yZXgtbWFwX19pbmRpY2F0b3JzIHtcbiAgei1pbmRleDogMTtcbn1cbiIsIi5kbmctYy1yaWNoLXRleHQtY29udGVudC11bnN0eWxlZCA+ICosXG4uZG5nLWMtcmljaC10ZXh0LWNvbnRlbnQtdW5zdHlsZWQgYSxcbi5kbmctYy1yaWNoLXRleHQtY29udGVudC11bnN0eWxlZCBhOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG59XG5cbi5kbmctYy1yaWNoLXRleHQtY29udGVudC11bnN0eWxlZCA+ICo6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4iLCIuZWxlbWVudG9yLXdpZGdldC1kbmdfc2VjdGlvbl9jaGFuZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG59XG4iLCIuZWxlbWVudG9yLWVkaXRvci1hY3RpdmUgLmRuZy1jLXRlYW0tbWVtYmVyLXBvcHVwIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLmVsZW1lbnRvci1lZGl0b3ItYWN0aXZlIC5kbmctYy10aGUtcm9ja19fbWVzc2FnZXMge1xuICAvKiBGaXhlZCBlbGVtZW50cyBhcmVuJ3QgYXBwcm9wcmlhdGUgZm9yIHRoZSBlZGl0b3IgKi9cbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kbmctYy10aGUtcm9ja19fZmVhdHVyZWQtY2FyZCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmRuZy1jLXRoZS1yb2NrX19mZWF0dXJlZC1jYXJkIC5kbmctYy10aGUtcm9jay1jYXJkIHtcbiAgQG1lZGlhICgtLXNtLW1heCkge1xuICAgIHRvcDogNDUwcHggIWltcG9ydGFudDtcbiAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDIwcHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5kbmctYy10aGUtcm9ja19fZmVhdHVyZWQtY2FyZC0tZmlyc3QgLmRuZy1jLXRoZS1yb2NrLWNhcmQge1xuICBAbWVkaWEgKC0tc20tbWF4KSB7XG4gICAgcmlnaHQ6IDIwcHggIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmRuZy1jLXRoZS1yb2NrX19mZWF0dXJlZC1jYXJkLS10b3AgLmRuZy1jLXRoZS1yb2NrLWNhcmQge1xuICBAbWVkaWEgKC0tc20tbWF4KSB7XG4gICAgdG9wOiAzNTBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5kbmctYy10aGUtcm9jayAuZG5nLWMtZnJhbWVkLXdvcmQge1xuICBAbWVkaWEgKC0tc20tbWF4KSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLmVsZW1lbnRvci1lZGl0b3ItYWN0aXZlIC5kbmctYy10aGUtcm9jay1jYXJkIHtcbiAgLyogRml4ZWQgZWxlbWVudHMgYXJlbid0IGFwcHJvcHJpYXRlIGZvciB0aGUgZWRpdG9yICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xufVxuXG4uZG5nLWMtdGhlLXJvY2stY2FyZCB7XG4gIC0tbGltaXQtdG9wOiAxMDAlO1xuICAtLWxpbWl0LWxlZnQ6IDEwMCU7XG4gIC0tbGVmdDogdmFyKC0tbGVmdC1jb29yZGluYXRlLCBhdXRvKTtcbiAgLS10b3A6IHZhcigtLXRvcC1jb29yZGluYXRlLCBhdXRvKTtcblxuICB0b3A6IG1pbih2YXIoLS10b3ApLCB2YXIoLS1saW1pdC1sZWZ0KSk7XG5cbiAgbGVmdDogbWluKHZhcigtLWxlZnQpLCB2YXIoLS1saW1pdC1sZWZ0KSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAuZG5nLWMtZnJhbWVfX2JvcmRlciB7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIEBtZWRpYSAoLS1tZC1tYXgpIHtcbiAgICAtLWxpbWl0LXRvcDogNzUlO1xuICAgIC0tbGltaXQtbGVmdDogNjUlO1xuICAgIC0tbGVmdDogdmFyKC0tbGVmdC1jb29yZGluYXRlLW1vYmlsZSwgYXV0byk7XG4gICAgLS10b3A6IHZhcigtLXRvcC1jb29yZGluYXRlLW1vYmlsZSwgYXV0byk7XG4gIH1cbn1cblxuLmRuZy1jLXRoZS1yb2NrLWNhcmRfX2Nsb3NlIHtcbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmRuZy1jLXRoZS1yb2NrLWNhcmRfX2Nsb3NlLWljb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmRuZy1jLXRoZS1yb2NrLWNhcmRfX2V4cGFuZC1pY29uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kbmctYy10aGUtcm9jay1jYXJkX19jb250ZW50LmlzLWFjdGl2ZSAuZG5nLWMtdGhlLXJvY2stY2FyZF9fY2xvc2UtaWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZG5nLWMtdGhlLXJvY2stY2FyZF9fY29udGVudC5pcy1hY3RpdmUgLmRuZy1jLXRoZS1yb2NrLWNhcmRfX2V4cGFuZC1pY29uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRuZy1jLXRoZS1yb2NrX19mZWF0dXJlZC1jYXJkLS1maXJzdCB7XG4gIEBtZWRpYSAoLS1tZC1tYXgpIHtcbiAgICBsZWZ0OiA1JSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIuZG5nLWMtc2l0ZS1mb290ZXIge1xuICAvKiBUaGUgZm9vdGVyIGlzIGEgZnVsbC1ibGVlZCBiYW5kIHdob3NlIGNvbnRlbnQgc3RpbGwgaGFzIHRvIGxpbmUgdXAgd2l0aFxuICAgICB0aGUgcGFnZSBncmlkIGFib3ZlIGl0LiBJdHMgRWxlbWVudG9yIGNvbnRhaW5lciBpcyBmdWxsLXdpZHRoIHNvIHRoZSBncmVlblxuICAgICByZWFjaGVzIHRoZSBlZGdlcywgd2hpY2ggbWVhbnMgdGhlIGNvbnN0cmFpbmluZyBoYXBwZW5zIGhlcmUgaW5zdGVhZCDigJRcbiAgICAgYWdhaW5zdCBgLS1kbmctY29udGVudC13aWR0aGAsIHdoaWNoIHRoZSBjb21wb25lbnQgc2V0cyBmcm9tIHRoZSBFbGVtZW50b3JcbiAgICAga2l0IGF0IHJlbmRlciB0aW1lIHNvIHRoZXJlIGlzIG5vIHNlY29uZCBjb3B5IG9mIHRoZSBudW1iZXIgdG8gZHJpZnQuICovXG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLXNtKTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1zbSk7XG59XG5cbi5kbmctYy1zaXRlLWZvb3Rlcl9fZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLWRuZy1jb250ZW50LXdpZHRoLCAxMjg4cHgpO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xufVxuXG4vKiBUaGUgZm91ciBjb2x1bW5zIGFyZSBub3QgZXF1YWwuIE1lYXN1cmVkIG9mZiB0aGUgZnJhbWUsIHRoZXkgcnVuXG4gICAyNzQgLyAxOTAgLyAxNjUgLyAyNDggd2l0aCBnYXBzIG9mIDI0NyAvIDY5IC8gOTYg4oCUIGEgd2lkZSBicmVhdGhpbmcgc3BhY2VcbiAgIGFmdGVyIHRoZSBpZGVudGl0eSBjb2x1bW4sIHRoZW4gdGlnaHRlciBvbmVzIGJldHdlZW4gdGhlIGxpbmsgY29sdW1ucy5cbiAgIEVhY2ggdHJhY2sgYmVsb3cgY2FycmllcyBpdHMgb3duIHRyYWlsaW5nIGdhcCwgd2hpY2ggaXMgd2h5IHRoZSBnYXAgaXNcbiAgIHplcm9lZDogZXhwcmVzc2luZyBpdCBhcyBvbmUgdW5pZm9ybSBgZ2FwYCBjYW5ub3QgcHJvZHVjZSB0aHJlZSBkaWZmZXJlbnRcbiAgIGd1dHRlcnMuIFRoZSBleHRyYSBzcGVjaWZpY2l0eSBpcyB0byBiZWF0IFRhaWx3aW5kJ3MgYGxnOmdyaWQtY29scy00YCxcbiAgIHdoaWNoIHNldHMgdGhlIHNhbWUgcHJvcGVydHkgYXQgdGhlIHNhbWUgYnJlYWtwb2ludC4gKi9cbkBtZWRpYSAod2lkdGggPj0gOTkycHgpIHtcbiAgLmRuZy1jLXNpdGUtZm9vdGVyIC5kbmctYy1zaXRlLWZvb3Rlcl9fZ3JpZCB7XG4gICAgY29sdW1uLWdhcDogMDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUyMWZyIDI1OWZyIDI2MWZyIDI0OGZyO1xuICB9XG59XG5cbi8qIExpbmsgbGlzdHMgd3JhcCB0byB0d28gbGluZXMgb2Z0ZW4gKFwiRGVzaWduaW5nIFN5c3RlbWljIElubm92YXRpb24gJlxuICAgU3RyYXRlZ3lcIiksIGFuZCBhdCB0aGUgaW5oZXJpdGVkIDEuNCB0aGUgdHdvIGxpbmVzIHJlYWQgYXMgdHdvIHNlcGFyYXRlXG4gICBsaW5rcy4gVGlnaHRlciBsZWFkaW5nIGtlZXBzIGEgd3JhcHBlZCBsYWJlbCByZWFkaW5nIGFzIG9uZSBpdGVtLlxuXG4gICBUaGUgbGVhZGluZyBpdHNlbGYgaXMgc2V0IHdpdGggYCFsZWFkaW5nLVsxLjI1XWAgb24gdGhlIGVsZW1lbnQ6IFRhaWx3aW5kJ3NcbiAgIGB0ZXh0LWJvZHktbWAgY2FycmllcyBhIGxpbmUtaGVpZ2h0IG9mIGl0cyBvd24gYXQgdGhlIHNhbWUgc3BlY2lmaWNpdHksIHNvXG4gICBhIHBsYWluIHJ1bGUgaGVyZSB3b3VsZCB3aW4gb3IgbG9zZSBkZXBlbmRpbmcgb24gc291cmNlIG9yZGVyLiAqL1xuLmRuZy1jLXNpdGUtZm9vdGVyX19saW5rIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKiBUaGUgY28tZmluYW5jaW5nIGxvZ29zIGFyZSBhIHNpbmdsZSByb3cgaW4gdGhlIGRlc2lnbjsgYXQgMjhweCB0aGV5IHdyYXBwZWRcbiAgIG9udG8gdHdvLiAqL1xuLmRuZy1jLXNpdGUtZm9vdGVyX19jb2ZpbmFuY2luZyBpbWcge1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAyMnB4O1xufVxuXG4vKiBUaGUgbmV3c2xldHRlciBmb3JtIGlzIHJlbmRlcmVkIGJ5IEJyZXZvLCBzbyBpdCBpcyBzdHlsZWQgZnJvbSB0aGUgb3V0c2lkZS5cbiAgIEV2ZXJ5dGhpbmcgaW5zaWRlIGl0IGluaGVyaXRzIHRoZSAyNHB4IGJvZHkgc2l6ZSwgd2hpY2ggbWFkZSB0aGUgZmllbGRcbiAgIGxhYmVscyBiaWdnZXIgdGhhbiB0aGUgY29sdW1uIGhlYWRpbmcgYWJvdmUgdGhlbS4gKi9cbi5kbmctYy1zaXRlLWZvb3Rlcl9fbmV3c2xldHRlcixcbi5kbmctYy1zaXRlLWZvb3Rlcl9fbmV3c2xldHRlciA6aXMocCwgbGFiZWwsIHNwYW4sIGRpdiwgaW5wdXQpIHtcbiAgZm9udC1zaXplOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LXNpemUtLWJvZHktbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5kbmctYy1zaXRlLWZvb3Rlcl9fbmV3c2xldHRlciA6aXMocCwgbGFiZWwpIHtcbiAgbWFyZ2luOiAwIDAgdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0teHhzKTtcbiAgY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS13aGl0ZSk7XG59XG5cbi5kbmctYy1zaXRlLWZvb3Rlcl9fbmV3c2xldHRlciA6aXMoaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAwIHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLXh4cyk7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS13aGl0ZSk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXdoaXRlKTtcbn1cblxuLmRuZy1jLXNpdGUtZm9vdGVyX19uZXdzbGV0dGVyIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBwYWRkaW5nOiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS14eHMpIHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLW1kKTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0td2hpdGUpO1xuICBjb2xvcjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWZvcmVzdC1ncmVlbik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRuZy1jLXNpdGUtZm9vdGVyX19uZXdzbGV0dGVyIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuICBvcGFjaXR5OiAwLjg1O1xufVxuIiwiLyogVGhlIGNvbG91ciBmaWVsZCBpcyBhIGZsYXQgYmxvY2sgaW4gdGhlIHRvb2wncyB1bml0IGNvbG91ciwgc2l6ZWQgYnkgdGhlXG4gICBkZXNpZ24ncyA2MzR4Mjk1IHJhdGlvLiBUaGUgYXJyb3cgaXMgaW5rIG9uIGNvbG91ciBpbiBldmVyeSB1bml0LCBpbmNsdWRpbmdcbiAgIHRoZSB0d28gZGFyayBvbmVzIOKAlCB0aGF0IGlzIHdoYXQgdGhlIGZyYW1lIGRyYXdzLCBzbyBpdCBpcyBub3QgdGhlbWVkLiAqL1xuLmRuZy1jLXRvb2wtY2FyZF9fYmxvY2sge1xuICAvKlxuICAgKiBUaGUgY2FyZCBpcyBhIGZsZXggY29sdW1uIHdpdGggYGl0ZW1zLXN0YXJ0YCwgc28gaXRzIGNoaWxkcmVuIHNocmluayB0byBmaXRcbiAgICogaW5zdGVhZCBvZiBzdHJldGNoaW5nLiBXaXRoIG5vdGhpbmcgZWxzZSB0byBnbyBvbiwgdGhlIGJsb2NrIHNpemVkIGl0c2VsZlxuICAgKiBmcm9tIGBtaW4taGVpZ2h0YCBhbmQgdGhlIGFzcGVjdCByYXRpbyDigJQgMjAwcHggeCA2MzQvMjk1ID0gNDMwcHgg4oCUIGFuZCBzYXRcbiAgICogfjE5NHB4IHNob3J0IG9mIHRoZSBjYXJkIG9uIGEgNjI0cHggY29sdW1uLCB3aGljaCBpcyB0aGUgZ2FwLiBXaWR0aCBmaXJzdCxcbiAgICogc28gdGhlIHJhdGlvIGRlcml2ZXMgdGhlIGhlaWdodCBmcm9tIHRoZSBjYXJkIHJhdGhlciB0aGFuIHRoZSBvdGhlciB3YXlcbiAgICogcm91bmQ7IG1pbi1oZWlnaHQgdGhlbiBvbmx5IG1hdHRlcnMgd2hlbiB0aGUgY2FyZCBpcyB2ZXJ5IG5hcnJvdy5cbiAgICovXG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbn1cblxuLyogVGhlIGRlc2NyaXB0aW9uIHJ1bnMgbG9uZyAoU0hBUEVSJ3MgaXMgZm91ciBsaW5lcyBpbiB0aGUgZGVzaWduKSBhbmQgc2l0c1xuICAgZGlyZWN0bHkgdW5kZXIgYSBib2xkIG9uZS13b3JkIG5hbWUsIHNvIGl0IG5lZWRzIGEgbGl0dGxlIGFpciBhYm92ZSBpdCB0aGF0XG4gICB0aGUgZmxleCBnYXAgYWxvbmUgZG9lcyBub3QgZ2l2ZSBhdCB0aGlzIHR5cGUgc2l6ZS4gKi9cbi5kbmctYy10b29sLWNhcmRfX2Rlc2NyaXB0aW9uIHtcbiAgbWF4LXdpZHRoOiA2MGNoO1xufVxuXG4vKiBDYXJkcyBpbiBhIHBhaXIgcmFyZWx5IGhhdmUgZXF1YWwgY29weS4gUHVzaGluZyB0aGUgQ1RBIGRvd24ga2VlcHMgdGhlIHR3b1xuICAgYnV0dG9ucyBvbiBkaWZmZXJlbnQgYmFzZWxpbmVzIOKAlCB3aGljaCBpcyB3aGF0IHRoZSBkZXNpZ24gc2hvd3Mg4oCUIHdoaWxlXG4gICBzdGlsbCBsZWF2aW5nIHRoZSBibG9ja3MgYW5kIGJsb2JzIGFsaWduZWQgYXQgdGhlIHRvcC4gKi9cbi5kbmctYy10b29sLWNhcmQge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIvKlxuQ3VzdG9tIHN0eWxlcyBmb3Igc2luZ2xlIHBhZ2VzIChlLmcuOiBXb3JrIGRldGFpbCBwYWdlcywgTGVhcm5pbmcgZGV0YWlsIHBhZ2VzKVxuKi9cblxuLnNpbmdsZS13b3JrLFxuLnNpbmdsZS1sZWFybiB7XG4gICYuZG5nLXRoZW1lLXNoYXBlIC5lbGVtZW50b3ItbG9jYXRpb24tc2luZ2xlIHtcbiAgICBoMSxcbiAgICBoMixcbiAgICBoMyxcbiAgICBoNCB7XG4gICAgICBAYXBwbHkgZG5nLXUtdGV4dC1zdHJldGNoZWQ7XG4gICAgfVxuICB9XG4gICYuZG5nLXRoZW1lLWNyYWZ0IC5lbGVtZW50b3ItbG9jYXRpb24tc2luZ2xlIHtcbiAgICBoMSxcbiAgICBoMixcbiAgICBoMyxcbiAgICBoNCB7XG4gICAgICBAYXBwbHkgZG5nLXUtdGV4dC10aXRsZS1jcmFmdDtcbiAgICB9XG4gIH1cbn1cbiIsIkB0YWlsd2luZCB1dGlsaXRpZXM7XG4iLCJAaW1wb3J0IFwidGFpbHdpbmRjc3MvdXRpbGl0aWVzXCI7XG5cbi5kbmctdS10ZXh0LXN0cmV0Y2hlZCB7XG4gIEBhcHBseSAhZm9udC1icmFuZDtcblxuICBmb250LXN0cmV0Y2g6IDE1MCU7XG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOlxuICAgIFwid2dodFwiIDQwMCxcbiAgICBcIndkdGhcIiAxNTA7XG59XG5cbi5kbmctdS10ZXh0LXRpdGxlLWNyYWZ0IHtcbiAgQGFwcGx5ICFmb250LWJyYW5kLWNyYWZ0O1xuXG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOlxuICAgIFwid2dodFwiIDMzNixcbiAgICBcIndkdGhcIiA3NTtcbn1cblxuLmRuZy11LXRleHQtdGl0bGUtdHJhaW4ge1xuICBAYXBwbHkgIWZvbnQtYnJhbmQtY3JhZnQ7XG5cbiAgZm9udC1zdHJldGNoOiAxNTAlO1xuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczpcbiAgICBcIndnaHRcIiAzMzYsXG4gICAgXCJ3ZHRoXCIgMjAwO1xufVxuIiwiQGltcG9ydCBcIl9iYXNlLmNzc1wiO1xuQGltcG9ydCBcIl90aGVtZXMuY3NzXCI7XG5AaW1wb3J0IFwiX292ZXJyaWRlcy5jc3NcIjtcbkBpbXBvcnQgXCJfY29tcG9uZW50cy5jc3NcIjtcbkBpbXBvcnQgXCJfbGF5b3V0LmNzc1wiO1xuQGltcG9ydCBcIl91dGlsaXRpZXMuY3NzXCI7XG4iXX0= */