/*!**************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/styles/vaperail_theme.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap);
/*!********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/styles/security.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap);
/*!**************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/@symfony/ux-live-component/dist/live.min.css ***!
  \**************************************************************************************************************************************************/
[data-loading=""],[data-loading=show],[data-loading*=\|show]{display:none}
/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
body {
    background-color: black;
}

.page-actions .btn {
    display: flex;
    align-items: center;
}
.actions .action-delete {
    width: max-content;
}

.ea-light-scheme .main-content > * {
    background: white;
}

.list-of-lists > legend + .form-widget {
    border: 1px solid;
    padding: 8px 12px;
    border-radius: 6px;
}

.list-of-lists .ea-form-collection-items {
    border: 1px solid;
    border-radius: 6px;
}

.list-of-lists .ea-form-collection-items .collection-empty {
    padding: 12px;
    margin: 0;
}

.list-of-lists .ea-form-collection-items .accordion-item {
    display: flex;
    border-radius: 0;
    border: none;
    padding: 10px 0;
}

.list-of-lists .ea-form-collection-items .field-collection-item:first-child .accordion-item {
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}

.list-of-lists .ea-form-collection-items .field-collection-item:last-child .accordion-item {
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
}

.list-of-lists .ea-form-collection-items .accordion-header .btn-link-danger {
    padding-left: 16px;
}

.list-of-lists .ea-form-collection-items .accordion-header, .list-of-lists .ea-form-collection-items .accordion-header .icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.list-of-lists .ea-form-collection-items .accordion-button {
    display: none;
}
.list-of-lists .ea-form-collection-items .accordion-collapse {
    display: block !important;
    flex: 1;
}
.list-of-lists .ea-form-collection-items .accordion-body {
    padding: 10px var(--bs-accordion-body-padding-x)
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/styles/vaperail_theme.scss (1) ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
html {
  background-color: black;
  --vp-color-primary-rgb: 0, 0, 0;
  --vp-color-secondary-rgb: 122, 176, 0;
  --vp-color-secondary-alt-rgb: 132, 189, 0;
  --vp-color-ternary-alt-rgb: 0, 5, 19;
  --vp-color-ternary-rgb: 102, 107, 133;
  --vp-color-ternary-light-rgb: 208, 213, 221;
  --vp-color-primary: rgb(var(--vp-color-primary-rgb));
  --vp-color-secondary: rgb(var(--vp-color-secondary-rgb));
  --vp-color-secondary-alt: rgb(var(--vp-color-secondary-alt-rgb));
  --vp-color-ternary-alt: rgb(var(--vp-color-ternary-alt-rgb));
  --vp-color-ternary: rgb(var(--vp-color-ternary-rgb));
  --vp-color-ternary-light: rgb(var(--vp-color-ternary-light-rgb));
  --vp-color-secondary-dark: #5a8500;
  --vp-color-secondary-light: #a4d440;
  --vp-color-secondary-glow: rgba(122, 176, 0, 0.3);
  --vp-color-secondary-glow-sm: rgba(122, 176, 0, 0.15);
  --vp-color-surface-dark: #0a0a0f;
  --vp-color-surface-elevated: #12131a;
  --vp-color-surface-card: #1a1b23;
  --vp-color-border: rgba(255, 255, 255, 0.08);
  --vp-color-border-hover: rgba(122, 176, 0, 0.3);
  --vp-color-text-muted: rgba(255, 255, 255, 0.5);
  --vp-color-text-secondary: rgba(255, 255, 255, 0.7);
  --vp-space-xs: 4px;
  --vp-space-sm: 8px;
  --vp-space-md: 16px;
  --vp-space-lg: 24px;
  --vp-space-xl: 32px;
  --vp-space-2xl: 48px;
  --vp-radius-sm: 6px;
  --vp-radius-md: 12px;
  --vp-radius-lg: 18px;
  --vp-radius-xl: 24px;
  --vp-radius-full: 9999px;
  --vp-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --vp-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3);
  --vp-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -4px rgba(0, 0, 0, 0.4);
  --vp-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.4);
  --vp-shadow-glow: 0 0 20px var(--vp-color-secondary-glow);
  --vp-shadow-glow-sm: 0 0 10px var(--vp-color-secondary-glow-sm);
  --vp-shadow-focus: 0 0 0 3px rgba(122, 176, 0, 0.35), 0 0 12px rgba(122, 176, 0, 0.25);
  --vp-shadow-focus-danger: 0 0 0 3px rgba(239, 68, 68, 0.35), 0 0 12px rgba(239, 68, 68, 0.25);
  --vp-transition-fast: 150ms ease;
  --vp-transition-base: 250ms ease;
  --vp-transition-slow: 400ms ease;
  --vp-transition-bounce: 400ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

body {
  color-scheme: dark;
  font-family: Inter, Arial, sans-serif;
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
}

body:not(.ea-content-width-full) .content-wrapper {
  max-inline-size: unset;
}

.content-wrapper,
.content,
main,
#main {
  max-width: 100%;
  overflow-x: auto;
}

.btn-outline {
  border-radius: var(--vp-radius-sm);
  background: var(--vp-color-surface-elevated);
  border: 1px solid var(--vp-color-border);
  color: white !important;
  transition: all var(--vp-transition-fast);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--vp-space-sm);
  width: max-content;
  font-weight: 500;
  font-size: 0.875rem;
  padding: var(--vp-space-sm) var(--vp-space-md);
}
.btn-outline:hover {
  border-color: var(--vp-color-secondary);
  color: var(--vp-color-secondary) !important;
  cursor: pointer;
}
.btn-outline:active {
  background: rgba(122, 176, 0, 0.1);
}
.btn-outline:focus {
  outline: none;
  border-color: var(--vp-color-secondary);
}

.btn-text {
  background: transparent;
  border: none;
  border-radius: var(--vp-radius-sm);
  color: var(--vp-color-secondary) !important;
  text-decoration: none;
  transition: all var(--vp-transition-fast);
  padding: var(--vp-space-xs) var(--vp-space-sm);
  font-weight: 500;
  font-size: 0.875rem;
}
.btn-text:hover {
  color: var(--vp-color-secondary-light) !important;
  background: rgba(122, 176, 0, 0.1);
}
.btn-text:active {
  background: rgba(122, 176, 0, 0.15);
}

.btn-primary .btn-label, .btn-secondary .btn-label, .btn-danger .btn-label {
  display: flex;
  column-gap: 5px;
}
.btn-primary .btn-label .icon, .btn-secondary .btn-label .icon, .btn-danger .btn-label .icon {
  display: flex;
  justify-content: center;
  align-items: center;
}

.btn-primary {
  border: 1px solid var(--vp-color-secondary);
  border-radius: var(--vp-radius-sm);
  background: var(--vp-color-secondary);
  color: white !important;
  transition: all var(--vp-transition-fast);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--vp-space-xs);
  font-weight: 500;
  font-size: 0.875rem;
  padding: var(--vp-space-xs) var(--vp-space-sm);
}
.btn-primary:hover {
  background: var(--vp-color-secondary-light) !important;
  border-color: var(--vp-color-secondary-light) !important;
  color: white !important;
  cursor: pointer;
}
.btn-primary:active, .btn-primary:focus {
  background: var(--vp-color-secondary-dark) !important;
  border-color: var(--vp-color-secondary-dark) !important;
  color: white !important;
  box-shadow: var(--vp-shadow-focus) !important;
  outline: none !important;
}
.btn-primary:focus-visible {
  background: var(--vp-color-secondary-dark) !important;
  border-color: var(--vp-color-secondary-dark) !important;
  box-shadow: var(--vp-shadow-focus) !important;
  outline: none !important;
}
.btn-primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.btn-secondary {
  border-radius: var(--vp-radius-sm) !important;
  background: var(--vp-color-surface-elevated) !important;
  border: 1px solid var(--vp-color-border) !important;
  color: white !important;
  transition: all var(--vp-transition-fast) !important;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--vp-space-xs);
  font-weight: 500 !important;
  font-size: 0.875rem !important;
  padding: var(--vp-space-sm) var(--vp-space-md);
  height: 38px;
}
.btn-secondary:hover {
  background: var(--vp-color-surface-dark) !important;
  border-color: var(--vp-color-secondary) !important;
  color: var(--vp-color-secondary) !important;
  cursor: pointer;
}
.btn-secondary:active, .btn-secondary:focus {
  background: var(--vp-color-surface-dark) !important;
  border-color: var(--vp-color-secondary) !important;
  color: var(--vp-color-secondary) !important;
  box-shadow: var(--vp-shadow-focus) !important;
  outline: none !important;
}
.btn-secondary:focus-visible {
  box-shadow: var(--vp-shadow-focus) !important;
  outline: none !important;
}
.btn-secondary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.btn-danger {
  border-radius: var(--vp-radius-sm);
  background: #ef4444 !important;
  border: 1px solid #ef4444 !important;
  color: white !important;
  transition: all var(--vp-transition-fast);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--vp-space-xs);
  font-weight: 500;
  font-size: 0.875rem;
  padding: var(--vp-space-xs) var(--vp-space-sm);
}
.btn-danger:hover {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: white !important;
  cursor: pointer;
}
.btn-danger:active, .btn-danger:focus {
  background: #b91c1c !important;
  border-color: #b91c1c !important;
  color: white !important;
  box-shadow: var(--vp-shadow-focus-danger) !important;
  outline: none !important;
}
.btn-danger:focus-visible {
  box-shadow: var(--vp-shadow-focus-danger) !important;
  outline: none !important;
}
.btn-danger:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.action-delete.btn.btn-secondary,
.btn-delete.btn.btn-secondary {
  background: #ef4444 !important;
  border: 1px solid #ef4444 !important;
  color: white !important;
}
.action-delete.btn.btn-secondary:hover,
.btn-delete.btn.btn-secondary:hover {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: white !important;
}
.action-delete.btn.btn-secondary:active, .action-delete.btn.btn-secondary:focus,
.btn-delete.btn.btn-secondary:active,
.btn-delete.btn.btn-secondary:focus {
  background: #b91c1c !important;
  border-color: #b91c1c !important;
  color: white !important;
  box-shadow: var(--vp-shadow-focus-danger) !important;
  outline: none !important;
}
.action-delete.btn.btn-secondary:focus-visible,
.btn-delete.btn.btn-secondary:focus-visible {
  box-shadow: var(--vp-shadow-focus-danger) !important;
  outline: none !important;
}

.action-index.btn.btn-secondary {
  background: var(--vp-color-secondary) !important;
  border: 1px solid var(--vp-color-secondary) !important;
  color: white !important;
}
.action-index.btn.btn-secondary:hover {
  background: var(--vp-color-secondary-light) !important;
  border-color: var(--vp-color-secondary-light) !important;
  color: white !important;
}
.action-index.btn.btn-secondary:active, .action-index.btn.btn-secondary:focus {
  background: var(--vp-color-secondary-dark) !important;
  border-color: var(--vp-color-secondary-dark) !important;
  color: white !important;
  box-shadow: var(--vp-shadow-focus) !important;
  outline: none !important;
}
.action-index.btn.btn-secondary:focus-visible {
  box-shadow: var(--vp-shadow-focus) !important;
  outline: none !important;
}

input.checkbox[type=checkbox],
input.form-check-input[type=checkbox] {
  appearance: none;
  width: 18px;
  height: 18px;
  padding: 0;
  margin: 0;
  border: 2px solid var(--vp-color-border);
  border-radius: var(--vp-radius-sm);
  background: var(--vp-color-surface-elevated);
  cursor: pointer;
  position: relative;
  vertical-align: middle;
  transition: all var(--vp-transition-fast);
}
input.checkbox[type=checkbox]:hover,
input.form-check-input[type=checkbox]:hover {
  border-color: var(--vp-color-secondary);
}
input.checkbox[type=checkbox]:checked,
input.form-check-input[type=checkbox]:checked {
  background: var(--vp-color-secondary);
  border-color: var(--vp-color-secondary);
}
input.checkbox[type=checkbox]:checked::after,
input.form-check-input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
input.checkbox[type=checkbox]:focus,
input.form-check-input[type=checkbox]:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(122, 176, 0, 0.2);
}
input.checkbox[type=checkbox]:disabled,
input.form-check-input[type=checkbox]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.checkbox-switch label,
label.checkbox-switch,
.form-group.checkbox-switch label {
  padding-bottom: 0 !important;
}

.required:after {
  color: var(--vp-color-secondary);
  border-radius: 50%;
  content: "*";
  display: inline-block;
  filter: opacity(75%);
  position: relative;
  right: -2px;
}

.content-header {
  background: none !important;
}
.content-header .content-header-actions {
  display: flex;
  gap: 10px;
}

