@charset "UTF-8";
/*!
    Theme Name: Havana Food
    Author: Tadao Studio
    Author URI: http://tadaostudio.com/
    Description: Tema REST Ristorante Havana Food
*/
/* Slider */
.slick-slider { position: relative; display: block; box-sizing: border-box; -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -ms-touch-action: pan-y; touch-action: pan-y; -webkit-tap-highlight-color: transparent; }

.slick-list { position: relative; overflow: hidden; display: block; margin: 0; padding: 0; }
.slick-list:focus { outline: none; }
.slick-list.dragging { cursor: pointer; cursor: hand; }

.slick-slider .slick-track, .slick-slider .slick-list { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }

.slick-track { position: relative; left: 0; top: 0; display: block; }
.slick-track:before, .slick-track:after { content: ""; display: table; }
.slick-track:after { clear: both; }
.slick-loading .slick-track { visibility: hidden; }

.slick-slide { float: left; height: 100%; min-height: 1px; display: none; }
[dir="rtl"] .slick-slide { float: right; }
.slick-slide img { display: block; }
.slick-slide.slick-loading img { display: none; }
.slick-slide.dragging img { pointer-events: none; }
.slick-initialized .slick-slide { display: block; }
.slick-loading .slick-slide { visibility: hidden; }
.slick-vertical .slick-slide { display: block; height: auto; border: 1px solid transparent; }

.slick-arrow.slick-hidden { display: none; }

/* cyrillic-ext */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 300; src: local("Fira Sans Light"), local("FiraSans-Light"), url(https://fonts.gstatic.com/s/firasans/v5/VTBnrK42EiOBncVyQXZ7j6-j2U0lmluP9RWlSytm3ho.woff2) format("woff2"); unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }
/* cyrillic */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 300; src: local("Fira Sans Light"), local("FiraSans-Light"), url(https://fonts.gstatic.com/s/firasans/v5/VTBnrK42EiOBncVyQXZ7j5X5f-9o1vgP2EXwfjgl7AY.woff2) format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 300; src: local("Fira Sans Light"), local("FiraSans-Light"), url(https://fonts.gstatic.com/s/firasans/v5/VTBnrK42EiOBncVyQXZ7j6aRobkAwv3vxw3jMhVENGA.woff2) format("woff2"); unicode-range: U+0370-03FF; }
/* latin-ext */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 300; src: local("Fira Sans Light"), local("FiraSans-Light"), url(https://fonts.gstatic.com/s/firasans/v5/VTBnrK42EiOBncVyQXZ7jz0LW-43aMEzIO6XUTLjad8.woff2) format("woff2"); unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 300; src: local("Fira Sans Light"), local("FiraSans-Light"), url(https://fonts.gstatic.com/s/firasans/v5/VTBnrK42EiOBncVyQXZ7j-gdm0LZdjqr5-oayXSOefg.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; }
/* cyrillic-ext */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 400; src: local("Fira Sans"), local("FiraSans-Regular"), url(https://fonts.gstatic.com/s/firasans/v5/g5Sf_134cAtTKkNnIjIkXxJtnKITppOI_IvcXXDNrsc.woff2) format("woff2"); unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }
/* cyrillic */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 400; src: local("Fira Sans"), local("FiraSans-Regular"), url(https://fonts.gstatic.com/s/firasans/v5/T3abUOg4YgfjOby2l-QudhJtnKITppOI_IvcXXDNrsc.woff2) format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 400; src: local("Fira Sans"), local("FiraSans-Regular"), url(https://fonts.gstatic.com/s/firasans/v5/5jAMGMsBXS6xUYEytGcZdBJtnKITppOI_IvcXXDNrsc.woff2) format("woff2"); unicode-range: U+0370-03FF; }
/* latin-ext */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 400; src: local("Fira Sans"), local("FiraSans-Regular"), url(https://fonts.gstatic.com/s/firasans/v5/MIPWVWI_mY_QERxcMVPEwBJtnKITppOI_IvcXXDNrsc.woff2) format("woff2"); unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 400; src: local("Fira Sans"), local("FiraSans-Regular"), url(https://fonts.gstatic.com/s/firasans/v5/EjsrzDkQUQCDwsBtLpcVQVtXRa8TVwTICgirnJhmVJw.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; }
/* cyrillic-ext */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 700; src: local("Fira Sans Bold"), local("FiraSans-Bold"), url(https://fonts.gstatic.com/s/firasans/v5/DugPdSljmOTocZOR2CItOq-j2U0lmluP9RWlSytm3ho.woff2) format("woff2"); unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }
/* cyrillic */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 700; src: local("Fira Sans Bold"), local("FiraSans-Bold"), url(https://fonts.gstatic.com/s/firasans/v5/DugPdSljmOTocZOR2CItOpX5f-9o1vgP2EXwfjgl7AY.woff2) format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 700; src: local("Fira Sans Bold"), local("FiraSans-Bold"), url(https://fonts.gstatic.com/s/firasans/v5/DugPdSljmOTocZOR2CItOqaRobkAwv3vxw3jMhVENGA.woff2) format("woff2"); unicode-range: U+0370-03FF; }
/* latin-ext */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 700; src: local("Fira Sans Bold"), local("FiraSans-Bold"), url(https://fonts.gstatic.com/s/firasans/v5/DugPdSljmOTocZOR2CItOj0LW-43aMEzIO6XUTLjad8.woff2) format("woff2"); unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face { font-family: 'Fira Sans'; font-style: normal; font-weight: 700; src: local("Fira Sans Bold"), local("FiraSans-Bold"), url(https://fonts.gstatic.com/s/firasans/v5/DugPdSljmOTocZOR2CItOugdm0LZdjqr5-oayXSOefg.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; }
/* cyrillic-ext */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 300; src: local("Fira Sans Light Italic"), local("FiraSans-LightItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTRgVThLs8Y7ETJzDCYFCSLE.woff2) format("woff2"); unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }
/* cyrillic */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 300; src: local("Fira Sans Light Italic"), local("FiraSans-LightItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTZiMaisvaUVUsYyVzOmndek.woff2) format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 300; src: local("Fira Sans Light Italic"), local("FiraSans-LightItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTf14vlcfyPYlAcQy2UfDRm4.woff2) format("woff2"); unicode-range: U+0370-03FF; }
/* latin-ext */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 300; src: local("Fira Sans Light Italic"), local("FiraSans-LightItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTavyPXdneeGd26m9EmFSSWg.woff2) format("woff2"); unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 300; src: local("Fira Sans Light Italic"), local("FiraSans-LightItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTUo2lTMeWA_kmIyWrkNCwPc.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; }
/* cyrillic-ext */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 400; src: local("Fira Sans Italic"), local("FiraSans-Italic"), url(https://fonts.gstatic.com/s/firasans/v5/QURAmFz4b80g324-oF-UjzTOQ_MqJVwkKsUn0wKzc2I.woff2) format("woff2"); unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }
/* cyrillic */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 400; src: local("Fira Sans Italic"), local("FiraSans-Italic"), url(https://fonts.gstatic.com/s/firasans/v5/QURAmFz4b80g324-oF-UjzUj_cnvWIuuBMVgbX098Mw.woff2) format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 400; src: local("Fira Sans Italic"), local("FiraSans-Italic"), url(https://fonts.gstatic.com/s/firasans/v5/QURAmFz4b80g324-oF-Uj2o_sUJ8uO4YLWRInS22T3Y.woff2) format("woff2"); unicode-range: U+0370-03FF; }
/* latin-ext */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 400; src: local("Fira Sans Italic"), local("FiraSans-Italic"), url(https://fonts.gstatic.com/s/firasans/v5/QURAmFz4b80g324-oF-UjyYE0-AqJ3nfInTTiDXDjU4.woff2) format("woff2"); unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 400; src: local("Fira Sans Italic"), local("FiraSans-Italic"), url(https://fonts.gstatic.com/s/firasans/v5/QURAmFz4b80g324-oF-Uj44P5ICox8Kq3LLUNMylGO4.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; }
/* cyrillic-ext */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 700; src: local("Fira Sans Bold Italic"), local("FiraSans-BoldItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTZ6iIh_FvlUHQwED9Yt5Kbw.woff2) format("woff2"); unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }
/* cyrillic */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 700; src: local("Fira Sans Bold Italic"), local("FiraSans-BoldItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTS_vZmeiCMnoWNN9rHBYaTc.woff2) format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
/* greek */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 700; src: local("Fira Sans Bold Italic"), local("FiraSans-BoldItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTQalQocB-__pDVGhF3uS2Ks.woff2) format("woff2"); unicode-range: U+0370-03FF; }
/* latin-ext */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 700; src: local("Fira Sans Bold Italic"), local("FiraSans-BoldItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTejkDdvhIIFj_YMdgqpnSB0.woff2) format("woff2"); unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face { font-family: 'Fira Sans'; font-style: italic; font-weight: 700; src: local("Fira Sans Bold Italic"), local("FiraSans-BoldItalic"), url(https://fonts.gstatic.com/s/firasans/v5/6s0YCA9oCTF6hM60YM-qTYlIZu-HDpmDIZMigmsroc4.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; }
.hidden { display: none; }

/*!
Animate.css - http://daneden.me/animate
Licensed under the MIT license - http://opensource.org/licenses/MIT

Copyright (c) 2013 Daniel Eden
*/
.animated { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; }

.animated.infinite { -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; }

.animated.hinge { -webkit-animation-duration: 2s; animation-duration: 2s; }

@-webkit-keyframes fadeInLeft { 0% { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); }
  100% { opacity: 1; -webkit-transform: none; transform: none; } }

@keyframes fadeInLeft { 0% { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); }
  100% { opacity: 1; -webkit-transform: none; transform: none; } }
.fadeInLeft { -webkit-animation-name: fadeInLeft; animation-name: fadeInLeft; }

@-webkit-keyframes fadeInRight { 0% { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); }
  100% { opacity: 1; -webkit-transform: none; transform: none; } }

@keyframes fadeInRight { 0% { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); }
  100% { opacity: 1; -webkit-transform: none; transform: none; } }
.fadeInRight { -webkit-animation-name: fadeInRight; animation-name: fadeInRight; }

@-webkit-keyframes fadeZoomOut { 0% { -webkit-transform: scale(1, 1); transform: scale(1, 1); }
  100% { visibility: hidden; opacity: 0; -webkit-transform: scale(1.1, 1.1); transform: scale(1.1, 1.1); } }

@keyframes fadeZoomOut { 0% { -webkit-transform: scale(1, 1); transform: scale(1, 1); }
  100% { visibility: hidden; opacity: 0; -webkit-transform: scale(1.1, 1.1); transform: scale(1.1, 1.1); } }
.fadeZoomOut { -webkit-animation-name: fadeZoomOut; animation-name: fadeZoomOut; }

@-webkit-keyframes fadeZoomIn { 0% { opacity: 0; }
  100% { opacity: 1; } }

@keyframes fadeZoomIn { 0% { opacity: 0; }
  100% { opacity: 1; } }
.fadeZoomIn { -webkit-animation-name: fadeZoomIn; animation-name: fadeZoomIn; -webkit-animation-delay: .5s; animation-delay: .5s; }

/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/** 1. Set default font family to sans-serif. 2. Prevent iOS and IE text size adjust after device orientation change, without disabling user zoom. */
html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }

/** Remove default margin. */
body { margin: 0; }

/* HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }

/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */
audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ }

/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }

/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. */
[hidden], template { display: none; }

/* Links ========================================================================== */
/** Remove the gray background color from active links in IE 10. */
a { background-color: transparent; }

/** Improve readability of focused elements when they are also in an active/hover state. */
a:active, a:hover { outline: 0; }

/* Text-level semantics ========================================================================== */
/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }

/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */
b, strong { font-weight: bold; }

/** Address styling not present in Safari and Chrome. */
dfn { font-style: italic; }

/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; line-height: 1.2em; }

/** Address styling not present in IE 8/9. */
mark { background: #ff0; color: #000; }

/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }

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

sup { top: -0.5em; }

sub { bottom: -0.25em; }

/* Embedded content ========================================================================== */
/** Remove border when inside `a` element in IE 8/9/10. */
img { border: 0; }

/** Correct overflow not hidden in IE 9/10/11. */
svg:not(:root) { overflow: hidden; }

/* Grouping content ========================================================================== */
/** Address margin not present in IE 8/9 and Safari. */
figure { margin: 1em 40px; }

/** Address differences between Firefox and other browsers. */
hr { box-sizing: content-box; height: 0; }

/** Contain overflow in all browsers. */
pre { overflow: auto; }

/** Address odd `em`-unit font size rendering in all browsers. */
code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; }

/* Forms ========================================================================== */
/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */
/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */
button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ }

/** Address `overflow` set to `hidden` in IE 8/9/10/11. */
button { overflow: visible; }

/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */
button, select { text-transform: none; }

/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }

/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }

/** Remove inner padding and border in Firefox 4+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
input { line-height: normal; }

/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width.  1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }

/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; }

/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome. */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ box-sizing: content-box; /* 2 */ }

/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }

/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }

/** Remove default vertical scrollbar in IE 8/9/10/11. */
textarea { overflow: auto; }

/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */
optgroup { font-weight: bold; }

/* Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }

td, th { padding: 0; }

@media (min-width: 480px) { .breakpoint-container { width: 450px; width: 28.125rem; margin-left: auto; margin-right: auto; } }
@media (min-width: 768px) { .breakpoint-container { width: 738px; width: 46.125rem; margin-left: auto; margin-right: auto; } }
@media (min-width: 960px) { .breakpoint-container { width: 930px; width: 58.125rem; margin-left: auto; margin-right: auto; } }
@media (min-width: 1200px) { .breakpoint-container { width: 1170px; width: 73.125rem; margin-left: auto; margin-right: auto; } }

body { font-family: "Fira Sans", sans-serif; font-size: 16px; font-size: 1rem; line-height: 1.5em; }

.breakpoint-scaling { width: 90%; margin-left: auto; margin-right: auto; }
@media (min-width: 480px) { .breakpoint-scaling { width: 480px; width: 30rem; } }
@media (min-width: 768px) { .breakpoint-scaling { width: 768px; width: 48rem; } }
@media (min-width: 960px) { .breakpoint-scaling { width: 960px; width: 60rem; } }
@media (min-width: 1200px) { .breakpoint-scaling { width: 1200px; width: 75rem; } }

a[href] { text-decoration: none; transition: color 500ms; }
a[href]:hover { color: #ac162c; }

.content a[href]:not([class]) { color: #ac162c; text-decoration: none; }

.table { display: table; float: left; box-sizing: border-box; }

.table__cell { display: table-cell; vertical-align: middle; }

ul.reset-list { margin: 0; padding: 0; list-style-type: none; }
ul.reset-list > li { margin: 0; padding: 0; }

.site__container { margin: auto; max-width: 90%; overflow: hidden; clear: both; background: white; }
.site__container:after { content: ""; display: table; clear: both; }
@media (min-width: 768px) { .site__container { max-width: 100%; } }

.square-title { line-height: 1.2em; }

.content h3 { color: #ac162c; border-bottom: 2px solid #c9af86; font-size: 24px; font-size: 1.5rem; font-weight: 400; line-height: 1.2em; padding-bottom: 0.5em; margin-bottom: 0.2em; }

.page.single { background: white; overflow: hidden; clear: both; }
@media (min-width: 960px) { .page.single { width: 65.21739%; float: left; margin-left: 17.3913%; margin-right: -100%; } }
.page.single:after { content: ""; display: table; clear: both; }

@media (min-width: 768px) { .left-column { margin-top: 0; position: relative; width: 22.58065%; float: left; margin-left: 0; overflow: hidden; margin-bottom: 2em; } }

.single__title { background: #512329; color: white; position: absolute; width: 100%; left: 0; }
.single__title .square-content { text-align: center; padding: 1em; }
.single__title .square-content h1, .single__title .square-content span { font-weight: 300; text-transform: uppercase; }
@media (min-width: 480px) { .single__title .square-content h1, .single__title .square-content span { font-size: 28px; font-size: 1.75rem; }
  html.appleios .single__title .square-content h1, html.appleios .single__title .square-content span { font-size: 22px; font-size: 1.375rem; } }
@media (min-width: 768px) { .single__title .square-content h1, .single__title .square-content span { font-size: 27px; font-size: 1.6875rem; }
  html.appleios .single__title .square-content h1, html.appleios .single__title .square-content span { font-size: 28px; font-size: 1.75rem; } }
@media (min-width: 960px) { .single__title .square-content h1, .single__title .square-content span { font-size: 34px; font-size: 2.125rem; }
  html.appleios .single__title .square-content h1, html.appleios .single__title .square-content span { font-size: 36px; font-size: 2.25rem; } }
@media (min-width: 1200px) { .single__title .square-content h1, .single__title .square-content span { font-size: 40px; font-size: 2.5rem; }
  html.appleios .single__title .square-content h1, html.appleios .single__title .square-content span { font-size: 60px; font-size: 3.75rem; } }
@media (min-width: 768px) { .single__title { margin-top: 0; position: relative; overflow: hidden; }
  .single__title:before { content: ""; display: block; padding-top: 100%; }
  .single__title .square-content { position: absolute; top: 0; left: 0; bottom: 0; right: 0; color: white; }
  .single__title .square-content div { display: table; width: 100%; height: 100%; }
  .single__title .square-content h1 { display: table-cell; text-align: center; vertical-align: middle; } }

.single__content { padding-top: 8em; padding-bottom: 1em; }
@media (min-width: 768px) { .single__content { padding: 1em 0; padding-bottom: 4em; width: 74.19355%; float: right; margin-left: 3.22581%; }
  .single__content h1, .single__content h2, .single__content h3, .single__content h4, .single__content h5, .single__content h6, .single__content p { width: 74.19355%; float: left; margin-left: 0; } }

.condividiamo { text-align: center; margin-bottom: 2em; }
.condividiamo a { text-transform: uppercase; color: white; width: 40px; height: 40px; font-size: 28px; text-align: center; line-height: 42px; font-weight: 300; float: left; }
.condividiamo a:hover { color: white; }
.condividiamo .facebook { background-color: #3b5999; }
.condividiamo .twitter { background-color: #55acee; }
.condividiamo .googlep { background-color: #dd4b39; }
.condividiamo li { display: inline-block; }
@media (min-width: 768px) { .condividiamo .share-text { text-align: left; margin-bottom: .5em; }
  .condividiamo li { display: block; } }

.content { position: relative; }
.content .alignright, .content .alignleft, .content .alignnone, .content .aligncenter { clear: both; max-width: 100%; margin: 1em 0; box-sizing: border-box; height: auto; }
@media (min-width: 768px) { .content .alignright { clear: none; float: right; margin-left: 1em; margin-right: -35%; max-width: 65%; }
  .content .alignleft { margin-right: 1em; clear: none; float: left; }
  .content .alignnone, .content .aligncenter { max-width: 135%; } }

.site__header { background-color: #ac162c; position: fixed; z-index: 2; height: 65px; height: 4.0625rem; width: 100%; overflow: hidden; }

.menu-switch { z-index: 1; position: absolute; height: 100%; width: 65px; width: 4.0625rem; text-align: center; }
.menu-switch .icon-open-menu { margin-top: 50%; -webkit-transform: translateY(-44%); transform: translateY(-44%); }

.header-logo { position: absolute; height: 105%; width: 100%; text-align: center; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-align-items: center; -ms-flex-align: center; align-items: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; }

.icon-havana-logo #logo-havana { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
@media (max-width: 600px) { .icon-havana-logo #logo-ristorante { visibility: hidden; display: none; }
  .icon-havana-logo #logo-left { visibility: hidden; display: none; }
  .icon-havana-logo #logo-havana { -webkit-transform: translateX(15px); transform: translateX(15px); }
  .icon-havana-logo #logo-right { visibility: hidden; display: none; }
  .icon-havana-logo #logo-naturalfood { display: none; visibility: hidden; } }

.click-off-layer { background: rgba(0, 0, 0, 0.5); position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 4999; cursor: pointer; transition: opacity; -webkit-animation-name: clickOffLayerAppear; animation-name: clickOffLayerAppear; transition-duration: 0.5s; }

@-webkit-keyframes clickOffLayerAppear { 0% { opacity: 0; }
  100% { opacity: 1; } }

@keyframes clickOffLayerAppear { 0% { opacity: 0; }
  100% { opacity: 1; } }
.modal-element { opacity: 0; }

.test-modal-element { z-index: 5000; transition: opacity 500ms; position: fixed; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); top: -99999px; left: -99999px; background: white; padding: 20px; padding: 1.25rem; margin: 20px; margin: 1.25rem; border: 1px solid red; }
.test-modal-element.active { -webkit-animation-name: testModal; animation-name: testModal; -webkit-animation-delay: 500ms; animation-delay: 500ms; }

@-webkit-keyframes testModal { 0% { opacity: 0; top: 50%; left: 50%; }
  100% { opacity: 1; top: 50%; left: 50%; } }

@keyframes testModal { 0% { opacity: 0; top: 50%; left: 50%; }
  100% { opacity: 1; top: 50%; left: 50%; } }
.parallax-container { width: 100%; top: 0; -webkit-perspective: 1px; perspective: 1px; background-attachment: fixed; background-position: 0px 65px; background-repeat: no-repeat; background-size: 100%; z-index: 0; height: 100%; }
html.android .parallax-container { background-position: 0px; }
.parallax-container .parallax-img { visibility: hidden; }

body.full-menu-open { overflow-y: hidden; }

#full-menu { background: rgba(172, 22, 44, 0.95); font-family: "Fira Sans", sans-serif; position: fixed; top: -99999px; left: -99999px; width: 100%; height: 100%; z-index: 5000; overflow: auto; }
#full-menu.active { -webkit-animation-name: menuAppear; animation-name: menuAppear; -webkit-animation-delay: 0; animation-delay: 0; -webkit-animation-duration: 0.5s; animation-duration: 0.5s; }
#full-menu .menu-container { margin: 80px 20px 40px; margin: 5rem 1.25rem 2.5rem; text-align: center; text-transform: uppercase; font-weight: 300; line-height: 1.6em; font-size: 8vw; }
#full-menu .menu-container ul { margin: 0 auto; display: inline-block; padding: 0; list-style-type: none; }
#full-menu .menu-container li { margin: 0; padding: 0 40px; border-bottom: 1px solid white; padding-top: 0.1em; }
#full-menu .menu-container li:last-child { border-bottom: 0; }
#full-menu .menu-container a { color: white; }
@media (min-width: 768px) { #full-menu .menu-container { margin: 70px 40px; margin: 4.375rem 2.5rem; font-size: 64px; font-size: 4rem; } }

.close-full-menu { display: none; position: fixed; cursor: pointer; top: 0; right: 0; padding: 16px; padding: 1rem; z-index: 5001; background-size: 50%; }
.full-menu-open .close-full-menu { display: block; }
@media (min-width: 768px) { .close-full-menu { position: fixed; background-color: transparent; background-size: 100%; top: 70px; top: 4.375rem; right: 40px; right: 2.5rem; } }

.full-menu { margin: 0; padding: 0; font-size: 16px; font-size: 1rem; line-height: 32px; line-height: 2rem; font-weight: normal; }
@media (min-width: 768px) { .full-menu { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); width: 100%; text-align: center; } }
.full-menu .full-menu-sep { width: 73%; height: 1px; height: 0.0625rem; background: black; margin: 10px auto; border: 0; margin-bottom: 35px; margin-bottom: 2.1875rem; }
.full-menu ul, .full-menu li { list-style-type: none; margin: 0; padding: 0; }
.full-menu > li { display: block; z-index: 5000; vertical-align: top; text-align: center; opacity: 0; margin-bottom: 30px; margin-bottom: 1.875rem; }
@media (min-width: 768px) { .full-menu > li { margin-right: 30px; margin-right: 1.875rem; text-align: left; display: inline-block; max-width: 15%; min-width: initial; }
  .full-menu > li:last-child { margin-right: 0; } }
.full-menu > li > a { text-transform: uppercase; font-weight: bold; }
.full-menu a { line-height: 20px; line-height: 1.25rem; display: block; padding: 8px 0px; padding: 0.5rem 0rem; transition: color 500ms; color: white; }
.full-menu a:hover { color: white; }
.full-menu li.current-menu-item > a { text-decoration: underline; }

.icon-havana-logo-menu { display: none; margin-bottom: 1em; }
@media (min-width: 768px) { .icon-havana-logo-menu { display: block; } }

@media screen and (max-width: 767px) { @-webkit-keyframes menuAppear { 0% { opacity: 0; top: 65px; top: 4.0625rem; left: 0; }
    100% { opacity: 1; top: 65px; top: 4.0625rem; left: 0; } } @keyframes menuAppear { 0% { opacity: 0; top: 65px; top: 4.0625rem; left: 0; }
    100% { opacity: 1; top: 65px; top: 4.0625rem; left: 0; } } }
@media screen and (min-width: 768px) { @-webkit-keyframes menuAppear { 0% { opacity: 0; top: 0; left: 0; }
    100% { opacity: 1; top: 0; left: 0; } } @keyframes menuAppear { 0% { opacity: 0; top: 0; left: 0; }
    100% { opacity: 1; top: 0; left: 0; } } }
@-webkit-keyframes flipInX { 0% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transition-timing-function: ease-in; opacity: 0; }
  40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transition-timing-function: ease-in; }
  60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; }
  80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); opacity: 1; }
  100% { -webkit-transform: perspective(400px); transform: perspective(400px); opacity: 1; } }
@keyframes flipInX { 0% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transition-timing-function: ease-in; opacity: 0; }
  40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transition-timing-function: ease-in; }
  60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; }
  80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); opacity: 1; }
  100% { -webkit-transform: perspective(400px); transform: perspective(400px); opacity: 1; } }
.flipInX { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInX; animation-name: flipInX; -webkit-animation-delay: 500ms; animation-delay: 500ms; }

/** Stile Contact Form 7 */
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 textarea { background-color: #f6eee5; border: 0; font-weight: 300; box-sizing: border-box; width: 100%; padding: 0.8em 0.3em; }
.wpcf7 input[type="text"]::-webkit-input-placeholder, .wpcf7 input[type="email"]::-webkit-input-placeholder, .wpcf7 textarea::-webkit-input-placeholder { color: #c9af86; }
.wpcf7 input[type="text"]::-moz-placeholder, .wpcf7 input[type="email"]::-moz-placeholder, .wpcf7 textarea::-moz-placeholder { color: #c9af86; }
.wpcf7 input[type="text"]:-ms-input-placeholder, .wpcf7 input[type="email"]:-ms-input-placeholder, .wpcf7 textarea:-ms-input-placeholder { color: #c9af86; }
.wpcf7 input[type="text"]::placeholder, .wpcf7 input[type="email"]::placeholder, .wpcf7 textarea::placeholder { color: #c9af86; }

.wpcf7-submit { float: right; background-color: #ac162c; color: white; box-sizing: border-box; border: 0; padding: 0.7em 1.5em; margin-top: 1em; }

.wpcf7-form { overflow: hidden; clear: both; }
.wpcf7-form:after { content: ""; display: table; clear: both; }
.wpcf7-form .wpcf7-response-output { margin-left: 0 !important; margin-right: 0 !important; overflow: hidden; clear: both; }
.wpcf7-form .wpcf7-response-output:after { content: ""; display: table; clear: both; }

.contact-button { display: block; position: relative; color: #ac162c; margin-right: 1em; }
.contact-button.contact-button--inline { display: inline-block; }
.contact-button img { position: relative; width: 100px; width: 6.25rem; height: auto; display: block; }
.contact-button span { display: block; padding-top: 0.3em; }

.homegrid { width: 100%; margin-top: 2em; margin-bottom: 2em; }

.homegrid-group { display: block; }
@media (min-width: 768px) { .homegrid-group { display: inline-block; float: left; width: 65.35%; }
  .homegrid-group:nth-child(2n) { float: right; }
  .homegrid-group .homegrid-block__image:before { padding-top: 100%; } }
@media (min-width: 960px) { .homegrid-group { width: 65.45%; } }

.homegrid-block { width: 100%; position: relative; margin-bottom: 4.5%; display: inline-block; margin-bottom: 3.795%; transition: all, 300ms, 500ms; }
@media (min-width: 768px) { .homegrid-block.homegrid-block--vertical { margin-left: 3.45%; width: 31%; }
  .homegrid-block.homegrid-block--vertical .homegrid-block__image:before, .homegrid-block.homegrid-block--vertical .homegrid-block__panel:before, .homegrid-block.homegrid-block--vertical .homegrid-block__title:before { padding-top: 110.35%; }
  .homegrid-block.homegrid-block--vertical:hover .homegrid-block__panel { -webkit-transform: translateY(-100%); transform: translateY(-100%); }
  .homegrid-block.homegrid-block--vertical:nth-child(2n+1) { margin-left: 0; margin-right: 3.45%; }
  .homegrid-block:hover .homegrid-block__panel { -webkit-transform: translateX(0); transform: translateX(0); } }

.homegrid-block__image { width: 50%; float: left; background-size: cover; background-repeat: no-repeat; background-position: 50% 50%; position: relative; overflow: hidden; margin-top: 0; }
.homegrid-block__image:before { content: ""; display: block; padding-top: 100%; }
.homegrid-block__image .square-content { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }
.homegrid-block__image .square-content div { display: table; width: 100%; height: 100%; }
@media (min-width: 768px) { .homegrid-block--vertical .homegrid-block__image { width: 100%; } }

.homegrid-block__panel { position: absolute; top: 0; bottom: 0; left: 0; right: 0; opacity: 0.5; transition: all, 300ms, 500ms; width: 50%; -webkit-transform-origin: 50%; transform-origin: 50%; -webkit-transform: translateX(100%); transform: translateX(100%); }
@media (min-width: 768px) { .homegrid-block__panel { display: block; }
  .homegrid-block--vertical .homegrid-block__panel { top: 50%; bottom: 0; width: 100%; -webkit-transform: translateX(0); transform: translateX(0); -webkit-transform: translateY(0); transform: translateY(0); } }

.homegrid-block__title { width: 50%; float: right; font-weight: 300; text-transform: uppercase; color: white; background: #ac162c; position: relative; overflow: hidden; margin-top: 0; }
.homegrid-block__title:before { content: ""; display: block; padding-top: 100%; }
.homegrid-block__title .square-content { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }
.homegrid-block__title .square-content div { display: table; width: 100%; height: 100%; }
.homegrid-block__title .square-content span { display: table-cell; text-align: center; vertical-align: middle; padding: 0 0.5em; }
@media (min-width: 768px) { .homegrid-block--vertical .homegrid-block__title { width: 100%; float: none; } }

.home-image { padding-top: 63px; padding-top: 3.9375rem; }

.home-image__container { position: relative; }

.home-image__image { display: block; width: 100%; height: auto; }

.home-image__brand-container { position: absolute; top: 65px; top: 4.0625rem; left: 0; width: 100%; height: 40vw; z-index: 1; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-align-items: center; -ms-flex-align: center; align-items: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; }

.home-image__brand { max-height: 35vw; width: 400px; width: 25rem; height: 400px; height: 25rem; transition: all 300ms; opacity: 1; -webkit-transform: scale(1.2, 1.2); transform: scale(1.2, 1.2); display: none; }
.home-image__brand > svg { max-width: 100%; max-height: 100%; }
.home-image__brand #brand-circle { opacity: 0.75; }
.home-image__brand.appear { opacity: 1; -webkit-transform: scale(1, 1); transform: scale(1, 1); }
.home-image__brand.appear #brand-circle { opacity: 0.75; transition: all 300ms; transition-delay: 300ms; visibility: visible; }
body[data-template="homepage"] .home-image__brand { display: block; }

.site__footer { background-color: #c9af86; display: block; overflow: hidden; }

.footer__legal-info { text-align: center; font-size: 16px; font-size: 1rem; line-height: 24px; line-height: 1.5rem; font-weight: normal; }
.footer__legal-info a { color: black; }

.footer__social-links { text-align: center; margin: 2em 0; }
.footer__social-links a { margin: 1em; padding: 10px; }

@media (min-width: 768px) { .footer__legal-info { float: left; }
  .footer__social-links { float: right; margin: 0; }
  .footer__social-links a { margin: 0; float: left; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-align-items: center; -ms-flex-align: center; align-items: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } }
/** Per avere uno sticky footer basta includere le classi .page__wrap--sticky-footer e .site__footer--sticky-footer. La pagina deve averer questi 2 elementi radice. */
html, body { height: 100%; margin: 0; }

html.no-appleios body { display: -webkit-flex; display: -ms-flexbox; display: flex; min-height: 100vh; -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column; }
html.no-appleios .page__wrap--sticky-footer { -webkit-flex: 1 0 auto; -ms-flex: 1 0 auto; flex: 1 0 auto; }
html.no-appleios .site__footer { -webkit-flex: none; -ms-flex: none; flex: none; }

html.appleios .page__wrap--sticky-footer { min-height: 100%; margin-bottom: -65px; margin-bottom: -4.0625rem; }
html.appleios .page__wrap--sticky-footer:after { content: ""; display: block; }
html.appleios .site__footer--sticky-footer, html.appleios .page__wrap--sticky-footer:after { min-height: 65px; min-height: 4.0625rem; }

.loader { position: fixed; height: 100%; width: 100%; top: 0; left: 0; background: #c9af86; opacity: 1; z-index: 1000; display: table; text-align: center; }

.loader__spinner { display: table-cell; vertical-align: middle; }
.loader__spinner img { width: 200px; height: auto; }

.correlati { width: 100%; float: left; margin-left: 0; margin-right: 0; padding-bottom: 4em; }

.correlati__header { font-size: 24px; font-size: 1.5rem; color: #ac162c; border-bottom: 1px solid #c9af86; padding-bottom: 0.6em; font-weight: 300; }

.correlati-block { width: 100%; float: left; margin-left: 0; margin-right: 0; margin-bottom: 2em; }
@media (min-width: 768px) { .correlati-block { width: 22.58065%; float: left; margin-left: 3.22581%; }
  .correlati-block:first-of-type { margin-left: 0; }
  .correlati-block:nth-of-type(4) { float: right; margin-right: 0; } }

.correlati-block__image { width: 50%; float: left; background-size: cover; background-repeat: no-repeat; background-position: 50% 50%; position: relative; overflow: hidden; margin-top: 0; }
.correlati-block__image:before { content: ""; display: block; padding-top: 100%; }
.correlati-block__image .square-content { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }
.correlati-block__image .square-content div { display: table; width: 100%; height: 100%; }
@media (min-width: 768px) { .correlati-block__image { width: 100%; } }

.correlati-block__title { width: 50%; float: right; font-weight: 300; text-transform: uppercase; position: relative; overflow: hidden; margin-top: 0; }
.correlati-block__title:before { content: ""; display: block; padding-top: 100%; }
.correlati-block__title .square-content { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }
.correlati-block__title .square-content div { display: table; width: 100%; height: 100%; }
.correlati-block__title .square-content span { display: table-cell; text-align: center; vertical-align: middle; padding: 0 0.5em; font-size: 22px; font-size: 1.375rem; }
@media (min-width: 768px) { .correlati-block__title { width: 100%; float: none; } }

/* Slider */
.slick-loading .slick-list { background: #fff url("./ajax-loader.gif") center center no-repeat; }

/* Icons */
/* Arrows */
.slick-prev, .slick-next { position: absolute; display: block; height: 20px; width: 20px; line-height: 0px; font-size: 0px; cursor: pointer; background: transparent; color: transparent; top: 50%; margin-top: -10px\9; /*lte IE 8*/ -webkit-transform: translate(0, -50%); transform: translate(0, -50%); padding: 0; border: none; outline: none; }
.slick-prev:hover, .slick-prev:focus, .slick-next:hover, .slick-next:focus { outline: none; background: transparent; color: transparent; }
.slick-prev:hover:before, .slick-prev:focus:before, .slick-next:hover:before, .slick-next:focus:before { opacity: 1; }
.slick-prev.slick-disabled:before, .slick-next.slick-disabled:before { opacity: 0.25; }

.slick-prev:before, .slick-next:before { font-family: "Crimson Text", serif; font-size: 20px; line-height: 1; color: white; opacity: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

.slick-prev { left: -25px; }
[dir="rtl"] .slick-prev { left: auto; right: -25px; }
.slick-prev:before { content: "←"; }
[dir="rtl"] .slick-prev:before { content: "→"; }

.slick-next { right: -25px; }
[dir="rtl"] .slick-next { left: -25px; right: auto; }
.slick-next:before { content: "→"; }
[dir="rtl"] .slick-next:before { content: "←"; }

/* Dots */
.slick-slider { margin-bottom: 30px; }

.slick-dots { margin-top: 0; bottom: -45px; list-style: none; display: block; text-align: center; padding: 0; width: 100%; }
.slick-dots li { position: relative; display: inline-block; height: 20px; width: 20px; margin: 0 5px; padding: 0; cursor: pointer; }
.slick-dots li button { border: 0; background: transparent; display: block; height: 20px; width: 20px; outline: none; line-height: 0px; font-size: 0px; color: transparent; padding: 5px; cursor: pointer; }
.slick-dots li button:hover, .slick-dots li button:focus { outline: none; }
.slick-dots li button:hover:before, .slick-dots li button:focus:before { opacity: 1; }
.slick-dots li button:before { position: absolute; top: 5px; top: 0.3125rem; left: 0; content: "•"; width: 15px; width: 0.9375rem; height: 15px; height: 0.9375rem; border-radius: 100%; font-family: "Crimson Text", serif; font-size: 6px; line-height: 20px; text-align: center; color: #ac162c; background: #ac162c; opacity: 0.25; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.slick-dots li.slick-active button:before { color: #ac162c; opacity: 1; }

.slick-slider { height: auto; }
.slick-slider img { width: 100%; }

.single-slideshow__caption { display: none; }

#wpadminbar { display: none !important; }



/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwibWFpbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5zY3NzIiwidXRpbHMvX2ZvbnRzLnNjc3MiLCJ1dGlscy9fbWl4aW5zLnNjc3MiLCJ1dGlscy9fYW5pbWF0ZS5zY3NzIiwidXRpbHMvX25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9jb21wYXNzLWJyZWFrcG9pbnQvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsImxheW91dC9fYmFzZS5zY3NzIiwidXRpbHMvX3ZhcmlhYmxlcy5zY3NzIiwibGF5b3V0L19zaW5nbGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX3JlbS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19zcGFuLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9mbG9hdC9fc3Bhbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19kaXJlY3Rpb24uc2NzcyIsImNvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwiY29tcG9uZW50cy9faGVhZGVyLWxvZ28uc2NzcyIsImNvbXBvbmVudHMvX3RhZGFvLW1vZGFscy5zY3NzIiwiY29tcG9uZW50cy9fcGFyYWxsYXguc2NzcyIsImNvbXBvbmVudHMvX21lbnUuc2NzcyIsImNvbXBvbmVudHMvX2NmNy5zY3NzIiwiY29tcG9uZW50cy9fY29udGFjdC1idXR0b24uc2NzcyIsImNvbXBvbmVudHMvX2hvbWUtZ3JpZC5zY3NzIiwiY29tcG9uZW50cy9faG9tZS1pbWFnZS5zY3NzIiwiY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19zdGlja3ktZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19sb2FkZXIuc2NzcyIsImNvbXBvbmVudHMvX2NvcnJlbGF0aS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX2VuZC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19yb3dzLnNjc3MiLCJjb21wb25lbnRzL19nYWxsZXJ5LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOzs7OztFQUtFO0FDTEYsWUFBWTtBQUVaLGdCQUNJLG1CQUFrQixDQUNsQixlQUFjLENBRWQsdUJBQXNCLENBQ3RCLDRCQUEyQixDQUMzQiwwQkFBeUIsQ0FFekIsdUJBQXNCLENBQ3RCLHNCQUFxQixDQUNyQixrQkFBaUIsQ0FDakIsd0JBQXVCLENBQ3ZCLG9CQUFtQixDQUNuQix5Q0FBd0MsRUFBQTs7QUFFNUMsY0FDSSxtQkFBa0IsQ0FDbEIsaUJBQWdCLENBQ2hCLGVBQWMsQ0FDZCxVQUFTLENBQ1QsV0FBVSxFQUFBO0FBRVYsb0JBQ0ksY0FBYSxFQUFBO0FBR2pCLHVCQUNJLGdCQUFlLENBQ2YsYUFBWSxFQUFBOztBQUdwQix3REFFSSx3Q0FBdUMsQ0FJdkMsZ0NBQStCLEVBQUE7O0FBR25DLGVBQ0ksbUJBQWtCLENBQ2xCLFFBQU8sQ0FDUCxPQUFNLENBQ04sZUFBYyxFQUFBO0FBRWQsMENBRUksWUFBVyxDQUNYLGVBQWMsRUFBQTtBQUdsQixxQkFDSSxZQUFXLEVBQUE7QUFHZiw4QkFDSSxtQkFBa0IsRUFBQTs7QUFHMUIsZUFDSSxZQUFXLENBQ1gsYUFBWSxDQUNaLGdCQUFlLENBV2YsY0FBYSxFQUFBO0FBVmIsMkJBQ0ksYUFBWSxFQUFBO0FBRWhCLG1CQUNJLGVBQWMsRUFBQTtBQUVsQixpQ0FDSSxjQUFhLEVBQUE7QUFLakIsNEJBQ0kscUJBQW9CLEVBQUE7QUFHeEIsa0NBQ0ksZUFBYyxFQUFBO0FBR2xCLDhCQUNJLG1C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RUFBQTs7QUFzTHpCLGdCQUNJLGFBQVksRUFBQTtBQUNaLG9CQUNJLFlBQVcsRUFBQTs7QUFHbkIsNkJBQ0ksY0FBYSxFQUFBOztBN0IzSmpCLGNBQ0kseUJBQXdCLEVBQUEiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyohXG4gICAgVGhlbWUgTmFtZTogSGF2YW5hIEZvb2RcbiAgICBBdXRob3I6IFRhZGFvIFN0dWRpb1xuICAgIEF1dGhvciBVUkk6IGh0dHA6Ly90YWRhb3N0dWRpby5jb20vXG4gICAgRGVzY3JpcHRpb246IFRlbWEgUkVTVCBSaXN0b3JhbnRlIEhhdmFuYSBGb29kXG4qL1xuLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBibG9jazsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTsgLW1vei11c2VyLXNlbGVjdDogbm9uZTsgLW1zLXVzZXItc2VsZWN0OiBub25lOyB1c2VyLXNlbGVjdDogbm9uZTsgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7IHRvdWNoLWFjdGlvbjogcGFuLXk7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnNsaWNrLWxpc3QgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH1cbi5zbGljay1saXN0OmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnNsaWNrLWxpc3QuZHJhZ2dpbmcgeyBjdXJzb3I6IHBvaW50ZXI7IGN1cnNvcjogaGFuZDsgfVxuXG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjaywgLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IDA7IHRvcDogMDsgZGlzcGxheTogYmxvY2s7IH1cbi5zbGljay10cmFjazpiZWZvcmUsIC5zbGljay10cmFjazphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IGRpc3BsYXk6IHRhYmxlOyB9XG4uc2xpY2stdHJhY2s6YWZ0ZXIgeyBjbGVhcjogYm90aDsgfVxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGljay1zbGlkZSB7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDEwMCU7IG1pbi1oZWlnaHQ6IDFweDsgZGlzcGxheTogbm9uZTsgfVxuW2Rpcj1cInJ0bFwiXSAuc2xpY2stc2xpZGUgeyBmbG9hdDogcmlnaHQ7IH1cbi5zbGljay1zbGlkZSBpbWcgeyBkaXNwbGF5OiBibG9jazsgfVxuLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nIHsgZGlzcGxheTogbm9uZTsgfVxuLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZyB7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4uc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlIHsgZGlzcGxheTogYmxvY2s7IH1cbi5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZSB7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IGF1dG87IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXdlaWdodDogMzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIExpZ2h0XCIpLCBsb2NhbChcIkZpcmFTYW5zLUxpZ2h0XCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L1ZUQm5ySzQyRWlPQm5jVnlRWFo3ajYtajJVMGxtbHVQOVJXbFN5dG0zaG8ud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7IH1cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiAzMDA7IHNyYzogbG9jYWwoXCJGaXJhIFNhbnMgTGlnaHRcIiksIGxvY2FsKFwiRmlyYVNhbnMtTGlnaHRcIiksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvVlRCbnJLNDJFaU9CbmNWeVFYWjdqNVg1Zi05bzF2Z1AyRVh3ZmpnbDdBWS53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7IHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsgfVxuLyogZ3JlZWsgKi9cbkBmb250LWZhY2UgeyBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDMwMDsgc3JjOiBsb2NhbChcIkZpcmEgU2FucyBMaWdodFwiKSwgbG9jYWwoXCJGaXJhU2Fucy1MaWdodFwiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9WVEJucks0MkVpT0JuY1Z5UVhaN2o2YVJvYmtBd3Yzdnh3M2pNaFZFTkdBLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7IH1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXdlaWdodDogMzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIExpZ2h0XCIpLCBsb2NhbChcIkZpcmFTYW5zLUxpZ2h0XCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L1ZUQm5ySzQyRWlPQm5jVnlRWFo3anowTFctNDNhTUV6SU82WFVUTGphZDgud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOyB9XG4vKiBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXdlaWdodDogMzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIExpZ2h0XCIpLCBsb2NhbChcIkZpcmFTYW5zLUxpZ2h0XCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L1ZUQm5ySzQyRWlPQm5jVnlRWFo3ai1nZG0wTFpkanFyNS1vYXlYU09lZmcud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNSwgVStFMEZGLCBVK0VGRkQsIFUrRjAwMDsgfVxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IHNyYzogbG9jYWwoXCJGaXJhIFNhbnNcIiksIGxvY2FsKFwiRmlyYVNhbnMtUmVndWxhclwiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9nNVNmXzEzNGNBdFRLa05uSWpJa1h4SnRuS0lUcHBPSV9JdmNYWEROcnNjLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOyB9XG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zXCIpLCBsb2NhbChcIkZpcmFTYW5zLVJlZ3VsYXJcIiksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvVDNhYlVPZzRZZ2ZqT2J5MmwtUXVkaEp0bktJVHBwT0lfSXZjWFhETnJzYy53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7IHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsgfVxuLyogZ3JlZWsgKi9cbkBmb250LWZhY2UgeyBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgc3JjOiBsb2NhbChcIkZpcmEgU2Fuc1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1SZWd1bGFyXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1LzVqQU1HTXNCWFM2eFVZRXl0R2NaZEJKdG5LSVRwcE9JX0l2Y1hYRE5yc2Mud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsgfVxuLyogbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IHNyYzogbG9jYWwoXCJGaXJhIFNhbnNcIiksIGxvY2FsKFwiRmlyYVNhbnMtUmVndWxhclwiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9NSVBXVldJX21ZX1FFUnhjTVZQRXdCSnRuS0lUcHBPSV9JdmNYWEROcnNjLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsgfVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2UgeyBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgc3JjOiBsb2NhbChcIkZpcmEgU2Fuc1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1SZWd1bGFyXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L0Vqc3J6RGtRVVFDRHdzQnRMcGNWUVZ0WFJhOFRWd1RJQ2dpcm5KaG1WSncud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNSwgVStFMEZGLCBVK0VGRkQsIFUrRjAwMDsgfVxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA3MDA7IHNyYzogbG9jYWwoXCJGaXJhIFNhbnMgQm9sZFwiKSwgbG9jYWwoXCJGaXJhU2Fucy1Cb2xkXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L0R1Z1BkU2xqbU9Ub2NaT1IyQ0l0T3EtajJVMGxtbHVQOVJXbFN5dG0zaG8ud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7IH1cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA3MDA7IHNyYzogbG9jYWwoXCJGaXJhIFNhbnMgQm9sZFwiKSwgbG9jYWwoXCJGaXJhU2Fucy1Cb2xkXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L0R1Z1BkU2xqbU9Ub2NaT1IyQ0l0T3BYNWYtOW8xdmdQMkVYd2ZqZ2w3QVkud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7IH1cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA3MDA7IHNyYzogbG9jYWwoXCJGaXJhIFNhbnMgQm9sZFwiKSwgbG9jYWwoXCJGaXJhU2Fucy1Cb2xkXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L0R1Z1BkU2xqbU9Ub2NaT1IyQ0l0T3FhUm9ia0F3djN2eHczak1oVkVOR0Eud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsgfVxuLyogbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA3MDA7IHNyYzogbG9jYWwoXCJGaXJhIFNhbnMgQm9sZFwiKSwgbG9jYWwoXCJGaXJhU2Fucy1Cb2xkXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L0R1Z1BkU2xqbU9Ub2NaT1IyQ0l0T2owTFctNDNhTUV6SU82WFVUTGphZDgud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOyB9XG4vKiBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXdlaWdodDogNzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIEJvbGRcIiksIGxvY2FsKFwiRmlyYVNhbnMtQm9sZFwiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9EdWdQZFNsam1PVG9jWk9SMkNJdE91Z2RtMExaZGpxcjUtb2F5WFNPZWZnLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTUsIFUrRTBGRiwgVStFRkZELCBVK0YwMDA7IH1cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogMzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIExpZ2h0IEl0YWxpY1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1MaWdodEl0YWxpY1wiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS82czBZQ0E5b0NURjZoTTYwWU0tcVRSZ1ZUaExzOFk3RVRKekRDWUZDU0xFLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOyB9XG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogMzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIExpZ2h0IEl0YWxpY1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1MaWdodEl0YWxpY1wiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS82czBZQ0E5b0NURjZoTTYwWU0tcVRaaU1haXN2YVVWVXNZeVZ6T21uZGVrLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2OyB9XG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogMzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIExpZ2h0IEl0YWxpY1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1MaWdodEl0YWxpY1wiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS82czBZQ0E5b0NURjZoTTYwWU0tcVRmMTR2bGNmeVBZbEFjUXkyVWZEUm00LndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7IH1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogMzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIExpZ2h0IEl0YWxpY1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1MaWdodEl0YWxpY1wiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS82czBZQ0E5b0NURjZoTTYwWU0tcVRhdnlQWGRuZWVHZDI2bTlFbUZTU1dnLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsgfVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2UgeyBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IDMwMDsgc3JjOiBsb2NhbChcIkZpcmEgU2FucyBMaWdodCBJdGFsaWNcIiksIGxvY2FsKFwiRmlyYVNhbnMtTGlnaHRJdGFsaWNcIiksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvNnMwWUNBOW9DVEY2aE02MFlNLXFUVW8ybFRNZVdBX2ttSXlXcmtOQ3dQYy53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7IHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1LCBVK0UwRkYsIFUrRUZGRCwgVStGMDAwOyB9XG4vKiBjeXJpbGxpYy1leHQgKi9cbkBmb250LWZhY2UgeyBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IDQwMDsgc3JjOiBsb2NhbChcIkZpcmEgU2FucyBJdGFsaWNcIiksIGxvY2FsKFwiRmlyYVNhbnMtSXRhbGljXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L1FVUkFtRno0YjgwZzMyNC1vRi1VanpUT1FfTXFKVndrS3NVbjB3S3pjMkkud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7IH1cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2VpZ2h0OiA0MDA7IHNyYzogbG9jYWwoXCJGaXJhIFNhbnMgSXRhbGljXCIpLCBsb2NhbChcIkZpcmFTYW5zLUl0YWxpY1wiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9RVVJBbUZ6NGI4MGczMjQtb0YtVWp6VWpfY252V0l1dUJNVmdiWDA5OE13LndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2OyB9XG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogNDAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIEl0YWxpY1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1JdGFsaWNcIiksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvUVVSQW1GejRiODBnMzI0LW9GLVVqMm9fc1VKOHVPNFlMV1JJblMyMlQzWS53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7IHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOyB9XG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2UgeyBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IDQwMDsgc3JjOiBsb2NhbChcIkZpcmEgU2FucyBJdGFsaWNcIiksIGxvY2FsKFwiRmlyYVNhbnMtSXRhbGljXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L1FVUkFtRno0YjgwZzMyNC1vRi1VanlZRTAtQXFKM25mSW5UVGlEWERqVTQud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOyB9XG4vKiBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogNDAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIEl0YWxpY1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1JdGFsaWNcIiksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvUVVSQW1GejRiODBnMzI0LW9GLVVqNDRQNUlDb3g4S3EzTExVTk15bEdPNC53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7IHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1LCBVK0UwRkYsIFUrRUZGRCwgVStGMDAwOyB9XG4vKiBjeXJpbGxpYy1leHQgKi9cbkBmb250LWZhY2UgeyBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IDcwMDsgc3JjOiBsb2NhbChcIkZpcmEgU2FucyBCb2xkIEl0YWxpY1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1Cb2xkSXRhbGljXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1LzZzMFlDQTlvQ1RGNmhNNjBZTS1xVFo2aUloX0Z2bFVIUXdFRDlZdDVLYncud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7IH1cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2VpZ2h0OiA3MDA7IHNyYzogbG9jYWwoXCJGaXJhIFNhbnMgQm9sZCBJdGFsaWNcIiksIGxvY2FsKFwiRmlyYVNhbnMtQm9sZEl0YWxpY1wiKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS82czBZQ0E5b0NURjZoTTYwWU0tcVRTX3ZabWVpQ01ub1dOTjlySEJZYVRjLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKTsgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2OyB9XG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogNzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIEJvbGQgSXRhbGljXCIpLCBsb2NhbChcIkZpcmFTYW5zLUJvbGRJdGFsaWNcIiksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvNnMwWUNBOW9DVEY2aE02MFlNLXFUUWFsUW9jQi1fX3BEVkdoRjN1UzJLcy53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7IHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOyB9XG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2UgeyBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IDcwMDsgc3JjOiBsb2NhbChcIkZpcmEgU2FucyBCb2xkIEl0YWxpY1wiKSwgbG9jYWwoXCJGaXJhU2Fucy1Cb2xkSXRhbGljXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1LzZzMFlDQTlvQ1RGNmhNNjBZTS1xVGVqa0RkdmhJSUZqX1lNZGdxcG5TQjAud29mZjIpIGZvcm1hdChcIndvZmYyXCIpOyB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOyB9XG4vKiBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJzsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogNzAwOyBzcmM6IGxvY2FsKFwiRmlyYSBTYW5zIEJvbGQgSXRhbGljXCIpLCBsb2NhbChcIkZpcmFTYW5zLUJvbGRJdGFsaWNcIiksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvNnMwWUNBOW9DVEY2aE02MFlNLXFUWWxJWnUtSERwbURJWk1pZ21zcm9jNC53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7IHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1LCBVK0UwRkYsIFUrRUZGRCwgVStGMDAwOyB9XG4uaGlkZGVuIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiFcbkFuaW1hdGUuY3NzIC0gaHR0cDovL2RhbmVkZW4ubWUvYW5pbWF0ZVxuTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIC0gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuXG5Db3B5cmlnaHQgKGMpIDIwMTMgRGFuaWVsIEVkZW5cbiovXG4uYW5pbWF0ZWQgeyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7IGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfVxuXG4uYW5pbWF0ZWQuaW5maW5pdGUgeyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4uYW5pbWF0ZWQuaGluZ2UgeyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IH1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHsgMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTsgfVxuICAxMDAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9IH1cbi5mYWRlSW5MZWZ0IHsgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7IH1cblxuQGtleWZyYW1lcyBmYWRlSW5SaWdodCB7IDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTsgfVxuICAxMDAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9IH1cbi5mYWRlSW5SaWdodCB7IGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodDsgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVab29tT3V0IHsgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpOyB9XG4gIDEwMCUgeyB2aXNpYmlsaXR5OiBoaWRkZW47IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMS4xLCAxLjEpOyB9IH1cbi5mYWRlWm9vbU91dCB7IGFuaW1hdGlvbi1uYW1lOiBmYWRlWm9vbU91dDsgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVab29tSW4geyAwJSB7IG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDE7IH0gfVxuLmZhZGVab29tSW4geyBhbmltYXRpb24tbmFtZTogZmFkZVpvb21JbjsgYW5pbWF0aW9uLWRlbGF5OiAuNXM7IH1cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyoqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS4gKi9cbmh0bWwgeyBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqLyAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqLyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi8gfVxuXG4vKiogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLiAqL1xuYm9keSB7IG1hcmdpbjogMDsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS4gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTEgYW5kIEZpcmVmb3guIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuICovXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtYWluLCBtZW51LCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS4gMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLiAqL1xuYXVkaW8sIGNhbnZhcywgcHJvZ3Jlc3MsIHZpZGVvIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqLyB9XG5cbi8qKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHsgZGlzcGxheTogbm9uZTsgaGVpZ2h0OiAwOyB9XG5cbi8qKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi4gKi9cbltoaWRkZW5dLCB0ZW1wbGF0ZSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3MgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC4gKi9cbmEgeyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKiogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhbiBhY3RpdmUvaG92ZXIgc3RhdGUuICovXG5hOmFjdGl2ZSwgYTpob3ZlciB7IG91dGxpbmU6IDA7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3MgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuICovXG5hYmJyW3RpdGxlXSB7IGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS4gKi9cbmIsIHN0cm9uZyB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuICovXG5kZm4geyBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWAgY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLiAqL1xuaDEgeyBmb250LXNpemU6IDJlbTsgbWFyZ2luOiAwLjY3ZW0gMDsgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG5cbi8qKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LiAqL1xubWFyayB7IGJhY2tncm91bmQ6ICNmZjA7IGNvbG9yOiAjMDAwOyB9XG5cbi8qKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy4gKi9cbnNtYWxsIHsgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy4gKi9cbnN1Yiwgc3VwIHsgZm9udC1zaXplOiA3NSU7IGxpbmUtaGVpZ2h0OiAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAgeyB0b3A6IC0wLjVlbTsgfVxuXG5zdWIgeyBib3R0b206IC0wLjI1ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLiAqL1xuaW1nIHsgYm9yZGVyOiAwOyB9XG5cbi8qKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS4gKi9cbnN2Zzpub3QoOnJvb3QpIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuICovXG5maWd1cmUgeyBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuICovXG5ociB7IGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyBoZWlnaHQ6IDA7IH1cblxuLyoqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLiAqL1xucHJlIHsgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy4gKi9cbmNvZGUsIGtiZCwgcHJlLCBzYW1wIHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3JtcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC4gKi9cbi8qKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS4gKi9cbmJ1dHRvbiwgaW5wdXQsIG9wdGdyb3VwLCBzZWxlY3QsIHRleHRhcmVhIHsgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi8gZm9udDogaW5oZXJpdDsgLyogMiAqLyBtYXJnaW46IDA7IC8qIDMgKi8gfVxuXG4vKiogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuICovXG5idXR0b24geyBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKiogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guICovXG5idXR0b24sIHNlbGVjdCB7IHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYCBjb250cm9scy4gMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZSBgaW5wdXRgIGFuZCBvdGhlcnMuICovXG5idXR0b24sIGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgaW5wdXRbdHlwZT1cInJlc2V0XCJdLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHsgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi8gY3Vyc29yOiBwb2ludGVyOyAvKiAzICovIH1cblxuLyoqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuICovXG5idXR0b25bZGlzYWJsZWRdLCBodG1sIGlucHV0W2Rpc2FibGVkXSB7IGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKiogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLCBpbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7IGJvcmRlcjogMDsgcGFkZGluZzogMDsgfVxuXG4vKiogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpbiB0aGUgVUEgc3R5bGVzaGVldC4gKi9cbmlucHV0IHsgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKiogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLiAgMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC4gMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC4gKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqLyBwYWRkaW5nOiAwOyAvKiAyICovIH1cblxuLyoqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC4gKi9cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24geyBoZWlnaHQ6IGF1dG87IH1cblxuLyoqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7IC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovIH1cblxuLyoqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24geyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy4gKi9cbmZpZWxkc2V0IHsgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDsgbWFyZ2luOiAwIDJweDsgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy4gKi9cbmxlZ2VuZCB7IGJvcmRlcjogMDsgLyogMSAqLyBwYWRkaW5nOiAwOyAvKiAyICovIH1cblxuLyoqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuICovXG50ZXh0YXJlYSB7IG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLiAqL1xub3B0Z3JvdXAgeyBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKiBUYWJsZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuICovXG50YWJsZSB7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLCB0aCB7IHBhZGRpbmc6IDA7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7IC5icmVha3BvaW50LWNvbnRhaW5lciB7IHdpZHRoOiA0NTBweDsgd2lkdGg6IDI4LjEyNXJlbTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsgfSB9XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgLmJyZWFrcG9pbnQtY29udGFpbmVyIHsgd2lkdGg6IDczOHB4OyB3aWR0aDogNDYuMTI1cmVtOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgeyAuYnJlYWtwb2ludC1jb250YWluZXIgeyB3aWR0aDogOTMwcHg7IHdpZHRoOiA1OC4xMjVyZW07IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkgeyAuYnJlYWtwb2ludC1jb250YWluZXIgeyB3aWR0aDogMTE3MHB4OyB3aWR0aDogNzMuMTI1cmVtOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cblxuYm9keSB7IGZvbnQtZmFtaWx5OiBcIkZpcmEgU2Fuc1wiLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE2cHg7IGZvbnQtc2l6ZTogMXJlbTsgbGluZS1oZWlnaHQ6IDEuNWVtOyB9XG5cbi5icmVha3BvaW50LXNjYWxpbmcgeyB3aWR0aDogOTAlOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHsgLmJyZWFrcG9pbnQtc2NhbGluZyB7IHdpZHRoOiA0ODBweDsgd2lkdGg6IDMwcmVtOyB9IH1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgeyAuYnJlYWtwb2ludC1zY2FsaW5nIHsgd2lkdGg6IDc2OHB4OyB3aWR0aDogNDhyZW07IH0gfVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7IC5icmVha3BvaW50LXNjYWxpbmcgeyB3aWR0aDogOTYwcHg7IHdpZHRoOiA2MHJlbTsgfSB9XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7IC5icmVha3BvaW50LXNjYWxpbmcgeyB3aWR0aDogMTIwMHB4OyB3aWR0aDogNzVyZW07IH0gfVxuXG5hW2hyZWZdIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0cmFuc2l0aW9uOiBjb2xvciA1MDBtczsgfVxuYVtocmVmXTpob3ZlciB7IGNvbG9yOiAjYWMxNjJjOyB9XG5cbi5jb250ZW50IGFbaHJlZl06bm90KFtjbGFzc10pIHsgY29sb3I6ICNhYzE2MmM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4udGFibGUgeyBkaXNwbGF5OiB0YWJsZTsgZmxvYXQ6IGxlZnQ7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLnRhYmxlX19jZWxsIHsgZGlzcGxheTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG51bC5yZXNldC1saXN0IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbnVsLnJlc2V0LWxpc3QgPiBsaSB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfVxuXG4uc2l0ZV9fY29udGFpbmVyIHsgbWFyZ2luOiBhdXRvOyBtYXgtd2lkdGg6IDkwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgY2xlYXI6IGJvdGg7IGJhY2tncm91bmQ6IHdoaXRlOyB9XG4uc2l0ZV9fY29udGFpbmVyOmFmdGVyIHsgY29udGVudDogXCJcIjsgZGlzcGxheTogdGFibGU7IGNsZWFyOiBib3RoOyB9XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgLnNpdGVfX2NvbnRhaW5lciB7IG1heC13aWR0aDogMTAwJTsgfSB9XG5cbi5zcXVhcmUtdGl0bGUgeyBsaW5lLWhlaWdodDogMS4yZW07IH1cblxuLmNvbnRlbnQgaDMgeyBjb2xvcjogI2FjMTYyYzsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNjOWFmODY7IGZvbnQtc2l6ZTogMjRweDsgZm9udC1zaXplOiAxLjVyZW07IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxLjJlbTsgcGFkZGluZy1ib3R0b206IDAuNWVtOyBtYXJnaW4tYm90dG9tOiAwLjJlbTsgfVxuXG4ucGFnZS5zaW5nbGUgeyBiYWNrZ3JvdW5kOiB3aGl0ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgY2xlYXI6IGJvdGg7IH1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgeyAucGFnZS5zaW5nbGUgeyB3aWR0aDogNjUuMjE3MzklOyBmbG9hdDogbGVmdDsgbWFyZ2luLWxlZnQ6IDE3LjM5MTMlOyBtYXJnaW4tcmlnaHQ6IC0xMDAlOyB9IH1cbi5wYWdlLnNpbmdsZTphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IGRpc3BsYXk6IHRhYmxlOyBjbGVhcjogYm90aDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgLmxlZnQtY29sdW1uIHsgbWFyZ2luLXRvcDogMDsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMjIuNTgwNjUlOyBmbG9hdDogbGVmdDsgbWFyZ2luLWxlZnQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IG1hcmdpbi1ib3R0b206IDJlbTsgfSB9XG5cbi5zaW5nbGVfX3RpdGxlIHsgYmFja2dyb3VuZDogIzUxMjMyOTsgY29sb3I6IHdoaXRlOyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxMDAlOyBsZWZ0OiAwOyB9XG4uc2luZ2xlX190aXRsZSAuc3F1YXJlLWNvbnRlbnQgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDFlbTsgfVxuLnNpbmdsZV9fdGl0bGUgLnNxdWFyZS1jb250ZW50IGgxLCAuc2luZ2xlX190aXRsZSAuc3F1YXJlLWNvbnRlbnQgc3BhbiB7IGZvbnQtd2VpZ2h0OiAzMDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkgeyAuc2luZ2xlX190aXRsZSAuc3F1YXJlLWNvbnRlbnQgaDEsIC5zaW5nbGVfX3RpdGxlIC5zcXVhcmUtY29udGVudCBzcGFuIHsgZm9udC1zaXplOiAyOHB4OyBmb250LXNpemU6IDEuNzVyZW07IH1cbiAgaHRtbC5hcHBsZWlvcyAuc2luZ2xlX190aXRsZSAuc3F1YXJlLWNvbnRlbnQgaDEsIGh0bWwuYXBwbGVpb3MgLnNpbmdsZV9fdGl0bGUgLnNxdWFyZS1jb250ZW50IHNwYW4geyBmb250LXNpemU6IDIycHg7IGZvbnQtc2l6ZTogMS4zNzVyZW07IH0gfVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5zaW5nbGVfX3RpdGxlIC5zcXVhcmUtY29udGVudCBoMSwgLnNpbmdsZV9fdGl0bGUgLnNxdWFyZS1jb250ZW50IHNwYW4geyBmb250LXNpemU6IDI3cHg7IGZvbnQtc2l6ZTogMS42ODc1cmVtOyB9XG4gIGh0bWwuYXBwbGVpb3MgLnNpbmdsZV9fdGl0bGUgLnNxdWFyZS1jb250ZW50IGgxLCBodG1sLmFwcGxlaW9zIC5zaW5nbGVfX3RpdGxlIC5zcXVhcmUtY29udGVudCBzcGFuIHsgZm9udC1zaXplOiAyOHB4OyBmb250LXNpemU6IDEuNzVyZW07IH0gfVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7IC5zaW5nbGVfX3RpdGxlIC5zcXVhcmUtY29udGVudCBoMSwgLnNpbmdsZV9fdGl0bGUgLnNxdWFyZS1jb250ZW50IHNwYW4geyBmb250LXNpemU6IDM0cHg7IGZvbnQtc2l6ZTogMi4xMjVyZW07IH1cbiAgaHRtbC5hcHBsZWlvcyAuc2luZ2xlX190aXRsZSAuc3F1YXJlLWNvbnRlbnQgaDEsIGh0bWwuYXBwbGVpb3MgLnNpbmdsZV9fdGl0bGUgLnNxdWFyZS1jb250ZW50IHNwYW4geyBmb250LXNpemU6IDM2cHg7IGZvbnQtc2l6ZTogMi4yNXJlbTsgfSB9XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7IC5zaW5nbGVfX3RpdGxlIC5zcXVhcmUtY29udGVudCBoMSwgLnNpbmdsZV9fdGl0bGUgLnNxdWFyZS1jb250ZW50IHNwYW4geyBmb250LXNpemU6IDQwcHg7IGZvbnQtc2l6ZTogMi41cmVtOyB9XG4gIGh0bWwuYXBwbGVpb3MgLnNpbmdsZV9fdGl0bGUgLnNxdWFyZS1jb250ZW50IGgxLCBodG1sLmFwcGxlaW9zIC5zaW5nbGVfX3RpdGxlIC5zcXVhcmUtY29udGVudCBzcGFuIHsgZm9udC1zaXplOiA2MHB4OyBmb250LXNpemU6IDMuNzVyZW07IH0gfVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5zaW5nbGVfX3RpdGxlIHsgbWFyZ2luLXRvcDogMDsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5zaW5nbGVfX3RpdGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXCI7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLXRvcDogMTAwJTsgfVxuICAuc2luZ2xlX190aXRsZSAuc3F1YXJlLWNvbnRlbnQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgY29sb3I6IHdoaXRlOyB9XG4gIC5zaW5nbGVfX3RpdGxlIC5zcXVhcmUtY29udGVudCBkaXYgeyBkaXNwbGF5OiB0YWJsZTsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfVxuICAuc2luZ2xlX190aXRsZSAuc3F1YXJlLWNvbnRlbnQgaDEgeyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0gfVxuXG4uc2luZ2xlX19jb250ZW50IHsgcGFkZGluZy10b3A6IDhlbTsgcGFkZGluZy1ib3R0b206IDFlbTsgfVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5zaW5nbGVfX2NvbnRlbnQgeyBwYWRkaW5nOiAxZW0gMDsgcGFkZGluZy1ib3R0b206IDRlbTsgd2lkdGg6IDc0LjE5MzU1JTsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tbGVmdDogMy4yMjU4MSU7IH1cbiAgLnNpbmdsZV9fY29udGVudCBoMSwgLnNpbmdsZV9fY29udGVudCBoMiwgLnNpbmdsZV9fY29udGVudCBoMywgLnNpbmdsZV9fY29udGVudCBoNCwgLnNpbmdsZV9fY29udGVudCBoNSwgLnNpbmdsZV9fY29udGVudCBoNiwgLnNpbmdsZV9fY29udGVudCBwIHsgd2lkdGg6IDc0LjE5MzU1JTsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuLmNvbmRpdmlkaWFtbyB7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogMmVtOyB9XG4uY29uZGl2aWRpYW1vIGEgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogd2hpdGU7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7IGZvbnQtc2l6ZTogMjhweDsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogNDJweDsgZm9udC13ZWlnaHQ6IDMwMDsgZmxvYXQ6IGxlZnQ7IH1cbi5jb25kaXZpZGlhbW8gYTpob3ZlciB7IGNvbG9yOiB3aGl0ZTsgfVxuLmNvbmRpdmlkaWFtbyAuZmFjZWJvb2sgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjM2I1OTk5OyB9XG4uY29uZGl2aWRpYW1vIC50d2l0dGVyIHsgYmFja2dyb3VuZC1jb2xvcjogIzU1YWNlZTsgfVxuLmNvbmRpdmlkaWFtbyAuZ29vZ2xlcCB7IGJhY2tncm91bmQtY29sb3I6ICNkZDRiMzk7IH1cbi5jb25kaXZpZGlhbW8gbGkgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgeyAuY29uZGl2aWRpYW1vIC5zaGFyZS10ZXh0IHsgdGV4dC1hbGlnbjogbGVmdDsgbWFyZ2luLWJvdHRvbTogLjVlbTsgfVxuICAuY29uZGl2aWRpYW1vIGxpIHsgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4uY29udGVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuLmNvbnRlbnQgLmFsaWducmlnaHQsIC5jb250ZW50IC5hbGlnbmxlZnQsIC5jb250ZW50IC5hbGlnbm5vbmUsIC5jb250ZW50IC5hbGlnbmNlbnRlciB7IGNsZWFyOiBib3RoOyBtYXgtd2lkdGg6IDEwMCU7IG1hcmdpbjogMWVtIDA7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGhlaWdodDogYXV0bzsgfVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5jb250ZW50IC5hbGlnbnJpZ2h0IHsgY2xlYXI6IG5vbmU7IGZsb2F0OiByaWdodDsgbWFyZ2luLWxlZnQ6IDFlbTsgbWFyZ2luLXJpZ2h0OiAtMzUlOyBtYXgtd2lkdGg6IDY1JTsgfVxuICAuY29udGVudCAuYWxpZ25sZWZ0IHsgbWFyZ2luLXJpZ2h0OiAxZW07IGNsZWFyOiBub25lOyBmbG9hdDogbGVmdDsgfVxuICAuY29udGVudCAuYWxpZ25ub25lLCAuY29udGVudCAuYWxpZ25jZW50ZXIgeyBtYXgtd2lkdGg6IDEzNSU7IH0gfVxuXG4uc2l0ZV9faGVhZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2FjMTYyYzsgcG9zaXRpb246IGZpeGVkOyB6LWluZGV4OiAyOyBoZWlnaHQ6IDY1cHg7IGhlaWdodDogNC4wNjI1cmVtOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubWVudS1zd2l0Y2ggeyB6LWluZGV4OiAxOyBwb3NpdGlvbjogYWJzb2x1dGU7IGhlaWdodDogMTAwJTsgd2lkdGg6IDY1cHg7IHdpZHRoOiA0LjA2MjVyZW07IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuLm1lbnUtc3dpdGNoIC5pY29uLW9wZW4tbWVudSB7IG1hcmdpbi10b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NCUpOyB9XG5cbi5oZWFkZXItbG9nbyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiAxMDUlOyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uaWNvbi1oYXZhbmEtbG9nbyAjbG9nby1oYXZhbmEgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsgLmljb24taGF2YW5hLWxvZ28gI2xvZ28tcmlzdG9yYW50ZSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgZGlzcGxheTogbm9uZTsgfVxuICAuaWNvbi1oYXZhbmEtbG9nbyAjbG9nby1sZWZ0IHsgdmlzaWJpbGl0eTogaGlkZGVuOyBkaXNwbGF5OiBub25lOyB9XG4gIC5pY29uLWhhdmFuYS1sb2dvICNsb2dvLWhhdmFuYSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNXB4KTsgfVxuICAuaWNvbi1oYXZhbmEtbG9nbyAjbG9nby1yaWdodCB7IHZpc2liaWxpdHk6IGhpZGRlbjsgZGlzcGxheTogbm9uZTsgfVxuICAuaWNvbi1oYXZhbmEtbG9nbyAjbG9nby1uYXR1cmFsZm9vZCB7IGRpc3BsYXk6IG5vbmU7IHZpc2liaWxpdHk6IGhpZGRlbjsgfSB9XG5cbi5jbGljay1vZmYtbGF5ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB6LWluZGV4OiA0OTk5OyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IG9wYWNpdHk7IGFuaW1hdGlvbi1uYW1lOiBjbGlja09mZkxheWVyQXBwZWFyOyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzOyB9XG5cbkBrZXlmcmFtZXMgY2xpY2tPZmZMYXllckFwcGVhciB7IDAlIHsgb3BhY2l0eTogMDsgfVxuICAxMDAlIHsgb3BhY2l0eTogMTsgfSB9XG4ubW9kYWwtZWxlbWVudCB7IG9wYWNpdHk6IDA7IH1cblxuLnRlc3QtbW9kYWwtZWxlbWVudCB7IHotaW5kZXg6IDUwMDA7IHRyYW5zaXRpb246IG9wYWNpdHkgNTAwbXM7IHBvc2l0aW9uOiBmaXhlZDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IHRvcDogLTk5OTk5cHg7IGxlZnQ6IC05OTk5OXB4OyBiYWNrZ3JvdW5kOiB3aGl0ZTsgcGFkZGluZzogMjBweDsgcGFkZGluZzogMS4yNXJlbTsgbWFyZ2luOiAyMHB4OyBtYXJnaW46IDEuMjVyZW07IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgfVxuLnRlc3QtbW9kYWwtZWxlbWVudC5hY3RpdmUgeyBhbmltYXRpb24tbmFtZTogdGVzdE1vZGFsOyBhbmltYXRpb24tZGVsYXk6IDUwMG1zOyB9XG5cbkBrZXlmcmFtZXMgdGVzdE1vZGFsIHsgMCUgeyBvcGFjaXR5OiAwOyB0b3A6IDUwJTsgbGVmdDogNTAlOyB9XG4gIDEwMCUgeyBvcGFjaXR5OiAxOyB0b3A6IDUwJTsgbGVmdDogNTAlOyB9IH1cbi5wYXJhbGxheC1jb250YWluZXIgeyB3aWR0aDogMTAwJTsgdG9wOiAwOyBwZXJzcGVjdGl2ZTogMXB4OyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggNjVweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiAxMDAlOyB6LWluZGV4OiAwOyBoZWlnaHQ6IDEwMCU7IH1cbmh0bWwuYW5kcm9pZCAucGFyYWxsYXgtY29udGFpbmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4OyB9XG4ucGFyYWxsYXgtY29udGFpbmVyIC5wYXJhbGxheC1pbWcgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuYm9keS5mdWxsLW1lbnUtb3BlbiB7IG92ZXJmbG93LXk6IGhpZGRlbjsgfVxuXG4jZnVsbC1tZW51IHsgYmFja2dyb3VuZDogcmdiYSgxNzIsIDIyLCA0NCwgMC45NSk7IGZvbnQtZmFtaWx5OiBcIkZpcmEgU2Fuc1wiLCBzYW5zLXNlcmlmOyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogLTk5OTk5cHg7IGxlZnQ6IC05OTk5OXB4OyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB6LWluZGV4OiA1MDAwOyBvdmVyZmxvdzogYXV0bzsgfVxuI2Z1bGwtbWVudS5hY3RpdmUgeyBhbmltYXRpb24tbmFtZTogbWVudUFwcGVhcjsgYW5pbWF0aW9uLWRlbGF5OiAwOyBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7IH1cbiNmdWxsLW1lbnUgLm1lbnUtY29udGFpbmVyIHsgbWFyZ2luOiA4MHB4IDIwcHggNDBweDsgbWFyZ2luOiA1cmVtIDEuMjVyZW0gMi41cmVtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OiAzMDA7IGxpbmUtaGVpZ2h0OiAxLjZlbTsgZm9udC1zaXplOiA4dnc7IH1cbiNmdWxsLW1lbnUgLm1lbnUtY29udGFpbmVyIHVsIHsgbWFyZ2luOiAwIGF1dG87IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMDsgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4jZnVsbC1tZW51IC5tZW51LWNvbnRhaW5lciBsaSB7IG1hcmdpbjogMDsgcGFkZGluZzogMCA0MHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7IHBhZGRpbmctdG9wOiAwLjFlbTsgfVxuI2Z1bGwtbWVudSAubWVudS1jb250YWluZXIgbGk6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IDA7IH1cbiNmdWxsLW1lbnUgLm1lbnUtY29udGFpbmVyIGEgeyBjb2xvcjogd2hpdGU7IH1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgeyAjZnVsbC1tZW51IC5tZW51LWNvbnRhaW5lciB7IG1hcmdpbjogNzBweCA0MHB4OyBtYXJnaW46IDQuMzc1cmVtIDIuNXJlbTsgZm9udC1zaXplOiA2NHB4OyBmb250LXNpemU6IDRyZW07IH0gfVxuXG4uY2xvc2UtZnVsbC1tZW51IHsgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyBjdXJzb3I6IHBvaW50ZXI7IHRvcDogMDsgcmlnaHQ6IDA7IHBhZGRpbmc6IDE2cHg7IHBhZGRpbmc6IDFyZW07IHotaW5kZXg6IDUwMDE7IGJhY2tncm91bmQtc2l6ZTogNTAlOyB9XG4uZnVsbC1tZW51LW9wZW4gLmNsb3NlLWZ1bGwtbWVudSB7IGRpc3BsYXk6IGJsb2NrOyB9XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgLmNsb3NlLWZ1bGwtbWVudSB7IHBvc2l0aW9uOiBmaXhlZDsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtc2l6ZTogMTAwJTsgdG9wOiA3MHB4OyB0b3A6IDQuMzc1cmVtOyByaWdodDogNDBweDsgcmlnaHQ6IDIuNXJlbTsgfSB9XG5cbi5mdWxsLW1lbnUgeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC1zaXplOiAxcmVtOyBsaW5lLWhlaWdodDogMzJweDsgbGluZS1oZWlnaHQ6IDJyZW07IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgeyAuZnVsbC1tZW51IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgbGVmdDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4uZnVsbC1tZW51IC5mdWxsLW1lbnUtc2VwIHsgd2lkdGg6IDczJTsgaGVpZ2h0OiAxcHg7IGhlaWdodDogMC4wNjI1cmVtOyBiYWNrZ3JvdW5kOiBibGFjazsgbWFyZ2luOiAxMHB4IGF1dG87IGJvcmRlcjogMDsgbWFyZ2luLWJvdHRvbTogMzVweDsgbWFyZ2luLWJvdHRvbTogMi4xODc1cmVtOyB9XG4uZnVsbC1tZW51IHVsLCAuZnVsbC1tZW51IGxpIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH1cbi5mdWxsLW1lbnUgPiBsaSB7IGRpc3BsYXk6IGJsb2NrOyB6LWluZGV4OiA1MDAwOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG9wYWNpdHk6IDA7IG1hcmdpbi1ib3R0b206IDMwcHg7IG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgLmZ1bGwtbWVudSA+IGxpIHsgbWFyZ2luLXJpZ2h0OiAzMHB4OyBtYXJnaW4tcmlnaHQ6IDEuODc1cmVtOyB0ZXh0LWFsaWduOiBsZWZ0OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1heC13aWR0aDogMTUlOyBtaW4td2lkdGg6IGluaXRpYWw7IH1cbiAgLmZ1bGwtbWVudSA+IGxpOmxhc3QtY2hpbGQgeyBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuLmZ1bGwtbWVudSA+IGxpID4gYSB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4uZnVsbC1tZW51IGEgeyBsaW5lLWhlaWdodDogMjBweDsgbGluZS1oZWlnaHQ6IDEuMjVyZW07IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiA4cHggMHB4OyBwYWRkaW5nOiAwLjVyZW0gMHJlbTsgdHJhbnNpdGlvbjogY29sb3IgNTAwbXM7IGNvbG9yOiB3aGl0ZTsgfVxuLmZ1bGwtbWVudSBhOmhvdmVyIHsgY29sb3I6IHdoaXRlOyB9XG4uZnVsbC1tZW51IGxpLmN1cnJlbnQtbWVudS1pdGVtID4gYSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5pY29uLWhhdmFuYS1sb2dvLW1lbnUgeyBkaXNwbGF5OiBub25lOyBtYXJnaW4tYm90dG9tOiAxZW07IH1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgeyAuaWNvbi1oYXZhbmEtbG9nby1tZW51IHsgZGlzcGxheTogYmxvY2s7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkgeyBAa2V5ZnJhbWVzIG1lbnVBcHBlYXIgeyAwJSB7IG9wYWNpdHk6IDA7IHRvcDogNjVweDsgdG9wOiA0LjA2MjVyZW07IGxlZnQ6IDA7IH1cbiAgICAxMDAlIHsgb3BhY2l0eTogMTsgdG9wOiA2NXB4OyB0b3A6IDQuMDYyNXJlbTsgbGVmdDogMDsgfSB9IH1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7IEBrZXlmcmFtZXMgbWVudUFwcGVhciB7IDAlIHsgb3BhY2l0eTogMDsgdG9wOiAwOyBsZWZ0OiAwOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IHRvcDogMDsgbGVmdDogMDsgfSB9IH1cbkBrZXlmcmFtZXMgZmxpcEluWCB7IDAlIHsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgb3BhY2l0eTogMDsgfVxuICA0MCUgeyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgfVxuICA2MCUgeyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7IG9wYWNpdHk6IDE7IH1cbiAgODAlIHsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpOyBvcGFjaXR5OiAxOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsgb3BhY2l0eTogMTsgfSB9XG4uZmxpcEluWCB7IGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblg7IGFuaW1hdGlvbi1kZWxheTogNTAwbXM7IH1cblxuLyoqIFN0aWxlIENvbnRhY3QgRm9ybSA3ICovXG4ud3BjZjcgaW5wdXRbdHlwZT1cInRleHRcIl0sIC53cGNmNyBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIC53cGNmNyB0ZXh0YXJlYSB7IGJhY2tncm91bmQtY29sb3I6ICNmNmVlZTU7IGJvcmRlcjogMDsgZm9udC13ZWlnaHQ6IDMwMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDAuOGVtIDAuM2VtOyB9XG4ud3BjZjcgaW5wdXRbdHlwZT1cInRleHRcIl06OnBsYWNlaG9sZGVyLCAud3BjZjcgaW5wdXRbdHlwZT1cImVtYWlsXCJdOjpwbGFjZWhvbGRlciwgLndwY2Y3IHRleHRhcmVhOjpwbGFjZWhvbGRlciB7IGNvbG9yOiAjYzlhZjg2OyB9XG5cbi53cGNmNy1zdWJtaXQgeyBmbG9hdDogcmlnaHQ7IGJhY2tncm91bmQtY29sb3I6ICNhYzE2MmM7IGNvbG9yOiB3aGl0ZTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgYm9yZGVyOiAwOyBwYWRkaW5nOiAwLjdlbSAxLjVlbTsgbWFyZ2luLXRvcDogMWVtOyB9XG5cbi53cGNmNy1mb3JtIHsgb3ZlcmZsb3c6IGhpZGRlbjsgY2xlYXI6IGJvdGg7IH1cbi53cGNmNy1mb3JtOmFmdGVyIHsgY29udGVudDogXCJcIjsgZGlzcGxheTogdGFibGU7IGNsZWFyOiBib3RoOyB9XG4ud3BjZjctZm9ybSAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHsgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IG92ZXJmbG93OiBoaWRkZW47IGNsZWFyOiBib3RoOyB9XG4ud3BjZjctZm9ybSAud3BjZjctcmVzcG9uc2Utb3V0cHV0OmFmdGVyIHsgY29udGVudDogXCJcIjsgZGlzcGxheTogdGFibGU7IGNsZWFyOiBib3RoOyB9XG5cbi5jb250YWN0LWJ1dHRvbiB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IGNvbG9yOiAjYWMxNjJjOyBtYXJnaW4tcmlnaHQ6IDFlbTsgfVxuLmNvbnRhY3QtYnV0dG9uLmNvbnRhY3QtYnV0dG9uLS1pbmxpbmUgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbi5jb250YWN0LWJ1dHRvbiBpbWcgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDBweDsgd2lkdGg6IDYuMjVyZW07IGhlaWdodDogYXV0bzsgZGlzcGxheTogYmxvY2s7IH1cbi5jb250YWN0LWJ1dHRvbiBzcGFuIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctdG9wOiAwLjNlbTsgfVxuXG4uaG9tZWdyaWQgeyB3aWR0aDogMTAwJTsgbWFyZ2luLXRvcDogMmVtOyBtYXJnaW4tYm90dG9tOiAyZW07IH1cblxuLmhvbWVncmlkLWdyb3VwIHsgZGlzcGxheTogYmxvY2s7IH1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgeyAuaG9tZWdyaWQtZ3JvdXAgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZsb2F0OiBsZWZ0OyB3aWR0aDogNjUuMzUlOyB9XG4gIC5ob21lZ3JpZC1ncm91cDpudGgtY2hpbGQoMm4pIHsgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5ob21lZ3JpZC1ncm91cCAuaG9tZWdyaWQtYmxvY2tfX2ltYWdlOmJlZm9yZSB7IHBhZGRpbmctdG9wOiAxMDAlOyB9IH1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgeyAuaG9tZWdyaWQtZ3JvdXAgeyB3aWR0aDogNjUuNDUlOyB9IH1cblxuLmhvbWVncmlkLWJsb2NrIHsgd2lkdGg6IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbTogNC41JTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tYm90dG9tOiAzLjc5NSU7IHRyYW5zaXRpb246IGFsbCwgMzAwbXMsIDUwMG1zOyB9XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgLmhvbWVncmlkLWJsb2NrLmhvbWVncmlkLWJsb2NrLS12ZXJ0aWNhbCB7IG1hcmdpbi1sZWZ0OiAzLjQ1JTsgd2lkdGg6IDMxJTsgfVxuICAuaG9tZWdyaWQtYmxvY2suaG9tZWdyaWQtYmxvY2stLXZlcnRpY2FsIC5ob21lZ3JpZC1ibG9ja19faW1hZ2U6YmVmb3JlLCAuaG9tZWdyaWQtYmxvY2suaG9tZWdyaWQtYmxvY2stLXZlcnRpY2FsIC5ob21lZ3JpZC1ibG9ja19fcGFuZWw6YmVmb3JlLCAuaG9tZWdyaWQtYmxvY2suaG9tZWdyaWQtYmxvY2stLXZlcnRpY2FsIC5ob21lZ3JpZC1ibG9ja19fdGl0bGU6YmVmb3JlIHsgcGFkZGluZy10b3A6IDExMC4zNSU7IH1cbiAgLmhvbWVncmlkLWJsb2NrLmhvbWVncmlkLWJsb2NrLS12ZXJ0aWNhbDpob3ZlciAuaG9tZWdyaWQtYmxvY2tfX3BhbmVsIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuICAuaG9tZWdyaWQtYmxvY2suaG9tZWdyaWQtYmxvY2stLXZlcnRpY2FsOm50aC1jaGlsZCgybisxKSB7IG1hcmdpbi1sZWZ0OiAwOyBtYXJnaW4tcmlnaHQ6IDMuNDUlOyB9XG4gIC5ob21lZ3JpZC1ibG9jazpob3ZlciAuaG9tZWdyaWQtYmxvY2tfX3BhbmVsIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLmhvbWVncmlkLWJsb2NrX19pbWFnZSB7IHdpZHRoOiA1MCU7IGZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IG1hcmdpbi10b3A6IDA7IH1cbi5ob21lZ3JpZC1ibG9ja19faW1hZ2U6YmVmb3JlIHsgY29udGVudDogXCJcIjsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctdG9wOiAxMDAlOyB9XG4uaG9tZWdyaWQtYmxvY2tfX2ltYWdlIC5zcXVhcmUtY29udGVudCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB9XG4uaG9tZWdyaWQtYmxvY2tfX2ltYWdlIC5zcXVhcmUtY29udGVudCBkaXYgeyBkaXNwbGF5OiB0YWJsZTsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5ob21lZ3JpZC1ibG9jay0tdmVydGljYWwgLmhvbWVncmlkLWJsb2NrX19pbWFnZSB7IHdpZHRoOiAxMDAlOyB9IH1cblxuLmhvbWVncmlkLWJsb2NrX19wYW5lbCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBvcGFjaXR5OiAwLjU7IHRyYW5zaXRpb246IGFsbCwgMzAwbXMsIDUwMG1zOyB3aWR0aDogNTAlOyB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5ob21lZ3JpZC1ibG9ja19fcGFuZWwgeyBkaXNwbGF5OiBibG9jazsgfVxuICAuaG9tZWdyaWQtYmxvY2stLXZlcnRpY2FsIC5ob21lZ3JpZC1ibG9ja19fcGFuZWwgeyB0b3A6IDUwJTsgYm90dG9tOiAwOyB3aWR0aDogMTAwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4uaG9tZWdyaWQtYmxvY2tfX3RpdGxlIHsgd2lkdGg6IDUwJTsgZmxvYXQ6IHJpZ2h0OyBmb250LXdlaWdodDogMzAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogd2hpdGU7IGJhY2tncm91bmQ6ICNhYzE2MmM7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgbWFyZ2luLXRvcDogMDsgfVxuLmhvbWVncmlkLWJsb2NrX190aXRsZTpiZWZvcmUgeyBjb250ZW50OiBcIlwiOyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy10b3A6IDEwMCU7IH1cbi5ob21lZ3JpZC1ibG9ja19fdGl0bGUgLnNxdWFyZS1jb250ZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IH1cbi5ob21lZ3JpZC1ibG9ja19fdGl0bGUgLnNxdWFyZS1jb250ZW50IGRpdiB7IGRpc3BsYXk6IHRhYmxlOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9XG4uaG9tZWdyaWQtYmxvY2tfX3RpdGxlIC5zcXVhcmUtY29udGVudCBzcGFuIHsgZGlzcGxheTogdGFibGUtY2VsbDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBwYWRkaW5nOiAwIDAuNWVtOyB9XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgLmhvbWVncmlkLWJsb2NrLS12ZXJ0aWNhbCAuaG9tZWdyaWQtYmxvY2tfX3RpdGxlIHsgd2lkdGg6IDEwMCU7IGZsb2F0OiBub25lOyB9IH1cblxuLmhvbWUtaW1hZ2UgeyBwYWRkaW5nLXRvcDogNjNweDsgcGFkZGluZy10b3A6IDMuOTM3NXJlbTsgfVxuXG4uaG9tZS1pbWFnZV9fY29udGFpbmVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5ob21lLWltYWdlX19pbWFnZSB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9XG5cbi5ob21lLWltYWdlX19icmFuZC1jb250YWluZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNjVweDsgdG9wOiA0LjA2MjVyZW07IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwdnc7IHotaW5kZXg6IDE7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5ob21lLWltYWdlX19icmFuZCB7IG1heC1oZWlnaHQ6IDM1dnc7IHdpZHRoOiA0MDBweDsgd2lkdGg6IDI1cmVtOyBoZWlnaHQ6IDQwMHB4OyBoZWlnaHQ6IDI1cmVtOyB0cmFuc2l0aW9uOiBhbGwgMzAwbXM7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMS4yLCAxLjIpOyBkaXNwbGF5OiBub25lOyB9XG4uaG9tZS1pbWFnZV9fYnJhbmQgPiBzdmcgeyBtYXgtd2lkdGg6IDEwMCU7IG1heC1oZWlnaHQ6IDEwMCU7IH1cbi5ob21lLWltYWdlX19icmFuZCAjYnJhbmQtY2lyY2xlIHsgb3BhY2l0eTogMC43NTsgfVxuLmhvbWUtaW1hZ2VfX2JyYW5kLmFwcGVhciB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7IH1cbi5ob21lLWltYWdlX19icmFuZC5hcHBlYXIgI2JyYW5kLWNpcmNsZSB7IG9wYWNpdHk6IDAuNzU7IHRyYW5zaXRpb246IGFsbCAzMDBtczsgdHJhbnNpdGlvbi1kZWxheTogMzAwbXM7IHZpc2liaWxpdHk6IHZpc2libGU7IH1cbmJvZHlbZGF0YS10ZW1wbGF0ZT1cImhvbWVwYWdlXCJdIC5ob21lLWltYWdlX19icmFuZCB7IGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zaXRlX19mb290ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjYzlhZjg2OyBkaXNwbGF5OiBibG9jazsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uZm9vdGVyX19sZWdhbC1pbmZvIHsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE2cHg7IGZvbnQtc2l6ZTogMXJlbTsgbGluZS1oZWlnaHQ6IDI0cHg7IGxpbmUtaGVpZ2h0OiAxLjVyZW07IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbi5mb290ZXJfX2xlZ2FsLWluZm8gYSB7IGNvbG9yOiBibGFjazsgfVxuXG4uZm9vdGVyX19zb2NpYWwtbGlua3MgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjogMmVtIDA7IH1cbi5mb290ZXJfX3NvY2lhbC1saW5rcyBhIHsgbWFyZ2luOiAxZW07IHBhZGRpbmc6IDEwcHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5mb290ZXJfX2xlZ2FsLWluZm8geyBmbG9hdDogbGVmdDsgfVxuICAuZm9vdGVyX19zb2NpYWwtbGlua3MgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbjogMDsgfVxuICAuZm9vdGVyX19zb2NpYWwtbGlua3MgYSB7IG1hcmdpbjogMDsgZmxvYXQ6IGxlZnQ7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbi8qKiBQZXIgYXZlcmUgdW5vIHN0aWNreSBmb290ZXIgYmFzdGEgaW5jbHVkZXJlIGxlIGNsYXNzaSAucGFnZV9fd3JhcC0tc3RpY2t5LWZvb3RlciBlIC5zaXRlX19mb290ZXItLXN0aWNreS1mb290ZXIuIExhIHBhZ2luYSBkZXZlIGF2ZXJlciBxdWVzdGkgMiBlbGVtZW50aSByYWRpY2UuICovXG5odG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyBtYXJnaW46IDA7IH1cblxuaHRtbC5uby1hcHBsZWlvcyBib2R5IHsgZGlzcGxheTogZmxleDsgbWluLWhlaWdodDogMTAwdmg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbmh0bWwubm8tYXBwbGVpb3MgLnBhZ2VfX3dyYXAtLXN0aWNreS1mb290ZXIgeyBmbGV4OiAxIDAgYXV0bzsgfVxuaHRtbC5uby1hcHBsZWlvcyAuc2l0ZV9fZm9vdGVyIHsgZmxleDogbm9uZTsgfVxuXG5odG1sLmFwcGxlaW9zIC5wYWdlX193cmFwLS1zdGlja3ktZm9vdGVyIHsgbWluLWhlaWdodDogMTAwJTsgbWFyZ2luLWJvdHRvbTogLTY1cHg7IG1hcmdpbi1ib3R0b206IC00LjA2MjVyZW07IH1cbmh0bWwuYXBwbGVpb3MgLnBhZ2VfX3dyYXAtLXN0aWNreS1mb290ZXI6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBkaXNwbGF5OiBibG9jazsgfVxuaHRtbC5hcHBsZWlvcyAuc2l0ZV9fZm9vdGVyLS1zdGlja3ktZm9vdGVyLCBodG1sLmFwcGxlaW9zIC5wYWdlX193cmFwLS1zdGlja3ktZm9vdGVyOmFmdGVyIHsgbWluLWhlaWdodDogNjVweDsgbWluLWhlaWdodDogNC4wNjI1cmVtOyB9XG5cbi5sb2FkZXIgeyBwb3NpdGlvbjogZml4ZWQ7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IHRvcDogMDsgbGVmdDogMDsgYmFja2dyb3VuZDogI2M5YWY4Njsgb3BhY2l0eTogMTsgei1pbmRleDogMTAwMDsgZGlzcGxheTogdGFibGU7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ubG9hZGVyX19zcGlubmVyIHsgZGlzcGxheTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuLmxvYWRlcl9fc3Bpbm5lciBpbWcgeyB3aWR0aDogMjAwcHg7IGhlaWdodDogYXV0bzsgfVxuXG4uY29ycmVsYXRpIHsgd2lkdGg6IDEwMCU7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tbGVmdDogMDsgbWFyZ2luLXJpZ2h0OiAwOyBwYWRkaW5nLWJvdHRvbTogNGVtOyB9XG5cbi5jb3JyZWxhdGlfX2hlYWRlciB7IGZvbnQtc2l6ZTogMjRweDsgZm9udC1zaXplOiAxLjVyZW07IGNvbG9yOiAjYWMxNjJjOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M5YWY4NjsgcGFkZGluZy1ib3R0b206IDAuNmVtOyBmb250LXdlaWdodDogMzAwOyB9XG5cbi5jb3JyZWxhdGktYmxvY2sgeyB3aWR0aDogMTAwJTsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1sZWZ0OiAwOyBtYXJnaW4tcmlnaHQ6IDA7IG1hcmdpbi1ib3R0b206IDJlbTsgfVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5jb3JyZWxhdGktYmxvY2sgeyB3aWR0aDogMjIuNTgwNjUlOyBmbG9hdDogbGVmdDsgbWFyZ2luLWxlZnQ6IDMuMjI1ODElOyB9XG4gIC5jb3JyZWxhdGktYmxvY2s6Zmlyc3Qtb2YtdHlwZSB7IG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5jb3JyZWxhdGktYmxvY2s6bnRoLW9mLXR5cGUoNCkgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5jb3JyZWxhdGktYmxvY2tfX2ltYWdlIHsgd2lkdGg6IDUwJTsgZmxvYXQ6IGxlZnQ7IGJhY2tncm91bmQtc2l6ZTogY292ZXI7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgbWFyZ2luLXRvcDogMDsgfVxuLmNvcnJlbGF0aS1ibG9ja19faW1hZ2U6YmVmb3JlIHsgY29udGVudDogXCJcIjsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctdG9wOiAxMDAlOyB9XG4uY29ycmVsYXRpLWJsb2NrX19pbWFnZSAuc3F1YXJlLWNvbnRlbnQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgYm90dG9tOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgfVxuLmNvcnJlbGF0aS1ibG9ja19faW1hZ2UgLnNxdWFyZS1jb250ZW50IGRpdiB7IGRpc3BsYXk6IHRhYmxlOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgLmNvcnJlbGF0aS1ibG9ja19faW1hZ2UgeyB3aWR0aDogMTAwJTsgfSB9XG5cbi5jb3JyZWxhdGktYmxvY2tfX3RpdGxlIHsgd2lkdGg6IDUwJTsgZmxvYXQ6IHJpZ2h0OyBmb250LXdlaWdodDogMzAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IG1hcmdpbi10b3A6IDA7IH1cbi5jb3JyZWxhdGktYmxvY2tfX3RpdGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXCI7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLXRvcDogMTAwJTsgfVxuLmNvcnJlbGF0aS1ibG9ja19fdGl0bGUgLnNxdWFyZS1jb250ZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IH1cbi5jb3JyZWxhdGktYmxvY2tfX3RpdGxlIC5zcXVhcmUtY29udGVudCBkaXYgeyBkaXNwbGF5OiB0YWJsZTsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfVxuLmNvcnJlbGF0aS1ibG9ja19fdGl0bGUgLnNxdWFyZS1jb250ZW50IHNwYW4geyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHBhZGRpbmc6IDAgMC41ZW07IGZvbnQtc2l6ZTogMjJweDsgZm9udC1zaXplOiAxLjM3NXJlbTsgfVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5jb3JyZWxhdGktYmxvY2tfX3RpdGxlIHsgd2lkdGg6IDEwMCU7IGZsb2F0OiBub25lOyB9IH1cblxuLyogU2xpZGVyICovXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdCB7IGJhY2tncm91bmQ6ICNmZmYgdXJsKFwiLi9hamF4LWxvYWRlci5naWZcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7IH1cblxuLyogSWNvbnMgKi9cbi8qIEFycm93cyAqL1xuLnNsaWNrLXByZXYsIC5zbGljay1uZXh0IHsgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAyMHB4OyB3aWR0aDogMjBweDsgbGluZS1oZWlnaHQ6IDBweDsgZm9udC1zaXplOiAwcHg7IGN1cnNvcjogcG9pbnRlcjsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiB0cmFuc3BhcmVudDsgdG9wOiA1MCU7IG1hcmdpbi10b3A6IC0xMHB4XFw5OyAvKmx0ZSBJRSA4Ki8gLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTsgcGFkZGluZzogMDsgYm9yZGVyOiBub25lOyBvdXRsaW5lOiBub25lOyB9XG4uc2xpY2stcHJldjpob3ZlciwgLnNsaWNrLXByZXY6Zm9jdXMsIC5zbGljay1uZXh0OmhvdmVyLCAuc2xpY2stbmV4dDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbi5zbGljay1wcmV2OmhvdmVyOmJlZm9yZSwgLnNsaWNrLXByZXY6Zm9jdXM6YmVmb3JlLCAuc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUsIC5zbGljay1uZXh0OmZvY3VzOmJlZm9yZSB7IG9wYWNpdHk6IDE7IH1cbi5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSwgLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHsgb3BhY2l0eTogMC4yNTsgfVxuXG4uc2xpY2stcHJldjpiZWZvcmUsIC5zbGljay1uZXh0OmJlZm9yZSB7IGZvbnQtZmFtaWx5OiBcIkNyaW1zb24gVGV4dFwiLCBzZXJpZjsgZm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdodDogMTsgY29sb3I6IHdoaXRlOyBvcGFjaXR5OiAxOyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4uc2xpY2stcHJldiB7IGxlZnQ6IC0yNXB4OyB9XG5bZGlyPVwicnRsXCJdIC5zbGljay1wcmV2IHsgbGVmdDogYXV0bzsgcmlnaHQ6IC0yNXB4OyB9XG4uc2xpY2stcHJldjpiZWZvcmUgeyBjb250ZW50OiBcIuKGkFwiOyB9XG5bZGlyPVwicnRsXCJdIC5zbGljay1wcmV2OmJlZm9yZSB7IGNvbnRlbnQ6IFwi4oaSXCI7IH1cblxuLnNsaWNrLW5leHQgeyByaWdodDogLTI1cHg7IH1cbltkaXI9XCJydGxcIl0gLnNsaWNrLW5leHQgeyBsZWZ0OiAtMjVweDsgcmlnaHQ6IGF1dG87IH1cbi5zbGljay1uZXh0OmJlZm9yZSB7IGNvbnRlbnQ6IFwi4oaSXCI7IH1cbltkaXI9XCJydGxcIl0gLnNsaWNrLW5leHQ6YmVmb3JlIHsgY29udGVudDogXCLihpBcIjsgfVxuXG4vKiBEb3RzICovXG4uc2xpY2stc2xpZGVyIHsgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4uc2xpY2stZG90cyB7IG1hcmdpbi10b3A6IDA7IGJvdHRvbTogLTQ1cHg7IGxpc3Qtc3R5bGU6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDA7IHdpZHRoOiAxMDAlOyB9XG4uc2xpY2stZG90cyBsaSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBoZWlnaHQ6IDIwcHg7IHdpZHRoOiAyMHB4OyBtYXJnaW46IDAgNXB4OyBwYWRkaW5nOiAwOyBjdXJzb3I6IHBvaW50ZXI7IH1cbi5zbGljay1kb3RzIGxpIGJ1dHRvbiB7IGJvcmRlcjogMDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDIwcHg7IHdpZHRoOiAyMHB4OyBvdXRsaW5lOiBub25lOyBsaW5lLWhlaWdodDogMHB4OyBmb250LXNpemU6IDBweDsgY29sb3I6IHRyYW5zcGFyZW50OyBwYWRkaW5nOiA1cHg7IGN1cnNvcjogcG9pbnRlcjsgfVxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLCAuc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXI6YmVmb3JlLCAuc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXM6YmVmb3JlIHsgb3BhY2l0eTogMTsgfVxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmJlZm9yZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1cHg7IHRvcDogMC4zMTI1cmVtOyBsZWZ0OiAwOyBjb250ZW50OiBcIuKAolwiOyB3aWR0aDogMTVweDsgd2lkdGg6IDAuOTM3NXJlbTsgaGVpZ2h0OiAxNXB4OyBoZWlnaHQ6IDAuOTM3NXJlbTsgYm9yZGVyLXJhZGl1czogMTAwJTsgZm9udC1mYW1pbHk6IFwiQ3JpbXNvbiBUZXh0XCIsIHNlcmlmOyBmb250LXNpemU6IDZweDsgbGluZS1oZWlnaHQ6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICNhYzE2MmM7IGJhY2tncm91bmQ6ICNhYzE2MmM7IG9wYWNpdHk6IDAuMjU7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG4uc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7IGNvbG9yOiAjYWMxNjJjOyBvcGFjaXR5OiAxOyB9XG5cbi5zbGljay1zbGlkZXIgeyBoZWlnaHQ6IGF1dG87IH1cbi5zbGljay1zbGlkZXIgaW1nIHsgd2lkdGg6IDEwMCU7IH1cblxuLnNpbmdsZS1zbGlkZXNob3dfX2NhcHRpb24geyBkaXNwbGF5OiBub25lOyB9XG5cbiN3cGFkbWluYmFyIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cblxuIiwiLyohXG4gICAgVGhlbWUgTmFtZTogSGF2YW5hIEZvb2RcbiAgICBBdXRob3I6IFRhZGFvIFN0dWRpb1xuICAgIEF1dGhvciBVUkk6IGh0dHA6Ly90YWRhb3N0dWRpby5jb20vXG4gICAgRGVzY3JpcHRpb246IFRlbWEgUkVTVCBSaXN0b3JhbnRlIEhhdmFuYSBGb29kXG4qL1xuLy8gRGlwZW5kZW56ZVxuQGltcG9ydFxuJy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvY29tcGFzcy1icmVha3BvaW50L3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQnLFxuJy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3knLFxuJy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2snO1xuXG4vLyBVdGlsaXRpZXMgKHJpY29yZGFyc2kgZGkgY29waWFyZSBlIHJpbm9taW5hcmUgaSBib3dlcl9jb21wb25lbnRzIGNoZSBub24gaGFubm8gZXN0ZW5zaW9uZSBzY3NzKVxuQGltcG9ydFxuJ3V0aWxzL2ZvbnRzJyxcbid1dGlscy92YXJpYWJsZXMnLFxuJ3V0aWxzL21peGlucycsXG4ndXRpbHMvYW5pbWF0ZScsXG4ndXRpbHMvbm9ybWFsaXplJzsgLy8gYm93ZXJcblxuXG4vLyBMYXlvdXRcbkBpbXBvcnRcbidsYXlvdXQvYmFzZScsXG4vLydsYXlvdXQvaGVhZGVyJyxcbi8vJ2xheW91dC9mb290ZXInLFxuJ2xheW91dC9zaW5nbGUnLFxuJ2xheW91dC9hcmNoaXZlJyxcbidsYXlvdXQvdGVtcGxhdGUnO1xuXG4vLyBDb21wb25lbnRpXG5AaW1wb3J0XG4nY29tcG9uZW50cy9oZWFkZXInLFxuJ2NvbXBvbmVudHMvaGVhZGVyLWxvZ28nLFxuJ2NvbXBvbmVudHMvdGFkYW8tbW9kYWxzJyxcbidjb21wb25lbnRzL3BhcmFsbGF4Jyxcbidjb21wb25lbnRzL21lbnUnLFxuJ2NvbXBvbmVudHMvY2Y3Jyxcbi8vICdjb21wb25lbnRzL3NxdWFyZS1ncmlkJyxcbidjb21wb25lbnRzL2NvbnRhY3QtYnV0dG9uJyxcbidjb21wb25lbnRzL2hvbWUtZ3JpZCcsXG4nY29tcG9uZW50cy9ob21lLWltYWdlJyxcbidjb21wb25lbnRzL2Zvb3RlcicsXG4nY29tcG9uZW50cy9zdGlja3ktZm9vdGVyJyxcbidjb21wb25lbnRzL2xvYWRlcicsXG4nY29tcG9uZW50cy9jb3JyZWxhdGknLFxuJ2NvbXBvbmVudHMvZ2FsbGVyeSc7XG5cbiN3cGFkbWluYmFye1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zbGljay12ZXJ0aWNhbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgTGlnaHQnKSwgbG9jYWwoJ0ZpcmFTYW5zLUxpZ2h0JyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvVlRCbnJLNDJFaU9CbmNWeVFYWjdqNi1qMlUwbG1sdVA5UldsU3l0bTNoby53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7XG59XG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgTGlnaHQnKSwgbG9jYWwoJ0ZpcmFTYW5zLUxpZ2h0JyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvVlRCbnJLNDJFaU9CbmNWeVFYWjdqNVg1Zi05bzF2Z1AyRVh3ZmpnbDdBWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7XG59XG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgTGlnaHQnKSwgbG9jYWwoJ0ZpcmFTYW5zLUxpZ2h0JyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvVlRCbnJLNDJFaU9CbmNWeVFYWjdqNmFSb2JrQXd2M3Z4dzNqTWhWRU5HQS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgTGlnaHQnKSwgbG9jYWwoJ0ZpcmFTYW5zLUxpZ2h0JyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvVlRCbnJLNDJFaU9CbmNWeVFYWjdqejBMVy00M2FNRXpJTzZYVVRMamFkOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiBsb2NhbCgnRmlyYSBTYW5zIExpZ2h0JyksIGxvY2FsKCdGaXJhU2Fucy1MaWdodCcpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L1ZUQm5ySzQyRWlPQm5jVnlRWFo3ai1nZG0wTFpkanFyNS1vYXlYU09lZmcud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTUsIFUrRTBGRiwgVStFRkZELCBVK0YwMDA7XG59XG4vKiBjeXJpbGxpYy1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiBsb2NhbCgnRmlyYSBTYW5zJyksIGxvY2FsKCdGaXJhU2Fucy1SZWd1bGFyJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvZzVTZl8xMzRjQXRUS2tObklqSWtYeEp0bktJVHBwT0lfSXZjWFhETnJzYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7XG59XG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMnKSwgbG9jYWwoJ0ZpcmFTYW5zLVJlZ3VsYXInKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9UM2FiVU9nNFlnZmpPYnkybC1RdWRoSnRuS0lUcHBPSV9JdmNYWEROcnNjLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjtcbn1cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogbG9jYWwoJ0ZpcmEgU2FucycpLCBsb2NhbCgnRmlyYVNhbnMtUmVndWxhcicpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1LzVqQU1HTXNCWFM2eFVZRXl0R2NaZEJKdG5LSVRwcE9JX0l2Y1hYRE5yc2Mud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7XG59XG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiBsb2NhbCgnRmlyYSBTYW5zJyksIGxvY2FsKCdGaXJhU2Fucy1SZWd1bGFyJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvTUlQV1ZXSV9tWV9RRVJ4Y01WUEV3Qkp0bktJVHBwT0lfSXZjWFhETnJzYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiBsb2NhbCgnRmlyYSBTYW5zJyksIGxvY2FsKCdGaXJhU2Fucy1SZWd1bGFyJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvRWpzcnpEa1FVUUNEd3NCdExwY1ZRVnRYUmE4VFZ3VElDZ2lybkpobVZKdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNSwgVStFMEZGLCBVK0VGRkQsIFUrRjAwMDtcbn1cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgQm9sZCcpLCBsb2NhbCgnRmlyYVNhbnMtQm9sZCcpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L0R1Z1BkU2xqbU9Ub2NaT1IyQ0l0T3EtajJVMGxtbHVQOVJXbFN5dG0zaG8ud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGO1xufVxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiBsb2NhbCgnRmlyYSBTYW5zIEJvbGQnKSwgbG9jYWwoJ0ZpcmFTYW5zLUJvbGQnKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9EdWdQZFNsam1PVG9jWk9SMkNJdE9wWDVmLTlvMXZnUDJFWHdmamdsN0FZLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjtcbn1cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogbG9jYWwoJ0ZpcmEgU2FucyBCb2xkJyksIGxvY2FsKCdGaXJhU2Fucy1Cb2xkJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvRHVnUGRTbGptT1RvY1pPUjJDSXRPcWFSb2JrQXd2M3Z4dzNqTWhWRU5HQS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgQm9sZCcpLCBsb2NhbCgnRmlyYVNhbnMtQm9sZCcpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L0R1Z1BkU2xqbU9Ub2NaT1IyQ0l0T2owTFctNDNhTUV6SU82WFVUTGphZDgud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjtcbn1cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogbG9jYWwoJ0ZpcmEgU2FucyBCb2xkJyksIGxvY2FsKCdGaXJhU2Fucy1Cb2xkJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvRHVnUGRTbGptT1RvY1pPUjJDSXRPdWdkbTBMWmRqcXI1LW9heVhTT2VmZy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNSwgVStFMEZGLCBVK0VGRkQsIFUrRjAwMDtcbn1cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgTGlnaHQgSXRhbGljJyksIGxvY2FsKCdGaXJhU2Fucy1MaWdodEl0YWxpYycpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1LzZzMFlDQTlvQ1RGNmhNNjBZTS1xVFJnVlRoTHM4WTdFVEp6RENZRkNTTEUud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGO1xufVxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiBsb2NhbCgnRmlyYSBTYW5zIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnRmlyYVNhbnMtTGlnaHRJdGFsaWMnKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS82czBZQ0E5b0NURjZoTTYwWU0tcVRaaU1haXN2YVVWVXNZeVZ6T21uZGVrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjtcbn1cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogbG9jYWwoJ0ZpcmEgU2FucyBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ0ZpcmFTYW5zLUxpZ2h0SXRhbGljJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvNnMwWUNBOW9DVEY2aE02MFlNLXFUZjE0dmxjZnlQWWxBY1F5MlVmRFJtNC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgTGlnaHQgSXRhbGljJyksIGxvY2FsKCdGaXJhU2Fucy1MaWdodEl0YWxpYycpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1LzZzMFlDQTlvQ1RGNmhNNjBZTS1xVGF2eVBYZG5lZUdkMjZtOUVtRlNTV2cud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjtcbn1cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogbG9jYWwoJ0ZpcmEgU2FucyBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ0ZpcmFTYW5zLUxpZ2h0SXRhbGljJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvNnMwWUNBOW9DVEY2aE02MFlNLXFUVW8ybFRNZVdBX2ttSXlXcmtOQ3dQYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNSwgVStFMEZGLCBVK0VGRkQsIFUrRjAwMDtcbn1cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgSXRhbGljJyksIGxvY2FsKCdGaXJhU2Fucy1JdGFsaWMnKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9RVVJBbUZ6NGI4MGczMjQtb0YtVWp6VE9RX01xSlZ3a0tzVW4wd0t6YzJJLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5Rjtcbn1cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogbG9jYWwoJ0ZpcmEgU2FucyBJdGFsaWMnKSwgbG9jYWwoJ0ZpcmFTYW5zLUl0YWxpYycpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1L1FVUkFtRno0YjgwZzMyNC1vRi1VanpVal9jbnZXSXV1Qk1WZ2JYMDk4TXcud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2O1xufVxuLyogZ3JlZWsgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiBsb2NhbCgnRmlyYSBTYW5zIEl0YWxpYycpLCBsb2NhbCgnRmlyYVNhbnMtSXRhbGljJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvUVVSQW1GejRiODBnMzI0LW9GLVVqMm9fc1VKOHVPNFlMV1JJblMyMlQzWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgSXRhbGljJyksIGxvY2FsKCdGaXJhU2Fucy1JdGFsaWMnKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9RVVJBbUZ6NGI4MGczMjQtb0YtVWp5WUUwLUFxSjNuZkluVFRpRFhEalU0LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7XG59XG4vKiBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgSXRhbGljJyksIGxvY2FsKCdGaXJhU2Fucy1JdGFsaWMnKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS9RVVJBbUZ6NGI4MGczMjQtb0YtVWo0NFA1SUNveDhLcTNMTFVOTXlsR080LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1LCBVK0UwRkYsIFUrRUZGRCwgVStGMDAwO1xufVxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogbG9jYWwoJ0ZpcmEgU2FucyBCb2xkIEl0YWxpYycpLCBsb2NhbCgnRmlyYVNhbnMtQm9sZEl0YWxpYycpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1LzZzMFlDQTlvQ1RGNmhNNjBZTS1xVFo2aUloX0Z2bFVIUXdFRDlZdDVLYncud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGO1xufVxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ZpcmEgU2Fucyc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiBsb2NhbCgnRmlyYSBTYW5zIEJvbGQgSXRhbGljJyksIGxvY2FsKCdGaXJhU2Fucy1Cb2xkSXRhbGljJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvZmlyYXNhbnMvdjUvNnMwWUNBOW9DVEY2aE02MFlNLXFUU192Wm1laUNNbm9XTk45ckhCWWFUYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7XG59XG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYSBTYW5zJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IGxvY2FsKCdGaXJhIFNhbnMgQm9sZCBJdGFsaWMnKSwgbG9jYWwoJ0ZpcmFTYW5zLUJvbGRJdGFsaWMnKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9maXJhc2Fucy92NS82czBZQ0E5b0NURjZoTTYwWU0tcVRRYWxRb2NCLV9fcERWR2hGM3VTMktzLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGO1xufVxuLyogbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogbG9jYWwoJ0ZpcmEgU2FucyBCb2xkIEl0YWxpYycpLCBsb2NhbCgnRmlyYVNhbnMtQm9sZEl0YWxpYycpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1LzZzMFlDQTlvQ1RGNmhNNjBZTS1xVGVqa0RkdmhJSUZqX1lNZGdxcG5TQjAud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjtcbn1cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogbG9jYWwoJ0ZpcmEgU2FucyBCb2xkIEl0YWxpYycpLCBsb2NhbCgnRmlyYVNhbnMtQm9sZEl0YWxpYycpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ZpcmFzYW5zL3Y1LzZzMFlDQTlvQ1RGNmhNNjBZTS1xVFlsSVp1LUhEcG1ESVpNaWdtc3JvYzQud29mZjIpIGZvcm1hdCgnd29mZjInKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTUsIFUrRTBGRiwgVStFRkZELCBVK0YwMDA7XG59XG4iLCIvLyBGdW56aW9uZSB1dGlsaXp6YXRhIGRhIHJlbVxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICAgIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuLy8gTWl4aW4gcGVyIGNvbnZlcnNpb25lIHVuaXTDoFxuQG1peGluIHJlbSgkcHJvcGVydHksICR2YWx1ZXMuLi4pIHtcbiAgICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XG4gICAgJHB4VmFsdWVzOiAnJztcbiAgICAkcmVtVmFsdWVzOiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XG4gICAgICAgICR2YWx1ZTogc3RyaXAtdW5pdChudGgoJHZhbHVlcywgJGkpKTtcbiAgICAgICAgJHJlbVZhbHVlczogI3skcmVtVmFsdWVzICsgJHZhbHVlLzE2fXJlbTtcblxuICAgICAgICBAaWYgJGkgPCAkbWF4IHtcbiAgICAgICAgICAgICRyZW1WYWx1ZXM6ICN7JHJlbVZhbHVlcyArIFwiIFwifTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XG4gICAgICAgICR2YWx1ZTogc3RyaXAtdW5pdChudGgoJHZhbHVlcywgJGkpKTtcbiAgICAgICAgJHB4VmFsdWVzOiAjeyRweFZhbHVlcyArICR2YWx1ZX1weDtcblxuICAgICAgICBAaWYgJGkgPCAkbWF4IHtcbiAgICAgICAgICAgICRweFZhbHVlczogI3skcHhWYWx1ZXMgKyBcIiBcIn07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRwcm9wZXJ0eX06ICRweFZhbHVlcztcbiAgICAjeyRwcm9wZXJ0eX06ICRyZW1WYWx1ZXM7XG59XG5cbi8vIE1peGluIHBlciB0aXBvZ3JhZmlhIHZlbG9jZVxuQG1peGluIHR5cG8oJGZvbnRzaXplLCAkbGluZWhlaWdodCwgJHdlaWdodDogbm9ybWFsKXtcbiAgICBAaW5jbHVkZSByZW0oZm9udC1zaXplLCAkZm9udHNpemUpO1xuICAgIEBpbmNsdWRlIHJlbShsaW5lLWhlaWdodCwgJGxpbmVoZWlnaHQpO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xufVxuXG4vLyBNaXhpbiBjbGVhcmZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xlYXI6IGJvdGg7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG59XG59XG5cbi8vIE1peGluIHBlciBjZW50cmFyZSBvcml6em9udGFsbWVudGUgZSB2ZXJpY2FsbWVudGVcbi8vIChpbCBnZW5pdG9yZSBkZXZlIGF2ZXJlIHBvc2l0aW9uOiByZWxhdGl2ZSBlIGFsdGV6emErbGFyZ2hlenphXG4vLyBmaXNzZSlcbkBtaXhpbiBjZW50ZXJlcigkaG9yaXpvbnRhbDogdHJ1ZSwgJHZlcnRpY2FsOiB0cnVlKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgQGlmICgkaG9yaXpvbnRhbCBhbmQgJHZlcnRpY2FsKSB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIH0gQGVsc2UgaWYgKCRob3Jpem9udGFsKSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbiAgICAgIH0gQGVsc2UgaWYgKCR2ZXJ0aWNhbCkge1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgfVxufVxuXG5AbWl4aW4gcmVzZXQtbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGxpe1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG4vLyBNaXhpbnMgcGVyIFBhcmFsbGF4IFNjcm9sbFxuLy8gTWFnaWMgcGFyYWxsYXggbWl4aW5zXG4vLyBCaXNvZ25hIGltcG9ydGFyZSBwYXJhbGxheC1pbml0IGFsbCdpbmZ1b3JpIGRpIHF1YWxzaWFzaSBlbGVtZW50b1xuLy8gZSBkYXJlIGFkIG9nbmkgZWxlbWVudG8gaW4gcGFyYWxsYXNzZSBpbCBtaXhpbiBwYXJhbGxheChsaXZlbGxvKVxuLy8gZG92ZSBsaXZlbGxvIGRldidlc3NlcmUgdW4gbnVtZXJvIGRlY2ltYWxlIHRyYSAtMSBlIDFcbi8vXG4vLyBWYXJpYWJpbGkgZGkgZGVmYXVsdFxuJHBhcmFsbGF4LXBlcnNwZWN0aXZlIDogMSAhZGVmYXVsdDtcbiRwYXJhbGxheC1lbGVtZW50ICAgICA6IFwiYm9keVwiICFkZWZhdWx0O1xuJHBhcmFsbGF4LWlvcyAgICAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIHBhcmFsbGF4LWluaXQoJHBlcnNwZWN0aXZlOiBudWxsLCAkZWxlbWVudDogbnVsbCwgJHBhcmFsbGF4LWlvczogbnVsbCkge1xuXG4gICRwZXJzcGVjdGl2ZTogaWYoJHBlcnNwZWN0aXZlICE9IG51bGwsICRwZXJzcGVjdGl2ZSwgdG9vbGtpdC1nZXQoJ3BhcmFsbGF4IHBlcnNwZWN0aXZlJykpO1xuICAkZWxlbWVudDogaWYoJGVsZW1lbnQgIT0gbnVsbCwgJGVsZW1lbnQsIHRvb2xraXQtZ2V0KCdwYXJhbGxheCBlbGVtZW50JykpO1xuICAkcGFyYWxsYXgtaW9zOiBpZigkcGFyYWxsYXgtaW9zICE9IG51bGwsICRwYXJhbGxheC1pb3MsIHRvb2xraXQtZ2V0KCdwYXJhbGxheCBpb3MnKSk7XG5cbiAgQGlmICRlbGVtZW50ID09ICdib2R5JyB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgaHRtbCwgYm9keSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgYm9keSB7XG4gICAgICAgIEBpbmNsdWRlIHBhcmFsbGF4LWluaXQtY29yZSgkcGVyc3BlY3RpdmUsICRwYXJhbGxheC1pb3MpO1xuICAgIH1cbn1cbn1cbkBlbHNlIHtcbiAgICBAaWYgJGVsZW1lbnQgPT0gdGhpcyB7XG4gICAgICBAaW5jbHVkZSBwYXJhbGxheC1pbml0LWNvcmUoJHBlcnNwZWN0aXZlLCAkcGFyYWxsYXgtaW9zKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgICBAYXQtcm9vdCAjeyRlbGVtZW50fSB7XG4gICAgICAgIEBpbmNsdWRlIHBhcmFsbGF4LWluaXQtY29yZSgkcGVyc3BlY3RpdmUsICRwYXJhbGxheC1pb3MpO1xuICAgIH1cbn1cbn1cbn1cblxuQG1peGluIHBhcmFsbGF4LWluaXQtY29yZSgkcGVyc3BlY3RpdmU6IG51bGwsICRwYXJhbGxheC1pb3M6IG51bGwpIHtcbiAgJHBlcnNwZWN0aXZlOiBpZigkcGVyc3BlY3RpdmUgIT0gbnVsbCwgJHBlcnNwZWN0aXZlLCB0b29sa2l0LWdldCgncGFyYWxsYXggcGVyc3BlY3RpdmUnKSk7XG4gICRwYXJhbGxheC1pb3M6IGlmKCRwYXJhbGxheC1pb3MgIT0gbnVsbCwgJHBhcmFsbGF4LWlvcywgdG9vbGtpdC1nZXQoJ3BhcmFsbGF4IGlvcycpKTtcblxuICBvdmVyZmxvdzogYXV0bztcbiAgQGlmIG1peGluLWV4aXN0cyhwZXJzcGVjdGl2ZSkge1xuICAgIEBpbmNsdWRlIHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSAqIDFweCk7XG59XG5AZWxzZSB7XG4gICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogJHBlcnNwZWN0aXZlICogMXB4O1xuICAgIHBlcnNwZWN0aXZlOiAkcGVyc3BlY3RpdmUgKiAxcHg7XG59XG4gIC8vIEFsbG93cyBmb3Igc21vb3RoIHNjcm9sbGluZyBidXQgZGlzYWJsZXMgcGFyYWxsYXggZWZmZWN0cy5cbiAgQGlmICRwYXJhbGxheC1pb3MgPT0gZmFsc2Uge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbiAgLy8gTWFrZSBzdXJlIDNEIHBlcnNwZWN0aXZlIGlzIHByZXNlcnZlZFxuICAmLCAmICoge1xuICAgIEBpZiBtaXhpbi1leGlzdHModHJhbnNmb3JtLXN0eWxlKSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tc3R5bGUocHJlc2VydmUtM2QpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIH1cbn1cbn1cblxuQG1peGluIHBhcmFsbGF4KCRkaXN0YW5jZTogbnVsbCwgJHBlcnNwZWN0aXZlOiBudWxsKSB7XG5cbiAgJGRpc3RhbmNlOiBpZigkZGlzdGFuY2UgIT0gbnVsbCwgJGRpc3RhbmNlLCB0b29sa2l0LWdldCgncGFyYWxsYXggZGlzdGFuY2UnKSk7XG4gICRwZXJzcGVjdGl2ZTogaWYoJHBlcnNwZWN0aXZlICE9IG51bGwsICRwZXJzcGVjdGl2ZSwgdG9vbGtpdC1nZXQoJ3BhcmFsbGF4IHBlcnNwZWN0aXZlJykpO1xuXG4gICR0cmFuc2Zvcm06IHRyYW5zbGF0ZVooJGRpc3RhbmNlICogJHBlcnNwZWN0aXZlICogMXB4KSBzY2FsZShhYnMoJGRpc3RhbmNlIC0gMSkpO1xuXG4gIEBpZiBtaXhpbi1leGlzdHModHJhbnNmb3JtKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFuc2Zvcm0pO1xufVxuQGVsc2Uge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xuICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybTtcbn1cblxuei1pbmRleDogJGRpc3RhbmNlICogMTAwO1xufVxuXG5cbi5oaWRkZW57XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8vIEdldCBhIHotaW5kZXggdmFsdWUgZnJvbSBhIGxheWVyIG5hbWVcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbGF5ZXIgLSBMYXllcidzIG5hbWVcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy8gQHJlcXVpcmUgJHotaW5kZXhlc1xuQGZ1bmN0aW9uIHooJGxheWVyKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkei1pbmRleGVzLCAkbGF5ZXIpO1xufVxuXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8qIVxuQW5pbWF0ZS5jc3MgLSBodHRwOi8vZGFuZWRlbi5tZS9hbmltYXRlXG5MaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgLSBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG5cbkNvcHlyaWdodCAoYykgMjAxMyBEYW5pZWwgRWRlblxuKi9cblxuLmFuaW1hdGVkIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLmFuaW1hdGVkLmluZmluaXRlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuXG4uYW5pbWF0ZWQuaGluZ2Uge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbi5mYWRlSW5MZWZ0IHtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbn1cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuLmZhZGVJblJpZ2h0IHtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG59XG5cblxuQGtleWZyYW1lcyBmYWRlWm9vbU91dCB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsMSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEsMS4xKTtcbiAgICB9XG59XG5cbi5mYWRlWm9vbU91dCB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVab29tT3V0O1xufVxuXG5cbkBrZXlmcmFtZXMgZmFkZVpvb21JbiB7XG5cbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLmZhZGVab29tSW4ge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlWm9vbUluO1xuICAgIGFuaW1hdGlvbi1kZWxheTogLjVzO1xufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xuICBsaW5lLWhlaWdodDogMS4yZW07XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kQnJlYWtwb2ludC1TZXR0aW5nczogKFxuICAnZGVmYXVsdCBtZWRpYSc6IGFsbCxcbiAgJ2RlZmF1bHQgZmVhdHVyZSc6IG1pbi13aWR0aCxcbiAgJ2RlZmF1bHQgcGFpcic6IHdpZHRoLFxuXG4gICdmb3JjZSBhbGwgbWVkaWEgdHlwZSc6IGZhbHNlLFxuICAndG8gZW1zJzogZmFsc2UsXG4gICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnOiB0cnVlLFxuXG4gICdubyBxdWVyaWVzJzogZmFsc2UsXG4gICdubyBxdWVyeSBmYWxsYmFja3MnOiBmYWxzZSxcblxuICAnYmFzZSBmb250IHNpemUnOiAxNnB4LFxuXG4gICdsZWdhY3kgc3ludGF4JzogZmFsc2Vcbik7XG5cbiRicmVha3BvaW50OiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJicmVha3BvaW50L3NldHRpbmdzXCI7XG5AaW1wb3J0ICdicmVha3BvaW50L2NvbnRleHQnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9oZWxwZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcGFyc2Vycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L25vLXF1ZXJ5JztcblxuQGltcG9ydCAnYnJlYWtwb2ludC9yZXNwb25kLXRvJztcblxuQGltcG9ydCBcImJyZWFrcG9pbnQvbGVnYWN5LXNldHRpbmdzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZztcblxuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpICE9IGZhbHNlIG9yIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZihicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIiRwYWdlTWFyZ2luOiAxNTtcblxuXG4uYnJlYWtwb2ludC1jb250YWluZXJ7XG4gICAgLy8gUmVzcG9uc2l2ZSBNYWdpY1xuICAgIEBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlbSh3aWR0aCAsICRzaXplIC0gKCRwYWdlTWFyZ2luKjIpKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vIERlZmF1bHRzIHBlciBpbCBCb2R5XG5ib2R5e1xuICAgIGZvbnQtZmFtaWx5OiAkc2FucztcbiAgICBAaW5jbHVkZSByZW0oZm9udC1zaXplLCAxNik7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xufVxuXG5cbi8vIENvbnRhaW5lciByZXNwb25zaXZlIGRlbGxlIHBhZ2luZSAoc2NhbGEgY29uIGkgYnJlYWtwb2ludClcbi5icmVha3BvaW50LXNjYWxpbmd7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgLy8gUmVzcG9uc2l2ZSBNYWdpY1xuICAgIEBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlbSh3aWR0aCwgJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKTtcbiAgICAgICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAxKSB7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8gUmVzZXQgZGVpIGxpbmtcbi8vIG5vcm1hbGkgKHRpcG8gbWVuw7kpXG5hW2hyZWZde1xuICAgIC8vY29sb3I6ICR0ZXN0bztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRpbWluZztcbiAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJGhvdmVyLWxpbmstY29sb3I7XG4gICAgfVxufVxuLy8gbGluayBpbnRlcm5pIGFnbGkgYXJ0aWNvbGlcbi5jb250ZW50IGFbaHJlZl06bm90KFtjbGFzc10pIHtcbiAgICBjb2xvcjogJGhvdmVyLWxpbmstY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5cbi8vIENsYXNzaSB0YWJsZSBwZXIgY2VudHJhbWVudG8gdmVydGljYWxlXG4udGFibGV7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi50YWJsZV9fY2VsbHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cblxuLy8gQ2xhc3NlIHBlciByZXNldCBsaXN0YVxudWwucmVzZXQtbGlzdHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgPiBsaSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi5zaXRlX19jb250YWluZXIge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAvLyBSZXNwb25zaXZlIE1hZ2ljXG4gICAgQGVhY2ggJHNpemUgaW4gJGxpc3QtYnBvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuICAgICAgICAgICAgQGlmICRzaXplID09IG50aCgkbGlzdC1icG9pbnQsIDIpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zcXVhcmUtdGl0bGV7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xufVxuLnBhZ2V7XG4gICAgLy8gQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi5jb250ZW50e1xuICAgIGgzIHtcbiAgICAgICAgY29sb3I6ICRyb3Nzb0hhdmFuYTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRnaWFsbG9IYXZhbmE7XG4gICAgICAgIEBpbmNsdWRlIHJlbShmb250LXNpemUsIDI0KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuMmVtO1xuICAgIH1cbn1cblxuIiwiLy8vIFotaW5kZXhlcyBtYXAsIGdhdGhlcmluZyBhbGwgWiBsYXllcnMgb2YgdGhlIGFwcGxpY2F0aW9uXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age1N0cmluZ30ga2V5IC0gTGF5ZXIncyBuYW1lXG4vLy8gQHByb3Age051bWJlcn0gdmFsdWUgLSBaIHZhbHVlIG1hcHBlZCB0byB0aGUga2V5XG4kei1pbmRleGVzOiAoXG4gICAgJ21vZGFsJzogNTAwMCxcbiAgICAnZHJvcGRvd24nOiA0MDAwLFxuICAgICdkZWZhdWx0JzogMSxcbiAgICAnYmVsb3cnOiAtMSxcbiAgICApO1xuLy8gT2Zmc2V0IGxhdGVyYWxlIHBlciBsJ2hlYWRlclxuJG9mZnNldC1oZWFkZXI6IDA7XG5cbi8vIE51bWVybyBjb2xvbm5lXG4kbnVtZXJvLWNvbG9ubmU6IDY7XG5cbi8vIExpc3RhIGJyZWFrcG9pbnRzXG4kbGlzdC1icG9pbnQ6IChcbiAgICA0ODAsXG4gICAgNzY4LFxuICAgIDk2MCxcbiAgICAxMjAwLFxuICAgICk7XG5cbi8vIEluaXQgZGkgc3VzeVxuJHN1c3k6IChcbiAgICBjb2x1bW5zOiAkbnVtZXJvLWNvbG9ubmUsXG4gICAgZ3V0dGVyczogKCAxIC8gMyApLFxuICAgIGd1dHRlci1wb3NpdGlvbjogYmVmb3JlLFxuICAgIG1hdGg6IGZsdWlkLFxuICAgIG91dHB1dDogZmxvYXQsXG4gICAgKTtcblxuLy8gRm9udHNcbiRzZXJpZiA6ICdDcmltc29uIFRleHQnLCBzZXJpZjtcbiRzYW5zIDogJ0ZpcmEgU2FucycsIHNhbnMtc2VyaWY7XG5cbi8vIENvbG9yaVxuJHJvc3NvSGF2YW5hOiAjYWMxNjJjO1xuJGdpYWxsb0hhdmFuYTogI2M5YWY4NjtcbiR0ZXN0bzogYmxhY2s7XG5cbiRsaW5rLWNvbG9yOiB3aGl0ZTtcbiRob3Zlci1saW5rLWNvbG9yOiAkcm9zc29IYXZhbmE7XG5cbiRwcmltYXJpbzogJHJvc3NvSGF2YW5hO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFZhcmlhYmlsaSBIZWFkZXIgLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRoZWFkZXJIZWlnaHQ6IDY1O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVmFyaWFiaWxpIENhcmQgSG9tZXBhZ2UgLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kZ3JpZFNpemU6IDMxJTtcbiRndXR0ZXJTaXplOiAyLjY2JTtcbiRndXR0ZXJTaXplOiAzLjQ1JTtcbiRob3ZlclNwZWVkOiAzMDBtcztcbiRhbmltU3BlZWQ6IDMwMG1zO1xuJGFuaW1EZWxheTogNTAwbXM7XG5cbi8vIFRpbWluZyBhbmltYXppb25pXG4kdGltaW5nOiA1MDBtcyA7XG5cbiRiZy1jb2xvcnM6IChcbiAgICAxOiAjNTEyMzI5LFxuICAgIDI6ICM4NzllNmYsXG4gICAgMzogIzVlMzkxNyxcbiAgICA0OiAjYzlhZjg2LFxuICAgIDU6ICNhYzE2MmMsXG4gICAgNjogIzg5MzcxOSxcbiAgICA3OiAjZTlhZTE3LFxuICAgIDg6ICNiZGI2YTEsXG4gICAgOTogIzAxYTY0ZlxuICAgICk7XG4iLCIucGFnZS5zaW5nbGV7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgLy8gUmVzcG9uc2l2ZSBNYWdpY1xuICAgIEBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAzKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbihpc29sYXRlIDQgb2YgNiBhdCAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cbi5sZWZ0LWNvbHVtbntcbiAgICAvLyBSZXNwb25zaXZlIE1hZ2ljXG4gICAgQGVhY2ggJHNpemUgaW4gJGxpc3QtYnBvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuICAgICAgICAgICAgQGlmICRzaXplID09IG50aCgkbGlzdC1icG9pbnQsIDIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDIgb2YgOCBmaXJzdCk7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4uc2luZ2xlX190aXRsZXtcbiAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRiZy1jb2xvcnMsIDEpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICAuc3F1YXJlLWNvbnRlbnR7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgICBoMSwgc3BhbiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIEBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuICAgICAgICAgICAgICAgICAgICBAaWYgJHNpemUgPT0gbnRoKCRsaXN0LWJwb2ludCwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVtKGZvbnQtc2l6ZSwyOCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sLmFwcGxlaW9zICZ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVtKGZvbnQtc2l6ZSwyMik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICRzaXplID09IG50aCgkbGlzdC1icG9pbnQsIDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlbShmb250LXNpemUsMjcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5hcHBsZWlvcyAme1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlbShmb250LXNpemUsMjgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByZW0oZm9udC1zaXplLDM0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwuYXBwbGVpb3MgJntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSByZW0oZm9udC1zaXplLDM2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgJHNpemUgPT0gbnRoKCRsaXN0LWJwb2ludCwgNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVtKGZvbnQtc2l6ZSw0MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sLmFwcGxlaW9zICZ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVtKGZvbnQtc2l6ZSw2MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUmVzcG9uc2l2ZSBNYWdpY1xuICAgIEBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAyKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgLy9AaW5jbHVkZSBzcGFuKDIgb2YgOCBmaXJzdCk7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc3F1YXJlLWNvbnRlbnR7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAgYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc3F1YXJlLWNvbnRlbnQgZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zcXVhcmUtY29udGVudCBoMSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAzKSB7XG4gICAgICAgICAgICAvLyAgICAgQGluY2x1ZGUgc3BhbigxIG9mIDYpO1xuICAgICAgICAgICAgLy8gICAgIEBpbmNsdWRlIHByZSgxKTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNpbmdsZV9fY29udGVudHtcbiAgICBwYWRkaW5nLXRvcDogOGVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgLy8gUmVzcG9uc2l2ZSBNYWdpY1xuICAgIEBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAyKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtIDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDYgb2YgOCBsYXN0KTtcblxuICAgICAgICAgICAgICAgIGgxLGgyLGgzLGg0LGg1LGg2LHAge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDYgb2YgOCBmaXJzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQGlmICRzaXplID09IG50aCgkbGlzdC1icG9pbnQsIDMpIHtcbiAgICAgICAgICAgIC8vICAgICBAaW5jbHVkZSBzcGFuKDQgb2YgNiBhdCAzKTtcblxuICAgICAgICAgICAgLy8gICAgIGgxLGgyLGgzLGg0LGg1LGg2LHAge1xuICAgICAgICAgICAgLy8gICAgICAgICBAaW5jbHVkZSBzcGFuKDQgb2YgNiBmaXJzdCk7XG4gICAgICAgICAgICAvLyAgICAgfVxuXG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb25kaXZpZGlhbW97XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICBhIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5mYWNlYm9va3tcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNiNTk5OTtcbiAgICB9XG4gICAgLnR3aXR0ZXJ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NWFjZWU7XG4gICAgfVxuICAgIC5nb29nbGVwe1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQ0YjM5O1xuICAgIH1cbiAgICBsaXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgfVxuICAgIC8vIFJlc3BvbnNpdmUgTWFnaWNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkbGlzdC1icG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoKCRzaXplKygkb2Zmc2V0LWhlYWRlcioyKSkqMXB4LCRudW1lcm8tY29sb25uZSl7XG4gICAgICAgICAgICBAaWYgJHNpemUgPT0gbnRoKCRsaXN0LWJwb2ludCwgMikge1xuICAgICAgICAgICAgICAgIC5zaGFyZS10ZXh0e1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbnRlbnR7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC5hbGlnbnJpZ2h0LFxuICAgIC5hbGlnbmxlZnQsXG4gICAgLmFsaWdubm9uZSxcbiAgICAuYWxpZ25jZW50ZXJ7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMWVtIDA7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgLy8gUmVzcG9uc2l2ZSBNYWdpY1xuICAgIEBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAyKSB7XG4gICAgICAgICAgICAgICAgLmFsaWducmlnaHR7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTM1JTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2NSU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5hbGlnbmxlZnR7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICAgICAgICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5hbGlnbm5vbmUsIC5hbGlnbmNlbnRlcntcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMzUlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIHJlbSBTdXBwb3J0XG4vLyA9PT09PT09PT09PVxuXG4vLyByZW1cbi8vIC0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIG91dHB1dCBkaXJlY3RseS5cbi8vIC0gJHByb3AgIDogPGNzcyBwcm9wZXJ0eT5cbi8vIC0gJHZhbCAgIDogPGNzcyB2YWx1ZT5cbkBtaXhpbiBzdXN5LXJlbShcbiAgJHByb3AsXG4gICR2YWxcbikge1xuICAkX3JlcXM6IChcbiAgICB2YXJpYWJsZTogcmh5dGhtLXVuaXQgcmVtLXdpdGgtcHgtZmFsbGJhY2ssXG4gICAgbWl4aW46IHJlbSxcbiAgKTtcbiAgQGlmIHN1c3ktc3VwcG9ydChyZW0sICRfcmVxcywgJHdhcm46IGZhbHNlKSBhbmQgJHJoeXRobS11bml0ID09IHJlbSB7XG4gICAgQGluY2x1ZGUgcmVtKCRwcm9wLCAkdmFsKTtcbiAgfSBAZWxzZSB7XG4gICAgI3skcHJvcH06ICR2YWw7XG4gIH1cbn1cbiIsIi8vIFNwYW4gU3ludGF4XG4vLyA9PT09PT09PT09PVxuXG4vLyBTcGFuIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgc3Bhbm5pbmcgZWxlbWVudCB1c2luZyBzaG9ydGhhbmQgc3ludGF4LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0OiAkc3BhbjtcbiAgJHNwYW46IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkb3V0cHV0OiBzcGFuLW1hdGgoJHNwYW4pO1xuICAkbmVzdGluZzogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkY2xlYXI6IHN1c3ktZ2V0KGNsZWFyLCAkc3Bhbik7XG5cbiAgJGJveDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkY29udGVudC1ib3g6IGlmKHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSAhPSAnYm9yZGVyLWJveCcsIHRydWUsIGZhbHNlKTtcbiAgJGJveDogJGJveCBvciBpZihpcy1pbnNpZGUoJHNwYW4pIGFuZCAkY29udGVudC1ib3gsIGJvcmRlci1ib3gsIG51bGwpO1xuXG4gIEBpZiAkY2xlYXIgPT0gYnJlYWsge1xuICAgIEBpbmNsdWRlIGJyZWFrO1xuICB9IEBlbHNlIGlmICRjbGVhciA9PSBub2JyZWFrIHtcbiAgICBAaW5jbHVkZSBub2JyZWFrO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHNwYW4sICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkYm94KSk7XG4gIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gIEBpZiB2YWxpZC1jb2x1bW5zKCRuZXN0aW5nLCBzaWxlbnQpIHtcbiAgICBAaW5jbHVkZSBuZXN0ZWQoJHNwYW4pIHsgQGNvbnRlbnQ7IH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU3BhbiBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBzcGFuLlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gIEByZXR1cm4gZ2V0LXNwYW4td2lkdGgoJHNwYW4pO1xufVxuXG4vLyBTcGFuIE1hdGhcbi8vIC0tLS0tLS0tLVxuLy8gR2V0IGFsbCB0aGUgc3BhbiByZXN1bHRzLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBzcGFuLW1hdGgoXG4gICRzcGFuXG4pIHtcbiAgJG5lc3QgICAgICAgICAgICAgOiBpZihzdXN5LWdldChyb2xlLCAkc3BhbikgPT0gbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkc3BsaXQtbmVzdCAgICAgICA6IGlmKGlzLXNwbGl0KCRzcGFuKSBhbmQgJG5lc3QsIHRydWUsIGZhbHNlKTtcbiAgJGVkZ2UgICAgICAgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRsb2NhdGlvbiAgICAgICAgIDogZ2V0LWxvY2F0aW9uKCRzcGFuKTtcblxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb207XG4gICRwYWRkaW5nLWJlZm9yZSAgIDogbnVsbDtcbiAgJHBhZGRpbmctYWZ0ZXIgICAgOiBudWxsO1xuICAkbWFyZ2luLWJlZm9yZSAgICA6IG51bGw7XG4gICRtYXJnaW4tYWZ0ZXIgICAgIDogbnVsbDtcblxuICAvLyBjYWxjdWxhdGUgd2lkdGhzXG4gICRzcHJlYWQ6IGluZGV4KG1hcC12YWx1ZXMoJHNwYW4pLCBzcHJlYWQpO1xuICAkc3BhbjogaWYoJHNwbGl0LW5lc3QgYW5kIG5vdCgkc3ByZWFkKSwgbWFwLW1lcmdlKCRzcGFuLCAoc3ByZWFkOiB3aWRlKSksICRzcGFuKTtcbiAgJHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG4gICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG5cbiAgLy8gYXBwbHkgZ3V0dGVyc1xuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgQGlmIG5vdChzdXN5LWdldChyb2xlLCAkc3BhbikpIHtcbiAgICAgICRwYWRkaW5nLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlcik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaWYgbm90KCRzcGxpdC1uZXN0KSB7XG4gICAgICAkbWFyZ2luLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRtYXJnaW4tYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH1cblxuICAvLyBzcGVjaWFsIG1hcmdpbiBoYW5kbGluZ1xuICBAaWYgc3VzeS1nZXQob3V0cHV0LCAkc3BhbikgPT0gaXNvbGF0ZSBhbmQgJGxvY2F0aW9uIHtcbiAgICAkbWFyZ2luLWJlZm9yZTogZ2V0LWlzb2xhdGlvbigkc3Bhbik7XG4gICAgJG1hcmdpbi1hZnRlcjogLTEwMCU7XG4gIH0gQGVsc2UgaWYgJGVkZ2Uge1xuICAgICRpcy1zcGxpdDogaXMtc3BsaXQoJHNwYW4pO1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuXG4gICAgQGlmICRlZGdlID09IGxhc3Qge1xuICAgICAgJGZsb2F0OiBzdXN5LWdldChsYXN0LWZsb3csICRzcGFuKTtcbiAgICB9XG5cbiAgICBAaWYgbm90KCRpcy1zcGxpdCkge1xuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGZpcnN0IGFuZCAkcG9zID09IGJlZm9yZSkge1xuICAgICAgICAkbWFyZ2luLWJlZm9yZTogMDtcbiAgICAgIH1cbiAgICAgIEBpZiAkZWRnZSA9PSBmdWxsIG9yICgkZWRnZSA9PSBsYXN0IGFuZCAkcG9zID09IGFmdGVyKSB7XG4gICAgICAgICRtYXJnaW4tYWZ0ZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuIChcbiAgICB3aWR0aCAgICAgICAgICAgOiAkd2lkdGgsXG4gICAgZmxvYXQgICAgICAgICAgIDogJGZsb2F0LFxuICAgIG1hcmdpbi1iZWZvcmUgICA6ICRtYXJnaW4tYmVmb3JlLFxuICAgIG1hcmdpbi1hZnRlciAgICA6ICRtYXJnaW4tYWZ0ZXIsXG4gICAgcGFkZGluZy1iZWZvcmUgIDogJHBhZGRpbmctYmVmb3JlLFxuICAgIHBhZGRpbmctYWZ0ZXIgICA6ICRwYWRkaW5nLWFmdGVyLFxuICAgIGZsb3cgICAgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSxcbiAgKTtcbn1cblxuLy8gR2V0IFNwYW4gV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gc3BhbiB3aWR0aC5cbi8vIC0gJHNwYW46IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LXNwYW4td2lkdGgoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG5cbiAgJG4gICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkbG9jYXRpb24gOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuICAkY29sdW1ucyAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRndXR0ZXJzICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRzcGFuKTtcbiAgJHNwcmVhZCAgIDogc3VzeS1nZXQoc3ByZWFkLCAkc3Bhbik7XG5cbiAgJGNvbnRleHQgIDogbnVsbDtcbiAgJHNwYW4tc3VtIDogbnVsbDtcbiAgJHdpZHRoICAgIDogbnVsbDtcblxuICBAaWYgJG4gPT0gJ2Z1bGwnIHtcbiAgICAkcG9zOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKTtcbiAgICAkcm9sZTogc3VzeS1nZXQocm9sZSwgJHNwYW4pO1xuICAgICRuOiBpZigkcG9zID09IHNwbGl0IGFuZCAkcm9sZSAhPSBuZXN0LCBzdXN5LWNvdW50KCRjb2x1bW5zKSwgMTAwJSk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbikgIT0gbnVtYmVyIHtcbiAgICBAd2FybiBcIigje3R5cGUtb2YoJG4pfSkgI3skbn0gaXMgbm90IGEgdmFsaWQgc3Bhbi5cIjtcbiAgfSBAZWxzZSBpZiB1bml0bGVzcygkbikge1xuICAgICRjb250ZXh0OiBzdXN5LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsIGlmKGlzLXNwbGl0KCRzcGFuKSwgd2lkZSwgbmFycm93KSk7XG4gICAgJHNwcmVhZDogaWYoaXMtaW5zaWRlKCRzcGFuKSwgJHNwcmVhZCBvciB3aWRlLCAkc3ByZWFkKTtcbiAgICAkc3Bhbi1zdW06IHN1c3koJG4sICRsb2NhdGlvbiwgJGNvbHVtbnMsICRndXR0ZXJzLCAkc3ByZWFkKTtcblxuICAgICRfbWF0aDogc3VzeS1nZXQobWF0aCwgJHNwYW4pO1xuICAgICRfY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRzcGFuKTtcbiAgICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgICAkd2lkdGg6ICRzcGFuLXN1bSAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRzcGFuLXN1bSAvICRjb250ZXh0KTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICR3aWR0aDogJG47XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cbiIsIi8vIEZsb2F0IFNwYW4gQVBJXG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBGbG9hdCBTcGFuIE91dHB1dFxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gJHdpZHRoICAgICAgICAgICAgIDogPGxlbmd0aD5cbi8vIC0gWyRmbG9hdF0gICAgICAgICAgIDogZnJvbSB8IHRvXG4vLyAtIFskbWFyZ2luLWJlZm9yZV0gICA6IDxsZW5ndGg+XG4vLyAtIFskbWFyZ2luLWFmdGVyXSAgICA6IDxsZW5ndGg+XG4vLyAtIFskcGFkZGluZy1iZWZvcmVdICA6IDxsZW5ndGg+XG4vLyAtIFskcGFkZGluZy1hZnRlcl0gICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gICAgICAgICAgICA6IGx0ciB8IHJ0bFxuQG1peGluIGZsb2F0LXNwYW4tb3V0cHV0KFxuICAkd2lkdGgsXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbSxcbiAgJG1hcmdpbi1iZWZvcmUgICAgOiBudWxsLFxuICAkbWFyZ2luLWFmdGVyICAgICA6IG51bGwsXG4gICRwYWRkaW5nLWJlZm9yZSAgIDogbnVsbCxcbiAgJHBhZGRpbmctYWZ0ZXIgICAgOiBudWxsLFxuICAkZmxvdyAgICAgICAgICAgICA6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJHRvICAgICA6IHRvKCRmbG93KTtcbiAgJGZyb20gICA6IGZyb20oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICB3aWR0aDogJHdpZHRoLFxuICAgIGZsb2F0OiBpZigkZmxvYXQgPT0gdG8sICR0bywgbnVsbCkgb3IgaWYoJGZsb2F0ID09IGZyb20sICRmcm9tLCBudWxsKSxcbiAgICBtYXJnaW4tI3skZnJvbX06ICRtYXJnaW4tYmVmb3JlLFxuICAgIG1hcmdpbi0jeyR0b306ICRtYXJnaW4tYWZ0ZXIsXG4gICAgcGFkZGluZy0jeyRmcm9tfTogJHBhZGRpbmctYmVmb3JlLFxuICAgIHBhZGRpbmctI3skdG99OiAkcGFkZGluZy1hZnRlcixcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBEaXJlY3Rpb24gSGVscGVyc1xuLy8gPT09PT09PT09PT09PT09PT1cblxuLy8gU3VzeSBGbG93IERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIGZsb3c6IGx0cixcbikpO1xuXG4vLyBHZXQgRGlyZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBvciAndG8nIGRpcmVjdGlvbiBvZiBhIGx0ciBvciBydGwgZmxvdy5cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbi8vIC0gWyRrZXldICAgOiBmcm9tIHwgdG9cbkBmdW5jdGlvbiBnZXQtZGlyZWN0aW9uKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdyksXG4gICRrZXk6IGZyb21cbikge1xuICAkcmV0dXJuOiBpZigkZmxvdyA9PSBydGwsIChmcm9tOiByaWdodCwgdG86IGxlZnQpLCAoZnJvbTogbGVmdCwgdG86IHJpZ2h0KSk7XG4gIEByZXR1cm4gbWFwLWdldCgkcmV0dXJuLCAka2V5KTtcbn1cblxuLy8gVG9cbi8vIC0tXG4vLyBSZXR1cm4gdGhlICd0bycgZGlyZWN0aW9uIG9mIGEgZmxvd1xuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQGZ1bmN0aW9uIHRvKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIHRvKTtcbn1cblxuLy8gRnJvbVxuLy8gLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgZGlyZWN0aW9uIG9mIGEgZmxvd1xuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQGZ1bmN0aW9uIGZyb20oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgZnJvbSk7XG59XG4iLCIvLy8vLy8vLy8vLy9cbi8vIEhlYWRlciAvL1xuLy8vLy8vLy8vLy8vXG5cblxuLnNpdGVfX2hlYWRlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcm9zc29IYXZhbmE7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDI7XG4gICAgQGluY2x1ZGUgcmVtKGhlaWdodCwgJGhlYWRlckhlaWdodCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tZW51LXN3aXRjaHtcbiAgICB6LWluZGV4OjE7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBAaW5jbHVkZSByZW0od2lkdGgsICRoZWFkZXJIZWlnaHQpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAuaWNvbi1vcGVuLW1lbnV7XG4gICAgICAgIG1hcmdpbi10b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NCUpO1xuICAgIH1cbn1cblxuLmhlYWRlci1sb2dve31cbiIsIi8vLy8vLy8vLy8vLy8vLy9cbi8vSGVhZGVyIExvZ28gLy9cbi8vLy8vLy8vLy8vLy8vLy9cblxuLmhlYWRlci1sb2dve1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwNSU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5pY29uLWhhdmFuYS1sb2dve1xuICAgID5zdmd7XG4gICAgfVxuICAgICNsb2dvLWhhdmFuYXtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7XG4gICAgICAgICNsb2dvLXJpc3RvcmFudGV7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICNsb2dvLWxlZnR7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICNsb2dvLWhhdmFuYXtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNXB4KTtcbiAgICAgICAgfVxuICAgICAgICAjbG9nby1yaWdodHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgfVxuICAgICAgICAjbG9nby1uYXR1cmFsZm9vZHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBMYXllciBkaSBzb2xpdG8gc2VtaXRyYXNwYXJlbnRlIHBlciBjaGl1ZGVyZSBpbCBtZW7DuVxuLmNsaWNrLW9mZi1sYXllcntcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNSk7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiB6KG1vZGFsKSAtIDEgO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5O1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbGlja09mZkxheWVyQXBwZWFyO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG59XG4vLyBhbmltYXppb25lIGRpIGNvbXBhcnNhIGRlbCBsYXllciBDbGljay1PZmZcbkBrZXlmcmFtZXMgY2xpY2tPZmZMYXllckFwcGVhcntcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG5cbi8vIENsYXNzZSBwZXIgdW4gZ2VuZXJpY28gb2dnZXR0byBtb2RhbGUgYSByaXBvc29cbi5tb2RhbC1lbGVtZW50e1xuICAgIG9wYWNpdHk6IDA7XG59XG5cblxuLnRlc3QtbW9kYWwtZWxlbWVudHtcbiAgICB6LWluZGV4OiB6KG1vZGFsKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMG1zO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB0b3A6IC05OTk5OXB4O1xuICAgIGxlZnQ6IC05OTk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIEBpbmNsdWRlIHJlbShwYWRkaW5nLCAyMCk7XG4gICAgQGluY2x1ZGUgcmVtKG1hcmdpbiwgMjApO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgICAmLmFjdGl2ZXtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHRlc3RNb2RhbDtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiA1MDBtcztcbiAgICB9XG59XG5cblxuQGtleWZyYW1lcyB0ZXN0TW9kYWwge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICB9XG59XG4iLCIucGFyYWxsYXgtY29udGFpbmVye1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBwZXJzcGVjdGl2ZTogMXB4O1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4ICRoZWFkZXJIZWlnaHQqMXB4O1xuICAgIGh0bWwuYW5kcm9pZCAme1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHg7XG4gICAgfVxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgLy9iYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLnBhcmFsbGF4LWltZ3tcbiAgICAgICAgdmlzaWJpbGl0eTpoaWRkZW47XG4gICAgfVxufVxuIiwiYm9keS5mdWxsLW1lbnUtb3BlbntcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbiNmdWxsLW1lbnV7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTcyLDIyLDQ0LDAuOTUpO1xuICBmb250LWZhbWlseTogJHNhbnM7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAtOTk5OTlweDtcbiAgbGVmdDogLTk5OTk5cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IHoobW9kYWwpO1xuICBvdmVyZmxvdzogYXV0bztcbiAgLy8gUmVzcG9uc2l2ZSBNYWdpY1xuICBAZWFjaCAkc2l6ZSBpbiAkbGlzdC1icG9pbnQge1xuICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAyKSB7XG4gICAgICAgIC8vb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLmFjdGl2ZXtcbiAgICBhbmltYXRpb24tbmFtZTogbWVudUFwcGVhcjtcbiAgICBhbmltYXRpb24tZGVsYXk6IDA7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICB9XG5cblxuICAubWVudS1jb250YWluZXJ7XG4gICAgQGluY2x1ZGUgcmVtKG1hcmdpbiwgODAsIDIwLCA0MCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsaW5lLWhlaWdodDogMS42ZW07XG4gICAgZm9udC1zaXplOiA4dnc7XG4gICAgdWwge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICBtYXJnaW46MDtcbiAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgIHBhZGRpbmctdG9wOjAuMWVtO1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgYSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICAgIC8vIFJlc3BvbnNpdmUgTWFnaWNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkbGlzdC1icG9pbnQge1xuICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuXG4gICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAyKSB7XG4gICAgICAgICAgQGluY2x1ZGUgcmVtKG1hcmdpbiwgNzAsIDQwKTtcbiAgICAgICAgICBAaW5jbHVkZSByZW0oZm9udC1zaXplLCA2NCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNsb3NlLWZ1bGwtbWVudXtcbiAgLmZ1bGwtbWVudS1vcGVuICZ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIEBpbmNsdWRlIHJlbShwYWRkaW5nLCAxNik7XG4gIHotaW5kZXg6IHoobW9kYWwpICsgMTtcblxuICBiYWNrZ3JvdW5kLXNpemU6IDUwJTtcbiAgICAvLyBSZXNwb25zaXZlIE1hZ2ljXG4gICAgQGVhY2ggJHNpemUgaW4gJGxpc3QtYnBvaW50IHtcbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgICAgQGlmICRzaXplID09IG50aCgkbGlzdC1icG9pbnQsIDIpIHtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgICAgIEBpbmNsdWRlIHJlbSh0b3AsIDcwKTtcbiAgICAgICAgICBAaW5jbHVkZSByZW0ocmlnaHQsIDQwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cblxuICAuZnVsbC1tZW51e1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpbmNsdWRlIHR5cG8oMTYsMzIpO1xuICAgIEBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoKCRzaXplKygkb2Zmc2V0LWhlYWRlcioyKSkqMXB4LCRudW1lcm8tY29sb25uZSl7XG4gICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAyKSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmZ1bGwtbWVudS1zZXB7XG4gICAgICB3aWR0aDogNzMlO1xuICAgICAgQGluY2x1ZGUgcmVtKGhlaWdodCwgMSk7XG4gICAgICBiYWNrZ3JvdW5kOiAkdGVzdG87XG4gICAgICBtYXJnaW46IDEwcHggYXV0bztcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIEBpbmNsdWRlIHJlbShtYXJnaW4tYm90dG9tLCAzNSk7XG4gICAgfVxuICAgIHVsLCBsaXtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgID5saXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogeihtb2RhbCk7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIEBpbmNsdWRlIHJlbShtYXJnaW4tYm90dG9tLCAzMCk7XG4gICAgLy9tYXgtd2lkdGg6IDgwJTtcbiAgICAvLyBSZXNwb25zaXZlIE1hZ2ljXG4gICAgQGVhY2ggJHNpemUgaW4gJGxpc3QtYnBvaW50IHtcbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgICAgQGlmICRzaXplID09IG50aCgkbGlzdC1icG9pbnQsIDIpIHtcbiAgICAgICAgICBAaW5jbHVkZSByZW0obWFyZ2luLXJpZ2h0LCAzMCk7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxNSU7XG4gICAgICAgICAgbWluLXdpZHRoOiBpbml0aWFsO1xuICAgICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPmxpID5he1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgYXtcbiAgICBAaW5jbHVkZSByZW0obGluZS1oZWlnaHQsIDIwKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSByZW0ocGFkZGluZywgOCwwKTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciA1MDBtcztcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgJjpob3ZlcntcbiAgICAgY29sb3I6IHdoaXRlO1xuICAgfVxuIH1cbiBsaS5jdXJyZW50LW1lbnUtaXRlbSA+IGF7XG4gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiB9XG59XG5cbi5pY29uLWhhdmFuYS1sb2dvLW1lbnV7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgLy8gUmVzcG9uc2l2ZSBNYWdpY1xuICAgIEBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCgoJHNpemUrKCRvZmZzZXQtaGVhZGVyKjIpKSoxcHgsJG51bWVyby1jb2xvbm5lKXtcbiAgICAgICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAyKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuQG1lZGlhIHNjcmVlbiBhbmQobWF4LXdpZHRoOiA3NjdweCApe1xuICBAa2V5ZnJhbWVzIG1lbnVBcHBlYXJ7XG4gICAgMCV7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgQGluY2x1ZGUgcmVtKHRvcCwgJGhlYWRlckhlaWdodCk7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgICAxMDAle1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIEBpbmNsdWRlIHJlbSh0b3AsICRoZWFkZXJIZWlnaHQpO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kKG1pbi13aWR0aDogNzY4cHggKXtcbiAgQGtleWZyYW1lcyBtZW51QXBwZWFye1xuICAgIDAle1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICAgIDEwMCV7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwSW5YIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5mbGlwSW5YIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcEluWDtcbiAgYW5pbWF0aW9uLWRlbGF5OiA1MDBtcztcbn1cbiIsIi8qKlxuICogU3RpbGUgQ29udGFjdCBGb3JtIDdcbiAqL1xuICRiZ0lucHV0OiAjZjZlZWU1O1xuICRiZ1N1Ym1pdDogJHJvc3NvSGF2YW5hO1xuICR0ZXh0UGxhY2Vob2xkZXI6ICRnaWFsbG9IYXZhbmE7XG4gJHRleHRTdWJtaXQ6IHdoaXRlO1xuXG4gLndwY2Y3e1xuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ0lucHV0O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjhlbSAwLjNlbTtcbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICR0ZXh0UGxhY2Vob2xkZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi53cGNmNy1zdWJtaXR7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ1N1Ym1pdDtcbiAgICBjb2xvcjogJHRleHRTdWJtaXQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMC43ZW0gMS41ZW07XG4gICAgbWFyZ2luLXRvcDogMWVtO1xufVxuXG4ud3BjZjctZm9ybXtcblxuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAud3BjZjctcmVzcG9uc2Utb3V0cHV0e1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxufVxuIiwiLmNvbnRhY3QtYnV0dG9ue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogJHJvc3NvSGF2YW5hO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICYuY29udGFjdC1idXR0b24tLWlubGluZXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGltZ3tcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAaW5jbHVkZSByZW0od2lkdGgsIDEwMCk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIHNwYW57XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nLXRvcDogMC4zZW07XG4gICAgfVxuXG59XG4iLCIuaG9tZWdyaWR7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbn1cblxuLmhvbWVncmlkLWdyb3Vwe1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC8vIFJlc3BvbnNpdmUgTWFnaWNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkbGlzdC1icG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoKCRzaXplKygkb2Zmc2V0LWhlYWRlcioyKSkqMXB4LCRudW1lcm8tY29sb25uZSl7XG4gICAgICAgICAgICBAaWYgJHNpemUgPT0gbnRoKCRsaXN0LWJwb2ludCwgMikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICB3aWR0aDogKCRncmlkU2l6ZSAqIDIpKygkZ3V0dGVyU2l6ZSkgLSAwLjElO1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKXtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaG9tZWdyaWQtYmxvY2tfX2ltYWdlOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgJHNpemUgPT0gbnRoKCRsaXN0LWJwb2ludCwgMykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAoJGdyaWRTaXplICogMikrKCRndXR0ZXJTaXplKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5ob21lZ3JpZC1ibG9jayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDQuNSU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXJTaXplKjEuMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwsICRhbmltU3BlZWQsICRhbmltRGVsYXk7XG5cbiAgICAvLyBSZXNwb25zaXZlIE1hZ2ljXG4gICAgQGVhY2ggJHNpemUgaW4gJGxpc3QtYnBvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuICAgICAgICAgICAgQGlmICRzaXplID09IG50aCgkbGlzdC1icG9pbnQsIDIpIHtcbiAgICAgICAgICAgICAgICAmLmhvbWVncmlkLWJsb2NrLS12ZXJ0aWNhbHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRndXR0ZXJTaXplO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJGdyaWRTaXplO1xuICAgICAgICAgICAgICAgICAgICAuaG9tZWdyaWQtYmxvY2tfX2ltYWdlOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAgICAgLmhvbWVncmlkLWJsb2NrX19wYW5lbDpiZWZvcmUsXG4gICAgICAgICAgICAgICAgICAgIC5ob21lZ3JpZC1ibG9ja19fdGl0bGU6YmVmb3Jle1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwMCArICgkZ3V0dGVyU2l6ZSozKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgLmhvbWVncmlkLWJsb2NrX19wYW5lbHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5ob21lZ3JpZC1ibG9jay0tdmVydGljYWw6bnRoLWNoaWxkKDJuKzEpe1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ3V0dGVyU2l6ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgLmhvbWVncmlkLWJsb2NrX19wYW5lbHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5ob21lZ3JpZC1ibG9ja19faW1hZ2V7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICAvLyBSZXNwb25zaXZlIE1hZ2ljXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAmOmJlZm9yZXtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgIH1cbiAgICAuc3F1YXJlLWNvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG4gICAgLnNxdWFyZS1jb250ZW50IGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAuaG9tZWdyaWQtYmxvY2stLXZlcnRpY2FsICYge1xuICAgICAgICBAZWFjaCAkc2l6ZSBpbiAkbGlzdC1icG9pbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuICAgICAgICAgICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5ob21lZ3JpZC1ibG9ja19fcGFuZWx7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDowO1xuICAgIGJvdHRvbTowO1xuICAgIGxlZnQ6MDtcbiAgICByaWdodDowO1xuICAgIG9wYWNpdHk6MC41O1xuICAgIHRyYW5zaXRpb246IGFsbCwgJGFuaW1TcGVlZCwgJGFuaW1EZWxheTtcbiAgICAvLyBSZXNwb25zaXZlIE1hZ2ljXG4gICAgQGVhY2ggJHNpemUgaW4gJGxpc3QtYnBvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuICAgICAgICAgICAgQGlmICRzaXplID09IG50aCgkbGlzdC1icG9pbnQsIDIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAuaG9tZWdyaWQtYmxvY2stLXZlcnRpY2FsICZ7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgd2lkdGg6IDUwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuLmhvbWVncmlkLWJsb2NrX190aXRsZXtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJpbztcbiAgICAvLyBSZXNwb25zaXZlIE1hZ2ljXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAmOmJlZm9yZXtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgIH1cbiAgICAuc3F1YXJlLWNvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG4gICAgLnNxdWFyZS1jb250ZW50IGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAuc3F1YXJlLWNvbnRlbnQgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgcGFkZGluZzogMCAwLjVlbTtcblxuICAgIH1cbiAgICAuaG9tZWdyaWQtYmxvY2stLXZlcnRpY2FsICYge1xuICAgICAgICBAZWFjaCAkc2l6ZSBpbiAkbGlzdC1icG9pbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuICAgICAgICAgICAgICAgIEBpZiAkc2l6ZSA9PSBudGgoJGxpc3QtYnBvaW50LCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb21wb25lbnRlIEltbWFnaW5lIGluIEhvbWVwYWdlIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi5ob21lLWltYWdle1xuICAgIEBpbmNsdWRlIHJlbShwYWRkaW5nLXRvcCwgJGhlYWRlckhlaWdodCAtIDIpO1xufVxuXG4uaG9tZS1pbWFnZV9fY29udGFpbmVye1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmhvbWUtaW1hZ2VfX2ltYWdle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLmhvbWUtaW1hZ2VfX2JyYW5kLWNvbnRhaW5lcntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgQGluY2x1ZGUgcmVtKHRvcCwgJGhlYWRlckhlaWdodCk7XG4gICAgbGVmdDowO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDB2dztcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmhvbWUtaW1hZ2VfX2JyYW5ke1xuICAgIG1heC1oZWlnaHQ6IDM1dnc7XG4gICAgQGluY2x1ZGUgcmVtKHdpZHRoLCA0MDApO1xuICAgIEBpbmNsdWRlIHJlbShoZWlnaHQsIDQwMCk7XG4gICAgdHJhbnNpdGlvbjogYWxsICRhbmltU3BlZWQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMiwxLjIpO1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgPiBzdmd7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgI2JyYW5kLWNpcmNsZXtcbiAgICAgICAgb3BhY2l0eTogMC43NTtcbiAgICAgICAgLy8gdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAvLyBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG4gICAgfVxuICAgICYuYXBwZWFye1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsMSk7XG4gICAgICAgICNicmFuZC1jaXJjbGV7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjc1O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsICRhbmltU3BlZWQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAkYW5pbVNwZWVkO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBib2R5W2RhdGEtdGVtcGxhdGU9XCJob21lcGFnZVwiXSAme1xuICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb21wb25lbnRlIEZvb3RlciAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuJGZvb3RlckJnQ29sb3I6ICRnaWFsbG9IYXZhbmE7XG5cbi5zaXRlX19mb290ZXJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3RlckJnQ29sb3I7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZvb3Rlcl9fY29udGFpbmVye1xuXG59XG5cbi5mb290ZXJfX2xlZ2FsLWluZm97XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIHR5cG8oMTYsMjQpO1xuICAgIGF7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICB9XG59XG5cbi5mb290ZXJfX3NvY2lhbC1saW5rc3tcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAyZW0gMDtcbiAgICBhe1xuICAgICAgICBtYXJnaW46IDFlbTtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG59XG5cbi8vIFJlc3BvbnNpdmUgTWFnaWNcbkBlYWNoICRzaXplIGluICRsaXN0LWJwb2ludCB7XG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuICAgICAgICBAaWYgJHNpemUgPT0gbnRoKCRsaXN0LWJwb2ludCwgMikge1xuICAgICAgICAgICAgLmZvb3Rlcl9fbGVnYWwtaW5mb3tcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5mb290ZXJfX3NvY2lhbC1saW5rc3tcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU3RpY2t5IEZvb3RlciAoY29uIEZsZXhib3gpIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vXG4vKipcbiAqIFBlciBhdmVyZSB1bm8gc3RpY2t5IGZvb3RlciBiYXN0YSBpbmNsdWRlcmUgbGUgY2xhc3NpIC5wYWdlX193cmFwLS1zdGlja3ktZm9vdGVyXG4gKiBlIC5zaXRlX19mb290ZXItLXN0aWNreS1mb290ZXIuIExhIHBhZ2luYSBkZXZlIGF2ZXJlciBxdWVzdGkgMiBlbGVtZW50aSByYWRpY2UuXG4gKi9cblxuICRzdGlja3ktZm9vdGVyLW1pbi1oZWlnaHQ6ICRoZWFkZXJIZWlnaHQ7XG5cbiBodG1sLCBib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xufVxuXG5odG1sLm5vLWFwcGxlaW9ze1xuICAgIGJvZHkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAucGFnZV9fd3JhcC0tc3RpY2t5LWZvb3RlciB7XG4gICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIH1cbiAgICAuc2l0ZV9fZm9vdGVye1xuICAgICAgICBmbGV4OiBub25lO1xuICAgIH1cbn1cblxuaHRtbC5hcHBsZWlvcyB7XG5cbiAgICAucGFnZV9fd3JhcC0tc3RpY2t5LWZvb3RlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIHJlbShtYXJnaW4tYm90dG9tLCAtJHN0aWNreS1mb290ZXItbWluLWhlaWdodCk7XG4gICAgfVxuICAgIC5wYWdlX193cmFwLS1zdGlja3ktZm9vdGVyOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5zaXRlX19mb290ZXItLXN0aWNreS1mb290ZXIsXG4gICAgLnBhZ2VfX3dyYXAtLXN0aWNreS1mb290ZXI6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSByZW0obWluLWhlaWdodCwgJHN0aWNreS1mb290ZXItbWluLWhlaWdodCk7XG4gICAgfVxufVxuIiwiLmxvYWRlcntcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6ICRnaWFsbG9IYXZhbmE7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5sb2FkZXJfX3NwaW5uZXJ7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGltZ3tcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuIiwiLmNvcnJlbGF0aSB7XG4gICAgQGluY2x1ZGUgc3BhbihmdWxsKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNGVtO1xufVxuLmNvcnJlbGF0aV9faGVhZGVyIHtcbiAgICBAaW5jbHVkZSByZW0oZm9udC1zaXplLCAyNCk7XG4gICAgY29sb3I6ICRyb3Nzb0hhdmFuYTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdpYWxsb0hhdmFuYTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC42ZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5jb3JyZWxhdGktYmxvY2sge1xuICAgIEBpbmNsdWRlIHNwYW4oZnVsbCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIC8vIFJlc3BvbnNpdmUgTWFnaWNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkbGlzdC1icG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoKCRzaXplKygkb2Zmc2V0LWhlYWRlcioyKSkqMXB4LCRudW1lcm8tY29sb25uZSl7XG4gICAgICAgICAgICBAaWYgJHNpemUgPT0gbnRoKCRsaXN0LWJwb2ludCwgMikge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMiBvZiA4KTtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGV7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZpcnN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDQpe1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsYXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5jb3JyZWxhdGktYmxvY2tfX2ltYWdle1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgLy8gUmVzcG9uc2l2ZSBNYWdpY1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnNxdWFyZS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zcXVhcmUtY29udGVudCBkaXYge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgQGVhY2ggJHNpemUgaW4gJGxpc3QtYnBvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCgkc2l6ZSsoJG9mZnNldC1oZWFkZXIqMikpKjFweCwkbnVtZXJvLWNvbG9ubmUpe1xuICAgICAgICAgICAgQGlmICRzaXplID09IG50aCgkbGlzdC1icG9pbnQsIDIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5jb3JyZWxhdGktYmxvY2tfX3RpdGxle1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAvLyBSZXNwb25zaXZlIE1hZ2ljXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc3F1YXJlLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnNxdWFyZS1jb250ZW50IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc3F1YXJlLWNvbnRlbnQgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwLjVlbTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVtKGZvbnQtc2l6ZSwgMjIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICBAZWFjaCAkc2l6ZSBpbiAkbGlzdC1icG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoKCRzaXplKygkb2Zmc2V0LWhlYWRlcioyKSkqMXB4LCRudW1lcm8tY29sb25uZSl7XG4gICAgICAgICAgICBAaWYgJHNpemUgPT0gbnRoKCRsaXN0LWJwb2ludCwgMikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gRmxvYXQgRW5kcyBBUElcbi8vID09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRW5kIERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgbGFzdC1mbG93OiB0byxcbikpO1xuXG4vLyBGbG9hdCBMYXN0XG4vLyAtLS0tLS0tLS0tXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gZmxvYXQtbGFzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAkbGFzdC1mbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBsYXN0LWZsb3cpLFxuICAkbWFyZ2luOiAwXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb2F0OiBpZigkbGFzdC1mbG93ID09IHRvLCAkdG8sIG51bGwpLFxuICAgIG1hcmdpbi0jeyR0b306ICRtYXJnaW4sXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuXG4vLyBGbG9hdCBGaXJzdFxuLy8gLS0tLS0tLS0tLS1cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1maXJzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJG91dHB1dDogKFxuICAgIG1hcmdpbi0je2Zyb20oJGZsb3cpfTogMCxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBSb3cgU3RhcnQgJiBFbmRcbi8vID09PT09PT09PT09PT09PVxuXG4vLyBCcmVha1xuLy8gLS0tLS1cbi8vIEFwcGx5IHRvIGFueSBlbGVtZW50IHRoYXQgc2hvdWxkIGZvcmNlIGEgbGluZSBicmVhay5cbkBtaXhpbiBicmVhayB7XG4gIEBpbmNsdWRlIG91dHB1dCgoY2xlYXI6IGJvdGgpKTtcbn1cblxuXG4vLyBOb0JyZWFrXG4vLyAtLS0tLS0tXG4vLyBDYW5jZWwgdGhlIGJyZWFrKCkgZWZmZWN0LCBlLmcuIHdoZW4gdXNpbmcgbWVkaWEgcXVlcmllcy5cbkBtaXhpbiBub2JyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogbm9uZSkpO1xufVxuXG5cbi8vIEZ1bGxcbi8vIC0tLS1cbi8vIC0gWyRjb250ZXh0XTogPGxheW91dCBzaG9ydGhhbmQ+XG5AbWl4aW4gZnVsbChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgOiAkY29udGV4dDtcbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGZ1bGwsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgc3BhbihmdWxsIG9mIHBhcnNlLWdyaWQoJGNvbnRleHQpIGJyZWFrKTtcbn1cblxuXG4vLyBGaXJzdFxuLy8gLS0tLS1cbi8vIC0gWyRjb250ZXh0XTogPHNldHRpbmdzPlxuQG1peGluIGZpcnN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG4gICRmbG93ICAgICA6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZmlyc3QsICRpbnNwZWN0KTtcbiAgQGlmIG5vdChpcy1zcGxpdCgkY29udGV4dCkpIHtcbiAgICBAaW5jbHVkZSBmbG9hdC1maXJzdCgkZmxvdyk7XG4gIH1cbn1cblxuQG1peGluIGFscGhhKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICBAaW5jbHVkZSBmaXJzdCgkY29udGV4dCk7XG59XG5cblxuLy8gTGFzdFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gbGFzdChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLWdyaWQoJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChsYXN0LCAkaW5zcGVjdCk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KSxcbiAgICBsYXN0LWZsb3c6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJGNvbnRleHQpLFxuICAgIG1hcmdpbjogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCBudWxsLCAwKSxcbiAgKTtcblxuICBAaW5jbHVkZSBmbG9hdC1sYXN0KCRvdXRwdXQuLi4pO1xufVxuXG5AbWl4aW4gb21lZ2EoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGxhc3QoJGNvbnRleHQpO1xufVxuXG5cbi8vIEdldCBFZGdlXG4vLyAtLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGVkZ2UgdmFsdWUgYmFzZWQgb24gbG9jYXRpb24sIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWVkZ2UoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBzdXN5LWdldChlZGdlLCAkc3Bhbik7XG5cbiAgQGlmIG5vdCgkZWRnZSkge1xuICAgICRjb3VudDogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpO1xuICAgICRsb2NhdGlvbjogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgICAkbjogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gICAgJG51bWJlcjogaWYodHlwZS1vZigkbG9jYXRpb24pID09IG51bWJlciwgdHJ1ZSwgZmFsc2UpO1xuICAgICRpbmRleDogaWYoJG51bWJlciBhbmQgdW5pdGxlc3MoJGxvY2F0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xuXG4gICAgQGlmICRuID09ICRjb3VudCB7XG4gICAgICAkZWRnZTogZnVsbDtcbiAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiBhbmQgJG4gYW5kICRpbmRleCB7XG4gICAgICBAaWYgJGxvY2F0aW9uID09IDEge1xuICAgICAgICAkZWRnZTogaWYoJG4gPT0gJGNvdW50LCBmdWxsLCBmaXJzdCk7XG4gICAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiArICRuIC0gMSA9PSAkY291bnQge1xuICAgICAgICAkZWRnZTogbGFzdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGVkZ2UgPT0gYWxwaGEgb3IgJGVkZ2UgPT0gb21lZ2Ege1xuICAgICRlZGdlOiBpZigkZWRnZSA9PSBhbHBoYSwgZmlyc3QsIGxhc3QpO1xuICB9XG5cbiAgQHJldHVybiAkZWRnZTtcbn1cblxuXG4vLyBHZXQgTG9jYXRpb25cbi8vIC0tLS0tLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGxvY2F0aW9uIHZhbHVlIGJhc2VkIG9uIGVkZ2UsIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWxvY2F0aW9uKFxuICAkc3BhblxuKSB7XG4gICRzcGFuICAgICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRsb2NhdGlvbiAgIDogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRuICAgICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gIEBpZiAkZWRnZSBhbmQgbm90KCRsb2NhdGlvbikgYW5kIHR5cGUtb2YoJG4pID09IG51bWJlciBhbmQgdW5pdGxlc3MoJG4pIHtcbiAgICBAaWYgJGVkZ2UgPT0gZmlyc3Qge1xuICAgICAgJGxvY2F0aW9uOiAxO1xuICAgIH0gQGVsc2UgaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkbG9jYXRpb246IHN1c3ktY291bnQoc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pKSAtICRuICsgMTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsb2NhdGlvblxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuXG4kc2xpY2stZm9udC1wYXRoOiBcIi4vZm9udHMvXCIgIWRlZmF1bHQ7XG4kc2xpY2stZm9udC1mYW1pbHk6ICRzZXJpZiAhZGVmYXVsdDtcbiRzbGljay1sb2FkZXItcGF0aDogXCIuL1wiICFkZWZhdWx0O1xuJHNsaWNrLWFycm93LWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcbiRzbGljay1kb3QtY29sb3I6ICRwcmltYXJpbyAhZGVmYXVsdDtcbiRzbGljay1kb3QtY29sb3ItYWN0aXZlOiAkc2xpY2stZG90LWNvbG9yICFkZWZhdWx0O1xuJHNsaWNrLXByZXYtY2hhcmFjdGVyOiBcIuKGkFwiICFkZWZhdWx0O1xuJHNsaWNrLW5leHQtY2hhcmFjdGVyOiBcIuKGklwiICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jaGFyYWN0ZXI6IFwi4oCiXCIgIWRlZmF1bHQ7XG4kc2xpY2stZG90LXNpemU6IDZweCAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LWRlZmF1bHQ6IDEgIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjogMSAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU6IDAuMjUgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBzbGljay1pbWFnZS11cmwoJHVybCkge1xuICAgIEBpZiBmdW5jdGlvbi1leGlzdHMoaW1hZ2UtdXJsKSB7XG4gICAgICAgIEByZXR1cm4gaW1hZ2UtdXJsKCR1cmwpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gdXJsKCRzbGljay1sb2FkZXItcGF0aCArICR1cmwpO1xuICAgIH1cbn1cblxuLy8gQGZ1bmN0aW9uIHNsaWNrLWZvbnQtdXJsKCR1cmwpIHtcbi8vICAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKGZvbnQtdXJsKSB7XG4vLyAgICAgICAgIEByZXR1cm4gZm9udC11cmwoJHVybCk7XG4vLyAgICAgfVxuLy8gICAgIEBlbHNlIHtcbi8vICAgICAgICAgQHJldHVybiB1cmwoJHNsaWNrLWZvbnQtcGF0aCArICR1cmwpO1xuLy8gICAgIH1cbi8vIH1cblxuLyogU2xpZGVyICovXG5cbi5zbGljay1saXN0IHtcbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZiBzbGljay1pbWFnZS11cmwoXCJhamF4LWxvYWRlci5naWZcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgfVxufVxuXG4vKiBJY29ucyAqL1xuLy8gQGlmICRzbGljay1mb250LWZhbWlseSA9PSBcInNsaWNrXCIge1xuLy8gICAgIEBmb250LWZhY2Uge1xuLy8gICAgICAgICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuLy8gICAgICAgICBzcmM6IHNsaWNrLWZvbnQtdXJsKFwic2xpY2suZW90XCIpO1xuLy8gICAgICAgICBzcmM6IHNsaWNrLWZvbnQtdXJsKFwic2xpY2suZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnN2ZyNzbGlja1wiKSBmb3JtYXQoXCJzdmdcIik7XG4vLyAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4vLyAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICAgICB9XG4vLyB9XG5cbi8qIEFycm93cyAqL1xuXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgZm9udC1zaXplOiAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTBweFxcOTsgLypsdGUgSUUgOCovXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zbGljay1kaXNhYmxlZDpiZWZvcmUge1xuICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlO1xuICAgIH1cbn1cblxuLnNsaWNrLXByZXY6YmVmb3JlLCAuc2xpY2stbmV4dDpiZWZvcmUge1xuICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkc2xpY2stYXJyb3ctY29sb3I7XG4gICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktZGVmYXVsdDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uc2xpY2stcHJldiB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IC0yNXB4O1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNsaWNrLW5leHQge1xuICAgIHJpZ2h0OiAtMjVweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBsZWZ0OiAtMjVweDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJHNsaWNrLW5leHQtY2hhcmFjdGVyO1xuICAgICAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICAgICAgY29udGVudDogJHNsaWNrLXByZXYtY2hhcmFjdGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBEb3RzICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5zbGljay1kb3RzIHtcbiAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBib3R0b206IC00NXB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDBweDtcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlbSh0b3AsIDUpO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHNsaWNrLWRvdC1jaGFyYWN0ZXI7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVtKHdpZHRoLCAxNSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVtKGhlaWdodCwgMTUpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRzbGljay1kb3Qtc2l6ZTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNsaWNrLWRvdC1jb2xvcjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAgICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNsaWNrLWRvdC1jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1kZWZhdWx0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuLnNsaWNrLXNsaWRlcntcbiAgICBoZWlnaHQ6IGF1dG87IC8vIEltcG9ydGFudGUhIGhhY2sgcGVyIGlsIGxhenlsb2FkaW5nIGNoZSBmYSBwYXJ0aXJlIGEgdm9sdGUgYSAxcHggbCdpbW1hZ2luZVxuICAgIGltZ3tcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuLnNpbmdsZS1zbGlkZXNob3dfX2NhcHRpb257XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