.global-actions {
  display: flex;
  align-items: center;
  gap: var(--vp-space-sm);
}
.global-actions .btn {
  height: 38px;
  padding: var(--vp-space-sm) var(--vp-space-md);
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.datagrid-filters .btn {
  height: 38px;
  padding: var(--vp-space-sm) var(--vp-space-md);
}

.datagrid-filters .filter-heading,
form[name=filters] .filter-heading {
  display: flex;
  align-items: center;
  gap: var(--vp-space-sm);
}
.datagrid-filters .filter-heading .filter-checkbox,
form[name=filters] .filter-heading .filter-checkbox {
  appearance: none;
  width: 16px;
  height: 16px;
  padding: 0;
  margin: 0;
  border: 2px solid var(--vp-color-border);
  border-radius: var(--vp-radius-sm);
  background: var(--vp-color-surface-elevated);
  cursor: pointer;
  position: relative;
  transition: all var(--vp-transition-fast);
}
.datagrid-filters .filter-heading .filter-checkbox:hover,
form[name=filters] .filter-heading .filter-checkbox:hover {
  border-color: var(--vp-color-secondary);
}
.datagrid-filters .filter-heading .filter-checkbox:checked,
form[name=filters] .filter-heading .filter-checkbox:checked {
  background: var(--vp-color-secondary);
  border-color: var(--vp-color-secondary);
}
.datagrid-filters .filter-heading .filter-checkbox:checked::after,
form[name=filters] .filter-heading .filter-checkbox:checked::after {
  content: "";
  position: absolute;
  top: 0px;
  left: 4px;
  width: 4px;
  height: 8px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.datagrid-filters .filter-heading .filter-checkbox:focus,
form[name=filters] .filter-heading .filter-checkbox:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(122, 176, 0, 0.2);
}
.datagrid-filters .filter-heading a, .datagrid-filters .filter-heading a[data-bs-toggle],
form[name=filters] .filter-heading a,
form[name=filters] .filter-heading a[data-bs-toggle] {
  color: white !important;
  text-decoration: none !important;
  font-weight: 500;
  transition: all var(--vp-transition-fast);
  display: inline-flex;
  align-items: center;
  gap: var(--vp-space-xs);
  --link-color: white;
  --bs-link-color-rgb: 255, 255, 255;
}
.datagrid-filters .filter-heading a::after, .datagrid-filters .filter-heading a[data-bs-toggle]::after,
form[name=filters] .filter-heading a::after,
form[name=filters] .filter-heading a[data-bs-toggle]::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform var(--vp-transition-fast);
  margin-top: -2px;
}
.datagrid-filters .filter-heading a:hover, .datagrid-filters .filter-heading a[data-bs-toggle]:hover,
form[name=filters] .filter-heading a:hover,
form[name=filters] .filter-heading a[data-bs-toggle]:hover {
  color: var(--vp-color-secondary) !important;
  --link-color: var(--vp-color-secondary);
  --bs-link-color-rgb: 122, 176, 0;
}
.datagrid-filters .filter-heading a[aria-expanded=true], .datagrid-filters .filter-heading a[data-bs-toggle][aria-expanded=true],
form[name=filters] .filter-heading a[aria-expanded=true],
form[name=filters] .filter-heading a[data-bs-toggle][aria-expanded=true] {
  color: var(--vp-color-secondary) !important;
  --link-color: var(--vp-color-secondary);
  --bs-link-color-rgb: 122, 176, 0;
}
.datagrid-filters .filter-heading a[aria-expanded=true]::after, .datagrid-filters .filter-heading a[data-bs-toggle][aria-expanded=true]::after,
form[name=filters] .filter-heading a[aria-expanded=true]::after,
form[name=filters] .filter-heading a[data-bs-toggle][aria-expanded=true]::after {
  transform: rotate(-135deg);
  margin-top: 2px;
}

.table-responsive,
.datagrid {
  overflow-x: auto;
  max-width: 100%;
}

table,
table.table {
  width: 100%;
  max-width: 100%;
  table-layout: auto;
  background: var(--vp-color-surface-card) !important;
  border: 1px solid var(--vp-color-border) !important;
  border-collapse: separate;
  border-radius: var(--vp-radius-lg);
  border-spacing: 0;
  overflow: hidden;
  vertical-align: middle;
  --bs-table-bg: var(--vp-color-surface-card);
  --bs-table-color: white;
  letter-spacing: 0.1px;
}
table tr,
table.table tr {
  border: none;
}
table th, table td,
table.table th,
table.table td {
  font-weight: normal;
  padding: var(--vp-space-sm) var(--vp-space-md);
  text-align: left;
  box-shadow: none !important;
  vertical-align: middle;
}
@media (max-width: 842px) {
  table th, table td,
  table.table th,
  table.table td {
    padding: var(--vp-space-sm) var(--vp-space-xs);
  }
}
@media (max-width: 720px) {
  table th, table td,
  table.table th,
  table.table td {
    padding: var(--vp-space-xs);
    font-size: 0.8rem;
  }
}
table.table-sensor-detail tr:last-child td, table.table-sensor-detail tr:last-child th,
table.table.table-sensor-detail tr:last-child td,
table.table.table-sensor-detail tr:last-child th {
  border-bottom: none !important;
}

thead,
thead.table-light {
  background: linear-gradient(135deg, var(--vp-color-surface-elevated) 0%, var(--vp-color-surface-dark) 100%) !important;
  --bs-table-bg: transparent;
}
thead th,
thead.table-light th {
  color: var(--vp-color-text-secondary) !important;
  background: transparent !important;
  font-weight: 600;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 2px solid var(--vp-color-secondary) !important;
  white-space: normal;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
thead th .form-check,
thead.table-light th .form-check {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
}
thead th.sorted,
thead.table-light th.sorted {
  color: var(--vp-color-secondary) !important;
}
thead th.sorted a, thead th.sorted .icon, thead th.sorted .icon svg,
thead.table-light th.sorted a,
thead.table-light th.sorted .icon,
thead.table-light th.sorted .icon svg {
  color: var(--vp-color-secondary) !important;
}
thead th a,
thead.table-light th a {
  color: inherit !important;
  text-decoration: none;
  display: flex !important;
  flex-direction: row;
  align-items: center;
  gap: var(--vp-space-xs);
}
thead th a .icon,
thead.table-light th a .icon {
  flex-shrink: 0;
  color: inherit;
}
thead th a .icon svg,
thead.table-light th a .icon svg {
  color: inherit;
}
thead th a:hover,
thead.table-light th a:hover {
  color: var(--vp-color-secondary) !important;
}
thead th a:hover .icon, thead th a:hover .icon svg,
thead.table-light th a:hover .icon,
thead.table-light th a:hover .icon svg {
  color: var(--vp-color-secondary) !important;
}

.datagrid thead a,
.datagrid thead span:not(.icon) {
  white-space: normal !important;
}

tbody tr {
  transition: background var(--vp-transition-fast);
  background: transparent !important;
}
tbody tr td {
  border-bottom: 1px solid var(--vp-color-border);
  background: transparent !important;
}
tbody tr:last-child td {
  border-bottom: none;
}
tbody tr:hover {
  background: rgba(122, 176, 0, 0.05) !important;
}

table td,
table.table td {
  color: var(--vp-color-text-secondary) !important;
}
table td:first-child,
table.table td:first-child {
  font-weight: 600;
  color: white !important;
}
table td .btn,
table.table td .btn {
  padding: var(--vp-space-xs) var(--vp-space-sm);
}
table td a:not(.btn),
table.table td a:not(.btn) {
  color: var(--vp-color-secondary) !important;
  text-decoration: none;
}
table td a:not(.btn):hover,
table.table td a:not(.btn):hover {
  color: var(--vp-color-secondary-light) !important;
  text-decoration: underline;
}
table td.actions,
table.table td.actions {
  text-align: center;
  vertical-align: middle;
}
table td.actions > .dropdown, table td.actions > div,
table.table td.actions > .dropdown,
table.table td.actions > div {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--vp-space-sm);
}
table td.actions form,
table.table td.actions form {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
}
table td.actions a, table td.actions button,
table.table td.actions a,
table.table td.actions button {
  color: var(--vp-color-text-muted) !important;
  background: transparent;
  border: none;
  height: 32px;
  padding: 0 var(--vp-space-sm);
  border-radius: var(--vp-radius-sm);
  transition: all var(--vp-transition-fast);
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--vp-space-xs);
  margin: 0 !important;
  text-decoration: none !important;
}
table td.actions a .action-icon, table td.actions a svg, table td.actions button .action-icon, table td.actions button svg,
table.table td.actions a .action-icon,
table.table td.actions a svg,
table.table td.actions button .action-icon,
table.table td.actions button svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
table td.actions a .action-label, table td.actions button .action-label,
table.table td.actions a .action-label,
table.table td.actions button .action-label {
  font-size: 0.8rem;
  font-weight: 500;
}
table td.actions a:hover, table td.actions button:hover,
table.table td.actions a:hover,
table.table td.actions button:hover {
  color: white !important;
  background: rgba(122, 176, 0, 0.15);
}
table td.actions .action-delete:hover,
table td.actions .btn-delete:hover,
table td.actions form[action*=delete] button:hover,
table.table td.actions .action-delete:hover,
table.table td.actions .btn-delete:hover,
table.table td.actions form[action*=delete] button:hover {
  color: #ef4444 !important;
  background: rgba(239, 68, 68, 0.1);
}
table td .badge.badge-secondary,
table.table td .badge.badge-secondary {
  background: rgba(122, 176, 0, 0.12) !important;
  color: var(--vp-color-secondary) !important;
  border: none;
  font-weight: 500;
  font-size: 0.7rem;
  padding: 3px 8px;
  border-radius: 4px;
}
table td .badge.badge-outline,
table.table td .badge.badge-outline {
  background-color: transparent;
  color: var(--vp-color-secondary);
  border: none;
  font-weight: 500;
  font-size: 0.7rem;
  padding: 3px 8px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(122, 176, 0, 0.4);
}
table td .form-check,
table.table td .form-check {
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
}
table td .form-check .form-check-input,
table.table td .form-check .form-check-input {
  background-color: var(--vp-color-secondary-alt);
  margin: 0;
  float: none;
}
table td[data-column=collection], table td[data-column=association],
table td .field-collection, table td.field-collection,
table td .field-association, table td.field-association,
table.table td[data-column=collection],
table.table td[data-column=association],
table.table td .field-collection,
table.table td.field-collection,
table.table td .field-association,
table.table td.field-association {
  text-align: center;
}
table td[data-column=collection] > *, table td[data-column=association] > *,
table td .field-collection > *, table td.field-collection > *,
table td .field-association > *, table td.field-association > *,
table.table td[data-column=collection] > *,
table.table td[data-column=association] > *,
table.table td .field-collection > *,
table.table td.field-collection > *,
table.table td .field-association > *,
table.table td.field-association > * {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
}
table td[data-column=collection] .badge, table td[data-column=association] .badge,
table td .field-collection .badge, table td.field-collection .badge,
table td .field-association .badge, table td.field-association .badge,
table.table td[data-column=collection] .badge,
table.table td[data-column=association] .badge,
table.table td .field-collection .badge,
table.table td.field-collection .badge,
table.table td .field-association .badge,
table.table td.field-association .badge {
  margin: 2px;
}

.form-check.form-switch {
  display: flex;
  align-items: center;
  padding-left: 0;
  min-height: auto;
}
.form-check.form-switch .form-check-input,
.form-check.form-switch .form-check-input[type=checkbox] {
  width: 32px;
  height: 18px;
  padding: 0;
  margin: 0;
  background-color: rgba(255, 255, 255, 0.1) !important;
  background-image: none !important;
  background-size: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 9px !important;
  cursor: pointer;
  position: relative;
  transition: all 200ms ease;
  flex-shrink: 0;
}
.form-check.form-switch .form-check-input::after,
.form-check.form-switch .form-check-input[type=checkbox]::after {
  content: "" !important;
  position: absolute !important;
  top: 2px !important;
  left: 2px !important;
  width: 12px !important;
  height: 12px !important;
  background-color: rgba(255, 255, 255, 0.5) !important;
  border-radius: 50% !important;
  transition: all 200ms ease !important;
  transform: none !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
}
.form-check.form-switch .form-check-input:hover,
.form-check.form-switch .form-check-input[type=checkbox]:hover {
  background-color: rgba(255, 255, 255, 0.15) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}
.form-check.form-switch .form-check-input:checked,
.form-check.form-switch .form-check-input[type=checkbox]:checked {
  background-color: var(--vp-color-secondary) !important;
  background-image: none !important;
  background-size: 0 !important;
  border-color: var(--vp-color-secondary) !important;
}
.form-check.form-switch .form-check-input:checked::after,
.form-check.form-switch .form-check-input[type=checkbox]:checked::after {
  transform: translateX(14px) !important;
  background-color: white !important;
}
.form-check.form-switch .form-check-input:focus,
.form-check.form-switch .form-check-input[type=checkbox]:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(122, 176, 0, 0.2) !important;
  background-image: none !important;
  background-size: 0 !important;
}
.form-check.form-switch .form-check-input:disabled,
.form-check.form-switch .form-check-input[type=checkbox]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.form-check.form-switch .form-check-label {
  margin-left: var(--vp-space-xs);
  color: var(--vp-color-text-secondary);
  font-size: 0.8rem;
  cursor: pointer;
}

#main-menu {
  --sidebar-menu-active-item-bg: transparent !important;
}
#main-menu .menu-item .menu-item-contents {
  display: flex;
  align-items: center;
  gap: var(--vp-space-sm);
  padding: var(--vp-space-sm) var(--vp-space-md);
  border-radius: var(--vp-radius-sm);
  text-decoration: none;
  transition: all var(--vp-transition-fast);
  color: var(--vp-color-text-secondary) !important;
}
#main-menu .menu-item .menu-item-contents .menu-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  font-size: 1rem;
  transition: color var(--vp-transition-fast);
}
#main-menu .menu-item .menu-item-contents .menu-icon i, #main-menu .menu-item .menu-item-contents .menu-icon svg {
  color: var(--vp-color-text-muted);
  transition: color var(--vp-transition-fast);
}
#main-menu .menu-item .menu-item-contents .menu-item-label {
  color: inherit;
  font-size: 0.875rem;
  font-weight: 500;
}
#main-menu .menu-item .menu-item-contents:hover {
  background: rgba(122, 176, 0, 0.08);
  color: white !important;
}
#main-menu .menu-item .menu-item-contents:hover .menu-icon i,
#main-menu .menu-item .menu-item-contents:hover .menu-icon svg {
  color: var(--vp-color-secondary) !important;
}
#main-menu .menu-item.active .menu-item-contents {
  background: rgba(122, 176, 0, 0.12);
  color: white !important;
  box-shadow: inset 3px 0 0 var(--vp-color-secondary);
}
#main-menu .menu-item.active .menu-item-contents .menu-icon i,
#main-menu .menu-item.active .menu-item-contents .menu-icon svg {
  color: var(--vp-color-secondary) !important;
}
#main-menu .menu-item.active .menu-item-contents .menu-item-label {
  color: white;
}

body.ea-sidebar-width-compact #main-menu .menu .menu-item .menu-icon {
  font-size: 18px;
}
body.ea-sidebar-width-compact #main-menu .menu .menu-item .menu-icon i, body.ea-sidebar-width-compact #main-menu .menu .menu-item .menu-icon svg {
  color: var(--vp-color-text-muted);
}
body.ea-sidebar-width-compact #main-menu .menu .menu-item .menu-item-contents {
  padding: var(--vp-space-sm) 5px var(--vp-space-sm);
  box-shadow: none;
}
body.ea-sidebar-width-compact #main-menu .menu .menu-item.active {
  padding-left: 0;
}
body.ea-sidebar-width-compact #main-menu .menu .menu-item.active .menu-item-contents {
  box-shadow: inset 3px 0 0 var(--vp-color-secondary);
  padding-left: calc(var(--sidebar-padding-left) + 5px);
  padding-right: 0px;
}
body.ea-sidebar-width-compact #main-menu .menu .menu-item.active .menu-icon i,
body.ea-sidebar-width-compact #main-menu .menu .menu-item.active .menu-icon svg {
  color: var(--vp-color-secondary) !important;
}
body.ea-sidebar-width-compact #main-menu .menu .menu-item:hover {
  background: var(--vp-color-surface-card) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}
body.ea-sidebar-width-compact #main-menu .menu .menu-item:hover .menu-item-contents {
  background: var(--vp-color-surface-card) !important;
  color: white !important;
  box-shadow: none;
}
body.ea-sidebar-width-compact #main-menu .menu .menu-item:hover .menu-icon i,
body.ea-sidebar-width-compact #main-menu .menu .menu-item:hover .menu-icon svg {
  color: var(--vp-color-secondary) !important;
}
body.ea-sidebar-width-compact #main-menu .menu .menu-item:hover .menu-item-label {
  color: white !important;
}
body.ea-sidebar-width-compact .portal-links {
  flex-direction: column;
  gap: var(--vp-space-sm);
  align-items: center;
}
body.ea-sidebar-width-compact .portal-links .portal-link .portal-link-img {
  padding: 2px 4px;
}
body.ea-sidebar-width-compact .portal-links .portal-link .portal-link-img img {
  width: 32px;
  height: 22px;
}
body.ea-sidebar-width-compact .portal-links .portal-link .portal-link-label {
  bottom: auto;
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  margin-left: var(--vp-space-sm);
}

.logo {
  display: flex !important;
  align-items: center !important;
  column-gap: 12px;
}

.portal-links {
  display: flex;
  column-gap: var(--vp-space-md);
  align-items: center;
  margin-bottom: 20px;
}
.portal-links .portal-link {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  position: relative;
}
.portal-links .portal-link .portal-link-img {
  border-radius: var(--vp-radius-md);
  overflow: hidden;
  background: white;
  border: 1px solid var(--vp-color-border);
  box-shadow: 0 0 6px rgba(122, 176, 0, 0.3);
  transition: all var(--vp-transition-base);
  padding: 4px 6px;
}
.portal-links .portal-link .portal-link-img img {
  width: 42px;
  height: 28px;
  object-fit: contain;
  transition: all var(--vp-transition-fast);
}
.portal-links .portal-link .portal-link-label {
  position: absolute;
  color: white;
  padding: 2px 4px;
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
  background-color: var(--vp-color-secondary);
  font-size: 0.75rem;
  font-weight: 500;
  text-align: center;
  bottom: -30px;
  left: 50%;
  transform: translateX(-50%);
  display: none;
  border-radius: var(--vp-radius-sm);
  width: fit-content;
  white-space: nowrap;
  z-index: 100;
}
.portal-links .portal-link:hover {
  cursor: pointer;
}
.portal-links .portal-link:hover .portal-link-img {
  border-color: var(--vp-color-secondary);
  box-shadow: 0 0 12px rgba(122, 176, 0, 0.5);
}
.portal-links .portal-link:hover .portal-link-label {
  display: block;
}

.content-footer {
  margin: var(--vp-space-md) calc(-1 * var(--vp-space-lg)) 0;
  padding: 0 var(--vp-space-lg);
}

.list-pagination-counter {
  color: var(--vp-color-text-muted);
  font-size: 0.875rem;
}
.list-pagination-counter strong {
  color: white;
  font-weight: 600;
}

.pagination {
  display: flex;
  align-items: center;
  gap: var(--vp-space-xs);
  margin: 0;
  flex-wrap: wrap;
}
.pagination .page-item .page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 var(--vp-space-sm);
  background: var(--vp-color-surface-elevated);
  border: 1px solid var(--vp-color-border);
  border-radius: var(--vp-radius-sm);
  color: var(--vp-color-text-secondary);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  transition: all var(--vp-transition-fast);
}
.pagination .page-item .page-link:hover {
  background: rgba(122, 176, 0, 0.1);
  border-color: var(--vp-color-secondary);
  color: var(--vp-color-secondary);
}
.pagination .page-item.active .page-link {
  background: var(--vp-color-secondary);
  border-color: var(--vp-color-secondary);
  color: white;
}
.pagination .page-item.disabled .page-link {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

[data-cosmos-target=paginationTop] {
  margin-bottom: 20px;
}

.content-top .content-search .content-search-label input.is-blank {
  min-inline-size: 400px;
}

.content-top .content-search input[type=search][name=query]:active,
.content-top .content-search input[type=search][name=query]:focus {
  box-shadow: var(--vp-shadow-focus) !important;
  outline: none !important;
  border-color: var(--vp-color-secondary) !important;
  background: var(--vp-color-surface-dark) !important;
}

.content-search .form-widget {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 280px;
}
.content-search .form-widget .content-search-icon {
  position: absolute;
  left: var(--vp-space-md);
  top: 50%;
  transform: translateY(-50%);
  color: var(--vp-color-secondary);
  pointer-events: none;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.content-search .form-widget .content-search-icon svg {
  width: 18px;
  height: 18px;
}
.content-search .form-widget .content-search-label .form-control {
  width: 100%;
  height: 38px;
  padding: var(--vp-space-sm) var(--vp-space-md) var(--vp-space-sm) calc(var(--vp-space-md) + 28px);
  background: var(--vp-color-surface-elevated);
  border: 1px solid var(--vp-color-border);
  border-radius: var(--vp-radius-sm);
  color: white;
  font-size: 0.875rem;
  transition: all var(--vp-transition-fast);
}
.content-search .form-widget .content-search-label .form-control::placeholder {
  color: var(--vp-color-text-muted);
}
.content-search .form-widget .content-search-label .form-control:focus {
  outline: none;
  border-color: var(--vp-color-secondary);
  box-shadow: var(--vp-shadow-focus);
  background: var(--vp-color-surface-dark);
}
.content-search .form-widget .content-search-label .form-control:hover:not(:focus) {
  border-color: var(--vp-color-secondary-alt);
}

[data-ea-collection-field] legend.col-form-label {
  color: white;
  font-weight: 600;
  font-size: 0.875rem;
  margin-bottom: var(--vp-space-xs);
}

.field-collection-item {
  display: flex;
  align-items: center;
  gap: var(--vp-space-sm);
  padding: var(--vp-space-xs) var(--vp-space-sm);
  background: transparent;
  border: none;
  border-radius: var(--vp-radius-sm);
  margin-bottom: var(--vp-space-xs);
}
.field-collection-item .field-collection-delete-button {
  flex-shrink: 0;
  padding: var(--vp-space-xs);
  background: transparent;
  border: none;
  color: var(--vp-color-text-muted);
  cursor: pointer;
  transition: color var(--vp-transition-fast);
  display: flex;
  align-items: center;
}
.field-collection-item .field-collection-delete-button:hover {
  color: #ef4444;
}
.field-collection-item .field-collection-delete-button svg {
  width: 16px;
  height: 16px;
}
.field-collection-item input.form-control {
  flex: 1;
  background: var(--vp-color-surface-dark);
  border: 1px solid var(--vp-color-border);
  border-radius: var(--vp-radius-sm);
  color: white;
  padding: var(--vp-space-xs) var(--vp-space-sm);
  font-size: 0.875rem;
}
.field-collection-item input.form-control:focus {
  outline: none;
  border-color: var(--vp-color-secondary);
  box-shadow: 0 0 0 2px rgba(122, 176, 0, 0.2);
}

.collection-empty .badge {
  background: rgba(122, 176, 0, 0.1) !important;
  color: var(--vp-color-secondary) !important;
  border: 1px solid rgba(122, 176, 0, 0.3);
  font-size: 0.75rem;
  padding: 2px 8px;
}

.ea-form-collection-items {
  border: 1px solid var(--vp-color-border) !important;
  border-radius: var(--vp-radius-sm);
  background: var(--vp-color-surface-elevated) !important;
  padding: var(--vp-space-sm);
}
.ea-form-collection-items .ea-form-collection-items {
  border: none !important;
  background: transparent !important;
  padding: 0;
}
.ea-form-collection-items .accordion-item {
  width: 100%;
}

.list-of-lists > legend + .form-widget {
  border: 1px solid var(--vp-color-border) !important;
  border-radius: var(--vp-radius-sm);
  background: var(--vp-color-surface-elevated) !important;
  padding: var(--vp-space-sm);
}

.btn.btn-link.field-collection-add-button,
.field-collection-add-button {
  display: inline-flex !important;
  align-items: center;
  gap: var(--vp-space-xs);
  padding: var(--vp-space-xs) var(--vp-space-sm) !important;
  margin-top: var(--vp-space-xs);
  background: transparent !important;
  border: none !important;
  color: var(--vp-color-secondary) !important;
  font-size: 0.875rem;
  cursor: pointer;
  transition: color var(--vp-transition-fast);
  text-decoration: none !important;
  box-shadow: none !important;
}
.btn.btn-link.field-collection-add-button:hover, .btn.btn-link.field-collection-add-button:focus,
.field-collection-add-button:hover,
.field-collection-add-button:focus {
  color: var(--vp-color-secondary-light) !important;
  background: transparent !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.btn.btn-link.field-collection-add-button .icon svg,
.field-collection-add-button .icon svg {
  width: 14px;
  height: 14px;
}

.ts-wrapper .ts-control {
  background: var(--vp-color-surface-dark) !important;
  border: 1px solid var(--vp-color-border) !important;
  border-radius: var(--vp-radius-sm) !important;
  color: white !important;
  padding: var(--vp-space-xs) var(--vp-space-sm) !important;
  min-height: 38px;
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: all var(--vp-transition-fast);
}
.ts-wrapper .ts-control:hover {
  border-color: var(--vp-color-secondary-alt) !important;
}
.ts-wrapper .ts-control .items-placeholder,
.ts-wrapper .ts-control input::placeholder {
  color: var(--vp-color-text-muted) !important;
}
.ts-wrapper .ts-control .item {
  color: white !important;
  background: transparent !important;
}
.ts-wrapper .ts-control .clear-button {
  color: var(--vp-color-text-muted) !important;
  font-size: 1.2rem;
  padding: 0 var(--vp-space-xs);
  transition: color var(--vp-transition-fast);
}
.ts-wrapper .ts-control .clear-button:hover {
  color: #ef4444 !important;
}
.ts-wrapper.focus .ts-control, .ts-wrapper.input-active .ts-control {
  border-color: var(--vp-color-secondary) !important;
  box-shadow: 0 0 0 2px rgba(122, 176, 0, 0.2) !important;
}
.ts-wrapper .ts-dropdown {
  background: var(--vp-color-surface-elevated) !important;
  border: 1px solid var(--vp-color-border) !important;
  border-radius: var(--vp-radius-sm) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
  margin-top: var(--vp-space-xs);
  display: flex;
  flex-direction: column;
}
.ts-wrapper .ts-dropdown .dropdown-input-wrap {
  order: -1;
  padding: var(--vp-space-sm);
  border-bottom: 1px solid var(--vp-color-border);
}
.ts-wrapper .ts-dropdown .dropdown-input-wrap .dropdown-input {
  width: 100%;
  background: var(--vp-color-surface-dark) !important;
  border: 1px solid var(--vp-color-border) !important;
  border-radius: var(--vp-radius-sm) !important;
  color: white !important;
  padding: var(--vp-space-xs) var(--vp-space-sm);
  font-size: 0.875rem;
}
.ts-wrapper .ts-dropdown .dropdown-input-wrap .dropdown-input::placeholder {
  color: var(--vp-color-text-muted);
}
.ts-wrapper .ts-dropdown .dropdown-input-wrap .dropdown-input:focus {
  outline: none !important;
  border-color: var(--vp-color-secondary) !important;
  box-shadow: 0 0 0 2px rgba(122, 176, 0, 0.2) !important;
}
.ts-wrapper .ts-dropdown .ts-dropdown-content {
  max-height: 250px;
  overflow-y: auto;
  padding: var(--vp-space-xs);
}
.ts-wrapper .ts-dropdown .ts-dropdown-content .option {
  color: var(--vp-color-text-secondary) !important;
  padding: var(--vp-space-sm) var(--vp-space-md);
  border-radius: var(--vp-radius-sm);
  cursor: pointer;
  transition: all var(--vp-transition-fast);
}
.ts-wrapper .ts-dropdown .ts-dropdown-content .option:hover, .ts-wrapper .ts-dropdown .ts-dropdown-content .option.active {
  background: rgba(122, 176, 0, 0.1) !important;
  color: white !important;
}
.ts-wrapper .ts-dropdown .ts-dropdown-content .option.active {
  background: rgba(122, 176, 0, 0.2) !important;
  color: var(--vp-color-secondary) !important;
}
.ts-wrapper .ts-dropdown .ts-dropdown-content .no-results {
  color: var(--vp-color-text-muted);
  padding: var(--vp-space-md);
  text-align: center;
  font-size: 0.875rem;
}
.ts-wrapper.plugin-dropdown_input.focus .ts-dropdown .dropdown-input {
  border-color: var(--vp-color-secondary) !important;
  box-shadow: 0 0 0 2px rgba(122, 176, 0, 0.2) !important;
  outline: none !important;
}

.card {
  background: var(--vp-color-surface-card) !important;
  border: 1px solid var(--vp-color-border) !important;
  border-radius: var(--vp-radius-lg) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.card .card-header {
  background: linear-gradient(135deg, var(--vp-color-surface-elevated) 0%, var(--vp-color-surface-dark) 100%) !important;
  border-bottom: 2px solid var(--vp-color-secondary) !important;
  border-radius: var(--vp-radius-lg) var(--vp-radius-lg) 0 0 !important;
  padding: var(--vp-space-md);
}
.card .card-header .card-title {
  color: white;
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--vp-space-sm);
}
.card .card-header .card-title i, .card .card-header .card-title .icon, .card .card-header .card-title svg {
  color: var(--vp-color-secondary);
}
.card .card-body {
  padding: var(--vp-space-md);
  background: transparent;
}
.card .card-footer {
  background: var(--vp-color-surface-elevated) !important;
  border-top: 1px solid var(--vp-color-border) !important;
  padding: var(--vp-space-md);
}

.table-sensor-detail,
.table-detail {
  background: transparent !important;
  border: none !important;
}
.table-sensor-detail th, .table-sensor-detail td,
.table-detail th,
.table-detail td {
  padding: var(--vp-space-sm) var(--vp-space-md);
  border-bottom: 1px solid var(--vp-color-border) !important;
  background: transparent !important;
}
.table-sensor-detail th,
.table-detail th {
  color: var(--vp-color-text-muted) !important;
  font-weight: 500;
  font-size: 0.875rem;
  text-transform: none;
  letter-spacing: normal;
  width: 40%;
}
.table-sensor-detail td,
.table-detail td {
  color: white !important;
  font-weight: 400;
}
.table-sensor-detail tr:last-child th, .table-sensor-detail tr:last-child td,
.table-detail tr:last-child th,
.table-detail tr:last-child td {
  border-bottom: none !important;
}
.table-sensor-detail.table-striped > tbody > tr:nth-of-type(odd) > *,
.table-detail.table-striped > tbody > tr:nth-of-type(odd) > * {
  background: transparent !important;
  --bs-table-bg-type: transparent;
}

.form-fieldset-body {
  display: block;
  background: var(--vp-color-surface-card);
  border: 1px solid var(--vp-color-border);
  border-radius: var(--vp-radius-lg);
  padding: var(--vp-space-md);
  min-height: calc(100vh - 200px);
}
.form-fieldset-body .row {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.field-group {
  display: flex;
  align-items: flex-start;
  padding: var(--vp-space-sm) var(--vp-space-md);
  border-bottom: 1px solid var(--vp-color-border);
  transition: background var(--vp-transition-fast);
}
.field-group:last-child {
  border-bottom: none;
}
.field-group:hover {
  background: rgba(122, 176, 0, 0.03);
}
.field-group .field-label {
  flex: 0 0 200px;
  color: var(--vp-color-text-muted);
  font-size: 0.875rem;
  font-weight: 500;
  padding-right: var(--vp-space-md);
}
@media (max-width: 768px) {
  .field-group .field-label {
    flex: 0 0 120px;
    font-size: 0.8rem;
  }
}
.field-group .field-value {
  flex: 1;
  color: white;
  font-size: 0.875rem;
}
.field-group .field-value a {
  color: var(--vp-color-secondary) !important;
  text-decoration: none;
}
.field-group .field-value a:hover {
  color: var(--vp-color-secondary-light) !important;
  text-decoration: underline;
}
.field-group .field-value time {
  color: var(--vp-color-text-secondary);
}
.field-group .field-value span[title] {
  color: var(--vp-color-text-secondary);
}
.field-group .field-value .badge {
  background: rgba(122, 176, 0, 0.12) !important;
  color: var(--vp-color-secondary) !important;
  font-size: 0.75rem;
  padding: 2px 8px;
  border-radius: 4px;
}
.field-group[required="1"] .field-label > div::after, .field-group[required=true] .field-label > div::after {
  content: " *";
  color: var(--vp-color-secondary);
}

.form-label {
  color: var(--vp-color-text-secondary);
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: var(--vp-space-xs);
}

.form-control {
  background: var(--vp-color-surface-dark) !important;
  border: 1px solid var(--vp-color-border) !important;
  border-radius: var(--vp-radius-sm) !important;
  color: white !important;
  padding: var(--vp-space-sm) var(--vp-space-md);
  font-size: 0.875rem;
  transition: all var(--vp-transition-fast);
  height: auto;
  min-height: 38px;
}
.form-control::placeholder {
  color: var(--vp-color-text-muted) !important;
}
.form-control:hover:not(:focus) {
  border-color: var(--vp-color-secondary-alt) !important;
}
.form-control:focus {
  outline: none !important;
  border-color: var(--vp-color-secondary) !important;
  box-shadow: 0 0 0 2px rgba(122, 176, 0, 0.2) !important;
  background: var(--vp-color-surface-dark) !important;
}
.form-control:disabled, .form-control[readonly] {
  opacity: 0.6;
  cursor: not-allowed;
}
.form-control[type=date], .form-control[type=time], .form-control[type=datetime-local], .form-control[type=number] {
  color-scheme: dark;
}

.input-group {
  display: flex;
  align-items: stretch;
}
.input-group .form-control {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  height: 38px;
}
.input-group .input-group-text {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--vp-color-surface-elevated) !important;
  border: 1px solid var(--vp-color-border) !important;
  border-left: none !important;
  border-radius: 0 var(--vp-radius-sm) var(--vp-radius-sm) 0 !important;
  color: var(--vp-color-secondary) !important;
  padding: 0 var(--vp-space-md);
  height: 38px;
}
.input-group .input-group-text i, .input-group .input-group-text svg {
  color: var(--vp-color-secondary);
}
.input-group:focus-within .input-group-text {
  border-color: var(--vp-color-secondary) !important;
}

.form-select {
  background: var(--vp-color-surface-dark) !important;
  border: 1px solid var(--vp-color-border) !important;
  border-radius: var(--vp-radius-sm) !important;
  color: white !important;
  padding: var(--vp-space-sm) var(--vp-space-md);
  font-size: 0.875rem;
  transition: all var(--vp-transition-fast);
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%237ab000%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e") !important;
  background-repeat: no-repeat !important;
  background-position: right var(--vp-space-sm) center !important;
  background-size: 16px 12px !important;
}
.form-select:hover:not(:focus) {
  border-color: var(--vp-color-secondary-alt) !important;
}
.form-select:focus {
  outline: none !important;
  border-color: var(--vp-color-secondary) !important;
  box-shadow: 0 0 0 2px rgba(122, 176, 0, 0.2) !important;
}
.form-select option {
  background: var(--vp-color-surface-elevated);
  color: white;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/styles/security.scss (1) ***!
  \************************************************************************************************************************************************************************************************************************************************************************************/
body {
  margin: 0;
}

.page-security {
  font-family: Inter, Arial, sans-serif;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  color: white;
  position: relative;
  background: linear-gradient(135deg, #000000 0%, #0a0a0f 50%, #000513 100%);
  overflow: hidden;
}
.page-security * {
  box-sizing: border-box;
}
.page-security .login-bg-effects {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.page-security .login-bg-effects .bg-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.15;
}
.page-security .login-bg-effects .bg-glow-1 {
  width: 600px;
  height: 600px;
  background: var(--vp-color-secondary);
  top: -200px;
  right: -100px;
}
.page-security .login-bg-effects .bg-glow-2 {
  width: 400px;
  height: 400px;
  background: var(--vp-color-secondary);
  bottom: -100px;
  left: -100px;
  opacity: 0.1;
}
.page-security .security-wrapper {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--vp-space-lg);
  position: relative;
  z-index: 1;
}
.page-security .login-card {
  width: 100%;
  max-width: 440px;
  padding: var(--vp-space-2xl) var(--vp-space-xl);
  background: rgba(0, 5, 19, 0.8);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: var(--vp-radius-xl);
  border: 1px solid rgba(122, 176, 0, 0.15);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05) inset, 0 0 80px -20px rgba(122, 176, 0, 0.15);
  animation: fadeInUp 0.6s ease-out;
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.page-security .login-logo {
  text-align: center;
  margin-bottom: var(--vp-space-lg);
}
.page-security .login-logo img, .page-security .login-logo object {
  width: 180px;
  height: auto;
  filter: drop-shadow(0 0 20px rgba(122, 176, 0, 0.2));
  transition: filter var(--vp-transition-base);
}
.page-security .login-logo img:hover, .page-security .login-logo object:hover {
  filter: drop-shadow(0 0 30px rgba(122, 176, 0, 0.4));
}
.page-security .login-header {
  text-align: center;
  margin-bottom: var(--vp-space-xl);
}
.page-security .login-header .login-title {
  font-size: 1.75rem;
  font-weight: 700;
  margin: 0 0 var(--vp-space-xs) 0;
  background: linear-gradient(135deg, #ffffff 0%, var(--vp-color-secondary-light) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.page-security .login-header .login-subtitle {
  font-size: 0.95rem;
  color: var(--vp-color-text-muted);
  margin: 0;
}
.page-security .login-alert {
  display: flex;
  align-items: center;
  gap: var(--vp-space-sm);
  padding: var(--vp-space-md);
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.3);
  border-radius: var(--vp-radius-md);
  margin-bottom: var(--vp-space-lg);
  color: #fca5a5;
  font-size: 0.9rem;
}
.page-security .login-alert .material-symbols-outlined {
  color: #ef4444;
  font-size: 1.25rem;
}
.page-security .login-form .form-group {
  margin-bottom: var(--vp-space-lg);
}
.page-security .login-form .form-label {
  display: flex;
  align-items: center;
  gap: var(--vp-space-sm);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--vp-color-text-secondary);
  margin-bottom: var(--vp-space-sm);
}
.page-security .login-form .form-label .material-symbols-outlined {
  font-size: 1.1rem;
  color: var(--vp-color-secondary);
}
.page-security .login-form .form-control {
  width: 100%;
  height: 48px;
  padding: 0 var(--vp-space-md);
  font-size: 0.95rem;
  color: white;
  background: var(--vp-color-surface-elevated);
  border: 1px solid var(--vp-color-border);
  border-radius: var(--vp-radius-md);
  transition: all var(--vp-transition-base);
}
.page-security .login-form .form-control::placeholder {
  color: rgba(255, 255, 255, 0.3);
}
.page-security .login-form .form-control:hover {
  border-color: var(--vp-color-border-hover);
}
.page-security .login-form .form-control:focus {
  outline: none;
  border-color: var(--vp-color-secondary);
  box-shadow: 0 0 0 3px var(--vp-color-secondary-glow-sm);
}
.page-security .login-form .password-input-wrapper {
  position: relative;
}
.page-security .login-form .password-input-wrapper .form-control {
  padding-right: 48px;
}
.page-security .login-form .toggle-show-password {
  position: absolute;
  top: 50%;
  right: var(--vp-space-sm);
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: var(--vp-radius-sm);
  color: var(--vp-color-text-muted);
  cursor: pointer;
  transition: all var(--vp-transition-fast);
}
.page-security .login-form .toggle-show-password .material-symbols-outlined {
  font-size: 1.25rem;
}
.page-security .login-form .toggle-show-password:hover {
  color: var(--vp-color-secondary);
  background: rgba(122, 176, 0, 0.1);
}
.page-security .login-form .checkbox-group {
  margin-bottom: var(--vp-space-lg);
}
.page-security .login-form .checkbox-label {
  display: flex;
  align-items: center;
  gap: var(--vp-space-sm);
  cursor: pointer;
  user-select: none;
}
.page-security .login-form .checkbox-label input[type=checkbox] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.page-security .login-form .checkbox-label input[type=checkbox]:checked + .checkbox-custom {
  background: var(--vp-color-secondary);
  border-color: var(--vp-color-secondary);
}
.page-security .login-form .checkbox-label input[type=checkbox]:checked + .checkbox-custom::after {
  opacity: 1;
  transform: scale(1);
}
.page-security .login-form .checkbox-label input[type=checkbox]:focus + .checkbox-custom {
  box-shadow: 0 0 0 3px var(--vp-color-secondary-glow-sm);
}
.page-security .login-form .checkbox-label .checkbox-custom {
  position: relative;
  width: 20px;
  height: 20px;
  background: var(--vp-color-surface-elevated);
  border: 1px solid var(--vp-color-border);
  border-radius: var(--vp-radius-sm);
  transition: all var(--vp-transition-fast);
}
.page-security .login-form .checkbox-label .checkbox-custom::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 7px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  opacity: 0;
  transition: all var(--vp-transition-fast);
}
.page-security .login-form .checkbox-label .checkbox-text {
  font-size: 0.875rem;
  color: var(--vp-color-text-secondary);
}
.page-security .login-form .checkbox-label:hover .checkbox-custom {
  border-color: var(--vp-color-border-hover);
}
.page-security .login-form .submit-group {
  margin-top: var(--vp-space-xl);
  margin-bottom: var(--vp-space-md);
}
.page-security .login-form .submit-group .btn-block {
  width: 100%;
  height: 52px;
  font-size: 1rem;
  gap: var(--vp-space-sm);
  border: none;
  border-radius: var(--vp-radius-md);
  background-color: var(--vp-color-secondary);
  color: white;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--vp-transition-fast);
}
.page-security .login-form .submit-group .btn-block .material-symbols-outlined {
  font-size: 1.25rem;
  transition: transform var(--vp-transition-fast);
}
.page-security .login-form .submit-group .btn-block:hover {
  background-color: var(--vp-color-secondary-light);
}
.page-security .login-form .submit-group .btn-block:hover .material-symbols-outlined {
  transform: translateX(4px);
}
.page-security .login-form .submit-group .btn-block:active {
  background-color: var(--vp-color-secondary-dark);
}
.page-security .login-form .forgot-password-link {
  text-align: center;
}
.page-security .login-form .forgot-password-link a {
  font-size: 0.875rem;
  color: var(--vp-color-text-muted);
  text-decoration: none;
  transition: color var(--vp-transition-fast);
}
.page-security .login-form .forgot-password-link a:hover {
  color: var(--vp-color-secondary);
}
.page-security .login-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--vp-space-sm);
  padding: var(--vp-space-lg);
  font-size: 0.8rem;
  color: var(--vp-color-text-muted);
  position: relative;
  z-index: 1;
}
.page-security .login-footer .footer-separator {
  opacity: 0.5;
}
.page-security #flash-messages {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 10;
}

@media (max-width: 480px) {
  .page-security .login-card {
    padding: var(--vp-space-xl) var(--vp-space-lg);
    margin: var(--vp-space-md);
    max-width: calc(100% - var(--vp-space-xl));
  }
  .page-security .login-logo img,
  .page-security .login-logo object {
    width: 140px;
  }
  .page-security .login-header .login-title {
    font-size: 1.5rem;
  }
  .page-security .login-form .form-control {
    height: 44px;
  }
  .page-security .login-form .submit-group .btn-block {
    height: 48px;
  }
  .page-security .login-bg-effects .bg-glow-1 {
    width: 300px;
    height: 300px;
  }
  .page-security .login-bg-effects .bg-glow-2 {
    width: 200px;
    height: 200px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBbkZaO0FBd0ZJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXRGUjs7QUE2RkE7RUFFUTtJQUNJO0lBQ0E7SUFDQTtFQTNGVjtFQThGTTs7SUFFSTtFQTVGVjtFQWdHVTtJQUNJO0VBOUZkO0VBbUdVO0lBQ0k7RUFqR2Q7RUFvR1U7SUFDSTtFQWxHZDtFQXVHVTtJQUNJO0lBQ0E7RUFyR2Q7RUF1R1U7SUFDSTtJQUNBO0VBckdkO0FBQ0YsQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3ltZm9ueS91eC1saXZlLWNvbXBvbmVudC9kaXN0L2xpdmUubWluLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2FwcC5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy92YXBlcmFpbF90aGVtZS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvc2VjdXJpdHkuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJbZGF0YS1sb2FkaW5nPVwiXCJdLFtkYXRhLWxvYWRpbmc9c2hvd10sW2RhdGEtbG9hZGluZyo9XFx8c2hvd117ZGlzcGxheTpub25lfSIsImJvZHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuXG4ucGFnZS1hY3Rpb25zIC5idG4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hY3Rpb25zIC5hY3Rpb24tZGVsZXRlIHtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG5cbi5lYS1saWdodC1zY2hlbWUgLm1haW4tY29udGVudCA+ICoge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4ubGlzdC1vZi1saXN0cyA+IGxlZ2VuZCArIC5mb3JtLXdpZGdldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4ubGlzdC1vZi1saXN0cyAuZWEtZm9ybS1jb2xsZWN0aW9uLWl0ZW1zIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5saXN0LW9mLWxpc3RzIC5lYS1mb3JtLWNvbGxlY3Rpb24taXRlbXMgLmNvbGxlY3Rpb24tZW1wdHkge1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubGlzdC1vZi1saXN0cyAuZWEtZm9ybS1jb2xsZWN0aW9uLWl0ZW1zIC5hY2NvcmRpb24taXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG59XG5cbi5saXN0LW9mLWxpc3RzIC5lYS1mb3JtLWNvbGxlY3Rpb24taXRlbXMgLmZpZWxkLWNvbGxlY3Rpb24taXRlbTpmaXJzdC1jaGlsZCAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4O1xufVxuXG4ubGlzdC1vZi1saXN0cyAuZWEtZm9ybS1jb2xsZWN0aW9uLWl0ZW1zIC5maWVsZC1jb2xsZWN0aW9uLWl0ZW06bGFzdC1jaGlsZCAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xufVxuXG4ubGlzdC1vZi1saXN0cyAuZWEtZm9ybS1jb2xsZWN0aW9uLWl0ZW1zIC5hY2NvcmRpb24taGVhZGVyIC5idG4tbGluay1kYW5nZXIge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbn1cblxuLmxpc3Qtb2YtbGlzdHMgLmVhLWZvcm0tY29sbGVjdGlvbi1pdGVtcyAuYWNjb3JkaW9uLWhlYWRlciwgLmxpc3Qtb2YtbGlzdHMgLmVhLWZvcm0tY29sbGVjdGlvbi1pdGVtcyAuYWNjb3JkaW9uLWhlYWRlciAuaWNvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubGlzdC1vZi1saXN0cyAuZWEtZm9ybS1jb2xsZWN0aW9uLWl0ZW1zIC5hY2NvcmRpb24tYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLmxpc3Qtb2YtbGlzdHMgLmVhLWZvcm0tY29sbGVjdGlvbi1pdGVtcyAuYWNjb3JkaW9uLWNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDE7XG59XG4ubGlzdC1vZi1saXN0cyAuZWEtZm9ybS1jb2xsZWN0aW9uLWl0ZW1zIC5hY2NvcmRpb24tYm9keSB7XG4gICAgcGFkZGluZzogMTBweCB2YXIoLS1icy1hY2NvcmRpb24tYm9keS1wYWRkaW5nLXgpXG59IiwiQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEAxMDAuLjkwMCZkaXNwbGF5PXN3YXAnKTtcblxuaHRtbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG5cbiAgICAvLyBDb3VsZXVycyBkZSBiYXNlIChSR0IpXG4gICAgLS12cC1jb2xvci1wcmltYXJ5LXJnYjogMCwgMCwgMDtcbiAgICAtLXZwLWNvbG9yLXNlY29uZGFyeS1yZ2I6IDEyMiwgMTc2LCAwO1xuICAgIC0tdnAtY29sb3Itc2Vjb25kYXJ5LWFsdC1yZ2I6IDEzMiwgMTg5LCAwO1xuICAgIC0tdnAtY29sb3ItdGVybmFyeS1hbHQtcmdiOiAwLCA1LCAxOTtcbiAgICAtLXZwLWNvbG9yLXRlcm5hcnktcmdiOiAxMDIsIDEwNywgMTMzO1xuICAgIC0tdnAtY29sb3ItdGVybmFyeS1saWdodC1yZ2I6IDIwOCwgMjEzLCAyMjE7XG5cbiAgICAvLyBDb3VsZXVycyBkZSBiYXNlXG4gICAgLS12cC1jb2xvci1wcmltYXJ5OiByZ2IodmFyKC0tdnAtY29sb3ItcHJpbWFyeS1yZ2IpKTtcbiAgICAtLXZwLWNvbG9yLXNlY29uZGFyeTogcmdiKHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1yZ2IpKTtcbiAgICAtLXZwLWNvbG9yLXNlY29uZGFyeS1hbHQ6IHJnYih2YXIoLS12cC1jb2xvci1zZWNvbmRhcnktYWx0LXJnYikpO1xuICAgIC0tdnAtY29sb3ItdGVybmFyeS1hbHQ6IHJnYih2YXIoLS12cC1jb2xvci10ZXJuYXJ5LWFsdC1yZ2IpKTtcbiAgICAtLXZwLWNvbG9yLXRlcm5hcnk6IHJnYih2YXIoLS12cC1jb2xvci10ZXJuYXJ5LXJnYikpO1xuICAgIC0tdnAtY29sb3ItdGVybmFyeS1saWdodDogcmdiKHZhcigtLXZwLWNvbG9yLXRlcm5hcnktbGlnaHQtcmdiKSk7XG5cbiAgICAvLyBDb3VsZXVycyBldGVuZHVlcyAocG91ciBsZSBsb2dpbiBtb2Rlcm5pc2UpXG4gICAgLS12cC1jb2xvci1zZWNvbmRhcnktZGFyazogIzVhODUwMDtcbiAgICAtLXZwLWNvbG9yLXNlY29uZGFyeS1saWdodDogI2E0ZDQ0MDtcbiAgICAtLXZwLWNvbG9yLXNlY29uZGFyeS1nbG93OiByZ2JhKDEyMiwgMTc2LCAwLCAwLjMpO1xuICAgIC0tdnAtY29sb3Itc2Vjb25kYXJ5LWdsb3ctc206IHJnYmEoMTIyLCAxNzYsIDAsIDAuMTUpO1xuICAgIC0tdnAtY29sb3Itc3VyZmFjZS1kYXJrOiAjMGEwYTBmO1xuICAgIC0tdnAtY29sb3Itc3VyZmFjZS1lbGV2YXRlZDogIzEyMTMxYTtcbiAgICAtLXZwLWNvbG9yLXN1cmZhY2UtY2FyZDogIzFhMWIyMztcbiAgICAtLXZwLWNvbG9yLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAtLXZwLWNvbG9yLWJvcmRlci1ob3ZlcjogcmdiYSgxMjIsIDE3NiwgMCwgMC4zKTtcbiAgICAtLXZwLWNvbG9yLXRleHQtbXV0ZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICAtLXZwLWNvbG9yLXRleHQtc2Vjb25kYXJ5OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG5cbiAgICAvLyBFc3BhY2VtZW50c1xuICAgIC0tdnAtc3BhY2UteHM6IDRweDtcbiAgICAtLXZwLXNwYWNlLXNtOiA4cHg7XG4gICAgLS12cC1zcGFjZS1tZDogMTZweDtcbiAgICAtLXZwLXNwYWNlLWxnOiAyNHB4O1xuICAgIC0tdnAtc3BhY2UteGw6IDMycHg7XG4gICAgLS12cC1zcGFjZS0yeGw6IDQ4cHg7XG5cbiAgICAvLyBSYXlvbnMgZGUgYm9yZHVyZVxuICAgIC0tdnAtcmFkaXVzLXNtOiA2cHg7XG4gICAgLS12cC1yYWRpdXMtbWQ6IDEycHg7XG4gICAgLS12cC1yYWRpdXMtbGc6IDE4cHg7XG4gICAgLS12cC1yYWRpdXMteGw6IDI0cHg7XG4gICAgLS12cC1yYWRpdXMtZnVsbDogOTk5OXB4O1xuXG4gICAgLy8gT21icmVzXG4gICAgLS12cC1zaGFkb3ctc206IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgLS12cC1zaGFkb3ctbWQ6IDAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC40KSwgMCAycHggNHB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIC0tdnAtc2hhZG93LWxnOiAwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC41KSwgMCA0cHggNnB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgIC0tdnAtc2hhZG93LXhsOiAwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC41KSwgMCA4cHggMTBweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICAtLXZwLXNoYWRvdy1nbG93OiAwIDAgMjBweCB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnktZ2xvdyk7XG4gICAgLS12cC1zaGFkb3ctZ2xvdy1zbTogMCAwIDEwcHggdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5LWdsb3ctc20pO1xuICAgIC0tdnAtc2hhZG93LWZvY3VzOiAwIDAgMCAzcHggcmdiYSgxMjIsIDE3NiwgMCwgMC4zNSksIDAgMCAxMnB4IHJnYmEoMTIyLCAxNzYsIDAsIDAuMjUpO1xuICAgIC0tdnAtc2hhZG93LWZvY3VzLWRhbmdlcjogMCAwIDAgM3B4IHJnYmEoMjM5LCA2OCwgNjgsIDAuMzUpLCAwIDAgMTJweCByZ2JhKDIzOSwgNjgsIDY4LCAwLjI1KTtcblxuICAgIC8vIFRyYW5zaXRpb25zXG4gICAgLS12cC10cmFuc2l0aW9uLWZhc3Q6IDE1MG1zIGVhc2U7XG4gICAgLS12cC10cmFuc2l0aW9uLWJhc2U6IDI1MG1zIGVhc2U7XG4gICAgLS12cC10cmFuc2l0aW9uLXNsb3c6IDQwMG1zIGVhc2U7XG4gICAgLS12cC10cmFuc2l0aW9uLWJvdW5jZTogNDAwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xufVxuXG5ib2R5IHtcbiAgICBjb2xvci1zY2hlbWU6IGRhcms7XG4gICAgZm9udC1mYW1pbHk6IEludGVyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDA7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4vLyBEw6lzYWN0aXZlciBsYSBsYXJnZXVyIG1heGltYWxlIGR1IGNvbnRlbnQtd3JhcHBlclxuYm9keTpub3QoLmVhLWNvbnRlbnQtd2lkdGgtZnVsbCkgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgbWF4LWlubGluZS1zaXplOiB1bnNldDtcbn1cblxuLy8gQ29udGVuZXVyIHByaW5jaXBhbCAtIGVtcMOqY2hlciBsZSBkw6lwYXNzZW1lbnRcbi5jb250ZW50LXdyYXBwZXIsXG4uY29udGVudCxcbm1haW4sXG4jbWFpbiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vIEJvdXRvbiBjb250b3VyIChzZWNvbmRhaXJlKVxuLmJ0bi1vdXRsaW5lIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtc20pO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLWJvcmRlcik7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXZwLXRyYW5zaXRpb24tZmFzdCk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXNtKSB2YXIoLS12cC1zcGFjZS1tZCk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyMiwgMTc2LCAwLCAwLjEpO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgfVxufVxuXG4vLyBCb3V0b24gdGV4dGUgKHRlcnRpYWlyZSlcbi5idG4tdGV4dCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1zbSk7XG4gICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXZwLXRyYW5zaXRpb24tZmFzdCk7XG4gICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2UteHMpIHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1saWdodCkgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDE3NiwgMCwgMC4xKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTIyLCAxNzYsIDAsIDAuMTUpO1xuICAgIH1cbn1cblxuLmJ0bi1wcmltYXJ5LCAuYnRuLXNlY29uZGFyeSwgLmJ0bi1kYW5nZXIge1xuICAgIC5idG4tbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjb2x1bW4tZ2FwOiA1cHg7XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEJvdXRvbiBwcmltYXJ5IChCb290c3RyYXAgb3ZlcnJpZGUpXG4uYnRuLXByaW1hcnkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdnAtcmFkaXVzLXNtKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS12cC1zcGFjZS14cyk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXhzKSB2YXIoLS12cC1zcGFjZS1zbSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5LWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1saWdodCkgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1kYXJrKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1kYXJrKSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tdnAtc2hhZG93LWZvY3VzKSAhaW1wb3J0YW50O1xuICAgICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5LWRhcmspICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5LWRhcmspICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXZwLXNoYWRvdy1mb2N1cykgIWltcG9ydGFudDtcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG4uYnRuLXNlY29uZGFyeSB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdnAtcmFkaXVzLXNtKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdnAtY29sb3ItYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXZwLXNwYWNlLXhzKTtcbiAgICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXNtKSB2YXIoLS12cC1zcGFjZS1tZCk7XG4gICAgaGVpZ2h0OiAzOHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZGFyaykgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZGFyaykgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXZwLXNoYWRvdy1mb2N1cykgIWltcG9ydGFudDtcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXZwLXNoYWRvdy1mb2N1cykgIWltcG9ydGFudDtcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG4vLyBCb3V0b24gZGFuZ2VyIChCb290c3RyYXAgb3ZlcnJpZGUpXG4uYnRuLWRhbmdlciB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdnAtcmFkaXVzLXNtKTtcbiAgICBiYWNrZ3JvdW5kOiAjZWY0NDQ0ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VmNDQ0NCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS12cC1zcGFjZS14cyk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXhzKSB2YXIoLS12cC1zcGFjZS1zbSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2RjMjYyNiAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6ICNkYzI2MjYgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNiOTFjMWMgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYjkxYzFjICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS12cC1zaGFkb3ctZm9jdXMtZGFuZ2VyKSAhaW1wb3J0YW50O1xuICAgICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tdnAtc2hhZG93LWZvY3VzLWRhbmdlcikgIWltcG9ydGFudDtcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG4vLyBCb3V0b24gZGVsZXRlIGF2ZWMgc3R5bGUgc2Vjb25kYXJ5IChtw6ptZSBzdHlsZSBxdWUgYnRuLWRhbmdlcilcbi5hY3Rpb24tZGVsZXRlLmJ0bi5idG4tc2Vjb25kYXJ5LFxuLmJ0bi1kZWxldGUuYnRuLmJ0bi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICNlZjQ0NDQgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWY0NDQ0ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2RjMjYyNiAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6ICNkYzI2MjYgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjphY3RpdmUsICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjYjkxYzFjICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2I5MWMxYyAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tdnAtc2hhZG93LWZvY3VzLWRhbmdlcikgIWltcG9ydGFudDtcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXZwLXNoYWRvdy1mb2N1cy1kYW5nZXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8vIEJvdXRvbiBpbmRleCBhdmVjIHN0eWxlIHNlY29uZGFyeSAobcOqbWUgc3R5bGUgcXVlIGJ0bi1wcmltYXJ5KVxuLmFjdGlvbi1pbmRleC5idG4uYnRuLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnktbGlnaHQpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5LWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1kYXJrKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1kYXJrKSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tdnAtc2hhZG93LWZvY3VzKSAhaW1wb3J0YW50O1xuICAgICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tdnAtc2hhZG93LWZvY3VzKSAhaW1wb3J0YW50O1xuICAgICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vLyBDaGVja2JveCBzdHlsaXNlZSAoZm9ybXVsYWlyZXMpXG5pbnB1dC5jaGVja2JveFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dC5mb3JtLWNoZWNrLWlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tdnAtY29sb3ItYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtc20pO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgIGxlZnQ6IDVweDtcbiAgICAgICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDJweCAycHggMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgxMjIsIDE3NiwgMCwgMC4yKTtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbn1cblxuLy8gQ2hlY2tib3ggc3dpdGNoIC0gc3VwcHJpbWVyIGxlIHBhZGRpbmctYm90dG9tIGRlcyBsYWJlbHNcbi5jaGVja2JveC1zd2l0Y2ggbGFiZWwsXG5sYWJlbC5jaGVja2JveC1zd2l0Y2gsXG4uZm9ybS1ncm91cC5jaGVja2JveC1zd2l0Y2ggbGFiZWwge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5yZXF1aXJlZDphZnRlciB7XG4gICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGNvbnRlbnQ6ICcqJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmlsdGVyOiBvcGFjaXR5KDc1JSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiAtMnB4O1xufVxuXG4uY29udGVudC1oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIC5jb250ZW50LWhlYWRlci1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgIH1cbn1cblxuLy8gSGFybW9uaXNlciBsYSBoYXV0ZXVyIGRlcyBib3V0b25zIGdsb2JhbC1hY3Rpb25zIGF2ZWMgZGF0YWdyaWQtZmlsdGVyc1xuLmdsb2JhbC1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS12cC1zcGFjZS1zbSk7XG5cbiAgICAuYnRuIHtcbiAgICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS12cC1zcGFjZS1zbSkgdmFyKC0tdnAtc3BhY2UtbWQpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxufVxuXG4uZGF0YWdyaWQtZmlsdGVycyAuYnRuIHtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2Utc20pIHZhcigtLXZwLXNwYWNlLW1kKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGaWx0cmVzIGRhdGFncmlkIChFYXN5QWRtaW4pXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5kYXRhZ3JpZC1maWx0ZXJzLFxuZm9ybVtuYW1lPVwiZmlsdGVyc1wiXSB7XG4gICAgLmZpbHRlci1oZWFkaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS12cC1zcGFjZS1zbSk7XG5cbiAgICAgICAgLy8gQ2hlY2tib3ggZHUgZmlsdHJlXG4gICAgICAgIC5maWx0ZXItY2hlY2tib3gge1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLWJvcmRlcik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtc20pO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1lbGV2YXRlZCk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMHB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDEyMiwgMTc2LCAwLCAwLjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSwgYVtkYXRhLWJzLXRvZ2dsZV0ge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tdnAtc3BhY2UteHMpO1xuICAgICAgICAgICAgLS1saW5rLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIC0tYnMtbGluay1jb2xvci1yZ2I6IDI1NSwgMjU1LCAyNTU7XG5cbiAgICAgICAgICAgIC8vIENoZXZyb24gYXByw6hzIGxlIHRleHRlXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXZwLXRyYW5zaXRpb24tZmFzdCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAtLWxpbmstY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgLS1icy1saW5rLWNvbG9yLXJnYjogMTIyLCAxNzYsIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgLS1saW5rLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIC0tYnMtbGluay1jb2xvci1yZ2I6IDEyMiwgMTc2LCAwO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUYWJsZXMgbW9kZXJuaXNlZXMgKHN0eWxlIFN5bm9wdGlxdWUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gV3JhcHBlciBwb3VyIHBlcm1ldHRyZSBsZSBzY3JvbGwgaG9yaXpvbnRhbCBzaSBuw6ljZXNzYWlyZVxuLnRhYmxlLXJlc3BvbnNpdmUsXG4uZGF0YWdyaWQge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG50YWJsZSxcbnRhYmxlLnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtY2FyZCkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtbGcpO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAtLWJzLXRhYmxlLWJnOiB2YXIoLS12cC1jb2xvci1zdXJmYWNlLWNhcmQpO1xuICAgIC0tYnMtdGFibGUtY29sb3I6IHdoaXRlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjFweDtcblxuICAgIHRyIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgIHRoLCB0ZCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXNtKSB2YXIoLS12cC1zcGFjZS1tZCk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogODQycHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXNtKSB2YXIoLS12cC1zcGFjZS14cyk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXhzKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi50YWJsZS1zZW5zb3ItZGV0YWlsIHtcbiAgICAgICAgdHI6bGFzdC1jaGlsZCB0ZCwgdHI6bGFzdC1jaGlsZCB0aCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbnRoZWFkLFxudGhlYWQudGFibGUtbGlnaHQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpIDAlLCB2YXIoLS12cC1jb2xvci1zdXJmYWNlLWRhcmspIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgLS1icy10YWJsZS1iZzogdHJhbnNwYXJlbnQ7XG5cbiAgICB0aCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgICAgICAgLy8gQ2hlY2tib3ggYmF0Y2ggc2VsZWN0IGRhbnMgdGhlYWRcbiAgICAgICAgLmZvcm0tY2hlY2sge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTb3J0ZWQgY29sdW1uIGhlYWRlclxuICAgICAgICAmLnNvcnRlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBhLCAuaWNvbiwgLmljb24gc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IHZhcigtLXZwLXNwYWNlLXhzKTtcblxuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgLmljb24sIC5pY29uIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGF0YWdyaWQgdGhlYWQgYSxcbi5kYXRhZ3JpZCB0aGVhZCBzcGFuOm5vdCguaWNvbikge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxudGJvZHkge1xuICAgIHRyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB0ZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyMiwgMTc2LCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG50YWJsZSB0ZCxcbnRhYmxlLnRhYmxlIHRkIHtcbiAgICBjb2xvcjogdmFyKC0tdnAtY29sb3ItdGV4dC1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmJ0biB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXhzKSB2YXIoLS12cC1zcGFjZS1zbSk7XG4gICAgfVxuXG4gICAgYTpub3QoLmJ0bikge1xuICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5LWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFjdGlvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgJiA+IC5kcm9wZG93bixcbiAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tdnAtc3BhY2Utc20pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgYSwgYnV0dG9uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LW11dGVkKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1zbSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tdnAtc3BhY2UteHMpO1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgLmFjdGlvbi1pY29uLCBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFjdGlvbi1sYWJlbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDE3NiwgMCwgMC4xNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLWRlbGV0ZTpob3ZlcixcbiAgICAgICAgLmJ0bi1kZWxldGU6aG92ZXIsXG4gICAgICAgIGZvcm1bYWN0aW9uKj1cImRlbGV0ZVwiXSBidXR0b246aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNlZjQ0NDQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmFkZ2UuYmFkZ2Utc2Vjb25kYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDE3NiwgMCwgMC4xMikgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgICAgcGFkZGluZzogM3B4IDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIH1cblxuICAgIC5iYWRnZS5iYWRnZS1vdXRsaW5lIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgICAgICBwYWRkaW5nOiAzcHggOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDEyMiwgMTc2LCAwLCAwLjQpO1xuICAgIH1cblxuICAgIC5mb3JtLWNoZWNrIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1hbHQpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaWVsZCBjb2xsZWN0aW9uIGV0IGFzc29jaWF0aW9uIChsaXN0ZXMgZGFucyBsZXMgY2VsbHVsZXMpXG4gICAgJltkYXRhLWNvbHVtbj1cImNvbGxlY3Rpb25cIl0sXG4gICAgJltkYXRhLWNvbHVtbj1cImFzc29jaWF0aW9uXCJdLFxuICAgIC5maWVsZC1jb2xsZWN0aW9uLFxuICAgICYuZmllbGQtY29sbGVjdGlvbixcbiAgICAuZmllbGQtYXNzb2NpYXRpb24sXG4gICAgJi5maWVsZC1hc3NvY2lhdGlvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuYmFkZ2Uge1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRm9ybSBTd2l0Y2ggKHRvZ2dsZSkgbW9kZXJuaXNlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5mb3JtLWNoZWNrLmZvcm0tc3dpdGNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1pbi1oZWlnaHQ6IGF1dG87XG5cbiAgICAuZm9ybS1jaGVjay1pbnB1dCxcbiAgICAuZm9ybS1jaGVjay1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgLy8gQ2VyY2xlIGR1IHRvZ2dsZVxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRvcDogMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBsZWZ0OiAycHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNHB4KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgxMjIsIDE3NiwgMCwgMC4yKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1jaGVjay1sYWJlbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS12cC1zcGFjZS14cyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG4jbWFpbi1tZW51IHtcbiAgICAtLXNpZGViYXItbWVudS1hY3RpdmUtaXRlbS1iZzogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgIC8vIEl0ZW1zIGRlIG1lbnVcbiAgICAubWVudS1pdGVtIHtcbiAgICAgICAgLm1lbnUtaXRlbS1jb250ZW50cyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tdnAtc3BhY2Utc20pO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2Utc20pIHZhcigtLXZwLXNwYWNlLW1kKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1zbSk7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LXNlY29uZGFyeSkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgLm1lbnUtaWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICAgICAgICAgICAgIGksIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LW11dGVkKTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZW51LWl0ZW0tbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDE3NiwgMCwgMC4wOCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAubWVudS1pY29uIGksXG4gICAgICAgICAgICAgICAgLm1lbnUtaWNvbiBzdmcge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIMOJdGF0IGFjdGlmXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIC5tZW51LWl0ZW0tY29udGVudHMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTIyLCAxNzYsIDAsIDAuMTIpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KTtcblxuICAgICAgICAgICAgICAgIC5tZW51LWljb24gaSxcbiAgICAgICAgICAgICAgICAubWVudS1pY29uIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm1lbnUtaXRlbS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2lkZWJhciBjb21wYWN0ZSAoZWEtc2lkZWJhci13aWR0aC1jb21wYWN0KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5ib2R5LmVhLXNpZGViYXItd2lkdGgtY29tcGFjdCB7XG4gICAgI21haW4tbWVudSAubWVudSAubWVudS1pdGVtIHtcbiAgICAgICAgLm1lbnUtaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG5cbiAgICAgICAgICAgIGksIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXRleHQtbXV0ZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1lbnUtaXRlbS1jb250ZW50cyB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS12cC1zcGFjZS1zbSkgNXB4IHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDDiXRhdCBhY3RpZiBlbiBtb2RlIGNvbXBhY3RcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAubWVudS1pdGVtLWNvbnRlbnRzIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNpZGViYXItcGFkZGluZy1sZWZ0KSArIDVweCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWVudS1pY29uIGksXG4gICAgICAgICAgICAubWVudS1pY29uIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhvdmVyIGVuIG1vZGUgY29tcGFjdCAtIGFmZmljaGUgbGUgbGFiZWxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1jb2xvci1zdXJmYWNlLWNhcmQpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAubWVudS1pdGVtLWNvbnRlbnRzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1jb2xvci1zdXJmYWNlLWNhcmQpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1lbnUtaWNvbiBpLFxuICAgICAgICAgICAgLm1lbnUtaWNvbiBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZW51LWl0ZW0tbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUG9ydGFsIGxpbmtzIGVuIG1vZGUgY29tcGFjdCAtIGRpc3Bvc2l0aW9uIHZlcnRpY2FsZSBjZW50csOpZVxuICAgIC5wb3J0YWwtbGlua3Mge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAucG9ydGFsLWxpbmsge1xuICAgICAgICAgICAgLnBvcnRhbC1saW5rLWltZyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnB4IDRweDtcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBMYWJlbCBhdSBob3ZlciBwb3NpdGlvbm7DqSDDoCBkcm9pdGVcbiAgICAgICAgICAgIC5wb3J0YWwtbGluay1sYWJlbCB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS12cC1zcGFjZS1zbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5sb2dvIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGNvbHVtbi1nYXA6IDEycHg7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUG9ydGFsIExpbmtzIChpY29uZXMgZGVzIGFwcHMgLSBzdHlsZSBTeW5vcHRpcXVlKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucG9ydGFsLWxpbmtzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLXZwLXNwYWNlLW1kKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAucG9ydGFsLWxpbmsge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAucG9ydGFsLWxpbmstaW1nIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1tZCk7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCByZ2JhKDEyMiwgMTc2LCAwLCAwLjMpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXZwLXRyYW5zaXRpb24tYmFzZSk7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHggNnB4O1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBvcnRhbC1saW5rLWxhYmVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJweCA0cHg7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYm90dG9tOiAtMzBweDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtc20pO1xuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAucG9ydGFsLWxpbmstaW1nIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSgxMjIsIDE3NiwgMCwgMC41KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBvcnRhbC1saW5rLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQ29udGVudCBmb290ZXIgKHBhZ2luYXRpb24gZW4gZGVob3JzIGRlICNtYWluKVxuLmNvbnRlbnQtZm9vdGVyIHtcbiAgICBtYXJnaW46IHZhcigtLXZwLXNwYWNlLW1kKSBjYWxjKC0xICogdmFyKC0tdnAtc3BhY2UtbGcpKSAwO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tdnAtc3BhY2UtbGcpO1xufVxuXG4vLyBQYWdpbmF0aW9uXG4ubGlzdC1wYWdpbmF0aW9uLWNvdW50ZXIge1xuICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LW11dGVkKTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbn1cblxuLy8gUGFnaW5hdGlvbiAoZ2xvYmFsKVxuLnBhZ2luYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXZwLXNwYWNlLXhzKTtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLnBhZ2UtaXRlbSB7XG4gICAgICAgIC5wYWdlLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDM2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdnAtY29sb3ItYm9yZGVyKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1zbSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDE3NiwgMCwgMC4xKTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSAucGFnZS1saW5rIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmRpc2FibGVkIC5wYWdlLWxpbmsge1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBDb3Ntb3MgcGFnaW5hdGlvbiBzcGFjaW5nXG5bZGF0YS1jb3Ntb3MtdGFyZ2V0PVwicGFnaW5hdGlvblRvcFwiXSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLy8gQ2hhbXAgZGUgcmVjaGVyY2hlXG4uY29udGVudC10b3AgLmNvbnRlbnQtc2VhcmNoIC5jb250ZW50LXNlYXJjaC1sYWJlbCBpbnB1dC5pcy1ibGFuayB7XG4gICAgbWluLWlubGluZS1zaXplOiA0MDBweDtcbn1cblxuLy8gU3VyY2hhcmdlciBsZSBzdHlsZSBFYXN5QWRtaW4gcXVpIHN1cHByaW1lIGxlIGZvY3VzXG4uY29udGVudC10b3AgLmNvbnRlbnQtc2VhcmNoIGlucHV0W3R5cGU9c2VhcmNoXVtuYW1lPXF1ZXJ5XTphY3RpdmUsXG4uY29udGVudC10b3AgLmNvbnRlbnQtc2VhcmNoIGlucHV0W3R5cGU9c2VhcmNoXVtuYW1lPXF1ZXJ5XTpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tdnAtc2hhZG93LWZvY3VzKSAhaW1wb3J0YW50O1xuICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1jb2xvci1zdXJmYWNlLWRhcmspICFpbXBvcnRhbnQ7XG59XG5cbi5jb250ZW50LXNlYXJjaCB7XG4gICAgLmZvcm0td2lkZ2V0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDI4MHB4O1xuXG4gICAgICAgIC5jb250ZW50LXNlYXJjaC1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IHZhcigtLXZwLXNwYWNlLW1kKTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50LXNlYXJjaC1sYWJlbCB7XG4gICAgICAgICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2Utc20pIHZhcigtLXZwLXNwYWNlLW1kKSB2YXIoLS12cC1zcGFjZS1zbSkgY2FsYyh2YXIoLS12cC1zcGFjZS1tZCkgKyAyOHB4KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1jb2xvci1zdXJmYWNlLWVsZXZhdGVkKTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1zbSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXZwLXRyYW5zaXRpb24tZmFzdCk7XG5cbiAgICAgICAgICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LW11dGVkKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS12cC1zaGFkb3ctZm9jdXMpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1jb2xvci1zdXJmYWNlLWRhcmspO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1hbHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGb3JtIENvbGxlY3Rpb24gRmllbGRzIChFYXN5QWRtaW4pXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQ29udGFpbmVyIGRlcyBjb2xsZWN0aW9ucyBpbWJyaXF1w6llc1xuW2RhdGEtZWEtY29sbGVjdGlvbi1maWVsZF0ge1xuICAgIGxlZ2VuZC5jb2wtZm9ybS1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tdnAtc3BhY2UteHMpO1xuICAgIH1cbn1cblxuLy8gSXRlbXMgZGUgY29sbGVjdGlvbiAobGlnbmUgYXZlYyBpY8O0bmUgZGVsZXRlICsgaW5wdXQpXG4uZmllbGQtY29sbGVjdGlvbi1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS12cC1zcGFjZS1zbSk7XG4gICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2UteHMpIHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdnAtcmFkaXVzLXNtKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS12cC1zcGFjZS14cyk7XG5cbiAgICAvLyBCb3V0b24gc3VwcHJpbWVyIChpY8O0bmUgcG91YmVsbGUpXG4gICAgLmZpZWxkLWNvbGxlY3Rpb24tZGVsZXRlLWJ1dHRvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS12cC1zcGFjZS14cyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LW11dGVkKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNlZjQ0NDQ7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnB1dCBkYW5zIGwnaXRlbVxuICAgIGlucHV0LmZvcm0tY29udHJvbCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZGFyayk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1zbSk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2UteHMpIHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgxMjIsIDE3NiwgMCwgMC4yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQmFkZ2UgXCJWaWRlXCIgcG91ciBjb2xsZWN0aW9uIHZpZGVcbi5jb2xsZWN0aW9uLWVtcHR5IC5iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDE3NiwgMCwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjIsIDE3NiwgMCwgMC4zKTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cblxuLy8gU3R5bGlzZXIgbGVzIGxpc3RlcyBkZSBjb2xsZWN0aW9ucyBhdmVjIGxlIHRow6htZSAoc2V1bGVtZW50IGxlIHByZW1pZXIgbml2ZWF1KVxuLmVhLWZvcm0tY29sbGVjdGlvbi1pdGVtcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdnAtY29sb3ItYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1zbSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1lbGV2YXRlZCkgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiB2YXIoLS12cC1zcGFjZS1zbSk7XG5cbiAgICAvLyBTdXBwcmltZXIgbGVzIHN0eWxlcyBkZXMgw6lsw6ltZW50cyBpbWJyaXF1w6lzXG4gICAgLmVhLWZvcm0tY29sbGVjdGlvbi1pdGVtcyB7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIEFjY29yZGlvbiBpdGVtcyBlbiBwbGVpbmUgbGFyZ2V1clxuICAgIC5hY2NvcmRpb24taXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLy8gQ29udGFpbmVyIHByaW5jaXBhbCBkZXMgbGlzdGVzIGRlIGNvbGxlY3Rpb25zXG4ubGlzdC1vZi1saXN0cyA+IGxlZ2VuZCArIC5mb3JtLXdpZGdldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdnAtY29sb3ItYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1zbSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1lbGV2YXRlZCkgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiB2YXIoLS12cC1zcGFjZS1zbSk7XG59XG5cbi8vIEJvdXRvbiBcIkFqb3V0ZXIgdW4gbm91dmVsIMOpbMOpbWVudFwiXG4uYnRuLmJ0bi1saW5rLmZpZWxkLWNvbGxlY3Rpb24tYWRkLWJ1dHRvbixcbi5maWVsZC1jb2xsZWN0aW9uLWFkZC1idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXZwLXNwYWNlLXhzKTtcbiAgICBwYWRkaW5nOiB2YXIoLS12cC1zcGFjZS14cykgdmFyKC0tdnAtc3BhY2Utc20pICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tdnAtc3BhY2UteHMpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnktbGlnaHQpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmljb24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVG9tU2VsZWN0IC8gQXV0b2NvbXBsZXRlIChFYXN5QWRtaW4pXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi50cy13cmFwcGVyIHtcbiAgICAvLyBDb250csO0bGUgcHJpbmNpcGFsIChjaGFtcCBkZSBzw6lsZWN0aW9uKVxuICAgIC50cy1jb250cm9sIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1kYXJrKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1zbSkgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXhzKSB2YXIoLS12cC1zcGFjZS1zbSkgIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogMzhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5LWFsdCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBsYWNlaG9sZGVyXG4gICAgICAgIC5pdGVtcy1wbGFjZWhvbGRlcixcbiAgICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LW11dGVkKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSXRlbSBzw6lsZWN0aW9ubsOpXG4gICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJvdXRvbiBjbGVhciAow5cpXG4gICAgICAgIC5jbGVhci1idXR0b24ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXRleHQtbXV0ZWQpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tdnAtc3BhY2UteHMpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNlZjQ0NDQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIMOJdGF0IGZvY3VzXG4gICAgJi5mb2N1cyAudHMtY29udHJvbCxcbiAgICAmLmlucHV0LWFjdGl2ZSAudHMtY29udHJvbCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgxMjIsIDE3NiwgMCwgMC4yKSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8vIERyb3Bkb3duXG4gICAgLnRzLWRyb3Bkb3duIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1lbGV2YXRlZCkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdnAtY29sb3ItYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtc20pICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXZwLXNwYWNlLXhzKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAvLyBJbnB1dCBkZSByZWNoZXJjaGUgZGFucyBsZSBkcm9wZG93biAtIHRvdWpvdXJzIGVuIHByZW1pZXJcbiAgICAgICAgLmRyb3Bkb3duLWlucHV0LXdyYXAge1xuICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2Utc20pO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLWJvcmRlcik7XG5cbiAgICAgICAgICAgIC5kcm9wZG93bi1pbnB1dCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1kYXJrKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLWJvcmRlcikgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtc20pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2UteHMpIHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3ItdGV4dC1tdXRlZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDEyMiwgMTc2LCAwLCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGlzdGUgZGVzIG9wdGlvbnNcbiAgICAgICAgLnRzLWRyb3Bkb3duLWNvbnRlbnQge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2UteHMpO1xuXG4gICAgICAgICAgICAub3B0aW9uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3ItdGV4dC1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2Utc20pIHZhcigtLXZwLXNwYWNlLW1kKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtc20pO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyMiwgMTc2LCAwLCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDE3NiwgMCwgMC4yKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTWVzc2FnZSBcIkF1Y3VuIHLDqXN1bHRhdFwiXG4gICAgICAgICAgICAubm8tcmVzdWx0cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXRleHQtbXV0ZWQpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLW1kKTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE92ZXJyaWRlIEJvb3RzdHJhcCBmb2N1cyBzdHlsZSBwb3VyIHBsdWdpbi1kcm9wZG93bl9pbnB1dFxuICAgICYucGx1Z2luLWRyb3Bkb3duX2lucHV0LmZvY3VzIC50cy1kcm9wZG93biAuZHJvcGRvd24taW5wdXQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMTIyLCAxNzYsIDAsIDAuMikgIWltcG9ydGFudDtcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDYXJkcyAoQm9vdHN0cmFwIG92ZXJyaWRlKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1jYXJkKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLWJvcmRlcikgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtbGcpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcblxuICAgIC5jYXJkLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpIDAlLCB2YXIoLS12cC1jb2xvci1zdXJmYWNlLWRhcmspIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1sZykgdmFyKC0tdnAtcmFkaXVzLWxnKSAwIDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2UtbWQpO1xuXG4gICAgICAgIC5jYXJkLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tdnAtc3BhY2Utc20pO1xuXG4gICAgICAgICAgICBpLCAuaWNvbiwgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJkLWJvZHkge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS12cC1zcGFjZS1tZCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5jYXJkLWZvb3RlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLW1kKTtcbiAgICB9XG59XG5cbi8vIFRhYmxlIGRlIGTDqXRhaWxzIChzdHlsZSBjbMOpLXZhbGV1cilcbi50YWJsZS1zZW5zb3ItZGV0YWlsLFxuLnRhYmxlLWRldGFpbCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIHRoLCB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXNtKSB2YXIoLS12cC1zcGFjZS1tZCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgdGgge1xuICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3ItdGV4dC1tdXRlZCkgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG5cbiAgICB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgdGgsIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN1cHByaW1lciBsZSBzdHJpcGVkIGRlIEJvb3RzdHJhcFxuICAgICYudGFibGUtc3RyaXBlZCA+IHRib2R5ID4gdHI6bnRoLW9mLXR5cGUob2RkKSA+ICoge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAtLWJzLXRhYmxlLWJnLXR5cGU6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGaWVsZCBHcm91cHMgKHBhZ2VzIGRlIGTDqXRhaWxzIEVhc3lBZG1pbilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmZvcm0tZmllbGRzZXQtYm9keSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1jYXJkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1sZyk7XG4gICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2UtbWQpO1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XG5cbiAgICAucm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwO1xuICAgIH1cbn1cblxuLmZpZWxkLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXNtKSB2YXIoLS12cC1zcGFjZS1tZCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLWJvcmRlcik7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDE3NiwgMCwgMC4wMyk7XG4gICAgfVxuXG4gICAgLmZpZWxkLWxhYmVsIHtcbiAgICAgICAgZmxleDogMCAwIDIwMHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3ItdGV4dC1tdXRlZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXZwLXNwYWNlLW1kKTtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxMjBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkLXZhbHVlIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1saWdodCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRpbWUge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW5bdGl0bGVdIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCYWRnZXMgZGFucyBsZXMgdmFsZXVyc1xuICAgICAgICAuYmFkZ2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDE3NiwgMCwgMC4xMikgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2hhbXBzIHJlcXVpcyAtIGNpYmxlciBsZSBkaXYgaW50ZXJuZSBwb3VyIGFsaWduZXIgbCfDqXRvaWxlIGF2ZWMgbGUgdGV4dGVcbiAgICAmW3JlcXVpcmVkPVwiMVwiXSAuZmllbGQtbGFiZWwgPiBkaXY6OmFmdGVyLFxuICAgICZbcmVxdWlyZWQ9XCJ0cnVlXCJdIC5maWVsZC1sYWJlbCA+IGRpdjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnIConO1xuICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRm9ybXVsYWlyZXMgKGlucHV0cywgbGFiZWxzLCBpbnB1dC1ncm91cClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBMYWJlbHMgZGUgZm9ybXVsYWlyZVxuLmZvcm0tbGFiZWwge1xuICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXZwLXNwYWNlLXhzKTtcbn1cblxuLy8gSW5wdXRzIGfDqW7DqXJhdXhcbi5mb3JtLWNvbnRyb2wge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZGFyaykgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdnAtcmFkaXVzLXNtKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXNtKSB2YXIoLS12cC1zcGFjZS1tZCk7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMzhweDtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXRleHQtbXV0ZWQpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5LWFsdCkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMTIyLCAxNzYsIDAsIDAuMikgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1kYXJrKSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuXG4gICAgLy8gSW5wdXRzIGRlIHR5cGUgZGF0ZS90aW1lL251bWJlclxuICAgICZbdHlwZT1cImRhdGVcIl0sXG4gICAgJlt0eXBlPVwidGltZVwiXSxcbiAgICAmW3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgICAmW3R5cGU9XCJudW1iZXJcIl0ge1xuICAgICAgICBjb2xvci1zY2hlbWU6IGRhcms7XG4gICAgfVxufVxuXG4vLyBJbnB1dCBncm91cCAoaW5wdXQgKyBhZGRvbilcbi5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgfVxuXG4gICAgLmlucHV0LWdyb3VwLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc3VyZmFjZS1lbGV2YXRlZCkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdnAtY29sb3ItYm9yZGVyKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXZwLXJhZGl1cy1zbSkgdmFyKC0tdnAtcmFkaXVzLXNtKSAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tdnAtc3BhY2UtbWQpO1xuICAgICAgICBoZWlnaHQ6IDM4cHg7XG5cbiAgICAgICAgaSwgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUXVhbmQgbCdpbnB1dCBlc3QgZm9jdXMsIHN0eWxpc2VyIGF1c3NpIGwnYWRkb25cbiAgICAmOmZvY3VzLXdpdGhpbiAuaW5wdXQtZ3JvdXAtdGV4dCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gU2VsZWN0IG5hdGlmXG4uZm9ybS1zZWxlY3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZGFyaykgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12cC1jb2xvci1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdnAtcmFkaXVzLXNtKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLXNtKSB2YXIoLS12cC1zcGFjZS1tZCk7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzZSUzY3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSclMjM3YWIwMDAnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdtMiA1IDYgNiA2LTYnLyUzZSUzYy9zdmclM2VcIikgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgdmFyKC0tdnAtc3BhY2Utc20pIGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxMnB4ICFpbXBvcnRhbnQ7XG5cbiAgICAmOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnktYWx0KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgxMjIsIDE3NiwgMCwgMC4yKSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIG9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxufSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBhZ2UgZGUgTG9naW4gLSBTdHlsZXMgbW9kZXJuaXNlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEAxMDAuLjkwMCZkaXNwbGF5PXN3YXAnKTtcblxuYm9keSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ucGFnZS1zZWN1cml0eSB7XG4gICAgZm9udC1mYW1pbHk6IEludGVyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDAwMDAwIDAlLCAjMGEwYTBmIDUwJSwgIzAwMDUxMyAxMDAlKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgKiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gRWZmZXRzIGRlIGZvbmQgKGdsb3cgdmVydHMgc3VidGlscylcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAubG9naW4tYmctZWZmZWN0cyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAwO1xuXG4gICAgICAgIC5iZy1nbG93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGZpbHRlcjogYmx1cigxMjBweCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjE1O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJnLWdsb3ctMSB7XG4gICAgICAgICAgICB3aWR0aDogNjAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIHRvcDogLTIwMHB4O1xuICAgICAgICAgICAgcmlnaHQ6IC0xMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5iZy1nbG93LTIge1xuICAgICAgICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBib3R0b206IC0xMDBweDtcbiAgICAgICAgICAgIGxlZnQ6IC0xMDBweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFdyYXBwZXIgcHJpbmNpcGFsXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLnNlY3VyaXR5LXdyYXBwZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2UtbGcpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQ2FydGUgZGUgbG9naW5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAubG9naW4tY2FyZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDQ0MHB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS12cC1zcGFjZS0yeGwpIHZhcigtLXZwLXNwYWNlLXhsKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCA1LCAxOSwgMC44KTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAgICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdnAtcmFkaXVzLXhsKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjIsIDE3NiwgMCwgMC4xNSk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICAwIDI1cHggNTBweCAtMTJweCByZ2JhKDAsIDAsIDAsIDAuNSksXG4gICAgICAgICAgICAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSBpbnNldCxcbiAgICAgICAgICAgIDAgMCA4MHB4IC0yMHB4IHJnYmEoMTIyLCAxNzYsIDAsIDAuMTUpO1xuICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDAuNnMgZWFzZS1vdXQ7XG5cbiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5VcCB7XG4gICAgICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIExvZ29cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAubG9naW4tbG9nbyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tdnAtc3BhY2UtbGcpO1xuXG4gICAgICAgIGltZywgb2JqZWN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDIwcHggcmdiYSgxMjIsIDE3NiwgMCwgMC4yKSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgdmFyKC0tdnAtdHJhbnNpdGlvbi1iYXNlKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMzBweCByZ2JhKDEyMiwgMTc2LCAwLCAwLjQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEVuLXRldGVcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAubG9naW4taGVhZGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS12cC1zcGFjZS14bCk7XG5cbiAgICAgICAgLmxvZ2luLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCB2YXIoLS12cC1zcGFjZS14cykgMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmZmZmYgMCUsIHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1saWdodCkgMTAwJSk7XG4gICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sb2dpbi1zdWJ0aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3ItdGV4dC1tdXRlZCk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBBbGVydGUgZCdlcnJldXJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAubG9naW4tYWxlcnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tdnAtc3BhY2UtbWQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtbWQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS12cC1zcGFjZS1sZyk7XG4gICAgICAgIGNvbG9yOiAjZmNhNWE1O1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcblxuICAgICAgICAubWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB7XG4gICAgICAgICAgICBjb2xvcjogI2VmNDQ0NDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEZvcm11bGFpcmVcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAubG9naW4tZm9ybSB7XG4gICAgICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXZwLXNwYWNlLWxnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS12cC1zcGFjZS1zbSk7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS12cC1zcGFjZS1zbSk7XG5cbiAgICAgICAgICAgIC5tYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdnAtY29sb3Itc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLXZwLXNwYWNlLW1kKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdnAtY29sb3ItYm9yZGVyKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZwLXJhZGl1cy1tZCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1iYXNlKTtcblxuICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdnAtY29sb3ItYm9yZGVyLWhvdmVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeS1nbG93LXNtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdyYXBwZXIgcG91ciBsZSBjaGFtcCBwYXNzd29yZCBhdmVjIGljb25lXG4gICAgICAgIC5wYXNzd29yZC1pbnB1dC13cmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNDhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC50b2dnbGUtc2hvdy1wYXNzd29yZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS12cC1zcGFjZS1zbSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtc20pO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXRleHQtbXV0ZWQpO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXZwLXRyYW5zaXRpb24tZmFzdCk7XG5cbiAgICAgICAgICAgIC5tYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTIyLCAxNzYsIDAsIDAuMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVja2JveCBwZXJzb25uYWxpc2VlXG4gICAgICAgIC5jaGVja2JveC1ncm91cCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS12cC1zcGFjZS1sZyk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hlY2tib3gtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IHZhcigtLXZwLXNwYWNlLXNtKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcblxuICAgICAgICAgICAgICAgICY6Y2hlY2tlZCArIC5jaGVja2JveC1jdXN0b20ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG5cbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZvY3VzICsgLmNoZWNrYm94LWN1c3RvbSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnktZ2xvdy1zbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2hlY2tib3gtY3VzdG9tIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZwLWNvbG9yLXN1cmZhY2UtZWxldmF0ZWQpO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZwLWNvbG9yLWJvcmRlcik7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdnAtcmFkaXVzLXNtKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdnAtdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDdweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMCk7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNoZWNrYm94LXRleHQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAuY2hlY2tib3gtY3VzdG9tIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXZwLWNvbG9yLWJvcmRlci1ob3Zlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCb3V0b24gc3VibWl0XG4gICAgICAgIC5zdWJtaXQtZ3JvdXAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tdnAtc3BhY2UteGwpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tdnAtc3BhY2UtbWQpO1xuXG4gICAgICAgICAgICAuYnRuLWJsb2NrIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tdnAtc3BhY2Utc20pO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12cC1yYWRpdXMtbWQpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZwLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuXG4gICAgICAgICAgICAgICAgLm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnktbGlnaHQpO1xuXG4gICAgICAgICAgICAgICAgICAgIC5tYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnktZGFyayk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGllbiBtb3QgZGUgcGFzc2Ugb3VibGllXG4gICAgICAgIC5mb3Jnb3QtcGFzc3dvcmQtbGluayB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXZwLWNvbG9yLXRleHQtbXV0ZWQpO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS12cC10cmFuc2l0aW9uLWZhc3QpO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEZvb3RlclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5sb2dpbi1mb290ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS12cC1zcGFjZS1zbSk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXZwLXNwYWNlLWxnKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS12cC1jb2xvci10ZXh0LW11dGVkKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIC5mb290ZXItc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZsYXNoIG1lc3NhZ2VzIChjb25zZXJ2ZSBkZSBsJ2FuY2llbiBjb2RlKVxuICAgICNmbGFzaC1tZXNzYWdlcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlc3BvbnNpdmVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLnBhZ2Utc2VjdXJpdHkge1xuICAgICAgICAubG9naW4tY2FyZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS12cC1zcGFjZS14bCkgdmFyKC0tdnAtc3BhY2UtbGcpO1xuICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS12cC1zcGFjZS1tZCk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXZwLXNwYWNlLXhsKSk7XG4gICAgICAgIH1cblxuICAgICAgICAubG9naW4tbG9nbyBpbWcsXG4gICAgICAgIC5sb2dpbi1sb2dvIG9iamVjdCB7XG4gICAgICAgICAgICB3aWR0aDogMTQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubG9naW4taGVhZGVyIHtcbiAgICAgICAgICAgIC5sb2dpbi10aXRsZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubG9naW4tZm9ybSB7XG4gICAgICAgICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zdWJtaXQtZ3JvdXAgLmJ0bi1ibG9jayB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxvZ2luLWJnLWVmZmVjdHMge1xuICAgICAgICAgICAgLmJnLWdsb3ctMSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYmctZ2xvdy0yIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/